From nobody Mon May 15 17:27:02 2023 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKmX30rxYz4BrDQ for ; Mon, 15 May 2023 17:27:15 +0000 (UTC) (envelope-from schakrabarti@microsoft.com) Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2126.outbound.protection.outlook.com [40.107.117.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "DigiCert Cloud Services CA-1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKmX25SB7z3n8K; Mon, 15 May 2023 17:27:14 +0000 (UTC) (envelope-from schakrabarti@microsoft.com) Authentication-Results: mx1.freebsd.org; none ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lu1VYYjFpo1SNGZPvCyZ8g/VjaDjDPgsKcfqQlkmEIEyqoFi1I7n3r3+XYW04odurwBD0dJA5/D5U3fBWxbz96LGkEbIcXaJYfdBlamNi8LicJfNd0ntaDHuQgq6GWkKZLT9ZGKCI3j3r8x20s16gizYkgz3x4j9fjUquuL/Ch5r/Rm4S3ynn3UWl8uogb0U2ZpTF3R9vmNDw1vwwnKY8ZJN/CUUPzjq+SEOXVxW2SU/YPXJe6aQpJPfC9EjbYbTMPecTDALm5ouhfmIIDQWnhWkGj2oTL3qR/GsI2mnWvuBo4552sIUkx3UDGqi5RlsLmD+yTf4p3VVs1djh5YaTQ== 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=MlBbCSUYbmQa+4WvxS25KY8otbdOFHc0yeEdI2rCnq8=; b=HH8ALWzkCkTKwfmcakJTNhsDJCDppK/zmZcLXriLumks/IJkMOM0mPySx5+AsYVmhvq/lx14LsFD5ALjbE22ajT4ZtDnI43msob8CwnNyy8q4EF1skjBTsshjaZ4ZbYaoaCFuNehZecSNV6MyNYvqC9xkG5L0WfXB3jGsmXJI+sgvkLhr852f+gFd3zovZ4sr9b2SfXTzfQkQFfYpdh60nmT1mE86Lqm0UmhkmcvoEJlnZQTDnKPfG59XfzOjw40oJ/O/0tEdBGvjGMYRRvxoQUOm6695HmgAlCOBRlAwQzzJ2bDcMI2WjkXuHMh7bPvAM/ZAU88bleLK6NeI5FVTQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MlBbCSUYbmQa+4WvxS25KY8otbdOFHc0yeEdI2rCnq8=; b=jHtF8A7WxmgbuTXKL11xRXdVctEy9fYx6YTwem9fwRJ7kQDw/9Zj4zYwsLoW2aKERAMmYKvg52oIumSEAzr2eoMk+hpvt/674JnJc6R4I/2BaKtNUfRME9buvbtoR1apTe++yRaD4UNcXCoaMdzjFedOTfHBddP8rbbyzj2DWuA= Received: from PSAP153MB0536.APCP153.PROD.OUTLOOK.COM (2603:1096:301:75::14) by TYZP153MB0966.APCP153.PROD.OUTLOOK.COM (2603:1096:400:41e::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.4; Mon, 15 May 2023 17:27:02 +0000 Received: from PSAP153MB0536.APCP153.PROD.OUTLOOK.COM ([fe80::3636:5810:fb12:6d71]) by PSAP153MB0536.APCP153.PROD.OUTLOOK.COM ([fe80::3636:5810:fb12:6d71%7]) with mapi id 15.20.6433.001; Mon, 15 May 2023 17:27:02 +0000 From: Souradeep Chakrabarti To: Souradeep Chakrabarti , Kyle Evans CC: Wei Hu , "freebsd-hackers@FreeBSD.org" Subject: RE: [EXTERNAL] Re: enabling same PPI interrupt to all CPU in ARM64 SMP Thread-Topic: [EXTERNAL] Re: enabling same PPI interrupt to all CPU in ARM64 SMP Thread-Index: AdmBrWHu4SCK2cRnRnyy6MBGajO35QDM7LrAAATdMgAAXrUlgAAe4ZoAAAUxoMAADULwAAAGs2kgAAB9DCA= Date: Mon, 15 May 2023 17:27:02 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=579a9a93-7e36-413a-9714-245856ac89e3;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2023-05-15T17:05:57Z;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PSAP153MB0536:EE_|TYZP153MB0966:EE_ x-ms-office365-filtering-correlation-id: e6124f34-6768-40a2-e935-08db556998be x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Q0r7X/Kl5uFvo4pj4/2J8fvh+c56p/IWhRgBYh6BrCD1dBQ+6ER5J/ycJE5ZtiHsimkHkx20TJXMNgqA9L9eo3aAzJpvP6OfIZzv4rFJ6E5cjht8cRA/NV93FymQeqWThLymobIogju/AUSxQ8WAv6Fa7wOKNxVxvMNBNS9dcGXvW5X/KkdfOYl7FM6+cZFqF4epBOyTrRRVP+B5EGV+sOphKuNo8R51s3B9Q8F6nGudEvREIwANxjjMXkR6UXc+xAp1cIkRKyq0sIZUfCijE+E27mbCJ1TkAtR1EaoC1jstVIlPSJdoc4NLcvaMxviXkFF3ejQ8Hh6Gx2Py4WKNEWu5hhYs129ygXfWEVbgZ30UZ82T0F7va+gBp9FfSH3wwAzLwLumaVtRQTXvSGAIgelCADfoe2kebxU/iZFReyJAj7il8ZoiVAn55TO3mwuYFyVTQH08LJpWF0kk+gB/qP6uU5uGvLLtHXzzyj16xo4NbwqiOHQRTfoO5MsafLjeYP+GsDqyQtzquWMffhHn4X4+kkc12RO5BRZ9XIQo5Nri7mvJ7lJcn40Cnjm/Xcy1JAEoe/GEzSSEx5WouaympTeA66dxhZ7K+w4KTUgupcfOqoCd4RKpmXPsRyzZkAAQ+xF7HNKtST30Ic13jf/5DKehiS2obFpR5b33H9GFcX6lN6ENDo+PEfaEsdeZwJSt x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PSAP153MB0536.APCP153.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230028)(4636009)(39860400002)(396003)(376002)(366004)(136003)(346002)(451199021)(2940100002)(5660300002)(52536014)(41300700001)(71200400001)(2906002)(30864003)(83380400001)(8990500004)(82960400001)(122000001)(86362001)(82950400001)(38070700005)(38100700002)(33656002)(26005)(6506007)(186003)(55016003)(8676002)(8936002)(9686003)(966005)(450100002)(7696005)(66946007)(66556008)(66476007)(66446008)(64756008)(76116006)(54906003)(110136005)(478600001)(10290500003)(4326008)(786003)(316002)(21314003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MUUvWWJVOFRPRUpmNUtGL2hyb3lTWmtHQndJck9FWU93T29mVkh3bFhCY3Bv?= =?utf-8?B?ODNxZDFZT1B0Nmc2dnF6b1l4RTJHeVZpZ01acG9RRjlUam9HZlhVVGdpSGNV?= =?utf-8?B?VllFTjBJVEh3RGRlU2d2SXorMDVmMTRkUlNCVFNmWldENE1UVVkxSFpJN0ha?= =?utf-8?B?OWcwbkpxazlkZTFxUG9FbmxON2ozYlVGZTE2WUN4eEd5Zi9uWVBoZnlRZERj?= =?utf-8?B?R2JsMnZVNE1TVjRZTXpqc1JNVi8zRi9QRnQ3UXB6U2ZkZFQzbUV1Y0VRWU1V?= =?utf-8?B?RkhFSFlCTDBDRm1UZVZYMEh2R0oxOGVDSlBkbnpueS9ZSzdXelUyVmNLWnBy?= =?utf-8?B?MGtWQnZ6WUNuQnczS2hnc3VJWi9weitwaWNmdGlWTVJVOUJFdjhLbWNia0xm?= =?utf-8?B?VDhSc0h0cGhVUTEwUGd6RDVaK3laWkthcUx5NW1UOFBnQm9xdzgxV1ptRzhB?= =?utf-8?B?d2Y3RWd3T0ZPWHluNHFiWldRY2JuVGZBRUF6bmhZVUpvdjB5bHdjbG1vMUtq?= =?utf-8?B?aTFualdYNGNEMURabGgrRFN5eVlGYmFzOUxjWWZIT3A4N3hiOXZLTUF5Nzhy?= =?utf-8?B?dHFPT2hJT0YxTUtpVXhlU1JodE9jSTV0LytkQ1JUNW5MUGI1b0U0QnJXSkps?= =?utf-8?B?M2hhMzNmVUZidFliT3dkRVE0czlTYXpTcWtvVHFmcTRqOFNYYmlVQk9ZMHpu?= =?utf-8?B?NEVzYk50K1lSZnZYd1hYYUduTXVha3ZuUnYrVmxmUVJReVNPaG0zSk9iTkZp?= =?utf-8?B?OTNEdncwZDJVbmR2MVBMNmxVTTJMemRBNTkzZnE3Rm9qUkxxaExtWkY1Qlpy?= =?utf-8?B?Z1k0ZWRqcU0yMlVSRWVLblFTQWF3aUVJbkdQbjBZZnpDWG1uQjk2VFRDdkVM?= =?utf-8?B?QlhIcktJeXZqU2VtR0F6NkhjRTV2U1VFcjRSYWtnbEllMVBCeU1pU0xJUE13?= =?utf-8?B?cG1qU1VzQWJpNU5VbEV6WWF3dEI0NllibXZoU0dFM0l2VHVVYnY5aXpPSDdB?= =?utf-8?B?RTUyamxnS1BzMFNyVWxmSUU4TENiWHNrQVNjaisvQUpBdk9hU2RoUlFDRFRZ?= =?utf-8?B?ZEo1c1M4TUt0Yk1URlM1ak40ZnIxWHdKRnJDeEFVK1JtZzVWWFB6K2hsaTJZ?= =?utf-8?B?THQ4bUpqUzRmaU5SQy8yMW5Jdi9YUFVnNVF0YnlHNW1wRGNFQ1NYcStJUEVD?= =?utf-8?B?cTljR1BqL0VLeGdDaVN4Qi85Q3VjQVVEZXMrZXBuOFNDb0JVM3BiOTRqUHdS?= =?utf-8?B?OUhreDhZa01Hc2wyeFk0TTE1SXorR213Z0x5SEdDaU1zV0d2UHpCWHBMNjFQ?= =?utf-8?B?dURlNW1JOEltbCtieVJxcUZ2Sk9aV21GYjVKR1d3ZlhhVzBvMHJKVGhUN0tW?= =?utf-8?B?bE5YZ0thakZvY2xtOXVWVWxCalJtQ2xGeGZSRTYvUnVaYWJJcDFvWGNyWFFX?= =?utf-8?B?cGQxRGtjeUtCMmNZQ2FUZTB5V0kvK1F4dFhyYk9TTE9uaVEzS2c1TkgrTHYx?= =?utf-8?B?bVEyYjV4ZThNVERsMnc5cTdRdmdZWXYxTEh0MlllRG9DZjZTQjFqaDhURGg0?= =?utf-8?B?b2lBWlBkUWZuWnVKK3R4S01aWFZFaE9jeHBQZFRwOHBXNlUrdUpnODRPUGQr?= =?utf-8?B?YllIclQ4YllwaktBMkJLUkZJVHZHR0ZqOFhSMUxSQ1NWcVc4N1cybHBHYTAx?= =?utf-8?B?YlpENDR3SlExNnZramFCWGdzRHNvT0tGa3N3VEVxaGsrRWt6QlU0VkFYWmxt?= =?utf-8?B?cWdWNnlKOFFvTkR6emI5ZkpUbG1hOGk3U3UrbEgyWmZSZXZzK25YdFNtNXln?= =?utf-8?B?WEp6MGQ0MkNYeVl5cjc1N1JNV25TODhtZzdHRG5oWWROWXVsd3czL0ZsYk1v?= =?utf-8?B?MTJCV1gvblNFZm4xa2JqQk0vS1M2KzRLcUdlMFlPSFhCS0k5cWVEejhUUGJJ?= =?utf-8?B?Ynk1ZjVxd1l0S1pOM0tzYjBvMWRScFluK3liWXB0Ti90M1lkTDZJZ0hLWmJ5?= =?utf-8?B?TjI4S1Y3RWNRV0krNlpTbFNUNy9tNmNMVklNZmVEUlJNMzlPTzhZN0RQRkdK?= =?utf-8?Q?gsHmSc?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PSAP153MB0536.APCP153.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: e6124f34-6768-40a2-e935-08db556998be X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2023 17:27:02.5275 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 35RbCyjXe4iQUdyaW+7LrD685H11W31kZG+wBd+fgrh6yWj3jmb78+O39Wz5ayUxrNnhJUoiAZlCMmAI6NSN55YBfsHnJGGGSI/HJriqpHY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZP153MB0966 X-Rspamd-Queue-Id: 4QKmX25SB7z3n8K X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:8075, ipnet:40.104.0.0/14, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-ThisMailContainsUnwantedMimeParts: N DQoNCg0KPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogb3duZXItZnJlZWJzZC1o YWNrZXJzQGZyZWVic2Qub3JnIDxvd25lci1mcmVlYnNkLWhhY2tlcnNAZnJlZWJzZC5vcmc+DQo+ T24gQmVoYWxmIE9mIFNvdXJhZGVlcCBDaGFrcmFiYXJ0aQ0KPlNlbnQ6IE1vbmRheSwgTWF5IDE1 LCAyMDIzIDEwOjM3IFBNDQo+VG86IEt5bGUgRXZhbnMgPGtldmFuc0BmcmVlYnNkLm9yZz4NCj5D YzogV2VpIEh1IDx3ZWhAbWljcm9zb2Z0LmNvbT47IGZyZWVic2QtaGFja2Vyc0BGcmVlQlNELm9y Zw0KPlN1YmplY3Q6IFJFOiBbRVhURVJOQUxdIFJlOiBlbmFibGluZyBzYW1lIFBQSSBpbnRlcnJ1 cHQgdG8gYWxsIENQVSBpbiBBUk02NCBTTVANCj4NCj4NCj4NCj4NCj4+LS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4+RnJvbTogS3lsZSBFdmFucyA8a2V2YW5zQGZyZWVic2Qub3JnPg0KPj5T ZW50OiBNb25kYXksIE1heSAxNSwgMjAyMyA3OjI0IFBNDQo+PlRvOiBTb3VyYWRlZXAgQ2hha3Jh YmFydGkgPHNjaGFrcmFiYXJ0aUBtaWNyb3NvZnQuY29tPg0KPj5DYzogV2VpIEh1IDx3ZWhAbWlj cm9zb2Z0LmNvbT47IGZyZWVic2QtaGFja2Vyc0BGcmVlQlNELm9yZw0KPj5TdWJqZWN0OiBSZTog W0VYVEVSTkFMXSBSZTogZW5hYmxpbmcgc2FtZSBQUEkgaW50ZXJydXB0IHRvIGFsbCBDUFUgaW4N Cj4+QVJNNjQgU01QDQo+Pg0KPj5PbiBNb24sIE1heSAxNSwgMjAyMyBhdCAyOjQx4oCvQU0gU291 cmFkZWVwIENoYWtyYWJhcnRpDQo+PjxzY2hha3JhYmFydGlAbWljcm9zb2Z0LmNvbT4gd3JvdGU6 DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+PiA+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+ PiA+RnJvbTogS3lsZSBFdmFucyA8a2V2YW5zQGZyZWVic2Qub3JnPg0KPj4+ID5TZW50OiBNb25k YXksIE1heSAxNSwgMjAyMyAxMDozNiBBTQ0KPj4+ID5UbzogU291cmFkZWVwIENoYWtyYWJhcnRp IDxzY2hha3JhYmFydGlAbWljcm9zb2Z0LmNvbT4NCj4+PiA+Q2M6IFdlaSBIdSA8d2VoQG1pY3Jv c29mdC5jb20+OyBmcmVlYnNkLWhhY2tlcnNARnJlZUJTRC5vcmcNCj4+PiA+U3ViamVjdDogUmU6 IFtFWFRFUk5BTF0gUmU6IGVuYWJsaW5nIHNhbWUgUFBJIGludGVycnVwdCB0byBhbGwgQ1BVDQo+ Pj4gPmluDQo+Pj4gPkFSTTY0IFNNUA0KPj4+ID4NCj4+PiA+T24gU3VuLCBNYXkgMTQsIDIwMjMg YXQgOTo1OeKAr0FNIFNvdXJhZGVlcCBDaGFrcmFiYXJ0aQ0KPj4+ID48c2NoYWtyYWJhcnRpQG1p Y3Jvc29mdC5jb20+IHdyb3RlOg0KPj4+ID4+DQo+Pj4gPj4NCj4+PiA+Pg0KPj4+ID4+DQo+Pj4g Pj4gPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4gPj4gPkZyb206IEt5bGUgRXZhbnMg PGtldmFuc0BmcmVlYnNkLm9yZz4NCj4+PiA+PiA+U2VudDogRnJpZGF5LCBNYXkgMTIsIDIwMjMg MTA6NDAgUE0NCj4+PiA+PiA+VG86IFNvdXJhZGVlcCBDaGFrcmFiYXJ0aSA8c2NoYWtyYWJhcnRp QG1pY3Jvc29mdC5jb20+DQo+Pj4gPj4gPkNjOiBXZWkgSHUgPHdlaEBtaWNyb3NvZnQuY29tPjsg ZnJlZWJzZC1oYWNrZXJzQEZyZWVCU0Qub3JnDQo+Pj4gPj4gPlN1YmplY3Q6IFtFWFRFUk5BTF0g UmU6IGVuYWJsaW5nIHNhbWUgUFBJIGludGVycnVwdCB0byBhbGwgQ1BVIGluDQo+Pj4gPj4gPkFS TTY0IFNNUA0KPj4+ID4+ID4NCj4+PiA+PiA+T24gRnJpLCBNYXkgMTIsIDIwMjMgYXQgOTo1MeKA r0FNIFNvdXJhZGVlcCBDaGFrcmFiYXJ0aQ0KPj4+ID4+ID48c2NoYWtyYWJhcnRpQG1pY3Jvc29m dC5jb20+IHdyb3RlOg0KPj4+ID4+ID4+DQo+Pj4gPj4gPj4NCj4+PiA+PiA+Pg0KPj4+ID4+ID4+ DQo+Pj4gPj4gPj4gPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4gPj4gPj4gPkZyb206 IFNvdXJhZGVlcCBDaGFrcmFiYXJ0aQ0KPj4+ID4+ID4+ID5TZW50OiBNb25kYXksIE1heSA4LCAy MDIzIDY6MzkgUE0NCj4+PiA+PiA+PiA+VG86IEt5bGUgRXZhbnMgPGtldmFuc0BmcmVlYnNkLm9y Zz4NCj4+PiA+PiA+PiA+Q2M6IFdlaSBIdSA8d2VoQG1pY3Jvc29mdC5jb20+OyBmcmVlYnNkLWhh Y2tlcnNARnJlZUJTRC5vcmcNCj4+PiA+PiA+PiA+U3ViamVjdDogZW5hYmxpbmcgc2FtZSBQUEkg aW50ZXJydXB0IHRvIGFsbCBDUFUgaW4gQVJNNjQgU01QDQo+Pj4gPj4gPj4gPg0KPj4+ID4+ID4+ ID5IaSAsDQo+Pj4gPj4gPj4gPg0KPj4+ID4+ID4+ID5XaGlsZSB1c2luZyBTTVAgaW4gQVJNNjQg SHlwZXItViB3ZSBhcmUgZ2V0dGluZyBzdHVjayBpbiBib290DQo+Pj4gPj4gPj4gPmlmIHRoZXJl IGlzIGEgaW50ZXJydXB0IGZvciBWTUJ1cyBjb21pbmcgdG8gQ1BVMSBhbmQgVk1CdXMNCj4+PiA+ PiA+PiA+aW50ZXJydXB0IGhhbmRsZXIgaXMgbm90IGdldHRpbmcgdGhhdCBpbnRlcnJ1cHQuDQo+ Pj4gPj4gPj4gPg0KPj4+ID4+ID4+ID5JbiBBUk02NCBIeXBlci1WIHdlIGFyZSB1c2luZyBJUlEx OCBmb3IgVk1CdXMgYW5kIGl0IGlzIGEgUFBJIGludGVycnVwdC4NCj4+PiA+PiA+PiA+DQo+Pj4g Pj4gPj4gPkJ1dCBIeXBldi1WIGhvc3Qgc2VuZHMgaW50ZXJydXB0IHRvIHRoaXMgSVJRIDE4IGZv ciBib3RoIENQVTANCj4+PiA+PiA+PiA+YW5kDQo+Pj4gPj4gPj4gPkNQVTEgaW4gMkNQVSBzeXN0 ZW0uDQo+Pj4gPj4gPj4gPlRoaXMgaXMgYmFzZWQgb24gdGhlIGNvcnJlc3BvbmRpbmcgVk1CdXMg Y2hhbm5lbCB3aGljaA0KPj4+ID4+ID4+ID5hc3NpZ25lZCB3aXRoIHRoZQ0KPj4+ID5DUFUuDQo+ Pj4gPj4gPj4gPg0KPj4+ID4+ID4+ID5Ob3cgVk1CdXMgSVNSIGlzIGdldHRpbmcgdGhlIGludGVy cnVwdCBpbiBDUFUwIGJ1dCBub3QgZ2V0dGluZw0KPj4+ID4+ID4+ID5mcm9tDQo+PkNQVTEuDQo+ Pj4gPj4gPj4gPkFueSBpZGVhLCBob3cgd2UgY2FuIHVzZSB0aGUgc2FtZSBQUEkgMTggZm9yIGFs bCB0aGUgQ1BVIGNvcmVzPw0KPj4+ID4+ID4+ID4NCj4+PiA+PiA+PiA+QW55IGhlbHAgd2lsbCBi ZSBhcHByZWNpYXRlZCwgYXMgdGhpcyBpcyBibG9ja2luZyB0aGUNCj4+PiA+PiA+PiA+ZW5hYmxl bWVudCBvZiBGcmVlQlNEIGluIEF6dXJlIEFSTTY0Lg0KPj4+ID4+ID4+IFtTb3VyYWRlZXBdDQo+ Pj4gPj4gPj4gQ2FuIHNvbWVvbmUgcGxlYXNlIGhlbHAgbWUgaXQuDQo+Pj4gPj4gPj4NCj4+PiA+ PiA+DQo+Pj4gPj4gPkxvb2tpbmcgYXQgbGVhc3QgYXQgdGhlIEdJQyBpbXBsZW1lbnRhdGlvbiwg aXQgbG9va3MgbGlrZSB0aGlzIGlzDQo+Pj4gPj4gPmEga25vd24NCj4+bGltaXRhdGlvbjoNCj4+ PiA+PiA+DQo+Pj4gPj4gPiA4NzUgICAgICAgICAvKg0KPj4+ID4+ID4gODc2ICAgICAgICAgICog WFhYIC0gSW4gY2FzZSB0aGF0IHBlciBDUFUgaW50ZXJydXB0IGlzIGdvaW5nIHRvIGJlDQo+Pj4g Pj4gPmVuYWJsZWQgaW4gdGltZQ0KPj4+ID4+ID4gODc3ICAgICAgICAgICogICAgICAgd2hlbiBT TVAgaXMgYWxyZWFkeSBzdGFydGVkLCB3ZSBuZWVkIHNvbWUgSVBJDQo+Pj4gPj4gPmNhbGwgd2hp Y2gNCj4+PiA+PiA+IDg3OCAgICAgICAgICAqICAgICAgIGVuYWJsZXMgaXQgb24gb3RoZXJzIENQ VXMuIEZ1cnRoZXIsIGl0J3MgbW9yZQ0KPj4+ID4+ID5jb21wbGljYXRlZCBhcw0KPj4+ID4+ID4g ODc5ICAgICAgICAgICogICAgICAgcGljX2VuYWJsZV9zb3VyY2UoKSBhbmQgcGljX2Rpc2FibGVf c291cmNlKCkNCj4+PiA+PiA+c2hvdWxkIGFjdCBvbg0KPj4+ID4+ID4gODgwICAgICAgICAgICog ICAgICAgcGVyIENQVSBiYXNpcyBvbmx5LiBUaHVzLCBpdCBzaG91bGQgYmUgc29sdmVkDQo+Pj4g Pj4gPmhlcmUgc29tZWhvdy4NCj4+PiA+PiA+IDg4MSAgICAgICAgICAqLw0KPj4+ID4+ID4gODgy ICAgICAgICAgaWYgKGlzcmMtPmlzcmNfZmxhZ3MgJiBJTlRSX0lTUkNGX1BQSSkNCj4+PiA+PiA+ IDg4MyAgICAgICAgICAgICAgICAgQ1BVX1NFVChQQ1BVX0dFVChjcHVpZCksICZpc3JjLT5pc3Jj X2NwdSk7DQo+Pj4gPj4gPg0KPj4+ID4+ID5JIHRoaW5rIHdlIG5lZWQgc29tZXRoaW5nIC9saWtl LyB0aGlzOg0KPj4+ID4+ID5odHRwczovL3Blby8NCj4+PiA+Pg0KPj4+DQo+Pj4+cGxlLmZyJTJG JmRhdGE9MDUlN0MwMSU3Q3NjaGFrcmFiYXJ0aSU0MG1pY3Jvc29mdC5jb20lN0MzOWQ3YzUwODQ5 DQo+Yg0KPj4+ID42NA0KPj4+ID4+DQo+Pj4NCj4+Pj5lYWY3MGI2MDhkYjU1MDIwZmFlJTdDNzJm OTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclN0MxJTdDMA0KPj4lDQo+Pj4gPjdDNjM4MQ0K Pj4+ID4+DQo+Pj4NCj4+Pj45NzIzOTYxNTU0NDExMyU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhl eUpXSWpvaU1DNHdMakF3TURBaQ0KPkwNCj4+Qw0KPj4+ID5KUUlqb2lWMg0KPj4+ID4+DQo+Pj4N Cj4+Pj5sdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MzMDAwJTdDJTdDJTdD JnNkYXRhPWRYVnYNCj4+bkkNCj4+PiA+SGhOOQ0KPj4+ID4+ID5tZHdpUGtTSkt3TXlFS1lpNVN5 R091dGE1ekNaMXlzQ1ElM0QmcmVzZXJ2ZWQ9MA0KPj4+ID4+DQo+Pj4NCj4+Pj5lZWJzZC5vcmcl MkZ+a2V2YW5zJTJGcHBpLmRpZmYmZGF0YT0wNSU3QzAxJTdDc2NoYWtyYWJhcnRpJTQwbWljcm9z DQo+bw0KPj4+ID4+Zg0KPj4+ID4+ID50LmMNCj4+Pg0KPj4+b20lN0NjNWMzZDI1NGI5ZDg0MWU5 YWU5YjA4ZGI1MzBiYjNkMiU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQNCj43DQo+PmMNCj4+PiA+ Pg0KPj4+DQo+Pj4+ZDAxMWRiNDclN0MxJTdDMCU3QzYzODE5NTA4MjAyNzc0NDcwNiU3Q1Vua25v d24lN0NUV0ZwYkdaDQo+cw0KPj5iDQo+Pj4gPjMNCj4+PiA+Pg0KPj4+DQo+Pj4+ZDhleUpXSWpv aU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAl DQo+Mw0KPj5EDQo+Pj4gPj4NCj4+Pg0KPj4+PiU3QzMwMDAlN0MlN0MlN0Mmc2RhdGE9U3dvUjJ2 SHhoNlFRaHdwT2dGY1E5Mzc4bkRWb3ZoZEVLRVgNCj5vDQo+PkUNCj4+PiA+bw0KPj4+ID4+ID5n UEtzYyUzRCZyZXNlcnZlZD0wLCB0aG91Z2ggaXQgc3RpbGwgaGFzIHRoZSBjYXZlYXQgdGhhdCBQ UElzDQo+Pj4gPj4gPmVmZmVjdGl2ZWx5IGNhbm5vdCBiZSBmdWxseSBzZXR1cCBiZWZvcmUgU0lf U1VCX1NNUC4NCj4+PiA+PiA+U28sIGl0J3MgbGlrZWx5IGFsbW9zdCBhIE5PUCBmb3IgZXhpc3Rp bmcgcGxhdGZvcm1zICh3aWxsIGVtaXQgYQ0KPj4+ID4+ID53YXJuaW5nIHdpdGggYm9vdHZlcmJv c2UgZm9yIGFybXY4IHRpbWVycykgYnV0IG1pZ2h0IGRvIHRoZSB0cmljayBmb3IgeW91Lg0KPj4+ ID4+IFtTb3VyYWRlZXBdDQo+Pj4gPj4gVGhhbmtzIGZvciB0aGUgY2hhbmdlIGJ1dCBpdCBkaWQg bm90IHNvbHZlIHRoZSBwcm9ibGVtLiBTdGlsbCB0aGUNCj4+PiA+PiBpbnRlcnJ1cHQgaGFuZGxl ciB2bWJ1c19oYW5kbGVfaW50cihzdHJ1Y3QgdHJhcGZyYW1lICp0cmFwX2ZyYW1lKSwNCj4+PiA+ PiBpcyBub3QNCj4+PiA+Z2V0dGluZyBjYWxsZWQgZm9yIHRoZSBDUFUgMS4NCj4+PiA+PiBJdCBp cyBvbmx5IGdldHRpbmcgY2FsbGVkIGZvciBDUFUgMCBhbGwgdGhlIHRpbWUgaW4gQVJNNjQgYnV0 IGluDQo+Pj4gPj4geDg2IGl0IGlzIGdldHRpbmcgY2FsbGVkIGZvciBib3RoIENQVTEgYW5kIENQ VTAuDQo+Pj4gPg0KPj4+ID5JbnRlcmVzdGluZyEgSSBkbyBzZWUgb25lIHByb2JsZW0gd2l0aCB0 aGUgcGF0Y2ggKGFuZCBzb21lIGNvc21ldGljDQo+Pj4gPmlzc3Vlcyk6IHdlIHJlYWxseSBuZWVk IHRvIHRha2UgdGhlIGdpY19tdHggaW4gZ2ljX3YzX3NldHVwX3BlcmlwaCgpDQo+Pj4gPnJpZ2h0 IHVwIGZyb250IGJlY2F1c2UgQ1BVX1NFVCgpIHdvbid0IG5lY2Vzc2FyaWx5IGJlIGF0b21pYy4g VGhhdCdzDQo+Pj4gPm5vdCB0aGUgcHJvYmxlbSwgdGhvdWdoIGZvciBvdGhlciByZWFzb25zLCBi dXQgYWxzbyBiZWNhdXNlLi4uDQo+Pj4gPg0KPj4+ID4+IEZyb20gRERCIEkgaGF2ZSBjb2xsZWN0 ZWQgdGhpcyBkYXRhIGluIGFybTY0LiBpcnExOCBpcyBmb3Igdm1idXMuDQo+Pj4gPj4gZGI+IHNo b3cgaXJxcw0KPj4+ID4+IC4uLg0KPj4+ID4+IGlycTE4ICA8Z2ljMCxwMj46IGNwdSAwMyBjbnQg NDExDQo+Pj4gPj4gLi4uLg0KPj4+ID4+DQo+Pj4gPg0KPj4+ID5UaGF0IHdvdWxkIHNlZW0gdG8g aW5kaWNhdGUgdGhhdCBib3RoIENQVXMgaGF2ZSBzZXQgaXQgdXAsIGJ1dCBpdA0KPj4+ID5vY2N1 cnMgdG8gbWUgdGhhdCBlbmFibGVfaW50ciBhbHNvIG5lZWRzIHRoZSBzYW1lIHRyZWF0bWVudC4g TGV0J3MNCj4+PiA+d2lwZSBnaWNfdjMuYyBiYWNrIHRvIGEgY2xlYW4gc2xhdGUgYW5kIHRyeSBh IHYyIG9mIHRoZSBwYXRjaDoNCj4+PiA+aHR0cHM6Ly9wZW8vDQo+Pj4NCj4+PnBsZS5mciUyRiZk YXRhPTA1JTdDMDElN0NzY2hha3JhYmFydGklNDBtaWNyb3NvZnQuY29tJTdDYmViNzg1NThiZWYN Cj4wDQo+PjQNCj4+Pg0KPj4+YzcyODIxNjA4ZGI1NTRiZTBmOCU3QzcyZjk4OGJmODZmMTQxYWY5 MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzANCj4lDQo+PjdDNjM4MQ0KPj4+DQo+Pj45NzU1Njc0MDI3 MDk3MSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUwNCj5DDQo+ PkpRSWpvaVYyDQo+Pj4NCj4+Pmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3 QzMwMDAlN0MlN0MlN0Mmc2RhdGE9SVh6TWINCj52DQo+PnFMcVkNCj4+PiA+dTZncUxzTjBwTmJH cTNndkRSVW9YOWJZbjlVQjdOWFJVJTNEJnJlc2VydmVkPTANCj4+PiA+ZWVic2Qub3JnJTJGfmtl dmFucyUyRnBwaS0NCj4+Pg0KPj4+djIuZGlmZiZkYXRhPTA1JTdDMDElN0NzY2hha3JhYmFydGkl NDBtaWNyb3NvZnQuY29tJTdDMzlkN2M1MDg0OWI2NA0KPmUNCj4+YQ0KPj4+DQo+Pj5mNzBiNjA4 ZGI1NTAyMGZhZSU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlNw0K PkMNCj4+Ng0KPj4+DQo+Pj4zODE5NzIzOTYxNTU0NDExMyU3Q1Vua25vd24lN0NUV0ZwYkdac2Iz ZDhleUpXSWpvaU1DNHdMakF3TQ0KPkQNCj4+QWkNCj4+Pg0KPj4+TENKUUlqb2lWMmx1TXpJaUxD SkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzMwMDAlN0MlN0MlN0Mmc2QNCj5hDQo+PnQN Cj4+Pg0KPj4+YT1RTERtOFgxeXV1R095Mk9lZVl4c25GJTJGTmV1Y2VBb2d3NTE2MVU3Wkg2JTJC cyUzRCZyZXNlcnZlZA0KPj0NCj4+MA0KPj4+ID4NCj4+PiA+Rm9yIG5vdyB3ZSBqdXN0IHByZXRl bmQgdGhhdCB3ZSB3b24ndCBiZSBkaXNhYmxpbmcgYW55IFBQSXMgYXMgYQ0KPj4+ID5wcm9vZi1v Zi0NCj4+Y29uY2VwdC4NCj4+PiA+DQo+Pj4gW1NvdXJhZGVlcF0NCj4+PiBUaGlzIGlzIGNhdXNp bmcgcGFuaWMgZHVyaW5nIGJvb3Q6DQo+Pj4gcG11MDogTUFEVDogY3B1IDAgKG1waWRyIDApIGly cSAwIGxldmVsLXRyaWdnZXJlZA0KPj4+IHBtdTA6IE1BRFQ6IGNwdSAxIChtcGlkciAxKSBpcnEg MCBsZXZlbC10cmlnZ2VyZWQNCj4+PiBwYW5pYzogZ2ljX3YzX2VuYWJsZV9pbnRyX2ltcGw6IFVu c3VwcG9ydGVkIElSUSAwIGNwdWlkID0gMCB0aW1lID0gMQ0KPj4+IEtEQjogc3RhY2sgYmFja3Ry YWNlOg0KPj4+IGRiX3RyYWNlX3NlbGYoKSBhdCBkYl90cmFjZV9zZWxmDQo+Pj4gZGJfdHJhY2Vf c2VsZl93cmFwcGVyKCkgYXQgZGJfdHJhY2Vfc2VsZl93cmFwcGVyKzB4MzANCj4+PiB2cGFuaWMo KSBhdCB2cGFuaWMrMHgxM2MNCj4+PiBwYW5pYygpIGF0IHBhbmljKzB4NDQNCj4+PiBnaWNfdjNf ZW5hYmxlX2ludHJfaW1wbCgpIGF0IGdpY192M19lbmFibGVfaW50cl9pbXBsKzB4ZWMNCj4+PiBp bnRyX3NldHVwX2lycSgpIGF0IGludHJfc2V0dXBfaXJxKzB4MzY4DQo+Pj4gYnVzX3NldHVwX2lu dHIoKSBhdCBidXNfc2V0dXBfaW50cisweDk0DQo+Pj4gcG11X2F0dGFjaCgpIGF0IHBtdV9hdHRh Y2grMHg2NA0KPj4+IHBtdV9hY3BpX2F0dGFjaCgpIGF0IHBtdV9hY3BpX2F0dGFjaCsweDk0DQo+ Pj4gZGV2aWNlX2F0dGFjaCgpIGF0IGRldmljZV9hdHRhY2grMHgzZjgNCj4+PiBkZXZpY2VfcHJv YmVfYW5kX2F0dGFjaCgpIGF0IGRldmljZV9wcm9iZV9hbmRfYXR0YWNoKzB4N2MNCj4+PiBidXNf Z2VuZXJpY19uZXdfcGFzcygpIGF0IGJ1c19nZW5lcmljX25ld19wYXNzKzB4ZmMNCj4+PiBidXNf Z2VuZXJpY19uZXdfcGFzcygpIGF0IGJ1c19nZW5lcmljX25ld19wYXNzKzB4YWMNCj4+PiBidXNf Z2VuZXJpY19uZXdfcGFzcygpIGF0IGJ1c19nZW5lcmljX25ld19wYXNzKzB4YWMNCj4+PiBidXNf c2V0X3Bhc3MoKSBhdCBidXNfc2V0X3Bhc3MrMHg0Yw0KPj4+IG1pX3N0YXJ0dXAoKSBhdCBtaV9z dGFydHVwKzB4MWZjDQo+Pj4gdmlydGRvbmUoKSBhdCB2aXJ0ZG9uZSsweDcwDQo+Pj4gS0RCOiBl bnRlcjogcGFuaWMNCj4+PiBbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0NCj4+PiBTdG9wcGVk IGF0ICAgICAga2RiX2VudGVyKzB4NDQ6IHN0ciAgICAgeHpyLCBbeDE5LCAjMzMyOF0NCj4+PiBE ZXRhaWxzIG9mIHRoZSBsb2cgSSBoYXZlIHBhc3RlZCBoZXJlOg0KPj4+IGh0dHBzOi8vcGFzdC8N Cj4+Pg0KPj5lYmluLmNvbSUyRmVRTjVSbnREJmRhdGE9MDUlN0MwMSU3Q3NjaGFrcmFiYXJ0aSU0 MG1pY3Jvc29mdC5jb20lN0MNCj5iDQo+PmViNw0KPj4+DQo+Pjg1NThiZWYwNGM3MjgyMTYwOGRi NTU0YmUwZjglN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyUNCj43DQo+PkMxJTdD DQo+Pj4NCj4+MCU3QzYzODE5NzU1Njc0MDI3MDk3MSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhl eUpXSWpvaU1DNHdMag0KPkENCj4+d01EQWlMQ0oNCj4+Pg0KPj5RSWpvaVYybHVNeklpTENKQlRp STZJazFoYVd3aUxDSlhWQ0k2TW4wJTNEJTdDMzAwMCU3QyU3QyU3QyZzZGF0YT0NCj4+S1lmdw0K Pj4+IGQ4bm9rd3FmVnp2U01mZWxndjFUcmdNUFl0ekF0RzlOJTJGUENSVU1RJTNEJnJlc2VydmVk PTANCj4+DQo+PkkgdGhpbmsgeW91IGZldGNoZWQgYSBicm9rZW4gdmVyc2lvbiBvZiB0aGUgcGF0 Y2ggLS0gdGhlcmUgd2FzIG1heWJlIGFuDQo+PmhvdXIgd2hlcmUgSSBrZXB0IHJlcGxhY2luZyBp dCBiZWNhdXNlIEkgZm91bmQgYSBwcm9ibGVtIGFuZCBmaXhlZCBpdCwNCj4+YnV0IGNyZWF0ZWQg YW5vdGhlciBvbmUgdG8gZml4IHRoYXQgSSBkaXNjb3ZlcmVkIG9uIHNvbWUgaGFyZHdhcmUgSQ0K Pj50ZXN0ZWQgb24uIEkndmUgcmUtdXBsb2FkZWQgdGhlIGNvcnJlY3QgZGlmZiBhdA0KPj5odHRw czovL25hbTA2LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0El MkYlMkZwZW9wbA0KPj5lLmZyJTJGJmRhdGE9MDUlN0MwMSU3Q3NjaGFrcmFiYXJ0aSU0MG1pY3Jv c29mdC5jb20lN0NjN2UzMTJkNWYxMWI0DQo+M2ViMg0KPj40NDIwOGRiNTU2NmQ2ZWMlN0M3MmY5 ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNg0KPjM4MTk3NjcyNA0KPj42 Mzg0NjAyNSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJ am9pVjINCj5sdU16SWlMQw0KPj5KQlRpSTZJazFoYVd3aUxDSlhWQ0k2TW4wJTNEJTdDMzAwMCU3 QyU3QyU3QyZzZGF0YT1YZmdDdk83cWhuc3ANCj5WdGFqTHU1RA0KPj40NFpkc0NRRDFxR1N1ODBl bEVPMDN0ZyUzRCZyZXNlcnZlZD0wDQo+PmVlYnNkLm9yZyUyRn5rZXZhbnMlMkZwcGktDQo+PnYz LmRpZmYmZGF0YT0wNSU3QzAxJTdDc2NoYWtyYWJhcnRpJTQwbWljcm9zb2Z0LmNvbSU3Q2JlYjc4 NTU4YmVmMDRjDQo+Nw0KPj4yODIxNjA4ZGI1NTRiZTBmOCU3QzcyZjk4OGJmODZmMTQxYWY5MWFi MmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlNw0KPkMNCj4+NjM4MTk3NTU2NzQwMjcwOTcxJTdDVW5rbm93 biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNDQo+RA0KPj5BaUxDSlFJam9pVjJsdU16 SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MzMDAwJTdDJTdDJTdDJnMNCj5kDQo+ PmF0YT1MSCUyRlY3dFhFeEdzTURSVkxsWkFFcTcyWEdRRjZ2UjZaJTJCbjBUZG9VNHVlZyUzRCZy ZXNlcnZlZD0NCj4wDQo+Piwgd2hpY2ggY2FuJ3QgaGl0IHRoZSBwYW5pYyBiZWNhdXNlIGlycSA8 PSBHSUNfTEFTVF9QUEkgYWxsIHJldHVybg0KPj5lYXJseSAodGhlIHZlcnNpb24geW91IGhhdmUs IHRoZSBmaXJzdCBicmFuY2ggaW4NCj4+Z2ljX3YzX2VuYWJsZV9pbnRyX2ltcGwgd2FzIHByb2Jh Ymx5IGFuIGluY29ycmVjdCBgaWYgKGlzcmMtPmlzcmNfZmxhZ3MNCj4+JiBJTlRSX0lTUkNGX1BQ SSlgDQo+Pg0KPltTb3VyYWRlZXBdIEl0IGhhcyB3b3JrZWQhIFRoYW5rcyBhIGxvdC4gV2Ugc2hv dWxkIGdldCBpdCBjb21taXR0ZWQgaW4gc3JjLg0KPkJlZm9yZSBJIGNvbW1pdCB0aGUgU01QIHJl bGF0ZWQgY2hhbmdlcyBmb3IgSHlwZXItViBkcml2ZXIuDQo+PlRoYW5rcywNCltTb3VyYWRlZXBd IEJ1dCBhZnRlciBpbnN0YWxsIGl0IGlzIGtlZXAgZ2V0dGluZyByZWJvb3RlZCBhZnRlciBoaXR0 aW5nIGEgcGFuaWMNCg0KDQptYnVzMDogdm1idXNfaGFuZGxlX2ludHIxIGZvciBjcHUgMA0Kdm1i dXMwOiB0aGUgaXJxIDE4DQp2bWJ1czA6IHNtcF9zdGFydGVkID0gMA0KS0R2bWJ1czA6IHZtYnVz X2hhbmRsZV9pbnRyMSBmb3IgY3B1IDANCkI6IHN0YWNrIGJhY2t0cmFjZToNCmRiX3RyYWNlX3Nl bGYoKSBhdCBkYl90cmFjZV9zZWxmDQpkYl90cmFjZV9zZWxmX3dyYXBwZXIoKSBhdCBkYl90cmFj ZV9zZWxmX3dyYXBwZXIrMHgzMA0KbWlfc3dpdGNoKCkgYXQgbWlfc3dpdGNoKzB4MjdjDQpzbGVl cHFfc3dpdGNoKCkgYXQgc2xlZXBxX3N3aXRjaCsweGZjDQpfc2xlZXAoKSBhdCBfc2xlZXArMHgy OTQNCnZtYnVzX3hhY3Rfd2FpdDEoKSBhdCB2bWJ1c194YWN0X3dhaXQxKzB4MTIwDQp2bWJ1c19z eXNpbml0KCkgYXQgdm1idXNfc3lzaW5pdCsweDZhNA0KbWlfc3RhcnR1cCgpIGF0IG1pX3N0YXJ0 dXArMHgxZmMNCnZpcnRkb25lKCkgYXQgdmlydGRvbmUrMHg3MA0KS0RCOiByZWVudGVyaW5nDQpL REI6IHN0YWNrIGJhY2t0cmFjZToNCmRiX3RyYWNlX3NlbGYoKSBhdCBkYl90cmFjZV9zZWxmDQpk Yl90cmFjZV9zZWxmX3dyYXBwZXIoKSBhdCBkYl90cmFjZV9zZWxmX3dyYXBwZXIrMHgzMA0Ka2Ri X3JlZW50ZXIoKSBhdCBrZGJfcmVlbnRlcisweDQ0DQptaV9zd2l0Y2goKSBhdCBtaV9zd2l0Y2gr MHgyODANCnNsZWVwcV9zd2l0Y2goKSBhdCBzbGVlcHFfc3dpdGNoKzB4ZmMNCl9zbGVlcCgpIGF0 IF9zbGVlcCsweDI5NA0Kdm1idXNfeGFjdF93YWl0MSgpIGF0IHZtYnVzX3hhY3Rfd2FpdDErMHgx MjANCnZtYnVzX3N5c2luaXQoKSBhdCB2bWJ1c19zeXNpbml0KzB4NmE0DQptaV9zdGFydHVwKCkg YXQgbWlfc3RhcnR1cCsweDFmYw0KdmlydGRvbmUoKSBhdCB2aXJ0ZG9uZSsweDcwDQoNCkxvb2tz IGxpa2Ugdm1idXNfc3lzaW5pdCgpIGlzIGdldHRpbmcgY2FsbGVkIGV2ZW4gYmVmb3JlIFNNUCBo YXMgc3RhcnRlZCBhZnRlciBpbnN0YWxsYXRpb24uDQpXb25kZXJpbmcgd2hhdCBjb3VsZCBiZSB0 aGUgcmVhc29uLiANCkFsc28gYW55IGlkZWEgaG93IHRvIGRpc2FibGUgdGhpcyByZWJvb3QgY3lj bGUgcG9zdCBwb3N0IHBhbmljLCBzbyB0aGF0IEkgY2FuIGdldCB0aGUgYmFja3RyYWNlIHByb3Bl cmx5Lg0KPj4NCj4+S3lsZSBFdmFucw0K