From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UPPERCASE_50_75 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6646AC3A59F for ; Mon, 26 Aug 2019 14:04:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 19FD020679 for ; Mon, 26 Aug 2019 14:04:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=microchiptechnology.onmicrosoft.com header.i=@microchiptechnology.onmicrosoft.com header.b="ljqLj5vb" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732193AbfHZOE1 (ORCPT ); Mon, 26 Aug 2019 10:04:27 -0400 Received: from esa3.microchip.iphmx.com ([68.232.153.233]:32306 "EHLO esa3.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727091AbfHZOE0 (ORCPT ); Mon, 26 Aug 2019 10:04:26 -0400 Received-SPF: Pass (esa3.microchip.iphmx.com: domain of Codrin.Ciubotariu@microchip.com designates 198.175.253.82 as permitted sender) identity=mailfrom; client-ip=198.175.253.82; receiver=esa3.microchip.iphmx.com; envelope-from="Codrin.Ciubotariu@microchip.com"; x-sender="Codrin.Ciubotariu@microchip.com"; x-conformance=spf_only; x-record-type="v=spf1"; x-record-text="v=spf1 mx a:ushub1.microchip.com a:smtpout.microchip.com a:mx1.microchip.iphmx.com a:mx2.microchip.iphmx.com include:servers.mcsv.net include:mktomail.com include:spf.protection.outlook.com ~all" Received-SPF: None (esa3.microchip.iphmx.com: no sender authenticity information available from domain of postmaster@email.microchip.com) identity=helo; client-ip=198.175.253.82; receiver=esa3.microchip.iphmx.com; envelope-from="Codrin.Ciubotariu@microchip.com"; x-sender="postmaster@email.microchip.com"; x-conformance=spf_only Authentication-Results: esa3.microchip.iphmx.com; spf=Pass smtp.mailfrom=Codrin.Ciubotariu@microchip.com; spf=None smtp.helo=postmaster@email.microchip.com; dkim=pass (signature verified) header.i=@microchiptechnology.onmicrosoft.com; dmarc=pass (p=none dis=none) d=microchip.com IronPort-SDR: neMlVQOAnj3TWahImIgRVq2yhOZTl11dWWr2K1Lf2kzXH8FwnqZkR/Y5W4zVSDcxABW4wXv4wT 5PjLpvOayoFa7fKvtBrkh9xd05hnbGLUtQ6Ih0AsQEryev7jqSwWoDj4IhhGm9mvYE/Ai9cBeS q7EI6fS6nm0TmsHlLkzyYBSzSc9Bk7ZT5TRD6ncuH18UrmOQ3UpX72tHOiQH3Vou/dwp7IaoaA xuV4yoPln+DtMW6nMBqundph1BQWCrojgafqAnvd5YuxOrsuFOj2n7n+5I608CDBQ9QZJKbVjC ZYY= X-IronPort-AV: E=Sophos;i="5.64,433,1559545200"; d="scan'208";a="46601226" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa3.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 26 Aug 2019 07:04:17 -0700 Received: from chn-vm-ex01.mchp-main.com (10.10.85.143) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 26 Aug 2019 07:04:15 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 26 Aug 2019 07:04:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZkVV02j13G43zujvZLf9EgYS1RGnwWQHEs0FwWKyszu6NYXCwQKaiFayjK4JCsm4KjsoUHBSjRV86jwaLO8ypIogv4BzV4Yi11MWwCXV8IoiF2d7Azx1KlWJ/QWC2wdvfi6859Q48BpTnH89zsw0paRKae7qmjr86523gw6ZUON/XkaEs1PCowHDQZAT2ClVclBCpxavBUkbztTUt0hl7fw/8qMFXIoesQsIQszrBUM9AGIlDECK3B2qr6UqlhoDfxWskEaL3vI71Qa2Wlhhwf1GHhHvD7v65N5ty4BGYXTJXYwELFmnAQnfKmP0egx00iqsoEf7To1V0AfzBLD0fQ== 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=7zayv5MLghdzedW92sZPsMWKhI5teTkdOOeanVv9bRI=; b=UCrzb7iPj9FkuUR0yxNBo0NNpWnM1vkAsSbb12SCb2J1XIhodG6YR7QcQjodn9+5fALup/KZLldyuenR9krv/+v6uhRAZU/jXtiWiGc8/6Up+ckkAV11S64V7+OfZnOUn8vfqY5onzJnJKUumWzoCrmGFnIFsg5ENwFDHVuYOLUS9egE2MN0EjrzaGDrv3esdUkQwNA5w1hrFvoOuHQPX/N1BMsSU2XTRKQAm23yZryMHj8dsdyZHHEabv+GQU5ZsCQxZE/S8cqmHFd3b6LG4tP254vBmJTul7F+h7A39asMvuRUh8Y5gAMwejo1yqB3P4tRawvZ2l0zOyeoFEqsVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7zayv5MLghdzedW92sZPsMWKhI5teTkdOOeanVv9bRI=; b=ljqLj5vbIaOV9dQTFsUQ8vxN++3Fw4B1NUDnEORyqE6Jg+xMe1tIPQKhahOjizZLNlIFSQukyzbXBL56zLqUN9YSIJCMkz/H+Cdjl1RBipeipsPwJ+BaOVV6xdozDXPZ4zZQmsPqVAMTTMT89XeVg7w41ZqOy8bOgRe5nVnVeeo= Received: from BY5PR11MB4497.namprd11.prod.outlook.com (52.132.255.220) by BY5PR11MB4323.namprd11.prod.outlook.com (52.132.254.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2199.21; Mon, 26 Aug 2019 14:04:13 +0000 Received: from BY5PR11MB4497.namprd11.prod.outlook.com ([fe80::14:24b8:9029:c69]) by BY5PR11MB4497.namprd11.prod.outlook.com ([fe80::14:24b8:9029:c69%7]) with mapi id 15.20.2199.021; Mon, 26 Aug 2019 14:04:13 +0000 From: To: , , CC: , , <3chas3@gmail.com>, , , , , , , , , , Subject: Re: [PATCH v2 2/6] ASoC: atmel_ssc_dai: rework DAI format configuration Thread-Topic: [PATCH v2 2/6] ASoC: atmel_ssc_dai: rework DAI format configuration Thread-Index: AQHVWrpK+f/lX2svvkmYJ8DIGUTudacNeMSA Date: Mon, 26 Aug 2019 14:04:13 +0000 Message-ID: <7961d3da-5504-ae16-9342-979c12f9d028@microchip.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1P195CA0051.EURP195.PROD.OUTLOOK.COM (2603:10a6:802:5a::40) To BY5PR11MB4497.namprd11.prod.outlook.com (2603:10b6:a03:1cc::28) x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [94.177.32.156] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 505346d5-661f-42ce-03c5-08d72a2e464f x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:BY5PR11MB4323; x-ms-traffictypediagnostic: BY5PR11MB4323: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 01415BB535 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(136003)(346002)(39860400002)(396003)(376002)(366004)(199004)(189003)(66446008)(64756008)(66946007)(66476007)(26005)(256004)(229853002)(102836004)(52116002)(76176011)(2501003)(53546011)(6506007)(386003)(7416002)(3846002)(14454004)(478600001)(6116002)(99286004)(71200400001)(6246003)(31686004)(71190400001)(4326008)(186003)(25786009)(6486002)(6512007)(6436002)(86362001)(36756003)(81166006)(81156014)(8676002)(7736002)(305945005)(2201001)(8936002)(66066001)(53936002)(316002)(54906003)(110136005)(2906002)(446003)(11346002)(486006)(2616005)(476003)(30864003)(5660300002)(66556008)(31696002);DIR:OUT;SFP:1101;SCL:1;SRVR:BY5PR11MB4323;H:BY5PR11MB4497.namprd11.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: microchip.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: uy6qK2JSVjIQfI+uykUZDEhCh8RONJ8El8/WVIe3iRWWgXKEazISo0Z608yA0MAQKSo7WJ6OuG5ZywltJIBdvGEsrGIgcBGcxvEorTMqRWCE7xOXgsR4NEZYVVhiYUuTgOZeWv+Q7/eNoBPzliiDB5cMaOT9jXO2pzQwpa4BeysK6yJabx178Ht+IIs4vj7miKnfLB2uEzRM17baTbTKrUEgwmo+Ibr6rIqteLaGtrLK+EA70ZZaXMqPq6uxPWTQoYYajkgpg6jxugXFy8R1uIFj8JkbQF+cPVxmrnkCQM3JoqhVr5r97VnXCzzacuJYv114efDs6Xa4YbXJnvr3+HIOWXNm8t0kTI3Jj2ie2h8dK8eG0IlsKouvr2BvvWO7VBFo0gy2S+eIoMfTeuHAAaXUqQno17cb8HQbKFCQVbg= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 505346d5-661f-42ce-03c5-08d72a2e464f X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2019 14:04:13.4599 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 2YAqOfhJuVski9huRWEopfv+3Tzy+yQZNCetADE8LDSvGqTuN3qGgCAKQplQGy2OwXhtq+HB0tniuyGcXCnJS20HxnDFiqC8CIJ8SmvzQyQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB4323 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gMjQuMDguMjAxOSAyMzoyNiwgTWljaGHFgiBNaXJvc8WCYXcgd3JvdGU6DQo+IFJld29yayBE QUkgZm9ybWF0IGNhbGN1bGF0aW9uIGluIHByZXBhcmF0aW9uIGZvciBhZGRpbmcgbW9yZSBmb3Jt YXRzDQo+IGxhdGVyLiBBcyBhIHNpZGUtZWZmZWN0IHRoaXMgZW5hYmxlcyBhbGwgQ0JNL0NCUyB4 IENGTS9DRlMgY29tYmluYXRpb25zDQo+IGZvciBzdXBwb3J0ZWQgZm9ybWF0cy4gKE5vdGU6IHRo ZSBhZGRpdGlvbmFsIG1vZGVzIGFyZSBub3QgdGVzdGVkLikNCg0KVGhlIG9ubHkgbW9kZSBhZGRl ZCAoYW5kIG5vdCB0ZXN0ZWQpIGlzIGZvciBTTkRfU09DX0RBSUZNVF9EU1BfQSB8DQpTTkRfU09D X0RBSUZNVF9DQk1fQ0ZTLiBJIHdvdWxkIG1lbnRpb24gaXQgZXhwbGljaXRseSwgaW5zdGVhZCBv ZiANCnNvbWV0aGluZyBnZW5lcmljLiBBbHNvLCBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZTIGlzIG5v dCBzdXBwb3J0ZWQgZm9yIGFueSANCmZvcm1hdCwgcGxlYXNlIHNlZSBhdG1lbF9zc2NfaHdfcnVs ZV9yYXRlKCkuDQoNCj4gDQo+IE5vdGU6IHRoaXMgY2hhbmdlcyBGU0VER0UgdG8gUE9TSVRJVkUg Zm9yIEkyUyBDQk1fQ0ZTIG1vZGUgYXMgdGhlIFRYU1lODQo+IGludGVycnVwdCBpcyBub3QgdXNl ZCBhbnl3YXkuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYcWCIE1pcm9zxYJhdyA8bWlycS1s aW51eEByZXJlLnFtcW0ucGw+DQo+IA0KPiAtLS0NCj4gICB2MjogYWRkZWQgbm90ZSBhYm91dCBl eHRlbmRlZCBtb2Rlcycgc3RhdHVzDQo+ICAgICAgIGluY29ycG9yYXRlZCBjb21tb24gRlMgKExS Q0xLKSBjb25maWd1cmF0aW9uDQo+IA0KPiAtLS0NCj4gICBzb3VuZC9zb2MvYXRtZWwvYXRtZWxf c3NjX2RhaS5jIHwgMjg2ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICAgMSBm aWxlIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDIwNiBkZWxldGlvbnMoLSkNCj4gDQo+IGRp ZmYgLS1naXQgYS9zb3VuZC9zb2MvYXRtZWwvYXRtZWxfc3NjX2RhaS5jIGIvc291bmQvc29jL2F0 bWVsL2F0bWVsX3NzY19kYWkuYw0KPiBpbmRleCA2Zjg5NDgzYWM4OGMuLjdkYzZlYzliOGM3YSAx MDA2NDQNCj4gLS0tIGEvc291bmQvc29jL2F0bWVsL2F0bWVsX3NzY19kYWkuYw0KPiArKysgYi9z b3VuZC9zb2MvYXRtZWwvYXRtZWxfc3NjX2RhaS5jDQo+IEBAIC00NzEsNyArNDcxLDcgQEAgc3Rh dGljIGludCBhdG1lbF9zc2NfaHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vi c3RyZWFtLA0KPiAgIAlpbnQgZGlyLCBjaGFubmVscywgYml0czsNCj4gICAJdTMyIHRmbXIsIHJm bXIsIHRjbXIsIHJjbXI7DQo+ICAgCWludCByZXQ7DQo+IC0JaW50IGZzbGVuLCBmc2xlbl9leHQ7 DQo+ICsJaW50IGZzbGVuLCBmc2xlbl9leHQsIGZzX29zeW5jLCBmc19lZGdlOw0KPiAgIAl1MzIg Y21yX2RpdjsNCj4gICAJdTMyIHRjbXJfcGVyaW9kOw0KPiAgIAl1MzIgcmNtcl9wZXJpb2Q7DQo+ IEBAIC01NTgsMjI2ICs1NTgsMzYgQEAgc3RhdGljIGludCBhdG1lbF9zc2NfaHdfcGFyYW1zKHN0 cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLA0KPiAgIAkvKg0KPiAgIAkgKiBDb21w dXRlIFNTQyByZWdpc3RlciBzZXR0aW5ncy4NCj4gICAJICovDQo+IC0Jc3dpdGNoIChzc2NfcC0+ ZGFpZm10DQo+IC0JCSYgKFNORF9TT0NfREFJRk1UX0ZPUk1BVF9NQVNLIHwgU05EX1NPQ19EQUlG TVRfTUFTVEVSX01BU0spKSB7DQo+ICAgDQo+IC0JY2FzZSBTTkRfU09DX0RBSUZNVF9JMlMgfCBT TkRfU09DX0RBSUZNVF9DQlNfQ0ZTOg0KPiAtCQkvKg0KPiAtCQkgKiBJMlMgZm9ybWF0LCBTU0Mg cHJvdmlkZXMgQkNMSyBhbmQgTFJDIGNsb2Nrcy4NCj4gLQkJICoNCj4gLQkJICogVGhlIFNTQyB0 cmFuc21pdCBhbmQgcmVjZWl2ZSBjbG9ja3MgYXJlIGdlbmVyYXRlZA0KPiAtCQkgKiBmcm9tIHRo ZSBNQ0sgZGl2aWRlciwgYW5kIHRoZSBCQ0xLIHNpZ25hbA0KPiAtCQkgKiBpcyBvdXRwdXQgb24g dGhlIFNTQyBUSyBsaW5lLg0KPiAtCQkgKi8NCj4gLQ0KPiAtCQlpZiAoYml0cyA+IDE2ICYmICFz c2MtPnBkYXRhLT5oYXNfZnNsZW5fZXh0KSB7DQo+IC0JCQlkZXZfZXJyKGRhaS0+ZGV2LA0KPiAt CQkJCSJzYW1wbGUgc2l6ZSAlZCBpcyB0b28gbGFyZ2UgZm9yIFNTQyBkZXZpY2VcbiIsDQo+IC0J CQkJYml0cyk7DQo+IC0JCQlyZXR1cm4gLUVJTlZBTDsNCj4gLQkJfQ0KPiAtDQo+IC0JCWZzbGVu X2V4dCA9IChiaXRzIC0gMSkgLyAxNjsNCj4gLQkJZnNsZW4gPSAoYml0cyAtIDEpICUgMTY7DQo+ IC0NCj4gLQkJcmNtciA9CSAgU1NDX0JGKFJDTVJfUEVSSU9ELCByY21yX3BlcmlvZCkNCj4gLQkJ CXwgU1NDX0JGKFJDTVJfU1RURExZLCBTVEFSVF9ERUxBWSkNCj4gLQkJCXwgU1NDX0JGKFJDTVJf U1RBUlQsIFNTQ19TVEFSVF9GQUxMSU5HX1JGKQ0KPiAtCQkJfCBTU0NfQkYoUkNNUl9DS0ksIFNT Q19DS0lfUklTSU5HKQ0KPiAtCQkJfCBTU0NfQkYoUkNNUl9DS08sIFNTQ19DS09fTk9ORSkNCj4g LQkJCXwgU1NDX0JGKFJDTVJfQ0tTLCBTU0NfQ0tTX0RJVik7DQo+IC0NCj4gLQkJcmZtciA9ICAg IFNTQ19CRihSRk1SX0ZTTEVOX0VYVCwgZnNsZW5fZXh0KQ0KPiAtCQkJfCBTU0NfQkYoUkZNUl9G U0VER0UsIFNTQ19GU0VER0VfUE9TSVRJVkUpDQo+IC0JCQl8IFNTQ19CRihSRk1SX0ZTT1MsIFNT Q19GU09TX05FR0FUSVZFKQ0KPiAtCQkJfCBTU0NfQkYoUkZNUl9GU0xFTiwgZnNsZW4pDQo+IC0J CQl8IFNTQ19CRihSRk1SX0RBVE5CLCAoY2hhbm5lbHMgLSAxKSkNCj4gLQkJCXwgU1NDX0JJVChS Rk1SX01TQkYpDQo+IC0JCQl8IFNTQ19CRihSRk1SX0xPT1AsIDApDQo+IC0JCQl8IFNTQ19CRihS Rk1SX0RBVExFTiwgKGJpdHMgLSAxKSk7DQo+IC0NCj4gLQkJdGNtciA9CSAgU1NDX0JGKFRDTVJf UEVSSU9ELCB0Y21yX3BlcmlvZCkNCj4gLQkJCXwgU1NDX0JGKFRDTVJfU1RURExZLCBTVEFSVF9E RUxBWSkNCj4gLQkJCXwgU1NDX0JGKFRDTVJfU1RBUlQsIFNTQ19TVEFSVF9GQUxMSU5HX1JGKQ0K PiAtCQkJfCBTU0NfQkYoVENNUl9DS0ksIFNTQ19DS0lfRkFMTElORykNCj4gLQkJCXwgU1NDX0JG KFRDTVJfQ0tPLCBTU0NfQ0tPX0NPTlRJTlVPVVMpDQo+IC0JCQl8IFNTQ19CRihUQ01SX0NLUywg U1NDX0NLU19ESVYpOw0KPiAtDQo+IC0JCXRmbXIgPSAgICBTU0NfQkYoVEZNUl9GU0xFTl9FWFQs IGZzbGVuX2V4dCkNCj4gLQkJCXwgU1NDX0JGKFRGTVJfRlNFREdFLCBTU0NfRlNFREdFX1BPU0lU SVZFKQ0KPiAtCQkJfCBTU0NfQkYoVEZNUl9GU0RFTiwgMCkNCj4gLQkJCXwgU1NDX0JGKFRGTVJf RlNPUywgU1NDX0ZTT1NfTkVHQVRJVkUpDQo+IC0JCQl8IFNTQ19CRihURk1SX0ZTTEVOLCBmc2xl bikNCj4gLQkJCXwgU1NDX0JGKFRGTVJfREFUTkIsIChjaGFubmVscyAtIDEpKQ0KPiAtCQkJfCBT U0NfQklUKFRGTVJfTVNCRikNCj4gLQkJCXwgU1NDX0JGKFRGTVJfREFUREVGLCAwKQ0KPiAtCQkJ fCBTU0NfQkYoVEZNUl9EQVRMRU4sIChiaXRzIC0gMSkpOw0KPiAtCQlicmVhazsNCj4gLQ0KPiAt CWNhc2UgU05EX1NPQ19EQUlGTVRfSTJTIHwgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTToNCj4gLQkJ LyogSTJTIGZvcm1hdCwgQ09ERUMgc3VwcGxpZXMgQkNMSyBhbmQgTFJDIGNsb2Nrcy4gKi8NCj4g LQkJcmNtciA9CSAgU1NDX0JGKFJDTVJfUEVSSU9ELCAwKQ0KPiAtCQkJfCBTU0NfQkYoUkNNUl9T VFRETFksIFNUQVJUX0RFTEFZKQ0KPiAtCQkJfCBTU0NfQkYoUkNNUl9TVEFSVCwgU1NDX1NUQVJU X0ZBTExJTkdfUkYpDQo+IC0JCQl8IFNTQ19CRihSQ01SX0NLSSwgU1NDX0NLSV9SSVNJTkcpDQo+ IC0JCQl8IFNTQ19CRihSQ01SX0NLTywgU1NDX0NLT19OT05FKQ0KPiAtCQkJfCBTU0NfQkYoUkNN Ul9DS1MsIHNzYy0+Y2xrX2Zyb21fcmtfcGluID8NCj4gLQkJCQkJICAgU1NDX0NLU19QSU4gOiBT U0NfQ0tTX0NMT0NLKTsNCj4gLQ0KPiAtCQlyZm1yID0JICBTU0NfQkYoUkZNUl9GU0VER0UsIFNT Q19GU0VER0VfUE9TSVRJVkUpDQo+IC0JCQl8IFNTQ19CRihSRk1SX0ZTT1MsIFNTQ19GU09TX05P TkUpDQo+IC0JCQl8IFNTQ19CRihSRk1SX0ZTTEVOLCAwKQ0KPiAtCQkJfCBTU0NfQkYoUkZNUl9E QVROQiwgKGNoYW5uZWxzIC0gMSkpDQo+IC0JCQl8IFNTQ19CSVQoUkZNUl9NU0JGKQ0KPiAtCQkJ fCBTU0NfQkYoUkZNUl9MT09QLCAwKQ0KPiAtCQkJfCBTU0NfQkYoUkZNUl9EQVRMRU4sIChiaXRz IC0gMSkpOw0KPiAtDQo+IC0JCXRjbXIgPQkgIFNTQ19CRihUQ01SX1BFUklPRCwgMCkNCj4gLQkJ CXwgU1NDX0JGKFRDTVJfU1RURExZLCBTVEFSVF9ERUxBWSkNCj4gLQkJCXwgU1NDX0JGKFRDTVJf U1RBUlQsIFNTQ19TVEFSVF9GQUxMSU5HX1JGKQ0KPiAtCQkJfCBTU0NfQkYoVENNUl9DS0ksIFNT Q19DS0lfRkFMTElORykNCj4gLQkJCXwgU1NDX0JGKFRDTVJfQ0tPLCBTU0NfQ0tPX05PTkUpDQo+ IC0JCQl8IFNTQ19CRihUQ01SX0NLUywgc3NjLT5jbGtfZnJvbV9ya19waW4gPw0KPiAtCQkJCQkg ICBTU0NfQ0tTX0NMT0NLIDogU1NDX0NLU19QSU4pOw0KPiArCWZzbGVuX2V4dCA9IChiaXRzIC0g MSkgLyAxNjsNCj4gKwlmc2xlbiA9IChiaXRzIC0gMSkgJSAxNjsNCj4gICANCj4gLQkJdGZtciA9 CSAgU1NDX0JGKFRGTVJfRlNFREdFLCBTU0NfRlNFREdFX1BPU0lUSVZFKQ0KPiAtCQkJfCBTU0Nf QkYoVEZNUl9GU0RFTiwgMCkNCj4gLQkJCXwgU1NDX0JGKFRGTVJfRlNPUywgU1NDX0ZTT1NfTk9O RSkNCj4gLQkJCXwgU1NDX0JGKFRGTVJfRlNMRU4sIDApDQo+IC0JCQl8IFNTQ19CRihURk1SX0RB VE5CLCAoY2hhbm5lbHMgLSAxKSkNCj4gLQkJCXwgU1NDX0JJVChURk1SX01TQkYpDQo+IC0JCQl8 IFNTQ19CRihURk1SX0RBVERFRiwgMCkNCj4gLQkJCXwgU1NDX0JGKFRGTVJfREFUTEVOLCAoYml0 cyAtIDEpKTsNCj4gLQkJYnJlYWs7DQo+IC0NCj4gLQljYXNlIFNORF9TT0NfREFJRk1UX0kyUyB8 IFNORF9TT0NfREFJRk1UX0NCTV9DRlM6DQo+IC0JCS8qIEkyUyBmb3JtYXQsIENPREVDIHN1cHBs aWVzIEJDTEssIFNTQyBzdXBwbGllcyBMUkNMSy4gKi8NCj4gLQkJaWYgKGJpdHMgPiAxNiAmJiAh c3NjLT5wZGF0YS0+aGFzX2ZzbGVuX2V4dCkgew0KPiAtCQkJZGV2X2VycihkYWktPmRldiwNCj4g LQkJCQkic2FtcGxlIHNpemUgJWQgaXMgdG9vIGxhcmdlIGZvciBTU0MgZGV2aWNlXG4iLA0KPiAt CQkJCWJpdHMpOw0KPiAtCQkJcmV0dXJuIC1FSU5WQUw7DQo+IC0JCX0NCj4gLQ0KPiAtCQlmc2xl bl9leHQgPSAoYml0cyAtIDEpIC8gMTY7DQo+IC0JCWZzbGVuID0gKGJpdHMgLSAxKSAlIDE2Ow0K PiAtDQo+IC0JCXJjbXIgPQkgIFNTQ19CRihSQ01SX1BFUklPRCwgcmNtcl9wZXJpb2QpDQo+IC0J CQl8IFNTQ19CRihSQ01SX1NUVERMWSwgU1RBUlRfREVMQVkpDQo+IC0JCQl8IFNTQ19CRihSQ01S X1NUQVJULCBTU0NfU1RBUlRfRkFMTElOR19SRikNCj4gLQkJCXwgU1NDX0JGKFJDTVJfQ0tJLCBT U0NfQ0tJX1JJU0lORykNCj4gLQkJCXwgU1NDX0JGKFJDTVJfQ0tPLCBTU0NfQ0tPX05PTkUpDQo+ IC0JCQl8IFNTQ19CRihSQ01SX0NLUywgc3NjLT5jbGtfZnJvbV9ya19waW4gPw0KPiAtCQkJCQkg ICBTU0NfQ0tTX1BJTiA6IFNTQ19DS1NfQ0xPQ0spOw0KPiAtDQo+IC0JCXJmbXIgPSAgICBTU0Nf QkYoUkZNUl9GU0xFTl9FWFQsIGZzbGVuX2V4dCkNCj4gLQkJCXwgU1NDX0JGKFJGTVJfRlNFREdF LCBTU0NfRlNFREdFX1BPU0lUSVZFKQ0KPiAtCQkJfCBTU0NfQkYoUkZNUl9GU09TLCBTU0NfRlNP U19ORUdBVElWRSkNCj4gLQkJCXwgU1NDX0JGKFJGTVJfRlNMRU4sIGZzbGVuKQ0KPiAtCQkJfCBT U0NfQkYoUkZNUl9EQVROQiwgKGNoYW5uZWxzIC0gMSkpDQo+IC0JCQl8IFNTQ19CSVQoUkZNUl9N U0JGKQ0KPiAtCQkJfCBTU0NfQkYoUkZNUl9MT09QLCAwKQ0KPiAtCQkJfCBTU0NfQkYoUkZNUl9E QVRMRU4sIChiaXRzIC0gMSkpOw0KPiAtDQo+IC0JCXRjbXIgPQkgIFNTQ19CRihUQ01SX1BFUklP RCwgdGNtcl9wZXJpb2QpDQo+IC0JCQl8IFNTQ19CRihUQ01SX1NUVERMWSwgU1RBUlRfREVMQVkp DQo+IC0JCQl8IFNTQ19CRihUQ01SX1NUQVJULCBTU0NfU1RBUlRfRkFMTElOR19SRikNCj4gLQkJ CXwgU1NDX0JGKFRDTVJfQ0tJLCBTU0NfQ0tJX0ZBTExJTkcpDQo+IC0JCQl8IFNTQ19CRihUQ01S X0NLTywgU1NDX0NLT19OT05FKQ0KPiAtCQkJfCBTU0NfQkYoVENNUl9DS1MsIHNzYy0+Y2xrX2Zy b21fcmtfcGluID8NCj4gLQkJCQkJICAgU1NDX0NLU19DTE9DSyA6IFNTQ19DS1NfUElOKTsNCj4g LQ0KPiAtCQl0Zm1yID0gICAgU1NDX0JGKFRGTVJfRlNMRU5fRVhULCBmc2xlbl9leHQpDQo+IC0J CQl8IFNTQ19CRihURk1SX0ZTRURHRSwgU1NDX0ZTRURHRV9ORUdBVElWRSkNCj4gLQkJCXwgU1ND X0JGKFRGTVJfRlNERU4sIDApDQo+IC0JCQl8IFNTQ19CRihURk1SX0ZTT1MsIFNTQ19GU09TX05F R0FUSVZFKQ0KPiAtCQkJfCBTU0NfQkYoVEZNUl9GU0xFTiwgZnNsZW4pDQo+IC0JCQl8IFNTQ19C RihURk1SX0RBVE5CLCAoY2hhbm5lbHMgLSAxKSkNCj4gLQkJCXwgU1NDX0JJVChURk1SX01TQkYp DQo+IC0JCQl8IFNTQ19CRihURk1SX0RBVERFRiwgMCkNCj4gLQkJCXwgU1NDX0JGKFRGTVJfREFU TEVOLCAoYml0cyAtIDEpKTsNCj4gLQkJYnJlYWs7DQo+IC0NCj4gLQljYXNlIFNORF9TT0NfREFJ Rk1UX0RTUF9BIHwgU05EX1NPQ19EQUlGTVRfQ0JTX0NGUzoNCj4gLQkJLyoNCj4gLQkJICogRFNQ L1BDTSBNb2RlIEEgZm9ybWF0LCBTU0MgcHJvdmlkZXMgQkNMSyBhbmQgTFJDIGNsb2Nrcy4NCj4g LQkJICoNCj4gLQkJICogVGhlIFNTQyB0cmFuc21pdCBhbmQgcmVjZWl2ZSBjbG9ja3MgYXJlIGdl bmVyYXRlZCBmcm9tIHRoZQ0KPiAtCQkgKiBNQ0sgZGl2aWRlciwgYW5kIHRoZSBCQ0xLIHNpZ25h bCBpcyBvdXRwdXQNCj4gLQkJICogb24gdGhlIFNTQyBUSyBsaW5lLg0KPiAtCQkgKi8NCj4gLQkJ cmNtciA9CSAgU1NDX0JGKFJDTVJfUEVSSU9ELCByY21yX3BlcmlvZCkNCj4gLQkJCXwgU1NDX0JG KFJDTVJfU1RURExZLCAxKQ0KPiAtCQkJfCBTU0NfQkYoUkNNUl9TVEFSVCwgU1NDX1NUQVJUX1JJ U0lOR19SRikNCj4gLQkJCXwgU1NDX0JGKFJDTVJfQ0tJLCBTU0NfQ0tJX1JJU0lORykNCj4gLQkJ CXwgU1NDX0JGKFJDTVJfQ0tPLCBTU0NfQ0tPX05PTkUpDQo+IC0JCQl8IFNTQ19CRihSQ01SX0NL UywgU1NDX0NLU19ESVYpOw0KPiArCXN3aXRjaCAoc3NjX3AtPmRhaWZtdCAmIFNORF9TT0NfREFJ Rk1UX0ZPUk1BVF9NQVNLKSB7DQo+ICAgDQo+IC0JCXJmbXIgPQkgIFNTQ19CRihSRk1SX0ZTRURH RSwgU1NDX0ZTRURHRV9QT1NJVElWRSkNCj4gLQkJCXwgU1NDX0JGKFJGTVJfRlNPUywgU1NDX0ZT T1NfUE9TSVRJVkUpDQo+IC0JCQl8IFNTQ19CRihSRk1SX0ZTTEVOLCAwKQ0KPiAtCQkJfCBTU0Nf QkYoUkZNUl9EQVROQiwgKGNoYW5uZWxzIC0gMSkpDQo+IC0JCQl8IFNTQ19CSVQoUkZNUl9NU0JG KQ0KPiAtCQkJfCBTU0NfQkYoUkZNUl9MT09QLCAwKQ0KPiAtCQkJfCBTU0NfQkYoUkZNUl9EQVRM RU4sIChiaXRzIC0gMSkpOw0KPiArCWNhc2UgU05EX1NPQ19EQUlGTVRfSTJTOg0KPiArCQlmc19v c3luYyA9IFNTQ19GU09TX05FR0FUSVZFOw0KPiArCQlmc19lZGdlID0gU1NDX1NUQVJUX0ZBTExJ TkdfUkY7DQo+ICAgDQo+IC0JCXRjbXIgPQkgIFNTQ19CRihUQ01SX1BFUklPRCwgdGNtcl9wZXJp b2QpDQo+IC0JCQl8IFNTQ19CRihUQ01SX1NUVERMWSwgMSkNCj4gLQkJCXwgU1NDX0JGKFRDTVJf U1RBUlQsIFNTQ19TVEFSVF9SSVNJTkdfUkYpDQo+IC0JCQl8IFNTQ19CRihUQ01SX0NLSSwgU1ND X0NLSV9GQUxMSU5HKQ0KPiAtCQkJfCBTU0NfQkYoVENNUl9DS08sIFNTQ19DS09fQ09OVElOVU9V UykNCj4gLQkJCXwgU1NDX0JGKFRDTVJfQ0tTLCBTU0NfQ0tTX0RJVik7DQo+ICsJCXJjbXIgPQkg IFNTQ19CRihSQ01SX1NUVERMWSwgMSk7DQo+ICsJCXRjbXIgPQkgIFNTQ19CRihUQ01SX1NUVERM WSwgMSk7DQo+ICAgDQo+IC0JCXRmbXIgPQkgIFNTQ19CRihURk1SX0ZTRURHRSwgU1NDX0ZTRURH RV9QT1NJVElWRSkNCj4gLQkJCXwgU1NDX0JGKFRGTVJfRlNERU4sIDApDQo+IC0JCQl8IFNTQ19C RihURk1SX0ZTT1MsIFNTQ19GU09TX1BPU0lUSVZFKQ0KPiAtCQkJfCBTU0NfQkYoVEZNUl9GU0xF TiwgMCkNCj4gLQkJCXwgU1NDX0JGKFRGTVJfREFUTkIsIChjaGFubmVscyAtIDEpKQ0KPiAtCQkJ fCBTU0NfQklUKFRGTVJfTVNCRikNCj4gLQkJCXwgU1NDX0JGKFRGTVJfREFUREVGLCAwKQ0KPiAt CQkJfCBTU0NfQkYoVEZNUl9EQVRMRU4sIChiaXRzIC0gMSkpOw0KPiAgIAkJYnJlYWs7DQo+ICAg DQo+IC0JY2FzZSBTTkRfU09DX0RBSUZNVF9EU1BfQSB8IFNORF9TT0NfREFJRk1UX0NCTV9DRk06 DQo+ICsJY2FzZSBTTkRfU09DX0RBSUZNVF9EU1BfQToNCj4gICAJCS8qDQo+IC0JCSAqIERTUC9Q Q00gTW9kZSBBIGZvcm1hdCwgQ09ERUMgc3VwcGxpZXMgQkNMSyBhbmQgTFJDIGNsb2Nrcy4NCj4g KwkJICogRFNQL1BDTSBNb2RlIEEgZm9ybWF0DQo+ICAgCQkgKg0KPiAgIAkJICogRGF0YSBpcyB0 cmFuc2ZlcnJlZCBvbiBmaXJzdCBCQ0xLIGFmdGVyIExSQyBwdWxzZSByaXNpbmcNCj4gICAJCSAq IGVkZ2UuSWYgc3RlcmVvLCB0aGUgcmlnaHQgY2hhbm5lbCBkYXRhIGlzIGNvbnRpZ3VvdXMgd2l0 aA0KPiAgIAkJICogdGhlIGxlZnQgY2hhbm5lbCBkYXRhLg0KPiAgIAkJICovDQo+IC0JCXJjbXIg PQkgIFNTQ19CRihSQ01SX1BFUklPRCwgMCkNCj4gLQkJCXwgU1NDX0JGKFJDTVJfU1RURExZLCBT VEFSVF9ERUxBWSkNCj4gLQkJCXwgU1NDX0JGKFJDTVJfU1RBUlQsIFNTQ19TVEFSVF9SSVNJTkdf UkYpDQo+IC0JCQl8IFNTQ19CRihSQ01SX0NLSSwgU1NDX0NLSV9SSVNJTkcpDQo+IC0JCQl8IFNT Q19CRihSQ01SX0NLTywgU1NDX0NLT19OT05FKQ0KPiAtCQkJfCBTU0NfQkYoUkNNUl9DS1MsIHNz Yy0+Y2xrX2Zyb21fcmtfcGluID8NCj4gLQkJCQkJICAgU1NDX0NLU19QSU4gOiBTU0NfQ0tTX0NM T0NLKTsNCj4gKwkJZnNfb3N5bmMgPSBTU0NfRlNPU19QT1NJVElWRTsNCj4gKwkJZnNfZWRnZSA9 IFNTQ19TVEFSVF9SSVNJTkdfUkY7DQo+ICsJCWZzbGVuID0gZnNsZW5fZXh0ID0gMDsNCj4gICAN Cj4gLQkJcmZtciA9CSAgU1NDX0JGKFJGTVJfRlNFREdFLCBTU0NfRlNFREdFX1BPU0lUSVZFKQ0K PiAtCQkJfCBTU0NfQkYoUkZNUl9GU09TLCBTU0NfRlNPU19OT05FKQ0KPiAtCQkJfCBTU0NfQkYo UkZNUl9GU0xFTiwgMCkNCj4gLQkJCXwgU1NDX0JGKFJGTVJfREFUTkIsIChjaGFubmVscyAtIDEp KQ0KPiAtCQkJfCBTU0NfQklUKFJGTVJfTVNCRikNCj4gLQkJCXwgU1NDX0JGKFJGTVJfTE9PUCwg MCkNCj4gLQkJCXwgU1NDX0JGKFJGTVJfREFUTEVOLCAoYml0cyAtIDEpKTsNCj4gKwkJcmNtciA9 CSAgU1NDX0JGKFJDTVJfU1RURExZLCAxKTsNCj4gKwkJdGNtciA9CSAgU1NDX0JGKFRDTVJfU1RU RExZLCAxKTsNCj4gICANCj4gLQkJdGNtciA9CSAgU1NDX0JGKFRDTVJfUEVSSU9ELCAwKQ0KPiAt CQkJfCBTU0NfQkYoVENNUl9TVFRETFksIFNUQVJUX0RFTEFZKQ0KPiAtCQkJfCBTU0NfQkYoVENN Ul9TVEFSVCwgU1NDX1NUQVJUX1JJU0lOR19SRikNCj4gLQkJCXwgU1NDX0JGKFRDTVJfQ0tJLCBT U0NfQ0tJX0ZBTExJTkcpDQo+IC0JCQl8IFNTQ19CRihUQ01SX0NLTywgU1NDX0NLT19OT05FKQ0K PiAtCQkJfCBTU0NfQkYoUkNNUl9DS1MsIHNzYy0+Y2xrX2Zyb21fcmtfcGluID8NCj4gLQkJCQkJ ICAgU1NDX0NLU19DTE9DSyA6IFNTQ19DS1NfUElOKTsNCj4gLQ0KPiAtCQl0Zm1yID0JICBTU0Nf QkYoVEZNUl9GU0VER0UsIFNTQ19GU0VER0VfUE9TSVRJVkUpDQo+IC0JCQl8IFNTQ19CRihURk1S X0ZTREVOLCAwKQ0KPiAtCQkJfCBTU0NfQkYoVEZNUl9GU09TLCBTU0NfRlNPU19OT05FKQ0KPiAt CQkJfCBTU0NfQkYoVEZNUl9GU0xFTiwgMCkNCj4gLQkJCXwgU1NDX0JGKFRGTVJfREFUTkIsIChj aGFubmVscyAtIDEpKQ0KPiAtCQkJfCBTU0NfQklUKFRGTVJfTVNCRikNCj4gLQkJCXwgU1NDX0JG KFRGTVJfREFUREVGLCAwKQ0KPiAtCQkJfCBTU0NfQkYoVEZNUl9EQVRMRU4sIChiaXRzIC0gMSkp Ow0KPiAgIAkJYnJlYWs7DQo+ICAgDQo+ICAgCWRlZmF1bHQ6DQo+IEBAIC03ODUsNiArNTk1LDcw IEBAIHN0YXRpYyBpbnQgYXRtZWxfc3NjX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJl YW0gKnN1YnN0cmVhbSwNCj4gICAJCQlzc2NfcC0+ZGFpZm10KTsNCj4gICAJCXJldHVybiAtRUlO VkFMOw0KPiAgIAl9DQo+ICsNCj4gKwlpZiAoIWF0bWVsX3NzY19jZnMoc3NjX3ApKSB7DQo+ICsJ CWZzbGVuID0gZnNsZW5fZXh0ID0gMDsNCj4gKwkJcmNtcl9wZXJpb2QgPSB0Y21yX3BlcmlvZCA9 IDA7DQo+ICsJCWZzX29zeW5jID0gU1NDX0ZTT1NfTk9ORTsNCj4gKwl9DQo+ICsNCj4gKwlyY21y IHw9CSAgU1NDX0JGKFJDTVJfU1RBUlQsIGZzX2VkZ2UpOw0KPiArCXRjbXIgfD0JICBTU0NfQkYo VENNUl9TVEFSVCwgZnNfZWRnZSk7DQoNCldoeSBub3QgbW92ZSB0aGVzZSBiZWxvdyBpbiB0aGUg Y29kZSwgd2hlcmUgYWxsIHRoZSBvdGhlciBiaXRzIG9mIHRoZXNlIA0KdHdvIHJlZ2lzdGVycyBh cmUgc2V0Pw0KDQo+ICsNCj4gKwlpZiAoYXRtZWxfc3NjX2Nicyhzc2NfcCkpIHsNCj4gKwkJLyoN Cj4gKwkJICogU1NDIHByb3ZpZGVzIEJDTEsNCj4gKwkJICoNCj4gKwkJICogVGhlIFNTQyB0cmFu c21pdCBhbmQgcmVjZWl2ZSBjbG9ja3MgYXJlIGdlbmVyYXRlZCBmcm9tIHRoZQ0KPiArCQkgKiBN Q0sgZGl2aWRlciwgYW5kIHRoZSBCQ0xLIHNpZ25hbCBpcyBvdXRwdXQNCj4gKwkJICogb24gdGhl IFNTQyBUSyBsaW5lLg0KPiArCQkgKi8NCj4gKwkJcmNtciB8PQkgIFNTQ19CRihSQ01SX0NLUywg U1NDX0NLU19ESVYpDQo+ICsJCQl8IFNTQ19CRihSQ01SX0NLTywgU1NDX0NLT19OT05FKTsNCj4g Kw0KPiArCQl0Y21yIHw9CSAgU1NDX0JGKFRDTVJfQ0tTLCBTU0NfQ0tTX0RJVikNCj4gKwkJCXwg U1NDX0JGKFRDTVJfQ0tPLCBTU0NfQ0tPX0NPTlRJTlVPVVMpOw0KPiArCX0gZWxzZSB7DQo+ICsJ CXJjbXIgfD0JICBTU0NfQkYoUkNNUl9DS1MsIHNzYy0+Y2xrX2Zyb21fcmtfcGluID8NCj4gKwkJ CQkJU1NDX0NLU19QSU4gOiBTU0NfQ0tTX0NMT0NLKQ0KPiArCQkJfCBTU0NfQkYoUkNNUl9DS08s IFNTQ19DS09fTk9ORSk7DQo+ICsNCj4gKwkJdGNtciB8PQkgIFNTQ19CRihUQ01SX0NLUywgc3Nj LT5jbGtfZnJvbV9ya19waW4gPw0KPiArCQkJCQlTU0NfQ0tTX0NMT0NLIDogU1NDX0NLU19QSU4p DQo+ICsJCQl8IFNTQ19CRihUQ01SX0NLTywgU1NDX0NLT19OT05FKTsNCj4gKwl9DQo+ICsNCj4g KwlyY21yIHw9CSAgU1NDX0JGKFJDTVJfUEVSSU9ELCByY21yX3BlcmlvZCkNCj4gKwkJfCBTU0Nf QkYoUkNNUl9DS0ksIFNTQ19DS0lfUklTSU5HKTsNCj4gKw0KPiArCXRjbXIgfD0gICBTU0NfQkYo VENNUl9QRVJJT0QsIHRjbXJfcGVyaW9kKQ0KPiArCQl8IFNTQ19CRihUQ01SX0NLSSwgU1NDX0NL SV9GQUxMSU5HKTsNCj4gKw0KPiArCXJmbXIgPSAgICBTU0NfQkYoUkZNUl9GU0xFTl9FWFQsIGZz bGVuX2V4dCkNCj4gKwkJfCBTU0NfQkYoUkZNUl9GU0VER0UsIFNTQ19GU0VER0VfUE9TSVRJVkUp DQo+ICsJCXwgU1NDX0JGKFJGTVJfRlNPUywgZnNfb3N5bmMpDQo+ICsJCXwgU1NDX0JGKFJGTVJf RlNMRU4sIGZzbGVuKQ0KPiArCQl8IFNTQ19CRihSRk1SX0RBVE5CLCAoY2hhbm5lbHMgLSAxKSkN Cj4gKwkJfCBTU0NfQklUKFJGTVJfTVNCRikNCj4gKwkJfCBTU0NfQkYoUkZNUl9MT09QLCAwKQ0K PiArCQl8IFNTQ19CRihSRk1SX0RBVExFTiwgKGJpdHMgLSAxKSk7DQo+ICsNCj4gKwl0Zm1yID0g ICAgU1NDX0JGKFRGTVJfRlNMRU5fRVhULCBmc2xlbl9leHQpDQo+ICsJCXwgU1NDX0JGKFRGTVJf RlNFREdFLCBTU0NfRlNFREdFX1BPU0lUSVZFKQ0KPiArCQl8IFNTQ19CRihURk1SX0ZTREVOLCAw KQ0KPiArCQl8IFNTQ19CRihURk1SX0ZTT1MsIGZzX29zeW5jKQ0KPiArCQl8IFNTQ19CRihURk1S X0ZTTEVOLCBmc2xlbikNCj4gKwkJfCBTU0NfQkYoVEZNUl9EQVROQiwgKGNoYW5uZWxzIC0gMSkp DQo+ICsJCXwgU1NDX0JJVChURk1SX01TQkYpDQo+ICsJCXwgU1NDX0JGKFRGTVJfREFUREVGLCAw KQ0KPiArCQl8IFNTQ19CRihURk1SX0RBVExFTiwgKGJpdHMgLSAxKSk7DQo+ICsNCj4gKwlpZiAo ZnNsZW5fZXh0ICYmICFzc2MtPnBkYXRhLT5oYXNfZnNsZW5fZXh0KSB7DQo+ICsJCWRldl9lcnIo ZGFpLT5kZXYsICJzYW1wbGUgc2l6ZSAlZCBpcyB0b28gbGFyZ2UgZm9yIFNTQyBkZXZpY2VcbiIs DQo+ICsJCQliaXRzKTsNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsJfQ0KPiArDQo+ICAgCXBy X2RlYnVnKCJhdG1lbF9zc2NfaHdfcGFyYW1zOiAiDQo+ICAgCQkJIlJDTVI9JTA4eCBSRk1SPSUw OHggVENNUj0lMDh4IFRGTVI9JTA4eFxuIiwNCj4gICAJCQlyY21yLCByZm1yLCB0Y21yLCB0Zm1y KTsNCj4gDQoNCg==