From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id kR/NGjBaqV9obQAAWB0awg (envelope-from ) for ; Mon, 09 Nov 2020 10:03:12 -0500 Received: by simark.ca (Postfix, from userid 112) id 5FF771F08B; Mon, 9 Nov 2020 10:03:12 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 887011E552 for ; Mon, 9 Nov 2020 10:03:10 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BC6873860C33; Mon, 9 Nov 2020 15:03:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BC6873860C33 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1604934189; bh=o9Uh1gF//bOR0xpM7jB6sgUhnpqnfjpRpQLHr6/6qlI=; h=To:Subject:Date:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=WxxlYJC27RzFp55Y9oVMWtFRF0JQLFAL+lbAUpsX/R0EjJFs9XcwKTsqdzy+UUr2L OwjY1rHaxzE4HnvB7rzMwvmckutYlFZqw1dTRMAPnCHM0SBl/D+AgrC92V0tI4HvbU ca2pCZronoeoknDjkEZEDiA36bQMpPZ2M7BH+r00= Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by sourceware.org (Postfix) with ESMTPS id B2112388A422 for ; Mon, 9 Nov 2020 15:03:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B2112388A422 IronPort-SDR: cORbefbmLLjOGKezNqkmYp+pkLXWWKdXZ1e+8UQjqk+Q98tgd9chrDxUcZiE8vzVM0JSg23Ub8 FfDqpzhSDZ7Q== X-IronPort-AV: E=McAfee;i="6000,8403,9799"; a="156822366" X-IronPort-AV: E=Sophos;i="5.77,463,1596524400"; d="scan'208";a="156822366" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2020 07:03:01 -0800 IronPort-SDR: Bjy0bPLRcGqvFW9wohy3XEa8kY8UN8gU1EMtY3+N0hMBRjNT9sHUI0TpqacOju40bFwsFaMoQv ATVbhJY+6i4Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,463,1596524400"; d="scan'208";a="365077179" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by FMSMGA003.fm.intel.com with ESMTP; 09 Nov 2020 07:03:00 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 9 Nov 2020 07:03:00 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 9 Nov 2020 07:02:59 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 9 Nov 2020 07:02:59 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.173) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Mon, 9 Nov 2020 07:02:57 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OoI9fE3vt3eyHZbn4OHoYW2Jo2ns1Skc5OzQcb90mqfL1KsGcascAdIWt4PdauhvY/5WOsrUBrePdxkm5uTYAJdEa2o5GTq9cN1oN1YUOEpSppqGRzXvwOVDcOBpVxSe1MUqiIIr+oStEJeBMru2jPT3ys//X7Q++3guJ8C7DUnG4v5kZinTI7gF6wn7UFf2yKJI71VU6SSFsyKc2Mmun0LGfqwqgW7fy9sq6FH1CuGxbtJSy/lho+3T9GUUTulK+Ubx4Xmk7CuYVqOExmJpm0IcRzbxYsrHlMhavdj14CskzthsozlKJgLJB+CXvCjsAv8hImud+0xtp1PDVlynng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cdIy8nffTM0aPjXFv/lLfN5lA6CqK7JLB5TrtTkso+I=; b=DucHD+uNZuJjm6ZFWhxy8sfSCaI4bs3g9mSU/PNu1dCqX2nopzwzN1NFgOFbfhZNpANrdVlyUB9+hFuSsjzvXcvMdcDMBU/Yur9Uwk67WQfyT/IHRpVnSphGegVXRpvs0uy+IOZWGyLH+Xo7nWfx6k4lC7z5eJt91U0FIX+ie87mQ88CuLgUyWIUVwjNtIrg9XDwz68H+ZJeVLuX7SdlecQn1TNsTzh+jCaieuAQqYc355rqo2c1KAnhTH2Jcx2fBq6CToLEp1FlaVsNrBf3k1aeNhMOLLQKRGvOUPLYgkZa9RFcBSer5U5QvOxYK1XvF1abLAKgniIaCVHAVheEOQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SN6PR11MB2893.namprd11.prod.outlook.com (2603:10b6:805:dc::23) by SN6PR11MB3213.namprd11.prod.outlook.com (2603:10b6:805:be::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18; Mon, 9 Nov 2020 15:02:56 +0000 Received: from SN6PR11MB2893.namprd11.prod.outlook.com ([fe80::c0f8:152e:923f:4de3]) by SN6PR11MB2893.namprd11.prod.outlook.com ([fe80::c0f8:152e:923f:4de3%7]) with mapi id 15.20.3541.025; Mon, 9 Nov 2020 15:02:56 +0000 To: Andrew Burgess , "gdb-patches@sourceware.org" Subject: RE: [PATCHv4 1/2] gdb: Restore previously selected thread when switching inferior Thread-Topic: [PATCHv4 1/2] gdb: Restore previously selected thread when switching inferior Thread-Index: AQHWtJDzINmfusno/0CAkuqSuKll0am/29PA Date: Mon, 9 Nov 2020 15:02:56 +0000 Message-ID: References: <20201008095950.GN605036@embecosm.com> <0533d83bd928223a521bd523df9df30c2f68eeed.1604703416.git.andrew.burgess@embecosm.com> In-Reply-To: <0533d83bd928223a521bd523df9df30c2f68eeed.1604703416.git.andrew.burgess@embecosm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action x-originating-ip: [2.200.183.200] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1480a666-bcd9-4153-c904-08d884c08a5e x-ms-traffictypediagnostic: SN6PR11MB3213: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: s7zBJgMmmdpRpNThEQExDIfYxvEEjSmwabpXhJPVp7bP1Wiza5wJMWKqGdMVgdz2+dXp2liJwK4l3+emHn6pHF+Pl5tijy4XMcgn5xs6ailfno1nIDi6RCOqz3JE60lvuYLte4OrA3XDM/eQ87Y9lSZwBzQ3if58uJyhho+kzcWy6TR+XZhFQnMwibhHOVG2wj216CxQe1JnK4d2kKG5rxPXR4BTxn224lGzK3L3FQVqffPBBdL30Qj8gsbrLTTTCUH6KvUbq4mlNrjT0D7UXvtatCkuTEgtQsj/I3WlkNVQHJNSc2X5lqYEJ2E7Xjm+S1nCDvhY+Hr9VELASmCOyg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB2893.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(376002)(366004)(396003)(346002)(39860400002)(110136005)(6506007)(2906002)(9686003)(55016002)(76116006)(478600001)(316002)(8936002)(8676002)(64756008)(66446008)(71200400001)(26005)(33656002)(30864003)(66476007)(86362001)(66946007)(5660300002)(7696005)(53546011)(52536014)(66556008)(83380400001)(186003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: Pzeu9owf8Tfl3A6dQ+fpp1fcIWG+Pmy5QaibZvoziXFUyy98pHT5C3uuoC+YDl0l8OGds3tsb6pziExtoVXYdG3WJDVH8SBwCSGaXdlkpvH5rycrmyZiAm2CnItdAKf0IHuIleBa5baqO8Er5xHTSwECbuTIlA1SEl179Jfe3YNUjhg6s6+hFDVik6Qd4Z2b/WxhBTRijydKXvAvAwH9JaS4Ig5I42veYFB/Q//llJxYDX7RAf66yGm28mrNQXM+SBJ3IaNk3I5D9wLHTNoNw7DEuQCNjhtUxzBh6XMZnR/ocl+KATWKkp8oeHEBe5fdHhMnV0hqYr1RqfEEmzBKZ/Sa0wgzgaCLriMUQTrVvxwdzMZTaj5ptNyThbu/xQx9dgIAc0V0+sQtsv7jjYz8qjZ2bggicNSUoZrbgJVoCzzBnIGQ+JHbe6Qej8MYc0NZpQ9uNdGVhJR9YxX3eJKY1tcAKhwJesojWpqNf4yBTr7vzgFQG7bZMjSi3hKhNaHLW2jY4tOBCSIhXH9OW62CEV6SthMOvCHAWk4m40Kg600kUB3Zih40tm+OesRmkyN3DzaUHubQrpmdVm5wT/xsVmuLuwps+ZPITY2/AP5jQMOe3ZoEKbL8zJ9231zjLkX5wEiuBx4As++5tNvkcOD7bQ== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2893.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1480a666-bcd9-4153-c904-08d884c08a5e X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Nov 2020 15:02:56.1630 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 8BoNxurlXIVT9df2hFfb9V8GEU7Ynmwj6NqbxmcdggjZPt759C3HUlZnXToVUlKOSo3uKxxjbq8TZDN3JXnh5cGP8G/ZIL26kYVGmC3+DWg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3213 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 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: , From: "Aktemur, Tankut Baris via Gdb-patches" Reply-To: "Aktemur, Tankut Baris" Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" T24gU2F0dXJkYXksIE5vdmVtYmVyIDcsIDIwMjAgMTI6MDIgQU0sIEFuZHJldyBCdXJnZXNzIHdy b3RlOg0KPiBUaGlzIGNvbW1pdCBhZGRzIGEgbmV3IG9wdGlvbiB0aGF0IGFsbG93cyB0aGUgdXNl ciB0byBjb250cm9sIGhvdyBHREINCj4gYmVoYXZlcyB3aGVuIHN3aXRjaGluZyBiZXR3ZWVuIG11 bHRpLXRocmVhZGVkIGluZmVyaW9ycy4NCj4gDQo+IEN1cnJlbnRseSAoYW5kIHRoaXMgcmVtYWlu cyB0aGUgZGVmYXVsdCBhZnRlciB0aGlzIGNvbW1pdCkgd2hlbg0KPiBzd2l0Y2hpbmcgYmV0d2Vl biBpbmZlcmlvcnMgR0RCIHdvdWxkIHNlbGVjdCB0aGUgZmlyc3Qgbm9uLWV4aXRlZA0KPiB0aHJl YWQgZnJvbSB0aGUgaW5mZXJpb3IgYmVpbmcgc3dpdGNoZWQgdG8uDQo+IA0KPiBUaGlzIGNvbW1p dCBhZGRzIHRoZSBmb2xsb3dpbmcgbmV3IGNvbW1hbmRzOg0KPiANCj4gICAgICBzZXQgcmVzdG9y ZS1zZWxlY3RlZC10aHJlYWQgb258b2ZmDQo+ICAgICAgc2hvdyByZXN0b3JlLXNlbGVjdGVkLXRo cmVhZA0KPiANCj4gVGhpcyBvcHRpb24gaXMgb2ZmIGJ5IGRlZmF1bHQgaW4gb3JkZXIgdG8gcmV0 YWluIHRoZSBleGlzdGluZw0KPiBiZWhhdmlvdXIsIGJ1dCwgd2hlbiBzd2l0Y2hlZCBvbiBHREIg d2lsbCByZW1lbWJlciB3aGljaCB0aHJlYWQgd2FzDQo+IHNlbGVjdGVkIGluIGVhY2ggaW5mZXJp b3IuICBBcyB0aGUgdXNlciBzd2l0Y2hlcyBiZXR3ZWVuIGluZmVyaW9ycyBHREINCj4gd2lsbCBh dHRlbXB0IHRvIHJlc3RvcmUgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgdGhyZWFkLg0KPiANCj4g SWYgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgdGhyZWFkIGlzIG5vIGxvbmdlciBhdmFpbGFibGUs IGZvciBleGFtcGxlLA0KPiBpZiB0aGUgdGhyZWFkIGhhcyBleGl0ZWQsIHRoZW4gR0RCIHdpbGwg ZmFsbCBiYWNrIG9uIHRoZSBvbGQNCj4gYmVoYXZpb3VyLg0KPiANCj4gSSBkaWQgY29uc2lkZXIs IGJ1dCBldmVudHVhbGx5IGRpZG4ndCBpbXBsZW1lbnRlZCwgYWRkaW5nIGEgd2FybmluZw0KPiB3 aGVuIHN3aXRjaGluZyBpbmZlcmlvcnMgaWYgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgdGhyZWFk IGlzIG5vDQo+IGxvbmdlciBhdmFpbGFibGUuICBNeSByZWFzb25pbmcgaGVyZSBpcyB0aGF0IEdE QiBzaG91bGQgYWxyZWFkeSBoYXZlDQo+IGluZm9ybWVkIHRoZSB1c2VyIHRoYXQgdGhlIHRocmVh ZCBoYXMgZXhpdGVkLCBhbmQgdGhlcmUgaXMgYWxyZWFkeSBhDQo+IG1lc3NhZ2UgaW5kaWNhdGlu ZyB3aGljaCB0aHJlYWQgaGFzIGJlZW4gc3dpdGNoZWQgdG9vLCBzbyBhZGRpbmcgYW4NCj4gZXh0 cmEgd2FybmluZyBmZWx0IGxpa2UgdW5uZWVkZWQgY2x1dHRlci4NCj4gDQo+IEluIG9yZGVyIHRv IHN0b3JlIHRoZSB0aHJlYWQgd2l0aGluIHRoZSBpbmZlcmlvciBJIHN0b3JlIGEgcG9pbnRlciB0 bw0KPiB0aGUgdGhyZWFkX2luZm8gb2JqZWN0IG9mIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHRo cmVhZC4gIFdoZW4NCj4gZmV0Y2hpbmcgdGhlIHRocmVhZF9pbmZvIGl0IGlzIGltcG9ydGFudCB0 aGF0IHdlIGRvIGFjdHVhbGx5IGhhdmUgYQ0KPiBjdXJyZW50IHRocmVhZCBvdGhlcndpc2UgdGhp cyBoYXBwZW5zOg0KPiANCj4gICAkIGdkYg0KPiAgIChnZGIpIGFkZC1pbmZlcmlvcg0KPiAgIChn ZGIpIGluZmVyaW9yIDINCj4gICAuL2dkYi90aHJlYWQuYzo5NTogaW50ZXJuYWwtZXJyb3I6IHRo cmVhZF9pbmZvKiBpbmZlcmlvcl90aHJlYWQoKTogQXNzZXJ0aW9uDQo+IGBjdXJyZW50X3RocmVh ZF8gIT0gbnVsbHB0cicgZmFpbGVkLg0KPiANCj4gVG8gYXZvaWQgdGhpcyBJIGFkZGVkIGEgY2hl Y2sgdGhhdCBpbmZlcmlvcl9wdGlkIGlzIG5vdCBudWxsX3B0aWQuDQo+IFRob3VnaCBpdCBpcyBu b3QgYWx3YXlzIHRoZSBjYXNlLCB0aGVyZSBhcmUgcGxlbnR5IG9mIHBsYWNlcyBpbiBHREINCj4g d2hlcmUgYSBjYWxsIHRvIGluZmVyaW9yX3RocmVhZCAoKSBpcyBndWFyZGVkIGJ5IHN1Y2ggYSBj aGVjay4NCj4gDQo+IFRoZXJlJ3MgYSBuZXcgdGVzdCBmb3IgdGhpcyBmdW5jdGlvbmFsaXR5Lg0K PiANCj4gZ2RiL0NoYW5nZUxvZzoNCj4gDQo+IAkqIGluZmVyaW9yLmMgKGluZmVyaW9yX2NvbW1h bmQpOiBTdG9yZSBjdXJyZW50IHRocmVhZF9pbmZvIGJlZm9yZQ0KPiAJc3dpdGNoaW5nIGluZmVy aW9ycy4gIFJlc2VsZWN0IHRoZSBwcmV2aW91cyB0aHJlYWRfaW5mbyBpZg0KPiAJcG9zc2libGUg YWZ0ZXIgc3dpdGNoaW5nIHRvIHRoZSBuZXcgaW5mZXJpb3IuDQo+IAkoaW5pdGlhbGl6ZV9pbmZl cmlvcnMpOiBSZWdpc3RlciByZXN0b3JlLXNlbGVjdGVkLXRocmVhZCBvcHRpb24uDQo+IAkqIGlu ZmVyaW9yLmggKGNsYXNzIGluZmVyaW9yKSA8cHJldmlvdXNfdGhyZWFkX2luZm8+OiBOZXcgbWVt YmVyDQo+IAl2YXJpYWJsZS4NCj4gCSogTkVXUzogTWVudGlvbiBuZXcgZmVhdHVyZS4NCj4gDQo+ IGdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KPiANCj4gCSogZ2RiLnRocmVhZHMvcmVzdG9yZS10 aHJlYWQuYzogTmV3IGZpbGUuDQo+IAkqIGdkYi50aHJlYWRzL3Jlc3RvcmUtdGhyZWFkLmV4cDog TmV3IGZpbGUuDQo+IA0KPiBnZGIvZG9jL0NoYW5nZUxvZzoNCj4gDQo+IAkqIGdkYi50ZXhpbmZv IChJbmZlcmlvcnMgQ29ubmVjdGlvbnMgYW5kIFByb2dyYW1zKTogTWVudGlvbiB0aHJlYWQNCj4g CXRyYWNraW5nIHdpdGhpbiB0aGUgaW5mZXJpb3IgY29tbWFuZC4NCj4gCShUaHJlYWRzKTogTWVu dGlvbiB0aHJlYWQgdHJhY2tpbmcgaW4gdGhlIGdlbmVyYWwgdGhyZWFkDQo+IAlkaXNjdXNzaW9u Lg0KPiAtLS0NCj4gIGdkYi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDEwICsNCj4gIGdkYi9ORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA5ICsNCj4gIGdkYi9kb2MvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA3ICsNCj4gIGdkYi9kb2MvZ2RiLnRleGluZm8gICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDE5ICstDQo+ICBnZGIvaW5mZXJpb3IuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA1OCArKysrLQ0KPiAgZ2RiL2luZmVyaW9yLmggICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMTAgKw0KPiAgZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg ICAgICAgfCAgIDUgKw0KPiAgZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9yZXN0b3JlLXRocmVh ZC5jICAgfCAyNDggKysrKysrKysrKysrKysrKysrKw0KPiAgZ2RiL3Rlc3RzdWl0ZS9nZGIudGhy ZWFkcy9yZXN0b3JlLXRocmVhZC5leHAgfCAyMTkgKysrKysrKysrKysrKysrKw0KPiAgOSBmaWxl cyBjaGFuZ2VkLCA1ODMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3Jlc3RvcmUtdGhyZWFkLmMNCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3Jlc3RvcmUtdGhy ZWFkLmV4cA0KPiANCj4gZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MNCj4gaW5kZXgg M2UwOGFlZTdjNmYuLjVhOTAwYjhhNjc4IDEwMDY0NA0KPiAtLS0gYS9nZGIvTkVXUw0KPiArKysg Yi9nZGIvTkVXUw0KPiBAQCAtMjcsNiArMjcsMTUgQEAgc2V0IGRlYnVnIGV2ZW50LWxvb3ANCj4g IHNob3cgZGVidWcgZXZlbnQtbG9vcA0KPiAgICBDb250cm9sIHRoZSBkaXNwbGF5IG9mIGRlYnVn IG91dHB1dCBhYm91dCBHREIncyBldmVudCBsb29wLg0KPiANCj4gK3NldCByZXN0b3JlLXNlbGVj dGVkLXRocmVhZCBvbnxvZmYNCj4gK3Nob3cgcmVzdG9yZS1zZWxlY3RlZC10aHJlYWQNCj4gKyAg VGhpcyBuZXcgb3B0aW9uIGlzIG9mZiBieSBkZWZhdWx0LiAgV2hlbiB0dXJuZWQgb24gR0RCIHdp bGwgcmVjb3JkDQo+ICsgIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGhyZWFkIGluIGVhY2ggaW5m ZXJpb3IuICBXaGVuIHN3aXRjaGluZw0KPiArICBiZXR3ZWVuIGluZmVyaW9ycyBHREIgd2lsbCBh dHRlbXB0IHRvIHJlc3RvcmUgdGhlIHByZXZpb3VzbHkNCj4gKyAgc2VsZWN0ZWQgdGhyZWFkIGlu IHRoZSBpbmZlcmlvciBiZWluZyBzd2l0Y2hlZCB0b28uICBJZiB0aGUNCj4gKyAgcHJldmlvdXNs eSBzZWxlY3RlZCB0aHJlYWQgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSB0aGVuIEdEQiBmYWxscw0K PiArICBiYWNrIHRvIHNlbGVjdGluZyB0aGUgZmlyc3Qgbm9uLWV4aXRlZCB0aHJlYWQuDQo+ICsN Cj4gICogQ2hhbmdlZCBjb21tYW5kcw0KPiANCj4gIGJyZWFrIFtQUk9CRV9NT0RJRklFUl0gW0xP Q0FUSU9OXSBbdGhyZWFkIFRIUkVBRE5VTV0NCj4gZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRl eGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvDQo+IGluZGV4IDUyNzAxNTYwMDA2Li5jNTgxOWJk ZTdhZSAxMDA2NDQNCj4gLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbw0KPiArKysgYi9nZGIvZG9j L2dkYi50ZXhpbmZvDQo+IEBAIC0zMjQ3LDExICszMjQ3LDI1IEBADQo+ICBUbyBzd2l0Y2ggZm9j dXMgYmV0d2VlbiBpbmZlcmlvcnMsIHVzZSB0aGUgQGNvZGV7aW5mZXJpb3J9IGNvbW1hbmQ6DQo+ IA0KPiAgQHRhYmxlIEBjb2RlDQo+ICtAYW5jaG9ye2luZmVyaW9yIGNvbW1hbmR9DQo+ICBAa2lu ZGV4IGluZmVyaW9yIEB2YXJ7aW5mbm99DQo+ICBAaXRlbSBpbmZlcmlvciBAdmFye2luZm5vfQ0K PiAgTWFrZSBpbmZlcmlvciBudW1iZXIgQHZhcntpbmZub30gdGhlIGN1cnJlbnQgaW5mZXJpb3Iu ICBUaGUgYXJndW1lbnQNCj4gIEB2YXJ7aW5mbm99IGlzIHRoZSBpbmZlcmlvciBudW1iZXIgYXNz aWduZWQgYnkgQHZhbHVle0dEQk59LCBhcyBzaG93bg0KPiAgaW4gdGhlIGZpcnN0IGZpZWxkIG9m IHRoZSBAc2FtcHtpbmZvIGluZmVyaW9yc30gZGlzcGxheS4NCj4gKw0KPiArV2hlbiBzd2l0Y2hp bmcgYmV0d2VlbiBpbmZlcmlvcnMgd2l0aCBtdWx0aXBsZSB0aHJlYWRzDQo+ICsoQHB4cmVme1Ro cmVhZHN9KSBAdmFsdWV7R0RCTn0gd2lsbCBzZWxlY3QgdGhlIGZpcnN0IG5vbi1leGl0ZWQgdGhy ZWFkDQo+ICtpbiB0aGUgaW5mZXJpb3IgYmVpbmcgc3dpdGNoZWQgdG8gYW5kIG1ha2UgdGhpcyB0 aGUgY3VycmVudCB0aHJlYWQuDQo+ICsNCj4gK0BraW5kZXggc2V0IHJlc3RvcmUtc2VsZWN0ZWQt dGhyZWFkDQo+ICtAa2luZGV4IHNob3cgcmVzdG9yZS1zZWxlY3RlZC10aHJlYWQNCj4gK0BpdGVt IHNldCByZXN0b3JlLXNlbGVjdGVkLXRocmVhZCBAcntbfW9ufG9mZkBye119DQo+ICtAaXRlbSBz aG93IHJlc3RvcmUtc2VsZWN0ZWQtdGhyZWFkDQo+ICtXaGVuIHRoaXMgb3B0aW9uIGlzIG9uIEB2 YWx1ZXtHREJOfSB3aWxsIHJlY29yZCB0aGUgY3VycmVudGx5IHNlbGVjdGVkDQo+ICt0aHJlYWQg aW4gZWFjaCBpbmZlcmlvci4gIFdoZW4gc3dpdGNoaW5nIGJldHdlZW4gaW5mZXJpb3IgQHZhbHVl e0dEQk59DQo+ICt3aWxsIHRyeSB0byByZXN0b3JlIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHRo cmVhZCBpbiB0aGUgaW5mZXJpb3INCj4gK2JlaW5nIHN3aXRjaGVkIHRvLiAgVGhpcyBvcHRpb24g aXMgb2ZmIGJ5IGRlZmF1bHQuDQo+ICBAZW5kIHRhYmxlDQo+IA0KPiAgQHZpbmRleCAkX2luZmVy aW9yQHJ7LCBjb252ZW5pZW5jZSB2YXJpYWJsZX0NCj4gQEAgLTM2MzMsNyArMzY0NywxMCBAQA0K PiANCj4gIElmIHlvdSdyZSBkZWJ1Z2dpbmcgbXVsdGlwbGUgaW5mZXJpb3JzLCBAdmFsdWV7R0RC Tn0gZGlzcGxheXMgdGhyZWFkDQo+ICBJRHMgdXNpbmcgdGhlIHF1YWxpZmllZCBAdmFye2luZmVy aW9yLW51bX0uQHZhcnt0aHJlYWQtbnVtfSBmb3JtYXQuDQo+IC1PdGhlcndpc2UsIG9ubHkgQHZh cnt0aHJlYWQtbnVtfSBpcyBzaG93bi4NCj4gK090aGVyd2lzZSwgb25seSBAdmFye3RocmVhZC1u dW19IGlzIHNob3duLiAgV2hlbiBzd2l0Y2hpbmcgYmV0d2Vlbg0KPiAraW5mZXJpb3JzIEB2YWx1 ZXtHREJOfSB3aWxsIHNlbGVjdCBhIHN1aXRhYmxlIHRocmVhZCBpbiB0aGUgaW5mZXJpb3INCj4g K2JlaW5nIHN3aXRjaGVkIHRvLCBzZWUgQHJlZntpbmZlcmlvciBjb21tYW5kLCx0aGUgQGNvZGV7 aW5mZXJpb3J9DQo+ICtjb21tYW5kfSBmb3IgZnVydGhlciBkZXRhaWxzIG9uIGhvdyB0byBjb250 cm9sIHRoaXMgYmVoYXZpb3VyLg0KPiANCj4gIElmIHlvdSBzcGVjaWZ5IHRoZSBAc2FtcHstZ2lk fSBvcHRpb24sIEB2YWx1ZXtHREJOfSBkaXNwbGF5cyBhIGNvbHVtbg0KPiAgaW5kaWNhdGluZyBl YWNoIHRocmVhZCdzIGdsb2JhbCB0aHJlYWQgSUQ6DQo+IGRpZmYgLS1naXQgYS9nZGIvaW5mZXJp b3IuYyBiL2dkYi9pbmZlcmlvci5jDQo+IGluZGV4IGQ0YTc4M2IzZTZkLi40OTYxYmM0NjdmZCAx MDA2NDQNCj4gLS0tIGEvZ2RiL2luZmVyaW9yLmMNCj4gKysrIGIvZ2RiL2luZmVyaW9yLmMNCj4g QEAgLTYzMSw2ICs2MzEsMjMgQEAgc3dpdGNoX3RvX2luZmVyaW9yX25vX3RocmVhZCAoaW5mZXJp b3IgKmluZikNCj4gICAgc2V0X2N1cnJlbnRfcHJvZ3JhbV9zcGFjZSAoaW5mLT5wc3BhY2UpOw0K PiAgfQ0KPiANCj4gKy8qIFdoZW4gdGhpcyBpcyB0cnVlIEdEQiByZXN0b3JlcyB0aGUgaW5mZXJp b3JzIHByZXZpb3VzbHkgc2VsZWN0ZWQgdGhyZWFkDQoNCiJpbmZlcmlvcnMiIC0+ICJpbmZlcmlv cidzIi4NCkkgYWxzbyB0aGluayB0aGF0IGEgY29tbWEgaXMgbmVlZCBhZnRlciAidHJ1ZSIuDQoN Cj4gKyAgIGVhY2ggdGltZSB0aGUgaW5mZXJpb3IgaXMgY2hhbmdlZCAod2hlcmUgcG9zc2libGUp LiAgKi8NCj4gKw0KPiArc3RhdGljIGJvb2wgcmVzdG9yZV9zZWxlY3RlZF90aHJlYWRfcGVyX2lu ZmVyaW9yID0gZmFsc2U7DQo+ICsNCj4gKy8qIEltcGxlbWVudCAnc2hvdyByZXN0b3JlLXNlbGVj dGVkLXRocmVhZCcuICAqLw0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiArc2hvd19yZXN0b3JlX3Nl bGVjdGVkX3RocmVhZF9wZXJfaW5mZXJpb3IgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJv bV90dHksDQo+ICsJCQkJCSAgIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjLA0KPiArCQkJCQkg ICBjb25zdCBjaGFyICp2YWx1ZSkNCj4gK3sNCj4gKyAgZnByaW50Zl9maWx0ZXJlZCAoZmlsZSwN Cj4gKwkJICAgIF8oIlJlc3RvcmluZyB0aGUgc2VsZWN0ZWQgdGhyZWFkIGlzIGN1cnJlbnRseSAl cy5cbiIpLA0KPiArCQkgICAgdmFsdWUpOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgdm9pZA0KPiAg aW5mZXJpb3JfY29tbWFuZCAoY29uc3QgY2hhciAqYXJncywgaW50IGZyb21fdHR5KQ0KPiAgew0K PiBAQCAtNjQzLDExICs2NjAsMzggQEAgaW5mZXJpb3JfY29tbWFuZCAoY29uc3QgY2hhciAqYXJn cywgaW50IGZyb21fdHR5KQ0KPiAgICBpZiAoaW5mID09IE5VTEwpDQo+ICAgICAgZXJyb3IgKF8o IkluZmVyaW9yIElEICVkIG5vdCBrbm93bi4iKSwgbnVtKTsNCj4gDQo+ICsgIC8qIFdlIGNhbiBv bmx5IGNhbGwgSU5GRVJJT1JfVEhSRUFEIGlmIHRoZSBpbmZlcmlvciBpcyBrbm93biB0byBoYXZl IGFuDQo+ICsgICAgIGFjdGl2ZSB0aHJlYWQsIHdoaWNoIGl0IHdvbnQgaWYgdGhlIGluZmVyaW9y IGlzIGN1cnJlbnRseSBleGl0ZWQuICBTbywNCj4gKyAgICAgZmlyc3QgY2hlY2sgaWYgd2UgY3Vy cmVudGx5IGhhdmUgYSB0aHJlYWQgc2VsZWN0ZWQuICAqLw0KPiArICBpZiAoaW5mZXJpb3JfcHRp ZCAhPSBudWxsX3B0aWQpDQo+ICsgICAgew0KPiArICAgICAgLyogTm93IHRha2UgYSBzdHJvbmcg cmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IHRocmVhZF9pbmZvIGFuZCBzdG9yZQ0KPiArCSBpdCB3 aXRoaW4gdGhlIGluZmVyaW9yLCB0aGlzIHByZXZlbnRzIHRoZSB0aHJlYWRfaW5mbyBmcm9tIGJl aW5nDQo+ICsJIGRlbGV0ZWQgdW50aWwgdGhlIGluZmVyaW9yIGhhcyByZWxlYXNlZCB0aGUgcmVm ZXJlbmNlLiAgKi8NCj4gKyAgICAgIHRocmVhZF9pbmZvICp0cCA9IGluZmVyaW9yX3RocmVhZCAo KTsNCj4gKyAgICAgIHRwLT5pbmNyZWYgKCk7DQo+ICsgICAgICBjdXJyZW50X2luZmVyaW9yICgp LT5wcmV2aW91c190aHJlYWRfaW5mby5yZXNldCAodHApOw0KPiArICAgIH0NCj4gKw0KPiAgICBp ZiAoaW5mLT5waWQgIT0gMCkNCj4gICAgICB7DQo+ICAgICAgICBpZiAoaW5mICE9IGN1cnJlbnRf aW5mZXJpb3IgKCkpDQo+ICAJew0KPiAtCSAgdGhyZWFkX2luZm8gKnRwID0gYW55X3RocmVhZF9v Zl9pbmZlcmlvciAoaW5mKTsNCj4gKwkgIHRocmVhZF9pbmZvICp0cCA9IG51bGxwdHI7DQo+ICsN Cj4gKwkgIGlmIChyZXN0b3JlX3NlbGVjdGVkX3RocmVhZF9wZXJfaW5mZXJpb3INCj4gKwkgICAg ICAmJiBpbmYtPnByZXZpb3VzX3RocmVhZF9pbmZvICE9IG51bGxwdHIpDQo+ICsJICAgIHsNCj4g KwkgICAgICAvKiBSZWxlYXNlIHRoZSByZWZlcmVuY2UgdG8gdGhlIHByZXZpb3VzIHRocmVhZC4g IFdlIGRvbid0DQo+ICsJCSBzd2l0Y2ggYmFjayB0byB0aGlzIHRocmVhZCBpZiBpdCBpcyBhbHJl YWR5IGV4aXRlZA0KPiArCQkgdGhvdWdoLiAgKi8NCj4gKwkgICAgICB0cCA9IGluZi0+cHJldmlv dXNfdGhyZWFkX2luZm8ucmVsZWFzZSAoKTsNCj4gKwkgICAgICB0cC0+ZGVjcmVmICgpOw0KPiAr CSAgICAgIGlmICh0cC0+c3RhdGUgPT0gVEhSRUFEX0VYSVRFRCkNCj4gKwkJdHAgPSBudWxscHRy Ow0KPiArCSAgICB9DQo+ICsJICBpZiAodHAgPT0gbnVsbHB0cikNCj4gKwkgICAgdHAgPSBhbnlf dGhyZWFkX29mX2luZmVyaW9yIChpbmYpOw0KPiAgCSAgaWYgKHRwID09IE5VTEwpDQo+ICAJICAg IGVycm9yIChfKCJJbmZlcmlvciBoYXMgbm8gdGhyZWFkcy4iKSk7DQo+IA0KPiBAQCAtMTAyNSw1 ICsxMDY5LDE3IEBAIFNob3cgcHJpbnRpbmcgb2YgaW5mZXJpb3IgZXZlbnRzIChzdWNoIGFzIGlu ZmVyaW9yIHN0YXJ0IGFuZA0KPiBleGl0KS4iKSwgTlVMTCwNCj4gIAkgc2hvd19wcmludF9pbmZl cmlvcl9ldmVudHMsDQo+ICAJICZzZXRwcmludGxpc3QsICZzaG93cHJpbnRsaXN0KTsNCj4gDQo+ ICsgIGFkZF9zZXRzaG93X2Jvb2xlYW5fY21kICgicmVzdG9yZS1zZWxlY3RlZC10aHJlYWQiLA0K PiArCQkJICAgbm9fY2xhc3MsICZyZXN0b3JlX3NlbGVjdGVkX3RocmVhZF9wZXJfaW5mZXJpb3Is DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlwNCj4gK1NldCB3aGV0aGVyIEdEQiBy ZXN0b3JlcyB0aGUgc2VsZWN0ZWQgdGhyZWFkIHdoZW4gc3dpdGNoaW5nIGluZmVyaW9ycy4iKSwg XygiXA0KPiArU2hvdyB3aGV0aGVyIEdEQiByZXN0b3JlcyB0aGUgc2VsZWN0ZWQgdGhyZWFkIHdo ZW4gc3dpdGNoaW5nIGluZmVyaW9ycy4iKSwgXygiXA0KPiArV2hlbiB0aGlzIG9wdGlvbiBpcyBv biBHREIgd2lsbCByZWNvcmQgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0aHJlYWQgZm9yXG5cDQoN CkEgY29tbWEgYWZ0ZXIgIm9uIiBjb3VsZCBpbXByb3ZlIHRoZSBzZW50ZW5jZSwgSU1ITy4NCg0K PiArZWFjaCBpbmZlcmlvciwgYW5kIHJlc3RvcmUgdGhlIHNlbGVjdGVkIHRocmVhZCB3aGVuZXZl ciBHREIgc3dpdGNoZXMgaW5mZXJpb3JzLiIpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICBudWxscHRyLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3Jlc3RvcmVfc2Vs ZWN0ZWRfdGhyZWFkX3Blcl9pbmZlcmlvciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg JnNldGxpc3QsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICZzaG93bGlzdCk7DQo+ICsN Cj4gICAgY3JlYXRlX2ludGVybmFsdmFyX3R5cGVfbGF6eSAoIl9pbmZlcmlvciIsICZpbmZlcmlv cl9mdW5jcywgTlVMTCk7DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9nZGIvaW5mZXJpb3IuaCBiL2dk Yi9pbmZlcmlvci5oDQo+IGluZGV4IGQwMTYxNjFmYjA1Li41MTcxODBlNDhlMiAxMDA2NDQNCj4g LS0tIGEvZ2RiL2luZmVyaW9yLmgNCj4gKysrIGIvZ2RiL2luZmVyaW9yLmgNCj4gQEAgLTU0Myw2 ICs1NDMsMTYgQEAgY2xhc3MgaW5mZXJpb3IgOiBwdWJsaWMgcmVmY291bnRlZF9vYmplY3QNCj4g ICAgLyogRGF0YSByZWxhdGVkIHRvIGRpc3BsYWNlZCBzdGVwcGluZy4gICovDQo+ICAgIGRpc3Bs YWNlZF9zdGVwX2luZmVyaW9yX3N0YXRlIGRpc3BsYWNlZF9zdGVwX3N0YXRlOw0KPiANCj4gKyAg LyogVGhpcyBmaWVsZCBpcyB1cGRhdGVkIHdoZW4gR0RCIHN3aXRjaGVzIGF3YXkgZnJvbSB0aGlz IGluZmVyaW9yIHRvDQo+ICsgICAgIHNvbWUgb3RoZXIgaW5mZXJpb3IsIGEgcmVmZXJlbmNlIHRv IGEgdGhyZWFkX2luZm8gaXMgc3RvcmVkIGluIGhlcmUsDQoNCkl0IGZlZWxzIGxpa2UgdGhlcmUg c2hvdWxkIGJlIGEgcGVyaW9kIGFmdGVyICJpbmZlcmlvciIsIGluc3RlYWQgb2YgYSBjb21tYSwg dG8NCmVuZCB0aGUgc2VudGVuY2UuDQoNCkFsc28sIHRoZSBjb21tZW50ICJhIHJlZmVyZW5jZSB0 byBhIHRocmVhZF9pbmZvIGlzIHN0b3JlZCBpbiBoZXJlLi4uIiBpcyBwb3NzaWJseQ0KcmVkdW5k YW50LCBiZWNhdXNlIHRoZSB0eXBlICJ0aHJlYWRfaW5mb19yZWYiIGltcGxpZXMgdGhpcy4NCg0K PiArICAgICB0aGUgcmVmIGNvdW50IGZvciB0aGUgdGhyZWFkX2luZm8gc2hvdWxkIGJlIG5vbi16 ZXJvIHRvIHByZXZlbnQgdGhlDQo+ICsgICAgIHRocmVhZF9pbmZvIGJlaW5nIGRlbGV0ZWQuDQo+ ICsNCj4gKyAgICAgV2hlbiB0aGUgdXNlciBzd2l0Y2hlcyBiYWNrIHRvIHRoaXMgaW5mZXJpb3Ig dGhlIHRocmVhZF9pbmZvIGlzIHRha2VuDQo+ICsgICAgIG91dCBvZiB0aGlzIHJlZmVyZW5jZSBh bmQgdXNlZCB0byAocG9zc2libHkpIHN3aXRjaCBiYWNrIHRvIHRoaXMNCj4gKyAgICAgdGhyZWFk LiAgKi8NCj4gKyAgdGhyZWFkX2luZm9fcmVmIHByZXZpb3VzX3RocmVhZF9pbmZvOw0KPiArDQo+ ICAgIC8qIFBlciBpbmZlcmlvciBkYXRhLXBvaW50ZXJzIHJlcXVpcmVkIGJ5IG90aGVyIEdEQiBt b2R1bGVzLiAgKi8NCj4gICAgUkVHSVNUUllfRklFTERTOw0KPiANCg0KVGhhbmtzLg0KLUJhcmlz DQoNCg0KSW50ZWwgRGV1dHNjaGxhbmQgR21iSApSZWdpc3RlcmVkIEFkZHJlc3M6IEFtIENhbXBl b24gMTAtMTIsIDg1NTc5IE5ldWJpYmVyZywgR2VybWFueQpUZWw6ICs0OSA4OSA5OSA4ODUzLTAs IHd3dy5pbnRlbC5kZQpNYW5hZ2luZyBEaXJlY3RvcnM6IENocmlzdGluIEVpc2Vuc2NobWlkLCBH YXJ5IEtlcnNoYXcKQ2hhaXJwZXJzb24gb2YgdGhlIFN1cGVydmlzb3J5IEJvYXJkOiBOaWNvbGUg TGF1ClJlZ2lzdGVyZWQgT2ZmaWNlOiBNdW5pY2gKQ29tbWVyY2lhbCBSZWdpc3RlcjogQW10c2dl cmljaHQgTXVlbmNoZW4gSFJCIDE4NjkyOAo=