Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp3593275pxb; Mon, 1 Nov 2021 16:55:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy7G+PHab9tOkdS5668RDyyoofHAVxH05KAKSaXH17hSo4mvMuz1MrrkLC9SXsgpxGQD+dd X-Received: by 2002:a92:ca46:: with SMTP id q6mr4882733ilo.230.1635810920599; Mon, 01 Nov 2021 16:55:20 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1635810920; cv=pass; d=google.com; s=arc-20160816; b=gXZL/8Cv5chBdQ7dOnO8fLZ6ieAxErxX/eYsv8k0pEGfF5hLRkGEpHirEKQ5GkKzEm rs3iuOLNNtOGEsZja9VLhuy7u1yMgFmu/EH+8nB/38I1Os01KAQ3B8371ZN/AaS/ZmUR HMV25gDxmZlkda+HJylvcU0iouN1O8IZwCt/9Pcy+ZogP8eivDd3PBLZA98bNfeM1LzS FmyHufds49yiNUzGhub6vJEyij8UmmTRvgkvC02tLAyt/qEA1YoWz+7YFobPDa7m/Hvj EJu+BEu6bMa0DBKqmBiTQ/27ThtXi/7GM1t9l9zhYCOe7ak1NmQ9moDunOjH83daB7CG FXbw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=6mRUpaakm3y2Aa+MYJgusoVRofm/0a+aL7apDejRe+A=; b=dYZTRMZE/sifHoHdT9AZTwNAu3YuqMKx+5uzAr0WwLttIL3sIbYzHqLbS/5Y+VaJsj EvErRM8BERyHXQEekMfjtAwiXYNRsNVCGvQgqAxOslEwXqYpv9qXA2DhjOLjKkoMY3Au c9CSFu1JgSDwIa/4VNt4Q5Ir8IS1rIPn52pcxB89A0dtMZVNsNeLnataibnHfWLHiqCw tJvGRCSPxt3f6+xk7KIpI4Es/OmHYXeNXeT13odj7ZJcwPdUeqfm5UP5jv1uqDa7nopj i8ChY9pbwc0l2ShnHL4EyXDkHLPU0NkaGoGbSyjskcxeASPQqEk0s0rxmM9UeHtEHicy 3GnQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@toradex.com header.s=selector2 header.b=mqlLTgsx; arc=pass (i=1 spf=pass spfdomain=toradex.com dkim=pass dkdomain=toradex.com dmarc=pass fromdomain=toradex.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=toradex.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g2si2722529ild.31.2021.11.01.16.55.05; Mon, 01 Nov 2021 16:55:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@toradex.com header.s=selector2 header.b=mqlLTgsx; arc=pass (i=1 spf=pass spfdomain=toradex.com dkim=pass dkdomain=toradex.com dmarc=pass fromdomain=toradex.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=toradex.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231582AbhKAXzX (ORCPT + 99 others); Mon, 1 Nov 2021 19:55:23 -0400 Received: from mail-vi1eur05on2107.outbound.protection.outlook.com ([40.107.21.107]:22217 "EHLO EUR05-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S231472AbhKAXzW (ORCPT ); Mon, 1 Nov 2021 19:55:22 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DubNOZN8UG0X7HXCp8DG7A9oVxutjj19+L6OjXcDH9N1IOmCS+1nLx+tlANrxYMINxxUFuZAlXKybiIL2DJFhlKUmKh4oLSSimeZfNnWz8BJdrlNkvNP/1Dg5RoaY/b3xmQZ0HApXqHcxW6nbFNkUv7Dkk3OAODJpMAcRf1Uz64sdOQg8AqJHK3LFY4uE/dlo2pROy3IvX6vLJfeTLCxJdTh2vfmbFyePoF1e374pM5IOJfvh9a88aOL54YiaQutttY2hlbKY21CCV0OIoolZGgCMjkoxPMU/aV11A+67UPzUsTCzQjHl8Pd1xJqmuhi5ZbzOIN6vyLsjNi4eePAAw== 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=6mRUpaakm3y2Aa+MYJgusoVRofm/0a+aL7apDejRe+A=; b=mQLiK+pAM9F3DNiX/aZU3DIM1ia3unJEeEqEu5s+8TXeZxxbuE5oev9mhSjFBOLk/b0Xr5wOh5hUUIt1bJDx3O9Y8HQVtGHhIdWxleIASalTokA1Cjj5hTxvFHOzYWZhmlGygSzRWCNYUvZ8Xf2UQzZ1oEA5eX++LwmNxUwZsta4I2pAUCwIT+TD/JHsm1+7awyCTr4/2CJlGkCIW/+qg7PEg770IWAubY67dKB/1PfX8hsPjc/Wtf/F+NczNjA5m4MghXI52AhBUb5nV4qI1IxeZ1kZ7cE66y0h7HIvv+R1eB50if63Kwk0PcwK5Y/kipsrGTlWvSB5+gmeoJpx3A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=toradex.com; dmarc=pass action=none header.from=toradex.com; dkim=pass header.d=toradex.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toradex.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6mRUpaakm3y2Aa+MYJgusoVRofm/0a+aL7apDejRe+A=; b=mqlLTgsxHzcxUBwML8Tsv7wfrNa+VmXis6RgbqR0LbQW08QaUmE5zAO2q69guc+Tuli2Db9zlP0R+JTIBvmdQl0MpUFm6vDdKkEwSgcm21mHGOpfTpZOJt2Q4zx9gMpG3FPjHtF+QGDwFjrdDadUjuqN0CvRt/1ReciGbf2ic+g= Received: from DB7PR05MB5431.eurprd05.prod.outlook.com (2603:10a6:10:55::32) by DB9PR05MB8490.eurprd05.prod.outlook.com (2603:10a6:10:29d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Mon, 1 Nov 2021 23:52:40 +0000 Received: from DB7PR05MB5431.eurprd05.prod.outlook.com ([fe80::91e8:e960:243:da70]) by DB7PR05MB5431.eurprd05.prod.outlook.com ([fe80::91e8:e960:243:da70%5]) with mapi id 15.20.4649.019; Mon, 1 Nov 2021 23:52:40 +0000 From: Marcel Ziswiler To: "tharvey@gateworks.com" , "hongxing.zhu@nxp.com" CC: "kishon@ti.com" , "vkoul@kernel.org" , "kernel@pengutronix.de" , "linux-imx@nxp.com" , "devicetree@vger.kernel.org" , "robh@kernel.org" , "l.stach@pengutronix.de" , "shawnguo@kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-phy@lists.infradead.org" , "galak@kernel.crashing.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH v4 5/8] phy: freescale: pcie: Initialize the imx8 pcie standalone phy driver Thread-Topic: [PATCH v4 5/8] phy: freescale: pcie: Initialize the imx8 pcie standalone phy driver Thread-Index: AQHXy9DceRIa/pyE4k6lv/6cPgDWoKvpoeMAgAAJAoCAAJbZgIAEGPWAgACVIQCAAG+kgA== Date: Mon, 1 Nov 2021 23:52:40 +0000 Message-ID: References: <1635406037-20900-1-git-send-email-hongxing.zhu@nxp.com> <1635406037-20900-6-git-send-email-hongxing.zhu@nxp.com> <8e182179c6c60f0b6cf8a89c1b829d8225a055d5.camel@toradex.com> In-Reply-To: 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=toradex.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1ce04122-88da-40b2-0f27-08d99d92b0bf x-ms-traffictypediagnostic: DB9PR05MB8490: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2582; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: L2U3NpjUyQTreRnhmEkQ+riM/lq8up/Go7/iaVQY3zB+0+58a1CjJ33bJKlaMG52vNbRw8wdgNHpDR0AavD4GkSxS9Wll2jgulpYGtCUh5VOWiuS/mgs3QzOFWinUkg4AfshuguiG+IrRDftn/iuJ5N/PsxcvHv2128/ZaQ3Ggj9KSL60dZ9XmyXS/EVw4OIG6aUnEtPxZSbbrJ3z7ThiTyTU+hQxmqTGOlC7TqLSQ6Oi9fFvkOhHOpOJpQPvXDnMjm0zhF2kk1H2A5+4Tzn6zbYI1MRP/piUWW8pxx3ki6ZHRstGnQAFJSainvEYuZmOxHbw+zRs9jGupl3JSuTi7RzP/v38YfbVGcKn0xd4fsrerZtf0O+D4GIfwapP3zyNTM+i60tp8VbFo8V0uA1/YJlymvC+zl2WnLGgM6EAmabFZcjR6z11K40oAqPjso8ZGjvwp+8c9r8QEgdvdcPrdRqABJfK7Te5n1RTBwdCcEi0T0MLe7A1rF3tLt3mVpATeJHIfDXT+q2peXK0R8EzyuUeMoFZhwFaManhe67BVU8sGlBmNt3XEl/Sr1rmTgGPrfgskeBiQgADDXMehFZvQAm+RTs0mDiCdb4sRv5O64M3c5icNKQm52Z43STqWEq3QsHMP1sqtkykI0svxMDdzLjEvzYXfe7EHJimLJx5F88w5fkkSmJPoebyz+5E8wNu7lGJ6KhTnypMnE0SRquuw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR05MB5431.eurprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(84040400005)(6506007)(53546011)(8676002)(186003)(36756003)(8936002)(38070700005)(4001150100001)(2906002)(38100700002)(7416002)(2616005)(26005)(83380400001)(122000001)(44832011)(5660300002)(66446008)(66476007)(66946007)(110136005)(66556008)(508600001)(4326008)(6512007)(54906003)(64756008)(71200400001)(76116006)(30864003)(91956017)(86362001)(6486002)(316002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aVI4TGc4amFIUit3YXgxMDNZU0llWUIzSFNNUDB4TURSdXVrSjRzbHpTckR5?= =?utf-8?B?SHEyVmt0TU01a2drOEdwSEtlM2cwaThlbm9xU05GbmtIWXhSS0VEMVAvYmNU?= =?utf-8?B?dExPdFdqOGJtWVJBOTZmQTVTUk1aOHdxWVp2NVN2UmVPcWR6Vnd5NFJydCsr?= =?utf-8?B?ZXJmNndlaThlT1UxMFd3NzZ3MVZKOGpRN2Y1Y3lpUjY5OHhuejVMWFRpRXEv?= =?utf-8?B?d2U0TG1KUzY3R1oyNjMrblVlSlVnUDZNOE9FRjB6dCt5YUZWU0pvdnFPQTNu?= =?utf-8?B?bTlyOGlxRkZSNkkxT3BmRXRqc2pKMXJNZ2JYdWV0K2k4UzNvUkUzM0JmY25n?= =?utf-8?B?d1lxUXh5MWZHNENoVElicWp3bnExbkQrNUYwM2ppcll1aEw1SkdCOHowWEV0?= =?utf-8?B?aTNyRUlEWkZJNVZzT1IzUEx3bUZSNnpJMzVOWXRjeVBYelI1dThzZXJZakFY?= =?utf-8?B?aGZXTi8rVTlkRFNsYkpWNndaaTJkRkQ4eDJqVXUrWlFWV3Zla1d1aFhRUTRS?= =?utf-8?B?aCtKWThobnUvWUVYN3VSU000N2J0Und0NWhTc0ZRR3N5TXhKUWdxL2ZrcUJB?= =?utf-8?B?ejdjYXRYb0VuU2puMmRVemQraVQ1b3hOQ05XVWp4NW5QaFlVS2YwM1VvRnE4?= =?utf-8?B?QXFEeWxxM0I2RmtyWnJsR1BwS2cyYlJJS2JNcEF6SVhUUUY3aFVQNXVsMzhl?= =?utf-8?B?a1labVgrRUovcXc3b0x1bmhUdzRlT0dvWDQyU05QbWdWNDRUbUZ0YzljL1cx?= =?utf-8?B?eENUSkVHc3VGVWZONU1GSFBBWmFGamQ0bnNBR3lBM3pHVmlHMzZtRmtEUlZZ?= =?utf-8?B?eDk4YW5kT21ZUXN3cTFNc0tFQURFeVplV0htRnd6Z3hHVVdOMlExZEhxajBn?= =?utf-8?B?dXdEdVlmdWo5UWlla3dJZDdrR2ovY0hoQU1RVVhCb1dKR3hkamtDZlI0V3FY?= =?utf-8?B?NlBNb1BDRGlwejZQVSt4TWlMRkVVRGFodUNlMDJ1TFNBVVZVRGRXNFdFcnNs?= =?utf-8?B?WlAvcXFOaUUwMU5kb0VYTVlZNU01UDV3UmxRRE9Xbm52L0FIL3hQTlZZZENP?= =?utf-8?B?VVRYVFAwNUhXRjJucWZXblF0dllWd1VOTFduNkZJV1VpMDhDczRsZzQwMEph?= =?utf-8?B?WkZUWGlYSEY2anBkZFdFdHNWbm5qMVRLSjVYT2Z4Vm9CS2hqUlVtUGozMElr?= =?utf-8?B?bU5RU2duTC9UZlVaZXJKZGtmVWtDWjAzd2RRRGZ6SnRnSExqQUNkaUFKYkRW?= =?utf-8?B?NXlPd1Ria0xacWdvYVNqSTJXUjQ1MFVtL2x0SzJDeGNTZUJIQVJSUzA4Zm0z?= =?utf-8?B?SVdET2dDTVVjRGV5eEJQbnRJMlVaNjBxNHdxamZlcUV5UHRYcy9MZk1QelFq?= =?utf-8?B?aVF4WnFXa3lwQ3ZTUFFJdDA3ZVRCT2dPbStZdWFTQ1BnWk5XUzBEVEVsSERm?= =?utf-8?B?TWkxLzBkcE9aekhCNG01KzNaYkw3V2pzdkp4WCtpS01YMUVyOWhoK2RnbUIw?= =?utf-8?B?dVpWMnFudlFMZ3d1cndrMTFsMTlwZ2FIL2kwUElFT1QreTNCY3lwZnM4T0N1?= =?utf-8?B?cks3d2JaSmJNWllvMlNIN1pDMloxdVZiV1JnZTFicDFGdHZFb2E1emZzUUM3?= =?utf-8?B?TkxQdFRLWi92eGhVOVhRSGJSYkEvcW1OZXBmbEhBTnFjMmJCb2ZQdktNamhZ?= =?utf-8?B?UDJKODlNVlhtSmlSR3RkbUg2YTFSOFBaeUFTT3QvRXA1bjFPWms3cm1QYjli?= =?utf-8?B?T2h2RzNKODNHN1BMcFdmRVZFRG9EbkNEcG5GL3c5RHVWaUVDdmhDQ2pTOWc5?= =?utf-8?B?dFpZb0cvSmI1N3ZDTGdyMmNoRWpJNVVod2hMcVpha2lBSFQ0a1pDV05nSnNI?= =?utf-8?B?TG9KcWZXb3RsekdYWEFnVWlVNDBEbHV1VnNkbkVEM2RyYnEwTnpCZDliWUdB?= =?utf-8?B?TG9Dd3NTRGFNNjZUTVlsUkxIR3QzQmhVUlNWRzZmM2Fwbmo2YnNHTlUwVWhu?= =?utf-8?B?eW45L2VMcjBqQy9nME9aZTQyZ2p1YTBsQWxWVnVJbW15ajhhWnRQelloMmpH?= =?utf-8?B?TTlDUVdXR29rK0hEK09xN0R1QUU4ZGNXeVVndmpMTzJMSlZSZU5GLzl1aWwy?= =?utf-8?B?dFFwTzRRTDFsV05haXpBdS9kQ2paT1BMcmE0dGJtdWRiNmRpZzkvU0QwbERQ?= =?utf-8?B?aGcwK21INVYvTjk2WHNmdmx2dVdmWHF0c0tuQjJRZDNoZmJrZHFubEN1ci9W?= =?utf-8?Q?9pMnq3qEM8bGJb3E1vwzgsMtsLrd89clxknst12DKg=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: toradex.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR05MB5431.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1ce04122-88da-40b2-0f27-08d99d92b0bf X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2021 23:52:40.3564 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d9995866-0d9b-4251-8315-093f062abab4 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: tdVn9zCyq3dZ0Yz/9m0Bi0gkc4yfTaXQVfaGDxmxMwVz1AiaW/+CFj7r+XaWOFTHG6tIzbPdPd20ZaDk9wPWAnjEO/Zf9KqXQL1WjqSHf1A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR05MB8490 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgVGltIGFuZCBSaWNoYXJkDQoNCk9uIE1vbiwgMjAyMS0xMS0wMSBhdCAxMDoxMyAtMDcwMCwg VGltIEhhcnZleSB3cm90ZToNCj4gT24gTW9uLCBOb3YgMSwgMjAyMSBhdCAxOjE5IEFNIFJpY2hh cmQgWmh1IDxob25neGluZy56aHVAbnhwLmNvbT4gd3JvdGU6DQo+ID4gDQo+ID4gPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogVGltIEhhcnZleSA8dGhhcnZleUBnYXRl d29ya3MuY29tPg0KPiA+ID4gU2VudDogU2F0dXJkYXksIE9jdG9iZXIgMzAsIDIwMjEgMTo0NSBB TQ0KPiA+ID4gVG86IFJpY2hhcmQgWmh1IDxob25neGluZy56aHVAbnhwLmNvbT47IE1hcmNlbCBa aXN3aWxlcg0KPiA+ID4gPG1hcmNlbC56aXN3aWxlckB0b3JhZGV4LmNvbT4NCj4gPiA+IENjOiBr aXNob25AdGkuY29tOyB2a291bEBrZXJuZWwub3JnOyByb2JoQGtlcm5lbC5vcmc7DQo+ID4gPiBs LnN0YWNoQHBlbmd1dHJvbml4LmRlOyBzaGF3bmd1b0BrZXJuZWwub3JnOw0KPiA+ID4gZ2FsYWtA a2VybmVsLmNyYXNoaW5nLm9yZzsgbGludXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmc7DQo+ID4g PiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7IGtlcm5lbEBwZW5ndXRyb25p eC5kZTsNCj4gPiA+IGRldmljZXRyZWVAdmdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdl ci5rZXJuZWwub3JnOyBkbC1saW51eC1pbXgNCj4gPiA+IDxsaW51eC1pbXhAbnhwLmNvbT4NCj4g PiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgNS84XSBwaHk6IGZyZWVzY2FsZTogcGNpZTogSW5p dGlhbGl6ZSB0aGUgaW14OCBwY2llDQo+ID4gPiBzdGFuZGFsb25lIHBoeSBkcml2ZXINCj4gPiA+ IA0KPiA+ID4gT24gRnJpLCBPY3QgMjksIDIwMjEgYXQgMTo0NSBBTSBSaWNoYXJkIFpodSA8aG9u Z3hpbmcuemh1QG54cC5jb20+DQo+ID4gPiB3cm90ZToNCj4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogTWFyY2Vs IFppc3dpbGVyIDxtYXJjZWwuemlzd2lsZXJAdG9yYWRleC5jb20+DQo+ID4gPiA+ID4gU2VudDog RnJpZGF5LCBPY3RvYmVyIDI5LCAyMDIxIDQ6MTMgUE0NCj4gPiA+ID4gPiBUbzoga2lzaG9uQHRp LmNvbTsgdmtvdWxAa2VybmVsLm9yZzsgcm9iaEBrZXJuZWwub3JnOw0KPiA+ID4gPiA+IGwuc3Rh Y2hAcGVuZ3V0cm9uaXguZGU7IHNoYXduZ3VvQGtlcm5lbC5vcmc7DQo+ID4gPiB0aGFydmV5QGdh dGV3b3Jrcy5jb207DQo+ID4gPiA+ID4gZ2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZzsgUmljaGFy ZCBaaHUgPGhvbmd4aW5nLnpodUBueHAuY29tPg0KPiA+ID4gPiA+IENjOiBsaW51eC1waHlAbGlz dHMuaW5mcmFkZWFkLm9yZzsNCj4gPiA+ID4gPiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmc7DQo+ID4gPiA+ID4ga2VybmVsQHBlbmd1dHJvbml4LmRlOyBkZXZpY2V0cmVlQHZn ZXIua2VybmVsLm9yZzsNCj4gPiA+ID4gPiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBk bC1saW51eC1pbXggPGxpbnV4LWlteEBueHAuY29tPg0KPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBb UEFUQ0ggdjQgNS84XSBwaHk6IGZyZWVzY2FsZTogcGNpZTogSW5pdGlhbGl6ZSB0aGUNCj4gPiA+ ID4gPiBpbXg4IHBjaWUgc3RhbmRhbG9uZSBwaHkgZHJpdmVyDQo+ID4gPiA+ID4gDQo+ID4gPiA+ ID4gT24gVGh1LCAyMDIxLTEwLTI4IGF0IDE1OjI3ICswODAwLCBSaWNoYXJkIFpodSB3cm90ZToN Cj4gPiA+ID4gPiA+IEFkZCB0aGUgc3RhbmRhbG9uZSBpLk1YOCBQQ0llIFBIWSBkcml2ZXIuDQo+ ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgWmh1IDxob25n eGluZy56aHVAbnhwLmNvbT4NCj4gPiA+ID4gPiA+IFRlc3RlZC1ieTogTWFyY2VsIFppc3dpbGVy IDxtYXJjZWwuemlzd2lsZXJAdG9yYWRleC5jb20+DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gVW5m b3J0dW5hdGVseSwgdGhpcyB2ZXJzaW9uIG5vIGxvbmdlciB3b3JrcyBmb3Igb3VyDQo+ID4gPiA+ ID4gSU1YOF9QQ0lFX1JFRkNMS19QQURfT1VUUFVUIHVzZS1jYXNlLiBGdXJ0aGVyIGNvbW1lbnRz IGluLQ0KPiA+ID4gbGluZWQNCj4gPiA+ID4gPiBiZWxvdy4NCj4gPiA+ID4gPiANCj4gPiA+ID4g W1JpY2hhcmQgWmh1XSBTb3JyeSB0byBoZWFyIGFib3V0IHRoYXQuIFRoZW4sIGl0IHNlZW1zIHRo YXQgdGhpcyBiaXQNCj4gPiA+ID4gc2hvdWxkIGJlwqAgc2V0IGFueXdheS4NCj4gPiA+ID4gSXQn cyBoYXJkIHRvIHVuZGVyc3RhbmQgdGhpcyBiaXQgcmVmZXIgdG8gdGhlIFJNIGRvY3VtZW50LiBT aWdoIOKYuS4NCj4gPiA+ID4gV291bGQgc2V0IHRoZSBBVVhfRU4gYml0IGxhdGVyLg0KPiA+ID4g PiANCj4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4gwqBkcml2ZXJzL3BoeS9mcmVlc2NhbGUv S2NvbmZpZ8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDkgKw0KPiA+ID4gPiA+ID4g wqBkcml2ZXJzL3BoeS9mcmVlc2NhbGUvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg fMKgwqAgMSArDQo+ID4gPiA+ID4gPiDCoGRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWlt eDhtLXBjaWUuYyB8IDIzNA0KPiA+ID4gPiA+ID4gKysrKysrKysrKysrKysrKysrKysrDQo+ID4g PiA+ID4gPiDCoDMgZmlsZXMgY2hhbmdlZCwgMjQ0IGluc2VydGlvbnMoKynCoCBjcmVhdGUgbW9k ZSAxMDA2NDQNCj4gPiA+ID4gPiA+IGRyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHktZnNsLWlteDht LXBjaWUuYw0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9w aHkvZnJlZXNjYWxlL0tjb25maWcNCj4gPiA+ID4gPiA+IGIvZHJpdmVycy9waHkvZnJlZXNjYWxl L0tjb25maWcgaW5kZXggMzIwNjMwZmZlM2NkLi5kZTllZTcwMjBmNzYNCj4gPiA+ID4gPiA+IDEw MDY0NA0KPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9waHkvZnJlZXNjYWxlL0tjb25maWcNCj4g PiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9LY29uZmlnDQo+ID4gPiA+ID4g PiBAQCAtMTQsMyArMTQsMTIgQEAgY29uZmlnIFBIWV9NSVhFTF9NSVBJX0RQSFkNCj4gPiA+ID4g PiA+IMKgwqDCoMKgwqDCoMKgIGhlbHANCj4gPiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoCBF bmFibGUgdGhpcyB0byBhZGQgc3VwcG9ydCBmb3IgdGhlIE1peGVsIERTSSBQSFkgYXMNCj4gPiA+ ID4gPiBmb3VuZA0KPiA+ID4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgIG9uIE5YUCdzIGkuTVg4 IGZhbWlseSBvZiBTT0NzLg0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK2NvbmZpZyBQSFlf RlNMX0lNWDhNX1BDSUUNCj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqAgdHJpc3RhdGUgIkZyZWVz Y2FsZSBpLk1YOCBQQ0lFIFBIWSINCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBBYm92ZSBkZXNjcmlw dGlvbiBpcyBtaXNzaW5nIHRoZSBNIGFzIGluIGkuTVggOE0uDQo+ID4gPiA+IFtSaWNoYXJkIFpo dV0gT2theSwgd291bGQgYmUgYWRkZWQgbGF0ZXIuDQo+ID4gPiA+IFRoYW5rcy4NCj4gPiA+ID4g DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiArwqDCoMKgwqDCoMKgIGRlcGVuZHMgb24gT0YgJiYg SEFTX0lPTUVNDQo+ID4gPiA+ID4gPiArwqDCoMKgwqDCoMKgIHNlbGVjdCBHRU5FUklDX1BIWQ0K PiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoCBkZWZhdWx0IEFSQ0hfTVhDICYmIEFSTTY0DQo+ID4g PiA+ID4gPiArwqDCoMKgwqDCoMKgIGhlbHANCj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKg IEVuYWJsZSB0aGlzIHRvIGFkZCBzdXBwb3J0IGZvciB0aGUgUENJRSBQSFkgYXMgZm91bmQgb24N Cj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgIGkuTVg4TSBmYW1pbHkgb2YgU09Dcy4NCj4g PiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvTWFrZWZpbGUNCj4g PiA+ID4gPiA+IGIvZHJpdmVycy9waHkvZnJlZXNjYWxlL01ha2VmaWxlIGluZGV4DQo+ID4gPiAx ZDAyZTM4NjliNDUuLjU1ZDA3Yzc0MmFiMA0KPiA+ID4gPiA+ID4gMTAwNjQ0DQo+ID4gPiA+ID4g PiAtLS0gYS9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvTWFrZWZpbGUNCj4gPiA+ID4gPiA+ICsrKyBi L2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9NYWtlZmlsZQ0KPiA+ID4gPiA+ID4gQEAgLTEsMyArMSw0 IEBADQo+ID4gPiA+ID4gPiDCoCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25s eQ0KPiA+ID4gPiA+ID4gwqBvYmotJChDT05GSUdfUEhZX0ZTTF9JTVg4TVFfVVNCKcKgwqDCoMKg wqDCoCArPQ0KPiA+ID4gPiA+IHBoeS1mc2wtaW14OG1xLXVzYi5vDQo+ID4gPiA+ID4gPiDCoG9i ai0kKENPTkZJR19QSFlfTUlYRUxfTUlQSV9EUEhZKcKgwqDCoMKgwqAgKz0NCj4gPiA+ID4gPiBw aHktZnNsLWlteDgtbWlwaS1kcGh5Lm8NCj4gPiA+ID4gPiA+ICtvYmotJChDT05GSUdfUEhZX0ZT TF9JTVg4TV9QQ0lFKcKgwqDCoMKgwqDCoCArPQ0KPiA+ID4gPiA+IHBoeS1mc2wtaW14OG0tcGNp ZS5vDQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1m c2wtaW14OG0tcGNpZS5jDQo+ID4gPiA+ID4gPiBiL2RyaXZlcnMvcGh5L2ZyZWVzY2FsZS9waHkt ZnNsLWlteDhtLXBjaWUuYw0KPiA+ID4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ ID4gPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uNGI0NDAyZWFkZGNjDQo+ID4gPiA+ID4gPiAtLS0g L2Rldi9udWxsDQo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZz bC1pbXg4bS1wY2llLmMNCj4gPiA+ID4gPiA+IEBAIC0wLDAgKzEsMjM0IEBADQo+ID4gPiA+ID4g PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArDQo+ID4gPiA+ID4gPiArLyoN Cj4gPiA+ID4gPiA+ICsgKiBDb3B5cmlnaHQgMjAyMSBOWFANCj4gPiA+ID4gPiA+ICsgKi8NCj4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+DQo+ID4gPiA+ ID4gPiArI2luY2x1ZGUgPGxpbnV4L2lvLmg+DQo+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4 L2lvcG9sbC5oPg0KPiA+ID4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPg0KPiA+ID4g PiA+ID4gKyNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+DQo+ID4gPiA+ID4gPiArI2luY2x1 ZGUgPGxpbnV4L21mZC9zeXNjb24vaW14Ny1pb211eGMtZ3ByLmg+DQo+ID4gPiA+ID4gPiArI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiA+ID4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9waHkv cGh5Lmg+DQo+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPiAj aW5jbHVkZSA8bGludXgvcmVnbWFwLmg+DQo+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3Jl c2V0Lmg+ICNpbmNsdWRlDQo+ID4gPiA+ID4gPiArPGR0LWJpbmRpbmdzL3BoeS9waHktaW14OC1w Y2llLmg+DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArI2RlZmluZSBJTVg4TU1fUENJRV9Q SFlfQ01OX1JFRzA2McKgwqDCoMKgIDB4MTg0ICNkZWZpbmUNCj4gPiA+ID4gPiA+ICtBTkFfUExM X0NMS19PVVRfVE9fRVhUX0lPX0VOwqAgQklUKDApICNkZWZpbmUNCj4gPiA+ID4gPiA+ICtJTVg4 TU1fUENJRV9QSFlfQ01OX1JFRzA2MsKgwqDCoMKgIDB4MTg4ICNkZWZpbmUNCj4gPiA+ID4gPiA+ ICtBTkFfUExMX0NMS19PVVRfVE9fRVhUX0lPX1NFTCBCSVQoMykgI2RlZmluZQ0KPiA+ID4gPiA+ ID4gK0lNWDhNTV9QQ0lFX1BIWV9DTU5fUkVHMDYzwqDCoMKgwqAgMHgxOEMgI2RlZmluZQ0KPiA+ ID4gPiA+ID4gK0FVWF9QTExfUkVGQ0xLX1NFTF9TWVNfUExMwqDCoMKgIEdFTk1BU0soNywgNikg I2RlZmluZQ0KPiA+ID4gPiA+ID4gK0lNWDhNTV9QQ0lFX1BIWV9DTU5fUkVHMDY0wqDCoMKgwqAg MHgxOTANCj4gPiA+ID4gPiAjZGVmaW5lwqAgQU5BX0FVWF9SWF9UWF9TRUxfVFgNCj4gPiA+ID4g PiA+ICtCSVQoNykNCj4gPiA+ID4gPiAjZGVmaW5lwqAgQU5BX0FVWF9SWF9URVJNX0dORF9FTsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVQoMykNCj4gPiA+ID4gPiAjZGVmaW5lDQo+ ID4gPiA+ID4gPiArQU5BX0FVWF9UWF9URVJNwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBC SVQoMikgI2RlZmluZQ0KPiA+ID4gPiA+ID4gK0lNWDhNTV9QQ0lFX1BIWV9DTU5fUkVHMDY1wqDC oMKgwqAgMHgxOTQNCj4gPiA+ID4gPiAjZGVmaW5lwqAgQU5BX0FVWF9SWF9URVJNDQo+ID4gPiA+ ID4gPiArKEJJVCg3KSB8IEJJVCg0KSkNCj4gPiA+ID4gPiAjZGVmaW5lwqAgQU5BX0FVWF9UWF9M VkwNCj4gPiA+ID4gPiA+ICtHRU5NQVNLKDMsIDApICNkZWZpbmUNCj4gPiA+ID4gPiBJTVg4TU1f UENJRV9QSFlfQ01OX1JFRzc1wqDCoMKgwqDCoCAweDFENCAjZGVmaW5lDQo+ID4gPiA+ID4gPiAr UENJRV9QSFlfQ01OX1JFRzc1X1BMTF9ET05FwqDCoCAweDMgI2RlZmluZQ0KPiA+ID4gPiA+IFBD SUVfUEhZX1RSU1ZfUkVHNQ0KPiA+ID4gPiA+ID4gKzB4NDE0ICNkZWZpbmXCoCBQQ0lFX1BIWV9U UlNWX1JFRzVfR0VOMV9ERUVNUCAweDJEDQo+ID4gPiAjZGVmaW5lDQo+ID4gPiA+ID4gPiArUENJ RV9QSFlfVFJTVl9SRUc2wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4NDE4ICNkZWZpbmUNCj4g PiA+ID4gPiA+ICtQQ0lFX1BIWV9UUlNWX1JFRzZfR0VOMl9ERUVNUCAweEYNCj4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ICsjZGVmaW5lIElNWDhNTV9HUFJfUENJRV9SRUZfQ0xLX1NFTMKgwqDC oCBHRU5NQVNLKDI1LCAyNCkNCj4gPiA+ID4gPiAjZGVmaW5lDQo+ID4gPiA+ID4gPiArSU1YOE1N X0dQUl9QQ0lFX1JFRl9DTEtfUExMDQo+ID4gPiA+ID4gPiArRklFTERfUFJFUChJTVg4TU1fR1BS X1BDSUVfUkVGX0NMS19TRUwsIDB4MykgI2RlZmluZQ0KPiA+ID4gPiA+ID4gK0lNWDhNTV9HUFJf UENJRV9SRUZfQ0xLX0VYVA0KPiA+ID4gPiA+ID4gK0ZJRUxEX1BSRVAoSU1YOE1NX0dQUl9QQ0lF X1JFRl9DTEtfU0VMLCAweDIpICNkZWZpbmUNCj4gPiA+ID4gPiA+ICtJTVg4TU1fR1BSX1BDSUVf QVVYX0VOwqDCoMKgwqDCoMKgwqDCoCBCSVQoMTkpICNkZWZpbmUNCj4gPiA+ID4gPiA+ICtJTVg4 TU1fR1BSX1BDSUVfQ01OX1JTVMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVQoMTgp DQo+ID4gPiA+ID4gI2RlZmluZQ0KPiA+ID4gPiA+ID4gK0lNWDhNTV9HUFJfUENJRV9QT1dFUl9P RkbCoMKgwqDCoMKgIEJJVCgxNykgI2RlZmluZQ0KPiA+ID4gPiA+IElNWDhNTV9HUFJfUENJRV9T U0NfRU4NCj4gPiA+ID4gPiA+ICtCSVQoMTYpICNkZWZpbmUNCj4gPiA+ID4gPiBJTVg4TU1fR1BS X1BDSUVfQVVYX0VOX09WRVJSSURFwqDCoMKgwqDCoMKgwqAgQklUKDkpDQo+ID4gPiA+ID4gPiAr DQo+ID4gPiA+ID4gPiArc3RydWN0IGlteDhfcGNpZV9waHkgew0KPiA+ID4gPiA+ID4gK8KgwqDC oMKgwqDCoCB2b2lkIF9faW9tZW3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgICpiYXNlOw0KPiA+ID4g PiA+ID4gK8KgwqDCoMKgwqDCoCBzdHJ1Y3QgY2xrwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg KmNsazsNCj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqAgc3RydWN0IHBoecKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICpwaHk7DQo+ID4gPiA+ID4gPiArwqDCoMKgwqDCoMKgIHN0cnVjdCByZWdt YXDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqaW9tdXhjX2dwcjsNCj4gPiA+ID4gPiA+ICvCoMKgwqDC oMKgwqAgc3RydWN0IHJlc2V0X2NvbnRyb2zCoMKgwqAgKnJlc2V0Ow0KPiA+ID4gPiA+ID4gK8Kg wqDCoMKgwqDCoCB1MzLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJl ZmNsa19wYWRfbW9kZTsNCj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqAgdTMywqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0eF9kZWVtcGhfZ2VuMTsNCj4gPiA+ID4gPiA+ ICvCoMKgwqDCoMKgwqAgdTMywqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB0eF9kZWVtcGhfZ2VuMjsNCj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqAgYm9vbMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNsa3JlcV91bnVzZWQ7IH07DQo+ID4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGljIGludCBpbXg4X3BjaWVfcGh5X2luaXQoc3RydWN0 IHBoeSAqcGh5KSB7DQo+ID4gPiA+ID4gPiArwqDCoMKgwqDCoMKgIGludCByZXQ7DQo+ID4gPiA+ ID4gPiArwqDCoMKgwqDCoMKgIHUzMiB2YWwsIHBhZF9tb2RlOw0KPiA+ID4gPiA+ID4gK8KgwqDC oMKgwqDCoCBzdHJ1Y3QgaW14OF9wY2llX3BoeSAqaW14OF9waHkgPSBwaHlfZ2V0X2RydmRhdGEo cGh5KTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqAgcmVzZXRfY29u dHJvbF9hc3NlcnQoaW14OF9waHktPnJlc2V0KTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ ICvCoMKgwqDCoMKgwqAgcGFkX21vZGUgPSBpbXg4X3BoeS0+cmVmY2xrX3BhZF9tb2RlOw0KPiA+ ID4gPiA+ID4gK8KgwqDCoMKgwqDCoCAvKiBTZXQgQVVYX0VOX09WRVJSSURFIDEnYjAsIHdoZW4g dGhlIENMS1JFUSMgaXNuJ3QNCj4gPiA+ID4gPiBob29rZWQgKi8NCj4gPiA+ID4gPiA+ICvCoMKg wqDCoMKgwqAgcmVnbWFwX3VwZGF0ZV9iaXRzKGlteDhfcGh5LT5pb211eGNfZ3ByLA0KPiA+ID4g PiA+IElPTVVYQ19HUFIxNCwNCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBJTVg4TU1fR1BSX1BDSUVfQVVY X0VOXw0KPiA+ID4gPiA+IE9WRVJSSURFLA0KPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlteDhfcGh5LT5jbGtyZXFfdW51c2Vk ID8NCj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAwIDoNCj4gPiA+ID4gPiBJTVg4TU1fR1BSX1BDSUVfQVVYX0VOX09WRVJSSURF KTsNCj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqAgcmVnbWFwX3VwZGF0ZV9iaXRzKGlteDhfcGh5 LT5pb211eGNfZ3ByLA0KPiA+ID4gPiA+IElPTVVYQ19HUFIxNCwNCj4gPiA+ID4gPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBJTVg4TU1fR1BS X1BDSUVfQVVYX0VOLA0KPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBhZF9tb2RlID09DQo+ID4gPiA+ID4gSU1YOF9QQ0lFX1JF RkNMS19QQURfSU5QVVQgPw0KPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIElNWDhNTV9HUFJfUENJRV9BVVhfRU4gOg0KPiA+ID4g PiA+IDApOw0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IFYzIGhhZCBJTVg4TU1fR1BSX1BDSUVfQVVY X0VOIGFsd2F5cyBlbmFibGVkLiBUdXJucyBvdXQgVjQNCj4gPiA+IHN0b3BwZWQNCj4gPiA+ID4g PiB3b3JraW5nIGZvciBvdXIgb3V0cHV0IHVzZS1jYXNlIGFzIGl0IG9ubHkgZW5hYmxlcyBpdCBm b3IgdGhlIGlucHV0DQo+ID4gPiA+ID4gdXNlLWNhc2UuIElmIEkgZW5hYmxlIHRoaXMgb25lIGFs d2F5cyBpdCBzdGFydHMgd29ya2luZyBhZ2Fpbi4NCj4gPiA+ID4gW1JpY2hhcmQgWmh1XSBTZWUg bXkgY29tbWVudCBhYm92ZS4NCj4gPiA+ID4gU29ycnkgdG8gYnJpbmcgdGhlIHJlZ3Jlc3Npb24g b24geW91ciBib2FyZC4NCj4gPiA+ID4gDQo+ID4gPiANCj4gPiA+IE1hcmNlbCwNCj4gPiA+IA0K PiA+ID4gWW91ciBib2FyZCBkb2VzIG5vdCB1c2UgYW4gZXh0ZXJuYWwgY2xrLCBidXQgZG9lcyBp dCBob29rIHVwIENMS1JFUSMNCj4gPiA+IGZyb20gdGhlIHNvY2tldCB0byBlaXRoZXIgSTJDNF9T Q0wgb3IgVUFSVDRfUlhEIGFuZCBwaW4gbXV4ZWQgYXMNCj4gPiA+IHN1Y2g/DQo+ID4gPiANCj4g PiA+IEZvciBteSBib2FyZCB0aGF0IHVzZXMgYW4gZXh0ZXJuYWwgY2xrIGFuZCBkb2VzIG5vdCBj b25uZWN0IENMS1JFUSMgdG8NCj4gPiA+IHRoZSBJTVg4TU0gSSBuZWVkIHRvIGRpc2FibGUgdGhh dCBiaXQuIEFzIFJpY2hhcmQgc2F5cyB3ZSBoYXZlIGludmFsaWQNCj4gPiA+IGRvY3VtZW50YXRp b24gZm9yIHRoZXNlIGJpdHMgdW5mb3J0dW5hdGVseSB3aGljaCBpcyBub3QgaGVscGluZy4NCj4g PiA+IA0KPiA+ID4gUmljaGFyZCwgd2hlbiB3ZSBkbyBmaWd1cmUgb3V0IHByb3BlciBkb2N1bWVu dGF0aW9uIGZvciB0aGVzZSBiaXRzIEkNCj4gPiA+IHN1Z2dlc3QgeW91IGFsc28gYWRkIGEgY29t bWVudCBibG9jayByaWdodCBhYm92ZSB0aGVpciAjZGVmaW5lcyBpbiB0aGUNCj4gPiA+IHBoeSBk cml2ZXIgd2l0aCB0aGUgY29ycmVjdCBkb2N1bWVudGF0aW9uIHRvIGF2b2lkIGZ1dHVyZSBjb25m dXNpb24uDQo+ID4gPiBOWFAgaGFzIGhhZCBzbyBtYW55IG1pc3Rha2VzIGluIHRoZSB2YXJpb3Vz IElNWDhNIFJNJ3MgYW5kIEkgZmVhciB0aGV5DQo+ID4gPiB3aWxsIG5ldmVyIGdldCBmaXhlZC4N Cj4gPiBbUmljaGFyZCBaaHVdIEhpIFRpbToNCj4gPiBJIHRvb2sgbG9vayBhdCB0aGUgdmFsaWRh dGlvbiBjb2RlcywgYW5kIGZvdW5kIHRoYXQgdGhlIEFVWF9FTiBpcyBhbHdheXMNCj4gPiDCoHNl dCB0byBiZSAxYicxLiBXaGF0ZXZlciB0aGUgcmVmZXJlbmNlIGNsb2NrIG1vZGUgaXMgc2VsZWN0 ZWQuDQo+ID4gSSdtIHNlbmRpbmcgYSBxdWVyeSBlbWFpbCB0byBkZXNpZ24gdGVhbSwgYnV0IEkn bSBub3Qgc3VyZSBJIGNhbiBnZXQgcmVzcG9uc2UNCj4gPiBpbiB0aW1lLg0KPiA+IENhbiB5b3Ug aGVscCB0byB0YWtlIGEgZG91YmxlIHRlc3RzIGF0IHlvdXIgYm9hcmQgd2hlbiBBVVhfRU4oYml0 MTkgb2YgR1BSMTQpDQo+ID4gaXMgc2V0IHRvIGJlIDFiJzEgZmlyc3RseT8NCj4gPiBUaGFua3Mg aW4gYWR2YW5jZWQuDQo+ID4gDQo+IA0KPiBSaWNoYXJkIGFuZCBNYXJjZWwsDQo+IA0KPiBJIGFw b2xvZ2l6ZSwgbXkgbWlzdGFrZSBJIHdhcyByZWZlcnJpbmcgdG8gR1BSMTQgYml0IDkgYW5kIG5v dCBiaXQxOQ0KPiBpbiBteSB0ZXN0aW5nIGFib3ZlLg0KPiANCj4gSSB0ZXN0ZWQgbGVhdmluZyBi aXQgOSBzZXQgYW5kIHRoaXMgc3RpbGwgd29ya3Mgb24gbXkgYm9hcmRzIHdpdGggZXh0DQo+IGNs ayBhbmQgbm8gQ0xLUkVRIyBhcyB3ZWxsIGFzIGlteDhtbS1ldmsgd2l0aCBleHQgY2xrIGFuZCBD TEtSRVEjLg0KPiANCj4gU28gdGhlIGNoYW5nZSBvbiB0b3Agb2YgeW91ciB2NCB3b3VsZCBiZToN Cj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1pbXg4bS1w Y2llLmMNCj4gYi9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1pbXg4bS1wY2llLmMNCj4g aW5kZXggNGI0NDAyZWFkZGNjLi4wMDNmNTc1YjM2ZjAgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMv cGh5L2ZyZWVzY2FsZS9waHktZnNsLWlteDhtLXBjaWUuYw0KPiArKysgYi9kcml2ZXJzL3BoeS9m cmVlc2NhbGUvcGh5LWZzbC1pbXg4bS1wY2llLmMNCj4gQEAgLTczLDggKzczLDcgQEAgc3RhdGlj IGludCBpbXg4X3BjaWVfcGh5X2luaXQoc3RydWN0IHBoeSAqcGh5KQ0KPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDAgOiBJTVg4TU1fR1BSX1BD SUVfQVVYX0VOX09WRVJSSURFKTsNCj4gwqDCoMKgwqDCoMKgwqAgcmVnbWFwX3VwZGF0ZV9iaXRz KGlteDhfcGh5LT5pb211eGNfZ3ByLCBJT01VWENfR1BSMTQsDQo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSU1YOE1NX0dQUl9QQ0lFX0FVWF9F TiwNCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHBhZF9tb2RlID09IElNWDhfUENJRV9SRUZDTEtfUEFEX0lOUFVUID8NCj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIElNWDhNTV9HUFJfUENJRV9B VVhfRU4gOiAwKTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIElNWDhNTV9HUFJfUENJRV9BVVhfRU4pOw0KPiDCoMKgwqDCoMKgwqDCoCByZWdt YXBfdXBkYXRlX2JpdHMoaW14OF9waHktPmlvbXV4Y19ncHIsIElPTVVYQ19HUFIxNCwNCj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBJTVg4TU1f R1BSX1BDSUVfUE9XRVJfT0ZGLCAwKTsNCj4gwqDCoMKgwqDCoMKgwqAgcmVnbWFwX3VwZGF0ZV9i aXRzKGlteDhfcGh5LT5pb211eGNfZ3ByLCBJT01VWENfR1BSMTQsDQo+IA0KPiBNYXJjZWwsIGRv ZXMgdGhpcyBsb29rIHJpZ2h0IGZvciB5b3VyIGJvYXJkPw0KDQpZZXMsIHRoYXQgaXMgZXhhY3Rs eSBob3cgSSBydW4gaXQgbm93LiBUaGFua3MhDQoNCj4gQmVzdCByZWdhcmRzLA0KPiANCj4gVGlt DQoNCkNoZWVycw0KDQpNYXJjZWwNCg==