From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15363 invoked by alias); 21 Jan 2019 08:40:55 -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 15202 invoked by uid 89); 21 Jan 2019 08:40:53 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=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.2 spammy=overriding, presence, arbitrary, finish X-Spam-Status: No, score=-26.9 required=5.0 tests=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.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-Spam-User: qpsmtpd, 2 recipients X-HELO: EUR03-VE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr50078.outbound.protection.outlook.com (HELO EUR03-VE1-obe.outbound.protection.outlook.com) (40.107.5.78) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 21 Jan 2019 08:40:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oeya5hp3M5VeyA+Q9MZyCjAB3jR5SjGjMfP1DY/2a+4=; b=bnVfx5IXA1lnuy7jIxDvPQZWpQg4N3FVljh++hzG+CdzEeikhXhYEPGpFafsM65A8yQc5GJeOPLE5x0t5ICYnPE9MoS2DHnK6jpErZN8xBrNerECSx1Zt3W5xBOKE0endAdiSNVgn+4dW0MuRrOWZ/bkKn/lzxUXjTvfAWjCO58= Received: from AM5PR0801MB1986.eurprd08.prod.outlook.com (10.168.158.13) by AM5PR0801MB2003.eurprd08.prod.outlook.com (10.168.158.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.24; Mon, 21 Jan 2019 08:40:44 +0000 Received: from AM5PR0801MB1986.eurprd08.prod.outlook.com ([fe80::7c0e:4a15:1b8b:e5bc]) by AM5PR0801MB1986.eurprd08.prod.outlook.com ([fe80::7c0e:4a15:1b8b:e5bc%9]) with mapi id 15.20.1537.031; Mon, 21 Jan 2019 08:40:44 +0000 From: Andrea Corallo To: "gcc-patches@gcc.gnu.org" , "jit@gcc.gnu.org" CC: nd Subject: [PATCH][gcc] libgccjit: introduce gcc_jit_context_add_driver_option Thread-Topic: [PATCH][gcc] libgccjit: introduce gcc_jit_context_add_driver_option Thread-Index: AQHUsWT/+xwWu6yZE0uRycm5kEp+NA== 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: LO2P265CA0018.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:62::30) To AM5PR0801MB1986.eurprd08.prod.outlook.com (2603:10a6:203:4b::13) x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [217.140.106.37] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;AM5PR0801MB2003;6:TFojd83itRCRbZ5aGfbv3RMyeM3FUMUA8FBasT049aKi5xvFgrJXO6Tupd8BcYzh6NL2JebuARgixWI3NxmDxE20YaLOKFgwsGRSBINmL3cLrSpQHqOhAwA5G1dYiHKyiSeGqjes5hPXWx1jOF1qIO7hJRolF6OjoPEjl84VlcURwfH4LBmTuFAujXmhaPvt9WCpzd5hyodEbAsz177733L/C1U8FdBqiE8isUnZhsh9fpVWEkY1a4xdQGFQ24vLvQdgaqi93mkKwJpoN528ml0O9G13645cwiZGcuVi0DR8CaGCFIguVPl9BS7Qqysp+T5qzCSM+wCu+8itAEI9VOT0qpxi8Pz1tCf9TOdm1OJ3DfszUWyLzwfNHDTLSKeW/zgjK0jM+5JITKbZJbvyUxeaXtjeD6Ff42I1XWmaYWUiTmRbAn7YGyuWqxDuPt50GVkzqOId7iadRt/PwzuD+g==;5:qLa+2Cz+Dk5Ce33S0IPzjfMoAjl5TnZpXDQTR+88uuvVJY0/5SntzFwByeA07Z7/56d4yaKbNwl6TIOPs4aryBRV5zqiMwmgtbzSj9E+D80TlhKlivkoP5A/a9Fv1CWolkox1pNA0p/Vn8vp9mk4xQBk8NQDCrxew1AP3ZZEt1RDlnD+aPZszHbYdqnplZo0tPYgg2lNjCEVMvRIWmVEAw==;7:zUdMwJBQYrq2FttKLS+cMDQaHyQ5Apgng6rkv2GtMMpIgrs+uGbl/6UThw/aXxEi7Fz/Pu9sG5JRHe/B0DPP5FEcYf1m3d4VQkVdBsRaZhE75JC41FLLwcnaDTq+AYVtj/inB/pViaaC3a4mmatMZA== x-ms-office365-filtering-correlation-id: 63fe895a-3232-4f07-9b49-08d67f7c21e7 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600109)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(49563074)(7193020);SRVR:AM5PR0801MB2003; x-ms-traffictypediagnostic: AM5PR0801MB2003: nodisclaimer: True x-microsoft-antispam-prvs: x-forefront-prvs: 0924C6A0D5 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(136003)(366004)(346002)(376002)(396003)(39850400004)(53754006)(54534003)(189003)(199004)(102836004)(3846002)(25786009)(6436002)(36756003)(6512007)(450100002)(2501003)(14454004)(66066001)(105586002)(8936002)(6116002)(106356001)(8676002)(81166006)(86362001)(186003)(386003)(26005)(81156014)(71200400001)(6506007)(14444005)(6346003)(71190400001)(256004)(6486002)(2616005)(476003)(486006)(44832011)(52116002)(99286004)(7736002)(305945005)(97736004)(72206003)(99936001)(2906002)(316002)(53936002)(68736007)(478600001)(110136005)(4326008);DIR:OUT;SFP:1101;SCL:1;SRVR:AM5PR0801MB2003;H:AM5PR0801MB1986.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Andrea.Corallo@arm.com; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: Uu5KHUYBNvkMLcUHr1UgS+f/bHsMd9vB0N4Of/Wy4MzVkjFmQ+bj+2b98OxOVKnuomWvnv0Gn/OhXVHfP6FUwi/PDCf2M1+5bmt92ih7h1bErkK5YmLt/mw7+Ww0RAiZsjrCTlehErtjwgjnkaFpBROqJfadAg7cSaBAuqW+XkLaiV7VljvAf1kV+9UZaI00pPVjCHWJ0VoII4c/9GFma9ofqsA1wO5lFTRBGRtXpHMZsPq5fLBAZUTaVdr6Th17yTrMs7EpGI949dbDA0WXiqHhKPwIT3DmeuGHc9HlFdqsqSLzpR5p+3dd9+UDP1YRDZSrTA83yH+DnTtsfdwY1dh71U+zJpKuQt524Kl//AjJzsq6w2Gwjw5wjNiTk8b1e2xze1HKrq8mNUUdckPpHtTQ3JHHx3zjzUf81jDZYYU= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/mixed; boundary="_002_gkrtvi2csjjfsfarmcom_" MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 63fe895a-3232-4f07-9b49-08d67f7c21e7 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2019 08:40:43.8921 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB2003 X-SW-Source: 2019-q1/txt/msg00049.txt.bz2 --_002_gkrtvi2csjjfsfarmcom_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 1838 Hi all, Second version of the patch addressing David's comment about all-non-failin= g-tests.h Adds gcc_jit_context_add_driver_option to the libgccjit ABI and a testcase = for it. Using this interface is now possible to pass options affecting assembler an= d linker. Does not introduce regressions running make check-jit Bests Andrea gcc/jit/ChangeLog 2019-01-16 Andrea Corallo andrea.corallo@arm.com * docs/topics/compatibility.rst (LIBGCCJIT_ABI_11): New ABI tag. * docs/topics/contexts.rst (Additional driver options): New section. * jit-playback.c (invoke_driver): Add call to append_driver_options. * jit-recording.c: Within namespace gcc::jit... (recording::context::~context): Free the optnames within m_driver_options. (recording::context::add_driver_option): New method. (recording::context::append_driver_options): New method. (recording::context::dump_reproducer_to_file): Add driver options. * jit-recording.h: Within namespace gcc::jit... (recording::context::add_driver_option): New method. (recording::context::append_driver_options): New method. (recording::context::m_driver_options): New field. * libgccjit++.h (gccjit::context::add_driver_option): New method. * libgccjit.c (gcc_jit_context_add_driver_option): New API entrypoint. * libgccjit.h (gcc_jit_context_add_driver_option): New API entrypoint. (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option): New macro. * libgccjit.map (LIBGCCJIT_ABI_11): New ABI tag. gcc/testsuite/ChangeLog 2019-01-16 Andrea Corallo andrea.corallo@arm.com * jit.dg/add-driver-options-testlib.c: Add support file for test-add-driver-options.c testcase. * jit.dg/all-non-failing-tests.h: Add note about test-add-driver-options.c * jit.dg/jit.exp (jit-dg-test): Update to support add-driver-options-testlib.c compilation. * jit.dg/test-add-driver-options.c: New testcase. --_002_gkrtvi2csjjfsfarmcom_ Content-Type: text/x-diff; name="gcc_jit_context_add_driver_option_no_changelog.patch" Content-Description: gcc_jit_context_add_driver_option_no_changelog.patch Content-Disposition: attachment; filename="gcc_jit_context_add_driver_option_no_changelog.patch"; size=12673; creation-date="Mon, 21 Jan 2019 08:40:44 GMT"; modification-date="Mon, 21 Jan 2019 08:40:44 GMT" Content-ID: <88BE0644F70F8E47A8E81C222BAC9D1B@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 Content-length: 17182 ZGlmZiAtLWdpdCBhL2djYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0 eS5yc3QgYi9nY2Mvaml0L2RvY3MvdG9waWNzL2NvbXBhdGliaWxpdHkucnN0 DQppbmRleCAzOGQzMzhiLi5hYmVmYTU2IDEwMDY0NA0KLS0tIGEvZ2NjL2pp dC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdA0KKysrIGIvZ2NjL2pp dC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdA0KQEAgLTE2OCw2ICsx NjgsMTIgQEAgZW50cnlwb2ludHM6DQogDQogYGBMSUJHQ0NKSVRfQUJJXzEw YGANCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLQ0KIGBgTElCR0NDSklUX0FC SV8xMGBgIGNvdmVycyB0aGUgYWRkaXRpb24gb2YNCiA6ZnVuYzpgZ2NjX2pp dF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV92ZWN0b3JgDQorDQorLi4gX0xJ QkdDQ0pJVF9BQklfMTE6DQorDQorYGBMSUJHQ0NKSVRfQUJJXzExYGANCist LS0tLS0tLS0tLS0tLS0tLS0tLQ0KK2BgTElCR0NDSklUX0FCSV8xMWBgIGNv dmVycyB0aGUgYWRkaXRpb24gb2YNCis6ZnVuYzpgZ2NjX2ppdF9jb250ZXh0 X2FkZF9kcml2ZXJfb3B0aW9uYA0KZGlmZiAtLWdpdCBhL2djYy9qaXQvZG9j cy90b3BpY3MvY29udGV4dHMucnN0IGIvZ2NjL2ppdC9kb2NzL3RvcGljcy9j b250ZXh0cy5yc3QNCmluZGV4IDk1OTY0Y2EuLjJmOGFlYjcgMTAwNjQ0DQot LS0gYS9nY2Mvaml0L2RvY3MvdG9waWNzL2NvbnRleHRzLnJzdA0KKysrIGIv Z2NjL2ppdC9kb2NzL3RvcGljcy9jb250ZXh0cy5yc3QNCkBAIC01NDYsMyAr NTQ2LDM2IEBAIEFkZGl0aW9uYWwgY29tbWFuZC1saW5lIG9wdGlvbnMNCiAg ICAuLiBjb2RlLWJsb2NrOjogYw0KIA0KICAgICAgICNpZmRlZiBMSUJHQ0NK SVRfSEFWRV9nY2Nfaml0X2NvbnRleHRfYWRkX2NvbW1hbmRfbGluZV9vcHRp b24NCisNCisuLiBmdW5jdGlvbjo6IHZvaWQgZ2NjX2ppdF9jb250ZXh0X2Fk ZF9kcml2ZXJfb3B0aW9uIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsXA0KKwkJ CQkJCSAgICAgIGNvbnN0IGNoYXIgKm9wdG5hbWUpDQorDQorICAgQWRkIGFu IGFyYml0cmFyeSBnY2MgZHJpdmVyIG9wdGlvbiB0byB0aGUgY29udGV4dCwg Zm9yIHVzZSBieQ0KKyAgIDpmdW5jOmBnY2Nfaml0X2NvbnRleHRfY29tcGls ZWAgYW5kDQorICAgOmZ1bmM6YGdjY19qaXRfY29udGV4dF9jb21waWxlX3Rv X2ZpbGVgLg0KKw0KKyAgIFRoZSBwYXJhbWV0ZXIgYGBvcHRuYW1lYGAgbXVz dCBiZSBub24tTlVMTC4gIFRoZSB1bmRlcmx5aW5nIGJ1ZmZlciBpcw0KKyAg IGNvcGllZCwgc28gdGhhdCBpdCBkb2VzIG5vdCBuZWVkIHRvIG91dGxpdmUg dGhlIGNhbGwuDQorDQorICAgRXh0cmEgb3B0aW9ucyBhZGRlZCBieSBgZ2Nj X2ppdF9jb250ZXh0X2FkZF9kcml2ZXJfb3B0aW9uYCBhcmUNCisgICBhcHBs aWVkICphZnRlciogYWxsIG90aGVyIG9wdGlvbnMgcG90ZW50aWFsbHkgb3Zl cnJpZGluZyB0aGVtLg0KKyAgIE9wdGlvbnMgZnJvbSBwYXJlbnQgY29udGV4 dHMgYXJlIGluaGVyaXRlZCBieSBjaGlsZCBjb250ZXh0czsgb3B0aW9ucw0K KyAgIGZyb20gdGhlIHBhcmVudCBhcmUgYXBwbGllZCAqYmVmb3JlKiB0aG9z ZSBmcm9tIHRoZSBjaGlsZC4NCisNCisgICBGb3IgZXhhbXBsZToNCisNCisg ICAuLiBjb2RlLWJsb2NrOjogYw0KKw0KKyAgICAgIGdjY19qaXRfY29udGV4 dF9hZGRfZHJpdmVyX29wdGlvbiAoY3R4dCwgIi1sbSIpOw0KKyAgICAgIGdj Y19qaXRfY29udGV4dF9hZGRfZHJpdmVyX29wdGlvbiAoY3R4dCwgIi1mdXNl LWxpbmtlci1wbHVnaW4iKTsNCisNCisgICBOb3RlIHRoYXQgb25seSBzb21l IG9wdGlvbnMgYXJlIGxpa2VseSB0byBiZSBtZWFuaW5nZnVsOyB0aGVyZSBp cyBubw0KKyAgICJmcm9udGVuZCIgd2l0aGluIGxpYmdjY2ppdCwgc28gdHlw aWNhbGx5IG9ubHkgdGhvc2UgYWZmZWN0aW5nDQorICAgYXNzZW1ibGVyIGFu ZCBsaW5rZXIgYXJlIGxpa2VseSB0byBiZSB1c2VmdWwuDQorDQorICAgVGhp cyBlbnRyeXBvaW50IHdhcyBhZGRlZCBpbiA6cmVmOmBMSUJHQ0NKSVRfQUJJ XzExYDsgeW91IGNhbiB0ZXN0IGZvcg0KKyAgIGl0cyBwcmVzZW5jZSB1c2lu Zw0KKw0KKyAgIC4uIGNvZGUtYmxvY2s6OiBjDQorDQorICAgICAgI2lmZGVm IExJQkdDQ0pJVF9IQVZFX2djY19qaXRfY29udGV4dF9hZGRfZHJpdmVyX29w dGlvbg0KZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXBsYXliYWNrLmMgYi9n Y2Mvaml0L2ppdC1wbGF5YmFjay5jDQppbmRleCA4NmY1ODhkLi5iNzQ0OTVj IDEwMDY0NA0KLS0tIGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suYw0KKysrIGIv Z2NjL2ppdC9qaXQtcGxheWJhY2suYw0KQEAgLTI0NTksNiArMjQ1OSwxMCBA QCBpbnZva2VfZHJpdmVyIChjb25zdCBjaGFyICpjdHh0X3Byb2duYW1lLA0K ICAgaWYgKDApDQogICAgIEFERF9BUkcgKCItdiIpOw0KIA0KKyAgLyogQWRk IGFueSB1c2VyLXByb3ZpZGVkIGRyaXZlciBleHRyYSBvcHRpb25zLiAgKi8N CisNCisgIG1fcmVjb3JkaW5nX2N0eHQtPmFwcGVuZF9kcml2ZXJfb3B0aW9u cyAoJmFyZ3ZlYyk7DQorDQogI3VuZGVmIEFERF9BUkcNCiANCiAgIC8qIHBl eF9vbmUncyBlcnJvci1oYW5kbGluZyByZXF1aXJlcyBwbmFtZSB0byBiZSBu b24tTlVMTC4gICovDQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcmVjb3Jk aW5nLmMgYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuYw0KaW5kZXggMDRjYzZh Ni4uOGZmZDBkNCAxMDA2NDQNCi0tLSBhL2djYy9qaXQvaml0LXJlY29yZGlu Zy5jDQorKysgYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuYw0KQEAgLTYxNiw2 ICs2MTYsOCBAQCByZWNvcmRpbmc6OmNvbnRleHQ6On5jb250ZXh0ICgpDQog ICBjaGFyICpvcHRuYW1lOw0KICAgRk9SX0VBQ0hfVkVDX0VMVCAobV9jb21t YW5kX2xpbmVfb3B0aW9ucywgaSwgb3B0bmFtZSkNCiAgICAgZnJlZSAob3B0 bmFtZSk7DQorICBGT1JfRUFDSF9WRUNfRUxUIChtX2RyaXZlcl9vcHRpb25z LCBpLCBvcHRuYW1lKQ0KKyAgICBmcmVlIChvcHRuYW1lKTsNCiANCiAgIGlm IChtX2J1aWx0aW5zX21hbmFnZXIpDQogICAgIGRlbGV0ZSBtX2J1aWx0aW5z X21hbmFnZXI7DQpAQCAtMTMwNyw2ICsxMzA5LDMxIEBAIHJlY29yZGluZzo6 Y29udGV4dDo6YXBwZW5kX2NvbW1hbmRfbGluZV9vcHRpb25zICh2ZWMgPGNo YXIgKj4gKmFyZ3ZlYykNCiAgICAgYXJndmVjLT5zYWZlX3B1c2ggKHhzdHJk dXAgKG9wdG5hbWUpKTsNCiB9DQogDQorLyogQWRkIHRoZSBnaXZlbiBvcHRu YW1lIHRvIHRoaXMgY29udGV4dCdzIGxpc3Qgb2YgZXh0cmEgZHJpdmVyIG9w dGlvbnMuICAqLw0KKw0KK3ZvaWQNCityZWNvcmRpbmc6OmNvbnRleHQ6OmFk ZF9kcml2ZXJfb3B0aW9uIChjb25zdCBjaGFyICpvcHRuYW1lKQ0KK3sNCisg IG1fZHJpdmVyX29wdGlvbnMuc2FmZV9wdXNoICh4c3RyZHVwIChvcHRuYW1l KSk7DQorfQ0KKw0KKy8qIEFkZCBhbnkgdXNlci1wcm92aWRlZCBkcml2ZXIg b3B0aW9ucywgc3RhcnRpbmcgd2l0aCBhbnkgZnJvbQ0KKyAgIHBhcmVudCBj b250ZXh0cy4NCisgICBDYWxsZWQgYnkgcGxheWJhY2s6OmNvbnRleHQ6Omlu dm9rZV9kcml2ZXIuICAqLw0KKw0KK3ZvaWQNCityZWNvcmRpbmc6OmNvbnRl eHQ6OmFwcGVuZF9kcml2ZXJfb3B0aW9ucyAoYXV0b19zdHJpbmdfdmVjICph cmd2ZWMpDQorew0KKyAgaWYgKG1fcGFyZW50X2N0eHQpDQorICAgIG1fcGFy ZW50X2N0eHQtPmFwcGVuZF9kcml2ZXJfb3B0aW9ucyAoYXJndmVjKTsNCisN CisgIGludCBpOw0KKyAgY2hhciAqb3B0bmFtZTsNCisNCisgIEZPUl9FQUNI X1ZFQ19FTFQgKG1fZHJpdmVyX29wdGlvbnMsIGksIG9wdG5hbWUpDQorICAg IGFyZ3ZlYy0+c2FmZV9wdXNoICh4c3RyZHVwIChvcHRuYW1lKSk7DQorfQ0K Kw0KIC8qIEFkZCB0aGUgZ2l2ZW4gZHVtcG5hbWUvb3V0X3B0ciBwYWlyIHRv IHRoaXMgY29udGV4dCdzIGxpc3Qgb2YgcmVxdWVzdGVkDQogICAgZHVtcHMu DQogDQpAQCAtMTc5OSw2ICsxODI2LDE3IEBAIHJlY29yZGluZzo6Y29udGV4 dDo6ZHVtcF9yZXByb2R1Y2VyX3RvX2ZpbGUgKGNvbnN0IGNoYXIgKnBhdGgp DQogCQkgICAgIG9wdG5hbWUpOw0KIAl9DQogDQorICAgICAgaWYgKCFtX2Ry aXZlcl9vcHRpb25zLmlzX2VtcHR5ICgpKQ0KKwl7DQorCSAgaW50IGk7DQor CSAgY2hhciAqb3B0bmFtZTsNCisJICByLndyaXRlICgiICAvKiBVc2VyLXBy b3ZpZGVkIGRyaXZlciBvcHRpb25zLiAgKi9cbiIpOw0KKwkgIEZPUl9FQUNI X1ZFQ19FTFQgKG1fZHJpdmVyX29wdGlvbnMsIGksIG9wdG5hbWUpDQorCSAg ICByLndyaXRlICgiICBnY2Nfaml0X2NvbnRleHRfYWRkX2RyaXZlcl9vcHRp b24gKCVzLCBcIiVzXCIpO1xuIiwNCisJCSAgICAgci5nZXRfaWRlbnRpZmll ciAoY29udGV4dHNbY3R4dF9pZHhdKSwNCisJCSAgICAgb3B0bmFtZSk7DQor CX0NCisNCiAgICAgICBpZiAobV9yZXF1ZXN0ZWRfZHVtcHMubGVuZ3RoICgp KQ0KIAl7DQogCSAgci53cml0ZSAoIiAgLyogUmVxdWVzdGVkIGR1bXBzLiAg Ki9cbiIpOw0KZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXJlY29yZGluZy5o IGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgNCmluZGV4IGI5YzY1NDQuLmI5 ZjIyNTAgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaA0K KysrIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgNCkBAIC0yMTgsNiArMjE4 LDEyIEBAIHB1YmxpYzoNCiAgIGFwcGVuZF9jb21tYW5kX2xpbmVfb3B0aW9u cyAodmVjIDxjaGFyICo+ICphcmd2ZWMpOw0KIA0KICAgdm9pZA0KKyAgYWRk X2RyaXZlcl9vcHRpb24gKGNvbnN0IGNoYXIgKm9wdG5hbWUpOw0KKw0KKyAg dm9pZA0KKyAgYXBwZW5kX2RyaXZlcl9vcHRpb25zIChhdXRvX3N0cmluZ192 ZWMgKmFyZ3ZlYyk7DQorDQorICB2b2lkDQogICBlbmFibGVfZHVtcCAoY29u c3QgY2hhciAqZHVtcG5hbWUsDQogCSAgICAgICBjaGFyICoqb3V0X3B0cik7 DQogDQpAQCAtMzE3LDYgKzMyMyw3IEBAIHByaXZhdGU6DQogICBib29sIG1f Ym9vbF9vcHRpb25zW0dDQ19KSVRfTlVNX0JPT0xfT1BUSU9OU107DQogICBi b29sIG1faW5uZXJfYm9vbF9vcHRpb25zW05VTV9JTk5FUl9CT09MX09QVElP TlNdOw0KICAgYXV0b192ZWMgPGNoYXIgKj4gbV9jb21tYW5kX2xpbmVfb3B0 aW9uczsNCisgIGF1dG9fdmVjIDxjaGFyICo+IG1fZHJpdmVyX29wdGlvbnM7 DQogDQogICAvKiBEdW1wZmlsZXMgdGhhdCB3ZXJlIHJlcXVlc3RlZCB2aWEg Z2NjX2ppdF9jb250ZXh0X2VuYWJsZV9kdW1wLiAgKi8NCiAgIGF1dG9fdmVj PHJlcXVlc3RlZF9kdW1wPiBtX3JlcXVlc3RlZF9kdW1wczsNCmRpZmYgLS1n aXQgYS9nY2Mvaml0L2xpYmdjY2ppdCsrLmggYi9nY2Mvaml0L2xpYmdjY2pp dCsrLmgNCmluZGV4IDVjMmJkMmQuLjU1YWViY2EgMTAwNjQ0DQotLS0gYS9n Y2Mvaml0L2xpYmdjY2ppdCsrLmgNCisrKyBiL2djYy9qaXQvbGliZ2Njaml0 KysuaA0KQEAgLTEyNyw2ICsxMjcsNyBAQCBuYW1lc3BhY2UgZ2Njaml0DQog ICAgIHZvaWQgc2V0X2Jvb2xfdXNlX2V4dGVybmFsX2RyaXZlciAoaW50IGJv b2xfdmFsdWUpOw0KIA0KICAgICB2b2lkIGFkZF9jb21tYW5kX2xpbmVfb3B0 aW9uIChjb25zdCBjaGFyICpvcHRuYW1lKTsNCisgICAgdm9pZCBhZGRfZHJp dmVyX29wdGlvbiAoY29uc3QgY2hhciAqb3B0bmFtZSk7DQogDQogICAgIHZv aWQgc2V0X3RpbWVyIChnY2NqaXQ6OnRpbWVyIHQpOw0KICAgICBnY2NqaXQ6 OnRpbWVyIGdldF90aW1lciAoKSBjb25zdDsNCkBAIC02ODcsNiArNjg4LDEy IEBAIGNvbnRleHQ6OmFkZF9jb21tYW5kX2xpbmVfb3B0aW9uIChjb25zdCBj aGFyICpvcHRuYW1lKQ0KIH0NCiANCiBpbmxpbmUgdm9pZA0KK2NvbnRleHQ6 OmFkZF9kcml2ZXJfb3B0aW9uIChjb25zdCBjaGFyICpvcHRuYW1lKQ0KK3sN CisgIGdjY19qaXRfY29udGV4dF9hZGRfZHJpdmVyX29wdGlvbiAobV9pbm5l cl9jdHh0LCBvcHRuYW1lKTsNCit9DQorDQoraW5saW5lIHZvaWQNCiBjb250 ZXh0OjpzZXRfdGltZXIgKGdjY2ppdDo6dGltZXIgdCkNCiB7DQogICBnY2Nf aml0X2NvbnRleHRfc2V0X3RpbWVyIChtX2lubmVyX2N0eHQsIHQuZ2V0X2lu bmVyX3RpbWVyICgpKTsNCmRpZmYgLS1naXQgYS9nY2Mvaml0L2xpYmdjY2pp dC5jIGIvZ2NjL2ppdC9saWJnY2NqaXQuYw0KaW5kZXggZGU3ZmIyNS4uZTRm MTdmOCAxMDA2NDQNCi0tLSBhL2djYy9qaXQvbGliZ2Njaml0LmMNCisrKyBi L2djYy9qaXQvbGliZ2Njaml0LmMNCkBAIC0yNjQ0LDYgKzI2NDQsMjUgQEAg Z2NjX2ppdF9jb250ZXh0X2FkZF9jb21tYW5kX2xpbmVfb3B0aW9uIChnY2Nf aml0X2NvbnRleHQgKmN0eHQsDQogDQogLyogUHVibGljIGVudHJ5cG9pbnQu ICBTZWUgZGVzY3JpcHRpb24gaW4gbGliZ2Njaml0LmguDQogDQorICAgVGhl IHJlYWwgd29yayBpcyBkb25lIGJ5IHRoZQ0KKyAgIGdjYzo6aml0OjpyZWNv cmRpbmc6OmNvbnRleHQ6OmFkZF9kcml2ZXJfb3B0aW9uIG1ldGhvZCBpbg0K KyAgIGppdC1yZWNvcmRpbmcuYy4gICovDQorDQordm9pZA0KK2djY19qaXRf Y29udGV4dF9hZGRfZHJpdmVyX29wdGlvbiAoZ2NjX2ppdF9jb250ZXh0ICpj dHh0LA0KKwkJCQkgICBjb25zdCBjaGFyICpvcHRuYW1lKQ0KK3sNCisgIFJF VFVSTl9JRl9GQUlMIChjdHh0LCBOVUxMLCBOVUxMLCAiTlVMTCBjb250ZXh0 Iik7DQorICBKSVRfTE9HX0ZVTkMgKGN0eHQtPmdldF9sb2dnZXIgKCkpOw0K KyAgUkVUVVJOX0lGX0ZBSUwgKG9wdG5hbWUsIGN0eHQsIE5VTEwsICJOVUxM IG9wdG5hbWUiKTsNCisgIGlmIChjdHh0LT5nZXRfbG9nZ2VyICgpKQ0KKyAg ICBjdHh0LT5nZXRfbG9nZ2VyICgpLT5sb2cgKCJvcHRuYW1lOiAlcyIsIG9w dG5hbWUpOw0KKw0KKyAgY3R4dC0+YWRkX2RyaXZlcl9vcHRpb24gKG9wdG5h bWUpOw0KK30NCisNCisvKiBQdWJsaWMgZW50cnlwb2ludC4gIFNlZSBkZXNj cmlwdGlvbiBpbiBsaWJnY2NqaXQuaC4NCisNCiAgICBBZnRlciBlcnJvci1j aGVja2luZywgdGhlIHJlYWwgd29yayBpcyBkb25lIGJ5IHRoZQ0KICAgIGdj Yzo6aml0OjpyZWNvcmRpbmc6OmNvbnRleHQ6OmVuYWJsZV9kdW1wIG1ldGhv ZCBpbg0KICAgIGppdC1yZWNvcmRpbmcuYy4gICovDQpkaWZmIC0tZ2l0IGEv Z2NjL2ppdC9saWJnY2NqaXQuaCBiL2djYy9qaXQvbGliZ2Njaml0LmgNCmlu ZGV4IGU4NzJhZTcuLmJlZWI3NDcgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2xp YmdjY2ppdC5oDQorKysgYi9nY2Mvaml0L2xpYmdjY2ppdC5oDQpAQCAtMzI1 LDYgKzMyNSwyOCBAQCBnY2Nfaml0X2NvbnRleHRfYWRkX2NvbW1hbmRfbGlu ZV9vcHRpb24gKGdjY19qaXRfY29udGV4dCAqY3R4dCwNCiANCiAjZGVmaW5l IExJQkdDQ0pJVF9IQVZFX2djY19qaXRfY29udGV4dF9hZGRfY29tbWFuZF9s aW5lX29wdGlvbg0KIA0KKy8qIEFkZCBhbiBhcmJpdHJhcnkgZ2NjIGRyaXZl ciBvcHRpb24gdG8gdGhlIGNvbnRleHQuDQorICAgVGhlIGNvbnRleHQgdGFr ZXMgYSBjb3B5IG9mIHRoZSBzdHJpbmcsIHNvIHRoZQ0KKyAgIChjb25zdCBj aGFyICopIG9wdG5hbWUgaXMgbm90IG5lZWRlZCBhbnltb3JlIGFmdGVyIHRo ZSBjYWxsDQorICAgcmV0dXJucy4NCisNCisgICBOb3RlIHRoYXQgb25seSBz b21lIG9wdGlvbnMgYXJlIGxpa2VseSB0byBiZSBtZWFuaW5nZnVsOyB0aGVy ZSBpcyBubw0KKyAgICJmcm9udGVuZCIgd2l0aGluIGxpYmdjY2ppdCwgc28g dHlwaWNhbGx5IG9ubHkgdGhvc2UgYWZmZWN0aW5nDQorICAgYXNzZW1ibGVy IGFuZCBsaW5rZXIgYXJlIGxpa2VseSB0byBiZSB1c2VmdWwuDQorDQorICAg VGhpcyBlbnRyeXBvaW50IHdhcyBhZGRlZCBpbiBMSUJHQ0NKSVRfQUJJXzEx OyB5b3UgY2FuIHRlc3QgZm9yDQorICAgaXRzIHByZXNlbmNlIHVzaW5nDQor ICAgI2lmZGVmIExJQkdDQ0pJVF9IQVZFX2djY19qaXRfY29udGV4dF9hZGRf ZHJpdmVyX29wdGlvbg0KKyovDQorZXh0ZXJuIHZvaWQNCitnY2Nfaml0X2Nv bnRleHRfYWRkX2RyaXZlcl9vcHRpb24gKGdjY19qaXRfY29udGV4dCAqY3R4 dCwNCisJCQkJICAgY29uc3QgY2hhciAqb3B0bmFtZSk7DQorDQorLyogUHJl LWNhbm5lZCBmZWF0dXJlLXRlc3QgbWFjcm8gZm9yIGRldGVjdGluZyB0aGUg cHJlc2VuY2Ugb2YNCisgICBnY2Nfaml0X2NvbnRleHRfYWRkX2RyaXZlcl9v cHRpb24gd2l0aGluIGxpYmdjY2ppdC5oLiAgKi8NCisNCisjZGVmaW5lIExJ QkdDQ0pJVF9IQVZFX2djY19qaXRfY29udGV4dF9hZGRfZHJpdmVyX29wdGlv bg0KKw0KIC8qIENvbXBpbGUgdGhlIGNvbnRleHQgdG8gaW4tbWVtb3J5IG1h Y2hpbmUgY29kZS4NCiANCiAgICBUaGlzIGNhbiBiZSBjYWxsZWQgbW9yZSB0 aGF0IG9uY2Ugb24gYSBnaXZlbiBjb250ZXh0LA0KZGlmZiAtLWdpdCBhL2dj Yy9qaXQvbGliZ2Njaml0Lm1hcCBiL2djYy9qaXQvbGliZ2Njaml0Lm1hcA0K aW5kZXggMjgyNmYxYy4uMTZmNTI1MyAxMDA2NDQNCi0tLSBhL2djYy9qaXQv bGliZ2Njaml0Lm1hcA0KKysrIGIvZ2NjL2ppdC9saWJnY2NqaXQubWFwDQpA QCAtMTcwLDMgKzE3MCw4IEBAIExJQkdDQ0pJVF9BQklfMTAgew0KICAgZ2xv YmFsOg0KICAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3Zl Y3RvcjsNCiB9IExJQkdDQ0pJVF9BQklfOTsNCisNCitMSUJHQ0NKSVRfQUJJ XzExIHsNCisgIGdsb2JhbDoNCisgICAgZ2NjX2ppdF9jb250ZXh0X2FkZF9k cml2ZXJfb3B0aW9uOw0KK30gTElCR0NDSklUX0FCSV8xMDsNClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvaml0LmRnL2FkZC1kcml2ZXItb3B0aW9ucy10ZXN0bGliLmMgYi9nY2Mv dGVzdHN1aXRlL2ppdC5kZy9hZGQtZHJpdmVyLW9wdGlvbnMtdGVzdGxpYi5j DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uMTc1N2Ji MQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcv YWRkLWRyaXZlci1vcHRpb25zLXRlc3RsaWIuYw0KQEAgLTAsMCArMSw2IEBA DQorLyogVXNlZCBieSB0ZXN0LWFkZC1kcml2ZXItb3B0aW9ucy5jICovDQor DQorZXh0ZXJuIGludCBjYWxsZWVfZnVuY3Rpb24gKHZvaWQpDQorew0KKyAg cmV0dXJuIDE5Nzg7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv aml0LmRnL2FsbC1ub24tZmFpbGluZy10ZXN0cy5oIGIvZ2NjL3Rlc3RzdWl0 ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmgNCmluZGV4IGJmMDJl MTIuLjlhMTA0MTggMTAwNjQ0DQotLS0gYS9nY2MvdGVzdHN1aXRlL2ppdC5k Zy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmgNCkBAIC0yMiw2ICsy Miw5IEBADQogI3VuZGVmIGNyZWF0ZV9jb2RlDQogI3VuZGVmIHZlcmlmeV9j b2RlDQogDQorLyogdGVzdC1hZGQtZHJpdmVyLW9wdGlvbnMuYzogV2UgZG9u J3QgdXNlIHRoaXMgb25lLCBzaW5jZSB0aGUgZXh0cmEgb3B0aW9ucw0KKyAg IGFmZmVjdCB0aGUgd2hvbGUgY29udGV4dC4gICovDQorDQogLyogdGVzdC1h bGlnbm1lbnQuYyAqLw0KICNkZWZpbmUgY3JlYXRlX2NvZGUgY3JlYXRlX2Nv ZGVfYWxpZ25tZW50DQogI2RlZmluZSB2ZXJpZnlfY29kZSB2ZXJpZnlfY29k ZV9hbGlnbm1lbnQNCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2ppdC5k Zy9qaXQuZXhwIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvaml0LmV4cA0KaW5k ZXggODY5ZDlmNi4uMTNlOGFiNCAxMDA2NDQNCi0tLSBhL2djYy90ZXN0c3Vp dGUvaml0LmRnL2ppdC5leHANCisrKyBiL2djYy90ZXN0c3VpdGUvaml0LmRn L2ppdC5leHANCkBAIC0zNzksNiArMzc5LDE5IEBAIHByb2Mgaml0LWRnLXRl c3QgeyBwcm9nIGRvX3doYXQgZXh0cmFfdG9vbF9mbGFncyB9IHsNCiAJYXBw ZW5kIGV4dHJhX3Rvb2xfZmxhZ3MgIiAtbHB0aHJlYWQiDQogICAgIH0NCiAN CisgICAgIyB0ZXN0LWFkZC1kcml2ZXItb3B0aW9ucy5jIG5lZWRzIGEgc2hh cmVkIGxpYnJhcnkgYnVpbHQgZnJvbQ0KKyAgICAjIGFkZC1kcml2ZXItb3B0 aW9ucy10ZXN0bGliLmMNCisgICAgaWYge1tzdHJpbmcgbWF0Y2ggIip0ZXN0 LWFkZC1kcml2ZXItb3B0aW9ucy5jIiAkcHJvZ119IHsNCisJZ2xvYmFsIHNy Y2Rpcg0KKwlnbG9iYWwgc3ViZGlyDQorDQorCXNldCBjb21wX291dHB1dCBb Z2NjX3RhcmdldF9jb21waWxlIFwNCisJCQkgICAgICRzcmNkaXIvJHN1YmRp ci9hZGQtZHJpdmVyLW9wdGlvbnMtdGVzdGxpYi5jIFwNCisJCQkgICAgICJs aWJhZGQtZHJpdmVyLW9wdGlvbnMtdGVzdGxpYi5zbyIgXA0KKwkJCSAgICAg ImV4ZWN1dGFibGUiIFwNCisJCQkgICAgICJhZGRpdGlvbmFsX2ZsYWdzPS1m UElDIGFkZGl0aW9uYWxfZmxhZ3M9LXNoYXJlZCJdDQorICAgIH0NCisNCiAg ICAgIyBBbnkgdGVzdCBjYXNlIHRoYXQgdXNlcyBqaXQtdmVyaWZ5LW91dHB1 dC1maWxlLXdhcy1jcmVhdGVkDQogICAgICMgbmVlZHMgdG8gY2FsbCBqaXQt c2V0dXAtY29tcGlsZS10by1maWxlIGhlcmUuDQogICAgICMgKGlzIHRoZXJl IGEgYmV0dGVyIHdheSB0byBoYW5kbGUgc2V0dXAvZmluaXNoIHBhaXJzIGlu IGRnPykNCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0 LWFkZC1kcml2ZXItb3B0aW9ucy5jIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcv dGVzdC1hZGQtZHJpdmVyLW9wdGlvbnMuYw0KbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCmluZGV4IDAwMDAwMDAuLjc0YWMxNjgNCi0tLSAvZGV2L251bGwNCisr KyBiL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtYWRkLWRyaXZlci1vcHRp b25zLmMNCkBAIC0wLDAgKzEsNjggQEANCisjaW5jbHVkZSA8c3RkaW8uaD4N CisjaW5jbHVkZSA8c3RkbGliLmg+DQorDQorI2luY2x1ZGUgImxpYmdjY2pp dC5oIg0KKyNpbmNsdWRlICJoYXJuZXNzLmgiDQorDQorI2lmbmRlZiBMSUJH Q0NKSVRfSEFWRV9nY2Nfaml0X2NvbnRleHRfYWRkX2RyaXZlcl9vcHRpb24N CisjZXJyb3IgTElCR0NDSklUX0hBVkVfZ2NjX2ppdF9jb250ZXh0X2FkZF9k cml2ZXJfb3B0aW9uIHdhcyBub3QgZGVmaW5lZA0KKyNlbmRpZg0KKw0KK3Zv aWQNCitjcmVhdGVfY29kZSAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LCB2b2lk ICp1c2VyX2RhdGEpDQorew0KKw0KKyAgZ2NjX2ppdF9jb250ZXh0X2FkZF9k cml2ZXJfb3B0aW9uIChjdHh0LCAiLUwuLyIpOw0KKyAgZ2NjX2ppdF9jb250 ZXh0X2FkZF9kcml2ZXJfb3B0aW9uIChjdHh0LCAiLWxhZGQtZHJpdmVyLW9w dGlvbnMtdGVzdGxpYiIpOw0KKw0KKyAgLyogTGV0J3MgdHJ5IHRvIGluamVj dCB0aGUgZXF1aXZhbGVudCBvZjoNCisNCisgICAgICBpbnQgY2FsbGVyX2Z1 bmN0aW9uICh2b2lkKQ0KKyAgICAgIHsNCisgICAgICAgIHJldHVybiBjYWxs ZWVfZnVuY3Rpb24gKCk7DQorICAgICAgfQ0KKyAgKi8NCisgIGdjY19qaXRf dHlwZSAqaW50X3R5cGUgPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfZ2V0X3R5 cGUgKGN0eHQsIEdDQ19KSVRfVFlQRV9JTlQpOw0KKw0KKyAgZ2NjX2ppdF9m dW5jdGlvbiAqY2FsbGVyX2Z1bmMgPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRf bmV3X2Z1bmN0aW9uIChjdHh0LCBOVUxMLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHQ0NfSklUX0ZVTkNUSU9OX0VYUE9SVEVELA0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRfdHlwZSwN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhbGxlcl9m dW5jdGlvbiIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDAsIE5VTEwsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDApOw0KKw0KKyAgZ2NjX2ppdF9ibG9jayAqYmxvY2sgPQ0KKyAgICBnY2Nf aml0X2Z1bmN0aW9uX25ld19ibG9jayAoY2FsbGVyX2Z1bmMsIE5VTEwpOw0K Kw0KKyAgZ2NjX2ppdF9mdW5jdGlvbiAqY2FsbGVlX2Z1bmMgPQ0KKyAgICBn Y2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0aW9uKGN0eHQsIE5VTEwsDQorCQkJ CSBHQ0NfSklUX0ZVTkNUSU9OX0lNUE9SVEVELA0KKwkJCQkgaW50X3R5cGUs DQorCQkJCSAiY2FsbGVlX2Z1bmN0aW9uIiwNCisJCQkJIDAsIE5VTEwsDQor CQkJCSAxKTsNCisNCisgIGdjY19qaXRfYmxvY2tfZW5kX3dpdGhfcmV0dXJu IChibG9jaywgTlVMTCwNCisJCQkJIGdjY19qaXRfY29udGV4dF9uZXdfY2Fs bChjdHh0LA0KKwkJCQkJCQkgIE5VTEwsDQorCQkJCQkJCSAgY2FsbGVlX2Z1 bmMsDQorCQkJCQkJCSAgMCwNCisJCQkJCQkJICAwKSk7DQorfQ0KKw0KK3Zv aWQNCit2ZXJpZnlfY29kZSAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nf aml0X3Jlc3VsdCAqcmVzdWx0KQ0KK3sNCisgIHR5cGVkZWYgaW50ICgqbXlf Y2FsbGVyX2ZuX3R5cGUpICh2b2lkKTsNCisNCisgIENIRUNLX05PTl9OVUxM IChyZXN1bHQpOw0KKyAgbXlfY2FsbGVyX2ZuX3R5cGUgY2FsbGVlX2Z1bmN0 aW9uX3B0ciA9DQorICAgIChteV9jYWxsZXJfZm5fdHlwZSlnY2Nfaml0X3Jl c3VsdF9nZXRfY29kZSAocmVzdWx0LCAiY2FsbGVlX2Z1bmN0aW9uIik7DQor ICBDSEVDS19OT05fTlVMTCAoY2FsbGVlX2Z1bmN0aW9uX3B0cik7DQorDQor ICBpbnQgcmVzID0gY2FsbGVlX2Z1bmN0aW9uX3B0ciAoKTsNCisNCisgIENI RUNLX1ZBTFVFIChyZXMsIDE5NzgpOw0KK30NCg== --_002_gkrtvi2csjjfsfarmcom_--