Received: by 2002:a05:6358:16cd:b0:dc:6189:e246 with SMTP id r13csp558037rwl; Fri, 4 Nov 2022 03:48:19 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7ghR5rCguzd9lFVAlUPbF8EjWhDuW6s7yz5uDf/h4BR0RtjX98/x+ZFscRcLxM3Gm8aWsS X-Received: by 2002:a17:902:b595:b0:187:34f6:7820 with SMTP id a21-20020a170902b59500b0018734f67820mr19724764pls.152.1667558899711; Fri, 04 Nov 2022 03:48:19 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1667558899; cv=pass; d=google.com; s=arc-20160816; b=qOzqyxYqUT9F5pdD2VTQLwHc/ROuhNGFrrIvNr9BXhGZC+RYm6CJzkGqSqJnEpid5y 6zUK7sXBtfPpWvWoUDqUpqsa83iiFWNheHCa+eo7fUC2WZgNr88Jqwgk24q7+PiHni+I xw8/97VsboiH1152vsU60hwG2qUm+46nHpf5ksgAS8HBs6v5fGu4agkLI9aWp7D1Adaw eqQgNohOTKbd2zNkEZEHWQlnNV3EyeEw52z9Lb0mDYdvpoH3IQYaOVtdP1pg570oo+k3 80L8oi1aiWYslz6f7wzg4uCjm0I9Q83/OM1MbpQ8cVMPtK+sugy3nUCaOuHRDv7l+ddT TxKg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature:dkim-signature; bh=0smPwgoudJv+t4Wr4hxbv3bovN36UoKjHe4GZE4xal4=; b=BjlsU03aXyGFu763PoTYn/upktqa1/yPz38L+cmqcurLBP2sqk6w20O2F1gKzNlTIQ rdE/X37sCo2fR/VnXe/KT8z2vbmFJPoqIBFa3qmHYsedGIGdCeoW+nkL3NUaj5EC+4Bg z3PKIyZPm8XVS7r+skwAJpvhYWJ8sX+P9qZnvU2w6zf09ZgKR2ADpzQIW3oiQ6dUAZDt 1Bf3BGyMUmcQjo0RVzhkKDYYIuoCJCVjOj2nW2QV0rqnm4smSn47tLpFDP1et4jxTvBt EJlZdMjnTBL/tmTqyF/qW8Xk3iQJJfYOPlrzqS4PTE6r/xAV5qMo1D1rPekARO3pioEo dTog== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=ABYh4HiR; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=oZUsmLyT; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q12-20020a170902eb8c00b0018694b85992si3714765plg.389.2022.11.04.03.48.06; Fri, 04 Nov 2022 03:48:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=ABYh4HiR; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=oZUsmLyT; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231735AbiKDKgq (ORCPT + 96 others); Fri, 4 Nov 2022 06:36:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53254 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230074AbiKDKgn (ORCPT ); Fri, 4 Nov 2022 06:36:43 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5820726139; Fri, 4 Nov 2022 03:36:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1667558199; x=1699094199; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=0smPwgoudJv+t4Wr4hxbv3bovN36UoKjHe4GZE4xal4=; b=ABYh4HiR+jjlV13ey5/YbmS0fzrZ9ipNDHsLzax7fVcjMKOHDbwuqe8t tCACpLnBo72lqD4mW6M9tlpKnMPgbcqQQ14dMd4SEhDO/sx5lDL4LK+Vf Qy04vLSbDG2K0cv/msVGGIsPApeKuC77UXSz195JcE5ZFX3UtTrtKc3MS uvCtCbowzKwFsHhbLprrccRpQcfHAOheVaK4fuSG9wAyz3lBTI/uUWRAK ltGwE2XEkG9309kSQd4BlmPV/vLS+pGuv++eXTvDy+VC2vXFe2N4TlVEU 4Om6CRSSrq3P30WiOmkfYo0KqvWKqv3NkIq3y9nMo+i95AUguE0KvADG/ w==; X-IronPort-AV: E=Sophos;i="5.96,137,1665471600"; d="scan'208";a="198412377" Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa1.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 04 Nov 2022 03:36:38 -0700 Received: from chn-vm-ex01.mchp-main.com (10.10.85.143) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.12; Fri, 4 Nov 2022 03:36:39 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.12 via Frontend Transport; Fri, 4 Nov 2022 03:36:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BDM6AAJyYfis3O93QMmKzpagvkyxI8JYXaEIXdc/Z4cWCzeW7UXUMbHlKIGXpas7hCG/YXyeWD60uwQWFVDm0DLUONoPIWw0AwMqVDYyyxhlNg3XK//Gw9hE66uZ3dPFSiRgPIQcDd2ZCQ6ZkCAC0Xyx5yIhExbkXoOr7k9xff8YPrmmQH50e1+e820U7TnzYdkisvl4To6ePVUvVBGhnr5tj8f9HKJCy1hR60dXbfDlIOqwJNCMIyNpE4J4Pnzfmzg52l4jsjPvipUj2C88JvrMSctDO57JU7FlGL96WjqD3ys0PVFC7Y5Edi33zxrLfOGDq72a12ByIidMRW2Geg== 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=0smPwgoudJv+t4Wr4hxbv3bovN36UoKjHe4GZE4xal4=; b=jqwrRVzn0RViZcKgvCMd9MnwetFI0Fuzkr7X0md5p1F3SGH0HMDJQaPwf15qy0oERE1PBowAHjVMCscmwqJ8Q87cAShzH6HkliS5Qu5Zohw6++Gomj86jsaW2tKgHQ43dXnidKZKXRj99pOx08V/4qsaA/LGZMPHqvR0piE43c5IXkvlgGeErge43wmq4Ndm4JOeBkDTRdFiL6PlcHLKOhQYoahR1SBpjGrivYqfm1C1vTBtF7OufqJvBfQNkLlW8ULNXYbiwbBkeRuIR/Drybxt4WMllhUltxbPDtNQejX6/HxcmTupslO8JYExm9d6wfII9lqluhy3/Gzh+/vFOQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0smPwgoudJv+t4Wr4hxbv3bovN36UoKjHe4GZE4xal4=; b=oZUsmLyTytdW0DPOdlH6nu7kyBCDNrVmM2DD9vk7PfaI9xmEeAg9kLHGJUkBtI8iC60dKWzt2RKGu7H4eDQ1QJvXhBAL/uyhHcqw/Fdnbtp77TxvsxbopGBWdeawO8ScsQbQJNScWYSUtDt/ceLf2Xute+GRMvAIFUZSO/bLAic= Received: from DM5PR11MB0076.namprd11.prod.outlook.com (2603:10b6:4:6b::28) by CY8PR11MB7084.namprd11.prod.outlook.com (2603:10b6:930:50::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Fri, 4 Nov 2022 10:36:33 +0000 Received: from DM5PR11MB0076.namprd11.prod.outlook.com ([fe80::faca:fe8a:e6fa:2d7]) by DM5PR11MB0076.namprd11.prod.outlook.com ([fe80::faca:fe8a:e6fa:2d7%3]) with mapi id 15.20.5769.021; Fri, 4 Nov 2022 10:36:33 +0000 From: To: , CC: , , , , , , , , , , , , , , Subject: Re: [RFC Patch net-next 0/6] net: dsa: microchip: add gPTP support for LAN937x switch Thread-Topic: [RFC Patch net-next 0/6] net: dsa: microchip: add gPTP support for LAN937x switch Thread-Index: AQHY3+HGUZklSl35HUmvWc+BxQ194q4S2WcAgADg2oCAAD73AIAANf6AgAzGaICAAFL9gIAKcQKAgAL5OQA= Date: Fri, 4 Nov 2022 10:36:32 +0000 Message-ID: References: <20221026164753.13866-1-ceggers@arri.de> <20221026214455.3n5f7eqp3duuie22@skbuf> <2219283.iZASKD2KPV@n95hx1g2> In-Reply-To: <2219283.iZASKD2KPV@n95hx1g2> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Evolution 3.28.5-0ubuntu0.18.04.2 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM5PR11MB0076:EE_|CY8PR11MB7084:EE_ x-ms-office365-filtering-correlation-id: 34b31b75-0af4-426a-c9e5-08dabe507112 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Rt8BVnnzve7leBu4e/wDTIiMEXDzsq8SCPWM60/wMSxrZygeg3oZeruebpQrKNBSGBVtr3SsXgzKEzPngfj+Ota0eUuqY1H54jvLASyy9bEvva9Zv44SKRit9/UV9tKQ4E+kSqdoONz0w9cXJNAqmOR6fobyTE/2LW8k3anlCHilpWaEqBwJGQnaBLqhVq7JW2D/s9rLYOAMlVcxn92iQoDsORSdjou0qskrd+To4XdGIQUhp4r0UYaABR7KXW52rW0I9CsgLZ8x8kfPe/KsN22MfF+pvukJ+xMsbBoQG8Yu5JD/PgGAm61b8uV7L0pJmqPtg2nYhMoagiy0FJLn8mSra5DoaWg5MU+w9Fz68z54eqKUlBfrJIxjqrbK6LEczAcrCvxngWuzInAxXhKHSP1gxcp+zsvfFb0KBjqHz+eHWKbddNUWio8y/dBRTCKQZ6IiZ0oojmdiIlB/FgeSxW1cgWnzrpz/CjcSImgx30hCaIjgyU4WdLU2fR3fdiSICYIA9waYQlzWx+yxKFUheRTuCdeID5h3TmeiWbjVCQaj4CnRzy6/xxkkhXV/EvNARGr/XO3vdqsufKx06ZcTRULPEqdw2sMvY/OrsCRNDS2F4GRWyt+ZI0MAaC4EPGoVjGmA+cjbfU1N+ZiQOaQIM8msBwTG1NVj4ufxIJbwQ1xMCFkSiHnB7qJEsenkcOpDezbhkqlSlCeqyELxTWjMtXuTgaLg9roEpJB9GDhrCBs6e1Bd8O4N1k9cAArlvahExUzdyqYPx/At6x5npN6/ahuxgOPyRv1NdU0rxRTNZpk= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR11MB0076.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(39860400002)(346002)(136003)(366004)(396003)(451199015)(38070700005)(86362001)(122000001)(66556008)(30864003)(36756003)(6486002)(76116006)(71200400001)(2906002)(38100700002)(6506007)(7416002)(8676002)(66946007)(54906003)(91956017)(316002)(64756008)(8936002)(66476007)(478600001)(4326008)(41300700001)(5660300002)(26005)(2616005)(66446008)(110136005)(186003)(6512007)(83380400001)(99106002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WXVzYnlBV3lhd3FQMTB1S3dKU2JzUVVDTzdSTzJmY2RsTStWUXhXMWxZbDBO?= =?utf-8?B?V0JSaWpBQ1V4MlRGbXNmNEUyMkpTcWVqc3hSRE15eE1KcWE3djdXVUZKUEJz?= =?utf-8?B?WFRQRDVHQTJncDlnU2pYTmd6YXo3U3l3Y2cyTngyMmpjWldXVkszaGpNeWJt?= =?utf-8?B?bW1nVWR5WlBWbDkzS0N5c29iTzR0T29Hdm84QVZ3VHlqN25EWGk4Tlc3bERU?= =?utf-8?B?THlwWlNkazVsbnBtVGNFUGUyU285SzRzTkVSTFVMS2kvVlR4MkZmdVB0d0NK?= =?utf-8?B?NjBDUjVkZVZ2anRGdHczekUyZk01VHZxRVRLdWxYQWFSSHFERm1XY2tDZzJD?= =?utf-8?B?UnJVZHBLbWRYZ0VHSUZGUTJLUkhJUElXZEh5cHA3OHpQWkVhRlVHNmJVdFRV?= =?utf-8?B?QnFRYzJRbTRUcThSN25yemFsY2pZUS9MY2YwMnFIQWR3NEM3b1lwbGZ0cnhK?= =?utf-8?B?SlFVNDZDTnhaTjRoZ051UE0xREhBSC9ERmRzdVZlVlNoeU9PNTk1ckV5YmJ4?= =?utf-8?B?K3VUamUvVW1NMnBRYVBLVkhNQnpsYUZyelhQeVgvb2tJTXcvYVBRQkRHQ1dS?= =?utf-8?B?Q0JXbzg2MGRUQXl6UHF6a1pRV2hqNFFCZnA1VEN5Wmk5SDIya1JQMUZRYlho?= =?utf-8?B?cE1Cei82aVd2NG5ZdXBreURnK1V3aXFucFpMM1VGci9GL1duVTV2Zm9CcG9O?= =?utf-8?B?UlBYa0FxRDV0eUhTTGZhU0tTU2k2WHJVTFQveHY1QnZYdGlQSGwydzhMclA3?= =?utf-8?B?bnZSOEhhSUszekZRUG9pWUxoOEFmN0Z2b0tpQ0RQUHpKZnBmKzh1T0ZWYzFY?= =?utf-8?B?VEs1N3djSCtBWU1yV1MyeENNUzRSNnQybVRhMGc3Y1dLcU1OaU1rdmNPcFIx?= =?utf-8?B?aTRSOHpWMWlXU0lVdUE0Q1l5MkJwVlFySmtwQkxneHhEM3J5VUZpYjFMYTdN?= =?utf-8?B?QnlpZmFxTWV5eVowMXdiTERhZGtqZWZ5NTFLTVd4a000djVIR0k0aklxVzJY?= =?utf-8?B?WFBEYTdBWmJVUHZNbjhqMWNMcy84UjM1VWFROUZjYjFXZjlDRGlBWVA1eWFQ?= =?utf-8?B?TEVLMU9vY25zbkVYcVIwemg4KzNyeXB3YXo3ckRoMlM4TUpBMzVnZFBvQ1F2?= =?utf-8?B?YVoveWJUUTIzL1VUclFRQ0xxRk5VVkc3WE1YQkNpbHFRZWZSRXdsZzV0KzBz?= =?utf-8?B?T3VlcGJIOElPSlZxRGszbVUybHIvK2V1RTFGZWhPZHV6SGlVSS9zUGlVczdE?= =?utf-8?B?M2Z3U0UvYUxISC8yR3dQeVk4VkFwbzdaTUE1QlFSWlhnUlFidXNvOC9WTDJF?= =?utf-8?B?THRkRXJlbTNSRWRWWklhaFp4VC9SdEFhK0kzYlNybVBZaWdYN0srWnBDdzZx?= =?utf-8?B?RURCSWZVa1BpdTJ6UjNHSEYwcm84YmYyOWkzRHAxa2dadFQ4RWhDeWF2YmZJ?= =?utf-8?B?ZE5LUStmek1JL0dueGpqNXJDeWxZT1Uzb2dTb0RHNTJtNkVBSXRZVzMwVjZI?= =?utf-8?B?TXpkSzkyWWFlMDVTZmhhR1A4by9QaTJIT05JYy9PWDRHbnJZN1RETDNpdXA0?= =?utf-8?B?YWlBamRLdnVDS05aaVlUMzVQRVNhc3dkU09TdDVYd3N4dWNkdlZsTUNQcE80?= =?utf-8?B?VEZVYzlmU0tNRVB1amZtUkpYNlhRbWd2WUJwd3ZqUHNiS3FGMEVQbGM2UEwv?= =?utf-8?B?MWlWV0drWm5BZUlaZWlkZUxwcCs1MTQ5aENhdktEem1wdi9yMUFMRmFGRWpI?= =?utf-8?B?UE5PTDIvRXVmalAvclAzYjFxalBEUjk4YnEyTS85bC9YV2pHTlF2TlZKMks1?= =?utf-8?B?d3h2SXBoL0JHdHRYRjZHUHBPQWgyNTkxY1A3b3JSUit4SzhKUXF5c1BLMVAx?= =?utf-8?B?UlBGK05sUUdlVVVySHdWdlMrMFFEZXVLMFJ3c3VTOW1laDJCWFJVYnNYeCtQ?= =?utf-8?B?M05jTFF2R3V1RDRBY2V5MkI1UmRQL2dQWlhXWnFRdnVGdVVFbzRqQWN4NXpa?= =?utf-8?B?dVZKQTQvd3gyNU1WdVNUY2xmY2lRUkVmdUVpWkNyZWU4eWxHai9iTS9IMDAy?= =?utf-8?B?THU0dy83QUJDWXFxNUV0UDluanFEU1VmaTZuV08vRlExQSsybEdFSHlBTVc2?= =?utf-8?B?cTFvdERLVU56VXFoNS9BWEs3RndSU2xhY0R3alBFNFMzdjFyc0pMdEFLcllV?= =?utf-8?Q?37TSsrlg8goIhB/QbwhtInk=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <525F912EA9BE4B4796BD405F5709306C@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM5PR11MB0076.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 34b31b75-0af4-426a-c9e5-08dabe507112 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2022 10:36:32.9595 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: BEKlMoBKOn56CDe1c86j4cXCnNP4SnXzgr0U5mO37z9cmft05Wo2KYFkSMbYuceyS0uGAJIGe71lg5SREA0Yc/zAU9BI53h6E43KknWQ428= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB7084 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgQ2hyaXN0aWFuLA0KSSB1cGRhdGVkIHRoZSBuX3Blcl9vdXQgY29kZSBhbmQgdGVzdGVkIHdp dGggbGFuOTM3MCBib2FyZCwgaXQgaXMNCndvcmtpbmcgaW4gTEVEXzAgcGluLg0KDQpJcyB0aGVy ZSBhbnkgdGVzdGluZyBwZW5kaW5nIGZyb20geW91ciBzaWRlLiBJZiBubyBjYW4gSSBnZW5lcmF0 ZSBuZXh0DQp2ZXJzaW9uIG9mIHBhdGNoIHdpdGggeW91ciBjaGFuZ2VzIHdoaWNoIHlvdSBzaGFy ZWQgaW4gdGhpcyB0aHJlYWQuDQoNCkF0dGFjaGVkIHRoZSBjb2RlIGZvciByZWZlcmVuY2UNCg0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5oDQpiL2Ry aXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5oDQppbmRleCAzYTY0MGNhNGY3ZTEu LmY2YTFhN2FjZGEwNyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6 X2NvbW1vbi5oDQorKysgYi9kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaA0K QEAgLTQ3Miw2ICs0NzIsMTkgQEAgc3RhdGljIGlubGluZSBpbnQga3N6X3JtdzE2KHN0cnVjdCBr c3pfZGV2aWNlDQoqZGV2LCB1MzIgcmVnLCB1MTYgbWFzaywNCiAJcmV0dXJuIHJldDsNCiB9DQog DQorc3RhdGljIGlubGluZSBpbnQga3N6X3JtdzMyKHN0cnVjdCBrc3pfZGV2aWNlICpkZXYsIHUz MiByZWcsIHUzMiBtYXNrLA0KKwkJCSAgICB1MzIgdmFsdWUpDQorew0KKwlpbnQgcmV0Ow0KKw0K KwlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMoZGV2LT5yZWdtYXBbMl0sIHJlZywgbWFzaywgdmFs dWUpOw0KKwlpZiAocmV0KQ0KKwkJZGV2X2VycihkZXYtPmRldiwgImNhbid0IHJtdyAzMmJpdCBy ZWc6IDB4JXggJXBlXG4iLA0KcmVnLA0KKwkJCUVSUl9QVFIocmV0KSk7DQorDQorCXJldHVybiBy ZXQ7DQorfQ0KKw0KIHN0YXRpYyBpbmxpbmUgaW50IGtzel93cml0ZTY0KHN0cnVjdCBrc3pfZGV2 aWNlICpkZXYsIHUzMiByZWcsIHU2NA0KdmFsdWUpDQogew0KIAl1MzIgdmFsWzJdOw0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X3B0cC5jDQpiL2RyaXZlcnMvbmV0 L2RzYS9taWNyb2NoaXAva3N6X3B0cC5jDQppbmRleCBkMTFhNDkwYTZjODcuLjU0NTI3NzU0YTUw ZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X3B0cC5jDQorKysg Yi9kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9wdHAuYw0KQEAgLTI2LDYgKzI2LDE0NyBA QA0KIA0KICNkZWZpbmUgS1NaX1BUUF9JTlRfU1RBUlQgMTMNCiANCitzdGF0aWMgaW50IGtzel9w dHBfcmVzdGFydF9wZXJvdXQoc3RydWN0IGtzel9kZXZpY2UgKmRldik7DQorDQorc3RhdGljIGlu dCBrc3pfcHRwX3RvdV9ncGlvKHN0cnVjdCBrc3pfZGV2aWNlICpkZXYpDQorew0KKwlpbnQgcmV0 Ow0KKw0KKwkvKiBTZXQgdGhlIExlZCBPdmVycmlkZSByZWdpc3RlciAqLw0KKwlyZXQgPSBrc3pf cm13MzIoZGV2LCBSRUdfU1dfR0xPQkFMX0xFRF9PVlJfXzQsIExFRF9PVlJfMSwNCkxFRF9PVlJf MSk7DQorCWlmIChyZXQpDQorCQlyZXR1cm4gcmV0Ow0KKw0KKwkvKiBTZXQgdGhlIExlZCBTb3Vy Y2UgcmVnaXN0ZXIgKi8NCisJcmV0dXJuIGtzel9ybXczMihkZXYsIFJFR19TV19HTE9CQUxfTEVE X1NSQ19fNCwNCkxFRF9TUkNfUFRQX0dQSU9fMSwNCisJCQkgTEVEX1NSQ19QVFBfR1BJT18xKTsN Cit9DQorDQorLyogU2hhcmVkIHJlZ2lzdGVyIGFjY2VzcyByb3V0aW5lcyAoVHJpZ2dlciBPdXRw dXQgVW5pdCkgKi8NCitzdGF0aWMgaW50IGtzel9wdHBfdG91X3Jlc2V0KHN0cnVjdCBrc3pfZGV2 aWNlICpkZXYsIHVuc2lnbmVkIGludA0KdW5pdCkNCit7DQorCXUzMiBkYXRhOw0KKwlpbnQgcmV0 Ow0KKw0KKwkvKiBSZXNldCB0cmlnZ2VyIHVuaXQgKGNsZWFycyBUUklHR0VSX0VOLCBidXQgbm90 IEdQSU9TVEFUeCkgKi8NCisJcmV0ID0ga3N6X3JtdzMyKGRldiwgUkVHX1BUUF9DVFJMX1NUQVRf XzQsIFRSSUdfUkVTRVQsDQpUUklHX1JFU0VUKTsNCisNCisJLyogQ2xlYXIgRE9ORSAqLw0KKwlk YXRhID0gMSA8PCAodW5pdCArIFRSSUdfRE9ORV9TKTsNCisJcmV0ID0ga3N6X3dyaXRlMzIoZGV2 LCBSRUdfUFRQX1RSSUdfU1RBVFVTX180LCBkYXRhKTsNCisJaWYgKHJldCkNCisJCXJldHVybiBy ZXQ7DQorDQorCS8qIENsZWFyIElSUSAqLw0KKwlkYXRhID0gMSA8PCAodW5pdCArIFRSSUdfSU5U X1MpOw0KKwlyZXQgPSBrc3pfd3JpdGUzMihkZXYsIFJFR19QVFBfSU5UX1NUQVRVU19fNCwgZGF0 YSk7DQorCWlmIChyZXQpDQorCQlyZXR1cm4gcmV0Ow0KKw0KKwkvKiBDbGVhciByZXNldCBhbmQg c2V0IEdQSU8gZGlyZWN0aW9uICovDQorCXJldHVybiBrc3pfcm13MzIoZGV2LCBSRUdfUFRQX0NU UkxfU1RBVF9fNCwgKFRSSUdfUkVTRVQgfA0KVFJJR19FTkFCTEUpLA0KKwkJCSAwKTsNCit9DQor DQorc3RhdGljIGludCBrc3pfcHRwX3RvdV9jeWNsZV93aWR0aF9zZXQoc3RydWN0IGtzel9kZXZp Y2UgKmRldiwgdTMyDQp3aWR0aF9ucykNCit7DQorCWludCByZXQ7DQorDQorCXJldCA9IGtzel93 cml0ZTMyKGRldiwgUkVHX1RSSUdfQ1lDTEVfV0lEVEgsIHdpZHRoX25zKTsNCisJaWYgKHJldCkN CisJCXJldHVybiByZXQ7DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgaW50IGtzel9w dHBfdG91X2N5Y2xlX2NvdW50X3NldChzdHJ1Y3Qga3N6X2RldmljZSAqZGV2LCB1MTYNCmNvdW50 KQ0KK3sNCisJdTMyIGRhdGE7DQorCWludCByZXQ7DQorDQorCXJldCA9IGtzel9yZWFkMzIoZGV2 LCBSRUdfVFJJR19DWUNMRV9DTlQsICZkYXRhKTsNCisJaWYgKHJldCkNCisJCXJldHVybiByZXQ7 DQorDQorCWRhdGEgJj0gfihUUklHX0NZQ0xFX0NOVF9NIDw8IFRSSUdfQ1lDTEVfQ05UX1MpOw0K KwlkYXRhIHw9IChjb3VudCAmIFRSSUdfQ1lDTEVfQ05UX00pIDw8IFRSSUdfQ1lDTEVfQ05UX1M7 DQorDQorCXJldCA9IGtzel93cml0ZTMyKGRldiwgUkVHX1RSSUdfQ1lDTEVfQ05ULCBkYXRhKTsN CisJaWYgKHJldCkNCisJCXJldHVybiByZXQ7DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0 aWMgaW50IGtzel9wdHBfdG91X3B1bHNlX3ZlcmlmeSh1NjQgcHVsc2VfbnMpDQorew0KKwl1MzIg ZGF0YTsNCisNCisJaWYgKHB1bHNlX25zICYgMHgzKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQor CWRhdGEgPSAocHVsc2VfbnMgLyA4KTsNCisJaWYgKGRhdGEgIT0gKGRhdGEgJiBUUklHX1BVTFNF X1dJRFRIX00pKQ0KKwkJcmV0dXJuIC1FUkFOR0U7DQorDQorCXJldHVybiAwOw0KK30NCisNCitz dGF0aWMgaW50IGtzel9wdHBfdG91X3B1bHNlX3NldChzdHJ1Y3Qga3N6X2RldmljZSAqZGV2LCB1 MzIgcHVsc2VfbnMpDQorew0KKwl1MzIgZGF0YTsNCisNCisJZGF0YSA9IChwdWxzZV9ucyAvIDgp Ow0KKw0KKwlyZXR1cm4ga3N6X3dyaXRlMzIoZGV2LCBSRUdfVFJJR19QVUxTRV9XSURUSF9fNCwg ZGF0YSk7DQorfQ0KKw0KK3N0YXRpYyBpbnQga3N6X3B0cF90b3VfdGFyZ2V0X3RpbWVfc2V0KHN0 cnVjdCBrc3pfZGV2aWNlICpkZXYsDQorCQkJCSAgICAgICBzdHJ1Y3QgdGltZXNwZWM2NCBjb25z dCAqdHMpDQorew0KKwlpbnQgcmV0Ow0KKw0KKwkvKiBIYXJkd2FyZSBoYXMgb25seSAzMiBiaXQg Ki8NCisJaWYgKCh0cy0+dHZfc2VjICYgMHhmZmZmZmZmZikgIT0gdHMtPnR2X3NlYykNCisJCXJl dHVybiAtRUlOVkFMOw0KKw0KKwlyZXQgPSBrc3pfd3JpdGUzMihkZXYsIFJFR19UUklHX1RBUkdF VF9OQU5PU0VDLCB0cy0+dHZfbnNlYyk7DQorCWlmIChyZXQpDQorCQlyZXR1cm4gcmV0Ow0KKw0K KwlyZXQgPSBrc3pfd3JpdGUzMihkZXYsIFJFR19UUklHX1RBUkdFVF9TRUMsIHRzLT50dl9zZWMp Ow0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJldDsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0 YXRpYyBpbnQga3N6X3B0cF90b3Vfc3RhcnQoc3RydWN0IGtzel9kZXZpY2UgKmRldiwgdTMyICpj dHJsX3N0YXRfKQ0KK3sNCisJdTMyIGN0cmxfc3RhdDsNCisJaW50IHJldDsNCisNCisJLyogQ29u ZmlndXJlIEdQSU8gcGlucyAqLw0KKwlyZXQgPSBrc3pfcHRwX3RvdV9ncGlvKGRldik7DQorCWlm IChyZXQpDQorCQlyZXR1cm4gcmV0Ow0KKw0KKwlyZXQgPSBrc3pfcmVhZDMyKGRldiwgUkVHX1BU UF9DVFJMX1NUQVRfXzQsICZjdHJsX3N0YXQpOw0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJldDsN CisNCisJY3RybF9zdGF0IHw9IChUUklHX0VOQUJMRSB8IEdQSU9fT1VUKTsNCisNCisJcmV0ID0g a3N6X3dyaXRlMzIoZGV2LCBSRUdfUFRQX0NUUkxfU1RBVF9fNCwgY3RybF9zdGF0KTsNCisJaWYg KHJldCkNCisJCXJldHVybiByZXQ7DQorDQorCWlmIChjdHJsX3N0YXRfKQ0KKwkJKmN0cmxfc3Rh dF8gPSBjdHJsX3N0YXQ7DQorDQorCXJldHVybiAwOw0KK30NCisNCiBzdGF0aWMgaW50IGtzel9w dHBfZW5hYmxlX21vZGUoc3RydWN0IGtzel9kZXZpY2UgKmRldiwgYm9vbCBlbmFibGUpDQogew0K IAlzdHJ1Y3Qga3N6X3B0cF9kYXRhICpwdHBfZGF0YSA9ICZkZXYtPnB0cF9kYXRhOw0KQEAgLTI3 Nyw2ICs0MTgsMjAgQEAgc3RhdGljIGludCBrc3pfcHRwX3NldHRpbWUoc3RydWN0IHB0cF9jbG9j a19pbmZvDQoqcHRwLA0KIAkvKiBMb2FkIFBUUCBjbG9jayBmcm9tIHNoYWRvdyByZWdpc3RlcnMg Ki8NCiAJcmV0ID0ga3N6X3JtdzE2KGRldiwgUkVHX1BUUF9DTEtfQ1RSTCwgUFRQX0xPQURfVElN RSwNClBUUF9MT0FEX1RJTUUpOw0KIA0KKwlzd2l0Y2ggKHB0cF9kYXRhLT50b3VfbW9kZSkgew0K KwljYXNlIEtTWl9QVFBfVE9VX0lETEU6DQorCQlicmVhazsNCisNCisJY2FzZSBLU1pfUFRQX1RP VV9QRVJPVVQ6DQorCQlkZXZfaW5mbyhkZXYtPmRldiwgIlJlc3RhcnRpbmcgcGVyaW9kaWMgb3V0 cHV0DQpzaWduYWxcbiIpOw0KKw0KKwkJcmV0ID0ga3N6X3B0cF9yZXN0YXJ0X3Blcm91dChkZXYp Ow0KKwkJaWYgKHJldCkNCisJCQlnb3RvIGVycm9yX3JldHVybjsNCisNCisJCWJyZWFrOw0KKwl9 DQorDQogCXNwaW5fbG9ja19iaCgmcHRwX2RhdGEtPmNsb2NrX2xvY2spOw0KIAlwdHBfZGF0YS0+ Y2xvY2tfdGltZSA9ICp0czsNCiAJc3Bpbl91bmxvY2tfYmgoJnB0cF9kYXRhLT5jbG9ja19sb2Nr KTsNCkBAIC0zNjgsNiArNTIzLDIwIEBAIHN0YXRpYyBpbnQga3N6X3B0cF9hZGp0aW1lKHN0cnVj dCBwdHBfY2xvY2tfaW5mbw0KKnB0cCwgczY0IGRlbHRhKQ0KIA0KIAlyZXQgPSBrc3pfd3JpdGUx NihkZXYsIFJFR19QVFBfQ0xLX0NUUkwsIGRhdGExNik7DQogDQorCXN3aXRjaCAocHRwX2RhdGEt PnRvdV9tb2RlKSB7DQorCWNhc2UgS1NaX1BUUF9UT1VfSURMRToNCisJCWJyZWFrOw0KKw0KKwlj YXNlIEtTWl9QVFBfVE9VX1BFUk9VVDoNCisJCWRldl9pbmZvKGRldi0+ZGV2LCAiUmVzdGFydGlu ZyBwZXJpb2RpYyBvdXRwdXQNCnNpZ25hbFxuIik7DQorDQorCQlyZXQgPSBrc3pfcHRwX3Jlc3Rh cnRfcGVyb3V0KGRldik7DQorCQlpZiAocmV0KQ0KKwkJCWdvdG8gZXJyb3JfcmV0dXJuOw0KKw0K KwkJYnJlYWs7DQorCX0NCisNCiAJc3Bpbl9sb2NrX2JoKCZwdHBfZGF0YS0+Y2xvY2tfbG9jayk7 DQogCXB0cF9kYXRhLT5jbG9ja190aW1lID0gdGltZXNwZWM2NF9hZGQocHRwX2RhdGEtPmNsb2Nr X3RpbWUsDQpkZWx0YTY0KTsNCiAJc3Bpbl91bmxvY2tfYmgoJnB0cF9kYXRhLT5jbG9ja19sb2Nr KTsNCkBAIC0zNzcsNiArNTQ2LDIwMSBAQCBzdGF0aWMgaW50IGtzel9wdHBfYWRqdGltZShzdHJ1 Y3QgcHRwX2Nsb2NrX2luZm8NCipwdHAsIHM2NCBkZWx0YSkNCiAJcmV0dXJuIHJldDsNCiB9DQog DQorc3RhdGljIGludCBrc3pfcHRwX2NvbmZpZ3VyZV9wZXJvdXQoc3RydWN0IGtzel9kZXZpY2Ug KmRldiwNCisJCQkJICAgIHUzMiBjeWNsZV93aWR0aF9ucywgdTE2DQpjeWNsZV9jb3VudCwNCisJ CQkJICAgIHUzMiBwdWxzZV93aWR0aF9ucywNCisJCQkJICAgIHN0cnVjdCB0aW1lc3BlYzY0IGNv bnN0DQoqdGFyZ2V0X3RpbWUpDQorew0KKwl1MzIgdHJpZ19jdHJsOw0KKwlpbnQgcmV0Ow0KKw0K KwkvKiBFbmFibGUgbm90aWZ5LCBzZXQgcmlzaW5nIGVkZ2UsIHNldCBwZXJpb2RpYyBwYXR0ZXJu ICovDQorCXRyaWdfY3RybCA9IFRSSUdfTk9USUZZIHwgKFRSSUdfUE9TX1BFUklPRCA8PCBUUklH X1BBVFRFUk5fUyk7DQorCXJldCA9IGtzel93cml0ZTMyKGRldiwgUkVHX1RSSUdfQ1RSTF9fNCwg dHJpZ19jdHJsKTsNCisJaWYgKHJldCkNCisJCXJldHVybiByZXQ7DQorDQorCXJldCA9IGtzel9w dHBfdG91X2N5Y2xlX3dpZHRoX3NldChkZXYsIGN5Y2xlX3dpZHRoX25zKTsNCisJaWYgKHJldCkN CisJCXJldHVybiByZXQ7DQorDQorCWtzel9wdHBfdG91X2N5Y2xlX2NvdW50X3NldChkZXYsIGN5 Y2xlX2NvdW50KTsNCisJaWYgKHJldCkNCisJCXJldHVybiByZXQ7DQorDQorCXJldCA9IGtzel9w dHBfdG91X3B1bHNlX3NldChkZXYsIHB1bHNlX3dpZHRoX25zKTsNCisJaWYgKHJldCkNCisJCXJl dHVybiByZXQ7DQorDQorCXJldCA9IGtzel9wdHBfdG91X3RhcmdldF90aW1lX3NldChkZXYsIHRh cmdldF90aW1lKTsNCisJaWYgKHJldCkNCisJCXJldHVybiByZXQ7DQorDQorCXJldHVybiAwOw0K K30NCisNCisjZGVmaW5lIEtTWl9QRVJPVVRfVkFMSURfRkxBR1MgKCBcDQorCQkJCSBQVFBfUEVS T1VUX0RVVFlfQ1lDTEUgXA0KKwkJCQkgKQ0KKw0KK3N0YXRpYyBpbnQga3N6X3B0cF9lbmFibGVf cGVyb3V0KHN0cnVjdCBrc3pfZGV2aWNlICpkZXYsDQorCQkJCSBzdHJ1Y3QgcHRwX3Blcm91dF9y ZXF1ZXN0IGNvbnN0DQoqcGVyb3V0X3JlcXVlc3QsDQorCQkJCSBpbnQgb24pDQorew0KKwlzdHJ1 Y3Qga3N6X3B0cF9kYXRhICpwdHBfZGF0YSA9ICZkZXYtPnB0cF9kYXRhOw0KKwl1NjQgY3ljbGVf d2lkdGhfbnM7DQorCXU2NCBwdWxzZV93aWR0aF9uczsNCisJdTMyIGdwaW9fc3RhdDA7DQorCWlu dCByZXQ7DQorDQorCWlmIChwZXJvdXRfcmVxdWVzdC0+ZmxhZ3MgJiB+S1NaX1BFUk9VVF9WQUxJ RF9GTEFHUykNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwlpZiAocHRwX2RhdGEtPnRvdV9tb2Rl ICE9IEtTWl9QVFBfVE9VX1BFUk9VVCAmJg0KKwkgICAgcHRwX2RhdGEtPnRvdV9tb2RlICE9IEtT Wl9QVFBfVE9VX0lETEUpDQorCQlyZXR1cm4gLUVCVVNZOw0KKw0KKwlyZXQgPSBrc3pfcHRwX3Rv dV9yZXNldChkZXYsIDApOw0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJldDsNCisNCisJaWYgKCFv bikgew0KKwkJcHRwX2RhdGEtPnRvdV9tb2RlID0gS1NaX1BUUF9UT1VfSURMRTsNCisJCXJldHVy biAwOyAgLyogc3VjY2VzcyAqLw0KKwl9DQorDQorCXB0cF9kYXRhLT5wZXJvdXRfdGFyZ2V0X3Rp bWVfZmlyc3QudHZfc2VjICA9IHBlcm91dF9yZXF1ZXN0LQ0KPnN0YXJ0LnNlYzsNCisJcHRwX2Rh dGEtPnBlcm91dF90YXJnZXRfdGltZV9maXJzdC50dl9uc2VjID0gcGVyb3V0X3JlcXVlc3QtDQo+ c3RhcnQubnNlYzsNCisNCisJcHRwX2RhdGEtPnBlcm91dF9wZXJpb2QudHZfc2VjID0gcGVyb3V0 X3JlcXVlc3QtPnBlcmlvZC5zZWM7DQorCXB0cF9kYXRhLT5wZXJvdXRfcGVyaW9kLnR2X25zZWMg PSBwZXJvdXRfcmVxdWVzdC0+cGVyaW9kLm5zZWM7DQorDQorCWN5Y2xlX3dpZHRoX25zID0gdGlt ZXNwZWM2NF90b19ucygmcHRwX2RhdGEtPnBlcm91dF9wZXJpb2QpOw0KKwlpZiAoKGN5Y2xlX3dp ZHRoX25zICYgR0VOTUFTSygzMSwgMCkpICE9IGN5Y2xlX3dpZHRoX25zKQ0KKwkJcmV0dXJuIC1F SU5WQUw7DQorDQorCWlmIChwZXJvdXRfcmVxdWVzdC0+ZmxhZ3MgJiBQVFBfUEVST1VUX0RVVFlf Q1lDTEUpDQorCQlwdWxzZV93aWR0aF9ucyA9IHBlcm91dF9yZXF1ZXN0LT5vbi5zZWMgKiBOU0VD X1BFUl9TRUMNCisNCisJCQlwZXJvdXRfcmVxdWVzdC0+b24ubnNlYzsNCisNCisJZWxzZQ0KKwkJ LyogVXNlIGEgZHV0eSBjeWNsZSBvZiA1MCUuIE1heGltdW0gcHVsc2Ugd2lkdGgNCnN1cHBvcnRl ZCBieSB0aGUNCisJCSAqIGhhcmR3YXJlIGlzIGEgbGl0dGxlIGJpdCBtb3JlIHRoYW4gMTI1IG1z Lg0KKwkJICovDQorCQlwdWxzZV93aWR0aF9ucyA9IG1pbl90KHU2NCwNCisJCQkJICAgICAgIChw ZXJvdXRfcmVxdWVzdC0+cGVyaW9kLnNlYyAqDQpOU0VDX1BFUl9TRUMNCisJCQkJCSsgcGVyb3V0 X3JlcXVlc3QtPnBlcmlvZC5uc2VjKQ0KLyAyDQorCQkJCSAgICAgICAvIDggKiA4LA0KKwkJCQkg ICAgICAgMTI1MDAwMDAwTEwpOw0KKw0KKwlyZXQgPSBrc3pfcHRwX3RvdV9wdWxzZV92ZXJpZnko cHVsc2Vfd2lkdGhfbnMpOw0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJldDsNCisNCisJcmV0ID0g a3N6X3B0cF9jb25maWd1cmVfcGVyb3V0KGRldiwgY3ljbGVfd2lkdGhfbnMsDQorCQkJCSAgICAg ICAwLA0KKwkJCQkgICAgICAgcHVsc2Vfd2lkdGhfbnMsDQorCQkJCSAgICAgICAmcHRwX2RhdGEt DQo+cGVyb3V0X3RhcmdldF90aW1lX2ZpcnN0KTsNCisJaWYgKHJldCkNCisJCXJldHVybiByZXQ7 DQorDQorCS8qIEFjdGl2YXRlIHRyaWdnZXIgdW5pdCAqLw0KKwlyZXQgPSBrc3pfcHRwX3RvdV9z dGFydChkZXYsIE5VTEwpOw0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJldDsNCisNCisJLyogQ2hl Y2sgZXJyb3IgZmxhZzoNCisJICogLSB0aGUgQUNUSVZFIGZsYWcgaXMgTk9UIGNsZWFyZWQgYW4g ZXJyb3IhDQorCSAqLw0KKwlyZXQgPSBrc3pfcmVhZDMyKGRldiwgUkVHX1BUUF9UUklHX1NUQVRV U19fNCwgJmdwaW9fc3RhdDApOw0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJldDsNCisNCisJaWYg KGdwaW9fc3RhdDAgJiAoMSA8PCAoMCArIFRSSUdfRVJST1JfUykpKSB7DQorCQlkZXZfZXJyKGRl di0+ZGV2LCAiJXM6IFRyaWdnZXIgdW5pdDAgZXJyb3IhXG4iLA0KX19mdW5jX18pOw0KKwkJcmV0 ID0gLUVJTzsNCisJCS8qIFVuaXQgd2lsbCBiZSByZXNldCBvbiBuZXh0IGFjY2VzcyAqLw0KKwkJ cmV0dXJuIHJldDsNCisJfQ0KKw0KKwlwdHBfZGF0YS0+dG91X21vZGUgPSBLU1pfUFRQX1RPVV9Q RVJPVVQ7DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgaW50IGtzel9wdHBfcmVzdGFy dF9wZXJvdXQoc3RydWN0IGtzel9kZXZpY2UgKmRldikNCit7DQorCXN0cnVjdCBrc3pfcHRwX2Rh dGEgKnB0cF9kYXRhID0gJmRldi0+cHRwX2RhdGE7DQorCXM2NCBub3dfbnMsIGZpcnN0X25zLCBw ZXJpb2RfbnMsIG5leHRfbnM7DQorCXN0cnVjdCB0aW1lc3BlYzY0IG5vdzsNCisJdW5zaWduZWQg aW50IGNvdW50Ow0KKwlpbnQgcmV0Ow0KKw0KKwlyZXQgPSBfa3N6X3B0cF9nZXR0aW1lKGRldiwg Jm5vdyk7DQorCWlmIChyZXQpDQorCQlyZXR1cm4gcmV0Ow0KKw0KKwlub3dfbnMgPSB0aW1lc3Bl YzY0X3RvX25zKCZub3cpOw0KKwlmaXJzdF9ucyA9IHRpbWVzcGVjNjRfdG9fbnMoJnB0cF9kYXRh LQ0KPnBlcm91dF90YXJnZXRfdGltZV9maXJzdCk7DQorDQorCS8qIENhbGN1bGF0ZSBuZXh0IHBl cm91dCBldmVudCBiYXNlZCBvbiBzdGFydCB0aW1lIGFuZCBwZXJpb2QNCiovDQorCXBlcmlvZF9u cyA9IHRpbWVzcGVjNjRfdG9fbnMoJnB0cF9kYXRhLT5wZXJvdXRfcGVyaW9kKTsNCisNCisJaWYg KGZpcnN0X25zIDwgbm93X25zKSB7DQorCQljb3VudCA9IGRpdl91NjQobm93X25zIC0gZmlyc3Rf bnMsIHBlcmlvZF9ucyk7DQorCQluZXh0X25zID0gZmlyc3RfbnMgKyBjb3VudCAqIHBlcmlvZF9u czsNCisJfSBlbHNlIHsNCisJCW5leHRfbnMgPSBmaXJzdF9uczsNCisJfQ0KKw0KKwkvKiBFbnN1 cmUgMTAwIG1zIGd1YXJkIHRpbWUgcHJpb3IgbmV4dCBldmVudCAqLw0KKwl3aGlsZSAobmV4dF9u cyA8IG5vd19ucyArIDEwMDAwMDAwMCkNCisJCW5leHRfbnMgKz0gcGVyaW9kX25zOw0KKw0KKwkv KiBSZXN0YXJ0IHBlcmlvZGljIG91dHB1dCBzaWduYWwgKi8NCisJew0KKwkJc3RydWN0IHRpbWVz cGVjNjQgbmV4dCA9IG5zX3RvX3RpbWVzcGVjNjQobmV4dF9ucyk7DQorCQlzdHJ1Y3QgcHRwX3Bl cm91dF9yZXF1ZXN0IHBlcm91dF9yZXF1ZXN0ID0gew0KKwkJCS5zdGFydCA9IHsNCisJCQkJLnNl YyAgPSBuZXh0LnR2X3NlYywNCisJCQkJLm5zZWMgPSBuZXh0LnR2X25zZWMNCisJCQl9LA0KKwkJ CS5wZXJpb2QgPSB7DQorCQkJCS5zZWMgID0gcHRwX2RhdGEtPnBlcm91dF9wZXJpb2QudHZfc2Vj LA0KKwkJCQkubnNlYyA9IHB0cF9kYXRhLT5wZXJvdXRfcGVyaW9kLnR2X25zZWMNCisJCQl9LA0K KwkJCS5pbmRleCA9IDAsDQorCQkJLmZsYWdzID0gMCwgIC8qIGtlZXAgY3VycmVudCB2YWx1ZXMg Ki8NCisJCX07DQorCQlyZXQgPSBrc3pfcHRwX2VuYWJsZV9wZXJvdXQoZGV2LCAmcGVyb3V0X3Jl cXVlc3QsIDEpOw0KKwkJaWYgKHJldCkNCisJCQlyZXR1cm4gcmV0Ow0KKwl9DQorDQorCXJldHVy biAwOw0KK30NCisNCitzdGF0aWMgaW50IGtzel9wdHBfZW5hYmxlKHN0cnVjdCBwdHBfY2xvY2tf aW5mbyAqcHRwLA0KKwkJCSAgc3RydWN0IHB0cF9jbG9ja19yZXF1ZXN0ICpyZXEsIGludCBvbikN Cit7DQorCXN0cnVjdCBrc3pfcHRwX2RhdGEgKnB0cF9kYXRhID0gcHRwX2NhcHNfdG9fZGF0YShw dHApOw0KKwlzdHJ1Y3Qga3N6X2RldmljZSAqZGV2ID0gcHRwX2RhdGFfdG9fa3N6X2RldihwdHBf ZGF0YSk7DQorCXN0cnVjdCBwdHBfcGVyb3V0X3JlcXVlc3QgKnBlcm91dF9yZXF1ZXN0ID0gJnJl cS0+cGVyb3V0Ow0KKwlpbnQgcmV0Ow0KKw0KKwlzd2l0Y2ggKHJlcS0+dHlwZSkgew0KKwljYXNl IFBUUF9DTEtfUkVRX1BFUk9VVDoNCisJCW11dGV4X2xvY2soJnB0cF9kYXRhLT5sb2NrKTsNCisJ CXJldCA9IGtzel9wdHBfZW5hYmxlX3Blcm91dChkZXYsIHBlcm91dF9yZXF1ZXN0LCBvbik7DQor CQltdXRleF91bmxvY2soJnB0cF9kYXRhLT5sb2NrKTsNCisJCWJyZWFrOw0KKwlkZWZhdWx0Og0K KwkJcmV0dXJuIC1FSU5WQUw7DQorCX0NCisNCisJcmV0dXJuIHJldDsNCit9DQorDQogLyogIEZ1 bmN0aW9uIGlzIHBvaW50ZXIgdG8gdGhlIGRvX2F1eF93b3JrIGluIHRoZSBwdHBfY2xvY2sgY2Fw YWJpbGl0eQ0KKi8NCiBzdGF0aWMgbG9uZyBrc3pfcHRwX2RvX2F1eF93b3JrKHN0cnVjdCBwdHBf Y2xvY2tfaW5mbyAqcHRwKQ0KIHsNCkBAIC00ODksNiArODUzLDggQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBwdHBfY2xvY2tfaW5mbyBrc3pfcHRwX2NhcHMgPSB7DQogCS5hZGpmaW5lCT0ga3N6X3B0 cF9hZGpmaW5lLA0KIAkuYWRqdGltZQk9IGtzel9wdHBfYWRqdGltZSwNCiAJLmRvX2F1eF93b3Jr CT0ga3N6X3B0cF9kb19hdXhfd29yaywNCisJLmVuYWJsZQkJPSBrc3pfcHRwX2VuYWJsZSwNCisJ Lm5fcGVyX291dAk9IDEsDQogfTsNCiANCiBpbnQga3N6X3B0cF9jbG9ja19yZWdpc3RlcihzdHJ1 Y3QgZHNhX3N3aXRjaCAqZHMpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hp cC9rc3pfcHRwLmgNCmIvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfcHRwLmgNCmluZGV4 IGIyMDM1YTBiY2JiMi4uMTYwYzA1ZTU3M2JkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZHNh L21pY3JvY2hpcC9rc3pfcHRwLmgNCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6 X3B0cC5oDQpAQCAtOCw2ICs4LDExIEBADQogDQogI2lmIElTX0VOQUJMRUQoQ09ORklHX05FVF9E U0FfTUlDUk9DSElQX0tTWl9QVFApDQogDQorZW51bSBrc3pfcHRwX3RvdV9tb2RlIHsNCisJS1Na X1BUUF9UT1VfSURMRSwNCisJS1NaX1BUUF9UT1VfUEVST1VULA0KK307DQorDQogc3RydWN0IGtz el9wdHBfZGF0YSB7DQogCXN0cnVjdCBwdHBfY2xvY2tfaW5mbyBjYXBzOw0KIAlzdHJ1Y3QgcHRw X2Nsb2NrICpjbG9jazsNCkBAIC0xOCw2ICsyMyw5IEBAIHN0cnVjdCBrc3pfcHRwX2RhdGEgew0K IAkvKiBsb2NrIGZvciBhY2Nlc3NpbmcgdGhlIGNsb2NrX3RpbWUgKi8NCiAJc3BpbmxvY2tfdCBj bG9ja19sb2NrOw0KIAlzdHJ1Y3QgdGltZXNwZWM2NCBjbG9ja190aW1lOw0KKwllbnVtIGtzel9w dHBfdG91X21vZGUgdG91X21vZGU7DQorCXN0cnVjdCB0aW1lc3BlYzY0IHBlcm91dF90YXJnZXRf dGltZV9maXJzdDsgIC8qIHN0YXJ0IG9mIGZpcnN0DQpwZXJvdXQgcHVsc2UgKi8NCisJc3RydWN0 IHRpbWVzcGVjNjQgcGVyb3V0X3BlcmlvZDsNCiB9Ow0KIA0KIGludCBrc3pfcHRwX2Nsb2NrX3Jl Z2lzdGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZHNhL21pY3JvY2hpcC9rc3pfcHRwX3JlZy5oDQpiL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAv a3N6X3B0cF9yZWcuaA0KaW5kZXggMmFlNmM4YjAxYjAwLi4wZjM5MWEwMWE3ZjcgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9wdHBfcmVnLmgNCisrKyBiL2RyaXZl cnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X3B0cF9yZWcuaA0KQEAgLTMsNiArMywxNCBAQA0KICAq IENvcHlyaWdodCAoQykgMjAxOS0yMDIxIE1pY3JvY2hpcCBUZWNobm9sb2d5IEluYy4NCiAgKi8N CiANCisjZGVmaW5lIFJFR19TV19HTE9CQUxfTEVEX09WUl9fNAkweDAxMjANCisjZGVmaW5lIExF RF9PVlJfMgkJCUJJVCgxKQ0KKyNkZWZpbmUgTEVEX09WUl8xCQkJQklUKDApDQorDQorI2RlZmlu ZSBSRUdfU1dfR0xPQkFMX0xFRF9TUkNfXzQJMHgwMTI4DQorI2RlZmluZSBMRURfU1JDX1BUUF9H UElPXzEJCUJJVCgzKQ0KKyNkZWZpbmUgTEVEX1NSQ19QVFBfR1BJT18yCQlCSVQoMikNCisNCiAv KiA1IC0gUFRQIENsb2NrICovDQogI2RlZmluZSBSRUdfUFRQX0NMS19DVFJMCQkweDA1MDANCiAN CkBAIC01MSw2ICs1OSw3NyBAQA0KICNkZWZpbmUgUFRQX01BU1RFUgkJCUJJVCgxKQ0KICNkZWZp bmUgUFRQXzFTVEVQCQkJQklUKDApDQogDQorI2RlZmluZSBSRUdfUFRQX1VOSVRfSU5ERVhfXzQg ICAgICAgICAgMHgwNTIwDQorDQorI2RlZmluZSBQVFBfVU5JVF9NICAgICAgICAgICAgICAgICAg ICAgMHhGDQorDQorI2RlZmluZSBQVFBfR1BJT19JTkRFWF9TICAgICAgICAgICAgICAgMTYNCisj ZGVmaW5lIFBUUF9UU0lfSU5ERVhfUyAgICAgICAgICAgICAgICA4DQorI2RlZmluZSBQVFBfVE9V X0lOREVYX1MgICAgICAgICAgICAgICAgMA0KKw0KKyNkZWZpbmUgUkVHX1BUUF9UUklHX1NUQVRV U19fNAkJMHgwNTI0DQorDQorI2RlZmluZSBUUklHX0VSUk9SX1MJCQkxNg0KKyNkZWZpbmUgVFJJ R19ET05FX1MJCQkwDQorDQorI2RlZmluZSBSRUdfUFRQX0lOVF9TVEFUVVNfXzQJCTB4MDUyOA0K Kw0KKyNkZWZpbmUgVFJJR19JTlRfUwkJCTE2DQorI2RlZmluZSBUU19JTlRfUwkJCTANCisNCisj ZGVmaW5lIFRSSUdfVU5JVF9NCQkJMHg3DQorI2RlZmluZSBUU19VTklUX00JCQkweDMNCisNCisj ZGVmaW5lIFJFR19QVFBfQ1RSTF9TVEFUX180ICAgICAgICAgICAweDA1MkMNCisNCisjZGVmaW5l IEdQSU9fSU4gICAgICAgICAgICAgICAgICAgICAgICBCSVQoNykNCisjZGVmaW5lIEdQSU9fT1VU ICAgICAgICAgICAgICAgICAgICAgICBCSVQoNikNCisjZGVmaW5lIFRTX0lOVF9FTkFCTEUgICAg ICAgICAgICAgICAgICBCSVQoNSkNCisjZGVmaW5lIFRSSUdfQUNUSVZFICAgICAgICAgICAgICAg ICAgICBCSVQoNCkNCisjZGVmaW5lIFRSSUdfRU5BQkxFICAgICAgICAgICAgICAgICAgICBCSVQo MykNCisjZGVmaW5lIFRSSUdfUkVTRVQgICAgICAgICAgICAgICAgICAgICBCSVQoMikNCisjZGVm aW5lIFRTX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICBCSVQoMSkNCisjZGVmaW5lIFRTX1JF U0VUICAgICAgICAgICAgICAgICAgICAgICBCSVQoMCkNCisNCisjZGVmaW5lIFJFR19UUklHX1RB UkdFVF9OQU5PU0VDICAgICAgICAweDA1MzANCisjZGVmaW5lIFJFR19UUklHX1RBUkdFVF9TRUMg ICAgICAgICAgICAweDA1MzQNCisNCisjZGVmaW5lIFJFR19UUklHX0NUUkxfXzQgICAgICAgICAg ICAgICAweDA1MzgNCisNCisjZGVmaW5lIFRSSUdfQ0FTQ0FERV9FTkFCTEUgICAgICAgICAgICBC SVQoMzEpDQorI2RlZmluZSBUUklHX0NBU0NBREVfVEFJTCAgICAgICAgICAgICAgQklUKDMwKQ0K KyNkZWZpbmUgVFJJR19DQVNDQURFX1VQU19NICAgICAgICAgICAgIDB4Rg0KKyNkZWZpbmUgVFJJ R19DQVNDQURFX1VQU19TICAgICAgICAgICAgIDI2DQorI2RlZmluZSBUUklHX05PVyAgICAgICAg ICAgICAgICAgICAgICAgQklUKDI1KQ0KKyNkZWZpbmUgVFJJR19OT1RJRlkgICAgICAgICAgICAg ICAgICAgIEJJVCgyNCkNCisjZGVmaW5lIFRSSUdfRURHRSAgICAgICAgICAgICAgICAgICAgICBC SVQoMjMpDQorI2RlZmluZSBUUklHX1BBVFRFUk5fUyAgICAgICAgICAgICAgICAgMjANCisjZGVm aW5lIFRSSUdfUEFUVEVSTl9NICAgICAgICAgICAgICAgICAweDcNCisjZGVmaW5lIFRSSUdfTkVH X0VER0UgICAgICAgICAgICAgICAgICAwDQorI2RlZmluZSBUUklHX1BPU19FREdFICAgICAgICAg ICAgICAgICAgMQ0KKyNkZWZpbmUgVFJJR19ORUdfUFVMU0UgICAgICAgICAgICAgICAgIDINCisj ZGVmaW5lIFRSSUdfUE9TX1BVTFNFICAgICAgICAgICAgICAgICAzDQorI2RlZmluZSBUUklHX05F R19QRVJJT0QgICAgICAgICAgICAgICAgNA0KKyNkZWZpbmUgVFJJR19QT1NfUEVSSU9EICAgICAg ICAgICAgICAgIDUNCisjZGVmaW5lIFRSSUdfUkVHX09VVFBVVCAgICAgICAgICAgICAgICA2DQor I2RlZmluZSBUUklHX0dQT19TICAgICAgICAgICAgICAgICAgICAgMTYNCisjZGVmaW5lIFRSSUdf R1BPX00gICAgICAgICAgICAgICAgICAgICAweEYNCisjZGVmaW5lIFRSSUdfQ0FTQ0FERV9JVEVS QVRFX0NOVF9NICAgICAweEZGRkYNCisNCisjZGVmaW5lIFJFR19UUklHX0NZQ0xFX1dJRFRIICAg ICAgICAgICAweDA1M0MNCisNCisjZGVmaW5lIFJFR19UUklHX0NZQ0xFX0NOVCAgICAgICAgICAg ICAweDA1NDANCisNCisjZGVmaW5lIFRSSUdfQ1lDTEVfQ05UX00gICAgICAgICAgICAgICAweEZG RkYNCisjZGVmaW5lIFRSSUdfQ1lDTEVfQ05UX1MgICAgICAgICAgICAgICAxNg0KKyNkZWZpbmUg VFJJR19CSVRfUEFUVEVSTl9NICAgICAgICAgICAgIDB4RkZGRg0KKw0KKyNkZWZpbmUgUkVHX1RS SUdfSVRFUkFURV9USU1FICAgICAgICAgIDB4MDU0NA0KKw0KKyNkZWZpbmUgUkVHX1RSSUdfUFVM U0VfV0lEVEhfXzQgICAgICAgIDB4MDU0OA0KKw0KKyNkZWZpbmUgVFJJR19QVUxTRV9XSURUSF9N ICAgICAgICAgICAgIDB4MDBGRkZGRkYNCisNCiAvKiBQb3J0IFBUUCBSZWdpc3RlciAqLw0KICNk ZWZpbmUgUkVHX1BUUF9QT1JUX1JYX0RFTEFZX18yCTB4MEMwMA0KICNkZWZpbmUgUkVHX1BUUF9Q T1JUX1RYX0RFTEFZX18yCTB4MEMwMg0KDQpPbiBXZWQsIDIwMjItMTEtMDIgYXQgMTQ6MTEgKzAx MDAsIENocmlzdGlhbiBFZ2dlcnMgd3JvdGU6DQo+IEVYVEVSTkFMIEVNQUlMOiBEbyBub3QgY2xp Y2sgbGlua3Mgb3Igb3BlbiBhdHRhY2htZW50cyB1bmxlc3MgeW91DQo+IGtub3cgdGhlIGNvbnRl bnQgaXMgc2FmZQ0KPiBIaSBWbGFkaW1pciwNCj4gDQo+IE9uIFdlZG5lc2RheSwgMjYgT2N0b2Jl ciAyMDIyLCAyMzo0NDo1NSBDRVNULCBWbGFkaW1pciBPbHRlYW4gd3JvdGU6DQo+ID4gQXJ1biBk aWRuJ3Qgc2hhcmUgdGhlIFBQUyBvdXRwdXQgcGF0Y2ggcHVibGljbHksIHNvIEkgZG9uJ3Qga25v dw0KPiB3aHkNCj4gPiB3ZSdyZSBkaXNjdXNzaW5nIHRoaXMgaGVyZS4gQW55d2F5LCBpbiBpdCwg QXJ1biAoaW5jb3JyZWN0bHkpDQo+ID4gaW1wbGVtZW50ZWQgc3VwcG9ydCBmb3IgUFRQX0NMS19S RVFfUFBTIHJhdGhlciB0aGFuDQo+IFBUUF9DTEtfUkVRX1BFUk9VVCwNCj4gPiBzbyB0aGVyZSB3 aWxsIG5vdCBiZSBhbnkgbl9wZXJpb2RpY19vdXRwdXRzIHZpc2libGUgaW4gc3lzZnMuIEZvcg0K PiBub3csDQo+ID4gdHJ5IHZpYSBwcHNfYXZhaWxhYmxlIGFuZCBwcHNfZW5hYmxlLg0KPiBJIGNh biBjb250aW51ZSB0ZXN0aW5nIHRoaXMgd2Vlay4gSSBjYW4gZWl0aGVyIHRyeSB3aXRoIHRoZQ0K PiAoaW5jb3JyZWN0KQ0KPiBQVFBfQ0xLX1JFUV9QUFMgb3IgSSBjYW4gdHJ5IHRvIGZvcndhcmQg cG9ydCBteSBlYXJsaWVyIHBhdGNoZXMuDQo+IA0KPiA+ID4gQlRXOiBXaGljaCBpcyB0aGUgcHJl ZmVycmVkIGRlbGF5IG1lYXN1cmVtZW50IHdoaWNoIEkgc2hhbGwgdGVzdA0KPiAoRTJFL1AyUCk/ DQo+ID4gDQo+ID4gQXMgdGhpcyB0aW1lIGFyb3VuZCB0aGVyZSBpcyBzb21lYm9keSBmcm9tIE1p Y3JvY2hpcCBmaW5hbGx5IG9uIHRoZQ0KPiA+IGxpbmUsIEkgd2lsbCBub3QgaW50ZXJmZXJlIGlu IHRoaXMgcGFydC4gSSB0cmllZCBvbmNlLCBhbmQgZmFpbGVkDQo+IHRvDQo+ID4gdW5kZXJzdGFu ZCB0aGUgS1NaIFBUUCBwaGlsb3NvcGh5LiBJIGhvcGUgeW91IGdldCBzb21lIGFuc3dlcnMgZnJv bQ0KPiA+IEFydW4uIEp1c3Qgb25lIHF1ZXN0aW9uIGJlbG93Lg0KPiA+IA0KPiA+ID4gSSBzdGFy dGVkIHdpdGggRTJFIGlzIHRoaXMgd2FzIGNvbmZpZ3VyZWQgaW4gdGhlIGhhcmR3YXJlIGFuZA0K PiBuZWVkcyBubyAxLXN0ZXANCj4gPiA+IHRpbWUgc3RhbXBpbmcsIGJ1dCBJIGhhZCB0byBhZGQg UFRQX01TR1RZUEVfREVMQVlfUkVRIGluDQo+IGtzel9wb3J0X3R4dHN0YW1wKCkuDQo+ID4gDQo+ ID4gSG0/IFNvIGlmIEUyRSAiZG9lc24ndCBuZWVkIiAxLXN0ZXAgVFggdGltZXN0YW1waW5nIGFu ZCBLU1o5NTYzDQo+IGRvZXNuJ3QNCj4gPiBzdXBwb3J0IDItc3RlcCBUWCB0aW1lc3RhbXBpbmcs IHRoZW4gd2hhdCBraW5kIG9mIFRYIHRpbWVzdGFtcGluZw0KPiBpcw0KPiA+IHVzZWQgaGVyZSBm b3IgRGVsYXlfUmVxIG1lc3NhZ2VzPw0KPiA+IFBlcmhhcHMgeW91IG1lYW4gdGhhdCBFMkUgZG9l c24ndCBuZWVkIG1vdmluZyB0aGUgUlggdGltZXN0YW1wIG9mDQo+IHRoZQ0KPiA+IFBkZWxheV9S ZXEgKHQyKSBpbnRvIHRoZSBLU1ogVFggdGltZXN0YW1wIHRyYWlsZXIgb2YgdGhlDQo+IFBkZWxh eV9SZXNwICh0Myk/DQo+IEkgdGhpbmsgdGhhdCBEZWxheV9SZXEgaXMgbm90IHJlbGF0ZWQgdG8g MS1zdGVwIC8gMi1zdGVwIHRpbWUNCj4gc3RhbXBpbmcuIEFzIGZhcg0KPiBhcyBJIHVuZGVyc3Rh bmQsIHRoaXMgaXMgb25seSByZWxldmFudCBmb3IgU1lOQyBhbmQgUERlbGF5X1Jlc3AuDQo+IA0K PiA+ID4gPiBNYXkgYmUgdGhpcyBpcyBkdWUgdG8ga2NvbmZpZyBvZiBjb25maWdfa3N6X3B0cCBk ZWZpbmVkIGJvb2wNCj4gaW5zdGVhZA0KPiA+ID4gPiBvZiB0cmlzdGF0ZS4gRG8gSSBuZWVkIHRv IGNoYW5nZSB0aGUgY29uZmlnX2tzel9wdHAgdG8gdHJpc3RhdGUNCj4gaW4NCj4gPiA+ID4gb3Jk ZXIgdG8gY29tcGlsZSBhcyBtb2R1bGVzPw0KPiA+ID4gDQo+ID4gPiBJJ20gbm90IGFuIGV4cGVy dCBmb3Iga2J1aWxkIGFuZCBjYW5ub3QgdGVsbCB3aGV0aGVyIGl0J3MgYWxsb3dlZA0KPiB0byB1 c2UNCj4gPiA+IGJvb2wgb3B0aW9ucyB3aGljaCBkZXBlbmQgb24gdHJpc3RhdGUgb3B0aW9ucy4g QXQgbGVhc3Qga3N6X3B0cC5jDQo+IGlzIGNvbXBpbGVkDQo+ID4gPiBieSBrYnVpbGQgaWYgdHJp c3RhdGUgaXMgdXNlZC4gQnV0IEkgbmVlZGVkIHRvIGFkZCBhZGRpdGlvbmFsDQo+IEVYUE9SVF9T WU1CT0woKQ0KPiA+ID4gc3RhdGVtZW50cyBmb3IgYWxsIG5vbi1zdGF0aWMgZnVuY3Rpb25zIChz ZWUgYmVsb3cpIGZvcg0KPiBzdWNjZXNzZnVsIGxpbmtpbmcuDQo+ID4gDQo+ID4gSWYga3N6X3B0 cC5vIGdldHMgbGlua2VkIGludG8ga3N6X3B0cC5rbywgdGhlbiB5ZXMuIEJ1dCB0aGlzDQo+IHBy b2JhYmx5DQo+ID4gZG9lc24ndCBtYWtlIHNlbnNlLCBhcyB5b3UgcG9pbnQgb3V0LiBTbyBFWFBP UlRfU1lNQk9MKCkgc2hvdWxkIG5vdA0KPiBiZQ0KPiA+IG5lZWRlZC4NCj4gPiANCj4gPiA+IEkn bSB1bnN1cmUgd2hldGhlciBpdCBtYWtlcyBzZW5zZSB0byBidWlsZCBrc3pfcHRwIGFzIGEgc2Vw YXJhdGUNCj4gbW9kdWxlLg0KPiA+ID4gUGVyaGFwcyBpdCBzaG91bGQgYmUgKGNvbmRpdGlvbmFs bHkpIGFkZGVkIHRvIGtzel9zd2l0Y2gua28uDQo+IA0KPiBTbyBsZXQncyBjb25kaXRpb25hbGx5 IGFkZCBrc3pfcHRwLm8gdG8ga3N6X3N3aXRjaC5rby4NCj4gDQo+ID4gPiBzdGF0aWMgaW50IGtz el9zZXRfaHd0c3RhbXBfY29uZmlnKHN0cnVjdCBrc3pfZGV2aWNlICpkZXYsIGludA0KPiBwb3J0 LA0KPiA+ID4gc3RydWN0IGh3dHN0YW1wX2NvbmZpZyAqY29uZmlnKQ0KPiA+ID4gQEAgLTEwNiw3 ICsxMDgsNyBAQCBzdGF0aWMgaW50IGtzel9zZXRfaHd0c3RhbXBfY29uZmlnKHN0cnVjdA0KPiBr c3pfZGV2aWNlICpkZXYsIGludCBwb3J0LA0KPiA+ID4gY2FzZSBIV1RTVEFNUF9UWF9PRkY6DQo+ ID4gPiBwcnQtPmh3dHNfdHhfZW4gPSBmYWxzZTsNCj4gPiA+IGJyZWFrOw0KPiA+ID4gLSBjYXNl IEhXVFNUQU1QX1RYX09OOg0KPiA+ID4gKyBjYXNlIEhXVFNUQU1QX1RYX09ORVNURVBfUDJQOg0K PiA+IA0KPiA+IE9uZSBzaG91bGRuJ3QgcmVwbGFjZSB0aGUgb3RoZXI7IHRoaXMgaW1wbGVtZW50 YXRpb24gaXMgc2ltcGxpc3RpYywNCj4gb2YgY291cnNlLg0KPiA+IA0KPiA+IEFsc28sIHdoeSBk aWQgeW91IGNob29zZSBIV1RTVEFNUF9UWF9PTkVTVEVQX1AyUCBhbmQgbm90DQo+IEhXVFNUQU1Q X1RYX09ORVNURVBfU1lOQz8NCj4gQmVjYXVzZSBteSAob2xkKSBwdHA0bC5jb25mIHdhcyBjb25m aWd1cmVkIGZvciBQMlArcDJwMXN0ZXAuIFdoZW4gSQ0KPiBzdGFydGVkIHdvcmtpbmcgb24NCj4g S1NaOTU2MyBQVFAgdHdvIHllYXJzIGFnbywgeW91IHN1Z2dlc3RlZCBkb2luZyBQMlAgZmlyc3Qs IGJlY2F1c2UgRTJFDQo+IGlzIGFmZmVjdGVkIGJ5IG5hc3R5DQo+IHBhY2tldCBmaWx0ZXJzIG9u IHRoZSBzd2l0Y2ggaGFyZHdhcmUuLi4gQnV0IGZvciB0aGUgZmlyc3QgdGVzdHMgbm93DQo+IEkg c3dpdGNoZWQgdG8gRTJFDQo+IGZvciB0aGUgcmVhc29ucyB5b3UgbWVudGlvbmVkIGFib3ZlLg0K PiANCj4gUHJvYmFibHkgSFdUU1RBTVBfVFhfT04gbmVlZHMgdG8gYmUgcmVqZWN0ZWQgZm9yIEtT Wjk1NjMgYW5kIG9ubHkNCj4gSFdUU1RBTVBfVFhfT05FU1RFUF9TWU5DDQo+IA0K