From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id CE055A00BE; Tue, 29 Oct 2019 18:20:02 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E163D1BF50; Tue, 29 Oct 2019 18:20:01 +0100 (CET) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20053.outbound.protection.outlook.com [40.107.2.53]) by dpdk.org (Postfix) with ESMTP id A13B11BF4C for ; Tue, 29 Oct 2019 18:20:00 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RqNj8Cvt+tajn0R458/2dD+TjyTXTV2cOxjCjJAuPPXZMudK1OgmXtHW06Ma3O40A039wccFbwSi0C8w5syAOx14FlshieFHHOLIHCUJkmHU2Rm3yI1ioimsdBZtIOvFf+ONiEWJQDNuG0zu8mvI6gefjmWB697hS62kFlH9BDMs65iJtrsot2wYeGxYaiW3ucDUOhPw7+qTTx/8Bd32+aEVwjLRTIOv1spp88Hpe+0jhyvDmqFQ1XvBCpwfbngoA5K5FJMYut8bXrZuaMb3RJpq3jcSoSlBtO5wtSOPTxLMIVRj2wl34mdoj4m9FJDdCpGUjNDAyCdnXXxBDlY6VA== 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-SenderADCheck; bh=lkWOClNzw1SXEcFnKv1xRyyC/bSnfKWnN3H9/Tc2PuM=; b=aWyZrbDQ75gjtdAiHmv4EfYv6/QvLDnXlFSdQcfTvrqHUjHaYFxIYbz+dy29GuKFzx68HDd2LYcLiKZs37eaxmAsaOddzWB3OKOvCvJJBL7fjbKROKiRQSE30qzeBwcmDQ/sR4oRfuWAAUSmRjXNt9V4Qc0sf5Ws94seV8BkUNYfTSuYpEom2aRO6fRBSm2HlrHZdK+LuRMyUshSfoEn9s3Vb0B3gEv8z38OJ+L6G/ejm2BHQzC1JWypuG1b4pnIxH/RwjQCNYdtRCKGcUOohuvvzcGxONKiy1qkUQHumEopuvHTrXobOZGDqkE/QCGbG8kIJSwFmTM++h6WrXu/KA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lkWOClNzw1SXEcFnKv1xRyyC/bSnfKWnN3H9/Tc2PuM=; b=S+c1vKTKhtDlmEXCdRdu1yB+Km6edVQ2qPVM09ue/rTz1uk/XwOy5jMhUZFRimHnujljZsWRLvfr7vap7SCeGsxzLFUV1blGvxPrOGdr4yxcBZJE6DNR/Upp8GXB+sjr7YzeYLqsDv/eXQQFkPeVKhD/0DeQhp391Uzgbtdpn3U= Received: from AM4PR05MB3265.eurprd05.prod.outlook.com (10.171.188.154) by AM4PR05MB3251.eurprd05.prod.outlook.com (10.171.187.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2387.20; Tue, 29 Oct 2019 17:19:58 +0000 Received: from AM4PR05MB3265.eurprd05.prod.outlook.com ([fe80::edab:529f:d14e:d3b]) by AM4PR05MB3265.eurprd05.prod.outlook.com ([fe80::edab:529f:d14e:d3b%7]) with mapi id 15.20.2387.027; Tue, 29 Oct 2019 17:19:58 +0000 From: Slava Ovsiienko To: Andrew Rybchenko , "dev@dpdk.org" CC: Thomas Monjalon , Matan Azrad , "olivier.matz@6wind.com" , Ori Kam , Yongseok Koh Thread-Topic: [dpdk-dev] [PATCH v4] ethdev: extend flow metadata Thread-Index: AQHVjPYP3yCquRGX4Ean9kYpOkOfjqdx0C4AgAAEMrA= Date: Tue, 29 Oct 2019 17:19:58 +0000 Message-ID: References: <1571922495-4588-1-git-send-email-viacheslavo@mellanox.com> <1572201636-16374-1-git-send-email-viacheslavo@mellanox.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=viacheslavo@mellanox.com; x-originating-ip: [95.164.10.10] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: ec8d8eef-8a7d-48b2-6f50-08d75c943981 x-ms-traffictypediagnostic: AM4PR05MB3251:|AM4PR05MB3251: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0205EDCD76 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(136003)(396003)(366004)(39860400002)(346002)(189003)(13464003)(199004)(51444003)(30864003)(476003)(71190400001)(11346002)(33656002)(107886003)(74316002)(52536014)(446003)(71200400001)(66066001)(5660300002)(55016002)(25786009)(3846002)(6116002)(256004)(14444005)(102836004)(66446008)(186003)(66476007)(66556008)(64756008)(76176011)(316002)(86362001)(66946007)(478600001)(76116006)(4326008)(8676002)(81156014)(81166006)(7696005)(110136005)(14454004)(9686003)(54906003)(26005)(486006)(6436002)(229853002)(6506007)(53546011)(6246003)(8936002)(99286004)(2906002)(305945005)(7736002)(2501003)(579004)(309714004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3251; H:AM4PR05MB3265.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: s4laskeo0zmRv/ijgXXM3Kcp4voTp8kto8Ngl73uyiaVTlSvMLUWMmtVXqQbjdcLTpZSgDQs4zCO86mXkX3GWtxv0zqOL0Obi6vP9zM5T1SUECdrc1W+fzQrdoddgS78s5xPTk/aFkwJBfSLOjPIUVEhCyjQ95St4J8p3RxbIQAVas4jZOvabf7VIL263Lw4L1LSBtckYcPT1HVtRya6sIa9U6PGZadqzOou/SLlPL0RrvJxsY+xxK3iNo+9mF6yIoeEaP1UqZZZpo0jzrIK12AoVW3akhHmnzmm0OdxVQ9v1hCr5ukmx9rzcbFQYxam5A8Icz6e+epn8cyD17u7BIfYoPyq8liZCi0qUkFP2p6BEUk47UWl10inHHW2g0pZdGJkfZVIEyrBBEx3RJd511Yi82S5eB+rqMi89QmWryfumBJP0pOBBHijh/U8Zyto Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec8d8eef-8a7d-48b2-6f50-08d75c943981 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Oct 2019 17:19:58.4894 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: g/mvcdv5RwwOvaWk/z82KNSTAjXZS8XKpoBtATD+7bd0L4Yo2/slhcybTTVgoR+S1qIDhNUSwOGzIwkh9wWVz1Cz8hABtvTBMT7et7LqIZk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3251 Subject: Re: [dpdk-dev] [PATCH v4] ethdev: extend flow metadata X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGksIEFuZHJldw0KDQpUaGFuayB5b3UgZm9yIHRoZSByZXZpZXcuDQoNCj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5kcmV3IFJ5YmNoZW5rbyA8YXJ5YmNoZW5rb0Bzb2xh cmZsYXJlLmNvbT4NCj4gU2VudDogVHVlc2RheSwgT2N0b2JlciAyOSwgMjAxOSAxODoyMg0KPiBU bzogU2xhdmEgT3ZzaWllbmtvIDx2aWFjaGVzbGF2b0BtZWxsYW5veC5jb20+OyBkZXZAZHBkay5v cmcNCj4gQ2M6IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IE1hdGFuIEF6 cmFkDQo+IDxtYXRhbkBtZWxsYW5veC5jb20+OyBvbGl2aWVyLm1hdHpANndpbmQuY29tOyBPcmkg S2FtDQo+IDxvcmlrYUBtZWxsYW5veC5jb20+OyBZb25nc2VvayBLb2ggPHlza29oQG1lbGxhbm94 LmNvbT4NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHY0XSBldGhkZXY6IGV4dGVu ZCBmbG93IG1ldGFkYXRhDQo+IA0KPiBPbiAxMC8yNy8xOSA5OjQwIFBNLCBWaWFjaGVzbGF2IE92 c2lpZW5rbyB3cm90ZToNCj4gPiBDdXJyZW50bHksIG1ldGFkYXRhIGNhbiBiZSBzZXQgb24gZWdy ZXNzIHBhdGggdmlhIG1idWYgdHhfbWV0YWRhdGENCj4gPiBmaWVsZCB3aXRoIFBLVF9UWF9NRVRB REFUQSBmbGFnIGFuZCBSVEVfRkxPV19JVEVNX1RZUEVfTUVUQQ0KPiBtYXRjaGVzIG1ldGFkYXRh Lg0KPiA+DQo+ID4gVGhpcyBwYXRjaCBleHRlbmRzIHRoZSBtZXRhZGF0YSBmZWF0dXJlIHVzYWJp bGl0eS4NCj4gPg0KPiA+IDEpIFJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9NRVRBDQo+ID4NCj4g PiBXaGVuIHN1cHBvcnRpbmcgbXVsdGlwbGUgdGFibGVzLCBUeCBtZXRhZGF0YSBjYW4gYWxzbyBi ZSBzZXQgYnkgYSBydWxlDQo+ID4gYW5kIG1hdGNoZWQgYnkgYW5vdGhlciBydWxlLiBUaGlzIG5l dyBhY3Rpb24gYWxsb3dzIG1ldGFkYXRhIHRvIGJlIHNldA0KPiA+IGFzIGEgcmVzdWx0IG9mIGZs b3cgbWF0Y2guDQo+ID4NCj4gPiAyKSBNZXRhZGF0YSBvbiBpbmdyZXNzDQo+ID4NCj4gPiBUaGVy ZSdzIGFsc28gbmVlZCB0byBzdXBwb3J0IG1ldGFkYXRhIG9uIGluZ3Jlc3MuIE1ldGFkYXRhIGNh biBiZSBzZXQNCj4gPiBieSBTRVRfTUVUQSBhY3Rpb24gYW5kIG1hdGNoZWQgYnkgTUVUQSBpdGVt IGxpa2UgVHguIFRoZSBmaW5hbCB2YWx1ZQ0KPiA+IHNldCBieSB0aGUgYWN0aW9uIHdpbGwgYmUg ZGVsaXZlcmVkIHRvIGFwcGxpY2F0aW9uIHZpYSBtZXRhZGF0YQ0KPiA+IGR5bmFtaWMgZmllbGQg b2YgbWJ1ZiB3aGljaCBjYW4gYmUgYWNjZXNzZWQgYnkNCj4gUlRFX0ZMT1dfRFlORl9NRVRBREFU QSgpLg0KPiA+IFBLVF9SWF9EWU5GX01FVEFEQVRBIGZsYWcgd2lsbCBiZSBzZXQgYWxvbmcgd2l0 aCB0aGUgZGF0YS4NCj4gPg0KPiA+IFRoZSBtYnVmIGR5bmFtaWMgZmllbGQgbXVzdCBiZSByZWdp c3RlcmVkIGJ5IGNhbGxpbmcNCj4gPiBydGVfZmxvd19keW5mX21ldGFkYXRhX3JlZ2lzdGVyKCkg cHJpb3IgdG8gdXNlIFNFVF9NRVRBIGFjdGlvbi4NCj4gPg0KPiA+IFRoZSBhdmFpbGFiaWxpdHkg b2YgZHluYW1pYyBtYnVmIG1ldGFkYXRhIGZpZWxkIGNhbiBiZSBjaGVja2VkIHdpdGgNCj4gPiBy dGVfZmxvd19keW5mX21ldGFkYXRhX2F2YWlsKCkgcm91dGluZS4NCj4gPg0KPiA+IEZvciBsb29w YmFjay9oYWlycGluIHBhY2tldCwgbWV0YWRhdGEgc2V0IG9uIFJ4L1R4IG1heSBvciBtYXkgbm90 IGJlDQo+ID4gcHJvcGFnYXRlZCB0byB0aGUgb3RoZXIgcGF0aCBkZXBlbmRpbmcgb24gaGFyZHdh cmUgY2FwYWJpbGl0eS4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFlvbmdzZW9rIEtvaCA8eXNr b2hAbWVsbGFub3guY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFZpYWNoZXNsYXYgT3ZzaWllbmtv IDx2aWFjaGVzbGF2b0BtZWxsYW5veC5jb20+DQo+IA0KPiBBYm92ZSBleHBsYW5hdGlvbnMgbGFj ayBpbmZvcm1hdGlvbiBhYm91dCAibWV0YSIgdnMgIm1hcmsiIHdoaWNoIG1heSBiZQ0KPiBzZXQg b24gUnggYXMgd2VsbCBhbmQgZGVsaXZlcmVkIGluIG90aGVyIG1idWYgZmllbGQuDQo+IEl0IHNo b3VsZCBiZSBleHBsYWluZWQgYnkgb25lIG1vcmUgZmllbGQgaXMgcmVxdWlyZWQgYW5kIHJ1bGVz IGRlZmluZWQuDQoNClRoZXJlIGlzIHNvbWUgc3RvcnkgYWJvdXQgbWV0YWRhdGEgZmVhdHVyZXMu DQpJbml0aWFsbHksIHRoZXJlIHdlcmUgcHJvcG9zZWQgdHdvIG1ldGFkYXRhIHJlbGF0ZWQgYWN0 aW9uczoNCg0KLSBSVEVfRkxPV19BQ1RJT05fVFlQRV9GTEFHDQotIFJURV9GTE9XX0FDVElPTl9U WVBFX01BUksNCg0KVGhlc2UgYWN0aW9ucyBzZXQgdGhlIHNwZWNpYWwgZmxhZyBpbiB0aGUgcGFj a2V0IG1ldGFkYXRhLCBNQVJLIGFjdGlvbiBzdG9yZXMgc29tZQ0Kc3BlY2lmaWVkIHZhbHVlIGlu IHRoZSBtZXRhZGF0YSBzdG9yYWdlLCBhbmQsIG9uIHRoZSBwYWNrZXQgcmVjZWl2aW5nIFBNRCBw dXRzIHRoZSBmbGFnDQphbmQgdmFsdWUgdG8gdGhlIG1idWYgYW5kIGFwcGxpY2F0aW9ucyBjYW4g c2VlIHRoZSBwYWNrZXQgd2FzIHRocmVhdGVkIGluc2lkZSBmbG93IGVuZ2luZQ0KYWNjb3JkaW5n IHRvIHRoZSBhcHByb3ByaWF0ZSBSVEUgZmxvdyhzKS4gTUFSSyBhbmQgRkxBRyBhcmUgbGlrZSBz b21lIGtpbmQgb2YgZ2F0ZXdheQ0KdG8gdHJhbnNmZXIgc29tZSBwZXItcGFja2V0IGluZm9ybWF0 aW9uIGZyb20gdGhlIGZsb3cgZW5naW5lIHRvIHRoZSBhcHBsaWNhdGlvbg0KdmlhIHJlY2Vpdmlu ZyBkYXRhcGF0aC4NCg0KRnJvbSB0aGUgZGF0YXBhdGggcG9pbnQgb2YgdmlldywgdGhlIE1BUksg YW5kIEZMQUcgYXJlIHJlbGF0ZWQgdG8gdGhlIHJlY2VpdmluZyBzaWRlIG9ubHkuDQpJdCB3b3Vs ZCB1c2VmdWwgdG8gaGF2ZSB0aGUgc2FtZSBnYXRld2F5IG9uIHRoZSB0cmFuc21pdHRpbmcgc2lk ZSBhbmQgdGhlcmUgd2FzIHRoZSBmZWF0dXJlDQpvZiB0eXBlIFJURV9GTE9XX0lURU1fVFlQRV9N RVRBIHdhcyBwcm9wb3NlZC4gVGhlIGFwcGxpY2F0aW9uIGNhbiBmaWxsIHRoZSBmaWVsZCBpbiBt YnVmDQphbmQgdGhpcyB2YWx1ZSB3aWxsIGJlIHRyYW5zZmVycmVkIHRvIHNvbWUgZmllbGQgaW4g dGhlIHBhY2tldCBtZXRhZGF0YSBpbnNpZGUgdGhlIGZsb3cgZW5naW5lLg0KSXQgZGlkIG5vdCBt YXR0ZXIgd2hldGhlciB0aGVzZSBtZXRhZGF0YSBmaWVsZHMgYXJlIHNoYXJlZCBiZWNhdXNlIG9m IE1BUksgYW5kIE1FVEEgaXRlbXMNCmJlbG9uZ2VkIHRvIGRpZmZlcmVudCBkb21haW5zIChyZWNl aXZpbmcgYW5kIHRyYW5zbWl0dGluZykgYW5kIGNvdWxkIGJlIHZlbmRvci1zcGVjaWZpYy4NCg0K U28gZmFyLCBzbyBnb29kLCBEUERLIHByb3Bvc2VzIHNvbWUgZW50aXRpZXMgdG8gY29udHJvbCBt ZXRhZGF0YSBpbnNpZGUgdGhlIGZsb3cgZW5naW5lDQphbmQgZ2F0ZXdheXMgdG8gZXhjaGFuZ2Ug dGhlc2UgdmFsdWVzIG9uIGEgcGVyLXBhY2tldCBiYXNpcyB2aWEgZGF0YXBhdGhzLg0KDQpBcyB3 ZSBjYW4gc2VlLCB0aGUgTUFSSyBhbmQgTUVUQSBtZWFucyBhcmUgbm90IHN5bW1ldHJpYywgdGhl cmUgaXMgYWJzZW50IGFjdGlvbiB3aGljaA0Kd291bGQgYWxsb3cgdXMgdG8gc2V0IE1FVEEgdmFs dWUgb24gdGhlIHRyYW5zbWl0dGluZyBwYXRoLiBTbywgdGhlIGFjdGlvbiBvZiB0eXBlOg0KLSBS VEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfTUVUQSBpcyBwcm9wb3NlZC4NCg0KVGhlIG5leHQsIGFw cGxpY2F0aW9ucyByYWlzZSB0aGUgbmV3IHJlcXVpcmVtZW50cyBmb3IgcGFja2V0IG1ldGFkYXRh LiBUaGUgZmxvdyBlbmdpbmVzIGFyZQ0KZ2V0dGluZyBtb3JlIGNvbXBsZXgsIGludGVybmFsIHN3 aXRjaGVzIGFyZSBpbnRyb2R1Y2VkLCBtdWx0aXBsZSBwb3J0cyBtaWdodCBiZSBzdXBwb3J0ZWQg d2l0aGluDQp0aGUgc2FtZSBmbG93IGVuZ2luZSBuYW1lc3BhY2UuIEZyb20gdGhlIERQREsgcG9p bnRzIG9mIHZpZXcsIGl0IG1lYW5zIHRoZSBwYWNrZXRzIG1pZ2h0IGJlIHNlbnQNCm9uIG9uZSBl dGhfZGV2IHBvcnQgYW5kIHJlY2VpdmVkIG9uIHRoZSBvdGhlciBvbmUsIGFuZCB0aGUgcGFja2V0 IHBhdGggaW5zaWRlIHRoZSBmbG93IGVuZ2luZSBlbnRpcmVseQ0KYmVsb25ncyB0byB0aGUgc2Ft ZSBoYXJkd2FyZSBkZXZpY2UuIFRoZSBzaW1wbGVzdCBleGFtcGxlIGlzIFNSLUlPViB3aXRoIFBG LCBWRnMgYW5kIHRoZSByZXByZXNlbnRvcnMuDQpBbmQgdGhlcmUgaXMgYSBicmlsbGlhbnQgb3Bw b3J0dW5pdHkgdG8gcHJvdmlkZSBzb21lIG91dC1vZi1iYW5kIGNoYW5uZWwgdG8gdHJhbnNmZXIg c29tZSBleHRyYSBkYXRhDQogZnJvbSBvbmUgcG9ydCB0byBhbm90aGVyIG9uZSwgYmVzaWRlcyB0 aGUgcGFja2V0IGRhdGEgaXRzZWxmLg0KDQoNCj4gQWJvdmUgZXhwbGFuYXRpb25zIGxhY2sgaW5m b3JtYXRpb24gYWJvdXQgIm1ldGEiIHZzICJtYXJrIiB3aGljaCBtYXkgYmUNCj4gc2V0IG9uIFJ4 IGFzIHdlbGwgYW5kIGRlbGl2ZXJlZCBpbiBvdGhlciBtYnVmIGZpZWxkLg0KPiBJdCBzaG91bGQg YmUgZXhwbGFpbmVkIGJ5IG9uZSBtb3JlIGZpZWxkIGlzIHJlcXVpcmVkIGFuZCBydWxlcyBkZWZp bmVkLg0KPiBPdGhlcndpc2Ugd2UgY2FuIGVuZHVwIGluIGhhbGYgUE1EcyBzdXBwb3J0aW5nIG1h cmsgb25seSwgaGFsZiBQTURzDQo+IHN1cHBvcnRpbmcgbWV0YSBvbmx5IGFuZCBhcHBsaWNhdGlv bnMgaW4gYW4gaW50ZXJlc3Rpbmcgc2l0dWF0aW9uIHRvIG1ha2UgYQ0KPiBjaG9pY2Ugd2hpY2gg b25lIHRvIHVzZS4NCg0KVGhlcmUgaXMgbm8gIm1hcmsiIHZzICJtZXRhIi4gTUFSSyBhbmQgTUVU QSBtZWFucyBhcmUga2VwdCBmb3IgY29tcGF0aWJpbGl0eSBpc3N1ZXMNCmFuZCBsZWdhY3kgcGFy dCB3b3JrcyBleGFjdGx5IGFzIGJlZm9yZS4gVGhlIHRyaWFscyAod2l0aCBmbG93X3ZhbGlkYXRl KSAgaXMgc3VwcG9zZWQNCnRvIGNoZWNrIHdoZXRoZXIgUE1EIHN1cHBvcnRzIE1BUksgb3IgTUVU QSBmZWF0dXJlIG9uIGFwcHJvcHJpYXRlIGRvbWFpbi4gSXQgZGVwZW5kcw0Kb24gUE1EIGltcGxl bWVudGF0aW9uLCBjb25maWd1cmF0aW9uIGFuZCB1bmRlcmxheWluZyBIVy9GVy9rZXJuZWwgY2Fw YWJpbGl0aWVzIGFuZA0Kc2hvdWxkIGJlIHJlc29sdmVkIGluIHJ1bnRpbWUuDQoNCj4gDQo+IFtz bmlwXQ0KPiANCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93 LnJzdA0KPiA+IGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdA0KPiA+IGluZGV4 IDE1OWNlMTkuLmM5NDNhY2EgMTAwNjQ0DQo+ID4gLS0tIGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRl L3J0ZV9mbG93LnJzdA0KPiA+ICsrKyBiL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5y c3QNCj4gPiBAQCAtNjU4LDYgKzY1OCwzMiBAQCB0aGUgcGh5c2ljYWwgZGV2aWNlLCB3aXRoIHZp cnR1YWwgZ3JvdXBzIGluIHRoZQ0KPiBQTUQgb3Igbm90IGF0IGFsbC4NCj4gPiAgICAgIHwgYGBt YXNrYGAgfCBgYGlkYGAgICB8IHplcm9lZCB0byBtYXRjaCBhbnkgdmFsdWUgfA0KPiA+ICAgICAg Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ID4N Cj4gPiArSXRlbTogYGBNRVRBYGANCj4gPiArXl5eXl5eXl5eXl5eXl5eXl4NCj4gPiArDQo+ID4g K01hdGNoZXMgMzIgYml0IG1ldGFkYXRhIGl0ZW0gc2V0Lg0KPiA+ICsNCj4gPiArT24gZWdyZXNz LCBtZXRhZGF0YSBjYW4gYmUgc2V0IGVpdGhlciBieSBtYnVmIG1ldGFkYXRhIGZpZWxkIHdpdGgN Cj4gPiArUEtUX1RYX01FVEFEQVRBIGZsYWcgb3IgYGBTRVRfTUVUQWBgIGFjdGlvbi4gT24gaW5n cmVzcywNCj4gYGBTRVRfTUVUQWBgDQo+ID4gK2FjdGlvbiBzZXRzIG1ldGFkYXRhIGZvciBhIHBh Y2tldCBhbmQgdGhlIG1ldGFkYXRhIHdpbGwgYmUgcmVwb3J0ZWQNCj4gPiArdmlhIGBgbWV0YWRh dGFgYCBkeW5hbWljIGZpZWxkIG9mIGBgcnRlX21idWZgYCB3aXRoDQo+IFBLVF9SWF9EWU5GX01F VEFEQVRBIGZsYWcuDQo+ID4gKw0KPiA+ICstIERlZmF1bHQgYGBtYXNrYGAgbWF0Y2hlcyB0aGUg c3BlY2lmaWVkIFJ4IG1ldGFkYXRhIHZhbHVlLg0KPiA+ICsNCj4gPiArLi4gX3RhYmxlX3J0ZV9m bG93X2l0ZW1fbWV0YToNCj4gPiArDQo+ID4gKy4uIHRhYmxlOjogTUVUQQ0KPiA+ICsNCj4gPiAr ICAgKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rDQo+ID4gKyAgIHwgRmllbGQgICAgfCBTdWJmaWVsZCB8IFZhbHVlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICsNCj4gKz09PT09PT09PT0rPT09PT09PT09 PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gKw0KPiA+ICsgICB8 IGBgc3BlY2BgIHwgYGBkYXRhYGAgfCAzMiBiaXQgbWV0YWRhdGEgdmFsdWUgICAgICAgICAgICAg ICAgIHwNCj4gPiArICAgKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ID4gKyAgIHwgYGBsYXN0YGAgfCBgYGRhdGFgYCB8IHVw cGVyIHJhbmdlIHZhbHVlICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICsgICArLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4g PiArICAgfCBgYG1hc2tgYCB8IGBgZGF0YWBgIHwgYml0LW1hc2sgYXBwbGllcyB0byAic3BlYyIg YW5kICJsYXN0IiB8DQo+ID4gKyAgICstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsNCj4gPiAgIERhdGEgbWF0Y2hpbmcg aXRlbSB0eXBlcw0KPiA+ICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ID4NCj4gPiBAQCAt MTIzMiwyMSArMTI1OCw2IEBAIE1hdGNoZXMgYSBQUFBvRSBzZXNzaW9uIHByb3RvY29sIGlkZW50 aWZpZXIuDQo+ID4gICAtIGBgcHJvdG9faWRgYDogUFBQIHByb3RvY29sIGlkZW50aWZpZXIuDQo+ ID4gICAtIERlZmF1bHQgYGBtYXNrYGAgbWF0Y2hlcyBwcm90b19pZCBvbmx5Lg0KPiA+DQo+ID4g LQ0KPiA+IC0uLiBfdGFibGVfcnRlX2Zsb3dfaXRlbV9tZXRhOg0KPiA+IC0NCj4gPiAtLi4gdGFi bGU6OiBNRVRBDQo+ID4gLQ0KPiA+IC0gICArLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiAtICAgfCBGaWVsZCAgICB8IFN1 YmZpZWxkIHwgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ID4gLQ0K PiArPT09PT09PT09PSs9PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KPiArDQo+ID4gLSAgIHwgYGBzcGVjYGAgfCBgYGRhdGFgYCB8IDMyIGJpdCBtZXRh ZGF0YSB2YWx1ZSAgICAgICAgICAgICAgICAgfA0KPiA+IC0gICArLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiAtICAgfCBg YGxhc3RgYCB8IGBgZGF0YWBgIHwgdXBwZXIgcmFuZ2UgdmFsdWUgICAgICAgICAgICAgICAgICAg ICB8DQo+ID4gLSAgICstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+IC0gICB8IGBgbWFza2BgIHwgYGBkYXRhYGAgfCBiaXQt bWFzayBhcHBsaWVzIHRvICJzcGVjIiBhbmQgImxhc3QiIHwNCj4gPiAtICAgKy0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ID4g LQ0KPiA+ICAgSXRlbTogYGBOU0hgYA0KPiA+ICAgXl5eXl5eXl5eXl5eXg0KPiA+DQo+ID4gQEAg LTI0NjYsNiArMjQ3NywzNyBAQCBWYWx1ZSB0byBkZWNyZWFzZSBUQ1AgYWNrbm93bGVkZ21lbnQN Cj4gbnVtYmVyIGJ5IGlzIGEgYmlnLWVuZGlhbiAzMiBiaXQgaW50ZWdlci4NCj4gPg0KPiA+ICAg VXNpbmcgdGhpcyBhY3Rpb24gb24gbm9uLW1hdGNoaW5nIHRyYWZmaWMgd2lsbCByZXN1bHQgaW4g dW5kZWZpbmVkIGJlaGF2aW9yLg0KPiA+DQo+ID4gK0FjdGlvbjogYGBTRVRfTUVUQWBgDQo+ID4g K15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eDQo+ID4gKw0KPiA+ICtTZXQgbWV0YWRhdGEuIEl0ZW0g YGBNRVRBYGAgbWF0Y2hlcyBtZXRhZGF0YS4NCj4gPiArDQo+ID4gK01ldGFkYXRhIHNldCBieSBt YnVmIG1ldGFkYXRhIGZpZWxkIHdpdGggUEtUX1RYX01FVEFEQVRBIGZsYWcgb24NCj4gPiArZWdy ZXNzIHdpbGwgYmUgb3ZlcnJpZGRlbiBieSB0aGlzIGFjdGlvbi4gT24gaW5ncmVzcywgdGhlIG1l dGFkYXRhDQo+ID4gK3dpbGwgYmUgY2FycmllZCBieSBgYG1ldGFkYXRhYGAgZHluYW1pYyBmaWVs ZCBvZiBgYHJ0ZV9tYnVmYGAgd2hpY2gNCj4gPiArY2FuIGJlIGFjY2Vzc2VkIGJ5IGBgUlRFX0ZM T1dfRFlORl9NRVRBREFUQSgpYGAuDQo+IFBLVF9SWF9EWU5GX01FVEFEQVRBDQo+ID4gK2ZsYWcg d2lsbCBiZSBzZXQgYWxvbmcgd2l0aCB0aGUgZGF0YS4NCj4gPiArDQo+ID4gK1RoZSBtYnVmIGR5 bmFtaWMgZmllbGQgbXVzdCBiZSByZWdpc3RlcmVkIGJ5IGNhbGxpbmcNCj4gPiArYGBydGVfZmxv d19keW5mX21ldGFkYXRhX3JlZ2lzdGVyKClgYCBwcmlvciB0byB1c2UgYGBTRVRfTUVUQWBgIGFj dGlvbi4NCj4gPiArDQo+ID4gK0FsdGVyaW5nIHBhcnRpYWwgYml0cyBpcyBzdXBwb3J0ZWQgd2l0 aCBgYG1hc2tgYC4gRm9yIGJpdHMgd2hpY2ggaGF2ZQ0KPiA+ICtuZXZlciBiZWVuIHNldCwgdW5w cmVkaWN0YWJsZSB2YWx1ZSB3aWxsIGJlIHNlZW4gZGVwZW5kaW5nIG9uIGRyaXZlcg0KPiA+ICtp bXBsZW1lbnRhdGlvbi4gRm9yIGxvb3BiYWNrL2hhaXJwaW4gcGFja2V0LCBtZXRhZGF0YSBzZXQg b24gUngvVHgNCj4gPiArbWF5IG9yIG1heSBub3QgYmUgcHJvcGFnYXRlZCB0byB0aGUgb3RoZXIg cGF0aCBkZXBlbmRpbmcgb24gSFcNCj4gY2FwYWJpbGl0eS4NCj4gPiArDQo+ID4gKy4uIF90YWJs ZV9ydGVfZmxvd19hY3Rpb25fc2V0X21ldGE6DQo+ID4gKw0KPiA+ICsuLiB0YWJsZTo6IFNFVF9N RVRBDQo+ID4gKw0KPiA+ICsgICArLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKw0KPiA+ICsgICB8IEZpZWxkICAgIHwgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgfA0K PiA+ICsgICArPT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09Kw0KPiA+ICsg ICB8IGBgZGF0YWBgIHwgMzIgYml0IG1ldGFkYXRhIHZhbHVlICAgICAgfA0KPiA+ICsgICArLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsgICB8IGBgbWFza2Bg IHwgYml0LW1hc2sgYXBwbGllcyB0byAiZGF0YSIgfA0KPiA+ICsgICArLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsNCj4gPiAgIE5lZ2F0aXZlIHR5cGVzDQo+ ID4gICB+fn5+fn5+fn5+fn5+fg0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvcmVs X25vdGVzL2RlcHJlY2F0aW9uLnJzdA0KPiA+IGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvZGVwcmVj YXRpb24ucnN0DQo+ID4gaW5kZXggM2FhMTYzNC4uOWQ1NGQ4ZSAxMDA2NDQNCj4gPiAtLS0gYS9k b2MvZ3VpZGVzL3JlbF9ub3Rlcy9kZXByZWNhdGlvbi5yc3QNCj4gPiArKysgYi9kb2MvZ3VpZGVz L3JlbF9ub3Rlcy9kZXByZWNhdGlvbi5yc3QNCj4gPiBAQCAtMTA2LDYgKzEwNiwxMCBAQCBEZXBy ZWNhdGlvbiBOb3RpY2VzDQo+ID4gICAgIHN0cnVjdCBgYHJ0ZV9ldGhfZGV2X2luZm9gYCBmb3Ig dGhlIHBvcnQgY2FwYWJpbGl0eSBhbmQgaW4gc3RydWN0DQo+ID4gICAgIGBgcnRlX2V0aF9yeG1v ZGVgYCBmb3IgdGhlIHBvcnQgY29uZmlndXJhdGlvbi4NCj4gPg0KPiA+ICsqIGV0aGRldjogREVW X1RYX09GRkxPQURfTUFUQ0hfTUVUQURBVEEgd2lsbCBiZSByZW1vdmVkLCBzdGF0aWMNCj4gPiAr bWV0YWRhdGENCj4gPiArICBtYnVmIGZpZWxkIHdpbGwgYmUgcmVtb3ZlZCBpbiAyMC4wMiwgbWV0 YWRhdGEgZmVhdHVyZSB3aWxsIHVzZQ0KPiA+ICtkeW5hbWljIG1idWYNCj4gPiArICBmaWVsZCBh bmQgZmxhZyBpbnN0ZWFkLg0KPiA+ICsNCj4gDQo+IElzbid0IGl0IGJyZWFraW5nIHN0YWJsZSBB UEkvQUJJPyBTaG91bGQgdGFyZ2V0IHJlbGVhc2UgYmUgMjAuMTE/DQp0eF9tZXRhZGF0YSBpcyBp biB1bmlvbiwgaXQgc2hvdWxkIG5vdCBiZSBBQkkgYnJlYWsuDQpBbmQgd2UgcHJvcG9zZSB0byBy ZW1vdmUgdHhfbWV0YWRhdGEgYXQgYWxsIGluIDE5LjExIA0KYW5kIHNoYXJlIHRoZSBkeW5hbWlj IG1ldGFkYXRhIGZpZWxkIGJldHdlZW4gUnggYW5kIFR4IE1FVEFkYXRhLg0KDQo+IEkgdGhpbmsg dGhhdCBERVZfVFhfT0ZGTE9BRF9NQVRDSF9NRVRBREFUQSBzaG91bGQgbWFya2VkIGFzDQo+IGRl cHJlY2F0ZWQgbm93IGFzIHdlbGwgYXMgdHhfbWV0YWRhdGEgZmllbGQgaW4gbWJ1Zi4NCj4gDQo+ ID4gICAqIGNyeXB0b2Rldjogc3VwcG9ydCBmb3IgdXNpbmcgSVYgd2l0aCBhbGwgc2l6ZXMgaXMg YWRkZWQsIEowIHN0aWxsIGNhbg0KPiA+ICAgICBiZSB1c2VkIGJ1dCBvbmx5IHdoZW4gSVYgbGVu Z3RoIGluIGZvbGxvd2luZyBzdHJ1Y3RzDQo+IGBgcnRlX2NyeXB0b19hdXRoX3hmb3JtYGAsDQo+ ID4gICAgIGBgcnRlX2NyeXB0b19hZWFkX3hmb3JtYGAgaXMgc2V0IHRvIHplcm8uIFdoZW4gSVYg bGVuZ3RoIGlzDQo+ID4gZ3JlYXRlciBvciBlcXVhbCBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9y ZWxfbm90ZXMvcmVsZWFzZV8xOV8xMS5yc3QNCj4gPiBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3Jl bGVhc2VfMTlfMTEucnN0DQo+ID4gaW5kZXggMGU1YmI1ZC4uNmQzMzFmNiAxMDA2NDQNCj4gPiAt LS0gYS9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzE5XzExLnJzdA0KPiA+ICsrKyBiL2Rv Yy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMTlfMTEucnN0DQo+ID4gQEAgLTIzMiw2ICsyMzIs MjEgQEAgTmV3IEZlYXR1cmVzDQo+ID4gICAgICAgZ2l2ZXMgYWJpbGl0eSB0byBwcmludCBwb3J0 IHN1cHBvcnRlZCBwdHlwZXMgaW4gZGlmZmVyZW50IHByb3RvY29sIGxheWVycy4NCj4gPg0KPiA+ DQo+ID4gKyogKipBZGQgc3VwcG9ydCBvZiBzdXBwb3J0IGR5bmFtaWMgZmllbGRzIGFuZCBmbGFn cyBpbiBtYnVmLioqDQo+ID4gKw0KPiA+ICsgIFRoaXMgbmV3IGZlYXR1cmUgYWRkcyB0aGUgYWJp bGl0eSB0byBkeW5hbWljYWxseSByZWdpc3RlciBzb21lIHJvb20NCj4gPiArIGZvciBhIGZpZWxk IG9yIGEgZmxhZyBpbiB0aGUgbWJ1ZiBzdHJ1Y3R1cmUuIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQN Cj4gPiArIGZvciBzcGVjaWZpYyBvZmZsb2FkIGZlYXR1cmVzLCB3aGVyZSBhZGRpbmcgYSBzdGF0 aWMgZmllbGQgb3IgZmxhZw0KPiA+ICsgaW4gdGhlIG1idWYgaXMgbm90IGp1c3RpZmllZC4NCj4g PiArDQo+IA0KPiBJIGd1ZXNzIGFib3ZlIGlzIGp1c3QgaW5jb3JyZWN0IG1lcmdlLg0KT29wcywg dGhhbmtzIGZvciBzcG90dGluZywNCg0KPiANCj4gPiArKiAqKkV4dGVuZGVkIG1ldGFkYXRhIHN1 cHBvcnQgaW4gcnRlX2Zsb3cuKioNCj4gPiArDQo+ID4gKyAgRmxvdyBtZXRhZGF0YSBpcyBleHRl bmRlZCB0byBib3RoIFJ4IGFuZCBUeC4NCj4gPiArDQo+ID4gKyAgKiBUeCBtZXRhZGF0YSBjYW4g YWxzbyBiZSBzZXQgYnkgU0VUX01FVEEgYWN0aW9uIG9mIHJ0ZV9mbG93Lg0KPiA+ICsgICogUngg bWV0YWRhdGEgaXMgZGVsaXZlcmVkIHRvIGhvc3QgdmlhIGEgZHluYW1pYyBmaWVsZCBvZiBgYHJ0 ZV9tYnVmYGANCj4gd2l0aA0KPiA+ICsgICAgUEtUX1JYX0RZTkZfTUVUQURBVEEuDQo+ID4gKw0K PiANCj4gVHdvIGVtcHR5IGxpbmVzIGFyZSByZXF1aXJlZCBiZWZvcmUgdGhlIG5leHQgc2VjdGlv bi4NCkFjY2VwdGVkLg0KDQo+IA0KPiA+ICAgUmVtb3ZlZCBJdGVtcw0KPiA+ICAgLS0tLS0tLS0t LS0tLQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYu aA0KPiA+IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5oIGluZGV4IGMzNmMxYjYuLmIx OWM4NmIgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5oDQo+ ID4gKysrIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5oDQo+ID4gQEAgLTEwNDgsNyAr MTA0OCw2IEBAIHN0cnVjdCBydGVfZXRoX2NvbmYgew0KPiA+ICAgI2RlZmluZSBERVZfUlhfT0ZG TE9BRF9LRUVQX0NSQwkJMHgwMDAxMDAwMA0KPiA+ICAgI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9T Q1RQX0NLU1VNCTB4MDAwMjAwMDANCj4gPiAgICNkZWZpbmUgREVWX1JYX09GRkxPQURfT1VURVJf VURQX0NLU1VNICAweDAwMDQwMDAwDQo+ID4gLQ0KT0ssIGFjY2VwdGVkLg0KDQo+IA0KPiBVbnJl bGF0ZWQgY2hhbmdlLg0KPiANCj4gPiAgICNkZWZpbmUgREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0g KERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0NCj4gfCBcDQo+ID4gICAJCQkJIERFVl9SWF9PRkZM T0FEX1VEUF9DS1NVTSB8IFwNCj4gPiAgIAkJCQkgREVWX1JYX09GRkxPQURfVENQX0NLU1VNKQ0K PiANCj4gW3NuaXBdDQo+IA0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVf Zmxvdy5jDQo+ID4gYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5jIGluZGV4IGNhMGY2ODAu LjYwOTAxNzcgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuYw0K PiA+ICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmMNCj4gPiBAQCAtMTIsMTAgKzEy LDE4IEBADQo+ID4gICAjaW5jbHVkZSA8cnRlX2Vycm5vLmg+DQo+ID4gICAjaW5jbHVkZSA8cnRl X2JyYW5jaF9wcmVkaWN0aW9uLmg+DQo+ID4gICAjaW5jbHVkZSA8cnRlX3N0cmluZ19mbnMuaD4N Cj4gPiArI2luY2x1ZGUgPHJ0ZV9tYnVmLmg+DQo+ID4gKyNpbmNsdWRlIDxydGVfbWJ1Zl9keW4u aD4NCj4gPiAgICNpbmNsdWRlICJydGVfZXRoZGV2LmgiDQo+ID4gICAjaW5jbHVkZSAicnRlX2Zs b3dfZHJpdmVyLmgiDQo+ID4gICAjaW5jbHVkZSAicnRlX2Zsb3cuaCINCj4gPg0KPiA+ICsvKiBN YnVmIGR5bmFtaWMgZmllbGQgbmFtZSBmb3IgbWV0YWRhdGEuICovIGludA0KPiA+ICtydGVfZmxv d19keW5mX21ldGFkYXRhX29mZnMgPSAtMTsNCj4gPiArDQo+ID4gKy8qIE1idWYgZHluYW1pYyBm aWVsZCBmbGFnIGJpdCBudW1iZXIgZm9yIG1ldGFkYXRhLiAqLyB1aW50NjRfdA0KPiA+ICtydGVf Zmxvd19keW5mX21ldGFkYXRhX21hc2s7DQo+ID4gKw0KPiA+ICAgLyoqDQo+ID4gICAgKiBGbG93 IGVsZW1lbnRzIGRlc2NyaXB0aW9uIHRhYmxlcy4NCj4gPiAgICAqLw0KPiA+IEBAIC0xNTcsOCAr MTY1LDQxIEBAIHN0cnVjdCBydGVfZmxvd19kZXNjX2RhdGEgew0KPiA+ICAgCU1LX0ZMT1dfQUNU SU9OKERFQ19UQ1BfU0VRLCBzaXplb2YocnRlX2JlMzJfdCkpLA0KPiA+ICAgCU1LX0ZMT1dfQUNU SU9OKElOQ19UQ1BfQUNLLCBzaXplb2YocnRlX2JlMzJfdCkpLA0KPiA+ICAgCU1LX0ZMT1dfQUNU SU9OKERFQ19UQ1BfQUNLLCBzaXplb2YocnRlX2JlMzJfdCkpLA0KPiA+ICsJTUtfRkxPV19BQ1RJ T04oU0VUX01FVEEsIHNpemVvZihzdHJ1Y3QNCj4gcnRlX2Zsb3dfYWN0aW9uX3NldF9tZXRhKSks DQo+ID4gICB9Ow0KPiA+DQo+ID4gK2ludA0KPiA+ICtydGVfZmxvd19keW5mX21ldGFkYXRhX3Jl Z2lzdGVyKHZvaWQpDQo+ID4gK3sNCj4gPiArCWludCBvZmZzZXQ7DQo+ID4gKwlpbnQgZmxhZzsN Cj4gPiArDQo+ID4gKwlzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9tYnVmX2R5bmZpZWxkIGRlc2Nf b2ZmcyA9IHsNCj4gPiArCQkubmFtZSA9IE1CVUZfRFlORl9NRVRBREFUQV9OQU1FLA0KPiA+ICsJ CS5zaXplID0gc2l6ZW9mKHVpbnQzMl90KSwNCj4gPiArCQkuYWxpZ24gPSBfX2FsaWdub2ZfXyh1 aW50MzJfdCksDQo+ID4gKwkJLmZsYWdzID0gMCwNCj4gDQo+IEkgdGhpbmsgZmxhZ3MgaW5pdGlh bGl6YXRpb24gdG8gMCBpcyByZWR1bmRhbnQuDQpJdCB3YXMgbGVmdCBqdXN0IGZvciByZW1pbmRp bmcgdGhhdCBmaWVsZCBleGlzdC4gRG8geW91IHRoaW5rIHdlIGRvIG5vdCBuZWVkIHRoZSByZW1p bmRpbmc/IE9LLg0KDQo+IA0KPiA+ICsJfTsNCj4gPiArCXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRl X21idWZfZHluZmxhZyBkZXNjX2ZsYWcgPSB7DQo+ID4gKwkJLm5hbWUgPSBNQlVGX0RZTkZfTUVU QURBVEFfTkFNRSwNCj4gPiArCX07DQo+ID4gKw0KPiA+ICsJb2Zmc2V0ID0gcnRlX21idWZfZHlu ZmllbGRfcmVnaXN0ZXIoJmRlc2Nfb2Zmcyk7DQo+ID4gKwlpZiAob2Zmc2V0IDwgMCkNCj4gPiAr CQlnb3RvIGVycm9yOw0KPiA+ICsJZmxhZyA9IHJ0ZV9tYnVmX2R5bmZsYWdfcmVnaXN0ZXIoJmRl c2NfZmxhZyk7DQo+ID4gKwlpZiAoZmxhZyA8IDApDQo+ID4gKwkJZ290byBlcnJvcjsNCj4gPiAr CXJ0ZV9mbG93X2R5bmZfbWV0YWRhdGFfb2ZmcyA9IG9mZnNldDsNCj4gPiArCXJ0ZV9mbG93X2R5 bmZfbWV0YWRhdGFfbWFzayA9ICgxVUxMIDw8IGZsYWcpOw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4g Kw0KPiA+ICtlcnJvcjoNCj4gDQo+IEp1c3QgYW4gb2JzZXJ2YXRpb24uLi4NCj4gSW1wb3NzaWJp bGl0eSB0byB1bnJlZ2lzdGVyIGhpdHMgaGVyZS4gRmllbGQgbWF5IGJlIHJlZ2lzdGVyZWQsIGJ1 dCB3aWxsIGJlIHVzZWQuDQoNCk1ldGFkYXRhIGZpZWxkIGlzIHVzZWxlc3Mgd2l0aG91dCBmbGFn LiBZZXMsIHdlIGhhdmUgbm8gb3Bwb3J0dW5pdHkgdG8gdW5yZWdpc3RlciwNCnNvIHdlIGp1c3Qg Zm9yZ2V0IGFib3V0ICJmaWVsZCB3aXRoIG5vIGZsYWciICBhbmQgdGhhdCdzIGl0Lg0KDQo+IA0K PiA+ICsJcnRlX2Zsb3dfZHluZl9tZXRhZGF0YV9vZmZzID0gLTE7DQo+ID4gKwlydGVfZmxvd19k eW5mX21ldGFkYXRhX21hc2sgPSAwVUxMOw0KPiA+ICsJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4g K30NCj4gPiArDQo+ID4gICBzdGF0aWMgaW50DQo+ID4gICBmbG93X2Vycih1aW50MTZfdCBwb3J0 X2lkLCBpbnQgcmV0LCBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKQ0KPiA+ICAgew0KPiA+ IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gYi9saWIvbGli cnRlX2V0aGRldi9ydGVfZmxvdy5oIGluZGV4IDRmZWUxMDUuLmI4MjE1NTcgMTAwNjQ0DQo+ID4g LS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+ICsrKyBiL2xpYi9saWJydGVf ZXRoZGV2L3J0ZV9mbG93LmgNCj4gPiBAQCAtMjgsNiArMjgsOCBAQA0KPiA+ICAgI2luY2x1ZGUg PHJ0ZV9ieXRlb3JkZXIuaD4NCj4gPiAgICNpbmNsdWRlIDxydGVfZXNwLmg+DQo+ID4gICAjaW5j bHVkZSA8cnRlX2hpZ2lnLmg+DQo+ID4gKyNpbmNsdWRlIDxydGVfbWJ1Zi5oPg0KPiA+ICsjaW5j bHVkZSA8cnRlX21idWZfZHluLmg+DQo+ID4NCj4gPiAgICNpZmRlZiBfX2NwbHVzcGx1cw0KPiA+ ICAgZXh0ZXJuICJDIiB7DQo+ID4gQEAgLTQxOCw3ICs0MjAsOCBAQCBlbnVtIHJ0ZV9mbG93X2l0 ZW1fdHlwZSB7DQo+ID4gICAJLyoqDQo+ID4gICAJICogW01FVEFdDQo+ID4gICAJICoNCj4gPiAt CSAqIE1hdGNoZXMgYSBtZXRhZGF0YSB2YWx1ZSBzcGVjaWZpZWQgaW4gbWJ1ZiBtZXRhZGF0YSBm aWVsZC4NCj4gPiArCSAqIE1hdGNoZXMgYSBtZXRhZGF0YSB2YWx1ZS4NCj4gPiArCSAqDQo+ID4g ICAJICogU2VlIHN0cnVjdCBydGVfZmxvd19pdGVtX21ldGEuDQo+ID4gICAJICovDQo+ID4gICAJ UlRFX0ZMT1dfSVRFTV9UWVBFX01FVEEsDQo+ID4gQEAgLTEyNjMsOSArMTI2NiwxNyBAQCBzdHJ1 Y3QgcnRlX2Zsb3dfaXRlbV9pY21wNl9uZF9vcHRfdGxhX2V0aCB7DQo+ID4gICAjZW5kaWYNCj4g Pg0KPiA+ICAgLyoqDQo+ID4gLSAqIFJURV9GTE9XX0lURU1fVFlQRV9NRVRBLg0KPiA+ICsgKiBA d2FybmluZw0KPiA+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgc3RydWN0dXJlIG1heSBjaGFu Z2Ugd2l0aG91dCBwcmlvciBub3RpY2UNCj4gDQo+IElzIGl0IGFsbG93ZWQgdG8gbWFrZSBleHBl cmltZW50YWwgYmFjaz8NCkkgdGhpbmsgd2Ugc2hvdWxkIHJlbW92ZSBFWFBFUklNRU5UQUwgaGVy ZS4gV2UgZG8gbm90IGludHJvZHVjZSBuZXcNCmZlYXR1cmUsIGJ1dCBqdXN0IGV4dGVuZCB0aGUg YXBwbHkgYXJlYS4NCg0KPiANCj4gPiAgICAqDQo+ID4gLSAqIE1hdGNoZXMgYSBzcGVjaWZpZWQg bWV0YWRhdGEgdmFsdWUuDQo+ID4gKyAqIFJURV9GTE9XX0lURU1fVFlQRV9NRVRBDQo+ID4gKyAq DQo+ID4gKyAqIE1hdGNoZXMgYSBzcGVjaWZpZWQgbWV0YWRhdGEgdmFsdWUuIE9uIGVncmVzcywg bWV0YWRhdGEgY2FuIGJlIHNldA0KPiA+ICsgZWl0aGVyIGJ5DQo+ID4gKyAqIG1idWYgdHhfbWV0 YWRhdGEgZmllbGQgd2l0aCBQS1RfVFhfTUVUQURBVEEgZmxhZyBvcg0KPiA+ICsgKiBSVEVfRkxP V19BQ1RJT05fVFlQRV9TRVRfTUVUQS4gT24gaW5ncmVzcywNCj4gPiArIFJURV9GTE9XX0FDVElP Tl9UWVBFX1NFVF9NRVRBIHNldHMNCj4gPiArICogbWV0YWRhdGEgZm9yIGEgcGFja2V0IGFuZCB0 aGUgbWV0YWRhdGEgd2lsbCBiZSByZXBvcnRlZCB2aWEgbWJ1Zg0KPiA+ICsgbWV0YWRhdGENCj4g PiArICogZHluYW1pYyBmaWVsZCB3aXRoIFBLVF9SWF9EWU5GX01FVEFEQVRBIGZsYWcuIFRoZSBk eW5hbWljIG1idWYNCj4gPiArIGZpZWxkIG11c3QgYmUNCj4gPiArICogcmVnaXN0ZXJlZCBpbiBh ZHZhbmNlIGJ5IHJ0ZV9mbG93X2R5bmZfbWV0YWRhdGFfcmVnaXN0ZXIoKS4NCj4gPiAgICAqLw0K PiA+ICAgc3RydWN0IHJ0ZV9mbG93X2l0ZW1fbWV0YSB7DQo+ID4gICAJcnRlX2JlMzJfdCBkYXRh Ow0KPiANCj4gW3NuaXBdDQo+IA0KPiA+IEBAIC0yNDI5LDYgKzI0NDcsNTUgQEAgc3RydWN0IHJ0 ZV9mbG93X2FjdGlvbl9zZXRfbWFjIHsNCj4gPiAgIAl1aW50OF90IG1hY19hZGRyW1JURV9FVEhF Ul9BRERSX0xFTl07DQo+ID4gICB9Ow0KPiA+DQo+ID4gKy8qKg0KPiA+ICsgKiBAd2FybmluZw0K PiA+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgc3RydWN0dXJlIG1heSBjaGFuZ2Ugd2l0aG91 dCBwcmlvciBub3RpY2UNCj4gPiArICoNCj4gPiArICogUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0VU X01FVEENCj4gPiArICoNCj4gPiArICogU2V0IG1ldGFkYXRhLiBNZXRhZGF0YSBzZXQgYnkgbWJ1 ZiB0eF9tZXRhZGF0YSBmaWVsZCB3aXRoDQo+ID4gKyAqIFBLVF9UWF9NRVRBREFUQSBmbGFnIG9u IGVncmVzcyB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgdGhpcyBhY3Rpb24uDQo+ID4gK09uDQo+ID4g KyAqIGluZ3Jlc3MsIHRoZSBtZXRhZGF0YSB3aWxsIGJlIGNhcnJpZWQgYnkgbWJ1ZiBtZXRhZGF0 YSBkeW5hbWljDQo+ID4gK2ZpZWxkDQo+ID4gKyAqIHdpdGggUEtUX1JYX0RZTkZfTUVUQURBVEEg ZmxhZyBpZiBzZXQuICBUaGUgZHluYW1pYyBtYnVmIGZpZWxkDQo+ID4gK211c3QgYmUNCj4gPiAr ICogcmVnaXN0ZXJlZCBpbiBhZHZhbmNlIGJ5IHJ0ZV9mbG93X2R5bmZfbWV0YWRhdGFfcmVnaXN0 ZXIoKS4NCj4gPiArICoNCj4gPiArICogQWx0ZXJpbmcgcGFydGlhbCBiaXRzIGlzIHN1cHBvcnRl ZCB3aXRoIG1hc2suIEZvciBiaXRzIHdoaWNoIGhhdmUNCj4gPiArbmV2ZXINCj4gPiArICogYmVl biBzZXQsIHVucHJlZGljdGFibGUgdmFsdWUgd2lsbCBiZSBzZWVuIGRlcGVuZGluZyBvbiBkcml2 ZXINCj4gPiArICogaW1wbGVtZW50YXRpb24uIEZvciBsb29wYmFjay9oYWlycGluIHBhY2tldCwg bWV0YWRhdGEgc2V0IG9uIFJ4L1R4DQo+ID4gK21heQ0KPiA+ICsgKiBvciBtYXkgbm90IGJlIHBy b3BhZ2F0ZWQgdG8gdGhlIG90aGVyIHBhdGggZGVwZW5kaW5nIG9uIEhXDQo+IGNhcGFiaWxpdHku DQo+ID4gKyAqDQo+ID4gKyAqIFJURV9GTE9XX0lURU1fVFlQRV9NRVRBIG1hdGNoZXMgbWV0YWRh dGEuDQo+ID4gKyAqLw0KPiA+ICtzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3NldF9tZXRhIHsNCj4g PiArCXJ0ZV9iZTMyX3QgZGF0YTsNCj4gPiArCXJ0ZV9iZTMyX3QgbWFzazsNCj4gDQo+IEFzIEkg dW5kZXJzdGFuZCB0eF9tZXRhZGF0YSBpcyBob3N0IGVuZGlhbi4gSnVzdCBkb3VibGUtY2hlY2tp bmcuDQo+IElzIGEgbmV3IGR5bmFtaWMgZmllbGQgaG9zdCBlbmRpYW4gb3IgYmlnIGVuZGlhbj8N Cj4gSSBkZWZpbml0ZWx5IHdvdWxkIGxpa2UgdG8gc2VlIG1vdGl2YXRpb24gaW4gY29tbWVudHMg d2h5IGRhdGEvbWFzayBhcmUgYmlnLQ0KPiBlbmRpYW4gaGVyZS4NCg0KbWV0YWRhdGEgaXMgb3Bh cXVlIHZhbHVlLCBlbmRpYW5uZXNzIGRvZXMgbm90IG1hdHRlciwgdGhlcmUgYXJlIG5vIHNvbWUg DQpzcGVjaWFsIG1vdGl2YXRpb25zIGZvciBjaG9vc2luZyBlbmRpYW5uZXMuIHJ0ZV9mbG93X2l0 ZW1fbWV0YSgpIHN0cnVjdHVyZQ0KcHJvdmlkZXMgZGF0YSB3aXRoIHJ0ZV9iZTMyX3QgdHlwZSwg c28gbWV0YSByZWxhdGVkIGFjdGlvbiBkb2VzIHRoZSBzYW1lLiANCkkgY291bGQgYXNzdW1lIHRo ZSBvcmlnaW4gb2Ygc2VsZWN0aW5nIGJpZ2VuZGlhbiB0eXBlIHdhcyB0aGUgZW5kaWFubmVzcw0K b2YgbWV0YWRhdGEgZmllbGQgaW4gVHggZGVzY3JpcHRvciBvZiBDb25uZWN0WCBOSUNzLg0KDQo+ IA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArLyogTWJ1ZiBkeW5hbWljIGZpZWxkIG9mZnNldCBmb3Ig bWV0YWRhdGEuICovIGV4dGVybiBpbnQNCj4gPiArcnRlX2Zsb3dfZHluZl9tZXRhZGF0YV9vZmZz Ow0KPiA+ICsNCj4gPiArLyogTWJ1ZiBkeW5hbWljIGZpZWxkIGZsYWcgbWFzayBmb3IgbWV0YWRh dGEuICovIGV4dGVybiB1aW50NjRfdA0KPiA+ICtydGVfZmxvd19keW5mX21ldGFkYXRhX21hc2s7 DQo+IA0KPiBUaGVzZSB0d28gZ2xvYmFsIHZhcmlhYmxlcyBsb29rIGZyaWdodGVuaW5nIHRvIG1l Lg0KPiBJdCBkb2VzIG5vdCBsb29rIGdvb2QgdG8gbWUuDQpGb3IgbWUgdG9vLiBCdXQgd2UgbmVl ZCB0aGUgcGVyZm9ybWFuY2UsIHRoZXNlIG9uZXMgYXJlIA0KaW50ZW5kZWQgZm9yIHVzYWdlIGlu IGRhdGFwYXRoLCBhbnkgb3ZlcmhlYWQgaXMgcGFpbmZ1bC4NCg0KPiANCj4gPiArDQo+ID4gKy8q IE1idWYgZHluYW1pYyBmaWVsZCBwb2ludGVyIGZvciBtZXRhZGF0YS4gKi8gI2RlZmluZQ0KPiA+ ICtSVEVfRkxPV19EWU5GX01FVEFEQVRBKG0pIFwNCj4gPiArCVJURV9NQlVGX0RZTkZJRUxEKCht KSwgcnRlX2Zsb3dfZHluZl9tZXRhZGF0YV9vZmZzLCB1aW50MzJfdA0KPiAqKQ0KPiA+ICsNCj4g PiArLyogTWJ1ZiBkeW5hbWljIGZsYWcgZm9yIG1ldGFkYXRhLiAqLyAjZGVmaW5lIFBLVF9SWF9E WU5GX01FVEFEQVRBDQo+ID4gKyhydGVfZmxvd19keW5mX21ldGFkYXRhX21hc2spDQo+ID4gKw0K PiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiArc3RhdGljIGlubGluZSB1aW50MzJfdA0KPiA+ ICtydGVfZmxvd19keW5mX21ldGFkYXRhX2dldChzdHJ1Y3QgcnRlX21idWYgKm0pIHsNCj4gDQo+ IEFib3ZlIGN1cmx5IGJyYWNrZXQgc2hvdWxkIGJlIG9uIGl0cyBvd24gbGluZSBpbiB0aGUgY2Fz ZSBvZiBmdW5jdGlvbg0KPiBkZWZpbml0aW9uLg0KPiANCj4gU2hvdWxkbid0IG0gYmUgJ2NvbnN0 IHN0cnVjdCBydGVfbWJ1ZiAqJz8NCllvdSBhcmUgcmlnaHQsIGl0IHdvdWxkIGJlIGJldHRlciwg d2lsbCB1cGRhdGUuDQo+IA0KPiA+ICsJcmV0dXJuICpSVEVfRkxPV19EWU5GX01FVEFEQVRBKG0p Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiArc3RhdGljIGlu bGluZSB2b2lkDQo+ID4gK3J0ZV9mbG93X2R5bmZfbWV0YWRhdGFfc2V0KHN0cnVjdCBydGVfbWJ1 ZiAqbSwgdWludDMyX3Qgdikgew0KPiANCj4gQWJvdmUgY3VybHkgYnJhY2tldCBzaG91bGQgYmUg b24gaXRzIG93biBsaW5lIGluIHRoZSBjYXNlIG9mIGZ1bmN0aW9uDQo+IGRlZmluaXRpb24uDQo+ IA0KPiA+ICsJKlJURV9GTE9XX0RZTkZfTUVUQURBVEEobSkgPSB2Ow0KPiA+ICt9DQo+ID4gKw0K PiA+ICAgLyoNCj4gPiAgICAqIERlZmluaXRpb24gb2YgYSBzaW5nbGUgYWN0aW9uLg0KPiA+ICAg ICoNCj4gPiBAQCAtMjY2Miw2ICsyNzI5LDMyIEBAIGVudW0gcnRlX2Zsb3dfY29udl9vcCB7DQo+ ID4gICB9Ow0KPiA+DQo+ID4gICAvKioNCj4gPiArICogQ2hlY2sgaWYgbWJ1ZiBkeW5hbWljIGZp ZWxkIGZvciBtZXRhZGF0YSBpcyByZWdpc3RlcmVkLg0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJu DQo+ID4gKyAqICAgVHJ1ZSBpZiByZWdpc3RlcmVkLCBmYWxzZSBvdGhlcndpc2UuDQo+ID4gKyAq Lw0KPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiArc3RhdGljIGlubGluZSBpbnQNCj4gPiAr cnRlX2Zsb3dfZHluZl9tZXRhZGF0YV9hdmFpbCh2b2lkKSB7DQo+IA0KPiBBYm92ZSBjdXJseSBi cmFja2V0IHNob3VsZCBiZSBvbiBpdHMgb3duIGxpbmUgaW4gdGhlIGNhc2Ugb2YgZnVuY3Rpb24N Cj4gZGVmaW5pdGlvbi4NCj4gDQo+ID4gKwlyZXR1cm4gISFydGVfZmxvd19keW5mX21ldGFkYXRh X21hc2s7IH0NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBSZWdpc3RlciBtYnVmIGR5bmFtaWMg ZmllbGQgYW5kIGZsYWcgZm9yIG1ldGFkYXRhLg0KPiA+ICsgKg0KPiA+ICsgKiBUaGlzIGZ1bmN0 aW9uIG11c3QgYmUgY2FsbGVkIHByaW9yIHRvIHVzZSBTRVRfTUVUQSBhY3Rpb24gaW4gb3JkZXIN Cj4gPiArdG8NCj4gPiArICogcmVnaXN0ZXIgdGhlIGR5bmFtaWMgbWJ1ZiBmaWVsZC4gT3RoZXJ3 aXNlLCB0aGUgZGF0YSBjYW5ub3QgYmUNCj4gPiArZGVsaXZlcmVkIHRvDQo+ID4gKyAqIGFwcGxp Y2F0aW9uLg0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgMCBvbiBzdWNjZXNz LCBhIG5lZ2F0aXZlIGVycm5vIHZhbHVlIG90aGVyd2lzZSBhbmQgcnRlX2Vycm5vIGlzIHNldC4N Cj4gPiArICovDQo+ID4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiA+ICtpbnQNCj4gPiArcnRlX2Zs b3dfZHluZl9tZXRhZGF0YV9yZWdpc3Rlcih2b2lkKTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICAg ICogQ2hlY2sgd2hldGhlciBhIGZsb3cgcnVsZSBjYW4gYmUgY3JlYXRlZCBvbiBhIGdpdmVuIHBv cnQuDQo+ID4gICAgKg0KPiA+ICAgICogVGhlIGZsb3cgcnVsZSBpcyB2YWxpZGF0ZWQgZm9yIGNv cnJlY3RuZXNzIGFuZCB3aGV0aGVyIGl0IGNvdWxkDQo+ID4gYmUgYWNjZXB0ZWQgZGlmZiAtLWdp dCBhL2xpYi9saWJydGVfbWJ1Zi9ydGVfbWJ1Zl9keW4uaA0KPiA+IGIvbGliL2xpYnJ0ZV9tYnVm L3J0ZV9tYnVmX2R5bi5oIGluZGV4IDJlOWQ0MTguLmE0YTBjZjUgMTAwNjQ0DQo+ID4gLS0tIGEv bGliL2xpYnJ0ZV9tYnVmL3J0ZV9tYnVmX2R5bi5oDQo+ID4gKysrIGIvbGliL2xpYnJ0ZV9tYnVm L3J0ZV9tYnVmX2R5bi5oDQo+ID4gQEAgLTIzNCw2ICsyMzQsMTAgQEAgaW50IHJ0ZV9tYnVmX2R5 bmZsYWdfbG9va3VwKGNvbnN0IGNoYXIgKm5hbWUsDQo+ID4gICBfX3J0ZV9leHBlcmltZW50YWwN Cj4gPiAgIHZvaWQgcnRlX21idWZfZHluX2R1bXAoRklMRSAqb3V0KTsNCj4gPg0KPiA+IC0vKiBQ bGFjZWhvbGRlciBmb3IgZHluYW1pYyBmaWVsZHMgYW5kIGZsYWdzIGRlY2xhcmF0aW9ucy4gKi8N Cj4gPiAtDQo+ID4gKy8qDQo+ID4gKyAqIFBsYWNlaG9sZGVyIGZvciBkeW5hbWljIGZpZWxkcyBh bmQgZmxhZ3MgZGVjbGFyYXRpb25zLg0KPiA+ICsgKiBUaGlzIGlzIGNlbnRyYWxpemluZyBwb2lu dCB0byBnYXRoZXIgYWxsIGZpZWxkIG5hbWVzDQo+ID4gKyAqIGFuZCBwYXJhbWV0ZXJzIHRvZ2V0 aGVyLg0KPiA+ICsgKi8NCj4gDQo+IEl0IGlzIG5vdCBhIGNvbW1lbnQgZm9yIGJlbG93IGRlZmlu ZS4gU28sIEkgdGhpbmsgZW1wdHkgbGluZSBpcyByZXF1aXJlZCB0bw0KPiBzZXBhcmF0ZSB0aGUg Y29tbWVudCBmcm9tIGJlbG93IGRlZmluZS4NCj4gSSdtIG5vdCBzdXJlIHRoYXQgdGhlIGNsYXJp ZmljYXRpb24gaXMgcmVxdWlyZWQsIGJ1dCBpdCBpcyB1cCB0byBPbGl2aWVyLg0KPiANCj4gPiAr I2RlZmluZSBNQlVGX0RZTkZfTUVUQURBVEFfTkFNRSAicnRlX2Zsb3dfZHluZmllbGRfbWV0YWRh dGEiDQo+IA0KPiBFbXB0eSBsaW5lIGlzIG1pc3NpbmcgaGVyZQ0KVGhhbmtzLCB3aWxsIGFkZCBv bmUuDQoNCj4gDQo+ID4gICAjZW5kaWYNCg0KV2l0aCBiZXN0IHJlZ2FyZHMsIFNsYXZhDQo=