From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 70158 invoked by alias); 27 Jun 2019 14:00:45 -0000 Mailing-List: contact jit-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Subscribe: Sender: jit-owner@gcc.gnu.org Received: (qmail 70128 invoked by uid 89); 27 Jun 2019 14:00:44 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.3 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-22.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy= X-Spam-Status: No, score=-22.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on sourceware.org X-Spam-Level: X-Spam-User: qpsmtpd, 2 recipients X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr140051.outbound.protection.outlook.com (HELO EUR01-VE1-obe.outbound.protection.outlook.com) (40.107.14.51) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 27 Jun 2019 14:00:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wBwn08Gi/LrRqiB+TwsihtqPhylz9JrYA3+K8ITMQfI=; b=BrcsSZsGrHHkX3pBIf1iekdqNaE2V3ag5fcCY1ZwX4F8Qi17tRJu0tjaYrBSkBMu+r5I2oYElg0uHm7nHCK4kqxWxRems9ce89ofOnWMTQ/9TovzrgVI+HB8jWi5PA6cr/FpK9tyy58ZO8LrPZHbZCHc4eUkf8qYfSXjzTmgW5c= Received: from VE1PR08MB5070.eurprd08.prod.outlook.com (20.179.29.148) by VE1PR08MB5135.eurprd08.prod.outlook.com (20.179.30.94) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2008.16; Thu, 27 Jun 2019 14:00:34 +0000 Received: from VE1PR08MB5070.eurprd08.prod.outlook.com ([fe80::34f5:a093:3356:52f5]) by VE1PR08MB5070.eurprd08.prod.outlook.com ([fe80::34f5:a093:3356:52f5%7]) with mapi id 15.20.2008.014; Thu, 27 Jun 2019 14:00:34 +0000 From: Andrea Corallo To: David Malcolm CC: Andrea Corallo , "gcc-patches@gcc.gnu.org" , "jit@gcc.gnu.org" , nd Subject: Re: [PATCH][gcc] libgccjit: add bitfield support Thread-Topic: [PATCH][gcc] libgccjit: add bitfield support Thread-Index: AQHVGfH2i3Pw/ZC3+E2HQL7V8/ROg6ahhbSAgAmIuICAAF7HAIACfYAAgAAkQoCAAZ56gA== Date: Tue, 01 Jan 2019 00:00:00 -0000 Message-ID: References: <1560865833.3885.8.camel@redhat.com> <1561410326.3885.34.camel@redhat.com> <1561555015.13494.10.camel@redhat.com> In-Reply-To: <1561555015.13494.10.camel@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-clientproxiedby: LO2P123CA0013.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:a6::25) To VE1PR08MB5070.eurprd08.prod.outlook.com (2603:10a6:803:105::20) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Andrea.Corallo@arm.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [217.140.106.37] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b0134ab1-713a-4bfe-4899-08d6fb07d306 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(49563074)(7193020);SRVR:VE1PR08MB5135; x-ms-traffictypediagnostic: VE1PR08MB5135: nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-forefront-prvs: 008184426E x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(396003)(39860400002)(346002)(136003)(376002)(199004)(189003)(229853002)(66446008)(52116002)(25786009)(44832011)(5660300002)(476003)(486006)(2906002)(446003)(2616005)(66946007)(256004)(86362001)(14454004)(6116002)(72206003)(3846002)(53936002)(73956011)(8936002)(66616009)(71200400001)(68736007)(81166006)(478600001)(66556008)(6246003)(66476007)(99286004)(6436002)(36756003)(7736002)(99936001)(8676002)(14444005)(6512007)(316002)(26005)(6486002)(186003)(102836004)(386003)(11346002)(6506007)(76176011)(54906003)(305945005)(6916009)(64756008)(71190400001)(66066001)(4326008)(81156014);DIR:OUT;SFP:1101;SCL:1;SRVR:VE1PR08MB5135;H:VE1PR08MB5070.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: BwJngfZfop72AGBrrvDs5z+0qew64d0SN/9dl/87/9Ne/yask8HPmx5X3/IcQhvGhFcw4aHp9MurHwi3UKCo50t4aHsYRpNiNZ2bkp3kxoawYNCap9OlglCi2s6zqbCHiBOjcQJMMG7lJZ+Z17fyHbDK9+YTJevf/q75ELvsJKX7UWKMC0mUR/y6fBCAEmeAqcRMUwMmVZ8a4Ook2WLl5TrZ8ELAl4ScL7LZLVjetIMiwTer7w2GH4cYs3CYag1OPPbzpSO/NKmnjK6p3kjk8XGhtfTGsIcyTavRiXT1CufkQZsSnXZUi2s1JQYwAnPT5DCiXvnCeDaIZHUmQbh00NI9G62e+zR3Ftg7GjoupKeN8A9Z4dJv0Ov5+hZ/l43BKQCGXg5NO9GiWbApNhbroHBx6o74wDxHlE4zXNdmbrs= Content-Type: multipart/mixed; boundary="_002_gkr8stn9lhkfsfarmcom_" MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: b0134ab1-713a-4bfe-4899-08d6fb07d306 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jun 2019 14:00:34.7398 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Andrea.Corallo@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5135 X-SW-Source: 2019-q2/txt/msg00018.txt.bz2 --_002_gkr8stn9lhkfsfarmcom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-length: 2973 SGkgRGF2ZSwNCmxhc3QgdmVyc2lvbiBmb3IgdGhpcyBwYXRjaCBhZGRyZXNz aW5nIHRoZSBzdWdnZXN0aW9uIGFib3V0IHRoZQ0KSklUX0JJVF9GSUVMRCBt YWNyb3MgY29tbWVudCBkZXNjcmlwdGlvbi4NCg0KVGhhbmsgeW91IGZvciBh bGwgdGhlIHN1Z2dlc3Rpb25zLg0KDQpSZWdhcmRpbmcgdGhlIHdyaXRlIGFj Y2VzcyBwbGVhc2Ugc2VlIG15IHByZXZpb3VzIGFuc3dlciBpbnRvIHRoZSBi aW5hcnkNCm9wIHBhdGNoIHRocmVhZC4NCg0KQmVzdHMNCiAgQW5kcmVhDQoN Cg0KMjAxOS0wNi0yMCAgQW5kcmVhIENvcmFsbG8gYW5kcmVhLmNvcmFsbG9A YXJtLmNvbQ0KDQoqIGRvY3MvdG9waWNzL2NvbXBhdGliaWxpdHkucnN0IChM SUJHQ0NKSVRfQUJJXzEyKTogTmV3IEFCSSB0YWcuDQoqIGRvY3MvdG9waWNz L3R5cGVzLnJzdDogQWRkIGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQu DQoqIGppdC1jb21tb24uaCAobmFtZXNwYWNlIHJlY29yZGluZyk6IEFkZCBj bGFzcyBiaXRmaWVsZC4NCiogaml0LXBsYXliYWNrLmM6DQooREVDTF9KSVRf QklUX0ZJRUxELCBTRVRfREVDTF9KSVRfQklUX0ZJRUxEKTogQWRkIG1hY3Jv cy4NCihwbGF5YmFjazo6Y29udGV4dDo6bmV3X2JpdGZpZWxkKTogTmV3IG1l dGhvZC4NCihwbGF5YmFjazo6Y29tcG91bmRfdHlwZTo6c2V0X2ZpZWxkcyk6 IEFkZCBiaXRmaWVsZCBzdXBwb3J0Lg0KKHBsYXliYWNrOjpsdmFsdWU6Om1h cmtfYWRkcmVzc2FibGUpOiBXYXMgaml0X21hcmtfYWRkcmVzc2FibGUgbWFr ZSB0aGlzDQphIG1ldGhvZCBvZiBsdmFsdWUgcGx1cyByZXR1cm4gYSBib29s IHRvIGNvbW11bmljYXRlIHN1Y2Nlc3MuDQoocGxheWJhY2s6Omx2YWx1ZTo6 Z2V0X2FkZHJlc3MpOiBDaGVjayBmb3Igaml0X21hcmtfYWRkcmVzc2FibGUg cmV0dXJuDQp2YWx1ZS4NCiogaml0LXBsYXliYWNrLmggKG5ld19iaXRmaWVs ZCk6IE5ldyBtZXRob2QuDQooY2xhc3MgYml0ZmllbGQpOiBOZXcgY2xhc3Mu DQooY2xhc3MgbHZhbHVlKTogQWRkIGppdF9tYXJrX2FkZHJlc3NhYmxlIG1l dGhvZC4NCiogaml0LXJlY29yZGluZy5jIChyZWNvcmRpbmc6OmNvbnRleHQ6 Om5ld19iaXRmaWVsZCk6IE5ldyBtZXRob2QuDQoocmVjb3JkaW5nOjpiaXRm aWVsZDo6cmVwbGF5X2ludG8pOiBOZXcgbWV0aG9kLg0KKHJlY29yZGluZzo6 Yml0ZmllbGQ6OndyaXRlX3RvX2R1bXApOiBMaWtld2lzZS4NCihyZWNvcmRp bmc6OmJpdGZpZWxkOjptYWtlX2RlYnVnX3N0cmluZyk6IExpa2V3aXNlLg0K KHJlY29yZGluZzo6Yml0ZmllbGQ6OndyaXRlX3JlcHJvZHVjZXIpOiBMaWtl d2lzZS4NCiogaml0LXJlY29yZGluZy5oIChjbGFzcyBjb250ZXh0KTogQWRk IG5ld19iaXRmaWVsZCBtZXRob2QuDQooY2xhc3MgZmllbGQpOiBNYWtlIGl0 IGRlcml2YWJsZSBieSBjbGFzcyBiaXRmaWVsZC4NCihjbGFzcyBiaXRmaWVs ZCk6IEFkZCBuZXcgY2xhc3MuDQoqIGxpYmdjY2ppdCsrLmggKGNsYXNzIGNv bnRleHQpOiBBZGQgbmV3X2JpdGZpZWxkIG1ldGhvZC4NCiogbGliZ2Njaml0 LmMgKHN0cnVjdCBnY2Nfaml0X2JpdGZpZWxkKTogTmV3IHN0cnVjdHVyZS4N CihnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkKTogTmV3IGZ1bmN0aW9u Lg0KKiBsaWJnY2NqaXQuaA0KKExJQkdDQ0pJVF9IQVZFX2djY19qaXRfY29u dGV4dF9uZXdfYml0ZmllbGQpIE5ldyBtYWNyby4NCihnY2Nfaml0X2NvbnRl eHRfbmV3X2JpdGZpZWxkKTogTmV3IGZ1bmN0aW9uLg0KKiBsaWJnY2NqaXQu bWFwIChMSUJHQ0NKSVRfQUJJXzEyKSBOZXcgQUJJIHRhZy4NCg0KDQoyMDE5 LTA2LTIwICBBbmRyZWEgQ29yYWxsbyBhbmRyZWEuY29yYWxsb0Bhcm0uY29t DQoNCiogaml0LmRnL2FsbC1ub24tZmFpbGluZy10ZXN0cy5oOiBBZGQgdGVz dC1hY2Nlc3NpbmctYml0ZmllbGQuYy4NCiogaml0LmRnL3Rlc3QtYWNjZXNz aW5nLWJpdGZpZWxkLmM6IE5ldyB0ZXN0Y2FzZS4NCiogaml0LmRnL3Rlc3Qt ZXJyb3ItZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZC1pbnZhbGlkLXR5 cGUuYzoNCkxpa2V3aXNlLg0KKiBqaXQuZGcvdGVzdC1lcnJvci1nY2Nfaml0 X2NvbnRleHRfbmV3X2JpdGZpZWxkLWludmFsaWQtd2lkdGguYzoNCkxpa2V3 aXNlLg0KKiBqaXQuZGcvdGVzdC1lcnJvci1nY2Nfaml0X2x2YWx1ZV9nZXRf YWRkcmVzcy1iaXRmaWVsZC5jOg0KTGlrZXdpc2UuDQo= --_002_gkr8stn9lhkfsfarmcom_ Content-Type: text/x-diff; name="gcc_jit_context_new_bitfield.patch" Content-Description: gcc_jit_context_new_bitfield.patch Content-Disposition: attachment; filename="gcc_jit_context_new_bitfield.patch"; size=26682; creation-date="Thu, 27 Jun 2019 14:00:34 GMT"; modification-date="Thu, 27 Jun 2019 14:00:34 GMT" Content-ID: Content-Transfer-Encoding: base64 Content-length: 36169 ZGlmZiAtLWdpdCBhL2djYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0 eS5yc3QgYi9nY2Mvaml0L2RvY3MvdG9waWNzL2NvbXBhdGliaWxpdHkucnN0 DQppbmRleCBhYmVmYTU2Li5kYTY0OTIwIDEwMDY0NA0KLS0tIGEvZ2NjL2pp dC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdA0KKysrIGIvZ2NjL2pp dC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdA0KQEAgLTE3NywzICsx NzcsOCBAQCBlbnRyeXBvaW50czoNCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQ0K IGBgTElCR0NDSklUX0FCSV8xMWBgIGNvdmVycyB0aGUgYWRkaXRpb24gb2YN CiA6ZnVuYzpgZ2NjX2ppdF9jb250ZXh0X2FkZF9kcml2ZXJfb3B0aW9uYA0K Kw0KK2BgTElCR0NDSklUX0FCSV8xMmBgDQorLS0tLS0tLS0tLS0tLS0tLS0t LS0NCitgYExJQkdDQ0pJVF9BQklfMTJgYCBjb3ZlcnMgdGhlIGFkZGl0aW9u IG9mDQorOmZ1bmM6YGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGRgDQpk aWZmIC0tZ2l0IGEvZ2NjL2ppdC9kb2NzL3RvcGljcy90eXBlcy5yc3QgYi9n Y2Mvaml0L2RvY3MvdG9waWNzL3R5cGVzLnJzdA0KaW5kZXggMWQyZGNkNC4u MzdkOWQwMSAxMDA2NDQNCi0tLSBhL2djYy9qaXQvZG9jcy90b3BpY3MvdHlw ZXMucnN0DQorKysgYi9nY2Mvaml0L2RvY3MvdG9waWNzL3R5cGVzLnJzdA0K QEAgLTI0Nyw2ICsyNDcsMzAgQEAgWW91IGNhbiBtb2RlbCBDIGBzdHJ1Y3Rg IHR5cGVzIGJ5IGNyZWF0aW5nIDpjOnR5cGU6YGdjY19qaXRfc3RydWN0ICpg IGFuZA0KICAgIHVuZGVybHlpbmcgc3RyaW5nLCBzbyBpdCBpcyB2YWxpZCB0 byBwYXNzIGluIGEgcG9pbnRlciB0byBhbiBvbi1zdGFjaw0KICAgIGJ1ZmZl ci4NCiANCisuLiBmdW5jdGlvbjo6IGdjY19qaXRfZmllbGQgKlwNCisgICAg ICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQgKGdjY19q aXRfY29udGV4dCAqY3R4dCxcDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2xvY2F0aW9uICpsb2MsXA0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2NjX2ppdF90eXBlICp0eXBlLFwNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCxcDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpuYW1lKQ0KKw0KKyAgIENvbnN0cnVjdCBhIG5ldyBiaXQgZmllbGQsIHdp dGggdGhlIGdpdmVuIHR5cGUgd2lkdGggYW5kIG5hbWUuDQorDQorICAgVGhl IHBhcmFtZXRlciBgYG5hbWVgYCBtdXN0IGJlIG5vbi1OVUxMLiAgVGhlIGNh bGwgdGFrZXMgYSBjb3B5IG9mIHRoZQ0KKyAgIHVuZGVybHlpbmcgc3RyaW5n LCBzbyBpdCBpcyB2YWxpZCB0byBwYXNzIGluIGEgcG9pbnRlciB0byBhbiBv bi1zdGFjaw0KKyAgIGJ1ZmZlci4NCisNCisgICBUaGUgcGFyYW1ldGVyIGBg dHlwZWBgIG11c3QgYmUgYW4gaW50ZWdlciB0eXBlLg0KKw0KKyAgIFRoZSBw YXJhbWV0ZXIgYGB3aWR0aGBgIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2Vy IHRoYXQgZG9lcyBub3QgZXhjZWVkIHRoZQ0KKyAgIHNpemUgb2YgYGB0eXBl YGAuDQorDQorICAgVGhpcyBBUEkgZW50cnlwb2ludCB3YXMgYWRkZWQgaW4g OnJlZjpgTElCR0NDSklUX0FCSV8xMmA7IHlvdSBjYW4gdGVzdA0KKyAgIGZv ciBpdHMgcHJlc2VuY2UgdXNpbmcNCisgICAuLiBjb2RlLWJsb2NrOjogYw0K Kw0KKyAgICAgICNpZmRlZiBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0X2NvbnRl eHRfbmV3X2JpdGZpZWxkDQorDQogLi4gZnVuY3Rpb246OiBnY2Nfaml0X29i amVjdCAqXA0KICAgICAgICAgICAgICAgZ2NjX2ppdF9maWVsZF9hc19vYmpl Y3QgKGdjY19qaXRfZmllbGQgKmZpZWxkKQ0KIA0KZGlmZiAtLWdpdCBhL2dj Yy9qaXQvaml0LWNvbW1vbi5oIGIvZ2NjL2ppdC9qaXQtY29tbW9uLmgNCmlu ZGV4IDFkOTZjYzMuLmU3NDdkOTYgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2pp dC1jb21tb24uaA0KKysrIGIvZ2NjL2ppdC9qaXQtY29tbW9uLmgNCkBAIC0x MTksNiArMTE5LDcgQEAgbmFtZXNwYWNlIHJlY29yZGluZyB7DQogCWNsYXNz IHVuaW9uXzsNCiAgICAgICBjbGFzcyB2ZWN0b3JfdHlwZTsNCiAgICAgY2xh c3MgZmllbGQ7DQorICAgICAgY2xhc3MgYml0ZmllbGQ7DQogICAgIGNsYXNz IGZpZWxkczsNCiAgICAgY2xhc3MgZnVuY3Rpb247DQogICAgIGNsYXNzIGJs b2NrOw0KZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXBsYXliYWNrLmggYi9n Y2Mvaml0L2ppdC1wbGF5YmFjay5oDQppbmRleCBiYzRkZTljLi5kNGIxNDhl IDEwMDY0NA0KLS0tIGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suaA0KKysrIGIv Z2NjL2ppdC9qaXQtcGxheWJhY2suaA0KQEAgLTc1LDYgKzc1LDEyIEBAIHB1 YmxpYzoNCiAJICAgICB0eXBlICp0eXBlLA0KIAkgICAgIGNvbnN0IGNoYXIg Km5hbWUpOw0KIA0KKyAgZmllbGQgKg0KKyAgbmV3X2JpdGZpZWxkIChsb2Nh dGlvbiAqbG9jLA0KKwkJdHlwZSAqdHlwZSwNCisJCWludCB3aWR0aCwNCisJ CWNvbnN0IGNoYXIgKm5hbWUpOw0KKw0KICAgY29tcG91bmRfdHlwZSAqDQog ICBuZXdfY29tcG91bmRfdHlwZSAobG9jYXRpb24gKmxvYywNCiAJCSAgICAg Y29uc3QgY2hhciAqbmFtZSwNCkBAIC00MjYsNiArNDMyLDggQEAgcHJpdmF0 ZToNCiAgIHRyZWUgbV9pbm5lcjsNCiB9Ow0KIA0KK2NsYXNzIGJpdGZpZWxk IDogcHVibGljIGZpZWxkIHt9Ow0KKw0KIGNsYXNzIGZ1bmN0aW9uIDogcHVi bGljIHdyYXBwZXINCiB7DQogcHVibGljOg0KQEAgLTYxNCw2ICs2MjIsOCBA QCBwdWJsaWM6DQogICBydmFsdWUgKg0KICAgZ2V0X2FkZHJlc3MgKGxvY2F0 aW9uICpsb2MpOw0KIA0KK3ByaXZhdGU6DQorICBib29sIG1hcmtfYWRkcmVz c2FibGUgKGxvY2F0aW9uICpsb2MpOw0KIH07DQogDQogY2xhc3MgcGFyYW0g OiBwdWJsaWMgbHZhbHVlDQpAQCAtNzAzLDQgKzcxMywzIEBAIGV4dGVybiBw bGF5YmFjazo6Y29udGV4dCAqYWN0aXZlX3BsYXliYWNrX2N0eHQ7DQogfSAv LyBuYW1lc3BhY2UgZ2NjDQogDQogI2VuZGlmIC8qIEpJVF9QTEFZQkFDS19I ICovDQotDQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suYyBi L2djYy9qaXQvaml0LXBsYXliYWNrLmMNCmluZGV4IGI3NDQ5NWMuLjk0MmM3 MzAgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2ppdC1wbGF5YmFjay5jDQorKysg Yi9nY2Mvaml0L2ppdC1wbGF5YmFjay5jDQpAQCAtNDcsNiArNDcsMTMgQEAg YWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5v dCBzZWUNCiAjaW5jbHVkZSAiaml0LWJ1aWx0aW5zLmgiDQogI2luY2x1ZGUg ImppdC10ZW1wZGlyLmgiDQogDQorLyogQ29tcGFyZSB3aXRoIGdjYy9jLWZh bWlseS9jLWNvbW1vbi5oOiBERUNMX0NfQklUX0ZJRUxELA0KKyAgIFNFVF9E RUNMX0NfQklUX0ZJRUxELg0KKyAgIFRoZXNlIGFyZSByZWRlZmluZWQgaGVy ZSB0byBhdm9pZCBkZXBlbmRpbmcgZnJvbSB0aGUgQyBmcm9udGVuZC4gICov DQorI2RlZmluZSBERUNMX0pJVF9CSVRfRklFTEQoTk9ERSkgXA0KKyAgKERF Q0xfTEFOR19GTEFHXzQgKEZJRUxEX0RFQ0xfQ0hFQ0sgKE5PREUpKSA9PSAx KQ0KKyNkZWZpbmUgU0VUX0RFQ0xfSklUX0JJVF9GSUVMRChOT0RFKSBcDQor ICAoREVDTF9MQU5HX0ZMQUdfNCAoRklFTERfREVDTF9DSEVDSyAoTk9ERSkp ID0gMSkNCiANCiAvKiBnY2M6OmppdDo6cGxheWJhY2s6OmNvbnRleHQ6OmJ1 aWxkX2Nhc3QgdXNlcyB0aGUgY29udmVydC5oIEFQSSwNCiAgICB3aGljaCBp biB0dXJuIHJlcXVpcmVzIHRoZSBmcm9udGVuZCB0byBwcm92aWRlIGEgImNv bnZlcnQiDQpAQCAtMjYzLDYgKzI3MCw0NiBAQCBuZXdfZmllbGQgKGxvY2F0 aW9uICpsb2MsDQogICByZXR1cm4gbmV3IGZpZWxkIChkZWNsKTsNCiB9DQog DQorLyogQ29uc3RydWN0IGEgcGxheWJhY2s6OmJpdGZpZWxkIGluc3RhbmNl ICh3cmFwcGluZyBhIHRyZWUpLiAgKi8NCisNCitwbGF5YmFjazo6ZmllbGQg Kg0KK3BsYXliYWNrOjpjb250ZXh0OjoNCituZXdfYml0ZmllbGQgKGxvY2F0 aW9uICpsb2MsDQorCSAgICAgIHR5cGUgKnR5cGUsDQorCSAgICAgIGludCB3 aWR0aCwNCisJICAgICAgY29uc3QgY2hhciAqbmFtZSkNCit7DQorICBnY2Nf YXNzZXJ0ICh0eXBlKTsNCisgIGdjY19hc3NlcnQgKG5hbWUpOw0KKyAgZ2Nj X2Fzc2VydCAod2lkdGgpOw0KKw0KKyAgLyogY29tcGFyZSB3aXRoIGMvYy1k ZWNsLmM6Z3Jva2ZpZWxkLCAgZ3Jva2RlY2xhcmF0b3IgYW5kDQorICAgICBj aGVja19iaXRmaWVsZF90eXBlX2FuZF93aWR0aC4gICovDQorDQorICB0cmVl IHRyZWVfdHlwZSA9IHR5cGUtPmFzX3RyZWUgKCk7DQorICBnY2NfYXNzZXJ0 IChJTlRFR1JBTF9UWVBFX1AgKHRyZWVfdHlwZSkpOw0KKyAgdHJlZSB0cmVl X3dpZHRoID0gYnVpbGRfaW50X2NzdCAoaW50ZWdlcl90eXBlX25vZGUsIHdp ZHRoKTsNCisgIGlmIChjb21wYXJlX3RyZWVfaW50ICh0cmVlX3dpZHRoLCBU WVBFX1BSRUNJU0lPTiAodHJlZV90eXBlKSkgPiAwKQ0KKyAgICB7DQorICAg ICAgYWRkX2Vycm9yICgNCisJbG9jLA0KKwkid2lkdGggb2YgYml0LWZpZWxk ICVzICh3aWR0aDogJWkpIGlzIHdpZGVyIHRoYW4gaXRzIHR5cGUgKHdpZHRo OiAlaSkiLA0KKwluYW1lLCB3aWR0aCwgVFlQRV9QUkVDSVNJT04gKHRyZWVf dHlwZSkpOw0KKyAgICAgIHJldHVybiBOVUxMOw0KKyAgICB9DQorDQorICB0 cmVlIGRlY2wgPSBidWlsZF9kZWNsIChVTktOT1dOX0xPQ0FUSU9OLCBGSUVM RF9ERUNMLA0KKwkJCSAgZ2V0X2lkZW50aWZpZXIgKG5hbWUpLCB0eXBlLT5h c190cmVlICgpKTsNCisgIERFQ0xfTk9OQUREUkVTU0FCTEVfUCAoZGVjbCkg PSB0cnVlOw0KKyAgREVDTF9JTklUSUFMIChkZWNsKSA9IHRyZWVfd2lkdGg7 DQorICBTRVRfREVDTF9KSVRfQklUX0ZJRUxEIChkZWNsKTsNCisNCisgIGlm IChsb2MpDQorICAgIHNldF90cmVlX2xvY2F0aW9uIChkZWNsLCBsb2MpOw0K Kw0KKyAgcmV0dXJuIG5ldyBmaWVsZCAoZGVjbCk7DQorfQ0KKw0KIC8qIENv bnN0cnVjdCBhIHBsYXliYWNrOjpjb21wb3VuZF90eXBlIGluc3RhbmNlICh3 cmFwcGluZyBhIHRyZWUpLiAgKi8NCiANCiBwbGF5YmFjazo6Y29tcG91bmRf dHlwZSAqDQpAQCAtMjk1LDggKzM0MiwxNSBAQCBwbGF5YmFjazo6Y29tcG91 bmRfdHlwZTo6c2V0X2ZpZWxkcyAoY29uc3QgYXV0b192ZWM8cGxheWJhY2s6 OmZpZWxkICo+ICpmaWVsZHMpDQogICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp IDwgZmllbGRzLT5sZW5ndGggKCk7IGkrKykNCiAgICAgew0KICAgICAgIGZp ZWxkICpmID0gKCpmaWVsZHMpW2ldOw0KLSAgICAgIERFQ0xfQ09OVEVYVCAo Zi0+YXNfdHJlZSAoKSkgPSB0Ow0KLSAgICAgIGZpZWxkbGlzdCA9IGNoYWlu b24gKGYtPmFzX3RyZWUgKCksIGZpZWxkbGlzdCk7DQorICAgICAgdHJlZSB4 ID0gZi0+YXNfdHJlZSAoKTsNCisgICAgICBERUNMX0NPTlRFWFQgKHgpID0g dDsNCisgICAgICBpZiAoREVDTF9KSVRfQklUX0ZJRUxEICh4KSkNCisJew0K KwkgIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgd2lkdGggPSB0cmVlX3RvX3Vo d2kgKERFQ0xfSU5JVElBTCAoeCkpOw0KKwkgIERFQ0xfU0laRSAoeCkgPSBi aXRzaXplX2ludCAod2lkdGgpOw0KKwkgIERFQ0xfQklUX0ZJRUxEICh4KSA9 IDE7DQorCX0NCisgICAgICBmaWVsZGxpc3QgPSBjaGFpbm9uICh4LCBmaWVs ZGxpc3QpOw0KICAgICB9DQogICBmaWVsZGxpc3QgPSBucmV2ZXJzZSAoZmll bGRsaXN0KTsNCiAgIFRZUEVfRklFTERTICh0KSA9IGZpZWxkbGlzdDsNCkBA IC0xMTk3LDIwICsxMjUxLDMxIEBAIGRlcmVmZXJlbmNlIChsb2NhdGlvbiAq bG9jKQ0KICAgcmV0dXJuIG5ldyBsdmFsdWUgKGdldF9jb250ZXh0ICgpLCBk YXR1bSk7DQogfQ0KIA0KLS8qIE1hcmsgRVhQIHNheWluZyB0aGF0IHdlIG5l ZWQgdG8gYmUgYWJsZSB0byB0YWtlIHRoZQ0KKy8qIE1hcmsgdGhlIGx2YWx1 ZSBzYXlpbmcgdGhhdCB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gdGFrZSB0aGUN CiAgICBhZGRyZXNzIG9mIGl0OyBpdCBzaG91bGQgbm90IGJlIGFsbG9jYXRl ZCBpbiBhIHJlZ2lzdGVyLg0KLSAgIENvbXBhcmUgd2l0aCBlLmcuIGMvYy10 eXBlY2suYzogY19tYXJrX2FkZHJlc3NhYmxlLiAgKi8NCisgICBDb21wYXJl IHdpdGggZS5nLiBjL2MtdHlwZWNrLmM6IGNfbWFya19hZGRyZXNzYWJsZSBy ZWFsbHlfYXRvbWljX2x2YWx1ZS4NCisgICBSZXR1cm5zIGZhbHNlIGlmIGEg ZmFpbHVyZSBvY2N1cnJlZCAoYW4gZXJyb3Igd2lsbCBhbHJlYWR5IGhhdmUg YmVlbg0KKyAgIGFkZGVkIHRvIHRoZSBhY3RpdmUgY29udGV4dCBmb3IgdGhp cyBjYXNlKS4gICovDQogDQotc3RhdGljIHZvaWQNCi1qaXRfbWFya19hZGRy ZXNzYWJsZSAodHJlZSBleHApDQorYm9vbA0KK3BsYXliYWNrOjpsdmFsdWU6 Og0KK21hcmtfYWRkcmVzc2FibGUgKGxvY2F0aW9uICpsb2MpDQogew0KLSAg dHJlZSB4ID0gZXhwOw0KKyAgdHJlZSB4ID0gYXNfdHJlZSAoKTs7DQogDQog ICB3aGlsZSAoMSkNCiAgICAgc3dpdGNoIChUUkVFX0NPREUgKHgpKQ0KICAg ICAgIHsNCiAgICAgICBjYXNlIENPTVBPTkVOVF9SRUY6DQotCS8qICh3ZSBk b24ndCB5ZXQgc3VwcG9ydCBiaXRmaWVsZHMpICAqLw0KKwlpZiAoREVDTF9K SVRfQklUX0ZJRUxEIChUUkVFX09QRVJBTkQgKHgsIDEpKSkNCisJICB7DQor CSAgICBnY2NfYXNzZXJ0IChnY2M6OmppdDo6YWN0aXZlX3BsYXliYWNrX2N0 eHQpOw0KKwkgICAgZ2NjOjpqaXQ6Og0KKwkgICAgICBhY3RpdmVfcGxheWJh Y2tfY3R4dC0+YWRkX2Vycm9yIChsb2MsDQorCQkJCQkgICAgICAgImNhbm5v dCB0YWtlIGFkZHJlc3Mgb2YgIg0KKwkJCQkJICAgICAgICJiaXQtZmllbGQi KTsNCisJICAgIHJldHVybiBmYWxzZTsNCisJICB9DQogCS8qIGZhbGx0aHJv dWdoICovDQogICAgICAgY2FzZSBBRERSX0VYUFI6DQogICAgICAgY2FzZSBB UlJBWV9SRUY6DQpAQCAtMTIyMiw3ICsxMjg3LDcgQEAgaml0X21hcmtfYWRk cmVzc2FibGUgKHRyZWUgZXhwKQ0KICAgICAgIGNhc2UgQ09NUE9VTkRfTElU RVJBTF9FWFBSOg0KICAgICAgIGNhc2UgQ09OU1RSVUNUT1I6DQogCVRSRUVf QUREUkVTU0FCTEUgKHgpID0gMTsNCi0JcmV0dXJuOw0KKwlyZXR1cm4gdHJ1 ZTsNCiANCiAgICAgICBjYXNlIFZBUl9ERUNMOg0KICAgICAgIGNhc2UgQ09O U1RfREVDTDoNCkBAIC0xMjM0LDcgKzEyOTksNyBAQCBqaXRfbWFya19hZGRy ZXNzYWJsZSAodHJlZSBleHApDQogCVRSRUVfQUREUkVTU0FCTEUgKHgpID0g MTsNCiAJLyogZmFsbHRocm91Z2ggKi8NCiAgICAgICBkZWZhdWx0Og0KLQly ZXR1cm47DQorCXJldHVybiB0cnVlOw0KICAgICAgIH0NCiB9DQogDQpAQCAt MTI1MSw4ICsxMzE2LDEwIEBAIGdldF9hZGRyZXNzIChsb2NhdGlvbiAqbG9j KQ0KICAgdHJlZSBwdHIgPSBidWlsZDEgKEFERFJfRVhQUiwgdF9wdHJ0eXBl LCB0X2x2YWx1ZSk7DQogICBpZiAobG9jKQ0KICAgICBnZXRfY29udGV4dCAo KS0+c2V0X3RyZWVfbG9jYXRpb24gKHB0ciwgbG9jKTsNCi0gIGppdF9tYXJr X2FkZHJlc3NhYmxlICh0X2x2YWx1ZSk7DQotICByZXR1cm4gbmV3IHJ2YWx1 ZSAoZ2V0X2NvbnRleHQgKCksIHB0cik7DQorICBpZiAobWFya19hZGRyZXNz YWJsZSAobG9jKSkNCisgICAgcmV0dXJuIG5ldyBydmFsdWUgKGdldF9jb250 ZXh0ICgpLCBwdHIpOw0KKyAgZWxzZQ0KKyAgICByZXR1cm4gTlVMTDsNCiB9 DQogDQogLyogVGhlIHdyYXBwZXIgc3ViY2xhc3NlcyBhcmUgR0MtbWFuYWdl ZCwgYnV0IGNhbiBvd24gbm9uLUdDIG1lbW9yeS4NCmRpZmYgLS1naXQgYS9n Y2Mvaml0L2ppdC1yZWNvcmRpbmcuaCBiL2djYy9qaXQvaml0LXJlY29yZGlu Zy5oDQppbmRleCBiOWYyMjUwLi4xM2VjN2VhIDEwMDY0NA0KLS0tIGEvZ2Nj L2ppdC9qaXQtcmVjb3JkaW5nLmgNCisrKyBiL2djYy9qaXQvaml0LXJlY29y ZGluZy5oDQpAQCAtOTUsNiArOTUsMTIgQEAgcHVibGljOg0KIAkgICAgIHR5 cGUgKnR5cGUsDQogCSAgICAgY29uc3QgY2hhciAqbmFtZSk7DQogDQorICBm aWVsZCAqDQorICBuZXdfYml0ZmllbGQgKGxvY2F0aW9uICpsb2MsDQorICAg ICAgICAgICAgICAgIHR5cGUgKnR5cGUsDQorICAgICAgICAgICAgICAgIGlu dCB3aWR0aCwNCisgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7 DQorDQogICBzdHJ1Y3RfICoNCiAgIG5ld19zdHJ1Y3RfdHlwZSAobG9jYXRp b24gKmxvYywNCiAJCSAgIGNvbnN0IGNoYXIgKm5hbWUpOw0KQEAgLTgyMiw5 ICs4MjgsOSBAQCBwdWJsaWM6DQogICBjb21wb3VuZF90eXBlICogZ2V0X2Nv bnRhaW5lciAoKSBjb25zdCB7IHJldHVybiBtX2NvbnRhaW5lcjsgfQ0KICAg dm9pZCBzZXRfY29udGFpbmVyIChjb21wb3VuZF90eXBlICpjKSB7IG1fY29u dGFpbmVyID0gYzsgfQ0KIA0KLSAgdm9pZCByZXBsYXlfaW50byAocmVwbGF5 ZXIgKikgRklOQUwgT1ZFUlJJREU7DQorICB2b2lkIHJlcGxheV9pbnRvIChy ZXBsYXllciAqKSBPVkVSUklERTsNCiANCi0gIHZvaWQgd3JpdGVfdG9fZHVt cCAoZHVtcCAmZCkgRklOQUwgT1ZFUlJJREU7DQorICB2b2lkIHdyaXRlX3Rv X2R1bXAgKGR1bXAgJmQpIE9WRVJSSURFOw0KIA0KICAgcGxheWJhY2s6OmZp ZWxkICoNCiAgIHBsYXliYWNrX2ZpZWxkICgpIGNvbnN0DQpAQCAtODMzLDE2 ICs4MzksNDEgQEAgcHVibGljOg0KICAgfQ0KIA0KIHByaXZhdGU6DQotICBz dHJpbmcgKiBtYWtlX2RlYnVnX3N0cmluZyAoKSBGSU5BTCBPVkVSUklERTsN Ci0gIHZvaWQgd3JpdGVfcmVwcm9kdWNlciAocmVwcm9kdWNlciAmcikgRklO QUwgT1ZFUlJJREU7DQorICBzdHJpbmcgKiBtYWtlX2RlYnVnX3N0cmluZyAo KSBPVkVSUklERTsNCisgIHZvaWQgd3JpdGVfcmVwcm9kdWNlciAocmVwcm9k dWNlciAmcikgT1ZFUlJJREU7DQogDQotcHJpdmF0ZToNCitwcm90ZWN0ZWQ6 DQogICBsb2NhdGlvbiAqbV9sb2M7DQogICB0eXBlICptX3R5cGU7DQogICBz dHJpbmcgKm1fbmFtZTsNCiAgIGNvbXBvdW5kX3R5cGUgKm1fY29udGFpbmVy Ow0KIH07DQogDQorDQorY2xhc3MgYml0ZmllbGQgOiBwdWJsaWMgZmllbGQN Cit7DQorcHVibGljOg0KKyAgYml0ZmllbGQgKGNvbnRleHQgKmN0eHQsDQor CSAgICBsb2NhdGlvbiAqbG9jLA0KKwkgICAgdHlwZSAqdHlwZSwNCisJICAg IGludCB3aWR0aCwNCisJICAgIHN0cmluZyAqbmFtZSkNCisgICAgOiBmaWVs ZCAoY3R4dCwgbG9jLCB0eXBlLCBuYW1lKSwNCisgICAgICBtX3dpZHRoICh3 aWR0aCkNCisgIHt9DQorDQorICB2b2lkIHJlcGxheV9pbnRvIChyZXBsYXll ciAqKSBGSU5BTCBPVkVSUklERTsNCisNCisgIHZvaWQgd3JpdGVfdG9fZHVt cCAoZHVtcCAmZCkgRklOQUwgT1ZFUlJJREU7DQorDQorcHJpdmF0ZToNCisg IHN0cmluZyAqIG1ha2VfZGVidWdfc3RyaW5nICgpIEZJTkFMIE9WRVJSSURF Ow0KKyAgdm9pZCB3cml0ZV9yZXByb2R1Y2VyIChyZXByb2R1Y2VyICZyKSBG SU5BTCBPVkVSUklERTsNCisNCitwcml2YXRlOg0KKyAgaW50IG1fd2lkdGg7 DQorfTsNCisNCiAvKiBCYXNlIGNsYXNzIGZvciBzdHJ1Y3RfIGFuZCB1bmlv bl8gKi8NCiBjbGFzcyBjb21wb3VuZF90eXBlIDogcHVibGljIHR5cGUNCiB7 DQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmMgYi9nY2Mv aml0L2ppdC1yZWNvcmRpbmcuYw0KaW5kZXggYTMzMmZlOC4uNDk1YWM3ZiAx MDA2NDQNCi0tLSBhL2djYy9qaXQvaml0LXJlY29yZGluZy5jDQorKysgYi9n Y2Mvaml0L2ppdC1yZWNvcmRpbmcuYw0KQEAgLTg3Miw2ICs4NzIsMjQgQEAg cmVjb3JkaW5nOjpjb250ZXh0OjpuZXdfZmllbGQgKHJlY29yZGluZzo6bG9j YXRpb24gKmxvYywNCiAgIHJldHVybiByZXN1bHQ7DQogfQ0KIA0KKy8qIENy ZWF0ZSBhIHJlY29yZGluZzo6Yml0ZmllbGQgaW5zdGFuY2UgYW5kIGFkZCBp dCB0byB0aGlzIGNvbnRleHQncyBsaXN0DQorICAgb2YgbWVtZW50b3MuDQor DQorICAgSW1wbGVtZW50cyB0aGUgcG9zdC1lcnJvci1jaGVja2luZyBwYXJ0 IG9mDQorICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZC4gICovDQor DQorcmVjb3JkaW5nOjpmaWVsZCAqDQorcmVjb3JkaW5nOjpjb250ZXh0Ojpu ZXdfYml0ZmllbGQgKHJlY29yZGluZzo6bG9jYXRpb24gKmxvYywNCisJCQkJ ICByZWNvcmRpbmc6OnR5cGUgKnR5cGUsDQorCQkJCSAgaW50IHdpZHRoLA0K KwkJCQkgIGNvbnN0IGNoYXIgKm5hbWUpDQorew0KKyAgcmVjb3JkaW5nOjpm aWVsZCAqcmVzdWx0ID0NCisgICAgbmV3IHJlY29yZGluZzo6Yml0ZmllbGQg KHRoaXMsIGxvYywgdHlwZSwgd2lkdGgsIG5ld19zdHJpbmcgKG5hbWUpKTsN CisgIHJlY29yZCAocmVzdWx0KTsNCisgIHJldHVybiByZXN1bHQ7DQorfQ0K Kw0KIC8qIENyZWF0ZSBhIHJlY29yZGluZzo6c3RydWN0XyBpbnN0YW5jZSBh bmQgYWRkIGl0IHRvIHRoaXMgY29udGV4dCdzDQogICAgbGlzdCBvZiBtZW1l bnRvcyBhbmQgbGlzdCBvZiBjb21wb3VuZCB0eXBlcy4NCiANCkBAIC0yOTYy LDcgKzI5ODAsNyBAQCByZWNvcmRpbmc6OmZpZWxkOjpyZXBsYXlfaW50byAo cmVwbGF5ZXIgKnIpDQogICAgcmVjb3JkaW5nOjptZW1lbnRvOjp3cml0ZV90 b19kdW1wLiAgRHVtcCBlYWNoIGZpZWxkDQogICAgYnkgZHVtcGluZyBhIGxp bmUgb2YgdGhlIGZvcm06DQogICAgICAgVFlQRSBOQU1FOw0KLSAgIHNvIHRo YXQgd2UgY2FuIGJ1aWxkIHVwIGEgc3RydWN0L3VuaW9uIGZpZWxkLWJ5Zmll bGQuICAqLw0KKyAgIHNvIHRoYXQgd2UgY2FuIGJ1aWxkIHVwIGEgc3RydWN0 L3VuaW9uIGZpZWxkIGJ5IGZpZWxkLiAgKi8NCiANCiB2b2lkDQogcmVjb3Jk aW5nOjpmaWVsZDo6d3JpdGVfdG9fZHVtcCAoZHVtcCAmZCkNCkBAIC0yOTk5 LDYgKzMwMTcsNjYgQEAgcmVjb3JkaW5nOjpmaWVsZDo6d3JpdGVfcmVwcm9k dWNlciAocmVwcm9kdWNlciAmcikNCiAJICBtX25hbWUtPmdldF9kZWJ1Z19z dHJpbmcgKCkpOw0KIH0NCiANCisvKiBUaGUgaW1wbGVtZW50YXRpb24gb2Yg Y2xhc3MgZ2NjOjpqaXQ6OnJlY29yZGluZzo6Yml0ZmllbGQuICAqLw0KKw0K Ky8qIEltcGxlbWVudGF0aW9uIG9mIHB1cmUgdmlydHVhbCBob29rIHJlY29y ZGluZzo6bWVtZW50bzo6cmVwbGF5X2ludG8NCisgICBmb3IgcmVjb3JkaW5n OjpiaXRmaWVsZC4gICovDQorDQordm9pZA0KK3JlY29yZGluZzo6Yml0Zmll bGQ6OnJlcGxheV9pbnRvIChyZXBsYXllciAqcikNCit7DQorICBzZXRfcGxh eWJhY2tfb2JqIChyLT5uZXdfYml0ZmllbGQgKHBsYXliYWNrX2xvY2F0aW9u IChyLCBtX2xvYyksDQorCQkJCSAgICAgbV90eXBlLT5wbGF5YmFja190eXBl ICgpLA0KKwkJCQkgICAgIG1fd2lkdGgsDQorCQkJCSAgICAgcGxheWJhY2tf c3RyaW5nIChtX25hbWUpKSk7DQorfQ0KKw0KKy8qIE92ZXJyaWRlIHRoZSBk ZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mDQorICAgcmVjb3JkaW5nOjptZW1l bnRvOjp3cml0ZV90b19kdW1wLiAgRHVtcCBlYWNoIGJpdCBmaWVsZA0KKyAg IGJ5IGR1bXBpbmcgYSBsaW5lIG9mIHRoZSBmb3JtOg0KKyAgICAgIFRZUEUg TkFNRTpXSURUSDsNCisgICBzbyB0aGF0IHdlIGNhbiBidWlsZCB1cCBhIHN0 cnVjdC91bmlvbiBmaWVsZCBieSBmaWVsZC4gICovDQorDQordm9pZA0KK3Jl Y29yZGluZzo6Yml0ZmllbGQ6OndyaXRlX3RvX2R1bXAgKGR1bXAgJmQpDQor ew0KKyAgZC53cml0ZSAoIiAgJXMgJXM6JWQ7XG4iLA0KKwkgICBtX3R5cGUt PmdldF9kZWJ1Z19zdHJpbmcgKCksDQorCSAgIG1fbmFtZS0+Y19zdHIgKCks DQorCSAgIG1fd2lkdGgpOw0KK30NCisNCisvKiBJbXBsZW1lbnRhdGlvbiBv ZiByZWNvcmRpbmc6Om1lbWVudG86Om1ha2VfZGVidWdfc3RyaW5nIGZvcg0K KyAgIHJlc3VsdHMgb2YgbmV3X2JpdGZpZWxkLiAgKi8NCisNCityZWNvcmRp bmc6OnN0cmluZyAqDQorcmVjb3JkaW5nOjpiaXRmaWVsZDo6bWFrZV9kZWJ1 Z19zdHJpbmcgKCkNCit7DQorICByZXR1cm4gc3RyaW5nOjpmcm9tX3ByaW50 ZiAobV9jdHh0LA0KKwkJCSAgICAgICIlczolZCIsDQorCQkJICAgICAgbV9u YW1lLT5jX3N0ciAoKSwgbV93aWR0aCk7DQorfQ0KKw0KKy8qIEltcGxlbWVu dGF0aW9uIG9mIHJlY29yZGluZzo6bWVtZW50bzo6d3JpdGVfcmVwcm9kdWNl ciBmb3IgYml0ZmllbGRzLiAgKi8NCisNCit2b2lkDQorcmVjb3JkaW5nOjpi aXRmaWVsZDo6d3JpdGVfcmVwcm9kdWNlciAocmVwcm9kdWNlciAmcikNCit7 DQorICBjb25zdCBjaGFyICppZCA9IHIubWFrZV9pZGVudGlmaWVyICh0aGlz LCAiYml0ZmllbGQiKTsNCisgIHIud3JpdGUgKCIgIGdjY19qaXRfZmllbGQg KiVzID1cbiINCisJICAgIiAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZp ZWxkICglcyxcbiINCisJICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAlcywgLyogZ2NjX2ppdF9sb2NhdGlvbiAqbG9jICovXG4iDQorCSAg ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJXMsIC8qIGdjY19q aXRfdHlwZSAqdHlwZSwgKi9cbiINCisJICAgIiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAlZCwgLyogaW50IHdpZHRoLCAqL1xuIg0KKwkgICAi ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVzKTsgLyogY29uc3Qg Y2hhciAqbmFtZSAqL1xuIiwNCisJICAgaWQsDQorCSAgIHIuZ2V0X2lkZW50 aWZpZXIgKGdldF9jb250ZXh0ICgpKSwNCisJICAgci5nZXRfaWRlbnRpZmll ciAobV9sb2MpLA0KKwkgICByLmdldF9pZGVudGlmaWVyX2FzX3R5cGUgKG1f dHlwZSksDQorCSAgIG1fd2lkdGgsDQorCSAgIG1fbmFtZS0+Z2V0X2RlYnVn X3N0cmluZyAoKSk7DQorfQ0KKw0KIC8qIFRoZSBpbXBsZW1lbnRhdGlvbiBv ZiBjbGFzcyBnY2M6OmppdDo6cmVjb3JkaW5nOjpjb21wb3VuZF90eXBlICov DQogDQogLyogVGhlIGNvbnN0cnVjdG9yIGZvciBnY2M6OmppdDo6cmVjb3Jk aW5nOjpjb21wb3VuZF90eXBlLiAgKi8NCmRpZmYgLS1naXQgYS9nY2Mvaml0 L2xpYmdjY2ppdCsrLmggYi9nY2Mvaml0L2xpYmdjY2ppdCsrLmgNCmluZGV4 IDU1YWViY2EuLjBjNWJlNWEgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2xpYmdj Y2ppdCsrLmgNCisrKyBiL2djYy9qaXQvbGliZ2Njaml0KysuaA0KQEAgLTE1 Miw2ICsxNTIsOSBAQCBuYW1lc3BhY2UgZ2Njaml0DQogICAgIGZpZWxkIG5l d19maWVsZCAodHlwZSB0eXBlXywgY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUs DQogCQkgICAgIGxvY2F0aW9uIGxvYyA9IGxvY2F0aW9uICgpKTsNCiANCisg ICAgZmllbGQgbmV3X2JpdGZpZWxkICh0eXBlIHR5cGVfLCBpbnQgd2lkdGgs IGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLA0KKwkJCWxvY2F0aW9uIGxvYyA9 IGxvY2F0aW9uICgpKTsNCisNCiAgICAgc3RydWN0XyBuZXdfc3RydWN0X3R5 cGUgKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLA0KIAkJCSAgICAgc3RkOjp2 ZWN0b3I8ZmllbGQ+ICZmaWVsZHMsDQogCQkJICAgICBsb2NhdGlvbiBsb2Mg PSBsb2NhdGlvbiAoKSk7DQpAQCAtNzU3LDYgKzc2MCwxNyBAQCBjb250ZXh0 OjpuZXdfZmllbGQgKHR5cGUgdHlwZV8sIGNvbnN0IHN0ZDo6c3RyaW5nICZu YW1lLCBsb2NhdGlvbiBsb2MpDQogCQkJCQkgICBuYW1lLmNfc3RyICgpKSk7 DQogfQ0KIA0KK2lubGluZSBmaWVsZA0KK2NvbnRleHQ6Om5ld19iaXRmaWVs ZCAodHlwZSB0eXBlXywgaW50IHdpZHRoLCBjb25zdCBzdGQ6OnN0cmluZyAm bmFtZSwNCisJCSAgICAgICBsb2NhdGlvbiBsb2MpDQorew0KKyAgcmV0dXJu IGZpZWxkIChnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChtX2lubmVy X2N0eHQsDQorCQkJCQkgICAgICBsb2MuZ2V0X2lubmVyX2xvY2F0aW9uICgp LA0KKwkJCQkJICAgICAgdHlwZV8uZ2V0X2lubmVyX3R5cGUgKCksDQorCQkJ CQkgICAgICB3aWR0aCwNCisJCQkJCSAgICAgIG5hbWUuY19zdHIgKCkpKTsN Cit9DQorDQogaW5saW5lIHN0cnVjdF8NCiBjb250ZXh0OjpuZXdfc3RydWN0 X3R5cGUgKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLA0KIAkJCSAgc3RkOjp2 ZWN0b3I8ZmllbGQ+ICZmaWVsZHMsDQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9s aWJnY2NqaXQuaCBiL2djYy9qaXQvbGliZ2Njaml0LmgNCmluZGV4IGJlZWI3 NDcuLjljNWYyM2IgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2xpYmdjY2ppdC5o DQorKysgYi9nY2Mvaml0L2xpYmdjY2ppdC5oDQpAQCAtNjAyLDYgKzYwMiwy MSBAQCBnY2Nfaml0X2NvbnRleHRfbmV3X2ZpZWxkIChnY2Nfaml0X2NvbnRl eHQgKmN0eHQsDQogCQkJICAgZ2NjX2ppdF90eXBlICp0eXBlLA0KIAkJCSAg IGNvbnN0IGNoYXIgKm5hbWUpOw0KIA0KKyNkZWZpbmUgTElCR0NDSklUX0hB VkVfZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZA0KKw0KKy8qIENyZWF0 ZSBhIGJpdCBmaWVsZCwgZm9yIHVzZSB3aXRoaW4gYSBzdHJ1Y3Qgb3IgdW5p b24uDQorDQorICAgVGhpcyBBUEkgZW50cnlwb2ludCB3YXMgYWRkZWQgaW4g TElCR0NDSklUX0FCSV8xMjsgeW91IGNhbiB0ZXN0IGZvciBpdHMNCisgICBw cmVzZW5jZSB1c2luZw0KKyAgICAgI2lmZGVmIExJQkdDQ0pJVF9IQVZFX2dj Y19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQNCisqLw0KK2V4dGVybiBnY2Nf aml0X2ZpZWxkICoNCitnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChn Y2Nfaml0X2NvbnRleHQgKmN0eHQsDQorCQkJICAgICAgZ2NjX2ppdF9sb2Nh dGlvbiAqbG9jLA0KKwkJCSAgICAgIGdjY19qaXRfdHlwZSAqdHlwZSwNCisJ CQkgICAgICBpbnQgd2lkdGgsDQorCQkJICAgICAgY29uc3QgY2hhciAqbmFt ZSk7DQorDQogLyogVXBjYXN0aW5nIGZyb20gZmllbGQgdG8gb2JqZWN0LiAg Ki8NCiBleHRlcm4gZ2NjX2ppdF9vYmplY3QgKg0KIGdjY19qaXRfZmllbGRf YXNfb2JqZWN0IChnY2Nfaml0X2ZpZWxkICpmaWVsZCk7DQpkaWZmIC0tZ2l0 IGEvZ2NjL2ppdC9saWJnY2NqaXQuYyBiL2djYy9qaXQvbGliZ2Njaml0LmMN CmluZGV4IGU0ZjE3ZjguLmFiZjcwMTkgMTAwNjQ0DQotLS0gYS9nY2Mvaml0 L2xpYmdjY2ppdC5jDQorKysgYi9nY2Mvaml0L2xpYmdjY2ppdC5jDQpAQCAt NjIsNiArNjIsMTAgQEAgc3RydWN0IGdjY19qaXRfZmllbGQgOiBwdWJsaWMg Z2NjOjpqaXQ6OnJlY29yZGluZzo6ZmllbGQNCiB7DQogfTsNCiANCitzdHJ1 Y3QgZ2NjX2ppdF9iaXRmaWVsZCA6IHB1YmxpYyBnY2M6OmppdDo6cmVjb3Jk aW5nOjpiaXRmaWVsZA0KK3sNCit9Ow0KKw0KIHN0cnVjdCBnY2Nfaml0X2Z1 bmN0aW9uIDogcHVibGljIGdjYzo6aml0OjpyZWNvcmRpbmc6OmZ1bmN0aW9u DQogew0KIH07DQpAQCAtNTU2LDYgKzU2MCw0MiBAQCBnY2Nfaml0X2NvbnRl eHRfbmV3X2ZpZWxkIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsDQogDQogLyog UHVibGljIGVudHJ5cG9pbnQuICBTZWUgZGVzY3JpcHRpb24gaW4gbGliZ2Nj aml0LmguDQogDQorICAgQWZ0ZXIgZXJyb3ItY2hlY2tpbmcsIHRoZSByZWFs IHdvcmsgaXMgZG9uZSBieSB0aGUNCisgICBnY2M6OmppdDo6cmVjb3JkaW5n Ojpjb250ZXh0OjpuZXdfYml0ZmllbGQgbWV0aG9kLCBpbg0KKyAgIGppdC1y ZWNvcmRpbmcuYy4gICovDQorDQorZ2NjX2ppdF9maWVsZCAqDQorZ2NjX2pp dF9jb250ZXh0X25ld19iaXRmaWVsZCAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0 LA0KKwkJCSAgICAgIGdjY19qaXRfbG9jYXRpb24gKmxvYywNCisJCQkgICAg ICBnY2Nfaml0X3R5cGUgKnR5cGUsDQorCQkJICAgICAgaW50IHdpZHRoLA0K KwkJCSAgICAgIGNvbnN0IGNoYXIgKm5hbWUpDQorew0KKyAgUkVUVVJOX05V TExfSUZfRkFJTCAoY3R4dCwgTlVMTCwgTlVMTCwgIk5VTEwgY29udGV4dCIp Ow0KKyAgSklUX0xPR19GVU5DIChjdHh0LT5nZXRfbG9nZ2VyICgpKTsNCisg IC8qIExPQyBjYW4gYmUgTlVMTC4gICovDQorICBSRVRVUk5fTlVMTF9JRl9G QUlMIChuYW1lLCBjdHh0LCBsb2MsICJOVUxMIG5hbWUiKTsNCisgIFJFVFVS Tl9OVUxMX0lGX0ZBSUwgKHR5cGUsIGN0eHQsIGxvYywgIk5VTEwgdHlwZSIp Ow0KKyAgUkVUVVJOX05VTExfSUZfRkFJTF9QUklOVEYyICh0eXBlLT5pc19p bnQgKCkgfHwgdHlwZS0+aXNfYm9vbCAoKSwNCisJCQkgICAgICAgY3R4dCwg bG9jLA0KKwkJCSAgICAgICAiYml0LWZpZWxkICVzIGhhcyBub24gaW50ZWdy YWwgdHlwZSAlcyIsDQorCQkJICAgICAgIG5hbWUsIHR5cGUtPmdldF9kZWJ1 Z19zdHJpbmcgKCkpOw0KKyAgUkVUVVJOX05VTExfSUZfRkFJTF9QUklOVEYy ICgNCisgICAgd2lkdGggPiAwLCBjdHh0LCBsb2MsDQorICAgICJpbnZhbGlk IHdpZHRoICVkIGZvciBiaXRmaWVsZCBcIiVzXCIgKG11c3QgYmUgPiAwKSIs DQorICAgIHdpZHRoLCBuYW1lKTsNCisgIFJFVFVSTl9OVUxMX0lGX0ZBSUxf UFJJTlRGMiAoDQorICAgIHR5cGUtPmhhc19rbm93bl9zaXplICgpLA0KKyAg ICBjdHh0LCBsb2MsDQorICAgICJ1bmtub3duIHNpemUgZm9yIGZpZWxkIFwi JXNcIiAodHlwZTogJXMpIiwNCisgICAgbmFtZSwNCisgICAgdHlwZS0+Z2V0 X2RlYnVnX3N0cmluZyAoKSk7DQorDQorICByZXR1cm4gKGdjY19qaXRfZmll bGQgKiljdHh0LT5uZXdfYml0ZmllbGQgKGxvYywgdHlwZSwgd2lkdGgsIG5h bWUpOw0KK30NCisNCisvKiBQdWJsaWMgZW50cnlwb2ludC4gIFNlZSBkZXNj cmlwdGlvbiBpbiBsaWJnY2NqaXQuaC4NCisNCiAgICBBZnRlciBlcnJvci1j aGVja2luZywgdGhpcyBjYWxscyB0aGUgdHJpdmlhbA0KICAgIGdjYzo6aml0 OjpyZWNvcmRpbmc6Om1lbWVudG86OmFzX29iamVjdCBtZXRob2QgKGEgZmll bGQgaXMgYQ0KICAgIG1lbWVudG8pLCBpbiBqaXQtcmVjb3JkaW5nLmguICAq Lw0KZGlmZiAtLWdpdCBhL2djYy9qaXQvbGliZ2Njaml0Lm1hcCBiL2djYy9q aXQvbGliZ2Njaml0Lm1hcA0KaW5kZXggMTZmNTI1My4uNDBlMWM3OCAxMDA2 NDQNCi0tLSBhL2djYy9qaXQvbGliZ2Njaml0Lm1hcA0KKysrIGIvZ2NjL2pp dC9saWJnY2NqaXQubWFwDQpAQCAtMTc0LDQgKzE3NCw5IEBAIExJQkdDQ0pJ VF9BQklfMTAgew0KIExJQkdDQ0pJVF9BQklfMTEgew0KICAgZ2xvYmFsOg0K ICAgICBnY2Nfaml0X2NvbnRleHRfYWRkX2RyaXZlcl9vcHRpb247DQotfSBM SUJHQ0NKSVRfQUJJXzEwOw0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl DQorfSBMSUJHQ0NKSVRfQUJJXzEwOw0KKw0KK0xJQkdDQ0pJVF9BQklfMTIg ew0KKyAgZ2xvYmFsOg0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZp ZWxkOw0KK30gTElCR0NDSklUX0FCSV8xMTsNClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvaml0LmRn L2FsbC1ub24tZmFpbGluZy10ZXN0cy5oIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQu ZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmgNCmluZGV4IDlhMTA0MTguLjAy NzJlNmY4IDEwMDY0NA0KLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvYWxs LW5vbi1mYWlsaW5nLXRlc3RzLmgNCisrKyBiL2djYy90ZXN0c3VpdGUvaml0 LmRnL2FsbC1ub24tZmFpbGluZy10ZXN0cy5oDQpAQCAtOCw2ICs4LDEzIEBA DQogICAgaG9va3MgcHJvdmlkZWQgYnkgZWFjaCB0ZXN0IGNhc2UuICAqLw0K ICNkZWZpbmUgQ09NQklORURfVEVTVA0KIA0KKy8qIHRlc3QtYWNjZXNzaW5n LWJpdGZpZWxkLmMgKi8NCisjZGVmaW5lIGNyZWF0ZV9jb2RlIGNyZWF0ZV9j b2RlX2FjY2Vzc2luZ19iaXRmaWVsZA0KKyNkZWZpbmUgdmVyaWZ5X2NvZGUg dmVyaWZ5X2NvZGVfYWNjZXNzaW5nX2JpdGZpZWxkDQorI2luY2x1ZGUgInRl c3QtYWNjZXNzaW5nLWJpdGZpZWxkLmMiDQorI3VuZGVmIGNyZWF0ZV9jb2Rl DQorI3VuZGVmIHZlcmlmeV9jb2RlDQorDQogLyogdGVzdC1hY2Nlc3Npbmct c3RydWN0LmMgKi8NCiAjZGVmaW5lIGNyZWF0ZV9jb2RlIGNyZWF0ZV9jb2Rl X2FjY2Vzc2luZ19zdHJ1Y3QNCiAjZGVmaW5lIHZlcmlmeV9jb2RlIHZlcmlm eV9jb2RlX2FjY2Vzc2luZ19zdHJ1Y3QNCkBAIC0yNjYsNiArMjczLDkgQEAg c3RydWN0IHRlc3RjYXNlDQogfTsNCiANCiBjb25zdCBzdHJ1Y3QgdGVzdGNh c2UgdGVzdGNhc2VzW10gPSB7DQorICB7ImFjY2Vzc2luZ19iaXRmaWVsZCIs DQorICAgY3JlYXRlX2NvZGVfYWNjZXNzaW5nX2JpdGZpZWxkLA0KKyAgIHZl cmlmeV9jb2RlX2FjY2Vzc2luZ19iaXRmaWVsZH0sDQogICB7ImFjY2Vzc2lu Z19zdHJ1Y3QiLA0KICAgIGNyZWF0ZV9jb2RlX2FjY2Vzc2luZ19zdHJ1Y3Qs DQogICAgdmVyaWZ5X2NvZGVfYWNjZXNzaW5nX3N0cnVjdH0sDQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1hY2Nlc3NpbmctYml0 ZmllbGQuYyBiL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtYWNjZXNzaW5n LWJpdGZpZWxkLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw MDAwLi41ZTgwMzUxDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1 aXRlL2ppdC5kZy90ZXN0LWFjY2Vzc2luZy1iaXRmaWVsZC5jDQpAQCAtMCww ICsxLDEzMCBAQA0KKyNpbmNsdWRlIDxzdGRsaWIuaD4NCisjaW5jbHVkZSA8 c3RkaW8uaD4NCisNCisjaW5jbHVkZSAibGliZ2Njaml0LmgiDQorDQorI2lu Y2x1ZGUgImhhcm5lc3MuaCINCisNCitzdHJ1Y3QgYml0X2Zvbw0KK3sNCisg IGludCBpOjM7DQorICBpbnQgeDo1Ow0KKyAgaW50IHk6NTsNCisgIGludCB6 OjEwOw0KKyAgaW50IGo6MzsNCit9Ow0KKw0KK3ZvaWQNCitjcmVhdGVfY29k ZSAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LCB2b2lkICp1c2VyX2RhdGEpDQor ew0KKyAgLyogTGV0J3MgdHJ5IHRvIGluamVjdCB0aGUgZXF1aXZhbGVudCBv ZjoNCisgICAgIHZvaWQNCisgICAgIHRlc3RfYml0ZmllbGRfYWNjZXNzIChz dHJ1Y3QgYml0X2ZvbyAqZikNCisgICAgIHsNCisgICAgICAgIGYtPnogPSBm LT54ICsgZi0+eTsNCisgICAgIH0NCisgICovDQorICBnY2Nfaml0X3R5cGUg KnZvaWRfdHlwZSA9DQorICAgIGdjY19qaXRfY29udGV4dF9nZXRfdHlwZSAo Y3R4dCwgR0NDX0pJVF9UWVBFX1ZPSUQpOw0KKyAgZ2NjX2ppdF90eXBlICpp bnRfdHlwZSA9DQorICAgIGdjY19qaXRfY29udGV4dF9nZXRfdHlwZSAoY3R4 dCwgR0NDX0pJVF9UWVBFX0lOVCk7DQorICBnY2Nfaml0X2ZpZWxkICppID0N CisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZCAoY3R4dCwNCisJ CQkJICBOVUxMLA0KKwkJCQkgIGludF90eXBlLA0KKwkJCQkgIDMsDQorCQkJ CSAgImkiKTsNCisgIGdjY19qaXRfZmllbGQgKnggPQ0KKyAgICBnY2Nfaml0 X2NvbnRleHRfbmV3X2JpdGZpZWxkIChjdHh0LA0KKwkJCQkgIE5VTEwsDQor CQkJCSAgaW50X3R5cGUsDQorCQkJCSAgNSwNCisJCQkJICAieCIpOw0KKyAg Z2NjX2ppdF9maWVsZCAqeSA9DQorICAgIGdjY19qaXRfY29udGV4dF9uZXdf Yml0ZmllbGQgKGN0eHQsDQorCQkJCSAgTlVMTCwNCisJCQkJICBpbnRfdHlw ZSwNCisJCQkJICA1LA0KKwkJCQkgICJ5Iik7DQorICBnY2Nfaml0X2ZpZWxk ICp6ID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZCAoY3R4 dCwNCisJCQkJICBOVUxMLA0KKwkJCQkgIGludF90eXBlLA0KKwkJCQkgIDEw LA0KKwkJCQkgICJ6Iik7DQorICBnY2Nfaml0X2ZpZWxkICpqID0NCisgICAg Z2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZCAoY3R4dCwNCisJCQkJICBO VUxMLA0KKwkJCQkgIGludF90eXBlLA0KKwkJCQkgIDMsDQorCQkJCSAgImoi KTsNCisgIGdjY19qaXRfZmllbGQgKmZpZWxkc1tdID0ge2ksIHgsIHksIHos IGp9Ow0KKyAgZ2NjX2ppdF9zdHJ1Y3QgKnN0cnVjdF90eXBlID0NCisgICAg Z2NjX2ppdF9jb250ZXh0X25ld19zdHJ1Y3RfdHlwZSAoY3R4dCwgTlVMTCwg ImJpdF9mb28iLCA1LCBmaWVsZHMpOw0KKyAgZ2NjX2ppdF90eXBlICpwdHJf dHlwZSA9DQorICAgIGdjY19qaXRfdHlwZV9nZXRfcG9pbnRlciAoZ2NjX2pp dF9zdHJ1Y3RfYXNfdHlwZSAoc3RydWN0X3R5cGUpKTsNCisNCisgIC8qIEJ1 aWxkIHRoZSB0ZXN0IGZ1bmN0aW9uLiAgKi8NCisgIGdjY19qaXRfcGFyYW0g KnBhcmFtX2YgPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFtIChj dHh0LCBOVUxMLCBwdHJfdHlwZSwgImYiKTsNCisgIGdjY19qaXRfZnVuY3Rp b24gKnRlc3RfZm4gPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0 aW9uIChjdHh0LCBOVUxMLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHQ0NfSklUX0ZVTkNUSU9OX0VYUE9SVEVELA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkX3R5cGUsDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X2JpdGZpZWxkX2Fj Y2VzcyIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEs ICZwYXJhbV9mLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwKTsNCisNCisgIC8qIGYtPnggKyBmLT55ICovDQorICBnY2Nfaml0X3J2 YWx1ZSAqc3VtID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaW5hcnlf b3AgKA0KKyAgICAgIGN0eHQsIE5VTEwsDQorICAgICAgR0NDX0pJVF9CSU5B UllfT1BfUExVUywNCisgICAgICBpbnRfdHlwZSwNCisgICAgICBnY2Nfaml0 X2x2YWx1ZV9hc19ydmFsdWUgKA0KKwlnY2Nfaml0X3J2YWx1ZV9kZXJlZmVy ZW5jZV9maWVsZCAoDQorCSAgZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUgKHBh cmFtX2YpLA0KKwkgIE5VTEwsDQorCSAgeCkpLA0KKyAgICAgIGdjY19qaXRf bHZhbHVlX2FzX3J2YWx1ZSAoDQorCWdjY19qaXRfcnZhbHVlX2RlcmVmZXJl bmNlX2ZpZWxkICgNCisJZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUgKHBhcmFt X2YpLA0KKwlOVUxMLA0KKwl5KSkpOw0KKw0KKyAgLyogZi0+eiA9IC4uLiAq Lw0KKyAgZ2NjX2ppdF9ibG9jayAqYmxvY2sgPSBnY2Nfaml0X2Z1bmN0aW9u X25ld19ibG9jayAodGVzdF9mbiwgTlVMTCk7DQorICBnY2Nfaml0X2Jsb2Nr X2FkZF9hc3NpZ25tZW50ICgNCisgICAgYmxvY2ssDQorICAgIE5VTEwsDQor ICAgIGdjY19qaXRfcnZhbHVlX2RlcmVmZXJlbmNlX2ZpZWxkICgNCisgICAg ICBnY2Nfaml0X3BhcmFtX2FzX3J2YWx1ZSAocGFyYW1fZiksDQorICAgICAg TlVMTCwNCisgICAgICB6KSwNCisgICAgc3VtKTsNCisgIGdjY19qaXRfYmxv Y2tfZW5kX3dpdGhfdm9pZF9yZXR1cm4gKGJsb2NrLCBOVUxMKTsNCit9DQor DQordm9pZA0KK3ZlcmlmeV9jb2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQs IGdjY19qaXRfcmVzdWx0ICpyZXN1bHQpDQorew0KKyAgdHlwZWRlZiB2b2lk ICgqZm5fdHlwZSkgKHN0cnVjdCBiaXRfZm9vICopOw0KKyAgQ0hFQ0tfTk9O X05VTEwgKHJlc3VsdCk7DQorDQorICBmbl90eXBlIHRlc3RfYml0ZmllbGRf YWNjZXNzID0NCisgICAgKGZuX3R5cGUpZ2NjX2ppdF9yZXN1bHRfZ2V0X2Nv ZGUgKHJlc3VsdCwgInRlc3RfYml0ZmllbGRfYWNjZXNzIik7DQorICBDSEVD S19OT05fTlVMTCAodGVzdF9iaXRmaWVsZF9hY2Nlc3MpOw0KKw0KKyAgc3Ry dWN0IGJpdF9mb28gdG1wOw0KKyAgdG1wLmkgPSAzOw0KKyAgdG1wLnggPSA1 Ow0KKyAgdG1wLnkgPSA3Ow0KKyAgdG1wLnogPSAwOw0KKyAgdG1wLmogPSAz Ow0KKw0KKyAgLyogQ2FsbCB0aGUgSklULWdlbmVyYXRlZCBmdW5jdGlvbi4g ICovDQorICB0ZXN0X2JpdGZpZWxkX2FjY2VzcyAoJnRtcCk7DQorDQorICAv KiBWZXJpZnkgdGhhdCB0aGUgY29kZSBjb3JyZWN0bHkgbW9kaWZpZWQgdGhl IGZpZWxkICJ6Ii4gICovDQorICBDSEVDS19WQUxVRSAodG1wLnosIDEyKTsN Cit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1l cnJvci1nY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkLWludmFsaWQtdHlw ZS5jIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1lcnJvci1nY2Nfaml0 X2NvbnRleHRfbmV3X2JpdGZpZWxkLWludmFsaWQtdHlwZS5jDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uZDJlZjVhOA0KLS0tIC9k ZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1lcnJv ci1nY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkLWludmFsaWQtdHlwZS5j DQpAQCAtMCwwICsxLDUzIEBADQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNp bmNsdWRlIDxzdGRpby5oPg0KKw0KKyNpbmNsdWRlICJsaWJnY2NqaXQuaCIN CisNCisjaW5jbHVkZSAiaGFybmVzcy5oIg0KKw0KKy8qIFRyeSB0byBkZWNs YXJlIGEgYml0LWZpZWxkIHdpdGggaW52YWxpZCB0eXBlLiAgKi8NCisNCit2 b2lkDQorY3JlYXRlX2NvZGUgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgdm9p ZCAqdXNlcl9kYXRhKQ0KK3sNCisgIGdjY19qaXRfdHlwZSAqYm9vbF90eXBl ID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0LCBHQ0Nf SklUX1RZUEVfQk9PTCk7DQorICBnY2Nfaml0X3R5cGUgKmludF90eXBlID0N CisgICAgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0LCBHQ0NfSklU X1RZUEVfSU5UKTsNCisgIGdjY19qaXRfdHlwZSAqbG9uZ190eXBlID0NCisg ICAgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0LCBHQ0NfSklUX1RZ UEVfTE9ORyk7DQorICBnY2Nfaml0X3R5cGUgKmZsb2F0X3R5cGUgPQ0KKyAg ICBnY2Nfaml0X2NvbnRleHRfZ2V0X3R5cGUgKGN0eHQsIEdDQ19KSVRfVFlQ RV9GTE9BVCk7DQorDQorICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxk IChjdHh0LA0KKwkJCQlOVUxMLA0KKwkJCQlib29sX3R5cGUsDQorCQkJCTMs DQorCQkJCSJiIik7DQorICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxk IChjdHh0LA0KKwkJCQkgIE5VTEwsDQorCQkJCSAgaW50X3R5cGUsDQorCQkJ CSAgMywNCisJCQkJICAiaSIpOw0KKyAgZ2NjX2ppdF9jb250ZXh0X25ld19i aXRmaWVsZCAoY3R4dCwNCisJCQkJTlVMTCwNCisJCQkJbG9uZ190eXBlLA0K KwkJCQkzLA0KKwkJCQkibCIpOw0KKyAgZ2NjX2ppdF9jb250ZXh0X25ld19i aXRmaWVsZCAoY3R4dCwNCisJCQkJTlVMTCwNCisJCQkJZmxvYXRfdHlwZSwN CisJCQkJNSwNCisJCQkJImYiKTsNCit9DQorDQordm9pZA0KK3ZlcmlmeV9j b2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfcmVzdWx0ICpy ZXN1bHQpDQorew0KKyAgQ0hFQ0tfVkFMVUUgKHJlc3VsdCwgTlVMTCk7DQor DQorICAvKiBWZXJpZnkgdGhhdCB0aGUgY29ycmVjdCBlcnJvciBtZXNzYWdl IHdhcyBlbWl0dGVkLgkgKi8NCisgIENIRUNLX1NUUklOR19WQUxVRSAoZ2Nj X2ppdF9jb250ZXh0X2dldF9maXJzdF9lcnJvciAoY3R4dCksDQorCQkgICAg ICAiZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZDogYml0LWZpZWxkIGYg aGFzIG5vbiAiDQorCQkgICAgICAiaW50ZWdyYWwgdHlwZSBmbG9hdCIpOw0K K30NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LWVy cm9yLWdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQtaW52YWxpZC13aWR0 aC5jIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1lcnJvci1nY2Nfaml0 X2NvbnRleHRfbmV3X2JpdGZpZWxkLWludmFsaWQtd2lkdGguYw0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjY3ZGIxMjANCi0tLSAv ZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtZXJy b3ItZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZC1pbnZhbGlkLXdpZHRo LmMNCkBAIC0wLDAgKzEsNDQgQEANCisjaW5jbHVkZSA8c3RkbGliLmg+DQor I2luY2x1ZGUgPHN0ZGlvLmg+DQorDQorI2luY2x1ZGUgImxpYmdjY2ppdC5o Ig0KKw0KKyNpbmNsdWRlICJoYXJuZXNzLmgiDQorDQorLyogVHJ5IHRvIGRl Y2xhcmUgYSBiaXQtZmllbGQgd2l0aCBpbnZhbGlkIHdpZHRoLiAgKi8NCisN Cit2b2lkDQorY3JlYXRlX2NvZGUgKGdjY19qaXRfY29udGV4dCAqY3R4dCwg dm9pZCAqdXNlcl9kYXRhKQ0KK3sNCisgIGdjY19qaXRfdHlwZSAqc2hvcnRf dHlwZSA9DQorICAgIGdjY19qaXRfY29udGV4dF9nZXRfdHlwZSAoY3R4dCwg R0NDX0pJVF9UWVBFX1NIT1JUKTsNCisgIGdjY19qaXRfZmllbGQgKmkgPQ0K KyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChjdHh0LA0KKwkJ CQkgIE5VTEwsDQorCQkJCSAgc2hvcnRfdHlwZSwNCisJCQkJICAzLA0KKwkJ CQkgICJpIik7DQorICBnY2Nfaml0X2ZpZWxkICpqID0NCisgICAgZ2NjX2pp dF9jb250ZXh0X25ld19iaXRmaWVsZCAoY3R4dCwNCisJCQkJICBOVUxMLA0K KwkJCQkgIHNob3J0X3R5cGUsDQorCQkJCSAgMTU3LA0KKwkJCQkgICJqIik7 DQorICBnY2Nfaml0X2ZpZWxkICpmaWVsZHNbXSA9IHtpLCBqfTsNCisgIGdj Y19qaXRfY29udGV4dF9uZXdfc3RydWN0X3R5cGUgKGN0eHQsIE5VTEwsICJi aXRfZm9vIiwgMiwgZmllbGRzKTsNCit9DQorDQordm9pZA0KK3ZlcmlmeV9j b2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfcmVzdWx0ICpy ZXN1bHQpDQorew0KKyAgQ0hFQ0tfVkFMVUUgKHJlc3VsdCwgTlVMTCk7DQor ICBjaGFyIGVycm9yX3N0clsyNTZdOw0KKyAgc25wcmludGYgKGVycm9yX3N0 ciwgc2l6ZW9mIChlcnJvcl9zdHIpLA0KKwkgICAgIndpZHRoIG9mIGJpdC1m aWVsZCBqICh3aWR0aDogMTU3KSBpcyB3aWRlciB0aGFuIGl0cyB0eXBlICIN CisJICAgICIod2lkdGg6ICV6dSkiLCA4ICogc2l6ZW9mIChzaG9ydCkpOw0K Kw0KKyAgLyogVmVyaWZ5IHRoYXQgdGhlIGNvcnJlY3QgZXJyb3IgbWVzc2Fn ZSB3YXMgZW1pdHRlZC4gICovDQorDQorICBDSEVDS19TVFJJTkdfVkFMVUUg KGdjY19qaXRfY29udGV4dF9nZXRfZmlyc3RfZXJyb3IgKGN0eHQpLA0KKwkJ ICAgICAgZXJyb3Jfc3RyKTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9qaXQuZGcvdGVzdC1lcnJvci1nY2Nfaml0X2x2YWx1ZV9nZXRfYWRk cmVzcy1iaXRmaWVsZC5jIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1l cnJvci1nY2Nfaml0X2x2YWx1ZV9nZXRfYWRkcmVzcy1iaXRmaWVsZC5jDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uZjEwMmE2YQ0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVz dC1lcnJvci1nY2Nfaml0X2x2YWx1ZV9nZXRfYWRkcmVzcy1iaXRmaWVsZC5j DQpAQCAtMCwwICsxLDY2IEBADQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNp bmNsdWRlIDxzdGRpby5oPg0KKw0KKyNpbmNsdWRlICJsaWJnY2NqaXQuaCIN CisNCisjaW5jbHVkZSAiaGFybmVzcy5oIg0KKw0KKy8qIFRyeSB0byBkZXJl ZmVyZW5jZSBhIGJpdC1maWVsZC4gICovDQorDQordm9pZA0KK2NyZWF0ZV9j b2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIHZvaWQgKnVzZXJfZGF0YSkN Cit7DQorICAvKiBMZXQncyB0cnkgdG8gaW5qZWN0IHRoZSBlcXVpdmFsZW50 IG9mOg0KKw0KKyAgICAgc3RydWN0IGJpdF9mb28NCisgICAgIHsNCisgICAg ICAgaW50IGk6MzsNCisgICAgICAgaW50IGo6MzsNCisgICAgIH07DQorDQor ICAgICBzdHJ1Y3QgYml0X2ZvbyBmOw0KKyAgICAgJihmLmopDQorICAqLw0K KyAgZ2NjX2ppdF90eXBlICppbnRfdHlwZSA9DQorICAgIGdjY19qaXRfY29u dGV4dF9nZXRfdHlwZSAoY3R4dCwgR0NDX0pJVF9UWVBFX0lOVCk7DQorICBn Y2Nfaml0X2ZpZWxkICppID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19i aXRmaWVsZCAoY3R4dCwNCisJCQkJICBOVUxMLA0KKwkJCQkgIGludF90eXBl LA0KKwkJCQkgIDMsDQorCQkJCSAgImkiKTsNCisgIGdjY19qaXRfZmllbGQg KmogPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChjdHh0 LA0KKwkJCQkgIE5VTEwsDQorCQkJCSAgaW50X3R5cGUsDQorCQkJCSAgMywN CisJCQkJICAiaiIpOw0KKyAgZ2NjX2ppdF9maWVsZCAqZmllbGRzW10gPSB7 aSwgan07DQorICBnY2Nfaml0X3R5cGUgKnN0cnVjdF90eXBlID0NCisgICAg Z2NjX2ppdF9zdHJ1Y3RfYXNfdHlwZSAoDQorICAgICAgZ2NjX2ppdF9jb250 ZXh0X25ld19zdHJ1Y3RfdHlwZSAoY3R4dCwgTlVMTCwgImJpdF9mb28iLCAy LCBmaWVsZHMpKTsNCisNCisgIGdjY19qaXRfbHZhbHVlICpmX3N0cnVjdCA9 DQorICAgIGdjY19qaXRfY29udGV4dF9uZXdfZ2xvYmFsIChjdHh0LA0KKwkJ CQlOVUxMLA0KKwkJCQlHQ0NfSklUX0dMT0JBTF9JTlRFUk5BTCwNCisJCQkJ c3RydWN0X3R5cGUsDQorCQkJCSJmIik7DQorDQorICBnY2Nfaml0X2x2YWx1 ZV9nZXRfYWRkcmVzcyAoDQorICAgIGdjY19qaXRfbHZhbHVlX2FjY2Vzc19m aWVsZCAoDQorICAgICAgZl9zdHJ1Y3QsDQorICAgICAgTlVMTCwNCisgICAg ICBqKSwNCisgICAgTlVMTCk7DQorfQ0KKw0KK3ZvaWQNCit2ZXJpZnlfY29k ZSAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nfaml0X3Jlc3VsdCAqcmVz dWx0KQ0KK3sNCisgIENIRUNLX1ZBTFVFIChyZXN1bHQsIE5VTEwpOw0KKw0K KyAgLyogVmVyaWZ5IHRoYXQgdGhlIGNvcnJlY3QgZXJyb3IgbWVzc2FnZSB3 YXMgZW1pdHRlZC4gICovDQorICBDSEVDS19TVFJJTkdfVkFMVUUgKGdjY19q aXRfY29udGV4dF9nZXRfZmlyc3RfZXJyb3IgKGN0eHQpLA0KKwkJICAgICAg ImNhbm5vdCB0YWtlIGFkZHJlc3Mgb2YgYml0LWZpZWxkIik7DQorfQ0K --_002_gkr8stn9lhkfsfarmcom_--