From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH 3/3] tools & docs: add L2 CAT support in tools and docs. Date: Thu, 25 Aug 2016 13:22:45 +0800 Message-ID: <1472102565-7237-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bcnAW-0007nf-Qp for xen-devel@lists.xenproject.org; Thu, 25 Aug 2016 05:25:37 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: wei.liu2@citrix.com, he.chen@linux.intel.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, yi.y.sun@linux.intel.com, jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpcyB0aGUgeGwveGMgY2hhbmdlcyB0byBzdXBwb3J0IEludGVsIEwyIENBVAoo Q2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5KS4KClRoZSBuZXcgbGV2ZWwgb3B0aW9uIGlzIGlu dHJvZHVjZWQgdG8gb3JpZ2luYWwgQ0FUIHNldHRpbmcKY29tbWFuZCBpbiBvcmRlciB0byBzZXQg Q0JNIGZvciBzcGVjaWZpZWQgbGV2ZWwgQ0FULgotICd4bCBwc3ItaHdpbmZvJyBpcyB1cGRhdGVk IHRvIHNob3cgYm90aCBMMyBDQVQgYW5kIEwyIENBVAogIGluZm8uCi0gJ3hsIHBzci1jYXQtY2Jt LXNldCcgaXMgdXBkYXRlZCB0byBzZXQgY2FjaGUgY2FwYWNpdHkKICBiaXRtYXNrcyhDQk0pIGZv ciBhIGRvbWFpbiBhY2NvcmRpbmcgdG8gaW5wdXQgY2FjaGUgbGV2ZWwuCi0gJ3hsIHBzci1jYXQt c2hvdycgaXMgdXBkYXRlZCB0byBzaG93IENCTSBvZiBhIGRvbWFpbgogIGFjY29yZGluZyB0byBp bnB1dCBjYWNoZSBsZXZlbC4KCkV4YW1wbGVzOgpyb290QDp+JCB4bCBwc3ItaHdpbmZvIC0tY2F0 CkNhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9neSAoQ0FUKTogTDIKU29ja2V0IElEICAgICAgIDog MApNYXhpbXVtIENPUyAgICAgOiAzCkNCTSBsZW5ndGggICAgICA6IDgKRGVmYXVsdCBDQk0gICAg IDogMHhmZgoKcm9vdEA6fiQgeGwgcHNyLWNhdC1jYm0tc2V0IC1sMiAxIDB4N2YKCnJvb3RAOn4k IHhsIHBzci1jYXQtc2hvdyAtbDIgMQpTb2NrZXQgSUQgICAgICAgOiAwCkRlZmF1bHQgQ0JNICAg ICA6IDB4ZmYKICAgSUQgICAgICAgICAgICAgICAgICAgICBOQU1FICAgICAgICAgICAgIENCTQog ICAgMSAgICAgICAgICAgICAgICAgdWJ1bnR1MTQgICAgICAgICAgICAweDdmCgpTaWduZWQtb2Zm LWJ5OiBIZSBDaGVuIDxoZS5jaGVuQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogWWkg U3VuIDx5aS55LnN1bkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZG9jcy9tYW4veGwucG9kLjEuaW4g ICAgICAgICAgfCAgMjUgKysrKystCiBkb2NzL21pc2MveGwtcHNyLm1hcmtkb3duICAgICB8ICAx MCArKy0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIHwgICA3ICstCiB0b29scy9saWJ4 Yy94Y19wc3IuYyAgICAgICAgICB8ICAyOCArKysrKy0tCiB0b29scy9saWJ4bC9saWJ4bC5oICAg ICAgICAgICB8ICAgMiArCiB0b29scy9saWJ4bC9saWJ4bF9wc3IuYyAgICAgICB8ICA1MCArKysr KysrKysrLQogdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsICAgfCAgIDEgKwogdG9vbHMvbGli eGwveGxfY21kaW1wbC5jICAgICAgfCAxOTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tCiB0b29scy9saWJ4bC94bF9jbWR0YWJsZS5jICAgICB8ICAgNCArLQogOSBm aWxlcyBjaGFuZ2VkLCAyNjggaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jcy9tYW4veGwucG9kLjEuaW4gYi9kb2NzL21hbi94bC5wb2QuMS5pbgppbmRleCAx YWRmMzIyLi40N2JkZmM2IDEwMDY0NAotLS0gYS9kb2NzL21hbi94bC5wb2QuMS5pbgorKysgYi9k b2NzL21hbi94bC5wb2QuMS5pbgpAQCAtMTY2MCw2ICsxNjYwLDkgQEAgb2NjdXBhbmN5IG1vbml0 b3Jpbmcgc2hhcmUgdGhlIHNhbWUgc2V0IG9mIHVuZGVybHlpbmcgbW9uaXRvcmluZyBzZXJ2aWNl LiBPbmNlCiBhIGRvbWFpbiBpcyBhdHRhY2hlZCB0byB0aGUgbW9uaXRvcmluZyBzZXJ2aWNlLCBt b25pdG9yaW5nIGRhdGEgY2FuIGJlIHNob3duCiBmb3IgYW55IG9mIHRoZXNlIG1vbml0b3Jpbmcg dHlwZXMuCiAKK1RoZXJlIGlzIG5vIGNhY2hlIG1vbml0b3JpbmcgYW5kIG1lbW9yeSBiYW5kd2lk dGggbW9uaXRvcmluZyBvbiBMMiBjYWNoZSBzbworZmFyLgorCiA9b3ZlciA0CiAKID1pdGVtIEI8 cHNyLWNtdC1hdHRhY2g+IFtJPGRvbWFpbi1pZD5dCkBAIC0xNjg0LDcgKzE2ODcsNyBAQCBtb25p dG9yIHR5cGVzIGFyZToKIAogSW50ZWwgQnJvYWR3ZWxsIGFuZCBsYXRlciBzZXJ2ZXIgcGxhdGZv cm1zIG9mZmVyIGNhcGFiaWxpdGllcyB0byBjb25maWd1cmUgYW5kCiBtYWtlIHVzZSBvZiB0aGUg Q2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5IChDQVQpIG1lY2hhbmlzbXMsIHdoaWNoIGVuYWJs ZSBtb3JlCi1jYWNoZSByZXNvdXJjZXMgKGkuZS4gTDMgY2FjaGUpIHRvIGJlIG1hZGUgYXZhaWxh YmxlIGZvciBoaWdoIHByaW9yaXR5CitjYWNoZSByZXNvdXJjZXMgKGkuZS4gTDMvTDIgY2FjaGUp IHRvIGJlIG1hZGUgYXZhaWxhYmxlIGZvciBoaWdoIHByaW9yaXR5CiBhcHBsaWNhdGlvbnMuIElu IHRoZSBYZW4gaW1wbGVtZW50YXRpb24sIENBVCBpcyB1c2VkIHRvIGNvbnRyb2wgY2FjaGUgYWxs b2NhdGlvbgogb24gVk0gYmFzaXMuIFRvIGVuZm9yY2UgY2FjaGUgb24gYSBzcGVjaWZpYyBkb21h aW4sIGp1c3Qgc2V0IGNhcGFjaXR5IGJpdG1hc2tzCiAoQ0JNKSBmb3IgdGhlIGRvbWFpbi4KQEAg LTE2OTQsNyArMTY5Nyw3IEBAIEludGVsIEJyb2Fkd2VsbCBhbmQgbGF0ZXIgc2VydmVyIHBsYXRm b3JtcyBhbHNvIG9mZmVyIENvZGUvRGF0YSBQcmlvcml0aXphdGlvbgogYXBwbGljYXRpb25zLiBD RFAgaXMgdXNlZCBvbiBhIHBlciBWTSBiYXNpcyBpbiB0aGUgWGVuIGltcGxlbWVudGF0aW9uLiBU bwogc3BlY2lmeSBjb2RlIG9yIGRhdGEgQ0JNIGZvciB0aGUgZG9tYWluLCBDRFAgZmVhdHVyZSBt dXN0IGJlIGVuYWJsZWQgYW5kIENCTQogdHlwZSBvcHRpb25zIG5lZWQgdG8gYmUgc3BlY2lmaWVk IHdoZW4gc2V0dGluZyBDQk0sIGFuZCB0aGUgdHlwZSBvcHRpb25zIChjb2RlCi1hbmQgZGF0YSkg YXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KK2FuZCBkYXRhKSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZl LiBUaGVyZSBpcyBubyBDRFAgc3VwcG9ydCBvbiBMMiBzbyBmYXIuCiAKID1vdmVyIDQKIApAQCAt MTcxMSw2ICsxNzE0LDExIEBAIEI8T1BUSU9OUz4KIAogU3BlY2lmeSB0aGUgc29ja2V0IHRvIHBy b2Nlc3MsIG90aGVyd2lzZSBhbGwgc29ja2V0cyBhcmUgcHJvY2Vzc2VkLgogCis9aXRlbSBCPC1s IExFVkVMPiwgQjwtLWxldmVsPUxFVkVMPgorCitTcGVjaWZ5IHRoZSBjYWNoZSBsZXZlbCB0byBw cm9jZXNzLCBvdGhlcndpc2UgdGhlIGxhc3QgbGV2ZWwgY2FjaGUgaXMKK3Byb2Nlc3NlZC4KKwog PWl0ZW0gQjwtYz4sIEI8LS1jb2RlPgogCiBTZXQgY29kZSBDQk0gd2hlbiBDRFAgaXMgZW5hYmxl ZC4KQEAgLTE3MjEsMTAgKzE3MjksMjEgQEAgU2V0IGRhdGEgQ0JNIHdoZW4gQ0RQIGlzIGVuYWJs ZWQuCiAKID1iYWNrCiAKLT1pdGVtIEI8cHNyLWNhdC1zaG93PiBbSTxkb21haW4taWQ+XQorPWl0 ZW0gQjxwc3ItY2F0LXNob3c+IFtJPE9QVElPTlM+XSBbSTxkb21haW4taWQ+XQogCiBTaG93IENB VCBzZXR0aW5ncyBmb3IgYSBjZXJ0YWluIGRvbWFpbiBvciBhbGwgZG9tYWlucy4KIAorQjxPUFRJ T05TPgorCis9b3ZlciA0CisKKz1pdGVtIEI8LWwgTEVWRUw+LCBCPC0tbGV2ZWw9TEVWRUw+CisK K1NwZWNpZnkgdGhlIGNhY2hlIGxldmVsIHRvIHByb2Nlc3MsIG90aGVyd2lzZSB0aGUgbGFzdCBs ZXZlbCBjYWNoZSBpcworcHJvY2Vzc2VkLgorCis9YmFjaworCiA9YmFjawogCiA9aGVhZDEgSUdO T1JFRCBGT1IgQ09NUEFUSUJJTElUWSBXSVRIIFhNCmRpZmYgLS1naXQgYS9kb2NzL21pc2MveGwt cHNyLm1hcmtkb3duIGIvZG9jcy9taXNjL3hsLXBzci5tYXJrZG93bgppbmRleCBjM2MxZThlLi5i ZDJiNmJkIDEwMDY0NAotLS0gYS9kb2NzL21pc2MveGwtcHNyLm1hcmtkb3duCisrKyBiL2RvY3Mv bWlzYy94bC1wc3IubWFya2Rvd24KQEAgLTcwLDcgKzcwLDcgQEAgdG90YWwtbWVtLWJhbmR3aWR0 aCBpbnN0ZWFkIG9mIGNhY2hlLW9jY3VwYW5jeSkuIEUuZy4gYWZ0ZXIgYSBgeGwgcHNyLWNtdC1h dHRhY2gKIAogQ2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5IChDQVQpIGlzIGEgbmV3IGZlYXR1 cmUgYXZhaWxhYmxlIG9uIEludGVsCiBCcm9hZHdlbGwgYW5kIGxhdGVyIHNlcnZlciBwbGF0Zm9y bXMgdGhhdCBhbGxvd3MgYW4gT1Mgb3IgSHlwZXJ2aXNvci9WTU0gdG8KLXBhcnRpdGlvbiBjYWNo ZSBhbGxvY2F0aW9uIChpLmUuIEwzIGNhY2hlKSBiYXNlZCBvbiBhcHBsaWNhdGlvbiBwcmlvcml0 eSBvcgorcGFydGl0aW9uIGNhY2hlIGFsbG9jYXRpb24gKGkuZS4gTDMvTDIgY2FjaGUpIGJhc2Vk IG9uIGFwcGxpY2F0aW9uIHByaW9yaXR5IG9yCiBDbGFzcyBvZiBTZXJ2aWNlIChDT1MpLiBFYWNo IENPUyBpcyBjb25maWd1cmVkIHVzaW5nIGNhcGFjaXR5IGJpdG1hc2tzIChDQk0pCiB3aGljaCBy ZXByZXNlbnQgY2FjaGUgY2FwYWNpdHkgYW5kIGluZGljYXRlIHRoZSBkZWdyZWUgb2Ygb3Zlcmxh cCBhbmQKIGlzb2xhdGlvbiBiZXR3ZWVuIGNsYXNzZXMuIFN5c3RlbSBjYWNoZSByZXNvdXJjZSBp cyBkaXZpZGVkIGludG8gbnVtYmVycyBvZgpAQCAtMTE5LDEzICsxMTksMTkgQEAgQSBjYm0gaXMg dmFsaWQgb25seSB3aGVuOgogSW4gYSBtdWx0aS1zb2NrZXQgc3lzdGVtLCB0aGUgc2FtZSBjYm0g d2lsbCBiZSBzZXQgb24gZWFjaCBzb2NrZXQgYnkgZGVmYXVsdC4KIFBlciBzb2NrZXQgY2JtIGNh biBiZSBzcGVjaWZpZWQgd2l0aCB0aGUgYC0tc29ja2V0IFNPQ0tFVGAgb3B0aW9uLgogCitJbiBk aWZmZXJlbnQgc3lzdGVtcywgdGhlIGRpZmZlcmVudCBjYWNoZSBsZXZlbCBpcyBzdXBwb3J0ZWQs IGUuZy4gTDMgY2FjaGUgb3IKK0wyIGNhY2hlLiBQZXIgY2FjaGUgbGV2ZWwgY2JtIGNhbiBiZSBz cGVjaWZpZWQgd2l0aCB0aGUgYC0tbGV2ZWwgTEVWRUxgIG9wdGlvbi4KKwogU2V0dGluZyB0aGUg Q0JNIG1heSBub3QgYmUgc3VjY2Vzc2Z1bCBpZiBpbnN1ZmZpY2llbnQgQ09TIGlzIGF2YWlsYWJs ZS4gSW4KIHN1Y2ggY2FzZSB1bnVzZWQgQ09TKGVzKSBtYXkgYmUgZnJlZWQgYnkgc2V0dGluZyBD Qk0gb2YgYWxsIHJlbGF0ZWQgZG9tYWlucyB0bwogaXRzIGRlZmF1bHQgdmFsdWUoYWxsLW9uZXMp LgogCiBQZXIgZG9tYWluIENCTSBzZXR0aW5ncyBjYW4gYmUgc2hvd24gYnk6CiAKLWB4bCBwc3It Y2F0LXNob3dgCitgeGwgcHNyLWNhdC1zaG93IFtPUFRJT05TXSA8ZG9taWQ+YAorCitJbiBkaWZm ZXJlbnQgc3lzdGVtcywgdGhlIGRpZmZlcmVudCBjYWNoZSBsZXZlbCBpcyBzdXBwb3J0ZWQsIGUu Zy4gTDMgY2FjaGUgb3IKK0wyIGNhY2hlLiBQZXIgY2FjaGUgbGV2ZWwgY2JtIGNhbiBiZSBzcGVj aWZpZWQgd2l0aCB0aGUgYC0tbGV2ZWwgTEVWRUxgIG9wdGlvbi4KIAogIyMgQ29kZSBhbmQgRGF0 YSBQcmlvcml0aXphdGlvbiAoQ0RQKQogCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRl L3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCmluZGV4IDU2MGNlN2Iu LmQ3MGU4YTggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisrKyBi L3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCkBAIC0yNTg1LDYgKzI1ODUsNyBAQCBlbnVt IHhjX3Bzcl9jYXRfdHlwZSB7CiAgICAgWENfUFNSX0NBVF9MM19DQk0gICAgICA9IDEsCiAgICAg WENfUFNSX0NBVF9MM19DQk1fQ09ERSA9IDIsCiAgICAgWENfUFNSX0NBVF9MM19DQk1fREFUQSA9 IDMsCisgICAgWENfUFNSX0NBVF9MMl9DQk0gICAgICA9IDQsCiB9OwogdHlwZWRlZiBlbnVtIHhj X3Bzcl9jYXRfdHlwZSB4Y19wc3JfY2F0X3R5cGU7CiAKQEAgLTI2MDksOSArMjYxMCw5IEBAIGlu dCB4Y19wc3JfY2F0X3NldF9kb21haW5fZGF0YSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3Qg ZG9taWQsCiBpbnQgeGNfcHNyX2NhdF9nZXRfZG9tYWluX2RhdGEoeGNfaW50ZXJmYWNlICp4Y2gs IHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhjX3Bzcl9j YXRfdHlwZSB0eXBlLCB1aW50MzJfdCB0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDY0X3QgKmRhdGEpOwotaW50IHhjX3Bzcl9jYXRfZ2V0X2wzX2luZm8oeGNfaW50 ZXJmYWNlICp4Y2gsIHVpbnQzMl90IHNvY2tldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90ICpjb3NfbWF4LCB1aW50MzJfdCAqY2JtX2xlbiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJvb2wgKmNkcF9lbmFibGVkKTsKK2ludCB4Y19wc3JfY2F0X2dldF9pbmZvKHhj X2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBzb2NrZXQsIGludCBsdmwsCisgICAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCAqY29zX21heCwgdWludDMyX3QgKmNibV9sZW4sCisgICAgICAg ICAgICAgICAgICAgICAgICBib29sICpjZHBfZW5hYmxlZCk7CiAKIGludCB4Y19nZXRfY3B1X2xl dmVsbGluZ19jYXBzKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCAqY2Fwcyk7CiBpbnQgeGNf Z2V0X2NwdV9mZWF0dXJlc2V0KHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBpbmRleCwKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3Bzci5jIGIvdG9vbHMvbGlieGMveGNfcHNyLmMKaW5k ZXggNDNiMzI4Ni4uNjE4ZGJjYyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfcHNyLmMKKysr IGIvdG9vbHMvbGlieGMveGNfcHNyLmMKQEAgLTI2Niw2ICsyNjYsOSBAQCBpbnQgeGNfcHNyX2Nh dF9zZXRfZG9tYWluX2RhdGEoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkLAogICAg IGNhc2UgWENfUFNSX0NBVF9MM19DQk1fREFUQToKICAgICAgICAgY21kID0gWEVOX0RPTUNUTF9Q U1JfQ0FUX09QX1NFVF9MM19EQVRBOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFhDX1BTUl9D QVRfTDJfQ0JNOgorICAgICAgICBjbWQgPSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfU0VUX0wyX0NC TTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgZXJybm8gPSBFSU5WQUw7 CiAgICAgICAgIHJldHVybiAtMTsKQEAgLTI5OSw2ICszMDIsOSBAQCBpbnQgeGNfcHNyX2NhdF9n ZXRfZG9tYWluX2RhdGEoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkLAogICAgIGNh c2UgWENfUFNSX0NBVF9MM19DQk1fREFUQToKICAgICAgICAgY21kID0gWEVOX0RPTUNUTF9QU1Jf Q0FUX09QX0dFVF9MM19EQVRBOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFhDX1BTUl9DQVRf TDJfQ0JNOgorICAgICAgICBjbWQgPSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfR0VUX0wyX0NCTTsK KyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgZXJybm8gPSBFSU5WQUw7CiAg ICAgICAgIHJldHVybiAtMTsKQEAgLTMxNywyMyArMzIzLDI5IEBAIGludCB4Y19wc3JfY2F0X2dl dF9kb21haW5fZGF0YSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQsCiAgICAgcmV0 dXJuIHJjOwogfQogCi1pbnQgeGNfcHNyX2NhdF9nZXRfbDNfaW5mbyh4Y19pbnRlcmZhY2UgKnhj aCwgdWludDMyX3Qgc29ja2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg KmNvc19tYXgsIHVpbnQzMl90ICpjYm1fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbCAqY2RwX2VuYWJsZWQpCitpbnQgeGNfcHNyX2NhdF9nZXRfaW5mbyh4Y19pbnRlcmZhY2Ug KnhjaCwgdWludDMyX3Qgc29ja2V0LCBpbnQgbHZsLAorICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgKmNvc19tYXgsIHVpbnQzMl90ICpjYm1fbGVuLAorICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCAqY2RwX2VuYWJsZWQpCiB7Ci0gICAgaW50IHJjOworICAgIGludCByYyA9IC0x OwogICAgIERFQ0xBUkVfU1lTQ1RMOwogCisgICAgaWYgKCBsdmwgPT0gMiApCisgICAgICAgIHN5 c2N0bC51LnBzcl9jYXRfb3AuY21kID0gWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9sMl9pbmZvOwor ICAgIGVsc2UgaWYgKCBsdmwgPT0gMyApCisgICAgICAgIHN5c2N0bC51LnBzcl9jYXRfb3AuY21k ID0gWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9sM19pbmZvOworICAgIGVsc2UKKyAgICAgICAgcmV0 dXJuIHJjOworCiAgICAgc3lzY3RsLmNtZCA9IFhFTl9TWVNDVExfcHNyX2NhdF9vcDsKLSAgICBz eXNjdGwudS5wc3JfY2F0X29wLmNtZCA9IFhFTl9TWVNDVExfUFNSX0NBVF9nZXRfbDNfaW5mbzsK ICAgICBzeXNjdGwudS5wc3JfY2F0X29wLnRhcmdldCA9IHNvY2tldDsKIAogICAgIHJjID0geGNf c3lzY3RsKHhjaCwgJnN5c2N0bCk7CiAgICAgaWYgKCAhcmMgKQogICAgIHsKLSAgICAgICAgKmNv c19tYXggPSBzeXNjdGwudS5wc3JfY2F0X29wLnUubDNfaW5mby5jb3NfbWF4OwotICAgICAgICAq Y2JtX2xlbiA9IHN5c2N0bC51LnBzcl9jYXRfb3AudS5sM19pbmZvLmNibV9sZW47Ci0gICAgICAg ICpjZHBfZW5hYmxlZCA9IHN5c2N0bC51LnBzcl9jYXRfb3AudS5sM19pbmZvLmZsYWdzICYKKyAg ICAgICAgKmNvc19tYXggPSBzeXNjdGwudS5wc3JfY2F0X29wLnUuaW5mby5jb3NfbWF4OworICAg ICAgICAqY2JtX2xlbiA9IHN5c2N0bC51LnBzcl9jYXRfb3AudS5pbmZvLmNibV9sZW47CisgICAg ICAgICpjZHBfZW5hYmxlZCA9IHN5c2N0bC51LnBzcl9jYXRfb3AudS5pbmZvLmZsYWdzICYKICAg ICAgICAgICAgICAgICAgICAgICAgWEVOX1NZU0NUTF9QU1JfQ0FUX0wzX0NEUDsKICAgICB9CiAK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmggYi90b29scy9saWJ4bC9saWJ4bC5oCmlu ZGV4IGU0YzI1YzQuLjFjZGY2MjEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmgKKysr IGIvdG9vbHMvbGlieGwvbGlieGwuaApAQCAtMjE0MSw2ICsyMTQxLDggQEAgaW50IGxpYnhsX3Bz cl9jYXRfZ2V0X2NibShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAgKi8KIGludCBs aWJ4bF9wc3JfY2F0X2dldF9sM19pbmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9wc3JfY2F0X2lu Zm8gKippbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpucik7CitpbnQg bGlieGxfcHNyX2NhdF9nZXRfaW5mbyhsaWJ4bF9jdHggKmN0eCwgbGlieGxfcHNyX2NhdF9pbmZv ICoqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqbnIsIGludCBsdmwpOwog dm9pZCBsaWJ4bF9wc3JfY2F0X2luZm9fbGlzdF9mcmVlKGxpYnhsX3Bzcl9jYXRfaW5mbyAqbGlz dCwgaW50IG5yKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9wc3Iu YyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3Bzci5jCmluZGV4IDk5NzMzZjYuLjg2MWQ1YTggMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3Bzci5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3Bz ci5jCkBAIC0zNzksOCArMzc5LDU0IEBAIGludCBsaWJ4bF9wc3JfY2F0X2dldF9sM19pbmZvKGxp YnhsX2N0eCAqY3R4LCBsaWJ4bF9wc3JfY2F0X2luZm8gKippbmZvLAogCiAgICAgbGlieGxfZm9y X2VhY2hfc2V0X2JpdChzb2NrZXRpZCwgc29ja2V0bWFwKSB7CiAgICAgICAgIHB0cltpXS5pZCA9 IHNvY2tldGlkOwotICAgICAgICBpZiAoeGNfcHNyX2NhdF9nZXRfbDNfaW5mbyhjdHgtPnhjaCwg c29ja2V0aWQsICZwdHJbaV0uY29zX21heCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJnB0cltpXS5jYm1fbGVuLCAmcHRyW2ldLmNkcF9lbmFibGVkKSkgeworICAgICAgICBp ZiAoeGNfcHNyX2NhdF9nZXRfaW5mbyhjdHgtPnhjaCwgc29ja2V0aWQsIDMsICZwdHJbaV0uY29z X21heCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnB0cltpXS5jYm1fbGVuLCAm cHRyW2ldLmNkcF9lbmFibGVkKSkgeworICAgICAgICAgICAgbGlieGxfX3Bzcl9jYXRfbG9nX2Vy cl9tc2coZ2MsIGVycm5vKTsKKyAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKyAgICAgICAg ICAgIGZyZWUocHRyKTsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisgICAgICAg IGkrKzsKKyAgICB9CisKKyAgICAqaW5mbyA9IHB0cjsKKyAgICAqbnIgPSBpOworb3V0OgorICAg IGxpYnhsX2JpdG1hcF9kaXNwb3NlKCZzb2NrZXRtYXApOworICAgIEdDX0ZSRUU7CisgICAgcmV0 dXJuIHJjOworfQorCitpbnQgbGlieGxfcHNyX2NhdF9nZXRfaW5mbyhsaWJ4bF9jdHggKmN0eCwg bGlieGxfcHNyX2NhdF9pbmZvICoqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAqbnIsIGludCBsdmwpCit7CisgICAgR0NfSU5JVChjdHgpOworICAgIGludCByYzsKKyAgICBp bnQgaSA9IDAsIHNvY2tldGlkLCBucl9zb2NrZXRzOworICAgIGxpYnhsX2JpdG1hcCBzb2NrZXRt YXA7CisgICAgbGlieGxfcHNyX2NhdF9pbmZvICpwdHI7CisKKyAgICBsaWJ4bF9iaXRtYXBfaW5p dCgmc29ja2V0bWFwKTsKKworICAgIHJjID0gbGlieGxfX2NvdW50X3BoeXNpY2FsX3NvY2tldHMo Z2MsICZucl9zb2NrZXRzKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgTE9HRShFUlJPUiwgImZh aWxlZCB0byBnZXQgc3lzdGVtIHNvY2tldCBjb3VudCIpOworICAgICAgICBnb3RvIG91dDsKKyAg ICB9CisKKyAgICBsaWJ4bF9zb2NrZXRfYml0bWFwX2FsbG9jKGN0eCwgJnNvY2tldG1hcCwgbnJf c29ja2V0cyk7CisgICAgcmMgPSBsaWJ4bF9nZXRfb25saW5lX3NvY2tldG1hcChjdHgsICZzb2Nr ZXRtYXApOworICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgTE9HRShFUlJPUiwgImZhaWxlZCB0 byBnZXQgYXZhaWxhYmxlIHNvY2tldHMiKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisg ICAgcHRyID0gbGlieGxfX21hbGxvYyhOT0dDLCBucl9zb2NrZXRzICogc2l6ZW9mKGxpYnhsX3Bz cl9jYXRfaW5mbykpOworCisgICAgbGlieGxfZm9yX2VhY2hfc2V0X2JpdChzb2NrZXRpZCwgc29j a2V0bWFwKSB7CisgICAgICAgIHB0cltpXS5pZCA9IHNvY2tldGlkOworICAgICAgICBpZiAoeGNf cHNyX2NhdF9nZXRfaW5mbyhjdHgtPnhjaCwgc29ja2V0aWQsIGx2bCwgJnB0cltpXS5jb3NfbWF4 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHRyW2ldLmNibV9sZW4sICZwdHJb aV0uY2RwX2VuYWJsZWQpKSB7CiAgICAgICAgICAgICBsaWJ4bF9fcHNyX2NhdF9sb2dfZXJyX21z ZyhnYywgZXJybm8pOwogICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwogICAgICAgICAgICAg ZnJlZShwdHIpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIGIvdG9v bHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCmluZGV4IDk4YmZjM2EuLjQ1MDNhOGIgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAorKysgYi90b29scy9saWJ4bC9saWJ4bF90 eXBlcy5pZGwKQEAgLTg5MCw2ICs4OTAsNyBAQCBsaWJ4bF9wc3JfY2JtX3R5cGUgPSBFbnVtZXJh dGlvbigicHNyX2NibV90eXBlIiwgWwogICAgICgxLCAiTDNfQ0JNIiksCiAgICAgKDIsICJMM19D Qk1fQ09ERSIpLAogICAgICgzLCAiTDNfQ0JNX0RBVEEiKSwKKyAgICAoNCwgIkwyX0NCTSIpLAog ICAgIF0pCiAKIGxpYnhsX3Bzcl9jYXRfaW5mbyA9IFN0cnVjdCgicHNyX2NhdF9pbmZvIiwgWwpk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jIGIvdG9vbHMvbGlieGwveGxfY21k aW1wbC5jCmluZGV4IDc1NDBmYjEuLjRhODNjYWYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL3hs X2NtZGltcGwuYworKysgYi90b29scy9saWJ4bC94bF9jbWRpbXBsLmMKQEAgLTkyNzMsMTggKzky NzMsMTI0IEBAIGludCBtYWluX3Bzcl9jbXRfc2hvdyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAj ZW5kaWYKIAogI2lmZGVmIExJQlhMX0hBVkVfUFNSX0NBVAotc3RhdGljIGludCBwc3JfY2F0X2h3 aW5mbyh2b2lkKQorc3RhdGljIHZvaWQgcHNyX2NhdF9wcmludF9vbmVfZG9tYWluX2NibV90eXBl KHVpbnQzMl90IGRvbWlkLCB1aW50MzJfdCBzb2NrZXRpZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9wc3JfY2JtX3R5cGUgdHlwZSkKK3sKKyAg ICB1aW50NjRfdCBjYm07CisKKyAgICBpZiAoIWxpYnhsX3Bzcl9jYXRfZ2V0X2NibShjdHgsIGRv bWlkLCB0eXBlLCBzb2NrZXRpZCwgJmNibSkpCisgICAgICAgIHByaW50ZigiJSMxNiJQUkl4NjQs IGNibSk7CisgICAgZWxzZQorICAgICAgICBwcmludGYoIiUxNnMiLCAiZXJyb3IiKTsKK30KKwor c3RhdGljIGludCBwc3JfbDJfY2F0X2h3aW5mbyh2b2lkKQoreworICAgIGludCByYzsKKyAgICBp bnQgaSwgbnI7CisgICAgbGlieGxfcHNyX2NhdF9pbmZvICppbmZvOworCisgICAgcHJpbnRmKCJD YWNoZSBBbGxvY2F0aW9uIFRlY2hub2xvZ3kgKENBVCk6IEwyXG4iKTsKKworICAgIHJjID0gbGli eGxfcHNyX2NhdF9nZXRfaW5mbyhjdHgsICZpbmZvLCAmbnIsIDIpOworICAgIGlmIChyYykgewor ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBnZXQgbDIgY2F0IGluZm9cbiIpOwor ICAgICAgICByZXR1cm4gcmM7CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IG5yOyBpKysp IHsKKyAgICAgICAgLyogVGhlcmUgaXMgbm8gQ01UIG9uIEwyIGNhY2hlIHNvIGZhci4gKi8KKyAg ICAgICAgcHJpbnRmKCIlLTE2czogJXVcbiIsICJTb2NrZXQgSUQiLCBpbmZvW2ldLmlkKTsKKyAg ICAgICAgcHJpbnRmKCIlLTE2czogJXVcbiIsICJNYXhpbXVtIENPUyIsIGluZm9baV0uY29zX21h eCk7CisgICAgICAgIHByaW50ZigiJS0xNnM6ICV1XG4iLCAiQ0JNIGxlbmd0aCIsIGluZm9baV0u Y2JtX2xlbik7CisgICAgICAgIHByaW50ZigiJS0xNnM6ICUjbGx4XG4iLCAiRGVmYXVsdCBDQk0i LAorICAgICAgICAgICAgICAgKDF1bGwgPDwgaW5mb1tpXS5jYm1fbGVuKSAtIDEpOworICAgIH0K KworICAgIGxpYnhsX3Bzcl9jYXRfaW5mb19saXN0X2ZyZWUoaW5mbywgbnIpOworICAgIHJldHVy biByYzsKK30KKworc3RhdGljIHZvaWQgcHNyX2wyX2NhdF9wcmludF9vbmVfZG9tYWluX2NibSh1 aW50MzJfdCBkb21pZCwgdWludDMyX3Qgc29ja2V0aWQpCit7CisgICAgY2hhciAqZG9tYWluX25h bWU7CisKKyAgICBkb21haW5fbmFtZSA9IGxpYnhsX2RvbWlkX3RvX25hbWUoY3R4LCBkb21pZCk7 CisgICAgcHJpbnRmKCIlNWQlMjVzIiwgZG9taWQsIGRvbWFpbl9uYW1lKTsKKyAgICBmcmVlKGRv bWFpbl9uYW1lKTsKKworICAgIHBzcl9jYXRfcHJpbnRfb25lX2RvbWFpbl9jYm1fdHlwZShkb21p ZCwgc29ja2V0aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhM X1BTUl9DQk1fVFlQRV9MMl9DQk0pOworCisgICAgcHJpbnRmKCJcbiIpOworfQorCitzdGF0aWMg aW50IHBzcl9sMl9jYXRfcHJpbnRfZG9tYWluX2NibSh1aW50MzJfdCBkb21pZCwgdWludDMyX3Qg c29ja2V0aWQpCit7CisgICAgaW50IGksIG5yX2RvbWFpbnM7CisgICAgbGlieGxfZG9taW5mbyAq bGlzdDsKKworICAgIGlmIChkb21pZCAhPSBJTlZBTElEX0RPTUlEKSB7CisgICAgICAgIHBzcl9s Ml9jYXRfcHJpbnRfb25lX2RvbWFpbl9jYm0oZG9taWQsIHNvY2tldGlkKTsKKyAgICAgICAgcmV0 dXJuIDA7CisgICAgfQorCisgICAgaWYgKCEobGlzdCA9IGxpYnhsX2xpc3RfZG9tYWluKGN0eCwg Jm5yX2RvbWFpbnMpKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBnZXQg ZG9tYWluIGxpc3QgZm9yIGNibSBkaXNwbGF5XG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAg IH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBucl9kb21haW5zOyBpKyspCisgICAgICAgIHBzcl9s Ml9jYXRfcHJpbnRfb25lX2RvbWFpbl9jYm0obGlzdFtpXS5kb21pZCwgc29ja2V0aWQpOworICAg IGxpYnhsX2RvbWluZm9fbGlzdF9mcmVlKGxpc3QsIG5yX2RvbWFpbnMpOworCisgICAgcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQgcHNyX2wyX2NhdF9wcmludF9zb2NrZXQodWludDMyX3QgZG9t aWQsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqaW5mbykKK3sKKyAgICBwcmludGYoIiUtMTZzOiAldVxu IiwgIlNvY2tldCBJRCIsIGluZm8tPmlkKTsKKyAgICBwcmludGYoIiUtMTZzOiAlI2xseFxuIiwg IkRlZmF1bHQgQ0JNIiwgKDF1bGwgPDwgaW5mby0+Y2JtX2xlbikgLSAxKTsKKyAgICBwcmludGYo IiU1cyUyNXMlMTZzXG4iLCAiSUQiLCAiTkFNRSIsICJDQk0iKTsKKworICAgIHJldHVybiBwc3Jf bDJfY2F0X3ByaW50X2RvbWFpbl9jYm0oZG9taWQsIGluZm8tPmlkKTsKK30KKworc3RhdGljIGlu dCBwc3JfbDJfY2F0X3Nob3codWludDMyX3QgZG9taWQpCit7CisgICAgaW50IGksIG5yOworICAg IGludCByYzsKKyAgICBsaWJ4bF9wc3JfY2F0X2luZm8gKmluZm87CisKKyAgICByYyA9IGxpYnhs X3Bzcl9jYXRfZ2V0X2luZm8oY3R4LCAmaW5mbywgJm5yLCAyKTsKKyAgICBpZiAocmMpIHsKKyAg ICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gZ2V0IGwyIGNhdCBpbmZvXG4iKTsKKyAg ICAgICAgcmV0dXJuIHJjOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBucjsgaSsrKSB7 CisgICAgICAgIHJjID0gcHNyX2wyX2NhdF9wcmludF9zb2NrZXQoZG9taWQsIGluZm8gKyBpKTsK KyAgICAgICAgaWYgKHJjKQorICAgICAgICAgICAgZ290byBvdXQ7CisgICAgfQorCitvdXQ6Cisg ICAgbGlieGxfcHNyX2NhdF9pbmZvX2xpc3RfZnJlZShpbmZvLCBucik7CisgICAgcmV0dXJuIHJj OworfQorCitzdGF0aWMgaW50IHBzcl9sM19jYXRfaHdpbmZvKHZvaWQpCiB7CiAgICAgaW50IHJj OwogICAgIGludCBpLCBucjsKICAgICB1aW50MzJfdCBsM19jYWNoZV9zaXplOwogICAgIGxpYnhs X3Bzcl9jYXRfaW5mbyAqaW5mbzsKIAotICAgIHByaW50ZigiQ2FjaGUgQWxsb2NhdGlvbiBUZWNo bm9sb2d5IChDQVQpOlxuIik7CisgICAgcHJpbnRmKCJDYWNoZSBBbGxvY2F0aW9uIFRlY2hub2xv Z3kgKENBVCk6IEwzXG4iKTsKIAotICAgIHJjID0gbGlieGxfcHNyX2NhdF9nZXRfbDNfaW5mbyhj dHgsICZpbmZvLCAmbnIpOworICAgIHJjID0gbGlieGxfcHNyX2NhdF9nZXRfaW5mbyhjdHgsICZp bmZvLCAmbnIsIDMpOwogICAgIGlmIChyYykgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZh aWxlZCB0byBnZXQgY2F0IGluZm9cbiIpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxl ZCB0byBnZXQgbDMgY2F0IGluZm9cbiIpOwogICAgICAgICByZXR1cm4gcmM7CiAgICAgfQogCkBA IC05MzEwLDE3ICs5NDE2LDYgQEAgb3V0OgogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIHZv aWQgcHNyX2NhdF9wcmludF9vbmVfZG9tYWluX2NibV90eXBlKHVpbnQzMl90IGRvbWlkLCB1aW50 MzJfdCBzb2NrZXRpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9wc3JfY2JtX3R5cGUgdHlwZSkKLXsKLSAgICB1aW50NjRfdCBjYm07Ci0KLSAg ICBpZiAoIWxpYnhsX3Bzcl9jYXRfZ2V0X2NibShjdHgsIGRvbWlkLCB0eXBlLCBzb2NrZXRpZCwg JmNibSkpCi0gICAgICAgIHByaW50ZigiJSMxNiJQUkl4NjQsIGNibSk7Ci0gICAgZWxzZQotICAg ICAgICBwcmludGYoIiUxNnMiLCAiZXJyb3IiKTsKLX0KLQogc3RhdGljIHZvaWQgcHNyX2NhdF9w cmludF9vbmVfZG9tYWluX2NibSh1aW50MzJfdCBkb21pZCwgdWludDMyX3Qgc29ja2V0aWQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2RwX2VuYWJsZWQp CiB7CkBAIC05Mzk1LDkgKzk0OTAsOSBAQCBzdGF0aWMgaW50IHBzcl9jYXRfc2hvdyh1aW50MzJf dCBkb21pZCkKICAgICBpbnQgcmM7CiAgICAgbGlieGxfcHNyX2NhdF9pbmZvICppbmZvOwogCi0g ICAgcmMgPSBsaWJ4bF9wc3JfY2F0X2dldF9sM19pbmZvKGN0eCwgJmluZm8sICZucik7CisgICAg cmMgPSBsaWJ4bF9wc3JfY2F0X2dldF9pbmZvKGN0eCwgJmluZm8sICZuciwgMyk7CiAgICAgaWYg KHJjKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGdldCBjYXQgaW5mb1xu Iik7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGdldCBsMyBjYXQgaW5mb1xu Iik7CiAgICAgICAgIHJldHVybiByYzsKICAgICB9CiAKQEAgLTk0MjQsMTggKzk1MTksMjAgQEAg aW50IG1haW5fcHNyX2NhdF9jYm1fc2V0KGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBsaWJ4 bF9zdHJpbmdfbGlzdCBzb2NrZXRfbGlzdDsKICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LCBlbmQ7 CiAgICAgaW50IGksIGosIGxlbjsKKyAgICBpbnQgbHZsID0gMzsKIAogICAgIHN0YXRpYyBzdHJ1 Y3Qgb3B0aW9uIG9wdHNbXSA9IHsKICAgICAgICAgeyJzb2NrZXQiLCAxLCAwLCAncyd9LAogICAg ICAgICB7ImRhdGEiLCAwLCAwLCAnZCd9LAogICAgICAgICB7ImNvZGUiLCAwLCAwLCAnYyd9LAor ICAgICAgICB7ImxldmVsIiwgMSwgMCwgJ2wnfSwKICAgICAgICAgQ09NTU9OX0xPTkdfT1BUUwog ICAgIH07CiAKICAgICBsaWJ4bF9zb2NrZXRfYml0bWFwX2FsbG9jKGN0eCwgJnRhcmdldF9tYXAs IDApOwogICAgIGxpYnhsX2JpdG1hcF9zZXRfbm9uZSgmdGFyZ2V0X21hcCk7CiAKLSAgICBTV0lU Q0hfRk9SRUFDSF9PUFQob3B0LCAiczpjZCIsIG9wdHMsICJwc3ItY2F0LWNibS1zZXQiLCAyKSB7 CisgICAgU1dJVENIX0ZPUkVBQ0hfT1BUKG9wdCwgInM6bDpjZCIsIG9wdHMsICJwc3ItY2F0LWNi bS1zZXQiLCAyKSB7CiAgICAgY2FzZSAncyc6CiAgICAgICAgIHRyaW0oaXNzcGFjZSwgb3B0YXJn LCAmdmFsdWUpOwogICAgICAgICBzcGxpdF9zdHJpbmdfaW50b19zdHJpbmdfbGlzdCh2YWx1ZSwg IiwiLCAmc29ja2V0X2xpc3QpOwpAQCAtOTQ1NSwxNyArOTU1MiwzMSBAQCBpbnQgbWFpbl9wc3Jf Y2F0X2NibV9zZXQoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgIGNhc2UgJ2MnOgogICAgICAg ICBvcHRfY29kZSA9IDE7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgJ2wnOgorICAgICAgICBs dmwgPSBhdG9pKG9wdGFyZyk7CisgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlmIChvcHRf ZGF0YSAmJiBvcHRfY29kZSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkNhbm5vdCBoYW5k bGUgLWMgYW5kIC1kIGF0IHRoZSBzYW1lIHRpbWVcbiIpOwotICAgICAgICByZXR1cm4gLTE7Ci0g ICAgfSBlbHNlIGlmIChvcHRfZGF0YSkgewotICAgICAgICB0eXBlID0gTElCWExfUFNSX0NCTV9U WVBFX0wzX0NCTV9EQVRBOwotICAgIH0gZWxzZSBpZiAob3B0X2NvZGUpIHsKLSAgICAgICAgdHlw ZSA9IExJQlhMX1BTUl9DQk1fVFlQRV9MM19DQk1fQ09ERTsKKyAgICBpZiAobHZsID09IDIpIHsK KyAgICAgICAgaWYgKG9wdF9kYXRhIHx8IG9wdF9jb2RlKSB7CisgICAgICAgICAgICBmcHJpbnRm KHN0ZGVyciwgIkwyIENBVCBkb2VzIG5vdCBzdXBwb3J0IENEUCB5ZXQuXG4iKTsKKyAgICAgICAg ICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICB0eXBlID0gTElCWExfUFNSX0NCTV9U WVBFX0wyX0NCTTsKKyAgICB9IGVsc2UgaWYgKGx2bCA9PSAzKSB7CisgICAgICAgIGlmIChvcHRf ZGF0YSAmJiBvcHRfY29kZSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJDYW5ub3Qg aGFuZGxlIC1jIGFuZCAtZCBhdCB0aGUgc2FtZSB0aW1lXG4iKTsKKyAgICAgICAgICAgIHJldHVy biAtMTsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRfZGF0YSkgeworICAgICAgICAgICAgdHlwZSA9 IExJQlhMX1BTUl9DQk1fVFlQRV9MM19DQk1fREFUQTsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRf Y29kZSkgeworICAgICAgICAgICAgdHlwZSA9IExJQlhMX1BTUl9DQk1fVFlQRV9MM19DQk1fQ09E RTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHR5cGUgPSBMSUJYTF9QU1JfQ0JNX1RZ UEVfTDNfQ0JNOworICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgdHlwZSA9IExJQlhM X1BTUl9DQk1fVFlQRV9MM19DQk07CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiSW52YWxpZCBj YWNoZSBsZXZlbC5cbiIpOworICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCiAgICAgaWYgKGxp YnhsX2JpdG1hcF9pc19lbXB0eSgmdGFyZ2V0X21hcCkpCkBAIC05NDg3LDExICs5NTk4LDIwIEBA IGludCBtYWluX3Bzcl9jYXRfY2JtX3NldChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKIGludCBt YWluX3Bzcl9jYXRfc2hvdyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7Ci0gICAgaW50IG9wdDsK KyAgICBpbnQgb3B0ID0gMDsKICAgICB1aW50MzJfdCBkb21pZDsKKyAgICBpbnQgbHZsID0gMzsK KyAgICBpbnQgcmM7CiAKLSAgICBTV0lUQ0hfRk9SRUFDSF9PUFQob3B0LCAiIiwgTlVMTCwgInBz ci1jYXQtc2hvdyIsIDApIHsKLSAgICAgICAgLyogTm8gb3B0aW9ucyAqLworICAgIHN0YXRpYyBz dHJ1Y3Qgb3B0aW9uIG9wdHNbXSA9IHsKKyAgICAgICAgeyJsZXZlbCIsIDEsIDAsICdsJ30sCisg ICAgICAgIENPTU1PTl9MT05HX09QVFMKKyAgICB9OworCisgICAgU1dJVENIX0ZPUkVBQ0hfT1BU KG9wdCwgImw6Iiwgb3B0cywgInBzci1jYXQtc2hvdyIsIDEpIHsKKyAgICBjYXNlICdsJzoKKyAg ICAgICAgbHZsID0gYXRvaShvcHRhcmcpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBp ZiAob3B0aW5kID49IGFyZ2MpCkBAIC05NTAzLDcgKzk2MjMsMTIgQEAgaW50IG1haW5fcHNyX2Nh dF9zaG93KGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgcmV0dXJuIDI7CiAgICAgfQog Ci0gICAgcmV0dXJuIHBzcl9jYXRfc2hvdyhkb21pZCk7CisgICAgaWYgKDMgPT0gbHZsKQorICAg ICAgICByYyA9IHBzcl9jYXRfc2hvdyhkb21pZCk7CisgICAgZWxzZSBpZiAoMiA9PSBsdmwpCisg ICAgICAgIHJjID0gcHNyX2wyX2NhdF9zaG93KGRvbWlkKTsKKworICAgIHJldHVybiByYzsKIH0K IAogaW50IG1haW5fcHNyX2h3aW5mbyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCkBAIC05NTI5LDcg Kzk2NTQsMTEgQEAgaW50IG1haW5fcHNyX2h3aW5mbyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAg ICAgICAgIHJldCA9IHBzcl9jbXRfaHdpbmZvKCk7CiAKICAgICBpZiAoIXJldCAmJiAoYWxsIHx8 IGNhdCkpCi0gICAgICAgIHJldCA9IHBzcl9jYXRfaHdpbmZvKCk7CisgICAgICAgIHJldCA9IHBz cl9sM19jYXRfaHdpbmZvKCk7CisKKyAgICAvKiBMMiBDQVQgaXMgaW5kZXBlbmRlbnQgd2l0aCBD TVQgYW5kIEwzIENBVCAqLworICAgIGlmIChhbGwgfHwgY2F0KQorICAgICAgICByZXQgPSBwc3Jf bDJfY2F0X2h3aW5mbygpOwogCiAgICAgcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhsL3hsX2NtZHRhYmxlLmMgYi90b29scy9saWJ4bC94bF9jbWR0YWJsZS5jCmluZGV4IDg1 YzFlMGYuLmJiM2NlNjkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL3hsX2NtZHRhYmxlLmMKKysr IGIvdG9vbHMvbGlieGwveGxfY21kdGFibGUuYwpAQCAtNTQ5LDEzICs1NDksMTUgQEAgc3RydWN0 IGNtZF9zcGVjIGNtZF90YWJsZVtdID0gewogICAgICAgIlNldCBjYWNoZSBjYXBhY2l0eSBiaXRt YXNrcyhDQk0pIGZvciBhIGRvbWFpbiIsCiAgICAgICAiW29wdGlvbnNdIDxEb21haW4+IDxDQk0+ IiwKICAgICAgICItcyA8c29ja2V0PiAgICAgICBTcGVjaWZ5IHRoZSBzb2NrZXQgdG8gcHJvY2Vz cywgb3RoZXJ3aXNlIGFsbCBzb2NrZXRzIGFyZSBwcm9jZXNzZWRcbiIKKyAgICAgICItbCA8bGV2 ZWw+ICAgICAgICBTcGVjaWZ5IHRoZSBjYWNoZSBsZXZlbCB0byBwcm9jZXNzLCBvdGhlcndpc2Ug TDMgY2FjaGUgaXMgcHJvY2Vzc2VkXG4iCiAgICAgICAiLWMgICAgICAgICAgICAgICAgU2V0IGNv ZGUgQ0JNIGlmIENEUCBpcyBzdXBwb3J0ZWRcbiIKICAgICAgICItZCAgICAgICAgICAgICAgICBT ZXQgZGF0YSBDQk0gaWYgQ0RQIGlzIHN1cHBvcnRlZFxuIgogICAgIH0sCiAgICAgeyAicHNyLWNh dC1zaG93IiwKICAgICAgICZtYWluX3Bzcl9jYXRfc2hvdywgMCwgMSwKICAgICAgICJTaG93IENh Y2hlIEFsbG9jYXRpb24gVGVjaG5vbG9neSBpbmZvcm1hdGlvbiIsCi0gICAgICAiPERvbWFpbj4i LAorICAgICAgIltvcHRpb25zXSA8RG9tYWluPiIsCisgICAgICAiLWwgPGxldmVsPiAgICAgICAg U3BlY2lmeSB0aGUgY2FjaGUgbGV2ZWwgdG8gcHJvY2Vzcywgb3RoZXJ3aXNlIEwzIGNhY2hlIGlz IHByb2Nlc3NlZFxuIgogICAgIH0sCiAKICNlbmRpZgotLSAKMS45LjEKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK