From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.14479.1636475621592913392 for ; Tue, 09 Nov 2021 08:33:42 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=TX70YzjD; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10163"; a="232322892" X-IronPort-AV: E=Sophos;i="5.87,220,1631602800"; d="scan'208";a="232322892" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2021 08:33:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,220,1631602800"; d="scan'208";a="669463338" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga005.jf.intel.com with ESMTP; 09 Nov 2021 08:33:36 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 9 Nov 2021 08:33:35 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 9 Nov 2021 08:33:35 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.169) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Tue, 9 Nov 2021 08:33:35 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MLHgB9Fp4rhSVpfcVFsquJycouMY7nmNtApjZf2tcmCWHIHJ+OAi0YGppe2px+NisUbu2woLZhud6RBSfcuHZK062QRsAI7vigzhROPFhr3kWsEhby9arIjsVM2H5aAbKrfYSWFYCjzQ22+GWIMvT1wcoIN9KtlxKjEEAMB/uFkcmc2rW06wcSWkX6zTZHfGOtL5nTchHplubcFl2o1H/9FlO6aZNvRsH+eCgRvL/BepVqel3cV5SQAS4Pive7UOu+USKP9HH6aCWz7RqZ8oe6rUlp4utrvCTs/6VfHNyovT56YCiZSDf97ZpMO6QfXQ5AsGRZ6OgyCIWjtqXKrqPg== 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=uZ62gcw/MpNtkUM01AcSO0ww9R/wHYIKNyGsXF8FOPg=; b=O9ac4EeyjTL530/EjiBxtNwvunOjsaqcV1cjgnomjl0NjrRMZr3f0XkHqzYPybXN7YvKnLpqAhNcaxk1I4aGy79LKPxlFKXB2wEhZcTHwjvWRj8xSyU2jLEOOa2yrfQMeOezkwafHdsLXyYob/ChB3/PSAqdOXVK43jbOZ/YWlc/dmEtc7nJ/W8AmGuA3Zyq5DjInakEFOoY/qQRpJS5+rWuvLUW9mPRD3gSVqWK6rHkUY5jIe7JeVxYySbYx81NdTRef1NR2zCt5d9P1Tg3NeApKMVOU+54ix/bJGfz4IDIufYZ/8EucfZfewSiaRZ8G7zl6bscDE8uyA2wQihyng== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uZ62gcw/MpNtkUM01AcSO0ww9R/wHYIKNyGsXF8FOPg=; b=TX70YzjD0tiNclHHcXWVAIxx0Nfe3htillxBg8FePoUM1bFJnWauJtxRBHUNlmqQ/uZuV9OxzoVb3CB/gbGL/gmX3ddJ3PkO9j81nem6mcp3U4Vw1A2CiBBhCw9vPCEzphNAbpyuC4t8x/RJLg1jVzBJ0K/U7e2KE6D5f0aMpzg= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MWHPR11MB1456.namprd11.prod.outlook.com (2603:10b6:301:b::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Tue, 9 Nov 2021 16:33:32 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a%6]) with mapi id 15.20.4690.015; Tue, 9 Nov 2021 16:33:32 +0000 From: "Michael D Kinney" To: =?utf-8?B?TWFydmluIEjDpHVzZXI=?= , "devel@edk2.groups.io" , "Kinney, Michael D" CC: Andrew Fish , Michael Kubacki , Leif Lindholm , "mikuback@linux.microsoft.com" , "rebecca@nuviainc.com" , Bret Barkelew Subject: Re: [edk2-devel] Progress on getting Uncrustify working for EDK2? Thread-Topic: [edk2-devel] Progress on getting Uncrustify working for EDK2? Thread-Index: AQHXktW1F/CJbarBAE2s9kKUu+rpv6t2hbMAgAABlQCAAAXQAIBRHuOAgACBL4D//+ir8IAACBaAgAACIoCAADl6AIAycxlwgAAahgCAAAC2oIAAGoYAgAACyTCAAE0aAIAAg6mQgAANpQCAAACMkA== Date: Tue, 9 Nov 2021 16:33:31 +0000 Message-ID: References: <2679bfa3-b4ec-d8e9-7e56-54ebe42d9001@posteo.de> <9fe0f984-db9d-9aec-0b44-5d30791a2855@linux.microsoft.com> <20211007104813.wa4rmfsqgcpvnzwt@leviathan> <07d5c8bc-40b2-4e99-3b3d-4c8ac4e14220@posteo.de> <438B4D66-2CFB-45E3-AF75-42342F0B1E67@apple.com> <07F39C4E-DA8E-4650-A48B-66DA2E08314B@apple.com> <7e579772-2a21-aaf5-26cc-faed0a1950e1@posteo.de> In-Reply-To: <7e579772-2a21-aaf5-26cc-faed0a1950e1@posteo.de> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: posteo.de; dkim=none (message not signed) header.d=none;posteo.de; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f2f1b1a1-38d0-464f-fa35-08d9a39eab27 x-ms-traffictypediagnostic: MWHPR11MB1456: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: C7qeKDsM0FM52LwrU9vcsYloJtbgmoEGT2pLUbnzo8vVsIL4vnf8BoV3mYuvy0emYOQnJ9aD/3eaoHiWXbzHyX0nvyYtoUCmeBQLhuYpeyT7XBOKmPUeCD6piFwHWSDU1rjBU2nchOjOvI7TYFlAptZ4/kHjF0Q/e/aI3k/Fvp8Qmkfl5Fh6IdPISo8FwigVO3h/bLhlNXP0bWza+qcPIeHiRgHiOPa0okD2duYaBV2gZdvV+uwAJapUlWZFgwjOd0EyHSIUwVoBpVc/4wdxCk0YC2Sw+AUrEt3kjFJY+shML9D8gwXRWOC3SgHI1qGWYmQUiQQ1H4bvcUBMp/2YlDdhG7vhB+1htDHNzoa0MZc8dYEg63RJV+eC5+rDhtrcw1e9I902nBI06Aq3E2fxJ7nVS5ODtsFgAZkBGvAxb2CjbxjDSlRZJFbKPsLk6jBcxSkoBQ8m8rUUPWJ3XKULFq2p2WuKsWuoTqFQh6wgFpK5Y+KafAQ3IUqU1jDTGLbcy5xiLhH4Rrbz2X8t84oqJbQruhK1gQX5Qzhkx/6Ed92DyIe9XagREzvnA2nB36Vm56sJOHtgtrkPVbx79wrbSwXt+Hrkz1d0ve0UkjKzFTPpqVOecccQx4ekcMTn1wXQ5aZ18HYOlPHX6+J+NZOout14rBTNLLmHjtkBDVEYSMCXo1ptlJhORyqdNVoP/LNAmSIu8ndj1zfBwqYqg4AqeV39OQcS9F8fpN78cvng5jIh2rSkczkYt5wtHj9gYJ1vKF3ziSlmvOOlvuTJd5K8FbrEvyJ0PvwflLQFymd95Fd+uYj7bNYkjBC1l8CWFIR6KuhGnlutk9fdBAbScbYBGw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(76116006)(66946007)(64756008)(508600001)(66446008)(186003)(66574015)(86362001)(26005)(9686003)(8936002)(82960400001)(110136005)(38100700002)(966005)(83380400001)(53546011)(54906003)(71200400001)(66556008)(122000001)(66476007)(30864003)(55016002)(6506007)(2906002)(33656002)(4326008)(5660300002)(7696005)(8676002)(38070700005)(52536014)(316002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cU9FWlk3Y0pnU0ZhejBVaVlPWVNHSi95MHZwZXhscktjZ0J2aXpRZGp1bC8x?= =?utf-8?B?WUhFM0ZDU0tKeGUvR1RkY29HOThXN0VCd2k2bDI4TzV1TCtwRU9TOW56Tlkr?= =?utf-8?B?MlUwamxjc0I5TjJGS2tYd29xMG5HY0xaNzhscmVPSjAzak5XNXhxUzhIM0o4?= =?utf-8?B?UDljbzNmL1V6UFYzY3FoZ0lGUmFwL2llNFdoZTdoQk9tdGpPL29QNlFVVEhB?= =?utf-8?B?S3FsNkRLemw3Yy9abmJvNFdXOXVidVdnS0QyTHN2NlFLZWxhN0JubUw3eFRq?= =?utf-8?B?RzNpK3g0MTA3ZXZzY0JZRDZYWDFKb1pMOUUvMmU3SXd3VWtta2xBeXBscysy?= =?utf-8?B?SXIrcGs2VE15Rjd1aFFVVGlZVHVoamxjN3ovNlQ4aVprOXRKQ0xtaE80MEc0?= =?utf-8?B?bGIxRjBuS3BxNFRVeURtRXRZZnlIbXB4dkRvckV4MkV1blNLa1hDaFYrTm12?= =?utf-8?B?VHp3RkdFcGNRd2lOc1UxSmhBNGNVL0dYTzJsM0lreVZjOGJrL0tBdTVCSlM2?= =?utf-8?B?ZDY3ekxCOHYzZitjRXNubXY3NzExN2xBWGlWWk9ibXZoODZJd1ZUUlNCT1hi?= =?utf-8?B?MCtSd0NmWG9wVkZzcWlqMEUzb3p6UW5qdElvL0hEZGN0UDdtQTJsaGhzNVRU?= =?utf-8?B?d0NWTkdCdmN2Umt3Tmw0MHVCRmx1K1NvNkI1QjhjcGNLeVVVd25uZ3Nlby8v?= =?utf-8?B?NXZNcHBKVG1ESkhoai93ck5JR1JLYUlXQnRGeWZCb3ViZlpmWk44ZnN4ZFhX?= =?utf-8?B?UXdDbmtuajV1M0RuV2xpQm1uK0FxNFA4SitPUTRWUVREdnBpRDZpM3ZtMWN4?= =?utf-8?B?M0tOZXl6OEZGVXBrUzdScGk0QmNIREN6UHM5UEppTWduQjNUNUUxUStldzhp?= =?utf-8?B?MEhORm91UWJGRUVyaldHV1hCTmMrVkt0aVFseUk2RkFscFlsekRic1hjNnc4?= =?utf-8?B?S1NVMk4wWGNmVEU3aHo4SHVOM0JIQjE4VWFCck5BUjZ1QWYySkxxQ2RML3Ax?= =?utf-8?B?c2h6aktlY1c4ZXQzRHM3YzBGam4rcFlRVzVGOHZnUWFKUFluQy9hcE1KdVpS?= =?utf-8?B?VHladzlHbjRQMGRLNU1zeEpXVTlLRVB4a0tpWitxVVlRdEtITkJpVFBsVTdz?= =?utf-8?B?MXppRjlFV1hlNzM0QmFWZnFNMVNNcVRXTzhTaDRvSHdZWURGUGkwaUpWUDQ0?= =?utf-8?B?TlZCcHpCbnB3a2IweTZtWTErMkZzVFBSTjZhL2VyMEhyR2Y0T2xMQ3RURkd1?= =?utf-8?B?Y0dxYWg2K1ZVY25WcDJrZG9henJjZ1RXWFZ4TFgvZFB4TENXRllndXY2bUpH?= =?utf-8?B?b2JJL0dNZG9ObzBqbzhpWkhmei81SmpuY21rVjVYcG4wWTJya0pqZ0NEQ20w?= =?utf-8?B?b3g3dituOWZha3djR2g2NmpobkhNVWZsRGdMaXlINkY1N29HUXErQ1k2aHp0?= =?utf-8?B?WTZKODI5SUFOMVVSTnlnaUVWMlJ3R2R4ekp5NjErM0ExWE0zSEFJdGFLQmRo?= =?utf-8?B?UWs0U0ZzSnVNcndaQ2V6NnRoM2wxMVlmcEVYTC85dENEZU5TR0VCQXRJM2xO?= =?utf-8?B?b2NaMmVtTEcvVFk4bzluVXRwNEJsVlhWUTZ5OTk2WDNod2UrRlVkR0U3N3Jv?= =?utf-8?B?TDNBMG5WeWVoU210a0F3a2IrcGRJajdndDZ1T3ZKaVdKQi9QdDN6dGVhMGNs?= =?utf-8?B?SElKbWtVTjZnTGxKYVBZM1lkdnYyQUo4MytzcXNGWTZpU3BwVVU5TzNTelZ5?= =?utf-8?B?cHg3THJ4ZElnQ1V2VnJ1RExzWGc4MjlEZzZjZlZFK254emtRa2hQYWpLTndr?= =?utf-8?B?NTVYYTlTaUVmSDhDdTdSNVcwL2ZwZkp1akpLRUxhS1VVcjQ0T0NBYmZkZFln?= =?utf-8?B?dnJUbUZjaHRoakV0T2xjMWNram43eVByN0pUbmkrbjF2M1M5cGRCai96UDlK?= =?utf-8?B?aTZ1cHc0MkFQa2Fxb2NQeTJqenhRcGlGS3VlQnYzZTUzSVUvbzVQdjZ4bFU1?= =?utf-8?B?UjVuS01xajA2cmRkWHdlMXJkTml1ZkE4SEk0VXhCRTBEbDNxTGtBTEtBOW1J?= =?utf-8?B?blk0L3ZVcHl5UmRSTG8wZ3VxMkJocmlUQlNXUDJiMmhWTmlXVk43aklxZjNN?= =?utf-8?B?YUtoSllFU1JjNDllbUVOOXFqM1hmYWdHbmlsUnhLR1F3dEh3NUI0dDVlRmVv?= =?utf-8?B?aTZmdVpyL2pCejBBdURrWkd5elpSYkdrcnovOTZJSmVjb2hHaG1uSFg4em9K?= =?utf-8?B?dlV1K0RUZlNuYjlpTFk1bXRqbXl3PT0=?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2f1b1a1-38d0-464f-fa35-08d9a39eab27 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Nov 2021 16:33:31.9946 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: i5cNiLe5Th11hgvuAQxaUe3xo9i8WbI0RoYc29T7eLKnAcWF8tz4W8xZ9H4yzdvu9yOl5WFS8PVzQVCgmIEiynI3sBAFO35EyuUAUc/uBDY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1456 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWFydmluLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1hcnZp biBIw6R1c2VyIDxtaGFldXNlckBwb3N0ZW8uZGU+DQo+IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVy IDksIDIwMjEgODoxMyBBTQ0KPiBUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IEFuZHJldyBGaXNoIDxh ZmlzaEBhcHBsZS5jb20+OyBNaWNoYWVsIEt1YmFja2kgPE1pY2hhZWwuS3ViYWNraUBtaWNyb3Nv ZnQuY29tPjsgTGVpZiBMaW5kaG9sbSA8bGVpZkBudXZpYWluYy5jb20+Ow0KPiBtaWt1YmFja0Bs aW51eC5taWNyb3NvZnQuY29tOyByZWJlY2NhQG51dmlhaW5jLmNvbTsgQnJldCBCYXJrZWxldyA8 QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxd IFByb2dyZXNzIG9uIGdldHRpbmcgVW5jcnVzdGlmeSB3b3JraW5nIGZvciBFREsyPw0KPiANCj4g SGV5IE1pa2UsDQo+IA0KPiBPbiAwOS4xMS4yMSAxNjo0MywgS2lubmV5LCBNaWNoYWVsIEQgd3Jv dGU6DQo+ID4gSGkgTWFydmluLA0KPiA+DQo+ID4gQ29tbWVudHMgYmVsb3cuDQo+ID4NCj4gPiBN aWtlDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogZGV2 ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTWFy dmluIEjDpHVzZXINCj4gPj4gU2VudDogTW9uZGF5LCBOb3ZlbWJlciA4LCAyMDIxIDExOjMzIFBN DQo+ID4+IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ DQo+ID4+IENjOiBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPjsgZGV2ZWxAZWRrMi5ncm91 cHMuaW87IE1pY2hhZWwgS3ViYWNraSA8TWljaGFlbC5LdWJhY2tpQG1pY3Jvc29mdC5jb20+OyBM ZWlmIExpbmRob2xtDQo+ID4+IDxsZWlmQG51dmlhaW5jLmNvbT47IG1pa3ViYWNrQGxpbnV4Lm1p Y3Jvc29mdC5jb207IHJlYmVjY2FAbnV2aWFpbmMuY29tOyBCcmV0IEJhcmtlbGV3IDxCcmV0LkJh cmtlbGV3QG1pY3Jvc29mdC5jb20+DQo+ID4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gUHJv Z3Jlc3Mgb24gZ2V0dGluZyBVbmNydXN0aWZ5IHdvcmtpbmcgZm9yIEVESzI/DQo+ID4+DQo+ID4+ IEhleSBhbGwsDQo+ID4+DQo+ID4+IFRoYW5rcyBmb3IgdGhlIGVmZm9ydCENCj4gPj4NCj4gPj4g MS4gSWYgdmlydHVhbGx5IGV2ZXJ5b25lIHdpbGwgbmVlZCBVbmNydXN0aWZ5LCB3aHkgY2Fubm90 IGl0IGJlIGJ1aWx0IGFsb25nIHdpdGggQmFzZVRvb2xzIGZyb20gYSBzdWJtb2R1bGU/IEVzcGVj aWFsbHkNCj4gPj4gd2l0aCB0aGUgZm9yayB0aGF0IG1ha2VzIHNlbnNlLCBhZnRlciB0aGF0IGl0 IGRlcGVuZHMgb24gdGhlIHVwc3RyZWFtIChpdCBkb2VzIG5vdCBsb29rIHRvbyBuaWNlIHRvIG1l KS4NCj4gPiBObyBtYXR0ZXIgd2hlcmUgdW5jcnVzdGlmeSBzb3VyY2VzIGFyZSBob3N0ZWQsIGRl dmVsb3BlcnMgY2FuIGFsd2F5cyBjaG9vc2UgdG8gYnVpbGQgdGhlIHVuY3J1c3RpZnkgdG9vbCBs b2NhbGx5Lg0KPiA+IFByb3ZpZGluZyByZWxlYXNlIGJpbmFyaWVzIGZvciB0aGUgdG9vbCBtYXkg YmUgc2ltcGxlciBmb3Igc29tZSBjdXN0b21lcnMuDQo+ID4gVXNpbmcgcmVsZWFzZSBiaW5hcmll cyBmcm9tIEVESyBJSSBDSSBhZ2VudHMgd2lsbCByZWR1Y2UgQ0kgZXhlY3V0aW9uIHRpbWUuDQo+ IA0KPiBNeSBwb2ludCB3YXMgaXQnZCBiZSBuaWNlIGlmIGl0IChvcHRpb25hbGx5KSAianVzdCB3 b3JrZWQiLCBzbw0KPiBVbmNydXN0aWZ5IGNvdWxkIGJlIGJlIGJ1aWx0IGFzIHBhcnQgb2YgdGhl IGVkazIgQmFzZVRvb2xzIGJ1aWxkDQo+IHByb2Nlc3MsIG9yIHJlbGVhc2UgYmluYXJpZXMgY291 bGQgYmUgZG93bmxvYWRlZCBieSBzb21lIHNjcmlwdCwgb3INCj4gd2hhdGV2ZXIgcmVhbGx5LiBJ IGd1ZXNzIGl0IGNvdWxkIGJlIHRoZSBzYW1lIGxvZ2ljIGFzIGZvciB0aGUgQ0k/DQoNClNldHRp bmcgdXAgYSBkZXZlbG9wbWVudCB3b3JrIGVudmlyb25tZW50IGFsc28gcmVxdWlyZXMgdGhlIGlu c3RhbGxhdGlvbiBvZiB0b29scyBzdWNoIGFzIA0KY29tcGlsZXJzLCBOQVNNLCBJQVNMLCBldGMu ICBUaGVzZSBhcmUgbm90IGhhbmRsZWQgYXMgcGFydCBvZiBCYXNlVG9vbHMgdG9kYXkuDQoNCkkg YWdyZWUgd2Ugd2FudCB0byBtYWtlIHNldHRpbmcgb2YgdGhlIEVESyBJSSBkZXZlbG9wbWVudCBl bnZpcm9ubWVudCBhcyBlYXN5IGFzIHBvc3NpYmxlLg0KDQo+IA0KPiA+IFRoZSBnb2FsIGlzIHRv IHVwc3RyZWFtIGFsbCBjaGFuZ2VzIHRvIHVuY3J1c3RpZnkgcHJvamVjdC4gIEhvd2V2ZXIsIHdl IG5lZWQgdG8gZ2V0IHRoZSBFREsgSUkgY29tbXVuaXR5IHRvIHJldmlldw0KPiA+IGFuZCBhY2Nl cHQgdGhlIHN0eWxlIG9mIHRoZSBzb3VyY2UgY29kZSBwcm9kdWNlZCBieSB0aGlzIGZvcmsgb2Yg dW5jcnVzdGlmeS4gIFdlIGRvIG5vdCB3YW50IHRvIGRvIHRoaXMgdHlwZSBvZg0KPiA+IGNoYW5n ZSBtb3JlIHRoYW4gb25jZSwgc28gZ2V0dGluZyBldmVyeW9uZSB0byBhZ3JlZSB0byBhIHNwZWNp ZmljIGZvcm1hdCBpcyBjcml0aWNhbC4NCj4gPg0KPiA+IE9uY2UgdGhlIGNvbnRlbnQgaXMgdXBz dHJlYW1lZCwgdGhlbiB0aGUgRURLIElJIGNvbW11bml0aWVzIG1haW50ZW5hbmNlIG9mIGEgZm9y ayBjYW4gZW5kIGFuZCB0aGUgRURLIElJDQo+ID4gY29tbXVuaXR5IGNhbiB3b3JrIHdpdGggdGhl IHVuY3J1c3RpZnkgY29tbXVuaXR5IGZvciBhbnkgZnV0dXJlIGNoYW5nZXMgYW5kIGRldmVsb3Bl cnMgYW5kIENJIGFnZW50cyBjYW4NCj4gPiB1c2UgdGhlIHJlbGVhc2UgYmluYXJpZXMgYW5kL29y IHNvdXJjZXMgZnJvbSB0aGUgdW5jcnVzdGlmeSBwcm9qZWN0Lg0KPiANCj4gVGhhbmtzIQ0KPiAN Cj4gPj4gMi4gRG9lcyB0aGlzIGNvdmVyIENSTEYtPkxGPw0KPiA+IEFyZSB5b3UgcmVmZXJyaW5n IHRvIHVwZGF0aW5nIHRoZSBHaXRIdWIgcmVwbyBsaW5lIGVuZGluZ3Mgb24gdGhlIEdpdEh1YiBz ZXJ2ZXIgc2lkZT8gIFRoYXQgaXMgYSBkaWZmZXJlbnQNCj4gPiB0b3BpYyBhbmQgd2lsbCByZXF1 aXJlIGEgZGlmZmVyZW50IHRvb2wgYW5kIGRldmVsb3BlciBwcm9jZXNzIGNoYW5nZXMuDQo+IA0K PiBPSywgdGhhbmtzLg0KPiANCj4gPj4gMy4gV2lsbCB0aGVyZSBiZSBhIGxpc3Qgb2YgaW1wbGlj aXQgY2hhbmdlcyBmcm9tIHRoZSBjdXJyZW50IGNvZGUgc3R5bGU/DQo+ID4NCj4gPiBJIGJlbGll dmUgdGhlIHVuY3J1c3RpZnkgdG9vbCBiZWluZyBkaXNjdXNzZWQgaGVyZSBpcyBjb25mb3JtYW50 IHdpdGggdGhlIGN1cnJlbnQgRURLIElJIEMgQ29kaW5nIFN0eWxlIFNwZWNpZmljYXRpb24uDQo+ ID4gSSBhbSBub3QgYXdhcmUgb2YgYW55IGNoYW5nZXMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gdGhh dCBzcGVjLg0KPiANCj4gTmljZSwgdGhhbmtzIQ0KPiANCj4gPj4gNC4gSSBmZWVsIGxpa2UgaWYg dGhlIG90aGVyIGNvZGUgc3R5bGUgY2hhbmdlcyBhcmUgbm90IHRhY2tsZWQgbm93LCB0aGV5IHdp bGwgbmV2ZXIgYmUsIGJlY2F1c2Ugd2hvIHdhbnRzIHRvIGRlYWwgd2l0aA0KPiA+PiBjb250aW51 b3VzIGNvc21ldGljIGNvbW1pdHMuIEJ1dCBhcyBsb25nIGFzIHRoZXJlIGlzIGEgdG9vbCBub3cg dG8gZW5mb3JjZSB0aGUgY3VycmVudCBvbmUsIHRoYXQncyBub3QgYSBkZWFsYnJlYWtlciBhdA0K PiA+PiBhbGwuIDopDQo+ID4gVGhlIGFkZGl0aW9uYWwgZGlzY3Vzc2lvbiB0b3BpY3MgSSBoYXZl IHNlZW4gdGhhdCBhcmUgbm90IGFkZHJlc3NlZCBieSBzb3VyY2UgZm9ybWF0IHRvb2xzOg0KPiA+ DQo+ID4gMSkgQWxsb3dpbmcgbG9jYWwgdmFyaWFibGVzIHRvIGJlIGRlY2xhcmVkIGluIHNjb3Bl IG9mIGlmL3doaWxlL2Nhc2UuDQo+ID4gICAgICogQ3VycmVudCBzdHlsZSBvbmx5IGFsbG93cyBs b2NhbHMgdG8gYmUgZGVjbGFyZWQgYXQgdG9wIG9mIGZ1bmN0aW9uLg0KPiA+IDIpIEFsbG93IGxv Y2FsIHZhcmlhYmxlcyB0byBiZSBhc3NpZ25lZCB0byBhIHZhbHVlIGluIHRoZWlyIGRlY2xhcmF0 aW9uLg0KPiA+IDMpIEFsbG93IGxvY2FsIHZhcmlhYmxlcyB0aGF0IGFyZSBzdHJ1Y3QvYXJyYXkg dG8gYmUgYXNzaWduZWQgYSB2YWx1ZSBpbiB0aGVpciBkZWNsYXJhdGlvbg0KPiA+ICAgICAqIERl cGVuZHMgb24gc3VwcG9ydCBmb3IgbWVtY3B5KCkvbWVtc2V0KCkgaW50cmluc2ljcyBmb3IgYWxs IHN1cHBvcnRlZCB0b29sIGNoYWlucy4NCj4gPiA0KSBVc2Ugb2YgU1RBVElDIHZzIHN0YXRpYy4N Cj4gDQo+IFRoZXJlIHdlcmUgbW9yZSBwcm9wb3NhbHM6DQo+IA0KPiA1KSBJbmRlbnQgcmVsYXRp dmUgdG8gdGhlIGxhc3QgaW5kZW50YXRpb24sIG5vdCB0byBzeW1ib2wgbmFtZXMsIGkuZS4NCj4g DQo+ICDCoCBTdGF0dXMgPSBGdW5jdGlvbiAoDQo+ICDCoMKgwqAgQQ0KPiAgwqDCoMKgICk7DQo+ IA0KPiBpbnN0ZWFkIG9mDQo+IA0KPiAgICBTdGF0dXMgPSBGdW5jdGlvbiAoDQo+ICAgICAgICAg ICAgICAgICAgICAgQQ0KPiAgICAgICAgICAgICAgICAgICAgICk7PiANCj4gVW5jcnVzdGlmeSBt aWdodCBzdXBwb3J0IHRoaXMgbm93LCBidXQgSSBoYXZlIG5ldmVyIHNlZW4gZXZlbiBhIHNpbmds ZQ0KPiBJREUgdGhhdCBkb2VzLiBJdCdkIGJlIGtpbmQgb2YgYXdrd2FyZCB0byBhbHdheXMgd3Jp dGUgInN0eWxlLWJyb2tlbiINCj4gY29kZSBhbmQgcmVseSBvbiB0aGUgZXh0ZXJuYWwgdG9vbCB0 byBmaXggaXQuDQoNCg0KVGhlIEVESyBJSSBDIENvZGluZyBTdHlsZSBTcGVjIGFuZCB0aGUgZm9y ayBvZiB1bmNydXN0aWZ5IGFyZSBhbGlnbmVkDQp0byBzdXBwb3J0IGluZGVudCBvZiAyIHNwYWNl cyBmcm9tIHRoZSBzdGFydCBjb2x1bW4gb2YgdGhlIGZ1bmN0aW9uIG5hbWUuDQpUaGlzIHdvdWxk IGJlIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0IGZyb20geW91ciBleGFtcGxlOg0KDQogICAgU3Rh dHVzID0gRnVuY3Rpb24gKA0KICAgICAgICAgICAgICAgQQ0KICAgICAgICAgICAgICAgKTsNCg0K U2luY2UgbWFueSBvZiB0aGUgQVBJcyBpbiBFREsgSUkgYXJlIGNhbGxlZCB0aHJvdWdoIGEgc2Vy dmljZXMgdGFibGUsIFBQSSwNCm9yIFByb3RvY29sLCB0aGUgaW5kZW50IGlzIDIgc3BhY2VzIGZy b20gdGhlIHN0YXJ0IG9mIHRoZSBtZW1iZXIgZnVuY3Rpb24uDQpFeGFtcGxlczoNCg0KICBTdGF0 dXMgPSBnQlMtPk9wZW5Qcm90b2NvbCAoDQogICAgICAgICAgICAgICAgICBDb250cm9sbGVySGFu ZGxlLA0KICAgICAgICAgICAgICAgICAgJmdFZmlCbG9ja0lvUHJvdG9jb2xHdWlkLA0KICAgICAg ICAgICAgICAgICAgKFZPSUQgKiopJkJsb2NrSW8sDQogICAgICAgICAgICAgICAgICBUaGlzLT5E cml2ZXJCaW5kaW5nSGFuZGxlLA0KICAgICAgICAgICAgICAgICAgQ29udHJvbGxlckhhbmRsZSwN CiAgICAgICAgICAgICAgICAgIEVGSV9PUEVOX1BST1RPQ09MX0JZX0RSSVZFUg0KICAgICAgICAg ICAgICAgICAgKTsNCg0KICAgICAgICBTdGF0dXMgPSBCbG9ja0lvMi0+UmVhZEJsb2Nrc0V4ICgN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2tJbzIsDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE1lZGlhSWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnRh c2stPkxiYSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlN1YnRhc2stPkJsb2NrSW8y VG9rZW4sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTdWJ0YXNrLT5MZW5ndGggJSBN ZWRpYS0+QmxvY2tTaXplID09IDApID8gU3VidGFzay0+TGVuZ3RoIDogTWVkaWEtPkJsb2NrU2l6 ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFN1YnRhc2stPldvcmtpbmdCdWZmZXIg IT0gTlVMTCkgPyBTdWJ0YXNrLT5Xb3JraW5nQnVmZmVyIDogU3VidGFzay0+QnVmZmVyDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICk7DQoNClVuY3J1c3RpZnkgY2FuIGJlIGluc3RhbGxl ZCBhcyBhIHBsdWdpbiB0byBWaXN1YWwgU3R1ZGlvIENvZGUsIHNvIHRoZQ0Kc3R5bGUgdGhlIEVE SyBJSSBDb21tdW5pdHkgYWdyZWVzIHRvIGNhbiBiZSBzdXBwb3J0ZWQgYnkgdGhhdCBJREUuDQoN ClN1cHBvcnRpbmcgdGhpcyBpbmRlbnQgc3R5bGUgaXMgb25lIG9mIHRoZSBlbmhhbmNlbWVudHMg aW4gdGhlIGZvcmsuICBJZiB3ZSB3YW50IHRvIGFsaWduDQp0byBvbmUgb2YgdGhlIGluZGVudCBz dHlsZXMgc3VwcG9ydGVkIGJ5IGEgd2lkZXIgYXJyYXkgb2Ygc291cmNlIGVkaXRvcnMvSURFcywg dGhlbiB0aGF0DQp3b3VsZCByZXF1aXJlIGEgY2hhbmdlIHRvIHRoZSBFREsgSUkgQ29kaW5nIFN0 eWxlIFNwZWNpZmljYXRpb24gYW5kIGFwcHJvdmFsIGZyb20gdGhlDQpFREsgSUkgY29tbXVuaXR5 Lg0KDQo+IA0KPiA2KSBBbGxvdyBzdGF0aWMgZnVuY3Rpb24gZGVjbGFyYXRpb25zLg0KDQpJIGFn cmVlIHRoYXQgc3RhdGljIGZ1bmN0aW9ucyBzaG91bGQgYmUgYWxsb3dlZC4gIFBsZWFzZSBhZGQg YW55IGNvbW1lbnRzIHlvdSBoYXZlIHRvIA0KdGhlIGZvbGxvd2luZyBCdWd6aWxsYS4gIElmIHlv dSBoYXZlIGlkZWFzIG9uIHRoZSBzcGVjaWZpYyBzcGVjIHVwZGF0ZXMgcmVxdWlyZWQsIHRoZW4N CnBsZWFzZSBwcm92aWRlIGEgcGF0Y2ggYWdhaW5zdCB0aGUgc3BlYyBtYXJrZG93bi4NCg0KICAg IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2Ng0KDQo+ IA0KPiBCZXN0IHJlZ2FyZHMsDQo+IE1hcnZpbg0KPiANCj4gPg0KPiA+IFBsZWFzZSBsZXQgbWUg a25vdyBpZiBJIG1pc3NlZCBhbnkgb2YgdGhlIGFkZGl0aW9uYWwgdG9waWNzLg0KPiA+DQo+ID4+ IEJlc3QgcmVnYXJkcywNCj4gPj4gTWFydmluDQo+ID4+DQo+ID4+IDA5LjExLjIwMjEgMDQ6MDM6 MDYgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjoNCj4gPj4N Cj4gPj4+IEFuZHJldywNCj4gPj4+DQo+ID4+PiBJIHRoaW5rIE1pY2hhZWwgS3ViYWNraSBzdGFy dGVkIHdpdGggYSBudWdldCBmZWVkIGJlY2F1c2UgdGhhdCBjYW4gYmUgZWFzaWx5IHVzZWQgYnkg RURLIElJIENJIGFnZW50cy4NCj4gPj4+DQo+ID4+PiBIb3dldmVyLCB0aGF0IGRvZXMgbm90IHdv cmsgYXMgZWFzaWx5IGZvciBhbGwgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzIHVzaW5nIFdpbmRv d3MsIExpbnV4LCBhbmQgTWFjT1MuwqAgQ3JlYXRpbmcNCj4gPj4gcmVsZWFzZXMgdGhhdCBjYW4g YmUgZWFzaWx5IGluc3RhbGxlZCBieSBkZXZlbG9wZXJzIGlzIGNyaXRpY2FsIGZvciBzdWNjZXNz Lg0KPiA+Pj4gRm9yIE1hY09TLCB0aGVyZSBpcyBhIGhvbWVicmV3IHJlY2lwZS7CoCBZb3Ugc2hv dWxkIGp1c3QgaGF2ZSB0byB1cGRhdGUgdGhlIFVSTCB0byB0aGUgdW5jcnVzdGlmeSBmb3JrLg0K PiA+Pj4NCj4gPj4+IGh0dHBzOi8vbWFjYXBwc3RvcmUub3JnL3VuY3J1c3RpZnkvDQo+ID4+Pg0K PiA+Pj4gQWRkaW5nIHRoZSBpbnN0YWxsYXRpb24gaW5mb3JtYXRpb24gdG8gdGhlIEVESyBJSSBH ZXR0aW5nIFN0YXJ0ZWQgcGFnZSB3b3VsZCBiZSBhIGdvb2QgcGxhY2UgdG8gY2FwdHVyZSB0aGUg ZGV2ZWxvcGVyDQo+ID4+IGluc3RhbGwuDQo+ID4+PiBNaWtlDQo+ID4+Pg0KPiA+Pj4gKkZyb206 KiBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPg0KPiA+Pj4gKlNlbnQ6KiBNb25kYXksIE5v dmVtYmVyIDgsIDIwMjEgNjo0NyBQTQ0KPiA+Pj4gKlRvOiogS2lubmV5LCBNaWNoYWVsIEQgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+Pj4gKkNjOiogZGV2ZWxAZWRrMi5ncm91cHMu aW87IE1hcnZpbiBIw6R1c2VyIDxtaGFldXNlckBwb3N0ZW8uZGU+OyBNaWNoYWVsIEt1YmFja2kg PE1pY2hhZWwuS3ViYWNraUBtaWNyb3NvZnQuY29tPjsgTGVpZg0KPiA+PiBMaW5kaG9sbSA8bGVp ZkBudXZpYWluYy5jb20+OyBtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tOyByZWJlY2NhQG51 dmlhaW5jLmNvbTsgQnJldCBCYXJrZWxldw0KPiA+PiA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQu Y29tPg0KPiA+Pj4gKlN1YmplY3Q6KiBSZTogW2VkazItZGV2ZWxdIFByb2dyZXNzIG9uIGdldHRp bmcgVW5jcnVzdGlmeSB3b3JraW5nIGZvciBFREsyPw0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+ Pj4NCj4gPj4+IE9uIE5vdiA4LCAyMDIxLCBhdCA1OjEzIFBNLCBLaW5uZXksIE1pY2hhZWwgRCA8 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+IHdyb3RlOg0KPiA+Pj4NCj4gPj4+IEhJIEFuZHJl dywNCj4gPj4+DQo+ID4+PiBHcmVhdCBmZWVkYmFjay4NCj4gPj4+DQo+ID4+PiBXaGF0IHlvdXIg cHJlZmVycmVkIHdheSB0byBpbnN0YWxsIGEgdG9vbCBsaWtlIHRoaXM/wqDCoElmIHdlIGNvbGxl Y3QgdGhhdCBkYXRhIGZyb20gdGhlIGNvbW11bml0eSwgd2UgY2FuIG1ha2Ugc3VyZSB0aGUNCj4g Pj4gcGlwZWxpbmUgZ2VuZXJhdGVzIHRoZSByaWdodCB0eXBlIG9mIGluc3RhbGxlcnMuDQo+ID4+ Pg0KPiA+Pj4gSSBjb3VsZCBub3QgZmlndXJlIG91dCBob3cgdG8gZG93bmxvYWQgYW4gaW5zdGFs bGVyIGZyb20gdGhlIGxpbmtzLg0KPiA+Pj4NCj4gPj4+IElmIEkgZ28gdG/CoGh0dHA6Ly91bmNy dXN0aWZ5LnNvdXJjZWZvcmdlLm5ldMKgSSBzZWXCoGh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3By b2plY3RzL3VuY3J1c3RpZnkvZmlsZXMvwqBhbmQgYSBidXR0b24gdG8NCj4gPj4gZG93bmxvYWQg YmluYXJpZXMuIE5vdCBpZGVhbCB0aGF0IGl0IGlzIG9ubHkgZm9yIFdpbmRvd3MgYnV0IGF0IGxl YXN0IHRoZSB3b3JrZmxvdyB3YXMgb2J2aW91cy4gTG9va3MgbGlrZSBJIG5lZWQgdG8NCj4gYnVp bGQNCj4gPj4gbXkgb3duIHZlcnNpb24gZm9yIG1hY09TLCBub3QgaWRlYWwgYnV0IEkgY2FuIGF0 IGxlYXN0IGZpZ3VyZSB0aGF0IG91dC4NCj4gPj4+IFdvcnN0IGNhc2Ugd2UgY2FuIGhhdmUgYSBU aWFub2NvcmUub3JnW2h0dHA6Ly9UaWFub2NvcmUub3JnXcKgcGFnZSB0byBkZXNjcmliZSBhIHNp bXBsZSByZWNpcGUgdG8gaW5zdGFsbCB0aGUgdG9vbC4NCj4gV2l0aA0KPiA+PiBzdGVwIGJ5IHN0 ZXAgaW5zdHJ1Y3Rpb25zIHNvbWUgb25lIGNhbiBqdXN0IHR5cGUgaW4gd2l0aG91dCB0aGlua2lu ZyB0b28gbXVjaC4NCj4gPj4+IFRoYW5rcywNCj4gPj4+DQo+ID4+PiBBbmRyZXcgRmlzaA0KPiA+ Pj4NCj4gPj4+DQo+ID4+PiBUaGFua3MsDQo+ID4+Pg0KPiA+Pj4gTWlrZQ0KPiA+Pj4NCj4gPj4+ ICpGcm9tOirCoEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+DQo+ID4+PiAqU2VudDoqwqBN b25kYXksIE5vdmVtYmVyIDgsIDIwMjEgNTowOSBQTQ0KPiA+Pj4gKlRvOirCoGRldmVsQGVkazIu Z3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ DQo+ID4+PiAqQ2M6KsKgTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rlby5kZT47IE1pY2hh ZWwgS3ViYWNraSA8TWljaGFlbC5LdWJhY2tpQG1pY3Jvc29mdC5jb20+OyBMZWlmIExpbmRob2xt DQo+ID4+IDxsZWlmQG51dmlhaW5jLmNvbT47IG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb207 IHJlYmVjY2FAbnV2aWFpbmMuY29tOyBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jv c29mdC5jb20+DQo+ID4+PiAqU3ViamVjdDoqwqBSZTogW2VkazItZGV2ZWxdIFByb2dyZXNzIG9u IGdldHRpbmcgVW5jcnVzdGlmeSB3b3JraW5nIGZvciBFREsyPw0KPiA+Pj4NCj4gPj4+IE1Ja2Us DQo+ID4+Pg0KPiA+Pj4gSSBjb3VsZCBub3QgZmlndXJlIG91dCBob3cgdG8gZG93bmxvYWQgdW5j cnVzdGlmeSB0b29sIGZyb20gdGhlIHByb3ZpZGVkIGxpbmsuIDk5JSBvZiB0aGUgcGVvcGxlIGFy ZSBqdXN0IGdvaW5nIHRvDQo+IHdhbnQNCj4gPj4gdG8gaW5zdGFsbCB0aGUgdG9vbCwgbm90IGJl IGEgZGV2ZWxvcGVyIG9mIHRoZSBmb3JrLiBXZSBzaG91bGQgaGF2ZSBzb21lIHNpbXBsZSBpbnN0 cnVjdGlvbnMgb24gaG93IHRvIGRvd25sb2FkIHRoZQ0KPiB0b29sLg0KPiA+Pj4gVGhlIGxpbmsg cG9pbnRzIHRvIHNvbWV0aGluZyBnaXQgd2ViIHZpZXcgbG9va2luZyBBenVyZSBEZXZPcHMgcGFn ZSBhbmQgdGFsa3MgYWJvdXQgdGhpcyBOdWdldCB0aGluZyBJIGtub3cgbm90aGluZw0KPiA+PiBh Ym91dC4gSSByYW4gb3V0IG9mIHRpbWUgYW5kIGhhZCB0byBnaXZlIHVwIHRyeWluZyB0byBkb3du bG9hZCB0aGUgdG9vbC4NCj4gPj4+IFRoYW5rcywNCj4gPj4+DQo+ID4+PiBBbmRyZXcgRmlzaA0K PiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gT24gTm92IDgsIDIwMjEsIGF0IDQ6MjMgUE0sIE1p Y2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPiB3cm90ZToNCj4gPj4+ DQo+ID4+PiBIZWxsbywNCj4gPj4+DQo+ID4+PiBHb29kIGluZm9ybWF0aW9uIGluIHRoaXMgdGhy ZWFkIG9uIGNvZGUgc3R5bGUuDQo+ID4+Pg0KPiA+Pj4gU29tZSBvZiB0aGUgdG9waWNzIGFwcGx5 IHRvwqB1bmNydXN0aWZ5wqBhbmQgc29tZSBhcmUgb3V0IG9mIHNjb3BlIGZvciB3aGF0wqB1bmNy dXN0aWZ5wqBjYW4gZml4IG9uIGl0cyBvd24uDQo+ID4+Pg0KPiA+Pj4gSSB3b3VsZCBsaWtlIHRv IGZvY3VzIG9uIGEgZGF0ZSB0byBjb252ZXJ0IGFsbCBzb3VyY2UgY29kZSBpbiBlZGsyIHJlcG8g dXNpbmcgdGhlwqB1bmNydXN0aWZ5wqB0b29sIGFuZCB0byBjYXB0dXJlIHRoZQ0KPiA+PiBvdGhl ciBjb2RlIHN0eWxlIHRvcGljcyBpbnRvIHRoZWlyIG93biB0aHJlYWQgYW5kYnVnemlsbGFzLg0K PiA+Pj4gSSB3b3VsZCBsaWtlIHRvIHByb3Bvc2UgYSBjb252ZXJzaW9uIGRhdGUgZm9ywqB1bmNy dXN0aWZ5wqBpbW1lZGlhdGVseSBhZnRlciB0aGUgZWRrMi1zdGFibGUyMDIxMTEgcmVsZWFzZSBv biAyMDIxLTExLQ0KPiAyNi4NCj4gPj4+DQo+ID4+PiBJIGhhdmUgYmVlbiB3b3JraW5nIHdpdGgg TWljaGFlbCBLdWJhY2tpIG9uIGEgYnVpbGQgY29tcGFyaXNvbiB0b29sIHRoYXQgdmVyaWZpZXMg dGhhdCB0aGUgYnVpbGQgZ2VuZXJhdGUgdGhlIHNhbWUNCj4gPj4gb2JqL2xpYi9kbGwvZWZpL2Z2 L2ZkwqBmaWxlcyBiZWZvcmUgYW5kIGFmdGVyIHRoZcKgdW5jcnVzdGlmecKgY2hhbmdlcy7CoMKg V2Ugd291bGQgcnVuIGFuZCBwdWJsaXNoIHRoZSByZXN1bHRzIGZyb20gdGhpcw0KPiB0b29sDQo+ ID4+IGJlZm9yZSBjb21taXR0aW5nIHRoZSBjaGFuZ2VzLg0KPiA+Pj4gV2UgbmVlZMKgVGlhbm9D b3JlwqBjb21tdW5pdHkgYXBwcm92YWwgb2YgdGhlIGZvbGxvd2luZzoNCj4gPj4+DQo+ID4+IDEu ID4gQXBwcm92ZSBmb3JtYXQgb2YgQyBzb3VyY2UgZ2VuZXJhdGVkIGJ5IHRoZcKgdW5jcnVzdGlm eS4NCj4gPj4gMi4gPiBBcHByb3ZlwqB1bmNydXN0aWZ5wqBjaGFuZ2VzIHJpZ2h0IGFmdGVyIGVk azItc3RhYmxlLTIwMjExMSByZWxlYXNlLg0KPiA+PiAgICAxLiA+IEV4dGVuZCBjb2RlIGZyZWV6 ZSB1bnRpbCB0aGVzZSBjaGFuZ2VzIGFyZSBjb21taXR0ZWQuDQo+ID4+IDMuID4gUmVxdWlyZSB1 c2Ugb2bCoHVuY3J1c3RpZnnCoHRvb2wgYmVmb3JlIHN1Ym1pdHRpbmcgcGF0Y2ggcmV2aWV3IGVt YWlscyBvciBQUnMuDQo+ID4+ICAgIDEuID4gVGhlIHJlcXVpcmVkIHZlcnNpb24gd291bGQgYmUg YSBmb3JtYWxseSByZWxlYXNlZCB2ZXJzaW9uwqDCoGZyb20gdGhlIGZvcmsgbWFpbnRhaW5lZCBi eSBNaWNoYWVsIEt1YmFja2kgdW50aWwNCj4gdGhlDQo+ID4+IGNoYW5nZXMgY2FuIGJlwqB1cHN0 cmVhbWVkLg0KPiA+PiAgICAyLiA+IGh0dHBzOi8vZGV2LmF6dXJlLmNvbS9wcm9qZWN0bXUvVW5j cnVzdGlmeQ0KPiA+PiA0LiA+IEFkZCBFREsgSUkgQ0kgY2hlY2sgdG8gdmVyaWZ5IHRoYXQgYWxs IFBScyBzdWJtaXR0ZWQgZXhhY3RseSBtYXRjaMKgdW5jcnVzdGlmaWVkwqB2ZXJzaW9uLsKgwqBS ZWplY3QgUFJzIHRoYXQgZG8gbm90DQo+ID4+IG1hdGNoIGV4YWN0bHkuDQo+ID4+IDUuID4gSW1w bGVtZW50IGEgZ2l0IGhvb2sgYXZhaWxhYmxlIHRoYXQgd291bGQgYXV0b21hdGljYWxseSBydW7C oHVuY3Jpc3R1ZnnCoGJlZm9yZSBjb21taXR0aW5nIGNoYW5nZXMgdG8gYSBsb2NhbCBicmFuY2gN Cj4gb2YNCj4gPj4gYW4gZWRrMiByZXBvLg0KPiA+Pj4gVGhhbmtzLA0KPiA+Pj4NCj4gPj4+IE1p a2UNCj4gPj4+DQo+ID4+PiAqRnJvbToqwqBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPg0K PiA+Pj4gKlNlbnQ6KsKgVGh1cnNkYXksIE9jdG9iZXIgNywgMjAyMSAyOjA5IFBNDQo+ID4+PiAq VG86KsKgTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rlby5kZT4NCj4gPj4+ICpDYzoqwqBl ZGsyLWRldmVsLWdyb3Vwcy1pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+OyBLaW5uZXksIE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBMZWlmIExpbmRob2xtDQo+ID4+IDxs ZWlmQG51dmlhaW5jLmNvbT47wqBtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tO8KgcmViZWNj YUBudXZpYWluYy5jb207IE1pY2hhZWwgS3ViYWNraQ0KPiA8TWljaGFlbC5LdWJhY2tpQG1pY3Jv c29mdC5jb20+Ow0KPiA+PiBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5j b20+DQo+ID4+PiAqU3ViamVjdDoqwqBSZTogW2VkazItZGV2ZWxdIFByb2dyZXNzIG9uIGdldHRp bmcgVW5jcnVzdGlmeSB3b3JraW5nIGZvciBFREsyPw0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+ Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gT24gT2N0IDcsIDIwMjEsIGF0IDE6NDMgUE0sIE1hcnZp biBIw6R1c2VyIDxtaGFldXNlckBwb3N0ZW8uZGU+IHdyb3RlOg0KPiA+Pj4NCj4gPj4+IEhleSBN aWtlLA0KPiA+Pj4gSGV5IEFuZHJldywNCj4gPj4+DQo+ID4+PiBJJ2xsIGp1c3QgcmVwbHkgdG8g Ym90aCBtYWlscyBhdCBvbmNlIDopDQo+ID4+Pg0KPiA+Pj4gT24gMDcvMTAvMjAyMSAxOTozNiwg QW5kcmV3IEZpc2ggd3JvdGU6DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4NCj4g Pj4+DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+IOKApg0KPiA+Pj4NCj4gPj4+IFRoYW5rcyEgSSdkIGtl ZXAgU1RBVElDIGFjdHVhbGx5IGp1c3QgZm9yIHRoZSBzYWtlIG9mIG5vdCBkb2luZyBuby1vcCBj aGFuZ2VzIHRoYXQgZG8gbm90IHJlYWxseSBkbyBhbnl0aGluZyBhbmQgZm9yDQo+ID4+IGNvbnNp c3RlbmN5IHdpdGggQ09OU1QsIGJ1dCB3aGF0ZXZlciB3b3JrcyByZWFsbHkuDQo+ID4+Pg0KPiA+ Pj4NCj4gPj4+DQo+ID4+PiDigKYNCj4gPj4+DQo+ID4+PiBZZXMuDQo+ID4+Pg0KPiA+Pj4NCj4g Pj4+DQo+ID4+Pg0KPiA+Pj4g4oCmDQo+ID4+Pg0KPiA+Pj4gVGhpcyBpc3N1ZSBpcyBpbmRlcGVu ZGVudCBvZiBDT05TVC4gSeKAmW0gbm90IHN1cmUgYSBjb2Rpbmcgc3R5bGUgdG9vbCBpcyBzbWFy dCBlbm91Z2ggdG8gY2F0Y2ggdGhpcyBnZW5lcmljYWxseT8gWW91DQo+IG5lZWQNCj4gPj4gYW4g dW5kZXJzdGFuZGluZyBvZiBDIHR5cGVzIHRvIGtub3cgaWYgdGhlIGxvY2FsIHZhcmlhYmxlIGFz c2lnbm1lbnQgaXMgZ29pbmcgdG8gdHJpZ2dlciBhIG1lbWNweSgpLg0KPiA+Pj4gV2hhdCBJ4oCZ dmUgc2VlbiBpbiB0aGUgcmVhbCB3b3JsZCBpcyB0aGUgZmlybXdhcmUgY29tcGlsZXMgd2l0aCAt T3Mgb3IgTFRPIHRvIGZpdCBpbnQgaGUgUk9NIGZvciBERUJVRyBhbmQgUkVMRUFTRSwgYW5kDQo+ ID4+IHRoZSBvcHRpbWl6ZXIgb3B0aW1pemVzIGF3YXkgdGhlIGNhbGwgdG8gbWVtY3B5LiBUaGVu IGlmIHlvdSB0cnkgdG8gYnVpbGQgTk9PUFQgKG9yIG92ZXIgcmlkZSB0aGUgY29tcGlsZXIgZmxh Z3Mgb24gYW4NCj4gPj4gaW5kaXZpZHVhbCBkcml2ZXIvbGliKSB5b3UgZmFpbCB0byBsaW5rIGFz IG9ubHkgdGhlIE5PT1BUIGJ1aWxkIGluamVjdHMgdGhlIG1lbWNweS4NCj4gPj4+ICsxDQo+ID4+ Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+IFRodXMgSSB0aGluayB0aGUgYmVz dCB3YXkgdG8gZW5mb3JjZSB0aGlzIHJ1bGUgaXMgdG8gY29tcGlsZSBhIHByb2plY3QgTk9PUFQu IEnigJltIHRyeWluZyB0byByZW1lbWJlciBhcmUgdGhlcmUgZmxhZ3MNCj4gdG8NCj4gPj4gYnVp bHQgdG8gdGVsbCBpdCB0byBjb21waWxlIGFuZCBza2lwIHRoZSBGRCBjb25zdHJ1Y3Rpb24/IE1h eWJlIHdlIHNob3VsZCBhZHZvY2F0ZSBwbGF0Zm9ybXMgYWRkIGEgTk9PUFQgYnVpbGQgdGFyZ2V0 DQo+IHRoYXQNCj4gPj4ganVzdCBjb21waWxlcyB0aGUgY29kZSwgYnV0IGRvZXMgbm90IGNyZWF0 ZSB0aGUgRkQ/DQo+ID4+PiBJIGtub3cgdGhlcmUgd2VyZSBzdGFiaWxpdHkgY29uY2VybnMgd2l0 aCBpbnRyaW5zaWNzIGluIHRoZSBwYXN0LCBidXQgbWVtY3B5KCkgaXMgaW4gdGhlIHN0YW5kYXJk LCBhbmQgdGhlIHJlc3QNCj4gcmVtYWluZWQNCj4gPj4gc3RhYmxlIHRvIG15IGtub3dsZWRnZS4g TWF5YmUgaXQncyB0aW1lIHRvIGZpeCB0aGUgaXNzdWVzIGF0IHRoZSByb290PyBXb3JrcyBmb3Ig dXM6DQo+ID4+PiBodHRwczovL2dpdGh1Yi5jb20vYWNpZGFudGhlcmEvT3BlbkNvcmVQa2cvdHJl ZS9tYXN0ZXIvTGlicmFyeS9PY0NvbXBpbGVySW50cmluc2ljc0xpYg0KPiA+Pj4NCj4gPj4+DQo+ ID4+Pg0KPiA+Pj4gTWFydmluLA0KPiA+Pj4NCj4gPj4+IEdvb2QgcG9pbnQuIFRoaXMgd291bGQg bWFrZSB0aGUgcnVsZSBtb290LiBTbyBtYXliZSBqdXN0IHJlbW92aW5nIHRoZSByZXF1aXJlbWVu dCB3b3VsZCBiZSB0aGUgZWFzaWVzdCBsb25nIHRlcm0gZml4Lg0KPiA+Pj4NCj4gPj4+IE90aGVy IGVtYmVkZGVkIHByb2plY3RzIEkga25vdyBvZiBkbyB0aGlzIHRvbywgYW5kIGFzIHlvdSBwb2lu dCBvdXQgdGhlIGNvbXBpbGVycyBrZWVwIHRoZXNlIEFQSXMgc3RhbmRhcmQgZm9yIGZvbGtzDQo+ IHRoZQ0KPiA+PiBwcm92aWRlIHRoZWlyIG93biBydW50aW1lcy4NCj4gPj4+IFRoYW5rcywNCj4g Pj4+DQo+ID4+PiBBbmRyZXcgRmlzaA0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+ IEJlc3QgcmVnYXJkcywNCj4gPj4+IE1hcnZpbg0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4N Cj4gPj4+DQo+ID4+PiBUaGFua3MsDQo+ID4+Pg0KPiA+Pj4gQW5kcmV3IEZpc2gNCj4gPj4+DQo+ ID4+Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+PiDigKYNCj4gPj4+DQo+ID4+Pg0KPiA+Pj4NCj4gPj4N Cj4gPj4gDQo+ID4+DQoNCg==