From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2079.outbound.protection.outlook.com [40.107.92.79]) by sourceware.org (Postfix) with ESMTPS id 30B153858D1E for ; Fri, 28 Jan 2022 07:50:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 30B153858D1E ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eQZuDrdojMD5CPJdUzdREQrBxUSno9rXCnAgomlMiKBpv5H2EEGH1AqM8kUcoa4LDCVf+iYcLR1GNAaDY0+XcpGTekmnAxeZySFASy1jSMzNia9CaLI4LuRc0mMs4wjtGRwwIdK7vj2XijKqD309Fvt7607msm7Fg+M8fNu6dokMBq+alsUsBQHMAn//xDlWVRe2m+UO2bFk3gTuKJdf8/LNlQv9+aM6Vv95MOyn1ozM6OUFYdJ2D+3wXF8gBuq6pp9lFp39HHvtk678I23rocT8WYrDlAOvkkzR/i4Kmfqq/APGqRr9/YSPpXNCi+RCFIL8xSnQzsAgRI1iaoheuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=N/KpLUQQI4fpEfQtbeoE3HR50e/Qm+Kv9U55IGZQCgk=; b=BFyFlgCDHmMjf5m6j0oRsh2hMbp51amFstwJHz3m3lLSbKaX4r4dT/ZcWfAp7KXrWo0d7/2IBylMBMUnt6BPyRAFqIlg5CM0RJkQHjqrct5e7hZVHmn2uSK0Szo2Y1NMhX+5wnECE89qhFA37j3lRB/yo9NHBD0A2WvdVqVw2kZfmmbrjtVAR14Z29m308h6Tp3nhrFc0QGiLOJxwgsuZubMUFA8sqc3r94gCo5KWG0pLPJhup8p3ez7snMDsbqFB4XbTxrXQmqs31o7DYUUG039ueW8DT2NmcpgekLyPClpnc0V1UMXverRoFUPAXdHwztxTDvtDbro9+ruFnAz3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from DM6PR12MB4219.namprd12.prod.outlook.com (2603:10b6:5:217::14) by DM5PR12MB1290.namprd12.prod.outlook.com (2603:10b6:3:74::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.15; Fri, 28 Jan 2022 07:49:55 +0000 Received: from DM6PR12MB4219.namprd12.prod.outlook.com ([fe80::d00b:6025:369d:455a]) by DM6PR12MB4219.namprd12.prod.outlook.com ([fe80::d00b:6025:369d:455a%4]) with mapi id 15.20.4930.018; Fri, 28 Jan 2022 07:49:55 +0000 From: "Potharla, Rupesh" To: Andrew Burgess CC: "gdb-patches@sourceware.org" , "Achra, Nitika" , "Kaushik, Sharang" , "Natarajan, Kavitha" , "E, Nagajyothi" , "Kumar N, Bhuvanendra" , "George, Jini Susan" , "Parasuraman, Hariharan" , "Sharma, Alok Kumar" , "Balasubrmanian, Vignesh" Subject: RE: [PATCH] Support for Fortran's ASSUMED RANK Thread-Topic: [PATCH] Support for Fortran's ASSUMED RANK Thread-Index: AdgNXQtM8LEGEAevRfiMoU/ZVB5CwwBnQxuAAUOl9cA= Date: Fri, 28 Jan 2022 07:49:54 +0000 Message-ID: References: <20220121190711.GM622389@redhat.com> In-Reply-To: <20220121190711.GM622389@redhat.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Enabled=true; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_SetDate=2022-01-28T05:34:14Z; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Method=Standard; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Name=AMD Official Use Only-AIP 2.0; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_ActionId=3f44f996-ed6e-4437-a786-0c0f98f74752; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_ContentBits=1 msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_enabled: true msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_setdate: 2022-01-28T07:49:49Z msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_method: Standard msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_name: AMD Official Use Only-AIP 2.0 msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_siteid: 3dd8961f-e488-4e60-8e11-a82d994e183d msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_actionid: adf75672-8293-41da-875a-d1644e8e1cb2 msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_contentbits: 0 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e9b5f866-e22a-4b78-c422-08d9e232c62b x-ms-traffictypediagnostic: DM5PR12MB1290:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2276; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: iEsZH6Tf8tqgWTWvbd/YhaIhDylOgkv/QcqEBhLQCYylJAgUv3tVmlUXQhqXL72FDR4f4B5LMjNNkdpq0jV06hlLqvh9M9GOkjFw2XePZvpN/XW66IcUCgX5vJIGLH3iAxxvp6eRdcFVlqHueFJD1U9A0yvO+iubQQUv7rfyvE7pG9+XHC30zUpvK1lGYG+77K1gKMPcL4Bwg1uuZrqkbuWxHXUrL24XTMIG6fvWtb9O+yvPCQheF+mGWVe/bKAN8OrV50AZR8QS1mxr6E0qj6n5Kqu4hcBqhuzppX8tdLkO9cIDASvmPICDuXCU4A6mO9+4pOFxnSO76D9xI8r8V9WwIH6GViKYNbTO8mGK6Hxr2rEzk84Fhetxcm4WJAU+FTU5YtP58U8tl2JHzNc+peqmBypptybNx54AWAOO6PnmxERAWkJTil+Dfp0F9YYjGn3KhvUNeP/hjnzRNIUjYyrqHC6Ifl39nmvC5dm6qxbt0cI8PM75DT4lnoLwhZfy14RcOYf/6JrMt+8nhuDCC3K/pL2KLNkj/TbFmtCEV5+1HAr1UbhHOt/S1mHsPi2qUKTIsevLqeaSR64U0kWfAHBH2wZ5xsJKwSLpH/b6d/sHu4alplBpBqFWX2JGBfwacv7BOXghfjLPoAXi5HIJ7ig+3iZqOQurVolNRNzRKO9EmagP6TZ7ijbosMZMk+eDAm862SkgBEkKi9Ej9MmFdMTy6lapypNmG2+Ymx6uQ5oa7sry+ikbR2fHv5/oKMqiR+vQGmJeCwTB9ts2slVMmURsMseLQccjRQ4P2LZQQtblXfzM9ax6nE/e9TTRZ6SnUCW1gmy3j1jp3o7P1kJPpKMKiKrv1HtMEF67XTEBewU= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB4219.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(9686003)(53546011)(52536014)(76116006)(2906002)(66946007)(6506007)(7696005)(5660300002)(508600001)(55016003)(966005)(71200400001)(66556008)(54906003)(38070700005)(122000001)(316002)(4326008)(33656002)(6916009)(26005)(83380400001)(8936002)(66476007)(66446008)(64756008)(8676002)(38100700002)(86362001)(186003)(99936003)(2004002)(20210929001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?cxYLU1VYg0Nm+H0oUZPRVbRF/peQgjqCcS+PTMOcy6M/MKe6Mmz12mp71b4B?= =?us-ascii?Q?KKEoz8y83xY5Rcl3e5agRrmXgREG518YZFmc3j3Iny9ULvfCj+mxh9OvFm6t?= =?us-ascii?Q?PNyEVpsxvY6Zxi4JUBIXhk8yX54X0tbFZCviWkAgnFJlKZMOEGWA0Zi/jQPx?= =?us-ascii?Q?32a0IlP+hboVcLrNUxaKQzZqqeXOlZKGZVL154g3fFifk0PZDVTQrQEqg8cT?= =?us-ascii?Q?d7Nk4VbwSY9y1ubAejkGk8yiv4v6iSlMXQhopkHAAqX3gTjWDYeBFnl21jnv?= =?us-ascii?Q?8G9pVWzMvZxYT7x4Ua0uAtZXxqolHj/mIGpvX8Nk34z/tqd9AUiD4WE17y9f?= =?us-ascii?Q?7re72mwUpxF7VFey674l9VJyOU1vw64/4Kk0gfMUkdEdsS+kJoST1XWkoSjb?= =?us-ascii?Q?9e14CgvwQJsp4JDk5pgFRGIKX17tnGn4cKv2wQ6YyWR3k56XXktwmRf9WwZ8?= =?us-ascii?Q?VfABd4a/0qvrkg46lS0owPhmznahZ075OIqY5+1hF7oddtXWKG//cDEeOFlF?= =?us-ascii?Q?G0OFq7W6UgHE4kzUmeki37K31KuyEdmAujQwKEfCfpdcN60EZlukxZEIm+WY?= =?us-ascii?Q?Ps0LY2QtPvVmHdAJLbVc3ujyrCvQLuBXjsO5jHyxbtlqjLTyjZIaEO3ko0Ki?= =?us-ascii?Q?qDK66Cf+Tcl/rl+XYAMo+1AuKz84yGVZZqN7P2Q68oWyqC0AJ+idEaItjQMi?= =?us-ascii?Q?IgDPbjVJckJlA2EmKsop5+Vu9WeI74XiIsSYwuHWqhED3+2NjNIKQsLoDqyf?= =?us-ascii?Q?qF41LRF/Cv4rBOdL3uzgOqHCMBwEuLWPjQ7Blp7/3aj0eu8YB6/ilMsnDHHf?= =?us-ascii?Q?UjKbLtnOCRUWbrClEVm1Sx7n9pJpWIZzKOGYq0iST/zuWI06C1PdetJF86o8?= =?us-ascii?Q?/VYPNj7RC+wMEjAGydRrH+jTd2zMRk8BmpTNyxmst8Z+HR5q/laMuIzHIjWS?= =?us-ascii?Q?LkJlUVbINZnhe+PVhOmBDj+w8C0H/yb+lIRpYH9E7ABkVjfhwL12ghzqs/Ft?= =?us-ascii?Q?Okzkc7rUjgngeRtr5iNPOk+4H4hxgx356VJney1i+TjLAhWACgBIb8S7Tvov?= =?us-ascii?Q?Ctkd+Kxm58t4UQIfn5FrsTUijaX0qLzlcH6qhs4wdH1Hzo+GvyjlCZENg6wF?= =?us-ascii?Q?4A5MPJMGxDFJMlv2T2MWJiQQfDSq7rBQGax28xFYIAg+1XeQ16Eajm+HNhgd?= =?us-ascii?Q?zpIPJ9tgR3aZx6eGL3Rjg5Za0421+VFgm1Pwq2jgM2MPBgVlaP+MnKr+ETKE?= =?us-ascii?Q?3qQR11usCjXU2kZbuWLIfIoBN4Ji7btiRwZ0Q9vw1gyb8cgEupbo1pslF5ZC?= =?us-ascii?Q?ZYHshsz4cu7U3Pq4Dr3gauaSBF37UXBad7/p0nmwv1a/419x+MzDhdqcG2rj?= =?us-ascii?Q?okNIxII23cb/wcsLgm1Hv0VVte/0WXqbgvpneCF7kwl2HDL5kTuQYvC0hnBv?= =?us-ascii?Q?UpwSW7StIC2Akm5nMrlfea5i6X+tB7RevjSXqxwjsycSa1BegUC1/ZMMpP+W?= =?us-ascii?Q?+yz2+048/cEeFPvUHi3m7CRgcSlO1FE7YPtjLslToqi/JNlX2isJ9dneJz28?= =?us-ascii?Q?+KygbISj1sjVkZw7hgHMyiuImTH7BziSacDXUQZ1/xF20jdHMIaIGDTjMG23?= =?us-ascii?Q?SQLI4iqTGer4q/U6NAHrWMw=3D?= Content-Type: multipart/mixed; boundary="_002_DM6PR12MB42192C4A128CFA28A3DE35D7E7229DM6PR12MB4219namp_" MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB4219.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e9b5f866-e22a-4b78-c422-08d9e232c62b X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jan 2022 07:49:54.9541 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ndy1VPYRE/4OWCfN/zLgn05hWG16YSC6ombkux+dMGSzHDqo1Xm46vCHhTW2lIfRdmgh1Wd6T5rFQRHVFQZppQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1290 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Jan 2022 07:50:04 -0000 --_002_DM6PR12MB42192C4A128CFA28A3DE35D7E7229DM6PR12MB4219namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only] Hi Andrew,=20 Request to review the attached patch file and please find comments inline b= elow ... Regards, Rupesh P > -----Original Message----- > From: Andrew Burgess > Sent: Saturday, January 22, 2022 12:37 AM > > Compiler Version: > > gcc (GCC) 12.0.0 20211122 (experimental) >=20 > I guess this must be something that was fixed recently, I tried with the = 9.3 > compiler I have locally and the tests failed. I also tried with some ran= dom > build from git from early last year, and that also failed. >=20 > Ideally the tests wont just fail when using older tools, but instead the = test will > detect that my compiler isn't good enough and just skip the tests, so you > might need to try with some older compilers. >=20 The complete support for assumed rank is recently added in gcc. https://gcc= .gnu.org/bugzilla/show_bug.cgi?id=3D103315 . Made changes in the testcase f= or skipping the testcase run for older compilers. =20 >=20 > > From 383c561a1e926b7b65a1d8ffb5d70a047a4d4559 Mon Sep 17 00:00:00 > 2001 > > From: rupesh > > Date: Fri, 29 Oct 2021 11:32:58 +0530 > > Subject: [PATCH] Support for Fortran's ASSUMED RANK. > > > > gdb/ChangeLog: > > > > * dwarf2/loc.c: (dwarf2_locexpr_baton_eval): Push array dimension > onto the stack. > > * dwarf2/loc.h: Added an additional parameter to the function > dwarf2_evaluate_property. > > * dwarf2/read.c: (scan_partial_symbols): Process > DW_TAG_generic_subrange. > > * (add_partial_symbol): Process DW_TAG_generic_subrange. > > * (process_die): Process DW_TAG_generic_subrange. > > * (is_type_tag_for_partial) : Check for DW_TAG_generic_subrange t= ype. > > * (load_partial_dies): Load DW_TAG_generic_subrange. > > * (new_symbol): Create entry for DW_TAG_generic_subrange type. > > * (read_type_die_1): Read DW_TAG_generic_subrange type. > > * (set_die_type) : Add dynamic property type for DW_AT_rank. > > * f-typeprint.c: (f_type_print_varspec_suffix): Removed > TYPE_DATA_LOCATION. > > * findvar.c: (follow_static_link): Passing new argument to the fu= nction > call dwarf2_evaluate_property. > > * gdbtypes.c: (resolve_dynamic_range): Passing new argument to th= e > function call dwarf2_evaluate_property. > > * (resolve_dynamic_array_or_string): Handle rank dynamic property= by > creating and removing types. > > * gdbtypes.h: (DYN_PROP_RANK, TYPE_DYN_PROP, TYPE_RANK_PROP): > New Macros > > * gnu-v3-abi.c: Passing new argument to the function call > dwarf2_evaluate_property. > > * testsuite/gdb.fortran/assumedrank.exp: New Testcase > > * testsuite/gdb.fortran/assumedrank.f90: New Testcase >=20 > ChangeLog entries are no longer needed for GDB, though you are welcome > to have content like this in the commit message if you like. That said, = the > preference in GDB is to have the commit described within the main body of > the commit message - a ChangeLog formatted block should be in addition. >=20 > You should still keep the lines under ~76ish characters though. Added commit message describing the main body of the commit message. And al= so kept lines under ~76ish. =20 > > diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c index > > 182f15e7077..60f831c2cff 100644 > > --- a/gdb/dwarf2/loc.c > > +++ b/gdb/dwarf2/loc.c > > @@ -1547,7 +1547,8 @@ dwarf2_locexpr_baton_eval (const struct > dwarf2_locexpr_baton *dlbaton, > > const struct property_addr_info *addr_stack, > > CORE_ADDR *valp, > > bool push_initial_value, > > - bool *is_reference) > > + bool *is_reference, > > + int rank) > > { > > if (dlbaton =3D=3D NULL || dlbaton->size =3D=3D 0) > > return 0; > > @@ -1559,6 +1560,10 @@ dwarf2_locexpr_baton_eval (const struct > dwarf2_locexpr_baton *dlbaton, > > value *result; > > scoped_value_mark free_values; > > > > + /* push rank value to the stack */ > > + if (rank) > > + ctx.push_address((rank - 1), false); > > + >=20 > I wonder, did you consider making use of the push_initial_value mechanism= ? > I considered accommodating changes using push_initial_value mechanism. Th= e push_initial_value is pushing address to the stack the requirement is to = push scalar value onto the stack. So I could not make use of this mechanism= .=20 =20 > > if (push_initial_value) > > { > > if (addr_stack !=3D nullptr) > > diff --git a/gdb/testsuite/gdb.fortran/assumedrank.exp > > b/gdb/testsuite/gdb.fortran/assumedrank.exp > > new file mode 100644 > > index 00000000000..e3961d00278 > > --- /dev/null > > +++ b/gdb/testsuite/gdb.fortran/assumedrank.exp > > @@ -0,0 +1,79 @@ > > +# Copyright 2021 Free Software Foundation, Inc. > > + > > +# This program is free software; you can redistribute it and/or > > +modify # it under the terms of the GNU General Public License as > > +published by # the Free Software Foundation; either version 3 of the > > +License, or # (at your option) any later version. > > +# > > +# This program is distributed in the hope that it will be useful, # > > +but WITHOUT ANY WARRANTY; without even the implied warranty of # > > +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # > GNU > > +General Public License for more details. > > +# > > +# You should have received a copy of the GNU General Public License # > > +along with this program. If not, see > w.gnu.org%2Flicenses%2F&data=3D04%7C01%7Crupesh.potharla%40amd > .com%7Cc481b41f3aa843656da008d9dd113ffe%7C3dd8961fe4884e608e11a > 82d994e183d%7C0%7C0%7C637783888447831759%7CUnknown%7CTWFpbG > Zsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6 > Mn0%3D%7C3000&sdata=3Dqcvs2DAFdVDL3s7Evqm5v6cr8%2FzI1WZ%2B > Htvf1Mq39XA%3D&reserved=3D0> . > > + > > +# Testing GDB's implementation of ASSUMED RANK. > > + > > +if {[skip_fortran_tests]} { return -1 } > > + > > +standard_testfile ".f90" > > +load_lib fortran.exp > > + > > +if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \ > > + {debug f90}]} { >=20 > In your commit message you made use of the -dwarf-5 flag. Is that requir= ed? > I was surprised that this flag doesn't appear here. > There's a couple of tests where we pass 'additional_flags=3D-gdwarf-5', b= ut you > might only need to do this if the compiler is gfortran, and maybe for > particular versions? >=20 Added 'additional_flags=3D-gdwarf-5' for gfortran for versions >=3D11 in t= he testcase. > I'll try to take a detailed look through next week. >=20 > Thanks, > Andrew --_002_DM6PR12MB42192C4A128CFA28A3DE35D7E7229DM6PR12MB4219namp_ Content-Type: application/octet-stream; name="0001-Support-for-Fortran-s-ASSUMED-RANK.patch" Content-Description: 0001-Support-for-Fortran-s-ASSUMED-RANK.patch Content-Disposition: attachment; filename="0001-Support-for-Fortran-s-ASSUMED-RANK.patch"; size=22518; creation-date="Fri, 28 Jan 2022 07:34:34 GMT"; modification-date="Fri, 28 Jan 2022 07:49:53 GMT" Content-Transfer-Encoding: base64 RnJvbSBjYTZhN2U2ZmQwOTAzM2JhNDQwMWVkZGQyOTkxZDAyNTg4MmU3OGIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBydXBlc2ggPHJ1cGVzaC5wb3RoYXJsYUBhbWQuY29tPgpEYXRl OiBGcmksIDI5IE9jdCAyMDIxIDExOjMyOjU4ICswNTMwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9y dCBmb3IgRm9ydHJhbidzIEFTU1VNRUQgUkFOSy4KClRoaXMgcGF0Y2ggcmVhZHMgYXNzdW1lZCBy YW5rIGFycmF5IHJhbmsgdmFsdWUgdXNpbmcgcmFuayBhdHRyaWJ1dGUgYW5kCnN0b3JlcyB0aGUg ZGltZW5zaW9ucyBpbiBhIGR5bmFtaWMgcHJvcGVydHkgbGlzdCBvZiBtYWluX3R5cGUuIENyZWF0 ZXMKdHlwZXMgYmFzZWQgb24gdGhlIHJhbmsgdmFsdWUgc3RvcmVzIGFuZCBsaW5rIHRoZW0gdG8g dGhlIG1haW5fdHlwZS4KClRoZSBwYXRjaCBwdXNoZXMgYXJyYXkgZGVzY3JpcHRvciBvbnRvIHRo ZSBzdGFjayBhbmQgZXZhbHVhdGVzIHRoZSBnZW5lcmljCnN1YnJhbmdlIHRhZyB0byBnZXQgYXJy YXkgZGltZW5zaW9ucy4KClRoZSBwdXJwb3NlIG9mIHRoZSBwYXRjaCBpcyB0byBwcmludCByYW5r LCB0eXBlIGFuZCB2YWx1ZXMgb2YgYXNzdW1lZCByYW5rIGFycmF5cy4KClRlc3RjYXNlIHVzZWQ6 CgpQUk9HUkFNIGFyYW5rCgpSRUFMIDo6IGExKDEwKQoKQ0FMTCBzdWIxKGExKQoKQ09OVEFJTlMK U1VCUk9VVElORSBzdWIxKGEpClJFQUwgOjogYSguLikKUFJJTlQgKiwgUkFOSyhhKQpFTkQKRU5E CgpDb21waWxlciBWZXJzaW9uOgpnY2MgKEdDQykgMTIuMC4wIDIwMjExMTIyIChleHBlcmltZW50 YWwpCgpDb21waWxhdGlvbiBjb21tYW5kOgpnZm9ydHJhbiBhc3N1bWVkcmFuay5mOTAgLWdkd2Fy Zi01IC1vIGFzc3VtZWRyYW5rCgpXaXRob3V0IFBhdGNoOgoKZ2RiIC1xIGFzc3VtZWRyYW5rClJl YWRpbmcgc3ltYm9scyBmcm9tIGFzc3VtZWRyYW5rLi4uCihnZGIpIGJyIHN1YjEKQnJlYWtwb2lu dCAxIGF0IDB4NDAwNmZmOiBmaWxlIGFzc3VtZWRyYW5rLmY5MCwgbGluZSAxMC4KKGdkYikgcgpT dGFydGluZyBwcm9ncmFtOiAvaG9tZS9ydXBlc2gvU1RBR0lORy1CVUlMRC0yNzg3L2Jpbi9hc3N1 bWVkcmFuawoKQnJlYWtwb2ludCAxLCBhcmFuazo6c3ViMSAoYT08dW5rbm93biB0eXBlIGluIC9o b21lL3J1cGVzaC9TVEFHSU5HLUJVSUxELTI3ODcKL2Jpbi9hc3N1bWVkcmFuaywgQ1UgMHgwLCBE SUUgMHhkNT4pIGF0IGFzc3VtZWRyYW5rLmY5MDoxMAoxMCAgICAgICBQUklOVCAqLCBSQU5LKGEp CihnZGIpIHAgUkFOSyhhKQonYScgaGFzIHVua25vd24gdHlwZTsgY2FzdCBpdCB0byBpdHMgZGVj bGFyZWQgdHlwZQoKV2l0aCBwYXRjaCA6CmdkYiAtcSBhc3N1bWVkcmFuawpSZWFkaW5nIHN5bWJv bHMgZnJvbSBhc3N1bWVkcmFuay4uLgooZ2RiKSBiciBzdWIxCkJyZWFrcG9pbnQgMSBhdCAweDQw MDZmZjogZmlsZSBhc3N1bWVkcmFuay5mOTAsIGxpbmUgMTAuCihnZGIpIHIKU3RhcnRpbmcgcHJv Z3JhbTogL2hvbWUvcnVwZXNoL1NUQUdJTkctQlVJTEQtMjc4Ny9iaW4vYXNzdW1lZHJhbmsKCkJy ZWFrcG9pbnQgMSwgYXJhbms6OnN1YjEgKGE9Li4uKSBhdCBhc3N1bWVkcmFuay5mOTA6MTAKMTAg ICAgICAgUFJJTlQgKiwgUkFOSyhhKQooZ2RiKSBwIFJBTksoYSkKJDEgPSAxCihnZGIpIHB0eXBl IGEKdHlwZSA9IHJlYWwoa2luZD00KSAoMTApCihnZGIpCgpnZGIvQ2hhbmdlTG9nOgoKCSogZHdh cmYyL2xvYy5jOiAoZHdhcmYyX2xvY2V4cHJfYmF0b25fZXZhbCk6IFB1c2ggYXJyYXkgZGltZW5z aW9uCgkgIG9udG8gdGhlIHN0YWNrLgoJKiBkd2FyZjIvbG9jLmg6IEFkZGVkIGFuIGFkZGl0aW9u YWwgcGFyYW1ldGVyIHRvIHRoZSBmdW5jdGlvbgoJICBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHku CgkqIGR3YXJmMi9yZWFkLmM6IChzY2FuX3BhcnRpYWxfc3ltYm9scyk6IFByb2Nlc3MKCSAgRFdf VEFHX2dlbmVyaWNfc3VicmFuZ2UuCgkqIChhZGRfcGFydGlhbF9zeW1ib2wpOiBQcm9jZXNzIERX X1RBR19nZW5lcmljX3N1YnJhbmdlLgoJKiAocHJvY2Vzc19kaWUpOiBQcm9jZXNzIERXX1RBR19n ZW5lcmljX3N1YnJhbmdlLgoJKiAoaXNfdHlwZV90YWdfZm9yX3BhcnRpYWwpIDogQ2hlY2sgZm9y IERXX1RBR19nZW5lcmljX3N1YnJhbmdlCgkgIHR5cGUuCgkqIChsb2FkX3BhcnRpYWxfZGllcyk6 IExvYWQgRFdfVEFHX2dlbmVyaWNfc3VicmFuZ2UuCgkqIChuZXdfc3ltYm9sKTogQ3JlYXRlIGVu dHJ5IGZvciBEV19UQUdfZ2VuZXJpY19zdWJyYW5nZSB0eXBlLgoJKiAocmVhZF90eXBlX2RpZV8x KTogUmVhZCBEV19UQUdfZ2VuZXJpY19zdWJyYW5nZSB0eXBlLgoJKiAoc2V0X2RpZV90eXBlKSA6 IEFkZCBkeW5hbWljIHByb3BlcnR5IHR5cGUgZm9yIERXX0FUX3JhbmsuCgkqIGYtdHlwZXByaW50 LmM6IChmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXgpOiBSZW1vdmVkCgkgIFRZUEVfREFUQV9M T0NBVElPTi4KCSogZmluZHZhci5jOiAoZm9sbG93X3N0YXRpY19saW5rKTogUGFzc2luZyBuZXcg YXJndW1lbnQgdG8gdGhlCgkgIGZ1bmN0aW9uIGNhbGwgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5 LgoJKiBnZGJ0eXBlcy5jOiAocmVzb2x2ZV9keW5hbWljX3JhbmdlKTogUGFzc2luZyBuZXcgYXJn dW1lbnQgdG8gdGhlCgkgIGZ1bmN0aW9uIGNhbGwgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5LgoJ KiAocmVzb2x2ZV9keW5hbWljX2FycmF5X29yX3N0cmluZyk6IEhhbmRsZSByYW5rIGR5bmFtaWMg cHJvcGVydHkKCSAgYnkgY3JlYXRpbmcgYW5kIHJlbW92aW5nIHR5cGVzLgoJKiBnZGJ0eXBlcy5o OiAoRFlOX1BST1BfUkFOSywgVFlQRV9EWU5fUFJPUCwgVFlQRV9SQU5LX1BST1ApOgoJICBOZXcg TWFjcm9zCgkqIGdudS12My1hYmkuYzogUGFzc2luZyBuZXcgYXJndW1lbnQgdG8gdGhlIGZ1bmN0 aW9uIGNhbGwKCSAgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5LgoJKiB0ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vYXNzdW1lZHJhbmsuZXhwOiBOZXcgVGVzdGNhc2UKCSogdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL2Fzc3VtZWRyYW5rLmY5MDogTmV3IFRlc3RjYXNlCi0tLQogZ2RiL2R3YXJmMi9sb2MuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKy0KIGdkYi9kd2FyZjIvbG9jLmggICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDQgKysKIGdkYi9kd2FyZjIvcmVhZC5jICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTkgKysrKy0KIGdkYi9mLXR5cGVwcmludC5jICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDQgKy0KIGdkYi9maW5kdmFyLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGdkYi9nZGJ0eXBlcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg NTkgKysrKysrKysrKysrKy0tLQogZ2RiL2dkYnR5cGVzLmggICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgNyArKwogZ2RiL2dudS12My1hYmkuYyAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQogZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hc3N1bWVkcmFuay5leHAgfCA4NSAr KysrKysrKysrKysrKysrKysrKysrKwogZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hc3N1bWVk cmFuay5mOTAgfCA0MiArKysrKysrKysrKwogMTAgZmlsZXMgY2hhbmdlZCwgMjE1IGluc2VydGlv bnMoKyksIDE5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vYXNzdW1lZHJhbmsuZXhwCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9hc3N1bWVkcmFuay5mOTAKCmRpZmYgLS1naXQgYS9nZGIvZHdhcmYy L2xvYy5jIGIvZ2RiL2R3YXJmMi9sb2MuYwppbmRleCAxODJmMTVlNzA3Ny4uNjBmODMxYzJjZmYg MTAwNjQ0Ci0tLSBhL2dkYi9kd2FyZjIvbG9jLmMKKysrIGIvZ2RiL2R3YXJmMi9sb2MuYwpAQCAt MTU0Nyw3ICsxNTQ3LDggQEAgZHdhcmYyX2xvY2V4cHJfYmF0b25fZXZhbCAoY29uc3Qgc3RydWN0 IGR3YXJmMl9sb2NleHByX2JhdG9uICpkbGJhdG9uLAogCQkJICAgY29uc3Qgc3RydWN0IHByb3Bl cnR5X2FkZHJfaW5mbyAqYWRkcl9zdGFjaywKIAkJCSAgIENPUkVfQUREUiAqdmFscCwKIAkJCSAg IGJvb2wgcHVzaF9pbml0aWFsX3ZhbHVlLAotCQkJICAgYm9vbCAqaXNfcmVmZXJlbmNlKQorCQkJ ICAgYm9vbCAqaXNfcmVmZXJlbmNlLAorCQkJICAgaW50IHJhbmspCiB7CiAgIGlmIChkbGJhdG9u ID09IE5VTEwgfHwgZGxiYXRvbi0+c2l6ZSA9PSAwKQogICAgIHJldHVybiAwOwpAQCAtMTU1OSw2 ICsxNTYwLDEwIEBAIGR3YXJmMl9sb2NleHByX2JhdG9uX2V2YWwgKGNvbnN0IHN0cnVjdCBkd2Fy ZjJfbG9jZXhwcl9iYXRvbiAqZGxiYXRvbiwKICAgdmFsdWUgKnJlc3VsdDsKICAgc2NvcGVkX3Zh bHVlX21hcmsgZnJlZV92YWx1ZXM7CiAKKyAgLyogcHVzaCByYW5rIHZhbHVlIHRvIHRoZSBzdGFj ayAqLworICBpZiAocmFuaykKKyAgICAgY3R4LnB1c2hfYWRkcmVzcygocmFuayAtIDEpLCBmYWxz ZSk7CisKICAgaWYgKHB1c2hfaW5pdGlhbF92YWx1ZSkKICAgICB7CiAgICAgICBpZiAoYWRkcl9z dGFjayAhPSBudWxscHRyKQpAQCAtMTYxMSw2ICsxNjE2LDcgQEAgZHdhcmYyX2V2YWx1YXRlX3By b3BlcnR5IChjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLAogCQkJICBzdHJ1Y3QgZnJh bWVfaW5mbyAqZnJhbWUsCiAJCQkgIGNvbnN0IHN0cnVjdCBwcm9wZXJ0eV9hZGRyX2luZm8gKmFk ZHJfc3RhY2ssCiAJCQkgIENPUkVfQUREUiAqdmFsdWUsCisJCQkgIGludCByYW5rLAogCQkJICBi b29sIHB1c2hfaW5pdGlhbF92YWx1ZSkKIHsKICAgaWYgKHByb3AgPT0gTlVMTCkKQEAgLTE2Mjks NyArMTYzNSw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3RydWN0IGR5bmFt aWNfcHJvcCAqcHJvcCwKIAogCWJvb2wgaXNfcmVmZXJlbmNlID0gYmF0b24tPmxvY2V4cHIuaXNf cmVmZXJlbmNlOwogCWlmIChkd2FyZjJfbG9jZXhwcl9iYXRvbl9ldmFsICgmYmF0b24tPmxvY2V4 cHIsIGZyYW1lLCBhZGRyX3N0YWNrLAotCQkJCSAgICAgICB2YWx1ZSwgcHVzaF9pbml0aWFsX3Zh bHVlLCAmaXNfcmVmZXJlbmNlKSkKKwkJCQkgICAgICAgdmFsdWUsIHB1c2hfaW5pdGlhbF92YWx1 ZSwgJmlzX3JlZmVyZW5jZSwgcmFuaykpCiAJICB7CiAJICAgIGlmIChpc19yZWZlcmVuY2UpCiAJ ICAgICAgewpkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMi9sb2MuaCBiL2dkYi9kd2FyZjIvbG9jLmgK aW5kZXggNWZmMDYxYmI0YjYuLjY2YjM1ODc2ZGExIDEwMDY0NAotLS0gYS9nZGIvZHdhcmYyL2xv Yy5oCisrKyBiL2dkYi9kd2FyZjIvbG9jLmgKQEAgLTExNCw2ICsxMTQsOSBAQCBzdHJ1Y3QgcHJv cGVydHlfYWRkcl9pbmZvCiAgICBSZXR1cm5zIHRydWUgaWYgUFJPUCBjb3VsZCBiZSBjb252ZXJ0 ZWQgYW5kIHRoZSBzdGF0aWMgdmFsdWUgaXMgcGFzc2VkCiAgICBiYWNrIGludG8gVkFMVUUsIG90 aGVyd2lzZSByZXR1cm5zIGZhbHNlLgogCisgICByYW5rIGlzIHB1c2hlZCBvbiB0byB0aGUgc3Rh Y2sgYmVmb3JlIGV2YWx1YXRpbmcgYXNzdW1lZCByYW5rIGFycmF5CisgICBkaW1lbnNpb25zLgor CiAgICBJZiBQVVNIX0lOSVRJQUxfVkFMVUUgaXMgdHJ1ZSwgdGhlbiB0aGUgdG9wIHZhbHVlIG9m IEFERFJfU1RBQ0sKICAgIHdpbGwgYmUgcHVzaGVkIGJlZm9yZSBldmFsdWF0aW5nIGEgbG9jYXRp b24gZXhwcmVzc2lvbi4gICovCiAKQEAgLTEyMSw2ICsxMjQsNyBAQCBib29sIGR3YXJmMl9ldmFs dWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKIAkJCSAgICAg ICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCiAJCQkgICAgICAgY29uc3Qgc3RydWN0IHByb3Bl cnR5X2FkZHJfaW5mbyAqYWRkcl9zdGFjaywKIAkJCSAgICAgICBDT1JFX0FERFIgKnZhbHVlLAor CQkJICAgICAgIGludCByYW5rLAogCQkJICAgICAgIGJvb2wgcHVzaF9pbml0aWFsX3ZhbHVlID0g ZmFsc2UpOwogCiAvKiBBIGhlbHBlciBmb3IgdGhlIGNvbXBpbGVyIGludGVyZmFjZSB0aGF0IGNv bXBpbGVzIGEgc2luZ2xlIGR5bmFtaWMKZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjIvcmVhZC5jIGIv Z2RiL2R3YXJmMi9yZWFkLmMKaW5kZXggZjJkN2RhN2RlNTIuLjA1ZTFiYzljNmMyIDEwMDY0NAot LS0gYS9nZGIvZHdhcmYyL3JlYWQuYworKysgYi9nZGIvZHdhcmYyL3JlYWQuYwpAQCAtNzY5NCw2 ICs3Njk0LDcgQEAgc2Nhbl9wYXJ0aWFsX3N5bWJvbHMgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZv ICpmaXJzdF9kaWUsIENPUkVfQUREUiAqbG93cGMsCiAJCWFkZF9wYXJ0aWFsX2VudW1lcmF0aW9u IChwZGksIGN1KTsKIAkgICAgICBicmVhazsKIAkgICAgY2FzZSBEV19UQUdfYmFzZV90eXBlOgor CSAgICBjYXNlIERXX1RBR19nZW5lcmljX3N1YnJhbmdlOgogCSAgICBjYXNlIERXX1RBR19zdWJy YW5nZV90eXBlOgogCSAgICAgIC8qIEZpbGUgc2NvcGUgYmFzZSB0eXBlIGRlZmluaXRpb25zIGFy ZSBhZGRlZCB0byB0aGUgcGFydGlhbAogCQkgc3ltYm9sIHRhYmxlLiAgKi8KQEAgLTgwMjAsNiAr ODAyMSw3IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBk aSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgY2FzZSBEV19UQUdfdHlwZWRlZjoKICAgICBj YXNlIERXX1RBR19iYXNlX3R5cGU6CiAgICAgY2FzZSBEV19UQUdfc3VicmFuZ2VfdHlwZToKKyAg ICBjYXNlIERXX1RBR19nZW5lcmljX3N1YnJhbmdlOgogICAgICAgcHN5bWJvbC5kb21haW4gPSBW QVJfRE9NQUlOOwogICAgICAgcHN5bWJvbC5hY2xhc3MgPSBMT0NfVFlQRURFRjsKICAgICAgIHdo ZXJlID0gcHN5bWJvbF9wbGFjZW1lbnQ6OlNUQVRJQzsKQEAgLTk3MjEsNiArOTcyMyw3IEBAIHBy b2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAg ICAgICAvKiBGQUxMVEhST1VHSCAqLwogICAgIGNhc2UgRFdfVEFHX2Jhc2VfdHlwZToKICAgICBj YXNlIERXX1RBR19zdWJyYW5nZV90eXBlOgorICAgIGNhc2UgRFdfVEFHX2dlbmVyaWNfc3VicmFu Z2U6CiAgICAgY2FzZSBEV19UQUdfdHlwZWRlZjoKICAgICAgIC8qIEFkZCBhIHR5cGVkZWYgc3lt Ym9sIGZvciB0aGUgdHlwZSBkZWZpbml0aW9uLCBpZiBpdCBoYXMgYQogCSBEV19BVF9uYW1lLiAg Ki8KQEAgLTE2NjEyLDcgKzE2NjE1LDggQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgIGNoaWxkX2RpZSA9IGRpZS0+Y2hpbGQ7 CiAgIHdoaWxlIChjaGlsZF9kaWUgJiYgY2hpbGRfZGllLT50YWcpCiAgICAgewotICAgICAgaWYg KGNoaWxkX2RpZS0+dGFnID09IERXX1RBR19zdWJyYW5nZV90eXBlKQorICAgICAgaWYgKGNoaWxk X2RpZS0+dGFnID09IERXX1RBR19zdWJyYW5nZV90eXBlCisgICAgICAgICAgfHwgY2hpbGRfZGll LT50YWcgPT0gRFdfVEFHX2dlbmVyaWNfc3VicmFuZ2UpCiAJewogCSAgc3RydWN0IHR5cGUgKmNo aWxkX3R5cGUgPSByZWFkX3R5cGVfZGllIChjaGlsZF9kaWUsIGN1KTsKIApAQCAtMTg5MzQsNiAr MTg5MzgsNyBAQCBpc190eXBlX3RhZ19mb3JfcGFydGlhbCAoaW50IHRhZywgZW51bSBsYW5ndWFn ZSBsYW5nKQogICAgIGNhc2UgRFdfVEFHX2VudW1lcmF0aW9uX3R5cGU6CiAgICAgY2FzZSBEV19U QUdfc3RydWN0dXJlX3R5cGU6CiAgICAgY2FzZSBEV19UQUdfc3VicmFuZ2VfdHlwZToKKyAgICBj YXNlIERXX1RBR19nZW5lcmljX3N1YnJhbmdlOgogICAgIGNhc2UgRFdfVEFHX3R5cGVkZWY6CiAg ICAgY2FzZSBEV19UQUdfdW5pb25fdHlwZToKICAgICAgIHJldHVybiAxOwpAQCAtMTkwNjcsNiAr MTkwNzIsNyBAQCBsb2FkX3BhcnRpYWxfZGllcyAoY29uc3Qgc3RydWN0IGRpZV9yZWFkZXJfc3Bl Y3MgKnJlYWRlciwKIAkgICYmICgocGRpLnRhZyA9PSBEV19UQUdfdHlwZWRlZiAmJiAhcGRpLmhh c19jaGlsZHJlbikKIAkgICAgICB8fCBwZGkudGFnID09IERXX1RBR19iYXNlX3R5cGUKIAkgICAg ICB8fCBwZGkudGFnID09IERXX1RBR19hcnJheV90eXBlCisJICAgICAgfHwgcGRpLnRhZyA9PSBE V19UQUdfZ2VuZXJpY19zdWJyYW5nZQogCSAgICAgIHx8IHBkaS50YWcgPT0gRFdfVEFHX3N1YnJh bmdlX3R5cGUpKQogCXsKIAkgIGlmIChidWlsZGluZ19wc3ltdGFiICYmIHBkaS5yYXdfbmFtZSAh PSBOVUxMKQpAQCAtMjE5ODksNiArMjE5OTUsNyBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LAogCWNhc2Ug RFdfVEFHX2FycmF5X3R5cGU6CiAJY2FzZSBEV19UQUdfYmFzZV90eXBlOgogCWNhc2UgRFdfVEFH X3N1YnJhbmdlX3R5cGU6CisJY2FzZSBEV19UQUdfZ2VuZXJpY19zdWJyYW5nZToKIAkgIFNZTUJP TF9BQ0xBU1NfSU5ERVggKHN5bSkgPSBMT0NfVFlQRURFRjsKIAkgIFNZTUJPTF9ET01BSU4gKHN5 bSkgPSBWQVJfRE9NQUlOOwogCSAgbGlzdF90b19hZGQgPSBjdS0+bGlzdF9pbl9zY29wZTsKQEAg LTIyNDgyLDYgKzIyNDg5LDcgQEAgcmVhZF90eXBlX2RpZV8xIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgY2FzZSBEV19UQUdfdHlwZWRlZjoKICAgICAg IHRoaXNfdHlwZSA9IHJlYWRfdHlwZWRlZiAoZGllLCBjdSk7CiAgICAgICBicmVhazsKKyAgICBj YXNlIERXX1RBR19nZW5lcmljX3N1YnJhbmdlOgogICAgIGNhc2UgRFdfVEFHX3N1YnJhbmdlX3R5 cGU6CiAgICAgICB0aGlzX3R5cGUgPSByZWFkX3N1YnJhbmdlX3R5cGUgKGRpZSwgY3UpOwogICAg ICAgYnJlYWs7CkBAIC0yNDc2Nyw2ICsyNDc3NSwxNSBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UsCiAJ dHlwZS0+YWRkX2R5bl9wcm9wIChEWU5fUFJPUF9BU1NPQ0lBVEVELCBwcm9wKTsKICAgICB9CiAK KyAgLyogUmVhZCBEV19BVF9yYW5rIGFuZCBzZXQgaW4gdHlwZSAqLworICBhdHRyID0gZHdhcmYy X2F0dHIgKGRpZSwgRFdfQVRfcmFuaywgY3UpOworICBpZiAoYXR0ciAhPSBOVUxMKQorICAgIHsK KyAgICAgIHN0cnVjdCB0eXBlICpwcm9wX3R5cGUgPSBjdS0+YWRkcl9zaXplZF9pbnRfdHlwZSAo ZmFsc2UpOworICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAm cHJvcCwgcHJvcF90eXBlKSkKKwl0eXBlLT5hZGRfZHluX3Byb3AgKERZTl9QUk9QX1JBTkssIHBy b3ApOworICAgIH0KKwogICAvKiBSZWFkIERXX0FUX2RhdGFfbG9jYXRpb24gYW5kIHNldCBpbiB0 eXBlLiAgKi8KICAgaWYgKCFza2lwX2RhdGFfbG9jYXRpb24pCiAgICAgewpkaWZmIC0tZ2l0IGEv Z2RiL2YtdHlwZXByaW50LmMgYi9nZGIvZi10eXBlcHJpbnQuYwppbmRleCAxNzkxY2IyOTQ1MS4u OTU1MDBlOTMwYmEgMTAwNjQ0Ci0tLSBhL2dkYi9mLXR5cGVwcmludC5jCisrKyBiL2dkYi9mLXR5 cGVwcmludC5jCkBAIC0xNzcsOSArMTc3LDcgQEAgZl9sYW5ndWFnZTo6Zl90eXBlX3ByaW50X3Zh cnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAgICAgIGVsc2UgaWYgKChUWVBFX0FT U09DSUFURURfUFJPUCAodHlwZSkKIAkJJiYgUFJPUF9DT05TVCAhPSBUWVBFX0FTU09DSUFURURf UFJPUCAodHlwZSktPmtpbmQgKCkpCiAJICAgICAgIHx8IChUWVBFX0FMTE9DQVRFRF9QUk9QICh0 eXBlKQotCQkgICAmJiBQUk9QX0NPTlNUICE9IFRZUEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpLT5r aW5kICgpKQotCSAgICAgICB8fCAoVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKQotCQkgICAmJiBQ Uk9QX0NPTlNUICE9IFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSktPmtpbmQgKCkpKQorCQkgICAm JiBQUk9QX0NPTlNUICE9IFRZUEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpLT5raW5kICgpKSkKIAl7 CiAJICAvKiBUaGlzIGNhc2UgZXhpc3Qgd2hlbiB3ZSBwdHlwZSBhIHR5cGVuYW1lIHdoaWNoIGhh cyB0aGUgZHluYW1pYwogCSAgICAgcHJvcGVydGllcyBidXQgY2Fubm90IGJlIHJlc29sdmVkIGFz IHRoZXJlIGlzIG5vIG9iamVjdC4gICovCmRpZmYgLS1naXQgYS9nZGIvZmluZHZhci5jIGIvZ2Ri L2ZpbmR2YXIuYwppbmRleCBhMDAzMWQyZGFkZC4uYTFjMjUzMjNiYzYgMTAwNjQ0Ci0tLSBhL2dk Yi9maW5kdmFyLmMKKysrIGIvZ2RiL2ZpbmR2YXIuYwpAQCAtNDQwLDcgKzQ0MCw3IEBAIGZvbGxv d19zdGF0aWNfbGluayAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAogewogICBDT1JFX0FERFIg dXBwZXJfZnJhbWVfYmFzZTsKIAotICBpZiAoIWR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoc3Rh dGljX2xpbmssIGZyYW1lLCBOVUxMLCAmdXBwZXJfZnJhbWVfYmFzZSkpCisgIGlmICghZHdhcmYy X2V2YWx1YXRlX3Byb3BlcnR5IChzdGF0aWNfbGluaywgZnJhbWUsIE5VTEwsICAmdXBwZXJfZnJh bWVfYmFzZSwgMCkpCiAgICAgcmV0dXJuIE5VTEw7CiAKICAgLyogTm93IGNsaW1iIHVwIHRoZSBz dGFjayBmcmFtZSB1bnRpbCB3ZSByZWFjaCB0aGUgZnJhbWUgd2UgYXJlIGludGVyZXN0ZWQKZGlm ZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKaW5kZXggMDA5MzRkOWE0 YmMuLjIyN2I3YWYyYzFiIDEwMDY0NAotLS0gYS9nZGIvZ2RidHlwZXMuYworKysgYi9nZGIvZ2Ri dHlwZXMuYwpAQCAtMjE5Niw2ICsyMTk2LDcgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpyZXNvbHZl X2R5bmFtaWNfdHlwZV9pbnRlcm5hbAogc3RhdGljIHN0cnVjdCB0eXBlICoKIHJlc29sdmVfZHlu YW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5bl9yYW5nZV90eXBlLAogCQkgICAgICAgc3RydWN0 IHByb3BlcnR5X2FkZHJfaW5mbyAqYWRkcl9zdGFjaywKKwkJICAgICAgIGludCBjdXJyX3Jhbmss CiAJCSAgICAgICBib29sIHJlc29sdmVfcCA9IHRydWUpCiB7CiAgIENPUkVfQUREUiB2YWx1ZTsK QEAgLTIyMDUsMTMgKzIyMDYsMTMgQEAgcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlw ZSAqZHluX3JhbmdlX3R5cGUsCiAgIGdkYl9hc3NlcnQgKGR5bl9yYW5nZV90eXBlLT5jb2RlICgp ID09IFRZUEVfQ09ERV9SQU5HRSk7CiAKICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJv cCA9ICZkeW5fcmFuZ2VfdHlwZS0+Ym91bmRzICgpLT5sb3c7Ci0gIGlmIChyZXNvbHZlX3AgJiYg ZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBOVUxMLCBhZGRyX3N0YWNrLCAmdmFsdWUp KQorICBpZiAocmVzb2x2ZV9wICYmIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgTlVM TCwgYWRkcl9zdGFjaywgJnZhbHVlLCBjdXJyX3JhbmspKQogICAgIGxvd19ib3VuZC5zZXRfY29u c3RfdmFsICh2YWx1ZSk7CiAgIGVsc2UKICAgICBsb3dfYm91bmQuc2V0X3VuZGVmaW5lZCAoKTsK IAogICBwcm9wID0gJmR5bl9yYW5nZV90eXBlLT5ib3VuZHMgKCktPmhpZ2g7Ci0gIGlmIChyZXNv bHZlX3AgJiYgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBOVUxMLCBhZGRyX3N0YWNr LCAmdmFsdWUpKQorICBpZiAocmVzb2x2ZV9wICYmIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAo cHJvcCwgTlVMTCwgYWRkcl9zdGFjaywgJnZhbHVlLCBjdXJyX3JhbmspKQogICAgIHsKICAgICAg IGhpZ2hfYm91bmQuc2V0X2NvbnN0X3ZhbCAodmFsdWUpOwogCkBAIC0yMjI0LDcgKzIyMjUsNyBA QCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVjdCB0eXBlICpkeW5fcmFuZ2VfdHlwZSwKIAog ICBib29sIGJ5dGVfc3RyaWRlX3AgPSBkeW5fcmFuZ2VfdHlwZS0+Ym91bmRzICgpLT5mbGFnX2lz X2J5dGVfc3RyaWRlOwogICBwcm9wID0gJmR5bl9yYW5nZV90eXBlLT5ib3VuZHMgKCktPnN0cmlk ZTsKLSAgaWYgKHJlc29sdmVfcCAmJiBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKHByb3AsIE5V TEwsIGFkZHJfc3RhY2ssICZ2YWx1ZSkpCisgIGlmIChyZXNvbHZlX3AgJiYgZHdhcmYyX2V2YWx1 YXRlX3Byb3BlcnR5IChwcm9wLCBOVUxMLCBhZGRyX3N0YWNrLCAmdmFsdWUsIGN1cnJfcmFuaykp CiAgICAgewogICAgICAgc3RyaWRlLnNldF9jb25zdF92YWwgKHZhbHVlKTsKIApAQCAtMjI3Miw4 ICsyMjczLDEyIEBAIHJlc29sdmVfZHluYW1pY19hcnJheV9vcl9zdHJpbmcgKHN0cnVjdCB0eXBl ICp0eXBlLAogICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGU7CiAgIHN0cnVjdCB0eXBlICpyYW5nZV90 eXBlOwogICBzdHJ1Y3QgdHlwZSAqYXJ5X2RpbTsKKyAgc3RydWN0IHR5cGUgKnRtcF90eXBlOwor ICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlOwogICBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9w OwogICB1bnNpZ25lZCBpbnQgYml0X3N0cmlkZSA9IDA7CisgIHVuc2lnbmVkIGludCBpOworICBz dGF0aWMgaW50IHJhbmsgPSAwOwogCiAgIC8qIEZvciBkeW5hbWljIHR5cGUgcmVzb2x1dGlvbiBz dHJpbmdzIGNhbiBiZSB0cmVhdGVkIGxpa2UgYXJyYXlzIG9mCiAgICAgIGNoYXJhY3RlcnMuICAq LwpAQCAtMjI5Myw3ICsyMjk4LDcgQEAgcmVzb2x2ZV9keW5hbWljX2FycmF5X29yX3N0cmluZyAo c3RydWN0IHR5cGUgKnR5cGUsCiAgICAgIGRpbWVuc2lvbiBvZiB0aGUgYXJyYXkuICAqLwogICBw cm9wID0gVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSk7CiAgIGlmIChwcm9wICE9IE5VTEwgJiYg cmVzb2x2ZV9wCi0gICAgICAmJiBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKHByb3AsIE5VTEws IGFkZHJfc3RhY2ssICZ2YWx1ZSkpCisgICAgICAmJiBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkg KHByb3AsIE5VTEwsIGFkZHJfc3RhY2ssICZ2YWx1ZSwgMCkpCiAgICAgewogICAgICAgcHJvcC0+ c2V0X2NvbnN0X3ZhbCAodmFsdWUpOwogICAgICAgaWYgKHZhbHVlID09IDApCkBAIC0yMzAyLDE1 ICsyMzA3LDQ3IEBAIHJlc29sdmVfZHluYW1pY19hcnJheV9vcl9zdHJpbmcgKHN0cnVjdCB0eXBl ICp0eXBlLAogCiAgIHByb3AgPSBUWVBFX0FTU09DSUFURURfUFJPUCAodHlwZSk7CiAgIGlmIChw cm9wICE9IE5VTEwgJiYgcmVzb2x2ZV9wCi0gICAgICAmJiBkd2FyZjJfZXZhbHVhdGVfcHJvcGVy dHkgKHByb3AsIE5VTEwsIGFkZHJfc3RhY2ssICZ2YWx1ZSkpCisgICAgICAmJiBkd2FyZjJfZXZh bHVhdGVfcHJvcGVydHkgKHByb3AsIE5VTEwsIGFkZHJfc3RhY2ssICZ2YWx1ZSwgMCkpCiAgICAg ewogICAgICAgcHJvcC0+c2V0X2NvbnN0X3ZhbCAodmFsdWUpOwogICAgICAgaWYgKHZhbHVlID09 IDApCiAJcmVzb2x2ZV9wID0gZmFsc2U7CiAgICAgfQogCisgIC8qIFJlc29sdmUgdGhlIHJhbmsg cHJvcGVydHkgdG8gZ2V0IHJhbmsgdmFsdWUuIElmIHJhbmsgaXMgemVybyBvciBpcyBvZgorICAg ICB2YXJpYWJsZSB0eXBlIHJlbW92ZSB0aGUgYXJyYXkgdHlwZSBmcm9tIHRoZSBsaW5rZWQgbGlz dC4gSWYgdGhlIHJhbmsKKyAgICAgaXMgZ3JlYXRlciB0aGFuIDEgYWRkIG1vcmUgYXJyYXkgdHlw ZXMgdG8gdGhlIGxpc3QgYmFzZWQgb24gcmFuayB2YWx1ZQorICAgICB0byBob2xkIG11bHRpIGRp bWVuc2lvbmFsIGFycmF5IGluZm9ybWF0aW9uLiAgICovCisgIHByb3AgPSBUWVBFX1JBTktfUFJP UCAodHlwZSk7CisgIGlmICghcmFuayAmJiBwcm9wICE9IE5VTEwgJiYgcmVzb2x2ZV9wCisgICAg ICYmICBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKHByb3AsIE5VTEwsIGFkZHJfc3RhY2ssICZ2 YWx1ZSwgMCkpCisgICAgeworICAgICAgcHJvcC0+c2V0X2NvbnN0X3ZhbCAodmFsdWUpOworICAg ICAgaWYgKHZhbHVlID09IDApCisgICAgICB7CisJcmVzb2x2ZV9wID0gZmFsc2U7CisJVFlQRV9E WU5fUFJPUChUWVBFX1RBUkdFVF9UWVBFKHR5cGUpKSA9IFRZUEVfRFlOX1BST1AodHlwZSk7CisJ dHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUodHlwZSk7CisJcmV0dXJuIHR5cGU7CisgICAgICB9Cisg ICAgICBlbHNlCisgICAgICB7CisgICAgICAgIHJhbmsgPSB2YWx1ZTsKKyAgICAgICAgdG1wX3R5 cGUgPSB0eXBlOworICAgICAgICBlbGVtZW50X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFKHRtcF90 eXBlKTsKKyAgICAgICAgZm9yIChpID0gMTsgaSA8IHJhbms7IGkrKykKKyAgICAgICAgeworICAg ICAgICAgIFRZUEVfVEFSR0VUX1RZUEUodG1wX3R5cGUpID0gY29weV90eXBlKHRtcF90eXBlKTsK KyAgICAgICAgICB0bXBfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUodG1wX3R5cGUpOworICAgICAg ICB9CisgICAgICAgIFRZUEVfVEFSR0VUX1RZUEUodG1wX3R5cGUpID0gZWxlbWVudF90eXBlOwor ICAgICAgfQorICAgIH0KKwogICByYW5nZV90eXBlID0gY2hlY2tfdHlwZWRlZiAodHlwZS0+aW5k ZXhfdHlwZSAoKSk7Ci0gIHJhbmdlX3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHJhbmdl X3R5cGUsIGFkZHJfc3RhY2ssIHJlc29sdmVfcCk7CisgIHJhbmdlX3R5cGUgPSByZXNvbHZlX2R5 bmFtaWNfcmFuZ2UgKHJhbmdlX3R5cGUsIGFkZHJfc3RhY2ssIHJhbmssIHJlc29sdmVfcCk7Cisg IGlmIChyYW5rKQorICAgIHJhbmstLTsKIAogICBhcnlfZGltID0gY2hlY2tfdHlwZWRlZiAoVFlQ RV9UQVJHRVRfVFlQRSAodHlwZSkpOwogICBpZiAoYXJ5X2RpbSAhPSBOVUxMICYmIGFyeV9kaW0t PmNvZGUgKCkgPT0gVFlQRV9DT0RFX0FSUkFZKQpAQCAtMjMyMSw3ICsyMzU4LDcgQEAgcmVzb2x2 ZV9keW5hbWljX2FycmF5X29yX3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsCiAgIHByb3AgPSB0 eXBlLT5keW5fcHJvcCAoRFlOX1BST1BfQllURV9TVFJJREUpOwogICBpZiAocHJvcCAhPSBOVUxM ICYmIHJlc29sdmVfcCkKICAgICB7Ci0gICAgICBpZiAoZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5 IChwcm9wLCBOVUxMLCBhZGRyX3N0YWNrLCAmdmFsdWUpKQorICAgICAgaWYgKGR3YXJmMl9ldmFs dWF0ZV9wcm9wZXJ0eSAocHJvcCwgTlVMTCwgYWRkcl9zdGFjaywgICZ2YWx1ZSwgMCkpCiAJewog CSAgdHlwZS0+cmVtb3ZlX2R5bl9wcm9wIChEWU5fUFJPUF9CWVRFX1NUUklERSk7CiAJICBiaXRf c3RyaWRlID0gKHVuc2lnbmVkIGludCkgKHZhbHVlICogOCk7CkBAIC0yNTk3LDcgKzI2MzQsNyBA QCByZXNvbHZlX2R5bmFtaWNfc3RydWN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwKIAkgIHByb3Auc2V0 X2xvY2V4cHIgKCZiYXRvbik7CiAKIAkgIENPUkVfQUREUiBhZGRyOwotCSAgaWYgKGR3YXJmMl9l dmFsdWF0ZV9wcm9wZXJ0eSAoJnByb3AsIG51bGxwdHIsIGFkZHJfc3RhY2ssICZhZGRyLAorCSAg aWYgKGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoJnByb3AsIG51bGxwdHIsIGFkZHJfc3RhY2ss ICZhZGRyLCAwLAogCQkJCQl0cnVlKSkKIAkgICAgcmVzb2x2ZWRfdHlwZS0+ZmllbGQgKGkpLnNl dF9sb2NfYml0cG9zCiAJICAgICAgKFRBUkdFVF9DSEFSX0JJVCAqIChhZGRyIC0gYWRkcl9zdGFj ay0+YWRkcikpOwpAQCAtMjY4Miw3ICsyNzE5LDcgQEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50 ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLAogICBnZGI6Om9wdGlvbmFsPENPUkVfQUREUj4gdHlw ZV9sZW5ndGg7CiAgIHByb3AgPSBUWVBFX0RZTkFNSUNfTEVOR1RIICh0eXBlKTsKICAgaWYgKHBy b3AgIT0gTlVMTAotICAgICAgJiYgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBOVUxM LCBhZGRyX3N0YWNrLCAmdmFsdWUpKQorICAgICAgJiYgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5 IChwcm9wLCBOVUxMLCBhZGRyX3N0YWNrLCAmdmFsdWUsIDApKQogICAgIHR5cGVfbGVuZ3RoID0g dmFsdWU7CiAKICAgaWYgKHR5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RFX1RZUEVERUYpCkBAIC0y NzI3LDcgKzI3NjQsNyBAQCByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5 cGUgKnR5cGUsCiAJICBicmVhazsKIAogCWNhc2UgVFlQRV9DT0RFX1JBTkdFOgotCSAgcmVzb2x2 ZWRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19yYW5nZSAodHlwZSwgYWRkcl9zdGFjayk7CisJICBy ZXNvbHZlZF90eXBlID0gcmVzb2x2ZV9keW5hbWljX3JhbmdlICh0eXBlLCBhZGRyX3N0YWNrLCAw KTsKIAkgIGJyZWFrOwogCiAJY2FzZSBUWVBFX0NPREVfVU5JT046CkBAIC0yNzUyLDcgKzI3ODks NyBAQCByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnR5cGUsCiAg IC8qIFJlc29sdmUgZGF0YV9sb2NhdGlvbiBhdHRyaWJ1dGUuICAqLwogICBwcm9wID0gVFlQRV9E QVRBX0xPQ0FUSU9OIChyZXNvbHZlZF90eXBlKTsKICAgaWYgKHByb3AgIT0gTlVMTAotICAgICAg JiYgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBOVUxMLCBhZGRyX3N0YWNrLCAmdmFs dWUpKQorICAgICAgJiYgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBOVUxMLCBhZGRy X3N0YWNrLCAgJnZhbHVlLCAwKSkKICAgICB7CiAgICAgICAvKiBTdGFydCBvZiBGb3J0cmFuIGhh Y2suICBTZWUgY29tbWVudCBpbiBmLWxhbmcuaCBmb3Igd2hhdCBpcyBnb2luZwogCSBvbiBoZXJl LiovCmRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCmluZGV4IDUy ODRhNGMzYTAzLi4zNzRmN2U5ZTFmNiAxMDA2NDQKLS0tIGEvZ2RiL2dkYnR5cGVzLmgKKysrIGIv Z2RiL2dkYnR5cGVzLmgKQEAgLTU1Niw2ICs1NTYsMTAgQEAgZW51bSBkeW5hbWljX3Byb3Bfbm9k ZV9raW5kCiAgIC8qIEEgcHJvcGVydHkgaG9sZGluZyB2YXJpYW50IHBhcnRzLiAgKi8KICAgRFlO X1BST1BfVkFSSUFOVF9QQVJUUywKIAorICAvKiBBIHByb3BlcnR5IHJlcHJlc2VudGluZyBEV19B VF9yYW5rLiBUaGUgcHJlc2VuY2Ugb2YgdGhpcyBhdHRyaWJ1dGUKKyAgICAgaW5kaWNhdGVzIHRo YXQgdGhlIG9iamVjdCBpcyBvZiBhc3N1bWVkIHJhbmsgYXJyYXkgdHlwZS4gICovCisgIERZTl9Q Uk9QX1JBTkssCisKICAgLyogQSBwcm9wZXJ0eSBob2xkaW5nIHRoZSBzaXplIG9mIHRoZSB0eXBl LiAgKi8KICAgRFlOX1BST1BfQllURV9TSVpFLAogfTsKQEAgLTIwMzUsNiArMjAzOSw3IEBAIGV4 dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICopOwogI2RlZmlu ZSBUWVBFX1JFRkVSRU5DRV9UWVBFKHRoaXN0eXBlKSAodGhpc3R5cGUpLT5yZWZlcmVuY2VfdHlw ZQogI2RlZmluZSBUWVBFX1JWQUxVRV9SRUZFUkVOQ0VfVFlQRSh0aGlzdHlwZSkgKHRoaXN0eXBl KS0+cnZhbHVlX3JlZmVyZW5jZV90eXBlCiAjZGVmaW5lIFRZUEVfQ0hBSU4odGhpc3R5cGUpICh0 aGlzdHlwZSktPmNoYWluCisjZGVmaW5lIFRZUEVfRFlOX1BST1AodGhpc3R5cGUpICBUWVBFX01B SU5fVFlQRSh0aGlzdHlwZSktPmR5bl9wcm9wX2xpc3QKIC8qICogTm90ZSB0aGF0IGlmIHRoaXN0 eXBlIGlzIGEgVFlQRURFRiB0eXBlLCB5b3UgaGF2ZSB0byBjYWxsIGNoZWNrX3R5cGVkZWYuCiAg ICBCdXQgY2hlY2tfdHlwZWRlZiBkb2VzIHNldCB0aGUgVFlQRV9MRU5HVEggb2YgdGhlIFRZUEVE RUYgdHlwZSwKICAgIHNvIHlvdSBvbmx5IGhhdmUgdG8gY2FsbCBjaGVja190eXBlZGVmIG9uY2Uu ICBTaW5jZSBhbGxvY2F0ZV92YWx1ZQpAQCAtMjA3Nyw2ICsyMDgyLDggQEAgZXh0ZXJuIGJvb2wg c2V0X3R5cGVfYWxpZ24gKHN0cnVjdCB0eXBlICosIFVMT05HRVNUKTsKICAgKCh0aGlzdHlwZSkt PmR5bl9wcm9wIChEWU5fUFJPUF9BTExPQ0FURUQpKQogI2RlZmluZSBUWVBFX0FTU09DSUFURURf UFJPUCh0aGlzdHlwZSkgXAogICAoKHRoaXN0eXBlKS0+ZHluX3Byb3AgKERZTl9QUk9QX0FTU09D SUFURUQpKQorI2RlZmluZSBUWVBFX1JBTktfUFJPUCh0aGlzdHlwZSkgXAorICAoKHRoaXN0eXBl KS0+ZHluX3Byb3AgKERZTl9QUk9QX1JBTkspKQogCiAvKiBDKysgKi8KIApkaWZmIC0tZ2l0IGEv Z2RiL2dudS12My1hYmkuYyBiL2dkYi9nbnUtdjMtYWJpLmMKaW5kZXggMTg3YzEwNTk1YWMuLmU0 MmUyMDE0OGY0IDEwMDY0NAotLS0gYS9nZGIvZ251LXYzLWFiaS5jCisrKyBiL2dkYi9nbnUtdjMt YWJpLmMKQEAgLTQ4Myw3ICs0ODMsNyBAQCBnbnV2M19iYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3Qg dHlwZSAqdHlwZSwgaW50IGluZGV4LAogCiAgICAgICBDT1JFX0FERFIgcmVzdWx0OwogICAgICAg aWYgKGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoJnByb3AsIG51bGxwdHIsICZhZGRyX3N0YWNr LCAmcmVzdWx0LAotCQkJCSAgICB0cnVlKSkKKwkJCQkgICAgMCwgdHJ1ZSkpCiAJcmV0dXJuIChp bnQpIChyZXN1bHQgLSBhZGRyX3N0YWNrLmFkZHIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hc3N1bWVkcmFuay5leHAgYi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2Fzc3VtZWRyYW5rLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uOTMzN2NjYzQzNzgKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2Fzc3VtZWRyYW5rLmV4cApAQCAtMCwwICsxLDg1IEBACisjIENvcHlyaWdodCAy MDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+IC4K KworIyBUZXN0aW5nIEdEQidzIGltcGxlbWVudGF0aW9uIG9mIEFTU1VNRUQgUkFOSy4KKworaWYg e1tza2lwX2ZvcnRyYW5fdGVzdHNdfSB7IHJldHVybiAtMSB9CisKK3N0YW5kYXJkX3Rlc3RmaWxl ICIuZjkwIgorbG9hZF9saWIgZm9ydHJhbi5leHAKKworI29ubHkgZ2NjIHZlcnNpb24gPj0xMSBz dXBwb3J0cyBhc3N1bWVkIHJhbmsKK2lmIHshW3Rlc3RfY29tcGlsZXJfaW5mbyB7Z2NjLTFbMS05 XS0qfV19IHsKKyAgICB1bnRlc3RlZCAiY29tcGlsZXIgZG8gbm90IHN1cHBvcnQgYXNzdW1lZCBy YW5rIgorICAgIHJldHVybiAtMQorfQorCitpZiB7W3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0 ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAorCSB7ZGVidWcgZjkwIGFkZGl0aW9u YWxfZmxhZ3M9LWdkd2FyZi01fV19IHsKKyAgICByZXR1cm4gLTEKK30KKworaWYgIVtmb3J0cmFu X3J1bnRvX21haW5dIHsKKyAgICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0byBtYWluIgorICAg IHJldHVybiAtMQorfQorCitnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiVGVz dCBCcmVha3BvaW50Il0KK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJGaW5h bCBCcmVha3BvaW50Il0KKworIyBXZSBwbGFjZSBhIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgdGVz dHMgdGhhdCBjYW4gYmUgcnVuLCBqdXN0IGluCisjIGNhc2Ugc29tZXRoaW5nIGdvZXMgd3Jvbmcs IGFuZCBHREIgZ2V0cyBzdHVjayBpbiBhbiBsb29wIGhlcmUuCitzZXQgZm91bmRfZmluYWxfYnJl YWtwb2ludCBmYWxzZQorc2V0IHRlc3RfY291bnQgMAord2hpbGUgeyAkdGVzdF9jb3VudCA8IDUw MCB9IHsKKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJ0ZXN0ICR0ZXN0X2NvdW50IiB7CisJaW5jciB0 ZXN0X2NvdW50CisKKwlnZGJfdGVzdF9tdWx0aXBsZSAiY29udGludWUiICJjb250aW51ZSIgewor CSAgICAtcmUgLXdyYXAgIiEgVGVzdCBCcmVha3BvaW50IiB7CisJCSMgV2UgY2FuIHJ1biBhIHRl c3QgZnJvbSBoZXJlLgorCSAgICB9CisJICAgIC1yZSAiISBGaW5hbCBCcmVha3BvaW50IiB7CisJ CSMgV2UncmUgZG9uZSB3aXRoIHRoZSB0ZXN0cy4KKwkJc2V0IGZvdW5kX2ZpbmFsX2JyZWFrcG9p bnQgdHJ1ZQorCSAgICB9CisJfQorCisJaWYgKCRmb3VuZF9maW5hbF9icmVha3BvaW50KSB7CisJ ICAgIGJyZWFrCisJfQorCisJIyBGaXJzdCBncmFiIHRoZSBleHBlY3RlZCBhbnN3ZXIuCisJc2V0 IGFuc3dlciBbZ2V0X3ZhbHVlb2YgIiIgInJhbmsoYW5zd2VyKSIgIioqdW5rbm93bioqIl0KKwor CSMgTm93IG1vdmUgdXAgYSBmcmFtZSBhbmQgZmlndXJlIG91dCBhIGNvbW1hbmQgZm9yIHVzIHRv IHJ1bgorCSMgYXMgYSB0ZXN0LgorCXNldCBjb21tYW5kICIiCisJZ2RiX3Rlc3RfbXVsdGlwbGUg InVwIiAidXAiIHsKKwktcmUgLXdyYXAgIlxyXG5cWzAtOVxdK1xbIFx0XF0rY2FsbCB0ZXN0X3Jh bmsgKFxbXlxyXG5cXSspIiB7CisJCXNldCBjb21tYW5kICRleHBlY3Rfb3V0KDEsc3RyaW5nKQor CSAgICB9CisJfQorCisJZ2RiX2Fzc2VydCB7ICFbc3RyaW5nIGVxdWFsICRjb21tYW5kICIiXSB9 ICJmb3VuZCBhIGNvbW1hbmQgdG8gcnVuIgorCisJZ2RiX3Rlc3QgInAgcmFuaygkY29tbWFuZCki ICIgPSAoJGFuc3dlcikiCisgICAgfQorfQorCisjIEVuc3VyZSB3ZSByZWFjaGVkIHRoZSBmaW5h bCBicmVha3BvaW50LiAgSWYgbW9yZSB0ZXN0cyBoYXZlIGJlZW4gYWRkZWQKKyMgdG8gdGhlIHRl c3Qgc2NyaXB0LCBhbmQgdGhpcyBzdGFydHMgZmFpbGluZywgdGhlbiB0aGUgc2FmZXR5ICd3aGls ZScKKyMgbG9vcCBhYm92ZSBtaWdodCBuZWVkIHRvIGJlIGluY3JlYXNlZC4KK2dkYl9hc3NlcnQg eyRmb3VuZF9maW5hbF9icmVha3BvaW50fSAicmFuIGFsbCBjb21waWxlZCBpbiB0ZXN0cyIKZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXNzdW1lZHJhbmsuZjkwIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hc3N1bWVkcmFuay5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUzYjRkN2ZjMzVkCi0tLSAvZGV2L251bGwKKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hc3N1bWVkcmFuay5mOTAKQEAgLTAsMCArMSw0MiBAQAor ISBDb3B5cmlnaHQgMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyEKKyEgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyEgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKyEKKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCishIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCishIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyEgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyEKKyEgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyEg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCisKKyEKKyEgU3RhcnQgb2YgdGVzdCBwcm9ncmFtLgorIQorCisKK1BST0dS QU0gIGFyYW5rCisKK1JFQUwgOjogYXJyYXkxKDEwKQorUkVBTCA6OiBhcnJheTIoMSwgMikKK1JF QUwgOjogYXJyYXkzKDMsIDQsIDUpCitSRUFMIDo6IGFycmF5NCg0LCA1LCA2LCA3KQorCitjYWxs IHRlc3RfcmFuayAoYXJyYXkxKQorY2FsbCB0ZXN0X3JhbmsgKGFycmF5MikKK2NhbGwgdGVzdF9y YW5rIChhcnJheTMpCitjYWxsIHRlc3RfcmFuayAoYXJyYXk0KQorCitwcmludCAqLCAiIiAhIEZp bmFsIEJyZWFrcG9pbnQKKworQ09OVEFJTlMKKyAgU1VCUk9VVElORSB0ZXN0X3JhbmsoYW5zd2Vy KQorICAgIFJFQUwgOjogYW5zd2VyKC4uKQorICAgIHByaW50ICosIFJBTksoYW5zd2VyKSAgICAg ISBUZXN0IEJyZWFrcG9pbnQKKyAgRU5ECisKK0VORCBQUk9HUkFNIGFyYW5rCisKLS0gCjIuMTcu MQoK --_002_DM6PR12MB42192C4A128CFA28A3DE35D7E7229DM6PR12MB4219namp_--