From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 125938 invoked by alias); 19 May 2017 21:11:52 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 125919 invoked by uid 89); 19 May 2017 21:11:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-6.9 required=5.0 tests=BAYES_00,GIT_PATCH_2,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: EUR03-VE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr50055.outbound.protection.outlook.com (HELO EUR03-VE1-obe.outbound.protection.outlook.com) (40.107.5.55) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 19 May 2017 21:11:49 +0000 Received: from HE1PR0802MB2377.eurprd08.prod.outlook.com (10.172.129.19) by HE1PR0802MB2378.eurprd08.prod.outlook.com (10.172.129.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1084.16; Fri, 19 May 2017 21:11:48 +0000 Received: from HE1PR0802MB2377.eurprd08.prod.outlook.com ([fe80::488f:32b:9c56:4080]) by HE1PR0802MB2377.eurprd08.prod.outlook.com ([fe80::488f:32b:9c56:4080%19]) with mapi id 15.01.1084.031; Fri, 19 May 2017 21:11:48 +0000 From: Michael Collison To: Christophe Lyon CC: "gcc-patches@gcc.gnu.org" , nd Subject: RE: [PATCH][Aarch64] Add support for overflow add and sub operations Date: Fri, 19 May 2017 21:42:00 -0000 Message-ID: References: In-Reply-To: authentication-results: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;HE1PR0802MB2378;7:P6B+XUsKv8jIOQoV5zz88HDfctEynICdAluv3McfP6nfZW/2iJ2yidljpro0kHSHfo2Oug2VBH1dVfdPQ/obsi5gXRSlPN3o3EHpByUwE5AQq8FOeCcg7TfERDf5bcTd1JDvX38tcBWOALJNj9r3LuRyqt9x7VZ9Xj7s5f3V0EJZxINIeHi9T2OQ4nUMRamXLyQm0xuGOMkRYb6GGek65HfZxL489BXoMV0xZ9gncau5e0WRr1zwv/dQiJEn3wEIOeYcgHkn6q0bi/NVfZjVX9uN0hRHSFOtXpnlVGWmnC2CdN3zAx8OqsZGlfhm/MFlMcP1UcEBf6YtVJIm5YIovg== x-ms-office365-filtering-correlation-id: 6745e066-16df-4167-f224-08d49efba987 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254075)(48565401081)(201703131423075)(201703031133081);SRVR:HE1PR0802MB2378; nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(22074186197030)(183786458502308); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(102415395)(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123564025)(20161123562025)(20161123558100)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148);SRVR:HE1PR0802MB2378;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0802MB2378; x-forefront-prvs: 031257FE13 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(39410400002)(39860400002)(39400400002)(39840400002)(39450400003)(39850400002)(377424004)(377454003)(24454002)(13464003)(2906002)(53936002)(5660300001)(4326008)(86362001)(6246003)(110136004)(102836003)(3846002)(8936002)(72206003)(6436002)(6506006)(5250100002)(8676002)(6116002)(33656002)(81166006)(5890100001)(966005)(9686003)(55016002)(99286003)(66066001)(6306002)(54906002)(305945005)(229853002)(3660700001)(3280700002)(6916009)(2950100002)(99936001)(189998001)(54356999)(76176999)(2900100001)(53546009)(50986999)(38730400002)(74316002)(478600001)(25786009)(7696004);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR0802MB2378;H:HE1PR0802MB2377.eurprd08.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/mixed; boundary="_002_HE1PR0802MB2377137CC85A480F3C06181295E50HE1PR0802MB2377_" MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2017 21:11:47.7585 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0802MB2378 X-SW-Source: 2017-05/txt/msg01616.txt.bz2 --_002_HE1PR0802MB2377137CC85A480F3C06181295E50HE1PR0802MB2377_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-length: 6332 Q2hyaXN0b3BoZSwNCg0KSSBoYWQgYSB0eXBlIGluIHRoZSB0d28gdGVzdCBj YXNlczogImFkZGNzIiBzaG91bGQgaGF2ZSBiZWVuICJhZGNzIi4gSSBjYXVn aHQgdGhpcyBwcmV2aW91c2x5IGJ1dCBzdWJtaXR0ZWQgdGhlIHByZXZpb3Vz IHBhdGNoIGluY29ycmVjdGx5LiBVcGRhdGVkIHBhdGNoIGF0dGFjaGVkLg0K DQpPa2F5IGZvciB0cnVuaz8NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCkZyb206IENocmlzdG9waGUgTHlvbiBbbWFpbHRvOmNocmlzdG9waGUu bHlvbkBsaW5hcm8ub3JnXSANClNlbnQ6IEZyaWRheSwgTWF5IDE5LCAyMDE3 IDM6NTkgQU0NClRvOiBNaWNoYWVsIENvbGxpc29uIDxNaWNoYWVsLkNvbGxp c29uQGFybS5jb20+DQpDYzogZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc7IG5k IDxuZEBhcm0uY29tPg0KU3ViamVjdDogUmU6IFtQQVRDSF1bQWFyY2g2NF0g QWRkIHN1cHBvcnQgZm9yIG92ZXJmbG93IGFkZCBhbmQgc3ViIG9wZXJhdGlv bnMNCg0KSGkgTWljaGFlbCwNCg0KDQpPbiAxOSBNYXkgMjAxNyBhdCAwNzox MiwgTWljaGFlbCBDb2xsaXNvbiA8TWljaGFlbC5Db2xsaXNvbkBhcm0uY29t PiB3cm90ZToNCj4gSGksDQo+DQo+IFRoaXMgcGF0Y2ggaW1wcm92ZXMgY29k ZSBnZW5lcmF0aW9ucyBmb3IgYnVpbHRpbiBhcml0aG1ldGljIG92ZXJmbG93 IG9wZXJhdGlvbnMgZm9yIHRoZSBhYXJjaDY0IGJhY2tlbmQuIEFzIGFuIGV4 YW1wbGUgZm9yIGEgc2ltcGxlIHRlc3QgY2FzZSBzdWNoIGFzOg0KPg0KPiBT dXJlIGZvciBhIHNpbXBsZSB0ZXN0IGNhc2Ugc3VjaCBhczoNCj4NCj4gaW50 DQo+IGYgKGludCB4LCBpbnQgeSwgaW50ICpvdmYpDQo+IHsNCj4gICBpbnQg cmVzOw0KPiAgICpvdmYgPSBfX2J1aWx0aW5fc2FkZF9vdmVyZmxvdyAoeCwg eSwgJnJlcyk7DQo+ICAgcmV0dXJuIHJlczsNCj4gfQ0KPg0KPiBDdXJyZW50 IHRydW5rIGF0IC1PMiBnZW5lcmF0ZXMNCj4NCj4gZjoNCj4gICAgICAgICBt b3YgICAgIHczLCB3MA0KPiAgICAgICAgIG1vdiAgICAgdzQsIDANCj4gICAg ICAgICBhZGQgICAgIHcwLCB3MCwgdzENCj4gICAgICAgICB0Ym56ICAgIHcx LCAjMzEsIC5MNA0KPiAgICAgICAgIGNtcCAgICAgdzAsIHczDQo+ICAgICAg ICAgYmx0ICAgICAuTDMNCj4gLkwyOg0KPiAgICAgICAgIHN0ciAgICAgdzQs IFt4Ml0NCj4gICAgICAgICByZXQNCj4gICAgICAgICAucDJhbGlnbiAzDQo+ IC5MNDoNCj4gICAgICAgICBjbXAgICAgIHcwLCB3Mw0KPiAgICAgICAgIGJs ZSAgICAgLkwyDQo+IC5MMzoNCj4gICAgICAgICBtb3YgICAgIHc0LCAxDQo+ ICAgICAgICAgYiAgICAgICAuTDINCj4NCj4NCj4gV2l0aCB0aGUgcGF0Y2gg dGhpcyBub3cgZ2VuZXJhdGVzOg0KPg0KPiBmOg0KPiAgICAgICAgIGFkZHMg ICAgdzAsIHcwLCB3MQ0KPiAgICAgICAgIGNzZXQgICAgdzEsIHZzDQo+ICAg ICAgICAgc3RyICAgICB3MSwgW3gyXQ0KPiAgICAgICAgIHJldA0KPg0KPg0K PiBPcmlnaW5hbCBwYXRjaCBmcm9tIFJpY2hhcmQgSGVuZGVyc29uOg0KPg0K PiBodHRwczovL2djYy5nbnUub3JnL21sL2djYy1wYXRjaGVzLzIwMTYtMDEv bXNnMDE5MDMuaHRtbA0KPg0KPg0KPiBPa2F5IGZvciB0cnVuaz8NCj4NCj4g MjAxNy0wNS0xNyAgTWljaGFlbCBDb2xsaXNvbiAgPG1pY2hhZWwuY29sbGlz b25AYXJtLmNvbT4NCj4gICAgICAgICAgICAgUmljaGFyZCBIZW5kZXJzb24g PHJ0aEByZWRoYXQuY29tPg0KPg0KPiAgICAgICAgICogY29uZmlnL2FhcmNo NjQvYWFyY2g2NC1tb2Rlcy5kZWYgKENDX1YpOiBOZXcuDQo+ICAgICAgICAg KiBjb25maWcvYWFyY2g2NC9hYXJjaDY0LXByb3Rvcy5oDQo+ICAgICAgICAg KGFhcmNoNjRfYWRkXzEyOGJpdF9zY3JhdGNoX3JlZ3MpOiBEZWNsYXJlDQo+ ICAgICAgICAgKGFhcmNoNjRfYWRkXzEyOGJpdF9zY3JhdGNoX3JlZ3MpOiBE ZWNsYXJlLg0KPiAgICAgICAgIChhYXJjaDY0X2V4cGFuZF9zdWJ2dGkpOiBE ZWNsYXJlLg0KPiAgICAgICAgIChhYXJjaDY0X2dlbl91bmxpa2VseV9jYnJh bmNoKTogRGVjbGFyZQ0KPiAgICAgICAgICogY29uZmlnL2FhcmNoNjQvYWFy Y2g2NC5jIChhYXJjaDY0X3NlbGVjdF9jY19tb2RlKTogVGVzdA0KPiAgICAg ICAgIGZvciBzaWduZWQgb3ZlcmZsb3cgdXNpbmcgQ0NfVm1vZGUuDQo+ICAg ICAgICAgKGFhcmNoNjRfZ2V0X2NvbmRpdGlvbl9jb2RlXzEpOiBIYW5kbGUg Q0NfVm1vZGUuDQo+ICAgICAgICAgKGFhcmNoNjRfZ2VuX3VubGlrZWx5X2Ni cmFuY2gpOiBOZXcgZnVuY3Rpb24uDQo+ICAgICAgICAgKGFhcmNoNjRfYWRk XzEyOGJpdF9zY3JhdGNoX3JlZ3MpOiBOZXcgZnVuY3Rpb24uDQo+ICAgICAg ICAgKGFhcmNoNjRfc3Vidl8xMjhiaXRfc2NyYXRjaF9yZWdzKTogTmV3IGZ1 bmN0aW9uLg0KPiAgICAgICAgIChhYXJjaDY0X2V4cGFuZF9zdWJ2dGkpOiBO ZXcgZnVuY3Rpb24uDQo+ICAgICAgICAgKiBjb25maWcvYWFyY2g2NC9hYXJj aDY0Lm1kIChhZGR2PEdQST40LCB1YWRkdjxHUEk+NCk6IE5ldy4NCj4gICAg ICAgICAoYWRkdGkzKTogQ3JlYXRlIHNpbXBsZXIgY29kZSBpZiBsb3cgcGFy dCBpcyBhbHJlYWR5IGtub3duIHRvIGJlIDAuDQo+ICAgICAgICAgKGFkZHZ0 aTQsIHVhZGR2dGk0KTogTmV3Lg0KPiAgICAgICAgICgqYWRkPEdQST4zX2Nv bXBhcmVDX2Njb25seV9pbW0pOiBOZXcuDQo+ICAgICAgICAgKCphZGQ8R1BJ PjNfY29tcGFyZUNfY2Nvbmx5KTogTmV3Lg0KPiAgICAgICAgICgqYWRkPEdQ ST4zX2NvbXBhcmVDX2ltbSk6IE5ldy4NCj4gICAgICAgICAoKmFkZDxHUEk+ M19jb21wYXJlQyk6IFJlbmFtZSBmcm9tIGFkZDxHUEk+M19jb21wYXJlMTsg ZG8gbm90DQo+ICAgICAgICAgaGFuZGxlIGNvbnN0YW50cyB3aXRoaW4gdGhp cyBwYXR0ZXJuLg0KPiAgICAgICAgICgqYWRkPEdQST4zX2NvbXBhcmVWX2Nj b25seV9pbW0pOiBOZXcuDQo+ICAgICAgICAgKCphZGQ8R1BJPjNfY29tcGFy ZVZfY2Nvbmx5KTogTmV3Lg0KPiAgICAgICAgICgqYWRkPEdQST4zX2NvbXBh cmVWX2ltbSk6IE5ldy4NCj4gICAgICAgICAoYWRkPEdQST4zX2NvbXBhcmVW KTogTmV3Lg0KPiAgICAgICAgIChhZGQ8R1BJPjNfY2FycnlpbkMsIGFkZDxH UEk+M19jYXJyeWluVik6IE5ldy4NCj4gICAgICAgICAoKmFkZDxHUEk+M19j YXJyeWluQ196ZXJvLCAqYWRkPEdQST4zX2NhcnJ5aW5WX3plcm8pOiBOZXcu DQo+ICAgICAgICAgKCphZGQ8R1BJPjNfY2FycnlpbkMsICphZGQ8R1BJPjNf Y2FycnlpblYpOiBOZXcuDQo+ICAgICAgICAgKHN1YnY8R1BJPjQsIHVzdWJ2 PEdQST40KTogTmV3Lg0KPiAgICAgICAgIChzdWJ0aSk6IEhhbmRsZSBvcDEg emVyby4NCj4gICAgICAgICAoc3VidnRpNCwgdXN1YjR0aTQpOiBOZXcuDQo+ ICAgICAgICAgKCpzdWI8R1BJPjNfY29tcGFyZTFfaW1tKTogTmV3Lg0KPiAg ICAgICAgIChzdWI8R1BJPjNfY2FycnlpbkNWKTogTmV3Lg0KPiAgICAgICAg ICgqc3ViPEdQST4zX2NhcnJ5aW5DVl96MV96MiwgKnN1YjxHUEk+M19jYXJy eWluQ1ZfejEpOiBOZXcuDQo+ICAgICAgICAgKCpzdWI8R1BJPjNfY2Fycnlp bkNWX3oyLCAqc3ViPEdQST4zX2NhcnJ5aW5DVik6IE5ldy4NCj4gICAgICAg ICAqIHRlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9idWlsdGluX3NhZGRfMTI4 LmM6IE5ldyB0ZXN0Y2FzZS4NCj4gICAgICAgICAqIHRlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FybS9idWlsdGluX3NhZGRsLmM6IE5ldyB0ZXN0Y2FzZS4NCj4g ICAgICAgICAqIHRlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9idWlsdGluX3Nh ZGRsbC5jOiBOZXcgdGVzdGNhc2UuDQo+ICAgICAgICAgKiB0ZXN0c3VpdGUv Z2NjLnRhcmdldC9hcm0vYnVpbHRpbl91YWRkXzEyOC5jOiBOZXcgdGVzdGNh c2UuDQo+ICAgICAgICAgKiB0ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vYnVp bHRpbl91YWRkbC5jOiBOZXcgdGVzdGNhc2UuDQo+ICAgICAgICAgKiB0ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hcm0vYnVpbHRpbl91YWRkbGwuYzogTmV3IHRl c3RjYXNlLg0KPiAgICAgICAgICogdGVzdHN1aXRlL2djYy50YXJnZXQvYXJt L2J1aWx0aW5fc3N1Yl8xMjguYzogTmV3IHRlc3RjYXNlLg0KPiAgICAgICAg ICogdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL2J1aWx0aW5fc3N1YmwuYzog TmV3IHRlc3RjYXNlLg0KPiAgICAgICAgICogdGVzdHN1aXRlL2djYy50YXJn ZXQvYXJtL2J1aWx0aW5fc3N1YmxsLmM6IE5ldyB0ZXN0Y2FzZS4NCj4gICAg ICAgICAqIHRlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9idWlsdGluX3VzdWJf MTI4LmM6IE5ldyB0ZXN0Y2FzZS4NCj4gICAgICAgICAqIHRlc3RzdWl0ZS9n Y2MudGFyZ2V0L2FybS9idWlsdGluX3VzdWJsLmM6IE5ldyB0ZXN0Y2FzZS4N Cj4gICAgICAgICAqIHRlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9idWlsdGlu X3VzdWJsbC5jOiBOZXcgdGVzdGNhc2UuDQoNCkkndmUgdHJpZWQgeW91ciBw YXRjaCwgYW5kIDIgb2YgdGhlIG5ldyB0ZXN0cyBGQUlMOg0KICAgIGdjYy50 YXJnZXQvYWFyY2g2NC9idWlsdGluX3NhZGRfMTI4LmMgc2Nhbi1hc3NlbWJs ZXIgYWRkY3MNCiAgICBnY2MudGFyZ2V0L2FhcmNoNjQvYnVpbHRpbl91YWRk XzEyOC5jIHNjYW4tYXNzZW1ibGVyIGFkZGNzDQoNCkFtIEkgbWlzc2luZyBz b21ldGhpbmc/DQoNClRoYW5rcywNCg0KQ2hyaXN0b3BoZQ0K --_002_HE1PR0802MB2377137CC85A480F3C06181295E50HE1PR0802MB2377_ Content-Type: application/octet-stream; name="pr6308v2.patch" Content-Description: pr6308v2.patch Content-Disposition: attachment; filename="pr6308v2.patch"; size=29467; creation-date="Fri, 19 May 2017 21:09:39 GMT"; modification-date="Fri, 19 May 2017 21:09:39 GMT" Content-Transfer-Encoding: base64 Content-length: 39947 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LW1vZGVz LmRlZiBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LW1vZGVzLmRlZgpp bmRleCA0NWY3YTQ0Li4yNDRlNDkwIDEwMDY0NAotLS0gYS9nY2MvY29uZmln L2FhcmNoNjQvYWFyY2g2NC1tb2Rlcy5kZWYKKysrIGIvZ2NjL2NvbmZpZy9h YXJjaDY0L2FhcmNoNjQtbW9kZXMuZGVmCkBAIC0yNCw2ICsyNCw3IEBAIEND X01PREUgKENDX1NXUCk7CiBDQ19NT0RFIChDQ19OWik7ICAgIC8qIE9ubHkg TiBhbmQgWiBiaXRzIG9mIGNvbmRpdGlvbiBmbGFncyBhcmUgdmFsaWQuICAq LwogQ0NfTU9ERSAoQ0NfWik7ICAgICAvKiBPbmx5IFogYml0IG9mIGNvbmRp dGlvbiBmbGFncyBpcyB2YWxpZC4gICovCiBDQ19NT0RFIChDQ19DKTsgICAg IC8qIE9ubHkgQyBiaXQgb2YgY29uZGl0aW9uIGZsYWdzIGlzIHZhbGlkLiAg Ki8KK0NDX01PREUgKENDX1YpOyAgICAgLyogT25seSBWIGJpdCBvZiBjb25k aXRpb24gZmxhZ3MgaXMgdmFsaWQuICAqLwogCiAvKiBIYWxmLXByZWNpc2lv biBmbG9hdGluZyBwb2ludCBmb3IgX19mcDE2LiAgKi8KIEZMT0FUX01PREUg KEhGLCAyLCAwKTsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9h YXJjaDY0LXByb3Rvcy5oIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQt cHJvdG9zLmgKaW5kZXggZjU1ZDRiYS4uZjM4YjJiOCAxMDA2NDQKLS0tIGEv Z2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtcHJvdG9zLmgKKysrIGIvZ2Nj L2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtcHJvdG9zLmgKQEAgLTM4OCw2ICsz ODgsMTggQEAgdm9pZCBhYXJjaDY0X3JlbGF5b3V0X3NpbWRfdHlwZXMgKHZv aWQpOwogdm9pZCBhYXJjaDY0X3Jlc2V0X3ByZXZpb3VzX2ZuZGVjbCAodm9p ZCk7CiBib29sIGFhcmNoNjRfcmV0dXJuX2FkZHJlc3Nfc2lnbmluZ19lbmFi bGVkICh2b2lkKTsKIHZvaWQgYWFyY2g2NF9zYXZlX3Jlc3RvcmVfdGFyZ2V0 X2dsb2JhbHMgKHRyZWUpOwordm9pZCBhYXJjaDY0X2FkZF8xMjhiaXRfc2Ny YXRjaF9yZWdzIChydHggb3AxLCBydHggb3AyLCBydHggKmxvd19kZXN0LAor CQkJCSAgICAgIHJ0eCAqbG93X2luMSwgcnR4ICpsb3dfaW4yLAorCQkJCSAg ICAgIHJ0eCAqaGlnaF9kZXN0LCBydHggKmhpZ2hfaW4xLAorCQkJCSAgICAg IHJ0eCAqaGlnaF9pbjIpOwordm9pZCBhYXJjaDY0X3N1YnZfMTI4Yml0X3Nj cmF0Y2hfcmVncyAocnR4IG9wMSwgcnR4IG9wMiwgcnR4ICpsb3dfZGVzdCwK KwkJCQkgICAgICAgcnR4ICpsb3dfaW4xLCBydHggKmxvd19pbjIsCisJCQkJ ICAgICAgIHJ0eCAqaGlnaF9kZXN0LCBydHggKmhpZ2hfaW4xLAorCQkJCSAg ICAgICBydHggKmhpZ2hfaW4yKTsKK3ZvaWQgYWFyY2g2NF9leHBhbmRfc3Vi dnRpIChydHggb3AwLCBydHggbG93X2Rlc3QsIHJ0eCBsb3dfaW4xLAorCQkJ ICAgIHJ0eCBsb3dfaW4yLCBydHggaGlnaF9kZXN0LCBydHggaGlnaF9pbjEs CisJCQkgICAgcnR4IGhpZ2hfaW4yKTsKKwogCiAvKiBJbml0aWFsaXplIGJ1 aWx0aW5zIGZvciBTSU1EIGludHJpbnNpY3MuICAqLwogdm9pZCBpbml0X2Fh cmNoNjRfc2ltZF9idWlsdGlucyAodm9pZCk7CkBAIC00MTIsNiArNDI0LDgg QEAgYm9vbCBhYXJjaDY0X2Zsb2F0X2NvbnN0X3JlcHJlc2VudGFibGVfcCAo cnR4KTsKIAogI2lmIGRlZmluZWQgKFJUWF9DT0RFKQogCit2b2lkIGFhcmNo NjRfZ2VuX3VubGlrZWx5X2NicmFuY2ggKGVudW0gcnR4X2NvZGUsIG1hY2hp bmVfbW9kZSBjY19tb2RlLAorCQkJCSAgIHJ0eCBsYWJlbF9yZWYpOwogYm9v bCBhYXJjaDY0X2xlZ2l0aW1hdGVfYWRkcmVzc19wIChtYWNoaW5lX21vZGUs IHJ0eCwgUlRYX0NPREUsIGJvb2wpOwogbWFjaGluZV9tb2RlIGFhcmNoNjRf c2VsZWN0X2NjX21vZGUgKFJUWF9DT0RFLCBydHgsIHJ0eCk7CiBydHggYWFy Y2g2NF9nZW5fY29tcGFyZV9yZWcgKFJUWF9DT0RFLCBydHgsIHJ0eCk7CmRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jIGIvZ2Nj L2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuYwppbmRleCBmMzQzZDkyLi43MWE2 NTFjIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5j CisrKyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmMKQEAgLTQ3MTYs NiArNDcxNiwxMyBAQCBhYXJjaDY0X3NlbGVjdF9jY19tb2RlIChSVFhfQ09E RSBjb2RlLCBydHggeCwgcnR4IHkpCiAgICAgICAmJiBHRVRfQ09ERSAoeSkg PT0gWkVST19FWFRFTkQpCiAgICAgcmV0dXJuIENDX0Ntb2RlOwogCisgIC8q IEEgdGVzdCBmb3Igc2lnbmVkIG92ZXJmbG93LiAgKi8KKyAgaWYgKChHRVRf TU9ERSAoeCkgPT0gREltb2RlIHx8IEdFVF9NT0RFICh4KSA9PSBUSW1vZGUp CisgICAgICAmJiBjb2RlID09IE5FCisgICAgICAmJiBHRVRfQ09ERSAoeCkg PT0gUExVUworICAgICAgJiYgR0VUX0NPREUgKHkpID09IFNJR05fRVhURU5E KQorICAgIHJldHVybiBDQ19WbW9kZTsKKwogICAvKiBGb3IgZXZlcnl0aGlu ZyBlbHNlLCByZXR1cm4gQ0Ntb2RlLiAgKi8KICAgcmV0dXJuIENDbW9kZTsK IH0KQEAgLTQ4MjIsNiArNDgyOSwxNSBAQCBhYXJjaDY0X2dldF9jb25kaXRp b25fY29kZV8xIChlbnVtIG1hY2hpbmVfbW9kZSBtb2RlLCBlbnVtIHJ0eF9j b2RlIGNvbXBfY29kZSkKIAl9CiAgICAgICBicmVhazsKIAorICAgIGNhc2Ug Q0NfVm1vZGU6CisgICAgICBzd2l0Y2ggKGNvbXBfY29kZSkKKwl7CisJY2Fz ZSBORTogcmV0dXJuIEFBUkNINjRfVlM7CisJY2FzZSBFUTogcmV0dXJuIEFB UkNINjRfVkM7CisJZGVmYXVsdDogcmV0dXJuIC0xOworCX0KKyAgICAgIGJy ZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgIHJldHVybiAtMTsKICAgICB9 CkBAIC0xMzYzMCw2ICsxMzY0Niw4OCBAQCBhYXJjaDY0X3NwbGl0X2RpbW9k ZV9jb25zdF9zdG9yZSAocnR4IGRzdCwgcnR4IHNyYykKICAgcmV0dXJuIHRy dWU7CiB9CiAKKy8qIEdlbmVyYXRlIFJUTCBmb3IgYSBjb25kaXRpb25hbCBi cmFuY2ggd2l0aCBydHggY29tcGFyaXNvbiBDT0RFIGluCisgICBtb2RlIEND X01PREUuICBUaGUgZGVzdGluYXRpb24gb2YgdGhlIHVubGlrZWx5IGNvbmRp dGlvbmFsIGJyYW5jaAorICAgaXMgTEFCRUxfUkVGLiAgKi8KKwordm9pZAor YWFyY2g2NF9nZW5fdW5saWtlbHlfY2JyYW5jaCAoZW51bSBydHhfY29kZSBj b2RlLCBtYWNoaW5lX21vZGUgY2NfbW9kZSwKKwkJCSAgICAgIHJ0eCBsYWJl bF9yZWYpCit7CisgIHJ0eCB4OworICB4ID0gZ2VuX3J0eF9mbXRfZWUgKGNv ZGUsIFZPSURtb2RlLAorCQkgICAgICBnZW5fcnR4X1JFRyAoY2NfbW9kZSwg Q0NfUkVHTlVNKSwKKwkJICAgICAgY29uc3QwX3J0eCk7CisKKyAgeCA9IGdl bl9ydHhfSUZfVEhFTl9FTFNFIChWT0lEbW9kZSwgeCwKKwkJCSAgICBnZW5f cnR4X0xBQkVMX1JFRiAoVk9JRG1vZGUsIGxhYmVsX3JlZiksCisJCQkgICAg cGNfcnR4KTsKKyAgYWFyY2g2NF9lbWl0X3VubGlrZWx5X2p1bXAgKGdlbl9y dHhfU0VUIChwY19ydHgsIHgpKTsKK30KKwordm9pZCBhYXJjaDY0X2FkZF8x MjhiaXRfc2NyYXRjaF9yZWdzIChydHggb3AxLCBydHggb3AyLCBydHggKmxv d19kZXN0LAorCQkJCSAgICAgIHJ0eCAqbG93X2luMSwgcnR4ICpsb3dfaW4y LAorCQkJCSAgICAgIHJ0eCAqaGlnaF9kZXN0LCBydHggKmhpZ2hfaW4xLAor CQkJCSAgICAgIHJ0eCAqaGlnaF9pbjIpCit7CisgICpsb3dfZGVzdCA9IGdl bl9yZWdfcnR4IChESW1vZGUpOworICAqbG93X2luMSA9IGdlbl9sb3dwYXJ0 IChESW1vZGUsIG9wMSk7CisgICpsb3dfaW4yID0gc2ltcGxpZnlfZ2VuX3N1 YnJlZyAoREltb2RlLCBvcDIsIFRJbW9kZSwKKwkJCQkgIHN1YnJlZ19sb3dw YXJ0X29mZnNldCAoREltb2RlLCBUSW1vZGUpKTsKKyAgKmhpZ2hfZGVzdCA9 IGdlbl9yZWdfcnR4IChESW1vZGUpOworICAqaGlnaF9pbjEgPSBnZW5faGln aHBhcnQgKERJbW9kZSwgb3AxKTsKKyAgKmhpZ2hfaW4yID0gc2ltcGxpZnlf Z2VuX3N1YnJlZyAoREltb2RlLCBvcDIsIFRJbW9kZSwKKwkJCQkgICBzdWJy ZWdfaGlnaHBhcnRfb2Zmc2V0IChESW1vZGUsIFRJbW9kZSkpOworfQorCit2 b2lkIGFhcmNoNjRfc3Vidl8xMjhiaXRfc2NyYXRjaF9yZWdzIChydHggb3Ax LCBydHggb3AyLCBydHggKmxvd19kZXN0LAorCQkJCSAgICAgICBydHggKmxv d19pbjEsIHJ0eCAqbG93X2luMiwKKwkJCQkgICAgICAgcnR4ICpoaWdoX2Rl c3QsIHJ0eCAqaGlnaF9pbjEsCisJCQkJICAgICAgIHJ0eCAqaGlnaF9pbjIp Cit7CisgICpsb3dfZGVzdCA9IGdlbl9yZWdfcnR4IChESW1vZGUpOworICAq bG93X2luMSA9IHNpbXBsaWZ5X2dlbl9zdWJyZWcgKERJbW9kZSwgb3AxLCBU SW1vZGUsCisJCQkJICBzdWJyZWdfbG93cGFydF9vZmZzZXQgKERJbW9kZSwg VEltb2RlKSk7CisgICpsb3dfaW4yID0gc2ltcGxpZnlfZ2VuX3N1YnJlZyAo REltb2RlLCBvcDIsIFRJbW9kZSwKKwkJCQkgIHN1YnJlZ19sb3dwYXJ0X29m ZnNldCAoREltb2RlLCBUSW1vZGUpKTsKKyAgKmhpZ2hfZGVzdCA9IGdlbl9y ZWdfcnR4IChESW1vZGUpOworICAqaGlnaF9pbjEgPSBzaW1wbGlmeV9nZW5f c3VicmVnIChESW1vZGUsIG9wMSwgVEltb2RlLAorCQkJCSAgIHN1YnJlZ19o aWdocGFydF9vZmZzZXQgKERJbW9kZSwgVEltb2RlKSk7CisgICpoaWdoX2lu MiA9IHNpbXBsaWZ5X2dlbl9zdWJyZWcgKERJbW9kZSwgb3AyLCBUSW1vZGUs CisJCQkJICAgc3VicmVnX2hpZ2hwYXJ0X29mZnNldCAoREltb2RlLCBUSW1v ZGUpKTsKKworfQorCit2b2lkIGFhcmNoNjRfZXhwYW5kX3N1YnZ0aSAocnR4 IG9wMCwgcnR4IGxvd19kZXN0LCBydHggbG93X2luMSwKKwkJCSAgICBydHgg bG93X2luMiwgcnR4IGhpZ2hfZGVzdCwgcnR4IGhpZ2hfaW4xLAorCQkJICAg IHJ0eCBoaWdoX2luMikKK3sKKyAgaWYgKGxvd19pbjIgPT0gY29uc3QwX3J0 eCkKKyAgICB7CisgICAgICBsb3dfZGVzdCA9IGxvd19pbjE7CisgICAgICBl bWl0X2luc24gKGdlbl9zdWJkaTNfY29tcGFyZTEgKGhpZ2hfZGVzdCwgaGln aF9pbjEsCisJCQkJICAgICAgZm9yY2VfcmVnIChESW1vZGUsIGhpZ2hfaW4y KSkpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGlmIChDT05TVF9J TlRfUCAobG93X2luMikpCisJeworCSAgbG93X2luMiA9IGZvcmNlX3JlZyAo REltb2RlLCBHRU5fSU5UICgtVUlOVFZBTCAobG93X2luMikpKTsKKwkgIGhp Z2hfaW4yID0gZm9yY2VfcmVnIChESW1vZGUsIGhpZ2hfaW4yKTsKKwkgIGVt aXRfaW5zbiAoZ2VuX2FkZGRpM19jb21wYXJlQyAobG93X2Rlc3QsIGxvd19p bjEsIGxvd19pbjIpKTsKKwl9CisgICAgICBlbHNlCisJZW1pdF9pbnNuIChn ZW5fc3ViZGkzX2NvbXBhcmUxIChsb3dfZGVzdCwgbG93X2luMSwgbG93X2lu MikpOworICAgICAgZW1pdF9pbnNuIChnZW5fc3ViZGkzX2NhcnJ5aW5DViAo aGlnaF9kZXN0LAorCQkJCSAgICAgICBmb3JjZV9yZWcgKERJbW9kZSwgaGln aF9pbjEpLAorCQkJCSAgICAgICBoaWdoX2luMikpOworICAgIH0KKworICBl bWl0X21vdmVfaW5zbiAoZ2VuX2xvd3BhcnQgKERJbW9kZSwgb3AwKSwgbG93 X2Rlc3QpOworICBlbWl0X21vdmVfaW5zbiAoZ2VuX2hpZ2hwYXJ0IChESW1v ZGUsIG9wMCksIGhpZ2hfZGVzdCk7CisKK30KKwogLyogSW1wbGVtZW50IHRo ZSBUQVJHRVRfQVNBTl9TSEFET1dfT0ZGU0VUIGhvb2suICAqLwogCiBzdGF0 aWMgdW5zaWduZWQgSE9TVF9XSURFX0lOVApkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9hYXJjaDY0L2FhcmNoNjQubWQgYi9nY2MvY29uZmlnL2FhcmNoNjQv YWFyY2g2NC5tZAppbmRleCBhNjkzYTNiLi4zOTc2ZWNiIDEwMDY0NAotLS0g YS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5tZAorKysgYi9nY2MvY29u ZmlnL2FhcmNoNjQvYWFyY2g2NC5tZApAQCAtMTcxMSwyNSArMTcxMSwxMjMg QEAKICAgfQogKQogCisoZGVmaW5lX2V4cGFuZCAiYWRkdjxtb2RlPjQiCisg IFsobWF0Y2hfb3BlcmFuZDpHUEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIpCisg ICAobWF0Y2hfb3BlcmFuZDpHUEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIpCisg ICAobWF0Y2hfb3BlcmFuZDpHUEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIpCisg ICAobWF0Y2hfb3BlcmFuZCAzICIiKV0KKyAgIiIKK3sKKyAgZW1pdF9pbnNu IChnZW5fYWRkPG1vZGU+M19jb21wYXJlViAob3BlcmFuZHNbMF0sIG9wZXJh bmRzWzFdLCBvcGVyYW5kc1syXSkpOworICBhYXJjaDY0X2dlbl91bmxpa2Vs eV9jYnJhbmNoIChORSwgQ0NfVm1vZGUsIG9wZXJhbmRzWzNdKTsKKworICBE T05FOworfSkKKworKGRlZmluZV9leHBhbmQgInVhZGR2PG1vZGU+NCIKKyAg WyhtYXRjaF9vcGVyYW5kOkdQSSAwICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAg IChtYXRjaF9vcGVyYW5kOkdQSSAxICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAg IChtYXRjaF9vcGVyYW5kOkdQSSAyICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAg IChtYXRjaF9vcGVyYW5kIDMgIiIpXQorICAiIgoreworICBlbWl0X2luc24g KGdlbl9hZGQ8bW9kZT4zX2NvbXBhcmVDIChvcGVyYW5kc1swXSwgb3BlcmFu ZHNbMV0sIG9wZXJhbmRzWzJdKSk7CisgIGFhcmNoNjRfZ2VuX3VubGlrZWx5 X2NicmFuY2ggKE5FLCBDQ19DbW9kZSwgb3BlcmFuZHNbM10pOworCisgIERP TkU7Cit9KQorCisKIChkZWZpbmVfZXhwYW5kICJhZGR0aTMiCiAgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQog CShwbHVzOlRJIChtYXRjaF9vcGVyYW5kOlRJIDEgInJlZ2lzdGVyX29wZXJh bmQiICIiKQotCQkgKG1hdGNoX29wZXJhbmQ6VEkgMiAicmVnaXN0ZXJfb3Bl cmFuZCIgIiIpKSldCisJCSAobWF0Y2hfb3BlcmFuZDpUSSAyICJhYXJjaDY0 X3JlZ19vcl9pbW0iICIiKSkpXQogICAiIgogewotICBydHggbG93ID0gZ2Vu X3JlZ19ydHggKERJbW9kZSk7Ci0gIGVtaXRfaW5zbiAoZ2VuX2FkZGRpM19j b21wYXJlQyAobG93LCBnZW5fbG93cGFydCAoREltb2RlLCBvcGVyYW5kc1sx XSksCi0JCQkJICBnZW5fbG93cGFydCAoREltb2RlLCBvcGVyYW5kc1syXSkp KTsKKyAgcnR4IGwwLGwxLGwyLGgwLGgxLGgyOwogCi0gIHJ0eCBoaWdoID0g Z2VuX3JlZ19ydHggKERJbW9kZSk7Ci0gIGVtaXRfaW5zbiAoZ2VuX2FkZGRp M19jYXJyeWluIChoaWdoLCBnZW5faGlnaHBhcnQgKERJbW9kZSwgb3BlcmFu ZHNbMV0pLAotCQkJCSBnZW5faGlnaHBhcnQgKERJbW9kZSwgb3BlcmFuZHNb Ml0pKSk7CisgIGFhcmNoNjRfYWRkXzEyOGJpdF9zY3JhdGNoX3JlZ3MgKG9w ZXJhbmRzWzFdLCBvcGVyYW5kc1syXSwKKwkJCQkgICAmbDAsICZsMSwgJmwy LCAmaDAsICZoMSwgJmgyKTsKKworICBpZiAobDIgPT0gY29uc3QwX3J0eCkK KyAgICB7CisgICAgICBsMCA9IGwxOworICAgICAgaWYgKCFhYXJjaDY0X3Bs dXNsb25nX29wZXJhbmQgKGgyLCBESW1vZGUpKQorCWgyID0gZm9yY2VfcmVn IChESW1vZGUsIGgyKTsKKyAgICAgIGVtaXRfaW5zbiAoZ2VuX2FkZGRpMyAo aDAsIGgxLCBoMikpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGVt aXRfaW5zbiAoZ2VuX2FkZGRpM19jb21wYXJlQyAobDAsIGwxLCBmb3JjZV9y ZWcgKERJbW9kZSwgbDIpKSk7CisgICAgICBlbWl0X2luc24gKGdlbl9hZGRk aTNfY2FycnlpbiAoaDAsIGgxLCBmb3JjZV9yZWcgKERJbW9kZSwgaDIpKSk7 CisgICAgfQorCisgIGVtaXRfbW92ZV9pbnNuIChnZW5fbG93cGFydCAoRElt b2RlLCBvcGVyYW5kc1swXSksIGwwKTsKKyAgZW1pdF9tb3ZlX2luc24gKGdl bl9oaWdocGFydCAoREltb2RlLCBvcGVyYW5kc1swXSksIGgwKTsKIAotICBl bWl0X21vdmVfaW5zbiAoZ2VuX2xvd3BhcnQgKERJbW9kZSwgb3BlcmFuZHNb MF0pLCBsb3cpOwotICBlbWl0X21vdmVfaW5zbiAoZ2VuX2hpZ2hwYXJ0IChE SW1vZGUsIG9wZXJhbmRzWzBdKSwgaGlnaCk7CiAgIERPTkU7CiB9KQogCiso ZGVmaW5lX2V4cGFuZCAiYWRkdnRpNCIKKyAgWyhtYXRjaF9vcGVyYW5kOlRJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorICAgKG1hdGNoX29wZXJhbmQ6 VEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisgICAobWF0Y2hfb3BlcmFu ZDpUSSAyICJhYXJjaDY0X3JlZ19vcl9pbW0iICIiKQorICAgKG1hdGNoX29w ZXJhbmQgMyAiIildCisgICIiCit7CisgIHJ0eCBsMCxsMSxsMixoMCxoMSxo MjsKKworICBhYXJjaDY0X2FkZF8xMjhiaXRfc2NyYXRjaF9yZWdzIChvcGVy YW5kc1sxXSwgb3BlcmFuZHNbMl0sCisJCQkJICAgJmwwLCAmbDEsICZsMiwg JmgwLCAmaDEsICZoMik7CisKKyAgaWYgKGwyID09IGNvbnN0MF9ydHgpCisg ICAgeworICAgICAgbDAgPSBsMTsKKyAgICAgIGVtaXRfaW5zbiAoZ2VuX2Fk ZGRpM19jb21wYXJlViAoaDAsIGgxLCBmb3JjZV9yZWcgKERJbW9kZSwgaDIp KSk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgZW1pdF9pbnNuIChn ZW5fYWRkZGkzX2NvbXBhcmVDIChsMCwgbDEsIGZvcmNlX3JlZyAoREltb2Rl LCBsMikpKTsKKyAgICAgIGVtaXRfaW5zbiAoZ2VuX2FkZGRpM19jYXJyeWlu ViAoaDAsIGgxLCBmb3JjZV9yZWcgKERJbW9kZSwgaDIpKSk7CisgICAgfQor CisgIGVtaXRfbW92ZV9pbnNuIChnZW5fbG93cGFydCAoREltb2RlLCBvcGVy YW5kc1swXSksIGwwKTsKKyAgZW1pdF9tb3ZlX2luc24gKGdlbl9oaWdocGFy dCAoREltb2RlLCBvcGVyYW5kc1swXSksIGgwKTsKKworICBhYXJjaDY0X2dl bl91bmxpa2VseV9jYnJhbmNoIChORSwgQ0NfVm1vZGUsIG9wZXJhbmRzWzNd KTsKKyAgRE9ORTsKK30pCisKKyhkZWZpbmVfZXhwYW5kICJ1YWRkdnRpNCIK KyAgWyhtYXRjaF9vcGVyYW5kOlRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIi KQorICAgKG1hdGNoX29wZXJhbmQ6VEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIg IiIpCisgICAobWF0Y2hfb3BlcmFuZDpUSSAyICJhYXJjaDY0X3JlZ19vcl9p bW0iICIiKQorICAgKG1hdGNoX29wZXJhbmQgMyAiIildCisgICIiCit7Cisg IHJ0eCBsMCxsMSxsMixoMCxoMSxoMjsKKworICBhYXJjaDY0X2FkZF8xMjhi aXRfc2NyYXRjaF9yZWdzIChvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0sCisJ CQkJICAgJmwwLCAmbDEsICZsMiwgJmgwLCAmaDEsICZoMik7CisKKyAgaWYg KGwyID09IGNvbnN0MF9ydHgpCisgICAgeworICAgICAgbDAgPSBsMTsKKyAg ICAgIGVtaXRfaW5zbiAoZ2VuX2FkZGRpM19jb21wYXJlQyAoaDAsIGgxLCBm b3JjZV9yZWcgKERJbW9kZSwgaDIpKSk7CisgICAgfQorICBlbHNlCisgICAg eworICAgICAgZW1pdF9pbnNuIChnZW5fYWRkZGkzX2NvbXBhcmVDIChsMCwg bDEsIGZvcmNlX3JlZyAoREltb2RlLCBsMikpKTsKKyAgICAgIGVtaXRfaW5z biAoZ2VuX2FkZGRpM19jYXJyeWluQyAoaDAsIGgxLCBmb3JjZV9yZWcgKERJ bW9kZSwgaDIpKSk7CisgICAgfQorCisgIGVtaXRfbW92ZV9pbnNuIChnZW5f bG93cGFydCAoREltb2RlLCBvcGVyYW5kc1swXSksIGwwKTsKKyAgZW1pdF9t b3ZlX2luc24gKGdlbl9oaWdocGFydCAoREltb2RlLCBvcGVyYW5kc1swXSks IGgwKTsKKworICBhYXJjaDY0X2dlbl91bmxpa2VseV9jYnJhbmNoIChORSwg Q0NfQ21vZGUsIG9wZXJhbmRzWzNdKTsKKyAgRE9ORTsKKyB9KQorCiAoZGVm aW5lX2luc24gImFkZDxtb2RlPjNfY29tcGFyZTAiCiAgIFsoc2V0IChyZWc6 Q0NfTlogQ0NfUkVHTlVNKQogCShjb21wYXJlOkNDX05aCkBAIC0xODI4LDEw ICsxOTI2LDcwIEBACiAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHVzX3NyZWci KV0KICkKIAorOzsgTm90ZSB0aGF0IHNpbmNlIHdlJ3JlIHNpZ24tZXh0ZW5k aW5nLCBtYXRjaCB0aGUgaW1tZWRpYXRlIGluIEdQSQorOzsgcmF0aGVyIHRo YW4gaW4gRFdJLiAgU2luY2UgQ09OU1RfSU5UIGlzIG1vZGVsZXNzLCB0aGlz IHdvcmtzIGZpbmUuCisoZGVmaW5lX2luc24gIiphZGQ8bW9kZT4zX2NvbXBh cmVWX2Njb25seV9pbW0iCisgIFsoc2V0IChyZWc6Q0NfViBDQ19SRUdOVU0p CisJKG5lOkNDX1YKKwkgIChwbHVzOjxEV0k+CisJICAgIChzaWduX2V4dGVu ZDo8RFdJPiAobWF0Y2hfb3BlcmFuZDpHUEkgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgInIsciIpKQorCSAgICAobWF0Y2hfb3BlcmFuZDpHUEkgMSAiYWFyY2g2 NF9wbHVzX2ltbWVkaWF0ZSIgIkksSiIpKQorCSAgKHNpZ25fZXh0ZW5kOjxE V0k+IChwbHVzOkdQSSAobWF0Y2hfZHVwIDApIChtYXRjaF9kdXAgMSkpKSkp XQorICAiIgorICAiQAorICBjbW5cXHQlPHc+MCwgJTx3PjEKKyAgY21wXFx0 JTx3PjAsICMlbjEiCisgIFsoc2V0X2F0dHIgInR5cGUiICJhbHVzX2ltbSIp XQorKQorCisoZGVmaW5lX2luc24gIiphZGQ8bW9kZT4zX2NvbXBhcmVWX2Nj b25seSIKKyAgWyhzZXQgKHJlZzpDQ19WIENDX1JFR05VTSkKKwkobmU6Q0Nf VgorCSAgKHBsdXM6PERXST4KKwkgICAgKHNpZ25fZXh0ZW5kOjxEV0k+ICht YXRjaF9vcGVyYW5kOkdQSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKQor CSAgICAoc2lnbl9leHRlbmQ6PERXST4gKG1hdGNoX29wZXJhbmQ6R1BJIDEg InJlZ2lzdGVyX29wZXJhbmQiICJyIikpKQorCSAgKHNpZ25fZXh0ZW5kOjxE V0k+IChwbHVzOkdQSSAobWF0Y2hfZHVwIDApIChtYXRjaF9kdXAgMSkpKSkp XQorICAiIgorICAiY21uXFx0JTx3PjAsICU8dz4xIgorICBbKHNldF9hdHRy ICJ0eXBlIiAiYWx1c19zcmVnIildCispCisKKyhkZWZpbmVfaW5zbiAiKmFk ZDxtb2RlPjNfY29tcGFyZVZfaW1tIgorICBbKHNldCAocmVnOkNDX1YgQ0Nf UkVHTlVNKQorCShuZTpDQ19WCisJICAocGx1czo8RFdJPgorCSAgICAoc2ln bl9leHRlbmQ6PERXST4KKwkgICAgICAobWF0Y2hfb3BlcmFuZDpHUEkgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgInIsciIpKQorCSAgICAobWF0Y2hfb3BlcmFu ZDpHUEkgMiAiYWFyY2g2NF9wbHVzX2ltbWVkaWF0ZSIgIkksSiIpKQorCSAg KHNpZ25fZXh0ZW5kOjxEV0k+CisJICAgIChwbHVzOkdQSSAobWF0Y2hfZHVw IDEpIChtYXRjaF9kdXAgMikpKSkpCisgICAoc2V0IChtYXRjaF9vcGVyYW5k OkdQSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCisJKHBsdXM6R1BJ IChtYXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAyKSkpXQorICAgIiIKKyAgICJA CisgICBhZGRzXFx0JTx3PjAsICU8dz4xLCAlPHc+MgorICAgc3Vic1xcdCU8 dz4wLCAlPHc+MSwgIyVuMiIKKyAgWyhzZXRfYXR0ciAidHlwZSIgImFsdXNf aW1tLGFsdXNfaW1tIildCispCisKKyhkZWZpbmVfaW5zbiAiYWRkPG1vZGU+ M19jb21wYXJlViIKKyAgWyhzZXQgKHJlZzpDQ19WIENDX1JFR05VTSkKKwko bmU6Q0NfVgorCSAgKHBsdXM6PERXST4KKwkgICAgKHNpZ25fZXh0ZW5kOjxE V0k+IChtYXRjaF9vcGVyYW5kOkdQSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi ciIpKQorCSAgICAoc2lnbl9leHRlbmQ6PERXST4gKG1hdGNoX29wZXJhbmQ6 R1BJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKQorCSAgKHNpZ25fZXh0 ZW5kOjxEV0k+IChwbHVzOkdQSSAobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAg MikpKSkpCisgICAoc2V0IChtYXRjaF9vcGVyYW5kOkdQSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXIiKQorCShwbHVzOkdQSSAobWF0Y2hfZHVwIDEpICht YXRjaF9kdXAgMikpKV0KKyAgIiIKKyAgImFkZHNcXHQlPHc+MCwgJTx3PjEs ICU8dz4yIgorICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1c19zcmVnIildCisp CisKIChkZWZpbmVfaW5zbiAiKmFkZHNfc2hpZnRfaW1tXzxtb2RlPiIKICAg WyhzZXQgKHJlZzpDQ19OWiBDQ19SRUdOVU0pCiAJKGNvbXBhcmU6Q0NfTloK LQkgKHBsdXM6R1BJIChBU0hJRlQ6R1BJIAorCSAocGx1czpHUEkgKEFTSElG VDpHUEkKIAkJICAgIChtYXRjaF9vcGVyYW5kOkdQSSAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiciIpCiAJCSAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJhYXJj aDY0X3NoaWZ0X2ltbV88bW9kZT4iICJuIikpCiAJCSAgIChtYXRjaF9vcGVy YW5kOkdQSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKQpAQCAtMjE4Nyw2 ICsyMzQ1LDEzOCBAQAogICBbKHNldF9hdHRyICJ0eXBlIiAiYWRjX3JlZyIp XQogKQogCisoZGVmaW5lX2V4cGFuZCAiYWRkPG1vZGU+M19jYXJyeWluQyIK KyAgWyhwYXJhbGxlbAorICAgICBbKHNldCAobWF0Y2hfZHVwIDMpCisJICAg KG5lOkNDX0MKKwkgICAgIChwbHVzOjxEV0k+CisJICAgICAgIChwbHVzOjxE V0k+CisJCSAobWF0Y2hfZHVwIDQpCisJCSAoemVyb19leHRlbmQ6PERXST4K KwkJICAgKG1hdGNoX29wZXJhbmQ6R1BJIDEgInJlZ2lzdGVyX29wZXJhbmQi ICJyIikpKQorCSAgICAgICAoemVyb19leHRlbmQ6PERXST4KKwkJIChtYXRj aF9vcGVyYW5kOkdQSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkKKwkg ICAoemVyb19leHRlbmQ6PERXST4KKwkgICAgIChwbHVzOkdQSQorCSAgICAg ICAocGx1czpHUEkgKG1hdGNoX2R1cCA1KSAobWF0Y2hfZHVwIDEpKQorCSAg ICAgICAobWF0Y2hfZHVwIDIpKSkpKQorICAgICAgKHNldCAobWF0Y2hfb3Bl cmFuZDpHUEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIpCisJICAgKHBsdXM6R1BJ CisJICAgICAocGx1czpHUEkgKG1hdGNoX2R1cCA1KSAobWF0Y2hfZHVwIDEp KQorCSAgICAgKG1hdGNoX2R1cCAyKSkpXSldCisgICAiIgoreworICBvcGVy YW5kc1szXSA9IGdlbl9ydHhfUkVHIChDQ19DbW9kZSwgQ0NfUkVHTlVNKTsK KyAgb3BlcmFuZHNbNF0gPSBnZW5fcnR4X05FICg8RFdJPm1vZGUsIG9wZXJh bmRzWzNdLCBjb25zdDBfcnR4KTsKKyAgb3BlcmFuZHNbNV0gPSBnZW5fcnR4 X05FICg8TU9ERT5tb2RlLCBvcGVyYW5kc1szXSwgY29uc3QwX3J0eCk7Cit9 KQorCisoZGVmaW5lX2luc24gIiphZGQ8bW9kZT4zX2NhcnJ5aW5DX3plcm8i CisgIFsoc2V0IChyZWc6Q0NfQyBDQ19SRUdOVU0pCisJKG5lOkNDX0MKKwkg IChwbHVzOjxEV0k+CisJICAgIChtYXRjaF9vcGVyYW5kOjxEV0k+IDIgImFh cmNoNjRfY2Fycnlfb3BlcmF0aW9uIiAiIikKKwkgICAgKHplcm9fZXh0ZW5k OjxEV0k+IChtYXRjaF9vcGVyYW5kOkdQSSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAiciIpKSkKKwkgICh6ZXJvX2V4dGVuZDo8RFdJPgorCSAgICAocGx1czpH UEkKKwkgICAgICAobWF0Y2hfb3BlcmFuZDpHUEkgMyAiYWFyY2g2NF9jYXJy eV9vcGVyYXRpb24iICIiKQorCSAgICAgIChtYXRjaF9kdXAgMSkpKSkpCisg ICAoc2V0IChtYXRjaF9vcGVyYW5kOkdQSSAwICJyZWdpc3Rlcl9vcGVyYW5k IikKKwkocGx1czpHUEkgKG1hdGNoX2R1cCAzKSAobWF0Y2hfZHVwIDEpKSld CisgICAiIgorICAgImFkY3NcXHQlPHc+MCwgJTx3PjEsIDx3PnpyIgorICBb KHNldF9hdHRyICJ0eXBlIiAiYWRjX3JlZyIpXQorKQorCisoZGVmaW5lX2lu c24gIiphZGQ8bW9kZT4zX2NhcnJ5aW5DIgorICBbKHNldCAocmVnOkNDX0Mg Q0NfUkVHTlVNKQorCShuZTpDQ19DCisJICAocGx1czo8RFdJPgorCSAgICAo cGx1czo8RFdJPgorCSAgICAgIChtYXRjaF9vcGVyYW5kOjxEV0k+IDMgImFh cmNoNjRfY2Fycnlfb3BlcmF0aW9uIiAiIikKKwkgICAgICAoemVyb19leHRl bmQ6PERXST4gKG1hdGNoX29wZXJhbmQ6R1BJIDEgInJlZ2lzdGVyX29wZXJh bmQiICJyIikpKQorCSAgICAoemVyb19leHRlbmQ6PERXST4gKG1hdGNoX29w ZXJhbmQ6R1BJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKQorCSAgKHpl cm9fZXh0ZW5kOjxEV0k+CisJICAgIChwbHVzOkdQSQorCSAgICAgIChwbHVz OkdQSQorCQkobWF0Y2hfb3BlcmFuZDpHUEkgNCAiYWFyY2g2NF9jYXJyeV9v cGVyYXRpb24iICIiKQorCQkobWF0Y2hfZHVwIDEpKQorCSAgICAgIChtYXRj aF9kdXAgMikpKSkpCisgICAoc2V0IChtYXRjaF9vcGVyYW5kOkdQSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIikKKwkocGx1czpHUEkKKwkgIChwbHVzOkdQSSAo bWF0Y2hfZHVwIDQpIChtYXRjaF9kdXAgMSkpCisJICAobWF0Y2hfZHVwIDIp KSldCisgICAiIgorICAgImFkY3NcXHQlPHc+MCwgJTx3PjEsICU8dz4yIgor ICBbKHNldF9hdHRyICJ0eXBlIiAiYWRjX3JlZyIpXQorKQorCisoZGVmaW5l X2V4cGFuZCAiYWRkPG1vZGU+M19jYXJyeWluViIKKyAgWyhwYXJhbGxlbAor ICAgICBbKHNldCAocmVnOkNDX1YgQ0NfUkVHTlVNKQorCSAgIChuZTpDQ19W CisJICAgICAocGx1czo8RFdJPgorCSAgICAgICAocGx1czo8RFdJPgorCQkg KG1hdGNoX2R1cCAzKQorCQkgKHNpZ25fZXh0ZW5kOjxEV0k+CisJCSAgICht YXRjaF9vcGVyYW5kOkdQSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkK KwkgICAgICAgKHNpZ25fZXh0ZW5kOjxEV0k+CisJCSAobWF0Y2hfb3BlcmFu ZDpHUEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpCisJICAgKHNpZ25f ZXh0ZW5kOjxEV0k+CisJICAgICAocGx1czpHUEkKKwkgICAgICAgKHBsdXM6 R1BJIChtYXRjaF9kdXAgNCkgKG1hdGNoX2R1cCAxKSkKKwkgICAgICAgKG1h dGNoX2R1cCAyKSkpKSkKKyAgICAgIChzZXQgKG1hdGNoX29wZXJhbmQ6R1BJ IDAgInJlZ2lzdGVyX29wZXJhbmQiKQorCSAgIChwbHVzOkdQSQorCSAgICAg KHBsdXM6R1BJIChtYXRjaF9kdXAgNCkgKG1hdGNoX2R1cCAxKSkKKwkgICAg IChtYXRjaF9kdXAgMikpKV0pXQorICAgIiIKK3sKKyAgcnR4IGNjID0gZ2Vu X3J0eF9SRUcgKENDX0Ntb2RlLCBDQ19SRUdOVU0pOworICBvcGVyYW5kc1sz XSA9IGdlbl9ydHhfTkUgKDxEV0k+bW9kZSwgY2MsIGNvbnN0MF9ydHgpOwor ICBvcGVyYW5kc1s0XSA9IGdlbl9ydHhfTkUgKDxNT0RFPm1vZGUsIGNjLCBj b25zdDBfcnR4KTsKK30pCisKKyhkZWZpbmVfaW5zbiAiKmFkZDxtb2RlPjNf Y2FycnlpblZfemVybyIKKyAgWyhzZXQgKHJlZzpDQ19WIENDX1JFR05VTSkK KwkobmU6Q0NfVgorCSAgKHBsdXM6PERXST4KKwkgICAgKG1hdGNoX29wZXJh bmQ6PERXST4gMiAiYWFyY2g2NF9jYXJyeV9vcGVyYXRpb24iICIiKQorCSAg ICAoc2lnbl9leHRlbmQ6PERXST4gKG1hdGNoX29wZXJhbmQ6R1BJIDEgInJl Z2lzdGVyX29wZXJhbmQiICJyIikpKQorCSAgKHNpZ25fZXh0ZW5kOjxEV0k+ CisJICAgIChwbHVzOkdQSQorCSAgICAgIChtYXRjaF9vcGVyYW5kOkdQSSAz ICJhYXJjaDY0X2NhcnJ5X29wZXJhdGlvbiIgIiIpCisJICAgICAgKG1hdGNo X2R1cCAxKSkpKSkKKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6R1BJIDAgInJl Z2lzdGVyX29wZXJhbmQiKQorCShwbHVzOkdQSSAobWF0Y2hfZHVwIDMpICht YXRjaF9kdXAgMSkpKV0KKyAgICIiCisgICAiYWRjc1xcdCU8dz4wLCAlPHc+ MSwgPHc+enIiCisgIFsoc2V0X2F0dHIgInR5cGUiICJhZGNfcmVnIildCisp CisKKyhkZWZpbmVfaW5zbiAiKmFkZDxtb2RlPjNfY2FycnlpblYiCisgIFso c2V0IChyZWc6Q0NfViBDQ19SRUdOVU0pCisJKG5lOkNDX1YKKwkgIChwbHVz OjxEV0k+CisJICAgIChwbHVzOjxEV0k+CisJICAgICAgKG1hdGNoX29wZXJh bmQ6PERXST4gMyAiYWFyY2g2NF9jYXJyeV9vcGVyYXRpb24iICIiKQorCSAg ICAgIChzaWduX2V4dGVuZDo8RFdJPiAobWF0Y2hfb3BlcmFuZDpHUEkgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpCisJICAgIChzaWduX2V4dGVuZDo8 RFdJPiAobWF0Y2hfb3BlcmFuZDpHUEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIg InIiKSkpCisJICAoc2lnbl9leHRlbmQ6PERXST4KKwkgICAgKHBsdXM6R1BJ CisJICAgICAgKHBsdXM6R1BJCisJCShtYXRjaF9vcGVyYW5kOkdQSSA0ICJh YXJjaDY0X2NhcnJ5X29wZXJhdGlvbiIgIiIpCisJCShtYXRjaF9kdXAgMSkp CisJICAgICAgKG1hdGNoX2R1cCAyKSkpKSkKKyAgIChzZXQgKG1hdGNoX29w ZXJhbmQ6R1BJIDAgInJlZ2lzdGVyX29wZXJhbmQiKQorCShwbHVzOkdQSQor CSAgKHBsdXM6R1BJIChtYXRjaF9kdXAgNCkgKG1hdGNoX2R1cCAxKSkKKwkg IChtYXRjaF9kdXAgMikpKV0KKyAgICIiCisgICAiYWRjc1xcdCU8dz4wLCAl PHc+MSwgJTx3PjIiCisgIFsoc2V0X2F0dHIgInR5cGUiICJhZGNfcmVnIild CispCisKIChkZWZpbmVfaW5zbiAiKmFkZF91eHQ8bW9kZT5fc2hpZnQyIgog ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpHUEkgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1yayIpCiAJKHBsdXM6R1BJIChhbmQ6R1BJCkBAIC0yMjgzLDIyICsy NTczLDg2IEBACiAgICAoc2V0X2F0dHIgInNpbWQiICIqLHllcyIpXQogKQog CisoZGVmaW5lX2V4cGFuZCAic3Vidjxtb2RlPjQiCisgIFsobWF0Y2hfb3Bl cmFuZDpHUEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIpCisgICAobWF0Y2hfb3Bl cmFuZDpHUEkgMSAiYWFyY2g2NF9yZWdfb3JfemVybyIpCisgICAobWF0Y2hf b3BlcmFuZDpHUEkgMiAiYWFyY2g2NF9yZWdfb3JfemVybyIpCisgICAobWF0 Y2hfb3BlcmFuZCAzICIiKV0KKyAgIiIKK3sKKyAgZW1pdF9pbnNuIChnZW5f c3ViPG1vZGU+M19jb21wYXJlMSAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFd LCBvcGVyYW5kc1syXSkpOworICBhYXJjaDY0X2dlbl91bmxpa2VseV9jYnJh bmNoIChORSwgQ0NfVm1vZGUsIG9wZXJhbmRzWzNdKTsKKworICBET05FOwor fSkKKworKGRlZmluZV9leHBhbmQgInVzdWJ2PG1vZGU+NCIKKyAgWyhtYXRj aF9vcGVyYW5kOkdQSSAwICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAgIChtYXRj aF9vcGVyYW5kOkdQSSAxICJhYXJjaDY0X3JlZ19vcl96ZXJvIikKKyAgICht YXRjaF9vcGVyYW5kOkdQSSAyICJhYXJjaDY0X3JlZ19vcl96ZXJvIikKKyAg IChtYXRjaF9vcGVyYW5kIDMgIiIpXQorICAiIgoreworICBlbWl0X2luc24g KGdlbl9zdWI8bW9kZT4zX2NvbXBhcmUxIChvcGVyYW5kc1swXSwgb3BlcmFu ZHNbMV0sIG9wZXJhbmRzWzJdKSk7CisgIGFhcmNoNjRfZ2VuX3VubGlrZWx5 X2NicmFuY2ggKExUVSwgQ0Ntb2RlLCBvcGVyYW5kc1szXSk7CisKKyAgRE9O RTsKK30pCisKIChkZWZpbmVfZXhwYW5kICJzdWJ0aTMiCiAgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotCSht aW51czpUSSAobWF0Y2hfb3BlcmFuZDpUSSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAiIikKKwkobWludXM6VEkgKG1hdGNoX29wZXJhbmQ6VEkgMSAiYWFyY2g2 NF9yZWdfb3JfemVybyIgIiIpCiAJCSAgKG1hdGNoX29wZXJhbmQ6VEkgMiAi cmVnaXN0ZXJfb3BlcmFuZCIgIiIpKSldCiAgICIiCiB7Ci0gIHJ0eCBsb3cg PSBnZW5fcmVnX3J0eCAoREltb2RlKTsKLSAgZW1pdF9pbnNuIChnZW5fc3Vi ZGkzX2NvbXBhcmUxIChsb3csIGdlbl9sb3dwYXJ0IChESW1vZGUsIG9wZXJh bmRzWzFdKSwKLQkJCQkgIGdlbl9sb3dwYXJ0IChESW1vZGUsIG9wZXJhbmRz WzJdKSkpOworICBydHggbDAgPSBnZW5fcmVnX3J0eCAoREltb2RlKTsKKyAg cnR4IGwxID0gc2ltcGxpZnlfZ2VuX3N1YnJlZyAoREltb2RlLCBvcGVyYW5k c1sxXSwgVEltb2RlLAorCQkJCXN1YnJlZ19sb3dwYXJ0X29mZnNldCAoRElt b2RlLCBUSW1vZGUpKTsKKyAgcnR4IGwyID0gZ2VuX2xvd3BhcnQgKERJbW9k ZSwgb3BlcmFuZHNbMl0pOworICBydHggaDAgPSBnZW5fcmVnX3J0eCAoRElt b2RlKTsKKyAgcnR4IGgxID0gc2ltcGxpZnlfZ2VuX3N1YnJlZyAoREltb2Rl LCBvcGVyYW5kc1sxXSwgVEltb2RlLAorCQkJCXN1YnJlZ19oaWdocGFydF9v ZmZzZXQgKERJbW9kZSwgVEltb2RlKSk7CisgIHJ0eCBoMiA9IGdlbl9oaWdo cGFydCAoREltb2RlLCBvcGVyYW5kc1syXSk7CiAKLSAgcnR4IGhpZ2ggPSBn ZW5fcmVnX3J0eCAoREltb2RlKTsKLSAgZW1pdF9pbnNuIChnZW5fc3ViZGkz X2NhcnJ5aW4gKGhpZ2gsIGdlbl9oaWdocGFydCAoREltb2RlLCBvcGVyYW5k c1sxXSksCi0JCQkJIGdlbl9oaWdocGFydCAoREltb2RlLCBvcGVyYW5kc1sy XSkpKTsKKyAgZW1pdF9pbnNuIChnZW5fc3ViZGkzX2NvbXBhcmUxIChsMCwg bDEsIGwyKSk7CisgIGVtaXRfaW5zbiAoZ2VuX3N1YmRpM19jYXJyeWluICho MCwgaDEsIGgyKSk7CiAKLSAgZW1pdF9tb3ZlX2luc24gKGdlbl9sb3dwYXJ0 IChESW1vZGUsIG9wZXJhbmRzWzBdKSwgbG93KTsKLSAgZW1pdF9tb3ZlX2lu c24gKGdlbl9oaWdocGFydCAoREltb2RlLCBvcGVyYW5kc1swXSksIGhpZ2gp OworICBlbWl0X21vdmVfaW5zbiAoZ2VuX2xvd3BhcnQgKERJbW9kZSwgb3Bl cmFuZHNbMF0pLCBsMCk7CisgIGVtaXRfbW92ZV9pbnNuIChnZW5faGlnaHBh cnQgKERJbW9kZSwgb3BlcmFuZHNbMF0pLCBoMCk7CisgIERPTkU7Cit9KQor CisoZGVmaW5lX2V4cGFuZCAic3VidnRpNCIKKyAgWyhtYXRjaF9vcGVyYW5k OlRJIDAgInJlZ2lzdGVyX29wZXJhbmQiKQorICAgKG1hdGNoX29wZXJhbmQ6 VEkgMSAiYWFyY2g2NF9yZWdfb3JfemVybyIpCisgICAobWF0Y2hfb3BlcmFu ZDpUSSAyICJhYXJjaDY0X3JlZ19vcl9pbW0iKQorICAgKG1hdGNoX29wZXJh bmQgMyAiIildCisgICIiCit7CisgIHJ0eCBsMCxsMSxsMixoMCxoMSxoMjsK KworICBhYXJjaDY0X3N1YnZfMTI4Yml0X3NjcmF0Y2hfcmVncyAob3BlcmFu ZHNbMV0sIG9wZXJhbmRzWzJdLAorCQkJCSAgICAmbDAsICZsMSwgJmwyLCAm aDAsICZoMSwgJmgyKTsKKyAgYWFyY2g2NF9leHBhbmRfc3VidnRpIChvcGVy YW5kc1swXSwgbDAsIGwxLCBsMiwgaDAsIGgxLCBoMik7CisKKyAgYWFyY2g2 NF9nZW5fdW5saWtlbHlfY2JyYW5jaCAoTkUsIENDX1Ztb2RlLCBvcGVyYW5k c1szXSk7CisgIERPTkU7Cit9KQorCisoZGVmaW5lX2V4cGFuZCAidXN1YnZ0 aTQiCisgIFsobWF0Y2hfb3BlcmFuZDpUSSAwICJyZWdpc3Rlcl9vcGVyYW5k IikKKyAgIChtYXRjaF9vcGVyYW5kOlRJIDEgImFhcmNoNjRfcmVnX29yX3pl cm8iKQorICAgKG1hdGNoX29wZXJhbmQ6VEkgMiAiYWFyY2g2NF9yZWdfb3Jf aW1tIikKKyAgIChtYXRjaF9vcGVyYW5kIDMgIiIpXQorICAiIgoreworICBy dHggbDAsbDEsbDIsaDAsaDEsaDI7CisKKyAgYWFyY2g2NF9zdWJ2XzEyOGJp dF9zY3JhdGNoX3JlZ3MgKG9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSwKKwkJ CQkgICAgJmwwLCAmbDEsICZsMiwgJmgwLCAmaDEsICZoMik7CisgIGFhcmNo NjRfZXhwYW5kX3N1YnZ0aSAob3BlcmFuZHNbMF0sIGwwLCBsMSwgbDIsIGgw LCBoMSwgaDIpOworCisgIGFhcmNoNjRfZ2VuX3VubGlrZWx5X2NicmFuY2gg KExUVSwgQ0Ntb2RlLCBvcGVyYW5kc1szXSk7CiAgIERPTkU7CiB9KQogCkBA IC0yMzI3LDYgKzI2ODEsMjIgQEAKICAgWyhzZXRfYXR0ciAidHlwZSIgImFs dXNfc3JlZyIpXQogKQogCisoZGVmaW5lX2luc24gIipzdWI8bW9kZT4zX2Nv bXBhcmUxX2ltbSIKKyAgWyhzZXQgKHJlZzpDQyBDQ19SRUdOVU0pCisJKGNv bXBhcmU6Q0MKKwkgIChtYXRjaF9vcGVyYW5kOkdQSSAxICJhYXJjaDY0X3Jl Z19vcl96ZXJvIiAicloscloiKQorCSAgKG1hdGNoX29wZXJhbmQ6R1BJIDIg ImFhcmNoNjRfcGx1c19pbW1lZGlhdGUiICJJLEoiKSkpCisgICAoc2V0ICht YXRjaF9vcGVyYW5kOkdQSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIp CisJKHBsdXM6R1BJCisJICAobWF0Y2hfZHVwIDEpCisJICAobWF0Y2hfb3Bl cmFuZDpHUEkgMyAiYWFyY2g2NF9wbHVzX2ltbWVkaWF0ZSIgIkosSSIpKSld CisgICJVSU5UVkFMIChvcGVyYW5kc1syXSkgPT0gLVVJTlRWQUwgKG9wZXJh bmRzWzNdKSIKKyAgIkAKKyAgc3Vic1xcdCU8dz4wLCAlPHc+MSwgJTx3PjIK KyAgYWRkc1xcdCU8dz4wLCAlPHc+MSwgJTx3PjMiCisgIFsoc2V0X2F0dHIg InR5cGUiICJhbHVzX2ltbSIpXQorKQorCiAoZGVmaW5lX2luc24gInN1Yjxt b2RlPjNfY29tcGFyZTEiCiAgIFsoc2V0IChyZWc6Q0MgQ0NfUkVHTlVNKQog CShjb21wYXJlOkNDCkBAIC0yNTU0LDYgKzI5MjQsODUgQEAKICAgWyhzZXRf YXR0ciAidHlwZSIgImFkY19yZWciKV0KICkKIAorKGRlZmluZV9leHBhbmQg InN1Yjxtb2RlPjNfY2FycnlpbkNWIgorICBbKHBhcmFsbGVsCisgICAgIFso c2V0IChyZWc6Q0MgQ0NfUkVHTlVNKQorCSAgIChjb21wYXJlOkNDCisJICAg ICAoc2lnbl9leHRlbmQ6PERXST4KKwkgICAgICAgKG1hdGNoX29wZXJhbmQ6 R1BJIDEgImFhcmNoNjRfcmVnX29yX3plcm8iICJyWiIpKQorCSAgICAgKHBs dXM6PERXST4KKwkgICAgICAgKHNpZ25fZXh0ZW5kOjxEV0k+CisJCSAobWF0 Y2hfb3BlcmFuZDpHUEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKKwkg ICAgICAgKGx0dTo8RFdJPiAocmVnOkNDIENDX1JFR05VTSkgKGNvbnN0X2lu dCAwKSkpKSkKKyAgICAgIChzZXQgKG1hdGNoX29wZXJhbmQ6R1BJIDAgInJl Z2lzdGVyX29wZXJhbmQiICI9ciIpCisJICAgKG1pbnVzOkdQSQorCSAgICAg KG1pbnVzOkdQSSAobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpCisJICAg ICAobHR1OkdQSSAocmVnOkNDIENDX1JFR05VTSkgKGNvbnN0X2ludCAwKSkp KV0pXQorICAgIiIKKykKKworKGRlZmluZV9pbnNuICIqc3ViPG1vZGU+M19j YXJyeWluQ1ZfejFfejIiCisgIFsoc2V0IChyZWc6Q0MgQ0NfUkVHTlVNKQor CShjb21wYXJlOkNDCisJICAoY29uc3RfaW50IDApCisJICAobWF0Y2hfb3Bl cmFuZDo8RFdJPiAyICJhYXJjaDY0X2JvcnJvd19vcGVyYXRpb24iICIiKSkp CisgICAoc2V0IChtYXRjaF9vcGVyYW5kOkdQSSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXIiKQorCShuZWc6R1BJIChtYXRjaF9vcGVyYW5kOkdQSSAxICJh YXJjaDY0X2JvcnJvd19vcGVyYXRpb24iICIiKSkpXQorICAgIiIKKyAgICJz YmNzXFx0JTx3PjAsIDx3PnpyLCA8dz56ciIKKyAgWyhzZXRfYXR0ciAidHlw ZSIgImFkY19yZWciKV0KKykKKworKGRlZmluZV9pbnNuICIqc3ViPG1vZGU+ M19jYXJyeWluQ1ZfejEiCisgIFsoc2V0IChyZWc6Q0MgQ0NfUkVHTlVNKQor CShjb21wYXJlOkNDCisJICAoY29uc3RfaW50IDApCisJICAocGx1czo8RFdJ PgorCSAgICAoc2lnbl9leHRlbmQ6PERXST4KKwkgICAgICAobWF0Y2hfb3Bl cmFuZDpHUEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKKwkgICAgKG1h dGNoX29wZXJhbmQ6PERXST4gMiAiYWFyY2g2NF9ib3Jyb3dfb3BlcmF0aW9u IiAiIikpKSkKKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6R1BJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9ciIpCisJKG1pbnVzOkdQSQorCSAgKG5lZzpHUEkg KG1hdGNoX2R1cCAxKSkKKwkgIChtYXRjaF9vcGVyYW5kOkdQSSAzICJhYXJj aDY0X2JvcnJvd19vcGVyYXRpb24iICIiKSkpXQorICAgIiIKKyAgICJzYmNz XFx0JTx3PjAsIDx3PnpyLCAlPHc+MSIKKyAgWyhzZXRfYXR0ciAidHlwZSIg ImFkY19yZWciKV0KKykKKworKGRlZmluZV9pbnNuICIqc3ViPG1vZGU+M19j YXJyeWluQ1ZfejIiCisgIFsoc2V0IChyZWc6Q0MgQ0NfUkVHTlVNKQorCShj b21wYXJlOkNDCisJICAoc2lnbl9leHRlbmQ6PERXST4KKwkgICAgKG1hdGNo X29wZXJhbmQ6R1BJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpCisJICAo bWF0Y2hfb3BlcmFuZDo8RFdJPiAyICJhYXJjaDY0X2JvcnJvd19vcGVyYXRp b24iICIiKSkpCisgICAoc2V0IChtYXRjaF9vcGVyYW5kOkdQSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPXIiKQorCShtaW51czpHUEkKKwkgIChtYXRjaF9k dXAgMSkKKwkgIChtYXRjaF9vcGVyYW5kOkdQSSAzICJhYXJjaDY0X2JvcnJv d19vcGVyYXRpb24iICIiKSkpXQorICAgIiIKKyAgICJzYmNzXFx0JTx3PjAs ICU8dz4xLCA8dz56ciIKKyAgWyhzZXRfYXR0ciAidHlwZSIgImFkY19yZWci KV0KKykKKworKGRlZmluZV9pbnNuICIqc3ViPG1vZGU+M19jYXJyeWluQ1Yi CisgIFsoc2V0IChyZWc6Q0MgQ0NfUkVHTlVNKQorCShjb21wYXJlOkNDCisJ ICAoc2lnbl9leHRlbmQ6PERXST4KKwkgICAgKG1hdGNoX29wZXJhbmQ6R1BJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpCisJICAocGx1czo8RFdJPgor CSAgICAoc2lnbl9leHRlbmQ6PERXST4KKwkgICAgICAobWF0Y2hfb3BlcmFu ZDpHUEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKKwkgICAgKG1hdGNo X29wZXJhbmQ6PERXST4gMyAiYWFyY2g2NF9ib3Jyb3dfb3BlcmF0aW9uIiAi IikpKSkKKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6R1BJIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9ciIpCisJKG1pbnVzOkdQSQorCSAgKG1pbnVzOkdQSSAo bWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpCisJICAobWF0Y2hfb3BlcmFu ZDpHUEkgNCAiYWFyY2g2NF9ib3Jyb3dfb3BlcmF0aW9uIiAiIikpKV0KKyAg ICIiCisgICAic2Jjc1xcdCU8dz4wLCAlPHc+MSwgJTx3PjIiCisgIFsoc2V0 X2F0dHIgInR5cGUiICJhZGNfcmVnIildCispCisKIChkZWZpbmVfaW5zbiAi KnN1Yl91eHQ8bW9kZT5fc2hpZnQyIgogICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpHUEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yayIpCiAJKG1pbnVzOkdQ SSAobWF0Y2hfb3BlcmFuZDpHUEkgNCAicmVnaXN0ZXJfb3BlcmFuZCIgInJr IikKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJj aDY0L2J1aWx0aW5fc2FkZF8xMjguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hYXJjaDY0L2J1aWx0aW5fc2FkZF8xMjguYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjMxNTAwCi0tLSAvZGV2L251bGwK KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYnVpbHRp bl9zYWRkXzEyOC5jCkBAIC0wLDAgKzEsMTggQEAKKy8qIHsgZGctZG8gY29t cGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiIgfSAgKi8KKworZXh0 ZXJuIHZvaWQgb3ZlcmZsb3dfaGFuZGxlciAoKTsKKworX19pbnQxMjggb3Zl cmZsb3dfYWRkIChfX2ludDEyOCB4LCBfX2ludDEyOCB5KQoreworICBfX2lu dDEyOCByOworCisgIGludCBvdnIgPSBfX2J1aWx0aW5fYWRkX292ZXJmbG93 ICh4LCB5LCAmcik7CisgIGlmIChvdnIpCisgICAgb3ZlcmZsb3dfaGFuZGxl ciAoKTsKKworICByZXR1cm4gcjsKK30KKworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyICJhZGRzIiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlciAiYWRjcyIgfSB9ICovCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9idWlsdGluX3NhZGRsLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9idWlsdGluX3Nh ZGRsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc2 OGE5OAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hYXJjaDY0L2J1aWx0aW5fc2FkZGwuYwpAQCAtMCwwICsxLDE3IEBA CisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICIt TzIiIH0gICovCisKK2V4dGVybiB2b2lkIG92ZXJmbG93X2hhbmRsZXIgKCk7 CisKK2xvbmcgb3ZlcmZsb3dfYWRkIChsb25nIHgsIGxvbmcgeSkKK3sKKyAg bG9uZyByOworCisgIGludCBvdnIgPSBfX2J1aWx0aW5fc2FkZGxfb3ZlcmZs b3cgKHgsIHksICZyKTsKKyAgaWYgKG92cikKKyAgICBvdmVyZmxvd19oYW5k bGVyICgpOworCisgIHJldHVybiByOworfQorCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXIgImFkZHMiIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYnVpbHRpbl9zYWRkbGwu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2J1aWx0aW5f c2FkZGxsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MTI2YTUyNgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L2J1aWx0aW5fc2FkZGxsLmMKQEAgLTAsMCArMSwx OCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9u cyAiLU8yIiB9ICAqLworCitleHRlcm4gdm9pZCBvdmVyZmxvd19oYW5kbGVy ICgpOworCitsb25nIGxvbmcgb3ZlcmZsb3dfYWRkIChsb25nIGxvbmcgeCwg bG9uZyBsb25nIHkpCit7CisgIGxvbmcgbG9uZyByOworCisgIGludCBvdnIg PSBfX2J1aWx0aW5fc2FkZGxsX292ZXJmbG93ICh4LCB5LCAmcik7CisgIGlm IChvdnIpCisgICAgb3ZlcmZsb3dfaGFuZGxlciAoKTsKKworICByZXR1cm4g cjsKK30KKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJhZGRz IiB9IH0gKi8KKwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FhcmNoNjQvYnVpbHRpbl9zc3ViXzEyOC5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYnVpbHRpbl9zc3ViXzEyOC5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxMjYxZTMKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2 NC9idWlsdGluX3NzdWJfMTI4LmMKQEAgLTAsMCArMSwxOCBAQAorLyogeyBk Zy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIiB9ICAq LworCitleHRlcm4gdm9pZCBvdmVyZmxvd19oYW5kbGVyICgpOworCitfX2lu dDEyOCBvdmVyZmxvd19zdWIgKF9faW50MTI4IHgsIF9faW50MTI4IHkpCit7 CisgIF9faW50MTI4IHI7CisKKyAgaW50IG92ciA9IF9fYnVpbHRpbl9zdWJf b3ZlcmZsb3cgKHgsIHksICZyKTsKKyAgaWYgKG92cikKKyAgICBvdmVyZmxv d19oYW5kbGVyICgpOworCisgIHJldHVybiByOworfQorCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXIgInN1YnMiIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyICJzYmNzIiB9IH0gKi8KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2J1aWx0aW5f c3N1YmwuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2J1 aWx0aW5fc3N1YmwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4xMDQwNDY0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYnVpbHRpbl9zc3VibC5jCkBAIC0wLDAg KzEsMTcgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9w dGlvbnMgIi1PMiIgfSAgKi8KKworZXh0ZXJuIHZvaWQgb3ZlcmZsb3dfaGFu ZGxlciAoKTsKKworbG9uZyBvdmVyZmxvd19zdWIgKGxvbmcgeCwgbG9uZyB5 KQoreworICBsb25nIHI7CisKKyAgaW50IG92ciA9IF9fYnVpbHRpbl9zc3Vi bF9vdmVyZmxvdyAoeCwgeSwgJnIpOworICBpZiAob3ZyKQorICAgIG92ZXJm bG93X2hhbmRsZXIgKCk7CisKKyAgcmV0dXJuIHI7Cit9CisKKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlciAic3VicyIgfSB9ICovCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9idWlsdGlu X3NzdWJsbC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQv YnVpbHRpbl9zc3VibGwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5hMDNkZjg4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYnVpbHRpbl9zc3VibGwuYwpAQCAt MCwwICsxLDE4IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBk Zy1vcHRpb25zICItTzIiIH0gICovCisKK2V4dGVybiB2b2lkIG92ZXJmbG93 X2hhbmRsZXIgKCk7CisKK2xvbmcgbG9uZyBvdmVyZmxvd19zdWIgKGxvbmcg bG9uZyB4LCBsb25nIGxvbmcgeSkKK3sKKyAgbG9uZyBsb25nIHI7CisKKyAg aW50IG92ciA9IF9fYnVpbHRpbl9zc3VibGxfb3ZlcmZsb3cgKHgsIHksICZy KTsKKyAgaWYgKG92cikKKyAgICBvdmVyZmxvd19oYW5kbGVyICgpOworCisg IHJldHVybiByOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXIgInN1YnMiIH0gfSAqLworCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYWFyY2g2NC9idWlsdGluX3VhZGRfMTI4LmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9idWlsdGluX3VhZGRfMTI4 LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU3M2My YQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9hYXJjaDY0L2J1aWx0aW5fdWFkZF8xMjguYwpAQCAtMCwwICsxLDE4IEBA CisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICIt TzIiIH0gICovCisKK2V4dGVybiB2b2lkIG92ZXJmbG93X2hhbmRsZXIgKCk7 CisKK3Vuc2lnbmVkIF9faW50MTI4IG92ZXJmbG93X2FkZCAodW5zaWduZWQg X19pbnQxMjggeCwgdW5zaWduZWQgX19pbnQxMjggeSkKK3sKKyAgdW5zaWdu ZWQgX19pbnQxMjggcjsKKworICBpbnQgb3ZyID0gX19idWlsdGluX2FkZF9v dmVyZmxvdyAoeCwgeSwgJnIpOworICBpZiAob3ZyKQorICAgIG92ZXJmbG93 X2hhbmRsZXIgKCk7CisKKyAgcmV0dXJuIHI7Cit9CisKKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAiYWRkcyIgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXIgImFkY3MiIH0gfSAqLwpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYnVpbHRpbl91 YWRkbC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYnVp bHRpbl91YWRkbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmUzMjU1OTEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYWFyY2g2NC9idWlsdGluX3VhZGRsLmMKQEAgLTAsMCAr MSwxNyBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0 aW9ucyAiLU8yIiB9ICAqLworCitleHRlcm4gdm9pZCBvdmVyZmxvd19oYW5k bGVyICgpOworCit1bnNpZ25lZCBsb25nIG92ZXJmbG93X2FkZCAodW5zaWdu ZWQgbG9uZyB4LCB1bnNpZ25lZCBsb25nIHkpCit7CisgIHVuc2lnbmVkIGxv bmcgcjsKKworICBpbnQgb3ZyID0gX19idWlsdGluX3VhZGRsX292ZXJmbG93 ICh4LCB5LCAmcik7CisgIGlmIChvdnIpCisgICAgb3ZlcmZsb3dfaGFuZGxl ciAoKTsKKworICByZXR1cm4gcjsKK30KKworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyICJhZGRzIiB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2J1aWx0aW5fdWFkZGxsLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9idWlsdGluX3Vh ZGRsbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVm NDI4ODYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9idWlsdGluX3VhZGRsbC5jCkBAIC0wLDAgKzEsMTgg QEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1PMiIgfSAgKi8KKworZXh0ZXJuIHZvaWQgb3ZlcmZsb3dfaGFuZGxlciAo KTsKKwordW5zaWduZWQgbG9uZyBsb25nIG92ZXJmbG93X2FkZCAodW5zaWdu ZWQgbG9uZyBsb25nIHgsIHVuc2lnbmVkIGxvbmcgbG9uZyB5KQoreworICB1 bnNpZ25lZCBsb25nIGxvbmcgcjsKKworICBpbnQgb3ZyID0gX19idWlsdGlu X3VhZGRsbF9vdmVyZmxvdyAoeCwgeSwgJnIpOworICBpZiAob3ZyKQorICAg IG92ZXJmbG93X2hhbmRsZXIgKCk7CisKKyAgcmV0dXJuIHI7Cit9CisKKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiYWRkcyIgfSB9ICovCisK ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0 L2J1aWx0aW5fdXN1Yl8xMjguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9hYXJjaDY0L2J1aWx0aW5fdXN1Yl8xMjguYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5hODRmNGE0Ci0tLSAvZGV2L251bGwKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYnVpbHRpbl91 c3ViXzEyOC5jCkBAIC0wLDAgKzEsMTggQEAKKy8qIHsgZGctZG8gY29tcGls ZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiIgfSAgKi8KKworZXh0ZXJu IHZvaWQgb3ZlcmZsb3dfaGFuZGxlciAoKTsKKwordW5zaWduZWQgX19pbnQx Mjggb3ZlcmZsb3dfc3ViICh1bnNpZ25lZCBfX2ludDEyOCB4LCB1bnNpZ25l ZCBfX2ludDEyOCB5KQoreworICB1bnNpZ25lZCBfX2ludDEyOCByOworCisg IGludCBvdnIgPSBfX2J1aWx0aW5fc3ViX292ZXJmbG93ICh4LCB5LCAmcik7 CisgIGlmIChvdnIpCisgICAgb3ZlcmZsb3dfaGFuZGxlciAoKTsKKworICBy ZXR1cm4gcjsKK30KKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy ICJzdWJzIiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ciAic2JjcyIgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYWFyY2g2NC9idWlsdGluX3VzdWJsLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9idWlsdGluX3VzdWJsLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQwMzNkYQotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0 L2J1aWx0aW5fdXN1YmwuYwpAQCAtMCwwICsxLDE3IEBACisvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIiIH0gICovCisK K2V4dGVybiB2b2lkIG92ZXJmbG93X2hhbmRsZXIgKCk7CisKK3Vuc2lnbmVk IGxvbmcgb3ZlcmZsb3dfc3ViICh1bnNpZ25lZCBsb25nIHgsIHVuc2lnbmVk IGxvbmcgeSkKK3sKKyAgdW5zaWduZWQgbG9uZyByOworCisgIGludCBvdnIg PSBfX2J1aWx0aW5fdXN1Ymxfb3ZlcmZsb3cgKHgsIHksICZyKTsKKyAgaWYg KG92cikKKyAgICBvdmVyZmxvd19oYW5kbGVyICgpOworCisgIHJldHVybiBy OworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInN1YnMi IH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FhcmNoNjQvYnVpbHRpbl91c3VibGwuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L2J1aWx0aW5fdXN1YmxsLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc0MmYwYwotLS0gL2Rldi9udWxs CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2J1aWx0 aW5fdXN1YmxsLmMKQEAgLTAsMCArMSwxOCBAQAorLyogeyBkZy1kbyBjb21w aWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIiB9ICAqLworCitleHRl cm4gdm9pZCBvdmVyZmxvd19oYW5kbGVyICgpOworCit1bnNpZ25lZCBsb25n IGxvbmcgb3ZlcmZsb3dfc3ViICh1bnNpZ25lZCBsb25nIGxvbmcgeCwgdW5z aWduZWQgbG9uZyBsb25nIHkpCit7CisgIHVuc2lnbmVkIGxvbmcgbG9uZyBy OworCisgIGludCBvdnIgPSBfX2J1aWx0aW5fdXN1YmxsX292ZXJmbG93ICh4 LCB5LCAmcik7CisgIGlmIChvdnIpCisgICAgb3ZlcmZsb3dfaGFuZGxlciAo KTsKKworICByZXR1cm4gcjsKK30KKworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyICJzdWJzIiB9IH0gKi8KKwotLSAKMS45LjEKCg== --_002_HE1PR0802MB2377137CC85A480F3C06181295E50HE1PR0802MB2377_--