From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id UQ4mF01+82kbgwYAWB0awg (envelope-from ) for ; Thu, 30 Apr 2026 12:07:41 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=D2wCjBYg; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 569E01E0BA; Thu, 30 Apr 2026 12:07:41 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 6416A1E067 for ; Thu, 30 Apr 2026 12:07:38 -0400 (EDT) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 934EB436A042 for ; Thu, 30 Apr 2026 16:07:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 934EB436A042 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=D2wCjBYg Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) by sourceware.org (Postfix) with ESMTPS id 9FCF44BA799C for ; Thu, 30 Apr 2026 16:07:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9FCF44BA799C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9FCF44BA799C Authentication-Results: server2.sourceware.org; arc=fail smtp.remote-ip=192.198.163.11 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1777565226; cv=fail; b=tyd1ZtV1C+LnL+ZLE0wVYlJeztoPVQcA7ZDiNKoVDIzp1qXeTDfTvF6gN/aAQnA18fOC/PzATDRsvsYdUDwnioyupb4aSxurWcBUVTchECDwqOMVd7jiApYuE6EAYXkGailZzMmjLannL4ACXalrBwyJk6T/i+Rpl/ExMOHN+/k= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1777565226; c=relaxed/simple; bh=IWsIsHbd+k2uj3o9MxvejZjNuPT8hF/ky6gy6wN8Bds=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=oZdRRQDm2klhfPAlLXumMbG/QU8GYVEbQfhFSwzbVl+DbTnnKVBUmKV0wAdDlS6Q3hRZI44ainpLncKStt4DT5OnSkIhx1GLAPK/U6LFKR9zn9b1Fi0/nYRaJVaLQMesNX9u0Ab22Lz3WzbYHUD5U9jU4bNBNAJ237DgHKUdYhk= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9FCF44BA799C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1777565225; x=1809101225; h=from:to:subject:date:message-id:references:in-reply-to: mime-version:content-transfer-encoding; bh=IWsIsHbd+k2uj3o9MxvejZjNuPT8hF/ky6gy6wN8Bds=; b=D2wCjBYgE7D9EyRfnxZcjpss+ATl3nFqKbQq033gvDeF5VcCIoqiOlaW Pl1qtITtFe6pEGZ1heBjuKWqlCzjXkPpM0iVUOHAYA9Je9i8t1rb2ufnC kWHzLQ8AXT0LHWr8zpfKHG62cbOeJYHR69LjintbJrlwGFCloBZLz+Ay+ Ez+D0bay/kc5/sVWPVhxkjwK5Dx3V7EqvPp4uBZg4gxVmX/TxsFIuIQaW 1xihOgFgr1IqSykeTGnt3c2FcKsgLmgJ0TbJB7bpH+1ZmiFPr88Z4t0bf c+4KfyggHjOETQxF/TXSvQ1cE5J+XqbTAR6SzfAQxRT9acdxwSxllvbq4 w==; X-CSE-ConnectionGUID: xMlKaCqvTMuAAeU7qkZBbg== X-CSE-MsgGUID: tgT4UmL7QSK+rvYHygqcdQ== X-IronPort-AV: E=McAfee;i="6800,10657,11772"; a="89120069" X-IronPort-AV: E=Sophos;i="6.23,208,1770624000"; d="scan'208";a="89120069" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Apr 2026 09:07:04 -0700 X-CSE-ConnectionGUID: 5IU3ZsXnTIOln+C9LihjPw== X-CSE-MsgGUID: NW572wHDTAqfC4l1U/M41w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,208,1770624000"; d="scan'208";a="234669369" Received: from fmsmsx902.amr.corp.intel.com ([10.18.126.91]) by orviesa009.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Apr 2026 09:07:04 -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.37; Thu, 30 Apr 2026 09:07:03 -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.37 via Frontend Transport; Thu, 30 Apr 2026 09:07:03 -0700 Received: from BN8PR05CU002.outbound.protection.outlook.com (52.101.57.56) 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.37; Thu, 30 Apr 2026 09:07:02 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cgf25q91KPcx4h0wVca7+KoHUz8IYERxa9Hun5Z6MtOSJSfPVvjK4EeDohe3jrivEIc3t0swnrWedKY/oB3N1c/bxbFBcaqnhVDE65lnRyVP5JDVWAxmzBEpcNSoRE1yR8Un6+h0KmcOKijfb/R3REHsS16foTdQVGp89pM0pZX6WYJVv42Z9rfeCfIBRog7eT9RrSgyl85swEYBmvqitwle2+HDCr9p6GfMarxtCzsirbum/bzCxljqNzG+T9DOlfWHkof/IHiHrxJ5xToBa6GSLwckJXTKKGh/axRpZt62L9JoFpDoMrjd5uVy9eA6O0DaG6/fwo8H7ITjGmKkzg== 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=0usuUevRHQeyIyUbmLCD3iZtBDu54/xuEUfK/LQcNfI=; b=SsJiTGBVbeu6UgRYiIEe+CLbewxYcHs6gZV9mq6zxlDGPTfGI2ObwUxH6N1xPhaNGxewwif/RfpZUq0KrIRyktPj8co1Gye43JGd3uoI/augDgzUTByIBABkuwK0ktj+EXj2xNRMIIqZ8pTk5QpjEnKhVlKLqeoFDb3FjmeDph3GJIQ0+MkBoFGXVHU8HcIQWoieFFqJNRX+pkCx35VzmbYVEYkwxnuPNKeZHWj78OqvkNX/mwBEGbIFiE6rCWyJy+NdlyYW51V4XTtV/2fhOSR6QemjKN6CtHTQEuKuWpfZXX6xynvFXA1+HneTQO8LPkG82SOmTOgTvK4s72IM+A== 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 SN7PR11MB7638.namprd11.prod.outlook.com (2603:10b6:806:34b::22) by CY8PR11MB7012.namprd11.prod.outlook.com (2603:10b6:930:54::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Thu, 30 Apr 2026 16:06:59 +0000 Received: from SN7PR11MB7638.namprd11.prod.outlook.com ([fe80::7a35:98d:f02c:b011]) by SN7PR11MB7638.namprd11.prod.outlook.com ([fe80::7a35:98d:f02c:b011%3]) with mapi id 15.20.9870.020; Thu, 30 Apr 2026 16:06:58 +0000 From: "Schimpe, Christina" To: "Gerlicher, Klaus" , "gdb-patches@sourceware.org" Subject: RE: [PATCH 1/1] gdb/linespec: relax block filter to preserve distinct code paths Thread-Topic: [PATCH 1/1] gdb/linespec: relax block filter to preserve distinct code paths Thread-Index: AQHc0ZNoQM5vqzBVcE+rxhvJWAlWerX3zOxA Date: Thu, 30 Apr 2026 16:06:58 +0000 Message-ID: References: <20260421133154.585917-1-klaus.gerlicher@intel.com> <20260421133154.585917-2-klaus.gerlicher@intel.com> In-Reply-To: <20260421133154.585917-2-klaus.gerlicher@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: SN7PR11MB7638:EE_|CY8PR11MB7012:EE_ x-ms-office365-filtering-correlation-id: 62616451-9045-4701-d48e-08dea6d28200 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|376014|366016|18002099003|56012099003|22082099003|13003099007|38070700021; x-microsoft-antispam-message-info: 0+r2oTfe3izMvmqxfqK/x0MGiRpM1FDLFi7nnSIDeiD6muzRs1iAxgsq1UAiAYUoJ0r5MheShJOLv+lwTY4zO0iJbchIPwtlGgJ7Pp9zj7whCkfAVRBSQke6LzoUaVenhlV6fGo0yXwkc8GBT3hTBlDiORU9rKSzLSHIgWkMgKJWH2XnXTxeq7RfidaQ7dz1h7LsSnlcOoMNrlSIXW/jEtZZ0ZKM79wr0gyUsNV9vGxKPWD1fYNXcT8MSzeHKYdJG9v1IOImbvVIdaXPckDev/siS8Qxb16lz+yjZqVl4b120C2sU5Hl/hfwzDT9hOtgjEQvTxrfzU3r5tMYHUf+qIOYlWOSiEhA6zmhL6vYbfJmB34zI034aJCcv0SqpC/4e4Ij3BvfmYgrTqTZAoeNpxZlXdUwRHShckWQx1CQnqqSMNKHGJYBAcmXLQpYb61yVwJQzcBLxVoMckjQ09YLyL4+BEow/Y4OW9+uE6siCLPgiJqrJ1pSL8+VyTvixy96dNQqI4IXiYbaKjzKYXaZekX2r4QFb8VjGYCuPAL8o6QXCuFbgDimeXe+OTnFt2EfJgouoxtPYqe12A+OCOb9twqxv1wLvg7s0Dx8A2uUa2O+xQ4sOG3npjvMOKaDNcoKhyh1sTK+5/eNIjxMUZF7oa4H06Qoc4SCOHaH4xWQNJrJHVDJzqO34WO4A/Fo5e5vM94ta6ZxF18QMHCNLH9JlM1oFswjHppZa6pXPLQzlzm4+qE5LUB3aRzr0nRCCwbW x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR11MB7638.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016)(18002099003)(56012099003)(22082099003)(13003099007)(38070700021); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TXFiamxrTmk3c1dYaDBKSWk4ZThlVE5GWmlBaHBsdUpUK3h6Q0I4V3NrRVdi?= =?utf-8?B?OFhyek5uYnJtNHZmdEFhL2JHTnRjMzVneGVLa1dKaTdWTERpakQvL1Nrc29R?= =?utf-8?B?VlptK3J4bzhQR2tWZzZ4ZFNaMThJR2UvUTVkcGliZGtFc2JDVk4xVUszQ3M2?= =?utf-8?B?bmc1bkplWnBJV1ZOZHZYMVZXeHowRk5NSHpMRk9majlaZlJWWS93SDdYMGlU?= =?utf-8?B?Z0R5bVNTTy9maHdpT0g5QUFHV3ZTQ0MxNkhuQ0d4TzFsQlNoNldHanpMTmlj?= =?utf-8?B?NmdrNHdhZ0V4dDd2cUZYalNUS0NTVjFLVS9MU2RkYzA1SHJ0MGhTRGJ1OTBk?= =?utf-8?B?Q09TV1I3Q3IwMytyTlA5U0cyZ1pWc2JqellzZ1VZVmREeWhLYXNOb0JNTDhV?= =?utf-8?B?Mm5COWlJcXBkMUQ3SENjOXRTVG1Hdks4Q0FkVDQ5Ty9aREhmSDR4ZzVRWW1Q?= =?utf-8?B?ZGZtNE1SZzBMdVRGNlNRZkVYaWNoYyt5UnFPeXc4eDdySHJEU28xekgzaGtr?= =?utf-8?B?NVp1SHlCRStodVlPaStXVGg4RmJvSWt0b2xXREhwSE05YzVSUGo2a2kvNlVq?= =?utf-8?B?Z0NIRzV2NER1Q1Ric0JsdU9zeWZ1emczWHlJVG5HQ09wME44T01iUzZpNGJq?= =?utf-8?B?a1h6dVo3eGtSVDhrMStOakNhOGFJcUo3TzQrZFJVYTlrU2kvQVFxdkVOb3Rh?= =?utf-8?B?aXppMzZqSlYzQlE3VHlRQWk4VkFZM2FNczdpR3VNV1pQMU56VTlNdy9tUXZj?= =?utf-8?B?ckRlQUdNY0IrVUtFQ3lXQ3pCT2NvQnBwa21pWS8vVndTS1BVbStORnFBUEFh?= =?utf-8?B?NUVnbmtlOFgvUExSVG9rZm80YWFzMHgxVnZkQUp5RnNJRW1DMCtlMU1GWGJV?= =?utf-8?B?RHZNTlhyMmNCOEtIWjRjMzY3TXJpK3hyOXc0L2JRVmpzbk1WUjM0SEZwQU9I?= =?utf-8?B?aTQwQnR3d1YzcGlQYkJycHMrYmF6aExNcUp1WWtyT3J3MVRRSmhwcmJKVmhG?= =?utf-8?B?MGYwMDBvTXFNSmtIODNWS2h5NnJsOFB0K0E0VDdKeFdiN2VVRjA0YjNwdGZm?= =?utf-8?B?UUxoUmpFUVJZYWxhVWFFSVpJMzY0Y2gwME1rbUlNb1VLUS9aM3NjM2hwem44?= =?utf-8?B?bmpPNXZTK3JEY3JoMEdiSGhzQlI5WW5aNmVTb1NRY2xiM1Vjb0R3RC9NYTVr?= =?utf-8?B?MWxqb1RCSzgwVUxHeUJMUzNodUhFSXRnRDZiU0U2aEFzTnJiaGVVYk5kbXQ2?= =?utf-8?B?d25WTW1Rajh0M2RITmNoano1RUlzSExRL1RSbDcxZWowemRqRTlXMzFONWtJ?= =?utf-8?B?QmVQOXNQdXBJM0hnaWFURkJMOTcvVzFHeWZvdlNQMXJxQTNmcDBtVkdDQ1M5?= =?utf-8?B?NFlmaW41aEREKy9FS3k3MjlFd2tKUElMdldiZGhWTTFJNVFqaWw3K3paTEs3?= =?utf-8?B?T2Jzdyt2dVhMOW12Rmd6OUJEUWlsMVg2L25QR1hDbjZUOTBxRHIxU3RiS25Z?= =?utf-8?B?dTI5WmFXcEZOVWZUMHR6Ri8yWnpCOW9EY2wya0ZkczEzVHBSL2JJTUpKMGlq?= =?utf-8?B?RUJyWklsMlFEUmNTZ3pqWm02c2xDL0hBZW1raGxkR0ZYTVlCaEhmcEdndlR1?= =?utf-8?B?UmhCeEVBcFcybk52Qmx4ZDBmUGx3akwzT05CdVFrdlgwYUJzc29XTGVSWW5k?= =?utf-8?B?MW9MbVRRMXJKR2MvRS9Cd1JoMzA4OHdoR2lBM1lUL25UazVkaEo3ZWVyNGxj?= =?utf-8?B?aEFybmVhUlluRk45NFpFSmNmYTFHK2ZmaElnRDhMcXJNMXpxSXIydmtqRlB3?= =?utf-8?B?amtkOU55M1RTZXc1VERqVnl2OTBlYnFrNEpSR3RGM0V5TnpHM2k0V3J5Zmda?= =?utf-8?B?QlZvdnJuZnNrMXVYQzJGZ1U2c1dUcVFocjc3amU1T1QvQmlvb2xhUXo2QWZ6?= =?utf-8?B?dVV0N3FQUVlYNHlNK0JKeWxoOHA5REgxdWtIVVNtdVhsZkxGMUt4dGlYbk9N?= =?utf-8?B?Tm1VbVdsYkpqTmh4K2V5aTZnTWE1WGRxa2gyS1dlQ3dhUG5ReFhZenQydExL?= =?utf-8?B?TGhPNTdOUi92K2VVNFgzS2pTQ0o3eko0dTViMTVaaWFtMjI1ZzJFcWN2TjNn?= =?utf-8?B?WnFzY0Z6WHdUb2hBZXJGeVh1SnBrZzdZa21Xd0E2VDR4RURSWVl3anZRYlNj?= =?utf-8?B?MUZuY3VQczRKejFYK1VCY2I1K0c4cGEzZ3dHVXpJYjhFVmhsUWltNzkwbm1q?= =?utf-8?B?QS9zMWlDNDdSSEh5ME55STg2Q1M1Y2hyaWpVU3AvSTAvQWpiNE9vOUhDeE9P?= =?utf-8?B?ZHRKZEppeXNwdm1HaEw0MzF2dVlyalZmREM4bXZGMWdxQVhTZ3ZYUT09?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: MKt4SZB6awAjtmnsfL/4bGdwfmF/T5Ivx83epH3x0WTByr7186YuAgCeDRtYhbXp/1H9nRR2oW1fhJ7OXbRtWGXZJoldNwQsQGu22G2Q8hd5Zj2KaATp3UqyoQbw54EErSjxVGsjhAIpS++gZEFHeYsko5WonHkoEx1ckL5385ScU6TrVAYiABcZkLE/oX0YPMl+eTavMvzU/barm3dJM6D5+xf3Yhzb2jo0qMCGUbJB2As1ZUI/5LT1mozF5VtGIx8hp+17RF905BYXWPt7M8SniAqC2HY8KWRtrIj2Sb8HXIuJ7EwQ0nsOtmMln+tQP3Odi+b6TZZ9HdKoDEB4pw== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN7PR11MB7638.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62616451-9045-4701-d48e-08dea6d28200 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2026 16:06:58.7296 (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: b8Jww4nXND2lRaMC9Dyt/6/REu5AtWYuEA97Lgl8jUbj0nbFyuKODyvnhBBzUip6nAjZQx+DUrLc/vUiKD6HKYfqDNg43YONXdY3E7npIUU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB7012 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBLbGF1cyBHZXJsaWNoZXIgPGts YXVzLmdlcmxpY2hlckBpbnRlbC5jb20+DQo+IFNlbnQ6IERpZW5zdGFnLCAyMS4gQXByaWwgMjAy NiAxNTozMg0KPiBUbzogZ2RiLXBhdGNoZXNAc291cmNld2FyZS5vcmcNCj4gU3ViamVjdDogW1BB VENIIDEvMV0gZ2RiL2xpbmVzcGVjOiByZWxheCBibG9jayBmaWx0ZXIgdG8gcHJlc2VydmUgZGlz dGluY3QgY29kZQ0KPiBwYXRocw0KPiANCj4gVGhlIGJsb2NrLWJhc2VkIGR1cGxpY2F0ZSBmaWx0 ZXIgaW4gY3JlYXRlX3NhbHNfbGluZV9vZmZzZXQga2VlcHMgb25seSB0aGUgZmlyc3QNCj4gaXNf c3RtdCBsaW5lIHRhYmxlIGVudHJ5IHBlciBibG9jay4gIFRoaXMgaGV1cmlzdGljIHJlZHVjZXMg bXVsdGlwbGUgZm9yLWxvb3ANCj4gaGVhZGVyIGVudHJpZXMgKGluaXQvdGVzdC9pbmNyZW1lbnQg b24gc2FtZSBsaW5lKSB0byBzaW5nbGUgYnJlYWtwb2ludA0KPiBsb2NhdGlvbnMuICBIb3dldmVy LCBpdCBpcyB0b28gYWdncmVzc2l2ZSBmb3IgdmVjdG9yaXplZCBsb29wcywgd2hlcmUgdGhlDQo+ IGNvbXBpbGVyIGVtaXRzIHNlcGFyYXRlIGNvZGUgcmVnaW9ucyBmb3IgdGhlIHZlY3Rvcml6ZWQg Ym9keSBhbmQgc2NhbGFyDQo+IHJlbWFpbmRlciwgYm90aCBvbiB0aGUgc2FtZSBzb3VyY2UgbGlu ZS4NCj4gVGhlIGZpbHRlciBkaXNjYXJkcyB0aGUgc2NhbGFyIHJlbWFpbmRlciBlbnRyeSwgY2F1 c2luZyBicmVha3BvaW50cyB0byBiZQ0KPiBzaWxlbnRseSBtaXNzZWQgd2hlbiBvbmx5IHRoZSBz Y2FsYXIgcGF0aCBleGVjdXRlcy4NCj4gDQo+IFRoZSBmaXggaW50cm9kdWNlcyByYW5nZV9oYXNf dW5jb25kaXRpb25hbF9mbG93X2NvbnRyb2wsIHdoaWNoIGFuYWx5emVzIHRoZQ0KPiBpbnN0cnVj dGlvbiBzdHJlYW0gZm9yIHR3byBjb25kaXRpb25zIGluZGljYXRpbmcgZGlzdGluY3QgY29kZSBw YXRoczoNCj4gDQo+IDEuIFVuY29uZGl0aW9uYWwgZXhpdDogVGhlIGxhc3QgaW5zdHJ1Y3Rpb24g YmVmb3JlIHRoZSBzZWNvbmQgUEMgaXMgYW4NCj4gICAgdW5jb25kaXRpb25hbCBqbXAgb3IgcmV0 IChleGVjdXRpb24gY2Fubm90IGZhbGwgdGhyb3VnaCkuDQo+IA0KPiAyLiBCYWNrd2FyZCBicmFu Y2g6IEFueSBpbnN0cnVjdGlvbiBpbiB0aGUgcmFuZ2UgaXMgYSByZWxhdGl2ZSBicmFuY2gNCj4g ICAgdGFyZ2V0aW5nIGJlZm9yZSB0aGUgZmlyc3QgUEMgKGxvb3AgYmFjay1lZGdlIGluZGljYXRp bmcgc2VwYXJhdGUNCj4gICAgbG9vcCBib2RpZXMpLg0KPiANCj4gQSBuZXcgZ2RiYXJjaCBtZXRo b2QgZ2RiYXJjaF9pbnNuX2JyYW5jaF90YXJnZXQgZGVjb2RlcyByZWxhdGl2ZSBicmFuY2gNCj4g dGFyZ2V0cy4gSW1wbGVtZW50ZWQgZm9yIGFtZDY0OyBvdGhlciBhcmNoaXRlY3R1cmVzIGRlZmF1 bHQgdG8gY29uc2VydmF0aXZlDQo+IGJlaGF2aW9yLCBwcmVzZXJ2aW5nIGJhY2t3YXJkIGNvbXBh dGliaWxpdHkuDQo+IA0KPiBUZXN0aW5nIGNvdmVyczoNCj4gLSBmb3JfbG9vcF9lbXB0eV9ib2R5 ICgtTzApOiAxIGxvY2F0aW9uDQo+IC0gZm9yX2xvb3BfbGFyZ2VfYm9keSAoLU8wKTogMSBsb2Nh dGlvbiAoZXhjZWVkcyBmb3JtZXIgc2NhbiBsaW1pdHMpDQo+IC0gZm9yX2xvb3BfdmVjdG9yaXpl ZCAoLU8yKTogPj0gMiBsb2NhdGlvbnMgd2l0aCBydW50aW1lIHZlcmlmaWNhdGlvbg0KPiAtIG5l c3RlZF92ZWN0b3JpemVkX2xvb3BzICgtTzIpOiA+PSAyIGxvY2F0aW9ucw0KPiAtIGxvb3Bfd2l0 aF9lYXJseV9icmVhayAoLU8yKTogPj0gMiBvciAxIGxvY2F0aW9uDQo+IC0gaWZlbHNlX3NlcGFy YXRlX2xpbmVzICgtTzApOiAyIGxvY2F0aW9ucyAoc2FuaXR5IGNoZWNrKQ0KPiANCj4gVGVzdGVk IHdpdGggR0NDIDExIGFuZCBJQ1ggMjAyNS4yIG9uIHg4Nl82NC4NCj4gLS0tDQo+ICBnZGIvTkVX UyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKw0KPiAgZ2RiL2Ft ZDY0LXRkZXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU3ICsrKysNCj4gIGdk Yi9hcmNoLXV0aWxzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArDQo+ICBn ZGIvYXJjaC11dGlscy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiAg Z2RiL2dkYmFyY2gtZ2VuLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICsrDQo+ ICBnZGIvZ2RiYXJjaC1nZW4uaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKw0K PiAgZ2RiL2dkYmFyY2hfY29tcG9uZW50cy5weSAgICAgICAgICAgICAgICAgICAgIHwgIDE1ICsr DQo+ICBnZGIvbGluZXNwZWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOTUg KysrKysrLQ0KPiAgLi4uL2dkYi5saW5lc3BlYy9ibG9jay1maWx0ZXItY2FzZXMuYyAgICAgICAg IHwgMTI2ICsrKysrKysrKw0KPiAgLi4uL2dkYi5saW5lc3BlYy9ibG9jay1maWx0ZXItY2FzZXMu ZXhwICAgICAgIHwgMjQ4ICsrKysrKysrKysrKysrKysrKw0KPiAgMTAgZmlsZXMgY2hhbmdlZCwg NTkyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4g Z2RiL3Rlc3RzdWl0ZS9nZGIubGluZXNwZWMvYmxvY2stZmlsdGVyLWNhc2VzLmMNCj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5saW5lc3BlYy9ibG9jay1maWx0ZXItY2Fz ZXMuZXhwDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVXUw0KPiBpbmRleCA2 YjVjMmY2YTQ2YS4uOWI4NWJkNzk5NDQgMTAwNjQ0DQo+IC0tLSBhL2dkYi9ORVdTDQo+ICsrKyBi L2dkYi9ORVdTDQo+IEBAIC02MSw2ICs2MSwxNyBAQA0KPiAgICBUaGlzIGZpeGVzIGFuIGlzc3Vl IHdoZXJlIEdEQiBjb3VsZCBmYWlsIHRvIGZpbmQgYSB0eXBlIHdoZW4gcmVseWluZw0KPiAgICBv biB0aGUgaW5kZXguICBBbnkgZXhpc3RpbmcgaW5kZXhlcyBzaG91bGQgYmUgcmVnZW5lcmF0ZWQu DQo+IA0KPiArKiBCcmVha3BvaW50IGxvY2F0aW9uIHJlc29sdXRpb24gaGFzIGJlZW4gaW1wcm92 ZWQgZm9yIHZlY3Rvcml6ZWQgbG9vcHMuDQo+ICsgIFByZXZpb3VzbHksIHdoZW4gc2V0dGluZyBh IGJyZWFrcG9pbnQgb24gYSBzb3VyY2UgbGluZSB3aXRoDQo+ICt2ZWN0b3JpemVkDQo+ICsgIGNv ZGUgKGF0IC1PMiB3aXRoIC1mdHJlZS12ZWN0b3JpemUpLCBHREIncyBibG9jayBmaWx0ZXIgaGV1 cmlzdGljDQo+ICt3b3VsZA0KPiArICBkaXNjYXJkIHRoZSBzY2FsYXIgcmVtYWluZGVyIGxvY2F0 aW9uLCBjYXVzaW5nIGJyZWFrcG9pbnRzIHRvIGJlDQo+ICttaXNzZWQNCj4gKyAgd2hlbiBvbmx5 IHRoZSBzY2FsYXIgcGF0aCBleGVjdXRlZC4gR0RCIG5vdyBjb3JyZWN0bHkgcHJlc2VydmVzDQo+ ICttdWx0aXBsZQ0KPiArICBsb2NhdGlvbnMgZm9yIHZlY3Rvcml6ZWQgYW5kIHNjYWxhciBsb29w IHBhdGhzLCBpbXByb3ZpbmcNCj4gK2RlYnVnZ2FiaWxpdHkNCj4gKyAgb2Ygb3B0aW1pemVkIGNv ZGUuDQo+ICsNCj4gKyAgVXNlICJzZXQgbGluZXNwZWMtZXh0ZW5kZWQtYmxvY2stZmlsdGVyIG9m ZiIgdG8gZGlzYWJsZSB0aGUgbmV3DQo+ICsgaGV1cmlzdGljIGFuZCByZXZlcnQgdG8gdGhlIG9y aWdpbmFsIGJlaGF2aW9yIGlmIG5lZWRlZC4NCj4gKw0KPiAgKiBTdXBwb3J0IGZvciBGbG9hdGlu ZyBQb2ludCBNb2RlIFJlZ2lzdGVyIChGUE1SKSBpbiBBQXJjaDY0Lg0KPiANCj4gICogV2hlbiBy dW5uaW5nIG9uIHRoZSBXaW5kb3dzIFRlcm1pbmFsIGNvbnNvbGUsIEdEQiBub3cgc3VwcG9ydHMg ZGlmZiAtLQ0KPiBnaXQgYS9nZGIvYW1kNjQtdGRlcC5jIGIvZ2RiL2FtZDY0LXRkZXAuYyBpbmRl eA0KPiAwZDIzYWJiMzE2NC4uNzY0NTA3NzVkNDUgMTAwNzU1DQo+IC0tLSBhL2dkYi9hbWQ2NC10 ZGVwLmMNCj4gKysrIGIvZ2RiL2FtZDY0LXRkZXAuYw0KPiBAQCAtMTgyMiw2ICsxODIyLDYyIEBA IGFtZDY0X2luc25faXNfanVtcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsDQo+IENPUkVfQURE UiBhZGRyKQ0KPiAgICByZXR1cm4gYW1kNjRfY2xhc3NpZnlfaW5zbl9hdCAoZ2RiYXJjaCwgYWRk ciwgYW1kNjRfam1wX3ApOyAgfQ0KPiANCj4gKy8qIFJldHVybiB0aGUgc3RhdGljYWxseS1rbm93 biB0YXJnZXQgb2YgYSByZWxhdGl2ZSBicmFuY2ggaW5zdHJ1Y3Rpb24NCj4gKyAgIChjb25kaXRp b25hbCBKY2MsIEpNUCwgTE9PUCwgSkNYWikuICBSZXR1cm4gc3RkOjpudWxsb3B0IGZvciBub24t YnJhbmNoLA0KPiArICAgaW5kaXJlY3QgYnJhbmNoZXMsIG9yIHdoZW4gbWVtb3J5IGNhbm5vdCBi ZSByZWFkLiAgKi8NCj4gKw0KPiArc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q09SRV9BRERSPg0KPiAr YW1kNjRfaW5zbl9icmFuY2hfdGFyZ2V0IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9B RERSIGFkZHIpIHsNCj4gKyAgZ2RiX2J5dGUgYnVmWzE2XTsNCj4gKw0KPiArICAvKiBSZWFkIGVu b3VnaCBieXRlcyBmb3IgdGhlIGxvbmdlc3QgcmVsYXRpdmUtYnJhbmNoIGVuY29kaW5nLiAgKi8N Cj4gKyBpZiAodGFyZ2V0X3JlYWRfbWVtb3J5IChhZGRyLCBidWYsIHNpemVvZiAoYnVmKSkgIT0g MCkNCj4gKyAgICByZXR1cm4gc3RkOjpudWxsb3B0Ow0KPiArDQo+ICsgIC8qIFNraXAgYSBzaW5n bGUgUkVYIHByZWZpeCBieXRlICgweDQwLTB4NEYpLiAgKi8gIGludCBvZmYgPSAwOyAgaWYNCj4g KyAoKGJ1ZlswXSAmIDB4ZjApID09IDB4NDApDQo+ICsgICAgb2ZmID0gMTsNCj4gKw0KPiArICBj b25zdCBnZGJfYnl0ZSBvcGMgPSBidWZbb2ZmXTsNCj4gKw0KPiArICAvKiBTaG9ydCBjb25kaXRp b25hbCBKY2M6IDd4IGNjICAoMiBieXRlcywgc2lnbmVkIDgtYml0DQo+ICsgZGlzcGxhY2VtZW50 KS4gICovICBpZiAoKG9wYyAmIDB4ZjApID09IDB4NzApDQo+ICsgICAgcmV0dXJuIGFkZHIgKyBv ZmYgKyAyICsgKExPTkdFU1QpIChzaWduZWQgY2hhcikgYnVmW29mZiArIDFdOw0KPiArDQo+ICsg IC8qIFNob3J0IHVuY29uZGl0aW9uYWwgSk1QOiBFQiBjYyAgKDIgYnl0ZXMpLiAgKi8gIGlmIChv cGMgPT0gMHhlYikNCj4gKyAgICByZXR1cm4gYWRkciArIG9mZiArIDIgKyAoTE9OR0VTVCkgKHNp Z25lZCBjaGFyKSBidWZbb2ZmICsgMV07DQo+ICsNCj4gKyAgLyogTE9PUC9MT09QRS9MT09QTkU6 IEUyL0UxL0UwIGNjICAoMiBieXRlcywgc2lnbmVkIDgtYml0DQo+ICsgZGlzcGxhY2VtZW50KS4g ICovICBpZiAoKG9wYyAmIDB4ZmQpID09IDB4ZTApDQo+ICsgICAgcmV0dXJuIGFkZHIgKyBvZmYg KyAyICsgKExPTkdFU1QpIChzaWduZWQgY2hhcikgYnVmW29mZiArIDFdOw0KPiArDQo+ICsgIC8q IEpDWFovSkVDWFovSlJDWFo6IEUzIGNjICAoMiBieXRlcywgc2lnbmVkIDgtYml0IGRpc3BsYWNl bWVudCkuICAqLw0KPiArIGlmIChvcGMgPT0gMHhlMykNCj4gKyAgICByZXR1cm4gYWRkciArIG9m ZiArIDIgKyAoTE9OR0VTVCkgKHNpZ25lZCBjaGFyKSBidWZbb2ZmICsgMV07DQo+ICsNCj4gKyAg LyogTmVhciBjb25kaXRpb25hbCBKY2M6IDBGIDh4IGNjIGNjIGNjIGNjICAoNiBieXRlcywgc2ln bmVkIDMyLWJpdCkuDQo+ICsgKi8gIGlmIChvcGMgPT0gMHgwZiAmJiAoYnVmW29mZiArIDFdICYg MHhmMCkgPT0gMHg4MCkNCj4gKyAgICB7DQo+ICsgICAgICBpbnQzMl90IGRpc3A7DQo+ICsgICAg ICBtZW1jcHkgKCZkaXNwLCBidWYgKyBvZmYgKyAyLCBzaXplb2YgKGRpc3ApKTsNCj4gKyAgICAg IHJldHVybiBhZGRyICsgb2ZmICsgNiArIChMT05HRVNUKSBkaXNwOw0KPiArICAgIH0NCj4gKw0K PiArICAvKiBOZWFyIHVuY29uZGl0aW9uYWwgSk1QOiBFOSBjYyBjYyBjYyBjYyAgKDUgYnl0ZXMs IHNpZ25lZCAzMi1iaXQpLg0KPiArICovICBpZiAob3BjID09IDB4ZTkpDQo+ICsgICAgew0KPiAr ICAgICAgaW50MzJfdCBkaXNwOw0KPiArICAgICAgbWVtY3B5ICgmZGlzcCwgYnVmICsgb2ZmICsg MSwgc2l6ZW9mIChkaXNwKSk7DQo+ICsgICAgICByZXR1cm4gYWRkciArIG9mZiArIDUgKyAoTE9O R0VTVCkgZGlzcDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgLyogSW5kaXJlY3Qgb3IgZmFyIGJyYW5j aGVzOiB0YXJnZXQgY2Fubm90IGJlIGRldGVybWluZWQgc3RhdGljYWxseS4NCj4gKyovDQo+ICsg IHJldHVybiBzdGQ6Om51bGxvcHQ7DQo+ICt9DQo+ICsNCj4gIC8qIEZpeCB1cCB0aGUgc3RhdGUg b2YgcmVnaXN0ZXJzIGFuZCBtZW1vcnkgYWZ0ZXIgaGF2aW5nIHNpbmdsZS1zdGVwcGVkDQo+ICAg ICBhIGRpc3BsYWNlZCBpbnN0cnVjdGlvbi4gICovDQo+IA0KPiBAQCAtMzY0Myw2ICszNjk5LDcg QEAgYW1kNjRfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywgc3RydWN0DQo+IGdk YmFyY2ggKmdkYmFyY2gsDQo+ICAgIHNldF9nZGJhcmNoX2luc25faXNfY2FsbCAoZ2RiYXJjaCwg YW1kNjRfaW5zbl9pc19jYWxsKTsNCj4gICAgc2V0X2dkYmFyY2hfaW5zbl9pc19yZXQgKGdkYmFy Y2gsIGFtZDY0X2luc25faXNfcmV0KTsNCj4gICAgc2V0X2dkYmFyY2hfaW5zbl9pc19qdW1wIChn ZGJhcmNoLCBhbWQ2NF9pbnNuX2lzX2p1bXApOw0KPiArICBzZXRfZ2RiYXJjaF9pbnNuX2JyYW5j aF90YXJnZXQgKGdkYmFyY2gsIGFtZDY0X2luc25fYnJhbmNoX3RhcmdldCk7DQo+IA0KPiAgICBz ZXRfZ2RiYXJjaF9pbl9pbmRpcmVjdF9icmFuY2hfdGh1bmsgKGdkYmFyY2gsDQo+ICAJCQkJCWFt ZDY0X2luX2luZGlyZWN0X2JyYW5jaF90aHVuayk7DQo+IGRpZmYgLS1naXQgYS9nZGIvYXJjaC11 dGlscy5jIGIvZ2RiL2FyY2gtdXRpbHMuYyBpbmRleA0KPiBlYTBiM2MxMTFmOS4uMjhhOGQzM2Qx MzkgMTAwNjQ0DQo+IC0tLSBhL2dkYi9hcmNoLXV0aWxzLmMNCj4gKysrIGIvZ2RiL2FyY2gtdXRp bHMuYw0KPiBAQCAtNDUsNiArNDUsOCBAQA0KPiANCj4gICNpbmNsdWRlICJkaXMtYXNtLmgiDQo+ IA0KPiArI2luY2x1ZGUgPG9wdGlvbmFsPg0KPiArDQo+ICBib29sDQo+ICBkZWZhdWx0X2Rpc3Bs YWNlZF9zdGVwX2h3X3NpbmdsZXN0ZXAgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKSAgeyBAQCAt DQo+IDkyMyw2ICs5MjUsMTQgQEAgZGVmYXVsdF9pbnNuX2lzX2p1bXAgKHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoLA0KPiBDT1JFX0FERFIgYWRkcikNCj4gDQo+ICAvKiAgU2VlIGFyY2gtdXRpbHMu aC4gICovDQo+IA0KPiArc3RkOjpvcHRpb25hbDxDT1JFX0FERFI+DQo+ICtkZWZhdWx0X2luc25f YnJhbmNoX3RhcmdldCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBhZGRyKSB7 DQo+ICsgIHJldHVybiBzdGQ6Om51bGxvcHQ7DQo+ICt9DQo+ICsNCj4gKy8qICBTZWUgYXJjaC11 dGlscy5oLiAgKi8NCj4gKw0KPiAgYm9vbA0KPiAgZGVmYXVsdF9wcm9ncmFtX2JyZWFrcG9pbnRf aGVyZV9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwNCj4gIAkJCQkgICBDT1JFX0FERFIgYWRk cmVzcykNCj4gZGlmZiAtLWdpdCBhL2dkYi9hcmNoLXV0aWxzLmggYi9nZGIvYXJjaC11dGlscy5o IGluZGV4DQo+IGQ1NzcyNTc1YzdhLi4yZWM3ZTU5MDBhNyAxMDA2NDQNCj4gLS0tIGEvZ2RiL2Fy Y2gtdXRpbHMuaA0KPiArKysgYi9nZGIvYXJjaC11dGlscy5oDQo+IEBAIC0zMjcsNiArMzI3LDcg QEAgZXh0ZXJuIGJvb2wgZGVmYXVsdF9yZXR1cm5faW5fZmlyc3RfaGlkZGVuX3BhcmFtX3ANCj4g KHN0cnVjdCBnZGJhcmNoICosICBleHRlcm4gYm9vbCBkZWZhdWx0X2luc25faXNfY2FsbCAoc3Ry dWN0IGdkYmFyY2ggKiwNCj4gQ09SRV9BRERSKTsgIGV4dGVybiBib29sIGRlZmF1bHRfaW5zbl9p c19yZXQgKHN0cnVjdCBnZGJhcmNoICosDQo+IENPUkVfQUREUik7ICBleHRlcm4gYm9vbCBkZWZh dWx0X2luc25faXNfanVtcCAoc3RydWN0IGdkYmFyY2ggKiwNCj4gQ09SRV9BRERSKTsNCj4gK2V4 dGVybiBzdGQ6Om9wdGlvbmFsPENPUkVfQUREUj4gZGVmYXVsdF9pbnNuX2JyYW5jaF90YXJnZXQg KHN0cnVjdA0KPiArZ2RiYXJjaCAqLCBDT1JFX0FERFIpOw0KPiANCj4gIC8qIERlZmF1bHQgaW1w bGVtZW50YXRpb24gb2YgZ2RiYXJjaF9wcm9ncmFtX2JyZWFrcG9pbnRfaGVyZV9wLiAgKi8NCj4g ZXh0ZXJuIGJvb2wgZGVmYXVsdF9wcm9ncmFtX2JyZWFrcG9pbnRfaGVyZV9wIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwNCj4gZGlmZiAtLWdpdCBhL2dkYi9nZGJhcmNoLWdlbi5jIGIvZ2RiL2dk YmFyY2gtZ2VuLmMgaW5kZXgNCj4gMWE4ZjIxMDkxYjIuLmQzMWFkODQyODBjIDEwMDY0NA0KPiAt LS0gYS9nZGIvZ2RiYXJjaC1nZW4uYw0KPiArKysgYi9nZGIvZ2RiYXJjaC1nZW4uYw0KPiBAQCAt MjM0LDYgKzIzNCw3IEBAIHN0cnVjdCBnZGJhcmNoDQo+ICAgIGdkYmFyY2hfaW5zbl9pc19jYWxs X2Z0eXBlICppbnNuX2lzX2NhbGwgPSBkZWZhdWx0X2luc25faXNfY2FsbDsNCj4gICAgZ2RiYXJj aF9pbnNuX2lzX3JldF9mdHlwZSAqaW5zbl9pc19yZXQgPSBkZWZhdWx0X2luc25faXNfcmV0Ow0K PiAgICBnZGJhcmNoX2luc25faXNfanVtcF9mdHlwZSAqaW5zbl9pc19qdW1wID0gZGVmYXVsdF9p bnNuX2lzX2p1bXA7DQo+ICsgIGdkYmFyY2hfaW5zbl9icmFuY2hfdGFyZ2V0X2Z0eXBlICppbnNu X2JyYW5jaF90YXJnZXQgPQ0KPiArIGRlZmF1bHRfaW5zbl9icmFuY2hfdGFyZ2V0Ow0KPiAgICBn ZGJhcmNoX3Byb2dyYW1fYnJlYWtwb2ludF9oZXJlX3BfZnR5cGUgKnByb2dyYW1fYnJlYWtwb2lu dF9oZXJlX3ANCj4gPSBkZWZhdWx0X3Byb2dyYW1fYnJlYWtwb2ludF9oZXJlX3A7DQo+ICAgIGdk YmFyY2hfYXV4dl9wYXJzZV9mdHlwZSAqYXV4dl9wYXJzZSA9IG51bGxwdHI7DQo+ICAgIGdkYmFy Y2hfcHJpbnRfYXV4dl9lbnRyeV9mdHlwZSAqcHJpbnRfYXV4dl9lbnRyeSA9DQo+IGRlZmF1bHRf cHJpbnRfYXV4dl9lbnRyeTsgQEAgLTQ5NCw2ICs0OTUsNyBAQCB2ZXJpZnlfZ2RiYXJjaCAoc3Ry dWN0DQo+IGdkYmFyY2ggKmdkYmFyY2gpDQo+ICAgIC8qIFNraXAgdmVyaWZ5IG9mIGluc25faXNf Y2FsbCwgaW52YWxpZF9wID09IDAuICAqLw0KPiAgICAvKiBTa2lwIHZlcmlmeSBvZiBpbnNuX2lz X3JldCwgaW52YWxpZF9wID09IDAuICAqLw0KPiAgICAvKiBTa2lwIHZlcmlmeSBvZiBpbnNuX2lz X2p1bXAsIGludmFsaWRfcCA9PSAwLiAgKi8NCj4gKyAgLyogU2tpcCB2ZXJpZnkgb2YgaW5zbl9i cmFuY2hfdGFyZ2V0LCBpbnZhbGlkX3AgPT0gMC4gICovDQo+ICAgIC8qIFNraXAgdmVyaWZ5IG9m IHByb2dyYW1fYnJlYWtwb2ludF9oZXJlX3AsIGludmFsaWRfcCA9PSAwLiAgKi8NCj4gICAgLyog U2tpcCB2ZXJpZnkgb2YgYXV4dl9wYXJzZSwgaGFzIHByZWRpY2F0ZS4gICovDQo+ICAgIC8qIFNr aXAgdmVyaWZ5IG9mIHByaW50X2F1eHZfZW50cnksIGludmFsaWRfcCA9PSAwLiAgKi8gQEAgLTEy NzYsNiArMTI3OCw5DQo+IEBAIGdkYmFyY2hfZHVtcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs IHN0cnVjdCB1aV9maWxlICpmaWxlKQ0KPiAgICBnZGJfcHJpbnRmIChmaWxlLA0KPiAgCSAgICAg ICJnZGJhcmNoX2R1bXA6IGluc25faXNfanVtcCA9IDwlcz5cbiIsDQo+ICAJICAgICAgaG9zdF9h ZGRyZXNzX3RvX3N0cmluZyAoZ2RiYXJjaC0+aW5zbl9pc19qdW1wKSk7DQo+ICsgIGdkYl9wcmlu dGYgKGZpbGUsDQo+ICsJICAgICAgImdkYmFyY2hfZHVtcDogaW5zbl9icmFuY2hfdGFyZ2V0ID0g PCVzPlxuIiwNCj4gKwkgICAgICBob3N0X2FkZHJlc3NfdG9fc3RyaW5nIChnZGJhcmNoLT5pbnNu X2JyYW5jaF90YXJnZXQpKTsNCj4gICAgZ2RiX3ByaW50ZiAoZmlsZSwNCj4gIAkgICAgICAiZ2Ri YXJjaF9kdW1wOiBwcm9ncmFtX2JyZWFrcG9pbnRfaGVyZV9wID0gPCVzPlxuIiwNCj4gIAkgICAg ICBob3N0X2FkZHJlc3NfdG9fc3RyaW5nIChnZGJhcmNoLT5wcm9ncmFtX2JyZWFrcG9pbnRfaGVy ZV9wKSk7DQo+IEBAIC00OTUwLDYgKzQ5NTUsMjMgQEAgc2V0X2dkYmFyY2hfaW5zbl9pc19qdW1w IChzdHJ1Y3QgZ2RiYXJjaA0KPiAqZ2RiYXJjaCwNCj4gICAgZ2RiYXJjaC0+aW5zbl9pc19qdW1w ID0gaW5zbl9pc19qdW1wOyAgfQ0KPiANCj4gK3N0ZDo6b3B0aW9uYWw8Q09SRV9BRERSPg0KPiAr Z2RiYXJjaF9pbnNuX2JyYW5jaF90YXJnZXQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JF X0FERFIgYWRkcikgew0KPiArICBnZGJfYXNzZXJ0IChnZGJhcmNoICE9IG51bGxwdHIpOw0KPiAr ICBnZGJfYXNzZXJ0IChnZGJhcmNoLT5pbnNuX2JyYW5jaF90YXJnZXQgIT0gbnVsbHB0cik7DQo+ ICsgIGlmIChnZGJhcmNoX2RlYnVnID49IDIpDQo+ICsgICAgZ2RiX3ByaW50ZiAoZ2RiX3N0ZGxv ZywgImdkYmFyY2hfaW5zbl9icmFuY2hfdGFyZ2V0IGNhbGxlZFxuIik7DQo+ICsgIHJldHVybiBn ZGJhcmNoLT5pbnNuX2JyYW5jaF90YXJnZXQgKGdkYmFyY2gsIGFkZHIpOyB9DQo+ICsNCj4gK3Zv aWQNCj4gK3NldF9nZGJhcmNoX2luc25fYnJhbmNoX3RhcmdldCAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsDQo+ICsJCQkJZ2RiYXJjaF9pbnNuX2JyYW5jaF90YXJnZXRfZnR5cGUNCj4gaW5zbl9i cmFuY2hfdGFyZ2V0KSB7DQo+ICsgIGdkYmFyY2gtPmluc25fYnJhbmNoX3RhcmdldCA9IGluc25f YnJhbmNoX3RhcmdldDsgfQ0KPiArDQo+ICBib29sDQo+ICBnZGJhcmNoX3Byb2dyYW1fYnJlYWtw b2ludF9oZXJlX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KPiBDT1JFX0FERFIgYWRkcmVz cykgIHsgZGlmZiAtLWdpdCBhL2dkYi9nZGJhcmNoLWdlbi5oIGIvZ2RiL2dkYmFyY2gtZ2VuLmgN Cj4gaW5kZXggYzEzOTQ5Nzg1NjguLmUzMWRkYzZiNzQxIDEwMDY0NA0KPiAtLS0gYS9nZGIvZ2Ri YXJjaC1nZW4uaA0KPiArKysgYi9nZGIvZ2RiYXJjaC1nZW4uaA0KPiBAQCAtMTU5Miw2ICsxNTky LDE2IEBAIHVzaW5nIGdkYmFyY2hfaW5zbl9pc19qdW1wX2Z0eXBlID0gYm9vbCAoc3RydWN0DQo+ IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBhZGRyICBib29sIGdkYmFyY2hfaW5zbl9pc19q dW1wIChzdHJ1Y3QNCj4gZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIGFkZHIpOyAgdm9pZCBz ZXRfZ2RiYXJjaF9pbnNuX2lzX2p1bXAgKHN0cnVjdA0KPiBnZGJhcmNoICpnZGJhcmNoLCBnZGJh cmNoX2luc25faXNfanVtcF9mdHlwZSAqaW5zbl9pc19qdW1wKTsNCj4gDQo+ICsvKiBGb3IgYSBy ZWxhdGl2ZSBicmFuY2ggaW5zdHJ1Y3Rpb24gYXQgQUREUiAoY29uZGl0aW9uYWwgb3INCj4gKyAg IHVuY29uZGl0aW9uYWwpLCByZXR1cm4gdGhlIHN0YXRpY2FsbHkta25vd24gYnJhbmNoIHRhcmdl dCBhZGRyZXNzLg0KPiArICAgUmV0dXJuIHN0ZDo6bnVsbG9wdCBmb3Igbm9uLWJyYW5jaCBpbnN0 cnVjdGlvbnMsIGluZGlyZWN0IGJyYW5jaGVzLA0KPiArICAgb3Igd2hlbiByZWFkaW5nIG1lbW9y eSBmYWlscy4gIFRoaXMgaXMgdXNlZCB0byBkZXRlY3QgYmFja3dhcmQNCj4gKyAgIGxvb3AgYmFj ay1lZGdlcyBkdXJpbmcgRFdBUkYgbGluZS10YWJsZSBhbmFseXNpcy4gKi8NCj4gKw0KPiArdXNp bmcgZ2RiYXJjaF9pbnNuX2JyYW5jaF90YXJnZXRfZnR5cGUgPSBzdGQ6Om9wdGlvbmFsPENPUkVf QUREUj4NCj4gKyhzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIGFkZHIpOyBzdGQ6 Om9wdGlvbmFsPENPUkVfQUREUj4NCj4gK2dkYmFyY2hfaW5zbl9icmFuY2hfdGFyZ2V0IChzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIGFkZHIpOw0KPiArdm9pZCBzZXRfZ2RiYXJj aF9pbnNuX2JyYW5jaF90YXJnZXQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KPiArZ2RiYXJj aF9pbnNuX2JyYW5jaF90YXJnZXRfZnR5cGUgKmluc25fYnJhbmNoX3RhcmdldCk7DQo+ICsNCj4g IC8qIFJldHVybiB0cnVlIGlmIHRoZXJlJ3MgYSBwcm9ncmFtL3Blcm1hbmVudCBicmVha3BvaW50 IHBsYW50ZWQgaW4NCj4gICAgIG1lbW9yeSBhdCBBRERSRVNTLCByZXR1cm4gZmFsc2Ugb3RoZXJ3 aXNlLiAqLw0KPiANCj4gZGlmZiAtLWdpdCBhL2dkYi9nZGJhcmNoX2NvbXBvbmVudHMucHkgYi9n ZGIvZ2RiYXJjaF9jb21wb25lbnRzLnB5DQo+IGluZGV4IDdhMzI5ZDkyMTY2Li40ZGNmNTk1ZjIy OSAxMDA2NDQNCj4gLS0tIGEvZ2RiL2dkYmFyY2hfY29tcG9uZW50cy5weQ0KPiArKysgYi9nZGIv Z2RiYXJjaF9jb21wb25lbnRzLnB5DQo+IEBAIC0yNTI0LDYgKzI1MjQsMjEgQEAgUmV0dXJuIHRy dWUgaWYgdGhlIGluc3RydWN0aW9uIGF0IEFERFIgaXMgYSBqdW1wOw0KPiBmYWxzZSBvdGhlcndp c2UuDQo+ICAgICAgaW52YWxpZD1GYWxzZSwNCj4gICkNCj4gDQo+ICtNZXRob2QoDQo+ICsgICAg Y29tbWVudD0iIiINCj4gK0ZvciBhIHJlbGF0aXZlIGJyYW5jaCBpbnN0cnVjdGlvbiBhdCBBRERS IChjb25kaXRpb25hbCBvcg0KPiArdW5jb25kaXRpb25hbCksIHJldHVybiB0aGUgc3RhdGljYWxs eS1rbm93biBicmFuY2ggdGFyZ2V0IGFkZHJlc3MuDQo+ICtSZXR1cm4gc3RkOjpudWxsb3B0IGZv ciBub24tYnJhbmNoIGluc3RydWN0aW9ucywgaW5kaXJlY3QgYnJhbmNoZXMsIG9yDQo+ICt3aGVu IHJlYWRpbmcgbWVtb3J5IGZhaWxzLiAgVGhpcyBpcyB1c2VkIHRvIGRldGVjdCBiYWNrd2FyZCBs b29wDQo+ICtiYWNrLWVkZ2VzIGR1cmluZyBEV0FSRiBsaW5lLXRhYmxlIGFuYWx5c2lzLg0KPiAr IiIiLA0KPiArICAgIHR5cGU9InN0ZDo6b3B0aW9uYWw8Q09SRV9BRERSPiIsDQo+ICsgICAgbmFt ZT0iaW5zbl9icmFuY2hfdGFyZ2V0IiwNCj4gKyAgICBwYXJhbXM9WygiQ09SRV9BRERSIiwgImFk ZHIiKV0sDQo+ICsgICAgcHJlZGVmYXVsdD0iZGVmYXVsdF9pbnNuX2JyYW5jaF90YXJnZXQiLA0K PiArICAgIGludmFsaWQ9RmFsc2UsDQo+ICspDQo+ICsNCj4gIE1ldGhvZCgNCj4gICAgICBjb21t ZW50PSIiIg0KPiAgUmV0dXJuIHRydWUgaWYgdGhlcmUncyBhIHByb2dyYW0vcGVybWFuZW50IGJy ZWFrcG9pbnQgcGxhbnRlZCBpbiBkaWZmIC0tZ2l0DQo+IGEvZ2RiL2xpbmVzcGVjLmMgYi9nZGIv bGluZXNwZWMuYyBpbmRleCA0NWUxMmUwOTI3Mi4uZTYzMDVkZGVhYmINCj4gMTAwNjQ0DQo+IC0t LSBhL2dkYi9saW5lc3BlYy5jDQo+ICsrKyBiL2dkYi9saW5lc3BlYy5jDQo+IEBAIC00Myw5ICs0 MywxMiBAQA0KPiAgI2luY2x1ZGUgImdkYnN1cHBvcnQvZnVuY3Rpb24tdmlldy5oIg0KPiAgI2lu Y2x1ZGUgImdkYnN1cHBvcnQvZGVmLXZlY3Rvci5oIg0KPiAgI2luY2x1ZGUgPGFsZ29yaXRobT4N Cj4gKyNpbmNsdWRlICJkaXNhc20uaCINCj4gKyNpbmNsdWRlICJnZGJhcmNoLmgiDQo+ICAjaW5j bHVkZSAiaW5mZXJpb3IuaCINCj4gICNpbmNsdWRlICJnZGJzdXBwb3J0L3Vub3JkZXJlZF9zZXQu aCINCj4gICNpbmNsdWRlICJjbGkvY2xpLXN0eWxlLmgiDQo+ICsjaW5jbHVkZSAiY2xpL2NsaS1j bWRzLmgiDQo+IA0KPiAgLyogQW4gZW51bWVyYXRpb24gb2YgdGhlIHZhcmlvdXMgdGhpbmdzIGEg dXNlciBtaWdodCBhdHRlbXB0IHRvDQo+ICAgICBjb21wbGV0ZSBmb3IgYSBsaW5lc3BlYyBsb2Nh dGlvbi4gICovIEBAIC00MzEsNiArNDM0LDExIEBAIHN0YXRpYyBib29sDQo+IGNvbXBhcmVfbXN5 bWJvbHMgKGNvbnN0IGJvdW5kX21pbmltYWxfc3ltYm9sICZhLA0KPiAgICAgcHJldmlvdXMgcGFy c2VyLiAgKi8NCj4gIHN0YXRpYyBjb25zdCBjaGFyIGxpbmVzcGVjX3F1b3RlX2NoYXJhY3RlcnNb XSA9ICJcIlwnIjsNCj4gDQo+ICsvKiBDb250cm9sIHdoZXRoZXIgdGhlIGV4dGVuZGVkIGJsb2Nr LWZpbHRlciBoZXVyaXN0aWMgaXMgZW5hYmxlZC4NCj4gKyAgIFRoaXMgaGV1cmlzdGljIGltcHJv dmVzIGJyZWFrcG9pbnQgbG9jYXRpb24gcmVzb2x1dGlvbiBmb3IgdmVjdG9yaXplZA0KPiArICAg bG9vcHMgYnV0IGNhbiBiZSBkaXNhYmxlZCBpZiBpdCBjYXVzZXMgdW5leHBlY3RlZCBiZWhhdmlv ci4gICovDQo+ICtzdGF0aWMgYm9vbCBkZWJ1Z19saW5lc3BlY19leHRlbmRlZF9ibG9ja19maWx0 ZXIgPSB0cnVlOw0KPiArDQo+ICAvKiBMZXhlciBmdW5jdGlvbnMuICAqLw0KPiANCj4gIC8qIExl eCBhIG51bWJlciBmcm9tIHRoZSBpbnB1dCBpbiBQQVJTRVIuICBUaGlzIG9ubHkgc3VwcG9ydHMg QEAgLTE5NzksNg0KPiArMTk4Nyw0OCBAQCBjYW5vbmljYWxpemVfbGluZXNwZWMgKHN0cnVjdCBs aW5lc3BlY19zdGF0ZSAqc3RhdGUsIGNvbnN0DQo+IGxpbmVzcGVjICpscykNCj4gICAgICBleHBs aWNpdF9sb2MtPnNldF9zdHJpbmcgKGV4cGxpY2l0X2xvYy0+dG9fbGluZXNwZWMgKCkpOyAgfQ0K PiANCj4gKy8qIFJldHVybiB0cnVlIGlmIFBDX1RPIGlzIHVucmVhY2hhYmxlIGJ5IGZhbGwtdGhy b3VnaCBmcm9tIFBDX0ZST00uDQo+ICsgICBUd28gY29uZGl0aW9ucyBhcmUgc3VmZmljaWVudDog KDEpIGFueSByZXQgaW4gW1BDX0ZST00sIFBDX1RPKSwgb3INCj4gKyAgICgyKSB1bmNvbmRpdGlv bmFsIGp1bXAvcmV0IGltbWVkaWF0ZWx5IGJlZm9yZSBQQ19UTy4gIE9ubHkgdGhlIGxhc3QNCj4g KyAgIGluc3RydWN0aW9uIGJlZm9yZSBQQ19UTyBtYXR0ZXJzOyBtaWQtcmFuZ2UgYnJhbmNoZXMg YXJlIGlnbm9yZWQgdG8NCj4gKyAgIHByZXNlcnZlIGZvci1sb29wIGRlZHVwbGljYXRpb24uICAq Lw0KPiArDQo+ICtzdGF0aWMgYm9vbA0KPiArcmFuZ2VfaGFzX3VuY29uZGl0aW9uYWxfZmxvd19j b250cm9sIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwNCj4gKwkJCQkgICAgICBDT1JFX0FERFIg cGNfZnJvbSwgQ09SRV9BRERSIHBjX3RvKQ0KPiB7DQo+ICsgIGlmIChwY19mcm9tID49IHBjX3Rv KQ0KPiArICAgIHJldHVybiBmYWxzZTsNCj4gKw0KPiArICAvKiBSZXR1cm4gdHJ1ZSBpZjogbGFz dCBpbnN0cnVjdGlvbiBiZWZvcmUgUENfVE8gaXMgdW5jb25kaXRpb25hbA0KPiArICAgICBqbXAv cmV0LCBvciBhbnkgaW5zdHJ1Y3Rpb24gaW4gcmFuZ2UgaXMgYSBiYWNrd2FyZCBicmFuY2gNCj4g KyAgICAgKGluZGljYXRpbmcgc2VwYXJhdGUgbG9vcCBib2RpZXMpLiAgKi8NCj4gKw0KPiArICBD T1JFX0FERFIgcGMgPSBwY19mcm9tOw0KPiArDQo+ICsgIHdoaWxlIChwYyA8IHBjX3RvKQ0KPiAr ICAgIHsNCj4gKyAgICAgIGludCBsZW4gPSBnZGJfaW5zbl9sZW5ndGggKGdkYmFyY2gsIHBjKTsN Cj4gKyAgICAgIGlmIChsZW4gPD0gMCkNCj4gKwlyZXR1cm4gZmFsc2U7DQo+ICsNCj4gKyAgICAg IC8qIENoZWNrIGZvciBiYWNrd2FyZCBicmFuY2ggKGxvb3AgYmFjay1lZGdlKS4gICovDQo+ICsg ICAgICBzdGQ6Om9wdGlvbmFsPENPUkVfQUREUj4gdGFyZ2V0ID0gZ2RiYXJjaF9pbnNuX2JyYW5j aF90YXJnZXQNCj4gKGdkYmFyY2gsDQo+ICsJCQkJCQkJCSAgICBwYyk7DQo+ICsgICAgICBpZiAo dGFyZ2V0Lmhhc192YWx1ZSgpICYmIHRhcmdldC52YWx1ZSgpIDwgcGNfZnJvbSkNCj4gKwlyZXR1 cm4gdHJ1ZTsNCj4gKw0KPiArICAgICAgLyogSXMgdGhpcyB0aGUgbGFzdCBpbnN0cnVjdGlvbiBi ZWZvcmUgUENfVE8/ICAqLw0KPiArICAgICAgaWYgKHBjICsgbGVuID49IHBjX3RvKQ0KPiArCXJl dHVybiBnZGJhcmNoX2luc25faXNfanVtcCAoZ2RiYXJjaCwgcGMpDQo+ICsJICAgICAgIHx8IGdk YmFyY2hfaW5zbl9pc19yZXQgKGdkYmFyY2gsIHBjKTsNCj4gKw0KPiArICAgICAgcGMgKz0gbGVu Ow0KPiArICAgIH0NCj4gKw0KPiArICByZXR1cm4gZmFsc2U7DQo+ICt9DQo+ICsNCj4gIC8qIEdp dmVuIGEgbGluZSBvZmZzZXQgaW4gTFMsIGNvbnN0cnVjdCB0aGUgcmVsZXZhbnQgU0FMcy4gICov DQo+IA0KPiAgc3RhdGljIHN0ZDo6dmVjdG9yPHN5bXRhYl9hbmRfbGluZT4NCj4gQEAgLTIwNzcs MTMgKzIxMjcsMzUgQEAgY3JlYXRlX3NhbHNfbGluZV9vZmZzZXQgKHN0cnVjdCBsaW5lc3BlY19z dGF0ZQ0KPiAqc2VsZiwNCj4gDQo+ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaW50ZXJtZWRpYXRl X3Jlc3VsdHMuc2l6ZSAoKTsgKytpKQ0KPiAgCXsNCj4gLQkgIGlmIChibG9ja3NbaV0gIT0gTlVM TCkNCj4gKwkgIGlmIChibG9ja3NbaV0gIT0gTlVMTCAmJiBmaWx0ZXJbaV0pDQo+ICAJICAgIGZv ciAoaiA9IGkgKyAxOyBqIDwgaW50ZXJtZWRpYXRlX3Jlc3VsdHMuc2l6ZSAoKTsgKytqKQ0KPiAg CSAgICAgIHsNCj4gLQkJaWYgKGJsb2Nrc1tqXSA9PSBibG9ja3NbaV0pDQo+ICsJCWlmIChibG9j a3Nbal0gPT0gYmxvY2tzW2ldICYmIGZpbHRlcltqXSkNCj4gIAkJICB7DQo+ICsJCSAgICBjb25z dCBzeW10YWJfYW5kX2xpbmUgJnNhbF9pID0gaW50ZXJtZWRpYXRlX3Jlc3VsdHNbaV07DQo+ICsJ CSAgICBjb25zdCBzeW10YWJfYW5kX2xpbmUgJnNhbF9qID0gaW50ZXJtZWRpYXRlX3Jlc3VsdHNb al07DQo+ICsNCj4gKwkJICAgIGF1dG8gW3BjX2xvLCBwY19oaV0gPSBzdGQ6Om1pbm1heCAoc2Fs X2kucGMsIHNhbF9qLnBjKTsNCj4gKw0KPiArCQkgICAgLyogV2l0aG91dCBzeW10YWIgaW5mbywg ZG9uJ3QgZmlsdGVyIOKAlCB3ZSBjYW4ndCByZWxpYWJseQ0KPiArCQkgICAgICAgZGV0ZXJtaW5l IGlmIHRoZXNlIGFyZSBkaXN0aW5jdCBjb2RlIHBhdGhzLiAgKi8NCj4gKwkJICAgIGlmIChzYWxf aS5zeW10YWIgPT0gbnVsbHB0ciB8fCBzYWxfai5zeW10YWIgPT0gbnVsbHB0cikNCj4gKwkJICAg ICAgY29udGludWU7DQo+ICsNCj4gKwkJICAgIGlmIChzYWxfaS5zeW10YWIgIT0gc2FsX2ouc3lt dGFiKQ0KPiArCQkgICAgICBjb250aW51ZTsNCj4gKw0KPiArCQkgICAgLyogQ2hlY2sgZm9yIHVu Y29uZGl0aW9uYWwgZmxvdyBjb250cm9sIGluIHRoZSByYW5nZQ0KPiArCQkgICAgICAgKGV4dGVu ZGVkIGhldXJpc3RpYzsgY2FuIGJlIGRpc2FibGVkKS4gICovDQo+ICsJCSAgICBvYmpmaWxlICpv ZmlsZSA9IHNhbF9pLnN5bXRhYi0+Y29tcHVuaXQgKCktPm9iamZpbGUgKCk7DQo+ICsJCSAgICBn ZGJhcmNoICpnZGJhcmNoID0gb2ZpbGUtPmFyY2ggKCk7DQo+ICsNCj4gKwkJICAgIGlmIChkZWJ1 Z19saW5lc3BlY19leHRlbmRlZF9ibG9ja19maWx0ZXINCj4gKwkJICAgICAgICAmJiByYW5nZV9o YXNfdW5jb25kaXRpb25hbF9mbG93X2NvbnRyb2wgKGdkYmFyY2gsDQo+ICsJCQkJCQkJICAgICAg ICBwY19sbywgcGNfaGkpKQ0KPiArCQkgICAgICBjb250aW51ZTsNCj4gKw0KPiAgCQkgICAgZmls dGVyW2pdID0gMDsNCj4gLQkJICAgIGJyZWFrOw0KPiAgCQkgIH0NCj4gIAkgICAgICB9DQo+ICAJ fQ0KPiBAQCAtNDMzMCwzICs0NDAyLDIwIEBAIGdldF9nZGJfbGluZXNwZWNfcGFyc2VyX3F1b3Rl X2NoYXJhY3RlcnMNCj4gKHZvaWQpICB7DQo+ICAgIHJldHVybiBsaW5lc3BlY19xdW90ZV9jaGFy YWN0ZXJzOw0KPiAgfQ0KPiArDQo+ICsvKiBSZWdpc3RlciBsaW5lc3BlYyBkZWJ1Z2dpbmcgY29t bWFuZHMuICAqLw0KPiArDQo+ICtJTklUX0dEQl9GSUxFIChsaW5lc3BlYykNCj4gK3sNCj4gKyAg YWRkX3NldHNob3dfYm9vbGVhbl9jbWQgKCJsaW5lc3BlYy1leHRlbmRlZC1ibG9jay1maWx0ZXIi LA0KPiArCQkJICAgY2xhc3Nfc3VwcG9ydCwNCj4gKwkJCSAgICZkZWJ1Z19saW5lc3BlY19leHRl bmRlZF9ibG9ja19maWx0ZXIsIF8oIlwgU2V0DQo+IHdoZXRoZXIgdGhlDQo+ICtleHRlbmRlZCBi bG9jay1maWx0ZXIgaGV1cmlzdGljIGlzIGVuYWJsZWQuIiksIF8oIlwgU2hvdyB3aGV0aGVyIHRo ZQ0KPiArZXh0ZW5kZWQgYmxvY2stZmlsdGVyIGhldXJpc3RpYyBpcyBlbmFibGVkLiIpLCBfKCJc IFRoZSBleHRlbmRlZA0KPiAraGV1cmlzdGljIGltcHJvdmVzIGJyZWFrcG9pbnQgbG9jYXRpb24g cmVzb2x1dGlvbiBmb3JcblwgdmVjdG9yaXplZA0KPiArbG9vcHMgYXQgLU8yLiBXaGVuIG9mZiwg YnJlYWtwb2ludHMgdXNlIG9ubHkgdGhlIG9yaWdpbmFsXG5cIGhldXJpc3RpYywNCj4gK3doaWNo IG1heSBtaXNzIGxvY2F0aW9ucyBpbiB2ZWN0b3JpemVkIGNvZGUuXG5cIERlZmF1bHQgaXMgb24u IiksDQo+ICsJCQkgICBudWxscHRyLCBudWxscHRyLA0KPiArCQkJICAgJnNldGxpc3QsICZzaG93 bGlzdCk7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5saW5lc3BlYy9i bG9jay1maWx0ZXItY2FzZXMuYw0KPiBiL2dkYi90ZXN0c3VpdGUvZ2RiLmxpbmVzcGVjL2Jsb2Nr LWZpbHRlci1jYXNlcy5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAw MDAwLi44Y2Y4MzRlOTVmNA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmxpbmVzcGVjL2Jsb2NrLWZpbHRlci1jYXNlcy5jDQo+IEBAIC0wLDAgKzEsMTI2IEBADQo+ ICsvKiBUZXN0IGNhc2VzIGZvciB0aGUgYmxvY2stZmlsdGVyIGhldXJpc3RpYyBpbiBjcmVhdGVf c2Fsc19saW5lX29mZnNldC4NCj4gKw0KPiArICAgQ29weXJpZ2h0IChDKSAyMDI2IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KPiArDQo+ICsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBH REIuDQo+ICsNCj4gKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQo+ICsgICBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KPiArICAgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3INCj4gKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ICsNCj4g KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLA0KPiArICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YNCj4gKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCj4gKyAgIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQo+ICsNCj4gKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQo+ICsg ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4NCj4gKw0KPiArICAgT25lIGZ1bmN0aW9uIHBlciB0ZXN0ZWQgcGF0dGVy bi4gIFRoZSBhY2NvbXBhbnlpbmcgLmV4cCBmaWxlIHZlcmlmaWVzDQo+ICsgICB0aGUgYnJlYWtw b2ludCBsb2NhdGlvbiBjb3VudCBmb3IgZWFjaCBwYXR0ZXJuIGFuZCwgd2hlcmUgdmVjdG9yaXNh dGlvbg0KPiArICAgaXMgcHJlc2VudCwgY29uZmlybXMgdGhhdCBib3RoIHRoZSB2ZWN0b3JpemVk IGFuZCBzY2FsYXItcmVtYWluZGVyIHBhdGhzDQo+ICsgICBhcmUgcmVhY2hhYmxlIGF0IHJ1bnRp bWUuDQo+ICsNCj4gKyAgIGFyZ2MgPiAxICAtPiAgZm9yX2xvb3BfdmVjdG9yaXplZCBjYWxsZWQg d2l0aCBuPTEwMjQgICh2ZWN0b3JpemVkIHBhdGgpDQo+ICsgICBhcmdjID09IDEgLT4gIGZvcl9s b29wX3ZlY3Rvcml6ZWQgY2FsbGVkIHdpdGggbj0zICAgICAoc2NhbGFyIHBhdGggb25seSkgICov DQo+ICsNCj4gK3ZvbGF0aWxlIGludCBzaW5rOw0KPiArDQo+ICsvKiBmb3ItbG9vcCB3aXRoIGVt cHR5IGJvZHkgKC1PMCkuICBFeHBlY3RlZDogMSBsb2NhdGlvbi4gICovDQo+ICsNCj4gK3ZvaWQg X19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkNCj4gK2Zvcl9sb29wX2VtcHR5X2JvZHkgKGludCBu KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykge30gIC8qIGVtcHR5LWZv ci1saW5lICovIH0NCj4gKw0KPiArLyogZm9yLWxvb3Agd2l0aCBsYXJnZSBib2R5ICgtTzApLiAg RXhwZWN0ZWQ6IDEgbG9jYXRpb24uICAqLw0KPiArDQo+ICt2b2lkIF9fYXR0cmlidXRlX18gKChu b2lubGluZSkpDQo+ICtmb3JfbG9vcF9sYXJnZV9ib2R5ICh2b2xhdGlsZSBpbnQgKmEsIHZvbGF0 aWxlIGludCAqYiwgdm9sYXRpbGUgaW50ICpjLA0KPiArCQkgICAgIGludCBuKQ0KPiArew0KPiAr ICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgeyAgLyogbGFyZ2UtYm9keS1mb3ItbGluZSAq Lw0KPiArICAgIHNpbmsgPSBhW2ldICogMyArIGJbaV07DQo+ICsgICAgc2luayA9IHNpbmsgXiAo c2luayA+PiA1KTsNCj4gKyAgICBzaW5rICs9IGNbaV0gKiA3IC0gYVtpXTsNCj4gKyAgICBzaW5r ID0gKHNpbmsgPDwgMykgfCAoc2luayA+PiAyOSk7DQo+ICsgICAgc2luayArPSBhW2ldICsgYltp XSArIGNbaV07DQo+ICsgICAgc2luayA9IHNpbmsgKiBzaW5rICsgYVtpXTsNCj4gKyAgICBzaW5r IF49IGJbaV0gKiBjW2ldOw0KPiArICAgIHNpbmsgKz0gKGFbaV0gfCBiW2ldKSAmIGNbaV07DQo+ ICsgICAgc2luayA9IHNpbmsgLSBhW2ldICogYltpXTsNCj4gKyAgICBzaW5rICs9IGNbaV0gXiAo YVtpXSArIGJbaV0pOw0KPiArICAgIHNpbmsgKz0gYVtpXSAqIDUgLSBiW2ldICogMzsNCj4gKyAg ICBzaW5rIF49IChzaW5rIDw8IDcpIHwgKHNpbmsgPj4gMjUpOw0KPiArICAgIHNpbmsgKz0gY1tp XSAqIGNbaV0gKyBhW2ldOw0KPiArICAgIHNpbmsgPSBzaW5rIC8gKGFbaV0gKyAxKTsNCj4gKyAg ICBzaW5rICs9IGJbaV0gKiBiW2ldIC0gY1tpXTsNCj4gKyAgICBzaW5rIF49IGFbaV0gXiBiW2ld IF4gY1tpXTsNCj4gKyAgICBzaW5rICs9IChhW2ldICsgYltpXSkgKiAoYltpXSArIGNbaV0pOw0K PiArICAgIHNpbmsgPSAoc2luayA+PiAzKSArIGFbaV07DQo+ICsgICAgc2luayArPSBjW2ldICog KGFbaV0gLSBiW2ldKTsNCj4gKyAgICBzaW5rIF49IHNpbmsgPj4gMTsNCj4gKyAgfQ0KPiArfQ0K PiArDQo+ICsvKiBWZWN0b3JpemVkIGZvci1sb29wICgtTzIpLiAgRXhwZWN0ZWQ6ID49IDIgbG9j YXRpb25zLiAgKi8NCj4gKw0KPiArdm9pZCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KPiAr Zm9yX2xvb3BfdmVjdG9yaXplZCAoaW50ICphcnIsIGludCBuKQ0KPiArew0KPiArICBmb3IgKGlu dCBpID0gMDsgaSA8IG47IGkrKykNCj4gKyAgICBhcnJbaV0gPSBpICogMzsgIC8qIHZlYy1sb29w LWxpbmUgKi8gfQ0KPiArDQo+ICsvKiBOZXN0ZWQgdmVjdG9yaXplZCBmb3ItbG9vcHMgKC1PMiku ICBFeHBlY3RlZDogPj0gMiBsb2NhdGlvbnMuICAqLw0KPiArDQo+ICt2b2lkIF9fYXR0cmlidXRl X18gKChub2lubGluZSkpDQo+ICtuZXN0ZWRfdmVjdG9yaXplZF9sb29wcyAoaW50ICphcnIsIGlu dCBuKSB7DQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQ0KPiArICAgIGZvciAoaW50 IGogPSAwOyBqIDwgbjsgaisrKQ0KPiArICAgICAgYXJyW2kgKiBuICsgal0gPSBpICogajsgIC8q IG5lc3RlZC12ZWMtbGluZSAqLyB9DQo+ICsNCj4gKy8qIEZvci1sb29wIHdpdGggZWFybHkgYnJl YWsgKC1PMikuICBFeHBlY3RlZDogPj0gMiBvciAxIGxvY2F0aW9uLiAgKi8NCj4gKw0KPiArdm9p ZCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KPiArbG9vcF93aXRoX2Vhcmx5X2JyZWFrIChp bnQgKmFyciwgaW50IG4sIGludCB0YXJnZXQpIHsNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBu OyBpKyspIHsNCj4gKyAgICBhcnJbaV0gPSBpICogMjsgIC8qIGJyZWFrLWxvb3AtbGluZSAqLw0K PiArICAgIGlmIChhcnJbaV0gPT0gdGFyZ2V0KQ0KPiArICAgICAgYnJlYWs7DQo+ICsgIH0NCj4g K30NCj4gKw0KPiArLyogSWYtZWxzZSB3aXRoIGJvdGggYnJhbmNoZXMgb24gc2FtZSBsaW5lICgt TzApLiAgRXhwZWN0ZWQ6IDINCj4gK2xvY2F0aW9ucy4gICovDQo+ICsNCj4gK3ZvaWQgX19hdHRy aWJ1dGVfXyAoKG5vaW5saW5lKSkNCj4gK2lmZWxzZV9zZXBhcmF0ZV9saW5lcyAoaW50IHgsIGlu dCAqcmVzdWx0KSB7DQo+ICsgIGlmICh4ID4gMCkNCj4gKyAgICAqcmVzdWx0ID0geCAqIDI7ICBl bHNlICpyZXN1bHQgPSAteDsgIC8qIGlmZWxzZS1saW5lICovIH0NCj4gKw0KPiArDQo+ICtpbnQN Cj4gK21haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pDQo+ICt7DQo+ICsgIGludCBhcnJbMTAy NF07DQo+ICsgIHZvbGF0aWxlIGludCBhWzRdID0gezEsIDIsIDMsIDR9Ow0KPiArICB2b2xhdGls ZSBpbnQgYls0XSA9IHs0LCAzLCAyLCAxfTsNCj4gKyAgdm9sYXRpbGUgaW50IGNbNF0gPSB7MSwg MSwgMSwgMX07DQo+ICsgIGludCByZXN1bHQgPSAwOw0KPiArDQo+ICsgIGZvcl9sb29wX2VtcHR5 X2JvZHkgKDQpOw0KPiArICBmb3JfbG9vcF9sYXJnZV9ib2R5IChhLCBiLCBjLCA0KTsNCj4gKyAg Zm9yX2xvb3BfdmVjdG9yaXplZCAoYXJyLCBhcmdjID4gMSA/IDEwMjQgOiAzKTsNCj4gKyAgbmVz dGVkX3ZlY3Rvcml6ZWRfbG9vcHMgKGFyciwgYXJnYyA+IDEgPyAzMiA6IDMpOw0KPiArICBsb29w X3dpdGhfZWFybHlfYnJlYWsgKGFyciwgYXJnYyA+IDEgPyAxMDI0IDogMywgNDIpOw0KPiArICBp ZmVsc2Vfc2VwYXJhdGVfbGluZXMgKGFyZ2MgPiAxID8gMTAgOiAtNSwgJnJlc3VsdCk7DQo+ICsN Cj4gKyAgcmV0dXJuIDA7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5s aW5lc3BlYy9ibG9jay1maWx0ZXItY2FzZXMuZXhwDQo+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubGlu ZXNwZWMvYmxvY2stZmlsdGVyLWNhc2VzLmV4cA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBp bmRleCAwMDAwMDAwMDAwMC4uZmE0Y2U1MzE1YzYNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5saW5lc3BlYy9ibG9jay1maWx0ZXItY2FzZXMuZXhwDQo+IEBAIC0w LDAgKzEsMjQ4IEBADQo+ICsjIENvcHlyaWdodCAoQykgMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4NCj4gKw0KPiArIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiArIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KPiAr IyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBM aWNlbnNlLCBvcg0KPiArIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPiAr Iw0KPiArIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwNCj4gKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCj4gKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KPiArIyBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiArIw0KPiArIyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiAr IyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4NCj4gKw0KPiArIyBWZXJpZnkgdGhlIGJsb2NrLWZpbHRlciBoZXVyaXN0 aWMgaW4gY3JlYXRlX3NhbHNfbGluZV9vZmZzZXQgYWdhaW5zdA0KPiArIyBrbm93biBwYXR0ZXJu cy4gIFRoZSBjb21waWxlciBpcyBzZWxlY3RlZCBieSB0aGUgYm9hcmQgZmlsZTsgdGhpcyB0ZXN0 DQo+ICsjIHVzZXMgY29uc2lzdGVudCBleHBlY3RhdGlvbnMgYWNyb3NzIGNvbXBpbGVycyAoR0ND LCBJQ1gsIGV0Yy4pLg0KPiArDQo+ICtzdGFuZGFyZF90ZXN0ZmlsZQ0KPiArDQo+ICtpZiB7IFti dWlsZF9leGVjdXRhYmxlICJmYWlsZWQgdG8gcHJlcGFyZSAoTzApIiBcDQo+ICsJICAiJHt0ZXN0 ZmlsZX0tTzAiICR7c3JjZmlsZX0geyBkZWJ1ZyBvcHRpbWl6ZT0tTzAgfV0gfSB7DQo+ICsgICAg cmV0dXJuIC0xDQo+ICt9DQo+ICsNCj4gK2lmIHsgW2J1aWxkX2V4ZWN1dGFibGUgImZhaWxlZCB0 byBwcmVwYXJlIChPMikiIFwNCj4gKwkgICIke3Rlc3RmaWxlfS1PMiIgJHtzcmNmaWxlfSBcDQo+ ICsJICB7IGRlYnVnIG9wdGltaXplPS1PMiBhZGRpdGlvbmFsX2ZsYWdzPS1mdHJlZS12ZWN0b3Jp emUgfV0gfSB7DQo+ICsgICAgcmV0dXJuIC0xDQo+ICt9DQo+ICsNCj4gKyMgUmV0cmlldmUgYWxs IHRhcmdldCBsaW5lIG51bWJlcnMgZnJvbSB0aGUgc2luZ2xlIHNoYXJlZCBzb3VyY2UgZmlsZS4N Cj4gK3NldCBsaW5lX2VtcHR5X2ZvciAgICAgIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJlbXB0eS1m b3ItbGluZSIgJHtzcmNmaWxlfV0NCj4gK3NldCBsaW5lX2xhcmdlX2JvZHlfZm9yIFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJsYXJnZS1ib2R5LWZvci1saW5lIg0KPiAke3NyY2ZpbGV9XQ0KPiArc2V0 IGxpbmVfdmVjX2xvb3AgICAgICAgW2dkYl9nZXRfbGluZV9udW1iZXIgInZlYy1sb29wLWxpbmUi ICR7c3JjZmlsZX1dDQo+ICtzZXQgbGluZV9uZXN0ZWRfdmVjICAgICBbZ2RiX2dldF9saW5lX251 bWJlciAibmVzdGVkLXZlYy1saW5lIiAke3NyY2ZpbGV9XQ0KPiArc2V0IGxpbmVfYnJlYWtfbG9v cCAgICAgW2dkYl9nZXRfbGluZV9udW1iZXIgImJyZWFrLWxvb3AtbGluZSIgJHtzcmNmaWxlfV0N Cj4gK3NldCBsaW5lX2lmZWxzZSAgICAgICAgIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJpZmVsc2Ut bGluZSIgJHtzcmNmaWxlfV0NCj4gKw0KPiArIyBTZXQgYnJlYWtwb2ludCBhbmQgcmV0dXJuIGhv dyBtYW55IGxvY2F0aW9ucyBpdCByZXNvbHZlcyB0by4NCj4gK3Byb2MgYnBfbmxvY3MgeyBzcmNm aWxlIGxpbmUgZGVzYyB9IHsNCj4gKyAgICBnbG9iYWwgZ2RiX3Byb21wdA0KPiArICAgIHNldCBu bG9jcyAtMQ0KPiArICAgIGdkYl90ZXN0X211bHRpcGxlICJicmVhayAke3NyY2ZpbGV9OiR7bGlu ZX0iICRkZXNjIHsNCj4gKwktcmUgIkJyZWFrcG9pbnQgXFswLTlcXSsgYXQgLipcXCgoXFswLTlc XSspIGxvY2F0aW9uc1xcKS4qJGdkYl9wcm9tcHQNCj4gJCIgew0KPiArCSAgICBzZXQgbmxvY3Mg JGV4cGVjdF9vdXQoMSxzdHJpbmcpDQo+ICsJICAgIHBhc3MgJGRlc2MNCj4gKwl9DQo+ICsJLXJl ICJCcmVha3BvaW50IFxbMC05XF0rIGF0IC4qJGdkYl9wcm9tcHQgJCIgew0KPiArCSAgICBzZXQg bmxvY3MgMQ0KPiArCSAgICBwYXNzICRkZXNjDQo+ICsJfQ0KPiArICAgIH0NCj4gKyAgICByZXR1 cm4gJG5sb2NzDQo+ICt9DQo+ICsNCj4gK2NsZWFuX3Jlc3RhcnQgIiR7dGVzdGZpbGV9LU8wIg0K PiArDQo+ICsjIFZlcmlmeSB0aGUgbGluZXNwZWMtZXh0ZW5kZWQtYmxvY2stZmlsdGVyIHNldHRp bmcgZXhpc3RzIGFuZCB3b3Jrcy4NCj4gK2dkYl90ZXN0ICJzaG93IGxpbmVzcGVjLWV4dGVuZGVk LWJsb2NrLWZpbHRlciIgXA0KPiArICAgICJXaGV0aGVyIHRoZSBleHRlbmRlZCBibG9jay1maWx0 ZXIgaGV1cmlzdGljIGlzIGVuYWJsZWQgaXMgb25cXC4iIFwNCj4gKyAgICAic2hvdyBkZWZhdWx0 IGxpbmVzcGVjLWV4dGVuZGVkLWJsb2NrLWZpbHRlciAob24pIg0KPiArDQo+ICtnZGJfdGVzdF9u b19vdXRwdXQgInNldCBsaW5lc3BlYy1leHRlbmRlZC1ibG9jay1maWx0ZXIgb2ZmIiBcDQo+ICsg ICAgInNldCBsaW5lc3BlYy1leHRlbmRlZC1ibG9jay1maWx0ZXIgb2ZmIg0KPiArDQo+ICtnZGJf dGVzdCAic2hvdyBsaW5lc3BlYy1leHRlbmRlZC1ibG9jay1maWx0ZXIiIFwNCj4gKyAgICAiV2hl dGhlciB0aGUgZXh0ZW5kZWQgYmxvY2stZmlsdGVyIGhldXJpc3RpYyBpcyBlbmFibGVkIGlzIG9m ZlxcLiIgXA0KPiArICAgICJzaG93IGxpbmVzcGVjLWV4dGVuZGVkLWJsb2NrLWZpbHRlciAob2Zm KSINCj4gKw0KPiArZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgbGluZXNwZWMtZXh0ZW5kZWQtYmxv Y2stZmlsdGVyIG9uIiBcDQo+ICsgICAgInNldCBsaW5lc3BlYy1leHRlbmRlZC1ibG9jay1maWx0 ZXIgb24iDQo+ICsNCj4gK2dkYl90ZXN0ICJzaG93IGxpbmVzcGVjLWV4dGVuZGVkLWJsb2NrLWZp bHRlciIgXA0KPiArICAgICJXaGV0aGVyIHRoZSBleHRlbmRlZCBibG9jay1maWx0ZXIgaGV1cmlz dGljIGlzIGVuYWJsZWQgaXMgb25cXC4iIFwNCj4gKyAgICAic2hvdyBsaW5lc3BlYy1leHRlbmRl ZC1ibG9jay1maWx0ZXIgcmUtZW5hYmxlZCINCj4gKw0KPiArd2l0aF90ZXN0X3ByZWZpeCAiZm9y LWxvb3AgZW1wdHkgYm9keSAoLU8wKSIgew0KPiArICAgIHNldCBubG9jcyBbYnBfbmxvY3MgJHtz cmNmaWxlfSAke2xpbmVfZW1wdHlfZm9yfSAic2V0IGJyZWFrcG9pbnQiXQ0KPiArDQo+ICsgICAg aWYgeyAkbmxvY3MgPT0gMSB9IHsNCj4gKwlwYXNzICIxIGJyZWFrcG9pbnQgbG9jYXRpb24gKGNv cnJlY3QpIg0KPiArICAgIH0gZWxzZSB7DQo+ICsJZmFpbCAiZXhwZWN0ZWQgMSBsb2NhdGlvbiwg Z290ICRubG9jcyINCj4gKyAgICB9DQo+ICsNCj4gKyAgICBkZWxldGVfYnJlYWtwb2ludHMNCj4g K30NCj4gKw0KPiArd2l0aF90ZXN0X3ByZWZpeCAiZm9yLWxvb3AgZXhjZWVkaW5nIHNjYW4gbGlt aXQgKC1PMCkiIHsNCj4gKyAgICBzZXQgbmxvY3MgW2JwX25sb2NzICR7c3JjZmlsZX0gJHtsaW5l X2xhcmdlX2JvZHlfZm9yfSAic2V0IGJyZWFrcG9pbnQiXQ0KPiArDQo+ICsgICAgaWYgeyAkbmxv Y3MgPT0gMSB9IHsNCj4gKwlwYXNzICIxIGJyZWFrcG9pbnQgbG9jYXRpb24gKGNvcnJlY3QpIg0K PiArICAgIH0gZWxzZSB7DQo+ICsJZmFpbCAiZXhwZWN0ZWQgMSBsb2NhdGlvbiwgZ290ICRubG9j cyINCj4gKyAgICB9DQo+ICsNCj4gKyAgICBkZWxldGVfYnJlYWtwb2ludHMNCj4gK30NCj4gKw0K PiArd2l0aF90ZXN0X3ByZWZpeCAiaWYtZWxzZSBzZXBhcmF0ZSBsaW5lcyAoLU8wKSIgew0KPiAr ICAgIHNldCBubG9jcyBbYnBfbmxvY3MgJHtzcmNmaWxlfSAke2xpbmVfaWZlbHNlfSAic2V0IGJy ZWFrcG9pbnQiXQ0KPiArDQo+ICsgICAgaWYgeyAkbmxvY3MgPT0gMiB9IHsNCj4gKwlwYXNzICIy IGxvY2F0aW9ucyAoaWYtZWxzZSBicmFuY2hlcyBvbiBzYW1lIGxpbmUsIGRpZmZlcmVudCBibG9j a3MpIg0KPiArICAgIH0gZWxzZSB7DQo+ICsJZmFpbCAiZXhwZWN0ZWQgMiBsb2NhdGlvbnMsIGdv dCAkbmxvY3MiDQo+ICsgICAgfQ0KPiArDQo+ICsgICAgZGVsZXRlX2JyZWFrcG9pbnRzDQo+ICt9 DQo+ICsNCj4gK2NsZWFuX3Jlc3RhcnQgIiR7dGVzdGZpbGV9LU8yIg0KPiArDQo+ICt3aXRoX3Rl c3RfcHJlZml4ICJmb3ItbG9vcCB2ZWN0b3JpemVkICgtTzIpIiB7DQo+ICsgICAgc2V0IG5sb2Nz IFticF9ubG9jcyAke3NyY2ZpbGV9ICR7bGluZV92ZWNfbG9vcH0gInNldCBicmVha3BvaW50Il0N Cj4gKw0KPiArICAgIGlmIHsgJG5sb2NzIDwgMiB9IHsNCj4gKwl1bnN1cHBvcnRlZCAiY29tcGls ZXIgZGlkIG5vdCBwcm9kdWNlIG11bHRpcGxlIGxvY2F0aW9ucztcDQo+ICsJCSAgICAgdmVjdG9y aXphdGlvbiBtYXkgbm90IGhhdmUgZmlyZWQiDQo+ICsgICAgfSBlbHNlIHsNCj4gKwlwYXNzICIk bmxvY3MgbG9jYXRpb25zIHByZXNlcnZlZCAodmVjdG9yaXplZCArIHNjYWxhciBwYXRocykiDQo+ ICsgICAgfQ0KPiArDQo+ICsgICAgZGVsZXRlX2JyZWFrcG9pbnRzDQo+ICt9DQo+ICsNCj4gK3dp dGhfdGVzdF9wcmVmaXggIm5lc3RlZCB2ZWN0b3JpemVkIGxvb3BzICgtTzIpIiB7DQo+ICsgICAg c2V0IG5sb2NzIFticF9ubG9jcyAke3NyY2ZpbGV9ICR7bGluZV9uZXN0ZWRfdmVjfSAic2V0IGJy ZWFrcG9pbnQiXQ0KPiArDQo+ICsgICAgaWYgeyAkbmxvY3MgPCAyIH0gew0KPiArCXVuc3VwcG9y dGVkICJjb21waWxlciBkaWQgbm90IHByb2R1Y2UgbXVsdGlwbGUgbG9jYXRpb25zO1wNCj4gKwkJ ICAgICBuZXN0ZWQgdmVjdG9yaXphdGlvbiBtYXkgbm90IGhhdmUgZmlyZWQiDQo+ICsgICAgfSBl bHNlIHsNCj4gKwlwYXNzICIkbmxvY3MgbG9jYXRpb25zIHByZXNlcnZlZCAobmVzdGVkIHBhdGhz KSINCj4gKyAgICB9DQo+ICsNCj4gKyAgICBkZWxldGVfYnJlYWtwb2ludHMNCj4gK30NCj4gKw0K PiArd2l0aF90ZXN0X3ByZWZpeCAibG9vcCB3aXRoIGVhcmx5IGJyZWFrICgtTzIpIiB7DQo+ICsg ICAgc2V0IG5sb2NzIFticF9ubG9jcyAke3NyY2ZpbGV9ICR7bGluZV9icmVha19sb29wfSAic2V0 IGJyZWFrcG9pbnQiXQ0KPiArDQo+ICsgICAgaWYgeyAkbmxvY3MgPj0gMiB9IHsNCj4gKwlwYXNz ICIkbmxvY3MgbG9jYXRpb25zIHByZXNlcnZlZCAobm9ybWFsIGFuZCBicmVhayBwYXRocykiDQo+ ICsgICAgfSBlbHNlIHsNCj4gKwlwYXNzICIkbmxvY3MgbG9jYXRpb24gKGJyZWFrIHBhdGggbm90 IHNlcGFyYXRlbHkgY29tcGlsZWQpIg0KPiArICAgIH0NCj4gKw0KPiArICAgIGRlbGV0ZV9icmVh a3BvaW50cw0KPiArfQ0KPiArDQo+ICt3aXRoX3Rlc3RfcHJlZml4ICJmb3ItbG9vcCB2ZWN0b3Jp emVkIHJ1bnRpbWUgKC1PMikiIHsNCj4gKyAgICBjbGVhbl9yZXN0YXJ0ICIke3Rlc3RmaWxlfS1P MiINCj4gKw0KPiArICAgIHNldCBubG9jcyBbYnBfbmxvY3MgJHtzcmNmaWxlfSAke2xpbmVfdmVj X2xvb3B9ICJzZXQgYnJlYWtwb2ludCAocHJvYmUpIl0NCj4gKyAgICBkZWxldGVfYnJlYWtwb2lu dHMNCj4gKw0KPiArICAgIGlmIHsgJG5sb2NzIDwgMiB9IHsNCj4gKwl1bnN1cHBvcnRlZCAib25s eSAxIGxvY2F0aW9uOyBza2lwIHJlYWNoYWJpbGl0eSB0ZXN0Ig0KPiArICAgIH0gZWxzZSB7DQo+ ICsJd2l0aF90ZXN0X3ByZWZpeCAic2NhbGFyIChuPTMpIiB7DQo+ICsJICAgIGlmIHsgIVtydW50 b19tYWluXSB9IHsNCj4gKwkJcmV0dXJuIC0xDQo+ICsJICAgIH0NCj4gKw0KPiArCSAgICBnZGJf dGVzdCAiYnJlYWsgJHtzcmNmaWxlfToke2xpbmVfdmVjX2xvb3B9IiBcDQo+ICsJCSJCcmVha3Bv aW50IC4qIGF0IC4qIiBcDQo+ICsJCSJzZXQgYnJlYWtwb2ludCINCj4gKw0KPiArCSAgICBnZGJf dGVzdCAiY29udGludWUiIFwNCj4gKwkJIkJyZWFrcG9pbnQgLiosIGZvcl9sb29wX3ZlY3Rvcml6 ZWQgLioiIFwNCj4gKwkJImhpdCBicmVha3BvaW50IG9uIHNjYWxhciBwYXRoIg0KPiArDQo+ICsJ ICAgIGRlbGV0ZV9icmVha3BvaW50cw0KPiArCSAgICBnZGJfdGVzdCAiY29udGludWUiICIuKmV4 aXRlZCBub3JtYWxseS4qIiAicHJvZ3JhbSBleGl0cyBjbGVhbmx5Ig0KPiArCX0NCj4gKw0KPiAr CWNsZWFuX3Jlc3RhcnQgIiR7dGVzdGZpbGV9LU8yIg0KPiArCWdkYl90ZXN0X25vX291dHB1dCAi c2V0IGFyZ3MgZm9vIiAic2V0IGFyZ3MgZm9yIHZlY3Rvcml6ZWQgcnVuIg0KPiArDQo+ICsJaWYg eyAhW3J1bnRvX21haW5dIH0gew0KPiArCSAgICByZXR1cm4gLTENCj4gKwl9DQo+ICsNCj4gKwl3 aXRoX3Rlc3RfcHJlZml4ICJ2ZWN0b3JpemVkIChuPTEwMjQpIiB7DQo+ICsJICAgIGdkYl90ZXN0 ICJicmVhayAke3NyY2ZpbGV9OiR7bGluZV92ZWNfbG9vcH0iIFwNCj4gKwkJIkJyZWFrcG9pbnQg LiogYXQgLioiIFwNCj4gKwkJInNldCBicmVha3BvaW50Ig0KPiArDQo+ICsJICAgIGdkYl90ZXN0 ICJjb250aW51ZSIgXA0KPiArCQkiQnJlYWtwb2ludCAuKiwgZm9yX2xvb3BfdmVjdG9yaXplZCAu KiIgXA0KPiArCQkiaGl0IGJyZWFrcG9pbnQgb24gdmVjdG9yaXplZCBwYXRoIg0KPiArDQo+ICsJ ICAgIGRlbGV0ZV9icmVha3BvaW50cw0KPiArCSAgICBnZGJfdGVzdCAiY29udGludWUiICIuKmV4 aXRlZCBub3JtYWxseS4qIiAicHJvZ3JhbSBleGl0cyBjbGVhbmx5Ig0KPiArCX0NCj4gKyAgICB9 DQo+ICt9DQo+ICsNCj4gKyMgQmVoYXZpb3JhbCB0ZXN0OiB2ZXJpZnkgc2V0dGluZyBhY3R1YWxs eSBhZmZlY3RzIGJyZWFrcG9pbnQgcmVzb2x1dGlvbi4NCj4gK3dpdGhfdGVzdF9wcmVmaXggImJl aGF2aW9yYWw6IHNldHRpbmcgdG9nZ2xlIGFmZmVjdHMgcmVzb2x1dGlvbiIgew0KPiArICAgIGNs ZWFuX3Jlc3RhcnQgIiR7dGVzdGZpbGV9LU8wIg0KPiArDQo+ICsgICAgIyBUZXN0IHdpdGggZXh0 ZW5kZWQgZmlsdGVyIE9OIChkZWZhdWx0KS4NCj4gKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNl dCBsaW5lc3BlYy1leHRlbmRlZC1ibG9jay1maWx0ZXIgb24iIFwNCj4gKwkiZW5hYmxlIGV4dGVu ZGVkIGJsb2NrLWZpbHRlciINCj4gKw0KPiArICAgIHNldCBubG9jc19vbiBbYnBfbmxvY3MgJHtz cmNmaWxlfSAke2xpbmVfaWZlbHNlfSBcDQo+ICsJInNldCBicmVha3BvaW50IG9uIGlmLWVsc2Ug bGluZSB3aXRoIGZpbHRlciBPTiJdDQo+ICsgICAgZGVsZXRlX2JyZWFrcG9pbnRzDQo+ICsNCj4g KyAgICBpZiB7ICRubG9jc19vbiA9PSAyIH0gew0KPiArCXBhc3MgImlmLWVsc2Ugd2l0aCBleHRl bmRlZCBmaWx0ZXIgT046IDIgbG9jYXRpb25zIg0KPiArICAgIH0gZWxzZSB7DQo+ICsJZmFpbCAi ZXhwZWN0ZWQgMiBsb2NhdGlvbnMgd2l0aCBleHRlbmRlZCBmaWx0ZXIgT04sIGdvdCAkbmxvY3Nf b24iDQo+ICsgICAgfQ0KPiArDQo+ICsgICAgIyBUZXN0IHdpdGggZXh0ZW5kZWQgZmlsdGVyIE9G Ri4NCj4gKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCBsaW5lc3BlYy1leHRlbmRlZC1ibG9j ay1maWx0ZXIgb2ZmIiBcDQo+ICsJImRpc2FibGUgZXh0ZW5kZWQgYmxvY2stZmlsdGVyIg0KPiAr DQo+ICsgICAgc2V0IG5sb2NzX29mZiBbYnBfbmxvY3MgJHtzcmNmaWxlfSAke2xpbmVfaWZlbHNl fSBcDQo+ICsJInNldCBicmVha3BvaW50IG9uIGlmLWVsc2UgbGluZSB3aXRoIGZpbHRlciBPRkYi XQ0KPiArICAgIGRlbGV0ZV9icmVha3BvaW50cw0KPiArDQo+ICsgICAgaWYgeyAkbmxvY3Nfb2Zm ID09IDEgfSB7DQo+ICsJcGFzcyAiaWYtZWxzZSB3aXRoIGV4dGVuZGVkIGZpbHRlciBPRkY6IDEg bG9jYXRpb24iDQo+ICsgICAgfSBlbHNlIHsNCj4gKwlmYWlsICJleHBlY3RlZCAxIGxvY2F0aW9u IHdpdGggZXh0ZW5kZWQgZmlsdGVyIE9GRiwgZ290ICRubG9jc19vZmYiDQo+ICsgICAgfQ0KPiAr DQo+ICsgICAgIyBWZXJpZnkgdG9nZ2xpbmcgaXQgYmFjayBPTiByZXN0b3JlcyB0aGUgdHdvIGxv Y2F0aW9ucy4NCj4gKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCBsaW5lc3BlYy1leHRlbmRl ZC1ibG9jay1maWx0ZXIgb24iIFwNCj4gKwkicmUtZW5hYmxlIGV4dGVuZGVkIGJsb2NrLWZpbHRl ciINCj4gKw0KPiArICAgIHNldCBubG9jc19vbl9hZ2FpbiBbYnBfbmxvY3MgJHtzcmNmaWxlfSAk e2xpbmVfaWZlbHNlfSBcDQo+ICsJInNldCBicmVha3BvaW50IG9uIGlmLWVsc2UgbGluZSB3aXRo IGZpbHRlciByZS1lbmFibGVkIl0NCj4gKyAgICBkZWxldGVfYnJlYWtwb2ludHMNCj4gKw0KPiAr ICAgIGlmIHsgJG5sb2NzX29uX2FnYWluID09IDIgfSB7DQo+ICsJcGFzcyAiaWYtZWxzZSB3aXRo IGV4dGVuZGVkIGZpbHRlciByZS1lbmFibGVkOiAyIGxvY2F0aW9ucyAodmVyaWZpZWQpIg0KPiAr ICAgIH0gZWxzZSB7DQo+ICsJZmFpbCAiZXhwZWN0ZWQgMiBsb2NhdGlvbnMgYWZ0ZXIgcmUtZW5h YmxpbmcsIGdvdCAkbmxvY3Nfb25fYWdhaW4iDQo+ICsgICAgfQ0KPiArfQ0KPiAtLQ0KPiAyLjM0 LjENCj4gDQo+IEludGVsIERldXRzY2hsYW5kIEdtYkgNCj4gUmVnaXN0ZXJlZCBBZGRyZXNzOiBE b3JuYWNoZXIgU3RyYXNzZSAxLCA4NTYyMiBGZWxka2lyY2hlbiwgR2VybWFueQ0KPiBUZWw6ICs0 OSA4OSA5OTEgNDMwLCB3d3cuaW50ZWwuZGUNCj4gTWFuYWdpbmcgRGlyZWN0b3JzOiBIYXJyeSBE ZW1hcywgSmVmZnJleSBTY2huZWlkZXJtYW4sIFlpbiBDaG9uZyBTb3JyZWxsDQo+IENoYWlycGVy c29uIG9mIHRoZSBTdXBlcnZpc29yeSBCb2FyZDogTmljb2xlIExhdQ0KPiBSZWdpc3RlcmVkIFNl YXQ6IE11bmljaA0KPiBDb21tZXJjaWFsIFJlZ2lzdGVyOiBBbXRzZ2VyaWNodCBNdWVuY2hlbiBI UkIgMTg2OTI4DQoNCkhpIEtsYXVzLCANCg0KVGhhbmsgeW91IGZvciB3b3JraW5nIG9uIHRoaXMu DQoNCkZvciB5b3VyIHBhdGNoIEkgc2VlIG5ldyBlcnJvcnMgZm9yIGdjYyBhbmQgY2xhbmcgaW4g dGhlIGZvbGxvd2luZyB0ZXN0czoNCg0KLSBnZGIudGhyZWFkcy9kZXRhY2gtc3RlcC1vdmVyLmV4 cA0KLSBnZGIuYWRhL3R5cGVfY29lcmNpb24uZXhwDQotIGdkYi5hZGEvb3ZlcmxvYWRfbWVudV9j cmFzaC5leHANCg0KVGhleSBhbGwgc2hvdyBhIHNpbWlsYXIgZXJyb3IgbWVzc2FnZToNCn5+fg0K KGdkYikgYnJlYWsgbWFpbi5hZGI6MjBeTQ0KQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVz cyAweDI2N2FeTQ0KKGdkYikgRkFJTDogZ2RiLmFkYS9vdmVybG9hZF9tZW51X2NyYXNoLmV4cDoN Cn5+fg0KDQpDb21waWxlciB2ZXJzaW9uczoNCn5+fg0KJCBnY2MgLS12ZXJzaW9uDQpnY2MgKFVi dW50dSAxMS40LjAtMXVidW50dTF+MjIuMDQuMykgMTEuNC4wDQokIGNsYW5nIC0tdmVyc2lvbg0K VWJ1bnR1IGNsYW5nIHZlcnNpb24gMTQuMC4wLTF1YnVudHUxLjENCn5+fg0KDQpCZXNpZGVzIHRo YXQsIEkgZGlkIG5vdCBoYXZlIHRoZSB0aW1lIHRvIHJldmlldyB0aGlzIGluIG1vcmUgZGV0YWls IGJ1dCB3YW50ZWQgdG8gc2hhcmUgc29tZSBvZiBteSBmaW5kaW5ncyBhbHJlYWR5Lg0KDQpDaHJp c3RpbmENCkludGVsIERldXRzY2hsYW5kIEdtYkgNClJlZ2lzdGVyZWQgQWRkcmVzczogRG9ybmFj aGVyIFN0cmFzc2UgMSwgODU2MjIgRmVsZGtpcmNoZW4sIEdlcm1hbnkNClRlbDogKzQ5IDg5IDk5 MSA0MzAsIHd3dy5pbnRlbC5kZQ0KTWFuYWdpbmcgRGlyZWN0b3JzOiBIYXJyeSBEZW1hcywgSmVm ZnJleSBTY2huZWlkZXJtYW4sIFlpbiBDaG9uZyBTb3JyZWxsDQpDaGFpcnBlcnNvbiBvZiB0aGUg U3VwZXJ2aXNvcnkgQm9hcmQ6IE5pY29sZSBMYXUNClJlZ2lzdGVyZWQgU2VhdDogTXVuaWNoDQpD b21tZXJjaWFsIFJlZ2lzdGVyOiBBbXRzZ2VyaWNodCBNdWVuY2hlbiBIUkIgMTg2OTI4Cg==