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.web12.15910.1597242863899405722 for ; Wed, 12 Aug 2020 07:34:24 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=oL2Cd7vI; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: liming.gao@intel.com) IronPort-SDR: ju4lY6xnKUEZxXTto6bJY413SDLUFUZ4k4w58Cipi1L340ZITmawI/izqpdy1TGbBQ1r/NLG8z 6Iq3gJvK5GJg== X-IronPort-AV: E=McAfee;i="6000,8403,9711"; a="155085865" X-IronPort-AV: E=Sophos;i="5.76,304,1592895600"; d="scan'208";a="155085865" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Aug 2020 07:34:23 -0700 IronPort-SDR: yH+P5UWDJWvv97k7SauJ85fUEFjVoLRrVgGG1gKpT9mm266xcNKG6hC7T2UriqumvfbqiShbUT mrnPFI04Tb1A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,304,1592895600"; d="scan'208";a="439406671" Received: from unknown (HELO fmsmsx605.amr.corp.intel.com) ([10.18.84.215]) by orsmga004.jf.intel.com with ESMTP; 12 Aug 2020 07:34:22 -0700 Received: from fmsmsx605.amr.corp.intel.com (10.18.126.85) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 12 Aug 2020 07:34:22 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 12 Aug 2020 07:34:22 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.175) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 12 Aug 2020 07:34:18 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NpSZd8D5gjhsvfOI8ImUbAdz32ltasePqJmbNfnKUI9yMewh2XWTQLfmr2SebZJLlnidojx+mRufRL4P3NplYC536JAMjnQBr0Hup6T5jO0n9su7BUoQAPBSJAZjKu2HYIiBdpiluvtpUUD7MsbtWdd+rCgVwhrXDKNw8xYyGaFTyfYWjzLaxb1oeTX4Mnz6myV9JmUz9TWKdFtnM2rSxoKNKn3X9shv/ipg+1oWFfWxmHccXHmIUW0Ll1gaCnaZb7Q95LGA2Ylq3bFjquc5/cN/6UHquuIbpa6hosjFaPA/genPKnYH3KL6e2OmcFmanBjqVlUVrJ7vvRwp07nuBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=s4T8MRxzOLR1upFesLFuTFrbXzfo3pC6ZSchonN0esc=; b=D2uTGupYJc21e3jSYfd8Gs1x6kFycQqD+RIjWrMium60tL///NaBBbNvqKiJ+XFa77Q1j5xZ/x5OaxZ+PH6tg5xd9OyyPzHy0D3mVVd0N4vMOxo0Qos7Wm57OaVjO8uPJT1B6JEO896KXnZvW/za06tf0AUZpYDfuT0hOKBM6W3slQ48QQPX4SeWEPsrW+DkjGuLax20xr5rzEju5BUWG3GNr9o8bQnne4mhYd2rfgk+UUi25/JKC6DZlQmqail26erUbj8JPO3EaG4mQfPOiELmUPFcEiP7wz3jmwN5JUjgzJ1XTrSDvR+VaLNL/L8ZtmueBI3pnetzoNnXIy01SQ== 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=s4T8MRxzOLR1upFesLFuTFrbXzfo3pC6ZSchonN0esc=; b=oL2Cd7vIM+QWBP6St+n5DPiP50p8VuStprDizMV5ZoyQySoUI30XkRyGNRDEMN8HTh0YBkeqDLJhTqRjV3/X+zhbkO48Y4C/agRi3mRWyQ3Daj+w2PEyRa6pWtwBOjn0tcXU/G2aq5nTmkcL/elgdP8r70wOlXNW+LnMG9Pv12g= Received: from CY4PR11MB1526.namprd11.prod.outlook.com (2603:10b6:910:7::10) by CY4PR11MB1350.namprd11.prod.outlook.com (2603:10b6:903:2e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3261.16; Wed, 12 Aug 2020 14:34:14 +0000 Received: from CY4PR11MB1526.namprd11.prod.outlook.com ([fe80::f8c4:711:84e3:4c97]) by CY4PR11MB1526.namprd11.prod.outlook.com ([fe80::f8c4:711:84e3:4c97%4]) with mapi id 15.20.3261.025; Wed, 12 Aug 2020 14:34:14 +0000 From: "Liming Gao" To: "devel@edk2.groups.io" , "thomas.lendacky@amd.com" , Laszlo Ersek CC: Brijesh Singh , Ard Biesheuvel , "Dong, Eric" , "Justen, Jordan L" , "Kinney, Michael D" , "Ni, Ray" , Andrew Fish , Anthony Perard , "You, Benjamin" , "Bi, Dandan" , "Dong, Guo" , "Wu, Hao A" , "Wang, Jian J" , Julien Grall , Leif Lindholm , "Ma, Maurice" Subject: Re: [edk2-devel] [PATCH v14 00/46] SEV-ES guest support Thread-Topic: [edk2-devel] [PATCH v14 00/46] SEV-ES guest support Thread-Index: AQHWbPKJvxvZb90OYUmPwELe9qUR86kxwRMAgABIhPCAAPmugIAAGNwAgAFzoXA= Date: Wed, 12 Aug 2020 14:34:14 +0000 Message-ID: References: <4fa19934-008b-f8e5-6db8-0c39fe9875de@redhat.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.194] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7f296479-e6eb-4444-2aed-08d83eccc946 x-ms-traffictypediagnostic: CY4PR11MB1350: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: P9X6I00TlF5BBdW7YgiHeibNLHksZyW8Z3cKjBxAZC/3qb98v/xT/D9dfWH2u2EDvEprCLhk6D3+0/5F2+hjfbZkCsiFQ0DCoDHzQouGAS67R7eE1IKbXEL0B70HB59mDv9XxGwYd/hX/LWjdvROTjaQS/RQmOIpVtO5SZjcPSDozHWBH/qlc8a7gddmUfZ6LoTv+4F2qRRKfe/xsD/zQG6NckIfrdLl8dPagMMSbaXlMXFLzfKxox4/TaqGPbfwmxR0wjiNUyMfIXT7LNZd4WaY7nfXylUFarQvq+lZp92soFur6tLBW3iWZOFapprrT/TOHtQ5tgssveHKaxEBGtC4tgVr6kkhABnWUfg1WiWaAEW2iqbrZO/aKGn0ljXX1024Ku7YsFILENXOPDYLXQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB1526.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(366004)(136003)(39860400002)(376002)(346002)(45080400002)(55016002)(9686003)(52536014)(53546011)(33656002)(6506007)(8936002)(8676002)(19627235002)(7696005)(66476007)(316002)(110136005)(54906003)(66446008)(86362001)(64756008)(2906002)(5660300002)(71200400001)(478600001)(76116006)(83080400001)(66556008)(107886003)(66946007)(186003)(966005)(30864003)(4326008)(26005)(83380400001)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: jYi3xUodJq0RoIfp3vHTGP2fK3xunGzQmOl0xY2vN2I3+ZhibAKbmFaJDH2iezVvNp0mwnSyeklS6ooLfkda4scNkropExPA2xnF0+iofNl/ZqEDmfX1N7+H1W8iiu68E9wVH5kc4uxkuRVmk129oRjl5g8Oqifhse6cL8gX6C/iapX4cqN1JZJUWkN67RRHZrLTmDuRj2H5eSCPXkrbMq28UUmp/B9plt4nKcaERn7NXFpRXZZ3z7QR+94CSk0qWZ/drwhxxlhy0jKm+BBZYPOxyeHRYYmHkFdnmdpi7nx5qXyQ6aV/9MG4yMRn/RS+iZ8PyF+K+5afjIvmOEMmh3s3ow9lC2WEduYmFVCG+bMaHBun6yDEYfoItLwJptun+TNeWJeEgVPFtTEZohtaTi3ryt/3hz7X6F+D3BcyT8lOBA0bEvv5p45LG2bpYnQCOjGM2VbMX+DJBV7ZkKF82/DUlMAa59X92MBel1OW9aIVfzE8re2U7Ka8SN0BZFNtlfhFZlY5Hrxl5n/A/cDmWah9FW0HOBM08gQqCTykYRoIw3x20ye6j3IuOhXKlCrsadUp/8YV56riQpdlOvWuXDZfnbN+5Qm3+NuWDXTD1Lag3EdnyM8iN/TXLbOg/9Pq0Rmky/MXqBR1cEjQEvbpXw== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB1526.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f296479-e6eb-4444-2aed-08d83eccc946 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2020 14:34:14.0975 (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: +/DpRQU4P4RNPa7xoGokb2qGi62bh7mKhHZdoMFmCD1qORTdtbUWmZMsQ0LKJdsiXb3BvPxebpDSzXs5XLvgtw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1350 Return-Path: liming.gao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VG9tOg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogZGV2ZWxAZWRrMi5ncm91 cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTGVuZGFja3ksIFRob21h cw0KU2VudDogMjAyMOW5tDjmnIgxMuaXpSAwOjE4DQpUbzogTGFzemxvIEVyc2VrIDxsZXJzZWtA cmVkaGF0LmNvbT47IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IGRldmVsQGVk azIuZ3JvdXBzLmlvDQpDYzogQnJpamVzaCBTaW5naCA8YnJpamVzaC5zaW5naEBhbWQuY29tPjsg QXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGFybS5jb20+OyBEb25nLCBFcmljIDxlcmlj LmRvbmdAaW50ZWwuY29tPjsgSnVzdGVuLCBKb3JkYW4gTCA8am9yZGFuLmwuanVzdGVuQGludGVs LmNvbT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IE5p LCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPjsg QW50aG9ueSBQZXJhcmQgPGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+OyBZb3UsIEJlbmphbWlu IDxiZW5qYW1pbi55b3VAaW50ZWwuY29tPjsgQmksIERhbmRhbiA8ZGFuZGFuLmJpQGludGVsLmNv bT47IERvbmcsIEd1byA8Z3VvLmRvbmdAaW50ZWwuY29tPjsgV3UsIEhhbyBBIDxoYW8uYS53dUBp bnRlbC5jb20+OyBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IEp1bGllbiBH cmFsbCA8anVsaWVuQHhlbi5vcmc+OyBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT47 IE1hLCBNYXVyaWNlIDxtYXVyaWNlLm1hQGludGVsLmNvbT4NClN1YmplY3Q6IFJlOiBbZWRrMi1k ZXZlbF0gW1BBVENIIHYxNCAwMC80Nl0gU0VWLUVTIGd1ZXN0IHN1cHBvcnQNCg0KT24gOC8xMS8y MCA5OjQ5IEFNLCBMYXN6bG8gRXJzZWsgd3JvdGU6DQo+IE9uIDA4LzExLzIwIDAzOjEyLCBHYW8s IExpbWluZyB3cm90ZToNCj4+IFRvbToNCj4+ICAgSSBydW4gRUNDIHBsdWdpbiAoaHR0cHM6Ly9u YW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJG ZWRrMi5ncm91cHMuaW8lMkZnJTJGZGV2ZWwlMkZtZXNzYWdlJTJGNjMyNzEmYW1wO2RhdGE9MDIl N0MwMSU3Q3Rob21hcy5sZW5kYWNreSU0MGFtZC5jb20lN0M5YzBmYjJiMTZhZjI0ODA5MGZkYjA4 ZDgzZTA1YzgyMSU3QzNkZDg5NjFmZTQ4ODRlNjA4ZTExYTgyZDk5NGUxODNkJTdDMCU3QzAlN0M2 MzczMjc1NDIxNTkzOTQ0ODQmYW1wO3NkYXRhPXRDRyUyRk8lMkJnQWFBRmlqbzJVTENTeVVpdmsx JTJGbzVYVFV0JTJGeVkwZjdIeGQ3ZyUzRCZhbXA7cmVzZXJ2ZWQ9MCkgaW4gbXkgbG9jYWwgbWFj aGluZS4gSXQgcmVwb3J0cyBiZWxvdyBpc3N1ZXMuIENhbiB5b3UgaGVscCB1cGRhdGUgdGhlIHBh dGNoZXMgdG8gZml4IHRoZW0/DQo+PiAgIEkgdXNlIHRoZSBzdGFuZGFsb25lIEVjY0NoZWNrIGZy b20gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0 dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRnNoZW5nbGVpMTAlMkZlZGsyJTJGdHJlZSUyRmVjY19z Y3JpcHQmYW1wO2RhdGE9MDIlN0MwMSU3Q3Rob21hcy5sZW5kYWNreSU0MGFtZC5jb20lN0M5YzBm YjJiMTZhZjI0ODA5MGZkYjA4ZDgzZTA1YzgyMSU3QzNkZDg5NjFmZTQ4ODRlNjA4ZTExYTgyZDk5 NGUxODNkJTdDMCU3QzAlN0M2MzczMjc1NDIxNTkzOTQ0ODQmYW1wO3NkYXRhPUo0SXRnUE9iN0ZD ek83TkgxMm1oRE5DN1ZyTXVoeE82VEZWVE41MXBSJTJGayUzRCZhbXA7cmVzZXJ2ZWQ9MC4gDQo+ Pg0KPj4gRUZJIGNvZGluZyBzdHlsZSBlcnJvcg0KPj4gICAqRXJyb3IgY29kZTogODAwNQ0KPj4g ICAqVmFyaWFibGUgbmFtZSBkb2VzIG5vdCBmb2xsb3cgdGhlIHJ1bGVzOiAxLiBGaXJzdCBjaGFy YWN0ZXIgc2hvdWxkIGJlIHVwcGVyIGNhc2UgMi4gTXVzdCBjb250YWluIGxvd2VyIGNhc2UgY2hh cmFjdGVycyAzLiBObyB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzIDQuIEdsb2JhbCB2YXJpYWJsZSBu YW1lIG11c3Qgc3RhcnQgd2l0aCBhICdnJw0KPj4gICAqZmlsZTogRDpcQWxsUGtnXGVkazJcT3Zt ZlBrZ1xTZWNcU2VjTWFpbi5jDQo+PiAgICpMaW5lIG51bWJlcjogODY3DQo+PiAgICpUaGUgdmFy aWFibGUgbmFtZSBbKkRzXSBkb2VzIG5vdCBmb2xsb3cgdGhlIHJ1bGVzDQo+IA0KPiBJIGRvbid0 IHVuZGVyc3RhbmQgdGhpcyByZXBvcnQ7IHdpdGggdGhpcyBzZXJpZXMgYXBwbGllZCwgbGluZSA4 NjcgaXMgDQo+IHRoZSBmb2xsb3dpbmc6DQo+IA0KPiAgICAgODY3ICAgICBVSU5UOCAgKlNyYywg KkRzdDsNCj4gDQo+IGNvbWluZyBmcm9tIHBhdGNoIHYxNCAzNy80NiwgIk92bWZQa2cvU2VjOiBB ZGQgI1ZDIGV4Y2VwdGlvbiBoYW5kbGluZyANCj4gZm9yIFNlYyBwaGFzZSIuDQo+IA0KPiBQZXJo YXBzIEVDQyBpcyBjb25mdXNlZCBiZWNhdXNlIHdlIGhhdmUgdHdvIGRlY2xhcmF0aW9ucyBvbiB0 aGUgc2FtZSANCj4gbGluZTsgSSdtIG5vdCBzdXJlLg0KPiANCj4gSW4gZ2VuZXJhbCBJIHRvbyBs aWtlIHRvIGtlZXAgZGVjbGFyYXRpb25zIG9uIHNlcGFyYXRlIGxpbmVzLCBidXQgDQo+IHRoZXJl IGFyZSBleGNlcHRpb25zLiBEZWNsYXJpbmcgKlNyYyBhbmQgKkRzdCBvbiB0aGUgc2FtZSBsaW5l IGlzIA0KPiBwcmV0dHkgcmVhc29uYWJsZSwgYW5kIHRyaXZpYWwuDQo+IA0KPiBJIHRoaW5rIGl0 J3MgdGltZSBmb3IgdXMgdG8gcHV0IHRoZSBFQ0MgZXhjZXB0aW9uIGxpc3QgdG8gdXNlLCB1bmRl ciANCj4gT3ZtZlBrZy4NCj4gDQo+IFRvbSwgcGxlYXNlIHRyeSB0byByZXByb2R1Y2UgdGhpcyBl cnJvciBsb2NhbGx5LCBhbmQgdGhlbiBtb2RpZnkgDQo+ICJPdm1mUGtnL092bWZQa2cuY2kueWFt bCIsIGFkZGluZyBhbiBleGNlcHRpb24gdW5kZXIgdGhlIEVjY0NoZWNrIGJsb2NrLg0KPiANCj4g Li4uIE9oIHdhaXQsIHdlIGhhdmVuJ3QgZXZlbiBtZXJnZWQgU2hlbmdsZWkncyBzZXJpZXMgZm9y IHRoYXQhIFRoZSANCj4gbGF0ZXN0IHBvc3RpbmcgaXM6DQo+IA0KPiAgIFtlZGsyLWRldmVsXSBb UEFUQ0ggdjkgMDAvMTZdDQo+ICAgQWRkIGEgcGx1Z2luIHRvIGNoZWNrIEVjYyBpc3N1ZXMgZm9y IGVkazIgb24gb3BlbiBjaQ0KPiANCj4gYW5kIGl0J3Mgc3RpbGwgdW5kZXIgcmV2aWV3Lg0KPiAN Cj4gSW5kZWVkLCBMaW1pbmcgc2F5cyBhYm92ZSB0aGF0IGhlIHVzZWQgdGhlICJzdGFuZGFsb25l IEVjY0NoZWNrIi4NCj4gDQo+IE9LLiBJbiB0aGlzIGNhc2UsIEkgc3RhdGUgdGhhdCBzb21lIG9m IHRoZXNlIEVDQyByZXBvcnRzIGZvciBPdm1mUGtnIA0KPiBzaG91bGQgYmUgd2FpdmVkLg0KPiAN Cj4gSSdtIGluIGdlbmVyYWwgb2YgdGhlIG9waW5pb24gdGhhdCBFQ0MgaXMgdG9vIHN0cmljdCwg YW5kIHBhY2thZ2UgDQo+IG1haW50YWluZXJzIHNob3VsZCBoYXZlIHBvd2VyIHRvIHNlbGVjdGl2 ZWx5IGVuZm9yY2Ugb3Igb3ZlcnJpZGUgRUNDIA0KPiByZXBvcnRzLiBUaGF0J3Mgd2h5IEkgYWdy ZWVkIHRvIHRoZSBFQ0MgQ0kgcGx1Z2luIGluIHRoZSBmaXJzdCBwbGFjZSANCj4gLS0gYmVjYXNl IHdlIGhhdmUgZXhjZXB0aW9uIGxpc3RzIHRoYXQgYXJlIGNvbnRyb2xsYWJsZSB1bmRlciBzcGVj aWZpYyANCj4gcGFja2FnZSBkaXJlY3RvcmllcyAoaW4gdGhlICouY2kueWFtbCBmaWxlcykuDQo+ IA0KPiBJbiB0aGUgcHJlc2VudCBjYXNlLCBydW5uaW5nIHRoZSBzdGFuZGFsb25lIEVDQyBjaGVj ayBoYXMgd29yc2UgDQo+IGdyYW51bGFyaXR5IHRoYW4gdGhlIHVwY29taW5nIEVDQyBDSSBwbHVn aW4uIFNvLCBiZWNhdXNlIEkgY2FuJ3QgYXNrIA0KPiBUb20gdG8gYWRkIGEgbmV3IGV4Y2VwdGlv biB0byAiT3ZtZlBrZy9Pdm1mUGtnLmNpLnlhbWwiIHJpZ2h0IG5vdyANCj4gKGJlZm9yZSB3ZSBt ZXJnZSB0aGlzIHNlcmllcyksIEknbSByZXBsYWNpbmcgdGhhdCB3aXRoIGEgd2FpdmVyIGluIHRo aXMgZW1haWwuDQo+IA0KPiBPZiBjb3Vyc2UsIGlmIG1haW50YWluZXJzIG9mIG90aGVyIHBhY2th Z2VzIHdhbnQgdGhlIEVDQyByZXBvcnRzIA0KPiBpc3N1ZWQgdW5kZXIgdGhlaXIgcGFja2FnZXMg YWRkcmVzc2VkLCB0aGF0J3MgdGhlaXIgY2FsbC4gSSBjYW4gb25seSANCj4gd2FpdmUgRUNDIHJl cG9ydHMgdW5kZXIgT3ZtZlBrZy4NCj4gDQo+PiBFRkkgY29kaW5nIHN0eWxlIGVycm9yDQo+PiAg ICpFcnJvciBjb2RlOiA5MDAzDQo+PiAgICpUaGUgZmlyc3QgbGluZSBvZiB0ZXh0IGluIGEgY29t bWVudCBibG9jayBzaG91bGQgYmUgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgZWxlbWVudCBi ZWluZyBkb2N1bWVudGVkIGFuZCB0aGUgYnJpZWYgZGVzY3JpcHRpb24gbXVzdCBlbmQgd2l0aCBh IHBlcmlvZC4NCj4+ICAgKmZpbGU6IEQ6XEFsbFBrZ1xlZGsyXE92bWZQa2dcTGlicmFyeVxCYXNl TWVtRW5jcnlwdFNldkxpYlxNZW1FbmNyeXB0U2V2TGliSW50ZXJuYWwuYw0KPj4gICAqTGluZSBu dW1iZXI6IDcyDQo+PiAgICpDb21tZW50IGRlc2NyaXB0aW9uIHNob3VsZCBlbmQgd2l0aCBwZXJp b2QgJy4nIA0KPiANCj4gRGlzYWdyZWU7IHNvbWV0aW1lcyBwZW9wbGUgdXNlIHdlbGwtZm9ybWVk IGZ1bGwgRW5nbGlzaCBzZW50ZW5jZXMsIA0KPiBzb21ldGltZXMgb25seSB0aG91Z2h0IGZyYWdt ZW50cy4NCj4gDQo+PiBFRkkgY29kaW5nIHN0eWxlIGVycm9yDQo+PiAgICpFcnJvciBjb2RlOiAz MDAyDQo+PiAgICpOb24tQm9vbGVhbiBjb21wYXJpc29ucyBzaG91bGQgdXNlIGEgY29tcGFyZSBv cGVyYXRvciAoPT0sICE9LCA+LCA8ID49LCA8PSkNCj4+ICAgKmZpbGU6IEQ6XEFsbFBrZ1xlZGsy XE92bWZQa2dcTGlicmFyeVxWbWdFeGl0TGliXFZtZ0V4aXRWY0hhbmRsZXIuYw0KPj4gICAqTGlu ZSBudW1iZXI6IDEyODANCj4+ICAgKlByZWRpY2F0ZSBFeHByZXNzaW9uOiBPcENvdW50DQo+IA0K PiBPbiB0aGUgb3RoZXIgaGFuZCwgdGhpcyByZXBvcnQgKmlzKiB3b3J0aCBmaXhpbmcuDQo+IA0K PiAgICAxMjgwICAgICB3aGlsZSAoT3BDb3VudCkgew0KPiANCj4gSSd2ZSBteXNlbGYgYXNrZWQg VG9tIGZvciBvYnNlcnZpbmcgdGhpcyBydWxlIGF0IHNldmVyYWwgbG9jYXRpb25zLCANCj4gYnV0 IHdlIGJvdGggbWlzc2VkIHRoZSBvbmUgcmVwb3J0ZWQgYWJvdmUuIEl0IGNvbWVzIGZyb20gcGF0 Y2ggIzE0DQo+ICgiT3ZtZlBrZy9WbWdFeGl0TGliOiBTdXBwb3J0IHN0cmluZyBJTyBmb3IgSU9J T19QUk9UIE5BRSBldmVudHMiKS4NCj4gDQo+PiBFRkkgY29kaW5nIHN0eWxlIGVycm9yDQo+PiAg ICpFcnJvciBjb2RlOiA1MDA3DQo+PiAgICpUaGVyZSBzaG91bGQgYmUgbm8gaW5pdGlhbGl6YXRp b24gb2YgYSB2YXJpYWJsZSBhcyBwYXJ0IG9mIGl0cyBkZWNsYXJhdGlvbg0KPj4gICAqZmlsZTog RDpcQWxsUGtnXGVkazJcT3ZtZlBrZ1xMaWJyYXJ5XFZtZ0V4aXRMaWJcVm1nRXhpdFZjSGFuZGxl ci5jDQo+PiAgICpMaW5lIG51bWJlcjogODQ1DQo+PiAgICpWYXJpYWJsZSBOYW1lOiBEYXRhDQo+ IA0KPiBBZ3JlZSB0aGlzIHNob3VsZCBiZSBmaXhlZDsgSSBzaG91bGQgaGF2ZSBub3RpY2VkIGl0 IGR1cmluZyByZXZpZXcuIE15IA0KPiBhcG9sb2dpZXMuDQo+IA0KPiAgICAgODQ1ICAgICAgIFVJ TlQ4ICpEYXRhID0gKFVJTlQ4ICopIEdoY2ItPlNoYXJlZEJ1ZmZlcjsNCj4gDQo+IENvbWVzIGZy b20gcGF0Y2ggIzE3ICgiT3ZtZlBrZy9WbWdFeGl0TGliOiBBZGQgc3VwcG9ydCBmb3IgTlBGIE5B RSANCj4gZXZlbnRzIChNTUlPKSIpLg0KPiANCj4+IEVGSSBjb2Rpbmcgc3R5bGUgZXJyb3INCj4+ ICAgKkVycm9yIGNvZGU6IDUwMDcNCj4+ICAgKlRoZXJlIHNob3VsZCBiZSBubyBpbml0aWFsaXph dGlvbiBvZiBhIHZhcmlhYmxlIGFzIHBhcnQgb2YgaXRzIGRlY2xhcmF0aW9uDQo+PiAgICpmaWxl OiBEOlxBbGxQa2dcZWRrMlxPdm1mUGtnXExpYnJhcnlcVm1nRXhpdExpYlxWbWdFeGl0VmNIYW5k bGVyLmMNCj4+ICAgKkxpbmUgbnVtYmVyOiA4NDkNCj4+ICAgKlZhcmlhYmxlIE5hbWU6IERhdGEN Cj4gDQo+IFllcywgdGhpcyBzaG91bGQgYmUgZml4ZWQgdG9vOg0KPiANCj4gICAgIDg0OSAgICAg ICBVSU5UMTYgKkRhdGEgPSAoVUlOVDE2ICopIEdoY2ItPlNoYXJlZEJ1ZmZlcjsNCj4gDQo+IEFn YWluLCBJIHNob3VsZCBoYXZlIG5vdGljZWQgaXQ7IEknbSBzb3JyeS4NCj4gDQo+IEl0IGNvbWVz IGZyb20gcGF0Y2ggIzE3ICgiT3ZtZlBrZy9WbWdFeGl0TGliOiBBZGQgc3VwcG9ydCBmb3IgTlBG IE5BRSANCj4gZXZlbnRzIChNTUlPKSIpIGFnYWluLg0KPiANCj4gVG9tOiBnaXZlbiB0aGF0IGEg bmV3IGl0ZXJhdGlvbiBzZWVtcyBqdXN0aWZpZWQgYWZ0ZXIgYWxsIChJJ20gcmVhbGx5IA0KPiBz b3JyeSBhYm91dCB0aGF0IC0tIHdpdGggU2hlbmdsZWkncyBzZXJpZXMgaG9wZWZ1bGx5IHNvb24g bWVyZ2VkLCBzdWNoIA0KPiBpc3N1ZXMgd2lsbCBiZSByZXBvcnRlZCBlYXJsaWVyISksIGlmIHlv dSdkIGxpa2UsIHlvdSBjb3VsZCBhZGRyZXNzIA0KPiB0aGUgdHdvIEVDQyByZXBvcnRzIHRvbyB0 aGF0IEkgc2FpZCB3ZXJlIHRvbyBzdHJpY3QgYW5kIHNob3VsZCBiZSBpZ25vcmVkLg0KPiAoVGhh dCBtZWFucyBicmVha2luZyB0aGUgIipEc3QiIGRlY2xhcmF0aW9uIHRvIGEgbmV3IGxpbmUsIGFu ZCBhZGRpbmcgDQo+IGEgcGVyaW9kIHRvIHRoZSBjb21tZW50LikgVXAgdG8geW91OyBJIGNlcnRh aW5seSBkb24ndCBpbnNpc3Qgb24gdGhvc2UuDQoNCk5vIHdvcnJpZXMsIGVhc3kgZW5vdWdoIHRv IGRvIGlmIEknbSBhbHJlYWR5IHVwZGF0aW5nIHRoZSBvdGhlcnMuDQoNCkkgd291bGQgbGlrZSB0 byBiZSBhYmxlIHRvIHJ1biB0aGlzIHRvb2wgb24gbXkgc3lzdGVtLCB0aG91Z2gsIHRvIHNlZSBp ZiBhbnl0aGluZyBlbHNlIGdldHMgZmxhZ2dlZCBhZnRlciBmaXhpbmcgdGhlIGFib3ZlIG1lbnRp b25lZCBpc3N1ZXMuIEJ1dCB0aGUgdG9vbCBmYWlscyBmb3IgbWUgYXMgSSBkZXNjcmliZWQgaW4g YW5vdGhlciBwb3N0LiBUaGUgcmVhc29uIEkgc2F5IHRoYXQgaXMsIGZvciBleGFtcGxlLCB0aGUg aXNzdWUgYWJvdXQgdGhlIGNvbW1lbnQgZGVzY3JpcHRpb24gZW5kaW5nIHdpdGggYSBwZXJpb2Qg d2FzIGFjdHVhbGx5IGluIG11bHRpcGxlIHNwb3RzIG9mIHRoZSBjb21taXQsIGV2ZW4gdGhvdWdo IHRoZSB0b29sIG9ubHkgZmxhZ2dlZCBvbmUuIEknZCBoYXRlIHRvIHRoaW5rIEkndmUgZml4ZWQg ZXZlcnl0aGluZyBvbmx5IHRvIGhhdmUgdGhlIHRvb2wgZmluZCBtb3JlIGlzc3VlcyBhZnRlciBJ J3ZlIHN1Ym1pdHRlZCBhbm90aGVyIHNlcmllcywgYWxsIGJlY2F1c2UgSSBjb3VsZG4ndCBydW4g dGhlIHRvb2wuDQoNClRoYW5rcywNClRvbQ0KDQpbTGltaW5nXSBFQ0MgY2hlY2tlciB3aWxsIGJl IG1lcmdlZCBpbiBvcGVuIENJIHRvIGNoZWNrIHRoZSBwYXRjaCBhbmQgcmVwb3J0IHRoZSBpc3N1 ZXMuIFRoZW4sIHlvdSBkb24ndCBuZWVkIHRvIHJ1biBpdCBpbiB5b3VyIGxvY2FsIG1hY2hpbmUu IEkgdXNlIHRoaXMgcGF0Y2ggc2V0IGFzIHRlc3QgY2FzZSB0byB2ZXJpZnkgRUNDIGNoZWNrZXIg ZnVuY3Rpb25hbGl0eS4gQW5kLCBpdCByZXBvcnRzIHRob3NlIGlzc3Vlcy4gSSB0aGluayB0aGV5 IGFyZSB2YWx1YWJsZSBmb3IgdGhpcyBwYXRjaCBzZXQsIHNvIEkgcmFpc2UgdGhlbS4gU29ycnkg Zm9yIHRoZSBsYXRlIG5vdGljZS4NCg0KVGhhbmtzDQpMaW1pbmcNCj4gDQo+IFRoYW5rcyENCj4g TGFzemxvDQo+IA0KPj4NCj4+IFRoYW5rcw0KPj4gTGltaW5nDQo+PiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPj4gRnJvbTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4+ IFNlbnQ6IDIwMjDlubQ45pyIMTHml6UgMzozNg0KPj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlv OyB0aG9tYXMubGVuZGFja3lAYW1kLmNvbQ0KPj4gQ2M6IEJyaWplc2ggU2luZ2ggPGJyaWplc2gu c2luZ2hAYW1kLmNvbT47IEFyZCBCaWVzaGV1dmVsIA0KPj4gPGFyZC5iaWVzaGV1dmVsQGFybS5j b20+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgSnVzdGVuLCANCj4+IEpvcmRh biBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgDQo+PiA8bGltaW5n Lmdhb0BpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRCANCj4+IDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBBbmRyZXcgRmlzaCANCj4+ IDxhZmlzaEBhcHBsZS5jb20+OyBBbnRob255IFBlcmFyZCA8YW50aG9ueS5wZXJhcmRAY2l0cml4 LmNvbT47IFlvdSwgDQo+PiBCZW5qYW1pbiA8YmVuamFtaW4ueW91QGludGVsLmNvbT47IEJpLCBE YW5kYW4gPGRhbmRhbi5iaUBpbnRlbC5jb20+OyANCj4+IERvbmcsIEd1byA8Z3VvLmRvbmdAaW50 ZWwuY29tPjsgV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+OyBXYW5nLCANCj4+IEppYW4g SiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgSnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVuLm9yZz47 IExlaWYgDQo+PiBMaW5kaG9sbSA8bGVpZkBudXZpYWluYy5jb20+OyBNYSwgTWF1cmljZSA8bWF1 cmljZS5tYUBpbnRlbC5jb20+DQo+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2 MTQgMDAvNDZdIFNFVi1FUyBndWVzdCBzdXBwb3J0DQo+Pg0KPj4gT24gMDgvMDcvMjAgMjE6Mzgs IExlbmRhY2t5LCBUaG9tYXMgd3JvdGU6DQo+Pj4gRnJvbTogVG9tIExlbmRhY2t5IDx0aG9tYXMu bGVuZGFja3lAYW1kLmNvbT4NCj4+Pg0KPj4+IFRoaXMgcGF0Y2ggc2VyaWVzIHByb3ZpZGVzIHN1 cHBvcnQgZm9yIHJ1bm5pbmcgRURLMi9PVk1GIHVuZGVyIFNFVi1FUy4NCj4+Pg0KPj4+IFNlY3Vy ZSBFbmNyeXB0ZWQgVmlydHVhbGl6YXRpb24gLSBFbmNyeXB0ZWQgU3RhdGUgKFNFVi1FUykgZXhw YW5kcyANCj4+PiBvbiB0aGUgU0VWIHN1cHBvcnQgdG8gcHJvdGVjdCB0aGUgZ3Vlc3QgcmVnaXN0 ZXIgc3RhdGUgZnJvbSB0aGUgDQo+Pj4gaHlwZXJ2aXNvci4gU2VlDQo+Pj4gIkFNRDY0IEFyY2hp dGVjdHVyZSBQcm9ncmFtbWVyJ3MgTWFudWFsIFZvbHVtZSAyOiBTeXN0ZW0gDQo+Pj4gUHJvZ3Jh bW1pbmciLCBzZWN0aW9uICIxNS4zNSBFbmNyeXB0ZWQgU3RhdGUgKFNFVi1FUykiIFsxXS4NCj4+ Pg0KPj4+IEluIG9yZGVyIHRvIGFsbG93IGEgaHlwZXJ2aXNvciB0byBwZXJmb3JtIGZ1bmN0aW9u cyBvbiBiZWhhbGYgb2YgYSANCj4+PiBndWVzdCwgdGhlcmUgaXMgYXJjaGl0ZWN0dXJhbCBzdXBw b3J0IGZvciBub3RpZnlpbmcgYSBndWVzdCdzIA0KPj4+IG9wZXJhdGluZyBzeXN0ZW0gd2hlbiBj ZXJ0YWluIHR5cGVzIG9mIFZNRVhJVHMgYXJlIGFib3V0IHRvIG9jY3VyLg0KPj4+IFRoaXMgYWxs b3dzIHRoZSBndWVzdCB0byBzZWxlY3RpdmVseSBzaGFyZSBpbmZvcm1hdGlvbiB3aXRoIHRoZSAN Cj4+PiBoeXBlcnZpc29yIHRvIHNhdGlzZnkgdGhlIHJlcXVlc3RlZCBmdW5jdGlvbi4gVGhlIG5v dGlmaWNhdGlvbiBpcyANCj4+PiBwZXJmb3JtZWQgdXNpbmcgYSBuZXcgZXhjZXB0aW9uLCB0aGUg Vk1NIENvbW11bmljYXRpb24gZXhjZXB0aW9uIA0KPj4+ICgjVkMpLiBUaGUgaW5mb3JtYXRpb24g aXMgc2hhcmVkIHRocm91Z2ggdGhlIEd1ZXN0LUh5cGVydmlzb3IgQ29tbXVuaWNhdGlvbiBCbG9j ayAoR0hDQikgdXNpbmcgdGhlIFZNR0VYSVQgaW5zdHJ1Y3Rpb24uDQo+Pj4gVGhlIEdIQ0IgZm9y bWF0IGFuZCB0aGUgcHJvdG9jb2wgZm9yIHVzaW5nIGl0IGlzIGRvY3VtZW50ZWQgaW4gDQo+Pj4g IlNFVi1FUyBHdWVzdC1IeXBlcnZpc29yIENvbW11bmljYXRpb24gQmxvY2sgU3RhbmRhcmRpemF0 aW9uIiBbMl0uDQo+Pj4NCj4+PiBUaGUgbWFpbiBhcmVhcyBvZiB0aGUgRURLMiBjb2RlIHRoYXQg YXJlIHVwZGF0ZWQgdG8gc3VwcG9ydCBTRVYtRVMgDQo+Pj4gYXJlIGFyb3VuZCB0aGUgZXhjZXB0 aW9uIGhhbmRsaW5nIHN1cHBvcnQgYW5kIHRoZSBBUCBib290IHN1cHBvcnQuDQo+Pj4NCj4+PiBF eGNlcHRpb24gc3VwcG9ydCBpcyByZXF1aXJlZCBzdGFydGluZyBpbiBTZWMsIGNvbnRpbnVpbmcg dGhyb3VnaCANCj4+PiBQZWkgYW5kIGludG8gRHhlIGluIG9yZGVyIHRvIGhhbmRsZSAjVkMgZXhj ZXB0aW9ucyB0aGF0IGFyZSBnZW5lcmF0ZWQuDQo+Pj4gRWFjaCBBUCByZXF1aXJlcyBpdCdzIG93 biBHSENCIHBhZ2UgYXMgd2VsbCBhcyBhIHBhZ2UgdG8gaG9sZCB2YWx1ZXMgDQo+Pj4gc3BlY2lm aWMgdG8gdGhhdCBBUC4NCj4+Pg0KPj4+IEFQIGJvb3RpbmcgcG9zZXMgc29tZSBpbnRlcmVzdGlu ZyBjaGFsbGVuZ2VzLiBUaGUgSU5JVC1TSVBJLVNJUEkgDQo+Pj4gc2VxdWVuY2UgaXMgdHlwaWNh bGx5IHVzZWQgdG8gYm9vdCB0aGUgQVBzLiBIb3dldmVyLCB0aGUgaHlwZXJ2aXNvciANCj4+PiBp cyBub3QgYWxsb3dlZCB0byB1cGRhdGUgdGhlIGd1ZXN0IHJlZ2lzdGVycy4gVGhlIEdIQ0IgZG9j dW1lbnQgWzJdIA0KPj4+IHRhbGtzIGFib3V0IGhvdyBTTVAgYm9vdGluZyB1bmRlciBTRVYtRVMg aXMgcGVyZm9ybWVkLg0KPj4+DQo+Pj4gU2luY2UgdGhlIEdIQ0IgcGFnZSBtdXN0IGJlIGEgc2hh cmVkICh1bmVuY3J5cHRlZCkgcGFnZSwgdGhlIA0KPj4+IHByb2Nlc3NvciBtdXN0IGJlIHJ1bm5p bmcgaW4gbG9uZyBtb2RlIGluIG9yZGVyIGZvciB0aGUgZ3Vlc3QgYW5kIA0KPj4+IGh5cGVydmlz b3IgdG8gY29tbXVuaWNhdGUgd2l0aCBlYWNoIG90aGVyLiBBcyBhIHJlc3VsdCwgU0VWLUVTIGlz IA0KPj4+IG9ubHkgc3VwcG9ydGVkIHVuZGVyIHRoZSBYNjQgYXJjaGl0ZWN0dXJlLg0KPj4+DQo+ Pj4gVGhpcyBzZXJpZXMgYWRkcyBhIG5ldyBsaWJyYXJ5IHJlcXVpcmVtZW50IGZvciB0aGUgVm1n RXhpdExpYiANCj4+PiBsaWJyYXJ5IGFnYWluc3QgdGhlIFVlZmlDcHVQa2cgQ3B1RXhjZXB0aW9u SGFuZGxlckxpYiBsaWJyYXJ5IGFuZCANCj4+PiB0aGUgVWVmaUNwdVBrZyBNcEluaXRMaWIgbGli cmFyeS4gVGhlIGVkazItcGxhdGZvcm1zIHJlcG8gcmVxdWlyZXMgDQo+Pj4gdXBkYXRlcy9wYXRj aGVzIHRvIGFkZCB0aGUgbmV3IGxpYnJhcnkgcmVxdWlyZW1lbnQuIFRvIGFjY29tb2RhdGUgDQo+ Pj4gdGhhdCwgdGhpcyBzZXJpZXMgY291bGQgYmUgc3BsaXQgYmV0d2VlbjoNCj4+Pg0KPj4+IHBh dGNoIG51bWJlciAxMDoNCj4+PiAgIFVlZmlQYXlsb2FkUGtnOiBQcmVwYXJlIFVlZmlQYXlsb2Fk UGtnIHRvIHVzZSB0aGUgVm1nRXhpdExpYiANCj4+PiBsaWJyYXJ5DQo+Pj4NCj4+PiBhbmQgcGF0 Y2ggbnVtYmVyIDExOg0KPj4+ICAgVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyOiBBZGQg YmFzZSBzdXBwb3J0IGZvciB0aGUgI1ZDIA0KPj4+IGV4Y2VwdGlvbg0KPj4+DQo+Pj4gVGhlIHVw ZGF0ZXMgdG8gZWRrMi1wbGF0Zm9ybXMgY2FuIGJlIGFwcGxpZWQgYXQgdGhlIHNwbGl0Lg0KPj4+ DQo+Pj4gWzFdIA0KPj4+IGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9v ay5jb20vP3VybD1odHRwcyUzQSUyRiUyRnd3DQo+Pj4gdy5hbWQuY29tJTJGc3lzdGVtJTJGZmls ZXMlMkZUZWNoRG9jcyUyRjI0NTkzLnBkZiZhbXA7ZGF0YT0wMiU3QzAxJTcNCj4+PiBDdGhvbWFz LmxlbmRhY2t5JTQwYW1kLmNvbSU3QzljMGZiMmIxNmFmMjQ4MDkwZmRiMDhkODNlMDVjODIxJTdD M2RkOA0KPj4+IDk2MWZlNDg4NGU2MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzMyNzU0 MjE1OTM5NDQ4NCZhbXA7c2RhdGE9DQo+Pj4genVzUEM1eEZaV2ZMeHQ2VDVQc3hiMSUyRnc0bXJW V25rcnJFQ2t1S1NzeExrJTNEJmFtcDtyZXNlcnZlZD0wDQo+Pj4gWzJdIA0KPj4+IGh0dHBzOi8v bmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUy RmRlDQo+Pj4gdmVsb3Blci5hbWQuY29tJTJGd3AtY29udGVudCUyRnJlc291cmNlcyUyRjU2NDIx LnBkZiZhbXA7ZGF0YT0wMiU3QzANCj4+PiAxJTdDdGhvbWFzLmxlbmRhY2t5JTQwYW1kLmNvbSU3 QzljMGZiMmIxNmFmMjQ4MDkwZmRiMDhkODNlMDVjODIxJTdDMw0KPj4+IGRkODk2MWZlNDg4NGU2 MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzMyNzU0MjE1OTM5NDQ4NCZhbXA7c2RhDQo+ Pj4gdGE9eWs3bzhoMWxhakk0NDl0WmZYR2JQdW1ua3ZSanN3S3AxRlJtU1VkZXdoNCUzRCZhbXA7 cmVzZXJ2ZWQ9MA0KPj4+DQo+Pj4gLS0tDQo+Pj4NCj4+PiBUaGVzZSBwYXRjaGVzIGFyZSBiYXNl ZCBvbiBjb21taXQ6DQo+Pj4gOTU2NWFiNjdjMjA5ICgiU2hlbGxQa2c6IHNtYmlvc3ZpZXcgLSBD aGFuZ2Ugc29tZSB0eXBlIDE3IGZpZWxkIA0KPj4+IHZhbHVlcw0KPj4+IGZvcm1hdCIpDQo+Pj4N Cj4+PiBBIHZlcnNpb24gb2YgdGhlIHRyZWUgY2FuIGJlIGZvdW5kIGF0Og0KPj4+IGh0dHBzOi8v bmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUy RmdpDQo+Pj4gdGh1Yi5jb20lMkZBTURFU0UlMkZvdm1mJTJGdHJlZSUyRnNldi1lcy12MjImYW1w O2RhdGE9MDIlN0MwMSU3Q3Rob20NCj4+PiBhcy5sZW5kYWNreSU0MGFtZC5jb20lN0M5YzBmYjJi MTZhZjI0ODA5MGZkYjA4ZDgzZTA1YzgyMSU3QzNkZDg5NjFmZQ0KPj4+IDQ4ODRlNjA4ZTExYTgy ZDk5NGUxODNkJTdDMCU3QzAlN0M2MzczMjc1NDIxNTk0MDQ0NzYmYW1wO3NkYXRhPTZiOUVxDQo+ Pj4gRVZBeTFWSzM4b01TdUFQSmhPb3VySnBQWFVuUklnTWNTV1JNUWMlM0QmYW1wO3Jlc2VydmVk PTANCj4+Pg0KPj4+IENjOiBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPg0KPj4+IENjOiBB bnRob255IFBlcmFyZCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4NCj4+PiBDYzogQXJkIEJp ZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGFybS5jb20+DQo+Pj4gQ2M6IEJlbmphbWluIFlvdSA8 YmVuamFtaW4ueW91QGludGVsLmNvbT4NCj4+PiBDYzogRGFuZGFuIEJpIDxkYW5kYW4uYmlAaW50 ZWwuY29tPg0KPj4+IENjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+Pj4gQ2M6 IEd1byBEb25nIDxndW8uZG9uZ0BpbnRlbC5jb20+DQo+Pj4gQ2M6IEhhbyBBIFd1IDxoYW8uYS53 dUBpbnRlbC5jb20+DQo+Pj4gQ2M6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+ DQo+Pj4gQ2M6IEpvcmRhbiBKdXN0ZW4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+DQo+Pj4g Q2M6IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+DQo+Pj4gQ2M6IExhc3psbyBFcnNlayA8 bGVyc2VrQHJlZGhhdC5jb20+DQo+Pj4gQ2M6IExlaWYgTGluZGhvbG0gPGxlaWZAbnV2aWFpbmMu Y29tPg0KPj4+IENjOiBMaW1pbmcgR2FvIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4+PiBDYzog TWF1cmljZSBNYSA8bWF1cmljZS5tYUBpbnRlbC5jb20+DQo+Pj4gQ2M6IE1pY2hhZWwgRCBLaW5u ZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPj4+IENjOiBSYXkgTmkgPHJheS5uaUBp bnRlbC5jb20+DQo+Pj4NCj4+PiBDaGFuZ2VzIHNpbmNlIHYxMzoNCj4+PiAtIEZpeHVwIHRoZSBB c21SZWxvY2F0ZUFwTG9vcCgpIGNhbGwgc2l0ZSBzbyBJQTMyIHN1Y2Nlc3NmdWxseSBib290cyBB UHMuDQo+Pj4gICBEbyB0aGlzIGJ5IGFwcGVuZGluZyB0aGUgdGhyZWUgbmV3IHBhcmFtZXRlcnMg d2l0aG91dCBhbHRlcmluZyB0aGUNCj4+PiAgIG9yaWdpbmFsIHBhcmFtZXRlciBwYXNzaW5nIG9y ZGVyLg0KPj4+IC0gTWlub3IgdXBkYXRlcyB0byBkZXNjcmlwdGlvbiB0ZXh0IGFuZCBoZWxwIHRl eHQgdG8gZXhwYW5kIHRoZSBHSENCDQo+Pj4gICBhY3JvbnltLg0KPj4+DQo+Pj4gQ2hhbmdlcyBz aW5jZSB2MTI6DQo+Pj4gLSBDaGFuZ2UgSUEzMiBWTUdFWElUIC5uYXNtIGZpbGUgdG8gaXNzdWUg YW4gaW50IDMuIERlcGVuZGluZyBvbiB0aGUNCj4+PiAgIHZlcnNpb24gb2YgTkFTTSwgdGhlICJC SVRTIDY0IiB0cmljayB0byBnZXQgTkFTTSB0byByZWNvZ25pemUgdGhlDQo+Pj4gICBWTU1DQUxM IGluc3RydWN0aW9uIChWTUdFWElUIGlzIGEgUkVQIFZNTUNBTEwpIGNhdXNlZCBhbiBlcnJvci4g U2luY2UNCj4+PiAgIFNFVi1FUyBpcyBYNjQgb25seSwgVk1HRVhJVCBzaG91bGQgbmV2ZXIgYmUg Y2FsbGVkIGluIElBMzIuDQo+Pj4NCj4+PiBDaGFuZ2VzIHNpbmNlIHYxMToNCj4+PiAtIE1ha2Ug dGhlIFhHRVRCViBhbmQgVk1HRVhJVCAubmFzbSBmaWxlcyBidWlsZGFibGUgZm9yIGFsbCBlbnZp cm9ubWVudHMNCj4+PiAgIGFuZCByZW1vdmUgdGhlIHVwZGF0ZXMgdGhhdCBhZGQgdGhlc2UgaW5z dHJ1Y3Rpb25zIHRvIEdjY0lubGluZS5jDQo+Pj4NCj4+PiBDaGFuZ2VzIHNpbmNlIHYxMDoNCj4+ PiAtIEZpeCBjb25mbGljdHMgYXJvdW5kIEdjY0lubGluZS5jIGZpbGUgYWZ0ZXIgbW92aW5nIHRv IGxhdGVzdCANCj4+PiBjb21taXQNCj4+PiAtIEZpeCBjb25mbGljdHMgd2l0aCBPVk1GIFBDRCB2 YWx1ZXMgYWZ0ZXIgbW92aW5nIHRvIGxhdGVzdCBjb21taXQNCj4+Pg0KPj4+IENoYW5nZXMgc2lu Y2Ugdjk6DQo+Pj4gLSBGaXhlZCBiaXQgZmllbGQgZGVjbGFyYXRpb25zIGluIHRoZSBHSENCIHN0 cnVjdHVyZSB0byB1c2UgVUlOVDMyDQo+Pj4gICBhbmQgbm90IFVJTlQ2NC4NCj4+PiAtIEZpeGVk IGEgd2FybmluZyBwcm9kdWNlZCBieSBWUzIwMTkgaW4gdGhlIGluc3RydWN0aW9uIHBhcnNpbmcg Y29kZQ0KPj4+ICAgYnkgZXhwbGljaXRpbmcgY2FzdGluZyBhIGJpdCBzaGlmdCB0byBhbiBJTlQ2 NC4NCj4+PiAtIFNvcnRlZCBzZWN0aW9uIGVudHJpZXMgaW4gdGhlIE9WTUYgVm1nRXhpdExpYiBJ TkYgZmlsZS4NCj4+PiAtIE1vdmVkIHRoZSBuZXcgTWFpbnRhaW5lcnMudHh0IGVudHJ5IHNvIGVu dHJpZXMgcmVtYWluIHNvcnRlZC4NCj4+PiAtIERvY3VtZW50YXRpb24gc3R5bGUgZml4ZXMgZm9y IHJldHVybiB2YWx1ZXMuDQo+Pj4gLSBNaXNjZWxsYW5lb3VzIGNvZGUgc3R5bGUgZml4ZXMuDQo+ Pj4NCj4+PiBDaGFuZ2VzIHNpbmNlIHY4Og0KPj4+IC0gTW92ZSBJT0lPIGV4aXQgaW5mbyBkZWZp bml0aW9ucyBpbnRvIEdoY2IuaCBmaWxlDQo+Pj4gICAtIEFkZCBhIG1hY3JvIGZvciBjYWxjdWxh dGluZyBJTyBpbnN0cnVjdGlvbiBieXRlcyANCj4+PiAoSU9JT19EQVRBX0JZVEVTKQ0KPj4+IC0g RXhjZXB0aW9uIGhhbmRsZXIgc3VwcG9ydCBmb3IgZGVidWcgcmVnaXN0ZXJzDQo+Pj4gICAtIE1v dmVkIHRoZSBEUnggcmVnaXN0ZXIgc2F2aW5nIGNoYW5nZXMgaW50byB0aGUgVWVmaUNwdVBrZyBw YXRjaCBmb3INCj4+PiAgICAgYmFzZSAjVkMgc3VwcG9ydCBpbiBDcHVFeGNlcHRpb25IYW5kbGVy TGliLg0KPj4+IC0gT3ZtZlBrZyBWbWdFeGl0TGliDQo+Pj4gICAtIFJlbW92ZSB0aGUgLnVuaSBm aWxlDQo+Pj4gICAtIFVwZGF0ZSAuaW5mIGZpbGU6DQo+Pj4gICAgIC0gTmV3IGZpbGUgbG9jYXRp b24gZm9yIFZtZ0V4aXRWY0hhbmRsZXIuYw0KPj4+ICAgICAtIEFkZCBhZGRpdGlvbmFsIFBhY2th Z2VzIGFuZCBMaWJyYXJ5Q2xhc3Nlcw0KPj4+IC0gSW50cm9kdWNlIGEgaGVhZGVyIGZpbGUgdG8g aG9sZCB0aGUgI1ZDIGluc3RydWN0aW9uIHBhcnNpbmcgcmVsYXRlZA0KPj4+ICAgZGVmaW5pdGlv bnMNCj4+PiAgIC0gSW5jbHVkZSBhZGRpdGlvbmFsICNkZWZpbmVzIGZvciBpbnN0cnVjdGlvbiBk ZWNvZGluZyB0byByZXBsYWNlDQo+Pj4gICAgIGhhcmQgY29kZWQgdmFsdWVzIGZvciB0aGluZ3Mg bGlrZSBpbnN0cnVjdGlvbiBwcmVmaXhlcyBhbmQgZXNjYXBlcy4NCj4+PiAtIFJlcGxhY2UgaGFy ZGNvZGVkIENQVUlEIHZhbHVlcyB3aXRoIHZhbHVlcyBmcm9tIGV4aXN0aW5nIGhlYWRlciBmaWxl cw0KPj4+ICAgYW5kIHVzZSBleGlzdGluZyBDUjQgZGVmaW5pdGlvbiBmb3IgYWNjZXNzaW5nIENS NCBkYXRhLg0KPj4+IC0gQ2hhbmdlIHRoZSB0eXBlIHVzZWQgZm9yIG9idGFpbmluZyBkYXRhIGFk ZHJlc3NlcyBpbiB0aGUgaW5zdHJ1Y3Rpb24NCj4+PiAgIHBhcnNpbmcNCj4+PiAgIC0gU3dpdGNo IGZyb20gSU5UTiB0byBVSU5UNjQgYW5kIHVzZSBjb21waWxlciBjb252ZXJzaW9ucyBhbmQgY2Fz dGluZw0KPj4+ICAgICB0byBwZXJmb3JtIHRoZSBjb3JyZWN0IGFkZHJlc3MgY2FsY3VsYXRpb24N Cj4+PiAtIFJlc2V0VmVjdG9yIGNvZGU6DQo+Pj4gICAtIFJldmVydCBzb21lIGluYWR2ZXJ0YW50 IGNoYW5nZXMgaW50cm9kdWNlZCBpbiB2NyBmb3IgcmVzZXJ2aW5nIHRoZQ0KPj4+ICAgICBTRVYt RVMgd29yayBhcmVhIG1lbW9yeSBhbmQgZm9yIGNoZWNraW5nIHRoZSBzdGF0dXMgb2YgU0VWLUVT Lg0KPj4+IC0gQVAgQm9vdGluZw0KPj4+ICAgLSBQcm92aWRlIHN1cHBvcnQgZm9yIG5vbi1icm9h ZGNhc3QgSU5JVC1TSVBJLVNJUEkgQVAgYm9vdCAobWluaW1pemUNCj4+PiAgICAgY29kZSBkdXBs aWNhdGlvbiBieSBjcmVhdGluZyBhIGZ1bmN0aW9uIHRvIHNldCB0aGUgQVAganVtcCB0YWJsZQ0K Pj4+ICAgICB2ZWN0b3IgYWRkcmVzcykuDQo+Pj4gLSBGaXggZmlsZS9kaXJlY3RvcnkgZW50cnkg aW4gbWFpbnRhaW5lciBjaGFuZ2VzLg0KPj4+IC0gVmFyaW91cyBjb2Rpbmcgc3R5bGUgZml4ZXMN Cj4+PiAgIC0gQ29tbWVudGluZywgaWYgc3RhdGVtZW50cywgZXRjLg0KPj4+IC0gVmFyaW91cyBk b2N1bWVudGF0aW9uIHN0eWxlIGZpeGVzDQo+Pj4NCj4+PiBDaGFuZ2VzIHNpbmNlIHY3Og0KPj4+ IC0gUmVzZXJ2ZSB0aGUgU0VWLUVTIHdvcmthcmVhIHdoZW4gUzMgaXMgZW5hYmxlZA0KPj4+IC0g Rml4IHdhcm5pbmdzIGlzc3VlZCBieSB0aGUgVmlzdWFsIFN0dWRpbyBjb21waWxlcg0KPj4+IC0g Q3JlYXRlIGEgTlVMTCBWbWdFeGl0TGliIGluc3RhbmNlIHRoYXQgaXMgdXNlZCBmb3IgVk1HRVhJ VA0KPj4+ICAgcmVsYXRlZCBvcGVyYXRpb25zIGFzIHdlbGwgYXMgI1ZDIGhhbmRsaW5nLiBUaGVu IGNyZWF0ZSB0aGUgZnVsbA0KPj4+ICAgVm1nRXhpdExpYiBzdXBwb3J0IG9ubHkgaW4gT3ZtZlBr ZyAtIHdoZXJlIGl0IHdpbGwgYmUgdXNlZC4gVGhpcw0KPj4+ICAgcmVtb3ZlcyBhIGJ1bmNoIG9m IGltcGxlbWVudGF0aW9uIGNvZGUgZnJvbSBwbGF0Zm9ybXMgdGhhdCB3aWxsDQo+Pj4gICBub3Qg YmUgdXNpbmcgdGhlIGZ1bmN0aW9uYWxpdHkuDQo+Pj4gLSBSZW1vdmUgc2luZ2xlIHVzZSBpbnRl cmZhY2VzIGZyb20gdGhlIFZtZ0V4aXRMaWIgKFZtZ01taW9Xcml0ZQ0KPj4+ICAgYW5kIFZtZ1Nl dEFwSnVtcFRhYmxlKQ0KPj4+DQo+Pj4gQ2hhbmdlcyBzaW5jZSB2NjoNCj4+PiAtIEFkZCBmdW5j dGlvbiBjb21tZW50cyB0byBhbGwgZnVuY3Rpb25zLCBpbmNsdWRpbmcgbG9jYWwgZnVuY3Rpb25z DQo+Pj4gLSBBZGQgZnVuY3Rpb24gcGFyYW1ldGVyIGRpcmVjdGlvbiB0byBhbGwgZnVuY3Rpb25z IChpbi9vdXQpDQo+Pj4gLSBBZGQgc3VwcG9ydCBmb3IgTU1JTyBNT1ZaWC9NT1ZTWCBpbnN0cnVj dGlvbnMNCj4+PiAtIEVuc3VyZSB0aGUgcGVyLUNQVSB2YXJpYWJsZSBwYWdlIHJlbWFpbnMgZW5j cnlwdGVkDQo+Pj4gLSBDb2Rpbmctc3R5bGUgZml4ZXMgYXMgaWRlbnRpZmllZCBieSBFY2MNCj4+ Pg0KPj4+IENoYW5nZXMgc2luY2UgdjU6DQo+Pj4gLSBSZW1vdmUgZXh0cmFuZW91cyBWbWdFeGl0 TGliIHVzYWdlDQo+Pj4gLSBNaXNjZWxsYW5lb3VzIGNoYW5nZXMgdG8gYWRkcmVzcyBmZWVkYmFj ayAoY29kaW5nIHN0eWxlLCBldGMuKQ0KPj4+DQo+Pj4gQ2hhbmdlcyBzaW5jZSB2NDoNCj4+PiAt IE1vdmUgdGhlIFNFVi1FUyBwcm90b2NvbCBuZWdvdGlhdGlvbiBvdXQgb2YgdGhlIFNFQyBleGNl cHRpb24gaGFuZGxlcg0KPj4+ICAgYW5kIGludG8gdGhlIFNlY01haW4uYyBmaWxlLiBBcyBhIHJl c3VsdDoNCj4+PiAgIC0gTW92ZSB0aGUgU2VjR2hjYiByZWxhdGVkIFBDRHMgb3V0IG9mIFVlZmlD cHVQa2cgYW5kIGludG8gT3ZtZlBrZw0KPj4+ICAgLSBDb21iaW5lIFNlY0FNRFNldlZjSGFuZGxl ci5jIGFuZCBQZWlEeGVBTURTZXZWY0hhbmRsZXIuYyBpbnRvIGENCj4+PiAgICAgc2luZ2xlIEFN RFNldlZjSGFuZGxlci5jDQo+Pj4gLSBDb25zb2xpZGF0ZSBWbWdFeGl0TGliIHVzYWdlIGludG8g Y29tbW9uIExpYnJhcnlDbGFzc2VzIHNlY3Rpb25zDQo+Pj4gLSBBZGQgZG9jdW1lbnRhdGlvbiBj b21tZW50cyB0byB0aGUgVm1nRXhpdExpYiBmdW5jdGlvbnMNCj4+Pg0KPj4+IENoYW5nZXMgc2lu Y2UgdjM6DQo+Pj4gLSBSZW1vdmUgdGhlIG5lZWQgZm9yIHRoZSBNUCBsaWJyYXJ5IGZpbmFsaXph dGlvbiByb3V0aW5lLiBUaGUgQVANCj4+PiAgIGp1bXAgdGFibGUgYWRkcmVzcyB3aWxsIGJlIGhl bGQgYnkgdGhlIGh5cGVydmlzb3IgcmF0aGVyIHRoYW4NCj4+PiAgIGNvbW11bmljYXRlZCB2aWEg dGhlIEdIQ0IgTVNSLiBUaGlzIHJlbW92ZXMgc29tZSBmcmFnaWxpdHkgYXJvdW5kDQo+Pj4gICB0 aGUgVUVGSSB0byBPUyB0cmFuc2l0aW9uLg0KPj4+IC0gUmVuYW1lIHRoZSBTRVYtRVMgUklQIHJl c2V0IGFyZWEgdG8gU0VWLUVTIHdvcmthcmVhIGFuZCB1c2UgaXQgdG8NCj4+PiAgIGNvbW11bmlj YXRlIHRoZSBTRVYtRVMgc3RhdHVzLCBzbyB0aGF0IFNFQyBDUFUgZXhjZXB0aW9uIGhhbmRsaW5n IGlzDQo+Pj4gICBvbmx5IGVzdGFibGlzaGVkIGZvciBhbiBTRVYtRVMgZ3Vlc3QuDQo+Pj4gLSBG aXggU01NIGJ1aWxkIGJyZWFrYWdlQWRkIGFyb3VuZCBRZW11Rmxhc2hQdHJXcml0ZSgpLg0KPj4+ IC0gRml4IFNNTSBidWlsZCBicmVha2FnZSBieSBhZGRpbmcgVkMgZXhjZXB0aW9uIHN1cHBvcnQg dGhlIFNNTSBDUFUNCj4+PiAgIGV4Y2VwdGlvbiBoYW5kbGluZy4NCj4+PiAtIEFkZCBtZW1vcnkg ZmVuY2luZyBhcm91bmQgdGhlIGludm9jYXRpb24gb2YgQXNtVm1nRXhpdCgpLg0KPj4+IC0gQ2xh cmlmeSBjb21tZW50cyBhcm91bmQgdGhlIFNFVi1FUyBBUCByZXNldCBSSVAgdmFsdWVzIGFuZCB1 c2FnZS4NCj4+PiAtIE1vdmUgc29tZSBQQ0QgZGVmaW5pdGlvbnMgZnJvbSBNZGVNb2R1bGVQa2cg dG8gVWVmaUNwdVBrZy4NCj4+PiAtIFJlbW92ZSB0aGUgMTYtYml0IGNvZGUgc2VsZWN0b3IgZGVm aW5pdGlvbiBmcm9tIE1kZU1vZHVsZVBrZw0KPj4+DQo+Pj4gQ2hhbmdlcyBzaW5jZSB2MjoNCj4+ PiAtIEFkZGVkIGEgd2F5IHRvIGxvY2F0ZSB0aGUgU0VWLUVTIGZpeGVkIEFQIFJJUCBhZGRyZXNz IGZvciBzdGFydGluZw0KPj4+ICAgQVAncyB0byBhdm9pZCB1cGRhdGluZyB0aGUgYWN0dWFsIGZs YXNoIGltYWdlIChidWlsZCB0aW1lIGxvY2F0aW9uDQo+Pj4gICB0aGF0IGlzIGlkZW50aWZpZWQg d2l0aCBhIEdVSUQgdmFsdWUpLg0KPj4+IC0gQ3JlYXRlIGEgVm1nRXhpdCBsaWJyYXJ5IHRvIHJl cGxhY2Ugc3RhdGljIGlubGluZSBmdW5jdGlvbnMuDQo+Pj4gLSBNb3ZlIHNvbWUgUENEcyB0byB0 aGUgYXBwcm9wcmlhdGUgcGFja2FnZXMNCj4+PiAtIEFkZCBzdXBwb3J0IGZvciB3cml0aW5nIHRv IFFFTVUgZmxhc2ggdW5kZXIgU0VWLUVTDQo+Pj4gLSBBZGQgYWRkaXRpb25hbCBNTUlPIG9wY29k ZSBzdXBwb3J0DQo+Pj4gLSBDbGVhbmVkIHVwIHRoZSBHSENCIE1TUiBDUFVJRCBwcm90b2NvbCBz dXBwb3J0DQo+Pj4NCj4+PiBDaGFuZ2VzIHNpbmNlIHYxOg0KPj4+IC0gUGF0Y2hlcyByZXdvcmtl ZCB0byBiZSBtb3JlIHNwZWNpZmljIHRvIHRoZSBjb21wb25lbnQvYXJlYSBiZWluZyB1cGRhdGVk DQo+Pj4gICBhbmQgb3JkZXIgb2YgZGVmaW5pdGlvbi91c2FnZQ0KPj4+IC0gQ3JlYXRlZCBhIGxp YnJhcnkgZm9yIFZNR0VYSVQtcmVsYXRlZCBmdW5jdGlvbnMgdG8gcmVwbGFjZSB1c2Ugb2YgaW5s aW5lDQo+Pj4gICBmdW5jdGlvbnMNCj4+PiAtIEFsbG9jYXRpb24gbWV0aG9kIGZvciBHRFQgY2hh bmdlZCBmcm9tIEFsbG9jYXRlUG9vbCB0byANCj4+PiBBbGxvY2F0ZVBhZ2VzDQo+Pj4gLSBFYXJs eSBjYWNoaW5nIG9ubHkgZW5hYmxlZCBmb3IgU0VWLUVTIGd1ZXN0cw0KPj4+IC0gRW5zdXJlIEFQ IGxvb3AgbW9kZSBzZXQgdG8gaGFsdCBsb29wIG1vZGUgZm9yIFNFVi1FUyBndWVzdHMNCj4+PiAt IFJlc2VydmVkIFNFQyBHSENCLXJlbGF0ZWQgbWVtb3J5IGFyZWFzIHdoZW4gUzMgaXMgZW5hYmxl ZA0KPj4+DQo+Pj4gVG9tIExlbmRhY2t5ICg0Nik6DQo+Pj4gICBNZGVNb2R1bGVQa2c6IENyZWF0 ZSBQQ0RzIHRvIGJlIHVzZWQgaW4gc3VwcG9ydCBvZiBTRVYtRVMNCj4+PiAgIFVlZmlDcHVQa2c6 IENyZWF0ZSBQQ0QgdG8gYmUgdXNlZCBpbiBzdXBwb3J0IG9mIFNFVi1FUw0KPj4+ICAgTWRlUGtn OiBBZGQgdGhlIE1TUiBkZWZpbml0aW9uIGZvciB0aGUgR0hDQiByZWdpc3Rlcg0KPj4+ICAgTWRl UGtnOiBBZGQgYSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbiBmb3IgdGhlIEdIQ0INCj4+PiAgIE1kZU1v ZHVsZVBrZy9EeGVJcGxQZWltOiBTdXBwb3J0IEdIQ0IgcGFnZXMgd2hlbiBjcmVhdGluZyBwYWdl IHRhYmxlcw0KPj4+ICAgTWRlUGtnL0Jhc2VMaWI6IEFkZCBzdXBwb3J0IGZvciB0aGUgWEdFVEJW IGluc3RydWN0aW9uDQo+Pj4gICBNZGVQa2cvQmFzZUxpYjogQWRkIHN1cHBvcnQgZm9yIHRoZSBW TUdFWElUIGluc3RydWN0aW9uDQo+Pj4gICBVZWZpQ3B1UGtnOiBJbXBsZW1lbnQgbGlicmFyeSBz dXBwb3J0IGZvciBWTUdFWElUDQo+Pj4gICBPdm1mUGtnOiBQcmVwYXJlIE92bWZQa2cgdG8gdXNl IHRoZSBWbWdFeGl0TGliIGxpYnJhcnkNCj4+PiAgIFVlZmlQYXlsb2FkUGtnOiBQcmVwYXJlIFVl ZmlQYXlsb2FkUGtnIHRvIHVzZSB0aGUgVm1nRXhpdExpYiBsaWJyYXJ5DQo+Pj4gICBVZWZpQ3B1 UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXI6IEFkZCBiYXNlIHN1cHBvcnQgZm9yIHRoZSAjVkMgZXhj ZXB0aW9uDQo+Pj4gICBPdm1mUGtnL1ZtZ0V4aXRMaWI6IEltcGxlbWVudCBsaWJyYXJ5IHN1cHBv cnQgZm9yIFZtZ0V4aXRMaWIgaW4gT1ZNRg0KPj4+ICAgT3ZtZlBrZy9WbWdFeGl0TGliOiBBZGQg c3VwcG9ydCBmb3IgSU9JT19QUk9UIE5BRSBldmVudHMNCj4+PiAgIE92bWZQa2cvVm1nRXhpdExp YjogU3VwcG9ydCBzdHJpbmcgSU8gZm9yIElPSU9fUFJPVCBOQUUgZXZlbnRzDQo+Pj4gICBPdm1m UGtnL1ZtZ0V4aXRMaWI6IEFkZCBzdXBwb3J0IGZvciBDUFVJRCBOQUUgZXZlbnRzDQo+Pj4gICBP dm1mUGtnL1ZtZ0V4aXRMaWI6IEFkZCBzdXBwb3J0IGZvciBNU1JfUFJPVCBOQUUgZXZlbnRzDQo+ Pj4gICBPdm1mUGtnL1ZtZ0V4aXRMaWI6IEFkZCBzdXBwb3J0IGZvciBOUEYgTkFFIGV2ZW50cyAo TU1JTykNCj4+PiAgIE92bWZQa2cvVm1nRXhpdExpYjogQWRkIHN1cHBvcnQgZm9yIFdCSU5WRCBO QUUgZXZlbnRzDQo+Pj4gICBPdm1mUGtnL1ZtZ0V4aXRMaWI6IEFkZCBzdXBwb3J0IGZvciBSRFRT QyBOQUUgZXZlbnRzDQo+Pj4gICBPdm1mUGtnL1ZtZ0V4aXRMaWI6IEFkZCBzdXBwb3J0IGZvciBS RFBNQyBOQUUgZXZlbnRzDQo+Pj4gICBPdm1mUGtnL1ZtZ0V4aXRMaWI6IEFkZCBzdXBwb3J0IGZv ciBJTlZEIE5BRSBldmVudHMNCj4+PiAgIE92bWZQa2cvVm1nRXhpdExpYjogQWRkIHN1cHBvcnQg Zm9yIFZNTUNBTEwgTkFFIGV2ZW50cw0KPj4+ICAgT3ZtZlBrZy9WbWdFeGl0TGliOiBBZGQgc3Vw cG9ydCBmb3IgUkRUU0NQIE5BRSBldmVudHMNCj4+PiAgIE92bWZQa2cvVm1nRXhpdExpYjogQWRk IHN1cHBvcnQgZm9yIE1PTklUT1IvTU9OSVRPUlggTkFFIGV2ZW50cw0KPj4+ICAgT3ZtZlBrZy9W bWdFeGl0TGliOiBBZGQgc3VwcG9ydCBmb3IgTVdBSVQvTVdBSVRYIE5BRSBldmVudHMNCj4+PiAg IE92bWZQa2cvVm1nRXhpdExpYjogQWRkIHN1cHBvcnQgZm9yIERSNyBSZWFkL1dyaXRlIE5BRSBl dmVudHMNCj4+PiAgIE92bWZQa2cvTWVtRW5jcnlwdFNldkxpYjogQWRkIGFuIFNFVi1FUyBndWVz dCBpbmRpY2F0b3IgZnVuY3Rpb24NCj4+PiAgIE92bWZQa2c6IEFkZCBzdXBwb3J0IHRvIHBlcmZv cm0gU0VWLUVTIGluaXRpYWxpemF0aW9uDQo+Pj4gICBPdm1mUGtnOiBDcmVhdGUgYSBHSENCIHBh Z2UgZm9yIHVzZSBkdXJpbmcgU2VjIHBoYXNlDQo+Pj4gICBPdm1mUGtnL1BsYXRmb3JtUGVpOiBS ZXNlcnZlIEdIQ0ItcmVsYXRlZCBhcmVhcyBpZiBTMyBpcyBzdXBwb3J0ZWQNCj4+PiAgIE92bWZQ a2c6IENyZWF0ZSBHSENCIHBhZ2VzIGZvciB1c2UgZHVyaW5nIFBlaSBhbmQgRHhlIHBoYXNlDQo+ Pj4gICBPdm1mUGtnL1BsYXRmb3JtUGVpOiBNb3ZlIGVhcmx5IEdEVCBpbnRvIHJhbSB3aGVuIFNF Vi1FUyBpcyBlbmFibGVkDQo+Pj4gICBVZWZpQ3B1UGtnOiBDcmVhdGUgYW4gU0VWLUVTIHdvcmth cmVhIFBDRA0KPj4+ICAgT3ZtZlBrZzogUmVzZXJ2ZSBhIHBhZ2UgaW4gbWVtb3J5IGZvciB0aGUg U0VWLUVTIHVzYWdlDQo+Pj4gICBPdm1mUGtnL1BsYXRmb3JtUGVpOiBSZXNlcnZlIFNFVi1FUyB3 b3JrIGFyZWEgaWYgUzMgaXMgc3VwcG9ydGVkDQo+Pj4gICBPdm1mUGtnL1Jlc2V0VmVjdG9yOiBB ZGQgc3VwcG9ydCBmb3IgYSAzMi1iaXQgU0VWIGNoZWNrDQo+Pj4gICBPdm1mUGtnL1NlYzogQWRk ICNWQyBleGNlcHRpb24gaGFuZGxpbmcgZm9yIFNlYyBwaGFzZQ0KPj4+ICAgT3ZtZlBrZy9TZWM6 IEVuYWJsZSBjYWNoZSBlYXJseSB0byBzcGVlZCB1cCBib290aW5nDQo+Pj4gICBPdm1mUGtnL1Fl bXVGbGFzaEZ2YlNlcnZpY2VzUnVudGltZUR4ZTogQnlwYXNzIGZsYXNoIGRldGVjdGlvbiB3aXRo DQo+Pj4gICAgIFNFVi1FUw0KPj4+ICAgVWVmaUNwdVBrZzogQWRkIGEgMTYtYml0IHByb3RlY3Rl ZCBtb2RlIGNvZGUgc2VnbWVudCBkZXNjcmlwdG9yDQo+Pj4gICBVZWZpQ3B1UGtnL01wSW5pdExp YjogQWRkIENQVSBNUCBkYXRhIGZsYWcgdG8gaW5kaWNhdGUgaWYgU0VWLUVTIGlzDQo+Pj4gICAg IGVuYWJsZWQNCj4+PiAgIFVlZmlDcHVQa2c6IEFsbG93IEFQIGJvb3RpbmcgdW5kZXIgU0VWLUVT DQo+Pj4gICBPdm1mUGtnOiBVc2UgdGhlIFNFVi1FUyB3b3JrIGFyZWEgZm9yIHRoZSBTRVYtRVMg QVAgcmVzZXQgdmVjdG9yDQo+Pj4gICBPdm1mUGtnOiBNb3ZlIHRoZSBHSENCIGFsbG9jYXRpb25z IGludG8gcmVzZXJ2ZWQgbWVtb3J5DQo+Pj4gICBVZWZpQ3B1UGtnL01wSW5pdExpYjogUHJlcGFy ZSBTRVYtRVMgZ3Vlc3QgQVBzIGZvciBPUyB1c2UNCj4+PiAgIE1haW50YWluZXJzLnR4dDogQWRk IHJldmlld2VycyBmb3IgdGhlIE92bWZQa2cgU0VWLXJlbGF0ZWQgZmlsZXMNCj4+Pg0KPj4+ICBN ZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYyAgICAgICAgICAgICAgICAgfCAgICA5ICsNCj4+ PiAgT3ZtZlBrZy9Pdm1mUGtnLmRlYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSAr DQo+Pj4gIFVlZmlDcHVQa2cvVWVmaUNwdVBrZy5kZWMgICAgICAgICAgICAgICAgICAgICB8ICAg MTcgKw0KPj4+ICBPdm1mUGtnL092bWZQa2dJYTMyLmRzYyAgICAgICAgICAgICAgICAgICAgICAg fCAgICA2ICsNCj4+PiAgT3ZtZlBrZy9Pdm1mUGtnSWEzMlg2NC5kc2MgICAgICAgICAgICAgICAg ICAgIHwgICAgNiArDQo+Pj4gIE92bWZQa2cvT3ZtZlBrZ1g2NC5kc2MgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgIDYgKw0KPj4+ICBPdm1mUGtnL092bWZYZW4uZHNjICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAxICsNCj4+PiAgVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRzYyAgICAg ICAgICAgICAgICAgICAgIHwgICAgMiArDQo+Pj4gIFVlZmlQYXlsb2FkUGtnL1VlZmlQYXlsb2Fk UGtnSWEzMi5kc2MgICAgICAgICB8ICAgIDIgKw0KPj4+ICBVZWZpUGF5bG9hZFBrZy9VZWZpUGF5 bG9hZFBrZ0lhMzJYNjQuZHNjICAgICAgfCAgICAyICsNCj4+PiAgT3ZtZlBrZy9Pdm1mUGtnWDY0 LmZkZiAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSArDQo+Pj4gIE1kZU1vZHVsZVBrZy9D b3JlL0R4ZUlwbFBlaW0vRHhlSXBsLmluZiAgICAgICB8ICAgIDIgKw0KPj4+ICBNZGVQa2cvTGli cmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mICAgICAgICAgICAgfCAgICA0ICsNCj4+PiAgT3ZtZlBr Zy9MaWJyYXJ5L1ZtZ0V4aXRMaWIvVm1nRXhpdExpYi5pbmYgICAgIHwgICAzNiArDQo+Pj4gIE92 bWZQa2cvUGxhdGZvcm1QZWkvUGxhdGZvcm1QZWkuaW5mICAgICAgICAgICB8ICAgIDkgKw0KPj4+ ICAuLi4vRnZiU2VydmljZXNSdW50aW1lRHhlLmluZiAgICAgICAgICAgICAgICAgfCAgICAyICsN Cj4+PiAgT3ZtZlBrZy9SZXNldFZlY3Rvci9SZXNldFZlY3Rvci5pbmYgICAgICAgICAgIHwgICAg OCArDQo+Pj4gIE92bWZQa2cvU2VjL1NlY01haW4uaW5mICAgICAgICAgICAgICAgICAgICAgICB8 ICAgIDQgKw0KPj4+ICAuLi4vRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAg ICAgfCAgICAxICsNCj4+PiAgLi4uL1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mICAgICAg ICAgICAgIHwgICAgMSArDQo+Pj4gIC4uLi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmlu ZiAgICAgICAgICB8ICAgIDEgKw0KPj4+ICAuLi4vU21tQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5p bmYgICAgICAgICAgICAgfCAgICAxICsNCj4+PiAgLi4uL1hjb2RlNVNlY1BlaUNwdUV4Y2VwdGlv bkhhbmRsZXJMaWIuaW5mICAgIHwgICAgMSArDQo+Pj4gIFVlZmlDcHVQa2cvTGlicmFyeS9NcElu aXRMaWIvRHhlTXBJbml0TGliLmluZiB8ICAgIDQgKw0KPj4+ICBVZWZpQ3B1UGtnL0xpYnJhcnkv TXBJbml0TGliL1BlaU1wSW5pdExpYi5pbmYgfCAgICA0ICsNCj4+PiAgLi4uL0xpYnJhcnkvVm1n RXhpdExpYk51bGwvVm1nRXhpdExpYk51bGwuaW5mIHwgICAyNyArDQo+Pj4gIC4uLi9Db3JlL0R4 ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuaCAgICAgICB8ICAgMTIgKy0NCj4+PiAgTWRlUGtn L0luY2x1ZGUvTGlicmFyeS9CYXNlTGliLmggICAgICAgICAgICAgIHwgICAzMSArDQo+Pj4gIE1k ZVBrZy9JbmNsdWRlL1JlZ2lzdGVyL0FtZC9GYW0xN01zci5oICAgICAgICB8ICAgNDYgKw0KPj4+ ICBNZGVQa2cvSW5jbHVkZS9SZWdpc3Rlci9BbWQvR2hjYi5oICAgICAgICAgICAgfCAgMTY2ICsr DQo+Pj4gIC4uLi9JbmR1c3RyeVN0YW5kYXJkL0luc3RydWN0aW9uUGFyc2luZy5oICAgICB8ICAg ODMgKw0KPj4+ICBPdm1mUGtnL0luY2x1ZGUvTGlicmFyeS9NZW1FbmNyeXB0U2V2TGliLmggICAg fCAgIDEyICsNCj4+PiAgLi4uL1FlbXVGbGFzaC5oICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAxMyArDQo+Pj4gIFVlZmlDcHVQa2cvQ3B1RHhlL0NwdUdkdC5oICAgICAgICAgICAg ICAgICAgICB8ICAgIDQgKy0NCj4+PiAgVWVmaUNwdVBrZy9JbmNsdWRlL0xpYnJhcnkvVm1nRXhp dExpYi5oICAgICAgIHwgIDEwMyArDQo+Pj4gIFVlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIv TXBMaWIuaCAgICAgICAgICB8ICAgNjggKy0NCj4+PiAgLi4uL0NvcmUvRHhlSXBsUGVpbS9JYTMy L0R4ZUxvYWRGdW5jLmMgICAgICAgIHwgICAgNCArLQ0KPj4+ICAuLi4vQ29yZS9EeGVJcGxQZWlt L1g2NC9EeGVMb2FkRnVuYy5jICAgICAgICAgfCAgIDExICstDQo+Pj4gIC4uLi9Db3JlL0R4ZUlw bFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuYyAgICAgICB8ICAgNTcgKy0NCj4+PiAgLi4uL01lbUVu Y3J5cHRTZXZMaWJJbnRlcm5hbC5jICAgICAgICAgICAgICAgIHwgICA3NSArLQ0KPj4+ICBPdm1m UGtnL0xpYnJhcnkvVm1nRXhpdExpYi9WbWdFeGl0TGliLmMgICAgICAgfCAgMTU5ICsrDQo+Pj4g IE92bWZQa2cvTGlicmFyeS9WbWdFeGl0TGliL1ZtZ0V4aXRWY0hhbmRsZXIuYyB8IDE3MTYgKysr KysrKysrKysrKysrKysNCj4+PiAgT3ZtZlBrZy9QbGF0Zm9ybVBlaS9BbWRTZXYuYyAgICAgICAg ICAgICAgICAgIHwgICA4OSArDQo+Pj4gIE92bWZQa2cvUGxhdGZvcm1QZWkvTWVtRGV0ZWN0LmMg ICAgICAgICAgICAgICB8ICAgNDMgKw0KPj4+ICAuLi4vUWVtdUZsYXNoLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDIzICstDQo+Pj4gIC4uLi9RZW11Rmxhc2hEeGUuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDAgKw0KPj4+ICAuLi4vUWVtdUZsYXNoU21tLmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsNCj4+PiAgT3ZtZlBrZy9TZWMvU2Vj TWFpbi5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE4OCArLQ0KPj4+ICBVZWZpQ3B1UGtn L0NwdUR4ZS9DcHVHZHQuYyAgICAgICAgICAgICAgICAgICAgfCAgICA4ICstDQo+Pj4gIC4uLi9D cHVFeGNlcHRpb25Db21tb24uYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKy0NCj4+PiAg Li4uL1BlaUR4ZVNtbUNwdUV4Y2VwdGlvbi5jICAgICAgICAgICAgICAgICAgIHwgICAyMCArLQ0K Pj4+ICAuLi4vU2VjUGVpQ3B1RXhjZXB0aW9uLmMgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5 ICsNCj4+PiAgVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9EeGVNcExpYi5jICAgICAgIHwg IDEyMCArLQ0KPj4+ICBVZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGliLmMgICAgICAg ICAgfCAgMzM3ICsrKy0NCj4+PiAgVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9QZWlNcExp Yi5jICAgICAgIHwgICAxOSArDQo+Pj4gIC4uLi9MaWJyYXJ5L1ZtZ0V4aXRMaWJOdWxsL1ZtZ0V4 aXRMaWJOdWxsLmMgICB8ICAxMjEgKysNCj4+PiAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9Y NjQvU21tRnVuY3NBcmNoLmMgIHwgICAgMiArLQ0KPj4+ICBNYWludGFpbmVycy50eHQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsNCj4+PiAgTWRlTW9kdWxlUGtnL01kZU1v ZHVsZVBrZy51bmkgICAgICAgICAgICAgICAgIHwgICAgOCArDQo+Pj4gIE1kZVBrZy9MaWJyYXJ5 L0Jhc2VMaWIvSWEzMi9WbWdFeGl0Lm5hc20gICAgICB8ICAgMzggKw0KPj4+ICBNZGVQa2cvTGli cmFyeS9CYXNlTGliL0lhMzIvWEdldEJ2Lm5hc20gICAgICAgfCAgIDMxICsNCj4+PiAgTWRlUGtn L0xpYnJhcnkvQmFzZUxpYi9YNjQvVm1nRXhpdC5uYXNtICAgICAgIHwgICAzMiArDQo+Pj4gIE1k ZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvWDY0L1hHZXRCdi5uYXNtICAgICAgICB8ICAgMzQgKw0KPj4+ ICBPdm1mUGtnL1Jlc2V0VmVjdG9yL0lhMTYvUmVzZXRWZWN0b3JWdGYwLmFzbSAgfCAgMTAwICsN Cj4+PiAgT3ZtZlBrZy9SZXNldFZlY3Rvci9JYTMyL1BhZ2VUYWJsZXM2NC5hc20gICAgIHwgIDM1 MSArKystDQo+Pj4gIE92bWZQa2cvUmVzZXRWZWN0b3IvUmVzZXRWZWN0b3IubmFzbWIgICAgICAg ICB8ICAgMjAgKw0KPj4+ICAuLi4vWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbSAgICAgICAg ICAgICAgfCAgIDE3ICsNCj4+PiAgLi4uL1g2NC9YY29kZTVFeGNlcHRpb25IYW5kbGVyQXNtLm5h c20gICAgICAgIHwgICAxNyArDQo+Pj4gIFVlZmlDcHVQa2cvTGlicmFyeS9NcEluaXRMaWIvSWEz Mi9NcEVxdS5pbmMgICB8ICAgIDIgKy0NCj4+PiAgLi4uL0xpYnJhcnkvTXBJbml0TGliL0lhMzIv TXBGdW5jcy5uYXNtICAgICAgIHwgICAyMCArLQ0KPj4+ICBVZWZpQ3B1UGtnL0xpYnJhcnkvTXBJ bml0TGliL1g2NC9NcEVxdS5pbmMgICAgfCAgICA0ICstDQo+Pj4gIFVlZmlDcHVQa2cvTGlicmFy eS9NcEluaXRMaWIvWDY0L01wRnVuY3MubmFzbSB8ICAzNjkgKysrLQ0KPj4+ICAuLi4vTGlicmFy eS9WbWdFeGl0TGliTnVsbC9WbWdFeGl0TGliTnVsbC51bmkgfCAgIDE1ICsNCj4+PiAgLi4uL1Jl c2V0VmVjdG9yL1Z0ZjAvSWExNi9SZWFsMTZUb0ZsYXQzMi5hc20gIHwgICAgOSArDQo+Pj4gIFVl ZmlDcHVQa2cvVWVmaUNwdVBrZy51bmkgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKw0KPj4+ ICA3NSBmaWxlcyBjaGFuZ2VkLCA0Nzc3IGluc2VydGlvbnMoKyksIDEwMCBkZWxldGlvbnMoLSkg IGNyZWF0ZSBtb2RlDQo+Pj4gMTAwNjQ0IE92bWZQa2cvTGlicmFyeS9WbWdFeGl0TGliL1ZtZ0V4 aXRMaWIuaW5mDQo+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPj4+IFVlZmlDcHVQa2cvTGlicmFy eS9WbWdFeGl0TGliTnVsbC9WbWdFeGl0TGliTnVsbC5pbmYNCj4+PiAgY3JlYXRlIG1vZGUgMTAw NjQ0IE1kZVBrZy9JbmNsdWRlL1JlZ2lzdGVyL0FtZC9HaGNiLmgNCj4+PiAgY3JlYXRlIG1vZGUg MTAwNjQ0DQo+Pj4gT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvSW5zdHJ1Y3Rpb25Q YXJzaW5nLmgNCj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFVlZmlDcHVQa2cvSW5jbHVkZS9MaWJy YXJ5L1ZtZ0V4aXRMaWIuaA0KPj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgT3ZtZlBrZy9MaWJyYXJ5 L1ZtZ0V4aXRMaWIvVm1nRXhpdExpYi5jDQo+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBPdm1mUGtn L0xpYnJhcnkvVm1nRXhpdExpYi9WbWdFeGl0VmNIYW5kbGVyLmMNCj4+PiAgY3JlYXRlIG1vZGUg MTAwNjQ0IA0KPj4+IFVlZmlDcHVQa2cvTGlicmFyeS9WbWdFeGl0TGliTnVsbC9WbWdFeGl0TGli TnVsbC5jDQo+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBNZGVQa2cvTGlicmFyeS9CYXNlTGliL0lh MzIvVm1nRXhpdC5uYXNtDQo+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBNZGVQa2cvTGlicmFyeS9C YXNlTGliL0lhMzIvWEdldEJ2Lm5hc20NCj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9M aWJyYXJ5L0Jhc2VMaWIvWDY0L1ZtZ0V4aXQubmFzbQ0KPj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQg TWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9YNjQvWEdldEJ2Lm5hc20NCj4+PiAgY3JlYXRlIG1vZGUg MTAwNjQ0IE92bWZQa2cvUmVzZXRWZWN0b3IvSWExNi9SZXNldFZlY3RvclZ0ZjAuYXNtDQo+Pj4g IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPj4+IFVlZmlDcHVQa2cvTGlicmFyeS9WbWdFeGl0TGliTnVs bC9WbWdFeGl0TGliTnVsbC51bmkNCj4+Pg0KPj4NCj4+IEZvciBhbGwgcGF0Y2hlcyBleGNlcHQg IzEwICgiVWVmaVBheWxvYWRQa2c6IFByZXBhcmUgVWVmaVBheWxvYWRQa2cgdG8gdXNlIHRoZSBW bWdFeGl0TGliIGxpYnJhcnkiKSBhbmQgIzQ2ICgiTWFpbnRhaW5lcnMudHh0OiBBZGQgcmV2aWV3 ZXJzIGZvciB0aGUgT3ZtZlBrZyBTRVYtcmVsYXRlZCBmaWxlcyIpOg0KPj4NCj4+IFJlZ3Jlc3Np b24tdGVzdGVkLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPj4NCj4+IFRo YW5rcw0KPj4gTGFzemxvDQo+Pg0KPiANCg0KDQoNCg==