From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 94084 invoked by alias); 3 Jun 2019 09:51:58 -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 93717 invoked by uid 89); 3 Jun 2019 09:51:58 -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=-23.5 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=compound, WIDTH, cfamily, c-family X-Spam-Status: No, score=-23.5 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: EUR02-AM5-obe.outbound.protection.outlook.com Received: from mail-eopbgr00081.outbound.protection.outlook.com (HELO EUR02-AM5-obe.outbound.protection.outlook.com) (40.107.0.81) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 03 Jun 2019 09:51:53 +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=HX8yizc0VvCEh4GmQe5YJ222sJKynpSFafYd4cWPEaY=; b=TMeSlTw8GnRTzDDxPH2NY9SWKP0PjLeGiTvqM6sf8uBIziMQaKMykxMvbAL+DneWraZ1uXoYMPhdsofgF/YUIClZduIsVOe/Vehy7l+yCOksSvtoCv30q3w+YZ35W6ZRPwX78RsnkGpnOgnZXG24KnYlB95K0OPrrD/ZDjDevCg= Received: from AM5PR0801MB1986.eurprd08.prod.outlook.com (10.168.157.145) by AM5PR0801MB1619.eurprd08.prod.outlook.com (10.169.247.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1943.22; Mon, 3 Jun 2019 09:51:49 +0000 Received: from AM5PR0801MB1986.eurprd08.prod.outlook.com ([fe80::5485:1401:62b0:ee04]) by AM5PR0801MB1986.eurprd08.prod.outlook.com ([fe80::5485:1401:62b0:ee04%2]) with mapi id 15.20.1943.018; Mon, 3 Jun 2019 09:51:49 +0000 From: Andrea Corallo To: "gcc-patches@gcc.gnu.org" , "jit@gcc.gnu.org" CC: nd Subject: [PATCH][gcc] libgccjit: add bitfield support Thread-Topic: [PATCH][gcc] libgccjit: add bitfield support Thread-Index: AQHVGfH2i3Pw/ZC3+E2HQL7V8/ROgw== Date: Tue, 01 Jan 2019 00:00:00 -0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-clientproxiedby: LO2P265CA0100.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:c::16) To AM5PR0801MB1986.eurprd08.prod.outlook.com (2603:10a6:203:4a::17) 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: e69d74dc-25fa-4f5b-fe79-08d6e80918c4 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:AM5PR0801MB1619; x-ms-traffictypediagnostic: AM5PR0801MB1619: nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5797; x-forefront-prvs: 0057EE387C x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(346002)(396003)(136003)(376002)(39860400002)(366004)(53754006)(199004)(189003)(26005)(186003)(3846002)(6116002)(71190400001)(71200400001)(5660300002)(2906002)(476003)(2616005)(486006)(44832011)(6436002)(99936001)(256004)(6486002)(68736007)(66616009)(66476007)(66556008)(64756008)(66446008)(66946007)(73956011)(110136005)(53936002)(316002)(8676002)(72206003)(450100002)(4326008)(7736002)(14454004)(305945005)(25786009)(2501003)(478600001)(86362001)(6512007)(8936002)(36756003)(66066001)(102836004)(81156014)(81166006)(99286004)(6506007)(386003)(52116002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM5PR0801MB1619;H:AM5PR0801MB1986.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: Io02WY1x90/vQ49lBt+K1Ph96tunzvTxkyFPFLGV324e8VfbMk1T1SSEccf4gV6qgNoimGC60y9PDFd88eDAfP4lKlyrNzbKIw+mhr37Crr8o1xvC3mdNpJyGOUKj9HXX3sfjfUJwJrnXs9C7RMd9yJW4TnHCArkPz6w1KzZqBTgsdJ/Il7ih8bFckexdhAEOd1o04I0/dvZH0Z06oW/C3cTmD1w3z0BBJ0WbBl6jvSDroZgWE2I9s7ejQ1KBJLZS12kw2nJ3F/0xfeloQjpUKABUBXYVS5r/FUDcKiHKewyqqWFVSisjALcnF4aPfrLV/r1OdWWF3OqfCjNfYATR97ufPOq5bWbrr4M/QfstEyM4CQHNq6Dc5DFuCw2Y2ypaXJw43eNJsgtLmIYOaOIRxFT+U0QL3vQYzC24QjQbi4= Content-Type: multipart/mixed; boundary="_002_gkrd0jvvvx2fsfarmcom_" MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: e69d74dc-25fa-4f5b-fe79-08d6e80918c4 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jun 2019 09:51:49.0529 (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: AM5PR0801MB1619 X-SW-Source: 2019-q2/txt/msg00000.txt.bz2 --_002_gkrd0jvvvx2fsfarmcom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-length: 2636 SGkgYWxsLA0KSSB3b3VsZCBsaWtlIHRvIHN1Ym1pdCB0aGlzIHBhdGNoIHRo YXQgYWltcyB0byBpbnRyb2R1Y2UgYml0ZmllbGRzIHN1cHBvcnQgaW50byBs aWJnY2NqaXQuDQoNCkEgbmV3IGVudHJ5IHBvaW50IGdjY19qaXRfY29udGV4 dF9uZXdfYml0ZmllbGQgaXMgYWRkZWQgcGx1cyByZWxhdGl2ZSB0ZXN0Y2Fz ZS4NCg0KQ2hlY2tlZCB3aXRoIG1ha2UgY2hlY2staml0IGRvZXMgbm90IGlu dHJvZHVjZSByZWdyZXNzaW9ucy4NCg0KRmVlZGJhY2tzIGFyZSB2ZXJ5IHdl bGNvbWUuDQoNCkJlc3RzDQoNCkFuZHJlYQ0KDQoyMDE5LTA2LTAxICBBbmRy ZWEgQ29yYWxsbyBhbmRyZWEuY29yYWxsb0Bhcm0uY29tDQoNCiogZG9jcy90 b3BpY3MvY29tcGF0aWJpbGl0eS5yc3QgKExJQkdDQ0pJVF9BQklfMTIpOiBO ZXcgQUJJIHRhZy4NCiogZG9jcy90b3BpY3MvdHlwZXMucnN0OiBBZGQgZ2Nj X2ppdF9jb250ZXh0X25ld19iaXRmaWVsZC4NCiogaml0LWNvbW1vbi5oIChu YW1lc3BhY2UgcmVjb3JkaW5nKTogQWRkIGNsYXNzIGJpdGZpZWxkLg0KKiBq aXQtcGxheWJhY2suYzogSW5jbHVkZSAiYy1mYW1pbHkvYy1jb21tb24uaCIN CihwbGF5YmFjazo6Y29udGV4dDo6bmV3X2JpdGZpZWxkKTogTmV3IG1ldGhv ZC4NCihwbGF5YmFjazo6Y29tcG91bmRfdHlwZTo6c2V0X2ZpZWxkcyk6IEFk ZCBiaXRmaWVsZCBzdXBwb3J0Lg0KKHBsYXliYWNrOjpsdmFsdWU6OmppdF9t YXJrX2FkZHJlc3NhYmxlKTogTWFrZSB0aGlzIGEgbWV0aG9kIG9mIGx2YWx1 ZQ0KcGx1cyByZXR1cm4gYSBib29sIHRvIGNvbW11bmljYXRlIHN1Y2Nlc3Mu DQoocGxheWJhY2s6Omx2YWx1ZTo6Z2V0X2FkZHJlc3MpOiBDaGVjayBmb3Ig aml0X21hcmtfYWRkcmVzc2FibGUgcmV0dXJuDQp2YWx1ZS4NCiogaml0LXBs YXliYWNrLmggKG5ld19iaXRmaWVsZCk6IE5ldyBtZXRob2QuDQooY2xhc3Mg Yml0ZmllbGQpOiBOZXcgY2xhc3MuDQooY2xhc3MgbHZhbHVlKTogQWRkIGpp dF9tYXJrX2FkZHJlc3NhYmxlIG1ldGhvZC4NCiogaml0LXJlY29yZGluZy5j IChyZWNvcmRpbmc6OmNvbnRleHQ6Om5ld19iaXRmaWVsZCk6IE5ldyBtZXRo b2QuDQoocmVjb3JkaW5nOjpiaXRmaWVsZDo6cmVwbGF5X2ludG8pOiBOZXcg bWV0aG9kLg0KKHJlY29yZGluZzo6Yml0ZmllbGQ6OndyaXRlX3RvX2R1bXAp OiBMaWtld2lzZS4NCihyZWNvcmRpbmc6OmJpdGZpZWxkOjptYWtlX2RlYnVn X3N0cmluZyk6IExpa2V3aXNlLg0KKHJlY29yZGluZzo6Yml0ZmllbGQ6Ondy aXRlX3JlcHJvZHVjZXIpOiBMaWtld2lzZS4NCiogaml0LXJlY29yZGluZy5o IChjbGFzcyBjb250ZXh0KTogQWRkIG5ld19iaXRmaWVsZCBtZXRob2QuDQoo Y2xhc3MgZmllbGQpOiBNYWtlIGl0IGRlcml2YWJsZSBieSBjbGFzcyBiaXRm aWVsZC4NCihjbGFzcyBiaXRmaWVsZCk6IEFkZCBuZXcgY2xhc3MuDQoqIGxp YmdjY2ppdCsrLmggKGNsYXNzIGNvbnRleHQpOiBBZGQgbmV3X2JpdGZpZWxk IG1ldGhvZC4NCiogbGliZ2Njaml0LmMgKHN0cnVjdCBnY2Nfaml0X2JpdGZp ZWxkKTogTmV3IHN0cnVjdHVyZS4NCihnY2Nfaml0X2NvbnRleHRfbmV3X2Jp dGZpZWxkKTogTmV3IGZ1bmN0aW9uLg0KKiBsaWJnY2NqaXQuaA0KKExJQkdD Q0pJVF9IQVZFX2djY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQpIE5ldyBt YWNyby4NCihnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkKTogTmV3IGZ1 bmN0aW9uLg0KKiBsaWJnY2NqaXQubWFwIChMSUJHQ0NKSVRfQUJJXzEyKSBO ZXcgQUJJIHRhZy4NCg0KDQoyMDE5LTA2LTAxICBBbmRyZWEgQ29yYWxsbyBh bmRyZWEuY29yYWxsb0Bhcm0uY29tDQoNCiogaml0LmRnL2FsbC1ub24tZmFp bGluZy10ZXN0cy5oOiBBZGQgdGVzdC1hY2Nlc3NpbmctYml0ZmllbGQuYy4N Ciogaml0LmRnL3Rlc3QtYWNjZXNzaW5nLWJpdGZpZWxkLmM6IE5ldyB0ZXN0 Y2FzZS4NCg== --_002_gkrd0jvvvx2fsfarmcom_ 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=20659; creation-date="Mon, 03 Jun 2019 09:51:48 GMT"; modification-date="Mon, 03 Jun 2019 09:51:48 GMT" Content-ID: <9013CA1AA22B1449B2DE10E54B9BA806@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 Content-length: 28008 ZGlmZiAtLWdpdCBhL2djYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0 eS5yc3QgYi9nY2Mvaml0L2RvY3MvdG9waWNzL2NvbXBhdGliaWxpdHkucnN0 DQppbmRleCBhYmVmYTU2Li5kYTY0OTIwIDEwMDY0NA0KLS0tIGEvZ2NjL2pp dC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdA0KKysrIGIvZ2NjL2pp dC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdA0KQEAgLTE3NywzICsx NzcsOCBAQCBlbnRyeXBvaW50czoNCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQ0K IGBgTElCR0NDSklUX0FCSV8xMWBgIGNvdmVycyB0aGUgYWRkaXRpb24gb2YN CiA6ZnVuYzpgZ2NjX2ppdF9jb250ZXh0X2FkZF9kcml2ZXJfb3B0aW9uYA0K Kw0KK2BgTElCR0NDSklUX0FCSV8xMmBgDQorLS0tLS0tLS0tLS0tLS0tLS0t LS0NCitgYExJQkdDQ0pJVF9BQklfMTJgYCBjb3ZlcnMgdGhlIGFkZGl0aW9u IG9mDQorOmZ1bmM6YGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGRgDQpk aWZmIC0tZ2l0IGEvZ2NjL2ppdC9kb2NzL3RvcGljcy90eXBlcy5yc3QgYi9n Y2Mvaml0L2RvY3MvdG9waWNzL3R5cGVzLnJzdA0KaW5kZXggMWQyZGNkNC4u MDk0ZjlmZCAxMDA2NDQNCi0tLSBhL2djYy9qaXQvZG9jcy90b3BpY3MvdHlw ZXMucnN0DQorKysgYi9nY2Mvaml0L2RvY3MvdG9waWNzL3R5cGVzLnJzdA0K QEAgLTI0Nyw2ICsyNDcsMzAgQEAgWW91IGNhbiBtb2RlbCBDIGBzdHJ1Y3Rg IHR5cGVzIGJ5IGNyZWF0aW5nIDpjOnR5cGU6YGdjY19qaXRfc3RydWN0ICpg IGFuZA0KICAgIHVuZGVybHlpbmcgc3RyaW5nLCBzbyBpdCBpcyB2YWxpZCB0 byBwYXNzIGluIGEgcG9pbnRlciB0byBhbiBvbi1zdGFjaw0KICAgIGJ1ZmZl ci4NCiANCisuLiBmdW5jdGlvbjo6IGdjY19qaXRfZmllbGQgKlwNCisgICAg ICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQgKGdjY19q aXRfY29udGV4dCAqY3R4dCxcDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2xvY2F0aW9uICpsb2MsXA0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2NjX2ppdF90eXBlICp0eXBlLFwNCisJCQkJCSAgICBpbnQgd2lkdGgsXA0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSkNCisNCisgICBDb25zdHJ1Y3QgYSBuZXcgYml0 IGZpZWxkLCB3aXRoIHRoZSBnaXZlbiB0eXBlIHdpZHRoIGFuZCBuYW1lLg0K Kw0KKyAgIFRoZSBwYXJhbWV0ZXIgYGBuYW1lYGAgbXVzdCBiZSBub24tTlVM TC4gIFRoZSBjYWxsIHRha2VzIGEgY29weSBvZiB0aGUNCisgICB1bmRlcmx5 aW5nIHN0cmluZywgc28gaXQgaXMgdmFsaWQgdG8gcGFzcyBpbiBhIHBvaW50 ZXIgdG8gYW4gb24tc3RhY2sNCisgICBidWZmZXIuDQorDQorICAgVGhlIHBh cmFtZXRlciBgYHR5cGVgYCBtdXN0IGJlIGFuIGludGVnZXIgdHlwZS4NCisN CisgICBUaGUgcGFyYW1ldGVyIGBgd2lkdGhgYCBtdXN0IGJlIGEgcG9zaXRp dmUgaW50ZWdlciB0aGF0IGRvZXMgbm90IGV4Y2VlZCB0aGUNCisgICBzaXpl IG9mIGBgdHlwZWBgLg0KKw0KKyAgIFRoaXMgQVBJIGVudHJ5cG9pbnQgd2Fz IGFkZGVkIGluIDpyZWY6YExJQkdDQ0pJVF9BQklfMTJgOyB5b3UgY2FuIHRl c3QNCisgICBmb3IgaXRzIHByZXNlbmNlIHVzaW5nDQorICAgLi4gY29kZS1i bG9jazo6IGMNCisNCisgICAgICAjaWZkZWYgTElCR0NDSklUX0hBVkVfZ2Nj X2ppdF9jb250ZXh0X25ld19iaXRmaWVsZA0KKw0KIC4uIGZ1bmN0aW9uOjog Z2NjX2ppdF9vYmplY3QgKlwNCiAgICAgICAgICAgICAgIGdjY19qaXRfZmll bGRfYXNfb2JqZWN0IChnY2Nfaml0X2ZpZWxkICpmaWVsZCkNCiANCmRpZmYg LS1naXQgYS9nY2Mvaml0L2ppdC1jb21tb24uaCBiL2djYy9qaXQvaml0LWNv bW1vbi5oDQppbmRleCAxZDk2Y2MzLi5lNzQ3ZDk2IDEwMDY0NA0KLS0tIGEv Z2NjL2ppdC9qaXQtY29tbW9uLmgNCisrKyBiL2djYy9qaXQvaml0LWNvbW1v bi5oDQpAQCAtMTE5LDYgKzExOSw3IEBAIG5hbWVzcGFjZSByZWNvcmRpbmcg ew0KIAljbGFzcyB1bmlvbl87DQogICAgICAgY2xhc3MgdmVjdG9yX3R5cGU7 DQogICAgIGNsYXNzIGZpZWxkOw0KKyAgICAgIGNsYXNzIGJpdGZpZWxkOw0K ICAgICBjbGFzcyBmaWVsZHM7DQogICAgIGNsYXNzIGZ1bmN0aW9uOw0KICAg ICBjbGFzcyBibG9jazsNCmRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1wbGF5 YmFjay5jIGIvZ2NjL2ppdC9qaXQtcGxheWJhY2suYw0KaW5kZXggYjc0NDk1 Yy4uNzY3NmU1NSAxMDA2NDQNCi0tLSBhL2djYy9qaXQvaml0LXBsYXliYWNr LmMNCisrKyBiL2djYy9qaXQvaml0LXBsYXliYWNrLmMNCkBAIC0zMSw2ICsz MSw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMu ICBJZiBub3Qgc2VlDQogI2luY2x1ZGUgImNvbnZlcnQuaCINCiAjaW5jbHVk ZSAic3Rvci1sYXlvdXQuaCINCiAjaW5jbHVkZSAicHJpbnQtdHJlZS5oIg0K KyNpbmNsdWRlICJjLWZhbWlseS9jLWNvbW1vbi5oIg0KICNpbmNsdWRlICJn aW1wbGlmeS5oIg0KICNpbmNsdWRlICJnY2MtZHJpdmVyLW5hbWUuaCINCiAj aW5jbHVkZSAiYXR0cmlicy5oIg0KQEAgLTI2Myw2ICsyNjQsNDggQEAgbmV3 X2ZpZWxkIChsb2NhdGlvbiAqbG9jLA0KICAgcmV0dXJuIG5ldyBmaWVsZCAo ZGVjbCk7DQogfQ0KIA0KKy8qIENvbnN0cnVjdCBhIHBsYXliYWNrOjpiaXRm aWVsZCBpbnN0YW5jZSAod3JhcHBpbmcgYSB0cmVlKS4gICovDQorDQorcGxh eWJhY2s6OmZpZWxkICoNCitwbGF5YmFjazo6Y29udGV4dDo6DQorbmV3X2Jp dGZpZWxkIChsb2NhdGlvbiAqbG9jLA0KKwkgICAgICB0eXBlICp0eXBlLA0K KwkgICAgICBpbnQgd2lkdGgsDQorCSAgICAgIGNvbnN0IGNoYXIgKm5hbWUp DQorew0KKyAgZ2NjX2Fzc2VydCAodHlwZSk7DQorICBnY2NfYXNzZXJ0IChu YW1lKTsNCisgIGdjY19hc3NlcnQgKHdpZHRoKTsNCisNCisgIC8qIGNvbXBh cmUgd2l0aCBjL2MtZGVjbC5jOmdyb2tmaWVsZCwgIGdyb2tkZWNsYXJhdG9y IGFuZA0KKyAgICAgY2hlY2tfYml0ZmllbGRfdHlwZV9hbmRfd2lkdGguICAq Lw0KKw0KKyAgdHJlZSB0cmVlX3R5cGUgPSB0eXBlLT5hc190cmVlICgpOw0K KyAgaWYgKFRSRUVfQ09ERSAodHJlZV90eXBlKSAhPSBJTlRFR0VSX1RZUEUN CisgICAgICAmJiBUUkVFX0NPREUgKHRyZWVfdHlwZSkgIT0gQk9PTEVBTl9U WVBFKQ0KKyAgICB7DQorICAgICAgYWRkX2Vycm9yIChsb2MsICJiaXQtZmll bGQgJXMgaGFzIGludmFsaWQgdHlwZSIsIG5hbWUpOw0KKyAgICAgIHJldHVy biBOVUxMOw0KKyAgICB9DQorICB0cmVlIHRyZWVfd2lkdGggPSBidWlsZF9p bnRfY3N0IChpbnRlZ2VyX3R5cGVfbm9kZSwgd2lkdGgpOw0KKyAgaWYgKGNv bXBhcmVfdHJlZV9pbnQgKHRyZWVfd2lkdGgsIFRZUEVfUFJFQ0lTSU9OICh0 cmVlX3R5cGUpKSA+IDApDQorICAgIHsNCisgICAgICBhZGRfZXJyb3IgKGxv YywgImJpdC1maWVsZCAlcyBleGNlZWRzIGl0cyB0eXBlIiwgbmFtZSk7DQor ICAgICAgcmV0dXJuIE5VTEw7DQorICAgIH0NCisNCisgIHRyZWUgZGVjbCA9 IGJ1aWxkX2RlY2wgKFVOS05PV05fTE9DQVRJT04sIEZJRUxEX0RFQ0wsDQor CQkJICBnZXRfaWRlbnRpZmllciAobmFtZSksIHR5cGUtPmFzX3RyZWUgKCkp Ow0KKyAgREVDTF9OT05BRERSRVNTQUJMRV9QIChkZWNsKSA9IHRydWU7DQor ICBERUNMX0lOSVRJQUwgKGRlY2wpID0gdHJlZV93aWR0aDsNCisgIFNFVF9E RUNMX0NfQklUX0ZJRUxEIChkZWNsKTsNCisNCisgIGlmIChsb2MpDQorICAg IHNldF90cmVlX2xvY2F0aW9uIChkZWNsLCBsb2MpOw0KKw0KKyAgcmV0dXJu IG5ldyBmaWVsZCAoZGVjbCk7DQorfQ0KKw0KIC8qIENvbnN0cnVjdCBhIHBs YXliYWNrOjpjb21wb3VuZF90eXBlIGluc3RhbmNlICh3cmFwcGluZyBhIHRy ZWUpLiAgKi8NCiANCiBwbGF5YmFjazo6Y29tcG91bmRfdHlwZSAqDQpAQCAt Mjk1LDggKzMzOCwxNSBAQCBwbGF5YmFjazo6Y29tcG91bmRfdHlwZTo6c2V0 X2ZpZWxkcyAoY29uc3QgYXV0b192ZWM8cGxheWJhY2s6OmZpZWxkICo+ICpm aWVsZHMpDQogICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmllbGRzLT5s ZW5ndGggKCk7IGkrKykNCiAgICAgew0KICAgICAgIGZpZWxkICpmID0gKCpm aWVsZHMpW2ldOw0KLSAgICAgIERFQ0xfQ09OVEVYVCAoZi0+YXNfdHJlZSAo KSkgPSB0Ow0KLSAgICAgIGZpZWxkbGlzdCA9IGNoYWlub24gKGYtPmFzX3Ry ZWUgKCksIGZpZWxkbGlzdCk7DQorICAgICAgdHJlZSB4ID0gZi0+YXNfdHJl ZSAoKTsNCisgICAgICBERUNMX0NPTlRFWFQgKHgpID0gdDsNCisgICAgICBp ZiAoREVDTF9DX0JJVF9GSUVMRCAoeCkpDQorCXsNCisJICB1bnNpZ25lZCBI T1NUX1dJREVfSU5UIHdpZHRoID0gdHJlZV90b191aHdpIChERUNMX0lOSVRJ QUwgKHgpKTsNCisJICBERUNMX1NJWkUgKHgpID0gYml0c2l6ZV9pbnQgKHdp ZHRoKTsNCisJICBERUNMX0JJVF9GSUVMRCAoeCkgPSAxOw0KKwl9DQorICAg ICAgZmllbGRsaXN0ID0gY2hhaW5vbiAoeCwgZmllbGRsaXN0KTsNCiAgICAg fQ0KICAgZmllbGRsaXN0ID0gbnJldmVyc2UgKGZpZWxkbGlzdCk7DQogICBU WVBFX0ZJRUxEUyAodCkgPSBmaWVsZGxpc3Q7DQpAQCAtMTE5NywyMCArMTI0 NywzMCBAQCBkZXJlZmVyZW5jZSAobG9jYXRpb24gKmxvYykNCiAgIHJldHVy biBuZXcgbHZhbHVlIChnZXRfY29udGV4dCAoKSwgZGF0dW0pOw0KIH0NCiAN Ci0vKiBNYXJrIEVYUCBzYXlpbmcgdGhhdCB3ZSBuZWVkIHRvIGJlIGFibGUg dG8gdGFrZSB0aGUNCisvKiBNYXJrIHRoZSBsdmFsdWUgc2F5aW5nIHRoYXQg d2UgbmVlZCB0byBiZSBhYmxlIHRvIHRha2UgdGhlDQogICAgYWRkcmVzcyBv ZiBpdDsgaXQgc2hvdWxkIG5vdCBiZSBhbGxvY2F0ZWQgaW4gYSByZWdpc3Rl ci4NCi0gICBDb21wYXJlIHdpdGggZS5nLiBjL2MtdHlwZWNrLmM6IGNfbWFy a19hZGRyZXNzYWJsZS4gICovDQorICAgQ29tcGFyZSB3aXRoIGUuZy4gYy9j LXR5cGVjay5jOiBjX21hcmtfYWRkcmVzc2FibGUgcmVhbGx5X2F0b21pY19s dmFsdWUuDQorICAgUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwuICAqLw0K IA0KLXN0YXRpYyB2b2lkDQotaml0X21hcmtfYWRkcmVzc2FibGUgKHRyZWUg ZXhwKQ0KK2Jvb2wNCitwbGF5YmFjazo6bHZhbHVlOjoNCitqaXRfbWFya19h ZGRyZXNzYWJsZSAobG9jYXRpb24gKmxvYykNCiB7DQotICB0cmVlIHggPSBl eHA7DQorICB0cmVlIHggPSBhc190cmVlICgpOzsNCiANCiAgIHdoaWxlICgx KQ0KICAgICBzd2l0Y2ggKFRSRUVfQ09ERSAoeCkpDQogICAgICAgew0KICAg ICAgIGNhc2UgQ09NUE9ORU5UX1JFRjoNCi0JLyogKHdlIGRvbid0IHlldCBz dXBwb3J0IGJpdGZpZWxkcykgICovDQorCWlmIChERUNMX0NfQklUX0ZJRUxE IChUUkVFX09QRVJBTkQgKHgsIDEpKSkNCisJICB7DQorCSAgICBnY2NfYXNz ZXJ0IChnY2M6OmppdDo6YWN0aXZlX3BsYXliYWNrX2N0eHQpOw0KKwkgICAg Z2NjOjpqaXQ6Og0KKwkgICAgICBhY3RpdmVfcGxheWJhY2tfY3R4dC0+YWRk X2Vycm9yIChsb2MsDQorCQkJCQkgICAgICAgImNhbm5vdCB0YWtlIGFkZHJl c3Mgb2YgIg0KKwkJCQkJICAgICAgICJiaXQtZmllbGQiKTsNCisJICAgIHJl dHVybiBmYWxzZTsNCisJICB9DQogCS8qIGZhbGx0aHJvdWdoICovDQogICAg ICAgY2FzZSBBRERSX0VYUFI6DQogICAgICAgY2FzZSBBUlJBWV9SRUY6DQpA QCAtMTIyMiw3ICsxMjgyLDcgQEAgaml0X21hcmtfYWRkcmVzc2FibGUgKHRy ZWUgZXhwKQ0KICAgICAgIGNhc2UgQ09NUE9VTkRfTElURVJBTF9FWFBSOg0K ICAgICAgIGNhc2UgQ09OU1RSVUNUT1I6DQogCVRSRUVfQUREUkVTU0FCTEUg KHgpID0gMTsNCi0JcmV0dXJuOw0KKwlyZXR1cm4gdHJ1ZTsNCiANCiAgICAg ICBjYXNlIFZBUl9ERUNMOg0KICAgICAgIGNhc2UgQ09OU1RfREVDTDoNCkBA IC0xMjM0LDcgKzEyOTQsNyBAQCBqaXRfbWFya19hZGRyZXNzYWJsZSAodHJl ZSBleHApDQogCVRSRUVfQUREUkVTU0FCTEUgKHgpID0gMTsNCiAJLyogZmFs bHRocm91Z2ggKi8NCiAgICAgICBkZWZhdWx0Og0KLQlyZXR1cm47DQorCXJl dHVybiB0cnVlOw0KICAgICAgIH0NCiB9DQogDQpAQCAtMTI1MSw4ICsxMzEx LDEwIEBAIGdldF9hZGRyZXNzIChsb2NhdGlvbiAqbG9jKQ0KICAgdHJlZSBw dHIgPSBidWlsZDEgKEFERFJfRVhQUiwgdF9wdHJ0eXBlLCB0X2x2YWx1ZSk7 DQogICBpZiAobG9jKQ0KICAgICBnZXRfY29udGV4dCAoKS0+c2V0X3RyZWVf bG9jYXRpb24gKHB0ciwgbG9jKTsNCi0gIGppdF9tYXJrX2FkZHJlc3NhYmxl ICh0X2x2YWx1ZSk7DQotICByZXR1cm4gbmV3IHJ2YWx1ZSAoZ2V0X2NvbnRl eHQgKCksIHB0cik7DQorICBpZiAoaml0X21hcmtfYWRkcmVzc2FibGUgKGxv YykpDQorICAgIHJldHVybiBuZXcgcnZhbHVlIChnZXRfY29udGV4dCAoKSwg cHRyKTsNCisgIGVsc2UNCisgICAgcmV0dXJuIE5VTEw7DQogfQ0KIA0KIC8q IFRoZSB3cmFwcGVyIHN1YmNsYXNzZXMgYXJlIEdDLW1hbmFnZWQsIGJ1dCBj YW4gb3duIG5vbi1HQyBtZW1vcnkuDQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9q aXQtcGxheWJhY2suaCBiL2djYy9qaXQvaml0LXBsYXliYWNrLmgNCmluZGV4 IGJjNGRlOWMuLmM1OWY2MTQgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2ppdC1w bGF5YmFjay5oDQorKysgYi9nY2Mvaml0L2ppdC1wbGF5YmFjay5oDQpAQCAt NzUsNiArNzUsMTIgQEAgcHVibGljOg0KIAkgICAgIHR5cGUgKnR5cGUsDQog CSAgICAgY29uc3QgY2hhciAqbmFtZSk7DQogDQorICBmaWVsZCAqDQorICBu ZXdfYml0ZmllbGQgKGxvY2F0aW9uICpsb2MsDQorICAgICAgICAgICAgICAg IHR5cGUgKnR5cGUsDQorICAgICAgICAgICAgICAgIGludCB3aWR0aCwNCisg ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7DQorDQogICBjb21w b3VuZF90eXBlICoNCiAgIG5ld19jb21wb3VuZF90eXBlIChsb2NhdGlvbiAq bG9jLA0KIAkJICAgICBjb25zdCBjaGFyICpuYW1lLA0KQEAgLTQyNiw2ICs0 MzIsOCBAQCBwcml2YXRlOg0KICAgdHJlZSBtX2lubmVyOw0KIH07DQogDQor Y2xhc3MgYml0ZmllbGQgOiBwdWJsaWMgZmllbGQge307DQorDQogY2xhc3Mg ZnVuY3Rpb24gOiBwdWJsaWMgd3JhcHBlcg0KIHsNCiBwdWJsaWM6DQpAQCAt NjE0LDYgKzYyMiw4IEBAIHB1YmxpYzoNCiAgIHJ2YWx1ZSAqDQogICBnZXRf YWRkcmVzcyAobG9jYXRpb24gKmxvYyk7DQogDQorcHJpdmF0ZToNCisgIGJv b2wgaml0X21hcmtfYWRkcmVzc2FibGUgKGxvY2F0aW9uICpsb2MpOw0KIH07 DQogDQogY2xhc3MgcGFyYW0gOiBwdWJsaWMgbHZhbHVlDQpAQCAtNzAzLDQg KzcxMywzIEBAIGV4dGVybiBwbGF5YmFjazo6Y29udGV4dCAqYWN0aXZlX3Bs YXliYWNrX2N0eHQ7DQogfSAvLyBuYW1lc3BhY2UgZ2NjDQogDQogI2VuZGlm IC8qIEpJVF9QTEFZQkFDS19IICovDQotDQpkaWZmIC0tZ2l0IGEvZ2NjL2pp dC9qaXQtcmVjb3JkaW5nLmMgYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuYw0K aW5kZXggYTMzMmZlOC4uMDY3OGQwNyAxMDA2NDQNCi0tLSBhL2djYy9qaXQv aml0LXJlY29yZGluZy5jDQorKysgYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcu Yw0KQEAgLTg3Miw2ICs4NzIsMjQgQEAgcmVjb3JkaW5nOjpjb250ZXh0Ojpu ZXdfZmllbGQgKHJlY29yZGluZzo6bG9jYXRpb24gKmxvYywNCiAgIHJldHVy biByZXN1bHQ7DQogfQ0KIA0KKy8qIENyZWF0ZSBhIHJlY29yZGluZzo6Yml0 ZmllbGQgaW5zdGFuY2UgYW5kIGFkZCBpdCB0byB0aGlzIGNvbnRleHQncyBs aXN0DQorICAgb2YgbWVtZW50b3MuDQorDQorICAgSW1wbGVtZW50cyB0aGUg cG9zdC1lcnJvci1jaGVja2luZyBwYXJ0IG9mDQorICAgZ2NjX2ppdF9jb250 ZXh0X25ld19iaXRmaWVsZC4gICovDQorDQorcmVjb3JkaW5nOjpmaWVsZCAq DQorcmVjb3JkaW5nOjpjb250ZXh0OjpuZXdfYml0ZmllbGQgKHJlY29yZGlu Zzo6bG9jYXRpb24gKmxvYywNCisJCQkJICByZWNvcmRpbmc6OnR5cGUgKnR5 cGUsDQorCQkJCSAgaW50IHdpZHRoLA0KKwkJCQkgIGNvbnN0IGNoYXIgKm5h bWUpDQorew0KKyAgcmVjb3JkaW5nOjpmaWVsZCAqcmVzdWx0ID0NCisgICAg bmV3IHJlY29yZGluZzo6Yml0ZmllbGQgKHRoaXMsIGxvYywgdHlwZSwgd2lk dGgsIG5ld19zdHJpbmcgKG5hbWUpKTsNCisgIHJlY29yZCAocmVzdWx0KTsN CisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KIC8qIENyZWF0ZSBhIHJlY29y ZGluZzo6c3RydWN0XyBpbnN0YW5jZSBhbmQgYWRkIGl0IHRvIHRoaXMgY29u dGV4dCdzDQogICAgbGlzdCBvZiBtZW1lbnRvcyBhbmQgbGlzdCBvZiBjb21w b3VuZCB0eXBlcy4NCiANCkBAIC0yOTk5LDYgKzMwMTcsNjYgQEAgcmVjb3Jk aW5nOjpmaWVsZDo6d3JpdGVfcmVwcm9kdWNlciAocmVwcm9kdWNlciAmcikN CiAJICBtX25hbWUtPmdldF9kZWJ1Z19zdHJpbmcgKCkpOw0KIH0NCiANCisv KiBUaGUgaW1wbGVtZW50YXRpb24gb2YgY2xhc3MgZ2NjOjpqaXQ6OnJlY29y ZGluZzo6Yml0ZmllbGQuICAqLw0KKw0KKy8qIEltcGxlbWVudGF0aW9uIG9m IHB1cmUgdmlydHVhbCBob29rIHJlY29yZGluZzo6bWVtZW50bzo6cmVwbGF5 X2ludG8NCisgICBmb3IgcmVjb3JkaW5nOjpiaXRmaWVsZC4gICovDQorDQor dm9pZA0KK3JlY29yZGluZzo6Yml0ZmllbGQ6OnJlcGxheV9pbnRvIChyZXBs YXllciAqcikNCit7DQorICBzZXRfcGxheWJhY2tfb2JqIChyLT5uZXdfYml0 ZmllbGQgKHBsYXliYWNrX2xvY2F0aW9uIChyLCBtX2xvYyksDQorCQkJCSAg ICAgbV90eXBlLT5wbGF5YmFja190eXBlICgpLA0KKwkJCQkgICAgIG1fd2lk dGgsDQorCQkJCSAgICAgcGxheWJhY2tfc3RyaW5nIChtX25hbWUpKSk7DQor fQ0KKw0KKy8qIE92ZXJyaWRlIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9u IG9mDQorICAgcmVjb3JkaW5nOjptZW1lbnRvOjp3cml0ZV90b19kdW1wLiAg RHVtcCBlYWNoIGJpdCBmaWVsZA0KKyAgIGJ5IGR1bXBpbmcgYSBsaW5lIG9m IHRoZSBmb3JtOg0KKyAgICAgIFRZUEUgTkFNRTpXSURUSDsNCisgICBzbyB0 aGF0IHdlIGNhbiBidWlsZCB1cCBhIHN0cnVjdC91bmlvbiBmaWVsZC1ieWZp ZWxkLiAgKi8NCisNCit2b2lkDQorcmVjb3JkaW5nOjpiaXRmaWVsZDo6d3Jp dGVfdG9fZHVtcCAoZHVtcCAmZCkNCit7DQorICBkLndyaXRlICgiICAlcyAl czolZDtcbiIsDQorCSAgIG1fdHlwZS0+Z2V0X2RlYnVnX3N0cmluZyAoKSwN CisJICAgbV9uYW1lLT5jX3N0ciAoKSwNCisJICAgbV93aWR0aCk7DQorfQ0K Kw0KKy8qIEltcGxlbWVudGF0aW9uIG9mIHJlY29yZGluZzo6bWVtZW50bzo6 bWFrZV9kZWJ1Z19zdHJpbmcgZm9yDQorICAgcmVzdWx0cyBvZiBuZXdfYml0 ZmllbGQuICAqLw0KKw0KK3JlY29yZGluZzo6c3RyaW5nICoNCityZWNvcmRp bmc6OmJpdGZpZWxkOjptYWtlX2RlYnVnX3N0cmluZyAoKQ0KK3sNCisgIHJl dHVybiBzdHJpbmc6OmZyb21fcHJpbnRmIChtX2N0eHQsDQorCQkJICAgICAg IiVzOiVkIiwNCisJCQkgICAgICBtX25hbWUtPmNfc3RyICgpLCBtX3dpZHRo KTsNCit9DQorDQorLyogSW1wbGVtZW50YXRpb24gb2YgcmVjb3JkaW5nOjpt ZW1lbnRvOjp3cml0ZV9yZXByb2R1Y2VyIGZvciBiaXRmaWVsZHMuICAqLw0K Kw0KK3ZvaWQNCityZWNvcmRpbmc6OmJpdGZpZWxkOjp3cml0ZV9yZXByb2R1 Y2VyIChyZXByb2R1Y2VyICZyKQ0KK3sNCisgIGNvbnN0IGNoYXIgKmlkID0g ci5tYWtlX2lkZW50aWZpZXIgKHRoaXMsICJiaXRmaWVsZCIpOw0KKyAgci53 cml0ZSAoIiAgZ2NjX2ppdF9maWVsZCAqJXMgPVxuIg0KKwkgICAiICAgIGdj Y19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQgKCVzLFxuIg0KKwkgICAiICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICVzLCAvKiBnY2Nfaml0X2xv Y2F0aW9uICpsb2MgKi9cbiINCisJICAgIiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAlcywgLyogZ2NjX2ppdF90eXBlICp0eXBlLCAqL1xuIg0K KwkgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVkLCAvKiBp bnQgKndpZHRoLCAqL1xuIg0KKwkgICAiICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICVzKTsgLyogY29uc3QgY2hhciAqbmFtZSAqL1xuIiwNCisJ ICAgaWQsDQorCSAgIHIuZ2V0X2lkZW50aWZpZXIgKGdldF9jb250ZXh0ICgp KSwNCisJICAgci5nZXRfaWRlbnRpZmllciAobV9sb2MpLA0KKwkgICByLmdl dF9pZGVudGlmaWVyX2FzX3R5cGUgKG1fdHlwZSksDQorCSAgIG1fd2lkdGgs DQorCSAgIG1fbmFtZS0+Z2V0X2RlYnVnX3N0cmluZyAoKSk7DQorfQ0KKw0K IC8qIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBnY2M6OmppdDo6cmVj b3JkaW5nOjpjb21wb3VuZF90eXBlICovDQogDQogLyogVGhlIGNvbnN0cnVj dG9yIGZvciBnY2M6OmppdDo6cmVjb3JkaW5nOjpjb21wb3VuZF90eXBlLiAg Ki8NCmRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaCBiL2dj Yy9qaXQvaml0LXJlY29yZGluZy5oDQppbmRleCBiOWYyMjUwLi41ZTJkNjRl IDEwMDY0NA0KLS0tIGEvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgNCisrKyBi L2djYy9qaXQvaml0LXJlY29yZGluZy5oDQpAQCAtOTUsNiArOTUsMTIgQEAg cHVibGljOg0KIAkgICAgIHR5cGUgKnR5cGUsDQogCSAgICAgY29uc3QgY2hh ciAqbmFtZSk7DQogDQorICBmaWVsZCAqDQorICBuZXdfYml0ZmllbGQgKGxv Y2F0aW9uICpsb2MsDQorICAgICAgICAgICAgICAgIHR5cGUgKnR5cGUsDQor ICAgICAgICAgICAgICAgIGludCB3aWR0aCwNCisgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSk7DQorDQogICBzdHJ1Y3RfICoNCiAgIG5ld19z dHJ1Y3RfdHlwZSAobG9jYXRpb24gKmxvYywNCiAJCSAgIGNvbnN0IGNoYXIg Km5hbWUpOw0KQEAgLTgyMiw5ICs4MjgsOSBAQCBwdWJsaWM6DQogICBjb21w b3VuZF90eXBlICogZ2V0X2NvbnRhaW5lciAoKSBjb25zdCB7IHJldHVybiBt X2NvbnRhaW5lcjsgfQ0KICAgdm9pZCBzZXRfY29udGFpbmVyIChjb21wb3Vu ZF90eXBlICpjKSB7IG1fY29udGFpbmVyID0gYzsgfQ0KIA0KLSAgdm9pZCBy ZXBsYXlfaW50byAocmVwbGF5ZXIgKikgRklOQUwgT1ZFUlJJREU7DQorICB2 b2lkIHJlcGxheV9pbnRvIChyZXBsYXllciAqKTsNCiANCi0gIHZvaWQgd3Jp dGVfdG9fZHVtcCAoZHVtcCAmZCkgRklOQUwgT1ZFUlJJREU7DQorICB2b2lk IHdyaXRlX3RvX2R1bXAgKGR1bXAgJmQpOw0KIA0KICAgcGxheWJhY2s6OmZp ZWxkICoNCiAgIHBsYXliYWNrX2ZpZWxkICgpIGNvbnN0DQpAQCAtODMzLDE2 ICs4MzksNDAgQEAgcHVibGljOg0KICAgfQ0KIA0KIHByaXZhdGU6DQotICBz dHJpbmcgKiBtYWtlX2RlYnVnX3N0cmluZyAoKSBGSU5BTCBPVkVSUklERTsN Ci0gIHZvaWQgd3JpdGVfcmVwcm9kdWNlciAocmVwcm9kdWNlciAmcikgRklO QUwgT1ZFUlJJREU7DQorICBzdHJpbmcgKiBtYWtlX2RlYnVnX3N0cmluZyAo KTsNCisgIHZvaWQgd3JpdGVfcmVwcm9kdWNlciAocmVwcm9kdWNlciAmcik7 DQogDQotcHJpdmF0ZToNCitwcm90ZWN0ZWQ6DQogICBsb2NhdGlvbiAqbV9s b2M7DQogICB0eXBlICptX3R5cGU7DQogICBzdHJpbmcgKm1fbmFtZTsNCiAg IGNvbXBvdW5kX3R5cGUgKm1fY29udGFpbmVyOw0KIH07DQogDQorDQorY2xh c3MgYml0ZmllbGQgOiBwdWJsaWMgZmllbGQNCit7DQorcHVibGljOg0KKyAg Yml0ZmllbGQgKGNvbnRleHQgKmN0eHQsDQorICAgICAgICAgICAgbG9jYXRp b24gKmxvYywNCisgICAgICAgICAgICB0eXBlICp0eXBlLA0KKyAgICAgICAg ICAgIGludCB3aWR0aCwNCisgICAgICAgICAgICBzdHJpbmcgKm5hbWUpDQor ICAgIDogZmllbGQgKGN0eHQsIGxvYywgdHlwZSwgbmFtZSkNCisgIHsgbV93 aWR0aCA9IHdpZHRoOyB9DQorDQorICB2b2lkIHJlcGxheV9pbnRvIChyZXBs YXllciAqKSBGSU5BTCBPVkVSUklERTsNCisNCisgIHZvaWQgd3JpdGVfdG9f ZHVtcCAoZHVtcCAmZCkgRklOQUwgT1ZFUlJJREU7DQorDQorcHJpdmF0ZToN CisgIHN0cmluZyAqIG1ha2VfZGVidWdfc3RyaW5nICgpIEZJTkFMIE9WRVJS SURFOw0KKyAgdm9pZCB3cml0ZV9yZXByb2R1Y2VyIChyZXByb2R1Y2VyICZy KSBGSU5BTCBPVkVSUklERTsNCisNCitwcml2YXRlOg0KKyAgaW50IG1fd2lk dGg7DQorfTsNCisNCiAvKiBCYXNlIGNsYXNzIGZvciBzdHJ1Y3RfIGFuZCB1 bmlvbl8gKi8NCiBjbGFzcyBjb21wb3VuZF90eXBlIDogcHVibGljIHR5cGUN CiB7DQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQrKy5oIGIvZ2Nj L2ppdC9saWJnY2NqaXQrKy5oDQppbmRleCA1NWFlYmNhLi5lNWE3NjlhIDEw MDY0NA0KLS0tIGEvZ2NjL2ppdC9saWJnY2NqaXQrKy5oDQorKysgYi9nY2Mv aml0L2xpYmdjY2ppdCsrLmgNCkBAIC0xNTIsNiArMTUyLDkgQEAgbmFtZXNw YWNlIGdjY2ppdA0KICAgICBmaWVsZCBuZXdfZmllbGQgKHR5cGUgdHlwZV8s IGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLA0KIAkJICAgICBsb2NhdGlvbiBs b2MgPSBsb2NhdGlvbiAoKSk7DQogDQorICAgIGZpZWxkIG5ld19iaXRmaWVs ZCAodHlwZSB0eXBlXywgaW50IHdpZHRoLCBjb25zdCBzdGQ6OnN0cmluZyAm bmFtZSwNCisgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbiBsb2Mg PSBsb2NhdGlvbiAoKSk7DQorDQogICAgIHN0cnVjdF8gbmV3X3N0cnVjdF90 eXBlIChjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSwNCiAJCQkgICAgIHN0ZDo6 dmVjdG9yPGZpZWxkPiAmZmllbGRzLA0KIAkJCSAgICAgbG9jYXRpb24gbG9j ID0gbG9jYXRpb24gKCkpOw0KQEAgLTc1Nyw2ICs3NjAsMTcgQEAgY29udGV4 dDo6bmV3X2ZpZWxkICh0eXBlIHR5cGVfLCBjb25zdCBzdGQ6OnN0cmluZyAm bmFtZSwgbG9jYXRpb24gbG9jKQ0KIAkJCQkJICAgbmFtZS5jX3N0ciAoKSkp Ow0KIH0NCiANCitpbmxpbmUgZmllbGQNCitjb250ZXh0OjpuZXdfYml0Zmll bGQgKHR5cGUgdHlwZV8sIGludCB3aWR0aCwgY29uc3Qgc3RkOjpzdHJpbmcg Jm5hbWUsDQorICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbiBsb2Mp DQorew0KKyAgcmV0dXJuIGZpZWxkIChnY2Nfaml0X2NvbnRleHRfbmV3X2Jp dGZpZWxkIChtX2lubmVyX2N0eHQsDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxvYy5nZXRfaW5uZXJfbG9jYXRp b24gKCksDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHR5cGVfLmdldF9pbm5lcl90eXBlICgpLA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmFtZS5jX3N0ciAoKSkpOw0KK30NCisNCiBpbmxpbmUgc3RydWN0Xw0K IGNvbnRleHQ6Om5ld19zdHJ1Y3RfdHlwZSAoY29uc3Qgc3RkOjpzdHJpbmcg Jm5hbWUsDQogCQkJICBzdGQ6OnZlY3RvcjxmaWVsZD4gJmZpZWxkcywNCmRp ZmYgLS1naXQgYS9nY2Mvaml0L2xpYmdjY2ppdC5jIGIvZ2NjL2ppdC9saWJn Y2NqaXQuYw0KaW5kZXggZTRmMTdmOC4uZjEyNjVhNSAxMDA2NDQNCi0tLSBh L2djYy9qaXQvbGliZ2Njaml0LmMNCisrKyBiL2djYy9qaXQvbGliZ2Njaml0 LmMNCkBAIC02Miw2ICs2MiwxMCBAQCBzdHJ1Y3QgZ2NjX2ppdF9maWVsZCA6 IHB1YmxpYyBnY2M6OmppdDo6cmVjb3JkaW5nOjpmaWVsZA0KIHsNCiB9Ow0K IA0KK3N0cnVjdCBnY2Nfaml0X2JpdGZpZWxkIDogcHVibGljIGdjYzo6aml0 OjpyZWNvcmRpbmc6OmJpdGZpZWxkDQorew0KK307DQorDQogc3RydWN0IGdj Y19qaXRfZnVuY3Rpb24gOiBwdWJsaWMgZ2NjOjpqaXQ6OnJlY29yZGluZzo6 ZnVuY3Rpb24NCiB7DQogfTsNCkBAIC01NTYsNiArNTYwLDM1IEBAIGdjY19q aXRfY29udGV4dF9uZXdfZmllbGQgKGdjY19qaXRfY29udGV4dCAqY3R4dCwN CiANCiAvKiBQdWJsaWMgZW50cnlwb2ludC4gIFNlZSBkZXNjcmlwdGlvbiBp biBsaWJnY2NqaXQuaC4NCiANCisgICBBZnRlciBlcnJvci1jaGVja2luZywg dGhlIHJlYWwgd29yayBpcyBkb25lIGJ5IHRoZQ0KKyAgIGdjYzo6aml0Ojpy ZWNvcmRpbmc6OmNvbnRleHQ6Om5ld19iaXRmaWVsZCBtZXRob2QsIGluDQor ICAgaml0LXJlY29yZGluZy5jLiAgKi8NCisNCitnY2Nfaml0X2ZpZWxkICoN CitnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChnY2Nfaml0X2NvbnRl eHQgKmN0eHQsDQorCQkJICAgICAgZ2NjX2ppdF9sb2NhdGlvbiAqbG9jLA0K KwkJCSAgICAgIGdjY19qaXRfdHlwZSAqdHlwZSwNCisJCQkgICAgICBpbnQg d2lkdGgsDQorCQkJICAgICAgY29uc3QgY2hhciAqbmFtZSkNCit7DQorICBS RVRVUk5fTlVMTF9JRl9GQUlMIChjdHh0LCBOVUxMLCBOVUxMLCAiTlVMTCBj b250ZXh0Iik7DQorICBKSVRfTE9HX0ZVTkMgKGN0eHQtPmdldF9sb2dnZXIg KCkpOw0KKyAgLyogTE9DIGNhbiBiZSBOVUxMLiAgKi8NCisgIFJFVFVSTl9O VUxMX0lGX0ZBSUwgKHR5cGUsIGN0eHQsIGxvYywgIk5VTEwgdHlwZSIpOw0K KyAgUkVUVVJOX05VTExfSUZfRkFJTCAod2lkdGggPiAwLCBjdHh0LCBOVUxM LCAiaW52YWxpZCB3aWR0aCIpOw0KKyAgUkVUVVJOX05VTExfSUZfRkFJTCAo bmFtZSwgY3R4dCwgbG9jLCAiTlVMTCBuYW1lIik7DQorICBSRVRVUk5fTlVM TF9JRl9GQUlMX1BSSU5URjIgKA0KKyAgICB0eXBlLT5oYXNfa25vd25fc2l6 ZSAoKSwNCisgICAgY3R4dCwgbG9jLA0KKyAgICAidW5rbm93biBzaXplIGZv ciBmaWVsZCBcIiVzXCIgKHR5cGU6ICVzKSIsDQorICAgIG5hbWUsDQorICAg IHR5cGUtPmdldF9kZWJ1Z19zdHJpbmcgKCkpOw0KKw0KKyAgcmV0dXJuIChn Y2Nfaml0X2ZpZWxkICopY3R4dC0+bmV3X2JpdGZpZWxkIChsb2MsIHR5cGUs IHdpZHRoLCBuYW1lKTsNCit9DQorDQorLyogUHVibGljIGVudHJ5cG9pbnQu ICBTZWUgZGVzY3JpcHRpb24gaW4gbGliZ2Njaml0LmguDQorDQogICAgQWZ0 ZXIgZXJyb3ItY2hlY2tpbmcsIHRoaXMgY2FsbHMgdGhlIHRyaXZpYWwNCiAg ICBnY2M6OmppdDo6cmVjb3JkaW5nOjptZW1lbnRvOjphc19vYmplY3QgbWV0 aG9kIChhIGZpZWxkIGlzIGENCiAgICBtZW1lbnRvKSwgaW4gaml0LXJlY29y ZGluZy5oLiAgKi8NCmRpZmYgLS1naXQgYS9nY2Mvaml0L2xpYmdjY2ppdC5o IGIvZ2NjL2ppdC9saWJnY2NqaXQuaA0KaW5kZXggYmVlYjc0Ny4uOWM1ZjIz YiAxMDA2NDQNCi0tLSBhL2djYy9qaXQvbGliZ2Njaml0LmgNCisrKyBiL2dj Yy9qaXQvbGliZ2Njaml0LmgNCkBAIC02MDIsNiArNjAyLDIxIEBAIGdjY19q aXRfY29udGV4dF9uZXdfZmllbGQgKGdjY19qaXRfY29udGV4dCAqY3R4dCwN CiAJCQkgICBnY2Nfaml0X3R5cGUgKnR5cGUsDQogCQkJICAgY29uc3QgY2hh ciAqbmFtZSk7DQogDQorI2RlZmluZSBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0 X2NvbnRleHRfbmV3X2JpdGZpZWxkDQorDQorLyogQ3JlYXRlIGEgYml0IGZp ZWxkLCBmb3IgdXNlIHdpdGhpbiBhIHN0cnVjdCBvciB1bmlvbi4NCisNCisg ICBUaGlzIEFQSSBlbnRyeXBvaW50IHdhcyBhZGRlZCBpbiBMSUJHQ0NKSVRf QUJJXzEyOyB5b3UgY2FuIHRlc3QgZm9yIGl0cw0KKyAgIHByZXNlbmNlIHVz aW5nDQorICAgICAjaWZkZWYgTElCR0NDSklUX0hBVkVfZ2NjX2ppdF9jb250 ZXh0X25ld19iaXRmaWVsZA0KKyovDQorZXh0ZXJuIGdjY19qaXRfZmllbGQg Kg0KK2djY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQgKGdjY19qaXRfY29u dGV4dCAqY3R4dCwNCisJCQkgICAgICBnY2Nfaml0X2xvY2F0aW9uICpsb2Ms DQorCQkJICAgICAgZ2NjX2ppdF90eXBlICp0eXBlLA0KKwkJCSAgICAgIGlu dCB3aWR0aCwNCisJCQkgICAgICBjb25zdCBjaGFyICpuYW1lKTsNCisNCiAv KiBVcGNhc3RpbmcgZnJvbSBmaWVsZCB0byBvYmplY3QuICAqLw0KIGV4dGVy biBnY2Nfaml0X29iamVjdCAqDQogZ2NjX2ppdF9maWVsZF9hc19vYmplY3Qg KGdjY19qaXRfZmllbGQgKmZpZWxkKTsNCmRpZmYgLS1naXQgYS9nY2Mvaml0 L2xpYmdjY2ppdC5tYXAgYi9nY2Mvaml0L2xpYmdjY2ppdC5tYXANCmluZGV4 IDE2ZjUyNTMuLjQwZTFjNzggMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2xpYmdj Y2ppdC5tYXANCisrKyBiL2djYy9qaXQvbGliZ2Njaml0Lm1hcA0KQEAgLTE3 NCw0ICsxNzQsOSBAQCBMSUJHQ0NKSVRfQUJJXzEwIHsNCiBMSUJHQ0NKSVRf QUJJXzExIHsNCiAgIGdsb2JhbDoNCiAgICAgZ2NjX2ppdF9jb250ZXh0X2Fk ZF9kcml2ZXJfb3B0aW9uOw0KLX0gTElCR0NDSklUX0FCSV8xMDsNClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KK30gTElCR0NDSklUX0FCSV8xMDsN CisNCitMSUJHQ0NKSVRfQUJJXzEyIHsNCisgIGdsb2JhbDoNCisgICAgZ2Nj X2ppdF9jb250ZXh0X25ld19iaXRmaWVsZDsNCit9IExJQkdDQ0pJVF9BQklf MTE7DQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2ppdC5kZy9hbGwtbm9uLWZhaWxpbmctdGVzdHMu aCBiL2djYy90ZXN0c3VpdGUvaml0LmRnL2FsbC1ub24tZmFpbGluZy10ZXN0 cy5oDQppbmRleCA5YTEwNDE4Li5mN2FmOGU5IDEwMDY0NA0KLS0tIGEvZ2Nj L3Rlc3RzdWl0ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmgNCisr KyBiL2djYy90ZXN0c3VpdGUvaml0LmRnL2FsbC1ub24tZmFpbGluZy10ZXN0 cy5oDQpAQCAtOCw2ICs4LDEzIEBADQogICAgaG9va3MgcHJvdmlkZWQgYnkg ZWFjaCB0ZXN0IGNhc2UuICAqLw0KICNkZWZpbmUgQ09NQklORURfVEVTVA0K IA0KKy8qIHRlc3QtYWNjZXNzaW5nLWJpdGZpZWxkLmMgKi8NCisjZGVmaW5l IGNyZWF0ZV9jb2RlIGNyZWF0ZV9jb2RlX2FjY2Vzc2luZ19iaXRmaWVsZA0K KyNkZWZpbmUgdmVyaWZ5X2NvZGUgdmVyaWZ5X2NvZGVfYWNjZXNzaW5nX2Jp dGZpZWxkDQorI2luY2x1ZGUgInRlc3QtYWNjZXNzaW5nLWJpdGZpZWxkLmMi DQorI3VuZGVmIGNyZWF0ZV9jb2RlDQorI3VuZGVmIHZlcmlmeV9jb2RlDQor DQogLyogdGVzdC1hY2Nlc3Npbmctc3RydWN0LmMgKi8NCiAjZGVmaW5lIGNy ZWF0ZV9jb2RlIGNyZWF0ZV9jb2RlX2FjY2Vzc2luZ19zdHJ1Y3QNCiAjZGVm aW5lIHZlcmlmeV9jb2RlIHZlcmlmeV9jb2RlX2FjY2Vzc2luZ19zdHJ1Y3QN CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LWFjY2Vz c2luZy1iaXRmaWVsZC5jIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1h Y2Nlc3NpbmctYml0ZmllbGQuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAuLjZjYThiMjQNCi0tLSAvZGV2L251bGwNCisrKyBiL2dj Yy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtYWNjZXNzaW5nLWJpdGZpZWxkLmMN CkBAIC0wLDAgKzEsMTMwIEBADQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNp bmNsdWRlIDxzdGRpby5oPg0KKw0KKyNpbmNsdWRlICJsaWJnY2NqaXQuaCIN CisNCisjaW5jbHVkZSAiaGFybmVzcy5oIg0KKw0KK3N0cnVjdCBiaXRfZm9v DQorew0KKyAgaW50IGk6MzsNCisgIGludCB4OjU7DQorICBpbnQgeTo1Ow0K KyAgaW50IHo6MTA7DQorICBpbnQgajozOw0KK307DQorDQordm9pZA0KK2Ny ZWF0ZV9jb2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIHZvaWQgKnVzZXJf ZGF0YSkNCit7DQorICAvKiBMZXQncyB0cnkgdG8gaW5qZWN0IHRoZSBlcXVp dmFsZW50IG9mOg0KKyAgICAgdm9pZA0KKyAgICAgdGVzdF9hY2Nlc3MgKHN0 cnVjdCBiaXRfZm9vICpmKQ0KKyAgICAgew0KKyAgICAgICAgZi0+eiA9IGYt PnggKyBmLT55Ow0KKyAgICAgfQ0KKyAgKi8NCisgIGdjY19qaXRfdHlwZSAq dm9pZF90eXBlID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChj dHh0LCBHQ0NfSklUX1RZUEVfVk9JRCk7DQorICBnY2Nfaml0X3R5cGUgKmlu dF90eXBlID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0 LCBHQ0NfSklUX1RZUEVfSU5UKTsNCisgIGdjY19qaXRfZmllbGQgKmkgPQ0K KyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChjdHh0LA0KKwkJ CQkgIE5VTEwsDQorCQkJCSAgaW50X3R5cGUsDQorCQkJCSAgMywNCisJCQkJ ICAiaSIpOw0KKyAgZ2NjX2ppdF9maWVsZCAqeCA9DQorICAgIGdjY19qaXRf Y29udGV4dF9uZXdfYml0ZmllbGQgKGN0eHQsDQorCQkJCSAgTlVMTCwNCisJ CQkJICBpbnRfdHlwZSwNCisJCQkJICA1LA0KKwkJCQkgICJ4Iik7DQorICBn Y2Nfaml0X2ZpZWxkICp5ID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19i aXRmaWVsZCAoY3R4dCwNCisJCQkJICBOVUxMLA0KKwkJCQkgIGludF90eXBl LA0KKwkJCQkgIDUsDQorCQkJCSAgInkiKTsNCisgIGdjY19qaXRfZmllbGQg KnogPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChjdHh0 LA0KKwkJCQkgIE5VTEwsDQorCQkJCSAgaW50X3R5cGUsDQorCQkJCSAgMTAs DQorCQkJCSAgInoiKTsNCisgIGdjY19qaXRfZmllbGQgKmogPQ0KKyAgICBn Y2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChjdHh0LA0KKwkJCQkgIE5V TEwsDQorCQkJCSAgaW50X3R5cGUsDQorCQkJCSAgMywNCisJCQkJICAiaiIp Ow0KKyAgZ2NjX2ppdF9maWVsZCAqZmllbGRzW10gPSB7aSwgeCwgeSwgeiwg an07DQorICBnY2Nfaml0X3N0cnVjdCAqc3RydWN0X3R5cGUgPQ0KKyAgICBn Y2Nfaml0X2NvbnRleHRfbmV3X3N0cnVjdF90eXBlIChjdHh0LCBOVUxMLCAi Yml0X2ZvbyIsIDUsIGZpZWxkcyk7DQorICBnY2Nfaml0X3R5cGUgKnB0cl90 eXBlID0NCisgICAgZ2NjX2ppdF90eXBlX2dldF9wb2ludGVyIChnY2Nfaml0 X3N0cnVjdF9hc190eXBlIChzdHJ1Y3RfdHlwZSkpOw0KKw0KKyAgLyogQnVp bGQgdGhlIHRlc3QgZnVuY3Rpb24uICAqLw0KKyAgZ2NjX2ppdF9wYXJhbSAq cGFyYW1fZiA9DQorICAgIGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0gKGN0 eHQsIE5VTEwsIHB0cl90eXBlLCAiZiIpOw0KKyAgZ2NjX2ppdF9mdW5jdGlv biAqdGVzdF9mbiA9DQorICAgIGdjY19qaXRfY29udGV4dF9uZXdfZnVuY3Rp b24gKGN0eHQsIE5VTEwsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdDQ19KSVRfRlVOQ1RJT05fRVhQT1JURUQsDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWRfdHlwZSwNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RfYWNjZXNzIiwNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgJnBhcmFtX2Ys DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOw0KKw0K KyAgLyogZi0+eCArIGYtPnkgKi8NCisgIGdjY19qaXRfcnZhbHVlICpzdW0g PQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpbmFyeV9vcCAoDQorICAg ICAgY3R4dCwgTlVMTCwNCisgICAgICBHQ0NfSklUX0JJTkFSWV9PUF9QTFVT LA0KKyAgICAgIGludF90eXBlLA0KKyAgICAgIGdjY19qaXRfbHZhbHVlX2Fz X3J2YWx1ZSAoDQorCWdjY19qaXRfcnZhbHVlX2RlcmVmZXJlbmNlX2ZpZWxk ICgNCisJICBnY2Nfaml0X3BhcmFtX2FzX3J2YWx1ZSAocGFyYW1fZiksDQor CSAgTlVMTCwNCisJICB4KSksDQorICAgICAgZ2NjX2ppdF9sdmFsdWVfYXNf cnZhbHVlICgNCisJZ2NjX2ppdF9ydmFsdWVfZGVyZWZlcmVuY2VfZmllbGQg KA0KKwlnY2Nfaml0X3BhcmFtX2FzX3J2YWx1ZSAocGFyYW1fZiksDQorCU5V TEwsDQorCXkpKSk7DQorDQorICAvKiBmLT56ID0gLi4uICovDQorICBnY2Nf aml0X2Jsb2NrICpibG9jayA9IGdjY19qaXRfZnVuY3Rpb25fbmV3X2Jsb2Nr ICh0ZXN0X2ZuLCBOVUxMKTsNCisgIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2ln bm1lbnQgKA0KKyAgICBibG9jaywNCisgICAgTlVMTCwNCisgICAgZ2NjX2pp dF9ydmFsdWVfZGVyZWZlcmVuY2VfZmllbGQgKA0KKyAgICAgIGdjY19qaXRf cGFyYW1fYXNfcnZhbHVlIChwYXJhbV9mKSwNCisgICAgICBOVUxMLA0KKyAg ICAgIHopLA0KKyAgICBzdW0pOw0KKyAgZ2NjX2ppdF9ibG9ja19lbmRfd2l0 aF92b2lkX3JldHVybiAoYmxvY2ssIE5VTEwpOw0KK30NCisNCit2b2lkDQor dmVyaWZ5X2NvZGUgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgZ2NjX2ppdF9y ZXN1bHQgKnJlc3VsdCkNCit7DQorICB0eXBlZGVmIHZvaWQgKCpmbl90eXBl KSAoc3RydWN0IGJpdF9mb28gKik7DQorICBDSEVDS19OT05fTlVMTCAocmVz dWx0KTsNCisNCisgIGZuX3R5cGUgdGVzdF9hY2Nlc3MgPQ0KKyAgICAoZm5f dHlwZSlnY2Nfaml0X3Jlc3VsdF9nZXRfY29kZSAocmVzdWx0LCAidGVzdF9h Y2Nlc3MiKTsNCisgIENIRUNLX05PTl9OVUxMICh0ZXN0X2FjY2Vzcyk7DQor DQorICBzdHJ1Y3QgYml0X2ZvbyB0bXA7DQorICB0bXAuaSA9IDM7DQorICB0 bXAueCA9IDU7DQorICB0bXAueSA9IDc7DQorICB0bXAueiA9IDA7DQorICB0 bXAuaiA9IDM7DQorDQorICAvKiBDYWxsIHRoZSBKSVQtZ2VuZXJhdGVkIGZ1 bmN0aW9uLiAgKi8NCisgIHRlc3RfYWNjZXNzICgmdG1wKTsNCisNCisgIC8q IFZlcmlmeSB0aGF0IHRoZSBjb2RlIGNvcnJlY3RseSBtb2RpZmllZCB0aGUg ZmllbGQgInoiLiAgKi8NCisgIENIRUNLX1ZBTFVFICh0bXAueiwgMTIpOw0K K30NCg== --_002_gkrd0jvvvx2fsfarmcom_--