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 44EF5FA3741 for ; Mon, 31 Oct 2022 15:46:24 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=T4ziGs39se0vZjMK45sDZAxmkc4bYIDLjyZlKwgSKTU=; b=uAQe10UgIWYQ4n P7gaW4RQaRzCOFRWDljTrfk3M0VUBZ6wWxavKbsIM6G6ZOooM/NLKBFfAiKA7Px2YsO6pBYadl26O DYfYPdZ15XihqIOG4DoU/I6PdPmxnPBc3knqLfKImktpgHs/v/4s7ZMxgafHY+uUFVLmB4rcPKh5I gUVtlrbb3b5/7UrDRnD12ftti+ZEm/iX7KU9rmd9JyxZ7iBZOiTDfKxFJhnQIOx9I9jTH1ckBS7nq mBBtsrMzyqpPmH/ilBaU9mR4VbgHLpkHz9M/j1RHitObvruIKa6K/zsIBqEAbY4t8hNYh4kFxuM5O YbhCXdnvwFmEDWM/ZyFw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1opWzX-00CjS1-IL; Mon, 31 Oct 2022 15:46:23 +0000 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1opWzT-00CjMv-8Z for linux-phy@lists.infradead.org; Mon, 31 Oct 2022 15:46:21 +0000 Received: by mail-pf1-x433.google.com with SMTP id 192so11019696pfx.5 for ; Mon, 31 Oct 2022 08:46:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=ED4Pdl1pYYospuQHPOVy+ykTYjfhxK1y0Bxl806wcnU=; b=Nz2rB0RQElBpW/tcMg8d2tGeXEH/d0R0oHOYOc1xDlCBBN53JbuxFQn49lf6eseZnh 60Uut/B4MncdaqtRdiYh2uD7RP9pYjS5g07dvOv/+bWLrH8HZoHhELJtMhVEET60tduS M3jCAI0FPCkF5tc3xJ4DnQcrwsyPfNV+DevsdZW5stmc6GtBR3GIoolDosOPQ7Li+S1J 936/BEeuZLFYNwGAv/p6yVAcSIRbIuCoRTIn505t0+KZNwJURwS5O4fHrgjpwCnCofaH oUeqUgtc7eZoezlOyXR4jeQR4DtQRnocVA71j8jyryjLXqTkh3iI8viHwW7L/PYkPYto /46g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ED4Pdl1pYYospuQHPOVy+ykTYjfhxK1y0Bxl806wcnU=; b=3ziSYboQJTkinKrxewGooFtOVHZqm0kYKrYLj4H9iR8NtOOeNyu4iyuGwL+ZohDWDL fZiKU5eSEFIIuwzSWoNYqOSCx9g3NN+oDQ0HdOi4uBr8n4+8uW7li0M0YSNS2jD1FrVo ddj6M2d35aeES0hDK/2Uc/uBJQD8ujFDeAxBxyQxu/Xgi0/l59JVoVuHsVgIY5Y15+xB ujfSUkIqs6MoeP7Q3ltmpbwwapQCzl/xBe4nDo2gWFN5a1jcfPFIW8mGGB56+JDzOKPw zySobNLX/mOKjItRoFwQ7/DvLD/mPb4n3I+9ob/WyPczQGuqGtY4Cgr/qvGmdhM2zN1d I2kA== X-Gm-Message-State: ACrzQf0F5yHkYhLlrJ4/RauP5MGtW+lEWowUiteR/OXJN7pBYUv59y+/ uwA5M44/jZ/w8zKARLKkWGdz X-Google-Smtp-Source: AMsMyM6G37NPNmjzsD0efFFw6fm6GkywzdhhnCL4jIyI4CGuyNd7aDtT3ixtA4AfA59rUB9RpajzGw== X-Received: by 2002:a63:188:0:b0:43c:22e9:2d10 with SMTP id 130-20020a630188000000b0043c22e92d10mr13277229pgb.12.1667231176289; Mon, 31 Oct 2022 08:46:16 -0700 (PDT) Received: from thinkpad ([117.193.209.221]) by smtp.gmail.com with ESMTPSA id 9-20020a631749000000b0046f1e8cb30dsm4298951pgx.26.2022.10.31.08.46.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Oct 2022 08:46:15 -0700 (PDT) Date: Mon, 31 Oct 2022 21:16:07 +0530 From: Manivannan Sadhasivam To: Dmitry Baryshkov Cc: martin.petersen@oracle.com, jejb@linux.ibm.com, andersson@kernel.org, vkoul@kernel.org, krzysztof.kozlowski+dt@linaro.org, konrad.dybcio@somainline.org, robh+dt@kernel.org, quic_cang@quicinc.com, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, linux-scsi@vger.kernel.org Subject: Re: [PATCH 01/15] phy: qcom-qmp-ufs: Move register settings to qmp_phy_cfg_tables struct Message-ID: <20221031154607.GB12738@thinkpad> References: <20221029141633.295650-1-manivannan.sadhasivam@linaro.org> <20221029141633.295650-2-manivannan.sadhasivam@linaro.org> <14844656-0d93-eac0-1877-f3e967691f5a@linaro.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <14844656-0d93-eac0-1877-f3e967691f5a@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221031_084619_352069_D05BFBCD X-CRM114-Status: GOOD ( 19.00 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org T24gU3VuLCBPY3QgMzAsIDIwMjIgYXQgMTI6NTA6NTBBTSArMDMwMCwgRG1pdHJ5IEJhcnlzaGtv diB3cm90ZToKPiBPbiAyOS8xMC8yMDIyIDE3OjE2LCBNYW5pdmFubmFuIFNhZGhhc2l2YW0gd3Jv dGU6Cj4gPiBBcyBkb25lIGZvciBRY29tIFBDSWUgUEhZIGRyaXZlciwgbGV0J3MgbW92ZSB0aGUg cmVnaXN0ZXIgc2V0dGluZ3MgdG8gdGhlCj4gPiBjb21tb24gcW1wX3BoeV9jZmdfdGFibGVzIHN0 cnVjdC4gVGhpcyBoZWxwcyBpbiBhZGRpbmcgYW55IGFkZGl0aW9uYWwgUEhZCj4gPiBzZXR0aW5n cyBuZWVkZWQgZm9yIGZ1bmN0aW9uYWxpdGllcyBsaWtlIEhTLUc0IGluIHRoZSBmdXR1cmUgYnkg YWRkaW5nIG9uZQo+ID4gbW9yZSBpbnN0YW5jZSBvZiB0aGUgcW1wX3BoeV9jZmdfdGFibGVzLgo+ ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBNYW5pdmFubmFuIFNhZGhhc2l2YW0gPG1hbml2YW5uYW4u c2FkaGFzaXZhbUBsaW5hcm8ub3JnPgo+ID4gLS0tCj4gPiAgIGRyaXZlcnMvcGh5L3F1YWxjb21t L3BoeS1xY29tLXFtcC11ZnMuYyB8IDIyMyArKysrKysrKysrKysrLS0tLS0tLS0tLS0KPiA+ICAg MSBmaWxlIGNoYW5nZWQsIDEyNiBpbnNlcnRpb25zKCspLCA5NyBkZWxldGlvbnMoLSkKPiA+IAo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L3F1YWxjb21tL3BoeS1xY29tLXFtcC11ZnMuYyBi L2RyaXZlcnMvcGh5L3F1YWxjb21tL3BoeS1xY29tLXFtcC11ZnMuYwo+ID4gaW5kZXggYzA4ZDM0 YWQxMzEzLi5jZGZkYTRlNmQ1NzUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3BoeS9xdWFsY29t bS9waHktcWNvbS1xbXAtdWZzLmMKPiA+ICsrKyBiL2RyaXZlcnMvcGh5L3F1YWxjb21tL3BoeS1x Y29tLXFtcC11ZnMuYwo+ID4gQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWdu ZWQgaW50IHNtODE1MF91ZnNwaHlfcmVnc19sYXlvdXRbUVBIWV9MQVlPVVRfU0laRV0gPSB7Cj4g PiAgIAlbUVBIWV9TV19SRVNFVF0JCQk9IFFQSFlfVjRfUENTX1VGU19TV19SRVNFVCwKPiA+ICAg fTsKPiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90YmwgbXNtODk5Nl91ZnNf c2VyZGVzX3RibFtdID0gewo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3Ri bCBtc204OTk2X3Vmc19zZXJkZXNbXSA9IHsKPiA+ICAgCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRF U19DT01fQ01OX0NPTkZJRywgMHgwZSksCj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNf Q09NX1NZU0NMS19FTl9TRUwsIDB4ZDcpLAo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVT X0NPTV9DTEtfU0VMRUNULCAweDMwKSwKPiA+IEBAIC0xNTYsMTIgKzE1NiwxMiBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90YmwgbXNtODk5Nl91ZnNfc2VyZGVzX3RibFtdID0g ewo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX0NPTV9MT0NLX0NNUDNfTU9ERTEsIDB4 MDApLAo+ID4gICB9Owo+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBt c204OTk2X3Vmc190eF90YmxbXSA9IHsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlf aW5pdF90YmwgbXNtODk5Nl91ZnNfdHhbXSA9IHsKPiA+ICAgCVFNUF9QSFlfSU5JVF9DRkcoUVNF UkRFU19UWF9ISUdIWl9UUkFOU0NFSVZFUkVOX0JJQVNfRFJWUl9FTiwgMHg0NSksCj4gPiAgIAlR TVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVFhfTEFORV9NT0RFLCAweDAyKSwKPiA+ICAgfTsKPiA+ IC1zdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90YmwgbXNtODk5Nl91ZnNfcnhfdGJs W10gPSB7Cj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJsIG1zbTg5OTZf dWZzX3J4W10gPSB7Cj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfUlhfU0lHREVUX0xW TCwgMHgyNCksCj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfUlhfU0lHREVUX0NOVFJM LCAweDAyKSwKPiA+ICAgCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19SWF9SWF9JTlRFUkZBQ0Vf TU9ERSwgMHgwMCksCj4gPiBAQCAtMTc1LDcgKzE3NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg cW1wX3BoeV9pbml0X3RibCBtc204OTk2X3Vmc19yeF90YmxbXSA9IHsKPiA+ICAgCVFNUF9QSFlf SU5JVF9DRkcoUVNFUkRFU19SWF9SWF9FUVVfQURBUFRPUl9DTlRSTDIsIDB4MEUpLAo+ID4gICB9 Owo+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzbTYxMTVfdWZzcGh5 X3NlcmRlc190YmxbXSA9IHsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90 Ymwgc202MTE1X3Vmc3BoeV9zZXJkZXNbXSA9IHsKPiA+ICAgCVFNUF9QSFlfSU5JVF9DRkcoUVNF UkRFU19DT01fQ01OX0NPTkZJRywgMHgwZSksCj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJE RVNfQ09NX1NZU0NMS19FTl9TRUwsIDB4MTQpLAo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRU0VS REVTX0NPTV9DTEtfU0VMRUNULCAweDMwKSwKPiA+IEBAIC0yMzEsMTIgKzIzMSwxMiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwgc202MTE1X3Vmc3BoeV9zZXJkZXNfdGJs W10gPSB7Cj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfQ09NX1ZDT19UVU5FX01BUCwg MHg0NCksCj4gPiAgIH07Cj4gPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJs IHNtNjExNV91ZnNwaHlfdHhfdGJsW10gPSB7Cj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBf cGh5X2luaXRfdGJsIHNtNjExNV91ZnNwaHlfdHhbXSA9IHsKPiA+ICAgCVFNUF9QSFlfSU5JVF9D RkcoUVNFUkRFU19UWF9ISUdIWl9UUkFOU0NFSVZFUkVOX0JJQVNfRFJWUl9FTiwgMHg0NSksCj4g PiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVFhfTEFORV9NT0RFLCAweDA2KSwKPiA+ICAg fTsKPiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwgc202MTE1X3Vmc3Bo eV9yeF90YmxbXSA9IHsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwg c202MTE1X3Vmc3BoeV9yeFtdID0gewo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1JY X1NJR0RFVF9MVkwsIDB4MjQpLAo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1JYX1NJ R0RFVF9DTlRSTCwgMHgwRiksCj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfUlhfUlhf SU5URVJGQUNFX01PREUsIDB4NDApLAo+ID4gQEAgLTI1NCw3ICsyNTQsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwgc202MTE1X3Vmc3BoeV9yeF90YmxbXSA9IHsKPiA+ ICAgCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19SWF9VQ0RSX1NPX1NBVFVSQVRJT05fQU5EX0VO QUJMRSwgMHg1QiksCj4gPiAgIH07Cj4gPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2lu aXRfdGJsIHNtNjExNV91ZnNwaHlfcGNzX3RibFtdID0gewo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgcW1wX3BoeV9pbml0X3RibCBzbTYxMTVfdWZzcGh5X3Bjc1tdID0gewo+ID4gICAJUU1QX1BI WV9JTklUX0NGRyhRUEhZX1YyX1BDU19SWF9QV01fR0VBUl9CQU5ELCAweDE1KSwKPiA+ICAgCVFN UF9QSFlfSU5JVF9DRkcoUVBIWV9WMl9QQ1NfUlhfU0lHREVUX0NUUkwyLCAweDZkKSwKPiA+ICAg CVFNUF9QSFlfSU5JVF9DRkcoUVBIWV9WMl9QQ1NfVFhfTEFSR0VfQU1QX0RSVl9MVkwsIDB4MGYp LAo+ID4gQEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5p dF90Ymwgc202MTE1X3Vmc3BoeV9wY3NfdGJsW10gPSB7Cj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZH KFFQSFlfVjJfUENTX1JYX01JTl9ISUJFUk44X1RJTUUsIDB4OWEpLCAvKiA4IHVzICovCj4gPiAg IH07Cj4gPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJsIHNkbTg0NV91ZnNw aHlfc2VyZGVzX3RibFtdID0gewo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0 X3RibCBzZG04NDVfdWZzcGh5X3NlcmRlc1tdID0gewo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhR U0VSREVTX1YzX0NPTV9TWVNfQ0xLX0NUUkwsIDB4MDIpLAo+ID4gICAJUU1QX1BIWV9JTklUX0NG RyhRU0VSREVTX1YzX0NPTV9CSUFTX0VOX0NMS0JVRkxSX0VOLCAweDA0KSwKPiA+ICAgCVFNUF9Q SFlfSU5JVF9DRkcoUVNFUkRFU19WM19DT01fQkdfVElNRVIsIDB4MGEpLAo+ID4gQEAgLTMwOCwx MyArMzA4LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzZG04NDVf dWZzcGh5X3NlcmRlc190YmxbXSA9IHsKPiA+ICAgCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19W M19DT01fVkNPX1RVTkVfTUFQLCAweDQ0KSwKPiA+ICAgfTsKPiA+IC1zdGF0aWMgY29uc3Qgc3Ry dWN0IHFtcF9waHlfaW5pdF90Ymwgc2RtODQ1X3Vmc3BoeV90eF90YmxbXSA9IHsKPiA+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwgc2RtODQ1X3Vmc3BoeV90eFtdID0gewo+ ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1YzX1RYX0xBTkVfTU9ERV8xLCAweDA2KSwK PiA+ICAgCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19WM19UWF9SRVNfQ09ERV9MQU5FX09GRlNF VF9UWCwgMHgwNCksCj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjNfVFhfUkVTX0NP REVfTEFORV9PRkZTRVRfUlgsIDB4MDcpLAo+ID4gICB9Owo+ID4gLXN0YXRpYyBjb25zdCBzdHJ1 Y3QgcW1wX3BoeV9pbml0X3RibCBzZG04NDVfdWZzcGh5X3J4X3RibFtdID0gewo+ID4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzZG04NDVfdWZzcGh5X3J4W10gPSB7Cj4g PiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjNfUlhfU0lHREVUX0xWTCwgMHgyNCksCj4g PiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjNfUlhfU0lHREVUX0NOVFJMLCAweDBmKSwK PiA+ICAgCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19WM19SWF9TSUdERVRfREVHTElUQ0hfQ05U UkwsIDB4MWUpLAo+ID4gQEAgLTMzMyw3ICszMzMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHFt cF9waHlfaW5pdF90Ymwgc2RtODQ1X3Vmc3BoeV9yeF90YmxbXSA9IHsKPiA+ICAgCVFNUF9QSFlf SU5JVF9DRkcoUVNFUkRFU19WM19SWF9SWF9NT0RFXzAwLCAweDU5KSwKPiA+ICAgfTsKPiA+IC1z dGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwgc2RtODQ1X3Vmc3BoeV9wY3NfdGJs W10gPSB7Cj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJsIHNkbTg0NV91 ZnNwaHlfcGNzW10gPSB7Cj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFQSFlfVjNfUENTX1VGU19S WF9TSUdERVRfQ1RSTDIsIDB4NmUpLAo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRUEhZX1YzX1BD U19VRlNfVFhfTEFSR0VfQU1QX0RSVl9MVkwsIDB4MGEpLAo+ID4gICAJUU1QX1BIWV9JTklUX0NG RyhRUEhZX1YzX1BDU19VRlNfVFhfU01BTExfQU1QX0RSVl9MVkwsIDB4MDIpLAo+ID4gQEAgLTM0 NCw3ICszNDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwgc2RtODQ1 X3Vmc3BoeV9wY3NfdGJsW10gPSB7Cj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFQSFlfVjNfUENT X1VGU19NVUxUSV9MQU5FX0NUUkwxLCAweDAyKSwKPiA+ICAgfTsKPiA+IC1zdGF0aWMgY29uc3Qg c3RydWN0IHFtcF9waHlfaW5pdF90Ymwgc204MTUwX3Vmc3BoeV9zZXJkZXNfdGJsW10gPSB7Cj4g PiArc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJsIHNtODE1MF91ZnNwaHlfc2Vy ZGVzW10gPSB7Cj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjRfQ09NX1NZU0NMS19F Tl9TRUwsIDB4ZDkpLAo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y0X0NPTV9IU0NM S19TRUwsIDB4MTEpLAo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y0X0NPTV9IU0NM S19IU19TV0lUQ0hfU0VMLCAweDAwKSwKPiA+IEBAIC0zNzQsNyArMzc0LDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJsIHNtODE1MF91ZnNwaHlfc2VyZGVzX3RibFtdID0g ewo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y0X0NPTV9WQ09fVFVORV9NQVAsIDB4 MDYpLAo+ID4gICB9Owo+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBz bTgxNTBfdWZzcGh5X3R4X3RibFtdID0gewo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3Bo eV9pbml0X3RibCBzbTgxNTBfdWZzcGh5X3R4W10gPSB7Cj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZH KFFTRVJERVNfVjRfVFhfUFdNX0dFQVJfMV9ESVZJREVSX0JBTkQwXzEsIDB4MDYpLAo+ID4gICAJ UU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y0X1RYX1BXTV9HRUFSXzJfRElWSURFUl9CQU5EMF8x LCAweDAzKSwKPiA+ICAgCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19WNF9UWF9QV01fR0VBUl8z X0RJVklERVJfQkFORDBfMSwgMHgwMSksCj4gPiBAQCAtMzgzLDcgKzM4Myw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzbTgxNTBfdWZzcGh5X3R4X3RibFtdID0gewo+ ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y0X1RYX1RSQU5fRFJWUl9FTVBfRU4sIDB4 MGMpLAo+ID4gICB9Owo+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBz bTgxNTBfdWZzcGh5X3J4X3RibFtdID0gewo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3Bo eV9pbml0X3RibCBzbTgxNTBfdWZzcGh5X3J4W10gPSB7Cj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZH KFFTRVJERVNfVjRfUlhfU0lHREVUX0xWTCwgMHgyNCksCj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZH KFFTRVJERVNfVjRfUlhfU0lHREVUX0NOVFJMLCAweDBmKSwKPiA+ICAgCVFNUF9QSFlfSU5JVF9D RkcoUVNFUkRFU19WNF9SWF9TSUdERVRfREVHTElUQ0hfQ05UUkwsIDB4MWUpLAo+ID4gQEAgLTQy MSw3ICs0MjEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwgc204MTUw X3Vmc3BoeV9yeF90YmxbXSA9IHsKPiA+ICAgfTsKPiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHFt cF9waHlfaW5pdF90Ymwgc204MTUwX3Vmc3BoeV9wY3NfdGJsW10gPSB7Cj4gPiArc3RhdGljIGNv bnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJsIHNtODE1MF91ZnNwaHlfcGNzW10gPSB7Cj4gPiAg IAlRTVBfUEhZX0lOSVRfQ0ZHKFFQSFlfVjRfUENTX1VGU19SWF9TSUdERVRfQ1RSTDIsIDB4NmQp LAo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRUEhZX1Y0X1BDU19VRlNfVFhfTEFSR0VfQU1QX0RS Vl9MVkwsIDB4MGEpLAo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRUEhZX1Y0X1BDU19VRlNfVFhf U01BTExfQU1QX0RSVl9MVkwsIDB4MDIpLAo+ID4gQEAgLTQzMSw3ICs0MzEsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwgc204MTUwX3Vmc3BoeV9wY3NfdGJsW10gPSB7 Cj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFQSFlfVjRfUENTX1VGU19NVUxUSV9MQU5FX0NUUkwx LCAweDAyKSwKPiA+ICAgfTsKPiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90 Ymwgc204MzUwX3Vmc3BoeV9zZXJkZXNfdGJsW10gPSB7Cj4gPiArc3RhdGljIGNvbnN0IHN0cnVj dCBxbXBfcGh5X2luaXRfdGJsIHNtODM1MF91ZnNwaHlfc2VyZGVzW10gPSB7Cj4gPiAgIAlRTVBf UEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjVfQ09NX1NZU0NMS19FTl9TRUwsIDB4ZDkpLAo+ID4gICAJ UU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y1X0NPTV9IU0NMS19TRUwsIDB4MTEpLAo+ID4gICAJ UU1QX1BIWV9JTklUX0NGRyhRU0VSREVTX1Y1X0NPTV9IU0NMS19IU19TV0lUQ0hfU0VMLCAweDAw KSwKPiA+IEBAIC00NjEsNyArNDYxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2lu aXRfdGJsIHNtODM1MF91ZnNwaHlfc2VyZGVzX3RibFtdID0gewo+ID4gICAJUU1QX1BIWV9JTklU X0NGRyhRU0VSREVTX1Y1X0NPTV9WQ09fVFVORV9NQVAsIDB4MDYpLAo+ID4gICB9Owo+ID4gLXN0 YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzbTgzNTBfdWZzcGh5X3R4X3RibFtd ID0gewo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzbTgzNTBfdWZz cGh5X3R4W10gPSB7Cj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjVfVFhfUFdNX0dF QVJfMV9ESVZJREVSX0JBTkQwXzEsIDB4MDYpLAo+ID4gICAJUU1QX1BIWV9JTklUX0NGRyhRU0VS REVTX1Y1X1RYX1BXTV9HRUFSXzJfRElWSURFUl9CQU5EMF8xLCAweDAzKSwKPiA+ICAgCVFNUF9Q SFlfSU5JVF9DRkcoUVNFUkRFU19WNV9UWF9QV01fR0VBUl8zX0RJVklERVJfQkFORDBfMSwgMHgw MSksCj4gPiBAQCAtNDczLDcgKzQ3Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9p bml0X3RibCBzbTgzNTBfdWZzcGh5X3R4X3RibFtdID0gewo+ID4gICAJUU1QX1BIWV9JTklUX0NG RyhRU0VSREVTX1Y1X1RYX1RSQU5fRFJWUl9FTVBfRU4sIDB4MGMpLAo+ID4gICB9Owo+ID4gLXN0 YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzbTgzNTBfdWZzcGh5X3J4X3RibFtd ID0gewo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzbTgzNTBfdWZz cGh5X3J4W10gPSB7Cj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjVfUlhfU0lHREVU X0xWTCwgMHgyNCksCj4gPiAgIAlRTVBfUEhZX0lOSVRfQ0ZHKFFTRVJERVNfVjVfUlhfU0lHREVU X0NOVFJMLCAweDBmKSwKPiA+ICAgCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19WNV9SWF9TSUdE RVRfREVHTElUQ0hfQ05UUkwsIDB4MWUpLAo+ID4gQEAgLTUxMyw3ICs1MTMsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90Ymwgc204MzUwX3Vmc3BoeV9yeF90YmxbXSA9IHsK PiA+ICAgCVFNUF9QSFlfSU5JVF9DRkcoUVNFUkRFU19WNV9SWF9EQ0NfQ1RSTDEsIDB4MGMpLAo+ ID4gICB9Owo+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCBzbTgzNTBf dWZzcGh5X3Bjc190YmxbXSA9IHsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfaW5p dF90Ymwgc204MzUwX3Vmc3BoeV9wY3NbXSA9IHsKPiA+ICAgCVFNUF9QSFlfSU5JVF9DRkcoUVBI WV9WNV9QQ1NfVUZTX1JYX1NJR0RFVF9DVFJMMiwgMHg2ZCksCj4gPiAgIAlRTVBfUEhZX0lOSVRf Q0ZHKFFQSFlfVjVfUENTX1VGU19UWF9MQVJHRV9BTVBfRFJWX0xWTCwgMHgwYSksCj4gPiAgIAlR TVBfUEhZX0lOSVRfQ0ZHKFFQSFlfVjVfUENTX1VGU19UWF9TTUFMTF9BTVBfRFJWX0xWTCwgMHgw MiksCj4gPiBAQCAtNTMxLDE5ICs1MzEsMjQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5 X2luaXRfdGJsIHNtODM1MF91ZnNwaHlfcGNzX3RibFtdID0gewo+ID4gICAJUU1QX1BIWV9JTklU X0NGRyhRUEhZX1Y1X1BDU19VRlNfTVVMVElfTEFORV9DVFJMMSwgMHgwMiksCj4gPiAgIH07Cj4g PiArc3RydWN0IHFtcF9waHlfY2ZnX3RhYmxlcyB7Cj4gPiArCS8qIEluaXQgc2VxdWVuY2UgZm9y IFBIWSBibG9ja3MgLSBzZXJkZXMsIHR4LCByeCwgcGNzICovCj4gPiArCWNvbnN0IHN0cnVjdCBx bXBfcGh5X2luaXRfdGJsICpzZXJkZXM7Cj4gPiArCWludCBzZXJkZXNfbnVtOwo+ID4gKwljb25z dCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCAqdHg7Cj4gPiArCWludCB0eF9udW07Cj4gPiArCWNv bnN0IHN0cnVjdCBxbXBfcGh5X2luaXRfdGJsICpyeDsKPiA+ICsJaW50IHJ4X251bTsKPiA+ICsJ Y29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90YmwgKnBjczsKPiA+ICsJaW50IHBjc19udW07Cj4g PiArfTsKPiA+ICsKPiA+ICAgLyogc3RydWN0IHFtcF9waHlfY2ZnIC0gcGVyLVBIWSBpbml0aWFs aXphdGlvbiBjb25maWcgKi8KPiA+ICAgc3RydWN0IHFtcF9waHlfY2ZnIHsKPiA+ICAgCWludCBs YW5lczsKPiA+IC0JLyogSW5pdCBzZXF1ZW5jZSBmb3IgUEhZIGJsb2NrcyAtIHNlcmRlcywgdHgs IHJ4LCBwY3MgKi8KPiA+IC0JY29uc3Qgc3RydWN0IHFtcF9waHlfaW5pdF90YmwgKnNlcmRlc190 Ymw7Cj4gPiAtCWludCBzZXJkZXNfdGJsX251bTsKPiA+IC0JY29uc3Qgc3RydWN0IHFtcF9waHlf aW5pdF90YmwgKnR4X3RibDsKPiA+IC0JaW50IHR4X3RibF9udW07Cj4gPiAtCWNvbnN0IHN0cnVj dCBxbXBfcGh5X2luaXRfdGJsICpyeF90Ymw7Cj4gPiAtCWludCByeF90YmxfbnVtOwo+ID4gLQlj b25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCAqcGNzX3RibDsKPiA+IC0JaW50IHBjc190Ymxf bnVtOwo+ID4gKwkvKiBNYWluIGluaXQgc2VxdWVuY2UgZm9yIFBIWSBibG9ja3MgLSBzZXJkZXMs IHR4LCByeCwgcGNzICovCj4gPiArCWNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZ190YWJsZXMgdGFi bGVzOwo+ID4gICAJLyogY2xvY2sgaWRzIHRvIGJlIHJlcXVlc3RlZCAqLwo+ID4gICAJY29uc3Qg Y2hhciAqIGNvbnN0ICpjbGtfbGlzdDsKPiA+IEBAIC02NjAsMTIgKzY2NSwxNCBAQCBzdGF0aWMg Y29uc3QgY2hhciAqIGNvbnN0IHFtcF9waHlfdnJlZ19sW10gPSB7Cj4gPiAgIHN0YXRpYyBjb25z dCBzdHJ1Y3QgcW1wX3BoeV9jZmcgbXNtODk5Nl91ZnNfY2ZnID0gewo+ID4gICAJLmxhbmVzCQkJ PSAxLAo+ID4gLQkuc2VyZGVzX3RibAkJPSBtc204OTk2X3Vmc19zZXJkZXNfdGJsLAo+ID4gLQku c2VyZGVzX3RibF9udW0JCT0gQVJSQVlfU0laRShtc204OTk2X3Vmc19zZXJkZXNfdGJsKSwKPiA+ IC0JLnR4X3RibAkJCT0gbXNtODk5Nl91ZnNfdHhfdGJsLAo+ID4gLQkudHhfdGJsX251bQkJPSBB UlJBWV9TSVpFKG1zbTg5OTZfdWZzX3R4X3RibCksCj4gPiAtCS5yeF90YmwJCQk9IG1zbTg5OTZf dWZzX3J4X3RibCwKPiA+IC0JLnJ4X3RibF9udW0JCT0gQVJSQVlfU0laRShtc204OTk2X3Vmc19y eF90YmwpLAo+ID4gKwkudGFibGVzID0gewo+ID4gKwkJLnNlcmRlcwkJPSBtc204OTk2X3Vmc19z ZXJkZXMsCj4gPiArCQkuc2VyZGVzX251bQk9IEFSUkFZX1NJWkUobXNtODk5Nl91ZnNfc2VyZGVz KSwKPiA+ICsJCS50eAkJPSBtc204OTk2X3Vmc190eCwKPiA+ICsJCS50eF9udW0JCT0gQVJSQVlf U0laRShtc204OTk2X3Vmc190eCksCj4gPiArCQkucngJCT0gbXNtODk5Nl91ZnNfcngsCj4gPiAr CQkucnhfbnVtCQk9IEFSUkFZX1NJWkUobXNtODk5Nl91ZnNfcngpLAo+ID4gKwl9LAo+ID4gICAJ LmNsa19saXN0CQk9IG1zbTg5OTZfdWZzX3BoeV9jbGtfbCwKPiA+ICAgCS5udW1fY2xrcwkJPSBB UlJBWV9TSVpFKG1zbTg5OTZfdWZzX3BoeV9jbGtfbCksCj4gPiBAQCAtNjg1LDE0ICs2OTIsMTYg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZyBtc204OTk2X3Vmc19jZmcgPSB7Cj4g PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcW1wX3BoeV9jZmcgc2RtODQ1X3Vmc3BoeV9jZmcgPSB7 Cj4gPiAgIAkubGFuZXMJCQk9IDIsCj4gPiAtCS5zZXJkZXNfdGJsCQk9IHNkbTg0NV91ZnNwaHlf c2VyZGVzX3RibCwKPiA+IC0JLnNlcmRlc190YmxfbnVtCQk9IEFSUkFZX1NJWkUoc2RtODQ1X3Vm c3BoeV9zZXJkZXNfdGJsKSwKPiA+IC0JLnR4X3RibAkJCT0gc2RtODQ1X3Vmc3BoeV90eF90Ymws Cj4gPiAtCS50eF90YmxfbnVtCQk9IEFSUkFZX1NJWkUoc2RtODQ1X3Vmc3BoeV90eF90YmwpLAo+ ID4gLQkucnhfdGJsCQkJPSBzZG04NDVfdWZzcGh5X3J4X3RibCwKPiA+IC0JLnJ4X3RibF9udW0J CT0gQVJSQVlfU0laRShzZG04NDVfdWZzcGh5X3J4X3RibCksCj4gPiAtCS5wY3NfdGJsCQk9IHNk bTg0NV91ZnNwaHlfcGNzX3RibCwKPiA+IC0JLnBjc190YmxfbnVtCQk9IEFSUkFZX1NJWkUoc2Rt ODQ1X3Vmc3BoeV9wY3NfdGJsKSwKPiA+ICsJLnRhYmxlcyA9IHsKPiA+ICsJCS5zZXJkZXMJCT0g c2RtODQ1X3Vmc3BoeV9zZXJkZXMsCj4gPiArCQkuc2VyZGVzX251bQk9IEFSUkFZX1NJWkUoc2Rt ODQ1X3Vmc3BoeV9zZXJkZXMpLAo+ID4gKwkJLnR4CQk9IHNkbTg0NV91ZnNwaHlfdHgsCj4gPiAr CQkudHhfbnVtCQk9IEFSUkFZX1NJWkUoc2RtODQ1X3Vmc3BoeV90eCksCj4gPiArCQkucngJCT0g c2RtODQ1X3Vmc3BoeV9yeCwKPiA+ICsJCS5yeF9udW0JCT0gQVJSQVlfU0laRShzZG04NDVfdWZz cGh5X3J4KSwKPiA+ICsJCS5wY3MJCT0gc2RtODQ1X3Vmc3BoeV9wY3MsCj4gPiArCQkucGNzX251 bQk9IEFSUkFZX1NJWkUoc2RtODQ1X3Vmc3BoeV9wY3MpLAo+ID4gKwl9LAo+ID4gICAJLmNsa19s aXN0CQk9IHNkbTg0NV91ZnNfcGh5X2Nsa19sLAo+ID4gICAJLm51bV9jbGtzCQk9IEFSUkFZX1NJ WkUoc2RtODQ1X3Vmc19waHlfY2xrX2wpLAo+ID4gICAJLnZyZWdfbGlzdAkJPSBxbXBfcGh5X3Zy ZWdfbCwKPiA+IEBAIC03MDksMTQgKzcxOCwxNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9w aHlfY2ZnIHNkbTg0NV91ZnNwaHlfY2ZnID0gewo+ID4gICBzdGF0aWMgY29uc3Qgc3RydWN0IHFt cF9waHlfY2ZnIHNtNjExNV91ZnNwaHlfY2ZnID0gewo+ID4gICAJLmxhbmVzCQkJPSAxLAo+ID4g LQkuc2VyZGVzX3RibAkJPSBzbTYxMTVfdWZzcGh5X3NlcmRlc190YmwsCj4gPiAtCS5zZXJkZXNf dGJsX251bQkJPSBBUlJBWV9TSVpFKHNtNjExNV91ZnNwaHlfc2VyZGVzX3RibCksCj4gPiAtCS50 eF90YmwJCQk9IHNtNjExNV91ZnNwaHlfdHhfdGJsLAo+ID4gLQkudHhfdGJsX251bQkJPSBBUlJB WV9TSVpFKHNtNjExNV91ZnNwaHlfdHhfdGJsKSwKPiA+IC0JLnJ4X3RibAkJCT0gc202MTE1X3Vm c3BoeV9yeF90YmwsCj4gPiAtCS5yeF90YmxfbnVtCQk9IEFSUkFZX1NJWkUoc202MTE1X3Vmc3Bo eV9yeF90YmwpLAo+ID4gLQkucGNzX3RibAkJPSBzbTYxMTVfdWZzcGh5X3Bjc190YmwsCj4gPiAt CS5wY3NfdGJsX251bQkJPSBBUlJBWV9TSVpFKHNtNjExNV91ZnNwaHlfcGNzX3RibCksCj4gPiAr CS50YWJsZXMgPSB7Cj4gPiArCQkuc2VyZGVzCQk9IHNtNjExNV91ZnNwaHlfc2VyZGVzLAo+ID4g KwkJLnNlcmRlc19udW0JPSBBUlJBWV9TSVpFKHNtNjExNV91ZnNwaHlfc2VyZGVzKSwKPiA+ICsJ CS50eAkJPSBzbTYxMTVfdWZzcGh5X3R4LAo+ID4gKwkJLnR4X251bQkJPSBBUlJBWV9TSVpFKHNt NjExNV91ZnNwaHlfdHgpLAo+ID4gKwkJLnJ4CQk9IHNtNjExNV91ZnNwaHlfcngsCj4gPiArCQku cnhfbnVtCQk9IEFSUkFZX1NJWkUoc202MTE1X3Vmc3BoeV9yeCksCj4gPiArCQkucGNzCQk9IHNt NjExNV91ZnNwaHlfcGNzLAo+ID4gKwkJLnBjc19udW0JPSBBUlJBWV9TSVpFKHNtNjExNV91ZnNw aHlfcGNzKSwKPiA+ICsJfSwKPiA+ICAgCS5jbGtfbGlzdAkJPSBzZG04NDVfdWZzX3BoeV9jbGtf bCwKPiA+ICAgCS5udW1fY2xrcwkJPSBBUlJBWV9TSVpFKHNkbTg0NV91ZnNfcGh5X2Nsa19sKSwK PiA+ICAgCS52cmVnX2xpc3QJCT0gcW1wX3BoeV92cmVnX2wsCj4gPiBAQCAtNzMyLDE0ICs3NDMs MTYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZyBzbTYxMTVfdWZzcGh5X2NmZyA9 IHsKPiA+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZyBzbTgxNTBfdWZzcGh5X2Nm ZyA9IHsKPiA+ICAgCS5sYW5lcwkJCT0gMiwKPiA+IC0JLnNlcmRlc190YmwJCT0gc204MTUwX3Vm c3BoeV9zZXJkZXNfdGJsLAo+ID4gLQkuc2VyZGVzX3RibF9udW0JCT0gQVJSQVlfU0laRShzbTgx NTBfdWZzcGh5X3NlcmRlc190YmwpLAo+ID4gLQkudHhfdGJsCQkJPSBzbTgxNTBfdWZzcGh5X3R4 X3RibCwKPiA+IC0JLnR4X3RibF9udW0JCT0gQVJSQVlfU0laRShzbTgxNTBfdWZzcGh5X3R4X3Ri bCksCj4gPiAtCS5yeF90YmwJCQk9IHNtODE1MF91ZnNwaHlfcnhfdGJsLAo+ID4gLQkucnhfdGJs X251bQkJPSBBUlJBWV9TSVpFKHNtODE1MF91ZnNwaHlfcnhfdGJsKSwKPiA+IC0JLnBjc190YmwJ CT0gc204MTUwX3Vmc3BoeV9wY3NfdGJsLAo+ID4gLQkucGNzX3RibF9udW0JCT0gQVJSQVlfU0la RShzbTgxNTBfdWZzcGh5X3Bjc190YmwpLAo+ID4gKwkudGFibGVzID0gewo+ID4gKwkJLnNlcmRl cwkJPSBzbTgxNTBfdWZzcGh5X3NlcmRlcywKPiA+ICsJCS5zZXJkZXNfbnVtCT0gQVJSQVlfU0la RShzbTgxNTBfdWZzcGh5X3NlcmRlcyksCj4gPiArCQkudHgJCT0gc204MTUwX3Vmc3BoeV90eCwK PiA+ICsJCS50eF9udW0JCT0gQVJSQVlfU0laRShzbTgxNTBfdWZzcGh5X3R4KSwKPiA+ICsJCS5y eAkJPSBzbTgxNTBfdWZzcGh5X3J4LAo+ID4gKwkJLnJ4X251bQkJPSBBUlJBWV9TSVpFKHNtODE1 MF91ZnNwaHlfcngpLAo+ID4gKwkJLnBjcwkJPSBzbTgxNTBfdWZzcGh5X3BjcywKPiA+ICsJCS5w Y3NfbnVtCT0gQVJSQVlfU0laRShzbTgxNTBfdWZzcGh5X3BjcyksCj4gPiArCX0sCj4gPiAgIAku Y2xrX2xpc3QJCT0gc2RtODQ1X3Vmc19waHlfY2xrX2wsCj4gPiAgIAkubnVtX2Nsa3MJCT0gQVJS QVlfU0laRShzZG04NDVfdWZzX3BoeV9jbGtfbCksCj4gPiAgIAkudnJlZ19saXN0CQk9IHFtcF9w aHlfdnJlZ19sLAo+ID4gQEAgLTc1NCwxNCArNzY3LDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg cW1wX3BoeV9jZmcgc204MTUwX3Vmc3BoeV9jZmcgPSB7Cj4gPiAgIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgcW1wX3BoeV9jZmcgc204MzUwX3Vmc3BoeV9jZmcgPSB7Cj4gPiAgIAkubGFuZXMJCQk9IDIs Cj4gPiAtCS5zZXJkZXNfdGJsCQk9IHNtODM1MF91ZnNwaHlfc2VyZGVzX3RibCwKPiA+IC0JLnNl cmRlc190YmxfbnVtCQk9IEFSUkFZX1NJWkUoc204MzUwX3Vmc3BoeV9zZXJkZXNfdGJsKSwKPiA+ IC0JLnR4X3RibAkJCT0gc204MzUwX3Vmc3BoeV90eF90YmwsCj4gPiAtCS50eF90YmxfbnVtCQk9 IEFSUkFZX1NJWkUoc204MzUwX3Vmc3BoeV90eF90YmwpLAo+ID4gLQkucnhfdGJsCQkJPSBzbTgz NTBfdWZzcGh5X3J4X3RibCwKPiA+IC0JLnJ4X3RibF9udW0JCT0gQVJSQVlfU0laRShzbTgzNTBf dWZzcGh5X3J4X3RibCksCj4gPiAtCS5wY3NfdGJsCQk9IHNtODM1MF91ZnNwaHlfcGNzX3RibCwK PiA+IC0JLnBjc190YmxfbnVtCQk9IEFSUkFZX1NJWkUoc204MzUwX3Vmc3BoeV9wY3NfdGJsKSwK PiA+ICsJLnRhYmxlcyA9IHsKPiA+ICsJCS5zZXJkZXMJCT0gc204MzUwX3Vmc3BoeV9zZXJkZXMs Cj4gPiArCQkuc2VyZGVzX251bQk9IEFSUkFZX1NJWkUoc204MzUwX3Vmc3BoeV9zZXJkZXMpLAo+ ID4gKwkJLnR4CQk9IHNtODM1MF91ZnNwaHlfdHgsCj4gPiArCQkudHhfbnVtCQk9IEFSUkFZX1NJ WkUoc204MzUwX3Vmc3BoeV90eCksCj4gPiArCQkucngJCT0gc204MzUwX3Vmc3BoeV9yeCwKPiA+ ICsJCS5yeF9udW0JCT0gQVJSQVlfU0laRShzbTgzNTBfdWZzcGh5X3J4KSwKPiA+ICsJCS5wY3MJ CT0gc204MzUwX3Vmc3BoeV9wY3MsCj4gPiArCQkucGNzX251bQk9IEFSUkFZX1NJWkUoc204MzUw X3Vmc3BoeV9wY3MpLAo+ID4gKwl9LAo+ID4gICAJLmNsa19saXN0CQk9IHNkbTg0NV91ZnNfcGh5 X2Nsa19sLAo+ID4gICAJLm51bV9jbGtzCQk9IEFSUkFZX1NJWkUoc2RtODQ1X3Vmc19waHlfY2xr X2wpLAo+ID4gICAJLnZyZWdfbGlzdAkJPSBxbXBfcGh5X3ZyZWdfbCwKPiA+IEBAIC03NzYsMTQg Kzc5MSwxNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfY2ZnIHNtODM1MF91ZnNwaHlf Y2ZnID0gewo+ID4gICBzdGF0aWMgY29uc3Qgc3RydWN0IHFtcF9waHlfY2ZnIHNtODQ1MF91ZnNw aHlfY2ZnID0gewo+ID4gICAJLmxhbmVzCQkJPSAyLAo+ID4gLQkuc2VyZGVzX3RibAkJPSBzbTgz NTBfdWZzcGh5X3NlcmRlc190YmwsCj4gPiAtCS5zZXJkZXNfdGJsX251bQkJPSBBUlJBWV9TSVpF KHNtODM1MF91ZnNwaHlfc2VyZGVzX3RibCksCj4gPiAtCS50eF90YmwJCQk9IHNtODM1MF91ZnNw aHlfdHhfdGJsLAo+ID4gLQkudHhfdGJsX251bQkJPSBBUlJBWV9TSVpFKHNtODM1MF91ZnNwaHlf dHhfdGJsKSwKPiA+IC0JLnJ4X3RibAkJCT0gc204MzUwX3Vmc3BoeV9yeF90YmwsCj4gPiAtCS5y eF90YmxfbnVtCQk9IEFSUkFZX1NJWkUoc204MzUwX3Vmc3BoeV9yeF90YmwpLAo+ID4gLQkucGNz X3RibAkJPSBzbTgzNTBfdWZzcGh5X3Bjc190YmwsCj4gPiAtCS5wY3NfdGJsX251bQkJPSBBUlJB WV9TSVpFKHNtODM1MF91ZnNwaHlfcGNzX3RibCksCj4gPiArCS50YWJsZXMgPSB7Cj4gPiArCQku c2VyZGVzCQk9IHNtODM1MF91ZnNwaHlfc2VyZGVzLAo+ID4gKwkJLnNlcmRlc19udW0JPSBBUlJB WV9TSVpFKHNtODM1MF91ZnNwaHlfc2VyZGVzKSwKPiA+ICsJCS50eAkJPSBzbTgzNTBfdWZzcGh5 X3R4LAo+ID4gKwkJLnR4X251bQkJPSBBUlJBWV9TSVpFKHNtODM1MF91ZnNwaHlfdHgpLAo+ID4g KwkJLnJ4CQk9IHNtODM1MF91ZnNwaHlfcngsCj4gPiArCQkucnhfbnVtCQk9IEFSUkFZX1NJWkUo c204MzUwX3Vmc3BoeV9yeCksCj4gPiArCQkucGNzCQk9IHNtODM1MF91ZnNwaHlfcGNzLAo+ID4g KwkJLnBjc19udW0JPSBBUlJBWV9TSVpFKHNtODM1MF91ZnNwaHlfcGNzKSwKPiA+ICsJfSwKPiA+ ICAgCS5jbGtfbGlzdAkJPSBzbTg0NTBfdWZzX3BoeV9jbGtfbCwKPiA+ICAgCS5udW1fY2xrcwkJ PSBBUlJBWV9TSVpFKHNtODQ1MF91ZnNfcGh5X2Nsa19sKSwKPiA+ICAgCS52cmVnX2xpc3QJCT0g cW1wX3BoeV92cmVnX2wsCj4gPiBAQCAtODI2LDE2ICs4NDMsNDMgQEAgc3RhdGljIHZvaWQgcW1w X3Vmc19jb25maWd1cmUodm9pZCBfX2lvbWVtICpiYXNlLAo+ID4gICAJcW1wX3Vmc19jb25maWd1 cmVfbGFuZShiYXNlLCByZWdzLCB0YmwsIG51bSwgMHhmZik7Cj4gPiAgIH0KPiA+IC1zdGF0aWMg aW50IHFtcF91ZnNfc2VyZGVzX2luaXQoc3RydWN0IHFtcF9waHkgKnFwaHkpCj4gPiArc3RhdGlj IHZvaWQgcW1wX3Vmc19zZXJkZXNfaW5pdChzdHJ1Y3QgcW1wX3BoeSAqcXBoeSwgY29uc3Qgc3Ry dWN0IHFtcF9waHlfY2ZnX3RhYmxlcyAqdGFibGVzKQo+ID4gICB7Cj4gPiAgIAljb25zdCBzdHJ1 Y3QgcW1wX3BoeV9jZmcgKmNmZyA9IHFwaHktPmNmZzsKPiA+ICAgCXZvaWQgX19pb21lbSAqc2Vy ZGVzID0gcXBoeS0+c2VyZGVzOwo+ID4gLQljb25zdCBzdHJ1Y3QgcW1wX3BoeV9pbml0X3RibCAq c2VyZGVzX3RibCA9IGNmZy0+c2VyZGVzX3RibDsKPiA+IC0JaW50IHNlcmRlc190YmxfbnVtID0g Y2ZnLT5zZXJkZXNfdGJsX251bTsKPiA+IC0JcW1wX3Vmc19jb25maWd1cmUoc2VyZGVzLCBjZmct PnJlZ3MsIHNlcmRlc190YmwsIHNlcmRlc190YmxfbnVtKTsKPiA+ICsJaWYgKCF0YWJsZXMpCj4g PiArCQlyZXR1cm47Cj4gPiAtCXJldHVybiAwOwo+ID4gKwlxbXBfdWZzX2NvbmZpZ3VyZShzZXJk ZXMsIGNmZy0+cmVncywgdGFibGVzLT5zZXJkZXMsIHRhYmxlcy0+c2VyZGVzX251bSk7Cj4gPiAr fQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHFtcF91ZnNfbGFuZXNfaW5pdChzdHJ1Y3QgcW1wX3Bo eSAqcXBoeSwgY29uc3Qgc3RydWN0IHFtcF9waHlfY2ZnX3RhYmxlcyAqdGFibGVzKQo+ID4gK3sK PiA+ICsJY29uc3Qgc3RydWN0IHFtcF9waHlfY2ZnICpjZmcgPSBxcGh5LT5jZmc7Cj4gPiArCXZv aWQgX19pb21lbSAqdHggPSBxcGh5LT50eDsKPiA+ICsJdm9pZCBfX2lvbWVtICpyeCA9IHFwaHkt PnJ4Owo+ID4gKwo+ID4gKwlxbXBfdWZzX2NvbmZpZ3VyZV9sYW5lKHR4LCBjZmctPnJlZ3MsIHRh Ymxlcy0+dHgsIHRhYmxlcy0+dHhfbnVtLCAxKTsKPiA+ICsKPiA+ICsJaWYgKGNmZy0+bGFuZXMg Pj0gMikKPiA+ICsJCXFtcF91ZnNfY29uZmlndXJlX2xhbmUocXBoeS0+dHgyLCBjZmctPnJlZ3Ms IHRhYmxlcy0+dHgsIHRhYmxlcy0+dHhfbnVtLCAyKTsKPiA+ICsKPiA+ICsJcW1wX3Vmc19jb25m aWd1cmVfbGFuZShyeCwgY2ZnLT5yZWdzLCB0YWJsZXMtPnJ4LCB0YWJsZXMtPnJ4X251bSwgMSk7 Cj4gPiArCj4gPiArCWlmIChjZmctPmxhbmVzID49IDIpCj4gPiArCQlxbXBfdWZzX2NvbmZpZ3Vy ZV9sYW5lKHFwaHktPnJ4MiwgY2ZnLT5yZWdzLCB0YWJsZXMtPnJ4LCB0YWJsZXMtPnJ4X251bSwg Mik7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHFtcF91ZnNfcGNzX2luaXQoc3RydWN0 IHFtcF9waHkgKnFwaHksIGNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZ190YWJsZXMgKnRhYmxlcykK PiA+ICt7Cj4gPiArCWNvbnN0IHN0cnVjdCBxbXBfcGh5X2NmZyAqY2ZnID0gcXBoeS0+Y2ZnOwo+ ID4gKwl2b2lkIF9faW9tZW0gKnBjcyA9IHFwaHktPnBjczsKPiA+ICsKPiA+ICsJaWYgKCF0YWJs ZXMpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCXFtcF91ZnNfY29uZmlndXJlKHBjcywgY2Zn LT5yZWdzLCB0YWJsZXMtPnBjcywgdGFibGVzLT5wY3NfbnVtKTsKPiA+ICAgfQo+ID4gICBzdGF0 aWMgaW50IHFtcF91ZnNfY29tX2luaXQoc3RydWN0IHFtcF9waHkgKnFwaHkpCj4gPiBAQCAtOTMz LDMxICs5NzcsMTYgQEAgc3RhdGljIGludCBxbXBfdWZzX3Bvd2VyX29uKHN0cnVjdCBwaHkgKnBo eSkKPiA+ICAgCXN0cnVjdCBxbXBfcGh5ICpxcGh5ID0gcGh5X2dldF9kcnZkYXRhKHBoeSk7Cj4g PiAgIAlzdHJ1Y3QgcWNvbV9xbXAgKnFtcCA9IHFwaHktPnFtcDsKPiA+ICAgCWNvbnN0IHN0cnVj dCBxbXBfcGh5X2NmZyAqY2ZnID0gcXBoeS0+Y2ZnOwo+ID4gLQl2b2lkIF9faW9tZW0gKnR4ID0g cXBoeS0+dHg7Cj4gPiAtCXZvaWQgX19pb21lbSAqcnggPSBxcGh5LT5yeDsKPiA+ICAgCXZvaWQg X19pb21lbSAqcGNzID0gcXBoeS0+cGNzOwo+ID4gICAJdm9pZCBfX2lvbWVtICpzdGF0dXM7Cj4g PiAgIAl1bnNpZ25lZCBpbnQgbWFzaywgdmFsLCByZWFkeTsKPiA+ICAgCWludCByZXQ7Cj4gPiAt CXFtcF91ZnNfc2VyZGVzX2luaXQocXBoeSk7Cj4gPiAtCj4gPiAtCS8qIFR4LCBSeCwgYW5kIFBD UyBjb25maWd1cmF0aW9ucyAqLwo+ID4gLQlxbXBfdWZzX2NvbmZpZ3VyZV9sYW5lKHR4LCBjZmct PnJlZ3MsIGNmZy0+dHhfdGJsLCBjZmctPnR4X3RibF9udW0sIDEpOwo+ID4gKwlxbXBfdWZzX3Nl cmRlc19pbml0KHFwaHksICZjZmctPnRhYmxlcyk7Cj4gPiAtCWlmIChjZmctPmxhbmVzID49IDIp IHsKPiA+IC0JCXFtcF91ZnNfY29uZmlndXJlX2xhbmUocXBoeS0+dHgyLCBjZmctPnJlZ3MsCj4g PiAtCQkJCQljZmctPnR4X3RibCwgY2ZnLT50eF90YmxfbnVtLCAyKTsKPiA+IC0JfQo+ID4gLQo+ ID4gLQlxbXBfdWZzX2NvbmZpZ3VyZV9sYW5lKHJ4LCBjZmctPnJlZ3MsIGNmZy0+cnhfdGJsLCBj ZmctPnJ4X3RibF9udW0sIDEpOwo+ID4gLQo+ID4gLQlpZiAoY2ZnLT5sYW5lcyA+PSAyKSB7Cj4g PiAtCQlxbXBfdWZzX2NvbmZpZ3VyZV9sYW5lKHFwaHktPnJ4MiwgY2ZnLT5yZWdzLAo+ID4gLQkJ CQkJY2ZnLT5yeF90YmwsIGNmZy0+cnhfdGJsX251bSwgMik7Cj4gPiAtCX0KPiA+ICsJcW1wX3Vm c19sYW5lc19pbml0KHFwaHksICZjZmctPnRhYmxlcyk7Cj4gPiAtCXFtcF91ZnNfY29uZmlndXJl KHBjcywgY2ZnLT5yZWdzLCBjZmctPnBjc190YmwsIGNmZy0+cGNzX3RibF9udW0pOwo+ID4gKwlx bXBfdWZzX3Bjc19pbml0KHFwaHksICZjZmctPnRhYmxlcyk7Cj4gCj4gSSdkIHN1Z2dlc3QgZ29p bmcgc3RyYWlnaHQgdG8gcW1wX3Vmc19pbml0X3JlZ2lzdGVycywgd2hpY2ggd291bGQgY29udGFp bgo+IGJvdGggc2VyZGVzLCBsYW5lcyBhbmQgcGNzIGluaXRzLgo+IAoKVGhhdCBhZGRzIG9uZSBt b3JlIGxldmVsIG9mIGluZGlyZWN0aW9uIHdoaWNoIG1heSBub3QgYmUgbmVlZGVkIGhlcmUuIE1v cmVvdmVyLApJJ20gdHJ5aW5nIHRvIGJlIGluIHN5bmMgd2l0aCBvdGhlciBxbXAgZHJpdmVycywg c3BlY2lmaWNhbGx5IHRoZSBwY2llIG9uZS4KVGhpcyBoZWxwcyBpbiB3b3JraW5nIHdpdGggdGhl c2UgZHJpdmVycy4KClRoYW5rcywKTWFuaQoKPiA+ICAgCXJldCA9IHJlc2V0X2NvbnRyb2xfZGVh c3NlcnQocW1wLT51ZnNfcmVzZXQpOwo+ID4gICAJaWYgKHJldCkKPiAKPiAtLSAKPiBXaXRoIGJl c3Qgd2lzaGVzCj4gRG1pdHJ5Cj4gCgotLSAK4K6u4K6j4K6/4K614K6j4K+N4K6j4K6p4K+NIOCu muCupOCuvuCumuCuv+CuteCuruCvjQoKLS0gCmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGludXgt cGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cHM6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtcGh5Cg==