From mboxrd@z Thu Jan 1 00:00:00 1970 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1CE61C98302 for ; Tue, 22 Sep 2026 19:33:06 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B072F10EE3D; Tue, 22 Sep 2026 19:33:05 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="hUAbUPIy"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.18]) by gabe.freedesktop.org (Postfix) with ESMTPS id A2A7310EE3B for ; Tue, 22 Sep 2026 19:32:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1790105540; x=1821641540; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=ufla3d5vG6kwKizOKSY1j/BJ2MmVG3O4Cy6vXs9NdJA=; b=hUAbUPIyR1F+4fHIGh5bcCVC1NJVgqeygxOiatYW52zJzvFu1Dw4tfr8 iByV1ujRLTbd441mba8TPZMvmTrjABjm2VWmrTtbPN76Qhb2CTbzeFEdK f0qrXnhTXkAAZ3v+HJLgeAD0el82wwGPNF4fi/wCbD+mGkT1tLbQX1qYt pbJQnjQZzMN2tKcSui9xVQCt9zsrvFv/7GhN6FbPgEIqcg2rXPPZiSGwJ zJ5SXFKLbHAqcYBqxuYswkGBnRInDTOo2be65GDPKRKbEbJ397P6qHX6Q jZPO8WKfcaMt02HzmhUgnASfhIWwTVOl5ST0YZfwsS4Qacdz1SOFVYp3G g==; X-CSE-ConnectionGUID: eaE22r9OQY2the+0XaExYw== X-CSE-MsgGUID: jNNz4xmKQEihs/CJTUOZhg== X-IronPort-AV: E=McAfee;i="6800,10657,11913"; a="89876130" X-IronPort-AV: E=Sophos;i="6.27,117,1787036400"; d="scan'208";a="89876130" Received: from fmviesa013.fm.intel.com ([10.60.135.153]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Sep 2026 12:32:19 -0700 X-CSE-ConnectionGUID: g7iaUmj9S3S9IIPIKzvc9Q== X-CSE-MsgGUID: rb91UUBgRyqzg1o2OAvkzQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.27,117,1787036400"; d="scan'208";a="4557382" Received: from fmsmsx902.amr.corp.intel.com ([10.18.126.91]) by fmviesa013.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Sep 2026 12:32:19 -0700 Received: from FMSMSX903.amr.corp.intel.com (10.18.126.92) by fmsmsx902.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Tue, 22 Sep 2026 12:32:18 -0700 Received: from fmsedg903.ED.cps.intel.com (10.1.192.145) by FMSMSX903.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46 via Frontend Transport; Tue, 22 Sep 2026 12:32:18 -0700 Received: from BYAPR05CU005.outbound.protection.outlook.com (52.101.85.43) by edgegateway.intel.com (192.55.55.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Tue, 22 Sep 2026 12:32:18 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lc//NYUaCEHXeUB0rJ8PV1fn+uiSjFug7lxg6BTjUQcuXMJ3DIfhbGDqoZ0kdKGhMZ6RL83BNJANWCYtevmeFOH49yrA9whGn//g2L+DGnvarE8l5Jxh3TnEwLsOQ5D2xiR0cq7+fge6YLsWKfS/z38V9pFA1xzf18a7TwnJCpCwWPTsfa2YzWfxeZfdT8V1SVMhKHO4wYcvggg2AM35dADwW4ERp/WVeHx9jL3vVLtx8Ngb95oJwdIN1mrvuKSb8+QOSChKvrMODh9j3S4Xjf4R+8nmL7rIVLJh+Irv4KkwXm5yXJEyaD7gbXrKwmj7hGmuwol4GOJ4MrTrs6H0IQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=ufla3d5vG6kwKizOKSY1j/BJ2MmVG3O4Cy6vXs9NdJA=; b=W4p2739bpe16NKfQUgQ/AtNeDHCuS171Np99lHkreSa5O3Ei98IQU971ZhMPrUSXFqpvHjXC0GU+AdRnQuVxxZ+663N0Jl822KDu0DWgWQ38S4U2biGKcCqki4YrHl+W2LH8sNA0362ovIcDMzIfWHZxC0vPv6cOKVjXOS+naHz7gxJyDn2uBVO3E7v0xp7ew1umO5ab3tnHi2g9xebitR9/puK3oqo1q6zmKFEbLtXXB1foCKud1LE2Ok/guMYkpcnMR59W3G5AMD+OX73cb0aRpxK0/M9BRUNOkZBSHAbQtoc5hBA+qJMZy7UZC2LVq8H4MjN8WlzjXFiI5FL+YA== 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 CY5PR11MB6320.namprd11.prod.outlook.com (2603:10b6:930:3c::9) by IA1PR11MB7917.namprd11.prod.outlook.com (2603:10b6:208:3fe::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Tue, 22 Sep 2026 19:32:12 +0000 Received: from CY5PR11MB6320.namprd11.prod.outlook.com ([fe80::9cd7:94d5:90f:4d76]) by CY5PR11MB6320.namprd11.prod.outlook.com ([fe80::9cd7:94d5:90f:4d76%3]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 19:32:12 +0000 From: "Summers, Stuart" To: "igt-dev@lists.freedesktop.org" , "Laguna, Lukasz" CC: "Bernatowicz, Marcin" Subject: Re: [PATCH v2 1/2] tests/intel/xe_sriov_ggtt: Support execution with pre-enabled VFs Thread-Topic: [PATCH v2 1/2] tests/intel/xe_sriov_ggtt: Support execution with pre-enabled VFs Thread-Index: AQHdSmGb6BNN/n3gi0at+DPOOu7QOrba/VqA Date: Tue, 22 Sep 2026 19:32:12 +0000 Message-ID: References: <20260922070940.3006983-1-lukasz.laguna@intel.com> <20260922070940.3006983-2-lukasz.laguna@intel.com> In-Reply-To: <20260922070940.3006983-2-lukasz.laguna@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu2 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: CY5PR11MB6320:EE_|IA1PR11MB7917:EE_ x-ms-office365-filtering-correlation-id: 822fdb5a-12a1-470b-57b8-08df18e03367 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|23010399003|366016|376014|1800799024|38070700021|6133799003|10067099003|56012099006|4143699003|5023799004|11063799006|18002099003|22082099003; x-microsoft-antispam-message-info: Ch9yVLexukAgziVcGRBCFF8XPPgNWI2Qp9YlxUbFOSJ912OCIfixlIs8RtZTkefLmAEF1OxiUgexBJuNQYzol4kJlIADSrarcL/cYQvuZ+LwvbCUGaedigQHFzINI/GHVOOrnteqkW5n+vQOJhf/l4uX9IcKmUS0TYLJdOWKlKdX+Oth5OOYVNdRUrq3wFGr6BGtbHEeNEocKm8q3SkLgPTK1SJjUphDRtEN93aHmyMrlU7qa5bYhLETYIeHPhjy3CjM3ZXTFC2RyTSLxWpASJxP2EPisTF7mHDKvPKEaR5jTPALwWyYuMkINw5Oh5uXcJdzGgoAxJbLZzh0UJfspgpsJ9NaAy3OKmby8I8eet+LMvAshfGRJ2wFiV44xueFMkV2IqXHX2KgywMg+vyVJrD1TEkLX0Q4SrSPEs2Rg6kT/ZmWfwn3RmwgZeTMUR3A/xqqi9tViXHY7QQISYjUQMOnxRTNVUxsYKuUAcbvVQvXDVAmt9pBlF4ePJJEqQof/c6Ku6ySNul9rq+8kHOarUc85/vna3k97IPsSXBgab7zCPXkvyZCbV+5m8CQcaDiiT4jydY5emGggca5B90fsm5RhS6EP9R5lm7FVaW890In5opSxsrJ4B5P5IkM3SExNcSfP4tyD3uZPx7bi2Rc7zYxzrySi+aN81EczJLBy5iBu2xc6u0qKRzIV/GOLv0VJNd7pvEUcD6nhPzzXjZUzky56KFp8yK3nx39ZNPKCiE= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY5PR11MB6320.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(23010399003)(366016)(376014)(1800799024)(38070700021)(6133799003)(10067099003)(56012099006)(4143699003)(5023799004)(11063799006)(18002099003)(22082099003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?M2YxbHBpaXRXZCtLUVNiNVlYS1BPUWRTZ2g3bm1zUjhTK0Q2RVdBTlBFN1pE?= =?utf-8?B?RmZGZDNFWGVFc21HODNtVVNENlFuRHAyYjBVQkpKVTNvWGl0Y3NCcy9TRitT?= =?utf-8?B?eXM4QnQ2NmQyNkJ3d0lOSE1ndG15Q2h1UnQ4Rk5yOG1BdStUdlhxUHRpN2tZ?= =?utf-8?B?YkFjaEpSUGpwR3BhYmVEUi9hblA1QlVDZkwwV1h0MWI2dE02TFAydHNidmFK?= =?utf-8?B?RFJMUm5DbEFMWkNQam9sWGJJeUZtUjRsSVdKREJJK3pUTnE1WkdBalIrMEpz?= =?utf-8?B?TU5nNkY1dUpqSzlCcW5qNmtOSFRoMGgyVVJxaittMDY3WkZxYTA3VzhyVnpk?= =?utf-8?B?UDB6T3pINDkxanZBY3RweTY2R1FzYlljbFlyOUs2SncvUGlrUmJwOHhjazcv?= =?utf-8?B?NE9aSmhzUWFTLzQ5bng5NG91NUxVOXJ2YUt3NC96YjJtZ0xHVXBEd3Irb21R?= =?utf-8?B?M2FDa2xQUkVPeGRmRy9NNTV2UmIvd1ZNUXdNVUhlSzRFZUFJSjBMWlpuVktx?= =?utf-8?B?Vnl6Mk5jeW16UjFCSytTK0prQWlUbjVZZzNQd0dvb0FMcGlBTVFpRHhQNENL?= =?utf-8?B?R0M0dlpOa1pkVlNuN1h2T1pHbk4rZE5NRzR5ejVOYUcwK0d5OXpjdW16aWdx?= =?utf-8?B?NC82VGxWaFBQZkRUSmpMT1ZkMjg0K1g2WTU5VlJ5Z0kyWElxazBUYThsS1kx?= =?utf-8?B?ZXlTYjIySTZTbGhZcVBITkhjUklmek5wV0hGallUbWQ3YU5FVFhScGhqY29Q?= =?utf-8?B?enpMOWtDT0ZYdTBpNk9qaGhxNTM2eWl5b2xvMkpzYXdWYWZaWHJXWnNyY291?= =?utf-8?B?MTd0Nzc3MW5UMDAwRWtKcW9tdlRpUndTZ251TncxOHZsYUpPUGlwZzJ1UWJq?= =?utf-8?B?d2ZPN0liSCtjNDJoMkk0dWFZYzF2ZHZFYTRSdWtLYW1rbktPZzRlN1dPeCtu?= =?utf-8?B?Z21ucnR3YjR3RWdpSDd2bFJUU2MxL1RYWWRqcFpJbjFvRU5OQ2d2ajZaOERk?= =?utf-8?B?OFR5b3RPWEZXbWNjUGVMd2JORjFESEtrM0lXRmNjRnlEekRuSzBSYUlEK3lG?= =?utf-8?B?VThIbi9tQVJnYUxQZnp1MW0ydCtQZ0c5WEg0VVA1MFVSYzdicGNnSVhvcjFG?= =?utf-8?B?c3FQVEFSSVV5ZlkxOC9IT3pNSHNiMXczbEptUCtYZHBabHpFN3hlV1NtWVBy?= =?utf-8?B?eXFvYVYyaUVFdlNHOGRqV3l5blF6RVdFVmFnWlRWM09OUEhKL0RBRW9KWm0z?= =?utf-8?B?WGlLYTFlZFhaeVY4elVBNFNTWGhIQTB3aU5ueWYvZHhVUDhQSEY2Ym1TK2RB?= =?utf-8?B?VnFxSWxERGIyejNiR04yTzNkL2hDckcveWQ3ZDVTTXBBR2JCdmlnK2V0cmh6?= =?utf-8?B?dHkrczhBZ1R0Y2tqZXYzNlMvVTRPNFRFd1RPb1h0c0FVNFF1Rk9VVVQ4STFQ?= =?utf-8?B?eFFuTFJ2bG9tS3RtT2FsSkcrMS9oRFZnZm1iMTRyY200S2hpT0ZRdDVRY2tC?= =?utf-8?B?a2hzeFRzR2hxam1BTmpTRGdUM2RpMmUyNFIzcDBjbzhEZ1FCRWNDQnJGeldB?= =?utf-8?B?UG50LzdaZkFrYnVjU2VoSGtBcS9ycW01M1dGaWJwbW5ta0tiTmYzQlJJVkJP?= =?utf-8?B?YkdaWGhPK1Y1RkI1RUhRUVNIbUdYWUpFemhXSnI3STVva1VKRWxLc2g3S0du?= =?utf-8?B?dmNWVXVxODg4UUE1eUdkUnBDSUNNblEzeitKL3hWaEV4cjJpMEdUMFZDNW1t?= =?utf-8?B?dG1qYVVvQmNpMFJ6MUh5M2ZGYWptOEdxdmFzeXJoTVZTQmFHNVY3VW16SWE0?= =?utf-8?B?QVFma1VtRTBuRU9PSXJHS085K0paSHNsWldOYlJmQ0xVYUpsNVVUMUVRbkxL?= =?utf-8?B?a0RONzNRU3BuRVdFb3ZRelZYQnZyMCtNdndXOFRGdFdsd0tWaktnak1nY0Qw?= =?utf-8?B?R0xROFl6c3B2Q01Gb2tRS3VndlFOVWdWOW96cW9KS2Y2WFdGMUU5ZFloU2dH?= =?utf-8?B?YU41UzA4TVV6VzMzODNlaElmSUlabnphWGRGVHlXMWxYazdIZThMcWxOUWQ5?= =?utf-8?B?QUh3bHR2d0tyLzBXRElPZVlBWGdYU3hEbVQ2TjJZTjNUZUh3UzN4Rk1OL2pX?= =?utf-8?B?OEw2TzI4RTFadmx2dGxSWDZsRGhISG95VFViUTNFRHQvVzZVVkQrVEN0LzZQ?= =?utf-8?B?d1g2RWx6VDM1SC9ZUVQxVGhBNTVERHhIMkpqQkN3REVQK3ZYUWIrdU10VUtl?= =?utf-8?B?VElFTS8vZ1ZmVStzbHA3WWJZQUlGcUJmaHd2Y1pUWFJQMzJRN3dvWDdNTVR4?= =?utf-8?B?dmQvY3VTZFpGeG1lQ05rMkZ3UU1taTc0MFdsUXByYVQ4UCs2YTQzMWZ5N1Rk?= =?utf-8?Q?jlfcoyg1xyw0VT8U=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: p1sHecNnAeCwQGkttDelPH86u/KzBhKL7gjmHHFQzE2ntAceVqSQyiXiWRRcr7ZAo3n3Wd2WS9xDxrBbbcD/ahd/FRRBndGz++sQ3M+3IRutBmskVwIhr5hT8ZCGtrmj9AbDClOOrHERMbLFO2uadPEzbeC8IAlNHMBuLv/SO4mz4LgHqqiAUEJSDyZbp63nIAWb+7HVPsRkSbCJCp5Nw32cVSM8FJUhhVKjrugZHtgg6FnZJPuOR6HT6etnPGZwjJFS4YDH00AEVlqBOpquewRepFvxnxzkq4KLzt0BQBhxH27n4DgSvltK6o9lSu+l0FifPR2BZV8ZGE6CjI9MBQ== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY5PR11MB6320.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 822fdb5a-12a1-470b-57b8-08df18e03367 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Sep 2026 19:32:12.3506 (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: QpgLhEJ6VHRhjXfuHwXf/zun4demYfjtV3jfX3YqlsEQeUdlia2BUJuqTCShEzQP60yi7kWNk87BKG733Lf5aXJR1cb0VNhSJrIWAQT2voQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB7917 X-OriginatorOrg: intel.com X-BeenThere: igt-dev@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development mailing list for IGT GPU Tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" T24gVHVlLCAyMDI2LTA5LTIyIGF0IDA5OjA5ICswMjAwLCBMdWthc3ogTGFndW5hIHdyb3RlOgo+ IEFsbG93IHRoZSBwZi1jaGVjay12ZnMtaWRzIHN1YnRlc3QgdG8gcnVuIGluIGVudmlyb25tZW50 IHdoZXJlIFZGcwo+IGFyZQo+IGFscmVhZHkgZW5hYmxlZC4gVG8gZG8gdGhhdCwgdGhlIFZGU19F TkFCTEVEPTEgZW52aXJvbm1lbnQgdmFyaWFibGUKPiBuZWVkcyB0byBiZSBzZXQuCj4gCj4gV2hl biBWRnMgYXJlIHByZS1lbmFibGVkLCB0aGUgcGYtY2hlY2stdmZzLWlkIHN1YnRlc3QgdXNlcyB0 aGUKPiBleGlzdGluZwo+IFZGLCB3aGlsZSBvdGhlciBzdWJ0ZXN0cyB0aGF0IHJlcXVpcmUgdGVz dCBtYW5hZ2VkIFZGIGVuYWJsaW5nIGFyZQo+IHNraXBwZWQuCj4gCj4gU2lnbmVkLW9mZi1ieTog THVrYXN6IExhZ3VuYSA8bHVrYXN6LmxhZ3VuYUBpbnRlbC5jb20+Cj4gLS0tCj4gdjI6Cj4gwqAt IGluc3RhbGwgZXhpdCBoYW5kbGVyIChNYXJjaW4pLAo+IMKgLSBzL3NraXBfd2hlbl91c2luZ19l eGlzdGluZ192ZnMvcmVxdWlyZV90ZXN0X21hbmFnZWRfdmZzIChNYXJjaW4pLgo+IC0tLQo+IMKg bGliL2lndF9zcmlvdl9kZXZpY2UuY8KgwqDCoMKgwqAgfCAyNiArKysrKysrKysrKy0tLS0tLQo+ IMKgdGVzdHMvaW50ZWwveGVfc3Jpb3ZfZ2d0dC5jIHwgNTYgKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0KPiAtLQo+IMKgMiBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCsp LCAyMSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9zcmlvdl9kZXZpY2Uu YyBiL2xpYi9pZ3Rfc3Jpb3ZfZGV2aWNlLmMKPiBpbmRleCA2YzlmYmRmNzAuLjI2Yjc3NWIzYyAx MDA2NDQKPiAtLS0gYS9saWIvaWd0X3NyaW92X2RldmljZS5jCj4gKysrIGIvbGliL2lndF9zcmlv dl9kZXZpY2UuYwo+IEBAIC01NTAsNiArNTUwLDcgQEAgYm9vbCBpbnRlbF9pc192Zl9kZXZpY2Uo aW50IGZkKQo+IMKgc3RydWN0IHNyaW92X2V4aXRfaGFuZGxlcl9jdHggewo+IMKgwqDCoMKgwqDC oMKgwqBpbnQgcGY7Cj4gwqDCoMKgwqDCoMKgwqDCoGJvb2wgYXV0b3Byb2JlOwo+ICvCoMKgwqDC oMKgwqDCoHVuc2lnbmVkIGludCBudW1fdmZzOwo+IMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc3Jpb3Zf ZXhpdF9jbGVhbnVwX2ZuIGNsZWFudXBfZm47Cj4gwqDCoMKgwqDCoMKgwqDCoHZvaWQgKmNsZWFu dXBfZGF0YTsKPiDCoH07Cj4gQEAgLTU3Miw3ICs1NzMsMTIgQEAgc3RhdGljIHZvaWQgc3Jpb3Zf ZXhpdF9oYW5kbGVyKGludCBzaWcpCj4gwqDCoMKgwqDCoMKgwqDCoGlmIChzcmlvdl9leGl0X2N0 eC5wZiA8IDApCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47Cj4gwqAK PiAtwqDCoMKgwqDCoMKgwqBpZ3Rfc3Jpb3ZfZGlzYWJsZV92ZnMoc3Jpb3ZfZXhpdF9jdHgucGYp Owo+ICvCoMKgwqDCoMKgwqDCoGlmICghc3Jpb3ZfZXhpdF9jdHgubnVtX3Zmcykgewo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc3Jpb3ZfZGlzYWJsZV92ZnMoc3Jpb3ZfZXhp dF9jdHgucGYpOwo+ICvCoMKgwqDCoMKgwqDCoH0gZWxzZSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGlmIChpZ3Rfc3Jpb3ZfZ2V0X2VuYWJsZWRfdmZzKHNyaW92X2V4aXRfY3R4 LnBmKSAhPQo+IHNyaW92X2V4aXRfY3R4Lm51bV92ZnMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3Rfd2FybigiVGVzdCBtb2RpZmllZCBudW1iZXIg b2YgZW5hYmxlZAo+IFZGc1xuIik7Cj4gK8KgwqDCoMKgwqDCoMKgfQo+IMKgCj4gwqDCoMKgwqDC oMKgwqDCoGlmIChzcmlvdl9leGl0X2N0eC5jbGVhbnVwX2ZuKQo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgc3Jpb3ZfZXhpdF9jdHguY2xlYW51cF9mbihzcmlvdl9leGl0X2N0eC5w Ziwgc2lnLAo+IEBAIC01ODcsMTcgKzU5MywxNyBAQCBzdGF0aWMgdm9pZCBzcmlvdl9leGl0X2hh bmRsZXIoaW50IHNpZykKPiDCoC8qKgo+IMKgICogaWd0X3NyaW92X2luc3RhbGxfZXhpdF9oYW5k bGVyIC0gSW5zdGFsbCBiZXN0LWVmZm9ydCBTUi1JT1YKPiBjbGVhbnVwIGhhbmRsZXIKPiDCoCAq IEBwZjogUEYgZGV2aWNlIGZpbGUgZGVzY3JpcHRvcgo+IC0gKiBAY2xlYW51cF9mbjogT3B0aW9u YWwgY2FsbGJhY2sgaW52b2tlZCBhZnRlciBWRiBkaXNhYmxlCj4gKyAqIEBjbGVhbnVwX2ZuOiBP cHRpb25hbCBjYWxsYmFjawo+IMKgICogQGNsZWFudXBfZGF0YTogT3BhcXVlIGNhbGxiYWNrIGRh dGEKPiDCoCAqCj4gwqAgKiBSZWdpc3RlcnMgYSBwcm9jZXNzLWV4aXQgY2xlYW51cCByb3V0aW5l IGZvciBTUi1JT1YgdGVzdHMuIFRoZQo+IGhhbmRsZXIgcnVucwo+IC0gKiBmcm9tIG5vcm1hbCBh bmQgc2lnbmFsLXRyaWdnZXJlZCBleGl0cyAod2hlbiBwb3NzaWJsZSksIGRpc2FibGVzCj4gVkZz LAo+IC0gKiBpbnZva2VzIEBjbGVhbnVwX2ZuIGlmIHByb3ZpZGVkIChwYXNzaW5nIHNpZ25hbCBu dW1iZXIsIG9yIDAgb24KPiBub3JtYWwKPiAtICogZXhpdCksIGFuZCByZXN0b3JlcyB0aGUgb3Jp Z2luYWwgYXV0b3Byb2JlIHNldHRpbmcgY2FwdHVyZWQgYXQKPiAtICogaW5zdGFsbGF0aW9uIHRp bWUuIFRlc3RzIHRoYXQgcGVyZm9ybSBmdWxsIGV4cGxpY2l0IHRlYXJkb3duCj4gc2hvdWxkIGNh bGwKPiAtICogaWd0X3NyaW92X2NsZWFyX2V4aXRfaGFuZGxlcigpIG9uY2UgdGhhdCB0ZWFyZG93 biBzdWNjZWVkcy4gQW4KPiBpbnRlcm5hbAo+IC0gKiBkdXBsaWNhdGUgb2YgQHBmIGlzIGtlcHQg c28gY2xlYW51cCByZW1haW5zIHVzYWJsZSBldmVuIGlmIHRoZQo+IGNhbGxlciBjbG9zZXMKPiAt ICogdGhlIG9yaWdpbmFsIERSTSBmZCBiZWZvcmUgcHJvY2VzcyBleGl0Lgo+ICsgKiBmcm9tIG5v cm1hbCBhbmQgc2lnbmFsLXRyaWdnZXJlZCBleGl0cyAod2hlbiBwb3NzaWJsZSksIGRpc2FibGVz Cj4gVkZzIGlmIG5vIFZGcwo+ICsgKiB3ZXJlIGVuYWJsZWQgYXQgaW5zdGFsbGF0aW9uIHRpbWUs IGludm9rZXMgQGNsZWFudXBfZm4gaWYKPiBwcm92aWRlZCAocGFzc2luZwo+ICsgKiBzaWduYWwg bnVtYmVyLCBvciAwIG9uIG5vcm1hbCBleGl0KSwgYW5kIHJlc3RvcmVzIHRoZSBvcmlnaW5hbAo+ IGF1dG9wcm9iZQo+ICsgKiBzZXR0aW5nIGNhcHR1cmVkIGF0IGluc3RhbGxhdGlvbiB0aW1lLiBU ZXN0cyB0aGF0IHBlcmZvcm0gZnVsbAo+IGV4cGxpY2l0Cj4gKyAqIHRlYXJkb3duIHNob3VsZCBj YWxsIGlndF9zcmlvdl9jbGVhcl9leGl0X2hhbmRsZXIoKSBvbmNlIHRoYXQKPiB0ZWFyZG93bgo+ ICsgKiBzdWNjZWVkcy4gQW4gaW50ZXJuYWwgZHVwbGljYXRlIG9mIEBwZiBpcyBrZXB0IHNvIGNs ZWFudXAgcmVtYWlucwo+IHVzYWJsZSBldmVuCj4gKyAqIGlmIHRoZSBjYWxsZXIgY2xvc2VzIHRo ZSBvcmlnaW5hbCBEUk0gZmQgYmVmb3JlIHByb2Nlc3MgZXhpdC4KPiDCoCAqLwo+IMKgdm9pZCBp Z3Rfc3Jpb3ZfaW5zdGFsbF9leGl0X2hhbmRsZXIoaW50IHBmLAo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWd0 X3NyaW92X2V4aXRfY2xlYW51cF9mbgo+IGNsZWFudXBfZm4sCj4gQEAgLTYxNiw2ICs2MjIsNyBA QCB2b2lkIGlndF9zcmlvdl9pbnN0YWxsX2V4aXRfaGFuZGxlcihpbnQgcGYsCj4gwqAKPiDCoMKg wqDCoMKgwqDCoMKgc3Jpb3ZfZXhpdF9jdHgucGYgPSBwZl9kdXA7Cj4gwqDCoMKgwqDCoMKgwqDC oHNyaW92X2V4aXRfY3R4LmF1dG9wcm9iZSA9Cj4gaWd0X3NyaW92X2lzX2RyaXZlcl9hdXRvcHJv YmVfZW5hYmxlZChwZl9kdXApOwo+ICvCoMKgwqDCoMKgwqDCoHNyaW92X2V4aXRfY3R4Lm51bV92 ZnMgPSBpZ3Rfc3Jpb3ZfZ2V0X2VuYWJsZWRfdmZzKHBmX2R1cCk7Cj4gwqDCoMKgwqDCoMKgwqDC oHNyaW92X2V4aXRfY3R4LmNsZWFudXBfZm4gPSBjbGVhbnVwX2ZuOwo+IMKgwqDCoMKgwqDCoMKg wqBzcmlvdl9leGl0X2N0eC5jbGVhbnVwX2RhdGEgPSBjbGVhbnVwX2RhdGE7Cj4gwqAKPiBAQCAt NjMyLDYgKzYzOSw3IEBAIHZvaWQgaWd0X3NyaW92X2NsZWFyX2V4aXRfaGFuZGxlcih2b2lkKQo+ IMKgewo+IMKgwqDCoMKgwqDCoMKgwqBzcmlvdl9leGl0X2hhbmRsZXJfcmVsZWFzZV9mZCgpOwo+ IMKgwqDCoMKgwqDCoMKgwqBzcmlvdl9leGl0X2N0eC5hdXRvcHJvYmUgPSBmYWxzZTsKPiArwqDC oMKgwqDCoMKgwqBzcmlvdl9leGl0X2N0eC5udW1fdmZzID0gMDsKPiDCoMKgwqDCoMKgwqDCoMKg c3Jpb3ZfZXhpdF9jdHguY2xlYW51cF9mbiA9IE5VTEw7Cj4gwqDCoMKgwqDCoMKgwqDCoHNyaW92 X2V4aXRfY3R4LmNsZWFudXBfZGF0YSA9IE5VTEw7Cj4gwqB9Cj4gZGlmZiAtLWdpdCBhL3Rlc3Rz L2ludGVsL3hlX3NyaW92X2dndHQuYwo+IGIvdGVzdHMvaW50ZWwveGVfc3Jpb3ZfZ2d0dC5jCj4g aW5kZXggYmNkNzYzZWIwLi5kOWIzY2NkYmIgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvaW50ZWwveGVf c3Jpb3ZfZ2d0dC5jCj4gKysrIGIvdGVzdHMvaW50ZWwveGVfc3Jpb3ZfZ2d0dC5jCj4gQEAgLTQ3 LDYgKzQ3LDggQEAgSUdUX1RFU1RfREVTQ1JJUFRJT04oIlhlIHRlc3RzIGZvciBTUi1JT1YgR0dU VCIpOwo+IMKgCj4gwqAjZGVmaW5lIFNSSU9WX0dHVFRfVEMoX19uYW1lKcKgwqAudGVzdCA9IF9f bmFtZSwgLm5hbWUgPSAjX19uYW1lCj4gwqAKPiArc3RhdGljIGJvb2wgdXNlX2V4aXN0aW5nX3Zm czsKPiArCj4gwqBzdHJ1Y3QgZ2d0dF90ZXN0X2RhdGEgewo+IMKgwqDCoMKgwqDCoMKgwqBpbnQg cGZfZmQ7Cj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCB4ZV9tbWlvIG1taW87Cj4gQEAgLTM5OSw4 ICs0MDEsMTAgQEAgc3RhdGljIHZvaWQgaW5pdF9zdWJ0ZXN0KGludCBwZl9mZCwgaW50IHZmX2lk LAo+IHVpbnQ4X3QgdGlsZSwKPiDCoMKgwqDCoMKgwqDCoMKgdWludDE2X3QgZGV2X2lkID0gaW50 ZWxfZ2V0X2RybV9kZXZpZChwZl9mZCk7Cj4gwqDCoMKgwqDCoMKgwqDCoHVuc2lnbmVkIGludCBu cl9yYW5nZXMsIG1haW5fZ3Q7Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqBpZ3Rfc3Jpb3ZfZGlzYWJs ZV9kcml2ZXJfYXV0b3Byb2JlKHBmX2ZkKTsKPiAtwqDCoMKgwqDCoMKgwqBpZ3Rfc3Jpb3ZfZW5h YmxlX3ZmcyhwZl9mZCwgbnVtX3Zmcyk7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKCF1c2VfZXhpc3Rp bmdfdmZzKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9zcmlvdl9kaXNh YmxlX2RyaXZlcl9hdXRvcHJvYmUocGZfZmQpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZ3Rfc3Jpb3ZfZW5hYmxlX3ZmcyhwZl9mZCwgbnVtX3Zmcyk7Cj4gK8KgwqDCoMKgwqDC oMKgfQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoC8qIHJlZnJlc2ggUENJIHN0YXRlICovCj4gwqDC oMKgwqDCoMKgwqDCoGlndF9wY2lfc3lzdGVtX3JlaW5pdCgpOwo+IEBAIC00MzcsNyArNDQxLDgg QEAgc3RhdGljIHZvaWQgZmluaV9zdWJ0ZXN0KHN0cnVjdAo+IHhlX3NyaW92X3Byb3Zpc2lvbmVk X3JhbmdlICpyYW5nZSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhlX21taW9f YWNjZXNzX2ZpbmkoJnRlc3RfZGF0YS0+cGZfbW1pbyk7Cj4gwqDCoMKgwqDCoMKgwqDCoHhlX21t aW9fYWNjZXNzX2ZpbmkoJnRlc3RfZGF0YS0+bW1pbyk7Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqBp Z3Rfc3Jpb3ZfZGlzYWJsZV92ZnModGVzdF9kYXRhLT5wZl9mZCk7Cj4gK8KgwqDCoMKgwqDCoMKg aWYgKCF1c2VfZXhpc3RpbmdfdmZzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBp Z3Rfc3Jpb3ZfZGlzYWJsZV92ZnModGVzdF9kYXRhLT5wZl9mZCk7Cj4gwqB9Cj4gwqAKPiDCoCNk ZWZpbmUgZm9yX2VhY2hfcHRlX3Rlc3QodGNfXywgdGVzdGNhc2VzX18pIFwKPiBAQCAtNjYzLDYg KzY2OCwxMiBAQCBzdGF0aWMgdm9pZCBza2lwX29uX210bF92ZihpbnQgcGZfZmQpCj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJPbiBNVEwgVkYgdGhlcmUgaXMg bm8gYWNjZXNzIHRvIEdHVFQgdGhyb3VnaAo+IE1NSU8sIHNraXBcbiIpOwo+IMKgfQo+IMKgCj4g K3N0YXRpYyB2b2lkIHJlcXVpcmVfdGVzdF9tYW5hZ2VkX3Zmcyh2b2lkKQo+ICt7Cj4gK8KgwqDC oMKgwqDCoMKgaWd0X3NraXBfb25fZih1c2VfZXhpc3RpbmdfdmZzLAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJUaGlzIHN1YnRlc3QgY2Fubm90IGJlIHJ1biB3 aXRoIGV4aXN0aW5nCj4gVkZzXG4iKTsKPiArfQo+ICsKPiDCoHN0YXRpYyBpbnQgb3B0c19oYW5k bGVyKGludCBvcHQsIGludCBvcHRfaW5kZXgsIHZvaWQgKmRhdGEpCj4gwqB7Cj4gwqDCoMKgwqDC oMKgwqDCoHN3aXRjaCAob3B0KSB7Cj4gQEAgLTY5MSw2ICs3MDIsNyBAQCBzdGF0aWMgY29uc3Qg Y2hhciBoZWxwX3N0cltdID0KPiDCoAo+IMKgaW50IGlndF9tYWluX2FyZ3MoIiIsIGxvbmdfb3B0 cywgaGVscF9zdHIsIG9wdHNfaGFuZGxlciwgTlVMTCkKPiDCoHsKPiArwqDCoMKgwqDCoMKgwqB1 bnNpZ25lZCBpbnQgZW5hYmxlZF92ZnM7Cj4gwqDCoMKgwqDCoMKgwqDCoGJvb2wgYXV0b3Byb2Jl Owo+IMKgwqDCoMKgwqDCoMKgwqB1aW50OF90IHRpbGU7Cj4gwqDCoMKgwqDCoMKgwqDCoGludCBw Zl9mZDsKPiBAQCAtNjk5LDI3ICs3MTEsNDAgQEAgaW50IGlndF9tYWluX2FyZ3MoIiIsIGxvbmdf b3B0cywgaGVscF9zdHIsCj4gb3B0c19oYW5kbGVyLCBOVUxMKQo+IMKgwqDCoMKgwqDCoMKgwqB7 Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwZl9mZCA9IGRybV9vcGVuX2RyaXZl cihEUklWRVJfWEUpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3JlcXVp cmUoaWd0X3NyaW92X2lzX3BmKHBmX2ZkKSk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGlndF9yZXF1aXJlKGlndF9zcmlvdl9nZXRfZW5hYmxlZF92ZnMocGZfZmQpID09IDApOwo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1c2VfZXhpc3RpbmdfdmZzID0KPiBpZ3Rf Y2hlY2tfYm9vbGVhbl9lbnZfdmFyKCJWRlNfRU5BQkxFRCIsIGZhbHNlKTsKCkJpdCBvZiBhIGZs eWJ5IGhlcmUuLi4gSSBkb24ndCB1bmRlcnN0YW5kIHdoeSB3ZSBhcmVuJ3QganVzdCB1c2luZyB0 aGUKZXhpc3RpbmcgVkZzIGluIGFsbCBjYXNlcyB0aGF0IGFyZW4ndCBkb2luZyBleHBsaWNpdCBl bmFibGUvZGlzYWJsZQp0ZXN0aW5nPyBJZiB3ZSdyZSB3b3JyaWVkIGluZGl2aWR1YWwgY2FzZXMg bWlnaHQgYmVoYXZlIGRpZmZlcmVudGx5IG9uCmEgZnJlc2hseSBlbmFibGVkIFZGIHZzIGEgcHJl LWV4aXN0aW5nIFZGLCB3aHkgZG9uJ3Qgd2UganVzdCBlbnN1cmUgQ0kKaXMgcmFuZG9taXppbmcg dGhlIHRlc3Qgb3JkZXJpbmcgYW5kIGNhdGNoIHZpYSBDSSBpbnN0ZWFkIG9mIGhhdmluZwpjb21w bGV0ZWx5IHNlcGFyYXRlIGV4ZWN1dGlvbnM/CgpUaGFua3MsClN0dWFydAoKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgZW5hYmxlZF92ZnMgPSBpZ3Rfc3Jpb3ZfZ2V0X2VuYWJsZWRf dmZzKHBmX2ZkKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3JlcXVpcmUo dXNlX2V4aXN0aW5nX3ZmcyA/IGVuYWJsZWRfdmZzID4gMCA6Cj4gZW5hYmxlZF92ZnMgPT0gMCk7 Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhdXRvcHJvYmUgPQo+IGlndF9zcmlv dl9pc19kcml2ZXJfYXV0b3Byb2JlX2VuYWJsZWQocGZfZmQpOwo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgaWd0X3NyaW92X2luc3RhbGxfZXhpdF9oYW5kbGVyKHBmX2ZkLCBOVUxM LCBOVUxMKTsKPiDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoGlndF9k ZXNjcmliZSgiVmVyaWZ5IHRoYXQgdGhlIFZGIElEIGluIHRoZSBHR1RUIFBURSBoYXMgYmVlbgo+ IGNvcnJlY3RseSBhc3NpZ25lZCIpOwo+IC3CoMKgwqDCoMKgwqDCoGlndF9zdWJ0ZXN0X3dpdGhf ZHluYW1pYygicGYtY2hlY2stdmZzLWlkcyIpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGZvcl9lYWNoX3NyaW92X251bV92ZnMocGZfZmQsIG51bV92ZnMpCj4gK8KgwqDCoMKgwqDC oMKgaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJwZi1jaGVjay12ZnMtaWRzIikgewo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAodXNlX2V4aXN0aW5nX3Zmcykgewo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhlX2Zvcl9lYWNoX3Rp bGUocGZfZmQsIHRpbGUpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2R5bmFtaWNfZigibnVtdmZzLSV1LXRpbGUtJXUi LAo+IG51bV92ZnMsIHRpbGUpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBmX2NoZWNrX3Zmc19p ZHMocGZfZmQsIHRpbGUsCj4gbnVtX3Zmcyk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2R5bmFtaWNfZigibnVtdmZz LSV1LXRpbGUtJXUiLAo+IGVuYWJsZWRfdmZzLCB0aWxlKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBwZl9jaGVja192ZnNfaWRzKHBmX2ZkLCB0aWxlLAo+IGVuYWJsZWRfdmZzKTsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSBlbHNlIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZvcl9lYWNoX3NyaW92X251bV92ZnMocGZfZmQsIG51 bV92ZnMpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqB4ZV9mb3JfZWFjaF90aWxlKHBmX2ZkLCB0aWxlKQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBpZ3RfZHluYW1pY19mKCJudW12ZnMtJXUtCj4gdGlsZS0ldSIsIG51bV92 ZnMsIHRpbGUpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwZl9jaGVj a192ZnNfaWRzKHBmX2YKPiBkLCB0aWxlLCBudW1fdmZzKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgfQo+ICvCoMKgwqDCoMKgwqDCoH0KPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBpZ3RfZGVz Y3JpYmUoIlZlcmlmeSBvbiBQRiB0aGUgbW9kaWZpYWJpbGl0eSBvZiBHR1RUIFBURQo+IGFzc2ln bmVkIHRvIFZGcyIpOwo+IC3CoMKgwqDCoMKgwqDCoGlndF9zdWJ0ZXN0X3dpdGhfZHluYW1pYygi cGYtY2hlY2stdmZzLXB0ZSIpCj4gK8KgwqDCoMKgwqDCoMKgaWd0X3N1YnRlc3Rfd2l0aF9keW5h bWljKCJwZi1jaGVjay12ZnMtcHRlIikgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqByZXF1aXJlX3Rlc3RfbWFuYWdlZF92ZnMoKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHhlX2Zvcl9lYWNoX3RpbGUocGZfZmQsIHRpbGUpCj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2R5bmFtaWNfZigidGlsZS0ldSIsIHRp bGUpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHBmX2NoZWNrX3Zmc19wdGUocGZfZmQsIHRpbGUpOwo+ICvCoMKgwqDCoMKg wqDCoH0KPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBpZ3RfZGVzY3JpYmUoIlZlcmlmeSBvZiBtb2Rp ZmlhYmlsaXR5IG9mIEdHVFQgUFRFIG93bmVkIGJ5Cj4gVkYiKTsKPiDCoMKgwqDCoMKgwqDCoMKg aWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJ2ZnMtY2hlY2stb3duLXB0ZSIpIHsKPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNraXBfb25fbXRsX3ZmKHBmX2ZkKTsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVxdWlyZV90ZXN0X21hbmFnZWRfdmZzKCk7Cj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmb3JfZWFjaF9zcmlvdl92ZihwZl9mZCwgdmZf aWQpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeGVf Zm9yX2VhY2hfdGlsZShwZl9mZCwgdGlsZSkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2R5bmFtaWNfZigidmYldS10 aWxlLSV1IiwgdmZfaWQsCj4gdGlsZSkKPiBAQCAtNzMwLDYgKzc1NSw3IEBAIGludCBpZ3RfbWFp bl9hcmdzKCIiLCBsb25nX29wdHMsIGhlbHBfc3RyLAo+IG9wdHNfaGFuZGxlciwgTlVMTCkKPiDC oMKgwqDCoMKgwqDCoMKgaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJ2ZnMtY2hlY2stb3RoZXIt dmZzLXB0ZSIpIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9yZXF1aXJl KGlndF9zcmlvdl9nZXRfdG90YWxfdmZzKHBmX2ZkKSA+IDEpOwo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgc2tpcF9vbl9tdGxfdmYocGZfZmQpOwo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqByZXF1aXJlX3Rlc3RfbWFuYWdlZF92ZnMoKTsKPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGZvcl9lYWNoX3NyaW92X3ZmKHBmX2ZkLCB2Zl9pZCkKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4ZV9mb3JfZWFjaF90 aWxlKHBmX2ZkLCB0aWxlKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfZHluYW1pY19mKCJ2ZiV1LXRpbGUtJXUiLCB2 Zl9pZCwKPiB0aWxlKQo+IEBAIC03MzksNiArNzY1LDcgQEAgaW50IGlndF9tYWluX2FyZ3MoIiIs IGxvbmdfb3B0cywgaGVscF9zdHIsCj4gb3B0c19oYW5kbGVyLCBOVUxMKQo+IMKgwqDCoMKgwqDC oMKgwqBpZ3RfZGVzY3JpYmUoIlZlcmlmeSB0aGUgbm9uLWF2YWlsYWJpbGl0eSBvZiBWRiB0byBH R1RUIFBURXMKPiBvd25lZCBieSBQRiIpOwo+IMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc3VidGVzdF93 aXRoX2R5bmFtaWMoInZmcy1jaGVjay1wZi1wdGUiKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBza2lwX29uX210bF92ZihwZl9mZCk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHJlcXVpcmVfdGVzdF9tYW5hZ2VkX3ZmcygpOwo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZm9yX2VhY2hfc3Jpb3ZfdmYocGZfZmQsIHZmX2lkKQo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhlX2Zvcl9lYWNoX3RpbGUo cGZfZmQsIHRpbGUpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9keW5hbWljX2YoInZmJXUtdGlsZS0ldSIsIHZmX2lk LAo+IHRpbGUpCj4gQEAgLTc0Niw5ICs3NzMsMTQgQEAgaW50IGlndF9tYWluX2FyZ3MoIiIsIGxv bmdfb3B0cywgaGVscF9zdHIsCj4gb3B0c19oYW5kbGVyLCBOVUxMKQo+IMKgwqDCoMKgwqDCoMKg wqB9Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgaWd0X2ZpeHR1cmUoKSB7Cj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGlndF9zcmlvdl9kaXNhYmxlX3ZmcyhwZl9mZCk7Cj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIGFib3J0IHRvIGF2b2lkIGV4ZWN1dGlvbiBvZiBu ZXh0IHRlc3RzIHdpdGgKPiBlbmFibGVkIFZGcyAqLwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZ3RfYWJvcnRfb25fZihpZ3Rfc3Jpb3ZfZ2V0X2VuYWJsZWRfdmZzKHBmX2ZkKSA+ IDAsCj4gIkZhaWxlZCB0byBkaXNhYmxlIFZGKHMpIik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGlmICh1c2VfZXhpc3RpbmdfdmZzKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoaWd0X3NyaW92X2dldF9lbmFibGVkX3Zmcyhw Zl9mZCkgIT0KPiBlbmFibGVkX3ZmcykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3Rfd2FybigiVGVzdCBtb2RpZmllZCBu dW1iZXIgb2YKPiBlbmFibGVkIFZGc1xuIik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoH0gZWxzZSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZ3Rfc3Jpb3ZfZGlzYWJsZV92ZnMocGZfZmQpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogYWJvcnQgdG8gYXZvaWQgZXhlY3V0aW9uIG9m IG5leHQgdGVzdHMKPiB3aXRoIGVuYWJsZWQgVkZzICovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfYWJvcnRfb25fZihpZ3Rfc3Jpb3ZfZ2V0X2Vu YWJsZWRfdmZzKHBmX2YKPiBkKSA+IDAsICJGYWlsZWQgdG8gZGlzYWJsZSBWRihzKSIpOwo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBhdXRvcHJvYmUgPyBpZ3Rfc3Jpb3ZfZW5hYmxlX2RyaXZlcl9hdXRvcHJvYmUocGZf ZmQpCj4gOgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoAo+IGlndF9zcmlvdl9kaXNhYmxlX2RyaXZlcl9hdXRvcHJvYmUocGZfZmQpOwo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2Fib3J0X29uX2YoYXV0b3Byb2JlICE9 Cj4gaWd0X3NyaW92X2lzX2RyaXZlcl9hdXRvcHJvYmVfZW5hYmxlZChwZl9mZCksCgo=