From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 0AB1440C05 for ; Thu, 30 Dec 2021 00:17:44 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8C27A68A787; Thu, 30 Dec 2021 02:17:41 +0200 (EET) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12olkn2085.outbound.protection.outlook.com [40.92.21.85]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2893068A0EA for ; Thu, 30 Dec 2021 02:17:34 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RpbAGvdKgYN39L9XJY5IuHL1iGvEQNqDiaTbWT1m/wiFaFaXqk8SN2qB3RYR9OtGJvjk4wmo3VKdMqId9FX6bIHEiMAA0Hywpoz37bPN3J5Dd2jnHOeIvjg/Q+V0cIXuRrbwSSngGFkp2Z1r7LYiGiFauXH3AkQ8odMTc3EmM9ap39PGOv1gGDDFo7t3l6XZ/62YfIzl0nSg5+UQlkmdgjEj9V8o7icdz7U4YZSXupjpGfQNoaiahAbKSkBSl+pF7Jmeoz9CP728hixROexK4jN4UDBkgDdDtGCnux4I5dzRmTMd6025IalWdIacnZuesKUWKBY1JQ5qVfbTlJRSDQ== 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=QWK98e8EnSblEugxmfMWIKC2ydFR7oVH1RFIJ14KdqQ=; b=DgJYsKEUYPHNgQqQjzhSkPJUVYAF8F6Yqd9sZpnvhZY4wt2YAH5ENQbxSvmd4dL8+gvwbVSddrc2V/aszihA3CgXcHkIGA8Ceus8ac1TtnWYiiTwVMkZBMVzgZZK1cBsAAoIeyugs0C+GQM5QR3ScytFupNKFs93rHstAq1HfHNYOHBdzxMQqpGmr67F/XW/jcHGDgwPz6rxPk/+6U0YIQQe6NhBzZTx0PEMCNamNx22DUVvaJeS6L5rh3ce3o4DtLMqoS5A9q002i+Bm3Vz5A+PTBhqjr2jAwr2kc2NSXraJmdhAXwgDNHfBDvd/R3aT8lHVBs9c6auVo9mfS5TPA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QWK98e8EnSblEugxmfMWIKC2ydFR7oVH1RFIJ14KdqQ=; b=Fxmt2u9CKT3qfIu1Leuo6N6nbUJroBDtI8HqMwPBzINsGwvb7hOVnPoq8Is/Q/GYzR+rjt+12IzexFVRvq7Zzl+QykBWTFwe2Lkw7Pz0zaCJtEmFw8agCRbiXtB4BQoVJEbQ1jNXHdpC+H13TdRauz9gcYcOpuDjyMLLTu386gXlX7S7IVVqfzxmiDI/IqmwG/MbNAfwJz7U2tNPZw+b4bKEnMQAXf+LbiHLB/qgQf5vBOLAV+CI+HfHgvG9dO+ghW5C++NNVBfBW5bir4o+20DpqrNIYqFeD/HlNHrz9OdbT5OIoGOl6TyA+UYted0EUda9DjqTL+SZ37XZzlRUjg== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by DM8P223MB0006.NAMP223.PROD.OUTLOOK.COM (2603:10b6:5:317::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.13; Thu, 30 Dec 2021 00:17:31 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::54ae:66eb:e304:96d6]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::54ae:66eb:e304:96d6%5]) with mapi id 15.20.4844.014; Thu, 30 Dec 2021 00:17:31 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH 3/3] libavutil/hwcontext_opencl: fix a bug for mapping qsv frame to opencl Thread-Index: AQHX2sLbRTyIEmFJc0+hIglvJzmE7KxG7+iAgAAOPbCAAEQcgIAAFGUggADHqgCAAGLWYIAB3z8AgAACf1A= Date: Thu, 30 Dec 2021 00:17:31 +0000 Message-ID: References: <20211116081623.3081766-1-wenbin.chen@intel.com> <20211116081623.3081766-3-wenbin.chen@intel.com> <92735cd0-179b-cbf6-b191-e440be779b66@jkqxz.net> <96dc30bc-2ff0-009b-713c-b41c248d6b6b@jkqxz.net> <40058114-ee69-2399-1559-324a7ff4d587@jkqxz.net> In-Reply-To: <40058114-ee69-2399-1559-324a7ff4d587@jkqxz.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tmn: [iHCQRZpgiB57QsNbAwYZTw0I/ENuVAG/] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: eae90237-5f4e-4c04-3ec7-08d9cb29c570 x-ms-traffictypediagnostic: DM8P223MB0006:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: z5QNXJCD57fFufcycFC34dyuTwlj9BeSHTunK1PP+0rjvIYZlKJJgu2liOJlMrS7Mg3qAkPTDKGsiRlRU6agOFz1MeGj+4HNM0QjyLiVZBTaJycZcm500EFbmr+ieZOgRc0gre6+mHX2WJapblulD1EdCWCDx/VLrWOC9hY8PueyggEYXC09hty2t2dalraxN017JnNYjTMlWy3mLIlkdjt25UlavbVz5RUxn46ryTo//BN/wxG/KlxBzQSUDQw3y/RfvbNNbVG6J3JssyDTHDtAV+gJxp2c5m6ig+OroXNBpkV/PoRRNTZQqGi8kBmztRkCOwRCf7658S4WIqK4/UMPZlFn/8G/M3vECwpboP07LRf0yKIVbf35hzWo/FfeTIqfOxCo0b+sCjoJKwzNQsMddX3hVubC5QkP9sKy8tVYiO4TbZZbk8+5t+P/P1HmR5j07PHmjdvbQH7+eEplrxVteEbFIlSvX5Myo2BbsGnGYeBoYkGPH7ZJZgiS68cH77H4jrBTQCi03LjeFL7qTFfxhhCTYWSwnp0lL82XP2s7U9ZOi5PrV6vsqb2kY957MLICgMP6F3/9h9C6plZkAGhqr+O2KwCTviN4QN64vhgl/7BjloI1RVM3JgQyCSxO3T9zDblRjvsWapFpHiDcYsoraHNRKxVhuWSgrXMyq3g= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: rhD0qx+aUOgfy5pN95f+Q38LtA5weC2wtIQSP1qdn47FevyyaDOpcMTI3MLG/8w/HA9jPDteTT8gc2cmGO5l0n+52ZiyibF1UJCu6+mAHoQ0qtKyEDsxDPSp+nG7T1HmKw6RZRsa9lv5XgAEzyVkcAKkRVKjbBFWFdjjPvba9ZIbIY+tqjVCFQISVG6Q8R5XMiuqn3Kv6dYyI8Y0va+4FaWvL+sUov9UxSCZSR/FQzDkB/5XO0Y4SCpfduTg9ive1LnOvZwrDp28Njcf0/ZkMcGyTkI9RQcONqEs4SsrdINPgfC76ZmsBSjiHZY+OjwSLIyykXRUpCsJaofIueEDjbfEZ++CGfkamVtYkXUPup+6o3afrCUspPLSMwFnZ0qm0mH6b8qWQxzzHXKtSnl8YfD/9CUOEN8jl7gGZAaf+PyvlyayfzsJV+WKY6gkbHXuQW/oMLVhbGHXxRWzELCzxgQT0JBc8MQCb4dpeUI2jow2RJAYD3y8q8PxZHwaXwss7/+lHt1AlKoV89ygieRmmWZ4pH4KLDyDE9RqdvfCfWyzkfo6MR70eVeLZtyuHRbrw0P0xugrXGr6QZYzDvG/XukHLrAK0Yun8ddAKZbwkWJ8itICKdkaYnu3k2Qm6NIZqXsfFhCcKO/E8iLC4rNqabOkk+NnmFeHKeFR4Zj3ZAEAZ+WHjkBAjle3JOXf+ClKDwu+qH40hY50XX/V7X0rTGQad4288ehfBN6Iz6//mRCT4RhD4wryK6fD5jW0T46QuIlqB5vFKJpLrmyR6hPcED7qItEUvnzDD4qFzmmUDVFJKM1m4DAPZ2uAfMyLIBgSgT1zw7ADJTO5sqgXwIYHJOBPPt9cZje4gtrXRNMh6sLzzFBUsJWAYriBmF2jMhUoBtMD84kIJildTT7gvD2qzXIfOn5ernR6K85dKLeFfETZogOHn29YBqlDhFU1oGJ+ MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-1ff67.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: eae90237-5f4e-4c04-3ec7-08d9cb29c570 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Dec 2021 00:17:31.5575 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8P223MB0006 Subject: Re: [FFmpeg-devel] [PATCH 3/3] libavutil/hwcontext_opencl: fix a bug for mapping qsv frame to opencl X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZmZtcGVnLWRldmVsIDxm Zm1wZWctZGV2ZWwtYm91bmNlc0BmZm1wZWcub3JnPiBPbiBCZWhhbGYgT2YgTWFyaw0KPiBUaG9t cHNvbg0KPiBTZW50OiBUaHVyc2RheSwgRGVjZW1iZXIgMzAsIDIwMjEgMTI6MjMgQU0NCj4gVG86 IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnDQo+IFN1YmplY3Q6IFJlOiBbRkZtcGVnLWRldmVsXSBb UEFUQ0ggMy8zXSBsaWJhdnV0aWwvaHdjb250ZXh0X29wZW5jbDogZml4IGEgYnVnDQo+IGZvciBt YXBwaW5nIHFzdiBmcmFtZSB0byBvcGVuY2wNCj4gDQo+IE9uIDI4LzEyLzIwMjEgMTk6MDQsIFNv ZnQgV29ya3Mgd3JvdGU6Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTog ZmZtcGVnLWRldmVsIDxmZm1wZWctZGV2ZWwtYm91bmNlc0BmZm1wZWcub3JnPiBPbiBCZWhhbGYg T2YgTWFyaw0KPiA+PiBUaG9tcHNvbg0KPiA+PiBTZW50OiBUdWVzZGF5LCBEZWNlbWJlciAyOCwg MjAyMSAxOjU0IFBNDQo+ID4+IFRvOiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZw0KPiA+PiBTdWJq ZWN0OiBSZTogW0ZGbXBlZy1kZXZlbF0gW1BBVENIIDMvM10gbGliYXZ1dGlsL2h3Y29udGV4dF9v cGVuY2w6IGZpeCBhDQo+IGJ1Zw0KPiA+PiBmb3IgbWFwcGluZyBxc3YgZnJhbWUgdG8gb3BlbmNs DQo+ID4+DQo+ID4+IE9uIDI4LzEyLzIwMjEgMDE6MTcsIFNvZnQgV29ya3Mgd3JvdGU6DQo+ID4+ Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBmZm1wZWctZGV2ZWwg PGZmbXBlZy1kZXZlbC1ib3VuY2VzQGZmbXBlZy5vcmc+IE9uIEJlaGFsZiBPZiBNYXJrDQo+ID4+ Pj4gVGhvbXBzb24NCj4gPj4+PiBTZW50OiBUdWVzZGF5LCBEZWNlbWJlciAyOCwgMjAyMSAxMjo0 NiBBTQ0KPiA+Pj4+IFRvOiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZw0KPiA+Pj4+IFN1YmplY3Q6 IFJlOiBbRkZtcGVnLWRldmVsXSBbUEFUQ0ggMy8zXSBsaWJhdnV0aWwvaHdjb250ZXh0X29wZW5j bDogZml4DQo+IGENCj4gPj4gYnVnDQo+ID4+Pj4gZm9yIG1hcHBpbmcgcXN2IGZyYW1lIHRvIG9w ZW5jbA0KPiA+Pj4+DQo+ID4+Pj4gT24gMjcvMTIvMjAyMSAyMDozMSwgU29mdCBXb3JrcyB3cm90 ZTo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4gRnJvbTogZmZtcGVnLWRl dmVsIDxmZm1wZWctZGV2ZWwtYm91bmNlc0BmZm1wZWcub3JnPiBPbiBCZWhhbGYgT2YgTWFyaw0K PiA+Pj4+Pj4gVGhvbXBzb24NCj4gPj4+Pj4+IFNlbnQ6IE1vbmRheSwgRGVjZW1iZXIgMjcsIDIw MjEgNzo1MSBQTQ0KPiA+Pj4+Pj4gVG86IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnDQo+ID4+Pj4+ PiBTdWJqZWN0OiBSZTogW0ZGbXBlZy1kZXZlbF0gW1BBVENIIDMvM10gbGliYXZ1dGlsL2h3Y29u dGV4dF9vcGVuY2w6DQo+IGZpeA0KPiA+PiBhDQo+ID4+Pj4gYnVnDQo+ID4+Pj4+PiBmb3IgbWFw cGluZyBxc3YgZnJhbWUgdG8gb3BlbmNsDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gT24gMTYvMTEvMjAy MSAwODoxNiwgV2VuYmluIENoZW4gd3JvdGU6DQo+ID4+Pj4+Pj4gRnJvbTogbnlhbm1pc2FrYSA8 bnN0Nzk5NjEwODEwQGdtYWlsLmNvbT4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IG1meEhETFBhaXIg d2FzIGFkZGVkIHRvIHFzdiwgc28gbW9kaWZ5IHFzdi0+b3BlbmNsIG1hcCBmdW5jdGlvbiBhcw0K PiA+PiB3ZWxsLg0KPiA+Pj4+Pj4+IE5vdyB0aGUgZm9sbG93aW5nIGNvbW1hbmRsaW5lIHdvcmtz Og0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gZmZtcGVnIC12IHZlcmJvc2UgLWluaXRfaHdfZGV2aWNl IHZhYXBpPXZhOi9kZXYvZHJpL3JlbmRlckQxMjggXA0KPiA+Pj4+Pj4+IC1pbml0X2h3X2Rldmlj ZSBxc3Y9cXNAdmEgLWluaXRfaHdfZGV2aWNlIG9wZW5jbD1vY2xAdmEgLQ0KPiA+PiBmaWx0ZXJf aHdfZGV2aWNlDQo+ID4+Pj4+PiBvY2wgXA0KPiA+Pj4+Pj4+IC1od2FjY2VsIHFzdiAtaHdhY2Nl bF9vdXRwdXRfZm9ybWF0IHFzdiAtaHdhY2NlbF9kZXZpY2UgcXMgLWM6dg0KPiA+PiBoMjY0X3Fz dg0KPiA+Pj4+IFwNCj4gPj4+Pj4+PiAtaSBpbnB1dC4yNjQgLXZmDQo+ID4+Pj4gImh3bWFwPWRl cml2ZV9kZXZpY2U9b3BlbmNsLGZvcm1hdD1vcGVuY2wsYXZnYmx1cl9vcGVuY2wsDQo+ID4+Pj4+ PiBcDQo+ID4+Pj4+Pj4gaHdtYXA9ZGVyaXZlX2RldmljZT1xc3Y6cmV2ZXJzZT0xOmV4dHJhX2h3 X2ZyYW1lcz0zMixmb3JtYXQ9cXN2IiBcDQo+ID4+Pj4+Pj4gLWM6diBoMjY0X3FzdiBvdXRwdXQu MjY0DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBueWFubWlzYWthIDxuc3Q3 OTk2MTA4MTBAZ21haWwuY29tPg0KPiA+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFdlbmJpbiBDaGVu IDx3ZW5iaW4uY2hlbkBpbnRlbC5jb20+DQo+ID4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4gICAgICBs aWJhdnV0aWwvaHdjb250ZXh0X29wZW5jbC5jIHwgMyArKy0NCj4gPj4+Pj4+PiAgICAgIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPj4+Pj4+Pg0KPiA+ Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0X29wZW5jbC5jDQo+ID4+IGIv bGliYXZ1dGlsL2h3Y29udGV4dF9vcGVuY2wuYw0KPiA+Pj4+Pj4+IGluZGV4IDI2YTNhMjQ1OTMu LjRiNmU3NGZmNmYgMTAwNjQ0DQo+ID4+Pj4+Pj4gLS0tIGEvbGliYXZ1dGlsL2h3Y29udGV4dF9v cGVuY2wuYw0KPiA+Pj4+Pj4+ICsrKyBiL2xpYmF2dXRpbC9od2NvbnRleHRfb3BlbmNsLmMNCj4g Pj4+Pj4+PiBAQCAtMjI0OSw3ICsyMjQ5LDggQEAgc3RhdGljIGludA0KPiBvcGVuY2xfbWFwX2Zy b21fcXN2KEFWSFdGcmFtZXNDb250ZXh0DQo+ID4+Pj4+PiAqZHN0X2ZjLCBBVkZyYW1lICpkc3Qs DQo+ID4+Pj4+Pj4gICAgICAjaWYgQ09ORklHX0xJQk1GWA0KPiA+Pj4+Pj4+ICAgICAgICAgIGlm IChzcmMtPmZvcm1hdCA9PSBBVl9QSVhfRk1UX1FTVikgew0KPiA+Pj4+Pj4+ICAgICAgICAgICAg ICBtZnhGcmFtZVN1cmZhY2UxICptZnhfc3VyZmFjZSA9IChtZnhGcmFtZVN1cmZhY2UxKilzcmMt DQo+ID4+Pj4+IGRhdGFbM107DQo+ID4+Pj4+Pj4gLSAgICAgICAgdmFfc3VyZmFjZSA9ICooVkFT dXJmYWNlSUQqKW1meF9zdXJmYWNlLT5EYXRhLk1lbUlkOw0KPiA+Pj4+Pj4+ICsgICAgICAgIG1m eEhETFBhaXIgKnBhaXIgPSAobWZ4SERMUGFpciopbWZ4X3N1cmZhY2UtPkRhdGEuTWVtSWQ7DQo+ ID4+Pj4+Pj4gKyAgICAgICAgdmFfc3VyZmFjZSA9ICooVkFTdXJmYWNlSUQqKXBhaXItPmZpcnN0 Ow0KPiA+Pj4+Pj4+ICAgICAgICAgIH0gZWxzZQ0KPiA+Pj4+Pj4+ICAgICAgI2VuZGlmDQo+ID4+ Pj4+Pj4gICAgICAgICAgICAgIGlmIChzcmMtPmZvcm1hdCA9PSBBVl9QSVhfRk1UX1ZBQVBJKSB7 DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gU2luY2UgdGhlc2UgZnJhbWVzIGNhbiBiZSB1c2VyLXN1cHBs aWVkLCB0aGlzIGltcGxpZXMgdGhhdCB0aGUgdXNlci0NCj4gPj4gZmFjaW5nDQo+ID4+Pj4+PiBB UEkvQUJJIGZvciBBVl9QSVhfRk1UX1FTViBoYXMgY2hhbmdlZC4NCj4gPj4+Pj4+DQo+ID4+Pj4+ PiBJdCBsb29rcyBsaWtlIHRoaXMgd2FzIGJyb2tlbiBieSB1c2luZyBIRExQYWlycyB3aGVuIEQz RDExIHdhcw0KPiA+PiBpbnRyb2R1Y2VkLA0KPiA+Pj4+Pj4gd2hpY2ggc2lsZW50bHkgY2hhbmdl ZCB0aGUgZXhpc3RpbmcgQVBJIGZvciBEWFZBMiBhbmQgVkFBUEkgYXMgd2VsbC4NCj4gPj4+Pj4+ DQo+ID4+Pj4+PiBDb3VsZCBzb21lb25lIHJlbGF0ZWQgdG8gdGhhdCBwbGVhc2UgZG9jdW1lbnQg aXQgcHJvcGVybHkgKGNsZWFybHkgbm90DQo+ID4+IGFsbA0KPiA+Pj4+Pj4gcG9zc2libGUgdmFs aWQgbWZ4RnJhbWVTdXJmYWNlMXMgYXJlIGFsbG93ZWQpLCBhbmQgbm90ZSBpbiBBUEljaGFuZ2Vz DQo+ID4+IHdoZW4NCj4gPj4+Pj4+IHRoZSBBUEkgY2hhbmdlIGhhcHBlbmVkPw0KPiA+Pj4+Pg0K PiA+Pj4+PiBIaSBNYXJrLA0KPiA+Pj4+Pg0KPiA+Pj4+PiBRU1YgY29udGV4dHMgYWx3YXlzIG5l ZWQgdG8gYmUgYmFja2VkIGJ5IGEgY2hpbGQgY29udGV4dCwgd2hpY2ggY2FuIGJlDQo+ID4+Pj4g RFhWQTIsDQo+ID4+Pj4+IEQzRDExVkEgb3IgVkFBUEkuIFlvdSBjYW4gY3JlYXRlIGEgUVNWIGNv bnRleHQgZWl0aGVyIGJ5IGRlcml2aW5nIGZyb20NCj4gPj4gb25lDQo+ID4+Pj4gb2YNCj4gPj4+ Pj4gdGhvc2UgY29udGV4dHMgb3Igd2hlbiBjcmVhdGUgYSBuZXcgUVNWIGNvbnRleHQsIGl0IGF1 dG9tYXRpY2FsbHkNCj4gY3JlYXRlcw0KPiA+Pj4+IGFuDQo+ID4+Pj4+IGFwcHJvcHJpYXRlIGNo aWxkIGNvbnRleHQgLSBlaXRoZXIgaW1wbGljaXRseSAoYXV0byBtb2RlKSBvcg0KPiBleHBsaWNp dGx5LA0KPiA+Pj4+IGxpa2UNCj4gPj4+Pj4gdGhlIGZmbXBlZyBpbXBsZW1lbnRhdGlvbiBkb2Vz IGluIG1vc3QgY2FzZXMuDQo+ID4+Pj4NCj4gPj4+PiAuLi4gb3IgYnkgdXNpbmcgdGhlIG9uZSB0 aGUgdXNlciBzdXBwbGllcyB3aGVuIHRoZXkgY3JlYXRlIGl0Lg0KPiA+Pj4+DQo+ID4+Pj4+IFdo ZW4gd29ya2luZyB3aXRoICJ1c2VyLXN1cHBsaWVkIiBmcmFtZXMgb24gTGludXgsIHlvdSBuZWVk IHRvIGNyZWF0ZSBhDQo+ID4+Pj4gVkFBUEkNCj4gPj4+Pj4gY29udGV4dCB3aXRoIHRob3NlIGZy YW1lcyBhbmQgZGVyaXZlIGEgUVNWIGNvbnRleHQgZnJvbSB0aGF0IGNvbnRleHQuDQo+ID4+Pj4+ DQo+ID4+Pj4+IFRoZXJlIGlzIG5vIHdheSB0byBjcmVhdGUgb3Igc3VwcGx5IFFTViBmcmFtZXMg ZGlyZWN0bHkuDQo+ID4+Pj4NCj4gPj4+PiA/Pz8gIFRoZSBhYmlsaXR5IGZvciB0aGUgdXNlciB0 byBzZXQgdXAgdGhlaXIgb3duIHZlcnNpb24gb2YgdGhlc2UNCj4gdGhpbmdzDQo+ID4+IGlzDQo+ ID4+Pj4gbGl0ZXJhbGx5IHRoZSB3aG9sZSBwb2ludCBvZiB0aGUgc3BsaXQgYWxsb2MvaW5pdCBB UEkuDQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+IC8vIFNvbWUgdXNlciBzdHVmZiBpbnZvbHZpbmcg bGlibWZ4IC0gaGFzIGEgRDNEIG9yIFZBQVBJIGJhY2tpbmcsIGJ1dA0KPiB0aGlzDQo+ID4+Pj4g Y29kZSBkb2Vzbid0IG5lZWQgdG8gY2FyZSBhYm91dCBpdC4NCj4gPj4+Pg0KPiA+Pj4+IC8vIEl0 IGhhcyBhIHNlc3Npb24gYW5kIGNyZWF0ZXMgc29tZSBzdXJmYWNlcyB0byB1c2Ugd2l0aCBNZW1J ZCBmaWxsZWQNCj4gPj4+PiBjb21wYXRpYmxlIHdpdGggZmZtcGVnLg0KPiA+Pj4+IHVzZXJfc2Vz c2lvbiA9IC4uLjsNCj4gPj4+PiB1c2VyX3N1cmZhY2VzID0gLi4uOw0KPiA+Pj4+DQo+ID4+Pj4g Ly8gTm8gZmZtcGVnIGludm9sdmVkIGJlZm9yZSB0aGlzLCBub3cgd2Ugd2FudCB0byBwYXNzIHRo ZXNlIHN1cmZhY2VzDQo+ID4+IHdlJ3ZlDQo+ID4+Pj4gZ290IGludG8gZmZtcGVnLg0KPiA+Pj4+ DQo+ID4+Pj4gLy8gQ3JlYXRlIGEgZGV2aWNlIGNvbnRleHQgdXNpbmcgdGhlIGV4aXN0aW5nIHNl c3Npb24uDQo+ID4+Pj4NCj4gPj4+PiBtZnhfY3R4ID0gYXZfaHdkZXZpY2VfY3R4X2FsbG9jKE1G WCk7DQo+ID4+Pj4NCj4gPj4+PiBkYyA9IG1meF9jdHgtPmRhdGE7DQo+ID4+Pj4gbWZ4X2RjID0g ZGMtPmh3Y3R4Ow0KPiA+Pj4+IG1meF9kYy0+c2Vzc2lvbiA9IHVzZXJfc2Vzc2lvbjsNCj4gPj4+ Pg0KPiA+Pj4+IGF2X2h3ZGV2aWNlX2N0eF9pbml0KG1meF9jdHgpOw0KPiA+Pj4+DQo+ID4+Pj4g Ly8gQ3JlYXRlIGEgZnJhbWVzIGNvbnRleHQgb3V0IG9mIHRoZSBzdXJmYWNlcyB3ZSd2ZSBnb3Qu DQo+ID4+Pj4NCj4gPj4+PiBtZnhfZnJhbWVzID0gYXZfaHdmcmFtZXNfY3R4X2FsbG9jKG1meF9j dHgpOw0KPiA+Pj4+DQo+ID4+Pj4gZmMgPSBtZnhfZnJhbWVzLT5kYXRhOw0KPiA+Pj4+IGZjLnBv b2wgPSB1c2VyX3N1cmZhY2VzLmFsbG9jYXRvcjsNCj4gPj4+PiBmYy53aWR0aCA9IHVzZXJfc3Vy ZmFjZXMud2lkdGg7DQo+ID4+Pj4gLy8gZXRjLg0KPiA+Pj4+DQo+ID4+Pj4gbWZ4X2ZjID0gZmMt Pmh3Y3R4Ow0KPiA+Pj4+IG1meF9mYy5zdXJmYWNlcyA9IHVzZXJfc3VyZmFjZXMuYXJyYXk7DQo+ ID4+Pj4gbWZ4X2ZjLm5iX3N1cmZhY2VzID0gdXNlcl9zdXJmYWNlcy5jb3VudDsNCj4gPj4+PiBt ZnhfZmMuZnJhbWVfdHlwZSA9IHVzZXJfc3VyZmFjZXMubWVtdHlwZTsNCj4gPj4+Pg0KPiA+Pj4+ IGF2X2h3ZnJhbWVfY3R4X2luaXQoZnJhbWVzKTsNCj4gPj4+Pg0KPiA+Pj4+IC8vIERvIHN0dWZm IHdpdGggZnJhbWVzLg0KPiA+Pj4NCj4gPj4+IEkgd291bGRuJ3QgY29uc2lkZXIgYW4gbWZ4U2Vz c2lvbiBhcyBhbiBlbnRpdHkgdGhhdCBjb3VsZCBvciBzaG91bGQgYmUNCj4gPj4+IHNoYXJlZCBi ZXR3ZWVuIGltcGxlbWVudGF0aW9ucy4gSU1PLCB0aGlzIGlzIG5vdCBhIHZhbGlkIHVzZSBjYXNl Lg0KPiA+Pj4gQSBjb25zdW1lciBvZiB0aGUgbWZ4IEFQSSBuZWVkcyB0byBtYWtlIGNlcnRhaW4g Y2hvaWNlcyByZWdhcmRpbmcNCj4gPj4+IHRoZSB1c2FnZSBvZiB0aGUgQVBJLCBvbmUgb2Ygd2hp Y2ggaXMgdGhlIHdheSBob3cgZnJhbWVzIGFyZSBhbGxvY2F0ZWQNCj4gPj4+IGFuZCBtYW5hZ2Vk Lg0KPiA+Pj4gVGhpcyBpcyBub3Qgc29tZXRoaW5nIHRoYXQgaXMgbWVhbnQgdG8gYmUgc2hhcmVk IGJldHdlZW4gaW1wbGVtZW50YXRpb25zLg0KPiA+Pj4gRXZlbiBpbnNpZGUgZmZtcGVnLCB3ZSBk b24ndCB1c2UgYSBzaW5nbGUgbWZ4IHNlc3Npb24uIFdlIHVzZSBzZXBhcmF0ZQ0KPiA+Pj4gc2Vz c2lvbnMgZm9yIGRlY29kaW5nLCBlbmNvZGluZyBhbmQgZmlsdGVyaW5nIHRoYXQgYXJlIGpvaW5l ZCB0b2dldGhlcg0KPiA+Pj4gdmlhIE1GWEpvaW5TZXNzaW9uLg0KPiA+Pj4gV2hlbiBhbiAoZmZt cGVnLSlBUEkgY29uc3VtZXIgaXMgY3JlYXRpbmcgaXRzIG93biBNRlggc2Vzc2lvbiBhbmQgaXRz DQo+ID4+PiBvd24gZnJhbWUgYWxsb2NhdG9yIGltcGxlbWVudGF0aW9uLCBpdCBzaG91bGRuJ3Qg YmUgYW5kIGFsbG93ZWQNCj4gPj4+IHNjZW5hcmlvIHRvIGNyZWF0ZSBhbiBmZm1wZWcgaHcgY29u dGV4dCB1c2luZyB0aGlzIHNlc3Npb24uDQo+ID4+DQo+ID4+IFRoZSB1c2VyIGlzIGFsc28gYXdh cmUgb2YgdGhlIHRocmVhZCBzYWZldHkgcnVsZXMuICBJIHdhcyBnaXZpbmcgdGhlDQo+IGV4YW1w bGUNCj4gPj4gYWJvdmUgZW50aXJlbHkgc2VyaWFsbHkgdG8gYXZvaWQgdGhhdCwgYnV0IGlmIHRo ZXkgd2VyZSB1c2luZyBsaWJtZngNCj4gPj4gZWxzZXdoZXJlIGluIHBhcmFsbGVsIHdpdGggdGhl IGFib3ZlIHRoZW4gaW5kZWVkIHRoZXkgd291bGQgbmVlZCBhIGJpdA0KPiBtb3JlDQo+ID4+IGNh cmUgKGNyZWF0ZSBhbm90aGVyIHNlc3Npb24sIHNvbWUgc29ydCBvZiBsb2NraW5nIHRvIGVuc3Vy ZQ0KPiBzZXJpYWxpc2F0aW9uKQ0KPiA+PiB3aGVuIHBhc3NpbmcgaXQgdG8gZmZtcGVnLg0KPiA+ Pg0KPiA+Pj4gVGhpcyBzaG91bGRuJ3QgYmUgY29uc2lkZXJlZCBhIHB1YmxpYyBBUEkgb2YgZmZt cGVnIGJlY2F1c2UgaXQgZG9lc24ndA0KPiA+Pj4gbWFrZSBzZW5zZSB0byBzaGFyZSBhbiBtZngg c2Vzc2lvbiBsaWtlIHRoaXMuDQo+ID4+DQo+ID4+IFNvLCB0byBjbGFyaWZ5LCB5b3VyIG9waW5p b24gaXMgdGhhdCBub25lIG9mIGh3Y29udGV4dF9xc3YuaCBzaG91bGQgYmUNCj4gcHVibGljDQo+ ID4+IEFQST8gIElmIGl0IHdlcmUgYWN0dWFsbHkgcmVtb3ZlZCAobm90IHZpc2libGUgaW4gaW5z dGFsbGVkIGhlYWRlcnMpIHRoZW4NCj4gSQ0KPiA+PiBhZ3JlZSB0aGF0IHdvdWxkIGZpeCB0aGUg cHJvYmxlbS4NCj4gPg0KPiA+IEkgdGhpbmsgdGhhdCBleHBvc2luZyB0aGUgbWZ4IHNlc3Npb24g aGFuZGxlIGlzIE9LIGluIG9yZGVyIHRvIGFsbG93IGFuDQo+ID4gQVBJIHVzZXIgdG8gaW50ZXJv cCBpbiBhIHdheSB0aGF0IHlvdSBjcmVhdGUgKGFuZCBtYW5hZ2UpIHlvdXIgb3duIHNlc3Npb24N Cj4gPiBhbmQgeW91ciBvd24gc3VyZmFjZSBhbGxvY2F0aW9uLCBhbmQgdXNlIHRoZSBleHBvc2Vz IG1meCBzZXNzaW9uIGhhbmRsZSB0bw0KPiA+IGpvaW4gdGhlIGZmbXBlZy1jcmVhdGVkIChhbmQg bWFuYWdlZCkgc2Vzc2lvbi4NCj4gDQo+IEknbSBub3Qgc3VyZSB3aGF0IHlvdSBnYWluIGJ5IG1h a2luZyB0aGlzIG9uZSBkaXJlY3Rpb24gb25seS4gIFNldHRpbmcgaXQgaXMNCj4gY3VycmVudGx5 IHN1cHBvcnRlZCwgYW5kIGhhc24ndCBoYWQgYW4gQVBJLWJyZWFraW5nIGludGVybmFsIGNoYW5n ZSBsaWtlIHRoZQ0KPiBNZW1JZHMuDQoNCkl0J3MgYSBsb2dpY2FsIGNvbnNlcXVlbmNlIG9mIHRo ZSBNU0RLIEFQSSB0aGF0IHRoZXJlIGNhbid0IGJlICJ0d28NCm93bmVycyIgb2YgYW4gbWZ4IHNl c3Npb24gYW5kIHRoYXQgYW4gbWZ4IHNlc3Npb24gaXMgbm90IG1lYW50IHRvIGJlIHNoYXJlZA0K YmV0d2VlbiBpbXBsZW1lbnRhdGlvbnMgd2hlcmUgb25lIGltcGxlbWVudGF0aW9uIHRyaWVzIHRv ICJtYXRjaCIgdGhlIGZyYW1lIA0KYWxsb2NhdGlvbiBsb2dpYyBvZiB0aGUgb3RoZXIgb25lLg0K RXZlbiBkZWNvZGluZywgcHJvY2Vzc2luZyBhbmQgZW5jb2RpbmcgaW5zaWRlIGZmbXBlZyBhcmUg aGF2aW5nIHRoZWlyIG93biBtZnggDQpzZXNzaW9ucy4NCg0KQnV0IHRoZXJlIGFsc28gbmV2ZXIg ZXhpc3RlZCBhIGRvY3VtZW50ZWQgd2F5IGhvdyBpdCBjb3VsZC9zaG91bGQgYmUgdXNlZC4gDQoN CllvdSBzYWlkIHRoYXQgb25lIGNvdWxkIGhhdmUgaW5mZXJyZWQgc3VjaCB3YXkgZnJvbSBNU0RL IHNhbXBsZXMsIGJ1dCBsb29raW5nIA0KYXQgdGhlIE1TREsgc2FtcGxlcyBmb3IgVkFBUEksIHRo ZXJlIGFyZSBhbHJlYWR5IHR3byBkaWZmZXJlbnQgb25lcyB1c2luZyANCmRpZmZlcmVudCBzdHJ1 Y3R1cmVzIGZvciBtZnhNZW1JZC4NCg0KaHR0cHM6Ly9naXRodWIuY29tL0ludGVsLU1lZGlhLVNE Sy9NZWRpYVNESy9ibG9iLzUxMGQxOWRjYWNlMWQ4YzU3NTY3ZmRkNDBiNTU3MTU1YWIxMWFiOGUv dHV0b3JpYWxzL2NvbW1vbi9jb21tb25fdmFhcGkuY3BwI0wxOTktTDIwNw0KDQpodHRwczovL2dp dGh1Yi5jb20vSW50ZWwtTWVkaWEtU0RLL01lZGlhU0RLL2Jsb2IvNTEwZDE5ZGNhY2UxZDhjNTc1 NjdmZGQ0MGI1NTcxNTVhYjExYWI4ZS9fc3R1ZGlvL3NoYXJlZC9pbmNsdWRlL2xpYm1meF9hbGxv Y2F0b3JfdmFhcGkuaCNMMzMtTDM5DQoNClNvLCBJIHdvdWxkbid0IHNheSB0aGF0IGl0J3Mgb2J2 aW91cyBvciBzdHJhaWdodGZvcndhcmQgaG93IGl0IHdvdWxkIGJlIA0KaW1wbGVtZW50ZWQgIm5v cm1hbGx5Ii4NCg0KDQo+ID4+PiBCZXNpZGVzIHRoYXQsIGlzIHRoZXJlIGFueSBmZm1wZWcgZG9j dW1lbnRhdGlvbiBpbmRpY2F0aW5nIHRoYXQNCj4gPj4+IHRoZSBtZW1JZCBmaWVsZCBvZiBtZnhG cmFtZVN1cmZhY2UxIGNvdWxkIGJlIGNhc3RlZCB0byBWQVN1cmZhY2VJZD8NCj4gPj4NCj4gPj4g SXQgaXMgdXNlci12aXNpYmxlIEFQSSwgYW5kIGl0IG1hdGNoZWQgdGhlIGJlaGF2aW91ciBvZiB0 aGUgbGlibWZ4DQo+IGV4YW1wbGVzDQo+ID4+IGZvciBEM0Q5IChpZGVudGljYWwgcG9pbnRlciB0 byBJRGlyZWN0M0RTdXJmYWNlOSkgYW5kIFZBQVBJIChhIGNvbXBhdGlibGUNCj4gPj4gcG9pbnRl ciB0byBhIHN0cnVjdHVyZSB3aXRoIHRoZSBWQVN1cmZhY2VJRCBhcyB0aGUgZmlyc3QgbWVtYmVy KSBzbyBkb2luZw0KPiB0aGUNCj4gPj4gb2J2aW91cyB0aGluZyB3b3JrZWQuDQo+ID4NCj4gPiBB bHNvIEkgdGhpbmsgaXQncyBPSyB0byBleHBvc2UgdGhlIGFycmF5IG9mIG1meFN1cmZhY2UxIHBv aW50ZXJzIGFsbG93aW5nDQo+ID4gdG8gdXNlIHRoZW0gaW4gYSBvcGFxdWUgd2F5ICh3aXRob3V0 IG1ha2luZyB1c2Ugb2YgYW5kIGFueSBhc3N1bXB0aW9ucw0KPiA+IGFib3V0IHRoZSBtZnhNZW1J ZCBmaWVsZCkuDQo+ID4NCj4gPiBUaGlzIHdvdWxkIGFsbG93IGFuIEFQSSB1c2VyIHRvIGludGVy b3BlcmF0ZSB3aXRoIGEgam9pbmVkIHNlc3Npb24sIGUuZy4NCj4gPiB0YWtpbmcgZnJhbWVzIGZy b20gYSBqb2luZWQgZmZtcGVnIHNlc3Npb24gYXMgaW5wdXQgdG8gYSB1c2VyLWNyZWF0ZWQNCj4g PiBzZXNzaW9uIGRvaW5nIGN1c3RvbSBWUFAgb3BlcmF0aW9ucyB3aGVyZSB0aGUgb3V0cHV0IGZy YW1lcyBhcmUgZnJvbSAoYW5kDQo+ID4gbWFuYWdlZCBieSkgdGhlIHVzZXItY3JlYXRlZCBzZXNz aW9uLg0KPiA+DQo+ID4gT24gdGhlIG90aGVyIHNpZGUsIHdoZW4gYW5kIEFQSSB1c2VyIHdhbnRz IHRvIGFjY2VzcyBhbmQgaW50ZXJvcCB3aXRoDQo+IGZyYW1lcw0KPiA+IGRpcmVjdGx5LCB0aGVu IHRoZSBwcm9wZXIgd2F5IHdvdWxkIGJlIHRvIHVzZSBkZXJpdmUtZnJvbSBvciBkZXJpdmUtdG8N Cj4gPiAoVkFBUEksIEQzRDksIEQzRDExKSB0byBnZXQgYW4gYXBwcm9wcmlhdGUgZnJhbWVzIGNv bnRleHQgdG8gd29yayB3aXRoLg0KPiA+DQo+ID4gVGhhdCdzIGhvdyBJIHdvdWxkIHNlZSBpdC4g V2hhdCBkbyB5b3UgdGhpbms/DQo+IEkgZG9uJ3QgbXVjaCBsaWtlIHRoZSBpZGVhIG9mIGEgc3Bl Y2lhbC1jYXNlIGZvciByZWFkLW9ubHkgc3RydWN0dXJlcyBoZXJlLA0KPiB1bmxpa2UgYWxsIG90 aGVyIGh3Y29udGV4dHMuDQo+IA0KPiBBbnkgdXNlcnMgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbiBi cm9rZW4gYnkgdGhlIEFQSSBjaGFuZ2UuICBJcyB0aGVyZSBhbnkNCj4gcmVhc29uIHRvIGJlbGll dmUgdGhhdCBpdCB3aWxsIGNoYW5nZSBhZ2Fpbj8gIElmIG5vdCwgd2UgY291bGQgZG9jdW1lbnQg dGhlDQo+IG5ldyBiZWhhdmlvdXIgYW5kIHNheSB0aGF0J3MgdGhlIG5ldyBBUEkuDQoNCkkgZG9u J3Qga25vdy4uLiBNYXliZSBvcGVuVlBMIHdpbGwgc3RhcnQgdG8gc3VwcG9ydCBWdWxrYW4gYXMg YSBjaGlsZCBjb250ZXh0DQphbmQgbWF5YmUgbWZ4SGFuZGxlUGFpciB3b24ndCBzdWZmaWNlIGlu IHRoYXQgY2FzZS4uPw0KDQpJdCBqdXN0IGFwcGVhcnMgYW4gb2RkIGNhc2UgdG8gbWUgdG8gInN1 cHBvcnQiIGEgY2FzZSB3aGVyZSB0aGUgb3duZXJzaGlwDQpvZiBhbiBtZnggc2Vzc2lvbiBpcyBz aGFyZWQgYW5kIG5vdCBjbGVhcmx5IHNlcGFyYXRlZC4gDQoNCj4gSWYgd2UgZG8gZXhwZWN0IGl0 IHRvIGNoYW5nZSBmdXJ0aGVyLCB0aGVuIEkgZ3Vlc3MgdGhhdCB3aGF0IHlvdSBzYXkgaXMNCj4g cHJvYmFibHkgdGhlIGxlYXN0LWJhZCBvcHRpb24uICAoSXQgd291bGQgd2FudCBzb21lIGV4dHJh IGNvZGUgdG8gZGlzYWxsb3cNCj4gZXh0ZXJuYWwgcG9vbHMgc28gdGhhdCB1c2VycyBjYW4ndCBn ZXQgaW50byB0aGUgYmFkIGNhc2UgYWdhaW4sIHRvby4pDQoNCkkgZG9uJ3QgdGhpbmsgaXQncyBi YWQgYXQgYWxsLCBidXQgdGhlIG1vc3QgcmVhc29uYWJsZSB3YXkgYXMgaXQgaW1wbGllcw0KY29u c3RyYWludHMgdGhhdCBhcmUgaW1wbGllZCBieSB0aGUgbGlibWZ4IEFQSS4NClRob3VnaCwgSSBk b24ndCB3YW50IHRvIGRlc3Ryb3kgc29tYm9keSdzIHVzZSBjYXNlLCBidXQgSSB0aGluayB3aGVu IHRoZXJlIA0Kd291bGQgYmUgYW55Ym9keSB3aG8gdXNlcyB0aGUgcXN2IGNvbnRleHQgbGlrZSB0 aGF0LCBoZSB3b3VsZCBhbHJlYWR5IGtub3cgDQp3aGF0IGhlJ3MgZG9pbmcgKGFuZCB0aGF0IGl0 J3MgbW9yZSBhIGtpbmQgb2YgYSBoYWNrIHRoYW4gcmVndWxhciANCmltcGxlbWVudGF0aW9uKS4N Cg0KTWF5YmUgdGhlIGVhc2llc3Qgc29sdXRpb24gaXMgdG8gbGVhdmUgaXQgYXMtaXMgYW5kIHB1 dCBhIG5vdGUgc29tZXdoZXJlIA0KYWJvdXQgdGhhdCBjaGFuZ2UuDQood2hpbGUgaW4gcmVhbGl0 eSwgbm9ib2R5IHdpbGwgcmVhZCB0aGF0IG5vdGUgaW4gdGhlIGZpcnN0IHBsYWNlLiBvbmUgd291 bGQNCm5vdGljZSB0aGF0IGl0IGRvZXNu4oCZdCB3b3JrIGxpa2UgYmVmb3JlIGFuZCBzdGFydCBy ZXNlYXJjaGluZyB3aHkuLikNCg0KS2luZCByZWdhcmRzLA0Kc29mdHdvcmt6DQoNCg0KPiAtIE1h cmsNCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4g ZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdA0KPiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZw0KPiBo dHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwNCj4gDQo+IFRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbA0KPiBmZm1wZWctZGV2ZWwt cmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLg0KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxp bmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1h bi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3Zl LCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAi dW5zdWJzY3JpYmUiLgo=