From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Osipenko Subject: Re: [PATCH V3 5/8] memory: tegra: Add EMC scaling support code for Tegra210 Date: Mon, 13 May 2019 20:02:10 +0300 Message-ID: References: <20190510084719.18902-1-josephl@nvidia.com> <20190510084719.18902-6-josephl@nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190510084719.18902-6-josephl@nvidia.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Joseph Lo , Thierry Reding , Peter De Schrijver , Jonathan Hunter , Rob Herring , Stephen Boyd Cc: linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org List-Id: linux-tegra@vger.kernel.org MTAuMDUuMjAxOSAxMTo0NywgSm9zZXBoIExvINC/0LjRiNC10YI6Cj4gVGhpcyBwYXRjaCBhZGRz IHRoZSByZXF1aXJlZCBBUElzIGFuZCB2YXJpYWJsZXMgZm9yIHRoZSBFTUMgc2NhbGluZwo+IHNl cXVlbmNlIGNvZGUgb24gVGVncmEyMTAuCj4gCj4gQmFzZWQgb24gdGhlIHdvcmsgb2YgUGV0ZXIg RGUgU2NocmlqdmVyIDxwZGVzY2hyaWp2ZXJAbnZpZGlhLmNvbT4uCj4gCj4gU2lnbmVkLW9mZi1i eTogSm9zZXBoIExvIDxqb3NlcGhsQG52aWRpYS5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvbWVtb3J5 L3RlZ3JhL3RlZ3JhMjEwLWVtYy5jIHwgMTM2OSArKysrKysrKysrKysrKysrKysrKysrKysrKysK PiAgZHJpdmVycy9tZW1vcnkvdGVncmEvdGVncmEyMTAtZW1jLmggfCAgNzIyICsrKysrKysrKysr KysrCj4gIDIgZmlsZXMgY2hhbmdlZCwgMjA5MSBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvbWVtb3J5L3RlZ3JhL3RlZ3JhMjEwLWVtYy5jIGIvZHJpdmVycy9tZW1vcnkv dGVncmEvdGVncmEyMTAtZW1jLmMKPiBpbmRleCBmMDQ3MWNhNzA2MmQuLjI4NWRmYzFlZDdjMiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL21lbW9yeS90ZWdyYS90ZWdyYTIxMC1lbWMuYwo+ICsrKyBi L2RyaXZlcnMvbWVtb3J5L3RlZ3JhL3RlZ3JhMjEwLWVtYy5jCj4gQEAgLTIxLDExICsyMSwyNyBA QAo+ICAjZGVmaW5lIEVNQ19DTEtfRU1DXzJYX0NMS19TUkNfU0hJRlQJCQkyOQo+ICAjZGVmaW5l IEVNQ19DTEtfRU1DXzJYX0NMS19TUkNfTUFTSwkJCVwKPiAgCSgweDcgPDwgRU1DX0NMS19FTUNf MlhfQ0xLX1NSQ19TSElGVCkKPiArI2RlZmluZSBFTUNfQ0xLX1NPVVJDRV9QTExNX0xKCQkJCTB4 NAo+ICsjZGVmaW5lIEVNQ19DTEtfU09VUkNFX1BMTE1CX0xKCQkJCTB4NQo+ICAjZGVmaW5lIEVN Q19DTEtfTUNfRU1DX1NBTUVfRlJFUQkJCUJJVCgxNikKPiAgI2RlZmluZSBFTUNfQ0xLX0VNQ18y WF9DTEtfRElWSVNPUl9TSElGVAkJMAo+ICAjZGVmaW5lIEVNQ19DTEtfRU1DXzJYX0NMS19ESVZJ U09SX01BU0sJCQlcCj4gIAkoMHhmZiA8PCBFTUNfQ0xLX0VNQ18yWF9DTEtfRElWSVNPUl9TSElG VCkKPiAgCj4gKyNkZWZpbmUgQ0xLX1JTVF9DT05UUk9MTEVSX0NMS19TT1VSQ0VfRU1DX0RMTAkJ MHg2NjQKPiArI2RlZmluZSBETExfQ0xLX0VNQ19ETExfQ0xLX1NSQ19TSElGVAkJCTI5Cj4gKyNk ZWZpbmUgRExMX0NMS19FTUNfRExMX0NMS19TUkNfTUFTSwkJCVwKPiArCSgweDcgPDwgRExMX0NM S19FTUNfRExMX0NMS19TUkNfU0hJRlQpCj4gKyNkZWZpbmUgRExMX0NMS19FTUNfRExMX0RETExf Q0xLX1NFTF9TSElGVAkJMTAKPiArI2RlZmluZSBETExfQ0xLX0VNQ19ETExfRERMTF9DTEtfU0VM X01BU0sJCVwKPiArCSgweDMgPDwgRExMX0NMS19FTUNfRExMX0RETExfQ0xLX1NFTF9TSElGVCkK PiArI2RlZmluZSBQTExNX1ZDT0EJCQkJCTAKPiArI2RlZmluZSBQTExNX1ZDT0IJCQkJCTEKPiAr I2RlZmluZSBFTUNfRExMX1NXSVRDSF9PVVQJCQkJMgo+ICsjZGVmaW5lIERMTF9DTEtfRU1DX0RM TF9DTEtfRElWSVNPUl9TSElGVAkJMAo+ICsjZGVmaW5lIERMTF9DTEtfRU1DX0RMTF9DTEtfRElW SVNPUl9NQVNLCQlcCj4gKwkoMHhmZiA8PCBETExfQ0xLX0VNQ19ETExfQ0xLX0RJVklTT1JfU0hJ RlQpCj4gKwo+ICAjZGVmaW5lIE1DX0VNRU1fQVJCX01JU0MwX0VNQ19TQU1FX0ZSRVEJCQlCSVQo MjcpCj4gIAo+ICAjZGVmaW5lIFRFR1JBX0VNQ19NQVhfRlJFUVMJCTE2Cj4gQEAgLTM0LDcgKzUw LDQ2IEBACj4gICNkZWZpbmUgQ0xLX0NIQU5HRV9ERUxBWSAxMDAKPiAgI2RlZmluZSBUUkFJTklO R19USU1FIDEwMAo+ICAKPiArI2RlZmluZSBFTUMwX0VNQ19EQVRBX0JSTFNIRlRfMF9JTkRFWAky Cj4gKyNkZWZpbmUgRU1DMV9FTUNfREFUQV9CUkxTSEZUXzBfSU5ERVgJMwo+ICsjZGVmaW5lIEVN QzBfRU1DX0RBVEFfQlJMU0hGVF8xX0lOREVYCTQKPiArI2RlZmluZSBFTUMxX0VNQ19EQVRBX0JS TFNIRlRfMV9JTkRFWAk1Cj4gKwo+ICsjZGVmaW5lIFRSSU1fUkVHKGNoYW4sIHJhbmssIHJlZywg Ynl0ZSkJCQkJCVwKPiArCSgoKEVNQ19QTUFDUk9fT0JfRERMTF9MT05HX0RRX1JBTksgIyMgcmFu ayAjIyBfICMjIHJlZyAjIwlcCj4gKwkgICBfT0JfRERMTF9MT05HX0RRX1JBTksgIyMgcmFuayAj IyBfQllURSAjIyBieXRlICMjIF9NQVNLICYJXAo+ICsJICAgbmV4dF90aW1pbmctPnRyaW1fcmVn c1tFTUNfUE1BQ1JPX09CX0RETExfTE9OR19EUV9SQU5LICMjCVwKPiArCQkJCSByYW5rICMjIF8g IyMgcmVnICMjIF9JTkRFWF0pID4+CVwKPiArCSAgRU1DX1BNQUNST19PQl9ERExMX0xPTkdfRFFf UkFOSyAjIyByYW5rICMjIF8gIyMgcmVnICMjCVwKPiArCSAgX09CX0RETExfTE9OR19EUV9SQU5L ICMjIHJhbmsgIyMgX0JZVEUgIyMgYnl0ZSAjIyBfU0hJRlQpCVwKPiArCSArCQkJCQkJCQlcCj4g KwkgKCgoRU1DX0RBVEFfQlJMU0hGVF8gIyMgcmFuayAjIyBfUkFOSyAjIyByYW5rICMjIF9CWVRF ICMjCVwKPiArCSAgICBieXRlICMjIF9EQVRBX0JSTFNIRlRfTUFTSyAmCQkJCVwKPiArCSAgICBu ZXh0X3RpbWluZy0+dHJpbV9wZXJjaF9yZWdzW0VNQyAjIyBjaGFuICMjCQkJXAo+ICsJCQkgICAg ICBfRU1DX0RBVEFfQlJMU0hGVF8gIyMgcmFuayAjIyBfSU5ERVhdKSA+PglcCj4gKwkgICBFTUNf REFUQV9CUkxTSEZUXyAjIyByYW5rICMjIF9SQU5LICMjIHJhbmsgIyMgX0JZVEUgIyMJXAo+ICsJ ICAgYnl0ZSAjIyBfREFUQV9CUkxTSEZUX1NISUZUKSAqIDY0KSkKPiArCj4gKyNkZWZpbmUgQ0FM Q19URU1QKHJhbmssIHJlZywgYnl0ZTEsIGJ5dGUyLCBuKQkJCQlcCj4gKwkoKChuZXdbbl0gPDwg RU1DX1BNQUNST19PQl9ERExMX0xPTkdfRFFfUkFOSyAjIyByYW5rICMjIF8gIyMJXAo+ICsJICAg cmVnICMjIF9PQl9ERExMX0xPTkdfRFFfUkFOSyAjIyByYW5rICMjIF9CWVRFICMjIGJ5dGUxICMj IF9TSElGVCkgJiBcCj4gKwkgIEVNQ19QTUFDUk9fT0JfRERMTF9MT05HX0RRX1JBTksgIyMgcmFu ayAjIyBfICMjIHJlZyAjIwlcCj4gKwkgIF9PQl9ERExMX0xPTkdfRFFfUkFOSyAjIyByYW5rICMj IF9CWVRFICMjIGJ5dGUxICMjIF9NQVNLKQlcCj4gKwkgfAkJCQkJCQkJXAo+ICsJICgobmV3W24g KyAxXSA8PCBFTUNfUE1BQ1JPX09CX0RETExfTE9OR19EUV9SQU5LICMjIHJhbmsgIyMgXyAjI1wK PiArCSAgIHJlZyAjIyBfT0JfRERMTF9MT05HX0RRX1JBTksgIyMgcmFuayAjIyBfQllURSAjIyBi eXRlMiAjIyBfU0hJRlQpICYgXAo+ICsJICBFTUNfUE1BQ1JPX09CX0RETExfTE9OR19EUV9SQU5L ICMjIHJhbmsgIyMgXyAjIyByZWcgIyMJXAo+ICsJICBfT0JfRERMTF9MT05HX0RRX1JBTksgIyMg cmFuayAjIyBfQllURSAjIyBieXRlMiAjIyBfTUFTSykpCj4gKwo+ICBlbnVtIHsKPiArCVRFR1JB X0RSQU1fT1ZFUl9URU1QX05PTkUgPSAwLAo+ICsJVEVHUkFfRFJBTV9PVkVSX1RFTVBfUkVGUkVT SF9YMiwKPiArCVRFR1JBX0RSQU1fT1ZFUl9URU1QX1JFRlJFU0hfWDQsCj4gKwlURUdSQV9EUkFN X09WRVJfVEVNUF9USFJPVFRMRSwgLyogNHggUmVmcmVzaCArIGRlcmF0aW5nLiAqLwo+ICsJVEVH UkFfRFJBTV9PVkVSX1RFTVBfTUFYLAo+ICt9Owo+ICsKPiArZW51bSBURUdSQV9FTUNfU09VUkNF IHsKPiAgCVRFR1JBX0VNQ19TUkNfUExMTSwKPiAgCVRFR1JBX0VNQ19TUkNfUExMQywKPiAgCVRF R1JBX0VNQ19TUkNfUExMUCwKPiBAQCAtODgsMTcgKzE0Myw0OTkgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBzdXBwb3J0ZWRfc2VxdWVuY2Ugc3VwcG9ydGVkX3NlcXNbXSA9IHsKPiAgfTsKPiAgc3Rh dGljIGNvbnN0IHN0cnVjdCBzdXBwb3J0ZWRfc2VxdWVuY2UgKnNlcSA9IHN1cHBvcnRlZF9zZXFz Owo+ICBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGVtY19hY2Nlc3NfbG9jayk7Cj4gK3Vuc2lnbmVk IGxvbmcgZHJhbV9vdmVyX3RlbXBfc3RhdGUgPSBURUdSQV9EUkFNX09WRVJfVEVNUF9OT05FOwo+ ICsKPiArY29uc3Qgc3RydWN0IGVtY190YWJsZV9yZWdpc3Rlcl9vZmZzZXQgcmVnX29mZiA9IHsK PiArCS5idXJzdF9yZWdzX29mZiA9IHsKPiArCQlFTUNfUkMsCj4gKwkJRU1DX1JGQywKPiArCQlF TUNfUkZDUEIsCj4gKwkJRU1DX1JFRkNUUkwyLAo+ICsJCUVNQ19SRkNfU0xSLAo+ICsJCUVNQ19S QVMsCj4gKwkJRU1DX1JQLAo+ICsJCUVNQ19SMlcsCj4gKwkJRU1DX1cyUiwKPiArCQlFTUNfUjJQ LAo+ICsJCUVNQ19XMlAsCj4gKwkJRU1DX1IyUiwKPiArCQlFTUNfVFBQRCwKPiArCQlFTUNfQ0NE TVcsCj4gKwkJRU1DX1JEX1JDRCwKPiArCQlFTUNfV1JfUkNELAo+ICsJCUVNQ19SUkQsCj4gKwkJ RU1DX1JFWFQsCj4gKwkJRU1DX1dFWFQsCj4gKwkJRU1DX1dEVl9DSEssCj4gKwkJRU1DX1dEViwK PiArCQlFTUNfV1NWLAo+ICsJCUVNQ19XRVYsCj4gKwkJRU1DX1dEVl9NQVNLLAo+ICsJCUVNQ19X U19EVVJBVElPTiwKPiArCQlFTUNfV0VfRFVSQVRJT04sCj4gKwkJRU1DX1FVU0UsCj4gKwkJRU1D X1FVU0VfV0lEVEgsCj4gKwkJRU1DX0lCRExZLAo+ICsJCUVNQ19PQkRMWSwKPiArCQlFTUNfRUlO UFVULAo+ICsJCUVNQ19NUlc2LAo+ICsJCUVNQ19FSU5QVVRfRFVSQVRJT04sCj4gKwkJRU1DX1BV VEVSTV9FWFRSQSwKPiArCQlFTUNfUFVURVJNX1dJRFRILAo+ICsJCUVNQ19RUlNULAo+ICsJCUVN Q19RU0FGRSwKPiArCQlFTUNfUkRWLAo+ICsJCUVNQ19SRFZfTUFTSywKPiArCQlFTUNfUkRWX0VB UkxZLAo+ICsJCUVNQ19SRFZfRUFSTFlfTUFTSywKPiArCQlFTUNfUkVGUkVTSCwKPiArCQlFTUNf QlVSU1RfUkVGUkVTSF9OVU0sCj4gKwkJRU1DX1BSRV9SRUZSRVNIX1JFUV9DTlQsCj4gKwkJRU1D X1BERVgyV1IsCj4gKwkJRU1DX1BERVgyUkQsCj4gKwkJRU1DX1BDSEcyUERFTiwKPiArCQlFTUNf QUNUMlBERU4sCj4gKwkJRU1DX0FSMlBERU4sCj4gKwkJRU1DX1JXMlBERU4sCj4gKwkJRU1DX0NL RTJQREVOLAo+ICsJCUVNQ19QREVYMkNLRSwKPiArCQlFTUNfUERFWDJNUlIsCj4gKwkJRU1DX1RY U1IsCj4gKwkJRU1DX1RYU1JETEwsCj4gKwkJRU1DX1RDS0UsCj4gKwkJRU1DX1RDS0VTUiwKPiAr CQlFTUNfVFBELAo+ICsJCUVNQ19URkFXLAo+ICsJCUVNQ19UUlBBQiwKPiArCQlFTUNfVENMS1NU QUJMRSwKPiArCQlFTUNfVENMS1NUT1AsCj4gKwkJRU1DX01SVzcsCj4gKwkJRU1DX1RSRUZCVywK PiArCQlFTUNfT0RUX1dSSVRFLAo+ICsJCUVNQ19GQklPX0NGRzUsCj4gKwkJRU1DX0ZCSU9fQ0ZH NywKPiArCQlFTUNfQ0ZHX0RJR19ETEwsCj4gKwkJRU1DX0NGR19ESUdfRExMX1BFUklPRCwKPiAr CQlFTUNfUE1BQ1JPX0lCX1JYUlQsCj4gKwkJRU1DX0NGR19QSVBFXzEsCj4gKwkJRU1DX0NGR19Q SVBFXzIsCj4gKwkJRU1DX1BNQUNST19RVVNFX0RETExfUkFOSzBfNCwKPiArCQlFTUNfUE1BQ1JP X1FVU0VfRERMTF9SQU5LMF81LAo+ICsJCUVNQ19QTUFDUk9fUVVTRV9ERExMX1JBTksxXzQsCj4g KwkJRU1DX1BNQUNST19RVVNFX0RETExfUkFOSzFfNSwKPiArCQlFTUNfTVJXOCwKPiArCQlFTUNf UE1BQ1JPX09CX0RETExfTE9OR19EUV9SQU5LMV80LAo+ICsJCUVNQ19QTUFDUk9fT0JfRERMTF9M T05HX0RRX1JBTksxXzUsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX0xPTkdfRFFTX1JBTkswXzAs Cj4gKwkJRU1DX1BNQUNST19PQl9ERExMX0xPTkdfRFFTX1JBTkswXzEsCj4gKwkJRU1DX1BNQUNS T19PQl9ERExMX0xPTkdfRFFTX1JBTkswXzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX0xPTkdf RFFTX1JBTkswXzMsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX0xPTkdfRFFTX1JBTkswXzQsCj4g KwkJRU1DX1BNQUNST19PQl9ERExMX0xPTkdfRFFTX1JBTkswXzUsCj4gKwkJRU1DX1BNQUNST19P Ql9ERExMX0xPTkdfRFFTX1JBTksxXzAsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX0xPTkdfRFFT X1JBTksxXzEsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX0xPTkdfRFFTX1JBTksxXzIsCj4gKwkJ RU1DX1BNQUNST19PQl9ERExMX0xPTkdfRFFTX1JBTksxXzMsCj4gKwkJRU1DX1BNQUNST19PQl9E RExMX0xPTkdfRFFTX1JBTksxXzQsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX0xPTkdfRFFTX1JB TksxXzUsCj4gKwkJRU1DX1BNQUNST19ERExMX0xPTkdfQ01EXzAsCj4gKwkJRU1DX1BNQUNST19E RExMX0xPTkdfQ01EXzEsCj4gKwkJRU1DX1BNQUNST19ERExMX0xPTkdfQ01EXzIsCj4gKwkJRU1D X1BNQUNST19ERExMX0xPTkdfQ01EXzMsCj4gKwkJRU1DX1BNQUNST19ERExMX0xPTkdfQ01EXzQs Cj4gKwkJRU1DX1BNQUNST19ERExMX1NIT1JUX0NNRF8wLAo+ICsJCUVNQ19QTUFDUk9fRERMTF9T SE9SVF9DTURfMSwKPiArCQlFTUNfUE1BQ1JPX0RETExfU0hPUlRfQ01EXzIsCj4gKwkJRU1DX1BN QUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEUwXzMsCj4gKwkJRU1DX1BNQUNST19PQl9E RExMX1NIT1JUX0RRX1JBTkswX0JZVEUxXzMsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JU X0RRX1JBTkswX0JZVEUyXzMsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksw X0JZVEUzXzMsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEU0XzMs Cj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEU1XzMsCj4gKwkJRU1D X1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEU2XzMsCj4gKwkJRU1DX1BNQUNST19P Ql9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEU3XzMsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NI T1JUX0RRX1JBTkswX0NNRDBfMywKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfU0hPUlRfRFFfUkFO SzBfQ01EMV8zLAo+ICsJCUVNQ19QTUFDUk9fT0JfRERMTF9TSE9SVF9EUV9SQU5LMF9DTUQyXzMs Cj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0NNRDNfMywKPiArCQlFTUNf UE1BQ1JPX09CX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTBfMywKPiArCQlFTUNfUE1BQ1JPX09C X0RETExfU0hPUlRfRFFfUkFOSzFfQllURTFfMywKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfU0hP UlRfRFFfUkFOSzFfQllURTJfMywKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfU0hPUlRfRFFfUkFO SzFfQllURTNfMywKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTRf MywKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTVfMywKPiArCQlF TUNfUE1BQ1JPX09CX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTZfMywKPiArCQlFTUNfUE1BQ1JP X09CX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTdfMywKPiArCQlFTUNfUE1BQ1JPX09CX0RETExf U0hPUlRfRFFfUkFOSzFfQ01EMF8wLAo+ICsJCUVNQ19QTUFDUk9fT0JfRERMTF9TSE9SVF9EUV9S QU5LMV9DTUQwXzEsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0NNRDBf MiwKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfU0hPUlRfRFFfUkFOSzFfQ01EMF8zLAo+ICsJCUVN Q19QTUFDUk9fT0JfRERMTF9TSE9SVF9EUV9SQU5LMV9DTUQxXzAsCj4gKwkJRU1DX1BNQUNST19P Ql9ERExMX1NIT1JUX0RRX1JBTksxX0NNRDFfMSwKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfU0hP UlRfRFFfUkFOSzFfQ01EMV8yLAo+ICsJCUVNQ19QTUFDUk9fT0JfRERMTF9TSE9SVF9EUV9SQU5L MV9DTUQxXzMsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0NNRDJfMCwK PiArCQlFTUNfUE1BQ1JPX09CX0RETExfU0hPUlRfRFFfUkFOSzFfQ01EMl8xLAo+ICsJCUVNQ19Q TUFDUk9fT0JfRERMTF9TSE9SVF9EUV9SQU5LMV9DTUQyXzIsCj4gKwkJRU1DX1BNQUNST19PQl9E RExMX1NIT1JUX0RRX1JBTksxX0NNRDJfMywKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfU0hPUlRf RFFfUkFOSzFfQ01EM18wLAo+ICsJCUVNQ19QTUFDUk9fT0JfRERMTF9TSE9SVF9EUV9SQU5LMV9D TUQzXzEsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0NNRDNfMiwKPiAr CQlFTUNfUE1BQ1JPX09CX0RETExfU0hPUlRfRFFfUkFOSzFfQ01EM18zLAo+ICsJCUVNQ19UWERT UlZUVEdFTiwKPiArCQlFTUNfRkRQRF9DVFJMX0RRLAo+ICsJCUVNQ19GRFBEX0NUUkxfQ01ELAo+ ICsJCUVNQ19GQklPX1NQQVJFLAo+ICsJCUVNQ19aQ0FMX0lOVEVSVkFMLAo+ICsJCUVNQ19aQ0FM X1dBSVRfQ05ULAo+ICsJCUVNQ19NUlNfV0FJVF9DTlQsCj4gKwkJRU1DX01SU19XQUlUX0NOVDIs Cj4gKwkJRU1DX0FVVE9fQ0FMX0NIQU5ORUwsCj4gKwkJRU1DX0RMTF9DRkdfMCwKPiArCQlFTUNf RExMX0NGR18xLAo+ICsJCUVNQ19QTUFDUk9fQVVUT0NBTF9DRkdfQ09NTU9OLAo+ICsJCUVNQ19Q TUFDUk9fWkNUUkwsCj4gKwkJRU1DX0NGRywKPiArCQlFTUNfQ0ZHX1BJUEUsCj4gKwkJRU1DX0RZ Tl9TRUxGX1JFRl9DT05UUk9MLAo+ICsJCUVNQ19RUE9QLAo+ICsJCUVNQ19EUVNfQlJMU0hGVF8w LAo+ICsJCUVNQ19EUVNfQlJMU0hGVF8xLAo+ICsJCUVNQ19DTURfQlJMU0hGVF8yLAo+ICsJCUVN Q19DTURfQlJMU0hGVF8zLAo+ICsJCUVNQ19QTUFDUk9fUEFEX0NGR19DVFJMLAo+ICsJCUVNQ19Q TUFDUk9fREFUQV9QQURfUlhfQ1RSTCwKPiArCQlFTUNfUE1BQ1JPX0NNRF9QQURfUlhfQ1RSTCwK PiArCQlFTUNfUE1BQ1JPX0RBVEFfUlhfVEVSTV9NT0RFLAo+ICsJCUVNQ19QTUFDUk9fQ01EX1JY X1RFUk1fTU9ERSwKPiArCQlFTUNfUE1BQ1JPX0NNRF9QQURfVFhfQ1RSTCwKPiArCQlFTUNfUE1B Q1JPX0RBVEFfUEFEX1RYX0NUUkwsCj4gKwkJRU1DX1BNQUNST19DT01NT05fUEFEX1RYX0NUUkws Cj4gKwkJRU1DX1BNQUNST19WVFRHRU5fQ1RSTF8wLAo+ICsJCUVNQ19QTUFDUk9fVlRUR0VOX0NU UkxfMSwKPiArCQlFTUNfUE1BQ1JPX1ZUVEdFTl9DVFJMXzIsCj4gKwkJRU1DX1BNQUNST19CUklD S19DVFJMX1JGVTEsCj4gKwkJRU1DX1BNQUNST19DTURfQlJJQ0tfQ1RSTF9GRFBELAo+ICsJCUVN Q19QTUFDUk9fQlJJQ0tfQ1RSTF9SRlUyLAo+ICsJCUVNQ19QTUFDUk9fREFUQV9CUklDS19DVFJM X0ZEUEQsCj4gKwkJRU1DX1BNQUNST19CR19CSUFTX0NUUkxfMCwKPiArCQlFTUNfQ0ZHXzMsCj4g KwkJRU1DX1BNQUNST19UWF9QV1JEXzAsCj4gKwkJRU1DX1BNQUNST19UWF9QV1JEXzEsCj4gKwkJ RU1DX1BNQUNST19UWF9QV1JEXzIsCj4gKwkJRU1DX1BNQUNST19UWF9QV1JEXzMsCj4gKwkJRU1D X1BNQUNST19UWF9QV1JEXzQsCj4gKwkJRU1DX1BNQUNST19UWF9QV1JEXzUsCj4gKwkJRU1DX0NP TkZJR19TQU1QTEVfREVMQVksCj4gKwkJRU1DX1BNQUNST19UWF9TRUxfQ0xLX1NSQ18wLAo+ICsJ CUVNQ19QTUFDUk9fVFhfU0VMX0NMS19TUkNfMSwKPiArCQlFTUNfUE1BQ1JPX1RYX1NFTF9DTEtf U1JDXzIsCj4gKwkJRU1DX1BNQUNST19UWF9TRUxfQ0xLX1NSQ18zLAo+ICsJCUVNQ19QTUFDUk9f VFhfU0VMX0NMS19TUkNfNCwKPiArCQlFTUNfUE1BQ1JPX1RYX1NFTF9DTEtfU1JDXzUsCj4gKwkJ RU1DX1BNQUNST19ERExMX0JZUEFTUywKPiArCQlFTUNfUE1BQ1JPX0RETExfUFdSRF8wLAo+ICsJ CUVNQ19QTUFDUk9fRERMTF9QV1JEXzEsCj4gKwkJRU1DX1BNQUNST19ERExMX1BXUkRfMiwKPiAr CQlFTUNfUE1BQ1JPX0NNRF9DVFJMXzAsCj4gKwkJRU1DX1BNQUNST19DTURfQ1RSTF8xLAo+ICsJ CUVNQ19QTUFDUk9fQ01EX0NUUkxfMiwKPiArCQlFTUNfVFJfVElNSU5HXzAsCj4gKwkJRU1DX1RS X0RWRlMsCj4gKwkJRU1DX1RSX0NUUkxfMSwKPiArCQlFTUNfVFJfUkRWLAo+ICsJCUVNQ19UUl9R UE9QLAo+ICsJCUVNQ19UUl9SRFZfTUFTSywKPiArCQlFTUNfTVJXMTQsCj4gKwkJRU1DX1RSX1FT QUZFLAo+ICsJCUVNQ19UUl9RUlNULAo+ICsJCUVNQ19UUkFJTklOR19DVFJMLAo+ICsJCUVNQ19U UkFJTklOR19TRVRUTEUsCj4gKwkJRU1DX1RSQUlOSU5HX1ZSRUZfU0VUVExFLAo+ICsJCUVNQ19U UkFJTklOR19DQV9GSU5FX0NUUkwsCj4gKwkJRU1DX1RSQUlOSU5HX0NBX0NUUkxfTUlTQywKPiAr CQlFTUNfVFJBSU5JTkdfQ0FfQ1RSTF9NSVNDMSwKPiArCQlFTUNfVFJBSU5JTkdfQ0FfVlJFRl9D VFJMLAo+ICsJCUVNQ19UUkFJTklOR19RVVNFX0NPUlNfQ1RSTCwKPiArCQlFTUNfVFJBSU5JTkdf UVVTRV9GSU5FX0NUUkwsCj4gKwkJRU1DX1RSQUlOSU5HX1FVU0VfQ1RSTF9NSVNDLAo+ICsJCUVN Q19UUkFJTklOR19RVVNFX1ZSRUZfQ1RSTCwKPiArCQlFTUNfVFJBSU5JTkdfUkVBRF9GSU5FX0NU UkwsCj4gKwkJRU1DX1RSQUlOSU5HX1JFQURfQ1RSTF9NSVNDLAo+ICsJCUVNQ19UUkFJTklOR19S RUFEX1ZSRUZfQ1RSTCwKPiArCQlFTUNfVFJBSU5JTkdfV1JJVEVfRklORV9DVFJMLAo+ICsJCUVN Q19UUkFJTklOR19XUklURV9DVFJMX01JU0MsCj4gKwkJRU1DX1RSQUlOSU5HX1dSSVRFX1ZSRUZf Q1RSTCwKPiArCQlFTUNfVFJBSU5JTkdfTVBDLAo+ICsJCUVNQ19NUlcxNSwKPiArCX0sCj4gKwku dHJpbV9yZWdzX29mZiA9IHsKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfTE9OR19EUVNfUkFOSzBf MCwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfTE9OR19EUVNfUkFOSzBfMSwKPiArCQlFTUNfUE1B Q1JPX0lCX0RETExfTE9OR19EUVNfUkFOSzBfMiwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfTE9O R19EUVNfUkFOSzBfMywKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfTE9OR19EUVNfUkFOSzFfMCwK PiArCQlFTUNfUE1BQ1JPX0lCX0RETExfTE9OR19EUVNfUkFOSzFfMSwKPiArCQlFTUNfUE1BQ1JP X0lCX0RETExfTE9OR19EUVNfUkFOSzFfMiwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfTE9OR19E UVNfUkFOSzFfMywKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTBf MCwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTBfMSwKPiArCQlF TUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTBfMiwKPiArCQlFTUNfUE1BQ1JP X0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTFfMCwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExf U0hPUlRfRFFfUkFOSzBfQllURTFfMSwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFf UkFOSzBfQllURTFfMiwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllU RTJfMCwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTJfMSwKPiAr CQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTJfMiwKPiArCQlFTUNfUE1B Q1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTNfMCwKPiArCQlFTUNfUE1BQ1JPX0lCX0RE TExfU0hPUlRfRFFfUkFOSzBfQllURTNfMSwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRf RFFfUkFOSzBfQllURTNfMiwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBf QllURTRfMCwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTRfMSwK PiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTRfMiwKPiArCQlFTUNf UE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTVfMCwKPiArCQlFTUNfUE1BQ1JPX0lC X0RETExfU0hPUlRfRFFfUkFOSzBfQllURTVfMSwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hP UlRfRFFfUkFOSzBfQllURTVfMiwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFO SzBfQllURTZfMCwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTZf MSwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTZfMiwKPiArCQlF TUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTdfMCwKPiArCQlFTUNfUE1BQ1JP X0lCX0RETExfU0hPUlRfRFFfUkFOSzBfQllURTdfMSwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExf U0hPUlRfRFFfUkFOSzBfQllURTdfMiwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFf UkFOSzFfQllURTBfMCwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllU RTBfMSwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTBfMiwKPiAr CQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTFfMCwKPiArCQlFTUNfUE1B Q1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTFfMSwKPiArCQlFTUNfUE1BQ1JPX0lCX0RE TExfU0hPUlRfRFFfUkFOSzFfQllURTFfMiwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRf RFFfUkFOSzFfQllURTJfMCwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFf QllURTJfMSwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTJfMiwK PiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTNfMCwKPiArCQlFTUNf UE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTNfMSwKPiArCQlFTUNfUE1BQ1JPX0lC X0RETExfU0hPUlRfRFFfUkFOSzFfQllURTNfMiwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hP UlRfRFFfUkFOSzFfQllURTRfMCwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFO SzFfQllURTRfMSwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTRf MiwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTVfMCwKPiArCQlF TUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTVfMSwKPiArCQlFTUNfUE1BQ1JP X0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTVfMiwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExf U0hPUlRfRFFfUkFOSzFfQllURTZfMCwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFf UkFOSzFfQllURTZfMSwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllU RTZfMiwKPiArCQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTdfMCwKPiAr CQlFTUNfUE1BQ1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTdfMSwKPiArCQlFTUNfUE1B Q1JPX0lCX0RETExfU0hPUlRfRFFfUkFOSzFfQllURTdfMiwKPiArCQlFTUNfUE1BQ1JPX0lCX1ZS RUZfRFFTXzAsCj4gKwkJRU1DX1BNQUNST19JQl9WUkVGX0RRU18xLAo+ICsJCUVNQ19QTUFDUk9f SUJfVlJFRl9EUV8wLAo+ICsJCUVNQ19QTUFDUk9fSUJfVlJFRl9EUV8xLAo+ICsJCUVNQ19QTUFD Uk9fT0JfRERMTF9MT05HX0RRX1JBTkswXzAsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX0xPTkdf RFFfUkFOSzBfMSwKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfTE9OR19EUV9SQU5LMF8yLAo+ICsJ CUVNQ19QTUFDUk9fT0JfRERMTF9MT05HX0RRX1JBTkswXzMsCj4gKwkJRU1DX1BNQUNST19PQl9E RExMX0xPTkdfRFFfUkFOSzBfNCwKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfTE9OR19EUV9SQU5L MF81LAo+ICsJCUVNQ19QTUFDUk9fT0JfRERMTF9MT05HX0RRX1JBTksxXzAsCj4gKwkJRU1DX1BN QUNST19PQl9ERExMX0xPTkdfRFFfUkFOSzFfMSwKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfTE9O R19EUV9SQU5LMV8yLAo+ICsJCUVNQ19QTUFDUk9fT0JfRERMTF9MT05HX0RRX1JBTksxXzMsCj4g KwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEUwXzAsCj4gKwkJRU1DX1BN QUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEUwXzEsCj4gKwkJRU1DX1BNQUNST19PQl9E RExMX1NIT1JUX0RRX1JBTkswX0JZVEUwXzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JU X0RRX1JBTkswX0JZVEUxXzAsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksw X0JZVEUxXzEsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEUxXzIs Cj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEUyXzAsCj4gKwkJRU1D X1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEUyXzEsCj4gKwkJRU1DX1BNQUNST19P Ql9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEUyXzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NI T1JUX0RRX1JBTkswX0JZVEUzXzAsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JB TkswX0JZVEUzXzEsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEUz XzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEU0XzAsCj4gKwkJ RU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEU0XzEsCj4gKwkJRU1DX1BNQUNS T19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEU0XzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExM X1NIT1JUX0RRX1JBTkswX0JZVEU1XzAsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RR X1JBTkswX0JZVEU1XzEsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZ VEU1XzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEU2XzAsCj4g KwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEU2XzEsCj4gKwkJRU1DX1BN QUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0JZVEU2XzIsCj4gKwkJRU1DX1BNQUNST19PQl9E RExMX1NIT1JUX0RRX1JBTkswX0JZVEU3XzAsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JU X0RRX1JBTkswX0JZVEU3XzEsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksw X0JZVEU3XzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0NNRDBfMCwK PiArCQlFTUNfUE1BQ1JPX09CX0RETExfU0hPUlRfRFFfUkFOSzBfQ01EMF8xLAo+ICsJCUVNQ19Q TUFDUk9fT0JfRERMTF9TSE9SVF9EUV9SQU5LMF9DTUQwXzIsCj4gKwkJRU1DX1BNQUNST19PQl9E RExMX1NIT1JUX0RRX1JBTkswX0NNRDFfMCwKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfU0hPUlRf RFFfUkFOSzBfQ01EMV8xLAo+ICsJCUVNQ19QTUFDUk9fT0JfRERMTF9TSE9SVF9EUV9SQU5LMF9D TUQxXzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTkswX0NNRDJfMCwKPiAr CQlFTUNfUE1BQ1JPX09CX0RETExfU0hPUlRfRFFfUkFOSzBfQ01EMl8xLAo+ICsJCUVNQ19QTUFD Uk9fT0JfRERMTF9TSE9SVF9EUV9SQU5LMF9DTUQyXzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExM X1NIT1JUX0RRX1JBTkswX0NNRDNfMCwKPiArCQlFTUNfUE1BQ1JPX09CX0RETExfU0hPUlRfRFFf UkFOSzBfQ01EM18xLAo+ICsJCUVNQ19QTUFDUk9fT0JfRERMTF9TSE9SVF9EUV9SQU5LMF9DTUQz XzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEUwXzAsCj4gKwkJ RU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEUwXzEsCj4gKwkJRU1DX1BNQUNS T19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEUwXzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExM X1NIT1JUX0RRX1JBTksxX0JZVEUxXzAsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RR X1JBTksxX0JZVEUxXzEsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZ VEUxXzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEUyXzAsCj4g KwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEUyXzEsCj4gKwkJRU1DX1BN QUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEUyXzIsCj4gKwkJRU1DX1BNQUNST19PQl9E RExMX1NIT1JUX0RRX1JBTksxX0JZVEUzXzAsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JU X0RRX1JBTksxX0JZVEUzXzEsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksx X0JZVEUzXzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEU0XzAs Cj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEU0XzEsCj4gKwkJRU1D X1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEU0XzIsCj4gKwkJRU1DX1BNQUNST19P Ql9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEU1XzAsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NI T1JUX0RRX1JBTksxX0JZVEU1XzEsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JB TksxX0JZVEU1XzIsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEU2 XzAsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEU2XzEsCj4gKwkJ RU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEU2XzIsCj4gKwkJRU1DX1BNQUNS T19PQl9ERExMX1NIT1JUX0RRX1JBTksxX0JZVEU3XzAsCj4gKwkJRU1DX1BNQUNST19PQl9ERExM X1NIT1JUX0RRX1JBTksxX0JZVEU3XzEsCj4gKwkJRU1DX1BNQUNST19PQl9ERExMX1NIT1JUX0RR X1JBTksxX0JZVEU3XzIsCj4gKwkJRU1DX1BNQUNST19RVVNFX0RETExfUkFOSzBfMCwKPiArCQlF TUNfUE1BQ1JPX1FVU0VfRERMTF9SQU5LMF8xLAo+ICsJCUVNQ19QTUFDUk9fUVVTRV9ERExMX1JB TkswXzIsCj4gKwkJRU1DX1BNQUNST19RVVNFX0RETExfUkFOSzBfMywKPiArCQlFTUNfUE1BQ1JP X1FVU0VfRERMTF9SQU5LMV8wLAo+ICsJCUVNQ19QTUFDUk9fUVVTRV9ERExMX1JBTksxXzEsCj4g KwkJRU1DX1BNQUNST19RVVNFX0RETExfUkFOSzFfMiwKPiArCQlFTUNfUE1BQ1JPX1FVU0VfRERM TF9SQU5LMV8zCj4gKwl9LAo+ICsJLmJ1cnN0X21jX3JlZ3Nfb2ZmID0gewo+ICsJCU1DX0VNRU1f QVJCX0NGRywKPiArCQlNQ19FTUVNX0FSQl9PVVRTVEFORElOR19SRVEsCj4gKwkJTUNfRU1FTV9B UkJfUkVGUEJfSFBfQ1RSTCwKPiArCQlNQ19FTUVNX0FSQl9SRUZQQl9CQU5LX0NUUkwsCj4gKwkJ TUNfRU1FTV9BUkJfVElNSU5HX1JDRCwKPiArCQlNQ19FTUVNX0FSQl9USU1JTkdfUlAsCj4gKwkJ TUNfRU1FTV9BUkJfVElNSU5HX1JDLAo+ICsJCU1DX0VNRU1fQVJCX1RJTUlOR19SQVMsCj4gKwkJ TUNfRU1FTV9BUkJfVElNSU5HX0ZBVywKPiArCQlNQ19FTUVNX0FSQl9USU1JTkdfUlJELAo+ICsJ CU1DX0VNRU1fQVJCX1RJTUlOR19SQVAyUFJFLAo+ICsJCU1DX0VNRU1fQVJCX1RJTUlOR19XQVAy UFJFLAo+ICsJCU1DX0VNRU1fQVJCX1RJTUlOR19SMlIsCj4gKwkJTUNfRU1FTV9BUkJfVElNSU5H X1cyVywKPiArCQlNQ19FTUVNX0FSQl9USU1JTkdfUjJXLAo+ICsJCU1DX0VNRU1fQVJCX1RJTUlO R19DQ0RNVywKPiArCQlNQ19FTUVNX0FSQl9USU1JTkdfVzJSLAo+ICsJCU1DX0VNRU1fQVJCX1RJ TUlOR19SRkNQQiwKPiArCQlNQ19FTUVNX0FSQl9EQV9UVVJOUywKPiArCQlNQ19FTUVNX0FSQl9E QV9DT1ZFUlMsCj4gKwkJTUNfRU1FTV9BUkJfTUlTQzAsCj4gKwkJTUNfRU1FTV9BUkJfTUlTQzEs Cj4gKwkJTUNfRU1FTV9BUkJfTUlTQzIsCj4gKwkJTUNfRU1FTV9BUkJfUklORzFfVEhST1RUTEUs Cj4gKwkJTUNfRU1FTV9BUkJfREhZU1RfQ1RSTCwKPiArCQlNQ19FTUVNX0FSQl9ESFlTVF9USU1F T1VUX1VUSUxfMCwKPiArCQlNQ19FTUVNX0FSQl9ESFlTVF9USU1FT1VUX1VUSUxfMSwKPiArCQlN Q19FTUVNX0FSQl9ESFlTVF9USU1FT1VUX1VUSUxfMiwKPiArCQlNQ19FTUVNX0FSQl9ESFlTVF9U SU1FT1VUX1VUSUxfMywKPiArCQlNQ19FTUVNX0FSQl9ESFlTVF9USU1FT1VUX1VUSUxfNCwKPiAr CQlNQ19FTUVNX0FSQl9ESFlTVF9USU1FT1VUX1VUSUxfNSwKPiArCQlNQ19FTUVNX0FSQl9ESFlT VF9USU1FT1VUX1VUSUxfNiwKPiArCQlNQ19FTUVNX0FSQl9ESFlTVF9USU1FT1VUX1VUSUxfNywK PiArCX0sCj4gKwkubGFfc2NhbGVfcmVnc19vZmYgPSB7Cj4gKwkJTUNfTUxMX01QQ09SRVJfUFRT QV9SQVRFLAo+ICsJCU1DX0ZUT1BfUFRTQV9SQVRFLAo+ICsJCU1DX1BUU0FfR1JBTlRfREVDUkVN RU5ULAo+ICsJCU1DX0xBVEVOQ1lfQUxMT1dBTkNFX1hVU0JfMCwKPiArCQlNQ19MQVRFTkNZX0FM TE9XQU5DRV9YVVNCXzEsCj4gKwkJTUNfTEFURU5DWV9BTExPV0FOQ0VfVFNFQ18wLAo+ICsJCU1D X0xBVEVOQ1lfQUxMT1dBTkNFX1NETU1DQV8wLAo+ICsJCU1DX0xBVEVOQ1lfQUxMT1dBTkNFX1NE TU1DQUFfMCwKPiArCQlNQ19MQVRFTkNZX0FMTE9XQU5DRV9TRE1NQ18wLAo+ICsJCU1DX0xBVEVO Q1lfQUxMT1dBTkNFX1NETU1DQUJfMCwKPiArCQlNQ19MQVRFTkNZX0FMTE9XQU5DRV9QUENTXzAs Cj4gKwkJTUNfTEFURU5DWV9BTExPV0FOQ0VfUFBDU18xLAo+ICsJCU1DX0xBVEVOQ1lfQUxMT1dB TkNFX01QQ09SRV8wLAo+ICsJCU1DX0xBVEVOQ1lfQUxMT1dBTkNFX0hDXzAsCj4gKwkJTUNfTEFU RU5DWV9BTExPV0FOQ0VfSENfMSwKPiArCQlNQ19MQVRFTkNZX0FMTE9XQU5DRV9BVlBDXzAsCj4g KwkJTUNfTEFURU5DWV9BTExPV0FOQ0VfR1BVXzAsCj4gKwkJTUNfTEFURU5DWV9BTExPV0FOQ0Vf R1BVMl8wLAo+ICsJCU1DX0xBVEVOQ1lfQUxMT1dBTkNFX05WRU5DXzAsCj4gKwkJTUNfTEFURU5D WV9BTExPV0FOQ0VfTlZERUNfMCwKPiArCQlNQ19MQVRFTkNZX0FMTE9XQU5DRV9WSUNfMCwKPiAr CQlNQ19MQVRFTkNZX0FMTE9XQU5DRV9WSTJfMCwKPiArCQlNQ19MQVRFTkNZX0FMTE9XQU5DRV9J U1AyXzAsCj4gKwkJTUNfTEFURU5DWV9BTExPV0FOQ0VfSVNQMl8xLAo+ICsJfSwKPiArCS5idXJz dF9yZWdzX3Blcl9jaF9vZmYgPSB7Cj4gKwkJeyAuYmFuayA9IFJFR19FTUMwLCAub2Zmc2V0ID0g RU1DX01SVzEwLCB9LAo+ICsJCXsgLmJhbmsgPSBSRUdfRU1DMSwgLm9mZnNldCA9IEVNQ19NUlcx MCwgfSwKPiArCQl7IC5iYW5rID0gUkVHX0VNQzAsIC5vZmZzZXQgPSBFTUNfTVJXMTEsIH0sCj4g KwkJeyAuYmFuayA9IFJFR19FTUMxLCAub2Zmc2V0ID0gRU1DX01SVzExLCB9LAo+ICsJCXsgLmJh bmsgPSBSRUdfRU1DMCwgLm9mZnNldCA9IEVNQ19NUlcxMiwgfSwKPiArCQl7IC5iYW5rID0gUkVH X0VNQzEsIC5vZmZzZXQgPSBFTUNfTVJXMTIsIH0sCj4gKwkJeyAuYmFuayA9IFJFR19FTUMwLCAu b2Zmc2V0ID0gRU1DX01SVzEzLCB9LAo+ICsJCXsgLmJhbmsgPSBSRUdfRU1DMSwgLm9mZnNldCA9 IEVNQ19NUlcxMywgfSwKPiArCX0sCj4gKwkudHJpbV9yZWdzX3Blcl9jaF9vZmYgPSB7Cj4gKwkJ eyAuYmFuayA9IFJFR19FTUMwLCAub2Zmc2V0ID0gRU1DX0NNRF9CUkxTSEZUXzAsIH0sCj4gKwkJ eyAuYmFuayA9IFJFR19FTUMxLCAub2Zmc2V0ID0gRU1DX0NNRF9CUkxTSEZUXzEsIH0sCj4gKwkJ eyAuYmFuayA9IFJFR19FTUMwLCAub2Zmc2V0ID0gRU1DX0RBVEFfQlJMU0hGVF8wLCB9LAo+ICsJ CXsgLmJhbmsgPSBSRUdfRU1DMSwgLm9mZnNldCA9IEVNQ19EQVRBX0JSTFNIRlRfMCwgfSwKPiAr CQl7IC5iYW5rID0gUkVHX0VNQzAsIC5vZmZzZXQgPSBFTUNfREFUQV9CUkxTSEZUXzEsIH0sCj4g KwkJeyAuYmFuayA9IFJFR19FTUMxLCAub2Zmc2V0ID0gRU1DX0RBVEFfQlJMU0hGVF8xLCB9LAo+ ICsJCXsgLmJhbmsgPSBSRUdfRU1DMCwgLm9mZnNldCA9IEVNQ19RVVNFX0JSTFNIRlRfMCwgfSwK PiArCQl7IC5iYW5rID0gUkVHX0VNQzEsIC5vZmZzZXQgPSBFTUNfUVVTRV9CUkxTSEZUXzEsIH0s Cj4gKwkJeyAuYmFuayA9IFJFR19FTUMwLCAub2Zmc2V0ID0gRU1DX1FVU0VfQlJMU0hGVF8yLCB9 LAo+ICsJCXsgLmJhbmsgPSBSRUdfRU1DMSwgLm9mZnNldCA9IEVNQ19RVVNFX0JSTFNIRlRfMywg fSwKPiArCX0sCj4gKwkudnJlZl9yZWdzX3Blcl9jaF9vZmYgPSB7Cj4gKwkJeyAuYmFuayA9IFJF R19FTUMwLAo+ICsJCSAgLm9mZnNldCA9IEVNQ19UUkFJTklOR19PUFRfRFFTX0lCX1ZSRUZfUkFO SzAsIH0sCj4gKwkJeyAuYmFuayA9IFJFR19FTUMxLAo+ICsJCSAgLm9mZnNldCA9IEVNQ19UUkFJ TklOR19PUFRfRFFTX0lCX1ZSRUZfUkFOSzAsIH0sCj4gKwkJeyAuYmFuayA9IFJFR19FTUMwLAo+ ICsJCSAgLm9mZnNldCA9IEVNQ19UUkFJTklOR19PUFRfRFFTX0lCX1ZSRUZfUkFOSzEsIH0sCj4g KwkJeyAuYmFuayA9IFJFR19FTUMxLAo+ICsJCSAgLm9mZnNldCA9IEVNQ19UUkFJTklOR19PUFRf RFFTX0lCX1ZSRUZfUkFOSzEsIH0sCj4gKwl9LAo+ICt9Owo+ICAKPiAgc3RhdGljIGlubGluZSBz dHJ1Y3QgdGVncmFfZW1jICpjbGtfaHdfdG9fZW1jKHN0cnVjdCBjbGtfaHcgKmh3KQo+ICB7Cj4g IAlyZXR1cm4gY29udGFpbmVyX29mKGh3LCBzdHJ1Y3QgdGVncmFfZW1jLCBodyk7Cj4gIH0KPiAg Cj4gK3ZvaWQgZW1jX3dyaXRlbChzdHJ1Y3QgdGVncmFfZW1jICplbWMsIHUzMiB2YWwsIHVuc2ln bmVkIGxvbmcgb2Zmc2V0KQo+ICt7Cj4gKwl3cml0ZWxfcmVsYXhlZCh2YWwsIGVtYy0+ZW1jX2Jh c2VbUkVHX0VNQ10gKyBvZmZzZXQpOwo+ICt9Cj4gKwo+ICB1MzIgZW1jX3JlYWRsKHN0cnVjdCB0 ZWdyYV9lbWMgKmVtYywgdW5zaWduZWQgbG9uZyBvZmZzZXQpCj4gIHsKPiAgCXJldHVybiByZWFk bF9yZWxheGVkKGVtYy0+ZW1jX2Jhc2VbUkVHX0VNQ10gKyBvZmZzZXQpOwo+ICB9Cj4gIAo+ICt1 MzIgZW1jMV9yZWFkbChzdHJ1Y3QgdGVncmFfZW1jICplbWMsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0 KQo+ICt7Cj4gKwlyZXR1cm4gcmVhZGxfcmVsYXhlZChlbWMtPmVtY19iYXNlW1JFR19FTUMxXSAr IG9mZnNldCk7Cj4gK30KPiArCj4gK3ZvaWQgZW1jX3dyaXRlbF9wZXJfY2goc3RydWN0IHRlZ3Jh X2VtYyAqZW1jLCB1MzIgdmFsLCBpbnQgdHlwZSwKPiArCQkgICAgICAgdW5zaWduZWQgbG9uZyBv ZmZzZXQpCj4gK3sKPiArCXN3aXRjaCAodHlwZSkgewo+ICsJY2FzZSBSRUdfRU1DOgo+ICsJY2Fz ZSBSRUdfRU1DMDoKPiArCQlyZXR1cm4gd3JpdGVsX3JlbGF4ZWQodmFsLCBlbWMtPmVtY19iYXNl W1JFR19FTUNdICsgb2Zmc2V0KTsKPiArCWNhc2UgUkVHX0VNQzE6Cj4gKwkJcmV0dXJuIHdyaXRl bF9yZWxheGVkKHZhbCwgZW1jLT5lbWNfYmFzZVtSRUdfRU1DMV0gKyBvZmZzZXQpOwo+ICsJfQo+ ICt9Cj4gKwo+ICB1MzIgZW1jX3JlYWRsX3Blcl9jaChzdHJ1Y3QgdGVncmFfZW1jICplbWMsIGlu dCB0eXBlLAo+ICAJCQkgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQpCj4gIHsKPiBAQCAtMTE3LDYg KzY1NCwxNCBAQCB1MzIgZW1jX3JlYWRsX3Blcl9jaChzdHJ1Y3QgdGVncmFfZW1jICplbWMsIGlu dCB0eXBlLAo+ICAJcmV0dXJuIHZhbDsKPiAgfQo+ICAKPiArdm9pZCBjY2ZpZm9fd3JpdGVsKHN0 cnVjdCB0ZWdyYV9lbWMgKmVtYywgdTMyIHZhbCwgdW5zaWduZWQgbG9uZyBhZGRyLAo+ICsJCSAg IHUzMiBkZWxheSkKPiArewo+ICsJd3JpdGVsX3JlbGF4ZWQodmFsLCBlbWMtPmVtY19iYXNlW1JF R19FTUNdICsgRU1DX0NDRklGT19EQVRBKTsKPiArCXdyaXRlbF9yZWxheGVkKChhZGRyICYgMHhm ZmZmKSB8ICgoZGVsYXkgJiAweDdmZmYpIDw8IDE2KSB8ICgxIDw8IDMxKSwKPiArCQkgICAgICAg ZW1jLT5lbWNfYmFzZVtSRUdfRU1DXSArIEVNQ19DQ0ZJRk9fQUREUik7Cj4gK30KPiArCj4gIHN0 YXRpYyBpbmxpbmUgdTMyIGVtY19zcmNfdmFsKHUzMiB2YWwpCj4gIHsKPiAgCXJldHVybiAodmFs ICYgRU1DX0NMS19FTUNfMlhfQ0xLX1NSQ19NQVNLKSA+Pgo+IEBAIC0xODEsOSArNzI2LDgzMyBA QCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZW1jX2dldF9zcmNfY2xrX3JhdGUodm9pZCkK PiAgCXJhdGUgKz0gZGl2IC0gMTsKPiAgCWRvX2RpdihyYXRlLCBkaXYpOwo+ICAKPiArCj4gIAly ZXR1cm4gcmF0ZTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgdGVncmEyMTBfY2hhbmdlX2RsbF9z cmMoc3RydWN0IHRlZ3JhX2VtYyAqZW1jLAo+ICsJCQkJICAgIHUzMiBjbGtzcmMpCj4gK3sKPiAr Cj4gKwl1MzIgb3V0X2VuYl94Owo+ICsJdTMyIGRsbF9zZXR0aW5nID0gZW1jLT5uZXh0X3RpbWlu Zy0+ZGxsX2Nsa19zcmM7Cj4gKwl1MzIgZW1jX2Nsa19zcmM7Cj4gKwl1MzIgZW1jX2Nsa19kaXY7 Cj4gKwo+ICsJb3V0X2VuYl94ID0gMDsKPiArCWVtY19jbGtfc3JjID0gKGNsa3NyYyAmIEVNQ19D TEtfRU1DXzJYX0NMS19TUkNfTUFTSykgPj4KPiArCQkgICAgICAgRU1DX0NMS19FTUNfMlhfQ0xL X1NSQ19TSElGVDsKPiArCWVtY19jbGtfZGl2ID0gKGNsa3NyYyAmIEVNQ19DTEtfRU1DXzJYX0NM S19ESVZJU09SX01BU0spID4+Cj4gKwkJICAgICAgIEVNQ19DTEtfRU1DXzJYX0NMS19ESVZJU09S X1NISUZUOwo+ICsKPiArCWRsbF9zZXR0aW5nICY9IH4oRExMX0NMS19FTUNfRExMX0NMS19TUkNf TUFTSyB8Cj4gKwkJCSBETExfQ0xLX0VNQ19ETExfQ0xLX0RJVklTT1JfTUFTSyk7Cj4gKwlkbGxf c2V0dGluZyB8PSBlbWNfY2xrX3NyYyA8PCBETExfQ0xLX0VNQ19ETExfQ0xLX1NSQ19TSElGVDsK PiArCWRsbF9zZXR0aW5nIHw9IGVtY19jbGtfZGl2IDw8IERMTF9DTEtfRU1DX0RMTF9DTEtfRElW SVNPUl9TSElGVDsKPiArCj4gKwlkbGxfc2V0dGluZyAmPSB+RExMX0NMS19FTUNfRExMX0RETExf Q0xLX1NFTF9NQVNLOwo+ICsJaWYgKGVtY19jbGtfc3JjID09IEVNQ19DTEtfU09VUkNFX1BMTE1C X0xKKQo+ICsJCWRsbF9zZXR0aW5nIHw9IChQTExNX1ZDT0IgPDwKPiArCQkJCURMTF9DTEtfRU1D X0RMTF9ERExMX0NMS19TRUxfU0hJRlQpOwo+ICsJZWxzZSBpZiAoZW1jX2Nsa19zcmMgPT0gRU1D X0NMS19TT1VSQ0VfUExMTV9MSikKPiArCQlkbGxfc2V0dGluZyB8PSAoUExMTV9WQ09BIDw8Cj4g KwkJCQlETExfQ0xLX0VNQ19ETExfRERMTF9DTEtfU0VMX1NISUZUKTsKPiArCWVsc2UKPiArCQlk bGxfc2V0dGluZyB8PSAoRU1DX0RMTF9TV0lUQ0hfT1VUIDw8Cj4gKwkJCQlETExfQ0xLX0VNQ19E TExfRERMTF9DTEtfU0VMX1NISUZUKTsKPiArCj4gKwl0ZWdyYTIxMF9jbGtfZW1jX2RsbF91cGRh dGVfc2V0dGluZyhkbGxfc2V0dGluZyk7Cj4gKwo+ICsJaWYgKGVtYy0+bmV4dF90aW1pbmctPmNs a19vdXRfZW5iX3hfMF9jbGtfZW5iX2VtY19kbGwpCj4gKwkJdGVncmEyMTBfY2xrX2VtY19kbGxf ZW5hYmxlKHRydWUpOwo+ICsJZWxzZQo+ICsJCXRlZ3JhMjEwX2Nsa19lbWNfZGxsX2VuYWJsZShm YWxzZSk7Cj4gK30KPiArCj4gK3ZvaWQgZG9fY2xvY2tfY2hhbmdlKHN0cnVjdCB0ZWdyYV9lbWMg KmVtYywgdTMyIGNsa3NyYykKPiArewo+ICsJaW50IGVycjsKPiArCj4gKwltY19yZWFkbChlbWMt Pm1jLCBNQ19FTUVNX0FEUl9DRkcpOwo+ICsJZW1jX3JlYWRsKGVtYywgRU1DX0lOVFNUQVRVUyk7 Cj4gKwo+ICsJdGVncmEyMTBfY2xrX2VtY191cGRhdGVfc2V0dGluZyhjbGtzcmMpOwo+ICsKPiAr CWVyciA9IHdhaXRfZm9yX3VwZGF0ZShlbWMsIEVNQ19JTlRTVEFUVVMsCj4gKwkJCSAgICAgIEVN Q19JTlRTVEFUVVNfQ0xLQ0hBTkdFX0NPTVBMRVRFLCB0cnVlLCBSRUdfRU1DKTsKPiArCWlmIChl cnIpIHsKPiArCQlwcl9lcnIoIiVzOiBjbG9jayBjaGFuZ2UgY29tcGxldGlvbiBlcnJvcjogJWQi LCBfX2Z1bmNfXywgZXJyKTsKPiArCQlXQVJOX09OKDEpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdHJ1 Y3QgZW1jX3RhYmxlICpnZXRfdGltaW5nX2Zyb21fZnJlcShzdHJ1Y3QgdGVncmFfZW1jICplbWMs Cj4gKwkJCQkgICAgICAgdW5zaWduZWQgbG9uZyByYXRlKQo+ICt7Cj4gKwlpbnQgaTsKPiArCj4g Kwlmb3IgKGkgPSAwOyBpIDwgZW1jLT5lbWNfdGFibGVfc2l6ZTsgaSsrKQo+ICsJCWlmIChlbWMt PmVtY190YWJsZVtpXS5yYXRlID09IHJhdGUpCj4gKwkJCXJldHVybiAmZW1jLT5lbWNfdGFibGVb aV07Cj4gKwo+ICsJcmV0dXJuIE5VTEw7Cj4gK30KPiArCj4gK2ludCB3YWl0X2Zvcl91cGRhdGUo c3RydWN0IHRlZ3JhX2VtYyAqZW1jLCB1MzIgc3RhdHVzX3JlZywgdTMyIGJpdF9tYXNrLAo+ICsJ CSAgICBib29sIHVwZGF0ZWRfc3RhdGUsIGludCBjaGFuKQo+ICt7CgpUaGlzIGFuZCBhbGwgb3Ro ZXIgZ2xvYmFsIGZ1bmN0aW9ucyBoYXZlIHZlcnkgZ2VuZXJpYyBuYW1lcy4gRWl0aGVyCnNxdWFz aCBpdCBhbGwgaW50byBhIHNpbmdsZSBzb3VyY2UgZmlsZSBhbmQgbWFrZSBhbGwgZnVuY3Rpb25z IHN0YXRpYywKb3IgY2hhbmdlIHRoZSBuYW1lcyB0byBzb21ldGhpbmcgbW9yZSB1bmlxdWUuCgot LSAKRG1pdHJ5CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg==