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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 36E27C433F5 for ; Wed, 29 Dec 2021 19:08:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=e3MrI2VurGe9aH3vXqwd55mp2Ysasd03uGllnwPIEZ0=; b=upCSxsyWRo1FJG +mlmhCP4336kAQXxsOIEA2PTughX8Z1LS4+kuji1yxRYdcccbDMa1M8L0bGTdRRMDlIMY0NQgYOgD t4V54huBS82v8amXQ1y3sDgDQ9qrMznkND5D0h0aNV4qzlzP/YXpsAHajEYVp7CU00tGyvS4IfFAp V9jnPIQOcp1riEaKfLelsrjVCWfu8oGHGDKQ9Ev5wsL1DYG/9KQzS0PwwhyTnY+Tz43N1R/jaDtc0 m5pWJiopwWab9MdaY79v6tqrAmH/GTQuTBFkNyDQ4z42tlTlYcxBtMh9sADVX5B3EzFgThnFn75bC BZg5iyYBxl0+7gWeu3lQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n2eIw-003JIb-Rg; Wed, 29 Dec 2021 19:08:06 +0000 Received: from mx.msync.work ([2a01:4f9:2b:2dc2::3]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n2eIs-003JHf-V1; Wed, 29 Dec 2021 19:08:06 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 94AE9232E74; Wed, 29 Dec 2021 19:07:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lexina.in; s=dkim; t=1640804876; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:content-language:in-reply-to:references; bh=z1RrlpZD1OUJk8/CuRjFiQW+xhieZiR36fLMaxbt75g=; b=wk8b2gGBOcR03ER20eyAWPd6iK9sQMMbamcWSjb9E9V6E+O3DSGNIo/0d5bhJ9vposLpm2 4yDwCz2/eTtLId4NOyvV0qp8Bz0aZI6gnvcvcatrzCyTtM61AxR9p6jUMR56AozXhfHThR 6ZVmuqghHlDaTaU0H/DRsI4ScPlTpm/711ctgy7Y0jD+DXRTKTR/TCusZFYUR8CQBs2MAv KsPI2vIA1qvw/KZNjlIVoO3GnkCxGg+XbQfseqzHKyGtLqZYUqvGWGjvwEHcCYIt1va21Q /WmRvZjV+eH8pvPeZN/SDPlXy+phVB0p/QlmP+WUJ7tAU72JYHN3hfIkjrAwqg== Message-ID: Date: Wed, 29 Dec 2021 22:07:53 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: Re: [PATCH V2 4/6] tty: serial: meson: The UART baud rate calculation is described using the common clock code. Also added S4 chip uart Compatible. Content-Language: ru To: Yu Tu , linux-serial@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , Jiri Slaby , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl References: <20211229135350.9659-1-yu.tu@amlogic.com> <20211229135350.9659-5-yu.tu@amlogic.com> From: Vyacheslav In-Reply-To: <20211229135350.9659-5-yu.tu@amlogic.com> X-Last-TLS-Session-Version: TLSv1.3 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211229_110803_651504_FA97CAA4 X-CRM114-Status: GOOD ( 25.39 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org CgoyOS4xMi4yMDIxIDE2OjUzLCBZdSBUdSDQv9C40YjQtdGCOgo+IFVzaW5nIHRoZSBjb21tb24g Q2xvY2sgY29kZSB0byBkZXNjcmliZSB0aGUgVUFSVCBiYXVkIHJhdGUgY2xvY2sgbWFrZXMKPiBp dCBlYXNpZXIgZm9yIHRoZSBVQVJUIGRyaXZlciB0byBiZSBjb21wYXRpYmxlIHdpdGggdGhlIGJh dWQgcmF0ZQo+IHJlcXVpcmVtZW50cyBvZiB0aGUgVUFSVCBJUCBvbiBkaWZmZXJlbnQgbWVzb24g Y2hpcHMKPiAKPiBTaWduZWQtb2ZmLWJ5OiBZdSBUdSA8eXUudHVAYW1sb2dpYy5jb20+Cj4gLS0t Cj4gICBkcml2ZXJzL3R0eS9zZXJpYWwvS2NvbmZpZyAgICAgIHwgICAxICsKPiAgIGRyaXZlcnMv dHR5L3NlcmlhbC9tZXNvbl91YXJ0LmMgfCAzMDMgKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgMjQ5IGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvS2NvbmZpZyBiL2RyaXZl cnMvdHR5L3NlcmlhbC9LY29uZmlnCj4gaW5kZXggNzgwOTA4ZDQzNTU3Li4zMmUyMzgxNzMwMzYg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL0tjb25maWcKPiArKysgYi9kcml2ZXJz L3R0eS9zZXJpYWwvS2NvbmZpZwo+IEBAIC0xOTgsNiArMTk4LDcgQEAgY29uZmlnIFNFUklBTF9L R0RCX05NSQo+ICAgY29uZmlnIFNFUklBTF9NRVNPTgo+ICAgCXRyaXN0YXRlICJNZXNvbiBzZXJp YWwgcG9ydCBzdXBwb3J0Igo+ICAgCWRlcGVuZHMgb24gQVJDSF9NRVNPTgo+ICsJZGVwZW5kcyBv biBDT01NT05fQ0xLCj4gICAJc2VsZWN0IFNFUklBTF9DT1JFCj4gICAJaGVscAo+ICAgCSAgVGhp cyBlbmFibGVzIHRoZSBkcml2ZXIgZm9yIHRoZSBvbi1jaGlwIFVBUlRzIG9mIHRoZSBBbWxvZ2lj Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC9tZXNvbl91YXJ0LmMgYi9kcml2ZXJz L3R0eS9zZXJpYWwvbWVzb25fdWFydC5jCj4gaW5kZXggOTllZmU2MmExNTA3Li45YjA3ZTM1MzQ5 NjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL21lc29uX3VhcnQuYwo+ICsrKyBi L2RyaXZlcnMvdHR5L3NlcmlhbC9tZXNvbl91YXJ0LmMKPiBAQCAtNiw2ICs2LDcgQEAKPiAgICAq Lwo+ICAgCj4gICAjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9jbGst cHJvdmlkZXIuaD4KPiAgICNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+Cj4gICAjaW5jbHVkZSA8 bGludXgvZGVsYXkuaD4KPiAgICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Cj4gQEAgLTY1LDkgKzY2 LDcgQEAKPiAgICNkZWZpbmUgQU1MX1VBUlRfUkVDVl9JUlEoYykJCSgoYykgJiAweGZmKQo+ICAg Cj4gICAvKiBBTUxfVUFSVF9SRUc1IGJpdHMgKi8KPiAtI2RlZmluZSBBTUxfVUFSVF9CQVVEX01B U0sJCTB4N2ZmZmZmCj4gICAjZGVmaW5lIEFNTF9VQVJUX0JBVURfVVNFCQlCSVQoMjMpCj4gLSNk ZWZpbmUgQU1MX1VBUlRfQkFVRF9YVEFMCQlCSVQoMjQpCj4gICAKPiAgICNkZWZpbmUgQU1MX1VB UlRfUE9SVF9OVU0JCTEyCj4gICAjZGVmaW5lIEFNTF9VQVJUX1BPUlRfT0ZGU0VUCQk2Cj4gQEAg LTc2LDYgKzc1LDIxIEBACj4gICAjZGVmaW5lIEFNTF9VQVJUX1BPTExfVVNFQwkJNQo+ICAgI2Rl ZmluZSBBTUxfVUFSVF9USU1FT1VUX1VTRUMJCTEwMDAwCj4gICAKPiArc3RydWN0IG1lc29uX3Vh cnRfZGF0YSB7Cj4gKwlzdHJ1Y3QgdWFydF9wb3J0CXBvcnQ7Cj4gKwlzdHJ1Y3QgY2xrCQkqcGNs azsKPiArCXN0cnVjdCBjbGsJCSpiYXVkX2NsazsKPiArCXN0cnVjdCBjbGtfZGl2aWRlcgliYXVk X2RpdjsKPiArCXN0cnVjdCBjbGtfbXV4CQl1c2VfeHRhbF9tdXg7Cj4gKwlzdHJ1Y3QgY2xrX211 eAkJeHRhbF9jbGtfc2VsX211eDsKPiArCXN0cnVjdCBjbGtfbXV4CQl4dGFsMl9jbGtfc2VsX211 eDsKPiArCXN0cnVjdCBjbGtfZml4ZWRfZmFjdG9yCXh0YWxfZGl2MjsKPiArCXN0cnVjdCBjbGtf Zml4ZWRfZmFjdG9yCXh0YWxfZGl2MzsKPiArCXN0cnVjdCBjbGtfZml4ZWRfZmFjdG9yCWNsazgx X2RpdjQ7Cj4gKwlib29sCQkJbm9fY2xrODFfaW5wdXQ7Cj4gKwlib29sCQkJaGFzX3h0YWxfY2xr X3NlbDsKPiArfTsKPiArCj4gICBzdGF0aWMgc3RydWN0IHVhcnRfZHJpdmVyIG1lc29uX3VhcnRf ZHJpdmVyOwo+ICAgCj4gICBzdGF0aWMgc3RydWN0IHVhcnRfcG9ydCAqbWVzb25fcG9ydHNbQU1M X1VBUlRfUE9SVF9OVU1dOwo+IEBAIC0yNzAsMTQgKzI4NCwxMSBAQCBzdGF0aWMgdm9pZCBtZXNv bl91YXJ0X3Jlc2V0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCj4gICBzdGF0aWMgaW50IG1lc29u X3VhcnRfc3RhcnR1cChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQo+ICAgewo+ICAgCXUzMiB2YWw7 Cj4gLQlpbnQgcmV0ID0gMDsKPiArCWludCByZXQ7Cj4gICAKPiAtCXZhbCA9IHJlYWRsKHBvcnQt Pm1lbWJhc2UgKyBBTUxfVUFSVF9DT05UUk9MKTsKPiAtCXZhbCB8PSBBTUxfVUFSVF9DTEVBUl9F UlI7Cj4gLQl3cml0ZWwodmFsLCBwb3J0LT5tZW1iYXNlICsgQU1MX1VBUlRfQ09OVFJPTCk7Cj4g LQl2YWwgJj0gfkFNTF9VQVJUX0NMRUFSX0VSUjsKPiAtCXdyaXRlbCh2YWwsIHBvcnQtPm1lbWJh c2UgKyBBTUxfVUFSVF9DT05UUk9MKTsKPiArCW1lc29uX3VhcnRfcmVzZXQocG9ydCk7Cj4gICAK PiArCXZhbCA9IHJlYWRsKHBvcnQtPm1lbWJhc2UgKyBBTUxfVUFSVF9DT05UUk9MKTsKPiAgIAl2 YWwgfD0gKEFNTF9VQVJUX1JYX0VOIHwgQU1MX1VBUlRfVFhfRU4pOwo+ICAgCXdyaXRlbCh2YWws IHBvcnQtPm1lbWJhc2UgKyBBTUxfVUFSVF9DT05UUk9MKTsKPiAgIAo+IEBAIC0yOTUsMTkgKzMw NiwxNyBAQCBzdGF0aWMgaW50IG1lc29uX3VhcnRfc3RhcnR1cChzdHJ1Y3QgdWFydF9wb3J0ICpw b3J0KQo+ICAgCj4gICBzdGF0aWMgdm9pZCBtZXNvbl91YXJ0X2NoYW5nZV9zcGVlZChzdHJ1Y3Qg dWFydF9wb3J0ICpwb3J0LCB1bnNpZ25lZCBsb25nIGJhdWQpCj4gICB7Cj4gKwlzdHJ1Y3QgbWVz b25fdWFydF9kYXRhICpwcml2YXRlX2RhdGEgPSBwb3J0LT5wcml2YXRlX2RhdGE7Cj4gICAJdTMy IHZhbDsKPiAgIAo+ICAgCXdoaWxlICghbWVzb25fdWFydF90eF9lbXB0eShwb3J0KSkKPiAgIAkJ Y3B1X3JlbGF4KCk7Cj4gICAKPiAtCWlmIChwb3J0LT51YXJ0Y2xrID09IDI0MDAwMDAwKSB7Cj4g LQkJdmFsID0gKChwb3J0LT51YXJ0Y2xrIC8gMykgLyBiYXVkKSAtIDE7Cj4gLQkJdmFsIHw9IEFN TF9VQVJUX0JBVURfWFRBTDsKPiAtCX0gZWxzZSB7Cj4gLQkJdmFsID0gKChwb3J0LT51YXJ0Y2xr ICogMTAgLyAoYmF1ZCAqIDQpICsgNSkgLyAxMCkgLSAxOwo+IC0JfQo+ICsJdmFsID0gcmVhZGwo cG9ydC0+bWVtYmFzZSArIEFNTF9VQVJUX1JFRzUpOwo+ICAgCXZhbCB8PSBBTUxfVUFSVF9CQVVE X1VTRTsKPiAgIAl3cml0ZWwodmFsLCBwb3J0LT5tZW1iYXNlICsgQU1MX1VBUlRfUkVHNSk7Cj4g Kwo+ICsJY2xrX3NldF9yYXRlKHByaXZhdGVfZGF0YS0+YmF1ZF9jbGssIGJhdWQpOwo+ICAgfQo+ ICAgCj4gICBzdGF0aWMgdm9pZCBtZXNvbl91YXJ0X3NldF90ZXJtaW9zKHN0cnVjdCB1YXJ0X3Bv cnQgKnBvcnQsCj4gQEAgLTM5NywxMSArNDA2LDI3IEBAIHN0YXRpYyBpbnQgbWVzb25fdWFydF92 ZXJpZnlfcG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAo+ICAgCj4gICBzdGF0aWMgdm9pZCBt ZXNvbl91YXJ0X3JlbGVhc2VfcG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQo+ICAgewo+IC0J Lyogbm90aGluZyB0byBkbyAqLwo+ICsJc3RydWN0IG1lc29uX3VhcnRfZGF0YSAqcHJpdmF0ZV9k YXRhID0gcG9ydC0+cHJpdmF0ZV9kYXRhOwo+ICsKPiArCWNsa19kaXNhYmxlX3VucHJlcGFyZShw cml2YXRlX2RhdGEtPmJhdWRfY2xrKTsKPiArCWNsa19kaXNhYmxlX3VucHJlcGFyZShwcml2YXRl X2RhdGEtPnBjbGspOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgaW50IG1lc29uX3VhcnRfcmVxdWVz dF9wb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCj4gICB7Cj4gKwlzdHJ1Y3QgbWVzb25fdWFy dF9kYXRhICpwcml2YXRlX2RhdGEgPSBwb3J0LT5wcml2YXRlX2RhdGE7Cj4gKwlpbnQgcmV0Owo+ ICsKPiArCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShwcml2YXRlX2RhdGEtPnBjbGspOwo+ICsJ aWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCXJldCA9IGNsa19wcmVwYXJlX2VuYWJs ZShwcml2YXRlX2RhdGEtPmJhdWRfY2xrKTsKPiArCWlmIChyZXQpIHsKPiArCQljbGtfZGlzYWJs ZV91bnByZXBhcmUocHJpdmF0ZV9kYXRhLT5wY2xrKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ ICsKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+IEBAIC02MjksNTYgKzY1NCwxNzUgQEAgc3Rh dGljIHN0cnVjdCB1YXJ0X2RyaXZlciBtZXNvbl91YXJ0X2RyaXZlciA9IHsKPiAgIAkuY29ucwkJ PSBNRVNPTl9TRVJJQUxfQ09OU09MRSwKPiAgIH07Cj4gICAKPiAtc3RhdGljIGlubGluZSBzdHJ1 Y3QgY2xrICptZXNvbl91YXJ0X3Byb2JlX2Nsb2NrKHN0cnVjdCBkZXZpY2UgKmRldiwKPiAtCQkJ CQkJIGNvbnN0IGNoYXIgKmlkKQo+ICtzdGF0aWMgaW50IG1lc29uX3VhcnRfcmVnaXN0ZXJfY2xr KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCj4gKwkJCQkgICBjb25zdCBjaGFyICpuYW1lX3N1ZmZp eCwKPiArCQkJCSAgIGNvbnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgKnBhcmVudF9kYXRhLAo+ ICsJCQkJICAgdW5zaWduZWQgaW50IG51bV9wYXJlbnRzLAo+ICsJCQkJICAgY29uc3Qgc3RydWN0 IGNsa19vcHMgKm9wcywKPiArCQkJCSAgIHN0cnVjdCBjbGtfaHcgKmh3KQo+ICAgewo+IC0Jc3Ry dWN0IGNsayAqY2xrID0gTlVMTDsKPiArCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQgPSB7IH07 Cj4gKwljaGFyIGNsa19uYW1lWzMyXTsKPiAgIAlpbnQgcmV0Owo+ICAgCj4gLQljbGsgPSBkZXZt X2Nsa19nZXQoZGV2LCBpZCk7Cj4gLQlpZiAoSVNfRVJSKGNsaykpCj4gLQkJcmV0dXJuIGNsazsK PiArCXNucHJpbnRmKGNsa19uYW1lLCBzaXplb2YoY2xrX25hbWUpLCAiJXMjJXMiLCBkZXZfbmFt ZShwb3J0LT5kZXYpLAo+ICsJCSBuYW1lX3N1ZmZpeCk7Cj4gICAKPiAtCXJldCA9IGNsa19wcmVw YXJlX2VuYWJsZShjbGspOwo+IC0JaWYgKHJldCkgewo+IC0JCWRldl9lcnIoZGV2LCAiY291bGRu J3QgZW5hYmxlIGNsa1xuIik7Cj4gLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAtCX0KPiArCWlu aXQubmFtZSA9IGNsa19uYW1lOwo+ICsJaW5pdC5vcHMgPSBvcHM7Cj4gKwlpbml0LmZsYWdzID0g Q0xLX1NFVF9SQVRFX1BBUkVOVDsKPiArCWluaXQucGFyZW50X2RhdGEgPSBwYXJlbnRfZGF0YTsK PiArCWluaXQubnVtX3BhcmVudHMgPSBudW1fcGFyZW50czsKPiArCj4gKwlody0+aW5pdCA9ICZp bml0Owo+ICAgCj4gLQlkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoZGV2LAo+IC0JCQkodm9pZCgq KSh2b2lkICopKWNsa19kaXNhYmxlX3VucHJlcGFyZSwKPiAtCQkJY2xrKTsKPiArCXJldCA9IGRl dm1fY2xrX2h3X3JlZ2lzdGVyKHBvcnQtPmRldiwgaHcpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1 cm4gZGV2X2Vycl9wcm9iZShwb3J0LT5kZXYsIHJldCwKPiArCQkJCSAgICAgIkZhaWxlZCB0byBy ZWdpc3RlciB0aGUgJyVzJyBjbG9ja1xuIiwKPiArCQkJCSAgICAgY2xrX25hbWUpOwo+ICAgCj4g LQlyZXR1cm4gY2xrOwo+ICsJcmV0dXJuIHJldDsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgaW50IG1l c29uX3VhcnRfcHJvYmVfY2xvY2tzKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gLQkJ CQkgICBzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQo+IC17Cj4gLQlzdHJ1Y3QgY2xrICpjbGtfeHRh bCA9IE5VTEw7Cj4gLQlzdHJ1Y3QgY2xrICpjbGtfcGNsayA9IE5VTEw7Cj4gLQlzdHJ1Y3QgY2xr ICpjbGtfYmF1ZCA9IE5VTEw7Cj4gK3N0YXRpYyBpbnQgbWVzb25fdWFydF9wcm9iZV9jbG9ja3Mo c3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKPiArCQkJCSAgIGJvb2wgcmVnaXN0ZXJfY2xrODFfZGl2 NCkKPiArewo+ICsJc3RydWN0IG1lc29uX3VhcnRfZGF0YSAqcHJpdmF0ZV9kYXRhID0gcG9ydC0+ cHJpdmF0ZV9kYXRhOwo+ICsJc3RydWN0IGNsa19wYXJlbnRfZGF0YSB1c2VfeHRhbF9tdXhfcGFy ZW50c1syXSA9IHsKPiArCQl7IC5pbmRleCA9IC0xLCB9LAo+ICsJCXsgLmluZGV4ID0gLTEsIH0s Cj4gKwl9Owo+ICsJc3RydWN0IGNsa19wYXJlbnRfZGF0YSB4dGFsX2Nsa19zZWxfbXV4X3BhcmVu dHNbMl0gPSB7IH07Cj4gKwlzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIHh0YWwyX2Nsa19zZWxfbXV4 X3BhcmVudHNbMl0gPSB7IH07Cj4gKwlzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIHh0YWxfZGl2X3Bh cmVudCA9IHsgLmZ3X25hbWUgPSAieHRhbCIsIH07Cj4gKwlzdHJ1Y3QgY2xrX3BhcmVudF9kYXRh IGNsazgxX2Rpdl9wYXJlbnQgPSB7IC5md19uYW1lID0gImJhdWQiLCB9Owo+ICsJc3RydWN0IGNs a19wYXJlbnRfZGF0YSBiYXVkX2Rpdl9wYXJlbnQgPSB7IH07Cj4gKwlzdHJ1Y3QgY2xrICpjbGtf YmF1ZCwgKmNsa194dGFsOwo+ICsJaW50IHJldDsKPiAgIAo+IC0JY2xrX3BjbGsgPSBtZXNvbl91 YXJ0X3Byb2JlX2Nsb2NrKCZwZGV2LT5kZXYsICJwY2xrIik7Cj4gLQlpZiAoSVNfRVJSKGNsa19w Y2xrKSkKPiAtCQlyZXR1cm4gUFRSX0VSUihjbGtfcGNsayk7Cj4gKwlwcml2YXRlX2RhdGEtPnBj bGsgPSBkZXZtX2Nsa19nZXQocG9ydC0+ZGV2LCAicGNsayIpOwo+ICsJaWYgKElTX0VSUihwcml2 YXRlX2RhdGEtPnBjbGspKQo+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKHBvcnQtPmRldiwgUFRS X0VSUihwcml2YXRlX2RhdGEtPnBjbGspLAo+ICsJCQkJICAgICAiRmFpbGVkIHRvIGdldCB0aGUg J3BjbGsnIGNsb2NrXG4iKTsKPiArCj4gKwljbGtfYmF1ZCA9IGRldm1fY2xrX2dldChwb3J0LT5k ZXYsICJiYXVkIik7Cj4gKwlpZiAoSVNfRVJSKGNsa19iYXVkKSkKPiArCQlyZXR1cm4gZGV2X2Vy cl9wcm9iZShwb3J0LT5kZXYsIFBUUl9FUlIoY2xrX2JhdWQpLAo+ICsJCQkJICAgICAiRmFpbGVk IHRvIGdldCB0aGUgJ2JhdWQnIGNsb2NrXG4iKTsKPiAgIAo+IC0JY2xrX3h0YWwgPSBtZXNvbl91 YXJ0X3Byb2JlX2Nsb2NrKCZwZGV2LT5kZXYsICJ4dGFsIik7Cj4gKwljbGtfeHRhbCA9IGRldm1f Y2xrX2dldChwb3J0LT5kZXYsICJ4dGFsIik7Cj4gICAJaWYgKElTX0VSUihjbGtfeHRhbCkpCj4g LQkJcmV0dXJuIFBUUl9FUlIoY2xrX3h0YWwpOwo+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKHBv cnQtPmRldiwgUFRSX0VSUihjbGtfeHRhbCksCj4gKwkJCQkgICAgICJGYWlsZWQgdG8gZ2V0IHRo ZSAneHRhbCcgY2xvY2tcbiIpOwo+ICsKPiArCXByaXZhdGVfZGF0YS0+eHRhbF9kaXYzLm11bHQg PSAxOwo+ICsJcHJpdmF0ZV9kYXRhLT54dGFsX2RpdjMuZGl2ID0gMzsKPiArCXJldCA9IG1lc29u X3VhcnRfcmVnaXN0ZXJfY2xrKHBvcnQsICJ4dGFsX2RpdjMiLCAmeHRhbF9kaXZfcGFyZW50LAo+ ICsJCQkJICAgICAgMSwgJmNsa19maXhlZF9mYWN0b3Jfb3BzLAo+ICsJCQkJICAgICAgJnByaXZh dGVfZGF0YS0+eHRhbF9kaXYzLmh3KTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiAg IAo+IC0JY2xrX2JhdWQgPSBtZXNvbl91YXJ0X3Byb2JlX2Nsb2NrKCZwZGV2LT5kZXYsICJiYXVk Iik7Cj4gLQlpZiAoSVNfRVJSKGNsa19iYXVkKSkKPiAtCQlyZXR1cm4gUFRSX0VSUihjbGtfYmF1 ZCk7Cj4gKwlpZiAocmVnaXN0ZXJfY2xrODFfZGl2NCkgewo+ICsJCXByaXZhdGVfZGF0YS0+Y2xr ODFfZGl2NC5tdWx0ID0gMTsKPiArCQlwcml2YXRlX2RhdGEtPmNsazgxX2RpdjQuZGl2ID0gNDsK PiArCQlyZXQgPSBtZXNvbl91YXJ0X3JlZ2lzdGVyX2Nsayhwb3J0LCAiY2xrODFfZGl2NCIsCj4g KwkJCQkJICAgICAgJmNsazgxX2Rpdl9wYXJlbnQsIDEsCj4gKwkJCQkJICAgICAgJmNsa19maXhl ZF9mYWN0b3Jfb3BzLAo+ICsJCQkJCSAgICAgICZwcml2YXRlX2RhdGEtPmNsazgxX2RpdjQuaHcp Owo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwo+ICsJCXVzZV94dGFsX211eF9w YXJlbnRzWzBdLmh3ID0gJnByaXZhdGVfZGF0YS0+Y2xrODFfZGl2NC5odzsKPiArCX0KPiAgIAo+ IC0JcG9ydC0+dWFydGNsayA9IGNsa19nZXRfcmF0ZShjbGtfYmF1ZCk7Cj4gKwlpZiAocHJpdmF0 ZV9kYXRhLT5oYXNfeHRhbF9jbGtfc2VsKSB7Cj4gKwkJcHJpdmF0ZV9kYXRhLT54dGFsX2RpdjIu bXVsdCA9IDE7Cj4gKwkJcHJpdmF0ZV9kYXRhLT54dGFsX2RpdjIuZGl2ID0gMjsKPiArCQlyZXQg PSBtZXNvbl91YXJ0X3JlZ2lzdGVyX2Nsayhwb3J0LCAieHRhbF9kaXYyIiwKPiArCQkJCQkgICAg ICAmeHRhbF9kaXZfcGFyZW50LCAxLAo+ICsJCQkJCSAgICAgICZjbGtfZml4ZWRfZmFjdG9yX29w cywKPiArCQkJCQkgICAgICAmcHJpdmF0ZV9kYXRhLT54dGFsX2RpdjIuaHcpOwo+ICsJCWlmIChy ZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwo+ICsJCXh0YWxfY2xrX3NlbF9tdXhfcGFyZW50c1sw XS5odyA9ICZwcml2YXRlX2RhdGEtPnh0YWxfZGl2My5odzsKPiArCQl4dGFsX2Nsa19zZWxfbXV4 X3BhcmVudHNbMV0uZndfbmFtZSA9ICJ4dGFsIjsKPiArCj4gKwkJcHJpdmF0ZV9kYXRhLT54dGFs X2Nsa19zZWxfbXV4LnJlZyA9IHBvcnQtPm1lbWJhc2UgKyBBTUxfVUFSVF9SRUc1Owo+ICsJCXBy aXZhdGVfZGF0YS0+eHRhbF9jbGtfc2VsX211eC5tYXNrID0gMHgxOwo+ICsJCXByaXZhdGVfZGF0 YS0+eHRhbF9jbGtfc2VsX211eC5zaGlmdCA9IDI2Owo+ICsJCXByaXZhdGVfZGF0YS0+eHRhbF9j bGtfc2VsX211eC5mbGFncyA9IENMS19NVVhfUk9VTkRfQ0xPU0VTVDsKPiArCQlyZXQgPSBtZXNv bl91YXJ0X3JlZ2lzdGVyX2Nsayhwb3J0LCAieHRhbF9jbGtfc2VsIiwKPiArCQkJCQkgICAgICB4 dGFsX2Nsa19zZWxfbXV4X3BhcmVudHMsCj4gKwkJCQkJICAgICAgQVJSQVlfU0laRSh4dGFsX2Ns a19zZWxfbXV4X3BhcmVudHMpLAo+ICsJCQkJCSAgICAgICZjbGtfbXV4X29wcywKPiArCQkJCQkg ICAgICAmcHJpdmF0ZV9kYXRhLT54dGFsX2Nsa19zZWxfbXV4Lmh3KTsKPiArCQlpZiAocmV0KQo+ ICsJCQlyZXR1cm4gcmV0Owo+ICsKPiArCQl4dGFsMl9jbGtfc2VsX211eF9wYXJlbnRzWzBdLmh3 ID0gJnByaXZhdGVfZGF0YS0+eHRhbF9jbGtfc2VsX211eC5odzsKPiArCQl4dGFsMl9jbGtfc2Vs X211eF9wYXJlbnRzWzFdLmh3ID0gJnByaXZhdGVfZGF0YS0+eHRhbF9kaXYyLmh3Owo+ICsKPiAr CQlwcml2YXRlX2RhdGEtPnh0YWwyX2Nsa19zZWxfbXV4LnJlZyA9IHBvcnQtPm1lbWJhc2UgKyBB TUxfVUFSVF9SRUc1Owo+ICsJCXByaXZhdGVfZGF0YS0+eHRhbDJfY2xrX3NlbF9tdXgubWFzayA9 IDB4MTsKPiArCQlwcml2YXRlX2RhdGEtPnh0YWwyX2Nsa19zZWxfbXV4LnNoaWZ0ID0gMjc7Cj4g KwkJcHJpdmF0ZV9kYXRhLT54dGFsMl9jbGtfc2VsX211eC5mbGFncyA9IENMS19NVVhfUk9VTkRf Q0xPU0VTVDsKPiArCQlyZXQgPSBtZXNvbl91YXJ0X3JlZ2lzdGVyX2Nsayhwb3J0LCAieHRhbDJf Y2xrX3NlbCIsCj4gKwkJCQkJICAgICAgeHRhbDJfY2xrX3NlbF9tdXhfcGFyZW50cywKPiArCQkJ CQkgICAgICBBUlJBWV9TSVpFKHh0YWwyX2Nsa19zZWxfbXV4X3BhcmVudHMpLAo+ICsJCQkJCSAg ICAgICZjbGtfbXV4X29wcywKPiArCQkJCQkgICAgICAmcHJpdmF0ZV9kYXRhLT54dGFsMl9jbGtf c2VsX211eC5odyk7Cj4gKwkJaWYgKHJldCkKPiArCQkJcmV0dXJuIHJldDsKPiArCj4gKwkJdXNl X3h0YWxfbXV4X3BhcmVudHNbMV0uaHcgPSAmcHJpdmF0ZV9kYXRhLT54dGFsMl9jbGtfc2VsX211 eC5odzsKPiArCX0gZWxzZSB7Cj4gKwkJdXNlX3h0YWxfbXV4X3BhcmVudHNbMV0uaHcgPSAmcHJp dmF0ZV9kYXRhLT54dGFsX2RpdjMuaHc7Cj4gKwl9Cj4gKwo+ICsJcHJpdmF0ZV9kYXRhLT51c2Vf eHRhbF9tdXgucmVnID0gcG9ydC0+bWVtYmFzZSArIEFNTF9VQVJUX1JFRzU7Cj4gKwlwcml2YXRl X2RhdGEtPnVzZV94dGFsX211eC5tYXNrID0gMHgxOwo+ICsJcHJpdmF0ZV9kYXRhLT51c2VfeHRh bF9tdXguc2hpZnQgPSAyNDsKPiArCXByaXZhdGVfZGF0YS0+dXNlX3h0YWxfbXV4LmZsYWdzID0g Q0xLX01VWF9ST1VORF9DTE9TRVNUOwo+ICsJcmV0ID0gbWVzb25fdWFydF9yZWdpc3Rlcl9jbGso cG9ydCwgInVzZV94dGFsIiwgdXNlX3h0YWxfbXV4X3BhcmVudHMsCj4gKwkJCQkgICAgICBBUlJB WV9TSVpFKHVzZV94dGFsX211eF9wYXJlbnRzKSwKPiArCQkJCSAgICAgICZjbGtfbXV4X29wcywK PiArCQkJCSAgICAgICZwcml2YXRlX2RhdGEtPnVzZV94dGFsX211eC5odyk7Cj4gKwlpZiAocmV0 KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJYmF1ZF9kaXZfcGFyZW50Lmh3ID0gJnByaXZhdGVf ZGF0YS0+dXNlX3h0YWxfbXV4Lmh3Owo+ICsKPiArCXByaXZhdGVfZGF0YS0+YmF1ZF9kaXYucmVn ID0gcG9ydC0+bWVtYmFzZSArIEFNTF9VQVJUX1JFRzU7Cj4gKwlwcml2YXRlX2RhdGEtPmJhdWRf ZGl2LnNoaWZ0ID0gMDsKPiArCXByaXZhdGVfZGF0YS0+YmF1ZF9kaXYud2lkdGggPSAyMzsKPiAr CXByaXZhdGVfZGF0YS0+YmF1ZF9kaXYuZmxhZ3MgPSBDTEtfRElWSURFUl9ST1VORF9DTE9TRVNU Owo+ICsJcmV0ID0gbWVzb25fdWFydF9yZWdpc3Rlcl9jbGsocG9ydCwgImJhdWRfZGl2IiwKPiAr CQkJCSAgICAgICZiYXVkX2Rpdl9wYXJlbnQsIDEsCj4gKwkJCQkgICAgICAmY2xrX2RpdmlkZXJf b3BzLAo+ICsJCQkJICAgICAgJnByaXZhdGVfZGF0YS0+YmF1ZF9kaXYuaHcpOwo+ICsJaWYgKHJl dCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCXByaXZhdGVfZGF0YS0+YmF1ZF9jbGsgPSBkZXZt X2Nsa19od19nZXRfY2xrKHBvcnQtPmRldiwKPiArCQkJCQkJICAgICAmcHJpdmF0ZV9kYXRhLT5i YXVkX2Rpdi5odywKPiArCQkJCQkJICAgICAiYmF1ZF9yYXRlIik7Cj4gKwlpZiAoSVNfRVJSKHBy aXZhdGVfZGF0YS0+YmF1ZF9jbGspKQo+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKHBvcnQtPmRl diwKPiArCQkJCSAgICAgUFRSX0VSUihwcml2YXRlX2RhdGEtPmJhdWRfY2xrKSwKPiArCQkJCSAg ICAgIkZhaWxlZCB0byByZXF1ZXN0IHRoZSAnYmF1ZF9yYXRlJyBjbG9ja1xuIik7Cj4gICAKPiAg IAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIGludCBtZXNvbl91YXJ0X3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICB7Cj4gKwlzdHJ1Y3QgbWVzb25fdWFydF9k YXRhICpwcml2YXRlX2RhdGE7Cj4gICAJc3RydWN0IHJlc291cmNlICpyZXNfbWVtLCAqcmVzX2ly cTsKPiArCXN0cnVjdCBjbGsgKmNsa19iYXVkLCAqY2xrX3h0YWw7Cj4gKwlib29sIHJlZ2lzdGVy X2NsazgxX2RpdjQ7Cj4gICAJc3RydWN0IHVhcnRfcG9ydCAqcG9ydDsKPiAgIAlpbnQgcmV0ID0g MDsKPiAgIAlpbnQgaWQgPSAtMTsKPiBAQCAtNzExLDE4ICs4NTUsMzcgQEAgc3RhdGljIGludCBt ZXNvbl91YXJ0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAJCXJldHVy biAtRUJVU1k7Cj4gICAJfQo+ICAgCj4gLQlwb3J0ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYs IHNpemVvZihzdHJ1Y3QgdWFydF9wb3J0KSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIXBvcnQpCj4g Kwlwcml2YXRlX2RhdGEgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpwcml2YXRl X2RhdGEpLAo+ICsJCQkJICAgIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFwcml2YXRlX2RhdGEpCj4g ICAJCXJldHVybiAtRU5PTUVNOwo+ICAgCj4gKwlpZiAoZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZw ZGV2LT5kZXYpKQo+ICsJCXByaXZhdGVfZGF0YS0+aGFzX3h0YWxfY2xrX3NlbCA9IHRydWU7Cj4g Kwo+ICsJcHJpdmF0ZV9kYXRhLT5wY2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJwY2xr Iik7Cj4gKwlpZiAoSVNfRVJSKHByaXZhdGVfZGF0YS0+cGNsaykpCj4gKwkJcmV0dXJuIGRldl9l cnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihwcml2YXRlX2RhdGEtPnBjbGspLAo+ICsJCQkJ ICAgICAiRmFpbGVkIHRvIGdldCB0aGUgJ3BjbGsnIGNsb2NrXG4iKTsKPiArCj4gKwljbGtfYmF1 ZCA9IGRldm1fY2xrX2dldCgmcGRldi0+ZGV2LCAiYmF1ZCIpOwo+ICsJaWYgKElTX0VSUihjbGtf YmF1ZCkpCj4gKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihjbGtf YmF1ZCksCj4gKwkJCQkgICAgICJGYWlsZWQgdG8gZ2V0IHRoZSAnYmF1ZCcgY2xvY2tcbiIpOwo+ ICsKPiArCWNsa194dGFsID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJ4dGFsIik7Cj4gKwlp ZiAoSVNfRVJSKGNsa194dGFsKSkKPiArCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2 LCBQVFJfRVJSKGNsa194dGFsKSwKPiArCQkJCSAgICAgIkZhaWxlZCB0byBnZXQgdGhlICd4dGFs JyBjbG9ja1xuIik7Cj4gKwo+ICsJcmVnaXN0ZXJfY2xrODFfZGl2NCA9IGNsa19nZXRfcmF0ZShj bGtfeHRhbCkgIT0gY2xrX2dldF9yYXRlKGNsa19iYXVkKTsKPiArCj4gKwlwb3J0ID0gJnByaXZh dGVfZGF0YS0+cG9ydDsKPiArCj4gICAJcG9ydC0+bWVtYmFzZSA9IGRldm1faW9yZW1hcF9yZXNv dXJjZSgmcGRldi0+ZGV2LCByZXNfbWVtKTsKPiAgIAlpZiAoSVNfRVJSKHBvcnQtPm1lbWJhc2Up KQo+ICAgCQlyZXR1cm4gUFRSX0VSUihwb3J0LT5tZW1iYXNlKTsKPiAgIAo+IC0JcmV0ID0gbWVz b25fdWFydF9wcm9iZV9jbG9ja3MocGRldiwgcG9ydCk7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVy biByZXQ7Cj4gLQo+ICAgCXBvcnQtPmlvdHlwZSA9IFVQSU9fTUVNOwo+ICAgCXBvcnQtPm1hcGJh c2UgPSByZXNfbWVtLT5zdGFydDsKPiAgIAlwb3J0LT5tYXBzaXplID0gcmVzb3VyY2Vfc2l6ZShy ZXNfbWVtKTsKPiBAQCAtNzM1LDYgKzg5OCwxMiBAQCBzdGF0aWMgaW50IG1lc29uX3VhcnRfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgIAlwb3J0LT54X2NoYXIgPSAwOwo+ ICAgCXBvcnQtPm9wcyA9ICZtZXNvbl91YXJ0X29wczsKPiAgIAlwb3J0LT5maWZvc2l6ZSA9IDY0 Owo+ICsJcG9ydC0+dWFydGNsayA9IGNsa19nZXRfcmF0ZShjbGtfYmF1ZCk7Cj4gKwlwb3J0LT5w cml2YXRlX2RhdGEgPSBwcml2YXRlX2RhdGE7Cj4gKwo+ICsJcmV0ID0gbWVzb25fdWFydF9wcm9i ZV9jbG9ja3MocG9ydCwgcmVnaXN0ZXJfY2xrODFfZGl2NCk7Cj4gKwlpZiAocmV0KQo+ICsJCXJl dHVybiByZXQ7Cj4gICAKPiAgIAltZXNvbl9wb3J0c1twZGV2LT5pZF0gPSBwb3J0Owo+ICAgCXBs YXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHBvcnQpOwo+IEBAIC03NjEsMTAgKzkzMCwzNCBAQCBz dGF0aWMgaW50IG1lc29uX3VhcnRfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lc29uX3Vh cnRfZHRfbWF0Y2hbXSA9IHsKPiAtCXsgLmNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbjYtdWFy dCIgfSwKPiAtCXsgLmNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbjgtdWFydCIgfSwKPiAtCXsg LmNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbjhiLXVhcnQiIH0sCj4gLQl7IC5jb21wYXRpYmxl ID0gImFtbG9naWMsbWVzb24tZ3gtdWFydCIgfSwKCllvdSBjYW4ndCBkcm9wIHVzZWQgaXRlbSB3 aXRob3V0IHBhdGNoIGZvciBkdHMgZmlsZXMuCgphcmNoL2FybTY0L2Jvb3QvZHRzL2FtbG9naWMk IGdyZXAgYW1sb2dpYyxtZXNvbi1neC11YXJ0ICp8d2MgLWwKMTYKCj4gKwl7Cj4gKwkJLmNvbXBh dGlibGUgPSAiYW1sb2dpYyxtZXNvbjYtdWFydCIsCj4gKwkJLmRhdGEgPSAodm9pZCAqKWZhbHNl LAo+ICsJfSwKPiArCXsKPiArCQkuY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1lc29uOC11YXJ0IiwK PiArCQkuZGF0YSA9ICh2b2lkICopZmFsc2UsCj4gKwl9LAo+ICsJewo+ICsJCS5jb21wYXRpYmxl ID0gImFtbG9naWMsbWVzb244Yi11YXJ0IiwKPiArCQkuZGF0YSA9ICh2b2lkICopZmFsc2UsCj4g Kwl9LAo+ICsJewo+ICsJCS5jb21wYXRpYmxlID0gImFtbG9naWMsbWVzb24tZ3hiYi11YXJ0IiwK PiArCQkuZGF0YSA9ICh2b2lkICopZmFsc2UsCj4gKwl9LAo+ICsJewo+ICsJCS5jb21wYXRpYmxl ID0gImFtbG9naWMsbWVzb24tZ3hsLXVhcnQiLAo+ICsJCS5kYXRhID0gKHZvaWQgKil0cnVlLAo+ ICsJfSwKPiArCXsKPiArCQkuY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1lc29uLWcxMmEtdWFydCIs Cj4gKwkJLmRhdGEgPSAodm9pZCAqKXRydWUsCj4gKwl9LAo+ICsJewo+ICsJCS5jb21wYXRpYmxl ID0gImFtbG9naWMsbWVzb24tczQtdWFydCIsCj4gKwkJLmRhdGEgPSAodm9pZCAqKXRydWUsCj4g Kwl9LAo+ICAgCXsgLyogc2VudGluZWwgKi8gfSwKPiAgIH07Cj4gICBNT0RVTEVfREVWSUNFX1RB QkxFKG9mLCBtZXNvbl91YXJ0X2R0X21hdGNoKTsKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFtbG9naWMgbWFpbGluZyBsaXN0CmxpbnV4LWFt bG9naWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFtbG9naWMK