From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web11.158267.1669745451480125811 for ; Tue, 29 Nov 2022 10:10:51 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=msTftd+5; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: n.jayaprakash@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669745451; x=1701281451; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=kei/87b+ePDGZqhnkZJ0KrtyiN2BNSCuTgNxKz9EWmY=; b=msTftd+5fZdxSfCY4lj+e1Svxei4oIzk0LF6MQAdkrnKHcLW6HyOJGiL DSTPie4MBZjbjf4mDsNstgMljok8RMcUu/IgOS8bMhMWxknxOUu3hcZVM GbNzKIOql1arVBfkcISKTa5lhc+TNX8UWZbOJcDmaMf2T+mRHFlXaznWP 8aI732PtKz6RQdinnsBrVgG64aNeIBKSmdW9KGB6Lc5/6XdJlHrmrlFCv Nd8P2dRFhHr8Vxegdv4xYJeCFqlB7pvd8dSttB/+etGZ8U7Z6jU8V0jgc dgHWCMWWtpk3iInZ3ojn3CHycgO2Jh17gXlQcdFnJQcDBo3ZYJUYtIQPM g==; X-IronPort-AV: E=McAfee;i="6500,9779,10546"; a="315219578" X-IronPort-AV: E=Sophos;i="5.96,204,1665471600"; d="scan'208";a="315219578" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Nov 2022 10:10:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10546"; a="972783925" X-IronPort-AV: E=Sophos;i="5.96,204,1665471600"; d="scan'208";a="972783925" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga005.fm.intel.com with ESMTP; 29 Nov 2022 10:10:50 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Tue, 29 Nov 2022 10:10:50 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Tue, 29 Nov 2022 10:10:50 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.104) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Tue, 29 Nov 2022 10:10:47 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kqwbLvyhwGGiG86hRcfKxYXPtlMItxs5JpLUCw1hPMn+Gi9qPkl5JuVdrH3aK+cIx6orc0yxgOjz1PaX2Z7MxEOKBkNYwKl9IAhFahtov7bkav5MHCWYQubaCv7ihaEjciu7KudjCGa8TAACHewe2NvdrHEOC5yeeYdbupEHmdR9bwq0+Id6JHCSJENmOwodmq5vNNA9jOc7AkgTH2JQfjwKcfohps0PXcto5UYU0Ns/TJoIDVYD/07A+UE/9uKmbXC+8ABnE0FggtCd8mxdTYPLkm49GkN36RbAS7lUnwdCLyDMenWC8R/bCY1+htnHsjZPBqnZoBal7NmYzB1kHA== 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=kei/87b+ePDGZqhnkZJ0KrtyiN2BNSCuTgNxKz9EWmY=; b=FmbZmYVvzP8QqUcP6Sb355oKhAIjyac6CiUKnLSMr8ibY3IZw7xi39PtZxrA2PytsS4Jg8sch6w/kIb0wL3EASHE/UiWkK/MfVMgfjUKI5W63fiJOt3oqsea5xI7KNeYqRU584ALacQckc3VCjFOxsKL8gB54CcJDacuhY7xpJIGRGojjpJ/HcZyjTbsWArVztK8H3b/r5bgTtbpt3lckoGDDLjMUrBZ/66+1sCK19kU8QBhtlja4F8Ppk8MHIACqEOADw9ZJanqcLtPFRH/P/SeHsy1lS32ihDPTyZ5giF99CKMsxLc4QtRORA3o1oqF7dSk1kmOuFL8oFmlBH+Aw== 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 Received: from PH7PR11MB5943.namprd11.prod.outlook.com (2603:10b6:510:13f::19) by DS7PR11MB7807.namprd11.prod.outlook.com (2603:10b6:8:e3::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.17; Tue, 29 Nov 2022 18:10:44 +0000 Received: from PH7PR11MB5943.namprd11.prod.outlook.com ([fe80::871b:79f2:8ec8:9717]) by PH7PR11MB5943.namprd11.prod.outlook.com ([fe80::871b:79f2:8ec8:9717%9]) with mapi id 15.20.5857.023; Tue, 29 Nov 2022 18:10:44 +0000 From: "Jayaprakash, N" To: "Kinney, Michael D" , "devel@edk2.groups.io" CC: Rebecca Cran , "Kadapathri, Ajay" , "Frinzell, Aaron" Subject: Re: [edk2-libc Patch 1/1] edk2-libc: migration of edk2module from chipsec repo Thread-Topic: [edk2-libc Patch 1/1] edk2-libc: migration of edk2module from chipsec repo Thread-Index: AQHY/bHA9M01lOBr90G/hHu/SL1qMa5WGeaAgAAFU5CAAB2uAIAAA2QQ Date: Tue, 29 Nov 2022 18:10:44 +0000 Message-ID: References: <20221121140026.1931-1-n.jayaprakash@intel.com> <20221121140026.1931-2-n.jayaprakash@intel.com> In-Reply-To: Accept-Language: en-IN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR11MB5943:EE_|DS7PR11MB7807:EE_ x-ms-office365-filtering-correlation-id: 066752ef-31be-48fb-14fc-08dad2350867 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gLzpmrjeeSvC2YXe9Sa1BuyUFQzKAGOOXgzCsflmFEjZCEr/Pa9EctYJ02qMuSjJEOTxoyNrIXLiFzgzQlLs0/WtTegE3GC6aV5nTDpmodlAkIZDPWEGuNEZkGoMoIlrDwvfx/CTI5QHKmzuYj+4Nk++M6rNts3quFmgBPn/w9A6itjRxbRBXMf7R7OoqYIotnqfpXWmfN5f4ldAJf5XRBW+GUcWDm9IMW+xWkbaiYCjDphMu7dfW0NB2FO+9G3YEJrkFmaGL9olDdzEfAar/V/m2GqTFsaf5DpkYDKXmRQ8xcHZfBrFE0pkFJsRQuW8QYLSmFdWCP3IEBLqdtXKwQqdZDP2xNC49xhiouwyr1AMpmqyWtguFlmcFMf41iYllus0vrJ7Ow3RdzeNApNkF67qJOsXdtpecVadWU5Bir/PgFoWGmih2NaOt9M1qlAMAzFGxchfxyPxzEoUtQC/cqTzzc3tYStBHHgi7GmxGSlqinIV78NeX7GHvyUShuM9ujOCGE3TqtJqiCUXeMFAact9sEHS0AqoeeTD+xbl08Sr/PdT/HbomW2n5jt5DUzqxUg4YYB45fLvtzFsnHigEYMcfr3IaZsvI5kqOzHnYPZySuYdq0XTecQ144QvIHhWSsu3u9MtUr8kT+mr8WfRHhm5NLEEk8o/s6V/UPJCypsjTb+SCIMECz6oLNK5NWvQqFrVGN2c3WUzsF7b5/GYnx45Apo434TAHKNEan7GGaaddBE/sIeD9whN4JazNFv1FEDRhysgMXDNx5W6nJl6/9zJ2gAha5CVymEFRtD46xE= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR11MB5943.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(136003)(346002)(366004)(39860400002)(396003)(451199015)(66556008)(41300700001)(110136005)(66476007)(66446008)(64756008)(5660300002)(8676002)(66946007)(4326008)(76116006)(8936002)(30864003)(52536014)(55016003)(19627235002)(966005)(478600001)(9686003)(26005)(6506007)(7696005)(71200400001)(186003)(316002)(83380400001)(38070700005)(54906003)(53546011)(107886003)(122000001)(86362001)(82960400001)(38100700002)(2906002)(33656002)(545624005)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UmxoMGlBbGpZRDFEUkY5T0xaSW1HenBFREF3UzJiOFZ3amdKUmRwQ21CV3Ux?= =?utf-8?B?U1lMSE5yd0dETk5INWdFRi9ZZ1FYQnJzeWFRcDFVMW45dkFYaUt1MXcyakR0?= =?utf-8?B?dVZpUHZEQjZqNlA4V0x6RnR1TGpTVURQQVRiVldSZm9zMHozVlkwQ0ZjSktr?= =?utf-8?B?VmdGTHRzVGR1TndSTTFTaWk4ZHBtbjFrM3RWWXJFa1hESjcwc3dxcFp2RGRi?= =?utf-8?B?N3Y2clRxbjk5ek0wTEFFOEJEZzkzRSs3cnFwOHBjc0xSTVhnb29zYTc0YUJK?= =?utf-8?B?NEFCZUtnUWI1QzNEZHNLS2RHekxhVkF2QzZoZnRIVisyS0ZyUWhDdG5LQWo4?= =?utf-8?B?eFEyejVWa0JuWmxQK1d6TTl6bWx1YlNZd3B0WXUxTkJXaW9wblZPNXFZa2xt?= =?utf-8?B?WVp6bUZMUUN4SWd5NDJrZGZTSGZUd2FPK0VTTnRjbkJmSEJKZGI1enNwMnJZ?= =?utf-8?B?K2ZqNDg2cmh4Y0VwQ05HaG11RU54MHVTSTg4L2dPZFhlSXJDWllRaktmeEky?= =?utf-8?B?SFBPQzVORHh0RDR6QUpqMXJlUk9Na0xsdVY0Z1lKS3BHeXJDUFRFRDhXYk1a?= =?utf-8?B?bVAxS3d5RXVkMEhmbGFJQStieUxnUVphOERMeVpOWHFWRFN5STBnR3dwdFRY?= =?utf-8?B?MUcvb1M1Q1NBdEtJVVRSS1BGMXRQZ0IwdFlnYlU0QWdndVFLRnpocld1VUFX?= =?utf-8?B?U1BOMnd4M1gvaWlia0JNMDB1SVpWYTFyOGEzNzJST1dUWng2aHRMekFjaUxu?= =?utf-8?B?S1dWMi9SdGxieW0vMTg3M0NkUEJMb05jT1p4QW5ZVjRDMlY0NnMrMXdFUnJy?= =?utf-8?B?am1qek51bkVGM3MzQll0TUhZb2pVYkE1NVV5TGRqbzdQWlZuNFVEMi9XRE9q?= =?utf-8?B?djBiUDBCbm02RVNoRlZFSHRHS0VUSG9OdVcyZzd1eCtHLzVVK3B5ODMya2c5?= =?utf-8?B?ZEc1Lzc0ZWk1RWxTTW0zUjY5YnkrQzdOQkFwaXhNcStTUVF5OTRGNWpJaS8w?= =?utf-8?B?ckdPY0xydDBpRmp0R21reThPbnZCUGYvMHFDSVFiTmlYWlEyWmtiV3VacGR1?= =?utf-8?B?aElHWGh0RGU4SXB2Mjg0TTVCL0VWOWNPL2VYS3djMzEzMHhhNlBTK3g2WWFq?= =?utf-8?B?RFNHbi9JYWVkUHBnOHNBVWFMZHRlUnU5c3cvbDIveGRVMndObzhRMExjNnpO?= =?utf-8?B?Zy92eXp5cWUvcjE0T3pnci9vV2xmV3RyMDY3Yy9NczBsNW16T0ZBZFg1SmtR?= =?utf-8?B?OHNYSjJ1em1EK3dSWXRJU2pWRnJTSGFhUXBjZGMyWEtKdUp5aC8yNVRpZkgv?= =?utf-8?B?SWd6WTJEaGhxWmJYYUg3NDgyYmZRNUZsb0oxL2hybWRpYTdwRFlIMnlNZ0xl?= =?utf-8?B?Zk5NeDZYOFVEZytjOWJGMXVMT0Y3WURoV1ZkREF3OWMrK0g3b1o5bHVDNkYr?= =?utf-8?B?bzNDWjNUeXhSNzlkZUlTQXNHRXZ3ZDlaNlF1amRGc0dDSEk5RUpTU1BuMnRL?= =?utf-8?B?K3NTS0pkaEdQK3BUMWVCTlJPeDJFZGIxSm5QM1pmcGhsQ0wzbXhJNGFKNysy?= =?utf-8?B?dHRYSkxBMmdVL3c5SXFVWXgyT1hTcno0NnFSVDJQc3hIdmp0ZEk2d1IwOFlM?= =?utf-8?B?YTlqaE9EQzdBZnBvSDB2WjlOK3M0K25WSXpyTmF5cHoyU01MRW0xdHJ1VlEw?= =?utf-8?B?MVVkS3pEUGE4UTU5Ri9RblBpL2ovelJacmEyZjQ0dW4zRzNUWlEySnNWT1hL?= =?utf-8?B?UXpsNHYzQUlxOFIvem1PWk1CS1NjK1Ayb0lMRlFoUEU3RnhkK0YyMHgvNnFW?= =?utf-8?B?SWowanBoSzdPcENMMG5VbW1jaFVaY2hYcHE3SzR1VS9ER1dpZFlDeEdyWlI1?= =?utf-8?B?eVlFcXRFY0NTOFZYNHI4YVRjUnRIdjg4NUNORmNyMEZrcE91WkJuQ0lMc29V?= =?utf-8?B?SmswUkxsc0Y0amNuRFV1ZFdQSkhpLyt2dHU2NDVjc2cxMlBPOUhVNUFVR1Fs?= =?utf-8?B?OVg1aFEvRmJJcHVMaEJmdjdWaGlZd1BkOFVOMmJCUkxxM20zU0RUUnc3b1dC?= =?utf-8?B?dVFtbWZFWkd5VjdWUmx4YVhXTHBMRDBrVkN4bTF3elpLbkZFOWZMVDdJTVlI?= =?utf-8?Q?nllPj1Lag5m5KiIj05wagWkE7?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB5943.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 066752ef-31be-48fb-14fc-08dad2350867 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 18:10:44.2263 (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: yndddiXeWfqkMClCZTtDEN8lIsvkYWbp4gG96f/llxiujvIUTynrOXBGU3v2gF6Fw6fdezX60iMtdiIZSk5Evw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB7807 Return-Path: n.jayaprakash@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U3VyZSBNaWtlLiANClRoYW5rcyBmb3IgeW91ciBpbnB1dHMgYW5kIHJlY29tbWVuZGF0aW9ucy4N Cg0KUmVnYXJkcywNCkpQDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+IA0KU2VudDogMjkgTm92 ZW1iZXIgMjAyMiAyMzoyOA0KVG86IEpheWFwcmFrYXNoLCBOIDxuLmpheWFwcmFrYXNoQGludGVs LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+DQpDYzogUmViZWNjYSBDcmFuIDxyZWJlY2NhQG51dmlhaW5jLmNv bT47IEthZGFwYXRocmksIEFqYXkgPGFqYXkua2FkYXBhdGhyaUBpbnRlbC5jb20+OyBGcmluemVs bCwgQWFyb24gPGFhcm9uLmZyaW56ZWxsQGludGVsLmNvbT4NClN1YmplY3Q6IFJFOiBbZWRrMi1s aWJjIFBhdGNoIDEvMV0gZWRrMi1saWJjOiBtaWdyYXRpb24gb2YgZWRrMm1vZHVsZSBmcm9tIGNo aXBzZWMgcmVwbw0KDQpJIHJlY29tbWVuZCBsZWF2aW5nIGl0IGluIENoaXBzZWMgcHJvamVjdCB1 bnRpbCB0aGUgcG9ydCB0byBNZGVQa2cgbGlicyBjYW4gYmUgY29tcGxldGVkLg0KDQpNaWtlDQoN Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmF5YXByYWthc2gsIE4gPG4u amF5YXByYWthc2hAaW50ZWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAyOSwgMjAy MiA4OjIyIEFNDQo+IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogUmViZWNjYSBDcmFuIDxyZWJlY2Nh QG51dmlhaW5jLmNvbT47IEthZGFwYXRocmksIEFqYXkgPGFqYXkua2FkYXBhdGhyaUBpbnRlbC5j b20+OyBGcmluemVsbCwgQWFyb24NCj4gPGFhcm9uLmZyaW56ZWxsQGludGVsLmNvbT4NCj4gU3Vi amVjdDogUkU6IFtlZGsyLWxpYmMgUGF0Y2ggMS8xXSBlZGsyLWxpYmM6IG1pZ3JhdGlvbiBvZiBl ZGsybW9kdWxlIGZyb20gY2hpcHNlYyByZXBvDQo+IA0KPiBIaSBNaWtlLA0KPiANCj4gVGhhbmtz IE1pa2UgZm9yIHlvdXIgZmVlZGJhY2suIEkgY29tcGxldGVseSBhZ3JlZSB3aXRoIHlvdXIgc3Vn Z2VzdGlvbnMuDQo+IA0KPiBIYXZpbmcgc2FpZCB0aGF0LCB0aGUgY29kZSBpbiBQUiBpcyBhbiBl eGlzdGluZyB3ZWxsIHRlc3RlZCBjb2RlIGZyb20gQ2hpcHNlYyBnaXQgcmVwbyBhbmQgaXQgd2Fz IHByb2JhYmx5IHdyaXR0ZW4gcXVpdGUgYQ0KPiBmZXcgeWVhcnMgYWdvLg0KPiBUaGlzIGlzIHBy b2JhYmx5IHRoZSByZWFzb24gdGhhdCBpdCBpcyBub3QgZm9sbG93aW5nIHRoZSBlZGsyIGNvbnZl bnRpb25zIGFyZSBndWlkZWxpbmVzIHdpdGggcmVzcGVjdCB0byBBU00uDQo+IENoaXBzZWMgZ2l0 IHJlcG8gZm9yIHJlZmVyZW5jZSAtIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGlwc2VjL2NoaXBzZWMv dHJlZS9tYWluL2NoaXBzZWNfdG9vbHMvZWRrMi9QeXRob25FRkkNCj4gDQo+IE91ciBpZGVhIGlz IHRvIGJyaW5nIHRoaXMgY29kZSBmcm9tIENoaXBzZWMgcmVwbyBhcyBpcyBpbiB0aGUgZmlyc3Qg c3RhZ2UsIGVuYWJsZSB0aGUgQ2hpcHNlYyB0b29sIGFuZCB0aGVuIG1ha2UgYW55DQo+IGFkZGl0 aW9uYWwgaW1wcm92ZW1lbnRzIHJlcXVpcmVkLg0KPiBXZSBzaGFsbCBkZWZpbml0ZWx5IHRha2Ug dXAgeW91ciBzdWdnZXN0aW9ucyBlYXJseSBpbiB0aGUgbmV4dCB5ZWFyIDIwMjMuDQo+IA0KPiBM ZXQgbWUga25vdyBpZiB0aGlzIGlkZWEgc291bmRzIGdvb2QuDQo+IA0KPiBSZWdhcmRzLA0KPiBK UA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwg RCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IFNlbnQ6IDI5IE5vdmVtYmVyIDIwMjIg MjE6MjMNCj4gVG86IEpheWFwcmFrYXNoLCBOIDxuLmpheWFwcmFrYXNoQGludGVsLmNvbT47IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+DQo+IENjOiBSZWJlY2NhIENyYW4gPHJlYmVjY2FAbnV2aWFpbmMuY29tPg0KPiBT dWJqZWN0OiBSRTogW2VkazItbGliYyBQYXRjaCAxLzFdIGVkazItbGliYzogbWlncmF0aW9uIG9m IGVkazJtb2R1bGUgZnJvbSBjaGlwc2VjIHJlcG8NCj4gDQo+IEhpIEpQLA0KPiANCj4gTWFueSBv ZiB0aGVzZSBBUElzIGFyZSBhbHJlYWR5IGF2YWlsYWJsZSBmcm9tIHRoZSBNZGVQa2cgQmFzZUxp YiwgSW9MaWIsIGFuZCBQY2lMaWIuDQo+IA0KPiBXaHkgd291bGQgd2UgYWRkIGN1c3RvbSBBU00g aW1wbGVtZW50YXRpb25zIG9mIHRoZXJlIGhlcmU/DQo+IA0KPiBXaHkgQVNNIGFuZCBub3QgTkFT TS4gIGVkazIgcHJvamVjdHMgaGF2ZSBjb25zb2xpZGF0ZWQgb24gTkFTTSBmb3IgYWxsIElBMzIv WDY0IGFzc2VtYmx5IGNvZGUuDQo+IA0KPiBJIHRoaW5rIHRoZSBiZXN0IGFwcHJvYWNoIGlzIHRv IHBvcnQgdGhlIFB5dGhvbiB3cmFwcGVycyBhcm91bmQgdGhlIGNhbGxzIHRvIHRoZXNlDQo+IEFT TSBmdW5jdGlvbnMgdG8gY2FsbCBNZGVQa2cgQmFzZUxpYiwgSW9MaWIsIGFuZCBQY2lMaWIgYW5k IHJlbW92ZSB0aGUgQVNNIGNvZGUNCj4gZnJvbSB0aGUgcGF0Y2guDQo+IA0KPiBUaGFua3MsDQo+ IA0KPiBNaWtlDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTog SmF5YXByYWthc2gsIE4gPG4uamF5YXByYWthc2hAaW50ZWwuY29tPg0KPiA+IFNlbnQ6IE1vbmRh eSwgTm92ZW1iZXIgMjEsIDIwMjIgNjowMCBBTQ0KPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5p bw0KPiA+IENjOiBSZWJlY2NhIENyYW4gPHJlYmVjY2FAbnV2aWFpbmMuY29tPjsgS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgSmF5YXByYWthc2gsIE4NCj4g PiA8bi5qYXlhcHJha2FzaEBpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogW2VkazItbGliYyBQYXRj aCAxLzFdIGVkazItbGliYzogbWlncmF0aW9uIG9mIGVkazJtb2R1bGUgZnJvbSBjaGlwc2VjIHJl cG8NCj4gPg0KPiA+IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVn LmNnaT9pZD00MTYxDQo+ID4NCj4gPiBUaGlzIHBhdGNoIG1lcmdlcyB0aGUgZW5oYW5jZW1lbnRz IGRvbmUgYnkgY2hpcHNlYw0KPiA+IHRvb2wgdG8gZWRrMiBtb2R1bGUgaW50byBlZGsyLWxpYmMg cmVwby4NCj4gPiBUaGUgY2hpcHNlYyBlbmhhbmNlbWVudHMgY2FuIGJlIHVzZWQgZm9yIHZhcmlv dXMNCj4gPiBvdGhlciBQeXRob24gYmFzZWQgdG9vbHMgdG8gYWNjZXNzIHBsYXRmb3JtIHJlZ2lz dGVycy4NCj4gPiBUaGVzZSBlbmhhbmNlbWVudHMgcHJvdmlkaW5nIGEgc2V0IG9mIEFQSXMgdG8g YWNjZXNzDQo+ID4gdGhlIHBsYXRmb3JtIHJlZ2lzdGVycyBkaXJlY3RseSBmcm9tIHRoZSBweXRo b24NCj4gPiBzY3JpcHRzIHJ1bm5pbmcgb24gVUVGSSBzaGVsbC4gVGhpcyB3aWxsIGJlbmVmaXQg dGhlDQo+ID4gUHl0aG9uIHVzZXJzIG9uIFVFRkkgc2hlbGwgaW4gZ2VuZXJhbCBhbmQgZW5oYW5j ZXMNCj4gPiBpdCdzIHVzYWJpbGl0eS4gUHl0aG9uIGNhbiBiZSB1c2VkIGVmZmVjdGl2ZWx5IHRv DQo+ID4gaW1wbGVtZW50IHRvb2xzLCBzY3JpcHRzIHJlcXVpcmVkIGZvciBhdXRvbWF0aW9uLA0K PiA+IGRlYnVnIGZyb20gVUVGSSBzaGVsbC4NCj4gPg0KPiA+IENjOiBSZWJlY2NhIENyYW4gPHJl YmVjY2FAbnV2aWFpbmMuY29tPg0KPiA+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NCj4gPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRy aWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4gU2lnbmVkLW9mZi1ieTogSmF5YXByYWthc2ggTiA8 bi5qYXlhcHJha2FzaEBpbnRlbC5jb20+DQo+ID4gUmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5u ZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICAuLi4vUHl0aG9u LTMuNi44L1B5TW9kLTMuNi44L01vZHVsZXMvY3B1LmFzbSAgfCA1MTkgKysrKysrKysrKysrKysr Kw0KPiA+ICAuLi4vUHlNb2QtMy42LjgvTW9kdWxlcy9jcHVfaWEzMi5hc20gICAgICAgICAgfCAz OTUgKysrKysrKysrKysrDQo+ID4gIC4uLi9QeU1vZC0zLjYuOC9Nb2R1bGVzL2VkazJtb2R1bGUu YyAgICAgICAgICB8IDU2OCArKysrKysrKysrKysrKysrKy0NCj4gPiAgLi4uL1B5dGhvbi9QeXRo b24tMy42LjgvUHl0aG9uMzY4LmluZiAgICAgICAgIHwgIDMyICstDQo+ID4gIDQgZmlsZXMgY2hh bmdlZCwgMTQ5NiBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkNCj4gPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IEFwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0z LjYuOC9Nb2R1bGVzL2NwdS5hc20NCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IEFwcFBrZy9BcHBs aWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdV9pYTMy LmFzbQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5 dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdS5hc20gYi9BcHBQa2cvQXBwbGljYXRp b25zL1B5dGhvbi9QeXRob24tDQo+ID4gMy42LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9jcHUuYXNt DQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi42NWVkYzk2DQo+ ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5 dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2NwdS5hc20NCj4gPiBAQCAtMCwwICsxLDUx OSBAQA0KPiA+ICtUSVRMRSAgIGNwdS5hc206IEFzc2VtYmx5IGNvZGUgZm9yIHRoZSB4NjQgcmVz b3VyY2VzDQo+ID4gKw0KPiA+ICsuQ09ERSBjcHVfYXNtX2NvZGUkX19hDQo+ID4gKw0KPiA+ICtQ VUJMSUMgV3JpdGVQb3J0RHdvcmQNCj4gPiArUFVCTElDIFdyaXRlUG9ydFdvcmQNCj4gPiArUFVC TElDIFdyaXRlUG9ydEJ5dGUNCj4gPiArUFVCTElDIFJlYWRQb3J0RHdvcmQNCj4gPiArUFVCTElD IFJlYWRQb3J0V29yZA0KPiA+ICtQVUJMSUMgUmVhZFBvcnRCeXRlDQo+ID4gK1BVQkxJQyBXcml0 ZUhpZ2hDTU9TQnl0ZQ0KPiA+ICtQVUJMSUMgV3JpdGVMb3dDTU9TQnl0ZQ0KPiA+ICtQVUJMSUMg U2VuZEFQTVNNSQ0KPiA+ICtQVUJMSUMgV3JpdGVQQ0lCeXRlDQo+ID4gK1BVQkxJQyBXcml0ZVBD SVdvcmQNCj4gPiArUFVCTElDIFdyaXRlUENJRHdvcmQNCj4gPiArUFVCTElDIFJlYWRQQ0lCeXRl DQo+ID4gK1BVQkxJQyBSZWFkUENJV29yZA0KPiA+ICtQVUJMSUMgUmVhZFBDSUR3b3JkDQo+ID4g K1BVQkxJQyBfcmRtc3INCj4gPiArUFVCTElDIF93cm1zcg0KPiA+ICtQVUJMSUMgX2xvYWRfZ2R0 DQo+ID4gK1BVQkxJQyBfcmZsYWdzDQo+ID4gK1BVQkxJQyBfc3dzbWkNCj4gPiArDQo+ID4gKw0K PiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgVUlOVDY0IF9yZmxhZ3MoKQ0KPiA+ ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK19yZmxhZ3MgUFJPQw0KPiA+ICsgICAgcHVz aGZxDQo+ID4gKyAgICBwb3AgcmF4DQo+ID4gKyAgICByZXQNCj4gPiArX3JmbGFncyBFTkRQDQo+ ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgdm9pZCBfc3RvcmVfaWR0 cigNCj4gPiArOyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8gcmN4DQo+ID4gKzsgICApDQo+ ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArX3N0b3JlX2lkdHIgUFJPQw0KPiA+ICsg ICAgc2lkdCBmd29yZCBwdHIgW3JjeF0NCj4gPiArICAgIHJldA0KPiA+ICtfc3RvcmVfaWR0ciBF TkRQDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgdm9pZCBfbG9h ZF9pZHRyKA0KPiA+ICs7ICAgdW5zaWduZWQgY2hhciAqYWRkcmVzcyAvLyByY3gNCj4gPiArOyAg ICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtfbG9hZF9pZHRyIFBST0MNCj4g PiArICAgIGxpZHQgZndvcmQgcHRyIFtyY3hdDQo+ID4gKyAgICByZXQNCj4gPiArX2xvYWRfaWR0 ciBFTkRQDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgdm9pZCBf c3RvcmVfZ2R0cigNCj4gPiArOyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8gcmN4DQo+ID4g KzsgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArX3N0b3JlX2dkdHIgUFJP Qw0KPiA+ICsgICAgc2dkdCBmd29yZCBwdHIgW3JjeF0NCj4gPiArICAgIHJldA0KPiA+ICtfc3Rv cmVfZ2R0ciBFTkRQDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsg dm9pZCBfbG9hZF9nZHRyKA0KPiA+ICs7ICAgdW5zaWduZWQgY2hhciAqYWRkcmVzcyAvLyByY3gN Cj4gPiArOyAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtfbG9hZF9nZHRy IFBST0MNCj4gPiArICAgIGxnZHQgZndvcmQgcHRyIFtyY3hdDQo+ID4gKyAgICByZXQNCj4gPiAr X2xvYWRfZ2R0ciBFTkRQDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4g Kzsgdm9pZCBfc3RvcmVfbGR0cigNCj4gPiArOyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8g cmN4DQo+ID4gKzsgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArX3N0b3Jl X2xkdHIgUFJPQw0KPiA+ICsgICAgO3NsZHQgZndvcmQgcHRyIFtyY3hdDQo+ID4gKyAgICByZXQN Cj4gPiArX3N0b3JlX2xkdHIgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiA+ICs7IHZvaWQgX2xvYWRfbGR0cigNCj4gPiArOyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJl c3MgLy8gcmN4DQo+ID4gKzsgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAr X2xvYWRfbGR0ciBQUk9DDQo+ID4gKyAgICA7bGxkdCBmd29yZCBwdHIgW3JjeF0NCj4gPiArICAg IHJldA0KPiA+ICtfbG9hZF9sZHRyIEVORFANCj4gPiArDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ID4gKzsgdm9pZCBfbG9hZF9nZHQoDQo+ID4gKzsgICB1bnNpZ25lZCBj aGFyICp2YWx1ZSAvLyByY3gNCj4gPiArOyAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiA+ICtfbG9hZF9nZHQgUFJPQw0KPiA+ICsNCj4gPiArICAgIHNnZHQgZndvcmQgcHRyIFty Y3hdDQo+ID4gKyAgICBsZ2R0IGZ3b3JkIHB0ciBbcmN4XQ0KPiA+ICsNCj4gPiArICAgIHJldA0K PiA+ICtfbG9hZF9nZHQgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiA+ICs7ICB2b2lkIF9yZG1zcigNCj4gPiArOyAgICB1bnNpZ25lZCBpbnQgbXNyX251bSwgLy8g cmN4DQo+ID4gKzsgICAgdW5zaWduZWQgaW50KiBtc3JfbG8sIC8vIHJkeA0KPiA+ICs7ICAgIHVu c2lnbmVkIGludCogbXNyX2hpICAvLyByOA0KPiA+ICs7ICAgICkNCj4gPiArOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiA+ICtfcmRtc3IgUFJPQw0KPiA+ICsgICAgcHVzaCByMTANCj4gPiArICAg IHB1c2ggcjExDQo+ID4gKyAgICBwdXNoIHJheA0KPiA+ICsgICAgcHVzaCByZHgNCj4gPiArDQo+ ID4gKyAgICBtb3YgcjEwLCByZHggOyBtc3JfbG8NCj4gPiArICAgIG1vdiByMTEsIHI4ICA7IG1z cl9oaQ0KPiA+ICsNCj4gPiArICAgIDsgcmN4IGhhcyBtc3JfbnVtDQo+ID4gKyAgICByZG1zcg0K PiA+ICsNCj4gPiArICAgIDsgV3JpdGUgTVNSIHJlc3VsdHMgaW4gZWR4OmVheA0KPiA+ICsgICAg bW92IGR3b3JkIHB0ciBbcjEwXSwgZWF4DQo+ID4gKyAgICBtb3YgZHdvcmQgcHRyIFtyMTFdLCBl ZHgNCj4gPiArDQo+ID4gKyAgICBwb3AgcmR4DQo+ID4gKyAgICBwb3AgcmF4DQo+ID4gKyAgICBw b3AgcjExDQo+ID4gKyAgICBwb3AgcjEwDQo+ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4gK19yZG1z ciBFTkRQDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgIHZvaWQg X3dybXNyKA0KPiA+ICs7ICAgIHVuc2lnbmVkIGludCBtc3JfbnVtLCAvLyByY3gNCj4gPiArOyAg ICB1bnNpZ25lZCBpbnQgbXNyX2hpLCAgLy8gcmR4DQo+ID4gKzsgICAgdW5zaWduZWQgaW50IG1z cl9sbyAgIC8vIHI4DQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ ID4gK193cm1zciBQUk9DDQo+ID4gKyAgICBwdXNoIHJheA0KPiA+ICsNCj4gPiArICAgIDsgcmN4 IGhhcyBtc3JfbnVtDQo+ID4gKyAgICA7IHJkeCBoYXMgbXNyX2hpDQo+ID4gKyAgICA7IG1vdmUg bXNyX2xvIGZyb20gcjggdG8gcmF4DQo+ID4gKyAgICBtb3YgcmF4LCByOA0KPiA+ICsgICAgd3Jt c3INCj4gPiArDQo+ID4gKyAgICBwb3AgcmF4DQo+ID4gKyAgICByZXQNCj4gPiArX3dybXNyIEVO RFANCj4gPiArDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgIHZv aWQNCj4gPiArOyAgV3JpdGVQb3J0RHdvcmQgKA0KPiA+ICs7ICAgIHVuc2lnbmVkIGludAlvdXRf dmFsdWUgICAgICAgICAgLy8gcmN4DQo+ID4gKzsgICAgdW5zaWduZWQgc2hvcnQJcG9ydF9udW0g ICAgICAgICAgIC8vIHJkeA0KPiA+ICs7ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiA+ICtXcml0ZVBvcnREd29yZCBQUk9DDQo+ID4gKyAgICBwdXNoIHJheA0KPiA+ICsNCj4g PiArICAgIG1vdiByYXgsIHJjeA0KPiA+ICsgICAgb3V0IGR4LCByYXgNCj4gPiArDQo+ID4gKyAg ICBwb3AgcmF4DQo+ID4gKyAgICByZXQNCj4gPiArV3JpdGVQb3J0RHdvcmQgRU5EUA0KPiA+ICsN Cj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICB2b2lkDQo+ID4gKzsgIFdyaXRl UG9ydFdvcmQgKA0KPiA+ICs7ICAgIHVuc2lnbmVkIHNob3J0CW91dF92YWx1ZSAgICAgICAgICAv LyByY3gNCj4gPiArOyAgICB1bnNpZ25lZCBzaG9ydAlwb3J0X251bSAgICAgICAgICAgLy8gcmR4 DQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1dyaXRlUG9y dFdvcmQgUFJPQw0KPiA+ICsgICAgcHVzaCByYXgNCj4gPiArDQo+ID4gKyAgICBtb3YgcmF4LCBy Y3gNCj4gPiArICAgIG91dCBkeCwgYXgNCj4gPiArDQo+ID4gKyAgICBwb3AgcmF4DQo+ID4gKyAg ICByZXQNCj4gPiArV3JpdGVQb3J0V29yZCBFTkRQDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ID4gKzsgIHZvaWQNCj4gPiArOyAgV3JpdGVQb3J0Qnl0ZSAoDQo+ID4gKzsg ICAgdW5zaWduZWQgY2hhcglvdXRfdmFsdWUgICAgICAgICAgLy8gcmN4DQo+ID4gKzsgICAgdW5z aWduZWQgc2hvcnQJcG9ydF9udW0gICAgICAgICAgIC8vIHJkeA0KPiA+ICs7ICAgICkNCj4gPiAr Oy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtXcml0ZVBvcnRCeXRlIFBST0MNCj4gPiArICAg IHB1c2ggcmF4DQo+ID4gKw0KPiA+ICsgICAgbW92IHJheCwgcmN4DQo+ID4gKyAgICBvdXQgZHgs IGFsDQo+ID4gKw0KPiA+ICsgICAgcG9wIHJheA0KPiA+ICsgICAgcmV0DQo+ID4gK1dyaXRlUG9y dEJ5dGUgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICB1 bnNpZ25lZCBpbnQNCj4gPiArOyAgUmVhZFBvcnREd29yZCAoDQo+ID4gKzsgICAgdW5zaWduZWQg c2hvcnQJcG9ydF9udW0gICAgICAgICAgIC8vIHJjeA0KPiA+ICs7ICAgICkNCj4gPiArOy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtSZWFkUG9ydER3b3JkIFBST0MNCj4gPiArICAgIHB1c2gg cmR4DQo+ID4gKw0KPiA+ICsgICAgeG9yIHJheCwgcmF4DQo+ID4gKyAgICBtb3YgcmR4LCByY3gN Cj4gPiArICAgIGluIGVheCwgZHgNCj4gPiArDQo+ID4gKyAgICBwb3AgcmR4DQo+ID4gKyAgICBy ZXQNCj4gPiArUmVhZFBvcnREd29yZCBFTkRQDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ID4gKzsgIHVuc2lnbmVkIHNob3J0DQo+ID4gKzsgIFJlYWRQb3J0V29yZCAoDQo+ ID4gKzsgICAgdW5zaWduZWQgc2hvcnQJcG9ydF9udW0gICAgICAgICAgIC8vIHJjeA0KPiA+ICs7 ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtSZWFkUG9ydFdvcmQgUFJP Qw0KPiA+ICsgICAgcHVzaCByZHgNCj4gPiArDQo+ID4gKyAgICB4b3IgcmF4LCByYXgNCj4gPiAr ICAgIG1vdiByZHgsIHJjeA0KPiA+ICsgICAgaW4gYXgsIGR4DQo+ID4gKw0KPiA+ICsgICAgcG9w IHJkeA0KPiA+ICsgICAgcmV0DQo+ID4gK1JlYWRQb3J0V29yZCBFTkRQDQo+ID4gKw0KPiA+ICs7 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgIHVuc2lnbmVkIGNoYXINCj4gPiArOyAgUmVh ZFBvcnRCeXRlICgNCj4gPiArOyAgICB1bnNpZ25lZCBzaG9ydAlwb3J0X251bSAgICAgICAgICAg Ly8gcmN4DQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1Jl YWRQb3J0Qnl0ZSBQUk9DDQo+ID4gKyAgICBwdXNoIHJkeA0KPiA+ICsNCj4gPiArICAgIHhvciBy YXgsIHJheA0KPiA+ICsgICAgbW92IHJkeCwgcmN4DQo+ID4gKyAgICBpbiBhbCwgZHgNCj4gPiAr DQo+ID4gKyAgICBwb3AgcmR4DQo+ID4gKyAgICByZXQNCj4gPiArUmVhZFBvcnRCeXRlIEVORFAN Cj4gPiArDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgIHZvaWQN Cj4gPiArOyAgV3JpdGVIaWdoQ01PU0J5dGUgKA0KPiA+ICs7ICAgIHVuc2lnbmVkIGNoYXIJY21v c19vZmYgICAgICAgIC8vIHJjeA0KPiA+ICs7ICAgIHVuc2lnbmVkIGNoYXIJdmFsICAgCQkvLyBy ZHgNCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArV3JpdGVI aWdoQ01PU0J5dGUgUFJPQw0KPiA+ICsgICAgcHVzaCByYXgNCj4gPiArDQo+ID4gKyAgICBtb3Yg cmF4LCByY3gNCj4gPiArICAgIG91dCA3MmgsIGFsDQo+ID4gKyAgICBtb3YgcmF4LCByZHgNCj4g PiArICAgIG91dCA3M2gsIGFsDQo+ID4gKw0KPiA+ICsgICAgcG9wIHJheA0KPiA+ICsgICAgcmV0 DQo+ID4gK1dyaXRlSGlnaENNT1NCeXRlIEVORFANCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiA+ICs7ICB2b2lkDQo+ID4gKzsgIFdyaXRlTG93Q01PU0J5dGUgKA0KPiA+ICs7ICAgIHVu c2lnbmVkIGNoYXIJY21vc19vZmYgICAgICAgIC8vIHJjeA0KPiA+ICs7ICAgIHVuc2lnbmVkIGNo YXIJdmFsICAgCQkvLyByZHgNCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gPiArV3JpdGVMb3dDTU9TQnl0ZSBQUk9DDQo+ID4gKyAgICBwdXNoIHJheA0KPiA+ICsN Cj4gPiArICAgIG1vdiByYXgsIHJjeA0KPiA+ICsgICAgb3IgYWwsIDgwaA0KPiA+ICsgICAgb3V0 IDcwaCwgYWwNCj4gPiArICAgIG1vdiByYXgsIHJkeA0KPiA+ICsgICAgb3V0IDcxaCwgYWwNCj4g PiArDQo+ID4gKyAgICBwb3AgcmF4DQo+ID4gKyAgICByZXQNCj4gPiArV3JpdGVMb3dDTU9TQnl0 ZSBFTkRQDQo+ID4gKw0KPiA+ICsNCj4gPiArOyBAVE9ETzogbG9va3MgaW5jb3JyZWN0DQo+ID4g KzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgdm9pZA0KPiA+ICs7ICBTZW5kQVBNU01J ICgNCj4gPiArOyAgICB1bnNpZ25lZCBpbnQJYXBtX3BvcnRfdmFsdWUgICAgICAgICAgLy8gcmN4 DQo+ID4gKzsgICAgSU4gICBVSU5UNjQJcmF4X3ZhbHVlICAgICAgICAgICAgICAgLy8gcmR4DQo+ ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1NlbmRBUE1TTUkg UFJPQw0KPiA+ICsgICAgcHVzaCByYXgNCj4gPiArICAgIHB1c2ggcmR4DQo+ID4gKw0KPiA+ICsg ICAgbW92IHJheCwgcmN4DQo+ID4gKyAgICBtb3YgZHgsIDBCMmgNCj4gPiArICAgIG91dCBkeCwg cmF4DQo+ID4gKw0KPiA+ICsgICAgcG9wIHJkeA0KPiA+ICsgICAgcG9wIHJheA0KPiA+ICsgICAg cmV0DQo+ID4gK1NlbmRBUE1TTUkgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiA+ICs7ICB2b2lkDQo+ID4gKzsgIFdyaXRlUENJQnl0ZSAoDQo+ID4gKzsgICAgdW5z aWduZWQgaW50CXBjaV9yZWcgICAgICAgICAgLy8gcmN4DQo+ID4gKzsgICAgdW5zaWduZWQgc2hv cnQJY2ZnX2RhdGFfcG9ydCAgICAvLyByZHgNCj4gPiArOyAgICB1bnNpZ25lZCBjaGFyCWJ5dGVf dmFsdWUgICAgICAgLy8gcjgNCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gPiArV3JpdGVQQ0lCeXRlIFBST0MNCj4gPiArICAgIHB1c2ggcmF4DQo+ID4gKyAgICBw dXNoIHJkeA0KPiA+ICsNCj4gPiArICAgIGNsaQ0KPiA+ICsgICAgbW92IHJheCwgcmN4ICA7IHBj aV9yZWcNCj4gPiArICAgIG1vdiBkeCwgMENGOGgNCj4gPiArICAgIG91dCBkeCwgcmF4DQo+ID4g Kw0KPiA+ICsgICAgbW92IHJheCwgcjggICA7IGJ5dGVfdmFsdWUNCj4gPiArICAgIHBvcCByZHgg ICAgICAgOyBjZmdfZGF0YV9wb3J0DQo+ID4gKyAgICBvdXQgZHgsIGFsDQo+ID4gKyAgICBzdGkN Cj4gPiArDQo+ID4gKyAgICBwb3AgcmF4DQo+ID4gKyAgICByZXQNCj4gPiArV3JpdGVQQ0lCeXRl IEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgdm9pZA0K PiA+ICs7ICBXcml0ZVBDSVdvcmQgKA0KPiA+ICs7ICAgIHVuc2lnbmVkIGludAlwY2lfcmVnICAg ICAgICAgIC8vIHJjeA0KPiA+ICs7ICAgIHVuc2lnbmVkIHNob3J0CWNmZ19kYXRhX3BvcnQgICAg Ly8gcmR4DQo+ID4gKzsgICAgdW5zaWduZWQgc2hvcnQJd29yZF92YWx1ZSAgICAgICAvLyByOA0K PiA+ICs7ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtXcml0ZVBDSVdv cmQgUFJPQw0KPiA+ICsgICAgcHVzaCByYXgNCj4gPiArICAgIHB1c2ggcmR4DQo+ID4gKw0KPiA+ ICsgICAgY2xpDQo+ID4gKyAgICBtb3YgcmF4LCByY3ggIDsgcGNpX3JlZw0KPiA+ICsgICAgbW92 IGR4LCAwQ0Y4aA0KPiA+ICsgICAgb3V0IGR4LCByYXgNCj4gPiArDQo+ID4gKyAgICBtb3YgcmF4 LCByOCAgIDsgYnl0ZV92YWx1ZQ0KPiA+ICsgICAgcG9wIHJkeCAgICAgICA7IGNmZ19kYXRhX3Bv cnQNCj4gPiArICAgIG91dCBkeCwgYXgNCj4gPiArICAgIHN0aQ0KPiA+ICsNCj4gPiArICAgIHBv cCByYXgNCj4gPiArICAgIHJldA0KPiA+ICtXcml0ZVBDSVdvcmQgRU5EUA0KPiA+ICsNCj4gPiAr Oy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICB2b2lkDQo+ID4gKzsgIFdyaXRlUENJRHdv cmQgKA0KPiA+ICs7ICAgIHVuc2lnbmVkIGludAlwY2lfcmVnICAgICAgICAgIC8vIHJjeA0KPiA+ ICs7ICAgIHVuc2lnbmVkIHNob3J0CWNmZ19kYXRhX3BvcnQgICAgLy8gcmR4DQo+ID4gKzsgICAg dW5zaWduZWQgaW50CWR3b3JkX3ZhbHVlICAgICAgLy8gcjgNCj4gPiArOyAgICApDQo+ID4gKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArV3JpdGVQQ0lEd29yZCBQUk9DDQo+ID4gKyAgICBw dXNoIHJheA0KPiA+ICsgICAgcHVzaCByZHgNCj4gPiArDQo+ID4gKyAgICBjbGkNCj4gPiArICAg IG1vdiByYXgsIHJjeCAgOyBwY2lfcmVnDQo+ID4gKyAgICBtb3YgZHgsIDBDRjhoDQo+ID4gKyAg ICBvdXQgZHgsIHJheA0KPiA+ICsNCj4gPiArICAgIG1vdiByYXgsIHI4ICAgOyBieXRlX3ZhbHVl DQo+ID4gKyAgICBwb3AgcmR4ICAgICAgIDsgY2ZnX2RhdGFfcG9ydA0KPiA+ICsgICAgb3V0IGR4 LCBlYXgNCj4gPiArICAgIHN0aQ0KPiA+ICsNCj4gPiArICAgIHBvcCByYXgNCj4gPiArICAgIHJl dA0KPiA+ICtXcml0ZVBDSUR3b3JkIEVORFANCj4gPiArDQo+ID4gKw0KPiA+ICsNCj4gPiArOy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICB1bnNpZ25lZCBjaGFyDQo+ID4gKzsgIFJlYWRQ Q0lCeXRlICgNCj4gPiArOyAgICB1bnNpZ25lZCBpbnQJcGNpX3JlZyAgICAgICAgICAvLyByY3gN Cj4gPiArOyAgICB1bnNpZ25lZCBzaG9ydAljZmdfZGF0YV9wb3J0ICAgIC8vIHJkeA0KPiA+ICs7 ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtSZWFkUENJQnl0ZSBQUk9D DQo+ID4gKyAgICBwdXNoIHJkeA0KPiA+ICsNCj4gPiArICAgIGNsaQ0KPiA+ICsgICAgbW92IHJh eCwgcmN4ICA7IHBjaV9yZWcNCj4gPiArICAgIG1vdiBkeCwgMENGOGgNCj4gPiArICAgIG91dCBk eCwgcmF4DQo+ID4gKw0KPiA+ICsgICAgeG9yIHJheCwgcmF4DQo+ID4gKyAgICBwb3AgcmR4ICAg ICAgIDsgY2ZnX2RhdGFfcG9ydA0KPiA+ICsgICAgaW4gIGFsLCBkeA0KPiA+ICsgICAgc3RpDQo+ ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4gK1JlYWRQQ0lCeXRlIEVORFANCj4gPiArDQo+ID4gKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgdW5zaWduZWQgc2hvcnQNCj4gPiArOyAgUmVh ZFBDSVdvcmQgKA0KPiA+ICs7ICAgIHVuc2lnbmVkIGludAlwY2lfcmVnICAgICAgICAgIC8vIHJj eA0KPiA+ICs7ICAgIHVuc2lnbmVkIHNob3J0CWNmZ19kYXRhX3BvcnQgICAgLy8gcmR4DQo+ID4g KzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1JlYWRQQ0lXb3JkIFBS T0MNCj4gPiArICAgIHB1c2ggcmR4DQo+ID4gKw0KPiA+ICsgICAgY2xpDQo+ID4gKyAgICBtb3Yg cmF4LCByY3ggIDsgcGNpX3JlZw0KPiA+ICsgICAgbW92IGR4LCAwQ0Y4aA0KPiA+ICsgICAgb3V0 IGR4LCByYXgNCj4gPiArDQo+ID4gKyAgICB4b3IgcmF4LCByYXgNCj4gPiArICAgIHBvcCByZHgg ICAgICAgOyBjZmdfZGF0YV9wb3J0DQo+ID4gKyAgICBpbiAgYXgsIGR4DQo+ID4gKyAgICBzdGkN Cj4gPiArDQo+ID4gKyAgICByZXQNCj4gPiArUmVhZFBDSVdvcmQgRU5EUA0KPiA+ICsNCj4gPiAr Oy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICB1bnNpZ25lZCBpbnQNCj4gPiArOyAgUmVh ZFBDSUR3b3JkICgNCj4gPiArOyAgICB1bnNpZ25lZCBpbnQJcGNpX3JlZyAgICAgICAgICAvLyBy Y3gNCj4gPiArOyAgICB1bnNpZ25lZCBzaG9ydAljZmdfZGF0YV9wb3J0ICAgIC8vIHJkeA0KPiA+ ICs7ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtSZWFkUENJRHdvcmQg UFJPQw0KPiA+ICsgICAgcHVzaCByZHgNCj4gPiArDQo+ID4gKyAgICBjbGkNCj4gPiArICAgIG1v diByYXgsIHJjeCAgOyBwY2lfcmVnDQo+ID4gKyAgICBtb3YgZHgsIDBDRjhoDQo+ID4gKyAgICBv dXQgZHgsIHJheA0KPiA+ICsNCj4gPiArICAgIHhvciByYXgsIHJheA0KPiA+ICsgICAgcG9wIHJk eCAgICAgICA7IGNmZ19kYXRhX3BvcnQNCj4gPiArICAgIGluICBlYXgsIGR4DQo+ID4gKyAgICBz dGkNCj4gPiArDQo+ID4gKyAgICByZXQNCj4gPiArUmVhZFBDSUR3b3JkIEVORFANCj4gPiArDQo+ ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgdm9pZA0KPiA+ICs7ICBfc3dzbWkg KA0KPiA+ICs7ICAgIHVuc2lnbmVkIGludAlzbWlfY29kZV9kYXRhCS8vIHJjeA0KPiA+ICs7ICAg IElOICAgVUlOVDY0CXJheF92YWx1ZQkvLyByZHgNCj4gPiArOyAgICBJTiAgIFVJTlQ2NAlyYnhf dmFsdWUJLy8gcjgNCj4gPiArOyAgICBJTiAgIFVJTlQ2NAlyY3hfdmFsdWUJLy8gcjkNCj4gPiAr OyAgICBJTiAgIFVJTlQ2NAlyZHhfdmFsdWUJLy8gcnNwICsgMHgyOA0KPiA+ICs7ICAgIElOICAg VUlOVDY0CXJzaV92YWx1ZQkvLyByc3AgKyAweDMwDQo+ID4gKzsgICAgSU4gICBVSU5UNjQJcmRp X3ZhbHVlCS8vIHJzcCArIDB4MzgNCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gPiArX3N3c21pIFBST0MNCj4gPiArICAgIHB1c2ggcmJ4DQo+ID4gKyAgICBwdXNo IHJzaQ0KPiA+ICsgICAgcHVzaCByZGkNCj4gPiArDQo+ID4gKyAgICA7IHJzcCAtIDB4MTgNCj4g PiArDQo+ID4gKyAgICA7IHNldHRpbmcgdXAgR1BSIChhcmd1bWVudHMpIHRvIFNNSSBoYW5kbGVy IGNhbGwNCj4gPiArICAgIDsgbm90ZXM6DQo+ID4gKyAgICA7ICAgUkFYIHdpbGwgZ2V0IHBhcnRp YWxseSBvdmVyd3JpdHRlbiAoQVgpIGJ5IF9zbWlfY29kZV9kYXRhICh3aGljaCBpcyBwYXNzZWQg aW4gUkNYKQ0KPiA+ICsgICAgOyAgIFJEWCB3aWxsIGdldCBwYXJ0aWFsbHkgb3ZlcndyaXR0ZW4g KERYKSBieSB0aGUgdmFsdWUgb2YgQVBNQyBwb3J0ICg9IDB4MDBCMikNCj4gPiArICAgIG1vdiBy YXgsIHJkeCA7IHJheF92YWx1ZQ0KPiA+ICsgICAgbW92IGF4LCBjeCAgIDsgc21pX2NvZGVfZGF0 YQ0KPiA+ICsgICAgbW92IHJkeCwgcjEwIDsgcmR4X3ZhbHVlDQo+ID4gKyAgICBtb3YgcmR4LCBb cnNwICsgMDQwaF0gOyByc3AgKyAweDI4ICsgMHgxOA0KPiA+ICsNCj4gPiArICAgIG1vdiByYngs IHI4ICA7IHJieF92YWx1ZQ0KPiA+ICsgICAgbW92IHJjeCwgcjkgIDsgcmN4X3ZhbHVlDQo+ID4g KyAgICBtb3YgcnNpLCBbcnNwICsgMDQ4aF0gOyByc2lfdmFsdWUNCj4gPiArICAgIG1vdiByZGks IFtyc3AgKyAwNTBoXSA7IHJkaV92YWx1ZQ0KPiA+ICsNCj4gPiArICAgIDsgdGhpcyBPVVQgaW5z dHJ1Y3Rpb24gd2lsbCB3cml0ZSBXT1JEIHZhbHVlIChzbWlfY29kZV9kYXRhKSB0byBwb3J0cyAw eEIyIGFuZCAweEIzIChTVyBTTUkgY29udHJvbCBhbmQgZGF0YSBwb3J0cykNCj4gPiArICAgIG91 dCAwQjJoLCBheA0KPiA+ICsNCj4gPiArICAgIDsgQFRPRE86IHNvbWUgU00gaGFuZGxlcnMgcmV0 dXJuIGRhdGEvZXJyb3Jjb2RlIGluIEdQUnMsIG5lZWQgdG8gcmV0dXJuIHRoaXMgdG8gdGhlIGNh bGxlcg0KPiA+ICsNCj4gPiArICAgIHBvcCByZGkNCj4gPiArICAgIHBvcCByc2kNCj4gPiArICAg IHBvcCByYngNCj4gPiArICAgIHJldA0KPiA+ICtfc3dzbWkgRU5EUA0KPiA+ICsNCj4gPiArDQo+ ID4gK0VORA0KPiA+IGRpZmYgLS1naXQgYS9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRo b24tMy42LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9jcHVfaWEzMi5hc20NCj4gYi9BcHBQa2cvQXBw bGljYXRpb25zL1B5dGhvbi9QeXRob24tDQo+ID4gMy42LjgvUHlNb2QtMy42LjgvTW9kdWxlcy9j cHVfaWEzMi5hc20NCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAu LjBiNmZjNmQNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvQXBwUGtnL0FwcGxpY2F0aW9u cy9QeXRob24vUHl0aG9uLTMuNi44L1B5TW9kLTMuNi44L01vZHVsZXMvY3B1X2lhMzIuYXNtDQo+ ID4gQEAgLTAsMCArMSwzOTUgQEANCj4gPiArVElUTEUgICBjcHUuYXNtOiBBc3NlbWJseSBjb2Rl IGZvciB0aGUgaTM4NiByZXNvdXJjZXMNCj4gPiArDQo+ID4gK1BVQkxJQyBXcml0ZVBvcnREd29y ZA0KPiA+ICtQVUJMSUMgV3JpdGVQb3J0V29yZA0KPiA+ICtQVUJMSUMgV3JpdGVQb3J0Qnl0ZQ0K PiA+ICtQVUJMSUMgUmVhZFBvcnREd29yZA0KPiA+ICtQVUJMSUMgUmVhZFBvcnRXb3JkDQo+ID4g K1BVQkxJQyBSZWFkUG9ydEJ5dGUNCj4gPiArUFVCTElDIFdyaXRlSGlnaENNT1NCeXRlDQo+ID4g K1BVQkxJQyBXcml0ZUxvd0NNT1NCeXRlDQo+ID4gK1BVQkxJQyBTZW5kQVBNU01JDQo+ID4gK1BV QkxJQyBXcml0ZVBDSUJ5dGUNCj4gPiArUFVCTElDIFdyaXRlUENJV29yZA0KPiA+ICtQVUJMSUMg V3JpdGVQQ0lEd29yZA0KPiA+ICtQVUJMSUMgUmVhZFBDSUJ5dGUNCj4gPiArUFVCTElDIFJlYWRQ Q0lXb3JkDQo+ID4gK1BVQkxJQyBSZWFkUENJRHdvcmQNCj4gPiArUFVCTElDIF9yZG1zcg0KPiA+ ICtQVUJMSUMgX3dybXNyDQo+ID4gKw0KPiA+ICsNCj4gPiArICAgIC41ODZwDQo+ID4gKyAgICAu bW9kZWwgIGZsYXQsQw0KPiA+ICsgICAgLmNvZGUNCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiArOyB2b2lkIF9zdG9yZV9pZHRyKA0KPiA+ICs7ICAgdW5zaWduZWQgY2hh ciAqYWRkcmVzcyAvLyByY3gNCj4gPiArOyAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiA+ICtfc3RvcmVfaWR0ciBQUk9DDQo+ID4gKyAgICBtb3YgZWN4LCBkd29yZCBwdHIgW2Vz cCs0XQ0KPiA+ICsgICAgc2lkdCBkd29yZCBwdHIgW2VjeF0NCj4gPiArICAgIHJldA0KPiA+ICtf c3RvcmVfaWR0ciBFTkRQDQo+ID4gKw0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiA+ICs7IHZvaWQgX2xvYWRfaWR0cigNCj4gPiArOyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJl c3MgLy8gcmN4DQo+ID4gKzsgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAr X2xvYWRfaWR0ciBQUk9DDQo+ID4gKyAgICBtb3YgZWN4LCBkd29yZCBwdHIgW2VzcCs0XQ0KPiA+ ICsgICAgbGlkdCBmd29yZCBwdHIgW2VjeF0NCj4gPiArICAgIHJldA0KPiA+ICtfbG9hZF9pZHRy IEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyB2b2lkIF9z dG9yZV9nZHRyKA0KPiA+ICs7ICAgdW5zaWduZWQgY2hhciAqYWRkcmVzcyAvLyByY3gNCj4gPiAr OyAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtfc3RvcmVfZ2R0ciBQUk9D DQo+ID4gKyAgICBtb3YgZWN4LCBkd29yZCBwdHIgW2VzcCs0XQ0KPiA+ICsgICAgc2dkdCBkd29y ZCBwdHIgW2VjeF0NCj4gPiArICAgIHJldA0KPiA+ICtfc3RvcmVfZ2R0ciBFTkRQDQo+ID4gKw0K PiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgdm9pZCBfc3RvcmVfbGR0cigNCj4g PiArOyAgIHVuc2lnbmVkIGNoYXIgKmFkZHJlc3MgLy8gcmN4DQo+ID4gKzsgICApDQo+ID4gKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArX3N0b3JlX2xkdHIgUFJPQw0KPiA+ICsgICAgbW92 IGVjeCwgZHdvcmQgcHRyIFtlc3ArNF0NCj4gPiArICAgIHNsZHQgd29yZCBwdHIgW2VjeF0NCj4g PiArICAgIHJldA0KPiA+ICtfc3RvcmVfbGR0ciBFTkRQDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ID4gKzsgIHZvaWQgX19zdGRjYWxsIF9yZG1zcigNCj4gPiArOyAgICBJ TiBVSU5UMzIgbXNyLA0KPiA+ICs7ICAgIE9VVCBVSU5UMzIqIG1zcmxvLA0KPiA+ICs7ICAgIE9V VCBVSU5UMzIqIG1zcmhpDQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ID4gK19yZG1zciBQUk9DDQo+ID4gKyAgICBtb3YgZWN4LCBkd29yZCBwdHIgW2VzcCArIDRd IDsgbXNyDQo+ID4gKw0KPiA+ICsgICAgcmRtc3INCj4gPiArDQo+ID4gKyAgICBtb3YgZWN4LCBk d29yZCBwdHIgW2VzcCArIDhdDQo+ID4gKyAgICBtb3YgZHdvcmQgcHRyIFtlY3hdLCBlYXggOyBt c3Jsbw0KPiA+ICsgICAgbW92IGVjeCwgZHdvcmQgcHRyIFtlc3AgKyAxMl0NCj4gPiArICAgIG1v diBkd29yZCBwdHIgW2VjeF0sIGVkeCA7IG1zcmhpDQo+ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4g K19yZG1zciBFTkRQDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsg IFZPSUQgX19zdGRjYWxsIF93cm1zcigNCj4gPiArOyAgICBJTiBVSU5UMzIgbXNyLA0KPiA+ICs7 ICAgIElOIFVJTlQzMiBtc3JsbywNCj4gPiArOyAgICBJTiBVSU5UMzIgbXNyaGkNCj4gPiArOyAg ICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArX3dybXNyIFBST0MNCj4gPiAr ICAgIG1vdiBlY3gsIGR3b3JkIHB0ciBbZXNwICsgNF0gIDsgbXNyDQo+ID4gKyAgICBtb3YgZWF4 LCBkd29yZCBwdHIgW2VzcCArIDhdIDsgbXNybG8NCj4gPiArICAgIG1vdiBlZHgsIGR3b3JkIHB0 ciBbZXNwICsgMTJdIDsgbXNyaGkNCj4gPiArDQo+ID4gKyAgICB3cm1zcg0KPiA+ICsNCj4gPiAr ICAgIHJldA0KPiA+ICtfd3Jtc3IgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiA+ICs7VUlOVDMyIF9lZmxhZ3MoKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ID4gK2VmbGFncyBQUk9DDQo+ID4gKyAgICBwdXNoZmQNCj4gPiArICAgIHBvcCBlYXgNCj4g PiArICAgIHJldA0KPiA+ICtlZmxhZ3MgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiA+ICs7ICBWT0lEDQo+ID4gKzsgIFdyaXRlUG9ydER3b3JkICgNCj4gPiArOyAg ICBJTiAgIFVJTlQzMiAgICBvdXRfdmFsdWUNCj4gPiArOyAgICBJTiAgIFVJTlQxNiAgICBwb3J0 X251bQ0KPiA+ICs7ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtXcml0 ZVBvcnREd29yZCBQUk9DDQo+ID4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDRdICAg IDsgb3V0X3ZhbHVlDQo+ID4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDhdICAgOyBw b3J0X251bQ0KPiA+ICsgICAgb3V0IGR4LCBlYXgNCj4gPiArDQo+ID4gKyAgICByZXQNCj4gPiAr V3JpdGVQb3J0RHdvcmQgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiA+ICs7ICBWT0lEDQo+ID4gKzsgIFdyaXRlUG9ydFdvcmQgKA0KPiA+ICs7ICAgIElOICAgVUlO VDE2ICAgIG91dF92YWx1ZQ0KPiA+ICs7ICAgIElOICAgVUlOVDE2ICAgIHBvcnRfbnVtDQo+ID4g KzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1dyaXRlUG9ydFdvcmQg UFJPQw0KPiA+ICsgICAgbW92IGVheCwgZHdvcmQgcHRyIFtlc3AgKyA0XSAgIDsgb3V0X3ZhbHVl DQo+ID4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDhdICA7IHBvcnRfbnVtDQo+ID4g KyAgICBvdXQgZHgsIGF4DQo+ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4gK1dyaXRlUG9ydFdvcmQg RU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICBWT0lEDQo+ ID4gKzsgIFdyaXRlUG9ydEJ5dGUgKA0KPiA+ICs7ICAgIElOICAgVUlOVDggICAgIG91dF92YWx1 ZQ0KPiA+ICs7ICAgIElOICAgVUlOVDE2ICAgIHBvcnRfbnVtDQo+ID4gKzsgICAgKQ0KPiA+ICs7 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1dyaXRlUG9ydEJ5dGUgUFJPQw0KPiA+ICsgICAg bW92IGVheCwgZHdvcmQgcHRyIFtlc3AgKyA0XSAgIDsgb3V0X3ZhbHVlDQo+ID4gKyAgICBtb3Yg ZWR4LCBkd29yZCBwdHIgW2VzcCArIDhdICA7IHBvcnRfbnVtDQo+ID4gKyAgICBvdXQgZHgsIGFs DQo+ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4gK1dyaXRlUG9ydEJ5dGUgRU5EUA0KPiA+ICsNCj4g PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICBVSU5UMzINCj4gPiArOyAgUmVhZFBv cnREd29yZCAoDQo+ID4gKzsgICAgSU4gICBVSU5UMTYgICAgcG9ydF9udW0NCj4gPiArOyAgICAp DQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArUmVhZFBvcnREd29yZCBQUk9DDQo+ ID4gKyAgICB4b3IgZWF4LCBlYXgNCj4gPiArICAgIG1vdiBlZHgsIGR3b3JkIHB0ciBbZXNwICsg NF0gOyBwb3J0X251bQ0KPiA+ICsgICAgaW4gZWF4LCBkeA0KPiA+ICsNCj4gPiArICAgcmV0DQo+ ID4gK1JlYWRQb3J0RHdvcmQgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiA+ICs7ICBVSU5UMTYNCj4gPiArOyAgUmVhZFBvcnRXb3JkICgNCj4gPiArOyAgICBJTiAg IFVJTlQxNiAgICBwb3J0X251bQ0KPiA+ICs7ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiA+ICtSZWFkUG9ydFdvcmQgUFJPQw0KPiA+ICsgICAgeG9yIGVheCwgZWF4DQo+ID4g KyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDRdIDsgcG9ydF9udW0NCj4gPiArICAgIGlu IGF4LCBkeA0KPiA+ICsNCj4gPiArICAgIHJldA0KPiA+ICtSZWFkUG9ydFdvcmQgRU5EUA0KPiA+ ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICs7ICBVSU5UOA0KPiA+ICs7ICBS ZWFkUG9ydEJ5dGUgKA0KPiA+ICs7ICAgIElOICAgVUlOVDE2ICAgIHBvcnRfbnVtDQo+ID4gKzsg ICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1JlYWRQb3J0Qnl0ZSBQUk9D DQo+ID4gKyAgICB4b3IgZWF4LCBlYXgNCj4gPiArICAgIG1vdiBlZHgsIGR3b3JkIHB0ciBbZXNw ICsgNF0gOyBwb3J0X251bQ0KPiA+ICsgICAgaW4gYWwsIGR4DQo+ID4gKw0KPiA+ICsgICAgcmV0 DQo+ID4gK1JlYWRQb3J0Qnl0ZSBFTkRQDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+ID4gKzsgIFZPSUQNCj4gPiArOyAgV3JpdGVIaWdoQ01PU0J5dGUgKA0KPiA+ICs7ICAg IElOICAgVUlOVDggICAgIGNtb3Nfb2ZmDQo+ID4gKzsgICAgSU4gICBVSU5UOCAgICAgdmFsDQo+ ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1dyaXRlSGlnaENN T1NCeXRlIFBST0MNCj4gPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gIDsgY21v c19vZmYNCj4gPiArICAgIG91dCA3MmgsIGFsDQo+ID4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIg W2VzcCArIDhdICA7IHZhbA0KPiA+ICsgICAgb3V0IDczaCwgYWwNCj4gPiArDQo+ID4gKyAgICBy ZXQNCj4gPiArV3JpdGVIaWdoQ01PU0J5dGUgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiA+ICs7ICBWT0lEDQo+ID4gKzsgIFdyaXRlTG93Q01PU0J5dGUgKA0KPiA+ ICs7ICAgIElOICAgVUlOVDggICAgIGNtb3Nfb2ZmDQo+ID4gKzsgICAgSU4gICBVSU5UOCAgICAg dmFsDQo+ID4gKzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK1dyaXRl TG93Q01PU0J5dGUgUFJPQw0KPiA+ICsgICAgbW92IGVheCwgZHdvcmQgcHRyIFtlc3AgKyA0XSAg OyBjbW9zX29mZg0KPiA+ICsgICAgb3IgYWwsIDgwaA0KPiA+ICsgICAgb3V0IDcwaCwgYWwNCj4g PiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgOF0gIDsgdmFsDQo+ID4gKyAgICBvdXQg NzFoLCBhbA0KPiA+ICsNCj4gPiArICAgIHJldA0KPiA+ICtXcml0ZUxvd0NNT1NCeXRlIEVORFAN Cj4gPiArDQo+ID4gKw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgIFZPSUQN Cj4gPiArOyAgU2VuZEFQTVNNSSAoDQo+ID4gKzsgICAgSU4gICBVSU5UMzIJYXBtX3BvcnRfdmFs dWUNCj4gPiArOyAgICBJTiAgIFVJTlQ2NAlyYXhfdmFsdWUgICAgICAgICAgICAgICAvLyBOT1Qg VVNFRD8/Pw0KPiA+ICs7ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtT ZW5kQVBNU01JIFBST0MNCj4gPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gIDsg YXBtX3BvcnRfdmFsdWUNCj4gPiArICAgIG1vdiBkeCwgMEIyaA0KPiA+ICsgICAgb3V0IGR4LCBl YXgNCj4gPiArDQo+ID4gKyAgICByZXQNCj4gPiArU2VuZEFQTVNNSSBFTkRQDQo+ID4gKw0KPiA+ ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgIFZPSUQNCj4gPiArOyAgV3JpdGVQQ0lC eXRlICgNCj4gPiArOyAgICBJTiAgIFVJTlQzMiAgICBwY2lfcmVnDQo+ID4gKzsgICAgSU4gICBV SU5UMTYgICAgY2ZnX2RhdGFfcG9ydA0KPiA+ICs7ICAgIElOICAgVUlOVDggICAgIGJ5dGVfdmFs dWUNCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArV3JpdGVQ Q0lCeXRlIFBST0MNCj4gPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgNF0gIDsgcGNp X3JlZw0KPiA+ICsgICAgbW92IGR4LCAwQ0Y4aA0KPiA+ICsgICAgb3V0IGR4LCBlYXgNCj4gPiAr DQo+ID4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDEyXSAgOyB3b3JkX3ZhbHVlDQo+ ID4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDhdICA7IGNmZ19kYXRhX3BvcnQNCj4g PiArICAgIG91dCBkeCwgYWwNCj4gPiArDQo+ID4gKyAgICByZXQNCj4gPiArV3JpdGVQQ0lCeXRl IEVORFANCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArOyAgVk9JRA0K PiA+ICs7ICBXcml0ZVBDSVdvcmQgKA0KPiA+ICs7ICAgIElOICAgVUlOVDMyICAgIHBjaV9yZWcN Cj4gPiArOyAgICBJTiAgIFVJTlQxNiAgICBjZmdfZGF0YV9wb3J0DQo+ID4gKzsgICAgSU4gICBV SU5UMTYgICAgd29yZF92YWx1ZQ0KPiA+ICs7ICAgICkNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiA+ICtXcml0ZVBDSVdvcmQgUFJPQw0KPiA+ICsgICAgbW92IGVheCwgZHdvcmQgcHRy IFtlc3AgKyA0XSAgOyBwY2lfcmVnDQo+ID4gKyAgICBtb3YgZHgsIDBDRjhoDQo+ID4gKyAgICBv dXQgZHgsIGVheA0KPiA+ICsNCj4gPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgMTJd ICA7IHdvcmRfdmFsdWUNCj4gPiArICAgIG1vdiBlZHgsIGR3b3JkIHB0ciBbZXNwICsgOF0gIDsg Y2ZnX2RhdGFfcG9ydA0KPiA+ICsgICAgb3V0IGR4LCBheA0KPiA+ICsNCj4gPiArICAgIHJldA0K PiA+ICtXcml0ZVBDSVdvcmQgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiA+ICs7ICBWT0lEDQo+ID4gKzsgIFdyaXRlUENJRHdvcmQgKA0KPiA+ICs7ICAgIElOICAg VUlOVDMyCXBjaV9yZWcNCj4gPiArOyAgICBJTiAgIFVJTlQxNgljZmdfZGF0YV9wb3J0ICAgIC8v IHJkeA0KPiA+ICs7ICAgIElOICAgVUlOVDMyCWR3b3JkX3ZhbHVlICAgICAgLy8gcjgNCj4gPiAr OyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArV3JpdGVQQ0lEd29yZCBQ Uk9DDQo+ID4gKw0KPiA+ICsgICAgbW92IGVheCwgZHdvcmQgcHRyIFtlc3AgKyA0XSAgOyBwY2lf cmVnDQo+ID4gKyAgICBtb3YgZHgsIDBDRjhoDQo+ID4gKyAgICBvdXQgZHgsIGVheA0KPiA+ICsN Cj4gPiArICAgIG1vdiBlYXgsIGR3b3JkIHB0ciBbZXNwICsgMTJdICA7IGR3b3JkX3ZhbHVlDQo+ ID4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDhdICA7IGNmZ19kYXRhX3BvcnQNCj4g PiArICAgIG91dCBkeCwgZWF4DQo+ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4gK1dyaXRlUENJRHdv cmQgRU5EUA0KPiA+ICsNCj4gPiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAr OyAgdW5zaWduZWQgY2hhcg0KPiA+ICs7ICBSZWFkUENJQnl0ZSAoDQo+ID4gKzsgICAgdW5zaWdu ZWQgaW50CXBjaV9yZWcgICAgICAgICAgLy8gcmN4DQo+ID4gKzsgICAgdW5zaWduZWQgc2hvcnQJ Y2ZnX2RhdGFfcG9ydCAgICAvLyByZHgNCj4gPiArOyAgICApDQo+ID4gKzstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiArUmVhZFBDSUJ5dGUgUFJPQw0KPiA+ICsgICAgY2xpDQo+ID4gKyAgICBt b3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDRdICA7IHBjaV9yZWcNCj4gPiArICAgIG1vdiBkeCwg MENGOGgNCj4gPiArICAgIG91dCBkeCwgZWF4DQo+ID4gKw0KPiA+ICsgICAgeG9yIGVheCwgZWF4 DQo+ID4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDhdICAgOyBjZmdfZGF0YV9wb3J0 DQo+ID4gKyAgICBpbiAgYWwsIGR4DQo+ID4gKyAgICBzdGkNCj4gPiArDQo+ID4gKyAgICByZXQN Cj4gPiArUmVhZFBDSUJ5dGUgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiA+ICs7ICB1bnNpZ25lZCBzaG9ydA0KPiA+ICs7ICBSZWFkUENJV29yZCAoDQo+ID4gKzsg ICAgdW5zaWduZWQgaW50CXBjaV9yZWcgICAgICAgICAgLy8gcmN4DQo+ID4gKzsgICAgdW5zaWdu ZWQgc2hvcnQJY2ZnX2RhdGFfcG9ydCAgICAvLyByZHgNCj4gPiArOyAgICApDQo+ID4gKzstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArUmVhZFBDSVdvcmQgUFJPQw0KPiA+ICsgICAgY2xpDQo+ ID4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDRdICA7IHBjaV9yZWcNCj4gPiArICAg IG1vdiBkeCwgMENGOGgNCj4gPiArICAgIG91dCBkeCwgZWF4DQo+ID4gKw0KPiA+ICsgICAgeG9y IGVheCwgZWF4DQo+ID4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDhdICAgOyBjZmdf ZGF0YV9wb3J0DQo+ID4gKyAgICBpbiAgYXgsIGR4DQo+ID4gKyAgICBzdGkNCj4gPiArDQo+ID4g KyAgICByZXQNCj4gPiArUmVhZFBDSVdvcmQgRU5EUA0KPiA+ICsNCj4gPiArOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiA+ICs7ICB1bnNpZ25lZCBpbnQNCj4gPiArOyAgUmVhZFBDSUR3b3JkICgN Cj4gPiArOyAgICB1bnNpZ25lZCBpbnQJcGNpX3JlZyAgICAgICAgICAvLyByY3gNCj4gPiArOyAg ICB1bnNpZ25lZCBzaG9ydAljZmdfZGF0YV9wb3J0ICAgIC8vIHJkeA0KPiA+ICs7ICAgICkNCj4g PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICtSZWFkUENJRHdvcmQgUFJPQw0KPiA+ICsg ICAgY2xpDQo+ID4gKyAgICBtb3YgZWF4LCBkd29yZCBwdHIgW2VzcCArIDRdICA7IHBjaV9yZWcN Cj4gPiArICAgIG1vdiBkeCwgMENGOGgNCj4gPiArICAgIG91dCBkeCwgZWF4DQo+ID4gKw0KPiA+ ICsgICAgeG9yIGVheCwgZWF4DQo+ID4gKyAgICBtb3YgZWR4LCBkd29yZCBwdHIgW2VzcCArIDhd ICAgOyBjZmdfZGF0YV9wb3J0DQo+ID4gKyAgICBpbiAgZWF4LCBkeA0KPiA+ICsgICAgc3RpDQo+ ID4gKw0KPiA+ICsgICAgcmV0DQo+ID4gK1JlYWRQQ0lEd29yZCBFTkRQDQo+ID4gKw0KPiA+ICs7 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKzsgIHZvaWQNCj4gPiArOyAgX3N3c21pICgNCj4g PiArOyAgICB1bnNpZ25lZCBpbnQJc21pX2NvZGVfZGF0YQkvLyByY3gNCj4gPiArOyAgICBJTiAg IFVJTlQzMglyYXhfdmFsdWUJLy8gcmR4DQo+ID4gKzsgICAgSU4gICBVSU5UMzIJcmJ4X3ZhbHVl CS8vIHI4DQo+ID4gKzsgICAgSU4gICBVSU5UMzIJcmN4X3ZhbHVlCS8vIHI5DQo+ID4gKzsgICAg SU4gICBVSU5UMzIJcmR4X3ZhbHVlCS8vIHIxMA0KPiA+ICs7ICAgIElOICAgVUlOVDMyCXJzaV92 YWx1ZQkvLyByMTENCj4gPiArOyAgICBJTiAgIFVJTlQzMglyZGlfdmFsdWUJLy8gcjEyDQo+ID4g KzsgICAgKQ0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gK19zd3NtaSBQUk9DDQo+ ID4gKyAgICB4b3IgZWF4LCBlYXgNCj4gPiArICAgIHJldA0KPiA+ICtfc3dzbWkgRU5EUA0KPiA+ ICsNCj4gPiArRU5EDQo+ID4gZGlmZiAtLWdpdCBhL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9u L1B5dGhvbi0zLjYuOC9QeU1vZC0zLjYuOC9Nb2R1bGVzL2VkazJtb2R1bGUuYw0KPiBiL0FwcFBr Zy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0NCj4gPiAzLjYuOC9QeU1vZC0zLjYuOC9Nb2R1 bGVzL2VkazJtb2R1bGUuYw0KPiA+IGluZGV4IDA1MDFhMmIuLjRkZDRiN2MgMTAwNjQ0DQo+ID4g LS0tIGEvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMuNi44L1B5TW9kLTMuNi44 L01vZHVsZXMvZWRrMm1vZHVsZS5jDQo+ID4gKysrIGIvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRo b24vUHl0aG9uLTMuNi44L1B5TW9kLTMuNi44L01vZHVsZXMvZWRrMm1vZHVsZS5jDQo+ID4gQEAg LTMsNyArMyw3IEBADQo+ID4gICAgICBEZXJpdmVkIGZyb20gcG9zaXhtb2R1bGUuYyBpbiBQeXRo b24gMi43LjIuDQo+ID4NCj4gPiAgICAgIENvcHlyaWdodCAoYykgMjAxNSwgRGFyeWwgTWNEYW5p ZWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+IC0gICAgQ29weXJpZ2h0IChjKSAyMDEx IC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ ICsgICAgQ29weXJpZ2h0IChjKSAyMDExIC0gMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICAgICAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21w YW55aW5nIG1hdGVyaWFscyBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyDQo+ ID4gICAgICB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlIHRoYXQg YWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uDQo+ID4gICAgICBUaGUgZnVsbCB0ZXh0IG9m IHRoZSBsaWNlbnNlIG1heSBiZSBmb3VuZCBhdA0KPiA+IEBAIC0yOSw2ICsyOSw0NSBAQA0KPiA+ ICBleHRlcm4gIkMiIHsNCj4gPiAgI2VuZGlmDQo+ID4NCj4gPiArI2lmIGRlZmluZWQoVUVGSV9N U1ZDXzMyKSB8fCBkZWZpbmVkKFVFRklfTVNWQ182NCkNCj4gPiArLy8NCj4gPiArLy8gQ0hJUFNF QyBleHRlbnNpb24gZm9yIGVkazIgbW9kdWxlIG9mIFB5dGhvbiAzLjYuOA0KPiA+ICsvLyBidWls ZCBzdXBwb3J0IGF2YWlsYWJsZSBmb3INCj4gPiArLy8gVlMgVG9vbCBjaGFpbnMgeDg2IGFuZCB4 NjQgYml0IGJ1aWxkcyBvbmx5Lg0KPiA+ICsvLw0KPiA+ICsgICAgUHlUeXBlT2JqZWN0IEVmaUd1 aWRUeXBlOw0KPiA+ICsNCj4gPiArICAvLyAtLSBBY2Nlc3MgdG8gQ1BVIE1TUnMNCj4gPiArICBl eHRlcm4gdm9pZCBfcmRtc3IoIHVuc2lnbmVkIGludCBtc3JfbnVtLCB1bnNpZ25lZCBpbnQqIG1z cl9sbywgdW5zaWduZWQgaW50KiBtc3JfaGkgKTsNCj4gPiArICBleHRlcm4gdm9pZCBfd3Jtc3Io IHVuc2lnbmVkIGludCBtc3JfbnVtLCB1bnNpZ25lZCBpbnQgIG1zcl9oaSwgdW5zaWduZWQgaW50 ICBtc3JfbG8gKTsNCj4gPiArICBleHRlcm4gdm9pZCBfc3dzbWkoIHVuc2lnbmVkIGludCBzbWlf Y29kZV9kYXRhLCB1bnNpZ25lZCBpbnQgcmF4X3ZhbHVlLCB1bnNpZ25lZCBpbnQgcmJ4X3ZhbHVl LCB1bnNpZ25lZCBpbnQNCj4gcmN4X3ZhbHVlLA0KPiA+IHVuc2lnbmVkIGludCByZHhfdmFsdWUs IHVuc2lnbmVkIGludCByc2lfdmFsdWUsIHVuc2lnbmVkIGludCByZGlfdmFsdWUgKTsNCj4gPiAr ICBleHRlcm4gdW5zaWduZWQgaW50ICBBc21DcHVpZEV4KCB1bnNpZ25lZCBpbnQgIFJlZ2lzdGVy SW5FYXgsIHVuc2lnbmVkIGludCAgUmVnaXN0ZXJJbkVjeCwgdW5zaWduZWQgaW50Kg0KPiA+IFJl Z2lzdGVyT3V0RWF4LCB1bnNpZ25lZCBpbnQqIFJlZ2lzdGVyT3V0RWJ4LCB1bnNpZ25lZCBpbnQq IFJlZ2lzdGVyT3V0RWN4LCB1bnNpZ25lZCBpbnQqIFJlZ2lzdGVyT3V0RWR4KTsNCj4gPiArICAv LyAtLSBBY2Nlc3MgdG8gUENJIENGRyBzcGFjZQ0KPiA+ICsgIGV4dGVybiB2b2lkIFdyaXRlUENJ Qnl0ZSAgICAgICAgICAoIHVuc2lnbmVkIGludCBwY2lfcmVnLCB1bnNpZ25lZCBzaG9ydCBjZmdf ZGF0YV9wb3J0LCB1bnNpZ25lZCBjaGFyICBieXRlX3ZhbHVlICk7DQo+ID4gKyAgZXh0ZXJuIHZv aWQgV3JpdGVQQ0lXb3JkICAgICAgICAgICggdW5zaWduZWQgaW50IHBjaV9yZWcsIHVuc2lnbmVk IHNob3J0IGNmZ19kYXRhX3BvcnQsIHVuc2lnbmVkIHNob3J0IHdvcmRfdmFsdWUgKTsNCj4gPiAr ICBleHRlcm4gdm9pZCBXcml0ZVBDSUR3b3JkICAgICAgICAgKCB1bnNpZ25lZCBpbnQgcGNpX3Jl ZywgdW5zaWduZWQgc2hvcnQgY2ZnX2RhdGFfcG9ydCwgdW5zaWduZWQgaW50ICAgZHdvcmRfdmFs dWUgKTsNCj4gPiArICBleHRlcm4gdW5zaWduZWQgY2hhciAgUmVhZFBDSUJ5dGUgKCB1bnNpZ25l ZCBpbnQgcGNpX3JlZywgdW5zaWduZWQgc2hvcnQgY2ZnX2RhdGFfcG9ydCApOw0KPiA+ICsgIGV4 dGVybiB1bnNpZ25lZCBzaG9ydCBSZWFkUENJV29yZCAoIHVuc2lnbmVkIGludCBwY2lfcmVnLCB1 bnNpZ25lZCBzaG9ydCBjZmdfZGF0YV9wb3J0ICk7DQo+ID4gKyAgZXh0ZXJuIHVuc2lnbmVkIGlu dCAgIFJlYWRQQ0lEd29yZCggdW5zaWduZWQgaW50IHBjaV9yZWcsIHVuc2lnbmVkIHNob3J0IGNm Z19kYXRhX3BvcnQgKTsNCj4gPiArICAvLyAtLSBBY2Nlc3MgdG8gUG9ydCBJL08NCj4gPiArICBl eHRlcm4gdW5zaWduZWQgaW50ICAgUmVhZFBvcnREd29yZCAoIHVuc2lnbmVkIHNob3J0IHBvcnRf bnVtICk7DQo+ID4gKyAgZXh0ZXJuIHVuc2lnbmVkIHNob3J0IFJlYWRQb3J0V29yZCAgKCB1bnNp Z25lZCBzaG9ydCBwb3J0X251bSApOw0KPiA+ICsgIGV4dGVybiB1bnNpZ25lZCBjaGFyICBSZWFk UG9ydEJ5dGUgICggdW5zaWduZWQgc2hvcnQgcG9ydF9udW0gKTsNCj4gPiArICBleHRlcm4gdm9p ZCAgICAgICAgICAgV3JpdGVQb3J0RHdvcmQoIHVuc2lnbmVkIGludCAgIG91dF92YWx1ZSwgdW5z aWduZWQgc2hvcnQgcG9ydF9udW0gKTsNCj4gPiArICBleHRlcm4gdm9pZCAgICAgICAgICAgV3Jp dGVQb3J0V29yZCAoIHVuc2lnbmVkIHNob3J0IG91dF92YWx1ZSwgdW5zaWduZWQgc2hvcnQgcG9y dF9udW0gKTsNCj4gPiArICBleHRlcm4gdm9pZCAgICAgICAgICAgV3JpdGVQb3J0Qnl0ZSAoIHVu c2lnbmVkIGNoYXIgIG91dF92YWx1ZSwgdW5zaWduZWQgc2hvcnQgcG9ydF9udW0gKTsNCj4gPiAr ICAvLyAtLSBBY2Nlc3MgdG8gQ1BVIERlc2NyaXB0b3IgdGFibGVzDQo+ID4gKyAgZXh0ZXJuIHZv aWQgX3N0b3JlX2lkdHIoIHZvaWQqIGRlc2NfYWRkcmVzcyApOw0KPiA+ICsgIGV4dGVybiB2b2lk IF9sb2FkX2lkdHIgKCB2b2lkKiBkZXNjX2FkZHJlc3MgKTsNCj4gPiArICBleHRlcm4gdm9pZCBf c3RvcmVfZ2R0ciggdm9pZCogZGVzY19hZGRyZXNzICk7DQo+ID4gKyAgZXh0ZXJuIHZvaWQgX3N0 b3JlX2xkdHIoIHZvaWQqIGRlc2NfYWRkcmVzcyApOw0KPiA+ICsNCj4gPiArICAvLyAtLSBTdXBw b3J0IHJvdXRpbmVzDQo+ID4gKyAgRUZJX1NUQVRVUyBHdWlkVG9TdHIoIElOIEVGSV9HVUlEICpn dWlkLCBJTiBPVVQgVUlOVDggKnN0cl9idWZmZXIgKTsNCj4gPiArDQo+ID4gKyNlbmRpZg0KPiA+ ICsNCj4gPiArDQo+ID4gIFB5RG9jX1NUUlZBUihlZGsyX19kb2NfXywNCj4gPiAgICAgICAgICAg ICAgICJUaGlzIG1vZHVsZSBwcm92aWRlcyBhY2Nlc3MgdG8gVUVGSSBmaXJtd2FyZSBmdW5jdGlv bmFsaXR5IHRoYXQgaXNcblwNCj4gPiAgICAgICAgICAgICAgIHN0YW5kYXJkaXplZCBieSB0aGUg QyBTdGFuZGFyZCBhbmQgdGhlIFBPU0lYIHN0YW5kYXJkIChhIHRoaW5seVxuXA0KPiA+IEBAIC0z Nzg0LDcgKzM4MjMsNyBAQCBlZGsyX3RtcG5hbShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm5v YXJncykNCj4gPiAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZyhidWZmZXIpOw0KPiA+ ICB9DQo+ID4gICNlbmRpZg0KPiA+IC0jZW5kaWYNCj4gPiArI2VuZGlmDQo+ID4NCj4gPiAgUHlE b2NfU1RSVkFSKGVkazJfYWJvcnRfX2RvY19fLA0KPiA+ICAiYWJvcnQoKSAtPiBkb2VzIG5vdCBy ZXR1cm4hXG5cblwNCj4gPiBAQCAtMzgwMCw2ICszODM5LDUwOSBAQCBlZGsyX2Fib3J0KFB5T2Jq ZWN0ICpzZWxmLCBQeU9iamVjdCAqbm9hcmdzKQ0KPiA+ICAgICAgcmV0dXJuIE5VTEw7DQo+ID4g IH0NCj4gPg0KPiA+ICsNCj4gPiArI2lmIGRlZmluZWQoVUVGSV9NU1ZDXzMyKSB8fCBkZWZpbmVk KFVFRklfTVNWQ182NCkNCj4gPiArLypjb2RlIG1lcmdlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNv bS9jaGlwc2VjL2NoaXBzZWMvdHJlZS9tYWluL2NoaXBzZWNfdG9vbHMvZWRrMi9QeXRob25FRkkg Ki8NCj4gPiArLyogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAgICBTVEFSVCAgICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMgKi8NCj4gPiArDQo+ID4gK3Vuc2lnbmVkIGludCBSZWFkUENJ Q2ZnKA0KPiA+ICsgIHVuc2lnbmVkIGNoYXIgYnVzLA0KPiA+ICsgIHVuc2lnbmVkIGNoYXIgZGV2 LA0KPiA+ICsgIHVuc2lnbmVkIGNoYXIgZnVuLA0KPiA+ICsgIHVuc2lnbmVkIGNoYXIgb2ZmLA0K PiA+ICsgIHVuc2lnbmVkIGNoYXIgbGVuIC8vIDEsIDIsIDQgYnl0ZXMNCj4gPiArICApDQo+ID4g K3sNCj4gPiArICB1bnNpZ25lZCBpbnQgcmVzdWx0ID0gMDsNCj4gPiArICB1bnNpZ25lZCBpbnQg cGNpX2FkZHIgPSAoMHg4MDAwMDAwMCB8IChidXMgPDwgMTYpIHwgKGRldiA8PCAxMSkgfCAoZnVu IDw8IDgpIHwgKG9mZiAmIH4zKSk7DQo+ID4gKyAgdW5zaWduZWQgc2hvcnQgY2ZnX2RhdGFfcG9y dCA9ICh1bnNpZ25lZCBzaG9ydCkoMHhDRkMgKyAoIG9mZiAmIDB4MyApKTsNCj4gPiArICBpZiAg ICAgKCAxID09IGxlbiApIHJlc3VsdCA9IChSZWFkUENJQnl0ZSAoIHBjaV9hZGRyLCBjZmdfZGF0 YV9wb3J0ICkgJiAweEZGKTsNCj4gPiArICBlbHNlIGlmKCAyID09IGxlbiApIHJlc3VsdCA9IChS ZWFkUENJV29yZCAoIHBjaV9hZGRyLCBjZmdfZGF0YV9wb3J0ICkgJiAweEZGRkYpOw0KPiA+ICsg IGVsc2UgaWYoIDQgPT0gbGVuICkgcmVzdWx0ID0gIFJlYWRQQ0lEd29yZCggcGNpX2FkZHIsIGNm Z19kYXRhX3BvcnQgKTsNCj4gPiArICByZXR1cm4gcmVzdWx0Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ ICt2b2lkIFdyaXRlUENJQ2ZnKA0KPiA+ICsgIHVuc2lnbmVkIGNoYXIgYnVzLA0KPiA+ICsgIHVu c2lnbmVkIGNoYXIgZGV2LA0KPiA+ICsgIHVuc2lnbmVkIGNoYXIgZnVuLA0KPiA+ICsgIHVuc2ln bmVkIGNoYXIgb2ZmLA0KPiA+ICsgIHVuc2lnbmVkIGNoYXIgbGVuLCAvLyAxLCAyLCA0IGJ5dGVz DQo+ID4gKyAgdW5zaWduZWQgaW50IHZhbA0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIHVuc2ln bmVkIGludCBwY2lfYWRkciA9ICgweDgwMDAwMDAwIHwgKGJ1cyA8PCAxNikgfCAoZGV2IDw8IDEx KSB8IChmdW4gPDwgOCkgfCAob2ZmICYgfjMpKTsNCj4gPiArICB1bnNpZ25lZCBzaG9ydCBjZmdf ZGF0YV9wb3J0ID0gKHVuc2lnbmVkIHNob3J0KSgweENGQyArICggb2ZmICYgMHgzICkpOw0KPiA+ ICsgIGlmICAgICAoIDEgPT0gbGVuICkgV3JpdGVQQ0lCeXRlICggcGNpX2FkZHIsIGNmZ19kYXRh X3BvcnQsICh1bnNpZ25lZCBjaGFyKSh2YWwmMHhGRikgKTsNCj4gPiArICBlbHNlIGlmKCAyID09 IGxlbiApIFdyaXRlUENJV29yZCAoIHBjaV9hZGRyLCBjZmdfZGF0YV9wb3J0LCAodW5zaWduZWQg c2hvcnQpKHZhbCYweEZGRkYpICk7DQo+ID4gKyAgZWxzZSBpZiggNCA9PSBsZW4gKSBXcml0ZVBD SUR3b3JkKCBwY2lfYWRkciwgY2ZnX2RhdGFfcG9ydCwgdmFsICk7DQo+ID4gK30NCj4gPiArDQo+ ID4gK1B5RG9jX1NUUlZBUihlZmlfcmRtc3JfX2RvY19fLA0KPiA+ICsicmRtc3IoZWN4KSAtPiAo ZWF4LGVkeClcblwNCj4gPiArUmVhZCB0aGUgZ2l2ZW4gTVNSLiIpOw0KPiA+ICsNCj4gPiArc3Rh dGljIFB5T2JqZWN0ICoNCj4gPiArcG9zaXhfcmRtc3IoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0 ICphcmdzKQ0KPiA+ICt7DQo+ID4gKyAgdW5zaWduZWQgaW50IHZlY3gsIHZlYXgsIHZlZHg7DQo+ ID4gKyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJJIiwgJnZlY3gpKQ0KPiA+ICsgICAg cmV0dXJuIE5VTEw7DQo+ID4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiA+ICsgIF9yZG1z ciggdmVjeCwgJnZlYXgsICZ2ZWR4ICk7DQo+ID4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4g PiArICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiKElJKSIsICh1bnNpZ25lZCBsb25nKXZlYXgsICh1 bnNpZ25lZCBsb25nKXZlZHgpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtQeURvY19TVFJWQVIoZWZp X3dybXNyX19kb2NfXywNCj4gPiArIndybXNyKGVjeCwgZWF4LCBlZHgpIC0+IE5vbmVcblwNCj4g PiArV3JpdGUgZWR4OmVheCB0byB0aGUgZ2l2ZW4gTVNSLiIpOw0KPiA+ICsNCj4gPiArc3RhdGlj IFB5T2JqZWN0ICoNCj4gPiArcG9zaXhfd3Jtc3IoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICph cmdzKQ0KPiA+ICt7DQo+ID4gKyAgdW5zaWduZWQgaW50IHZlY3gsIHZlYXgsIHZlZHg7DQo+ID4g KyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJJSUkiLCAmdmVjeCwgJnZlYXgsICZ2ZWR4 KSkNCj4gPiArICAgIHJldHVybiBOVUxMOw0KPiA+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMN Cj4gPiArICBfd3Jtc3IoIHZlY3gsIHZlZHgsIHZlYXggKTsNCj4gPiArICBQeV9FTkRfQUxMT1df VEhSRUFEUw0KPiA+ICsgIFB5X0lOQ1JFRihQeV9Ob25lKTsNCj4gPiArICByZXR1cm4gUHlfTm9u ZTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArUHlEb2NfU1RSVkFSKGVmaV9zd3NtaV9fZG9jX18sDQo+ ID4gKyJzd3NtaShzbWlfY29kZV9kYXRhLCByYXhfdmFsdWUsIHJieF92YWx1ZSwgcmN4X3ZhbHVl LCByZHhfdmFsdWUsIHJzaV92YWx1ZSwgcmRpX3ZhbHVlKSAtPiBOb25lXG5cDQo+ID4gK1RyaWdn ZXJpbmcgU29mdHdhcmUgU01JIik7DQo+ID4gKw0KPiA+ICtzdGF0aWMgUHlPYmplY3QgKg0KPiA+ ICtwb3NpeF9zd3NtaShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpDQo+ID4gK3sNCj4g PiArICB1bnNpZ25lZCBpbnQgc21pX2NvZGVfZGF0YSwgcmF4X3ZhbHVlLCByYnhfdmFsdWUsIHJj eF92YWx1ZSwgcmR4X3ZhbHVlLCByc2lfdmFsdWUsIHJkaV92YWx1ZTsNCj4gPiArICBpZiAoIVB5 QXJnX1BhcnNlKGFyZ3MsICIoSUlJSUlJSSkiLCAmc21pX2NvZGVfZGF0YSwgJnJheF92YWx1ZSwg JnJieF92YWx1ZSwgJnJjeF92YWx1ZSwgJnJkeF92YWx1ZSwgJnJzaV92YWx1ZSwNCj4gPiAmcmRp X3ZhbHVlKSkNCj4gPiArICAgIHJldHVybiBOVUxMOw0KPiA+ICsgIFB5X0JFR0lOX0FMTE9XX1RI UkVBRFMNCj4gPiArICBfc3dzbWkoIHNtaV9jb2RlX2RhdGEsIHJheF92YWx1ZSwgcmJ4X3ZhbHVl LCByY3hfdmFsdWUsIHJkeF92YWx1ZSwgcnNpX3ZhbHVlLCByZGlfdmFsdWUgKTsNCj4gPiArICBQ eV9FTkRfQUxMT1dfVEhSRUFEUw0KPiA+ICsgIFB5X0lOQ1JFRihQeV9Ob25lKTsNCj4gPiArICBy ZXR1cm4gUHlfTm9uZTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArUHlEb2NfU1RSVkFSKGVmaV9jcHVp ZF9fZG9jX18sDQo+ID4gKyJjcHVpZChlYXgsIGVjeCkgLT4gKGVheDplYng6ZWN4OmVkeClcblwN Cj4gPiArUmVhZCB0aGUgQ1BVSUQuIjspOw0KPiA+ICsNCj4gPiArc3RhdGljIFB5T2JqZWN0ICoN Cj4gPiArcG9zaXhfY3B1aWQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiA+ICt7 DQo+ID4gKwlVSU5UMzIgZWF4LCBlY3gsIHJheF92YWx1ZSwgcmJ4X3ZhbHVlLCByY3hfdmFsdWUs IHJkeF92YWx1ZTsNCj4gPiArICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUkiLCAm ZWF4LCAmZWN4KSkNCj4gPiArICAgICAgcmV0dXJuIE5VTEw7DQo+ID4gKwlQeV9CRUdJTl9BTExP V19USFJFQURTDQo+ID4gKyAgICBBc21DcHVpZEV4KCBlYXgsIGVjeCwgJnJheF92YWx1ZSwgJnJi eF92YWx1ZSwgJnJjeF92YWx1ZSwgJnJkeF92YWx1ZSk7DQo+ID4gKyAgICBQeV9FTkRfQUxMT1df VEhSRUFEUw0KPiA+ICsgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihJSUlJKSkiLCAgKHVuc2ln bmVkIGxvbmcpcmF4X3ZhbHVlLCAgKHVuc2lnbmVkIGxvbmcpcmJ4X3ZhbHVlLCAgKHVuc2lnbmVk IGxvbmcpcmN4X3ZhbHVlLA0KPiA+ICh1bnNpZ25lZCBsb25nKXJkeF92YWx1ZSk7DQo+ID4gK30N Cj4gPiArDQo+ID4gK1B5RG9jX1NUUlZBUihlZmlfYWxsb2NwaHlzbWVtX19kb2NfXywNCj4gPiAr ImFsbG9jcGh5c21lbShsZW5ndGgsIG1heF9wYSkgLT4gKHZhKVxuXA0KPiA+ICtVc2UgbWFsbG9j IHRvIGFsbG9jYXRlIHNwYWNlIGluIG1lbW9yeS4iOyk7DQo+ID4gKw0KPiA+ICtzdGF0aWMgUHlP YmplY3QgKg0KPiA+ICtwb3NpeF9hbGxvY3BoeXNtZW0oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0 ICphcmdzKQ0KPiA+ICt7DQo+ID4gKwl1bnNpZ25lZCBpbnQgbGVuZ3RoLCBtYXhfcGE7DQo+ID4g KyAgICB2b2lkICp2YTsNCj4gPiArICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSUki LCAmbGVuZ3RoLCAmbWF4X3BhKSkNCj4gPiArICAgICAgcmV0dXJuIE5VTEw7DQo+ID4gKw0KPiA+ ICsJUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiA+ICsgICAgdmEgPSBtYWxsb2MobGVuZ3RoKTsN Cj4gPiArICAgIFB5X0VORF9BTExPV19USFJFQURTDQo+ID4gKw0KPiA+ICsgICAgLy8gcmV0dXJu IFB5X0J1aWxkVmFsdWUoIihLKSIsICAodW5zaWduZWQgbG9uZyl2YSk7DQo+ID4gKyAgICByZXR1 cm4gUHlfQnVpbGRWYWx1ZSgiKEkpIiwgICh1bnNpZ25lZCBsb25nKXZhKTsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArUHlEb2NfU1RSVkFSKGVmaV9yZWFkaW9fX2RvY19fLA0KPiA+ICsicmVhZGlvKGFk ZHIsIHNpemUpIC0+IChpbnQpXG5cDQo+ID4gK1JlYWQgdGhlIHZhbHVlIChzaXplID09IDEsIDIs IG9yIDQgYnl0ZXMpIG9mIHRoZSBzcGVjaWZpZWQgSU8gcG9ydC4iKTsNCj4gPiArDQo+ID4gK3N0 YXRpYyBQeU9iamVjdCAqDQo+ID4gK3Bvc2l4X3JlYWRpbyhQeU9iamVjdCAqc2VsZiwgUHlPYmpl Y3QgKmFyZ3MpDQo+ID4gK3sNCj4gPiArICB1bnNpZ25lZCBpbnQgYWRkciwgc3osIHJlc3VsdDsN Cj4gPiArICBzaG9ydCBhZGRyczsNCj4gPiArDQo+ID4gKyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxl KGFyZ3MsICJJSSIsICZhZGRyLCAmc3opKQ0KPiA+ICsgICAgcmV0dXJuIE5VTEw7DQo+ID4gKw0K PiA+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gPiArICByZXN1bHQgPSAwOw0KPiA+ICsg IGFkZHJzID0gKHNob3J0KShhZGRyICYgMHhmZmZmKTsNCj4gPiArICBpZiAgICAgKCAxID09IHN6 ICkgcmVzdWx0ID0gKFJlYWRQb3J0Qnl0ZSggYWRkcnMgKSAmIDB4RkYpOw0KPiA+ICsgIGVsc2Ug aWYoIDIgPT0gc3ogKSByZXN1bHQgPSAoUmVhZFBvcnRXb3JkKCBhZGRycyApICYgMHhGRkZGKTsN Cj4gPiArICBlbHNlIGlmKCA0ID09IHN6ICkgcmVzdWx0ID0gUmVhZFBvcnREd29yZCggYWRkcnMg KTsNCj4gPiArICBQeV9FTkRfQUxMT1dfVEhSRUFEUw0KPiA+ICsgIHJldHVybiBQeUxvbmdfRnJv bVVuc2lnbmVkTG9uZygodW5zaWduZWQgbG9uZylyZXN1bHQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ ICtQeURvY19TVFJWQVIoZWZpX3dyaXRlaW9fX2RvY19fLA0KPiA+ICsid3JpdGVpbyhhZGRyLCBz aXplLCB2YWx1ZSkgLT4gTm9uZVxuXA0KPiA+ICtXcml0ZSB0aGUgdmFsdWUgKHNpemUgPT0gMSwg Miwgb3IgNCBieXRlcykgb2YgdGhlIHNwZWNpZmllZCBJTyBwb3J0LiIpOw0KPiA+ICsNCj4gPiAr c3RhdGljIFB5T2JqZWN0ICoNCj4gPiArcG9zaXhfd3JpdGVpbyhQeU9iamVjdCAqc2VsZiwgUHlP YmplY3QgKmFyZ3MpDQo+ID4gK3sNCj4gPiArICB1bnNpZ25lZCBpbnQgYWRkciwgc3osIHZhbHVl Ow0KPiA+ICsgIHNob3J0IGFkZHJzOw0KPiA+ICsNCj4gPiArICBpZiAoIVB5QXJnX1BhcnNlVHVw bGUoYXJncywgIklJSSIsICZhZGRyLCAmc3osICZ2YWx1ZSkpDQo+ID4gKyAgICByZXR1cm4gTlVM TDsNCj4gPiArDQo+ID4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiA+ICsgIGFkZHJzID0g KHNob3J0KShhZGRyICYgMHhmZmZmKTsNCj4gPiArICBpZiAgICAgKCAxID09IHN6ICkgV3JpdGVQ b3J0Qnl0ZSAoICh1bnNpZ25lZCBjaGFyKSh2YWx1ZSYweEZGKSwgYWRkcnMgKTsNCj4gPiArICBl bHNlIGlmKCAyID09IHN6ICkgV3JpdGVQb3J0V29yZCAoICh1bnNpZ25lZCBzaG9ydCkodmFsdWUm MHhGRkZGKSwgYWRkcnMgKTsNCj4gPiArICBlbHNlIGlmKCA0ID09IHN6ICkgV3JpdGVQb3J0RHdv cmQoIHZhbHVlLCBhZGRycyApOw0KPiA+ICsgIFB5X0VORF9BTExPV19USFJFQURTDQo+ID4gKw0K PiA+ICsgIFB5X0lOQ1JFRihQeV9Ob25lKTsNCj4gPiArICByZXR1cm4gUHlfTm9uZTsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArUHlEb2NfU1RSVkFSKGVmaV9yZWFkcGNpX19kb2NfXywNCj4gPiArInJl YWRwY2koYnVzLGRldixmdW5jLGFkZHIsc2l6ZSkgLT4gKGludClcblwNCj4gPiArUmVhZCB0aGUg dmFsdWUgKHNpemUgPT0gMSwgMiwgb3IgNCBieXRlcykgb2YgdGhlIHNwZWNpZmllZCBQQ0kgYi9k L2YuIik7DQo+ID4gKw0KPiA+ICtzdGF0aWMgUHlPYmplY3QgKg0KPiA+ICtwb3NpeF9yZWFkcGNp KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gPiArew0KPiA+ICsgIHVuc2lnbmVk IGludCBidXMsIGRldiwgZnVuYywgYWRkciwgc3osIHJlc3VsdDsNCj4gPiArDQo+ID4gKyAgaWYg KCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJJSUlJSSIsICZidXMsICZkZXYsICZmdW5jLCAmYWRk ciwgJnN6KSkNCj4gPiArICAgIHJldHVybiBOVUxMOw0KPiA+ICsNCj4gPiArICBQeV9CRUdJTl9B TExPV19USFJFQURTDQo+ID4gKyAgcmVzdWx0ID0gUmVhZFBDSUNmZyggYnVzLCBkZXYsIGZ1bmMs IGFkZHIsIHN6ICk7DQo+ID4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gPiArDQo+ID4gKyAg cmV0dXJuIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKCh1bnNpZ25lZCBsb25nKXJlc3VsdCk7DQo+ ID4gK30NCj4gPiArDQo+ID4gK1B5RG9jX1NUUlZBUihlZmlfd3JpdGVwY2lfX2RvY19fLA0KPiA+ ICsid3JpdGVwY2koYnVzLGRldixmdW5jLGFkZHIsdmFsdWUsbGVuKSAtPiBOb25lXG5cDQo+ID4g K1dyaXRlIHRoZSB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIFBDSSBiL2QvZi4gIExlbiBpcyB2YWx1 ZSBzaXplIChlaXRoZXIgMSwgMiwgb3IgNCBieXRlcykuIik7DQo+ID4gKw0KPiA+ICtzdGF0aWMg UHlPYmplY3QgKg0KPiA+ICtwb3NpeF93cml0ZXBjaShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3Qg KmFyZ3MpDQo+ID4gK3sNCj4gPiArICB1bnNpZ25lZCBpbnQgYnVzLCBkZXYsIGZ1bmMsIGFkZHIs IHZhbCwgbGVuOw0KPiA+ICsNCj4gPiArICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIklJ SUlJSSIsICZidXMsICZkZXYsICZmdW5jLCAmYWRkciwgJnZhbCwgJmxlbikpDQo+ID4gKyAgICBy ZXR1cm4gTlVMTDsNCj4gPiArDQo+ID4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiA+ICsg IFdyaXRlUENJQ2ZnKCBidXMsIGRldiwgZnVuYywgYWRkciwgbGVuLCB2YWwgKTsNCj4gPiArICBQ eV9FTkRfQUxMT1dfVEhSRUFEUw0KPiA+ICsNCj4gPiArICBQeV9JTkNSRUYoUHlfTm9uZSk7DQo+ ID4gKyAgcmV0dXJuIFB5X05vbmU7DQo+ID4gK30NCj4gPiArDQo+ID4gK1B5RG9jX1NUUlZBUihl ZmlfcmVhZG1lbV9fZG9jX18sDQo+ID4gKyJyZWFkbWVtKGFkZHJfbG8sIGFkZHJfaGksIGxlbikg LT4gQnl0ZVN0cmluZ1xuXA0KPiA+ICtSZWFkIHRoZSBnaXZlbiBtZW1vcnkgYWRkcmVzcy4iKTsN Cj4gPiArDQo+ID4gK3N0YXRpYyBQeU9iamVjdCAqDQo+ID4gK3Bvc2l4X3JlYWRtZW0oUHlPYmpl Y3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiA+ICt7DQo+ID4gKyAgUHlPYmplY3QgICpkYXRh Ow0KPiA+ICsgIFVJTlQzMiAgICAgYWRkcl9sbywgYWRkcl9oaTsNCj4gPiArICBjaGFyICAgICAg KmJ1ZmZlciwgKmNidWZmZXIsICphZGRyOw0KPiA+ICsgIGludCAgICAgICAgbGVuLCBpbmRleDsN Cj4gPiArDQo+ID4gKyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJJSUkiLCAmYWRkcl9s bywgJmFkZHJfaGksICZsZW4pKQ0KPiA+ICsgICAgcmV0dXJuIE5VTEw7DQo+ID4gKw0KPiA+ICsj aWZkZWYgTURFX0NQVV9YNjQNCj4gPiArICBhZGRyID0gKHVuc2lnbmVkIGNoYXIqKSgoVUlOVDY0 KWFkZHJfbG8gfCAoKFVJTlQ2NClhZGRyX2hpIDw8IDMyKSk7DQo+ID4gKyNlbHNlDQo+ID4gKyAg YWRkciA9ICh1bnNpZ25lZCBjaGFyKilhZGRyX2xvOw0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4g KyAgYnVmZmVyID0gbWFsbG9jKGxlbik7DQo+ID4gKyAgaWYgKGJ1ZmZlciA9PSBOVUxMKQ0KPiA+ ICsgICAgcmV0dXJuIE5VTEw7DQo+ID4gKw0KPiA+ICsgIGNidWZmZXIgPSBidWZmZXI7DQo+ID4g KyAgaW5kZXggPSBsZW47DQo+ID4gKw0KPiA+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4g PiArDQo+ID4gKyAgd2hpbGUoaW5kZXgtLSl7DQo+ID4gKyAgICAqY2J1ZmZlciA9ICphZGRyOw0K PiA+ICsgICAgY2J1ZmZlcisrOw0KPiA+ICsgICAgYWRkcisrOw0KPiA+ICsgIH0NCj4gPiArDQo+ ID4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gPiArDQo+ID4gKyAgZGF0YSA9IFB5X0J1aWxk VmFsdWUoInkjIiwgYnVmZmVyLCBsZW4pOw0KPiA+ICsgIGZyZWUoYnVmZmVyKTsNCj4gPiArDQo+ ID4gKyAgcmV0dXJuIGRhdGE7DQo+ID4gK30NCj4gPiArDQo+ID4gK1B5RG9jX1NUUlZBUihlZmlf cmVhZG1lbV9kd29yZF9fZG9jX18sDQo+ID4gKyJyZWFkbWVtX2R3b3JkKGFkZHJfbG8sIGFkZHJf aGkpIC0+IChpbnQzMilcblwNCj4gPiArUmVhZCB0aGUgZ2l2ZW4gbWVtb3J5IGFkZHJlc3MgYW5k IHJldHVybiAzMi1iaXQgdmFsdWUuIik7DQo+ID4gKw0KPiA+ICtzdGF0aWMgUHlPYmplY3QgKg0K PiA+ICtwb3NpeF9yZWFkbWVtX2R3b3JkKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykN Cj4gPiArew0KPiA+ICsgIHVuc2lnbmVkIGludCByZXN1bHQsICphZGRyOw0KPiA+ICsgIFVJTlQz MiBhZGRyX2xvLCBhZGRyX2hpOw0KPiA+ICsNCj4gPiArICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUo YXJncywgIklJIiwgJmFkZHJfbG8sICZhZGRyX2hpKSkNCj4gPiArICAgIHJldHVybiBOVUxMOw0K PiA+ICsNCj4gPiArI2lmZGVmIE1ERV9DUFVfWDY0DQo+ID4gKyAgYWRkciA9ICh1bnNpZ25lZCBp bnQqKSgoVUlOVDY0KWFkZHJfbG8gfCAoKFVJTlQ2NClhZGRyX2hpIDw8IDMyKSk7DQo+ID4gKyNl bHNlDQo+ID4gKyAgYWRkciA9ICh1bnNpZ25lZCBpbnQqKWFkZHJfbG87DQo+ID4gKyNlbmRpZg0K PiA+ICsNCj4gPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ID4gKyAgcmVzdWx0ID0gKmFk ZHI7DQo+ID4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gPiArDQo+ID4gKyAgcmV0dXJuIFB5 TG9uZ19Gcm9tVW5zaWduZWRMb25nKCh1bnNpZ25lZCBsb25nKXJlc3VsdCk7DQo+ID4gK30NCj4g PiArDQo+ID4gK1B5RG9jX1NUUlZBUihlZmlfd3JpdGVtZW1fX2RvY19fLA0KPiA+ICsid3JpdGVt ZW0oYWRkcl9sbywgYWRkcl9oaSwgYnVmLCBsZW4pIC0+IE5vbmVcblwNCj4gPiArV3JpdGUgdGhl IGJ1ZiAoUHlTdHJpbmcpIHRvIHRoZSBnaXZlbiBtZW1vcnkgYWRkcmVzcy4iKTsNCj4gPiArDQo+ ID4gK3N0YXRpYyBQeU9iamVjdCAqDQo+ID4gK3Bvc2l4X3dyaXRlbWVtKFB5T2JqZWN0ICpzZWxm LCBQeU9iamVjdCAqYXJncykNCj4gPiArew0KPiA+ICsgIGNoYXIgKmJ1ZiwgKmFkZHI7DQo+ID4g KyAgaW50IGxlbjsNCj4gPiArICBVSU5UMzIgYWRkcl9sbywgYWRkcl9oaTsNCj4gPiArDQo+ID4g KyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJJSXMjIiwgJmFkZHJfbG8sICZhZGRyX2hp LCAmYnVmLCAmbGVuKSkNCj4gPiArICAgIHJldHVybiBOVUxMOw0KPiA+ICsNCj4gPiArI2lmZGVm IE1ERV9DUFVfWDY0DQo+ID4gKyAgYWRkciA9ICh1bnNpZ25lZCBjaGFyKikoKFVJTlQ2NClhZGRy X2xvIHwgKChVSU5UNjQpYWRkcl9oaSA8PCAzMikpOw0KPiA+ICsjZWxzZQ0KPiA+ICsgIGFkZHIg PSAodW5zaWduZWQgY2hhciopYWRkcl9sbzsNCj4gPiArI2VuZGlmDQo+ID4gKw0KPiA+ICsgIFB5 X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gPiArICB3aGlsZShsZW4tLSl7DQo+ID4gKyAgICAqYWRk ciA9ICpidWY7DQo+ID4gKyAgICBidWYrKzsNCj4gPiArICAgIGFkZHIrKzsNCj4gPiArICB9DQo+ ID4gKyAgUHlfRU5EX0FMTE9XX1RIUkVBRFMNCj4gPiArDQo+ID4gKyAgUHlfSU5DUkVGKFB5X05v bmUpOw0KPiA+ICsgIHJldHVybiBQeV9Ob25lOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtQeURvY19T VFJWQVIoZWZpX3dyaXRlbWVtX2R3b3JkX19kb2NfXywNCj4gPiArIndyaXRlbWVtX2R3b3JkKGFk ZHJfbG8sIGFkZHJfaGksIHZhbCkgLT4gTm9uZVxuXA0KPiA+ICtXcml0ZSB0aGUgMzItYml0IHZh bHVlIHRvIHRoZSBnaXZlbiBtZW1vcnkgYWRkcmVzcy4iKTsNCj4gPiArDQo+ID4gK3N0YXRpYyBQ eU9iamVjdCAqDQo+ID4gK3Bvc2l4X3dyaXRlbWVtX2R3b3JkKFB5T2JqZWN0ICpzZWxmLCBQeU9i amVjdCAqYXJncykNCj4gPiArew0KPiA+ICsgIHVuc2lnbmVkIGludCAqYWRkciwgdmFsOw0KPiA+ ICsgIFVJTlQzMiBhZGRyX2xvLCBhZGRyX2hpOw0KPiA+ICsNCj4gPiArICBpZiAoIVB5QXJnX1Bh cnNlVHVwbGUoYXJncywgIklJSSIsICZhZGRyX2xvLCAmYWRkcl9oaSwgJnZhbCkpDQo+ID4gKyAg ICByZXR1cm4gTlVMTDsNCj4gPiArDQo+ID4gKyNpZmRlZiBNREVfQ1BVX1g2NA0KPiA+ICsgIGFk ZHIgPSAodW5zaWduZWQgaW50KikoKFVJTlQ2NClhZGRyX2xvIHwgKChVSU5UNjQpYWRkcl9oaSA8 PCAzMikpOw0KPiA+ICsjZWxzZQ0KPiA+ICsgIGFkZHIgPSAodW5zaWduZWQgaW50KilhZGRyX2xv Ow0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiA+ ICsgICphZGRyID0gdmFsOw0KPiA+ICsgIFB5X0VORF9BTExPV19USFJFQURTDQo+ID4gKw0KPiA+ ICsgIFB5X0lOQ1JFRihQeV9Ob25lKTsNCj4gPiArICByZXR1cm4gUHlfTm9uZTsNCj4gPiArfQ0K PiA+ICsNCj4gPiArUHlEb2NfU1RSVkFSKE1pc2NSVF9HZXRWYXJpYWJsZV9fZG9jX18sDQo+ID4g KyIoU3RhdHVzLCBBdHRyaWJ1dGVzLCBEYXRhLCBEYXRhU2l6ZSkgPSBHZXRWYXJpYWJsZShWYXJp YWJsZU5hbWUsIEdVSUQsIERhdGFTaXplKVxuXG5cDQo+ID4gK1JldHVybnMgdGhlIHZhbHVlIG9m IGEgdmFyaWFibGUuIik7DQo+ID4gKw0KPiA+ICtzdGF0aWMNCj4gPiArUHlPYmplY3QgKg0KPiA+ ICtNaXNjUlRfR2V0VmFyaWFibGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQ0KPiA+ ICt7DQo+ID4gKyAgUHlPYmplY3QgICAgICpkYXRhX291dDsNCj4gPiArICBDSEFSMTYgICAgICAg KlZhcmlhYmxlTmFtZTsNCj4gPiArICBFRklfR1VJRCAgICAgIFZlbmRvckd1aWQ7DQo+ID4gKyAg VUlOVDMyICAgICAgICBHdWlkU2l6ZTsNCj4gPiArICBVSU5UMzIgICAgICAgIEF0dHJpYnV0ZXM7 DQo+ID4gKyAgVUlOVDY0ICAgICAgICBEYXRhU2l6ZTsNCj4gPiArICBjaGFyICAgICAgICAgKkRh dGE7DQo+ID4gKyAgY29uc3QgQ0hBUjE2ICpHdWlkSW47DQo+ID4gKyAgRUZJX1NUQVRVUyAgICBT dGF0dXM7DQo+ID4gKw0KPiA+ICsgIGlmKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ1dSNLIiwg JlZhcmlhYmxlTmFtZSwgJkd1aWRJbiwgJkd1aWRTaXplLCAmRGF0YVNpemUpKQ0KPiA+ICsgIHsN Cj4gPiArICAgIHJldHVybiBOVUxMOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgU3RyVG9HdWlk KEd1aWRJbiwgJlZlbmRvckd1aWQpOw0KPiA+ICsNCj4gPiArICBEYXRhID0gbWFsbG9jKERhdGFT aXplKTsNCj4gPiArICBpZiAoIURhdGEpDQo+ID4gKyAgICByZXR1cm4gTlVMTDsNCj4gPiArDQo+ ID4gKyAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUw0KPiA+ICsgIFN0YXR1cyA9IGdSVC0+R2V0VmFy aWFibGUoVmFyaWFibGVOYW1lLCAmVmVuZG9yR3VpZCwgJkF0dHJpYnV0ZXMsIChVSU5UTiAqKSZE YXRhU2l6ZSwgKHZvaWQqKURhdGEpOw0KPiA+ICsgIFB5X0VORF9BTExPV19USFJFQURTDQo+ID4g Kw0KPiA+ICsgIGRhdGFfb3V0ID0gUHlfQnVpbGRWYWx1ZSgiKElJeSNLKSIsIChVSU5UMzIpU3Rh dHVzLCBBdHRyaWJ1dGVzLCBEYXRhLCBEYXRhU2l6ZSwgRGF0YVNpemUpOw0KPiA+ICsgIGZyZWUo RGF0YSk7DQo+ID4gKw0KPiA+ICsgIHJldHVybiBkYXRhX291dDsNCj4gPiArfQ0KPiA+ICsNCj4g PiArUHlEb2NfU1RSVkFSKE1pc2NSVF9HZXROZXh0VmFyaWFibGVOYW1lX19kb2NfXywNCj4gPiAr IihTdGF0dXMsIFZhcmlhYmxlTmFtZVNpemUsIFZhcmlhYmxlTmFtZSwgVmVuZG9yR3VpZCkgPSBH ZXROZXh0VmFyaWFibGVOYW1lKE5hbWVTaXplLCBWYXJpYWJsZU5hbWUsIEdVSUQpXG5cblwNCj4g PiArRW51bWVyYXRlcyB0aGUgY3VycmVudCB2YXJpYWJsZSBuYW1lcy4iKTsNCj4gPiArDQo+ID4g K3N0YXRpYw0KPiA+ICtQeU9iamVjdCAqDQo+ID4gK01pc2NSVF9HZXROZXh0VmFyaWFibGVOYW1l KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCj4gPiArew0KPiA+ICsgIFVJTlQ2NCAg ICAgICAgTmFtZVNpemU7DQo+ID4gKyAgQ0hBUjE2ICAgICAgICpWYXJpYWJsZU5hbWUsICpOYW1l SW47DQo+ID4gKyAgVUlOVDMyICAgICAgICBHdWlkU2l6ZSwgVmFyaWFibGVOYW1lU2l6ZSwgaTsN Cj4gPiArICBFRklfR1VJRCAgICAgIFZlbmRvckd1aWQ7DQo+ID4gKyAgRUZJX1NUQVRVUyAgICBT dGF0dXM7DQo+ID4gKyAgY29uc3QgY2hhciAgICpHdWlkSW47DQo+ID4gKyAgY2hhciAgICAgICAg ICpWZW5kb3JHdWlkUHRyLCAqR3VpZE91dFszN107DQo+ID4gKw0KPiA+ICsgIGlmKCFQeUFyZ19Q YXJzZVR1cGxlKGFyZ3MsICJLeSNzIyIsICZOYW1lU2l6ZSwgJk5hbWVJbiwgJlZhcmlhYmxlTmFt ZVNpemUsICZHdWlkSW4sICZHdWlkU2l6ZSkpDQo+ID4gKyAgew0KPiA+ICsgICAgcmV0dXJuIE5V TEw7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBWZW5kb3JHdWlkUHRyID0gKGNoYXIgKikmVmVu ZG9yR3VpZDsNCj4gPiArICBmb3IgKGk9MDsgaTxzaXplb2YoVmVuZG9yR3VpZCk7IGkrKykNCj4g PiArICAgIFZlbmRvckd1aWRQdHJbaV0gPSBHdWlkSW5baV07DQo+ID4gKw0KPiA+ICsgIGZvciAo aT0wOyBpPE5hbWVTaXplICYmIE5hbWVJbltpXSAhPSAoQ0hBUjE2KTA7IGkrKykNCj4gPiArICAg IFZhcmlhYmxlTmFtZVtpXSA9IE5hbWVJbltpXTsNCj4gPiArICBWYXJpYWJsZU5hbWVbaV0gPSBO YW1lSW5baV07DQo+ID4gKw0KPiA+ICsgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMNCj4gPiArICBT dGF0dXMgPSBnUlQtPkdldE5leHRWYXJpYWJsZU5hbWUoKFVJTlROICopJk5hbWVTaXplLCAoQ0hB UjE2ICopVmFyaWFibGVOYW1lLCAmVmVuZG9yR3VpZCk7DQo+ID4gKyAgUHlfRU5EX0FMTE9XX1RI UkVBRFMNCj4gPiArDQo+ID4gKyAgR3VpZFRvU3RyKChFRklfR1VJRCAqKSZWZW5kb3JHdWlkLCAo VUlOVDggKilHdWlkT3V0KTsNCj4gPiArDQo+ID4gKyAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihJ dUtzKSIsIChVSU5UMzIpIFN0YXR1cywgVmFyaWFibGVOYW1lLCBOYW1lU2l6ZSwgJkd1aWRPdXQp Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICtQeURvY19TVFJWQVIoTWlzY1JUX1NldFZhcmlhYmxlX19k b2NfXywNCj4gPiArIihTdGF0dXMsIERhdGFTaXplLCBHVUlEKSA9IFNldFZhcmlhYmxlKFZhcmlh YmxlTmFtZSwgR1VJRCwgQXR0cmlidXRlcywgRGF0YSwgRGF0YVNpemUpXG5cblwNCj4gPiArU2V0 cyB0aGUgdmFsdWUgb2YgYSB2YXJpYWJsZS4iKTsNCj4gPiArDQo+ID4gK3N0YXRpYw0KPiA+ICtQ eU9iamVjdCAqDQo+ID4gK01pc2NSVF9TZXRWYXJpYWJsZShQeU9iamVjdCAqc2VsZiwgUHlPYmpl Y3QgKmFyZ3MpDQo+ID4gK3sNCj4gPiArICBDSEFSMTYgICAgICAgKlZhcmlhYmxlTmFtZTsNCj4g PiArICBVSU5UNjQgICAgICAgIERhdGFTaXplOw0KPiA+ICsgIGNoYXIgICAgICAgICAqRGF0YSwg Kmd1aWRwdHIsICpWZW5kb3JHdWlkUHRyOw0KPiA+ICsgIGNoYXIgICAgICAgICAqR3VpZE91dFsz N107DQo+ID4gKyAgRUZJX1NUQVRVUyAgICBTdGF0dXM7DQo+ID4gKyAgRUZJX0dVSUQgICAgICBW ZW5kb3JHdWlkOw0KPiA+ICsgIFVJTlQzMiAgICAgICAgQXR0cmlidXRlczsNCj4gPiArICBVSU5U MzIgICAgICAgIEd1aWRTaXplLCBzdHJEYXRhU2l6ZTsNCj4gPiArICBjb25zdCBDSEFSMTYgKkd1 aWRJbjsNCj4gPiArDQo+ID4gKyAgaWYoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInV1I0lzI0ki LCAmVmFyaWFibGVOYW1lLCAmR3VpZEluLCAmR3VpZFNpemUsICZBdHRyaWJ1dGVzLCAmRGF0YSwg JnN0ckRhdGFTaXplLA0KPiAmRGF0YVNpemUpKQ0KPiA+ICsgIHsNCj4gPiArICAgIHJldHVybiBO VUxMOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgU3RyVG9HdWlkKEd1aWRJbiwgJlZlbmRvckd1 aWQpOw0KPiA+ICsNCj4gPiArICBQeV9CRUdJTl9BTExPV19USFJFQURTDQo+ID4gKyAgU3RhdHVz ID0gZ1JULT5TZXRWYXJpYWJsZShWYXJpYWJsZU5hbWUsICZWZW5kb3JHdWlkLCBBdHRyaWJ1dGVz LCAoVUlOVE4pRGF0YVNpemUsICh2b2lkKilEYXRhKTsNCj4gPiArICBQeV9FTkRfQUxMT1dfVEhS RUFEUw0KPiA+ICsNCj4gPiArICBHdWlkVG9TdHIoKEVGSV9HVUlEICopJlZlbmRvckd1aWQsIChV SU5UOCAqKUd1aWRPdXQpOw0KPiA+ICsNCj4gPiArLy8gICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgi KElLdSMpIiwgKFVJTlQzMikgU3RhdHVzLCBEYXRhU2l6ZSwgJlZlbmRvckd1aWQsIHNpemVvZihW ZW5kb3JHdWlkKSk7DQo+ID4gKyAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihJS3MpIiwgKFVJTlQz MikgU3RhdHVzLCBEYXRhU2l6ZSwgJkd1aWRPdXQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsNCj4g PiArDQo+ID4gK0VGSV9TVEFUVVMNCj4gPiArR3VpZFRvU3RyICgNCj4gPiArICBJTiBFRklfR1VJ RCAgKmd1aWQsDQo+ID4gKyAgSU4gT1VUIFVJTlQ4ICpzdHJfYnVmZmVyDQo+ID4gKyAgKQ0KPiA+ ICsvKisrDQo+ID4gKw0KPiA+ICtSb3V0aW5lIERlc2NyaXB0aW9uOg0KPiA+ICsgIFRoaXMgZnVu Y3Rpb24gcHJpbnRzIGEgR1VJRCB0byBhIGJ1ZmZlcg0KPiA+ICsNCj4gPiArQXJndW1lbnRzOg0K PiA+ICsgIGd1aWQgICAgICAgLSBQb2ludGVyIHRvIGEgR1VJRA0KPiA+ICsgIHN0cl9idWZmZXIg LSBQb2ludGVyIHRvIGEgc3RyIGJ1ZmZlcg0KPiA+ICsNCj4gPiArUmV0dXJuczoNCj4gPiArICBF RklfU1VDQ0VTUyAgICAgICAgICAgIEdVSUQgd2FzIHByaW50ZWQNCj4gPiArICBFRklfSU5WQUxJ RF9QQVJBTUVURVIgIEdVSUQgd2FzIE5VTEwNCj4gPiArDQo+ID4gKy0tKi8NCj4gPiArew0KPiA+ ICsgIGlmIChndWlkID09IE5VTEwpIHsNCj4gPiArICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJB TUVURVI7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBzcHJpbnRmICgNCj4gPiArICAgIChDSEFS OCAqKXN0cl9idWZmZXIsDQo+ID4gKyAgICAiJTA4WC0lMDRYLSUwNFgtJTAyWCUwMlgtJTAyWCUw MlglMDJYJTAyWCUwMlglMDJYIiwNCj4gPiArICAgICh1bnNpZ25lZCkgZ3VpZC0+RGF0YTEsDQo+ ID4gKyAgICBndWlkLT5EYXRhMiwNCj4gPiArICAgIGd1aWQtPkRhdGEzLA0KPiA+ICsgICAgZ3Vp ZC0+RGF0YTRbMF0sDQo+ID4gKyAgICBndWlkLT5EYXRhNFsxXSwNCj4gPiArICAgIGd1aWQtPkRh dGE0WzJdLA0KPiA+ICsgICAgZ3VpZC0+RGF0YTRbM10sDQo+ID4gKyAgICBndWlkLT5EYXRhNFs0 XSwNCj4gPiArICAgIGd1aWQtPkRhdGE0WzVdLA0KPiA+ICsgICAgZ3VpZC0+RGF0YTRbNl0sDQo+ ID4gKyAgICBndWlkLT5EYXRhNFs3XQ0KPiA+ICsgICAgKTsNCj4gPiArDQo+ID4gKyAgcmV0dXJu IEVGSV9TVUNDRVNTOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsNCj4gPiArDQo+ID4gKy8qY29kZSBt ZXJnZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vY2hpcHNlYy9jaGlwc2VjL3RyZWUvbWFpbi9j aGlwc2VjX3Rvb2xzL2VkazIvUHl0aG9uRUZJICovDQo+ID4gKy8qICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMgICAgIEVORCAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICovDQo+ID4g KyNlbmRpZg0KPiA+ICsNCj4gPiArDQo+ID4gIHN0YXRpYyBQeU1ldGhvZERlZiBlZGsyX21ldGhv ZHNbXSA9IHsNCj4gPiAgICAgIHsiYWNjZXNzIiwgICAgICAgICAgZWRrMl9hY2Nlc3MsICAgICBN RVRIX1ZBUkFSR1MsIGVkazJfYWNjZXNzX19kb2NfX30sDQo+ID4gICNpZmRlZiBIQVZFX1RUWU5B TUUNCj4gPiBAQCAtNDA0NCw3ICs0NTg2LDcgQEAgc3RhdGljIFB5TWV0aG9kRGVmIGVkazJfbWV0 aG9kc1tdID0gew0KPiA+ICAjaWZkZWYgSEFWRV9UTVBOQU0NCj4gPiAgICAgIHsidG1wbmFtIiwg ICAgICAgICAgZWRrMl90bXBuYW0sICAgICBNRVRIX05PQVJHUywgIGVkazJfdG1wbmFtX19kb2Nf X30sDQo+ID4gICNlbmRpZg0KPiA+IC0jZW5kaWYNCj4gPiArI2VuZGlmDQo+ID4gICNpZmRlZiBI QVZFX0NPTkZTVFINCj4gPiAgICAgIHsiY29uZnN0ciIsICAgICAgICAgZWRrMl9jb25mc3RyLCBN RVRIX1ZBUkFSR1MsIGVkazJfY29uZnN0cl9fZG9jX199LA0KPiA+ICAjZW5kaWYNCj4gPiBAQCAt NDA1OCw2ICs0NjAwLDI2IEBAIHN0YXRpYyBQeU1ldGhvZERlZiBlZGsyX21ldGhvZHNbXSA9IHsN Cj4gPiAgICAgIHsicGF0aGNvbmYiLCAgICAgICAgZWRrMl9wYXRoY29uZiwgTUVUSF9WQVJBUkdT LCBlZGsyX3BhdGhjb25mX19kb2NfX30sDQo+ID4gICNlbmRpZg0KPiA+ICAgICAgeyJhYm9ydCIs ICAgICAgICAgICBlZGsyX2Fib3J0LCAgICAgIE1FVEhfTk9BUkdTLCAgZWRrMl9hYm9ydF9fZG9j X199LA0KPiA+ICsNCj4gPiArI2lmIGRlZmluZWQoVUVGSV9NU1ZDXzMyKSB8fCBkZWZpbmVkKFVF RklfTVNWQ182NCkNCj4gPiArICAgIHsicmRtc3IiLCAgICAgICAgICAgICAgIHBvc2l4X3JkbXNy LCAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfcmRtc3JfX2RvY19ffSwNCj4gPiAr ICAgIHsid3Jtc3IiLCAgICAgICAgICAgICAgIHBvc2l4X3dybXNyLCAgICAgICAgICAgICAgICAg TUVUSF9WQVJBUkdTLCBlZmlfd3Jtc3JfX2RvY19ffSwNCj4gPiArICAgIHsicmVhZHBjaSIsICAg ICAgICAgICAgIHBvc2l4X3JlYWRwY2ksICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlf cmVhZHBjaV9fZG9jX199LA0KPiA+ICsgICAgeyJ3cml0ZXBjaSIsICAgICAgICAgICAgcG9zaXhf d3JpdGVwY2ksICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MsIGVmaV93cml0ZXBjaV9fZG9jX199 LA0KPiA+ICsgICAgeyJyZWFkbWVtIiwgICAgICAgICAgICAgcG9zaXhfcmVhZG1lbSwgICAgICAg ICAgICAgICBNRVRIX1ZBUkFSR1MsIGVmaV9yZWFkbWVtX19kb2NfX30sDQo+ID4gKyAgICB7InJl YWRtZW1fZHdvcmQiLCAgICAgICBwb3NpeF9yZWFkbWVtX2R3b3JkLCAgICAgICAgIE1FVEhfVkFS QVJHUywgZWZpX3JlYWRtZW1fZHdvcmRfX2RvY19ffSwNCj4gPiArICAgIHsid3JpdGVtZW0iLCAg ICAgICAgICAgIHBvc2l4X3dyaXRlbWVtLCAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlf d3JpdGVtZW1fX2RvY19ffSwNCj4gPiArICAgIHsid3JpdGVtZW1fZHdvcmQiLCAgICAgIHBvc2l4 X3dyaXRlbWVtX2R3b3JkLCAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfd3JpdGVtZW1fZHdvcmRf X2RvY19ffSwNCj4gPiArICAgIHsid3JpdGVpbyIsICAgICAgICAgICAgIHBvc2l4X3dyaXRlaW8s ICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfd3JpdGVpb19fZG9jX199LA0KPiA+ICsg ICAgeyJyZWFkaW8iLCAgICAgICAgICAgICAgcG9zaXhfcmVhZGlvLCAgICAgICAgICAgICAgICBN RVRIX1ZBUkFSR1MsIGVmaV9yZWFkaW9fX2RvY19ffSwNCj4gPiArICAgIHsic3dzbWkiLCAgICAg ICAgICAgICAgIHBvc2l4X3N3c21pLCAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlf c3dzbWlfX2RvY19ffSwNCj4gPiArICAgIHsiYWxsb2NwaHlzbWVtIiwgICAgICAgIHBvc2l4X2Fs bG9jcGh5c21lbSwgICAgICAgICAgTUVUSF9WQVJBUkdTLCBlZmlfYWxsb2NwaHlzbWVtX19kb2Nf X30sDQo+ID4gKyAgICB7ImNwdWlkIiwgICAgICAgICAgICAgICBwb3NpeF9jcHVpZCwgICAgICAg ICAgICAgICAgIE1FVEhfVkFSQVJHUywgZWZpX2NwdWlkX19kb2NfX30sDQo+ID4gKyAgICB7Ikdl dFZhcmlhYmxlIiwgICAgICAgICBNaXNjUlRfR2V0VmFyaWFibGUsICAgICAgICAgIE1FVEhfVkFS QVJHUywgTWlzY1JUX0dldFZhcmlhYmxlX19kb2NfX30sDQo+ID4gKyAgICB7IkdldE5leHRWYXJp YWJsZU5hbWUiLCBNaXNjUlRfR2V0TmV4dFZhcmlhYmxlTmFtZSwgIE1FVEhfVkFSQVJHUywgTWlz Y1JUX0dldE5leHRWYXJpYWJsZU5hbWVfX2RvY19ffSwNCj4gPiArICAgIHsiU2V0VmFyaWFibGUi LCAgICAgICAgIE1pc2NSVF9TZXRWYXJpYWJsZSwgICAgICAgICAgTUVUSF9WQVJBUkdTLCBNaXNj UlRfU2V0VmFyaWFibGVfX2RvY19ffSwNCj4gPiArI2VuZGlmDQo+ID4gKw0KPiA+ICAgICAge05V TEwsICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgIC8qIFNlbnRpbmVsICovDQo+ID4gIH07 DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9u LTMuNi44L1B5dGhvbjM2OC5pbmYgYi9BcHBQa2cvQXBwbGljYXRpb25zL1B5dGhvbi9QeXRob24t DQo+IDMuNi44L1B5dGhvbjM2OC5pbmYNCj4gPiBpbmRleCAxMjFkNGE5Li5kM2NjYjZhIDEwMDY0 NA0KPiA+IC0tLSBhL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9QeXRo b24zNjguaW5mDQo+ID4gKysrIGIvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMu Ni44L1B5dGhvbjM2OC5pbmYNCj4gPiBAQCAtMTQsNyArMTQsNyBAQA0KPiA+DQo+ID4gIFtEZWZp bmVzXQ0KPiA+ICAgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMTYNCj4g PiAtICBCQVNFX05BTUUgICAgICAgICAgICAgICAgICAgPSBQeXRob24NCj4gPiArICBCQVNFX05B TUUgICAgICAgICAgICAgICAgICAgPSBQeXRob24NCj4gPiAgICBGSUxFX0dVSUQgICAgICAgICAg ICAgICAgICAgPSA5REEzMEU5OC0wOTRDLTRGRjAtOTRDQi04MUMxMEU2OUY3NTANCj4gPiAgICBN T0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgPSBVRUZJX0FQUExJQ0FUSU9ODQo+ID4gICAgVkVS U0lPTl9TVFJJTkcgICAgICAgICAgICAgID0gMC4xDQo+ID4gQEAgLTIwMSw4ICsyMDEsOCBAQA0K PiA+ICAgIE1vZHVsZXMvX2JsYWtlMi9ibGFrZTJiX2ltcGwuYyAgICAgICAjDQo+ID4gICAgTW9k dWxlcy9fYmxha2UyL2JsYWtlMnNfaW1wbC5jICAgICAgICMNCj4gPiAgICBNb2R1bGVzL19zaGEz L3NoYTNtb2R1bGUuYyAgICAgICAgICAgIw0KPiA+IC0gIE1vZHVsZXMvc2lnbmFsbW9kdWxlLmMg ICAgICAgICAgICAgICAjDQo+ID4gLSAgI01vZHVsZXMvc29ja2V0bW9kdWxlLmMgICAgICAgICAg ICAgICAjDQo+ID4gKyAgTW9kdWxlcy9zaWduYWxtb2R1bGUuYyAgICAgICAgICAgICAgICMNCj4g PiArICAjTW9kdWxlcy9zb2NrZXRtb2R1bGUuYyAgICAgICAgICAgICAgIw0KPiA+ICAgIE1vZHVs ZXMvc3ltdGFibGVtb2R1bGUuYyAgICAgICAgICAgICAjDQo+ID4gICAgTW9kdWxlcy91bmljb2Rl ZGF0YS5jICAgICAgICAgICAgICAgICMNCj4gPiAgICBNb2R1bGVzL3h4c3VidHlwZS5jICAgICAg ICAgICAgICAgICAgIw0KPiA+IEBAIC0yMTUsNyArMjE1LDcgQEANCj4gPiAgICBNb2R1bGVzL19p by9pb2Jhc2UuYyAgICAgICAgICAgICAgICAgIw0KPiA+ICAgIE1vZHVsZXMvX2lvL3N0cmluZ2lv LmMgICAgICAgICAgICAgICAjDQo+ID4gICAgTW9kdWxlcy9faW8vdGV4dGlvLmMgICAgICAgICAg ICAgICAgICMNCj4gPiAtICBNb2R1bGVzL2F0ZXhpdG1vZHVsZS5jCSAgICAgICAjDQo+ID4gKyAg TW9kdWxlcy9hdGV4aXRtb2R1bGUuYyAgICAgICAgICAgICAgICMNCj4gPg0KPiA+ICAjTW9kdWxl cy9jamtjb2RlY3MNCj4gPiAgICBNb2R1bGVzL2Nqa2NvZGVjcy9tdWx0aWJ5dGVjb2RlYy5jICAg Iw0KPiA+IEBAIC0yNTEsMjQgKzI1MSwyNiBAQCBNb2R1bGVzL3psaWINCj4gPiAgICBNb2R1bGVz L3psaWIvenV0aWwuYyAgICAgICAgICAgICAgICAgIw0KPiA+DQo+ID4gICNNb2R1bGVzL2N0eXBl cw0KPiA+IC0gIFB5TW9kLSQoUFlUSE9OX1ZFUlNJT04pL01vZHVsZXMvX2N0eXBlcy9fY3R5cGVz LmMgICAgfCBNU0ZUICAgICAgICAgICMNCj4gPiAtICBNb2R1bGVzL19jdHlwZXMvc3RnZGljdC5j ICAgICAgICAgICB8IE1TRlQgICAjDQo+ID4gLSAgTW9kdWxlcy9fY3R5cGVzL2xpYmZmaV9tc3Zj L3ByZXBfY2lmLmMgIHwgTVNGVCMNCj4gPiAtICBQeU1vZC0kKFBZVEhPTl9WRVJTSU9OKS9Nb2R1 bGVzL19jdHlwZXMvbWFsbG9jX2Nsb3N1cmUuYyAgIHwgTVNGVCAgICAjDQo+ID4gLSAgUHlNb2Qt JChQWVRIT05fVkVSU0lPTikvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaV9tc3ZjL2ZmaS5jICB8IE1T RlQgICAgICMNCj4gPiAtICBNb2R1bGVzL19jdHlwZXMvY2ZpZWxkLmMgICAgfCBNU0ZUICAgICAg ICAgICAjDQo+ID4gLSAgUHlNb2QtJChQWVRIT05fVkVSU0lPTikvTW9kdWxlcy9fY3R5cGVzL2Nh bGxwcm9jLmMgIHwgTVNGVCAgICAgICAgICAgIw0KPiA+IC0gIE1vZHVsZXMvX2N0eXBlcy9jYWxs YmFja3MuYyAgICAgICAgfCBNU0ZUICAgICMNCj4gPiArICBQeU1vZC0kKFBZVEhPTl9WRVJTSU9O KS9Nb2R1bGVzL19jdHlwZXMvX2N0eXBlcy5jICAgIHwgTVNGVCAgICAgICAgICAjDQo+ID4gKyAg TW9kdWxlcy9fY3R5cGVzL3N0Z2RpY3QuYyAgICAgICAgICAgfCBNU0ZUICAgIw0KPiA+ICsgIE1v ZHVsZXMvX2N0eXBlcy9saWJmZmlfbXN2Yy9wcmVwX2NpZi5jICB8IE1TRlQjDQo+ID4gKyAgUHlN b2QtJChQWVRIT05fVkVSU0lPTikvTW9kdWxlcy9fY3R5cGVzL21hbGxvY19jbG9zdXJlLmMgICB8 IE1TRlQgICAgIw0KPiA+ICsgIFB5TW9kLSQoUFlUSE9OX1ZFUlNJT04pL01vZHVsZXMvX2N0eXBl cy9saWJmZmlfbXN2Yy9mZmkuYyAgfCBNU0ZUICAgICAjDQo+ID4gKyAgTW9kdWxlcy9fY3R5cGVz L2NmaWVsZC5jICAgIHwgTVNGVCAgICAgICAgICAgIw0KPiA+ICsgIFB5TW9kLSQoUFlUSE9OX1ZF UlNJT04pL01vZHVsZXMvX2N0eXBlcy9jYWxscHJvYy5jICB8IE1TRlQgICAgICAgICAgICMNCj4g PiArICBNb2R1bGVzL19jdHlwZXMvY2FsbGJhY2tzLmMgICAgICAgIHwgTVNGVCAgICAjDQo+ID4N Cj4gPiAgW1NvdXJjZXMuSUEzMl0NCj4gPiAtICBNb2R1bGVzL19jdHlwZXMvbGliZmZpX21zdmMv d2luMzIuYyAgfCBNU0ZUICMNCj4gPiArICBNb2R1bGVzL19jdHlwZXMvbGliZmZpX21zdmMvd2lu MzIuYyAgfCBNU0ZUICMNCj4gPiArICBQeU1vZC0kKFBZVEhPTl9WRVJTSU9OKS9Nb2R1bGVzL2Nw dV9pYTMyLmFzbSB8IE1TRlQgIw0KPiA+DQo+ID4gIFtTb3VyY2VzLlg2NF0NCj4gPiAtICBNb2R1 bGVzL19jdHlwZXMvbGliZmZpX21zdmMvd2luNjQuYXNtICB8IE1TRlQgIw0KPiA+ICsgIE1vZHVs ZXMvX2N0eXBlcy9saWJmZmlfbXN2Yy93aW42NC5hc20gIHwgTVNGVCAjDQo+ID4gKyAgUHlNb2Qt JChQWVRIT05fVkVSU0lPTikvTW9kdWxlcy9jcHUuYXNtIHwgTVNGVCAjDQo+ID4NCj4gPiAgW0J1 aWxkT3B0aW9uc10NCj4gPiAgICBNU0ZUOipfKl8qX0NDX0ZMQUdTID0gL0dMLSAvT2ktIC93ZDQw MTggL3dkNDA1NCAvd2Q0MDU1IC93ZDQxMDEgL3dkNDEzMSAvd2Q0MTUyIC93ZDQyMDQgL3dkNDIx MCAvd2Q0MjQ0IC93ZDQyNjcNCj4gL3dkNDMwNQ0KPiA+IC93ZDQzMTAgL3dkNDM4OSAvd2Q0NzAx IC93ZDQ3MDIgL3dkNDcwNiAvd2Q0NDU2IC93ZDQzMTIgL3dkNDQ1NyAvd2Q0NDU5IC93ZDQ0NzQg L3dkNDQ3Ng0KPiA+IC9JJChXT1JLU1BBQ0UpXEFwcFBrZ1xBcHBsaWNhdGlvbnNcUHl0aG9uXFB5 dGhvbi0zLjYuOFxJbmNsdWRlIC9ESEFWRV9NRU1NT1ZFIC9EVVNFX1BZRVhQQVRfQ0FQSSAvRFhN TF9TVEFUSUMgLUQgVUVGSQ0KPiAvV1gtDQo+ID4gL0RYTUxfUE9PUl9FTlRST1BZIC9EVUVGSV9D X1NPVVJDRQ0KPiA+IC0gIEdDQzoqXypfKl9DQ19GTEFHUyA9IC1Xbm8tdW51c2VkLWZ1bmN0aW9u IC1Xbm8tZm9ybWF0IC1Xbm8tZXJyb3IgLWZuby1zdHJpY3QtYWxpYXNpbmcgLQ0KPiA+IEkkKFdP UktTUEFDRSkvQXBwUGtnL0FwcGxpY2F0aW9ucy9QeXRob24vUHl0aG9uLTMuNi44L0luY2x1ZGUg LURIQVZFX01FTU1PVkUgLURVU0VfUFlFWFBBVF9DQVBJIC1EWE1MX1NUQVRJQyAtDQo+ID4gRFhN TF9QT09SX0VOVFJPUFkNCj4gPiArICBHQ0M6Kl8qXypfQ0NfRkxBR1MgPSAtV25vLXVudXNlZC1m dW5jdGlvbiAtV25vLWZvcm1hdCAtV25vLWVycm9yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC0NCj4g PiBJJChXT1JLU1BBQ0UpL0FwcFBrZy9BcHBsaWNhdGlvbnMvUHl0aG9uL1B5dGhvbi0zLjYuOC9J bmNsdWRlIC1ESEFWRV9NRU1NT1ZFIC1EVVNFX1BZRVhQQVRfQ0FQSSAtRFhNTF9TVEFUSUMgLQ0K PiA+IERYTUxfUE9PUl9FTlRST1BZDQo+ID4NCj4gPiAgW0J1aWxkT3B0aW9ucy5JQTMyXQ0KPiA+ ICAgIE1TRlQ6Kl8qXypfQ0NfRkxBR1MgPSAvRFVFRklfTVNWQ18zMg0KPiA+IC0tDQo+ID4gMi4z My4wLndpbmRvd3MuMQ0KDQo=