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 95255C02181 for ; Wed, 22 Jan 2025 17:00:12 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 60A4310E17D; Wed, 22 Jan 2025 17:00:12 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="coZqTvN+"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) by gabe.freedesktop.org (Postfix) with ESMTPS id D6C3610E17D for ; Wed, 22 Jan 2025 17:00:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1737565212; x=1769101212; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=5dUcV8TdZiRYyaqqqLWEYbMb9H0QHLRPy5ZLS4B7YSo=; b=coZqTvN+Tu5COCoEV7W+LwBlLi7fpU3Gw/HhywymD5KJoxM8z4PCSaBZ aYAgRgIpmcXAOLoDsxGXMlN8iL0uTKEw+BgdsGtOroxGttcEWQyePJHFW s6fcRy6gyK/jXBvLq6uUFuYg5d2XYr5htO0xft1TupiRYEYK3dSqZpHX2 uHZpkHxervIJ5Up2LvntdYXJqAIKhkVTfnuIWCo3ALP9BRISCU5D8X3D1 I5RlI66mx5pocgpixcTKwwMDQXzxF4wItifhNWjoFU8Gm0FnyJ1yMMs9g oacwe85GT+UZU2e6Wv1TDzeW2Azv2hernwUcO6Z17ZjiUq3ZxZexXOJ7F g==; X-CSE-ConnectionGUID: BmFDmnNASdqAgMqb+jwsjA== X-CSE-MsgGUID: 922R4wDrQg2YYT578gjdbg== X-IronPort-AV: E=McAfee;i="6700,10204,11323"; a="63384435" X-IronPort-AV: E=Sophos;i="6.13,225,1732608000"; d="scan'208";a="63384435" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jan 2025 09:00:11 -0800 X-CSE-ConnectionGUID: CIH3c/5ZThOj/eq4m9juQQ== X-CSE-MsgGUID: C6n8a2DqRyy35xa9v6LlgA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.13,225,1732608000"; d="scan'208";a="107006573" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orviesa009.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 22 Jan 2025 09:00:11 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.44; Wed, 22 Jan 2025 09:00:10 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.44 via Frontend Transport; Wed, 22 Jan 2025 09:00:10 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.47) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.44; Wed, 22 Jan 2025 09:00:09 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KMVXwptnN8bqvLnPqqxanIXpEplKrh9PLjknVDneoTz8HHNUL3mekmrPTM+1fJefZ+/sJy5XmR4DvIi67oNqIbE6+XBXpxzo12IrIgDufIPUdoL+8uUMW1sf+jY+xJNmG8Aj8tnq+F1F0nqaQhwn4I5q/rojKGNFPJW2oz2o6QQP52DBQktW3pcKzym1th14Efzw2Aw7Kta16pYFe8RucRin0MBCiaGYXpAc6ormfid67SCOvq3bBj74uamQ7QwOF2t+Nrui6Xo+lfg3vM/pOlZxb9dXAl9R/gkHvgFAlIwQC9qa+M0qHwGwNw46oT9qCSW6OaHFsds8Ebv6PdnZqg== 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=5dUcV8TdZiRYyaqqqLWEYbMb9H0QHLRPy5ZLS4B7YSo=; b=sWeCNiWUsYVzH8+VEwsjBB1ubZmjIj9PleZH/NDioLNA2XsVkWaVpqQzBpZjJSuFS/LiZYA+DG8F11qTG/WtSx/sHswqrVMlc9GDlZj0fZRJneeedsdSw47WeAJE/iN57O5RZ9R9f6un4ZOQQ0NQrVzhUWOyhdybPoKGCYS+Z3JhY+hUL1BdNLLzty5XzvWbU6KWg+4aIRUaPNLK33r59q4YG37O2tm5KGSaok7B607jSo33r41Gnm+SsvqjkiZDaqAWvhX1wOtyw0bsIzKbdAKv8dJGc+BCVNmTPYHpgd2n/QY0jfTXHl/09+s7Zu9tz7Ko/hVfYVHCSd4y1ItaaA== 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 DM4PR11MB8179.namprd11.prod.outlook.com (2603:10b6:8:18e::22) by MN2PR11MB4566.namprd11.prod.outlook.com (2603:10b6:208:24e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.22; Wed, 22 Jan 2025 16:59:27 +0000 Received: from DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::f5c2:eb59:d98c:e8ba]) by DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::f5c2:eb59:d98c:e8ba%5]) with mapi id 15.20.8356.020; Wed, 22 Jan 2025 16:59:26 +0000 From: "Souza, Jose" To: "Harrison, John C" , "De Marchi, Lucas" CC: "intel-xe@lists.freedesktop.org" , "Vivi, Rodrigo" , "Filipchuk, Julia" Subject: Re: [PATCH v3 1/1] drm/xe/guc: Fix GuC log/ct output via debugfs Thread-Topic: [PATCH v3 1/1] drm/xe/guc: Fix GuC log/ct output via debugfs Thread-Index: AQHbYUH+FvpdwQnBvUe+9vpaEM+tv7MLzpaAgAGC1YCAACCsgIAAHjwAgAEGh4CAAFQsgIAAIkIAgBQKYwCAAAPKAA== Date: Wed, 22 Jan 2025 16:59:26 +0000 Message-ID: References: <20250107202252.2642853-1-julia.filipchuk@intel.com> <3god5fzcfbzxwlssqdb6eenzedqkykv2scpktlk5uglgf2ro73@bjuq2knwuweh> <789cbf9a-fbd8-44e8-a528-22a6c098189e@intel.com> <2e2d831f-6b1f-457c-8166-ce8362182a55@intel.com> In-Reply-To: <2e2d831f-6b1f-457c-8166-ce8362182a55@intel.com> 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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB8179:EE_|MN2PR11MB4566:EE_ x-ms-office365-filtering-correlation-id: 2f4c6609-5421-47ab-6a75-08dd3b06210c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?Z0ZqSEkrNVV1U1ByckxQZVZndXNpNmc5c3ExTis5SDhGQW9sa1BOQ3RSbFZq?= =?utf-8?B?NlQzdExlc3dOYndNaEY4UmpEZk15bDBBeWRJWExrMVQ0Zkd4eEFjVFdFb0Uv?= =?utf-8?B?SHcvbjJhbThxL3Rpd1Z4Y1Z1ZVlpclE0Ukt4aFdmQzFqN3EyYzMvRmZvOEF6?= =?utf-8?B?TUZCb2VOR0pYWjN2dzdwVnh3VGxCbXh6clF1aFR0RHBpR3VlMlVrSVZqMEIw?= =?utf-8?B?VVNoajFtV3cvMEVUR2ptVnNOb2FMQ0cvMDJ0b0hvZGJwOEluRENMK0tpVHRD?= =?utf-8?B?Ti9oNytLNlY5MTZPT0xwWnhNTit2NHZkdG4wc2Fsc3hmdlZxbzNLMkJQVWJE?= =?utf-8?B?UVQzRDh4YWprUUtrb2lwc3VqZTVVSW93ZlZaNERKUUhJWTZzaFNsTkc1aW9t?= =?utf-8?B?anlrV3R4TjNqSEgzaVI2M3ZXejc0ekVVMlovYndxaHl0ZXBHNkVKVzZWQ2Qv?= =?utf-8?B?UG5JR3VuSjNnM2xGWTF4VER4NFY4dXFsMTVzSGJPZTdkNzc5U1hrM1AyeElC?= =?utf-8?B?VVg1NERRMkU3YnMzQVJIbXlYdGpXZU5ESVNuNkNSeTdiRDE0UWI1b1JHYUlE?= =?utf-8?B?end6eEdHNmxzcDkwdWhqYVU5dEtUak45dmNQQzlMQmI2MGdROGxKa3BwTDZ3?= =?utf-8?B?dzE1OFNUK09iZVhlZGROZmN1S2R6dEFFa3Byc0hQc1o5ZE1YNCs0SGJtUDcr?= =?utf-8?B?eXVRMmRmbGRiTXZHaUdudjdwTndpd0QvUVNaUXU3R09iSVJXQzg2SGtOd2JW?= =?utf-8?B?cWdrZVc2U2FUSStwY2lxK1VKcXJnVEYwNjljZkhYM3J0aTRWNm1ySnB1V3hY?= =?utf-8?B?Q3M3aEhpaDd4dW5pS2tiZmpndzh5bUIyMFJQZU9reHFaS0J6TWxyR08wWGVt?= =?utf-8?B?THVTRUtNdUR6Q1VRRFIwM0FQcjdaQ3h2QzRCTGhCWGhrS1ZnelY3dXU5cmp2?= =?utf-8?B?Z2crVm04NDBWZ0x3dnpIQitEdHVsYVhmOXdqdW40TmUrNjNxZGdZZ2xMUzJP?= =?utf-8?B?SDNtcjJaQ3RRL0ZUdWVWZXhaejNSS3AyNVRIZTlsdkhHT0VvbDk0NUZzcFpr?= =?utf-8?B?UGhSRmZrdk5Qa1VMaWNhZENuQlluSTlzSWltc0RtajFFWHUyNHQrMEFVWno2?= =?utf-8?B?VjYxSHBRSjIyTGJTT2tiMVVXenRHNVgxb0FIWDhpVGlWT1RXdjNHU21tUXE2?= =?utf-8?B?ZzdYRnlxQ2pwcEJEUWNWYkplMjY1LzhER2dxOXpDT3pKUCtxYzk4RkN2VnpM?= =?utf-8?B?bk1NV09qRzF2OHFzOHJuWkRvV3Nhc1EvSUJGS2h2ZUZrSzdhYWJPeTFQNkxG?= =?utf-8?B?SU1xVnArYVVPNkozb3h1UW1DNmNFMFZ2VnpuUmJCeWxtRE94MTlNeVpjSEVO?= =?utf-8?B?STkxZFBKNVNHbGJYbWFCNVpxcE0vbjZmUFREUzNuTDkwVk02WjVENkRvbk9D?= =?utf-8?B?T2t4YllHcTByNE1rdSt0MERJSnZrdTVRQmNZYVdPSzRTRHJBWFVTT1F3M2xF?= =?utf-8?B?ek41bmxvbmdCZFcyWFA0TzBNT2NMT2tnU2JEM3QyOVo0eTNBWm51T25zRjVy?= =?utf-8?B?RjZXUFZFOWxnRndIUHcyYTdWeTUrb3N4QTExSlJKUFZjYnNvVjhnWEJPYysz?= =?utf-8?B?VWEvemd5U1JQNkZmdTlxVmFOekdJWkUzWi91TWFRbWRlcmt1aHkzZUJSZmVJ?= =?utf-8?B?dDRMSGNQSjVaRi8rbVIwL2RTRWRUYzdPNVR5OW9VL2o2S1g4aHAxNVlGK3dt?= =?utf-8?B?UzhWQlhqaTVqRWUzT2xhaktCSlFTUlBlYTViWnVGcEZFNktGNkN1dTg1MzJt?= =?utf-8?B?eXRPcmE0b2dFREpMSGFRNENLeTBkNVpDdG1Kb2hzb1Fsdlk5Q0FUYVRHMUh4?= =?utf-8?B?Zk1XdWM3NDNYS2lSZjdsRm1sYmp6WEN2bGNVQ29uT3Rwb1E9PQ==?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB8179.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SlNySjQvbkRGVUp4MFhvT2V1Y1ppMXZGdEJhbDNvaGI2Vll3Nmoxalc2OU1p?= =?utf-8?B?bllPdmdpSExrN2RjY1BPejV4ZzJYMWhqcnovMXFocjBDTFdSNi9uVkFYVWRG?= =?utf-8?B?ZE8xbVQ0R0JDWU5yS0xCaUhuQk0wMmVhNjk4MkdxcW12MmZOTkp3N1JJa05z?= =?utf-8?B?ckZSM2M5aDMzREMydjdpVDFEL0pob002OVIxdUJ1TVZrYWRoR3FiQnUvallY?= =?utf-8?B?bGtzL0ZLK25oVHhXTW8zVzc2cUZ3N0NjQ2YvdzNJMERnQmowNGVxNWJnMkp0?= =?utf-8?B?d0xDY1FWbC9JMEhzNW1EYTBwNnlmQTlnYjFOZUtMUHdNTGpzWDFXQ1hSenVO?= =?utf-8?B?ZEs5aEVMY2RucEhJdE1YUmJEcXdrRC9leTc0M1BmaDJoMVBVd0R0cU5BV1pl?= =?utf-8?B?Mk43WDNHYU1aOE0rZVRuK3poSGJ6VVFsNFVZTW5rMWx2ODZjL0RydDRxS2ha?= =?utf-8?B?bVpVa1F0OXVBbUYvVk9tWUVIYmd4V0FtUFpmS1BLclNmU0pURDRpWFE1V0RX?= =?utf-8?B?ZFV5QUl6czNjdTVWejQwSCtBbHNhSGlmSEtacTZWQ0VhZjZmYmNTbGZhNTI4?= =?utf-8?B?amd4blZtajFpSk9ENFJLOGhjcFB5RkZFV0xIM2VXZzRkQUI4bzZaWlZSek82?= =?utf-8?B?SWhvNXZrRlV5U2dRbkVkMFVYaXN3azNldlQrc1VzdzdBTmZ0S3hLQTAzWVJL?= =?utf-8?B?VXZuMDg3b0Y5MDlySnkvWkVrZ2haTXljYWFxSGgwWFo4bzh2dHVuZ3BXaS9j?= =?utf-8?B?WDc4SEhwV2xrcEJmcStUeVZOWUdhTzRmaGt0RFZhNG5hTGJDVmt3YnpuWWZO?= =?utf-8?B?VU1BSEZScTRvWFluUmZjMFIxNDBLd09HWGVNRUtHZFloUC85eEErVGFzbDQ2?= =?utf-8?B?emRtUDBtZ2N0cG5qTHhOcEtydmRLOGM5NXNnRXRVbTJLL1lqaU53bnAydUw1?= =?utf-8?B?ajhDVW5Sb211K0Z2SzFDbHZIMGU0LzY2Z2N0ampZbkl1cDBKMWxPY0hLN3NK?= =?utf-8?B?VEs4cXRuaFdiNWNXemxoalRVZnFXVzgweHMrb3hXdzM4bENmTFdNMDBxckZD?= =?utf-8?B?ZEVOanhiTDdXbm9iYmljMVUzM05SeUZGYnAxVTBHYkYveFJqR0hZVS81VDZa?= =?utf-8?B?bmYzLzZQSGdoU0pHNE4vL1ZVYTB2VXVwSDFLRDgrNmpuWGVVQzN4K21OMk02?= =?utf-8?B?ckhsUTh3N0xNYUtDWlB5c1NQUFVQelBZemJsblJ6ZmE3TXlkd2UybkhocGFi?= =?utf-8?B?dUZVaEM4UkxzUnA2TVlBdU1rdEc4SFhKSnQycklveUdGVnRNV1BDWGJwZVIv?= =?utf-8?B?V0FmVGc3QklCUFN6cFcyTlpoWWNsVUFoMHlHVUdmaHlKTnlTT2dBamxmWnFF?= =?utf-8?B?RExyU1hDYVBhVEM0S2xMTHV2WGk3RUpGb0lQMkFQalFPbGY0M3Jza0YrR3Yx?= =?utf-8?B?Vy9lampDZXlJUm1uRlVuWVRFQW1DVkJWVUpjL2oxa0xPS2c1WGJSeGw3K1hr?= =?utf-8?B?enMxSGhQRW1Nbk1LNzFUc1NiWnFHREN1enliNzlvL3BVYm1KRmJiT0xyY0ps?= =?utf-8?B?RlJROWJrM3g4c3NjM1ZQeDRMSzJJYjRXYTU4UDNDRU5nZ0NzVW5sTzR1WFRz?= =?utf-8?B?OVZuOHVSR052bFkvWjh4SDU3WU50QkxKenI4S0h4K2ZQdlJoRnJXT1JXVTJ2?= =?utf-8?B?YVkzVllyWk5NWmVlWWhrUU9LYi8xeHpnVW9WeUlqdyt4R3VjMkZFaVd3STVR?= =?utf-8?B?MGtMZ0QrRnZGdytyc1B1S3NIS0NlbU5yNm9QcVNUSFlKdlR3V1VKbkRlUm5D?= =?utf-8?B?QVI1MllMSGdOSW1haXlER2tBMkZyaGV0U05WZ1JyRE9xT0ovUHdQNXFVVVVF?= =?utf-8?B?K0lSM2dxSHNyc1N5VU9tWmlkcTNKMTd6TUhXUW5CbC9CazVLam1hdjI2UkhQ?= =?utf-8?B?blRlZmR5WnQwRVhRYk80SEtkdmplWW4wUllCTmErc0Z5RmQwa1FTZ2gwK0JG?= =?utf-8?B?RHpRT1dTVWVKUFJXNlpxVjd4NWw1RTRsQ2lYRzNpTDhEQS9pN3Y4RkJ3dlhF?= =?utf-8?B?M0JwOUh3c29SZGpEcStPREhKem80Y2JtWUIwTUpPT3JBWFJoVG1qYWNVUjFo?= =?utf-8?B?YWVsNkltWnRuWG41dFNmMHNCOU82Q3RLdTRJbmRTZXhjTzFZelJ4ZVhMcTl3?= =?utf-8?B?Wnc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <30C0C3BBCC94EA44BFFCC9B6050D21D9@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB8179.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2f4c6609-5421-47ab-6a75-08dd3b06210c X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jan 2025 16:59:26.6221 (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: ORGgg3tYe+JWdE33h5jhe7A4sQn11BnKYSiojs+ygT/mSq9hR4sgsRuQiQCaSxx/Q6w1O+A5tBJPKs+nWx+HPQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4566 X-OriginatorOrg: intel.com X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" T24gV2VkLCAyMDI1LTAxLTIyIGF0IDA4OjQ1IC0wODAwLCBKb2huIEhhcnJpc29uIHdyb3RlOg0K PiBPbiAxLzkvMjAyNSAxNDo0MywgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOg0KPiA+IE9uIFRodSwg SmFuIDA5LCAyMDI1IGF0IDEyOjQwOjUxUE0gLTA4MDAsIEpvaG4gSGFycmlzb24gd3JvdGU6DQo+ ID4gPiBPbiAxLzkvMjAyNSAwNzozOSwgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOg0KPiA+ID4gPiBP biBXZWQsIEphbiAwOCwgMjAyNSBhdCAwMzo1OTo1OFBNIC0wODAwLCBKb2huIEhhcnJpc29uIHdy b3RlOg0KPiA+ID4gPiA+IE9uIDEvOC8yMDI1IDE0OjExLCBMdWNhcyBEZSBNYXJjaGkgd3JvdGU6 DQo+ID4gPiA+ID4gPiArSm9zZQ0KPiA+ID4gPiA+ID4gK1JvZHJpZ28NCj4gPiA+ID4gPiA+IA0K PiA+ID4gPiA+ID4gT24gV2VkLCBKYW4gMDgsIDIwMjUgYXQgMTI6MTQ6NDlQTSAtMDgwMCwgSm9o biBIYXJyaXNvbiB3cm90ZToNCj4gPiA+ID4gPiA+ID4gT24gMS83LzIwMjUgMTM6MTAsIEx1Y2Fz IERlIE1hcmNoaSB3cm90ZToNCj4gPiA+ID4gPiA+ID4gPiBPbiBUdWUsIEphbiAwNywgMjAyNSBh dCAxMjoyMjo1MlBNIC0wODAwLCBKdWxpYSBGaWxpcGNodWsgd3JvdGU6DQo+ID4gPiA+ID4gPiA+ ID4gPiBDaGFuZ2UgdG8gZGlzYWJsZSBhc2NpODUgR3VDIGxvZ2dpbmcgb25seSB3aGVuIG91dHB1 dCB0byANCj4gPiA+ID4gPiA+ID4gPiA+IGRldmNvcmVkdW1wDQo+ID4gPiA+ID4gPiA+ID4gPiAo d2FzIHRlbXBvcmFyaWx5IGRpc2FibGVkIGZvciBhbGwgY29kZSBwYXRocykuDQo+ID4gPiA+ID4g PiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IHYyOiBJZ25vcmUgb25seSBmb3IgZGV2Y29yZWR1 bXAgY2FzZSAobm90IGRtZXNnIG91dHB1dCkuDQo+ID4gPiA+ID4gPiA+ID4gPiB2MzogUmViYXNl IHRvIHJlc29sdmUgcGFyZW50IHRhZyBtaXNtYXRjaC4NCj4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogSnVsaWEgRmlsaXBjaHVrIDxqdWxpYS5maWxp cGNodWtAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ID4g PiBkcml2ZXJzL2dwdS9kcm0veGUveGVfZGV2Y29yZWR1bXAuYyB8IDggKysrKystLS0NCj4gPiA+ ID4gPiA+ID4gPiA+IGluY2x1ZGUvZHJtL2RybV9wcmludC5owqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHwgMiArKw0KPiA+ID4gPiA+ID4gPiA+ID4gMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pDQo+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4g PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfZGV2Y29yZWR1bXAuYyANCj4g PiA+ID4gPiA+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RldmNvcmVkdW1wLmMNCj4g PiA+ID4gPiA+ID4gPiA+IGluZGV4IDY5ODAzMDRjODkwMy4uOGU1ZDFmOTg2NmE3IDEwMDY0NA0K PiA+ID4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RldmNvcmVkdW1w LmMNCj4gPiA+ID4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kZXZjb3Jl ZHVtcC5jDQo+ID4gPiA+ID4gPiA+ID4gPiBAQCAtNDI0LDEwICs0MjQsMTIgQEAgdm9pZCB4ZV9w cmludF9ibG9iX2FzY2lpODUoc3RydWN0IA0KPiA+ID4gPiA+ID4gPiA+ID4gZHJtX3ByaW50ZXIg KnAsIGNvbnN0IGNoYXIgKnByZWZpeCwNCj4gPiA+ID4gPiA+ID4gPiA+IMKgwqDCoMKgICogU3Bs aXR0aW5nIGJsb2JzIGFjcm9zcyBtdWx0aXBsZSBsaW5lcyBpcyBub3QgY29tcGF0aWJsZSANCj4g PiA+ID4gPiA+ID4gPiA+IHdpdGggdGhlIG1lc2ENCj4gPiA+ID4gPiA+ID4gPiA+IMKgwqDCoMKg ICogZGVidWcgZGVjb2RlciB0b29sLiBOb3RlIHRoYXQgZXZlbiBkcm9wcGluZyB0aGUgZXhwbGlj aXQgDQo+ID4gPiA+ID4gPiA+ID4gPiAnXG4nIGJlbG93DQo+ID4gPiA+ID4gPiA+ID4gPiDCoMKg wqDCoCAqIGRvZXNuJ3QgaGVscCBiZWNhdXNlIHRoZSBHdUMgbG9nIGlzIHNvIGJpZyBzb21lIA0K PiA+ID4gPiA+ID4gPiA+ID4gdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbg0KPiA+ID4gPiA+ID4g PiA+ID4gLcKgwqDCoMKgICogc3RpbGwgc3BsaXRzIHRoZSBsaW5lcyBhdCA1MTJLIGNoYXJhY3Rl cnMuIFNvIGp1c3QgYmFpbCANCj4gPiA+ID4gPiA+ID4gPiA+IGNvbXBsZXRlbHkgZm9yDQo+ID4g PiA+ID4gPiA+ID4gPiAtwqDCoMKgwqAgKiB0aGUgbW9tZW50Lg0KPiA+ID4gPiA+ID4gPiA+ID4g K8KgwqDCoMKgICogc3RpbGwgc3BsaXRzIHRoZSBsaW5lcyBhdCA1MTJLIGNoYXJhY3RlcnMuDQo+ ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gZGlkIHdlIGludmVzdGlnYXRlIHdoZXJl IHRoaXMgaXMgZG9uZSBhbmQgaG93IHdlIGNhbiBvdmVyY29tZSBpdD8gSQ0KPiA+ID4gPiA+ID4g PiBZZXMuIEFuZCB0aGUgY29tbWVudCBjb3VsZCBiZSB1cGRhdGVkIGFzIHBhcnQgb2YgdGhpcyBw YXRjaCB0byANCj4gPiA+ID4gPiA+ID4gbWFrZSBpdCBjbGVhcmVyLi4uDQo+ID4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gwqDCoMKgwqAgKiBTcGxpdHRpbmcgYmxv YnMgYWNyb3NzIG11bHRpcGxlIGxpbmVzIGlzIG5vdCBjb21wYXRpYmxlIA0KPiA+ID4gPiA+ID4g PiB3aXRoIHRoZSBtZXNhDQo+ID4gPiA+ID4gPiA+IMKgwqDCoMKgICogZGVidWcgZGVjb2RlciB0 b29sLiBOb3RlIHRoYXQgZXZlbiBkcm9wcGluZyB0aGUgZXhwbGljaXQgDQo+ID4gPiA+ID4gPiA+ IGxpbmUgd3JhcHBpbmcNCj4gPiA+ID4gPiA+ID4gwqDCoMKgwqAgKiBiZWxvdyBkb2Vzbid0IGhl bHAgYmVjYXVzZSB0aGUgR3VDIGxvZyBjYW4gYmUgc28gYmlnIGl0IA0KPiA+ID4gPiA+ID4gPiBu ZWVkcyB0byBiZSBzcGxpdA0KPiA+ID4gPiA+ID4gPiDCoMKgwqDCoCAqIGludG8gbXVsdGlwbGUg Mk1CIGNodW5rcywgZWFjaCBvZiB3aGljaCBtdXN0IGJlIHByaW50ZWQgDQo+ID4gPiA+ID4gPiA+ IGluZGl2aWR1YWxseSBhbmQNCj4gPiA+ID4gPiA+ID4gwqDCoMKgwqAgKiB0aGVyZWZvcmUgd2ls bCBiZSBhIHNlcGFyYXRlIGxpbmUuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IHNvIHRoZXJl J3Mgbm8gInVuZGVybHlpbmcgaW1wbGVtZW5hdGlvbiB0aGF0IHNwbGl0cyBsaWtlIGF0IDUxMksg DQo+ID4gPiA+ID4gPiBjaGFycyI/DQo+ID4gPiA+ID4gPiBOb3dlIGl0J3Mgc29tZXRoaW5nIGVs c2U6IGEgMk1CIGNodW5rIGJlY2F1c2Ugb2Ygd2hhdD8NCj4gPiA+ID4gPiBUaGUgR3VDIGxvZyBp cyBjYXB0dXJlZCBpbiBtdWx0aXBsZSAyTUIgY2h1bmtzIGJlY2F1c2Ugd2UgY2FuJ3QgDQo+ID4g PiA+ID4ga21hbGxvYyBhIGZ1bGwgMTZNQiBibG9jayBhdCBhIHNpbmdsZSB0aW1lIGlycmVzcGVj dGl2ZSBvZiBtZW1vcnkgDQo+ID4gPiA+ID4gZnJhZ21lbnRhdGlvbiAtIHRoZSBrbWFsbG9jIGZ1 bmN0aW9uIGFib3J0cyB3aXRoIGEgcGFnZSBzaXplIGVycm9yIA0KPiA+ID4gPiA+IGFib3ZlIDhN QiwgSSByZWNhbGwuIE1pZ2h0IGV2ZW4gaGF2ZSBiZWVuIDRNQj8gVGhlIDJNQiBjaHVua3MgDQo+ ID4gPiA+ID4gYmVjb21lIGFwcHJveCA1MTJLIGNoYXJhY3RlcnMgb2YgQVNDSUk4NSBvdXRwdXQg KHdoZW4gbW9zdGx5IGZ1bGwgDQo+ID4gPiA+ID4gb2YgemVyb3MpLiBCZWNhdXNlIGVhY2ggY2h1 bmsgaXMgYSBzZXBhcmF0ZSBibyBvYmplY3QgdGhlIG1lbW9yeSBpcyANCj4gPiA+ID4gPiBub3Qg Y29udGlndW91cyBzbyBlYWNoIG11c3QgYmUgcHJpbnRlZCB3aXRoIGEgc2VwYXJhdGUgY2FsbCB0 byANCj4gPiA+ID4gPiB4ZV9wcmludF9ibG9iX2FzY2lpODUoKS4gSWYgeGVfcHJpbnRfYmxvYl9h c2NpaTg1KCkgaW5jbHVkZXMgYSANCj4gPiA+ID4gPiB0ZXJtaW5hdGluZyBsaW5lIGZlZWQgYXQg dGhlIGVuZCBvZiB0aGUgcHJpbnQgdGhlbiB0aGF0IG1lYW5zIA0KPiA+ID4gPiA+IG11bHRpcGxl IGxpbmVzIGZvciB0aGUgR3VDIGxvZy4NCj4gPiA+ID4gDQo+ID4gPiA+IG5vdyBpdCBtYWtlcyBz ZW5zZS4uLiBhbmQgY29udHJhZGljdHMgd2hhdCB3YXMgc2FpZCBlYXJsaWVyIGFib3V0IHRoZQ0K PiA+ID4gPiAidW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBzdGlsbCBzcGxpdHMgdGhlIGxpbmVz IGF0IDUxMksgY2hhcmFjdGVycyIuDQo+ID4gPiA+IEl0J3MgdGhpcyB2ZXJ5IGZ1bmN0aW9uIHRo YXQgaXMgc3BsaXR0aW5nIGl0Lg0KPiA+ID4gVGhlIGluaXRpYWwgY29tbWVudCB3YXMgd3JpdHRl biBiZWZvcmUgdGhlIHNpdHVhdGlvbiB3YXMgZnVsbHkgDQo+ID4gPiB1bmRlcnN0b29kIGJlY2F1 c2UgaXQgd2FzIGEgcXVpY2sgaGFjayB0byBnZXQgdGhlIG1lc2EgZGVidWcgdG9vbCANCj4gPiA+ IHdvcmtpbmcgYWdhaW4uDQo+ID4gPiANCj4gPiA+IFRoZSBzcGxpdCBpcyBhIGNvbWJpbmF0aW9u IG9mIHRoZSBoZWxwZXIgZnVuY3Rpb24gYWRkaW5nIGEgbGluZWZlZWQgDQo+ID4gPiB0byB0aGUg ZW5kIG9mIHRoZSBvdXRwdXQgYW5kIHRoZSBHdUMgbG9nIGJlaW5nIHNvIGxhcmdlIGl0IG11c3Qg YmUgDQo+ID4gPiBzcGxpdCBpbnRvIG11bHRpcGxlIG1hbGxvYyBidWZmZXJzLiBCdXQgaXQgaXMg bm90IHJlbGF0ZWQgdG8gdGhlIDgwMCANCj4gPiA+IGNoYXJhY3RlciBsaW5lIHdyYXBwaW5nIHdp dGhpbiB0aGUgaGVscGVyJ3Mgb3V0cHV0Lg0KPiBATHVjYXMsIGFyZSB5b3UgaGFwcHkgd2l0aCB0 aGUgYWJvdmUgbm93PyBJZiB0aGUgcGF0Y2ggaXMgdXBkYXRlZCB3aXRoIA0KPiB0aGUgY29tbWVu dCBhcyBhYm92ZSBjYW4gd2UgZ2V0IGl0IG1lcmdlZD8gV2UgY3VycmVudGx5IGhhdmUgbm8gYWNj ZXNzIA0KPiB0byBHdUMgbG9ncyB2aWEgZGVidWdmcyB3aGljaCBtYWtlcyBkZWJ1Z2dpbmcgaXNz dWVzIGRpZmZpY3VsdC4gTXVsdGlwbGUgDQo+IHBlb3BsZSBoYXZlIGFscmVhZHkgY29tcGxhaW5l ZCBhYm91dCB0aGlzIG5vdCB3b3JraW5nLg0KPiANCj4gDQo+ID4gPiANCj4gPiA+ID4gDQo+ID4g PiA+ID4gDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IEkgZG9uJ3QgcmVhbGx5IHdhbnQgdG8g a2VlcCB1cGRhdGluZyB0aGlzIGluc3RlYWQgb2YgZml4aW5nIGl0Lg0KPiA+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBUaGUgZHVtcCBoZWxwZXIgY291bGQgYmUgdXBk YXRlZCB0byBuZXZlciBhZGQgYW55IGxpbmUgZmVlZHMsIG5vdCANCj4gPiA+ID4gPiA+ID4gZXZl bg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiB3aGVuIHlvdSBzYXkgImR1bXAgaGVscGVyIiwg d2hhdCBleGFjdGx5IGFyZSB5b3UgdGFsa2luZyBhYm91dD8NCj4gPiA+ID4gPiA+IHhlX3ByaW50 X2Jsb2JfYXNjaWk4NSgpLCBfX3hlX2RldmNvcmVkdW1wX3JlYWQoKSwgDQo+ID4gPiA+ID4gPiBf X2RybV9wdXRzX2NvcmVkdW1wKCkNCj4gPiA+ID4gPiA+IG9yIHdoYXQ/DQo+ID4gPiA+ID4geGVf cHJpbnRfYmxvYl9hc2NpaTg1DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ IElmIGl0J3MgYWJvdXQgeGVfcHJpbnRfYmxvYl9hc2NpaTg1KCksIEkgdGhpbmsgdGhpcyB3b3Vs ZCBiZSB0aGUgDQo+ID4gPiA+ID4gPiBmaXJzdCBzdGVwOg0KPiA+ID4gPiA+ID4gZHJvcCB0aGUg XG4geW91IGFyZSBhZGRpbmcuIEFGQUlDUyBjYWxsaW5nIHRoZSBwcmludCBmdW5jdGlvbiBpbiAN Cj4gPiA+ID4gPiA+IGNodW5rcw0KPiA+ID4gPiA+ID4gb2YgODAwQiB3b3VsZCBiZSBmaW5lLCBq dXN0IGRvbid0IGFkZCBhbnkgXG4uIElmIHRoYXQgc3RpbGwgYWRkcyBcbg0KPiA+ID4gPiA+ID4g c29tZXdoZXJlLCB3ZSBjYW4gY2hlY2sgaG93IHRvIGRyb3AgaXQgb3IgeW91IHRoZW4gbWF5IGhh dmUgYSBwcmV0dHkNCj4gPiA+ID4gPiA+IHNvbGlkIGFyZ3VtZW50IHRvIGFkYXB0IHRoZSBtZXNh IHRvb2wgd2l0aCBhIG5ld2xpbmUNCj4gPiA+ID4gPiA+IGNvbnRpbnVhciBjaGFyIGFuZCBzZW5k IHRoZW0gdGhlIE1SLg0KPiA+ID4gPiA+IEFzIGFib3ZlLCB0aGUgY2h1bmtpbmcgaXMgYXQgdGhl IG5leHQgbGV2ZWwgb3V0LiBTbyBkcm9wcGluZyB0aGUgDQo+ID4gPiA+ID4gODAwIGJ5dGUgXG4g d29uJ3QgaGVscCB3aXRoIHRoZSBHdUMgbG9nIHN0aWxsIGJlaW5nIHNwbGl0IGludG8gDQo+ID4g PiA+ID4gbXVsdGlwbGUgbGluZXMuIFlvdSBoYXZlIHRvIGVpdGhlciBtb3ZlIHRoZSB0ZXJtaW5h dGluZyBcbiBvdXRzaWRlIA0KPiA+ID4gPiA+IG9mIHRoZSBoZWxwZXIgYW5kIGludG8gdGhlIGNh bGxlcnMgb3IgYWRkIGEgYm9vbCBwYXJhbWV0ZXIgdG8gDQo+ID4gPiA+ID4gZW5hYmxlL2Rpc2Fi bGUgaXQuIEVpdGhlciBvZiB3aGljaCBpcyBqdXN0IG1lc3N5Lg0KPiA+ID4gPiANCj4gPiA+ID4g SWYgdGhlIGNhbGxlciBrbm93cyBpdCdzIGNhbGxpbmcgdGhlIGZ1bmN0aW9uIG11bHRpcGxlIHRp bWVzIHRvIA0KPiA+ID4gPiBjb250aW51ZQ0KPiA+ID4gPiBwcmV2aW91cyBkYXRhLCBpdCdzIG5v dCB1bnJlYXNvbmFibGUgdG8gaGF2ZSBhbiBhcmcgdG8gdGVybWluYXRlIGl0IG9yDQo+ID4gPiA+ IG5vdC4gSXQncyBmb3IgZXhhbXBsZSB3aGF0IHB5dGhvbiBkb2VzIHdpdGggaXRzICdlbmQnIGFy ZyB0byB0aGUgDQo+ID4gPiA+IHByaW50KCkNCj4gPiA+ID4gZnVuY3Rpb24uDQo+ID4gPiBKdXN0 IGJlY2F1c2Ugc29tZW9uZSBlbHNlIGRvZXMgaXQgZG9lcyBub3QgbWFrZSBpdCBjbGVhbiBvciB0 aGUgYmVzdCANCj4gPiA+IHNvbHV0aW9uLg0KPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiA+IA0K PiA+ID4gPiA+IE9yIGV4dGVuZCB0aGUgaGVscGVyIHRvIHRha2UgYW4gYXJyYXkvbGlzdCBvZiBw b2ludGVycyBpbiBhIA0KPiA+ID4gPiA+IHNjYXR0ZXIvZ2F0aGVyIGZhc2hpb24uDQo+ID4gPiA+ ID4gDQo+ID4gPiA+ID4gQW5kIGlmIHlvdSBkcm9wIHRoZSA4MDBCIFxuIHRoZW4geW91IGJyZWFr IHRoZSBkbWVzZyBvdXRwdXQgDQo+ID4gPiA+ID4gZmFjaWxpdHkuIFdoaWNoIG1lYW5zIHdlIGNh bid0IGdldCBsb2dzIG91dCBmcm9tIENJIHBhbmljIHR5cGUgDQo+ID4gPiA+ID4gc2l0dWF0aW9u cy4NCj4gPiA+ID4gDQo+ID4gPiA+IE9yIHRoYXQgd2Ugc2hvdWxkIGhhdmUgYW5vdGhlciB3YXkg dG8gZ2V0IGEgZGV2Y29yZWR1bXAuIEkgZG9uJ3QgdGhpbmsNCj4gPiA+ID4gd2UgYXJlIGdvaW5n IHRvIHByaW50IHRoZSBkZXZjb3JlZHVtcCB0byBkbWVzZyB3aGVuIHRoZSBrZXJuZWwgcGFuaWNz Lg0KPiA+ID4gPiBXZSBtYXkgcHJpbnQgaXQgd2hlbiB3ZSBmYWlsIHRvIHByb2JlLCBidXQgdGhl IGNwdSBzaG91bGQgc3RpbGwgYmUgdmVyeQ0KPiA+ID4gPiBtdWNoIGFsaXZlIC0gd2UgdGllIHRo ZSBkZXZjb3JlZHVtcCBsaWZlY3ljbGUgdG8gdGhlIGxpZmVjeWNsZSBvZiB0aGUNCj4gPiA+ID4g ZGV2aWNlLCBzbyB3ZSBkb24ndCBoYXZlIGFuIG9wcG9ydHVuaXR5IHRvIGdldCB0aGF0IGRhdGEu DQo+ID4gPiA+IA0KPiA+ID4gPiBUaGUgd29ya2Fyb3VuZCB5b3UgYWRkIGlzIHRvIGR1bXAgdGhl IHdob2xlIHRoaW5nIHRvIGRtZXNnLCBidXQgd2UgDQo+ID4gPiA+IGNvdWxkDQo+ID4gPiA+IGR1 bXAgaXQgc29tZXdoZXJlIGVsc2UgbGlrZSBhIGRlYnVnZnMgdGhhdCBpcyB0aWVkIHRvIHRoZSBt b2R1bGUNCj4gPiA+ID4gbGlmZWN5Y2xlLg0KPiA+ID4gVGhlIHBvaW50IGlzIHRvIGdldCB1c2Fi bGUgbG9ncyBvdXQgb2YgQ0kuIFRoZXJlIGFyZSBtdWx0aXBsZSANCj4gPiA+IHNpdHVhdGlvbnMg aW4gd2hpY2ggQ0kgZmFpbHMgdG8gc2F2ZSBsb2dzLiBCeSAncGFuaWMnIEkgd2FzIG1vcmUgDQo+ ID4gPiBtZWFuaW5nIHNpdHVhdGlvbnMgd2hlcmUgd2UgaGF2ZSB2ZXJ5IHJhcmUgYnVncyB0aGF0 IGNhbid0IGJlIGhpdCANCj4gPiA+IGxvY2FsbHkgYW5kIGZvciB3aGljaCBDSSBpcyBub3QgcHJv dmlkaW5nIHVzZWZ1bCBsb2dzLiBJLmUuIHdlIGFyZSBpbiANCj4gPiA+IGEgcGFuaWMgYWJvdXQg aG93IHRvIGRlYnVnIGl0IGFuZCBkdW1waW5nIHZpYSBkbWVzZyBpcyB0aGUgb25seSANCj4gPiA+ IHZpYWJsZSBvcHRpb24uDQo+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IFRoZSBkbWVzZyAoa21z ZykgZm9ybWF0IGFscmVhZHkgY29udGFpbnMgb3RoZXIgdGhpbmdzIHlvdSBoYXZlIHRvIA0KPiA+ ID4gPiBpZ25vcmUNCj4gPiA+ID4gdG8gZXh0cmFjdCB0aGUgbWVzc2FnZToNCj4gPiA+ID4gDQo+ ID4gPiA+IMKgKiAvZGV2L2ttc2cgZXhwb3J0cyB0aGUgc3RydWN0dXJlZCBkYXRhIGluIHRoZSBm b2xsb3dpbmcgbGluZSANCj4gPiA+ID4gZm9ybWF0OsKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgKiAN Cj4gPiA+ID4gIjxsZXZlbD4sPHNlcXVudW0+LDx0aW1lc3RhbXA+LDxjb250ZmxhZz5bLGFkZGl0 aW9uYWxfdmFsdWVzLCAuLi4gDQo+ID4gPiA+IF07PG1lc3NhZ2UgdGV4dD5cbiINCj4gPiA+ID4g DQo+ID4gPiA+IHNvIHlvdSB3aWxsIGFsd2F5cyBoYXZlIHRvIHByZXByb2Nlc3MgaXQsIGlnbm9y ZSBsaW5lcyB0aGF0IGRvbid0IA0KPiA+ID4gPiBiZWxvbmcNCj4gPiA+ID4gdG8gdGhlIGxvZywg ZXRjLg0KPiA+ID4gSSBuZXZlciBzYWlkIHRoaXMgd2FzIG5vdCB0aGUgY2FzZS4gVGhlIEd1QyBs b2cgZGVjb2RpbmcgdG9vbCBhbHJlYWR5IA0KPiA+ID4gY29wZXMgd2l0aCBteXJpYWQgZGlmZmVy ZW50IGRtZXNnLCBzeXNsb2csIHNlcmlhbCBjb25zb2xlLCBldGMuIA0KPiA+ID4gb3V0cHV0IGZv cm1hdHMuDQo+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IEFuZCBpZiB5b3UgcHJpbnQgaXQgY29y cmVjdGx5LCB5b3UgY2FuIGV2ZW4gbWFrZSB1c2Ugb2YgdGhlIExPR19DT05UIHRvDQo+ID4gPiA+ IG1hcmsgdGhlIG5ldyBsaW5lIGFzIGNvbnRpbnVhdGlvbiBvZiB0aGUgcHJldmlvdXMgb25lLg0K PiA+ID4gUmVjb25zdHJ1Y3Rpbmcgc3BsaXQgbGluZXMgaGFzIG5ldmVyIGJlZW4gYSBwcm9ibGVt IGZvciBHdUMgZGVjb2RlciANCj4gPiA+IHRvb2wuIEl0IGlzIG9ubHkgdGhlIG1lc2EgdG9vbCB0 aGF0IGhhcyBhIHByb2JsZW0gd2l0aCBsaW5lIGZlZWRzLg0KPiA+ID4gDQo+ID4gPiA+IA0KPiA+ ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBhdCB0aGUgZW5kLiBBbmQgdGhlbiB0aGUgYnVyZGVuIHdv dWxkIGJlIG9uIHRoZSBjYWxsZXJzIHRvIGFkZCANCj4gPiA+ID4gPiA+ID4gbGluZSBmZWVkcyBh cyBhcHByb3ByaWF0ZS4gVGhhdCBzZWVtcyBleHRyZW1lbHkgbWVzc3ksIHRob3VnaC4gDQo+ID4g PiA+ID4gPiA+IEFuZCBpdCB3aWxsIGJyZWFrIHRoZSBkbWVzZyBvdXRwdXQgZmFjaWxpdHkuIFRo YXQgZG9lcyBuZWVkIHRoZSANCj4gPiA+ID4gPiA+ID4gbGluZSB3cmFwcGluZyBhdCB+ODAwIGNo YXJhY3RlcnMgd2hpY2ggY2FuJ3QgYmUgZG9uZSBmcm9tIG91dHNpZGUgDQo+ID4gPiA+ID4gPiA+ IHRoZSBoZWxwZXIuDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ ID4gPiA+IHVuZGVyc3RhbmQgaGF2aW5nIHRvIHNwbGl0IGl0IGludG8gbXVsdGlwbGUgY2FsbHMs IGJ1dCBub3QgDQo+ID4gPiA+ID4gPiA+ID4gc29tZXRoaW5nDQo+ID4gPiA+ID4gPiA+ID4gYWRk aW5nIGEgXG4uIHBhcnRpY3VsYXJseSBmb3IgdGhlIGZ1bmN0aW9ucyBkZWFsaW5nIHdpdGggDQo+ ID4gPiA+ID4gPiA+ID4gc2VxX2ZpbGUgYW5kDQo+ID4gPiA+ID4gPiA+ID4gZGV2Y29yZWR1bXAu DQo+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiArwqDCoMKgwqAgKg0KPiA+ID4g PiA+ID4gPiA+ID4gK8KgwqDCoMKgICogT25seSBkaXNhYmxlIGZyb20gZGV2Y29yZWR1bXAgb3V0 cHV0Lg0KPiA+ID4gPiA+ID4gPiA+ID4gwqDCoMKgwqAgKi8NCj4gPiA+ID4gPiA+ID4gPiA+IC3C oMKgwqAgcmV0dXJuOw0KPiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoCBpZiAocC0+Y29yZWR1bXAp DQo+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gYnV0IHdlIGRvIHdhbnQgdGhlIGd1 YyBsb2cgdG8gYmUgaW5zaWRlIHRoZSBkZXZjb3JlZHVtcCwgc28gDQo+ID4gPiA+ID4gPiA+ID4g cmF0aGVyIHRoYW4NCj4gPiA+ID4gPiA+ID4gPiBhZGRpbmcgbW9yZSB3b3JrYXJvdW5kcywgY2Fu IHdlIGZpeCBpdCA/DQo+ID4gPiA+ID4gPiA+IFRoZSBzaW1wbGVzdCBmaXggaXMgeW91ciBzdWdn ZXN0aW9uIG9mIGFkZGluZyBhbiBleHRyYSB3aGl0ZSANCj4gPiA+ID4gPiA+ID4gc3BhY2UgY2hh cmFjdGVyIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUgaW4gdGhlIGhlbHBlciBmdW5jdGlvbiBhbmQg DQo+ID4gPiA+ID4gPiA+IHVwZGF0aW5nIHRoZSBtZXNhIHRvb2wgdG8gc3VwcG9ydCBtdWx0aS1s aW5lIG91dHB1dC4gVGhhdCBzZWVtcyANCj4gPiA+ID4gPiA+ID4gbGlrZSBpdCBzaG91bGQgYmUg YSB0cml2aWFsIHVwZGF0ZSB0byB0aGUgbWVzYSB0b29sIGFuZCBpdCBrZWVwcyANCj4gPiA+ID4g PiA+ID4gdGhlIEtNRCBzaWRlIHNpbXBsZSBhbmQgY29uc2lzdGVudCBhY3Jvc3MgYWxsIHBvdGVu dGlhbCBvdXRwdXQgDQo+ID4gPiA+ID4gPiA+IG1ldGhvZHMuIEJ1dCBKb3NlIHNlZW1lZCBhYnNv bHV0ZWx5IGRlYWQgc2V0IGFnYWluc3QgYW55IHVwZGF0ZXMgDQo+ID4gPiA+ID4gPiA+IHRvIHRo ZSBtZXNhIHRvb2wgYXQgYWxsIDooLg0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gVGhl IG1vcmUgY29tcGxleCBmaXggaXMgSm9vbmFzJyBpZGVhIG9mIHVzaW5nIGFuIG9mZmljaWFsIA0K PiA+ID4gPiA+ID4gPiBzdHJ1Y3R1cmVkIG91dHB1dCBmb3JtYXQgb2Ygc29tZSBzb3J0IC0gVE9N TCwgWUFNTCwgSlNPTiBvciANCj4gPiA+ID4gPiA+ID4gd2hhdGV2ZXIuIFNvbWV0aGluZw0KPiA+ ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBpdCBhY3R1YWxseSBkb2Vzbid0IGZpeCB0aGlzIHBhcnRp Y3VsYXIgaXNzdWUuIEl0IGZpeGVzIG90aGVycywgDQo+ID4gPiA+ID4gPiBidXQgbm90DQo+ID4g PiA+ID4gPiB0aGlzIG9uZS4NCj4gPiA+ID4gPiBJZiB3ZSBkbyBpdCBwcm9wZXJseSB0aGVuIGl0 IGZpeGVzIGV2ZXJ5dGhpbmcuIFRoZSBmb3JtYXQgbGlicmFyeSANCj4gPiA+ID4gPiB3b3VsZCBo YXZlIGhlbHBlciBmdW5jdGlvbnMgdGhhdCB0aGUgZGV2Y29yZWR1bXAgY29kZSBjYW4gY2FsbCB0 bw0KPiA+ID4gPiANCj4gPiA+ID4gYnV0IHdlIGFyZSAqTk9UKiBnb2luZyB0byBleHBvcnQgYSBs aWJyYXJ5IGZvciB0aGF0LiBZb3UgYXJlIGp1c3QNCj4gPiA+ID4gc2hpZnRpbmcgdGhlIHByb2Js ZW0gdG8gIndlIGhhdmUgb25seSBvbmUgdXNlcnNwYWNlIHRoYXQgaXMgb3VyIG93bg0KPiA+ID4g PiBsaWJyYXJ5LCBkZWFsIHdpdGggaXQiLg0KPiA+ID4gTm8uIEJ5IGxpYnJhcnksIEkgbWVhbiBs aWJqc29uIG9yIGxpYnlhbWwgb3Igd2hhdGV2ZXIuIFRoZSB3aG9sZSANCj4gPiA+IHBvaW50IG9m IHVzaW5nIGFuIGV4dGVybmFsbHkgZGVmaW5lZCBmaWxlIGZvcm1hdCBpcyB0aGF0IHlvdSBjYW4g dXNlIA0KPiA+ID4gYW4gZXh0ZXJuYWxseSB3cml0dGVuIGxpYnJhcnkgdG8gcmVhZCB0aGF0IGZv cm1hdC4gV2hhdGV2ZXIgdXNlcnNwYWNlIA0KPiA+ID4gdG9vbCBvbmx5IGhhcyB0byB3b3JyeSBh Ym91dCBwcm9jZXNzaW5nIGRhdGEvdmFsdWUgcGFpcnMgb3Igd2hhdGV2ZXIgDQo+ID4gPiB5b3Ug Z2V0IGZyb20gdGhlIGxpYnJhcnkncyByZWFkIGludGVyZmFjZSwgaXQgbm8gbG9uZ2VyIGhhcyB0 byB3b3JyeSANCj4gPiA+IGFib3V0IGZpbGUgZm9ybWF0cywgY2hhcmFjdGVyIGVuY29kaW5ncywg bGluZSB3cmFwcywgZXRjLiBBbGwgdGhhdCBpcyANCj4gPiA+IGhhbmRsZWQgYnkgdGhlIHRoaXJk IHBhcnR5IGxpYnJhcnkgLyBmaWxlIGZvcm1hdCBkZWZpbml0aW9uLg0KPiA+ID4gDQo+ID4gPiA+ IA0KPiA+ID4gPiA+IHByaW50IGludGVnZXJzLCBib29scywgc3RyaW5ncyBhbmQgQkxPQnMuIFRo ZSBkZWJ1Z2ZzL3N5c2ZzIG91dHB1dCANCj4gPiA+ID4gPiB3b3VsZCBqdXN0IHN0cmVhbSB0aGUg ZW5jb2RlZCBvdXRwdXQgZXhhY3RseSBhcyBpcy4gVGhlIGRtZXNnIA0KPiA+ID4gPiA+IG91dHB1 dCBsYXllciB3b3VsZCBhZGQgdGhlIDgwMCBjaGFyYWN0ZXIgbGluZSB3cmFwcGluZyBpbiBhIHdh eSANCj4gPiA+ID4gPiB0aGF0IHRoZSBkbWVzZyBkZWNvZGVyIGNhbiB1bmRvIGJlZm9yZSBwYXNz aW5nIHRvIHRoZSBkZWNvZGVyIGxpYnJhcnkuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiANCj4g PiA+ID4gPiA+IMKgwqDCoMKgIkd1YyBMb2ciOiAiPGVuY29kZWQgZGF0YSAuLi4uLi4uLi4uIg0K PiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBpZiB5b3UgbmVlZCB0byBzcGxpdCBsaW5lcywgeW91 IHN0aWxsIG5lZWQgc29tZXRoaW5nIHRvIGRvIGRvIGl0IGluDQo+ID4gPiA+ID4gPiB3aGF0ZXZl ciBmb3JtYXQgeW91IGNob29zZS4gT25lIGpzb24gSSByZW1lbWJlciB3b3JraW5nIG9uIGluIHRo ZSANCj4gPiA+ID4gPiA+IHBhc3QNCj4gPiA+ID4gPiA+IHRoYXQgZW1iZWRzIHRoZSBiaW5hcnkg aXMgdGhlIC5hcGogZm9ybWF0Li4uIGV4YW1wbGU6DQo+ID4gPiA+ID4gPiBodHRwczovL2Zpcm13 YXJlLmFyZHVwaWxvdC5vcmcvQ29wdGVyLzIwMjQtMTIvMjAyNC0xMi0wMi0xMzoxMi9DdWJlQmxh Y2svYXJkdWNvcHRlci5hcGogDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ ID4gDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IMKgwqDCoMKgew0KPiA+ID4gPiA+ID4gwqDC oMKgwqDCoMKgwqAgImJvYXJkX2lkIjogOSwNCj4gPiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgICJt YWdpYyI6ICJBUEpGV3YxIiwNCj4gPiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgICJkZXNjcmlwdGlv biI6ICJGaXJtd2FyZSBmb3IgYSBTVE0zMkY0Mjd4eCBib2FyZCIsDQo+ID4gPiA+ID4gPiDCoMKg wqDCoMKgwqDCoCAiaW1hZ2UiOiAiZU5xVXZBbGNVMWZhTUg1dTdrMXlDUUdDSUNDZ0JvSWFSVzBF dFZTeGhnIC4uLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBoZXJlICJpbWFnZSIgaXMgYmFz ZTY0LWVuY29kZWTCoCBhZmFpci4gQnV0IGluIHlvdXIgY2FzZSwganVzdCANCj4gPiA+ID4gPiA+ IHByaW50aW5nDQo+ID4gPiA+ID4gPiB0aGUganNvbiB0byBkbWVzZyB3b3VsZG4ndCB3b3JrIGJl Y2F1c2Ugb2YgbmVlZGluZyB0byBzcGxpdCB0aGUgbGluZS4NCj4gPiA+ID4gPiA+IEl0IHdvdWxk bid0IGZpeCB0aGUga2luZCBvZiBidWdzIHdlIGhhZCBpbiB0aGUgcGFzdCB0b286IGluIGpzb24g aXQNCj4gPiA+ID4gPiA+IHdvdWxkIGJlIHRoZSBlcXVpdmFsZW50IG9mIGFkZGluZyBhIGZpZWxk IHRvIHRoZSB3cm9uZyBvYmplY3QgYW5kIA0KPiA+ID4gPiA+ID4gdGhlbg0KPiA+ID4gPiA+ID4g bW92ZSBpdCBlbHNld2hlcmUuIEFuIGFwcGxpY2F0aW9uIHRyeWluZyB0byByZWFkIHRoYXQgb2Jq ZWN0IGluIHRoZQ0KPiA+ID4gPiA+ID4gcHJldmlvdXMgcGxhY2Ugd291bGQgYmUgYnJva2VuIHJl Z2FyZGxlc3MuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IHRvbWwgaXMgbW9yZSBmb3IgY29u ZmlndXJhdGlvbiBhbmQgeWFtbCBpc24ndCBhIGdvb2Qgb25lIGZvciB0aGlzIA0KPiA+ID4gPiA+ ID4gY2FzZQ0KPiA+ID4gPiA+ID4gYXMgaXQgZnVydGhlciByZWxpZXMgb24gaW5kZW50YXRpb24u IEkgd291bGRuJ3Qgb3Bwb3NlIHRvIHVzZSANCj4gPiA+ID4gPiA+IGpzb24sIGJ1dA0KPiA+ID4g PiA+ID4gZG9uJ3QgZXhwZWN0IHRvIGhhdmUgZG1lc2cgdG8gbWFnaWNhbGx5IHdvcmsgYmVjYXVz ZSBvZiB0aGF0Lg0KPiA+ID4gPiA+IFRPTUwgYmFzaWNhbGx5IHNheXMgJ3VzZSBiYXNlNjQgYW5k IHByaW50IGl0IGFzIGEgc3RyaW5nJy4gQW5kIGl0IA0KPiA+ID4gPiA+IHN1cHBvcnRzIG11bHRp LWxpbmUgc3RyaW5ncywgc28gdGhlIHJlYWRlciB3b3VsZCBoYXZlIHRvIGRyb3AgDQo+ID4gPiA+ ID4gbmV3bGluZXMgd2l0aGluIGEgYmFzZTY0IG9iamVjdCBiZWZvcmUgZG9pbmcgdGhlIGJhc2U2 NCBkZWNvZGUuIE9yIA0KPiA+ID4gPiA+IGp1c3QgdXNlIGEgYmFzZTY0IGRlY29kZXIgdGhhdCBp Z25vcmVzIHdoaXRlc3BhY2UuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gWUFNTCBzZWVtcyB0byBt YWtlIGV2ZW4gbW9yZSBleHBsaWNpdC4gRnJvbSB0aGUgMS4yLjIgc3BlYyBwYWdlOg0KPiA+ID4g PiA+IMKgwqDCoCBwaWN0dXJlOiAhIWJpbmFyeSB8DQo+ID4gPiA+ID4gwqDCoMKgwqAgUjBsR09E bGhEQUFNQUlRQUFQLy85L1gNCj4gPiA+ID4gwqDCoMKgwqAgXiBzcGFjZSBoZXJlIGZvciBsaW5l IGNvbnRpbnVhdGlvbiwgYXMgSSBtZW50aW9uZWQuDQo+ID4gPiA+IA0KPiA+ID4gPiA+IMKgwqDC oMKgIDE3dW5wNVdabVpnQUFBT2ZuNTE1ZVh2DQo+ID4gPiA+ID4gwqDCoMKgwqAgUHo3WTZPanVE ZzRKK2ZuNU9UazZlbnANCj4gPiA+ID4gPiDCoMKgwqDCoCA1NmVubWxlRUNjZ2dnb0JBRHM9DQo+ ID4gPiA+ID4gDQo+ID4gPiA+ID4gU28gdGhlIHVzZXJsYW5kIHJlYWRlciBqdXN0IGdldHMgYmlu YXJ5IGRhdGEgc3RyYWlnaHQgb3V0IG9mIHRoZSANCj4gPiA+ID4gPiBkZWNvZGVyIGxpYnJhcnkg d2l0aCBubyBwcm9jZXNzaW5nIHJlcXVpcmVkLg0KPiA+ID4gPiANCj4gPiA+ID4gQSBkZWNvZGVy IGxpYnJhcnkgdGhhdCB3ZSBhcmUgKk5PVCogZ29pbmcgdG8gd3JpdGUuDQo+ID4gPiBBcyBhYm92 ZSwgdGhlIGRlY29kZXIgbGlicmFyeSBpcyBkZWZpbml0ZWx5IG5vdCB3cml0dGVuIGJ5IHVzLiBJ dCBpcyANCj4gPiA+IGxpYnlhbWwgb3Igc29tZSBzdWNoLg0KPiA+ID4gDQo+ID4gPiA+IA0KPiA+ ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4g U28gbGV0J3MgZml4IHRoZSBpc3N1ZSBhdCBoYW5kIGFuZCBsZXQgdGhlIHRhbGsgYWJvdXQgeGUn cyBjb3JlZHVtcA0KPiA+ID4gPiA+ID4gZm9ybWF0IGZvciBhIGxhdGVyIHRpbWUuDQo+ID4gPiA+ ID4gVGhlIGlzc3VlIGF0IGhhbmQgaXMgdGhhdCB3ZSBoYXZlIHR3byBmdW5kYW1lbnRhbGx5IGNv bmZsaWN0aW5nIA0KPiA+ID4gPiA+IHJlcXVpcmVtZW50cy4gRE1lc2cgb3V0cHV0IHJlcXVpcmVz IGxpbmUgd3JhcHBpbmcgYnV0IHRoZSBtZXNhIHRvb2wgDQo+ID4gPiA+ID4gaGFzIGJlZW4gY29k ZWQgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGJyZWFrcyB3aGVuIGdpdmVuIHdyYXBwZWQgDQo+ID4g PiA+ID4gbGluZXMuIFRoZXJlIGlzIG5vdGhpbmcgd2UgY2FuIGRvIGFib3V0IGRtZXNnIGJ1dCBt YWtpbmcgdGhlIG1lc2EgDQo+ID4gPiA+ID4gdG9vbCdzIHBhcnNlciBtb3JlIHJvYnVzdCBkb2Vz IG5vdCBzZWVtIGRpZmZpY3VsdC4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBTd2l0Y2hpbmcgdG8g YW4gZXh0ZXJuYWxseSBkZWZpbmVkIGVuY29kaW5nIHNjaGVtZSB0aGF0IGludGVybmFsbHkgDQo+ ID4gPiA+ID4gbWFuYWdlcyBiaW5hcnkgb2JqZWN0cyBhbmQgc3VwcG9ydHMgd3JhcHBlZCBsaW5l cyB3b3VsZCBmaXggYWxsIA0KPiA+ID4gPiA+IGlzc3VlcyBhbmQgZ3VhcmFudGVlIGZ1dHVyZSBj b21wYXRpYmlsaXR5Lg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IE5vdGUgdGhhdCBsaW5lIHdyYXBw aW5nIGlzIG5vdCB0aGUgb25seSBwcm9ibGVtIHdpdGggdGhlIGN1cnJlbnQgDQo+ID4gPiA+ID4g bWVzYSB0b29sLiBVbmxlc3MgaXQgaGFzIGJlZW4gdXBkYXRlZCBzaW5jZT8gVGhlIHRvb2wgYnJl YWtzIGlmIHRoZSANCj4gPiA+ID4gPiBjb250ZXh0IGluZm9ybWF0aW9uIGlzIG5vdCBwYXJ0IG9m IHRoZSAiR3VDIENvbW11bmljYXRpb24gDQo+ID4gPiA+ID4gVHJhbnNwb3J0IiBzZWN0aW9uLiBX aGljaCBpcyB0b3RhbGx5IGluY29ycmVjdC4gQ29udGV4dCBzdGF0ZSBpcyANCj4gPiA+ID4gPiB2 ZXJ5IGRlZmluaXRlbHkgbm90IHBhcnQNCj4gPiA+ID4gDQo+ID4gPiA+IFdlIHJldmVydGVkIGl0 IGJlY2F1c2UgaXQncyBub3Qgb2sgdG8ganVzdCBtb3ZlIGl0IHRvIHRoZSAiY29ycmVjdCINCj4g PiA+ID4gcGxhY2UgYW5kIGJyZWFrIHRoZSB1c2Vycy4gSWYgaXQncyBpbiB0aGUgaW5jb3JyZWN0 IHBsYWNlIGFuZCB3ZSBrbm93DQo+ID4gPiA+IHRoZXJlJ3MgdGhpcyBwYXJzZXIgYWxyZWFkeSB1 c2luZyBpdCBpbmNvcnJlY3RseSwgd2UgY2FuIHRyZWF0IGFzIGEgYnVnDQo+ID4gPiA+IGluIHRo ZSBrZXJuZWwgYW5kIGFkanVzdCB0aGUgdXNlcnNwYWNlIChpdCdkIGJlIGNvbnNpZGVyZWQgYSBi dWcgdGhlcmUNCj4gPiA+ID4gdG9vIGFuZCBiYWNrcG9ydGVkIHRvIHRoZWlyIGVhcmxpZXIgcmVs ZWFzZXMpLsKgIFdoYXQgd2UgZG9uJ3QgZG8gaXMNCj4gPiA+ID4gc2ltcGx5IG1lcmdlIHRoZSBm aXggYW5kIGJyZWFrIHVzZXJzcGFjZS4NCj4gPiA+IENhbiB3ZSBub3QgcmVwZWF0IG9sZCBhcmd1 bWVudHM/IE5vLW9uZSByZWFsaXNlZCB0aGF0IHRoYXQgY2hhbmdlIA0KPiA+ID4gd291bGQgYnJl YWsgdXNlcnNwYWNlLiBPciBpZiB0aGV5IGRpZCwgdGhlcmUgd2FzIGNvbmZ1c2lvbiBvdmVyIHdo YXQgDQo+ID4gPiBleGFjdGx5IGhhZCBvciBoYWQgbm90IGJlZW4gdGVzdGVkIGFuZCB3YXMgY2F1 c2luZyBhIHByb2JsZW0uIA0KPiA+ID4gQ2VydGFpbmx5IGl0IHdhcyBub3QgYW4gaW50ZW50aW9u YWwgIm1lcmdlIGFuZCBldmVyeW9uZSBiZSBkYW1uZWQiLg0KPiA+ID4gDQo+ID4gPiBNeSBwb2lu dCB3YXMgdGhhdCB0aGVyZSBhcmUgbXVsdGlwbGUgaXNzdWVzIGhlcmUuIExpbmUgZmVlZHMgaXMg b25seSANCj4gPiA+IG9uZS4gQnV0IHVzaW5nIGEgc3RydWN0dXJlZCBmaWxlIGZvcm1hdCB3b3Vs ZCBwcmV2ZW50IGJvdGggb2YgdGhlIA0KPiA+ID4gcHJvYmxlbXMgd2UgaGF2ZSBjdXJyZW50bHkg aGl0Lg0KPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiBTZW5kIHRoZSBmaXggdG8gdGhlIG1lc2Eg dG9vbCBpZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhpcyBpbiB0aGUga2VybmVsLg0KPiA+ID4gV2hl biBJIGNhbiBmaW5hbGx5IHdvcmsgb3V0IGhvdyB0byBidWlsZCBtZXNhIChpdCBzZWVtcyB0byBy ZXF1aXJlIA0KPiA+ID4gbGlicmFyaWVzIHRoYXQgYXJlIG5ld2VyIHRoYW4gYW55IFVidW50dSBy ZWxlYXNlIGhhcyBhY2Nlc3MgdG8hPykgYW5kIA0KPiA+IA0KPiA+IGh0dHBzOi8vZG9jcy5tZXNh M2Qub3JnL2luc3RhbGwuaHRtbCBoYXMgdGhlIGRvY3MgZm9yIHRoYXQuDQo+IFByZXR0eSBzdXJl IHRoYXQncyB3aGF0IEkgd2FzIGZvbGxvd2luZyBsYXN0IHRpbWUuDQo+IA0KPiA+IA0KPiA+IEZv ciB1YnVudHUsIGluIG91ciBpbnRlcm5hbCBkb2NzIHdlIGRvY3VtZW50IHRvIGluc3RhbGwgZGVw cyB3aXRoOg0KPiA+IA0KPiA+IMKgwqDCoMKgc3VkbyBhcHQgYnVpbGQtZGVwIG1lc2ENCj4gPiAN Cj4gPiBZb3UgY2FuIGRpc2FibGUgc3R1ZmYgeW91IGRvbid0IHVzZS4gT3VyIGludGVybmFsIGRv Y3MgaGF2ZSB0aGlzIHVzZWZ1bA0KPiA+IHNldCBvZiBhcmdzOg0KPiA+IA0KPiA+IMKgwqDCoMKg bWVzb24gc2V0dXAgXA0KPiA+IMKgwqDCoMKgwqDCoMKgIC1EcHJlZml4PS91c3IgXA0KPiA+IMKg wqDCoMKgwqDCoMKgIC1EZ2FsbGl1bS1ydXN0aWNsPWZhbHNlIFwNCj4gPiDCoMKgwqDCoMKgwqDC oCAtRGdhbGxpdW0tZHJpdmVycz1pcmlzIFwNCj4gPiDCoMKgwqDCoMKgwqDCoCAtRHZ1bGthbi1k cml2ZXJzPWludGVsIFwNCj4gPiDCoMKgwqDCoMKgwqDCoCBidWlsZA0KPiA+IA0KPiA+IEkgdGhp bmsgeW91IGFyZSBwcm9iYWJseSB0YWxraW5nIGFib3V0IHRoZSBsbHZtIGRlcCwgdGhhdCBjYW4g YmUNCj4gPiB3b3JrYXJvdW5kZWQgYnkgdGhlIHNldHVwIGZsYWdzIGFib3ZlLg0KPiBJIGRvbid0 IHJlY2FsbCB3aGF0IHRoZSBzcGVjaWZpYyBwcm9ibGVtIHdhcyBsYXN0IHRpbWUuIEl0IGxvb2tz IGxpa2UgSSANCj4gaGF2ZSBtYW5hZ2VkIHRvIGdldCBldmVyeXRoaW5nIGluc3RhbGxlZCB0aGlz IHRpbWUuIEhvd2V2ZXIsIHRoZSBidWlsZCANCj4gZG9lcyBub3QgYXBwZWFyIHRvIGluY2x1ZGUg dGhlIGF1YmluYXRvciBwcm9ncmFtLiBOb3RoaW5nIGluIA0KPiBzcmMvaW50ZWwvdG9vbHMgYXBw ZWFycyB0byBnZXQgYnVpbHQgYXQgYWxsLiBBbmQgSSBjYW4ndCBmaW5kIGFueSANCj4gbWVudGlv biBvZiBob3cgdG8gYnVpbGQgb3IgdXNlIGl0IGluIHRoZSBNZXNhIGRvY3Mgb3IgZWxzZXdoZXJl Lg0KDQpBZGQgLUR0b29scz1pbnRlbCB0byBidWlsZCBpdC4NCg0KPiANCj4gDQo+ID4gDQo+ID4g PiBoYXZlIHNwZW50IHRpbWUgbGVhcm5pbmcgeWV0IGFub3RoZXIgY29kZSBiYXNlIGFuZCBob3cg dGhlIHRvb2wgaXMgDQo+ID4gPiBpbXBsZW1lbnRlZC4uLg0KPiA+ID4gDQo+ID4gPiA+IA0KPiA+ ID4gPiBBbmQgYXMgSSBzYWlkLCBmb3IgdGhpcyBwYXJ0aWN1bGFyIGNoYW5nZSBpdCBkb2Vzbid0 IG1hdHRlciBpZiBpdCdzIGENCj4gPiA+ID4gY3VzdG9tIGZvcm1hdCwganNvbiwgdG9tbCBvciB3 aGF0ZXZlci4uLiB0aGUgYnVnIHdvdWxkIHN0aWxsIGJlIHRoZQ0KPiA+ID4gPiBzYW1lLg0KPiA+ ID4gSWRlYWxseSBub3QuIFBhcnQgb2YgbW92aW5nIHRvIGEgc3RydWN0dXJlZCBmaWxlIGZvcm1h dCB3b3VsZCBiZSANCj4gPiA+IGVuc3VyaW5nIHRoYXQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgZGF0 YSBpcyBjb3JyZWN0Lg0KPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiA+IG9mIHRoZSBHdUMgQ1Qg bGF5ZXIuIFRoYXQgYWJzb2x1dGVseSBuZWVkcyB0byBiZSBmaXhlZC4gQW5kIA0KPiA+ID4gPiA+ IGdlbmVyYWxseSwgYW55dGhpbmcgd2UgY2FuIGRvIHRvIG1ha2UgdGhlIGRlY29kaW5nIG1vcmUg cm9idXN0IGFuZCANCj4gPiA+ID4gPiBmdXR1cmUgcHJvb2Ygd291bGQgYmUgYSB2ZXJ5IGdvb2Qg dGhpbmcuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gTm90ZSB0aGF0IHRoZSBkZXZjb3JlZHVtcCBj b250ZW50IGlzIGhpZ2hseSBkZXBlbmRlbnQgdXBvbiB0aGUgDQo+ID4gPiA+ID4gaW50ZXJuYWwg d29ya2luZ3Mgb2YgdGhlIGRyaXZlci4gSXQgaXMgZ29pbmcgdG8gY2hhbmdlIG92ZXIgdGltZS4g DQo+ID4gPiA+ID4gU28gdGhlIG1vcmUgcm9idXN0IHRoZSBkZWNvZGVyLCB0aGUgYmV0dGVyIGNo YW5jZSBpdCBoYXMgb2Ygbm90IA0KPiA+ID4gPiA+IGJyZWFraW5nIHdoZW4gc29tZSBuZXcgcGll Y2Ugb2YgZGF0YSBpcyBhZGRlZCB0byB0aGUgZHVtcCBvciBhbiANCj4gPiA+ID4gPiBleGlzdGlu ZyBpdGVtIHJlbW92ZWQgb3IgbW9kaWZpZWQuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiANCj4g PiA+ID4gPiA+ID4gdGhhdCBpZGVhbGx5IHN1cHBvcnRzIGJpbmFyeSBkYXRhIGFuZCBjb21wcmVz c2lvbiBuYXRpdmVseSBhbmQgDQo+ID4gPiA+ID4gPiA+IGhhcyBhIGhlbHBlciBsaWJyYXJ5IHRo YXQgY2FuIGJlIGluY2x1ZGVkIGluIHRoZSBrZXJuZWwgc291cmNlIA0KPiA+ID4gPiA+ID4gPiB0 cmVlLiBUaGF0DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IG9oIG5vLCB3ZSdkIG5lZWQgdG8g ZGVmaW5lIHRoZSBzY2hlbWEgLSB0aGVyZSBhcmUgcGxlbnR5IG9mIGpzb24gDQo+ID4gPiA+ID4g PiBsaWJyYXJpZXMNCj4gPiA+ID4gPiA+IGluIG11bHRpcGxlIGxhbmd1YWdlcyBmb3IgdXNlcnMg dG8gY2hvb3NlIGZyb23CoCBhbmQgdGhhdCB3b3VsZCBiZSANCj4gPiA+ID4gPiA+IGJhc2ljYWxs eQ0KPiA+ID4gPiA+ID4gdGhlbiBtYWluIGJlbmVmaXQgb2YgdXNpbmcgaXQuDQo+ID4gPiA+ID4g V2VsbCwgd2UgY2FuIGNlcnRhaW5seSBkZWZpbmUgZXh0cmEgZm9ybWF0cyBvbiB0b3Agb2YgYSBi YXNlIGZvcm1hdCANCj4gPiA+ID4gPiBidXQgaXQgc2VlbXMgbGlrZSBpdCB3b3VsZCBiZSBzaW1w bGVyIGlmIHRoZSBiYXNlIGZvcm1hdCBzdXBwb3J0ZWQgDQo+ID4gPiA+ID4gYWxsIHRoZSBkYXRh IHR5cGVzIHdlIG5lZWQgYWxyZWFkeS4gRG9lc24ndCByZWFsbHkgbWF0dGVyIGVpdGhlciANCj4g PiA+ID4gPiB3YXkgYXMgbG9uZyBhcyB0aGUgdW5kZXJseWluZyBmaWxlIGZvcm1hdCBzdXBwb3J0 cyBhbGwgdGhlIHVzZXMgd2UgDQo+ID4gPiA+ID4gd2FudCBvZiBpdC4NCj4gPiA+ID4gDQo+ID4g PiA+IE15IHBvaW50IGlzIHRoYXQgd2UgYXJlIG5vdCBnb2luZyB0byBhZGQgYSBkZWNvZGVyIGxp YnJhcnkgdGhhdCBhbGwNCj4gPiA+ID4gdXNlcnNwYWNlIGNvbnN1bWVycyBoYXZlIHRvIHVzZS4g VGhlIGtlcm5lbCBpbnRlcmZhY2UgaXMgbm90IGEgbGlicmFyeS4NCj4gPiA+ID4gWW91IGFyZSBy ZWx5aW5nIG9uIGhhdmluZyBqdXN0IG9uZSB1c2Vyc3BhY2UgdG8gbm90IGJyZWFrIHVzZXJzcGFj ZS4NCj4gPiA+IFRoYXQgaXMgbm90IGF0IGFsbCB3aGF0IEkgYW0gc2F5aW5nLg0KPiA+ID4gDQo+ ID4gPiA+IA0KPiA+ID4gPiBUaGUgYmVuZWZpdCBvZiBhIGNvbW1vbiBmb3JtYXQgbGlrZSBqc29u LCB0b21sIGV0YyBpcyBleGFjdGx5IHRoYXQgaXQncw0KPiA+ID4gPiBhIGZvcm1hdCBhbHJlYWR5 IHVuZGVyc3Rvb2QgYnkgaHVuZHJlZHMgb2YgbGlicmFyaWVzIGFuZCB3ZSBjYW4gZXZlbiBkbw0K PiA+ID4gPiBzb21ldGhpbmcgbGlrZSB0aGlzIGluc3RlYWQgb2YgaGF2aW5nIHRvIHdyaXRlIG91 ciBvd24gcGFyc2VyOg0KPiA+ID4gPiANCj4gPiA+ID4gY2F0IGRldmNvcmVkdW1wIHwganEgJy5b XSB8IC5mb28sIC5iYXInDQo+ID4gPiBUaGF0IGlzIGV4YWN0bHkgd2hhdCBJIGFtIHNheWluZy4N Cj4gPiA+IA0KPiA+ID4gVGhlIG1lc2EgZGVidWcgdG9vbCBiZWNvbWVzIHNvbWV0aGluZyBsaWtl Og0KPiA+ID4gwqDCoMKgICNpbmNsdWRlIDxsaWJ5YW1sPg0KPiA+ID4gDQo+ID4gPiDCoMKgwqAg aW5mbyA9IHlhbWwucmVhZF9maWxlKGZpbGVfbmFtZSk7DQo+ID4gPiDCoMKgwqAgZm9yZWFjaF9l bmdpbmUoaW5mby5lbmdpbmVzLCBpKQ0KPiA+ID4gwqDCoMKgIMKgwqDCoCBwcmludGYoICJHb3Qg aGFuZyBvbiAlc1xuIiwgaW5mby5lbmdpbmVzW2ldLm5hbWUgKTsNCj4gPiA+IA0KPiA+ID4gVGhl IGV4dGVybmFsIGxpYnJhcnkgaGFuZGxlcyBhbGwgdGhlIGZpbGUgZW5jb2RpbmcgaXNzdWVzLiBU aGUgdG9vbCANCj4gPiA+IGp1c3QgaGFzIHRvIHB1dCBtZWFuaW5nIHRvIHRoZSBmaWVsZHMgcmV0 dXJuZWQgZnJvbSB0aGF0IGxpYnJhcnkuDQo+ID4gDQo+ID4gdG8gcmVpdGVyYXRlIG15IHBvaW50 IHRoYXQgaXQgZG9lc24ndCBmaXggYWxsIHRoZSBwcm9ibGVtczoNCj4gPiANCj4gPiBpZiB5b3Ug bW92ZSBzb21ldGhpbmcgZnJvbSBpbmZvLmd1Y19jdC5ibGEgdG8gaW5mby5jb250ZXh0cy5ibGEN Cj4gPiAoZXhhY3RseSB3aGF0IGhhcHBlbmVkIGluIHRoZSBvdGhlciBidWcpIHlvdSBtYXkgc3Rp bGwgYnJlYWsgc3R1ZmYsDQo+ID4gcmVnYXJkbGVzcyBvZiB1c2luZyBhIGJldHRlciB3ZWxsLWtu b3duIGZvcm1hdC4NCj4gQnV0IGhhdmluZyB0aGUgc3RydWN0dXJlIG1lYW5zIHRoYXQgZGF0YSB3 aWxsIG5vdCBiZSBhZGRlZCB0byB0aGUgd3JvbmcgDQo+IHNlY3Rpb24gaW4gdGhlIGZpcnN0IHBs YWNlLg0KPiANCj4gVGhlIHByb2JsZW0gaGVyZSB3YXMgdGhhdCB3ZSBoYWQgbm8gc3RydWN0dXJl IHRvIGJlZ2luIHdpdGguIFRoZW4gDQo+IHN0cnVjdHVyZSBzdGFydGVkIHRvIGJlIGFkZGVkLiBC dXQgYSB0b29sIHdhcyBhbHJlYWR5IG1ha2luZyBpbmNvcnJlY3QgDQo+IGFzc3VtcHRpb25zIGJh c2VkIG9uIHRoZSBsYWNrIG9mIHN0cnVjdHVyZS4NCj4gDQo+IFN1cmUsIHdoZW4gc29tZXRoaW5n IG5lZWRzIHRvIGJlIG1vdmVkLCB0aGF0IHdpbGwgc3RpbGwgY2F1c2UgdGhlIHNhbWUgDQo+IGtp bmQgb2YgaXNzdWUuIEJ1dCB0aGF0IGlzIG11Y2ggbGVzcyBsaWtlbHkgdG8gaGFwcGVuIGlmIHdl IGFyZSBtb3JlIA0KPiBjYXJlZnVsIGFib3V0IGFkZGluZyBuZXcgZW50cmllcyB3aXRoaW4gYSBz ZW5zaWJsZSBzdHJ1Y3R1cmUgdG8gYmVnaW4gd2l0aC4NCj4gDQo+IEpvaG4uDQo+IA0KPiA+IA0K PiA+IEx1Y2FzIERlIE1hcmNoaQ0KPiA+IA0KPiA+ID4gDQo+ID4gPiBKb2huLg0KPiA+ID4gDQo+ ID4gPiA+IA0KPiA+ID4gPiBMdWNhcyBEZSBNYXJjaGkNCj4gPiA+ID4gDQo+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gSm9obi4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gTHVj YXMgRGUgTWFyY2hpDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gd2lsbCB0aGVuIHJlbW92 ZSBhbnkgYW5kIGFsbCBjb25mdXNpb24gb3ZlciBpbnRlcnByZXRhdGlvbiBvZiB0aGUgDQo+ID4g PiA+ID4gPiA+IGZpbGUgZm9yZXZlciBtb3JlLiBCdXQgaXQgd291bGQgcmVxdWlyZSB1cGRhdGlu ZyBhbGwgdXNlcmxhbmQgDQo+ID4gPiA+ID4gPiA+IHRvb2xzIHRvIHVzZSB0aGUgYXBwcm9wcmlh dGUgaGVscGVyIGxpYnJhcnkuDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBKb2huLg0K PiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiBMdWNhcyBE ZSBNYXJjaGkNCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gDQo+ID4gPiANCj4gDQoNCg==