From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 17/24] radeon/audio: moved audio packet programming to a separate function Date: Tue, 13 Jan 2015 12:46:46 -0500 Message-ID: <1421171213-23977-18-git-send-email-alexander.deucher@amd.com> References: <1421171213-23977-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qc0-f169.google.com (mail-qc0-f169.google.com [209.85.216.169]) by gabe.freedesktop.org (Postfix) with ESMTP id 4BB606E678 for ; Tue, 13 Jan 2015 09:47:11 -0800 (PST) Received: by mail-qc0-f169.google.com with SMTP id w7so3414878qcr.0 for ; Tue, 13 Jan 2015 09:47:10 -0800 (PST) In-Reply-To: <1421171213-23977-1-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: dri-devel@lists.freedesktop.org Cc: Alex Deucher , slava.grigorev@amd.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogU2xhdmEgR3JpZ29yZXYgPHNsYXZhLmdyaWdvcmV2QGFtZC5jb20+CgpTaWduZWQtb2Zm LWJ5OiBTbGF2YSBHcmlnb3JldiA8c2xhdmEuZ3JpZ29yZXZAYW1kLmNvbT4KU2lnbmVkLW9mZi1i eTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vZGNlM18xX2FmbXQuYyAgICB8IDU2ICsrKysrKysrKystLS0tLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuX2hkbWkuYyB8IDg0ICsrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRt aS5jICAgICAgfCA4NSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2F1ZGlvLmMgICB8IDE5ICsrKysrKysrCiBkcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9hdWRpby5oICAgfCAgMiArCiA1IGZpbGVzIGNoYW5nZWQsIDEz NCBpbnNlcnRpb25zKCspLCAxMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9kY2UzXzFfYWZtdC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9kY2Uz XzFfYWZtdC5jCmluZGV4IGQ2NTkzMzcuLmZhMGUwMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vZGNlM18xX2FmbXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Rj ZTNfMV9hZm10LmMKQEAgLTE5OSw2ICsxOTksMjcgQEAgdm9pZCBkY2UzXzJfaGRtaV91cGRhdGVf YWNyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgbG9uZyBvZmZzZXQsCiAgICAgICAgICB+ SERNSTBfQUNSX05fNDhfTUFTSyk7CiB9CiAKK3ZvaWQgZGNlM18yX3NldF9hdWRpb19wYWNrZXQo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCB1MzIgb2Zmc2V0KQoreworCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7CisJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYg PSBkZXYtPmRldl9wcml2YXRlOworCisJV1JFRzMyKEhETUkwX0FVRElPX1BBQ0tFVF9DT05UUk9M ICsgb2Zmc2V0LAorCQlIRE1JMF9BVURJT19ERUxBWV9FTigxKSB8CQkJLyogZGVmYXVsdCBhdWRp byBkZWxheSAqLworCQlIRE1JMF9BVURJT19QQUNLRVRTX1BFUl9MSU5FKDMpKTsJLyogc2hvdWxk IGJlIHN1ZmZpZW50IGZvciBhbGwgYXVkaW8gbW9kZXMgYW5kIHNtYWxsIGVub3VnaCBmb3IgYWxs IGhibGFua3MgKi8KKworCVdSRUczMihBRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0 LAorCQlBRk1UX0FVRElPX1NBTVBMRV9TRU5EIHwJCQkvKiBzZW5kIGF1ZGlvIHBhY2tldHMgKi8K KwkJQUZNVF82MDk1OF9DU19VUERBVEUpOwkJCQkvKiBhbGxvdyA2MDk1OCBjaGFubmVsIHN0YXR1 cyBmaWVsZHMgdG8gYmUgdXBkYXRlZCAqLworCisJV1JFRzMyX09SKEhETUkwX0lORk9GUkFNRV9D T05UUk9MMCArIG9mZnNldCwKKwkJSERNSTBfQVVESU9fSU5GT19TRU5EIHwJCQkJLyogZW5hYmxl IGF1ZGlvIGluZm8gZnJhbWVzIChmcmFtZXMgd29uJ3QgYmUgc2V0IHVudGlsIGF1ZGlvIGlzIGVu YWJsZWQpICovCisJCUhETUkwX0FVRElPX0lORk9fQ09OVCk7CQkJCS8qIHNlbmQgYXVkaW8gaW5m byBmcmFtZXMgZXZlcnkgZnJhbWUvZmllbGQgKi8KKworCVdSRUczMl9PUihIRE1JMF9JTkZPRlJB TUVfQ09OVFJPTDEgKyBvZmZzZXQsCisJCUhETUkwX0FVRElPX0lORk9fTElORSgyKSk7CQkJLyog YW55dGhpbmcgb3RoZXIgdGhhbiAwICovCit9CisKIC8qCiAgKiB1cGRhdGUgdGhlIGluZm8gZnJh bWVzIHdpdGggdGhlIGRhdGEgZnJvbSB0aGUgY3VycmVudCBkaXNwbGF5IG1vZGUKICAqLwpAQCAt MjI2LDQxICsyNDcsMTYgQEAgdm9pZCBkY2UzXzFfaGRtaV9zZXRtb2RlKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2Rlciwgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0KIAlyYWRlb25fYXVkaW9f c2V0X3ZiaV9wYWNrZXQoZW5jb2Rlcik7CiAJcmFkZW9uX2hkbWlfc2V0X2NvbG9yX2RlcHRoKGVu Y29kZXIpOwogCi0JaWYgKEFTSUNfSVNfRENFMzIocmRldikpIHsKLQkJV1JFRzMyKEhETUkwX0FV RElPX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0LAotCQkgICAgICAgSERNSTBfQVVESU9fREVMQVlf RU4oMSkgfCAvKiBkZWZhdWx0IGF1ZGlvIGRlbGF5ICovCi0JCSAgICAgICBIRE1JMF9BVURJT19Q QUNLRVRTX1BFUl9MSU5FKDMpKTsgLyogc2hvdWxkIGJlIHN1ZmZpZW50IGZvciBhbGwgYXVkaW8g bW9kZXMgYW5kIHNtYWxsIGVub3VnaCBmb3IgYWxsIGhibGFua3MgKi8KLQkJV1JFRzMyKEFGTVRf QVVESU9fUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCi0JCSAgICAgICBBRk1UX0FVRElPX1NBTVBM RV9TRU5EIHwgLyogc2VuZCBhdWRpbyBwYWNrZXRzICovCi0JCSAgICAgICBBRk1UXzYwOTU4X0NT X1VQREFURSk7IC8qIGFsbG93IDYwOTU4IGNoYW5uZWwgc3RhdHVzIGZpZWxkcyB0byBiZSB1cGRh dGVkICovCi0JfSBlbHNlIHsKLQkJV1JFRzMyKEhETUkwX0FVRElPX1BBQ0tFVF9DT05UUk9MICsg b2Zmc2V0LAotCQkgICAgICAgSERNSTBfQVVESU9fU0FNUExFX1NFTkQgfCAvKiBzZW5kIGF1ZGlv IHBhY2tldHMgKi8KLQkJICAgICAgIEhETUkwX0FVRElPX0RFTEFZX0VOKDEpIHwgLyogZGVmYXVs dCBhdWRpbyBkZWxheSAqLwotCQkgICAgICAgSERNSTBfQVVESU9fUEFDS0VUU19QRVJfTElORSgz KSB8IC8qIHNob3VsZCBiZSBzdWZmaWVudCBmb3IgYWxsIGF1ZGlvIG1vZGVzIGFuZCBzbWFsbCBl bm91Z2ggZm9yIGFsbCBoYmxhbmtzICovCi0JCSAgICAgICBIRE1JMF82MDk1OF9DU19VUERBVEUp OyAvKiBhbGxvdyA2MDk1OCBjaGFubmVsIHN0YXR1cyBmaWVsZHMgdG8gYmUgdXBkYXRlZCAqLwot CX0KLQotCWlmIChBU0lDX0lTX0RDRTMyKHJkZXYpKSB7Ci0JCXJhZGVvbl9hdWRpb193cml0ZV9z cGVha2VyX2FsbG9jYXRpb24oZW5jb2Rlcik7Ci0JCXJhZGVvbl9hdWRpb193cml0ZV9zYWRfcmVn cyhlbmNvZGVyKTsKLQl9Ci0KLQkvKiBUT0RPOiBIRE1JMF9BVURJT19JTkZPX1VQREFURSAqLwot CVdSRUczMl9PUihIRE1JMF9JTkZPRlJBTUVfQ09OVFJPTDAgKyBvZmZzZXQsCi0JICAgICAgIEhE TUkwX0FVRElPX0lORk9fU0VORCB8IC8qIGVuYWJsZSBhdWRpbyBpbmZvIGZyYW1lcyAoZnJhbWVz IHdvbid0IGJlIHNldCB1bnRpbCBhdWRpbyBpcyBlbmFibGVkKSAqLwotCSAgICAgICBIRE1JMF9B VURJT19JTkZPX0NPTlQpOyAvKiBzZW5kIGF1ZGlvIGluZm8gZnJhbWVzIGV2ZXJ5IGZyYW1lL2Zp ZWxkICovCi0KLQlXUkVHMzJfT1IoSERNSTBfSU5GT0ZSQU1FX0NPTlRST0wxICsgb2Zmc2V0LAot CSAgICAgICBIRE1JMF9BVURJT19JTkZPX0xJTkUoMikpOyAvKiBhbnl0aGluZyBvdGhlciB0aGFu IDAgKi8KLQogCVdSRUczMihIRE1JMF9HQyArIG9mZnNldCwgMCk7IC8qIHVuc2V0IEhETUkwX0dD X0FWTVVURSAqLwogCisJcmFkZW9uX2F1ZGlvX3VwZGF0ZV9hY3IoZW5jb2RlciwgbW9kZS0+Y2xv Y2spOworCXJhZGVvbl9hdWRpb193cml0ZV9zcGVha2VyX2FsbG9jYXRpb24oZW5jb2Rlcik7CisJ cmFkZW9uX2F1ZGlvX3NldF9hdWRpb19wYWNrZXQoZW5jb2Rlcik7CisJcmFkZW9uX2F1ZGlvX3dy aXRlX3NhZF9yZWdzKGVuY29kZXIpOworCiAJaWYgKHJhZGVvbl9hdWRpb19zZXRfYXZpX3BhY2tl dChlbmNvZGVyLCBtb2RlKSA8IDApCiAJCXJldHVybjsKIAotCXJhZGVvbl9hdWRpb191cGRhdGVf YWNyKGVuY29kZXIsIG1vZGUtPmNsb2NrKTsKLQogCS8qIGl0J3MgdW5rbm93biB3aGF0IHRoZXNl IGJpdHMgZG8gZXhjYXRseSwgYnV0IGl0J3MgaW5kZWVkIHF1aXRlIHVzZWZ1bCBmb3IgZGVidWdn aW5nICovCiAJV1JFRzMyKEhETUkwX1JBTVBfQ09OVFJPTDAgKyBvZmZzZXQsIDB4MDBGRkZGRkYp OwogCVdSRUczMihIRE1JMF9SQU1QX0NPTlRST0wxICsgb2Zmc2V0LCAweDAwN0ZGRkZGKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuX2hkbWkuYyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuX2hkbWkuYwppbmRleCBkZWZlZjRmLi43Yzc2NDRj IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbl9oZG1pLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5faGRtaS5jCkBAIC0zNDUsNiArMzQ1 LDQ3IEBAIHZvaWQgZGNlNF9oZG1pX3NldF9jb2xvcl9kZXB0aChzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsIHUzMiBvZmZzZXQsIGludCBicGMpCiAJV1JFRzMyKEhETUlfQ09OVFJPTCArIG9m ZnNldCwgdmFsKTsKIH0KIAordm9pZCBkY2U0X3NldF9hdWRpb19wYWNrZXQoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLCB1MzIgb2Zmc2V0KQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBlbmNvZGVyLT5kZXY7CisJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9w cml2YXRlOworCisJV1JFRzMyKEhETUlfSU5GT0ZSQU1FX0NPTlRST0wwICsgb2Zmc2V0LAorCQlI RE1JX0FVRElPX0lORk9fU0VORCB8IC8qIGVuYWJsZSBhdWRpbyBpbmZvIGZyYW1lcyAoZnJhbWVz IHdvbid0IGJlIHNldCB1bnRpbCBhdWRpbyBpcyBlbmFibGVkKSAqLworCQlIRE1JX0FVRElPX0lO Rk9fQ09OVCk7IC8qIHJlcXVpcmVkIGZvciBhdWRpbyBpbmZvIHZhbHVlcyB0byBiZSB1cGRhdGVk ICovCisKKwlXUkVHMzIoQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDAgKyBvZmZzZXQsCisJCUFGTVRf QVVESU9fSU5GT19VUERBVEUpOyAvKiByZXF1aXJlZCBmb3IgYXVkaW8gaW5mbyB2YWx1ZXMgdG8g YmUgdXBkYXRlZCAqLworCisJV1JFRzMyKEhETUlfSU5GT0ZSQU1FX0NPTlRST0wxICsgb2Zmc2V0 LAorCQlIRE1JX0FVRElPX0lORk9fTElORSgyKSk7IC8qIGFueXRoaW5nIG90aGVyIHRoYW4gMCAq LworCisJV1JFRzMyKEhETUlfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCisJCUhETUlf QVVESU9fREVMQVlfRU4oMSkgfCAvKiBzZXQgdGhlIGRlZmF1bHQgYXVkaW8gZGVsYXkgKi8KKwkJ SERNSV9BVURJT19QQUNLRVRTX1BFUl9MSU5FKDMpKTsgLyogc2hvdWxkIGJlIHN1ZmZpZW50IGZv ciBhbGwgYXVkaW8gbW9kZXMgYW5kIHNtYWxsIGVub3VnaCBmb3IgYWxsIGhibGFua3MgKi8KKwor CVdSRUczMihBRk1UXzYwOTU4XzAgKyBvZmZzZXQsCisJCUFGTVRfNjA5NThfQ1NfQ0hBTk5FTF9O VU1CRVJfTCgxKSk7CisKKwlXUkVHMzIoQUZNVF82MDk1OF8xICsgb2Zmc2V0LAorCQlBRk1UXzYw OTU4X0NTX0NIQU5ORUxfTlVNQkVSX1IoMikpOworCisJV1JFRzMyKEFGTVRfNjA5NThfMiArIG9m ZnNldCwKKwkJQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl8yKDMpIHwKKwkJQUZNVF82MDk1 OF9DU19DSEFOTkVMX05VTUJFUl8zKDQpIHwKKwkJQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJF Ul80KDUpIHwKKwkJQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl81KDYpIHwKKwkJQUZNVF82 MDk1OF9DU19DSEFOTkVMX05VTUJFUl82KDcpIHwKKwkJQUZNVF82MDk1OF9DU19DSEFOTkVMX05V TUJFUl83KDgpKTsKKworCVdSRUczMihBRk1UX0FVRElPX1BBQ0tFVF9DT05UUk9MMiArIG9mZnNl dCwKKwkJQUZNVF9BVURJT19DSEFOTkVMX0VOQUJMRSgweGZmKSk7CisKKwkvKiBhbGxvdyA2MDk1 OCBjaGFubmVsIHN0YXR1cyBhbmQgc2VuZCBhdWRpbyBwYWNrZXRzIGZpZWxkcyB0byBiZSB1cGRh dGVkICovCisJV1JFRzMyKEFGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCisJCUFG TVRfQVVESU9fU0FNUExFX1NFTkQgfCBBRk1UX1JFU0VUX0ZJRk9fV0hFTl9BVURJT19ESVMgfCBB Rk1UXzYwOTU4X0NTX1VQREFURSk7Cit9CisKIC8qCiAgKiB1cGRhdGUgdGhlIGluZm8gZnJhbWVz IHdpdGggdGhlIGRhdGEgZnJvbSB0aGUgY3VycmVudCBkaXNwbGF5IG1vZGUKICAqLwpAQCAtMzcy LDQ5ICs0MTMsMTEgQEAgdm9pZCBldmVyZ3JlZW5faGRtaV9zZXRtb2RlKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2Rlciwgc3RydWN0IGRybV9kaXNwbGF5X21vZGUKIAlyYWRlb25fYXVkaW9fc2V0 X3ZiaV9wYWNrZXQoZW5jb2Rlcik7CiAJcmFkZW9uX2hkbWlfc2V0X2NvbG9yX2RlcHRoKGVuY29k ZXIpOwogCi0JV1JFRzMyKEhETUlfSU5GT0ZSQU1FX0NPTlRST0wwICsgb2Zmc2V0LAotCSAgICAg ICBIRE1JX0FVRElPX0lORk9fU0VORCB8IC8qIGVuYWJsZSBhdWRpbyBpbmZvIGZyYW1lcyAoZnJh bWVzIHdvbid0IGJlIHNldCB1bnRpbCBhdWRpbyBpcyBlbmFibGVkKSAqLwotCSAgICAgICBIRE1J X0FVRElPX0lORk9fQ09OVCk7IC8qIHJlcXVpcmVkIGZvciBhdWRpbyBpbmZvIHZhbHVlcyB0byBi ZSB1cGRhdGVkICovCi0KLQlXUkVHMzIoQUZNVF9JTkZPRlJBTUVfQ09OVFJPTDAgKyBvZmZzZXQs Ci0JICAgICAgIEFGTVRfQVVESU9fSU5GT19VUERBVEUpOyAvKiByZXF1aXJlZCBmb3IgYXVkaW8g aW5mbyB2YWx1ZXMgdG8gYmUgdXBkYXRlZCAqLwotCi0JV1JFRzMyKEhETUlfSU5GT0ZSQU1FX0NP TlRST0wxICsgb2Zmc2V0LAotCSAgICAgICBIRE1JX0FVRElPX0lORk9fTElORSgyKSk7IC8qIGFu eXRoaW5nIG90aGVyIHRoYW4gMCAqLwotCiAJV1JFRzMyKEhETUlfR0MgKyBvZmZzZXQsIDApOyAv KiB1bnNldCBIRE1JX0dDX0FWTVVURSAqLwogCi0JV1JFRzMyKEhETUlfQVVESU9fUEFDS0VUX0NP TlRST0wgKyBvZmZzZXQsCi0JICAgICAgIEhETUlfQVVESU9fREVMQVlfRU4oMSkgfCAvKiBzZXQg dGhlIGRlZmF1bHQgYXVkaW8gZGVsYXkgKi8KLQkgICAgICAgSERNSV9BVURJT19QQUNLRVRTX1BF Ul9MSU5FKDMpKTsgLyogc2hvdWxkIGJlIHN1ZmZpZW50IGZvciBhbGwgYXVkaW8gbW9kZXMgYW5k IHNtYWxsIGVub3VnaCBmb3IgYWxsIGhibGFua3MgKi8KLQotCVdSRUczMihBRk1UX0FVRElPX1BB Q0tFVF9DT05UUk9MICsgb2Zmc2V0LAotCSAgICAgICBBRk1UXzYwOTU4X0NTX1VQREFURSk7IC8q IGFsbG93IDYwOTU4IGNoYW5uZWwgc3RhdHVzIGZpZWxkcyB0byBiZSB1cGRhdGVkICovCi0KLQkv KiBmZ2xyeCBjbGVhcnMgc3RoIGluIEFGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyIGhlcmUgKi8K LQogCXJhZGVvbl9hdWRpb191cGRhdGVfYWNyKGVuY29kZXIsIG1vZGUtPmNsb2NrKTsKLQotCVdS RUczMihBRk1UXzYwOTU4XzAgKyBvZmZzZXQsCi0JICAgICAgIEFGTVRfNjA5NThfQ1NfQ0hBTk5F TF9OVU1CRVJfTCgxKSk7Ci0KLQlXUkVHMzIoQUZNVF82MDk1OF8xICsgb2Zmc2V0LAotCSAgICAg ICBBRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX1IoMikpOwotCi0JV1JFRzMyKEFGTVRfNjA5 NThfMiArIG9mZnNldCwKLQkgICAgICAgQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl8yKDMp IHwKLQkgICAgICAgQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl8zKDQpIHwKLQkgICAgICAg QUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl80KDUpIHwKLQkgICAgICAgQUZNVF82MDk1OF9D U19DSEFOTkVMX05VTUJFUl81KDYpIHwKLQkgICAgICAgQUZNVF82MDk1OF9DU19DSEFOTkVMX05V TUJFUl82KDcpIHwKLQkgICAgICAgQUZNVF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl83KDgpKTsK LQogCXJhZGVvbl9hdWRpb193cml0ZV9zcGVha2VyX2FsbG9jYXRpb24oZW5jb2Rlcik7Ci0KLQlX UkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDIgKyBvZmZzZXQsCi0JICAgICAgIEFGTVRf QVVESU9fQ0hBTk5FTF9FTkFCTEUoMHhmZikpOwotCi0JLyogZmdscnggc2V0cyAweDQwIGluIDB4 NWY4MCBoZXJlICovCisJcmFkZW9uX2F1ZGlvX3NldF9hdWRpb19wYWNrZXQoZW5jb2Rlcik7CiAK IAlyYWRlb25fYXVkaW9fc2VsZWN0X3BpbihlbmNvZGVyKTsKIAlyYWRlb25fYXVkaW9fd3JpdGVf c2FkX3JlZ3MoZW5jb2Rlcik7CkBAIC00MjMsOSArNDI2LDYgQEAgdm9pZCBldmVyZ3JlZW5faGRt aV9zZXRtb2RlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUKIAlpZiAocmFkZW9uX2F1ZGlvX3NldF9hdmlfcGFja2V0KGVuY29kZXIsIG1vZGUpIDwg MCkKIAkJcmV0dXJuOwogCi0JV1JFRzMyX09SKEFGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBv ZmZzZXQsCi0JCSAgQUZNVF9BVURJT19TQU1QTEVfU0VORCk7IC8qIHNlbmQgYXVkaW8gcGFja2V0 cyAqLwotCiAJLyogaXQncyB1bmtub3duIHdoYXQgdGhlc2UgYml0cyBkbyBleGNhdGx5LCBidXQg aXQncyBpbmRlZWQgcXVpdGUgdXNlZnVsIGZvciBkZWJ1Z2dpbmcgKi8KIAlXUkVHMzIoQUZNVF9S QU1QX0NPTlRST0wwICsgb2Zmc2V0LCAweDAwRkZGRkZGKTsKIAlXUkVHMzIoQUZNVF9SQU1QX0NP TlRST0wxICsgb2Zmc2V0LCAweDAwN0ZGRkZGKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcjYwMF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5j CmluZGV4IGY3M2M3NDYuLmI0MzM4MjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcjYwMF9oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2hkbWkuYwpA QCAtMzQ3LDYgKzM0Nyw0OCBAQCB2b2lkIHI2MDBfc2V0X3ZiaV9wYWNrZXQoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLCB1MzIgb2Zmc2V0KQogCQlIRE1JMF9HQ19DT05UKTsJCS8qIHNlbmQg Z2VuZXJhbCBjb250cm9sIHBhY2tldHMgZXZlcnkgZnJhbWUgKi8KIH0KIAordm9pZCByNjAwX3Nl dF9hdWRpb19wYWNrZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCB1MzIgb2Zmc2V0KQor eworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7CisJc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRlOworCisJV1JFRzMyX1AoSERNSTBfQVVE SU9fUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCisJCUhETUkwX0FVRElPX1NBTVBMRV9TRU5EIHwJ CQkvKiBzZW5kIGF1ZGlvIHBhY2tldHMgKi8KKwkJSERNSTBfQVVESU9fREVMQVlfRU4oMSkgfAkJ CS8qIGRlZmF1bHQgYXVkaW8gZGVsYXkgKi8KKwkJSERNSTBfQVVESU9fUEFDS0VUU19QRVJfTElO RSgzKSB8CS8qIHNob3VsZCBiZSBzdWZmaWVudCBmb3IgYWxsIGF1ZGlvIG1vZGVzIGFuZCBzbWFs bCBlbm91Z2ggZm9yIGFsbCBoYmxhbmtzICovCisJCUhETUkwXzYwOTU4X0NTX1VQREFURSwJCQkJ LyogYWxsb3cgNjA5NTggY2hhbm5lbCBzdGF0dXMgZmllbGRzIHRvIGJlIHVwZGF0ZWQgKi8KKwkJ fihIRE1JMF9BVURJT19TQU1QTEVfU0VORCB8CisJCUhETUkwX0FVRElPX0RFTEFZX0VOX01BU0sg fAorCQlIRE1JMF9BVURJT19QQUNLRVRTX1BFUl9MSU5FX01BU0sgfAorCQlIRE1JMF82MDk1OF9D U19VUERBVEUpKTsKKworCVdSRUczMl9PUihIRE1JMF9JTkZPRlJBTUVfQ09OVFJPTDAgKyBvZmZz ZXQsCisJCUhETUkwX0FVRElPX0lORk9fU0VORCB8CQkvKiBlbmFibGUgYXVkaW8gaW5mbyBmcmFt ZXMgKGZyYW1lcyB3b24ndCBiZSBzZXQgdW50aWwgYXVkaW8gaXMgZW5hYmxlZCkgKi8KKwkJSERN STBfQVVESU9fSU5GT19VUERBVEUpOwkvKiByZXF1aXJlZCBmb3IgYXVkaW8gaW5mbyB2YWx1ZXMg dG8gYmUgdXBkYXRlZCAqLworCisJV1JFRzMyX1AoSERNSTBfSU5GT0ZSQU1FX0NPTlRST0wxICsg b2Zmc2V0LAorCQlIRE1JMF9BVURJT19JTkZPX0xJTkUoMiksCS8qIGFueXRoaW5nIG90aGVyIHRo YW4gMCAqLworCQl+SERNSTBfQVVESU9fSU5GT19MSU5FX01BU0spOworCisJV1JFRzMyX0FORChI RE1JMF9HRU5FUklDX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0LAorCQl+KEhETUkwX0dFTkVSSUMw X1NFTkQgfAorCQlIRE1JMF9HRU5FUklDMF9DT05UIHwKKwkJSERNSTBfR0VORVJJQzBfVVBEQVRF IHwKKwkJSERNSTBfR0VORVJJQzFfU0VORCB8CisJCUhETUkwX0dFTkVSSUMxX0NPTlQgfAorCQlI RE1JMF9HRU5FUklDMF9MSU5FX01BU0sgfAorCQlIRE1JMF9HRU5FUklDMV9MSU5FX01BU0spKTsK KworCVdSRUczMl9QKEhETUkwXzYwOTU4XzAgKyBvZmZzZXQsCisJCUhETUkwXzYwOTU4X0NTX0NI QU5ORUxfTlVNQkVSX0woMSksCisJCX4oSERNSTBfNjA5NThfQ1NfQ0hBTk5FTF9OVU1CRVJfTF9N QVNLIHwKKwkJSERNSTBfNjA5NThfQ1NfQ0xPQ0tfQUNDVVJBQ1lfTUFTSykpOworCisJV1JFRzMy X1AoSERNSTBfNjA5NThfMSArIG9mZnNldCwKKwkJSERNSTBfNjA5NThfQ1NfQ0hBTk5FTF9OVU1C RVJfUigyKSwKKwkJfkhETUkwXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX1JfTUFTSyk7Cit9CisK IC8qCiAgKiB1cGRhdGUgdGhlIGluZm8gZnJhbWVzIHdpdGggdGhlIGRhdGEgZnJvbSB0aGUgY3Vy cmVudCBkaXNwbGF5IG1vZGUKICAqLwpAQCAtMzc0LDUxICs0MTYsMTQgQEAgdm9pZCByNjAwX2hk bWlfc2V0bW9kZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2QKIAlyYWRlb25fYXVkaW9fc2V0X3ZiaV9wYWNrZXQoZW5jb2Rlcik7CiAJcmFk ZW9uX2hkbWlfc2V0X2NvbG9yX2RlcHRoKGVuY29kZXIpOwogCi0JV1JFRzMyX1AoSERNSTBfQVVE SU9fUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCi0JCSBIRE1JMF9BVURJT19TQU1QTEVfU0VORCB8 IC8qIHNlbmQgYXVkaW8gcGFja2V0cyAqLwotCQkgSERNSTBfQVVESU9fREVMQVlfRU4oMSkgfCAv KiBkZWZhdWx0IGF1ZGlvIGRlbGF5ICovCi0JCSBIRE1JMF9BVURJT19QQUNLRVRTX1BFUl9MSU5F KDMpIHwgLyogc2hvdWxkIGJlIHN1ZmZpZW50IGZvciBhbGwgYXVkaW8gbW9kZXMgYW5kIHNtYWxs IGVub3VnaCBmb3IgYWxsIGhibGFua3MgKi8KLQkJIEhETUkwXzYwOTU4X0NTX1VQREFURSwgLyog YWxsb3cgNjA5NTggY2hhbm5lbCBzdGF0dXMgZmllbGRzIHRvIGJlIHVwZGF0ZWQgKi8KLQkJIH4o SERNSTBfQVVESU9fU0FNUExFX1NFTkQgfAotCQkgICBIRE1JMF9BVURJT19ERUxBWV9FTl9NQVNL IHwKLQkJICAgSERNSTBfQVVESU9fUEFDS0VUU19QRVJfTElORV9NQVNLIHwKLQkJICAgSERNSTBf NjA5NThfQ1NfVVBEQVRFKSk7Ci0KLQlXUkVHMzJfT1IoSERNSTBfSU5GT0ZSQU1FX0NPTlRST0ww ICsgb2Zmc2V0LAotCQkgIEhETUkwX0FVRElPX0lORk9fU0VORCB8IC8qIGVuYWJsZSBhdWRpbyBp bmZvIGZyYW1lcyAoZnJhbWVzIHdvbid0IGJlIHNldCB1bnRpbCBhdWRpbyBpcyBlbmFibGVkKSAq LwotCQkgIEhETUkwX0FVRElPX0lORk9fVVBEQVRFKTsgLyogcmVxdWlyZWQgZm9yIGF1ZGlvIGlu Zm8gdmFsdWVzIHRvIGJlIHVwZGF0ZWQgKi8KLQotCVdSRUczMl9QKEhETUkwX0lORk9GUkFNRV9D T05UUk9MMSArIG9mZnNldCwKLQkJIEhETUkwX0FVRElPX0lORk9fTElORSgyKSwgLyogYW55dGhp bmcgb3RoZXIgdGhhbiAwICovCi0JCSB+SERNSTBfQVVESU9fSU5GT19MSU5FX01BU0spOwotCiAJ V1JFRzMyX0FORChIRE1JMF9HQyArIG9mZnNldCwKIAkJICAgfkhETUkwX0dDX0FWTVVURSk7IC8q IHVuc2V0IEhETUkwX0dDX0FWTVVURSAqLwogCi0JaWYgKHJhZGVvbl9hdWRpb19zZXRfYXZpX3Bh Y2tldChlbmNvZGVyLCBtb2RlKSA8IDApCi0JCXJldHVybjsKLQotCS8qIGZnbHJ4IGR1cGxpY2F0 ZXMgSU5GT0ZSQU1FX0NPTlRST0wwICYgSU5GT0ZSQU1FX0NPTlRST0wxIG9wcyBoZXJlICovCi0K LQlXUkVHMzJfQU5EKEhETUkwX0dFTkVSSUNfUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCi0JCSAg IH4oSERNSTBfR0VORVJJQzBfU0VORCB8Ci0JCSAgICAgSERNSTBfR0VORVJJQzBfQ09OVCB8Ci0J CSAgICAgSERNSTBfR0VORVJJQzBfVVBEQVRFIHwKLQkJICAgICBIRE1JMF9HRU5FUklDMV9TRU5E IHwKLQkJICAgICBIRE1JMF9HRU5FUklDMV9DT05UIHwKLQkJICAgICBIRE1JMF9HRU5FUklDMF9M SU5FX01BU0sgfAotCQkgICAgIEhETUkwX0dFTkVSSUMxX0xJTkVfTUFTSykpOwotCiAJcmFkZW9u X2F1ZGlvX3VwZGF0ZV9hY3IoZW5jb2RlciwgbW9kZS0+Y2xvY2spOworCXJhZGVvbl9hdWRpb19z ZXRfYXVkaW9fcGFja2V0KGVuY29kZXIpOwogCi0JV1JFRzMyX1AoSERNSTBfNjA5NThfMCArIG9m ZnNldCwKLQkJIEhETUkwXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX0woMSksCi0JCSB+KEhETUkw XzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX0xfTUFTSyB8Ci0JCSAgIEhETUkwXzYwOTU4X0NTX0NM T0NLX0FDQ1VSQUNZX01BU0spKTsKLQotCVdSRUczMl9QKEhETUkwXzYwOTU4XzEgKyBvZmZzZXQs Ci0JCSBIRE1JMF82MDk1OF9DU19DSEFOTkVMX05VTUJFUl9SKDIpLAotCQkgfkhETUkwXzYwOTU4 X0NTX0NIQU5ORUxfTlVNQkVSX1JfTUFTSyk7CisJaWYgKHJhZGVvbl9hdWRpb19zZXRfYXZpX3Bh Y2tldChlbmNvZGVyLCBtb2RlKSA8IDApCisJCXJldHVybjsKIAogCS8qIGl0J3MgdW5rbm93biB3 aGF0IHRoZXNlIGJpdHMgZG8gZXhjYXRseSwgYnV0IGl0J3MgaW5kZWVkIHF1aXRlIHVzZWZ1bCBm b3IgZGVidWdnaW5nICovCiAJV1JFRzMyKEhETUkwX1JBTVBfQ09OVFJPTDAgKyBvZmZzZXQsIDB4 MDBGRkZGRkYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVk aW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F1ZGlvLmMKaW5kZXggNDgyMTkz My4uNzI4YTQxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVk aW8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdWRpby5jCkBAIC04OSw2 ICs4OSw5IEBAIHZvaWQgcjYwMF9zZXRfdmJpX3BhY2tldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsIHUzMiBvZmZzZXQpOwogdm9pZCBkY2U0X3NldF92YmlfcGFja2V0KHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwgdTMyIG9mZnNldCk7CiB2b2lkIGRjZTRfaGRtaV9zZXRfY29sb3Jf ZGVwdGgoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCXUzMiBvZmZzZXQsIGludCBicGMp Owordm9pZCByNjAwX3NldF9hdWRpb19wYWNrZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy LCB1MzIgb2Zmc2V0KTsKK3ZvaWQgZGNlM18yX3NldF9hdWRpb19wYWNrZXQoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLCB1MzIgb2Zmc2V0KTsKK3ZvaWQgZGNlNF9zZXRfYXVkaW9fcGFja2V0 KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgdTMyIG9mZnNldCk7CiAKIHN0YXRpYyBjb25z dCB1MzIgcGluX29mZnNldHNbN10gPQogewpAQCAtMTQyLDYgKzE0NSw3IEBAIHN0YXRpYyBzdHJ1 Y3QgcmFkZW9uX2F1ZGlvX2Z1bmNzIHI2MDBfaGRtaV9mdW5jcyA9IHsKIAkudXBkYXRlX2FjciA9 IHI2MDBfaGRtaV91cGRhdGVfYWNyLAogCS5zZXRfdmJpX3BhY2tldCA9IHI2MDBfc2V0X3ZiaV9w YWNrZXQsCiAJLnNldF9hdmlfcGFja2V0ID0gcjYwMF9zZXRfYXZpX3BhY2tldCwKKwkuc2V0X2F1 ZGlvX3BhY2tldCA9IHI2MDBfc2V0X2F1ZGlvX3BhY2tldCwKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qg cmFkZW9uX2F1ZGlvX2Z1bmNzIGRjZTMyX2hkbWlfZnVuY3MgPSB7CkBAIC0xNTIsNiArMTU2LDcg QEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9fZnVuY3MgZGNlMzJfaGRtaV9mdW5jcyA9IHsK IAkudXBkYXRlX2FjciA9IGRjZTNfMl9oZG1pX3VwZGF0ZV9hY3IsCiAJLnNldF92YmlfcGFja2V0 ID0gcjYwMF9zZXRfdmJpX3BhY2tldCwKIAkuc2V0X2F2aV9wYWNrZXQgPSByNjAwX3NldF9hdmlf cGFja2V0LAorCS5zZXRfYXVkaW9fcGFja2V0ID0gZGNlM18yX3NldF9hdWRpb19wYWNrZXQsCiB9 OwogCiBzdGF0aWMgc3RydWN0IHJhZGVvbl9hdWRpb19mdW5jcyBkY2UzMl9kcF9mdW5jcyA9IHsK QEAgLTE3Miw2ICsxNzcsNyBAQCBzdGF0aWMgc3RydWN0IHJhZGVvbl9hdWRpb19mdW5jcyBkY2U0 X2hkbWlfZnVuY3MgPSB7CiAJLnNldF92YmlfcGFja2V0ID0gZGNlNF9zZXRfdmJpX3BhY2tldCwK IAkuc2V0X2NvbG9yX2RlcHRoID0gZGNlNF9oZG1pX3NldF9jb2xvcl9kZXB0aCwKIAkuc2V0X2F2 aV9wYWNrZXQgPSBldmVyZ3JlZW5fc2V0X2F2aV9wYWNrZXQsCisJLnNldF9hdWRpb19wYWNrZXQg PSBkY2U0X3NldF9hdWRpb19wYWNrZXQsCiB9OwogCiBzdGF0aWMgc3RydWN0IHJhZGVvbl9hdWRp b19mdW5jcyBkY2U0X2RwX2Z1bmNzID0gewpAQCAtMTkzLDYgKzE5OSw3IEBAIHN0YXRpYyBzdHJ1 Y3QgcmFkZW9uX2F1ZGlvX2Z1bmNzIGRjZTZfaGRtaV9mdW5jcyA9IHsKIAkuc2V0X3ZiaV9wYWNr ZXQgPSBkY2U0X3NldF92YmlfcGFja2V0LAogCS5zZXRfY29sb3JfZGVwdGggPSBkY2U0X2hkbWlf c2V0X2NvbG9yX2RlcHRoLAogCS5zZXRfYXZpX3BhY2tldCA9IGV2ZXJncmVlbl9zZXRfYXZpX3Bh Y2tldCwKKwkuc2V0X2F1ZGlvX3BhY2tldCA9IGRjZTRfc2V0X2F1ZGlvX3BhY2tldCwKIH07CiAK IHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2F1ZGlvX2Z1bmNzIGRjZTZfZHBfZnVuY3MgPSB7CkBAIC02 MTYsMyArNjIzLDE1IEBAIHZvaWQgcmFkZW9uX2hkbWlfc2V0X2NvbG9yX2RlcHRoKHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcikKIAlpZiAocmFkZW9uX2VuY29kZXItPmF1ZGlvICYmIHJhZGVv bl9lbmNvZGVyLT5hdWRpby0+c2V0X2NvbG9yX2RlcHRoKQogCQlyYWRlb25fZW5jb2Rlci0+YXVk aW8tPnNldF9jb2xvcl9kZXB0aChlbmNvZGVyLCBkaWctPmFmbXQtPm9mZnNldCwgYnBjKTsKIH0K Kwordm9pZCByYWRlb25fYXVkaW9fc2V0X2F1ZGlvX3BhY2tldChzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIpCit7CisgICAgc3RydWN0IHJhZGVvbl9lbmNvZGVyICpyYWRlb25fZW5jb2RlciA9 IHRvX3JhZGVvbl9lbmNvZGVyKGVuY29kZXIpOworICAgIHN0cnVjdCByYWRlb25fZW5jb2Rlcl9h dG9tX2RpZyAqZGlnID0gcmFkZW9uX2VuY29kZXItPmVuY19wcml2OworCisJaWYgKCFkaWcgfHwg IWRpZy0+YWZtdCkKKwkJcmV0dXJuOworCisJaWYgKHJhZGVvbl9lbmNvZGVyLT5hdWRpbyAmJiBy YWRlb25fZW5jb2Rlci0+YXVkaW8tPnNldF9hdWRpb19wYWNrZXQpCisJCXJhZGVvbl9lbmNvZGVy LT5hdWRpby0+c2V0X2F1ZGlvX3BhY2tldChlbmNvZGVyLCBkaWctPmFmbXQtPm9mZnNldCk7Cit9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdWRpby5oIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uaAppbmRleCA0ODgwMzk2Li5jZWZlNDU3 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdWRpby5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F1ZGlvLmgKQEAgLTU5LDYgKzU5LDcgQEAg c3RydWN0IHJhZGVvbl9hdWRpb19mdW5jcwogCXZvaWQgKCpzZXRfY29sb3JfZGVwdGgpKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlciwgdTMyIG9mZnNldCwgaW50IGJwYyk7CiAJdm9pZCAoKnNl dF9hdmlfcGFja2V0KShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgdTMyIG9mZnNldCwKIAkJ dW5zaWduZWQgY2hhciAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7CisJdm9pZCAoKnNldF9hdWRpb19w YWNrZXQpKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgdTMyIG9mZnNldCk7CiB9OwogCiBp bnQgcmFkZW9uX2F1ZGlvX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwpAQCAtODMs NSArODQsNiBAQCBpbnQgcmFkZW9uX2F1ZGlvX3NldF9hdmlfcGFja2V0KHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlciwKIHZvaWQgcmFkZW9uX2F1ZGlvX3VwZGF0ZV9hY3Ioc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLCB1bnNpZ25lZCBpbnQgY2xvY2spOwogdm9pZCByYWRlb25fYXVkaW9f c2V0X3ZiaV9wYWNrZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKIHZvaWQgcmFkZW9u X2hkbWlfc2V0X2NvbG9yX2RlcHRoKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cit2b2lk IHJhZGVvbl9hdWRpb19zZXRfYXVkaW9fcGFja2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cik7CiAKICNlbmRpZgotLSAKMS44LjMuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK