Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp1077592pxb; Wed, 27 Oct 2021 18:56:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyZJ8oRMuXEEs+Ll7lUsXNdetNGa9fzufvunRLwyapm0uS+6H+Xmo1CEevVmFjyvfHW4+gq X-Received: by 2002:a50:f087:: with SMTP id v7mr2053020edl.126.1635386176581; Wed, 27 Oct 2021 18:56:16 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1635386176; cv=pass; d=google.com; s=arc-20160816; b=upT6gQ+2KXaD5aEejN0Aldy8MOiOKPvWnXN72vu655+cDuMTnqpk8mgx9oABdTctLJ RWglFSK95Ev2hS+aCD0guqPQiGNI86l5yVHncHdShDlJ3wLnStahA/kMvi57kbajjy2b iY3PygqUXSWlwY0SGgfAaP7XiSljQfTZ7BZBTOkJD0ffjB0/GU0DKHvlLynauElloczO 06MkloVZ6r6k9xOJfWiZx18gaIAQZHyw9brMITHaM0rf0VVrasHS039Oi1secWpw/Rxs ageODrEYiRZGU7nX/ayqcCcqcw2of4gbto+WZw+Z6cQz8vKMHM1gfHHDJexFmvAX+CMc Feug== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=2Z6lQcucqj3OCvWzwzvrgBOvWcdRBxrK2CTX/fmMaRs=; b=M9XcRnlDmeXRum+xhIntP0zCQHBvEViO/trWcUtk30EjWDMo8CzntcnQbSIQHEOtzb 5vimNrrLg+aCXkmS4pWCuLq9M+1DO8YaoFgk3fSEvj/BJQg8cDO5P7MaeuEEvm+eRDs2 2uvQmVyCFWRfzajh+VDXJeiZnDhePIFipWSpF0kcU/CUbFwE/wD/hKD0Dz+nw4r9VeBv orwUdhgESQDIBlqx9DgGk+j+HBlUyyvoKNagAQlBro5nbeg4AubMYHMPdrxs23aiIPY6 ZsYEUuNJjYEzxrTu7KZ+1LHBmdPhx04NPR/Am1tEf6hiheKD1w+CNqEXcyvgeLJN+jf2 xumA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=lPBII2Ey; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.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=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gs43si2593346ejc.209.2021.10.27.18.55.53; Wed, 27 Oct 2021 18:56:16 -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=@nxp.com header.s=selector2 header.b=lPBII2Ey; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.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=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229735AbhJ1ByQ (ORCPT + 99 others); Wed, 27 Oct 2021 21:54:16 -0400 Received: from mail-vi1eur05on2079.outbound.protection.outlook.com ([40.107.21.79]:42657 "EHLO EUR05-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S229534AbhJ1ByP (ORCPT ); Wed, 27 Oct 2021 21:54:15 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ojjz3haKeITverFWMRVn9AHo9vON1yWew0AewcWY6J+cNopVnK6kuBy90i5tMyT3gXvF9YHzsgmishKXWLunSbxoKdhfUgl4aHH4CnKUEfEg1fgrzXPts71xiTkqFH+rjawS99iobkJ5mgYMoX1Z7o0n9dgBU3KDrsL6G9eHsAMWIMGD/6F58qtuiyiPveS2kYt4BWry/W9/id87F2y55Eb3TNDJjKYDvbcuQqwhEU5EqBLLAr6N+ATrzYfiZzhULEZsTEXssZiQ2uY+vGiWRAulbHy9zQesUziX9mCB8QHYkz8+c/2x1FRiHSz0BxaWO2iinLCe2CDZkkDw8I7olw== 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=2Z6lQcucqj3OCvWzwzvrgBOvWcdRBxrK2CTX/fmMaRs=; b=goqxrfh6Qgytfrhgfxnf3Kvj1mvmHdC7+ejqPpR0DjJwaCup4v8gh9A044d8YRXvwGVtVBuJVPrXuRvdANSu0/Xo93FjI4RBoStQ2eWSiSOXkStMBvBNnoa0IQfZN/XCExQldMVkEyJH+hFN3o/R+Hnz9W5cV29J6Rd/Ru30YnFCn/z86vNmX4lICbF30pV/1lSEhyrMwdqAccxVyPgWsSEYLAAC+13eb7qkr3Wsn3gxm/K1z2dYCpL6whMrxcV5PTjo9h2IzObOoxwBMMApC9hy9Gm8RouiwCxthDSmgwSe47sJOr7L2jb5aWpXRYbZmxARNJRfsLuW2W4ZX1tiaw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2Z6lQcucqj3OCvWzwzvrgBOvWcdRBxrK2CTX/fmMaRs=; b=lPBII2EyZ94En2veMHvYJgJmJwIyhq2UScaYyrVHK7AvH5QXPufOMiTtIaNGqU6/3prK4lO2rDHHsIEfYf42E+JMaNvBDK5qRPz77NHy1advYX8JNVGmUgsdr1IUIVFym7+temSaPclS35hoetawRgydwAemO96i7u4lRp/2UqI= Received: from AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) by AS8PR04MB8531.eurprd04.prod.outlook.com (2603:10a6:20b:422::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Thu, 28 Oct 2021 01:51:46 +0000 Received: from AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::b059:46c6:685b:e0fc]) by AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::b059:46c6:685b:e0fc%5]) with mapi id 15.20.4649.015; Thu, 28 Oct 2021 01:51:46 +0000 From: Richard Zhu To: "tharvey@gateworks.com" CC: Lucas Stach , Kishon Vijay Abraham I , "vkoul@kernel.org" , Rob Herring , "galak@kernel.crashing.org" , Shawn Guo , "linux-phy@lists.infradead.org" , Device Tree Mailing List , Linux ARM Mailing List , open list , Sascha Hauer , dl-linux-imx Subject: RE: [PATCH v3 0/9] add the imx8m pcie phy driver and imx8mm pcie support Thread-Topic: [PATCH v3 0/9] add the imx8m pcie phy driver and imx8mm pcie support Thread-Index: AQHXwf8T9WRZIWT4CUunBVSnJ63L4qvZhp6ggAD4IYCAAKk/cIABRTmAgABCoVCAAPyvgIAAhMLwgAEGQACAAA+SAIADuD4QgABZ2ZCAAKpdAIAAx5NwgAC3poCAAK5bEIAA3OuAgACiz+A= Date: Thu, 28 Oct 2021 01:51:46 +0000 Message-ID: References: <1634028078-2387-1-git-send-email-hongxing.zhu@nxp.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1a3a045c-5ba4-443c-4aa2-08d999b57ffb x-ms-traffictypediagnostic: AS8PR04MB8531: x-ld-processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9knHySWDzH0nF2xXWdxQcGlxMg13AR2Cmk4Wt8N9GHofkufjt4eg68v/EjIhHk8dendGrW23rTnMW27Bf61HHYlDP52z5BE/7hto0EIWLlVGBIla6K7nr0qR3uaLhwlG7976dqr2CEFg/JaTXoWahIAj13DnPw5C1oTskCit/XUdTPNG7qFgG2v4HbvzP03WO/ptiPL5IjFY/vIOktoig/BW34A3Fqk0pW93ntMnhHRXPZQuL0weWTQVuRhYrn8kKGugel6iA6ZRpPaAZJsICrHCbTMEHmFJ+kAjYexpAN5464NVpYywWBVaiD53ak1wMj7dYEwUXBzWraDXoXWYCKQ4SANTmhP/zcH8M1bTGUyBEDfTpbdpIta9ESC9OJbxQo3kvmt/C5bo8tUIpFnhBnbLvgzjU/OCuxPrAAlTDe4jDw0wm+Grz/XNyxXHygOXiWbXEFtQes0RZHIsIt+InyzDTqVqT31obk+O3vlV21Z4Ubwn7KaVKuE2melcCoEJ/W7/aAtiZjCBYmGGDQgzRSRhsrfGumLw6SCdDnKvCLvDK7K1AJVa1iP7Oxxl/u84fH7WnOQ9orTPcsEshiDLwCt5YpFQVVO8go1BF8Md4SK38NAzs8bt+XRZiNYVEWrBrEgjEymS9S+pml1/CPnaf7OLzvL1tCYWVAVxMPVi7U+b+jNkeCoHKVOpUoE/GAI2Xy6mj65RRwIqj+i7TKEqDSqUUkw0SyKYV2Ck2GHNKC0= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8676.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(122000001)(86362001)(316002)(7696005)(30864003)(508600001)(6506007)(76116006)(66476007)(186003)(26005)(7416002)(54906003)(66556008)(66446008)(64756008)(2906002)(9686003)(55016002)(38070700005)(52536014)(83380400001)(6916009)(71200400001)(8676002)(66946007)(53546011)(5660300002)(8936002)(38100700002)(33656002)(32563001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SFhHUk5RS011dEd1UzMyQytXeXVGREQ2YmZINVdkOHk3dmlyZGlHVjZ0VjZU?= =?utf-8?B?YW41Y3BkSE12TExXbFJLQ005cEc1WTZrMzBlbGU0dFdaRG9MTVEzRlZNRXlB?= =?utf-8?B?dENJV0VxWExMek9udUZucm1qT3diL01ub1RmWjdIbloxSFJXQ0hUL2JyY3R3?= =?utf-8?B?M1crYzFPamw0R1VJbThUS0MzNzlKZXR0OHhGTVBRT2t2Y2JoUS8zNDVVWmlN?= =?utf-8?B?cWF1RFFyNFUrN3NpdUd2RjBwWXgybnBnQm1ZengyTGJRWXdJNkVYNzFxalY5?= =?utf-8?B?VVBYY0lmTjVsZGpxT29QSXhocTMxbmpmU2FPNytuSmt1QzlOeW1NVnVqMEMv?= =?utf-8?B?aE91aWJ5YVpoZGpiUHRhT2xaYkNOaHYwdTJ5TStyOHFKazBNUTRMdEk4aUJ6?= =?utf-8?B?TUd4RzZyZE1NYTd0NkZBSFRSdHhSbXFRbWZCK0kvMFpPcTFVR3JzbUQ0Wllu?= =?utf-8?B?VXo2ZG1rV3dpZFR0TUxZQy82dDZIL09UcDd3MU5VNE8zZTlkbzVzWFVDdFFF?= =?utf-8?B?NjloV2lKU3JFY1J0RGJUaFNEelZOZm14eFpLd0JobXlJVzF6T0l1ZVhSTk5l?= =?utf-8?B?Z0FUZjBOYktlSlBKbjIxYkhWaGNCdExZMEN2L2tZdFU5KzlUVW5BWEtpczlq?= =?utf-8?B?Wkpub0FpNEdzQzBhcEZ0Y0ZYeUNOL0FuTDJjZWVlTVFPZWkxT0lLQjY1ZUdw?= =?utf-8?B?ZFFvc29UY2QvODBNU09EZ1VFOTByREJLTjRtWldWY2ZWV1JhLzZ4a2J1K0dC?= =?utf-8?B?b3hYeDBDQ29neWl6eFFJL2ZSUVZOWmpFRUM5WFVLOUtxZHhvUHFWMWtoRkNP?= =?utf-8?B?dzk2YXBOZ2x5VDRmL09VdVNVS0VwSGZhOHdwVUUzZ25NWGlYOU5DenFEUUlh?= =?utf-8?B?bCtHVWFjU1p3Wk9ybkp2Zm9VSnlmcWdOVTY0R3FqUmN4bWIrYVp1QmZpOXY3?= =?utf-8?B?NFgvc1JEcG9IWndHRk05Y0dUR2dYUEZYWU9jTmVRY29vR2ljWDlTajRSMngr?= =?utf-8?B?RXc1QkdaejVxOG5YYjdrZ3BRbjE1MVpFbDMxNGQ1S1kydzNCY0o3Ulg4L0pB?= =?utf-8?B?VWloSkN5MXpOMzdDYkdSanJZRFk4R2VteGdwTnhuWTNkU3VmV0gveGhyVXlD?= =?utf-8?B?RHEzbFQyQzNnS0N3Wkx4ZEJPQ2M3ZE4vWFpZTGIxQ1Q0RXJjSkY4N0RxYXpr?= =?utf-8?B?SkcvZFJSdjlQRzNDS1NSdFlIOVI5eVhGbU5VUTFjb09TMnlrQWpnek5FNlV1?= =?utf-8?B?bkliamw2eUwvQ1JqNmNKNHorSk1UdUROZFhCQXpESlN4alRrd0ttZ2lHZjR4?= =?utf-8?B?MXJrbTFHdjRoSjlaVkNraG82WjNIZmhoNDVJVjZQbU9kU214dStRN3gybmVU?= =?utf-8?B?TDVoNTVHWXZHR1I3bmQ5MUlib3laMHoyYnR6S0JBYXpTZTV0TkJLaFhwSnBl?= =?utf-8?B?Vjk4Z2VUVE54RHV2MS9nQW5BeW1zUG9vUmQvS0FOT3p4ZEsyRmJOQkRDV2to?= =?utf-8?B?cXFjc1pJWjJNU3VQNlpwanRmei9UZWtBR0hDYWV1YndSNEk5RGNZNnRqK3p5?= =?utf-8?B?SDJXUm9wVmVIUWtOWllEYXFJdjM4MDZwOUNFWHFRYnRkVlBzTWsyZVFMY21X?= =?utf-8?B?bGtDcnkxSTBwNW1jRkJ6c2IrNzVpZ3F1RGI2bzhCeHcvbWtlMVdJZzJPQlRM?= =?utf-8?B?UFE5L0VMdFpoUWRaenFvVDg2OVhJamtqcUgvZG11QVN2VzAwSFJFTmZjcytB?= =?utf-8?B?Y2RlREt3dGpaakJFV0JVT1ZIRkNZVWRGOHZiSFdTd1ZObjBRdHp1SXhxNlhr?= =?utf-8?B?Y3JpZjh4K3hycjQ0ZlZ5MzNtZkIrdEd3OWdhcG9KY3VpNEFVbTZTbmlDRHNh?= =?utf-8?B?U0Irb0NkdFZWOTNQaHl3OElTM1BMTjArK1ZPdWUzMnNvajRhdUpBZTdJRUQ2?= =?utf-8?B?MENvQXFTRFJ4eUlmSGFPTS9tc1JWWmF1RUJJTG5qTHlhcUNodFFJN3FQNHpW?= =?utf-8?B?TTVTbTVjMVVrNVIvaHFVa3BScXIvSDlkRDBwbmZidVV6WnVTSmt5Wjhvdm9l?= =?utf-8?B?RGNucEhOaUU5cVZjdUVhYzRzUkJ0YXNST3pwVzdKajhsdzl0LzVqSlhXRjM5?= =?utf-8?B?NDhJR2I3T294MlZnVVhScWxaYjdkc1JHaFlXbHNGVUdQcFE2ZHYrL2hBOXpj?= =?utf-8?B?RkE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8676.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1a3a045c-5ba4-443c-4aa2-08d999b57ffb X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Oct 2021 01:51:46.4184 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ta0FI02qLeCuzkzX/PUObA31VrysPFR47U/dr5+TS99XXEqCiOQZQ53XzqhbbqZdr97KP6aP2l7kcwkc89z7zw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8531 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUaW0gSGFydmV5IDx0aGFydmV5 QGdhdGV3b3Jrcy5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2JlciAyNywgMjAyMSAxMTo0 MSBQTQ0KPiBUbzogUmljaGFyZCBaaHUgPGhvbmd4aW5nLnpodUBueHAuY29tPg0KPiBDYzogTHVj YXMgU3RhY2ggPGwuc3RhY2hAcGVuZ3V0cm9uaXguZGU+OyBLaXNob24gVmlqYXkgQWJyYWhhbSBJ DQo+IDxraXNob25AdGkuY29tPjsgdmtvdWxAa2VybmVsLm9yZzsgUm9iIEhlcnJpbmcgPHJvYmhA a2VybmVsLm9yZz47DQo+IGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc7IFNoYXduIEd1byA8c2hh d25ndW9Aa2VybmVsLm9yZz47DQo+IGxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnOyBEZXZp Y2UgVHJlZSBNYWlsaW5nIExpc3QNCj4gPGRldmljZXRyZWVAdmdlci5rZXJuZWwub3JnPjsgTGlu dXggQVJNIE1haWxpbmcgTGlzdA0KPiA8bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnPjsgb3BlbiBsaXN0DQo+IDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgU2FzY2hh IEhhdWVyIDxrZXJuZWxAcGVuZ3V0cm9uaXguZGU+Ow0KPiBkbC1saW51eC1pbXggPGxpbnV4LWlt eEBueHAuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDAvOV0gYWRkIHRoZSBpbXg4bSBw Y2llIHBoeSBkcml2ZXIgYW5kIGlteDhtbQ0KPiBwY2llIHN1cHBvcnQNCj4gDQo+IE9uIFR1ZSwg T2N0IDI2LCAyMDIxIGF0IDExOjE4IFBNIFJpY2hhcmQgWmh1IDxob25neGluZy56aHVAbnhwLmNv bT4NCj4gd3JvdGU6DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g PiBGcm9tOiBUaW0gSGFydmV5IDx0aGFydmV5QGdhdGV3b3Jrcy5jb20+DQo+ID4gPiBTZW50OiBX ZWRuZXNkYXksIE9jdG9iZXIgMjcsIDIwMjEgMTI6MDYgQU0NCj4gPiA+IFRvOiBSaWNoYXJkIFpo dSA8aG9uZ3hpbmcuemh1QG54cC5jb20+DQo+ID4gPiBDYzogTHVjYXMgU3RhY2ggPGwuc3RhY2hA cGVuZ3V0cm9uaXguZGU+OyBLaXNob24gVmlqYXkgQWJyYWhhbSBJDQo+ID4gPiA8a2lzaG9uQHRp LmNvbT47IHZrb3VsQGtlcm5lbC5vcmc7IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+Ow0K PiA+ID4gZ2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZzsgU2hhd24gR3VvIDxzaGF3bmd1b0BrZXJu ZWwub3JnPjsNCj4gPiA+IGxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnOyBEZXZpY2UgVHJl ZSBNYWlsaW5nIExpc3QNCj4gPiA+IDxkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZz47IExpbnV4 IEFSTSBNYWlsaW5nIExpc3QNCj4gPiA+IDxsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVh ZC5vcmc+OyBvcGVuIGxpc3QNCj4gPiA+IDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPjsg U2FzY2hhIEhhdWVyDQo+ID4gPiA8a2VybmVsQHBlbmd1dHJvbml4LmRlPjsgZGwtbGludXgtaW14 IDxsaW51eC1pbXhAbnhwLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgMC85XSBh ZGQgdGhlIGlteDhtIHBjaWUgcGh5IGRyaXZlciBhbmQNCj4gaW14OG1tDQo+ID4gPiBwY2llIHN1 cHBvcnQNCj4gPiA+DQo+ID4gPiBPbiBNb24sIE9jdCAyNSwgMjAyMSBhdCAxMDo0MSBQTSBSaWNo YXJkIFpodQ0KPiA8aG9uZ3hpbmcuemh1QG54cC5jb20+DQo+ID4gPiB3cm90ZToNCj4gPiA+ID4N Cj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IFRp bSBIYXJ2ZXkgPHRoYXJ2ZXlAZ2F0ZXdvcmtzLmNvbT4NCj4gPiA+ID4gPiBTZW50OiBUdWVzZGF5 LCBPY3RvYmVyIDI2LCAyMDIxIDE6MTUgQU0NCj4gPiA+ID4gPiBUbzogUmljaGFyZCBaaHUgPGhv bmd4aW5nLnpodUBueHAuY29tPg0KPiA+ID4gPiA+IENjOiBMdWNhcyBTdGFjaCA8bC5zdGFjaEBw ZW5ndXRyb25peC5kZT47IEtpc2hvbiBWaWpheSBBYnJhaGFtIEkNCj4gPiA+ID4gPiA8a2lzaG9u QHRpLmNvbT47IHZrb3VsQGtlcm5lbC5vcmc7IFJvYiBIZXJyaW5nDQo+ID4gPiA+ID4gPHJvYmhA a2VybmVsLm9yZz47IGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc7IFNoYXduIEd1bw0KPiA+ID4g PiA+IDxzaGF3bmd1b0BrZXJuZWwub3JnPjsgbGludXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmc7 IERldmljZQ0KPiA+ID4gPiA+IFRyZWUgTWFpbGluZyBMaXN0IDxkZXZpY2V0cmVlQHZnZXIua2Vy bmVsLm9yZz47IExpbnV4IEFSTQ0KPiA+ID4gPiA+IE1haWxpbmcgTGlzdCA8bGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnPjsgb3BlbiBsaXN0DQo+ID4gPiA+ID4gPGxpbnV4LWtl cm5lbEB2Z2VyLmtlcm5lbC5vcmc+OyBTYXNjaGEgSGF1ZXINCj4gPiA+ID4gPiA8a2VybmVsQHBl bmd1dHJvbml4LmRlPjsgZGwtbGludXgtaW14IDxsaW51eC1pbXhAbnhwLmNvbT4NCj4gPiA+ID4g PiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDAvOV0gYWRkIHRoZSBpbXg4bSBwY2llIHBoeSBkcml2 ZXIgYW5kDQo+ID4gPiA+ID4gaW14OG1tIHBjaWUgc3VwcG9ydA0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gT24gTW9uLCBPY3QgMjUsIDIwMjEgYXQgMTI6MjMgQU0gUmljaGFyZCBaaHUNCj4gPiA+ID4g PiA8aG9uZ3hpbmcuemh1QG54cC5jb20+DQo+ID4gPiA+ID4gd3JvdGU6DQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gU25pcHBlZC4uLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gTXkgYm9hcmRzIGRvIG5vdCB1c2UgQ0xLUkVRIyBzbyBJIGRvIG5vdCBoYXZlDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoYXQgZGVmaW5lZCBpbiBwaW5tdXggYW5kIEkgZm91bmQg dGhhdCBpZiBJIGFkZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBNWDhNTV9JT01VWENfSTJD NF9TQ0xfUENJRTFfQ0xLUkVRX0INCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBQQ0llDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IHdvcmtzIG9uIG15IGJvYXJkIGJ1dCB0aGlzIGlzbid0IGEgc29s dXRpb24ganVzdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBhIHdvcmstYXJvdW5kIChJIGhh dmUgYm9hcmRzIHRoYXQgdXNlIHRoZSBvbmx5DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHR3 byBwb3NzaWJsZSBwaW5zIGZvciBDTEtSRVEgYXMgb3RoZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiBmZWF0dXJlcykuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IFNpbWlsYXJseSB5b3Ugd2lsbCBmaW5kIG9uIHRoZSBpbXg4bW0tZXZrIGlmIHlv dQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBjb21tZW50IG91dCB0aGUgQ0xLUkVRICh3aGlj aCBpc24ndCByZXF1aXJlZCkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIGlteDhtbWV2 ayB3aWxsIGVuZCB1cCBoYW5naW5nIGxpa2UgbXkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBib2Fy ZHM6DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBbUmljaGFyZCBaaHVdIEhpIFRpbToNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IFJlZ2FyZGluZyB0aGUgU1BFQywgdGhlIENMS1JFUSMgaXMgbWFu ZGF0b3J5DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiByZXF1aXJlZCwgYW5kIHNob3VsZCBiZQ0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+IGNvbmZpZ3VyZWQgYXMgYW4gb3BlbiBkcmFpbiwgYWN0aXZl IGxvdyBzaWduYWwuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBBbmQgdGhpcyBzaWduYWwgc2hv dWxkIGJlIGRyaXZlbiBsb3cgYnkgdGhlIFBDSWUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE0u MiBkZXZpY2UgdG8gcmVxdWVzdCB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBSRUYgY2xvY2sg YmUgYXZhaWxhYmxlKGFjdGl2ZSBsb3cpLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gU28sIHRo ZXJlIGlzIHN1Y2gga2luZCBvZiBDTEtSRVEjIHBpbiBkZWZpbml0aW9uDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBvbiBpLk1YOE1NIEVWSw0KPiA+ID4gPiA+ID4gPiA+IGJvYXJkLg0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEFueXdheSwgSSB0aGlu ayB0aGUgZXh0ZXJuYWwgT1NDIGNpcmN1aXQgc2hvdWxkIGJlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBhbHdheXMgcnVubmluZyBpZiB0aGVyZSBpcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG5v IENMS1JFUSMgb24geW91ciBIVyBib2FyZCBkZXNpZ24uDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIHdheSBJ IHVuZGVyc3RhbmQgaXQgaXMgQ0xLUkVRIyBhbGxvd3MgdGhlIGhvc3QNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiB0byBkaXNhYmxlIHRoZSBSRUZDTEsgd2hlbiBub3QgbmVlZGVkIGZvciBwb3dlcg0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNhdmluZ3Mgc28gaXQgd291bGQgc2VlbSBvcHRpb25hbCB0 byBpbXBsZW1lbnQgdGhhdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGFuZCBpZiBub3QgaW1wbGVt ZW50ZWQgc2hvdWxkIGJlIGxlZnQgdW5jb25uZWN0ZWQgb24NCj4gPiA+ID4gPiA+ID4gPiB0aGUg Y2FyZC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBbUmljaGFy ZCBaaHVdIE5vLCBub3QgdGhhdCB3YXkuIFJlZ2FyZGluZyB0aGUgU1BFQywNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gdGhpcyBzaWduYWwgaXMNCj4gPiA+ID4gPiA+ID4gPiBtYW5kYXRvcnkgcmVxdWly ZWQuDQo+ID4gPiA+ID4gPiA+ID4gPiA+IEVzcGVjaWFsbHkgZm9yIHRoZSBMMXNzIHVzYWdlcy4g VGhpcyBzaWduYWwgd291bGQgYmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gT0Qob3BlbiBkcmFpbiks IGJpLWRpcmVjdGlvbmFsLCBhbmQgbWlnaHQgYmUgZHJpdmVuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ IGxvdy9oaWdoIGJ5IFJDIG9yIEVQIGF1dG9tYXRpY2FsbHkgaWYNCj4gPiA+ID4gPiA+ID4gPiBM MXNzIG1vZGVzIGFyZSBlbmFibGVkLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBZb3UgY2FuIG1ha2Ug cmVmZXJlbmNlIHRvIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiAiRUNOX0wxX1BNX1N1YnN0 YXRlc193aXRoX0NMS1JFUV8zMV9NYXlfMjAxM19SZXYxMGEiLA0KPiA+ID4gb3INCj4gPiA+ID4g PiB0aGUNCj4gPiA+ID4gPiA+ID4gPiBjaGFwdGVyIDUuNSBMMSBQTSBTdWJzdGF0ZXMgb2YgIlBD SSBFeHByZXNzIEJhc2UNCj4gU3BlY2lmaWNhdGlvbiwgUmV2Lg0KPiA+ID4gPiA+ID4gPiA+IDQu MCBWZXJzaW9uIDEuMCIuDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gQ0xLUkVRIGlzIG9ubHkgbWFuZGF0b3J5IGlmIHlvdSB3aXNoIHRv IHN1cHBvcnQgY2xvY2sNCj4gPiA+ID4gPiA+ID4gPiA+IHBvd2VyIG1hbmFnZW1lbnQuIE1hbnkg Ym9hcmRzIHdpdGggYSBQQ0kgaG9zdA0KPiBjb250cm9sbGVyDQo+ID4gPiA+ID4gPiA+ID4gPiBk byBub3Qgc3VwcG9ydCB0aGlzLg0KPiA+ID4gPiA+ID4gPiBbUmljaGFyZCBaaHVdIE9rYXksIHVu ZGVyc3Rvb2QuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGEvYXJj aC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1tLWV2ay5kdHNpDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IGIvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1tLWV2ay5k dHNpDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGluZGV4IDVjZTQzZGFhMGM4Yi4uZjAwMjNi NDhmNDc1IDEwMDY0NA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bW0tZXZr LmR0c2kNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKysrDQo+IGIvYXJjaC9hcm02NC9ib290 L2R0cy9mcmVlc2NhbGUvaW14OG1tLWV2ay5kDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsr KyB0c2kNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTQ0OCw3ICs0NDgsOSBAQA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAg IHBpbmN0cmxfcGNpZTA6IHBjaWUwZ3JwIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAg ICAgICAgICAgICAgIGZzbCxwaW5zID0gPA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArLyoN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gTVg4 TU1fSU9NVVhDX0kyQzRfU0NMX1BDSUUxX0NMS1JFUV9CDQo+IDB4NjENCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gKyovDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gTVg4TU1fSU9NVVhDX1NBSTJfUlhGU19HUElPNF9JTzIxDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IDB4NDENCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAg ICAgID47DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgfTsNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSSBoYXZlIFBDSWUgd29y a2luZyB3aXRoIGEgZHJpdmVyIHRoYXQgSSBwb3J0ZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gZnJvbSBOWFAncyBrZXJuZWwgd2hpY2ggZGlmZmVycyBmcm9tIHlvdXIgZHJpdmVyDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+IGluIHRoYXQgdGhlIFBDSWUgUEhZIGlzIG5vdCBhYnN0cmFj dGVkIHRvIGl0cw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBvd24gZHJpdmVyIHNvIEkgdGhp bmsgdGhpcyBoYXMgc29tZXRoaW5nIHRvIGRvDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdp dGggdGhlIG9yZGVyIGluIHdoaWNoIHRoZSBwaHkgaXMgcmVzZXQgb3INCj4gPiA+ID4gPiA+ID4g aW5pdGlhbGl6ZWQ/DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFRoZSBjb25maWd1cmF0aW9u IG9mDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZ3ByMTQgYml0cyBsb29rcyBjb3JyZWN0IHRvIG1l Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gW1JpY2hhcmQgWmh1XSBUaGUgQ0xLUkVRIyBQSU4g ZGVmaW5pdGlvbiBzaG91bGRuJ3QNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGJlDQo+ID4gPiBt YXNrZWQuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJbiB0aGUgTlhQJ3MgbG9jYWwgQlNQIGtl cm5lbCwgSSBqdXN0IGZvcmNlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBDTEtSRVEjIGxvdyB0 byBsZXZlbCB1cCB0aGUgSFcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBjb21wYXRpYmlsaXR5Lg0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhhdCdzIG1pZ2h0IHRoZSByZWFzb24gd2h5IHRoZSBQ Q0llIHdvcmtzIG9uIHlvdXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEhXIGJvYXJkIGFsdGhv dWdoIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IENMS1JFUSMgUElOIGlzIG5vdCBkZWZpbmVk Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhpcyBtZXRob2QgaXMgYSBsaXR0bGUgcnVkZSBh bmQgdmlvbGF0ZSB0aGUgU1BFQywNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGFuZCBub3QgcmVj b21tZW5kZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBhbHRob3VnaCBpdCBsZXZlbHMgdXAgdGhl IEhXIGNvbXBhdGliaWxpdHkuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBTbyBJIGRyb3AgdGhp cyBtZXRob2QgaW4gdGhpcyBzZXJpZXMuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gU29ycnksIEkgZG9uJ3QgdW5k ZXJzdGFuZCB3aGF0IHlvdSBhcmUgc2F5aW5nIGhlcmUuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g SXMgdGhlcmUgYSBjaGFuZ2UgeW91IGFyZSBnb2luZyB0byBtYWtlIHRvIHY0IHRoYXQNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiB3aWxsIG1ha2UgdGhpcyB3b3JrIGZvciB0aGUgZXZrIGFuZCBteSBi b2FyZHM/IFdoYXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpcyB0aGF0IGNoYW5nZQ0KPiA+ID4g ZXhhY3RseT8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gW1JpY2hhcmQgWmh1XSBOby4gV2hhdCBJIHNh aWQgYWJvdmUgaXMgdGhhdCB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gQ0xLUkVRIyBpcyBmb3Jj ZWQgdG8gYmUgbG93IGluIE5YUCBsb2NhbCBCU1Aga2VybmVsLiBJDQo+ID4gPiA+ID4gPiA+ID4g PiA+IGd1ZXNzIHRoaXMgbWlnaHQgYmUgdGhlIHJlYXNvbiB3aHkgeW91cg0KPiA+ID4gPiA+ID4g PiA+IGJvYXJkIHdvcmtzLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g PiBCSVQxMSBhbmQgQklUMTAgb2YgSU9NVVhDX0dQUjE0IGNhbiBiZSB1c2VkIHRvIGZvcmNlDQo+ ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSBDTEtSRVEjIHRvDQo+ID4gPiA+ID4gPiA+ID4gYmUgbG93 Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBTZXQgQ0xLUkVRX09WRVJSSURFX0VOKGJpdDEwKSAxYjEs IHRoZW4gd3JpdGUgb25lDQo+IHplcm8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gdG8NCj4gPiA+ID4g PiA+ID4gPiBDTEtSRVFfT1ZFUlJJREUoYml0MTEpLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IE9rLCB0aGF0IG1ha2VzIHNlbnNlLiBU aG9zZSBiaXRzIGFyZSBub3QgZXhwbGFpbmVkIHdlbGwNCj4gPiA+ID4gPiA+ID4gPiA+IGluIHRo ZSBJTVg4TU1STS4gQXMgbXkgYm9hcmQncyBleHRlcm5hbCBSRUZDTEsgaXMNCj4gYWx3YXlzDQo+ ID4gPiA+ID4gPiA+ID4gPiBlbmFibGVkIHRoYXQgbXVzdCBnYXRlIHRoZSBjbG9jayBpbnRlcm5h bGx5IHRvIHRoZSBob3N0DQo+ID4gPiA+ID4gPiA+ID4gPiBjb250cm9sbGVyDQo+ID4gPiBibG9j ay4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJIGNhbiBjb25maXJtIHRo YXQgYXNzZXJ0aW5nIHRob3NlIEdQUjE0IGJpdHMgZG9lcw0KPiA+ID4gPiA+ID4gPiA+ID4gcmVz b2x2ZSBteQ0KPiA+ID4gaXNzdWU6DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ ID4gI2RlZmluZSBJTVg4TU1fR1BSX1BDSUVfQ0xLUkVRX09WRVJSSURFX1ZBTA0KPiBCSVQoMTEp DQo+ID4gPiA+ID4gPiA+ID4gPiAjZGVmaW5lIElNWDhNTV9HUFJfUENJRV9DTEtSRVFfT1ZFUlJJ REVfRU4NCj4gPiA+IEJJVCgxMCkNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g PiAgICAgICAgLyoNCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgKiBmb3IgYm9hcmRzIHRoYXQg ZG8gbm90IGNvbm5lY3QgQ0xLUkVRIywNCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgKiBvdmVy cmlkZSBDTEtSRVEjIGFuZCBkcml2ZSBpdCBsb3cgaW50ZXJuYWxseQ0KPiA+ID4gPiA+ID4gPiA+ ID4gICAgICAgICAqLw0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIHJlZ21hcF91cGRhdGVfYml0 cyhpbXg4X3BoeS0+aW9tdXhjX2dwciwNCj4gPiA+ID4gPiBJT01VWENfR1BSMTQsDQo+ID4gPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IElNWDhNTV9HUFJfUENJRV9DTEtSRVFfT1ZFUlJJ REVfVkFMLCAwKTsNCj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICByZWdtYXBfdXBkYXRlX2JpdHMo aW14OF9waHktPmlvbXV4Y19ncHIsDQo+ID4gPiA+ID4gSU9NVVhDX0dQUjE0LA0KPiA+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJTVg4TU1fR1BSX1BDSUVfQ0xLUkVRX09WRVJSSURF X0VOLCAxKTsNCj4gPiA+ID4gPiA+ID4gW1JpY2hhcmQgWmh1XSByZWdtYXAgYml0cyBvcGVyYXRp b25zIHNob3VsZCBtYW5pcHVsYXRlDQo+ID4gPiA+ID4gPiA+IGFjY29yZGluZw0KPiA+ID4gYml0 cy4NCj4gPiA+ID4gPiA+ID4gVGhlIEJJVCgxMCkgYW5kIEJJVCgxMSkgc2hvdWxkIGJlIHRvdWNo ZWQgYWN0dWFsbHkuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+ID4gU2hvdWxkIHRoaXMgYmUgYWRkZWQgYXMgYSAnZnNsLGNsa3JlcS11bnN1cHBvcnRl ZCcgZmxhZw0KPiA+ID4gPiA+ID4gPiA+ID4gdGhhdCBuZWVkcyB0byBiZSBzZXQgdHJ1ZSB0byBp bXBsZW1lbnQgdGhlIGFib3ZlIGNvZGU/DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ID4gUmljaGFyZCwNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+IFNvcnJ5IC0gc3Bva2UgdG9vIHNvb24uIE15IHRlc3Qgd2FzIGZsYXdlZCBhcyBJIHN0 aWxsIHdhcw0KPiA+ID4gPiA+ID4gPiA+IHBpbm11eGluZyBDTEtSRVEgaW4gbXkgZHQgdG8gd29y ayBhcm91bmQgdGhlIGlzc3VlIGFuZA0KPiA+ID4gPiA+ID4gPiA+IGFmdGVyIHJlbW92ZWQgdGhl IGFib3ZlIGRpZCBub3QgcmVzb2x2ZSBteSBpc3N1ZS4gVGhlDQo+ID4gPiA+ID4gPiA+ID4gc2V0 dGluZyBvZiBPVkVSUklERV9FTiB3YXMgd3JvbmcgYWJvdmUgKHNob3VsZCBub3QgYmUgc2V0DQo+ ID4gPiA+ID4gPiA+ID4gdG8gJzEnIGJ1dA0KPiA+ID4gPiA+ID4gPiA+IEJJVCgxMCkNCj4gPiA+ ID4gPiA+ID4gPiBpbnN0ZWFkKSBidXQgdGhpcyBjb2RlIGFscmVhZHkgZXhpc3RzIGluDQo+ID4g PiA+ID4gPiA+ID4gaW14Nl9wY2llX2VuYWJsZV9yZWZfY2xrIGFuZCBpcyB1c2VkIGZvciBJTVg4 TU0gcGVyIHlvdXINCj4gPiA+ID4gPiA+ID4gPiBwYXRjaA0KPiA+ID4gc28gdGhpcyBpcyBub3Qg dGhlIGlzc3VlLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gV2hhdCBtYWtlcyBt eSBib2FyZCB3b3JrIGlzIHRvIGNsZWFyIEdQUjE0IGJpdDkgKGxpa2UgdGhlDQo+ID4gPiA+ID4g PiA+ID4gTlhQIGtlcm5lbA0KPiA+ID4gPiA+ID4gPiA+IGRvZXMpIHNvIEkgZG9uJ3QgdGhpbmsg dGhpcyBiaXQgZG9lcyB3aGF0IHdlIHRoaW5rIGl0IGRvZXMNCj4gPiA+ID4gPiA+ID4gPiAoc2Vs ZWN0IGJldHdlZW4gaW50ZXJuYWwgYW5kIGV4dCBjbGspLiBJIHRoaW5rIHNldHRpbmcgaXQNCj4g PiA+ID4gPiA+ID4gPiBlbmFibGVzIGNsb2NrIGdhdGluZyB2aWENCj4gPiA+ID4gPiA+ID4gQ0xL UkVRIy4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRoaXMgYWxzbyBwb2ludHMg b3V0IHRoYXQgcGVyaGFwcyB0aGUgQ0xLUkVRX09WRVJSSURFDQo+ID4gPiA+ID4gPiA+ID4gbG9n aWMgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBuZXcgcGh5IGRyaXZlciBmb3IgSU1YOE1NLg0KPiA+ ID4gPiA+ID4gPiBbUmljaGFyZCBaaHVdIEl0IHNvdW5kcyByZWFzb25hYmxlIHRvIGNvbnNpZGVy IHRvIGZvcmNlIHRoZQ0KPiA+ID4gPiA+ID4gPiBDTEtSRVEjIHRvIGJlIGxvdy4NCj4gPiA+ID4g PiA+ID4gSSB3aWxsIHRoaW5rIGFib3V0IHRoYXQgYW5kIGFkZCB0aGlzIGluIGxhdGVyIHY1IHBh dGNoLXNldA0KPiA+ID4gPiA+ID4gPiBpZiBub2JvZHkgaGFzIGRpZmZlcmVudCBjb25jZXJucy4N Cj4gPiA+ID4gPiA+ID4gVGhhbmtzLg0KPiA+ID4gPiA+ID4gW1JpY2hhcmQgWmh1XSBIaSBUaW06 DQo+ID4gPiA+ID4gPiBBcyB5b3UgbWVudGlvbmVkIGFib3ZlLCB0aGUgQ0xLUkVRIyBHUElPIFBJ TiBpcyBub3QgdXNlZCBmb3INCj4gPiA+ID4gPiA+IFBDSWUgb24NCj4gPiA+ID4gPiB5b3VyIGJv YXJkLCByaWdodD8NCj4gPiA+ID4gPiA+ICIgKEkgaGF2ZSBib2FyZHMgdGhhdCB1c2UgdGhlIG9u bHkgdHdvIHBvc3NpYmxlIHBpbnMgZm9yDQo+ID4gPiA+ID4gPiBDTEtSRVEgYXMgb3RoZXINCj4g PiA+ID4gPiBmZWF0dXJlcykiDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gRGlkIHRoZSBvdmVy cmlkZSBjb25maWd1cmF0aW9uIG9mIHRoZSBjbGtyZXEjIHdpbGwgYnJpbmcNCj4gPiA+ID4gPiA+ IHVuZXhwZWN0ZWQgcmVzdWx0cw0KPiA+ID4gPiA+IGZvciBvdGhlciBmZWF0dXJlcyBvbiB5b3Vy IGJvYXJkPw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFdoYXQgSSBtZWFuIGlz IHRoYXQgaW14OG1tLXZlbmljZS1ndzc5MDEuZHRzIHVzZXMgYm90aCBJMkM0DQo+IGFuZA0KPiA+ ID4gPiA+IFVBUlQ0IGFuZCBiZWNhdXNlIEkyQzRfU0NMIGFuZCBVQVJUNF9SWEQgYXJlIHRoZSBv bmx5IHR3bw0KPiBwYWRzDQo+ID4gPiA+ID4gdGhhdCBjb3VsZCBiZSBwaW5tdXhlZCBmb3IgQ0xL UkVRIyBJIGNhbid0IHVzZSB0aGUgd29ya2Fyb3VuZCBvZg0KPiA+ID4gPiA+IHBpbiBtdXhpbmcN Cj4gPiA+IGl0Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQ3VycmVudGx5IHlvdXIgZHJpdmVyIG9u bHkgd29ya3Mgb24gbXkgaW14OG1tLXZlbmljZS0qIGJvYXJkcyBpZg0KPiA+ID4gPiA+IEkgYWRk IG9uZSBvZiB0aGUgZm9sbG93aW5nIG9uIGJvYXJkcyB0aGF0IGRvbid0IGNvbm5lY3QgdGhvc2UN Cj4gPiA+ID4gPiBwYWRzIChvciBpZiBJIGNsZWFyDQo+ID4gPiA+ID4gSU1YOE1NX0dQUl9QQ0lF X1JFRl9VU0VfUEFEKToNCj4gPiA+ID4gPiBNWDhNTV9JT01VWENfSTJDNF9TQ0xfUENJRTFfQ0xL UkVRX0INCj4gPiA+ID4gPiBNWDhNTV9JT01VWENfVUFSVDRfUlhEX1BDSUUxX0NMS1JFUV9CDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBOb3RlIHlvdXIgJ1BDSTogaW14OiBhZGQgdGhlIGlteDhtbSBw Y2llIHN1cHBvcnQnIHBhdGNoIFsxXSBkb2VzDQo+ID4gPiA+ID4gZW5hYmxlIHRoaXMgY29kZSBh bHJlYWR5IGluIHRoZSBpbXg2X3BjaWVfZW5hYmxlX3JlZl9jbGsNCj4gPiA+ID4gPiBmdW5jdGlv biB0byBvdmVycmlkZSBSRUZfQ0xLIGFuZCBkcml2ZSBpdCBsb3c6DQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiBvZmZzZXQgPSBpbXg2X3BjaWVfZ3JwX29mZnNldChpbXg2X3BjaWUpOw0KPiA+ID4gPiA+ IC8qDQo+ID4gPiA+ID4gKiBTZXQgdGhlIG92ZXIgcmlkZSBsb3cgYW5kIGVuYWJsZWQNCj4gPiA+ ID4gPiAqIG1ha2Ugc3VyZSB0aGF0IFJFRl9DTEsgaXMgdHVybmVkIG9uLg0KPiA+ID4gPiA+ICov DQo+ID4gPiA+ID4gcmVnbWFwX3VwZGF0ZV9iaXRzKGlteDZfcGNpZS0+aW9tdXhjX2dwciwgb2Zm c2V0LA0KPiA+ID4gPiA+ICAgIElNWDhNUV9HUFJfUENJRV9DTEtfUkVRX09WRVJSSURFLA0KPiA+ ID4gPiA+ICAgIDApOw0KPiA+ID4gPiA+IHJlZ21hcF91cGRhdGVfYml0cyhpbXg2X3BjaWUtPmlv bXV4Y19ncHIsIG9mZnNldCwNCj4gPiA+ID4gPiAgICBJTVg4TVFfR1BSX1BDSUVfQ0xLX1JFUV9P VkVSUklERV9FTiwNCj4gPiA+ID4gPiAgICBJTVg4TVFfR1BSX1BDSUVfQ0xLX1JFUV9PVkVSUklE RV9FTik7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBTbyB0aGlzIGlzIGFscmVhZHkgYmVpbmcgcnVu IGFuZCB5ZXQgbXkgYm9hcmRzIHN0aWxsIGRvIG5vdCB3b3JrDQo+ID4gPiA+ID4gdW5sZXNzIEkg Y2xyIElNWDhNTV9HUFJfUENJRV9SRUZfVVNFX1BBRCBsaWtlIHRoaXMgd2hpY2ggaXMNCj4gd2hh dA0KPiA+ID4gPiA+IHRoZSBOWFAgZG93bnN0cmVhbSBkcml2ZXIgZG9lczoNCj4gPiA+ID4gPiBy ZWdtYXBfdXBkYXRlX2JpdHMoaW14OF9waHktPmlvbXV4Y19ncHIsIElPTVVYQ19HUFIxNCwNCj4g PiA+ID4gPiBJTVg4TU1fR1BSX1BDSUVfUkVGX1VTRV9QQUQsIDApOw0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gVGhpcyBpcyB3aHkgSSdtIG5vdCBzdXJlIHRoYXQgYml0IGRvZXMgd2hhdCB5b3UgdGhp bmsgaXQgZG9lcy4uLg0KPiA+ID4gPiA+IEkgZmVlbCBsaWtlIHRoYXQgYml0IGVuYWJsZXMgJ1Vz ZSBDTEtSRVEjIHRvIGVuYWJsZSBDTEsnLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gWW91IHRlbGwg bWUgdGhlIGRlc2NyaXB0aW9ucyBmb3IgR1BSMTQgYXJlIHdyb25nIGluIHRoZSByZWZlcmVuY2UN Cj4gbWFudWFsLg0KPiA+ID4gPiA+IFBsZWFzZSBwcm92aWRlIGNvcnJlY3QgZGVzY3JpcHRpb25z IGZvciB1cyBzbyB3ZSBjYW4gc29ydCB0aGlzIG91dC4NCj4gPiA+ID4gPg0KPiA+ID4gPiBbUmlj aGFyZCBaaHVdIEhpIFRpbToNCj4gPiA+ID4gVGhlIEJJVDkgb2YgR1BSMTQgaXMgdXNlZCBhcw0K PiAiR1BSX1BDSUUxX1BIWV9JX0FVWF9FTl9PVkVSUklERV9FTiINCj4gPiA+ID4gYW5kIEJJVDE5 IGlzIHVzZWQgYXMgIkdQUl9QQ0lFMV9QSFlfRlVOQ19JX0FVWF9FTiIgb24NCj4gaS5NWDhNTS4N Cj4gPiA+ID4gSSB0aGluayB0aGUgdHdvIGJpdHMgZGVzY3JpcHRpb25zIGFyZSB1c2VkIHRvIGRl c2NyaWJlIHRoZSBCSVQxOQ0KPiA+ID4gPiBhbmQgQklUOQ0KPiA+ID4gdG9nZXRoZXIgcmVmZXIg dG8gbXkgZ3Vlc3MuDQo+ID4gPiA+IHtHUFJfUENJRTFfUEhZX0lfQVVYX0VOX09WRVJSSURFX0VO KEJJVDkpLA0KPiA+ID4gPiBHUFJfUENJRTFfUEhZX0ZVTkNfSV9BVVhfRU4oQklUMTkpIH0NCj4g PiA+ID4gMidiMDA6IEV4dGVybmFsIFJlZmVyZW5jZSBDbG9jayBJL08gKGZvciBQTEwpIERpc2Fi bGUNCj4gPiA+ID4gMidiMDE6IEV4dGVybmFsIFJlZmVyZW5jZSBDbG9jayBJL08gKGZvciBQTEwp IEVuYWJsZQ0KPiA+ID4gPiAyJ2IxMDogRXh0ZXJuYWwgUmVmZXJlbmNlIENsb2NrIEkvTyAoZm9y IFBMTCkgRGlzYWJsZQ0KPiA+ID4gPiAyJ2IxMTogRXh0ZXJuYWwgUmVmZXJlbmNlIENsb2NrIEkv TyAoZm9yIFBMTCkgb3V0cHV0IGlzIGNvbnRyb2xsZWQNCj4gPiA+ID4gYnkgQ0xLUkVRIw0KPiA+ ID4gPg0KPiA+ID4gPiBUaGUgb3B0aW9uMSYzIHNob3VsZCBiZSBmb3JiaWRkZW4sIHNpbmNlIHRo ZSBleHRlcm5hbCBSRUYgQ0xLIEkvTw0KPiA+ID4gPiBzaG91bGQNCj4gPiA+IGJlIGVuYWJsZWQg b24geW91ciBib2FyZCBhbmQgRVZLIGJvYXJkLg0KPiA+ID4gPiBJbiB0aGUgb3B0aW9uMiY0LCB0 aGUgQklUMTkgc2hvdWxkIGJlIHNldCB0byBiZSAxJ2IxLicNCj4gPiA+ID4NCj4gPiA+ID4gU28s IHJlZ2FyZGluZyBteSB1bmRlcnN0YW5kLCBpZiB0aGUgQ0xLUkVRIyBpcyBub3QgcGlubXV4ZWQg aW4NCj4gPiA+ID4geW91ciB1c2UNCj4gPiA+IGNhc2UsIHRoZSBJTVg4TU1fR1BSX1BDSUVfUkVG X1VTRV9QQUQgKEJJVDkpIHNob3VsZCBiZSAxJ2IwLg0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+IFJp Y2hhcmQsDQo+ID4gPg0KPiA+ID4gT2ssIGlmIHRoaXMgaXMgdGhlIGNhc2UgdGhlbiBkcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jDQo+ID4gPiBmb3IgSU1YOE1NIHNob3VsZCBu b3QgdG91Y2ggR1BSMTQgYW5kICdbdjMsOS85XSBQQ0k6IGlteDogYWRkIHRoZQ0KPiBpbXg4bW0g cGNpZSBzdXBwb3J0Jw0KPiA+ID4gc2hvdWxkIGhhdmUgdGhpcyBvbiB0b3AgYW5kIHNxdWFzaGVk Og0KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2 LmMNCj4gPiA+IGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWlteDYuYw0KPiA+ID4g aW5kZXggN2M4OWJkMWE2NDQxLi40NThkNTRjOGUzODUgMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jDQo+ID4gPiArKysgYi9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jDQo+ID4gPiBAQCAtNDUyLDggKzQ1MiwxMiBAQCBz dGF0aWMgaW50IGlteDZfcGNpZV9lbmFibGVfcmVmX2NsayhzdHJ1Y3QNCj4gPiA+IGlteDZfcGNp ZSAqaW14Nl9wY2llKQ0KPiA+ID4gICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ID4gICAgICAg ICBjYXNlIElNWDdEOg0KPiA+ID4gICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ID4gLSAgICAg ICBjYXNlIElNWDhNUToNCj4gPiA+ICAgICAgICAgY2FzZSBJTVg4TU06DQo+ID4gPiArICAgICAg ICAgICAgICAgcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGlteDZfcGNpZS0+cGNpZV9hdXgpOw0K PiA+ID4gKyAgICAgICAgICAgICAgIGlmIChyZXQpDQo+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICBkZXZfZXJyKGRldiwgInVuYWJsZSB0byBlbmFibGUNCj4gcGNpZV9hdXgNCj4gPiA+IGNs b2NrXG4iKTsNCj4gPiA+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gPiA+ICsgICAgICAgY2Fz ZSBJTVg4TVE6DQo+ID4gPiAgICAgICAgICAgICAgICAgcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxl KGlteDZfcGNpZS0+cGNpZV9hdXgpOw0KPiA+ID4gICAgICAgICAgICAgICAgIGlmIChyZXQpIHsN Cj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAidW5hYmxlIHRvIGVu YWJsZQ0KPiBwY2llX2F1eA0KPiA+ID4gY2xvY2tcbiIpOw0KPiA+ID4NCj4gPiBbUmljaGFyZCBa aHVdIFNvcnJ5LCBJIG1pZ2h0IGRvbid0IHVuZGVyc3RhbmQgd2hhdCdzIG1lYW5pbmcgb2YgdGhl DQo+IGNoYW5nZXMuDQo+ID4gV2hhdCdyZSB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBiZWZvcmUg YW5kIGFmdGVyIHRoZSBjaGFuZ2VzPw0KPiA+DQo+IA0KPiBUaGUgYWJvdmUgY2hhbmdlIHRvIHlv dXIgcGF0Y2ggJ29ubHknIGNhbGxzIGNsa19wcmVwYXJlX2VuYWJsZSBmb3INCj4gSU1YOE1NIGFu ZCBkb2VzIG5vdCB0b3VjaCBHUFIxNCBiaXRzIGFzIHRoZSBJTVg4TVEgY2FzZSBkb2VzDQo+IChi ZWNhdXNlIGFzIHlvdSBwb2ludCBvdXQgdGhlIEdQUjE0IGJpdHMgZGlmZmVyIGJldHdlZW4gSU1Y OE1NIGFuZA0KPiBJTVg4TVEpLg0KW1JpY2hhcmQgWmh1XSBHb3QgdGhhdCwgdGhhbmtzIGEgbG90 Lg0KDQo+IA0KPiA+ID4NCj4gPiA+IEFuZCB5b3VyICdbdjMsNS85XSBwaHk6IGZyZWVzY2FsZTog cGNpZTogaW5pdGlhbGl6ZSB0aGUgaW14OCBwY2llDQo+ID4gPiBzdGFuZGFsb25lIHBoeSBkcml2 ZXInIHNob3VsZCBoYXZlIHRoaXMgb24gdG9wIGFuZCBzcXVhc2hlZDoNCj4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1pbXg4bS1wY2llLmMNCj4gPiA+IGIv ZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtaW14OG0tcGNpZS5jDQo+ID4gPiBpbmRleCAz MTdjZjYxYmZmMzcuLjI3Y2EwYjlmMWQ5MiAxMDA2NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvcGh5 L2ZyZWVzY2FsZS9waHktZnNsLWlteDhtLXBjaWUuYw0KPiA+ID4gKysrIGIvZHJpdmVycy9waHkv ZnJlZXNjYWxlL3BoeS1mc2wtaW14OG0tcGNpZS5jDQo+ID4gPiBAQCAtNDMsNyArNDMsNyBAQA0K PiA+ID4gICNkZWZpbmUgSU1YOE1NX0dQUl9QQ0lFX0NNTl9SU1QgICAgICAgICAgICAgICAgQklU KDE4KQ0KPiA+ID4gICNkZWZpbmUgSU1YOE1NX0dQUl9QQ0lFX1BPV0VSX09GRiAgICAgIEJJVCgx NykNCj4gPiA+ICAjZGVmaW5lIElNWDhNTV9HUFJfUENJRV9TU0NfRU4gICAgICAgICBCSVQoMTYp DQo+ID4gPiAtI2RlZmluZSBJTVg4TU1fR1BSX1BDSUVfUkVGX1VTRV9QQUQgICAgQklUKDkpDQo+ ID4gPiArI2RlZmluZSBJTVg4TU1fR1BSX1BDSUVfQVVYX0VOX09WRVJSSURFICAgICAgICBCSVQo OSkNCj4gPiA+DQo+ID4gPiAgc3RydWN0IGlteDhfcGNpZV9waHkgew0KPiA+ID4gICAgICAgICB1 MzIgICAgICAgICAgICAgICAgICAgICByZWZjbGtfcGFkX21vZGU7DQo+ID4gPiBAQCAtNjMsMTIg KzYzLDEyIEBAIHN0YXRpYyBpbnQgaW14OF9wY2llX3BoeV9pbml0KHN0cnVjdCBwaHkgKnBoeSkN Cj4gPiA+ICAgICAgICAgcmVzZXRfY29udHJvbF9hc3NlcnQoaW14OF9waHktPnJlc2V0KTsNCj4g PiA+DQo+ID4gPiAgICAgICAgIHJlZ21hcF91cGRhdGVfYml0cyhpbXg4X3BoeS0+aW9tdXhjX2dw ciwNCj4gSU9NVVhDX0dQUjE0LA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgSU1Y OE1NX0dQUl9QQ0lFX1JFRl9VU0VfUEFELA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgaW14OF9waHktPnJlZmNsa19wYWRfbW9kZSA9PSAxID8NCj4gPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgIElNWDhNTV9HUFJfUENJRV9SRUZfVVNFX1BBRCA6DQo+IDApOw0KPiA+ID4g Kw0KPiBJTVg4TU1fR1BSX1BDSUVfQVVYX0VOX09WRVJSSURFLA0KPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgMCk7DQo+ID4gPiAgICAgICAgIHJlZ21hcF91cGRhdGVfYml0cyhpbXg4 X3BoeS0+aW9tdXhjX2dwciwNCj4gSU9NVVhDX0dQUjE0LA0KPiA+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgSU1YOE1NX0dQUl9QQ0lFX0FVWF9FTiwNCj4gPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgIElNWDhNTV9HUFJfUENJRV9BVVhfRU4pOw0KPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgaW14OF9waHktPnJlZmNsa19wYWRfbW9kZSA9PQ0KPiA+ID4gSU1YOF9Q Q0lFX1JFRkNMS19QQURfSU5QVVQgPw0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg SU1YOE1NX0dQUl9QQ0lFX0FVWF9FTiA6IDApOw0KPiA+ID4gICAgICAgICByZWdtYXBfdXBkYXRl X2JpdHMoaW14OF9waHktPmlvbXV4Y19ncHIsDQo+IElPTVVYQ19HUFIxNCwNCj4gPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElNWDhNTV9HUFJfUENJRV9QT1dFUl9PRkYsDQo+IDApOw0K PiA+ID4gICAgICAgICByZWdtYXBfdXBkYXRlX2JpdHMoaW14OF9waHktPmlvbXV4Y19ncHIsDQo+ IElPTVVYQ19HUFIxNCwgQEANCj4gPiA+IC03Niw3ICs3Niw3IEBAIHN0YXRpYyBpbnQgaW14OF9w Y2llX3BoeV9pbml0KHN0cnVjdCBwaHkgKnBoeSkNCj4gPiA+DQo+ID4gPiAgICAgICAgIHJlZ21h cF91cGRhdGVfYml0cyhpbXg4X3BoeS0+aW9tdXhjX2dwciwNCj4gSU9NVVhDX0dQUjE0LA0KPiA+ ID4NCj4gSU1YOE1NX0dQUl9QQ0lFX1JFRl9DTEtfU0VMLA0KPiA+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgaW14OF9waHktPnJlZmNsa19wYWRfbW9kZSA9PSAxID8NCj4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgIGlteDhfcGh5LT5yZWZjbGtfcGFkX21vZGUgPT0NCj4gPiA+ IElNWDhfUENJRV9SRUZDTEtfUEFEX0lOUFVUID8NCj4gPiA+DQo+IElNWDhNTV9HUFJfUENJRV9S RUZfQ0xLX0VYVCA6DQo+ID4gPg0KPiBJTVg4TU1fR1BSX1BDSUVfUkVGX0NMS19QTEwpOw0KPiA+ ID4gICAgICAgICB1c2xlZXBfcmFuZ2UoMTAwLCAyMDApOw0KPiA+ID4NCj4gPiA+IEkgdGVzdGVk IHRoaXMgYW5kIGl0IHdvcmtzIGJvdGggb24gaW14OG1tLWV2ayBhbmQgaW14OG1tLXZlbmljZS0q DQo+ID4gPiB3aGljaCBib3RoIGhhdmUgZXh0ZXJuYWwgY2xrZ2VuLg0KPiA+ID4NCj4gPiA+IEhv d2V2ZXIsIHRoZSBhYm92ZSBkb2VzIG5vdCBzZXQNCj4gSU1YOE1NX0dQUl9QQ0lFX0FVWF9FTl9P VkVSUklERSBmb3INCj4gPiA+IHRoZSBjYXNlIHdoZXJlIENMS1JFUSMgaXMgY29ubmVjdGVkIGFu ZCB0aHVzIHNob3VsZCBiZSB1c2VkIHNvIEkNCj4gPiA+IHRoaW5rIHdlIG5lZWQgdG8gYWRkIGEg cHJvcGVydHkgZm9yIHRoYXQgdG8gZGVmaW5lIGlmIENMS1JFUSMgaXMNCj4gPiA+IGhvb2tlZCB1 cCBvciBub3QuIEkgdGVzdGVkIGVuYWJsaW5nDQo+IElNWDhNTV9HUFJfUENJRV9BVVhfRU5fT1ZF UlJJREUNCj4gPiA+IGFuZCBhcyBleHBlY3RlZCB0aGF0IHdvcmtlZCBvbiB0aGUgaW14OG1tLWV2 ayB3aGljaCBob29rcyB1cA0KPiBDTEtSRVEjDQo+ID4gPiBidXQgbm90IGlteDhtbS12ZW5pY2Ug d2hpY2ggZG9lcyBub3QgaG9vayB1cCBDTEtSRVEjLg0KPiA+ID4NCj4gPiA+IFdoYXQgZG8geW91 IHRoaW5rIGFib3V0IGFkZGluZyBhIHByb3BlcnR5IGZvciB0aGlzPw0KPiA+IFtSaWNoYXJkIFpo dV0gRmlyc3Qgb2YgYWxsLCB0aGFua3MgYSBsb3QgZm9yIHlvdXIgaGVscCB0byBmaWd1cmUgb3V0 IHRoZQ0KPiBkZXRhaWxzLg0KPiA+IEFncmVlIHdpdGggeW91ciBwcm9wb3NhbC4NCj4gPiBPbmUg b3B0aW9uYWwgcHJvcGVydHkgImZzbCxjbGtyZXEtdW5zdXBwb3J0ZWQiIHdvdWxkIGJlIGFkZGVk IGZvciB0aGUNCj4gQ0xLUkVRIyBub3QgaG9va2VkIGNhc2UgbGF0ZXIuDQo+ID4NCj4gPiBkaWZm IC0tZ2l0DQo+ID4gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L2ZzbCxp bXg4LXBjaWUtcGh5LnlhbWwNCj4gPiBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9waHkvZnNsLGlteDgtcGNpZS1waHkueWFtbA0KPiA+IGluZGV4IDA5N2JhMmEyOGZiNC4uMjI2 NDQ1MjkyNGNjIDEwMDY0NA0KPiA+IC0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9waHkvZnNsLGlteDgtcGNpZS1waHkueWFtbA0KPiA+ICsrKyBiL0RvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvZnNsLGlteDgtcGNpZS1waHkueWFtbA0KPiA+IEBAIC01 OCw2ICs1OCwxMSBAQCBwcm9wZXJ0aWVzOg0KPiA+ICAgICAgJHJlZjogL3NjaGVtYXMvdHlwZXMu eWFtbCMvZGVmaW5pdGlvbnMvdWludDMyDQo+ID4gICAgICBkZWZhdWx0OiAwDQo+ID4NCj4gPiAr ICBmc2wsY2xrcmVxLXVuc3VwcG9ydGVkOg0KPiA+ICsgICAgdHlwZTogYm9vbGVhbg0KPiA+ICsg ICAgZGVzY3JpcHRpb246IEEgYm9vbGVhbiBwcm9wZXJ0eSB3aG9lcyBwcmVzZW5jZSBpbmRpY2F0 ZXMgdGhlDQo+IENMS1JFUSMNCj4gPiArICAgICAgc2lnbmFsIGlzbid0IHN1cHBvcnRlZCBpbiB0 aGUgSFcgYm9hcmQgZGVzaWduIChvcHRpb25hbA0KPiByZXF1aXJlZCkuDQo+ID4gKw0KPiANCj4g QSBib29sZWFuIHByb3BlcnR5IGluZGljYXRpbmcgdGhlIENMS1JFUSMgc2lnbmFsIGlzIG5vdCBz dXBwb3J0ZWQgaW4gdGhlDQo+IGJvYXJkIGRlc2lnbiAob3B0aW9uYWwpDQpbUmljaGFyZCBaaHVd IE9rYXksIHdvdWxkIGJlIHVwZGF0ZWQgbGF0ZXIuDQoNCj4gDQo+ID4NCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9waHkvZnJlZXNjYWxlL3BoeS1mc2wtaW14OG0tcGNpZS5jDQo+ID4gYi9kcml2 ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1pbXg4bS1wY2llLmMNCj4gPiBpbmRleCAwN2VlYTM5 MjgzZWQuLjRiNDQwMmVhZGRjYyAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL3BoeS9mcmVlc2Nh bGUvcGh5LWZzbC1pbXg4bS1wY2llLmMNCj4gPiArKysgYi9kcml2ZXJzL3BoeS9mcmVlc2NhbGUv cGh5LWZzbC1pbXg4bS1wY2llLmMNCj4gPiBAQCAtNDMsNyArNDMsNyBAQA0KPiA+ICAjZGVmaW5l IElNWDhNTV9HUFJfUENJRV9DTU5fUlNUICAgICAgICAgICAgICAgIEJJVCgxOCkNCj4gPiAgI2Rl ZmluZSBJTVg4TU1fR1BSX1BDSUVfUE9XRVJfT0ZGICAgICAgQklUKDE3KQ0KPiA+ICAjZGVmaW5l IElNWDhNTV9HUFJfUENJRV9TU0NfRU4gICAgICAgICBCSVQoMTYpDQo+ID4gLSNkZWZpbmUgSU1Y OE1NX0dQUl9QQ0lFX1JFRl9VU0VfUEFEICAgIEJJVCg5KQ0KPiA+ICsjZGVmaW5lIElNWDhNTV9H UFJfUENJRV9BVVhfRU5fT1ZFUlJJREUgICAgICAgIEJJVCg5KQ0KPiA+DQo+ID4gIHN0cnVjdCBp bXg4X3BjaWVfcGh5IHsNCj4gPiAgICAgICAgIHZvaWQgX19pb21lbSAgICAgICAgICAgICpiYXNl Ow0KPiA+IEBAIC01NCw2ICs1NCw3IEBAIHN0cnVjdCBpbXg4X3BjaWVfcGh5IHsNCj4gPiAgICAg ICAgIHUzMiAgICAgICAgICAgICAgICAgICAgIHJlZmNsa19wYWRfbW9kZTsNCj4gPiAgICAgICAg IHUzMiAgICAgICAgICAgICAgICAgICAgIHR4X2RlZW1waF9nZW4xOw0KPiA+ICAgICAgICAgdTMy ICAgICAgICAgICAgICAgICAgICAgdHhfZGVlbXBoX2dlbjI7DQo+ID4gKyAgICAgICBib29sICAg ICAgICAgICAgICAgICAgICBjbGtyZXFfdW51c2VkOw0KPiA+ICB9Ow0KPiA+DQo+ID4gIHN0YXRp YyBpbnQgaW14OF9wY2llX3BoeV9pbml0KHN0cnVjdCBwaHkgKnBoeSkgQEAgLTY1LDEzICs2Niwx NSBAQA0KPiA+IHN0YXRpYyBpbnQgaW14OF9wY2llX3BoeV9pbml0KHN0cnVjdCBwaHkgKnBoeSkN Cj4gPiAgICAgICAgIHJlc2V0X2NvbnRyb2xfYXNzZXJ0KGlteDhfcGh5LT5yZXNldCk7DQo+ID4N Cj4gPiAgICAgICAgIHBhZF9tb2RlID0gaW14OF9waHktPnJlZmNsa19wYWRfbW9kZTsNCj4gPiAr ICAgICAgIC8qIFNldCBBVVhfRU5fT1ZFUlJJREUgMSdiMCwgd2hlbiB0aGUgQ0xLUkVRIyBpc24n dA0KPiBob29rZWQgKi8NCj4gPiAgICAgICAgIHJlZ21hcF91cGRhdGVfYml0cyhpbXg4X3BoeS0+ aW9tdXhjX2dwciwNCj4gSU9NVVhDX0dQUjE0LA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgIElNWDhNTV9HUFJfUENJRV9SRUZfVVNFX1BBRCwNCj4gPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICBwYWRfbW9kZSA9PQ0KPiBJTVg4TU1fR1BSX1BDSUVfUkVGX1VTRV9QQUQgPw0KPiA+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgIElNWDhNTV9HUFJfUENJRV9SRUZfVVNFX1BBRCA6 DQo+IDApOw0KPiA+ICsNCj4gSU1YOE1NX0dQUl9QQ0lFX0FVWF9FTl9PVkVSUklERSwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICBpbXg4X3BoeS0+Y2xrcmVxX3VudXNlZCA/DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgMCA6DQo+IElNWDhNTV9HUFJfUENJRV9BVVhfRU5f T1ZFUlJJREUpOw0KPiA+ICAgICAgICAgcmVnbWFwX3VwZGF0ZV9iaXRzKGlteDhfcGh5LT5pb211 eGNfZ3ByLA0KPiBJT01VWENfR1BSMTQsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAg SU1YOE1NX0dQUl9QQ0lFX0FVWF9FTiwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICBJ TVg4TU1fR1BSX1BDSUVfQVVYX0VOKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBw YWRfbW9kZSA9PQ0KPiBJTVg4X1BDSUVfUkVGQ0xLX1BBRF9JTlBVVCA/DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgSU1YOE1NX0dQUl9QQ0lFX0FVWF9FTiA6IDApOw0KPiA+ICAgICAg ICAgcmVnbWFwX3VwZGF0ZV9iaXRzKGlteDhfcGh5LT5pb211eGNfZ3ByLA0KPiBJT01VWENfR1BS MTQsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgSU1YOE1NX0dQUl9QQ0lFX1BPV0VS X09GRiwNCj4gMCk7DQo+ID4gICAgICAgICByZWdtYXBfdXBkYXRlX2JpdHMoaW14OF9waHktPmlv bXV4Y19ncHIsDQo+IElPTVVYQ19HUFIxNCwgQEANCj4gPiAtMTcxLDYgKzE3NCwxMSBAQCBzdGF0 aWMgaW50IGlteDhfcGNpZV9waHlfcHJvYmUoc3RydWN0DQo+IHBsYXRmb3JtX2RldmljZSAqcGRl dikNCj4gPg0KPiAmaW14OF9waHktPnR4X2RlZW1waF9nZW4yKSkNCj4gPiAgICAgICAgICAgICAg ICAgaW14OF9waHktPnR4X2RlZW1waF9nZW4yID0gMDsNCj4gPg0KPiA+ICsgICAgICAgaWYgKG9m X3Byb3BlcnR5X3JlYWRfYm9vbChucCwgImZzbCxjbGtyZXEtdW5zdXBwb3J0ZWQiKSkNCj4gPiAr ICAgICAgICAgICAgICAgaW14OF9waHktPmNsa3JlcV91bnVzZWQgPSB0cnVlOw0KPiA+ICsgICAg ICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBpbXg4X3BoeS0+Y2xrcmVxX3VudXNlZCA9IGZh bHNlOw0KPiA+ICsNCj4gPiAgICAgICAgIGlteDhfcGh5LT5jbGsgPSBkZXZtX2Nsa19nZXQoZGV2 LCAicmVmIik7DQo+ID4gICAgICAgICBpZiAoSVNfRVJSKGlteDhfcGh5LT5jbGspKSB7DQo+ID4g ICAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBpbXggcGNpZSBwaHkg Y2xvY2tcbiIpOw0KPiA+DQo+IA0KPiBZZXMgdGhpcyBsb29rcyBnb29kIGFuZCB3b3JrcyBib3Ro IG9uIHZlbmljZSAod2l0aA0KPiAnZnNsLGNsa3JlcS11bnN1cHBvcnRlZCcgYWRkZWQpIGFuZCBv biBpbXg4bW0tZXZrLg0KPiANCj4gVGhhbmtzIGZvciB3b3JraW5nIHRocm91Z2ggdGhpcyB3aXRo IG1lIGFuZCBwbGVhc2UgY2MgbWUgb24geW91ciB2NA0KPiBzdWJtaXNzaW9uLg0KW1JpY2hhcmQg Wmh1XSBXZWxjb21lLiBJJ20gZ2xhZCB0byBoYXZlIHlvdXIgaGVscC4gVGhhbmtzIGEgbG90Lg0K PiANCj4gQmVzdCByZWdhcmRzLA0KPiANCj4gVGltDQo=