From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0205B43411; Thu, 30 Nov 2023 14:55:15 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7A02042E8B; Thu, 30 Nov 2023 14:55:15 +0100 (CET) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 4FD23402F0 for ; Thu, 30 Nov 2023 14:55:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1701352513; x=1732888513; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=oLGViuDUZ9KgFBjwYvpNvgNOdE3nYQLOu1zIlZQHZRA=; b=IK1PR/EEBXY5zVYjcgcqKv6VmwyqQPJxUBMZsPp7uJjpK4b0sreZQqaI 14xLOwcLT7i6LZH6Csjhbz3pyoPZ3b8NTfefDQE/15CtBmc89NLbxNO7B pPjAoBDz876mL6Y7NwGCaQqG74ebPrakdKQwcup30vM5zYQ6iqG/WcXmz qfSkru8acp+ViZDM523RlPNrf+mTykdbWTDK75LO7/TONs/ZccxltwT4H fZAjOb0vjm+oiKZA7omgl4kbBc7cqvPOWaJb4bvViOIgk5025t7JnsOjl MUD/kWhMJGVw8823OTfAK+l1p1ofO/dCiQAzZBaPZ/KM8Bv0tpvA+JRD5 A==; X-IronPort-AV: E=McAfee;i="6600,9927,10910"; a="457646920" X-IronPort-AV: E=Sophos;i="6.04,239,1695711600"; d="scan'208,217";a="457646920" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Nov 2023 05:55:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10910"; a="803704317" X-IronPort-AV: E=Sophos;i="6.04,239,1695711600"; d="scan'208,217";a="803704317" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga001.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 30 Nov 2023 05:55:11 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 30 Nov 2023 05:55:10 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 30 Nov 2023 05:55:10 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Thu, 30 Nov 2023 05:55:10 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.100) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Thu, 30 Nov 2023 05:55:10 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h8QRUJI8P6LMUN0CMDBJy+zBd7myM57R7a72COxBD4XrBoNsZexNzFQdfV2F+lEU1ZWHlwmm0BZcFI+aG6emdt37uZg+vpac7DwF/hfwBsNZtNHsHcY0iME8uoG4v+CbSGj0V4CDFmoHISse2lBmiZSNVsXXQCCBMs9hGG0FUx+uNYUhn+ZZiqmbHmRcuHu/bXMzOWkxt5+mAK3rA8s12KdhRfnvVKGLsVJ8d2KhavBUaSE9yi4VdcRWKiFKxknbCz5joaOYH/PTk7BWkYD93XFNy1Dx88ZyaW1y92N7cysbjs/ZY3/egXeGyMRBDfCmU8zlUVk3yqnDLLMeVWOlkg== 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=oLGViuDUZ9KgFBjwYvpNvgNOdE3nYQLOu1zIlZQHZRA=; b=FArXoHDHK5H+tBKjFBcuGaIrYwiE5EzVUor+XNXoRzn4d3kl8eHp9SF0vVNUlLqWB9woybCEzqsaDrJQvghkzE44C4w16Eevb7hRKWvppHedAr1eWRn/x5nNswOkLodkoBN39t0kN9Qhy55HTq/6MmJkF1R/6ejPgw6x9DR402btWo6FmWEw6ex6LbQ4s8Hr/Ww2fIssIG2Xq3OeSxvBhZV20GdBtz6/UiBzIV/8ttknXmhNuLAWijs8tAeEn78lVi6r52OGMUs6PEhOjfEPURu1yDkryVjWNUG71m//dkKA/E0nx87bDjMZByI7Uri3X55IFH0FRcxcU3naDM8hQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM6PR11MB3995.namprd11.prod.outlook.com (2603:10b6:5:6::12) by DS0PR11MB6349.namprd11.prod.outlook.com (2603:10b6:8:ce::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.23; Thu, 30 Nov 2023 13:55:08 +0000 Received: from DM6PR11MB3995.namprd11.prod.outlook.com ([fe80::7c33:4ba9:947f:d875]) by DM6PR11MB3995.namprd11.prod.outlook.com ([fe80::7c33:4ba9:947f:d875%4]) with mapi id 15.20.7046.024; Thu, 30 Nov 2023 13:55:07 +0000 From: "Koikkara Reeny, Shibin" To: "Tahhan, Maryam" , "ferruh.yigit@amd.com" , "stephen@networkplumber.org" , "lihuisong@huawei.com" , "fengchengwen@huawei.com" , "liuyonglong@huawei.com" CC: "dev@dpdk.org" Subject: RE: [v1] net/af_xdp: enable a sock path alongside use_cni Thread-Topic: [v1] net/af_xdp: enable a sock path alongside use_cni Thread-Index: AQHaI22UiKYic4MAX06499Pb1NlPqbCSwTWQgAAKogCAAAhpEA== Date: Thu, 30 Nov 2023 13:55:07 +0000 Message-ID: References: <20231130091332.2315572-1-mtahhan@redhat.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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR11MB3995:EE_|DS0PR11MB6349:EE_ x-ms-office365-filtering-correlation-id: 0a10872e-4a84-49a0-8f71-08dbf1abf672 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: e8Nbf2Z/p9m75JFqDXqtzoDy4ONV7DREM4dJYgF+gW+6n10oYJaNYghI2cQflWKX6Sgqn0JNKa3+YcFL9RTrfosJRA4sdpw9j5A8gNMWd5J3TjlPBeVQmEsn5j7iGf5eubMKHh+GKiHx9khPSR6wu890/dOBYGXx5tQOWfIhxCepA4gUddtSitMj08+h3U1LmQZsZ3OP5JCcdCoTZaM7AB8bAVLkzS/sv9WkBgxyw9lnFon3LmYRD23uC/wX+81tnQ8Y4sfMA4kzHElpY9z9uNEUErEyH02EhUjEe4v7Rr8wHmOKj4GaoghO4fmqFeIGRfj5yd6Qi/49SVsNOctFjqEKWuubjPQnbpRki5Pi3U9j8IFELslQvEB8DULHGZUFGaPuIZErS38slICCdq0O9ZA6Qj5bk91oy10JDbJiAI4uuvM2hDHEYNrT4dOcF3FnZQr+iiCVstpwb/OOQtGmHKahnZ9rpo7E6oQfL4Md7GQX5KYJDVTYFmGc9OfpowvaUdoBs3y80IWRXHoOmya+ebE8g6VWl4e/k5qKbpfkPZwpL+NB6ET7roSFml4XwPAFAbQcnxAXUUvZYr5/lyh490S50MkxGkN9+GTPbB/BxdhgK5TpiZMyyMHgF5rHiQot x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB3995.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39860400002)(136003)(366004)(346002)(376002)(396003)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(4326008)(38070700009)(38100700002)(86362001)(26005)(66946007)(64756008)(76116006)(110136005)(66476007)(66556008)(66446008)(316002)(2906002)(83380400001)(7696005)(53546011)(71200400001)(55016003)(9686003)(6506007)(9326002)(8936002)(8676002)(52536014)(82960400001)(33656002)(41300700001)(478600001)(122000001)(5660300002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SHUwZ21tY3pST1htL0ZSRTRzK1dYaUZxd2FDQjc4NjBqeTFVcmxWOWdaOE9r?= =?utf-8?B?SXJqaldwOG1UaEROd3doMEdiVDJXUk5kVDJMSXhtc2VGRVZPZ1RuQWt3blpT?= =?utf-8?B?Q3EyTzk5Zm85d1dsRUNRQjBmZFVyUEZVbUQrMy9xa1htdC9DM1NCUHJJaDJx?= =?utf-8?B?d080WTR6eE4xTnBKN2NmZlFJZVBoa2Fvc01iWWV4eit5MVZxSWFNTXNUWkJt?= =?utf-8?B?Tzc2dVlqa0Y2OFNSSzl3QVlhcVU4ZVVXc1hoVERIWmRybWVzM0pqWkZ3VUZC?= =?utf-8?B?clBlTytma0UyY3BRK1BCZHZERU5LZmpmekxiSVQrM1QxWjZZQlFLbDF0dndt?= =?utf-8?B?YUNwNXZibHNKTUFIdmlNaVNIK28xc2llOTRXZ0k3WldVY2JDNzdlRjlBWUYx?= =?utf-8?B?QXlsRUZXVWJ0ZzgyRU80ZFlWV215ZlA5cEZvdDd1cXZTRXl6WUdMWS9EQmNr?= =?utf-8?B?SWNhZm9FWHY3azBFS3c2SStJQmUvREhUTWZVU1lnSHU2V2pSRkFDVzBrTVpx?= =?utf-8?B?WWlyRmprMGY2RFRwSkVHc090SzgreVZVcmhXUElrKzZTQ21pdElORVFCZTRH?= =?utf-8?B?bHR2VmRvYlg5WWdGWE9CeDdVOVZZZENXdjBucVhyNkVHSURVaG5NZGk0ZFZm?= =?utf-8?B?OGd4Q0NRblhjOXdpSXJlYmFqckZlbXFXM0ZDcFVobTM0djZjTEEwK3JiN0ZJ?= =?utf-8?B?bUF2bGd2dm0xRzl4NVUyUWthT08vQUVrMFMyY0p3OWZvaGhmWnRtTjVPMHVY?= =?utf-8?B?MnZlOHZIVkdsZFExTmdhMzlhRzFaa3dNV3ptRVN4UGxCbWVIMXhOYnF2OWVW?= =?utf-8?B?b3dhckZSSE5lWUY3NlRyQXVuaEdmL0xsSWMrY29xeTJlQVZPcXFCSEg3b3dY?= =?utf-8?B?RnZUZXVMNnF5UDdjaWRCNUp3QlhwQlBvOE8wYms3RlVkSzJYcENSMThEZzlY?= =?utf-8?B?emU5RUxmeDVod0xoNnNtcUNwT0lYS2VBcWplV0E5MTVpY3RUWkJzTHJYS0hp?= =?utf-8?B?VmxBMmU1SGgyQ1h1bVFBRVRKa0kvVTl4MDJZelAvdjZFNmliQUE1em1ROE40?= =?utf-8?B?bW9mdWFYR2VYMlMzaXNMNjJObDlSSUppMW9NUmw0R1IxVFlIZlJvQlpwNWdl?= =?utf-8?B?Sit4aGJrMnIzM1N6OFNqbUExcFlZOU1CWTVoV0JKNDVUbzdFWGNvdWd3Q1dP?= =?utf-8?B?aXFacW8rT0VZcVExcVErRTNZYWE1R1BuZlVSaXYxd21VOXk3SVhpVk5QWXpp?= =?utf-8?B?TGJCbFNKZ0pzZ3RzNnRLaGdwN2M0UU5haUErVXU2ZDJRdUV2NkowRjZhcENv?= =?utf-8?B?ZE1jbXFoUy85UVNjZ1krWVNLSHZTM01VbHAyR05yNmE0UTQwaUhLMjF3OW0r?= =?utf-8?B?L2txVnIrODJZSEdNQzFSaVliejdCWC9IZEpIV2NrY1YrbUhzV0VueVB3RFFU?= =?utf-8?B?T2NUS2RuaUF4dWRsNUxZRmZVM3FZdkkweEhEWjk5dHlocS8xNm4yNkhpUC9V?= =?utf-8?B?dmx5ZU9Zdlk3RnkxVXQ0VXNWUjFKZFRZMm52dnJxZmcxWEljdTE4U0RhdXhL?= =?utf-8?B?R3FGRUxUWnBRQTBTcHZIbkJpakZ0QVEzdHJiejNnajFkeS9DbEJDNVF6bVYx?= =?utf-8?B?NDV5R1ZiMjFQM2tGQ2VpSEdtckRNa1piMzV3ZnJQV3FYUGttUHJYY000dHk0?= =?utf-8?B?ZzNWQUxJZlBLd0RKaGprUGJqMHlJTVF5QW9NM09oYnZFTlZmTjJsNWxFQmYy?= =?utf-8?B?aGFpQmIvbTVyeThMQ0N5YXlzaVZ2SU80OWd6eWdBMFRLbGxBalFzWDUrVlU2?= =?utf-8?B?Wm1GR3JDVGpXbVFYamNXL2FNNDNPTUtLQW41WlBlN1lPN0JzZXV6MVY5RExU?= =?utf-8?B?eHkzQm9zVTV3cFlqbTRQbDJuVm5vR1QxUlFjT0g1Ym9UQUN4RWhzVkpCb0Fy?= =?utf-8?B?UTEyKzk3eVYwWFBic0J1UVlRV05BcVlQdnBSSVB1d1N4bWdMaUlYakxvaS9y?= =?utf-8?B?V0I2UHVVdkpOTXAzem5IMnVuMjF2dnlTRUswV1MzQmZtUXNVSGw4TzlIWmt3?= =?utf-8?B?c3k5QTJwZnJsSmEySW0zSFo1ZFRkV3FZY3lHMTdOZkNybEhjRkludm5YS2Vo?= =?utf-8?B?b0NFTmNKNE5zQjFBNzZJVW5RVHpIMk9LY3BEanQ2WkRFZWM0VU1QK1dvMVhO?= =?utf-8?B?ZXc9PQ==?= Content-Type: multipart/alternative; boundary="_000_DM6PR11MB39951DD44B2061CFAD8EE5ECA282ADM6PR11MB3995namp_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3995.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0a10872e-4a84-49a0-8f71-08dbf1abf672 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2023 13:55:07.8884 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ZHpd+k2HBFGo+B5r6cg7sQwYqOYH+iSwbEUC/US8SH7yIBn0pjhA2lRNFY9Yoe0rlFBflwlSCfuwzOlWLFreWUr6Bg7+KaQil9AyHHPu7Tk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB6349 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --_000_DM6PR11MB39951DD44B2061CFAD8EE5ECA282ADM6PR11MB3995namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWFyeWFtLA0KDQpJIGhhdmUgcmVwbGllZCBpbmxpbmUuDQoNClJlZ2FyZHMsDQpTaGliaW4N Cg0KRnJvbTogTWFyeWFtIFRhaGhhbiA8bXRhaGhhbkByZWRoYXQuY29tPg0KU2VudDogVGh1cnNk YXksIE5vdmVtYmVyIDMwLCAyMDIzIDEyOjMzIFBNDQpUbzogS29pa2thcmEgUmVlbnksIFNoaWJp biA8c2hpYmluLmtvaWtrYXJhLnJlZW55QGludGVsLmNvbT47IGZlcnJ1aC55aWdpdEBhbWQuY29t OyBzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZzsgbGlodWlzb25nQGh1YXdlaS5jb207IGZlbmdj aGVuZ3dlbkBodWF3ZWkuY29tOyBsaXV5b25nbG9uZ0BodWF3ZWkuY29tDQpDYzogZGV2QGRwZGsu b3JnDQpTdWJqZWN0OiBSZTogW3YxXSBuZXQvYWZfeGRwOiBlbmFibGUgYSBzb2NrIHBhdGggYWxv bmdzaWRlIHVzZV9jbmkNCg0KSGkgU2hpYmluDQoNClRoYW5rcyBmb3IgdGhlIHJldmlldy4gQ29t bWVudHMgaW5saW5lLg0KDQpCUg0KTWFyeWFtDQoNCg0KT24gMzAvMTEvMjAyMyAxMjoxNCwgS29p a2thcmEgUmVlbnksIFNoaWJpbiB3cm90ZToNCg0KSGkgTWFyeWFtLA0KDQoNCg0KSSBoYXZlIGFk ZGVkIHNvbWUgc3VnZ2VzdGlvbiBiZWxvdy4NCg0KDQoNClJlZ3JhZHMsDQoNClNoaWJpbg0KW3Nu aXBdDQoNCg0KDQoNCk5PVElDRSk7DQoNCiAjZGVmaW5lIFVEU19NQVhfQ01EX0xFTiAgICAgICAg ICAgICAgICAgICAgICAgNjQNCg0KICNkZWZpbmUgVURTX01BWF9DTURfUkVTUCAgICAgICAgICAg ICAgMTI4DQoNCiAjZGVmaW5lIFVEU19YU0tfTUFQX0ZEX01TRyAgICAgICAgICAgICIveHNrX21h cF9mZCINCg0KLSNkZWZpbmUgVURTX1NPQ0sgICAgICAgICAgICAgICAgICAgICAgIi90bXAvYWZ4 ZHAuc29jayINCg0KICNkZWZpbmUgVURTX0NPTk5FQ1RfTVNHICAgICAgICAgICAgICAgICAgICAg ICAiL2Nvbm5lY3QiDQoNCiAjZGVmaW5lIFVEU19IT1NUX09LX01TRyAgICAgICAgICAgICAgICAg ICAgICAgIi9ob3N0X29rIg0KDQogI2RlZmluZSBVRFNfSE9TVF9OQUtfTVNHICAgICAgICAgICAg ICAiL2hvc3RfbmFrIg0KDQpAQCAtMTcxLDYgKzE3MCw3IEBAIHN0cnVjdCBwbWRfaW50ZXJuYWxz IHsNCg0KICAgICAgICBib29sIGN1c3RvbV9wcm9nX2NvbmZpZ3VyZWQ7DQoNCiAgICAgICAgYm9v bCBmb3JjZV9jb3B5Ow0KDQogICAgICAgIGJvb2wgdXNlX2NuaTsNCg0KKyAgICAgICBjaGFyIHNv Y2tfcGF0aFtQQVRIX01BWF07DQoNCkkgd291bGQgcmVjb21tZW5kIHVzaW5nIHZhcmlhYmxlIG5h bWUgYXMgInVkc19wYXRoIi4NCg0KDQoNCk5vIGlzc3VlcyBpbiByZW5hbWluZw0KDQoNCg0KDQoN Cg0KDQogIHN0cnVjdCBicGZfbWFwICptYXA7DQoNCg0KDQogIHN0cnVjdCBydGVfZXRoZXJfYWRk ciBldGhfYWRkcjsNCg0KQEAgLTE5MSw2ICsxOTEsNyBAQCBzdHJ1Y3QgcG1kX3Byb2Nlc3NfcHJp dmF0ZSB7DQoNCiAjZGVmaW5lIEVUSF9BRl9YRFBfQlVER0VUX0FSRyAgICAgICAgICAgICAgICAg ICJidXN5X2J1ZGdldCINCg0KICNkZWZpbmUgRVRIX0FGX1hEUF9GT1JDRV9DT1BZX0FSRyAgICAg ICAgICAgICAgImZvcmNlX2NvcHkiDQoNCiAjZGVmaW5lIEVUSF9BRl9YRFBfVVNFX0NOSV9BUkcg ICAgICAgICAgICAgICAgICJ1c2VfY25pIg0KDQorI2RlZmluZSBFVEhfQUZfWERQX1NPQ0tfQVJH ICAgICAgICAgICAgICAgICAgICAic29jayINCg0KVG8gbWFrZSBpdCBjbGVhciB3b3VsZCAgcmVj b21tZW5kIHVzaW5nICJzb2NrX3BhdGgiIGFuZCBhbHNvIEVUSF9BRl9YRFBfQ05JX1VEU19QQVRI X0FSRyBvciBFVEhfQUZfWERQX1NPQ0tfUEFUSF9BUkcNCg0KDQoNCk5vIGlzc3VlcyBpbiByZW5h bWluZw0KDQoNCg0KLg0KDQoNCg0KDQoNCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZhbGlk X2FyZ3VtZW50c1tdID0gew0KDQogIEVUSF9BRl9YRFBfSUZBQ0VfQVJHLA0KDQpAQCAtMjAxLDYg KzIwMiw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmFsaWRfYXJndW1lbnRzW10gPSB7 DQoNCiAgRVRIX0FGX1hEUF9CVURHRVRfQVJHLA0KDQogIEVUSF9BRl9YRFBfRk9SQ0VfQ09QWV9B UkcsDQoNCiAgRVRIX0FGX1hEUF9VU0VfQ05JX0FSRywNCg0KKyBFVEhfQUZfWERQX1NPQ0tfQVJH LA0KDQogIE5VTEwNCg0KIH07DQoNCg0KDQpAQCAtMTM1MSw3ICsxMzUzLDcgQEAgY29uZmlndXJl X3ByZWZlcnJlZF9idXN5X3BvbGwoc3RydWN0DQoNCnBrdF9yeF9xdWV1ZSAqcnhxKSAgfQ0KDQoN Cg0KIHN0YXRpYyBpbnQNCg0KLWluaXRfdWRzX3NvY2soc3RydWN0IHNvY2thZGRyX3VuICpzZXJ2 ZXIpDQoNCitpbml0X3Vkc19zb2NrKHN0cnVjdCBzb2NrYWRkcl91biAqc2VydmVyLCBjb25zdCBj aGFyICpzb2NrX3BhdGgpDQoNCiB7DQoNCiAgaW50IHNvY2s7DQoNCg0KDQpAQCAtMTM2Miw3ICsx MzY0LDcgQEAgaW5pdF91ZHNfc29jayhzdHJ1Y3Qgc29ja2FkZHJfdW4gKnNlcnZlcikNCg0KICB9 DQoNCg0KDQogIHNlcnZlci0+c3VuX2ZhbWlseSA9IEFGX1VOSVg7DQoNCi0gc3RybGNweShzZXJ2 ZXItPnN1bl9wYXRoLCBVRFNfU09DSywgc2l6ZW9mKHNlcnZlci0+c3VuX3BhdGgpKTsNCg0KKyBz dHJsY3B5KHNlcnZlci0+c3VuX3BhdGgsIHNvY2tfcGF0aCwgc2l6ZW9mKHNlcnZlci0+c3VuX3Bh dGgpKTsNCg0KDQoNCiAgaWYgKGNvbm5lY3Qoc29jaywgKHN0cnVjdCBzb2NrYWRkciAqKXNlcnZl ciwgc2l6ZW9mKHN0cnVjdA0KDQpzb2NrYWRkcl91bikpIDwgMCkgew0KDQogICAgICAgICAgY2xv c2Uoc29jayk7DQoNCkBAIC0xMzgyLDcgKzEzODQsNyBAQCBzdHJ1Y3QgbXNnX2ludGVybmFsIHsg IH07DQoNCg0KDQogc3RhdGljIGludA0KDQotc2VuZF9tc2coaW50IHNvY2ssIGNoYXIgKnJlcXVl c3QsIGludCAqZmQpDQoNCitzZW5kX21zZyhpbnQgc29jaywgY2hhciAqcmVxdWVzdCwgaW50ICpm ZCwgY29uc3QgY2hhciAqc29ja19wYXRoKQ0KDQogew0KDQogIGludCBzbmQ7DQoNCiAgc3RydWN0 IGlvdmVjIGlvdjsNCg0KQEAgLTEzOTMsNyArMTM5NSw3IEBAIHNlbmRfbXNnKGludCBzb2NrLCBj aGFyICpyZXF1ZXN0LCBpbnQgKmZkKQ0KDQoNCg0KICBtZW1zZXQoJmRzdCwgMCwgc2l6ZW9mKGRz dCkpOw0KDQogIGRzdC5zdW5fZmFtaWx5ID0gQUZfVU5JWDsNCg0KLSBzdHJsY3B5KGRzdC5zdW5f cGF0aCwgVURTX1NPQ0ssIHNpemVvZihkc3Quc3VuX3BhdGgpKTsNCg0KKyBzdHJsY3B5KGRzdC5z dW5fcGF0aCwgc29ja19wYXRoLCBzaXplb2YoZHN0LnN1bl9wYXRoKSk7DQoNCg0KDQogIC8qIElu aXRpYWxpemUgbWVzc2FnZSBoZWFkZXIgc3RydWN0dXJlICovDQoNCiAgbWVtc2V0KCZtc2doLCAw LCBzaXplb2YobXNnaCkpOw0KDQpAQCAtMTQ3MSw3ICsxNDczLDcgQEAgcmVhZF9tc2coaW50IHNv Y2ssIGNoYXIgKnJlc3BvbnNlLCBzdHJ1Y3QNCg0Kc29ja2FkZHJfdW4gKnMsIGludCAqZmQpDQoN Cg0KDQogc3RhdGljIGludA0KDQogbWFrZV9yZXF1ZXN0X2NuaShpbnQgc29jaywgc3RydWN0IHNv Y2thZGRyX3VuICpzZXJ2ZXIsIGNoYXIgKnJlcXVlc3QsDQoNCi0gICAgICAgICAgaW50ICpyZXFf ZmQsIGNoYXIgKnJlc3BvbnNlLCBpbnQgKm91dF9mZCkNCg0KKyAgICAgICAgICBpbnQgKnJlcV9m ZCwgY2hhciAqcmVzcG9uc2UsIGludCAqb3V0X2ZkLCBjb25zdCBjaGFyDQoNCipzb2NrX3BhdGgp DQoNCiB7DQoNCiAgaW50IHJ2YWw7DQoNCg0KDQpAQCAtMTQ4Myw3ICsxNDg1LDcgQEAgbWFrZV9y ZXF1ZXN0X2NuaShpbnQgc29jaywgc3RydWN0IHNvY2thZGRyX3VuDQoNCipzZXJ2ZXIsIGNoYXIg KnJlcXVlc3QsDQoNCiAgaWYgKHJlcV9mZCA9PSBOVUxMKQ0KDQogICAgICAgICAgcnZhbCA9IHdy aXRlKHNvY2ssIHJlcXVlc3QsIHN0cmxlbihyZXF1ZXN0KSk7DQoNCiAgZWxzZQ0KDQotICAgICAg ICAgcnZhbCA9IHNlbmRfbXNnKHNvY2ssIHJlcXVlc3QsIHJlcV9mZCk7DQoNCisgICAgICAgICBy dmFsID0gc2VuZF9tc2coc29jaywgcmVxdWVzdCwgcmVxX2ZkLCBzb2NrX3BhdGgpOw0KDQoNCg0K ICBpZiAocnZhbCA8IDApIHsNCg0KICAgICAgICAgIEFGX1hEUF9MT0coRVJSLCAiV3JpdGUgZXJy b3IgJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7IEBADQoNCi0xNTA3LDcgKzE1MDksNyBAQCBjaGVj a19yZXNwb25zZShjaGFyICpyZXNwb25zZSwgY2hhciAqZXhwX3Jlc3AsIGxvbmcNCg0Kc2l6ZSkg IH0NCg0KDQoNCiBzdGF0aWMgaW50DQoNCi1nZXRfY25pX2ZkKGNoYXIgKmlmX25hbWUpDQoNCitn ZXRfY25pX2ZkKGNoYXIgKmlmX25hbWUsIGNvbnN0IGNoYXIgKnNvY2tfcGF0aCkNCg0KIHsNCg0K ICBjaGFyIHJlcXVlc3RbVURTX01BWF9DTURfTEVOXSwNCg0KcmVzcG9uc2VbVURTX01BWF9DTURf UkVTUF07DQoNCiAgY2hhciBob3N0bmFtZVtNQVhfTE9OR19PUFRfU1pdLA0KDQpleHBfcmVzcFtV RFNfTUFYX0NNRF9SRVNQXTsgQEAgLTE1MjAsMTQgKzE1MjIsMTQgQEANCg0KZ2V0X2NuaV9mZChj aGFyICppZl9uYW1lKQ0KDQogICAgICAgICAgcmV0dXJuIC0xOw0KDQoNCg0KICBtZW1zZXQoJnNl cnZlciwgMCwgc2l6ZW9mKHNlcnZlcikpOw0KDQotIHNvY2sgPSBpbml0X3Vkc19zb2NrKCZzZXJ2 ZXIpOw0KDQorIHNvY2sgPSBpbml0X3Vkc19zb2NrKCZzZXJ2ZXIsIHNvY2tfcGF0aCk7DQoNCiAg aWYgKHNvY2sgPCAwKQ0KDQogICAgICAgICAgcmV0dXJuIC0xOw0KDQoNCg0KICAvKiBJbml0aWF0 ZXMgaGFuZHNoYWtlIHRvIENOSSBzZW5kOiAvY29ubmVjdCxob3N0bmFtZSAqLw0KDQogIHNucHJp bnRmKHJlcXVlc3QsIHNpemVvZihyZXF1ZXN0KSwgIiVzLCVzIiwgVURTX0NPTk5FQ1RfTVNHLA0K DQpob3N0bmFtZSk7DQoNCiAgbWVtc2V0KHJlc3BvbnNlLCAwLCBzaXplb2YocmVzcG9uc2UpKTsN Cg0KLSBpZiAobWFrZV9yZXF1ZXN0X2NuaShzb2NrLCAmc2VydmVyLCByZXF1ZXN0LCBOVUxMLCBy ZXNwb25zZSwNCg0KJm91dF9mZCkgPCAwKSB7DQoNCisgaWYgKG1ha2VfcmVxdWVzdF9jbmkoc29j aywgJnNlcnZlciwgcmVxdWVzdCwgTlVMTCwgcmVzcG9uc2UsDQoNCiZvdXRfZmQsDQoNCitzb2Nr X3BhdGgpIDwgMCkgew0KDQpXaHkgZG8gd2UgbmVlZCB0byBwYXNzICJzb2NrX3BhdGgiIGhlcmUg YXMgd2UgaGF2ZSBhbHJlYWR5IGNvbm5lY3RlZCB0aGUgc29jayB3aXRoIHNvY2tfcGF0aCBpbiBp bml0X3Vkc19zb2NrKCk/DQoNCg0KDQppdCdzIHVzZWQgaW4gdGhlIHNlbmRfbXNnKCkgZnVuY3Rp b24gaW5zaWRlIG1ha2VfcmVxdWVzdF9jbmkoKS4gSW4gdGhlIG9yaWdpbmFsIGltcGxlbWVudGF0 aW9uIG9mIHNlbmRfbXNnIHVzZWQgYSAjZGVmaW5lZCB2YWx1ZSB3aGljaCBpcyB3aHkgaXQgd2Fz bid0IG5lZWRlZCBiZWZvcmUuIHNvIGFzIGZhciBhcyBJIGNhbiB0ZWxsIHNlbmRfbXNnIHN0aWxs IG5lZWRzIHRoYXQgcGF0aC4gYnV0IEknbSBvcGVuIHRvIHN1Z2dlc3Rpb25zLg0KDQpTb3JyeSBt eSBtaXN0YWtlLiBZb3Ugd2lsbCBuZWVkIHRvIHBhc3MgdGhlIGFyZ3VtZW50Lg0KDQoNCg0KDQoN CiAgICAgICAgICBBRl9YRFBfTE9HKEVSUiwgIkVycm9yIGluIHByb2Nlc3NpbmcgY21kIFslc11c biIsDQoNCnJlcXVlc3QpOw0KDQogICAgICAgICAgZ290byBlcnJfY2xvc2U7DQoNCiAgfQ0KDQpA QCAtMTU0MSw3ICsxNTQzLDcgQEAgZ2V0X2NuaV9mZChjaGFyICppZl9uYW1lKQ0KDQogIC8qIFJl cXVlc3QgZm9yICIvdmVyc2lvbiIgKi8NCg0KICBzdHJsY3B5KHJlcXVlc3QsIFVEU19WRVJTSU9O X01TRywgVURTX01BWF9DTURfTEVOKTsNCg0KICBtZW1zZXQocmVzcG9uc2UsIDAsIHNpemVvZihy ZXNwb25zZSkpOw0KDQotIGlmIChtYWtlX3JlcXVlc3RfY25pKHNvY2ssICZzZXJ2ZXIsIHJlcXVl c3QsIE5VTEwsIHJlc3BvbnNlLA0KDQomb3V0X2ZkKSA8IDApIHsNCg0KKyBpZiAobWFrZV9yZXF1 ZXN0X2NuaShzb2NrLCAmc2VydmVyLCByZXF1ZXN0LCBOVUxMLCByZXNwb25zZSwNCg0KJm91dF9m ZCwNCg0KK3NvY2tfcGF0aCkgPCAwKSB7DQoNClNhbWUgcXVlc3Rpb24gYXMgYWJvdmUuDQoNCg0K DQpQbGVhc2Ugc2VlIHByZXZpb3VzIGFucw0KDQoNCg0KDQoNCg0KDQogICAgICAgICAgQUZfWERQ X0xPRyhFUlIsICJFcnJvciBpbiBwcm9jZXNzaW5nIGNtZCBbJXNdXG4iLA0KDQpyZXF1ZXN0KTsN Cg0KICAgICAgICAgIGdvdG8gZXJyX2Nsb3NlOw0KDQogIH0NCg0KQEAgLTE1NDksNyArMTU1MSw3 IEBAIGdldF9jbmlfZmQoY2hhciAqaWZfbmFtZSkNCg0KICAvKiBSZXF1ZXN0IGZvciBmaWxlIGRl c2NyaXB0b3IgZm9yIG5ldGRldiBuYW1lKi8NCg0KICBzbnByaW50ZihyZXF1ZXN0LCBzaXplb2Yo cmVxdWVzdCksICIlcywlcyIsDQoNClVEU19YU0tfTUFQX0ZEX01TRywgaWZfbmFtZSk7DQoNCiAg bWVtc2V0KHJlc3BvbnNlLCAwLCBzaXplb2YocmVzcG9uc2UpKTsNCg0KLSBpZiAobWFrZV9yZXF1 ZXN0X2NuaShzb2NrLCAmc2VydmVyLCByZXF1ZXN0LCBOVUxMLCByZXNwb25zZSwNCg0KJm91dF9m ZCkgPCAwKSB7DQoNCisgaWYgKG1ha2VfcmVxdWVzdF9jbmkoc29jaywgJnNlcnZlciwgcmVxdWVz dCwgTlVMTCwgcmVzcG9uc2UsDQoNCiZvdXRfZmQsDQoNCitzb2NrX3BhdGgpIDwgMCkgew0KDQoN Cg0KU2FtZSBxdWVzdGlvbiBhcyBhYm92ZS4NCg0KDQoNClBsZWFzZSBzZWUgcHJldmlvdXMgYW5z DQoNCg0KDQoNCg0KDQoNCiAgICAgICAgICBBRl9YRFBfTE9HKEVSUiwgIkVycm9yIGluIHByb2Nl c3NpbmcgY21kIFslc11cbiIsDQoNCnJlcXVlc3QpOw0KDQogICAgICAgICAgZ290byBlcnJfY2xv c2U7DQoNCiAgfQ0KDQpAQCAtMTU3MSw3ICsxNTczLDcgQEAgZ2V0X2NuaV9mZChjaGFyICppZl9u YW1lKQ0KDQogIC8qIEluaXRpYXRlIGNsb3NlIGNvbm5lY3Rpb24gKi8NCg0KICBzdHJsY3B5KHJl cXVlc3QsIFVEU19GSU5fTVNHLCBVRFNfTUFYX0NNRF9MRU4pOw0KDQogIG1lbXNldChyZXNwb25z ZSwgMCwgc2l6ZW9mKHJlc3BvbnNlKSk7DQoNCi0gaWYgKG1ha2VfcmVxdWVzdF9jbmkoc29jaywg JnNlcnZlciwgcmVxdWVzdCwgTlVMTCwgcmVzcG9uc2UsDQoNCiZvdXRfZmQpIDwgMCkgew0KDQor IGlmIChtYWtlX3JlcXVlc3RfY25pKHNvY2ssICZzZXJ2ZXIsIHJlcXVlc3QsIE5VTEwsIHJlc3Bv bnNlLA0KDQomb3V0X2ZkLA0KDQorc29ja19wYXRoKSA8IDApIHsNCg0KDQoNClNhbWUgcXVlc3Rp b24gYXMgYWJvdmUuDQoNCg0KDQpQbGVhc2Ugc2VlIHByZXZpb3VzIGFucw0KDQoNCg0KDQoNCg0K DQogICAgICAgICAgQUZfWERQX0xPRyhFUlIsICJFcnJvciBpbiBwcm9jZXNzaW5nIGNtZCBbJXNd XG4iLA0KDQpyZXF1ZXN0KTsNCg0KICAgICAgICAgIGdvdG8gZXJyX2Nsb3NlOw0KDQogIH0NCg0K QEAgLTE2OTgsNyArMTcwMCw3IEBAIHhza19jb25maWd1cmUoc3RydWN0IHBtZF9pbnRlcm5hbHMg KmludGVybmFscywNCg0Kc3RydWN0IHBrdF9yeF9xdWV1ZSAqcnhxLA0KDQogICAgICAgICAgaW50 IGVyciwgZmQsIG1hcF9mZDsNCg0KDQoNCiAgICAgICAgICAvKiBnZXQgc29ja2V0IGZkIGZyb20g Q05JIHBsdWdpbiAqLw0KDQotICAgICAgICAgbWFwX2ZkID0gZ2V0X2NuaV9mZChpbnRlcm5hbHMt PmlmX25hbWUpOw0KDQorICAgICAgICAgbWFwX2ZkID0gZ2V0X2NuaV9mZChpbnRlcm5hbHMtPmlm X25hbWUsIGludGVybmFscy0NCg0Kc29ja19wYXRoKTsNCg0KICAgICAgICAgIGlmIChtYXBfZmQg PCAwKSB7DQoNCiAgICAgICAgICAgICAgICAgIEFGX1hEUF9MT0coRVJSLCAiRmFpbGVkIHRvIHJl Y2VpdmUgQ05JIHBsdWdpbg0KDQpmZFxuIik7DQoNCiAgICAgICAgICAgICAgICAgIGdvdG8gb3V0 X3hzazsNCg0KQEAgLTIwMjMsNyArMjAyNSw4IEBAIHhkcF9nZXRfY2hhbm5lbHNfaW5mbyhjb25z dCBjaGFyICppZl9uYW1lLCBpbnQNCg0KKm1heF9xdWV1ZXMsICBzdGF0aWMgaW50ICBwYXJzZV9w YXJhbWV0ZXJzKHN0cnVjdCBydGVfa3ZhcmdzICprdmxpc3QsIGNoYXINCg0KKmlmX25hbWUsIGlu dCAqc3RhcnRfcXVldWUsDQoNCiAgICAgICAgICAgaW50ICpxdWV1ZV9jbnQsIGludCAqc2hhcmVk X3VtZW0sIGNoYXIgKnByb2dfcGF0aCwNCg0KLSAgICAgICAgICBpbnQgKmJ1c3lfYnVkZ2V0LCBp bnQgKmZvcmNlX2NvcHksIGludCAqdXNlX2NuaSkNCg0KKyAgICAgICAgICBpbnQgKmJ1c3lfYnVk Z2V0LCBpbnQgKmZvcmNlX2NvcHksIGludCAqdXNlX2NuaSwNCg0KKyAgICAgICAgICBjaGFyICpz b2NrX3BhdGgpDQoNCiB7DQoNCiAgaW50IHJldDsNCg0KDQoNCkBAIC0yMDY5LDYgKzIwNzIsMTEg QEAgcGFyc2VfcGFyYW1ldGVycyhzdHJ1Y3QgcnRlX2t2YXJncyAqa3ZsaXN0LCBjaGFyDQoNCipp Zl9uYW1lLCBpbnQgKnN0YXJ0X3F1ZXVlLA0KDQogIGlmIChyZXQgPCAwKQ0KDQogICAgICAgICAg Z290byBmcmVlX2t2bGlzdDsNCg0KDQoNCisgcmV0ID0gcnRlX2t2YXJnc19wcm9jZXNzKGt2bGlz dCwgRVRIX0FGX1hEUF9TT0NLX0FSRywNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAmcGFy c2VfcHJvZ19hcmcsIHNvY2tfcGF0aCk7DQoNCg0KDQpQYXJzZV9wcm9nX2FyZyBkb2VzIDIgdGhp bmdzIGNvcHkgdGhlIHNvY2tfYXJnIHZhbHVlIGFuZCBhbHNvIGNoZWNrIHRoZSBhY2Nlc3MgdG8g dGhlIHNvY2tldC4NCg0KQ2hlY2tpbmcgYWNjZXNzIGhlcmUgaGFzIGEgY2hhbmNlIG9mIGNhdXNp bmcgcmFpc2UgY29uZGl0aW9uIHNvIEkgd291bGQgcmVjb21tZW5kIHRvIHNraXAgdGhpcyBjaGVj ayBoZXJlIGFzIHRoaXMgd2lsbCBiZSB0YWtlbiBjYXJlIGluIHRoZSBpbml0X3Vkc19zb2NrKCku DQoNCg0KDQpJZiB0aGVyZSdzIGFuIGlzc3VlIGhlcmUgcHJvY2Vzc2luZyBpcyBhYmFuZG9uZWQu IElzIGl0IG5vdCBiZXR0ZXIgdG8gY2F0Y2ggYW55IGlzc3VlIGVhcmx5IG9uPyBJJ20gbm90IHN1 cmUgSSB1bmRlcnN0YW5kIHRoZSByYWNlIGNvbmRpdGlvbj8NCg0KUmFjZSBjb25kaXRpb24gaWYg YWZfeGRwIGFwcGxpY2F0aW9uIHBvZCBzdGFydCBieSBhIGJpdCBvZiBvdXQgb2Ygc3luYyBiZWZv cmUgdGhlIFVTRCBzZXJ2ZXIgdGhyZWFkIHN0YXJ0LiBTbyB3ZSBjYW4gd2FpdCB0aWxsIHRoZSBp bml0aWFsaXphdGlvbiBwcm9jZXNzLiBJdCBpcyBhIHN1Z2dlc3Rpb24uDQoNCg0KDQoNCg0KKyBp ZiAocmV0IDwgMCkNCg0KKyAgICAgICAgIGdvdG8gZnJlZV9rdmxpc3Q7DQoNCisNCg0KIGZyZWVf a3ZsaXN0Og0KDQogIHJ0ZV9rdmFyZ3NfZnJlZShrdmxpc3QpOw0KDQogIHJldHVybiByZXQ7DQoN CkBAIC0yMTA4LDcgKzIxMTYsNyBAQCBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfZGV2ICogIGluaXRf aW50ZXJuYWxzKHN0cnVjdA0KDQpydGVfdmRldl9kZXZpY2UgKmRldiwgY29uc3QgY2hhciAqaWZf bmFtZSwNCg0KICAgICAgICAgaW50IHN0YXJ0X3F1ZXVlX2lkeCwgaW50IHF1ZXVlX2NudCwgaW50 IHNoYXJlZF91bWVtLA0KDQogICAgICAgICBjb25zdCBjaGFyICpwcm9nX3BhdGgsIGludCBidXN5 X2J1ZGdldCwgaW50IGZvcmNlX2NvcHksDQoNCi0gICAgICAgIGludCB1c2VfY25pKQ0KDQorICAg ICAgICBpbnQgdXNlX2NuaSwgY29uc3QgY2hhciAqc29ja19wYXRoKQ0KDQogew0KDQogIGNvbnN0 IGNoYXIgKm5hbWUgPSBydGVfdmRldl9kZXZpY2VfbmFtZShkZXYpOw0KDQogIGNvbnN0IHVuc2ln bmVkIGludCBudW1hX25vZGUgPSBkZXYtPmRldmljZS5udW1hX25vZGU7IEBAIC0NCg0KMjEzOCw2 ICsyMTQ2LDcgQEAgaW5pdF9pbnRlcm5hbHMoc3RydWN0IHJ0ZV92ZGV2X2RldmljZSAqZGV2LCBj b25zdCBjaGFyDQoNCippZl9uYW1lLA0KDQogIGludGVybmFscy0+c2hhcmVkX3VtZW0gPSBzaGFy ZWRfdW1lbTsNCg0KICBpbnRlcm5hbHMtPmZvcmNlX2NvcHkgPSBmb3JjZV9jb3B5Ow0KDQogIGlu dGVybmFscy0+dXNlX2NuaSA9IHVzZV9jbmk7DQoNCisgc3RybGNweShpbnRlcm5hbHMtPnNvY2tf cGF0aCwgc29ja19wYXRoLCBQQVRIX01BWCk7DQoNCg0KDQogIGlmICh4ZHBfZ2V0X2NoYW5uZWxz X2luZm8oaWZfbmFtZSwgJmludGVybmFscy0+bWF4X3F1ZXVlX2NudCwNCg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmludGVybmFscy0+Y29tYmluZWRfcXVldWVfY250KSkgeyBAQCAtDQoN CjIzMjgsNiArMjMzNyw3IEBAIHJ0ZV9wbWRfYWZfeGRwX3Byb2JlKHN0cnVjdCBydGVfdmRldl9k ZXZpY2UgKmRldikNCg0KICBpbnQgYnVzeV9idWRnZXQgPSAtMSwgcmV0Ow0KDQogIGludCBmb3Jj ZV9jb3B5ID0gMDsNCg0KICBpbnQgdXNlX2NuaSA9IDA7DQoNCisgY2hhciBzb2NrX3BhdGhbUEFU SF9NQVhdID0geydcMCd9Ow0KDQogIHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiA9IE5VTEw7 DQoNCiAgY29uc3QgY2hhciAqbmFtZSA9IHJ0ZV92ZGV2X2RldmljZV9uYW1lKGRldik7DQoNCg0K DQpAQCAtMjM3MCw3ICsyMzgwLDcgQEAgcnRlX3BtZF9hZl94ZHBfcHJvYmUoc3RydWN0IHJ0ZV92 ZGV2X2RldmljZQ0KDQoqZGV2KQ0KDQoNCg0KICBpZiAocGFyc2VfcGFyYW1ldGVycyhrdmxpc3Qs IGlmX25hbWUsICZ4c2tfc3RhcnRfcXVldWVfaWR4LA0KDQogICAgICAgICAgICAgICAgICAgICAg ICZ4c2tfcXVldWVfY250LCAmc2hhcmVkX3VtZW0sIHByb2dfcGF0aCwNCg0KLSAgICAgICAgICAg ICAgICAgICAgICAmYnVzeV9idWRnZXQsICZmb3JjZV9jb3B5LCAmdXNlX2NuaSkgPCAwKSB7DQoN CisgICAgICAgICAgICAgICAgICAgICAgJmJ1c3lfYnVkZ2V0LCAmZm9yY2VfY29weSwgJnVzZV9j bmksDQoNCnNvY2tfcGF0aCkgPCAwKSB7DQoNCiAgICAgICAgICBBRl9YRFBfTE9HKEVSUiwgIklu dmFsaWQga3ZhcmdzIHZhbHVlXG4iKTsNCg0KICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KDQog IH0NCg0KQEAgLTIzODcsNiArMjM5NywxMyBAQCBydGVfcG1kX2FmX3hkcF9wcm9iZShzdHJ1Y3Qg cnRlX3ZkZXZfZGV2aWNlDQoNCipkZXYpDQoNCiAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOw0KDQogIH0NCg0KDQoNCisgaWYgKHVzZV9jbmkgJiYgIXN0cm5sZW4oc29ja19wYXRoLCBQ QVRIX01BWCkpIHsNCg0KKyAgICAgICAgIEFGX1hEUF9MT0coRVJSLCAiV2hlbiAnJXMnIHBhcmFt ZXRlciBpcyB1c2VkLCAnJXMnIG11c3QNCg0KYWxzbyBiZSBwcm92aWRlZFxuIiwNCg0KKyAgICAg ICAgICAgICAgICAgRVRIX0FGX1hEUF9VU0VfQ05JX0FSRywNCg0KRVRIX0FGX1hEUF9TT0NLX0FS Ryk7DQoNCisgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KDQorIH0NCg0KKw0KDQor DQoNCiAgaWYgKHN0cmxlbihpZl9uYW1lKSA9PSAwKSB7DQoNCiAgICAgICAgICBBRl9YRFBfTE9H KEVSUiwgIk5ldHdvcmsgaW50ZXJmYWNlIG11c3QgYmUNCg0Kc3BlY2lmaWVkXG4iKTsNCg0KICAg ICAgICAgIHJldHVybiAtRUlOVkFMOw0KDQpAQCAtMjQxMCw3ICsyNDI3LDcgQEAgcnRlX3BtZF9h Zl94ZHBfcHJvYmUoc3RydWN0IHJ0ZV92ZGV2X2RldmljZQ0KDQoqZGV2KQ0KDQoNCg0KICBldGhf ZGV2ID0gaW5pdF9pbnRlcm5hbHMoZGV2LCBpZl9uYW1lLCB4c2tfc3RhcnRfcXVldWVfaWR4LA0K DQogICAgICAgICAgICAgICAgICAgICAgICAgIHhza19xdWV1ZV9jbnQsIHNoYXJlZF91bWVtLCBw cm9nX3BhdGgsDQoNCi0gICAgICAgICAgICAgICAgICAgICAgICAgYnVzeV9idWRnZXQsIGZvcmNl X2NvcHksIHVzZV9jbmkpOw0KDQorICAgICAgICAgICAgICAgICAgICAgICAgIGJ1c3lfYnVkZ2V0 LCBmb3JjZV9jb3B5LCB1c2VfY25pLA0KDQpzb2NrX3BhdGgpOw0KDQogIGlmIChldGhfZGV2ID09 IE5VTEwpIHsNCg0KICAgICAgICAgIEFGX1hEUF9MT0coRVJSLCAiRmFpbGVkIHRvIGluaXQgaW50 ZXJuYWxzXG4iKTsNCg0KICAgICAgICAgIHJldHVybiAtMTsNCg0KQEAgLTI0NzEsNCArMjQ4OCw1 IEBADQoNClJURV9QTURfUkVHSVNURVJfUEFSQU1fU1RSSU5HKG5ldF9hZl94ZHAsDQoNCiAgICAg ICAgICAgICAgICAgICAgICAgICJ4ZHBfcHJvZz08c3RyaW5nPiAiDQoNCiAgICAgICAgICAgICAg ICAgICAgICAgICJidXN5X2J1ZGdldD08aW50PiAiDQoNCiAgICAgICAgICAgICAgICAgICAgICAg ICJmb3JjZV9jb3B5PTxpbnQ+ICINCg0KLSAgICAgICAgICAgICAgICAgICAgICAgInVzZV9jbmk9 PGludD4gIik7DQoNCisgICAgICAgICAgICAgICAgICAgICAgICJ1c2VfY25pPTxpbnQ+ICINCg0K KyAgICAgICAgICAgICAgICAgICAgICAgInNvY2s9PHN0cmluZz4gIik7DQoNCi0tDQoNCjIuNDEu MA0KDQoNCg0KDQo= --_000_DM6PR11MB39951DD44B2061CFAD8EE5ECA282ADM6PR11MB3995namp_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDb25zb2xhczsNCglwYW5vc2UtMToyIDEx IDYgOSAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWws IGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGluOw0KCWZvbnQtc2l6ZTox MS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQ0KcHJlDQoJe21zby1z dHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiSFRNTCBQcmVmb3JtYXR0ZWQgQ2hh ciI7DQoJbWFyZ2luOjBpbjsNCglmb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3Vy aWVyIE5ldyI7fQ0Kc3Bhbi5IVE1MUHJlZm9ybWF0dGVkQ2hhcg0KCXttc28tc3R5bGUtbmFtZToi SFRNTCBQcmVmb3JtYXR0ZWQgQ2hhciI7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1z dHlsZS1saW5rOiJIVE1MIFByZWZvcm1hdHRlZCI7DQoJZm9udC1mYW1pbHk6IkNvbnNvbGFzIixz ZXJpZjt9DQpzcGFuLkVtYWlsU3R5bGUyMQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBs eTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0 O30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQt c2l6ZToxMC4wcHQ7DQoJbXNvLWxpZ2F0dXJlczpub25lO30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0K CXtzaXplOjguNWluIDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4waW4gMS4waW4gMS4waW47fQ0K ZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1b aWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1h eD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0K PG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9 IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9k eSBsYW5nPSJFTi1JRSIgbGluaz0iIzA1NjNDMSIgdmxpbms9IiM5NTRGNzIiIHN0eWxlPSJ3b3Jk LXdyYXA6YnJlYWstd29yZCI+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5IaSBN YXJ5YW0sPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g c3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bh bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0ibXNvLWZhcmVhc3QtbGFu Z3VhZ2U6RU4tVVMiPkkgaGF2ZSByZXBsaWVkIGlubGluZS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0ibXNvLWZhcmVhc3QtbGFuZ3VhZ2U6 RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxzcGFuIHN0eWxlPSJtc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+UmVnYXJkcyw8bzpwPjwv bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0ibXNvLWZh cmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlNoaWJpbjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJtc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+ PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9y ZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxk aXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4w cHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48 c3BhbiBsYW5nPSJFTi1VUyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIj4gTWFy eWFtIFRhaGhhbiAmbHQ7bXRhaGhhbkByZWRoYXQuY29tJmd0Ow0KPGJyPg0KPGI+U2VudDo8L2I+ IFRodXJzZGF5LCBOb3ZlbWJlciAzMCwgMjAyMyAxMjozMyBQTTxicj4NCjxiPlRvOjwvYj4gS29p a2thcmEgUmVlbnksIFNoaWJpbiAmbHQ7c2hpYmluLmtvaWtrYXJhLnJlZW55QGludGVsLmNvbSZn dDs7IGZlcnJ1aC55aWdpdEBhbWQuY29tOyBzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZzsgbGlo dWlzb25nQGh1YXdlaS5jb207IGZlbmdjaGVuZ3dlbkBodWF3ZWkuY29tOyBsaXV5b25nbG9uZ0Bo dWF3ZWkuY29tPGJyPg0KPGI+Q2M6PC9iPiBkZXZAZHBkay5vcmc8YnI+DQo8Yj5TdWJqZWN0Ojwv Yj4gUmU6IFt2MV0gbmV0L2FmX3hkcDogZW5hYmxlIGEgc29jayBwYXRoIGFsb25nc2lkZSB1c2Vf Y25pPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi PkhpIFNoaWJpbjxicj4NCjxicj4NClRoYW5rcyBmb3IgdGhlIHJldmlldy4gQ29tbWVudHMgaW5s aW5lLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij5CUjxicj4NCk1hcnlhbTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiPk9uIDMwLzExLzIwMjMgMTI6MTQsIEtvaWtrYXJhIFJlZW55LCBTaGli aW4gd3JvdGU6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJn aW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPHByZT5IaSBNYXJ5YW0sPG86cD48 L286cD48L3ByZT4NCjxwcmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+SSBoYXZlIGFk ZGVkIHNvbWUgc3VnZ2VzdGlvbiBiZWxvdy48bzpwPjwvbzpwPjwvcHJlPg0KPHByZT48bzpwPiZu YnNwOzwvbzpwPjwvcHJlPg0KPHByZT5SZWdyYWRzLDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPlNo aWJpbjxvOnA+PC9vOnA+PC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij5bc25pcF08YnI+DQo8YnI+DQo8bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJt YXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPHByZT48bzpwPiZuYnNwOzwv bzpwPjwvcHJlPg0KPHByZT5OT1RJQ0UpOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAjZGVmaW5l IFVEU19NQVhfQ01EX0xFTiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA2NDxvOnA+PC9vOnA+PC9wcmU+DQo8 cHJlPiAjZGVmaW5lIFVEU19NQVhfQ01EX1JFU1AmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgMTI4PG86 cD48L286cD48L3ByZT4NCjxwcmU+ICNkZWZpbmUgVURTX1hTS19NQVBfRkRfTVNHJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 ICZxdW90Oy94c2tfbWFwX2ZkJnF1b3Q7PG86cD48L286cD48L3ByZT4NCjxwcmU+LSNkZWZpbmUg VURTX1NPQ0smbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgJnF1b3Q7L3RtcC9hZnhkcC5zb2NrJnF1b3Q7PG86cD48L286 cD48L3ByZT4NCjxwcmU+ICNkZWZpbmUgVURTX0NPTk5FQ1RfTVNHJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 ICZxdW90Oy9jb25uZWN0JnF1b3Q7PG86cD48L286cD48L3ByZT4NCjxwcmU+ICNkZWZpbmUgVURT X0hPU1RfT0tfTVNHJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZxdW90Oy9ob3N0X29rJnF1b3Q7PG86cD48 L286cD48L3ByZT4NCjxwcmU+ICNkZWZpbmUgVURTX0hPU1RfTkFLX01TRyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyAmcXVvdDsvaG9zdF9uYWsmcXVvdDs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5AQCAt MTcxLDYgKzE3MCw3IEBAIHN0cnVjdCBwbWRfaW50ZXJuYWxzIHs8bzpwPjwvbzpwPjwvcHJlPg0K PHByZT4gJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGJvb2wgY3VzdG9tX3By b2dfY29uZmlndXJlZDs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IGJvb2wgZm9yY2VfY29weTs8bzpwPjwvbzpwPjwvcHJlPg0KPHBy ZT4gJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGJvb2wgdXNlX2NuaTs8bzpw PjwvbzpwPjwvcHJlPg0KPHByZT4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IGNoYXIgc29ja19wYXRoW1BBVEhfTUFYXTs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5JIHdvdWxk IHJlY29tbWVuZCB1c2luZyB2YXJpYWJsZSBuYW1lIGFzICZxdW90O3Vkc19wYXRoJnF1b3Q7Ljxv OnA+PC9vOnA+PC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cD48bzpwPiZuYnNwOzwvbzpwPjwvcD4N CjxwPk5vIGlzc3VlcyBpbiByZW5hbWluZzxvOnA+PC9vOnA+PC9wPg0KPHA+PG86cD4mbmJzcDs8 L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90 dG9tOjUuMHB0Ij4NCjxwcmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+PG86cD4mbmJz cDs8L286cD48L3ByZT4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdp bi1ib3R0b206NS4wcHQiPg0KPHByZT4gIHN0cnVjdCBicGZfbWFwICptYXA7PG86cD48L286cD48 L3ByZT4NCjxwcmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+ICBzdHJ1Y3QgcnRlX2V0 aGVyX2FkZHIgZXRoX2FkZHI7PG86cD48L286cD48L3ByZT4NCjxwcmU+QEAgLTE5MSw2ICsxOTEs NyBAQCBzdHJ1Y3QgcG1kX3Byb2Nlc3NfcHJpdmF0ZSB7PG86cD48L286cD48L3ByZT4NCjxwcmU+ ICNkZWZpbmUgRVRIX0FGX1hEUF9CVURHRVRfQVJHJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZxdW90O2J1c3lfYnVkZ2V0JnF1b3Q7PG86cD48L286cD48L3By ZT4NCjxwcmU+ICNkZWZpbmUgRVRIX0FGX1hEUF9GT1JDRV9DT1BZX0FSRyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyAmcXVvdDtmb3JjZV9jb3B5JnF1b3Q7PG86cD48L286cD48L3ByZT4NCjxwcmU+ICNk ZWZpbmUgRVRIX0FGX1hEUF9VU0VfQ05JX0FSRyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyAmcXVvdDt1c2VfY25pJnF1b3Q7PG86cD48L286cD48L3ByZT4NCjxwcmU+KyNk ZWZpbmUgRVRIX0FGX1hEUF9TT0NLX0FSRyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmcXVvdDtzb2NrJnF1b3Q7PG86cD48L286cD48L3By ZT4NCjwvYmxvY2txdW90ZT4NCjxwcmU+VG8gbWFrZSBpdCBjbGVhciB3b3VsZCZuYnNwOyByZWNv bW1lbmQgdXNpbmcgJnF1b3Q7c29ja19wYXRoJnF1b3Q7IGFuZCBhbHNvIEVUSF9BRl9YRFBfQ05J X1VEU19QQVRIX0FSRyBvciBFVEhfQUZfWERQX1NPQ0tfUEFUSF9BUkc8bzpwPjwvbzpwPjwvcHJl Pg0KPC9ibG9ja3F1b3RlPg0KPHA+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cD5ObyBpc3N1ZXMg aW4gcmVuYW1pbmc8bzpwPjwvbzpwPjwvcD4NCjxwPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGJs b2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8 cHJlPi48bzpwPjwvbzpwPjwvcHJlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPGJs b2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8 cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8cHJlPiBzdGF0aWMgY29uc3QgY2hhciAqIGNv bnN0IHZhbGlkX2FyZ3VtZW50c1tdID0gezxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgRVRIX0FG X1hEUF9JRkFDRV9BUkcsPG86cD48L286cD48L3ByZT4NCjxwcmU+QEAgLTIwMSw2ICsyMDIsNyBA QCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZhbGlkX2FyZ3VtZW50c1tdID0gezxvOnA+PC9v OnA+PC9wcmU+DQo8cHJlPiAgRVRIX0FGX1hEUF9CVURHRVRfQVJHLDxvOnA+PC9vOnA+PC9wcmU+ DQo8cHJlPiAgRVRIX0FGX1hEUF9GT1JDRV9DT1BZX0FSRyw8bzpwPjwvbzpwPjwvcHJlPg0KPHBy ZT4gIEVUSF9BRl9YRFBfVVNFX0NOSV9BUkcsPG86cD48L286cD48L3ByZT4NCjxwcmU+KyBFVEhf QUZfWERQX1NPQ0tfQVJHLDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgTlVMTDxvOnA+PC9vOnA+ PC9wcmU+DQo8cHJlPiB9OzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+ PC9wcmU+DQo8cHJlPkBAIC0xMzUxLDcgKzEzNTMsNyBAQCBjb25maWd1cmVfcHJlZmVycmVkX2J1 c3lfcG9sbChzdHJ1Y3Q8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5wa3RfcnhfcXVldWUgKnJ4cSkm bmJzcDsgfTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8 cHJlPiBzdGF0aWMgaW50PG86cD48L286cD48L3ByZT4NCjxwcmU+LWluaXRfdWRzX3NvY2soc3Ry dWN0IHNvY2thZGRyX3VuICpzZXJ2ZXIpPG86cD48L286cD48L3ByZT4NCjxwcmU+K2luaXRfdWRz X3NvY2soc3RydWN0IHNvY2thZGRyX3VuICpzZXJ2ZXIsIGNvbnN0IGNoYXIgKnNvY2tfcGF0aCk8 bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gezxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgaW50IHNv Y2s7PG86cD48L286cD48L3ByZT4NCjxwcmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+ QEAgLTEzNjIsNyArMTM2NCw3IEBAIGluaXRfdWRzX3NvY2soc3RydWN0IHNvY2thZGRyX3VuICpz ZXJ2ZXIpPG86cD48L286cD48L3ByZT4NCjxwcmU+ICB9PG86cD48L286cD48L3ByZT4NCjxwcmU+ PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+ICBzZXJ2ZXItJmd0O3N1bl9mYW1pbHkgPSBB Rl9VTklYOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPi0gc3RybGNweShzZXJ2ZXItJmd0O3N1bl9w YXRoLCBVRFNfU09DSywgc2l6ZW9mKHNlcnZlci0mZ3Q7c3VuX3BhdGgpKTs8bzpwPjwvbzpwPjwv cHJlPg0KPHByZT4rIHN0cmxjcHkoc2VydmVyLSZndDtzdW5fcGF0aCwgc29ja19wYXRoLCBzaXpl b2Yoc2VydmVyLSZndDtzdW5fcGF0aCkpOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5i c3A7PC9vOnA+PC9wcmU+DQo8cHJlPiAgaWYgKGNvbm5lY3Qoc29jaywgKHN0cnVjdCBzb2NrYWRk ciAqKXNlcnZlciwgc2l6ZW9mKHN0cnVjdDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPnNvY2thZGRy X3VuKSkgJmx0OyAwKSB7PG86cD48L286cD48L3ByZT4NCjxwcmU+ICZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjbG9zZShzb2NrKTs8bzpwPjwvbzpwPjwv cHJlPg0KPHByZT5AQCAtMTM4Miw3ICsxMzg0LDcgQEAgc3RydWN0IG1zZ19pbnRlcm5hbCB7Jm5i c3A7IH07PG86cD48L286cD48L3ByZT4NCjxwcmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxw cmU+IHN0YXRpYyBpbnQ8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4tc2VuZF9tc2coaW50IHNvY2ss IGNoYXIgKnJlcXVlc3QsIGludCAqZmQpPG86cD48L286cD48L3ByZT4NCjxwcmU+K3NlbmRfbXNn KGludCBzb2NrLCBjaGFyICpyZXF1ZXN0LCBpbnQgKmZkLCBjb25zdCBjaGFyICpzb2NrX3BhdGgp PG86cD48L286cD48L3ByZT4NCjxwcmU+IHs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gIGludCBz bmQ7PG86cD48L286cD48L3ByZT4NCjxwcmU+ICBzdHJ1Y3QgaW92ZWMgaW92OzxvOnA+PC9vOnA+ PC9wcmU+DQo8cHJlPkBAIC0xMzkzLDcgKzEzOTUsNyBAQCBzZW5kX21zZyhpbnQgc29jaywgY2hh ciAqcmVxdWVzdCwgaW50ICpmZCk8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT48bzpwPiZuYnNwOzwv bzpwPjwvcHJlPg0KPHByZT4gIG1lbXNldCgmYW1wO2RzdCwgMCwgc2l6ZW9mKGRzdCkpOzxvOnA+ PC9vOnA+PC9wcmU+DQo8cHJlPiAgZHN0LnN1bl9mYW1pbHkgPSBBRl9VTklYOzxvOnA+PC9vOnA+ PC9wcmU+DQo8cHJlPi0gc3RybGNweShkc3Quc3VuX3BhdGgsIFVEU19TT0NLLCBzaXplb2YoZHN0 LnN1bl9wYXRoKSk7PG86cD48L286cD48L3ByZT4NCjxwcmU+KyBzdHJsY3B5KGRzdC5zdW5fcGF0 aCwgc29ja19wYXRoLCBzaXplb2YoZHN0LnN1bl9wYXRoKSk7PG86cD48L286cD48L3ByZT4NCjxw cmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+ICAvKiBJbml0aWFsaXplIG1lc3NhZ2Ug aGVhZGVyIHN0cnVjdHVyZSAqLzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgbWVtc2V0KCZhbXA7 bXNnaCwgMCwgc2l6ZW9mKG1zZ2gpKTs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5AQCAtMTQ3MSw3 ICsxNDczLDcgQEAgcmVhZF9tc2coaW50IHNvY2ssIGNoYXIgKnJlc3BvbnNlLCBzdHJ1Y3Q8bzpw PjwvbzpwPjwvcHJlPg0KPHByZT5zb2NrYWRkcl91biAqcywgaW50ICpmZCk8bzpwPjwvbzpwPjwv cHJlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPHByZT4gc3RhdGljIGludDxvOnA+ PC9vOnA+PC9wcmU+DQo8cHJlPiBtYWtlX3JlcXVlc3RfY25pKGludCBzb2NrLCBzdHJ1Y3Qgc29j a2FkZHJfdW4gKnNlcnZlciwgY2hhciAqcmVxdWVzdCw8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4t Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICBpbnQgKnJl cV9mZCwgY2hhciAqcmVzcG9uc2UsIGludCAqb3V0X2ZkKTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJl PismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgIGludCAq cmVxX2ZkLCBjaGFyICpyZXNwb25zZSwgaW50ICpvdXRfZmQsIGNvbnN0IGNoYXI8bzpwPjwvbzpw PjwvcHJlPg0KPHByZT4qc29ja19wYXRoKTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiB7PG86cD48 L286cD48L3ByZT4NCjxwcmU+ICBpbnQgcnZhbDs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT48bzpw PiZuYnNwOzwvbzpwPjwvcHJlPg0KPHByZT5AQCAtMTQ4Myw3ICsxNDg1LDcgQEAgbWFrZV9yZXF1 ZXN0X2NuaShpbnQgc29jaywgc3RydWN0IHNvY2thZGRyX3VuPG86cD48L286cD48L3ByZT4NCjxw cmU+KnNlcnZlciwgY2hhciAqcmVxdWVzdCw8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gIGlmIChy ZXFfZmQgPT0gTlVMTCk8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJ2YWwgPSB3cml0ZShzb2NrLCByZXF1ZXN0 LCBzdHJsZW4ocmVxdWVzdCkpOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgZWxzZTxvOnA+PC9v OnA+PC9wcmU+DQo8cHJlPi0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgcnZhbCA9IHNlbmRfbXNnKHNvY2ssIHJlcXVlc3QsIHJlcV9mZCk7PG86cD48L286 cD48L3ByZT4NCjxwcmU+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyBydmFsID0gc2VuZF9tc2coc29jaywgcmVxdWVzdCwgcmVxX2ZkLCBzb2NrX3BhdGgp OzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8cHJlPiAg aWYgKHJ2YWwgJmx0OyAwKSB7PG86cD48L286cD48L3ByZT4NCjxwcmU+ICZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBBRl9YRFBfTE9HKEVSUiwgJnF1b3Q7 V3JpdGUgZXJyb3IgJXNcbiZxdW90Oywgc3RyZXJyb3IoZXJybm8pKTsgQEA8bzpwPjwvbzpwPjwv cHJlPg0KPHByZT4tMTUwNyw3ICsxNTA5LDcgQEAgY2hlY2tfcmVzcG9uc2UoY2hhciAqcmVzcG9u c2UsIGNoYXIgKmV4cF9yZXNwLCBsb25nPG86cD48L286cD48L3ByZT4NCjxwcmU+c2l6ZSkmbmJz cDsgfTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8cHJl PiBzdGF0aWMgaW50PG86cD48L286cD48L3ByZT4NCjxwcmU+LWdldF9jbmlfZmQoY2hhciAqaWZf bmFtZSk8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4rZ2V0X2NuaV9mZChjaGFyICppZl9uYW1lLCBj b25zdCBjaGFyICpzb2NrX3BhdGgpPG86cD48L286cD48L3ByZT4NCjxwcmU+IHs8bzpwPjwvbzpw PjwvcHJlPg0KPHByZT4gIGNoYXIgcmVxdWVzdFtVRFNfTUFYX0NNRF9MRU5dLDxvOnA+PC9vOnA+ PC9wcmU+DQo8cHJlPnJlc3BvbnNlW1VEU19NQVhfQ01EX1JFU1BdOzxvOnA+PC9vOnA+PC9wcmU+ DQo8cHJlPiAgY2hhciBob3N0bmFtZVtNQVhfTE9OR19PUFRfU1pdLDxvOnA+PC9vOnA+PC9wcmU+ DQo8cHJlPmV4cF9yZXNwW1VEU19NQVhfQ01EX1JFU1BdOyBAQCAtMTUyMCwxNCArMTUyMiwxNCBA QDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPmdldF9jbmlfZmQoY2hhciAqaWZfbmFtZSk8bzpwPjwv bzpwPjwvcHJlPg0KPHByZT4gJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7IHJldHVybiAtMTs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT48bzpwPiZuYnNwOzwv bzpwPjwvcHJlPg0KPHByZT4gIG1lbXNldCgmYW1wO3NlcnZlciwgMCwgc2l6ZW9mKHNlcnZlcikp OzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPi0gc29jayA9IGluaXRfdWRzX3NvY2soJmFtcDtzZXJ2 ZXIpOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPisgc29jayA9IGluaXRfdWRzX3NvY2soJmFtcDtz ZXJ2ZXIsIHNvY2tfcGF0aCk7PG86cD48L286cD48L3ByZT4NCjxwcmU+ICBpZiAoc29jayAmbHQ7 IDApPG86cD48L286cD48L3ByZT4NCjxwcmU+ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gLTE7PG86cD48L286cD48L3ByZT4NCjxwcmU+PG86 cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+ICAvKiBJbml0aWF0ZXMgaGFuZHNoYWtlIHRvIENO SSBzZW5kOiAvY29ubmVjdCxob3N0bmFtZSAqLzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgc25w cmludGYocmVxdWVzdCwgc2l6ZW9mKHJlcXVlc3QpLCAmcXVvdDslcywlcyZxdW90OywgVURTX0NP Tk5FQ1RfTVNHLDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPmhvc3RuYW1lKTs8bzpwPjwvbzpwPjwv cHJlPg0KPHByZT4gIG1lbXNldChyZXNwb25zZSwgMCwgc2l6ZW9mKHJlc3BvbnNlKSk7PG86cD48 L286cD48L3ByZT4NCjxwcmU+LSBpZiAobWFrZV9yZXF1ZXN0X2NuaShzb2NrLCAmYW1wO3NlcnZl ciwgcmVxdWVzdCwgTlVMTCwgcmVzcG9uc2UsPG86cD48L286cD48L3ByZT4NCjxwcmU+JmFtcDtv dXRfZmQpICZsdDsgMCkgezxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPisgaWYgKG1ha2VfcmVxdWVz dF9jbmkoc29jaywgJmFtcDtzZXJ2ZXIsIHJlcXVlc3QsIE5VTEwsIHJlc3BvbnNlLDxvOnA+PC9v OnA+PC9wcmU+DQo8cHJlPiZhbXA7b3V0X2ZkLDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPitzb2Nr X3BhdGgpICZsdDsgMCkgezxvOnA+PC9vOnA+PC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cHJlPldo eSBkbyB3ZSBuZWVkIHRvIHBhc3MgJnF1b3Q7c29ja19wYXRoJnF1b3Q7IGhlcmUgYXMgd2UgaGF2 ZSBhbHJlYWR5IGNvbm5lY3RlZCB0aGUgc29jayB3aXRoIHNvY2tfcGF0aCBpbiBpbml0X3Vkc19z b2NrKCk/PG86cD48L286cD48L3ByZT4NCjwvYmxvY2txdW90ZT4NCjxwPjxvOnA+Jm5ic3A7PC9v OnA+PC9wPg0KPHA+aXQncyB1c2VkIGluIHRoZSBzZW5kX21zZygpIGZ1bmN0aW9uIGluc2lkZSBt YWtlX3JlcXVlc3RfY25pKCkuIEluIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBvZiBzZW5k X21zZyB1c2VkIGEgI2RlZmluZWQgdmFsdWUgd2hpY2ggaXMgd2h5IGl0IHdhc24ndCBuZWVkZWQg YmVmb3JlLiBzbyBhcyBmYXIgYXMgSSBjYW4gdGVsbCBzZW5kX21zZyBzdGlsbCBuZWVkcyB0aGF0 IHBhdGguIGJ1dCBJJ20gb3BlbiB0byBzdWdnZXN0aW9ucy48bzpwPjwvbzpwPjwvcD4NCjxwPlNv cnJ5IG15IG1pc3Rha2UuIFlvdSB3aWxsIG5lZWQgdG8gcGFzcyB0aGUgYXJndW1lbnQuPG86cD48 L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90 dG9tOjUuMHB0Ij4NCjxwcmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+PHNwYW4gc3R5 bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z LXNlcmlmIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3ByZT4NCjxibG9ja3F1b3RlIHN0eWxl PSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPHByZT4gJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IEFGX1hEUF9MT0coRVJSLCAm cXVvdDtFcnJvciBpbiBwcm9jZXNzaW5nIGNtZCBbJXNdXG4mcXVvdDssPG86cD48L286cD48L3By ZT4NCjxwcmU+cmVxdWVzdCk7PG86cD48L286cD48L3ByZT4NCjxwcmU+ICZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBnb3RvIGVycl9jbG9zZTs8bzpwPjwv bzpwPjwvcHJlPg0KPHByZT4gIH08bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5AQCAtMTU0MSw3ICsx NTQzLDcgQEAgZ2V0X2NuaV9mZChjaGFyICppZl9uYW1lKTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJl PiAgLyogUmVxdWVzdCBmb3IgJnF1b3Q7L3ZlcnNpb24mcXVvdDsgKi88bzpwPjwvbzpwPjwvcHJl Pg0KPHByZT4gIHN0cmxjcHkocmVxdWVzdCwgVURTX1ZFUlNJT05fTVNHLCBVRFNfTUFYX0NNRF9M RU4pOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgbWVtc2V0KHJlc3BvbnNlLCAwLCBzaXplb2Yo cmVzcG9uc2UpKTs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4tIGlmIChtYWtlX3JlcXVlc3RfY25p KHNvY2ssICZhbXA7c2VydmVyLCByZXF1ZXN0LCBOVUxMLCByZXNwb25zZSw8bzpwPjwvbzpwPjwv cHJlPg0KPHByZT4mYW1wO291dF9mZCkgJmx0OyAwKSB7PG86cD48L286cD48L3ByZT4NCjxwcmU+ KyBpZiAobWFrZV9yZXF1ZXN0X2NuaShzb2NrLCAmYW1wO3NlcnZlciwgcmVxdWVzdCwgTlVMTCwg cmVzcG9uc2UsPG86cD48L286cD48L3ByZT4NCjxwcmU+JmFtcDtvdXRfZmQsPG86cD48L286cD48 L3ByZT4NCjxwcmU+K3NvY2tfcGF0aCkgJmx0OyAwKSB7PG86cD48L286cD48L3ByZT4NCjwvYmxv Y2txdW90ZT4NCjxwcmU+U2FtZSBxdWVzdGlvbiBhcyBhYm92ZS48bzpwPjwvbzpwPjwvcHJlPg0K PC9ibG9ja3F1b3RlPg0KPHA+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cD5QbGVhc2Ugc2VlIHBy ZXZpb3VzIGFuczxvOnA+PC9vOnA+PC9wPg0KPHA+PG86cD4mbmJzcDs8L286cD48L3A+DQo8Ymxv Y2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxw cmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4N CjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQi Pg0KPHByZT4gJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IEFGX1hEUF9MT0coRVJSLCAmcXVvdDtFcnJvciBpbiBwcm9jZXNzaW5nIGNtZCBbJXNdXG4mcXVv dDssPG86cD48L286cD48L3ByZT4NCjxwcmU+cmVxdWVzdCk7PG86cD48L286cD48L3ByZT4NCjxw cmU+ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBnb3Rv IGVycl9jbG9zZTs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gIH08bzpwPjwvbzpwPjwvcHJlPg0K PHByZT5AQCAtMTU0OSw3ICsxNTUxLDcgQEAgZ2V0X2NuaV9mZChjaGFyICppZl9uYW1lKTxvOnA+ PC9vOnA+PC9wcmU+DQo8cHJlPiAgLyogUmVxdWVzdCBmb3IgZmlsZSBkZXNjcmlwdG9yIGZvciBu ZXRkZXYgbmFtZSovPG86cD48L286cD48L3ByZT4NCjxwcmU+ICBzbnByaW50ZihyZXF1ZXN0LCBz aXplb2YocmVxdWVzdCksICZxdW90OyVzLCVzJnF1b3Q7LDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJl PlVEU19YU0tfTUFQX0ZEX01TRywgaWZfbmFtZSk7PG86cD48L286cD48L3ByZT4NCjxwcmU+ICBt ZW1zZXQocmVzcG9uc2UsIDAsIHNpemVvZihyZXNwb25zZSkpOzxvOnA+PC9vOnA+PC9wcmU+DQo8 cHJlPi0gaWYgKG1ha2VfcmVxdWVzdF9jbmkoc29jaywgJmFtcDtzZXJ2ZXIsIHJlcXVlc3QsIE5V TEwsIHJlc3BvbnNlLDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiZhbXA7b3V0X2ZkKSAmbHQ7IDAp IHs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4rIGlmIChtYWtlX3JlcXVlc3RfY25pKHNvY2ssICZh bXA7c2VydmVyLCByZXF1ZXN0LCBOVUxMLCByZXNwb25zZSw8bzpwPjwvbzpwPjwvcHJlPg0KPHBy ZT4mYW1wO291dF9mZCw8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4rc29ja19wYXRoKSAmbHQ7IDAp IHs8bzpwPjwvbzpwPjwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpw PjwvcHJlPg0KPHByZT5TYW1lIHF1ZXN0aW9uIGFzIGFib3ZlLjxvOnA+PC9vOnA+PC9wcmU+DQo8 L2Jsb2NrcXVvdGU+DQo8cD48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwPlBsZWFzZSBzZWUgcHJl dmlvdXMgYW5zPG86cD48L286cD48L3A+DQo8cD48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxibG9j a3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPHBy ZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0K PGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+ DQo8cHJlPiAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg QUZfWERQX0xPRyhFUlIsICZxdW90O0Vycm9yIGluIHByb2Nlc3NpbmcgY21kIFslc11cbiZxdW90 Oyw8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5yZXF1ZXN0KTs8bzpwPjwvbzpwPjwvcHJlPg0KPHBy ZT4gJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGdvdG8g ZXJyX2Nsb3NlOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgfTxvOnA+PC9vOnA+PC9wcmU+DQo8 cHJlPkBAIC0xNTcxLDcgKzE1NzMsNyBAQCBnZXRfY25pX2ZkKGNoYXIgKmlmX25hbWUpPG86cD48 L286cD48L3ByZT4NCjxwcmU+ICAvKiBJbml0aWF0ZSBjbG9zZSBjb25uZWN0aW9uICovPG86cD48 L286cD48L3ByZT4NCjxwcmU+ICBzdHJsY3B5KHJlcXVlc3QsIFVEU19GSU5fTVNHLCBVRFNfTUFY X0NNRF9MRU4pOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgbWVtc2V0KHJlc3BvbnNlLCAwLCBz aXplb2YocmVzcG9uc2UpKTs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4tIGlmIChtYWtlX3JlcXVl c3RfY25pKHNvY2ssICZhbXA7c2VydmVyLCByZXF1ZXN0LCBOVUxMLCByZXNwb25zZSw8bzpwPjwv bzpwPjwvcHJlPg0KPHByZT4mYW1wO291dF9mZCkgJmx0OyAwKSB7PG86cD48L286cD48L3ByZT4N CjxwcmU+KyBpZiAobWFrZV9yZXF1ZXN0X2NuaShzb2NrLCAmYW1wO3NlcnZlciwgcmVxdWVzdCwg TlVMTCwgcmVzcG9uc2UsPG86cD48L286cD48L3ByZT4NCjxwcmU+JmFtcDtvdXRfZmQsPG86cD48 L286cD48L3ByZT4NCjxwcmU+K3NvY2tfcGF0aCkgJmx0OyAwKSB7PG86cD48L286cD48L3ByZT4N CjwvYmxvY2txdW90ZT4NCjxwcmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+U2FtZSBx dWVzdGlvbiBhcyBhYm92ZS48bzpwPjwvbzpwPjwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPHA+PG86 cD4mbmJzcDs8L286cD48L3A+DQo8cD5QbGVhc2Ugc2VlIHByZXZpb3VzIGFuczxvOnA+PC9vOnA+ PC9wPg0KPHA+PG86cD4mbmJzcDs8L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2lu LXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxwcmU+PG86cD4mbmJzcDs8L286cD48 L3ByZT4NCjxwcmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxibG9ja3F1b3RlIHN0eWxlPSJt YXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPHByZT4gJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IEFGX1hEUF9MT0coRVJSLCAmcXVv dDtFcnJvciBpbiBwcm9jZXNzaW5nIGNtZCBbJXNdXG4mcXVvdDssPG86cD48L286cD48L3ByZT4N CjxwcmU+cmVxdWVzdCk7PG86cD48L286cD48L3ByZT4NCjxwcmU+ICZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBnb3RvIGVycl9jbG9zZTs8bzpwPjwvbzpw PjwvcHJlPg0KPHByZT4gIH08bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5AQCAtMTY5OCw3ICsxNzAw LDcgQEAgeHNrX2NvbmZpZ3VyZShzdHJ1Y3QgcG1kX2ludGVybmFscyAqaW50ZXJuYWxzLDxvOnA+ PC9vOnA+PC9wcmU+DQo8cHJlPnN0cnVjdCBwa3RfcnhfcXVldWUgKnJ4cSw8bzpwPjwvbzpwPjwv cHJlPg0KPHByZT4gJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IGludCBlcnIsIGZkLCBtYXBfZmQ7PG86cD48L286cD48L3ByZT4NCjxwcmU+PG86cD4mbmJz cDs8L286cD48L3ByZT4NCjxwcmU+ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyAvKiBnZXQgc29ja2V0IGZkIGZyb20gQ05JIHBsdWdpbiAqLzxvOnA+PC9v OnA+PC9wcmU+DQo8cHJlPi0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgbWFwX2ZkID0gZ2V0X2NuaV9mZChpbnRlcm5hbHMtJmd0O2lmX25hbWUpOzxvOnA+ PC9vOnA+PC9wcmU+DQo8cHJlPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgbWFwX2ZkID0gZ2V0X2NuaV9mZChpbnRlcm5hbHMtJmd0O2lmX25hbWUsIGlu dGVybmFscy08bzpwPjwvbzpwPjwvcHJlPg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6 NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8cHJlPnNvY2tfcGF0aCk7PG86cD48L286cD48 L3ByZT4NCjwvYmxvY2txdW90ZT4NCjxwcmU+ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAobWFwX2ZkICZsdDsgMCkgezxvOnA+PC9vOnA+PC9wcmU+ DQo8cHJlPiAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgQUZfWERQX0xP RyhFUlIsICZxdW90O0ZhaWxlZCB0byByZWNlaXZlIENOSSBwbHVnaW48bzpwPjwvbzpwPjwvcHJl Pg0KPHByZT5mZFxuJnF1b3Q7KTs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGdvdG8gb3V0X3hzazs8bzpwPjwvbzpwPjwvcHJl Pg0KPHByZT5AQCAtMjAyMyw3ICsyMDI1LDggQEAgeGRwX2dldF9jaGFubmVsc19pbmZvKGNvbnN0 IGNoYXIgKmlmX25hbWUsIGludDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiptYXhfcXVldWVzLCZu YnNwOyBzdGF0aWMgaW50Jm5ic3A7IHBhcnNlX3BhcmFtZXRlcnMoc3RydWN0IHJ0ZV9rdmFyZ3Mg Kmt2bGlzdCwgY2hhcjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPippZl9uYW1lLCBpbnQgKnN0YXJ0 X3F1ZXVlLDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7aW50ICpxdWV1ZV9jbnQsIGludCAqc2hhcmVk X3VtZW0sIGNoYXIgKnByb2dfcGF0aCw8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4tJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICBpbnQgKmJ1c3lfYnVkZ2V0 LCBpbnQgKmZvcmNlX2NvcHksIGludCAqdXNlX2NuaSk8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4r Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICBpbnQgKmJ1 c3lfYnVkZ2V0LCBpbnQgKmZvcmNlX2NvcHksIGludCAqdXNlX2NuaSw8bzpwPjwvbzpwPjwvcHJl Pg0KPHByZT4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 ICBjaGFyICpzb2NrX3BhdGgpPG86cD48L286cD48L3ByZT4NCjxwcmU+IHs8bzpwPjwvbzpwPjwv cHJlPg0KPHByZT4gIGludCByZXQ7PG86cD48L286cD48L3ByZT4NCjxwcmU+PG86cD4mbmJzcDs8 L286cD48L3ByZT4NCjxwcmU+QEAgLTIwNjksNiArMjA3MiwxMSBAQCBwYXJzZV9wYXJhbWV0ZXJz KHN0cnVjdCBydGVfa3ZhcmdzICprdmxpc3QsIGNoYXI8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4q aWZfbmFtZSwgaW50ICpzdGFydF9xdWV1ZSw8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gIGlmIChy ZXQgJmx0OyAwKTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZ290byBmcmVlX2t2bGlzdDs8bzpwPjwvbzpwPjwv cHJlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPHByZT4rIHJldCA9IHJ0ZV9rdmFy Z3NfcHJvY2Vzcyhrdmxpc3QsIEVUSF9BRl9YRFBfU09DS19BUkcsPG86cD48L286cD48L3ByZT4N CjxwcmU+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAgJmFtcDtwYXJzZV9wcm9nX2FyZywgc29j a19wYXRoKTs8bzpwPjwvbzpwPjwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPHByZT48bzpwPiZuYnNw OzwvbzpwPjwvcHJlPg0KPHByZT5QYXJzZV9wcm9nX2FyZyBkb2VzIDIgdGhpbmdzIGNvcHkgdGhl IHNvY2tfYXJnIHZhbHVlIGFuZCBhbHNvIGNoZWNrIHRoZSBhY2Nlc3MgdG8gdGhlIHNvY2tldC48 bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5DaGVja2luZyBhY2Nlc3MgaGVyZSBoYXMgYSBjaGFuY2Ug b2YgY2F1c2luZyByYWlzZSBjb25kaXRpb24gc28gSSB3b3VsZCByZWNvbW1lbmQgdG8gc2tpcCB0 aGlzIGNoZWNrIGhlcmUgYXMgdGhpcyB3aWxsIGJlIHRha2VuIGNhcmUgaW4gdGhlIGluaXRfdWRz X3NvY2soKS48bzpwPjwvbzpwPjwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPHA+PG86cD4mbmJzcDs8 L286cD48L3A+DQo8cD5JZiB0aGVyZSdzIGFuIGlzc3VlIGhlcmUgcHJvY2Vzc2luZyBpcyBhYmFu ZG9uZWQuIElzIGl0IG5vdCBiZXR0ZXIgdG8gY2F0Y2ggYW55IGlzc3VlIGVhcmx5IG9uPyBJJ20g bm90IHN1cmUgSSB1bmRlcnN0YW5kIHRoZSByYWNlIGNvbmRpdGlvbj88bzpwPjwvbzpwPjwvcD4N CjxwPlJhY2UgY29uZGl0aW9uIGlmIGFmX3hkcCBhcHBsaWNhdGlvbiBwb2Qgc3RhcnQgYnkgYSBi aXQgb2Ygb3V0IG9mIHN5bmMgYmVmb3JlIHRoZSBVU0Qgc2VydmVyIHRocmVhZCBzdGFydC4gU28g d2UgY2FuIHdhaXQgdGlsbCB0aGUgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy4gSXQgaXMgYSBzdWdn ZXN0aW9uLjxvOnA+PC9vOnA+PC9wPg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4w cHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8 cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRv cDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxwcmU+KyBpZiAocmV0ICZsdDsgMCk8bzpw PjwvbzpwPjwvcHJlPg0KPHByZT4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IGdvdG8gZnJlZV9rdmxpc3Q7PG86cD48L286cD48L3ByZT4NCjxwcmU+Kzxv OnA+PC9vOnA+PC9wcmU+DQo8cHJlPiBmcmVlX2t2bGlzdDo8bzpwPjwvbzpwPjwvcHJlPg0KPHBy ZT4gIHJ0ZV9rdmFyZ3NfZnJlZShrdmxpc3QpOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgcmV0 dXJuIHJldDs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5AQCAtMjEwOCw3ICsyMTE2LDcgQEAgc3Rh dGljIHN0cnVjdCBydGVfZXRoX2RldiAqJm5ic3A7IGluaXRfaW50ZXJuYWxzKHN0cnVjdDxvOnA+ PC9vOnA+PC9wcmU+DQo8cHJlPnJ0ZV92ZGV2X2RldmljZSAqZGV2LCBjb25zdCBjaGFyICppZl9u YW1lLDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7aW50IHN0YXJ0X3F1ZXVlX2lkeCwgaW50IHF1ZXVlX2NudCwgaW50IHNo YXJlZF91bWVtLDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Y29uc3QgY2hhciAqcHJvZ19wYXRoLCBpbnQgYnVzeV9idWRn ZXQsIGludCBmb3JjZV9jb3B5LDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPi0gJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCB1c2VfY25pKTxvOnA+PC9vOnA+PC9wcmU+DQo8 cHJlPisgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCB1c2VfY25pLCBj b25zdCBjaGFyICpzb2NrX3BhdGgpPG86cD48L286cD48L3ByZT4NCjxwcmU+IHs8bzpwPjwvbzpw PjwvcHJlPg0KPHByZT4gIGNvbnN0IGNoYXIgKm5hbWUgPSBydGVfdmRldl9kZXZpY2VfbmFtZShk ZXYpOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgY29uc3QgdW5zaWduZWQgaW50IG51bWFfbm9k ZSA9IGRldi0mZ3Q7ZGV2aWNlLm51bWFfbm9kZTsgQEAgLTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJl PjIxMzgsNiArMjE0Niw3IEBAIGluaXRfaW50ZXJuYWxzKHN0cnVjdCBydGVfdmRldl9kZXZpY2Ug KmRldiwgY29uc3QgY2hhcjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPippZl9uYW1lLDxvOnA+PC9v OnA+PC9wcmU+DQo8cHJlPiAgaW50ZXJuYWxzLSZndDtzaGFyZWRfdW1lbSA9IHNoYXJlZF91bWVt OzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgaW50ZXJuYWxzLSZndDtmb3JjZV9jb3B5ID0gZm9y Y2VfY29weTs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gIGludGVybmFscy0mZ3Q7dXNlX2NuaSA9 IHVzZV9jbmk7PG86cD48L286cD48L3ByZT4NCjxwcmU+KyBzdHJsY3B5KGludGVybmFscy0mZ3Q7 c29ja19wYXRoLCBzb2NrX3BhdGgsIFBBVEhfTUFYKTs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT48 bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPHByZT4gIGlmICh4ZHBfZ2V0X2NoYW5uZWxzX2luZm8o aWZfbmFtZSwgJmFtcDtpbnRlcm5hbHMtJmd0O21heF9xdWV1ZV9jbnQsPG86cD48L286cD48L3By ZT4NCjxwcmU+ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmYW1wO2ludGVy bmFscy0mZ3Q7Y29tYmluZWRfcXVldWVfY250KSkgeyBAQCAtPG86cD48L286cD48L3ByZT4NCjxw cmU+MjMyOCw2ICsyMzM3LDcgQEAgcnRlX3BtZF9hZl94ZHBfcHJvYmUoc3RydWN0IHJ0ZV92ZGV2 X2RldmljZSAqZGV2KTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAgaW50IGJ1c3lfYnVkZ2V0ID0g LTEsIHJldDs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gIGludCBmb3JjZV9jb3B5ID0gMDs8bzpw PjwvbzpwPjwvcHJlPg0KPHByZT4gIGludCB1c2VfY25pID0gMDs8bzpwPjwvbzpwPjwvcHJlPg0K PHByZT4rIGNoYXIgc29ja19wYXRoW1BBVEhfTUFYXSA9IHsnXDAnfTs8bzpwPjwvbzpwPjwvcHJl Pg0KPHByZT4gIHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiA9IE5VTEw7PG86cD48L286cD48 L3ByZT4NCjxwcmU+ICBjb25zdCBjaGFyICpuYW1lID0gcnRlX3ZkZXZfZGV2aWNlX25hbWUoZGV2 KTs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPHByZT5A QCAtMjM3MCw3ICsyMzgwLDcgQEAgcnRlX3BtZF9hZl94ZHBfcHJvYmUoc3RydWN0IHJ0ZV92ZGV2 X2RldmljZTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPipkZXYpPG86cD48L286cD48L3ByZT4NCjxw cmU+PG86cD4mbmJzcDs8L286cD48L3ByZT4NCjxwcmU+ICBpZiAocGFyc2VfcGFyYW1ldGVycyhr dmxpc3QsIGlmX25hbWUsICZhbXA7eHNrX3N0YXJ0X3F1ZXVlX2lkeCw8bzpwPjwvbzpwPjwvcHJl Pg0KPHByZT4gJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZhbXA7eHNrX3F1ZXVlX2NudCwgJmFtcDtzaGFyZWRfdW1l bSwgcHJvZ19wYXRoLDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPi0mbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZhbXA7YnVzeV9i dWRnZXQsICZhbXA7Zm9yY2VfY29weSwgJmFtcDt1c2VfY25pKSAmbHQ7IDApIHs8bzpwPjwvbzpw PjwvcHJlPg0KPHByZT4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmYW1wO2J1c3lfYnVkZ2V0LCAmYW1wO2ZvcmNlX2NvcHks ICZhbXA7dXNlX2NuaSw8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5zb2NrX3BhdGgpICZsdDsgMCkg ezxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgQUZfWERQX0xPRyhFUlIsICZxdW90O0ludmFsaWQga3ZhcmdzIHZh bHVlXG4mcXVvdDspOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIC1FSU5WQUw7PG86cD48L286cD48 L3ByZT4NCjxwcmU+ICB9PG86cD48L286cD48L3ByZT4NCjxwcmU+QEAgLTIzODcsNiArMjM5Nywx MyBAQCBydGVfcG1kX2FmX3hkcF9wcm9iZShzdHJ1Y3QgcnRlX3ZkZXZfZGV2aWNlPG86cD48L286 cD48L3ByZT4NCjxwcmU+KmRldik8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAtRUlOVkFMOzxvOnA+PC9vOnA+PC9w cmU+DQo8cHJlPiAgfTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9w cmU+DQo8cHJlPisgaWYgKHVzZV9jbmkgJmFtcDsmYW1wOyAhc3Rybmxlbihzb2NrX3BhdGgsIFBB VEhfTUFYKSkgezxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPismbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgQUZfWERQX0xPRyhFUlIsICZxdW90O1doZW4gJyVz JyBwYXJhbWV0ZXIgaXMgdXNlZCwgJyVzJyBtdXN0PG86cD48L286cD48L3ByZT4NCjxwcmU+YWxz byBiZSBwcm92aWRlZFxuJnF1b3Q7LDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPismbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgRVRIX0FGX1hEUF9VU0VfQ05JX0FSRyw8bzpw PjwvbzpwPjwvcHJlPg0KPHByZT5FVEhfQUZfWERQX1NPQ0tfQVJHKTs8bzpwPjwvbzpwPjwvcHJl Pg0KPHByZT4rJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAt RUlOVkFMOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPisgfTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJl Pis8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4rPG86cD48L286cD48L3ByZT4NCjxwcmU+ICBpZiAo c3RybGVuKGlmX25hbWUpID09IDApIHs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IEFGX1hEUF9MT0coRVJSLCAm cXVvdDtOZXR3b3JrIGludGVyZmFjZSBtdXN0IGJlPG86cD48L286cD48L3ByZT4NCjxwcmU+c3Bl Y2lmaWVkXG4mcXVvdDspOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIC1FSU5WQUw7PG86cD48L286 cD48L3ByZT4NCjxwcmU+QEAgLTI0MTAsNyArMjQyNyw3IEBAIHJ0ZV9wbWRfYWZfeGRwX3Byb2Jl KHN0cnVjdCBydGVfdmRldl9kZXZpY2U8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4qZGV2KTxvOnA+ PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9wcmU+DQo8cHJlPiAgZXRoX2Rl diA9IGluaXRfaW50ZXJuYWxzKGRldiwgaWZfbmFtZSwgeHNrX3N0YXJ0X3F1ZXVlX2lkeCw8bzpw PjwvbzpwPjwvcHJlPg0KPHByZT4gJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwO3hza19x dWV1ZV9jbnQsIHNoYXJlZF91bWVtLCBwcm9nX3BhdGgsPG86cD48L286cD48L3ByZT4NCjxwcmU+ LSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAgYnVzeV9idWRnZXQsIGZvcmNlX2NvcHksIHVzZV9j bmkpOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgIGJ1 c3lfYnVkZ2V0LCBmb3JjZV9jb3B5LCB1c2VfY25pLDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPnNv Y2tfcGF0aCk7PG86cD48L286cD48L3ByZT4NCjxwcmU+ICBpZiAoZXRoX2RldiA9PSBOVUxMKSB7 PG86cD48L286cD48L3ByZT4NCjxwcmU+ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBBRl9YRFBfTE9HKEVSUiwgJnF1b3Q7RmFpbGVkIHRvIGluaXQgaW50 ZXJuYWxzXG4mcXVvdDspOzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIC0xOzxvOnA+PC9vOnA+PC9w cmU+DQo8cHJlPkBAIC0yNDcxLDQgKzI0ODgsNSBAQDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPlJU RV9QTURfUkVHSVNURVJfUEFSQU1fU1RSSU5HKG5ldF9hZl94ZHAsPG86cD48L286cD48L3ByZT4N CjxwcmU+ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmcXVvdDt4ZHBfcHJvZz0mbHQ7c3RyaW5nJmd0OyAm cXVvdDs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4gJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZxdW90O2J1 c3lfYnVkZ2V0PSZsdDtpbnQmZ3Q7ICZxdW90OzxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPiAmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7JnF1b3Q7Zm9yY2VfY29weT0mbHQ7aW50Jmd0OyAmcXVvdDs8bzpwPjwv bzpwPjwvcHJlPg0KPHByZT4tJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmcXVvdDt1c2VfY25pPSZsdDtpbnQmZ3Q7 ICZxdW90Oyk7PG86cD48L286cD48L3ByZT4NCjxwcmU+KyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJnF1b3Q7dXNl X2NuaT0mbHQ7aW50Jmd0OyAmcXVvdDs8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4rJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyAmcXVvdDtzb2NrPSZsdDtzdHJpbmcmZ3Q7ICZxdW90Oyk7PG86cD48L286cD48L3ByZT4N CjxwcmU+LS08bzpwPjwvbzpwPjwvcHJlPg0KPHByZT4yLjQxLjA8bzpwPjwvbzpwPjwvcHJlPg0K PC9ibG9ja3F1b3RlPg0KPHByZT48bzpwPiZuYnNwOzwvbzpwPjwvcHJlPg0KPC9ibG9ja3F1b3Rl Pg0KPHA+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9o dG1sPg0K --_000_DM6PR11MB39951DD44B2061CFAD8EE5ECA282ADM6PR11MB3995namp_--