Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0E6AEC61DA4 for ; Thu, 2 Feb 2023 18:16:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229684AbjBBSQc (ORCPT ); Thu, 2 Feb 2023 13:16:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54266 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229667AbjBBSQb (ORCPT ); Thu, 2 Feb 2023 13:16:31 -0500 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2114.outbound.protection.outlook.com [40.107.243.114]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EF0F451C77 for ; Thu, 2 Feb 2023 10:16:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W6AFZ9YartTIQYovrDDSuY0y4tojsxeNHCFK2zQeqLOyRcEoxREh51cy3PUYFjunmykRHE1x0PIM1fBO0ceRsr+weHbrIrCM2svZ6SftRfsvgbQt89DLkIzvC+nPmX1V+Pg2i691E3dU+QnvFxAWjvk9EksYea9ONiIzwP/tKE+65o2QUp+dGV9+7BbjWWA3XpYo8z73n/ncRrz2Z7yZSKYjfMAMZ7tez7tnAs51dkC0Z2i1SlM7Pk2HzPHiKNxhB1nRfGUfpVaBim++/he9/ii1XsxkyueSwdbTbxy1OnUI2/hw1KajcEwA5THfiXYq9CwsgBO9Tnmcf8bR7HlyQQ== 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=TZF+VlFxmuy0rqYrXYOymS4qWbGmZJdSioyTC8PmPGw=; b=Gv7GOOhAdHTi7DETpRwHMRSAFg2j8webAMYJTXda5YbYn7aF21hFR9aLszTjpQKj5azntq1PJzE4APTk0wMxYZjh3zBRwFrBykWz/ETgEiIhfQAHZ2zcc9h2nXW2vevc4DgzAzkEeMfIC6pnyGRPAlGImrxJ2QzZ5f3tXRESzEYIMcQxcxi4TWfrjs6KEeHH4bAltY8kT71srLnOkc1hQAHqVbzP7IURm+dcTwZhT6evvXmLvYiaHNTvlzdoXEl1RrKrHWCTZPPxy5JmwVDo/n+i4XFy7oBl6+FRZRbnuVFA6Vr5HNYaAQ0mFWTGHj6jYXcuZdT4Q5SuP+ii7mGMOw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=boatrocker.com; dmarc=pass action=none header.from=boatrocker.com; dkim=pass header.d=boatrocker.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=boatrocker.onmicrosoft.com; s=selector2-boatrocker-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TZF+VlFxmuy0rqYrXYOymS4qWbGmZJdSioyTC8PmPGw=; b=WvePmFE4CzpQFHOraAw9e5rsYHN5En03f8xdLOv87UjEPsn+KklrctZ4drcW5lKfQVAc9zTH4MYPQfnKJ02QjgroK3/TGrqgxcElv78J7TIm1kl0f65i4NMllRUHws0xvRGD2Rb6AVnfa85CJ2VG9zpzt+16HhlvyqwV1wQLC54= Received: from YQBPR01MB10724.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:69::7) by YQBPR0101MB6039.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:36::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.25; Thu, 2 Feb 2023 18:16:25 +0000 Received: from YQBPR01MB10724.CANPRD01.PROD.OUTLOOK.COM ([fe80::7303:f215:657e:1643]) by YQBPR01MB10724.CANPRD01.PROD.OUTLOOK.COM ([fe80::7303:f215:657e:1643%4]) with mapi id 15.20.6064.028; Thu, 2 Feb 2023 18:16:25 +0000 From: Andrew Klaassen To: Jeff Layton , "linux-nfs@vger.kernel.org" Subject: RE: Trying to reduce NFSv4 timeouts to a few seconds on an established connection Thread-Topic: Trying to reduce NFSv4 timeouts to a few seconds on an established connection Thread-Index: AdkvR33g3mzLGSb7R/abGwkCKolj9QCUyz5AAA3zOxAAIFt1AACi9rVAAAFExoAAAB8OIAABI44AAJGeUGA= Date: Thu, 2 Feb 2023 18:16:25 +0000 Message-ID: References: <654e3b7d15992d191b2b2338483f29aec8b10ee1.camel@kernel.org> <3c02bd2df703a68093db057c51086bbf767ffeb1.camel@kernel.org> <936efa478e786be19cb9715eba1941ebc4f94a1b.camel@kernel.org> In-Reply-To: <936efa478e786be19cb9715eba1941ebc4f94a1b.camel@kernel.org> Accept-Language: en-US Content-Language: 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=boatrocker.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: YQBPR01MB10724:EE_|YQBPR0101MB6039:EE_ x-ms-office365-filtering-correlation-id: 1b3d425c-0951-4614-d0af-08db054998aa x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:YQBPR01MB10724.CANPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230025)(366004)(396003)(346002)(39850400004)(136003)(376002)(451199018)(33656002)(8676002)(478600001)(76116006)(66556008)(66446008)(64756008)(66476007)(66946007)(38070700005)(9686003)(55016003)(122000001)(71200400001)(316002)(7696005)(38100700002)(110136005)(83380400001)(86362001)(55236004)(6506007)(26005)(186003)(2906002)(30864003)(44832011)(5660300002)(41300700001)(8936002)(52536014)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: yFSEDI0sb0Mm3dhgFULzK3PQt8h/sGEpnercCB442BLGMxjCkbwCh8w/lAJ6uS4TBNXUwaiFES6UFAVLCQ55kUykFXSNEGzAAhW83pD7NHarcsi4niurO/6XpXek8Hp2b4HFUAJksrwoByih7Yj7SYtPk8zCmjVx8mSmM83wAcPQRwrSxVZ3l3ahdGyn+TqC8FIkmQnsfeOHj1jJUCd6zk7kA9x57dOJrfqLyiJpMF0RLZYVZ2Cf9GLwGcqymwsiAzAhde2G+VoVIUZUpIPptiV46pJSbMlqwhbrOPN3FyzdAEd4iV1wi3xFfcGTQ1QXtdFyfQT1HqNewGaU9uZ4OdpP1erGXB/dYkfvLJB4l2s0QZJVTAQh4QsQZDQmmBUMa+FidOIV2dwOknenMdfib3sij1P64Fk57R7P10u8CCAM5ZnryCg845QC4Tt8N66xY8uufHBXRtqfkiReSDRfX90m4wp3JKfBaHqFGTgN2mkUcej+O9ARCW/6Rt2TDzLTu5lEqW4wKNW3ZLC5GLwctPLmOJilyCCBVaoK2EsIPKdQJwaQLXjHc7gg4NSWW8xg0Y1Q6oLWwHQq6MNNLtYtLdwRNfXLPWnvJ+AAGcLvF1PISSMjH8HeEzW6H0wK9mkLtljkMij3I+1NAmJkGOtY0ZJqBRsQQ+2oQIeGg+e1lNIagiEVMzOAIFH/d8qXpFk/dOrt8LTRbUhcB4K1NQdrDw== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WG85Z2V2c2lZbnhycG1WYXN3SUx1RWxobnJ3Nno5UnRJVXBkNjBOT1V0QjR6?= =?utf-8?B?eGo0dkpjZ2EzdE54MEVwOXc4bG9xZzdVL1pFbWZpYnNOWTQwMUxDUHRFS1Y4?= =?utf-8?B?NTFEbkJQdS84SWxwdzdjZ3ptQ004OUloV1NCb3JHYnFWdjZnNzFFSnViY20z?= =?utf-8?B?RFU3RDl1Z0JwTk5pRDZHUHBmT3d4ZGI5aTYwZTdnT0pYQTBCclB3QVNRcEdG?= =?utf-8?B?Z0JKZ0RtSHc2TlVqb3NLQTVvMnI0Q1d6WFE3N0Zrd3NRSDhsUm5kZXdYOUFW?= =?utf-8?B?M1VORE5jMHJXMGp2QjllT2JWZm43UzRqTktEQnFlcW9oZnEzSS9LMWs5K3l1?= =?utf-8?B?eExDaEdaVXFrU05jL05OY1lhaHBWY0pjNmUyRnk0VG5nWFplY3pLaktqTHJ5?= =?utf-8?B?cThjWlM2S0J6d0VyNXAvd2xmQ0tGZUxPbU84VjZKK1FQSGZTT0NnZ08vOGhZ?= =?utf-8?B?eXpneXF6WldCNjlaZjQ0dXBwWmxiU3N4ZUY0UTc1WGp2WkhUTmYwdXlnM1Vp?= =?utf-8?B?ZHczS0JkVWN1azBrQmtkcjNWeGF0ZUlxMnkrcVM4alVneTB6NHNEeHlUY2Fn?= =?utf-8?B?bnQ4TXQ0dm5IcWZJOWdFdllONnorRWEzR1lVL0VKUWo5ZUxsSUNyZkh5b2N0?= =?utf-8?B?SEthb2lrZnZBT29XNVBNaGtmcjlVTXoycm40NXNpeGV3ME04Y1JlSjE2S0RT?= =?utf-8?B?K1J3aEFzaVZqUkpGQW1CR3JVRkhGS0xXWHJaSm5qMXBHUEJaeW5aSklvZGNJ?= =?utf-8?B?ekJjbFJHSFNCNDMyT3cwVS9XRGdGUzNLLytDUVlPQ0oyRm5MRFhhczBhWXY1?= =?utf-8?B?UGRTRHFyY0hFK2k3VTZvRWRzRHNUVnlrMjN3czhrMk5DTC9lZXdFSzdXYUFO?= =?utf-8?B?Q0dleW5DTWtLNnEzZGJuSnhjWXhURnp1NVVDY3k0S0tUSWNSNlREbDV1YVR4?= =?utf-8?B?dzRScmlBS0Y4VnJJcmpYSVhSeUtGcStoVmYvMHRnTWVLeUs1V2RlN2NDRHJk?= =?utf-8?B?TzVSblUwc1h1RVh3a2gxUEZFMy9DWmF3T1ViZXoreXJZT0hYSHpleFFiUVRG?= =?utf-8?B?bFYvK1AzVDBtS3RxWGxvbVVmWkg2ai9ob012RTdFZytQdVljTlN3SDhiRElT?= =?utf-8?B?TUxiOWs1VE16djREaC9JSlcrK3U4TmIzeEN1Q2N5SjlwVUFPUHlNanpxWlBN?= =?utf-8?B?L1hYMEdHSlBpMk5GYmdSalg3Y3FuRGhWV0pyMDdiSDRPMXBaM2YzbDl2bVpR?= =?utf-8?B?ajBRdWdEVEl6ekJPeGhHQlJGSDE1YlJ1MUhzVjlBZTZFSkZyc0Y3c1JxWWcz?= =?utf-8?B?NnNXcWtLSGZTNGpQcGplQnVESThGSUNFdGVtTTZ6N2pvTC9NdUlyMStESlVI?= =?utf-8?B?bHhvVnpWWTlDYzdFRXVCaUI0Z2RrZlZrb3ZBWHczc1RvY0tQNEVtQWNndDdz?= =?utf-8?B?WWpocmpjU0U2TGtsWmg3V2VDUmxYenllcXdZSHNGaHJEZnJ2Ukdlbjd2SkJi?= =?utf-8?B?Wm9kZG9PcUJ3aE53SEs0dGI4VzBrSWZCNXVvNjV6VTVTOHJTVDdpZnZKbXda?= =?utf-8?B?S1NmNWVsR2dVQThWVzFxSG93NkhPU1U4MDZGZm9pdTNmSWJtSWJBbXFDT21u?= =?utf-8?B?VEZMd3U4WkRmanNvWjg4ZVR6VTRhVkN0YVlINEVwemVEUGVHUlZKTDl6dzhu?= =?utf-8?B?MUxNYkdZWDQ2TVhSWi9Lc3VUbFJaUGF0OEloT0srYzVySDJoblBDb0h6SVlP?= =?utf-8?B?dmVIN1BzVmVSMGNRTmRaSHBxV3hBVGxvOFVyNTQzd3J4dlluekl5d3kzZUQz?= =?utf-8?B?NlM3MzVLa2RuVGlHcTJGN29HS1M4clBOalpmeVhzZG9hRFBzYVVkU0F0ZFdV?= =?utf-8?B?N0ZZN0d6b3E3WDRyanhZODNFSXlNNWMzYmxFVVBhVktUTTY5YjVrVUlLR0hC?= =?utf-8?B?ZGIvMmYraERReE1WMGJlZjYyeEJpaVc1Vzcvenc1Zkx1UVhwelhQN29HQ3Ez?= =?utf-8?B?VFNSaTJ0R1NqQVRjYjVLWktxOHZOOUs1L0RiWU83REEzQVhJQ213a1JVelY4?= =?utf-8?B?eENwRXJpMEV3MXBCN3VaaTQzSG9iNjIzaGhTaHNBNXZ6RDYzUVFGd2tJRnlo?= =?utf-8?B?UStOekNxSnlVR3MvYWNqK3FCTldLUGRweXd1b28ra24rWWFlVm5OUGYvVCtn?= =?utf-8?B?RGc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: boatrocker.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: YQBPR01MB10724.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 1b3d425c-0951-4614-d0af-08db054998aa X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2023 18:16:25.4515 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fd92a966-cd05-4664-965e-b69e7529781a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: A+RGCTJ+p214jAZM++I0+Z+VwPTL9d3WH3O3i8uDVmF6uOMj7tBQinvGu9leQbdRc7Nt2SEHamg9KcLB5eyDKw1RXVl/97lff/HEk05qPDo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB6039 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org PiBGcm9tOiBKZWZmIExheXRvbiA8amxheXRvbkBrZXJuZWwub3JnPg0KPiBTZW50OiBNb25kYXks IEphbnVhcnkgMzAsIDIwMjMgMzozMiBQTQ0KPiANCj4gT24gTW9uLCAyMDIzLTAxLTMwIGF0IDIw OjAzICswMDAwLCBBbmRyZXcgS2xhYXNzZW4gd3JvdGU6DQo+ID4gPiBGcm9tOiBKZWZmIExheXRv biA8amxheXRvbkBrZXJuZWwub3JnPg0KPiA+ID4gU2VudDogTW9uZGF5LCBKYW51YXJ5IDMwLCAy MDIzIDI6NTYgUE0NCj4gPiA+DQo+ID4gPiBPbiBNb24sIDIwMjMtMDEtMzAgYXQgMTk6MzMgKzAw MDAsIEFuZHJldyBLbGFhc3NlbiB3cm90ZToNCj4gPiA+ID4gPiBGcm9tOiBKZWZmIExheXRvbiA8 amxheXRvbkBrZXJuZWwub3JnPg0KPiA+ID4gPiA+IFNlbnQ6IEZyaWRheSwgSmFudWFyeSAyNywg MjAyMyA4OjMzIEFNDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBPbiBUaHUsIDIwMjMtMDEtMjYgYXQg MjI6MDggKzAwMDAsIEFuZHJldyBLbGFhc3NlbiB3cm90ZToNCj4gPiA+ID4gPiA+ID4gRnJvbTog QW5kcmV3IEtsYWFzc2VuIDxhbmRyZXcua2xhYXNzZW5AYm9hdHJvY2tlci5jb20+DQo+ID4gPiA+ ID4gPiA+IFNlbnQ6IFRodXJzZGF5LCBKYW51YXJ5IDI2LCAyMDIzIDEwOjMyIEFNDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gRnJvbTogQW5kcmV3IEtsYWFzc2VuIDxhbmRyZXcua2xh YXNzZW5AYm9hdHJvY2tlci5jb20+DQo+ID4gPiA+ID4gPiA+ID4gU2VudDogTW9uZGF5LCBKYW51 YXJ5IDIzLCAyMDIzIDExOjMxIEFNDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBI ZWxsbywNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRoZXJlJ3MgYSBzcGVjaWZp YyBORlN2NCBtb3VudCBvbiBhIHNwZWNpZmljIG1hY2hpbmUgd2hpY2gNCj4gPiA+ID4gPiA+ID4g PiB3ZSdkIGxpa2UgdG8gdGltZW91dCBhbmQgcmV0dXJuIGFuIGVycm9yIGFmdGVyIGEgZmV3DQo+ ID4gPiA+ID4gPiA+ID4gc2Vjb25kcyBpZiB0aGUgc2VydmVyIGdvZXMgYXdheS4NCj4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEkndmUgY29uZmlybWVkIHRoZSBmb2xsb3dpbmcgb24g dHdvIGRpZmZlcmVudCBrZXJuZWxzLA0KPiA+ID4gPiA+ID4gPiA+IDQuMTguMC0NCj4gPiA+ID4g PiA+ID4gPiAzNDguMTIuMi5lbDhfNS54ODZfNjQgYW5kIDYuMS43LTIwMC5mYzM3Lng4Nl82NC4N Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEkndmUgYmVlbiBhYmxlIHRvIGdldCBi b3RoIGF1dG9mcyBhbmQgdGhlIG1vdW50IGNvbW1hbmQgdG8NCj4gPiA+ID4gPiA+ID4gPiBjb29w ZXJhdGUsIHNvIHRoYXQgdGhlIG1vdW50IGF0dGVtcHQgZmFpbHMgYWZ0ZXIgYW4NCj4gPiA+ID4g PiA+ID4gPiBhcmJpdHJhcnkgbnVtYmVyIG9mIHNlY29uZHMuDQo+ID4gPiA+ID4gPiA+ID4gVGhp cyBtb3VudCBjb21tYW5kLCBmb3IgZXhhbXBsZSwgd2lsbCBmYWlsIGFmdGVyIDYNCj4gPiA+ID4g PiA+ID4gPiBzZWNvbmRzLCBhcyBleHBlY3RlZCBiYXNlZCBvbiB0aGUNCj4gPiA+ID4gPiA+ID4g PiB0aW1lbz0yMCxyZXRyYW5zPTIscmV0cnk9MCBvcHRpb25zOg0KPiA+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ID4gJCB0aW1lIHN1ZG8gbW91bnQgLXQgbmZzNCAtbw0KPiA+ID4gPiA+ID4g PiA+IHJ3LHJlbGF0aW1lLHN5bmMsdmVycz00LjIscnNpemU9MTMxMDcyLHdzaXplPTEzMTA3Mixu YW1sZW4NCj4gPiA+ID4gPiA+ID4gPiA9MjU1DQo+ID4gPiA+ID4gPiA+ID4gLGFjcg0KPiA+ID4g PiA+ID4gPiA+IGVnbWkNCj4gPiA+ID4gPiA+ID4gPiBuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gPTAsYWNyZWdtYXg9MCxhY2Rpcm1pbj0wLGFjZGlybWF4PTAsc29mdCxub2FjLHBy b3RvPXRjcCx0aW1lDQo+ID4gPiA+ID4gPiA+IG89MjANCj4gPiA+ID4gPiA+ID4gLHJldA0KPiA+ ID4gPiA+ID4gPiByYQ0KPiA+ID4gPiA+ID4gPiA+IG4gcz0yLHJldHJ5PTAsc2VjPXN5cyB0aG9y MDQ6L21udC90aG9yZnMwNCAgL21udC90aG9yMDQNCj4gPiA+ID4gPiA+ID4gPiBtb3VudC5uZnM0 OiBDb25uZWN0aW9uIHRpbWVkIG91dA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g cmVhbCAgICAwbTYuMDg0cw0KPiA+ID4gPiA+ID4gPiA+IHVzZXIgICAgMG0wLjAwN3MNCj4gPiA+ ID4gPiA+ID4gPiBzeXMgICAgIDBtMC4wMTVzDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiBIb3dldmVyLCBpZiB0aGUgc2hhcmUgaXMgYWxyZWFkeSBtb3VudGVkIGFuZCB0aGUgc2Vy dmVyDQo+ID4gPiA+ID4gPiA+ID4gZ29lcyBhd2F5LCB0aGUgdGltZW91dCBpcyBhbHdheXMgMiBt aW51dGVzIHBsdXMgdGhlIHRpbWUgSQ0KPiA+ID4gPiA+ID4gPiA+IGV4cGVjdCBiYXNlZCBvbiB0 aW1lbyBhbmQgcmV0cmFucy4gIEluIHRoaXMgY2FzZSwgMg0KPiA+ID4gPiA+ID4gPiA+IG1pbnV0 ZXMgYW5kIDYNCj4gPiA+ID4gPiA+ID4gPiBzZWNvbmRzOg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gJCB0aW1lIGxzIC9tbnQvdGhvcjA0DQo+ID4gPiA+ID4gPiA+ID4gbHM6IGNh bm5vdCBhY2Nlc3MgJy9tbnQvdGhvcjA0JzogQ29ubmVjdGlvbiB0aW1lZCBvdXQNCj4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IHJlYWwgICAgMm02LjAyNXMNCj4gPiA+ID4gPiA+ID4g PiB1c2VyICAgIDBtMC4wMDNzDQo+ID4gPiA+ID4gPiA+ID4gc3lzICAgICAwbTAuMDAwcw0KPiA+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gV2F0Y2hpbmcgdGhlIG91dGdvaW5nIHBhY2tl dHMgaW4gdGhlIHNlY29uZCBjYXNlLCB0aGUNCj4gPiA+ID4gPiA+ID4gPiBwYXR0ZXJuIGlzIGFs d2F5cyB0aGUNCj4gPiA+ID4gPiA+ID4gPiBzYW1lOg0KPiA+ID4gPiA+ID4gPiA+ICAtIDAuMiBz ZWNvbmRzIGJldHdlZW4gdGhlIGZpcnN0IHR3bywgdGhlbiBkb3VibGluZyBlYWNoDQo+ID4gPiA+ ID4gPiA+ID4gdGltZSB1bnRpbCB0aGUgdHdvIG1pbnV0ZSBtYXJrIGlzIGV4Y2VlZGVkIChzbyB0 aGUgbGFzdA0KPiA+ID4gPiA+ID4gPiA+IE5GUyBwYWNrZXQsIHdoaWNoIGlzIGFsd2F5cyB0aGUg MTF0aCBwYWNrZXQsIGlzIHNlbnQNCj4gPiA+ID4gPiA+ID4gPiBhcm91bmQgMTo0NSBhZnRlciB0 aGUgZmlyc3QpLg0KPiA+ID4gPiA+ID4gPiA+ICAtIFRoZW4gc29tZSBnZW5lcmljIHBhY2tldHMg dGhhdCBzdGFydCBleGFjdGx5LWlzaCBvbiB0aGUNCj4gPiA+ID4gPiA+ID4gPiB0d28gbWludXRl IG1hcmssIDEgc2Vjb25kIGJldHdlZW4gdGhlIGZpcnN0IHR3bywgdGhlbg0KPiA+ID4gPiA+ID4g PiA+IGRvdWJsaW5nIGVhY2ggdGltZS4NCj4gPiA+ID4gPiA+ID4gPiAoQnkNCj4gPiA+ID4gPiA+ ID4gPiB0aGlzIHRpbWUgdGhlIE5GUyBjb21tYW5kIGhhcyBnaXZlbiB1cC4pDQo+ID4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAxMToxMDoyMS44OTgzMDUgSVAgMTAuMzAuMTMuMi45MTYg PiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdzDQo+ID4gPiA+ID4gPiA+ID4gW1AuXSwgc2VxIDE0NDUy OjE0NjUyLCBhY2sgMTg1NjEsIHdpbiA1MDEsIG9wdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiBbbm9w LG5vcCxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA4MzQ4ODk0ODMgZWNyIDE1ODk3NjkyMDNdLCBs ZW5ndGggMjAwOiBORlMgcmVxdWVzdCB4aWQNCj4gPiA+ID4gPiA+ID4gPiAzNjE0OTA0MjU2DQo+ ID4gPiA+ID4gPiA+ID4gMTk2IGdldGF0dHIgZmgNCj4gPiA+ID4gPiA+ID4gPiAwLDIvNTMNCj4g PiA+ID4gPiA+ID4gPiAxMToxMDoyMi4xMDUxODkgSVAgMTAuMzAuMTMuMi45MTYgPiAxMC4zMS4z LjEzLjIwNDk6IEZsYWdzDQo+ID4gPiA+ID4gPiA+ID4gW1AuXSwgc2VxIDE0NDUyOjE0NjUyLCBh Y2sgMTg1NjEsIHdpbiA1MDEsIG9wdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiBbbm9wLG5vcCxUUyB2 YWwNCj4gPiA+ID4gPiA+ID4gPiA4MzQ4ODk2OTAgZWNyIDE1ODk3NjkyMDNdLCBsZW5ndGggMjAw OiBORlMgcmVxdWVzdCB4aWQNCj4gPiA+ID4gPiA+ID4gPiAzNjE0OTA0MjU2DQo+ID4gPiA+ID4g PiA+ID4gMTk2IGdldGF0dHIgZmgNCj4gPiA+ID4gPiA+ID4gPiAwLDIvNTMNCj4gPiA+ID4gPiA+ ID4gPiAxMToxMDoyMi4zMTMyOTAgSVAgMTAuMzAuMTMuMi45MTYgPiAxMC4zMS4zLjEzLjIwNDk6 IEZsYWdzDQo+ID4gPiA+ID4gPiA+ID4gW1AuXSwgc2VxIDE0NDUyOjE0NjUyLCBhY2sgMTg1NjEs IHdpbiA1MDEsIG9wdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiBbbm9wLG5vcCxUUyB2YWwNCj4gPiA+ ID4gPiA+ID4gPiA4MzQ4ODk4OTggZWNyIDE1ODk3NjkyMDNdLCBsZW5ndGggMjAwOiBORlMgcmVx dWVzdCB4aWQNCj4gPiA+ID4gPiA+ID4gPiAzNjE0OTA0MjU2DQo+ID4gPiA+ID4gPiA+ID4gMTk2 IGdldGF0dHIgZmgNCj4gPiA+ID4gPiA+ID4gPiAwLDIvNTMNCj4gPiA+ID4gPiA+ID4gPiAxMTox MDoyMi43MjEyNjkgSVAgMTAuMzAuMTMuMi45MTYgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdzDQo+ ID4gPiA+ID4gPiA+ID4gW1AuXSwgc2VxIDE0NDUyOjE0NjUyLCBhY2sgMTg1NjEsIHdpbiA1MDEs IG9wdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiBbbm9wLG5vcCxUUyB2YWwNCj4gPiA+ID4gPiA+ID4g PiA4MzQ4OTAzMDYgZWNyIDE1ODk3NjkyMDNdLCBsZW5ndGggMjAwOiBORlMgcmVxdWVzdCB4aWQN Cj4gPiA+ID4gPiA+ID4gPiAzNjE0OTA0MjU2DQo+ID4gPiA+ID4gPiA+ID4gMTk2IGdldGF0dHIg ZmgNCj4gPiA+ID4gPiA+ID4gPiAwLDIvNTMNCj4gPiA+ID4gPiA+ID4gPiAxMToxMDoyMy41Njkx OTIgSVAgMTAuMzAuMTMuMi45MTYgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdzDQo+ID4gPiA+ID4g PiA+ID4gW1AuXSwgc2VxIDE0NDUyOjE0NjUyLCBhY2sgMTg1NjEsIHdpbiA1MDEsIG9wdGlvbnMN Cj4gPiA+ID4gPiA+ID4gPiBbbm9wLG5vcCxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA4MzQ4OTEx NTQgZWNyIDE1ODk3NjkyMDNdLCBsZW5ndGggMjAwOiBORlMgcmVxdWVzdCB4aWQNCj4gPiA+ID4g PiA+ID4gPiAzNjE0OTA0MjU2DQo+ID4gPiA+ID4gPiA+ID4gMTk2IGdldGF0dHIgZmgNCj4gPiA+ ID4gPiA+ID4gPiAwLDIvNTMNCj4gPiA+ID4gPiA+ID4gPiAxMToxMDoyNS4yMzMyMTIgSVAgMTAu MzAuMTMuMi45MTYgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdzDQo+ID4gPiA+ID4gPiA+ID4gW1Au XSwgc2VxIDE0NDUyOjE0NjUyLCBhY2sgMTg1NjEsIHdpbiA1MDEsIG9wdGlvbnMNCj4gPiA+ID4g PiA+ID4gPiBbbm9wLG5vcCxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA4MzQ4OTI4MTggZWNyIDE1 ODk3NjkyMDNdLCBsZW5ndGggMjAwOiBORlMgcmVxdWVzdCB4aWQNCj4gPiA+ID4gPiA+ID4gPiAz NjE0OTA0MjU2DQo+ID4gPiA+ID4gPiA+ID4gMTk2IGdldGF0dHIgZmgNCj4gPiA+ID4gPiA+ID4g PiAwLDIvNTMNCj4gPiA+ID4gPiA+ID4gPiAxMToxMDoyOC40OTcyODIgSVAgMTAuMzAuMTMuMi45 MTYgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdzDQo+ID4gPiA+ID4gPiA+ID4gW1AuXSwgc2VxIDE0 NDUyOjE0NjUyLCBhY2sgMTg1NjEsIHdpbiA1MDEsIG9wdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiBb bm9wLG5vcCxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA4MzQ4OTYwODIgZWNyIDE1ODk3NjkyMDNd LCBsZW5ndGggMjAwOiBORlMgcmVxdWVzdCB4aWQNCj4gPiA+ID4gPiA+ID4gPiAzNjE0OTA0MjU2 DQo+ID4gPiA+ID4gPiA+ID4gMTk2IGdldGF0dHIgZmgNCj4gPiA+ID4gPiA+ID4gPiAwLDIvNTMN Cj4gPiA+ID4gPiA+ID4gPiAxMToxMDozNS4wMjUyMTkgSVAgMTAuMzAuMTMuMi45MTYgPiAxMC4z MS4zLjEzLjIwNDk6IEZsYWdzDQo+ID4gPiA+ID4gPiA+ID4gW1AuXSwgc2VxIDE0NDUyOjE0NjUy LCBhY2sgMTg1NjEsIHdpbiA1MDEsIG9wdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiBbbm9wLG5vcCxU UyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA4MzQ5MDI2MTAgZWNyIDE1ODk3NjkyMDNdLCBsZW5ndGgg MjAwOiBORlMgcmVxdWVzdCB4aWQNCj4gPiA+ID4gPiA+ID4gPiAzNjE0OTA0MjU2DQo+ID4gPiA+ ID4gPiA+ID4gMTk2IGdldGF0dHIgZmgNCj4gPiA+ID4gPiA+ID4gPiAwLDIvNTMNCj4gPiA+ID4g PiA+ID4gPiAxMToxMDo0OC4zMzcyMDEgSVAgMTAuMzAuMTMuMi45MTYgPiAxMC4zMS4zLjEzLjIw NDk6IEZsYWdzDQo+ID4gPiA+ID4gPiA+ID4gW1AuXSwgc2VxIDE0NDUyOjE0NjUyLCBhY2sgMTg1 NjEsIHdpbiA1MDEsIG9wdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiBbbm9wLG5vcCxUUyB2YWwNCj4g PiA+ID4gPiA+ID4gPiA4MzQ5MTU5MjIgZWNyIDE1ODk3NjkyMDNdLCBsZW5ndGggMjAwOiBORlMg cmVxdWVzdCB4aWQNCj4gPiA+ID4gPiA+ID4gPiAzNjE0OTA0MjU2DQo+ID4gPiA+ID4gPiA+ID4g MTk2IGdldGF0dHIgZmgNCj4gPiA+ID4gPiA+ID4gPiAwLDIvNTMNCj4gPiA+ID4gPiA+ID4gPiAx MToxMToxNC40NDkzMDMgSVAgMTAuMzAuMTMuMi45MTYgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdz DQo+ID4gPiA+ID4gPiA+ID4gW1AuXSwgc2VxIDE0NDUyOjE0NjUyLCBhY2sgMTg1NjEsIHdpbiA1 MDEsIG9wdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiBbbm9wLG5vcCxUUyB2YWwNCj4gPiA+ID4gPiA+ ID4gPiA4MzQ5NDIwMzQgZWNyIDE1ODk3NjkyMDNdLCBsZW5ndGggMjAwOiBORlMgcmVxdWVzdCB4 aWQNCj4gPiA+ID4gPiA+ID4gPiAzNjE0OTA0MjU2DQo+ID4gPiA+ID4gPiA+ID4gMTk2IGdldGF0 dHIgZmgNCj4gPiA+ID4gPiA+ID4gPiAwLDIvNTMNCj4gPiA+ID4gPiA+ID4gPiAxMToxMjowOC43 MjEyNTEgSVAgMTAuMzAuMTMuMi45MTYgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdzDQo+ID4gPiA+ ID4gPiA+ID4gW1AuXSwgc2VxIDE0NDUyOjE0NjUyLCBhY2sgMTg1NjEsIHdpbiA1MDEsIG9wdGlv bnMNCj4gPiA+ID4gPiA+ID4gPiBbbm9wLG5vcCxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA4MzQ5 OTYzMDYgZWNyIDE1ODk3NjkyMDNdLCBsZW5ndGggMjAwOiBORlMgcmVxdWVzdCB4aWQNCj4gPiA+ ID4gPiA+ID4gPiAzNjE0OTA0MjU2DQo+ID4gPiA+ID4gPiA+ID4gMTk2IGdldGF0dHIgZmgNCj4g PiA+ID4gPiA+ID4gPiAwLDIvNTMNCj4gPiA+ID4gPiA+ID4gPiAxMToxMjoyMi41NDUzOTQgSVAg MTAuMzAuMTMuMi45NDIgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdzDQo+ID4gPiA+ID4gPiA+ID4g W1NdLCBzZXEgMTM3NTI1Njk1MSwgd2luIDY0MjQwLCBvcHRpb25zIFttc3MNCj4gPiA+ID4gPiA+ ID4gPiAxNDYwLHNhY2tPSyxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA4MzUwMTAxMzAgZWNyIDAs bm9wLHdzY2FsZSA3XSwgbGVuZ3RoIDANCj4gPiA+ID4gPiA+ID4gPiAxMToxMjoyMy41NzAxOTkg SVAgMTAuMzAuMTMuMi45NDIgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdzDQo+ID4gPiA+ID4gPiA+ ID4gW1NdLCBzZXEgMTM3NTI1Njk1MSwgd2luIDY0MjQwLCBvcHRpb25zIFttc3MNCj4gPiA+ID4g PiA+ID4gPiAxNDYwLHNhY2tPSyxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA4MzUwMTExNTUgZWNy IDAsbm9wLHdzY2FsZSA3XSwgbGVuZ3RoIDANCj4gPiA+ID4gPiA+ID4gPiAxMToxMjoyNS42MTcy ODQgSVAgMTAuMzAuMTMuMi45NDIgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdzDQo+ID4gPiA+ID4g PiA+ID4gW1NdLCBzZXEgMTM3NTI1Njk1MSwgd2luIDY0MjQwLCBvcHRpb25zIFttc3MNCj4gPiA+ ID4gPiA+ID4gPiAxNDYwLHNhY2tPSyxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA4MzUwMTMyMDIg ZWNyIDAsbm9wLHdzY2FsZSA3XSwgbGVuZ3RoIDANCj4gPiA+ID4gPiA+ID4gPiAxMToxMjoyOS42 NDkyMTkgSVAgMTAuMzAuMTMuMi45NDIgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdzDQo+ID4gPiA+ ID4gPiA+ID4gW1NdLCBzZXEgMTM3NTI1Njk1MSwgd2luIDY0MjQwLCBvcHRpb25zIFttc3MNCj4g PiA+ID4gPiA+ID4gPiAxNDYwLHNhY2tPSyxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA4MzUwMTcy MzQgZWNyIDAsbm9wLHdzY2FsZSA3XSwgbGVuZ3RoIDANCj4gPiA+ID4gPiA+ID4gPiAxMToxMjoz Ny45MDUyNzQgSVAgMTAuMzAuMTMuMi45NDIgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdzDQo+ID4g PiA+ID4gPiA+ID4gW1NdLCBzZXEgMTM3NTI1Njk1MSwgd2luIDY0MjQwLCBvcHRpb25zIFttc3MN Cj4gPiA+ID4gPiA+ID4gPiAxNDYwLHNhY2tPSyxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA4MzUw MjU0OTAgZWNyIDAsbm9wLHdzY2FsZSA3XSwgbGVuZ3RoIDANCj4gPiA+ID4gPiA+ID4gPiAxMTox Mjo1NC4yODkyMTIgSVAgMTAuMzAuMTMuMi45NDIgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdzDQo+ ID4gPiA+ID4gPiA+ID4gW1NdLCBzZXEgMTM3NTI1Njk1MSwgd2luIDY0MjQwLCBvcHRpb25zIFtt c3MNCj4gPiA+ID4gPiA+ID4gPiAxNDYwLHNhY2tPSyxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA4 MzUwNDE4NzQgZWNyIDAsbm9wLHdzY2FsZSA3XSwgbGVuZ3RoIDANCj4gPiA+ID4gPiA+ID4gPiAx MToxMzoyNi41NDUzMDQgSVAgMTAuMzAuMTMuMi45NDIgPiAxMC4zMS4zLjEzLjIwNDk6IEZsYWdz DQo+ID4gPiA+ID4gPiA+ID4gW1NdLCBzZXEgMTM3NTI1Njk1MSwgd2luIDY0MjQwLCBvcHRpb25z IFttc3MNCj4gPiA+ID4gPiA+ID4gPiAxNDYwLHNhY2tPSyxUUyB2YWwNCj4gPiA+ID4gPiA+ID4g PiA4MzUwNzQxMzAgZWNyIDAsbm9wLHdzY2FsZSA3XSwgbGVuZ3RoIDANCj4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+IEkgdHJpZWQgY2hhbmdpbmcgdGNwX3JldHJpZXMyIGFzIHN1Z2dl c3RlZCBpbiBhbm90aGVyDQo+ID4gPiA+ID4gPiA+ID4gdGhyZWFkIGZyb20gdGhpcyBsaXN0Og0K PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gIyBlY2hvIDMgPiAvcHJvYy9zeXMvbmV0 L2lwdjQvdGNwX3JldHJpZXMyDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAuLi5i dXQgaXQgbWFkZSBubyBkaWZmZXJlbmNlIG9uIGVpdGhlciBrZXJuZWwuICBUaGUgMg0KPiA+ID4g PiA+ID4gPiA+IG1pbnV0ZSB0aW1lb3V0IGFsc28gZG9lc24ndCBzZWVtIHRvIG1hdGNoIHdpdGgg d2hhdCBJJ2QNCj4gPiA+ID4gPiA+ID4gPiBjYWxjdWxhdGUgZnJvbSB0aGUgaW5pdGlhbCB2YWx1 ZSBvZiB0Y3BfcmV0cmllczIsIHdoaWNoDQo+ID4gPiA+ID4gPiA+ID4gc2hvdWxkIGdpdmUgYSBt dWNoIGhpZ2hlciB0aW1lb3V0Lg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gVGhl IG9ubHkgY2x1ZSBJJ3ZlIGJlZW4gYWJsZSB0byBmaW5kIGlzIGluIHRoZSByZXRyeT1uDQo+ID4g PiA+ID4gPiA+ID4gZW50cnkgaW4gdGhlIE5GUw0KPiA+ID4gPiA+ID4gPiA+IG1hbnBhZ2U6DQo+ ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAiIEZvciBUQ1AgdGhlIGRlZmF1bHQgaXMg MyBtaW51dGVzLCBidXQgc3lzdGVtIFRDUA0KPiA+ID4gPiA+ID4gPiA+IGNvbm5lY3Rpb24gdGlt ZW91dHMgd2lsbCBzb21ldGltZXMgbGltaXQgdGhlIHRpbWVvdXQgb2YNCj4gPiA+ID4gPiA+ID4g PiBlYWNoIHJldHJhbnNtaXNzaW9uIHRvIGFyb3VuZA0KPiA+ID4gPiA+ID4gPiA+IDINCj4gPiA+ ID4gPiA+ID4gbWludXRlcy4iDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBXaGF0 IEknbSBub3QgYWJsZSB0byBtYWtlIHNlbnNlIG9mOg0KPiA+ID4gPiA+ID4gPiA+ICAtIFRoZSBy ZXRyeSBvcHRpb24gc2F5cyB0aGF0IGl0IGFwcGxpZXMgdG8gbW91bnQNCj4gPiA+ID4gPiA+ID4g PiBvcGVyYXRpb25zLCBub3QgcmVhZC93cml0ZSBvcGVyYXRpb25zLiAgSG93ZXZlciwgaW4gdGhp cw0KPiA+ID4gPiA+ID4gPiA+IGNhc2UgSSdtIHNlZWluZyB0aGUgMiBtaW51dGUgZGVsYXkgb24g cmVhZC93cml0ZQ0KPiA+ID4gPiA+ID4gPiA+IG9wZXJhdGlvbnMgYnV0ICpub3QqIG1vdW50IG9w ZXJhdGlvbnMuDQo+ID4gPiA+ID4gPiA+ID4gIC0gQSBjb3VwbGUgb2YgaG91cnMgb2Ygc2VhcmNo aW5nIGRpZG4ndCBsZWFkIG1lIHRvIGFueQ0KPiA+ID4gPiA+ID4gPiA+IGtlcm5lbCBzZXR0aW5n cyB0aGF0IHdvdWxkIHJlc3VsdCBpbiBhIDIgbWludXRlIHRpbWVvdXQuDQo+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiBEb2VzIGFueW9uZSBoYXZlIGFueSBjbHVlcyBhYm91dCBhKSB3 aGF0J3MgaGFwcGVuaW5nIGFuZA0KPiA+ID4gPiA+ID4gPiA+IGIpDQo+ID4gPiA+ID4gPiA+ID4g aG93IHRvIGdldCBvdXIgZGVzaXJlZCBiZWhhdmlvdXIgb2YgYmVpbmcgYWJsZSB0byBjb250cm9s DQo+ID4gPiA+ID4gPiA+ID4gYm90aCBtb3VudCBhbmQgcmVhZC93cml0ZSB0aW1lb3V0cyBkb3du IHRvIGEgZmV3IHNlY29uZHM/DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGFu a3MuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEkgdGhvdWdodCB0aGF0IGNoYW5naW5n IFRDUF9SVE9fTUFYIGluIGluY2x1ZGUvbmV0L3RjcC5oDQo+ID4gPiA+ID4gPiA+IGZyb20NCj4g PiA+ID4gPiA+ID4gMTIwIHRvDQo+ID4gPiA+ID4gPiA+IHNvbWV0aGluZyBzbWFsbGVyIGFuZCBy ZWNvbXBpbGluZyB0aGUga2VybmVsIHdvdWxkIGNoYW5nZQ0KPiA+ID4gPiA+ID4gPiB0aGUgMiBt aW51dGUgdGltZW91dCwgYnV0IGl0IGhhZCBubyBlZmZlY3QuICBJJ20gZ29pbmcgdG8NCj4gPiA+ ID4gPiA+ID4ga2VlcCBwb2tpbmcgdGhyb3VnaCB0aGUga2VybmVsIGNvZGUgdG8gc2VlIGlmIHRo ZXJlJ3MgYSBrbm9iDQo+ID4gPiA+ID4gPiA+IEkgY2FuIHR1cm4gdG8gY2hhbmdlIHRoZSAyIG1p bnV0ZSB0aW1lb3V0LCBzbyB0aGF0IEkgY2FuIGF0DQo+ID4gPiA+ID4gPiA+IGxlYXN0IHVuZGVy c3RhbmQgd2hlcmUgaXQncyBjb21pbmcgZnJvbS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gQW55IGhpbnRzIGFzIHRvIHdoZXJlIEkgc2hvdWxkIGJlIGxvb2tpbmc/DQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gSSBiZWxpZXZlIEkndmUgbWFkZSBzb21lIHByb2dyZXNzIHdpdGggdGhp cyB0b2RheToNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgLSBDYWxscyB0byBycGNfY3JlYXRl KCkgZnJvbSBmcy9uZnMvY2xpZW50LmMgYXJlIHNlbmRpbmcgYW4NCj4gPiA+ID4gPiA+IHJwY190 aW1lb3V0IHN0cnVjdCB3aXRoIHRoZWlyIGFyZ3MuDQo+ID4gPiA+ID4gPiAgLSBycGNfY3JlYXRl KCkgZG9lcyAqbm90KiBwYXNzIHRoZSB0aW1lb3V0IG9uIHRvDQo+ID4gPiA+ID4gPiB4cHJ0X2Ny ZWF0ZV90cmFuc3BvcnQoKSwgd2hpY2ggdGhlbiBjYW4ndCBwYXNzIGl0IG9uIHRvDQo+ID4gPiA+ ID4gPiB4c19zZXR1cF90Y3AoKS4NCj4gPiA+ID4gPiA+ICAtIHhzX3NldHVwX3RjcCgpLCBoYXZp bmcgbm8gdGltZW91dCBwYXNzZWQgdG8gaXQsIHVzZXMNCj4gPiA+ID4gPiA+IHhzX3RjcF9kZWZh dWx0X3RpbWVvdXQgaW5zdGVhZC4NCj4gPiA+ID4gPiA+ICAtIGNoYW5naW5nIHhzX3RjcF9kZWZh dWx0X3RpbWVvdXQgY2hhbmdlcyB0aGUgImxzIiB0aW1lb3V0DQo+ID4gPiA+ID4gPiBiZWhhdmlv dXINCj4gPiA+ID4gPiA+IEkgZGVzY3JpYmVkIGFib3ZlLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+IEluIHRoZW9yeSBhbGwgb2YgdGhpcyBtZWFucyB0aGF0IHRoZSB0aW1lb3V0IHNpbXBseSBu ZWVkcyB0bw0KPiA+ID4gPiA+ID4gYmUNCj4gPiA+ID4gPiA+IHBhc3NlZA0KPiA+ID4gPiA+ID4g dGhyb3VnaCBhbmQgdXNlZCBpbnN0ZWFkIG9mIHhzX3RjcF9kZWZhdWx0X3RpbWVvdXQuICBJJ20g Z29pbmcNCj4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4gPiBnaXZlDQo+ID4gPiA+ID4gPiB0aGlz IGEgdHJ5IHRvbW9ycm93Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoYXQn cyBhIGdyZWF0IHJvb3QtY2F1c2UgYW5hbHlzaXMuIFRoZSBpbnRlcmxvY2tpbmcgdGltZW91dHMN Cj4gPiA+ID4gPiBpbnZvbHZlZCB3aXRoDQo+ID4gPiA+ID4gTkZTIGFuZCBpdHMgc29ja2V0cyBj YW4gYmUgcmVhbGx5IGRpZmZpY3VsdCB0byB1bndpbmQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJ cyB0aGVyZSBhIHdheSB0byBhdXRvbWF0ZSB0aGlzIHRlc3RjYXNlPyBUaGF0IG1pZ2h0IGJlIG5p Y2UgdG8NCj4gPiA+ID4gPiBoYXZlDQo+ID4gPiA+ID4gaW4NCj4gPiA+ID4gPiB4ZnN0ZXN0cyBv ciB0aGUgbmZzdGVzdCBzdWl0ZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSGVyZSdzIHdoYXQg SSdtIGdvaW5nIHRvIHRyeSBmaXJzdDsgSSdtIG5vIEMgcHJvZ3JhbW1lciwNCj4gPiA+ID4gPiA+ IHRob3VnaCwNCj4gPiA+ID4gPiA+IHNvDQo+ID4gPiA+ID4gPiBhbnkgYWR2aWNlIG9yIGNvcnJl Y3Rpb25zIHlvdSBtaWdodCBoYXZlIHdvdWxkIGJlIGFwcHJlY2lhdGVkLg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IFRoYW5rcy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBBbmRyZXcNCj4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9jbG50LmMgYi9u ZXQvc3VucnBjL2NsbnQuYyBpbmRleA0KPiA+ID4gPiA+ID4gMGIwYjlmMWVlZDQ2Li4xMzUwYzFm NDg5ZjcgMTAwNjQ0DQo+ID4gPiA+ID4gPiAtLS0gYS9uZXQvc3VucnBjL2NsbnQuYw0KPiA+ID4g PiA+ID4gKysrIGIvbmV0L3N1bnJwYy9jbG50LmMNCj4gPiA+ID4gPiA+IEBAIC01MzIsNiArNTMy LDcgQEAgc3RydWN0IHJwY19jbG50ICpycGNfY3JlYXRlKHN0cnVjdA0KPiA+ID4gPiA+ID4gcnBj X2NyZWF0ZV9hcmdzDQo+ID4gPiA+ID4gPiAqYXJncykNCj4gPiA+ID4gPiA+ICAgICAgICAgICAg ICAgICAuYWRkcmxlbiA9IGFyZ3MtPmFkZHJzaXplLA0KPiA+ID4gPiA+ID4gICAgICAgICAgICAg ICAgIC5zZXJ2ZXJuYW1lID0gYXJncy0+c2VydmVybmFtZSwNCj4gPiA+ID4gPiA+ICAgICAgICAg ICAgICAgICAuYmNfeHBydCA9IGFyZ3MtPmJjX3hwcnQsDQo+ID4gPiA+ID4gPiArICAgICAgICAg ICAgICAgLnRpbWVvdXQgPSBhcmdzLT50aW1lb3V0LA0KPiA+ID4gPiA+ID4gICAgICAgICB9Ow0K PiA+ID4gPiA+ID4gICAgICAgICBjaGFyIHNlcnZlcm5hbWVbNDhdOw0KPiA+ID4gPiA+ID4gICAg ICAgICBzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQ7DQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbmV0 L3N1bnJwYy94cHJ0c29jay5jIGIvbmV0L3N1bnJwYy94cHJ0c29jay5jDQo+ID4gPiA+ID4gPiBp bmRleA0KPiA+ID4gPiA+ID4gYWFhNWIyNzQxYjc5Li5hZGM3OWQ5NGI1OWUgMTAwNjQ0DQo+ID4g PiA+ID4gPiAtLS0gYS9uZXQvc3VucnBjL3hwcnRzb2NrLmMNCj4gPiA+ID4gPiA+ICsrKyBiL25l dC9zdW5ycGMveHBydHNvY2suYw0KPiA+ID4gPiA+ID4gQEAgLTMwMDMsNyArMzAwMyw3IEBAIHN0 YXRpYyBzdHJ1Y3QgcnBjX3hwcnQNCj4gPiA+ID4gPiA+ICp4c19zZXR1cF90Y3Aoc3RydWN0DQo+ ID4gPiA+ID4gPiB4cHJ0X2NyZWF0ZSAqYXJncykNCj4gPiA+ID4gPiA+ICAgICAgICAgeHBydC0+ aWRsZV90aW1lb3V0ID0gWFNfSURMRV9ESVNDX1RPOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ICAgICAgICAgeHBydC0+b3BzID0gJnhzX3RjcF9vcHM7DQo+ID4gPiA+ID4gPiAtICAgICAgIHhw cnQtPnRpbWVvdXQgPSAmeHNfdGNwX2RlZmF1bHRfdGltZW91dDsNCj4gPiA+ID4gPiA+ICsgICAg ICAgeHBydC0+dGltZW91dCA9IGFyZ3MtPnRpbWVvdXQ7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gICAgICAgICB4cHJ0LT5tYXhfcmVjb25uZWN0X3RpbWVvdXQgPSB4cHJ0LT50aW1lb3V0LQ0K PiA+ID4gPiA+ID4gPnRvX21heHZhbDsNCj4gPiA+ID4gPiA+ICAgICAgICAgeHBydC0+Y29ubmVj dF90aW1lb3V0ID0geHBydC0+dGltZW91dC0+dG9faW5pdHZhbCAqDQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gTG9va3MgbGlrZSB5b3UncmUgcHJvYmFibHkgb24gdGhlIHJpZ2h0 IHRyYWNrLiBZb3UncmUgbWlzc2luZyBhDQo+ID4gPiA+ID4gZmV3DQo+ID4gPiA+ID4gdGhpbmdz Og0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gWW91J2xsIG5lZWQgdG8gYWRkIGEgInRpbWVvdXQiIGZp ZWxkIHRvIHN0cnVjdCB4cHJ0X2NyZWF0ZSBpbg0KPiA+ID4gPiA+IGluY2x1ZGUvbGludXgvc3Vu cnBjL3hwcnQuaCwgYW5kIHRoZXJlIG1heSBiZSBzb21lIG90aGVyIHBsYWNlcw0KPiA+ID4gPiA+ IHRoYXQNCj4gPiA+ID4gPiBlaXRoZXINCj4gPiA+ID4gPiBuZWVkIHRvIHNldCB0aGUgdGltZW91 dCBpbiB0aGF0IHN0cnVjdHVyZSwgb3IgZG8gc29tZXRoaW5nIHdpdGgNCj4gPiA+ID4gPiB0aGF0 DQo+ID4gPiA+ID4gZmllbGQNCj4gPiA+ID4gPiB3aGVuIGl0J3Mgc2V0Lg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gT25jZSB5b3UgaGF2ZSBzb21ldGhpbmcgdGhhdCBmaXhlcyB5b3VyIHJlcHJvZHVj ZXIsIGdvIGFoZWFkIGFuZA0KPiA+ID4gPiA+IHBvc3QgaXQNCj4gPiA+ID4gPiBhbmQgd2UgY2Fu IGhlbHAgeW91IHdvcmsgdGhyb3VnaCB3aGF0ZXZlciBjaGFuZ2VzIG5lZWQgdG8gbWUNCj4gPiA+ ID4gPiBtYWRlDQo+ID4gPiB0bw0KPiA+ID4gPiA+IG1ha2UgaXQgd29yay4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IE5pY2Ugd29yayENCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmtzIGZvciB0aGUgdGlw LCB0aGF0IHdhcyBoZWxwZnVsLg0KPiA+ID4gPg0KPiA+ID4gPiBDdXJyZW50bHkgSSdtIGZpZ2h0 aW5nIHdpdGgga2VybmVsIHJlY29tcGlsYXRpb24uICBJIGRlY2lkZWQgdG8NCj4gPiA+ID4gbWFr ZQ0KPiA+ID4gPiBpdCBxdWlja2VyIGJ5IHNsaW1taW5nIGRvd24gdGhlIGNvbmZpZywgYnV0IGFw cGFyZW50bHkgSSd2ZQ0KPiA+ID4gPiBhY2hpZXZlZA0KPiA+ID4gPiBzb21ldGhpbmcgd2hpY2gg R29vZ2xlIGNsYWltcyBubyBvbmUgZWxzZSBoYXMgYWNoaWV2ZWQ6DQo+ID4gPiA+DQo+ID4gPiA+ IEVycm9ycyBvbiBrZXJuZWwgbWFrZSBtb2R1bGVzX2luc3RhbGw6DQo+ID4gPiA+DQo+ID4gPiA+ ICAgREVQTU9EICAvbGliL21vZHVsZXMvNi4yLjAtcmM1LXN1bnJwY3RpbWVvKw0KPiA+ID4gPiBk ZXBtb2Q6IFdBUk5JTkc6IC9saWIvbW9kdWxlcy82LjIuMC1yYzUtDQo+ID4gPiA+IHN1bnJwY3Rp bWVvKy9rZXJuZWwvZnMvbmZzL25mc3Y0LmtvIG5lZWRzIHVua25vd24gc3ltYm9sDQo+ID4gPiA+ IG5mczRfZGlzYWJsZV9pZG1hcHBpbmcNCj4gPiA+ID4gZGVwbW9kOiBXQVJOSU5HOiAvbGliL21v ZHVsZXMvNi4yLjAtcmM1LQ0KPiA+ID4gPiBzdW5ycGN0aW1lbysva2VybmVsL2ZzL25mcy9uZnN2 NC5rbyBuZWVkcyB1bmtub3duIHN5bWJvbA0KPiA+ID4gPiBuZnM0X2xhYmVsX2FsbG9jDQo+ID4g PiA+IGRlcG1vZDogV0FSTklORzogL2xpYi9tb2R1bGVzLzYuMi4wLXJjNS0NCj4gPiA+ID4gc3Vu cnBjdGltZW8rL2tlcm5lbC9mcy9uZnMvbmZzdjQua28gbmVlZHMgdW5rbm93biBzeW1ib2wNCj4g PiA+ID4gc2VuZF9pbXBsZW1lbnRhdGlvbl9pZA0KPiA+ID4gPiBkZXBtb2Q6IFdBUk5JTkc6IC9s aWIvbW9kdWxlcy82LjIuMC1yYzUtDQo+ID4gPiA+IHN1bnJwY3RpbWVvKy9rZXJuZWwvZnMvbmZz L25mc3Y0LmtvIG5lZWRzIHVua25vd24gc3ltYm9sDQo+ID4gPiA+IG5mc19hdG9taWNfb3Blbg0K PiA+ID4gPiBkZXBtb2Q6IFdBUk5JTkc6IC9saWIvbW9kdWxlcy82LjIuMC1yYzUtDQo+ID4gPiA+ IHN1bnJwY3RpbWVvKy9rZXJuZWwvZnMvbmZzL25mc3Y0LmtvIG5lZWRzIHVua25vd24gc3ltYm9s DQo+ID4gPiA+IG5mc19jbGVhcl92ZXJpZmllcl9kZWxlZ2F0ZWQNCj4gPiA+ID4gZGVwbW9kOiBX QVJOSU5HOiAvbGliL21vZHVsZXMvNi4yLjAtcmM1LQ0KPiA+ID4gPiBzdW5ycGN0aW1lbysva2Vy bmVsL2ZzL25mcy9uZnN2NC5rbyBuZWVkcyB1bmtub3duIHN5bWJvbA0KPiA+ID4gPiBuZnM0X2Ns aWVudF9pZF91bmlxdWlmaWVyDQo+ID4gPiA+IGRlcG1vZDogV0FSTklORzogL2xpYi9tb2R1bGVz LzYuMi4wLXJjNS0NCj4gPiA+ID4gc3VucnBjdGltZW8rL2tlcm5lbC9mcy9uZnMvbmZzdjQua28g bmVlZHMgdW5rbm93biBzeW1ib2wNCj4gPiA+ID4gbmZzNF9kZW50cnlfb3BlcmF0aW9ucw0KPiA+ ID4gPiBkZXBtb2Q6IFdBUk5JTkc6IC9saWIvbW9kdWxlcy82LjIuMC1yYzUtDQo+ID4gPiA+IHN1 bnJwY3RpbWVvKy9rZXJuZWwvZnMvbmZzL25mc3Y0LmtvIG5lZWRzIHVua25vd24gc3ltYm9sDQo+ ID4gPiA+IG5mc19mc2NhY2hlX29wZW5fZmlsZQ0KPiA+ID4gPiBkZXBtb2Q6IFdBUk5JTkc6IC9s aWIvbW9kdWxlcy82LjIuMC1yYzUtDQo+ID4gPiA+IHN1bnJwY3RpbWVvKy9rZXJuZWwvZnMvbmZz L25mc3Y0LmtvIG5lZWRzIHVua25vd24gc3ltYm9sDQo+ID4gPiBuZnM0X2ZzX3R5cGUNCj4gPiA+ ID4gZGVwbW9kOiBXQVJOSU5HOiAvbGliL21vZHVsZXMvNi4yLjAtcmM1LQ0KPiA+ID4gPiBzdW5y cGN0aW1lbysva2VybmVsL2ZzL25mcy9uZnN2NC5rbyBuZWVkcyB1bmtub3duIHN5bWJvbA0KPiA+ ID4gPiByZWNvdmVyX2xvc3RfbG9ja3MNCj4gPiA+ID4gZGVwbW9kOiBXQVJOSU5HOiAvbGliL21v ZHVsZXMvNi4yLjAtcmM1LQ0KPiA+ID4gPiBzdW5ycGN0aW1lbysva2VybmVsL2ZzL25mcy9uZnN2 NC5rbyBuZWVkcyB1bmtub3duIHN5bWJvbA0KPiA+ID4gPiBuZnNfY2FsbGJhY2tfbnJfdGhyZWFk cw0KPiA+ID4gPiBkZXBtb2Q6IFdBUk5JTkc6IC9saWIvbW9kdWxlcy82LjIuMC1yYzUtDQo+ID4g PiA+IHN1bnJwY3RpbWVvKy9rZXJuZWwvZnMvbmZzL25mc3Y0LmtvIG5lZWRzIHVua25vd24gc3lt Ym9sDQo+ID4gPiA+IG1heF9zZXNzaW9uX2NiX3Nsb3RzDQo+ID4gPiA+IGRlcG1vZDogV0FSTklO RzogL2xpYi9tb2R1bGVzLzYuMi4wLXJjNS0NCj4gPiA+ID4gc3VucnBjdGltZW8rL2tlcm5lbC9m cy9uZnMvbmZzdjQua28gbmVlZHMgdW5rbm93biBzeW1ib2wNCj4gPiA+ID4gbWF4X3Nlc3Npb25f c2xvdHMNCj4gPiA+ID4gZGVwbW9kOiBXQVJOSU5HOiAvbGliL21vZHVsZXMvNi4yLjAtcmM1LQ0K PiA+ID4gPiBzdW5ycGN0aW1lbysva2VybmVsL2ZzL25mcy9uZnN2NC5rbyBuZWVkcyB1bmtub3du IHN5bWJvbA0KPiA+ID4gPiBuZnNfaWRtYXBfY2FjaGVfdGltZW91dA0KPiA+ID4gPiBkZXBtb2Q6 IFdBUk5JTkc6IC9saWIvbW9kdWxlcy82LjIuMC1yYzUtDQo+ID4gPiA+IHN1bnJwY3RpbWVvKy9r ZXJuZWwvZnMvbmZzL25mc3Y0LmtvIG5lZWRzIHVua25vd24gc3ltYm9sDQo+ID4gPiA+IG5mc19j YWxsYmFja19zZXRfdGNwcG9ydA0KPiA+ID4gPg0KPiA+ID4gPiBFcnJvcnMgb24gbW9kdWxlIGxv YWQ6DQo+ID4gPiA+DQo+ID4gPiA+IFsgICA5NC4wMDgyNzFdIG5mc3Y0OiBVbmtub3duIHN5bWJv bCBuZnM0X2Rpc2FibGVfaWRtYXBwaW5nIChlcnIgLQ0KPiA+ID4gPiAyKQ0KPiA+ID4gPiBbICAg OTQuMDA4MzIxXSBuZnN2NDogVW5rbm93biBzeW1ib2wgbmZzNF9sYWJlbF9hbGxvYyAoZXJyIC0y KQ0KPiA+ID4gPiBbICAgOTQuMDA4NDM0XSBuZnN2NDogVW5rbm93biBzeW1ib2wgc2VuZF9pbXBs ZW1lbnRhdGlvbl9pZCAoZXJyIC0NCj4gPiA+ID4gMikNCj4gPiA+ID4gWyAgIDk0LjAwODQ0Nl0g bmZzdjQ6IFVua25vd24gc3ltYm9sIG5mc19hdG9taWNfb3BlbiAoZXJyIC0yKQ0KPiA+ID4gPiBb ICAgOTQuMDA4NDY4XSBuZnN2NDogVW5rbm93biBzeW1ib2wgbmZzX2NsZWFyX3ZlcmlmaWVyX2Rl bGVnYXRlZA0KPiA+ID4gPiAoZXJyDQo+ID4gPiA+IC0yKQ0KPiA+ID4gPiBbICAgOTQuMDA4NDc1 XSBuZnN2NDogVW5rbm93biBzeW1ib2wgbmZzNF9jbGllbnRfaWRfdW5pcXVpZmllcg0KPiA+ID4g PiAoZXJyIC0NCj4gPiA+ID4gMikNCj4gPiA+ID4gWyAgIDk0LjAwODUwMV0gbmZzdjQ6IFVua25v d24gc3ltYm9sIG5mczRfZGVudHJ5X29wZXJhdGlvbnMgKGVyciAtDQo+ID4gPiA+IDIpDQo+ID4g PiA+IFsgICA5NC4wMDg1MjFdIG5mc3Y0OiBVbmtub3duIHN5bWJvbCBuZnNfZnNjYWNoZV9vcGVu X2ZpbGUgKGVyciAtDQo+ID4gPiA+IDIpDQo+ID4gPiA+IFsgICA5NC4wMDg1NjZdIG5mc3Y0OiBV bmtub3duIHN5bWJvbCBuZnM0X2ZzX3R5cGUgKGVyciAtMikNCj4gPiA+ID4gWyAgIDk0LjAwODU5 NV0gbmZzdjQ6IFVua25vd24gc3ltYm9sIHJlY292ZXJfbG9zdF9sb2NrcyAoZXJyIC0yKQ0KPiA+ ID4gPiBbICAgOTQuMDA4NjM5XSBuZnN2NDogVW5rbm93biBzeW1ib2wgbmZzX2NhbGxiYWNrX25y X3RocmVhZHMgKGVycg0KPiA+ID4gPiAtMikNCj4gPiA+ID4gWyAgIDk0LjAwODY1NF0gbmZzdjQ6 IFVua25vd24gc3ltYm9sIG1heF9zZXNzaW9uX2NiX3Nsb3RzIChlcnIgLTIpDQo+ID4gPiA+IFsg ICA5NC4wMDg2NzhdIG5mc3Y0OiBVbmtub3duIHN5bWJvbCBtYXhfc2Vzc2lvbl9zbG90cyAoZXJy IC0yKQ0KPiA+ID4gPiBbICAgOTQuMDA4Njk0XSBuZnN2NDogVW5rbm93biBzeW1ib2wgbmZzX2lk bWFwX2NhY2hlX3RpbWVvdXQgKGVycg0KPiA+ID4gPiAtMikNCj4gPiA+ID4gWyAgIDk0LjAwODcw OV0gbmZzdjQ6IFVua25vd24gc3ltYm9sIG5mc19jYWxsYmFja19zZXRfdGNwcG9ydCAoZXJyDQo+ ID4gPiA+IC0yKQ0KPiA+ID4gPg0KPiA+ID4gPiBJIHN1c3BlY3QgSSd2ZSB0dXJuZWQgc29tZXRo aW5nIG9mZiBpbiB0aGUgY29uZmlnIHRoYXQgSSBzaG91bGRuJ3QNCj4gPiA+ID4gaGF2ZSwgYnV0 IEknbSBub3Qgc3VyZSB3aGF0LiAgSSBzZWUgdGhhdCBvbmUgb2YgdGhlIHN5bWJvbHMNCj4gPiA+ ID4gKG5mc19jbGVhcl92ZXJpZmllcl9kZWxlZ2F0ZWQpIGlzIGluIGluY2x1ZGUvbGludXgvbmZz X2ZzLmgsIGFuZA0KPiA+ID4gPiB0aGUNCj4gPiA+ID4gb3RoZXJzIGFyZSBkZWZpbmVkIGluIGZz L25mcy9uZnM0X2ZzLmgsIGZzL25mcy9zdXBlci5jLA0KPiA+ID4gPiBmcy9uZnMvZGlyLmMsDQo+ ID4gPiA+IGZzL25mcy9pbm9kZS5jLCBmcy9uZnMvZnNjYWNoZS5jLCBhbmQgZnMvbmZzL2ZzX2Nv bnRleHQuYy4gIEknbQ0KPiA+ID4gPiBjaGFuZ2luZyBjb25maWcgb3B0aW9ucyBhbmQgcmVjb21w aWxpbmcgdG8gdHJ5IHRvIGZpZ3VyZSBvdXQgd2hhdA0KPiA+ID4gPiBJJ20NCj4gPiA+ID4gbWlz c2luZywgYnV0IGF0IGEgY291cGxlIG9mIGhvdXJzIHBlciBjb21waWxlIGFuZCBvbmx5IGEgY291 cGxlIG9mDQo+ID4gPiA+IGRheXMgYSB3ZWVrIHRvIHdvcmsgb24gdGhpcyBpdCdzIHNsb3cgZ29p bmcuICBBbnkgaGludHMgYXMgdG8gd2hhdA0KPiA+ID4gPiBJDQo+ID4gPiA+IG1pZ2h0IGJlIGRv aW5nIHdyb25nIHdvdWxkIGJlIGFwcHJlY2lhdGVkLiAg8J+Yig0KPiA+ID4gPg0KPiA+ID4NCj4g PiA+IExvb2tzIGxpa2UgdGhlIEFCSSBnb3QgYnJva2VuIHdoZW4geW91IHR1cm5lZCBvZmYgc29t ZSBvcHRpb25zLg0KPiA+ID4NCj4gPiA+IEdlbmVyYWxseSwgaWYgeW91IGp1c3Qgd2FudCB0byBi dWlsZCBhIHNpbmdsZSBtb2R1bGUsIHRoZW4geW91IHdhbnQNCj4gPiA+IHRoZQ0KPiA+ID4gLmNv bmZpZyB0byBiZSBfZXhhY3RseV8gdGhlIG9uZSB0aGF0IHlvdSB1c2VkIHRvIGJ1aWxkIHRoZSBr ZXJuZWwNCj4gPiA+IHlvdSdyZQ0KPiA+ID4gZ29pbmcgdG8gcGx1ZyBpdCBpbnRvLiBUaGVuIHRv IGJ1aWxkIHRoZSBtb2R1bGVzIHVuZGVyIGZzL25mcyB5b3UNCj4gPiA+IGNhbg0KPiA+ID4gZG86 DQo+ID4gPg0KPiA+ID4gICAgIG1ha2UgbW9kdWxlc19wcmVwYXJlDQo+ID4gPiAgICAgbWFrZSBN PWZzL25mcw0KPiA+ID4NCj4gPiA+IC4uLmFuZCB0aGVuIGRyb3AgdGhlIHJlc3VsdGluZyAua28g b2JqZWN0cyBpbnRvIHRoZSByaWdodCBwbGFjZSBpbg0KPiA+ID4gL2xpYi9tb2R1bGVzLg0KPiA+ ID4NCj4gPiA+IFRoYXQgc2FpZCwgaXQgbWF5IGJlIHNpbXBsZXIgdG8ganVzdCBidWlsZCBhbmQg d29yayB3aXRoIGEgd2hvbGUNCj4gPiA+IGtlcm5lbA0KPiA+ID4gZm9yIHRlc3RpbmcgcHVycG9z ZXMuIFdvcmtpbmcgd2l0aCBhbiBpbmRpdmlkdWFsIGttb2QgY2FuIGJlIGEgYml0DQo+ID4gPiB0 cmlja3kgdW5sZXNzIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nLg0KPiA+ID4NCj4gPiA+IE9u Y2UgeW91IGRvIHRoZSBmaXJzdCwgc3Vic2VxdWVudCBidWlsZHMgc2hvdWxkIGJlIHJlYXNvbmFi bHkgZmFzdC4NCj4gPg0KPiA+IEknbSBnb2luZyB0byBnbyBiYWNrIHRvIGEgZnVsbCBrZXJuZWwg YnVpbGQgd2l0aCBtYWtlIG9sZGNvbmZpZyB1c2luZw0KPiA+IHRoZSBkaXN0cm8ncyBrZXJuZWwg Y29uZmlnIHRvIHRyeSB0byBhdm9pZCB0aGlzIGxhdGVzdCBpc3N1ZSwgdGhlbiB0cnkNCj4gPiB3 aGF0IHlvdSd2ZSBzdWdnZXN0ZWQgdG8gc3BlZWQgdXAgcmVjb21waWxlcy4NCj4gPg0KPiA+IFNp bmNlIG15IGNoYW5nZXMgYXJlIGluIG5ldC9zdW5ycGMsIHNob3VsZCBJIGJlIGRvaW5nIHNvbWV0 aGluZyBsaWtlDQo+ID4gdGhpcz8NCj4gPg0KPiA+IG1ha2UgbW9kdWxlc19wcmVwYXJlDQo+ID4g bWFrZSBNPW5ldC9zdW5ycGMNCj4gPiBtYWtlIE09ZnMvbmZzDQo+ID4NCj4gPiBPciBkbyBJIG5v dCBuZWVkIHRvIHJlY29tcGlsZSBuZnMgaWYgSSdtIG9ubHkgdG91Y2hpbmcgdGhlIGludGVybmFs cw0KPiA+IG9mIHN1bnJwYz8NCj4gPg0KPiA+IFRoYW5rcyBhZ2Fpbi4NCj4gPg0KPiA+IEFuZHJl dw0KPiA+DQo+ID4NCj4gPg0KPiANCj4gWW91IHNob3VsZG4ndCBuZWVkIHRvIGJ1aWxkIGJvdGgg KlVOTEVTUyogeW91IGNoYW5nZSB0aGUgQUJJLiBUaGF0DQo+IGluY2x1ZGVzIHN0dWZmIGxpa2Ug bnVtYmVyIG9mIGFyZ3VtZW50cyB0byBhbiBleHBvcnRlZCBmdW5jdGlvbiwgb3IgdGhlDQo+IHNp emUgb3IgbGF5b3V0IG9mIHBhcnRpY3VsYXIgc3RydWN0dXJlcyBvciBhcnJheXMgdGhhdCBib3Ro IG1vZHVsZXMNCj4gbWlnaHQgYmUgd29ya2luZyB3aXRoLCBldGMuLi4NCj4gDQo+IElmIHlvdSBk byB0aGF0LCB0aGVuIHRoaW5ncyBjYW4gYnJlYWsgaW4gYWxsIHNvcnRzIG9mICJpbnRlcmVzdGlu ZyIgd2F5cw0KPiB0aGF0IGNhbiBiZSB2ZXJ5IGhhcmQgdG8gdHJhY2sgZG93bi4gV2l0aG91dCBz ZWVpbmcgeW91ciBwYXRjaCwgaXQncw0KPiBoYXJkIHRvIGtub3cgd2hldGhlciB5b3UncmUgYnJl YWtpbmcgdGhvc2UgcnVsZXMgaGVyZS4gWU1NViwgb2YgY291cnNlLg0KPiANCj4gQWdhaW4sIGRv aW5nIGEgZnVsbCBrZXJuZWwgYnVpbGQgaXMgdGhlIHNhZmVzdCB3YXkgdG8gYXZvaWQgdGhhdCBz b3J0IG9mDQo+IHRoaW5nLiBJJ2QgY291bmNpbCBhZ2FpbnN0IHNob3J0Y3V0cyBoZXJlIHVubGVz cyB5b3Uga25vdyB3aGF0IHlvdSdyZQ0KPiBkb2luZy4gTGV0IHRoZSBtYWNoaW5lIGRvIHRoZSB3 b3JrLiA7KQ0KDQpJbiB0aGUgZW5kIEkgaGFkIHRvIGRvIGEgZnJlc2ggY29tcGlsZSB3aXRoIGEg ZGlmZmVyZW50IEVYVFJBVkVSU0lPTiB0byBnZXQgcmlkIG9mIHRoZSAiVW5rbm93biBzeW1ib2wi IGVycm9ycy4gIEknbSBndWVzc2luZyBpdCBoYXMgc29tZXRoaW5nIHRvIGRvIHdpdGggbGVmdG92 ZXJzIGluIC9ib290IG9yIC9saWIvbW9kdWxlcyBmcm9tIGFuIG9sZCBidWlsZCwgYnV0IEkgZGlk bid0IHB1cnN1ZSBpdC4NCg0KQWZ0ZXIgYSBmZXcgdHJpZXMsIEkgZmluYWxseSBnb3QgYSB2ZXJz aW9uIHRoYXQgZGlkbid0IHB1dCByYW5kb20gdmFsdWVzIGluIHRoZSB0aW1lb3V0IG9yIG1ha2Ug dGhlIGtlcm5lbCBibG93IHVwLiAgTm93IHRoZSBjb21waWxlciBnaXZlcyBtZSBhIHdhcm5pbmcg YWJvdXQgImFzc2lnbm1lbnQgZGlzY2FyZHMg4oCYY29uc3TigJkgcXVhbGlmaWVyIGZyb20gcG9p bnRlciB0YXJnZXQgdHlwZSIsIGJ1dCBpdCB3b3Jrcy4gIEknZCBiZSBoYXBweSB0byBnZXQgYWR2 aWNlIG9uIGhvdyB0byBtYWtlIGl0IGJldHRlci4gIChLZWVwaW5nIGluIG1pbmQgdGhhdCBJJ20g ZmFyIGZyb20gYSBDIHByb2dyYW1tZXIuICA6LSkgKQ0KDQpIZXJlJ3MgdGhlIHBhdGNoIHNvIGZh cjoNCg0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3VucnBjL3hwcnQuaCBiL2luY2x1ZGUv bGludXgvc3VucnBjL3hwcnQuaA0KaW5kZXggYjlmNTlhYWJlZTUzLi41YjdmZGFmZjkyNjcgMTAw NjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy94cHJ0LmgNCisrKyBiL2luY2x1ZGUvbGlu dXgvc3VucnBjL3hwcnQuaA0KQEAgLTMzMyw2ICszMzMsNyBAQCBzdHJ1Y3QgeHBydF9jcmVhdGUg ew0KICAgICAgICBzdHJ1Y3Qgc3ZjX3hwcnQgICAgICAgICAqYmNfeHBydDsgICAgICAgLyogTkZT djQuMSBiYWNrY2hhbm5lbCAqLw0KICAgICAgICBzdHJ1Y3QgcnBjX3hwcnRfc3dpdGNoICAqYmNf eHBzOw0KICAgICAgICB1bnNpZ25lZCBpbnQgICAgICAgICAgICBmbGFnczsNCisgICAgICAgc3Ry dWN0IHJwY190aW1lb3V0ICAgICAgKnRpbWVvdXQ7ICAgICAgIC8qIHRpbWVvdXQgcGFybXMgKi8N CiB9Ow0KDQogc3RydWN0IHhwcnRfY2xhc3Mgew0KZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvY2xu dC5jIGIvbmV0L3N1bnJwYy9jbG50LmMNCmluZGV4IDBiMGI5ZjFlZWQ0Ni4uMTM1MGMxZjQ4OWY3 IDEwMDY0NA0KLS0tIGEvbmV0L3N1bnJwYy9jbG50LmMNCisrKyBiL25ldC9zdW5ycGMvY2xudC5j DQpAQCAtNTMyLDYgKzUzMiw3IEBAIHN0cnVjdCBycGNfY2xudCAqcnBjX2NyZWF0ZShzdHJ1Y3Qg cnBjX2NyZWF0ZV9hcmdzICphcmdzKQ0KICAgICAgICAgICAgICAgIC5hZGRybGVuID0gYXJncy0+ YWRkcnNpemUsDQogICAgICAgICAgICAgICAgLnNlcnZlcm5hbWUgPSBhcmdzLT5zZXJ2ZXJuYW1l LA0KICAgICAgICAgICAgICAgIC5iY194cHJ0ID0gYXJncy0+YmNfeHBydCwNCisgICAgICAgICAg ICAgICAudGltZW91dCA9IGFyZ3MtPnRpbWVvdXQsDQogICAgICAgIH07DQogICAgICAgIGNoYXIg c2VydmVybmFtZVs0OF07DQogICAgICAgIHN0cnVjdCBycGNfY2xudCAqY2xudDsNCmRpZmYgLS1n aXQgYS9uZXQvc3VucnBjL3hwcnRzb2NrLmMgYi9uZXQvc3VucnBjL3hwcnRzb2NrLmMNCmluZGV4 IGFhYTViMjc0MWI3OS4uMDAxMTU5NmJlNGFkIDEwMDY0NA0KLS0tIGEvbmV0L3N1bnJwYy94cHJ0 c29jay5jDQorKysgYi9uZXQvc3VucnBjL3hwcnRzb2NrLmMNCkBAIC0yMTc0LDYgKzIxNzQsMTcg QEAgc3RhdGljIHZvaWQgeHNfdGNwX3NldF9zb2NrZXRfdGltZW91dHMoc3RydWN0IHJwY194cHJ0 ICp4cHJ0LA0KICAgICAgICB1bnNpZ25lZCBpbnQga2VlcGNudDsNCiAgICAgICAgdW5zaWduZWQg aW50IHRpbWVvOw0KDQorICAgICAgIGRwcmludGsoInhzX3RjcF9zZXRfc29ja2V0X3RpbWVvdXRz OiB4cHJ0LT50aW1lb3V0LT50b19pbml0dmFsOiAlbHVcbiIsDQorICAgICAgICAgICAgICAgeHBy dC0+dGltZW91dC0+dG9faW5pdHZhbCk7DQorICAgICAgIGRwcmludGsoInhzX3RjcF9zZXRfc29j a2V0X3RpbWVvdXRzOiB4cHJ0LT50aW1lb3V0LT50b19tYXh2YWw6ICVsdVxuIiwNCisgICAgICAg ICAgICAgICB4cHJ0LT50aW1lb3V0LT50b19tYXh2YWwpOw0KKyAgICAgICBkcHJpbnRrKCJ4c190 Y3Bfc2V0X3NvY2tldF90aW1lb3V0czogeHBydC0+dGltZW91dC0+dG9faW5jcmVtZW50OiAlbHVc biIsDQorICAgICAgICAgICAgICAgeHBydC0+dGltZW91dC0+dG9faW5jcmVtZW50KTsNCisgICAg ICAgZHByaW50aygieHNfdGNwX3NldF9zb2NrZXRfdGltZW91dHM6IHhwcnQtPnRpbWVvdXQtPnRv X3JldHJpZXM6ICV1XG4iLA0KKyAgICAgICAgICAgICAgIHhwcnQtPnRpbWVvdXQtPnRvX3JldHJp ZXMpOw0KKyAgICAgICBkcHJpbnRrKCJ4c190Y3Bfc2V0X3NvY2tldF90aW1lb3V0czogeHBydC0+ dGltZW91dC0+dG9fZXhwb25lbnRpYWw6ICV1XG4iLA0KKyAgICAgICAgICAgICAgIHhwcnQtPnRp bWVvdXQtPnRvX2V4cG9uZW50aWFsKTsNCisNCiAgICAgICAgc3Bpbl9sb2NrKCZ4cHJ0LT50cmFu c3BvcnRfbG9jayk7DQogICAgICAgIGtlZXBpZGxlID0gRElWX1JPVU5EX1VQKHhwcnQtPnRpbWVv dXQtPnRvX2luaXR2YWwsIEhaKTsNCiAgICAgICAga2VlcGNudCA9IHhwcnQtPnRpbWVvdXQtPnRv X3JldHJpZXMgKyAxOw0KQEAgLTMwMDMsNyArMzAxNCwyNCBAQCBzdGF0aWMgc3RydWN0IHJwY194 cHJ0ICp4c19zZXR1cF90Y3Aoc3RydWN0IHhwcnRfY3JlYXRlICphcmdzKQ0KICAgICAgICB4cHJ0 LT5pZGxlX3RpbWVvdXQgPSBYU19JRExFX0RJU0NfVE87DQoNCiAgICAgICAgeHBydC0+b3BzID0g JnhzX3RjcF9vcHM7DQotICAgICAgIHhwcnQtPnRpbWVvdXQgPSAmeHNfdGNwX2RlZmF1bHRfdGlt ZW91dDsNCisNCisgICAgICAgaWYgKGFyZ3MtPnRpbWVvdXQpIHsNCisgICAgICAgICAgICAgICB4 cHJ0LT50aW1lb3V0ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHJwY190aW1lb3V0KSwgR0ZQX0tF Uk5FTCk7DQorICAgICAgICAgICAgICAgbWVtY3B5KHhwcnQtPnRpbWVvdXQsIGFyZ3MtPnRpbWVv dXQsIHNpemVvZihzdHJ1Y3QgcnBjX3RpbWVvdXQpKTsNCisgICAgICAgfSBlbHNlIHsNCisgICAg ICAgICAgICAgICB4cHJ0LT50aW1lb3V0ID0gJnhzX3RjcF9kZWZhdWx0X3RpbWVvdXQ7DQorICAg ICAgIH0NCisNCisgICAgICAgZHByaW50aygieHNfc2V0dXBfdGNwOiB4cHJ0LT50aW1lb3V0LT50 b19pbml0dmFsOiAlbHVcbiIsDQorICAgICAgICAgICAgICAgeHBydC0+dGltZW91dC0+dG9faW5p dHZhbCk7DQorICAgICAgIGRwcmludGsoInhzX3NldHVwX3RjcDogeHBydC0+dGltZW91dC0+dG9f bWF4dmFsOiAlbHVcbiIsDQorICAgICAgICAgICAgICAgeHBydC0+dGltZW91dC0+dG9fbWF4dmFs KTsNCisgICAgICAgZHByaW50aygieHNfc2V0dXBfdGNwOiB4cHJ0LT50aW1lb3V0LT50b19pbmNy ZW1lbnQ6ICVsdVxuIiwNCisgICAgICAgICAgICAgICB4cHJ0LT50aW1lb3V0LT50b19pbmNyZW1l bnQpOw0KKyAgICAgICBkcHJpbnRrKCJ4c19zZXR1cF90Y3A6IHhwcnQtPnRpbWVvdXQtPnRvX3Jl dHJpZXM6ICV1XG4iLA0KKyAgICAgICAgICAgICAgIHhwcnQtPnRpbWVvdXQtPnRvX3JldHJpZXMp Ow0KKyAgICAgICBkcHJpbnRrKCJ4c19zZXR1cF90Y3A6IHhwcnQtPnRpbWVvdXQtPnRvX2V4cG9u ZW50aWFsOiAldVxuIiwNCisgICAgICAgICAgICAgICB4cHJ0LT50aW1lb3V0LT50b19leHBvbmVu dGlhbCk7DQogICAgICAgIHhwcnQtPm1heF9yZWNvbm5lY3RfdGltZW91dCA9IHhwcnQtPnRpbWVv dXQtPnRvX21heHZhbDsNCiAgICAgICAgeHBydC0+Y29ubmVjdF90aW1lb3V0ID0geHBydC0+dGlt ZW91dC0+dG9faW5pdHZhbCAqDQoNCg==