Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp1080121pxm; Thu, 3 Mar 2022 09:55:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJx7W+SQ7syecBZmU6tK3mQqfFMqLhgwUppaRcaSSdpRFPfgZh0QtrlZE81JSsTqdfTHeXpU X-Received: by 2002:a17:907:97d5:b0:6da:5b9f:6133 with SMTP id js21-20020a17090797d500b006da5b9f6133mr7339918ejc.343.1646330111170; Thu, 03 Mar 2022 09:55:11 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1646330111; cv=pass; d=google.com; s=arc-20160816; b=YutDSObVOs5rKNDN38sdhLzPd886Uw5SUbHFX22nNjAOop7Zrx1BjOX0Uq2QS+9dtf hZMDwEYg0pACJ/P0ylAIqba3u4umkGCHmv0JaY0T2fznMczrMtC5h3pu7c+bQysKczUi iWAKVlxuEIvofuW8g19UJj9cHJZ5PUcVZyXIf6xVoxYhozmRs92znbNVZkVOHO+8K/kS AWPife90B4qiJm2EXRlRj45T9j/oK+zbNIu37j7bqAhk1O2t3PQiwfwoxBqXJWl8b0wb 6jnbuLoxvQd1FcP54NN41m0S9M7SI98ZOqFV1yHLc/G+ua8Dn7Lt9T/DN4n06vgZWmD2 JdZA== 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:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature:dkim-signature; bh=YlPMV0iDjrXV2fTQAtb6bOS8zBsIMgepDlVq6ngVhs4=; b=QOWLhCpXsC1thjMHoWFAelppULFZWxPv/ZWMxoQS34VaRvteqmL21xk0WU8gmZTWyM Gt6vGE7IAinEa21NJ8EvsjRFWcovG+7g0Zcz81MccSuSqQNylDbZXbSd0kYQEdpnEXkF 5M9L79gDBPpR4f9Ovh0m7yTfie3iD4Mo/UNYR2zIT/iVCOS5rsWlv8K3S4nkJgm+v71q trc0iMJqSj1xBUHE0C9d931bsulkECsPZ1gd422hIkG7LvPPE3TKrOBy4pcyK5f9+FDe XV7J1DCEjguS7BrLgOMrMld5D7NyfHoQZ23+DkQwI4qfJIb8XdOyjfo+e3EBA42W4cqo H+VA== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@microchip.com header.s=mchp header.b=KSmeYqrz; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=Toa2R7VJ; 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=fail (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 k19-20020a1709063fd300b006d6dc43f6f5si1595176ejj.12.2022.03.03.09.54.45; Thu, 03 Mar 2022 09:55:11 -0800 (PST) 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=fail header.i=@microchip.com header.s=mchp header.b=KSmeYqrz; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=Toa2R7VJ; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234377AbiCCPWk (ORCPT + 99 others); Thu, 3 Mar 2022 10:22:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233206AbiCCPWj (ORCPT ); Thu, 3 Mar 2022 10:22:39 -0500 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 513F919141D; Thu, 3 Mar 2022 07:21:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1646320913; x=1677856913; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=YlPMV0iDjrXV2fTQAtb6bOS8zBsIMgepDlVq6ngVhs4=; b=KSmeYqrz/8nZbfvFP0FJvkKa85HDYDf1M/OmkjSDKIOzzyVwu9rRjpXm wX4+FAMvhSYZIfU68AILku39T6i/qJZR9zJh5eteuElcsu76BJmGDhYXX aDsfZXtEjc4XIfZqtAKg39T+YsrWT26EnDXxvLPFo82VsDFhIawWhwKMs GIXlBALZrT6HFwfe7ccqb9h0Aa9pXphIF5O2bfJVEdFtfIko4aF7tw3Y2 gDy0OIHroNNcPQyB9QKpP9SC7rulcmL5r8o6zeCy36deBTp+A8vXrscyx oDBj2E7DIyH/oZWJ6Yo6zXB+hx/GR9dQ/bHeAEgxpkpsmrtuvTb99u/2o A==; X-IronPort-AV: E=Sophos;i="5.90,151,1643698800"; d="scan'208";a="155136855" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa5.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 03 Mar 2022 08:21:52 -0700 Received: from chn-vm-ex03.mchp-main.com (10.10.85.151) by chn-vm-ex04.mchp-main.com (10.10.85.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Thu, 3 Mar 2022 08:21:50 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17 via Frontend Transport; Thu, 3 Mar 2022 08:21:50 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jRdpMKfVDTugKRiIAyVIXvUgOls9wbLmjUUrvrGlJh/xsCyEBFw2VY7Ic4AsjozEJGzMtwOV78X5j1Wy/S0/3FtSUgnsntdwkpyhb7NINFmcvXU5HwDbIU8SOW65VKWT3RjlufhbqI+WnmxDEeVw2yWQUCetHykKm8EfoEA/7z4CnlPlxNyUraea5PTa0BnRJ9W0WhQIbxOGQrXkl1L0ez8FMJucU0y+78v03AM96hYGQ+juMWR4sRD17WqoGpptPt0S1HfmeMl2Vgj9j2gVynJZhQySZsawqaSqPwVSB6RQAvYaq+BexAJHrfhM1YHHtUkgXV81TRFbpy4AKiv8Jw== 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=YlPMV0iDjrXV2fTQAtb6bOS8zBsIMgepDlVq6ngVhs4=; b=Pk9uIE7S3UJhFDEVZ7DWUZJH9ID+1RK0aYgv7urDKE279CCvUWdFsH7Z9ZWuCMSIcdFgTpVmbnrBmLm2XskOyaA7Q1AGL0gQfio6RxX6WmFqIW5Zl+CCdX5M5vwtlf8fvM+DLuzF4L434nIsBE6QrkrD4rQk0JODVylrTOMBEw9qvCNVUltFIzpCsIKK8lgvEn3B5z3yx0ngAzui2KUy9fo2L2lhxx66kcE/4w/ErCT5rtNgXGlMv1+/DCFAljkgSGynZ5EdzlzLzHwUxL1Zf8R9+n/SgItEyoVGKArVI4XqPMZPW7RhgUwJ7f8582HCE4hA6SIM6c8u/jy8640O4A== 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=YlPMV0iDjrXV2fTQAtb6bOS8zBsIMgepDlVq6ngVhs4=; b=Toa2R7VJHV7JnHKh8kMxNq7iL59Cga4vO4f44HyBx7QB5hvLsJqmMAVkGJEicbbyu8iBHEl0fx0jl37b8ehyQTKv/j8VAFlkAwe551BhiqIJZfqdThVgF7ZXfThEnN80TN7gbUTdUPOJfye5lDss25Py+PVQx5W5eTHicZZLIco= Received: from BL1PR11MB5384.namprd11.prod.outlook.com (2603:10b6:208:311::14) by MN2PR11MB3805.namprd11.prod.outlook.com (2603:10b6:208:f4::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.22; Thu, 3 Mar 2022 15:21:38 +0000 Received: from BL1PR11MB5384.namprd11.prod.outlook.com ([fe80::11a5:42e0:3f3d:fcdc]) by BL1PR11MB5384.namprd11.prod.outlook.com ([fe80::11a5:42e0:3f3d:fcdc%9]) with mapi id 15.20.5038.014; Thu, 3 Mar 2022 15:21:38 +0000 From: To: CC: , , , , , , Subject: Re: [PATCH v5 08/13] media: atmel: atmel-isc: change format propagation to subdev into only verification Thread-Topic: [PATCH v5 08/13] media: atmel: atmel-isc: change format propagation to subdev into only verification Thread-Index: AQHYJAapIDRCZit1lUCZuyvJGG0lB6yhZpgAgAx2GQA= Date: Thu, 3 Mar 2022 15:21:38 +0000 Message-ID: <92c85263-2d5f-8dd5-830c-249ca5eb5828@microchip.com> References: <20220217135645.1427466-1-eugen.hristev@microchip.com> <20220217135645.1427466-9-eugen.hristev@microchip.com> <20220223170348.p7nkpkixfaabyzrl@uno.localdomain> In-Reply-To: <20220223170348.p7nkpkixfaabyzrl@uno.localdomain> Accept-Language: en-US, ro-RO Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 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: 209f8ef7-13d1-45e6-edb5-08d9fd2982f2 x-ms-traffictypediagnostic: MN2PR11MB3805:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dnbgzIzT54Q9IoccIQl3O09x2Ici8XDsNSvb/9CgASRDElWSVFn3kftFrHcPbcapk0VBEk2kGlqxmJcFjAov39LeJzZQOQaE2S370FODNglGgdLakj6CVy1MeOIppOANQ/veOI84cEfTT6L6SryXx+Ls7at3GhhwXS6fnRUCVT2hTo0JLXAsHrXgD9CweXXvIyg48o5W9IWR2jnpFZgHUnIuhM5IkC6LtcDLyyVsaDwcN3tmeQYz/Yc0amUQ+f+0KnpDVHKTPlKZt7W7IY+T7rbbx6RIx9Q42BuJ6LnA1jhHAm1AesUwmOaFXH0zQv2L3Wf2phVmgljmg5EKtvC7rqmels7B8XM531Hbvtxd/AnfY9J0rIrv/Dx8TQfDtddHKNnnp580pNf7wfd7FEi0nh7EnZrmoa3YbgRLdRluQqOMjOjKrOdshStBDEvDTxjbGErkDaeM2usTBkKl96mvgeDDVw7+rZME2n53Dmo8EpjJjr3ihtkIN1kIZmlkWBMthhRdm3LJbWfDd8jTZviNyJMJ9dHoT1gA7FcZuWv+bOjit4Gd9qlMdCkKZh/BEjzPU4xyZ+HH5IZ1hepjQqBDfnbxb4vBKInhh7LpT20WphA40AyWCqudIG0ORIs0jFBYxz/zbc/NoXsvUUe8WEbqQtpCFqPRlJzW4a7mqTR/0XIXtfolnglDEF84Qi5g1TQqQniakciDDBJqHD8mBxPQRA+u4ZIBYXso96KoEVpuJ4QQoH28oNEVmXBhJ7EqSW8++zvw6ganbc0RbqTnT63cfw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5384.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(5660300002)(38070700005)(316002)(31696002)(6512007)(86362001)(15650500001)(8676002)(64756008)(66476007)(66556008)(76116006)(66946007)(2616005)(4326008)(107886003)(91956017)(2906002)(30864003)(186003)(26005)(66446008)(38100700002)(53546011)(36756003)(6506007)(6486002)(71200400001)(508600001)(122000001)(6916009)(83380400001)(54906003)(31686004)(8936002)(43740500002)(45980500001)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QXhGRS9MYVVzWlRVcTdSS2oxMGZvSjdhay91Q0tKa28wMXFhUUpuYnBzOGph?= =?utf-8?B?N3A3RExPSWE0L1k0MHBCWkVSNGVKOHQ3SFZwbnZDRC93WnE2R3hBNW5TZ2Z0?= =?utf-8?B?OFJJRW1BR3puY0NwL1FJcTRNMklUVW53M3h2eWdZTkgyOXFNVkZIMHFiUW00?= =?utf-8?B?Q3RLN25JbVR2bndtdks0UUdhTGdSQnowdTVuanBhWUREUldzVFkxRXRTYmVE?= =?utf-8?B?TEs5dmdCcnJiUFFHSlpOeEg4ejdFZlRJMXhqSkpTQUdYQ09uVVZXMk5Gelpi?= =?utf-8?B?UGdrVDVJUmxCWFBOQ3ByOXRNb1ZNemd2dTUvZFNmVXVXaWRJYXh0QUpBRU1l?= =?utf-8?B?bmlFM3o5a1JWL1Y4T25TdXplZXExR0E4Y3lsSnI2d2J5MU9sbVdUME5DN25T?= =?utf-8?B?OUlrbVdaYlB3aGk2R3dGcW4vV1FwV29XTTB3dEhUaC9BZFBRVzJrZ0F6NXNQ?= =?utf-8?B?dVlTU3ZpVG5SMGlmVGU5YlhOQUR0c09JbTByU2MxYmtmbnF0WHY4L3JxOThL?= =?utf-8?B?SzE5bmlvbjNUVDRmRG5QcGlPV2xhSVY1VCtKbWx4N2VsZjhwZ2tEOE5vVG1z?= =?utf-8?B?VHdhejl5OERzNUZuVWMrbmR1ZkxDR21EMTBJa1pjUy9BWDlEcVRnWW14cFRy?= =?utf-8?B?RzF6ZWJqYnFvaTBwMjZkdDVEd0tFVjJtUC9oRWxxNHZnZzk2K2hQeHRBTTUy?= =?utf-8?B?Z2dUclZHSlNyeUJnakdubE1WTFJCZk56TUovdEx2OHQ3VCtPcU1JOWNVaUw1?= =?utf-8?B?RXVnM01TTWJtZFJ6MG5GMlNWT2t2ODliUU53aThGSHp3dXUrQkFmN296cTlp?= =?utf-8?B?RVhJUXpvSDRoTk5aUWdtVUtJNy9RczBHNC9MMnhNSWRaNFhCK1ZFbXFTdnpC?= =?utf-8?B?TjF1dXFoS2JXS3krT0s0NkZ4UWJkdGNLVUU4Q3h5SGFwR1I1VlMvcTFmY0FR?= =?utf-8?B?S2U1bDJJTndnQyt4R2k5Zkd3Q1hqSiswOFJ3L0ZLM0g1dWVvWmZJNjlZRjhx?= =?utf-8?B?VXZLdWRmMXh0V1FXUGFsNnlOYjhocWwxOXRyNXV3aEdGUERlU0hBcHNoL3BT?= =?utf-8?B?YnpadTAzYXJKdDZuWWZJSWd1MjNhOEsrV3h4YzNHWlZFRitSb2dRVlkyQUhy?= =?utf-8?B?UEdWMUFXU3BEaXQvTzNZZWRvSW5yR1o0dVhKNk82Z3B1U1djRnQwSmRQdllu?= =?utf-8?B?TTZaSkYyakVoTm10SXRuclh0R3g1QzI1VXZSMk05VGdneDR0RkJUTzMySHlo?= =?utf-8?B?Sk1RTkQ5TVl0QUUrbzNnZGNaYi9tejJrSWlrakhXSXJYbEx6VExSNDhiczRE?= =?utf-8?B?NlRRdEM3L0hya24xNDMzVEJkZmVDTHQyNDR2dk4vdk1IbDdxR1N2c2xZSjMw?= =?utf-8?B?azBVT0ZZRERsN1AyTUJETHBybklqUUltalkwRVNUQXpYYm5ncExoZXQrdGpZ?= =?utf-8?B?U0V0RktSWDRWTXVuRXVIL1FJbEprZDRXS1lvMzhmWW5ZWkJPc0haQkZJc2Nm?= =?utf-8?B?Nnl1VEpPNGZtQmQ1Wjdra25xZDQzUUE3RjlFcWJ5cE5TVVlibW9YZGUwNHo2?= =?utf-8?B?RktSVlhOeUVtR1VXUUxhMzhjTzdFYzlaWDM1bEdYZXJyMVErL3pWTlkzWHNH?= =?utf-8?B?a0tsZFF3a2NlL2lTbEZlQ2Nxa2VCS1lhNDVPSzVnNlFxcC9YTmhOWkZHVUxC?= =?utf-8?B?Z1NPTitQL1U4QWhvKzRTbEU5RHI4R3laSHI0MGJBYU5CMkVkMWZPTEVua3NN?= =?utf-8?B?SGN5azdoRjkxcjhGenl3SjVXWWRORWlmbkpTYnhtVzdZWWdiOXlxbU9kektQ?= =?utf-8?B?Rmh3UFpNVVd5RkNBOUJuSmFoYnUxcVV4S1NYSTNobGtMRFFmSTlub3RMVDR1?= =?utf-8?B?ZWpNZWNZUWZFbjBGZGtGbHJ6aTIxSEdscG5nOVI4aHJiMTZtS0Q2Z1BvZWlP?= =?utf-8?B?dXRaS2NyazdsSitXeXpxY3VmckE4UUhPWU01OVFUQnZQZndJMDc1TXJsblRG?= =?utf-8?B?MVdRU3NHYlRWZ3puSm5ZY1hXWndWUTdyZnZSaWY5SEk0c2lKbzNqa3pGZ1J3?= =?utf-8?B?ZVg2RG9vSHpMWkQzaDZMUHZHTys5N0IzYTJmVEZvZ1QxMUYxTFo0K3dFSTBh?= =?utf-8?B?TzFwc3ZtV0tBdjc4b0xRMEs5UEpodjlwSFc0VzNWQjZrdVJYSHlZVDBTUXU3?= =?utf-8?B?OXY5cm5oSFh3MUNPNTlVQkl3NUNDZU9UTjA4RTdmMEs4ZzYzd3BrSFVrV29t?= =?utf-8?B?dlkzREJleWpQUmpFS2pZZXlQUDdnPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5384.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 209f8ef7-13d1-45e6-edb5-08d9fd2982f2 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2022 15:21:38.0674 (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: 1EYhdg889qDp+g8BgHVvtU+zxPplW4nDvbJ6kW8ilZrboA8yS1Um1Df+C2oIv1tpPvRZUqw4wizYset89Vd3IwNEQDyTN6dPWJCF7/GQIiQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3805 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,T_SCC_BODY_TEXT_LINE, T_SPF_PERMERROR 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 T24gMi8yMy8yMiA3OjAzIFBNLCBKYWNvcG8gTW9uZGkgd3JvdGU6DQo+IEhpIEV1Z2VuDQo+IA0K PiBPbiBUaHUsIEZlYiAxNywgMjAyMiBhdCAwMzo1Njo0MFBNICswMjAwLCBFdWdlbiBIcmlzdGV2 IHdyb3RlOg0KPj4gQXMgYSB0b3AgTUMgdmlkZW8gZHJpdmVyLCB0aGUgYXRtZWwtaXNjIHNob3Vs ZCBub3QgcHJvcGFnYXRlIHRoZSBmb3JtYXQgdG8gdGhlDQo+PiBzdWJkZXZpY2UuDQo+PiBJdCBz aG91bGQgcmF0aGVyIGNoZWNrIGF0IHN0YXJ0X3N0cmVhbWluZygpIHRpbWUgaWYgdGhlIHN1YmRl diBpcyBwcm9wZXJseQ0KPj4gY29uZmlndXJlZCB3aXRoIGEgY29tcGF0aWJsZSBmb3JtYXQuDQo+ PiBSZW1vdmVkIHRoZSB3aG9sZSBmb3JtYXQgZmluZGluZyBsb2dpYywgYW5kIHJld29ya2VkIHRo ZSBmb3JtYXQgdmVyaWZpY2F0aW9uDQo+PiBhdCBzdGFydF9zdHJlYW1pbmcgdGltZSwgc3VjaCB0 aGF0IHRoZSBJU0Mgd2lsbCByZXR1cm4gYW4gZXJyb3IgaWYgdGhlIHN1YmRldmljZQ0KPj4gaXMg bm90IHByb3Blcmx5IGNvbmZpZ3VyZWQuIFRvIGFjaGlldmUgdGhpcywgbWVkaWFfcGlwZWxpbmVf c3RhcnQNCj4+IGlzIGNhbGxlZCBhbmQgYSBsaW5rX3ZhbGlkYXRlIGNhbGxiYWNrIGlzIGNyZWF0 ZWQgdG8gY2hlY2sgdGhlIGZvcm1hdHMuDQo+PiBXaXRoIHRoaXMgYmVpbmcgZG9uZSwgdGhlIG1v ZHVsZSBwYXJhbWV0ZXIgJ3NlbnNvcl9wcmVmZXJyZWQnIG1ha2VzIG5vIHNlbnNlDQo+PiBhbnlt b3JlLiBUaGUgSVNDIHNob3VsZCBub3QgZGVjaWRlIHdoaWNoIGZvcm1hdCB0aGUgc2Vuc29yIGlz IHVzaW5nLiBUaGUNCj4+IElTQyBzaG91bGQgb25seSBjb3BlIHdpdGggdGhlIHNpdHVhdGlvbiBh bmQgaW5mb3JtIHVzZXJzcGFjZSBpZiB0aGUgc3RyZWFtaW5nDQo+PiBpcyBwb3NzaWJsZSBpbiB0 aGUgY3VycmVudCBjb25maWd1cmF0aW9uLg0KPj4gVGhlIHJlZGVzaWduIG9mIHRoZSBmb3JtYXQg cHJvcGFnYXRpb24gaGFzIGFsc28gcmlzZW4gdGhlIHF1ZXN0aW9uIG9mIHRoZQ0KPj4gZW51bWZt dCBjYWxsYmFjay4gSWYgZW51bWZtdCBpcyBjYWxsZWQgd2l0aCBhbiBtYnVzX2NvZGUsIHRoZSBl bnVtZm10IGhhbmRsZXINCj4+IHNob3VsZCBvbmx5IHJldHVybiB0aGUgZm9ybWF0cyB0aGF0IGFy ZSBzdXBwb3J0ZWQgZm9yIHRoaXMgbWJ1c19jb2RlLg0KPj4gT3RoZXJ3aXNlLCB0aGUgZW51bWZt dCB3aWxsIHJlcG9ydCBhbGwgdGhlIGZvcm1hdHMgdGhhdCB0aGUgSVNDIGNvdWxkIG91dHB1dC4N Cj4+IFdpdGggdGhpcyByZXdvcmssIHRoZSBkeW5hbWljIGxpc3Qgb2YgdXNlciBmb3JtYXRzIGlz IHJlbW92ZWQuIEl0IG1ha2VzIG5vDQo+PiBtb3JlIHNlbnNlIHRvIGlkZW50aWZ5IGF0IGNvbXBs ZXRlIHRpbWUgd2hpY2ggZm9ybWF0cyB0aGUgc2Vuc29yIGNvdWxkIGVtaXQsDQo+PiBhbmQgYWRk IHRob3NlIGludG8gYSBzZXBhcmF0ZSBkeW5hbWljIGxpc3QuDQo+PiBUaGUgSVNDIHdpbGwgc3Rh cnQgd2l0aCBhIHNpbXBsZSBwcmVjb25maWd1cmVkIGRlZmF1bHQgZm9ybWF0LCBhbmQgYXQNCj4+ IGxpbmsgdmFsaWRhdGUgdGltZSwgZGVjaWRlIHdoZXRoZXIgaXQgY2FuIHVzZSB0aGUgZm9ybWF0 IHRoYXQgaXMgY29uZmlndXJlZA0KPj4gb24gdGhlIHNpbmsgb3Igbm90Lg0KPj4NCj4+IFNpZ25l ZC1vZmYtYnk6IEV1Z2VuIEhyaXN0ZXYgPGV1Z2VuLmhyaXN0ZXZAbWljcm9jaGlwLmNvbT4NCj4+ IC0tLQ0KPj4gQ2hhbmdlcyBpbiB2NToNCj4+IC0gcmVtb3ZlZCB1c2VyX2Zvcm1hdHMgZHluYW1p YyBsaXN0IGFzIGl0IGlzIG5vdyBwb2ludGxlc3MNCj4+IC0gZ3JlYXRseSBzaW1wbGlmaWVkIHRo ZSBlbnVtX2ZtdCBmdW5jdGlvbg0KPj4gLSByZW1vdmVkIHNvbWUgaW5pdCBjb2RlIHRoYXQgd2Fz IHVzZWxlc3Mgbm93DQo+Pg0KPj4gQ2hhbmdlcyBpbiB2NDoNCj4+IC0gbW92ZWQgdmFsaWRhdGlv biBjb2RlIGludG8gbGlua192YWxpZGF0ZSBhbmQgdXNlZCBtZWRpYV9waXBlbGluZV9zdGFydA0K Pj4gLSBtZXJnZWQgdGhpcyBwYXRjaCB3aXRoIHRoZSBlbnVtX2ZtdCBwYXRjaCB3aGljaCB3YXMg cHJldmlvdXNseSBpbiB2MyBvZg0KPj4gdGhlIHNlcmllcw0KPj4NCj4+IENoYW5nZXMgaW4gdjM6 DQo+PiAtIGNsYW1wIHRvIG1heGltdW0gcmVzb2x1dGlvbiBvbmNlIHRoZSBmcmFtZSBzaXplIGZy b20gdGhlIHN1YmRldiBpcyBmb3VuZA0KPj4NCj4+ICAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9h dG1lbC9hdG1lbC1pc2MtYmFzZS5jIHwgNDI3ICsrKysrKysrLS0tLS0tLS0tLQ0KPj4gICAuLi4v bWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLXNjYWxlci5jICAgfCAgIDUgKw0KPj4gICBk cml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5oICAgICAgfCAgMTMgKy0NCj4+ ICAgLi4uL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLXNhbWE1ZDItaXNjLmMgIHwgIDIwICsN Cj4+ICAgLi4uL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLXNhbWE3ZzUtaXNjLmMgIHwgIDIw ICsNCj4+ICAgNSBmaWxlcyBjaGFuZ2VkLCAyNDQgaW5zZXJ0aW9ucygrKSwgMjQxIGRlbGV0aW9u cygtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0 bWVsLWlzYy1iYXNlLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy1i YXNlLmMNCj4+IGluZGV4IDM3YzU5YmI0ZGMxOC4uMWEwNzllZDk2MDhkIDEwMDY0NA0KPj4gLS0t IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2MtYmFzZS5jDQo+PiArKysg Yi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy1iYXNlLmMNCj4+IEBAIC0z NiwxMSArMzYsNiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGRlYnVnOw0KPj4gICBtb2R1bGVfcGFy YW0oZGVidWcsIGludCwgMDY0NCk7DQo+PiAgIE1PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJkZWJ1 ZyBsZXZlbCAoMC0yKSIpOw0KPj4NCj4+IC1zdGF0aWMgdW5zaWduZWQgaW50IHNlbnNvcl9wcmVm ZXJyZWQgPSAxOw0KPj4gLW1vZHVsZV9wYXJhbShzZW5zb3JfcHJlZmVycmVkLCB1aW50LCAwNjQ0 KTsNCj4+IC1NT0RVTEVfUEFSTV9ERVNDKHNlbnNvcl9wcmVmZXJyZWQsDQo+PiAtICAgICAgICAg ICAgICAiU2Vuc29yIGlzIHByZWZlcnJlZCB0byBvdXRwdXQgdGhlIHNwZWNpZmllZCBmb3JtYXQg KDEtb24gMC1vZmYpLCBkZWZhdWx0IDEiKTsNCj4+IC0NCj4+ICAgI2RlZmluZSBJU0NfSVNfRk9S TUFUX1JBVyhtYnVzX2NvZGUpIFwNCj4+ICAgICAgICAoKChtYnVzX2NvZGUpICYgMHhmMDAwKSA9 PSAweDMwMDApDQo+Pg0KPj4gQEAgLTMzNyw2ICszMzIsMTAgQEAgc3RhdGljIGludCBpc2Nfc3Rh cnRfc3RyZWFtaW5nKHN0cnVjdCB2YjJfcXVldWUgKnZxLCB1bnNpZ25lZCBpbnQgY291bnQpDQo+ PiAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsNCj4+ICAgICAgICBpbnQgcmV0Ow0KPj4NCj4+ ICsgICAgIHJldCA9IG1lZGlhX3BpcGVsaW5lX3N0YXJ0KCZpc2MtPnZpZGVvX2Rldi5lbnRpdHks ICZpc2MtPm1waXBlKTsNCj4+ICsgICAgIGlmIChyZXQpDQo+PiArICAgICAgICAgICAgIGdvdG8g ZXJyX3BpcGVsaW5lX3N0YXJ0Ow0KPj4gKw0KPj4gICAgICAgIC8qIEVuYWJsZSBzdHJlYW0gb24g dGhlIHN1YiBkZXZpY2UgKi8NCj4+ICAgICAgICByZXQgPSB2NGwyX3N1YmRldl9jYWxsKGlzYy0+ Y3VycmVudF9zdWJkZXYtPnNkLCB2aWRlbywgc19zdHJlYW0sIDEpOw0KPj4gICAgICAgIGlmIChy ZXQgJiYgcmV0ICE9IC1FTk9JT0NUTENNRCkgew0KPj4gQEAgLTM4NSw2ICszODQsOSBAQCBzdGF0 aWMgaW50IGlzY19zdGFydF9zdHJlYW1pbmcoc3RydWN0IHZiMl9xdWV1ZSAqdnEsIHVuc2lnbmVk IGludCBjb3VudCkNCj4+ICAgICAgICB2NGwyX3N1YmRldl9jYWxsKGlzYy0+Y3VycmVudF9zdWJk ZXYtPnNkLCB2aWRlbywgc19zdHJlYW0sIDApOw0KPj4NCj4+ICAgZXJyX3N0YXJ0X3N0cmVhbToN Cj4+ICsgICAgIG1lZGlhX3BpcGVsaW5lX3N0b3AoJmlzYy0+dmlkZW9fZGV2LmVudGl0eSk7DQo+ PiArDQo+PiArZXJyX3BpcGVsaW5lX3N0YXJ0Og0KPj4gICAgICAgIHNwaW5fbG9ja19pcnFzYXZl KCZpc2MtPmRtYV9xdWV1ZV9sb2NrLCBmbGFncyk7DQo+PiAgICAgICAgbGlzdF9mb3JfZWFjaF9l bnRyeShidWYsICZpc2MtPmRtYV9xdWV1ZSwgbGlzdCkNCj4+ICAgICAgICAgICAgICAgIHZiMl9i dWZmZXJfZG9uZSgmYnVmLT52Yi52YjJfYnVmLCBWQjJfQlVGX1NUQVRFX1FVRVVFRCk7DQo+PiBA QCAtNDIzLDYgKzQyNSw5IEBAIHN0YXRpYyB2b2lkIGlzY19zdG9wX3N0cmVhbWluZyhzdHJ1Y3Qg dmIyX3F1ZXVlICp2cSkNCj4+ICAgICAgICBpZiAocmV0ICYmIHJldCAhPSAtRU5PSU9DVExDTUQp DQo+PiAgICAgICAgICAgICAgICB2NGwyX2VycigmaXNjLT52NGwyX2RldiwgInN0cmVhbSBvZmYg ZmFpbGVkIGluIHN1YmRldlxuIik7DQo+Pg0KPj4gKyAgICAgLyogU3RvcCBtZWRpYSBwaXBlbGlu ZSAqLw0KPj4gKyAgICAgbWVkaWFfcGlwZWxpbmVfc3RvcCgmaXNjLT52aWRlb19kZXYuZW50aXR5 KTsNCj4+ICsNCj4+ICAgICAgICAvKiBSZWxlYXNlIGFsbCBhY3RpdmUgYnVmZmVycyAqLw0KPj4g ICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZpc2MtPmRtYV9xdWV1ZV9sb2NrLCBmbGFncyk7DQo+ PiAgICAgICAgaWYgKHVubGlrZWx5KGlzYy0+Y3VyX2ZybSkpIHsNCj4+IEBAIC00NTMsMjIgKzQ1 OCw2IEBAIHN0YXRpYyB2b2lkIGlzY19idWZmZXJfcXVldWUoc3RydWN0IHZiMl9idWZmZXIgKnZi KQ0KPj4gICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlzYy0+ZG1hX3F1ZXVlX2xvY2ss IGZsYWdzKTsNCj4+ICAgfQ0KPj4NCj4+IC1zdGF0aWMgc3RydWN0IGlzY19mb3JtYXQgKmZpbmRf Zm9ybWF0X2J5X2ZvdXJjYyhzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLA0KPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZm91cmNjKQ0K Pj4gLXsNCj4+IC0gICAgIHVuc2lnbmVkIGludCBudW1fZm9ybWF0cyA9IGlzYy0+bnVtX3VzZXJf Zm9ybWF0czsNCj4+IC0gICAgIHN0cnVjdCBpc2NfZm9ybWF0ICpmbXQ7DQo+PiAtICAgICB1bnNp Z25lZCBpbnQgaTsNCj4+IC0NCj4+IC0gICAgIGZvciAoaSA9IDA7IGkgPCBudW1fZm9ybWF0czsg aSsrKSB7DQo+PiAtICAgICAgICAgICAgIGZtdCA9IGlzYy0+dXNlcl9mb3JtYXRzW2ldOw0KPj4g LSAgICAgICAgICAgICBpZiAoZm10LT5mb3VyY2MgPT0gZm91cmNjKQ0KPj4gLSAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBmbXQ7DQo+PiAtICAgICB9DQo+PiAtDQo+PiAtICAgICByZXR1cm4g TlVMTDsNCj4+IC19DQo+PiAtDQo+PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdmIyX29wcyBpc2Nf dmIyX29wcyA9IHsNCj4+ICAgICAgICAucXVldWVfc2V0dXAgICAgICAgICAgICA9IGlzY19xdWV1 ZV9zZXR1cCwNCj4+ICAgICAgICAud2FpdF9wcmVwYXJlICAgICAgICAgICA9IHZiMl9vcHNfd2Fp dF9wcmVwYXJlLA0KPj4gQEAgLTQ5OCwyOCArNDg3LDYzIEBAIHN0YXRpYyBpbnQgaXNjX2VudW1f Zm10X3ZpZF9jYXAoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsDQo+PiAgICAgICAgc3Ry dWN0IGlzY19kZXZpY2UgKmlzYyA9IHZpZGVvX2RydmRhdGEoZmlsZSk7DQo+PiAgICAgICAgdTMy IGluZGV4ID0gZi0+aW5kZXg7DQo+PiAgICAgICAgdTMyIGksIHN1cHBvcnRlZF9pbmRleDsNCj4+ ICsgICAgIHN0cnVjdCBpc2NfZm9ybWF0ICpmbXQ7DQo+Pg0KPj4gLSAgICAgaWYgKGluZGV4IDwg aXNjLT5jb250cm9sbGVyX2Zvcm1hdHNfc2l6ZSkgew0KPj4gLSAgICAgICAgICAgICBmLT5waXhl bGZvcm1hdCA9IGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzW2luZGV4XS5mb3VyY2M7DQo+PiAtICAg ICAgICAgICAgIHJldHVybiAwOw0KPj4gLSAgICAgfQ0KPj4gLQ0KPj4gLSAgICAgaW5kZXggLT0g aXNjLT5jb250cm9sbGVyX2Zvcm1hdHNfc2l6ZTsNCj4+IC0NCj4+IC0gICAgIHN1cHBvcnRlZF9p bmRleCA9IDA7DQo+IA0KPiBZb3Ugc2VlbSB0byBoYXZlIGxvc3QgdGhpcyBvbmUuDQo+IFlvdSBj YW4gaW5pdGlhbGl6ZSB3aGlsZSBkZWNsYXJpbmcgaXQNCj4gDQo+PiAtDQo+PiAtICAgICBmb3Ig KGkgPSAwOyBpIDwgaXNjLT5mb3JtYXRzX2xpc3Rfc2l6ZTsgaSsrKSB7DQo+PiAtICAgICAgICAg ICAgIGlmICghSVNDX0lTX0ZPUk1BVF9SQVcoaXNjLT5mb3JtYXRzX2xpc3RbaV0ubWJ1c19jb2Rl KSB8fA0KPj4gLSAgICAgICAgICAgICAgICAgIWlzYy0+Zm9ybWF0c19saXN0W2ldLnNkX3N1cHBv cnQpDQo+PiAtICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+PiAtICAgICAgICAgICAg IGlmIChzdXBwb3J0ZWRfaW5kZXggPT0gaW5kZXgpIHsNCj4+IC0gICAgICAgICAgICAgICAgICAg ICBmLT5waXhlbGZvcm1hdCA9IGlzYy0+Zm9ybWF0c19saXN0W2ldLmZvdXJjYzsNCj4+ICsgICAg IC8qDQo+PiArICAgICAgKiBJZiBhIHNwZWNpZmljIG1idXNfY29kZSBpcyByZXF1ZXN0ZWQsIGNo ZWNrIGlmIHdlIHN1cHBvcnQNCj4+ICsgICAgICAqIHRoaXMgbWJ1c19jb2RlIGFzIGlucHV0IGZv ciB0aGUgSVNDIGZpcnN0Lg0KPj4gKyAgICAgICogSWYgaXQncyBzdXBwb3J0ZWQsIHRoZW4gd2Ug cmVwb3J0IHRoZSBjb3JyZXNwb25kaW5nIHBpeGVsZm9ybWF0DQo+PiArICAgICAgKiBhcyBmaXJz dCBwb3NzaWJsZSBvcHRpb24gZm9yIHRoZSBJU0MuDQo+PiArICAgICAgKiBFLmcuIG1idXMgTUVE SUFfQlVTX0ZNVF9TR0JSRzEyXzFYMTIgYW5kIHJlcG9ydA0KPiANCj4gSXMgdGhpcyBhIGdvb2Qg ZXhhbXBsZSwgc2luY2UgeW91IGNoZWNrIGZvciBSQVcgaW4gYSBzZXBhcmF0ZSBsb29wID8NCj4g DQo+PiArICAgICAgKiAnR0IxMicgKDEyLWJpdCBCYXllciBHQkdCL1JHUkcpDQo+PiArICAgICAg Ki8NCj4+ICsgICAgIGlmIChmLT5tYnVzX2NvZGUpIHsNCj4+ICsgICAgICAgICAgICAgZm10ID0g aXNjX2ZpbmRfZm9ybWF0X2J5X2NvZGUoaXNjLCBmLT5tYnVzX2NvZGUsICZpKTsNCj4+ICsgICAg ICAgICAgICAgaWYgKCFmbXQpDQo+PiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7DQo+PiArICAgICAgICAgICAgIGlmIChpbmRleCA9PSBzdXBwb3J0ZWRfaW5kZXgpIHsNCj4+ ICsgICAgICAgICAgICAgICAgICAgICBmLT5waXhlbGZvcm1hdCA9IGZtdC0+Zm91cmNjOw0KPj4g ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4+ICAgICAgICAgICAgICAgIH0NCj4g DQo+IE5vdCBzdXJlIEkgZ2V0IHRoaXMuIEFyZSB0aGVyZSBtdWx0aXBsZSBwaXhlbCBmb3JtYXRz IGFzc29jaWF0ZWQgd2l0aA0KPiBhIG5vbi1SQVcgbWJ1c19jb2RlID8gSWYgbm90LCB5b3VyIGlz Y19maW5kX2Zvcm1hdF9ieV9jb2RlKCkgY2FsbCB3aWxsIGFsd2F5cw0KPiByZXR1cm4gYSBzaW5n bGUgcGl4ZWxmb3JtYXQgcGVyIG1idXNfY29kZSwgc28gdGhlcmUgaXMgbm8gbmVlZCB0bw0KPiBj aGVjayB3aXRoIHN1cHBvcnRlZCBpbmRleC4gSWYgdGhlIElTQyBjYW5ub3QgY29udmVydCBiZXR3 ZWVuDQo+IGNvbG9yc3BhY2VzIChpZSBub3QgWVVZVi0+UkdCKSBJIHRoaW5rIGl0IHdvdWxkIGJl IGVhc2llciB0byBjaGVjayBmb3INCj4gUkFXIGZpcnN0IGFuZCBlbnVtZXJhdGUgYWxsIHRoZSBu b24tUkFXIHBpeGZtdCB0aGUgSVNDIGNhbiBnZW5lcmF0ZQ0KPiBmcm9tIFJBVywgdGhlbiBpZiBt YnVzX2NvZGUgaXMgbm9uIFJBVyBqdXN0IGNoZWNrIGlmIGl0J3MgaW4gdGhlIGxpc3QNCj4gb2Yg c3VwcG9ydGVkIGZvcm1hdHMgYW5kIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyBwaXhmbXQuIE9y IGNhbiB0aGUNCj4gSVNDIGNvbnZlciBiZXR3ZWVuIGRpZmZlcmVudCBjb2xvcnNwYWNlcyBhbmQg SSBkaWRuJ3QgZ2V0IHRoaXMgPw0KPiANCj4+ICAgICAgICAgICAgICAgIHN1cHBvcnRlZF9pbmRl eCsrOw0KPj4gICAgICAgIH0NCj4+DQo+PiAtICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsgICAg IC8qDQo+PiArICAgICAgKiBXZSBhcmUgYXNrZWQgZm9yIGEgc3BlY2lmaWMgbWJ1cyBjb2RlLCB3 aGljaCBpcyByYXcuDQo+PiArICAgICAgKiBXZSBoYXZlIHRvIHNlYXJjaCB0aHJvdWdoIHRoZSBm b3JtYXRzIHdlIGNhbiBjb252ZXJ0IHRvLg0KPj4gKyAgICAgICogV2UgaGF2ZSB0byBza2lwIHRo ZSByYXcgZm9ybWF0cywgd2UgY2Fubm90IGNvbnZlcnQgdG8gcmF3Lg0KPj4gKyAgICAgICogRS5n LiAnQVIxMicgKDE2LWJpdCBBUkdCIDQtNC00LTQpLCAnQVIxNScgKDE2LWJpdCBBUkdCIDEtNS01 LTUpLCBldGMuDQo+PiArICAgICAgKi8NCj4+ICsgICAgIGlmIChmLT5tYnVzX2NvZGUgJiYgSVND X0lTX0ZPUk1BVF9SQVcoZi0+bWJ1c19jb2RlKSkgew0KPiANCj4gV29uJ3QgdGhpcyBiZSBoaWph Y2tlZCBieSB0aGUgcHJldmlvdXMgbG9vcCA/DQo+IA0KPiAgICAgICAgICBpZiAoZi0+bWJ1c19j b2RlKSB7DQo+IA0KPiAgICAgICAgICB9DQo+IA0KPiAgICAgICAgICBpZiAoZi0+bWJ1c19jb2Rl ICYmIElTQ19JU19GT1JNQVRfUkFXKGYtPm1idXNfY29kZSkpIHsNCj4gDQo+ICAgICAgICAgIH0N Cj4gDQo+PiArICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBpc2MtPmNvbnRyb2xsZXJfZm9y bWF0c19zaXplOyBpKyspDQo+PiArICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc2MtPmNvbnRy b2xsZXJfZm9ybWF0c1tpXS5yYXcpIHsNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoaXNjLT5jb250cm9sbGVyX2Zvcm1hdFtpXS5yYXcpDQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiANCj4gVG8gc2F2ZSBhbiBpbmRlbnRhdGlvbiBsZXZl bA0KPiANCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PSBzdXBw b3J0ZWRfaW5kZXgpIHsNCj4gDQo+IFNob3VsZCBzdXBwb3J0ZWRfaW5kZXggYmUgcmUtaW5pdGlh bGl6ZWQgYmVmb3JlIHRoaXMgbG9vcCA/DQo+IA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmLT5waXhlbGZvcm1hdCA9DQo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaXNjLT5jb250cm9sbGVyX2Zvcm1hdHNbaV0uZm91cmNj Ow0KPiANCj4gWW91IGFyZSBlbnVtZXJhdGluZyAtYWxsLSBmb3JtYXRzIGV4Y2VwdCBSQVcsIHJp Z2h0ID8NCj4gVGhpcyBtZWFuIHlvdSBjYW4gY29udmVydCBSQVcgdG8gYWxsIG90aGVyIGZvcm1h dHMgPw0KPiANCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IDA7DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfaW5kZXgrKzsNCj4+ICsgICAgICAgICAgICAgICAg ICAgICB9DQo+PiArICAgICB9DQo+PiArDQo+PiArICAgICAvKg0KPj4gKyAgICAgICogSWYgd2Ug YXJlIGFza2VkIGEgc3BlY2lmaWMgbWJ1c19jb2RlLCB3ZSBoYXZlIG5vIG1vcmUgZm9ybWF0cyB0 bw0KPj4gKyAgICAgICogcmVwb3J0DQo+PiArICAgICAgKiBlLmcuIGlmIHRoZSBmb3JtYXQgaXMg bm90IHJhdywgd2UgY2Fubm90IGRvIGFueSBtb3JlIHByb2Nlc3NpbmcuDQo+PiArICAgICAgKi8N Cj4+ICsgICAgIGlmIChmLT5tYnVzX2NvZGUpDQo+PiArICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOw0KPiANCj4gQXMgc3VnZ2VzdGVkLCBpZiBteSB1bmRlcnN0YW5kaW5nIGlzIGNvcnJlY3Qs IEkgd291bGQgZW51bWVyYXRlIGFsbA0KPiBmb3JtYXRzIGdlbmVyYXRlZCBmcm9tIGEgUkFXIG1i dXNfY29kZS4gSWYgdGhlIG1idXNfY29kZSBpcyBub3QgUkFXDQo+IHRoZW4gbG9vayBpZiBpdCdz IHN1cHBvcnRlZCB3aXRoIGlzY19maW5kX2Zvcm1hdF9ieV9jb2RlKCkgKGFuZCBvbmx5DQo+IGlu ZGV4PT0wIGlzIHZhbGlkLCB1bmxlc3MgdGhlcmUgd2lsbCBiZSBtdWx0aXBsZSBlbnRyaWVzIHdp dGggdGhlIHNhbWUNCj4gbWJ1c19jb2RlIGluIHlvdXIgZm9ybWF0IGxpc3QsIGJ1dCBpc2NfZmlu ZF9mb3JtYXRfYnlfY29kZSgpIGRvZXNuJ3QNCj4gc2VlbSB0byBzdXBwb3J0IHRoYXQpLg0KDQpI aSBKYWNvcG8sDQoNCkkgcmV3b3JrZWQgdGhpcyBjb2RlIHVzaW5nIHlvdXIgc3VnZ2VzdGlvbnMu DQoNCkJhc2ljYWxseSwgSSB3YW50IHRvIGhhdmUgdGhyZWUgY2FzZXM6DQoxLyBpbnB1dCBub24t UkFXIChZVVlWLCBSR0I1NjUpIC0+IGNhbiBvdXRwdXQgdGhlIHNhbWUgZm9ybWF0LCBhbmQgYmUg DQpkb25lIHdpdGggaXQuDQoyLyBpbnB1dCBSYXcgLT4gZW51bSBhbGwgcG9zc2libGUgZm9ybWF0 cywgYnV0IG5vdCBhbGwgdGhlIFJhdyBmb3JtYXRzLCANCm9ubHkgdGhlIGNvcnJlc3BvbmRpbmcg b25lLg0KMy8gbm8gaW5wdXQgLT4gb3V0cHV0IGFsbCBmb3JtYXRzIHRoYXQgd2UgY2FuIG91dHB1 dA0KDQpZb3UgY2FuIGhhdmUgYSBsb29rIGluIHY2IHRoYXQgSSB3aWxsIHNlbmQgc29vbiB0byBj b3ZlciB0aGVzZSBjYXNlcywgDQpiYXNpY2FsbHkgaW4gdGhlIGZvbGxvd2luZyBmb3JtOg0KDQpj YXNlIDE6IGlmIHdlIGFyZSBub3QgYXNraW5nIGEgc3BlY2lmaWMgbWJ1cyBjb2RlLCBsaXN0IGV2 ZXJ5dGhpbmcgd2UgDQpzdXBwb3J0IGFzIG91dHB1dDoNCg0KIyB2NGwyLWN0bCAtZCAvZGV2L3Zp ZGVvMCAtLWxpc3QtZm9ybWF0cy1leHQNCmlvY3RsOiBWSURJT0NfRU5VTV9GTVQNCiAgICAgICAg IFR5cGU6IFZpZGVvIENhcHR1cmUNCg0KICAgICAgICAgWzBdOiAnQVIxMicgKDE2LWJpdCBBUkdC IDQtNC00LTQpDQogICAgICAgICAgICAgICAgIFNpemU6IENvbnRpbnVvdXMgMTZ4MTYgLSAzMjY0 eDI0NjQNCiAgICAgICAgIFsxXTogJ0FSMTUnICgxNi1iaXQgQVJHQiAxLTUtNS01KQ0KICAgICAg ICAgICAgICAgICBTaXplOiBDb250aW51b3VzIDE2eDE2IC0gMzI2NHgyNDY0DQogICAgICAgICBb Ml06ICdSR0JQJyAoMTYtYml0IFJHQiA1LTYtNSkNCiAgICAgICAgICAgICAgICAgU2l6ZTogQ29u dGludW91cyAxNngxNiAtIDMyNjR4MjQ2NA0KICAgICAgICAgWzNdOiAnQVIyNCcgKDMyLWJpdCBC R1JBIDgtOC04LTgpDQogICAgICAgICAgICAgICAgIFNpemU6IENvbnRpbnVvdXMgMTZ4MTYgLSAz MjY0eDI0NjQNCiAgICAgICAgIFs0XTogJ1hSMjQnICgzMi1iaXQgQkdSWCA4LTgtOC04KQ0KICAg ICAgICAgICAgICAgICBTaXplOiBDb250aW51b3VzIDE2eDE2IC0gMzI2NHgyNDY0DQogICAgICAg ICBbNV06ICdZVTEyJyAoUGxhbmFyIFlVViA0OjI6MCkNCiAgICAgICAgICAgICAgICAgU2l6ZTog Q29udGludW91cyAxNngxNiAtIDMyNjR4MjQ2NA0KICAgICAgICAgWzZdOiAnVVlWWScgKFVZVlkg NDoyOjIpDQogICAgICAgICAgICAgICAgIFNpemU6IENvbnRpbnVvdXMgMTZ4MTYgLSAzMjY0eDI0 NjQNCiAgICAgICAgIFs3XTogJ1ZZVVknIChWWVVZIDQ6MjoyKQ0KICAgICAgICAgICAgICAgICBT aXplOiBDb250aW51b3VzIDE2eDE2IC0gMzI2NHgyNDY0DQogICAgICAgICBbOF06ICdZVVlWJyAo WVVZViA0OjI6MikNCiAgICAgICAgICAgICAgICAgU2l6ZTogQ29udGludW91cyAxNngxNiAtIDMy NjR4MjQ2NA0KICAgICAgICAgWzldOiAnNDIyUCcgKFBsYW5hciBZVVYgNDoyOjIpDQogICAgICAg ICAgICAgICAgIFNpemU6IENvbnRpbnVvdXMgMTZ4MTYgLSAzMjY0eDI0NjQNCiAgICAgICAgIFsx MF06ICdHUkVZJyAoOC1iaXQgR3JleXNjYWxlKQ0KICAgICAgICAgICAgICAgICBTaXplOiBDb250 aW51b3VzIDE2eDE2IC0gMzI2NHgyNDY0DQogICAgICAgICBbMTFdOiAnWTEwICcgKDEwLWJpdCBH cmV5c2NhbGUpDQogICAgICAgICAgICAgICAgIFNpemU6IENvbnRpbnVvdXMgMTZ4MTYgLSAzMjY0 eDI0NjQNCiAgICAgICAgIFsxMl06ICdZMTYgJyAoMTYtYml0IEdyZXlzY2FsZSkNCiAgICAgICAg ICAgICAgICAgU2l6ZTogQ29udGludW91cyAxNngxNiAtIDMyNjR4MjQ2NA0KICAgICAgICAgWzEz XTogJ0JBODEnICg4LWJpdCBCYXllciBCR0JHL0dSR1IpDQogICAgICAgICAgICAgICAgIFNpemU6 IENvbnRpbnVvdXMgMTZ4MTYgLSAzMjY0eDI0NjQNCiAgICAgICAgIFsxNF06ICdHQlJHJyAoOC1i aXQgQmF5ZXIgR0JHQi9SR1JHKQ0KICAgICAgICAgICAgICAgICBTaXplOiBDb250aW51b3VzIDE2 eDE2IC0gMzI2NHgyNDY0DQogICAgICAgICBbMTVdOiAnR1JCRycgKDgtYml0IEJheWVyIEdSR1Iv QkdCRykNCiAgICAgICAgICAgICAgICAgU2l6ZTogQ29udGludW91cyAxNngxNiAtIDMyNjR4MjQ2 NA0KICAgICAgICAgWzE2XTogJ1JHR0InICg4LWJpdCBCYXllciBSR1JHL0dCR0IpDQogICAgICAg ICAgICAgICAgIFNpemU6IENvbnRpbnVvdXMgMTZ4MTYgLSAzMjY0eDI0NjQNCiAgICAgICAgIFsx N106ICdCRzEwJyAoMTAtYml0IEJheWVyIEJHQkcvR1JHUikNCiAgICAgICAgICAgICAgICAgU2l6 ZTogQ29udGludW91cyAxNngxNiAtIDMyNjR4MjQ2NA0KICAgICAgICAgWzE4XTogJ0dCMTAnICgx MC1iaXQgQmF5ZXIgR0JHQi9SR1JHKQ0KICAgICAgICAgICAgICAgICBTaXplOiBDb250aW51b3Vz IDE2eDE2IC0gMzI2NHgyNDY0DQogICAgICAgICBbMTldOiAnQkExMCcgKDEwLWJpdCBCYXllciBH UkdSL0JHQkcpDQogICAgICAgICAgICAgICAgIFNpemU6IENvbnRpbnVvdXMgMTZ4MTYgLSAzMjY0 eDI0NjQNCiAgICAgICAgIFsyMF06ICdSRzEwJyAoMTAtYml0IEJheWVyIFJHUkcvR0JHQikNCiAg ICAgICAgICAgICAgICAgU2l6ZTogQ29udGludW91cyAxNngxNiAtIDMyNjR4MjQ2NA0KICAgICAg ICAgWzIxXTogJ0JHMTInICgxMi1iaXQgQmF5ZXIgQkdCRy9HUkdSKQ0KICAgICAgICAgICAgICAg ICBTaXplOiBDb250aW51b3VzIDE2eDE2IC0gMzI2NHgyNDY0DQogICAgICAgICBbMjJdOiAnR0Ix MicgKDEyLWJpdCBCYXllciBHQkdCL1JHUkcpDQogICAgICAgICAgICAgICAgIFNpemU6IENvbnRp bnVvdXMgMTZ4MTYgLSAzMjY0eDI0NjQNCiAgICAgICAgIFsyM106ICdCQTEyJyAoMTItYml0IEJh eWVyIEdSR1IvQkdCRykNCiAgICAgICAgICAgICAgICAgU2l6ZTogQ29udGludW91cyAxNngxNiAt IDMyNjR4MjQ2NA0KICAgICAgICAgWzI0XTogJ1JHMTInICgxMi1iaXQgQmF5ZXIgUkdSRy9HQkdC KQ0KICAgICAgICAgICAgICAgICBTaXplOiBDb250aW51b3VzIDE2eDE2IC0gMzI2NHgyNDY0DQoN Cg0KY2FzZSAyOiBpZiB3ZSBhcmUgYXNrZWQgYSBzcGVjaWZpYyBtYnVzLCBidXQgbm9uLXJhdzog c2VhcmNoIHRoZSANCmNvcnJlc3BvbmRpbmcgZm9ybWF0IHdpdGggaXNjX2ZpbmRfZm9ybWF0X2J5 X2NvZGUgKHdoaWNoIHN0aWxsIGhhcyB0byANCnJldHVybiBOVUxMIGluIGNhc2UgaXQncyBub3Qg c3VwcG9ydGVkLCBzdWNoIHRoYXQgd2UgY2FuIGFkdmVydGlzZSANCm5vdGhpbmcgKTogKGUuZy4g MHgyMDA3IGlzIG5vdCBzdXBwb3J0ZWQgYXQgYWxsICkNCg0KIyB2NGwyLWN0bCAtZCAvZGV2L3Zp ZGVvMCAtLWxpc3QtZm9ybWF0cy1leHQgMHgyMDA4DQppb2N0bDogVklESU9DX0VOVU1fRk1UDQog ICAgICAgICBUeXBlOiBWaWRlbyBDYXB0dXJlDQoNCiAgICAgICAgIFswXTogJ1lVWVYnIChZVVlW IDQ6MjoyKQ0KICAgICAgICAgICAgICAgICBTaXplOiBDb250aW51b3VzIDE2eDE2IC0gMzI2NHgy NDY0DQojIHY0bDItY3RsIC1kIC9kZXYvdmlkZW8wIC0tbGlzdC1mb3JtYXRzLWV4dCAweDIwMDcN CmlvY3RsOiBWSURJT0NfRU5VTV9GTVQNCiAgICAgICAgIFR5cGU6IFZpZGVvIENhcHR1cmUNCg0K Iw0KDQpjYXNlIDM6IGlmIHdlIGFyZSBhc2tlZCBhIHNwZWNpZmljIG1idXMsIGJ1dCByYXc6IHNl YXJjaCB0aGUgDQpjb3JyZXNwb25kaW5nIGZvcm1hdCB3aXRoIGlzY19maW5kX2Zvcm1hdF9ieV9j b2RlICwgdG8gZmluZCBleGFjdGx5IA0Kd2hpY2ggY29ycmVzcG9uZGluZyByYXcgZm9ybWF0IHdl IGhhdmUgdG8gYWR2ZXJ0aXNlLCBhbmQgdGhlbiwgYWR2ZXJ0aXNlIA0KYWxsIHRoZSBub24tcmF3 IGZvcm1hdHMgLCBiZWNhdXNlIHdlIGNhbiBjb252ZXJ0IGZyb20gUkFXIHRvIGV2ZXJ5dGhpbmcg DQplbHNlOg0KDQojIHY0bDItY3RsIC1kIC9kZXYvdmlkZW8wIC0tbGlzdC1mb3JtYXRzLWV4dCAw eDMwMDENCmlvY3RsOiBWSURJT0NfRU5VTV9GTVQNCiAgICAgICAgIFR5cGU6IFZpZGVvIENhcHR1 cmUNCg0KICAgICAgICAgWzBdOiAnQkE4MScgKDgtYml0IEJheWVyIEJHQkcvR1JHUikNCiAgICAg ICAgICAgICAgICAgU2l6ZTogQ29udGludW91cyAxNngxNiAtIDMyNjR4MjQ2NA0KICAgICAgICAg WzFdOiAnQVIxMicgKDE2LWJpdCBBUkdCIDQtNC00LTQpDQogICAgICAgICAgICAgICAgIFNpemU6 IENvbnRpbnVvdXMgMTZ4MTYgLSAzMjY0eDI0NjQNCiAgICAgICAgIFsyXTogJ0FSMTUnICgxNi1i aXQgQVJHQiAxLTUtNS01KQ0KICAgICAgICAgICAgICAgICBTaXplOiBDb250aW51b3VzIDE2eDE2 IC0gMzI2NHgyNDY0DQogICAgICAgICBbM106ICdSR0JQJyAoMTYtYml0IFJHQiA1LTYtNSkNCiAg ICAgICAgICAgICAgICAgU2l6ZTogQ29udGludW91cyAxNngxNiAtIDMyNjR4MjQ2NA0KICAgICAg ICAgWzRdOiAnQVIyNCcgKDMyLWJpdCBCR1JBIDgtOC04LTgpDQogICAgICAgICAgICAgICAgIFNp emU6IENvbnRpbnVvdXMgMTZ4MTYgLSAzMjY0eDI0NjQNCiAgICAgICAgIFs1XTogJ1hSMjQnICgz Mi1iaXQgQkdSWCA4LTgtOC04KQ0KICAgICAgICAgICAgICAgICBTaXplOiBDb250aW51b3VzIDE2 eDE2IC0gMzI2NHgyNDY0DQogICAgICAgICBbNl06ICdZVTEyJyAoUGxhbmFyIFlVViA0OjI6MCkN CiAgICAgICAgICAgICAgICAgU2l6ZTogQ29udGludW91cyAxNngxNiAtIDMyNjR4MjQ2NA0KICAg ICAgICAgWzddOiAnVVlWWScgKFVZVlkgNDoyOjIpDQogICAgICAgICAgICAgICAgIFNpemU6IENv bnRpbnVvdXMgMTZ4MTYgLSAzMjY0eDI0NjQNCiAgICAgICAgIFs4XTogJ1ZZVVknIChWWVVZIDQ6 MjoyKQ0KICAgICAgICAgICAgICAgICBTaXplOiBDb250aW51b3VzIDE2eDE2IC0gMzI2NHgyNDY0 DQogICAgICAgICBbOV06ICdZVVlWJyAoWVVZViA0OjI6MikNCiAgICAgICAgICAgICAgICAgU2l6 ZTogQ29udGludW91cyAxNngxNiAtIDMyNjR4MjQ2NA0KICAgICAgICAgWzEwXTogJzQyMlAnIChQ bGFuYXIgWVVWIDQ6MjoyKQ0KICAgICAgICAgICAgICAgICBTaXplOiBDb250aW51b3VzIDE2eDE2 IC0gMzI2NHgyNDY0DQogICAgICAgICBbMTFdOiAnR1JFWScgKDgtYml0IEdyZXlzY2FsZSkNCiAg ICAgICAgICAgICAgICAgU2l6ZTogQ29udGludW91cyAxNngxNiAtIDMyNjR4MjQ2NA0KICAgICAg ICAgWzEyXTogJ1kxMCAnICgxMC1iaXQgR3JleXNjYWxlKQ0KICAgICAgICAgICAgICAgICBTaXpl OiBDb250aW51b3VzIDE2eDE2IC0gMzI2NHgyNDY0DQogICAgICAgICBbMTNdOiAnWTE2ICcgKDE2 LWJpdCBHcmV5c2NhbGUpDQogICAgICAgICAgICAgICAgIFNpemU6IENvbnRpbnVvdXMgMTZ4MTYg LSAzMjY0eDI0NjQNCg0KPiANCj4+ICsNCj4+ICsgICAgIC8qDQo+PiArICAgICAgKiBBbmQgZmlu YWxseSwgd2l0aG91dCBhIHNwZWNpZmljIG1idXNfY29kZSwNCj4+ICsgICAgICAqIHdlIGhhdmUg dG8gcmVwb3J0IGFsbCBvdXIgZm9ybWF0cy4NCj4+ICsgICAgICAqLw0KPj4gKyAgICAgaWYgKGlu ZGV4ID49IGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzX3NpemUpDQo+PiArICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOw0KPj4gKw0KPj4gKyAgICAgZi0+cGl4ZWxmb3JtYXQgPSBpc2MtPmNvbnRy b2xsZXJfZm9ybWF0c1tpbmRleF0uZm91cmNjOw0KPj4gKw0KPj4gKyAgICAgcmV0dXJuIDA7DQo+ PiAgIH0NCj4+DQo+PiAgIHN0YXRpYyBpbnQgaXNjX2dfZm10X3ZpZF9jYXAoc3RydWN0IGZpbGUg KmZpbGUsIHZvaWQgKnByaXYsDQo+PiBAQCAtNTg0LDIwICs2MDgsMzAgQEAgc3RhdGljIGludCBp c2NfdHJ5X3ZhbGlkYXRlX2Zvcm1hdHMoc3RydWN0IGlzY19kZXZpY2UgKmlzYykNCj4+ICAgICAg ICAgICAgICAgIGJyZWFrOw0KPj4gICAgICAgIGRlZmF1bHQ6DQo+PiAgICAgICAgLyogYW55IG90 aGVyIGRpZmZlcmVudCBmb3JtYXRzIGFyZSBub3Qgc3VwcG9ydGVkICovDQo+PiArICAgICAgICAg ICAgIHY0bDJfZXJyKCZpc2MtPnY0bDJfZGV2LCAiUmVxdWVzdGVkIHVuc3VwcG9ydGVkIGZvcm1h dC5cbiIpOw0KPj4gICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsNCj4+ICAgICAgICB9DQo+ PiAgICAgICAgdjRsMl9kYmcoMSwgZGVidWcsICZpc2MtPnY0bDJfZGV2LA0KPj4gICAgICAgICAg ICAgICAgICJGb3JtYXQgdmFsaWRhdGlvbiwgcmVxdWVzdGVkIHJnYj0ldSwgeXV2PSV1LCBncmV5 PSV1LCBiYXllcj0ldVxuIiwNCj4+ICAgICAgICAgICAgICAgICByZ2IsIHl1diwgZ3JleSwgYmF5 ZXIpOw0KPj4NCj4+IC0gICAgIC8qIHdlIGNhbm5vdCBvdXRwdXQgUkFXIGlmIHdlIGRvIG5vdCBy ZWNlaXZlIFJBVyAqLw0KPj4gLSAgICAgaWYgKChiYXllcikgJiYgIUlTQ19JU19GT1JNQVRfUkFX KGlzYy0+dHJ5X2NvbmZpZy5zZF9mb3JtYXQtPm1idXNfY29kZSkpDQo+PiArICAgICBpZiAoYmF5 ZXIgJiYNCj4+ICsgICAgICAgICAhSVNDX0lTX0ZPUk1BVF9SQVcoaXNjLT50cnlfY29uZmlnLnNk X2Zvcm1hdC0+bWJ1c19jb2RlKSkgew0KPj4gKyAgICAgICAgICAgICB2NGwyX2VycigmaXNjLT52 NGwyX2RldiwgIkNhbm5vdCBvdXRwdXQgUkFXIGlmIHdlIGRvIG5vdCByZWNlaXZlIFJBVy5cbiIp Ow0KPj4gICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+PiArICAgICB9DQo+Pg0KPj4g LSAgICAgLyogd2UgY2Fubm90IG91dHB1dCBHUkVZIGlmIHdlIGRvIG5vdCByZWNlaXZlIFJBVy9H UkVZICovDQo+PiAgICAgICAgaWYgKGdyZXkgJiYgIUlTQ19JU19GT1JNQVRfUkFXKGlzYy0+dHJ5 X2NvbmZpZy5zZF9mb3JtYXQtPm1idXNfY29kZSkgJiYNCj4+IC0gICAgICAgICAhSVNDX0lTX0ZP Uk1BVF9HUkVZKGlzYy0+dHJ5X2NvbmZpZy5zZF9mb3JtYXQtPm1idXNfY29kZSkpDQo+PiArICAg ICAgICAgIUlTQ19JU19GT1JNQVRfR1JFWShpc2MtPnRyeV9jb25maWcuc2RfZm9ybWF0LT5tYnVz X2NvZGUpKSB7DQo+PiArICAgICAgICAgICAgIHY0bDJfZXJyKCZpc2MtPnY0bDJfZGV2LCAiQ2Fu bm90IG91dHB1dCBHUkVZIGlmIHdlIGRvIG5vdCByZWNlaXZlIFJBVy9HUkVZLlxuIik7DQo+PiAg ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsgICAgIH0NCj4+ICsNCj4+ICsgICAg IGlmICgocmdiIHx8IGJheWVyIHx8IHl1dikgJiYNCj4+ICsgICAgICAgICBJU0NfSVNfRk9STUFU X0dSRVkoaXNjLT50cnlfY29uZmlnLnNkX2Zvcm1hdC0+bWJ1c19jb2RlKSkgew0KPj4gKyAgICAg ICAgICAgICB2NGwyX2VycigmaXNjLT52NGwyX2RldiwgIkNhbm5vdCBjb252ZXJ0IEdSRVkgdG8g YW5vdGhlciBmb3JtYXQuXG4iKTsNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ PiArICAgICB9DQo+Pg0KPj4gICAgICAgIHJldHVybiByZXQ7DQo+PiAgIH0NCj4+IEBAIC04MjUs NyArODU5LDcgQEAgc3RhdGljIHZvaWQgaXNjX3RyeV9mc2Uoc3RydWN0IGlzY19kZXZpY2UgKmlz YywNCj4+ICAgICAgICAgKiBJZiB3ZSBkbyBub3Qga25vdyB5ZXQgd2hpY2ggZm9ybWF0IHRoZSBz dWJkZXYgaXMgdXNpbmcsIHdlIGNhbm5vdA0KPj4gICAgICAgICAqIGRvIGFueXRoaW5nLg0KPj4g ICAgICAgICAqLw0KPj4gLSAgICAgaWYgKCFpc2MtPnRyeV9jb25maWcuc2RfZm9ybWF0KQ0KPj4g KyAgICAgaWYgKCFpc2MtPmNvbmZpZy5zZF9mb3JtYXQpDQo+PiAgICAgICAgICAgICAgICByZXR1 cm47DQo+Pg0KPj4gICAgICAgIGZzZS5jb2RlID0gaXNjLT50cnlfY29uZmlnLnNkX2Zvcm1hdC0+ bWJ1c19jb2RlOw0KPj4gQEAgLTg0NiwxODAgKzg4MCwxNDAgQEAgc3RhdGljIHZvaWQgaXNjX3Ry eV9mc2Uoc3RydWN0IGlzY19kZXZpY2UgKmlzYywNCj4+ICAgICAgICB9DQo+PiAgIH0NCj4+DQo+ PiAtc3RhdGljIGludCBpc2NfdHJ5X2ZtdChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLCBzdHJ1Y3Qg djRsMl9mb3JtYXQgKmYsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgdTMyICpjb2RlKQ0KPj4g K3N0YXRpYyBpbnQgaXNjX3RyeV9mbXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYywgc3RydWN0IHY0 bDJfZm9ybWF0ICpmKQ0KPj4gICB7DQo+PiAtICAgICBpbnQgaTsNCj4+IC0gICAgIHN0cnVjdCBp c2NfZm9ybWF0ICpzZF9mbXQgPSBOVUxMLCAqZGlyZWN0X2ZtdCA9IE5VTEw7DQo+PiAgICAgICAg c3RydWN0IHY0bDJfcGl4X2Zvcm1hdCAqcGl4Zm10ID0gJmYtPmZtdC5waXg7DQo+PiAtICAgICBz dHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX2NvbmZpZyBwYWRfY2ZnID0ge307DQo+PiAtICAgICBzdHJ1 Y3QgdjRsMl9zdWJkZXZfc3RhdGUgcGFkX3N0YXRlID0gew0KPj4gLSAgICAgICAgICAgICAucGFk cyA9ICZwYWRfY2ZnDQo+PiAtICAgICAgICAgICAgIH07DQo+PiAtICAgICBzdHJ1Y3QgdjRsMl9z dWJkZXZfZm9ybWF0IGZvcm1hdCA9IHsNCj4+IC0gICAgICAgICAgICAgLndoaWNoID0gVjRMMl9T VUJERVZfRk9STUFUX1RSWSwNCj4+IC0gICAgIH07DQo+PiAtICAgICB1MzIgbWJ1c19jb2RlOw0K Pj4gLSAgICAgaW50IHJldDsNCj4+IC0gICAgIGJvb2wgcmxwX2RtYV9kaXJlY3RfZHVtcCA9IGZh bHNlOw0KPj4gKyAgICAgdW5zaWduZWQgaW50IGk7DQo+Pg0KPj4gICAgICAgIGlmIChmLT50eXBl ICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSkNCj4+ICAgICAgICAgICAgICAgIHJldHVy biAtRUlOVkFMOw0KPj4NCj4+IC0gICAgIC8qIFN0ZXAgMTogZmluZCBhIFJBVyBmb3JtYXQgdGhh dCBpcyBzdXBwb3J0ZWQgKi8NCj4+IC0gICAgIGZvciAoaSA9IDA7IGkgPCBpc2MtPm51bV91c2Vy X2Zvcm1hdHM7IGkrKykgew0KPj4gLSAgICAgICAgICAgICBpZiAoSVNDX0lTX0ZPUk1BVF9SQVco aXNjLT51c2VyX2Zvcm1hdHNbaV0tPm1idXNfY29kZSkpIHsNCj4+IC0gICAgICAgICAgICAgICAg ICAgICBzZF9mbXQgPSBpc2MtPnVzZXJfZm9ybWF0c1tpXTsNCj4+ICsgICAgIGlzYy0+dHJ5X2Nv bmZpZy5mb3VyY2MgPSBpc2MtPmNvbnRyb2xsZXJfZm9ybWF0c1swXS5mb3VyY2M7DQo+PiArDQo+ PiArICAgICAvKiBmaW5kIGlmIHRoZSBmb3JtYXQgcmVxdWVzdGVkIGlzIHN1cHBvcnRlZCAqLw0K Pj4gKyAgICAgZm9yIChpID0gMDsgaSA8IGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzX3NpemU7IGkr KykNCj4+ICsgICAgICAgICAgICAgaWYgKGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzW2ldLmZvdXJj YyA9PSBwaXhmbXQtPnBpeGVsZm9ybWF0KSB7DQo+PiArICAgICAgICAgICAgICAgICAgICAgaXNj LT50cnlfY29uZmlnLmZvdXJjYyA9IHBpeGZtdC0+cGl4ZWxmb3JtYXQ7DQo+PiAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOw0KPj4gICAgICAgICAgICAgICAgfQ0KPj4gLSAgICAgfQ0KPj4g LSAgICAgLyogU3RlcCAyOiBXZSBjYW4gY29udGludWUgd2l0aCB0aGlzIFJBVyBmb3JtYXQsIG9y IHdlIGNhbiBsb29rDQo+PiAtICAgICAgKiBmb3IgYmV0dGVyOiBtYXliZSBzZW5zb3Igc3VwcG9y dHMgZGlyZWN0bHkgd2hhdCB3ZSBuZWVkLg0KPj4gLSAgICAgICovDQo+PiAtICAgICBkaXJlY3Rf Zm10ID0gZmluZF9mb3JtYXRfYnlfZm91cmNjKGlzYywgcGl4Zm10LT5waXhlbGZvcm1hdCk7DQo+ Pg0KPj4gLSAgICAgLyogU3RlcCAzOiBXZSBoYXZlIGJvdGguIFdlIGRlY2lkZSBnaXZlbiB0aGUg bW9kdWxlIHBhcmFtZXRlciB3aGljaA0KPj4gLSAgICAgICogb25lIHRvIHVzZS4NCj4+IC0gICAg ICAqLw0KPj4gLSAgICAgaWYgKGRpcmVjdF9mbXQgJiYgc2RfZm10ICYmIHNlbnNvcl9wcmVmZXJy ZWQpDQo+PiAtICAgICAgICAgICAgIHNkX2ZtdCA9IGRpcmVjdF9mbXQ7DQo+PiAtDQo+PiAtICAg ICAvKiBTdGVwIDQ6IHdlIGRvIG5vdCBoYXZlIFJBVyBidXQgd2UgaGF2ZSBhIGRpcmVjdCBmb3Jt YXQuIFVzZSBpdC4gKi8NCj4+IC0gICAgIGlmIChkaXJlY3RfZm10ICYmICFzZF9mbXQpDQo+PiAt ICAgICAgICAgICAgIHNkX2ZtdCA9IGRpcmVjdF9mbXQ7DQo+PiAtDQo+PiAtICAgICAvKiBTdGVw IDU6IGlmIHdlIGFyZSB1c2luZyBhIGRpcmVjdCBmb3JtYXQsIHdlIG5lZWQgdG8gcGFja2FnZQ0K Pj4gLSAgICAgICogZXZlcnl0aGluZyBhcyA4IGJpdCBkYXRhIGFuZCBqdXN0IGR1bXAgaXQNCj4+ IC0gICAgICAqLw0KPj4gLSAgICAgaWYgKHNkX2ZtdCA9PSBkaXJlY3RfZm10KQ0KPj4gLSAgICAg ICAgICAgICBybHBfZG1hX2RpcmVjdF9kdW1wID0gdHJ1ZTsNCj4+IC0NCj4+IC0gICAgIC8qIFN0 ZXAgNjogV2UgaGF2ZSBubyBmb3JtYXQuIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgdXNlcnNwYWNl DQo+PiAtICAgICAgKiByZXF1ZXN0cyBzb21lIHdlaXJkL2ludmFsaWQgZm9ybWF0Lg0KPj4gLSAg ICAgICogSW4gdGhpcyBjYXNlLCBkZWZhdWx0IHRvIHdoYXRldmVyIHdlIGhhdmUNCj4+IC0gICAg ICAqLw0KPj4gLSAgICAgaWYgKCFzZF9mbXQgJiYgIWRpcmVjdF9mbXQpIHsNCj4+IC0gICAgICAg ICAgICAgc2RfZm10ID0gaXNjLT51c2VyX2Zvcm1hdHNbaXNjLT5udW1fdXNlcl9mb3JtYXRzIC0g MV07DQo+PiAtICAgICAgICAgICAgIHY0bDJfZGJnKDEsIGRlYnVnLCAmaXNjLT52NGwyX2RldiwN Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgIlNlbnNvciBub3Qgc3VwcG9ydGluZyAlLjRzLCB1 c2luZyAlLjRzXG4iLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSZwaXhmbXQt PnBpeGVsZm9ybWF0LCAoY2hhciAqKSZzZF9mbXQtPmZvdXJjYyk7DQo+PiAtICAgICB9DQo+PiAt DQo+PiAtICAgICBpZiAoIXNkX2ZtdCkgew0KPj4gLSAgICAgICAgICAgICByZXQgPSAtRUlOVkFM Ow0KPj4gLSAgICAgICAgICAgICBnb3RvIGlzY190cnlfZm10X2VycjsNCj4+IC0gICAgIH0NCj4+ IC0NCj4+IC0gICAgIC8qIFN0ZXAgNzogUHJpbnQgb3V0IHdoYXQgd2UgZGVjaWRlZCBmb3IgZGVi dWdnaW5nICovDQo+PiAtICAgICB2NGwyX2RiZygxLCBkZWJ1ZywgJmlzYy0+djRsMl9kZXYsDQo+ PiAtICAgICAgICAgICAgICAiUHJlZmVycmluZyB0byBoYXZlIHNlbnNvciB1c2luZyBmb3JtYXQg JS40c1xuIiwNCj4+IC0gICAgICAgICAgICAgIChjaGFyICopJnNkX2ZtdC0+Zm91cmNjKTsNCj4+ IC0NCj4+IC0gICAgIC8qIFN0ZXAgODogYXQgdGhpcyBtb21lbnQgd2UgZGVjaWRlZCB3aGljaCBm b3JtYXQgdGhlIHN1YmRldiB3aWxsIHVzZSAqLw0KPj4gLSAgICAgaXNjLT50cnlfY29uZmlnLnNk X2Zvcm1hdCA9IHNkX2ZtdDsNCj4+ICsgICAgIGlzY190cnlfY29uZmlndXJlX3JscF9kbWEoaXNj LCBmYWxzZSk7DQo+Pg0KPj4gICAgICAgIC8qIExpbWl0IHRvIEF0bWVsIElTQyBoYXJkd2FyZSBj YXBhYmlsaXRpZXMgKi8NCj4+IC0gICAgIGlmIChwaXhmbXQtPndpZHRoID4gaXNjLT5tYXhfd2lk dGgpDQo+PiAtICAgICAgICAgICAgIHBpeGZtdC0+d2lkdGggPSBpc2MtPm1heF93aWR0aDsNCj4+ IC0gICAgIGlmIChwaXhmbXQtPmhlaWdodCA+IGlzYy0+bWF4X2hlaWdodCkNCj4+IC0gICAgICAg ICAgICAgcGl4Zm10LT5oZWlnaHQgPSBpc2MtPm1heF9oZWlnaHQ7DQo+PiAtDQo+PiAtICAgICAv Kg0KPj4gLSAgICAgICogVGhlIG1idXMgZm9ybWF0IGlzIHRoZSBvbmUgdGhlIHN1YmRldiBvdXRw dXRzLg0KPj4gLSAgICAgICogVGhlIHBpeGVscyB3aWxsIGJlIHRyYW5zZmVycmVkIGluIHRoaXMg Zm9ybWF0IFNlbnNvciAtPiBJU0MNCj4+IC0gICAgICAqLw0KPj4gLSAgICAgbWJ1c19jb2RlID0g c2RfZm10LT5tYnVzX2NvZGU7DQo+PiAtDQo+PiAtICAgICAvKg0KPj4gLSAgICAgICogVmFsaWRh dGUgZm9ybWF0cy4gSWYgdGhlIHJlcXVpcmVkIGZvcm1hdCBpcyBub3QgT0ssIGRlZmF1bHQgdG8g cmF3Lg0KPj4gLSAgICAgICovDQo+PiAtDQo+PiAtICAgICBpc2MtPnRyeV9jb25maWcuZm91cmNj ID0gcGl4Zm10LT5waXhlbGZvcm1hdDsNCj4+IC0NCj4+IC0gICAgIGlmIChpc2NfdHJ5X3ZhbGlk YXRlX2Zvcm1hdHMoaXNjKSkgew0KPj4gLSAgICAgICAgICAgICBwaXhmbXQtPnBpeGVsZm9ybWF0 ID0gaXNjLT50cnlfY29uZmlnLmZvdXJjYyA9IHNkX2ZtdC0+Zm91cmNjOw0KPj4gLSAgICAgICAg ICAgICAvKiBSZS10cnkgdG8gdmFsaWRhdGUgdGhlIG5ldyBmb3JtYXQgKi8NCj4+IC0gICAgICAg ICAgICAgcmV0ID0gaXNjX3RyeV92YWxpZGF0ZV9mb3JtYXRzKGlzYyk7DQo+PiAtICAgICAgICAg ICAgIGlmIChyZXQpDQo+PiAtICAgICAgICAgICAgICAgICAgICAgZ290byBpc2NfdHJ5X2ZtdF9l cnI7DQo+PiAtICAgICB9DQo+PiAtDQo+PiAtICAgICByZXQgPSBpc2NfdHJ5X2NvbmZpZ3VyZV9y bHBfZG1hKGlzYywgcmxwX2RtYV9kaXJlY3RfZHVtcCk7DQo+PiAtICAgICBpZiAocmV0KQ0KPj4g LSAgICAgICAgICAgICBnb3RvIGlzY190cnlfZm10X2VycjsNCj4+IC0NCj4+IC0gICAgIHJldCA9 IGlzY190cnlfY29uZmlndXJlX3BpcGVsaW5lKGlzYyk7DQo+PiAtICAgICBpZiAocmV0KQ0KPj4g LSAgICAgICAgICAgICBnb3RvIGlzY190cnlfZm10X2VycjsNCj4+IC0NCj4+IC0gICAgIC8qIE9i dGFpbiBmcmFtZSBzaXplcyBpZiBwb3NzaWJsZSB0byBoYXZlIGNyb3AgcmVxdWlyZW1lbnRzIHJl YWR5ICovDQo+PiAtICAgICBpc2NfdHJ5X2ZzZShpc2MsICZwYWRfc3RhdGUpOw0KPj4gLQ0KPj4g LSAgICAgdjRsMl9maWxsX21idXNfZm9ybWF0KCZmb3JtYXQuZm9ybWF0LCBwaXhmbXQsIG1idXNf Y29kZSk7DQo+PiAtICAgICByZXQgPSB2NGwyX3N1YmRldl9jYWxsKGlzYy0+Y3VycmVudF9zdWJk ZXYtPnNkLCBwYWQsIHNldF9mbXQsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICZw YWRfc3RhdGUsICZmb3JtYXQpOw0KPj4gLSAgICAgaWYgKHJldCA8IDApDQo+PiAtICAgICAgICAg ICAgIGdvdG8gaXNjX3RyeV9mbXRfc3ViZGV2X2VycjsNCj4+IC0NCj4+IC0gICAgIHY0bDJfZmls bF9waXhfZm9ybWF0KHBpeGZtdCwgJmZvcm1hdC5mb3JtYXQpOw0KPj4gKyAgICAgdjRsX2JvdW5k X2FsaWduX2ltYWdlKCZwaXhmbXQtPndpZHRoLCAxNiwgaXNjLT5tYXhfd2lkdGgsIDAsDQo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBpeGZtdC0+aGVpZ2h0LCAxNiwgaXNjLT5tYXhf aGVpZ2h0LCAwLCAwKTsNCj4+ICsgICAgIC8qIElmIHdlIGRpZCBub3QgZmluZCB0aGUgcmVxdWVz dGVkIGZvcm1hdCwgd2Ugd2lsbCBmYWxsYmFjayBoZXJlICovDQo+PiArICAgICBwaXhmbXQtPnBp eGVsZm9ybWF0ID0gaXNjLT50cnlfY29uZmlnLmZvdXJjYzsNCj4+ICsgICAgIHBpeGZtdC0+Y29s b3JzcGFjZSA9IFY0TDJfQ09MT1JTUEFDRV9TUkdCOw0KPj4gKyAgICAgcGl4Zm10LT5maWVsZCA9 IFY0TDJfRklFTERfTk9ORTsNCj4+DQo+PiAtICAgICAvKiBMaW1pdCB0byBBdG1lbCBJU0MgaGFy ZHdhcmUgY2FwYWJpbGl0aWVzICovDQo+PiAtICAgICBpZiAocGl4Zm10LT53aWR0aCA+IGlzYy0+ bWF4X3dpZHRoKQ0KPj4gLSAgICAgICAgICAgICBwaXhmbXQtPndpZHRoID0gaXNjLT5tYXhfd2lk dGg7DQo+PiAtICAgICBpZiAocGl4Zm10LT5oZWlnaHQgPiBpc2MtPm1heF9oZWlnaHQpDQo+PiAt ICAgICAgICAgICAgIHBpeGZtdC0+aGVpZ2h0ID0gaXNjLT5tYXhfaGVpZ2h0Ow0KPj4NCj4+IC0g ICAgIHBpeGZtdC0+ZmllbGQgPSBWNEwyX0ZJRUxEX05PTkU7DQo+PiAgICAgICAgcGl4Zm10LT5i eXRlc3BlcmxpbmUgPSAocGl4Zm10LT53aWR0aCAqIGlzYy0+dHJ5X2NvbmZpZy5icHBfdjRsMikg Pj4gMzsNCj4+ICAgICAgICBwaXhmbXQtPnNpemVpbWFnZSA9ICgocGl4Zm10LT53aWR0aCAqIGlz Yy0+dHJ5X2NvbmZpZy5icHApID4+IDMpICoNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwaXhmbXQtPmhlaWdodDsNCj4+DQo+PiAtICAgICBpZiAoY29kZSkNCj4+IC0gICAgICAgICAg ICAgKmNvZGUgPSBtYnVzX2NvZGU7DQo+PiArICAgICBpc2MtPnRyeV9mbXQgPSAqZjsNCj4+DQo+ PiAgICAgICAgcmV0dXJuIDA7DQo+PiArfQ0KPj4NCj4+IC1pc2NfdHJ5X2ZtdF9lcnI6DQo+PiAt ICAgICB2NGwyX2VycigmaXNjLT52NGwyX2RldiwgIkNvdWxkIG5vdCBmaW5kIGFueSBwb3NzaWJs ZSBmb3JtYXQgZm9yIGEgd29ya2luZyBwaXBlbGluZVxuIik7DQo+PiAtaXNjX3RyeV9mbXRfc3Vi ZGV2X2VycjoNCj4+IC0gICAgIG1lbXNldCgmaXNjLT50cnlfY29uZmlnLCAwLCBzaXplb2YoaXNj LT50cnlfY29uZmlnKSk7DQo+PiArc3RhdGljIGludCBpc2Nfc2V0X2ZtdChzdHJ1Y3QgaXNjX2Rl dmljZSAqaXNjLCBzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYpDQo+PiArew0KPj4gKyAgICAgaXNjX3Ry eV9mbXQoaXNjLCBmKTsNCj4+DQo+PiAtICAgICByZXR1cm4gcmV0Ow0KPj4gKyAgICAgLyogbWFr ZSB0aGUgdHJ5IGNvbmZpZ3VyYXRpb24gYWN0aXZlICovDQo+PiArICAgICBpc2MtPmNvbmZpZyA9 IGlzYy0+dHJ5X2NvbmZpZzsNCj4+ICsgICAgIGlzYy0+Zm10ID0gaXNjLT50cnlfZm10Ow0KPj4g Kw0KPj4gKyAgICAgdjRsMl9kYmcoMSwgZGVidWcsICZpc2MtPnY0bDJfZGV2LCAiSVNDIHNldF9m bXQgdG8gJS40cyBAJWR4JWRcbiIsDQo+PiArICAgICAgICAgICAgICAoY2hhciAqKSZmLT5mbXQu cGl4LnBpeGVsZm9ybWF0LA0KPj4gKyAgICAgICAgICAgICAgZi0+Zm10LnBpeC53aWR0aCwgZi0+ Zm10LnBpeC5oZWlnaHQpOw0KPj4gKw0KPj4gKyAgICAgcmV0dXJuIDA7DQo+PiAgIH0NCj4+DQo+ PiAtc3RhdGljIGludCBpc2Nfc2V0X2ZtdChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLCBzdHJ1Y3Qg djRsMl9mb3JtYXQgKmYpDQo+PiArc3RhdGljIGludCBpc2NfdmFsaWRhdGUoc3RydWN0IGlzY19k ZXZpY2UgKmlzYykNCj4+ICAgew0KPj4gKyAgICAgaW50IHJldDsNCj4+ICsgICAgIGludCBpOw0K Pj4gKyAgICAgc3RydWN0IGlzY19mb3JtYXQgKnNkX2ZtdCA9IE5VTEw7DQo+PiArICAgICBzdHJ1 Y3QgdjRsMl9waXhfZm9ybWF0ICpwaXhmbXQgPSAmaXNjLT5mbXQuZm10LnBpeDsNCj4+ICAgICAg ICBzdHJ1Y3QgdjRsMl9zdWJkZXZfZm9ybWF0IGZvcm1hdCA9IHsNCj4+ICAgICAgICAgICAgICAg IC53aGljaCA9IFY0TDJfU1VCREVWX0ZPUk1BVF9BQ1RJVkUsDQo+PiArICAgICAgICAgICAgIC5w YWQgPSBpc2MtPnJlbW90ZV9wYWQsDQo+PiArICAgICB9Ow0KPj4gKyAgICAgc3RydWN0IHY0bDJf c3ViZGV2X3BhZF9jb25maWcgcGFkX2NmZyA9IHt9Ow0KPj4gKyAgICAgc3RydWN0IHY0bDJfc3Vi ZGV2X3N0YXRlIHBhZF9zdGF0ZSA9IHsNCj4+ICsgICAgICAgICAgICAgLnBhZHMgPSAmcGFkX2Nm ZywNCj4+ICAgICAgICB9Ow0KPj4gLSAgICAgdTMyIG1idXNfY29kZSA9IDA7DQo+PiAtICAgICBp bnQgcmV0Ow0KPj4NCj4+IC0gICAgIHJldCA9IGlzY190cnlfZm10KGlzYywgZiwgJm1idXNfY29k ZSk7DQo+PiArICAgICAvKiBHZXQgY3VycmVudCBmb3JtYXQgZnJvbSBzdWJkZXYgKi8NCj4+ICsg ICAgIHJldCA9IHY0bDJfc3ViZGV2X2NhbGwoaXNjLT5jdXJyZW50X3N1YmRldi0+c2QsIHBhZCwg Z2V0X2ZtdCwgTlVMTCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvcm1hdCk7 DQo+IA0KPiBJIHRoaW5rIHdoZW4gdjRsMl9zdWJkZXZfY2FsbF9zdGF0ZV9hY3RpdmUoKSB3aWxs IGxhbmQgaXQgd2lsbA0KPiBwcm9iYWJseSBzaW1wbGlmeSBjYWxsaW5nIHRoZSBzdWJkZXYgZHJp dmVyIG9wZXJhdGlvbnMuDQo+IA0KPj4gICAgICAgIGlmIChyZXQpDQo+PiAgICAgICAgICAgICAg ICByZXR1cm4gcmV0Ow0KPj4NCj4+IC0gICAgIHY0bDJfZmlsbF9tYnVzX2Zvcm1hdCgmZm9ybWF0 LmZvcm1hdCwgJmYtPmZtdC5waXgsIG1idXNfY29kZSk7DQo+PiAtICAgICByZXQgPSB2NGwyX3N1 YmRldl9jYWxsKGlzYy0+Y3VycmVudF9zdWJkZXYtPnNkLCBwYWQsDQo+PiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNldF9mbXQsIE5VTEwsICZmb3JtYXQpOw0KPj4gLSAgICAgaWYgKHJl dCA8IDApDQo+PiAtICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgICAvKiBJZGVudGlm eSB0aGUgc3ViZGV2J3MgZm9ybWF0IGNvbmZpZ3VyYXRpb24gKi8NCj4+ICsgICAgIGZvciAoaSA9 IDA7IGkgPCBpc2MtPmZvcm1hdHNfbGlzdF9zaXplOyBpKyspDQo+PiArICAgICAgICAgICAgIGlm IChpc2MtPmZvcm1hdHNfbGlzdFtpXS5tYnVzX2NvZGUgPT0gZm9ybWF0LmZvcm1hdC5jb2RlKSB7 DQo+PiArICAgICAgICAgICAgICAgICAgICAgc2RfZm10ID0gJmlzYy0+Zm9ybWF0c19saXN0W2ld Ow0KPj4gKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPj4gKyAgICAgICAgICAgICB9DQo+ PiArDQo+PiArICAgICAvKiBDaGVjayBpZiB0aGUgZm9ybWF0IGlzIG5vdCBzdXBwb3J0ZWQgKi8N Cj4+ICsgICAgIGlmICghc2RfZm10KSB7DQo+PiArICAgICAgICAgICAgIHY0bDJfZXJyKCZpc2Mt PnY0bDJfZGV2LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAiQ3VycmVudCBzdWJkZXZpY2Ug aXMgc3RyZWFtaW5nIGEgbWVkaWEgYnVzIGNvZGUgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIDB4JXhc biIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC5mb3JtYXQuY29kZSk7DQo+PiAr ICAgICAgICAgICAgIHJldHVybiAtRVBJUEU7DQo+PiArICAgICB9DQo+PiArDQo+PiArICAgICAv KiBBdCB0aGlzIG1vbWVudCB3ZSBrbm93IHdoaWNoIGZvcm1hdCB0aGUgc3ViZGV2IHdpbGwgdXNl ICovDQo+PiArICAgICBpc2MtPnRyeV9jb25maWcuc2RfZm9ybWF0ID0gc2RfZm10Ow0KPj4gKw0K Pj4gKyAgICAgLyogSWYgdGhlIHNlbnNvciBpcyBub3QgUkFXLCB3ZSBjYW4gb25seSBkbyBhIGRp cmVjdCBkdW1wICovDQo+PiArICAgICBpZiAoIUlTQ19JU19GT1JNQVRfUkFXKGlzYy0+dHJ5X2Nv bmZpZy5zZF9mb3JtYXQtPm1idXNfY29kZSkpDQo+PiArICAgICAgICAgICAgIGlzY190cnlfY29u ZmlndXJlX3JscF9kbWEoaXNjLCB0cnVlKTsNCj4gDQo+IFRoaXMgaXMgZG9uZSBhdCB0cnlfZm9y bWF0KCkuIElzIGl0IGludGVudGlvbmFsbHkgcmVwZWF0ZWQgPw0KDQpZZXMuIEl0J3MgcmV1c2Ug b2YgdGhhdCBjb2RlLCB0aGlzIHRpbWUgdGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgdHJ1ZSwgDQpi ZWNhdXNlIGl0J3Mgd2hhdCBJIGNhbGwgYSAnZGlyZWN0IGR1bXAnLCBlLmcuIFlVWVYgZGlyZWN0 bHkgdG8gWVVZViwgbm8gDQpwcm9jZXNzaW5nLg0KDQo+IA0KPj4NCj4+ICAgICAgICAvKiBMaW1p dCB0byBBdG1lbCBJU0MgaGFyZHdhcmUgY2FwYWJpbGl0aWVzICovDQo+PiAtICAgICBpZiAoZi0+ Zm10LnBpeC53aWR0aCA+IGlzYy0+bWF4X3dpZHRoKQ0KPj4gLSAgICAgICAgICAgICBmLT5mbXQu cGl4LndpZHRoID0gaXNjLT5tYXhfd2lkdGg7DQo+PiAtICAgICBpZiAoZi0+Zm10LnBpeC5oZWln aHQgPiBpc2MtPm1heF9oZWlnaHQpDQo+PiAtICAgICAgICAgICAgIGYtPmZtdC5waXguaGVpZ2h0 ID0gaXNjLT5tYXhfaGVpZ2h0Ow0KPj4gKyAgICAgdjRsX2JvdW5kX2FsaWduX2ltYWdlKCZmb3Jt YXQuZm9ybWF0LndpZHRoLCAxNiwgaXNjLT5tYXhfd2lkdGgsIDAsDQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmZvcm1hdC5mb3JtYXQuaGVpZ2h0LCAxNiwgaXNjLT5tYXhfaGVpZ2h0 LCAwLCAwKTsNCj4+DQo+PiAtICAgICBpc2MtPmZtdCA9ICpmOw0KPj4gKyAgICAgLyogQ2hlY2sg aWYgdGhlIGZyYW1lIHNpemUgaXMgdGhlIHNhbWUuIE90aGVyd2lzZSB3ZSBtYXkgb3ZlcmZsb3cg Ki8NCj4+ICsgICAgIGlmIChwaXhmbXQtPmhlaWdodCAhPSBmb3JtYXQuZm9ybWF0LmhlaWdodCB8 fA0KPj4gKyAgICAgICAgIHBpeGZtdC0+d2lkdGggIT0gZm9ybWF0LmZvcm1hdC53aWR0aCkgew0K Pj4gKyAgICAgICAgICAgICB2NGwyX2VycigmaXNjLT52NGwyX2RldiwNCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgIklTQyBub3QgY29uZmlndXJlZCB3aXRoIHRoZSBwcm9wZXIgZnJhbWUgc2l6 ZTogJWR4JWRcbiIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC5mb3JtYXQud2lk dGgsIGZvcm1hdC5mb3JtYXQuaGVpZ2h0KTsNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FUElQ RTsNCj4+ICsgICAgIH0NCj4+ICsNCj4+ICsgICAgIHY0bDJfZGJnKDEsIGRlYnVnLCAmaXNjLT52 NGwyX2RldiwNCj4+ICsgICAgICAgICAgICAgICJJZGVudGlmaWVkIHN1YmRldiB1c2luZyBmb3Jt YXQgJS40cyB3aXRoICVkeCVkICVkIGJwcFxuIiwNCj4+ICsgICAgICAgICAgICAgIChjaGFyICop JnNkX2ZtdC0+Zm91cmNjLCBwaXhmbXQtPndpZHRoLCBwaXhmbXQtPmhlaWdodCwNCj4+ICsgICAg ICAgICAgICAgIGlzYy0+dHJ5X2NvbmZpZy5icHApOw0KPj4NCj4+ICsgICAgIC8qIFJlc2V0IGFu ZCByZXN0YXJ0IEFXQiBpZiB0aGUgc3ViZGV2aWNlIGNoYW5nZWQgdGhlIGZvcm1hdCAqLw0KPj4g ICAgICAgIGlmIChpc2MtPnRyeV9jb25maWcuc2RfZm9ybWF0ICYmIGlzYy0+Y29uZmlnLnNkX2Zv cm1hdCAmJg0KPj4gICAgICAgICAgICBpc2MtPnRyeV9jb25maWcuc2RfZm9ybWF0ICE9IGlzYy0+ Y29uZmlnLnNkX2Zvcm1hdCkgew0KPj4gICAgICAgICAgICAgICAgaXNjLT5jdHJscy5oaXN0X3N0 YXQgPSBISVNUX0lOSVQ7DQo+PiAgICAgICAgICAgICAgICBpc2NfcmVzZXRfYXdiX2N0cmxzKGlz Yyk7DQo+PiAgICAgICAgICAgICAgICBpc2NfdXBkYXRlX3Y0bDJfY3RybHMoaXNjKTsNCj4+ICAg ICAgICB9DQo+PiAtICAgICAvKiBtYWtlIHRoZSB0cnkgY29uZmlndXJhdGlvbiBhY3RpdmUgKi8N Cj4+ICsNCj4+ICsgICAgIC8qIFZhbGlkYXRlIGZvcm1hdHMgKi8NCj4+ICsgICAgIHJldCA9IGlz Y190cnlfdmFsaWRhdGVfZm9ybWF0cyhpc2MpOw0KPj4gKyAgICAgaWYgKHJldCkNCj4+ICsgICAg ICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsNCj4+ICsgICAgIC8qIE9idGFpbiBmcmFtZSBzaXpl cyBpZiBwb3NzaWJsZSB0byBoYXZlIGNyb3AgcmVxdWlyZW1lbnRzIHJlYWR5ICovDQo+PiArICAg ICBpc2NfdHJ5X2ZzZShpc2MsICZwYWRfc3RhdGUpOw0KPj4gKw0KPj4gKyAgICAgLyogQ29uZmln dXJlIElTQyBwaXBlbGluZSBmb3IgdGhlIGNvbmZpZyAqLw0KPj4gKyAgICAgcmV0ID0gaXNjX3Ry eV9jb25maWd1cmVfcGlwZWxpbmUoaXNjKTsNCj4+ICsgICAgIGlmIChyZXQpDQo+PiArICAgICAg ICAgICAgIHJldHVybiByZXQ7DQo+PiArDQo+PiAgICAgICAgaXNjLT5jb25maWcgPSBpc2MtPnRy eV9jb25maWc7DQo+Pg0KPj4gICAgICAgIHY0bDJfZGJnKDEsIGRlYnVnLCAmaXNjLT52NGwyX2Rl diwgIk5ldyBJU0MgY29uZmlndXJhdGlvbiBpbiBwbGFjZVxuIik7DQo+PiBAQCAtMTA0Myw3ICsx MDM3LDcgQEAgc3RhdGljIGludCBpc2NfdHJ5X2ZtdF92aWRfY2FwKHN0cnVjdCBmaWxlICpmaWxl LCB2b2lkICpwcml2LA0KPj4gICB7DQo+PiAgICAgICAgc3RydWN0IGlzY19kZXZpY2UgKmlzYyA9 IHZpZGVvX2RydmRhdGEoZmlsZSk7DQo+Pg0KPj4gLSAgICAgcmV0dXJuIGlzY190cnlfZm10KGlz YywgZiwgTlVMTCk7DQo+PiArICAgICByZXR1cm4gaXNjX3RyeV9mbXQoaXNjLCBmKTsNCj4+ICAg fQ0KPj4NCj4+ICAgc3RhdGljIGludCBpc2NfZW51bV9pbnB1dChzdHJ1Y3QgZmlsZSAqZmlsZSwg dm9pZCAqcHJpdiwNCj4+IEBAIC0xMDk4LDEwICsxMDkyLDYgQEAgc3RhdGljIGludCBpc2NfZW51 bV9mcmFtZXNpemVzKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpmaCwNCj4+ICAgICAgICBpZiAo ZnNpemUtPmluZGV4KQ0KPj4gICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+Pg0KPj4g LSAgICAgZm9yIChpID0gMDsgaSA8IGlzYy0+bnVtX3VzZXJfZm9ybWF0czsgaSsrKQ0KPj4gLSAg ICAgICAgICAgICBpZiAoaXNjLT51c2VyX2Zvcm1hdHNbaV0tPmZvdXJjYyA9PSBmc2l6ZS0+cGl4 ZWxfZm9ybWF0KQ0KPj4gLSAgICAgICAgICAgICAgICAgICAgIHJldCA9IDA7DQo+PiAtDQo+PiAg ICAgICAgZm9yIChpID0gMDsgaSA8IGlzYy0+Y29udHJvbGxlcl9mb3JtYXRzX3NpemU7IGkrKykN Cj4+ICAgICAgICAgICAgICAgIGlmIChpc2MtPmNvbnRyb2xsZXJfZm9ybWF0c1tpXS5mb3VyY2Mg PT0gZnNpemUtPnBpeGVsX2Zvcm1hdCkNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0g MDsNCj4+IEBAIC0xNzgyLDUyICsxNzcyLDYgQEAgc3RydWN0IGlzY19mb3JtYXQgKmlzY19maW5k X2Zvcm1hdF9ieV9jb2RlKHN0cnVjdCBpc2NfZGV2aWNlICppc2MsDQo+PiAgIH0NCj4+ICAgRVhQ T1JUX1NZTUJPTF9HUEwoaXNjX2ZpbmRfZm9ybWF0X2J5X2NvZGUpOw0KPj4NCj4+IC1zdGF0aWMg aW50IGlzY19mb3JtYXRzX2luaXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYykNCj4+IC17DQo+PiAt ICAgICBzdHJ1Y3QgaXNjX2Zvcm1hdCAqZm10Ow0KPj4gLSAgICAgc3RydWN0IHY0bDJfc3ViZGV2 ICpzdWJkZXYgPSBpc2MtPmN1cnJlbnRfc3ViZGV2LT5zZDsNCj4+IC0gICAgIHVuc2lnbmVkIGlu dCBudW1fZm10cywgaSwgajsNCj4+IC0gICAgIHUzMiBsaXN0X3NpemUgPSBpc2MtPmZvcm1hdHNf bGlzdF9zaXplOw0KPj4gLSAgICAgc3RydWN0IHY0bDJfc3ViZGV2X21idXNfY29kZV9lbnVtIG1i dXNfY29kZSA9IHsNCj4+IC0gICAgICAgICAgICAgLndoaWNoID0gVjRMMl9TVUJERVZfRk9STUFU X0FDVElWRSwNCj4+IC0gICAgIH07DQo+PiAtDQo+PiAtICAgICBudW1fZm10cyA9IDA7DQo+PiAt ICAgICB3aGlsZSAoIXY0bDJfc3ViZGV2X2NhbGwoc3ViZGV2LCBwYWQsIGVudW1fbWJ1c19jb2Rl LA0KPj4gLSAgICAgICAgICAgIE5VTEwsICZtYnVzX2NvZGUpKSB7DQo+PiAtICAgICAgICAgICAg IG1idXNfY29kZS5pbmRleCsrOw0KPj4gLQ0KPj4gLSAgICAgICAgICAgICBmbXQgPSBpc2NfZmlu ZF9mb3JtYXRfYnlfY29kZShpc2MsIG1idXNfY29kZS5jb2RlLCAmaSk7DQo+PiAtICAgICAgICAg ICAgIGlmICghZm10KSB7DQo+PiAtICAgICAgICAgICAgICAgICAgICAgdjRsMl93YXJuKCZpc2Mt PnY0bDJfZGV2LCAiTWJ1cyBjb2RlICV4IG5vdCBzdXBwb3J0ZWRcbiIsDQo+PiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1idXNfY29kZS5jb2RlKTsNCj4+IC0gICAgICAgICAgICAg ICAgICAgICBjb250aW51ZTsNCj4+IC0gICAgICAgICAgICAgfQ0KPj4gLQ0KPj4gLSAgICAgICAg ICAgICBmbXQtPnNkX3N1cHBvcnQgPSB0cnVlOw0KPj4gLSAgICAgICAgICAgICBudW1fZm10cysr Ow0KPj4gLSAgICAgfQ0KPj4gLQ0KPj4gLSAgICAgaWYgKCFudW1fZm10cykNCj4+IC0gICAgICAg ICAgICAgcmV0dXJuIC1FTlhJTzsNCj4+IC0NCj4+IC0gICAgIGlzYy0+bnVtX3VzZXJfZm9ybWF0 cyA9IG51bV9mbXRzOw0KPj4gLSAgICAgaXNjLT51c2VyX2Zvcm1hdHMgPSBkZXZtX2tjYWxsb2Mo aXNjLT5kZXYsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1f Zm10cywgc2l6ZW9mKCppc2MtPnVzZXJfZm9ybWF0cyksDQo+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVMKTsNCj4+IC0gICAgIGlmICghaXNjLT51c2Vy X2Zvcm1hdHMpDQo+PiAtICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPj4gLQ0KPj4gLSAg ICAgZm10ID0gJmlzYy0+Zm9ybWF0c19saXN0WzBdOw0KPj4gLSAgICAgZm9yIChpID0gMCwgaiA9 IDA7IGkgPCBsaXN0X3NpemU7IGkrKykgew0KPj4gLSAgICAgICAgICAgICBpZiAoZm10LT5zZF9z dXBwb3J0KQ0KPj4gLSAgICAgICAgICAgICAgICAgICAgIGlzYy0+dXNlcl9mb3JtYXRzW2orK10g PSBmbXQ7DQo+PiAtICAgICAgICAgICAgIGZtdCsrOw0KPj4gLSAgICAgfQ0KPj4gLQ0KPj4gLSAg ICAgcmV0dXJuIDA7DQo+PiAtfQ0KPj4gLQ0KPj4gICBzdGF0aWMgaW50IGlzY19zZXRfZGVmYXVs dF9mbXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYykNCj4+ICAgew0KPj4gICAgICAgIHN0cnVjdCB2 NGwyX2Zvcm1hdCBmID0gew0KPj4gQEAgLTE4MzYsMTIgKzE3ODAsMTIgQEAgc3RhdGljIGludCBp c2Nfc2V0X2RlZmF1bHRfZm10KHN0cnVjdCBpc2NfZGV2aWNlICppc2MpDQo+PiAgICAgICAgICAg ICAgICAgICAgICAgIC53aWR0aCAgICAgICAgICA9IFZHQV9XSURUSCwNCj4+ICAgICAgICAgICAg ICAgICAgICAgICAgLmhlaWdodCAgICAgICAgID0gVkdBX0hFSUdIVCwNCj4+ICAgICAgICAgICAg ICAgICAgICAgICAgLmZpZWxkICAgICAgICAgID0gVjRMMl9GSUVMRF9OT05FLA0KPj4gLSAgICAg ICAgICAgICAgICAgICAgIC5waXhlbGZvcm1hdCAgICA9IGlzYy0+dXNlcl9mb3JtYXRzWzBdLT5m b3VyY2MsDQo+PiArICAgICAgICAgICAgICAgICAgICAgLnBpeGVsZm9ybWF0ICAgID0gaXNjLT5j b250cm9sbGVyX2Zvcm1hdHNbMF0uZm91cmNjLA0KPj4gICAgICAgICAgICAgICAgfSwNCj4+ICAg ICAgICB9Ow0KPj4gICAgICAgIGludCByZXQ7DQo+Pg0KPj4gLSAgICAgcmV0ID0gaXNjX3RyeV9m bXQoaXNjLCAmZiwgTlVMTCk7DQo+PiArICAgICByZXQgPSBpc2NfdHJ5X2ZtdChpc2MsICZmKTsN Cj4+ICAgICAgICBpZiAocmV0KQ0KPj4gICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+DQo+ PiBAQCAtMTg5NiwxMyArMTg0MCw2IEBAIHN0YXRpYyBpbnQgaXNjX2FzeW5jX2NvbXBsZXRlKHN0 cnVjdCB2NGwyX2FzeW5jX25vdGlmaWVyICpub3RpZmllcikNCj4+ICAgICAgICBzcGluX2xvY2tf aW5pdCgmaXNjLT5kbWFfcXVldWVfbG9jayk7DQo+PiAgICAgICAgc3Bpbl9sb2NrX2luaXQoJmlz Yy0+YXdiX2xvY2spOw0KPj4NCj4+IC0gICAgIHJldCA9IGlzY19mb3JtYXRzX2luaXQoaXNjKTsN Cj4+IC0gICAgIGlmIChyZXQgPCAwKSB7DQo+PiAtICAgICAgICAgICAgIHY0bDJfZXJyKCZpc2Mt PnY0bDJfZGV2LA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAiSW5pdCBmb3JtYXQgZmFpbGVk OiAlZFxuIiwgcmV0KTsNCj4+IC0gICAgICAgICAgICAgZ290byBpc2NfYXN5bmNfY29tcGxldGVf ZXJyOw0KPj4gLSAgICAgfQ0KPj4gLQ0KPj4gICAgICAgIHJldCA9IGlzY19zZXRfZGVmYXVsdF9m bXQoaXNjKTsNCj4+ICAgICAgICBpZiAocmV0KSB7DQo+PiAgICAgICAgICAgICAgICB2NGwyX2Vy cigmaXNjLT52NGwyX2RldiwgIkNvdWxkIG5vdCBzZXQgZGVmYXVsdCBmb3JtYXRcbiIpOw0KPj4g QEAgLTIwMTUsNiArMTk1MiwyNCBAQCBpbnQgaXNjX3BpcGVsaW5lX2luaXQoc3RydWN0IGlzY19k ZXZpY2UgKmlzYykNCj4+ICAgfQ0KPj4gICBFWFBPUlRfU1lNQk9MX0dQTChpc2NfcGlwZWxpbmVf aW5pdCk7DQo+Pg0KPj4gK2ludCBpc2NfbGlua192YWxpZGF0ZShzdHJ1Y3QgbWVkaWFfbGluayAq bGluaykNCj4+ICt7DQo+PiArICAgICBzdHJ1Y3QgdmlkZW9fZGV2aWNlICp2ZGV2ID0NCj4+ICsg ICAgICAgICAgICAgbWVkaWFfZW50aXR5X3RvX3ZpZGVvX2RldmljZShsaW5rLT5zaW5rLT5lbnRp dHkpOw0KPj4gKyAgICAgc3RydWN0IGlzY19kZXZpY2UgKmlzYyA9IHZpZGVvX2dldF9kcnZkYXRh KHZkZXYpOw0KPj4gKyAgICAgaW50IHJldDsNCj4+ICsNCj4+ICsgICAgIHJldCA9IHY0bDJfc3Vi ZGV2X2xpbmtfdmFsaWRhdGUobGluayk7DQo+PiArICAgICBpZiAocmV0KQ0KPj4gKyAgICAgICAg ICAgICByZXR1cm4gcmV0Ow0KPj4gKw0KPj4gKyAgICAgcmV0dXJuIGlzY192YWxpZGF0ZShpc2Mp Ow0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhX2VudGl0eV9vcGVy YXRpb25zIGlzY19lbnRpdHlfb3BlcmF0aW9ucyA9IHsNCj4+ICsgICAgIC5saW5rX3ZhbGlkYXRl ID0gaXNjX2xpbmtfdmFsaWRhdGUsDQo+PiArfTsNCj4+ICsNCj4+ICAgaW50IGlzY19tY19pbml0 KHN0cnVjdCBpc2NfZGV2aWNlICppc2MsIHUzMiB2ZXIpDQo+PiAgIHsNCj4+ICAgICAgICBjb25z dCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICptYXRjaDsNCj4+IEBAIC0yMDIyLDYgKzE5NzcsOCBAQCBp bnQgaXNjX21jX2luaXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYywgdTMyIHZlcikNCj4+DQo+PiAg ICAgICAgaXNjLT52aWRlb19kZXYuZW50aXR5LmZ1bmN0aW9uID0gTUVESUFfRU5UX0ZfSU9fVjRM Ow0KPj4gICAgICAgIGlzYy0+dmlkZW9fZGV2LmVudGl0eS5mbGFncyA9IE1FRElBX0VOVF9GTF9E RUZBVUxUOw0KPj4gKyAgICAgaXNjLT52aWRlb19kZXYuZW50aXR5Lm9wcyA9ICZpc2NfZW50aXR5 X29wZXJhdGlvbnM7DQo+PiArDQo+PiAgICAgICAgaXNjLT5wYWRzW0lTQ19QQURfU0lOS10uZmxh Z3MgPSBNRURJQV9QQURfRkxfU0lOSzsNCj4+DQo+PiAgICAgICAgcmV0ID0gbWVkaWFfZW50aXR5 X3BhZHNfaW5pdCgmaXNjLT52aWRlb19kZXYuZW50aXR5LCBJU0NfUEFEU19OVU0sDQo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2Mtc2NhbGVyLmMg Yi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy1zY2FsZXIuYw0KPj4gaW5k ZXggMGMxZjQ5ZGI0N2I0Li5iMDIwMGJiNDRmOGEgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy1zY2FsZXIuYw0KPj4gKysrIGIvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2Mtc2NhbGVyLmMNCj4+IEBAIC0xNzEsNiArMTcx LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX29wcyBpc2Nfc2NhbGVy X3BhZF9vcHMgPSB7DQo+PiAgICAgICAgLmluaXRfY2ZnID0gaXNjX3NjYWxlcl9pbml0X2NmZywN Cj4+ICAgfTsNCj4+DQo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYV9lbnRpdHlfb3BlcmF0 aW9ucyBpc2Nfc2NhbGVyX2VudGl0eV9vcHMgPSB7DQo+PiArICAgICAubGlua192YWxpZGF0ZSA9 IHY0bDJfc3ViZGV2X2xpbmtfdmFsaWRhdGUsDQo+PiArfTsNCj4+ICsNCj4+ICAgc3RhdGljIGNv bnN0IHN0cnVjdCB2NGwyX3N1YmRldl9vcHMgeGlzY19zY2FsZXJfc3ViZGV2X29wcyA9IHsNCj4+ ICAgICAgICAucGFkID0gJmlzY19zY2FsZXJfcGFkX29wcywNCj4+ICAgfTsNCj4+IEBAIC0xODgs NiArMTkyLDcgQEAgaW50IGlzY19zY2FsZXJfaW5pdChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjKQ0K Pj4NCj4+ICAgICAgICBpc2MtPnNjYWxlcl9zZC5mbGFncyB8PSBWNEwyX1NVQkRFVl9GTF9IQVNf REVWTk9ERTsNCj4+ICAgICAgICBpc2MtPnNjYWxlcl9zZC5lbnRpdHkuZnVuY3Rpb24gPSBNRURJ QV9FTlRfRl9QUk9DX1ZJREVPX1NDQUxFUjsNCj4+ICsgICAgIGlzYy0+c2NhbGVyX3NkLmVudGl0 eS5vcHMgPSAmaXNjX3NjYWxlcl9lbnRpdHlfb3BzOw0KPj4gICAgICAgIGlzYy0+c2NhbGVyX3Bh ZHNbSVNDX1NDQUxFUl9QQURfU0lOS10uZmxhZ3MgPSBNRURJQV9QQURfRkxfU0lOSzsNCj4+ICAg ICAgICBpc2MtPnNjYWxlcl9wYWRzW0lTQ19TQ0FMRVJfUEFEX1NPVVJDRV0uZmxhZ3MgPSBNRURJ QV9QQURfRkxfU09VUkNFOw0KPj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL2F0bWVsL2F0bWVsLWlzYy5oIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1l bC1pc2MuaA0KPj4gaW5kZXggYWM4Yzg2NzlkZDUzLi5lMjI2MWNlOTlmNGYgMTAwNjQ0DQo+PiAt LS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5oDQo+PiArKysgYi9k cml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5oDQo+PiBAQCAtNjMsMTUgKzYz LDE2IEBAIHN0cnVjdCBpc2Nfc3ViZGV2X2VudGl0eSB7DQo+PiAgICAqIEBjZmFfYmF5Y2ZnOiAg ICAgICAgICAgICAgSWYgdGhpcyBmb3JtYXQgaXMgUkFXIEJBWUVSLCBpbmRpY2F0ZSB0aGUgdHlw ZSBvZiBiYXllci4NCj4+ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBpcyBlaXRoZXIgQkdC RywgUkdSRywgZXRjLg0KPj4gICAgKiBAcGZlX2NmZzBfYnBzOiAgICBOdW1iZXIgb2YgaGFyZHdh cmUgZGF0YSBsaW5lcyBjb25uZWN0ZWQgdG8gdGhlIElTQw0KPj4gKyAqIEByYXc6ICAgICAgICAg ICAgIElmIHRoZSBmb3JtYXQgaXMgcmF3IGJheWVyLg0KPj4gICAgKi8NCj4+DQo+PiAgIHN0cnVj dCBpc2NfZm9ybWF0IHsNCj4+ICAgICAgICB1MzIgICAgIGZvdXJjYzsNCj4+ICAgICAgICB1MzIg ICAgIG1idXNfY29kZTsNCj4+ICAgICAgICB1MzIgICAgIGNmYV9iYXljZmc7DQo+PiAtDQo+PiAt ICAgICBib29sICAgIHNkX3N1cHBvcnQ7DQo+PiAgICAgICAgdTMyICAgICBwZmVfY2ZnMF9icHM7 DQo+PiArDQo+PiArICAgICBib29sICAgIHJhdzsNCj4+ICAgfTsNCj4+DQo+PiAgIC8qIFBpcGVs aW5lIGJpdG1hcCAqLw0KPj4gQEAgLTIxNiw4ICsyMTcsNyBAQCBlbnVtIGlzY19zY2FsZXJfcGFk cyB7DQo+PiAgICAqIEBjb21wOiAgICAgICAgICAgIGNvbXBsZXRpb24gcmVmZXJlbmNlIHRoYXQg c2lnbmFscyBmcmFtZSBjb21wbGV0aW9uDQo+PiAgICAqDQo+PiAgICAqIEBmbXQ6ICAgICAgICAg ICAgIGN1cnJlbnQgdjQybCBmb3JtYXQNCj4+IC0gKiBAdXNlcl9mb3JtYXRzOiAgICBsaXN0IG9m IGZvcm1hdHMgdGhhdCBhcmUgc3VwcG9ydGVkIGFuZCBhZ3JlZWQgd2l0aCBzZA0KPj4gLSAqIEBu dW1fdXNlcl9mb3JtYXRzOiAgICAgICAgaG93IG1hbnkgZm9ybWF0cyBhcmUgaW4gdXNlcl9mb3Jt YXRzDQo+PiArICogQHRyeV9mbXQ6ICAgICAgICAgY3VycmVudCB2NGwyIHRyeSBmb3JtYXQNCj4+ ICAgICoNCj4+ICAgICogQGNvbmZpZzogICAgICAgICAgY3VycmVudCBJU0MgZm9ybWF0IGNvbmZp Z3VyYXRpb24NCj4+ICAgICogQHRyeV9jb25maWc6ICAgICAgICAgICAgICB0aGUgY3VycmVudCBJ U0MgdHJ5IGZvcm1hdCAsIG5vdCB5ZXQgYWN0aXZhdGVkDQo+PiBAQCAtMjcyLDYgKzI3Miw3IEBA IGVudW0gaXNjX3NjYWxlcl9wYWRzIHsNCj4+ICAgICogQGZvcm1hdHNfbGlzdF9zaXplOiAgICAg ICBzaXplIG9mIGZvcm1hdHNfbGlzdCBhcnJheQ0KPj4gICAgKiBAcGFkczogICAgICAgICAgICBt ZWRpYSBjb250cm9sbGVyIHBhZHMgZm9yIGlzYyB2aWRlbyBlbnRpdHkNCj4+ICAgICogQG1kZXY6 ICAgICAgICAgICAgbWVkaWEgZGV2aWNlIHRoYXQgaXMgcmVnaXN0ZXJlZCBieSB0aGUgaXNjDQo+ PiArICogQG1waXBlOiAgICAgICAgICAgbWVkaWEgZGV2aWNlIHBpcGVsaW5lIHVzZWQgYnkgdGhl IGlzYw0KPj4gICAgKiBAcmVtb3RlX3BhZDogICAgICAgICAgICAgIHJlbW90ZSBwYWQgb24gdGhl IGNvbm5lY3RlZCBzdWJkZXZpY2UNCj4+ICAgICogQHNjYWxlcl9zZDogICAgICAgICAgICAgICBz dWJkZXZpY2UgZm9yIHRoZSBzY2FsZXIgdGhhdCBpc2MgcmVnaXN0ZXJzDQo+PiAgICAqIEBzY2Fs ZXJfcGFkczogICAgIG1lZGlhIGNvbnRyb2xsZXIgcGFkcyBmb3IgdGhlIHNjYWxlciBzdWJkZXZp Y2UNCj4+IEBAIC0zMDAsOCArMzAxLDcgQEAgc3RydWN0IGlzY19kZXZpY2Ugew0KPj4gICAgICAg IHN0cnVjdCBjb21wbGV0aW9uICAgICAgIGNvbXA7DQo+Pg0KPj4gICAgICAgIHN0cnVjdCB2NGwy X2Zvcm1hdCAgICAgIGZtdDsNCj4+IC0gICAgIHN0cnVjdCBpc2NfZm9ybWF0ICAgICAgICoqdXNl cl9mb3JtYXRzOw0KPj4gLSAgICAgdW5zaWduZWQgaW50ICAgICAgICAgICAgbnVtX3VzZXJfZm9y bWF0czsNCj4+ICsgICAgIHN0cnVjdCB2NGwyX2Zvcm1hdCAgICAgIHRyeV9mbXQ7DQo+Pg0KPj4g ICAgICAgIHN0cnVjdCBmbXRfY29uZmlnICAgICAgIGNvbmZpZzsNCj4+ICAgICAgICBzdHJ1Y3Qg Zm10X2NvbmZpZyAgICAgICB0cnlfY29uZmlnOw0KPj4gQEAgLTM3MSw2ICszNzEsNyBAQCBzdHJ1 Y3QgaXNjX2RldmljZSB7DQo+PiAgICAgICAgc3RydWN0IHsNCj4+ICAgICAgICAgICAgICAgIHN0 cnVjdCBtZWRpYV9wYWQgICAgICAgICAgICAgICAgcGFkc1tJU0NfUEFEU19OVU1dOw0KPj4gICAg ICAgICAgICAgICAgc3RydWN0IG1lZGlhX2RldmljZSAgICAgICAgICAgICBtZGV2Ow0KPj4gKyAg ICAgICAgICAgICBzdHJ1Y3QgbWVkaWFfcGlwZWxpbmUgICAgICAgICAgIG1waXBlOw0KPj4NCj4+ ICAgICAgICAgICAgICAgIHUzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlX3Bh ZDsNCj4+ICAgICAgICB9Ow0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v YXRtZWwvYXRtZWwtc2FtYTVkMi1pc2MuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwv YXRtZWwtc2FtYTVkMi1pc2MuYw0KPj4gaW5kZXggZDk2ZWUzMzczODg5Li4yYTY1MWUyMzcxOTMg MTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLXNhbWE1 ZDItaXNjLmMNCj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtc2Ft YTVkMi1pc2MuYw0KPj4gQEAgLTgwLDIwICs4MCw0MCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlz Y19mb3JtYXQgc2FtYTVkMl9jb250cm9sbGVyX2Zvcm1hdHNbXSA9IHsNCj4+ICAgICAgICAgICAg ICAgIC5mb3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9ZMTAsDQo+PiAgICAgICAgfSwgew0K Pj4gICAgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1NCR0dSOCwN Cj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0gdHJ1ZSwNCj4+ICAgICAgICB9LCB7 DQo+PiAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRfU0dCUkc4 LA0KPj4gKyAgICAgICAgICAgICAucmF3ICAgICAgICAgICAgPSB0cnVlLA0KPj4gICAgICAgIH0s IHsNCj4+ICAgICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9TR1JC RzgsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRydWUsDQo+PiAgICAgICAg fSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1NS R0dCOCwNCj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0gdHJ1ZSwNCj4+ICAgICAg ICB9LCB7DQo+PiAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRf U0JHR1IxMCwNCj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0gdHJ1ZSwNCj4+ICAg ICAgICB9LCB7DQo+PiAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9G TVRfU0dCUkcxMCwNCj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0gdHJ1ZSwNCj4+ ICAgICAgICB9LCB7DQo+PiAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJ WF9GTVRfU0dSQkcxMCwNCj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0gdHJ1ZSwN Cj4+ICAgICAgICB9LCB7DQo+PiAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwy X1BJWF9GTVRfU1JHR0IxMCwNCj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0gdHJ1 ZSwNCj4+ICsgICAgIH0sIHsNCj4+ICsgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0gVjRM Ml9QSVhfRk1UX1NCR0dSMTIsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRy dWUsDQo+PiArICAgICB9LCB7DQo+PiArICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9IFY0 TDJfUElYX0ZNVF9TR0JSRzEyLA0KPj4gKyAgICAgICAgICAgICAucmF3ICAgICAgICAgICAgPSB0 cnVlLA0KPj4gKyAgICAgfSwgew0KPj4gKyAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBW NEwyX1BJWF9GTVRfU0dSQkcxMiwNCj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0g dHJ1ZSwNCj4+ICsgICAgIH0sIHsNCj4+ICsgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0g VjRMMl9QSVhfRk1UX1NSR0dCMTIsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9 IHRydWUsDQo+IA0KPiBJcyB0aGUgbGlzdCB6ZXJvLWluaXRpYWxpemVkID8gQmVnaW4gYSBzdGF0 aWMgY29uc3QgSSBhc3N1bWUgc28gKEkNCj4gc2hvdWxkIGxvb2sgYXQgdGhlIEMgc3BlYyBpbnN0 ZWFkIG9mIGFza2luZyA6KQ0KDQpZZXMgdGhpcyBzaG91bGQgYmUgdGhlIGNhc2UuDQoNCg0KVGhh bmsgeW91IGZvciB5b3VyIGRldGFpbGVkIHJldmlldy4NCkkgd2lsbCBjb21lIHVwIHdpdGggdjYg c29vbiBhbmQgaXQgc2hvdWxkIGJlaGF2ZSBsaWtlIEkgZGVzY3JpYmVkIGFib3ZlLg0KDQpFdWdl bg0KPiANCj4+ICAgICAgICB9LA0KPj4gICB9Ow0KPj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLXNhbWE3ZzUtaXNjLmMgYi9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL2F0bWVsL2F0bWVsLXNhbWE3ZzUtaXNjLmMNCj4+IGluZGV4IGUwN2FlMTg4YzE1 Zi4uYTBkNjBjZmRiYTdiIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9h dG1lbC9hdG1lbC1zYW1hN2c1LWlzYy5jDQo+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L2F0bWVsL2F0bWVsLXNhbWE3ZzUtaXNjLmMNCj4+IEBAIC04OSwyMCArODksNDAgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBpc2NfZm9ybWF0IHNhbWE3ZzVfY29udHJvbGxlcl9mb3JtYXRzW10gPSB7 DQo+PiAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRfWTE2LA0K Pj4gICAgICAgIH0sIHsNCj4+ICAgICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9IFY0TDJf UElYX0ZNVF9TQkdHUjgsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9IHRydWUs DQo+PiAgICAgICAgfSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAgID0gVjRM Ml9QSVhfRk1UX1NHQlJHOCwNCj4+ICsgICAgICAgICAgICAgLnJhdyAgICAgICAgICAgID0gdHJ1 ZSwNCj4+ICAgICAgICB9LCB7DQo+PiAgICAgICAgICAgICAgICAuZm91cmNjICAgICAgICAgPSBW NEwyX1BJWF9GTVRfU0dSQkc4LA0KPj4gKyAgICAgICAgICAgICAucmF3ICAgICAgICAgICAgPSB0 cnVlLA0KPj4gICAgICAgIH0sIHsNCj4+ICAgICAgICAgICAgICAgIC5mb3VyY2MgICAgICAgICA9 IFY0TDJfUElYX0ZNVF9TUkdHQjgsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAgICA9 IHRydWUsDQo+PiAgICAgICAgfSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJjYyAgICAgICAg ID0gVjRMMl9QSVhfRk1UX1NCR0dSMTAsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAgICAg ICA9IHRydWUsDQo+PiAgICAgICAgfSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJjYyAgICAg ICAgID0gVjRMMl9QSVhfRk1UX1NHQlJHMTAsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAgICAg ICAgICA9IHRydWUsDQo+PiAgICAgICAgfSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJjYyAg ICAgICAgID0gVjRMMl9QSVhfRk1UX1NHUkJHMTAsDQo+PiArICAgICAgICAgICAgIC5yYXcgICAg ICAgICAgICA9IHRydWUsDQo+PiAgICAgICAgfSwgew0KPj4gICAgICAgICAgICAgICAgLmZvdXJj YyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1NSR0dCMTAsDQo+PiArICAgICAgICAgICAgIC5yYXcg ICAgICAgICAgICA9IHRydWUsDQo+PiArICAgICB9LCB7DQo+PiArICAgICAgICAgICAgIC5mb3Vy Y2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9TQkdHUjEyLA0KPj4gKyAgICAgICAgICAgICAucmF3 ICAgICAgICAgICAgPSB0cnVlLA0KPj4gKyAgICAgfSwgew0KPj4gKyAgICAgICAgICAgICAuZm91 cmNjICAgICAgICAgPSBWNEwyX1BJWF9GTVRfU0dCUkcxMiwNCj4+ICsgICAgICAgICAgICAgLnJh dyAgICAgICAgICAgID0gdHJ1ZSwNCj4+ICsgICAgIH0sIHsNCj4+ICsgICAgICAgICAgICAgLmZv dXJjYyAgICAgICAgID0gVjRMMl9QSVhfRk1UX1NHUkJHMTIsDQo+PiArICAgICAgICAgICAgIC5y YXcgICAgICAgICAgICA9IHRydWUsDQo+PiArICAgICB9LCB7DQo+PiArICAgICAgICAgICAgIC5m b3VyY2MgICAgICAgICA9IFY0TDJfUElYX0ZNVF9TUkdHQjEyLA0KPj4gKyAgICAgICAgICAgICAu cmF3ICAgICAgICAgICAgPSB0cnVlLA0KPj4gICAgICAgIH0sDQo+PiAgIH07DQo+Pg0KPj4gLS0N Cj4+IDIuMjUuMQ0KPj4NCg0K