From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [PATCH 12/24] radeon/audio: consolidate update_acr() functions Date: Wed, 14 Jan 2015 15:55:19 +0100 Message-ID: <54B68357.4030605@vodafone.de> References: <1421171213-23977-1-git-send-email-alexander.deucher@amd.com> <1421171213-23977-13-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id B8DA86E3C7 for ; Wed, 14 Jan 2015 06:55:56 -0800 (PST) In-Reply-To: <1421171213-23977-13-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alex Deucher , dri-devel@lists.freedesktop.org Cc: Alex Deucher , slava.grigorev@amd.com List-Id: dri-devel@lists.freedesktop.org QW0gMTMuMDEuMjAxNSB1bSAxODo0NiBzY2hyaWViIEFsZXggRGV1Y2hlcjoKPiBGcm9tOiBTbGF2 YSBHcmlnb3JldiA8c2xhdmEuZ3JpZ29yZXZAYW1kLmNvbT4KPgo+IFNpZ25lZC1vZmYtYnk6IFNs YXZhIEdyaWdvcmV2IDxzbGF2YS5ncmlnb3JldkBhbWQuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEFs ZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vZGNlM18xX2FmbXQuYyAgICB8ICAzOCArKysrKysrKystLQo+ICAgZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5faGRtaS5jIHwgIDQ2ICsrKysrKy0tLS0tLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9oZG1pLmMgICAgICB8IDExNyArKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fYXVkaW8uYyAgIHwgIDk5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uaCAgIHwgICAzICsKPiAgIDUgZmlsZXMgY2hh bmdlZCwgMTc2IGluc2VydGlvbnMoKyksIDEyNyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2RjZTNfMV9hZm10LmMgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL2RjZTNfMV9hZm10LmMKPiBpbmRleCAwYWNjYzVlLi42Nzg5MDlmIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZGNlM18xX2FmbXQuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vZGNlM18xX2FmbXQuYwo+IEBAIC0xNjcsNiArMTY3LDM4IEBAIHZvaWQg ZGNlM18yX2F1ZGlvX3NldF9kdG8oc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJfQo+ ICAgfQo+ICAgCj4gK3ZvaWQgZGNlM18yX2hkbWlfdXBkYXRlX2FjcihzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsIGxvbmcgb2Zmc2V0LAo+ICsgICAgY29uc3Qgc3RydWN0IHJhZGVvbl9oZG1p X2FjciAqYWNyKQo+ICt7Cj4gKyAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ ZGV2Owo+ICsgICAgc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRl Owo+ICsKPiArCVdSRUczMihIRE1JMF9BQ1JfUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCj4gKwkg ICAgICAgSERNSTBfQUNSX1NPVVJDRSB8CQkvKiBzZWxlY3QgU1cgQ1RTIHZhbHVlICovCj4gKwkg ICAgICAgSERNSTBfQUNSX0FVVE9fU0VORCk7CS8qIGFsbG93IGh3IHRvIHNlbnQgQUNSIHBhY2tl dHMgd2hlbiByZXF1aXJlZCAqLwo+ICsKPiArICAgIFdSRUczMl9QKEhETUkwX0FDUl8zMl8wICsg b2Zmc2V0LAo+ICsgICAgICAgICBIRE1JMF9BQ1JfQ1RTXzMyKGFjci0+Y3RzXzMya2h6KSwKPiAr ICAgICAgICAgfkhETUkwX0FDUl9DVFNfMzJfTUFTSyk7Cj4gKyAgICBXUkVHMzJfUChIRE1JMF9B Q1JfMzJfMSArIG9mZnNldCwKPiArICAgICAgICAgSERNSTBfQUNSX05fMzIoYWNyLT5uXzMya2h6 KSwKPiArICAgICAgICAgfkhETUkwX0FDUl9OXzMyX01BU0spOwo+ICsKPiArICAgIFdSRUczMl9Q KEhETUkwX0FDUl80NF8wICsgb2Zmc2V0LAo+ICsgICAgICAgICBIRE1JMF9BQ1JfQ1RTXzQ0KGFj ci0+Y3RzXzQ0XzFraHopLAo+ICsgICAgICAgICB+SERNSTBfQUNSX0NUU180NF9NQVNLKTsKPiAr ICAgIFdSRUczMl9QKEhETUkwX0FDUl80NF8xICsgb2Zmc2V0LAo+ICsgICAgICAgICBIRE1JMF9B Q1JfTl80NChhY3ItPm5fNDRfMWtoeiksCj4gKyAgICAgICAgIH5IRE1JMF9BQ1JfTl80NF9NQVNL KTsKPiArCj4gKyAgICBXUkVHMzJfUChIRE1JMF9BQ1JfNDhfMCArIG9mZnNldCwKPiArICAgICAg ICAgSERNSTBfQUNSX0NUU180OChhY3ItPmN0c180OGtoeiksCj4gKyAgICAgICAgIH5IRE1JMF9B Q1JfQ1RTXzQ4X01BU0spOwo+ICsgICAgV1JFRzMyX1AoSERNSTBfQUNSXzQ4XzEgKyBvZmZzZXQs Cj4gKyAgICAgICAgIEhETUkwX0FDUl9OXzQ4KGFjci0+bl80OGtoeiksCj4gKyAgICAgICAgIH5I RE1JMF9BQ1JfTl80OF9NQVNLKTsKCkxvb2tzIGxpa2Ugc3BhY2VzIHdlcmUgdXNlZCBmb3IgaW5k ZW50YXRpb24gaW5zdGVhZCBvZiB0YWJzLgoKQ2hyaXN0aWFuLgoKPiArfQo+ICsKPiAgIC8qCj4g ICAgKiB1cGRhdGUgdGhlIGluZm8gZnJhbWVzIHdpdGggdGhlIGRhdGEgZnJvbSB0aGUgY3VycmVu dCBkaXNwbGF5IG1vZGUKPiAgICAqLwo+IEBAIC0yMjAsMTAgKzI1Miw2IEBAIHZvaWQgZGNlM18x X2hkbWlfc2V0bW9kZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptCj4gICAJCXJhZGVvbl9hdWRpb193cml0ZV9zYWRfcmVncyhlbmNvZGVyKTsK PiAgIAl9Cj4gICAKPiAtCVdSRUczMihIRE1JMF9BQ1JfUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQs Cj4gLQkgICAgICAgSERNSTBfQUNSX1NPVVJDRSB8IC8qIHNlbGVjdCBTVyBDVFMgdmFsdWUgLSBY WFggdmVyaWZ5IHRoYXQgaHcgQ1RTIHdvcmtzIG9uIGFsbCBmYW1pbGllcyAqLwo+IC0JICAgICAg IEhETUkwX0FDUl9BVVRPX1NFTkQpOyAvKiBhbGxvdyBodyB0byBzZW50IEFDUiBwYWNrZXRzIHdo ZW4gcmVxdWlyZWQgKi8KPiAtCj4gICAJV1JFRzMyKEhETUkwX1ZCSV9QQUNLRVRfQ09OVFJPTCAr IG9mZnNldCwKPiAgIAkgICAgICAgSERNSTBfTlVMTF9TRU5EIHwgLyogc2VuZCBudWxsIHBhY2tl dHMgd2hlbiByZXF1aXJlZCAqLwo+ICAgCSAgICAgICBIRE1JMF9HQ19TRU5EIHwgLyogc2VuZCBn ZW5lcmFsIGNvbnRyb2wgcGFja2V0cyAqLwo+IEBAIC0yNTUsNyArMjgzLDcgQEAgdm9pZCBkY2Uz XzFfaGRtaV9zZXRtb2RlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm0KPiAgIAl9Cj4gICAKPiAgIAlyYWRlb25fdXBkYXRlX2F2aV9pbmZvZnJh bWUoZW5jb2RlciwgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSk7Cj4gLQlyNjAwX2hkbWlfdXBkYXRl X0FDUihlbmNvZGVyLCBtb2RlLT5jbG9jayk7Cj4gKwlyYWRlb25fYXVkaW9fdXBkYXRlX2Fjcihl bmNvZGVyLCBtb2RlLT5jbG9jayk7Cj4gICAKPiAgIAkvKiBpdCdzIHVua25vd24gd2hhdCB0aGVz ZSBiaXRzIGRvIGV4Y2F0bHksIGJ1dCBpdCdzIGluZGVlZCBxdWl0ZSB1c2VmdWwgZm9yIGRlYnVn Z2luZyAqLwo+ICAgCVdSRUczMihIRE1JMF9SQU1QX0NPTlRST0wwICsgb2Zmc2V0LCAweDAwRkZG RkZGKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5faGRt aS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5faGRtaS5jCj4gaW5kZXggZjI4 OTZlNS4uYzJhYmFiNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJn cmVlbl9oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbl9oZG1p LmMKPiBAQCAtNjQsMjYgKzY0LDM0IEBAIHZvaWQgZGNlNF9hdWRpb19lbmFibGUoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJV1JFRzMyKEFaX0hPVF9QTFVHX0NPTlRST0wsIHRtcCk7 Cj4gICB9Cj4gICAKPiAtLyoKPiAtICogdXBkYXRlIHRoZSBOIGFuZCBDVFMgcGFyYW1ldGVycyBm b3IgYSBnaXZlbiBwaXhlbCBjbG9jayByYXRlCj4gLSAqLwo+IC1zdGF0aWMgdm9pZCBldmVyZ3Jl ZW5faGRtaV91cGRhdGVfQUNSKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgdWludDMyX3Qg Y2xvY2spCj4gK3ZvaWQgZXZlcmdyZWVuX2hkbWlfdXBkYXRlX2FjcihzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsIGxvbmcgb2Zmc2V0LAo+ICsJY29uc3Qgc3RydWN0IHJhZGVvbl9oZG1pX2Fj ciAqYWNyKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7 Cj4gICAJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0J c3RydWN0IHJhZGVvbl9oZG1pX2FjciBhY3IgPSByNjAwX2hkbWlfYWNyKGNsb2NrKTsKPiAtCXN0 cnVjdCByYWRlb25fZW5jb2RlciAqcmFkZW9uX2VuY29kZXIgPSB0b19yYWRlb25fZW5jb2Rlcihl bmNvZGVyKTsKPiAtCXN0cnVjdCByYWRlb25fZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gcmFkZW9u X2VuY29kZXItPmVuY19wcml2Owo+IC0JdWludDMyX3Qgb2Zmc2V0ID0gZGlnLT5hZm10LT5vZmZz ZXQ7Cj4gKwlpbnQgYnBjID0gODsKPiArCj4gKwlpZiAoZW5jb2Rlci0+Y3J0Yykgewo+ICsJCXN0 cnVjdCByYWRlb25fY3J0YyAqcmFkZW9uX2NydGMgPSB0b19yYWRlb25fY3J0YyhlbmNvZGVyLT5j cnRjKTsKPiArCQlicGMgPSByYWRlb25fY3J0Yy0+YnBjOwo+ICsJfQo+ICsKPiArCWlmIChicGMg PiA4KQo+ICsJCVdSRUczMihIRE1JX0FDUl9QQUNLRVRfQ09OVFJPTCArIG9mZnNldCwKPiArCQkg ICAgICAgSERNSV9BQ1JfQVVUT19TRU5EKTsgLyogYWxsb3cgaHcgdG8gc2VudCBBQ1IgcGFja2V0 cyB3aGVuIHJlcXVpcmVkICovCj4gKwllbHNlCj4gKwkJV1JFRzMyKEhETUlfQUNSX1BBQ0tFVF9D T05UUk9MICsgb2Zmc2V0LAo+ICsJCSAgICAgICBIRE1JX0FDUl9TT1VSQ0UgfCAvKiBzZWxlY3Qg U1cgQ1RTIHZhbHVlICovCj4gKwkJICAgICAgIEhETUlfQUNSX0FVVE9fU0VORCk7IC8qIGFsbG93 IGh3IHRvIHNlbnQgQUNSIHBhY2tldHMgd2hlbiByZXF1aXJlZCAqLwo+ICAgCj4gLQlXUkVHMzIo SERNSV9BQ1JfMzJfMCArIG9mZnNldCwgSERNSV9BQ1JfQ1RTXzMyKGFjci5jdHNfMzJraHopKTsK PiAtCVdSRUczMihIRE1JX0FDUl8zMl8xICsgb2Zmc2V0LCBhY3Iubl8zMmtoeik7Cj4gKwlXUkVH MzIoSERNSV9BQ1JfMzJfMCArIG9mZnNldCwgSERNSV9BQ1JfQ1RTXzMyKGFjci0+Y3RzXzMya2h6 KSk7Cj4gKwlXUkVHMzIoSERNSV9BQ1JfMzJfMSArIG9mZnNldCwgYWNyLT5uXzMya2h6KTsKPiAg IAo+IC0JV1JFRzMyKEhETUlfQUNSXzQ0XzAgKyBvZmZzZXQsIEhETUlfQUNSX0NUU180NChhY3Iu Y3RzXzQ0XzFraHopKTsKPiAtCVdSRUczMihIRE1JX0FDUl80NF8xICsgb2Zmc2V0LCBhY3Iubl80 NF8xa2h6KTsKPiArCVdSRUczMihIRE1JX0FDUl80NF8wICsgb2Zmc2V0LCBIRE1JX0FDUl9DVFNf NDQoYWNyLT5jdHNfNDRfMWtoeikpOwo+ICsJV1JFRzMyKEhETUlfQUNSXzQ0XzEgKyBvZmZzZXQs IGFjci0+bl80NF8xa2h6KTsKPiAgIAo+IC0JV1JFRzMyKEhETUlfQUNSXzQ4XzAgKyBvZmZzZXQs IEhETUlfQUNSX0NUU180OChhY3IuY3RzXzQ4a2h6KSk7Cj4gLQlXUkVHMzIoSERNSV9BQ1JfNDhf MSArIG9mZnNldCwgYWNyLm5fNDhraHopOwo+ICsJV1JFRzMyKEhETUlfQUNSXzQ4XzAgKyBvZmZz ZXQsIEhETUlfQUNSX0NUU180OChhY3ItPmN0c180OGtoeikpOwo+ICsJV1JFRzMyKEhETUlfQUNS XzQ4XzEgKyBvZmZzZXQsIGFjci0+bl80OGtoeik7Cj4gICB9Cj4gICAKPiAgIHZvaWQgZGNlNF9h Zm10X3dyaXRlX2xhdGVuY3lfZmllbGRzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiBA QCAtMzc4LDE1ICszODYsNyBAQCB2b2lkIGV2ZXJncmVlbl9oZG1pX3NldG1vZGUoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZQo+ICAgCj4gICAJLyog ZmdscnggY2xlYXJzIHN0aCBpbiBBRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMiBoZXJlICovCj4g ICAKPiAtCWlmIChicGMgPiA4KQo+IC0JCVdSRUczMihIRE1JX0FDUl9QQUNLRVRfQ09OVFJPTCAr IG9mZnNldCwKPiAtCQkgICAgICAgSERNSV9BQ1JfQVVUT19TRU5EKTsgLyogYWxsb3cgaHcgdG8g c2VudCBBQ1IgcGFja2V0cyB3aGVuIHJlcXVpcmVkICovCj4gLQllbHNlCj4gLQkJV1JFRzMyKEhE TUlfQUNSX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0LAo+IC0JCSAgICAgICBIRE1JX0FDUl9TT1VS Q0UgfCAvKiBzZWxlY3QgU1cgQ1RTIHZhbHVlICovCj4gLQkJICAgICAgIEhETUlfQUNSX0FVVE9f U0VORCk7IC8qIGFsbG93IGh3IHRvIHNlbnQgQUNSIHBhY2tldHMgd2hlbiByZXF1aXJlZCAqLwo+ IC0KPiAtCWV2ZXJncmVlbl9oZG1pX3VwZGF0ZV9BQ1IoZW5jb2RlciwgbW9kZS0+Y2xvY2spOwo+ ICsJcmFkZW9uX2F1ZGlvX3VwZGF0ZV9hY3IoZW5jb2RlciwgbW9kZS0+Y2xvY2spOwo+ICAgCj4g ICAJV1JFRzMyKEFGTVRfNjA5NThfMCArIG9mZnNldCwKPiAgIAkgICAgICAgQUZNVF82MDk1OF9D U19DSEFOTkVMX05VTUJFUl9MKDEpKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yNjAwX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9oZG1pLmMKPiBp bmRleCA1M2VlN2FkLi4wNWVlYzlmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcjYwMF9oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5j Cj4gQEAgLTU2LDIxICs1Niw2IEBAIGVudW0gcjYwMF9oZG1pX2llY19zdGF0dXNfYml0cyB7Cj4g ICAJQVVESU9fU1RBVFVTX0xFVkVMICAgICAgICA9IDB4ODAKPiAgIH07Cj4gICAKPiAtc3RhdGlj IGNvbnN0IHN0cnVjdCByYWRlb25faGRtaV9hY3IgcjYwMF9oZG1pX3ByZWRlZmluZWRfYWNyW10g PSB7Cj4gLSAgICAvKgkgICAgIDMya0h6CSAgNDQuMWtIegk0OGtIeiAgICAqLwo+IC0gICAgLyog Q2xvY2sgICAgICBOICAgICBDVFMgICAgICBOICAgICBDVFMgICAgICBOICAgICBDVFMgKi8KPiAt ICAgIHsgIDI1MTc1LCAgNDA5NiwgIDI1MTc1LCAyODIyNCwgMTI1ODc1LCAgNjE0NCwgIDI1MTc1 IH0sIC8qICAyNSwyMC8xLjAwMSBNSHogKi8KPiAtICAgIHsgIDI1MjAwLCAgNDA5NiwgIDI1MjAw LCAgNjI3MiwgIDI4MDAwLCAgNjE0NCwgIDI1MjAwIH0sIC8qICAyNS4yMCAgICAgICBNSHogKi8K PiAtICAgIHsgIDI3MDAwLCAgNDA5NiwgIDI3MDAwLCAgNjI3MiwgIDMwMDAwLCAgNjE0NCwgIDI3 MDAwIH0sIC8qICAyNy4wMCAgICAgICBNSHogKi8KPiAtICAgIHsgIDI3MDI3LCAgNDA5NiwgIDI3 MDI3LCAgNjI3MiwgIDMwMDMwLCAgNjE0NCwgIDI3MDI3IH0sIC8qICAyNy4wMCoxLjAwMSBNSHog Ki8KPiAtICAgIHsgIDU0MDAwLCAgNDA5NiwgIDU0MDAwLCAgNjI3MiwgIDYwMDAwLCAgNjE0NCwg IDU0MDAwIH0sIC8qICA1NC4wMCAgICAgICBNSHogKi8KPiAtICAgIHsgIDU0MDU0LCAgNDA5Niwg IDU0MDU0LCAgNjI3MiwgIDYwMDYwLCAgNjE0NCwgIDU0MDU0IH0sIC8qICA1NC4wMCoxLjAwMSBN SHogKi8KPiAtICAgIHsgIDc0MTc2LCAgNDA5NiwgIDc0MTc2LCAgNTczMywgIDc1MzM1LCAgNjE0 NCwgIDc0MTc2IH0sIC8qICA3NC4yNS8xLjAwMSBNSHogKi8KPiAtICAgIHsgIDc0MjUwLCAgNDA5 NiwgIDc0MjUwLCAgNjI3MiwgIDgyNTAwLCAgNjE0NCwgIDc0MjUwIH0sIC8qICA3NC4yNSAgICAg ICBNSHogKi8KPiAtICAgIHsgMTQ4MzUyLCAgNDA5NiwgMTQ4MzUyLCAgNTczMywgMTUwNjcwLCAg NjE0NCwgMTQ4MzUyIH0sIC8qIDE0OC41MC8xLjAwMSBNSHogKi8KPiAtICAgIHsgMTQ4NTAwLCAg NDA5NiwgMTQ4NTAwLCAgNjI3MiwgMTY1MDAwLCAgNjE0NCwgMTQ4NTAwIH0sIC8qIDE0OC41MCAg ICAgICBNSHogKi8KPiAtfTsKPiAtCj4gICBzdGF0aWMgc3RydWN0IHI2MDBfYXVkaW9fcGluIHI2 MDBfYXVkaW9fc3RhdHVzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgewo+ICAgCXN0 cnVjdCByNjAwX2F1ZGlvX3BpbiBzdGF0dXM7Cj4gQEAgLTE4OSw5NiArMTc0LDQwIEBAIHN0cnVj dCByNjAwX2F1ZGlvX3BpbiAqcjYwMF9hdWRpb19nZXRfcGluKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2KQo+ICAgCXJldHVybiAmcmRldi0+YXVkaW8ucGluWzBdOwo+ICAgfQo+ICAgCj4gLS8q Cj4gLSAqIGNhbGN1bGF0ZSBDVFMgYW5kIE4gdmFsdWVzIGlmIHRoZXkgYXJlIG5vdCBmb3VuZCBp biB0aGUgdGFibGUKPiAtICovCj4gLXN0YXRpYyB2b2lkIHI2MDBfaGRtaV9jYWxjX2N0cyh1aW50 MzJfdCBjbG9jaywgaW50ICpDVFMsIGludCAqTiwgaW50IGZyZXEpCj4gLXsKPiAtCWludCBuLCBj dHM7Cj4gLQl1bnNpZ25lZCBsb25nIGRpdiwgbXVsOwo+IC0KPiAtCS8qIFNhZmUsIGJ1dCBvdmVy bHkgbGFyZ2UgdmFsdWVzICovCj4gLQluID0gMTI4ICogZnJlcTsKPiAtCWN0cyA9IGNsb2NrICog MTAwMDsKPiAtCj4gLQkvKiBTbWFsbGVzdCB2YWxpZCBmcmFjdGlvbiAqLwo+IC0JZGl2ID0gZ2Nk KG4sIGN0cyk7Cj4gLQo+IC0JbiAvPSBkaXY7Cj4gLQljdHMgLz0gZGl2Owo+IC0KPiAtCS8qCj4g LQkgKiBUaGUgb3B0aW1hbCBOIGlzIDEyOCpmcmVxLzEwMDAuIENhbGN1bGF0ZSB0aGUgY2xvc2Vz dCBsYXJnZXIKPiAtCSAqIHZhbHVlIHRoYXQgZG9lc24ndCB0cnVuY2F0ZSBhbnkgYml0cy4KPiAt CSAqLwo+IC0JbXVsID0gKCgxMjgqZnJlcS8xMDAwKSArIChuLTEpKS9uOwo+IC0KPiAtCW4gKj0g bXVsOwo+IC0JY3RzICo9IG11bDsKPiAtCj4gLQkvKiBDaGVjayB0aGF0IHdlIGFyZSBpbiBzcGVj IChub3QgYWx3YXlzIHBvc3NpYmxlKSAqLwo+IC0JaWYgKG4gPCAoMTI4KmZyZXEvMTUwMCkpCj4g LQkJcHJpbnRrKEtFUk5fV0FSTklORyAiQ2FsY3VsYXRlZCBBQ1IgTiB2YWx1ZSBpcyB0b28gc21h bGwuIFlvdSBtYXkgZXhwZXJpZW5jZSBhdWRpbyBwcm9ibGVtcy5cbiIpOwo+IC0JaWYgKG4gPiAo MTI4KmZyZXEvMzAwKSkKPiAtCQlwcmludGsoS0VSTl9XQVJOSU5HICJDYWxjdWxhdGVkIEFDUiBO IHZhbHVlIGlzIHRvbyBsYXJnZS4gWW91IG1heSBleHBlcmllbmNlIGF1ZGlvIHByb2JsZW1zLlxu Iik7Cj4gLQo+IC0JKk4gPSBuOwo+IC0JKkNUUyA9IGN0czsKPiAtCj4gLQlEUk1fREVCVUcoIkNh bGN1bGF0ZWQgQUNSIHRpbWluZyBOPSVkIENUUz0lZCBmb3IgZnJlcXVlbmN5ICVkXG4iLAo+IC0J CSAgKk4sICpDVFMsIGZyZXEpOwo+IC19Cj4gLQo+IC1zdHJ1Y3QgcmFkZW9uX2hkbWlfYWNyIHI2 MDBfaGRtaV9hY3IodWludDMyX3QgY2xvY2spCj4gLXsKPiAtCXN0cnVjdCByYWRlb25faGRtaV9h Y3IgcmVzOwo+IC0JdTggaTsKPiAtCj4gLQkvKiBQcmVjYWxjdWxhdGVkIHZhbHVlcyBmb3IgY29t bW9uIGNsb2NrcyAqLwo+IC0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocjYwMF9oZG1pX3By ZWRlZmluZWRfYWNyKTsgaSsrKSB7Cj4gLQkJaWYgKHI2MDBfaGRtaV9wcmVkZWZpbmVkX2Fjcltp XS5jbG9jayA9PSBjbG9jaykKPiAtCQkJcmV0dXJuIHI2MDBfaGRtaV9wcmVkZWZpbmVkX2Fjcltp XTsKPiAtCX0KPiAtCj4gLQkvKiBBbmQgb2RkIGNsb2NrcyBnZXQgbWFudWFsbHkgY2FsY3VsYXRl ZCAqLwo+IC0JcjYwMF9oZG1pX2NhbGNfY3RzKGNsb2NrLCAmcmVzLmN0c18zMmtoeiwgJnJlcy5u XzMya2h6LCAzMjAwMCk7Cj4gLQlyNjAwX2hkbWlfY2FsY19jdHMoY2xvY2ssICZyZXMuY3RzXzQ0 XzFraHosICZyZXMubl80NF8xa2h6LCA0NDEwMCk7Cj4gLQlyNjAwX2hkbWlfY2FsY19jdHMoY2xv Y2ssICZyZXMuY3RzXzQ4a2h6LCAmcmVzLm5fNDhraHosIDQ4MDAwKTsKPiAtCj4gLQlyZXR1cm4g cmVzOwo+IC19Cj4gLQo+IC0vKgo+IC0gKiB1cGRhdGUgdGhlIE4gYW5kIENUUyBwYXJhbWV0ZXJz IGZvciBhIGdpdmVuIHBpeGVsIGNsb2NrIHJhdGUKPiAtICovCj4gLXZvaWQgcjYwMF9oZG1pX3Vw ZGF0ZV9BQ1Ioc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCB1aW50MzJfdCBjbG9jaykKPiAr dm9pZCByNjAwX2hkbWlfdXBkYXRlX2FjcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGxv bmcgb2Zmc2V0LAo+ICsJY29uc3Qgc3RydWN0IHJhZGVvbl9oZG1pX2FjciAqYWNyKQo+ICAgewo+ ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gICAJc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IHJhZGVvbl9o ZG1pX2FjciBhY3IgPSByNjAwX2hkbWlfYWNyKGNsb2NrKTsKPiAtCXN0cnVjdCByYWRlb25fZW5j b2RlciAqcmFkZW9uX2VuY29kZXIgPSB0b19yYWRlb25fZW5jb2RlcihlbmNvZGVyKTsKPiAtCXN0 cnVjdCByYWRlb25fZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gcmFkZW9uX2VuY29kZXItPmVuY19w cml2Owo+IC0JdWludDMyX3Qgb2Zmc2V0ID0gZGlnLT5hZm10LT5vZmZzZXQ7Cj4gKwo+ICsJLyog RENFIDMuMCB1c2VzIHJlZ2lzdGVyIHRoYXQncyBub3JtYWxseSBmb3IgQ1JDX0NPTlRST0wgKi8K PiArCXVpbnQzMl90IGFjcl9jdGwgPSBBU0lDX0lTX0RDRTMocmRldikgPyBEQ0UzX0hETUkwX0FD Ul9QQUNLRVRfQ09OVFJPTCA6Cj4gKwkJCQkgICAgICAgSERNSTBfQUNSX1BBQ0tFVF9DT05UUk9M Owo+ICsJV1JFRzMyX1AoYWNyX2N0bCArIG9mZnNldCwKPiArCQlIRE1JMF9BQ1JfU09VUkNFIHwJ CS8qIHNlbGVjdCBTVyBDVFMgdmFsdWUgKi8KPiArCQlIRE1JMF9BQ1JfQVVUT19TRU5ELAkvKiBh bGxvdyBodyB0byBzZW50IEFDUiBwYWNrZXRzIHdoZW4gcmVxdWlyZWQgKi8KPiArCQl+KEhETUkw X0FDUl9TT1VSQ0UgfAo+ICsJCUhETUkwX0FDUl9BVVRPX1NFTkQpKTsKPiAgIAo+ICAgCVdSRUcz Ml9QKEhETUkwX0FDUl8zMl8wICsgb2Zmc2V0LAo+IC0JCSBIRE1JMF9BQ1JfQ1RTXzMyKGFjci5j dHNfMzJraHopLAo+ICsJCSBIRE1JMF9BQ1JfQ1RTXzMyKGFjci0+Y3RzXzMya2h6KSwKPiAgIAkJ IH5IRE1JMF9BQ1JfQ1RTXzMyX01BU0spOwo+ICAgCVdSRUczMl9QKEhETUkwX0FDUl8zMl8xICsg b2Zmc2V0LAo+IC0JCSBIRE1JMF9BQ1JfTl8zMihhY3Iubl8zMmtoeiksCj4gKwkJIEhETUkwX0FD Ul9OXzMyKGFjci0+bl8zMmtoeiksCj4gICAJCSB+SERNSTBfQUNSX05fMzJfTUFTSyk7Cj4gICAK PiAgIAlXUkVHMzJfUChIRE1JMF9BQ1JfNDRfMCArIG9mZnNldCwKPiAtCQkgSERNSTBfQUNSX0NU U180NChhY3IuY3RzXzQ0XzFraHopLAo+ICsJCSBIRE1JMF9BQ1JfQ1RTXzQ0KGFjci0+Y3RzXzQ0 XzFraHopLAo+ICAgCQkgfkhETUkwX0FDUl9DVFNfNDRfTUFTSyk7Cj4gICAJV1JFRzMyX1AoSERN STBfQUNSXzQ0XzEgKyBvZmZzZXQsCj4gLQkJIEhETUkwX0FDUl9OXzQ0KGFjci5uXzQ0XzFraHop LAo+ICsJCSBIRE1JMF9BQ1JfTl80NChhY3ItPm5fNDRfMWtoeiksCj4gICAJCSB+SERNSTBfQUNS X05fNDRfTUFTSyk7Cj4gICAKPiAgIAlXUkVHMzJfUChIRE1JMF9BQ1JfNDhfMCArIG9mZnNldCwK PiAtCQkgSERNSTBfQUNSX0NUU180OChhY3IuY3RzXzQ4a2h6KSwKPiArCQkgSERNSTBfQUNSX0NU U180OChhY3ItPmN0c180OGtoeiksCj4gICAJCSB+SERNSTBfQUNSX0NUU180OF9NQVNLKTsKPiAg IAlXUkVHMzJfUChIRE1JMF9BQ1JfNDhfMSArIG9mZnNldCwKPiAtCQkgSERNSTBfQUNSX05fNDgo YWNyLm5fNDhraHopLAo+ICsJCSBIRE1JMF9BQ1JfTl80OChhY3ItPm5fNDhraHopLAo+ICAgCQkg fkhETUkwX0FDUl9OXzQ4X01BU0spOwo+ICAgfQo+ICAgCj4gQEAgLTQxMiw3ICszNDEsNiBAQCB2 b2lkIHI2MDBfaGRtaV9zZXRtb2RlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZAo+ICAgCXU4IGJ1ZmZlcltIRE1JX0lORk9GUkFNRV9IRUFE RVJfU0laRSArIEhETUlfQVZJX0lORk9GUkFNRV9TSVpFXTsKPiAgIAlzdHJ1Y3QgaGRtaV9hdmlf aW5mb2ZyYW1lIGZyYW1lOwo+ICAgCXVpbnQzMl90IG9mZnNldDsKPiAtCXVpbnQzMl90IGFjcl9j dGw7Cj4gICAJc3NpemVfdCBlcnI7Cj4gICAKPiAgIAlpZiAoIWRpZyB8fCAhZGlnLT5hZm10KQo+ IEBAIC00MzksMTUgKzM2Nyw2IEBAIHZvaWQgcjYwMF9oZG1pX3NldG1vZGUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kCj4gICAJCSAgIEhE TUkwX0FVRElPX1BBQ0tFVFNfUEVSX0xJTkVfTUFTSyB8Cj4gICAJCSAgIEhETUkwXzYwOTU4X0NT X1VQREFURSkpOwo+ICAgCj4gLQkvKiBEQ0UgMy4wIHVzZXMgcmVnaXN0ZXIgdGhhdCdzIG5vcm1h bGx5IGZvciBDUkNfQ09OVFJPTCAqLwo+IC0JYWNyX2N0bCA9IEFTSUNfSVNfRENFMyhyZGV2KSA/ IERDRTNfSERNSTBfQUNSX1BBQ0tFVF9DT05UUk9MIDoKPiAtCQkJCSAgICAgICBIRE1JMF9BQ1Jf UEFDS0VUX0NPTlRST0w7Cj4gLQlXUkVHMzJfUChhY3JfY3RsICsgb2Zmc2V0LAo+IC0JCSBIRE1J MF9BQ1JfU09VUkNFIHwgLyogc2VsZWN0IFNXIENUUyB2YWx1ZSAtIFhYWCB2ZXJpZnkgdGhhdCBo dyBDVFMgd29ya3Mgb24gYWxsIGZhbWlsaWVzICovCj4gLQkJIEhETUkwX0FDUl9BVVRPX1NFTkQs IC8qIGFsbG93IGh3IHRvIHNlbnQgQUNSIHBhY2tldHMgd2hlbiByZXF1aXJlZCAqLwo+IC0JCSB+ KEhETUkwX0FDUl9TT1VSQ0UgfAo+IC0JCSAgIEhETUkwX0FDUl9BVVRPX1NFTkQpKTsKPiAtCj4g ICAJV1JFRzMyX09SKEhETUkwX1ZCSV9QQUNLRVRfQ09OVFJPTCArIG9mZnNldCwKPiAgIAkJICBI RE1JMF9OVUxMX1NFTkQgfCAvKiBzZW5kIG51bGwgcGFja2V0cyB3aGVuIHJlcXVpcmVkICovCj4g ICAJCSAgSERNSTBfR0NfU0VORCB8IC8qIHNlbmQgZ2VuZXJhbCBjb250cm9sIHBhY2tldHMgKi8K PiBAQCAtNDkzLDcgKzQxMiw3IEBAIHZvaWQgcjYwMF9oZG1pX3NldG1vZGUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kCj4gICAJCSAgICAg SERNSTBfR0VORVJJQzBfTElORV9NQVNLIHwKPiAgIAkJICAgICBIRE1JMF9HRU5FUklDMV9MSU5F X01BU0spKTsKPiAgIAo+IC0JcjYwMF9oZG1pX3VwZGF0ZV9BQ1IoZW5jb2RlciwgbW9kZS0+Y2xv Y2spOwo+ICsJcmFkZW9uX2F1ZGlvX3VwZGF0ZV9hY3IoZW5jb2RlciwgbW9kZS0+Y2xvY2spOwo+ ICAgCj4gICAJV1JFRzMyX1AoSERNSTBfNjA5NThfMCArIG9mZnNldCwKPiAgIAkJIEhETUkwXzYw OTU4X0NTX0NIQU5ORUxfTlVNQkVSX0woMSksCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9h dWRpby5jCj4gaW5kZXggY2M1OGVlOGMuLjM3NTI1MmMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX2F1ZGlvLmMKPiBAQCAtMjIsNiArMjIsNyBAQAo+ICAgICogQXV0aG9yczogU2xh dmEgR3JpZ29yZXYgPHNsYXZhLmdyaWdvcmV2QGFtZC5jb20+Cj4gICAgKi8KPiAgIAo+ICsjaW5j bHVkZSA8bGludXgvZ2NkLmg+Cj4gICAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiAgICNpbmNsdWRl IDxkcm0vZHJtX2NydGMuaD4KPiAgICNpbmNsdWRlICJyYWRlb24uaCIKPiBAQCAtNzgsNiArNzks MTIgQEAgdm9pZCByNjAwX3VwZGF0ZV9hdmlfaW5mb2ZyYW1lKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2LCB1MzIgb2Zmc2V0LAo+ICAgCXVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgc2l6ZV90IHNp emUpOwo+ICAgdm9pZCBldmVyZ3JlZW5fdXBkYXRlX2F2aV9pbmZvZnJhbWUoc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYsIHUzMiBvZmZzZXQsCj4gICAJdW5zaWduZWQgY2hhciAqYnVmZmVyLCBz aXplX3Qgc2l6ZSk7Cj4gK3ZvaWQgcjYwMF9oZG1pX3VwZGF0ZV9hY3Ioc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLCBsb25nIG9mZnNldCwKPiArCWNvbnN0IHN0cnVjdCByYWRlb25faGRtaV9h Y3IgKmFjcik7Cj4gK3ZvaWQgZGNlM18yX2hkbWlfdXBkYXRlX2FjcihzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsIGxvbmcgb2Zmc2V0LAo+ICsJY29uc3Qgc3RydWN0IHJhZGVvbl9oZG1pX2Fj ciAqYWNyKTsKPiArdm9pZCBldmVyZ3JlZW5faGRtaV91cGRhdGVfYWNyKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlciwgbG9uZyBvZmZzZXQsCj4gKwljb25zdCBzdHJ1Y3QgcmFkZW9uX2hkbWlf YWNyICphY3IpOwo+ICAgCj4gICBzdGF0aWMgY29uc3QgdTMyIHBpbl9vZmZzZXRzWzddID0KPiAg IHsKPiBAQCAtMTMyLDYgKzEzOSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2F1ZGlvX2Jhc2lj X2Z1bmNzIGRjZTZfZnVuY3MgPSB7Cj4gICBzdGF0aWMgc3RydWN0IHJhZGVvbl9hdWRpb19mdW5j cyByNjAwX2hkbWlfZnVuY3MgPSB7Cj4gICAJLmdldF9waW4gPSByNjAwX2F1ZGlvX2dldF9waW4s Cj4gICAJLnNldF9kdG8gPSByNjAwX2hkbWlfYXVkaW9fc2V0X2R0bywKPiArCS51cGRhdGVfYWNy ID0gcjYwMF9oZG1pX3VwZGF0ZV9hY3IsCj4gICB9Owo+ICAgCj4gICBzdGF0aWMgc3RydWN0IHJh ZGVvbl9hdWRpb19mdW5jcyBkY2UzMl9oZG1pX2Z1bmNzID0gewo+IEBAIC0xMzksNiArMTQ3LDcg QEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9fZnVuY3MgZGNlMzJfaGRtaV9mdW5jcyA9IHsK PiAgIAkud3JpdGVfc2FkX3JlZ3MgPSBkY2UzXzJfYWZtdF93cml0ZV9zYWRfcmVncywKPiAgIAku d3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uID0gZGNlM18yX2FmbXRfaGRtaV93cml0ZV9zcGVha2Vy X2FsbG9jYXRpb24sCj4gICAJLnNldF9kdG8gPSBkY2UzXzJfYXVkaW9fc2V0X2R0bywKPiArCS51 cGRhdGVfYWNyID0gZGNlM18yX2hkbWlfdXBkYXRlX2FjciwKPiAgIH07Cj4gICAKPiAgIHN0YXRp YyBzdHJ1Y3QgcmFkZW9uX2F1ZGlvX2Z1bmNzIGRjZTMyX2RwX2Z1bmNzID0gewo+IEBAIC0xNTQs NiArMTYzLDcgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9fZnVuY3MgZGNlNF9oZG1pX2Z1 bmNzID0gewo+ICAgCS53cml0ZV9zcGVha2VyX2FsbG9jYXRpb24gPSBkY2U0X2FmbXRfaGRtaV93 cml0ZV9zcGVha2VyX2FsbG9jYXRpb24sCj4gICAJLndyaXRlX2xhdGVuY3lfZmllbGRzID0gZGNl NF9hZm10X3dyaXRlX2xhdGVuY3lfZmllbGRzLAo+ICAgCS5zZXRfZHRvID0gZGNlNF9oZG1pX2F1 ZGlvX3NldF9kdG8sCj4gKwkudXBkYXRlX2FjciA9IGV2ZXJncmVlbl9oZG1pX3VwZGF0ZV9hY3Is Cj4gICB9Owo+ICAgCj4gICBzdGF0aWMgc3RydWN0IHJhZGVvbl9hdWRpb19mdW5jcyBkY2U0X2Rw X2Z1bmNzID0gewo+IEBAIC00NTYsMyArNDY2LDkyIEBAIHZvaWQgcmFkZW9uX3VwZGF0ZV9hdmlf aW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwgdm9pZCAqYnVmZmVyLAo+ICAg CQlyZGV2LT5hdWRpby5mdW5jcy0+dXBkYXRlX2F2aV9pbmZvZnJhbWUocmRldiwgZGlnLT5hZm10 LT5vZmZzZXQsCj4gICAJCQlidWZmZXIsIHNpemUpOwo+ICAgfQo+ICsKPiArLyoKPiArICogY2Fs Y3VsYXRlIENUUyBhbmQgTiB2YWx1ZXMgaWYgdGhleSBhcmUgbm90IGZvdW5kIGluIHRoZSB0YWJs ZQo+ICsgKi8KPiArc3RhdGljIHZvaWQgcmFkZW9uX2F1ZGlvX2NhbGNfY3RzKHVuc2lnbmVkIGlu dCBjbG9jaywgaW50ICpDVFMsIGludCAqTiwgaW50IGZyZXEpCj4gK3sKPiArCWludCBuLCBjdHM7 Cj4gKwl1bnNpZ25lZCBsb25nIGRpdiwgbXVsOwo+ICsKPiArCS8qIFNhZmUsIGJ1dCBvdmVybHkg bGFyZ2UgdmFsdWVzICovCj4gKwluID0gMTI4ICogZnJlcTsKPiArCWN0cyA9IGNsb2NrICogMTAw MDsKPiArCj4gKwkvKiBTbWFsbGVzdCB2YWxpZCBmcmFjdGlvbiAqLwo+ICsJZGl2ID0gZ2NkKG4s IGN0cyk7Cj4gKwo+ICsJbiAvPSBkaXY7Cj4gKwljdHMgLz0gZGl2Owo+ICsKPiArCS8qCj4gKwkg KiBUaGUgb3B0aW1hbCBOIGlzIDEyOCpmcmVxLzEwMDAuIENhbGN1bGF0ZSB0aGUgY2xvc2VzdCBs YXJnZXIKPiArCSAqIHZhbHVlIHRoYXQgZG9lc24ndCB0cnVuY2F0ZSBhbnkgYml0cy4KPiArCSAq Lwo+ICsJbXVsID0gKCgxMjgqZnJlcS8xMDAwKSArIChuLTEpKS9uOwo+ICsKPiArCW4gKj0gbXVs Owo+ICsJY3RzICo9IG11bDsKPiArCj4gKwkvKiBDaGVjayB0aGF0IHdlIGFyZSBpbiBzcGVjIChu b3QgYWx3YXlzIHBvc3NpYmxlKSAqLwo+ICsJaWYgKG4gPCAoMTI4KmZyZXEvMTUwMCkpCj4gKwkJ cHJpbnRrKEtFUk5fV0FSTklORyAiQ2FsY3VsYXRlZCBBQ1IgTiB2YWx1ZSBpcyB0b28gc21hbGwu IFlvdSBtYXkgZXhwZXJpZW5jZSBhdWRpbyBwcm9ibGVtcy5cbiIpOwo+ICsJaWYgKG4gPiAoMTI4 KmZyZXEvMzAwKSkKPiArCQlwcmludGsoS0VSTl9XQVJOSU5HICJDYWxjdWxhdGVkIEFDUiBOIHZh bHVlIGlzIHRvbyBsYXJnZS4gWW91IG1heSBleHBlcmllbmNlIGF1ZGlvIHByb2JsZW1zLlxuIik7 Cj4gKwo+ICsJKk4gPSBuOwo+ICsJKkNUUyA9IGN0czsKPiArCj4gKwlEUk1fREVCVUcoIkNhbGN1 bGF0ZWQgQUNSIHRpbWluZyBOPSVkIENUUz0lZCBmb3IgZnJlcXVlbmN5ICVkXG4iLAo+ICsJCSpO LCAqQ1RTLCBmcmVxKTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCByYWRlb25faGRt aV9hY3IqIHJhZGVvbl9hdWRpb19hY3IodW5zaWduZWQgaW50IGNsb2NrKQo+ICt7Cj4gKwlzdGF0 aWMgc3RydWN0IHJhZGVvbl9oZG1pX2FjciByZXM7Cj4gKwl1OCBpOwo+ICsKPiArCXN0YXRpYyBj b25zdCBzdHJ1Y3QgcmFkZW9uX2hkbWlfYWNyIGhkbWlfcHJlZGVmaW5lZF9hY3JbXSA9IHsKPiAr CQkvKiAgICAgICAzMmtIeiAgICA0NC4xa0h6ICAgNDhrSHogICAgKi8KPiArCQkvKiBDbG9jayAg ICAgIE4gICAgIENUUyAgICAgIE4gICAgIENUUyAgICAgIE4gICAgIENUUyAqLwo+ICsJCXsgIDI1 MTc1LCAgNDA5NiwgIDI1MTc1LCAyODIyNCwgMTI1ODc1LCAgNjE0NCwgIDI1MTc1IH0sIC8qICAy NSwyMC8xLjAwMSBNSHogKi8KPiArCQl7ICAyNTIwMCwgIDQwOTYsICAyNTIwMCwgIDYyNzIsICAy ODAwMCwgIDYxNDQsICAyNTIwMCB9LCAvKiAgMjUuMjAgICAgICAgTUh6ICovCj4gKwkJeyAgMjcw MDAsICA0MDk2LCAgMjcwMDAsICA2MjcyLCAgMzAwMDAsICA2MTQ0LCAgMjcwMDAgfSwgLyogIDI3 LjAwICAgICAgIE1IeiAqLwo+ICsJCXsgIDI3MDI3LCAgNDA5NiwgIDI3MDI3LCAgNjI3MiwgIDMw MDMwLCAgNjE0NCwgIDI3MDI3IH0sIC8qICAyNy4wMCoxLjAwMSBNSHogKi8KPiArCQl7ICA1NDAw MCwgIDQwOTYsICA1NDAwMCwgIDYyNzIsICA2MDAwMCwgIDYxNDQsICA1NDAwMCB9LCAvKiAgNTQu MDAgICAgICAgTUh6ICovCj4gKwkJeyAgNTQwNTQsICA0MDk2LCAgNTQwNTQsICA2MjcyLCAgNjAw NjAsICA2MTQ0LCAgNTQwNTQgfSwgLyogIDU0LjAwKjEuMDAxIE1IeiAqLwo+ICsJCXsgIDc0MTc2 LCAgNDA5NiwgIDc0MTc2LCAgNTczMywgIDc1MzM1LCAgNjE0NCwgIDc0MTc2IH0sIC8qICA3NC4y NS8xLjAwMSBNSHogKi8KPiArCQl7ICA3NDI1MCwgIDQwOTYsICA3NDI1MCwgIDYyNzIsICA4MjUw MCwgIDYxNDQsICA3NDI1MCB9LCAvKiAgNzQuMjUgICAgICAgTUh6ICovCj4gKwkJeyAxNDgzNTIs ICA0MDk2LCAxNDgzNTIsICA1NzMzLCAxNTA2NzAsICA2MTQ0LCAxNDgzNTIgfSwgLyogMTQ4LjUw LzEuMDAxIE1IeiAqLwo+ICsJCXsgMTQ4NTAwLCAgNDA5NiwgMTQ4NTAwLCAgNjI3MiwgMTY1MDAw LCAgNjE0NCwgMTQ4NTAwIH0sIC8qIDE0OC41MCAgICAgICBNSHogKi8KPiArCX07Cj4gKwo+ICsJ LyogUHJlY2FsY3VsYXRlZCB2YWx1ZXMgZm9yIGNvbW1vbiBjbG9ja3MgKi8KPiArCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKGhkbWlfcHJlZGVmaW5lZF9hY3IpOyBpKyspCj4gKwkJaWYgKGhk bWlfcHJlZGVmaW5lZF9hY3JbaV0uY2xvY2sgPT0gY2xvY2spCj4gKwkJCXJldHVybiAmaGRtaV9w cmVkZWZpbmVkX2FjcltpXTsKPiArCj4gKwkvKiBBbmQgb2RkIGNsb2NrcyBnZXQgbWFudWFsbHkg Y2FsY3VsYXRlZCAqLwo+ICsJcmFkZW9uX2F1ZGlvX2NhbGNfY3RzKGNsb2NrLCAmcmVzLmN0c18z MmtoeiwgJnJlcy5uXzMya2h6LCAzMjAwMCk7Cj4gKwlyYWRlb25fYXVkaW9fY2FsY19jdHMoY2xv Y2ssICZyZXMuY3RzXzQ0XzFraHosICZyZXMubl80NF8xa2h6LCA0NDEwMCk7Cj4gKwlyYWRlb25f YXVkaW9fY2FsY19jdHMoY2xvY2ssICZyZXMuY3RzXzQ4a2h6LCAmcmVzLm5fNDhraHosIDQ4MDAw KTsKPiArCj4gKwlyZXR1cm4gJnJlczsKPiArfQo+ICsKPiArLyoKPiArICogdXBkYXRlIHRoZSBO IGFuZCBDVFMgcGFyYW1ldGVycyBmb3IgYSBnaXZlbiBwaXhlbCBjbG9jayByYXRlCj4gKyAqLwo+ ICt2b2lkIHJhZGVvbl9hdWRpb191cGRhdGVfYWNyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl ciwgdW5zaWduZWQgaW50IGNsb2NrKQo+ICt7Cj4gKyAgICBjb25zdCBzdHJ1Y3QgcmFkZW9uX2hk bWlfYWNyICphY3IgPSByYWRlb25fYXVkaW9fYWNyKGNsb2NrKTsKPiArICAgIHN0cnVjdCByYWRl b25fZW5jb2RlciAqcmFkZW9uX2VuY29kZXIgPSB0b19yYWRlb25fZW5jb2RlcihlbmNvZGVyKTsK PiArICAgIHN0cnVjdCByYWRlb25fZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gcmFkZW9uX2VuY29k ZXItPmVuY19wcml2Owo+ICsKPiArCWlmICghZGlnIHx8ICFkaWctPmFmbXQpCj4gKwkJcmV0dXJu Owo+ICsKPiArCWlmIChyYWRlb25fZW5jb2Rlci0+YXVkaW8gJiYgcmFkZW9uX2VuY29kZXItPmF1 ZGlvLT51cGRhdGVfYWNyKQo+ICsJCXJhZGVvbl9lbmNvZGVyLT5hdWRpby0+dXBkYXRlX2Fjcihl bmNvZGVyLCBkaWctPmFmbXQtPm9mZnNldCwgYWNyKTsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdWRpby5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fYXVkaW8uaAo+IGluZGV4IGRjODVkNTMuLmE0ZDA1NTMgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2F1ZGlvLmgKPiBAQCAtNTUsNiArNTUsOCBAQCBzdHJ1Y3QgcmFk ZW9uX2F1ZGlvX2Z1bmNzCj4gICAJCXU4ICpzYWRiLCBpbnQgc2FkX2NvdW50KTsKPiAgIAl2b2lk ICgqc2V0X2R0bykoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJCXN0cnVjdCByYWRl b25fY3J0YyAqY3J0YywgdW5zaWduZWQgaW50IGNsb2NrKTsKPiArCXZvaWQgKCp1cGRhdGVfYWNy KShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGxvbmcgb2Zmc2V0LAo+ICsJCWNvbnN0IHN0 cnVjdCByYWRlb25faGRtaV9hY3IgKmFjcik7Cj4gICB9Owo+ICAgCj4gICBpbnQgcmFkZW9uX2F1 ZGlvX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwo+IEBAIC03Niw1ICs3OCw2IEBA IHZvaWQgcmFkZW9uX2F1ZGlvX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwo+ICAg dm9pZCByYWRlb25fYXVkaW9fc2V0X2R0byhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHVu c2lnbmVkIGludCBjbG9jayk7Cj4gICB2b2lkIHJhZGVvbl91cGRhdGVfYXZpX2luZm9mcmFtZShz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHZvaWQgKmJ1ZmZlciwKPiAgIAlzaXplX3Qgc2l6 ZSk7Cj4gK3ZvaWQgcmFkZW9uX2F1ZGlvX3VwZGF0ZV9hY3Ioc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLCB1bnNpZ25lZCBpbnQgY2xvY2spOwo+ICAgCj4gICAjZW5kaWYKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==