From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 7102D94131D for ; Thu, 25 Jan 2024 08:16:35 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=4V+KIucILKoBdVYlv+l05JD98AJygkPAwN+eFBJG1mw=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:msip_labels:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1706170594; v=1; b=bxGpKvkIGduueS2BkY/6+jRJqYYY3HVeSm+QNeC05kAsNd6Qd+gGRzLxhfTf6U4y4VOQ/li9 WigMfaFl92c3SDfW8cZY125b0lq/k2BDUYdWb/KufDyOOt2OTUZQ/FuNT8SimLdiB+Tu46WOe5A Bw3AhFIGYJaBoJOtv7QHU7n8= X-Received: by 127.0.0.2 with SMTP id U0ohYY7687511xgspiAwwbwD; Thu, 25 Jan 2024 00:16:34 -0800 X-Received: from NAM10-BN7-obe.outbound.protection.outlook.com (NAM10-BN7-obe.outbound.protection.outlook.com [40.107.92.73]) by mx.groups.io with SMTP id smtpd.web11.12423.1706170592366960100 for ; Thu, 25 Jan 2024 00:16:33 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NwjiqPycXQ/K/Djz3CCRrEufNCWe3lHUAI1dH3HVK9g589l1CDe4lRCX9eau0jOBmITV2jgzFoalMexGxgCTRHUYEkG7OeGk4poHdo6endsyQwxP7J4bPe6RyNEjpMRhHkqjpw6GEZIZQOYNjOEP8Pda1dhr0dgCDRq0Xd6Z1hM+1H0aWBnZ8cAIGabf/9uMcrqCsgYvOkaY8Ktfdpbk+LFpxrhjPUaoxe3loOAFWbjrwO80/dn+FgRwN85inw+noHYwKJJ/fgQ3NQfAJ2vGXegPEJNYUJBnIojcj5t4nCGb47A5PWVLGZ5GcBSDbT+kCCJ9Dqs431FW1XsPCdOMxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=SKgn7RvdH7aRc1Jx8ItsbOmYBN5+rUZMIHnxSQUZ7HU=; b=LaXcvIsnpvejDEE+Mb+9//evWvXQ1JeG1fztxcEHg7Fl3wR81yfQCTI3TkgOuBT8UlZmU1h5bxsFDdTPvpW3LxB+UUFW+8ubx7+nRlMqGblBqr2CstkX1VMtoI4JUTJdCPYr3ThwfizKnT9ZA8anjZPa5tLKPDkHFkSKoi4RmvSAWxq+dJAZUalIcueGiT3Cg9JF7Dg4vhbefauNDb9QqQYVwVL+4aTzgF7htNfPL0+kysUEIH9ta8QOGKDWQBwY4gSKKgO/bjMDR97J1e6zQUhEoeJXzGHyM3QJS4HnRQxfnOFdPYeGP3ZKchOC6WuVnhyz3UuVS9DBaMcOiPXy7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from PH0PR12MB5631.namprd12.prod.outlook.com (2603:10b6:510:144::7) by DM4PR12MB5117.namprd12.prod.outlook.com (2603:10b6:5:390::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.24; Thu, 25 Jan 2024 08:16:17 +0000 X-Received: from PH0PR12MB5631.namprd12.prod.outlook.com ([fe80::ba59:b972:d8d8:b419]) by PH0PR12MB5631.namprd12.prod.outlook.com ([fe80::ba59:b972:d8d8:b419%5]) with mapi id 15.20.7228.022; Thu, 25 Jan 2024 08:16:17 +0000 From: "Xing, Eric via groups.io" To: "Zhai, MingXin (Duke)" , "devel@edk2.groups.io" CC: "Yao, Ken" , "Fu, Igniculus" , "Chang, Abner" Subject: Re: [edk2-devel] [PATCH V2 33/33] AMD/VanGoghBoard: Improvement coding style Thread-Topic: [PATCH V2 33/33] AMD/VanGoghBoard: Improvement coding style Thread-Index: AQHaT1oRRtUg+q2wAUG5oH6j0zpm+LDqLhug Date: Thu, 25 Jan 2024 08:16:16 +0000 Message-ID: References: <20240125063938.1428-1-duke.zhai@amd.com> <20240125063938.1428-2-duke.zhai@amd.com> In-Reply-To: <20240125063938.1428-2-duke.zhai@amd.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=c22f61e6-8175-4f04-8e20-1df6d1eca247;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2024-01-25T08:13:41Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR12MB5631:EE_|DM4PR12MB5117:EE_ x-ms-office365-filtering-correlation-id: 9f4ffad3-48e8-40f2-ac3b-08dc1d7de766 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: iWuP1SUHt5SCcTbuA/uJEtUSsRiV7ZP7gI7QUSJZVKCaU94pCnWbK/XD23LbBi5jY4O3NzfbYnA3Vr7z1JZ/oYqX61D4YTUegw7knkAWA+EKiwySuUnZsNkbwfn2woBV/tT25M1u7HasKlJptPrOwBJlfa1KDnTR0M/+RKdu6vHc8AIKn5w85zlxk44IQ770lmfpUUP8kuJVjXu4HPo54sU24jWEx7vKY+K3iXVNbMCvg8OWPMirSdvTKfQLLvT5S3HaVg12zPHnL+FNrKXmbHCJHIJ0fAFQbzhVYveIglA64PclcoKRjmoz02QzLQZGtxZHuIOdbMpUIqFluMH+Zrl/RXNTwvc3q1tRMxg5E0NhnOWTmBOB5wwMoKgFWpjcepLAy2XWqqe+O97UaYKJYtniiSJydurt9tE7bcZFlfu8z2fJ7rheIFEzLKWi4qc65zPfTnMNisopZ7dV7L/Ivw+GPki9i4o1GRCBaxCL/QvLFgfhI5Jp+XkI+boRmnKwiCE+4NYnndBW9Wsq1SUvBmv6UEQuGREKhrP/g0G07uk9jeKl0llNV//N6cUsqaMJ5o6RR6BfqK7/4a2YomKeQyFUK8yhh6wY390bLbzx2Tw9jd2Rn0Nf2kXytt3XoYSqw5IK7tA1Ofq4xQIcZokN1LE9Z1uGXxyBtWuR7wvL2bZ5iQEnuF8TBydVtm0wpbUpc4xOvvbOkEWaHlG0RP0Vatp3E5D2USFDoA417YfiA7LNud1bFX777So3DRJ2qpK3 x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?V0dXZGE4TFNWL0oxVUUrcmZWeWJrMEU2dWdkWmhvd0w2TFEvbTBoZnppS25Z?= =?utf-8?B?cVMxalNhUGVreFFqcFpJYXhtUnFrTDhXYU13U21hMEFjdE5wUnJHbmljNzJ3?= =?utf-8?B?aFlreW5uQXRiQjMxM2RoS1RySVBGWGMxVnNqOEhIZVJJWDhpSGg1RlJ2UXNx?= =?utf-8?B?YlFkbnRpSWFyb3lQRzFPM05RSmZ4Z0loNlNwZnBmQmp1RlZEaC9pRkxmWkNP?= =?utf-8?B?cjBZV2tXNXArdmFJSkwwZTNqNlJFZTdGTDVHSDdwaFZtdmd5ZWZ5azNEUnNS?= =?utf-8?B?MlllVGFFRWdVQUZ3R1RiK00rSFRqYlA4RnZwS2lZSmgvSTdzalJIdzlKUFFR?= =?utf-8?B?aDhmVXl5d1JLR1plUlFzcVhEd01USDFBOXVjNHAxRDhaSFZGUEN0OFNUZHdB?= =?utf-8?B?TE5OSm5UeHFwbEJjYXRWVmdqZmpTYlNqcjY3NXRVTDFSZTBVR2w0YzhtaUY2?= =?utf-8?B?aG45T1pXZ01vcGQ0UGRGemQ1dGNtVCtJSktBQWszUTJLWm5rUE9LUVM1RVNt?= =?utf-8?B?ZTFjNFdiMTFKQkM2cUxqTjIrRlZKbTJMdlJzdmt3TGtyR2FNdTFaNmVlMWZN?= =?utf-8?B?bTZQTWNJaTFWUFV2RkcwUWtTZVRKT1FVWlNTdjdLb0VCRmRXS0x0N3lIM0lQ?= =?utf-8?B?UXBsSjA0T0VvbUV1T2JGR080OUlKVjRUbms2TVRDU0tPanlBenZpU3kyaHN2?= =?utf-8?B?VnkyVWtoUStBbzdaQU9HM1NzYm5oTkdkejlZU0t4enZTSkluWmlxNFJWZ1pm?= =?utf-8?B?RmMwcDVjSHgxMGRkUndqZk02RVR6QWV6UFh6OTMreWVad2paYklmWEJPQ1dj?= =?utf-8?B?dWlwQm1HYmRmbG8zQWhjT2ZHaWxKN1I5NzVpaHhhQmpNMHB6QStpcHkvYmk4?= =?utf-8?B?MXlBZ2JwY2FaL09hMTZRSmcxeHV0NXRYdS9WVmNvRXYweE1PeUg2MEluUEE2?= =?utf-8?B?OFpRc205SlJGcHNLZ3h3WkFOam1DQ0ZUdGpIZ3orcTB1SGtvZUdZa0NIajdu?= =?utf-8?B?SGNlT1R4QXh5QXRaN3hZVUx0VE8xcFAzV3RBcDViK1dJQkFpYnkzMCtGY0l3?= =?utf-8?B?OHIycWlpcUlYQUVSbHVEVGFRTTF6T045b0ZjU1hHWmx5YmxjZkVpZk0yTXBD?= =?utf-8?B?NnEzM1BiN0F6ZlBsTEZVd2l0Um5UT0xZYU90a05nZUZtbGRsV0NmaDFUK3Iy?= =?utf-8?B?SnVVRy9iOHBqRFBTK3I2cFhkK2JNbkt5ZWI5OThiRGVVK0t2RXZvdkhtRnMz?= =?utf-8?B?R3dSYUJiSW5GQnNXd2k4T1FXQzg5TTBJRFFxd2YwKy9zZEdSb3RsZFA3Zk9h?= =?utf-8?B?dEFYM2RqbmNLWTkvZW10TFBXRVI0UHVwdGpWaEVmK083d0NkamJROGlJYlhU?= =?utf-8?B?R21VZkFmaTdwT0xpd2ZsTkZtK2FwbjU5VHpkOW8yVXdCQWU2T1hEOGplbFIv?= =?utf-8?B?ZHIvTSt1akRROHJ4ODlBWEF1U3BHTWdQQXZ6Rm1pODl0dGNYNmFxWkJLbUVX?= =?utf-8?B?WFcrUkoxRVJZazA1VUl5WCtVY3Q1QjBpS2J1SjRocE5ybTVUUG5hYWxTcDIx?= =?utf-8?B?OHdjWWZKUXpIVGVHczNZS0tRelBtMG5BQ25xRmxoS0pVS0N6endiWnRhSE54?= =?utf-8?B?Wng3eVJsQm5PcmtEVWpaQnBVVWV0cmw3VzNFYUJ6YVd0OUUyNHdKbHhmNWhG?= =?utf-8?B?RjI4RzZqMjUwOXlTL2hON2V5elJPS1lKbDR5bzVPcmdhelQ4K1NZQUZFZW5I?= =?utf-8?B?cXB2QVpOLzF6b3VoU0lYcHJoTmJRWVVmdEJUeDVtT0RNR2s4WGNrRGF4YUg1?= =?utf-8?B?aUJtTEJqNmFyZUNKMjBRSkFnSXFpVU5ORFU1NzArQjBDeGxSVGVOeldXb1Nm?= =?utf-8?B?VXBKUHovdERRVk83Y2svMUdLZStia0EwQjJkRXZVczI1Y21iTDBSOFhhZHd3?= =?utf-8?B?cGlqZDZFSVBDNVp6Vll4TVhyRm5INmF6ci9sTzhlQUo4N1crWEdMR3d3YXBj?= =?utf-8?B?SllJWWIzYmgxeGd3RW9WNlR6T1VOZ2wzZEZ1a3RiWVZQNTRtVmgzRnE0SHM1?= =?utf-8?B?QkxmNS8wOTlCTkY0U0tuSVZTQTBqUFliNU05VDNGcFZuRW5IVmE2Qkx3Z1Fr?= =?utf-8?Q?KD/8=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR12MB5631.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f4ffad3-48e8-40f2-ac3b-08dc1d7de766 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2024 08:16:16.9521 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yGtTaUYH9MYtdK0xoM+o/+6coSIWt4B+WILR/eX8BjyyixqZfzvY7KPtlruqokDC X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5117 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,eric.xing@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: pVwqQB2A2f6q6BvswmUcbJ1Nx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=bxGpKvkI; dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io W0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEdlbmVyYWxdDQoNCkhpIER1a2UsDQoNClRoaXMgbmV3 IHBhdGNoIFYyIGxvb2tzIG9rIHRvIG1lLiBMZXQncyB3YWl0IGZvciBvdGhlciB0ZWFtIG1lbWJl cnMgYW5kIEFibmVyJ3MgYXBwcm92YWwuDQpSZXZpZXdlZC1ieTogRXJpYyBYaW5nIDxlcmljLnhp bmdAYW1kLmNvbT4NCg0KVGhhbmtzLA0KRXJpYw0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+IEZyb206IGR1a2UuemhhaUBhbWQuY29tIDxkdWtlLnpoYWlAYW1kLmNvbT4NCj4gU2Vu dDogVGh1cnNkYXksIEphbnVhcnkgMjUsIDIwMjQgMjo0MCBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5n cm91cHMuaW8NCj4gQ2M6IFhpbmcsIEVyaWMgPEVyaWMuWGluZ0BhbWQuY29tPjsgWWFvLCBLZW4g PEtlbi5ZYW9AYW1kLmNvbT47IEZ1LA0KPiBJZ25pY3VsdXMgPElnbmljdWx1cy5GdUBhbWQuY29t PjsgQ2hhbmcsIEFibmVyIDxBYm5lci5DaGFuZ0BhbWQuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0gg VjIgMzMvMzNdIEFNRC9WYW5Hb2doQm9hcmQ6IEltcHJvdmVtZW50IGNvZGluZyBzdHlsZQ0KPg0K PiBGcm9tOiBEdWtlIFpoYWkgPER1a2UuWmhhaUBhbWQuY29tPg0KPg0KPiBCWiAjOjQ2NDANCj4g SW4gVjI6DQo+ICAgMS5SZW1vdmUgdGhlIGxlYWRpbmcgdW5kZXJzY29yZSBhbmQgdXNlIGRvdWJs ZSB1bmRlcnNjb3JlIGF0IHRyYWlsaW5nIGluIEMNCj4gaGVhZGVyIGZpbGVzLg0KPiAgIDIuUmVt b3ZlIG9sZCB0aWFub2NvcmUgbGljZW5zZXMgYW5kIHJlZHVuZGFudCBsaWNlbnNlIGRlc2NyaXB0 aW9uLg0KPiAgIDMuSW1wcm92ZSBjb2Rpbmcgc3R5bGUuIEZvciBleGFtcGxlOiByZW1vdmUgc3Bh Y2UgYmV0d2VlbiBAcGFyYW0uDQo+DQo+IEluIFYxOg0KPiAgIEltcHJvdmUgY29kaW5nIHN0eWxl IGZvciBFRGsyIHBhdGNoIGNoZWNrIHJ1bGUuDQo+ICAgQWRkIHJlYWRtZS5tZCBmb3IgQ2hhY2hh bmlCb2FyZFBrZyBpbnRyb2R1Y3Rpb24uDQo+DQo+IFNpZ25lZC1vZmYtYnk6IER1a2UgWmhhaSA8 ZHVrZS56aGFpQGFtZC5jb20+DQo+IENjOiBFcmljIFhpbmcgPGVyaWMueGluZ0BhbWQuY29tPg0K PiBDYzogS2VuIFlhbyA8a2VuLnlhb0BhbWQuY29tPg0KPiBDYzogSWduaWN1bHVzIEZ1IDxpZ25p Y3VsdXMuZnVAYW1kLmNvbT4NCj4gQ2M6IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BhbWQuY29t Pg0KPiAtLS0NCj4gIC4uLi9BbWRQbGF0Zm9ybVBrZy9Vbml2ZXJzYWwvTG9nb0R4ZS9Mb2dvLmMg ICB8ICAgMiArLQ0KPiAgLi4uL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9JbmNsdWRlL0FHRVNB LmggIHwgICA0ICstDQo+ICAuLi4vVmFuR29naEJvYXJkL0FnZXNhUHVibGljL0luY2x1ZGUvQU1E LmggICAgfCAgIDQgKy0NCj4gIC4uLi9BZ2VzYVB1YmxpYy9JbmNsdWRlL0FtZFBzcERpcmVjdG9y eS5oICAgICB8ICAgNCArLQ0KPiAgLi4uL0FnZXNhUHVibGljL0luY2x1ZGUvRmNoUmVnaXN0ZXJz Q29tbW9uLmggIHwgIDMyICstLQ0KPiAgLi4uL0luY2x1ZGUvR3VpZC9BbWRNZW1vcnlJbmZvSG9i LmggICAgICAgICAgIHwgICA0ICstDQo+ICAuLi4vSW5jbHVkZS9MaWJyYXJ5L0FtZFBzcEJhc2VM aWJWMi5oICAgICAgICAgfCAgIDQgKy0NCj4gIC4uLi9JbmNsdWRlL0xpYnJhcnkvQW1kUHNwQ29t bW9uTGliLmggICAgICAgICB8ICAgNCArLQ0KPiAgLi4uL0luY2x1ZGUvTGlicmFyeS9BbWRQc3BG dHBtTGliLmggICAgICAgICAgIHwgICA0ICstDQo+ICAuLi4vQWdlc2FQdWJsaWMvSW5jbHVkZS9Q cGkvQW1kUHNwRnRwbVBwaS5oICAgfCAgIDQgKy0NCj4gIC4uLi9JbmNsdWRlL1Byb3RvY29sL0Ft ZFBzcEZ0cG1Qcm90b2NvbC5oICAgICB8ICAgNCArLQ0KPiAgLi4uL0FjcGkvQWNwaVRhYmxlcy9G YWNzL0ZhY3MuaCAgICAgICAgICAgICAgIHwgIDM2ICstLQ0KPiAgLi4uL0FjcGkvQWNwaVRhYmxl cy9GYWR0L0ZhZHQuaCAgICAgICAgICAgICAgIHwgIDU5ICsrLS0NCj4gIC4uLi9BY3BpL0FjcGlU YWJsZXMvSHBldC9IcGV0LmggICAgICAgICAgICAgICB8ICA0OSArKy0tDQo+ICAuLi4vQWNwaS9B Y3BpVGFibGVzL01hZHQvTWFkdC5oICAgICAgICAgICAgICAgfCAxMjQgKysrKy0tLS0NCj4gIC4u Li9BY3BpL0FjcGlUYWJsZXMvTWNmZy9NY2ZnLmggICAgICAgICAgICAgICB8ICA0OCArKy0tDQo+ ICAuLi4vU3lzdGVtRmlybXdhcmVEZXNjcmlwdG9yLmFzbGMgICAgICAgICAgICAgfCAgMTggKy0N Cj4gIC4uLi9TeXN0ZW1GaXJtd2FyZURlc2NyaXB0b3IuaW5mICAgICAgICAgICAgICB8ICAxOCAr LQ0KPiAgLi4uL1N5c3RlbUZpcm13YXJlRGVzY3JpcHRvclBlaS5jICAgICAgICAgICAgIHwgIDE4 ICstDQo+ICAuLi4vQ2hhY2hhbmlCb2FyZFBrZy9Db25mL2J1aWxkX3J1bGUudHh0ICAgICAgfCAg IDYgLQ0KPiAgLi4uL0NoYWNoYW5pQm9hcmRQa2cvQ29uZi90YXJnZXQudHh0ICAgICAgICAgIHwg IDEzICstDQo+ICAuLi4vQ2hhY2hhbmlCb2FyZFBrZy9Db25mL3Rvb2xzX2RlZi50eHQgICAgICAg fCAgMjIgKy0NCj4gIC4uLi9JbmNsdWRlL0xpYnJhcnkvQ2Fwc3VsZUhvb2tMaWIuaCAgICAgICAg ICB8ICAgNCArLQ0KPiAgLi4uL0luY2x1ZGUvUHJvdG9jb2wvR2xvYmFsTnZzQXJlYS5oICAgICAg ICAgIHwgIDE1ICstDQo+ICAuLi4vUGxhdGZvcm1Cb290TWFuYWdlci5jICAgICAgICAgICAgICAg ICAgICAgfCAgMjkgKy0NCj4gIC4uLi9QbGF0Zm9ybUJvb3RNYW5hZ2VyLmggICAgICAgICAgICAg ICAgICAgICB8ICAxMSArLQ0KPiAgLi4uL1BsYXRmb3JtQm9vdE1hbmFnZXJMaWIuaW5mICAgICAg ICAgICAgICAgIHwgICA5ICstDQo+ICAuLi4vUGxhdGZvcm1Cb290TWFuYWdlckxpYi9QbGF0Zm9y bUNvbnNvbGUuYyAgfCAgMTMgKy0NCj4gIC4uLi9QbGF0Zm9ybUJvb3RNYW5hZ2VyTGliL1BsYXRm b3JtQ29uc29sZS5oICB8ICAxMSArLQ0KPiAgLi4uL1BsYXRmb3JtQm9vdE1hbmFnZXJMaWIvUGxh dGZvcm1EYXRhLmMgICAgIHwgIDExICstDQo+ICAuLi4vTGlicmFyeS9QbGF0Zm9ybVNlY0xpYi9J YTMyL0ZsYXQzMi5uYXNtICAgfCAgMjMgKy0NCj4gIC4uLi9MaWJyYXJ5L1BsYXRmb3JtU2VjTGli L0lhMzIvUGxhdGZvcm0uaW5jICB8ICAyMCArLQ0KPiAgLi4uL0xpYnJhcnkvUGxhdGZvcm1TZWNM aWIvUGxhdGZvcm1TZWNMaWIuYyAgIHwgIDE2ICstDQo+ICAuLi4vTGlicmFyeS9QbGF0Zm9ybVNl Y0xpYi9QbGF0Zm9ybVNlY0xpYi5pbmYgfCAgIDkgKy0NCj4gIC4uLi9QbGF0Zm9ybVNlY0xpYi9Q bGF0Zm9ybVNlY0xpYk1vZFN0cnMudW5pICB8ICAxMSArLQ0KPiAgLi4uL1BjaVBsYXRmb3JtL0Nv bW1vbkhlYWRlci5oICAgICAgICAgICAgICAgIHwgIDI0ICstDQo+ICAuLi4vUGNpUGxhdGZvcm0v UGNpUGxhdGZvcm0uYyAgICAgICAgICAgICAgICAgfCAgMjAgKy0NCj4gIC4uLi9QY2lQbGF0Zm9y bS9QY2lQbGF0Zm9ybS5oICAgICAgICAgICAgICAgICB8ICAyMiArLQ0KPiAgLi4uL1BjaVBsYXRm b3JtL1BjaVBsYXRmb3JtLmluZiAgICAgICAgICAgICAgIHwgIDE5ICstDQo+ICAuLi4vQmFzZVRv b2xzL1NvdXJjZS9QeXRob24vR2VuRmRzL0NhcHN1bGUucHkgfCAgMTAgKy0NCj4gIC4uLi9Gc3BX cmFwcGVyTm90aWZ5RHhlL0ZzcFdyYXBwZXJOb3RpZnlEeGUuYyB8ICAxMSArLQ0KPiAgLi4uL0Zz cFdyYXBwZXJOb3RpZnlEeGUvTG9hZEJlbG93NEcuYyAgICAgICAgIHwgIDExICstDQo+ICAuLi4v RnNwbVdyYXBwZXJQZWltL0ZzcG1XcmFwcGVyUGVpbS5jICAgICAgICAgfCAgMTEgKy0NCj4gIC4u Li9Gc3BzTXVsdGlQaGFzZVNpSW5pdER4ZS5jICAgICAgICAgICAgICAgICB8ICAxMSArLQ0KPiAg Li4uL0ZzcHNNdWx0aVBoYXNlU2lJbml0RHhlL0xvYWRCZWxvdzRHLmMgICAgIHwgIDEyICstDQo+ ICAuLi4vRnNwc1dyYXBwZXJQZWltL0ZzcHNXcmFwcGVyUGVpbS5jICAgICAgICAgfCAgMTEgKy0N Cj4gIC4uLi9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1ZGUvRnNwVXBkLmggICAgICB8ICAgNCAr LQ0KPiAgLi4uL2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9Gc3BtVXBkLmggICAgIHwgICA0 ICstDQo+ICAuLi4vZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlL0ZzcHNVcGQuaCAgICAgfCAg IDQgKy0NCj4gIC4uLi9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1ZGUvRnNwdFVwZC5oICAgICB8 ICAgNCArLQ0KPiAgLi4uL0luY2x1ZGUvTGlicmFyeS9Gc3BNZWFzdXJlbWVudExpYi5oICAgICAg IHwgIDE1ICstDQo+ICAuLi4vSW5jbHVkZS9MaWJyYXJ5L0ZzcFdyYXBwZXJBcGlMaWIuaCAgICAg ICAgfCAgMTUgKy0NCj4gIC4uLi9JbmNsdWRlL0xpYnJhcnkvRnNwV3JhcHBlckFwaVRlc3RMaWIu aCAgICB8ICAxNSArLQ0KPiAgLi4uL0luY2x1ZGUvTGlicmFyeS9Gc3BXcmFwcGVySG9iUHJvY2Vz c0xpYi5oIHwgIDE1ICstDQo+ICAuLi4vTGlicmFyeS9Gc3BXcmFwcGVyTXVsdGlQaGFzZVByb2Nl c3NMaWIuaCAgfCAgMTUgKy0NCj4gIC4uLi9JbmNsdWRlL0xpYnJhcnkvRnNwV3JhcHBlclBsYXRm b3JtTGliLmggICB8ICAxNSArLQ0KPiAgLi4uL0xpYnJhcnkvRnNwV3JhcHBlclBsYXRmb3JtTXVs dGlQaGFzZUxpYi5oIHwgIDExICstDQo+ICAuLi4vSW5jbHVkZS9NdWx0aVBoYXNlU2lQaGFzZXMu aCAgICAgICAgICAgICAgfCAgIDQgKy0NCj4gIC4uLi9JbmNsdWRlL1BwaS9Gc3BTaWxpY29uSW5p dERvbmUuaCAgICAgICAgICB8ICAxNSArLQ0KPiAgLi4uL0luY2x1ZGUvUHBpL1RvcE9mVGVtcG9y YXJ5UmFtLmggICAgICAgICAgIHwgIDE1ICstDQo+ICAuLi4vQmFzZUZzcE1lYXN1cmVtZW50TGli L0ZzcE1lYXN1cmVtZW50TGliLmMgfCAgMTEgKy0NCj4gIC4uLi9CYXNlRnNwV3JhcHBlckFwaUxp Yi9Gc3BXcmFwcGVyQXBpTGliLmMgICB8ICAxMSArLQ0KPiAgLi4uL1g2NC9EaXNwYXRjaEV4ZWN1 dGUuYyAgICAgICAgICAgICAgICAgICAgIHwgIDExICstDQo+ICAuLi4vQmFzZUZzcFdyYXBwZXJB cGlMaWIvWDY0L1RodW5rNjRUbzMyLm5hc20gfCAgIDUgLQ0KPiAgLi4uL0ZzcFdyYXBwZXJBcGlU ZXN0TnVsbC5jICAgICAgICAgICAgICAgICAgIHwgIDExICstDQo+ICAuLi4vRnNwV3JhcHBlclBs YXRmb3JtTGliU2FtcGxlLmMgICAgICAgICAgICAgfCAgMTEgKy0NCj4gIC4uLi9Gc3BXcmFwcGVy UGxhdGZvcm1NdWx0aVBoYXNlTGliTnVsbC5jICAgICB8ICAxMSArLQ0KPiAgLi4uL0R4ZUZzcFdy YXBwZXJNdWx0aVBoYXNlUHJvY2Vzc0xpYi5jICAgICAgIHwgIDExICstDQo+ICAuLi4vUGVpRnNw V3JhcHBlck11bHRpUGhhc2VQcm9jZXNzTGliLmMgICAgICAgfCAgMTEgKy0NCj4gIC4uLi9Db21t b25IZWFkZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMyArLQ0KPiAgLi4uL0Zz cFdyYXBwZXJIb2JQcm9jZXNzTGliU2FtcGxlLmMgICAgICAgICAgIHwgMTI3ICsrKystLS0tLQ0K PiAgLi4uL01lbW9yeUluc3RhbGwuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIzICst DQo+ICAuLi4vU2VjRnNwV3JhcHBlclBsYXRmb3JtU2VjTGliU2FtcGxlL0ZzcC5oICAgfCAgIDQg Ky0NCj4gIC4uLi9TZWNSYW1Jbml0RGF0YS5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg OCArLQ0KPiAgLi4uL0J1cy9QY2kvUGNpSG9zdEJyaWRnZUR4ZS9Jb0ZpZm8uaCAgICAgICAgIHwg IDIyICstDQo+ICAuLi4vQnVzL1BjaS9QY2lIb3N0QnJpZGdlRHhlL1BjaUhvc3RCcmlkZ2UuYyAg fCAgNzMgKy0tLS0NCj4gIC4uLi9CdXMvUGNpL1BjaUhvc3RCcmlkZ2VEeGUvUGNpSG9zdEJyaWRn ZS5oICB8ICAzNiArLS0NCj4gIC4uLi9QY2kvUGNpSG9zdEJyaWRnZUR4ZS9QY2lIb3N0QnJpZGdl LnVuaSAgICB8IEJpbiAyNTU4IC0+IDEyOTAgYnl0ZXMNCj4gIC4uLi9QY2kvUGNpSG9zdEJyaWRn ZUR4ZS9QY2lIb3N0QnJpZGdlRHhlLmluZiB8ICAyMCArLQ0KPiAgLi4uL1BjaUhvc3RCcmlkZ2VE eGUvUGNpSG9zdEJyaWRnZUV4dHJhLnVuaSAgIHwgQmluIDE5MTQgLT4gODI2IGJ5dGVzDQo+ICAu Li4vUGNpL1BjaUhvc3RCcmlkZ2VEeGUvUGNpUm9vdEJyaWRnZUlvLmMgICAgfCAyNjkgKy0tLS0t LS0tLS0tLS0tLS0tDQo+ICAuLi4vQ2Fwc3VsZVJ1bnRpbWVEeGUvQ2Fwc3VsZVNlcnZpY2UuYyAg ICAgICAgfCAgMTUgKy0NCj4gIC4uLi9DYXBzdWxlUnVudGltZUR4ZS9DYXBzdWxlU2VydmljZS5o ICAgICAgICB8ICAxNSArLQ0KPiAgLi4uL2VkazIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9QQ0Qv RHhlL1BjZC5jIHwgIDEzICstDQo+ICAuLi4vZWRrMi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1BD RC9QZWkvUGNkLmMgfCAgMjEgKy0NCj4gIC4uLi9SZWdpc3Rlci9JbnRlbC9TbXJhbVNhdmVTdGF0 ZU1hcC5oICAgICAgICB8ICAxNSArLQ0KPiAgLi4uL1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4 ZS9QY1J0Yy5jICAgICAgIHwgIDIxICstDQo+ICAuLi4vUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1l RHhlL1BjUnRjLmggICAgICAgfCAgMjMgKy0NCj4gIC4uLi9QY2F0UmVhbFRpbWVDbG9ja1J1bnRp bWVEeGUvUGNSdGMudW5pICAgICB8ICAyMiArLQ0KPiAgLi4uL1BjYXRSZWFsVGltZUNsb2NrUnVu dGltZUR4ZS9QY1J0Y0VudHJ5LmMgIHwgIDE5ICstDQo+ICAuLi4vUGNSdGNFeHRyYS51bmkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTcgKy0NCj4gIC4uLi9QY2F0UmVhbFRpbWVDbG9j a1J1bnRpbWVEeGUuaW5mICAgICAgICAgICB8ICAyMCArLQ0KPiAgLi4uL0R4ZVRwbTJEZXZpY2VM aWJGc3AvVHBtMkRldmljZUxpYkZ0cG0uYyAgIHwgIDIzICstDQo+ICAuLi4vRHhlVHBtMkRldmlj ZUxpYkZzcC9UcG0yRGV2aWNlTGliRnRwbS5pbmYgfCAgMTggKy0NCj4gIC4uLi9QZWlUcG0yRGV2 aWNlTGliRnNwL1RwbTJEZXZpY2VMaWJGdHBtLmMgICB8ICAyMyArLQ0KPiAgLi4uL1BlaVRwbTJE ZXZpY2VMaWJGc3AvVHBtMkRldmljZUxpYkZ0cG0uaW5mIHwgIDE5ICstDQo+ICAuLi4vQW1kRnRw bS9UcG0yRGV2aWNlTGliL1RwbTJEZXZpY2VMaWJGdHBtLmMgfCAgMjEgKy0NCj4gIC4uLi9UcG0y RGV2aWNlTGliL1RwbTJEZXZpY2VMaWJGdHBtLmluZiAgICAgICB8ICAxOSArLQ0KPiAgLi4uL0R4 ZVRjZzJQaHlzaWNhbFByZXNlbmNlTGliLmMgICAgICAgICAgICAgIHwgIDY5ICsrLS0tDQo+ICAu Li4vRHhlVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIuaW5mICAgICAgICAgICAgfCAgMTggKy0NCj4g IC4uLi9EeGVUY2cyUGh5c2ljYWxQcmVzZW5jZUxpYi51bmkgICAgICAgICAgICB8ICAyMCArLQ0K PiAgLi4uL1BoeXNpY2FsUHJlc2VuY2VTdHJpbmdzLnVuaSAgICAgICAgICAgICAgIHwgIDE5ICst DQo+ICAuLi4vVGNnL0FtZEZ0cG0vRnRwbVRjZzJTbW0vVGNnMlNtbS5jICAgICAgICAgfCAgMzkg Ky0tDQo+ICAuLi4vVGNnL0FtZEZ0cG0vRnRwbVRjZzJTbW0vVGNnMlNtbS5oICAgICAgICAgfCAg MjMgKy0NCj4gIC4uLi9UY2cvQW1kRnRwbS9GdHBtVGNnMlNtbS9UY2cyU21tLmluZiAgICAgICB8 ICAxOCArLQ0KPiAgLi4uL1RjZy9BbWRGdHBtL0Z0cG1UY2cyU21tL1RjZzJTbW1FeHRyYS51bmkg IHwgIDE5ICstDQo+ICAuLi4vVGNnL1RjZzJDb25maWcvVGNnMkNvbmZpZ052RGF0YS5oICAgICAg ICAgfCAgMjUgKy0NCj4gIC4uLi9UY2cvVGNnMkNvbmZpZy9UY2cyQ29uZmlnUGVpLmluZiAgICAg ICAgICB8ICAxOCArLQ0KPiAgLi4uL1RjZy9UY2cyQ29uZmlnL1RjZzJDb25maWdQZWkudW5pICAg ICAgICAgIHwgIDI0ICstDQo+ICAuLi4vVGNnL1RjZzJDb25maWcvVGNnMkNvbmZpZ1BlaUV4dHJh LnVuaSAgICAgfCAgMTkgKy0NCj4gIC4uLi9UY2cvVGNnMkNvbmZpZy9UY2cyQ29uZmlnUGVpbS5j ICAgICAgICAgICB8ICAyNSArLQ0KPiAgLi4uL1NlY3VyaXR5UGtnL1RjZy9UY2cyQ29uZmlnL1Rw bURldGVjdGlvbi5jIHwgIDI4ICstDQo+ICAuLi4vU3lzdGVtRmlybXdhcmVDb21tb25EeGUuYyAg ICAgICAgICAgICAgICAgfCAgMTkgKy0NCj4gIC4uLi9TeXN0ZW1GaXJtd2FyZVVwZGF0ZS9TeXN0 ZW1GaXJtd2FyZUR4ZS5oICB8ICAyMiArLQ0KPiAgLi4uL1N5c3RlbUZpcm13YXJlVXBkYXRlRHhl LmMgICAgICAgICAgICAgICAgIHwgIDI2ICstDQo+ICAuLi4vU3lzdGVtRmlybXdhcmVVcGRhdGVE eGUudW5pICAgICAgICAgICAgICAgfCAgMjAgKy0NCj4gIC4uLi9TeXN0ZW1GaXJtd2FyZVVwZGF0 ZUR4ZUV4dHJhLnVuaSAgICAgICAgICB8ICAxNyArLQ0KPiAgLi4uL1NtbUNwdUZlYXR1cmVzTGli Q29tbW9uLmMgICAgICAgICAgICAgICAgIHwgIDE0ICstDQo+ICAuLi4vUGlTbW1DcHVEeGVTbW0v U21yYW1TYXZlU3RhdGUuYyAgICAgICAgICAgfCAgMTEgKy0NCj4gIC4uLi9SZXNldFZlY3Rvci9W dGYwL0NvbW1vbk1hY3Jvcy5pbmMgICAgICAgICB8ICAgOSArLQ0KPiAgLi4uL1Jlc2V0VmVjdG9y L1Z0ZjAvRGVidWdEaXNhYmxlZC5hc20gICAgICAgIHwgICA5ICstDQo+ICAuLi4vUmVzZXRWZWN0 b3IvVnRmMC9JYTE2L0luaXQxNi5hc20gICAgICAgICAgfCAgIDkgKy0NCj4gIC4uLi9SZXNldFZl Y3Rvci9WdGYwL0lhMTYvUmVhbDE2VG9GbGF0MzIuYXNtICB8ICAgOSArLQ0KPiAgLi4uL1Jlc2V0 VmVjdG9yL1Z0ZjAvSWExNi9SZXNldFZlY3RvclZ0ZjAuYXNtIHwgICA5ICstDQo+ICAuLi4vUmVz ZXRWZWN0b3IvVnRmMC9JYTMyL0ZsYXQzMlRvRmxhdDY0LmFzbSAgfCAgIDkgKy0NCj4gIC4uLi9S ZXNldFZlY3Rvci9WdGYwL0lhMzIvUGFnZVRhYmxlczY0LmFzbSAgICB8ICAgOSArLQ0KPiAgLi4u L1Z0ZjAvSWEzMi9TZWFyY2hGb3JCZnZCYXNlLmFzbSAgICAgICAgICAgIHwgICA5ICstDQo+ICAu Li4vVnRmMC9JYTMyL1NlYXJjaEZvclNlY0VudHJ5LmFzbSAgICAgICAgICAgfCAgIDkgKy0NCj4g IC4uLi9lZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0b3IvVnRmMC9NYWluLmFzbSB8ICAgOSArLQ0K PiAgLi4uL1Jlc2V0VmVjdG9yL1Z0ZjAvUG9ydDgwRGVidWcuYXNtICAgICAgICAgIHwgICA5ICst DQo+ICAuLi4vVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WdGYwL1Bvc3RDb2Rlcy5pbmMgfCAgIDkg Ky0NCj4gIC4uLi9SZXNldFZlY3Rvci9WdGYwL1Jlc2V0VmVjdG9yLnVuaSAgICAgICAgICB8IEJp biAxMTU4IC0+IDc4MCBieXRlcw0KPiAgLi4uL1Jlc2V0VmVjdG9yL1Z0ZjAvUmVzZXRWZWN0b3JF eHRyYS51bmkgICAgIHwgQmluIDEwODAgLT4gNjgyIGJ5dGVzDQo+ICAuLi4vUmVzZXRWZWN0b3Iv VnRmMC9TZXJpYWxEZWJ1Zy5hc20gICAgICAgICAgfCAgIDkgKy0NCj4gIC4uLi9lZGsyL1VlZmlD cHVQa2cvUmVzZXRWZWN0b3IvVnRmMC9WdGYwLmluZiB8ICAxNiArLQ0KPiAgLi4uL1VlZmlDcHVQ a2cvUmVzZXRWZWN0b3IvVnRmMC9WdGYwLm5hc21iICAgIHwgICA5ICstDQo+ICAuLi4vUmVzZXRW ZWN0b3IvVnRmMC9YNjQvUGFnZVRhYmxlcy5hc20gICAgICAgfCAgIDkgKy0NCj4gIFBsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvUmVhZG1lLm1kICAgICAgICAgICB8ICA2NyArKysrKw0KPiAgUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9SZWxlYXNlTm90ZS50eHQgICAgIHwgIDE0ICsNCj4gIC4u Li9Vbml2ZXJzYWwvQWNwaVBsYXRmb3JtRHhlL0FjcGlQbGF0Zm9ybS5jICB8ICAgOSArLQ0KPiAg Li4uL0FjcGlQbGF0Zm9ybUR4ZS9BY3BpUGxhdGZvcm0udW5pICAgICAgICAgIHwgIDExICstDQo+ ICAuLi4vQWNwaVBsYXRmb3JtRHhlL0FjcGlQbGF0Zm9ybUR4ZS5pbmYgICAgICAgfCAgIDggKy0N Cj4gIC4uLi9BY3BpUGxhdGZvcm1EeGUvQWNwaVBsYXRmb3JtRXh0cmEudW5pICAgICB8ICAxMSAr LQ0KPiAgLi4uL0FjcGlQbGF0Zm9ybUR4ZS9BY3BpUGxhdGZvcm1Ib29rcy5jICAgICAgIHwgICA5 ICstDQo+ICAuLi4vQWNwaVBsYXRmb3JtRHhlL0FjcGlQbGF0Zm9ybUhvb2tzLmggICAgICAgfCAg MTMgKy0NCj4gIC4uLi9Vbml2ZXJzYWwvRmNoU3BpL0ZjaFNwaVByb3RlY3QuaCAgICAgICAgICB8 ICAgNCArLQ0KPiAgLi4uL1VuaXZlcnNhbC9GY2hTcGkvRmNoU3BpUnVudGltZUR4ZS5jICAgICAg IHwgIDExICstDQo+ICAuLi4vVW5pdmVyc2FsL0ZjaFNwaS9GY2hTcGlSdW50aW1lRHhlLmggICAg ICAgfCAgMTUgKy0NCj4gIC4uLi9Vbml2ZXJzYWwvRmNoU3BpL0ZjaFNwaVJ1bnRpbWVEeGUuaW5m ICAgICB8ICAgOSArLQ0KPiAgLi4uL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNoU3BpL0ZjaFNw aVNtbS5jIHwgIDExICstDQo+ICAuLi4vVmFuR29naEJvYXJkL1VuaXZlcnNhbC9GY2hTcGkvRmNo U3BpU21tLmggfCAgMTUgKy0NCj4gIC4uLi9Vbml2ZXJzYWwvRmNoU3BpL0ZjaFNwaVNtbS5pbmYg ICAgICAgICAgICB8ICAgOSArLQ0KPiAgLi4uL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNoU3Bp L1NwaUNvbW1vbi5jIHwgIDExICstDQo+ICAuLi4vVmFuR29naEJvYXJkL1VuaXZlcnNhbC9GY2hT cGkvU3BpSW5mby5oICAgfCAgIDYgKy0NCj4gIC4uLi9Vbml2ZXJzYWwvUGxhdGZvcm1Jbml0UGVp L0Jvb3RNb2RlLmMgICAgICB8ICAyNyArLQ0KPiAgLi4uL1VuaXZlcnNhbC9QbGF0Zm9ybUluaXRQ ZWkvQ29tbW9uSGVhZGVyLmggIHwgIDI0ICstDQo+ICAuLi4vUGxhdGZvcm1Jbml0UGVpL01lbW9y eUNhbGxiYWNrLmMgICAgICAgICAgfCAgNDcgKystDQo+ICAuLi4vVW5pdmVyc2FsL1BsYXRmb3Jt SW5pdFBlaS9NZW1vcnlJbnN0YWxsLmMgfCAxMjUgKysrKy0tLS0NCj4gIC4uLi9Vbml2ZXJzYWwv UGxhdGZvcm1Jbml0UGVpL01lbW9yeUluc3RhbGwuaCB8ICAyMyArLQ0KPiAgLi4uL1VuaXZlcnNh bC9QbGF0Zm9ybUluaXRQZWkvTWVtb3J5UGVpbS5jICAgIHwgIDUxICstLS0NCj4gIC4uLi9Vbml2 ZXJzYWwvUGxhdGZvcm1Jbml0UGVpL1BsYXRmb3JtSW5pdC5jICB8ICAyOSArLQ0KPiAgLi4uL1Bs YXRmb3JtSW5pdFBlaS9QbGF0Zm9ybUluaXQuaW5mICAgICAgICAgIHwgIDE2ICstDQo+ICAuLi4v VW5pdmVyc2FsL1BsYXRmb3JtSW5pdFBlaS9TdGFsbC5jICAgICAgICAgfCAgMzcgKy0tDQo+ICAu Li4vUGxhdGZvcm1TbWJpb3NEeGUvUGxhdGZvcm1TbWJpb3NEeGUuYyAgICAgfCAgMTAgKy0NCj4g IC4uLi9QbGF0Zm9ybVNtYmlvc0R4ZS9QbGF0Zm9ybVNtYmlvc0R4ZS5pbmYgICB8ICAgOSArLQ0K PiAgLi4uL1VuaXZlcnNhbC9QbGF0Zm9ybVNtYmlvc0R4ZS9TbWJpb3NUYWJsZS5jIHwgIDEzICst DQo+ICAuLi4vVURLRmxhc2hVcGRhdGUvU3BpRmxhc2hEZXZpY2UuaCAgICAgICAgICAgfCAgIDQg Ky0NCj4gIC4uLi9VREtGbGFzaFVwZGF0ZS9VREtGbGFzaFVwZGF0ZS5jICAgICAgICAgICB8ICAx MCArLQ0KPiAgLi4uL1VES0ZsYXNoVXBkYXRlL1VES0ZsYXNoVXBkYXRlLmggICAgICAgICAgIHwg ICA0ICstDQo+ICAuLi4vRmxhc2hVcGRhdGUvRmxhc2hVcGRhdGVDb21tb24uaCAgICAgICAgICAg fCAgIDQgKy0NCj4gIC4uLi9GbGFzaFVwZGF0ZS9GbGFzaFVwZGF0ZVNtbS5oICAgICAgICAgICAg ICB8ICAgNCArLQ0KPiAgLi4uL1ZhbkdvZ2hDb21tb25Qa2cvRmxhc2hVcGRhdGUvUGNSdGMuaCAg ICAgIHwgIDIzICstDQo+ICAuLi4vVmFuR29naENvbW1vblBrZy9GdmJTZXJ2aWNlcy9GdmJJbmZv LmMgICAgfCAgMTIgKy0NCj4gIC4uLi9GdmJTZXJ2aWNlcy9Gd0Jsb2NrU2VydmljZS5jICAgICAg ICAgICAgICB8ICAzOCArLS0NCj4gIC4uLi9GdmJTZXJ2aWNlcy9Gd0Jsb2NrU2VydmljZS5oICAg ICAgICAgICAgICB8ICAxNyArLQ0KPiAgLi4uL0Z2YlNlcnZpY2VzL1BsYXRmb3JtU21tU3BpLmlu ZiAgICAgICAgICAgIHwgIDEzICstDQo+ICAuLi4vSW5jbHVkZS9MaWJyYXJ5L1NtYmlvc0xpYi5o ICAgICAgICAgICAgICAgfCAgMTggKy0NCj4gIC4uLi9JbmNsdWRlL0xpYnJhcnkvU3BpRmxhc2hE ZXZpY2VMaWIuaCAgICAgICB8ICAgNCArLQ0KPiAgLi4uL0luY2x1ZGUvT3RhQ2Fwc3VsZVVwZGF0 ZS5oICAgICAgICAgICAgICAgIHwgICA0ICstDQo+ICAuLi4vVmFuR29naENvbW1vblBrZy9JbmNs dWRlL1Byb3RvY29sL1NwaS5oICAgfCAgMjUgKy0NCj4gIC4uLi9JbmNsdWRlL1Byb3RvY29sL1Nw aUNvbW1vbi5oICAgICAgICAgICAgICB8ICAyMiArLQ0KPiAgLi4uL0luY2x1ZGUvUHJvdG9jb2wv U3BpRmxhc2hVcGRhdGUuaCAgICAgICAgIHwgICA0ICstDQo+ICAuLi4vQmFzZVNlcmlhbFBvcnRM aWIxNjU1MEFtZEZjaFVhcnQuYyAgICAgICAgfCAgMTQgKy0NCj4gIC4uLi9CYXNlU2VyaWFsUG9y dExpYjE2NTUwQW1kRmNoVWFydC5pbmYgICAgICB8ICAxMSArLQ0KPiAgLi4uL1BsYXRmb3JtRmxh c2hBY2Nlc3NMaWIuYyAgICAgICAgICAgICAgICAgIHwgIDE3ICstDQo+ICAuLi4vTGlicmFyeS9T bWJpb3NMaWIvU21iaW9zTGliLmMgICAgICAgICAgICAgfCAgMTIgKy0NCj4gIC4uLi9MaWJyYXJ5 L1NtYmlvc0xpYi9TbWJpb3NMaWIuaW5mICAgICAgICAgICB8ICAxMiArLQ0KPiAgLi4uL0xpYnJh cnkvVHNjVGltZXJMaWIvQmFzZVRzY1RpbWVyTGliLmMgICAgIHwgIDExICstDQo+ICAuLi4vTGli cmFyeS9Uc2NUaW1lckxpYi9CYXNlVHNjVGltZXJMaWIuaW5mICAgfCAgMTggKy0NCj4gIC4uLi9M aWJyYXJ5L1RzY1RpbWVyTGliL0R4ZVRzY1RpbWVyTGliLmMgICAgICB8ICAxMSArLQ0KPiAgLi4u L0xpYnJhcnkvVHNjVGltZXJMaWIvUGVpVHNjVGltZXJMaWIuYyAgICAgIHwgIDExICstDQo+ICAu Li4vTGlicmFyeS9Uc2NUaW1lckxpYi9Uc2NUaW1lckxpYkludGVybmFsLmggfCAgMTcgKy0NCj4g IC4uLi9MaWJyYXJ5L1RzY1RpbWVyTGliL1RzY1RpbWVyTGliU2hhcmUuYyAgICB8ICAxMSArLQ0K PiAgLi4uL1NtbS9BY3BpU21tL0FjcGlTbW1QbGF0Zm9ybS5jICAgICAgICAgICAgIHwgIDE1ICst DQo+ICAuLi4vU21tL0FjcGlTbW0vQWNwaVNtbVBsYXRmb3JtLmggICAgICAgICAgICAgfCAgMTgg Ky0NCj4gIC4uLi9TbW0vQWNwaVNtbS9BY3BpU21tUGxhdGZvcm0uaW5mICAgICAgICAgICB8ICAx MCArLQ0KPiAgLi4uL1NtbS9TbW1BY2Nlc3NQZWkvU21tQWNjZXNzUGVpLmMgICAgICAgICAgIHwg IDE1ICstDQo+ICAuLi4vU21tL1NtbUFjY2Vzc1BlaS9TbW1BY2Nlc3NQZWkuaW5mICAgICAgICAg fCAgMTIgKy0NCj4gIDE5OCBmaWxlcyBjaGFuZ2VkLCA4MTMgaW5zZXJ0aW9ucygrKSwgMjg5NCBk ZWxldGlvbnMoLSkNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBQbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL1JlYWRtZS5tZA0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFBsYXRmb3JtL0FNRC9WYW5Hb2do Qm9hcmQvUmVsZWFzZU5vdGUudHh0DQo+DQo+IGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9BTUQvQW1k UGxhdGZvcm1Qa2cvVW5pdmVyc2FsL0xvZ29EeGUvTG9nby5jDQo+IGIvUGxhdGZvcm0vQU1EL0Ft ZFBsYXRmb3JtUGtnL1VuaXZlcnNhbC9Mb2dvRHhlL0xvZ28uYw0KPiBpbmRleCA4ZTNkODkzODBi Li40NDYzYmE1OGViIDEwMDY0NA0KPiAtLS0gYS9QbGF0Zm9ybS9BTUQvQW1kUGxhdGZvcm1Qa2cv VW5pdmVyc2FsL0xvZ29EeGUvTG9nby5jDQo+ICsrKyBiL1BsYXRmb3JtL0FNRC9BbWRQbGF0Zm9y bVBrZy9Vbml2ZXJzYWwvTG9nb0R4ZS9Mb2dvLmMNCj4gQEAgLTk4LDcgKzk4LDcgQEAgTG9nb0R4 ZURpc3BsYXlFdmVudENhbGxiYWNrICgNCj4gICAgSU4gVk9JRCAgICAgICAqQ29udGV4dA0KPiAg ICApDQo+ICB7DQo+IC0gIERFQlVHKChERUJVR19JTkZPLCAiQU1EIGxvZ28gaXMgZGlzcGxheWlu Zy5cbiIpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiQU1EIGxvZ28gaXMgZGlzcGxheWlu Zy5cbiIpKTsNCj4NCj4gICAgQm9vdExvZ29FbmFibGVMb2dvICgpOw0KPiAgICBnQlMtPkNsb3Nl RXZlbnQgKEV2ZW50KTsNCj4gZGlmZiAtLWdpdCBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv QWdlc2FQdWJsaWMvSW5jbHVkZS9BR0VTQS5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9BZ2VzYVB1YmxpYy9JbmNsdWRlL0FHRVNBLmgNCj4gaW5kZXggZGUwODhiMjFjNC4uZjM2Mzc4 ZGFlMSAxMDA2NDQNCj4gLS0tIGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1Ymxp Yy9JbmNsdWRlL0FHRVNBLmgNCj4gKysrIGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9BZ2Vz YVB1YmxpYy9JbmNsdWRlL0FHRVNBLmgNCj4gQEAgLTUsOCArNSw4IEBADQo+DQo+ICAqKi8NCj4N Cj4gLSNpZm5kZWYgX0FHRVNBX0hfDQo+IC0jZGVmaW5lIF9BR0VTQV9IXw0KPiArI2lmbmRlZiBB R0VTQV9IX18NCj4gKyNkZWZpbmUgQUdFU0FfSF9fDQo+DQo+ICAjaW5jbHVkZSAgIkFNRC5oIg0K Pg0KPiBkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9J bmNsdWRlL0FNRC5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9J bmNsdWRlL0FNRC5oDQo+IGluZGV4IDdmMzcyN2JkNGIuLjcxNjM0NDg4NDQgMTAwNjQ0DQo+IC0t LSBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQWdlc2FQdWJsaWMvSW5jbHVkZS9BTUQuaA0K PiArKysgYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0FnZXNhUHVibGljL0luY2x1ZGUvQU1E LmgNCj4gQEAgLTUsOCArNSw4IEBADQo+DQo+ICAqKi8NCj4NCj4gLSNpZm5kZWYgX0FNRF9IXw0K PiAtI2RlZmluZSBfQU1EX0hfDQo+ICsjaWZuZGVmIEFNRF9IX18NCj4gKyNkZWZpbmUgQU1EX0hf Xw0KPg0KPiAgLy8vIFRoZSByZXR1cm4gc3RhdHVzIGZvciBhbGwgQUdFU0EgcHVibGljIHNlcnZp Y2VzLg0KPiAgLy8vDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJk L0FnZXNhUHVibGljL0luY2x1ZGUvQW1kUHNwRGlyZWN0b3J5LmgNCj4gYi9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL0FnZXNhUHVibGljL0luY2x1ZGUvQW1kUHNwRGlyZWN0b3J5LmgNCj4gaW5k ZXggMDZkNDY3M2JlOC4uNDBjY2Q1ZTEyYSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9JbmNsdWRlL0FtZFBzcERpcmVjdG9yeS5oDQo+ICsr Kw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQWdlc2FQdWJsaWMvSW5jbHVkZS9BbWRQ c3BEaXJlY3RvcnkuaA0KPiBAQCAtNSw4ICs1LDggQEANCj4NCj4gICoqLw0KPg0KPiAtI2lmbmRl ZiBfQU1EX1BTUF9ESVJfSF8NCj4gLSNkZWZpbmUgX0FNRF9QU1BfRElSX0hfDQo+ICsjaWZuZGVm IEFNRF9QU1BfRElSX0hfXw0KPiArI2RlZmluZSBBTURfUFNQX0RJUl9IX18NCj4NCj4gICNwcmFn bWEgcGFjayAocHVzaCwgMSkNCj4gICNkZWZpbmUgUFNQX0RJUkVDVE9SWV9IRUFERVJfU0lHTkFU VVJFICAgICAgMHg1MDUzNTAyNHVsIC8vLzwgJFBTUA0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9JbmNsdWRlL0ZjaFJlZ2lzdGVyc0NvbW1v bg0KPiAuaA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQWdlc2FQdWJsaWMvSW5jbHVk ZS9GY2hSZWdpc3RlcnNDb21tb24NCj4gLmgNCj4gaW5kZXggNjA3OWZjYWI3NS4uYTY5YTQ3OTFj ZCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1Ymxp Yy9JbmNsdWRlL0ZjaFJlZ2lzdGVyc0NvbW1vbg0KPiAuaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL0FnZXNhUHVibGljL0luY2x1ZGUvRmNoUmVnaXN0ZXJzQ29tbW9uDQo+ IC5oDQo+IEBAIC01LDE5ICs1LDE5IEBADQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+ICAqKi8NCj4gLSNkZWZpbmUgUl9GQ0hfQUNQSV9QTTFf U1RBVFVTICAgICAgICAgICAgICAweDAwDQo+IC0jZGVmaW5lIFJfRkNIX0FDUElfUE0xX0VOQUJM RSAgICAgICAgICAgICAgMHgwMg0KPiAtI2RlZmluZSBSX0ZDSF9BQ1BJX1BNX0NPTlRST0wgICAg ICAgICAgICAgIDB4MDQNCj4gLSNkZWZpbmUgQUNQSV9NTUlPX0JBU0UgICAgICAgICAgIDB4RkVE ODAwMDB1bA0KPiAtI2RlZmluZSBTTUlfQkFTRSAgICAgICAgICAgICAgICAgMHgyMDAgICAgICAg IC8vIERXT1JEDQo+IC0jZGVmaW5lIFBNSU9fQkFTRSAgICAgICAgICAgICAgICAweDMwMCAgICAg ICAgLy8gRFdPUkQNCj4gLSNkZWZpbmUgRkNIX1NNSV9SRUc4MCAgICAgICAgICAgIDB4ODAgICAg ICAgICAvLyBTbWlTdGF0dXMwDQo+IC0jZGVmaW5lIEZDSF9TTUlfUkVHODQgICAgICAgICAgICAw eDg0ICAgICAgICAgLy8gU21pU3RhdHVzMQ0KPiAtI2RlZmluZSBGQ0hfU01JX1JFRzg4ICAgICAg ICAgICAgMHg4OCAgICAgICAgIC8vIFNtaVN0YXR1czINCj4gLSNkZWZpbmUgRkNIX1NNSV9SRUc4 QyAgICAgICAgICAgIDB4OEMgICAgICAgICAvLyBTbWlTdGF0dXMzDQo+IC0jZGVmaW5lIEZDSF9T TUlfUkVHOTAgICAgICAgICAgICAweDkwICAgICAgICAgLy8gU21pU3RhdHVzNA0KPiAtI2RlZmlu ZSBGQ0hfU01JX1JFRzk4ICAgICAgICAgICAgMHg5OCAgICAgICAgIC8vIFNtaVRyaWcNCj4gLSNk ZWZpbmUgRkNIX1NNSV9SRUdBMCAgICAgICAgICAgIDB4QTANCj4gLSNkZWZpbmUgRkNIX1NNSV9S RUdCMCAgICAgICAgICAgIDB4QjANCj4gLSNkZWZpbmUgRkNIX1NNSV9SRUdDNCAgICAgICAgICAg IDB4QzQNCj4gLSNkZWZpbmUgRkNIX1BNSU9BX1JFRzYwICAgICAgICAgIDB4NjAgICAgICAgICAv LyBBY3BpUG0xRXZ0QmxrDQo+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KPiArI2RlZmlu ZSBSX0ZDSF9BQ1BJX1BNMV9TVEFUVVMgIDB4MDANCj4gKyNkZWZpbmUgUl9GQ0hfQUNQSV9QTTFf RU5BQkxFICAweDAyDQo+ICsjZGVmaW5lIFJfRkNIX0FDUElfUE1fQ09OVFJPTCAgMHgwNA0KPiAr I2RlZmluZSBBQ1BJX01NSU9fQkFTRSAgICAgICAgIDB4RkVEODAwMDB1bA0KPiArI2RlZmluZSBT TUlfQkFTRSAgICAgICAgICAgICAgIDB4MjAwICAgICAgICAgIC8vIERXT1JEDQo+ICsjZGVmaW5l IFBNSU9fQkFTRSAgICAgICAgICAgICAgMHgzMDAgICAgICAgICAgLy8gRFdPUkQNCj4gKyNkZWZp bmUgRkNIX1NNSV9SRUc4MCAgICAgICAgICAweDgwICAgICAgICAgICAvLyBTbWlTdGF0dXMwDQo+ ICsjZGVmaW5lIEZDSF9TTUlfUkVHODQgICAgICAgICAgMHg4NCAgICAgICAgICAgLy8gU21pU3Rh dHVzMQ0KPiArI2RlZmluZSBGQ0hfU01JX1JFRzg4ICAgICAgICAgIDB4ODggICAgICAgICAgIC8v IFNtaVN0YXR1czINCj4gKyNkZWZpbmUgRkNIX1NNSV9SRUc4QyAgICAgICAgICAweDhDICAgICAg ICAgICAvLyBTbWlTdGF0dXMzDQo+ICsjZGVmaW5lIEZDSF9TTUlfUkVHOTAgICAgICAgICAgMHg5 MCAgICAgICAgICAgLy8gU21pU3RhdHVzNA0KPiArI2RlZmluZSBGQ0hfU01JX1JFRzk4ICAgICAg ICAgIDB4OTggICAgICAgICAgIC8vIFNtaVRyaWcNCj4gKyNkZWZpbmUgRkNIX1NNSV9SRUdBMCAg ICAgICAgICAweEEwDQo+ICsjZGVmaW5lIEZDSF9TTUlfUkVHQjAgICAgICAgICAgMHhCMA0KPiAr I2RlZmluZSBGQ0hfU01JX1JFR0M0ICAgICAgICAgIDB4QzQNCj4gKyNkZWZpbmUgRkNIX1BNSU9B X1JFRzYwICAgICAgICAweDYwICAgICAgICAgICAvLyBBY3BpUG0xRXZ0QmxrDQo+IGRpZmYgLS1n aXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0FnZXNhUHVibGljL0luY2x1ZGUvR3Vp ZC9BbWRNZW1vcnlJbmYNCj4gb0hvYi5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9B Z2VzYVB1YmxpYy9JbmNsdWRlL0d1aWQvQW1kTWVtb3J5SW5mDQo+IG9Ib2IuaA0KPiBpbmRleCA0 ODE1ZGM0ZDZlLi5hYTk0ZWQzNzNjIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL0FnZXNhUHVibGljL0luY2x1ZGUvR3VpZC9BbWRNZW1vcnlJbmYNCj4gb0hvYi5o DQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQWdlc2FQdWJsaWMvSW5jbHVk ZS9HdWlkL0FtZE1lbW9yeUluZg0KPiBvSG9iLmgNCj4gQEAgLTUsOCArNSw4IEBADQo+DQo+ICAq Ki8NCj4NCj4gLSNpZm5kZWYgX0FNRF9NRU1PUllfSU5GT19IT0JfSF8NCj4gLSNkZWZpbmUgX0FN RF9NRU1PUllfSU5GT19IT0JfSF8NCj4gKyNpZm5kZWYgQU1EX01FTU9SWV9JTkZPX0hPQl9IX18N Cj4gKyNkZWZpbmUgQU1EX01FTU9SWV9JTkZPX0hPQl9IX18NCj4NCj4gIGV4dGVybiBFRklfR1VJ RCAgZ0FtZE1lbW9yeUluZm9Ib2JHdWlkOw0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9JbmNsdWRlL0xpYnJhcnkvQW1kUHNwQmFzZUwN Cj4gaWJWMi5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9JbmNs dWRlL0xpYnJhcnkvQW1kUHNwQmFzZUwNCj4gaWJWMi5oDQo+IGluZGV4IDE5OGRmNTM3YzEuLmY1 OTVkNTczNjYgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQWdl c2FQdWJsaWMvSW5jbHVkZS9MaWJyYXJ5L0FtZFBzcEJhc2VMDQo+IGliVjIuaA0KPiArKysNCj4g Yi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0FnZXNhUHVibGljL0luY2x1ZGUvTGlicmFyeS9B bWRQc3BCYXNlTA0KPiBpYlYyLmgNCj4gQEAgLTUsOCArNSw4IEBADQo+DQo+ICAqKi8NCj4NCj4g LSNpZm5kZWYgX0FNRF9QU1BfQkFTRUxJQl9WMl9IXw0KPiAtI2RlZmluZSBfQU1EX1BTUF9CQVNF TElCX1YyX0hfDQo+ICsjaWZuZGVmIEFNRF9QU1BfQkFTRUxJQl9WMl9IX18NCj4gKyNkZWZpbmUg QU1EX1BTUF9CQVNFTElCX1YyX0hfXw0KPg0KPiAgI2luY2x1ZGUgPEFNRC5oPg0KPiAgI2luY2x1 ZGUgPEFtZFBzcERpcmVjdG9yeS5oPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1Zh bkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9JbmNsdWRlL0xpYnJhcnkvQW1kUHNwQ29tDQo+IG1vbkxp Yi5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9JbmNsdWRlL0xp YnJhcnkvQW1kUHNwQ29tDQo+IG1vbkxpYi5oDQo+IGluZGV4IGViMGYwOWRkNTguLjczODM4YjU5 MzQgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQWdlc2FQdWJs aWMvSW5jbHVkZS9MaWJyYXJ5L0FtZFBzcENvbQ0KPiBtb25MaWIuaA0KPiArKysNCj4gYi9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL0FnZXNhUHVibGljL0luY2x1ZGUvTGlicmFyeS9BbWRQc3BD b20NCj4gbW9uTGliLmgNCj4gQEAgLTUsOCArNSw4IEBADQo+DQo+ICAqKi8NCj4NCj4gLSNpZm5k ZWYgX0FNRF9QU1BDT01NT05MSUJfSF8NCj4gLSNkZWZpbmUgX0FNRF9QU1BDT01NT05MSUJfSF8N Cj4gKyNpZm5kZWYgQU1EX1BTUENPTU1PTkxJQl9IX18NCj4gKyNkZWZpbmUgQU1EX1BTUENPTU1P TkxJQl9IX18NCj4NCj4gICNpbmNsdWRlIDxBbWRQc3BEaXJlY3RvcnkuaD4NCj4NCj4gZGlmZiAt LWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQWdlc2FQdWJsaWMvSW5jbHVkZS9M aWJyYXJ5L0FtZFBzcEZ0cG0NCj4gTGliLmgNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJk L0FnZXNhUHVibGljL0luY2x1ZGUvTGlicmFyeS9BbWRQc3BGdHBtDQo+IExpYi5oDQo+IGluZGV4 IDJiZDRkY2VmYWEuLjUxYzI2NTI2MTQgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvQWdlc2FQdWJsaWMvSW5jbHVkZS9MaWJyYXJ5L0FtZFBzcEZ0cG0NCj4gTGli LmgNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9JbmNs dWRlL0xpYnJhcnkvQW1kUHNwRnRwbQ0KPiBMaWIuaA0KPiBAQCAtNSw4ICs1LDggQEANCj4NCj4g ICoqLw0KPg0KPiAtI2lmbmRlZiBfUFNQX0ZUUE1fTElCX0hfDQo+IC0jZGVmaW5lIF9QU1BfRlRQ TV9MSUJfSF8NCj4gKyNpZm5kZWYgUFNQX0ZUUE1fTElCX0hfXw0KPiArI2RlZmluZSBQU1BfRlRQ TV9MSUJfSF9fDQo+ICAjaW5jbHVkZSA8SW5kdXN0cnlTdGFuZGFyZC9BY3BpMzAuaD4NCj4NCj4g ICNkZWZpbmUgUFNQX0RFQlVHX0VOQUJMRSAgMA0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9JbmNsdWRlL1BwaS9BbWRQc3BGdHBtUHBpLg0K PiBoDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9JbmNsdWRlL1Bw aS9BbWRQc3BGdHBtUHBpLg0KPiBoDQo+IGluZGV4IDVmZTU5NzE5ZmIuLjY2MmFhZjk3MzYgMTAw NjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQWdlc2FQdWJsaWMvSW5j bHVkZS9QcGkvQW1kUHNwRnRwbVBwaS4NCj4gaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL0FnZXNhUHVibGljL0luY2x1ZGUvUHBpL0FtZFBzcEZ0cG1QcGkuDQo+IGgNCj4g QEAgLTUsOCArNSw4IEBADQo+DQo+ICAqKi8NCj4NCj4gLSNpZm5kZWYgX1BTUF9GVFBNX1BQSV9I Xw0KPiAtI2RlZmluZSBfUFNQX0ZUUE1fUFBJX0hfDQo+ICsjaWZuZGVmIFBTUF9GVFBNX1BQSV9I X18NCj4gKyNkZWZpbmUgUFNQX0ZUUE1fUFBJX0hfXw0KPiAgI2luY2x1ZGUgPFVlZmkuaD4NCj4g IHR5cGVkZWYgc3RydWN0IF9QU1BfRlRQTV9QUEkgUFNQX0ZUUE1fUFBJOw0KPg0KPiBkaWZmIC0t Z2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9JbmNsdWRlL1By b3RvY29sL0FtZFBzcEZ0cA0KPiBtUHJvdG9jb2wuaA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2do Qm9hcmQvQWdlc2FQdWJsaWMvSW5jbHVkZS9Qcm90b2NvbC9BbWRQc3BGdHANCj4gbVByb3RvY29s LmgNCj4gaW5kZXggNTMyZjZmZjE1Ny4uYjY0NjM1MTJiNiAxMDA2NDQNCj4gLS0tDQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9BZ2VzYVB1YmxpYy9JbmNsdWRlL1Byb3RvY29sL0FtZFBz cEZ0cA0KPiBtUHJvdG9jb2wuaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJk L0FnZXNhUHVibGljL0luY2x1ZGUvUHJvdG9jb2wvQW1kUHNwRnRwDQo+IG1Qcm90b2NvbC5oDQo+ IEBAIC01LDggKzUsOCBAQA0KPg0KPiAgKiovDQo+DQo+IC0jaWZuZGVmIF9GVFBNX1BST1RPQ09M X0hfDQo+IC0jZGVmaW5lIF9GVFBNX1BST1RPQ09MX0hfDQo+ICsjaWZuZGVmIEZUUE1fUFJPVE9D T0xfSF9fDQo+ICsjZGVmaW5lIEZUUE1fUFJPVE9DT0xfSF9fDQo+DQo+ICAjaW5jbHVkZSA8VWVm aS5oPg0KPiAgLy8NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv Q2hhY2hhbmlCb2FyZFBrZy9BY3BpL0FjcGlUYWJsZXMvRmFjcy9GDQo+IGFjcy5oDQo+IGIvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0FjcGkvQWNwaVRhYmxlcy9G YWNzL0YNCj4gYWNzLmgNCj4gaW5kZXggZGFmOTdkZDU4MS4uM2I2MTQwZjc1NCAxMDA2NDQNCj4g LS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0FjcGkv QWNwaVRhYmxlcy9GYWNzL0YNCj4gYWNzLmgNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1Zhbkdv Z2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0FjcGkvQWNwaVRhYmxlcy9GYWNzL0YNCj4gYWNzLmgN Cj4gQEAgLTEsMzAgKzEsMTYgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBJbXBsZW1lbnRzIEZhY3Mu aA0KPiArICBUaGlzIGZpbGUgZGVzY3JpYmVzIHRoZSBjb250ZW50cyBvZiB0aGUgQUNQSSBGaXJt d2FyZSBBQ1BJIENvbnRyb2wNCj4gU3RydWN0dXJlIChGQUNTKQ0KPiArICAuICBTb21lIGFkZGl0 aW9uYWwgQUNQSSB2YWx1ZXMgYXJlIGRlZmluZWQgaW4gQWNwaTEwLmgsIEFjcGkyMC5oLCBhbmQN Cj4gQWNwaTMwLmgNCj4gKyAgQWxsIGNoYW5nZXMgdG8gdGhlIEZBQ1MgY29udGVudHMgc2hvdWxk IGJlIGRvbmUgaW4gdGhpcyBmaWxlLg0KPg0KPiAgICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5j ZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgQ29w eXJpZ2h0IChjKSAyMDEzLTIwMTUgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiAgKiovDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxp c2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+DQo+IC0vKiogQGZpbGUNCj4g LVRoaXMgZmlsZSBkZXNjcmliZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBBQ1BJIEZpcm13YXJlIEFD UEkgQ29udHJvbCBTdHJ1Y3R1cmUNCj4gKEZBQ1MpDQo+IC0uICBTb21lIGFkZGl0aW9uYWwgQUNQ SSB2YWx1ZXMgYXJlIGRlZmluZWQgaW4gQWNwaTEwLmgsIEFjcGkyMC5oLCBhbmQNCj4gQWNwaTMw LmgNCj4gLUFsbCBjaGFuZ2VzIHRvIHRoZSBGQUNTIGNvbnRlbnRzIHNob3VsZCBiZSBkb25lIGlu IHRoaXMgZmlsZS4NCj4gLQ0KPiAtQ29weXJpZ2h0IChjKSAyMDEzLTIwMTUgSW50ZWwgQ29ycG9y YXRpb24uDQo+IC0NCj4gLVRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlh bHMNCj4gLWFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFu ZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGljZW5zZQ0KPiAtd2hpY2ggYWNjb21wYW5pZXMg dGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0K PiBmb3VuZCBhdA0KPiAtaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNl LnBocA0KPiAtDQo+IC1USEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJ Q0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gLVdJVEhPVVQgV0FSUkFOVElFUyBPUiBS RVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9SIElNUExJRUQu DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0jaWZuZGVmIF9GQUNTX0hfDQo+IC0jZGVmaW5lIF9GQUNT X0hfDQo+ICsjaWZuZGVmIEZBQ1NfSF9fDQo+ICsjZGVmaW5lIEZBQ1NfSF9fDQo+DQo+ICAvLw0K PiAgLy8gU3RhdGVtZW50cyB0aGF0IGluY2x1ZGUgb3RoZXIgZmlsZXMNCj4gQEAgLTM0LDEyICsy MCwxMiBAQCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GDQo+IEFOWSBL SU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELg0KPiAgLy8NCj4gIC8vIEZBQ1MgRGVmaW5p dGlvbnMNCj4gIC8vDQo+IC0jZGVmaW5lIEVGSV9BQ1BJX0ZJUk1XQVJFX1dBS0lOR19WRUNUT1Ig MHgwMDAwMDAwMA0KPiAtI2RlZmluZSBFRklfQUNQSV9HTE9CQUxfTE9DSyAweDAwMDAwMDAwDQo+ ICsjZGVmaW5lIEVGSV9BQ1BJX0ZJUk1XQVJFX1dBS0lOR19WRUNUT1IgIDB4MDAwMDAwMDANCj4g KyNkZWZpbmUgRUZJX0FDUElfR0xPQkFMX0xPQ0sgICAgICAgICAgICAgMHgwMDAwMDAwMA0KPg0K PiAtI2RlZmluZSBFRklfQUNQSV9GSVJNV0FSRV9DT05UUk9MX1NUUlVDVFVSRV9GTEFHUyAweDAw MDAwMDAwDQo+IC0jZGVmaW5lIEVGSV9BQ1BJX1hfRklSTVdBUkVfV0FLSU5HX1ZFQ1RPUiAweDAw MDAwMDAwMDAwMDAwMDANCj4gKyNkZWZpbmUgRUZJX0FDUElfRklSTVdBUkVfQ09OVFJPTF9TVFJV Q1RVUkVfRkxBR1MgIDB4MDAwMDAwMDANCj4gKyNkZWZpbmUgRUZJX0FDUElfWF9GSVJNV0FSRV9X QUtJTkdfVkVDVE9SDQo+IDB4MDAwMDAwMDAwMDAwMDAwMA0KPg0KPiAtI2RlZmluZSBFRklfQUNQ SV9PU1BNX0ZMQUdTIDB4MDAwMDAwMDANCj4gKyNkZWZpbmUgRUZJX0FDUElfT1NQTV9GTEFHUyAg MHgwMDAwMDAwMA0KPg0KPiAgI2VuZGlmDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvQWNwaS9BY3BpVGFibGVzL0ZhZHQvRg0KPiBh ZHQuaA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9BY3Bp L0FjcGlUYWJsZXMvRmFkdC9GDQo+IGFkdC5oDQo+IGluZGV4IDk2OGE0YjBmYTUuLjVkNmMyNWJj ZjUgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlC b2FyZFBrZy9BY3BpL0FjcGlUYWJsZXMvRmFkdC9GDQo+IGFkdC5oDQo+ICsrKw0KPiBiL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9BY3BpL0FjcGlUYWJsZXMvRmFk dC9GDQo+IGFkdC5oDQo+IEBAIC01LDggKzUsOCBAQA0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgKiovDQo+DQo+IC0jaWZuZGVmIF9GQURUX0hf DQo+IC0jZGVmaW5lIF9GQURUX0hfDQo+ICsjaWZuZGVmIEZBRFRfSF9fDQo+ICsjZGVmaW5lIEZB RFRfSF9fDQo+DQo+ICAvLw0KPiAgLy8gU3RhdGVtZW50cyB0aGF0IGluY2x1ZGUgb3RoZXIgZmls ZXMNCj4gQEAgLTE2LDM1ICsxNiwzNSBAQA0KPiAgLy8NCj4gIC8vIEFDUEkgdGFibGUgaW5mb3Jt YXRpb24gdXNlZCB0byBpbml0aWFsaXplIHRhYmxlcy4NCj4gIC8vDQo+IC0jZGVmaW5lIEVGSV9B Q1BJX09FTV9JRCAgICAgICAgICAgJ0EnLCdNJywnRCcsJyAnLCcgJywnICcgICAvLyBPRU1JRCA2 IGJ5dGVzIGxvbmcNCj4gLSNkZWZpbmUgRUZJX0FDUElfT0VNX1RBQkxFX0lEICAgICBTSUdOQVRV UkVfNjQoJ0UnLCdEJywnSycsJzInLCcgJywnICcsJyAnLCcgJykgLy8NCj4gT0VNIHRhYmxlIGlk IDggYnl0ZXMgbG9uZw0KPiAtI2RlZmluZSBFRklfQUNQSV9PRU1fUkVWSVNJT04gICAgIDB4MDAw MDAwMDINCj4gLSNkZWZpbmUgRUZJX0FDUElfQ1JFQVRPUl9JRCAgICAgICBTSUdOQVRVUkVfMzIo JyAnLCcgJywnICcsJyAnKQ0KPiAtI2RlZmluZSBFRklfQUNQSV9DUkVBVE9SX1JFVklTSU9OIDB4 MDEwMDAwMTMNCj4gKyNkZWZpbmUgRUZJX0FDUElfT0VNX0lEICAgICAgICAgICAgJ0EnLCdNJywn RCcsJyAnLCcgJywnICcgICAgICAgICAgICAgICAgICAgICAgIC8vIE9FTUlEIDYNCj4gYnl0ZXMg bG9uZw0KPiArI2RlZmluZSBFRklfQUNQSV9PRU1fVEFCTEVfSUQgICAgICBTSUdOQVRVUkVfNjQo J0UnLCdEJywnSycsJzInLCcgJywnICcsJyAnLCcgJykNCj4gLy8gT0VNIHRhYmxlIGlkIDggYnl0 ZXMgbG9uZw0KPiArI2RlZmluZSBFRklfQUNQSV9PRU1fUkVWSVNJT04gICAgICAweDAwMDAwMDAy DQo+ICsjZGVmaW5lIEVGSV9BQ1BJX0NSRUFUT1JfSUQgICAgICAgIFNJR05BVFVSRV8zMignICcs JyAnLCcgJywnICcpDQo+ICsjZGVmaW5lIEVGSV9BQ1BJX0NSRUFUT1JfUkVWSVNJT04gIDB4MDEw MDAwMTMNCj4NCj4gIC8vDQo+ICAvLyBGQURUIERlZmluaXRpb25zDQo+ICAvLw0KPiAtI2RlZmlu ZSBTQ0lfSU5UX1ZFQ1RPUiAgMHgwMDA5DQo+IC0jZGVmaW5lIFNNSV9DTURfSU9fUE9SVCAweDAw MDAwMEIwICAvLyBTTUkgUG9ydCAweEIwDQo+IC0jZGVmaW5lIEFDUElfRU5BQkxFICAgICAweDBB MA0KPiAtI2RlZmluZSBBQ1BJX0RJU0FCTEUgICAgMHgwQTENCj4gKyNkZWZpbmUgU0NJX0lOVF9W RUNUT1IgICAweDAwMDkNCj4gKyNkZWZpbmUgU01JX0NNRF9JT19QT1JUICAweDAwMDAwMEIwIC8v IFNNSSBQb3J0IDB4QjANCj4gKyNkZWZpbmUgQUNQSV9FTkFCTEUgICAgICAweDBBMA0KPiArI2Rl ZmluZSBBQ1BJX0RJU0FCTEUgICAgIDB4MEExDQo+DQo+IC0jZGVmaW5lIFBNMWFfRVZUX0JMSyAg ICAgICAgMHgwMDAwMDQwMA0KPiAtI2RlZmluZSBQTTFiX0VWVF9CTEsgICAgICAgIDB4MDAwMDAw MDANCj4gLSNkZWZpbmUgUE0xYV9DTlRfQkxLICAgICAgICAweDAwMDAwNDA0DQo+IC0jZGVmaW5l IFBNMWJfQ05UX0JMSyAgICAgICAgMHgwMDAwMDAwMA0KPiAtI2RlZmluZSBQTTJfQ05UX0JMSyAg ICAgICAgIDB4MDAwMDA4MDANCj4gLSNkZWZpbmUgUE1fVE1SX0JMSyAgICAgICAgICAweDAwMDAw NDA4DQo+IC0jZGVmaW5lIEdQRTBfQkxLICAgICAgICAgICAgMHgwMDAwMDQyMA0KPiAtI2RlZmlu ZSBHUEUxX0JMSyAgICAgICAgICAgIDB4MDAwMDAwMDANCj4gLSNkZWZpbmUgUE0xX0VWVF9MRU4g ICAgICAgICAweDA0DQo+IC0jZGVmaW5lIFBNMV9DTlRfTEVOICAgICAgICAgMHgwMg0KPiAtI2Rl ZmluZSBQTTJfQ05UX0xFTiAgICAgICAgIDB4MDENCj4gLSNkZWZpbmUgUE1fVE1fTEVOICAgICAg ICAgICAweDA0DQo+IC0jZGVmaW5lIEdQRTBfQkxLX0xFTiAgICAgICAgMHgwOA0KPiAtI2RlZmlu ZSBHUEUxX0JMS19MRU4gICAgICAgIDB4MDANCj4gLSNkZWZpbmUgR1BFMV9CQVNFICAgICAgICAg ICAweDAwDQo+ICsjZGVmaW5lIFBNMWFfRVZUX0JMSyAgMHgwMDAwMDQwMA0KPiArI2RlZmluZSBQ TTFiX0VWVF9CTEsgIDB4MDAwMDAwMDANCj4gKyNkZWZpbmUgUE0xYV9DTlRfQkxLICAweDAwMDAw NDA0DQo+ICsjZGVmaW5lIFBNMWJfQ05UX0JMSyAgMHgwMDAwMDAwMA0KPiArI2RlZmluZSBQTTJf Q05UX0JMSyAgIDB4MDAwMDA4MDANCj4gKyNkZWZpbmUgUE1fVE1SX0JMSyAgICAweDAwMDAwNDA4 DQo+ICsjZGVmaW5lIEdQRTBfQkxLICAgICAgMHgwMDAwMDQyMA0KPiArI2RlZmluZSBHUEUxX0JM SyAgICAgIDB4MDAwMDAwMDANCj4gKyNkZWZpbmUgUE0xX0VWVF9MRU4gICAweDA0DQo+ICsjZGVm aW5lIFBNMV9DTlRfTEVOICAgMHgwMg0KPiArI2RlZmluZSBQTTJfQ05UX0xFTiAgIDB4MDENCj4g KyNkZWZpbmUgUE1fVE1fTEVOICAgICAweDA0DQo+ICsjZGVmaW5lIEdQRTBfQkxLX0xFTiAgMHgw OA0KPiArI2RlZmluZSBHUEUxX0JMS19MRU4gIDB4MDANCj4gKyNkZWZpbmUgR1BFMV9CQVNFICAg ICAweDAwDQo+DQo+ICAjZGVmaW5lIFJFU0VSVkVEICAgICAgICAweDAwDQo+ICAjZGVmaW5lIFBf TFZMMl9MQVQgICAgICAweDAwNjQNCj4gQEAgLTU3LDkgKzU3LDggQEANCj4gICNkZWZpbmUgTU9O X0FMUk0gICAgICAgIDB4MDANCj4gICNkZWZpbmUgQ0VOVFVSWSAgICAgICAgIDB4MDANCj4gICNk ZWZpbmUgSUFQQ19CT09UX0FSQ0ggIEVGSV9BQ1BJXzJfMF9MRUdBQ1lfREVWSUNFUw0KPiAtLy8j ZGVmaW5lIEZMQUcgICAgICAgICAgICAoRUZJX0FDUElfMV8wX1dCSU5WRCB8IEVGSV9BQ1BJXzFf MF9QUk9DX0MxIHwNCj4gRUZJX0FDUElfMV8wX1NMUF9CVVRUT04gfCBFRklfQUNQSV8xXzBfUlRD X1M0KQ0KPiAtI2RlZmluZSBGTEFHICAgICAgICAgICAgMHgwMDAwQzVBRA0KPiAtI2RlZmluZSBG TEFHMiAgICAgICAgICAgKEVGSV9BQ1BJXzJfMF9XQklOVkQgfCBFRklfQUNQSV8yXzBfUFJPQ19D MSB8DQo+IEVGSV9BQ1BJXzJfMF9QV1JfQlVUVE9OIHwgRUZJX0FDUElfMl8wX1NMUF9CVVRUT04g fA0KPiBFRklfQUNQSV8yXzBfUlRDX1M0IHwgRUZJX0FDUElfMl8wX1JFU0VUX1JFR19TVVAgfA0K PiBFRklfQUNQSV8zXzBfVVNFX1BMQVRGT1JNX0NMT0NLKQ0KPiAtDQo+ICsvLyAjZGVmaW5lIEZM QUcgICAgICAgICAgICAoRUZJX0FDUElfMV8wX1dCSU5WRCB8IEVGSV9BQ1BJXzFfMF9QUk9DX0Mx IHwNCj4gRUZJX0FDUElfMV8wX1NMUF9CVVRUT04gfCBFRklfQUNQSV8xXzBfUlRDX1M0KQ0KPiAr I2RlZmluZSBGTEFHICAgMHgwMDAwQzVBRA0KPiArI2RlZmluZSBGTEFHMiAgKEVGSV9BQ1BJXzJf MF9XQklOVkQgfCBFRklfQUNQSV8yXzBfUFJPQ19DMSB8DQo+IEVGSV9BQ1BJXzJfMF9QV1JfQlVU VE9OIHwgRUZJX0FDUElfMl8wX1NMUF9CVVRUT04gfA0KPiBFRklfQUNQSV8yXzBfUlRDX1M0IHwg RUZJX0FDUElfMl8wX1JFU0VUX1JFR19TVVAgfA0KPiBFRklfQUNQSV8zXzBfVVNFX1BMQVRGT1JN X0NMT0NLKQ0KPg0KPiAgI2VuZGlmDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvQWNwaS9BY3BpVGFibGVzL0hwZXQvDQo+IEhwZXQu aA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9BY3BpL0Fj cGlUYWJsZXMvSHBldC8NCj4gSHBldC5oDQo+IGluZGV4IGUyOGE0NzNmMzkuLmUzMzc5YmY0MGEg MTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2Fy ZFBrZy9BY3BpL0FjcGlUYWJsZXMvSHBldC8NCj4gSHBldC5oDQo+ICsrKw0KPiBiL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9BY3BpL0FjcGlUYWJsZXMvSHBldC8N Cj4gSHBldC5oDQo+IEBAIC01LDggKzUsOCBAQA0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgKiovDQo+DQo+IC0jaWZuZGVmIF9IUEVUX0hfDQo+ IC0jZGVmaW5lIF9IUEVUX0hfDQo+ICsjaWZuZGVmIEhQRVRfSF9fDQo+ICsjZGVmaW5lIEhQRVRf SF9fDQo+DQo+ICAvLw0KPiAgLy8gU3RhdGVtZW50cyB0aGF0IGluY2x1ZGUgb3RoZXIgZmlsZXMN Cj4gQEAgLTE2LDEyICsxNiwxMSBAQA0KPiAgLy8NCj4gIC8vIEFDUEkgdGFibGUgaW5mb3JtYXRp b24gdXNlZCB0byBpbml0aWFsaXplIHRhYmxlcy4NCj4gIC8vDQo+IC0jZGVmaW5lIEVGSV9BQ1BJ X09FTV9JRCAgICAgICAgICAgJ0EnLCdNJywnRCcsJyAnLCcgJywnICcgICAvLyBPRU1JRCA2IGJ5 dGVzIGxvbmcNCj4gLSNkZWZpbmUgRUZJX0FDUElfT0VNX1RBQkxFX0lEICAgICBTSUdOQVRVUkVf NjQoJ0UnLCdEJywnSycsJzInLCcgJywnICcsJyAnLCcgJykgLy8NCj4gT0VNIHRhYmxlIGlkIDgg Ynl0ZXMgbG9uZw0KPiAtI2RlZmluZSBFRklfQUNQSV9PRU1fUkVWSVNJT04gICAgIDB4MDAwMDAw MDINCj4gLSNkZWZpbmUgRUZJX0FDUElfQ1JFQVRPUl9JRCAgICAgICBTSUdOQVRVUkVfMzIoJyAn LCcgJywnICcsJyAnKQ0KPiAtI2RlZmluZSBFRklfQUNQSV9DUkVBVE9SX1JFVklTSU9OIDB4MDEw MDAwMTMNCj4gLQ0KPiArI2RlZmluZSBFRklfQUNQSV9PRU1fSUQgICAgICAgICAgICAnQScsJ00n LCdEJywnICcsJyAnLCcgJyAgICAgICAgICAgICAgICAgICAgICAgLy8gT0VNSUQgNg0KPiBieXRl cyBsb25nDQo+ICsjZGVmaW5lIEVGSV9BQ1BJX09FTV9UQUJMRV9JRCAgICAgIFNJR05BVFVSRV82 NCgnRScsJ0QnLCdLJywnMicsJyAnLCcgJywnICcsJyAnKQ0KPiAvLyBPRU0gdGFibGUgaWQgOCBi eXRlcyBsb25nDQo+ICsjZGVmaW5lIEVGSV9BQ1BJX09FTV9SRVZJU0lPTiAgICAgIDB4MDAwMDAw MDINCj4gKyNkZWZpbmUgRUZJX0FDUElfQ1JFQVRPUl9JRCAgICAgICAgU0lHTkFUVVJFXzMyKCcg JywnICcsJyAnLCcgJykNCj4gKyNkZWZpbmUgRUZJX0FDUElfQ1JFQVRPUl9SRVZJU0lPTiAgMHgw MTAwMDAxMw0KPg0KPiAgLy8NCj4gIC8vIEhQRVQgc3RydWN0dXJlDQo+IEBAIC0yOSwxMiArMjgs MTIgQEANCj4gICNkZWZpbmUgRUZJX0FDUElfNV8wX0hJR0hfUFJFQ0lTSU9OX0VWRU5UX1RJTUVS X1RBQkxFX1JFVklTSU9ODQo+IDB4MDANCj4NCj4gICNkZWZpbmUgRUZJX0FDUElfNV8wX0hQRVRf RVZFTlRfVElNRVJfQkxPQ0tfSUQgIDB4MTAyMjgyMDENCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFszMToxNl0gMHgxMDIyIC0gUENJIFZlbmRv ciBJRCBvZiAxc3QgVGltZXINCj4gQmxvY2sNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vICAgIFsxNV0gMHgwMSAtIExlZ2FjeSBSZXBsYWNlbWVu dCBJUlEgUm91dGluZw0KPiBDYXBhYmxlDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAgICBbMTRdIDB4MDAgLSBSZXNlcnZlZA0KPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgWzEzXSAweDAw IC0gQ09VTlRfU0laRV9DQVAgY291bnRlciBzaXplDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBbMTI6MDhdIDB4MDIgLSBOdW1iZXIgb2YgQ29t cGFyYXRvcnMgaW4gMXN0DQo+IFRpbWVyIEJsb2NrDQo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBbMDc6MDBdIDB4MDEgLSBIYXJkd2FyZSBSZXYg SUQNCj4gKy8vIFszMToxNl0gMHgxMDIyIC0gUENJIFZlbmRvciBJRCBvZiAxc3QgVGltZXIgQmxv Y2sNCj4gKy8vICAgIFsxNV0gMHgwMSAtIExlZ2FjeSBSZXBsYWNlbWVudCBJUlEgUm91dGluZyBD YXBhYmxlDQo+ICsvLyAgICBbMTRdIDB4MDAgLSBSZXNlcnZlZA0KPiArLy8gICAgWzEzXSAweDAw IC0gQ09VTlRfU0laRV9DQVAgY291bnRlciBzaXplDQo+ICsvLyBbMTI6MDhdIDB4MDIgLSBOdW1i ZXIgb2YgQ29tcGFyYXRvcnMgaW4gMXN0IFRpbWVyIEJsb2NrDQo+ICsvLyBbMDc6MDBdIDB4MDEg LSBIYXJkd2FyZSBSZXYgSUQNCj4gICNkZWZpbmUgRUZJX0FDUElfNV8wX0hQRVRfQkFTRV9BRERS RVNTX1NQQUNFX0lEICAgICAgICAgICAgIDB4MDANCj4gICNkZWZpbmUgRUZJX0FDUElfNV8wX0hQ RVRfQkFTRV9BRERSRVNTX1JFR0lTVEVSX0JJVF9XSURUSCAgIDB4MDANCj4gICNkZWZpbmUgRUZJ X0FDUElfNV8wX0hQRVRfQkFTRV9BRERSRVNTX1JFR0lTVEVSX0JJVF9PRkZTRVQgIDB4MDANCj4g QEAgLTUyLDE4ICs1MSwxOCBAQA0KPiAgLy8NCj4gIHR5cGVkZWYgc3RydWN0IHsNCj4gICAgLy8g QUNQSSBDb21tb24gaGVhZGVyDQo+IC0gIEVGSV9BQ1BJX0RFU0NSSVBUSU9OX0hFQURFUiAgIEhl YWRlcjsNCj4gKyAgRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSICAgIEhlYWRlcjsNCj4gICAg Ly8gSFBFVA0KPiAtICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICBFdmVudFRpbWVyQmxv Y2tJRDsgICAgICAgICAgICAvLyBPZmZzZXQgMHgyNA0KPiAtICBVSU5UOCAgICAgICAgICAgICAg ICAgICAgICAgICBCYXNlQWRkcmVzc19TcGFjZUlEOw0KPiAtICBVSU5UOCAgICAgICAgICAgICAg ICAgICAgICAgICBCYXNlQWRkcmVzc19SZWdpc3RlckJpdFdpZHRoOw0KPiAtICBVSU5UOCAgICAg ICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzc19SZWdpc3RlckJpdE9mZnNldDsNCj4gLSAg VUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQwWzFdOw0KPiAtICBVSU5UMzIg ICAgICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzc0xvd2VyMzJiaXQ7ICAgICAgICAvLyBP ZmZzZXQgMHgyOA0KPiAtICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZDFb MV07DQo+IC0gIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgIEhwZXROdW1iZXI7ICAgICAg ICAgICAgICAgICAgIC8vIE9mZnNldCAweDM0DQo+IC0gIFVJTlQxNiAgICAgICAgICAgICAgICAg ICAgICAgIE1pbkNsb2NrVGljazsgICAgICAgICAgICAgICAgIC8vIE9mZnNldCAweDM1DQo+IC0g IFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgIFBhZ2VQcm90ZWN0aW9uQW5kT2VtQXR0cmli dXRlOy8vIE9mZnNldCAweDM3DQo+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICBF dmVudFRpbWVyQmxvY2tJRDsgICAgICAgICAgIC8vIE9mZnNldCAweDI0DQo+ICsgIFVJTlQ4ICAg ICAgICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzc19TcGFjZUlEOw0KPiArICBVSU5UOCAg ICAgICAgICAgICAgICAgICAgICAgICAgQmFzZUFkZHJlc3NfUmVnaXN0ZXJCaXRXaWR0aDsNCj4g KyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgIEJhc2VBZGRyZXNzX1JlZ2lzdGVyQml0 T2Zmc2V0Ow0KPiArICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQwWzFd Ow0KPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgQmFzZUFkZHJlc3NMb3dlcjMy Yml0OyAgICAgICAvLyBPZmZzZXQgMHgyOA0KPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAg ICAgICAgUmVzZXJ2ZWQxWzFdOw0KPiArICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAg SHBldE51bWJlcjsgICAgICAgICAgICAgICAgICAgIC8vIE9mZnNldCAweDM0DQo+ICsgIFVJTlQx NiAgICAgICAgICAgICAgICAgICAgICAgICBNaW5DbG9ja1RpY2s7ICAgICAgICAgICAgICAgICAg Ly8gT2Zmc2V0IDB4MzUNCj4gKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgIFBhZ2VQ cm90ZWN0aW9uQW5kT2VtQXR0cmlidXRlOyAvLyBPZmZzZXQgMHgzNw0KPiAgfSBFRklfQUNQSV81 XzBfSElHSF9QUkVDSVNJT05fRVZFTlRfVElNRVJfVEFCTEU7DQo+DQo+ICAjcHJhZ21hIHBhY2sg KCkNCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlC b2FyZFBrZy9BY3BpL0FjcGlUYWJsZXMvTWFkdC8NCj4gTWFkdC5oDQo+IGIvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0FjcGkvQWNwaVRhYmxlcy9NYWR0Lw0KPiBN YWR0LmgNCj4gaW5kZXggY2QzZTk2NTE0Mi4uMDgwOWU0NmRkOCAxMDA2NDQNCj4gLS0tDQo+IGEv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0FjcGkvQWNwaVRhYmxl cy9NYWR0Lw0KPiBNYWR0LmgNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9D aGFjaGFuaUJvYXJkUGtnL0FjcGkvQWNwaVRhYmxlcy9NYWR0Lw0KPiBNYWR0LmgNCj4gQEAgLTEs ODUgKzEsNjIgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBJbXBsZW1lbnRzIE1hZHQuaA0KPiAtDQo+ IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPiAtKiovDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmln aW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4g LS8qKysNCj4gLQ0KPiAtQ29weXJpZ2h0IChjKSAyMDA0ICAtIDIwMTQsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLQ0KPiAtICBUaGlzIHByb2dyYW0gYW5k IHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBsaWNlbnNlZCBhbmQgbWFkZQ0KPiBhdmFp bGFibGUgdW5kZXINCj4gLSAgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGlj ZW5zZSB0aGF0IGFjY29tcGFuaWVzIHRoaXMNCj4gZGlzdHJpYnV0aW9uLg0KPiAtICBUaGUgZnVs bCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBhdA0KPiAtICBodHRwOi8vb3BlbnNv dXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwLg0KPiAtDQo+IC0gIFRIRSBQUk9HUkFN IElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJB U0lTLA0KPiAtICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBL SU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiAtDQo+IC0NCj4gLU1vZHVsZSBO YW1lOg0KPiAtDQo+IC0gIE1hZHQuaA0KPiAtDQo+IC1BYnN0cmFjdDoNCj4gLQ0KPiAgICBUaGlz IGZpbGUgZGVzY3JpYmVzIHRoZSBjb250ZW50cyBvZiB0aGUgQUNQSSBNdWx0aXBsZSBBUElDIERl c2NyaXB0aW9uDQo+ICAgIFRhYmxlIChNQURUKS4gIFNvbWUgYWRkaXRpb25hbCBBQ1BJIHZhbHVl cyBhcmUgZGVmaW5lZCBpbiBBY3BpMV8wLmggYW5kDQo+ICAgIEFjcGkyXzAuaC4NCj4gICAgVG8g bWFrZSBjaGFuZ2VzIHRvIHRoZSBNQURULCBpdCBpcyBuZWNlc3NhcnkgdG8gdXBkYXRlIHRoZSBj b3VudCBmb3IgdGhlDQo+ICAgIEFQSUMgc3RydWN0dXJlIGJlaW5nIHVwZGF0ZWQsIGFuZCB0byBt b2RpZnkgdGFibGUgZm91bmQgaW4gTWFkdC5jLg0KPg0KPiAtLS0qLw0KPiArICBDb3B5cmlnaHQg KEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDA0ICAtIDIwMTQsIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKyoqLw0KPg0KPiAtI2lmbmRlZiBfTUFEVF9IXw0KPiAt I2RlZmluZSBfTUFEVF9IXw0KPiArI2lmbmRlZiBNQURUX0hfXw0KPiArI2RlZmluZSBNQURUX0hf Xw0KPg0KPiAgLy8NCj4gIC8vIFN0YXRlbWVudHMgdGhhdCBpbmNsdWRlIG90aGVyIGZpbGVzDQo+ ICAvLw0KPiAgI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQvQWNwaS5oPg0KPiAtLy8jaW5jbHVk ZSA8QWNwaUhlYWRlckRlZmF1bHRWYWx1ZS5oPg0KPiArLy8gI2luY2x1ZGUgPEFjcGlIZWFkZXJE ZWZhdWx0VmFsdWUuaD4NCj4gIC8vDQo+ICAvLyBBQ1BJIHRhYmxlIGluZm9ybWF0aW9uIHVzZWQg dG8gaW5pdGlhbGl6ZSB0YWJsZXMuDQo+ICAvLw0KPiAtI2RlZmluZSBFRklfQUNQSV9PRU1fSUQg ICAgICAgICAgICdBJywnTScsJ0QnLCcgJywnICcsJyAnICAgLy8gT0VNSUQgNiBieXRlcyBsb25n DQo+IC0jZGVmaW5lIEVGSV9BQ1BJX09FTV9UQUJMRV9JRCAgICAgU0lHTkFUVVJFXzY0KCdFJywn RCcsJ0snLCcyJywnICcsJyAnLCcgJywnICcpIC8vDQo+IE9FTSB0YWJsZSBpZCA4IGJ5dGVzIGxv bmcNCj4gLSNkZWZpbmUgRUZJX0FDUElfT0VNX1JFVklTSU9OICAgICAweDAwMDAwMDAyDQo+IC0j ZGVmaW5lIEVGSV9BQ1BJX0NSRUFUT1JfSUQgICAgICAgU0lHTkFUVVJFXzMyKCcgJywnICcsJyAn LCcgJykNCj4gLSNkZWZpbmUgRUZJX0FDUElfQ1JFQVRPUl9SRVZJU0lPTiAweDAxMDAwMDEzDQo+ ICsjZGVmaW5lIEVGSV9BQ1BJX09FTV9JRCAgICAgICAgICAgICdBJywnTScsJ0QnLCcgJywnICcs JyAnICAgICAgICAgICAgICAgICAgICAgICAvLyBPRU1JRCA2DQo+IGJ5dGVzIGxvbmcNCj4gKyNk ZWZpbmUgRUZJX0FDUElfT0VNX1RBQkxFX0lEICAgICAgU0lHTkFUVVJFXzY0KCdFJywnRCcsJ0sn LCcyJywnICcsJyAnLCcgJywnICcpDQo+IC8vIE9FTSB0YWJsZSBpZCA4IGJ5dGVzIGxvbmcNCj4g KyNkZWZpbmUgRUZJX0FDUElfT0VNX1JFVklTSU9OICAgICAgMHgwMDAwMDAwMg0KPiArI2RlZmlu ZSBFRklfQUNQSV9DUkVBVE9SX0lEICAgICAgICBTSUdOQVRVUkVfMzIoJyAnLCcgJywnICcsJyAn KQ0KPiArI2RlZmluZSBFRklfQUNQSV9DUkVBVE9SX1JFVklTSU9OICAweDAxMDAwMDEzDQo+DQo+ ICAvLw0KPiAgLy8gTG9jYWwgQVBJQyBhZGRyZXNzDQo+ICAvLw0KPiAtI2RlZmluZSBFRklfQUNQ SV9MT0NBTF9BUElDX0FERFJFU1MgMHhGRUUwMDAwMA0KPiAtLy8jZGVmaW5lIEVGSV9JT19BUElD X0FERFJFU1MgICAgICAgICAweEZFQzAwMDAwDQo+ICsjZGVmaW5lIEVGSV9BQ1BJX0xPQ0FMX0FQ SUNfQUREUkVTUyAgMHhGRUUwMDAwMA0KPiArLy8gI2RlZmluZSBFRklfSU9fQVBJQ19BRERSRVNT ICAgICAgICAgMHhGRUMwMDAwMA0KPg0KPiAgLy8NCj4gIC8vIE11bHRpcGxlIEFQSUMgRmxhZ3Mg YXJlIGRlZmluZWQgaW4gQWNwaVguMC5oDQo+ICAvLw0KPiAtI2RlZmluZSBFRklfQUNQSV81XzBf TVVMVElQTEVfQVBJQ19GTEFHUw0KPiAoRUZJX0FDUElfNV8wX1BDQVRfQ09NUEFUKQ0KPiArI2Rl ZmluZSBFRklfQUNQSV81XzBfTVVMVElQTEVfQVBJQ19GTEFHUw0KPiAoRUZJX0FDUElfNV8wX1BD QVRfQ09NUEFUKQ0KPg0KPiAgLy8NCj4gIC8vIERlZmluZSB0aGUgbnVtYmVyIG9mIGVhY2ggdGFi bGUgdHlwZS4NCj4gIC8vIFRoaXMgaXMgd2hlcmUgdGhlIHRhYmxlIGxheW91dCBpcyBtb2RpZmll ZC4NCj4gIC8vDQo+DQo+ICsjZGVmaW5lIEVGSV9BQ1BJX1BST0NFU1NPUl9MT0NBTF9BUElDX0NP VU5UICAxNg0KPg0KPiAtI2RlZmluZSBFRklfQUNQSV9QUk9DRVNTT1JfTE9DQUxfQVBJQ19DT1VO VCAgICAgICAgICAgMTYNCj4gLQ0KPiAtI2RlZmluZSBFRklfQUNQSV9JT19BUElDX0NPVU5UICAg ICAgICAgICAgICAgICAgICAgICAgMg0KPiArI2RlZmluZSBFRklfQUNQSV9JT19BUElDX0NPVU5U ICAyDQo+DQo+ICAjZGVmaW5lIEVGSV9BQ1BJX0lOVEVSUlVQVF9TT1VSQ0VfT1ZFUlJJREVfQ09V TlQgICAgICAyDQo+ICAjZGVmaW5lIEVGSV9BQ1BJX05PTl9NQVNLQUJMRV9JTlRFUlJVUFRfU09V UkNFX0NPVU5UICAwDQo+DQo+IC0jZGVmaW5lIEVGSV9BQ1BJX0xPQ0FMX0FQSUNfTk1JX0NPVU5U ICAgICAgICAgICAgICAgICAxNg0KPiArI2RlZmluZSBFRklfQUNQSV9MT0NBTF9BUElDX05NSV9D T1VOVCAgMTYNCj4NCj4gLSNkZWZpbmUgRUZJX0FDUElfTE9DQUxfQVBJQ19BRERSRVNTX09WRVJS SURFX0NPVU5UICAgIDANCj4gLSNkZWZpbmUgRUZJX0FDUElfSU9fU0FQSUNfQ09VTlQgICAgICAg ICAgICAgICAgICAgICAgIDANCj4gLSNkZWZpbmUgRUZJX0FDUElfUFJPQ0VTU09SX0xPQ0FMX1NB UElDX0NPVU5UICAgICAgICAgIDANCj4gLSNkZWZpbmUgRUZJX0FDUElfUExBVEZPUk1fSU5URVJS VVBUX1NPVVJDRVNfQ09VTlQgICAgIDANCj4gKyNkZWZpbmUgRUZJX0FDUElfTE9DQUxfQVBJQ19B RERSRVNTX09WRVJSSURFX0NPVU5UICAwDQo+ICsjZGVmaW5lIEVGSV9BQ1BJX0lPX1NBUElDX0NP VU5UICAgICAgICAgICAgICAgICAgICAgMA0KPiArI2RlZmluZSBFRklfQUNQSV9QUk9DRVNTT1Jf TE9DQUxfU0FQSUNfQ09VTlQgICAgICAgIDANCj4gKyNkZWZpbmUgRUZJX0FDUElfUExBVEZPUk1f SU5URVJSVVBUX1NPVVJDRVNfQ09VTlQgICAwDQo+DQo+ICAvLw0KPiAgLy8gTUFEVCBzdHJ1Y3R1 cmUNCj4gQEAgLTkzLDQ0ICs3MCw0MyBAQCBBYnN0cmFjdDoNCj4gIC8vIEFDUEkgNS4wIFRhYmxl IHN0cnVjdHVyZQ0KPiAgLy8NCj4gIHR5cGVkZWYgc3RydWN0IHsNCj4gLSAgRUZJX0FDUElfNV8w X01VTFRJUExFX0FQSUNfREVTQ1JJUFRJT05fVEFCTEVfSEVBREVSICAgSGVhZGVyOw0KPiArICBF RklfQUNQSV81XzBfTVVMVElQTEVfQVBJQ19ERVNDUklQVElPTl9UQUJMRV9IRUFERVIgICAgIEhl YWRlcjsNCj4NCj4gLSNpZiBFRklfQUNQSV9QUk9DRVNTT1JfTE9DQUxfQVBJQ19DT1VOVCA+IDAN Cj4gLSAgRUZJX0FDUElfNV8wX1BST0NFU1NPUl9MT0NBTF9BUElDX1NUUlVDVFVSRQ0KPiBMb2Nh bEFwaWNbRUZJX0FDUElfUFJPQ0VTU09SX0xPQ0FMX0FQSUNfQ09VTlRdOw0KPiAtI2VuZGlmDQo+ ICsgI2lmIEVGSV9BQ1BJX1BST0NFU1NPUl9MT0NBTF9BUElDX0NPVU5UID4gMA0KPiArICBFRklf QUNQSV81XzBfUFJPQ0VTU09SX0xPQ0FMX0FQSUNfU1RSVUNUVVJFDQo+IExvY2FsQXBpY1tFRklf QUNQSV9QUk9DRVNTT1JfTE9DQUxfQVBJQ19DT1VOVF07DQo+ICsgI2VuZGlmDQo+DQo+IC0jaWYg RUZJX0FDUElfSU9fQVBJQ19DT1VOVCA+IDANCj4gLSAgRUZJX0FDUElfNV8wX0lPX0FQSUNfU1RS VUNUVVJFDQo+IElvQXBpY1tFRklfQUNQSV9JT19BUElDX0NPVU5UXTsNCj4gLSNlbmRpZg0KPiAr ICNpZiBFRklfQUNQSV9JT19BUElDX0NPVU5UID4gMA0KPiArICBFRklfQUNQSV81XzBfSU9fQVBJ Q19TVFJVQ1RVUkUNCj4gSW9BcGljW0VGSV9BQ1BJX0lPX0FQSUNfQ09VTlRdOw0KPiArICNlbmRp Zg0KPg0KPiAtI2lmIEVGSV9BQ1BJX0lOVEVSUlVQVF9TT1VSQ0VfT1ZFUlJJREVfQ09VTlQgPiAw DQo+IC0gIEVGSV9BQ1BJXzVfMF9JTlRFUlJVUFRfU09VUkNFX09WRVJSSURFX1NUUlVDVFVSRQ0K PiBJc29bRUZJX0FDUElfSU5URVJSVVBUX1NPVVJDRV9PVkVSUklERV9DT1VOVF07DQo+IC0jZW5k aWYNCj4gKyAjaWYgRUZJX0FDUElfSU5URVJSVVBUX1NPVVJDRV9PVkVSUklERV9DT1VOVCA+IDAN Cj4gKyAgRUZJX0FDUElfNV8wX0lOVEVSUlVQVF9TT1VSQ0VfT1ZFUlJJREVfU1RSVUNUVVJFDQo+ IElzb1tFRklfQUNQSV9JTlRFUlJVUFRfU09VUkNFX09WRVJSSURFX0NPVU5UXTsNCj4gKyAjZW5k aWYNCj4NCj4gLSNpZiBFRklfQUNQSV9OT05fTUFTS0FCTEVfSU5URVJSVVBUX1NPVVJDRV9DT1VO VCA+IDANCj4gLSAgRUZJX0FDUElfNV8wX05PTl9NQVNLQUJMRV9JTlRFUlJVUFRfU09VUkNFX1NU UlVDVFVSRQ0KPiBObWlTb3VyY2VbRUZJX0FDUElfTk9OX01BU0tBQkxFX0lOVEVSUlVQVF9TT1VS Q0VfQ09VTlRdOw0KPiAtI2VuZGlmDQo+ICsgI2lmIEVGSV9BQ1BJX05PTl9NQVNLQUJMRV9JTlRF UlJVUFRfU09VUkNFX0NPVU5UID4gMA0KPiArICBFRklfQUNQSV81XzBfTk9OX01BU0tBQkxFX0lO VEVSUlVQVF9TT1VSQ0VfU1RSVUNUVVJFDQo+IE5taVNvdXJjZVtFRklfQUNQSV9OT05fTUFTS0FC TEVfSU5URVJSVVBUX1NPVVJDRV9DT1VOVF07DQo+ICsgI2VuZGlmDQo+DQo+IC0jaWYgRUZJX0FD UElfTE9DQUxfQVBJQ19OTUlfQ09VTlQgPiAwDQo+IC0gIEVGSV9BQ1BJXzVfMF9MT0NBTF9BUElD X05NSV9TVFJVQ1RVUkUNCj4gTG9jYWxBcGljTm1pW0VGSV9BQ1BJX0xPQ0FMX0FQSUNfTk1JX0NP VU5UXTsNCj4gLSNlbmRpZg0KPiAtDQo+IC0jaWYgRUZJX0FDUElfTE9DQUxfQVBJQ19BRERSRVNT X09WRVJSSURFX0NPVU5UID4gMA0KPiAtICBFRklfQUNQSV81XzBfTE9DQUxfQVBJQ19BRERSRVNT X09WRVJSSURFX1NUUlVDVFVSRQ0KPiBMb2NhbEFwaWNPdmVycmlkZVtFRklfQUNQSV9MT0NBTF9B UElDX0FERFJFU1NfT1ZFUlJJREVfQ09VTlRdOw0KPiAtI2VuZGlmDQo+ICsgI2lmIEVGSV9BQ1BJ X0xPQ0FMX0FQSUNfTk1JX0NPVU5UID4gMA0KPiArICBFRklfQUNQSV81XzBfTE9DQUxfQVBJQ19O TUlfU1RSVUNUVVJFDQo+IExvY2FsQXBpY05taVtFRklfQUNQSV9MT0NBTF9BUElDX05NSV9DT1VO VF07DQo+ICsgI2VuZGlmDQo+DQo+IC0jaWYgRUZJX0FDUElfSU9fU0FQSUNfQ09VTlQgPiAwDQo+ IC0gIEVGSV9BQ1BJXzVfMF9JT19TQVBJQ19TVFJVQ1RVUkUNCj4gSW9TYXBpY1tFRklfQUNQSV9J T19TQVBJQ19DT1VOVF07DQo+IC0jZW5kaWYNCj4gKyAjaWYgRUZJX0FDUElfTE9DQUxfQVBJQ19B RERSRVNTX09WRVJSSURFX0NPVU5UID4gMA0KPiArICBFRklfQUNQSV81XzBfTE9DQUxfQVBJQ19B RERSRVNTX09WRVJSSURFX1NUUlVDVFVSRQ0KPiBMb2NhbEFwaWNPdmVycmlkZVtFRklfQUNQSV9M T0NBTF9BUElDX0FERFJFU1NfT1ZFUlJJREVfQ09VTlRdOw0KPiArICNlbmRpZg0KPg0KPiAtI2lm IEVGSV9BQ1BJX1BST0NFU1NPUl9MT0NBTF9TQVBJQ19DT1VOVCA+IDANCj4gLSAgRUZJX0FDUElf NV8wX1BST0NFU1NPUl9MT0NBTF9TQVBJQ19TVFJVQ1RVUkUNCj4gTG9jYWxTYXBpY1tFRklfQUNQ SV9QUk9DRVNTT1JfTE9DQUxfU0FQSUNfQ09VTlRdOw0KPiAtI2VuZGlmDQo+ICsgI2lmIEVGSV9B Q1BJX0lPX1NBUElDX0NPVU5UID4gMA0KPiArICBFRklfQUNQSV81XzBfSU9fU0FQSUNfU1RSVUNU VVJFDQo+IElvU2FwaWNbRUZJX0FDUElfSU9fU0FQSUNfQ09VTlRdOw0KPiArICNlbmRpZg0KPg0K PiAtI2lmIEVGSV9BQ1BJX1BMQVRGT1JNX0lOVEVSUlVQVF9TT1VSQ0VTX0NPVU5UID4gMA0KPiAt ICBFRklfQUNQSV81XzBfUExBVEZPUk1fSU5URVJSVVBUX1NPVVJDRVNfU1RSVUNUVVJFDQo+IFBs YXRmb3JtSW50ZXJydXB0U291cmNlc1tFRklfQUNQSV9QTEFURk9STV9JTlRFUlJVUFRfU09VUkNF U19DT1VODQo+IFRdOw0KPiAtI2VuZGlmDQo+ICsgI2lmIEVGSV9BQ1BJX1BST0NFU1NPUl9MT0NB TF9TQVBJQ19DT1VOVCA+IDANCj4gKyAgRUZJX0FDUElfNV8wX1BST0NFU1NPUl9MT0NBTF9TQVBJ Q19TVFJVQ1RVUkUNCj4gTG9jYWxTYXBpY1tFRklfQUNQSV9QUk9DRVNTT1JfTE9DQUxfU0FQSUNf Q09VTlRdOw0KPiArICNlbmRpZg0KPg0KPiArICNpZiBFRklfQUNQSV9QTEFURk9STV9JTlRFUlJV UFRfU09VUkNFU19DT1VOVCA+IDANCj4gKyAgRUZJX0FDUElfNV8wX1BMQVRGT1JNX0lOVEVSUlVQ VF9TT1VSQ0VTX1NUUlVDVFVSRQ0KPiBQbGF0Zm9ybUludGVycnVwdFNvdXJjZXNbRUZJX0FDUElf UExBVEZPUk1fSU5URVJSVVBUX1NPVVJDRVNfQ09VTg0KPiBUXTsNCj4gKyAjZW5kaWYNCj4gIH0g RUZJX0FDUElfNV8wX01VTFRJUExFX0FQSUNfREVTQ1JJUFRJT05fVEFCTEU7DQo+DQo+ICAjcHJh Z21hIHBhY2sgKCkNCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv Q2hhY2hhbmlCb2FyZFBrZy9BY3BpL0FjcGlUYWJsZXMvTWNmZy8NCj4gTWNmZy5oDQo+IGIvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0FjcGkvQWNwaVRhYmxlcy9N Y2ZnLw0KPiBNY2ZnLmgNCj4gaW5kZXggMDQ1YTg0ZmU5MS4uYWI5ZmRjYWUzNyAxMDA2NDQNCj4g LS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0FjcGkv QWNwaVRhYmxlcy9NY2ZnLw0KPiBNY2ZnLmgNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1Zhbkdv Z2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0FjcGkvQWNwaVRhYmxlcy9NY2ZnLw0KPiBNY2ZnLmgN Cj4gQEAgLTEsMzAgKzEsMTYgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBJbXBsZW1lbnRzIE1jZmcu aA0KPiArICBUaGlzIGZpbGUgZGVzY3JpYmVzIHRoZSBjb250ZW50cyBvZiB0aGUgQUNQSSBNZW1v cnkgTWFwcGVkIENvbmZpZ3VyYXRpb24NCj4gKyAgU3BhY2UgQWNjZXNzIFRhYmxlIChNQ0ZHKS4g IFNvbWUgYWRkaXRpb25hbCBBQ1BJIHZhbHVlcyBhcmUgZGVmaW5lZCBpbg0KPiBBY3BpMTAuaCwN Cj4gKyAgQWNwaTIwLmgsIGFuZCBBY3BpMzAuaC4NCj4NCj4gICAgQ29weXJpZ2h0IChDKSAyMDI0 IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ ICsgIENvcHlyaWdodCAoYykgMjAxMy0yMDE1IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS1QYXRlbnQNCj4gICoqLw0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxs eSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPg0KPiAtLyoqIEBm aWxlDQo+IC1UaGlzIGZpbGUgZGVzY3JpYmVzIHRoZSBjb250ZW50cyBvZiB0aGUgQUNQSSBNZW1v cnkgTWFwcGVkIENvbmZpZ3VyYXRpb24NCj4gLVNwYWNlIEFjY2VzcyBUYWJsZSAoTUNGRykuICBT b21lIGFkZGl0aW9uYWwgQUNQSSB2YWx1ZXMgYXJlIGRlZmluZWQgaW4NCj4gQWNwaTEwLmgsDQo+ IC1BY3BpMjAuaCwgYW5kIEFjcGkzMC5oLg0KPiAtDQo+IC1Db3B5cmlnaHQgKGMpIDIwMTMtMjAx NSBJbnRlbCBDb3Jwb3JhdGlvbi4NCj4gLQ0KPiAtVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21w YW55aW5nIG1hdGVyaWFscw0KPiAtYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRl ciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRA0KPiBMaWNlbnNlDQo+IC13aGlj aCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxp Y2Vuc2UgbWF5IGJlDQo+IGZvdW5kIGF0DQo+IC1odHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5z ZXMvYnNkLWxpY2Vuc2UucGhwDQo+IC0NCj4gLVRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVO REVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtV0lUSE9VVCBX QVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJF U1MgT1IgSU1QTElFRC4NCj4gLQ0KPiAtKiovDQo+IC0NCj4gLSNpZm5kZWYgX01DRkdfSF8NCj4g LSNkZWZpbmUgX01DRkdfSF8NCj4gKyNpZm5kZWYgTUNGR19IX18NCj4gKyNkZWZpbmUgTUNGR19I X18NCj4NCj4gIC8vDQo+ICAvLyBTdGF0ZW1lbnRzIHRoYXQgaW5jbHVkZSBvdGhlciBmaWxlcw0K PiBAQCAtMzUsMTEgKzIxLDExIEBAIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElP TlMgT0YNCj4gQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ICAvLw0KPiAg Ly8gQUNQSSB0YWJsZSBpbmZvcm1hdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgdGFibGVzLg0KPiAg Ly8NCj4gLSNkZWZpbmUgRUZJX0FDUElfT0VNX0lEICAgICAgICAgICAnQScsJ00nLCdEJywnICcs JyAnLCcgJyAgIC8vIE9FTUlEIDYgYnl0ZXMgbG9uZw0KPiAtI2RlZmluZSBFRklfQUNQSV9PRU1f VEFCTEVfSUQgICAgIFNJR05BVFVSRV82NCgnRScsJ0QnLCdLJywnMicsJyAnLCcgJywnICcsJyAn KSAvLw0KPiBPRU0gdGFibGUgaWQgOCBieXRlcyBsb25nDQo+IC0jZGVmaW5lIEVGSV9BQ1BJX09F TV9SRVZJU0lPTiAgICAgMHgwMDAwMDAwMg0KPiAtI2RlZmluZSBFRklfQUNQSV9DUkVBVE9SX0lE ICAgICAgIFNJR05BVFVSRV8zMignICcsJyAnLCcgJywnICcpDQo+IC0jZGVmaW5lIEVGSV9BQ1BJ X0NSRUFUT1JfUkVWSVNJT04gMHgwMTAwMDAxMw0KPiArI2RlZmluZSBFRklfQUNQSV9PRU1fSUQg ICAgICAgICAgICAnQScsJ00nLCdEJywnICcsJyAnLCcgJyAgICAgICAgICAgICAgICAgICAgICAg Ly8gT0VNSUQgNg0KPiBieXRlcyBsb25nDQo+ICsjZGVmaW5lIEVGSV9BQ1BJX09FTV9UQUJMRV9J RCAgICAgIFNJR05BVFVSRV82NCgnRScsJ0QnLCdLJywnMicsJyAnLCcgJywnICcsJyAnKQ0KPiAv LyBPRU0gdGFibGUgaWQgOCBieXRlcyBsb25nDQo+ICsjZGVmaW5lIEVGSV9BQ1BJX09FTV9SRVZJ U0lPTiAgICAgIDB4MDAwMDAwMDINCj4gKyNkZWZpbmUgRUZJX0FDUElfQ1JFQVRPUl9JRCAgICAg ICAgU0lHTkFUVVJFXzMyKCcgJywnICcsJyAnLCcgJykNCj4gKyNkZWZpbmUgRUZJX0FDUElfQ1JF QVRPUl9SRVZJU0lPTiAgMHgwMTAwMDAxMw0KPg0KPiAgLy8NCj4gIC8vIE1DRkcgRGVmaW5pdGlv bnMNCj4gQEAgLTQ4LDcgKzM0LDcgQEAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFU SU9OUyBPRiBBTlkNCj4gS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gIC8vDQo+ ICAvLyBEZWZpbmUgdGhlIG51bWJlciBvZiBhbGxvY2F0aW9uIHN0cnVjdHVyZXMgc28gdGhhdCB3 ZSBjYW4gYnVpbGQgdGhlIHRhYmxlDQo+IHN0cnVjdHVyZS4NCj4gIC8vDQo+IC0jZGVmaW5lIEVG SV9BQ1BJX0FMTE9DQVRJT05fU1RSVUNUVVJFX0NPVU5UIDENCj4gKyNkZWZpbmUgRUZJX0FDUElf QUxMT0NBVElPTl9TVFJVQ1RVUkVfQ09VTlQgIDENCj4NCj4gIC8vDQo+ICAvLyBNQ0ZHIHN0cnVj dHVyZQ0KPiBAQCAtNjMsMTEgKzQ5LDExIEBAIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNF TlRBVElPTlMgT0YNCj4gQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ICAv LyBNQ0ZHIFRhYmxlIHN0cnVjdHVyZQ0KPiAgLy8NCj4gIHR5cGVkZWYgc3RydWN0IHsNCj4gLSAg RUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyOw0KPiAtICBVSU5UNjQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXNlcnZlZDsNCj4gLSAgI2lmIEVGSV9BQ1BJX0FMTE9DQVRJT05f U1RSVUNUVVJFX0NPVU5UID4gMA0KPiAtDQo+IEVGSV9BQ1BJX01FTU9SWV9NQVBQRURfRU5IQU5D RURfQ09ORklHVVJBVElPTl9TUEFDRV9CQVNFX0ENCj4gRERSRVNTX0FMTE9DQVRJT05fU1RSVUNU VVJFDQo+IEFsbG9jYXRpb25TdHJ1Y3R1cmVbRUZJX0FDUElfQUxMT0NBVElPTl9TVFJVQ1RVUkVf Q09VTlRdOw0KPiAtICAjZW5kaWYNCj4gKyAgRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBIZWFkZXI7DQo+ICsgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQ7 DQo+ICsgI2lmIEVGSV9BQ1BJX0FMTE9DQVRJT05fU1RSVUNUVVJFX0NPVU5UID4gMA0KPiArDQo+ IEVGSV9BQ1BJX01FTU9SWV9NQVBQRURfRU5IQU5DRURfQ09ORklHVVJBVElPTl9TUEFDRV9CQVNF X0ENCj4gRERSRVNTX0FMTE9DQVRJT05fU1RSVUNUVVJFDQo+IEFsbG9jYXRpb25TdHJ1Y3R1cmVb RUZJX0FDUElfQUxMT0NBVElPTl9TVFJVQ1RVUkVfQ09VTlRdOw0KPiArICNlbmRpZg0KPiAgfQ0K PiBFRklfQUNQSV9NRU1PUllfTUFQUEVEX0NPTkZJR1VSQVRJT05fU1BBQ0VfQUNDRVNTX0RFU0NS SVBUSU8NCj4gTl9UQUJMRTsNCj4NCj4gICNwcmFnbWEgcGFjayAoKQ0KPiBkaWZmIC0tZ2l0DQo+ IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0NhcHN1bGUvU3lz dGVtRmlybXdhDQo+IHJlRGVzY3JpcHRvci9TeXN0ZW1GaXJtd2FyZURlc2NyaXB0b3IuYXNsYw0K PiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9DYXBzdWxlL1N5 c3RlbUZpcm13YQ0KPiByZURlc2NyaXB0b3IvU3lzdGVtRmlybXdhcmVEZXNjcmlwdG9yLmFzbGMN Cj4gaW5kZXggYWY3M2U4NDZmYy4uMmUwNWE1MjNjNyAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0NhcHN1bGUvU3lzdGVtRmlybXdh DQo+IHJlRGVzY3JpcHRvci9TeXN0ZW1GaXJtd2FyZURlc2NyaXB0b3IuYXNsYw0KPiArKysNCj4g Yi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvQ2Fwc3VsZS9TeXN0 ZW1GaXJtd2ENCj4gcmVEZXNjcmlwdG9yL1N5c3RlbUZpcm13YXJlRGVzY3JpcHRvci5hc2xjDQo+ IEBAIC0xLDI0ICsxLDEwIEBADQo+ICAvKiogQGZpbGUNCj4gICAgU3lzdGVtIGZpcm13YXJlIERl c2NyaXB0b3IgZmlsZQ0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNy byBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAt LyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhl IGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZpbGUNCj4gICAgU3lzdGVtIEZp cm13YXJlIGRlc2NyaXB0b3IuDQo+DQo+ICsgIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBN aWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBDb3B5cmln aHQgKGMpIDIwMTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gLSAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiAtICBh cmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0 aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vuc2UNCj4gLSAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBk aXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3Vu ZCBhdA0KPiAtICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhw DQo+IC0NCj4gLSAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNF TlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+IC0gIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBS RVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9SIElNUExJRUQu DQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+ ICAqKi8NCj4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hh Y2hhbmlCb2FyZFBrZy9DYXBzdWxlL1N5c3RlbUZpcm13YQ0KPiByZURlc2NyaXB0b3IvU3lzdGVt RmlybXdhcmVEZXNjcmlwdG9yLmluZg0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hh Y2hhbmlCb2FyZFBrZy9DYXBzdWxlL1N5c3RlbUZpcm13YQ0KPiByZURlc2NyaXB0b3IvU3lzdGVt RmlybXdhcmVEZXNjcmlwdG9yLmluZg0KPiBpbmRleCAyOGQwYjhmNjQ0Li41MGYyYjhjMWEyIDEw MDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQ a2cvQ2Fwc3VsZS9TeXN0ZW1GaXJtd2ENCj4gcmVEZXNjcmlwdG9yL1N5c3RlbUZpcm13YXJlRGVz Y3JpcHRvci5pbmYNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFu aUJvYXJkUGtnL0NhcHN1bGUvU3lzdGVtRmlybXdhDQo+IHJlRGVzY3JpcHRvci9TeXN0ZW1GaXJt d2FyZURlc2NyaXB0b3IuaW5mDQo+IEBAIC0xLDIzICsxLDkgQEANCj4gICMjIEBmaWxlDQo+IC0j ICBTeXN0ZW0gZmlybXdhcmUgZGVzY3JpcHRvciBJTkYgZmlsZQ0KPiAtIw0KPiAtIyBDb3B5cmln aHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCj4gLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCj4gLSMNCj4gLSMjDQo+IC0NCj4gLSMgVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2lu YWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLg0KPiAtIyMgQGZpbGUN Cj4gICMgIFN5c3RlbSBGaXJtd2FyZSBkZXNjcmlwdG9yLg0KPiAgIw0KPiArIyBDb3B5cmlnaHQg KEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4gICMgIENvcHlyaWdodCAoYykgMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtIyAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55 aW5nIG1hdGVyaWFscw0KPiAtIyAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRl ciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlDQo+IEJTRCBMaWNlbnNlDQo+IC0jICB3 aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhl IGxpY2Vuc2UgbWF5IGJlDQo+IGZvdW5kIGF0DQo+IC0jICBodHRwOi8vb3BlbnNvdXJjZS5vcmcv bGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQo+IC0jDQo+IC0jICBUSEUgUFJPR1JBTSBJUyBESVNU UklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4g LSMgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJ VEhFUg0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICAjDQo+ICAjIw0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0NhcHN1bGUvU3lzdGVt RmlybXdhDQo+IHJlRGVzY3JpcHRvci9TeXN0ZW1GaXJtd2FyZURlc2NyaXB0b3JQZWkuYw0KPiBi L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9DYXBzdWxlL1N5c3Rl bUZpcm13YQ0KPiByZURlc2NyaXB0b3IvU3lzdGVtRmlybXdhcmVEZXNjcmlwdG9yUGVpLmMNCj4g aW5kZXggMjQxMzg1NDU3Ny4uN2YwYzQ0MjFlMyAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0NhcHN1bGUvU3lzdGVtRmlybXdhDQo+ IHJlRGVzY3JpcHRvci9TeXN0ZW1GaXJtd2FyZURlc2NyaXB0b3JQZWkuYw0KPiArKysNCj4gYi9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvQ2Fwc3VsZS9TeXN0ZW1G aXJtd2ENCj4gcmVEZXNjcmlwdG9yL1N5c3RlbUZpcm13YXJlRGVzY3JpcHRvclBlaS5jDQo+IEBA IC0xLDI0ICsxLDEwIEBADQo+ICAvKiogQGZpbGUNCj4gICAgSW1wbGVtZW50cyBTeXN0ZW1GaXJt d2FyZURlc2NyaXB0b3JQZWkuYw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNl ZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4g LQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5k ZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZpbGUNCj4gICAgU3lz dGVtIEZpcm13YXJlIGRlc2NyaXB0b3IgcHJvZHVjZXIuDQo+DQo+ICsgIENvcHlyaWdodCAoQykg MjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiAgICBDb3B5cmlnaHQgKGMpIDIwMTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gLSAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1h dGVyaWFscw0KPiAtICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0 ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vuc2UNCj4gLSAgd2hpY2ggYWNj b21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNl IG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMv YnNkLWxpY2Vuc2UucGhwDQo+IC0NCj4gLSAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5E RVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+IC0gIFdJVEhPVVQg V0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBS RVNTIE9SIElNUExJRUQuDQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+DQo+ICAqKi8NCj4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9Db25mL2J1aWxkX3J1bGUudHh0DQo+IGIvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0NvbmYvYnVpbGRfcnVsZS50 eHQNCj4gaW5kZXggMmQwMzkwZTk5ZS4uZThlYzdkNGEzZCAxMDA2NDQNCj4gLS0tIGEvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0NvbmYvYnVpbGRfcnVsZS50eHQN Cj4gKysrIGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0NvbmYv YnVpbGRfcnVsZS50eHQNCj4gQEAgLTIsMTYgKzIsMTAgQEANCj4gICMgRURLIElJIGJ1aWxkIHJ1 bGUgZmlsZQ0KPiAgIw0KPiAgIyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2 aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSMgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLSMgTW9kaWZpZWQgd2l0aCBlZGsyL0Jh c2VUb29scy9Db25mL2J1aWxkX3J1bGUudGVtcGxhdGUNCj4gLSMjDQo+IC0jIFRoaXMgZmlsZSBp bmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGlj ZW5zZS4NCj4gLSMNCj4gICMgIENvcHlyaWdodCAoYykgMjAwNyAtIDIwMTgsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICMgIFBvcnRpb25zIGNvcHlyaWdo dCAoYykgMjAwOCAtIDIwMTAsIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ ICAjICBDb3B5cmlnaHQgKGMpIDIwMjAsIEFSTSBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiAgIyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4g LSMNCj4NCj4gICMjIFN5bnRheA0KPiAgIw0KPiBkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vQU1EL1Zh bkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0NvbmYvdGFyZ2V0LnR4dA0KPiBiL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9Db25mL3RhcmdldC50eHQNCj4gaW5k ZXggYjY2OGEyYzdjOS4uMmFiMjUxNDk0MSAxMDA2NDQNCj4gLS0tIGEvUGxhdGZvcm0vQU1EL1Zh bkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0NvbmYvdGFyZ2V0LnR4dA0KPiArKysgYi9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvQ29uZi90YXJnZXQudHh0DQo+ IEBAIC0yLDIwICsyLDkgQEANCj4gICMgRURLIElJIGJ1aWxkIHRhcmdldCBmaWxlDQo+ICAjDQo+ ICAjIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArIyBDb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDE4LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAjIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0jIE1vZGlmaWVkIHdpdGggZWRr Mi9CYXNlVG9vbHMvQ29uZi90YXJnZXQudGVtcGxhdGUNCj4gLSMjDQo+IC0jIFRoaXMgZmlsZSBp bmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGlj ZW5zZS4NCj4gLSMNCj4gLSMgIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTgsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSMNCj4gLSMgIFRoaXMgcHJvZ3Jh bSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLSMgIGFyZSBsaWNlbnNlZCBhbmQg bWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQ0KPiBC U0QgTGljZW5zZQ0KPiAtIyAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBU aGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtIyAgaHR0 cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPg0KPiAtIyAgVEhF IFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJ UyINCj4gQkFTSVMsDQo+IC0jICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05T IE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiAgIw0KPiAgIw0K PiAgIyAgQUxMIFBhdGhzIGFyZSBSZWxhdGl2ZSB0byBXT1JLU1BBQ0UNCj4gZGlmZiAtLWdpdA0K PiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9Db25mL3Rvb2xz X2RlZi50eHQNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cv Q29uZi90b29sc19kZWYudHh0DQo+IGluZGV4IDE4NTQ2Yzg5NzAuLmZmNTgyNjY4YjMgMTAwNjQ0 DQo+IC0tLSBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9Db25m L3Rvb2xzX2RlZi50eHQNCj4gKysrIGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFu aUJvYXJkUGtnL0NvbmYvdG9vbHNfZGVmLnR4dA0KPiBAQCAtMiwyNSArMiwxMyBAQA0KPiAgIyBF REsgSUkgYnVpbGQgdG9vbHMgZGVmaW5hdGlvbiBmaWxlDQo+ICAjDQo+ICAjIENvcHlyaWdodCAo QykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiAtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0K PiAtIyBNb2RpZmllZCB3aXRoIGVkazIvQmFzZVRvb2xzL0NvbmYvdG9vbHNfZGVmLnRlbXBsYXRl DQo+IC0jIw0KPiAtIyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hl ZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC0jDQo+ICAjICBDb3B5cmlnaHQgKGMp IDIwMDYgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+IC0jICBQb3J0aW9ucyBjb3B5cmlnaHQgKGMpIDIwMDggLSAyMDA5LCBBcHBsZSBJbmMuIEFs bCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtIyAgUG9ydGlvbnMgY29weXJpZ2h0IChjKSAyMDEx IC0gMjAxNCwgQVJNIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsjICBjb3B5cmln aHQgKGMpIDIwMDggLSAyMDA5LCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiArIyAgY29weXJpZ2h0IChjKSAyMDExIC0gMjAxNCwgQVJNIEx0ZC4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+ICAjICBDb3B5cmlnaHQgKGMpIDIwMTUsIEhld2xldHQtUGFja2FyZCBEZXZl bG9wbWVudCBDb21wYW55LCBMLlAuPEJSPg0KPiAtIyAgKEMpIENvcHlyaWdodCAyMDE2IEhld2xl dHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiAtIw0KPiAtIyAgVGhp cyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiAtIyAgYXJlIGxpY2Vu c2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2Yg dGhlDQo+IEJTRCBMaWNlbnNlDQo+IC0jICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1 dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlDQo+IGZvdW5kIGF0DQo+ IC0jICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQo+IC0j DQo+IC0jICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0Ug T04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gLSMgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBS RVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ IC0jDQo+ICsjICBDb3B5cmlnaHQgKEMpIDIwMTYgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2Ug RGV2ZWxvcG1lbnQgTFA8QlI+DQo+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQo+ICsNCj4NCj4gIElERU5USUZJRVIgPSBEZWZhdWx0IFRPT0xfQ0hBSU5f Q09ORg0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFj aGFuaUJvYXJkUGtnL0luY2x1ZGUvTGlicmFyeS9DYXBzdWwNCj4gZUhvb2tMaWIuaA0KPiBiL1Bs YXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9JbmNsdWRlL0xpYnJhcnkv Q2Fwc3VsDQo+IGVIb29rTGliLmgNCj4gaW5kZXggZTU3M2FjMGYwOS4uNTg0YWRmYWVlOSAxMDA2 NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtn L0luY2x1ZGUvTGlicmFyeS9DYXBzdWwNCj4gZUhvb2tMaWIuaA0KPiArKysNCj4gYi9QbGF0Zm9y bS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvSW5jbHVkZS9MaWJyYXJ5L0NhcHN1 bA0KPiBlSG9va0xpYi5oDQo+IEBAIC02LDggKzYsOCBAQA0KPg0KPiAgKiovDQo+DQo+IC0jaWZu ZGVmIF9DQVBTVUxFX0hPT0tfTElCX0hfDQo+IC0jZGVmaW5lIF9DQVBTVUxFX0hPT0tfTElCX0hf DQo+ICsjaWZuZGVmIENBUFNVTEVfSE9PS19MSUJfSF9fDQo+ICsjZGVmaW5lIENBUFNVTEVfSE9P S19MSUJfSF9fDQo+DQo+ICAvKioNCj4gICAgRGV0ZWN0IENhcHN1bGUgZmlsZSBmcm9tIEVTUCBw YXJ0aXRpb24gYW5kIHVwZGF0ZSBjYXBzdWxlLg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0luY2x1ZGUvUHJvdG9jb2wvR2xvYmEN Cj4gbE52c0FyZWEuaA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2Fy ZFBrZy9JbmNsdWRlL1Byb3RvY29sL0dsb2INCj4gYWxOdnNBcmVhLmgNCj4gaW5kZXggMGM1MDc3 ZjQxNy4uZTg0NDkzMmNjMCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hC b2FyZC9DaGFjaGFuaUJvYXJkUGtnL0luY2x1ZGUvUHJvdG9jb2wvR2xvYmENCj4gbE52c0FyZWEu aA0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cv SW5jbHVkZS9Qcm90b2NvbC9HbG9iDQo+IGFsTnZzQXJlYS5oDQo+IEBAIC0xLDExICsxLDMgQEAN Cj4gLS8qKiBAZmlsZQ0KPiAtICBHbG9iYWxOdnNBcmVhLmgNCj4gLQ0KPiAtICBDb3B5cmlnaHQg KEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4gLSAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gLSoqLw0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNo ZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4g IERlZmluaXRpb24gb2YgdGhlIGdsb2JhbCBOVlMgYXJlYSBwcm90b2NvbC4gIFRoaXMgcHJvdG9j b2wNCj4gIHB1Ymxpc2hlcyB0aGUgYWRkcmVzcyBhbmQgZm9ybWF0IG9mIGEgZ2xvYmFsIEFDUEkg TlZTIGJ1ZmZlcg0KPiBAQCAtMTMsMTQgKzUsMTUgQEAgdXNlZCBhcyBhIGNvbW11bmljYXRpb25z IGJ1ZmZlciBiZXR3ZWVuIFNNTSBjb2RlDQo+IGFuZCBBU0wgY29kZS4NCj4gIFRoZSBmb3JtYXQg aXMgZGVyaXZlZCBmcm9tIHRoZSBBQ1BJIHJlZmVyZW5jZSBjb2RlLCB2ZXJzaW9uIDAuOTUuDQo+ ICBOb3RlOiAgRGF0YSBzdHJ1Y3R1cmVzIGRlZmluZWQgaW4gdGhpcyBwcm90b2NvbCBhcmUgbm90 IG5hdHVyYWxseSBhbGlnbmVkLg0KPg0KPiAtQ29weXJpZ2h0IChjKSAyMDEzLTIwMTUgSW50ZWwg Q29ycG9yYXRpb24uDQo+ICtDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNl cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gK0NvcHlyaWdodCAoYykgMjAxMy0y MDE1IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4NCj4gIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+ICAqKi8NCj4N Cj4gLSNpZm5kZWYgX0dMT0JBTF9OVlNfQVJFQV9IXw0KPiAtI2RlZmluZSBfR0xPQkFMX05WU19B UkVBX0hfDQo+ICsjaWZuZGVmIEdMT0JBTF9OVlNfQVJFQV9IX18NCj4gKyNkZWZpbmUgR0xPQkFM X05WU19BUkVBX0hfXw0KPg0KPiAgLy8NCj4gIC8vIEluY2x1ZGVzDQo+IGRpZmYgLS1naXQNCj4g YS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvTGlicmFyeS9DYXBz dWxlL1BsYXRmb3INCj4gbUJvb3RNYW5hZ2VyTGliL1BsYXRmb3JtQm9vdE1hbmFnZXIuYw0KPiBi L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L0NhcHN1 bGUvUGxhdGZvcg0KPiBtQm9vdE1hbmFnZXJMaWIvUGxhdGZvcm1Cb290TWFuYWdlci5jDQo+IGlu ZGV4IGE2NDdlOTIwNTQuLjk0ZjRmODIwN2EgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L0NhcHN1bGUvUGxhdGZvcg0K PiBtQm9vdE1hbmFnZXJMaWIvUGxhdGZvcm1Cb290TWFuYWdlci5jDQo+ICsrKw0KPiBiL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L0NhcHN1bGUvUGxh dGZvcg0KPiBtQm9vdE1hbmFnZXJMaWIvUGxhdGZvcm1Cb290TWFuYWdlci5jDQo+IEBAIC0xLDE3 ICsxLDggQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIFBsYXRmb3JtQm9vdE1hbmFn ZXIuYw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2Vz LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBm aWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2lu ZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4gICAgVGhpcyBmaWxlIGluY2x1ZGUg YWxsIHBsYXRmb3JtIGFjdGlvbiB3aGljaCBjYW4gYmUgY3VzdG9taXplZA0KPiAgICBieSBJQlYv T0VNLg0KPg0KPiArQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIElu Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICBDb3B5cmlnaHQgKGMpIDIwMTUgLSAyMDIx LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiBAQCAtMzU3LDcgKzM0 OCw3IEBAIFBsYXRmb3JtQmRzRm9yY2VBY3RpdmVWZ2EgKA0KPiAgICBFRklfREVWSUNFX1BBVEhf UFJPVE9DT0wgICpJR3B1RGV2aWNlUGF0aDsNCj4gICAgRUZJX0RFVklDRV9QQVRIX1BST1RPQ09M ICAqREdwdURldmljZVBhdGg7DQo+DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywgIlBsYXRmb3Jt QmRzRm9yY2VBY3RpdmVWZ2EgZW50ZXJcbiIpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAi UGxhdGZvcm1CZHNGb3JjZUFjdGl2ZVZnYSBlbnRlclxuIikpOw0KPg0KPiAgICBTdGF0dXMgICAg ICAgICAgID0gRUZJX1NVQ0NFU1M7DQo+ICAgIERldmljZVBhdGhGaXJzdCAgPSBOVUxMOw0KPiBA QCAtMzczLDI1ICszNjQsMjUgQEAgUGxhdGZvcm1CZHNGb3JjZUFjdGl2ZVZnYSAoDQo+ICAgIEFT U0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+DQo+ICAgIGlmICgoSUdwdURldmljZVBhdGggPT0g TlVMTCkgJiYgKERHcHVEZXZpY2VQYXRoID09IE5VTEwpKSB7DQo+IC0gICAgREVCVUcgKChFRklf RF9JTkZPLCAiTm8gdmFsaWQgSUdQVSBhbmQgREdQVVxuIikpOw0KPiArICAgIERFQlVHICgoREVC VUdfSU5GTywgIk5vIHZhbGlkIElHUFUgYW5kIERHUFVcbiIpKTsNCj4gICAgICByZXR1cm4gRUZJ X1VOU1VQUE9SVEVEOw0KPiAgICB9DQo+DQo+ICAgIGlmICgoSUdwdURldmljZVBhdGggIT0gTlVM TCkgJiYgKERHcHVEZXZpY2VQYXRoID09IE5VTEwpKSB7DQo+IC0gICAgREVCVUcgKChFRklfRF9J TkZPLCAiT25seSBJR1BVIGlzIHZhbGlkXG4iKSk7DQo+IC0gICAgLy8gREVCVUcgKChFRklfRF9J TkZPLCJPbmx5IElHUFUgaXMgdmFsaWQsIFVwZGF0ZSBJR1BVIC4uLlxuIikpOw0KPiArICAgIERF QlVHICgoREVCVUdfSU5GTywgIk9ubHkgSUdQVSBpcyB2YWxpZFxuIikpOw0KPiArICAgIC8vIERF QlVHICgoREVCVUdfSU5GTywiT25seSBJR1BVIGlzIHZhbGlkLCBVcGRhdGUgSUdQVSAuLi5cbiIp KTsNCj4gICAgICBEZXZpY2VQYXRoRmlyc3QgID0gSUdwdURldmljZVBhdGg7DQo+ICAgICAgRGV2 aWNlUGF0aFNlY29uZCA9IERHcHVEZXZpY2VQYXRoOw0KPiAgICAgIGdvdG8gVXBkYXRlQ29uT3V0 Ow0KPiAgICB9IGVsc2UgaWYgKChJR3B1RGV2aWNlUGF0aCA9PSBOVUxMKSAmJiAoREdwdURldmlj ZVBhdGggIT0gTlVMTCkpIHsNCj4gLSAgICBERUJVRyAoKEVGSV9EX0lORk8sICJPbmx5IERHUFUg aXMgdmFsaWRcbiIpKTsNCj4gLSAgICAvLyBERUJVRyAoKEVGSV9EX0lORk8sIk9ubHkgREdQVSBp cyB2YWxpZCwgVXBkYXRlIERHUFUgLi4uXG4iKSk7DQo+ICsgICAgREVCVUcgKChERUJVR19JTkZP LCAiT25seSBER1BVIGlzIHZhbGlkXG4iKSk7DQo+ICsgICAgLy8gREVCVUcgKChERUJVR19JTkZP LCJPbmx5IERHUFUgaXMgdmFsaWQsIFVwZGF0ZSBER1BVIC4uLlxuIikpOw0KPiAgICAgIERldmlj ZVBhdGhGaXJzdCAgPSBER3B1RGV2aWNlUGF0aDsNCj4gICAgICBEZXZpY2VQYXRoU2Vjb25kID0g SUdwdURldmljZVBhdGg7DQo+ICAgICAgZ290byBVcGRhdGVDb25PdXQ7DQo+ICAgIH0gZWxzZSBp ZiAoKElHcHVEZXZpY2VQYXRoICE9IE5VTEwpICYmIChER3B1RGV2aWNlUGF0aCAhPSBOVUxMKSkg ew0KPiAtICAgIERFQlVHICgoRUZJX0RfSU5GTywgIkRHUFUgYW5kIElHUFUgYXJlIHZhbGlkLCBh Y3RpdmUgREdQVVxuIikpOw0KPiAtICAgIC8vIERFQlVHICgoRUZJX0RfSU5GTywiT25seSBER1BV IGlzIHZhbGlkLCBVcGRhdGUgREdQVSAuLi5cbiIpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lO Rk8sICJER1BVIGFuZCBJR1BVIGFyZSB2YWxpZCwgYWN0aXZlIERHUFVcbiIpKTsNCj4gKyAgICAv LyBERUJVRyAoKERFQlVHX0lORk8sIk9ubHkgREdQVSBpcyB2YWxpZCwgVXBkYXRlIERHUFUgLi4u XG4iKSk7DQo+ICAgICAgRGV2aWNlUGF0aEZpcnN0ICA9IERHcHVEZXZpY2VQYXRoOw0KPiAgICAg IERldmljZVBhdGhTZWNvbmQgPSBJR3B1RGV2aWNlUGF0aDsNCj4gICAgICBnb3RvIFVwZGF0ZUNv bk91dDsNCj4gQEAgLTY4NSw3ICs2NzYsNyBAQCBFeHBvc2VPdmVyNEdNZW1vcnlFdmVudENhbGxi YWNrICgNCj4gICAgTElTVF9FTlRSWSAgICAgICAgICAgICAgICAgICAgICAgKlRtcExpbms7DQo+ ICAgIExJU1RfRU5UUlkgICAgICAgICAgICAgICAgICAgICAgIE5vblRlc3RlZE1lbVJhbkxpc3Q7 DQo+DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywgIkV4cG9zZU92ZXI0R01lbW9yeUV2ZW50Q2Fs bGJhY2tcbiIpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiRXhwb3NlT3ZlcjRHTWVtb3J5 RXZlbnRDYWxsYmFja1xuIikpOw0KPg0KPiAgICBUbXBMaW5rID0gTlVMTDsNCj4gICAgTm9Gb3Vu ZCA9IFRSVUU7DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0No YWNoYW5pQm9hcmRQa2cvTGlicmFyeS9DYXBzdWxlL1BsYXRmb3INCj4gbUJvb3RNYW5hZ2VyTGli L1BsYXRmb3JtQm9vdE1hbmFnZXIuaA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hh Y2hhbmlCb2FyZFBrZy9MaWJyYXJ5L0NhcHN1bGUvUGxhdGZvcg0KPiBtQm9vdE1hbmFnZXJMaWIv UGxhdGZvcm1Cb290TWFuYWdlci5oDQo+IGluZGV4IDBiNGI4NWU3ZDIuLjE1ODkxZjk0NzEgMTAw NjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBr Zy9MaWJyYXJ5L0NhcHN1bGUvUGxhdGZvcg0KPiBtQm9vdE1hbmFnZXJMaWIvUGxhdGZvcm1Cb290 TWFuYWdlci5oDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlC b2FyZFBrZy9MaWJyYXJ5L0NhcHN1bGUvUGxhdGZvcg0KPiBtQm9vdE1hbmFnZXJMaWIvUGxhdGZv cm1Cb290TWFuYWdlci5oDQo+IEBAIC0xLDE2ICsxLDcgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJ bXBsZW1lbnRzIFBsYXRmb3JtQm9vdE1hbmFnZXIuaA0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykg MjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAt DQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBw dWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZp bGUNCj4gICAgIEhlYWQgZmlsZSBmb3IgQkRTIFBsYXRmb3JtIHNwZWNpZmljIGNvZGUNCj4NCj4g K0NvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KPiAgQ29weXJpZ2h0IChjKSAyMDE1IC0gMjAxNiwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gICoqLw0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0xpYnJhcnkvQ2Fwc3VsZS9Q bGF0Zm9yDQo+IG1Cb290TWFuYWdlckxpYi9QbGF0Zm9ybUJvb3RNYW5hZ2VyTGliLmluZg0KPiBi L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L0NhcHN1 bGUvUGxhdGZvcg0KPiBtQm9vdE1hbmFnZXJMaWIvUGxhdGZvcm1Cb290TWFuYWdlckxpYi5pbmYN Cj4gaW5kZXggZGI1OGQ5NDMwMS4uZmM5MjUxZDNmZCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0xpYnJhcnkvQ2Fwc3VsZS9QbGF0 Zm9yDQo+IG1Cb290TWFuYWdlckxpYi9QbGF0Zm9ybUJvb3RNYW5hZ2VyTGliLmluZg0KPiArKysN Cj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvTGlicmFyeS9D YXBzdWxlL1BsYXRmb3INCj4gbUJvb3RNYW5hZ2VyTGliL1BsYXRmb3JtQm9vdE1hbmFnZXJMaWIu aW5mDQo+IEBAIC0xLDE0ICsxLDcgQEANCj4gICMjIEBmaWxlDQo+IC0jIFBsYXRmb3JtIEJvb3Qg TWFuYWdlciBMaWIgTW9kdWxlDQo+IC0jDQo+IC0jIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNl ZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtIyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtIw0KPiAtIyMNCj4g LSMgVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhl IGZvbGxvd2luZyBsaWNlbnNlLg0KPiAtIyMgQGZpbGUNCj4gICMgIEluY2x1ZGUgYWxsIHBsYXRm b3JtIGFjdGlvbiB3aGljaCBjYW4gYmUgY3VzdG9taXplZCBieSBJQlYvT0VNLg0KPiAgIw0KPiAr IyAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ICAjICBDb3B5cmlnaHQgKGMpIDIwMTIgLSAyMDIxLCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAjICBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgIw0KPiBkaWZmIC0tZ2l0DQo+ IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0xpYnJhcnkvQ2Fw c3VsZS9QbGF0Zm9yDQo+IG1Cb290TWFuYWdlckxpYi9QbGF0Zm9ybUNvbnNvbGUuYw0KPiBiL1Bs YXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L0NhcHN1bGUv UGxhdGZvcg0KPiBtQm9vdE1hbmFnZXJMaWIvUGxhdGZvcm1Db25zb2xlLmMNCj4gaW5kZXggMDcx NWZjYzg2ZS4uNDg0OTc3MGZmNiAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1Zhbkdv Z2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0xpYnJhcnkvQ2Fwc3VsZS9QbGF0Zm9yDQo+IG1Cb290 TWFuYWdlckxpYi9QbGF0Zm9ybUNvbnNvbGUuYw0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvTGlicmFyeS9DYXBzdWxlL1BsYXRmb3INCj4gbUJv b3RNYW5hZ2VyTGliL1BsYXRmb3JtQ29uc29sZS5jDQo+IEBAIC0xLDE2ICsxLDcgQEANCj4gLS8q KiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIFBsYXRmb3JtQ29uc29sZS5jDQo+IC0NCj4gLSAgQ29w eXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBv cmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0N Cj4gIC8qKiBAZmlsZQ0KPiAgVGhpcyBmaWxlIGluY2x1ZGUgYWxsIHBsYXRmb3JtIGFjdGlvbiB3 aGljaCBjYW4gYmUgY3VzdG9taXplZCBieSBJQlYvT0VNLg0KPg0KPiArQ29weXJpZ2h0IChDKSAy MDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ICBDb3B5cmlnaHQgKGMpIDIwMTYsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJl c2VydmVkLjxCUj4NCj4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+DQo+IEBAIC0zNzksNyArMzcwLDcgQEAgRGV0ZWN0QW5kUHJlcGFyZVBsYXRmb3JtUGNp RGV2aWNlUGF0aCAoDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwNCj4gICAgICAgICAg ICAgICAgICAgICAgICAgKTsNCj4gICAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiAt ICAgIERFQlVHICgoRUZJX0RfSU5GTywgIkluc3RhbGxQcm90b2NvbEludGVyZmFjZQ0KPiBnQW1k Q3BtQWxsUGNpSW9Qcm90b2NvbHNJbnN0YWxsZWRQcm90b2NvbEd1aWQgJXJcbiIsIFN0YXR1cykp Ow0KPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIkluc3RhbGxQcm90b2NvbEludGVyZmFjZQ0K PiBnQW1kQ3BtQWxsUGNpSW9Qcm90b2NvbHNJbnN0YWxsZWRQcm90b2NvbEd1aWQgJXJcbiIsIFN0 YXR1cykpOw0KPiAgICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gICAgfQ0KPg0KPiBkaWZmIC0t Z2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0xpYnJh cnkvQ2Fwc3VsZS9QbGF0Zm9yDQo+IG1Cb290TWFuYWdlckxpYi9QbGF0Zm9ybUNvbnNvbGUuaA0K PiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L0Nh cHN1bGUvUGxhdGZvcg0KPiBtQm9vdE1hbmFnZXJMaWIvUGxhdGZvcm1Db25zb2xlLmgNCj4gaW5k ZXggYTQzNTgzZmIxNy4uZGM2NmRiN2NlZCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0xpYnJhcnkvQ2Fwc3VsZS9QbGF0Zm9yDQo+ IG1Cb290TWFuYWdlckxpYi9QbGF0Zm9ybUNvbnNvbGUuaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvTGlicmFyeS9DYXBzdWxlL1BsYXRmb3IN Cj4gbUJvb3RNYW5hZ2VyTGliL1BsYXRmb3JtQ29uc29sZS5oDQo+IEBAIC0xLDE2ICsxLDcgQEAN Cj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIFBsYXRmb3JtQ29uc29sZS5oDQo+IC0NCj4g LSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMg Y29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICov DQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgSGVhZCBmaWxlIGZvciBCRFMgUGxhdGZvcm0gc3BlY2lm aWMgY29kZQ0KPg0KPiArQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMs IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICBDb3B5cmlnaHQgKGMpIDIwMTYsIElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICAqKi8NCj4gZGlmZiAtLWdpdA0K PiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L0Nh cHN1bGUvUGxhdGZvcg0KPiBtQm9vdE1hbmFnZXJMaWIvUGxhdGZvcm1EYXRhLmMNCj4gYi9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvTGlicmFyeS9DYXBzdWxlL1Bs YXRmb3INCj4gbUJvb3RNYW5hZ2VyTGliL1BsYXRmb3JtRGF0YS5jDQo+IGluZGV4IDVmNGNiYTg3 YTcuLmQ4ODcxYTRiZDUgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L0NhcHN1bGUvUGxhdGZvcg0KPiBtQm9vdE1hbmFn ZXJMaWIvUGxhdGZvcm1EYXRhLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9DaGFjaGFuaUJvYXJkUGtnL0xpYnJhcnkvQ2Fwc3VsZS9QbGF0Zm9yDQo+IG1Cb290TWFuYWdl ckxpYi9QbGF0Zm9ybURhdGEuYw0KPiBAQCAtMSwxNyArMSw4IEBADQo+IC0vKiogQGZpbGUNCj4g LSAgSW1wbGVtZW50cyBQbGF0Zm9ybURhdGEuYw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAy NCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+ IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJs aXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUN Cj4gICAgRGVmaW5lZCB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgZGV2aWNlIHBhdGggd2hpY2ggd2ls bCBiZSBmaWxsZWQgdG8NCj4gICAgQ29uSW4vQ29uT3V0IHZhcmlhYmxlcy4NCj4NCj4gK0NvcHly aWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiAgQ29weXJpZ2h0IChjKSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPiAgKiovDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvTGlicmFyeS9QbGF0Zm9ybVNlY0xpYg0KPiAvSWEz Mi9GbGF0MzIubmFzbQ0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2Fy ZFBrZy9MaWJyYXJ5L1BsYXRmb3JtU2VjTGliDQo+IC9JYTMyL0ZsYXQzMi5uYXNtDQo+IGluZGV4 IGIxMWY0NTc2OGMuLjU2MzhjNDExZTMgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L1BsYXRmb3JtU2VjTGliDQo+IC9J YTMyL0ZsYXQzMi5uYXNtDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hh Y2hhbmlCb2FyZFBrZy9MaWJyYXJ5L1BsYXRmb3JtU2VjTGliDQo+IC9JYTMyL0ZsYXQzMi5uYXNt DQo+IEBAIC0xLDMxICsxLDE0IEBADQo+ICA7LyoqIEBmaWxlDQo+ICA7IEFNRCBWYW5Hb2doQm9h cmQgUGxhdGZvcm1TZWNMaWINCj4gKzsgIFRoaXMgaXMgdGhlIGNvZGUgdGhhdCBnb2VzIGZyb20g cmVhbC1tb2RlIHRvIHByb3RlY3RlZCBtb2RlLg0KPiArOyAgSXQgY29uc3VtZXMgdGhlIHJlc2V0 IHZlY3RvciwgY29uZmlndXJlcyB0aGUgc3RhY2suDQo+ICA7DQo+ICs7IENvcHlyaWdodCAoYykg MjAxMy0yMDE1IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g IDsgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ICA7IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQo+ICA7DQo+ICA7KiovDQo+DQo+IC07IFRoaXMgZmlsZSBpbmNsdWRlcyBj b2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4g LTstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLTsNCj4gLTsgQ29weXJpZ2h0IChjKSAyMDEzLTIw MTUgSW50ZWwgQ29ycG9yYXRpb24uDQo+IC07DQo+IC07IFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC07DQo+IC07IE1vZHVsZSBOYW1lOg0KPiAtOw0KPiAt OyAgRmxhdDMyLmFzbQ0KPiAtOw0KPiAtOyBBYnN0cmFjdDoNCj4gLTsNCj4gLTsgIFRoaXMgaXMg dGhlIGNvZGUgdGhhdCBnb2VzIGZyb20gcmVhbC1tb2RlIHRvIHByb3RlY3RlZCBtb2RlLg0KPiAt OyAgSXQgY29uc3VtZXMgdGhlIHJlc2V0IHZlY3RvciwgY29uZmlndXJlcyB0aGUgc3RhY2suDQo+ IC07DQo+IC07DQo+IC07LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0NCj4gLQ0KPiAgOw0KPiAg OyBJbmNsdWRlIHByb2Nlc3NvciBkZWZpbml0aW9ucw0KPiAgOw0KPiBkaWZmIC0tZ2l0DQo+IGEv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0xpYnJhcnkvUGxhdGZv cm1TZWNMaWINCj4gL0lhMzIvUGxhdGZvcm0uaW5jDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hC b2FyZC9DaGFjaGFuaUJvYXJkUGtnL0xpYnJhcnkvUGxhdGZvcm1TZWNMaWINCj4gL0lhMzIvUGxh dGZvcm0uaW5jDQo+IGluZGV4IGMwNTdkMTU3ZDkuLjdlZjBkOWEyYzAgMTAwNjQ0DQo+IC0tLQ0K PiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L1Bs YXRmb3JtU2VjTGliDQo+IC9JYTMyL1BsYXRmb3JtLmluYw0KPiArKysNCj4gYi9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvTGlicmFyeS9QbGF0Zm9ybVNlY0xpYg0K PiAvSWEzMi9QbGF0Zm9ybS5pbmMNCj4gQEAgLTEsMjkgKzEsMTMgQEANCj4gIDsvKiogQGZpbGUN Cj4gIDsgQU1EIFZhbkdvZ2hCb2FyZCBQbGF0Zm9ybVNlY0xpYg0KPiArOyBQbGF0Zm9ybSBTcGVj aWZpYyBEZWZpbml0aW9ucw0KPiAgOw0KPiArOyBDb3B5cmlnaHQgKGMpIDIwMTMtMjAxNSBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICA7IENvcHlyaWdodCAo QykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiAgOyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0K PiAgOw0KPiAgOyoqLw0KPg0KPiAtOyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5 IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC07DQo+IC07IENvcHly aWdodCAoYykgMjAxMy0yMDE1IEludGVsIENvcnBvcmF0aW9uLg0KPiAtOw0KPiAtOyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtOw0KPiAtOy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiAtOw0KPiAtOyBNb2R1bGUgTmFtZToNCj4gLTsNCj4gLTsgICBQbGF0 Zm9ybS5pbmMNCj4gLTsNCj4gLTsgQWJzdHJhY3Q6DQo+IC07DQo+IC07ICAgUGxhdGZvcm0gU3Bl Y2lmaWMgRGVmaW5pdGlvbnMNCj4gLTsNCj4gLTstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLQ0K PiAgJW1hY3JvIEpNUDMyIDENCj4gICAgbGVhICBlc3AsICUldGFyZ2V0DQo+ICAgIGptcCAgJTEN Cj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2Fy ZFBrZy9MaWJyYXJ5L1BsYXRmb3JtU2VjTGliDQo+IC9QbGF0Zm9ybVNlY0xpYi5jDQo+IGIvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0xpYnJhcnkvUGxhdGZvcm1T ZWNMaWINCj4gL1BsYXRmb3JtU2VjTGliLmMNCj4gaW5kZXggNGMyN2Q5YjVhMi4uYzVmN2NjNjAx OCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJv YXJkUGtnL0xpYnJhcnkvUGxhdGZvcm1TZWNMaWINCj4gL1BsYXRmb3JtU2VjTGliLmMNCj4gKysr DQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL0xpYnJhcnkv UGxhdGZvcm1TZWNMaWINCj4gL1BsYXRmb3JtU2VjTGliLmMNCj4gQEAgLTEsMjEgKzEsOSBAQA0K PiAtLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgUGxhdGZvcm1TZWNMaWIuYw0KPiAtDQo+IC0g IENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNv ZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0K PiAtDQo+ICAvKiogQGZpbGUNCj4gIFBsYXRmb3JtIFNFQyBMaWJyYXJ5IGZvciBRdWFyay4NCj4N Cj4gLUNvcHlyaWdodCAoYykgMjAxMy0yMDE1IEludGVsIENvcnBvcmF0aW9uLg0KPiAtDQo+ICtD b3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gK0NvcHlyaWdodCAoYykgMjAxMy0yMDE1IEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLQ0KPiAgKiovDQo+DQo+ICAjaW5jbHVkZSA8 UGlQZWkuaD4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hh Y2hhbmlCb2FyZFBrZy9MaWJyYXJ5L1BsYXRmb3JtU2VjTGliDQo+IC9QbGF0Zm9ybVNlY0xpYi5p bmYNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvTGlicmFy eS9QbGF0Zm9ybVNlY0xpYg0KPiAvUGxhdGZvcm1TZWNMaWIuaW5mDQo+IGluZGV4IDFjMjNmZDQ5 NDkuLmJhYTc5MzllNDYgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L1BsYXRmb3JtU2VjTGliDQo+IC9QbGF0Zm9ybVNl Y0xpYi5pbmYNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJv YXJkUGtnL0xpYnJhcnkvUGxhdGZvcm1TZWNMaWINCj4gL1BsYXRmb3JtU2VjTGliLmluZg0KPiBA QCAtMSwxNCArMSw3IEBADQo+IC0jIyBAZmlsZQ0KPiAtIyBQbGF0Zm9ybSBTZWMgTGliIE1vZHVs ZQ0KPiAtIw0KPiAtIyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLSMNCj4gLSMjDQo+IC0jIFRoaXMgZmlsZSBpbmNs dWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5z ZS4NCj4gICMvKiogQGZpbGUNCj4gICMgUGxhdGZvcm0gU0VDIExpYnJhcnkgZm9yIFF1YXJrLg0K PiAgIw0KPiArIyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5j LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICMgQ29weXJpZ2h0IChjKSAyMDEzLTIwMTUg SW50ZWwgQ29ycG9yYXRpb24uDQo+ICAjDQo+ICAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvTGlicmFyeS9QbGF0Zm9ybVNlY0xpYg0KPiAvUGxhdGZv cm1TZWNMaWJNb2RTdHJzLnVuaQ0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hh bmlCb2FyZFBrZy9MaWJyYXJ5L1BsYXRmb3JtU2VjTGliDQo+IC9QbGF0Zm9ybVNlY0xpYk1vZFN0 cnMudW5pDQo+IGluZGV4IGY3MjhlMDc2OTUuLjkzZWU0YTY1ZGMgMTAwNjQ0DQo+IC0tLQ0KPiBh L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L1BsYXRm b3JtU2VjTGliDQo+IC9QbGF0Zm9ybVNlY0xpYk1vZFN0cnMudW5pDQo+ICsrKw0KPiBiL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9MaWJyYXJ5L1BsYXRmb3JtU2Vj TGliDQo+IC9QbGF0Zm9ybVNlY0xpYk1vZFN0cnMudW5pDQo+IEBAIC0xLDE2ICsxLDcgQEANCj4g IC8vIC8qKiBAZmlsZQ0KPiAtLy8gQU1EIFBsYXRmb3JtU2VjTGliTW9kU3Rycy51bmkNCj4gLS8v DQo+IC0vLyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLS8vDQo+IC0vLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtLy8NCj4gLS8vICoqLw0KPiAtDQo+IC0vLyBU aGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9s bG93aW5nIGxpY2Vuc2UuDQo+IC0vLyAvKiogQGZpbGUNCj4gIC8vIFBsYXRmb3JtU2VjTGliIExv Y2FsaXplZCBBYnN0cmFjdCBhbmQgRGVzY3JpcHRpb24gQ29udGVudA0KPiAgLy8NCj4gKy8vIENv cHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiAgLy8gQ29weXJpZ2h0IChjKSAyMDEyIC0gMjAxMywgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgLy8NCj4gIC8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IGRpZmYgLS1naXQNCj4gYS9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvUGNpUGxhdGZvcm0vQ29t bW9uSA0KPiBlYWRlci5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJv YXJkUGtnL1BjaVBsYXRmb3JtL0NvbW1vbkgNCj4gZWFkZXIuaA0KPiBpbmRleCA0MzBkOWY1MWRj Li5mNGU2NDYxMjA2IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJk L0NoYWNoYW5pQm9hcmRQa2cvUGNpUGxhdGZvcm0vQ29tbW9uSA0KPiBlYWRlci5oDQo+ICsrKw0K PiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9QY2lQbGF0Zm9y bS9Db21tb25IDQo+IGVhZGVyLmgNCj4gQEAgLTEsMzEgKzEsMTUgQEANCj4gIC8qKiBAZmlsZQ0K PiAgICBJbXBsZW1lbnRzIENvbW1vbkhlYWRlci5oDQo+ICsgIFRoaXMgZmlsZSBpbmNsdWRlcyBw YWNrYWdlIGhlYWRlciBmaWxlcywgbGlicmFyeSBjbGFzc2VzIGFuZCBwcm90b2NvbCwgUFBJICYN Cj4gR1VJRCBkZWZpbml0aW9ucy4NCj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDEzLTIwMTUgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBDb3B5cmlnaHQg KEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4NCj4gICoqLw0KPg0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBw dWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZp bGUNCj4gLUNvbW1vbiBoZWFkZXIgZmlsZSBzaGFyZWQgYnkgYWxsIHNvdXJjZSBmaWxlcy4NCj4g LQ0KPiAtVGhpcyBmaWxlIGluY2x1ZGVzIHBhY2thZ2UgaGVhZGVyIGZpbGVzLCBsaWJyYXJ5IGNs YXNzZXMgYW5kIHByb3RvY29sLCBQUEkgJg0KPiBHVUlEIGRlZmluaXRpb25zLg0KPiAtDQo+IC1D b3B5cmlnaHQgKGMpIDIwMTMtMjAxNSBJbnRlbCBDb3Jwb3JhdGlvbi4NCj4gLQ0KPiAtVGhpcyAg cHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLWFyZSBsaWNlbnNlZCBh bmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBC U0QNCj4gTGljZW5zZQ0KPiAtd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBU aGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtaHR0cDov L29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiAtDQo+IC1USEUgUFJP R1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0K PiBCQVNJUywNCj4gLVdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5Z IEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+IC0qKi8NCj4gLQ0KPiAtI2lm bmRlZiBfX0NPTU1PTl9IRUFERVJfSF8NCj4gLSNkZWZpbmUgX19DT01NT05fSEVBREVSX0hfDQo+ ICsjaWZuZGVmIENPTU1PTl9IRUFERVJfSF9fXw0KPiArI2RlZmluZSBDT01NT05fSEVBREVSX0hf X18NCj4NCj4gICNpbmNsdWRlIDxQaUR4ZS5oPg0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL1BjaVBsYXRmb3JtL1BjaVBsYXRm b3INCj4gbS5jDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtn L1BjaVBsYXRmb3JtL1BjaVBsYXRmb3INCj4gbS5jDQo+IGluZGV4IDczM2QzMzQwNzUuLmFhMGEx MzNiMWYgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvQ2hhY2hh bmlCb2FyZFBrZy9QY2lQbGF0Zm9ybS9QY2lQbGF0Zm9yDQo+IG0uYw0KPiArKysNCj4gYi9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvUGNpUGxhdGZvcm0vUGNpUGxh dGZvcg0KPiBtLmMNCj4gQEAgLTEsMjcgKzEsMTEgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBJbXBs ZW1lbnRzIFBjaVBsYXRmb3JtLmMNCj4gKyAgUmVnaXN0ZXJzIG9uYm9hcmQgUENJIFJPTXMgd2l0 aCBQQ0kuSU8NCj4NCj4gICAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmlj ZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsgIENvcHlyaWdodCAoYykgMjAx My0yMDE1IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gLSoqLw0K PiAtDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1 bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gLS8qKiBAZmlsZQ0KPiAtUmVn aXN0ZXJzIG9uYm9hcmQgUENJIFJPTXMgd2l0aCBQQ0kuSU8NCj4gLQ0KPiAtQ29weXJpZ2h0IChj KSAyMDEzLTIwMTUgSW50ZWwgQ29ycG9yYXRpb24uDQo+IC0NCj4gLVRoaXMgcHJvZ3JhbSBhbmQg dGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLWFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFp bGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGljZW5z ZQ0KPiAtd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0 IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtaHR0cDovL29wZW5zb3VyY2Uu b3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiAtDQo+IC1USEUgUFJPR1JBTSBJUyBESVNU UklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4g LVdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhF Ug0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+IC0NCj4gLQ0KPiAgKiovDQo+DQo+ICAjaW5jbHVk ZSAiQ29tbW9uSGVhZGVyLmgiDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvUGNpUGxhdGZvcm0vUGNpUGxhdGZvcg0KPiBtLmgNCj4g Yi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvUGNpUGxhdGZvcm0v UGNpUGxhdGZvcg0KPiBtLmgNCj4gaW5kZXggOTVhM2U4ODE2Yy4uYTBhNGUwMTE2MSAxMDA2NDQN Cj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL1Bj aVBsYXRmb3JtL1BjaVBsYXRmb3INCj4gbS5oDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvQ2hhY2hhbmlCb2FyZFBrZy9QY2lQbGF0Zm9ybS9QY2lQbGF0Zm9yDQo+IG0uaA0K PiBAQCAtMSwyOCArMSwxMiBAQA0KPiAgLyoqIEBmaWxlDQo+ICAgIEltcGxlbWVudHMgUGNpUGxh dGZvcm0uaA0KPiArICBUaGlzIGNvZGUgc3VwcG9ydHMgYSB0aGUgcHJpdmF0ZSBpbXBsZW1lbnRh dGlvbg0KPiArICBvZiB0aGUgTGVnYWN5IEJJT1MgUGxhdGZvcm0gcHJvdG9jb2wNCj4NCj4gICAg Q29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+ICsgIENvcHlyaWdodCAoYykgMjAxMy0yMDE1IEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlzIGZp bGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5n IGxpY2Vuc2UuICovDQo+IC0NCj4gLS8qKiBAZmlsZQ0KPiAtVGhpcyBjb2RlIHN1cHBvcnRzIGEg dGhlIHByaXZhdGUgaW1wbGVtZW50YXRpb24NCj4gLW9mIHRoZSBMZWdhY3kgQklPUyBQbGF0Zm9y bSBwcm90b2NvbA0KPiAtDQo+IC1Db3B5cmlnaHQgKGMpIDIwMTMtMjAxNSBJbnRlbCBDb3Jwb3Jh dGlvbi4NCj4gLQ0KPiAtVGhpcyAgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlh bHMNCj4gLWFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFu ZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGljZW5zZQ0KPiAtd2hpY2ggYWNjb21wYW5pZXMg dGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0K PiBmb3VuZCBhdA0KPiAtaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNl LnBocA0KPiAtDQo+IC1USEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJ Q0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gLVdJVEhPVVQgV0FSUkFOVElFUyBPUiBS RVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9SIElNUExJRUQu DQo+IC0NCj4gLQ0KPiAgKiovDQo+DQo+ICAjaWZuZGVmIFBDSV9QTEFURk9STV9IXw0KPiBkaWZm IC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9DaGFjaGFuaUJvYXJkUGtnL1Bj aVBsYXRmb3JtL1BjaVBsYXRmb3INCj4gbS5pbmYNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL0NoYWNoYW5pQm9hcmRQa2cvUGNpUGxhdGZvcm0vUGNpUGxhdGZvcg0KPiBtLmluZg0KPiBp bmRleCAxNmQ0NmY2MzhhLi4xNjAyODQwMGNlIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9hcmRQa2cvUGNpUGxhdGZvcm0vUGNpUGxhdGZvcg0K PiBtLmluZg0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL0NoYWNoYW5pQm9h cmRQa2cvUGNpUGxhdGZvcm0vUGNpUGxhdGZvcg0KPiBtLmluZg0KPiBAQCAtMSwyOCArMSwxMyBA QA0KPiAgIyMgQGZpbGUNCj4gICMgIFBDSSBQbGF0Zm9ybSAgSU5GIGZpbGUNCj4gKyMgVGhpcyBk cml2ZXIgaW5zdGFsbHMgcGNpcGxhdGZvcm0gcHJvdG9jb2wgdG8gcHJvdmlkZSBhY2Nlc3MgaW50 ZXJmYWNlcyB0byB0aGUNCj4gb25ib2FyZCBwY2kgcm9tcy4NCj4gICMNCj4gICMgQ29weXJpZ2h0 IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ICsjIENvcHlyaWdodCAoYykgMjAxMy0yMDE1IEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCj4gICMNCj4gICMjDQo+DQo+IC0jIFRoaXMgZmlsZSBpbmNsdWRl cyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4N Cj4gLSMjIEBmaWxlDQo+IC0jIENvbXBvbmVudCBkZXNjcmlwdGlvbiBmaWxlIGZvciBQY2lQbGF0 Zm9ybSBtb2R1bGUuDQo+IC0jDQo+IC0jIFRoaXMgZHJpdmVyIGluc3RhbGxzIHBjaXBsYXRmb3Jt IHByb3RvY29sIHRvIHByb3ZpZGUgYWNjZXNzIGludGVyZmFjZXMgdG8gdGhlDQo+IG9uYm9hcmQg cGNpIHJvbXMuDQo+IC0jIENvcHlyaWdodCAoYykgMjAxMy0yMDE1IEludGVsIENvcnBvcmF0aW9u Lg0KPiAtIw0KPiAtIyBUaGlzICBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFs cw0KPiAtIyBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBh bmQgY29uZGl0aW9ucyBvZiB0aGUNCj4gQlNEIExpY2Vuc2UNCj4gLSMgd2hpY2ggYWNjb21wYW5p ZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBi ZQ0KPiBmb3VuZCBhdA0KPiAtIyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxp Y2Vuc2UucGhwDQo+IC0jDQo+IC0jIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRI RSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtIyBXSVRIT1VUIFdBUlJB TlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBP UiBJTVBMSUVELg0KPiAtIw0KPiAtIyMNCj4gLQ0KPiAgW0RlZmluZXNdDQo+ICAgIElORl9WRVJT SU9OICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMDUNCj4gICAgQkFTRV9OQU1FICAgICAg ICAgICAgICAgICAgICAgID0gUGNpUGxhdGZvcm0NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi8N Cj4gR2VuRmRzL0NhcHN1bGUucHkNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJy aWRlL2VkazIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vDQo+IEdlbkZkcy9DYXBzdWxlLnB5DQo+ IGluZGV4IDI0OGViMjU4ODkuLjBlYzBiM2NhNDMgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi8N Cj4gR2VuRmRzL0NhcHN1bGUucHkNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9PdmVycmlkZS9lZGsyL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uLw0KPiBHZW5GZHMvQ2Fwc3Vs ZS5weQ0KPiBAQCAtMSwxNSArMSw3IEBADQo+IC0NCj4gIy8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiAqKioqKioqKioqKioq KioNCj4gLSMqDQo+IC0jKiBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNl cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSMqIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gIyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiAqKioqKioqKioq KioqKioNCj4gLSMNCj4gLQ0KPiAtIyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5 IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC0NCj4gICMjIEBmaWxl DQo+ICAjIGdlbmVyYXRlIGNhcHN1bGUNCj4gICMNCj4gKyMgIENvcHlyaWdodCAoQykgMjAyNCBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuDQo+ICAjICBDb3B5cmlnaHQgKGMpIDIwMDcgLSAy MDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAjDQo+ ICAjICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiBkaWZm IC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJX cmFwcGVyUGtnL0ZzcFdyYXANCj4gcGVyTm90aWZ5RHhlL0ZzcFdyYXBwZXJOb3RpZnlEeGUuYw0K PiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBr Zy9Gc3BXcmFwDQo+IHBlck5vdGlmeUR4ZS9Gc3BXcmFwcGVyTm90aWZ5RHhlLmMNCj4gaW5kZXgg ZTFiNGJmMTY5Zi4uMGM5OTdiNDBkMCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1Zh bkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0ZzcFdyYXANCj4gcGVyTm90 aWZ5RHhlL0ZzcFdyYXBwZXJOb3RpZnlEeGUuYw0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvRnNwV3JhcA0KPiBwZXJOb3Rp ZnlEeGUvRnNwV3JhcHBlck5vdGlmeUR4ZS5jDQo+IEBAIC0xLDE2ICsxLDcgQEANCj4gLS8qKiBA ZmlsZQ0KPiAtICBJbXBsZW1lbnRzIEZzcFdyYXBwZXJOb3RpZnlEeGUuQw0KPiAtDQo+IC0gIENv cHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUg b3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAt DQo+ICAvKiogQGZpbGUNCj4gICAgVGhpcyBkcml2ZXIgd2lsbCByZWdpc3RlciB0d28gY2FsbGJh Y2tzIHRvIGNhbGwgZnNwJ3Mgbm90aWZpZXMuDQo+DQo+ICsgIENvcHlyaWdodCAoQykgMjAyNCBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAg ICBDb3B5cmlnaHQgKGMpIDIwMTQgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJk L092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvRnNwV3JhcA0KPiBwZXJOb3RpZnlEeGUvTG9h ZEJlbG93NEcuYw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9G c3AyV3JhcHBlclBrZy9Gc3BXcmFwDQo+IHBlck5vdGlmeUR4ZS9Mb2FkQmVsb3c0Ry5jDQo+IGlu ZGV4IDUwZTFkMmEyNDkuLjlhNDlkM2I0OTIgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9Gc3BXcmFwDQo+IHBl ck5vdGlmeUR4ZS9Mb2FkQmVsb3c0Ry5jDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2do Qm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9Gc3BXcmFwDQo+IHBlck5vdGlmeUR4 ZS9Mb2FkQmVsb3c0Ry5jDQo+IEBAIC0xLDE1ICsxLDYgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJ bXBsZW1lbnRzIExvYWRCZWxvdzRHLkMNCj4gLQ0KPiAtICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2 YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSAg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0KPiAtKiov DQo+IC0NCj4gLS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVk IHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAgLyoqIEBmaWxlDQo+DQo+ ICtDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gIENvcHlyaWdodCAoYykgMjAxNSAtIDIwMTcsIEludGVsIENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4NCj4gIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9y bS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvRnNwbVdyYQ0K PiBwcGVyUGVpbS9Gc3BtV3JhcHBlclBlaW0uYw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9Gc3BtV3INCj4gYXBwZXJQZWltL0ZzcG1X cmFwcGVyUGVpbS5jDQo+IGluZGV4IDliMGExN2Y2MDcuLmZjNWEzMzllOGIgMTAwNjQ0DQo+IC0t LQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBl clBrZy9Gc3BtV3JhDQo+IHBwZXJQZWltL0ZzcG1XcmFwcGVyUGVpbS5jDQo+ICsrKw0KPiBiL1Bs YXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9Gc3Bt V3INCj4gYXBwZXJQZWltL0ZzcG1XcmFwcGVyUGVpbS5jDQo+IEBAIC0xLDE4ICsxLDkgQEANCj4g LS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIEZzcG1XcmFwcGVyUGVpbS5DDQo+IC0NCj4gLSAg Q29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29k ZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+ IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBUaGlzIHdpbGwgYmUgaW52b2tlZCBvbmx5IG9uY2UuIEl0 IHdpbGwgY2FsbCBGc3BNZW1vcnlJbml0IEFQSSwNCj4gICAgcmVnaXN0ZXIgVGVtcG9yYXJ5UmFt RG9uZVBwaSB0byBjYWxsIFRlbXBSYW1FeGl0IEFQSSwgYW5kIHJlZ2lzdGVyDQo+IE1lbW9yeURp c2NvdmVyZWRQcGkNCj4gICAgbm90aWZ5IHRvIGNhbGwgRnNwU2lsaWNvbkluaXQgQVBJLg0KPg0K PiArICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDE0IC0gMjAyMiwgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0Zz cHNNdWx0aQ0KPiBQaGFzZVNpSW5pdER4ZS9Gc3BzTXVsdGlQaGFzZVNpSW5pdER4ZS5jDQo+IGIv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0Zz cHNNdWx0DQo+IGlQaGFzZVNpSW5pdER4ZS9Gc3BzTXVsdGlQaGFzZVNpSW5pdER4ZS5jDQo+IGlu ZGV4IDU0ZGQzYjAyYzcuLmJiNWUxMmNiYTkgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9Gc3BzTXVsdGkNCj4g UGhhc2VTaUluaXREeGUvRnNwc011bHRpUGhhc2VTaUluaXREeGUuYw0KPiArKysNCj4gYi9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvRnNwc011 bHQNCj4gaVBoYXNlU2lJbml0RHhlL0ZzcHNNdWx0aVBoYXNlU2lJbml0RHhlLmMNCj4gQEAgLTEs MTYgKzEsNyBAQA0KPiAtLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgRnNwc011bHRpUGhhc2VT aUluaXREeGUuQw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBE ZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyog VGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZv bGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4gICAgVGhpcyBkcml2ZXIg d2lsbCByZWdpc3RlciB0d28gY2FsbGJhY2tzIHRvIGNhbGwgZnNwJ3Mgbm90aWZpZXMuDQo+DQo+ ICsgIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBDb3B5cmlnaHQgKGMpIDIwMTQgLSAyMDE5LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+IGRpZmYgLS1naXQNCj4gYS9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvRnNw c011bHRpDQo+IFBoYXNlU2lJbml0RHhlL0xvYWRCZWxvdzRHLmMNCj4gYi9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvRnNwc011bHQNCj4gaVBo YXNlU2lJbml0RHhlL0xvYWRCZWxvdzRHLmMNCj4gaW5kZXggNTBlMWQyYTI0OS4uYWUwNTU1NmNj OSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9l ZGsyL0ZzcDJXcmFwcGVyUGtnL0ZzcHNNdWx0aQ0KPiBQaGFzZVNpSW5pdER4ZS9Mb2FkQmVsb3c0 Ry5jDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9G c3AyV3JhcHBlclBrZy9Gc3BzTXVsdA0KPiBpUGhhc2VTaUluaXREeGUvTG9hZEJlbG93NEcuYw0K PiBAQCAtMSwxNSArMSw3IEBADQo+ICAvKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBMb2FkQmVs b3c0Ry5DDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmlj ZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlz IGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93 aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gLS8qKiBAZmlsZQ0KPiArSW1wbGVtZW50cyBMb2FkQmVs b3c0Ry5DDQo+DQo+ICtDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIENvcHlyaWdodCAoYykgMjAxNSAtIDIw MTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4NCj4gIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IGRpZmYgLS1naXQN Cj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQ a2cvRnNwc1dyYQ0KPiBwcGVyUGVpbS9Gc3BzV3JhcHBlclBlaW0uYw0KPiBiL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9Gc3BzV3JhDQo+IHBw ZXJQZWltL0ZzcHNXcmFwcGVyUGVpbS5jDQo+IGluZGV4IDY5MTJkMjNhN2QuLmU2YTU4OWJjYjUg MTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRr Mi9Gc3AyV3JhcHBlclBrZy9Gc3BzV3JhDQo+IHBwZXJQZWltL0ZzcHNXcmFwcGVyUGVpbS5jDQo+ ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3Jh cHBlclBrZy9Gc3BzV3JhDQo+IHBwZXJQZWltL0ZzcHNXcmFwcGVyUGVpbS5jDQo+IEBAIC0xLDE4 ICsxLDkgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIEZzcHNXcmFwcGVyUGVpbS5D DQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIElu Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlzIGZpbGUg aW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxp Y2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBUaGlzIHdpbGwgYmUgaW52b2tlZCBv bmx5IG9uY2UuIEl0IHdpbGwgY2FsbCBGc3BNZW1vcnlJbml0IEFQSSwNCj4gICAgcmVnaXN0ZXIg VGVtcG9yYXJ5UmFtRG9uZVBwaSB0byBjYWxsIFRlbXBSYW1FeGl0IEFQSSwgYW5kIHJlZ2lzdGVy DQo+IE1lbW9yeURpc2NvdmVyZWRQcGkNCj4gICAgbm90aWZ5IHRvIGNhbGwgRnNwU2lsaWNvbklu aXQgQVBJLg0KPg0KPiArICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNl cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDE0 IC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAg ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiBkaWZm IC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJX cmFwcGVyUGtnL0luY2x1ZGUvRg0KPiBzcFVwZC5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hC b2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1ZGUvRg0KPiBzcFVwZC5oDQo+ IGluZGV4IGUyNjY4OGUwYjkuLmE0ODI3YTAwNjggMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlL0YN Cj4gc3BVcGQuaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRl L2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9GDQo+IHNwVXBkLmgNCj4gQEAgLTYsOCArNiw4 IEBADQo+DQo+ICAqKi8NCj4NCj4gLSNpZm5kZWYgX19GU1BVUERfSF9fDQo+IC0jZGVmaW5lIF9f RlNQVVBEX0hfXw0KPiArI2lmbmRlZiBGU1BVUERfSF9fX18NCj4gKyNkZWZpbmUgRlNQVVBEX0hf X19fDQo+DQo+ICAjaWZkZWYgVVNFX0VES0lJX0hFQURFUl9GSUxFDQo+ICAgICNpbmNsdWRlIDxG c3BFYXMuaD4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3Zl cnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlL0YNCj4gc3BtVXBkLmgNCj4gYi9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVk ZS9GDQo+IHNwbVVwZC5oDQo+IGluZGV4IDVjY2YyYWFkMzQuLmVkOWE2Yzc5YTMgMTAwNjQ0DQo+ IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3Jh cHBlclBrZy9JbmNsdWRlL0YNCj4gc3BtVXBkLmgNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1Zh bkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1ZGUvRg0KPiBzcG1V cGQuaA0KPiBAQCAtNiw4ICs2LDggQEANCj4NCj4gICoqLw0KPg0KPiAtI2lmbmRlZiBfX0ZTUE1V UERfSF9fDQo+IC0jZGVmaW5lIF9fRlNQTVVQRF9IX18NCj4gKyNpZm5kZWYgRlNQTVVQRF9IX19f Xw0KPiArI2RlZmluZSBGU1BNVVBEX0hfX19fDQo+DQo+ICAjaW5jbHVkZSA8RnNwVXBkLmg+DQo+ DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2Vk azIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9GDQo+IHNwc1VwZC5oDQo+IGIvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1ZGUvRg0KPiBz cHNVcGQuaA0KPiBpbmRleCBmMzFjZjQ0ZWM4Li5jMWZiODljNjNkIDEwMDY0NA0KPiAtLS0NCj4g YS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cv SW5jbHVkZS9GDQo+IHNwc1VwZC5oDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlL0YNCj4gc3BzVXBkLmgNCj4g QEAgLTYsOCArNiw4IEBADQo+DQo+ICAqKi8NCj4NCj4gLSNpZm5kZWYgX19GU1BTVVBEX0hfXw0K PiAtI2RlZmluZSBfX0ZTUFNVUERfSF9fDQo+ICsjaWZuZGVmIEZTUFNVUERfSF9fX18NCj4gKyNk ZWZpbmUgRlNQU1VQRF9IX19fXw0KPg0KPiAgI2luY2x1ZGUgPEZzcFVwZC5oPg0KPg0KPiBkaWZm IC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJX cmFwcGVyUGtnL0luY2x1ZGUvRg0KPiBzcHRVcGQuaA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2do Qm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlL0YNCj4gc3B0VXBkLmgN Cj4gaW5kZXggNjlmYjI5ZWQyNC4uNjA0ZWZlZmE3ZCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1ZGUv Rg0KPiBzcHRVcGQuaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJy aWRlL2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9GDQo+IHNwdFVwZC5oDQo+IEBAIC02LDgg KzYsOCBAQA0KPg0KPiAgKiovDQo+DQo+IC0jaWZuZGVmIF9fRlNQVFVQRF9IX18NCj4gLSNkZWZp bmUgX19GU1BUVVBEX0hfXw0KPiArI2lmbmRlZiBGU1BUVVBEX0hfX19fDQo+ICsjZGVmaW5lIEZT UFRVUERfSF9fX18NCj4NCj4gICNpbmNsdWRlIDxGc3BVcGQuaD4NCj4NCj4gZGlmZiAtLWdpdA0K PiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBr Zy9JbmNsdWRlL0wNCj4gaWJyYXJ5L0ZzcE1lYXN1cmVtZW50TGliLmgNCj4gYi9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9MDQo+ IGlicmFyeS9Gc3BNZWFzdXJlbWVudExpYi5oDQo+IGluZGV4IGI0YjI2NjIzZmQuLjcxNzI1NDRi OGEgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUv ZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlL0wNCj4gaWJyYXJ5L0ZzcE1lYXN1cmVtZW50TGli LmgNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0Zz cDJXcmFwcGVyUGtnL0luY2x1ZGUvTA0KPiBpYnJhcnkvRnNwTWVhc3VyZW1lbnRMaWIuaA0KPiBA QCAtMSwyMyArMSwxNCBAQA0KPiAtLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgRnNwTWVhc3Vy ZW1lbnRMaWIuaA0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBE ZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyog VGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZv bGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4gICAgVGhpcyBsaWJyYXJ5 IGlzIHVzZWQgYnkgRlNQIG1vZHVsZXMgdG8gbWVhc3VyZSBkYXRhIHRvIFRQTS4NCj4NCj4gK0Nv cHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiAgQ29weXJpZ2h0IChjKSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cyByZXNlcnZlZC4gPEJSPg0KPiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoqLw0KPg0KPiAtI2lmbmRlZiBfRlNQX01FQVNVUkVN RU5UX0xJQl9IXw0KPiAtI2RlZmluZSBfRlNQX01FQVNVUkVNRU5UX0xJQl9IXw0KPiArI2lmbmRl ZiBGU1BfTUVBU1VSRU1FTlRfTElCX0hfXw0KPiArI2RlZmluZSBGU1BfTUVBU1VSRU1FTlRfTElC X0hfXw0KPg0KPiAgI2RlZmluZSBGU1BfTUVBU1VSRV9GU1AgICAgIEJJVDANCj4gICNkZWZpbmUg RlNQX01FQVNVUkVfRlNQVCAgICBCSVQxDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9MDQo+IGli cmFyeS9Gc3BXcmFwcGVyQXBpTGliLmgNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092 ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9MDQo+IGlicmFyeS9Gc3BXcmFwcGVy QXBpTGliLmgNCj4gaW5kZXggZTg1M2NlYTUzNy4uMDczYzZlMWQwZSAxMDA2NDQNCj4gLS0tDQo+ IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtn L0luY2x1ZGUvTA0KPiBpYnJhcnkvRnNwV3JhcHBlckFwaUxpYi5oDQo+ICsrKw0KPiBiL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRl L0wNCj4gaWJyYXJ5L0ZzcFdyYXBwZXJBcGlMaWIuaA0KPiBAQCAtMSwyMyArMSwxNCBAQA0KPiAt LyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgRnNwV3JhcHBlckFwaUxpYi5oDQo+IC0NCj4gLSAg Q29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29k ZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+ IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBQcm92aWRlIEZTUCB3cmFwcGVyIEFQSSByZWxhdGVkIGZ1 bmN0aW9uLg0KPg0KPiArICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNl cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDE0 IC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAg ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiAgKiov DQo+DQo+IC0jaWZuZGVmIF9fRlNQX1dSQVBQRVJfQVBJX0xJQl9IX18NCj4gLSNkZWZpbmUgX19G U1BfV1JBUFBFUl9BUElfTElCX0hfXw0KPiArI2lmbmRlZiBGU1BfV1JBUFBFUl9BUElfTElCX0hf X19fDQo+ICsjZGVmaW5lIEZTUF9XUkFQUEVSX0FQSV9MSUJfSF9fX18NCj4NCj4gICNpbmNsdWRl IDxGc3BFYXMuaD4NCj4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlL0wNCj4gaWJyYXJ5L0ZzcFdy YXBwZXJBcGlUZXN0TGliLmgNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRl L2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9MDQo+IGlicmFyeS9Gc3BXcmFwcGVyQXBpVGVz dExpYi5oDQo+IGluZGV4IDZiNTkxZGVmMWIuLmM0ZTc4NWU0MWUgMTAwNjQ0DQo+IC0tLQ0KPiBh L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9J bmNsdWRlL0wNCj4gaWJyYXJ5L0ZzcFdyYXBwZXJBcGlUZXN0TGliLmgNCj4gKysrDQo+IGIvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1 ZGUvTA0KPiBpYnJhcnkvRnNwV3JhcHBlckFwaVRlc3RMaWIuaA0KPiBAQCAtMSwyMyArMSwxNCBA QA0KPiAtLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgRnNwV3JhcHBlckFwaVRlc3RMaWIuaA0K PiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMu IEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBmaWxlIGlu Y2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNl bnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4gICAgUHJvdmlkZSBGU1Agd3JhcHBlciBBUEkg dGVzdCByZWxhdGVkIGZ1bmN0aW9uLg0KPg0KPiArICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5j ZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgQ29w eXJpZ2h0IChjKSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ DQo+ICAqKi8NCj4NCj4gLSNpZm5kZWYgX19GU1BfV1JBUFBFUl9BUElfVEVTVF9MSUJfSF9fDQo+ IC0jZGVmaW5lIF9fRlNQX1dSQVBQRVJfQVBJX1RFU1RfTElCX0hfXw0KPiArI2lmbmRlZiBGU1Bf V1JBUFBFUl9BUElfVEVTVF9MSUJfSF9fX18NCj4gKyNkZWZpbmUgRlNQX1dSQVBQRVJfQVBJX1RF U1RfTElCX0hfX19fDQo+DQo+ICAjaW5jbHVkZSA8UGlQZWkuaD4NCj4NCj4gZGlmZiAtLWdpdA0K PiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBr Zy9JbmNsdWRlL0wNCj4gaWJyYXJ5L0ZzcFdyYXBwZXJIb2JQcm9jZXNzTGliLmgNCj4gYi9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVk ZS9MDQo+IGlicmFyeS9Gc3BXcmFwcGVySG9iUHJvY2Vzc0xpYi5oDQo+IGluZGV4IDA1YjA2ODlj ZTcuLjhjMGMyNDRlNDMgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlL0wNCj4gaWJyYXJ5L0ZzcFdy YXBwZXJIb2JQcm9jZXNzTGliLmgNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1ZGUvTA0KPiBpYnJhcnkvRnNwV3Jh cHBlckhvYlByb2Nlc3NMaWIuaA0KPiBAQCAtMSwyMyArMSwxNCBAQA0KPiAtLyoqIEBmaWxlDQo+ IC0gIEltcGxlbWVudHMgRnNwV3JhcHBlckhvYlByb2Nlc3NMaWIuaA0KPiAtDQo+IC0gIENvcHly aWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3Jp Z2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ ICAvKiogQGZpbGUNCj4gICAgUHJvdmlkZSBGU1Agd3JhcHBlciBob2IgcHJvY2VzcyByZWxhdGVk IGZ1bmN0aW9uLg0KPg0KPiArICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2 aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAy MDE0IC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiAg KiovDQo+DQo+IC0jaWZuZGVmIF9fRlNQX1dSQVBQRVJfSE9CX1BST0NFU1NfTElCX0hfXw0KPiAt I2RlZmluZSBfX0ZTUF9XUkFQUEVSX0hPQl9QUk9DRVNTX0xJQl9IX18NCj4gKyNpZm5kZWYgRlNQ X1dSQVBQRVJfSE9CX1BST0NFU1NfTElCX0hfX19fDQo+ICsjZGVmaW5lIEZTUF9XUkFQUEVSX0hP Ql9QUk9DRVNTX0xJQl9IX19fXw0KPg0KPiAgLyoqDQo+ICAgIFBvc3QgRlNQLU0gSE9CIHByb2Nl c3MgZm9yIE1lbW9yeSBSZXNvdXJjZSBEZXNjcmlwdG9yLg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1 ZGUvTA0KPiBpYnJhcnkvRnNwV3JhcHBlck11bHRpUGhhc2VQcm9jZXNzTGliLmgNCj4gYi9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVk ZS9MDQo+IGlicmFyeS9Gc3BXcmFwcGVyTXVsdGlQaGFzZVByb2Nlc3NMaWIuaA0KPiBpbmRleCA2 NDAzMDM3Y2Y2Li44OWNmZjVlYTRhIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9MDQo+IGlicmFy eS9Gc3BXcmFwcGVyTXVsdGlQaGFzZVByb2Nlc3NMaWIuaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9MDQo+ IGlicmFyeS9Gc3BXcmFwcGVyTXVsdGlQaGFzZVByb2Nlc3NMaWIuaA0KPiBAQCAtMSwyMyArMSwx NCBAQA0KPiAtLyoqIEBmaWxlDQo+IC0gICBJbXBsZW1lbnRzIEZzcFdyYXBwZXJNdWx0aVBoYXNl UHJvY2Vzc0xpYi5oDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3Jv IERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0v KiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUg Zm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBQcm92aWRlIEZT UCB3cmFwcGVyIE11bHRpUGhhc2UgaGFuZGxpbmcgZnVuY3Rpb25zLg0KPg0KPiArICBDb3B5cmln aHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQo+DQo+ICAqKi8NCj4NCj4gLSNpZm5kZWYgX19GU1BfV1JBUFBFUl9N VUxUSV9QSEFTRV9QUk9DRVNTX0xJQl9IX18NCj4gLSNkZWZpbmUgX19GU1BfV1JBUFBFUl9NVUxU SV9QSEFTRV9QUk9DRVNTX0xJQl9IX18NCj4gKyNpZm5kZWYgRlNQX1dSQVBQRVJfTVVMVElfUEhB U0VfUFJPQ0VTU19MSUJfSF9fX18NCj4gKyNkZWZpbmUgRlNQX1dSQVBQRVJfTVVMVElfUEhBU0Vf UFJPQ0VTU19MSUJfSF9fX18NCj4NCj4gIC8qKg0KPiAgICBGU1AgV3JhcHBlciBWYXJpYWJsZSBS ZXF1ZXN0IEhhbmRsZXINCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlL0wNCj4gaWJyYXJ5L0ZzcFdy YXBwZXJQbGF0Zm9ybUxpYi5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlk ZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1ZGUvTA0KPiBpYnJhcnkvRnNwV3JhcHBlclBsYXRm b3JtTGliLmgNCj4gaW5kZXggZTVmYTE0ZjliNy4uNTI5YmMzMTE0NSAxMDA2NDQNCj4gLS0tDQo+ IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtn L0luY2x1ZGUvTA0KPiBpYnJhcnkvRnNwV3JhcHBlclBsYXRmb3JtTGliLmgNCj4gKysrDQo+IGIv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0lu Y2x1ZGUvTA0KPiBpYnJhcnkvRnNwV3JhcHBlclBsYXRmb3JtTGliLmgNCj4gQEAgLTEsMjMgKzEs MTQgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIEZzcFdyYXBwZXJQbGF0Zm9ybUxp Yi5oDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMs IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlzIGZp bGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5n IGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBQcm92aWRlIEZTUCB3cmFwcGVy IHBsYXRmb3JtIHJlbGF0ZWQgZnVuY3Rpb24uDQo+DQo+ICsgIENvcHlyaWdodCAoQykgMjAyNCBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAg ICBDb3B5cmlnaHQgKGMpIDIwMTQgLSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+DQo+ICAqKi8NCj4NCj4gLSNpZm5kZWYgX19GU1BfV1JBUFBFUl9QTEFURk9S TV9MSUJfSF9fDQo+IC0jZGVmaW5lIF9fRlNQX1dSQVBQRVJfUExBVEZPUk1fTElCX0hfXw0KPiAr I2lmbmRlZiBGU1BfV1JBUFBFUl9QTEFURk9STV9MSUJfSF9fX18NCj4gKyNkZWZpbmUgRlNQX1dS QVBQRVJfUExBVEZPUk1fTElCX0hfX19fDQo+DQo+ICAvKioNCj4gICAgVGhpcyBmdW5jdGlvbiBv dmVycmlkZXMgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbnMgaW4gdGhlIEZTUC1NIFVQRCBkYXRh DQo+IHJlZ2lvbi4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv T3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlL0wNCj4gaWJyYXJ5L0ZzcFdyYXBw ZXJQbGF0Zm9ybU11bHRpUGhhc2VMaWIuaA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv T3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlL0wNCj4gaWJyYXJ5L0ZzcFdyYXBw ZXJQbGF0Zm9ybU11bHRpUGhhc2VMaWIuaA0KPiBpbmRleCA1NmE3NWJiNmZkLi44ZTE2ZGRiNzE5 IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2Vk azIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9MDQo+IGlicmFyeS9Gc3BXcmFwcGVyUGxhdGZvcm1N dWx0aVBoYXNlTGliLmgNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVy cmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1ZGUvTA0KPiBpYnJhcnkvRnNwV3JhcHBlclBs YXRmb3JtTXVsdGlQaGFzZUxpYi5oDQo+IEBAIC0xLDE2ICsxLDcgQEANCj4gLS8qKiBAZmlsZQ0K PiAtICBJbXBsZW1lbnRzIEZzcFdyYXBwZXJQbGF0Zm9ybU11bHRpUGhhc2VMaWIuaA0KPiAtDQo+ IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVz IGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAq Lw0KPiAtDQo+ICAvKiogQGZpbGUNCj4gICAgUHJvdmlkZSBGU1Agd3JhcHBlciBQbGF0Zm9ybSBN dWx0aVBoYXNlIGhhbmRsaW5nIGZ1bmN0aW9ucy4NCj4NCj4gKyAgQ29weXJpZ2h0IChDKSAyMDI0 IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ ICAgIENvcHlyaWdodCAoYykgMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVy cmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1ZGUvDQo+IE11bHRpUGhhc2VTaVBoYXNlcy5o DQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVy UGtnL0luY2x1ZGUvDQo+IE11bHRpUGhhc2VTaVBoYXNlcy5oDQo+IGluZGV4IGM3OGI3ZmY4M2Qu LjliZTFiMTdiMjkgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv T3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlLw0KPiBNdWx0aVBoYXNlU2lQaGFz ZXMuaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIv RnNwMldyYXBwZXJQa2cvSW5jbHVkZS8NCj4gTXVsdGlQaGFzZVNpUGhhc2VzLmgNCj4gQEAgLTYs OCArNiw4IEBADQo+DQo+ICAqKi8NCj4NCj4gLSNpZm5kZWYgX01VTFRJX1BIQVNFX1NJX1BIQVNF U19IXw0KPiAtI2RlZmluZSBfTVVMVElfUEhBU0VfU0lfUEhBU0VTX0hfDQo+ICsjaWZuZGVmIE1V TFRJX1BIQVNFX1NJX1BIQVNFU19IX18NCj4gKyNkZWZpbmUgTVVMVElfUEhBU0VfU0lfUEhBU0VT X0hfXw0KPg0KPiAgdHlwZWRlZiBlbnVtIHsNCj4gICAgRW51bU11bHRpUGhhc2VBbWRDcG1EeGVU YWJsZVJlYWR5UGhhc2UgPSAxLCAgLy8gSW4gRlNQIERvYywgdGhlDQo+IGluZGV4IHN0YXJ0cyBm cm9tIDEuDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJy aWRlL2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9QDQo+IHBpL0ZzcFNpbGljb25Jbml0RG9u ZS5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFw cGVyUGtnL0luY2x1ZGUvUA0KPiBwaS9Gc3BTaWxpY29uSW5pdERvbmUuaA0KPiBpbmRleCA1NDEz YWE5YzY5Li4yM2Q0NmVhMWYxIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvSW5jbHVkZS9QDQo+IHBpL0ZzcFNp bGljb25Jbml0RG9uZS5oDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3Zl cnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9JbmNsdWRlL1ANCj4gcGkvRnNwU2lsaWNvbkluaXRE b25lLmgNCj4gQEAgLTEsMjMgKzEsMTQgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRz IEZzcFNpbGljb25Jbml0RG9uZS5oDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFu Y2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0K PiAtDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1 bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBQ cm92aWRlcyB0aGUgc2VydmljZXMgdG8gcmV0dXJuIEZTUCBob2IgbGlzdC4NCj4NCj4gKyAgQ29w eXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC48QlI+DQo+ICAgIENvcHlyaWdodCAoYykgMjAxNCAtIDIwMTYsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoqLw0KPg0KPiAtI2lmbmRlZiBfRlNQ X1NJTElDT05fSU5JVF9ET05FX0hfDQo+IC0jZGVmaW5lIF9GU1BfU0lMSUNPTl9JTklUX0RPTkVf SF8NCj4gKyNpZm5kZWYgRlNQX1NJTElDT05fSU5JVF9ET05FX0hfXw0KPiArI2RlZmluZSBGU1Bf U0lMSUNPTl9JTklUX0RPTkVfSF9fDQo+DQo+ICB0eXBlZGVmIHN0cnVjdCBfRlNQX1NJTElDT05f SU5JVF9ET05FX1BQSSBGU1BfU0lMSUNPTl9JTklUX0RPTkVfUFBJOw0KPg0KPiBkaWZmIC0tZ2l0 DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVy UGtnL0luY2x1ZGUvUA0KPiBwaS9Ub3BPZlRlbXBvcmFyeVJhbS5oDQo+IGIvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0luY2x1ZGUvUA0KPiBw aS9Ub3BPZlRlbXBvcmFyeVJhbS5oDQo+IGluZGV4IDljODc1NzE2MzAuLjdiYjMyMjkwY2IgMTAw NjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9G c3AyV3JhcHBlclBrZy9JbmNsdWRlL1ANCj4gcGkvVG9wT2ZUZW1wb3JhcnlSYW0uaA0KPiArKysN Cj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQ a2cvSW5jbHVkZS9QDQo+IHBpL1RvcE9mVGVtcG9yYXJ5UmFtLmgNCj4gQEAgLTEsMjMgKzEsMTQg QEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIFRvcE9mVGVtcG9yYXJ5UmFtLmgNCj4g LQ0KPiAtICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0KPiAtKiovDQo+IC0NCj4gLS8qIFRoaXMgZmlsZSBpbmNs dWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5z ZS4gKi8NCj4gLQ0KPiAgLyoqIEBmaWxlDQo+ICAgIFByb3ZpZGVzIHRoZSBwb2ludGVyIHRvIHRv cCBvZiB0ZW1wb3JhcnkgcmFtLg0KPg0KPiArICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQg TWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgQ29weXJp Z2h0IChjKSAyMDE0LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+ ICAqKi8NCj4NCj4gLSNpZm5kZWYgX1RPUF9PRl9URU1QT1JBUllfUkFNX0hfDQo+IC0jZGVmaW5l IF9UT1BfT0ZfVEVNUE9SQVJZX1JBTV9IXw0KPiArI2lmbmRlZiBUT1BfT0ZfVEVNUE9SQVJZX1JB TV9IX18NCj4gKyNkZWZpbmUgVE9QX09GX1RFTVBPUkFSWV9SQU1fSF9fDQo+DQo+ICBleHRlcm4g RUZJX0dVSUQgIGdUb3BPZlRlbXBvcmFyeVJhbVBwaUd1aWQ7DQo+DQo+IGRpZmYgLS1naXQNCj4g YS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cv TGlicmFyeS9CDQo+IGFzZUZzcE1lYXN1cmVtZW50TGliL0ZzcE1lYXN1cmVtZW50TGliLmMNCj4g Yi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cv TGlicmFyeS9CDQo+IGFzZUZzcE1lYXN1cmVtZW50TGliL0ZzcE1lYXN1cmVtZW50TGliLmMNCj4g aW5kZXggMzNhMzU4ODAxOS4uOWE5MzY4YmI3NSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvQg0K PiBhc2VGc3BNZWFzdXJlbWVudExpYi9Gc3BNZWFzdXJlbWVudExpYi5jDQo+ICsrKw0KPiBiL1Bs YXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9MaWJy YXJ5L0INCj4gYXNlRnNwTWVhc3VyZW1lbnRMaWIvRnNwTWVhc3VyZW1lbnRMaWIuYw0KPiBAQCAt MSwxNiArMSw3IEBADQo+IC0vKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBGc3BNZWFzdXJlbWVu dExpYi5DDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmlj ZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlz IGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93 aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBUaGlzIGxpYnJhcnkgaXMg dXNlZCBieSBGU1AgbW9kdWxlcyB0byBtZWFzdXJlIGRhdGEgdG8gVFBNLg0KPg0KPiArQ29weXJp Z2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+ICBDb3B5cmlnaHQgKGMpIDIwMjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzIHJlc2VydmVkLiA8QlI+DQo+ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hC b2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvQg0KPiBhc2VGc3BXcmFw cGVyQXBpTGliL0ZzcFdyYXBwZXJBcGlMaWIuYw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9MaWJyYXJ5L0INCj4gYXNlRnNwV3JhcHBl ckFwaUxpYi9Gc3BXcmFwcGVyQXBpTGliLmMNCj4gaW5kZXggM2M0NDY3NjQ2ZC4uODBkNjRmOWJk MiAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9l ZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvQg0KPiBhc2VGc3BXcmFwcGVyQXBpTGliL0ZzcFdy YXBwZXJBcGlMaWIuYw0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJy aWRlL2VkazIvRnNwMldyYXBwZXJQa2cvTGlicmFyeS9CDQo+IGFzZUZzcFdyYXBwZXJBcGlMaWIv RnNwV3JhcHBlckFwaUxpYi5jDQo+IEBAIC0xLDE2ICsxLDcgQEANCj4gLS8qKiBAZmlsZQ0KPiAt ICBJbXBsZW1lbnRzIEZzcFdyYXBwZXJBcGlMaWIuYw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykg MjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAt DQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBw dWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZp bGUNCj4gICAgUHJvdmlkZSBGU1AgQVBJIHJlbGF0ZWQgZnVuY3Rpb24uDQo+DQo+ICsgIENvcHly aWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiAgICBDb3B5cmlnaHQgKGMpIDIwMTQgLSAyMDIyLCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvTGlicmFyeS9CDQo+ IGFzZUZzcFdyYXBwZXJBcGlMaWIvWDY0L0Rpc3BhdGNoRXhlY3V0ZS5jDQo+IGIvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvQg0K PiBhc2VGc3BXcmFwcGVyQXBpTGliL1g2NC9EaXNwYXRjaEV4ZWN1dGUuYw0KPiBpbmRleCA4YzA2 MmEzMGRlLi4zYzM0ODA2Mjg2IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvTGlicmFyeS9CDQo+IGFzZUZzcFdy YXBwZXJBcGlMaWIvWDY0L0Rpc3BhdGNoRXhlY3V0ZS5jDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9MaWJyYXJ5L0INCj4g YXNlRnNwV3JhcHBlckFwaUxpYi9YNjQvRGlzcGF0Y2hFeGVjdXRlLmMNCj4gQEAgLTEsMTggKzEs OSBAQA0KPiAtLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgNjQtYml0IERpc3BhdGNoRXhjdXRl LmMNCj4gLQ0KPiAtICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSAgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0KPiAtKiovDQo+IC0NCj4gLS8qIFRoaXMgZmls ZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcg bGljZW5zZS4gKi8NCj4gLQ0KPiAgLyoqIEBmaWxlDQo+ICAgIEV4ZWN1dGUgNjQtYml0IGNvZGUg aW4gTG9uZyBNb2RlLg0KPiAgICBQcm92aWRlIGEgdGh1bmsgZnVuY3Rpb24gdG8gdHJhbnNpdGlv biBmcm9tIGxvbmcgbW9kZSB0byBjb21wYXRpYmlsaXR5DQo+IG1vZGUgdG8gZXhlY3V0ZSAzMi1i aXQgY29kZSBhbmQgdGhlbiB0cmFuc2l0DQo+ICAgIGJhY2sgdG8gbG9uZyBtb2RlLg0KPg0KPiAr ICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDE0IC0gMjAyMiwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJh cnkvQg0KPiBhc2VGc3BXcmFwcGVyQXBpTGliL1g2NC9UaHVuazY0VG8zMi5uYXNtDQo+IGIvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJh cnkvQg0KPiBhc2VGc3BXcmFwcGVyQXBpTGliL1g2NC9UaHVuazY0VG8zMi5uYXNtDQo+IGluZGV4 IGI4OWYwMGFhZGQuLmYxYTE0YjI0NDYgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9MaWJyYXJ5L0INCj4gYXNl RnNwV3JhcHBlckFwaUxpYi9YNjQvVGh1bms2NFRvMzIubmFzbQ0KPiArKysNCj4gYi9QbGF0Zm9y bS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvTGlicmFyeS9C DQo+IGFzZUZzcFdyYXBwZXJBcGlMaWIvWDY0L1RodW5rNjRUbzMyLm5hc20NCj4gQEAgLTMsMTEg KzMsNiBAQA0KPiAgOyAgIHRyYW5zaXQgYmFjayB0byBsb25nIG1vZGUuDQo+ICA7DQo+ICA7IENv cHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiAtOyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KPiAtOw0KPiAtOyoqLw0KPiAtOyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmln aW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC07DQo+ICA7 IENvcHlyaWdodCAoYykgMjAxNiAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gIDsgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS1QYXRlbnQNCj4gIDsNCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9MaWJyYXJ5L0INCj4gYXNlRnNwV3JhcHBl ckFwaVRlc3RMaWJOdWxsL0ZzcFdyYXBwZXJBcGlUZXN0TnVsbC5jDQo+IGIvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvQg0KPiBh c2VGc3BXcmFwcGVyQXBpVGVzdExpYk51bGwvRnNwV3JhcHBlckFwaVRlc3ROdWxsLmMNCj4gaW5k ZXggMWZjMTFiMTRjNS4uMTliZDNhZmMyOSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvQg0KPiBh c2VGc3BXcmFwcGVyQXBpVGVzdExpYk51bGwvRnNwV3JhcHBlckFwaVRlc3ROdWxsLmMNCj4gKysr DQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVy UGtnL0xpYnJhcnkvQg0KPiBhc2VGc3BXcmFwcGVyQXBpVGVzdExpYk51bGwvRnNwV3JhcHBlckFw aVRlc3ROdWxsLmMNCj4gQEAgLTEsMTYgKzEsNyBAQA0KPiAtLyoqIEBmaWxlDQo+IC0gIEltcGxl bWVudHMgRlNQIHdyYXBwZXIgQVBJIHRlc3QgcmVsYXRlZCBmdW5jdGlvbi4NCj4gLQ0KPiAtICBD b3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gLSAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS1QYXRlbnQNCj4gLQ0KPiAtKiovDQo+IC0NCj4gLS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2Rl IG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4g LQ0KPiAgLyoqIEBmaWxlDQo+ICAgIFByb3ZpZGUgRlNQIHdyYXBwZXIgQVBJIHRlc3QgcmVsYXRl ZCBmdW5jdGlvbi4NCj4NCj4gKyAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERl dmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIENvcHlyaWdodCAoYykg MjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiBkaWZmIC0t Z2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFw cGVyUGtnL0xpYnJhcnkvQg0KPiBhc2VGc3BXcmFwcGVyUGxhdGZvcm1MaWJTYW1wbGUvRnNwV3Jh cHBlclBsYXRmb3JtTGliU2FtcGxlLmMNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092 ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvTGlicmFyeS9CDQo+IGFzZUZzcFdyYXBwZXJQbGF0 Zm9ybUxpYlNhbXBsZS9Gc3BXcmFwcGVyUGxhdGZvcm1MaWJTYW1wbGUuYw0KPiBpbmRleCAwYjI5 ZGYxNDJjLi4xYWZjZjY4Zjg1IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvTGlicmFyeS9CDQo+IGFzZUZzcFdy YXBwZXJQbGF0Zm9ybUxpYlNhbXBsZS9Gc3BXcmFwcGVyUGxhdGZvcm1MaWJTYW1wbGUuYw0KPiAr KysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBw ZXJQa2cvTGlicmFyeS9CDQo+IGFzZUZzcFdyYXBwZXJQbGF0Zm9ybUxpYlNhbXBsZS9Gc3BXcmFw cGVyUGxhdGZvcm1MaWJTYW1wbGUuYw0KPiBAQCAtMSwxNiArMSw3IEBADQo+IC0vKiogQGZpbGUN Cj4gLSAgSW1wbGVtZW50cyBGc3BXcmFwcGVyUGxhdGZvcm1MaWJTYW1wbGUuQw0KPiAtDQo+IC0g IENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNv ZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0K PiAtDQo+ICAvKiogQGZpbGUNCj4gICAgU2FtcGxlIHRvIHByb3ZpZGUgRlNQIHdyYXBwZXIgcmVs YXRlZCBmdW5jdGlvbi4NCj4NCj4gKyAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3Jv IERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIENvcHlyaWdodCAo YykgMjAxNCAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4N Cj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRr Mi9Gc3AyV3JhcHBlclBrZy9MaWJyYXJ5L0INCj4gYXNlRnNwV3JhcHBlclBsYXRmb3JtTXVsdGlQ aGFzZUxpYk51bGwvRnNwV3JhcHBlclBsYXRmb3JtTXVsdGlQaGFzZUxpDQo+IGJOdWxsLmMNCj4g Yi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cv TGlicmFyeS9CDQo+IGFzZUZzcFdyYXBwZXJQbGF0Zm9ybU11bHRpUGhhc2VMaWJOdWxsL0ZzcFdy YXBwZXJQbGF0Zm9ybU11bHRpUGhhc2VMaQ0KPiBiTnVsbC5jDQo+IGluZGV4IDQ3MTVjNjQwYzEu LjNhMGQwZTYwODggMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv T3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9MaWJyYXJ5L0INCj4gYXNlRnNwV3JhcHBlclBs YXRmb3JtTXVsdGlQaGFzZUxpYk51bGwvRnNwV3JhcHBlclBsYXRmb3JtTXVsdGlQaGFzZUxpDQo+ IGJOdWxsLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9l ZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvQg0KPiBhc2VGc3BXcmFwcGVyUGxhdGZvcm1NdWx0 aVBoYXNlTGliTnVsbC9Gc3BXcmFwcGVyUGxhdGZvcm1NdWx0aVBoYXNlTGkNCj4gYk51bGwuYw0K PiBAQCAtMSwxNyArMSw4IEBADQo+IC0vKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBGc3BXcmFw cGVyUGxhdGZvcm1MaWJTYW1wbGUuQw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZh bmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8N Cj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQg dW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4gICAg RlNQIFdyYXBwZXIgdG8gaGFuZGxlIHBsYXRmb3JtIHNwZWNpZmljIGFjdGlvbnMgZm9yDQo+ICAg IEZTUCBNdWx0aVBoYXNlIChTZXBhcmF0ZVBoYXNlKSBJbml0aWFsaXphdGlvbi4NCj4NCj4gKyAg Q29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+ICAgIENvcHlyaWdodCAoYykgMjAyMiwgSW50ZWwgQ29ycG9yYXRp b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvRA0KPiB4 ZUZzcFdyYXBwZXJNdWx0aVBoYXNlUHJvY2Vzc0xpYi9EeGVGc3BXcmFwcGVyTXVsdGlQaGFzZVBy b2Nlc3NMaWIuYw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9G c3AyV3JhcHBlclBrZy9MaWJyYXJ5L0QNCj4geGVGc3BXcmFwcGVyTXVsdGlQaGFzZVByb2Nlc3NM aWIvRHhlRnNwV3JhcHBlck11bHRpUGhhc2VQcm9jZXNzTGliLmMNCj4gaW5kZXggN2Y1NjY2ZjIz OC4uY2ZkYTQ0YmM3MSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvRA0KPiB4ZUZzcFdyYXBwZXJN dWx0aVBoYXNlUHJvY2Vzc0xpYi9EeGVGc3BXcmFwcGVyTXVsdGlQaGFzZVByb2Nlc3NMaWIuYw0K PiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldy YXBwZXJQa2cvTGlicmFyeS9EDQo+IHhlRnNwV3JhcHBlck11bHRpUGhhc2VQcm9jZXNzTGliL0R4 ZUZzcFdyYXBwZXJNdWx0aVBoYXNlUHJvY2Vzc0xpYi5jDQo+IEBAIC0xLDE2ICsxLDcgQEANCj4g LS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIER4ZUZzcFdyYXBwZXJNdWx0aVBoYXNlUHJvY2Vz c0xpYi5jDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmlj ZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlz IGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93 aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBTdXBwb3J0IEZTUCBXcmFw cGVyIE11bHRpUGhhc2UgcHJvY2Vzcy4NCj4NCj4gKyAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFu Y2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIENv cHlyaWdodCAoYykgMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0K Pg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9l ZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvRg0KPiBzcFdyYXBwZXJNdWx0aVBoYXNlUHJvY2Vz c0xpYi9QZWlGc3BXcmFwcGVyTXVsdGlQaGFzZVByb2Nlc3NMaWIuYw0KPiBiL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9MaWJyYXJ5L0YNCj4g c3BXcmFwcGVyTXVsdGlQaGFzZVByb2Nlc3NMaWIvUGVpRnNwV3JhcHBlck11bHRpUGhhc2VQcm9j ZXNzTGliLmMNCj4gaW5kZXggMDQyYjZhMWU1NC4uZTA3MmVmYmIwNCAxMDA2NDQNCj4gLS0tDQo+ IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtn L0xpYnJhcnkvRg0KPiBzcFdyYXBwZXJNdWx0aVBoYXNlUHJvY2Vzc0xpYi9QZWlGc3BXcmFwcGVy TXVsdGlQaGFzZVByb2Nlc3NMaWIuYw0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvTGlicmFyeS9GDQo+IHNwV3JhcHBlck11 bHRpUGhhc2VQcm9jZXNzTGliL1BlaUZzcFdyYXBwZXJNdWx0aVBoYXNlUHJvY2Vzc0xpYi5jDQo+ IEBAIC0xLDE2ICsxLDcgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIFBlaUZzcFdy YXBwZXJNdWx0aVBoYXNlUHJvY2Vzc0xpYi5jDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0 IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ IC0gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4g LSoqLw0KPiAtDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxp c2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0K PiAgICBTdXBwb3J0IEZTUCBXcmFwcGVyIE11bHRpUGhhc2UgcHJvY2Vzcy4NCj4NCj4gKyAgQ29w eXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC48QlI+DQo+ICAgIENvcHlyaWdodCAoYykgMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24u IEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1Zh bkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvUA0KPiBlaUZz cFdyYXBwZXJIb2JQcm9jZXNzTGliU2FtcGxlL0NvbW1vbkhlYWRlci5oDQo+IGIvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvUA0K PiBlaUZzcFdyYXBwZXJIb2JQcm9jZXNzTGliU2FtcGxlL0NvbW1vbkhlYWRlci5oDQo+IGluZGV4 IDU2OGU3YjAwNzkuLmQ1MTJmZWFhNWIgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9MaWJyYXJ5L1ANCj4gZWlG c3BXcmFwcGVySG9iUHJvY2Vzc0xpYlNhbXBsZS9Db21tb25IZWFkZXIuaA0KPiArKysNCj4gYi9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldyYXBwZXJQa2cvTGli cmFyeS9QDQo+IGVpRnNwV3JhcHBlckhvYlByb2Nlc3NMaWJTYW1wbGUvQ29tbW9uSGVhZGVyLmgN Cj4gQEAgLTEsMzEgKzEsMTQgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBJbXBsZW1lbnRzIENvbW1v bkhlYWRlci5oDQo+DQo+ICsgIENvcHlyaWdodCAoYykgMjAxMyAtIDIwMTYgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBDb3B5cmlnaHQgKEMpIDIwMjQg QWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g ICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoq Lw0KPg0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQg dW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZpbGUNCj4gLUNv bW1vbiBoZWFkZXIgZmlsZSBzaGFyZWQgYnkgYWxsIHNvdXJjZSBmaWxlcy4NCj4gLQ0KPiAtVGhp cyBmaWxlIGluY2x1ZGVzIHBhY2thZ2UgaGVhZGVyIGZpbGVzLCBsaWJyYXJ5IGNsYXNzZXMgYW5k IHByb3RvY29sLCBQUEkgJg0KPiBHVUlEIGRlZmluaXRpb25zLg0KPiAtDQo+IC1Db3B5cmlnaHQg KGMpIDIwMTMgLSAyMDE2IEludGVsIENvcnBvcmF0aW9uLg0KPiAtDQo+IC1UaGlzIHByb2dyYW0g YW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+IC1hcmUgbGljZW5zZWQgYW5kIG1hZGUg YXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExp Y2Vuc2UNCj4gLXdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwg dGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gLWh0dHA6Ly9vcGVuc291 cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4gLQ0KPiAtVEhFIFBST0dSQU0gSVMg RElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMs DQo+IC1XSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBF SVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiAtKiovDQo+IC0NCj4gLSNpZm5kZWYgX19D T01NT05fSEVBREVSX0hfDQo+IC0jZGVmaW5lIF9fQ09NTU9OX0hFQURFUl9IXw0KPiArI2lmbmRl ZiBDT01NT05fSEVBREVSX0hfX18NCj4gKyNkZWZpbmUgQ09NTU9OX0hFQURFUl9IX19fDQo+DQo+ ICAjaW5jbHVkZSA8UGlQZWkuaD4NCj4gICNpbmNsdWRlIDxQcGkvU3RhbGwuaD4NCj4gZGlmZiAt LWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3Jh cHBlclBrZy9MaWJyYXJ5L1ANCj4gZWlGc3BXcmFwcGVySG9iUHJvY2Vzc0xpYlNhbXBsZS9Gc3BX cmFwcGVySG9iUHJvY2Vzc0xpYlNhbXBsZS5jDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvUA0KPiBlaUZzcFdyYXBwZXJI b2JQcm9jZXNzTGliU2FtcGxlL0ZzcFdyYXBwZXJIb2JQcm9jZXNzTGliU2FtcGxlLmMNCj4gaW5k ZXggYzJiMDllYzUyZi4uMzEwMGY0NjM1ZSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvUA0KPiBl aUZzcFdyYXBwZXJIb2JQcm9jZXNzTGliU2FtcGxlL0ZzcFdyYXBwZXJIb2JQcm9jZXNzTGliU2Ft cGxlLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsy L0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvUA0KPiBlaUZzcFdyYXBwZXJIb2JQcm9jZXNzTGliU2Ft cGxlL0ZzcFdyYXBwZXJIb2JQcm9jZXNzTGliU2FtcGxlLmMNCj4gQEAgLTEsMTYgKzEsNyBAQA0K PiAtLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgRnNwV3JhcHBlckhvYlByb2Nlc3NMaWJTYW1w bGUuYw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2Vz LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBm aWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2lu ZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4gICAgU2FtcGxlIHRvIHByb3ZpZGUg RlNQIHdyYXBwZXIgaG9iIHByb2Nlc3MgcmVsYXRlZCBmdW5jdGlvbi4NCj4NCj4gKyAgQ29weXJp Z2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+ICAgIENvcHlyaWdodCAoYykgMjAxNCAtIDIwMTksIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gQEAgLTI5NCwxNSArMjg1LDE1IEBAIEluc3Rh bGxFZmlNZW1vcnkgKA0KPiAgICAgICAgICAgICAgICk7DQo+ICAgIEFTU0VSVF9FRklfRVJST1Ig KFN0YXR1cyk7DQo+DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywgIk51bVJhbmdlczogJWRcbiIs IE51bVJhbmdlcykpOw0KPiArICBERUJVRyAoKERFQlVHX0lORk8sICJOdW1SYW5nZXM6ICVkXG4i LCBOdW1SYW5nZXMpKTsNCj4NCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiR2V0TWVtb3J5TWFw OlxuIikpOw0KPiArICBERUJVRyAoKERFQlVHX0lORk8sICJHZXRNZW1vcnlNYXA6XG4iKSk7DQo+ ICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IE51bVJhbmdlczsgSW5kZXgrKykgew0KPiAtICAg IERFQlVHICgoRUZJX0RfSU5GTywgIkluZGV4OiAlZCAiLCBJbmRleCkpOw0KPiAtICAgIERFQlVH ICgoRUZJX0RfSU5GTywgIlJhbmdlTGVuZ3RoOiAweCUwMTZsWFx0IiwNCj4gTWVtb3J5TWFwW0lu ZGV4XS5SYW5nZUxlbmd0aCkpOw0KPiAtICAgIERFQlVHICgoRUZJX0RfSU5GTywgIlBoeXNpY2Fs QWRkcmVzczogMHglMDE2bFhcdCIsDQo+IE1lbW9yeU1hcFtJbmRleF0uUGh5c2ljYWxBZGRyZXNz KSk7DQo+IC0gICAgREVCVUcgKChFRklfRF9JTkZPLCAiQ3B1QWRkcmVzczogMHglMDE2bFhcdCIs DQo+IE1lbW9yeU1hcFtJbmRleF0uQ3B1QWRkcmVzcykpOw0KPiAtICAgIERFQlVHICgoRUZJX0Rf SU5GTywgIlR5cGU6ICVkXG4iLCBNZW1vcnlNYXBbSW5kZXhdLlR5cGUpKTsNCj4gKyAgICBERUJV RyAoKERFQlVHX0lORk8sICJJbmRleDogJWQgIiwgSW5kZXgpKTsNCj4gKyAgICBERUJVRyAoKERF QlVHX0lORk8sICJSYW5nZUxlbmd0aDogMHglMDE2bFhcdCIsDQo+IE1lbW9yeU1hcFtJbmRleF0u UmFuZ2VMZW5ndGgpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJQaHlzaWNhbEFkZHJl c3M6IDB4JTAxNmxYXHQiLA0KPiBNZW1vcnlNYXBbSW5kZXhdLlBoeXNpY2FsQWRkcmVzcykpOw0K PiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIkNwdUFkZHJlc3M6IDB4JTAxNmxYXHQiLA0KPiBN ZW1vcnlNYXBbSW5kZXhdLkNwdUFkZHJlc3MpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8s ICJUeXBlOiAlZFxuIiwgTWVtb3J5TWFwW0luZGV4XS5UeXBlKSk7DQo+ICAgIH0NCj4NCj4gICAg Ly8NCj4gQEAgLTMyNyw5ICszMTgsOSBAQCBJbnN0YWxsRWZpTWVtb3J5ICgNCj4gICAgUGVpTWVt b3J5SW5kZXggPSAwOw0KPg0KPiAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBOdW1SYW5nZXM7 IEluZGV4KyspIHsNCj4gLSAgICBERUJVRyAoKEVGSV9EX0lORk8sICJGb3VuZCAweCVseCBieXRl cyBhdCAiLA0KPiBNZW1vcnlNYXBbSW5kZXhdLlJhbmdlTGVuZ3RoKSk7DQo+IC0gICAgREVCVUcg KChFRklfRF9JTkZPLCAiMHglbHguXHQiLCBNZW1vcnlNYXBbSW5kZXhdLlBoeXNpY2FsQWRkcmVz cykpOw0KPiAtICAgIERFQlVHICgoRUZJX0RfSU5GTywgIlR5cGU6ICVkLlxuIiwgTWVtb3J5TWFw W0luZGV4XS5UeXBlKSk7DQo+ICsgICAgREVCVUcgKChERUJVR19JTkZPLCAiRm91bmQgMHglbHgg Ynl0ZXMgYXQgIiwNCj4gTWVtb3J5TWFwW0luZGV4XS5SYW5nZUxlbmd0aCkpOw0KPiArICAgIERF QlVHICgoREVCVUdfSU5GTywgIjB4JWx4Llx0IiwgTWVtb3J5TWFwW0luZGV4XS5QaHlzaWNhbEFk ZHJlc3MpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJUeXBlOiAlZC5cbiIsIE1lbW9y eU1hcFtJbmRleF0uVHlwZSkpOw0KPg0KPiAgICAgIGlmICgoTWVtb3J5TWFwW0luZGV4XS5UeXBl ID09IER1YWxDaGFubmVsRGRyTWFpbk1lbW9yeSkgJiYNCj4gICAgICAgICAgKE1lbW9yeU1hcFtJ bmRleF0uUGh5c2ljYWxBZGRyZXNzICsNCj4gTWVtb3J5TWFwW0luZGV4XS5SYW5nZUxlbmd0aCA8 IE1BWF9BRERSRVNTKSAmJg0KPiBAQCAtMzgxLDcgKzM3Miw3IEBAIEluc3RhbGxFZmlNZW1vcnkg KA0KPiAgICAgIGlmIChTdGF0dXMgPT0gRUZJX1NVQ0NFU1MpIHsNCj4gICAgICAgIENhcHN1bGVC dWZmZXIgICAgICAgPSBMYXJnZU1lbVJhbmdlQnVmOw0KPiAgICAgICAgQ2Fwc3VsZUJ1ZmZlckxl bmd0aCA9IExhcmdlTWVtUmFuZ2VCdWZMZW47DQo+IC0gICAgICBERUJVRyAoKEVGSV9EX0lORk8s ICJDYXBzdWxlQnVmZmVyOiAleCwgQ2Fwc3VsZUJ1ZmZlckxlbmd0aDogJXhcbiIsDQo+IENhcHN1 bGVCdWZmZXIsIENhcHN1bGVCdWZmZXJMZW5ndGgpKTsNCj4gKyAgICAgIERFQlVHICgoREVCVUdf SU5GTywgIkNhcHN1bGVCdWZmZXI6ICV4LCBDYXBzdWxlQnVmZmVyTGVuZ3RoOiAleFxuIiwNCj4g Q2Fwc3VsZUJ1ZmZlciwgQ2Fwc3VsZUJ1ZmZlckxlbmd0aCkpOw0KPg0KPiAgICAgICAgLy8NCj4g ICAgICAgIC8vIENhbGwgdGhlIENhcHN1bGUgUFBJIENvYWxlc2NlIGZ1bmN0aW9uIHRvIGNvYWxl c2NlIHRoZSBjYXBzdWxlIGRhdGEuDQo+IEBAIC01ODAsNyArNTcxLDcgQEAgSW5zdGFsbEVmaU1l bW9yeSAoDQo+ICAgIC8vDQo+ICAgIENvcHlNZW0gKCZEZXNjcmlwdG9yQWNwaVZhcmlhYmxlLCAm U21yYW1Ib2JEZXNjcmlwdG9yQmxvY2stDQo+ID5EZXNjcmlwdG9yW1NtcmFtUmFuZ2VzLTFdLCBz aXplb2YgKEVGSV9TTVJBTV9ERVNDUklQVE9SKSk7DQo+ICAgIERlc2NyaXB0b3JBY3BpVmFyaWFi bGUuQ3B1U3RhcnQgKz0gUkVTRVJWRURfQ1BVX1MzX1NBVkVfT0ZGU0VUOw0KPiAtICBERUJVRyAo KEVGSV9EX0lORk8sICJnRWZpQWNwaVZhcmlhYmxlR3VpZCBDcHVTdGFydDogMHglWFxuIiwNCj4g KFVJTlROKURlc2NyaXB0b3JBY3BpVmFyaWFibGUuQ3B1U3RhcnQpKTsNCj4gKyAgREVCVUcgKChE RUJVR19JTkZPLCAiZ0VmaUFjcGlWYXJpYWJsZUd1aWQgQ3B1U3RhcnQ6IDB4JVhcbiIsDQo+IChV SU5UTilEZXNjcmlwdG9yQWNwaVZhcmlhYmxlLkNwdVN0YXJ0KSk7DQo+ICAgIEJ1aWxkR3VpZERh dGFIb2IgKA0KPiAgICAgICZnRWZpQWNwaVZhcmlhYmxlR3VpZCwNCj4gICAgICAmRGVzY3JpcHRv ckFjcGlWYXJpYWJsZSwNCj4gQEAgLTY0NCwxOSArNjM1LDE5IEBAIEluc3RhbGxTM01lbW9yeSAo DQo+ICAgICAgICAgICAgICAgRnNwSG9iTGlzdA0KPiAgICAgICAgICAgICAgICk7DQo+ICAgIEFT U0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywgIk51bVJh bmdlcyA9IDB4JXhcbiIsIE51bVJhbmdlcykpOw0KPiArICBERUJVRyAoKERFQlVHX0lORk8sICJO dW1SYW5nZXMgPSAweCV4XG4iLCBOdW1SYW5nZXMpKTsNCj4NCj4gICAgLy8NCj4gICAgLy8gSW5z dGFsbCBwaHlzaWNhbCBtZW1vcnkgZGVzY3JpcHRvciBob2JzIGZvciBlYWNoIG1lbW9yeSByYW5n ZS4NCj4gICAgLy8NCj4gICAgU21yYW1SYW5nZXMgPSAwOw0KPiAtICBERUJVRyAoKEVGSV9EX0lO Rk8sICJHZXRNZW1vcnlNYXA6XG4iKSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIkdldE1l bW9yeU1hcDpcbiIpKTsNCj4gICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgTnVtUmFuZ2VzOyBJ bmRleCsrKSB7DQo+IC0gICAgREVCVUcgKChFRklfRF9JTkZPLCAiSW5kZXg6ICVkICIsIEluZGV4 KSk7DQo+IC0gICAgREVCVUcgKChFRklfRF9JTkZPLCAiUmFuZ2VMZW5ndGg6IDB4JTAxNmxYXHQi LA0KPiBNZW1vcnlNYXBbSW5kZXhdLlJhbmdlTGVuZ3RoKSk7DQo+IC0gICAgREVCVUcgKChFRklf RF9JTkZPLCAiUGh5c2ljYWxBZGRyZXNzOiAweCUwMTZsWFx0IiwNCj4gTWVtb3J5TWFwW0luZGV4 XS5QaHlzaWNhbEFkZHJlc3MpKTsNCj4gLSAgICBERUJVRyAoKEVGSV9EX0lORk8sICJDcHVBZGRy ZXNzOiAweCUwMTZsWFx0IiwNCj4gTWVtb3J5TWFwW0luZGV4XS5DcHVBZGRyZXNzKSk7DQo+IC0g ICAgREVCVUcgKChFRklfRF9JTkZPLCAiVHlwZTogJWRcbiIsIE1lbW9yeU1hcFtJbmRleF0uVHlw ZSkpOw0KPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIkluZGV4OiAlZCAiLCBJbmRleCkpOw0K PiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIlJhbmdlTGVuZ3RoOiAweCUwMTZsWFx0IiwNCj4g TWVtb3J5TWFwW0luZGV4XS5SYW5nZUxlbmd0aCkpOw0KPiArICAgIERFQlVHICgoREVCVUdfSU5G TywgIlBoeXNpY2FsQWRkcmVzczogMHglMDE2bFhcdCIsDQo+IE1lbW9yeU1hcFtJbmRleF0uUGh5 c2ljYWxBZGRyZXNzKSk7DQo+ICsgICAgREVCVUcgKChERUJVR19JTkZPLCAiQ3B1QWRkcmVzczog MHglMDE2bFhcdCIsDQo+IE1lbW9yeU1hcFtJbmRleF0uQ3B1QWRkcmVzcykpOw0KPiArICAgIERF QlVHICgoREVCVUdfSU5GTywgIlR5cGU6ICVkXG4iLCBNZW1vcnlNYXBbSW5kZXhdLlR5cGUpKTsN Cj4gICAgICBpZiAoKE1lbW9yeU1hcFtJbmRleF0uUGh5c2ljYWxBZGRyZXNzID4gMHgxMDAwMDAp ICYmDQo+ICAgICAgICAgICgoTWVtb3J5TWFwW0luZGV4XS5UeXBlID09IER1YWxDaGFubmVsRGRy U21yYW1DYWNoZWFibGUpIHx8DQo+ICAgICAgICAgICAoTWVtb3J5TWFwW0luZGV4XS5UeXBlID09 IER1YWxDaGFubmVsRGRyU21yYW1Ob25DYWNoZWFibGUpKSkNCj4gQEAgLTY2Niw3ICs2NTcsNyBA QCBJbnN0YWxsUzNNZW1vcnkgKA0KPiAgICB9DQo+DQo+ICAgIEFTU0VSVCAoU21yYW1SYW5nZXMg PiAwKTsNCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiU21yYW1SYW5nZXMgPSAweCV4XG4iLCBT bXJhbVJhbmdlcykpOw0KPiArICBERUJVRyAoKERFQlVHX0lORk8sICJTbXJhbVJhbmdlcyA9IDB4 JXhcbiIsIFNtcmFtUmFuZ2VzKSk7DQo+DQo+ICAgIC8vDQo+ICAgIC8vIEFsbG9jYXRlIG9uZSBl eHRyYSBFRklfU01SQU1fREVTQ1JJUFRPUiB0byBkZXNjcmliZSBhIHBhZ2Ugb2YNCj4gU01SQU0g bWVtb3J5IHRoYXQgY29udGFpbnMgYSBwb2ludGVyDQo+IEBAIC02NzcsMjIgKzY2OCwyMiBAQCBJ bnN0YWxsUzNNZW1vcnkgKA0KPiAgICAgIEJ1ZmZlclNpemUgKz0gKChTbXJhbVJhbmdlcykgKiBz aXplb2YgKEVGSV9TTVJBTV9ERVNDUklQVE9SKSk7DQo+ICAgIH0NCj4NCj4gLSAgREVCVUcgKChF RklfRF9JTkZPLCAiQnVmZmVyU2l6ZSA9IDB4JXhcbiIsIEJ1ZmZlclNpemUpKTsNCj4gKyAgREVC VUcgKChERUJVR19JTkZPLCAiQnVmZmVyU2l6ZSA9IDB4JXhcbiIsIEJ1ZmZlclNpemUpKTsNCj4N Cj4gICAgSG9iLlJhdyA9IEJ1aWxkR3VpZEhvYiAoDQo+ICAgICAgICAgICAgICAgICZnRWZpU21t UGVpU21yYW1NZW1vcnlSZXNlcnZlR3VpZCwNCj4gICAgICAgICAgICAgICAgQnVmZmVyU2l6ZQ0K PiAgICAgICAgICAgICAgICApOw0KPiAgICBBU1NFUlQgKEhvYi5SYXcpOw0KPiAtICBERUJVRyAo KEVGSV9EX0lORk8sDQo+ICJnRWZpU21tUGVpU21yYW1NZW1vcnlSZXNlcnZlR3VpZC9TbXJhbUhv YkRlc2NyaXB0b3JCbG9jazogMHglWA0KPiBcbiIsIChVSU5UTilIb2IuUmF3KSk7DQo+ICsgIERF QlVHICgoREVCVUdfSU5GTywNCj4gImdFZmlTbW1QZWlTbXJhbU1lbW9yeVJlc2VydmVHdWlkL1Nt cmFtSG9iRGVzY3JpcHRvckJsb2NrOiAweCVYDQo+IFxuIiwgKFVJTlROKUhvYi5SYXcpKTsNCj4N Cj4gICAgU21yYW1Ib2JEZXNjcmlwdG9yQmxvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg ID0NCj4gKEVGSV9TTVJBTV9IT0JfREVTQ1JJUFRPUl9CTE9DSyAqKShIb2IuUmF3KTsNCj4gICAg U21yYW1Ib2JEZXNjcmlwdG9yQmxvY2stPk51bWJlck9mU21tUmVzZXJ2ZWRSZWdpb25zID0NCj4g U21yYW1SYW5nZXMgKyAxOw0KPg0KPiAgICBTbXJhbUluZGV4ID0gMDsNCj4gICAgZm9yIChJbmRl eCA9IDA7IEluZGV4IDwgTnVtUmFuZ2VzOyBJbmRleCsrKSB7DQo+IC0gICAgREVCVUcgKChFRklf RF9JTkZPLCAiSW5kZXg6IDB4JVggXHQiLCBJbmRleCkpOw0KPiAtICAgIERFQlVHICgoRUZJX0Rf SU5GTywgIlNtcmFtSW5kZXg6IDB4JVggXG4iLCBTbXJhbUluZGV4KSk7DQo+ICsgICAgREVCVUcg KChERUJVR19JTkZPLCAiSW5kZXg6IDB4JVggXHQiLCBJbmRleCkpOw0KPiArICAgIERFQlVHICgo REVCVUdfSU5GTywgIlNtcmFtSW5kZXg6IDB4JVggXG4iLCBTbXJhbUluZGV4KSk7DQo+ICAgICAg aWYgKChNZW1vcnlNYXBbSW5kZXhdLlBoeXNpY2FsQWRkcmVzcyA+IDB4MTAwMDAwKSAmJg0KPiAg ICAgICAgICAoKE1lbW9yeU1hcFtJbmRleF0uVHlwZSA9PSBEdWFsQ2hhbm5lbERkclNtcmFtQ2Fj aGVhYmxlKSB8fA0KPiAgICAgICAgICAgKE1lbW9yeU1hcFtJbmRleF0uVHlwZSA9PSBEdWFsQ2hh bm5lbERkclNtcmFtTm9uQ2FjaGVhYmxlKSkNCj4gQEAgLTcxMCwxMSArNzAxLDExIEBAIEluc3Rh bGxTM01lbW9yeSAoDQo+ICAgICAgICAgIFNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlw dG9yW1NtcmFtSW5kZXhdLlJlZ2lvblN0YXRlID0NCj4gRUZJX1NNUkFNX0NMT1NFRDsNCj4gICAg ICAgIH0NCj4NCj4gLSAgICAgIERFQlVHICgoRUZJX0RfSU5GTywgIlNtcmFtSW5kZXg6IDB4JVgg XG4iLCBTbXJhbUluZGV4KSk7DQo+IC0gICAgICBERUJVRyAoKEVGSV9EX0lORk8sICJQaHlzaWNh bFN0YXJ0OiAweCVYXG4iLA0KPiAoVUlOVE4pU21yYW1Ib2JEZXNjcmlwdG9yQmxvY2stPkRlc2Ny aXB0b3JbU21yYW1JbmRleF0uUGh5c2ljYWxTdGFydCkpOw0KPiAtICAgICAgREVCVUcgKChFRklf RF9JTkZPLCAiQ3B1U3RhcnQgICAgIDogMHglWFxuIiwNCj4gKFVJTlROKVNtcmFtSG9iRGVzY3Jp cHRvckJsb2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5kZXhdLkNwdVN0YXJ0KSk7DQo+IC0gICAgICBE RUJVRyAoKEVGSV9EX0lORk8sICJQaHlzaWNhbFNpemUgOiAweCVYXG4iLA0KPiAoVUlOVE4pU21y YW1Ib2JEZXNjcmlwdG9yQmxvY2stPkRlc2NyaXB0b3JbU21yYW1JbmRleF0uUGh5c2ljYWxTaXpl KSk7DQo+IC0gICAgICBERUJVRyAoKEVGSV9EX0lORk8sICJSZWdpb25TdGF0ZSAgOiAweCVYXG4i LA0KPiAoVUlOVE4pU21yYW1Ib2JEZXNjcmlwdG9yQmxvY2stPkRlc2NyaXB0b3JbU21yYW1JbmRl eF0uUmVnaW9uU3RhdGUpKTsNCj4gKyAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIlNtcmFtSW5k ZXg6IDB4JVggXG4iLCBTbXJhbUluZGV4KSk7DQo+ICsgICAgICBERUJVRyAoKERFQlVHX0lORk8s ICJQaHlzaWNhbFN0YXJ0OiAweCVYXG4iLA0KPiAoVUlOVE4pU21yYW1Ib2JEZXNjcmlwdG9yQmxv Y2stPkRlc2NyaXB0b3JbU21yYW1JbmRleF0uUGh5c2ljYWxTdGFydCkpOw0KPiArICAgICAgREVC VUcgKChERUJVR19JTkZPLCAiQ3B1U3RhcnQgICAgIDogMHglWFxuIiwNCj4gKFVJTlROKVNtcmFt SG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5kZXhdLkNwdVN0YXJ0KSk7DQo+ ICsgICAgICBERUJVRyAoKERFQlVHX0lORk8sICJQaHlzaWNhbFNpemUgOiAweCVYXG4iLA0KPiAo VUlOVE4pU21yYW1Ib2JEZXNjcmlwdG9yQmxvY2stPkRlc2NyaXB0b3JbU21yYW1JbmRleF0uUGh5 c2ljYWxTaXplKSk7DQo+ICsgICAgICBERUJVRyAoKERFQlVHX0lORk8sICJSZWdpb25TdGF0ZSAg OiAweCVYXG4iLA0KPiAoVUlOVE4pU21yYW1Ib2JEZXNjcmlwdG9yQmxvY2stPkRlc2NyaXB0b3Jb U21yYW1JbmRleF0uUmVnaW9uU3RhdGUpKTsNCj4gICAgICAgIGlmICggU21yYW1JbmRleCA9PSAg U21yYW1SYW5nZXMgLSAxKSB7DQo+ICAgICAgICAgIC8vDQo+ICAgICAgICAgIC8vIG9uZSBleHRy YSBFRklfU01SQU1fREVTQ1JJUFRPUiBmb3IgYSBwYWdlIG9mIFNNUkFNIG1lbW9yeQ0KPiBAQCAt NzI2LDE0ICs3MTcsMTQgQEAgSW5zdGFsbFMzTWVtb3J5ICgNCj4gICAgICAgICAgU21yYW1Ib2JE ZXNjcmlwdG9yQmxvY2stPkRlc2NyaXB0b3JbU21yYW1JbmRleF0uUGh5c2ljYWxTaXplICAgPQ0K PiBNZW1vcnlNYXBbSW5kZXhdLlJhbmdlTGVuZ3RoIC0gRUZJX1BBR0VfU0laRTsNCj4gICAgICAg ICAgU21yYW1Ib2JEZXNjcmlwdG9yQmxvY2stPkRlc2NyaXB0b3JbU21yYW1JbmRleF0uUmVnaW9u U3RhdGUgICAgPQ0KPiBTbXJhbUhvYkRlc2NyaXB0b3JCbG9jay0+RGVzY3JpcHRvcltTbXJhbUlu ZGV4LTFdLlJlZ2lvblN0YXRlOw0KPiAgICAgICAgICBTbXJhbUhvYkRlc2NyaXB0b3JCbG9jay0+ RGVzY3JpcHRvcltTbXJhbUluZGV4LTFdLlJlZ2lvblN0YXRlIHw9DQo+IEVGSV9BTExPQ0FURUQ7 DQo+IC0gICAgICAgIERFQlVHICgoRUZJX0RfSU5GTywgIlNtcmFtSW5kZXg6IDB4JVggXG4iLCBT bXJhbUluZGV4KSk7DQo+IC0gICAgICAgIERFQlVHICgoRUZJX0RfSU5GTywgIlBoeXNpY2FsU3Rh cnQ6IDB4JVhcbiIsDQo+IChVSU5UTilTbXJhbUhvYkRlc2NyaXB0b3JCbG9jay0+RGVzY3JpcHRv cltTbXJhbUluZGV4XS5QaHlzaWNhbFN0YXJ0KSk7DQo+IC0gICAgICAgIERFQlVHICgoRUZJX0Rf SU5GTywgIkNwdVN0YXJ0ICAgICA6IDB4JVhcbiIsDQo+IChVSU5UTilTbXJhbUhvYkRlc2NyaXB0 b3JCbG9jay0+RGVzY3JpcHRvcltTbXJhbUluZGV4XS5DcHVTdGFydCkpOw0KPiAtICAgICAgICBE RUJVRyAoKEVGSV9EX0lORk8sICJQaHlzaWNhbFNpemUgOiAweCVYXG4iLA0KPiAoVUlOVE4pU21y YW1Ib2JEZXNjcmlwdG9yQmxvY2stPkRlc2NyaXB0b3JbU21yYW1JbmRleF0uUGh5c2ljYWxTaXpl KSk7DQo+IC0gICAgICAgIERFQlVHICgoRUZJX0RfSU5GTywgIlJlZ2lvblN0YXRlICA6IDB4JVhc blxuIiwNCj4gKFVJTlROKVNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlwdG9yW1NtcmFt SW5kZXhdLlJlZ2lvblN0YXRlKSk7DQo+IC0NCj4gLSAgICAgICAgREVCVUcgKChFRklfRF9JTkZP LCAiUGh5c2ljYWxTaXplIDogMHglWFxuIiwNCj4gKFVJTlROKVNtcmFtSG9iRGVzY3JpcHRvckJs b2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5kZXgtDQo+IDFdLlBoeXNpY2FsU2l6ZSkpOw0KPiAtICAg ICAgICBERUJVRyAoKEVGSV9EX0lORk8sICJSZWdpb25TdGF0ZSAgOiAweCVYXG4iLA0KPiAoVUlO VE4pU21yYW1Ib2JEZXNjcmlwdG9yQmxvY2stPkRlc2NyaXB0b3JbU21yYW1JbmRleC0NCj4gMV0u UmVnaW9uU3RhdGUpKTsNCj4gKyAgICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiU21yYW1JbmRl eDogMHglWCBcbiIsIFNtcmFtSW5kZXgpKTsNCj4gKyAgICAgICAgREVCVUcgKChERUJVR19JTkZP LCAiUGh5c2ljYWxTdGFydDogMHglWFxuIiwNCj4gKFVJTlROKVNtcmFtSG9iRGVzY3JpcHRvckJs b2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5kZXhdLlBoeXNpY2FsU3RhcnQpKTsNCj4gKyAgICAgICAg REVCVUcgKChERUJVR19JTkZPLCAiQ3B1U3RhcnQgICAgIDogMHglWFxuIiwNCj4gKFVJTlROKVNt cmFtSG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5kZXhdLkNwdVN0YXJ0KSk7 DQo+ICsgICAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIlBoeXNpY2FsU2l6ZSA6IDB4JVhcbiIs DQo+IChVSU5UTilTbXJhbUhvYkRlc2NyaXB0b3JCbG9jay0+RGVzY3JpcHRvcltTbXJhbUluZGV4 XS5QaHlzaWNhbFNpemUpKTsNCj4gKyAgICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiUmVnaW9u U3RhdGUgIDogMHglWFxuXG4iLA0KPiAoVUlOVE4pU21yYW1Ib2JEZXNjcmlwdG9yQmxvY2stPkRl c2NyaXB0b3JbU21yYW1JbmRleF0uUmVnaW9uU3RhdGUpKTsNCj4gKw0KPiArICAgICAgICBERUJV RyAoKERFQlVHX0lORk8sICJQaHlzaWNhbFNpemUgOiAweCVYXG4iLA0KPiAoVUlOVE4pU21yYW1I b2JEZXNjcmlwdG9yQmxvY2stPkRlc2NyaXB0b3JbU21yYW1JbmRleC0NCj4gMV0uUGh5c2ljYWxT aXplKSk7DQo+ICsgICAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIlJlZ2lvblN0YXRlICA6IDB4 JVhcbiIsDQo+IChVSU5UTilTbXJhbUhvYkRlc2NyaXB0b3JCbG9jay0+RGVzY3JpcHRvcltTbXJh bUluZGV4LQ0KPiAxXS5SZWdpb25TdGF0ZSkpOw0KPiAgICAgICAgfQ0KPg0KPiAgICAgICAgU21y YW1JbmRleCsrOw0KPiBAQCAtNzQ1LDcgKzczNiw3IEBAIEluc3RhbGxTM01lbW9yeSAoDQo+ICAg IC8vDQo+ICAgIENvcHlNZW0gKCZEZXNjcmlwdG9yQWNwaVZhcmlhYmxlLCAmU21yYW1Ib2JEZXNj cmlwdG9yQmxvY2stDQo+ID5EZXNjcmlwdG9yW1NtcmFtUmFuZ2VzLTFdLCBzaXplb2YgKEVGSV9T TVJBTV9ERVNDUklQVE9SKSk7DQo+ICAgIERlc2NyaXB0b3JBY3BpVmFyaWFibGUuQ3B1U3RhcnQg Kz0gUkVTRVJWRURfQ1BVX1MzX1NBVkVfT0ZGU0VUOw0KPiAtICBERUJVRyAoKEVGSV9EX0lORk8s ICJnRWZpQWNwaVZhcmlhYmxlR3VpZCBDcHVTdGFydDogMHglWFxuIiwNCj4gKFVJTlROKURlc2Ny aXB0b3JBY3BpVmFyaWFibGUuQ3B1U3RhcnQpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAi Z0VmaUFjcGlWYXJpYWJsZUd1aWQgQ3B1U3RhcnQ6IDB4JVhcbiIsDQo+IChVSU5UTilEZXNjcmlw dG9yQWNwaVZhcmlhYmxlLkNwdVN0YXJ0KSk7DQo+ICAgIEJ1aWxkR3VpZERhdGFIb2IgKA0KPiAg ICAgICZnRWZpQWNwaVZhcmlhYmxlR3VpZCwNCj4gICAgICAmRGVzY3JpcHRvckFjcGlWYXJpYWJs ZSwNCj4gQEAgLTc1NywyMCArNzQ4LDIwIEBAIEluc3RhbGxTM01lbW9yeSAoDQo+ICAgIC8vIGlu c3RhbGwgaXQgYXMgUEVJIE1lbW9yeS4NCj4gICAgLy8NCj4NCj4gLSAgREVCVUcgKChFRklfRF9J TkZPLCAiVFNFRyBCYXNlID0gMHglMDh4XG4iLA0KPiBTbXJhbUhvYkRlc2NyaXB0b3JCbG9jay0+ RGVzY3JpcHRvcltTbXJhbVJhbmdlc10uUGh5c2ljYWxTdGFydCkpOw0KPiAtICBERUJVRyAoKEVG SV9EX0lORk8sICJTbXJhbVJhbmdlcyA9IDB4JXhcbiIsIFNtcmFtUmFuZ2VzKSk7DQo+ICsgIERF QlVHICgoREVCVUdfSU5GTywgIlRTRUcgQmFzZSA9IDB4JTA4eFxuIiwNCj4gU21yYW1Ib2JEZXNj cmlwdG9yQmxvY2stPkRlc2NyaXB0b3JbU21yYW1SYW5nZXNdLlBoeXNpY2FsU3RhcnQpKTsNCj4g KyAgREVCVUcgKChERUJVR19JTkZPLCAiU21yYW1SYW5nZXMgPSAweCV4XG4iLCBTbXJhbVJhbmdl cykpOw0KPiAgICBTM01lbW9yeVJhbmdlRGF0YSA9IChSRVNFUlZFRF9BQ1BJX1MzX1JBTkdFICop KFVJTlROKQ0KPiAgICAgICAgICAgICAgICAgICAgICAgIChTbXJhbUhvYkRlc2NyaXB0b3JCbG9j ay0NCj4gPkRlc2NyaXB0b3JbU21yYW1SYW5nZXNdLlBoeXNpY2FsU3RhcnQgKw0KPiBSRVNFUlZF RF9BQ1BJX1MzX1JBTkdFX09GRlNFVCk7DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywgIlMzTWVt b3J5UmFuZ2VEYXRhID0gMHglMDh4XG4iLA0KPiAoVUlOVE4pUzNNZW1vcnlSYW5nZURhdGEpKTsN Cj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiUzNNZW1vcnlSYW5nZURhdGEgPSAweCUwOHhcbiIs DQo+IChVSU5UTilTM01lbW9yeVJhbmdlRGF0YSkpOw0KPg0KPiAtICBERUJVRyAoKEVGSV9EX0lO Rk8sICJTM01lbW9yeVJhbmdlRGF0YS0+QWNwaVJlc2VydmVkTWVtb3J5QmFzZSA9DQo+IDB4JVhc biIsIChVSU5UTilTM01lbW9yeVJhbmdlRGF0YS0+QWNwaVJlc2VydmVkTWVtb3J5QmFzZSkpOw0K PiAtICBERUJVRyAoKEVGSV9EX0lORk8sICJTM01lbW9yeVJhbmdlRGF0YS0+QWNwaVJlc2VydmVk TWVtb3J5U2l6ZSA9DQo+IDB4JVhcbiIsIChVSU5UTilTM01lbW9yeVJhbmdlRGF0YS0+QWNwaVJl c2VydmVkTWVtb3J5U2l6ZSkpOw0KPiAtICBERUJVRyAoKEVGSV9EX0lORk8sICJTM01lbW9yeVJh bmdlRGF0YS0+U3lzdGVtTWVtb3J5TGVuZ3RoID0NCj4gMHglWFxuIiwgKFVJTlROKVMzTWVtb3J5 UmFuZ2VEYXRhLT5TeXN0ZW1NZW1vcnlMZW5ndGgpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZP LCAiUzNNZW1vcnlSYW5nZURhdGEtDQo+ID5BY3BpUmVzZXJ2ZWRNZW1vcnlCYXNlID0gMHglWFxu IiwgKFVJTlROKVMzTWVtb3J5UmFuZ2VEYXRhLQ0KPiA+QWNwaVJlc2VydmVkTWVtb3J5QmFzZSkp Ow0KPiArICBERUJVRyAoKERFQlVHX0lORk8sICJTM01lbW9yeVJhbmdlRGF0YS0+QWNwaVJlc2Vy dmVkTWVtb3J5U2l6ZQ0KPiA9IDB4JVhcbiIsIChVSU5UTilTM01lbW9yeVJhbmdlRGF0YS0+QWNw aVJlc2VydmVkTWVtb3J5U2l6ZSkpOw0KPiArICBERUJVRyAoKERFQlVHX0lORk8sICJTM01lbW9y eVJhbmdlRGF0YS0+U3lzdGVtTWVtb3J5TGVuZ3RoID0NCj4gMHglWFxuIiwgKFVJTlROKVMzTWVt b3J5UmFuZ2VEYXRhLT5TeXN0ZW1NZW1vcnlMZW5ndGgpKTsNCj4NCj4gICAgUzNNZW1vcnlCYXNl ID0gKFVJTlROKShTM01lbW9yeVJhbmdlRGF0YS0NCj4gPkFjcGlSZXNlcnZlZE1lbW9yeUJhc2Up Ow0KPiAtICBERUJVRyAoKEVGSV9EX0lORk8sICJTM01lbW9yeUJhc2UgPSAweCUwOHhcbiIsIFMz TWVtb3J5QmFzZSkpOw0KPiArICBERUJVRyAoKERFQlVHX0lORk8sICJTM01lbW9yeUJhc2UgPSAw eCUwOHhcbiIsIFMzTWVtb3J5QmFzZSkpOw0KPiAgICBTM01lbW9yeVNpemUgPSAoVUlOVE4pKFMz TWVtb3J5UmFuZ2VEYXRhLQ0KPiA+QWNwaVJlc2VydmVkTWVtb3J5U2l6ZSk7DQo+IC0gIERFQlVH ICgoRUZJX0RfSU5GTywgIlMzTWVtb3J5U2l6ZSA9IDB4JTA4eFxuIiwgUzNNZW1vcnlTaXplKSk7 DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIlMzTWVtb3J5U2l6ZSA9IDB4JTA4eFxuIiwgUzNN ZW1vcnlTaXplKSk7DQo+DQo+ICAgIFN0YXR1cyA9IFBlaVNlcnZpY2VzSW5zdGFsbFBlaU1lbW9y eSAoUzNNZW1vcnlCYXNlLCBTM01lbW9yeVNpemUpOw0KPiAgICBBU1NFUlRfRUZJX0VSUk9SIChT dGF0dXMpOw0KPiBAQCAtNzk1LDcgKzc4Niw3IEBAIEluc3RhbGxTM01lbW9yeSAoDQo+ICAgICAg UzNNZW1vcnlSYW5nZURhdGEtPlN5c3RlbU1lbW9yeUxlbmd0aCAtIDB4MTAwMDAwDQo+ICAgICAg KTsNCj4NCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiTWVtb3J5QmVnaW46IDB4JWxYLCBNZW1v cnlMZW5ndGg6IDB4JWxYXG4iLA0KPiAweDEwMDAwMCwgUzNNZW1vcnlSYW5nZURhdGEtPlN5c3Rl bU1lbW9yeUxlbmd0aCAtIDB4MTAwMDAwKSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIk1l bW9yeUJlZ2luOiAweCVsWCwgTWVtb3J5TGVuZ3RoOiAweCVsWFxuIiwNCj4gMHgxMDAwMDAsIFMz TWVtb3J5UmFuZ2VEYXRhLT5TeXN0ZW1NZW1vcnlMZW5ndGggLSAweDEwMDAwMCkpOw0KPg0KPiAg ICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBOdW1SYW5nZXM7IEluZGV4KyspIHsNCj4gICAgICBp ZiAoKE1lbW9yeU1hcFtJbmRleF0uVHlwZSA9PSBEdWFsQ2hhbm5lbERkck1haW5NZW1vcnkpICYm DQo+IEBAIC04MTQsMTAgKzgwNSwxMCBAQCBJbnN0YWxsUzNNZW1vcnkgKA0KPiAgICAgICAgICBN ZW1vcnlNYXBbSW5kZXhdLlBoeXNpY2FsQWRkcmVzcywNCj4gICAgICAgICAgTWVtb3J5TWFwW0lu ZGV4XS5SYW5nZUxlbmd0aA0KPiAgICAgICAgICApOw0KPiAtICAgICAgREVCVUcgKChFRklfRF9J TkZPLCAiTWVtb3J5QmVnaW46IDB4JWxYLCBNZW1vcnlMZW5ndGg6IDB4JWxYXG4iLA0KPiBNZW1v cnlNYXBbSW5kZXhdLlBoeXNpY2FsQWRkcmVzcywgTWVtb3J5TWFwW0luZGV4XS5SYW5nZUxlbmd0 aCkpOw0KPiArICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiTWVtb3J5QmVnaW46IDB4JWxYLCBN ZW1vcnlMZW5ndGg6IDB4JWxYXG4iLA0KPiBNZW1vcnlNYXBbSW5kZXhdLlBoeXNpY2FsQWRkcmVz cywgTWVtb3J5TWFwW0luZGV4XS5SYW5nZUxlbmd0aCkpOw0KPg0KPiAtICAgICAgREVCVUcgKChF RklfRF9JTkZPLCAiQnVpbGQgcmVzb3VyY2UgSE9CIGZvciBMZWdhY3kgUmVnaW9uIG9uIFMzDQo+ IHBhdGNoIDoiKSk7DQo+IC0gICAgICBERUJVRyAoKEVGSV9EX0lORk8sICIgTWVtb3J5IEJhc2U6 MHglbFggTGVuZ3RoOjB4JWxYXG4iLA0KPiBNZW1vcnlNYXBbSW5kZXhdLlBoeXNpY2FsQWRkcmVz cywgTWVtb3J5TWFwW0luZGV4XS5SYW5nZUxlbmd0aCkpOw0KPiArICAgICAgREVCVUcgKChERUJV R19JTkZPLCAiQnVpbGQgcmVzb3VyY2UgSE9CIGZvciBMZWdhY3kgUmVnaW9uIG9uIFMzDQo+IHBh dGNoIDoiKSk7DQo+ICsgICAgICBERUJVRyAoKERFQlVHX0lORk8sICIgTWVtb3J5IEJhc2U6MHgl bFggTGVuZ3RoOjB4JWxYXG4iLA0KPiBNZW1vcnlNYXBbSW5kZXhdLlBoeXNpY2FsQWRkcmVzcywg TWVtb3J5TWFwW0luZGV4XS5SYW5nZUxlbmd0aCkpOw0KPiAgICAgIH0NCj4gICAgfQ0KPg0KPiBA QCAtODk0LDcgKzg4NSw3IEBAIEdldFBsYXRmb3JtTWVtb3J5U2l6ZSAoDQo+DQo+ICAgICAgKk1l bW9yeVNpemUgPSBQRUlfTUlOX01FTU9SWV9TSVpFOw0KPiAgICAgIGZvciAoSW5kZXggPSAwOyBJ bmRleCA8IERhdGFTaXplIC8gc2l6ZW9mDQo+IChFRklfTUVNT1JZX1RZUEVfSU5GT1JNQVRJT04p OyBJbmRleCsrKSB7DQo+IC0gICAgICBERUJVRyAoKEVGSV9EX0lORk8sICJJbmRleCAlZCwgUGFn ZTogJWRcbiIsIEluZGV4LA0KPiBNZW1vcnlEYXRhW0luZGV4XS5OdW1iZXJPZlBhZ2VzKSk7DQo+ ICsgICAgICBERUJVRyAoKERFQlVHX0lORk8sICJJbmRleCAlZCwgUGFnZTogJWRcbiIsIEluZGV4 LA0KPiBNZW1vcnlEYXRhW0luZGV4XS5OdW1iZXJPZlBhZ2VzKSk7DQo+ICAgICAgICAqTWVtb3J5 U2l6ZSArPSBNZW1vcnlEYXRhW0luZGV4XS5OdW1iZXJPZlBhZ2VzICogRUZJX1BBR0VfU0laRTsN Cj4gICAgICB9DQo+DQo+IEBAIC05MDgsNyArODk5LDcgQEAgR2V0UGxhdGZvcm1NZW1vcnlTaXpl ICgNCj4gICAgICAgICk7DQo+ICAgIH0NCj4NCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiR2V0 UGxhdGZvcm1NZW1vcnlTaXplLCBNZW1vcnlTaXplOiAweCVsWFxuIiwNCj4gKk1lbW9yeVNpemUp KTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiR2V0UGxhdGZvcm1NZW1vcnlTaXplLCBNZW1v cnlTaXplOiAweCVsWFxuIiwNCj4gKk1lbW9yeVNpemUpKTsNCj4gICAgcmV0dXJuIEVGSV9TVUND RVNTOw0KPiAgfQ0KPg0KPiBAQCAtOTQxLDcgKzkzMiw3IEBAIFBvc3RGc3BtSG9iUHJvY2VzcyAo DQo+ICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+DQo+ICAgIGlmIChCb290TW9kZSA9 PSBCT09UX09OX1MzX1JFU1VNRSkgew0KPiAtICAgIERFQlVHICgoRUZJX0RfSU5GTywgIkZvbGxv d2luZyBCT09UX09OX1MzX1JFU1VNRSBib290IHBhdGguXG4iKSk7DQo+ICsgICAgREVCVUcgKChE RUJVR19JTkZPLCAiRm9sbG93aW5nIEJPT1RfT05fUzNfUkVTVU1FIGJvb3QNCj4gcGF0aC5cbiIp KTsNCj4NCj4gICAgICBTdGF0dXMgPSBJbnN0YWxsUzNNZW1vcnkgKFBlaVNlcnZpY2VzLCBCb290 TW9kZSwgRnNwSG9iTGlzdCk7DQo+ICAgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4g QEAgLTEwMzIsNyArMTAyMyw3IEBAIEdldEF2YWlsYWJsZU1lbW9yeVJhbmdlcyAoDQo+ICB7DQo+ ICAgIEVGSV9QRUlfSE9CX1BPSU5URVJTICBIb2I7DQo+DQo+IC0gIERFQlVHICgoRUZJX0RfSU5G TywgIkdldEF2YWlsYWJsZU1lbW9yeVJhbmdlcysrXG4iKSk7DQo+ICsgIERFQlVHICgoREVCVUdf SU5GTywgIkdldEF2YWlsYWJsZU1lbW9yeVJhbmdlcysrXG4iKSk7DQo+ICAgIGlmICgoKk51bVJh bmdlcykgPCBNQVhfUkFOR0VTKSB7DQo+ICAgICAgcmV0dXJuIEVGSV9CVUZGRVJfVE9PX1NNQUxM Ow0KPiAgICB9DQo+IEBAIC0xMDUwLDcgKzEwNDEsNyBAQCBHZXRBdmFpbGFibGVNZW1vcnlSYW5n ZXMgKA0KPiAgICAgICAgTWVtb3J5TWFwWypOdW1SYW5nZXNdLlR5cGUgICAgICAgICAgICA9DQo+ IER1YWxDaGFubmVsRGRyUmVzZXJ2ZWRNZW1vcnk7DQo+ICAgICAgICAoKk51bVJhbmdlcykrKzsN Cj4gICAgICAgIERFQlVHICgoDQo+IC0gICAgICAgIEVGSV9EX0lORk8sDQo+ICsgICAgICAgIERF QlVHX0lORk8sDQo+ICAgICAgICAgICIgR2V0QXZhaWxhYmxlTWVtb3J5UmFuZ2VzIEJhc2U6MHgl MDE2bFgsIFNpemU6IDB4JTAxNmxYXG4iLCBcDQo+ICAgICAgICAgIEhvYi5SZXNvdXJjZURlc2Ny aXB0b3ItPlBoeXNpY2FsU3RhcnQsIFwNCj4gICAgICAgICAgSG9iLlJlc291cmNlRGVzY3JpcHRv ci0+UmVzb3VyY2VMZW5ndGgNCj4gQEAgLTEwNzIsNyArMTA2Myw3IEBAIEdldFJlc2VydmVkTWVt b3J5UmFuZ2VzICgNCj4gIHsNCj4gICAgRUZJX1BFSV9IT0JfUE9JTlRFUlMgIEhvYjsNCj4NCj4g LSAgREVCVUcgKChFRklfRF9JTkZPLCAiR2V0UmVzZXJ2ZWRNZW1vcnlSYW5nZXNcbiIpKTsNCj4g KyAgREVCVUcgKChERUJVR19JTkZPLCAiR2V0UmVzZXJ2ZWRNZW1vcnlSYW5nZXNcbiIpKTsNCj4g ICAgaWYgKCgqTnVtUmFuZ2VzKSA8IE1BWF9SQU5HRVMpIHsNCj4gICAgICByZXR1cm4gRUZJX0JV RkZFUl9UT09fU01BTEw7DQo+ICAgIH0NCj4gQEAgLTEwOTAsNyArMTA4MSw3IEBAIEdldFJlc2Vy dmVkTWVtb3J5UmFuZ2VzICgNCj4gICAgICAgIE1lbW9yeU1hcFsqTnVtUmFuZ2VzXS5UeXBlICAg ICAgICAgICAgPQ0KPiBEdWFsQ2hhbm5lbERkclJlc2VydmVkTWVtb3J5Ow0KPiAgICAgICAgKCpO dW1SYW5nZXMpKys7DQo+ICAgICAgICBERUJVRyAoKA0KPiAtICAgICAgICBFRklfRF9JTkZPLA0K PiArICAgICAgICBERUJVR19JTkZPLA0KPiAgICAgICAgICAiIEdldFJlc2VydmVkTWVtb3J5UmFu Z2VzIEJhc2U6MHglMDE2bFgsIFNpemU6IDB4JTAxNmxYXG4iLCBcDQo+ICAgICAgICAgIEhvYi5S ZXNvdXJjZURlc2NyaXB0b3ItPlBoeXNpY2FsU3RhcnQsIFwNCj4gICAgICAgICAgSG9iLlJlc291 cmNlRGVzY3JpcHRvci0+UmVzb3VyY2VMZW5ndGgNCj4gQEAgLTEzNzUsNyArMTM2Niw3IEBAIFNl dFBlaUNhY2hlTW9kZSAoDQo+ICAgICAgICBicmVhazsNCj4gICAgICB9DQo+DQo+IC0gICAgREVC VUcgKChFRklfRF9JTkZPLCAiQmFzZT0lbHgsIE1hc2s9JWx4XG4iLA0KPiBNdHJyU2V0dGluZy5W YXJpYWJsZXMuTXRycltJbmRleF0uQmFzZSwNCj4gTXRyclNldHRpbmcuVmFyaWFibGVzLk10cnJb SW5kZXhdLk1hc2spKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJCYXNlPSVseCwgTWFz az0lbHhcbiIsDQo+IE10cnJTZXR0aW5nLlZhcmlhYmxlcy5NdHJyW0luZGV4XS5CYXNlLA0KPiBN dHJyU2V0dGluZy5WYXJpYWJsZXMuTXRycltJbmRleF0uTWFzaykpOw0KPiAgICB9DQo+DQo+ICAg IC8vDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRl L2VkazIvRnNwMldyYXBwZXJQa2cvTGlicmFyeS9QDQo+IGVpRnNwV3JhcHBlckhvYlByb2Nlc3NM aWJTYW1wbGUvTWVtb3J5SW5zdGFsbC5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9P dmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvUA0KPiBlaUZzcFdyYXBwZXJIb2JQ cm9jZXNzTGliU2FtcGxlL01lbW9yeUluc3RhbGwuaA0KPiBpbmRleCA4YjY3NDM3ZmZhLi5jOWE1 OGFlYTU2IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJy aWRlL2VkazIvRnNwMldyYXBwZXJQa2cvTGlicmFyeS9QDQo+IGVpRnNwV3JhcHBlckhvYlByb2Nl c3NMaWJTYW1wbGUvTWVtb3J5SW5zdGFsbC5oDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBlclBrZy9MaWJyYXJ5L1ANCj4gZWlGc3BX cmFwcGVySG9iUHJvY2Vzc0xpYlNhbXBsZS9NZW1vcnlJbnN0YWxsLmgNCj4gQEAgLTEsMzAgKzEs MTUgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBJbXBsZW1lbnRzIE1lbW9yeUluc3RhbGwuaA0KPiAr ICBGcmFtZXdvcmsgUEVJTSB0byBpbml0aWFsaXplIG1lbW9yeSBvbiBhbiBERFIyIFNEUkFNIE1l bW9yeQ0KPiBDb250cm9sbGVyLg0KPg0KPiAgICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQg TWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJp Z2h0IChjKSAyMDEzIC0gMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQo+DQo+ICAqKi8NCj4NCj4gLS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkg cHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAtLyoqIEBm aWxlDQo+IC1GcmFtZXdvcmsgUEVJTSB0byBpbml0aWFsaXplIG1lbW9yeSBvbiBhbiBERFIyIFNE UkFNIE1lbW9yeQ0KPiBDb250cm9sbGVyLg0KPiAtDQo+IC1Db3B5cmlnaHQgKGMpIDIwMTMgLSAy MDE2IEludGVsIENvcnBvcmF0aW9uLg0KPiAtDQo+IC1UaGlzIHByb2dyYW0gYW5kIHRoZSBhY2Nv bXBhbnlpbmcgbWF0ZXJpYWxzDQo+IC1hcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVu ZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vuc2UNCj4gLXdo aWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUg bGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gLWh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNl bnNlcy9ic2QtbGljZW5zZS5waHANCj4gLQ0KPiAtVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQg VU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+IC1XSVRIT1VU IFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQ UkVTUyBPUiBJTVBMSUVELg0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtI2lmbmRlZiBfTVJDX1dSQVBQ RVJfSA0KPiAtI2RlZmluZSBfTVJDX1dSQVBQRVJfSA0KPiArI2lmbmRlZiBNUkNfV1JBUFBFUl9I Xw0KPiArI2RlZmluZSBNUkNfV1JBUFBFUl9IXw0KPg0KPiAgLy8NCj4gIC8vIE1heGltdW0gbnVt YmVyIG9mIG1lbW9yeSByYW5nZXMgc3VwcG9ydGVkIGJ5IHRoZSBtZW1vcnkNCj4gY29udHJvbGxl cg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9l ZGsyL0ZzcDJXcmFwcGVyUGtnL0xpYnJhcnkvUw0KPiBlY0ZzcFdyYXBwZXJQbGF0Zm9ybVNlY0xp YlNhbXBsZS9Gc3AuaA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRr Mi9Gc3AyV3JhcHBlclBrZy9MaWJyYXJ5L1MNCj4gZWNGc3BXcmFwcGVyUGxhdGZvcm1TZWNMaWJT YW1wbGUvRnNwLmgNCj4gaW5kZXggNDFiZWUzYTYxMy4uMGJiNjEyZWE4NyAxMDA2NDQNCj4gLS0t DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVy UGtnL0xpYnJhcnkvUw0KPiBlY0ZzcFdyYXBwZXJQbGF0Zm9ybVNlY0xpYlNhbXBsZS9Gc3AuaA0K PiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvRnNwMldy YXBwZXJQa2cvTGlicmFyeS9TDQo+IGVjRnNwV3JhcHBlclBsYXRmb3JtU2VjTGliU2FtcGxlL0Zz cC5oDQo+IEBAIC02LDggKzYsOCBAQA0KPg0KPiAgKiovDQo+DQo+IC0jaWZuZGVmIF9fRlNQX0hf Xw0KPiAtI2RlZmluZSBfX0ZTUF9IX18NCj4gKyNpZm5kZWYgRlNQX0hfX19fDQo+ICsjZGVmaW5l IEZTUF9IX19fXw0KPg0KPiAgLy8NCj4gIC8vIEZ2IEhlYWRlcg0KPiBkaWZmIC0tZ2l0DQo+IGEv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFwcGVyUGtnL0xp YnJhcnkvUw0KPiBlY0ZzcFdyYXBwZXJQbGF0Zm9ybVNlY0xpYlNhbXBsZS9TZWNSYW1Jbml0RGF0 YS5jDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL0ZzcDJXcmFw cGVyUGtnL0xpYnJhcnkvUw0KPiBlY0ZzcFdyYXBwZXJQbGF0Zm9ybVNlY0xpYlNhbXBsZS9TZWNS YW1Jbml0RGF0YS5jDQo+IGluZGV4IGVkNjkxN2IyN2IuLjVlN2YwNTFiYjYgMTAwNjQ0DQo+IC0t LQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Gc3AyV3JhcHBl clBrZy9MaWJyYXJ5L1MNCj4gZWNGc3BXcmFwcGVyUGxhdGZvcm1TZWNMaWJTYW1wbGUvU2VjUmFt SW5pdERhdGEuYw0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRl L2VkazIvRnNwMldyYXBwZXJQa2cvTGlicmFyeS9TDQo+IGVjRnNwV3JhcHBlclBsYXRmb3JtU2Vj TGliU2FtcGxlL1NlY1JhbUluaXREYXRhLmMNCj4gQEAgLTEwLDEwICsxMCwxMCBAQA0KPiAgI2lu Y2x1ZGUgPEZzcEVhcy5oPg0KPg0KPiAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAtICBFRklfUEhZU0lD QUxfQUREUkVTUyAgTWljcm9jb2RlUmVnaW9uQmFzZTsNCj4gLSAgVUlOVDY0ICAgICAgICAgICAg ICAgIE1pY3JvY29kZVJlZ2lvblNpemU7DQo+IC0gIEVGSV9QSFlTSUNBTF9BRERSRVNTICBDb2Rl UmVnaW9uQmFzZTsNCj4gLSAgVUlOVDY0ICAgICAgICAgICAgICAgIENvZGVSZWdpb25TaXplOw0K PiArICBFRklfUEhZU0lDQUxfQUREUkVTUyAgICBNaWNyb2NvZGVSZWdpb25CYXNlOw0KPiArICBV SU5UNjQgICAgICAgICAgICAgICAgICBNaWNyb2NvZGVSZWdpb25TaXplOw0KPiArICBFRklfUEhZ U0lDQUxfQUREUkVTUyAgICBDb2RlUmVnaW9uQmFzZTsNCj4gKyAgVUlOVDY0ICAgICAgICAgICAg ICAgICAgQ29kZVJlZ2lvblNpemU7DQo+ICB9IEZTUFRfQ09SRV9VUEQ7DQo+DQo+ICB0eXBlZGVm IHN0cnVjdCB7DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092 ZXJyaWRlL2VkazIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvUGMNCj4gaUhvc3RCcmlkZ2VEeGUvSW9G aWZvLmgNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvTWRlTW9k dWxlUGtnL0J1cy9QY2kvUGMNCj4gaUhvc3RCcmlkZ2VEeGUvSW9GaWZvLmgNCj4gaW5kZXggMDUx YTgwNzUzYi4uNDFkNmE4OWNlMyAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1Zhbkdv Z2hCb2FyZC9PdmVycmlkZS9lZGsyL01kZU1vZHVsZVBrZy9CdXMvUGNpL1BjDQo+IGlIb3N0QnJp ZGdlRHhlL0lvRmlmby5oDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3Zl cnJpZGUvZWRrMi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9QYw0KPiBpSG9zdEJyaWRnZUR4ZS9Jb0Zp Zm8uaA0KPiBAQCAtMSwyOSArMSwxNSBAQA0KPiAgLyoqIEBmaWxlDQo+ICAgIEltcGxlbWVudGF0 aW9uIG9mIElvRmlmby5oDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBE ZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyog VGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZv bGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZpbGUNCj4gICAgSS9PIEZJRk8gcm91 dGluZXMNCj4NCj4gKyAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMs IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIENvcHlyaWdodCAoYykgMjAwOCAt IDIwMTIsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLQ0K PiAtICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBsaWNl bnNlZCBhbmQgbWFkZQ0KPiBhdmFpbGFibGUNCj4gLSAgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25k aXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSB3aGljaCBhY2NvbXBhbmllcyB0aGlzDQo+IC0gIGRp c3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlIGZvdW5kIGF0 DQo+IC0gIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4g LQ0KPiAtICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0Ug T04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gLSAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJF U0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4g KyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoq Lw0KPg0KPiAtI2lmbmRlZiBfSU9fRklGT19IX0lOQ0xVREVEXw0KPiAtI2RlZmluZSBfSU9fRklG T19IX0lOQ0xVREVEXw0KPiArI2lmbmRlZiBJT19GSUZPX0hfSU5DTFVERURfXw0KPiArI2RlZmlu ZSBJT19GSUZPX0hfSU5DTFVERURfXw0KPg0KPiAgLyoqDQo+ICAgIFJlYWRzIGFuIDgtYml0IEkv TyBwb3J0IGZpZm8gaW50byBhIGJsb2NrIG9mIG1lbW9yeS4NCj4gZGlmZiAtLWdpdA0KPiBhL1Bs YXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9NZGVNb2R1bGVQa2cvQnVzL1Bj aS9QYw0KPiBpSG9zdEJyaWRnZUR4ZS9QY2lIb3N0QnJpZGdlLmMNCj4gYi9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvUGMNCj4gaUhv c3RCcmlkZ2VEeGUvUGNpSG9zdEJyaWRnZS5jDQo+IGluZGV4IDRhMDNlNjhjMjAuLjZmYzliMjJi OGYgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUv ZWRrMi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9QYw0KPiBpSG9zdEJyaWRnZUR4ZS9QY2lIb3N0QnJp ZGdlLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsy L01kZU1vZHVsZVBrZy9CdXMvUGNpL1BjDQo+IGlIb3N0QnJpZGdlRHhlL1BjaUhvc3RCcmlkZ2Uu Yw0KPiBAQCAtMSwyNSArMSwxMSBAQA0KPiAgLyoqIEBmaWxlDQo+ICAgIEltcGxlbWVudGF0aW9u IG9mIFBjaUhvc3RCcmlkZ2UuYw0KPiAtICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWlj cm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSAgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0KPiAtKiovDQo+IC0NCj4g LS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRo ZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAtLyoqIEBmaWxlDQo+ICAgIFByb3ZpZGVz IHRoZSBiYXNpYyBpbnRlcmZhY2VzIHRvIGFic3RyYWN0IGEgUENJIEhvc3QgQnJpZGdlIFJlc291 cmNlDQo+ICAgIEFsbG9jYXRpb24NCj4NCj4gKyAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2Vk IE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIENvcHly aWdodCAoYykgMjAwOCAtIDIwMTMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCj4gLQ0KPiAtICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0 ZXJpYWxzIGFyZSBsaWNlbnNlZCBhbmQgbWFkZQ0KPiBhdmFpbGFibGUNCj4gLSAgdW5kZXIgdGhl IHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSB3aGljaCBhY2NvbXBhbmll cyB0aGlzDQo+IC0gIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2Ug bWF5IGJlIGZvdW5kIGF0DQo+IC0gIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2Qt bGljZW5zZS5waHANCj4gLQ0KPiAtICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBU SEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gLSAgV0lUSE9VVCBXQVJS QU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1Mg T1IgSU1QTElFRC4NCj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQNCj4NCj4gICoqLw0KPg0KPiBAQCAtMjkwLDggKzI3Niw3IEBAIEluaXRpYWxpemVQY2lI b3N0QnJpZGdlICgNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cHJvZ3JhbW1pbmcuDQo+DQo+ICAgIEBwYXJhbVtpbl0gVGhpcyAgICAgICAgICAgICAgICBUaGUg aW5zdGFuY2UgcG9pbnRlciBvZg0KPiAtDQo+IEVGSV9QQ0lfSE9TVF9CUklER0VfUkVTT1VSQ0Vf QUxMT0NBVElPTl9QUk9UT0NPTA0KPiAtDQo+ICsNCj4gRUZJX1BDSV9IT1NUX0JSSURHRV9SRVNP VVJDRV9BTExPQ0FUSU9OX1BST1RPQ09MDQo+ICAgIEBwYXJhbVtpbl0gUGhhc2UgICAgICAgICAg ICAgICBUaGUgcGhhc2UgZHVyaW5nIGVudW1lcmF0aW9uDQo+DQo+ICAgIEByZXR2YWwgRUZJX05P VF9SRUFEWSAgICAgICAgICBUaGlzIHBoYXNlIGNhbm5vdCBiZSBlbnRlcmVkIGF0IHRoaXMgdGlt ZS4NCj4gRm9yDQo+IEBAIC0yOTksMjAgKzI4NCwxNiBAQCBJbml0aWFsaXplUGNpSG9zdEJyaWRn ZSAoDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZmlQY2lIb3N0QnJpZGdl QWxsb2NhdGVSZXNvdXJjZXMgaWYNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN1Ym1pdFJlc291cmNlcygpIGhhcyBub3QgYmVlbiBjYWxsZWQgZm9yIG9uZQ0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgbW9yZSBQQ0kgcm9vdCBicmlkZ2VzIGJlZm9y ZSB0aGlzIGNhbGwNCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJST1IgICAgICAgUHJv Z3JhbW1pbmcgZmFpbGVkIGR1ZSB0byBhIGhhcmR3YXJlDQo+IGVycm9yLg0KPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBlcnJvciBpcyB2YWxpZCBmb3IgYSBQaGFzZSBv Zg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWZpUGNpSG9zdEJyaWRnZVNl dFJlc291cmNlcy4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgSW52 YWxpZCBwaGFzZSBwYXJhbWV0ZXINCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VS Q0VTICAgVGhlIHJlcXVlc3QgY291bGQgbm90IGJlIGNvbXBsZXRlZA0KPiBkdWUgdG8gYQ0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFjayBvZiByZXNvdXJjZXMuIFRoaXMg ZXJyb3IgaXMgdmFsaWQgZm9yIGENCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBoYXNlIG9mIEVmaVBjaUhvc3RCcmlkZ2VBbGxvY2F0ZVJlc291cmNlcyBpZg0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHByZXZpb3VzbHkgc3VibWl0dGVkIHJlc291 cmNlIHJlcXVlc3RzDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5ub3Qg YmUgZnVsZmlsbGVkIG9yIHdlcmUgb25seSBwYXJ0aWFsbHkNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZ1bGZpbGxlZC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9TVUNDRVNT ICAgICAgICAgICAgVGhlIG5vdGlmaWNhdGlvbiB3YXMgYWNjZXB0ZWQgd2l0aG91dCBhbnkNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy4NCj4gICoqLw0KPiBAQCAt NTk3LDE4ICs1NzgsMTUgQEAgTm90aWZ5UGhhc2UgKA0KPiAgICBGb3IgRDk0NSBpbXBsZW1lbnRh dGlvbiwgdGhlcmUgaXMgb25seSBvbmUgcm9vdCBicmlkZ2UgaW4gUENJIGhvc3QgYnJpZGdlLg0K Pg0KPiAgICBAcGFyYW1baW5dICAgICAgIFRoaXMgICAgICAgICAgICAgIFRoZSBpbnN0YW5jZSBw b2ludGVyIG9mDQo+IC0NCj4gRUZJX1BDSV9IT1NUX0JSSURHRV9SRVNPVVJDRV9BTExPQ0FUSU9O X1BST1RPQ09MDQo+IC0NCj4gKw0KPiBFRklfUENJX0hPU1RfQlJJREdFX1JFU09VUkNFX0FMTE9D QVRJT05fUFJPVE9DT0wNCj4gICAgQHBhcmFtW2luLCBvdXRdICBSb290QnJpZGdlSGFuZGxlICBS ZXR1cm5zIHRoZSBkZXZpY2UgaGFuZGxlIG9mIHRoZSBuZXh0DQo+IFBDSQ0KPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3QgYnJpZGdlLg0KPg0KPiAgICBAcmV0dmFs IEVGSV9TVUNDRVNTICAgICAgICAgICAgSWYgcGFyYW1ldGVyIFJvb3RCcmlkZ2VIYW5kbGUgPSBO VUxMLCB0aGVuDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhl IGZpcnN0IFJvb3RicmlkZ2UgaGFuZGxlIG9mIHRoZQ0KPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3BlY2lmaWMgSG9zdCBicmlkZ2UgYW5kIHJldHVybiBFRklfU1VDQ0VTUy4N Cj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICAgQ2FuIG5vdCBmaW5kIHRo ZSBhbnkgbW9yZSByb290IGJyaWRnZSBpbg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3BlY2lmaWMgaG9zdCBicmlkZ2UuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJ RF9QQVJBTUVURVIgIFJvb3RCcmlkZ2VIYW5kbGUgaXMgbm90IGFuDQo+IEVGSV9IQU5ETEUgdGhh dCB3YXMNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybmVkIG9uIGEg cHJldmlvdXMgY2FsbCB0bw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2V0 TmV4dFJvb3RCcmlkZ2UoKS4NCj4gQEAgLTcwNCwyMSArNjgyLDE3IEBAIEdldE5leHRSb290QnJp ZGdlICgNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JyZXNw b25kaW5nIDMyLWJpdCBtZW1vcnkgcG9vbC4NCj4NCj4gICAgQHBhcmFtW2luXSAgIFRoaXMgICAg ICAgICAgICAgICBUaGUgaW5zdGFuY2UgcG9pbnRlciBvZg0KPiAtDQo+IEVGSV9QQ0lfSE9TVF9C UklER0VfUkVTT1VSQ0VfQUxMT0NBVElPTl9QUk9UT0NPTA0KPiAtDQo+ICsNCj4gRUZJX1BDSV9I T1NUX0JSSURHRV9SRVNPVVJDRV9BTExPQ0FUSU9OX1BST1RPQ09MDQo+ICAgIEBwYXJhbVtpbl0g ICBSb290QnJpZGdlSGFuZGxlICAgVGhlIGRldmljZSBoYW5kbGUgb2YgdGhlIFBDSSByb290IGJy aWRnZQ0KPiBpbg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWNoIHRo ZSBjYWxsZXIgaXMgaW50ZXJlc3RlZC4gVHlwZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVGSV9IQU5ETEUgaXMgZGVmaW5lZCBpbg0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluc3RhbGxQcm90b2NvbEludGVyZmFjZSgpIGluIHRoZSBVRUZJIDIu MA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwZWNpZmljYXRpb24uDQo+ IC0NCj4gICAgQHBhcmFtW291dF0gIEF0dHJpYnV0ZXMgICAgICAgICBUaGUgcG9pbnRlciB0byBh dHRyaWJ0ZSBvZiByb290IGJyaWRnZSwgaXQgaXMNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvdXRwdXQgcGFyYW1ldGVyDQo+DQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURf UEFSQU1FVEVSICAgQXR0cmlidXRlIHBvaW50ZXIgaXMgTlVMTA0KPiAtDQo+ICAgIEByZXR2YWwg RUZJX0lOVkFMSURfUEFSQU1FVEVSICAgUm9vdEJyaWRnZWhhbmRsZSBpcyBpbnZhbGlkLg0KPiAt DQo+ICAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgU3VjY2VzcyB0byBnZXQgYXR0 cmlidXRlIG9mIGludGVyZXN0ZWQgcm9vdA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJyaWRnZS4NCj4gICoqLw0KPiBAQCAtNzY2LDE4ICs3NDAsMTQgQEAgR2V0QXR0cmli dXRlcyAoDQo+ICAgIHJlc291cmNlIGRlc2NyaXB0b3IgZm9ybWF0Lg0KPg0KPiAgICBAcGFyYW1b aW5dICAgVGhpcyAgICAgICAgICAgICAgVGhlDQo+IC0NCj4gRUZJX1BDSV9IT1NUX0JSSURHRV9S RVNPVVJDRV9BTExPQ0FUSU9OX1BST1RPQ09MDQo+ICsNCj4gRUZJX1BDSV9IT1NUX0JSSURHRV9S RVNPVVJDRV9BTExPQ0FUSU9OX1BST1RPQ09MDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnN0YW5jZS4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgUm9vdEJyaWRnZUhhbmRs ZSAgVGhlIFBDSSBSb290IEJyaWRnZSB0byBiZSBzZXQgdXAuDQo+IC0NCj4gICAgQHBhcmFtW291 dF0gIENvbmZpZ3VyYXRpb24gICAgIFBvaW50ZXIgdG8gdGhlIHBvaW50ZXIgdG8gdGhlIFBDSSBi dXMNCj4gcmVzb3VyY2UNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2Ny aXB0b3IuDQo+DQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSIEludmFsaWQgUm9v dCBicmlkZ2UncyBoYW5kbGUNCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VT ICBGYWlsIHRvIGFsbG9jYXRlIEFDUEkgcmVzb3VyY2UgZGVzY3JpcHRvcg0KPiB0YWcuDQo+IC0N Cj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgU3VjZXNzIHRvIGFsbG9jYXRlIEFD UEkgcmVzb3VyY2UgZGVzY3JpcHRvci4NCj4gICoqLw0KPiAgRUZJX1NUQVRVUw0KPiBAQCAtODU5 LDM3ICs4MjksMjYgQEAgU3RhcnRCdXNFbnVtZXJhdGlvbiAoDQo+ICAgIEBwYXJhbVtpbl0gVGhp cyAgICAgICAgICAgICAgVGhlDQo+DQo+IEVGSV9QQ0lfSE9TVF9CUklER0VfUkVTT1VSQ0VfQUxM T0NBVElPTl9QUk9UT0NPTA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3Rh bmNlDQo+IC0NCj4gICAgQHBhcmFtW2luXSBSb290QnJpZGdlSGFuZGxlICBUaGUgUENJIFJvb3Qg QnJpZGdlIHdob3NlIGJ1cyByYW5nZSBpcyB0bw0KPiBiZQ0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHByb2dyYW1tZWQNCj4gLQ0KPiAgICBAcGFyYW1baW5dIENvbmZpZ3VyYXRp b24gICAgIFRoZSBwb2ludGVyIHRvIHRoZSBQQ0kgYnVzIHJlc291cmNlIGRlc2NyaXB0b3INCj4N Cj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFJvb3RCcmlkZ2VIYW5kbGUgaXMg bm90IGEgdmFsaWQgcm9vdA0KPiBicmlkZ2UNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGhhbmRsZS4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAg Q29uZmlndXJhdGlvbiBpcyBOVUxMLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFS QU1FVEVSICBDb25maWd1cmF0aW9uIGRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQNCj4gQUNQSQ0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4wIHJlc291cmNlIGRlc2NyaXB0 b3IuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIENvbmZpZ3VyYXRp b24gZG9lcyBub3QgaW5jbHVkZSBhIHZhbGlkDQo+IEFDUEkNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDIuMCBidXMgcmVzb3VyY2UgZGVzY3JpcHRvci4NCj4gLQ0KPiAgICBA cmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgQ29uZmlndXJhdGlvbiBpbmNsdWRlcyB2YWxp ZCBBQ1BJIDIuMA0KPiByZXNvdXJjZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGVzY3JpcHRvcnMgb3RoZXIgdGhhbiBidXMgZGVzY3JpcHRvcnMuDQo+IC0NCj4gICAgQHJl dHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIENvbmZpZ3VyYXRpb24gY29udGFpbnMgb25lIG9y IG1vcmUNCj4gaW52YWxpZA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUNQ SSByZXNvdXJjZSBkZXNjcmlwdG9ycy4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BB UkFNRVRFUiAgIkFkZHJlc3MgUmFuZ2UgTWluaW11bSIgaXMgaW52YWxpZCBmb3INCj4gdGhpcw0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdCBicmlkZ2UuDQo+IC0NCj4g ICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICJBZGRyZXNzIFJhbmdlIExlbmd0aCIg aXMgaW52YWxpZCBmb3INCj4gdGhpcw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcm9vdCBicmlkZ2UuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfREVWSUNFX0VSUk9SICAgICAg IFByb2dyYW1taW5nIGZhaWxlZCBkdWUgdG8gYSBoYXJkd2FyZQ0KPiBlcnJvci4NCj4gLQ0KPiAg ICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhlIGJ1cyByYW5nZSBmb3IgdGhlIFBD SSByb290IGJyaWRnZSB3YXMNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy b2dyYW1tZWQuDQo+ICAqKi8NCj4gQEAgLTk4OSwzNiArOTQ4LDI3IEBAIFNldEJ1c051bWJlcnMg KA0KPiAgICBAcGFyYW1baW5dIFRoaXMgICAgICAgICAgICAgIFBvaW50ZXIgdG8gdGhlDQo+DQo+ IEVGSV9QQ0lfSE9TVF9CUklER0VfUkVTT1VSQ0VfQUxMT0NBVElPTl9QUk9UT0NPTA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLg0KPiAtDQo+ICAgIEBwYXJhbVtp bl0gUm9vdEJyaWRnZUhhbmRsZSAgVGhlIFBDSSByb290IGJyaWRnZSB3aG9zZSBJL08gYW5kIG1l bW9yeQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlIHJlcXVpcmVt ZW50cyBhcmUgYmVpbmcgc3VibWl0dGVkLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gQ29uZmlndXJh dGlvbiAgICAgVGhlIHBvaW50ZXIgdG8gdGhlIFBDSSBJL08gYW5kIFBDSSBtZW1vcnkNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSBkZXNjcmlwdG9yLg0KPg0KPiAg ICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhlIEkvTyBhbmQgbWVtb3J5IHJlc291 cmNlIHJlcXVlc3RzIGZvciBhDQo+IFBDSQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcm9vdCBicmlkZ2Ugd2VyZSBhY2NlcHRlZC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9J TlZBTElEX1BBUkFNRVRFUiAgUm9vdEJyaWRnZUhhbmRsZSBpcyBub3QgYSB2YWxpZCByb290DQo+ IGJyaWRnZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlLg0KPiAt DQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBDb25maWd1cmF0aW9uIGlzIE5V TEwuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIENvbmZpZ3VyYXRp b24gZG9lcyBub3QgcG9pbnQgdG8gYSB2YWxpZA0KPiBBQ1BJDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAyLjAgcmVzb3VyY2UgZGVzY3JpcHRvci4NCj4gLQ0KPiAgICBAcmV0 dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgQ29uZmlndXJhdGlvbiBpbmNsdWRlcyByZXF1ZXN0 cyBmb3Igb25lDQo+IG9yDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3Jl IHJlc291cmNlIHR5cGVzIHRoYXQgYXJlIG5vdCBzdXBwb3J0ZWQgYnkNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRoaXMgUENJIHJvb3QgYnJpZGdlLiBUaGlzIGVycm9yIHdp bGwgaGFwcGVuDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0aGUgY2Fs bGVyIGRpZCBub3QgY29tYmluZSByZXNvdXJjZXMNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFjY29yZGluZyB0byBBdHRyaWJ1dGVzIHRoYXQgd2VyZSByZXR1cm5lZCBieQ0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2V0QWxsb2NBdHRyaWJ1dGVzKCku DQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIEFkZHJlc3MgUmFuZ2Ug TWF4aW11bSIgaXMgaW52YWxpZC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFN RVRFUiAgIkFkZHJlc3MgUmFuZ2UgTGVuZ3RoIiBpcyBpbnZhbGlkIGZvcg0KPiB0aGlzIFBDSQ0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdCBicmlkZ2UuDQo+IC0NCj4g ICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICJBZGRyZXNzIFNwYWNlIEdyYW51bGFy aXR5IiBpcyBpbnZhbGlkDQo+IGZvcg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGhpcyBQQ0kgcm9vdCBicmlkZ2UuDQo+ICAqKi8NCj4gQEAgLTExNzIsMjEgKzExMjIsMTYg QEAgU3VibWl0UmVzb3VyY2VzICgNCj4gICAgIEBwYXJhbVtpbl0gIFRoaXMgICAgICAgICAgICAg IFBvaW50ZXIgdG8gdGhlDQo+DQo+IEVGSV9QQ0lfSE9TVF9CUklER0VfUkVTT1VSQ0VfQUxMT0NB VElPTl9QUk9UT0NPTA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFu Y2UuDQo+IC0NCj4gICAgIEBwYXJhbVtpbl0gIFJvb3RCcmlkZ2VIYW5kbGUgIFRoZSBQQ0kgcm9v dCBicmlkZ2UgaGFuZGxlLiBUeXBlDQo+IEVGSV9IQU5ETEUgaXMNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRlZmluZWQgaW4gSW5zdGFsbFByb3RvY29sSW50ZXJmYWNlKCkg aW4gdGhlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRUZJIDIuMCBTcGVj aWZpY2F0aW9uLg0KPiAtDQo+ICAgICBAcGFyYW1bb3V0XSBDb25maWd1cmF0aW9uICAgICBUaGUg cG9pbnRlciB0byB0aGUgcG9pbnRlciB0byB0aGUgUENJIEkvTyBhbmQNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1lbW9yeSByZXNvdXJjZSBkZXNjcmlwdG9yLg0KPg0KPiAg ICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgIFRoZSByZXF1ZXN0ZWQgcGFyYW1ldGVy cyB3ZXJlIHJldHVybmVkLg0KPiAtDQo+ICAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRF UiAgUm9vdEJyaWRnZUhhbmRsZSBpcyBub3QgYSB2YWxpZCByb290DQo+IGJyaWRnZQ0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZS4NCj4gLQ0KPiAgICAgQHJldHZh bCBFRklfREVWSUNFX0VSUk9SICAgICAgIFByb2dyYW1taW5nIGZhaWxlZCBkdWUgdG8gYSBoYXJk d2FyZQ0KPiBlcnJvci4NCj4gLQ0KPiAgICAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAg IFRoZSByZXF1ZXN0IGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQNCj4gZHVlIHRvIGENCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWNrIG9mIHJlc291cmNlcy4NCj4gICoqLw0K PiBAQCAtMTM2MiwxMSArMTMwNyw5IEBAIEdldFByb3Bvc2VkUmVzb3VyY2VzICgNCj4gICAgQHBh cmFtIFRoaXMgICAgICAgICAgICAgIFBvaW50ZXIgdG8gdGhlDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFRklfUENJX0hPU1RfQlJJREdFX1JFU09VUkNFX0FMTE9DQVRJT05fUFJPVE9D T0wNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLg0KPiAtDQo+ICAgIEBw YXJhbSBSb290QnJpZGdlSGFuZGxlICBUaGUgYXNzb2NpYXRlZCBQQ0kgcm9vdCBicmlkZ2UgaGFu ZGxlLiBUeXBlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfSEFORExFIGlzIGRl ZmluZWQgaW4gSW5zdGFsbFByb3RvY29sSW50ZXJmYWNlKCkNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGluIHRoZSBVRUZJIDIuMCBTcGVjaWZpY2F0aW9uLg0KPiAtDQo+ICAgIEBwYXJh bSBQY2lBZGRyZXNzICAgICAgICBUaGUgYWRkcmVzcyBvZiB0aGUgUENJIGRldmljZSBvbiB0aGUg UENJIGJ1cy4gVGhpcw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyBjYW4g YmUgcGFzc2VkIHRvIHRoZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1BDSV9S T09UX0JSSURHRV9JT19QUk9UT0NPTCBtZW1iZXIgZnVuY3Rpb25zIHRvDQo+IEBAIC0xMzc0LDE4 ICsxMzE3LDE0IEBAIEdldFByb3Bvc2VkUmVzb3VyY2VzICgNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNlZSBUYWJsZSAxMi0xIGluIHRoZSBVRUZJIDIuMCBTcGVjaWZpY2F0aW9uIGZv ciB0aGUNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluaXRpb24gb2YNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9QQ0lfUk9PVF9CUklER0VfSU9fUFJPVE9DT0xf UENJX0FERFJFU1MuDQo+IC0NCj4gICAgQHBhcmFtIFBoYXNlICAgICAgICAgICAgIFRoZSBwaGFz ZSBvZiB0aGUgUENJIGRldmljZSBlbnVtZXJhdGlvbi4NCj4NCj4gICAgQHJldHZhbCBFRklfU1VD Q0VTUyAgICAgICAgICAgICAgVGhlIHJlcXVlc3RlZCBwYXJhbWV0ZXJzIHdlcmUgcmV0dXJuZWQu DQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICAgUm9vdEJyaWRnZUhh bmRsZSBpcyBub3QgYSB2YWxpZCByb290DQo+IGJyaWRnZQ0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBoYW5kbGUuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9Q QVJBTUVURVIgICAgUGhhc2UgaXMgbm90IGEgdmFsaWQgcGhhc2UgdGhhdCBpcw0KPiBkZWZpbmVk DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluDQo+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1BDSV9DT05UUk9MTEVSX1JFU09VUkNFX0FMTE9D QVRJT05fUEhBU0UuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfREVWSUNFX0VSUk9SICAgICAgICAg UHJvZ3JhbW1pbmcgZmFpbGVkIGR1ZSB0byBhIGhhcmR3YXJlDQo+IGVycm9yLg0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgUENJIGVudW1lcmF0b3Igc2hvdWxkIG5v dCBlbnVtZXJhdGUgdGhpcw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk ZXZpY2UsIGluY2x1ZGluZyBpdHMgY2hpbGQgZGV2aWNlcyBpZiBpdCBpcw0KPiBkaWZmIC0tZ2l0 DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL01kZU1vZHVsZVBr Zy9CdXMvUGNpL1BjDQo+IGlIb3N0QnJpZGdlRHhlL1BjaUhvc3RCcmlkZ2UuaA0KPiBiL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9Q Yw0KPiBpSG9zdEJyaWRnZUR4ZS9QY2lIb3N0QnJpZGdlLmgNCj4gaW5kZXggYTZhMTRlOGJhYy4u YjEzYzhjMTYxMiAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9P dmVycmlkZS9lZGsyL01kZU1vZHVsZVBrZy9CdXMvUGNpL1BjDQo+IGlIb3N0QnJpZGdlRHhlL1Bj aUhvc3RCcmlkZ2UuaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJy aWRlL2VkazIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvUGMNCj4gaUhvc3RCcmlkZ2VEeGUvUGNpSG9z dEJyaWRnZS5oDQo+IEBAIC0xLDI4ICsxLDE1IEBADQo+ICAvKiogQGZpbGUNCj4gICAgSW1wbGVt ZW50YXRpb24gb2YgUGNpSG9zdEJyaWRnZS5oDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZh bmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8N Cj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQg dW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZpbGUNCj4gICAg VGhlIEhlYWRlciBmaWxlIG9mIHRoZSBQY2kgSG9zdCBCcmlkZ2UgRHJpdmVyDQo+DQo+ICsgIENv cHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiAgICBDb3B5cmlnaHQgKGMpIDIwMDggLSAyMDEwLCBJbnRlbCBDb3Jw b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsgIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+IC0gIFRoaXMgcHJvZ3JhbSBhbmQgdGhl IGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlDQo+IGF2YWlsYWJs ZQ0KPiAtICB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNl IHdoaWNoIGFjY29tcGFuaWVzIHRoaXMNCj4gLSAgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4 dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUgZm91bmQgYXQNCj4gLSAgaHR0cDovL29wZW5zb3VyY2Uu b3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiAtDQo+IC0gIFRIRSBQUk9HUkFNIElTIERJ U1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0K PiAtICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBF SVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiAgKiovDQo+DQo+IC0jaWZuZGVmIF9QQ0lf SE9TVF9CUklER0VfSF8NCj4gLSNkZWZpbmUgX1BDSV9IT1NUX0JSSURHRV9IXw0KPiArI2lmbmRl ZiBQQ0lfSE9TVF9CUklER0VfSF9fDQo+ICsjZGVmaW5lIFBDSV9IT1NUX0JSSURHRV9IX18NCj4N Cj4gICNpbmNsdWRlIDxQaUR4ZS5oPg0KPg0KPiBAQCAtMTY0LDcgKzE1MSw2IEBAIHR5cGVkZWYg c3RydWN0IHsNCj4NCj4gICAgQHBhcmFtW2luXSBUaGlzICAgICAgICAgICAgICAgIFRoZSBpbnN0 YW5jZSBwb2ludGVyIG9mDQo+DQo+IEVGSV9QQ0lfSE9TVF9CUklER0VfUkVTT1VSQ0VfQUxMT0NB VElPTl9QUk9UT0NPTA0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gUGhhc2UgICAgICAgICAgICAgICBU aGUgcGhhc2UgZHVyaW5nIGVudW1lcmF0aW9uDQo+DQo+ICAgIEByZXR2YWwgRUZJX05PVF9SRUFE WSAgICAgICAgICBUaGlzIHBoYXNlIGNhbm5vdCBiZSBlbnRlcmVkIGF0IHRoaXMgdGltZS4NCj4g Rm9yDQo+IEBAIC0yMTUsNyArMjAxLDYgQEAgTm90aWZ5UGhhc2UgKA0KPg0KPiAgICBAcGFyYW1b aW5dICAgICAgIFRoaXMgICAgICAgICAgICAgIFRoZSBpbnN0YW5jZSBwb2ludGVyIG9mDQo+DQo+ IEVGSV9QQ0lfSE9TVF9CUklER0VfUkVTT1VSQ0VfQUxMT0NBVElPTl9QUk9UT0NPTA0KPiAtDQo+ ICAgIEBwYXJhbVtpbiwgb3V0XSAgUm9vdEJyaWRnZUhhbmRsZSAgUmV0dXJucyB0aGUgZGV2aWNl IGhhbmRsZSBvZiB0aGUgbmV4dA0KPiBQQ0kNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByb290IGJyaWRnZS4NCj4NCj4gQEAgLTI3OCwxMyArMjYzLDExIEBAIEdldE5l eHRSb290QnJpZGdlICgNCj4NCj4gICAgQHBhcmFtW2luXSAgIFRoaXMgICAgICAgICAgICAgICBU aGUgaW5zdGFuY2UgcG9pbnRlciBvZg0KPg0KPiBFRklfUENJX0hPU1RfQlJJREdFX1JFU09VUkNF X0FMTE9DQVRJT05fUFJPVE9DT0wNCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgUm9vdEJyaWRnZUhh bmRsZSAgIFRoZSBkZXZpY2UgaGFuZGxlIG9mIHRoZSBQQ0kgcm9vdCBicmlkZ2UNCj4gaW4NCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGljaCB0aGUgY2FsbGVyIGlzIGlu dGVyZXN0ZWQuIFR5cGUNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklf SEFORExFIGlzIGRlZmluZWQgaW4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJbnN0YWxsUHJvdG9jb2xJbnRlcmZhY2UoKSBpbiB0aGUgVUVGSSAyLjANCj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTcGVjaWZpY2F0aW9uLg0KPiAtDQo+ICAgIEBwYXJh bVtvdXRdICBBdHRyaWJ1dGVzICAgICAgICAgVGhlIHBvaW50ZXIgdG8gYXR0cmlidGUgb2Ygcm9v dCBicmlkZ2UsIGl0IGlzDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0 cHV0IHBhcmFtZXRlcg0KPg0KPiBAQCAtMzEzLDkgKzI5Niw3IEBAIEdldEF0dHJpYnV0ZXMgKA0K PiAgICBAcGFyYW1baW5dICAgVGhpcyAgICAgICAgICAgICAgVGhlDQo+DQo+IEVGSV9QQ0lfSE9T VF9CUklER0VfUkVTT1VSQ0VfQUxMT0NBVElPTl9QUk9UT0NPTA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuDQo+IC0NCj4gICAgQHBhcmFtW2luXSAgIFJvb3RC cmlkZ2VIYW5kbGUgIFRoZSBQQ0kgUm9vdCBCcmlkZ2UgdG8gYmUgc2V0IHVwLg0KPiAtDQo+ICAg IEBwYXJhbVtvdXRdICBDb25maWd1cmF0aW9uICAgICBQb2ludGVyIHRvIHRoZSBwb2ludGVyIHRv IHRoZSBQQ0kgYnVzDQo+IHJlc291cmNlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZXNjcmlwdG9yLg0KPg0KPiBAQCAtMzQ1LDEwICszMjYsOCBAQCBTdGFydEJ1c0VudW1l cmF0aW9uICgNCj4gICAgQHBhcmFtW2luXSBUaGlzICAgICAgICAgICAgICBUaGUNCj4NCj4gRUZJ X1BDSV9IT1NUX0JSSURHRV9SRVNPVVJDRV9BTExPQ0FUSU9OX1BST1RPQ09MDQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UNCj4gLQ0KPiAgICBAcGFyYW1baW5dIFJv b3RCcmlkZ2VIYW5kbGUgIFRoZSBQQ0kgUm9vdCBCcmlkZ2Ugd2hvc2UgYnVzIHJhbmdlIGlzIHRv DQo+IGJlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbW1lZA0KPiAt DQo+ICAgIEBwYXJhbVtpbl0gQ29uZmlndXJhdGlvbiAgICAgVGhlIHBvaW50ZXIgdG8gdGhlIFBD SSBidXMgcmVzb3VyY2UgZGVzY3JpcHRvcg0KPg0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BB UkFNRVRFUiAgUm9vdEJyaWRnZUhhbmRsZSBpcyBub3QgYSB2YWxpZCByb290DQo+IGJyaWRnZQ0K PiBAQCAtNDAwLDEwICszNzksOCBAQCBTZXRCdXNOdW1iZXJzICgNCj4gICAgQHBhcmFtW2luXSBU aGlzICAgICAgICAgICAgICBQb2ludGVyIHRvIHRoZQ0KPg0KPiBFRklfUENJX0hPU1RfQlJJREdF X1JFU09VUkNFX0FMTE9DQVRJT05fUFJPVE9DT0wNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnN0YW5jZS4NCj4gLQ0KPiAgICBAcGFyYW1baW5dIFJvb3RCcmlkZ2VIYW5kbGUg IFRoZSBQQ0kgcm9vdCBicmlkZ2Ugd2hvc2UgSS9PIGFuZCBtZW1vcnkNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSByZXF1aXJlbWVudHMgYXJlIGJlaW5nIHN1Ym1p dHRlZC4NCj4gLQ0KPiAgICBAcGFyYW1baW5dIENvbmZpZ3VyYXRpb24gICAgIFRoZSBwb2ludGVy IHRvIHRoZSBQQ0kgSS9PIGFuZCBQQ0kgbWVtb3J5DQo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzb3VyY2UgZGVzY3JpcHRvci4NCj4NCj4gQEAgLTQ1NSwxMSArNDMyLDkgQEAg U3VibWl0UmVzb3VyY2VzICgNCj4gICAgIEBwYXJhbVtpbl0gIFRoaXMgICAgICAgICAgICAgIFBv aW50ZXIgdG8gdGhlDQo+DQo+IEVGSV9QQ0lfSE9TVF9CUklER0VfUkVTT1VSQ0VfQUxMT0NBVElP Tl9QUk9UT0NPTA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2Uu DQo+IC0NCj4gICAgIEBwYXJhbVtpbl0gIFJvb3RCcmlkZ2VIYW5kbGUgIFRoZSBQQ0kgcm9vdCBi cmlkZ2UgaGFuZGxlLiBUeXBlDQo+IEVGSV9IQU5ETEUgaXMNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRlZmluZWQgaW4gSW5zdGFsbFByb3RvY29sSW50ZXJmYWNlKCkgaW4g dGhlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRUZJIDIuMCBTcGVjaWZp Y2F0aW9uLg0KPiAtDQo+ICAgICBAcGFyYW1bb3V0XSBDb25maWd1cmF0aW9uICAgICBUaGUgcG9p bnRlciB0byB0aGUgcG9pbnRlciB0byB0aGUgUENJIEkvTyBhbmQNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1lbW9yeSByZXNvdXJjZSBkZXNjcmlwdG9yLg0KPg0KPiBAQCAt NDk0LDExICs0NjksOSBAQCBHZXRQcm9wb3NlZFJlc291cmNlcyAoDQo+ICAgIEBwYXJhbSBUaGlz ICAgICAgICAgICAgICBQb2ludGVyIHRvIHRoZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRUZJX1BDSV9IT1NUX0JSSURHRV9SRVNPVVJDRV9BTExPQ0FUSU9OX1BST1RPQ09MDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS4NCj4gLQ0KPiAgICBAcGFyYW0gUm9v dEJyaWRnZUhhbmRsZSAgVGhlIGFzc29jaWF0ZWQgUENJIHJvb3QgYnJpZGdlIGhhbmRsZS4gVHlw ZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX0hBTkRMRSBpcyBkZWZpbmVkIGlu IEluc3RhbGxQcm90b2NvbEludGVyZmFjZSgpDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbiB0aGUgVUVGSSAyLjAgU3BlY2lmaWNhdGlvbi4NCj4gLQ0KPiAgICBAcGFyYW0gUGNpQWRk cmVzcyAgICAgICAgVGhlIGFkZHJlc3Mgb2YgdGhlIFBDSSBkZXZpY2Ugb24gdGhlIFBDSSBidXMu IFRoaXMNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MgY2FuIGJlIHBhc3Nl ZCB0byB0aGUNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9QQ0lfUk9PVF9CUklE R0VfSU9fUFJPVE9DT0wgbWVtYmVyIGZ1bmN0aW9ucyB0bw0KPiBAQCAtNTA2LDcgKzQ3OSw2IEBA IEdldFByb3Bvc2VkUmVzb3VyY2VzICgNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNl ZSBUYWJsZSAxMi0xIGluIHRoZSBVRUZJIDIuMCBTcGVjaWZpY2F0aW9uIGZvciB0aGUNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluaXRpb24gb2YNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVGSV9QQ0lfUk9PVF9CUklER0VfSU9fUFJPVE9DT0xfUENJX0FERFJFU1Mu DQo+IC0NCj4gICAgQHBhcmFtIFBoYXNlICAgICAgICAgICAgIFRoZSBwaGFzZSBvZiB0aGUgUENJ IGRldmljZSBlbnVtZXJhdGlvbi4NCj4NCj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAg ICAgICAgVGhlIHJlcXVlc3RlZCBwYXJhbWV0ZXJzIHdlcmUgcmV0dXJuZWQuDQo+IGRpZmYgLS1n aXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvTWRlTW9kdWxl UGtnL0J1cy9QY2kvUGMNCj4gaUhvc3RCcmlkZ2VEeGUvUGNpSG9zdEJyaWRnZS51bmkNCj4gYi9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvTWRlTW9kdWxlUGtnL0J1cy9Q Y2kvUGMNCj4gaUhvc3RCcmlkZ2VEeGUvUGNpSG9zdEJyaWRnZS51bmkNCj4gaW5kZXgNCj4gOWI1 YmVkYjhmY2IyNGViZWUxZWM1NzlkZjViMDI4YjljZmM1YTk5NS4uMzExYTFjNDUwZDBmYWE1MzE3 YWQzYjI1DQo+IDQzOTBmODY2ZTgxM2U3MTIgMTAwNjQ0DQo+IEdJVCBiaW5hcnkgcGF0Y2gNCj4g ZGVsdGEgMjkNCj4gbGNtZXctK3tIRGFYZmhNP2lIVmIlQ1JSeUlLRT5RSVMmcCR7XjlnbntDSUdy RDMhREd8DQo+DQo+IGxpdGVyYWwgMjU1OA0KPiB6Y21kVXdVMmhVVzZvJHtXaVRgMGpaYDcyZjha UyZeakleTDcpanxyNWRTIXFELQ0KPiBHcTtaa0prUXFeP0E9U3lNPHVtDQo+IHpnJT51UC0NCj4g SStPYTx+P1dMXlJkNXZSOyoleV9YU1V8X2NwWkQjeH02MF81YFcrOGFBPE9tcmFtUVpFMFFKKU1t XkINCj4gei15ej9ZXl51JmdUQ2pJeWI1QHImTE8tDQo+IHo7ZFRFWVY7Mnh1V1pGakNhdk1iSTdk dUdTPm9iaTwlQFY7aE4xP0w4Zg0KPiB6USFFVWEybTFfS3BIbm1ESERvdXc5JDxNTk55OVowS1JM JGhhMVZkc0RgXmdwLVopLWpafUlvcy0NCj4gdEYrUCZBbj4mDQo+IHopeW5wMVpEWjxaJVVIU093 NzV1fUcydEQ4ZXE/UDxsPH5kSE9+Jn1XVEF5ZStZdVRCfEteJWojVXZVbyMNCj4gU3FEeTENCj4g elBLUGB1ZndnIVRnRFUmbD4lKVdRaWlCN254bFJ8SUcyOHxpVVJqVTFrZ29qMyE2VHdHYk19YG1t NXJJN25jMXgpDQo+IHpqTSZwRHY3WCZKJHIqWSRVKnh5Xj4yYyRRQlY+THItDQo+IFFwMGJGeSh2 dFV9aH5uIWQ+KSlHVWFCPE9SV2FYVj1nTjkNCj4gemopX09ldnJrYmRALQ0KPiBNKVNSKkxxVlk+ ZlFJRzF6MUNjWCE/Tl5TVXsoSD9VRldSVGFJWWllZzxUMDsmaWglKmhPVw0KPiB6aSgzOVNIQik1 bUhSdi0NCj4gVUJed2owcylraitHMkBnNiUzZ0lCP2NKQFQ5RldLPiNWY2h0Q2dNZjN4PTU3O280 RzA2DQo+IHpoX0JPR01SZEokc0dvSmMyNlJye1hnbHthVE5CVThoJDdGVm5SPDxEdThoc1BVQSNl Nz9QMDRzNnUjYmkxXg0KPiA0O04NCj4genlVcDlDKyhMLQ0KPiBMJUJvenApSUR8VTkpODlpdEdF PGRJJUZzN1l4NFJCVEg5VzJHTHh+WFBTQTdTUk9jQjdAQGFYRw0KPiB6UyN7dGd1e2lYO3VpbCho elZ6b192azdQQ002fE5Te3NLdTQtIUk5IVAzczlMU0c8dnZJTzt3cFI+IUxyeXwteH0NCj4gemBC diVkPmZkZD9INkpAajgmdlpKK0kzYHMqJUBPVWQ0Vyh3cCtSUVgoUCVxemxiUVk+YGohfWxFQSRm TWsqfg0KPiBHZA0KPiB6JndVSF9nPzsoZWJjPFM3dV9WdlZrVCphVE0kQGdJdnkkKFUken0mRj5C d3JQXiNOVS17S2swN2p5elctDQo+ICo0SXxEDQo+IHpUaCNmI000U1M+MFQoVXVOO1lkZHlPI2Rm I1VEZXc/JmFCfFVLI0wwe0N4K2gzQzBDemJ5aWpYTWBAPURUDQo+IE9JV04NCj4gel56Mz12Mnh+ PkE9d0JXQEJnJGFPKC1Ob3UtDQo+ICVlbGh4YylzYSVCblZ1REMxZ3JCekpOMXhPcXY0bl5AOE44 fVE8ag0KPiBBc3tqQjENCj4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2do Qm9hcmQvT3ZlcnJpZGUvZWRrMi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9QYw0KPiBpSG9zdEJyaWRn ZUR4ZS9QY2lIb3N0QnJpZGdlRHhlLmluZg0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv T3ZlcnJpZGUvZWRrMi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9QYw0KPiBpSG9zdEJyaWRnZUR4ZS9Q Y2lIb3N0QnJpZGdlRHhlLmluZg0KPiBpbmRleCBhYzFkMWU4YWZjLi4wNWVlYzg0ZDdlIDEwMDY0 NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvTWRl TW9kdWxlUGtnL0J1cy9QY2kvUGMNCj4gaUhvc3RCcmlkZ2VEeGUvUGNpSG9zdEJyaWRnZUR4ZS5p bmYNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL01k ZU1vZHVsZVBrZy9CdXMvUGNpL1BjDQo+IGlIb3N0QnJpZGdlRHhlL1BjaUhvc3RCcmlkZ2VEeGUu aW5mDQo+IEBAIC0xLDI1ICsxLDExIEBADQo+ICAjIyBAZmlsZQ0KPiAgIyBQbGF0Zm9ybSBCb290 IE1hbmFnZXIgTGliIE1vZHVsZQ0KPiAtIw0KPiAtIyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5j ZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSMgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLSMNCj4gLSMjDQo+ IC0jIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRo ZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4gLSMjIEBmaWxlDQo+ICAjICBUaGUgYmFzaWMgaW50ZXJm YWNlcyBpbXBsZW1lbnRhdGlvbiB0byBhIHNpbmdsZSBzZWdtZW50IFBDSSBIb3N0IEJyaWRnZQ0K PiAgIyAgZHJpdmVyLg0KPiAgIw0KPiAtIyAgQ29weXJpZ2h0IChjKSAyMDA4IC0gMjAxNCwgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtIw0KPiAtIyAgVGhp cyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbGljZW5zZWQgYW5k IG1hZGUNCj4gYXZhaWxhYmxlDQo+IC0jICB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMg b2YgdGhlIEJTRCBMaWNlbnNlIHdoaWNoIGFjY29tcGFuaWVzDQo+IHRoaXMNCj4gLSMgIGRpc3Ry aWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlIGZvdW5kIGF0DQo+ IC0jICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQo+IC0j DQo+IC0jICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0Ug T04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gLSMgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBS RVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9SDQo+IC0jICBJTVBM SUVELg0KPiArIyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5j LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyMgQ29weXJpZ2h0IChjKSAyMDA4IC0gMjAx NCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArIyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgIw0KPiAgIyMNCj4N Cj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRr Mi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9QYw0KPiBpSG9zdEJyaWRnZUR4ZS9QY2lIb3N0QnJpZGdl RXh0cmEudW5pDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL01k ZU1vZHVsZVBrZy9CdXMvUGNpL1BjDQo+IGlIb3N0QnJpZGdlRHhlL1BjaUhvc3RCcmlkZ2VFeHRy YS51bmkNCj4gaW5kZXgNCj4gOThiODI4NTlhMjZjMzIzNzNhNzBjYzdiYTI0MDgyZTYwYzUxZjhk ZS4uODE5YTA3N2Y1NDA2NGRiYmQ1ZTI2MGENCj4gYWVjZGI0NjE1MTQ5ZWVlNDcgMTAwNjQ0DQo+ IEdJVCBiaW5hcnkgcGF0Y2gNCj4gZGVsdGEgMjUNCj4gaGNtZXl4d35LODsmRXkhU2hLWH5VQ0xk diVHK0JlT1YpNjtMTyNxWHAzbnVebw0KPg0KPiBsaXRlcmFsIDE5MTQNCj4gemNtYmBJVH44Qkg1 UWdYNCNRJCZ0SCk/M3s+eHZqNyZ7WjBSSFo0VEZCSEwyUkNNYD5yd3VuRG9lY3N0VXlPDQo+IGUt ZQ0KPiB6cnJHbGBYWGMkYkA2NEowYE1xdTE3V2lLQTMtLQ0KPiB3X0VWRyRTPzcyTmRzPFc9bT9i PkI/PFg1KF5sck9XS2J6cjw7DQo+IHo/QXNYMDBsT1F7X04tdWNaZDNGVmAtIUIkcmZvfHN2S3FQ WnUjZXJmLU1RNyZGM31KNiF1SVZZXklMbihfbnlAKg0KPiB6aCUwY2VASEpyXz49M2p1UnlwZXF2 WCQ+QSNJU3s9PnpaeDFvRHFNeGhreFRjWC08JT85SXRJM2g8c29sQUJrfHQNCj4gejRMZiNmRSZF cGF4Tl9TVFVlMik9RTE3ZEF5ZEJXQFk9fWpSKmp3Q1dNJT5IRnFWTjJiSGojcmsyaFlRew0KPiBO Nl5UUQ0KPiB6O1V2UjQpWSVFXyNsczkjYFBiUFA5PCl8WSNRKVRGUWdtaTs4KD9eOEJpMkg/XmN4 NHloLT9iWjdjUH5MKy0tOFoNCj4gemIlWkhydkomZyV0PWx6MnxFYD47dDBLVC00eCp5Vj57a2Bk Jj9ga1pvQkVCRVl2b3o+QSU+c2c/RDZeOypZKSRwDQo+IHotDQo+IHFqVCQ2eEQpazNPTGMmKWJz elRtTF59PHB5JTkxS0lWOWhIO1A9UmFHPD5EaDNWfEJXXzwyWkRLaTxYOEdKUA0KPiBMDQo+IHpr Um54eypSdnZ+QkVHRTRUMWZyUD11TX1kZWM5PDlLRnFwIURUcVVyNmoybkpHJjhTbXQjdyt5Xztg YnwmWHYNCj4gI20NCj4gejcxRzNkPiROKig2ej0rTUdrZ2tCU1k+XzdtcFhgVUp0RUg3WE94Izw7 I0tpcWE4a1ojTVhtbndGc2dOQzANCj4gezJTJg0KPiB6NFU4KUx5eThHSEUkJVVeLQ0KPiBtQFNW SktwPSRtQ0JsemVuSXBUeHxrfHYlSzVzRjh6ZHVRS2oqISNwUl9AXzxjcGxkDQo+IHpTQCRgaEtk TzVVdFk9PnNjajs7QlR0bWk9JiZObytiZHdYYjZKJndhNXAjbVBMMT9uanJMcSQ9aEt9NTByTw0K PiB2NXcNCj4gemdJVHlqLShjU0p5Pj9yNVl7OTtCdURFKmNRVHRzeURZN0h2VH5MTTViTUZJb2lk ezFLSlZyfThAPioock1wdT9VDQo+IHpuNz93TyRrbSZaJTFlMlJndzdncTh1VHQpXnI8V1A/Nyh+ RUV6Uz5uPHpgKHU+S31tISNOQW9OWlhjOUVlUw0KPiA8VHcNCj4gemQhVXx4cFArTEBsIXZUQHoz RmQ3Nyl6PXt8NiMkYXBvUjkoSDgjTjlDJDNRYzxCODRZS1RvK2sxeD5UMGBoTw0KPiB8bA0KPiBJ VDxHIXAzcndYY0d5bmhxDQo+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL092ZXJyaWRlL2VkazIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvUGMNCj4gaUhvc3RCcmlk Z2VEeGUvUGNpUm9vdEJyaWRnZUlvLmMNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092 ZXJyaWRlL2VkazIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvUGMNCj4gaUhvc3RCcmlkZ2VEeGUvUGNp Um9vdEJyaWRnZUlvLmMNCj4gaW5kZXggNzM0OWQwYzI5MS4uYjcwZTQ3NDVjYyAxMDA2NDQNCj4g LS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL01kZU1vZHVs ZVBrZy9CdXMvUGNpL1BjDQo+IGlIb3N0QnJpZGdlRHhlL1BjaVJvb3RCcmlkZ2VJby5jDQo+ICsr Kw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9NZGVNb2R1bGVQ a2cvQnVzL1BjaS9QYw0KPiBpSG9zdEJyaWRnZUR4ZS9QY2lSb290QnJpZGdlSW8uYw0KPiBAQCAt MSwyNCArMSwxMSBAQA0KPiAgLyoqIEBmaWxlDQo+ICAgIEltcGxlbWVudGF0aW9uIG9mIFBjaVJv b3RCcmlkZ2VJby5jDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZp Y2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhp cyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxv d2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZpbGUNCj4gICAgUENJIFJvb3QgQnJpZGdl IElvIFByb3RvY29sIGltcGxlbWVudGF0aW9uDQo+DQo+ICsgIENvcHlyaWdodCAoQykgMjAyNCBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAg ICBDb3B5cmlnaHQgKGMpIDIwMDggLSAyMDEyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+DQo+IC0gIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRl cmlhbHMgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlDQo+IGF2YWlsYWJsZQ0KPiAtICB1bmRlciB0aGUg dGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlIHdoaWNoIGFjY29tcGFuaWVz IHRoaXMNCj4gLSAgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBt YXkgYmUgZm91bmQgYXQNCj4gLSAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1s aWNlbnNlLnBocA0KPiAtDQo+IC0gIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRI RSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLCBXSVRIT1VUDQo+IC0gIFdBUlJB TlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUg0K PiBJTVBMSUVELg0KPiAgKiovDQo+DQo+ICAjaW5jbHVkZSAiUGNpSG9zdEJyaWRnZS5oIg0KPiBA QCAtNTcsMzUgKzQ0LDI1IEBAIFJFU09VUkNFX0NPTkZJR1VSQVRJT04gIENvbmZpZ3VyYXRpb24g PSB7DQo+ICAgIGlzIGVxdWFsIHRvIFZhbHVlLg0KPg0KPiAgICBAcGFyYW1baW5dICAgVGhpcyAg ICAgIEEgcG9pbnRlciB0byB0aGUNCj4gRUZJX1BDSV9ST09UX0JSSURHRV9JT19QUk9UT0NPTC4N Cj4gLQ0KPiAgICBAcGFyYW1baW5dICAgV2lkdGggICAgIFNpZ25pZmllcyB0aGUgd2lkdGggb2Yg dGhlIG1lbW9yeSBvcGVyYXRpb25zLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBBZGRyZXNzICAg VGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgbWVtb3J5IG9wZXJhdGlvbnMuIFRoZQ0KPiBjYWxsZXIN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICBpcyByZXNwb25zaWJsZSBmb3IgYWxpZ25pbmcg QWRkcmVzcyBpZiByZXF1aXJlZC4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgTWFzayAgICAgIE1h c2sgdXNlZCBmb3IgdGhlIHBvbGxpbmcgY3JpdGVyaWEuIEJ5dGVzIGFib3ZlIFdpZHRoDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW4gTWFzayBhcmUgaWdub3JlZC4gVGhlIGJpdHMgaW4g dGhlIGJ5dGVzIGJlbG93IFdpZHRoDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2gg YXJlIHplcm8gaW4gTWFzayBhcmUgaWdub3JlZCB3aGVuIHBvbGxpbmcgdGhlDQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWVtb3J5IGFkZHJlc3MuDQo+IC0NCj4gICAgQHBhcmFtW2luXSAg IFZhbHVlICAgICBUaGUgY29tcGFyaXNvbiB2YWx1ZSB1c2VkIGZvciB0aGUgcG9sbGluZyBleGl0 DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JpdGVyaWEuDQo+IC0NCj4gICAgQHBhcmFt W2luXSAgIERlbGF5ICAgICBUaGUgbnVtYmVyIG9mIDEwMCBucyB1bml0cyB0byBwb2xsLiBOb3Rl IHRoYXQgdGltZXINCj4gICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgbWF5IGJl IG9mIHBvb3JlciBncmFudWxhcml0eS4NCj4gLQ0KPiAgICBAcGFyYW1bb3V0XSAgUmVzdWx0ICAg IFBvaW50ZXIgdG8gdGhlIGxhc3QgdmFsdWUgcmVhZCBmcm9tIHRoZSBtZW1vcnkNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi4NCj4NCj4gICAgQHJldHZhbCBFRklfU1VDQ0VT UyAgICAgICAgICAgIFRoZSBsYXN0IGRhdGEgcmV0dXJuZWQgZnJvbSB0aGUgYWNjZXNzIG1hdGNo ZWQNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBwb2xsIGV4aXQgY3Jp dGVyaWEuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFdpZHRoIGlz IGludmFsaWQuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFJlc3Vs dCBpcyBOVUxMLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX1RJTUVPVVQgICAgICAgICAgICBEZWxh eSBleHBpcmVkIGJlZm9yZSBhIG1hdGNoIG9jY3VycmVkLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJ X09VVF9PRl9SRVNPVVJDRVMgICBUaGUgcmVxdWVzdCBjb3VsZCBub3QgYmUgY29tcGxldGVkDQo+ IGR1ZSB0byBhDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWNrIG9mIHJl c291cmNlcy4NCj4gICoqLw0KPiBAQCAtMTEzLDM0ICs5MCwyMyBAQCBSb290QnJpZGdlSW9Qb2xs TWVtICgNCj4gICAgVmFsdWUuDQo+DQo+ICAgIEBwYXJhbVtpbl0gVGhpcyAgICAgIEEgcG9pbnRl ciB0byB0aGUgRUZJX1BDSV9ST09UX0JSSURHRV9JT19QUk9UT0NPTC4NCj4gLQ0KPiAgICBAcGFy YW1baW5dIFdpZHRoICAgICBTaWduaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBJL08gb3BlcmF0aW9u cy4NCj4gLQ0KPiAgICBAcGFyYW1baW5dIEFkZHJlc3MgICBUaGUgYmFzZSBhZGRyZXNzIG9mIHRo ZSBJL08gb3BlcmF0aW9ucy4gVGhlIGNhbGxlciBpcw0KPiAgICAgICAgICAgICAgICAgICAgICAg ICByZXNwb25zaWJsZSBmb3IgYWxpZ25pbmcgQWRkcmVzcyBpZiByZXF1aXJlZC4NCj4gLQ0KPiAg ICBAcGFyYW1baW5dIE1hc2sgICAgICBNYXNrIHVzZWQgZm9yIHRoZSBwb2xsaW5nIGNyaXRlcmlh LiBCeXRlcyBhYm92ZSBXaWR0aA0KPiBpbg0KPiAgICAgICAgICAgICAgICAgICAgICAgICBNYXNr IGFyZSBpZ25vcmVkLiBUaGUgYml0cyBpbiB0aGUgYnl0ZXMgYmVsb3cgV2lkdGgNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlIHplcm8gaW4gTWFzayBhcmUgaWdub3JlZCB3aGVu IHBvbGxpbmcgdGhlIEkvTw0KPiAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzLg0KPiAt DQo+ICAgIEBwYXJhbVtpbl0gVmFsdWUgICAgIFRoZSBjb21wYXJpc29uIHZhbHVlIHVzZWQgZm9y IHRoZSBwb2xsaW5nIGV4aXQgY3JpdGVyaWEuDQo+IC0NCj4gLQ0KPiAgICBAcGFyYW1baW5dIERl bGF5ICAgICBUaGUgbnVtYmVyIG9mIDEwMCBucyB1bml0cyB0byBwb2xsLiBOb3RlIHRoYXQgdGlt ZXINCj4gICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlIG1heSBiZSBvZiBwb29yZXIg Z3JhbnVsYXJpdHkuDQo+IC0NCj4gICAgQHBhcmFtW291dF0gUmVzdWx0ICAgUG9pbnRlciB0byB0 aGUgbGFzdCB2YWx1ZSByZWFkIGZyb20gdGhlIG1lbW9yeQ0KPiBsb2NhdGlvbi4NCj4NCj4gICAg QHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgIFRoZSBsYXN0IGRhdGEgcmV0dXJuZWQgZnJv bSB0aGUgYWNjZXNzIG1hdGNoZWQNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRoZSBwb2xsIGV4aXQgY3JpdGVyaWEuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9Q QVJBTUVURVIgIFdpZHRoIGlzIGludmFsaWQuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJ RF9QQVJBTUVURVIgIFJlc3VsdCBpcyBOVUxMLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX1RJTUVP VVQgICAgICAgICAgICBEZWxheSBleHBpcmVkIGJlZm9yZSBhIG1hdGNoIG9jY3VycmVkLg0KPiAt DQo+ICAgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgICBUaGUgcmVxdWVzdCBjb3VsZCBu b3QgYmUgY29tcGxldGVkDQo+IGR1ZSB0byBhDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsYWNrIG9mIHJlc291cmNlcy4NCj4gICoqLw0KPiBAQCAtMTY3LDI2ICsxMzMsMTkg QEAgUm9vdEJyaWRnZUlvUG9sbElvICgNCj4gICAgUENJIFJvb3QgQnJpZGdlIG9uIGEgcGxhdGZv cm0gbWlnaHQgcmVxdWlyZS4NCj4NCj4gICAgQHBhcmFtW2luXSAgIFRoaXMgICAgICBBIHBvaW50 ZXIgdG8gdGhlDQo+IEVGSV9QQ0lfUk9PVF9CUklER0VfSU9fUFJPVE9DT0wuDQo+IC0NCj4gICAg QHBhcmFtW2luXSAgIFdpZHRoICAgICBTaWduaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBtZW1vcnkg b3BlcmF0aW9uLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBBZGRyZXNzICAgVGhlIGJhc2UgYWRk cmVzcyBvZiB0aGUgbWVtb3J5IG9wZXJhdGlvbi4gVGhlDQo+IGNhbGxlcg0KPiAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlzIHJlc3BvbnNpYmxlIGZvciBhbGlnbmluZyB0aGUgQWRkcmVzcyBp ZiByZXF1aXJlZC4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgQ291bnQgICAgIFRoZSBudW1iZXIg b2YgbWVtb3J5IG9wZXJhdGlvbnMgdG8gcGVyZm9ybS4NCj4gQnl0ZXMNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICBtb3ZlZCBpcyBXaWR0aCBzaXplICogQ291bnQsIHN0YXJ0aW5nIGF0IEFk ZHJlc3MuDQo+IC0NCj4gICAgQHBhcmFtW291dF0gIEJ1ZmZlciAgICBGb3IgcmVhZCBvcGVyYXRp b25zLCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIHRvIHN0b3JlDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhlIHJlc3VsdHMuIEZvciB3cml0ZSBvcGVyYXRpb25zLCB0aGUgc291cmNlIGJ1 ZmZlcg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHdyaXRlIGRhdGEgZnJvbS4NCj4N Cj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgIFRoZSBkYXRhIHdhcyByZWFkIGZy b20gb3Igd3JpdHRlbiB0byB0aGUgUENJDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByb290IGJyaWRnZS4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRF UiAgV2lkdGggaXMgaW52YWxpZCBmb3IgdGhpcyBQQ0kgcm9vdCBicmlkZ2UuDQo+IC0NCj4gICAg QHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIEJ1ZmZlciBpcyBOVUxMLg0KPiAtDQo+ICAg IEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgICBUaGUgcmVxdWVzdCBjb3VsZCBub3QgYmUg Y29tcGxldGVkDQo+IGR1ZSB0byBhDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsYWNrIG9mIHJlc291cmNlcy4NCj4gICoqLw0KPiBAQCAtMjExLDI2ICsxNzAsMTkgQEAgUm9v dEJyaWRnZUlvTWVtUmVhZCAoDQo+ICAgIFBDSSBSb290IEJyaWRnZSBvbiBhIHBsYXRmb3JtIG1p Z2h0IHJlcXVpcmUuDQo+DQo+ICAgIEBwYXJhbVtpbl0gICBUaGlzICAgICAgQSBwb2ludGVyIHRv IHRoZQ0KPiBFRklfUENJX1JPT1RfQlJJREdFX0lPX1BST1RPQ09MLg0KPiAtDQo+ICAgIEBwYXJh bVtpbl0gICBXaWR0aCAgICAgU2lnbmlmaWVzIHRoZSB3aWR0aCBvZiB0aGUgbWVtb3J5IG9wZXJh dGlvbi4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgQWRkcmVzcyAgIFRoZSBiYXNlIGFkZHJlc3Mg b2YgdGhlIG1lbW9yeSBvcGVyYXRpb24uIFRoZQ0KPiBjYWxsZXINCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICBpcyByZXNwb25zaWJsZSBmb3IgYWxpZ25pbmcgdGhlIEFkZHJlc3MgaWYgcmVx dWlyZWQuDQo+IC0NCj4gICAgQHBhcmFtW2luXSAgIENvdW50ICAgICBUaGUgbnVtYmVyIG9mIG1l bW9yeSBvcGVyYXRpb25zIHRvIHBlcmZvcm0uDQo+IEJ5dGVzDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgbW92ZWQgaXMgV2lkdGggc2l6ZSAqIENvdW50LCBzdGFydGluZyBhdCBBZGRyZXNz Lg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBCdWZmZXIgICAgRm9yIHJlYWQgb3BlcmF0aW9ucywg dGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciB0byBzdG9yZQ0KPiAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRoZSByZXN1bHRzLiBGb3Igd3JpdGUgb3BlcmF0aW9ucywgdGhlIHNvdXJjZSBidWZmZXIN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICB0byB3cml0ZSBkYXRhIGZyb20uDQo+DQo+ICAg IEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgZGF0YSB3YXMgcmVhZCBmcm9tIG9y IHdyaXR0ZW4gdG8gdGhlIFBDSQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cm9vdCBicmlkZ2UuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFdp ZHRoIGlzIGludmFsaWQgZm9yIHRoaXMgUENJIHJvb3QgYnJpZGdlLg0KPiAtDQo+ICAgIEByZXR2 YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBCdWZmZXIgaXMgTlVMTC4NCj4gLQ0KPiAgICBAcmV0 dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgVGhlIHJlcXVlc3QgY291bGQgbm90IGJlIGNvbXBs ZXRlZA0KPiBkdWUgdG8gYQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFj ayBvZiByZXNvdXJjZXMuDQo+ICAqKi8NCj4gQEAgLTI0OSwxNSArMjAxLDExIEBAIFJvb3RCcmlk Z2VJb01lbVdyaXRlICgNCj4gICAgYnJpZGdlIEkvTyBzcGFjZS4NCj4NCj4gICAgQHBhcmFtW2lu XSAgIFRoaXMgICAgICAgIEEgcG9pbnRlciB0byB0aGUNCj4gRUZJX1BDSV9ST09UX0JSSURHRV9J T19QUk9UT0NPTC4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgV2lkdGggICAgICAgU2lnbmlmaWVz IHRoZSB3aWR0aCBvZiB0aGUgbWVtb3J5IG9wZXJhdGlvbnMuDQo+IC0NCj4gICAgQHBhcmFtW2lu XSAgIFVzZXJBZGRyZXNzIFRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIEkvTyBvcGVyYXRpb24uIFRo ZQ0KPiBjYWxsZXIgaXMNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNpYmxl IGZvciBhbGlnbmluZyB0aGUgQWRkcmVzcyBpZiByZXF1aXJlZC4NCj4gLQ0KPiAgICBAcGFyYW1b aW5dICAgQ291bnQgICAgICAgVGhlIG51bWJlciBvZiBJL08gb3BlcmF0aW9ucyB0byBwZXJmb3Jt LiBCeXRlcw0KPiBtb3ZlZA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgV2lkdGgg c2l6ZSAqIENvdW50LCBzdGFydGluZyBhdCBBZGRyZXNzLg0KPiAtDQo+ICAgIEBwYXJhbVtvdXRd ICBVc2VyQnVmZmVyICBGb3IgcmVhZCBvcGVyYXRpb25zLCB0aGUgZGVzdGluYXRpb24gYnVmZmVy IHRvDQo+IHN0b3JlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcmVzdWx0cy4g Rm9yIHdyaXRlIG9wZXJhdGlvbnMsIHRoZSBzb3VyY2UgYnVmZmVyDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0byB3cml0ZSBkYXRhIGZyb20uDQo+IEBAIC0yNjUsMTEgKzIxMyw4IEBA IFJvb3RCcmlkZ2VJb01lbVdyaXRlICgNCj4NCj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAg ICAgICAgICAgVGhlIGRhdGEgd2FzIHJlYWQgZnJvbSBvciB3cml0dGVuIHRvIHRoZSBQQ0kNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdCBicmlkZ2UuDQo+IC0NCj4g ICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICAgV2lkdGggaXMgaW52YWxpZCBmb3Ig dGhpcyBQQ0kgcm9vdCBicmlkZ2UuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJB TUVURVIgICAgQnVmZmVyIGlzIE5VTEwuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfT1VUX09GX1JF U09VUkNFUyAgICAgVGhlIHJlcXVlc3QgY291bGQgbm90IGJlIGNvbXBsZXRlZA0KPiBkdWUgdG8g YQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWNrIG9mIHJlc291cmNl cy4NCj4gICoqLw0KPiBAQCAtMjg4LDE1ICsyMzMsMTEgQEAgUm9vdEJyaWRnZUlvSW9SZWFkICgN Cj4gICAgYnJpZGdlIEkvTyBzcGFjZS4NCj4NCj4gICAgQHBhcmFtW2luXSAgIFRoaXMgICAgICAg IEEgcG9pbnRlciB0byB0aGUNCj4gRUZJX1BDSV9ST09UX0JSSURHRV9JT19QUk9UT0NPTC4NCj4g LQ0KPiAgICBAcGFyYW1baW5dICAgV2lkdGggICAgICAgU2lnbmlmaWVzIHRoZSB3aWR0aCBvZiB0 aGUgbWVtb3J5IG9wZXJhdGlvbnMuDQo+IC0NCj4gICAgQHBhcmFtW2luXSAgIFVzZXJBZGRyZXNz IFRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIEkvTyBvcGVyYXRpb24uIFRoZQ0KPiBjYWxsZXIgaXMN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNpYmxlIGZvciBhbGlnbmluZyB0 aGUgQWRkcmVzcyBpZiByZXF1aXJlZC4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgQ291bnQgICAg ICAgVGhlIG51bWJlciBvZiBJL08gb3BlcmF0aW9ucyB0byBwZXJmb3JtLiBCeXRlcw0KPiBtb3Zl ZA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgV2lkdGggc2l6ZSAqIENvdW50LCBz dGFydGluZyBhdCBBZGRyZXNzLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBVc2VyQnVmZmVyICBG b3IgcmVhZCBvcGVyYXRpb25zLCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIHRvDQo+IHN0b3JlDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcmVzdWx0cy4gRm9yIHdyaXRlIG9wZXJh dGlvbnMsIHRoZSBzb3VyY2UgYnVmZmVyDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 byB3cml0ZSBkYXRhIGZyb20uDQo+IEBAIC0zMDQsMTEgKzI0NSw4IEBAIFJvb3RCcmlkZ2VJb0lv UmVhZCAoDQo+DQo+ICAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgIFRoZSBkYXRh IHdhcyByZWFkIGZyb20gb3Igd3JpdHRlbiB0byB0aGUgUENJDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJvb3QgYnJpZGdlLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lO VkFMSURfUEFSQU1FVEVSICAgIFdpZHRoIGlzIGludmFsaWQgZm9yIHRoaXMgUENJIHJvb3QgYnJp ZGdlLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgIEJ1ZmZlciBp cyBOVUxMLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgICAgIFRoZSBy ZXF1ZXN0IGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQNCj4gZHVlIHRvIGENCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGFjayBvZiByZXNvdXJjZXMuDQo+ICAqKi8NCj4gQEAg LTMzNiwxNyArMjc0LDEzIEBAIFJvb3RCcmlkZ2VJb0lvV3JpdGUgKA0KPg0KPiAgICBAcGFyYW1b aW5dIFRoaXMgICAgICAgIEEgcG9pbnRlciB0byB0aGUNCj4gRUZJX1BDSV9ST09UX0JSSURHRV9J T19QUk9UT0NPTA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLg0KPiAtDQo+ ICAgIEBwYXJhbVtpbl0gV2lkdGggICAgICAgU2lnbmlmaWVzIHRoZSB3aWR0aCBvZiB0aGUgbWVt b3J5IG9wZXJhdGlvbnMuDQo+IC0NCj4gICAgQHBhcmFtW2luXSBEZXN0QWRkcmVzcyBUaGUgZGVz dGluYXRpb24gYWRkcmVzcyBvZiB0aGUgbWVtb3J5DQo+IG9wZXJhdGlvbi4gVGhlDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBhbGlnbmluZyB0 aGUgRGVzdEFkZHJlc3MgaWYNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZC4N Cj4gLQ0KPiAgICBAcGFyYW1baW5dIFNyY0FkZHJlc3MgIFRoZSBzb3VyY2UgYWRkcmVzcyBvZiB0 aGUgbWVtb3J5IG9wZXJhdGlvbi4gVGhlDQo+IGNhbGxlcg0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlzIHJlc3BvbnNpYmxlIGZvciBhbGlnbmluZyB0aGUgU3JjQWRkcmVzcyBpZg0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0g Q291bnQgICAgICAgVGhlIG51bWJlciBvZiBtZW1vcnkgb3BlcmF0aW9ucyB0byBwZXJmb3JtLg0K PiBCeXRlcw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdmVkIGlzIFdpZHRoIHNpemUg KiBDb3VudCwgc3RhcnRpbmcgYXQgRGVzdEFkZHJlc3MNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICBhbmQgU3JjQWRkcmVzcy4NCj4gQEAgLTM1NCw5ICsyODgsNyBAQCBSb290QnJpZGdlSW9J b1dyaXRlICgNCj4NCj4gICAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgVGhlIGRh dGEgd2FzIGNvcGllZCBmcm9tIG9uZSBtZW1vcnkgcmVnaW9uDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRvIGFub3RoZXIgbWVtb3J5IHJlZ2lvbi4NCj4gLQ0KPiAgICBA cmV0dmFsICBFRklfSU5WQUxJRF9QQVJBTUVURVIgICBXaWR0aCBpcyBpbnZhbGlkIGZvciB0aGlz IFBDSSByb290IGJyaWRnZS4NCj4gLQ0KPiAgICBAcmV0dmFsICBFRklfT1VUX09GX1JFU09VUkNF UyAgICBUaGUgcmVxdWVzdCBjb3VsZCBub3QgYmUgY29tcGxldGVkDQo+IGR1ZSB0byBhDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhY2sgb2YgcmVzb3VyY2VzLg0KPiAg KiovDQo+IEBAIC0zODEsMTYgKzMxMywxMiBAQCBSb290QnJpZGdlSW9Db3B5TWVtICgNCj4gICAg dGhhdCBhIFBDSSBSb290IEJyaWRnZSBvbiBhIHBsYXRmb3JtIG1pZ2h0IHJlcXVpcmUuDQo+DQo+ ICAgIEBwYXJhbVtpbl0gICBUaGlzICAgICAgQSBwb2ludGVyIHRvIHRoZQ0KPiBFRklfUENJX1JP T1RfQlJJREdFX0lPX1BST1RPQ09MLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBXaWR0aCAgICAg U2lnbmlmaWVzIHRoZSB3aWR0aCBvZiB0aGUgbWVtb3J5IG9wZXJhdGlvbnMuDQo+IC0NCj4gICAg QHBhcmFtW2luXSAgIEFkZHJlc3MgICBUaGUgYWRkcmVzcyB3aXRoaW4gdGhlIFBDSSBjb25maWd1 cmF0aW9uIHNwYWNlIGZvcg0KPiB0aGUNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0kg Y29udHJvbGxlci4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgQ291bnQgICAgIFRoZSBudW1iZXIg b2YgUENJIGNvbmZpZ3VyYXRpb24gb3BlcmF0aW9ucyB0bw0KPiBwZXJmb3JtLg0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJ5dGVzIG1vdmVkIGlzIFdpZHRoIHNpemUgKiBDb3VudCwgc3Rh cnRpbmcgYXQNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzLg0KPiAtDQo+ICAg IEBwYXJhbVtvdXRdICBCdWZmZXIgICAgRm9yIHJlYWQgb3BlcmF0aW9ucywgdGhlIGRlc3RpbmF0 aW9uIGJ1ZmZlciB0byBzdG9yZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSByZXN1 bHRzLiBGb3Igd3JpdGUgb3BlcmF0aW9ucywgdGhlIHNvdXJjZSBidWZmZXINCj4gICAgICAgICAg ICAgICAgICAgICAgICAgICB0byB3cml0ZSBkYXRhIGZyb20uDQo+IEBAIC0zOTgsMTEgKzMyNiw4 IEBAIFJvb3RCcmlkZ2VJb0NvcHlNZW0gKA0KPg0KPiAgICBAcmV0dmFsIEVGSV9TVUNDRVNTICAg ICAgICAgICAgVGhlIGRhdGEgd2FzIHJlYWQgZnJvbSBvciB3cml0dGVuIHRvIHRoZSBQQ0kNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3QgYnJpZGdlLg0KPiAtDQo+ICAg IEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBXaWR0aCBpcyBpbnZhbGlkIGZvciB0aGlz IFBDSSByb290IGJyaWRnZS4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRF UiAgQnVmZmVyIGlzIE5VTEwuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNF UyAgIFRoZSByZXF1ZXN0IGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQNCj4gZHVlIHRvIGENCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhY2sgb2YgcmVzb3VyY2VzLg0KPiAgKiov DQo+IEBAIC00MjcsMTYgKzM1MiwxMiBAQCBSb290QnJpZGdlSW9QY2lSZWFkICgNCj4gICAgdGhh dCBhIFBDSSBSb290IEJyaWRnZSBvbiBhIHBsYXRmb3JtIG1pZ2h0IHJlcXVpcmUuDQo+DQo+ICAg IEBwYXJhbVtpbl0gICBUaGlzICAgICAgQSBwb2ludGVyIHRvIHRoZQ0KPiBFRklfUENJX1JPT1Rf QlJJREdFX0lPX1BST1RPQ09MLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBXaWR0aCAgICAgU2ln bmlmaWVzIHRoZSB3aWR0aCBvZiB0aGUgbWVtb3J5IG9wZXJhdGlvbnMuDQo+IC0NCj4gICAgQHBh cmFtW2luXSAgIEFkZHJlc3MgICBUaGUgYWRkcmVzcyB3aXRoaW4gdGhlIFBDSSBjb25maWd1cmF0 aW9uIHNwYWNlIGZvcg0KPiB0aGUNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0kgY29u dHJvbGxlci4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgQ291bnQgICAgIFRoZSBudW1iZXIgb2Yg UENJIGNvbmZpZ3VyYXRpb24gb3BlcmF0aW9ucyB0bw0KPiBwZXJmb3JtLg0KPiAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJ5dGVzIG1vdmVkIGlzIFdpZHRoIHNpemUgKiBDb3VudCwgc3RhcnRp bmcgYXQNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzLg0KPiAtDQo+ICAgIEBw YXJhbVtpbl0gICBCdWZmZXIgICAgRm9yIHJlYWQgb3BlcmF0aW9ucywgdGhlIGRlc3RpbmF0aW9u IGJ1ZmZlciB0byBzdG9yZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSByZXN1bHRz LiBGb3Igd3JpdGUgb3BlcmF0aW9ucywgdGhlIHNvdXJjZSBidWZmZXINCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICB0byB3cml0ZSBkYXRhIGZyb20uDQo+IEBAIC00NDQsMTEgKzM2NSw4IEBA IFJvb3RCcmlkZ2VJb1BjaVJlYWQgKA0KPg0KPiAgICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAg ICAgICAgVGhlIGRhdGEgd2FzIHJlYWQgZnJvbSBvciB3cml0dGVuIHRvIHRoZSBQQ0kNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3QgYnJpZGdlLg0KPiAtDQo+ICAgIEBy ZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBXaWR0aCBpcyBpbnZhbGlkIGZvciB0aGlzIFBD SSByb290IGJyaWRnZS4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAg QnVmZmVyIGlzIE5VTEwuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAg IFRoZSByZXF1ZXN0IGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQNCj4gZHVlIHRvIGENCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhY2sgb2YgcmVzb3VyY2VzLg0KPiAgKiovDQo+ IEBAIC00NzIsNDIgKzM5MCwyOSBAQCBSb290QnJpZGdlSW9QY2lXcml0ZSAoDQo+DQo+ICAgIEBw YXJhbVtpbl0gICAgICAgVGhpcyAgICAgICAgICAgIEEgcG9pbnRlciB0byB0aGUNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1BDSV9ST09UX0JSSURHRV9JT19QUk9U T0NPTC4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgICAgIE9wZXJhdGlvbiAgICAgICBJbmRpY2F0 ZXMgaWYgdGhlIGJ1cyBtYXN0ZXIgaXMgZ29pbmcgdG8gcmVhZA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvciB3cml0ZSB0byBzeXN0ZW0gbWVtb3J5Lg0KPiAtDQo+ICAg IEBwYXJhbVtpbl0gICAgICAgSG9zdEFkZHJlc3MgICAgIFRoZSBzeXN0ZW0gbWVtb3J5IGFkZHJl c3MgdG8gbWFwIHRvIHRoZQ0KPiBQQ0kNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udHJvbGxlci4NCj4gLQ0KPiAgICBAcGFyYW1baW4sIG91dF0gIE51bWJlck9mQnl0 ZXMgICBPbiBpbnB1dCB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIG1hcC4NCj4gT24NCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0IHRoZSBudW1iZXIgb2YgYnl0ZXMg dGhhdCB3ZXJlIG1hcHBlZC4NCj4gLQ0KPiAgICBAcGFyYW1bb3V0XSAgICAgIERldmljZUFkZHJl c3MgICBUaGUgcmVzdWx0aW5nIG1hcCBhZGRyZXNzIGZvciB0aGUgYnVzDQo+IG1hc3Rlcg0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0kgY29udHJvbGxlciB0byB1c2Ug dG8gYWNjZXNzIHRoZSBzeXN0ZW0NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWVtb3J5J3MgSG9zdEFkZHJlc3MuDQo+IC0NCj4gICAgQHBhcmFtW291dF0gICAgICBNYXBw aW5nICAgICAgICAgVGhlIHZhbHVlIHRvIHBhc3MgdG8gVW5tYXAoKSB3aGVuIHRoZSBidXMNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzdGVyIERNQSBvcGVyYXRpb24g aXMgY29tcGxldGUuDQo+DQo+ICAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUg cmFuZ2Ugd2FzIG1hcHBlZCBmb3IgdGhlIHJldHVybmVkDQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOdW1iZXJPZkJ5dGVzLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFM SURfUEFSQU1FVEVSICBPcGVyYXRpb24gaXMgaW52YWxpZC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVG SV9JTlZBTElEX1BBUkFNRVRFUiAgSG9zdEFkZHJlc3MgaXMgTlVMTC4NCj4gLQ0KPiAgICBAcmV0 dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgTnVtYmVyT2ZCeXRlcyBpcyBOVUxMLg0KPiAtDQo+ ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBEZXZpY2VBZGRyZXNzIGlzIE5VTEwu DQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIE1hcHBpbmcgaXMgTlVM TC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAgICAgICAgVGhlIEhvc3RBZGRy ZXNzIGNhbm5vdCBiZSBtYXBwZWQgYXMgYQ0KPiBjb21tb24NCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJ1ZmZlci4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJS T1IgICAgICAgVGhlIHN5c3RlbSBoYXJkd2FyZSBjb3VsZCBub3QgbWFwIHRoZQ0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkIGFkZHJlc3MuDQo+IC0NCj4gICAg QHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgIFRoZSByZXF1ZXN0IGNvdWxkIG5vdCBiZSBj b21wbGV0ZWQNCj4gZHVlIHRvIGENCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxhY2sgb2YgcmVzb3VyY2VzLg0KPiAgKiovDQo+IEBAIC01MzMsMTQgKzQzOCwxMSBAQCBSb290 QnJpZGdlSW9NYXAgKA0KPiAgICBBbnkgcmVzb3VyY2VzIHVzZWQgZm9yIHRoZSBtYXBwaW5nIGFy ZSBmcmVlZC4NCj4NCj4gICAgQHBhcmFtW2luXSBUaGlzICAgICAgQSBwb2ludGVyIHRvIHRoZSBF RklfUENJX1JPT1RfQlJJREdFX0lPX1BST1RPQ09MLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gTWFw cGluZyAgIFRoZSBtYXBwaW5nIHZhbHVlIHJldHVybmVkIGZyb20gTWFwKCkuDQo+DQo+ICAgIEBy ZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgcmFuZ2Ugd2FzIHVubWFwcGVkLg0KPiAt DQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBNYXBwaW5nIGlzIG5vdCBhIHZh bHVlIHRoYXQgd2FzDQo+IHJldHVybmVkIGJ5DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNYXAoKS4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJST1IgICAgICAg VGhlIGRhdGEgd2FzIG5vdCBjb21taXR0ZWQgdG8gdGhlIHRhcmdldA0KPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3lzdGVtIG1lbW9yeS4NCj4gICoqLw0KPiBAQCAtNTU2LDE3 ICs0NTgsMTIgQEAgUm9vdEJyaWRnZUlvVW5tYXAgKA0KPiAgICBvciBFZmlQY2lPcGVyYXRpb25C dXNNYXN0ZXJDb21tb25CdWZmZXI2NCBtYXBwaW5nLg0KPg0KPiAgICBAcGFyYW0gVGhpcyAgICAg ICAgQSBwb2ludGVyIHRvIHRoZSBFRklfUENJX1JPT1RfQlJJREdFX0lPX1BST1RPQ09MLg0KPiAt DQo+ICAgIEBwYXJhbSBUeXBlICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyBub3QgdXNlZCBhbmQg bXVzdCBiZSBpZ25vcmVkLg0KPiAtDQo+ICAgIEBwYXJhbSBNZW1vcnlUeXBlICBUaGUgdHlwZSBv ZiBtZW1vcnkgdG8gYWxsb2NhdGUsDQo+IEVmaUJvb3RTZXJ2aWNlc0RhdGEgb3INCj4gICAgICAg ICAgICAgICAgICAgICAgIEVmaVJ1bnRpbWVTZXJ2aWNlc0RhdGEuDQo+IC0NCj4gICAgQHBhcmFt IFBhZ2VzICAgICAgIFRoZSBudW1iZXIgb2YgcGFnZXMgdG8gYWxsb2NhdGUuDQo+IC0NCj4gICAg QHBhcmFtIEhvc3RBZGRyZXNzIEEgcG9pbnRlciB0byBzdG9yZSB0aGUgYmFzZSBzeXN0ZW0gbWVt b3J5IGFkZHJlc3MNCj4gb2YgdGhlDQo+ICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0ZWQg cmFuZ2UuDQo+IC0NCj4gICAgQHBhcmFtIEF0dHJpYnV0ZXMgIFRoZSByZXF1ZXN0ZWQgYml0IG1h c2sgb2YgYXR0cmlidXRlcyBmb3IgdGhlIGFsbG9jYXRlZA0KPiAgICAgICAgICAgICAgICAgICAg ICAgcmFuZ2UuIE9ubHkgdGhlIGF0dHJpYnV0ZXMNCj4gICAgICAgICAgICAgICAgICAgICAgIEVG SV9QQ0lfQVRUUklCVVRFX01FTU9SWV9XUklURV9DT01CSU5FLA0KPiBAQCAtNTc1LDE1ICs0NzIs MTEgQEAgUm9vdEJyaWRnZUlvVW5tYXAgKA0KPiAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rp b24uDQo+DQo+ICAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgcmVxdWVzdGVk IG1lbW9yeSBwYWdlcyB3ZXJlIGFsbG9jYXRlZC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZB TElEX1BBUkFNRVRFUiAgTWVtb3J5VHlwZSBpcyBpbnZhbGlkLg0KPiAtDQo+ICAgIEByZXR2YWwg RUZJX0lOVkFMSURfUEFSQU1FVEVSICBIb3N0QWRkcmVzcyBpcyBOVUxMLg0KPiAtDQo+ICAgIEBy ZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICBBdHRyaWJ1dGVzIGlzIHVuc3VwcG9ydGVkLiBU aGUgb25seSBsZWdhbA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmli dXRlIGJpdHMgYXJlIE1FTU9SWV9XUklURV9DT01CSU5FLA0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTUVNT1JZX0NBQ0hFRCwgYW5kIERVQUxfQUREUkVTU19DWUNMRS4NCj4g LQ0KPiAgICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgVGhlIG1lbW9yeSBwYWdlcyBj b3VsZCBub3QgYmUNCj4gYWxsb2NhdGVkLg0KPiAgKiovDQo+ICBFRklfU1RBVFVTDQo+IEBAIC02 MDQsMTMgKzQ5NywxMCBAQCBSb290QnJpZGdlSW9BbGxvY2F0ZUJ1ZmZlciAoDQo+ICAgIEFsbG9j YXRlQnVmZmVyKCkuDQo+DQo+ICAgIEBwYXJhbSBUaGlzICAgICAgICBBIHBvaW50ZXIgdG8gdGhl IEVGSV9QQ0lfUk9PVF9CUklER0VfSU9fUFJPVE9DT0wuDQo+IC0NCj4gICAgQHBhcmFtIFBhZ2Vz ICAgICAgIFRoZSBudW1iZXIgb2YgcGFnZXMgdG8gZnJlZS4NCj4gLQ0KPiAgICBAcGFyYW0gSG9z dEFkZHJlc3MgVGhlIGJhc2Ugc3lzdGVtIG1lbW9yeSBhZGRyZXNzIG9mIHRoZSBhbGxvY2F0ZWQN Cj4gcmFuZ2UuDQo+DQo+ICAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgcmVx dWVzdGVkIG1lbW9yeSBwYWdlcyB3ZXJlIGZyZWVkLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lO VkFMSURfUEFSQU1FVEVSICBUaGUgbWVtb3J5IHJhbmdlIHNwZWNpZmllZCBieQ0KPiBIb3N0QWRk cmVzcyBhbmQNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhZ2VzIHdhcyBu b3QgYWxsb2NhdGVkIHdpdGggQWxsb2NhdGVCdWZmZXIoKS4NCj4gICoqLw0KPiBAQCAtNjQwLDcg KzUzMCw2IEBAIFJvb3RCcmlkZ2VJb0ZyZWVCdWZmZXIgKA0KPg0KPiAgICBAcmV0dmFsIEVGSV9T VUNDRVNTICAgICAgICBUaGUgUENJIHBvc3RlZCB3cml0ZSB0cmFuc2FjdGlvbnMgd2VyZSBmbHVz aGVkDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gdGhlIFBDSSBob3N0IGJy aWRnZSB0byBzeXN0ZW0gbWVtb3J5Lg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0RFVklDRV9FUlJP UiAgIFRoZSBQQ0kgcG9zdGVkIHdyaXRlIHRyYW5zYWN0aW9ucyB3ZXJlIG5vdA0KPiBmbHVzaGVk DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gdGhlIFBDSSBob3N0IGJyaWRn ZSBkdWUgdG8gYSBoYXJkd2FyZSBlcnJvci4NCj4gICoqLw0KPiBAQCAtNjYwLDEwICs1NDksOCBA QCBSb290QnJpZGdlSW9GbHVzaCAoDQo+ICAgIGN1cnJlbnRseSB1c2luZy4NCj4NCj4gICAgQHBh cmFtIFRoaXMgICAgICAgIEEgcG9pbnRlciB0byB0aGUgRUZJX1BDSV9ST09UX0JSSURHRV9JT19Q Uk9UT0NPTC4NCj4gLQ0KPiAgICBAcGFyYW0gU3VwcG9ydGVkICAgQSBwb2ludGVyIHRvIHRoZSBt YXNrIG9mIGF0dHJpYnV0ZXMgdGhhdCB0aGlzIFBDSSByb290DQo+ICAgICAgICAgICAgICAgICAg ICAgICBicmlkZ2Ugc3VwcG9ydHMgc2V0dGluZyB3aXRoIFNldEF0dHJpYnV0ZXMoKS4NCj4gLQ0K PiAgICBAcGFyYW0gQXR0cmlidXRlcyAgQSBwb2ludGVyIHRvIHRoZSBtYXNrIG9mIGF0dHJpYnV0 ZXMgdGhhdCB0aGlzIFBDSSByb290DQo+ICAgICAgICAgICAgICAgICAgICAgICBicmlkZ2UgaXMg Y3VycmVudGx5IHVzaW5nLg0KPg0KPiBAQCAtNjczLDcgKzU2MCw2IEBAIFJvb3RCcmlkZ2VJb0Zs dXNoICgNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFN1cHBvcnRzLiBJ ZiBBdHRyaWJ1dGVzIGlzIG5vdCBOVUxMLCB0aGVuDQo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aGUgYXR0cmlidXRlcyB0aGF0IHRoZSBQQ0kgcm9vdCBicmlkZ2UgaXMNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRseSB1c2luZyBpcyByZXR1 cm5lZCBpbiBBdHRyaWJ1dGVzLg0KPiAtDQo+ICAgIEByZXR2YWwgIEVGSV9JTlZBTElEX1BBUkFN RVRFUiBCb3RoIFN1cHBvcnRzIGFuZCBBdHRyaWJ1dGVzIGFyZSBOVUxMLg0KPiAgKiovDQo+ICBF RklfU1RBVFVTDQo+IEBAIC02OTksNyArNTg1LDYgQEAgUm9vdEJyaWRnZUlvR2V0QXR0cmlidXRl cyAoDQo+DQo+ICAgIEBwYXJhbVtpbl0gICAgICAgVGhpcyAgICAgICAgICAgIEEgcG9pbnRlciB0 byB0aGUNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1BDSV9ST09U X0JSSURHRV9JT19QUk9UT0NPTC4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgICAgIEF0dHJpYnV0 ZXMgICAgICBUaGUgbWFzayBvZiBhdHRyaWJ1dGVzIHRvIHNldC4gSWYgdGhlDQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBiaXQgTUVNT1JZX1dSSVRFX0NP TUJJTkUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FTU9SWV9DQUNI RUQsIG9yIE1FTU9SWV9ESVNBQkxFIGlzIHNldCwNCj4gQEAgLTcxMywxNyArNTk4LDE0IEBAIFJv b3RCcmlkZ2VJb0dldEF0dHJpYnV0ZXMgKA0KPiAgICBAcGFyYW1baW4sIG91dF0gIFJlc291cmNl QmFzZSAgICBBIHBvaW50ZXIgdG8gdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUNCj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgcmFuZ2UgdG8gYmUgbW9kaWZpZWQg YnkgdGhlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMg c3BlY2lmaWVkIGJ5IEF0dHJpYnV0ZXMuDQo+IC0NCj4gICAgQHBhcmFtW2luLCBvdXRdICBSZXNv dXJjZUxlbmd0aCAgQSBwb2ludGVyIHRvIHRoZSBsZW5ndGggb2YgdGhlIHJlc291cmNlDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlIHRvIGJlIG1vZGlmaWVkIGJ5 IHRoZSBhdHRyaWJ1dGVzDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNw ZWNpZmllZCBieSBBdHRyaWJ1dGVzLg0KPg0KPiAgICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAg VGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBvZiB0aGlzIFBDSSByb290IGJyaWRnZQ0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgd2FzIHJldHVybmVkIGluIFJlc291cmNlcy4NCj4gLQ0K PiAgICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQgVGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBv ZiB0aGlzIFBDSSByb290DQo+IGJyaWRnZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y291bGQgbm90IGJlIHJldHJpZXZlZC4NCj4gLQ0KPiAgICBAcmV0dmFsICBFRklfSU5WQUxJRF9Q QVJBTUVURVIgSW52YWxpZCBwb2ludGVyIG9mDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFRklfUENJX1JPT1RfQlJJREdFX0lPX1BST1RPQ09MDQo+DQo+IEBAIC03NTAsNyAr NjMyLDYgQEAgUm9vdEJyaWRnZUlvU2V0QXR0cmlidXRlcyAoDQo+ICAgIG9yIG1vcmUgUVdPUkQg QWRkcmVzcyBTcGFjZSBEZXNjcmlwdG9ycyBmb2xsb3dlZCBieSBhbiBFbmQgVGFnLg0KPg0KPiAg ICBAcGFyYW1baW5dICAgVGhpcyAgICAgICAgQSBwb2ludGVyIHRvIHRoZQ0KPiBFRklfUENJX1JP T1RfQlJJREdFX0lPX1BST1RPQ09MLg0KPiAtDQo+ICAgIEBwYXJhbVtvdXRdICBSZXNvdXJjZXMg ICBBIHBvaW50ZXIgdG8gdGhlIEFDUEkgMi4wIHJlc291cmNlIGRlc2NyaXB0b3JzDQo+IHRoYXQN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlIHRoZSBjdXJyZW50IGNvbmZp Z3VyYXRpb24gb2YgdGhpcyBQQ0kgcm9vdA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJpZGdlLiBUaGUgc3RvcmFnZSBmb3IgdGhlIEFDUEkgMi4wIHJlc291cmNlDQo+IEBAIC03NjEs MTAgKzY0Miw4IEBAIFJvb3RCcmlkZ2VJb1NldEF0dHJpYnV0ZXMgKA0KPg0KPiAgICBAcmV0dmFs ICBFRklfU1VDQ0VTUyAgICAgVGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBvZiB0aGlzIFBDSSBy b290IGJyaWRnZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FzIHJldHVybmVkIGlu IFJlc291cmNlcy4NCj4gLQ0KPiAgICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQgVGhlIGN1cnJl bnQgY29uZmlndXJhdGlvbiBvZiB0aGlzIFBDSSByb290DQo+IGJyaWRnZQ0KPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY291bGQgbm90IGJlIHJldHJpZXZlZC4NCj4gLQ0KPiAgICBAcmV0 dmFsICBFRklfSU5WQUxJRF9QQVJBTUVURVIgSW52YWxpZCBwb2ludGVyIG9mDQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfUENJX1JPT1RfQlJJREdFX0lPX1BST1RPQ09M DQo+ICAqKi8NCj4gQEAgLTgyMCwxMSArNjk5LDggQEAgVUlOVDggIG1PdXRTdHJpZGVbXSA9IHsN Cj4gICAgQ29uc3RydWN0IHRoZSBQY2kgUm9vdCBCcmlkZ2UgSW8gcHJvdG9jb2wNCj4NCj4gICAg QHBhcmFtIFByb3RvY29sICAgICAgICAgUG9pbnQgdG8gcHJvdG9jb2wgaW5zdGFuY2UNCj4gLQ0K PiAgICBAcGFyYW0gSG9zdEJyaWRnZUhhbmRsZSBIYW5kbGUgb2YgaG9zdCBicmlkZ2UNCj4gLQ0K PiAgICBAcGFyYW0gQXR0cmkgICAgICAgICAgICBBdHRyaWJ1dGUgb2YgaG9zdCBicmlkZ2UNCj4g LQ0KPiAgICBAcGFyYW0gUmVzQXBlcnR1cmUgICAgICBSZXNvdXJjZUFwZXJ0dXJlIGZvciBob3N0 IGJyaWRnZQ0KPg0KPiAgICBAcmV0dmFsIEVGSV9TVUNDRVNTIFN1Y2Nlc3MgdG8gaW5pdGlhbGl6 ZSB0aGUgUGNpIFJvb3QgQnJpZGdlLg0KPiBAQCAtOTM1LDMwICs4MTEsMjEgQEAgUm9vdEJyaWRn ZUNvbnN0cnVjdG9yICgNCj4gICAgaGFuZCwgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBkcml2ZXIu DQo+DQo+ICAgIEBwYXJhbVtpbl0gVGhpcyAgICAgICAgICAgQSBwb2ludGVyIHRvIHRoZQ0KPiBF RklfUENJX1JPT1RfQlJJREdFX0lPX1BST1RPQ09MLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gT3Bl cmF0aW9uVHlwZSAgSS9PIG9wZXJhdGlvbiB0eXBlOiBJTy9NTUlPL1BDSS4NCj4gLQ0KPiAgICBA cGFyYW1baW5dIFdpZHRoICAgICAgICAgIFNpZ25pZmllcyB0aGUgd2lkdGggb2YgdGhlIEkvTyBv ciBNZW1vcnkgb3BlcmF0aW9uLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gQWRkcmVzcyAgICAgICAg VGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgSS9PIG9wZXJhdGlvbi4NCj4gLQ0KPiAgICBAcGFyYW1b aW5dIENvdW50ICAgICAgICAgIFRoZSBudW1iZXIgb2YgSS9PIG9wZXJhdGlvbnMgdG8gcGVyZm9y bS4gVGhlDQo+IG51bWJlcg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIGJ5dGVz IG1vdmVkIGlzIFdpZHRoIHNpemUgKiBDb3VudCwgc3RhcnRpbmcgYXQNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBZGRyZXNzLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gQnVmZmVyICAg ICAgICAgRm9yIHJlYWQgb3BlcmF0aW9ucywgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciB0bw0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlIHRoZSByZXN1bHRzLiBGb3Igd3JpdGUg b3BlcmF0aW9ucywgdGhlIHNvdXJjZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1 ZmZlciBmcm9tIHdoaWNoIHRvIHdyaXRlIGRhdGEuDQo+DQo+ICAgIEByZXR2YWwgRUZJX1NVQ0NF U1MgICAgICAgICAgICBUaGUgcGFyYW1ldGVycyBmb3IgdGhpcyByZXF1ZXN0IHBhc3MgdGhlDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja3MuDQo+IC0NCj4gICAgQHJl dHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFdpZHRoIGlzIGludmFsaWQgZm9yIHRoaXMgUEkg c3lzdGVtLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBCdWZmZXIg aXMgTlVMTC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAgICAgICAgVGhlIEJ1 ZmZlciBpcyBub3QgYWxpZ25lZCBmb3IgdGhlIGdpdmVuDQo+IFdpZHRoLg0KPiAtDQo+ICAgIEBy ZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICBUaGUgYWRkcmVzcyByYW5nZSBzcGVjaWZpZWQg YnkgQWRkcmVzcywNCj4gV2lkdGgsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhbmQgQ291bnQgaXMgbm90IHZhbGlkIGZvciB0aGlzIFBJIHN5c3RlbS4NCj4gICoqLw0KPiBA QCAtMTA4OSwyOSArOTU2LDIxIEBAIFJvb3RCcmlkZ2VJb0NoZWNrUGFyYW1ldGVyICgNCj4gICAg SW50ZXJuYWwgaGVscCBmdW5jdGlvbiBmb3IgcmVhZCBhbmQgd3JpdGUgbWVtb3J5IHNwYWNlLg0K Pg0KPiAgICBAcGFyYW1baW5dICAgVGhpcyAgICAgICAgICBBIHBvaW50ZXIgdG8gdGhlDQo+IEVG SV9QQ0lfUk9PVF9CUklER0VfSU9fUFJPVE9DT0wuDQo+IC0NCj4gICAgQHBhcmFtW2luXSAgIFdy aXRlICAgICAgICAgU3dpdGNoIHZhbHVlIGZvciBSZWFkIG9yIFdyaXRlLg0KPiAtDQo+ICAgIEBw YXJhbVtpbl0gICBXaWR0aCAgICAgICAgIFNpZ25pZmllcyB0aGUgd2lkdGggb2YgdGhlIG1lbW9y eSBvcGVyYXRpb25zLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBVc2VyQWRkcmVzcyAgIFRoZSBh ZGRyZXNzIHdpdGhpbiB0aGUgUENJIGNvbmZpZ3VyYXRpb24gc3BhY2UNCj4gZm9yDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBQQ0kgY29udHJvbGxlci4NCj4gLQ0KPiAgICBA cGFyYW1baW5dICAgQ291bnQgICAgICAgICBUaGUgbnVtYmVyIG9mIFBDSSBjb25maWd1cmF0aW9u IG9wZXJhdGlvbnMgdG8NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybS4g Qnl0ZXMgbW92ZWQgaXMgV2lkdGggc2l6ZSAqIENvdW50LA0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdGFydGluZyBhdCBBZGRyZXNzLg0KPiAtDQo+ICAgIEBwYXJhbVtpbiwgb3V0 XSBVc2VyQnVmZmVyIEZvciByZWFkIG9wZXJhdGlvbnMsIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIg dG8NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUgdGhlIHJlc3VsdHMuIEZv ciB3cml0ZSBvcGVyYXRpb25zLCB0aGUNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c291cmNlIGJ1ZmZlciB0byB3cml0ZSBkYXRhIGZyb20uDQo+DQo+ICAgIEByZXR2YWwgRUZJX1NV Q0NFU1MgICAgICAgICAgICBUaGUgZGF0YSB3YXMgcmVhZCBmcm9tIG9yIHdyaXR0ZW4gdG8gdGhl IFBDSQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdCBicmlkZ2UuDQo+ IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFdpZHRoIGlzIGludmFsaWQg Zm9yIHRoaXMgUENJIHJvb3QgYnJpZGdlLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURf UEFSQU1FVEVSICBCdWZmZXIgaXMgTlVMTC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9PVVRfT0Zf UkVTT1VSQ0VTICAgVGhlIHJlcXVlc3QgY291bGQgbm90IGJlIGNvbXBsZXRlZA0KPiBkdWUgdG8g YQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFjayBvZiByZXNvdXJjZXMu DQo+ICAqKi8NCj4gQEAgLTEyMDQsMTggKzEwNjMsMTMgQEAgUm9vdEJyaWRnZUlvTWVtUlcgKA0K PiAgICBJbnRlcm5hbCBoZWxwIGZ1bmN0aW9uIGZvciByZWFkIGFuZCB3cml0ZSBJTyBzcGFjZS4N Cj4NCj4gICAgQHBhcmFtW2luXSAgIFRoaXMgICAgICAgICAgQSBwb2ludGVyIHRvIHRoZQ0KPiBF RklfUENJX1JPT1RfQlJJREdFX0lPX1BST1RPQ09MLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBX cml0ZSAgICAgICAgIFN3aXRjaCB2YWx1ZSBmb3IgUmVhZCBvciBXcml0ZS4NCj4gLQ0KPiAgICBA cGFyYW1baW5dICAgV2lkdGggICAgICAgICBTaWduaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBtZW1v cnkgb3BlcmF0aW9ucy4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgVXNlckFkZHJlc3MgICBUaGUg YWRkcmVzcyB3aXRoaW4gdGhlIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlDQo+IGZvcg0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgUENJIGNvbnRyb2xsZXIuDQo+IC0NCj4gICAg QHBhcmFtW2luXSAgIENvdW50ICAgICAgICAgVGhlIG51bWJlciBvZiBQQ0kgY29uZmlndXJhdGlv biBvcGVyYXRpb25zIHRvDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm0u IEJ5dGVzIG1vdmVkIGlzIFdpZHRoIHNpemUgKiBDb3VudCwNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RhcnRpbmcgYXQgQWRkcmVzcy4NCj4gLQ0KPiAgICBAcGFyYW1baW4sIG91 dF0gVXNlckJ1ZmZlciBGb3IgcmVhZCBvcGVyYXRpb25zLCB0aGUgZGVzdGluYXRpb24gYnVmZmVy IHRvDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlIHRoZSByZXN1bHRzLiBG b3Igd3JpdGUgb3BlcmF0aW9ucywgdGhlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNvdXJjZSBidWZmZXIgdG8gd3JpdGUgZGF0YSBmcm9tLg0KPiBAQCAtMTIyMywxMSArMTA3Nyw4 IEBAIFJvb3RCcmlkZ2VJb01lbVJXICgNCj4NCj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAg ICAgICAgIFRoZSBkYXRhIHdhcyByZWFkIGZyb20gb3Igd3JpdHRlbiB0byB0aGUgUENJDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290IGJyaWRnZS4NCj4gLQ0KPiAgICBA cmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgV2lkdGggaXMgaW52YWxpZCBmb3IgdGhpcyBQ Q0kgcm9vdCBicmlkZ2UuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIg IEJ1ZmZlciBpcyBOVUxMLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMg ICBUaGUgcmVxdWVzdCBjb3VsZCBub3QgYmUgY29tcGxldGVkDQo+IGR1ZSB0byBhDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWNrIG9mIHJlc291cmNlcy4NCj4gICoqLw0K PiBAQCAtMTM2MCwxOCArMTIxMSwxMyBAQCBSb290QnJpZGdlSW9Jb1JXICgNCj4gICAgSW50ZXJu YWwgaGVscCBmdW5jdGlvbiBmb3IgcmVhZCBhbmQgd3JpdGUgUENJIGNvbmZpZ3VyYXRpb24gc3Bh Y2UuDQo+DQo+ICAgIEBwYXJhbVtpbl0gICBUaGlzICAgICAgICAgIEEgcG9pbnRlciB0byB0aGUN Cj4gRUZJX1BDSV9ST09UX0JSSURHRV9JT19QUk9UT0NPTC4NCj4gLQ0KPiAgICBAcGFyYW1baW5d ICAgV3JpdGUgICAgICAgICBTd2l0Y2ggdmFsdWUgZm9yIFJlYWQgb3IgV3JpdGUuDQo+IC0NCj4g ICAgQHBhcmFtW2luXSAgIFdpZHRoICAgICAgICAgU2lnbmlmaWVzIHRoZSB3aWR0aCBvZiB0aGUg bWVtb3J5IG9wZXJhdGlvbnMuDQo+IC0NCj4gICAgQHBhcmFtW2luXSAgIFVzZXJBZGRyZXNzICAg VGhlIGFkZHJlc3Mgd2l0aGluIHRoZSBQQ0kgY29uZmlndXJhdGlvbiBzcGFjZQ0KPiBmb3INCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIFBDSSBjb250cm9sbGVyLg0KPiAtDQo+ ICAgIEBwYXJhbVtpbl0gICBDb3VudCAgICAgICAgIFRoZSBudW1iZXIgb2YgUENJIGNvbmZpZ3Vy YXRpb24gb3BlcmF0aW9ucyB0bw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJm b3JtLiBCeXRlcyBtb3ZlZCBpcyBXaWR0aCBzaXplICogQ291bnQsDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0YXJ0aW5nIGF0IEFkZHJlc3MuDQo+IC0NCj4gICAgQHBhcmFtW2lu LCBvdXRdIFVzZXJCdWZmZXIgRm9yIHJlYWQgb3BlcmF0aW9ucywgdGhlIGRlc3RpbmF0aW9uIGJ1 ZmZlciB0bw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZSB0aGUgcmVzdWx0 cy4gRm9yIHdyaXRlIG9wZXJhdGlvbnMsIHRoZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzb3VyY2UgYnVmZmVyIHRvIHdyaXRlIGRhdGEgZnJvbS4NCj4gQEAgLTEzNzksMTEgKzEy MjUsOCBAQCBSb290QnJpZGdlSW9Jb1JXICgNCj4NCj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyAg ICAgICAgICAgIFRoZSBkYXRhIHdhcyByZWFkIGZyb20gb3Igd3JpdHRlbiB0byB0aGUgUENJDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290IGJyaWRnZS4NCj4gLQ0KPiAg ICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgV2lkdGggaXMgaW52YWxpZCBmb3IgdGhp cyBQQ0kgcm9vdCBicmlkZ2UuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVU RVIgIEJ1ZmZlciBpcyBOVUxMLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJD RVMgICBUaGUgcmVxdWVzdCBjb3VsZCBub3QgYmUgY29tcGxldGVkDQo+IGR1ZSB0byBhDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWNrIG9mIHJlc291cmNlcy4NCj4gICoq Lw0KPiBAQCAtMTQ5MSwzNSArMTMzNCwyNSBAQCBSb290QnJpZGdlSW9QY2lSVyAoDQo+ICAgIGlz IGVxdWFsIHRvIFZhbHVlLg0KPg0KPiAgICBAcGFyYW1baW5dICAgVGhpcyAgICAgIEEgcG9pbnRl ciB0byB0aGUNCj4gRUZJX1BDSV9ST09UX0JSSURHRV9JT19QUk9UT0NPTC4NCj4gLQ0KPiAgICBA cGFyYW1baW5dICAgV2lkdGggICAgIFNpZ25pZmllcyB0aGUgd2lkdGggb2YgdGhlIG1lbW9yeSBv cGVyYXRpb25zLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBBZGRyZXNzICAgVGhlIGJhc2UgYWRk cmVzcyBvZiB0aGUgbWVtb3J5IG9wZXJhdGlvbnMuIFRoZQ0KPiBjYWxsZXINCj4gICAgICAgICAg ICAgICAgICAgICAgICAgICBpcyByZXNwb25zaWJsZSBmb3IgYWxpZ25pbmcgQWRkcmVzcyBpZiBy ZXF1aXJlZC4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgTWFzayAgICAgIE1hc2sgdXNlZCBmb3Ig dGhlIHBvbGxpbmcgY3JpdGVyaWEuIEJ5dGVzIGFib3ZlIFdpZHRoDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW4gTWFzayBhcmUgaWdub3JlZC4gVGhlIGJpdHMgaW4gdGhlIGJ5dGVzIGJl bG93IFdpZHRoDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlIHplcm8gaW4g TWFzayBhcmUgaWdub3JlZCB3aGVuIHBvbGxpbmcgdGhlDQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWVtb3J5IGFkZHJlc3MuDQo+IC0NCj4gICAgQHBhcmFtW2luXSAgIFZhbHVlICAgICBU aGUgY29tcGFyaXNvbiB2YWx1ZSB1c2VkIGZvciB0aGUgcG9sbGluZyBleGl0DQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgY3JpdGVyaWEuDQo+IC0NCj4gICAgQHBhcmFtW2luXSAgIERlbGF5 ICAgICBUaGUgbnVtYmVyIG9mIDEwMCBucyB1bml0cyB0byBwb2xsLiBOb3RlIHRoYXQgdGltZXIN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgbWF5IGJlIG9mIHBvb3JlciBn cmFudWxhcml0eS4NCj4gLQ0KPiAgICBAcGFyYW1bb3V0XSAgUmVzdWx0ICAgIFBvaW50ZXIgdG8g dGhlIGxhc3QgdmFsdWUgcmVhZCBmcm9tIHRoZSBtZW1vcnkNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICBsb2NhdGlvbi4NCj4NCj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAg IFRoZSBsYXN0IGRhdGEgcmV0dXJuZWQgZnJvbSB0aGUgYWNjZXNzIG1hdGNoZWQNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBwb2xsIGV4aXQgY3JpdGVyaWEuDQo+IC0N Cj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFdpZHRoIGlzIGludmFsaWQuDQo+ IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFJlc3VsdCBpcyBOVUxMLg0K PiAtDQo+ICAgIEByZXR2YWwgRUZJX1RJTUVPVVQgICAgICAgICAgICBEZWxheSBleHBpcmVkIGJl Zm9yZSBhIG1hdGNoIG9jY3VycmVkLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNP VVJDRVMgICBUaGUgcmVxdWVzdCBjb3VsZCBub3QgYmUgY29tcGxldGVkDQo+IGR1ZSB0byBhDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWNrIG9mIHJlc291cmNlcy4NCj4g ICoqLw0KPiBAQCAtMTYxNCwzMyArMTQ0NywyMyBAQCBSb290QnJpZGdlSW9Qb2xsTWVtICgNCj4g ICAgZXhwaXJlZCwgb3IgKFJlc3VsdCAmIE1hc2spIGlzIGVxdWFsIHRvIFZhbHVlLg0KPg0KPiAg ICBAcGFyYW1baW5dIFRoaXMgICAgICBBIHBvaW50ZXIgdG8gdGhlIEVGSV9QQ0lfUk9PVF9CUklE R0VfSU9fUFJPVE9DT0wuDQo+IC0NCj4gICAgQHBhcmFtW2luXSBXaWR0aCAgICAgU2lnbmlmaWVz IHRoZSB3aWR0aCBvZiB0aGUgSS9PIG9wZXJhdGlvbnMuDQo+IC0NCj4gICAgQHBhcmFtW2luXSBB ZGRyZXNzICAgVGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgSS9PIG9wZXJhdGlvbnMuIFRoZSBjYWxs ZXIgaXMNCj4gICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2libGUgZm9yIGFsaWduaW5n IEFkZHJlc3MgaWYgcmVxdWlyZWQuDQo+IC0NCj4gICAgQHBhcmFtW2luXSBNYXNrICAgICAgTWFz ayB1c2VkIGZvciB0aGUgcG9sbGluZyBjcml0ZXJpYS4gQnl0ZXMgYWJvdmUgV2lkdGgNCj4gaW4N Cj4gICAgICAgICAgICAgICAgICAgICAgICAgTWFzayBhcmUgaWdub3JlZC4gVGhlIGJpdHMgaW4g dGhlIGJ5dGVzIGJlbG93IFdpZHRoDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWNoIGFy ZSB6ZXJvIGluIE1hc2sgYXJlIGlnbm9yZWQgd2hlbiBwb2xsaW5nIHRoZSBJL08NCj4gICAgICAg ICAgICAgICAgICAgICAgICAgYWRkcmVzcy4NCj4gLQ0KPiAgICBAcGFyYW1baW5dIFZhbHVlICAg ICBUaGUgY29tcGFyaXNvbiB2YWx1ZSB1c2VkIGZvciB0aGUgcG9sbGluZyBleGl0IGNyaXRlcmlh Lg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gRGVsYXkgICAgIFRoZSBudW1iZXIgb2YgMTAwIG5zIHVu aXRzIHRvIHBvbGwuIE5vdGUgdGhhdCB0aW1lcg0KPiAgICAgICAgICAgICAgICAgICAgICAgICBh dmFpbGFibGUgbWF5IGJlIG9mIHBvb3JlciBncmFudWxhcml0eS4NCj4gLQ0KPiAgICBAcGFyYW1b b3V0XSBSZXN1bHQgICBQb2ludGVyIHRvIHRoZSBsYXN0IHZhbHVlIHJlYWQgZnJvbSB0aGUgbWVt b3J5DQo+IGxvY2F0aW9uLg0KPg0KPiAgICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAg VGhlIGxhc3QgZGF0YSByZXR1cm5lZCBmcm9tIHRoZSBhY2Nlc3MgbWF0Y2hlZA0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHBvbGwgZXhpdCBjcml0ZXJpYS4NCj4gLQ0K PiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgV2lkdGggaXMgaW52YWxpZC4NCj4g LQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgUmVzdWx0IGlzIE5VTEwuDQo+ IC0NCj4gICAgQHJldHZhbCBFRklfVElNRU9VVCAgICAgICAgICAgIERlbGF5IGV4cGlyZWQgYmVm b3JlIGEgbWF0Y2ggb2NjdXJyZWQuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfT1VUX09GX1JFU09V UkNFUyAgIFRoZSByZXF1ZXN0IGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQNCj4gZHVlIHRvIGENCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhY2sgb2YgcmVzb3VyY2VzLg0KPiAg KiovDQo+IEBAIC0xNzMyLDI2ICsxNTU1LDE5IEBAIFJvb3RCcmlkZ2VJb1BvbGxJbyAoDQo+ICAg IFBDSSBSb290IEJyaWRnZSBvbiBhIHBsYXRmb3JtIG1pZ2h0IHJlcXVpcmUuDQo+DQo+ICAgIEBw YXJhbVtpbl0gICBUaGlzICAgICAgQSBwb2ludGVyIHRvIHRoZQ0KPiBFRklfUENJX1JPT1RfQlJJ REdFX0lPX1BST1RPQ09MLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBXaWR0aCAgICAgU2lnbmlm aWVzIHRoZSB3aWR0aCBvZiB0aGUgbWVtb3J5IG9wZXJhdGlvbi4NCj4gLQ0KPiAgICBAcGFyYW1b aW5dICAgQWRkcmVzcyAgIFRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSBvcGVyYXRpb24u IFRoZQ0KPiBjYWxsZXINCj4gICAgICAgICAgICAgICAgICAgICAgICAgICBpcyByZXNwb25zaWJs ZSBmb3IgYWxpZ25pbmcgdGhlIEFkZHJlc3MgaWYgcmVxdWlyZWQuDQo+IC0NCj4gICAgQHBhcmFt W2luXSAgIENvdW50ICAgICBUaGUgbnVtYmVyIG9mIG1lbW9yeSBvcGVyYXRpb25zIHRvIHBlcmZv cm0uDQo+IEJ5dGVzDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZWQgaXMgV2lkdGgg c2l6ZSAqIENvdW50LCBzdGFydGluZyBhdCBBZGRyZXNzLg0KPiAtDQo+ICAgIEBwYXJhbVtvdXRd ICBCdWZmZXIgICAgRm9yIHJlYWQgb3BlcmF0aW9ucywgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciB0 byBzdG9yZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSByZXN1bHRzLiBGb3Igd3Jp dGUgb3BlcmF0aW9ucywgdGhlIHNvdXJjZSBidWZmZXINCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICB0byB3cml0ZSBkYXRhIGZyb20uDQo+DQo+ICAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAg ICAgICAgICBUaGUgZGF0YSB3YXMgcmVhZCBmcm9tIG9yIHdyaXR0ZW4gdG8gdGhlIFBDSQ0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdCBicmlkZ2UuDQo+IC0NCj4gICAg QHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFdpZHRoIGlzIGludmFsaWQgZm9yIHRoaXMg UENJIHJvb3QgYnJpZGdlLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVS ICBCdWZmZXIgaXMgTlVMTC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VT ICAgVGhlIHJlcXVlc3QgY291bGQgbm90IGJlIGNvbXBsZXRlZA0KPiBkdWUgdG8gYQ0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFjayBvZiByZXNvdXJjZXMuDQo+ICAqKi8N Cj4gQEAgLTE3NzksMjYgKzE1OTUsMTkgQEAgUm9vdEJyaWRnZUlvTWVtUmVhZCAoDQo+ICAgIFBD SSBSb290IEJyaWRnZSBvbiBhIHBsYXRmb3JtIG1pZ2h0IHJlcXVpcmUuDQo+DQo+ICAgIEBwYXJh bVtpbl0gICBUaGlzICAgICAgQSBwb2ludGVyIHRvIHRoZQ0KPiBFRklfUENJX1JPT1RfQlJJREdF X0lPX1BST1RPQ09MLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBXaWR0aCAgICAgU2lnbmlmaWVz IHRoZSB3aWR0aCBvZiB0aGUgbWVtb3J5IG9wZXJhdGlvbi4NCj4gLQ0KPiAgICBAcGFyYW1baW5d ICAgQWRkcmVzcyAgIFRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSBvcGVyYXRpb24uIFRo ZQ0KPiBjYWxsZXINCj4gICAgICAgICAgICAgICAgICAgICAgICAgICBpcyByZXNwb25zaWJsZSBm b3IgYWxpZ25pbmcgdGhlIEFkZHJlc3MgaWYgcmVxdWlyZWQuDQo+IC0NCj4gICAgQHBhcmFtW2lu XSAgIENvdW50ICAgICBUaGUgbnVtYmVyIG9mIG1lbW9yeSBvcGVyYXRpb25zIHRvIHBlcmZvcm0u DQo+IEJ5dGVzDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZWQgaXMgV2lkdGggc2l6 ZSAqIENvdW50LCBzdGFydGluZyBhdCBBZGRyZXNzLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBC dWZmZXIgICAgRm9yIHJlYWQgb3BlcmF0aW9ucywgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciB0byBz dG9yZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSByZXN1bHRzLiBGb3Igd3JpdGUg b3BlcmF0aW9ucywgdGhlIHNvdXJjZSBidWZmZXINCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICB0byB3cml0ZSBkYXRhIGZyb20uDQo+DQo+ICAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAg ICAgICBUaGUgZGF0YSB3YXMgcmVhZCBmcm9tIG9yIHdyaXR0ZW4gdG8gdGhlIFBDSQ0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdCBicmlkZ2UuDQo+IC0NCj4gICAgQHJl dHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFdpZHRoIGlzIGludmFsaWQgZm9yIHRoaXMgUENJ IHJvb3QgYnJpZGdlLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBC dWZmZXIgaXMgTlVMTC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAg VGhlIHJlcXVlc3QgY291bGQgbm90IGJlIGNvbXBsZXRlZA0KPiBkdWUgdG8gYQ0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFjayBvZiByZXNvdXJjZXMuDQo+ICAqKi8NCj4g QEAgLTE4MjAsMTUgKzE2MjksMTEgQEAgUm9vdEJyaWRnZUlvTWVtV3JpdGUgKA0KPiAgICBicmlk Z2UgSS9PIHNwYWNlLg0KPg0KPiAgICBAcGFyYW1baW5dICAgVGhpcyAgICAgICAgQSBwb2ludGVy IHRvIHRoZQ0KPiBFRklfUENJX1JPT1RfQlJJREdFX0lPX1BST1RPQ09MLg0KPiAtDQo+ICAgIEBw YXJhbVtpbl0gICBXaWR0aCAgICAgICBTaWduaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBtZW1vcnkg b3BlcmF0aW9ucy4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgQWRkcmVzcyAgICAgVGhlIGJhc2Ug YWRkcmVzcyBvZiB0aGUgSS9PIG9wZXJhdGlvbi4gVGhlIGNhbGxlcg0KPiBpcw0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2libGUgZm9yIGFsaWduaW5nIHRoZSBBZGRyZXNz IGlmIHJlcXVpcmVkLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBDb3VudCAgICAgICBUaGUgbnVt YmVyIG9mIEkvTyBvcGVyYXRpb25zIHRvIHBlcmZvcm0uIEJ5dGVzDQo+IG1vdmVkDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpcyBXaWR0aCBzaXplICogQ291bnQsIHN0YXJ0aW5nIGF0 IEFkZHJlc3MuDQo+IC0NCj4gICAgQHBhcmFtW291dF0gIEJ1ZmZlciAgICAgIEZvciByZWFkIG9w ZXJhdGlvbnMsIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgdG8gc3RvcmUNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRoZSByZXN1bHRzLiBGb3Igd3JpdGUgb3BlcmF0aW9ucywgdGhlIHNv dXJjZSBidWZmZXINCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHdyaXRlIGRhdGEg ZnJvbS4NCj4gQEAgLTE4MzYsMTEgKzE2NDEsOCBAQCBSb290QnJpZGdlSW9NZW1Xcml0ZSAoDQo+ DQo+ICAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgIFRoZSBkYXRhIHdhcyByZWFk IGZyb20gb3Igd3JpdHRlbiB0byB0aGUgUENJDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJvb3QgYnJpZGdlLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFS QU1FVEVSICAgIFdpZHRoIGlzIGludmFsaWQgZm9yIHRoaXMgUENJIHJvb3QgYnJpZGdlLg0KPiAt DQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgIEJ1ZmZlciBpcyBOVUxMLg0K PiAtDQo+ICAgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgICAgIFRoZSByZXF1ZXN0IGNv dWxkIG5vdCBiZSBjb21wbGV0ZWQNCj4gZHVlIHRvIGENCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGFjayBvZiByZXNvdXJjZXMuDQo+ICAqKi8NCj4gQEAgLTE4NjIsMjYg KzE2NjQsMTkgQEAgUm9vdEJyaWRnZUlvSW9SZWFkICgNCj4gICAgYnJpZGdlIEkvTyBzcGFjZS4N Cj4NCj4gICAgQHBhcmFtW2luXSAgIFRoaXMgICAgICAgIEEgcG9pbnRlciB0byB0aGUNCj4gRUZJ X1BDSV9ST09UX0JSSURHRV9JT19QUk9UT0NPTC4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgV2lk dGggICAgICAgU2lnbmlmaWVzIHRoZSB3aWR0aCBvZiB0aGUgbWVtb3J5IG9wZXJhdGlvbnMuDQo+ IC0NCj4gICAgQHBhcmFtW2luXSAgIEFkZHJlc3MgICAgIFRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhl IEkvTyBvcGVyYXRpb24uIFRoZSBjYWxsZXINCj4gaXMNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlc3BvbnNpYmxlIGZvciBhbGlnbmluZyB0aGUgQWRkcmVzcyBpZiByZXF1aXJlZC4N Cj4gLQ0KPiAgICBAcGFyYW1baW5dICAgQ291bnQgICAgICAgVGhlIG51bWJlciBvZiBJL08gb3Bl cmF0aW9ucyB0byBwZXJmb3JtLiBCeXRlcw0KPiBtb3ZlZA0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaXMgV2lkdGggc2l6ZSAqIENvdW50LCBzdGFydGluZyBhdCBBZGRyZXNzLg0KPiAt DQo+ICAgIEBwYXJhbVtpbl0gICBCdWZmZXIgICAgICBGb3IgcmVhZCBvcGVyYXRpb25zLCB0aGUg ZGVzdGluYXRpb24gYnVmZmVyIHRvIHN0b3JlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGUgcmVzdWx0cy4gRm9yIHdyaXRlIG9wZXJhdGlvbnMsIHRoZSBzb3VyY2UgYnVmZmVyDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byB3cml0ZSBkYXRhIGZyb20uDQo+DQo+ICAg IEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgIFRoZSBkYXRhIHdhcyByZWFkIGZyb20g b3Igd3JpdHRlbiB0byB0aGUgUENJDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJvb3QgYnJpZGdlLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVS ICAgIFdpZHRoIGlzIGludmFsaWQgZm9yIHRoaXMgUENJIHJvb3QgYnJpZGdlLg0KPiAtDQo+ICAg IEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgIEJ1ZmZlciBpcyBOVUxMLg0KPiAtDQo+ ICAgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgICAgIFRoZSByZXF1ZXN0IGNvdWxkIG5v dCBiZSBjb21wbGV0ZWQNCj4gZHVlIHRvIGENCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGFjayBvZiByZXNvdXJjZXMuDQo+ICAqKi8NCj4gQEAgLTE5MTIsMjYgKzE3MDcs MjAgQEAgUm9vdEJyaWRnZUlvSW9Xcml0ZSAoDQo+DQo+ICAgIEBwYXJhbVtpbl0gVGhpcyAgICAg ICAgQSBwb2ludGVyIHRvIHRoZQ0KPiBFRklfUENJX1JPT1RfQlJJREdFX0lPX1BST1RPQ09MDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuDQo+IC0NCj4gICAgQHBhcmFtW2lu XSBXaWR0aCAgICAgICBTaWduaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBtZW1vcnkgb3BlcmF0aW9u cy4NCj4gLQ0KPiAgICBAcGFyYW1baW5dIERlc3RBZGRyZXNzIFRoZSBkZXN0aW5hdGlvbiBhZGRy ZXNzIG9mIHRoZSBtZW1vcnkNCj4gb3BlcmF0aW9uLiBUaGUNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGFsaWduaW5nIHRoZSBEZXN0QWRkcmVz cyBpZg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkLg0KPiAtDQo+ICAgIEBw YXJhbVtpbl0gU3JjQWRkcmVzcyAgVGhlIHNvdXJjZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgb3Bl cmF0aW9uLiBUaGUNCj4gY2FsbGVyDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgcmVz cG9uc2libGUgZm9yIGFsaWduaW5nIHRoZSBTcmNBZGRyZXNzIGlmDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmVxdWlyZWQuDQo+IC0NCj4gICAgQHBhcmFtW2luXSBDb3VudCAgICAgICBU aGUgbnVtYmVyIG9mIG1lbW9yeSBvcGVyYXRpb25zIHRvIHBlcmZvcm0uDQo+IEJ5dGVzDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgbW92ZWQgaXMgV2lkdGggc2l6ZSAqIENvdW50LCBzdGFy dGluZyBhdCBEZXN0QWRkcmVzcw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBTcmNB ZGRyZXNzLg0KPg0KPiAgICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAgICAgICAgICBUaGUgZGF0 YSB3YXMgY29waWVkIGZyb20gb25lIG1lbW9yeSByZWdpb24NCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdG8gYW5vdGhlciBtZW1vcnkgcmVnaW9uLg0KPiAtDQo+ICAgIEBy ZXR2YWwgIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgIFdpZHRoIGlzIGludmFsaWQgZm9yIHRoaXMg UENJIHJvb3QgYnJpZGdlLg0KPiAtDQo+ICAgIEByZXR2YWwgIEVGSV9PVVRfT0ZfUkVTT1VSQ0VT ICAgIFRoZSByZXF1ZXN0IGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQNCj4gZHVlIHRvIGENCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFjayBvZiByZXNvdXJjZXMuDQo+ICAq Ki8NCj4gQEAgLTIwMTYsMjcgKzE4MDUsMjAgQEAgUm9vdEJyaWRnZUlvQ29weU1lbSAoDQo+ICAg IHRoYXQgYSBQQ0kgUm9vdCBCcmlkZ2Ugb24gYSBwbGF0Zm9ybSBtaWdodCByZXF1aXJlLg0KPg0K PiAgICBAcGFyYW1baW5dICAgVGhpcyAgICAgIEEgcG9pbnRlciB0byB0aGUNCj4gRUZJX1BDSV9S T09UX0JSSURHRV9JT19QUk9UT0NPTC4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAgV2lkdGggICAg IFNpZ25pZmllcyB0aGUgd2lkdGggb2YgdGhlIG1lbW9yeSBvcGVyYXRpb25zLg0KPiAtDQo+ICAg IEBwYXJhbVtpbl0gICBBZGRyZXNzICAgVGhlIGFkZHJlc3Mgd2l0aGluIHRoZSBQQ0kgY29uZmln dXJhdGlvbiBzcGFjZSBmb3INCj4gdGhlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJ IGNvbnRyb2xsZXIuDQo+IC0NCj4gICAgQHBhcmFtW2luXSAgIENvdW50ICAgICBUaGUgbnVtYmVy IG9mIFBDSSBjb25maWd1cmF0aW9uIG9wZXJhdGlvbnMgdG8NCj4gcGVyZm9ybS4NCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICBCeXRlcyBtb3ZlZCBpcyBXaWR0aCBzaXplICogQ291bnQsIHN0 YXJ0aW5nIGF0DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcy4NCj4gLQ0KPiAg ICBAcGFyYW1bb3V0XSAgQnVmZmVyICAgIEZvciByZWFkIG9wZXJhdGlvbnMsIHRoZSBkZXN0aW5h dGlvbiBidWZmZXIgdG8gc3RvcmUNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcmVz dWx0cy4gRm9yIHdyaXRlIG9wZXJhdGlvbnMsIHRoZSBzb3VyY2UgYnVmZmVyDQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgdG8gd3JpdGUgZGF0YSBmcm9tLg0KPg0KPiAgICBAcmV0dmFsIEVG SV9TVUNDRVNTICAgICAgICAgICAgVGhlIGRhdGEgd2FzIHJlYWQgZnJvbSBvciB3cml0dGVuIHRv IHRoZSBQQ0kNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3QgYnJpZGdl Lg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBXaWR0aCBpcyBpbnZh bGlkIGZvciB0aGlzIFBDSSByb290IGJyaWRnZS4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZB TElEX1BBUkFNRVRFUiAgQnVmZmVyIGlzIE5VTEwuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfT1VU X09GX1JFU09VUkNFUyAgIFRoZSByZXF1ZXN0IGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQNCj4gZHVl IHRvIGENCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhY2sgb2YgcmVzb3Vy Y2VzLg0KPiAgKiovDQo+IEBAIC0yMDY0LDI3ICsxODQ2LDIwIEBAIFJvb3RCcmlkZ2VJb1BjaVJl YWQgKA0KPiAgICB0aGF0IGEgUENJIFJvb3QgQnJpZGdlIG9uIGEgcGxhdGZvcm0gbWlnaHQgcmVx dWlyZS4NCj4NCj4gICAgQHBhcmFtW2luXSAgIFRoaXMgICAgICBBIHBvaW50ZXIgdG8gdGhlDQo+ IEVGSV9QQ0lfUk9PVF9CUklER0VfSU9fUFJPVE9DT0wuDQo+IC0NCj4gICAgQHBhcmFtW2luXSAg IFdpZHRoICAgICBTaWduaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBtZW1vcnkgb3BlcmF0aW9ucy4N Cj4gLQ0KPiAgICBAcGFyYW1baW5dICAgQWRkcmVzcyAgIFRoZSBhZGRyZXNzIHdpdGhpbiB0aGUg UENJIGNvbmZpZ3VyYXRpb24gc3BhY2UgZm9yDQo+IHRoZQ0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBDSSBjb250cm9sbGVyLg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICBDb3VudCAgICAg VGhlIG51bWJlciBvZiBQQ0kgY29uZmlndXJhdGlvbiBvcGVyYXRpb25zIHRvDQo+IHBlcmZvcm0u DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZXMgbW92ZWQgaXMgV2lkdGggc2l6ZSAq IENvdW50LCBzdGFydGluZyBhdA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3Mu DQo+IC0NCj4gICAgQHBhcmFtW2luXSAgIEJ1ZmZlciAgICBGb3IgcmVhZCBvcGVyYXRpb25zLCB0 aGUgZGVzdGluYXRpb24gYnVmZmVyIHRvIHN0b3JlDQo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGhlIHJlc3VsdHMuIEZvciB3cml0ZSBvcGVyYXRpb25zLCB0aGUgc291cmNlIGJ1ZmZlcg0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHdyaXRlIGRhdGEgZnJvbS4NCj4NCj4gICAg QHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgIFRoZSBkYXRhIHdhcyByZWFkIGZyb20gb3Ig d3JpdHRlbiB0byB0aGUgUENJDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy b290IGJyaWRnZS4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgV2lk dGggaXMgaW52YWxpZCBmb3IgdGhpcyBQQ0kgcm9vdCBicmlkZ2UuDQo+IC0NCj4gICAgQHJldHZh bCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIEJ1ZmZlciBpcyBOVUxMLg0KPiAtDQo+ICAgIEByZXR2 YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgICBUaGUgcmVxdWVzdCBjb3VsZCBub3QgYmUgY29tcGxl dGVkDQo+IGR1ZSB0byBhDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWNr IG9mIHJlc291cmNlcy4NCj4gICoqLw0KPiBAQCAtMjExMSw0MiArMTg4NiwyOSBAQCBSb290QnJp ZGdlSW9QY2lXcml0ZSAoDQo+DQo+ICAgIEBwYXJhbVtpbl0gICAgICAgVGhpcyAgICAgICAgICAg IEEgcG9pbnRlciB0byB0aGUNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RUZJX1BDSV9ST09UX0JSSURHRV9JT19QUk9UT0NPTC4NCj4gLQ0KPiAgICBAcGFyYW1baW5dICAg ICAgIE9wZXJhdGlvbiAgICAgICBJbmRpY2F0ZXMgaWYgdGhlIGJ1cyBtYXN0ZXIgaXMgZ29pbmcg dG8gcmVhZA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciB3cml0ZSB0 byBzeXN0ZW0gbWVtb3J5Lg0KPiAtDQo+ICAgIEBwYXJhbVtpbl0gICAgICAgSG9zdEFkZHJlc3Mg ICAgIFRoZSBzeXN0ZW0gbWVtb3J5IGFkZHJlc3MgdG8gbWFwIHRvIHRoZQ0KPiBQQ0kNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci4NCj4gLQ0KPiAgICBA cGFyYW1baW4sIG91dF0gIE51bWJlck9mQnl0ZXMgICBPbiBpbnB1dCB0aGUgbnVtYmVyIG9mIGJ5 dGVzIHRvIG1hcC4NCj4gT24NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b3V0cHV0IHRoZSBudW1iZXIgb2YgYnl0ZXMgdGhhdCB3ZXJlIG1hcHBlZC4NCj4gLQ0KPiAgICBA cGFyYW1bb3V0XSAgICAgIERldmljZUFkZHJlc3MgICBUaGUgcmVzdWx0aW5nIG1hcCBhZGRyZXNz IGZvciB0aGUgYnVzDQo+IG1hc3Rlcg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQQ0kgY29udHJvbGxlciB0byB1c2UgdG8gYWNjZXNzIHRoZSBzeXN0ZW0NCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtb3J5J3MgSG9zdEFkZHJlc3MuDQo+IC0N Cj4gICAgQHBhcmFtW291dF0gICAgICBNYXBwaW5nICAgICAgICAgVGhlIHZhbHVlIHRvIHBhc3Mg dG8gVW5tYXAoKSB3aGVuIHRoZSBidXMNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWFzdGVyIERNQSBvcGVyYXRpb24gaXMgY29tcGxldGUuDQo+DQo+ICAgIEByZXR2YWwg RUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgcmFuZ2Ugd2FzIG1hcHBlZCBmb3IgdGhlIHJldHVy bmVkDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXJPZkJ5dGVzLg0K PiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBPcGVyYXRpb24gaXMgaW52 YWxpZC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgSG9zdEFkZHJl c3MgaXMgTlVMTC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgTnVt YmVyT2ZCeXRlcyBpcyBOVUxMLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1F VEVSICBEZXZpY2VBZGRyZXNzIGlzIE5VTEwuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJ RF9QQVJBTUVURVIgIE1hcHBpbmcgaXMgTlVMTC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9VTlNV UFBPUlRFRCAgICAgICAgVGhlIEhvc3RBZGRyZXNzIGNhbm5vdCBiZSBtYXBwZWQgYXMgYQ0KPiBj b21tb24NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci4NCj4gLQ0K PiAgICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJST1IgICAgICAgVGhlIHN5c3RlbSBoYXJkd2FyZSBj b3VsZCBub3QgbWFwIHRoZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx dWVzdGVkIGFkZHJlc3MuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAg IFRoZSByZXF1ZXN0IGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQNCj4gZHVlIHRvIGENCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhY2sgb2YgcmVzb3VyY2VzLg0KPiAgKiovDQo+ IEBAIC0yMjg1LDE0ICsyMDQ3LDExIEBAIFJvb3RCcmlkZ2VJb01hcCAoDQo+ICAgIEFueSByZXNv dXJjZXMgdXNlZCBmb3IgdGhlIG1hcHBpbmcgYXJlIGZyZWVkLg0KPg0KPiAgICBAcGFyYW1baW5d IFRoaXMgICAgICBBIHBvaW50ZXIgdG8gdGhlIEVGSV9QQ0lfUk9PVF9CUklER0VfSU9fUFJPVE9D T0wuDQo+IC0NCj4gICAgQHBhcmFtW2luXSBNYXBwaW5nICAgVGhlIG1hcHBpbmcgdmFsdWUgcmV0 dXJuZWQgZnJvbSBNYXAoKS4NCj4NCj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAg IFRoZSByYW5nZSB3YXMgdW5tYXBwZWQuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9Q QVJBTUVURVIgIE1hcHBpbmcgaXMgbm90IGEgdmFsdWUgdGhhdCB3YXMNCj4gcmV0dXJuZWQgYnkN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcCgpLg0KPiAtDQo+ICAgIEBy ZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAgICAgICBUaGUgZGF0YSB3YXMgbm90IGNvbW1pdHRlZCB0 byB0aGUgdGFyZ2V0DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW0g bWVtb3J5Lg0KPiAgKiovDQo+IEBAIC0yMzQ2LDE3ICsyMTA1LDEyIEBAIFJvb3RCcmlkZ2VJb1Vu bWFwICgNCj4gICAgb3IgRWZpUGNpT3BlcmF0aW9uQnVzTWFzdGVyQ29tbW9uQnVmZmVyNjQgbWFw cGluZy4NCj4NCj4gICAgQHBhcmFtIFRoaXMgICAgICAgIEEgcG9pbnRlciB0byB0aGUgRUZJX1BD SV9ST09UX0JSSURHRV9JT19QUk9UT0NPTC4NCj4gLQ0KPiAgICBAcGFyYW0gVHlwZSAgICAgICAg VGhpcyBwYXJhbWV0ZXIgaXMgbm90IHVzZWQgYW5kIG11c3QgYmUgaWdub3JlZC4NCj4gLQ0KPiAg ICBAcGFyYW0gTWVtb3J5VHlwZSAgVGhlIHR5cGUgb2YgbWVtb3J5IHRvIGFsbG9jYXRlLA0KPiBF ZmlCb290U2VydmljZXNEYXRhIG9yDQo+ICAgICAgICAgICAgICAgICAgICAgICBFZmlSdW50aW1l U2VydmljZXNEYXRhLg0KPiAtDQo+ICAgIEBwYXJhbSBQYWdlcyAgICAgICBUaGUgbnVtYmVyIG9m IHBhZ2VzIHRvIGFsbG9jYXRlLg0KPiAtDQo+ICAgIEBwYXJhbSBIb3N0QWRkcmVzcyBBIHBvaW50 ZXIgdG8gc3RvcmUgdGhlIGJhc2Ugc3lzdGVtIG1lbW9yeSBhZGRyZXNzDQo+IG9mIHRoZQ0KPiAg ICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdGVkIHJhbmdlLg0KPiAtDQo+ICAgIEBwYXJhbSBB dHRyaWJ1dGVzICBUaGUgcmVxdWVzdGVkIGJpdCBtYXNrIG9mIGF0dHJpYnV0ZXMgZm9yIHRoZSBh bGxvY2F0ZWQNCj4gICAgICAgICAgICAgICAgICAgICAgIHJhbmdlLiBPbmx5IHRoZSBhdHRyaWJ1 dGVzDQo+ICAgICAgICAgICAgICAgICAgICAgICBFRklfUENJX0FUVFJJQlVURV9NRU1PUllfV1JJ VEVfQ09NQklORSwNCj4gQEAgLTIzNjUsMTUgKzIxMTksMTEgQEAgUm9vdEJyaWRnZUlvVW5tYXAg KA0KPiAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24uDQo+DQo+ICAgIEByZXR2YWwgRUZJ X1NVQ0NFU1MgICAgICAgICAgICBUaGUgcmVxdWVzdGVkIG1lbW9yeSBwYWdlcyB3ZXJlIGFsbG9j YXRlZC4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgTWVtb3J5VHlw ZSBpcyBpbnZhbGlkLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBI b3N0QWRkcmVzcyBpcyBOVUxMLg0KPiAtDQo+ICAgIEByZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAg ICAgICBBdHRyaWJ1dGVzIGlzIHVuc3VwcG9ydGVkLiBUaGUgb25seSBsZWdhbA0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJpdHMgYXJlIE1FTU9SWV9XUklU RV9DT01CSU5FLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVNT1JZX0NB Q0hFRCwgYW5kIERVQUxfQUREUkVTU19DWUNMRS4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9PVVRf T0ZfUkVTT1VSQ0VTICAgVGhlIG1lbW9yeSBwYWdlcyBjb3VsZCBub3QgYmUNCj4gYWxsb2NhdGVk Lg0KPiAgKiovDQo+ICBFRklfU1RBVFVTDQo+IEBAIC0yNDQxLDEzICsyMTkxLDEwIEBAIFJvb3RC cmlkZ2VJb0FsbG9jYXRlQnVmZmVyICgNCj4gICAgQWxsb2NhdGVCdWZmZXIoKS4NCj4NCj4gICAg QHBhcmFtIFRoaXMgICAgICAgIEEgcG9pbnRlciB0byB0aGUgRUZJX1BDSV9ST09UX0JSSURHRV9J T19QUk9UT0NPTC4NCj4gLQ0KPiAgICBAcGFyYW0gUGFnZXMgICAgICAgVGhlIG51bWJlciBvZiBw YWdlcyB0byBmcmVlLg0KPiAtDQo+ICAgIEBwYXJhbSBIb3N0QWRkcmVzcyBUaGUgYmFzZSBzeXN0 ZW0gbWVtb3J5IGFkZHJlc3Mgb2YgdGhlIGFsbG9jYXRlZA0KPiByYW5nZS4NCj4NCj4gICAgQHJl dHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgIFRoZSByZXF1ZXN0ZWQgbWVtb3J5IHBhZ2VzIHdl cmUgZnJlZWQuDQo+IC0NCj4gICAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFRoZSBt ZW1vcnkgcmFuZ2Ugc3BlY2lmaWVkIGJ5DQo+IEhvc3RBZGRyZXNzIGFuZA0KPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFnZXMgd2FzIG5vdCBhbGxvY2F0ZWQgd2l0aCBBbGxv Y2F0ZUJ1ZmZlcigpLg0KPiAgKiovDQo+IEBAIC0yNDgwLDcgKzIyMjcsNiBAQCBSb290QnJpZGdl SW9GcmVlQnVmZmVyICgNCj4NCj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgVGhlIFBD SSBwb3N0ZWQgd3JpdGUgdHJhbnNhY3Rpb25zIHdlcmUgZmx1c2hlZA0KPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmcm9tIHRoZSBQQ0kgaG9zdCBicmlkZ2UgdG8gc3lzdGVtIG1lbW9y eS4NCj4gLQ0KPiAgICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJST1IgICBUaGUgUENJIHBvc3RlZCB3 cml0ZSB0cmFuc2FjdGlvbnMgd2VyZSBub3QNCj4gZmx1c2hlZA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmcm9tIHRoZSBQQ0kgaG9zdCBicmlkZ2UgZHVlIHRvIGEgaGFyZHdhcmUg ZXJyb3IuDQo+ICAqKi8NCj4gQEAgLTI1MDYsMTAgKzIyNTIsOCBAQCBSb290QnJpZGdlSW9GbHVz aCAoDQo+ICAgIGN1cnJlbnRseSB1c2luZy4NCj4NCj4gICAgQHBhcmFtIFRoaXMgICAgICAgIEEg cG9pbnRlciB0byB0aGUgRUZJX1BDSV9ST09UX0JSSURHRV9JT19QUk9UT0NPTC4NCj4gLQ0KPiAg ICBAcGFyYW0gU3VwcG9ydGVkICAgQSBwb2ludGVyIHRvIHRoZSBtYXNrIG9mIGF0dHJpYnV0ZXMg dGhhdCB0aGlzIFBDSSByb290DQo+ICAgICAgICAgICAgICAgICAgICAgICBicmlkZ2Ugc3VwcG9y dHMgc2V0dGluZyB3aXRoIFNldEF0dHJpYnV0ZXMoKS4NCj4gLQ0KPiAgICBAcGFyYW0gQXR0cmli dXRlcyAgQSBwb2ludGVyIHRvIHRoZSBtYXNrIG9mIGF0dHJpYnV0ZXMgdGhhdCB0aGlzIFBDSSBy b290DQo+ICAgICAgICAgICAgICAgICAgICAgICBicmlkZ2UgaXMgY3VycmVudGx5IHVzaW5nLg0K Pg0KPiBAQCAtMjUxOCw3ICsyMjYyLDYgQEAgUm9vdEJyaWRnZUlvRmx1c2ggKA0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gU3VwcG9ydHMuIElmIEF0dHJpYnV0ZXMgaXMg bm90IE5VTEwsIHRoZW4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBh dHRyaWJ1dGVzIHRoYXQgdGhlIFBDSSByb290IGJyaWRnZSBpcw0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY3VycmVudGx5IHVzaW5nIGlzIHJldHVybmVkIGluIEF0dHJpYnV0 ZXMuDQo+IC0NCj4gICAgQHJldHZhbCAgRUZJX0lOVkFMSURfUEFSQU1FVEVSIEJvdGggU3VwcG9y dHMgYW5kIEF0dHJpYnV0ZXMgYXJlIE5VTEwuDQo+ICAqKi8NCj4gIEVGSV9TVEFUVVMNCj4gQEAg LTI1NjYsNyArMjMwOSw2IEBAIFJvb3RCcmlkZ2VJb0dldEF0dHJpYnV0ZXMgKA0KPg0KPiAgICBA cGFyYW1baW5dICAgICAgIFRoaXMgICAgICAgICAgICBBIHBvaW50ZXIgdG8gdGhlDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9QQ0lfUk9PVF9CUklER0VfSU9fUFJP VE9DT0wuDQo+IC0NCj4gICAgQHBhcmFtW2luXSAgICAgICBBdHRyaWJ1dGVzICAgICAgVGhlIG1h c2sgb2YgYXR0cmlidXRlcyB0byBzZXQuIElmIHRoZQ0KPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhdHRyaWJ1dGUgYml0IE1FTU9SWV9XUklURV9DT01CSU5FLA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRU1PUllfQ0FDSEVELCBvciBNRU1PUllf RElTQUJMRSBpcyBzZXQsDQo+IEBAIC0yNTc2LDIxICsyMzE4LDE3IEBAIFJvb3RCcmlkZ2VJb0dl dEF0dHJpYnV0ZXMgKA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRU1P UllfRElTQUJMRSBhcmUgbm90IHNldCwgdGhlbg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXNvdXJjZUJhc2UgYW5kIFJlc291cmNlTGVuZ3RoIGFyZSBpZ25vcmVkLA0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbWF5IGJlIE5VTEwuDQo+ IC0NCj4gICAgQHBhcmFtW2luLCBvdXRdICBSZXNvdXJjZUJhc2UgICAgQSBwb2ludGVyIHRvIHRo ZSBiYXNlIGFkZHJlc3Mgb2YgdGhlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJlc291cmNlIHJhbmdlIHRvIGJlIG1vZGlmaWVkIGJ5IHRoZQ0KPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIHNwZWNpZmllZCBieSBBdHRyaWJ1dGVz Lg0KPiAtDQo+ICAgIEBwYXJhbVtpbiwgb3V0XSAgUmVzb3VyY2VMZW5ndGggIEEgcG9pbnRlciB0 byB0aGUgbGVuZ3RoIG9mIHRoZSByZXNvdXJjZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByYW5nZSB0byBiZSBtb2RpZmllZCBieSB0aGUgYXR0cmlidXRlcw0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpZWQgYnkgQXR0cmlidXRlcy4N Cj4NCj4gICAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgIFRoZSBjdXJyZW50IGNvbmZpZ3VyYXRp b24gb2YgdGhpcyBQQ0kgcm9vdCBicmlkZ2UNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHdhcyByZXR1cm5lZCBpbiBSZXNvdXJjZXMuDQo+IC0NCj4gICAgQHJldHZhbCAgRUZJX1VOU1VQ UE9SVEVEIFRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBQQ0kgcm9vdA0KPiBicmlk Z2UNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQu DQo+IC0NCj4gICAgQHJldHZhbCAgRUZJX0lOVkFMSURfUEFSQU1FVEVSIEludmFsaWQgcG9pbnRl ciBvZg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1BDSV9ST09UX0JS SURHRV9JT19QUk9UT0NPTA0KPiAgKiovDQo+IEBAIC0yNjM5LDcgKzIzNzcsNiBAQCBSb290QnJp ZGdlSW9TZXRBdHRyaWJ1dGVzICgNCj4gICAgb3IgbW9yZSBRV09SRCBBZGRyZXNzIFNwYWNlIERl c2NyaXB0b3JzIGZvbGxvd2VkIGJ5IGFuIEVuZCBUYWcuDQo+DQo+ICAgIEBwYXJhbVtpbl0gICBU aGlzICAgICAgICBBIHBvaW50ZXIgdG8gdGhlDQo+IEVGSV9QQ0lfUk9PVF9CUklER0VfSU9fUFJP VE9DT0wuDQo+IC0NCj4gICAgQHBhcmFtW291dF0gIFJlc291cmNlcyAgIEEgcG9pbnRlciB0byB0 aGUgQUNQSSAyLjAgcmVzb3VyY2UgZGVzY3JpcHRvcnMNCj4gdGhhdA0KPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGVzY3JpYmUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBvZiB0aGlz IFBDSSByb290DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmlkZ2UuIFRoZSBzdG9y YWdlIGZvciB0aGUgQUNQSSAyLjAgcmVzb3VyY2UNCj4gQEAgLTI2NTAsMTAgKzIzODcsOCBAQCBS b290QnJpZGdlSW9TZXRBdHRyaWJ1dGVzICgNCj4NCj4gICAgQHJldHZhbCAgRUZJX1NVQ0NFU1Mg ICAgIFRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBQQ0kgcm9vdCBicmlkZ2UNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcyByZXR1cm5lZCBpbiBSZXNvdXJjZXMuDQo+ IC0NCj4gICAgQHJldHZhbCAgRUZJX1VOU1VQUE9SVEVEIFRoZSBjdXJyZW50IGNvbmZpZ3VyYXRp b24gb2YgdGhpcyBQQ0kgcm9vdA0KPiBicmlkZ2UNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQuDQo+IC0NCj4gICAgQHJldHZhbCAgRUZJX0lOVkFM SURfUEFSQU1FVEVSIEludmFsaWQgcG9pbnRlciBvZg0KPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRUZJX1BDSV9ST09UX0JSSURHRV9JT19QUk9UT0NPTA0KPiAgKiovDQo+IGRp ZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvTWRl TW9kdWxlUGtnL1VuaXZlcnNhbC8NCj4gQ2Fwc3VsZVJ1bnRpbWVEeGUvQ2Fwc3VsZVNlcnZpY2Uu Yw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9NZGVNb2R1bGVQ a2cvVW5pdmVyc2FsLw0KPiBDYXBzdWxlUnVudGltZUR4ZS9DYXBzdWxlU2VydmljZS5jDQo+IGlu ZGV4IDQ1ZTllNDBlMmYuLjY5MTVjMDU0ZGQgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsLw0KPiBD YXBzdWxlUnVudGltZUR4ZS9DYXBzdWxlU2VydmljZS5jDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsLw0KPiBD YXBzdWxlUnVudGltZUR4ZS9DYXBzdWxlU2VydmljZS5jDQo+IEBAIC0xLDIxICsxLDEyIEBADQo+ IC0vKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBDYXBzdWxlU2VydmljZS5jDQo+IC0NCj4gLSAg Q29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29k ZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+ IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBDYXBzdWxlIFJ1bnRpbWUgRHJpdmVyIHByb2R1Y2VzIHR3 byBVRUZJIGNhcHN1bGUgcnVudGltZSBzZXJ2aWNlcy4NCj4gICAgKFVwZGF0ZUNhcHN1bGUsIFF1 ZXJ5Q2Fwc3VsZUNhcGFiaWxpdGllcykNCj4gICAgSXQgaW5zdGFsbHMgdGhlIENhcHN1bGUgQXJj aGl0ZWN0dXJhbCBQcm90b2NvbCBkZWZpbmVkIGluIFBJMS4wYSB0byBzaWduaWZ5DQo+ICAgIHRo ZSBjYXBzdWxlIHJ1bnRpbWUgc2VydmljZXMgYXJlIHJlYWR5Lg0KPg0KPiAtQ29weXJpZ2h0IChj KSAyMDA2IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiAtU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gKyAg Q29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+ICsgIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMjAsIEludGVsIENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoqLw0KPg0KPiBkaWZmIC0tZ2l0 DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL01kZU1vZHVsZVBr Zy9Vbml2ZXJzYWwvDQo+IENhcHN1bGVSdW50aW1lRHhlL0NhcHN1bGVTZXJ2aWNlLmgNCj4gYi9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvTWRlTW9kdWxlUGtnL1VuaXZl cnNhbC8NCj4gQ2Fwc3VsZVJ1bnRpbWVEeGUvQ2Fwc3VsZVNlcnZpY2UuaA0KPiBpbmRleCBkNWRm MDc1ZTQ2Li5mYzZkODMxNjYzIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL092ZXJyaWRlL2VkazIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC8NCj4gQ2Fwc3VsZVJ1 bnRpbWVEeGUvQ2Fwc3VsZVNlcnZpY2UuaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL092ZXJyaWRlL2VkazIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC8NCj4gQ2Fwc3VsZVJ1 bnRpbWVEeGUvQ2Fwc3VsZVNlcnZpY2UuaA0KPiBAQCAtMSwxOSArMSwxMCBAQA0KPiAtLyoqIEBm aWxlDQo+IC0gIEltcGxlbWVudHMgQ2Fwc3VsZVNlcnZpY2UuaA0KPiAtDQo+IC0gIENvcHlyaWdo dCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2lu YWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAv KiogQGZpbGUNCj4gICAgQ2Fwc3VsZSBSdW50aW1lIERyaXZlciBwcm9kdWNlcyB0d28gVUVGSSBj YXBzdWxlIHJ1bnRpbWUgc2VydmljZXMuDQo+ICAgIChVcGRhdGVDYXBzdWxlLCBRdWVyeUNhcHN1 bGVDYXBhYmlsaXRpZXMpDQo+ICAgIEl0IGluc3RhbGxzIHRoZSBDYXBzdWxlIEFyY2hpdGVjdHVy YWwgUHJvdG9jb2wgZGVmaW5lZCBpbiBQSTEuMGEgdG8gc2lnbmlmeQ0KPiAgICB0aGUgY2Fwc3Vs ZSBydW50aW1lIHNlcnZpY2VzIGFyZSByZWFkeS4NCj4NCj4gKyAgQ29weXJpZ2h0IChDKSAyMDI0 IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ ICAgIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDE4LCBMaW5hcm8sIEx0ZC4g QWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+DQo+IEBAIC0yMSw4ICsxMiw4IEBADQo+DQo+ICAq Ki8NCj4NCj4gLSNpZm5kZWYgX0NBUFNVTEVfU0VSVklDRV9IXw0KPiAtI2RlZmluZSBfQ0FQU1VM RV9TRVJWSUNFX0hfDQo+ICsjaWZuZGVmIENBUFNVTEVfU0VSVklDRV9IX18NCj4gKyNkZWZpbmUg Q0FQU1VMRV9TRVJWSUNFX0hfXw0KPg0KPiAgI2luY2x1ZGUgPFVlZmkuaD4NCj4NCj4gZGlmZiAt LWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9NZGVNb2R1 bGVQa2cvVW5pdmVyc2FsLw0KPiBQQ0QvRHhlL1BjZC5jDQo+IGIvUGxhdGZvcm0vQU1EL1Zhbkdv Z2hCb2FyZC9PdmVycmlkZS9lZGsyL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvDQo+IFBDRC9EeGUv UGNkLmMNCj4gaW5kZXggY2NlOTJiZTZhNi4uNTUzMzc4NmIyYyAxMDA2NDQNCj4gLS0tDQo+IGEv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL01kZU1vZHVsZVBrZy9Vbml2 ZXJzYWwvDQo+IFBDRC9EeGUvUGNkLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hC b2FyZC9PdmVycmlkZS9lZGsyL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvDQo+IFBDRC9EeGUvUGNk LmMNCj4gQEAgLTEsMTggKzEsOSBAQA0KPiAtLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgRHhl IFBjZC5jDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmlj ZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlz IGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93 aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBQQ0QgRFhFIGRyaXZlciBt YW5hZ2UgYWxsIFBDRCBlbnRyeSBpbml0aWFsaXplZCBpbiBQRUkgcGhhc2UgYW5kIERYRSBwaGFz ZSwNCj4gYW5kDQo+ICAgIHByb2R1Y2UgdGhlIGltcGxlbWVudGF0aW9uIG9mIG5hdGl2ZSBQQ0Qg cHJvdG9jb2wgYW5kDQo+IEVGSV9QQ0RfUFJPVE9DT0wgZGVmaW5lZCBpbg0KPiAgICBQSSAxLjRh IFZvbDMuDQo+DQo+ICtDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIENvcHlyaWdodCAoYykgMjAwNiAtIDIw MTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+IEBAIC0zOSw3ICsz MCw3IEBAIENoZWNrUGNkSW5Gc3AgKA0KPiAgICAgICAmJiAoICBDb21wYXJlR3VpZCAoSW5wdXRH dWlkLA0KPiAmZ0VmaUFtZEFnZXNhTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQpIC8vIEFnZXNhTW9k dWxlUGtnDQo+ICAgICAgICAgIHx8IENvbXBhcmVHdWlkIChJbnB1dEd1aWQsICZnRWZpQW1kQWdl c2FQa2dUb2tlblNwYWNlR3VpZCkgICAgICAgLy8NCj4gQWdlc2FQa2cNCj4gICAgICAgICAgfHwg Q29tcGFyZUd1aWQgKElucHV0R3VpZCwgJmdBbWRGc3BQa2dHdWlkKSAgICAgICAgICAgICAgICAg ICAgICAvLyBGc3BQa2cNCj4gLSAgICAgICAgfHwgQ29tcGFyZUd1aWQgKElucHV0R3VpZCwgJmdB bWRDcG1Qa2dUb2tlblNwYWNlR3VpZCkpKQ0KPiAvLyBBbWRDcG1Qa2cNCj4gKyAgICAgICAgfHwg Q29tcGFyZUd1aWQgKElucHV0R3VpZCwgJmdBbWRDcG1Qa2dUb2tlblNwYWNlR3VpZCkpKSAgICAg ICAgICAvLw0KPiBBbWRDcG1Qa2cNCj4gICAgew0KPiAgICAgIHJldHVybiBUUlVFOw0KPiAgICB9 DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2Vk azIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC8NCj4gUENEL1BlaS9QY2QuYw0KPiBiL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsLw0K PiBQQ0QvUGVpL1BjZC5jDQo+IGluZGV4IDEyOWYwM2U2ODQuLjJhNDA0NWJkMzYgMTAwNjQ0DQo+ IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9NZGVNb2R1 bGVQa2cvVW5pdmVyc2FsLw0KPiBQQ0QvUGVpL1BjZC5jDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsLw0KPiBQ Q0QvUGVpL1BjZC5jDQo+IEBAIC0xLDE2ICsxLDcgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBs ZW1lbnRzIFBFSSBQY2QuYw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBN aWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0K PiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIg dGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4gICAgQWxsIFBj ZCBQcGkgc2VydmljZXMgYXJlIGltcGxlbWVudGVkIGhlcmUuDQo+DQo+ICtDb3B5cmlnaHQgKEMp IDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4NCj4gIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMjEsIEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIChDKSBDb3B5cmlnaHQgMjAxNiBIZXdsZXR0IFBhY2th cmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudCBMUDxCUj4NCj4gIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IEBAIC0zMCwxMSArMjEsMTEgQEAgQ2hlY2tQY2RJ bkZzcCAoDQo+ICAgIElOIENPTlNUIEVGSV9HVUlEICAqSW5wdXRHdWlkDQo+ICAgICkNCj4gIHsN Cj4gLSAgaWYgKChGaXhlZFBjZEdldDggKFBjZEZzcE1vZGVTZWxlY3Rpb24pID09IDApICAgICAg ICAgICAgICAgICAgICAgICAgLy8gRGlzcGF0Y2gNCj4gbW9kZQ0KPiAtICAgICAmJiAoQ29tcGFy ZUd1aWQgKElucHV0R3VpZCwNCj4gJmdFZmlBbWRBZ2VzYU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlk KSAvLyBBZ2VzYU1vZHVsZVBrZw0KPiAtICAgICAgICB8fCBDb21wYXJlR3VpZCAoSW5wdXRHdWlk LCAmZ0VmaUFtZEFnZXNhUGtnVG9rZW5TcGFjZUd1aWQpICAgICAvLw0KPiBBZ2VzYVBrZw0KPiAt ICAgICAgICB8fCBDb21wYXJlR3VpZCAoSW5wdXRHdWlkLCAmZ0FtZEZzcFBrZ0d1aWQpICAgICAg ICAgICAgICAgICAgICAvLyBGc3BQa2cNCj4gLSAgICAgICAgfHwgQ29tcGFyZUd1aWQgKElucHV0 R3VpZCwgJmdBbWRDcG1Qa2dUb2tlblNwYWNlR3VpZCkpKSAgICAgICAgLy8NCj4gQW1kQ3BtUGtn DQo+ICsgIGlmICggIChGaXhlZFBjZEdldDggKFBjZEZzcE1vZGVTZWxlY3Rpb24pID09IDApICAg ICAgICAgICAgICAgICAgICAgICAgLy8gRGlzcGF0Y2gNCj4gbW9kZQ0KPiArICAgICAmJiAoICBD b21wYXJlR3VpZCAoSW5wdXRHdWlkLA0KPiAmZ0VmaUFtZEFnZXNhTW9kdWxlUGtnVG9rZW5TcGFj ZUd1aWQpIC8vIEFnZXNhTW9kdWxlUGtnDQo+ICsgICAgICAgIHx8IENvbXBhcmVHdWlkIChJbnB1 dEd1aWQsICZnRWZpQW1kQWdlc2FQa2dUb2tlblNwYWNlR3VpZCkNCj4gLy8gQWdlc2FQa2cNCj4g KyAgICAgICAgfHwgQ29tcGFyZUd1aWQgKElucHV0R3VpZCwgJmdBbWRGc3BQa2dHdWlkKSAgICAg ICAgICAgICAgICAgICAgICAvLyBGc3BQa2cNCj4gKyAgICAgICAgfHwgQ29tcGFyZUd1aWQgKElu cHV0R3VpZCwgJmdBbWRDcG1Qa2dUb2tlblNwYWNlR3VpZCkpKSAgICAgICAgICAvLw0KPiBBbWRD cG1Qa2cNCj4gICAgew0KPiAgICAgIHJldHVybiBUUlVFOw0KPiAgICB9DQo+IGRpZmYgLS1naXQN Cj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvTWRlUGtnL0luY2x1 ZGUvUmVnaXN0ZXIvSQ0KPiBudGVsL1NtcmFtU2F2ZVN0YXRlTWFwLmgNCj4gYi9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvTWRlUGtnL0luY2x1ZGUvUmVnaXN0ZXIvSQ0K PiBudGVsL1NtcmFtU2F2ZVN0YXRlTWFwLmgNCj4gaW5kZXggYjZkYTk2MjVkNy4uMDU0ODdkNzVl OSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9l ZGsyL01kZVBrZy9JbmNsdWRlL1JlZ2lzdGVyL0kNCj4gbnRlbC9TbXJhbVNhdmVTdGF0ZU1hcC5o DQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9NZGVQ a2cvSW5jbHVkZS9SZWdpc3Rlci9JDQo+IG50ZWwvU21yYW1TYXZlU3RhdGVNYXAuaA0KPiBAQCAt MSwxMyArMSwzIEBADQo+IC0vKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBTbXJhbVNhdmVTdGF0 ZU1hcC5oDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmlj ZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlz IGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93 aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgU01SQU0gU2F2ZSBTdGF0ZSBN YXAgRGVmaW5pdGlvbnMuDQo+DQo+IEBAIC0xNywxMyArNywxNCBAQCBJbnRlbChSKSA2NCBhbmQg SUEtMzIgQXJjaGl0ZWN0dXJlcyBTb2Z0d2FyZQ0KPiBEZXZlbG9wZXIncyBNYW51YWwNCj4gICAg Vm9sdW1lIDNDLCBTZWN0aW9uIDM0LjUgU01JIEhhbmRsZXIgRXhlY3V0aW9uIEVudmlyb25tZW50 DQo+ICAgIFZvbHVtZSAzQywgU2VjdGlvbiAzNC43IE1hbmFnaW5nIFN5bmNocm9ub3VzIGFuZCBB c3luY2hyb25vdXMgU01Jcw0KPg0KPiArQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3Jv IERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICBDb3B5cmlnaHQgKGMp IDIwMTUgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiAg KiovDQo+DQo+IC0jaWZuZGVmIF9fSU5URUxfU01SQU1fU0FWRV9TVEFURV9NQVBfSF9fDQo+IC0j ZGVmaW5lIF9fSU5URUxfU01SQU1fU0FWRV9TVEFURV9NQVBfSF9fDQo+ICsjaWZuZGVmIElOVEVM X1NNUkFNX1NBVkVfU1RBVEVfTUFQX0hfX19fDQo+ICsjZGVmaW5lIElOVEVMX1NNUkFNX1NBVkVf U1RBVEVfTUFQX0hfX19fDQo+ICAjZGVmaW5lIEFNRF9DUFUgIDENCj4gIC8vLw0KPiAgLy8vIERl ZmF1bHQgU01CQVNFIGFkZHJlc3MNCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpDQo+IG1lQ2xv Y2tSdW50aW1lRHhlL1BjUnRjLmMNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJy aWRlL2VkazIvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaQ0KPiBtZUNsb2NrUnVudGltZUR4ZS9Q Y1J0Yy5jDQo+IGluZGV4IDM3YmE5ZDhiNWQuLjRlNDJkOWQyYWQgMTAwNjQ0DQo+IC0tLQ0KPiBh L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9QY0F0Q2hpcHNldFBrZy9Q Y2F0UmVhbFRpDQo+IG1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjLmMNCj4gKysrDQo+IGIvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFs VGkNCj4gbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGMuYw0KPiBAQCAtMSwyNyArMSwxMiBAQA0KPiAg LyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgUGNSdGMuYw0KPiArICBSVEMgQXJjaGl0ZWN0dXJh bCBQcm90b2NvbCBHVUlEIGFzIGRlZmluZWQgaW4gRHhlQ2lzIDAuOTYuDQo+DQo+ICAgIENvcHly aWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiArICBDb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDE2LCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+ICAqKi8NCj4NCj4gLS8qIFRoaXMgZmlsZSBp bmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGlj ZW5zZS4gKi8NCj4gLQ0KPiAtLyoqIEBmaWxlDQo+IC0gIFJUQyBBcmNoaXRlY3R1cmFsIFByb3Rv Y29sIEdVSUQgYXMgZGVmaW5lZCBpbiBEeGVDaXMgMC45Ni4NCj4gLQ0KPiAtQ29weXJpZ2h0IChj KSAyMDA2IC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiAtVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiAtYXJl IGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlv bnMgb2YgdGhlIEJTRA0KPiBMaWNlbnNlDQo+IC13aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3Ry aWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlDQo+IGZvdW5kIGF0 DQo+IC1odHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQo+IC0N Cj4gLVRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBB TiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFU SU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gLQ0KPiAt KiovDQo+IC0NCj4gICNpbmNsdWRlICJQY1J0Yy5oIg0KPg0KPiAgLy8NCj4gQEAgLTEzNDksNyAr MTMzNCw3IEBAIFBjUnRjQWNwaVRhYmxlQ2hhbmdlQ2FsbGJhY2sgKA0KPiAgICAgIGlmICghRUZJ X0VSUk9SIChTdGF0dXMpKSB7DQo+ICAgICAgICBDZW50dXJ5ID0gKFVJTlQ4KShUaW1lLlllYXIg LyAxMDApOw0KPiAgICAgICAgQ2VudHVyeSA9IERlY2ltYWxUb0JjZDggKENlbnR1cnkpOw0KPiAt ICAgICAgREVCVUcgKChFRklfRF9JTkZPLCAiUGNSdGM6IFdyaXRlIDB4JXggdG8gQ01PUyBsb2Nh dGlvbiAweCV4XG4iLA0KPiBDZW50dXJ5LCBtTW9kdWxlR2xvYmFsLkNlbnR1cnlSdGNBZGRyZXNz KSk7DQo+ICsgICAgICBERUJVRyAoKERFQlVHX0lORk8sICJQY1J0YzogV3JpdGUgMHgleCB0byBD TU9TIGxvY2F0aW9uIDB4JXhcbiIsDQo+IENlbnR1cnksIG1Nb2R1bGVHbG9iYWwuQ2VudHVyeVJ0 Y0FkZHJlc3MpKTsNCj4gICAgICAgIFJ0Y1dyaXRlIChtTW9kdWxlR2xvYmFsLkNlbnR1cnlSdGNB ZGRyZXNzLCBDZW50dXJ5KTsNCj4gICAgICB9DQo+ICAgIH0NCj4gZGlmZiAtLWdpdA0KPiBhL1Bs YXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9QY0F0Q2hpcHNldFBrZy9QY2F0 UmVhbFRpDQo+IG1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjLmgNCj4gYi9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL092ZXJyaWRlL2VkazIvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaQ0KPiBtZUNs b2NrUnVudGltZUR4ZS9QY1J0Yy5oDQo+IGluZGV4IDE1ZTI2NDYwNDAuLjE1OWJlYmYzMDkgMTAw NjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Q Y0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpDQo+IG1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjLmgNCj4g KysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1BjQXRDaGlw c2V0UGtnL1BjYXRSZWFsVGkNCj4gbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGMuaA0KPiBAQCAtMSwy OSArMSwxNCBAQA0KPiAgLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgUGNSdGMuaA0KPiArICBI ZWFkZXIgZmlsZSBmb3IgcmVhbCB0aW1lIGNsb2NrIGRyaXZlci4NCj4NCj4gICAgQ29weXJpZ2h0 IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ICsgIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoqLw0KPg0KPiAtLyogVGhpcyBmaWxlIGluY2x1 ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNl LiAqLw0KPiAtDQo+IC0vKiogQGZpbGUNCj4gLSAgSGVhZGVyIGZpbGUgZm9yIHJlYWwgdGltZSBj bG9jayBkcml2ZXIuDQo+IC0NCj4gLUNvcHlyaWdodCAoYykgMjAwNiAtIDIwMTYsIEludGVsIENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLVRoaXMgcHJvZ3JhbSBhbmQg dGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLWFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFp bGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGljZW5z ZQ0KPiAtd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0 IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtaHR0cDovL29wZW5zb3VyY2Uu b3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiAtDQo+IC1USEUgUFJPR1JBTSBJUyBESVNU UklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4g LVdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhF Ug0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0jaWZuZGVmIF9S VENfSF8NCj4gLSNkZWZpbmUgX1JUQ19IXw0KPiArI2lmbmRlZiBSVENfSF9fDQo+ICsjZGVmaW5l IFJUQ19IX18NCj4NCj4gICNpbmNsdWRlIDxVZWZpLmg+DQo+DQo+IGRpZmYgLS1naXQNCj4gYS9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvUGNBdENoaXBzZXRQa2cvUGNh dFJlYWxUaQ0KPiBtZUNsb2NrUnVudGltZUR4ZS9QY1J0Yy51bmkNCj4gYi9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaQ0KPiBt ZUNsb2NrUnVudGltZUR4ZS9QY1J0Yy51bmkNCj4gaW5kZXggMjk4MTNhNDVmZS4uMzNkNzIxMTE5 MSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9l ZGsyL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGkNCj4gbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGMu dW5pDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9Q Y0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpDQo+IG1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjLnVuaQ0K PiBAQCAtMSwzMCArMSwxMiBAQA0KPiAtLy8gLyoqIEBmaWxlDQo+IC0vLyBQY1J0YyBMb2NhbGl6 ZWQgU3RyaW5ncyBhbmQgQ29udGVudA0KPiAtLy8NCj4gLS8vIENvcHlyaWdodCAoQykgMjAyNCBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAt Ly8NCj4gLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ IC0vLw0KPiAtLy8gKiovDQo+IC0vLyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5 IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC0NCj4gIC8vIC8qKiBA ZmlsZQ0KPiAgLy8gUGNSdGMgZHJpdmVyIHRvIGluc3RhbGwgRUZJX1JFQUxfVElNRV9DTE9DS19B UkNIX1BST1RPQ09MDQo+IC0vLw0KPiAtLy8gUGNSdGMgZHJpdmVyIHRvIGluc3RhbGwgRUZJX1JF QUxfVElNRV9DTE9DS19BUkNIX1BST1RPQ09MLg0KPiAtLy8NCj4gIC8vIFRoaXMgZHJpdmVyIHBy b3ZpZGVzIEdldFRpbWUsIFNldFRpbWUsIEdldFdha2V1cFRpbWUsIFNldFdha2V1cFRpbWUNCj4g c2VydmljZXMgdG8gUnVudGltZSBTZXJ2aWNlIFRhYmxlLg0KPiAgLy8gSXQgd2lsbCBpbnN0YWxs IGEgdGFnZ2luZyBwcm90b2NvbCB3aXRoIGdFZmlSZWFsVGltZUNsb2NrQXJjaFByb3RvY29sR3Vp ZC4NCj4gIC8vDQo+ICsvLyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNl cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIC8vIENvcHlyaWdodCAoYykgMjAw NiAtIDIwMTQsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g IC8vDQo+IC0vLyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ IC0vLyBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQg Y29uZGl0aW9ucyBvZiB0aGUNCj4gQlNEIExpY2Vuc2UNCj4gLS8vIHdoaWNoIGFjY29tcGFuaWVz IHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUN Cj4gZm91bmQgYXQNCj4gLS8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGlj ZW5zZS5waHANCj4gLS8vDQo+IC0vLyBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBU SEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gLS8vIFdJVEhPVVQgV0FS UkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNT IE9SIElNUExJRUQuDQo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KPiAgLy8NCj4gIC8vICoqLw0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGkN Cj4gbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGNFbnRyeS5jDQo+IGIvUGxhdGZvcm0vQU1EL1Zhbkdv Z2hCb2FyZC9PdmVycmlkZS9lZGsyL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGkNCj4gbWVDbG9j a1J1bnRpbWVEeGUvUGNSdGNFbnRyeS5jDQo+IGluZGV4IGY2ZGM4NDQ4NjEuLjlhYzk5MTRmYjIg MTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRr Mi9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpDQo+IG1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjRW50 cnkuYw0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIv UGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaQ0KPiBtZUNsb2NrUnVudGltZUR4ZS9QY1J0Y0VudHJ5 LmMNCj4gQEAgLTEsMjcgKzEsMTIgQEANCj4gIC8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIFBj UnRjRW50cnkuYw0KPiArICBQcm92aWRlcyBTZXQvR2V0IHRpbWUgb3BlcmF0aW9ucy4NCj4NCj4g ICAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ICsgIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTYsIEludGVs IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoqLw0KPg0KPiAtLyogVGhp cyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxv d2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZpbGUNCj4gLSAgUHJvdmlkZXMgU2V0L0dl dCB0aW1lIG9wZXJhdGlvbnMuDQo+IC0NCj4gLUNvcHlyaWdodCAoYykgMjAwNiAtIDIwMTYsIElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLVRoaXMgcHJvZ3Jh bSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLWFyZSBsaWNlbnNlZCBhbmQgbWFk ZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4g TGljZW5zZQ0KPiAtd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVs bCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtaHR0cDovL29wZW5z b3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiAtDQo+IC1USEUgUFJPR1JBTSBJ UyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJ UywNCj4gLVdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQs IEVJVEhFUg0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+IC0NCj4gLSoqLw0KPiAtDQo+ICAjaW5j bHVkZSAiUGNSdGMuaCINCj4NCj4gIFBDX1JUQ19NT0RVTEVfR0xPQkFMUyAgbU1vZHVsZUdsb2Jh bDsNCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUv ZWRrMi9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpDQo+IG1lQ2xvY2tSdW50aW1lRHhlL1BjUnRj RXh0cmEudW5pDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1Bj QXRDaGlwc2V0UGtnL1BjYXRSZWFsVGkNCj4gbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGNFeHRyYS51 bmkNCj4gaW5kZXggODkwMTg3Mjc2Ny4uNTlmNGVkNjRkMSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1BjQXRDaGlwc2V0UGtnL1BjYXRS ZWFsVGkNCj4gbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGNFeHRyYS51bmkNCj4gKysrDQo+IGIvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1BjQXRDaGlwc2V0UGtnL1BjYXRS ZWFsVGkNCj4gbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGNFeHRyYS51bmkNCj4gQEAgLTIsMjQgKzIs OSBAQA0KPiAgLy8gUGNSdGMgRXh0cmEgTG9jYWxpemVkIFN0cmluZ3MgYW5kIENvbnRlbnQNCj4g IC8vDQo+ICAvLyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5j LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLS8vDQo+IC0vLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtLy8NCj4gLS8vICoqLw0KPiAtLy8gVGhp cyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxv d2luZyBsaWNlbnNlLg0KPiAtDQo+IC0vLyAvKiogQGZpbGUNCj4gLS8vIFBjUnRjIExvY2FsaXpl ZCBTdHJpbmdzIGFuZCBDb250ZW50DQo+IC0vLw0KPiAgLy8gQ29weXJpZ2h0IChjKSAyMDEzIC0g MjAxNCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgLy8N Cj4gLS8vIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLS8v IGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25k aXRpb25zIG9mIHRoZQ0KPiBCU0QgTGljZW5zZQ0KPiAtLy8gd2hpY2ggYWNjb21wYW5pZXMgdGhp cyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBm b3VuZCBhdA0KPiAtLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNl LnBocA0KPiAtLy8NCj4gLS8vIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBC U0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtLy8gV0lUSE9VVCBXQVJSQU5U SUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1MgT1Ig SU1QTElFRC4NCj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+ICAvLw0KPiAgLy8gKiovDQo+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaQ0KPiBt ZUNsb2NrUnVudGltZUR4ZS9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUuaW5mDQo+IGIvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1BjQXRDaGlwc2V0UGtnL1BjYXRS ZWFsVGkNCj4gbWVDbG9ja1J1bnRpbWVEeGUvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlLmlu Zg0KPiBpbmRleCA4OTY0Nzk1ZmM3Li45OTgxODc3N2M4IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvUGNBdENoaXBzZXRQa2cvUGNhdFJl YWxUaQ0KPiBtZUNsb2NrUnVudGltZUR4ZS9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUuaW5m DQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9QY0F0 Q2hpcHNldFBrZy9QY2F0UmVhbFRpDQo+IG1lQ2xvY2tSdW50aW1lRHhlL1BjYXRSZWFsVGltZUNs b2NrUnVudGltZUR4ZS5pbmYNCj4gQEAgLTEsMjcgKzEsMTEgQEANCj4gICMjIEBmaWxlDQo+ICAj ICBQY2F0IFJlYWxUaW1lQ2xvY2sgUnVudGltZSBEeGUNCj4gLSMNCj4gLSMgQ29weXJpZ2h0IChD KSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+IC0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ IC0jDQo+IC0jIw0KPiAtDQo+IC0jIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkg cHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4gLQ0KPiAtIyMgQGZpbGUN Cj4gLSMgUGNSdGMgZHJpdmVyIHRvIGluc3RhbGwgRUZJX1JFQUxfVElNRV9DTE9DS19BUkNIX1BS T1RPQ09MLg0KPiAtIw0KPiAgIyBUaGlzIGRyaXZlciBwcm92aWRlcyBHZXRUaW1lLCBTZXRUaW1l LCBHZXRXYWtldXBUaW1lLCBTZXRXYWtldXBUaW1lDQo+IHNlcnZpY2VzIHRvIFJ1bnRpbWUgU2Vy dmljZSBUYWJsZS4NCj4gICMgSXQgd2lsbCBpbnN0YWxsIGEgdGFnZ2luZyBwcm90b2NvbCB3aXRo IGdFZmlSZWFsVGltZUNsb2NrQXJjaFByb3RvY29sR3VpZC4NCj4gICMNCj4gKyMgQ29weXJpZ2h0 IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ICAjIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTUsIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSMgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNj b21wYW55aW5nIG1hdGVyaWFscw0KPiAtIyBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxl IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUNCj4gQlNEIExpY2Vuc2UNCj4g LSMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9m IHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtIyBodHRwOi8vb3BlbnNvdXJjZS5v cmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQo+IC0jDQo+IC0jIFRIRSBQUk9HUkFNIElTIERJ U1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0K PiAtIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBF SVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgIw0KPiAgIyMNCj4NCj4gZGlmZiAtLWdpdA0KPiBh L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9MaWJy YXJ5L0FtZEZ0DQo+IHBtL0R4ZVRwbTJEZXZpY2VMaWJGc3AvVHBtMkRldmljZUxpYkZ0cG0uYw0K PiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9M aWJyYXJ5L0FtZEZ0DQo+IHBtL0R4ZVRwbTJEZXZpY2VMaWJGc3AvVHBtMkRldmljZUxpYkZ0cG0u Yw0KPiBpbmRleCA5ZWE4N2ZhZmQ0Li5mZTM1OWNkYzI4IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvTGlicmFyeS9B bWRGdA0KPiBwbS9EeGVUcG0yRGV2aWNlTGliRnNwL1RwbTJEZXZpY2VMaWJGdHBtLmMNCj4gKysr DQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtn L0xpYnJhcnkvQW1kRnQNCj4gcG0vRHhlVHBtMkRldmljZUxpYkZzcC9UcG0yRGV2aWNlTGliRnRw bS5jDQo+IEBAIC0xLDI2ICsxLDExIEBADQo+IC0vKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBU cG0yRGV2aWNlTGliRnRwbS5DDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2Vk IE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAt DQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRl ciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBUaGlz IGxpYnJhcnkgaXMgVFBNMiBkZXZpY2Ugcm91dGVyLiBQbGF0Zm9ybSBjYW4gcmVnaXN0ZXIgbXVs dGkgVFBNMg0KPiBpbnN0YW5jZSB0byBpdA0KPiAgICB2aWEgUGNkVHBtSW5zdGFuY2VHdWlkLiBQ bGF0Zm9ybSBuZWVkIG1ha2UgY2hvaWNlIHRoYXQgd2hpY2ggb25lIHdpbGwgYmUNCj4gZmluYWwg b25lLg0KPiAgICBBdCBtb3N0IG9uZSBUUE0yIGluc3RhbmNlIGNhbiBiZSBmaW5hbGx5IHJlZ2lz dGVyZWQsIGFuZCBvdGhlciB3aWxsIHJldHVybg0KPiB1bnN1cHBvcnRlZC4NCj4NCj4gLUNvcHly aWdodCAoYykgMjAxMyAtIDIwMTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLiA8QlI+DQo+IC1UaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxz DQo+IC1hcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQg Y29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vuc2UNCj4gLXdoaWNoIGFjY29tcGFuaWVzIHRo aXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4g Zm91bmQgYXQNCj4gLWh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5w aHANCj4gLQ0KPiAtVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNF TlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+IC1XSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQ UkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0K PiArICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxNywgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuIDxCUj4NCj4gKyAgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoqLw0KPg0KPiBAQCAt NzUsNyArNjAsNyBAQCBUcG0yU3VibWl0Q29tbWFuZCAoDQo+ICAgIEVGSV9TVEFUVVMgIFN0YXR1 cyA9IEVGSV9TVUNDRVNTOw0KPg0KPiAgICBpZiAoKE5VTEwgPT0gSW5wdXRQYXJhbWV0ZXJCbG9j aykgfHwgKE5VTEwgPT0gT3V0cHV0UGFyYW1ldGVyQmxvY2spIHx8ICgwDQo+ID09IElucHV0UGFy YW1ldGVyQmxvY2tTaXplKSkgew0KPiAtICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJCdWZmZXIg PT0gTlVMTCBvciBJbnB1dFBhcmFtZXRlckJsb2NrU2l6ZSA9PQ0KPiAwXG4iKSk7DQo+ICsgICAg REVCVUcgKChERUJVR19FUlJPUiwgIkJ1ZmZlciA9PSBOVUxMIG9yIElucHV0UGFyYW1ldGVyQmxv Y2tTaXplID09DQo+IDBcbiIpKTsNCj4gICAgICBTdGF0dXMgPSBFRklfSU5WQUxJRF9QQVJBTUVU RVI7DQo+ICAgICAgcmV0dXJuIFN0YXR1czsNCj4gICAgfQ0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtnL0xpYnJhcnkv QW1kRnQNCj4gcG0vRHhlVHBtMkRldmljZUxpYkZzcC9UcG0yRGV2aWNlTGliRnRwbS5pbmYNCj4g Yi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvTGli cmFyeS9BbWRGdA0KPiBwbS9EeGVUcG0yRGV2aWNlTGliRnNwL1RwbTJEZXZpY2VMaWJGdHBtLmlu Zg0KPiBpbmRleCAyN2Y4NjczNjY4Li42NzA4YWJkZmNlIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvTGlicmFyeS9B bWRGdA0KPiBwbS9EeGVUcG0yRGV2aWNlTGliRnNwL1RwbTJEZXZpY2VMaWJGdHBtLmluZg0KPiAr KysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQ a2cvTGlicmFyeS9BbWRGdA0KPiBwbS9EeGVUcG0yRGV2aWNlTGliRnNwL1RwbTJEZXZpY2VMaWJG dHBtLmluZg0KPiBAQCAtMSwxMyArMSwzIEBADQo+IC0jIyBAZmlsZQ0KPiAtIyAgRnRwbSBUUE0g Mi4wIERldmljZSBMaWJyYXJ5IERYRSBNb2R1bGUgSU5GIGZpbGUNCj4gLSMNCj4gLSMgQ29weXJp Z2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+IC0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+IC0jDQo+IC0jIw0KPiAtDQo+IC0jIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdp bmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4gLQ0KPiAgIyMg QGZpbGUNCj4gICMgIFByb3ZpZGVzIFRQTSAyLjAgVElTIGZ1bmN0aW9ucw0KPiAgIw0KPiBAQCAt MTUsMTMgKzUsOSBAQA0KPiAgIyAgaXQgdmlhIFBjZFRwbUluc3RhbmNlR3VpZC4gUGxhdGZvcm0g bmVlZCBtYWtlIGNob2ljZSB0aGF0IHdoaWNoIG9uZSB3aWxsDQo+IGJlIGZpbmFsIG9uZS4NCj4g ICMgIEF0IG1vc3Qgb25lIFRQTSAyLjAgaW5zdGFuY2UgY2FuIGJlIGZpbmFsbHkgcmVnaXN0ZXJl ZCwgYW5kIG90aGVyIHdpbGwNCj4gcmV0dXJuIHVuc3VwcG9ydGVkLg0KPiAgIw0KPiArIyBDb3B5 cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJl c2VydmVkLjxCUj4NCj4gICMgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxNiwgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtIyBUaGlzIHByb2dyYW0gYW5kIHRo ZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+IC0jIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFp bGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQ0KPiBCU0QgTGljZW5z ZQ0KPiAtIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gVGhlIGZ1bGwgdGV4 dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gLSMgaHR0cDovL29wZW5zb3Vy Y2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiAtIyBUSEUgUFJPR1JBTSBJUyBESVNU UklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4g LSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlU SEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gICMNCj4gICMjDQo+DQo+IGRpZmYgLS1naXQNCj4gYS9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvTGlicmFy eS9BbWRGdA0KPiBwbS9QZWlUcG0yRGV2aWNlTGliRnNwL1RwbTJEZXZpY2VMaWJGdHBtLmMNCj4g Yi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvTGli cmFyeS9BbWRGdA0KPiBwbS9QZWlUcG0yRGV2aWNlTGliRnNwL1RwbTJEZXZpY2VMaWJGdHBtLmMN Cj4gaW5kZXggMzJmNjNiNzhlZS4uOWU4Y2I1NTg4ZCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtnL0xpYnJhcnkvQW1k RnQNCj4gcG0vUGVpVHBtMkRldmljZUxpYkZzcC9UcG0yRGV2aWNlTGliRnRwbS5jDQo+ICsrKw0K PiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9M aWJyYXJ5L0FtZEZ0DQo+IHBtL1BlaVRwbTJEZXZpY2VMaWJGc3AvVHBtMkRldmljZUxpYkZ0cG0u Yw0KPiBAQCAtMSwyNiArMSwxMSBAQA0KPiAtLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgVHBt MkRldmljZUxpYkZ0cG0uQw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBN aWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0K PiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIg dGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4gICAgVGhpcyBs aWJyYXJ5IGlzIFRQTTIgZGV2aWNlIHJvdXRlci4gUGxhdGZvcm0gY2FuIHJlZ2lzdGVyIG11bHRp IFRQTTINCj4gaW5zdGFuY2UgdG8gaXQNCj4gICAgdmlhIFBjZFRwbUluc3RhbmNlR3VpZC4gUGxh dGZvcm0gbmVlZCBtYWtlIGNob2ljZSB0aGF0IHdoaWNoIG9uZSB3aWxsIGJlDQo+IGZpbmFsIG9u ZS4NCj4gICAgQXQgbW9zdCBvbmUgVFBNMiBpbnN0YW5jZSBjYW4gYmUgZmluYWxseSByZWdpc3Rl cmVkLCBhbmQgb3RoZXIgd2lsbCByZXR1cm4NCj4gdW5zdXBwb3J0ZWQuDQo+DQo+IC1Db3B5cmln aHQgKGMpIDIwMTMgLSAyMDE3LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4gPEJSPg0KPiAtVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0K PiAtYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNv bmRpdGlvbnMgb2YgdGhlIEJTRA0KPiBMaWNlbnNlDQo+IC13aGljaCBhY2NvbXBhbmllcyB0aGlz IGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlDQo+IGZv dW5kIGF0DQo+IC1odHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhw DQo+IC0NCj4gLVRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5T RSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJF U0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4g KyAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ICsgIENvcHlyaWdodCAoYykgMjAxMyAtIDIwMTcsIEludGVs IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLiA8QlI+DQo+ICsgIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+ICAqKi8NCj4NCj4gQEAgLTg0 LDcgKzY5LDcgQEAgVHBtMlN1Ym1pdENvbW1hbmQgKA0KPiAgICBFRklfU1RBVFVTICBTdGF0dXMg PSBFRklfU1VDQ0VTUzsNCj4NCj4gICAgaWYgKChOVUxMID09IElucHV0UGFyYW1ldGVyQmxvY2sp IHx8IChOVUxMID09IE91dHB1dFBhcmFtZXRlckJsb2NrKSB8fCAoMA0KPiA9PSBJbnB1dFBhcmFt ZXRlckJsb2NrU2l6ZSkpIHsNCj4gLSAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAiQnVmZmVyID09 IE5VTEwgb3IgSW5wdXRQYXJhbWV0ZXJCbG9ja1NpemUgPT0NCj4gMFxuIikpOw0KPiArICAgIERF QlVHICgoREVCVUdfRVJST1IsICJCdWZmZXIgPT0gTlVMTCBvciBJbnB1dFBhcmFtZXRlckJsb2Nr U2l6ZSA9PQ0KPiAwXG4iKSk7DQo+ICAgICAgU3RhdHVzID0gRUZJX0lOVkFMSURfUEFSQU1FVEVS Ow0KPiAgICAgIHJldHVybiBTdGF0dXM7DQo+ICAgIH0NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9MaWJyYXJ5L0Ft ZEZ0DQo+IHBtL1BlaVRwbTJEZXZpY2VMaWJGc3AvVHBtMkRldmljZUxpYkZ0cG0uaW5mDQo+IGIv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtnL0xpYnJh cnkvQW1kRnQNCj4gcG0vUGVpVHBtMkRldmljZUxpYkZzcC9UcG0yRGV2aWNlTGliRnRwbS5pbmYN Cj4gaW5kZXggYTI4Yzc2MzMyYS4uYTM4YWRhM2VmZCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtnL0xpYnJhcnkvQW1k RnQNCj4gcG0vUGVpVHBtMkRldmljZUxpYkZzcC9UcG0yRGV2aWNlTGliRnRwbS5pbmYNCj4gKysr DQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtn L0xpYnJhcnkvQW1kRnQNCj4gcG0vUGVpVHBtMkRldmljZUxpYkZzcC9UcG0yRGV2aWNlTGliRnRw bS5pbmYNCj4gQEAgLTEsMTMgKzEsMyBAQA0KPiAtIyMgQGZpbGUNCj4gLSMgIEZ0cG0gVFBNIDIu MCBEZXZpY2UgTGlicmFyeSBQRUkgTW9kdWxlIElORiBmaWxlDQo+IC0jDQo+IC0jIENvcHlyaWdo dCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiAtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiAtIw0KPiAtIyMNCj4gLQ0KPiAtIyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5h bGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC0NCj4gICMjIEBm aWxlDQo+ICAjICBQcm92aWRlcyBUUE0gMi4wIFRJUyBmdW5jdGlvbnMNCj4gICMNCj4gQEAgLTE1 LDE3ICs1LDEyIEBADQo+ICAjICBpdCB2aWEgUGNkVHBtSW5zdGFuY2VHdWlkLiBQbGF0Zm9ybSBu ZWVkIG1ha2UgY2hvaWNlIHRoYXQgd2hpY2ggb25lIHdpbGwNCj4gYmUgZmluYWwgb25lLg0KPiAg IyAgQXQgbW9zdCBvbmUgVFBNIDIuMCBpbnN0YW5jZSBjYW4gYmUgZmluYWxseSByZWdpc3RlcmVk LCBhbmQgb3RoZXIgd2lsbA0KPiByZXR1cm4gdW5zdXBwb3J0ZWQuDQo+ICAjDQo+ICsjIENvcHly aWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiAgIyBDb3B5cmlnaHQgKGMpIDIwMTMgLSAyMDE2LCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0jIFRoaXMgcHJvZ3JhbSBhbmQgdGhl IGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLSMgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWls YWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlDQo+IEJTRCBMaWNlbnNl DQo+IC0jIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiBUaGUgZnVsbCB0ZXh0 IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtIyBodHRwOi8vb3BlbnNvdXJj ZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQo+IC0jIFRIRSBQUk9HUkFNIElTIERJU1RS SUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAt IyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRI RVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPiAgIw0KPiAgIyMNCj4NCj4gLQ0KPiAgW0RlZmluZXNdDQo+ ICAgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMDUNCj4gICAgQkFT RV9OQU1FICAgICAgICAgICAgICAgICAgICAgID0gVHBtMkRldmljZUxpYkZ0cG0NCj4gZGlmZiAt LWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0 eVBrZy9MaWJyYXJ5L0FtZEZ0DQo+IHBtL1RwbTJEZXZpY2VMaWIvVHBtMkRldmljZUxpYkZ0cG0u Yw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBr Zy9MaWJyYXJ5L0FtZEZ0DQo+IHBtL1RwbTJEZXZpY2VMaWIvVHBtMkRldmljZUxpYkZ0cG0uYw0K PiBpbmRleCBkYWY3NWZhMWIzLi43MTNjODdhMWNhIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9y bS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvTGlicmFyeS9BbWRG dA0KPiBwbS9UcG0yRGV2aWNlTGliL1RwbTJEZXZpY2VMaWJGdHBtLmMNCj4gKysrDQo+IGIvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtnL0xpYnJhcnkv QW1kRnQNCj4gcG0vVHBtMkRldmljZUxpYi9UcG0yRGV2aWNlTGliRnRwbS5jDQo+IEBAIC0xLDI3 ICsxLDEyIEBADQo+ICAvKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBUcG0yRGV2aWNlTGliRnRw bS5DDQo+ICsgIFRoaXMgbGlicmFyeSBpcyBUUE0yIFRDRzIgcHJvdG9jb2wgbGliLg0KPg0KPiAg ICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxNiwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuIDxCUj4NCj4gICAgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoqLw0KPg0KPiAtLyogVGhp cyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxv d2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZpbGUNCj4gLSAgVGhpcyBsaWJyYXJ5IGlz IFRQTTIgVENHMiBwcm90b2NvbCBsaWIuDQo+IC0NCj4gLUNvcHlyaWdodCAoYykgMjAxMyAtIDIw MTYsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLiA8QlI+DQo+IC1UaGlz IHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+IC1hcmUgbGljZW5zZWQg YW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUg QlNEDQo+IExpY2Vuc2UNCj4gLXdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAg VGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gLWh0dHA6 Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4gLQ0KPiAtVEhFIFBS T0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyIN Cj4gQkFTSVMsDQo+IC1XSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFO WSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiAtDQo+IC0qKi8NCj4gLQ0K PiAgI2luY2x1ZGUgPFVlZmkuaD4NCj4gICNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VMaWIuaD4NCj4g ICNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+IEBAIC02OSw3ICs1NCw3IEBAIFRwbTJT dWJtaXRDb21tYW5kICgNCj4gICAgRUZJX1NUQVRVUyAgU3RhdHVzID0gRUZJX1NVQ0NFU1M7DQo+ DQo+ICAgIGlmICgoTlVMTCA9PSBJbnB1dFBhcmFtZXRlckJsb2NrKSB8fCAoTlVMTCA9PSBPdXRw dXRQYXJhbWV0ZXJCbG9jaykgfHwgKDANCj4gPT0gSW5wdXRQYXJhbWV0ZXJCbG9ja1NpemUpKSB7 DQo+IC0gICAgREVCVUcgKChFRklfRF9FUlJPUiwgIkJ1ZmZlciA9PSBOVUxMIG9yIElucHV0UGFy YW1ldGVyQmxvY2tTaXplID09DQo+IDBcbiIpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9S LCAiQnVmZmVyID09IE5VTEwgb3IgSW5wdXRQYXJhbWV0ZXJCbG9ja1NpemUgPT0NCj4gMFxuIikp Ow0KPiAgICAgIFN0YXR1cyA9IEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gICAgICByZXR1cm4g U3RhdHVzOw0KPiAgICB9DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvTGlicmFyeS9BbWRGdA0KPiBwbS9UcG0yRGV2 aWNlTGliL1RwbTJEZXZpY2VMaWJGdHBtLmluZg0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9MaWJyYXJ5L0FtZEZ0DQo+IHBtL1RwbTJEZXZp Y2VMaWIvVHBtMkRldmljZUxpYkZ0cG0uaW5mDQo+IGluZGV4IGNlM2E3YzUzZjEuLjdlNDI3MDMz NDcgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUv ZWRrMi9TZWN1cml0eVBrZy9MaWJyYXJ5L0FtZEZ0DQo+IHBtL1RwbTJEZXZpY2VMaWIvVHBtMkRl dmljZUxpYkZ0cG0uaW5mDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3Zl cnJpZGUvZWRrMi9TZWN1cml0eVBrZy9MaWJyYXJ5L0FtZEZ0DQo+IHBtL1RwbTJEZXZpY2VMaWIv VHBtMkRldmljZUxpYkZ0cG0uaW5mDQo+IEBAIC0xLDMwICsxLDE1IEBADQo+IC0jIyBAZmlsZQ0K PiAtIyAgRnRwbSBUUE0gMi4wIERldmljZSBMaWJyYXJ5IElORiBmaWxlDQo+IC0jDQo+IC0jIENv cHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiAtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KPiAtIw0KPiAtIyMNCj4gLQ0KPiAtIyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBv cmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC0NCj4g ICMjIEBmaWxlDQo+ICAjICBQcm92aWRlcyBmdW5jdGlvbiBpbnRlcmZhY2VzIHRvIGNvbW11bmlj YXRlIHdpdGggVFBNIDIuMCBkZXZpY2UNCj4gICMNCj4gICMgIFRoaXMgbGlicmFyeSBoZWxwcyB0 byB1c2UgVFBNIDIuMCBkZXZpY2UgaW4gbGlicmFyeSBmdW5jdGlvbiBBUEkNCj4gICMgIGJhc2Vk IG9uIFRQTTIgcHJvdG9jb2wuDQo+ICAjDQo+ICsjIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNl ZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgIyBDb3B5 cmlnaHQgKGMpIDIwMTMgLSAyMDE0LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+IC0jIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlh bHMNCj4gLSMgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMg YW5kIGNvbmRpdGlvbnMgb2YgdGhlDQo+IEJTRCBMaWNlbnNlDQo+IC0jIHdoaWNoIGFjY29tcGFu aWVzIHRoaXMgZGlzdHJpYnV0aW9uLiBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBi ZQ0KPiBmb3VuZCBhdA0KPiAtIyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxp Y2Vuc2UucGhwDQo+IC0jIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0Qg TElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtIyBXSVRIT1VUIFdBUlJBTlRJRVMg T1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBM SUVELg0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0K PiAgIw0KPiAgIyMNCj4NCj4gLQ0KPiAgW0RlZmluZXNdDQo+ICAgIElORl9WRVJTSU9OICAgICAg ICAgICAgICAgICAgICA9IDB4MDAwMTAwMDUNCj4gICAgQkFTRV9OQU1FICAgICAgICAgICAgICAg ICAgICAgID0gVHBtMkRldmljZUxpYkZ0cG0NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZVRjZw0K PiAyUGh5c2ljYWxQcmVzZW5jZUxpYi9EeGVUY2cyUGh5c2ljYWxQcmVzZW5jZUxpYi5jDQo+IGIv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtnL0xpYnJh cnkvRHhlVGNnDQo+IDJQaHlzaWNhbFByZXNlbmNlTGliL0R4ZVRjZzJQaHlzaWNhbFByZXNlbmNl TGliLmMNCj4gaW5kZXggMDUzZjU2NTU2Mi4uMjhiOTQ1ZmJiYSAxMDA2NDQNCj4gLS0tDQo+IGEv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtnL0xpYnJh cnkvRHhlVGNnDQo+IDJQaHlzaWNhbFByZXNlbmNlTGliL0R4ZVRjZzJQaHlzaWNhbFByZXNlbmNl TGliLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsy L1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlVGNnDQo+IDJQaHlzaWNhbFByZXNlbmNlTGliL0R4ZVRj ZzJQaHlzaWNhbFByZXNlbmNlTGliLmMNCj4gQEAgLTEsMTMgKzEsMyBAQA0KPiAtLyoqIEBmaWxl DQo+IC0gIEltcGxlbWVudHMgRHhlVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIuQw0KPiAtDQo+IC0g IENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNv ZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0K PiAtDQo+ICAvKiogQGZpbGUNCj4gICAgRXhlY3V0ZSBwZW5kaW5nIFRQTTIgcmVxdWVzdHMgZnJv bSBPUyBvciBCSU9TLg0KPg0KPiBAQCAtMTcsMTQgKzcsOSBAQA0KPg0KPiAgICBUcG0yRXhlY3V0 ZVBlbmRpbmdUcG1SZXF1ZXN0KCkgd2lsbCByZWNlaXZlIHVudHJ1c3RlZCBpbnB1dCBhbmQgZG8N Cj4gdmFsaWRhdGlvbi4NCj4NCj4gLUNvcHlyaWdodCAoYykgMjAxMyAtIDIwMTYsIEludGVsIENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLVRoaXMgcHJvZ3JhbSBhbmQg dGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLWFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFp bGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGljZW5z ZQ0KPiAtd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0 IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtaHR0cDovL29wZW5zb3VyY2Uu b3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiAtDQo+IC1USEUgUFJPR1JBTSBJUyBESVNU UklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4g LVdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhF Ug0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+ICsgIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNl ZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArICBDb3B5 cmlnaHQgKGMpIDIwMTMgLSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+DQo+ICAqKi8NCj4NCj4gQEAgLTEwMCwxNiArODUsMTYgQEAgVHBtMkNvbW1hbmRDbGVh ciAoDQo+ICAgICAgQ29weU1lbSAoTG9jYWxBdXRoU2Vzc2lvbi5obWFjLmJ1ZmZlciwgUGxhdGZv cm1BdXRoLT5idWZmZXIsDQo+IFBsYXRmb3JtQXV0aC0+c2l6ZSk7DQo+ICAgIH0NCj4NCj4gLSAg REVCVUcgKChFRklfRF9JTkZPLCAiVHBtMkNsZWFyQ29udHJvbCAuLi4gXG4iKSk7DQo+ICsgIERF QlVHICgoREVCVUdfSU5GTywgIlRwbTJDbGVhckNvbnRyb2wgLi4uIFxuIikpOw0KPiAgICBTdGF0 dXMgPSBUcG0yQ2xlYXJDb250cm9sIChUUE1fUkhfUExBVEZPUk0sIEF1dGhTZXNzaW9uLCBOTyk7 DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywgIlRwbTJDbGVhckNvbnRyb2wgLSAlclxuIiwgU3Rh dHVzKSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIlRwbTJDbGVhckNvbnRyb2wgLSAlclxu IiwgU3RhdHVzKSk7DQo+ICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gICAgICBnb3Rv IERvbmU7DQo+ICAgIH0NCj4NCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiVHBtMkNsZWFyIC4u LiBcbiIpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiVHBtMkNsZWFyIC4uLiBcbiIpKTsN Cj4gICAgU3RhdHVzID0gVHBtMkNsZWFyIChUUE1fUkhfUExBVEZPUk0sIEF1dGhTZXNzaW9uKTsN Cj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiVHBtMkNsZWFyIC0gJXJcbiIsIFN0YXR1cykpOw0K PiArICBERUJVRyAoKERFQlVHX0lORk8sICJUcG0yQ2xlYXIgLSAlclxuIiwgU3RhdHVzKSk7DQo+ DQo+ICBEb25lOg0KPiAgICBaZXJvTWVtICgmTG9jYWxBdXRoU2Vzc2lvbi5obWFjLCBzaXplb2Yg KExvY2FsQXV0aFNlc3Npb24uaG1hYykpOw0KPiBAQCAtMTQzLDcgKzEyOCw3IEBAIFRwbTJDb21t YW5kQ2hhbmdlRXBzICgNCj4gICAgfQ0KPg0KPiAgICBTdGF0dXMgPSBUcG0yQ2hhbmdlRVBTIChU UE1fUkhfUExBVEZPUk0sIEF1dGhTZXNzaW9uKTsNCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAi VHBtMkNoYW5nZUVQUyAtICVyXG4iLCBTdGF0dXMpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZP LCAiVHBtMkNoYW5nZUVQUyAtICVyXG4iLCBTdGF0dXMpKTsNCj4NCj4gICAgWmVyb01lbSAoJkxv Y2FsQXV0aFNlc3Npb24uaG1hYywgc2l6ZW9mIChMb2NhbEF1dGhTZXNzaW9uLmhtYWMpKTsNCj4g ICAgcmV0dXJuIFN0YXR1czsNCj4gQEAgLTgwOCw3ICs3OTMsNyBAQCBUY2cyRXhlY3V0ZVBlbmRp bmdUcG1SZXF1ZXN0ICgNCj4gICAgICAgIC8vDQo+ICAgICAgICAvLyBQcmludCBjb25maXJtIHRl eHQgYW5kIHdhaXQgZm9yIGFwcHJvdmFsLg0KPiAgICAgICAgLy8NCj4gLSAgICAgIERFQlVHICgo RUZJX0RfSU5GTywgIlByaW50IGNvbmZpcm0gdGV4dCBhbmQgd2FpdCBmb3IgYXBwcm92YWwuXG4i KSk7DQo+ICsgICAgICBERUJVRyAoKERFQlVHX0lORk8sICJQcmludCBjb25maXJtIHRleHQgYW5k IHdhaXQgZm9yIGFwcHJvdmFsLlxuIikpOw0KPiAgICAgICAgUmVxdWVzdENvbmZpcm1lZCA9IFRS VUU7DQo+ICAgICAgICAvLyBSZXF1ZXN0Q29uZmlybWVkID0gVGNnMlVzZXJDb25maXJtIChUY2dQ cERhdGEtPlBQUmVxdWVzdCwNCj4gVGNnUHBEYXRhLT5QUFJlcXVlc3RQYXJhbWV0ZXIpOw0KPiAg ICAgIH0NCj4gQEAgLTg2MywxMiArODQ4LDEyIEBAIFRjZzJFeGVjdXRlUGVuZGluZ1RwbVJlcXVl c3QgKA0KPiAgICAgICAgICAgICAgICAgICAgICBUY2dQcERhdGENCj4gICAgICAgICAgICAgICAg ICAgICAgKTsNCj4gICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiAtICAgIERFQlVHICgo RUZJX0RfRVJST1IsICJGYWlsIHRvIHNldCB2YXJpYWJsZSAlUywgJXJcbiIsDQo+IFRDRzJfUEhZ U0lDQUxfUFJFU0VOQ0VfVkFSSUFCTEUsIFN0YXR1cykpOw0KPiArICAgIERFQlVHICgoREVCVUdf RVJST1IsICJGYWlsIHRvIHNldCB2YXJpYWJsZSAlUywgJXJcbiIsDQo+IFRDRzJfUEhZU0lDQUxf UFJFU0VOQ0VfVkFSSUFCTEUsIFN0YXR1cykpOw0KPiAgICAgIHJldHVybjsNCj4gICAgfQ0KPg0K PiAgICBpZiAoVGNnUHBEYXRhLT5QUFJlc3BvbnNlID09DQo+IFRDR19QUF9PUEVSQVRJT05fUkVT UE9OU0VfVVNFUl9BQk9SVCkgew0KPiAtICAgIERFQlVHICgoRUZJX0RfSU5GTywgIlVzZXIgYWJv cnQgdGhlIFRQTSBhY3Rpb24gXG4iKSk7DQo+ICsgICAgREVCVUcgKChERUJVR19JTkZPLCAiVXNl ciBhYm9ydCB0aGUgVFBNIGFjdGlvbiBcbiIpKTsNCj4gICAgICByZXR1cm47DQo+ICAgIH0NCj4N Cj4gQEAgLTkxMiw3ICs4OTcsNyBAQCBUY2cyRXhlY3V0ZVBlbmRpbmdUcG1SZXF1ZXN0ICgNCj4g ICAgfQ0KPg0KPiAgICAvLyBQcmludCAoTCJSZWJvb3Rpbmcgc3lzdGVtIHRvIG1ha2UgVFBNMiBz ZXR0aW5ncyBpbiBlZmZlY3RcbiIpOw0KPiAtICBERUJVRyAoKEVGSV9EX0lORk8sICJSZWJvb3Rp bmcgc3lzdGVtIHRvIG1ha2UgVFBNMiBzZXR0aW5ncyBpbg0KPiBlZmZlY3RcbiIpKTsNCj4gKyAg REVCVUcgKChERUJVR19JTkZPLCAiUmVib290aW5nIHN5c3RlbSB0byBtYWtlIFRQTTIgc2V0dGlu Z3MgaW4NCj4gZWZmZWN0XG4iKSk7DQo+ICAgIGdSVC0+UmVzZXRTeXN0ZW0gKEVmaVJlc2V0Q29s ZCwgRUZJX1NVQ0NFU1MsIDAsIE5VTEwpOw0KPiAgICBBU1NFUlQgKEZBTFNFKTsNCj4gIH0NCj4g QEAgLTk1NCw3ICs5MzksNyBAQCBUY2cyUGh5c2ljYWxQcmVzZW5jZUxpYlByb2Nlc3NSZXF1ZXN0 ICgNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ0VmaVRjZzJQaHlz aWNhbFByZXNlbmNlR3VpZA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICk7DQo+ICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiAtICAgICAgREVCVUcgKChF RklfRF9FUlJPUiwgIltUUE0yXSBFcnJvciB3aGVuIGxvY2sgdmFyaWFibGUgJXMsIFN0YXR1cw0K PiA9ICVyXG4iLCBUQ0cyX1BIWVNJQ0FMX1BSRVNFTkNFX0ZMQUdTX1ZBUklBQkxFLCBTdGF0dXMp KTsNCj4gKyAgICAgIERFQlVHICgoREVCVUdfRVJST1IsICJbVFBNMl0gRXJyb3Igd2hlbiBsb2Nr IHZhcmlhYmxlICVzLCBTdGF0dXMNCj4gPSAlclxuIiwgVENHMl9QSFlTSUNBTF9QUkVTRU5DRV9G TEFHU19WQVJJQUJMRSwgU3RhdHVzKSk7DQo+ICAgICAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0 dXMpOw0KPiAgICAgIH0NCj4gICAgfQ0KPiBAQCAtOTY1LDcgKzk1MCw3IEBAIFRjZzJQaHlzaWNh bFByZXNlbmNlTGliUHJvY2Vzc1JlcXVlc3QgKA0KPiAgICAvLyBDaGVjayBTNCByZXN1bWUNCj4g ICAgLy8NCj4gICAgLy8gIGlmIChHZXRCb290TW9kZUhvYiAoKSA9PSBCT09UX09OX1M0X1JFU1VN RSkgew0KPiAtICAvLyAgICBERUJVRyAoKEVGSV9EX0lORk8sICJTNCBSZXN1bWUsIFNraXAgVFBN IFBQIHByb2Nlc3MhXG4iKSk7DQo+ICsgIC8vICAgIERFQlVHICgoREVCVUdfSU5GTywgIlM0IFJl c3VtZSwgU2tpcCBUUE0gUFAgcHJvY2VzcyFcbiIpKTsNCj4gICAgLy8gICAgcmV0dXJuIDsNCj4g ICAgLy8gIH0NCj4NCj4gQEAgLTk5MCw3ICs5NzUsNyBAQCBUY2cyUGh5c2ljYWxQcmVzZW5jZUxp YlByb2Nlc3NSZXF1ZXN0ICgNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQcGlG bGFncw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gICAgICBpZiAoRUZJ X0VSUk9SIChTdGF0dXMpKSB7DQo+IC0gICAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAiW1RQTTJd IFNldCBwaHlzaWNhbCBwcmVzZW5jZSBmbGFnIGZhaWxlZCwgU3RhdHVzDQo+ID0gJXJcbiIsIFN0 YXR1cykpOw0KPiArICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIltUUE0yXSBTZXQgcGh5c2lj YWwgcHJlc2VuY2UgZmxhZyBmYWlsZWQsDQo+IFN0YXR1cyA9ICVyXG4iLCBTdGF0dXMpKTsNCj4g ICAgICAgIHJldHVybjsNCj4gICAgICB9DQo+DQo+IEBAIC0xMDE5LDE4ICsxMDA0LDE4IEBAIFRj ZzJQaHlzaWNhbFByZXNlbmNlTGliUHJvY2Vzc1JlcXVlc3QgKA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICZUY2dQcERhdGENCj4gICAgICAgICAgICAgICAgICAgICAgICApOw0KPiAgICAgIGlm IChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gLSAgICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJb VFBNMl0gU2V0IHBoeXNpY2FsIHByZXNlbmNlIHZhcmlhYmxlIGZhaWxlZCwNCj4gU3RhdHVzID0g JXJcbiIsIFN0YXR1cykpOw0KPiArICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIltUUE0yXSBT ZXQgcGh5c2ljYWwgcHJlc2VuY2UgdmFyaWFibGUgZmFpbGVkLA0KPiBTdGF0dXMgPSAlclxuIiwg U3RhdHVzKSk7DQo+ICAgICAgICByZXR1cm47DQo+ICAgICAgfQ0KPiAgICB9DQo+DQo+IC0gIERF QlVHICgoRUZJX0RfSU5GTywgIltUUE0yXSBGbGFncz0leCwgUFBSZXF1ZXN0PSV4DQo+IChMYXN0 UFBSZXF1ZXN0PSV4KVxuIiwgUHBpRmxhZ3MuUFBGbGFncywgVGNnUHBEYXRhLlBQUmVxdWVzdCwN Cj4gVGNnUHBEYXRhLkxhc3RQUFJlcXVlc3QpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAi W1RQTTJdIEZsYWdzPSV4LCBQUFJlcXVlc3Q9JXgNCj4gKExhc3RQUFJlcXVlc3Q9JXgpXG4iLCBQ cGlGbGFncy5QUEZsYWdzLCBUY2dQcERhdGEuUFBSZXF1ZXN0LA0KPiBUY2dQcERhdGEuTGFzdFBQ UmVxdWVzdCkpOw0KPg0KPiAgICAvLw0KPiAgICAvLyBFeGVjdXRlIHBlbmRpbmcgVFBNIHJlcXVl c3QuDQo+ICAgIC8vDQo+ICAgIFRjZzJFeGVjdXRlUGVuZGluZ1RwbVJlcXVlc3QgKFBsYXRmb3Jt QXV0aCwgJlRjZ1BwRGF0YSwgJlBwaUZsYWdzKTsNCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAi W1RQTTJdIFBQUmVzcG9uc2UgPSAleCAoTGFzdFBQUmVxdWVzdD0leCwNCj4gRmxhZ3M9JXgpXG4i LCBUY2dQcERhdGEuUFBSZXNwb25zZSwgVGNnUHBEYXRhLkxhc3RQUFJlcXVlc3QsDQo+IFBwaUZs YWdzLlBQRmxhZ3MpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiW1RQTTJdIFBQUmVzcG9u c2UgPSAleCAoTGFzdFBQUmVxdWVzdD0leCwNCj4gRmxhZ3M9JXgpXG4iLCBUY2dQcERhdGEuUFBS ZXNwb25zZSwgVGNnUHBEYXRhLkxhc3RQUFJlcXVlc3QsDQo+IFBwaUZsYWdzLlBQRmxhZ3MpKTsN Cj4gIH0NCj4NCj4gIC8qKg0KPiBAQCAtMTA2MSw3ICsxMDQ2LDcgQEAgVGNnMlBoeXNpY2FsUHJl c2VuY2VMaWJOZWVkVXNlckNvbmZpcm0gKA0KPiAgICAvLyBDaGVjayBTNCByZXN1bWUNCj4gICAg Ly8NCj4gICAgLy8gIGlmIChHZXRCb290TW9kZUhvYiAoKSA9PSBCT09UX09OX1M0X1JFU1VNRSkg ew0KPiAtICAvLyAgICBERUJVRyAoKEVGSV9EX0lORk8sICJTNCBSZXN1bWUsIFNraXAgVFBNIFBQ IHByb2Nlc3MhXG4iKSk7DQo+ICsgIC8vICAgIERFQlVHICgoREVCVUdfSU5GTywgIlM0IFJlc3Vt ZSwgU2tpcCBUUE0gUFAgcHJvY2VzcyFcbiIpKTsNCj4gICAgLy8gICAgcmV0dXJuIEZBTFNFOw0K PiAgICAvLyAgfQ0KPg0KPiBAQCAtMTA3Nyw3ICsxMDYyLDcgQEAgVGNnMlBoeXNpY2FsUHJlc2Vu Y2VMaWJOZWVkVXNlckNvbmZpcm0gKA0KPiAgICAgICAgICAgICAgICAgICAgICAmVGNnUHBEYXRh DQo+ICAgICAgICAgICAgICAgICAgICAgICk7DQo+ICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykp IHsNCj4gLSAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAiW1RQTTJdIEdldFZhcmlhYmxlICVTLCAl clxuIiwNCj4gVENHMl9QSFlTSUNBTF9QUkVTRU5DRV9WQVJJQUJMRSwgU3RhdHVzKSk7DQo+ICsg ICAgREVCVUcgKChERUJVR19FUlJPUiwgIltUUE0yXSBHZXRWYXJpYWJsZSAlUywgJXJcbiIsDQo+ IFRDRzJfUEhZU0lDQUxfUFJFU0VOQ0VfVkFSSUFCTEUsIFN0YXR1cykpOw0KPiAgICAgIHJldHVy biBGQUxTRTsNCj4gICAgfQ0KPg0KPiBAQCAtMTA5MCw3ICsxMDc1LDcgQEAgVGNnMlBoeXNpY2Fs UHJlc2VuY2VMaWJOZWVkVXNlckNvbmZpcm0gKA0KPiAgICAgICAgICAgICAgICAgICAgICAmUHBp RmxhZ3MNCj4gICAgICAgICAgICAgICAgICAgICAgKTsNCj4gICAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiAtICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJbVFBNMl0gR2V0VmFyaWFibGUg JVMsICVyXG4iLA0KPiBUQ0cyX1BIWVNJQ0FMX1BSRVNFTkNFX0ZMQUdTX1ZBUklBQkxFLCBTdGF0 dXMpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiW1RQTTJdIEdldFZhcmlhYmxlICVT LCAlclxuIiwNCj4gVENHMl9QSFlTSUNBTF9QUkVTRU5DRV9GTEFHU19WQVJJQUJMRSwgU3RhdHVz KSk7DQo+ICAgICAgcmV0dXJuIEZBTFNFOw0KPiAgICB9DQo+DQo+IEBAIC0xMTM4LDcgKzExMjMs NyBAQA0KPiBUY2cyUGh5c2ljYWxQcmVzZW5jZUxpYlJldHVybk9wZXJhdGlvblJlc3BvbnNlVG9P c0Z1bmN0aW9uICgNCj4gICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgIERhdGFTaXplOw0K PiAgICBFRklfVENHMl9QSFlTSUNBTF9QUkVTRU5DRSAgUHBEYXRhOw0KPg0KPiAtICBERUJVRyAo KEVGSV9EX0lORk8sICJbVFBNMl0NCj4gUmV0dXJuT3BlcmF0aW9uUmVzcG9uc2VUb09zRnVuY3Rp b25cbiIpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiW1RQTTJdDQo+IFJldHVybk9wZXJh dGlvblJlc3BvbnNlVG9Pc0Z1bmN0aW9uXG4iKSk7DQo+DQo+ICAgIC8vDQo+ICAgIC8vIEdldCB0 aGUgUGh5c2ljYWwgUHJlc2VuY2UgdmFyaWFibGUNCj4gQEAgLTExNTQsNyArMTEzOSw3IEBADQo+ IFRjZzJQaHlzaWNhbFByZXNlbmNlTGliUmV0dXJuT3BlcmF0aW9uUmVzcG9uc2VUb09zRnVuY3Rp b24gKA0KPiAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ICAgICAgKk1vc3RSZWNlbnRS ZXF1ZXN0ID0gMDsNCj4gICAgICAqUmVzcG9uc2UgICAgICAgICAgPSAwOw0KPiAtICAgIERFQlVH ICgoRUZJX0RfRVJST1IsICJbVFBNMl0gR2V0IFBQIHZhcmlhYmxlIGZhaWx1cmUhIFN0YXR1cyA9 ICVyXG4iLA0KPiBTdGF0dXMpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiW1RQTTJd IEdldCBQUCB2YXJpYWJsZSBmYWlsdXJlISBTdGF0dXMgPSAlclxuIiwNCj4gU3RhdHVzKSk7DQo+ ICAgICAgcmV0dXJuIFRDR19QUF9SRVRVUk5fVFBNX09QRVJBVElPTl9SRVNQT05TRV9GQUlMVVJF Ow0KPiAgICB9DQo+DQo+IEBAIC0xMTg5LDcgKzExNzQsNyBAQA0KPiBUY2cyUGh5c2ljYWxQcmVz ZW5jZUxpYlN1Ym1pdFJlcXVlc3RUb1ByZU9TRnVuY3Rpb24gKA0KPiAgICBFRklfVENHMl9QSFlT SUNBTF9QUkVTRU5DRSAgICAgICAgUHBEYXRhOw0KPiAgICBFRklfVENHMl9QSFlTSUNBTF9QUkVT RU5DRV9GTEFHUyAgRmxhZ3M7DQo+DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywgIltUUE0yXSBT dWJtaXRSZXF1ZXN0VG9QcmVPU0Z1bmN0aW9uLCBSZXF1ZXN0DQo+ID0gJXgsICV4XG4iLCBPcGVy YXRpb25SZXF1ZXN0LCBSZXF1ZXN0UGFyYW1ldGVyKSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5G TywgIltUUE0yXSBTdWJtaXRSZXF1ZXN0VG9QcmVPU0Z1bmN0aW9uLCBSZXF1ZXN0DQo+ID0gJXgs ICV4XG4iLCBPcGVyYXRpb25SZXF1ZXN0LCBSZXF1ZXN0UGFyYW1ldGVyKSk7DQo+DQo+ICAgIC8v DQo+ICAgIC8vIEdldCB0aGUgUGh5c2ljYWwgUHJlc2VuY2UgdmFyaWFibGUNCj4gQEAgLTEyMDMs NyArMTE4OCw3IEBADQo+IFRjZzJQaHlzaWNhbFByZXNlbmNlTGliU3VibWl0UmVxdWVzdFRvUHJl T1NGdW5jdGlvbiAoDQo+ICAgICAgICAgICAgICAgICAgICAgICZQcERhdGENCj4gICAgICAgICAg ICAgICAgICAgICAgKTsNCj4gICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiAtICAgIERF QlVHICgoRUZJX0RfRVJST1IsICJbVFBNMl0gR2V0IFBQIHZhcmlhYmxlIGZhaWx1cmUhIFN0YXR1 cyA9ICVyXG4iLA0KPiBTdGF0dXMpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiW1RQ TTJdIEdldCBQUCB2YXJpYWJsZSBmYWlsdXJlISBTdGF0dXMgPSAlclxuIiwNCj4gU3RhdHVzKSk7 DQo+ICAgICAgcmV0dXJuIFRDR19QUF9TVUJNSVRfUkVRVUVTVF9UT19QUkVPU19HRU5FUkFMX0ZB SUxVUkU7DQo+ICAgIH0NCj4NCj4gQEAgLTEyMjcsNyArMTIxMiw3IEBADQo+IFRjZzJQaHlzaWNh bFByZXNlbmNlTGliU3VibWl0UmVxdWVzdFRvUHJlT1NGdW5jdGlvbiAoDQo+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUHBEYXRhDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApOw0KPiAgICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykp IHsNCj4gLSAgICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJbVFBNMl0gU2V0IFBQIHZhcmlhYmxl IGZhaWx1cmUhIFN0YXR1cyA9ICVyXG4iLA0KPiBTdGF0dXMpKTsNCj4gKyAgICAgIERFQlVHICgo REVCVUdfRVJST1IsICJbVFBNMl0gU2V0IFBQIHZhcmlhYmxlIGZhaWx1cmUhIFN0YXR1cyA9ICVy XG4iLA0KPiBTdGF0dXMpKTsNCj4gICAgICAgIHJldHVybiBUQ0dfUFBfU1VCTUlUX1JFUVVFU1Rf VE9fUFJFT1NfR0VORVJBTF9GQUlMVVJFOw0KPiAgICAgIH0NCj4gICAgfQ0KPiBAQCAtMTI2Niw3 ICsxMjUxLDcgQEAgVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWJHZXRNYW5hZ2VtZW50RmxhZ3MgKA0K PiAgICBFRklfVENHMl9QSFlTSUNBTF9QUkVTRU5DRV9GTEFHUyAgUHBpRmxhZ3M7DQo+ICAgIFVJ TlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhU2l6ZTsNCj4NCj4gLSAgREVCVUcg KChFRklfRF9JTkZPLCAiW1RQTTJdIEdldE1hbmFnZW1lbnRGbGFnc1xuIikpOw0KPiArICBERUJV RyAoKERFQlVHX0lORk8sICJbVFBNMl0gR2V0TWFuYWdlbWVudEZsYWdzXG4iKSk7DQo+DQo+ICAg IERhdGFTaXplID0gc2l6ZW9mIChFRklfVENHMl9QSFlTSUNBTF9QUkVTRU5DRV9GTEFHUyk7DQo+ ICAgIFN0YXR1cyAgID0gZ1JULT5HZXRWYXJpYWJsZSAoDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvTGlicmFyeS9E eGVUY2cNCj4gMlBoeXNpY2FsUHJlc2VuY2VMaWIvRHhlVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIu aW5mDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5 UGtnL0xpYnJhcnkvRHhlVGNnDQo+IDJQaHlzaWNhbFByZXNlbmNlTGliL0R4ZVRjZzJQaHlzaWNh bFByZXNlbmNlTGliLmluZg0KPiBpbmRleCBiMGVlMTAyNDBlLi4yY2UxMTMzNTk2IDEwMDY0NA0K PiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJp dHlQa2cvTGlicmFyeS9EeGVUY2cNCj4gMlBoeXNpY2FsUHJlc2VuY2VMaWIvRHhlVGNnMlBoeXNp Y2FsUHJlc2VuY2VMaWIuaW5mDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv T3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZVRjZw0KPiAyUGh5c2ljYWxQcmVz ZW5jZUxpYi9EeGVUY2cyUGh5c2ljYWxQcmVzZW5jZUxpYi5pbmYNCj4gQEAgLTEsMTMgKzEsMyBA QA0KPiAtIyMgQGZpbGUNCj4gLSMgIFRDRyAyLjAgUGh5c2ljYWwgUHJlc2VuY2UgRFhFIE1vZHVs ZSBJTkYgZmlsZQ0KPiAtIw0KPiAtIyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8g RGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSMgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLSMNCj4gLSMjDQo+IC0NCj4gLSMg VGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZv bGxvd2luZyBsaWNlbnNlLg0KPiAtDQo+ICAjIyBAZmlsZQ0KPiAgIyAgRXhlY3V0ZXMgVFBNIDIu MCByZXF1ZXN0cyBmcm9tIE9TIG9yIEJJT1MNCj4gICMNCj4gQEAgLTE4LDEzICs4LDkgQEANCj4g ICMgIFRoaXMgZHJpdmVyIHdpbGwgaGF2ZSBleHRlcm5hbCBpbnB1dCAtIHZhcmlhYmxlLg0KPiAg IyAgVGhpcyBleHRlcm5hbCBpbnB1dCBtdXN0IGJlIHZhbGlkYXRlZCBjYXJlZnVsbHkgdG8gYXZv aWQgc2VjdXJpdHkgaXNzdWUuDQo+ICAjDQo+ICsjIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNl ZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgIyBDb3B5 cmlnaHQgKGMpIDIwMTMgLSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+IC0jIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlh bHMNCj4gLSMgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMg YW5kIGNvbmRpdGlvbnMgb2YgdGhlDQo+IEJTRCBMaWNlbnNlDQo+IC0jIHdoaWNoIGFjY29tcGFu aWVzIHRoaXMgZGlzdHJpYnV0aW9uLiBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBi ZQ0KPiBmb3VuZCBhdA0KPiAtIyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxp Y2Vuc2UucGhwDQo+IC0jIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0Qg TElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtIyBXSVRIT1VUIFdBUlJBTlRJRVMg T1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBM SUVELg0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0K PiAgIw0KPiAgIyMNCj4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZVRjZw0KPiAyUGh5c2ljYWxQ cmVzZW5jZUxpYi9EeGVUY2cyUGh5c2ljYWxQcmVzZW5jZUxpYi51bmkNCj4gYi9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVUY2cN Cj4gMlBoeXNpY2FsUHJlc2VuY2VMaWIvRHhlVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIudW5pDQo+ IGluZGV4IGFjMmU3OGQ3MzUuLmQ3ZTRhZjczMmIgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZVRj Zw0KPiAyUGh5c2ljYWxQcmVzZW5jZUxpYi9EeGVUY2cyUGh5c2ljYWxQcmVzZW5jZUxpYi51bmkN Cj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3Vy aXR5UGtnL0xpYnJhcnkvRHhlVGNnDQo+IDJQaHlzaWNhbFByZXNlbmNlTGliL0R4ZVRjZzJQaHlz aWNhbFByZXNlbmNlTGliLnVuaQ0KPiBAQCAtMSwxNCArMSwzIEBADQo+IC0vLyAvKiogQGZpbGUN Cj4gLS8vIFRDRyAyLjAgUGh5c2ljYWwgUHJlc2VuY2UgTGlicmFyeSB1bmkgZmlsZQ0KPiAtLy8N Cj4gLS8vIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFs bCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtLy8NCj4gLS8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0vLw0KPiAtLy8gKiovDQo+IC0vLyBUaGlzIGZp bGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5n IGxpY2Vuc2UuDQo+IC0vLyAqLw0KPiAtDQo+ICAvLyAvKiogQGZpbGUNCj4gIC8vIEV4ZWN1dGVz IFRQTSAyLjAgcmVxdWVzdHMgZnJvbSBPUyBvciBCSU9TDQo+ICAvLw0KPiBAQCAtMTksMTggKzgs MTMgQEANCj4gIC8vIFRoaXMgZHJpdmVyIHdpbGwgaGF2ZSBleHRlcm5hbCBpbnB1dCAtIHZhcmlh YmxlLg0KPiAgLy8gVGhpcyBleHRlcm5hbCBpbnB1dCBtdXN0IGJlIHZhbGlkYXRlZCBjYXJlZnVs bHkgdG8gYXZvaWQgc2VjdXJpdHkgaXNzdWUuDQo+ICAvLw0KPiArLy8gQ29weXJpZ2h0IChDKSAy MDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ICAvLyBDb3B5cmlnaHQgKGMpIDIwMTMgLSAyMDE0LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAvLw0KPiAtLy8gVGhpcyBwcm9ncmFtIGFuZCB0aGUg YWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiAtLy8gYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWls YWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlDQo+IEJTRCBMaWNlbnNl DQo+IC0vLyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gVGhlIGZ1bGwgdGV4 dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gLS8vIGh0dHA6Ly9vcGVuc291 cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4gLS8vIFRIRSBQUk9HUkFNIElTIERJ U1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0K PiAtLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwg RUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICAvLw0KPiAgLy8gKiovDQo+DQo+IC0NCj4gICNz dHJpbmcgU1RSX01PRFVMRV9BQlNUUkFDVCAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIkV4 ZWN1dGVzIFRQTSAyLjANCj4gcmVxdWVzdHMgZnJvbSBPUyBvciBCSU9TIg0KPg0KPiAgI3N0cmlu ZyBTVFJfTU9EVUxFX0RFU0NSSVBUSU9OICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiVGhpcyBs aWJyYXJ5IHdpbGwNCj4gY2hlY2sgYW5kIGV4ZWN1dGUgVFBNIDIuMCByZXF1ZXN0IGZyb20gT1Mg b3IgQklPUy4gVGhlIHJlcXVlc3QgbWF5IGFzayBmb3INCj4gdXNlciBjb25maXJtYXRpb24gYmVm b3JlIGV4ZWN1dGlvbi5cbiINCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2do Qm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZVRjZw0KPiAyUGh5c2lj YWxQcmVzZW5jZUxpYi9QaHlzaWNhbFByZXNlbmNlU3RyaW5ncy51bmkNCj4gYi9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVUY2cN Cj4gMlBoeXNpY2FsUHJlc2VuY2VMaWIvUGh5c2ljYWxQcmVzZW5jZVN0cmluZ3MudW5pDQo+IGlu ZGV4IDdjZjk5MDEwNDYuLjcwZmE2NTE0NTUgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZVRjZw0K PiAyUGh5c2ljYWxQcmVzZW5jZUxpYi9QaHlzaWNhbFByZXNlbmNlU3RyaW5ncy51bmkNCj4gKysr DQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtn L0xpYnJhcnkvRHhlVGNnDQo+IDJQaHlzaWNhbFByZXNlbmNlTGliL1BoeXNpY2FsUHJlc2VuY2VT dHJpbmdzLnVuaQ0KPiBAQCAtMSwyNyArMSwxMiBAQA0KPiAgLy8gLyoqIEBmaWxlDQo+IC0vLyBQ aHlzaWNhbCBQcmVzZW5jZSBTdHJpbmcgdW5pIGZpbGUNCj4gKy8vIFN0cmluZyBkZWZpbml0aW9u cyBmb3IgVFBNIDIuMCBwaHlzaWNhbCBwcmVzZW5jZSBjb25maXJtIHRleHQuDQo+ICAvLw0KPiAg Ly8gQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ICsvLyBDb3B5cmlnaHQgKGMpIDIwMTMgLSAyMDE0LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAvLw0KPiAgLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gIC8vDQo+ICAvLyAq Ki8NCj4gLS8vIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVu ZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4gLS8vICovDQo+IC0NCj4gLS8qKiBAZmlsZQ0K PiAtICBTdHJpbmcgZGVmaW5pdGlvbnMgZm9yIFRQTSAyLjAgcGh5c2ljYWwgcHJlc2VuY2UgY29u ZmlybSB0ZXh0Lg0KPiAtDQo+IC1Db3B5cmlnaHQgKGMpIDIwMTMgLSAyMDE0LCBJbnRlbCBDb3Jw b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC1UaGlzIHByb2dyYW0gYW5kIHRo ZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+IC1hcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxh YmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vuc2UN Cj4gLXdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBv ZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gLWh0dHA6Ly9vcGVuc291cmNlLm9y Zy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4gLQ0KPiAtVEhFIFBST0dSQU0gSVMgRElTVFJJ QlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+IC1X SVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIN Cj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiAtDQo+IC0qKi8NCj4NCj4gICNsYW5nZGVmIGVuLVVT ICJFbmdsaXNoIg0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtnL1RjZy9BbWRGdHBtLw0KPiBGdHBtVGNnMlNtbS9U Y2cyU21tLmMNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2Vj dXJpdHlQa2cvVGNnL0FtZEZ0cG0vDQo+IEZ0cG1UY2cyU21tL1RjZzJTbW0uYw0KPiBpbmRleCBm Mzg3NDkyOThhLi42MjMxNzE2NWNiIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvVGNnL0FtZEZ0cG0vDQo+IEZ0cG1U Y2cyU21tL1RjZzJTbW0uYw0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092 ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvVGNnL0FtZEZ0cG0vDQo+IEZ0cG1UY2cyU21tL1RjZzJT bW0uYw0KPiBAQCAtMSwxMyArMSwzIEBADQo+IC0vKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBU Y2cyU21tLkMNCj4gLQ0KPiAtICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2 aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSAgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0KPiAtKiovDQo+IC0NCj4gLS8qIFRo aXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xs b3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAgLyoqIEBmaWxlDQo+ICAgIEl0IHVwZGF0ZXMgZlRQ TTIgaXRlbXMgaW4gQUNQSSB0YWJsZSBhbmQgcmVnaXN0ZXJzIFNNSTIgY2FsbGJhY2sNCj4gICAg ZnVuY3Rpb25zIGZvciBUY2cyIHBoeXNpY2FsIHByZXNlbmNlLCBDbGVhck1lbW9yeSwgYW5kIHNh bXBsZQ0KPiBAQCAtMTksMTQgKzksOSBAQA0KPg0KPiAgICBQaHlzaWNhbFByZXNlbmNlQ2FsbGJh Y2soKSBhbmQgTWVtb3J5Q2xlYXJDYWxsYmFjaygpIHdpbGwgcmVjZWl2ZQ0KPiB1bnRydXN0ZWQg aW5wdXQgYW5kIGRvIHNvbWUgY2hlY2suDQo+DQo+IC1Db3B5cmlnaHQgKGMpIDIwMTUgLSAyMDE4 LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC1UaGlzIHBy b2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+IC1hcmUgbGljZW5zZWQgYW5k IG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNE DQo+IExpY2Vuc2UNCj4gLXdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhl IGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gLWh0dHA6Ly9v cGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4gLQ0KPiAtVEhFIFBST0dS QU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4g QkFTSVMsDQo+IC1XSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBL SU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiArICBDb3B5cmlnaHQgKEMpIDIw MjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gKyAgQ29weXJpZ2h0IChjKSAyMDE1IC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPg0KPiAgKiovDQo+DQo+IEBAIC0zNDUsNyArMzMwLDcgQEAgVXBkYXRl UFBWZXJzaW9uICgNCj4gICAgew0KPiAgICAgIGlmIChBc2NpaVN0ckNtcCAoKENIQVI4ICopRGF0 YVB0ciwgUEhZU0lDQUxfUFJFU0VOQ0VfVkVSU0lPTl9UQUcpID09DQo+IDApIHsNCj4gICAgICAg IFN0YXR1cyA9IEFzY2lpU3RyQ3B5UyAoKENIQVI4ICopRGF0YVB0ciwNCj4gUEhZU0lDQUxfUFJF U0VOQ0VfVkVSU0lPTl9TSVpFLCBQUFZlcik7DQo+IC0gICAgICBERUJVRyAoKEVGSV9EX0lORk8s ICJUUE0yIFBoeXNpY2FsIFByZXNlbmNlIEludGVyZmFjZSBWZXJzaW9uIHVwZGF0ZQ0KPiBzdGF0 dXMgMHgleFxuIiwgU3RhdHVzKSk7DQo+ICsgICAgICBERUJVRyAoKERFQlVHX0lORk8sICJUUE0y IFBoeXNpY2FsIFByZXNlbmNlIEludGVyZmFjZSBWZXJzaW9uDQo+IHVwZGF0ZSBzdGF0dXMgMHgl eFxuIiwgU3RhdHVzKSk7DQo+ICAgICAgICByZXR1cm4gU3RhdHVzOw0KPiAgICAgIH0NCj4gICAg fQ0KPiBAQCAtNjg3LDggKzY3Miw4IEBAIFB1Ymxpc2hBY3BpVGFibGUgKA0KPiAgICBBU1NFUlQg KFRhYmxlLT5PZW1UYWJsZUlkID09IFNJR05BVFVSRV82NCAoJ1QnLCAncCcsICdtJywgJzInLCAn VCcsICdhJywgJ2InLA0KPiAnbCcpKTsNCj4gICAgQ29weU1lbSAoVGFibGUtPk9lbUlkLCBQY2RH ZXRQdHIgKFBjZEFjcGlEZWZhdWx0T2VtSWQpLCBzaXplb2YgKFRhYmxlLQ0KPiA+T2VtSWQpKTsN Cj4NCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiRnRwbUNvbnRyb2xBcmVhOiAweCVsWFxuIiwg KFVJTlROKShWT0lEDQo+ICopbUZ0cG1Db250cm9sQXJlYSkpOw0KPiAtICBERUJVRyAoKEVGSV9E X0lORk8sICJDb21tYW5kU2l6ZTogMHglbFgsIFJlc3BvbnNlU2l6ZTogMHglbFggXG4iLA0KPiBt RnRwbUNvbnRyb2xBcmVhLT5Db21tYW5kU2l6ZSwgbUZ0cG1Db250cm9sQXJlYS0+UmVzcG9uc2VT aXplKSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIkZ0cG1Db250cm9sQXJlYTogMHglbFhc biIsIChVSU5UTikoVk9JRA0KPiAqKW1GdHBtQ29udHJvbEFyZWEpKTsNCj4gKyAgREVCVUcgKChE RUJVR19JTkZPLCAiQ29tbWFuZFNpemU6IDB4JWxYLCBSZXNwb25zZVNpemU6IDB4JWxYIFxuIiwN Cj4gbUZ0cG1Db250cm9sQXJlYS0+Q29tbWFuZFNpemUsIG1GdHBtQ29udHJvbEFyZWEtPlJlc3Bv bnNlU2l6ZSkpOw0KPg0KPiAgICBTdGF0dXMgPSBBc3NpZ25NZW1vcnkzMkZpeGVkIChUYWJsZSwg KFVJTlQzMiltRnRwbUNvbnRyb2xBcmVhLQ0KPiA+Q29tbWFuZEFkZHJlc3MsIChVSU5UMzIpbUZ0 cG1Db250cm9sQXJlYS0+UmVzcG9uc2VBZGRyZXNzKTsNCj4gICAgQVNTRVJUX0VGSV9FUlJPUiAo U3RhdHVzKTsNCj4gQEAgLTgxMywxOCArNzk4LDE4IEBAIEluaXRpYWxpemVUY2dTbW0gKA0KPiAg ICBFRklfU01NX1NXX1JFR0lTVEVSX0NPTlRFWFQgICAgU3dDb250ZXh0Ow0KPiAgICBFRklfSEFO RExFICAgICAgICAgICAgICAgICAgICAgU3dIYW5kbGU7DQo+DQo+IC0gIERFQlVHICgoRUZJX0Rf SU5GTywgIkluaXRpYWxpemVUY2dTbW0gRW50cnkgXG4iKSk7DQo+ICsgIERFQlVHICgoREVCVUdf SU5GTywgIkluaXRpYWxpemVUY2dTbW0gRW50cnkgXG4iKSk7DQo+ICAgIGlmICghQ29tcGFyZUd1 aWQgKFBjZEdldFB0ciAoUGNkVHBtSW5zdGFuY2VHdWlkKSwNCj4gJmdFZmlUcG1EZXZpY2VJbnN0 YW5jZVRwbTIwRHRwbUd1aWQpKSB7DQo+IC0gICAgREVCVUcgKChFRklfRF9FUlJPUiwgIk5vIFRQ TTIgRFRQTSBpbnN0YW5jZSByZXF1aXJlZCFcbiIpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0VS Uk9SLCAiTm8gVFBNMiBEVFBNIGluc3RhbmNlIHJlcXVpcmVkIVxuIikpOw0KPiAgICAgIHJldHVy biBFRklfVU5TVVBQT1JURUQ7DQo+ICAgIH0NCj4NCj4gICAgLy8gaWYgKCFHZXRGdHBtQ29udHJv bEFyZWEoJm1GdHBtQ29udHJvbEFyZWEpKSB7DQo+IC0gIC8vICAgREVCVUcgKChFRklfRF9FUlJP UiwgIkdldCBmVFBNIENvbnRyb2wgQXJlYSBmYWlsZWQhXG4iKSk7DQo+ICsgIC8vICAgREVCVUcg KChERUJVR19FUlJPUiwgIkdldCBmVFBNIENvbnRyb2wgQXJlYSBmYWlsZWQhXG4iKSk7DQo+ICAg IC8vICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCj4gICAgLy8gfQ0KPiAgICBtRnRwbUNvbnRy b2xBcmVhID0gKFZPSUQgKikoVUlOVE4pUGNkR2V0NjQgKFBjZFRwbUJhc2VBZGRyZXNzKTsNCj4g LSAgREVCVUcgKChFRklfRF9JTkZPLCAiR2V0IFBjZFRwbUJhc2VBZGRyZXNzOiV4XG4iLA0KPiBt RnRwbUNvbnRyb2xBcmVhKSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIkdldCBQY2RUcG1C YXNlQWRkcmVzczoleFxuIiwNCj4gbUZ0cG1Db250cm9sQXJlYSkpOw0KPiAgICBTdGF0dXMgPSBQ dWJsaXNoQWNwaVRhYmxlICgpOw0KPiAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPg0K PiBAQCAtODQxLDcgKzgyNiw3IEBAIEluaXRpYWxpemVUY2dTbW0gKA0KPiAgICB9DQo+DQo+ICAg IG1UY2dOdnMtPlBoeXNpY2FsUHJlc2VuY2UuU29mdHdhcmVTbWkgPQ0KPiAoVUlOVDgpU3dDb250 ZXh0LlN3U21pSW5wdXRWYWx1ZTsNCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiUGh5c2ljYWxQ cmVzZW5jZSBTb2Z0d2FyZVNtaTogMHglWFxuIiwNCj4gKFVJTlQ4KVN3Q29udGV4dC5Td1NtaUlu cHV0VmFsdWUpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiUGh5c2ljYWxQcmVzZW5jZSBT b2Z0d2FyZVNtaTogMHglWFxuIiwNCj4gKFVJTlQ4KVN3Q29udGV4dC5Td1NtaUlucHV0VmFsdWUp KTsNCj4NCj4gICAgU3dDb250ZXh0LlN3U21pSW5wdXRWYWx1ZSA9IChVSU5UTiktMTsNCj4gICAg U3RhdHVzICAgICAgICAgICAgICAgICAgICA9IFN3RGlzcGF0Y2gtPlJlZ2lzdGVyIChTd0Rpc3Bh dGNoLA0KPiBNZW1vcnlDbGVhckNhbGxiYWNrLCAmU3dDb250ZXh0LCAmU3dIYW5kbGUpOw0KPiBA QCAtODUxLDcgKzgzNiw3IEBAIEluaXRpYWxpemVUY2dTbW0gKA0KPiAgICB9DQo+DQo+ICAgIG1U Y2dOdnMtPk1lbW9yeUNsZWFyLlNvZnR3YXJlU21pID0NCj4gKFVJTlQ4KVN3Q29udGV4dC5Td1Nt aUlucHV0VmFsdWU7DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywgIk1lbW9yeUNsZWFyIFNvZnR3 YXJlU21pOiAweCVYXG4iLA0KPiAoVUlOVDgpU3dDb250ZXh0LlN3U21pSW5wdXRWYWx1ZSkpOw0K PiArICBERUJVRyAoKERFQlVHX0lORk8sICJNZW1vcnlDbGVhciBTb2Z0d2FyZVNtaTogMHglWFxu IiwNCj4gKFVJTlQ4KVN3Q29udGV4dC5Td1NtaUlucHV0VmFsdWUpKTsNCj4NCj4gICAgLy8NCj4g ICAgLy8gTG9jYXRlIFNtbVZhcmlhYmxlUHJvdG9jb2wuDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvVGNnL0FtZEZ0 cG0vDQo+IEZ0cG1UY2cyU21tL1RjZzJTbW0uaA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9UY2cvQW1kRnRwbS8NCj4gRnRwbVRjZzJTbW0v VGNnMlNtbS5oDQo+IGluZGV4IDQwMTI5NDIxNzYuLmIxZmRhOGM2YjQgMTAwNjQ0DQo+IC0tLQ0K PiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9U Y2cvQW1kRnRwbS8NCj4gRnRwbVRjZzJTbW0vVGNnMlNtbS5oDQo+ICsrKw0KPiBiL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9UY2cvQW1kRnRwbS8N Cj4gRnRwbVRjZzJTbW0vVGNnMlNtbS5oDQo+IEBAIC0xLDI5ICsxLDE0IEBADQo+ICAvKiogQGZp bGUNCj4gLSAgSW1wbGVtZW50cyBUY2cyU21tLmgNCj4gKyAgVGhlIGhlYWRlciBmaWxlIGZvciBU Y2cyIFNNTSBkcml2ZXIuDQo+DQo+ICAgIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNy byBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArICBDb3B5cmlnaHQg KGMpIDIwMTUgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ DQo+ICAqKi8NCj4NCj4gLS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVi bGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAtLyoqIEBmaWxl DQo+IC0gIFRoZSBoZWFkZXIgZmlsZSBmb3IgVGNnMiBTTU0gZHJpdmVyLg0KPiAtDQo+IC1Db3B5 cmlnaHQgKGMpIDIwMTUgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+IC1UaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxz DQo+IC1hcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQg Y29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vuc2UNCj4gLXdoaWNoIGFjY29tcGFuaWVzIHRo aXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4g Zm91bmQgYXQNCj4gLWh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5w aHANCj4gLQ0KPiAtVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNF TlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+IC1XSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQ UkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0K PiAtDQo+IC0qKi8NCj4gLQ0KPiAtI2lmbmRlZiBfX1RDRzJfU01NX0hfXw0KPiAtI2RlZmluZSBf X1RDRzJfU01NX0hfXw0KPiArI2lmbmRlZiBUQ0cyX1NNTV9IX19fXw0KPiArI2RlZmluZSBUQ0cy X1NNTV9IX19fXw0KPg0KPiAgI2luY2x1ZGUgPFBpRHhlLmg+DQo+ICAjaW5jbHVkZSA8SW5kdXN0 cnlTdGFuZGFyZC9BY3BpLmg+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvVGNnL0FtZEZ0cG0vDQo+IEZ0cG1UY2cy U21tL1RjZzJTbW0uaW5mDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9l ZGsyL1NlY3VyaXR5UGtnL1RjZy9BbWRGdHBtLw0KPiBGdHBtVGNnMlNtbS9UY2cyU21tLmluZg0K PiBpbmRleCBmZWY5M2U2MzJhLi41MjQxOWY1NWVhIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9y bS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvVGNnL0FtZEZ0cG0v DQo+IEZ0cG1UY2cyU21tL1RjZzJTbW0uaW5mDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9UY2cvQW1kRnRwbS8NCj4gRnRwbVRj ZzJTbW0vVGNnMlNtbS5pbmYNCj4gQEAgLTEsMTMgKzEsMyBAQA0KPiAtIyMgQGZpbGUNCj4gLSMg IFRDRyAyLjAgU01NIE1vZHVsZSBJTkYgZmlsZQ0KPiAtIw0KPiAtIyBDb3B5cmlnaHQgKEMpIDIw MjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLSMN Cj4gLSMjDQo+IC0NCj4gLSMgVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJs aXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLg0KPiAtDQo+ICAjIyBAZmlsZQ0KPiAg IyAgUHJvdmlkZXMgQUNQSSBtZXRob2RzIGZvciBmVFBNIDIuMCBzdXBwb3J0DQo+ICAjDQo+IEBA IC0yNiwxMyArMTYsOSBAQA0KPiAgIyAgVGhpcyBkcml2ZXIgd2lsbCBoYXZlIGV4dGVybmFsIGlu cHV0IC0gdmFyaWFibGUgYW5kIEFDUElOdnMgZGF0YSBpbiBTTU0NCj4gbW9kZS4NCj4gICMgIFRo aXMgZXh0ZXJuYWwgaW5wdXQgbXVzdCBiZSB2YWxpZGF0ZWQgY2FyZWZ1bGx5IHRvIGF2b2lkIHNl Y3VyaXR5IGlzc3VlLg0KPiAgIw0KPiArIyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWlj cm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICMgQ29weXJpZ2h0 IChjKSAyMDE1IC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiAtIyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ IC0jIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBj b25kaXRpb25zIG9mIHRoZQ0KPiBCU0QgTGljZW5zZQ0KPiAtIyB3aGljaCBhY2NvbXBhbmllcyB0 aGlzIGRpc3RyaWJ1dGlvbi4gVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4g Zm91bmQgYXQNCj4gLSMgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNl LnBocA0KPiAtIyBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VO U0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJF UFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4N Cj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gICMN Cj4gICMjDQo+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092 ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvVGNnL0FtZEZ0cG0vDQo+IEZ0cG1UY2cyU21tL1RjZzJT bW1FeHRyYS51bmkNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIv U2VjdXJpdHlQa2cvVGNnL0FtZEZ0cG0vDQo+IEZ0cG1UY2cyU21tL1RjZzJTbW1FeHRyYS51bmkN Cj4gaW5kZXggNjI4MzViNDA5Zi4uYjg1ZWMxMGViYSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtnL1RjZy9BbWRGdHBt Lw0KPiBGdHBtVGNnMlNtbS9UY2cyU21tRXh0cmEudW5pDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9UY2cvQW1kRnRwbS8NCj4g RnRwbVRjZzJTbW0vVGNnMlNtbUV4dHJhLnVuaQ0KPiBAQCAtMSwyNSArMSwxMCBAQA0KPiAtLy8g LyoqIEBmaWxlDQo+IC0vLyBUQ0cgMi4wIFNNTSBleHRyYSB1bmkgZmlsZQ0KPiAtLy8NCj4gLS8v IENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KPiAtLy8NCj4gLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0vLw0KPiAtLy8gKiovDQo+IC0vLyBUaGlzIGZpbGUgaW5j bHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vu c2UuDQo+IC0vLyAqLw0KPiAtDQo+ICAvLyAvKiogQGZpbGUNCj4gIC8vIFRjZzJTbW0gTG9jYWxp emVkIFN0cmluZ3MgYW5kIENvbnRlbnQNCj4gIC8vDQo+ICsvLyBDb3B5cmlnaHQgKEMpIDIwMjQg QWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g IC8vIENvcHlyaWdodCAoYykgMjAxNSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiAgLy8NCj4gLS8vIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWlu ZyBtYXRlcmlhbHMNCj4gLS8vIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIg dGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQ0KPiBCU0QgTGljZW5zZQ0KPiAtLy8gd2hp Y2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxp Y2Vuc2UgbWF5IGJlDQo+IGZvdW5kIGF0DQo+IC0vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGlj ZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQo+IC0vLyBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBV TkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gLS8vIFdJVEhP VVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBF WFBSRVNTIE9SIElNUExJRUQuDQo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPiAgLy8NCj4gIC8vICoqLw0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtnL1RjZy9UY2cy Q29uZmlnDQo+IC9UY2cyQ29uZmlnTnZEYXRhLmgNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvVGNnL1RjZzJDb25maWcNCj4gL1RjZzJDb25m aWdOdkRhdGEuaA0KPiBpbmRleCAyNzFjOTk2MTNhLi44NmI5MzYyZDlmIDEwMDY0NA0KPiAtLS0N Cj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cv VGNnL1RjZzJDb25maWcNCj4gL1RjZzJDb25maWdOdkRhdGEuaA0KPiArKysNCj4gYi9QbGF0Zm9y bS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvVGNnL1RjZzJDb25m aWcNCj4gL1RjZzJDb25maWdOdkRhdGEuaA0KPiBAQCAtMSwyOSArMSwxNCBAQA0KPiAgLyoqIEBm aWxlDQo+IC0gIEltcGxlbWVudHMgVGNnMkNvbmZpZ052RGF0YS5oDQo+ICsgIEhlYWRlciBmaWxl IGZvciBOViBkYXRhIHN0cnVjdHVyZSBkZWZpbml0aW9uLg0KPg0KPiAgICBDb3B5cmlnaHQgKEMp IDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDE1IC0gMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFs bCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudA0KPg0KPiAgKiovDQo+DQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMg Y29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICov DQo+IC0NCj4gLS8qKiBAZmlsZQ0KPiAtICBIZWFkZXIgZmlsZSBmb3IgTlYgZGF0YSBzdHJ1Y3R1 cmUgZGVmaW5pdGlvbi4NCj4gLQ0KPiAtQ29weXJpZ2h0IChjKSAyMDE1IC0gMjAxNywgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtVGhpcyBwcm9ncmFtIGFu ZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiAtYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2 YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRA0KPiBMaWNl bnNlDQo+IC13aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRl eHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlDQo+IGZvdW5kIGF0DQo+IC1odHRwOi8vb3BlbnNvdXJj ZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQo+IC0NCj4gLVRIRSBQUk9HUkFNIElTIERJ U1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0K PiAtV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlU SEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gLQ0KPiAtKiovDQo+IC0NCj4gLSNpZm5kZWYg X19UQ0cyX0NPTkZJR19OVl9EQVRBX0hfXw0KPiAtI2RlZmluZSBfX1RDRzJfQ09ORklHX05WX0RB VEFfSF9fDQo+ICsjaWZuZGVmIFRDRzJfQ09ORklHX05WX0RBVEFfSF9fX18NCj4gKyNkZWZpbmUg VENHMl9DT05GSUdfTlZfREFUQV9IX19fXw0KPg0KPiAgI2luY2x1ZGUgPEd1aWQvSGlpUGxhdGZv cm1TZXR1cEZvcm1zZXQuaD4NCj4gICNpbmNsdWRlIDxHdWlkL1RjZzJDb25maWdIaWkuaD4NCj4g QEAgLTMyLDcgKzE3LDcgQEAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBP RiBBTlkNCj4gS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gIC8vDQo+ICAvLyBC VUdCVUc6IEluIG9yZGVyIHRvIHBhc3MgVmZyQ29tcGlsZXIsIHdlIGhhdmUgdG8gcmVkZWZpbmUg YmVsb3cNCj4gTUFDUk8sIHdoaWNoIGFscmVhZHkgaW4gPFByb3RvY29sL1RjZzJQcm90b2NvbC5o Pi4NCj4gIC8vDQo+IC0jaWZuZGVmIF9fVENHMl9IX18NCj4gKyNpZm5kZWYgVENHMl9IX19fXw0K PiAgI2RlZmluZSBFRklfVENHMl9FVkVOVF9MT0dfRk9STUFUX1RDR18xXzIgIDB4MDAwMDAwMDEN Cj4gICNkZWZpbmUgRUZJX1RDRzJfRVZFTlRfTE9HX0ZPUk1BVF9UQ0dfMiAgICAweDAwMDAwMDAy DQo+ICAjZW5kaWYNCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv T3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9UY2cvVGNnMkNvbmZpZw0KPiAvVGNnMkNvbmZpZ1Bl aS5pbmYNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJp dHlQa2cvVGNnL1RjZzJDb25maWcNCj4gL1RjZzJDb25maWdQZWkuaW5mDQo+IGluZGV4IGYzNGM1 ZjcyNzcuLmUxNTMwZmI4NzQgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2do Qm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9UY2cvVGNnMkNvbmZpZw0KPiAvVGNnMkNv bmZpZ1BlaS5pbmYNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlk ZS9lZGsyL1NlY3VyaXR5UGtnL1RjZy9UY2cyQ29uZmlnDQo+IC9UY2cyQ29uZmlnUGVpLmluZg0K PiBAQCAtMSwyNiArMSwxMiBAQA0KPiAtIyMgQGZpbGUNCj4gLSMgIFRDRyAyLjAgQ29uZmlnIFBF SSBNb2R1bGUgSU5GIGZpbGUNCj4gLSMNCj4gLSMgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2Vk IE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0jIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0jDQo+IC0jIw0KPiAt DQo+IC0jIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVy IHRoZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4gLQ0KPiAgIyMgQGZpbGUNCj4gICMgIFNldCBUUE0g ZGV2aWNlIHR5cGUNCj4gICMNCj4gICMgIFRoaXMgbW9kdWxlIGluaXRpYWxpemVzIFRQTSBkZXZp Y2UgdHlwZSBiYXNlZCBvbiB2YXJpYWJsZSBhbmQgZGV0ZWN0aW9uLg0KPiAgIyAgTk9URTogVGhp cyBtb2R1bGUgaXMgb25seSBmb3IgcmVmZXJlbmNlIG9ubHksIGVhY2ggcGxhdGZvcm0gc2hvdWxk IGhhdmUNCj4gaXRzIG93biBzZXR1cCBwYWdlLg0KPiAgIw0KPiArIyBDb3B5cmlnaHQgKEMpIDIw MjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gICMgQ29weXJpZ2h0IChjKSAyMDE1IC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtIyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlp bmcgbWF0ZXJpYWxzDQo+IC0jIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIg dGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQ0KPiBCU0QgTGljZW5zZQ0KPiAtIyB3aGlj aCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGlj ZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gLSMgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vu c2VzL2JzZC1saWNlbnNlLnBocA0KPiAtIyBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRF UiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gLSMgV0lUSE9VVCBX QVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJF U1MgT1IgSU1QTElFRC4NCj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS1QYXRlbnQNCj4gICMNCj4gICMjDQo+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvVGNnL1RjZzJDb25maWcNCj4g L1RjZzJDb25maWdQZWkudW5pDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlk ZS9lZGsyL1NlY3VyaXR5UGtnL1RjZy9UY2cyQ29uZmlnDQo+IC9UY2cyQ29uZmlnUGVpLnVuaQ0K PiBpbmRleCA1YzFhNGI2ZThmLi40ZDFlN2FlNmFjIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9y bS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvVGNnL1RjZzJDb25m aWcNCj4gL1RjZzJDb25maWdQZWkudW5pDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2do Qm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9UY2cvVGNnMkNvbmZpZw0KPiAvVGNnMkNv bmZpZ1BlaS51bmkNCj4gQEAgLTEsMzEgKzEsMTEgQEANCj4gLS8vIC8qKiBAZmlsZQ0KPiAtLy8g VENHIDIuMCBDb25maWcgUEVJIHVuaSBmaWxlDQo+IC0vLw0KPiAtLy8gQ29weXJpZ2h0IChDKSAy MDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+IC0vLw0KPiAtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCj4gLS8vDQo+IC0vLyAqKi8NCj4gLS8vIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdp bmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4gLS8vICovDQo+ IC0NCj4gIC8vIC8qKiBAZmlsZQ0KPiAgLy8gU2V0IFRQTSBkZXZpY2UgdHlwZQ0KPiAgLy8NCj4g LS8vIFRoaXMgbW9kdWxlIGluaXRpYWxpemVzIFRQTSBkZXZpY2UgdHlwZSBiYXNlZCBvbiB2YXJp YWJsZSBhbmQgZGV0ZWN0aW9uLg0KPiAtLy8gTk9URTogVGhpcyBtb2R1bGUgaXMgb25seSBmb3Ig cmVmZXJlbmNlIG9ubHksIGVhY2ggcGxhdGZvcm0gc2hvdWxkIGhhdmUNCj4gaXRzIG93biBzZXR1 cCBwYWdlLg0KPiAtLy8NCj4gKy8vIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBE ZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgLy8gQ29weXJpZ2h0IChj KSAyMDE1LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAv Lw0KPiAtLy8gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiAt Ly8gYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNv bmRpdGlvbnMgb2YgdGhlDQo+IEJTRCBMaWNlbnNlDQo+IC0vLyB3aGljaCBhY2NvbXBhbmllcyB0 aGlzIGRpc3RyaWJ1dGlvbi4gVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4g Zm91bmQgYXQNCj4gLS8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5z ZS5waHANCj4gLS8vIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElD RU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9S IFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElF RC4NCj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ ICAvLw0KPiAtLy8gKiovDQo+IC0NCj4NCj4gICNzdHJpbmcgU1RSX01PRFVMRV9BQlNUUkFDVCAg ICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlNldCBUUE0gZGV2aWNlDQo+IHR5cGUiDQo+DQo+ IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIv U2VjdXJpdHlQa2cvVGNnL1RjZzJDb25maWcNCj4gL1RjZzJDb25maWdQZWlFeHRyYS51bmkNCj4g Yi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvVGNn L1RjZzJDb25maWcNCj4gL1RjZzJDb25maWdQZWlFeHRyYS51bmkNCj4gaW5kZXggZThiMDM2ZTA2 MS4uMGU3OWVlNjE0YSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtnL1RjZy9UY2cyQ29uZmlnDQo+IC9UY2cyQ29uZmln UGVpRXh0cmEudW5pDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJp ZGUvZWRrMi9TZWN1cml0eVBrZy9UY2cvVGNnMkNvbmZpZw0KPiAvVGNnMkNvbmZpZ1BlaUV4dHJh LnVuaQ0KPiBAQCAtMSwyNSArMSwxMCBAQA0KPiAtLy8gLyoqIEBmaWxlDQo+IC0vLyBUQ0cgMi4w IENvbmZpZyBQRUkgZXh0cmEgdW5pIGZpbGUNCj4gLS8vDQo+IC0vLyBDb3B5cmlnaHQgKEMpIDIw MjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gLS8vDQo+IC0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiAtLy8NCj4gLS8vICoqLw0KPiAtLy8gVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2lu YWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLg0KPiAtLy8gKi8NCj4g LQ0KPiAgLy8gLyoqIEBmaWxlDQo+ICAvLyBUY2cyQ29uZmlnRHhlIExvY2FsaXplZCBTdHJpbmdz IGFuZCBDb250ZW50DQo+ICAvLw0KPiArLy8gQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1p Y3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAvLyBDb3B5cmln aHQgKGMpIDIwMTUsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gIC8vDQo+IC0vLyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxz DQo+IC0vLyBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBh bmQgY29uZGl0aW9ucyBvZiB0aGUNCj4gQlNEIExpY2Vuc2UNCj4gLS8vIHdoaWNoIGFjY29tcGFu aWVzIHRoaXMgZGlzdHJpYnV0aW9uLiBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBi ZQ0KPiBmb3VuZCBhdA0KPiAtLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1s aWNlbnNlLnBocA0KPiAtLy8gVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJT RCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+IC0vLyBXSVRIT1VUIFdBUlJBTlRJ RVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJ TVBMSUVELg0KPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCj4gIC8vDQo+ICAvLyAqKi8NCj4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9UY2cvVGNnMkNvbmZpZw0KPiAv VGNnMkNvbmZpZ1BlaW0uYw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUv ZWRrMi9TZWN1cml0eVBrZy9UY2cvVGNnMkNvbmZpZw0KPiAvVGNnMkNvbmZpZ1BlaW0uYw0KPiBp bmRleCBiYmJjYmE2ZThiLi45ZDkwNTgxMzg4IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2VjdXJpdHlQa2cvVGNnL1RjZzJDb25maWcN Cj4gL1RjZzJDb25maWdQZWltLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9PdmVycmlkZS9lZGsyL1NlY3VyaXR5UGtnL1RjZy9UY2cyQ29uZmlnDQo+IC9UY2cyQ29uZmln UGVpbS5jDQo+IEBAIC0xLDI3ICsxLDEyIEBADQo+ICAvKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50 cyBUY2cyQ29uZmlnUGVpbS5DDQo+ICsgIFRoZSBtb2R1bGUgZW50cnkgcG9pbnQgZm9yIFRjZzIg Y29uZmlndXJhdGlvbiBtb2R1bGUuDQo+DQo+ICAgIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNl ZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArICBDb3B5 cmlnaHQgKGMpIDIwMTUsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4N Cj4gICoqLw0KPg0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJs aXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZpbGUN Cj4gLSAgVGhlIG1vZHVsZSBlbnRyeSBwb2ludCBmb3IgVGNnMiBjb25maWd1cmF0aW9uIG1vZHVs ZS4NCj4gLQ0KPiAtQ29weXJpZ2h0IChjKSAyMDE1LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+IC1UaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcg bWF0ZXJpYWxzDQo+IC1hcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0 ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vuc2UNCj4gLXdoaWNoIGFjY29t cGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBt YXkgYmUNCj4gZm91bmQgYXQNCj4gLWh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2Qt bGljZW5zZS5waHANCj4gLQ0KPiAtVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhF IEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+IC1XSVRIT1VUIFdBUlJBTlRJ RVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJ TVBMSUVELg0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAgI2luY2x1ZGUgPFBpUGVpLmg+DQo+ICAjaW5j bHVkZSA8R3VpZC9UcG1JbnN0YW5jZS5oPg0KPiAgI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5o Pg0KPiBAQCAtMTEzLDExICs5OCwxMSBAQCBUY2cyQ29uZmlnUGVpbUVudHJ5UG9pbnQgKA0KPiAg ICAvLw0KPiAgICAvLyBBbHRob3VnaCB3ZSBoYXZlIFNldHVwVmFyaWFibGUgaW5mbywgd2Ugc3Rp bGwgbmVlZCBkZXRlY3QgVFBNIGRldmljZQ0KPiBtYW51YWxseS4NCj4gICAgLy8NCj4gLSAgREVC VUcgKChFRklfRF9JTkZPLCAiVGNnMkNvbmZpZ3VyYXRpb24uVHBtRGV2aWNlIGZyb20gU2V0dXA6 ICV4XG4iLA0KPiBUY2cyQ29uZmlndXJhdGlvbi5UcG1EZXZpY2UpKTsNCj4gKyAgREVCVUcgKChE RUJVR19JTkZPLCAiVGNnMkNvbmZpZ3VyYXRpb24uVHBtRGV2aWNlIGZyb20gU2V0dXA6ICV4XG4i LA0KPiBUY2cyQ29uZmlndXJhdGlvbi5UcG1EZXZpY2UpKTsNCj4NCj4gICAgaWYgKFBjZEdldEJv b2wgKFBjZFRwbUF1dG9EZXRlY3Rpb24pKSB7DQo+ICAgICAgVHBtRGV2aWNlID0gRGV0ZWN0VHBt RGV2aWNlIChUY2cyQ29uZmlndXJhdGlvbi5UcG1EZXZpY2UpOw0KPiAtICAgIERFQlVHICgoRUZJ X0RfSU5GTywgIlRwbURldmljZSBmaW5hbDogJXhcbiIsIFRwbURldmljZSkpOw0KPiArICAgIERF QlVHICgoREVCVUdfSU5GTywgIlRwbURldmljZSBmaW5hbDogJXhcbiIsIFRwbURldmljZSkpOw0K PiAgICAgIGlmIChUcG1EZXZpY2UgIT0gVFBNX0RFVklDRV9OVUxMKSB7DQo+ICAgICAgICBUY2cy Q29uZmlndXJhdGlvbi5UcG1EZXZpY2UgPSBUcG1EZXZpY2U7DQo+ICAgICAgfQ0KPiBAQCAtMTM4 LDcgKzEyMyw3IEBAIFRjZzJDb25maWdQZWltRW50cnlQb2ludCAoDQo+ICAgICAgICBTaXplICAg PSBzaXplb2YgKG1UcG1JbnN0YW5jZUlkW0luZGV4XS5UcG1JbnN0YW5jZUd1aWQpOw0KPiAgICAg ICAgU3RhdHVzID0gUGNkU2V0UHRyUyAoUGNkVHBtSW5zdGFuY2VHdWlkLCAmU2l6ZSwNCj4gJm1U cG1JbnN0YW5jZUlkW0luZGV4XS5UcG1JbnN0YW5jZUd1aWQpOw0KPiAgICAgICAgQVNTRVJUX0VG SV9FUlJPUiAoU3RhdHVzKTsNCj4gLSAgICAgIERFQlVHICgoRUZJX0RfSU5GTywgIlRwbURldmlj ZSBQQ0Q6ICVnXG4iLA0KPiAmbVRwbUluc3RhbmNlSWRbSW5kZXhdLlRwbUluc3RhbmNlR3VpZCkp Ow0KPiArICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiVHBtRGV2aWNlIFBDRDogJWdcbiIsDQo+ ICZtVHBtSW5zdGFuY2VJZFtJbmRleF0uVHBtSW5zdGFuY2VHdWlkKSk7DQo+ICAgICAgICBicmVh azsNCj4gICAgICB9DQo+ICAgIH0NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9UY2cvVGNnMkNvbmZpZw0KPiAvVHBt RGV0ZWN0aW9uLmMNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIv U2VjdXJpdHlQa2cvVGNnL1RjZzJDb25maWcNCj4gL1RwbURldGVjdGlvbi5jDQo+IGluZGV4IGUz MDEyOTUyNTYuLjRhMzE3MzhiMTMgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TZWN1cml0eVBrZy9UY2cvVGNnMkNvbmZpZw0KPiAvVHBt RGV0ZWN0aW9uLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlk ZS9lZGsyL1NlY3VyaXR5UGtnL1RjZy9UY2cyQ29uZmlnDQo+IC9UcG1EZXRlY3Rpb24uYw0KPiBA QCAtMSwyNyArMSwxMiBAQA0KPiAgLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgVHBtRGV0ZWN0 aW9uLkMNCj4gKyAgZlRQTTIuMC9kVFBNMi4wIGF1dG8gZGV0ZWN0aW9uLg0KPg0KPiAgICBDb3B5 cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJl c2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDE1IC0gMjAxNiwgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiAgKiovDQo+DQo+IC0vKiBUaGlzIGZpbGUg aW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxp Y2Vuc2UuICovDQo+IC0NCj4gLS8qKiBAZmlsZQ0KPiAtICBmVFBNMi4wL2RUUE0yLjAgYXV0byBk ZXRlY3Rpb24uDQo+IC0NCj4gLUNvcHlyaWdodCAoYykgMjAxNSAtIDIwMTYsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLVRoaXMgcHJvZ3JhbSBhbmQgdGhl IGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLWFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFi bGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGljZW5zZQ0K PiAtd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9m IHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtaHR0cDovL29wZW5zb3VyY2Uub3Jn L2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiAtDQo+IC1USEUgUFJPR1JBTSBJUyBESVNUUklC VVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gLVdJ VEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0K PiBFWFBSRVNTIE9SIElNUExJRUQuDQo+IC0NCj4gLSoqLw0KPiAtDQo+ICAjaW5jbHVkZSA8UGlQ ZWkuaD4NCj4gICNpbmNsdWRlIDxQcGkvUmVhZE9ubHlWYXJpYWJsZTIuaD4NCj4gICNpbmNsdWRl IDxMaWJyYXJ5L0Jhc2VMaWIuaD4NCj4gQEAgLTY1LDEyICs1MCwxMSBAQCBEZXRlY3RUcG1EZXZp Y2UgKA0KPiAgICBTdGF0dXMgPSBQZWlTZXJ2aWNlc0dldEJvb3RNb2RlICgmQm9vdE1vZGUpOw0K PiAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPg0KPiAtDQo+ICAgIC8vDQo+ICAgIC8v IEluIFMzLCB3ZSByZWx5IG9uIG5vcm1hbCBib290IERldGVjdGlvbiwgYmVjYXVzZSB3ZSBzYXZl IHRvIFJlYWRPbmx5DQo+IFZhcmlhYmxlIGluIG5vcm1hbCBib290Lg0KPiAgICAvLw0KPiAgICBp ZiAoQm9vdE1vZGUgPT0gQk9PVF9PTl9TM19SRVNVTUUpIHsNCj4gLSAgICBERUJVRyAoKEVGSV9E X0lORk8sICJEZXRlY3RUcG1EZXZpY2U6IFMzIG1vZGVcbiIpKTsNCj4gKyAgICBERUJVRyAoKERF QlVHX0lORk8sICJEZXRlY3RUcG1EZXZpY2U6IFMzIG1vZGVcbiIpKTsNCj4NCj4gICAgICBTdGF0 dXMgPSBQZWlTZXJ2aWNlc0xvY2F0ZVBwaSAoJmdFZmlQZWlSZWFkT25seVZhcmlhYmxlMlBwaUd1 aWQsIDAsIE5VTEwsDQo+IChWT0lEICoqKSZWYXJpYWJsZVBwaSk7DQo+ICAgICAgQVNTRVJUX0VG SV9FUlJPUiAoU3RhdHVzKTsNCj4gQEAgLTg5LDEzICs3MywxMyBAQCBEZXRlY3RUcG1EZXZpY2Ug KA0KPiAgICAgICAgICAoVGNnMkRldmljZURldGVjdGlvbi5UcG1EZXZpY2VEZXRlY3RlZCA+PSBU UE1fREVWSUNFX01JTikgJiYNCj4gICAgICAgICAgKFRjZzJEZXZpY2VEZXRlY3Rpb24uVHBtRGV2 aWNlRGV0ZWN0ZWQgPD0gVFBNX0RFVklDRV9NQVgpKQ0KPiAgICAgIHsNCj4gLSAgICAgIERFQlVH ICgoRUZJX0RfSU5GTywgIlRwbURldmljZSBmcm9tIERldmljZURldGVjdGlvbjogJXhcbiIsDQo+ IFRjZzJEZXZpY2VEZXRlY3Rpb24uVHBtRGV2aWNlRGV0ZWN0ZWQpKTsNCj4gKyAgICAgIERFQlVH ICgoREVCVUdfSU5GTywgIlRwbURldmljZSBmcm9tIERldmljZURldGVjdGlvbjogJXhcbiIsDQo+ IFRjZzJEZXZpY2VEZXRlY3Rpb24uVHBtRGV2aWNlRGV0ZWN0ZWQpKTsNCj4gICAgICAgIFN0YXR1 cyA9IFRwbTJTdGFydHVwIChUUE1fU1VfU1RBVEUpOw0KPiAgICAgICAgcmV0dXJuIFRjZzJEZXZp Y2VEZXRlY3Rpb24uVHBtRGV2aWNlRGV0ZWN0ZWQ7DQo+ICAgICAgfQ0KPiAgICB9DQo+DQo+IC0g IERFQlVHICgoRUZJX0RfSU5GTywgIkRldGVjdFRwbURldmljZTpcbiIpKTsNCj4gKyAgREVCVUcg KChERUJVR19JTkZPLCAiRGV0ZWN0VHBtRGV2aWNlOlxuIikpOw0KPg0KPiAgICBTdGF0dXMgPSBU cG0yUmVxdWVzdFVzZVRwbSAoKTsNCj4gICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiBA QCAtMTA2LDcgKzkwLDcgQEAgRGV0ZWN0VHBtRGV2aWNlICgNCj4gICAgfQ0KPg0KPiAgICBTdGF0 dXMgPSBUcG0yU3RhcnR1cCAoVFBNX1NVX0NMRUFSKTsNCj4gLSAgREVCVUcgKChFRklfRF9JTkZP LCAiVHBtMlN0YXJ0dXA6ICVyXG4iLCBTdGF0dXMpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZP LCAiVHBtMlN0YXJ0dXA6ICVyXG4iLCBTdGF0dXMpKTsNCj4gICAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiAgICAgIHJldHVybiBUUE1fREVWSUNFX05VTEw7DQo+ICAgIH0NCj4gZGlmZiAt LWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TaWduZWRD YXBzdWxlUGtnL1VuaXZlcnNhDQo+IGwvU3lzdGVtRmlybXdhcmVVcGRhdGUvU3lzdGVtRmlybXdh cmVDb21tb25EeGUuYw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRr Mi9TaWduZWRDYXBzdWxlUGtnL1VuaXZlcnMNCj4gYWwvU3lzdGVtRmlybXdhcmVVcGRhdGUvU3lz dGVtRmlybXdhcmVDb21tb25EeGUuYw0KPiBpbmRleCBkMzY0MGNiM2Q5Li4wNWEzNjE2MmQzIDEw MDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIv U2lnbmVkQ2Fwc3VsZVBrZy9Vbml2ZXJzYQ0KPiBsL1N5c3RlbUZpcm13YXJlVXBkYXRlL1N5c3Rl bUZpcm13YXJlQ29tbW9uRHhlLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9PdmVycmlkZS9lZGsyL1NpZ25lZENhcHN1bGVQa2cvVW5pdmVycw0KPiBhbC9TeXN0ZW1GaXJt d2FyZVVwZGF0ZS9TeXN0ZW1GaXJtd2FyZUNvbW1vbkR4ZS5jDQo+IEBAIC0xLDI0ICsxLDkgQEAN Cj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIFN5c3RlbUZpcm13YXJlQ29tbW9uRHhlLkMN Cj4gLQ0KPiAtICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5j LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0KPiAtKiovDQo+IC0NCj4gLS8qIFRoaXMgZmlsZSBp bmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGlj ZW5zZS4gKi8NCj4gLQ0KPiAgLyoqIEBmaWxlDQo+ICAgIFByb2R1Y2UgRk1QIGluc3RhbmNlIGZv ciBzeXN0ZW0gZmlybXdhcmUuDQo+DQo+ICsgIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBN aWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBDb3B5cmln aHQgKGMpIDIwMTYgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+IC0gIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMN Cj4gLSAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5k IGNvbmRpdGlvbnMgb2YgdGhlIEJTRA0KPiBMaWNlbnNlDQo+IC0gIHdoaWNoIGFjY29tcGFuaWVz IHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUN Cj4gZm91bmQgYXQNCj4gLSAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNl bnNlLnBocA0KPiAtDQo+IC0gIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBC U0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtICBXSVRIT1VUIFdBUlJBTlRJ RVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJ TVBMSUVELg0KPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPg0KPiAgKiovDQo+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL092ZXJyaWRlL2VkazIvU2lnbmVkQ2Fwc3VsZVBrZy9Vbml2ZXJzYQ0KPiBsL1N5c3RlbUZp cm13YXJlVXBkYXRlL1N5c3RlbUZpcm13YXJlRHhlLmgNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL092ZXJyaWRlL2VkazIvU2lnbmVkQ2Fwc3VsZVBrZy9Vbml2ZXJzDQo+IGFsL1N5c3Rl bUZpcm13YXJlVXBkYXRlL1N5c3RlbUZpcm13YXJlRHhlLmgNCj4gaW5kZXggODE2NGY2Njk1OC4u YjFhYWI0YzQxZSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9P dmVycmlkZS9lZGsyL1NpZ25lZENhcHN1bGVQa2cvVW5pdmVyc2ENCj4gbC9TeXN0ZW1GaXJtd2Fy ZVVwZGF0ZS9TeXN0ZW1GaXJtd2FyZUR4ZS5oDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TaWduZWRDYXBzdWxlUGtnL1VuaXZlcnMNCj4gYWwvU3lz dGVtRmlybXdhcmVVcGRhdGUvU3lzdGVtRmlybXdhcmVEeGUuaA0KPiBAQCAtMSwyOCArMSwxNCBA QA0KPiAtLyoqIEBmaWxlDQo+IC0gICAgSW1wbGVtZW50YXRpb24gb2YgU3lzdGVtRmlybXdhcmVE eGUuaA0KPiAtICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5j LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0KPiAtKiovDQo+IC0NCj4gLS8qIFRoaXMgZmlsZSBp bmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGlj ZW5zZS4gKi8NCj4gLQ0KPiAgLyoqIEBmaWxlDQo+ICAgIFN5c3RlbSBGaXJtd2FyZSB1cGRhdGUg aGVhZGVyIGZpbGUuDQo+DQo+ICsgIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBE ZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBDb3B5cmlnaHQgKGMp IDIwMTYgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+IC0gIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLSAg YXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRp dGlvbnMgb2YgdGhlIEJTRA0KPiBMaWNlbnNlDQo+IC0gIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMg ZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91 bmQgYXQNCj4gLSAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBo cA0KPiAtDQo+IC0gIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElD RU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtICBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig UkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVE Lg0KPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0K PiAgKiovDQo+DQo+IC0jaWZuZGVmIF9TWVNURU1fRklSTVdBUkVfVVBEQVRFX0hfDQo+IC0jZGVm aW5lIF9TWVNURU1fRklSTVdBUkVfVVBEQVRFX0hfDQo+ICsjaWZuZGVmIFNZU1RFTV9GSVJNV0FS RV9VUERBVEVfSF9fDQo+ICsjZGVmaW5lIFNZU1RFTV9GSVJNV0FSRV9VUERBVEVfSF9fDQo+DQo+ ICAjaW5jbHVkZSA8UGlEeGUuaD4NCj4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TaWduZWRDYXBzdWxlUGtnL1VuaXZlcnNhDQo+IGwv U3lzdGVtRmlybXdhcmVVcGRhdGUvU3lzdGVtRmlybXdhcmVVcGRhdGVEeGUuYw0KPiBiL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TaWduZWRDYXBzdWxlUGtnL1VuaXZl cnMNCj4gYWwvU3lzdGVtRmlybXdhcmVVcGRhdGUvU3lzdGVtRmlybXdhcmVVcGRhdGVEeGUuYw0K PiBpbmRleCA2MWUyM2I0NTY0Li44OTRkMzYzZGUwIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9y bS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvU2lnbmVkQ2Fwc3VsZVBrZy9Vbml2ZXJz YQ0KPiBsL1N5c3RlbUZpcm13YXJlVXBkYXRlL1N5c3RlbUZpcm13YXJlVXBkYXRlRHhlLmMNCj4g KysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NpZ25lZENh cHN1bGVQa2cvVW5pdmVycw0KPiBhbC9TeXN0ZW1GaXJtd2FyZVVwZGF0ZS9TeXN0ZW1GaXJtd2Fy ZVVwZGF0ZUR4ZS5jDQo+IEBAIC0xLDMxICsxLDkgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBs ZW1lbnRzIFN5c3RlbUZpcm13YXJlVXBkYXRlRHhlLmMNCj4gLQ0KPiAtICBDb3B5cmlnaHQgKEMp IDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4NCj4gLSAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4g LQ0KPiAtKiovDQo+IC0NCj4gLS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkg cHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAgLyoqIEBm aWxlDQo+ICAgIFNldEltYWdlIGluc3RhbmNlIHRvIHVwZGF0ZSBzeXN0ZW0gZmlybXdhcmUuDQo+ DQo+IC0gIENhdXRpb246IFRoaXMgbW9kdWxlIHJlcXVpcmVzIGFkZGl0aW9uYWwgcmV2aWV3IHdo ZW4gbW9kaWZpZWQuDQo+IC0gIFRoaXMgbW9kdWxlIHdpbGwgaGF2ZSBleHRlcm5hbCBpbnB1dCAt IGNhcHN1bGUgaW1hZ2UuDQo+IC0gIFRoaXMgZXh0ZXJuYWwgaW5wdXQgbXVzdCBiZSB2YWxpZGF0 ZWQgY2FyZWZ1bGx5IHRvIGF2b2lkIHNlY3VyaXR5IGlzc3VlIGxpa2UNCj4gLSAgYnVmZmVyIG92 ZXJmbG93LCBpbnRlZ2VyIG92ZXJmbG93Lg0KPiAtDQo+IC0gIEZtcFNldEltYWdlKCkgd2lsbCBy ZWNlaXZlIHVudHJ1c3RlZCBpbnB1dCBhbmQgZG8gYmFzaWMgdmFsaWRhdGlvbi4NCj4gLQ0KPiAr ICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDE2IC0gMjAxOCwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBUaGlzIHByb2dyYW0g YW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+IC0gIGFyZSBsaWNlbnNlZCBhbmQgbWFk ZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4g TGljZW5zZQ0KPiAtICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBm dWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlDQo+IGZvdW5kIGF0DQo+IC0gIGh0dHA6Ly9v cGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4gLQ0KPiAtICBUSEUgUFJP R1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0K PiBCQVNJUywNCj4gLSAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBB TlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gKyAgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoqLw0KPg0KPiBkaWZmIC0t Z2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NpZ25lZENh cHN1bGVQa2cvVW5pdmVyc2ENCj4gbC9TeXN0ZW1GaXJtd2FyZVVwZGF0ZS9TeXN0ZW1GaXJtd2Fy ZVVwZGF0ZUR4ZS51bmkNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2Vk azIvU2lnbmVkQ2Fwc3VsZVBrZy9Vbml2ZXJzDQo+IGFsL1N5c3RlbUZpcm13YXJlVXBkYXRlL1N5 c3RlbUZpcm13YXJlVXBkYXRlRHhlLnVuaQ0KPiBpbmRleCAzYjk2ZTQyZTE0Li5lNmJkMThiMjQ5 IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2Vk azIvU2lnbmVkQ2Fwc3VsZVBrZy9Vbml2ZXJzYQ0KPiBsL1N5c3RlbUZpcm13YXJlVXBkYXRlL1N5 c3RlbUZpcm13YXJlVXBkYXRlRHhlLnVuaQ0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL092ZXJyaWRlL2VkazIvU2lnbmVkQ2Fwc3VsZVBrZy9Vbml2ZXJzDQo+IGFsL1N5c3Rl bUZpcm13YXJlVXBkYXRlL1N5c3RlbUZpcm13YXJlVXBkYXRlRHhlLnVuaQ0KPiBAQCAtMSwzMSAr MSwxNSBAQA0KPiAtLy8gLyoqIEBmaWxlDQo+IC0vLyBTeXN0ZW1GaXJtd2FyZVVwZGF0ZUR4ZSBM b2NhbGl6ZWQgU3RyaW5ncyBhbmQgQ29udGVudA0KPiAtLy8NCj4gLS8vIENvcHlyaWdodCAoQykg MjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiAtLy8NCj4gLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+IC0vLw0KPiAtLy8gKiovDQo+IC0vLyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmln aW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC0NCj4gIC8v IC8qKiBAZmlsZQ0KPiAgLy8gU3lzdGVtRmlybXdhcmUgRk1QIHVwZGF0ZSBkcml2ZXIuDQo+ICAv Lw0KPiAgLy8gUHJvZHVjZSBGTVAgaW5zdGFuY2UgdG8gdXBkYXRlIHN5c3RlbSBmaXJtd2FyZS4N Cj4gIC8vDQo+ICsvLyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIC8vIENvcHlyaWdodCAoYykgMjAxNiwg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgLy8NCj4gLS8v IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLS8vIGFyZSBs aWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25z IG9mIHRoZQ0KPiBCU0QgTGljZW5zZQ0KPiAtLy8gd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0 cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBh dA0KPiAtLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0K PiAtLy8NCj4gLS8vIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElD RU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9S IFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElF RC4NCj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ ICAvLw0KPiAgLy8gKiovDQo+DQo+IC0NCj4gICNzdHJpbmcgU1RSX01PRFVMRV9BQlNUUkFDVCAg ICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlN5c3RlbUZpcm13YXJlDQo+IEZNUCB1cGRhdGUg ZHJpdmVyLiINCj4NCj4gICNzdHJpbmcgU1RSX01PRFVMRV9ERVNDUklQVElPTiAgICAgICAgICAj bGFuZ3VhZ2UgZW4tVVMgIlByb2R1Y2UgRk1QDQo+IGluc3RhbmNlIHRvIHVwZGF0ZSBzeXN0ZW0g ZmlybXdhcmUuIg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9P dmVycmlkZS9lZGsyL1NpZ25lZENhcHN1bGVQa2cvVW5pdmVyc2ENCj4gbC9TeXN0ZW1GaXJtd2Fy ZVVwZGF0ZS9TeXN0ZW1GaXJtd2FyZVVwZGF0ZUR4ZUV4dHJhLnVuaQ0KPiBiL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9TaWduZWRDYXBzdWxlUGtnL1VuaXZlcnMNCj4g YWwvU3lzdGVtRmlybXdhcmVVcGRhdGUvU3lzdGVtRmlybXdhcmVVcGRhdGVEeGVFeHRyYS51bmkN Cj4gaW5kZXggNjgyMDZhZjc1MC4uYzU0OWYwMTdhNCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1NpZ25lZENhcHN1bGVQa2cvVW5pdmVy c2ENCj4gbC9TeXN0ZW1GaXJtd2FyZVVwZGF0ZS9TeXN0ZW1GaXJtd2FyZVVwZGF0ZUR4ZUV4dHJh LnVuaQ0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIv U2lnbmVkQ2Fwc3VsZVBrZy9Vbml2ZXJzDQo+IGFsL1N5c3RlbUZpcm13YXJlVXBkYXRlL1N5c3Rl bUZpcm13YXJlVXBkYXRlRHhlRXh0cmEudW5pDQo+IEBAIC0yLDI0ICsyLDkgQEANCj4gIC8vIFN5 c3RlbUZpcm13YXJlVXBkYXRlRHhlRXh0cmEgTG9jYWxpemVkIFN0cmluZ3MgYW5kIENvbnRlbnQN Cj4gIC8vDQo+ICAvLyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLS8vDQo+IC0vLyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtLy8NCj4gLS8vICoqLw0KPiAtLy8g VGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZv bGxvd2luZyBsaWNlbnNlLg0KPiAtDQo+IC0vLyAvKiogQGZpbGUNCj4gLS8vIFN5c3RlbUZpcm13 YXJlVXBkYXRlRHhlIExvY2FsaXplZCBTdHJpbmdzIGFuZCBDb250ZW50DQo+IC0vLw0KPiAgLy8g Q29weXJpZ2h0IChjKSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ICAvLw0KPiAtLy8gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1h dGVyaWFscw0KPiAtLy8gYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUg dGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlDQo+IEJTRCBMaWNlbnNlDQo+IC0vLyB3aGljaCBh Y2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vu c2UgbWF5IGJlDQo+IGZvdW5kIGF0DQo+IC0vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5z ZXMvYnNkLWxpY2Vuc2UucGhwDQo+IC0vLw0KPiAtLy8gVEhFIFBST0dSQU0gSVMgRElTVFJJQlVU RUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+IC0vLyBX SVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIN Cj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCj4gIC8vDQo+ICAvLyAqKi8NCj4NCj4gZGlmZiAtLWdpdA0KPiBh L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL0xpYnJh cnkvU21tQw0KPiBwdUZlYXR1cmVzTGliL1NtbUNwdUZlYXR1cmVzTGliQ29tbW9uLmMNCj4gYi9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9MaWJyYXJ5 L1NtbUMNCj4gcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJlc0xpYkNvbW1vbi5jDQo+IGluZGV4 IDdiMDc0MjUzMzYuLmYzNjE1ZTJkOWUgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQw0KPiBwdUZl YXR1cmVzTGliL1NtbUNwdUZlYXR1cmVzTGliQ29tbW9uLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DDQo+ IHB1RmVhdHVyZXNMaWIvU21tQ3B1RmVhdHVyZXNMaWJDb21tb24uYw0KPiBAQCAtMSwxNSArMSw3 IEBADQo+IC0vKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBBTUQgU21tQ3B1RmVhdHVyZXNMaWJD b21tb24uYw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZp Y2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhp cyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxv d2luZyBsaWNlbnNlLiAqLw0KPiAgLyoqIEBmaWxlDQo+ICBJbXBsZW1lbnRhdGlvbiBzaGFyZWQg YWNyb3NzIGFsbCBsaWJyYXJ5IGluc3RhbmNlcy4NCj4NCj4gK0NvcHlyaWdodCAoQykgMjAyNCBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAg Q29weXJpZ2h0IChjKSAyMDEwIC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uPEJS Pg0KPiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gQEAg LTIxNSwxMiArMjA3LDEzIEBAIFNtbUNwdUZlYXR1cmVzSW5pdGlhbGl6ZVByb2Nlc3NvciAoDQo+ ICAgIC8vDQo+ICAgIC8vIENvbmZpZ3VyZSBTTUJBU0UuDQo+ICAgIC8vDQo+IC0gIENwdVN0YXRl ICAgICAgICAgICAgID0gKFNNUkFNX1NBVkVfU1RBVEVfTUFQDQo+ICopKFVJTlROKShTTU1fREVG QVVMVF9TTUJBU0UgKyBTTVJBTV9TQVZFX1NUQVRFX01BUF9PRkZTRVQpOw0KPiArICBDcHVTdGF0 ZSA9IChTTVJBTV9TQVZFX1NUQVRFX01BUA0KPiAqKShVSU5UTikoU01NX0RFRkFVTFRfU01CQVNF ICsgU01SQU1fU0FWRV9TVEFURV9NQVBfT0ZGU0VUKTsNCj4gICAgaWYgKG1TbW1TYXZlU3RhdGVS ZWdpc3RlckxtYSA9PQ0KPiBFRklfU01NX1NBVkVfU1RBVEVfUkVHSVNURVJfTE1BXzMyQklUKSB7 DQo+ICAgICAgQ3B1U3RhdGUtPng4Ni5TTUJBU0UgPSAoVUlOVDMyKUNwdUhvdFBsdWdEYXRhLT5T bUJhc2VbQ3B1SW5kZXhdOw0KPiAgICB9IGVsc2Ugew0KPiAgICAgIENwdVN0YXRlLT54NjQuU01C QVNFID0gKFVJTlQzMilDcHVIb3RQbHVnRGF0YS0+U21CYXNlW0NwdUluZGV4XTsNCj4gICAgfQ0K PiArDQo+ICAgIC8vDQo+ICAgIC8vIEludGVsKFIpIDY0IGFuZCBJQS0zMiBBcmNoaXRlY3R1cmVz IFNvZnR3YXJlIERldmVsb3BlcidzIE1hbnVhbA0KPiAgICAvLyBWb2x1bWUgM0MsIFNlY3Rpb24g MzUuMiBNU1JzIGluIHRoZSBJbnRlbChSKSBDb3JlKFRNKSAyIFByb2Nlc3Nvcg0KPiBGYW1pbHkN Cj4gQEAgLTI0MCw2ICsyMzMsNyBAQCBTbW1DcHVGZWF0dXJlc0luaXRpYWxpemVQcm9jZXNzb3Ig KA0KPiAgICAgICAgfQ0KPiAgICAgIH0NCj4gICAgfQ0KPiArDQo+ICAgIC8vDQo+ICAgIC8vIElm IFNNUlIgaXMgc3VwcG9ydGVkLCB0aGVuIHByb2dyYW0gU01SUiBiYXNlL21hc2sgTVNScy4NCj4g ICAgLy8gVGhlIEVGSV9NU1JfU01SUl9QSFlTX01BU0tfVkFMSUQgYml0IGlzIG5vdCBzZXQgdW50 aWwgdGhlIGZpcnN0DQo+IG5vcm1hbCBTTUkuDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZQ0KPiBT bW0vU21yYW1TYXZlU3RhdGUuYw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJp ZGUvZWRrMi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlDQo+IFNtbS9TbXJhbVNhdmVTdGF0ZS5jDQo+ IGluZGV4IDllNWE3ZDU5ZmMuLmNhNjNkZTliYTYgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlDQo+ IFNtbS9TbXJhbVNhdmVTdGF0ZS5jDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlDQo+IFNtbS9TbXJhbVNhdmVT dGF0ZS5jDQo+IEBAIC0xLDE2ICsxLDcgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRz IFNtcmFtU2F2ZVN0YXRlLmMNCj4gLQ0KPiAtICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQg TWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSAgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0KPiAtKiovDQo+IC0N Cj4gLS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVy IHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAgLyoqIEBmaWxlDQo+ICBQcm92aWRl cyBzZXJ2aWNlcyB0byBhY2Nlc3MgU01SQU0gU2F2ZSBTdGF0ZSBNYXANCj4NCj4gK0NvcHlyaWdo dCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiAgQ29weXJpZ2h0IChjKSAyMDEwIC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24u IEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1Z0DQo+IGYwL0Nv bW1vbk1hY3Jvcy5pbmMNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2Vk azIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WDQo+IHRmMC9Db21tb25NYWNyb3MuaW5jDQo+IGlu ZGV4IGFkZDM2MmZjNjQuLjVkYTQ3MmZhYWEgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1Z0DQo+ IGYwL0NvbW1vbk1hY3Jvcy5pbmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0b3IvVg0KPiB0ZjAvQ29tbW9uTWFj cm9zLmluYw0KPiBAQCAtMSwxNSArMSw4IEBADQo+IC07LyoqIEBmaWxlDQo+IC07IENvbW1vbiBt YWNyb3MgdXNlZCBpbiB0aGUgUmVzZXRWZWN0b3IgVlRGIG1vZHVsZS4NCj4gLTsNCj4gLTsgQ29w eXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC48QlI+DQo+IC07IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+IC07DQo+IC07KiovDQo+IC07IFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdp bmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4gIDstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gIDsgQGZpbGUNCj4gIDsgQ29tbW9uIG1hY3JvcyB1c2VkIGluIHRo ZSBSZXNldFZlY3RvciBWVEYgbW9kdWxlLg0KPiAgOw0KPiArOyBDb3B5cmlnaHQgKEMpIDIwMjQg QWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g IDsgQ29weXJpZ2h0IChjKSAyMDA4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+ICA7IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+ICA7DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092 ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WdA0KPiBmMC9EZWJ1Z0Rpc2FibGVk LmFzbQ0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1 UGtnL1Jlc2V0VmVjdG9yL1YNCj4gdGYwL0RlYnVnRGlzYWJsZWQuYXNtDQo+IGluZGV4IGViM2Qx MDViZmMuLjU0MDIwNmExZDAgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2do Qm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1Z0DQo+IGYwL0RlYnVn RGlzYWJsZWQuYXNtDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJp ZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1YNCj4gdGYwL0RlYnVnRGlzYWJsZWQuYXNt DQo+IEBAIC0xLDE1ICsxLDggQEANCj4gLTsvKiogQGZpbGUNCj4gLTsgRGVidWcgZGlzYWJsZWQN Cj4gLTsNCj4gLTsgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIElu Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC07IFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC07DQo+IC07KiovDQo+IC07IFRoaXMgZmlsZSBpbmNs dWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5z ZS4NCj4gIDstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIDsgQGZpbGUNCj4gIDsgRGVidWcgZGlz YWJsZWQNCj4gIDsNCj4gKzsgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmlj ZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICA7IENvcHlyaWdodCAoYykgMjAw OSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgOyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgOw0KPiBkaWZmIC0t Z2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQ a2cvUmVzZXRWZWN0b3IvVnQNCj4gZjAvSWExNi9Jbml0MTYuYXNtDQo+IGIvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0b3IvVg0KPiB0 ZjAvSWExNi9Jbml0MTYuYXNtDQo+IGluZGV4IGQyZDRlMTZhNGIuLjM2NjQxYzU3OGIgMTAwNjQ0 DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZp Q3B1UGtnL1Jlc2V0VmVjdG9yL1Z0DQo+IGYwL0lhMTYvSW5pdDE2LmFzbQ0KPiArKysNCj4gYi9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZl Y3Rvci9WDQo+IHRmMC9JYTE2L0luaXQxNi5hc20NCj4gQEAgLTEsMTUgKzEsOCBAQA0KPiAtOy8q KiBAZmlsZQ0KPiAtOyAxNi1iaXQgaW5pdGlhbGl6YXRpb24gY29kZQ0KPiAtOw0KPiAtOyBDb3B5 cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJl c2VydmVkLjxCUj4NCj4gLTsgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQNCj4gLTsNCj4gLTsqKi8NCj4gLTsgVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2lu YWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLg0KPiAgOy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiAgOyBAZmlsZQ0KPiAgOyAxNi1iaXQgaW5pdGlhbGl6YXRpb24gY29k ZQ0KPiAgOw0KPiArOyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIDsgQ29weXJpZ2h0IChjKSAyMDA4IC0g MjAwOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgOyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgOw0KPiBkaWZm IC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlD cHVQa2cvUmVzZXRWZWN0b3IvVnQNCj4gZjAvSWExNi9SZWFsMTZUb0ZsYXQzMi5hc20NCj4gYi9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZl Y3Rvci9WDQo+IHRmMC9JYTE2L1JlYWwxNlRvRmxhdDMyLmFzbQ0KPiBpbmRleCAxY2Q3NzBmOTMw Li5mOTg2NzYxNDg4IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJk L092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WdA0KPiBmMC9JYTE2L1JlYWwx NlRvRmxhdDMyLmFzbQ0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJy aWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WDQo+IHRmMC9JYTE2L1JlYWwxNlRvRmxh dDMyLmFzbQ0KPiBAQCAtMSwxNSArMSw4IEBADQo+IC07LyoqIEBmaWxlDQo+IC07IFRyYW5zaXRp b24gZnJvbSAxNiBiaXQgcmVhbCBtb2RlIGludG8gMzIgYml0IGZsYXQgcHJvdGVjdGVkIG1vZGUN Cj4gLTsNCj4gLTsgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIElu Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC07IFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC07DQo+IC07KiovDQo+IC07IFRoaXMgZmlsZSBpbmNs dWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5z ZS4NCj4gIDstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIDsgQGZpbGUNCj4gIDsgVHJhbnNpdGlv biBmcm9tIDE2IGJpdCByZWFsIG1vZGUgaW50byAzMiBiaXQgZmxhdCBwcm90ZWN0ZWQgbW9kZQ0K PiAgOw0KPiArOyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5j LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIDsgQ29weXJpZ2h0IChjKSAyMDA4IC0gMjAx MCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgOyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgOw0KPiBkaWZmIC0t Z2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQ a2cvUmVzZXRWZWN0b3IvVnQNCj4gZjAvSWExNi9SZXNldFZlY3RvclZ0ZjAuYXNtDQo+IGIvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0 b3IvVg0KPiB0ZjAvSWExNi9SZXNldFZlY3RvclZ0ZjAuYXNtDQo+IGluZGV4IDhhOTYyMGEzYWUu LjgyMzQzNjZiMmEgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv T3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1Z0DQo+IGYwL0lhMTYvUmVzZXRW ZWN0b3JWdGYwLmFzbQ0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJy aWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WDQo+IHRmMC9JYTE2L1Jlc2V0VmVjdG9y VnRmMC5hc20NCj4gQEAgLTEsMTUgKzEsOCBAQA0KPiAtOy8qKiBAZmlsZQ0KPiAtOyBGaXJzdCBj b2RlIGV4ZWN1dGVkIGJ5IHByb2Nlc3NvciBhZnRlciByZXNldHRpbmcuDQo+IC07DQo+IC07IENv cHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiAtOyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KPiAtOw0KPiAtOyoqLw0KPiAtOyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmln aW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+ICA7LS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ICA7IEBmaWxlDQo+ICA7IEZpcnN0IGNvZGUgZXhlY3V0ZWQgYnkg cHJvY2Vzc29yIGFmdGVyIHJlc2V0dGluZy4NCj4gIDsNCj4gKzsgQ29weXJpZ2h0IChDKSAyMDI0 IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ ICA7IENvcHlyaWdodCAoYykgMjAwOCAtIDIwMTQsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gIDsgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4gIDsNCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2do Qm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1Z0DQo+IGYwL0lhMzIv RmxhdDMyVG9GbGF0NjQuYXNtDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlk ZS9lZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0b3IvVg0KPiB0ZjAvSWEzMi9GbGF0MzJUb0ZsYXQ2 NC5hc20NCj4gaW5kZXggZmM1Yzk5ZDk0NC4uMTIxMDQ2ZmJhZiAxMDA2NDQNCj4gLS0tDQo+IGEv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVzZXRW ZWN0b3IvVnQNCj4gZjAvSWEzMi9GbGF0MzJUb0ZsYXQ2NC5hc20NCj4gKysrDQo+IGIvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0b3Iv Vg0KPiB0ZjAvSWEzMi9GbGF0MzJUb0ZsYXQ2NC5hc20NCj4gQEAgLTEsMTUgKzEsOCBAQA0KPiAt Oy8qKiBAZmlsZQ0KPiAtOyBUcmFuc2l0aW9uIGZyb20gMzIgYml0IGZsYXQgcHJvdGVjdGVkIG1v ZGUgaW50byA2NCBiaXQgZmxhdCBwcm90ZWN0ZWQgbW9kZQ0KPiAtOw0KPiAtOyBDb3B5cmlnaHQg KEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4gLTsgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gLTsNCj4gLTsqKi8NCj4gLTsgVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBw dWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLg0KPiAgOy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiAgOyBAZmlsZQ0KPiAgOyBUcmFuc2l0aW9uIGZyb20gMzIgYml0IGZsYXQgcHJv dGVjdGVkIG1vZGUgaW50byA2NCBiaXQgZmxhdCBwcm90ZWN0ZWQgbW9kZQ0KPiAgOw0KPiArOyBD b3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gIDsgQ29weXJpZ2h0IChjKSAyMDA4IC0gMjAxOCwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgOyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgOw0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0 b3IvVnQNCj4gZjAvSWEzMi9QYWdlVGFibGVzNjQuYXNtDQo+IGIvUGxhdGZvcm0vQU1EL1Zhbkdv Z2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0b3IvVg0KPiB0ZjAvSWEz Mi9QYWdlVGFibGVzNjQuYXNtDQo+IGluZGV4IDViYzJhMWNhYmUuLjE0YmFhNmU5ODcgMTAwNjQ0 DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZp Q3B1UGtnL1Jlc2V0VmVjdG9yL1Z0DQo+IGYwL0lhMzIvUGFnZVRhYmxlczY0LmFzbQ0KPiArKysN Cj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9S ZXNldFZlY3Rvci9WDQo+IHRmMC9JYTMyL1BhZ2VUYWJsZXM2NC5hc20NCj4gQEAgLTEsMTUgKzEs OCBAQA0KPiAtOy8qKiBAZmlsZQ0KPiAtOyBTZXRzIHRoZSBDUjMgcmVnaXN0ZXIgZm9yIDY0LWJp dCBwYWdpbmcNCj4gLTsNCj4gLTsgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERl dmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC07IFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC07DQo+IC07KiovDQo+IC07IFRoaXMg ZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dp bmcgbGljZW5zZS4NCj4gIDstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIDsgQGZpbGUNCj4gIDsg U2V0cyB0aGUgQ1IzIHJlZ2lzdGVyIGZvciA2NC1iaXQgcGFnaW5nDQo+ICA7DQo+ICs7IENvcHly aWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiAgOyBDb3B5cmlnaHQgKGMpIDIwMDggLSAyMDEzLCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICA7IFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICA7DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9y bS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9W dA0KPiBmMC9JYTMyL1NlYXJjaEZvckJmdkJhc2UuYXNtDQo+IGIvUGxhdGZvcm0vQU1EL1Zhbkdv Z2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0b3IvVg0KPiB0ZjAvSWEz Mi9TZWFyY2hGb3JCZnZCYXNlLmFzbQ0KPiBpbmRleCA4YTkxMzg5MjgwLi41MzMwMDRiZTdlIDEw MDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIv VWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WdA0KPiBmMC9JYTMyL1NlYXJjaEZvckJmdkJhc2UuYXNt DQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZp Q3B1UGtnL1Jlc2V0VmVjdG9yL1YNCj4gdGYwL0lhMzIvU2VhcmNoRm9yQmZ2QmFzZS5hc20NCj4g QEAgLTEsMTUgKzEsOCBAQA0KPiAtOy8qKiBAZmlsZQ0KPiAtOyBTZWFyY2ggZm9yIHRoZSBCb290 IEZpcm13YXJlIFZvbHVtZSAoQkZWKSBiYXNlIGFkZHJlc3MNCj4gLTsNCj4gLTsgQ29weXJpZ2h0 IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+IC07IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQo+IC07DQo+IC07KiovDQo+IC07IFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkg cHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4gIDstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gIDsgQGZpbGUNCj4gIDsgU2VhcmNoIGZvciB0aGUgQm9vdCBGaXJtd2FyZSBW b2x1bWUgKEJGVikgYmFzZSBhZGRyZXNzDQo+ICA7DQo+ICs7IENvcHlyaWdodCAoQykgMjAyNCBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAg OyBDb3B5cmlnaHQgKGMpIDIwMDggLSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+ICA7IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+ICA7DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WdA0KPiBmMC9JYTMyL1Nl YXJjaEZvclNlY0VudHJ5LmFzbQ0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJp ZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1YNCj4gdGYwL0lhMzIvU2VhcmNoRm9yU2Vj RW50cnkuYXNtDQo+IGluZGV4IGMwYWM2YmE2YzguLjViYzgzZjM5ZTUgMTAwNjQ0DQo+IC0tLQ0K PiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jl c2V0VmVjdG9yL1Z0DQo+IGYwL0lhMzIvU2VhcmNoRm9yU2VjRW50cnkuYXNtDQo+ICsrKw0KPiBi L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0 VmVjdG9yL1YNCj4gdGYwL0lhMzIvU2VhcmNoRm9yU2VjRW50cnkuYXNtDQo+IEBAIC0xLDE1ICsx LDggQEANCj4gLTsvKiogQGZpbGUNCj4gLTsgU2VhcmNoIGZvciB0aGUgU0VDIENvcmUgZW50cnkg cG9pbnQNCj4gLTsNCj4gLTsgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmlj ZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC07IFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC07DQo+IC07KiovDQo+IC07IFRoaXMgZmls ZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcg bGljZW5zZS4NCj4gIDstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIDsgQGZpbGUNCj4gIDsgU2Vh cmNoIGZvciB0aGUgU0VDIENvcmUgZW50cnkgcG9pbnQNCj4gIDsNCj4gKzsgQ29weXJpZ2h0IChD KSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+ICA7IENvcHlyaWdodCAoYykgMjAwOCAtIDIwMTEsIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIDsgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCj4gIDsNCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1Z0DQo+IGYw L01haW4uYXNtDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1Vl ZmlDcHVQa2cvUmVzZXRWZWN0b3IvVg0KPiB0ZjAvTWFpbi5hc20NCj4gaW5kZXggMzc2MjE5Mjgy OS4uMDhiNjA3NmJiOCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0b3IvVnQNCj4gZjAvTWFpbi5hc20N Cj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlD cHVQa2cvUmVzZXRWZWN0b3IvVg0KPiB0ZjAvTWFpbi5hc20NCj4gQEAgLTEsMTUgKzEsOCBAQA0K PiAtOy8qKiBAZmlsZQ0KPiAtOyBNYWluIHJvdXRpbmUgb2YgdGhlIHByZS1TRUMgY29kZSB1cCB0 aHJvdWdoIHRoZSBqdW1wIGludG8gU0VDDQo+IC07DQo+IC07IENvcHlyaWdodCAoQykgMjAyNCBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAt OyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtOw0KPiAt OyoqLw0KPiAtOyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1 bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+ICA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ ICA7IEBmaWxlDQo+ICA7IE1haW4gcm91dGluZSBvZiB0aGUgcHJlLVNFQyBjb2RlIHVwIHRocm91 Z2ggdGhlIGp1bXAgaW50byBTRUMNCj4gIDsNCj4gKzsgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFu Y2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICA7IENv cHlyaWdodCAoYykgMjAwOCAtIDIwMDksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJl c2VydmVkLjxCUj4NCj4gIDsgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQNCj4gIDsNCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv T3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1Z0DQo+IGYwL1BvcnQ4MERlYnVn LmFzbQ0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1 UGtnL1Jlc2V0VmVjdG9yL1YNCj4gdGYwL1BvcnQ4MERlYnVnLmFzbQ0KPiBpbmRleCA4OGI0MmUw ZGRlLi43Y2I4MzI0NGRmIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WdA0KPiBmMC9Qb3J0ODBE ZWJ1Zy5hc20NCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9l ZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0b3IvVg0KPiB0ZjAvUG9ydDgwRGVidWcuYXNtDQo+IEBA IC0xLDE1ICsxLDggQEANCj4gLTsvKiogQGZpbGUNCj4gLTsgUG9ydCAweDgwIGRlYnVnIHN1cHBv cnQgbWFjcm9zDQo+IC07DQo+IC07IENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBE ZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtOyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtOw0KPiAtOyoqLw0KPiAtOyBUaGlz IGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93 aW5nIGxpY2Vuc2UuDQo+ICA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICA7IEBmaWxlDQo+ICA7 IFBvcnQgMHg4MCBkZWJ1ZyBzdXBwb3J0IG1hY3Jvcw0KPiAgOw0KPiArOyBDb3B5cmlnaHQgKEMp IDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4NCj4gIDsgQ29weXJpZ2h0IChjKSAyMDA5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+ICA7IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+ICA7DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WdA0KPiBmMC9Qb3N0Q29k ZXMuaW5jDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlD cHVQa2cvUmVzZXRWZWN0b3IvVg0KPiB0ZjAvUG9zdENvZGVzLmluYw0KPiBpbmRleCBmNzBlNGY4 MjA3Li4zMjZjODYyMWQ3IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WdA0KPiBmMC9Qb3N0Q29k ZXMuaW5jDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRr Mi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1YNCj4gdGYwL1Bvc3RDb2Rlcy5pbmMNCj4gQEAgLTEs MTUgKzEsOCBAQA0KPiAtOy8qKiBAZmlsZQ0KPiAtOyBEZWZpbml0aW9ucyBvZiBQT1NUIENPREVT IGZvciB0aGUgcmVzZXQgdmVjdG9yIG1vZHVsZQ0KPiAtOw0KPiAtOyBDb3B5cmlnaHQgKEMpIDIw MjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gLTsgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLTsN Cj4gLTsqKi8NCj4gLTsgVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNo ZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLg0KPiAgOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiAgOyBAZmlsZQ0KPiAgOyBEZWZpbml0aW9ucyBvZiBQT1NUIENPREVTIGZvciB0aGUgcmVz ZXQgdmVjdG9yIG1vZHVsZQ0KPiAgOw0KPiArOyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQg TWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIDsgQ29weXJp Z2h0IChjKSAyMDA5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ICA7IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICA7 DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2Vk azIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WdA0KPiBmMC9SZXNldFZlY3Rvci51bmkNCj4gYi9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZl Y3Rvci9WDQo+IHRmMC9SZXNldFZlY3Rvci51bmkNCj4gaW5kZXgNCj4gZGZiODkxZWYwYzIwOTYz MTU4YTlhYmFhYjQ3YTQ4YjU3ZDRiODE2MC4uYjA1OTQ1MzUxMTUwMDE1YWQ4NWZlZWNmDQo+IDY4 MGE1ZGMyY2I0MWY4OTQgMTAwNjQ0DQo+IEdJVCBiaW5hcnkgcGF0Y2gNCj4gZGVsdGEgMTENCj4g U2NtWnFVPnx2WDVaKnY1Yjl1b2k9c3NxZ2MNCj4NCj4gZGVsdGEgMTc2DQo+IHpjbWVCU1l2WWA3 WiptYzFTLQ0KPiBuMWtLNyNeNzJ0eCkjQ1BPaWhsP0o0OTcqY18oT29sdiRXRldoZ0FxQl8+JHQ1 JTcNCj4gemdWX298eChGenI0cHgmMFJGbEl7MzZ3N1lzIWFtMktfK0RZXmBycEJOYGE8O15jTWx5 QzE2cEk5cjw4QWAzJlhLDQo+IGlVP2I5amt8MXIjSyF0ZmcmOFpBfTN8dEhvbmNPQlMqPStuSyNz bVByXmR2ZH0NCj4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv T3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1Z0DQo+IGYwL1Jlc2V0VmVjdG9y RXh0cmEudW5pDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1Vl ZmlDcHVQa2cvUmVzZXRWZWN0b3IvVg0KPiB0ZjAvUmVzZXRWZWN0b3JFeHRyYS51bmkNCj4gaW5k ZXgNCj4gYTVjZGI5ZmNiNjE4MTVlMjA1OWVjY2YzNWE0Yzc2NzIyZDk1NDE4ZC4uMzMyMjMyZDJh MmFhMGNiOWFiZDhlODcNCj4gZGQxMjY5OTE3MzgyZTJhZjUgMTAwNjQ0DQo+IEdJVCBiaW5hcnkg cGF0Y2gNCj4gZGVsdGEgMTINCj4gVGNtZG5OdjVJd3IxbW9zcU9wX1BeOVlxOHUNCj4NCj4gZGVs dGEgMTc1DQo+IHpjbVozKnhgU2hiMW1vbStqQWl4dTRFaFdUMz9VMnw0NERrWUt2byklJlM2TGV2 TjlSKzc/T2VQUWljPkQNCj4gQTAoSHwNCj4gemtQbGBuME89eTJkXiVXN0IyWX5aTG5UblkwSGAo eiRPZjV8MG8wUU02ZXxVcTBAN2F1V1M0K05MM1pTDQo+IFdfMmVeQA0KPiBoT017SV8yVEZwcEI/ QUBhMFgzJkc9ck0zSE9rfHEyKj9fVCU1ZGRFRUJNPC1wDQo+DQo+IGRpZmYgLS1naXQNCj4gYS9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZl Y3Rvci9WdA0KPiBmMC9TZXJpYWxEZWJ1Zy5hc20NCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WDQo+IHRmMC9TZXJpYWxE ZWJ1Zy5hc20NCj4gaW5kZXggMzAzYjc1ZGUyNC4uZWVjMTlhMjBlNyAxMDA2NDQNCj4gLS0tDQo+ IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVz ZXRWZWN0b3IvVnQNCj4gZjAvU2VyaWFsRGVidWcuYXNtDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1YNCj4g dGYwL1NlcmlhbERlYnVnLmFzbQ0KPiBAQCAtMSwxNSArMSw4IEBADQo+IC07LyoqIEBmaWxlDQo+ IC07IFNlcmlhbCBwb3J0IGRlYnVnIHN1cHBvcnQgbWFjcm9zDQo+IC07DQo+IC07IENvcHlyaWdo dCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiAtOyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiAtOw0KPiAtOyoqLw0KPiAtOyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5 IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+ICA7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ICA7IEBmaWxlDQo+ICA7IFNlcmlhbCBwb3J0IGRlYnVnIHN1cHBvcnQgbWFj cm9zDQo+ICA7DQo+ICs7IENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2Vz LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgOyBDb3B5cmlnaHQgKGMpIDIwMDgg LSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICA7 IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICA7DQo+IGRp ZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvVWVm aUNwdVBrZy9SZXNldFZlY3Rvci9WdA0KPiBmMC9WdGYwLmluZg0KPiBiL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1YNCj4gdGYw L1Z0ZjAuaW5mDQo+IGluZGV4IDc1YmZhMGQ1NDYuLjYyNzFlN2FjN2YgMTAwNjQ0DQo+IC0tLQ0K PiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jl c2V0VmVjdG9yL1Z0DQo+IGYwL1Z0ZjAuaW5mDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1YNCj4gdGYwL1Z0 ZjAuaW5mDQo+IEBAIC0xLDIxICsxLDcgQEANCj4gICMjIEBmaWxlDQo+ICAjICBSZXNldCBWZWN0 b3INCj4gICMNCj4gLSMgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMs IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0jIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0jDQo+IC0jIw0KPiAtDQo+IC0jIyBAZmlsZQ0K PiAtIyAgUmVzZXQgVmVjdG9yDQo+IC0jDQo+IC0jIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNl ZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtIyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtIyMNCj4gLSMgVGhp cyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxv d2luZyBsaWNlbnNlLg0KPiAtIyMgQGZpbGUNCj4gLSMgIFJlc2V0IFZlY3Rvcg0KPiAtIw0KPiAr IyAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ICAjICBDb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDE0LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAjDQo+ICAjICBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiBkaWZmIC0tZ2l0DQo+ IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVz ZXRWZWN0b3IvVnQNCj4gZjAvVnRmMC5uYXNtYg0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvT3ZlcnJpZGUvZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1YNCj4gdGYwL1Z0ZjAubmFz bWINCj4gaW5kZXggZjVkNGRmY2I5ZS4uNWVhYTk1MTQ4ZiAxMDA2NDQNCj4gLS0tDQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0 b3IvVnQNCj4gZjAvVnRmMC5uYXNtYg0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WDQo+IHRmMC9WdGYwLm5h c21iDQo+IEBAIC0xLDE1ICsxLDggQEANCj4gLTsvKiogQGZpbGUNCj4gLTsgVGhpcyBmaWxlIGlu Y2x1ZGVzIGFsbCBvdGhlciBjb2RlIGZpbGVzIHRvIGFzc2VtYmxlIHRoZSByZXNldCB2ZWN0b3Ig Y29kZQ0KPiAtOw0KPiAtOyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNl cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLTsgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLTsNCj4gLTsqKi8NCj4gLTsgVGhpcyBmaWxl IGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBs aWNlbnNlLg0KPiAgOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgOyBAZmlsZQ0KPiAgOyBUaGlz IGZpbGUgaW5jbHVkZXMgYWxsIG90aGVyIGNvZGUgZmlsZXMgdG8gYXNzZW1ibGUgdGhlIHJlc2V0 IHZlY3RvciBjb2RlDQo+ICA7DQo+ICs7IENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNy byBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgOyBDb3B5cmlnaHQg KGMpIDIwMDggLSAyMDEzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+ICA7IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ ICA7DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRl L2VkazIvVWVmaUNwdVBrZy9SZXNldFZlY3Rvci9WdA0KPiBmMC9YNjQvUGFnZVRhYmxlcy5hc20N Cj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL092ZXJyaWRlL2VkazIvVWVmaUNwdVBrZy9S ZXNldFZlY3Rvci9WDQo+IHRmMC9YNjQvUGFnZVRhYmxlcy5hc20NCj4gaW5kZXggOTcwYjA5YmYx Yy4uMGYwODVjZmEyNyAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9PdmVycmlkZS9lZGsyL1VlZmlDcHVQa2cvUmVzZXRWZWN0b3IvVnQNCj4gZjAvWDY0L1BhZ2VU YWJsZXMuYXNtDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvT3ZlcnJpZGUv ZWRrMi9VZWZpQ3B1UGtnL1Jlc2V0VmVjdG9yL1YNCj4gdGYwL1g2NC9QYWdlVGFibGVzLmFzbQ0K PiBAQCAtMSwxNSArMSw4IEBADQo+IC07LyoqIEBmaWxlDQo+IC07IEVtaXRzIFBhZ2UgVGFibGVz IGZvciAxOjEgbWFwcGluZyBvZiB0aGUgYWRkcmVzc2VzIDAgLSAweDEwMDAwMDAwMCAoNEdCKQ0K PiAtOw0KPiAtOyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5j LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLTsgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLTsNCj4gLTsqKi8NCj4gLTsgVGhpcyBmaWxlIGluY2x1 ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNl Lg0KPiAgOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgOyBAZmlsZQ0KPiAgOyBFbWl0cyBQYWdl IFRhYmxlcyBmb3IgMToxIG1hcHBpbmcgb2YgdGhlIGFkZHJlc3NlcyAwIC0gMHgxMDAwMDAwMDAg KDRHQikNCj4gIDsNCj4gKzsgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmlj ZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICA7IENvcHlyaWdodCAoYykgMjAw OCAtIDIwMTQsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g IDsgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gIDsNCj4g ZGlmZiAtLWdpdCBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvUmVhZG1lLm1kDQo+IGIvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9SZWFkbWUubWQNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gaW5kZXggMDAwMDAwMDAwMC4uODkwMWI1MWIzOA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBi L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvUmVhZG1lLm1kDQo+IEBAIC0wLDAgKzEsNjcgQEAN Cj4gK1RoaXMgZG9jdW1lbnQgaW50cm9kdWNlcyBob3cgQU1EIGNyZWF0ZSBhIEVESyBJSSBiYXNl ZCBzYW1wbGUgcGxhdGZvcm0NCj4gQklPUyBmb3IgQU1EIENoYWNoYW5pLWJhc2VkIHJlZmVyZW5j ZSBib2FyZC4NCj4gK0N1c3RvbWVyIGNhbiByZWZlcmVuY2UgdGhpcyBkb2N1bWVudCB0byBzdHVk eSBFREsyIEJJT1MgaW50ZWdyYXRpb24uDQo+ICsNCj4gKyMgSG93IHRvIGJ1aWxkDQo+ICsNCj4g KyMjIFRoZSBiZWxvdyBzdGVwcyBhcmUgdmVyaWZpZWQgb24gTWljcm9zb2Z0IFdpbmRvd3MgMTAg NjQtYml0Lg0KPiArMS5JbnN0YWxsIGxhdGVzdCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyAyMDE3 IFByb2Zlc3Npb25hbCB2ZXJzaW9uKDE1LjkuNDAgb3INCj4gbmV3ZXIpIGluIHRoZSBidWlsZCBt YWNoaW5lICxtYWtlIHN1cmUNCj4gKyAgdGhhdCBEZXNrdG9wIGRldmVsb3BtZW50IHdpdGggQysr IHdhcyBzZWxlY3RlZCB3aGVuIGluc3RhbGxpbmcuIEFuZA0KPiBzZWxlY3RlZCBNU1ZDICYgV2lu ZG93cyAxMCBTREsgdG9vbCB3aGVuIGluc3RhbGxpbmcuDQo+ICsyLkluc3RhbGwgUHl0aG9uIDMu OS54IChweXRob24tMy45LjEzLWFtZDY0LmV4ZSksIG1ha2Ugc3VyZSBwYXRoIGlzDQo+ICJDOlxQ eXRob24zOSIuDQo+ICszLkluc3RhbGwgTkFTTSAobmFzbS0yLjE1LjA1LWluc3RhbGxlci14NjQu ZXhlKSwgYW5kIG1ha2Ugc3VyZSBwYXRoIGlzDQo+ICJDOlxOYXNtIi4gKGh0dHA6Ly93d3cubmFz bS51cy8pDQo+ICs0LkRvd25sb2FkIGFuZCBleHRyYWN0IGlhc2wtd2luLTIwMTMwMTE3LnppcCBm cm9tDQo+IGh0dHBzOi8vYWNwaWNhLm9yZy9zaXRlcy9hY3BpY2EvZmlsZXMvaWFzbC13aW4tMjAx MzAxMTcuemlwLA0KPiArICBhbmQgY29weSBpYXNsLmV4ZSB0byBDOlxBU0wuDQo+ICs1LkRvd25s b2FkIGFuZCBpbnN0YWxsIEFjdGl2ZVBlcmwtNS4yNC4zLjI0MDQtTVNXaW4zMi14NjQtNDA0ODY1 LmV4ZSwNCj4gY29weSBmb2xkZXJzIFBlcmw2NFxiaW4gYW5kIFBlcmw2NFxsaWIgdG8gY29ycmVj dCBwYXRoDQo+ICsgIGF0IEJ1aWxkcm9tLmJhdC4NCj4gKzYuRG93bmxvYWQgYW5kIGluc3RhbGwg T3BlblNTTA0KPiBodHRwczovL2dpdGh1Yi5jb20vb3BlbnNzbC9vcGVuc3NsL2FyY2hpdmUvT3Bl blNTTF8xXzBfMWUuemlwLiBBbmQNCj4gbWFrZSBzdXJlIE9QRU5TU0xfUEFUSCBzZXQNCj4gKyAg dGhlIGNvcnJlY3QgcGF0aCBhdCBHZW5DYXBzdWxlLmJhdC4NCj4gKw0KPiArIyMgTGludXggYnVp bGQgZW52aXJvbm1lbnQgcHJlcGFyYXRpb24NCj4gKw0KPiArIyMjIENvbW1vbiBFbnZpcm9ubWVu dA0KPiArSnVzdCBsaWtlIFdpbmRvd3MgZW52aXJvbm1lbnQsIHlvdSBuZWVkIHRvIGluc3RhbGwg c2V2ZXJhbCBjb21tb24gdG9vbHM6DQo+IElBU0wgJiBOQVNNLiBZb3UgbWF5IHJlZmVyIHRvIHlv dXIgZGlzdHJpYnV0aW9uJ3MNCj4gK2luc3RydWN0aW9ucy4gRS5nLiwgYXB0IGluc3RhbGwgaWFz bCBuYXNtIGluIFVidW50dSwgb3IgcGFjbWFuIC1TIGlhc2wgbmFzbSBpbg0KPiBBcmNobGludXgv U3RlYW1PUy5Tb21lIGRpc3RyaWJ1dGlvbnMgbGFjayBvZg0KPiArZGV2ZWxvcGVyIHBhY2thZ2Vz IGJ5IGRlZmF1bHQuIEUuZy4sIG9uIFVidW50dSwgeW91IG1heSBpbnN0YWxsIHV1aWQtZGV2DQo+ IGV4cGxpY2l0bHkgYnkgYXB0IGluc3RhbGwgdXVpZC1kZXYuUHl0aG9uMyBpcw0KPiArYnVpbHQt aW4gZm9yIG1vc3QgTGludXggZGlzdHJpYnV0aW9ucy4gWW91IG1heSBpbnN0YWxsIGl0IG1hbnVh bGx5IGlmIHlvdXINCj4gZGlzdHJpYnV0aW9uIGxhY2tzIG9mIGl0Lg0KPiArDQo+ICsjIyMgR0ND IEVudmlyb25tZW50DQo+ICtHQ0MgaXMgYnVpbHQtaW4gZm9yIG1vc3QgTGludXggZGlzdHJpYnV0 aW9ucy4gVXNlIGdjYyAtLXZlcnNpb24gdG8gY2hlY2sgaXRzDQo+IHZlcnNpb24gYW5kIGVuc3Vy ZSBpdHMgbWFqb3IgdmVyc2lvbiA+IDUuDQo+ICtBbHNvLCBtYWtlIHN1cmUgYmludXRpbHMgaXMg aW5zdGFsbGVkLiBVc2UgbGQgLS12ZXJzaW9uIHRvIGNoZWNrIGl0cyB2ZXJzaW9uLiBJZg0KPiBn Y2MgJiBiaW51dGlscyBhcmUgbm90IGluc3RhbGxlZCwNCj4gK3lvdSBtYXkgcmVmZXIgdG8geW91 ciBkaXN0cmlidXRpb24ncyBpbnN0cnVjdGlvbnMuDQo+ICsNCj4gKyMjIyBDbGFuZyBFbnZpcm9u bWVudA0KPiArRm9yIGxpY2Vuc2UgcmVhc29uLCBDbGFuZyBpcyBOT1QgaW5jbHVkZWQgaW4gbW9z dCBkaXN0cmlidXRpb25zLiBZb3UgbWF5DQo+IGluc3RhbGwgbWFudWFsbHkgd2l0aCB5b3VyIGRp c3RyaWJ1dGlvbidzIGluc3RydWN0aW9ucy4NCj4gK0UuZy4sIGFwdCBpbnN0YWxsIGxsdm0gY2xh bmcgbGxkIGluIFVidW50dSwgb3IgcGFjbWFuIC1TIGxsdm0gY2xhbmcgbGxkIGluDQo+IEFyY2hs aW51eC9TdGVhbU9TLg0KPiArVXNlIGNsYW5nIC0tdmVyc2lvbiB0byBjaGVjayBDbGFuZydzIHZl cnNpb24gYW5kIGVuc3VyZSBpdHMgbWFqb3IgdmVyc2lvbiA+IDkuDQo+ICtVc2UgbGxkLWxpbmsg LS12ZXJzaW9uIHRvIGNoZWNrIExMRCdzIHZlcnNpb24gYW5kIGVuc3VyZSBpdHMgbWFqb3IgdmVy c2lvbiA+IDkuDQo+ICsNCj4gKyMjIE9idGFpbmluZyBzb3VyY2UgY29kZQ0KPiArMS4gQ3JlYXRl IGEgbmV3IGZvbGRlciAoZGlyZWN0b3J5KSBvbiB5b3VyIGxvY2FsIGRldmVsb3BtZW50IG1hY2hp bmUgZm9yDQo+IHVzZSBhcyB5b3VyIHdvcmtzcGFjZS4gVGhpcyBleGFtcGxlDQo+ICsgICB1c2Vz IGAvd29yay9naXQvdGlhbm9jb3JlYCwgbW9kaWZ5IGFzIGFwcHJvcHJpYXRlIGZvciB5b3VyIG5l ZWRzLg0KPiArICAgYGBgDQo+ICsgICAkIGV4cG9ydCBXT1JLU1BBQ0U9L3dvcmsvZ2l0L3RpYW5v Y29yZQ0KPiArICAgJCBta2RpciAtcCAkV09SS1NQQUNFDQo+ICsgICAkIGNkICRXT1JLU1BBQ0UN Cj4gKyAgIGBgYA0KPiArDQo+ICsyLiBJbnRvIHRoYXQgZm9sZGVyLCBjbG9uZToNCj4gKyAgIDEu IFtlZGsyXShodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIpDQo+ICsgICAyLiBbZWRr Mi1wbGF0Zm9ybXNdKGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi1wbGF0Zm9ybXMp DQo+ICsgICAzLiBbZWRrMi1ub24tb3NpXShodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2Vk azItbm9uLW9zaSkNCj4gKyAgIGBgYA0KPiArICAgJCBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIu Y29tL3RpYW5vY29yZS9lZGsyLmdpdA0KPiArICAgJCBnaXQgY2hlY2tvdXQgPGJyYW5jaCBuYW1l PiAoUGxlYXNlIGZvbGxvdyBSZWxlYXNlTm90ZS50eHQgdG8gY2hlY2tvdXQNCj4gdGhlIHNwZWNp ZmllZCB2ZXJzaW9uKQ0KPiArICAgJCBnaXQgc3VibW9kdWxlIHVwZGF0ZSAtLWluaXQNCj4gKyAg IC4uLg0KPiArICAgJCBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsy LXBsYXRmb3Jtcy5naXQNCj4gKyAgICQgZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0DQo+ICsg ICAuLi4NCj4gKyAgICQgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRr Mi1ub24tb3NpLmdpdA0KPiArICAgJCBnaXQgY2hlY2tvdXQgPGJyYW5jaCBuYW1lPiAoUGxlYXNl IGZvbGxvdyBSZWxlYXNlTm90ZS50eHQgdG8gY2hlY2tvdXQNCj4gdGhlIHNwZWNpZmllZCB2ZXJz aW9uKQ0KPiArICAgYGBgDQo+ICsjIyBNYW51YWwgYnVpbGRpbmcNCj4gKw0KPiArIyMjIFdpbmRv d3MgYnVpbGRpbmcNCj4gK0NvcHkgR29aX0NoYWNoYW5pSW50LmJhdCB0byAkV09SS1NQQUNFIGFu ZCBydW4gaXQgLCB0aGVuIGV4ZWN1dGUNCj4gY29tbWFuZCDDouKCrMWTYnVpbGRyb20uYmF0w6Li gqzCnSB0byBnZW5lcmF0ZSBmaW5hbCBCSU9TIGJpbmFyeQ0KPiAnQ2hhY2hhbmlJbnRVREsuRkQn Lg0KPiArDQo+ICsjIyMgTGludXggYnVpbGRpbmcNCj4gK0NvcHkgYnVpbGQuc2ggdG8gJFdPUktT UEFDRSBhbmQgcnVuIGl0IHRvIGdlbmVyYXRlIGZpbmFsIEJJT1MgYmluYXJ5DQo+ICdDaGFjaGFu aUludFVESy5GRCcuDQo+IGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1Jl bGVhc2VOb3RlLnR4dA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvUmVsZWFzZU5vdGUu dHh0DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLjQxMTIyZDEx MGENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1Jl bGVhc2VOb3RlLnR4dA0KPiBAQCAtMCwwICsxLDE0IEBADQo+ICsqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gKioqKioqKioq KioqKg0KPiArQ2hhY2hhbmkgcmVmZXJlbmNlIEJJT1MgUmVsZWFzZSBOb3Rlcw0KPiArDQo+ICtW ZXJzaW9uOiBVQ0MzQjE2LjM4MjQgZm9yIFZhbkdvZ2gNCj4gK1NjYW5JRDogIFNXQ1NELTc4MTMN Cj4gKw0KPiArRGF0ZTogICBKYW4gMTkgMjAyNA0KPiArDQo+ICt0aWFub2NvcmUvZWRrMiB2ZXJz aW9uOiAgICAgICAgIGVkazItc3RhYmxlMjAyMjA4DQo+ICt0aWFub2NvcmUvZWRrMi1ub24tb3Np IHZlcnNpb246DQo+IDFmNGQ3ODQ5ZjIzNDRhYTc3MGY0ZGU1MjI0MTg4NjU0YWU1YjBlNTANCj4g Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKy0gRGVzY3JpcHRpb246DQo+ICsNCj4gKzEuIEluaXRp YWwgQ2hhY2hhbmlCb2FyZCByZWZlcmVuY2UgQklPUy4NCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZl cnNhbC9BY3BpUGxhdGZvcm1EeGUvQWNwaVBsYXRmb3JtLmMNCj4gYi9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL1VuaXZlcnNhbC9BY3BpUGxhdGZvcm1EeGUvQWNwaVBsYXRmb3JtLmMNCj4gaW5k ZXggNGFjMjljYTE3ZS4uNzNhMDIyNTk0ZSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvQWNwaVBsYXRmb3JtRHhlL0FjcGlQbGF0Zm9ybS5jDQo+ ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL0FjcGlQbGF0Zm9y bUR4ZS9BY3BpUGxhdGZvcm0uYw0KPiBAQCAtMSwxNCArMSw3IEBADQo+IC0vKiogQGZpbGUNCj4g LSAgSW1wbGVtZW50cyBBY3BpUGxhdGZvcm0gaW4gQm9hcmQgUGFja2FnZQ0KPiAtDQo+IC0gIENv cHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KPiAtKiovDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5 IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBA ZmlsZQ0KPiAgICBTYW1wbGUgQUNQSSBQbGF0Zm9ybSBEcml2ZXINCj4NCj4gKyAgQ29weXJpZ2h0 IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ICAgIENvcHlyaWdodCAoYykgMjAwOCAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvVW5pdmVyc2FsL0FjcGlQbGF0Zm9ybUR4ZS9BY3BpUGxhdGZvcm0udQ0KPiBu aQ0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL0FjcGlQbGF0Zm9ybUR4 ZS9BY3BpUGxhdGZvcm0udQ0KPiBuaQ0KPiBpbmRleCBmNzlkNzE4NTg4Li4yMDAxZGE1MjBiIDEw MDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9BY3Bp UGxhdGZvcm1EeGUvQWNwaVBsYXRmb3JtLnUNCj4gbmkNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvQWNwaVBsYXRmb3JtRHhlL0FjcGlQbGF0Zm9ybS51DQo+ IG5pDQo+IEBAIC0xLDE4ICsxLDkgQEANCj4gIC8vIC8qKiBAZmlsZQ0KPiAtLy8gQWNwaSBQbGF0 Zm9ybSB1bmkgZmlsZQ0KPiAtLy8NCj4gLS8vIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBN aWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtLy8NCj4gLS8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0vLw0KPiAt Ly8gKiovDQo+IC0vLyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hl ZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC0vLyAqLw0KPiAtLy8gLyoqIEBmaWxl DQo+ICAvLyBTYW1wbGUgQUNQSSBQbGF0Zm9ybSBEcml2ZXINCj4gIC8vDQo+ICAvLyBTYW1wbGUg QUNQSSBQbGF0Zm9ybSBEcml2ZXINCj4gIC8vDQo+ICsvLyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2 YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIC8v IENvcHlyaWdodCAoYykgMjAwOCAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gIC8vDQo+ICAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudA0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hC b2FyZC9Vbml2ZXJzYWwvQWNwaVBsYXRmb3JtRHhlL0FjcGlQbGF0Zm9ybUQNCj4geGUuaW5mDQo+ IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvQWNwaVBsYXRmb3JtRHhlL0Fj cGlQbGF0Zm9ybUQNCj4geGUuaW5mDQo+IGluZGV4IGIxOTdlMmM2ZTcuLjA0NDIxOGZmNDYgMTAw NjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL0FjcGlQ bGF0Zm9ybUR4ZS9BY3BpUGxhdGZvcm1EDQo+IHhlLmluZg0KPiArKysNCj4gYi9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9BY3BpUGxhdGZvcm1EeGUvQWNwaVBsYXRmb3JtRA0K PiB4ZS5pbmYNCj4gQEAgLTEsMTMgKzEsNyBAQA0KPiAgIyMgQGZpbGUNCj4gLSMgQWNwaSBQbGF0 Zm9ybSBEeGUgZHJpdmVyDQo+IC0jDQo+IC0jIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBN aWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtIyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtIyMNCj4gLSMgVGhpcyBm aWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2lu ZyBsaWNlbnNlLg0KPiAtIyMgQGZpbGUNCj4gICMgIFNhbXBsZSBBQ1BJIFBsYXRmb3JtIERyaXZl cg0KPiAgIw0KPiArIyAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMs IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAjICBDb3B5cmlnaHQgKGMpIDIwMDgg LSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAj ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgIw0KPiBk aWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvQWNwaVBs YXRmb3JtRHhlL0FjcGlQbGF0Zm9ybUUNCj4geHRyYS51bmkNCj4gYi9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL1VuaXZlcnNhbC9BY3BpUGxhdGZvcm1EeGUvQWNwaVBsYXRmb3JtRQ0KPiB4dHJh LnVuaQ0KPiBpbmRleCBiMGQ4NDc1MmQ2Li4wNGE4OWNmM2ZiIDEwMDY0NA0KPiAtLS0NCj4gYS9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9BY3BpUGxhdGZvcm1EeGUvQWNwaVBs YXRmb3JtRQ0KPiB4dHJhLnVuaQ0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJk L1VuaXZlcnNhbC9BY3BpUGxhdGZvcm1EeGUvQWNwaVBsYXRmb3JtRQ0KPiB4dHJhLnVuaQ0KPiBA QCAtMSwxNiArMSw3IEBADQo+ICAvLyAvKiogQGZpbGUNCj4gLS8vIEFjcGkgUGxhdGZvcm0gZXh0 cmEgdW5pIGZpbGUNCj4gLS8vDQo+IC0vLyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWlj cm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLS8vDQo+IC0vLyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtLy8NCj4gLS8v ICoqLw0KPiAtLy8gVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQg dW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLg0KPiAtLy8gKi8NCj4gLS8vIC8qKiBAZmlsZQ0K PiAgLy8gQWNwaVBsYXRmb3JtIExvY2FsaXplZCBTdHJpbmdzIGFuZCBDb250ZW50DQo+ICAvLw0K PiArLy8gQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAvLyBDb3B5cmlnaHQgKGMpIDIwMTMgLSAyMDE4LCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAvLw0KPiAgLy8g U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gZGlmZiAtLWdp dA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL0FjcGlQbGF0Zm9ybUR4 ZS9BY3BpUGxhdGZvcm1IDQo+IG9va3MuYw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv VW5pdmVyc2FsL0FjcGlQbGF0Zm9ybUR4ZS9BY3BpUGxhdGZvcm1IDQo+IG9va3MuYw0KPiBpbmRl eCA5YWM5YzE1ZTE4Li43Y2Y1ODQ1NzcyIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL1VuaXZlcnNhbC9BY3BpUGxhdGZvcm1EeGUvQWNwaVBsYXRmb3JtSA0KPiBv b2tzLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvQWNw aVBsYXRmb3JtRHhlL0FjcGlQbGF0Zm9ybUgNCj4gb29rcy5jDQo+IEBAIC0xLDE0ICsxLDcgQEAN Cj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIEFjcGlQbGF0Zm9ybSBIb29rcyBpbiBCb2Fy ZCBQYWNrYWdlDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERl dmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0qKi8NCj4gLS8qIFRoaXMgZmlsZSBp bmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGlj ZW5zZS4gKi8NCj4gLQ0KPiAgLyoqIEBmaWxlDQo+ICAgIFNhbXBsZSBBQ1BJIFBsYXRmb3JtIERy aXZlcg0KPg0KPiArICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDA4IC0g MjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiBkaWZmIC0t Z2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvQWNwaVBsYXRmb3Jt RHhlL0FjcGlQbGF0Zm9ybUgNCj4gb29rcy5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9Vbml2ZXJzYWwvQWNwaVBsYXRmb3JtRHhlL0FjcGlQbGF0Zm9ybUgNCj4gb29rcy5oDQo+IGlu ZGV4IDVkMWI3YWMzOGMuLjlhYmFiMGY5ZTIgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL0FjcGlQbGF0Zm9ybUR4ZS9BY3BpUGxhdGZvcm1IDQo+ IG9va3MuaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9B Y3BpUGxhdGZvcm1EeGUvQWNwaVBsYXRmb3JtSA0KPiBvb2tzLmgNCj4gQEAgLTEsMjEgKzEsMTQg QEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIEFjcGlQbGF0Zm9ybSBIb29rcyBoZWFk IGZpbGUgaW4gQm9hcmQgUGFja2FnZQ0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZh bmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtKiovDQo+IC0v KiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUg Zm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBTYW1wbGUgQUNQ SSBQbGF0Zm9ybSBEcml2ZXINCj4NCj4gKyAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1p Y3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIENvcHlyaWdo dCAoYykgMjAwOCAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4NCj4gICoqLw0KPg0KPiAtI2lmbmRlZiBfQUNQSV9QTEFURk9STV9IT09LU19IXw0KPiAtI2Rl ZmluZSBfQUNQSV9QTEFURk9STV9IT09LU19IXw0KPiArI2lmbmRlZiBBQ1BJX1BMQVRGT1JNX0hP T0tTX0hfXw0KPiArI2RlZmluZSBBQ1BJX1BMQVRGT1JNX0hPT0tTX0hfXw0KPg0KPiAgLy8NCj4g IC8vIFN0YXRlbWVudHMgdGhhdCBpbmNsdWRlIG90aGVyIGhlYWRlciBmaWxlcw0KPiBkaWZmIC0t Z2l0IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNoU3BpL0ZjaFNwaVBy b3RlY3QuaA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL0ZjaFNwaS9G Y2hTcGlQcm90ZWN0LmgNCj4gaW5kZXggZTEyMjQ2ZDVhMy4uMWRkNTdjNmY1MiAxMDA2NDQNCj4g LS0tIGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNoU3BpL0ZjaFNwaVBy b3RlY3QuaA0KPiArKysgYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9GY2hT cGkvRmNoU3BpUHJvdGVjdC5oDQo+IEBAIC02LDggKzYsOCBAQA0KPg0KPiAgKiovDQo+DQo+IC0j aWZuZGVmIF9GQ0hfU1BJX1BST1RFQ1RfSF8NCj4gLSNkZWZpbmUgX0ZDSF9TUElfUFJPVEVDVF9I Xw0KPiArI2lmbmRlZiBGQ0hfU1BJX1BST1RFQ1RfSF9fDQo+ICsjZGVmaW5lIEZDSF9TUElfUFJP VEVDVF9IX18NCj4NCj4gIC8qKg0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1Zh bkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNoU3BpL0ZjaFNwaVJ1bnRpbWVEeGUuYw0KPiBiL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL0ZjaFNwaS9GY2hTcGlSdW50aW1lRHhlLmMN Cj4gaW5kZXggZjc4MTc4MzhmMi4uN2JiNDAyNDAyYyAxMDA2NDQNCj4gLS0tIGEvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNoU3BpL0ZjaFNwaVJ1bnRpbWVEeGUuYw0KPiAr KysgYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9GY2hTcGkvRmNoU3BpUnVu dGltZUR4ZS5jDQo+IEBAIC0xLDE2ICsxLDcgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1l bnRzIEZjaFNwaVJ1bnRpbWVEeGUuYw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZh bmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8N Cj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQg dW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4gIFBD SCBTUEkgUnVudGltZSBEcml2ZXIgaW1wbGVtZW50cyB0aGUgU1BJIEhvc3QgQ29udHJvbGxlciBD b21wYXRpYmlsaXR5DQo+IEludGVyZmFjZS4NCj4NCj4gK0NvcHlyaWdodCAoQykgMjAyNCBBZHZh bmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgQ29w eXJpZ2h0IChjKSAyMDEzLTIwMTUgSW50ZWwgQ29ycG9yYXRpb24uDQo+DQo+ICBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNoU3BpL0ZjaFNwaVJ1bnRpbWVEeGUu aA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL0ZjaFNwaS9GY2hTcGlS dW50aW1lRHhlLmgNCj4gaW5kZXggYzYzYTRiM2UzMS4uOTI5ZTgyMTI5NCAxMDA2NDQNCj4gLS0t IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNoU3BpL0ZjaFNwaVJ1bnRp bWVEeGUuaA0KPiArKysgYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9GY2hT cGkvRmNoU3BpUnVudGltZUR4ZS5oDQo+IEBAIC0xLDI0ICsxLDE1IEBADQo+IC0vKiogQGZpbGUN Cj4gLSAgSW1wbGVtZW50cyBGY2hTcGlSdW50aW1lRHhlLmgNCj4gLQ0KPiAtICBDb3B5cmlnaHQg KEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4gLSAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gLQ0KPiAtKiovDQo+IC0NCj4gLS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFs bHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAgLyoq IEBmaWxlDQo+ICBIZWFkZXIgZmlsZSBmb3IgdGhlIFBDSCBTUEkgUnVudGltZSBEcml2ZXIuDQo+ DQo+ICtDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIENvcHlyaWdodCAoYykgMjAxMy0yMDE1IEludGVsIENv cnBvcmF0aW9uLg0KPg0KPiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQNCj4NCj4gICoqLw0KPg0KPiAtI2lmbmRlZiBfRkNIX1NQSV9SVU5USU1FX0RYRV9IDQo+ IC0jZGVmaW5lIF9GQ0hfU1BJX1JVTlRJTUVfRFhFX0gNCj4gKyNpZm5kZWYgRkNIX1NQSV9SVU5U SU1FX0RYRV9IXw0KPiArI2RlZmluZSBGQ0hfU1BJX1JVTlRJTUVfRFhFX0hfDQo+DQo+ICAjaW5j bHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gICNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlMaWIuaD4N Cj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL0Zj aFNwaS9GY2hTcGlSdW50aW1lRHhlLmluZg0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv VW5pdmVyc2FsL0ZjaFNwaS9GY2hTcGlSdW50aW1lRHhlLmluZg0KPiBpbmRleCAwMDQ4MGZmNzVl Li5jMmFmMTk1ZDA1IDEwMDY0NA0KPiAtLS0gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1Vu aXZlcnNhbC9GY2hTcGkvRmNoU3BpUnVudGltZUR4ZS5pbmYNCj4gKysrDQo+IGIvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNoU3BpL0ZjaFNwaVJ1bnRpbWVEeGUuaW5mDQo+ IEBAIC0xLDE0ICsxLDcgQEANCj4gICMjIEBmaWxlDQo+IC0jIEZjaCBTcGkgUnVudGltZQ0KPiAt Iw0KPiAtIyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT RC0yLUNsYXVzZS1QYXRlbnQNCj4gLSMNCj4gLSMjDQo+IC0jIFRoaXMgZmlsZSBpbmNsdWRlcyBj b2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4g LSMjIEBmaWxlDQo+ICAjICAgIENvbXBvbmVudCBkZXNjcmlwdGlvbiBmaWxlIGZvciB0aGUgU1BJ IFJ1bnRpbWUgZHJpdmVyLg0KPiAgIw0KPiArIyBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQg TWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICMgQ29weXJp Z2h0IChjKSAyMDEzLTIwMTUgSW50ZWwgQ29ycG9yYXRpb24uDQo+ICAjDQo+ICAjIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IGRpZmYgLS1naXQgYS9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9GY2hTcGkvRmNoU3BpU21tLmMNCj4gYi9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9GY2hTcGkvRmNoU3BpU21tLmMNCj4g aW5kZXggNjgzZDIyNTFkZi4uMWY4NDI2ODVhOCAxMDA2NDQNCj4gLS0tIGEvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNoU3BpL0ZjaFNwaVNtbS5jDQo+ICsrKyBiL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL0ZjaFNwaS9GY2hTcGlTbW0uYw0KPiBAQCAt MSwxNyArMSw4IEBADQo+IC0vKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBGY2hTcGlTbW0uYw0K PiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMu IEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhpcyBmaWxlIGlu Y2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNl bnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4NCj4gIFBDSCBTUEkgU01NIERyaXZlciBpbXBs ZW1lbnRzIHRoZSBTUEkgSG9zdCBDb250cm9sbGVyIENvbXBhdGliaWxpdHkNCj4gSW50ZXJmYWNl Lg0KPg0KPiArQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4g QWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICBDb3B5cmlnaHQgKGMpIDIwMTMtMjAxNSBJbnRl bCBDb3Jwb3JhdGlvbi4NCj4NCj4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+IGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZl cnNhbC9GY2hTcGkvRmNoU3BpU21tLmgNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1Vu aXZlcnNhbC9GY2hTcGkvRmNoU3BpU21tLmgNCj4gaW5kZXggNWVkOWY2MjkxNC4uNDdkYmVlOTM5 MSAxMDA2NDQNCj4gLS0tIGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNo U3BpL0ZjaFNwaVNtbS5oDQo+ICsrKyBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVy c2FsL0ZjaFNwaS9GY2hTcGlTbW0uaA0KPiBAQCAtMSwyNCArMSwxNSBAQA0KPiAtLyoqIEBmaWxl DQo+IC0gIEltcGxlbWVudHMgRmNoU3BpU21tLmgNCj4gLQ0KPiAtICBDb3B5cmlnaHQgKEMpIDIw MjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gLSAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0K PiAtKiovDQo+IC0NCj4gLS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVi bGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAgLyoqIEBmaWxl DQo+ICBIZWFkZXIgZmlsZSBmb3IgdGhlIFBDSCBTUEkgU01NIERyaXZlci4NCj4NCj4gK0NvcHly aWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiAgQ29weXJpZ2h0IChjKSAyMDEzLTIwMTUgSW50ZWwgQ29ycG9yYXRpb24u DQo+DQo+ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0K PiAgKiovDQo+DQo+IC0jaWZuZGVmIF9GQ0hfU1BJX1NNTV9IXw0KPiAtI2RlZmluZSBfRkNIX1NQ SV9TTU1fSF8NCj4gKyNpZm5kZWYgRkNIX1NQSV9TTU1fSF9fDQo+ICsjZGVmaW5lIEZDSF9TUElf U01NX0hfXw0KPg0KPiAgI2luY2x1ZGUgPExpYnJhcnkvUGNkTGliLmg+DQo+ICAjaW5jbHVkZSA8 TGlicmFyeS9VZWZpTGliLmg+DQo+IGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL1VuaXZlcnNhbC9GY2hTcGkvRmNoU3BpU21tLmluZg0KPiBiL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvVW5pdmVyc2FsL0ZjaFNwaS9GY2hTcGlTbW0uaW5mDQo+IGluZGV4IDIyODhkMzVi ODQuLmIzMGExNzExOWQgMTAwNjQ0DQo+IC0tLSBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv VW5pdmVyc2FsL0ZjaFNwaS9GY2hTcGlTbW0uaW5mDQo+ICsrKyBiL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvVW5pdmVyc2FsL0ZjaFNwaS9GY2hTcGlTbW0uaW5mDQo+IEBAIC0xLDE2ICsxLDkg QEANCj4gICMjIEBmaWxlDQo+ICAjIFNwaSBzbW0gZHJpdmVyDQo+ICAjDQo+IC0jIENvcHlyaWdo dCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiAtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiAtIw0KPiAtIyMNCj4gLSMgVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBw dWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLg0KPiAtIyMgQGZpbGUNCj4gLSMg U3BpIHNtbSBkcml2ZXINCj4gLSMNCj4gICMgQ29tcG9uZW50IGRlc2NyaXB0aW9uIGZpbGUgZm9y IHRoZSBTUEkgU01NIGRyaXZlci4NCj4gICMNCj4gKyMgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFu Y2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAjIENv cHlyaWdodCAoYykgMjAxMy0yMDE1IEludGVsIENvcnBvcmF0aW9uLg0KPiAgIw0KPiAgIyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiBkaWZmIC0tZ2l0IGEv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNoU3BpL1NwaUNvbW1vbi5jDQo+ IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNoU3BpL1NwaUNvbW1vbi5j DQo+IGluZGV4IDViZTUwMjY2NTUuLjRhYWI3Mjk0Y2IgMTAwNjQ0DQo+IC0tLSBhL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL0ZjaFNwaS9TcGlDb21tb24uYw0KPiArKysgYi9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9GY2hTcGkvU3BpQ29tbW9uLmMNCj4g QEAgLTEsMTYgKzEsNyBAQA0KPiAtLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgU3BpQ29tbW9u LmMNCj4gLQ0KPiAtICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSAgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0KPiAtKiovDQo+IC0NCj4gLS8qIFRoaXMgZmls ZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcg bGljZW5zZS4gKi8NCj4gLQ0KPiAgLyoqIEBmaWxlDQo+ICBQQ0ggU1BJIENvbW1vbiBEcml2ZXIg aW1wbGVtZW50cyB0aGUgU1BJIEhvc3QgQ29udHJvbGxlciBDb21wYXRpYmlsaXR5DQo+IEludGVy ZmFjZS4NCj4NCj4gK0NvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJ bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgQ29weXJpZ2h0IChjKSAyMDEzLTIwMTUg SW50ZWwgQ29ycG9yYXRpb24uDQo+DQo+ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPiBkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9V bml2ZXJzYWwvRmNoU3BpL1NwaUluZm8uaA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv VW5pdmVyc2FsL0ZjaFNwaS9TcGlJbmZvLmgNCj4gaW5kZXggZmQ1MWI3MWM4My4uYjNiMjM4NDJh MyAxMDA2NDQNCj4gLS0tIGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvRmNo U3BpL1NwaUluZm8uaA0KPiArKysgYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNh bC9GY2hTcGkvU3BpSW5mby5oDQo+IEBAIC02LDEwICs2LDggQEANCj4NCj4gICoqLw0KPg0KPiAt LyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhl IGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0jaWZuZGVmIF9TUElfSU5GT19IXw0KPiAt I2RlZmluZSBfU1BJX0lORk9fSF8NCj4gKyNpZm5kZWYgU1BJX0lORk9fSF9fDQo+ICsjZGVmaW5l IFNQSV9JTkZPX0hfXw0KPg0KPiAgI2luY2x1ZGUgPFVlZmkvVWVmaUJhc2VUeXBlLmg+DQo+ICAj aW5jbHVkZSA8UHJvdG9jb2wvU3BpLmg+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL1VuaXZlcnNhbC9QbGF0Zm9ybUluaXRQZWkvQm9vdE1vZGUuYw0KPiBiL1Bs YXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3JtSW5pdFBlaS9Cb290TW9k ZS5jDQo+IGluZGV4IDkxMDJhZTJiODYuLmNlNjExNGMxYmEgMTAwNjQ0DQo+IC0tLSBhL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3JtSW5pdFBlaS9Cb290TW9kZS5j DQo+ICsrKyBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3JtSW5p dFBlaS9Cb290TW9kZS5jDQo+IEBAIC0yLDI3ICsyLDExIEBADQo+ICAgIEltcGxlbWVudHMgQm9v dE1vZGUuQw0KPg0KPiAgICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNl cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDEz LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+ICAqKi8NCj4NCj4g LS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRo ZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAtLyoqIEBmaWxlDQo+IC1UaGlzIGZpbGUg cHJvdmlkZSB0aGUgZnVuY3Rpb24gdG8gZGV0ZWN0IGJvb3QgbW9kZQ0KPiAtDQo+IC1Db3B5cmln aHQgKGMpIDIwMTMgSW50ZWwgQ29ycG9yYXRpb24uDQo+IC0NCj4gLVRoaXMgcHJvZ3JhbSBhbmQg dGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLWFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFp bGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGljZW5z ZQ0KPiAtd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0 IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtaHR0cDovL29wZW5zb3VyY2Uu b3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiAtDQo+IC1USEUgUFJPR1JBTSBJUyBESVNU UklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4g LVdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhF Ug0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+IC0NCj4gLSoqLw0KPiAtDQo+ICAjaW5jbHVkZSAi Q29tbW9uSGVhZGVyLmgiDQo+DQo+ICBFRklfUEVJX1BQSV9ERVNDUklQVE9SICAgICAgICAgbVBw aUxpc3RSZWNvdmVyeUJvb3RNb2RlID0gew0KPiBAQCAtNjAsNyArNDQsNyBAQCBWYWxpZGF0ZUZ2 SGVhZGVyICgNCj4gICAgRUZJX0ZJUk1XQVJFX1ZPTFVNRV9IRUFERVIgICpGd1ZvbEhlYWRlcjsN Cj4NCj4gICAgaWYgKEJPT1RfSU5fUkVDT1ZFUllfTU9ERSA9PSAqQm9vdE1vZGUpIHsNCj4gLSAg ICBERUJVRyAoKEVGSV9EX0lORk8sICJCb290IG1vZGUgcmVjb3ZlcnlcbiIpKTsNCj4gKyAgICBE RUJVRyAoKERFQlVHX0lORk8sICJCb290IG1vZGUgcmVjb3ZlcnlcbiIpKTsNCj4gICAgICByZXR1 cm4gRUZJX1NVQ0NFU1M7DQo+ICAgIH0NCj4NCj4gQEAgLTEwNSw3ICs4OSw2IEBAIFZhbGlkYXRl RnZIZWFkZXIgKA0KPiAgICBQZWZvcm0gdGhlIGJvb3QgbW9kZSBkZXRlcm1pbmF0aW9uIGxvZ2lj DQo+DQo+ICAgIEBwYXJhbSAgUGVpU2VydmljZXMgR2VuZXJhbCBwdXJwb3NlIHNlcnZpY2VzIGF2 YWlsYWJsZSB0byBldmVyeSBQRUlNLg0KPiAtDQo+ICAgIEBwYXJhbSAgQm9vdE1vZGUgVGhlIGRl dGVjdGVkIGJvb3QgbW9kZS4NCj4NCj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyBpZiB0aGUgYm9v dCBtb2RlIGNvdWxkIGJlIHNldA0KPiBAQCAtMTQ0LDcgKzEyNyw3IEBAIFVwZGF0ZUJvb3RNb2Rl ICgNCj4gICAgLy8NCj4gICAgaWYgKFZhbGlkYXRlRnZIZWFkZXIgKCZOZXdCb290TW9kZSkgIT0g RUZJX1NVQ0NFU1MpIHsNCj4gICAgICBOZXdCb290TW9kZSA9IEJPT1RfSU5fUkVDT1ZFUllfTU9E RTsNCj4gLSAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAiUkVDT1ZFUlkgZnJvbSBjb3JydXB0IEZW XG4iKSk7DQo+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlJFQ09WRVJZIGZyb20gY29ycnVw dCBGVlxuIikpOw0KPiAgICB9DQo+DQo+ICAgIGlmIChOZXdCb290TW9kZSAgPT0gQk9PVF9JTl9S RUNPVkVSWV9NT0RFKSB7DQo+IEBAIC0xODQsNyArMTY3LDcgQEAgVXBkYXRlQm9vdE1vZGUgKA0K PiAgICAgIGlmIChTdGF0dXMgPT0gRUZJX1NVQ0NFU1MpIHsNCj4gICAgICAgIGlmIChDYXBzdWxl LT5DaGVja0NhcHN1bGVVcGRhdGUgKChFRklfUEVJX1NFUlZJQ0VTICoqKVBlaVNlcnZpY2VzKSA9 PQ0KPiBFRklfU1VDQ0VTUykgew0KPiAgICAgICAgICBOZXdCb290TW9kZSA9IEJPT1RfT05fRkxB U0hfVVBEQVRFOw0KPiAtICAgICAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAiU2V0dGluZyBCb290 TW9kZSB0byAleFxuIiwNCj4gQk9PVF9PTl9GTEFTSF9VUERBVEUpKTsNCj4gKyAgICAgICAgREVC VUcgKChERUJVR19FUlJPUiwgIlNldHRpbmcgQm9vdE1vZGUgdG8gJXhcbiIsDQo+IEJPT1RfT05f RkxBU0hfVVBEQVRFKSk7DQo+DQo+ICAgICAgICAgICgqUGVpU2VydmljZXMpLT5JbnN0YWxsUHBp IChQZWlTZXJ2aWNlcywgJkNhcHN1bGVQcGkpOw0KPiAgICAgICAgfQ0KPiBAQCAtMjMzLDcgKzIx Niw3IEBAIFVwZGF0ZUJvb3RNb2RlICgNCj4gICAgICAgIHN0ckJvb3RNb2RlID0gTCJVbmtub3du IGJvb3QgbW9kZSI7DQo+ICAgIH0gLy8gc3dpdGNoIChCb290TW9kZSkNCj4NCj4gLSAgREVCVUcg KChFRklfRF9JTkZPLCAiU2V0dGluZyBCb290TW9kZSB0byAlc1xuIiwgc3RyQm9vdE1vZGUpKTsN Cj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiU2V0dGluZyBCb290TW9kZSB0byAlc1xuIiwgc3Ry Qm9vdE1vZGUpKTsNCj4gICAgU3RhdHVzID0gKCpQZWlTZXJ2aWNlcyktPlNldEJvb3RNb2RlICgN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVpU2VydmljZXMsDQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5ld0Jvb3RNb2RlDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9QbGF0Zm9ybUluaXRQZWkvQ29tbW9uSGVh ZGVyDQo+IC5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvUGxhdGZv cm1Jbml0UGVpL0NvbW1vbkhlYWRlcg0KPiAuaA0KPiBpbmRleCBmZmM1M2NlYzAwLi5iZmVlMzUz YTljIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNh bC9QbGF0Zm9ybUluaXRQZWkvQ29tbW9uSGVhZGVyDQo+IC5oDQo+ICsrKw0KPiBiL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3JtSW5pdFBlaS9Db21tb25IZWFkZXIN Cj4gLmgNCj4gQEAgLTIsMzAgKzIsMTMgQEANCj4gICAgSW1wbGVtZW50cyBDb21tb25IZWFkZXIu aA0KPg0KPiAgICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5j LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAx NsOvwrzFkkludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoqLw0K Pg0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5k ZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZpbGUNCj4gLUNvbW1v biBoZWFkZXIgZmlsZSBzaGFyZWQgYnkgYWxsIHNvdXJjZSBmaWxlcy4NCj4gLQ0KPiAtVGhpcyBm aWxlIGluY2x1ZGVzIHBhY2thZ2UgaGVhZGVyIGZpbGVzLCBsaWJyYXJ5IGNsYXNzZXMgYW5kIHBy b3RvY29sLCBQUEkgJg0KPiBHVUlEIGRlZmluaXRpb25zLg0KPiAtDQo+IC1Db3B5cmlnaHQgKGMp IDIwMTMgLSAyMDE2IEludGVsIENvcnBvcmF0aW9uLg0KPiAtDQo+IC1UaGlzIHByb2dyYW0gYW5k IHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+IC1hcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZh aWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vu c2UNCj4gLXdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4 dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gLWh0dHA6Ly9vcGVuc291cmNl Lm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4gLQ0KPiAtVEhFIFBST0dSQU0gSVMgRElT VFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+ IC1XSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRI RVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiAtKiovDQo+IC0NCj4gLSNpZm5kZWYgX19DT01N T05fSEVBREVSX0hfDQo+IC0jZGVmaW5lIF9fQ09NTU9OX0hFQURFUl9IXw0KPiArI2lmbmRlZiBD T01NT05fSEVBREVSX0hfX18NCj4gKyNkZWZpbmUgQ09NTU9OX0hFQURFUl9IX19fDQo+DQo+ICAj aW5jbHVkZSA8UGlQZWkuaD4NCj4gICNpbmNsdWRlIDxQcGkvU3RhbGwuaD4NCj4gQEAgLTExMCw3 ICs5Myw2IEBAIFN0YWxsICgNCj4gICAgUGVmb3JtIHRoZSBib290IG1vZGUgZGV0ZXJtaW5hdGlv biBsb2dpYw0KPg0KPiAgICBAcGFyYW0gIFBlaVNlcnZpY2VzIEdlbmVyYWwgcHVycG9zZSBzZXJ2 aWNlcyBhdmFpbGFibGUgdG8gZXZlcnkgUEVJTS4NCj4gLQ0KPiAgICBAcGFyYW0gIEJvb3RNb2Rl IFRoZSBkZXRlY3RlZCBib290IG1vZGUuDQo+DQo+ICAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgaWYg dGhlIGJvb3QgbW9kZSBjb3VsZCBiZSBzZXQNCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3JtSW5pdFBlaS9NZW1vcnlDYWxsYmFjaw0K PiAuYw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3JtSW5p dFBlaS9NZW1vcnlDYWxsYmFjaw0KPiAuYw0KPiBpbmRleCA5YWI3OGI3MTM1Li4yMmExOTUwOWMz IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9Q bGF0Zm9ybUluaXRQZWkvTWVtb3J5Q2FsbGJhY2sNCj4gLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvUGxhdGZvcm1Jbml0UGVpL01lbW9yeUNhbGxiYWNr DQo+IC5jDQo+IEBAIC0xLDM0ICsxLDE5IEBADQo+ICAvKiogQGZpbGUNCj4gICAgSW1wbGVtZW50 cyBNZW1vcnlDYWxsYmFjay5DDQo+DQo+ICsgIFRoaXMgZmlsZSBpbmNsdWRlcyBhIG1lbW9yeSBj YWxsIGJhY2sgZnVuY3Rpb24gbm90aWZpZWQgd2hlbiBNUkMgaXMgZG9uZSwNCj4gKyAgZm9sbG93 aW5nIGFjdGlvbiBpcyBwZXJmb3JtZWQgaW4gdGhpcyBmaWxlLA0KPiArICAgIDEuIElDSCBpbml0 aWFsaXphdGlvbiBhZnRlciBNUkMuDQo+ICsgICAgMi4gU0lPIGluaXRpYWxpemF0aW9uLg0KPiAr ICAgIDMuIEluc3RhbGwgUmVzZXRTeXN0ZW0gYW5kIEZpbnZGdiBQUEkuDQo+ICsgICAgNC4gU2V0 IE1UUlIgZm9yIFBFSQ0KPiArICAgIDUuIENyZWF0ZSBGViBIT0IgYW5kIEZsYXNoIEhPQg0KPiAg ICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxNiwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiAgKiovDQo+DQo+IC0vKiBUaGlz IGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93 aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gLS8qKiBAZmlsZQ0KPiAtVGhpcyBmaWxlIGluY2x1ZGVz IGEgbWVtb3J5IGNhbGwgYmFjayBmdW5jdGlvbiBub3RpZmllZCB3aGVuIE1SQyBpcyBkb25lLA0K PiAtZm9sbG93aW5nIGFjdGlvbiBpcyBwZXJmb3JtZWQgaW4gdGhpcyBmaWxlLA0KPiAtICAxLiBJ Q0ggaW5pdGlhbGl6YXRpb24gYWZ0ZXIgTVJDLg0KPiAtICAyLiBTSU8gaW5pdGlhbGl6YXRpb24u DQo+IC0gIDMuIEluc3RhbGwgUmVzZXRTeXN0ZW0gYW5kIEZpbnZGdiBQUEkuDQo+IC0gIDQuIFNl dCBNVFJSIGZvciBQRUkNCj4gLSAgNS4gQ3JlYXRlIEZWIEhPQiBhbmQgRmxhc2ggSE9CDQo+IC0N Cj4gLUNvcHlyaWdodCAoYykgMjAxMyAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9uLg0KPiAtDQo+ IC1UaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+IC1hcmUgbGlj ZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBv ZiB0aGUgQlNEDQo+IExpY2Vuc2UNCj4gLXdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0 aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4g LWh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4gLQ0KPiAt VEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJB UyBJUyINCj4gQkFTSVMsDQo+IC1XSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05T IE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiAtDQo+IC0qKi8N Cj4gLQ0KPiAgI2luY2x1ZGUgIkNvbW1vbkhlYWRlci5oIg0KPiAgI2luY2x1ZGUgPFBwaS9TbW1D b250cm9sLmg+DQo+DQo+IEBAIC05MywxMiArNzgsMTIgQEAgUzNQb3N0U2NyaXB0VGFibGVDYWxs YmFjayAoDQo+ICAgICAgICAgICAgICAgKTsNCj4gICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVz KTsNCj4gICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiAtICAgIERFQlVHICgoRUZJX0Rf RVJST1IsICJQZWlTZXJ2aWNlc0xvY2F0ZVBwaSBnUGVpU21tQ29udHJvbFBwaUd1aWQ6ICVyDQo+ IFxuIiwgU3RhdHVzKSk7DQo+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlBlaVNlcnZpY2Vz TG9jYXRlUHBpDQo+IGdQZWlTbW1Db250cm9sUHBpR3VpZDogJXIgXG4iLCBTdGF0dXMpKTsNCj4g ICAgICByZXR1cm4gU3RhdHVzOw0KPiAgICB9DQo+DQo+ICAgIFNtaUNvbW1hbmQgPSBQY2RHZXQ4 IChQY2RGY2hPZW1CZWZvcmVQY2lSZXN0b3JlU3dTbWkpOw0KPiAtICBERUJVRyAoKEVGSV9EX0lO Rk8sICJUcmlnZ2VyIFNXIFNNSSBQY2RGY2hPZW1CZWZvcmVQY2lSZXN0b3JlU3dTbWk6DQo+IDB4 JVhcbiIsIFNtaUNvbW1hbmQpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiVHJpZ2dlciBT VyBTTUkNCj4gUGNkRmNoT2VtQmVmb3JlUGNpUmVzdG9yZVN3U21pOiAweCVYXG4iLCBTbWlDb21t YW5kKSk7DQo+ICAgIFNtaUNvbW1hbmRTaXplID0gc2l6ZW9mIChTbWlDb21tYW5kKTsNCj4gICAg U3RhdHVzICAgICAgICAgPSBTbW1Db250cm9sLT5UcmlnZ2VyICgNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChFRklfUEVJX1NFUlZJQ0VTICoqKUdldFBlaVNlcnZpY2VzVGFi bGVQb2ludGVyICgpLA0KPiBAQCAtMTQ2LDEyICsxMzEsMTIgQEAgUzNFbmRPZlBlaVNpZ25hbENh bGxiYWNrICgNCj4NCj4gICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gICAgaWYgKEVG SV9FUlJPUiAoU3RhdHVzKSkgew0KPiAtICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJQZWlTZXJ2 aWNlc0xvY2F0ZVBwaSBnUGVpU21tQ29udHJvbFBwaUd1aWQ6ICVyDQo+IFxuIiwgU3RhdHVzKSk7 DQo+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlBlaVNlcnZpY2VzTG9jYXRlUHBpDQo+IGdQ ZWlTbW1Db250cm9sUHBpR3VpZDogJXIgXG4iLCBTdGF0dXMpKTsNCj4gICAgICByZXR1cm4gU3Rh dHVzOw0KPiAgICB9DQo+DQo+ICAgIFNtaUNvbW1hbmQgPSBQY2RHZXQ4IChBY3BpUmVzdG9yZVN3 U21pKTsNCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiVHJpZ2dlciBTVyBTTUkgQWNwaVJlc3Rv cmVTd1NtaTogMHglWFxuIiwNCj4gU21pQ29tbWFuZCkpOw0KPiArICBERUJVRyAoKERFQlVHX0lO Rk8sICJUcmlnZ2VyIFNXIFNNSSBBY3BpUmVzdG9yZVN3U21pOiAweCVYXG4iLA0KPiBTbWlDb21t YW5kKSk7DQo+ICAgIFNtaUNvbW1hbmRTaXplID0gc2l6ZW9mIChTbWlDb21tYW5kKTsNCj4gICAg U3RhdHVzICAgICAgICAgPSBTbW1Db250cm9sLT5UcmlnZ2VyICgNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChFRklfUEVJX1NFUlZJQ0VTICoqKUdldFBlaVNlcnZpY2VzVGFi bGVQb2ludGVyICgpLA0KPiBAQCAtMTY0LDcgKzE0OSw3IEBAIFMzRW5kT2ZQZWlTaWduYWxDYWxs YmFjayAoDQo+ICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+DQo+ICAgIFNtaUNvbW1h bmQgPSBQY2RHZXQ4IChQY2RGY2hPZW1BZnRlclBjaVJlc3RvcmVTd1NtaSk7DQo+IC0gIERFQlVH ICgoRUZJX0RfSU5GTywgIlRyaWdnZXIgU1cgU01JIFBjZEZjaE9lbUFmdGVyUGNpUmVzdG9yZVN3 U21pOg0KPiAweCVYXG4iLCBTbWlDb21tYW5kKSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywg IlRyaWdnZXIgU1cgU01JIFBjZEZjaE9lbUFmdGVyUGNpUmVzdG9yZVN3U21pOg0KPiAweCVYXG4i LCBTbWlDb21tYW5kKSk7DQo+ICAgIFNtaUNvbW1hbmRTaXplID0gc2l6ZW9mIChTbWlDb21tYW5k KTsNCj4gICAgU3RhdHVzICAgICAgICAgPSBTbW1Db250cm9sLT5UcmlnZ2VyICgNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChFRklfUEVJX1NFUlZJQ0VTICoqKUdldFBlaVNl cnZpY2VzVGFibGVQb2ludGVyICgpLA0KPiBAQCAtMjUzLDcgKzIzOCw3IEBAIE1lbW9yeURpc2Nv dmVyZWRQcGlOb3RpZnlDYWxsYmFjayAoDQo+ICAgIEFzbUNwdWlkICgweDgwMDAwMDAxLCAmUmVn RWF4LCBOVUxMLCBOVUxMLCBOVUxMKTsNCj4gICAgaWYgKCgoUmVnRWF4ID4+IDIwKSAmIDB4RkYp ID09IDB4OCkgew0KPiAgICAgIC8vIEZvciBGMTc6IFJlc2VydmVkIG1lbW9yeSBmcm9tIEJvb3RG dkJhc2UgLSAoQm9vdEZ2QmFzZStCb290RnZTaXplLQ0KPiAxKQ0KPiAtICAgIERFQlVHICgoRUZJ X0RfSU5GTywgIkZhbWlseSAxNzogUmVzZXJ2ZWQgbWVtb3J5IGZvciBCRlZcbiIpKTsNCj4gKyAg ICBERUJVRyAoKERFQlVHX0lORk8sICJGYW1pbHkgMTc6IFJlc2VydmVkIG1lbW9yeSBmb3IgQkZW XG4iKSk7DQo+ICAgICAgQnVpbGRNZW1vcnlBbGxvY2F0aW9uSG9iICgNCj4gICAgICAgIFBjZEdl dDMyIChQY2RNZW1vcnlGdlJlY292ZXJ5QmFzZSksDQo+ICAgICAgICBQY2RHZXQzMiAoUGNkRmxh c2hGdlJlY292ZXJ5U2l6ZSksDQo+IEBAIC0yNjEsNyArMjQ2LDcgQEAgTWVtb3J5RGlzY292ZXJl ZFBwaU5vdGlmeUNhbGxiYWNrICgNCj4gICAgICAgICk7DQo+ICAgIH0NCj4NCj4gLSAgREVCVUcg KChFRklfRF9JTkZPLA0KPiAiUGNkTWVtb3J5RnZSZWNvdmVyeUJhc2U6ICV4LFBjZEZsYXNoRnZN YWluQmFzZTogJXhcbiIsIFBjZEdldDMyDQo+IChQY2RNZW1vcnlGdlJlY292ZXJ5QmFzZSksIFBj ZEdldDMyIChQY2RGbGFzaEZ2TWFpbkJhc2UpKSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywN Cj4gIlBjZE1lbW9yeUZ2UmVjb3ZlcnlCYXNlOiAleCxQY2RGbGFzaEZ2TWFpbkJhc2U6ICV4XG4i LCBQY2RHZXQzMg0KPiAoUGNkTWVtb3J5RnZSZWNvdmVyeUJhc2UpLCBQY2RHZXQzMiAoUGNkRmxh c2hGdk1haW5CYXNlKSkpOw0KPg0KPiAgICBpZiAoKEJvb3RNb2RlICE9IEJPT1RfT05fUzNfUkVT VU1FKSAmJiAoQm9vdE1vZGUgIT0NCj4gQk9PVF9JTl9SRUNPVkVSWV9NT0RFKSkgew0KPiAgICNp Zm5kZWYgRlZfUkVDT1ZFUllfTUFJTl9DT01CSU5FX1NVUFBPUlQNCj4gQEAgLTI5NCw3ICsyNzks NyBAQCBNZW1vcnlEaXNjb3ZlcmVkUHBpTm90aWZ5Q2FsbGJhY2sgKA0KPiAgICAgIEZpeGVkUGNk R2V0MzIgKFBjZEZsYXNoQXJlYUJhc2VBZGRyZXNzKSwNCj4gICAgICBGaXhlZFBjZEdldDMyIChQ Y2RGbGFzaEFyZWFTaXplKQ0KPiAgICAgICk7DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywgIkZM QVNIX0JBU0VfQUREUkVTUyA6IDB4JXhcbiIsIEZpeGVkUGNkR2V0MzINCj4gKFBjZEZsYXNoQXJl YUJhc2VBZGRyZXNzKSkpOw0KPiArICBERUJVRyAoKERFQlVHX0lORk8sICJGTEFTSF9CQVNFX0FE RFJFU1MgOiAweCV4XG4iLCBGaXhlZFBjZEdldDMyDQo+IChQY2RGbGFzaEFyZWFCYXNlQWRkcmVz cykpKTsNCj4NCj4gICAgLy8NCj4gICAgLy8gQ3JlYXRlIGEgQ1BVIGhhbmQtb2ZmIGluZm9ybWF0 aW9uDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNh bC9QbGF0Zm9ybUluaXRQZWkvTWVtb3J5SW5zdGFsbC5jDQo+IGIvUGxhdGZvcm0vQU1EL1Zhbkdv Z2hCb2FyZC9Vbml2ZXJzYWwvUGxhdGZvcm1Jbml0UGVpL01lbW9yeUluc3RhbGwuYw0KPiBpbmRl eCBmNTg2NDVmMmNkLi5jMWI3NjZhZmMwIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL1VuaXZlcnNhbC9QbGF0Zm9ybUluaXRQZWkvTWVtb3J5SW5zdGFsbC5jDQo+ ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3JtSW5p dFBlaS9NZW1vcnlJbnN0YWxsLmMNCj4gQEAgLTEsMjggKzEsMTMgQEANCj4gIC8qKiBAZmlsZQ0K PiAgICBJbXBsZW1lbnRzIE1lbW9yeUluc3RhbGwuQw0KPiArICBGcmFtZXdvcmsgUEVJTSB0byBp bml0aWFsaXplIG1lbW9yeSBvbiBhIFF1YXJrIE1lbW9yeSBDb250cm9sbGVyLg0KPg0KPiAgICBD b3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxNiwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiAgKiovDQo+DQo+IC0vKiBUaGlzIGZp bGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5n IGxpY2Vuc2UuICovDQo+IC0NCj4gLS8qKiBAZmlsZQ0KPiAtRnJhbWV3b3JrIFBFSU0gdG8gaW5p dGlhbGl6ZSBtZW1vcnkgb24gYSBRdWFyayBNZW1vcnkgQ29udHJvbGxlci4NCj4gLQ0KPiAtQ29w eXJpZ2h0IChjKSAyMDEzIC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uDQo+IC0NCj4gLVRoaXMg cHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLWFyZSBsaWNlbnNlZCBh bmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBC U0QNCj4gTGljZW5zZQ0KPiAtd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBU aGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtaHR0cDov L29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiAtDQo+IC1USEUgUFJP R1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0K PiBCQVNJUywNCj4gLVdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5Z IEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+IC0NCj4gLSoqLw0KPiAtDQo+ ICAjaW5jbHVkZSAiQ29tbW9uSGVhZGVyLmgiDQo+DQo+ICBFRklfTUVNT1JZX1RZUEVfSU5GT1JN QVRJT04gIG1EZWZhdWx0TWVtb3J5VHlwZUluZm9ybWF0aW9uW10gPSB7DQo+IEBAIC0yODAsMTUg KzI2NSwxNSBAQCBJbnN0YWxsRWZpTWVtb3J5ICgNCj4gICAgICAgICAgICAgICApOw0KPiAgICBB U1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPg0KPiAtICBERUJVRyAoKEVGSV9EX0lORk8sICJO dW1SYW5nZXM6ICVkXG4iLCBOdW1SYW5nZXMpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAi TnVtUmFuZ2VzOiAlZFxuIiwgTnVtUmFuZ2VzKSk7DQo+DQo+IC0gIERFQlVHICgoRUZJX0RfSU5G TywgIkdldE1lbW9yeU1hcDpcbiIpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiR2V0TWVt b3J5TWFwOlxuIikpOw0KPiAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBOdW1SYW5nZXM7IElu ZGV4KyspIHsNCj4gLSAgICBERUJVRyAoKEVGSV9EX0lORk8sICJJbmRleDogJWQgIiwgSW5kZXgp KTsNCj4gLSAgICBERUJVRyAoKEVGSV9EX0lORk8sICJSYW5nZUxlbmd0aDogMHglMDE2bFhcdCIs DQo+IE1lbW9yeU1hcFtJbmRleF0uUmFuZ2VMZW5ndGgpKTsNCj4gLSAgICBERUJVRyAoKEVGSV9E X0lORk8sICJQaHlzaWNhbEFkZHJlc3M6IDB4JTAxNmxYXHQiLA0KPiBNZW1vcnlNYXBbSW5kZXhd LlBoeXNpY2FsQWRkcmVzcykpOw0KPiAtICAgIERFQlVHICgoRUZJX0RfSU5GTywgIkNwdUFkZHJl c3M6IDB4JTAxNmxYXHQiLA0KPiBNZW1vcnlNYXBbSW5kZXhdLkNwdUFkZHJlc3MpKTsNCj4gLSAg ICBERUJVRyAoKEVGSV9EX0lORk8sICJUeXBlOiAlZFxuIiwgTWVtb3J5TWFwW0luZGV4XS5UeXBl KSk7DQo+ICsgICAgREVCVUcgKChERUJVR19JTkZPLCAiSW5kZXg6ICVkICIsIEluZGV4KSk7DQo+ ICsgICAgREVCVUcgKChERUJVR19JTkZPLCAiUmFuZ2VMZW5ndGg6IDB4JTAxNmxYXHQiLA0KPiBN ZW1vcnlNYXBbSW5kZXhdLlJhbmdlTGVuZ3RoKSk7DQo+ICsgICAgREVCVUcgKChERUJVR19JTkZP LCAiUGh5c2ljYWxBZGRyZXNzOiAweCUwMTZsWFx0IiwNCj4gTWVtb3J5TWFwW0luZGV4XS5QaHlz aWNhbEFkZHJlc3MpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJDcHVBZGRyZXNzOiAw eCUwMTZsWFx0IiwNCj4gTWVtb3J5TWFwW0luZGV4XS5DcHVBZGRyZXNzKSk7DQo+ICsgICAgREVC VUcgKChERUJVR19JTkZPLCAiVHlwZTogJWRcbiIsIE1lbW9yeU1hcFtJbmRleF0uVHlwZSkpOw0K PiAgICB9DQo+DQo+ICAgIC8vDQo+IEBAIC0zMTMsOSArMjk4LDkgQEAgSW5zdGFsbEVmaU1lbW9y eSAoDQo+ICAgIFBlaU1lbW9yeUluZGV4ID0gMDsNCj4NCj4gICAgZm9yIChJbmRleCA9IDA7IElu ZGV4IDwgTnVtUmFuZ2VzOyBJbmRleCsrKSB7DQo+IC0gICAgREVCVUcgKChFRklfRF9JTkZPLCAi Rm91bmQgMHglbHggYnl0ZXMgYXQgIiwNCj4gTWVtb3J5TWFwW0luZGV4XS5SYW5nZUxlbmd0aCkp Ow0KPiAtICAgIERFQlVHICgoRUZJX0RfSU5GTywgIjB4JWx4Llx0IiwgTWVtb3J5TWFwW0luZGV4 XS5QaHlzaWNhbEFkZHJlc3MpKTsNCj4gLSAgICBERUJVRyAoKEVGSV9EX0lORk8sICJUeXBlOiAl ZC5cbiIsIE1lbW9yeU1hcFtJbmRleF0uVHlwZSkpOw0KPiArICAgIERFQlVHICgoREVCVUdfSU5G TywgIkZvdW5kIDB4JWx4IGJ5dGVzIGF0ICIsDQo+IE1lbW9yeU1hcFtJbmRleF0uUmFuZ2VMZW5n dGgpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICIweCVseC5cdCIsIE1lbW9yeU1hcFtJ bmRleF0uUGh5c2ljYWxBZGRyZXNzKSk7DQo+ICsgICAgREVCVUcgKChERUJVR19JTkZPLCAiVHlw ZTogJWQuXG4iLCBNZW1vcnlNYXBbSW5kZXhdLlR5cGUpKTsNCj4NCj4gICAgICBpZiAoKE1lbW9y eU1hcFtJbmRleF0uVHlwZSA9PSBEdWFsQ2hhbm5lbERkck1haW5NZW1vcnkpICYmDQo+ICAgICAg ICAgIChNZW1vcnlNYXBbSW5kZXhdLlBoeXNpY2FsQWRkcmVzcyArDQo+IE1lbW9yeU1hcFtJbmRl eF0uUmFuZ2VMZW5ndGggPCBNQVhfQUREUkVTUykgJiYNCj4gQEAgLTM2Nyw3ICszNTIsNyBAQCBJ bnN0YWxsRWZpTWVtb3J5ICgNCj4gICAgICBpZiAoU3RhdHVzID09IEVGSV9TVUNDRVNTKSB7DQo+ ICAgICAgICBDYXBzdWxlQnVmZmVyICAgICAgID0gTGFyZ2VNZW1SYW5nZUJ1ZjsNCj4gICAgICAg IENhcHN1bGVCdWZmZXJMZW5ndGggPSBMYXJnZU1lbVJhbmdlQnVmTGVuOw0KPiAtICAgICAgREVC VUcgKChFRklfRF9JTkZPLCAiQ2Fwc3VsZUJ1ZmZlcjogJXgsIENhcHN1bGVCdWZmZXJMZW5ndGg6 ICV4XG4iLA0KPiBDYXBzdWxlQnVmZmVyLCBDYXBzdWxlQnVmZmVyTGVuZ3RoKSk7DQo+ICsgICAg ICBERUJVRyAoKERFQlVHX0lORk8sICJDYXBzdWxlQnVmZmVyOiAleCwgQ2Fwc3VsZUJ1ZmZlckxl bmd0aDogJXhcbiIsDQo+IENhcHN1bGVCdWZmZXIsIENhcHN1bGVCdWZmZXJMZW5ndGgpKTsNCj4N Cj4gICAgICAgIC8vDQo+ICAgICAgICAvLyBDYWxsIHRoZSBDYXBzdWxlIFBQSSBDb2FsZXNjZSBm dW5jdGlvbiB0byBjb2FsZXNjZSB0aGUgY2Fwc3VsZSBkYXRhLg0KPiBAQCAtNTY4LDcgKzU1Myw3 IEBAIEluc3RhbGxFZmlNZW1vcnkgKA0KPiAgICAvLw0KPiAgICBDb3B5TWVtICgmRGVzY3JpcHRv ckFjcGlWYXJpYWJsZSwgJlNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLQ0KPiA+RGVzY3JpcHRvcltT bXJhbVJhbmdlcy0xXSwgc2l6ZW9mIChFRklfU01SQU1fREVTQ1JJUFRPUikpOw0KPiAgICBEZXNj cmlwdG9yQWNwaVZhcmlhYmxlLkNwdVN0YXJ0ICs9IFJFU0VSVkVEX0NQVV9TM19TQVZFX09GRlNF VDsNCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiZ0VmaUFjcGlWYXJpYWJsZUd1aWQgQ3B1U3Rh cnQ6IDB4JVhcbiIsDQo+IChVSU5UTilEZXNjcmlwdG9yQWNwaVZhcmlhYmxlLkNwdVN0YXJ0KSk7 DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgImdFZmlBY3BpVmFyaWFibGVHdWlkIENwdVN0YXJ0 OiAweCVYXG4iLA0KPiAoVUlOVE4pRGVzY3JpcHRvckFjcGlWYXJpYWJsZS5DcHVTdGFydCkpOw0K PiAgICBCdWlsZEd1aWREYXRhSG9iICgNCj4gICAgICAmZ0VmaUFjcGlWYXJpYWJsZUd1aWQsDQo+ ICAgICAgJkRlc2NyaXB0b3JBY3BpVmFyaWFibGUsDQo+IEBAIC02MzAsMTkgKzYxNSwxOSBAQCBJ bnN0YWxsUzNNZW1vcnkgKA0KPiAgICAgICAgICAgICAgICZOdW1SYW5nZXMNCj4gICAgICAgICAg ICAgICApOw0KPiAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiAtICBERUJVRyAoKEVG SV9EX0lORk8sICJOdW1SYW5nZXMgPSAweCV4XG4iLCBOdW1SYW5nZXMpKTsNCj4gKyAgREVCVUcg KChERUJVR19JTkZPLCAiTnVtUmFuZ2VzID0gMHgleFxuIiwgTnVtUmFuZ2VzKSk7DQo+DQo+ICAg IC8vDQo+ICAgIC8vIEluc3RhbGwgcGh5c2ljYWwgbWVtb3J5IGRlc2NyaXB0b3IgaG9icyBmb3Ig ZWFjaCBtZW1vcnkgcmFuZ2UuDQo+ICAgIC8vDQo+ICAgIFNtcmFtUmFuZ2VzID0gMDsNCj4gLSAg REVCVUcgKChFRklfRF9JTkZPLCAiR2V0TWVtb3J5TWFwOlxuIikpOw0KPiArICBERUJVRyAoKERF QlVHX0lORk8sICJHZXRNZW1vcnlNYXA6XG4iKSk7DQo+ICAgIGZvciAoSW5kZXggPSAwOyBJbmRl eCA8IE51bVJhbmdlczsgSW5kZXgrKykgew0KPiAtICAgIERFQlVHICgoRUZJX0RfSU5GTywgIklu ZGV4OiAlZCAiLCBJbmRleCkpOw0KPiAtICAgIERFQlVHICgoRUZJX0RfSU5GTywgIlJhbmdlTGVu Z3RoOiAweCUwMTZsWFx0IiwNCj4gTWVtb3J5TWFwW0luZGV4XS5SYW5nZUxlbmd0aCkpOw0KPiAt ICAgIERFQlVHICgoRUZJX0RfSU5GTywgIlBoeXNpY2FsQWRkcmVzczogMHglMDE2bFhcdCIsDQo+ IE1lbW9yeU1hcFtJbmRleF0uUGh5c2ljYWxBZGRyZXNzKSk7DQo+IC0gICAgREVCVUcgKChFRklf RF9JTkZPLCAiQ3B1QWRkcmVzczogMHglMDE2bFhcdCIsDQo+IE1lbW9yeU1hcFtJbmRleF0uQ3B1 QWRkcmVzcykpOw0KPiAtICAgIERFQlVHICgoRUZJX0RfSU5GTywgIlR5cGU6ICVkXG4iLCBNZW1v cnlNYXBbSW5kZXhdLlR5cGUpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJJbmRleDog JWQgIiwgSW5kZXgpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJSYW5nZUxlbmd0aDog MHglMDE2bFhcdCIsDQo+IE1lbW9yeU1hcFtJbmRleF0uUmFuZ2VMZW5ndGgpKTsNCj4gKyAgICBE RUJVRyAoKERFQlVHX0lORk8sICJQaHlzaWNhbEFkZHJlc3M6IDB4JTAxNmxYXHQiLA0KPiBNZW1v cnlNYXBbSW5kZXhdLlBoeXNpY2FsQWRkcmVzcykpOw0KPiArICAgIERFQlVHICgoREVCVUdfSU5G TywgIkNwdUFkZHJlc3M6IDB4JTAxNmxYXHQiLA0KPiBNZW1vcnlNYXBbSW5kZXhdLkNwdUFkZHJl c3MpKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJUeXBlOiAlZFxuIiwgTWVtb3J5TWFw W0luZGV4XS5UeXBlKSk7DQo+ICAgICAgaWYgKChNZW1vcnlNYXBbSW5kZXhdLlBoeXNpY2FsQWRk cmVzcyA+IDB4MTAwMDAwKSAmJg0KPiAgICAgICAgICAoKE1lbW9yeU1hcFtJbmRleF0uVHlwZSA9 PSBEdWFsQ2hhbm5lbERkclNtcmFtQ2FjaGVhYmxlKSB8fA0KPiAgICAgICAgICAgKE1lbW9yeU1h cFtJbmRleF0uVHlwZSA9PSBEdWFsQ2hhbm5lbERkclNtcmFtTm9uQ2FjaGVhYmxlKSkpDQo+IEBA IC02NTIsNyArNjM3LDcgQEAgSW5zdGFsbFMzTWVtb3J5ICgNCj4gICAgfQ0KPg0KPiAgICBBU1NF UlQgKFNtcmFtUmFuZ2VzID4gMCk7DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywgIlNtcmFtUmFu Z2VzID0gMHgleFxuIiwgU21yYW1SYW5nZXMpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAi U21yYW1SYW5nZXMgPSAweCV4XG4iLCBTbXJhbVJhbmdlcykpOw0KPg0KPiAgICAvLw0KPiAgICAv LyBBbGxvY2F0ZSBvbmUgZXh0cmEgRUZJX1NNUkFNX0RFU0NSSVBUT1IgdG8gZGVzY3JpYmUgYSBw YWdlIG9mDQo+IFNNUkFNIG1lbW9yeSB0aGF0IGNvbnRhaW5zIGEgcG9pbnRlcg0KPiBAQCAtNjYz LDIyICs2NDgsMjIgQEAgSW5zdGFsbFMzTWVtb3J5ICgNCj4gICAgICBCdWZmZXJTaXplICs9ICgo U21yYW1SYW5nZXMpICogc2l6ZW9mIChFRklfU01SQU1fREVTQ1JJUFRPUikpOw0KPiAgICB9DQo+ DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywgIkJ1ZmZlclNpemUgPSAweCV4XG4iLCBCdWZmZXJT aXplKSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIkJ1ZmZlclNpemUgPSAweCV4XG4iLCBC dWZmZXJTaXplKSk7DQo+DQo+ICAgIEhvYi5SYXcgPSBCdWlsZEd1aWRIb2IgKA0KPiAgICAgICAg ICAgICAgICAmZ0VmaVNtbVBlaVNtcmFtTWVtb3J5UmVzZXJ2ZUd1aWQsDQo+ICAgICAgICAgICAg ICAgIEJ1ZmZlclNpemUNCj4gICAgICAgICAgICAgICAgKTsNCj4gICAgQVNTRVJUIChIb2IuUmF3 KTsNCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLA0KPiAiZ0VmaVNtbVBlaVNtcmFtTWVtb3J5UmVz ZXJ2ZUd1aWQvU21yYW1Ib2JEZXNjcmlwdG9yQmxvY2s6IDB4JVgNCj4gXG4iLCAoVUlOVE4pSG9i LlJhdykpOw0KPiArICBERUJVRyAoKERFQlVHX0lORk8sDQo+ICJnRWZpU21tUGVpU21yYW1NZW1v cnlSZXNlcnZlR3VpZC9TbXJhbUhvYkRlc2NyaXB0b3JCbG9jazogMHglWA0KPiBcbiIsIChVSU5U TilIb2IuUmF3KSk7DQo+DQo+ICAgIFNtcmFtSG9iRGVzY3JpcHRvckJsb2NrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA9DQo+IChFRklfU01SQU1fSE9CX0RFU0NSSVBUT1JfQkxPQ0sgKiko SG9iLlJhdyk7DQo+ICAgIFNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLT5OdW1iZXJPZlNtbVJlc2Vy dmVkUmVnaW9ucyA9DQo+IFNtcmFtUmFuZ2VzICsgMTsNCj4NCj4gICAgU21yYW1JbmRleCA9IDA7 DQo+ICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IE51bVJhbmdlczsgSW5kZXgrKykgew0KPiAt ICAgIERFQlVHICgoRUZJX0RfSU5GTywgIkluZGV4OiAweCVYIFx0IiwgSW5kZXgpKTsNCj4gLSAg ICBERUJVRyAoKEVGSV9EX0lORk8sICJTbXJhbUluZGV4OiAweCVYIFxuIiwgU21yYW1JbmRleCkp Ow0KPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIkluZGV4OiAweCVYIFx0IiwgSW5kZXgpKTsN Cj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJTbXJhbUluZGV4OiAweCVYIFxuIiwgU21yYW1J bmRleCkpOw0KPiAgICAgIGlmICgoTWVtb3J5TWFwW0luZGV4XS5QaHlzaWNhbEFkZHJlc3MgPiAw eDEwMDAwMCkgJiYNCj4gICAgICAgICAgKChNZW1vcnlNYXBbSW5kZXhdLlR5cGUgPT0gRHVhbENo YW5uZWxEZHJTbXJhbUNhY2hlYWJsZSkgfHwNCj4gICAgICAgICAgIChNZW1vcnlNYXBbSW5kZXhd LlR5cGUgPT0gRHVhbENoYW5uZWxEZHJTbXJhbU5vbkNhY2hlYWJsZSkpDQo+IEBAIC02OTYsMTEg KzY4MSwxMSBAQCBJbnN0YWxsUzNNZW1vcnkgKA0KPiAgICAgICAgICBTbXJhbUhvYkRlc2NyaXB0 b3JCbG9jay0+RGVzY3JpcHRvcltTbXJhbUluZGV4XS5SZWdpb25TdGF0ZSA9DQo+IEVGSV9TTVJB TV9DTE9TRUQ7DQo+ICAgICAgICB9DQo+DQo+IC0gICAgICBERUJVRyAoKEVGSV9EX0lORk8sICJT bXJhbUluZGV4OiAweCVYIFxuIiwgU21yYW1JbmRleCkpOw0KPiAtICAgICAgREVCVUcgKChFRklf RF9JTkZPLCAiUGh5c2ljYWxTdGFydDogMHglWFxuIiwNCj4gKFVJTlROKVNtcmFtSG9iRGVzY3Jp cHRvckJsb2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5kZXhdLlBoeXNpY2FsU3RhcnQpKTsNCj4gLSAg ICAgIERFQlVHICgoRUZJX0RfSU5GTywgIkNwdVN0YXJ0ICAgICA6IDB4JVhcbiIsDQo+IChVSU5U TilTbXJhbUhvYkRlc2NyaXB0b3JCbG9jay0+RGVzY3JpcHRvcltTbXJhbUluZGV4XS5DcHVTdGFy dCkpOw0KPiAtICAgICAgREVCVUcgKChFRklfRF9JTkZPLCAiUGh5c2ljYWxTaXplIDogMHglWFxu IiwNCj4gKFVJTlROKVNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5k ZXhdLlBoeXNpY2FsU2l6ZSkpOw0KPiAtICAgICAgREVCVUcgKChFRklfRF9JTkZPLCAiUmVnaW9u U3RhdGUgIDogMHglWFxuIiwNCj4gKFVJTlROKVNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLT5EZXNj cmlwdG9yW1NtcmFtSW5kZXhdLlJlZ2lvblN0YXRlKSk7DQo+ICsgICAgICBERUJVRyAoKERFQlVH X0lORk8sICJTbXJhbUluZGV4OiAweCVYIFxuIiwgU21yYW1JbmRleCkpOw0KPiArICAgICAgREVC VUcgKChERUJVR19JTkZPLCAiUGh5c2ljYWxTdGFydDogMHglWFxuIiwNCj4gKFVJTlROKVNtcmFt SG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5kZXhdLlBoeXNpY2FsU3RhcnQp KTsNCj4gKyAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIkNwdVN0YXJ0ICAgICA6IDB4JVhcbiIs DQo+IChVSU5UTilTbXJhbUhvYkRlc2NyaXB0b3JCbG9jay0+RGVzY3JpcHRvcltTbXJhbUluZGV4 XS5DcHVTdGFydCkpOw0KPiArICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiUGh5c2ljYWxTaXpl IDogMHglWFxuIiwNCj4gKFVJTlROKVNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlwdG9y W1NtcmFtSW5kZXhdLlBoeXNpY2FsU2l6ZSkpOw0KPiArICAgICAgREVCVUcgKChERUJVR19JTkZP LCAiUmVnaW9uU3RhdGUgIDogMHglWFxuIiwNCj4gKFVJTlROKVNtcmFtSG9iRGVzY3JpcHRvckJs b2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5kZXhdLlJlZ2lvblN0YXRlKSk7DQo+ICAgICAgICBpZiAo IFNtcmFtSW5kZXggPT0gIFNtcmFtUmFuZ2VzIC0gMSkgew0KPiAgICAgICAgICAvLw0KPiAgICAg ICAgICAvLyBvbmUgZXh0cmEgRUZJX1NNUkFNX0RFU0NSSVBUT1IgZm9yIGEgcGFnZSBvZiBTTVJB TSBtZW1vcnkNCj4gQEAgLTcxMiwxNCArNjk3LDE0IEBAIEluc3RhbGxTM01lbW9yeSAoDQo+ICAg ICAgICAgIFNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5kZXhdLlBo eXNpY2FsU2l6ZSAgID0NCj4gTWVtb3J5TWFwW0luZGV4XS5SYW5nZUxlbmd0aCAtIEVGSV9QQUdF X1NJWkU7DQo+ICAgICAgICAgIFNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlwdG9yW1Nt cmFtSW5kZXhdLlJlZ2lvblN0YXRlICAgID0NCj4gU21yYW1Ib2JEZXNjcmlwdG9yQmxvY2stPkRl c2NyaXB0b3JbU21yYW1JbmRleC0xXS5SZWdpb25TdGF0ZTsNCj4gICAgICAgICAgU21yYW1Ib2JE ZXNjcmlwdG9yQmxvY2stPkRlc2NyaXB0b3JbU21yYW1JbmRleC0xXS5SZWdpb25TdGF0ZSB8PQ0K PiBFRklfQUxMT0NBVEVEOw0KPiAtICAgICAgICBERUJVRyAoKEVGSV9EX0lORk8sICJTbXJhbUlu ZGV4OiAweCVYIFxuIiwgU21yYW1JbmRleCkpOw0KPiAtICAgICAgICBERUJVRyAoKEVGSV9EX0lO Rk8sICJQaHlzaWNhbFN0YXJ0OiAweCVYXG4iLA0KPiAoVUlOVE4pU21yYW1Ib2JEZXNjcmlwdG9y QmxvY2stPkRlc2NyaXB0b3JbU21yYW1JbmRleF0uUGh5c2ljYWxTdGFydCkpOw0KPiAtICAgICAg ICBERUJVRyAoKEVGSV9EX0lORk8sICJDcHVTdGFydCAgICAgOiAweCVYXG4iLA0KPiAoVUlOVE4p U21yYW1Ib2JEZXNjcmlwdG9yQmxvY2stPkRlc2NyaXB0b3JbU21yYW1JbmRleF0uQ3B1U3RhcnQp KTsNCj4gLSAgICAgICAgREVCVUcgKChFRklfRF9JTkZPLCAiUGh5c2ljYWxTaXplIDogMHglWFxu IiwNCj4gKFVJTlROKVNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5k ZXhdLlBoeXNpY2FsU2l6ZSkpOw0KPiAtICAgICAgICBERUJVRyAoKEVGSV9EX0lORk8sICJSZWdp b25TdGF0ZSAgOiAweCVYXG5cbiIsDQo+IChVSU5UTilTbXJhbUhvYkRlc2NyaXB0b3JCbG9jay0+ RGVzY3JpcHRvcltTbXJhbUluZGV4XS5SZWdpb25TdGF0ZSkpOw0KPiAtDQo+IC0gICAgICAgIERF QlVHICgoRUZJX0RfSU5GTywgIlBoeXNpY2FsU2l6ZSA6IDB4JVhcbiIsDQo+IChVSU5UTilTbXJh bUhvYkRlc2NyaXB0b3JCbG9jay0+RGVzY3JpcHRvcltTbXJhbUluZGV4LQ0KPiAxXS5QaHlzaWNh bFNpemUpKTsNCj4gLSAgICAgICAgREVCVUcgKChFRklfRF9JTkZPLCAiUmVnaW9uU3RhdGUgIDog MHglWFxuIiwNCj4gKFVJTlROKVNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlwdG9yW1Nt cmFtSW5kZXgtDQo+IDFdLlJlZ2lvblN0YXRlKSk7DQo+ICsgICAgICAgIERFQlVHICgoREVCVUdf SU5GTywgIlNtcmFtSW5kZXg6IDB4JVggXG4iLCBTbXJhbUluZGV4KSk7DQo+ICsgICAgICAgIERF QlVHICgoREVCVUdfSU5GTywgIlBoeXNpY2FsU3RhcnQ6IDB4JVhcbiIsDQo+IChVSU5UTilTbXJh bUhvYkRlc2NyaXB0b3JCbG9jay0+RGVzY3JpcHRvcltTbXJhbUluZGV4XS5QaHlzaWNhbFN0YXJ0 KSk7DQo+ICsgICAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIkNwdVN0YXJ0ICAgICA6IDB4JVhc biIsDQo+IChVSU5UTilTbXJhbUhvYkRlc2NyaXB0b3JCbG9jay0+RGVzY3JpcHRvcltTbXJhbUlu ZGV4XS5DcHVTdGFydCkpOw0KPiArICAgICAgICBERUJVRyAoKERFQlVHX0lORk8sICJQaHlzaWNh bFNpemUgOiAweCVYXG4iLA0KPiAoVUlOVE4pU21yYW1Ib2JEZXNjcmlwdG9yQmxvY2stPkRlc2Ny aXB0b3JbU21yYW1JbmRleF0uUGh5c2ljYWxTaXplKSk7DQo+ICsgICAgICAgIERFQlVHICgoREVC VUdfSU5GTywgIlJlZ2lvblN0YXRlICA6IDB4JVhcblxuIiwNCj4gKFVJTlROKVNtcmFtSG9iRGVz Y3JpcHRvckJsb2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5kZXhdLlJlZ2lvblN0YXRlKSk7DQo+ICsN Cj4gKyAgICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiUGh5c2ljYWxTaXplIDogMHglWFxuIiwN Cj4gKFVJTlROKVNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlwdG9yW1NtcmFtSW5kZXgt DQo+IDFdLlBoeXNpY2FsU2l6ZSkpOw0KPiArICAgICAgICBERUJVRyAoKERFQlVHX0lORk8sICJS ZWdpb25TdGF0ZSAgOiAweCVYXG4iLA0KPiAoVUlOVE4pU21yYW1Ib2JEZXNjcmlwdG9yQmxvY2st PkRlc2NyaXB0b3JbU21yYW1JbmRleC0NCj4gMV0uUmVnaW9uU3RhdGUpKTsNCj4gICAgICAgIH0N Cj4NCj4gICAgICAgIFNtcmFtSW5kZXgrKzsNCj4gQEAgLTczMSw3ICs3MTYsNyBAQCBJbnN0YWxs UzNNZW1vcnkgKA0KPiAgICAvLw0KPiAgICBDb3B5TWVtICgmRGVzY3JpcHRvckFjcGlWYXJpYWJs ZSwgJlNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLQ0KPiA+RGVzY3JpcHRvcltTbXJhbVJhbmdlcy0x XSwgc2l6ZW9mIChFRklfU01SQU1fREVTQ1JJUFRPUikpOw0KPiAgICBEZXNjcmlwdG9yQWNwaVZh cmlhYmxlLkNwdVN0YXJ0ICs9IFJFU0VSVkVEX0NQVV9TM19TQVZFX09GRlNFVDsNCj4gLSAgREVC VUcgKChFRklfRF9JTkZPLCAiZ0VmaUFjcGlWYXJpYWJsZUd1aWQgQ3B1U3RhcnQ6IDB4JVhcbiIs DQo+IChVSU5UTilEZXNjcmlwdG9yQWNwaVZhcmlhYmxlLkNwdVN0YXJ0KSk7DQo+ICsgIERFQlVH ICgoREVCVUdfSU5GTywgImdFZmlBY3BpVmFyaWFibGVHdWlkIENwdVN0YXJ0OiAweCVYXG4iLA0K PiAoVUlOVE4pRGVzY3JpcHRvckFjcGlWYXJpYWJsZS5DcHVTdGFydCkpOw0KPiAgICBCdWlsZEd1 aWREYXRhSG9iICgNCj4gICAgICAmZ0VmaUFjcGlWYXJpYWJsZUd1aWQsDQo+ICAgICAgJkRlc2Ny aXB0b3JBY3BpVmFyaWFibGUsDQo+IEBAIC03NDMsMjAgKzcyOCwyMCBAQCBJbnN0YWxsUzNNZW1v cnkgKA0KPiAgICAvLyBpbnN0YWxsIGl0IGFzIFBFSSBNZW1vcnkuDQo+ICAgIC8vDQo+DQo+IC0g IERFQlVHICgoRUZJX0RfSU5GTywgIlRTRUcgQmFzZSA9IDB4JTA4eFxuIiwNCj4gU21yYW1Ib2JE ZXNjcmlwdG9yQmxvY2stPkRlc2NyaXB0b3JbU21yYW1SYW5nZXNdLlBoeXNpY2FsU3RhcnQpKTsN Cj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiU21yYW1SYW5nZXMgPSAweCV4XG4iLCBTbXJhbVJh bmdlcykpOw0KPiArICBERUJVRyAoKERFQlVHX0lORk8sICJUU0VHIEJhc2UgPSAweCUwOHhcbiIs DQo+IFNtcmFtSG9iRGVzY3JpcHRvckJsb2NrLT5EZXNjcmlwdG9yW1NtcmFtUmFuZ2VzXS5QaHlz aWNhbFN0YXJ0KSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIlNtcmFtUmFuZ2VzID0gMHgl eFxuIiwgU21yYW1SYW5nZXMpKTsNCj4gICAgUzNNZW1vcnlSYW5nZURhdGEgPSAoUkVTRVJWRURf QUNQSV9TM19SQU5HRSAqKShVSU5UTikNCj4gICAgICAgICAgICAgICAgICAgICAgICAoU21yYW1I b2JEZXNjcmlwdG9yQmxvY2stDQo+ID5EZXNjcmlwdG9yW1NtcmFtUmFuZ2VzXS5QaHlzaWNhbFN0 YXJ0ICsNCj4gUkVTRVJWRURfQUNQSV9TM19SQU5HRV9PRkZTRVQpOw0KPiAtICBERUJVRyAoKEVG SV9EX0lORk8sICJTM01lbW9yeVJhbmdlRGF0YSA9IDB4JTA4eFxuIiwNCj4gKFVJTlROKVMzTWVt b3J5UmFuZ2VEYXRhKSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIlMzTWVtb3J5UmFuZ2VE YXRhID0gMHglMDh4XG4iLA0KPiAoVUlOVE4pUzNNZW1vcnlSYW5nZURhdGEpKTsNCj4NCj4gLSAg REVCVUcgKChFRklfRF9JTkZPLCAiUzNNZW1vcnlSYW5nZURhdGEtPkFjcGlSZXNlcnZlZE1lbW9y eUJhc2UgPQ0KPiAweCVYXG4iLCAoVUlOVE4pUzNNZW1vcnlSYW5nZURhdGEtPkFjcGlSZXNlcnZl ZE1lbW9yeUJhc2UpKTsNCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiUzNNZW1vcnlSYW5nZURh dGEtPkFjcGlSZXNlcnZlZE1lbW9yeVNpemUgPQ0KPiAweCVYXG4iLCAoVUlOVE4pUzNNZW1vcnlS YW5nZURhdGEtPkFjcGlSZXNlcnZlZE1lbW9yeVNpemUpKTsNCj4gLSAgREVCVUcgKChFRklfRF9J TkZPLCAiUzNNZW1vcnlSYW5nZURhdGEtPlN5c3RlbU1lbW9yeUxlbmd0aCA9DQo+IDB4JVhcbiIs IChVSU5UTilTM01lbW9yeVJhbmdlRGF0YS0+U3lzdGVtTWVtb3J5TGVuZ3RoKSk7DQo+ICsgIERF QlVHICgoREVCVUdfSU5GTywgIlMzTWVtb3J5UmFuZ2VEYXRhLQ0KPiA+QWNwaVJlc2VydmVkTWVt b3J5QmFzZSA9IDB4JVhcbiIsIChVSU5UTilTM01lbW9yeVJhbmdlRGF0YS0NCj4gPkFjcGlSZXNl cnZlZE1lbW9yeUJhc2UpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiUzNNZW1vcnlSYW5n ZURhdGEtPkFjcGlSZXNlcnZlZE1lbW9yeVNpemUNCj4gPSAweCVYXG4iLCAoVUlOVE4pUzNNZW1v cnlSYW5nZURhdGEtPkFjcGlSZXNlcnZlZE1lbW9yeVNpemUpKTsNCj4gKyAgREVCVUcgKChERUJV R19JTkZPLCAiUzNNZW1vcnlSYW5nZURhdGEtPlN5c3RlbU1lbW9yeUxlbmd0aCA9DQo+IDB4JVhc biIsIChVSU5UTilTM01lbW9yeVJhbmdlRGF0YS0+U3lzdGVtTWVtb3J5TGVuZ3RoKSk7DQo+DQo+ ICAgIFMzTWVtb3J5QmFzZSA9IChVSU5UTikoUzNNZW1vcnlSYW5nZURhdGEtDQo+ID5BY3BpUmVz ZXJ2ZWRNZW1vcnlCYXNlKTsNCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiUzNNZW1vcnlCYXNl ID0gMHglMDh4XG4iLCBTM01lbW9yeUJhc2UpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAi UzNNZW1vcnlCYXNlID0gMHglMDh4XG4iLCBTM01lbW9yeUJhc2UpKTsNCj4gICAgUzNNZW1vcnlT aXplID0gKFVJTlROKShTM01lbW9yeVJhbmdlRGF0YS0NCj4gPkFjcGlSZXNlcnZlZE1lbW9yeVNp emUpOw0KPiAtICBERUJVRyAoKEVGSV9EX0lORk8sICJTM01lbW9yeVNpemUgPSAweCUwOHhcbiIs IFMzTWVtb3J5U2l6ZSkpOw0KPiArICBERUJVRyAoKERFQlVHX0lORk8sICJTM01lbW9yeVNpemUg PSAweCUwOHhcbiIsIFMzTWVtb3J5U2l6ZSkpOw0KPg0KPiAgICBTdGF0dXMgPSBQZWlTZXJ2aWNl c0luc3RhbGxQZWlNZW1vcnkgKFMzTWVtb3J5QmFzZSwgUzNNZW1vcnlTaXplKTsNCj4gICAgQVNT RVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gQEAgLTc4MSw3ICs3NjYsNyBAQCBJbnN0YWxsUzNN ZW1vcnkgKA0KPiAgICAgIFMzTWVtb3J5UmFuZ2VEYXRhLT5TeXN0ZW1NZW1vcnlMZW5ndGggLSAw eDEwMDAwMA0KPiAgICAgICk7DQo+DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywgIk1lbW9yeUJl Z2luOiAweCVsWCwgTWVtb3J5TGVuZ3RoOiAweCVsWFxuIiwNCj4gMHgxMDAwMDAsIFMzTWVtb3J5 UmFuZ2VEYXRhLT5TeXN0ZW1NZW1vcnlMZW5ndGggLSAweDEwMDAwMCkpOw0KPiArICBERUJVRyAo KERFQlVHX0lORk8sICJNZW1vcnlCZWdpbjogMHglbFgsIE1lbW9yeUxlbmd0aDogMHglbFhcbiIs DQo+IDB4MTAwMDAwLCBTM01lbW9yeVJhbmdlRGF0YS0+U3lzdGVtTWVtb3J5TGVuZ3RoIC0gMHgx MDAwMDApKTsNCj4NCj4gICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgTnVtUmFuZ2VzOyBJbmRl eCsrKSB7DQo+ICAgICAgaWYgKChNZW1vcnlNYXBbSW5kZXhdLlR5cGUgPT0gRHVhbENoYW5uZWxE ZHJNYWluTWVtb3J5KSAmJg0KPiBAQCAtODAwLDEwICs3ODUsMTAgQEAgSW5zdGFsbFMzTWVtb3J5 ICgNCj4gICAgICAgICAgTWVtb3J5TWFwW0luZGV4XS5QaHlzaWNhbEFkZHJlc3MsDQo+ICAgICAg ICAgIE1lbW9yeU1hcFtJbmRleF0uUmFuZ2VMZW5ndGgNCj4gICAgICAgICAgKTsNCj4gLSAgICAg IERFQlVHICgoRUZJX0RfSU5GTywgIk1lbW9yeUJlZ2luOiAweCVsWCwgTWVtb3J5TGVuZ3RoOiAw eCVsWFxuIiwNCj4gTWVtb3J5TWFwW0luZGV4XS5QaHlzaWNhbEFkZHJlc3MsIE1lbW9yeU1hcFtJ bmRleF0uUmFuZ2VMZW5ndGgpKTsNCj4gKyAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIk1lbW9y eUJlZ2luOiAweCVsWCwgTWVtb3J5TGVuZ3RoOiAweCVsWFxuIiwNCj4gTWVtb3J5TWFwW0luZGV4 XS5QaHlzaWNhbEFkZHJlc3MsIE1lbW9yeU1hcFtJbmRleF0uUmFuZ2VMZW5ndGgpKTsNCj4NCj4g LSAgICAgIERFQlVHICgoRUZJX0RfSU5GTywgIkJ1aWxkIHJlc291cmNlIEhPQiBmb3IgTGVnYWN5 IFJlZ2lvbiBvbiBTMw0KPiBwYXRjaCA6IikpOw0KPiAtICAgICAgREVCVUcgKChFRklfRF9JTkZP LCAiIE1lbW9yeSBCYXNlOjB4JWxYIExlbmd0aDoweCVsWFxuIiwNCj4gTWVtb3J5TWFwW0luZGV4 XS5QaHlzaWNhbEFkZHJlc3MsIE1lbW9yeU1hcFtJbmRleF0uUmFuZ2VMZW5ndGgpKTsNCj4gKyAg ICAgIERFQlVHICgoREVCVUdfSU5GTywgIkJ1aWxkIHJlc291cmNlIEhPQiBmb3IgTGVnYWN5IFJl Z2lvbiBvbiBTMw0KPiBwYXRjaCA6IikpOw0KPiArICAgICAgREVCVUcgKChERUJVR19JTkZPLCAi IE1lbW9yeSBCYXNlOjB4JWxYIExlbmd0aDoweCVsWFxuIiwNCj4gTWVtb3J5TWFwW0luZGV4XS5Q aHlzaWNhbEFkZHJlc3MsIE1lbW9yeU1hcFtJbmRleF0uUmFuZ2VMZW5ndGgpKTsNCj4gICAgICB9 DQo+ICAgIH0NCj4NCj4gQEAgLTg5MCw3ICs4NzUsNyBAQCBHZXRQbGF0Zm9ybU1lbW9yeVNpemUg KA0KPg0KPiAgICAgICpNZW1vcnlTaXplID0gUEVJX01JTl9NRU1PUllfU0laRTsNCj4gICAgICBm b3IgKEluZGV4ID0gMDsgSW5kZXggPCBEYXRhU2l6ZSAvIHNpemVvZg0KPiAoRUZJX01FTU9SWV9U WVBFX0lORk9STUFUSU9OKTsgSW5kZXgrKykgew0KPiAtICAgICAgREVCVUcgKChFRklfRF9JTkZP LCAiSW5kZXggJWQsIFBhZ2U6ICVkXG4iLCBJbmRleCwNCj4gTWVtb3J5RGF0YVtJbmRleF0uTnVt YmVyT2ZQYWdlcykpOw0KPiArICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiSW5kZXggJWQsIFBh Z2U6ICVkXG4iLCBJbmRleCwNCj4gTWVtb3J5RGF0YVtJbmRleF0uTnVtYmVyT2ZQYWdlcykpOw0K PiAgICAgICAgKk1lbW9yeVNpemUgKz0gTWVtb3J5RGF0YVtJbmRleF0uTnVtYmVyT2ZQYWdlcyAq IEVGSV9QQUdFX1NJWkU7DQo+ICAgICAgfQ0KPg0KPiBAQCAtOTA0LDcgKzg4OSw3IEBAIEdldFBs YXRmb3JtTWVtb3J5U2l6ZSAoDQo+ICAgICAgICApOw0KPiAgICB9DQo+DQo+IC0gIERFQlVHICgo RUZJX0RfSU5GTywgIkdldFBsYXRmb3JtTWVtb3J5U2l6ZSwgTWVtb3J5U2l6ZTogMHglbFhcbiIs DQo+ICpNZW1vcnlTaXplKSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIkdldFBsYXRmb3Jt TWVtb3J5U2l6ZSwgTWVtb3J5U2l6ZTogMHglbFhcbiIsDQo+ICpNZW1vcnlTaXplKSk7DQo+ICAg IHJldHVybiBFRklfU1VDQ0VTUzsNCj4gIH0NCj4NCj4gQEAgLTkzNyw3ICs5MjIsNyBAQCBNZW1v cnlJbmZvSG9iUHBpTm90aWZ5Q2FsbGJhY2sgKA0KPiAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0 dXMpOw0KPg0KPiAgICBpZiAoQm9vdE1vZGUgPT0gQk9PVF9PTl9TM19SRVNVTUUpIHsNCj4gLSAg ICBERUJVRyAoKEVGSV9EX0lORk8sICJGb2xsb3dpbmcgQk9PVF9PTl9TM19SRVNVTUUgYm9vdCBw YXRoLlxuIikpOw0KPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIkZvbGxvd2luZyBCT09UX09O X1MzX1JFU1VNRSBib290DQo+IHBhdGguXG4iKSk7DQo+DQo+ICAgICAgU3RhdHVzID0gSW5zdGFs bFMzTWVtb3J5IChQZWlTZXJ2aWNlcywgQm9vdE1vZGUpOw0KPiAgICAgIEFTU0VSVF9FRklfRVJS T1IgKFN0YXR1cyk7DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJk L1VuaXZlcnNhbC9QbGF0Zm9ybUluaXRQZWkvTWVtb3J5SW5zdGFsbC5oDQo+IGIvUGxhdGZvcm0v QU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvUGxhdGZvcm1Jbml0UGVpL01lbW9yeUluc3RhbGwu aA0KPiBpbmRleCBhOWEyNDY3N2FkLi42M2I3ODYzOGM0IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9QbGF0Zm9ybUluaXRQZWkvTWVtb3J5SW5z dGFsbC5oDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1Bs YXRmb3JtSW5pdFBlaS9NZW1vcnlJbnN0YWxsLmgNCj4gQEAgLTEsMzAgKzEsMTUgQEANCj4gIC8q KiBAZmlsZQ0KPiAgICBJbXBsZW1lbnRzIE1lbW9yeUluc3RhbGwuaA0KPiArICBGcmFtZXdvcmsg UEVJTSB0byBpbml0aWFsaXplIG1lbW9yeSBvbiBhbiBERFIyIFNEUkFNIE1lbW9yeQ0KPiBDb250 cm9sbGVyLg0KPg0KPiAgICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNl cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDEz IC0gMjAxNsOvwrzFkkludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4g ICoqLw0KPg0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNo ZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZpbGUNCj4g LUZyYW1ld29yayBQRUlNIHRvIGluaXRpYWxpemUgbWVtb3J5IG9uIGFuIEREUjIgU0RSQU0gTWVt b3J5DQo+IENvbnRyb2xsZXIuDQo+IC0NCj4gLUNvcHlyaWdodCAoYykgMjAxMyAtIDIwMTYgSW50 ZWwgQ29ycG9yYXRpb24uDQo+IC0NCj4gLVRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWlu ZyBtYXRlcmlhbHMNCj4gLWFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhl IHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGljZW5zZQ0KPiAtd2hpY2ggYWNj b21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNl IG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2Jz ZC1saWNlbnNlLnBocA0KPiAtDQo+IC1USEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBU SEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gLVdJVEhPVVQgV0FSUkFO VElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9S IElNUExJRUQuDQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0jaWZuZGVmIF9NUkNfV1JBUFBFUl9IDQo+ IC0jZGVmaW5lIF9NUkNfV1JBUFBFUl9IDQo+ICsjaWZuZGVmIE1SQ19XUkFQUEVSX0hfDQo+ICsj ZGVmaW5lIE1SQ19XUkFQUEVSX0hfDQo+DQo+ICAvLw0KPiAgLy8gTWF4aW11bSBudW1iZXIgb2Yg bWVtb3J5IHJhbmdlcyBzdXBwb3J0ZWQgYnkgdGhlIG1lbW9yeQ0KPiBjb250cm9sbGVyDQo+IGRp ZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9QbGF0Zm9y bUluaXRQZWkvTWVtb3J5UGVpbS5jDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2 ZXJzYWwvUGxhdGZvcm1Jbml0UGVpL01lbW9yeVBlaW0uYw0KPiBpbmRleCA1ZjZhZWZhOWIxLi44 MmFkYjM4Y2ZiIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1Vu aXZlcnNhbC9QbGF0Zm9ybUluaXRQZWkvTWVtb3J5UGVpbS5jDQo+ICsrKw0KPiBiL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3JtSW5pdFBlaS9NZW1vcnlQZWltLmMN Cj4gQEAgLTEsNDcgKzEsMTQgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBJbXBsZW1lbnRzIE1lbW9y eVBlaW0uQw0KPiArICBUaWFubyBQRUlNIHRvIHByb3ZpZGUgdGhlIHBsYXRmb3JtIHN1cHBvcnQg ZnVuY3Rpb25hbGl0eS4NCj4gKyAgVGhpcyBmaWxlIGltcGxlbWVudHMgdGhlIFBsYXRmb3JtIE1l bW9yeSBSYW5nZSBQUEkNCj4NCj4gICAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3Jv IERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsgIENvcHlyaWdodCAo YykgMjAwNCAgLSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ DQo+ICAqKi8NCj4NCj4gLS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVi bGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAtLyoqIEBmaWxl DQo+IC0NCj4gLSAgQ29weXJpZ2h0IChjKSAyMDA0ICAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLQ0KPiAtDQo+IC0gIFRoaXMgcHJvZ3JhbSBh bmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlDQo+IGF2 YWlsYWJsZSB1bmRlcg0KPiAtDQo+IC0gIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUg QlNEIExpY2Vuc2UgdGhhdCBhY2NvbXBhbmllcyB0aGlzDQo+IGRpc3RyaWJ1dGlvbi4NCj4gLQ0K PiAtICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBhdA0KPiAtDQo+ IC0gIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAuDQo+IC0N Cj4gLQ0KPiAtDQo+IC0gIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0Qg TElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtDQo+IC0gIFdJVEhPVVQgV0FSUkFO VElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9S IElNUExJRUQuDQo+IC0NCj4gLQ0KPiAtDQo+IC0NCj4gLU1vZHVsZSBOYW1lOg0KPiAtDQo+IC0N Cj4gLSAgTWVtb3J5UGVpbS5jDQo+IC0NCj4gLUFic3RyYWN0Og0KPiAtDQo+IC0gIFRpYW5vIFBF SU0gdG8gcHJvdmlkZSB0aGUgcGxhdGZvcm0gc3VwcG9ydCBmdW5jdGlvbmFsaXR5Lg0KPiAtICBU aGlzIGZpbGUgaW1wbGVtZW50cyB0aGUgUGxhdGZvcm0gTWVtb3J5IFJhbmdlIFBQSQ0KPiAtDQo+ IC0tLSovDQo+IC0NCj4gICNpbmNsdWRlICJDb21tb25IZWFkZXIuaCINCj4NCj4gICNkZWZpbmUg TVRSUl9MSUJfQ0FDSEVfTVRSUl9FTkFCTEVEICAweDgwMA0KPiBAQCAtMTc4LDcgKzE0NSw3IEBA IFNldFBlaUNhY2hlTW9kZSAoDQo+ICAgICAgICBicmVhazsNCj4gICAgICB9DQo+DQo+IC0gICAg REVCVUcgKChFRklfRF9JTkZPLCAiQmFzZT0lbHgsIE1hc2s9JWx4XG4iLA0KPiBNdHJyU2V0dGlu Zy5WYXJpYWJsZXMuTXRycltJbmRleF0uQmFzZSwNCj4gTXRyclNldHRpbmcuVmFyaWFibGVzLk10 cnJbSW5kZXhdLk1hc2spKTsNCj4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJCYXNlPSVseCwg TWFzaz0lbHhcbiIsDQo+IE10cnJTZXR0aW5nLlZhcmlhYmxlcy5NdHJyW0luZGV4XS5CYXNlLA0K PiBNdHJyU2V0dGluZy5WYXJpYWJsZXMuTXRycltJbmRleF0uTWFzaykpOw0KPiAgICB9DQo+DQo+ ICAgIC8vDQo+IEBAIC0yOTEsNyArMjU4LDcgQEAgR2V0QXZhaWxhYmxlTWVtb3J5UmFuZ2VzICgN Cj4gICAgQU1EX01FTU9SWV9SQU5HRV9ERVNDUklQVE9SICAqUmFuZ2U7DQo+ICAgIFVJTlQzMiAg ICAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+DQo+IC0gIERFQlVHICgoRUZJX0RfSU5GTywg IkdldEF2YWlsYWJsZU1lbW9yeVJhbmdlcysrXG4iKSk7DQo+ICsgIERFQlVHICgoREVCVUdfSU5G TywgIkdldEF2YWlsYWJsZU1lbW9yeVJhbmdlcysrXG4iKSk7DQo+ICAgIGlmICgoKk51bVJhbmdl cykgPCBNQVhfUkFOR0VTKSB7DQo+ICAgICAgcmV0dXJuIEVGSV9CVUZGRVJfVE9PX1NNQUxMOw0K PiAgICB9DQo+IEBAIC0zMTIsNyArMjc5LDcgQEAgR2V0QXZhaWxhYmxlTWVtb3J5UmFuZ2VzICgN Cj4gICAgICAgICAgTWVtb3J5TWFwWypOdW1SYW5nZXNdLlJhbmdlTGVuZ3RoICAgICA9IFJhbmdl LT5TaXplOw0KPiAgICAgICAgICBNZW1vcnlNYXBbKk51bVJhbmdlc10uVHlwZSAgICAgICAgICAg ID0gRHVhbENoYW5uZWxEZHJNYWluTWVtb3J5Ow0KPiAgICAgICAgICAoKk51bVJhbmdlcykrKzsN Cj4gLSAgICAgICAgREVCVUcgKChFRklfRF9JTkZPLCAiIEJhc2U6MHglMDE2bFgsIFNpemU6IDB4 JTAxNmxYXG4iLCBSYW5nZS0+QmFzZSwNCj4gUmFuZ2UtPlNpemUpKTsNCj4gKyAgICAgICAgREVC VUcgKChERUJVR19JTkZPLCAiIEJhc2U6MHglMDE2bFgsIFNpemU6IDB4JTAxNmxYXG4iLCBSYW5n ZS0NCj4gPkJhc2UsIFJhbmdlLT5TaXplKSk7DQo+ICAgICAgICB9DQo+ICAgICAgfQ0KPiAgICB9 DQo+IEBAIC0zNDQsNyArMzExLDcgQEAgR2V0UmVzZXJ2ZWRNZW1vcnlSYW5nZXMgKA0KPiAgICBB TURfTUVNT1JZX1JBTkdFX0RFU0NSSVBUT1IgICpSYW5nZTsNCj4gICAgVUlOVDMyICAgICAgICAg ICAgICAgICAgICAgICBJbmRleDsNCj4NCj4gLSAgREVCVUcgKChFRklfRF9JTkZPLCAiR2V0UmVz ZXJ2ZWRNZW1vcnlSYW5nZXNcbiIpKTsNCj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiR2V0UmVz ZXJ2ZWRNZW1vcnlSYW5nZXNcbiIpKTsNCj4gICAgaWYgKCgqTnVtUmFuZ2VzKSA8IE1BWF9SQU5H RVMpIHsNCj4gICAgICByZXR1cm4gRUZJX0JVRkZFUl9UT09fU01BTEw7DQo+ICAgIH0NCj4gQEAg LTM2Niw3ICszMzMsNyBAQCBHZXRSZXNlcnZlZE1lbW9yeVJhbmdlcyAoDQo+ICAgICAgICAgICAg TWVtb3J5TWFwWypOdW1SYW5nZXNdLlJhbmdlTGVuZ3RoICAgICA9IFJhbmdlLT5TaXplOw0KPiAg ICAgICAgICAgIE1lbW9yeU1hcFsqTnVtUmFuZ2VzXS5UeXBlICAgICAgICAgICAgPQ0KPiBEdWFs Q2hhbm5lbERkclJlc2VydmVkTWVtb3J5Ow0KPiAgICAgICAgICAgICgqTnVtUmFuZ2VzKSsrOw0K PiAtICAgICAgICAgIERFQlVHICgoRUZJX0RfSU5GTywgIiBHZXRSZXNlcnZlZE1lbW9yeVJhbmdl cyBCYXNlOjB4JTAxNmxYLA0KPiBTaXplOiAweCUwMTZsWFxuIiwgUmFuZ2UtPkJhc2UsIFJhbmdl LT5TaXplKSk7DQo+ICsgICAgICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiIEdldFJlc2VydmVk TWVtb3J5UmFuZ2VzIEJhc2U6MHglMDE2bFgsDQo+IFNpemU6IDB4JTAxNmxYXG4iLCBSYW5nZS0+ QmFzZSwgUmFuZ2UtPlNpemUpKTsNCj4gICAgICAgICAgfQ0KPg0KPiAgICAgICAgICBpZiAoUmFu Z2UtPkF0dHJpYnV0ZSA9PSBBTURfTUVNT1JZX0FUVFJJQlVURV9VTUEpIHsNCj4gQEAgLTM3NSw3 ICszNDIsNyBAQCBHZXRSZXNlcnZlZE1lbW9yeVJhbmdlcyAoDQo+ICAgICAgICAgICAgTWVtb3J5 TWFwWypOdW1SYW5nZXNdLlJhbmdlTGVuZ3RoICAgICA9IFJhbmdlLT5TaXplOw0KPiAgICAgICAg ICAgIE1lbW9yeU1hcFsqTnVtUmFuZ2VzXS5UeXBlICAgICAgICAgICAgPQ0KPiBEdWFsQ2hhbm5l bERkclJlc2VydmVkTWVtb3J5Ow0KPiAgICAgICAgICAgICgqTnVtUmFuZ2VzKSsrOw0KPiAtICAg ICAgICAgIERFQlVHICgoRUZJX0RfSU5GTywgIiBHZXRSZXNlcnZlZE1lbW9yeVJhbmdlcyBCYXNl OjB4JTAxNmxYLA0KPiBTaXplOiAweCUwMTZsWFxuIiwgUmFuZ2UtPkJhc2UsIFJhbmdlLT5TaXpl KSk7DQo+ICsgICAgICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiIEdldFJlc2VydmVkTWVtb3J5 UmFuZ2VzIEJhc2U6MHglMDE2bFgsDQo+IFNpemU6IDB4JTAxNmxYXG4iLCBSYW5nZS0+QmFzZSwg UmFuZ2UtPlNpemUpKTsNCj4gICAgICAgICAgfQ0KPiAgICAgICAgfQ0KPiAgICAgIH0NCj4gZGlm ZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3Jt SW5pdFBlaS9QbGF0Zm9ybUluaXQuYw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5p dmVyc2FsL1BsYXRmb3JtSW5pdFBlaS9QbGF0Zm9ybUluaXQuYw0KPiBpbmRleCA0ZmY1N2RmY2Ex Li43ODIzZDMxZTJjIDEwMDY0NA0KPiAtLS0gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1Vu aXZlcnNhbC9QbGF0Zm9ybUluaXRQZWkvUGxhdGZvcm1Jbml0LmMNCj4gKysrDQo+IGIvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvUGxhdGZvcm1Jbml0UGVpL1BsYXRmb3JtSW5p dC5jDQo+IEBAIC0xLDMzICsxLDE4IEBADQo+ICAvKiogQGZpbGUNCj4gICAgSW1wbGVtZW50cyBQ bGF0Zm9ybWluaXQuQw0KPiArICBUaGlzIFBFSU0gaW5pdGlhbGl6ZSBwbGF0Zm9ybSBmb3IgTVJD LCBmb2xsb3dpbmcgYWN0aW9uIGlzIHBlcmZvcm1lZCwNCj4gKyAgICAxLiBJbml0aXpsdWl6ZSBH TUNIDQo+ICsgICAgMi4gRGV0ZWN0IGJvb3QgbW9kZQ0KPiArICAgIDMuIERldGVjdCB2aWRlbyBh ZGFwdGVyIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIG5lZWQgcHJlIGFsbG9jYXRlZA0KPiBtZW1v cnkNCj4gKyAgICA0LiBDYWxscyBNUkMgdG8gaW5pdGlhbGl6ZSBtZW1vcnkgYW5kIGluc3RhbGwg YSBQUEkgbm90aWZ5IHRvIGRvIHBvc3QNCj4gbWVtb3J5IGluaXRpYWxpemF0aW9uLg0KPiArICAg ICAgIFRoaXMgZmlsZSBjb250YWlucyB0aGUgbWFpbiBlbnRyeXBvaW50IG9mIHRoZSBQRUlNLg0K Pg0KPiAgICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxNsOv wrzFkkludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoqLw0KPg0K PiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIg dGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+IC0vKiogQGZpbGUNCj4gLVRoaXMgUEVJ TSBpbml0aWFsaXplIHBsYXRmb3JtIGZvciBNUkMsIGZvbGxvd2luZyBhY3Rpb24gaXMgcGVyZm9y bWVkLA0KPiAtMS4gSW5pdGl6bHVpemUgR01DSA0KPiAtMi4gRGV0ZWN0IGJvb3QgbW9kZQ0KPiAt My4gRGV0ZWN0IHZpZGVvIGFkYXB0ZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgbmVlZCBwcmUg YWxsb2NhdGVkDQo+IG1lbW9yeQ0KPiAtNC4gQ2FsbHMgTVJDIHRvIGluaXRpYWxpemUgbWVtb3J5 IGFuZCBpbnN0YWxsIGEgUFBJIG5vdGlmeSB0byBkbyBwb3N0IG1lbW9yeQ0KPiBpbml0aWFsaXph dGlvbi4NCj4gLVRoaXMgZmlsZSBjb250YWlucyB0aGUgbWFpbiBlbnRyeXBvaW50IG9mIHRoZSBQ RUlNLg0KPiAtDQo+IC1Db3B5cmlnaHQgKGMpIDIwMTMgLSAyMDE2IEludGVsIENvcnBvcmF0aW9u Lg0KPiAtDQo+IC1UaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ IC1hcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucyBvZiB0aGUgQlNEDQo+IExpY2Vuc2UNCj4gLXdoaWNoIGFjY29tcGFuaWVzIHRoaXMg ZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91 bmQgYXQNCj4gLWh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAN Cj4gLQ0KPiAtVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNF IE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+IC1XSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVT RU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiAt DQo+IC0qKi8NCj4gLQ0KPiAgI2luY2x1ZGUgIkNvbW1vbkhlYWRlci5oIg0KPiAgI2RlZmluZSBQ RUlfU1RBTExfUkVTT0xVVElPTiAgMQ0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvUGxhdGZvcm1Jbml0UGVpL1BsYXRmb3JtSW5pdC5pbmYN Cj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9QbGF0Zm9ybUluaXRQZWkv UGxhdGZvcm1Jbml0LmluZg0KPiBpbmRleCAwOTQxYjA5ZGUzLi44NDE1ZWFkYjYwIDEwMDY0NA0K PiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9QbGF0Zm9ybUlu aXRQZWkvUGxhdGZvcm1Jbml0LmluZg0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL1VuaXZlcnNhbC9QbGF0Zm9ybUluaXRQZWkvUGxhdGZvcm1Jbml0LmluZg0KPiBAQCAtMSwy NCArMSwxMiBAQA0KPiAgIyMgQGZpbGUNCj4gICMgUGxhdGZvcm0gSW5pdCBNb2R1bGUNCj4gKyMg VGhpcyBpcyB0aGUgUGxhdGZvcm0gUEVJTSB0byBpbml0aWFsaXplIHdob2xlIHBsYXRmb3JtIG9u IFBFSSBwaGFzZS4NCj4gICMNCj4gICMgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3Jv IERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsjIENvcHlyaWdodCAo YykgMjAxMyAtIDIwMTbDr8K8xZJJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ICAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQo+ICAjDQo+ICAjIw0KPiAtIyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1 Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC0jIyBAZmlsZQ0KPiAtIyBU aGlzIGlzIHRoZSBQbGF0Zm9ybSBQRUlNIHRvIGluaXRpYWxpemUgd2hvbGUgcGxhdGZvcm0gb24g UEVJIHBoYXNlLg0KPiAtIyBDb3B5cmlnaHQgKGMpIDIwMTMgLSAyMDE2IEludGVsIENvcnBvcmF0 aW9uLg0KPiAtIw0KPiAtIyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJp YWxzDQo+IC0jIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1z IGFuZCBjb25kaXRpb25zIG9mIHRoZQ0KPiBCU0QgTGljZW5zZQ0KPiAtIyB3aGljaCBhY2NvbXBh bmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5 IGJlDQo+IGZvdW5kIGF0DQo+IC0jIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2Qt bGljZW5zZS5waHANCj4gLSMNCj4gLSMgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIg VEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gQkFTSVMsDQo+IC0jIFdJVEhPVVQgV0FS UkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNT IE9SIElNUExJRUQuDQo+IC0jDQo+IC0jIw0KPg0KPiAgW0RlZmluZXNdDQo+ICAgIElORl9WRVJT SU9OICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMDUNCj4gZGlmZiAtLWdpdCBhL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3JtSW5pdFBlaS9TdGFsbC5jDQo+ IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvUGxhdGZvcm1Jbml0UGVpL1N0 YWxsLmMNCj4gaW5kZXggM2M3ZWY0ZTk2NS4uNzdjMjM5ZTI4NyAxMDA2NDQNCj4gLS0tIGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvUGxhdGZvcm1Jbml0UGVpL1N0YWxsLmMN Cj4gKysrIGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvUGxhdGZvcm1Jbml0 UGVpL1N0YWxsLmMNCj4gQEAgLTEsNDYgKzEsMTMgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBJbXBs ZW1lbnRzIFN0YWxsLkMNCj4gKyAgUHJvZHVjZSBTdGFsbCBQcGkuDQo+DQo+ICAgIENvcHlyaWdo dCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiArICBDb3B5cmlnaHQgKGMpIDIwMDQgIC0gMjAxNCwgSW50ZWwgQ29ycG9yYXRp b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiAgKiovDQo+DQo+IC0vKiBUaGlzIGZpbGUgaW5j bHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vu c2UuICovDQo+IC0NCj4gLS8qKiBAZmlsZQ0KPiAtDQo+IC0gIENvcHlyaWdodCAoYykgMjAwNCAg LSAyMDE0LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0N Cj4gLQ0KPiAtICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFy ZSBsaWNlbnNlZCBhbmQgbWFkZQ0KPiBhdmFpbGFibGUgdW5kZXINCj4gLQ0KPiAtICB0aGUgdGVy bXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlIHRoYXQgYWNjb21wYW5pZXMgdGhp cw0KPiBkaXN0cmlidXRpb24uDQo+IC0NCj4gLSAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5z ZSBtYXkgYmUgZm91bmQgYXQNCj4gLQ0KPiAtICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5z ZXMvYnNkLWxpY2Vuc2UucGhwLg0KPiAtDQo+IC0NCj4gLQ0KPiAtICBUSEUgUFJPR1JBTSBJUyBE SVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywN Cj4gLQ0KPiAtICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBL SU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiAtDQo+IC0NCj4gLQ0KPiAtDQo+ IC0NCj4gLQ0KPiAtTW9kdWxlIE5hbWU6DQo+IC0NCj4gLSAgU3RhbGwuYw0KPiAtDQo+IC1BYnN0 cmFjdDoNCj4gLQ0KPiAtICBQcm9kdWNlIFN0YWxsIFBwaS4NCj4gLQ0KPiAtLS0qLw0KPiAgI2lu Y2x1ZGUgPFBpUGVpLmg+DQo+ICAjaW5jbHVkZSA8UHBpL1N0YWxsLmg+DQo+ICAjaW5jbHVkZSA8 TGlicmFyeS9Jb0xpYi5oPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hC b2FyZC9Vbml2ZXJzYWwvUGxhdGZvcm1TbWJpb3NEeGUvUGxhdGZvcm1TbQ0KPiBiaW9zRHhlLmMN Cj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9QbGF0Zm9ybVNtYmlvc0R4 ZS9QbGF0Zm9ybVNtDQo+IGJpb3NEeGUuYw0KPiBpbmRleCAxNDEzMjVjMzQ2Li5jNGRlNmNhMTMz IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9Q bGF0Zm9ybVNtYmlvc0R4ZS9QbGF0Zm9ybVNtDQo+IGJpb3NEeGUuYw0KPiArKysNCj4gYi9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZlcnNhbC9QbGF0Zm9ybVNtYmlvc0R4ZS9QbGF0Zm9y bVNtDQo+IGJpb3NEeGUuYw0KPiBAQCAtMSwxNSArMSw3IEBADQo+IC0vKiogQGZpbGUNCj4gLSAg SW1wbGVtZW50cyBWYW5Hb2doIGJvYXJkIFNtYmlvcyBpbmZvcm1hdGlvbg0KPiAtDQo+IC0gIENv cHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KPiAtKiovDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5 IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBA ZmlsZQ0KPiAgICBTdGF0aWMgU01CSU9TIFRhYmxlIGZvciBwbGF0Zm9ybQ0KPg0KPiAtDQo+ICsg IENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBDb3B5cmlnaHQgKGMpIDIwMTIsIEFwcGxlIEluYy4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQo+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL1VuaXZlcnNhbC9QbGF0Zm9ybVNtYmlvc0R4ZS9QbGF0Zm9ybVNtDQo+IGJpb3NEeGUu aW5mDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9Vbml2ZXJzYWwvUGxhdGZvcm1TbWJp b3NEeGUvUGxhdGZvcm1TbQ0KPiBiaW9zRHhlLmluZg0KPiBpbmRleCAwNTg4MTM0OTZkLi5lMTZh NDQ4ZDdhIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1VuaXZl cnNhbC9QbGF0Zm9ybVNtYmlvc0R4ZS9QbGF0Zm9ybVNtDQo+IGJpb3NEeGUuaW5mDQo+ICsrKw0K PiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3JtU21iaW9zRHhl L1BsYXRmb3JtU20NCj4gYmlvc0R4ZS5pbmYNCj4gQEAgLTEsMTQgKzEsNyBAQA0KPiAtIyMgQGZp bGUNCj4gLSMgUGxhdGZvcm0gU21iaW9zIER4ZSBkcml2ZXINCj4gLSMNCj4gLSMgQ29weXJpZ2h0 IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+IC0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQo+IC0jIw0KPiAtIyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hl ZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC0NCj4gICMjIEBmaWxlDQo+ICAjIFBs YXRmb3JtIFNNQklPUyBkcml2ZXIgdGhhdCBmaWxscyBpbiBTTUJJT1MgdGFibGUgZW50cmllcy4N Cj4gICMNCj4gKyMgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIElu Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAjIENvcHlyaWdodCAoYykgMjAxMiwgQXBw bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiAgIyBQb3J0aW9ucyBjb3B5cmlnaHQgKGMp IDIwMDYgLSAyMDEwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiByZXNlcnZlZC48 QlI+DQo+ICAjDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1Vu aXZlcnNhbC9QbGF0Zm9ybVNtYmlvc0R4ZS9TbWJpb3NUYWJsDQo+IGUuYw0KPiBiL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3JtU21iaW9zRHhlL1NtYmlvc1RhYmwN Cj4gZS5jDQo+IGluZGV4IDI5YjE2MzgwYTEuLjI3NzBjZDIzZjMgMTAwNjQ0DQo+IC0tLQ0KPiBh L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5pdmVyc2FsL1BsYXRmb3JtU21iaW9zRHhlL1Nt Ymlvc1RhYmwNCj4gZS5jDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVW5p dmVyc2FsL1BsYXRmb3JtU21iaW9zRHhlL1NtYmlvc1RhYmwNCj4gZS5jDQo+IEBAIC0xLDEyICsx LDUgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBJbXBsZW1lbnRzIFZhbkdvZ2ggYm9hcmQgU21iaW9z IHRhYmxlcw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZp Y2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtKiovDQo+IC0vKiBUaGlzIGZpbGUgaW5j bHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vu c2UuICovDQo+IC0NCj4gLS8qKiBAZmlsZQ0KPiAgICBTdGF0aWMgU01CSU9TIFRhYmxlIGZvciBw bGF0Zm9ybQ0KPg0KPiAgICBOb3RlIFNNQklPUyAyLjcuMSBSZXF1aXJlZCBzdHJ1Y3R1cmVzOg0K PiBAQCAtMjEsOSArMTQsOSBAQA0KPiAgICAgIE1lbW9yeSBBcnJheSBNYXBwZWQgQWRkcmVzcyAo VHlwZSAxOSkgLSBPbmUgcGVyIGNvbnRpZ3VvdXMgYmxvY2sgcGVyDQo+IFBoeXNpY2FsIE1lbXJv eSBBcnJheQ0KPiAgICAgIFN5c3RlbSBCb290IEluZm9ybWF0aW9uIChUeXBlIDMyKQ0KPg0KPiAr ICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDEyLCBBcHBsZSBJbmMuIEFs bCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+ICAqKi8NCj4NCj4gICNpbmNsdWRlIDxQaUR4ZS5oPg0K PiBAQCAtMTY2LDcgKzE1OSw3IEBAIFNNQklPU19UQUJMRV9UWVBFMyAgZ1NtYmlvc1R5cGUzVGVt cGxhdGUgPSB7DQo+ICAgIENoYXNzaXNTdGF0ZVNhZmUsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQb3dlclN1cHBseVN0YXRlOw0KPiAgICBD aGFzc2lzU3RhdGVTYWZlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gVGhlcm1hbFN0YXRlOw0KPiAgICBDaGFzc2lzU2VjdXJpdHlTdGF0dXNO b25lLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2VjdXJp dHlTdGF0dXM7DQo+IC0gIHsgMCwgMCwgMCwgMCB9LCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPZW1EZWZpbmVkWzRdOw0KPiArICB7IDAs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAg ICAgIDAsIDB9LCAvLyBPZW1EZWZpbmVkWzRdOw0KPiAgICAwLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGVpZ2h0 Ow0KPiAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyb2ZQb3dlckNvcmRzOw0KPiAgICAwLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gQ29udGFpbmVkRWxlbWVudENvdW50Ow0KPiBAQCAtMzYyLDcgKzM1NSw3IEBAIFNN QklPU19UQUJMRV9UWVBFMjMgIGdTbWJpb3NUeXBlMjNUZW1wbGF0ZSA9IHsNCj4NCj4gIFNNQklP U19UQUJMRV9UWVBFMzIgIGdTbWJpb3NUeXBlMzJUZW1wbGF0ZSA9IHsNCj4gICAgeyBFRklfU01C SU9TX1RZUEVfU1lTVEVNX0JPT1RfSU5GT1JNQVRJT04sIHNpemVvZg0KPiAoU01CSU9TX1RBQkxF X1RZUEUzMiksIDAgfSwNCj4gLSAgeyAwLCAwLCAwLCAwLCAwLCAwIH0sICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXJ2ZWRbNl07 DQo+ICsgIHsgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwfSwgLy8gUmVzZXJ2ZWRbNl07DQo+ICAg IEJvb3RJbmZvcm1hdGlvblN0YXR1c05vRXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIEJvb3RTdGF0dXMNCj4gIH07DQo+DQo+IGRpZmYgLS1n aXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvQXBwbGlj YXRpb24vVURLRmxhcw0KPiBoVXBkYXRlL1NwaUZsYXNoRGV2aWNlLmgNCj4gYi9QbGF0Zm9ybS9B TUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvQXBwbGljYXRpb24vVURLRmxhDQo+IHNo VXBkYXRlL1NwaUZsYXNoRGV2aWNlLmgNCj4gaW5kZXggODg0NmViNTM4MS4uZmU0ZDk5ZTgyYyAx MDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9u UGtnL0FwcGxpY2F0aW9uL1VES0ZsYXMNCj4gaFVwZGF0ZS9TcGlGbGFzaERldmljZS5oDQo+ICsr Kw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9BcHBsaWNh dGlvbi9VREtGbGENCj4gc2hVcGRhdGUvU3BpRmxhc2hEZXZpY2UuaA0KPiBAQCAtNiw4ICs2LDgg QEANCj4NCj4gICoqLw0KPg0KPiAtI2lmbmRlZiBfU1BJX0ZMQVNIX0RFVklDRV9IXw0KPiAtI2Rl ZmluZSBfU1BJX0ZMQVNIX0RFVklDRV9IXw0KPiArI2lmbmRlZiBTUElfRkxBU0hfREVWSUNFX0hf Xw0KPiArI2RlZmluZSBTUElfRkxBU0hfREVWSUNFX0hfXw0KPg0KPiAgI2luY2x1ZGUgPFBpRHhl Lmg+DQo+ICAjaW5jbHVkZSA8UHJvdG9jb2wvU3BpLmg+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0 Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvQXBwbGljYXRpb24vVURLRmxh cw0KPiBoVXBkYXRlL1VES0ZsYXNoVXBkYXRlLmMNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL1ZhbkdvZ2hDb21tb25Qa2cvQXBwbGljYXRpb24vVURLRmxhDQo+IHNoVXBkYXRlL1VES0Zs YXNoVXBkYXRlLmMNCj4gaW5kZXggMGYzYmIxNDlmOS4uMDQ5NzUwOWQwMyAxMDA2NDQNCj4gLS0t DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0FwcGxpY2F0 aW9uL1VES0ZsYXMNCj4gaFVwZGF0ZS9VREtGbGFzaFVwZGF0ZS5jDQo+ICsrKw0KPiBiL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9BcHBsaWNhdGlvbi9VREtGbGEN Cj4gc2hVcGRhdGUvVURLRmxhc2hVcGRhdGUuYw0KPiBAQCAtMSwxNSArMSw3IEBADQo+IC0vKiog QGZpbGUNCj4gLSAgSW1wbGVtZW50cyBVREtGbGFzaFVwZGF0ZS5jDQo+IC0NCj4gLSAgQ29weXJp Z2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+IC0NCj4gLSoqLw0KPiAtLy8gVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxs eSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLg0KPiAtDQo+ICAvKiogQGZp bGUNCj4gICAgUGxhdGZvcm0gRmxhc2ggQWNjZXNzIGxpYnJhcnkuDQo+DQo+ICsgIENvcHlyaWdo dCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiAgICBDb3B5cmlnaHQgKGMpIDIwMTYgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlv bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvQXBwbGljYXRpb24vVURLRmxhcw0KPiBoVXBk YXRlL1VES0ZsYXNoVXBkYXRlLmgNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1Zhbkdv Z2hDb21tb25Qa2cvQXBwbGljYXRpb24vVURLRmxhDQo+IHNoVXBkYXRlL1VES0ZsYXNoVXBkYXRl LmgNCj4gaW5kZXggYTA5MDRmYjg2My4uZWQxNWE0NDg5YSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0FwcGxpY2F0aW9uL1VES0Zs YXMNCj4gaFVwZGF0ZS9VREtGbGFzaFVwZGF0ZS5oDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9BcHBsaWNhdGlvbi9VREtGbGENCj4gc2hVcGRh dGUvVURLRmxhc2hVcGRhdGUuaA0KPiBAQCAtNiw4ICs2LDggQEANCj4NCj4gICoqLw0KPg0KPiAt I2lmbmRlZiBfVURLX0ZMQVNIX1VQREFURV9IDQo+IC0jZGVmaW5lIF9VREtfRkxBU0hfVVBEQVRF X0gNCj4gKyNpZm5kZWYgVURLX0ZMQVNIX1VQREFURV9IXw0KPiArI2RlZmluZSBVREtfRkxBU0hf VVBEQVRFX0hfDQo+DQo+ICAjaW5jbHVkZSA8VWVmaS5oPg0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0ZsYXNoVXBkYXRlL0Zs YXNoVQ0KPiBwZGF0ZUNvbW1vbi5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5H b2doQ29tbW9uUGtnL0ZsYXNoVXBkYXRlL0ZsYXNoVQ0KPiBwZGF0ZUNvbW1vbi5oDQo+IGluZGV4 IDU5M2E0NGI2MWEuLjYxNjAzNWI4MmQgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9GbGFzaFVwZGF0ZS9GbGFzaFUNCj4gcGRhdGVD b21tb24uaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21t b25Qa2cvRmxhc2hVcGRhdGUvRmxhc2hVDQo+IHBkYXRlQ29tbW9uLmgNCj4gQEAgLTYsOCArNiw4 IEBADQo+DQo+ICAqKi8NCj4NCj4gLSNpZm5kZWYgX0ZMQVNIX1VQREFURV9DT01NT05fSF8NCj4g LSNkZWZpbmUgX0ZMQVNIX1VQREFURV9DT01NT05fSF8NCj4gKyNpZm5kZWYgRkxBU0hfVVBEQVRF X0NPTU1PTl9IX18NCj4gKyNkZWZpbmUgRkxBU0hfVVBEQVRFX0NPTU1PTl9IX18NCj4NCj4gICNp bmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+ICAjaW5jbHVkZSA8TGlicmFyeS9VZWZpQm9v dFNlcnZpY2VzVGFibGVMaWIuaD4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvVmFuR29naENvbW1vblBrZy9GbGFzaFVwZGF0ZS9GbGFzaFUNCj4gcGRhdGVTbW0u aA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9GbGFzaFVw ZGF0ZS9GbGFzaFUNCj4gcGRhdGVTbW0uaA0KPiBpbmRleCBkNTJiMTI0NWI4Li4xNGJkMzdlZDJl IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21t b25Qa2cvRmxhc2hVcGRhdGUvRmxhc2hVDQo+IHBkYXRlU21tLmgNCj4gKysrDQo+IGIvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0ZsYXNoVXBkYXRlL0ZsYXNoVQ0K PiBwZGF0ZVNtbS5oDQo+IEBAIC02LDggKzYsOCBAQA0KPg0KPiAgKiovDQo+DQo+IC0jaWZuZGVm IF9GTEFTSF9VUERBVEVfU01NX0hfDQo+IC0jZGVmaW5lIF9GTEFTSF9VUERBVEVfU01NX0hfDQo+ ICsjaWZuZGVmIEZMQVNIX1VQREFURV9TTU1fSF9fDQo+ICsjZGVmaW5lIEZMQVNIX1VQREFURV9T TU1fSF9fDQo+DQo+ICAjaW5jbHVkZSA8TGlicmFyeS9TbW1TZXJ2aWNlc1RhYmxlTGliLmg+DQo+ ICAjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0ZsYXNoVXBkYXRlL1BjUnRjLg0K PiBoDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0ZsYXNo VXBkYXRlL1BjUnRjLg0KPiBoDQo+IGluZGV4IDMwZTllMTY4Y2QuLjA4Y2FmNDI1N2IgMTAwNjQ0 DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9G bGFzaFVwZGF0ZS9QY1J0Yy4NCj4gaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL1ZhbkdvZ2hDb21tb25Qa2cvRmxhc2hVcGRhdGUvUGNSdGMuDQo+IGgNCj4gQEAgLTEsMzAg KzEsMTUgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBJbXBsZW1lbnRzIEFNRCBQY1J0Yw0KPiArICBI ZWFkZXIgZmlsZSBmb3IgcmVhbCB0aW1lIGNsb2NrIGRyaXZlci4NCj4NCj4gICAgQ29weXJpZ2h0 IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ICsgIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gLSoqLw0KPiAtLy8gVGhpcyBmaWxlIGluY2x1ZGVz IGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLg0K PiAtDQo+IC0vKiogQGZpbGUNCj4gLSAgSGVhZGVyIGZpbGUgZm9yIHJlYWwgdGltZSBjbG9jayBk cml2ZXIuDQo+IC0NCj4gLUNvcHlyaWdodCAoYykgMjAwNiAtIDIwMTYsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLUNvcHlyaWdodCAoYykgMjAxNywgQU1E IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0NCj4gLVRoaXMgcHJvZ3JhbSBhbmQg dGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gLWFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFp bGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QNCj4gTGljZW5z ZQ0KPiAtd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0 IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZCBhdA0KPiAtaHR0cDovL29wZW5zb3VyY2Uu b3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiAtDQo+IC1USEUgUFJPR1JBTSBJUyBESVNU UklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4g LVdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhF Ug0KPiBFWFBSRVNTIE9SIElNUExJRUQuDQo+IC0NCj4gICoqLw0KPg0KPiAtI2lmbmRlZiBfUlRD X0hfDQo+IC0jZGVmaW5lIF9SVENfSF8NCj4gKyNpZm5kZWYgUlRDX0hfXw0KPiArI2RlZmluZSBS VENfSF9fDQo+DQo+ICAjaW5jbHVkZSA8VWVmaS5oPg0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0Z2YlNlcnZpY2VzL0Z2Yklu Zm8NCj4gLmMNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cv RnZiU2VydmljZXMvRnZiSW5mbw0KPiAuYw0KPiBpbmRleCBkOTgwYmI2NjUzLi5jMGJlNjM1ODY0 IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21t b25Qa2cvRnZiU2VydmljZXMvRnZiSW5mbw0KPiAuYw0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvRnZiU2VydmljZXMvRnZiSW5mbw0KPiAuYw0K PiBAQCAtMSwxNyArMSw5IEBADQo+IC0vKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBGdmJJbmZv DQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIElu Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtLy8gVGhpcyBmaWxlIGluY2x1 ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNl Lg0KPiAtDQo+ICAvKiogQGZpbGUNCj4gIERlZmluZXMgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBpcyB0 aGUgdm9sdW1lIGhlYWRlciBmb3VuZC5UaGVzZSBkYXRhIGlzIGludGVudA0KPiAgdG8gZGVjb3Vw bGUgRlZCIGRyaXZlciB3aXRoIEZWIGhlYWRlci4NCj4NCj4gLUNvcHlyaWdodCAoYykgMjAxMyBJ bnRlbCBDb3Jwb3JhdGlvbi4NCj4gK0NvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBE ZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArQ29weXJpZ2h0IChjKSAy MDEzIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4NCj4gIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+IGRpZmYgLS1n aXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvRnZiU2Vy dmljZXMvRndCbG9jDQo+IGtTZXJ2aWNlLmMNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJk L1ZhbkdvZ2hDb21tb25Qa2cvRnZiU2VydmljZXMvRndCbG9jDQo+IGtTZXJ2aWNlLmMNCj4gaW5k ZXggNTU2NWI2OWRlNS4uZjUxNGFkNzcyYSAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0Z2YlNlcnZpY2VzL0Z3QmxvYw0KPiBrU2Vy dmljZS5jDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1v blBrZy9GdmJTZXJ2aWNlcy9Gd0Jsb2MNCj4ga1NlcnZpY2UuYw0KPiBAQCAtMiwxOCArMiw5IEBA DQo+ICAgIEltcGxlbWVudHMgRnZiU2VydmljZXNTbW0NCj4NCj4gICAgQ29weXJpZ2h0IChDKSAy MDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ICsgIENvcHlyaWdodCAoYykgMjAxMy0yMDE2IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4NCj4gLSoqLw0KPiAtLy8gVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3Jp Z2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLg0KPiAtDQo+IC0v KiogQGZpbGUNCj4gLQ0KPiAtQ29weXJpZ2h0IChjKSAyMDEzLTIwMTYgSW50ZWwgQ29ycG9yYXRp b24uDQo+IC0NCj4gLVNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQo+IC0NCj4gLQ0KPiAgKiovDQo+DQo+ICAjaWZkZWYgX01TQ19WRVINCj4gQEAgLTM0OCw3ICsz MzksNiBAQCBGdmJSZWFkQmxvY2sgKA0KPiAgICBJTiBCT09MRUFOICAgICAgICAgIFZpcnR1YWwN Cj4gICAgKQ0KPg0KPiAtDQo+ICB7DQo+ICAgIEVGSV9GVkJfQVRUUklCVVRFU18yICBBdHRyaWJ1 dGVzOw0KPiAgICBVSU5UTiAgICAgICAgICAgICAgICAgTGJhQWRkcmVzczsNCj4gQEAgLTczMCw3 ICs3MjAsNiBAQCBGdmJQcm90b2NvbEdldEJsb2NrU2l6ZSAoDQo+ICAgIE9VVCBVSU5UTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpOdW1PZkJsb2Nrcw0KPiAgICApDQo+DQo+ IC0NCj4gIHsNCj4gICAgRUZJX0ZXX1ZPTF9CTE9DS19ERVZJQ0UgICpGdmJEZXZpY2U7DQo+DQo+ IEBAIC0xMjExLDI0ICsxMjAwLDI1IEBAIEZsYXNoRmRXcml0ZSAoDQo+ICAgICkNCj4gIHsNCj4g ICAgRUZJX1NUQVRVUyAgU3RhdHVzOw0KPiArDQo+ICAgIFN0YXR1cyA9IEVGSV9TVUNDRVNTOw0K Pg0KPiAgICAvLw0KPiAgICAvLyBUT0RPOiAgU3VnZ2VzdGVkIHRoYXQgdGhpcyBjb2RlIGJlICJj cml0aWNhbCBzZWN0aW9uIg0KPiAgICAvLw0KPiAgICBXcml0ZUFkZHJlc3MgLT0gKFBjZEdldDMy IChQY2RGbGFzaEFyZWFCYXNlQWRkcmVzcykpOw0KPiAtICBTdGF0dXMgPSBtRnZiTW9kdWxlR2xv YmFsLT5TcGlQcm90b2NvbC0+RXhlY3V0ZSAoDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1GdmJNb2R1bGVHbG9iYWwtPlNwaVByb3RvY29sLA0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUElfT1BDT0RFX1dSSVRF X0lOREVYLCAvLyBPcGNvZGVJbmRleA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvLyBQcmVmaXhPcGNvZGVJbmRl eA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLCAg ICAgICAgICAgICAgICAgICAvLyBEYXRhQ3ljbGUNCj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVFJVRSwgICAgICAgICAgICAgICAgICAgLy8gQXRvbWljDQo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsICAgICAg ICAgICAgICAgICAgIC8vIFNoaWZ0T3V0DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFdyaXRlQWRkcmVzcywgICAgICAgICAgIC8vIEFkZHJlc3MNCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVJTlQzMikoKk51bUJ5 dGVzKSwgICAgLy8gRGF0YSBOdW1iZXINCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQnVmZmVyLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbnVtU3BpUmVnaW9uQmlvcw0KPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApOw0KPiArICBTdGF0dXMgICAgICAgID0gbUZ2Yk1vZHVs ZUdsb2JhbC0+U3BpUHJvdG9jb2wtPkV4ZWN1dGUgKA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUZ2Yk1vZHVsZUdsb2JhbC0+U3BpUHJvdG9j b2wsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTUElfT1BDT0RFX1dSSVRFX0lOREVYLCAvLyBPcGNvZGVJbmRleA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAg ICAgICAgLy8gUHJlZml4T3Bjb2RlSW5kZXgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsICAgICAgICAgICAgICAgICAgIC8vIERhdGFD eWNsZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVFJVRSwgICAgICAgICAgICAgICAgICAgLy8gQXRvbWljDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLCAgICAgICAgICAgICAgICAg ICAvLyBTaGlmdE91dA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgV3JpdGVBZGRyZXNzLCAgICAgICAgICAgLy8gQWRkcmVzcw0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVJTlQzMikoKk51 bUJ5dGVzKSwgICAgLy8gRGF0YSBOdW1iZXINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVudW1TcGlSZWdpb25CaW9zDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KPg0KPiAg ICBBc21XYmludmQgKCk7DQo+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvRnZiU2VydmljZXMvRndCbG9jDQo+IGtTZXJ2aWNlLmgN Cj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvRnZiU2Vydmlj ZXMvRndCbG9jDQo+IGtTZXJ2aWNlLmgNCj4gaW5kZXggMjI0YWMyMzExMy4uYTYwNGYzYmU0YiAx MDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9u UGtnL0Z2YlNlcnZpY2VzL0Z3QmxvYw0KPiBrU2VydmljZS5oDQo+ICsrKw0KPiBiL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9GdmJTZXJ2aWNlcy9Gd0Jsb2MNCj4g a1NlcnZpY2UuaA0KPiBAQCAtMSwyNCArMSwxNSBAQA0KPiAgLyoqIEBmaWxlDQo+ICAgIEltcGxl bWVudHMgRnZiU2VydmljZXNTbW0NCj4gKyAgRmlybXdhcmUgdm9sdW1lIGJsb2NrIGRyaXZlciBm b3IgU1BJIGRldmljZQ0KPg0KPiAgICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8g RGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChj KSAyMDEzLTIwMTUgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiAg KiovDQo+IC0vLyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1 bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+DQo+IC0vKiogQGZpbGUNCj4gLUZpcm13YXJl IHZvbHVtZSBibG9jayBkcml2ZXIgZm9yIFNQSSBkZXZpY2UNCj4gLQ0KPiAtQ29weXJpZ2h0IChj KSAyMDEzLTIwMTUgSW50ZWwgQ29ycG9yYXRpb24uDQo+IC0NCj4gLVNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLQ0KPiAtKiovDQo+IC0NCj4gLSNp Zm5kZWYgX0ZXX0JMT0NLX1NFUlZJQ0VfU01NX0gNCj4gLSNkZWZpbmUgX0ZXX0JMT0NLX1NFUlZJ Q0VfU01NX0gNCj4gKyNpZm5kZWYgRldfQkxPQ0tfU0VSVklDRV9TTU1fSF8NCj4gKyNkZWZpbmUg RldfQkxPQ0tfU0VSVklDRV9TTU1fSF8NCj4NCj4gIC8vDQo+ICAvLyBUaGUgTGlicmFyeSBjbGFz c2VzIHRoaXMgbW9kdWxlIGNvbnN1bWVzDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvRnZiU2VydmljZXMvUGxhdGZvcg0KPiBtU21t U3BpLmluZg0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9G dmJTZXJ2aWNlcy9QbGF0Zm9yDQo+IG1TbW1TcGkuaW5mDQo+IGluZGV4IGUxNzlmOTlmMmEuLjBh NjIwNjYyZDIgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFu R29naENvbW1vblBrZy9GdmJTZXJ2aWNlcy9QbGF0Zm9yDQo+IG1TbW1TcGkuaW5mDQo+ICsrKw0K PiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9GdmJTZXJ2aWNl cy9QbGF0Zm9yDQo+IG1TbW1TcGkuaW5mDQo+IEBAIC0xLDIyICsxLDEzIEBADQo+ICAjIyBAZmls ZQ0KPiAgIyAgRnZiU2VydmljZXNTbW0NCj4gKyMgIENvbXBvbmVudCBkZXNjcmlwdGlvbiBmaWxl IGZvciBTcGlGdmJTZXJ2aWNlcyBNb2R1bGUNCj4gICMNCj4gICMgQ29weXJpZ2h0IChDKSAyMDI0 IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ ICsjIENvcHlyaWdodCAoYykgMjAxMy0yMDE1IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS1QYXRlbnQNCj4gICMNCj4gICMjDQo+DQo+IC0jIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9y aWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4gLSMjIEBm aWxlDQo+IC0jIENvbXBvbmVudCBkZXNjcmlwdGlvbiBmaWxlIGZvciBTcGlGdmJTZXJ2aWNlcyBN b2R1bGUNCj4gLSMNCj4gLSMgQ29weXJpZ2h0IChjKSAyMDEzLTIwMTUgSW50ZWwgQ29ycG9yYXRp b24uDQo+IC0jDQo+IC0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+IC0jDQo+IC0jIw0KPiAtDQo+IC0NCj4gIFtEZWZpbmVzXQ0KPiAgICBJTkZfVkVSU0lP TiAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDA1DQo+ICAgIEJBU0VfTkFNRSAgICAgICAg ICAgICAgICAgICAgICA9IEZ2YlNlcnZpY2VzU21tDQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9y bS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvSW5jbHVkZS9MaWJyYXJ5L1NtDQo+ IGJpb3NMaWIuaA0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBr Zy9JbmNsdWRlL0xpYnJhcnkvU20NCj4gYmlvc0xpYi5oDQo+IGluZGV4IDU4ODBlYWMzNmUuLjMx NGYwNDQ4ZmQgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFu R29naENvbW1vblBrZy9JbmNsdWRlL0xpYnJhcnkvU20NCj4gYmlvc0xpYi5oDQo+ICsrKw0KPiBi L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9JbmNsdWRlL0xpYnJh cnkvU20NCj4gYmlvc0xpYi5oDQo+IEBAIC0xLDI0ICsxLDE2IEBADQo+ICAvKiogQGZpbGUNCj4g ICAgSW1wbGVtZW50cyBBTUQgU21iaW9zTGliLmgNCj4gLQ0KPiAtICBDb3B5cmlnaHQgKEMpIDIw MjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gLSAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0K PiAtKiovDQo+IC0vLyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hl ZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC0vKiogQGZpbGUNCj4gICAgUHJvdmlk ZXMgbGlicmFyeSBmdW5jdGlvbnMgZm9yIGNvbW1vbiBTTUJJT1Mgb3BlcmF0aW9ucy4gT25seSBh dmFpbGFibGUNCj4gdG8gRFhFDQo+ICAgIGFuZCBVRUZJIG1vZHVsZSB0eXBlcy4NCj4NCj4gLQ0K PiAtQ29weXJpZ2h0IChjKSAyMDEyLCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ IC1Qb3J0aXRpb25zIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTEsIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzDQo+IHJlc2VydmVkLjxCUj4NCj4gLVNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsgIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBN aWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArICBDb3B5cmln aHQgKGMpIDIwMTIsIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC48QlI+DQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+DQo+ICAqKi8NCj4NCj4gLSNpZm5kZWYgX1NNQklPU19MSUJfSF9fDQo+IC0jZGVm aW5lIF9TTUJJT1NfTElCX0hfXw0KPiArI2lmbmRlZiBTTUJJT1NfTElCX0hfX18NCj4gKyNkZWZp bmUgU01CSU9TX0xJQl9IX19fDQo+DQo+ICAjaW5jbHVkZSA8SW5kdXN0cnlTdGFuZGFyZC9TbUJp b3MuaD4NCj4gICNpbmNsdWRlIDxQcm90b2NvbC9TbWJpb3MuaD4NCj4gZGlmZiAtLWdpdA0KPiBh L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9JbmNsdWRlL0xpYnJh cnkvU3BpRg0KPiBsYXNoRGV2aWNlTGliLmgNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJk L1ZhbkdvZ2hDb21tb25Qa2cvSW5jbHVkZS9MaWJyYXJ5L1NwaUYNCj4gbGFzaERldmljZUxpYi5o DQo+IGluZGV4IGUxZmIxYzMxZDkuLmE2ZWMwNzdmMDUgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9JbmNsdWRlL0xpYnJhcnkvU3Bp Rg0KPiBsYXNoRGV2aWNlTGliLmgNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9WYW5Hb2doQ29tbW9uUGtnL0luY2x1ZGUvTGlicmFyeS9TcGlGDQo+IGxhc2hEZXZpY2VMaWIu aA0KPiBAQCAtNiw4ICs2LDggQEANCj4NCj4gICoqLw0KPg0KPiAtI2lmbmRlZiBfU1BJX0ZMQVNI X0RFVklDRV9MSUJfSF8NCj4gLSNkZWZpbmUgX1NQSV9GTEFTSF9ERVZJQ0VfTElCX0hfDQo+ICsj aWZuZGVmIFNQSV9GTEFTSF9ERVZJQ0VfTElCX0hfXw0KPiArI2RlZmluZSBTUElfRkxBU0hfREVW SUNFX0xJQl9IX18NCj4NCj4gICNpbmNsdWRlIDxQcm90b2NvbC9TcGkuaD4NCj4NCj4gZGlmZiAt LWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9JbmNs dWRlL090YUNhcHN1bGUNCj4gVXBkYXRlLmgNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJk L1ZhbkdvZ2hDb21tb25Qa2cvSW5jbHVkZS9PdGFDYXBzdWxlDQo+IFVwZGF0ZS5oDQo+IGluZGV4 IDZmMTBiYzljODIuLjBiM2JhMjBjZWIgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9JbmNsdWRlL090YUNhcHN1bGUNCj4gVXBkYXRl LmgNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtn L0luY2x1ZGUvT3RhQ2Fwc3VsZQ0KPiBVcGRhdGUuaA0KPiBAQCAtNSw4ICs1LDggQEANCj4NCj4g ICoqLw0KPg0KPiAtI2lmbmRlZiBfT1RBX0NBUFNVTEVfVVBEQVRFX0hfDQo+IC0jZGVmaW5lIF9P VEFfQ0FQU1VMRV9VUERBVEVfSF8NCj4gKyNpZm5kZWYgT1RBX0NBUFNVTEVfVVBEQVRFX0hfXw0K PiArI2RlZmluZSBPVEFfQ0FQU1VMRV9VUERBVEVfSF9fDQo+DQo+ICAjcHJhZ21hIHBhY2sgKDEp DQo+ICAvLw0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5H b2doQ29tbW9uUGtnL0luY2x1ZGUvUHJvdG9jb2wvU3ANCj4gaS5oDQo+IGIvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0luY2x1ZGUvUHJvdG9jb2wvU3ANCj4gaS5o DQo+IGluZGV4IDA0ODc5NDZhNzAuLmM3YzM1OTE0NzkgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRm b3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9JbmNsdWRlL1Byb3RvY29sL1Nw DQo+IGkuaA0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21t b25Qa2cvSW5jbHVkZS9Qcm90b2NvbC9TcA0KPiBpLmgNCj4gQEAgLTEsMzEgKzEsMTYgQEANCj4g IC8qKiBAZmlsZQ0KPiAgICBJbXBsZW1lbnRzIEFNRCBTcGkNCj4gKyAgVGhpcyBmaWxlIGRlZmlu ZXMgdGhlIEVGSSBTUEkgUHJvdG9jb2wgd2hpY2ggaW1wbGVtZW50cyB0aGUNCj4gKyAgSW50ZWwo UikgSUNIIFNQSSBIb3N0IENvbnRyb2xsZXIgQ29tcGF0aWJpbGl0eSBJbnRlcmZhY2UuDQo+DQo+ ICAgIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArICBDb3B5cmlnaHQgKGMpIDIwMTMtMjAxNSBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+ICAqKi8NCj4gLS8vIFRoaXMgZmls ZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcg bGljZW5zZS4NCj4NCj4gLS8qKiBAZmlsZQ0KPiAtVGhpcyBmaWxlIGRlZmluZXMgdGhlIEVGSSBT UEkgUHJvdG9jb2wgd2hpY2ggaW1wbGVtZW50cyB0aGUNCj4gLUludGVsKFIpIElDSCBTUEkgSG9z dCBDb250cm9sbGVyIENvbXBhdGliaWxpdHkgSW50ZXJmYWNlLg0KPiAtDQo+IC1Db3B5cmlnaHQg KGMpIDIwMTMtMjAxNSBJbnRlbCBDb3Jwb3JhdGlvbi4NCj4gLQ0KPiAtVGhpcyBwcm9ncmFtIGFu ZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiAtYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2 YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRA0KPiBMaWNl bnNlDQo+IC13aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRl eHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlDQo+IGZvdW5kIGF0DQo+IC1odHRwOi8vb3BlbnNvdXJj ZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQo+IC0NCj4gLVRIRSBQUk9HUkFNIElTIERJ U1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0K PiAtV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlU SEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gLQ0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtI2lm bmRlZiBfU1BJX0hfDQo+IC0jZGVmaW5lIF9TUElfSF8NCj4gKyNpZm5kZWYgU1BJX0hfXw0KPiAr I2RlZmluZSBTUElfSF9fDQo+DQo+ICAjaW5jbHVkZSA8VWVmaS9VZWZpQmFzZVR5cGUuaD4NCj4N Cj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1v blBrZy9JbmNsdWRlL1Byb3RvY29sL1NwDQo+IGlDb21tb24uaA0KPiBiL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9JbmNsdWRlL1Byb3RvY29sL1NwDQo+IGlDb21t b24uaA0KPiBpbmRleCAyNTRiNGIwZTg3Li44MzI2NjliYmY0IDEwMDY0NA0KPiAtLS0NCj4gYS9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvSW5jbHVkZS9Qcm90b2Nv bC9TcA0KPiBpQ29tbW9uLmgNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9W YW5Hb2doQ29tbW9uUGtnL0luY2x1ZGUvUHJvdG9jb2wvU3ANCj4gaUNvbW1vbi5oDQo+IEBAIC0x LDI5ICsxLDE1IEBADQo+ICAvKiogQGZpbGUNCj4gICAgSW1wbGVtZW50cyBBTUQgU3BpQ29tbW9u DQo+ICsgIEhlYWRlciBmaWxlIGZvciB0aGUgUENIIFNQSSBDb21tb24gRHJpdmVyLg0KPg0KPiAg ICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDEzLTIwMTUgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiAgKiovDQo+IC0vLyBUaGlzIGZpbGUg aW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxp Y2Vuc2UuDQo+DQo+IC0vKiogQGZpbGUNCj4gLUhlYWRlciBmaWxlIGZvciB0aGUgUENIIFNQSSBD b21tb24gRHJpdmVyLg0KPiAtDQo+IC1Db3B5cmlnaHQgKGMpIDIwMTMtMjAxNSBJbnRlbCBDb3Jw b3JhdGlvbi4NCj4gLQ0KPiAtVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVy aWFscw0KPiAtYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMg YW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRA0KPiBMaWNlbnNlDQo+IC13aGljaCBhY2NvbXBhbmll cyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJl DQo+IGZvdW5kIGF0DQo+IC1odHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vu c2UucGhwDQo+IC0NCj4gLVRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0Qg TElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAtV0lUSE9VVCBXQVJSQU5USUVTIE9S IFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElF RC4NCj4gLQ0KPiAtKiovDQo+IC0NCj4gLSNpZm5kZWYgX1NQSV9DT01NT05fSF8NCj4gLSNkZWZp bmUgX1NQSV9DT01NT05fSF8NCj4gKyNpZm5kZWYgU1BJX0NPTU1PTl9IX18NCj4gKyNkZWZpbmUg U1BJX0NPTU1PTl9IX18NCj4NCj4gICNpbmNsdWRlICJQcm90b2NvbC9TcGkuaCINCj4NCj4gZGlm ZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9J bmNsdWRlL1Byb3RvY29sL1NwDQo+IGlGbGFzaFVwZGF0ZS5oDQo+IGIvUGxhdGZvcm0vQU1EL1Zh bkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0luY2x1ZGUvUHJvdG9jb2wvU3ANCj4gaUZsYXNo VXBkYXRlLmgNCj4gaW5kZXggYTBhOTY3YjgzOC4uMzY4OWEzYmFlMyAxMDA2NDQNCj4gLS0tDQo+ IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0luY2x1ZGUvUHJv dG9jb2wvU3ANCj4gaUZsYXNoVXBkYXRlLmgNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1Zhbkdv Z2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0luY2x1ZGUvUHJvdG9jb2wvU3ANCj4gaUZsYXNoVXBk YXRlLmgNCj4gQEAgLTYsOCArNiw4IEBADQo+DQo+ICAqKi8NCj4NCj4gLSNpZm5kZWYgX1NQSV9G TEFTSF9VUERBVEVfSF8NCj4gLSNkZWZpbmUgX1NQSV9GTEFTSF9VUERBVEVfSF8NCj4gKyNpZm5k ZWYgU1BJX0ZMQVNIX1VQREFURV9IX18NCj4gKyNkZWZpbmUgU1BJX0ZMQVNIX1VQREFURV9IX18N Cj4NCj4gICNpbmNsdWRlIDxVZWZpL1VlZmlCYXNlVHlwZS5oPg0KPg0KPiBkaWZmIC0tZ2l0DQo+ IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0xpYnJhcnkvQmFz ZVNlcmlhbFANCj4gb3J0TGliMTY1NTBBbWRGY2hVYXJ0L0Jhc2VTZXJpYWxQb3J0TGliMTY1NTBB bWRGY2hVYXJ0LmMNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Q a2cvTGlicmFyeS9CYXNlU2VyaWFsUA0KPiBvcnRMaWIxNjU1MEFtZEZjaFVhcnQvQmFzZVNlcmlh bFBvcnRMaWIxNjU1MEFtZEZjaFVhcnQuYw0KPiBpbmRleCBjZjk3ZTQxMDlkLi42NjVmNDdmNzAz IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21t b25Qa2cvTGlicmFyeS9CYXNlU2VyaWFsUA0KPiBvcnRMaWIxNjU1MEFtZEZjaFVhcnQvQmFzZVNl cmlhbFBvcnRMaWIxNjU1MEFtZEZjaFVhcnQuYw0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvTGlicmFyeS9CYXNlU2VyaWFsUA0KPiBvcnRMaWIx NjU1MEFtZEZjaFVhcnQvQmFzZVNlcmlhbFBvcnRMaWIxNjU1MEFtZEZjaFVhcnQuYw0KPiBAQCAt MSwxOSArMSw5IEBADQo+IC0vKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBCYXNlU2VyaWFsUG9y dExpYjE2NTUwQW1kRmNoVWFydC5jDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFu Y2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0K PiAtDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1 bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICAx NjU1MCBVQVJUIFNlcmlhbCBQb3J0IGxpYnJhcnkgZnVuY3Rpb25zDQo+DQo+IC0gIChDKSBDb3B5 cmlnaHQgMjAxNCBIZXdsZXR0LVBhY2thcmQgRGV2ZWxvcG1lbnQgQ29tcGFueSwgTC5QLjxCUj4N Cj4gKyAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsgIENvcHlyaWdodCAoQykgMjAxNCBIZXdsZXR0LVBh Y2thcmQgRGV2ZWxvcG1lbnQgQ29tcGFueSwgTC5QLjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAy MDA2IC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiAtICBDb3B5cmlnaHQgKGMpIDIwMTgsIEFNRCBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiAgICBDb3B5cmlnaHQgKGMpIDIwMjAsIEFSTSBMaW1pdGVkLiBBbGwgcmln aHRzIHJlc2VydmVkLg0KPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9W YW5Hb2doQ29tbW9uUGtnL0xpYnJhcnkvQmFzZVNlcmlhbFANCj4gb3J0TGliMTY1NTBBbWRGY2hV YXJ0L0Jhc2VTZXJpYWxQb3J0TGliMTY1NTBBbWRGY2hVYXJ0LmluZg0KPiBiL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9MaWJyYXJ5L0Jhc2VTZXJpYWxQDQo+IG9y dExpYjE2NTUwQW1kRmNoVWFydC9CYXNlU2VyaWFsUG9ydExpYjE2NTUwQW1kRmNoVWFydC5pbmYN Cj4gaW5kZXggZTBlYjVjMGNhZi4uZTZmODI0NDAxZCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0xpYnJhcnkvQmFzZVNlcmlhbFAN Cj4gb3J0TGliMTY1NTBBbWRGY2hVYXJ0L0Jhc2VTZXJpYWxQb3J0TGliMTY1NTBBbWRGY2hVYXJ0 LmluZg0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Q a2cvTGlicmFyeS9CYXNlU2VyaWFsUA0KPiBvcnRMaWIxNjU1MEFtZEZjaFVhcnQvQmFzZVNlcmlh bFBvcnRMaWIxNjU1MEFtZEZjaFVhcnQuaW5mDQo+IEBAIC0xLDE2ICsxLDcgQEANCj4gLSMjIEBm aWxlDQo+IC0jICBQbGF0Zm9ybSBTZXJpYWxQb3J0TGliDQo+IC0jDQo+IC0jIENvcHlyaWdodCAo QykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiAtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0K PiAtIw0KPiAtIyMNCj4gLQ0KPiAtI1RoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkg cHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4gLQ0KPiAgIyMgQGZpbGUN Cj4gICMgIFNlcmlhbFBvcnRMaWIgaW5zdGFuY2UgZm9yIDE2NTUwIFVBUlQuDQo+ICAjDQo+ICsj ICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gICMgIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTksIEludGVs IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICMgIENvcHlyaWdodCAo YykgMjAyMCwgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICAjDQo+IGRpZmYg LS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvTGli cmFyeS9QbGF0Zm9ybUZsYXMNCj4gaEFjY2Vzc0xpYi9QbGF0Zm9ybUZsYXNoQWNjZXNzTGliLmMN Cj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvTGlicmFyeS9Q bGF0Zm9ybUZsYQ0KPiBzaEFjY2Vzc0xpYi9QbGF0Zm9ybUZsYXNoQWNjZXNzTGliLmMNCj4gaW5k ZXggNWE2NjgyMDNiMi4uNjFjNTk4M2M0NCAxMDA2NDQNCj4gLS0tDQo+IGEvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0xpYnJhcnkvUGxhdGZvcm1GbGFzDQo+IGhB Y2Nlc3NMaWIvUGxhdGZvcm1GbGFzaEFjY2Vzc0xpYi5jDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FN RC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9MaWJyYXJ5L1BsYXRmb3JtRmxhDQo+IHNo QWNjZXNzTGliL1BsYXRmb3JtRmxhc2hBY2Nlc3NMaWIuYw0KPiBAQCAtMSwyNiArMSwxMyBAQA0K PiAgLyoqIEBmaWxlDQo+ICAgIEltcGxlbWVudHMgUGxhdGZvcm1GbGFzaEFjY2Vzc0xpYi5jDQo+ ICsgIFBsYXRmb3JtIEZsYXNoIEFjY2VzcyBsaWJyYXJ5Lg0KPg0KPiAgICBDb3B5cmlnaHQgKEMp IDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4NCj4gKyAgQ29weXJpZ2h0IChjKSAyMDE2IC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFs bCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudA0KPg0KPiAgKiovDQo+DQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMg Y29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICov DQo+IC0NCj4gLS8qKiBAZmlsZQ0KPiAtICBQbGF0Zm9ybSBGbGFzaCBBY2Nlc3MgbGlicmFyeS4N Cj4gLQ0KPiAtICBDb3B5cmlnaHQgKGMpIDIwMTYgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29t cGFueWluZyBtYXRlcmlhbHMNCj4gLSAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1 bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRA0KPiBMaWNlbnNlDQo+IC0g IHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0 aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91bmQgYXQNCj4gLSAgaHR0cDovL29wZW5zb3VyY2Uub3Jn L2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPiAtDQo+IC0gIFRIRSBQUk9HUkFNIElTIERJU1RS SUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+IEJBU0lTLA0KPiAt ICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRI RVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiAtDQo+IC0qKi8NCj4gICNpbmNsdWRlIDxVZWZp Lmg+DQo+DQo+ICAjaW5jbHVkZSA8UGlEeGUuaD4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3Jt L0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9MaWJyYXJ5L1NtYmlvc0xpYi9TDQo+ IG1iaW9zTGliLmMNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Q a2cvTGlicmFyeS9TbWJpb3NMaWIvUw0KPiBtYmlvc0xpYi5jDQo+IGluZGV4IDk3YTQ1YzI4NmQu LjUyZDVlMmQxMzEgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQv VmFuR29naENvbW1vblBrZy9MaWJyYXJ5L1NtYmlvc0xpYi9TDQo+IG1iaW9zTGliLmMNCj4gKysr DQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0xpYnJhcnkv U21iaW9zTGliL1MNCj4gbWJpb3NMaWIuYw0KPiBAQCAtMSwxOCArMSw4IEBADQo+IC0vKiogQGZp bGUNCj4gLSAgSW1wbGVtZW50cyBBTUQgU21iaW9zbGliLmMNCj4gLQ0KPiAtICBDb3B5cmlnaHQg KEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4gLSAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gLQ0KPiAtKiovDQo+IC0NCj4gLS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFs bHkgcHVibGlzaGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAgLyoq IEBmaWxlDQo+ICAgIFByb3ZpZGVzIGxpYnJhcnkgZnVuY3Rpb25zIGZvciBjb21tb24gU01CSU9T IG9wZXJhdGlvbnMuIE9ubHkgYXZhaWxhYmxlDQo+IHRvIERYRQ0KPiAgICBhbmQgVUVGSSBtb2R1 bGUgdHlwZXMuDQo+DQo+IC0NCj4gK0NvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBE ZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgQ29weXJpZ2h0IChjKSAy MDEyLCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICBQb3J0aXRpb25zIENvcHly aWdodCAoYykgMjAwNiAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+IHJl c2VydmVkLjxCUj4NCj4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hD b21tb25Qa2cvTGlicmFyeS9TbWJpb3NMaWIvUw0KPiBtYmlvc0xpYi5pbmYNCj4gYi9QbGF0Zm9y bS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvTGlicmFyeS9TbWJpb3NMaWIvUw0K PiBtYmlvc0xpYi5pbmYNCj4gaW5kZXggNGVkNDY5MWIzNi4uYzE4MjlkNmYyZCAxMDA2NDQNCj4g LS0tDQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0xpYnJh cnkvU21iaW9zTGliL1MNCj4gbWJpb3NMaWIuaW5mDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9MaWJyYXJ5L1NtYmlvc0xpYi9TDQo+IG1iaW9z TGliLmluZg0KPiBAQCAtMSwyMCArMSwxMCBAQA0KPiAtIyMgQGZpbGUNCj4gICMgU01CSU9TIExp YnJhcnkNCj4gICMNCj4gICMgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmlj ZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0jIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0jDQo+IC0jIw0KPiAtDQo+IC0jIyBAZmls ZQ0KPiAtIyBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRl ciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+IC0jIFNNQklPUyBMaWJyYXJ5DQo+IC0jDQo+ICAj IENvcHlyaWdodCAoYykgMjAxMiwgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiAg IyBQb3J0aW9ucyBjb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDEwLCBJbnRlbCBDb3B5cmlnaHQgKGMp IDIwMDYgLSAyMDE4LCBJbnRlbA0KPiBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+ICAjDQo+IC0jICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KPiAtIw0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KPiAgIw0KPiAgIyMNCj4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5H b2doQm9hcmQvVmFuR29naENvbW1vblBrZy9MaWJyYXJ5L1RzY1RpbWVyTGliDQo+IC9CYXNlVHNj VGltZXJMaWIuYw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBr Zy9MaWJyYXJ5L1RzY1RpbWVyTGliDQo+IC9CYXNlVHNjVGltZXJMaWIuYw0KPiBpbmRleCBhNGUz N2RhMjJlLi43ZGZlZjQ5MGU5IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvTGlicmFyeS9Uc2NUaW1lckxpYg0KPiAvQmFzZVRzY1Rp bWVyTGliLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29t bW9uUGtnL0xpYnJhcnkvVHNjVGltZXJMaWINCj4gL0Jhc2VUc2NUaW1lckxpYi5jDQo+IEBAIC0x LDE2ICsxLDcgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIEFNRCBCYXNlVHNjVGlt ZXJMaWIuYw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZp Y2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8NCj4gLQ0KPiAtLyogVGhp cyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIGZvbGxv d2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4gICAgQUNQSSBUaW1lciBpbXBs ZW1lbnRzIG9uZSBpbnN0YW5jZSBvZiBUaW1lciBMaWJyYXJ5Lg0KPg0KPiArICBDb3B5cmlnaHQg KEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24u IEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1Zh bkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0xpYnJhcnkvVHNjVGltZXJMaWINCj4gL0Jhc2VU c2NUaW1lckxpYi5pbmYNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21t b25Qa2cvTGlicmFyeS9Uc2NUaW1lckxpYg0KPiAvQmFzZVRzY1RpbWVyTGliLmluZg0KPiBpbmRl eCA3ZGMyOWNlZjQwLi5kNmM0ZTJlMWQ2IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQv VmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvTGlicmFyeS9Uc2NUaW1lckxpYg0KPiAvQmFz ZVRzY1RpbWVyTGliLmluZg0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1Zh bkdvZ2hDb21tb25Qa2cvTGlicmFyeS9Uc2NUaW1lckxpYg0KPiAvQmFzZVRzY1RpbWVyTGliLmlu Zg0KPiBAQCAtMSwyMyArMSwxMSBAQA0KPiAgIyMgQGZpbGUNCj4gICMgQmFzZVRzY1RpbWVyTGli DQo+IC0jDQo+IC0jIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJ bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtIw0KPiAtIyMNCj4gLQ0KPiAtIyBUaGlzIGZpbGUg aW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxp Y2Vuc2UuDQo+IC0jIyBAZmlsZQ0KPiAtIyAgQmFzZSBBQ1BJIFRpbWVyIExpYnJhcnkNCj4gLSMN Cj4gICMgIFByb3ZpZGVzIGJhc2ljIHRpbWVyIHN1cHBvcnQgdXNpbmcgdGhlIEFDUEkgdGltZXIg aGFyZHdhcmUuICBUaGUNCj4gcGVyZm9ybWFuY2UNCj4gICMgIGNvdW50ZXIgZmVhdHVyZXMgYXJl IHByb3ZpZGVkIGJ5IHRoZSBwcm9jZXNzb3JzIHRpbWUgc3RhbXAgY291bnRlci4NCj4gICMNCj4g LSMgIE5vdGU6IFRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHRoZSBsb3dlciAyNC1iaXRzIG9mIHRo ZSBBQ1BJIHRpbWVyIGFuZA0KPiAtIyAgaXMgY29tcGF0aWJsZSB3aXRoIGJvdGggMjQtYml0IGFu ZCAzMi1iaXQgQUNQSSB0aW1lcnMuDQo+IC0jDQo+IC0jICBDb3B5cmlnaHQgKGMpIDIwMTMgLSAy MDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0jICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArIyBDb3B5cmln aHQgKEMpIDIwMjQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCj4gKyMgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRp b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgIw0KPiAgIyMNCj4NCj4gZGlmZiAtLWdpdA0KPiBh L1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9MaWJyYXJ5L1RzY1Rp bWVyTGliDQo+IC9EeGVUc2NUaW1lckxpYi5jDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2Fy ZC9WYW5Hb2doQ29tbW9uUGtnL0xpYnJhcnkvVHNjVGltZXJMaWINCj4gL0R4ZVRzY1RpbWVyTGli LmMNCj4gaW5kZXggZTA2MTY1NjVmYy4uNWEzNzQ2NjVjMyAxMDA2NDQNCj4gLS0tDQo+IGEvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0xpYnJhcnkvVHNjVGltZXJM aWINCj4gL0R4ZVRzY1RpbWVyTGliLmMNCj4gKysrDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hC b2FyZC9WYW5Hb2doQ29tbW9uUGtnL0xpYnJhcnkvVHNjVGltZXJMaWINCj4gL0R4ZVRzY1RpbWVy TGliLmMNCj4gQEAgLTEsMTYgKzEsNyBAQA0KPiAtLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMg QU1EIER4ZVRzY1RpbWVyTGliLmMNCj4gLQ0KPiAtICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2YW5j ZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSAgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0KPiAtKiovDQo+ IC0NCj4gLS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVu ZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAgLyoqIEBmaWxlDQo+ICAgIEFD UEkgVGltZXIgaW1wbGVtZW50cyBvbmUgaW5zdGFuY2Ugb2YgVGltZXIgTGlicmFyeS4NCj4NCj4g KyAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIENvcHlyaWdodCAoYykgMjAxMyAtIDIwMTgsIEludGVs IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgQ29weXJpZ2h0IChj KSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uDQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvTGlicmFyeS9Uc2NUaW1lckxpYg0KPiAvUGVpVHNjVGlt ZXJMaWIuYw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9M aWJyYXJ5L1RzY1RpbWVyTGliDQo+IC9QZWlUc2NUaW1lckxpYi5jDQo+IGluZGV4IGQyYTU2MjE5 N2EuLjMzODgyMWI1ZDcgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9h cmQvVmFuR29naENvbW1vblBrZy9MaWJyYXJ5L1RzY1RpbWVyTGliDQo+IC9QZWlUc2NUaW1lckxp Yi5jDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBr Zy9MaWJyYXJ5L1RzY1RpbWVyTGliDQo+IC9QZWlUc2NUaW1lckxpYi5jDQo+IEBAIC0xLDE2ICsx LDcgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIEFNRCBQZWlUc2NUaW1lckxpYi5j DQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIElu Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlzIGZpbGUg aW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxp Y2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBBQ1BJIFRpbWVyIGltcGxlbWVudHMg b25lIGluc3RhbmNlIG9mIFRpbWVyIExpYnJhcnkuDQo+DQo+ICsgIENvcHlyaWdodCAoQykgMjAy NCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiAgICBDb3B5cmlnaHQgKGMpIDIwMTMgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQo+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJv YXJkL1ZhbkdvZ2hDb21tb25Qa2cvTGlicmFyeS9Uc2NUaW1lckxpYg0KPiAvVHNjVGltZXJMaWJJ bnRlcm5hbC5oDQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtn L0xpYnJhcnkvVHNjVGltZXJMaWINCj4gL1RzY1RpbWVyTGliSW50ZXJuYWwuaA0KPiBpbmRleCA2 OGQwOTQ5Y2JkLi5jZDRmYzlkYjE0IDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFu R29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvTGlicmFyeS9Uc2NUaW1lckxpYg0KPiAvVHNjVGlt ZXJMaWJJbnRlcm5hbC5oDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFu R29naENvbW1vblBrZy9MaWJyYXJ5L1RzY1RpbWVyTGliDQo+IC9Uc2NUaW1lckxpYkludGVybmFs LmgNCj4gQEAgLTEsMjMgKzEsMTQgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRzIEFN RCBUc2NUaW1lckxpYkludGVybmFsLmgNCj4gLQ0KPiAtICBDb3B5cmlnaHQgKEMpIDIwMjQgQWR2 YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gLSAg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gLQ0KPiAtKiov DQo+IC0NCj4gLS8qIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVk IHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gKi8NCj4gLQ0KPiAgLyoqIEBmaWxlDQo+ICAg IEhlYWRlciBmaWxlIGludGVybmFsIHRvIEFDUEkgVGltZXJMaWIuDQo+DQo+IC1Db3B5cmlnaHQg KGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4gK0NvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNl ZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArQ29weXJp Z2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gICoq Lw0KPg0KPiAtI2lmbmRlZiBfVFNDX1RJTUVSX0xJQl9JTlRFUk5BTF9IXw0KPiAtI2RlZmluZSBf VFNDX1RJTUVSX0xJQl9JTlRFUk5BTF9IXw0KPiArI2lmbmRlZiBUU0NfVElNRVJfTElCX0lOVEVS TkFMX0hfXw0KPiArI2RlZmluZSBUU0NfVElNRVJfTElCX0lOVEVSTkFMX0hfXw0KPg0KPiAgI2lu Y2x1ZGUgPExpYnJhcnkvVGltZXJMaWIuaD4NCj4gICNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VMaWIu aD4NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENv bW1vblBrZy9MaWJyYXJ5L1RzY1RpbWVyTGliDQo+IC9Uc2NUaW1lckxpYlNoYXJlLmMNCj4gYi9Q bGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvTGlicmFyeS9Uc2NUaW1l ckxpYg0KPiAvVHNjVGltZXJMaWJTaGFyZS5jDQo+IGluZGV4IDM5ZWZmMzZhYmMuLmE0OWEyZGIy YjMgMTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENv bW1vblBrZy9MaWJyYXJ5L1RzY1RpbWVyTGliDQo+IC9Uc2NUaW1lckxpYlNoYXJlLmMNCj4gKysr DQo+IGIvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL0xpYnJhcnkv VHNjVGltZXJMaWINCj4gL1RzY1RpbWVyTGliU2hhcmUuYw0KPiBAQCAtMSwxNiArMSw3IEBADQo+ IC0vKiogQGZpbGUNCj4gLSAgSW1wbGVtZW50cyBBTUQgVHNjVGltZXJMaWJTaGFyZS5jDQo+IC0N Cj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVk ZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2Uu ICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgICBBQ1BJIFRpbWVyIGltcGxlbWVudHMgb25lIGlu c3RhbmNlIG9mIFRpbWVyIExpYnJhcnkuDQo+DQo+ICsgIENvcHlyaWdodCAoQykgMjAyNCBBZHZh bmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICBD b3B5cmlnaHQgKGMpIDIwMTMgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+DQo+IGRpZmYgLS1naXQNCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1Zh bkdvZ2hDb21tb25Qa2cvU21tL0FjcGlTbW0vQWNwDQo+IGlTbW1QbGF0Zm9ybS5jDQo+IGIvUGxh dGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL1NtbS9BY3BpU21tL0FjcA0K PiBpU21tUGxhdGZvcm0uYw0KPiBpbmRleCAzODNiY2VjNDcxLi4yMGEwZWQ2Y2I3IDEwMDY0NA0K PiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvU21t L0FjcGlTbW0vQWNwDQo+IGlTbW1QbGF0Zm9ybS5jDQo+ICsrKw0KPiBiL1BsYXRmb3JtL0FNRC9W YW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9TbW0vQWNwaVNtbS9BY3ANCj4gaVNtbVBsYXRm b3JtLmMNCj4gQEAgLTEsMjMgKzEsMTMgQEANCj4gLS8qKiBAZmlsZQ0KPiAtICBJbXBsZW1lbnRz IEFNRCBBY3BpU21tUGxhdGZvcm0uYw0KPiAtDQo+IC0gIENvcHlyaWdodCAoQykgMjAyNCBBZHZh bmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAtDQo+IC0qKi8N Cj4gLQ0KPiAtLyogVGhpcyBmaWxlIGluY2x1ZGVzIGNvZGUgb3JpZ2luYWxseSBwdWJsaXNoZWQg dW5kZXIgdGhlIGZvbGxvd2luZyBsaWNlbnNlLiAqLw0KPiAtDQo+ICAvKiogQGZpbGUNCj4gIEFD UElTTU0gRHJpdmVyIGltcGxlbWVudGF0aW9uIGZpbGUuDQo+DQo+ICBUaGlzIGlzIFFOQyBTbW0g cGxhdGZvcm0gZHJpdmVyDQo+DQo+IC1Db3B5cmlnaHQgKGMpIDIwMTMtMjAxOSBJbnRlbCBDb3Jw b3JhdGlvbi4NCj4gK0NvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJ bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArQ29weXJpZ2h0IChjKSAyMDEzLTIwMTkg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPg0KPiAgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gLQ0KPiAgKiovDQo+ DQo+ICAjaW5jbHVkZSA8QWNwaVNtbVBsYXRmb3JtLmg+DQo+IEBAIC0xNTMsNyArMTQzLDYgQEAg SW5pdEFjcGlTbW1QbGF0Zm9ybSAoDQo+ICAgIElOIEVGSV9TWVNURU1fVEFCTEUgICpTeXN0ZW1U YWJsZQ0KPiAgICApDQo+DQo+IC0NCj4gIHsNCj4gICAgRUZJX1NUQVRVUyAgICAgICAgICAgICAg ICAgICAgU3RhdHVzOw0KPiAgICBFRklfR0xPQkFMX05WU19BUkVBX1BST1RPQ09MICAqQWNwaU52 c1Byb3RvY29sID0gTlVMTDsNCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2do Qm9hcmQvVmFuR29naENvbW1vblBrZy9TbW0vQWNwaVNtbS9BY3ANCj4gaVNtbVBsYXRmb3JtLmgN Cj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvU21tL0FjcGlT bW0vQWNwDQo+IGlTbW1QbGF0Zm9ybS5oDQo+IGluZGV4IGFkNTE5YmNhM2IuLjMxYWI0ZjA4M2Qg MTAwNjQ0DQo+IC0tLQ0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1v blBrZy9TbW0vQWNwaVNtbS9BY3ANCj4gaVNtbVBsYXRmb3JtLmgNCj4gKysrDQo+IGIvUGxhdGZv cm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL1NtbS9BY3BpU21tL0FjcA0KPiBp U21tUGxhdGZvcm0uaA0KPiBAQCAtMSwyNSArMSwxNSBAQA0KPiAtLyoqIEBmaWxlDQo+IC0gIElt cGxlbWVudHMgQU1EIEFjcGlTbW1QbGF0Zm9ybS5oDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAy MDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+IC0gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0N Cj4gLSoqLw0KPiAtDQo+IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1 Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmls ZQ0KPiAgSGVhZGVyIGZpbGUgZm9yIFNNTSBTMyBIYW5kbGVyIERyaXZlci4NCj4NCj4gLUNvcHly aWdodCAoYykgMjAxMy0yMDE5IEludGVsIENvcnBvcmF0aW9uLg0KPiArQ29weXJpZ2h0IChDKSAy MDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ICtDb3B5cmlnaHQgKGMpIDIwMTMtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+DQo+ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPg0KPiAtDQo+ICAqKi8NCj4NCj4gLSNpZm5kZWYgX0FDUElfU01NX0RSSVZF Ul9IDQo+IC0jZGVmaW5lIF9BQ1BJX1NNTV9EUklWRVJfSA0KPiArI2lmbmRlZiBBQ1BJX1NNTV9E UklWRVJfSF8NCj4gKyNkZWZpbmUgQUNQSV9TTU1fRFJJVkVSX0hfDQo+ICAvLw0KPiAgLy8gSW5j bHVkZSBmaWxlcw0KPiAgLy8NCj4gZGlmZiAtLWdpdA0KPiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2do Qm9hcmQvVmFuR29naENvbW1vblBrZy9TbW0vQWNwaVNtbS9BY3ANCj4gaVNtbVBsYXRmb3JtLmlu Zg0KPiBiL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9TbW0vQWNw aVNtbS9BY3ANCj4gaVNtbVBsYXRmb3JtLmluZg0KPiBpbmRleCBiZTI1MmM0ODUxLi40MjhlMDRi N2QyIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hD b21tb25Qa2cvU21tL0FjcGlTbW0vQWNwDQo+IGlTbW1QbGF0Zm9ybS5pbmYNCj4gKysrDQo+IGIv UGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL1NtbS9BY3BpU21tL0Fj cA0KPiBpU21tUGxhdGZvcm0uaW5mDQo+IEBAIC0xLDE2ICsxLDggQEANCj4gICMjIEBmaWxlDQo+ IC0jICBBY3BpU21tUGxhdGZvcm0NCj4gLSMNCj4gLSMgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFu Y2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0jIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0jDQo+IC0jIw0K PiAtDQo+IC0jIFRoaXMgZmlsZSBpbmNsdWRlcyBjb2RlIG9yaWdpbmFsbHkgcHVibGlzaGVkIHVu ZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4NCj4gLSMjIEBmaWxlDQo+ICAjIENvbXBvbmVudCBk ZXNjcmlwdGlvbiBmaWxlIGZvciBBQ1BJIFNNTSBQbGF0Zm9ybSBoYW5kbGVyIG1vZHVsZQ0KPiAg Iw0KPiAgIyBUaGlzIGlzIFFOQyBTbW0gcGxhdGZvcm0gZHJpdmVyIC4NCj4gKyMgQ29weXJpZ2h0 IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ICAjIENvcHlyaWdodCAoYykgMjAxMy0yMDE5IEludGVsIENvcnBvcmF0aW9uLg0K PiAgIw0KPiAgIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0K PiBkaWZmIC0tZ2l0DQo+IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9u UGtnL1NtbS9TbW1BY2Nlc3NQZQ0KPiBpL1NtbUFjY2Vzc1BlaS5jDQo+IGIvUGxhdGZvcm0vQU1E L1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL1NtbS9TbW1BY2Nlc3NQZQ0KPiBpL1NtbUFj Y2Vzc1BlaS5jDQo+IGluZGV4IDIwMGFlYmY1OWMuLjc4ODBhY2MyZjMgMTAwNjQ0DQo+IC0tLQ0K PiBhL1BsYXRmb3JtL0FNRC9WYW5Hb2doQm9hcmQvVmFuR29naENvbW1vblBrZy9TbW0vU21tQWNj ZXNzUGUNCj4gaS9TbW1BY2Nlc3NQZWkuYw0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29n aEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvU21tL1NtbUFjY2Vzc1BlDQo+IGkvU21tQWNjZXNzUGVp LmMNCj4gQEAgLTEsMTggKzEsOSBAQA0KPiAtLyoqIEBmaWxlDQo+IC0gIEltcGxlbWVudHMgQU1E IFNtbUFjY2Vzc1BlaS5jDQo+IC0NCj4gLSAgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1p Y3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IC0gIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IC0NCj4gLSoqLw0KPiAtDQo+ IC0vKiBUaGlzIGZpbGUgaW5jbHVkZXMgY29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0 aGUgZm9sbG93aW5nIGxpY2Vuc2UuICovDQo+IC0NCj4gIC8qKiBAZmlsZQ0KPiAgVGhpcyBpcyB0 aGUgZHJpdmVyIHRoYXQgcHVibGlzaGVzIHRoZSBTTU0gQWNjZXNzIFBwaQ0KPiAgaW5zdGFuY2Ug Zm9yIHRoZSBRdWFyayBTT0MuDQo+DQo+IC1Db3B5cmlnaHQgKGMpIDIwMTMtMjAxOSBJbnRlbCBD b3Jwb3JhdGlvbi4NCj4gK0NvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2Vz LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArQ29weXJpZ2h0IChjKSAyMDEzLTIw MTkgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPg0KPiAgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4NCj4gQEAgLTE0Miw3 ICsxMzMsNiBAQCBMb2NrU21tICgNCj4gICAgQXNtV3JpdGVNc3I2NCAoSFdDUiwgRGF0YTY0KTsN Cj4gIH0NCj4NCj4gLQ0KPiAgLyoqDQo+ICAgIFRoaXMgcm91dGluZSBhY2NlcHRzIGEgcmVxdWVz dCB0byAib3BlbiIgYSByZWdpb24gb2YgU01SQU0uICBUaGUNCj4gICAgcmVnaW9uIGNvdWxkIGJl IGxlZ2FjeSBBQlNFRywgSFNFRywgb3IgVFNFRyBuZWFyIHRvcCBvZiBwaHlzaWNhbCBtZW1vcnku DQo+IEBAIC0zMDEsNyArMjkxLDYgQEAgTG9jayAoDQo+ICAgIHJldHVybiBFRklfU1VDQ0VTUzsN Cj4gIH0NCj4NCj4gLQ0KPiAgLyoqDQo+ICAgIFRoaXMgcm91dGluZSBzZXJ2aWNlcyBhIHVzZXIg cmVxdWVzdCB0byBkaXNjb3ZlciB0aGUgU01SQU0NCj4gICAgY2FwYWJpbGl0aWVzIG9mIHRoaXMg cGxhdGZvcm0uICBUaGlzIHdpbGwgcmVwb3J0IHRoZSBwb3NzaWJsZQ0KPiBkaWZmIC0tZ2l0DQo+ IGEvUGxhdGZvcm0vQU1EL1ZhbkdvZ2hCb2FyZC9WYW5Hb2doQ29tbW9uUGtnL1NtbS9TbW1BY2Nl c3NQZQ0KPiBpL1NtbUFjY2Vzc1BlaS5pbmYNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJk L1ZhbkdvZ2hDb21tb25Qa2cvU21tL1NtbUFjY2Vzc1BlDQo+IGkvU21tQWNjZXNzUGVpLmluZg0K PiBpbmRleCAxNTcyNzQxZDhlLi43NDFlZGRkNDNjIDEwMDY0NA0KPiAtLS0NCj4gYS9QbGF0Zm9y bS9BTUQvVmFuR29naEJvYXJkL1ZhbkdvZ2hDb21tb25Qa2cvU21tL1NtbUFjY2Vzc1BlDQo+IGkv U21tQWNjZXNzUGVpLmluZg0KPiArKysNCj4gYi9QbGF0Zm9ybS9BTUQvVmFuR29naEJvYXJkL1Zh bkdvZ2hDb21tb25Qa2cvU21tL1NtbUFjY2Vzc1BlDQo+IGkvU21tQWNjZXNzUGVpLmluZg0KPiBA QCAtMSwxNiArMSw4IEBADQo+ICAjIyBAZmlsZQ0KPiAtIyAgU21tQWNjZXNzUGVpDQo+IC0jDQo+ IC0jIENvcHlyaWdodCAoQykgMjAyNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPiAtIw0KPiAtIyMNCj4gLQ0KPiAtIyBUaGlzIGZpbGUgaW5jbHVkZXMg Y29kZSBvcmlnaW5hbGx5IHB1Ymxpc2hlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UuDQo+ IC0jIyBAZmlsZQ0KPiAgIyBDb21wb25lbnQgZGVzY3JpcHRpb24gZmlsZSBmb3IgU21tQWNjZXNz UGVpIG1vZHVsZQ0KPiAgIw0KPiAtIyBDb3B5cmlnaHQgKGMpIDIwMTMtMjAxOSBJbnRlbCBDb3Jw b3JhdGlvbi4NCj4gKyMgQ29weXJpZ2h0IChDKSAyMDI0IEFkdmFuY2VkIE1pY3JvIERldmljZXMs IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsjIENvcHlyaWdodCAoYykgMjAxMy0y MDE5IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICMNCj4g ICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gICMNCj4g LS0NCj4gMi4zMS4xDQoNCg0KCi09LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5pbyBMaW5r czogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmlldy9SZXBs eSBPbmxpbmUgKCMxMTQzNzEpOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2Fn ZS8xMTQzNzEKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDM5NTAzNjEv NzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJzY3Jp YmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBbcmViZWNjYUBvcGVuZncu aW9dCi09LT0tPS09LT0tPS09LT0tPS09LT0tCgoNCg==