Received: by 2002:a05:6358:45e:b0:b5:b6eb:e1f9 with SMTP id 30csp510739rwe; Thu, 25 Aug 2022 04:39:10 -0700 (PDT) X-Google-Smtp-Source: AA6agR5ashYnqt9vjvVKaQCMRZ1Q3Y3i8jRU1npJWIAKS6a/KljkieBJAN/3JIWM7tArgELgqj8q X-Received: by 2002:a17:902:c40e:b0:172:dee4:8824 with SMTP id k14-20020a170902c40e00b00172dee48824mr3501767plk.135.1661427550289; Thu, 25 Aug 2022 04:39:10 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1661427550; cv=pass; d=google.com; s=arc-20160816; b=0wGAgoN7kN0tTGnPg44nDbj6xJl+meR3bjXdCmMbGdEVmqCMviAIUswgTkXggqFThR A19vp2sowd3b0dPFi0X87KDajAAFlv1Y8ZMebwO7BdTtVoUeczg37TVjNrsP41p/4E/L S3Sy5UnjU6gyaUJVJ70DEIL0+ijDqaBHj4uWKFSWur6vUIAYxQERBexzwYeh7VQpSfbZ oTtrzxCm54sWfiXf0pjT7z8HIDXovKp/N4pv1jbSpQBanp+yjgbRwi4DBgmIV38oVL3J JaMBk17u7MGOP2t7r7u+26UU9Q0YmCT+ESx2Ttw1wGF71sX2s7ungbV3kONLEqIkwx07 8Bsw== 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-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :dkim-signature; bh=/izwyFcehj6vfOaONkEyHm5ZoV9V+e1BLOgW11YMYfs=; b=sjZGjj88x82RoN+Sf3x7RPS5E5bPbkTHLa5c3sKBo/q0BqfMKxd7r0fmlLEF93N/6q 6tZsWphRRNdQfAic+Paa/8x6f/rLeZCxdkfjAFbA7aag6saTLLSlylutqSqs58d/ppJ6 v7LTboZrLQx4WISj142GKE9lmVH2rEJ+JbNI2JVrKZ4Qqnhx7kb3s1KPrjWe0X41ye2f eTtQuz/8hpYKm0VFYf09UZhhKr9DB+vUJ/mDZW9CLV1SuQ0xeTlGDq8XigrbGLeGNUmI DMzJMOPKvHZ8UjV0PK7Sj0nMVCea7iJiyVRqjbjuQlgg6m4dbdi5IHmgINbV2/BjMg5c 6HAA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=OakJP7nW; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=RwjvNgNP; 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 om17-20020a17090b3a9100b001fbbcd6f8eesi446655pjb.73.2022.08.25.04.38.57; Thu, 25 Aug 2022 04:39:10 -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=OakJP7nW; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=RwjvNgNP; 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 S241378AbiHYLJR (ORCPT + 99 others); Thu, 25 Aug 2022 07:09:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45706 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241367AbiHYLJP (ORCPT ); Thu, 25 Aug 2022 07:09:15 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0AD3DAE863; Thu, 25 Aug 2022 04:09:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1661425751; x=1692961751; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=/izwyFcehj6vfOaONkEyHm5ZoV9V+e1BLOgW11YMYfs=; b=OakJP7nWLMr+Mg8sEZK3Am2eEMGlZT/SgMzdYXLRNNrmB5cZn3NlxIkP wChmIi5ddJKpsYYIVLGXUeu+EhdG/PaPmHy1QOWtYH7QfLfm1/inCovsh cP2S2stW01Q4F3ZMstgDEm48tkKuCDXQmPk4KomqyOAR4ih2c5DQxpkFm 1nOckYvcYOYfKMav2CmXNkBs55TeByTnEDakZbSi/Icz3seeoV+Nqe9VK zt2Ez8DnAwYZxrbVOJik0Qohc2aLvU6Vn71iTcf2Q3YYbjyMPdQq5pXgS L14T1fvgPkFtwy4heNbJXigk3uCDSSs4QoO03HXfFbwRp6fO6MDvULe57 w==; X-IronPort-AV: E=Sophos;i="5.93,262,1654585200"; d="scan'208";a="177701710" Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa5.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 25 Aug 2022 04:09:10 -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; Thu, 25 Aug 2022 04:09:08 -0700 Received: from NAM02-SN1-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; Thu, 25 Aug 2022 04:09:08 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MgpFRg89l7itkx3IO/wXlL3+BW3yhXV6JFQG2R9a8uaqlWhOnsz36Ae1miOGOZuzSMRoxJDuXY0o/sAr6aACP9FPBcbPcYRHvI5lbGCsvunfurpARBLQzLbJhQXwNT+OTjD+6nOfl95eaVpK88cnrZtyqcGDwx59TPO36tlmV81m1BsFGLPkZm2hXeR9NRYmJhmpGBY6sipYDvD6PYYUsmKihQbfTz42IXHk6xEA+t7YV4Ub0bdI5kaXDvzBKCDl04Z1iyCaHb68jm41HsIdhA4heGC+jb8lgOOcZCkoTlyL4qnZhQT2CqxwQ/8xP8l6pVJ801cUJLESFhdv/edOhA== 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=/izwyFcehj6vfOaONkEyHm5ZoV9V+e1BLOgW11YMYfs=; b=Mn6k6Tg1+S3D5MImrHTOrH92Nodh7n1E1aCxzhPx68rsgt8ZMAooUl1xQdu7h1iX00ST0c0OT3MJHNqmbjHg8QOERUV+2iaQfIijB4SOEpEnV0cdbuq0p/KyN2u14yt0nGjQqBAUzDvsSCJgmx7D/HHez1ea43WkTcDUjjUH09hrz+eDZgWhzYedttFhFUEYjH6SL5HVdsF8NH7JxgVGcUp+n07P/G7fChq0DJy+DShNISooIQ5Vwwtck9bRbsHQMWr6JJMzowru6HNSvWbtcgi+fBQ9CHqg7jpW6o7B96hue1+Z4WPGfjdz5UdteJYYgcYRaL7WTZ5xRPeTyzoGwA== 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=/izwyFcehj6vfOaONkEyHm5ZoV9V+e1BLOgW11YMYfs=; b=RwjvNgNPiMo+m6aFCagAc5V3eKuCX914X6OGJNjV11i2PEPKc7R1ddseFNesfHighvlAVT2qgX5MR1rm0XrPFkVJd1huRj0N5SV/kmxZbOjNQS1n6h5b0L6pK+uafh6VkfbQTATtPsVliDaE+YrDoLYPgMDXmT2YS9mgSnPK5mw= Received: from PH0PR11MB5611.namprd11.prod.outlook.com (2603:10b6:510:ed::9) by SN7PR11MB6678.namprd11.prod.outlook.com (2603:10b6:806:26a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.16; Thu, 25 Aug 2022 11:09:03 +0000 Received: from PH0PR11MB5611.namprd11.prod.outlook.com ([fe80::44a1:dd85:8d3b:56fd]) by PH0PR11MB5611.namprd11.prod.outlook.com ([fe80::44a1:dd85:8d3b:56fd%5]) with mapi id 15.20.5566.015; Thu, 25 Aug 2022 11:09:03 +0000 From: To: CC: , , , , , , Subject: RE: [PATCH] media: i2c: imx334: support lower bandwidth mode Thread-Topic: [PATCH] media: i2c: imx334: support lower bandwidth mode Thread-Index: AQHYokuec/+v1WSzCEujSBRQqx3PWq27Oe6AgAQd1kCAAAyHgIAAMb8Q Date: Thu, 25 Aug 2022 11:09:03 +0000 Message-ID: References: <20220728063044.19276-1-shravan.chippa@microchip.com> <20220822155303.udtb6uoizmkskjzt@uno.localdomain> <20220825072943.7jmwmlxgkuozn3t6@uno.localdomain> In-Reply-To: <20220825072943.7jmwmlxgkuozn3t6@uno.localdomain> Accept-Language: en-GB, 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=microchip.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 00cb5ba2-a8ce-43cc-8a0e-08da868a387c x-ms-traffictypediagnostic: SN7PR11MB6678:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uBfgcBTCFSGP8TUKRzhHBu8HS1Fn0INvKfn1SEaYteGWizdrxxy4cOe2P9ECYc4TEBVI2Vl4vTjoClulPB0ygEDyxHe4T03GzvB/p2LJLsOOE25LseQZ6FL56WZ+a62mWNEGfN4b+2nQxS5eCVzyZEvhzngNub5RPvxT1k08W1BPy6zCaEF914eLZq4dIStR+FcB9XZysXI/o5VgCdLUhxyAjPDwwwdIawY+pJ8ieoT2GjCkjGcvaiX+dRnO/44cGn413asHBm3FLj0BrlJFsCqs/i8KDq24maPpC0jRMxxfc5cwSx6VA0aTG3sL66AMgfq6seIx2+/F2TK3D5KxeneP4lEAp6O21nyp5NOs2p45K04QpW0etYBPN3lsBS3+qm5/U+ZZ0dbMROTP8Q+OWKXLv2t/aUAkhxJtTf+OO7ryMGzHl7GFRApoAaAsGLCbyPTtRTVAxzopR70QmKWnzTuO1nVZ7XO4cPGF+byMnlWYBAF6J4rlaYzk/EPsoq5SQeptWl9xiJQDT/Ke/VYWX09NGbn1Ln2Q6pOKw8jiAxgSDZmNib3locwryTa4sm8T1aHWDvp8zM/WcxuTSQZMAiL5bdMAO/xpejlKHDTab6S3DfaLx5sbR8redw9P49U6NvbZwIIcAwx0MuqvAqM3KatxYIHU5cex/ezADMeRey8sww94XM0HozEhNxY90K2Ypm9eejbhBKDoJLyD2jH+fpnffu76JjuJRhd++Y0HoEhlBUCswYBHKZLsZfApV6EwhfbWG0jaoJ3ThoQLDUZ6Uw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5611.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(396003)(366004)(39860400002)(346002)(136003)(376002)(7696005)(86362001)(38100700002)(66556008)(64756008)(33656002)(76116006)(30864003)(66476007)(6916009)(4326008)(66946007)(38070700005)(54906003)(8676002)(66446008)(122000001)(53546011)(26005)(186003)(52536014)(9686003)(966005)(6506007)(71200400001)(83380400001)(478600001)(107886003)(55016003)(316002)(5660300002)(2906002)(41300700001)(8936002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bDZvaUtyZWdueW9zN2tjUm1WSURJNTI1cDB3NE5PdTBaenlkOHNDWnprdkRK?= =?utf-8?B?dXB4N09oSEdwOUF3dy9jRE5RUXVDeDRWRzUrKzkvQWtSam9IQ05EbCtwWk12?= =?utf-8?B?RGlzMEVYclRYZmEydm9GS05OV2RwWWdxdDVLaG5yRnV1S1VHRUZaRzJRM294?= =?utf-8?B?aXN6bU90TElBdFEweVdjVGhhUVB1ck9MK0pzUENwanFtNnh6eVdpbEM1UzhY?= =?utf-8?B?cEljSGc5STA3aHExYUpyaEdLOW5mcDFNOGRxUjJxOXVHRjZqYytiTXE5WHhB?= =?utf-8?B?UDlFT2wzNGZBcVFmWWQ2bEcrRVBRT1YvbWdXQlg3R2NGSWFPKzRuT0pHMUJ2?= =?utf-8?B?cytUOE11OXNpVmV4bXkwU3JuOVhYZG5LejRLb3hFYjUwQXI4T2Evbitla291?= =?utf-8?B?RFYrbTBLdDl6RlhqUkRmUkVYdE5wbS9VUDI1UitOeis1NzJ1eWtoa1NzMkJl?= =?utf-8?B?TFNndEQwZlFIc2lzMFZoTjFUM0owUklmVi82ejhYTWhkZmV2Z1FnUnIrTnZm?= =?utf-8?B?dnFPM3dDenY1WG5NYVpxU3gwdGt3M3pKd05KR2NpOXdERnFpSWhmUU56Nm1V?= =?utf-8?B?TzJtb1VTL0VGVnNseG95ai90SFJDd0xUZVVSM2RsQ1BnNzRRTGtlY3R3L0Ja?= =?utf-8?B?RFI3U3l2ZmtJVitvU1NkSU94QXoxdFJyQiszbVc0cXNwalFHY3BLd3VUL3lI?= =?utf-8?B?d3RoMDAyaDQrZTJjWU9GUXNYcTRVc3JrRnQvZG5lVzZQaEFXSFQxKzhaWE9R?= =?utf-8?B?UHVjK210OG8rY1FiZTRZMzAyVXpUOFFSdWl6ZUFJdVZFRjg0MzlFN1Y3NWR5?= =?utf-8?B?SllRSUxuQkR3TUZlWE5aTVIwczB6YTFRQ1lCYXJBdnY2ZzJWR2kxZ2ZMeXJO?= =?utf-8?B?U1RsS1p0UGIrUTk2ZFJ6b0gvbGwrZXg3YlI0WXpreTRGbU51eEFuOHZEaXRq?= =?utf-8?B?RWdRb21YTTV2UHBzK2hURGxMVWVHL3hIb2JRMUlyTFRNQm9aWVNlclFxY0VN?= =?utf-8?B?UFA5VDJIOWlJTHdUWWcxZk1YZTFZc3VCTWdNRkhIWkdJelY4bmUwYWQ3Mm9x?= =?utf-8?B?VkhENi81ZE1yTWxYVGNYVXVLZFpwTHJzblUrd3p6ZjJjMytkM1RuMlZOZENW?= =?utf-8?B?NHJTTTFmdERHN2ZjZEs1TzJ2Ulp2eUNtTEFtN3RPRjVIWWVDOCt3Sm9pRGJq?= =?utf-8?B?MnhpS2RVWFVyN0h3MDZUczkwSVYwQStlVVVSL2dvRUtIK3VRam5NbzVuQjBH?= =?utf-8?B?YjFpbEtZNldHemxabmlzcHY0dlJtaEFWN2xiNjdLR3lYOXB2ZTMvY3NaUS9C?= =?utf-8?B?cmw2VWFWSHRkZGJPM3F5dG0xWFBrY2t6bUVOd2VGZitCKzJnMjRCZWJmQTJ2?= =?utf-8?B?QzB6cFJJR2hRbzRDWFhKRkVPbzJPbEVvTHBkNjJRQjdLTjRuZFhEYUVHVWVS?= =?utf-8?B?Wm5rZW4wak9abXZOMFR5Q3NUY1dOQlNpQzREMm40aVFjcmVJNURmVVNPQXBO?= =?utf-8?B?a3BLN1B1dEFBMW1kU01CTWtZMi9pN2I2MWwzNTdrQ0ZoVjVGTlNSVFF6QVlG?= =?utf-8?B?SGpGZzk5SldmSVZMZEJhcUdLaTIxKzFNN1N5bkNmZGw0M0RzcFJpVS9uWGIr?= =?utf-8?B?UHpPbjBHR3I2SmgzUmpkdXR4TGswZ2NNTW13NEV3b0JJSXRyRjhRWFFiczR2?= =?utf-8?B?QWswWEUra3NXN2tLZHZOSVl5a01MckNVcU1JaUplTVdwRVJVZGh0QXBaQmVC?= =?utf-8?B?U2FUSHY3TkdpV3hkUFhTY3d6Mjgzem1WWVhVMWxvZld6dWZhallBaklBSjhQ?= =?utf-8?B?dy8zcE5VTmUrUEczYUxURzhkVk5maGZsNlBiYnFjcE8vRStleFdCTHNVTnJW?= =?utf-8?B?bUQ2WUU5RGdUQlJYR1psQlJrQWw4eCtGMEJYcnQ1N0FpTGZQS1ZYa1I4b0gr?= =?utf-8?B?UWFaTGhlVDhXLzVqQjJDRTl6eUZ1ZjRjZ0Vjdjc3QzhRQ0MxM1NYcDRkMXR1?= =?utf-8?B?TExzcTU2OEZkTHBXamdhOXZhbDdBVUJBVVlLM1Y1RFhsaVkxQVRuelN2TTBz?= =?utf-8?B?N096VFRBdEpPQkdRS2M2OHY2QTdTdlpVMHdGVHZ6K29JSmErYitLVHRlcnFS?= =?utf-8?B?QzdFVHdCSndmTjhnSy83S1JYbERPQ3R2S3hEajFSK0JhRHFsbXg4eU5ERkFj?= =?utf-8?B?NEE9PQ==?= 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: PH0PR11MB5611.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 00cb5ba2-a8ce-43cc-8a0e-08da868a387c X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2022 11:09:03.7017 (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: vWVf+OaG3KllWG7+84gvj8cHPVPWNG7INLOX6im+4VpRFRr/xQFpLnMfFciOdxxMglEA6mgZpkcuQ6q7D/IfEW9pUnPhbq/SCqjwv5yocZY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB6678 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,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmFjb3BvIE1vbmRpIDxq YWNvcG9Aam1vbmRpLm9yZz4NCj4gU2VudDogMjUgQXVndXN0IDIwMjIgMDE6MDAgUE0NCj4gVG86 IHNocmF2YW4gQ2hpcHBhIC0gSTM1MDg4IDxTaHJhdmFuLkNoaXBwYUBtaWNyb2NoaXAuY29tPg0K PiBDYzogcGF1bC5qLm11cnBoeUBpbnRlbC5jb207IGRhbmllbGUuYWxlc3NhbmRyZWxsaUBpbnRl bC5jb207DQo+IG1jaGVoYWJAa2VybmVsLm9yZzsgbGludXgtbWVkaWFAdmdlci5rZXJuZWwub3Jn OyBsaW51eC0NCj4ga2VybmVsQHZnZXIua2VybmVsLm9yZzsgQ29ub3IgRG9vbGV5IC0gTTUyNjkx DQo+IDxDb25vci5Eb29sZXlAbWljcm9jaGlwLmNvbT47IEJhdHR1IFByYWthc2ggUmVkZHkgLSBJ MzAzOTkNCj4gPFByYWthc2guQmF0dHVAbWljcm9jaGlwLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQ QVRDSF0gbWVkaWE6IGkyYzogaW14MzM0OiBzdXBwb3J0IGxvd2VyIGJhbmR3aWR0aCBtb2RlDQo+ IA0KPiBbWW91IGRvbid0IG9mdGVuIGdldCBlbWFpbCBmcm9tIGphY29wb0BqbW9uZGkub3JnLiBM ZWFybiB3aHkgdGhpcyBpcw0KPiBpbXBvcnRhbnQgYXQgaHR0cHM6Ly9ha2EubXMvTGVhcm5BYm91 dFNlbmRlcklkZW50aWZpY2F0aW9uIF0NCj4gDQo+IEVYVEVSTkFMIEVNQUlMOiBEbyBub3QgY2xp Y2sgbGlua3Mgb3Igb3BlbiBhdHRhY2htZW50cyB1bmxlc3MgeW91IGtub3cgdGhlDQo+IGNvbnRl bnQgaXMgc2FmZQ0KPiANCj4gSGkgU2hyYXZhbg0KPiANCj4gT24gVGh1LCBBdWcgMjUsIDIwMjIg YXQgMDc6MTY6MjJBTSArMDAwMCwgU2hyYXZhbi5DaGlwcGFAbWljcm9jaGlwLmNvbQ0KPiB3cm90 ZToNCj4gPg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJv bTogSmFjb3BvIE1vbmRpIDxqYWNvcG9Aam1vbmRpLm9yZz4NCj4gPiA+IFNlbnQ6IDIyIEF1Z3Vz dCAyMDIyIDA5OjIzIFBNDQo+ID4gPiBUbzogc2hyYXZhbiBDaGlwcGEgLSBJMzUwODggPFNocmF2 YW4uQ2hpcHBhQG1pY3JvY2hpcC5jb20+DQo+ID4gPiBDYzogcGF1bC5qLm11cnBoeUBpbnRlbC5j b207IGRhbmllbGUuYWxlc3NhbmRyZWxsaUBpbnRlbC5jb207DQo+ID4gPiBtY2hlaGFiQGtlcm5l bC5vcmc7IGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9yZzsgbGludXgtDQo+ID4gPiBrZXJuZWxA dmdlci5rZXJuZWwub3JnOyBDb25vciBEb29sZXkgLSBNNTI2OTENCj4gPiA+IDxDb25vci5Eb29s ZXlAbWljcm9jaGlwLmNvbT47IEJhdHR1IFByYWthc2ggUmVkZHkgLSBJMzAzOTkNCj4gPiA+IDxQ cmFrYXNoLkJhdHR1QG1pY3JvY2hpcC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIXSBt ZWRpYTogaTJjOiBpbXgzMzQ6IHN1cHBvcnQgbG93ZXIgYmFuZHdpZHRoDQo+ID4gPiBtb2RlDQo+ ID4gPg0KPiA+ID4gRVhURVJOQUwgRU1BSUw6IERvIG5vdCBjbGljayBsaW5rcyBvciBvcGVuIGF0 dGFjaG1lbnRzIHVubGVzcyB5b3UNCj4gPiA+IGtub3cgdGhlIGNvbnRlbnQgaXMgc2FmZQ0KPiA+ ID4NCj4gPiA+IEhlbGxvIFNocmF2YW4sDQo+ID4gPg0KPiA+ID4gT24gVGh1LCBKdWwgMjgsIDIw MjIgYXQgMTI6MDA6NDRQTSArMDUzMCwgc2hyYXZhbiBrdW1hciB3cm90ZToNCj4gPiA+ID4gRnJv bTogU2hyYXZhbiBDaGlwcGEgPHNocmF2YW4uY2hpcHBhQG1pY3JvY2hpcC5jb20+DQo+ID4gPiA+ DQo+ID4gPiA+IFNvbWUgcGxhdGZvcm1zIG1heSBub3QgYmUgY2FwYWJsZSBvZiBzdXBwb3J0aW5n IHRoZSBiYW5kd2lkdGgNCj4gPiA+ID4gcmVxdWlyZWQgZm9yIDEyIGJpdCBvciAzODQweDIxNjAg cmVzb2x1dGlvbnMuDQo+ID4gPiA+DQo+ID4gPiA+IEFkZCBzdXBwb3J0IGZvciBkeW5hbWljYWxs eSBzZWxlY3RpbmcgMTAgYml0IGFuZCAxOTIweDEwODANCj4gPiA+ID4gcmVzb2x1dGlvbnMgd2hp bGUgbGVhdmluZyB0aGUgZXhpc3RpbmcgY29uZmlndXJhdGlvbiBhcyBkZWZhdWx0DQo+ID4gPiA+ DQo+ID4gPiA+IENDOiBDb25vciBEb29sZXkgPGNvbm9yLmRvb2xleUBtaWNyb2NoaXAuY29tPg0K PiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQcmFrYXNoIEJhdHR1IDxQcmFrYXNoLkJhdHR1QG1pY3Jv Y2hpcC5jb20+DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFNocmF2YW4gQ2hpcHBhIDxzaHJhdmFu LmNoaXBwYUBtaWNyb2NoaXAuY29tPg0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gIGRyaXZlcnMvbWVk aWEvaTJjL2lteDMzNC5jIHwgMzA2DQo+ID4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0NCj4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAyNzkgaW5zZXJ0aW9ucygrKSwg MjcgZGVsZXRpb25zKC0pDQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21l ZGlhL2kyYy9pbXgzMzQuYw0KPiA+ID4gPiBiL2RyaXZlcnMvbWVkaWEvaTJjL2lteDMzNC5jIGlu ZGV4IDA2MjEyNTUwMTc4OC4uZDFmYTRjNGQ0ZDllDQo+ID4gPiA+IDEwMDY0NA0KPiA+ID4gPiAt LS0gYS9kcml2ZXJzL21lZGlhL2kyYy9pbXgzMzQuYw0KPiA+ID4gPiArKysgYi9kcml2ZXJzL21l ZGlhL2kyYy9pbXgzMzQuYw0KPiA+ID4gPiBAQCAtNzksNyArNzksNiBAQCBzdHJ1Y3QgaW14MzM0 X3JlZ19saXN0IHsNCj4gPiA+ID4gICAqIHN0cnVjdCBpbXgzMzRfbW9kZSAtIGlteDMzNCBzZW5z b3IgbW9kZSBzdHJ1Y3R1cmUNCj4gPiA+ID4gICAqIEB3aWR0aDogRnJhbWUgd2lkdGgNCj4gPiA+ ID4gICAqIEBoZWlnaHQ6IEZyYW1lIGhlaWdodA0KPiA+ID4gPiAtICogQGNvZGU6IEZvcm1hdCBj b2RlDQo+ID4gPiA+ICAgKiBAaGJsYW5rOiBIb3Jpem9udGFsIGJsYW5raW5nIGluIGxpbmVzDQo+ ID4gPiA+ICAgKiBAdmJsYW5rOiBWZXJ0aWNhbCBibGFua2luZyBpbiBsaW5lcw0KPiA+ID4gPiAg ICogQHZibGFua19taW46IE1pbmltYWwgdmVydGljYWwgYmxhbmtpbmcgaW4gbGluZXMgQEAgLTkx LDcgKzkwLDYNCj4gPiA+ID4gQEAgc3RydWN0IGlteDMzNF9yZWdfbGlzdCB7ICBzdHJ1Y3QgaW14 MzM0X21vZGUgew0KPiA+ID4gPiAgICAgICB1MzIgd2lkdGg7DQo+ID4gPiA+ICAgICAgIHUzMiBo ZWlnaHQ7DQo+ID4gPiA+IC0gICAgIHUzMiBjb2RlOw0KPiA+ID4gPiAgICAgICB1MzIgaGJsYW5r Ow0KPiA+ID4gPiAgICAgICB1MzIgdmJsYW5rOw0KPiA+ID4gPiAgICAgICB1MzIgdmJsYW5rX21p bjsNCj4gPiA+ID4gQEAgLTExOSw2ICsxMTcsNyBAQCBzdHJ1Y3QgaW14MzM0X21vZGUgew0KPiA+ ID4gPiAgICogQHZibGFuazogVmVydGljYWwgYmxhbmtpbmcgaW4gbGluZXMNCj4gPiA+ID4gICAq IEBjdXJfbW9kZTogUG9pbnRlciB0byBjdXJyZW50IHNlbGVjdGVkIHNlbnNvciBtb2RlDQo+ID4g PiA+ICAgKiBAbXV0ZXg6IE11dGV4IGZvciBzZXJpYWxpemluZyBzZW5zb3IgY29udHJvbHMNCj4g PiA+ID4gKyAqIEBjdXJfY29kZTogY3VycmVudCBzZWxlY3RlZCBmb3JtYXQgY29kZQ0KPiA+ID4g PiAgICogQHN0cmVhbWluZzogRmxhZyBpbmRpY2F0aW5nIHN0cmVhbWluZyBzdGF0ZQ0KPiA+ID4g PiAgICovDQo+ID4gPiA+ICBzdHJ1Y3QgaW14MzM0IHsNCj4gPiA+ID4gQEAgLTE0MCw2ICsxMzks NyBAQCBzdHJ1Y3QgaW14MzM0IHsNCj4gPiA+ID4gICAgICAgdTMyIHZibGFuazsNCj4gPiA+ID4g ICAgICAgY29uc3Qgc3RydWN0IGlteDMzNF9tb2RlICpjdXJfbW9kZTsNCj4gPiA+ID4gICAgICAg c3RydWN0IG11dGV4IG11dGV4Ow0KPiA+ID4gPiArICAgICB1MzIgY3VyX2NvZGU7DQo+ID4gPiA+ ICAgICAgIGJvb2wgc3RyZWFtaW5nOw0KPiA+ID4gPiAgfTsNCj4gPiA+ID4NCj4gPiA+ID4gQEAg LTE0Nyw2ICsxNDcsMTY5IEBAIHN0YXRpYyBjb25zdCBzNjQgbGlua19mcmVxW10gPSB7DQo+ID4g PiA+ICAgICAgIElNWDMzNF9MSU5LX0ZSRVEsDQo+ID4gPiA+ICB9Ow0KPiA+ID4gPg0KPiA+ID4g PiArLyogU2Vuc29yIG1vZGUgcmVnaXN0ZXJzICovDQo+ID4gPiA+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IGlteDMzNF9yZWcgbW9kZV8xOTIweDEwODBfcmVnc1tdID0gew0KPiA+ID4gPiArICAgICB7 MHgzMDAwLCAweDAxfSwNCj4gPiA+ID4gKyAgICAgezB4MzAxOCwgMHgwNH0sDQo+ID4gPiA+ICsg ICAgIHsweDMwMzAsIDB4Q0F9LA0KPiA+ID4gPiArICAgICB7MHgzMDMxLCAweDA4fSwNCj4gPiA+ ID4gKyAgICAgezB4MzAzMiwgMHgwMH0sDQo+ID4gPiA+ICsgICAgIHsweDMwMzQsIDB4NEN9LA0K PiA+ID4gPiArICAgICB7MHgzMDM1LCAweDA0fSwNCj4gPiA+ID4gKyAgICAgezB4MzAyQywgMHhG MH0sDQo+ID4gPiA+ICsgICAgIHsweDMwMkQsIDB4MDN9LA0KPiA+ID4gPiArICAgICB7MHgzMDJF LCAweDgwfSwNCj4gPiA+ID4gKyAgICAgezB4MzAyRiwgMHgwN30sDQo+ID4gPiA+ICsgICAgIHsw eDMwNzQsIDB4Q0N9LA0KPiA+ID4gPiArICAgICB7MHgzMDc1LCAweDAyfSwNCj4gPiA+ID4gKyAg ICAgezB4MzA4RSwgMHhDRH0sDQo+ID4gPiA+ICsgICAgIHsweDMwOEYsIDB4MDJ9LA0KPiA+ID4g PiArICAgICB7MHgzMDc2LCAweDM4fSwNCj4gPiA+ID4gKyAgICAgezB4MzA3NywgMHgwNH0sDQo+ ID4gPiA+ICsgICAgIHsweDMwOTAsIDB4Mzh9LA0KPiA+ID4gPiArICAgICB7MHgzMDkxLCAweDA0 fSwNCj4gPiA+ID4gKyAgICAgezB4MzMwOCwgMHgzOH0sDQo+ID4gPiA+ICsgICAgIHsweDMzMDks IDB4MDR9LA0KPiA+ID4gPiArICAgICB7MHgzMEM2LCAweDAwfSwNCj4gPiA+ID4gKyAgICAgezB4 MzBDNywgMHgwMH0sDQo+ID4gPiA+ICsgICAgIHsweDMwQ0UsIDB4MDB9LA0KPiA+ID4gPiArICAg ICB7MHgzMENGLCAweDAwfSwNCj4gPiA+ID4gKyAgICAgezB4MzBEOCwgMHgxOH0sDQo+ID4gPiA+ ICsgICAgIHsweDMwRDksIDB4MEF9LA0KPiA+ID4gPiArICAgICB7MHgzMDRDLCAweDAwfSwNCj4g PiA+ID4gKyAgICAgezB4MzA0RSwgMHgwMH0sDQo+ID4gPiA+ICsgICAgIHsweDMwNEYsIDB4MDB9 LA0KPiA+ID4gPiArICAgICB7MHgzMDUwLCAweDAwfSwNCj4gPiA+ID4gKyAgICAgezB4MzBCNiwg MHgwMH0sDQo+ID4gPiA+ICsgICAgIHsweDMwQjcsIDB4MDB9LA0KPiA+ID4gPiArICAgICB7MHgz MTE2LCAweDA4fSwNCj4gPiA+ID4gKyAgICAgezB4MzExNywgMHgwMH0sDQo+ID4gPiA+ICsgICAg IHsweDMxQTAsIDB4MjB9LA0KPiA+ID4gPiArICAgICB7MHgzMUExLCAweDBGfSwNCj4gPiA+ID4g KyAgICAgezB4MzAwQywgMHgzQn0sDQo+ID4gPiA+ICsgICAgIHsweDMwMEQsIDB4Mjl9LA0KPiA+ ID4gPiArICAgICB7MHgzMTRDLCAweDI5fSwNCj4gPiA+ID4gKyAgICAgezB4MzE0RCwgMHgwMX0s DQo+ID4gPiA+ICsgICAgIHsweDMxNUEsIDB4MEF9LA0KPiA+ID4gPiArICAgICB7MHgzMTY4LCAw eEEwfSwNCj4gPiA+ID4gKyAgICAgezB4MzE2QSwgMHg3RX0sDQo+ID4gPiA+ICsgICAgIHsweDMx OUUsIDB4MDJ9LA0KPiA+ID4gPiArICAgICB7MHgzMTk5LCAweDAwfSwNCj4gPiA+ID4gKyAgICAg ezB4MzE5RCwgMHgwMH0sDQo+ID4gPiA+ICsgICAgIHsweDMxREQsIDB4MDN9LA0KPiA+ID4gPiAr ICAgICB7MHgzMzAwLCAweDAwfSwNCj4gPiA+ID4gKyAgICAgezB4MzQxQywgMHhGRn0sDQo+ID4g PiA+ICsgICAgIHsweDM0MUQsIDB4MDF9LA0KPiA+ID4gPiArICAgICB7MHgzQTAxLCAweDAzfSwN Cj4gPiA+ID4gKyAgICAgezB4M0ExOCwgMHg3Rn0sDQo+ID4gPiA+ICsgICAgIHsweDNBMTksIDB4 MDB9LA0KPiA+ID4gPiArICAgICB7MHgzQTFBLCAweDM3fSwNCj4gPiA+ID4gKyAgICAgezB4M0Ex QiwgMHgwMH0sDQo+ID4gPiA+ICsgICAgIHsweDNBMUMsIDB4Mzd9LA0KPiA+ID4gPiArICAgICB7 MHgzQTFELCAweDAwfSwNCj4gPiA+ID4gKyAgICAgezB4M0ExRSwgMHhGN30sDQo+ID4gPiA+ICsg ICAgIHsweDNBMUYsIDB4MDB9LA0KPiA+ID4gPiArICAgICB7MHgzQTIwLCAweDNGfSwNCj4gPiA+ ID4gKyAgICAgezB4M0EyMSwgMHgwMH0sDQo+ID4gPiA+ICsgICAgIHsweDNBMjAsIDB4NkZ9LA0K PiA+ID4gPiArICAgICB7MHgzQTIxLCAweDAwfSwNCj4gPiA+ID4gKyAgICAgezB4M0EyMCwgMHgz Rn0sDQo+ID4gPiA+ICsgICAgIHsweDNBMjEsIDB4MDB9LA0KPiA+ID4gPiArICAgICB7MHgzQTIw LCAweDVGfSwNCj4gPiA+ID4gKyAgICAgezB4M0EyMSwgMHgwMH0sDQo+ID4gPiA+ICsgICAgIHsw eDNBMjAsIDB4MkZ9LA0KPiA+ID4gPiArICAgICB7MHgzQTIxLCAweDAwfSwNCj4gPiA+ID4gKyAg ICAgezB4MzA3OCwgMHgwMn0sDQo+ID4gPiA+ICsgICAgIHsweDMwNzksIDB4MDB9LA0KPiA+ID4g PiArICAgICB7MHgzMDdBLCAweDAwfSwNCj4gPiA+ID4gKyAgICAgezB4MzA3QiwgMHgwMH0sDQo+ ID4gPiA+ICsgICAgIHsweDMwODAsIDB4MDJ9LA0KPiA+ID4gPiArICAgICB7MHgzMDgxLCAweDAw fSwNCj4gPiA+ID4gKyAgICAgezB4MzA4MiwgMHgwMH0sDQo+ID4gPiA+ICsgICAgIHsweDMwODMs IDB4MDB9LA0KPiA+ID4gPiArICAgICB7MHgzMDg4LCAweDAyfSwNCj4gPiA+ID4gKyAgICAgezB4 MzA5NCwgMHgwMH0sDQo+ID4gPiA+ICsgICAgIHsweDMwOTUsIDB4MDB9LA0KPiA+ID4gPiArICAg ICB7MHgzMDk2LCAweDAwfSwNCj4gPiA+ID4gKyAgICAgezB4MzA5QiwgMHgwMn0sDQo+ID4gPiA+ ICsgICAgIHsweDMwOUMsIDB4MDB9LA0KPiA+ID4gPiArICAgICB7MHgzMDlELCAweDAwfSwNCj4g PiA+ID4gKyAgICAgezB4MzA5RSwgMHgwMH0sDQo+ID4gPiA+ICsgICAgIHsweDMwQTQsIDB4MDB9 LA0KPiA+ID4gPiArICAgICB7MHgzMEE1LCAweDAwfSwNCj4gPiA+ID4gKyAgICAgezB4MzI4OCwg MHgyMX0sDQo+ID4gPiA+ICsgICAgIHsweDMyOEEsIDB4MDJ9LA0KPiA+ID4gPiArICAgICB7MHgz NDE0LCAweDA1fSwNCj4gPiA+ID4gKyAgICAgezB4MzQxNiwgMHgxOH0sDQo+ID4gPiA+ICsgICAg IHsweDM1QUMsIDB4MEV9LA0KPiA+ID4gPiArICAgICB7MHgzNjQ4LCAweDAxfSwNCj4gPiA+ID4g KyAgICAgezB4MzY0QSwgMHgwNH0sDQo+ID4gPiA+ICsgICAgIHsweDM2NEMsIDB4MDR9LA0KPiA+ ID4gPiArICAgICB7MHgzNjc4LCAweDAxfSwNCj4gPiA+ID4gKyAgICAgezB4MzY3QywgMHgzMX0s DQo+ID4gPiA+ICsgICAgIHsweDM2N0UsIDB4MzF9LA0KPiA+ID4gPiArICAgICB7MHgzNzA4LCAw eDAyfSwNCj4gPiA+ID4gKyAgICAgezB4MzcxNCwgMHgwMX0sDQo+ID4gPiA+ICsgICAgIHsweDM3 MTUsIDB4MDJ9LA0KPiA+ID4gPiArICAgICB7MHgzNzE2LCAweDAyfSwNCj4gPiA+ID4gKyAgICAg ezB4MzcxNywgMHgwMn0sDQo+ID4gPiA+ICsgICAgIHsweDM3MUMsIDB4M0R9LA0KPiA+ID4gPiAr ICAgICB7MHgzNzFELCAweDNGfSwNCj4gPiA+ID4gKyAgICAgezB4MzcyQywgMHgwMH0sDQo+ID4g PiA+ICsgICAgIHsweDM3MkQsIDB4MDB9LA0KPiA+ID4gPiArICAgICB7MHgzNzJFLCAweDQ2fSwN Cj4gPiA+ID4gKyAgICAgezB4MzcyRiwgMHgwMH0sDQo+ID4gPiA+ICsgICAgIHsweDM3MzAsIDB4 ODl9LA0KPiA+ID4gPiArICAgICB7MHgzNzMxLCAweDAwfSwNCj4gPiA+ID4gKyAgICAgezB4Mzcz MiwgMHgwOH0sDQo+ID4gPiA+ICsgICAgIHsweDM3MzMsIDB4MDF9LA0KPiA+ID4gPiArICAgICB7 MHgzNzM0LCAweEZFfSwNCj4gPiA+ID4gKyAgICAgezB4MzczNSwgMHgwNX0sDQo+ID4gPiA+ICsg ICAgIHsweDM3NUQsIDB4MDB9LA0KPiA+ID4gPiArICAgICB7MHgzNzVFLCAweDAwfSwNCj4gPiA+ ID4gKyAgICAgezB4Mzc1RiwgMHg2MX0sDQo+ID4gPiA+ICsgICAgIHsweDM3NjAsIDB4MDZ9LA0K PiA+ID4gPiArICAgICB7MHgzNzY4LCAweDFCfSwNCj4gPiA+ID4gKyAgICAgezB4Mzc2OSwgMHgx Qn0sDQo+ID4gPiA+ICsgICAgIHsweDM3NkEsIDB4MUF9LA0KPiA+ID4gPiArICAgICB7MHgzNzZC LCAweDE5fSwNCj4gPiA+ID4gKyAgICAgezB4Mzc2QywgMHgxOH0sDQo+ID4gPiA+ICsgICAgIHsw eDM3NkQsIDB4MTR9LA0KPiA+ID4gPiArICAgICB7MHgzNzZFLCAweDBGfSwNCj4gPiA+ID4gKyAg ICAgezB4Mzc3NiwgMHgwMH0sDQo+ID4gPiA+ICsgICAgIHsweDM3NzcsIDB4MDB9LA0KPiA+ID4g PiArICAgICB7MHgzNzc4LCAweDQ2fSwNCj4gPiA+ID4gKyAgICAgezB4Mzc3OSwgMHgwMH0sDQo+ ID4gPiA+ICsgICAgIHsweDM3N0EsIDB4MDh9LA0KPiA+ID4gPiArICAgICB7MHgzNzdCLCAweDAx fSwNCj4gPiA+ID4gKyAgICAgezB4Mzc3QywgMHg0NX0sDQo+ID4gPiA+ICsgICAgIHsweDM3N0Qs IDB4MDF9LA0KPiA+ID4gPiArICAgICB7MHgzNzdFLCAweDIzfSwNCj4gPiA+ID4gKyAgICAgezB4 Mzc3RiwgMHgwMn0sDQo+ID4gPiA+ICsgICAgIHsweDM3ODAsIDB4RDl9LA0KPiA+ID4gPiArICAg ICB7MHgzNzgxLCAweDAzfSwNCj4gPiA+ID4gKyAgICAgezB4Mzc4MiwgMHhGNX0sDQo+ID4gPiA+ ICsgICAgIHsweDM3ODMsIDB4MDZ9LA0KPiA+ID4gPiArICAgICB7MHgzNzg0LCAweEE1fSwNCj4g PiA+ID4gKyAgICAgezB4Mzc4OCwgMHgwRn0sDQo+ID4gPiA+ICsgICAgIHsweDM3OEEsIDB4RDl9 LA0KPiA+ID4gPiArICAgICB7MHgzNzhCLCAweDAzfSwNCj4gPiA+ID4gKyAgICAgezB4Mzc4Qywg MHhFQn0sDQo+ID4gPiA+ICsgICAgIHsweDM3OEQsIDB4MDV9LA0KPiA+ID4gPiArICAgICB7MHgz NzhFLCAweDg3fSwNCj4gPiA+ID4gKyAgICAgezB4Mzc4RiwgMHgwNn0sDQo+ID4gPiA+ICsgICAg IHsweDM3OTAsIDB4RjV9LA0KPiA+ID4gPiArICAgICB7MHgzNzkyLCAweDQzfSwNCj4gPiA+ID4g KyAgICAgezB4Mzc5NCwgMHg3QX0sDQo+ID4gPiA+ICsgICAgIHsweDM3OTYsIDB4QTF9LA0KPiA+ ID4gPiArICAgICB7MHgzN0IwLCAweDM3fSwNCj4gPiA+ID4gKyAgICAgezB4M0UwNCwgMHgwRX0s DQo+ID4gPiA+ICsgICAgIHsweDMwRTgsIDB4NTB9LA0KPiA+ID4gPiArICAgICB7MHgzMEU5LCAw eDAwfSwNCj4gPiA+ID4gKyAgICAgezB4M0UwNCwgMHgwRX0sDQo+ID4gPiA+ICsgICAgIHsweDMw MDIsIDB4MDB9LA0KPiA+ID4gPiArfTsNCj4gPiA+ID4gKw0KPiA+ID4gPiAgLyogU2Vuc29yIG1v ZGUgcmVnaXN0ZXJzICovDQo+ID4gPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGlteDMzNF9yZWcg bW9kZV8zODQweDIxNjBfcmVnc1tdID0gew0KPiA+ID4gPiAgICAgICB7MHgzMDAwLCAweDAxfSwN Cj4gPiA+ID4gQEAgLTI0MywyMCArNDA2LDU3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW14MzM0 X3JlZw0KPiA+ID4gbW9kZV8zODQweDIxNjBfcmVnc1tdID0gew0KPiA+ID4gPiAgICAgICB7MHgz YTAwLCAweDAxfSwNCj4gPiA+ID4gIH07DQo+ID4gPiA+DQo+ID4gPiA+ICtzdGF0aWMgY29uc3Qg c3RydWN0IGlteDMzNF9yZWcgcmF3MTBfZnJhbWVmbXRfcmVnc1tdID0gew0KPiA+ID4gPiArICAg ICB7MHgzMDUwLCAweDAwfSwNCj4gPiA+ID4gKyAgICAgezB4MzE5RCwgMHgwMH0sDQo+ID4gPiA+ ICsgICAgIHsweDM0MUMsIDB4RkZ9LA0KPiA+ID4gPiArICAgICB7MHgzNDFELCAweDAxfSwNCj4g PiA+ID4gK307DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW14MzM0 X3JlZyByYXcxMl9mcmFtZWZtdF9yZWdzW10gPSB7DQo+ID4gPiA+ICsgICAgIHsweDMwNTAsIDB4 MDF9LA0KPiA+ID4gPiArICAgICB7MHgzMTlELCAweDAxfSwNCj4gPiA+ID4gKyAgICAgezB4MzQx QywgMHg0N30sDQo+ID4gPiA+ICsgICAgIHsweDM0MUQsIDB4MDB9LA0KPiA+ID4gPiArfTsNCj4g PiA+ID4gKw0KPiA+ID4gPiArLyoNCj4gPiA+ID4NCj4gPiA+ID4gKyAqLw0KPiA+ID4gPiArc3Rh dGljIGNvbnN0IHUzMiBjb2Rlc1tdID0gew0KPiA+ID4NCj4gPiA+IEp1c3QgImNvZGVzIiBpcyBh IGxpdHRsZSB2YWd1ZSA/IFdoYXQgYWJvdXQgaW14MzM0X21idXNfY29kZXNbXSA/DQo+ID4gPg0K PiA+ID4gPiArICAgICBNRURJQV9CVVNfRk1UX1NSR0dCMTBfMVgxMCwNCj4gPiA+ID4gKyAgICAg TUVESUFfQlVTX0ZNVF9TUkdHQjEyXzFYMTIsDQo+ID4gPiA+ICt9Ow0KPiA+ID4gPiArDQo+ID4g PiA+ICAvKiBTdXBwb3J0ZWQgc2Vuc29yIG1vZGUgY29uZmlndXJhdGlvbnMgKi8gLXN0YXRpYyBj b25zdCBzdHJ1Y3QNCj4gPiA+ID4gaW14MzM0X21vZGUgc3VwcG9ydGVkX21vZGUgPSB7DQo+ID4g PiA+IC0gICAgIC53aWR0aCA9IDM4NDAsDQo+ID4gPiA+IC0gICAgIC5oZWlnaHQgPSAyMTYwLA0K PiA+ID4gPiAtICAgICAuaGJsYW5rID0gNTYwLA0KPiA+ID4gPiAtICAgICAudmJsYW5rID0gMjM0 MCwNCj4gPiA+ID4gLSAgICAgLnZibGFua19taW4gPSA5MCwNCj4gPiA+ID4gLSAgICAgLnZibGFu a19tYXggPSAxMzI4NDAsDQo+ID4gPiA+IC0gICAgIC5wY2xrID0gNTk0MDAwMDAwLA0KPiA+ID4g PiAtICAgICAubGlua19mcmVxX2lkeCA9IDAsDQo+ID4gPiA+IC0gICAgIC5jb2RlID0gTUVESUFf QlVTX0ZNVF9TUkdHQjEyXzFYMTIsDQo+ID4gPiA+IC0gICAgIC5yZWdfbGlzdCA9IHsNCj4gPiA+ ID4gLSAgICAgICAgICAgICAubnVtX29mX3JlZ3MgPSBBUlJBWV9TSVpFKG1vZGVfMzg0MHgyMTYw X3JlZ3MpLA0KPiA+ID4gPiAtICAgICAgICAgICAgIC5yZWdzID0gbW9kZV8zODQweDIxNjBfcmVn cywNCj4gPiA+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW14MzM0X21vZGUgc3VwcG9ydGVkX21v ZGVzW10gPSB7DQo+ID4gPiA+ICsgICAgIHsNCj4gPiA+ID4gKyAgICAgICAgICAgICAud2lkdGgg PSAxOTIwLA0KPiA+ID4gPiArICAgICAgICAgICAgIC5oZWlnaHQgPSAxMDgwLA0KPiA+ID4gPiAr ICAgICAgICAgICAgIC5oYmxhbmsgPSAyODAsDQo+ID4gPiA+ICsgICAgICAgICAgICAgLnZibGFu ayA9IDExNzAsDQo+ID4gPiA+ICsgICAgICAgICAgICAgLnZibGFua19taW4gPSA5MCwNCj4gPiA+ ID4gKyAgICAgICAgICAgICAudmJsYW5rX21heCA9IDEzMjg0MCwNCj4gPiA+ID4gKyAgICAgICAg ICAgICAucGNsayA9IDU5NDAwMDAwMCwNCj4gPiA+ID4gKyAgICAgICAgICAgICAubGlua19mcmVx X2lkeCA9IDAsDQo+ID4gPiA+ICsgICAgICAgICAgICAgLnJlZ19saXN0ID0gew0KPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgLm51bV9vZl9yZWdzID0gQVJSQVlfU0laRShtb2RlXzE5MjB4 MTA4MF9yZWdzKSwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIC5yZWdzID0gbW9kZV8x OTIweDEwODBfcmVncywNCj4gPiA+ID4gKyAgICAgICAgICAgICB9LA0KPiA+ID4gPiArICAgICB9 LA0KPiA+ID4gPiArICAgICB7DQo+ID4gPiA+ICsgICAgICAgICAgICAgLndpZHRoID0gMzg0MCwN Cj4gPiA+ID4gKyAgICAgICAgICAgICAuaGVpZ2h0ID0gMjE2MCwNCj4gPiA+ID4gKyAgICAgICAg ICAgICAuaGJsYW5rID0gNTYwLA0KPiA+ID4gPiArICAgICAgICAgICAgIC52YmxhbmsgPSAyMzQw LA0KPiA+ID4gPiArICAgICAgICAgICAgIC52YmxhbmtfbWluID0gOTAsDQo+ID4gPiA+ICsgICAg ICAgICAgICAgLnZibGFua19tYXggPSAxMzI4NDAsDQo+ID4gPiA+ICsgICAgICAgICAgICAgLnBj bGsgPSA1OTQwMDAwMDAsDQo+ID4gPiA+ICsgICAgICAgICAgICAgLmxpbmtfZnJlcV9pZHggPSAw LA0KPiA+ID4gPiArICAgICAgICAgICAgIC5yZWdfbGlzdCA9IHsNCj4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgIC5udW1fb2ZfcmVncyA9IEFSUkFZX1NJWkUobW9kZV8zODQweDIxNjBfcmVn cyksDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAucmVncyA9IG1vZGVfMzg0MHgyMTYw X3JlZ3MsDQo+ID4gPiA+ICsgICAgICAgICAgICAgfSwNCj4gPiA+DQo+ID4gPiBOaXQ6IEkgd291 bGQga2VlcCB0aGUgZXhpc3RpbmcgZm9ybWF0cyBhbmQgY29kZSBpbiBwb3NpdGlvbiBbMF0gc28N Cj4gPiA+IHRoYXQgaWYgYWRkaXRpb25hbCBtb2RlcyBhcmUgYWRkZWQgdGhlIGRlZmF1bHRzIGNh biBiZSBrZXB0IGluIFswXS4NCj4gPiA+IEFsc28gSSB1c3VhbGx5IHNlZSBkcml2ZXJzIGxpc3Rp bmcgbGFyZ2VyIG1vZGVzIGZpcnN0LCBidXQgdGhhdCBtaWdodCBub3QgYmUgYQ0KPiBzdHJpY3Qg cnVsZS4NCj4gPiA+DQo+ID4gPiA+ICAgICAgIH0sDQo+ID4gPiA+ICB9Ow0KPiA+ID4gPg0KPiA+ ID4gPiBAQCAtMzgyLDcgKzU4Miw4IEBAIHN0YXRpYyBpbnQgaW14MzM0X3VwZGF0ZV9jb250cm9s cyhzdHJ1Y3QNCj4gPiA+ID4gaW14MzM0DQo+ID4gPiAqaW14MzM0LA0KPiA+ID4gPiAgICAgICBp ZiAocmV0KQ0KPiA+ID4gPiAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ID4gPiA+DQo+ID4g PiA+IC0gICAgIHJldCA9IF9fdjRsMl9jdHJsX3NfY3RybChpbXgzMzQtPmhibGFua19jdHJsLCBt b2RlLT5oYmxhbmspOw0KPiA+ID4gPiArICAgICByZXQgPSBfX3Y0bDJfY3RybF9tb2RpZnlfcmFu Z2UoaW14MzM0LT5oYmxhbmtfY3RybCwNCj4gPiA+IElNWDMzNF9SRUdfTUlOLA0KPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU1YMzM0X1JFR19NQVgsIDEsDQo+ ID4gPiA+ICsgbW9kZS0+aGJsYW5rKTsNCj4gPiA+DQo+ID4gPiBJIG1pZ2h0IGhhdmUgbWlzc2Vk IHdoeSBpcyB0aGlzIGNoYW5nZSByZWxhdGVkDQo+ID4NCj4gPiBIYmxhbmsgaXMgcmVhZG9ubHkg dmFyaWFibGUuDQo+ID4gSWYgSSB1c2UgX192NGwyX2N0cmxfc19jdHJsIGZ1bmN0aW9uIHVwZGF0 ZSByZXR1cm4gZXJyb3IuDQo+IA0KPiBTbyBpdCdzIGEgc2VwYXJhdGUgZml4IHVucmVsYXRlZCB0 byB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSBuZXcgbW9kZSA/DQo+IA0KPiBQcm9iYWJseSBpdCBu ZXZlciB0cmlnZ2VyZWQgYmVmb3JlIGFzIHdlIGhhZCBhIHNpbmdsZSBtb2RlIHNvIHRoZSBjb250 cm9sDQo+IHdhcyBhY3R1YWxseSBuZXZlciB1cGRhdGVkLCBidXQgaXQncyBhIGZpeCB3b3J0aCBh IHBhdGNoIG9mIGhpcyBvd24gbWF5YmUuDQo+IA0KPiBJIHdvdWxkIG1ha2UgYSBzZXBhcmF0ZSBw YXRjaCBiZWZvcmUgdGhpcyBvbmUgb3IgY2xlYXJseSBtZW50aW9uIGluIHRoZQ0KPiBjb21taXQg bWVzc2FnZSB0aGF0IGFsc28gdGhpcyBpcyBjaGFuZ2VkIGFuZCB3aHkuDQo+IA0KPiA+ID4NCj4g PiA+ID4gICAgICAgaWYgKHJldCkNCj4gPiA+ID4gICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0K PiA+ID4gPg0KPiA+ID4gPiBAQCAtNTA2LDEwICs3MDcsMTAgQEAgc3RhdGljIGludCBpbXgzMzRf ZW51bV9tYnVzX2NvZGUoc3RydWN0DQo+ID4gPiB2NGwyX3N1YmRldiAqc2QsDQo+ID4gPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnNk X3N0YXRlLA0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHY0 bDJfc3ViZGV2X21idXNfY29kZV9lbnVtDQo+ID4gPiA+ICpjb2RlKSAgew0KPiA+ID4gPiAtICAg ICBpZiAoY29kZS0+aW5kZXggPiAwKQ0KPiA+ID4gPiArICAgICBpZiAoY29kZS0+aW5kZXggPj0g QVJSQVlfU0laRShjb2RlcykpDQo+ID4gPiA+ICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 DQo+ID4gPiA+DQo+ID4gPiA+IC0gICAgIGNvZGUtPmNvZGUgPSBzdXBwb3J0ZWRfbW9kZS5jb2Rl Ow0KPiA+ID4gPiArICAgICBjb2RlLT5jb2RlID0gY29kZXNbY29kZS0+aW5kZXhdOw0KPiA+ID4g Pg0KPiA+ID4gPiAgICAgICByZXR1cm4gMDsNCj4gPiA+ID4gIH0NCj4gPiA+ID4gQEAgLTUyNiwx NSArNzI3LDIwIEBAIHN0YXRpYyBpbnQgaW14MzM0X2VudW1fZnJhbWVfc2l6ZShzdHJ1Y3QNCj4g PiA+IHY0bDJfc3ViZGV2ICpzZCwNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnNkX3N0YXRlLA0KPiA+ID4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2NGwyX3N1YmRldl9mcmFtZV9zaXplX2Vu dW0NCj4gPiA+ID4gKmZzaXplKSAgew0KPiA+ID4gPiAtICAgICBpZiAoZnNpemUtPmluZGV4ID4g MCkNCj4gPiA+ID4gKyAgICAgaW50IGk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgaWYgKGZz aXplLT5pbmRleCA+PSBBUlJBWV9TSVpFKHN1cHBvcnRlZF9tb2RlcykpDQo+ID4gPiA+ICAgICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiA+DQo+ID4gPiA+IC0gICAgIGlmIChmc2l6 ZS0+Y29kZSAhPSBzdXBwb3J0ZWRfbW9kZS5jb2RlKQ0KPiA+ID4gPiArICAgICBmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRShjb2Rlcyk7IGkrKykgew0KPiA+ID4NCj4gPiA+IENhbiB3ZSB1c2Ug Zm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IC4uLiApIG5vdyB0aGF0IEM5OSBoYXMgYmVlbiBhZG9w dGVkID8NCj4gPg0KPiA+IEM5OSBtaWdodCBiZSBhZG9wdGVkLg0KPiA+IEJ1dCBJIGhhdmUgbm90 IG9ic2VydmVyZWQgbm8gb25lIGlzIHN0YXJ0ZWQgdXNpbmcuDQo+ID4NCj4gDQo+ICQgZ2l0IGdy ZXAgLWUgImZvciAodW5zaWduZWQgIiAtZSAiZm9yIChpbnQgIiB2Ni4wLXJjMiAgfCB3YyAtbA0K PiAxODYNCj4gDQo+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgIGlmIChjb2Rlc1tpXSA9PSBm c2l6ZS0+Y29kZSkNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ID4g PiAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ID4NCj4gPiA+IEFyZSB5b3Ugc3Vy ZSB0aGlzIGlzIHJpZ2h0ID8NCj4gPiA+IElmIHRoZSBmb3JtYXQgY29kZSBpbiBmc2l6ZS0+Y29k ZSBpcyA9PSBjb2Rlc1sxXSB5b3Ugd2lsbCByZXR1cm4gLUVJTlZBTCA/DQo+ID4NCj4gPiBJIHRo aW5rIHRoaXMgd2lsbCBicmVhayB0aGUgZm9yIGxvb3AsIGlmIGZzaXplLT5jb2RlIGlzID09IGNv ZGVzWzFdDQo+IA0KPiBZZXMgYnV0IGJlZm9yZSBnZXR0aW5nIHRvIGNvZGVzWzFdIHlvdSB3b3Vs ZCB0ZXN0IGNvZGVzWzBdIGFuZCBpZg0KPiBmc2l6ZS0+Y29kZSAhPSBjb2Rlc1swXSB5b3Ugd2ls bCByZXR1cm4gLUVJTlZBTA0KPiANCj4gQW0gSSByZWFkaW5nIHRoaXMgd3JvbmcgPw0KPiANCg0K WWVzLCBJIGFtIHdyb25nDQoNCklmIChjb2Rlc1swXSAhPSBmc2l6ZS0+Y29kZSAgJiYgIGNvZGVz WzFdICE9IGZzaXplLT5jb2RlICkNCglyZXR1cm4gLUVJTlZBTA0KDQo+ID4gPg0KPiA+ID4gRG9l cyB0aGUgc2Vuc29yIHN1cHBvcnQgbW9yZSBmb3JtYXRzIHRoYW4NCj4gPiA+IE1FRElBX0JVU19G TVRfU1JHR0IxMF8xWDEwIGFuZA0KPiBNRURJQV9CVVNfRk1UX1NSR0dCMTJfMVgxMiA/DQo+ID4g PiBCZWNhdXNlIG90aGVyd2lzZSB5b3UgY291bGQgcmVwbGFjZSB0aGUgZm9yIGxvb3Agd2l0aCBh IHNpbXBsZSBjaGVjay4NCj4gPiA+DQo+ID4gPiBIb3dldmVyIHN1cHBvcnQgZm9yIGZsaXAgbWln aHQgY2hhbmdlIHRoZSBiYXllciBwYXR0ZXJuLCBzbyBpdCdzDQo+ID4gPiBiZXR0ZXIgdG8ga2Vl cCB0aGUgbG9vcCBtYXliZS4NCj4gPiA+DQo+ID4gPiBXaGF0IGFib3V0IGNlbnRybGl6ZSBpdCBs aWtlIHlvdSdyZSBkb2luZyBpbg0KPiA+ID4gaW14MjE5X2dldF9mb3JtYXRfY29kZSgpIGFuZCB1 c2UgaXQgaGVyZSA/IFlvdSBjYW4gcGxhY2UgdGhlIGhlbHBlcg0KPiA+ID4ganVzdCBhZnRlciB0 aGUgc3VwcG9ydGVkIG1idXMgY29kZXMgZGVjbGFyYXRpb24gbWF5YmUgPw0KPiA+ID4NCj4gPiBZ ZXMsIGl0IGlzIGdvb2QuIEJ1dCBpbXgzMzQgZG8gbm90IGhhdmUgZGlyZWN0IHJlZ2lzdGVyIHRv IGRvIFZGTElQLg0KPiA+DQo+ID4gPg0KPiA+ID4gPiArICAgICB9DQo+ID4gPiA+DQo+ID4gPiA+ IC0gICAgIGZzaXplLT5taW5fd2lkdGggPSBzdXBwb3J0ZWRfbW9kZS53aWR0aDsNCj4gPiA+ID4g KyAgICAgZnNpemUtPm1pbl93aWR0aCA9IHN1cHBvcnRlZF9tb2Rlc1tmc2l6ZS0+aW5kZXhdLndp ZHRoOw0KPiA+ID4gPiAgICAgICBmc2l6ZS0+bWF4X3dpZHRoID0gZnNpemUtPm1pbl93aWR0aDsN Cj4gPiA+ID4gLSAgICAgZnNpemUtPm1pbl9oZWlnaHQgPSBzdXBwb3J0ZWRfbW9kZS5oZWlnaHQ7 DQo+ID4gPiA+ICsgICAgIGZzaXplLT5taW5faGVpZ2h0ID0gc3VwcG9ydGVkX21vZGVzW2ZzaXpl LT5pbmRleF0uaGVpZ2h0Ow0KPiA+ID4gPiAgICAgICBmc2l6ZS0+bWF4X2hlaWdodCA9IGZzaXpl LT5taW5faGVpZ2h0Ow0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICByZXR1cm4gMDsNCj4gPiA+ID4g QEAgLTU1Myw3ICs3NTksNyBAQCBzdGF0aWMgdm9pZCBpbXgzMzRfZmlsbF9wYWRfZm9ybWF0KHN0 cnVjdA0KPiA+ID4gPiBpbXgzMzQgKmlteDMzNCwgIHsNCj4gPiA+ID4gICAgICAgZm10LT5mb3Jt YXQud2lkdGggPSBtb2RlLT53aWR0aDsNCj4gPiA+ID4gICAgICAgZm10LT5mb3JtYXQuaGVpZ2h0 ID0gbW9kZS0+aGVpZ2h0Ow0KPiA+ID4gPiAtICAgICBmbXQtPmZvcm1hdC5jb2RlID0gbW9kZS0+ Y29kZTsNCj4gPiA+ID4gKyAgICAgZm10LT5mb3JtYXQuY29kZSA9IGlteDMzNC0+Y3VyX2NvZGU7 DQo+ID4gPiA+ICAgICAgIGZtdC0+Zm9ybWF0LmZpZWxkID0gVjRMMl9GSUVMRF9OT05FOw0KPiA+ ID4gPiAgICAgICBmbXQtPmZvcm1hdC5jb2xvcnNwYWNlID0gVjRMMl9DT0xPUlNQQUNFX1JBVzsN Cj4gPiA+ID4gICAgICAgZm10LT5mb3JtYXQueWNiY3JfZW5jID0gVjRMMl9ZQ0JDUl9FTkNfREVG QVVMVDsgQEAgLTU5MSw2DQo+ID4gPiA+ICs3OTcsMTggQEAgc3RhdGljIGludCBpbXgzMzRfZ2V0 X3BhZF9mb3JtYXQoc3RydWN0IHY0bDJfc3ViZGV2DQo+ID4gPiA+ICsqc2QsDQo+ID4gPiA+ICAg ICAgIHJldHVybiAwOw0KPiA+ID4gPiAgfQ0KPiA+ID4gPg0KPiA+ID4gPiArc3RhdGljIGludCBp bXgyMTlfZ2V0X2Zvcm1hdF9jb2RlKHN0cnVjdCBpbXgzMzQgKmlteDMzNCwgc3RydWN0DQo+ID4g PiA+ICt2NGwyX3N1YmRldl9mb3JtYXQgKmZtdCkgew0KPiA+ID4gPiArICAgICBpbnQgaTsNCj4g PiA+ID4gKw0KPiA+ID4gPiArICAgICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjb2Rlcyk7 IGkrKykgew0KPiA+ID4NCj4gPiA+IERpdHRvLCB1bnNpZ25lZCBpbnQgYW5kIHBvc3NpYmlseSBk ZWNsYXJlZCBpbnNpZGUgdGhlIGZvciBsb29wDQo+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAg IGlmIChjb2Rlc1tpXSA9PSBmbXQtPmZvcm1hdC5jb2RlKQ0KPiA+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIGNvZGVzW2ldOw0KPiA+ID4gPiArICAgICB9DQo+ID4gPiA+ICsNCj4g PiA+ID4gKyAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+ ID4gIC8qKg0KPiA+ID4gPiAgICogaW14MzM0X3NldF9wYWRfZm9ybWF0KCkgLSBTZXQgc3ViZGV2 aWNlIHBhZCBmb3JtYXQNCj4gPiA+ID4gICAqIEBzZDogcG9pbnRlciB0byBpbXgzMzQgVjRMMiBz dWItZGV2aWNlIHN0cnVjdHVyZSBAQCAtNjA2LDEwDQo+ID4gPiA+ICs4MjQsMjEgQEAgc3RhdGlj IGludCBpbXgzMzRfc2V0X3BhZF9mb3JtYXQoc3RydWN0IHY0bDJfc3ViZGV2DQo+ID4gPiA+ICsq c2QsDQo+ID4gPiA+ICAgICAgIHN0cnVjdCBpbXgzMzQgKmlteDMzNCA9IHRvX2lteDMzNChzZCk7 DQo+ID4gPiA+ICAgICAgIGNvbnN0IHN0cnVjdCBpbXgzMzRfbW9kZSAqbW9kZTsNCj4gPiA+ID4g ICAgICAgaW50IHJldCA9IDA7DQo+ID4gPiA+ICsgICAgIHUzMiBjb2RlOw0KPiA+ID4gPg0KPiA+ ID4gPiAgICAgICBtdXRleF9sb2NrKCZpbXgzMzQtPm11dGV4KTsNCj4gPiA+ID4NCj4gPiA+ID4g LSAgICAgbW9kZSA9ICZzdXBwb3J0ZWRfbW9kZTsNCj4gPiA+ID4gKyAgICAgY29kZSA9IGlteDIx OV9nZXRfZm9ybWF0X2NvZGUoaW14MzM0LCBmbXQpOw0KPiA+ID4gPiArICAgICBpZiAoY29kZSA8 IDApDQo+ID4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiA+ICsNCj4g PiA+ID4gKyAgICAgaW14MzM0LT5jdXJfY29kZSA9IGNvZGU7DQo+ID4gPiA+ICsNCj4gPiA+ID4g KyAgICAgbW9kZSA9IHY0bDJfZmluZF9uZWFyZXN0X3NpemUoc3VwcG9ydGVkX21vZGVzLA0KPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlJBWV9TSVpFKHN1cHBv cnRlZF9tb2RlcyksDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHdpZHRoLCBoZWlnaHQsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZtdC0+Zm9ybWF0LndpZHRoLA0KPiA+ID4gPiArIGZtdC0+Zm9ybWF0LmhlaWdodCk7DQo+ ID4gPiA+ICsNCj4gPiA+ID4gICAgICAgaW14MzM0X2ZpbGxfcGFkX2Zvcm1hdChpbXgzMzQsIG1v ZGUsIGZtdCk7DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgIGlmIChmbXQtPndoaWNoID09IFY0TDJf U1VCREVWX0ZPUk1BVF9UUlkpIHsgQEAgLTYxNyw3ICs4NDYsNw0KPiA+ID4gQEANCj4gPiA+ID4g c3RhdGljIGludCBpbXgzMzRfc2V0X3BhZF9mb3JtYXQoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwN Cj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICAgICAgICBmcmFtZWZtdCA9IHY0bDJfc3ViZGV2X2dl dF90cnlfZm9ybWF0KHNkLCBzZF9zdGF0ZSwgZm10LQ0KPiA+cGFkKTsNCj4gPiA+ID4gICAgICAg ICAgICAgICAqZnJhbWVmbXQgPSBmbXQtPmZvcm1hdDsNCj4gPiA+ID4gLSAgICAgfSBlbHNlIHsN Cj4gPiA+ID4gKyAgICAgfSBlbHNlIGlmIChpbXgzMzQtPmN1cl9tb2RlICE9IG1vZGUpIHsNCj4g PiA+DQo+ID4gPiBJcyB0aGlzIGNoYW5nZSByZWxhdGVkID8gSSB0aGluayBpdCdzIGdvb2QgYXMg aXQgYXZvaWRzIGFuDQo+ID4gPiB1bmVjZXNzYXJ5IHVwZGF0ZSBvZiB0aGUgY29udHJvbHMsIGJ1 dCBtYXliZSBpdCdzIG5vdCByZWxhdGVkIHRvIHRoaXMNCj4gcGF0Y2ggPw0KPiA+DQo+ID4gSSBo YXZlIHVwZGF0ZWQgbW9kZVtdIGFycmF5IG5ldyBzZXQgb2YgdmFsdWUsIEluc2F0ZWQgb2YgY2Fs bGluZw0KPiA+IGZ1bmN0aW9ucyBzaW1wbHkuDQo+ID4gSnVzdCBhZGRlZCBhIGNoZWNrIHRoZSB0 aGUgbW9kZSBjaGFuZ2VkIHRoZW4gb25seSB3ZSBuZWVkIHRvIHVwZGF0ZWQNCj4gPiBvdGhlciBw YXJhbWV0ZXJzIFNhbWUgYXMgaW14MjE5IGNvZGUNCj4gDQo+IFlvdSdyZSByaWdodCwgd2UgaGFk IGEgc2luZ2xlIG1vZGUgYmVmb3JlIHRoaXMgY2hhbmdlIDopDQo+IA0KPiA+DQo+ID4gVGhhbmtz LA0KPiA+IFNocmF2YW4NCj4gPg0KPiA+ID4NCj4gPiA+IFRoYW5rcw0KPiA+ID4gICBqDQo+ID4g Pg0KPiA+ID4gPiAgICAgICAgICAgICAgIHJldCA9IGlteDMzNF91cGRhdGVfY29udHJvbHMoaW14 MzM0LCBtb2RlKTsNCj4gPiA+ID4gICAgICAgICAgICAgICBpZiAoIXJldCkNCj4gPiA+ID4gICAg ICAgICAgICAgICAgICAgICAgIGlteDMzNC0+Y3VyX21vZGUgPSBtb2RlOyBAQCAtNjQyLDExICs4 NzEsMjYNCj4gPiA+ID4gQEAgc3RhdGljIGludCBpbXgzMzRfaW5pdF9wYWRfY2ZnKHN0cnVjdCB2 NGwyX3N1YmRldiAqc2QsDQo+ID4gPiA+ICAgICAgIHN0cnVjdCB2NGwyX3N1YmRldl9mb3JtYXQg Zm10ID0geyAwIH07DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgIGZtdC53aGljaCA9IHNkX3N0YXRl ID8gVjRMMl9TVUJERVZfRk9STUFUX1RSWSA6DQo+ID4gPiBWNEwyX1NVQkRFVl9GT1JNQVRfQUNU SVZFOw0KPiA+ID4gPiAtICAgICBpbXgzMzRfZmlsbF9wYWRfZm9ybWF0KGlteDMzNCwgJnN1cHBv cnRlZF9tb2RlLCAmZm10KTsNCj4gPiA+ID4gKyAgICAgaW14MzM0X2ZpbGxfcGFkX2Zvcm1hdChp bXgzMzQsICZzdXBwb3J0ZWRfbW9kZXNbMV0sICZmbXQpOw0KPiA+ID4gPg0KPiA+ID4gPiAgICAg ICByZXR1cm4gaW14MzM0X3NldF9wYWRfZm9ybWF0KHNkLCBzZF9zdGF0ZSwgJmZtdCk7ICB9DQo+ ID4gPiA+DQo+ID4gPiA+ICtzdGF0aWMgaW50IGlteDMzNF9zZXRfZnJhbWVmbXQoc3RydWN0IGlt eDMzNCAqaW14MzM0KSB7DQo+ID4gPiA+ICsgICAgIHN3aXRjaCAoaW14MzM0LT5jdXJfY29kZSkg ew0KPiA+ID4gPiArICAgICBjYXNlIE1FRElBX0JVU19GTVRfU1JHR0IxMF8xWDEwOg0KPiA+ID4g PiArICAgICAgICAgICAgIHJldHVybiBpbXgzMzRfd3JpdGVfcmVncyhpbXgzMzQsDQo+ID4gPiA+ ICtyYXcxMF9mcmFtZWZtdF9yZWdzLA0KPiA+ID4gPiArDQo+ID4gPiA+ICtBUlJBWV9TSVpFKHJh dzEwX2ZyYW1lZm10X3JlZ3MpKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICBjYXNlIE1FRElB X0JVU19GTVRfU1JHR0IxMl8xWDEyOg0KPiA+ID4gPiArICAgICAgICAgICAgIHJldHVybiBpbXgz MzRfd3JpdGVfcmVncyhpbXgzMzQsIHJhdzEyX2ZyYW1lZm10X3JlZ3MsDQo+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJSQVlfU0laRShyYXcxMl9mcmFtZWZt dF9yZWdzKSk7DQo+ID4gPiA+ICsgICAgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICByZXR1 cm4gLUVJTlZBTDsNCj4gPiA+ID4gK30NCj4gPiA+ID4gKw0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+ ICAgKiBpbXgzMzRfc3RhcnRfc3RyZWFtaW5nKCkgLSBTdGFydCBzZW5zb3Igc3RyZWFtDQo+ID4g PiA+ICAgKiBAaW14MzM0OiBwb2ludGVyIHRvIGlteDMzNCBkZXZpY2UgQEAgLTY2Nyw2ICs5MTEs MTMgQEAgc3RhdGljDQo+ID4gPiA+IGludCBpbXgzMzRfc3RhcnRfc3RyZWFtaW5nKHN0cnVjdCBp bXgzMzQNCj4gPiA+ICppbXgzMzQpDQo+ID4gPiA+ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsN Cj4gPiA+ID4gICAgICAgfQ0KPiA+ID4gPg0KPiA+ID4gPiArICAgICByZXQgPSBpbXgzMzRfc2V0 X2ZyYW1lZm10KGlteDMzNCk7DQo+ID4gPiA+ICsgICAgIGlmIChyZXQpIHsNCj4gPiA+ID4gKyAg ICAgICAgICAgICBkZXZfZXJyKGlteDMzNC0+ZGV2LCAiJXMgZmFpbGVkIHRvIHNldCBmcmFtZSBm b3JtYXQ6ICVkXG4iLA0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIHJl dCk7DQo+ID4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gPiA+ID4gKyAgICAgfQ0K PiA+ID4gPiArDQo+ID4gPiA+ICAgICAgIC8qIFNldHVwIGhhbmRsZXIgd2lsbCB3cml0ZSBhY3R1 YWwgZXhwb3N1cmUgYW5kIGdhaW4gKi8NCj4gPiA+ID4gICAgICAgcmV0ID0gIF9fdjRsMl9jdHJs X2hhbmRsZXJfc2V0dXAoaW14MzM0LT5zZC5jdHJsX2hhbmRsZXIpOw0KPiA+ID4gPiAgICAgICBp ZiAocmV0KSB7DQo+ID4gPiA+IEBAIC0xMDM3LDcgKzEyODgsOCBAQCBzdGF0aWMgaW50IGlteDMz NF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudA0KPiAqY2xpZW50KQ0KPiA+ID4gPiAgICAgICB9DQo+ ID4gPiA+DQo+ID4gPiA+ICAgICAgIC8qIFNldCBkZWZhdWx0IG1vZGUgdG8gbWF4IHJlc29sdXRp b24gKi8NCj4gPiA+ID4gLSAgICAgaW14MzM0LT5jdXJfbW9kZSA9ICZzdXBwb3J0ZWRfbW9kZTsN Cj4gPiA+ID4gKyAgICAgaW14MzM0LT5jdXJfbW9kZSA9ICZzdXBwb3J0ZWRfbW9kZXNbMV07DQo+ ID4gPiA+ICsgICAgIGlteDMzNC0+Y3VyX2NvZGUgPSBjb2Rlc1sxXTsNCj4gPiA+ID4gICAgICAg aW14MzM0LT52YmxhbmsgPSBpbXgzMzQtPmN1cl9tb2RlLT52Ymxhbms7DQo+ID4gPiA+DQo+ID4g PiA+ICAgICAgIHJldCA9IGlteDMzNF9pbml0X2NvbnRyb2xzKGlteDMzNCk7DQo+ID4gPiA+IC0t DQo+ID4gPiA+IDIuMTcuMQ0KPiA+ID4gPg0K