From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) by sourceware.org (Postfix) with ESMTPS id 9763B38A90A1 for ; Fri, 21 Jun 2024 14:45:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9763B38A90A1 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 9763B38A90A1 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=192.198.163.7 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1718981130; cv=pass; b=j+117O+SdSmEyFodfKc5rdxc1Kfoh7sTFyWSamUasIPocshbOPeCLDvznr2fzqweucbfyxjpV6lOaD4i2vqaGdKLYguOFFW6BAq3eLPrASO5cqna4oOJZdIfWtjhItII7SdQDhwsJCE3+uMoEoSBMBVlNnCHtvOnKAP2VNPoHnw= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1718981130; c=relaxed/simple; bh=4tQ4hYUmGatipzwVXjOsVRQtCpqOVAn9SQGxRib9HBw=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=dH3ZKorLTssFDXYz0V+wnSZX2IalTFkFPkxHJV5O5EUWAKUMInVgeUIrxkO+g2aY7O1xF5l2hQAeWm7tLG7yBM7FRZsUUIeilSEGMioWlDTtUvfxL+gdD19OCh4n8Ab8Oc/Qa2iTP9XFQlArgHUrVRU+76HiT6IAi5TVz3S1xPk= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1718981128; x=1750517128; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=4tQ4hYUmGatipzwVXjOsVRQtCpqOVAn9SQGxRib9HBw=; b=WzTB2NHhUiHHepWgAIjE9xjA8mfGNO0fvVB0eEgqg6oODe3ob+gT4VV8 mbC7elOgf/hbbuJ3/ojjZPa/Ia+m/Mi64RxxePrXqtpbvZ/UgA/jAjImp 4lSJIcHkI6lf0Z5EYvCWLzXegMzvvYe0HYXb6TtdhoTjT56VF73X3GK4B 9K890bg3ypQQb2830gjHRHLrYbnR6n+DMNLYIQ+TyaNQ4vNRijPbOP0/j YBrLjz4ju2OwmPj3edYGALpc6peVI1O1jYLlj9GkupWZQ+Ev5BJjmuoDX sTrg5vUlbZnOgjA+vq14D5JdoSFCIHhGPxc/BtE7AYTaVqQlI0TotMwvo Q==; X-CSE-ConnectionGUID: lClCCSuVQgG/FIC40JgIdw== X-CSE-MsgGUID: jp/pEogvThGS5DZIhidH4g== X-IronPort-AV: E=McAfee;i="6700,10204,11110"; a="41422057" X-IronPort-AV: E=Sophos;i="6.08,255,1712646000"; d="scan'208";a="41422057" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jun 2024 07:45:27 -0700 X-CSE-ConnectionGUID: vxLAr0qOTd21j39oN78feQ== X-CSE-MsgGUID: FWq4Phi7TMq5cKAE2uScEA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,255,1712646000"; d="scan'208";a="42708351" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orviesa009.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 21 Jun 2024 07:45:26 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 21 Jun 2024 07:45:25 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 21 Jun 2024 07:45:25 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Fri, 21 Jun 2024 07:45:25 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.170) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Fri, 21 Jun 2024 07:45:25 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GWQa70s2Wye4k1VbO+4wNYJfywwZ1z2Du8Fcd5BcWwxB65OSCCtddoy/7igBVaKEKEHKuh5shw2YqgJR1l9f5Tl6qun+8+83+88ahGf/UV06tBhscs87nwFZBhNJQmopasuP9Le6aYHqqkpj/jQOPYYQYBGFjkgroI9rjI99hpIj4GE6Eow4bvU6BXLaYZnBYPoQVosh/pWyFitAIXZ1EQci7VjtjFsZd3mC6CTCGkC5+z8qHtqqVH2Ek1BxlszT1yl2m6bcOW0SPW2oOvj9JflI2b+RYxdIsFOV89xR19TsFOGuP59rxHMaAHdF1NQHInLG3IqXdr3mkVYBnZO79A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4tQ4hYUmGatipzwVXjOsVRQtCpqOVAn9SQGxRib9HBw=; b=H+mA1scb2GX+pFAicAztZBXOoxNdfAX8xM/T48hOgRX7fO7n2ps/iZQTghgfVTDMyxmPqSkf4RzY8GagEv61gSoeW3mMdbjj7vCpenQ/SE01BfG/HHJUIJJB+xvWmFp8t118at85dJj86/48jISrSgLmzjXT9zamMQUv7wR6u4wKGO/YUkR+4AV2vhXL+GuqJCqiiwl4upGLjY9QPb94RXzmxfe889+Wfdwj2jzN+ka6wMp9VlW9/177bGBDD6/pJxszuR/9Kgjxi9N5VVa/qSMRT4YpnDdqDOB3KUNlxWkHewsbD26QK/9UmwamVBUnE575bvAKK9cF5+bQE4UTLQ== 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 MW5PR11MB5908.namprd11.prod.outlook.com (2603:10b6:303:194::10) by CY8PR11MB7243.namprd11.prod.outlook.com (2603:10b6:930:96::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.21; Fri, 21 Jun 2024 14:45:22 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::c798:ab3c:1a03:af59]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::c798:ab3c:1a03:af59%3]) with mapi id 15.20.7698.024; Fri, 21 Jun 2024 14:45:22 +0000 From: "Li, Pan2" To: Richard Biener CC: "gcc-patches@gcc.gnu.org" , "juzhe.zhong@rivai.ai" , "kito.cheng@gmail.com" , "jeffreyalaw@gmail.com" , "rdapp.gcc@gmail.com" Subject: RE: [PATCH v1] Ifcvt: Add cond tree reconcile for truncated .SAT_SUB Thread-Topic: [PATCH v1] Ifcvt: Add cond tree reconcile for truncated .SAT_SUB Thread-Index: AQHaw46naxvVnyK9tUK7iqE6FaWYKrHRyiqAgAAcEHCAAA1xAIAAVYUw Date: Fri, 21 Jun 2024 14:45:22 +0000 Message-ID: References: <20240621035252.742099-1-pan2.li@intel.com> In-Reply-To: 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: MW5PR11MB5908:EE_|CY8PR11MB7243:EE_ x-ms-office365-filtering-correlation-id: dde89861-2de6-4eec-2757-08dc9200c79a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230037|376011|1800799021|366013|38070700015; x-microsoft-antispam-message-info: =?utf-8?B?WCs0NE1RK2c4Zm9ZWk5tcksrc3RKang0ais1eVY0YVRWZVgwNXl6bGJncXpT?= =?utf-8?B?Yk1jZ2hMVFVBT0Q4SjR0U2xWNnN3dG1HM2xWL1BCdHpPOTBRUkZ6YWtpNThn?= =?utf-8?B?VlJVNjJ4NXRaUWxnNWpVdFVuVFpwSExDdkRvZ0NHVytIQ2xGRlE4Q0RrMHBS?= =?utf-8?B?NXVPR0xpNm9jQnhIOXNNQWE0Yk9QY0w4NnVxUEpOZXF6ejgzaW5JUGkvaUQ0?= =?utf-8?B?Mml5T00zaUhOTnRvay9nTDFLS2lMMDIyazQyekI1SExteVJFZnJIVjQwRVJU?= =?utf-8?B?RUNVMEZDYzAvOFpwQ0ppQ2FRY3dSUmVmNTIvVk9sblZNSXB3aWxmTkF6QlBJ?= =?utf-8?B?OGFDNitIb2ZvMkRvaTJVTVZuU3M2dlluZnZYK255azJBVzRDNVdsUVFxWTBJ?= =?utf-8?B?NVViNkZtQVh3M244QjVvL0Y2TlltK2NwcFFURjVKWDhBQkYyNm1VbFo3MCsz?= =?utf-8?B?UGpvNUxKYk9tb2pWRFN2Z2MvbnR5aUljZ3RYbitKTUpsaVJsYmJ5dUdJMDBW?= =?utf-8?B?ejFYQ0ZLUEQ4enh4NkIzS1FtV2xrWDU0b3plYU92d0RhQ3dDdEI1d0U4bUY4?= =?utf-8?B?Y1FmNUVDajNXdXNsaUl4dXV4Uy9xcUJ6YjV4c1FPZks1b2NrTGVvc1VpREtZ?= =?utf-8?B?NGNRTHVJbjR1SFdmTDhLWXhURG5hTWEyM0dDVlFoOE9SQW15bnlyMVRFV0JO?= =?utf-8?B?QytTRE0xb2RoVUZZT21yR2hUYVJ2dGtPUnpobDhiV0pwYzR2QVI5eUYvdUtK?= =?utf-8?B?dUxJVUozVU9pSkx3Z3dSS2ZNOERmVUI4Syticm85UzFpOURRaGhZdGdnM3Va?= =?utf-8?B?VUt4VTVQMlJyb2Z6b3QrVldSb0dwWVNzWS9DQmRaLzNhcFBMUWE1eFE5ekYr?= =?utf-8?B?Rko0dG01M25Uck1VU2lJaWlaendISU9UQStmeEFCTlNHNE9nQnQ4UU5TdTlo?= =?utf-8?B?MFIrWFBaclNjbUlzQ2VGM1Q5Qmg3NEN2ZitJcEZ3K1ZuZEpGb2w1NU44Zlpp?= =?utf-8?B?TDlEcEFTV3AxVkpVYnEyUUN4MHllSmF1bFVYZHFGNE91bnhJQXIzWWRIWklO?= =?utf-8?B?aWZQMTlQZitxZC9BZU5yVWd6ZFVSeXg4YUJ2cXkwT2pkbWNyZENXaStpSjRS?= =?utf-8?B?aERQR25rZXJFMEZMQzluY0pKeVBlTHV5Zkx2enlXQ3UwbTRkNFZBVjNPWElw?= =?utf-8?B?cU1zODl1emd3bHc5MzdrMnVtNXNiZkwwMnIyWnNhbU0rRHNTMTFjdC9aekN6?= =?utf-8?B?dkF3M0hKVEozcFdBQU5oWWZLT1pnRkREcXJRdFR3c1JhUk5sbkVVSkhUeW10?= =?utf-8?B?UkhwR3RMYUZqVGJDeExNbXEzYUFyYkc4dkcrUWlVc0RWZzQyMnFjOWtMSHcz?= =?utf-8?B?R1VxK1drS2tJeFQyK2JoRGFtTzB1RDh4b2s3WFYxeEYvSTE5dnQ3Y0tPM01C?= =?utf-8?B?bURtNUhSZGovSDdHazdlYWozbGZKY1IwQnZXRENCMDRWVW5PTGsxYU95WTdo?= =?utf-8?B?cEZEM1dka2xKenhWU2JyS3pGcWtEdVdCb0w3WEtSdVl0alU1a1o3SUtCV0ZZ?= =?utf-8?B?NE5jNWRPRis5REViNnViaUhqNzhlS1hvODNiNGxIeGdUWStzZDdROWdFaE5E?= =?utf-8?B?RENLMmJkeWtJNjQ1RmJvdnRWRENLQitaRjZzR1Exa0o4dVE1SWZVUnVvRDlv?= =?utf-8?B?KzZBY21VQ3JDcUZoU25KV3NUYmt5VERBdUNrWDlEbGMwci82MTMxSnZwMHJt?= =?utf-8?B?emlFd2JGS3VhK2lkWkhMS21iUWdFM3ZvcUs2VG9nQzQyRXNmUlFQelMrT0lr?= =?utf-8?Q?6BUQ7xrAw9ysFQ00g0+TO6l2Ys+79bvwkJD90=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5908.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230037)(376011)(1800799021)(366013)(38070700015);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Z2krVFJtUUFNNEwybkxiaXhlbmVsWVl0cjlXd2xWOHhHVXFpU2xKZkR3aFRz?= =?utf-8?B?NmdmTnRycTZodEZ0RXNQc29oNjA1aW1BOGVpZEFFRVMzSDUyaXNQaTI4WDZW?= =?utf-8?B?aXlualRqMkVad0JXOHNUNXdtYzBPYWovUEpZUUpxMXgrK2htazY5d2pjVUg0?= =?utf-8?B?OHNpemlZbGxlOG1lbnpacnZ5dVVyUFE4NEF2bHIvanJTRG15aVZvZDhXVFJJ?= =?utf-8?B?MUpGTjI1cUlobEpGYWpzbWh4VGYxdmR4R1NHMk5OK3VyRE91Z2FQeTF0ZXBR?= =?utf-8?B?blZlNFdVclU4OUxFRlNkaHdSTE03dlBONC9RdzNHYktaQ25meXpuVWU3U0FT?= =?utf-8?B?U2V1Rk12bWRpL28wdWN5b3F0M0NvUkVkWHYvWmswMGtqRG9FdElWejAyWnkr?= =?utf-8?B?OWl0R0VZemM3VUFzb3JMendUTEJldi95NUFWa0JyZG9tVEd3ZXZuSjFGMWEw?= =?utf-8?B?a3ltaEtMS0FXWGJ2MFEvVVRKcHQyd2RwVW4wQVptc3lPN3R0RytEZk95QjJC?= =?utf-8?B?WU40UGg2SCszdmF3dEZWSGtxa1dhbEExQTV0eGFFOVNsNWFGdG81dnFCMWxm?= =?utf-8?B?RVpiYjBYLzJPVU9LVmowZUxuYXFHQWZwdjFDYnVwbm1rTDY1WFRNS21adXAw?= =?utf-8?B?azZjbjFraktEV2VCZTJRNG5UMkpHSnZGMnRzaEkxeDNVd1F1QXVESjQxQ21q?= =?utf-8?B?bjNjdEYxMlFnc1AxOVhScHJzT2l1VFVLNmQzS3YwaUxGWm8rc05sckJUMExy?= =?utf-8?B?TmtaeTdsalVwcEJNWngyQWl0ZGhrRFpMeFVvT28yU2hHR0hqYUJuV3FqSWtZ?= =?utf-8?B?NEY4dlYrcTRsMGNzWXpISWRCVTdCTzZxUXFHdk5EdFlHMkVDY01ROWZsb3dy?= =?utf-8?B?eGd6ZnZxcmJ2SGM3aW1naC9jOXJLYXExYzF3SFlwbjR2OXh2eEtzdENrNUdo?= =?utf-8?B?Ry9MWjdqV1I3dURzOUZneHE2TTV2Z2d3K1ZYalUvYjJGNDNtL3BWYTB1ZENl?= =?utf-8?B?WjRkU1FPWnNzMXhuQjVXN3VWYnpUUXNZZnVRbDNFT3ZUR25HSUhMQlRucHRR?= =?utf-8?B?TzJkdWR5VmNTS25JYjhSWC9UM3lFdGYwZFVZWGRIZHR6MzVMTEJhMG5qY05p?= =?utf-8?B?bWlsZ01aelZxNDcxRnFGUXdDUnBBY3Q5N1dJZlJaOG5UZ3pDSVJIMEh2TVBH?= =?utf-8?B?RW9xaVhKMTJmMG1sV2cyQlNzcmx6cm9LaTRVSmNQUk01UmNjNUdsTWczdHk1?= =?utf-8?B?L29jSFhybWVMOCszdkl3OG1CdkhBcjQ1TUdiUHd4d2ZpcFp6NTBKNGVaaTZs?= =?utf-8?B?QW1oOEhCSWRGOElKYmk3WGRHdnZQQmdSMkFadVl6bWpHV3l2ckhYN2RVYW9m?= =?utf-8?B?ZXlQbEdoYms1V1puQ1kyalUxakUxbkcvM1QwYnYzczIrOExwczJSL1dCZUw2?= =?utf-8?B?cUpJKzc4NzUyMHRONDZQUWJUZ0hWb21OVXhHc2VpRldia2F0T1FBNkU4dDYv?= =?utf-8?B?MjhnVm02SDBEczFRZjBmRWdGbmtUWmJFLzI3QTk0bVo1SG5CTUlnbi9RQTBN?= =?utf-8?B?V0J6WndpVCt1bjZId0podGpoelI2MTdyaUFXZkZqc2l1eG5mUTVtNWNkTC83?= =?utf-8?B?MkVDVmhCcklvTHE5Wk1aK2U3djJYN3RhaUwwNnVueXl3Q0FsR0JmSUdmT25w?= =?utf-8?B?MU9YZzNSLy9RU2pQdmtSd28rR2xZYThEb01iZ2sxS0hXalBnNDdLN0tNaXlH?= =?utf-8?B?dFFYazYxRk95OEpra3pXNVE2RDdMVTZValF2TkNlU20waTIrM2FyOGVralBM?= =?utf-8?B?M2ErNTNRREQrMDJmWTRycitOZTA0OWF4M3pkamtVOFNrR215RFMrQ05PMnFC?= =?utf-8?B?b08raGZjaUtyMWQrdDJDNmgrMHVwVG5jVXAyVlIybTBqYkpaZ2drODBZU3Jj?= =?utf-8?B?bUwxU200R1EyN2xMTC9YS1laT0ltRU1WUjRkVWlVK1RSVmU4anBxT0lFQVZj?= =?utf-8?B?ZFIwVVZpVGcwUHp3TExBeFVVR0FSUDlEd21USURZcCtQNWwvV1lxODVlV2Vn?= =?utf-8?B?dEsvNWhIWkdCL0dIaXRkWGhrK3VNcVFDbTR2Yzd5TXcrZmp0NVA0bERTemNH?= =?utf-8?Q?ErTs=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW5PR11MB5908.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dde89861-2de6-4eec-2757-08dc9200c79a X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jun 2024 14:45:22.5935 (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: Uzmxgxqp2Mcr1rfKZagTdGhnx9ha1FIy/3J8Q/IXDyDwTVs8zP5B09AypD4Y5kSY5EkVI6Bi2+iky5jx1SkEIA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB7243 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_NONE,TXREP,WEIRD_PORT autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: VGhhbmtzIFJpY2hhcmQgZm9yIHN1Z2dlc3Rpb24sIHRyaWVkIHRoZSAoY29udmVydD8gd2l0aCBi ZWxvdyBnaW1wbGUgc3RtdCBidXQgZ290IGEgbWlzcyBkZWYgaWNlLg0KVG8gZG91YmxlIGNvbmZp cm0sIHRoZSAqdHlwZV9vdXQgc2hvdWxkIGJlIHRoZSB2ZWN0b3IgdHlwZSBvZiBsaHMsIGFuZCB3 ZSBvbmx5IG5lZWQgdG8gYnVpbGQNCm9uZSBjdnQgc3RtdCBmcm9tIGl0eXBlIHRvIG90eXBlIGhl cmUuIE9yIGp1c3QgcmV0dXJuIHRoZSBjYWxsIGRpcmVjdGx5IGFuZCBzZXQgdGhlIHR5cGVfb3V0 IHRvIHRoZSB2X290eXBlPw0KDQpzdGF0aWMgZ2ltcGxlICoNCnZlY3RfcmVjb2dfYnVpbGRfYmlu YXJ5X2dpbXBsZV9zdG10ICh2ZWNfaW5mbyAqdmluZm8sIGdpbXBsZSAqc3RtdCwNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF9mbiBmbiwgdHJlZSAqdHlwZV9v dXQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZSBsaHMsIHRyZWUg b3BfMCwgdHJlZSBvcF8xKQ0Kew0KICB0cmVlIGl0eXBlID0gVFJFRV9UWVBFIChvcF8wKTsNCiAg dHJlZSBvdHlwZSA9IFRSRUVfVFlQRSAobGhzKTsNCiAgdHJlZSB2X2l0eXBlID0gZ2V0X3ZlY3R5 cGVfZm9yX3NjYWxhcl90eXBlICh2aW5mbywgaXR5cGUpOw0KICB0cmVlIHZfb3R5cGUgPSBnZXRf dmVjdHlwZV9mb3Jfc2NhbGFyX3R5cGUgKHZpbmZvLCBvdHlwZSk7DQoNCiAgaWYgKHZfaXR5cGUg IT0gTlVMTF9UUkVFICYmIHZfb3R5cGUgIT0gTlVMTF9UUkVFDQogICAgJiYgZGlyZWN0X2ludGVy bmFsX2ZuX3N1cHBvcnRlZF9wIChmbiwgdl9pdHlwZSwgT1BUSU1JWkVfRk9SX0JPVEgpKQ0KICAg IHsNCiAgICAgIGdjYWxsICpjYWxsID0gZ2ltcGxlX2J1aWxkX2NhbGxfaW50ZXJuYWwgKGZuLCAy LCBvcF8wLCBvcF8xKTsNCiAgICAgIHRyZWUgaXR5cGVfc3NhID0gdmVjdF9yZWNvZ190ZW1wX3Nz YV92YXIgKGl0eXBlLCBOVUxMKTsNCg0KICAgICAgZ2ltcGxlX2NhbGxfc2V0X2xocyAoY2FsbCwg aXR5cGVfc3NhKTsNCiAgICAgIGdpbXBsZV9jYWxsX3NldF9ub3Rocm93IChjYWxsLCAvKiBub3Ro cm93X3AgKi8gZmFsc2UpOw0KICAgICAgZ2ltcGxlX3NldF9sb2NhdGlvbiAoY2FsbCwgZ2ltcGxl X2xvY2F0aW9uIChzdG10KSk7DQoNCiAgICAgICp0eXBlX291dCA9IHZfb3R5cGU7DQogICAgICBn aW1wbGUgKm5ld19zdG10ID0gY2FsbDsNCg0KICAgICAgaWYgKGl0eXBlICE9IG90eXBlKQ0KICAg ICAgICB7DQogICAgICAgICAgdHJlZSBvdHlwZV9zc2EgPSB2ZWN0X3JlY29nX3RlbXBfc3NhX3Zh ciAob3R5cGUsIE5VTEwpOw0KICAgICAgICAgIG5ld19zdG10ID0gZ2ltcGxlX2J1aWxkX2Fzc2ln biAob3R5cGVfc3NhLCBDT05WRVJUX0VYUFIsIGl0eXBlX3NzYSk7DQogICAgICAgIH0NCg0KICAg ICAgcmV0dXJuIG5ld19zdG10Ow0KICAgIH0NCg0KICByZXR1cm4gTlVMTDsNCn0NCg0KLS0tLS1j dXQgdGhlIGljZS0tLQ0KDQp6aXAudGVzdC5jOiBJbiBmdW5jdGlvbiDigJh0ZXN04oCZOg0Kemlw LnRlc3QuYzo0OjY6IGVycm9yOiBtaXNzaW5nIGRlZmluaXRpb24NCiAgICA0IHwgdm9pZCB0ZXN0 ICh1aW50MTZfdCAqeCwgdW5zaWduZWQgYiwgdW5zaWduZWQgbikNCiAgICAgIHwgICAgICBefn5+ DQpmb3IgU1NBX05BTUU6IHBhdHRfNDAgaW4gc3RhdGVtZW50Og0KdmVjdF9jc3RfXzE1MSA9IFt2 ZWNfZHVwbGljYXRlX2V4cHJdIHBhdHRfNDA7DQpkdXJpbmcgR0lNUExFIHBhc3M6IHZlY3QNCmR1 bXAgZmlsZTogemlwLnRlc3QuYy4xODB0LnZlY3QNCnppcC50ZXN0LmM6NDo2OiBpbnRlcm5hbCBj b21waWxlciBlcnJvcjogdmVyaWZ5X3NzYSBmYWlsZWQNCjB4MWRlMDg2MCB2ZXJpZnlfc3NhKGJv b2wsIGJvb2wpDQogICAgICAgIC9ob21lL3BsaS9nY2MvNTU1L3Jpc2N2LWdudS10b29sY2hhaW4v Z2NjL19fUklTQ1ZfQlVJTERfXy8uLi9nY2MvdHJlZS1zc2EuY2M6MTIwMw0KMHgxOTE5ZjY5IGV4 ZWN1dGVfZnVuY3Rpb25fdG9kbw0KICAgICAgICAvaG9tZS9wbGkvZ2NjLzU1NS9yaXNjdi1nbnUt dG9vbGNoYWluL2djYy9fX1JJU0NWX0JVSUxEX18vLi4vZ2NjL3Bhc3Nlcy5jYzoyMDk2DQoweDE5 MThiNDYgZG9fcGVyX2Z1bmN0aW9uDQogICAgICAgIC9ob21lL3BsaS9nY2MvNTU1L3Jpc2N2LWdu dS10b29sY2hhaW4vZ2NjL19fUklTQ1ZfQlVJTERfXy8uLi9nY2MvcGFzc2VzLmNjOjE2ODgNCjB4 MTkxYTExNiBleGVjdXRlX3RvZG8NCg0KUGFuDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCkZyb206IFJpY2hhcmQgQmllbmVyIDxyaWNoYXJkLmd1ZW50aGVyQGdtYWlsLmNvbT4gDQpT ZW50OiBGcmlkYXksIEp1bmUgMjEsIDIwMjQgNToyOSBQTQ0KVG86IExpLCBQYW4yIDxwYW4yLmxp QGludGVsLmNvbT4NCkNjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzsganV6aGUuemhvbmdAcml2 YWkuYWk7IGtpdG8uY2hlbmdAZ21haWwuY29tOyBqZWZmcmV5YWxhd0BnbWFpbC5jb207IHJkYXBw LmdjY0BnbWFpbC5jb20NClN1YmplY3Q6IFJlOiBbUEFUQ0ggdjFdIElmY3Z0OiBBZGQgY29uZCB0 cmVlIHJlY29uY2lsZSBmb3IgdHJ1bmNhdGVkIC5TQVRfU1VCDQoNCk9uIEZyaSwgSnVuIDIxLCAy MDI0IGF0IDEwOjUw4oCvQU0gTGksIFBhbjIgPHBhbjIubGlAaW50ZWwuY29tPiB3cm90ZToNCj4N Cj4gVGhhbmtzIFJpY2hhcmQgZm9yIGNvbW1lbnRzLg0KPg0KPiA+IHRvIG1hdGNoIHRoaXMgYnkg Y2hhbmdpbmcgaXQgdG8NCj4NCj4gPiAvKiBVbnNpZ25lZCBzYXR1cmF0aW9uIHN1YiwgY2FzZSAy IChicmFuY2ggd2l0aCBnZSk6DQo+ID4gICAgU0FUX1VfU1VCID0gWCA+PSBZID8gWCAtIFkgOiAw LiAgKi8NCj4gPiAobWF0Y2ggKHVuc2lnbmVkX2ludGVnZXJfc2F0X3N1YiBAMCBAMSkNCj4gPiAo Y29uZF4gKGdlIEAwIEAxKSAoY29udmVydD8gKG1pbnVzIEAwIEAxKSkgaW50ZWdlcl96ZXJvcCkN Cj4gPiAgKGlmIChJTlRFR1JBTF9UWVBFX1AgKHR5cGUpICYmIFRZUEVfVU5TSUdORUQgKHR5cGUp DQo+ID4gICAgICAgJiYgdHlwZXNfbWF0Y2ggKHR5cGUsIEAwLCBAMSkpKSkNCj4NCj4gRG8gd2Ug bmVlZCBhbm90aGVyIG5hbWUgZm9yIHRoaXMgbWF0Y2hpbmcgPyBBZGQgKGNvbnZlcnQ/IGhlcmUg bWF5IGNoYW5nZSB0aGUgc2VtYXRpY3Mgb2YgLlNBVF9TVUIuDQo+IFdoZW4gd2UgY2FsbCBnaW1w bGVfdW5zaWduZWRfaW50ZWdlcl9zYXRfc3ViIChsaHMsIG9wcywgTlVMTCksIHRoZSBjb252ZXJ0 ZWQgdmFsdWUgbWF5IGJlIHJldHVybmVkIGRpZmZlcmVudA0KPiB0byB0aGUgKG1pbnVzIEAwIEAx KS4gUGxlYXNlIGNvcnJlY3QgbWUgaWYgbXkgdW5kZXJzdGFuZGluZyBpcyB3cm9uZy4NCg0KSSB0 aGluayBnaW1wbGVfdW5zaWduZWRfaW50ZWdlcl9zYXRfc3ViIChsaHMsIC4uLikgc2ltcGx5IG1h dGNoZXMNCih0eXBlb2YgTEhTKS5TQVRfU1VCIChvcHNbMF0sIG9wc1sxXSkgbm93LCBJIGRvbid0 IHRoaW5rIGl0J3MgbmVjZXNzYXJ5IHRvDQpoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdHlwZWYgTEhT IGFuZCB0eXBlb2Ygb3BzWzBdIGFyZSBlcXVhbCBzcGVjaWFsbHk/DQoNCj4gPiBhbmQgd2hlbiB1 c2luZyB0aGUgZ2ltcGxlX21hdGNoXyogZnVuY3Rpb24gbWFrZSBzdXJlIHRvIGNvbnNpZGVyDQo+ ID4gdGhhdCB0aGUgLlNBVF9TVUIgKEAwLCBAMSkgaXMgY29udmVydGVkIHRvIHRoZSB0eXBlIG9m IHRoZSBTU0EgbmFtZQ0KPiA+IHdlIG1hdGNoZWQ/DQo+DQo+IFRoaXMgbWF5IGhhdmUgcHJvYmxl bSBmb3IgdmVjdG9yIHBhcnQgSSBndWVzcywgcmVxdWlyZSBzb21lIGFkZGl0aW9uYWwgY2hhbmdl IGZyb20gdmVjdG9yaXplX2NvbnZlcnQgd2hlbg0KPiBJIHRyeSB0byBkbyB0aGF0IGluIHByZXZp b3VzLiBMZXQgbWUgZG91YmxlIGNoZWNrIGFib3V0IGl0LCBhbmQga2VlcCB5b3UgcG9zdGVkLg0K DQpZb3UgYXJlIHVzaW5nIGdpbXBsZV91bnNpZ25lZF9pbnRlZ2VyX3NhdF9zdWIgZnJvbSBwYXR0 ZXJuIHJlY29nbml0aW9uLCB0aGUNCnRoaW5nIHRvIGRvIGlzIHNpbXBseSB0byBhZGQgYSBjb252 ZXJzaW9uIHN0bXQgdG8gdGhlIHBhdHRlcm4gc2VxdWVuY2UgaW4gY2FzZQ0KdGhlIHR5cGVzIGRp ZmZlcj8NCg0KQnV0IG1heWJlIEknbSBtaXNzaW5nIHNvbWV0aGluZy4NCg0KUmljaGFyZC4NCg0K PiBQYW4NCj4NCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUmljaGFyZCBC aWVuZXIgPHJpY2hhcmQuZ3VlbnRoZXJAZ21haWwuY29tPg0KPiBTZW50OiBGcmlkYXksIEp1bmUg MjEsIDIwMjQgMzowMCBQTQ0KPiBUbzogTGksIFBhbjIgPHBhbjIubGlAaW50ZWwuY29tPg0KPiBD YzogZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc7IGp1emhlLnpob25nQHJpdmFpLmFpOyBraXRvLmNo ZW5nQGdtYWlsLmNvbTsgamVmZnJleWFsYXdAZ21haWwuY29tOyByZGFwcC5nY2NAZ21haWwuY29t DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjFdIElmY3Z0OiBBZGQgY29uZCB0cmVlIHJlY29uY2ls ZSBmb3IgdHJ1bmNhdGVkIC5TQVRfU1VCDQo+DQo+IE9uIEZyaSwgSnVuIDIxLCAyMDI0IGF0IDU6 NTPigK9BTSA8cGFuMi5saUBpbnRlbC5jb20+IHdyb3RlOg0KPiA+DQo+ID4gRnJvbTogUGFuIExp IDxwYW4yLmxpQGludGVsLmNvbT4NCj4gPg0KPiA+IFRoZSB6aXAgYmVuY2htYXJrIG9mIGNvcmVt YXJrLXBybyBoYXZlIG9uZSBTQVRfU1VCIGxpa2UgcGF0dGVybiBidXQNCj4gPiB0cnVuY2F0ZWQg YXMgYmVsb3c6DQo+ID4NCj4gPiB2b2lkIHRlc3QgKHVpbnQxNl90ICp4LCB1bnNpZ25lZCBiLCB1 bnNpZ25lZCBuKQ0KPiA+IHsNCj4gPiAgIHVuc2lnbmVkIGEgPSAwOw0KPiA+ICAgcmVnaXN0ZXIg dWludDE2X3QgKnAgPSB4Ow0KPiA+DQo+ID4gICBkbyB7DQo+ID4gICAgIGEgPSAqLS1wOw0KPiA+ ICAgICAqcCA9ICh1aW50MTZfdCkoYSA+PSBiID8gYSAtIGIgOiAwKTsgLy8gVHJ1bmNhdGUgdGhl IHJlc3VsdCBvZiBTQVRfU1VCDQo+ID4gICB9IHdoaWxlICgtLW4pOw0KPiA+IH0NCj4gPg0KPiA+ IEl0IHdpbGwgaGF2ZSBnaW1wbGUgYWZ0ZXIgaWZjdnQgcGFzcywgIGl0IGNhbm5vdCBoaXQgYW55 IHBhdHRlcm4gb2YNCj4gPiBTQVRfU1VCIGFuZCB0aGVuIGNhbm5vdCB2ZWN0b3JpemUgdG8gU0FU X1NVQi4NCj4gPg0KPiA+IF8yID0gYV8xMSAtIGJfMTIoRCk7DQo+ID4gaWZ0bXAuMF8xMyA9IChz aG9ydCB1bnNpZ25lZCBpbnQpIF8yOw0KPiA+IF8xOCA9IGFfMTEgPj0gYl8xMihEKTsNCj4gPiBp ZnRtcC4wXzUgPSBfMTggPyBpZnRtcC4wXzEzIDogMDsNCj4gPg0KPiA+IFRoaXMgcGF0Y2ggd291 bGQgbGlrZSB0byBkbyBzb21lIHJlY29uY2lsZSBmb3IgYWJvdmUgcGF0dGVybiB0byBtYXRjaA0K PiA+IHRoZSBTQVRfU1VCIHBhdHRlcm4uICBUaGVuIHRoZSB1bmRlcmx5aW5nIHZlY3QgcGFzcyBp cyBhYmxlIHRvIHZlY3Rvcml6ZQ0KPiA+IHRoZSBTQVRfU1VCLg0KPg0KPiBIbW0uICBJIHdhcyB0 aGlua2luZyBvZiBhbGxvd2luZw0KPg0KPiAvKiBVbnNpZ25lZCBzYXR1cmF0aW9uIHN1YiwgY2Fz ZSAyIChicmFuY2ggd2l0aCBnZSk6DQo+ICAgIFNBVF9VX1NVQiA9IFggPj0gWSA/IFggLSBZIDog MC4gICovDQo+IChtYXRjaCAodW5zaWduZWRfaW50ZWdlcl9zYXRfc3ViIEAwIEAxKQ0KPiAgKGNv bmReIChnZSBAMCBAMSkgKG1pbnVzIEAwIEAxKSBpbnRlZ2VyX3plcm9wKQ0KPiAgKGlmIChJTlRF R1JBTF9UWVBFX1AgKHR5cGUpICYmIFRZUEVfVU5TSUdORUQgKHR5cGUpDQo+ICAgICAgICYmIHR5 cGVzX21hdGNoICh0eXBlLCBAMCwgQDEpKSkpDQo+DQo+IHRvIG1hdGNoIHRoaXMgYnkgY2hhbmdp bmcgaXQgdG8NCj4NCj4gLyogVW5zaWduZWQgc2F0dXJhdGlvbiBzdWIsIGNhc2UgMiAoYnJhbmNo IHdpdGggZ2UpOg0KPiAgICBTQVRfVV9TVUIgPSBYID49IFkgPyBYIC0gWSA6IDAuICAqLw0KPiAo bWF0Y2ggKHVuc2lnbmVkX2ludGVnZXJfc2F0X3N1YiBAMCBAMSkNCj4gIChjb25kXiAoZ2UgQDAg QDEpIChjb252ZXJ0PyAobWludXMgQDAgQDEpKSBpbnRlZ2VyX3plcm9wKQ0KPiAgKGlmIChJTlRF R1JBTF9UWVBFX1AgKHR5cGUpICYmIFRZUEVfVU5TSUdORUQgKHR5cGUpDQo+ICAgICAgICYmIHR5 cGVzX21hdGNoICh0eXBlLCBAMCwgQDEpKSkpDQo+DQo+IGFuZCB3aGVuIHVzaW5nIHRoZSBnaW1w bGVfbWF0Y2hfKiBmdW5jdGlvbiBtYWtlIHN1cmUgdG8gY29uc2lkZXINCj4gdGhhdCB0aGUgLlNB VF9TVUIgKEAwLCBAMSkgaXMgY29udmVydGVkIHRvIHRoZSB0eXBlIG9mIHRoZSBTU0EgbmFtZQ0K PiB3ZSBtYXRjaGVkPw0KPg0KPiBSaWNoYXJkLg0KPg0KPiA+IF8yID0gYV8xMSAtIGJfMTIoRCk7 DQo+ID4gXzE4ID0gYV8xMSA+PSBiXzEyKEQpOw0KPiA+IF9wYXR0bXAgPSBfMTggPyBfMiA6IDA7 IC8vIC5TQVRfU1VCIHBhdHRlcm4NCj4gPiBpZnRtcC4wXzEzID0gKHNob3J0IHVuc2lnbmVkIGlu dCkgX3BhdHRtcDsNCj4gPiBpZnRtcC4wXzUgPSBpZnRtcC4wXzEzOw0KPiA+DQo+ID4gVGhlIGJl bG93IHRlc3RzIGFyZSBydW5uaW5nIGZvciB0aGlzIHBhdGNoLg0KPiA+IDEuIFRoZSBydjY0Z2N2 IGZ1bGx5IHJlZ3Jlc3Npb24gdGVzdHMuDQo+ID4gMi4gVGhlIHJ2NjRnY3YgYnVpbGQgd2l0aCBn bGliYy4NCj4gPiAzLiBUaGUgeDg2IGJvb3RzdHJhcCB0ZXN0cy4NCj4gPiA0LiBUaGUgeDg2IGZ1 bGx5IHJlZ3Jlc3Npb24gdGVzdHMuDQo+ID4NCj4gPiBnY2MvQ2hhbmdlTG9nOg0KPiA+DQo+ID4g ICAgICAgICAqIG1hdGNoLnBkOiBBZGQgbmV3IG1hdGNoIGZvciB0cnVuYXRlZCB1bnNpZ25lZCBz YXRfc3ViLg0KPiA+ICAgICAgICAgKiB0cmVlLWlmLWNvbnYuY2MgKGdpbXBsZV90cnVuY2F0ZWRf dW5zaWduZWRfaW50ZWdlcl9zYXRfc3ViKToNCj4gPiAgICAgICAgIE5ldyBleHRlcm5hbCBkZWNs IGZyb20gbWF0Y2gucGQuDQo+ID4gICAgICAgICAodHJlZV9pZl9jb25kX3JlY29uY2lsZV91bnNp Z25lZF9pbnRlZ2VyX3NhdF9zdWIpOiBOZXcgZnVuYyBpbXBsDQo+ID4gICAgICAgICB0byByZWNv bmNpbGUgdGhlIHRydW5jYXRlZCBzYXRfc3ViIHBhdHRlcm4uDQo+ID4gICAgICAgICAodHJlZV9p Zl9jb25kX3JlY29uY2lsZSk6IE5ldyBmdW5jIGltcGwgdG8gcmVjb25jaWxlLg0KPiA+ICAgICAg ICAgKHBhc3NfaWZfY29udmVyc2lvbjo6ZXhlY3V0ZSk6IFRyeSB0byByZWNvbmNpbGUgYWZ0ZXIg aWZjdnQuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBQYW4gTGkgPHBhbjIubGlAaW50ZWwuY29t Pg0KPiA+IC0tLQ0KPiA+ICBnY2MvbWF0Y2gucGQgICAgICAgIHwgIDkgKysrKysNCj4gPiAgZ2Nj L3RyZWUtaWYtY29udi5jYyB8IDgzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKw0KPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDkyIGluc2VydGlvbnMoKykNCj4gPg0K PiA+IGRpZmYgLS1naXQgYS9nY2MvbWF0Y2gucGQgYi9nY2MvbWF0Y2gucGQNCj4gPiBpbmRleCAz ZDA2ODljOTMxMi4uOTYxN2E1ZjlkNWUgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL21hdGNoLnBkDQo+ ID4gKysrIGIvZ2NjL21hdGNoLnBkDQo+ID4gQEAgLTMyMTAsNiArMzIxMCwxNSBAQCBERUZJTkVf SU5UX0FORF9GTE9BVF9ST1VORF9GTiAoUklOVCkNCj4gPiAgIChpZiAoSU5URUdSQUxfVFlQRV9Q ICh0eXBlKSAmJiBUWVBFX1VOU0lHTkVEICh0eXBlKQ0KPiA+ICAgICAgICAmJiB0eXBlc19tYXRj aCAodHlwZSwgQDAsIEAxKSkpKQ0KPiA+DQo+ID4gKy8qIFVuc2lnbmVkIHNhdHVyYXRpb24gc3Vi IGFuZCB0aGVuIHRydW5jYXRlZCwgYWthOg0KPiA+ICsgICBUcnVuY2F0ZWQgPSBYID49IFkgPyAo T3RoZXIgVHlwZSkgKFggLSBZKSA6IDAuDQo+ID4gKyAqLw0KPiA+ICsobWF0Y2ggKHRydW5jYXRl ZF91bnNpZ25lZF9pbnRlZ2VyX3NhdF9zdWIgQDAgQDEpDQo+ID4gKyAoY29uZCAoZ2UgQDAgQDEp IChjb252ZXJ0IChtaW51cyBAMCBAMSkpIGludGVnZXJfemVyb3ApDQo+ID4gKyAoaWYgKElOVEVH UkFMX1RZUEVfUCAodHlwZSkgJiYgVFlQRV9VTlNJR05FRCAodHlwZSkNCj4gPiArICAgICAgJiYg dHlwZXNfbWF0Y2ggKEAwLCBAMSkNCj4gPiArICAgICAgJiYgdHJlZV9pbnRfY3N0X2x0IChUWVBF X1NJWkUgKHR5cGUpLCBUWVBFX1NJWkUgKFRSRUVfVFlQRSAoQDApKSkpKSkNCj4gPiArDQo+ID4g IC8qIHggPiAgeSAgJiYgIHggIT0gWFhYX01JTiAgLS0+ICB4ID4geQ0KPiA+ICAgICB4ID4gIHkg ICYmICB4ID09IFhYWF9NSU4gIC0tPiAgZmFsc2UgLiAqLw0KPiA+ICAoZm9yIGVxbmUgKGVxIG5l KQ0KPiA+IGRpZmYgLS1naXQgYS9nY2MvdHJlZS1pZi1jb252LmNjIGIvZ2NjL3RyZWUtaWYtY29u di5jYw0KPiA+IGluZGV4IDU3OTkyYjZkZWNhLi41MzU3NDMxMzBmMiAxMDA2NDQNCj4gPiAtLS0g YS9nY2MvdHJlZS1pZi1jb252LmNjDQo+ID4gKysrIGIvZ2NjL3RyZWUtaWYtY29udi5jYw0KPiA+ IEBAIC0zNzM4LDYgKzM3MzgsODcgQEAgYml0ZmllbGRzX3RvX2xvd2VyX3AgKGNsYXNzIGxvb3Ag Kmxvb3AsDQo+ID4gICAgcmV0dXJuICFyZWFkc190b19sb3dlci5pc19lbXB0eSAoKSB8fCAhd3Jp dGVzX3RvX2xvd2VyLmlzX2VtcHR5ICgpOw0KPiA+ICB9DQo+ID4NCj4gPiArZXh0ZXJuIGJvb2wg Z2ltcGxlX3RydW5jYXRlZF91bnNpZ25lZF9pbnRlZ2VyX3NhdF9zdWIgKHRyZWUsIHRyZWUqLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0cmVlICgqKSh0cmVlKSk7DQo+ID4gKw0KPiA+ICsvKg0KPiA+ICsgKiBUcnkgdG8gcmVjb25j aWxlIHRoZSBzdG10IHBhdHRlcm4gYXMgYmVsb3cgdG8gbWF0aCB0aGUgU0FUX1NVQg0KPiA+ICsg KiBpbiB2ZWN0b3JpemF0aW9uLiAgSWYgYW5kIG9ubHkgaWYgdGhlIHJlbGF0ZWQgaW50ZXJuYWxf Zm4gaGFzDQo+ID4gKyAqIGJlZW4gaW1wbGVtZW50ZWQgYWxyZWFkeS4NCj4gPiArICoNCj4gPiAr ICogVGhlIHJlY29uY2lsZSB3aWxsIGluc2VydCBvbmUgbmV3IHN0bXQgbmFtZWQgJ2EnIGluIGJl bG93IGV4YW1wbGUsDQo+ID4gKyAqIHJlcGxhY2UgdGhlIHN0bXQgJzQnIGJ5IG5ldyBhZGRlZCBz dG10ICdiJyBhcyB3ZWxsLiAgVGhlbiB0aGUgc3RtdA0KPiA+ICsgKiBwYXR0ZXJuIGlzIGFibGUg dG8gaGl0IHRoZSBTQVRfU1VCIHBhdHRlcm4gaW4gdGhlIHVuZGVybHlpbmcgcGFzcy4NCj4gPiAr ICoNCj4gPiArICogMS4gXzIgPSBhXzExIC0gYl8xMihEKTsNCj4gPiArICogMi4gaWZ0bXAuMF8x MyA9IChzaG9ydCB1bnNpZ25lZCBpbnQpIF8yOw0KPiA+ICsgKiAzLiBfMTggPSBhXzExID49IGJf MTIoRCk7DQo+ID4gKyAqIDQuIGlmdG1wLjBfNSA9IF8xOCA/IGlmdG1wLjBfMTMgOiAwOw0KPiA+ ICsgKiA9PT4NCj4gPiArICogMS4gXzIgPSBhXzExIC0gYl8xMihEKTsNCj4gPiArICogMy4gXzE4 ID0gYV8xMSA+PSBiXzEyKEQpOw0KPiA+ICsgKiBhLiBwYXR0bXAgPSBfMTggPyBfMiA6IDA7ICAg ICAgICAgICAgICAgICAgICAgLy8gTmV3IGluc2VydGlvbg0KPiA+ICsgKiAyLiBpZnRtcC4wXzEz ID0gKHNob3J0IHVuc2lnbmVkIGludCkgX3BhdHRtcDsgLy8gTW92ZSBiZWZvcmUNCj4gPiArICog Yi4gaWZ0bXAuMF81ID0gaWZ0bXAuMF8xMzsNCj4gPiArICogICAgPT0gUmVwbGFjZSA9PT4gNC4g aWZ0bXAuMF81ID0gXzE4ID8gaWZ0bXAuMF8xMyA6IDA7DQo+ID4gKyAqLw0KPiA+ICtzdGF0aWMg dm9pZA0KPiA+ICt0cmVlX2lmX2NvbmRfcmVjb25jaWxlX3Vuc2lnbmVkX2ludGVnZXJfc2F0X3N1 YiAoZ2ltcGxlX3N0bXRfaXRlcmF0b3IgKmdzaSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Fzc2lnbiAqc3RtdCkNCj4gPiArew0KPiA+ICsg IHRyZWUgb3BzWzJdOw0KPiA+ICsgIHRyZWUgbGhzID0gZ2ltcGxlX2Fzc2lnbl9saHMgKHN0bXQp Ow0KPiA+ICsgIGJvb2wgc3VwcG9ydGVkX3AgPSBkaXJlY3RfaW50ZXJuYWxfZm5fc3VwcG9ydGVk X3AgKElGTl9TQVRfU1VCLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVFJFRV9UWVBFIChsaHMpLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1BUSU1JWkVfRk9SX0JPVEgpOw0K PiA+ICsNCj4gPiArICBpZiAoc3VwcG9ydGVkX3AgJiYgZ2ltcGxlX3RydW5jYXRlZF91bnNpZ25l ZF9pbnRlZ2VyX3NhdF9zdWIgKGxocywgb3BzLCBOVUxMKSkNCj4gPiArICAgIHsNCj4gPiArICAg ICAgdHJlZSBjb25kID0gZ2ltcGxlX2Fzc2lnbl9yaHMxIChzdG10KTsgLy8gYWthIF8xOA0KPiA+ ICsgICAgICB0cmVlIHRydW5jYXRlZCA9IGdpbXBsZV9hc3NpZ25fcmhzMiAoc3RtdCk7IC8vIGFr YSBpZnRtcC4wXzEzDQo+ID4gKyAgICAgIGdpbXBsZSAqc3RtdF8yID0gU1NBX05BTUVfREVGX1NU TVQgKHRydW5jYXRlZCk7DQo+ID4gKyAgICAgIHRyZWUgbWludXMgPSBnaW1wbGVfYXNzaWduX3Jo czEgKHN0bXRfMik7IC8vIGFrYSBfMg0KPiA+ICsgICAgICB0cmVlIHJhd190eXBlID0gVFJFRV9U WVBFIChtaW51cyk7DQo+ID4gKyAgICAgIHRyZWUgemVybyA9IGJ1aWxkX3plcm9fY3N0IChyYXdf dHlwZSk7DQo+ID4gKyAgICAgIHRyZWUgdG1wID0gbWFrZV90ZW1wX3NzYV9uYW1lIChyYXdfdHlw ZSwgTlVMTCwgInNhdF9zdWJfdG1wIik7DQo+ID4gKw0KPiA+ICsgICAgICAvKiBGb3Igc3RtdCAn YScgaW4gYWJvdmUgZXhhbXBsZSAgKi8NCj4gPiArICAgICAgZ2ltcGxlICpzdG10X2EgPSBnaW1w bGVfYnVpbGRfYXNzaWduICh0bXAsIENPTkRfRVhQUiwgY29uZCwgbWludXMsIHplcm8pOw0KPiA+ ICsgICAgICBnc2lfaW5zZXJ0X2JlZm9yZSAoZ3NpLCBzdG10X2EsIEdTSV9TQU1FX1NUTVQpOw0K PiA+ICsgICAgICB1cGRhdGVfc3RtdCAoc3RtdF9hKTsNCj4gPiArDQo+ID4gKyAgICAgIC8qIEZv ciBzdG10ICcyJyBpbiBhYm92ZSBleGFtcGxlICAqLw0KPiA+ICsgICAgICBnaW1wbGVfc3RtdF9p dGVyYXRvciBzdG10XzJfZ3NpID0gZ3NpX2Zvcl9zdG10IChzdG10XzIpOw0KPiA+ICsgICAgICBn c2lfbW92ZV9iZWZvcmUgKCZzdG10XzJfZ3NpLCBnc2ksIEdTSV9TQU1FX1NUTVQpOw0KPiA+ICsg ICAgICBnaW1wbGVfYXNzaWduX3NldF9yaHMxIChzdG10XzIsIHRtcCk7DQo+ID4gKyAgICAgIHVw ZGF0ZV9zdG10IChzdG10XzIpOw0KPiA+ICsNCj4gPiArICAgICAgLyogRm9yIHN0bXQgJ2InIGlu IGFib3ZlIGV4YW1wbGUgICovDQo+ID4gKyAgICAgIGdpbXBsZSAqc3RtdF9iID0gZ2ltcGxlX2J1 aWxkX2Fzc2lnbiAobGhzLCBOT1BfRVhQUiwgdHJ1bmNhdGVkKTsNCj4gPiArICAgICAgZ3NpX3Jl cGxhY2UgKGdzaSwgc3RtdF9iLCAvKiB1cGRhdGVfZWhfaW5mbyAqLyB0cnVlKTsNCj4gPiArICAg ICAgdXBkYXRlX3N0bXQgKHN0bXRfYik7DQo+ID4gKyAgICB9DQo+ID4gK30NCj4gPiArDQo+ID4g K3N0YXRpYyB2b2lkDQo+ID4gK3RyZWVfaWZfY29uZF9yZWNvbmNpbGUgKGZ1bmN0aW9uICpmdW4p DQo+ID4gK3sNCj4gPiArICBiYXNpY19ibG9jayBiYjsNCj4gPiArICBGT1JfRUFDSF9CQl9GTiAo YmIsIGZ1bikNCj4gPiArICAgIHsNCj4gPiArICAgICAgZ2ltcGxlX3N0bXRfaXRlcmF0b3IgZ3Np Ow0KPiA+ICsgICAgICBmb3IgKGdzaSA9IGdzaV9zdGFydF9iYiAoYmIpOyAhZ3NpX2VuZF9wIChn c2kpOyBnc2lfbmV4dCAoJmdzaSkpDQo+ID4gKyAgICAgICB7DQo+ID4gKyAgICAgICAgIGdpbXBs ZSAqc3RtdCA9IGdzaV9zdG10IChnc2kpOw0KPiA+ICsNCj4gPiArICAgICAgICAgaWYgKGlzX2dp bXBsZV9hc3NpZ24gKHN0bXQpKQ0KPiA+ICsgICAgICAgICAgIHsNCj4gPiArICAgICAgICAgICAg IGdhc3NpZ24gKmFzc2lnbiA9IGR5bl9jYXN0IDxnYXNzaWduICo+IChzdG10KTsNCj4gPiArICAg ICAgICAgICAgIHRyZWVfaWZfY29uZF9yZWNvbmNpbGVfdW5zaWduZWRfaW50ZWdlcl9zYXRfc3Vi ICgmZ3NpLCBhc3NpZ24pOw0KPiA+ICsgICAgICAgICAgIH0NCj4gPiArICAgICAgIH0NCj4gPiAr ICAgIH0NCj4gPiArfQ0KPiA+DQo+ID4gIC8qIElmLWNvbnZlcnQgTE9PUCB3aGVuIGl0IGlzIGxl Z2FsLiAgRm9yIHRoZSBtb21lbnQgdGhpcyBwYXNzIGhhcyBubw0KPiA+ICAgICBwcm9maXRhYmls aXR5IGFuYWx5c2lzLiAgUmV0dXJucyBub24temVybyB0b2RvIGZsYWdzIHdoZW4gc29tZXRoaW5n DQo+ID4gQEAgLTQwNjMsNiArNDE0NCw4IEBAIHBhc3NfaWZfY29udmVyc2lvbjo6ZXhlY3V0ZSAo ZnVuY3Rpb24gKmZ1bikNCj4gPiAgICAgICAgIH0NCj4gPiAgICAgIH0NCj4gPg0KPiA+ICsgIHRy ZWVfaWZfY29uZF9yZWNvbmNpbGUgKGZ1bik7DQo+ID4gKw0KPiA+ICAgIHJldHVybiAwOw0KPiA+ ICB9DQo+ID4NCj4gPiAtLQ0KPiA+IDIuMzQuMQ0KPiA+DQo=