From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v2] drm/rockchip: Refactor the component match logic. Date: Tue, 14 Mar 2017 11:37:06 -0400 Message-ID: <20170314153706.GZ20329@art_vandelay> References: <1489488349-3053-1-git-send-email-jeffy.chen@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1489488349-3053-1-git-send-email-jeffy.chen@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jeffy Chen Cc: linux-kernel@vger.kernel.org, Brian Norris , Douglas Anderson , dri-devel@lists.freedesktop.org, Tomasz Figa , linux-rockchip@lists.infradead.org, Guenter Roeck , linux-arm-kernel@lists.infradead.org List-Id: linux-rockchip.vger.kernel.org T24gVHVlLCBNYXIgMTQsIDIwMTcgYXQgMDY6NDU6NDlQTSArMDgwMCwgSmVmZnkgQ2hlbiB3cm90 ZToKPiBDdXJyZW50bHkgd2UgYXJlIGFkZGluZyBhbGwgY29tcG9uZW50cyBmcm9tIHRoZSBkdHMs IGlmIG9uZSBvZiB0aGVpcgo+IGRyaXZlcnMgYmVlbiBkaXNhYmxlZCwgd2Ugd291bGQgbm90IGJl IGFibGUgdG8gYnJpbmcgdXAgb3RoZXJzLgo+IAo+IFJlZmFjdG9yIGNvbXBvbmVudCBtYXRjaCBs b2dpYywgZm9sbG93IGV4eW5vcyBkcm0uCj4gCj4gU2lnbmVkLW9mZi1ieTogSmVmZnkgQ2hlbiA8 amVmZnkuY2hlbkByb2NrLWNoaXBzLmNvbT4KClRoYW5rcyBmb3IgcmV2aXNpbmcgdGhlIHBhdGNo LCB0aGlzIGxvb2tzIHJlYXNvbmFibGUgdG8gbWUuIAoKTm93IHRoYXQgdGhlcmUgYXJlIDIgZHJp dmVycyB1c2luZyB0aGlzIG1ldGhvZCBvZiBkaXNjb3ZlcnksIGl0J3MgcHJvYmFibHkKd29ydGgg bG9va2luZyBhdCB3aGV0aGVyIHdlIGNhbiBhYnN0cmFjdCBzb21lIG9mIHRoaXMgaW50byB0aGUg bWlkbGF5ZXIgdG8Kc2hhcmUgY29kZSBhcyB3ZWxsIGFzIHByb3ZpZGUgaGVscGVycyBmb3Igb3Ro ZXIgZHJpdmVycy4KCklmIE1hcmsgZG9lc24ndCBoYXZlIGFueSBvYmplY3Rpb25zLCBJJ2xsIGFw cGx5IHRoaXMgdG8gZHJtLW1pc2MgaW4gYSBmZXcgZGF5cy4KClNlYW4KCj4gCj4gLS0tCj4gCj4g IGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnICAgICAgICAgICAgICAgIHwgIDEwICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgIDE2 ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvYW5hbG9naXhfZHAtcm9ja2NoaXAuYyB8 ICAgOSArLQo+ICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvY2RuLWRwLWNvcmUuYyAgICAgICAg ICB8ICAgOCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2kuYyAgICAg ICAgICB8ICAgOCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hp cC5jICAgICB8ICAxMCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvaW5ub19oZG1pLmMg ICAgICAgICAgICB8ICAxMCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf ZHJtX2Rydi5jICAgICB8IDE2MiArKysrKysrKysrKysrKysrKy0tLS0tLS0KPiAgZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuaCAgICAgfCAgMTYgKysrCj4gIGRyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMgICAgIHwgICA4ICstCj4gIDEw IGZpbGVzIGNoYW5nZWQsIDE0OSBpbnNlcnRpb25zKCspLCAxMDggZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnIGIvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL0tjb25maWcKPiBpbmRleCAwZTRlYjg0Li41MGM0MWMwIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL0tjb25maWcKPiBAQCAtMTMsNyArMTMsNyBAQCBjb25maWcgRFJNX1JP Q0tDSElQCj4gIAkgIElQIGZvdW5kIG9uIHRoZSBTb0MuCj4gIAo+ICBjb25maWcgUk9DS0NISVBf QU5BTE9HSVhfRFAKPiAtCXRyaXN0YXRlICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNpb25zIGZv ciBBbmFsb2dpeCBEUCBkcml2ZXIiCj4gKwlib29sICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNp b25zIGZvciBBbmFsb2dpeCBEUCBkcml2ZXIiCj4gIAlkZXBlbmRzIG9uIERSTV9ST0NLQ0hJUAo+ ICAJc2VsZWN0IERSTV9BTkFMT0dJWF9EUAo+ICAJaGVscAo+IEBAIC0yMiw3ICsyMiw3IEBAIGNv bmZpZyBST0NLQ0hJUF9BTkFMT0dJWF9EUAo+ICAJICBvbiBSSzMyODggYmFzZWQgU29DLCB5b3Ug c2hvdWxkIHNlbGV0IHRoaXMgb3B0aW9uLgo+ICAKPiAgY29uZmlnIFJPQ0tDSElQX0NETl9EUAo+ IC0gICAgICAgIHRyaXN0YXRlICJSb2NrY2hpcCBjZG4gRFAiCj4gKyAgICAgICAgYm9vbCAiUm9j a2NoaXAgY2RuIERQIgo+ICAgICAgICAgIGRlcGVuZHMgb24gRFJNX1JPQ0tDSElQCj4gIAlkZXBl bmRzIG9uIEVYVENPTgo+ICAJc2VsZWN0IFNORF9TT0NfSERNSV9DT0RFQyBpZiBTTkRfU09DCj4g QEAgLTMzLDcgKzMzLDcgQEAgY29uZmlnIFJPQ0tDSElQX0NETl9EUAo+ICAJICBvcHRpb24uCj4g IAo+ICBjb25maWcgUk9DS0NISVBfRFdfSERNSQo+IC0gICAgICAgIHRyaXN0YXRlICJSb2NrY2hp cCBzcGVjaWZpYyBleHRlbnNpb25zIGZvciBTeW5vcHN5cyBEVyBIRE1JIgo+ICsgICAgICAgIGJv b2wgIlJvY2tjaGlwIHNwZWNpZmljIGV4dGVuc2lvbnMgZm9yIFN5bm9wc3lzIERXIEhETUkiCj4g ICAgICAgICAgZGVwZW5kcyBvbiBEUk1fUk9DS0NISVAKPiAgICAgICAgICBzZWxlY3QgRFJNX0RX X0hETUkKPiAgICAgICAgICBoZWxwCj4gQEAgLTQzLDcgKzQzLDcgQEAgY29uZmlnIFJPQ0tDSElQ X0RXX0hETUkKPiAgCSAgb3B0aW9uLgo+ICAKPiAgY29uZmlnIFJPQ0tDSElQX0RXX01JUElfRFNJ Cj4gLQl0cmlzdGF0ZSAiUm9ja2NoaXAgc3BlY2lmaWMgZXh0ZW5zaW9ucyBmb3IgU3lub3BzeXMg RFcgTUlQSSBEU0kiCj4gKwlib29sICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNpb25zIGZvciBT eW5vcHN5cyBEVyBNSVBJIERTSSIKPiAgCWRlcGVuZHMgb24gRFJNX1JPQ0tDSElQCj4gIAlzZWxl Y3QgRFJNX01JUElfRFNJCj4gIAloZWxwCj4gQEAgLTUzLDcgKzUzLDcgQEAgY29uZmlnIFJPQ0tD SElQX0RXX01JUElfRFNJCj4gIAkgb3B0aW9uLgo+ICAKPiAgY29uZmlnIFJPQ0tDSElQX0lOTk9f SERNSQo+IC0JdHJpc3RhdGUgIlJvY2tjaGlwIHNwZWNpZmljIGV4dGVuc2lvbnMgZm9yIElubm9z aWxpY29uIEhETUkiCj4gKwlib29sICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNpb25zIGZvciBJ bm5vc2lsaWNvbiBIRE1JIgo+ICAJZGVwZW5kcyBvbiBEUk1fUk9DS0NISVAKPiAgCWhlbHAKPiAg CSAgVGhpcyBzZWxlY3RzIHN1cHBvcnQgZm9yIFJvY2tjaGlwIFNvQyBzcGVjaWZpYyBleHRlbnNp b25zCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9NYWtlZmlsZQo+IGluZGV4IGM5MzFlMmEuLmZhOGRjOWQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL01ha2VmaWxlCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL01ha2VmaWxlCj4gQEAgLTMsMTQgKzMsMTQgQEAKPiAg IyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAg YW5kIGhpZ2hlci4KPiAgCj4gIHJvY2tjaGlwZHJtLXkgOj0gcm9ja2NoaXBfZHJtX2Rydi5vIHJv Y2tjaGlwX2RybV9mYi5vIFwKPiAtCQlyb2NrY2hpcF9kcm1fZ2VtLm8gcm9ja2NoaXBfZHJtX3Bz ci5vIHJvY2tjaGlwX2RybV92b3Aubwo+ICsJCXJvY2tjaGlwX2RybV9nZW0ubyByb2NrY2hpcF9k cm1fcHNyLm8gXAo+ICsJCXJvY2tjaGlwX2RybV92b3AubyByb2NrY2hpcF92b3BfcmVnLm8KPiAg cm9ja2NoaXBkcm0tJChDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTikgKz0gcm9ja2NoaXBfZHJt X2ZiZGV2Lm8KPiAgCj4gLW9iai0kKENPTkZJR19ST0NLQ0hJUF9BTkFMT0dJWF9EUCkgKz0gYW5h bG9naXhfZHAtcm9ja2NoaXAubwo+IC1vYmotJChDT05GSUdfUk9DS0NISVBfQ0ROX0RQKSArPSBj ZG4tZHAubwo+IC1jZG4tZHAtb2JqcyA6PSBjZG4tZHAtY29yZS5vIGNkbi1kcC1yZWcubwo+IC1v YmotJChDT05GSUdfUk9DS0NISVBfRFdfSERNSSkgKz0gZHdfaGRtaS1yb2NrY2hpcC5vCj4gLW9i ai0kKENPTkZJR19ST0NLQ0hJUF9EV19NSVBJX0RTSSkgKz0gZHctbWlwaS1kc2kubwo+IC1vYmot JChDT05GSUdfUk9DS0NISVBfSU5OT19IRE1JKSArPSBpbm5vX2hkbWkubwo+ICtyb2NrY2hpcGRy bS0kKENPTkZJR19ST0NLQ0hJUF9BTkFMT0dJWF9EUCkgKz0gYW5hbG9naXhfZHAtcm9ja2NoaXAu bwo+ICtyb2NrY2hpcGRybS0kKENPTkZJR19ST0NLQ0hJUF9DRE5fRFApICs9IGNkbi1kcC1jb3Jl Lm8gY2RuLWRwLXJlZy5vCj4gK3JvY2tjaGlwZHJtLSQoQ09ORklHX1JPQ0tDSElQX0RXX0hETUkp ICs9IGR3X2hkbWktcm9ja2NoaXAubwo+ICtyb2NrY2hpcGRybS0kKENPTkZJR19ST0NLQ0hJUF9E V19NSVBJX0RTSSkgKz0gZHctbWlwaS1kc2kubwo+ICtyb2NrY2hpcGRybS0kKENPTkZJR19ST0NL Q0hJUF9JTk5PX0hETUkpICs9IGlubm9faGRtaS5vCj4gIAo+IC1vYmotJChDT05GSUdfRFJNX1JP Q0tDSElQKSArPSByb2NrY2hpcGRybS5vIHJvY2tjaGlwX3ZvcF9yZWcubwo+ICtvYmotJChDT05G SUdfRFJNX1JPQ0tDSElQKSArPSByb2NrY2hpcGRybS5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9hbmFsb2dpeF9kcC1yb2NrY2hpcC5jIGIvZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKPiBpbmRleCA4NTQ4ZTgyLi45MWViZTVj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9hbmFsb2dpeF9kcC1yb2Nr Y2hpcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tj aGlwLmMKPiBAQCAtNTA3LDcgKzUwNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNl X2lkIHJvY2tjaGlwX2RwX2R0X2lkc1tdID0gewo+ICB9Owo+ICBNT0RVTEVfREVWSUNFX1RBQkxF KG9mLCByb2NrY2hpcF9kcF9kdF9pZHMpOwo+ICAKPiAtc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9k cml2ZXIgcm9ja2NoaXBfZHBfZHJpdmVyID0gewo+ICtzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHJv Y2tjaGlwX2RwX2RyaXZlciA9IHsKPiAgCS5wcm9iZSA9IHJvY2tjaGlwX2RwX3Byb2JlLAo+ICAJ LnJlbW92ZSA9IHJvY2tjaGlwX2RwX3JlbW92ZSwKPiAgCS5kcml2ZXIgPSB7Cj4gQEAgLTUxNiwx MCArNTE2LDMgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcm9ja2NoaXBfZHBfZHJp dmVyID0gewo+ICAJCSAgIC5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX3B0cihyb2NrY2hpcF9k cF9kdF9pZHMpLAo+ICAJfSwKPiAgfTsKPiAtCj4gLW1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIocm9j a2NoaXBfZHBfZHJpdmVyKTsKPiAtCj4gLU1PRFVMRV9BVVRIT1IoIllha2lyIFlhbmcgPHlra0By b2NrLWNoaXBzLmNvbT4iKTsKPiAtTU9EVUxFX0FVVEhPUigiSmVmZiBjaGVuIDxqZWZmLmNoZW5A cm9jay1jaGlwcy5jb20+Iik7Cj4gLU1PRFVMRV9ERVNDUklQVElPTigiUm9ja2NoaXAgU3BlY2lm aWMgQW5hbG9naXgtRFAgRHJpdmVyIEV4dGVuc2lvbiIpOwo+IC1NT0RVTEVfTElDRU5TRSgiR1BM IHYyIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9jZG4tZHAtY29y ZS5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMKPiBpbmRleCBmZDc5 YTcwLi5lMTc5NmQwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9jZG4t ZHAtY29yZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMK PiBAQCAtMTI0Myw3ICsxMjQzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGNk bl9kcF9wbV9vcHMgPSB7Cj4gIAkJCQljZG5fZHBfcmVzdW1lKQo+ICB9Owo+ICAKPiAtc3RhdGlj IHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2RuX2RwX2RyaXZlciA9IHsKPiArc3RydWN0IHBsYXRm b3JtX2RyaXZlciBjZG5fZHBfZHJpdmVyID0gewo+ICAJLnByb2JlID0gY2RuX2RwX3Byb2JlLAo+ ICAJLnJlbW92ZSA9IGNkbl9kcF9yZW1vdmUsCj4gIAkuc2h1dGRvd24gPSBjZG5fZHBfc2h1dGRv d24sCj4gQEAgLTEyNTQsOSArMTI1NCwzIEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVy IGNkbl9kcF9kcml2ZXIgPSB7Cj4gIAkJICAgLnBtID0gJmNkbl9kcF9wbV9vcHMsCj4gIAl9LAo+ ICB9Owo+IC0KPiAtbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihjZG5fZHBfZHJpdmVyKTsKPiAtCj4g LU1PRFVMRV9BVVRIT1IoIkNocmlzIFpob25nIDx6eXdAcm9jay1jaGlwcy5jb20+Iik7Cj4gLU1P RFVMRV9ERVNDUklQVElPTigiY2RuIERQIERyaXZlciIpOwo+IC1NT0RVTEVfTElDRU5TRSgiR1BM IHYyIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRz aS5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKPiBpbmRleCBkOWFh MzgyLi42NWE0NzRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1t aXBpLWRzaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMK PiBAQCAtMTE2NSw3ICsxMTY1LDcgQEAgc3RhdGljIGludCBkd19taXBpX2RzaV9yZW1vdmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0 aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBkd19taXBpX2RzaV9kcml2ZXIgPSB7Cj4gK3N0cnVj dCBwbGF0Zm9ybV9kcml2ZXIgZHdfbWlwaV9kc2lfZHJpdmVyID0gewo+ICAJLnByb2JlCQk9IGR3 X21pcGlfZHNpX3Byb2JlLAo+ICAJLnJlbW92ZQkJPSBkd19taXBpX2RzaV9yZW1vdmUsCj4gIAku ZHJpdmVyCQk9IHsKPiBAQCAtMTE3Myw5ICsxMTczLDMgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9y bV9kcml2ZXIgZHdfbWlwaV9kc2lfZHJpdmVyID0gewo+ICAJCS5uYW1lCT0gRFJJVkVSX05BTUUs Cj4gIAl9LAo+ICB9Owo+IC1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGR3X21pcGlfZHNpX2RyaXZl cik7Cj4gLQo+IC1NT0RVTEVfREVTQ1JJUFRJT04oIlJPQ0tDSElQIE1JUEkgRFNJIGhvc3QgY29u dHJvbGxlciBkcml2ZXIiKTsKPiAtTU9EVUxFX0FVVEhPUigiQ2hyaXMgWmhvbmcgPHp5d0Byb2Nr LWNoaXBzLmNvbT4iKTsKPiAtTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwo+IC1NT0RVTEVfQUxJQVMo InBsYXRmb3JtOiIgRFJJVkVSX05BTUUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3 X2hkbWktcm9ja2NoaXAuYwo+IGluZGV4IGE2ZDRhMDIuLjk3NmVhNzkgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9kd19oZG1pLXJvY2tjaGlwLmMKPiBAQCAtMzI2LDcgKzMyNiw3 IEBAIHN0YXRpYyBpbnQgZHdfaGRtaV9yb2NrY2hpcF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0IHBsYXRm b3JtX2RyaXZlciBkd19oZG1pX3JvY2tjaGlwX3BsdGZtX2RyaXZlciA9IHsKPiArc3RydWN0IHBs YXRmb3JtX2RyaXZlciBkd19oZG1pX3JvY2tjaGlwX3BsdGZtX2RyaXZlciA9IHsKPiAgCS5wcm9i ZSAgPSBkd19oZG1pX3JvY2tjaGlwX3Byb2JlLAo+ICAJLnJlbW92ZSA9IGR3X2hkbWlfcm9ja2No aXBfcmVtb3ZlLAo+ICAJLmRyaXZlciA9IHsKPiBAQCAtMzM0LDExICszMzQsMyBAQCBzdGF0aWMg c3RydWN0IHBsYXRmb3JtX2RyaXZlciBkd19oZG1pX3JvY2tjaGlwX3BsdGZtX2RyaXZlciA9IHsK PiAgCQkub2ZfbWF0Y2hfdGFibGUgPSBkd19oZG1pX3JvY2tjaGlwX2R0X2lkcywKPiAgCX0sCj4g IH07Cj4gLQo+IC1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGR3X2hkbWlfcm9ja2NoaXBfcGx0Zm1f ZHJpdmVyKTsKPiAtCj4gLU1PRFVMRV9BVVRIT1IoIkFuZHkgWWFuIDxhbmR5LnlhbkByb2NrLWNo aXBzLmNvbT4iKTsKPiAtTU9EVUxFX0FVVEhPUigiWWFraXIgWWFuZyA8eWtrQHJvY2stY2hpcHMu Y29tPiIpOwo+IC1NT0RVTEVfREVTQ1JJUFRJT04oIlJvY2tjaGlwIFNwZWNpZmljIERXLUhETUkg RHJpdmVyIEV4dGVuc2lvbiIpOwo+IC1NT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4gLU1PRFVMRV9B TElBUygicGxhdGZvcm06ZHdoZG1pLXJvY2tjaGlwIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9p bm5vX2hkbWkuYwo+IGluZGV4IDAwNjI2MGQuLjdkOWI3NWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL2lubm9faGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL2lubm9faGRtaS5jCj4gQEAgLTkyMyw3ICs5MjMsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IG9mX2RldmljZV9pZCBpbm5vX2hkbWlfZHRfaWRzW10gPSB7Cj4gIH07Cj4gIE1PRFVMRV9E RVZJQ0VfVEFCTEUob2YsIGlubm9faGRtaV9kdF9pZHMpOwo+ICAKPiAtc3RhdGljIHN0cnVjdCBw bGF0Zm9ybV9kcml2ZXIgaW5ub19oZG1pX2RyaXZlciA9IHsKPiArc3RydWN0IHBsYXRmb3JtX2Ry aXZlciBpbm5vX2hkbWlfZHJpdmVyID0gewo+ICAJLnByb2JlICA9IGlubm9faGRtaV9wcm9iZSwK PiAgCS5yZW1vdmUgPSBpbm5vX2hkbWlfcmVtb3ZlLAo+ICAJLmRyaXZlciA9IHsKPiBAQCAtOTMx LDExICs5MzEsMyBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBpbm5vX2hkbWlfZHJp dmVyID0gewo+ICAJCS5vZl9tYXRjaF90YWJsZSA9IGlubm9faGRtaV9kdF9pZHMsCj4gIAl9LAo+ ICB9Owo+IC0KPiAtbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihpbm5vX2hkbWlfZHJpdmVyKTsKPiAt Cj4gLU1PRFVMRV9BVVRIT1IoIlpoZW5nIFlhbmcgPHpoZW5neWFuZ0Byb2NrLWNoaXBzLmNvbT4i KTsKPiAtTU9EVUxFX0FVVEhPUigiWWFraXIgWWFuZyA8eWtrQHJvY2stY2hpcHMuY29tPiIpOwo+ IC1NT0RVTEVfREVTQ1JJUFRJT04oIlJvY2tjaGlwIFNwZWNpZmljIElOTk8tSERNSSBEcml2ZXIi KTsKPiAtTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwo+IC1NT0RVTEVfQUxJQVMoInBsYXRmb3Jt Omlubm9oZG1pLXJvY2tjaGlwIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZHJtX2Rydi5jCj4gaW5kZXggYjM2MGU2Mi4uYjZiY2NmYyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuYwo+IEBAIC0zNTYsMzQgKzM1Niw1MiBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgcm9ja2NoaXBfZHJtX3BtX29wcyA9IHsK PiAgCQkJCXJvY2tjaGlwX2RybV9zeXNfcmVzdW1lKQo+ICB9Owo+ICAKPiAtc3RhdGljIGludCBj b21wYXJlX29mKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKPiAtewo+IC0Jc3RydWN0 IGRldmljZV9ub2RlICpucCA9IGRhdGE7Cj4gK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVy ICpyb2NrY2hpcF9kcm1fY29tcF9kcnZzW10gPSB7Cj4gKwkmdm9wX3BsYXRmb3JtX2RyaXZlciwK PiArI2lmZGVmIENPTkZJR19ST0NLQ0hJUF9BTkFMT0dJWF9EUAo+ICsJJnJvY2tjaGlwX2RwX2Ry aXZlciwKPiArI2VuZGlmCj4gKyNpZmRlZiBDT05GSUdfUk9DS0NISVBfQ0ROX0RQCj4gKwkmY2Ru X2RwX2RyaXZlciwKPiArI2VuZGlmCj4gKyNpZmRlZiBDT05GSUdfUk9DS0NISVBfRFdfSERNSQo+ ICsJJmR3X2hkbWlfcm9ja2NoaXBfcGx0Zm1fZHJpdmVyLAo+ICsjZW5kaWYKPiArI2lmZGVmIENP TkZJR19ST0NLQ0hJUF9EV19NSVBJX0RTSQo+ICsJJmR3X21pcGlfZHNpX2RyaXZlciwKPiArI2Vu ZGlmCj4gKyNpZmRlZiBDT05GSUdfUk9DS0NISVBfSU5OT19IRE1JCj4gKwkmaW5ub19oZG1pX2Ry aXZlciwKPiArI2VuZGlmCj4gK307Cj4gIAo+IC0JcmV0dXJuIGRldi0+b2Zfbm9kZSA9PSBucDsK PiArc3RhdGljIGludCBjb21wYXJlX2RldihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEp Cj4gK3sKPiArCXJldHVybiBkZXYgPT0gKHN0cnVjdCBkZXZpY2UgKilkYXRhOwo+ICB9Cj4gIAo+ IC1zdGF0aWMgdm9pZCByb2NrY2hpcF9hZGRfZW5kcG9pbnRzKHN0cnVjdCBkZXZpY2UgKmRldiwK PiAtCQkJCSAgIHN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKiptYXRjaCwKPiAtCQkJCSAgIHN0cnVj dCBkZXZpY2Vfbm9kZSAqcG9ydCkKPiArc3RhdGljIHN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKnJv Y2tjaGlwX2RybV9tYXRjaF9hZGQoc3RydWN0IGRldmljZSAqZGV2KQo+ICB7Cj4gLQlzdHJ1Y3Qg ZGV2aWNlX25vZGUgKmVwLCAqcmVtb3RlOwo+ICsJc3RydWN0IGNvbXBvbmVudF9tYXRjaCAqbWF0 Y2ggPSBOVUxMOwo+ICsJaW50IGk7Cj4gIAo+IC0JZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShwb3J0 LCBlcCkgewo+IC0JCXJlbW90ZSA9IG9mX2dyYXBoX2dldF9yZW1vdGVfcG9ydF9wYXJlbnQoZXAp Owo+IC0JCWlmICghcmVtb3RlIHx8ICFvZl9kZXZpY2VfaXNfYXZhaWxhYmxlKHJlbW90ZSkpIHsK PiAtCQkJb2Zfbm9kZV9wdXQocmVtb3RlKTsKPiAtCQkJY29udGludWU7Cj4gLQkJfSBlbHNlIGlm ICghb2ZfZGV2aWNlX2lzX2F2YWlsYWJsZShyZW1vdGUtPnBhcmVudCkpIHsKPiAtCQkJZGV2X3dh cm4oZGV2LCAicGFyZW50IGRldmljZSBvZiAlcyBpcyBub3QgYXZhaWxhYmxlXG4iLAo+IC0JCQkJ IHJlbW90ZS0+ZnVsbF9uYW1lKTsKPiAtCQkJb2Zfbm9kZV9wdXQocmVtb3RlKTsKPiAtCQkJY29u dGludWU7Cj4gLQkJfQo+ICsJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocm9ja2NoaXBfZHJt X2NvbXBfZHJ2cyk7IGkrKykgewo+ICsJCXN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgKmRydiA9IHJv Y2tjaGlwX2RybV9jb21wX2RydnNbaV07Cj4gKwkJc3RydWN0IGRldmljZSAqcCA9IE5VTEwsICpk Owo+ICAKPiAtCQlkcm1fb2ZfY29tcG9uZW50X21hdGNoX2FkZChkZXYsIG1hdGNoLCBjb21wYXJl X29mLCByZW1vdGUpOwo+IC0JCW9mX25vZGVfcHV0KHJlbW90ZSk7Cj4gKwkJZG8gewo+ICsJCQlk ID0gYnVzX2ZpbmRfZGV2aWNlKCZwbGF0Zm9ybV9idXNfdHlwZSwgcCwgJmRydi0+ZHJpdmVyLAo+ ICsJCQkJCSAgICAodm9pZCAqKXBsYXRmb3JtX2J1c190eXBlLm1hdGNoKTsKPiArCQkJcHV0X2Rl dmljZShwKTsKPiArCQkJcCA9IGQ7Cj4gKwo+ICsJCQlpZiAoIWQpCj4gKwkJCQlicmVhazsKPiAr CQkJY29tcG9uZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9kZXYsIGQpOwo+ICsJ CX0gd2hpbGUgKHRydWUpOwo+ICAJfQo+ICsKPiArCXJldHVybiBtYXRjaCA/OiBFUlJfUFRSKC1F Tk9ERVYpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9tYXN0ZXJf b3BzIHJvY2tjaGlwX2RybV9vcHMgPSB7Cj4gQEAgLTM5MSwyMSArNDA5LDE2IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgY29tcG9uZW50X21hc3Rlcl9vcHMgcm9ja2NoaXBfZHJtX29wcyA9IHsKPiAg CS51bmJpbmQgPSByb2NrY2hpcF9kcm1fdW5iaW5kLAo+ICB9Owo+ICAKPiAtc3RhdGljIGludCBy b2NrY2hpcF9kcm1fcGxhdGZvcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK PiArc3RhdGljIGludCByb2NrY2hpcF9kcm1fcGxhdGZvcm1fb2ZfcHJvYmUoc3RydWN0IGRldmlj ZSAqZGV2KQo+ICB7Cj4gLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+IC0Jc3Ry dWN0IGNvbXBvbmVudF9tYXRjaCAqbWF0Y2ggPSBOVUxMOwo+ICAJc3RydWN0IGRldmljZV9ub2Rl ICpucCA9IGRldi0+b2Zfbm9kZTsKPiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcG9ydDsKPiArCWJv b2wgZm91bmQgPSBmYWxzZTsKPiAgCWludCBpOwo+ICAKPiAgCWlmICghbnApCj4gIAkJcmV0dXJu IC1FTk9ERVY7Cj4gLQkvKgo+IC0JICogQmluZCB0aGUgY3J0YyBwb3J0cyBmaXJzdCwgc28gdGhh dAo+IC0JICogZHJtX29mX2ZpbmRfcG9zc2libGVfY3J0Y3MgY2FsbGVkIGZyb20gZW5jb2RlciAu YmluZCBjYWxsYmFja3MKPiAtCSAqIHdvcmtzIGFzIGV4cGVjdGVkLgo+IC0JICovCj4gKwo+ICAJ Zm9yIChpID0gMDs7IGkrKykgewo+ICAJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqaW9tbXU7Cj4gIAo+ IEBAIC00MjksOSArNDQyLDkgQEAgc3RhdGljIGludCByb2NrY2hpcF9kcm1fcGxhdGZvcm1fcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCQkJaXNfc3VwcG9ydF9pb21tdSA9 IGZhbHNlOwo+ICAJCX0KPiAgCj4gKwkJZm91bmQgPSB0cnVlOwo+ICsKPiAgCQlvZl9ub2RlX3B1 dChpb21tdSk7Cj4gLQkJZHJtX29mX2NvbXBvbmVudF9tYXRjaF9hZGQoZGV2LCAmbWF0Y2gsIGNv bXBhcmVfb2YsCj4gLQkJCQkJICAgcG9ydC0+cGFyZW50KTsKPiAgCQlvZl9ub2RlX3B1dChwb3J0 KTsKPiAgCX0KPiAgCj4gQEAgLTQ0MCwyNyArNDUzLDI3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBf ZHJtX3BsYXRmb3JtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAkJcmV0 dXJuIC1FTk9ERVY7Cj4gIAl9Cj4gIAo+IC0JaWYgKCFtYXRjaCkgewo+ICsJaWYgKCFmb3VuZCkg ewo+ICAJCWRldl9lcnIoZGV2LCAiTm8gYXZhaWxhYmxlIHZvcCBmb3VuZCBmb3IgZGlzcGxheS1z dWJzeXN0ZW0uXG4iKTsKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiAgCX0KPiAtCS8qCj4gLQkgKiBG b3IgZWFjaCBib3VuZCBjcnRjLCBiaW5kIHRoZSBlbmNvZGVycyBhdHRhY2hlZCB0byBpdHMKPiAt CSAqIHJlbW90ZSBlbmRwb2ludC4KPiAtCSAqLwo+IC0JZm9yIChpID0gMDs7IGkrKykgewo+IC0J CXBvcnQgPSBvZl9wYXJzZV9waGFuZGxlKG5wLCAicG9ydHMiLCBpKTsKPiAtCQlpZiAoIXBvcnQp Cj4gLQkJCWJyZWFrOwo+ICAKPiAtCQlpZiAoIW9mX2RldmljZV9pc19hdmFpbGFibGUocG9ydC0+ cGFyZW50KSkgewo+IC0JCQlvZl9ub2RlX3B1dChwb3J0KTsKPiAtCQkJY29udGludWU7Cj4gLQkJ fQo+ICsJcmV0dXJuIDA7Cj4gK30KPiAgCj4gLQkJcm9ja2NoaXBfYWRkX2VuZHBvaW50cyhkZXYs ICZtYXRjaCwgcG9ydCk7Cj4gLQkJb2Zfbm9kZV9wdXQocG9ydCk7Cj4gLQl9Cj4gK3N0YXRpYyBp bnQgcm9ja2NoaXBfZHJtX3BsYXRmb3JtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCj4gK3sKPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gKwlzdHJ1Y3Qg Y29tcG9uZW50X21hdGNoICptYXRjaCA9IE5VTEw7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJldCA9 IHJvY2tjaGlwX2RybV9wbGF0Zm9ybV9vZl9wcm9iZShkZXYpOwo+ICsJaWYgKHJldCkKPiArCQly ZXR1cm4gcmV0Owo+ICsKPiArCW1hdGNoID0gcm9ja2NoaXBfZHJtX21hdGNoX2FkZChkZXYpOwo+ ICsJaWYgKElTX0VSUihtYXRjaCkpCj4gKwkJcmV0dXJuIFBUUl9FUlIobWF0Y2gpOwo+ICAKPiAg CXJldHVybiBjb21wb25lbnRfbWFzdGVyX2FkZF93aXRoX21hdGNoKGRldiwgJnJvY2tjaGlwX2Ry bV9vcHMsIG1hdGNoKTsKPiAgfQo+IEBAIC00ODgsNyArNTAxLDYwIEBAIHN0YXRpYyBzdHJ1Y3Qg cGxhdGZvcm1fZHJpdmVyIHJvY2tjaGlwX2RybV9wbGF0Zm9ybV9kcml2ZXIgPSB7Cj4gIAl9LAo+ ICB9Owo+ICAKPiAtbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihyb2NrY2hpcF9kcm1fcGxhdGZvcm1f ZHJpdmVyKTsKPiArc3RhdGljIHZvaWQgcm9ja2NoaXBfZHJtX3VucmVnaXN0ZXJfZHJpdmVycyh2 b2lkKQo+ICt7Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3IgKGkgPSBBUlJBWV9TSVpFKHJvY2tjaGlw X2RybV9jb21wX2RydnMpIC0gMTsgaSA+PSAwOyBpLS0pCj4gKwkJcGxhdGZvcm1fZHJpdmVyX3Vu cmVnaXN0ZXIocm9ja2NoaXBfZHJtX2NvbXBfZHJ2c1tpXSk7Cj4gK30KPiArCj4gK3N0YXRpYyBp bnQgcm9ja2NoaXBfZHJtX3JlZ2lzdGVyX2RyaXZlcnModm9pZCkKPiArewo+ICsJaW50IGksIHJl dDsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShyb2NrY2hpcF9kcm1fY29tcF9k cnZzKTsgaSsrKSB7Cj4gKwkJcmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKHJvY2tjaGlw X2RybV9jb21wX2RydnNbaV0pOwo+ICsJCWlmIChyZXQpCj4gKwkJCWdvdG8gZXJyX3VucmVnOwo+ ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICsKPiArZXJyX3VucmVnOgo+ICsJZm9yICg7IGktLTsg KQo+ICsJCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKHJvY2tjaGlwX2RybV9jb21wX2RydnNb aV0pOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGludCBfX2luaXQgcm9ja2No aXBfZHJtX2luaXQodm9pZCkKPiArewo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSByb2NrY2hp cF9kcm1fcmVnaXN0ZXJfZHJpdmVycygpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ ICsKPiArCXJldCA9IHBsYXRmb3JtX2RyaXZlcl9yZWdpc3Rlcigmcm9ja2NoaXBfZHJtX3BsYXRm b3JtX2RyaXZlcik7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXJyX3VucmVnX2RyaXZlcnM7Cj4g Kwo+ICsJcmV0dXJuIDA7Cj4gKwo+ICtlcnJfdW5yZWdfZHJpdmVyczoKPiArCXJvY2tjaGlwX2Ry bV91bnJlZ2lzdGVyX2RyaXZlcnMoKTsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRp YyB2b2lkIF9fZXhpdCByb2NrY2hpcF9kcm1fZmluaSh2b2lkKQo+ICt7Cj4gKwlwbGF0Zm9ybV9k cml2ZXJfdW5yZWdpc3Rlcigmcm9ja2NoaXBfZHJtX3BsYXRmb3JtX2RyaXZlcik7Cj4gKwo+ICsJ cm9ja2NoaXBfZHJtX3VucmVnaXN0ZXJfZHJpdmVycygpOwo+ICt9Cj4gKwo+ICttb2R1bGVfaW5p dChyb2NrY2hpcF9kcm1faW5pdCk7Cj4gK21vZHVsZV9leGl0KHJvY2tjaGlwX2RybV9maW5pKTsK PiAgCj4gIE1PRFVMRV9BVVRIT1IoIk1hcmsgWWFvIDxtYXJrLnlhb0Byb2NrLWNoaXBzLmNvbT4i KTsKPiAgTU9EVUxFX0RFU0NSSVBUSU9OKCJST0NLQ0hJUCBEUk0gRHJpdmVyIik7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5oCj4gaW5kZXggYWRjMzkzMC4u OTE4MTJiZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf ZHJtX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9k cnYuaAo+IEBAIC03OSw0ICs3OSwyMCBAQCB2b2lkIHJvY2tjaGlwX2RybV9kbWFfZGV0YWNoX2Rl dmljZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKPiAgaW50IHJvY2tjaGlwX2RybV93YWl0 X2xpbmVfZmxhZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHVuc2lnbmVkIGludCBsaW5lX251bSwK PiAgCQkJCXVuc2lnbmVkIGludCBtc3RpbWVvdXQpOwo+ICAKPiArI2lmZGVmIENPTkZJR19ST0NL Q0hJUF9DRE5fRFAKPiArZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2RuX2RwX2RyaXZl cjsKPiArI2VuZGlmCj4gKyNpZmRlZiBDT05GSUdfUk9DS0NISVBfRFdfSERNSQo+ICtleHRlcm4g c3RydWN0IHBsYXRmb3JtX2RyaXZlciBkd19oZG1pX3JvY2tjaGlwX3BsdGZtX2RyaXZlcjsKPiAr I2VuZGlmCj4gKyNpZmRlZiBDT05GSUdfUk9DS0NISVBfRFdfTUlQSV9EU0kKPiArZXh0ZXJuIHN0 cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHdfbWlwaV9kc2lfZHJpdmVyOwo+ICsjZW5kaWYKPiArI2lm ZGVmIENPTkZJR19ST0NLQ0hJUF9JTk5PX0hETUkKPiArZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9k cml2ZXIgaW5ub19oZG1pX2RyaXZlcjsKPiArI2VuZGlmCj4gKyNpZmRlZiBDT05GSUdfUk9DS0NI SVBfQU5BTE9HSVhfRFAKPiArZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcm9ja2NoaXBf ZHBfZHJpdmVyOwo+ICsjZW5kaWYKPiArZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdm9w X3BsYXRmb3JtX2RyaXZlcjsKPiAgI2VuZGlmIC8qIF9ST0NLQ0hJUF9EUk1fRFJWX0hfICovCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMg Yi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jCj4gaW5kZXggOTFm YmM3Yi4uMGRhNDQ0NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9j a2NoaXBfdm9wX3JlZy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlw X3ZvcF9yZWcuYwo+IEBAIC00MDQsNyArNDA0LDcgQEAgc3RhdGljIGludCB2b3BfcmVtb3ZlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3Rh dGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdm9wX3BsYXRmb3JtX2RyaXZlciA9IHsKPiArc3Ry dWN0IHBsYXRmb3JtX2RyaXZlciB2b3BfcGxhdGZvcm1fZHJpdmVyID0gewo+ICAJLnByb2JlID0g dm9wX3Byb2JlLAo+ICAJLnJlbW92ZSA9IHZvcF9yZW1vdmUsCj4gIAkuZHJpdmVyID0gewo+IEBA IC00MTIsOSArNDEyLDMgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdm9wX3BsYXRm b3JtX2RyaXZlciA9IHsKPiAgCQkub2ZfbWF0Y2hfdGFibGUgPSBvZl9tYXRjaF9wdHIodm9wX2Ry aXZlcl9kdF9tYXRjaCksCj4gIAl9LAo+ICB9Owo+IC0KPiAtbW9kdWxlX3BsYXRmb3JtX2RyaXZl cih2b3BfcGxhdGZvcm1fZHJpdmVyKTsKPiAtCj4gLU1PRFVMRV9BVVRIT1IoIk1hcmsgWWFvIDxt YXJrLnlhb0Byb2NrLWNoaXBzLmNvbT4iKTsKPiAtTU9EVUxFX0RFU0NSSVBUSU9OKCJST0NLQ0hJ UCBWT1AgRHJpdmVyIik7Cj4gLU1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKPiAtLSAKPiAyLjEu NAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK