From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Blake Subject: [PATCH v2 2/6] qdict: Add convenience helpers for wrapped puts Date: Wed, 18 Jan 2017 10:16:49 -0600 Message-ID: <20170118161653.19296-3-eblake@redhat.com> References: <20170118161653.19296-1-eblake@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170118161653.19296-1-eblake@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: qemu-devel@nongnu.org Cc: Stefan Hajnoczi , Jeff Cody , armbru@redhat.com, Gerd Hoffmann , Stefano Stabellini , Alberto Garcia , "open list:Block layer core" , Alexander Graf , Anthony Perard , Fam Zheng , Michael Roth , Chrysostomos Nanakos , Stefan Weil , Peter Lieven , "Dr. David Alan Gilbert" , "open list:X86" , Ronnie Sahlberg , Richard Henderson , Kevin Wolf , "Richard W.M. Jones" , Max Reitz , Paolo Bonzini List-Id: xen-devel@lists.xenproject.org UXVpdGUgYSBmZXcgdXNlcnMgb2YgcWRpY3RfcHV0KCkgd2VyZSBtYW51YWxseSB3cmFwcGluZyBh Cm5vbi1RT2JqZWN0LiBXZSBjYW4gbWFrZSBzdWNoIGNhbGwtc2l0ZXMgc2hvcnRlciwgYnkgcHJv dmlkaW5nCmNvbW1vbiBtYWNyb3MgdG8gZG8gdGhlIHRlZGlvdXMgd29yay4gIEFsc28gc2hvcnRl biBuZWFyYnkKcWRpY3RfcHV0X29iaigsLFFPQkpFQ1QoKSkgc2VxdWVuY2VzLgoKU2lnbmVkLW9m Zi1ieTogRXJpYyBCbGFrZSA8ZWJsYWtlQHJlZGhhdC5jb20+ClJldmlld2VkLWJ5OiBBbGJlcnRv IEdhcmNpYSA8YmVydG9AaWdhbGlhLmNvbT4KCi0tLQoKdjI6IHJlYmFzZSB0byBjdXJyZW50IG1h c3RlcgoKSSdtIG9rYXkgaWYgeW91IHdhbnQgbWUgdG8gYnJlYWsgdGhpcyBwYXRjaCBpbnRvIHNt YWxsZXIgcGllY2VzLgotLS0KIGluY2x1ZGUvcWFwaS9xbXAvcWRpY3QuaCAgICAgICAgICAgIHwg ICA4ICsrKwogYmxvY2suYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTkgKysrKysr Ky0tLS0tLS0tLQogYmxvY2svYXJjaGlwZWxhZ28uYyAgICAgICAgICAgICAgICAgfCAgIDQgKy0K IGJsb2NrL2Jsa2RlYnVnLmMgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBibG9jay9ibGt2 ZXJpZnkuYyAgICAgICAgICAgICAgICAgICB8ICAxMSArKy0KIGJsb2NrL2N1cmwuYyAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAyICstCiBibG9jay9maWxlLXBvc2l4LmMgICAgICAgICAgICAg ICAgICB8ICAgOCArLS0KIGJsb2NrL2ZpbGUtd2luMzIuYyAgICAgICAgICAgICAgICAgIHwgICA0 ICstCiBibG9jay9pc2NzaS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogYmxvY2sv bmJkLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDEgKysrKysrLS0tLS0KIGJsb2NrL25m cy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQzICsrKysrLS0tLS0tLQogYmxvY2svbnVs bC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGJsb2NrL3Fjb3cyLmMgICAgICAg ICAgICAgICAgICAgICAgIHwgICA0ICstCiBibG9jay9xdW9ydW0uYyAgICAgICAgICAgICAgICAg ICAgICB8ICAxMyArKy0tCiBibG9jay9zc2guYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAx NiArKy0tLQogYmxvY2svdnZmYXQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0tCiBi bG9ja2Rldi5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyOCArKysrLS0tLQogaHcvYmxv Y2sveGVuX2Rpc2suYyAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGh3L3VzYi94ZW4tdXNiLmMg ICAgICAgICAgICAgICAgICAgIHwgIDEyICsrLS0KIG1vbml0b3IuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDE4ICsrLS0tCiBxYXBpL3FtcC1ldmVudC5jICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogcWVtdS1pbWcuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0K IHFlbXUtaW8uYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBxZW11LW5iZC5j ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogcW9iamVjdC9xZGljdC5jICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIHRhcmdldC9zMzkweC9jcHVfbW9kZWxzLmMgICAgICAg ICAgIHwgICA0ICstCiB0ZXN0cy9jaGVjay1xZGljdC5jICAgICAgICAgICAgICAgICB8IDEzMiAr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIHRlc3RzL3Rlc3QtcW1wLWNvbW1h bmRzLmMgICAgICAgICAgIHwgIDMwICsrKystLS0tCiB0ZXN0cy90ZXN0LXFtcC1ldmVudC5jICAg ICAgICAgICAgICB8ICAzMCArKysrLS0tLQogdGVzdHMvdGVzdC1xb2JqZWN0LW91dHB1dC12aXNp dG9yLmMgfCAgIDYgKy0KIHV0aWwvcWVtdS1vcHRpb24uYyAgICAgICAgICAgICAgICAgIHwgICA2 ICstCiAzMSBmaWxlcyBjaGFuZ2VkLCAyNDUgaW5zZXJ0aW9ucygrKSwgMjcwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcWFwaS9xbXAvcWRpY3QuaCBiL2luY2x1ZGUvcWFwaS9x bXAvcWRpY3QuaAppbmRleCBmZTlhNGM1Li45ZDlmOWEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3Fh cGkvcW1wL3FkaWN0LmgKKysrIGIvaW5jbHVkZS9xYXBpL3FtcC9xZGljdC5oCkBAIC01Miw2ICs1 MiwxNCBAQCB2b2lkIHFkaWN0X2Rlc3Ryb3lfb2JqKFFPYmplY3QgKm9iaik7CiAjZGVmaW5lIHFk aWN0X3B1dChxZGljdCwga2V5LCBvYmopIFwKICAgICAgICAgcWRpY3RfcHV0X29iaihxZGljdCwg a2V5LCBRT0JKRUNUKG9iaikpCgorLyogSGVscGVycyBmb3IgaW50LCBib29sLCBhbmQgY29uc3Qg Y2hhciouICovCisjZGVmaW5lIHFkaWN0X3B1dF9pbnQocWRpY3QsIGtleSwgdmFsdWUpIFwKKyAg ICAgICAgcWRpY3RfcHV0KHFkaWN0LCBrZXksIHFpbnRfZnJvbV9pbnQodmFsdWUpKQorI2RlZmlu ZSBxZGljdF9wdXRfYm9vbChxZGljdCwga2V5LCB2YWx1ZSkgXAorICAgICAgICBxZGljdF9wdXQo cWRpY3QsIGtleSwgcWJvb2xfZnJvbV9ib29sKHZhbHVlKSkKKyNkZWZpbmUgcWRpY3RfcHV0X3N0 cihxZGljdCwga2V5LCB2YWx1ZSkgXAorICAgICAgICBxZGljdF9wdXQocWRpY3QsIGtleSwgcXN0 cmluZ19mcm9tX3N0cih2YWx1ZSkpCisKIC8qIEhpZ2ggbGV2ZWwgaGVscGVycyAqLwogZG91Ymxl IHFkaWN0X2dldF9kb3VibGUoY29uc3QgUURpY3QgKnFkaWN0LCBjb25zdCBjaGFyICprZXkpOwog aW50NjRfdCBxZGljdF9nZXRfaW50KGNvbnN0IFFEaWN0ICpxZGljdCwgY29uc3QgY2hhciAqa2V5 KTsKZGlmZiAtLWdpdCBhL2Jsb2NrLmMgYi9ibG9jay5jCmluZGV4IDM5ZGRlYTMuLmU4MTY2NTcg MTAwNjQ0Ci0tLSBhL2Jsb2NrLmMKKysrIGIvYmxvY2suYwpAQCAtODc2LDE2ICs4NzYsMTYgQEAg c3RhdGljIHZvaWQgdXBkYXRlX2ZsYWdzX2Zyb21fb3B0aW9ucyhpbnQgKmZsYWdzLCBRZW11T3B0 cyAqb3B0cykKIHN0YXRpYyB2b2lkIHVwZGF0ZV9vcHRpb25zX2Zyb21fZmxhZ3MoUURpY3QgKm9w dGlvbnMsIGludCBmbGFncykKIHsKICAgICBpZiAoIXFkaWN0X2hhc2tleShvcHRpb25zLCBCRFJW X09QVF9DQUNIRV9ESVJFQ1QpKSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCBCRFJWX09Q VF9DQUNIRV9ESVJFQ1QsCi0gICAgICAgICAgICAgICAgICBxYm9vbF9mcm9tX2Jvb2woZmxhZ3Mg JiBCRFJWX09fTk9DQUNIRSkpOworICAgICAgICBxZGljdF9wdXRfYm9vbChvcHRpb25zLCBCRFJW X09QVF9DQUNIRV9ESVJFQ1QsCisgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzICYgQkRSVl9P X05PQ0FDSEUpOwogICAgIH0KICAgICBpZiAoIXFkaWN0X2hhc2tleShvcHRpb25zLCBCRFJWX09Q VF9DQUNIRV9OT19GTFVTSCkpIHsKLSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsIEJEUlZfT1BU X0NBQ0hFX05PX0ZMVVNILAotICAgICAgICAgICAgICAgICAgcWJvb2xfZnJvbV9ib29sKGZsYWdz ICYgQkRSVl9PX05PX0ZMVVNIKSk7CisgICAgICAgIHFkaWN0X3B1dF9ib29sKG9wdGlvbnMsIEJE UlZfT1BUX0NBQ0hFX05PX0ZMVVNILAorICAgICAgICAgICAgICAgICAgICAgICBmbGFncyAmIEJE UlZfT19OT19GTFVTSCk7CiAgICAgfQogICAgIGlmICghcWRpY3RfaGFza2V5KG9wdGlvbnMsIEJE UlZfT1BUX1JFQURfT05MWSkpIHsKLSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsIEJEUlZfT1BU X1JFQURfT05MWSwKLSAgICAgICAgICAgICAgICAgIHFib29sX2Zyb21fYm9vbCghKGZsYWdzICYg QkRSVl9PX1JEV1IpKSk7CisgICAgICAgIHFkaWN0X3B1dF9ib29sKG9wdGlvbnMsIEJEUlZfT1BU X1JFQURfT05MWSwKKyAgICAgICAgICAgICAgICAgICAgICAgIShmbGFncyAmIEJEUlZfT19SRFdS KSk7CiAgICAgfQogfQoKQEAgLTEyNDQsNyArMTI0NCw3IEBAIHN0YXRpYyBpbnQgYmRydl9maWxs X29wdGlvbnMoUURpY3QgKipvcHRpb25zLCBjb25zdCBjaGFyICpmaWxlbmFtZSwKICAgICAvKiBG ZXRjaCB0aGUgZmlsZSBuYW1lIGZyb20gdGhlIG9wdGlvbnMgUURpY3QgaWYgbmVjZXNzYXJ5ICov CiAgICAgaWYgKHByb3RvY29sICYmIGZpbGVuYW1lKSB7CiAgICAgICAgIGlmICghcWRpY3RfaGFz a2V5KCpvcHRpb25zLCAiZmlsZW5hbWUiKSkgewotICAgICAgICAgICAgcWRpY3RfcHV0KCpvcHRp b25zLCAiZmlsZW5hbWUiLCBxc3RyaW5nX2Zyb21fc3RyKGZpbGVuYW1lKSk7CisgICAgICAgICAg ICBxZGljdF9wdXRfc3RyKCpvcHRpb25zLCAiZmlsZW5hbWUiLCBmaWxlbmFtZSk7CiAgICAgICAg ICAgICBwYXJzZV9maWxlbmFtZSA9IHRydWU7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg ICBlcnJvcl9zZXRnKGVycnAsICJDYW4ndCBzcGVjaWZ5ICdmaWxlJyBhbmQgJ2ZpbGVuYW1lJyBv cHRpb25zIGF0ICIKQEAgLTEyNjQsNyArMTI2NCw3IEBAIHN0YXRpYyBpbnQgYmRydl9maWxsX29w dGlvbnMoUURpY3QgKipvcHRpb25zLCBjb25zdCBjaGFyICpmaWxlbmFtZSwKICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICBkcnZuYW1lID0gZHJ2LT5mb3JtYXRfbmFtZTsKLSAgICAgICAgICAg IHFkaWN0X3B1dCgqb3B0aW9ucywgImRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoZHJ2bmFtZSkp OworICAgICAgICAgICAgcWRpY3RfcHV0X3N0cigqb3B0aW9ucywgImRyaXZlciIsIGRydm5hbWUp OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiTXVzdCBz cGVjaWZ5IGVpdGhlciBkcml2ZXIgb3IgZmlsZSIpOwogICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7CkBAIC0xNTE3LDcgKzE1MTcsNyBAQCBpbnQgYmRydl9vcGVuX2JhY2tpbmdfZmlsZShCbG9j a0RyaXZlclN0YXRlICpicywgUURpY3QgKnBhcmVudF9vcHRpb25zLAogICAgIH0KCiAgICAgaWYg KGJzLT5iYWNraW5nX2Zvcm1hdFswXSAhPSAnXDAnICYmICFxZGljdF9oYXNrZXkob3B0aW9ucywg ImRyaXZlciIpKSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZHJpdmVyIiwgcXN0cmlu Z19mcm9tX3N0cihicy0+YmFja2luZ19mb3JtYXQpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihv cHRpb25zLCAiZHJpdmVyIiwgYnMtPmJhY2tpbmdfZm9ybWF0KTsKICAgICB9CgogICAgIGJhY2tp bmdfaGQgPSBiZHJ2X29wZW5faW5oZXJpdCgqYmFja2luZ19maWxlbmFtZSA/IGJhY2tpbmdfZmls ZW5hbWUgOiBOVUxMLApAQCAtMTYwNyw3ICsxNjA3LDcgQEAgc3RhdGljIEJsb2NrRHJpdmVyU3Rh dGUgKmJkcnZfYXBwZW5kX3RlbXBfc25hcHNob3QoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsCiAgICAg Y2hhciAqdG1wX2ZpbGVuYW1lID0gZ19tYWxsb2MwKFBBVEhfTUFYICsgMSk7CiAgICAgaW50NjRf dCB0b3RhbF9zaXplOwogICAgIFFlbXVPcHRzICpvcHRzID0gTlVMTDsKLSAgICBCbG9ja0RyaXZl clN0YXRlICpic19zbmFwc2hvdDsKKyAgICBCbG9ja0RyaXZlclN0YXRlICpic19zbmFwc2hvdCA9 IE5VTEw7CiAgICAgaW50IHJldDsKCiAgICAgLyogaWYgc25hcHNob3QsIHdlIGNyZWF0ZSBhIHRl bXBvcmFyeSBiYWNraW5nIGZpbGUgYW5kIG9wZW4gaXQKQEAgLTE2MzksMTIgKzE2MzksOSBAQCBz dGF0aWMgQmxvY2tEcml2ZXJTdGF0ZSAqYmRydl9hcHBlbmRfdGVtcF9zbmFwc2hvdChCbG9ja0Ry aXZlclN0YXRlICpicywKICAgICB9CgogICAgIC8qIFByZXBhcmUgb3B0aW9ucyBRRGljdCBmb3Ig dGhlIHRlbXBvcmFyeSBmaWxlICovCi0gICAgcWRpY3RfcHV0KHNuYXBzaG90X29wdGlvbnMsICJm aWxlLmRyaXZlciIsCi0gICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIoImZpbGUiKSk7Ci0g ICAgcWRpY3RfcHV0KHNuYXBzaG90X29wdGlvbnMsICJmaWxlLmZpbGVuYW1lIiwKLSAgICAgICAg ICAgICAgcXN0cmluZ19mcm9tX3N0cih0bXBfZmlsZW5hbWUpKTsKLSAgICBxZGljdF9wdXQoc25h cHNob3Rfb3B0aW9ucywgImRyaXZlciIsCi0gICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIo InFjb3cyIikpOworICAgIHFkaWN0X3B1dF9zdHIoc25hcHNob3Rfb3B0aW9ucywgImZpbGUuZHJp dmVyIiwgImZpbGUiKTsKKyAgICBxZGljdF9wdXRfc3RyKHNuYXBzaG90X29wdGlvbnMsICJmaWxl LmZpbGVuYW1lIiwgdG1wX2ZpbGVuYW1lKTsKKyAgICBxZGljdF9wdXRfc3RyKHNuYXBzaG90X29w dGlvbnMsICJkcml2ZXIiLCAicWNvdzIiKTsKCiAgICAgYnNfc25hcHNob3QgPSBiZHJ2X29wZW4o TlVMTCwgTlVMTCwgc25hcHNob3Rfb3B0aW9ucywgZmxhZ3MsIGVycnApOwogICAgIHNuYXBzaG90 X29wdGlvbnMgPSBOVUxMOwpAQCAtMTY1OSwxMyArMTY1NiwxMCBAQCBzdGF0aWMgQmxvY2tEcml2 ZXJTdGF0ZSAqYmRydl9hcHBlbmRfdGVtcF9zbmFwc2hvdChCbG9ja0RyaXZlclN0YXRlICpicywK ICAgICBiZHJ2X3JlZihic19zbmFwc2hvdCk7CiAgICAgYmRydl9hcHBlbmQoYnNfc25hcHNob3Qs IGJzKTsKCitvdXQ6CisgICAgUURFQ1JFRihzbmFwc2hvdF9vcHRpb25zKTsKICAgICBnX2ZyZWUo dG1wX2ZpbGVuYW1lKTsKICAgICByZXR1cm4gYnNfc25hcHNob3Q7Ci0KLW91dDoKLSAgICBRREVD UkVGKHNuYXBzaG90X29wdGlvbnMpOwotICAgIGdfZnJlZSh0bXBfZmlsZW5hbWUpOwotICAgIHJl dHVybiBOVUxMOwogfQoKIC8qCkBAIC0xODE2LDggKzE4MTAsOCBAQCBzdGF0aWMgQmxvY2tEcml2 ZXJTdGF0ZSAqYmRydl9vcGVuX2luaGVyaXQoY29uc3QgY2hhciAqZmlsZW5hbWUsCiAgICAgICAg ICAqIHN1cmUgdG8gdXBkYXRlIGJvdGggYnMtPm9wdGlvbnMgKHdoaWNoIGhhcyB0aGUgZnVsbCBl ZmZlY3RpdmUKICAgICAgICAgICogb3B0aW9ucyBmb3IgYnMpIGFuZCBvcHRpb25zICh3aGljaCBo YXMgZmlsZS4qIGFscmVhZHkgcmVtb3ZlZCkuCiAgICAgICAgICAqLwotICAgICAgICBxZGljdF9w dXQoYnMtPm9wdGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGRydi0+Zm9ybWF0X25h bWUpKTsKLSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21f c3RyKGRydi0+Zm9ybWF0X25hbWUpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihicy0+b3B0aW9u cywgImRyaXZlciIsIGRydi0+Zm9ybWF0X25hbWUpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9w dGlvbnMsICJkcml2ZXIiLCBkcnYtPmZvcm1hdF9uYW1lKTsKICAgICB9IGVsc2UgaWYgKCFkcnYp IHsKICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiTXVzdCBzcGVjaWZ5IGVpdGhlciBkcml2ZXIg b3IgZmlsZSIpOwogICAgICAgICBnb3RvIGZhaWw7CkBAIC0yMTkxLDEyICsyMTg1LDEyIEBAIGlu dCBiZHJ2X3Jlb3Blbl9wcmVwYXJlKEJEUlZSZW9wZW5TdGF0ZSAqcmVvcGVuX3N0YXRlLCBCbG9j a1Jlb3BlblF1ZXVlICpxdWV1ZSwKICAgICAgKiB0aGF0IHRoZXkgYXJlIGNoZWNrZWQgYXQgdGhl IGVuZCBvZiB0aGlzIGZ1bmN0aW9uLiAqLwogICAgIHZhbHVlID0gcWVtdV9vcHRfZ2V0KG9wdHMs ICJub2RlLW5hbWUiKTsKICAgICBpZiAodmFsdWUpIHsKLSAgICAgICAgcWRpY3RfcHV0KHJlb3Bl bl9zdGF0ZS0+b3B0aW9ucywgIm5vZGUtbmFtZSIsIHFzdHJpbmdfZnJvbV9zdHIodmFsdWUpKTsK KyAgICAgICAgcWRpY3RfcHV0X3N0cihyZW9wZW5fc3RhdGUtPm9wdGlvbnMsICJub2RlLW5hbWUi LCB2YWx1ZSk7CiAgICAgfQoKICAgICB2YWx1ZSA9IHFlbXVfb3B0X2dldChvcHRzLCAiZHJpdmVy Iik7CiAgICAgaWYgKHZhbHVlKSB7Ci0gICAgICAgIHFkaWN0X3B1dChyZW9wZW5fc3RhdGUtPm9w dGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKHZhbHVlKSk7CisgICAgICAgIHFkaWN0 X3B1dF9zdHIocmVvcGVuX3N0YXRlLT5vcHRpb25zLCAiZHJpdmVyIiwgdmFsdWUpOwogICAgIH0K CiAgICAgLyogaWYgd2UgYXJlIHRvIHN0YXkgcmVhZC1vbmx5LCBkbyBub3QgYWxsb3cgcGVybWlz c2lvbiBjaGFuZ2UKQEAgLTM2MDYsOCArMzYwMCw3IEBAIHZvaWQgYmRydl9pbWdfY3JlYXRlKGNv bnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpmbXQsCgogICAgICAgICAgICAgaWYgKGJh Y2tpbmdfZm10KSB7CiAgICAgICAgICAgICAgICAgYmFja2luZ19vcHRpb25zID0gcWRpY3RfbmV3 KCk7Ci0gICAgICAgICAgICAgICAgcWRpY3RfcHV0KGJhY2tpbmdfb3B0aW9ucywgImRyaXZlciIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIoYmFja2luZ19mbXQp KTsKKyAgICAgICAgICAgICAgICBxZGljdF9wdXRfc3RyKGJhY2tpbmdfb3B0aW9ucywgImRyaXZl ciIsIGJhY2tpbmdfZm10KTsKICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICBicyA9IGJkcnZf b3BlbihmdWxsX2JhY2tpbmcsIE5VTEwsIGJhY2tpbmdfb3B0aW9ucywgYmFja19mbGFncywKQEAg LTM5OTcsMTEgKzM5OTAsOSBAQCB2b2lkIGJkcnZfcmVmcmVzaF9maWxlbmFtZShCbG9ja0RyaXZl clN0YXRlICpicykKICAgICAgICAgICogY29udGFpbiBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBm aWxlbmFtZSwgdGhlcmVmb3JlIHRoZSBmb2xsb3dpbmcKICAgICAgICAgICogc3VmZmljZXMgd2l0 aG91dCBxdWVyeWluZyB0aGUgKGV4YWN0XylmaWxlbmFtZSBvZiB0aGlzIEJEUy4gKi8KICAgICAg ICAgaWYgKGJzLT5maWxlLT5icy0+ZnVsbF9vcGVuX29wdGlvbnMpIHsKLSAgICAgICAgICAgIHFk aWN0X3B1dF9vYmoob3B0cywgImRyaXZlciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFFP QkpFQ1QocXN0cmluZ19mcm9tX3N0cihkcnYtPmZvcm1hdF9uYW1lKSkpOworICAgICAgICAgICAg cWRpY3RfcHV0X3N0cihvcHRzLCAiZHJpdmVyIiwgZHJ2LT5mb3JtYXRfbmFtZSk7CiAgICAgICAg ICAgICBRSU5DUkVGKGJzLT5maWxlLT5icy0+ZnVsbF9vcGVuX29wdGlvbnMpOwotICAgICAgICAg ICAgcWRpY3RfcHV0X29iaihvcHRzLCAiZmlsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg IFFPQkpFQ1QoYnMtPmZpbGUtPmJzLT5mdWxsX29wZW5fb3B0aW9ucykpOworICAgICAgICAgICAg cWRpY3RfcHV0KG9wdHMsICJmaWxlIiwgYnMtPmZpbGUtPmJzLT5mdWxsX29wZW5fb3B0aW9ucyk7 CgogICAgICAgICAgICAgYnMtPmZ1bGxfb3Blbl9vcHRpb25zID0gb3B0czsKICAgICAgICAgfSBl bHNlIHsKQEAgLTQwMTcsOCArNDAwOCw3IEBAIHZvaWQgYmRydl9yZWZyZXNoX2ZpbGVuYW1lKEJs b2NrRHJpdmVyU3RhdGUgKmJzKQoKICAgICAgICAgb3B0cyA9IHFkaWN0X25ldygpOwogICAgICAg ICBhcHBlbmRfb3Blbl9vcHRpb25zKG9wdHMsIGJzKTsKLSAgICAgICAgcWRpY3RfcHV0X29iaihv cHRzLCAiZHJpdmVyIiwKLSAgICAgICAgICAgICAgICAgICAgICBRT0JKRUNUKHFzdHJpbmdfZnJv bV9zdHIoZHJ2LT5mb3JtYXRfbmFtZSkpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRzLCAi ZHJpdmVyIiwgZHJ2LT5mb3JtYXRfbmFtZSk7CgogICAgICAgICBpZiAoYnMtPmV4YWN0X2ZpbGVu YW1lWzBdKSB7CiAgICAgICAgICAgICAvKiBUaGlzIG1heSBub3Qgd29yayBmb3IgYWxsIGJsb2Nr IHByb3RvY29sIGRyaXZlcnMgKHNvbWUgbWF5CkBAIC00MDI4LDggKzQwMTgsNyBAQCB2b2lkIGJk cnZfcmVmcmVzaF9maWxlbmFtZShCbG9ja0RyaXZlclN0YXRlICpicykKICAgICAgICAgICAgICAq IG5lZWRzIHNvbWUgc3BlY2lhbCBmb3JtYXQgb2YgdGhlIG9wdGlvbnMgUURpY3QsIGl0IG5lZWRz IHRvCiAgICAgICAgICAgICAgKiBpbXBsZW1lbnQgdGhlIGRyaXZlci1zcGVjaWZpYyBiZHJ2X3Jl ZnJlc2hfZmlsZW5hbWUoKSBmdW5jdGlvbi4KICAgICAgICAgICAgICAqLwotICAgICAgICAgICAg cWRpY3RfcHV0X29iaihvcHRzLCAiZmlsZW5hbWUiLAotICAgICAgICAgICAgICAgICAgICAgICAg ICBRT0JKRUNUKHFzdHJpbmdfZnJvbV9zdHIoYnMtPmV4YWN0X2ZpbGVuYW1lKSkpOworICAgICAg ICAgICAgcWRpY3RfcHV0X3N0cihvcHRzLCAiZmlsZW5hbWUiLCBicy0+ZXhhY3RfZmlsZW5hbWUp OwogICAgICAgICB9CgogICAgICAgICBicy0+ZnVsbF9vcGVuX29wdGlvbnMgPSBvcHRzOwpkaWZm IC0tZ2l0IGEvYmxvY2svYXJjaGlwZWxhZ28uYyBiL2Jsb2NrL2FyY2hpcGVsYWdvLmMKaW5kZXgg MjQ0OWNmYy4uYmYyMGM2MSAxMDA2NDQKLS0tIGEvYmxvY2svYXJjaGlwZWxhZ28uYworKysgYi9i bG9jay9hcmNoaXBlbGFnby5jCkBAIC00MzIsMTAgKzQzMiwxMCBAQCBzdGF0aWMgdm9pZCBhcmNo aXBlbGFnb19wYXJzZV9maWxlbmFtZShjb25zdCBjaGFyICpmaWxlbmFtZSwgUURpY3QgKm9wdGlv bnMsCiAgICAgICAgIGdfZnJlZShzZWdtZW50X25hbWUpOwogICAgIH0KICAgICBpZiAobXBvcnQg IT0gTm9Qb3J0KSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCBBUkNISVBFTEFHT19PUFRf TVBPUlQsIHFpbnRfZnJvbV9pbnQobXBvcnQpKTsKKyAgICAgICAgcWRpY3RfcHV0X2ludChvcHRp b25zLCBBUkNISVBFTEFHT19PUFRfTVBPUlQsIG1wb3J0KTsKICAgICB9CiAgICAgaWYgKHZwb3J0 ICE9IE5vUG9ydCkgewotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgQVJDSElQRUxBR09fT1BU X1ZQT1JULCBxaW50X2Zyb21faW50KHZwb3J0KSk7CisgICAgICAgIHFkaWN0X3B1dF9pbnQob3B0 aW9ucywgQVJDSElQRUxBR09fT1BUX1ZQT1JULCB2cG9ydCk7CiAgICAgfQogfQoKZGlmZiAtLWdp dCBhL2Jsb2NrL2Jsa2RlYnVnLmMgYi9ibG9jay9ibGtkZWJ1Zy5jCmluZGV4IGFjY2NmODUuLjA3 M2M4ZWMgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsa2RlYnVnLmMKKysrIGIvYmxvY2svYmxrZGVidWcu YwpAQCAtMzAxLDcgKzMwMSw3IEBAIHN0YXRpYyB2b2lkIGJsa2RlYnVnX3BhcnNlX2ZpbGVuYW1l KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywKICAgICBpZiAoIXN0cnN0YXJ0 KGZpbGVuYW1lLCAiYmxrZGVidWc6IiwgJmZpbGVuYW1lKSkgewogICAgICAgICAvKiBUaGVyZSB3 YXMgbm8gcHJlZml4OyB0aGVyZWZvcmUsIGFsbCBvcHRpb25zIGhhdmUgdG8gYmUgYWxyZWFkeQog ICAgICAgICAgICBwcmVzZW50IGluIHRoZSBRRGljdCAoZXhjZXB0IGZvciB0aGUgZmlsZW5hbWUp ICovCi0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAieC1pbWFnZSIsIHFzdHJpbmdfZnJvbV9z dHIoZmlsZW5hbWUpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAieC1pbWFnZSIs IGZpbGVuYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KCkBAIC0zMjAsNyArMzIwLDcgQEAg c3RhdGljIHZvaWQgYmxrZGVidWdfcGFyc2VfZmlsZW5hbWUoY29uc3QgY2hhciAqZmlsZW5hbWUs IFFEaWN0ICpvcHRpb25zLAoKICAgICAvKiBUT0RPIEFsbG93IG11bHRpLWxldmVsIG5lc3Rpbmcg YW5kIHNldCBmaWxlLmZpbGVuYW1lIGhlcmUgKi8KICAgICBmaWxlbmFtZSA9IGMgKyAxOwotICAg IHFkaWN0X3B1dChvcHRpb25zLCAieC1pbWFnZSIsIHFzdHJpbmdfZnJvbV9zdHIoZmlsZW5hbWUp KTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJ4LWltYWdlIiwgZmlsZW5hbWUpOwogfQoK IHN0YXRpYyBRZW11T3B0c0xpc3QgcnVudGltZV9vcHRzID0gewpAQCAtNzAyLDcgKzcwMiw3IEBA IHN0YXRpYyB2b2lkIGJsa2RlYnVnX3JlZnJlc2hfZmlsZW5hbWUoQmxvY2tEcml2ZXJTdGF0ZSAq YnMsIFFEaWN0ICpvcHRpb25zKQogICAgIH0KCiAgICAgb3B0cyA9IHFkaWN0X25ldygpOwotICAg IHFkaWN0X3B1dF9vYmoob3B0cywgImRyaXZlciIsIFFPQkpFQ1QocXN0cmluZ19mcm9tX3N0cigi YmxrZGVidWciKSkpOworICAgIHFkaWN0X3B1dF9zdHIob3B0cywgImRyaXZlciIsICJibGtkZWJ1 ZyIpOwoKICAgICBRSU5DUkVGKGJzLT5maWxlLT5icy0+ZnVsbF9vcGVuX29wdGlvbnMpOwogICAg IHFkaWN0X3B1dF9vYmoob3B0cywgImltYWdlIiwgUU9CSkVDVChicy0+ZmlsZS0+YnMtPmZ1bGxf b3Blbl9vcHRpb25zKSk7CmRpZmYgLS1naXQgYS9ibG9jay9ibGt2ZXJpZnkuYyBiL2Jsb2NrL2Js a3ZlcmlmeS5jCmluZGV4IDQzYTk0MGMuLmRlOTI4Y2EgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsa3Zl cmlmeS5jCisrKyBiL2Jsb2NrL2Jsa3ZlcmlmeS5jCkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRpYyB2 b2lkIGJsa3ZlcmlmeV9wYXJzZV9maWxlbmFtZShjb25zdCBjaGFyICpmaWxlbmFtZSwgUURpY3Qg Km9wdGlvbnMsCiAgICAgaWYgKCFzdHJzdGFydChmaWxlbmFtZSwgImJsa3ZlcmlmeToiLCAmZmls ZW5hbWUpKSB7CiAgICAgICAgIC8qIFRoZXJlIHdhcyBubyBwcmVmaXg7IHRoZXJlZm9yZSwgYWxs IG9wdGlvbnMgaGF2ZSB0byBiZSBhbHJlYWR5CiAgICAgICAgICAgIHByZXNlbnQgaW4gdGhlIFFE aWN0IChleGNlcHQgZm9yIHRoZSBmaWxlbmFtZSkgKi8KLSAgICAgICAgcWRpY3RfcHV0KG9wdGlv bnMsICJ4LWltYWdlIiwgcXN0cmluZ19mcm9tX3N0cihmaWxlbmFtZSkpOworICAgICAgICBxZGlj dF9wdXRfc3RyKG9wdGlvbnMsICJ4LWltYWdlIiwgZmlsZW5hbWUpOwogICAgICAgICByZXR1cm47 CiAgICAgfQoKQEAgLTg0LDcgKzg0LDcgQEAgc3RhdGljIHZvaWQgYmxrdmVyaWZ5X3BhcnNlX2Zp bGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywKCiAgICAgLyogVE9E TyBBbGxvdyBtdWx0aS1sZXZlbCBuZXN0aW5nIGFuZCBzZXQgZmlsZS5maWxlbmFtZSBoZXJlICov CiAgICAgZmlsZW5hbWUgPSBjICsgMTsKLSAgICBxZGljdF9wdXQob3B0aW9ucywgIngtaW1hZ2Ui LCBxc3RyaW5nX2Zyb21fc3RyKGZpbGVuYW1lKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25z LCAieC1pbWFnZSIsIGZpbGVuYW1lKTsKIH0KCiBzdGF0aWMgUWVtdU9wdHNMaXN0IHJ1bnRpbWVf b3B0cyA9IHsKQEAgLTI5MSwxMyArMjkxLDEyIEBAIHN0YXRpYyB2b2lkIGJsa3ZlcmlmeV9yZWZy ZXNoX2ZpbGVuYW1lKEJsb2NrRHJpdmVyU3RhdGUgKmJzLCBRRGljdCAqb3B0aW9ucykKICAgICAg ICAgJiYgcy0+dGVzdF9maWxlLT5icy0+ZnVsbF9vcGVuX29wdGlvbnMpCiAgICAgewogICAgICAg ICBRRGljdCAqb3B0cyA9IHFkaWN0X25ldygpOwotICAgICAgICBxZGljdF9wdXRfb2JqKG9wdHMs ICJkcml2ZXIiLCBRT0JKRUNUKHFzdHJpbmdfZnJvbV9zdHIoImJsa3ZlcmlmeSIpKSk7CisgICAg ICAgIHFkaWN0X3B1dF9zdHIob3B0cywgImRyaXZlciIsICJibGt2ZXJpZnkiKTsKCiAgICAgICAg IFFJTkNSRUYoYnMtPmZpbGUtPmJzLT5mdWxsX29wZW5fb3B0aW9ucyk7Ci0gICAgICAgIHFkaWN0 X3B1dF9vYmoob3B0cywgInJhdyIsIFFPQkpFQ1QoYnMtPmZpbGUtPmJzLT5mdWxsX29wZW5fb3B0 aW9ucykpOworICAgICAgICBxZGljdF9wdXQob3B0cywgInJhdyIsIGJzLT5maWxlLT5icy0+ZnVs bF9vcGVuX29wdGlvbnMpOwogICAgICAgICBRSU5DUkVGKHMtPnRlc3RfZmlsZS0+YnMtPmZ1bGxf b3Blbl9vcHRpb25zKTsKLSAgICAgICAgcWRpY3RfcHV0X29iaihvcHRzLCAidGVzdCIsCi0gICAg ICAgICAgICAgICAgICAgICAgUU9CSkVDVChzLT50ZXN0X2ZpbGUtPmJzLT5mdWxsX29wZW5fb3B0 aW9ucykpOworICAgICAgICBxZGljdF9wdXQob3B0cywgInRlc3QiLCBzLT50ZXN0X2ZpbGUtPmJz LT5mdWxsX29wZW5fb3B0aW9ucyk7CgogICAgICAgICBicy0+ZnVsbF9vcGVuX29wdGlvbnMgPSBv cHRzOwogICAgIH0KZGlmZiAtLWdpdCBhL2Jsb2NrL2N1cmwuYyBiL2Jsb2NrL2N1cmwuYwppbmRl eCA3OTJmZWY4Li41ZWM2NTlmIDEwMDY0NAotLS0gYS9ibG9jay9jdXJsLmMKKysrIGIvYmxvY2sv Y3VybC5jCkBAIC01MzEsNyArNTMxLDcgQEAgc3RhdGljIHZvaWQgY3VybF9jbGVhbl9zdGF0ZShD VVJMU3RhdGUgKnMpCiBzdGF0aWMgdm9pZCBjdXJsX3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIg KmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRXJyb3IgKiplcnJwKQogewotICAgIHFkaWN0X3B1dChvcHRpb25zLCBDVVJMX0JMT0NLX09Q VF9VUkwsIHFzdHJpbmdfZnJvbV9zdHIoZmlsZW5hbWUpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9w dGlvbnMsIENVUkxfQkxPQ0tfT1BUX1VSTCwgZmlsZW5hbWUpOwogfQoKIHN0YXRpYyB2b2lkIGN1 cmxfZGV0YWNoX2Fpb19jb250ZXh0KEJsb2NrRHJpdmVyU3RhdGUgKmJzKQpkaWZmIC0tZ2l0IGEv YmxvY2svZmlsZS1wb3NpeC5jIGIvYmxvY2svZmlsZS1wb3NpeC5jCmluZGV4IDI4YjQ3ZDkuLjM4 YTAwOWIgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2ZpbGUtcG9zaXguYworKysgYi9ibG9jay9maWxlLXBv c2l4LmMKQEAgLTM3Niw3ICszNzYsNyBAQCBzdGF0aWMgdm9pZCByYXdfcGFyc2VfZmlsZW5hbWUo Y29uc3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zLAogICAgICAqIGZ1bmN0aW9uIGNh bGwgY2FuIGJlIGlnbm9yZWQuICovCiAgICAgc3Ryc3RhcnQoZmlsZW5hbWUsICJmaWxlOiIsICZm aWxlbmFtZSk7CgotICAgIHFkaWN0X3B1dF9vYmoob3B0aW9ucywgImZpbGVuYW1lIiwgUU9CSkVD VChxc3RyaW5nX2Zyb21fc3RyKGZpbGVuYW1lKSkpOworICAgIHFkaWN0X3B1dF9zdHIob3B0aW9u cywgImZpbGVuYW1lIiwgZmlsZW5hbWUpOwogfQoKIHN0YXRpYyBRZW11T3B0c0xpc3QgcmF3X3J1 bnRpbWVfb3B0cyA9IHsKQEAgLTIwNjEsNyArMjA2MSw3IEBAIHN0YXRpYyB2b2lkIGhkZXZfcGFy c2VfZmlsZW5hbWUoY29uc3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zLAogICAgIC8q IFRoZSBwcmVmaXggaXMgb3B0aW9uYWwsIGp1c3QgYXMgZm9yICJmaWxlIi4gKi8KICAgICBzdHJz dGFydChmaWxlbmFtZSwgImhvc3RfZGV2aWNlOiIsICZmaWxlbmFtZSk7CgotICAgIHFkaWN0X3B1 dF9vYmoob3B0aW9ucywgImZpbGVuYW1lIiwgUU9CSkVDVChxc3RyaW5nX2Zyb21fc3RyKGZpbGVu YW1lKSkpOworICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgImZpbGVuYW1lIiwgZmlsZW5hbWUp OwogfQoKIHN0YXRpYyBib29sIGhkZXZfaXNfc2coQmxvY2tEcml2ZXJTdGF0ZSAqYnMpCkBAIC0y MTQ0LDcgKzIxNDQsNyBAQCBzdGF0aWMgaW50IGhkZXZfb3BlbihCbG9ja0RyaXZlclN0YXRlICpi cywgUURpY3QgKm9wdGlvbnMsIGludCBmbGFncywKICAgICAgICAgICAgIGdvdG8gaGRldl9vcGVu X01hY19lcnJvcjsKICAgICAgICAgfQoKLSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJmaWxl bmFtZSIsIHFzdHJpbmdfZnJvbV9zdHIoYnNkX3BhdGgpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0 cihvcHRpb25zLCAiZmlsZW5hbWUiLCBic2RfcGF0aCk7CgogaGRldl9vcGVuX01hY19lcnJvcjoK ICAgICAgICAgZ19mcmVlKG1lZGlhVHlwZSk7CkBAIC0yMzU0LDcgKzIzNTQsNyBAQCBzdGF0aWMg dm9pZCBjZHJvbV9wYXJzZV9maWxlbmFtZShjb25zdCBjaGFyICpmaWxlbmFtZSwgUURpY3QgKm9w dGlvbnMsCiAgICAgLyogVGhlIHByZWZpeCBpcyBvcHRpb25hbCwganVzdCBhcyBmb3IgImZpbGUi LiAqLwogICAgIHN0cnN0YXJ0KGZpbGVuYW1lLCAiaG9zdF9jZHJvbToiLCAmZmlsZW5hbWUpOwoK LSAgICBxZGljdF9wdXRfb2JqKG9wdGlvbnMsICJmaWxlbmFtZSIsIFFPQkpFQ1QocXN0cmluZ19m cm9tX3N0cihmaWxlbmFtZSkpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJmaWxlbmFt ZSIsIGZpbGVuYW1lKTsKIH0KICNlbmRpZgoKZGlmZiAtLWdpdCBhL2Jsb2NrL2ZpbGUtd2luMzIu YyBiL2Jsb2NrL2ZpbGUtd2luMzIuYwppbmRleCA4MDBmYWJkLi4wZDQ1NWQxIDEwMDY0NAotLS0g YS9ibG9jay9maWxlLXdpbjMyLmMKKysrIGIvYmxvY2svZmlsZS13aW4zMi5jCkBAIC0yODIsNyAr MjgyLDcgQEAgc3RhdGljIHZvaWQgcmF3X3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVu YW1lLCBRRGljdCAqb3B0aW9ucywKICAgICAgKiBmdW5jdGlvbiBjYWxsIGNhbiBiZSBpZ25vcmVk LiAqLwogICAgIHN0cnN0YXJ0KGZpbGVuYW1lLCAiZmlsZToiLCAmZmlsZW5hbWUpOwoKLSAgICBx ZGljdF9wdXRfb2JqKG9wdGlvbnMsICJmaWxlbmFtZSIsIFFPQkpFQ1QocXN0cmluZ19mcm9tX3N0 cihmaWxlbmFtZSkpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJmaWxlbmFtZSIsIGZp bGVuYW1lKTsKIH0KCiBzdGF0aWMgUWVtdU9wdHNMaXN0IHJhd19ydW50aW1lX29wdHMgPSB7CkBA IC02NjksNyArNjY5LDcgQEAgc3RhdGljIHZvaWQgaGRldl9wYXJzZV9maWxlbmFtZShjb25zdCBj aGFyICpmaWxlbmFtZSwgUURpY3QgKm9wdGlvbnMsCiAgICAgLyogVGhlIHByZWZpeCBpcyBvcHRp b25hbCwganVzdCBhcyBmb3IgImZpbGUiLiAqLwogICAgIHN0cnN0YXJ0KGZpbGVuYW1lLCAiaG9z dF9kZXZpY2U6IiwgJmZpbGVuYW1lKTsKCi0gICAgcWRpY3RfcHV0X29iaihvcHRpb25zLCAiZmls ZW5hbWUiLCBRT0JKRUNUKHFzdHJpbmdfZnJvbV9zdHIoZmlsZW5hbWUpKSk7CisgICAgcWRpY3Rf cHV0X3N0cihvcHRpb25zLCAiZmlsZW5hbWUiLCBmaWxlbmFtZSk7CiB9Cgogc3RhdGljIGludCBo ZGV2X29wZW4oQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIFFEaWN0ICpvcHRpb25zLCBpbnQgZmxhZ3Ms CmRpZmYgLS1naXQgYS9ibG9jay9pc2NzaS5jIGIvYmxvY2svaXNjc2kuYwppbmRleCA2YWVlYjll Li5lMjg2NGU2IDEwMDY0NAotLS0gYS9ibG9jay9pc2NzaS5jCisrKyBiL2Jsb2NrL2lzY3NpLmMK QEAgLTE5NjYsNyArMTk2Niw3IEBAIHN0YXRpYyBpbnQgaXNjc2lfY3JlYXRlKGNvbnN0IGNoYXIg KmZpbGVuYW1lLCBRZW11T3B0cyAqb3B0cywgRXJyb3IgKiplcnJwKQogICAgIGlzY3NpbHVuID0g YnMtPm9wYXF1ZTsKCiAgICAgYnNfb3B0aW9ucyA9IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1 dChic19vcHRpb25zLCAiZmlsZW5hbWUiLCBxc3RyaW5nX2Zyb21fc3RyKGZpbGVuYW1lKSk7Cisg ICAgcWRpY3RfcHV0X3N0cihic19vcHRpb25zLCAiZmlsZW5hbWUiLCBmaWxlbmFtZSk7CiAgICAg cmV0ID0gaXNjc2lfb3BlbihicywgYnNfb3B0aW9ucywgMCwgTlVMTCk7CiAgICAgUURFQ1JFRihi c19vcHRpb25zKTsKCmRpZmYgLS1naXQgYS9ibG9jay9uYmQuYyBiL2Jsb2NrL25iZC5jCmluZGV4 IDM1ZjI0YmUuLjMzNDc0OGQgMTAwNjQ0Ci0tLSBhL2Jsb2NrL25iZC5jCisrKyBiL2Jsb2NrL25i ZC5jCkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyBpbnQgbmJkX3BhcnNlX3VyaShjb25zdCBjaGFy ICpmaWxlbmFtZSwgUURpY3QgKm9wdGlvbnMpCiAgICAgcCA9IHVyaS0+cGF0aCA/IHVyaS0+cGF0 aCA6ICIvIjsKICAgICBwICs9IHN0cnNwbihwLCAiLyIpOwogICAgIGlmIChwWzBdKSB7Ci0gICAg ICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZXhwb3J0IiwgcXN0cmluZ19mcm9tX3N0cihwKSk7Cisg ICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgImV4cG9ydCIsIHApOwogICAgIH0KCiAgICAg cXAgPSBxdWVyeV9wYXJhbXNfcGFyc2UodXJpLT5xdWVyeSk7CkBAIC05NCw5ICs5NCw4IEBAIHN0 YXRpYyBpbnQgbmJkX3BhcnNlX3VyaShjb25zdCBjaGFyICpmaWxlbmFtZSwgUURpY3QgKm9wdGlv bnMpCiAgICAgICAgICAgICByZXQgPSAtRUlOVkFMOwogICAgICAgICAgICAgZ290byBvdXQ7CiAg ICAgICAgIH0KLSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJzZXJ2ZXIudHlwZSIsIHFzdHJp bmdfZnJvbV9zdHIoInVuaXgiKSk7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAic2VydmVy LmRhdGEucGF0aCIsCi0gICAgICAgICAgICAgICAgICBxc3RyaW5nX2Zyb21fc3RyKHFwLT5wWzBd LnZhbHVlKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgInNlcnZlci50eXBlIiwg InVuaXgiKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAic2VydmVyLmRhdGEucGF0 aCIsIHFwLT5wWzBdLnZhbHVlKTsKICAgICB9IGVsc2UgewogICAgICAgICBRU3RyaW5nICpob3N0 OwogICAgICAgICBjaGFyICpwb3J0X3N0cjsKQEAgLTExNSwxMSArMTE0LDExIEBAIHN0YXRpYyBp bnQgbmJkX3BhcnNlX3VyaShjb25zdCBjaGFyICpmaWxlbmFtZSwgUURpY3QgKm9wdGlvbnMpCiAg ICAgICAgICAgICBob3N0ID0gcXN0cmluZ19mcm9tX3N0cih1cmktPnNlcnZlcik7CiAgICAgICAg IH0KCi0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAic2VydmVyLnR5cGUiLCBxc3RyaW5nX2Zy b21fc3RyKCJpbmV0IikpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJzZXJ2ZXIu dHlwZSIsICJpbmV0Iik7CiAgICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAic2VydmVyLmRhdGEu aG9zdCIsIGhvc3QpOwoKICAgICAgICAgcG9ydF9zdHIgPSBnX3N0cmR1cF9wcmludGYoIiVkIiwg dXJpLT5wb3J0ID86IE5CRF9ERUZBVUxUX1BPUlQpOwotICAgICAgICBxZGljdF9wdXQob3B0aW9u cywgInNlcnZlci5kYXRhLnBvcnQiLCBxc3RyaW5nX2Zyb21fc3RyKHBvcnRfc3RyKSk7CisgICAg ICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgInNlcnZlci5kYXRhLnBvcnQiLCBwb3J0X3N0cik7 CiAgICAgICAgIGdfZnJlZShwb3J0X3N0cik7CiAgICAgfQoKQEAgLTE4MSw3ICsxODAsNyBAQCBz dGF0aWMgdm9pZCBuYmRfcGFyc2VfZmlsZW5hbWUoY29uc3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0 ICpvcHRpb25zLAogICAgICAgICBleHBvcnRfbmFtZVswXSA9IDA7IC8qIHRydW5jYXRlICdmaWxl JyAqLwogICAgICAgICBleHBvcnRfbmFtZSArPSBzdHJsZW4oRU5fT1BUU1RSKTsKCi0gICAgICAg IHFkaWN0X3B1dChvcHRpb25zLCAiZXhwb3J0IiwgcXN0cmluZ19mcm9tX3N0cihleHBvcnRfbmFt ZSkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJleHBvcnQiLCBleHBvcnRfbmFt ZSk7CiAgICAgfQoKICAgICAvKiBleHRyYWN0IHRoZSBob3N0X3NwZWMgLSBmYWlsIGlmIGl0J3Mg bm90IG5iZDouLi4gKi8KQEAgLTE5Niw4ICsxOTUsOCBAQCBzdGF0aWMgdm9pZCBuYmRfcGFyc2Vf ZmlsZW5hbWUoY29uc3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zLAoKICAgICAvKiBh cmUgd2UgYSBVTklYIG9yIFRDUCBzb2NrZXQ/ICovCiAgICAgaWYgKHN0cnN0YXJ0KGhvc3Rfc3Bl YywgInVuaXg6IiwgJnVuaXhwYXRoKSkgewotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgInNl cnZlci50eXBlIiwgcXN0cmluZ19mcm9tX3N0cigidW5peCIpKTsKLSAgICAgICAgcWRpY3RfcHV0 KG9wdGlvbnMsICJzZXJ2ZXIuZGF0YS5wYXRoIiwgcXN0cmluZ19mcm9tX3N0cih1bml4cGF0aCkp OworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJzZXJ2ZXIudHlwZSIsICJ1bml4Iik7 CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgInNlcnZlci5kYXRhLnBhdGgiLCB1bml4 cGF0aCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgSW5ldFNvY2tldEFkZHJlc3MgKmFkZHIgPSBO VUxMOwoKQEAgLTIwNiw5ICsyMDUsOSBAQCBzdGF0aWMgdm9pZCBuYmRfcGFyc2VfZmlsZW5hbWUo Y29uc3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zLAogICAgICAgICAgICAgZ290byBv dXQ7CiAgICAgICAgIH0KCi0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAic2VydmVyLnR5cGUi LCBxc3RyaW5nX2Zyb21fc3RyKCJpbmV0IikpOwotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywg InNlcnZlci5kYXRhLmhvc3QiLCBxc3RyaW5nX2Zyb21fc3RyKGFkZHItPmhvc3QpKTsKLSAgICAg ICAgcWRpY3RfcHV0KG9wdGlvbnMsICJzZXJ2ZXIuZGF0YS5wb3J0IiwgcXN0cmluZ19mcm9tX3N0 cihhZGRyLT5wb3J0KSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgInNlcnZlci50 eXBlIiwgImluZXQiKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAic2VydmVyLmRh dGEuaG9zdCIsIGFkZHItPmhvc3QpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJz ZXJ2ZXIuZGF0YS5wb3J0IiwgYWRkci0+cG9ydCk7CiAgICAgICAgIHFhcGlfZnJlZV9JbmV0U29j a2V0QWRkcmVzcyhhZGRyKTsKICAgICB9CgpAQCAtMjQ3LDEzICsyNDYsMTMgQEAgc3RhdGljIGJv b2wgbmJkX3Byb2Nlc3NfbGVnYWN5X3NvY2tldF9vcHRpb25zKFFEaWN0ICpvdXRwdXRfb3B0aW9u cywKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQoKLSAgICAgICAgcWRpY3Rf cHV0KG91dHB1dF9vcHRpb25zLCAic2VydmVyLnR5cGUiLCBxc3RyaW5nX2Zyb21fc3RyKCJ1bml4 IikpOwotICAgICAgICBxZGljdF9wdXQob3V0cHV0X29wdGlvbnMsICJzZXJ2ZXIuZGF0YS5wYXRo IiwgcXN0cmluZ19mcm9tX3N0cihwYXRoKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3V0cHV0 X29wdGlvbnMsICJzZXJ2ZXIudHlwZSIsICJ1bml4Iik7CisgICAgICAgIHFkaWN0X3B1dF9zdHIo b3V0cHV0X29wdGlvbnMsICJzZXJ2ZXIuZGF0YS5wYXRoIiwgcGF0aCk7CiAgICAgfSBlbHNlIGlm IChob3N0KSB7Ci0gICAgICAgIHFkaWN0X3B1dChvdXRwdXRfb3B0aW9ucywgInNlcnZlci50eXBl IiwgcXN0cmluZ19mcm9tX3N0cigiaW5ldCIpKTsKLSAgICAgICAgcWRpY3RfcHV0KG91dHB1dF9v cHRpb25zLCAic2VydmVyLmRhdGEuaG9zdCIsIHFzdHJpbmdfZnJvbV9zdHIoaG9zdCkpOwotICAg ICAgICBxZGljdF9wdXQob3V0cHV0X29wdGlvbnMsICJzZXJ2ZXIuZGF0YS5wb3J0IiwKLSAgICAg ICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIocG9ydCA/OiBzdHJpbmdpZnkoTkJEX0RFRkFV TFRfUE9SVCkpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvdXRwdXRfb3B0aW9ucywgInNlcnZl ci50eXBlIiwgImluZXQiKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvdXRwdXRfb3B0aW9ucywg InNlcnZlci5kYXRhLmhvc3QiLCBob3N0KTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvdXRwdXRf b3B0aW9ucywgInNlcnZlci5kYXRhLnBvcnQiLAorICAgICAgICAgICAgICAgICAgICAgIHBvcnQg Pzogc3RyaW5naWZ5KE5CRF9ERUZBVUxUX1BPUlQpKTsKICAgICB9CgogICAgIHJldHVybiB0cnVl OwpAQCAtNTE3LDcgKzUxNiw3IEBAIHN0YXRpYyB2b2lkIG5iZF9yZWZyZXNoX2ZpbGVuYW1lKEJs b2NrRHJpdmVyU3RhdGUgKmJzLCBRRGljdCAqb3B0aW9ucykKICAgICAgICAgcGF0aCA9IHMtPnNh ZGRyLT51LnFfdW5peC5kYXRhLT5wYXRoOwogICAgIH0KCi0gICAgcWRpY3RfcHV0KG9wdHMsICJk cml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKCJuYmQiKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRz LCAiZHJpdmVyIiwgIm5iZCIpOwoKICAgICBpZiAocGF0aCAmJiBzLT5leHBvcnQpIHsKICAgICAg ICAgc25wcmludGYoYnMtPmV4YWN0X2ZpbGVuYW1lLCBzaXplb2YoYnMtPmV4YWN0X2ZpbGVuYW1l KSwKQEAgLTU0MiwxMCArNTQxLDEwIEBAIHN0YXRpYyB2b2lkIG5iZF9yZWZyZXNoX2ZpbGVuYW1l KEJsb2NrRHJpdmVyU3RhdGUgKmJzLCBRRGljdCAqb3B0aW9ucykKICAgICBxZGljdF9wdXRfb2Jq KG9wdHMsICJzZXJ2ZXIiLCBzYWRkcl9xZGljdCk7CgogICAgIGlmIChzLT5leHBvcnQpIHsKLSAg ICAgICAgcWRpY3RfcHV0KG9wdHMsICJleHBvcnQiLCBxc3RyaW5nX2Zyb21fc3RyKHMtPmV4cG9y dCkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdHMsICJleHBvcnQiLCBzLT5leHBvcnQpOwog ICAgIH0KICAgICBpZiAocy0+dGxzY3JlZHNpZCkgewotICAgICAgICBxZGljdF9wdXQob3B0cywg InRscy1jcmVkcyIsIHFzdHJpbmdfZnJvbV9zdHIocy0+dGxzY3JlZHNpZCkpOworICAgICAgICBx ZGljdF9wdXRfc3RyKG9wdHMsICJ0bHMtY3JlZHMiLCBzLT50bHNjcmVkc2lkKTsKICAgICB9Cgog ICAgIHFkaWN0X2ZsYXR0ZW4ob3B0cyk7CmRpZmYgLS1naXQgYS9ibG9jay9uZnMuYyBiL2Jsb2Nr L25mcy5jCmluZGV4IGE1NjQzNDAuLmFhZWFiZDAgMTAwNjQ0Ci0tLSBhL2Jsb2NrL25mcy5jCisr KyBiL2Jsb2NrL25mcy5jCkBAIC0xMDMsOSArMTAzLDkgQEAgc3RhdGljIGludCBuZnNfcGFyc2Vf dXJpKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywgRXJyb3IgKiplcnJwKQog ICAgICAgICBnb3RvIG91dDsKICAgICB9CgotICAgIHFkaWN0X3B1dChvcHRpb25zLCAic2VydmVy Lmhvc3QiLCBxc3RyaW5nX2Zyb21fc3RyKHVyaS0+c2VydmVyKSk7Ci0gICAgcWRpY3RfcHV0KG9w dGlvbnMsICJzZXJ2ZXIudHlwZSIsIHFzdHJpbmdfZnJvbV9zdHIoImluZXQiKSk7Ci0gICAgcWRp Y3RfcHV0KG9wdGlvbnMsICJwYXRoIiwgcXN0cmluZ19mcm9tX3N0cih1cmktPnBhdGgpKTsKKyAg ICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJzZXJ2ZXIuaG9zdCIsIHVyaS0+c2VydmVyKTsKKyAg ICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJzZXJ2ZXIudHlwZSIsICJpbmV0Iik7CisgICAgcWRp Y3RfcHV0X3N0cihvcHRpb25zLCAicGF0aCIsIHVyaS0+cGF0aCk7CgogICAgIGZvciAoaSA9IDA7 IGkgPCBxcC0+bjsgaSsrKSB7CiAgICAgICAgIGlmICghcXAtPnBbaV0udmFsdWUpIHsKQEAgLTEx OSwyMyArMTE5LDE3IEBAIHN0YXRpYyBpbnQgbmZzX3BhcnNlX3VyaShjb25zdCBjaGFyICpmaWxl bmFtZSwgUURpY3QgKm9wdGlvbnMsIEVycm9yICoqZXJycCkKICAgICAgICAgICAgIGdvdG8gb3V0 OwogICAgICAgICB9CiAgICAgICAgIGlmICghc3RyY21wKHFwLT5wW2ldLm5hbWUsICJ1aWQiKSkg ewotICAgICAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJ1c2VyIiwKLSAgICAgICAgICAgICAg ICAgICAgICBxc3RyaW5nX2Zyb21fc3RyKHFwLT5wW2ldLnZhbHVlKSk7CisgICAgICAgICAgICBx ZGljdF9wdXRfc3RyKG9wdGlvbnMsICJ1c2VyIiwgcXAtPnBbaV0udmFsdWUpOwogICAgICAgICB9 IGVsc2UgaWYgKCFzdHJjbXAocXAtPnBbaV0ubmFtZSwgImdpZCIpKSB7Ci0gICAgICAgICAgICBx ZGljdF9wdXQob3B0aW9ucywgImdyb3VwIiwKLSAgICAgICAgICAgICAgICAgICAgICBxc3RyaW5n X2Zyb21fc3RyKHFwLT5wW2ldLnZhbHVlKSk7CisgICAgICAgICAgICBxZGljdF9wdXRfc3RyKG9w dGlvbnMsICJncm91cCIsIHFwLT5wW2ldLnZhbHVlKTsKICAgICAgICAgfSBlbHNlIGlmICghc3Ry Y21wKHFwLT5wW2ldLm5hbWUsICJ0Y3Atc3luY250IikpIHsKLSAgICAgICAgICAgIHFkaWN0X3B1 dChvcHRpb25zLCAidGNwLXN5bi1jb3VudCIsCi0gICAgICAgICAgICAgICAgICAgICAgcXN0cmlu Z19mcm9tX3N0cihxcC0+cFtpXS52YWx1ZSkpOworICAgICAgICAgICAgcWRpY3RfcHV0X3N0cihv cHRpb25zLCAidGNwLXN5bi1jb3VudCIsIHFwLT5wW2ldLnZhbHVlKTsKICAgICAgICAgfSBlbHNl IGlmICghc3RyY21wKHFwLT5wW2ldLm5hbWUsICJyZWFkYWhlYWQiKSkgewotICAgICAgICAgICAg cWRpY3RfcHV0KG9wdGlvbnMsICJyZWFkYWhlYWQtc2l6ZSIsCi0gICAgICAgICAgICAgICAgICAg ICAgcXN0cmluZ19mcm9tX3N0cihxcC0+cFtpXS52YWx1ZSkpOworICAgICAgICAgICAgcWRpY3Rf cHV0X3N0cihvcHRpb25zLCAicmVhZGFoZWFkLXNpemUiLCBxcC0+cFtpXS52YWx1ZSk7CiAgICAg ICAgIH0gZWxzZSBpZiAoIXN0cmNtcChxcC0+cFtpXS5uYW1lLCAicGFnZWNhY2hlIikpIHsKLSAg ICAgICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAicGFnZS1jYWNoZS1zaXplIiwKLSAgICAgICAg ICAgICAgICAgICAgICBxc3RyaW5nX2Zyb21fc3RyKHFwLT5wW2ldLnZhbHVlKSk7CisgICAgICAg ICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJwYWdlLWNhY2hlLXNpemUiLCBxcC0+cFtpXS52 YWx1ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChxcC0+cFtpXS5uYW1lLCAiZGVidWci KSkgewotICAgICAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJkZWJ1ZyIsCi0gICAgICAgICAg ICAgICAgICAgICAgcXN0cmluZ19mcm9tX3N0cihxcC0+cFtpXS52YWx1ZSkpOworICAgICAgICAg ICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZGVidWciLCBxcC0+cFtpXS52YWx1ZSk7CiAgICAg ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJVbmtub3duIE5GUyBw YXJhbWV0ZXIgbmFtZTogJXMiLAogICAgICAgICAgICAgICAgICAgICAgICBxcC0+cFtpXS5uYW1l KTsKQEAgLTc3NSw3ICs3NjksNyBAQCBzdGF0aWMgdm9pZCBuZnNfcmVmcmVzaF9maWxlbmFtZShC bG9ja0RyaXZlclN0YXRlICpicywgUURpY3QgKm9wdGlvbnMpCiAgICAgUU9iamVjdCAqc2VydmVy X3FkaWN0OwogICAgIFZpc2l0b3IgKm92OwoKLSAgICBxZGljdF9wdXQob3B0cywgImRyaXZlciIs IHFzdHJpbmdfZnJvbV9zdHIoIm5mcyIpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdHMsICJkcml2 ZXIiLCAibmZzIik7CgogICAgIGlmIChjbGllbnQtPnVpZCAmJiAhY2xpZW50LT5naWQpIHsKICAg ICAgICAgc25wcmludGYoYnMtPmV4YWN0X2ZpbGVuYW1lLCBzaXplb2YoYnMtPmV4YWN0X2ZpbGVu YW1lKSwKQEAgLTgwMCwyOCArNzk0LDI1IEBAIHN0YXRpYyB2b2lkIG5mc19yZWZyZXNoX2ZpbGVu YW1lKEJsb2NrRHJpdmVyU3RhdGUgKmJzLCBRRGljdCAqb3B0aW9ucykKICAgICBhc3NlcnQocW9i amVjdF90eXBlKHNlcnZlcl9xZGljdCkgPT0gUVRZUEVfUURJQ1QpOwoKICAgICBxZGljdF9wdXRf b2JqKG9wdHMsICJzZXJ2ZXIiLCBzZXJ2ZXJfcWRpY3QpOwotICAgIHFkaWN0X3B1dChvcHRzLCAi cGF0aCIsIHFzdHJpbmdfZnJvbV9zdHIoY2xpZW50LT5wYXRoKSk7CisgICAgcWRpY3RfcHV0X3N0 cihvcHRzLCAicGF0aCIsIGNsaWVudC0+cGF0aCk7CgogICAgIGlmIChjbGllbnQtPnVpZCkgewot ICAgICAgICBxZGljdF9wdXQob3B0cywgInVpZCIsIHFpbnRfZnJvbV9pbnQoY2xpZW50LT51aWQp KTsKKyAgICAgICAgcWRpY3RfcHV0X2ludChvcHRzLCAidWlkIiwgY2xpZW50LT51aWQpOwogICAg IH0KICAgICBpZiAoY2xpZW50LT5naWQpIHsKLSAgICAgICAgcWRpY3RfcHV0KG9wdHMsICJnaWQi LCBxaW50X2Zyb21faW50KGNsaWVudC0+Z2lkKSk7CisgICAgICAgIHFkaWN0X3B1dF9pbnQob3B0 cywgImdpZCIsIGNsaWVudC0+Z2lkKTsKICAgICB9CiAgICAgaWYgKGNsaWVudC0+dGNwX3N5bmNu dCkgewotICAgICAgICBxZGljdF9wdXQob3B0cywgInRjcC1zeW5jbnQiLAotICAgICAgICAgICAg ICAgICAgICAgIHFpbnRfZnJvbV9pbnQoY2xpZW50LT50Y3Bfc3luY250KSk7CisgICAgICAgIHFk aWN0X3B1dF9pbnQob3B0cywgInRjcC1zeW5jbnQiLCBjbGllbnQtPnRjcF9zeW5jbnQpOwogICAg IH0KICAgICBpZiAoY2xpZW50LT5yZWFkYWhlYWQpIHsKLSAgICAgICAgcWRpY3RfcHV0KG9wdHMs ICJyZWFkYWhlYWQiLAotICAgICAgICAgICAgICAgICAgICAgIHFpbnRfZnJvbV9pbnQoY2xpZW50 LT5yZWFkYWhlYWQpKTsKKyAgICAgICAgcWRpY3RfcHV0X2ludChvcHRzLCAicmVhZGFoZWFkIiwg Y2xpZW50LT5yZWFkYWhlYWQpOwogICAgIH0KICAgICBpZiAoY2xpZW50LT5wYWdlY2FjaGUpIHsK LSAgICAgICAgcWRpY3RfcHV0KG9wdHMsICJwYWdlY2FjaGUiLAotICAgICAgICAgICAgICAgICAg ICAgIHFpbnRfZnJvbV9pbnQoY2xpZW50LT5wYWdlY2FjaGUpKTsKKyAgICAgICAgcWRpY3RfcHV0 X2ludChvcHRzLCAicGFnZWNhY2hlIiwgY2xpZW50LT5wYWdlY2FjaGUpOwogICAgIH0KICAgICBp ZiAoY2xpZW50LT5kZWJ1ZykgewotICAgICAgICBxZGljdF9wdXQob3B0cywgImRlYnVnIiwgcWlu dF9mcm9tX2ludChjbGllbnQtPmRlYnVnKSk7CisgICAgICAgIHFkaWN0X3B1dF9pbnQob3B0cywg ImRlYnVnIiwgY2xpZW50LT5kZWJ1Zyk7CiAgICAgfQoKICAgICB2aXNpdF9mcmVlKG92KTsKZGlm ZiAtLWdpdCBhL2Jsb2NrL251bGwuYyBiL2Jsb2NrL251bGwuYwppbmRleCBiMzAwMzkwLi44NzZm OTA5IDEwMDY0NAotLS0gYS9ibG9jay9udWxsLmMKKysrIGIvYmxvY2svbnVsbC5jCkBAIC0yMzIs NyArMjMyLDcgQEAgc3RhdGljIHZvaWQgbnVsbF9yZWZyZXNoX2ZpbGVuYW1lKEJsb2NrRHJpdmVy U3RhdGUgKmJzLCBRRGljdCAqb3B0cykKICAgICAgICAgICAgICAgICAgYnMtPmRydi0+Zm9ybWF0 X25hbWUpOwogICAgIH0KCi0gICAgcWRpY3RfcHV0KG9wdHMsICJkcml2ZXIiLCBxc3RyaW5nX2Zy b21fc3RyKGJzLT5kcnYtPmZvcm1hdF9uYW1lKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRzLCAi ZHJpdmVyIiwgYnMtPmRydi0+Zm9ybWF0X25hbWUpOwogICAgIGJzLT5mdWxsX29wZW5fb3B0aW9u cyA9IG9wdHM7CiB9CgpkaWZmIC0tZ2l0IGEvYmxvY2svcWNvdzIuYyBiL2Jsb2NrL3Fjb3cyLmMK aW5kZXggOTZmYjhhOC4uNWJmNTBhZiAxMDA2NDQKLS0tIGEvYmxvY2svcWNvdzIuYworKysgYi9i bG9jay9xY293Mi5jCkBAIC0yMjUyLDcgKzIyNTIsNyBAQCBzdGF0aWMgaW50IHFjb3cyX2NyZWF0 ZTIoY29uc3QgY2hhciAqZmlsZW5hbWUsIGludDY0X3QgdG90YWxfc2l6ZSwKICAgICAgKiB0YWJs ZSkKICAgICAgKi8KICAgICBvcHRpb25zID0gcWRpY3RfbmV3KCk7Ci0gICAgcWRpY3RfcHV0KG9w dGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKCJxY293MiIpKTsKKyAgICBxZGljdF9w dXRfc3RyKG9wdGlvbnMsICJkcml2ZXIiLCAicWNvdzIiKTsKICAgICBibGsgPSBibGtfbmV3X29w ZW4oZmlsZW5hbWUsIE5VTEwsIG9wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgIEJEUlZf T19SRFdSIHwgQkRSVl9PX05PX0ZMVVNILCAmbG9jYWxfZXJyKTsKICAgICBpZiAoYmxrID09IE5V TEwpIHsKQEAgLTIzMTMsNyArMjMxMyw3IEBAIHN0YXRpYyBpbnQgcWNvdzJfY3JlYXRlMihjb25z dCBjaGFyICpmaWxlbmFtZSwgaW50NjRfdCB0b3RhbF9zaXplLAoKICAgICAvKiBSZW9wZW4gdGhl IGltYWdlIHdpdGhvdXQgQkRSVl9PX05PX0ZMVVNIIHRvIGZsdXNoIGl0IGJlZm9yZSByZXR1cm5p bmcgKi8KICAgICBvcHRpb25zID0gcWRpY3RfbmV3KCk7Ci0gICAgcWRpY3RfcHV0KG9wdGlvbnMs ICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKCJxY293MiIpKTsKKyAgICBxZGljdF9wdXRfc3Ry KG9wdGlvbnMsICJkcml2ZXIiLCAicWNvdzIiKTsKICAgICBibGsgPSBibGtfbmV3X29wZW4oZmls ZW5hbWUsIE5VTEwsIG9wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgIEJEUlZfT19SRFdS IHwgQkRSVl9PX05PX0JBQ0tJTkcsICZsb2NhbF9lcnIpOwogICAgIGlmIChibGsgPT0gTlVMTCkg ewpkaWZmIC0tZ2l0IGEvYmxvY2svcXVvcnVtLmMgYi9ibG9jay9xdW9ydW0uYwppbmRleCA4NmUy MDcyLi42YTQyNmVmIDEwMDY0NAotLS0gYS9ibG9jay9xdW9ydW0uYworKysgYi9ibG9jay9xdW9y dW0uYwpAQCAtMTA5NCwxNCArMTA5NCwxMSBAQCBzdGF0aWMgdm9pZCBxdW9ydW1fcmVmcmVzaF9m aWxlbmFtZShCbG9ja0RyaXZlclN0YXRlICpicywgUURpY3QgKm9wdGlvbnMpCiAgICAgfQoKICAg ICBvcHRzID0gcWRpY3RfbmV3KCk7Ci0gICAgcWRpY3RfcHV0X29iaihvcHRzLCAiZHJpdmVyIiwg UU9CSkVDVChxc3RyaW5nX2Zyb21fc3RyKCJxdW9ydW0iKSkpOwotICAgIHFkaWN0X3B1dF9vYmoo b3B0cywgUVVPUlVNX09QVF9WT1RFX1RIUkVTSE9MRCwKLSAgICAgICAgICAgICAgICAgIFFPQkpF Q1QocWludF9mcm9tX2ludChzLT50aHJlc2hvbGQpKSk7Ci0gICAgcWRpY3RfcHV0X29iaihvcHRz LCBRVU9SVU1fT1BUX0JMS1ZFUklGWSwKLSAgICAgICAgICAgICAgICAgIFFPQkpFQ1QocWJvb2xf ZnJvbV9ib29sKHMtPmlzX2Jsa3ZlcmlmeSkpKTsKLSAgICBxZGljdF9wdXRfb2JqKG9wdHMsIFFV T1JVTV9PUFRfUkVXUklURSwKLSAgICAgICAgICAgICAgICAgIFFPQkpFQ1QocWJvb2xfZnJvbV9i b29sKHMtPnJld3JpdGVfY29ycnVwdGVkKSkpOwotICAgIHFkaWN0X3B1dF9vYmoob3B0cywgImNo aWxkcmVuIiwgUU9CSkVDVChjaGlsZHJlbikpOworICAgIHFkaWN0X3B1dF9zdHIob3B0cywgImRy aXZlciIsICJxdW9ydW0iKTsKKyAgICBxZGljdF9wdXRfaW50KG9wdHMsIFFVT1JVTV9PUFRfVk9U RV9USFJFU0hPTEQsIHMtPnRocmVzaG9sZCk7CisgICAgcWRpY3RfcHV0X2Jvb2wob3B0cywgUVVP UlVNX09QVF9CTEtWRVJJRlksIHMtPmlzX2Jsa3ZlcmlmeSk7CisgICAgcWRpY3RfcHV0X2Jvb2wo b3B0cywgUVVPUlVNX09QVF9SRVdSSVRFLCBzLT5yZXdyaXRlX2NvcnJ1cHRlZCk7CisgICAgcWRp Y3RfcHV0KG9wdHMsICJjaGlsZHJlbiIsIGNoaWxkcmVuKTsKCiAgICAgYnMtPmZ1bGxfb3Blbl9v cHRpb25zID0gb3B0czsKIH0KZGlmZiAtLWdpdCBhL2Jsb2NrL3NzaC5jIGIvYmxvY2svc3NoLmMK aW5kZXggZTBlZGYyMC4uM2Y3NmQ1MyAxMDA2NDQKLS0tIGEvYmxvY2svc3NoLmMKKysrIGIvYmxv Y2svc3NoLmMKQEAgLTIyNywyNCArMjI3LDIzIEBAIHN0YXRpYyBpbnQgcGFyc2VfdXJpKGNvbnN0 IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywgRXJyb3IgKiplcnJwKQogICAgIH0KCiAg ICAgaWYodXJpLT51c2VyICYmIHN0cmNtcCh1cmktPnVzZXIsICIiKSAhPSAwKSB7Ci0gICAgICAg IHFkaWN0X3B1dChvcHRpb25zLCAidXNlciIsIHFzdHJpbmdfZnJvbV9zdHIodXJpLT51c2VyKSk7 CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgInVzZXIiLCB1cmktPnVzZXIpOwogICAg IH0KCi0gICAgcWRpY3RfcHV0KG9wdGlvbnMsICJzZXJ2ZXIuaG9zdCIsIHFzdHJpbmdfZnJvbV9z dHIodXJpLT5zZXJ2ZXIpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJzZXJ2ZXIuaG9z dCIsIHVyaS0+c2VydmVyKTsKCiAgICAgcG9ydF9zdHIgPSBnX3N0cmR1cF9wcmludGYoIiVkIiwg dXJpLT5wb3J0ID86IDIyKTsKLSAgICBxZGljdF9wdXQob3B0aW9ucywgInNlcnZlci5wb3J0Iiwg cXN0cmluZ19mcm9tX3N0cihwb3J0X3N0cikpOworICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywg InNlcnZlci5wb3J0IiwgcG9ydF9zdHIpOwogICAgIGdfZnJlZShwb3J0X3N0cik7CgotICAgIHFk aWN0X3B1dChvcHRpb25zLCAicGF0aCIsIHFzdHJpbmdfZnJvbV9zdHIodXJpLT5wYXRoKSk7Cisg ICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAicGF0aCIsIHVyaS0+cGF0aCk7CgogICAgIC8qIFBp Y2sgb3V0IGFueSBxdWVyeSBwYXJhbWV0ZXJzIHRoYXQgd2UgdW5kZXJzdGFuZCwgYW5kIGlnbm9y ZQogICAgICAqIHRoZSByZXN0LgogICAgICAqLwogICAgIGZvciAoaSA9IDA7IGkgPCBxcC0+bjsg KytpKSB7CiAgICAgICAgIGlmIChzdHJjbXAocXAtPnBbaV0ubmFtZSwgImhvc3Rfa2V5X2NoZWNr IikgPT0gMCkgewotICAgICAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJob3N0X2tleV9jaGVj ayIsCi0gICAgICAgICAgICAgICAgICAgICAgcXN0cmluZ19mcm9tX3N0cihxcC0+cFtpXS52YWx1 ZSkpOworICAgICAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiaG9zdF9rZXlfY2hlY2si LCBxcC0+cFtpXS52YWx1ZSk7CiAgICAgICAgIH0KICAgICB9CgpAQCAtNTc0LDkgKzU3Myw4IEBA IHN0YXRpYyBib29sIHNzaF9wcm9jZXNzX2xlZ2FjeV9zb2NrZXRfb3B0aW9ucyhRRGljdCAqb3V0 cHV0X29wdHMsCiAgICAgfQoKICAgICBpZiAoaG9zdCkgewotICAgICAgICBxZGljdF9wdXQob3V0 cHV0X29wdHMsICJzZXJ2ZXIuaG9zdCIsIHFzdHJpbmdfZnJvbV9zdHIoaG9zdCkpOwotICAgICAg ICBxZGljdF9wdXQob3V0cHV0X29wdHMsICJzZXJ2ZXIucG9ydCIsCi0gICAgICAgICAgICAgICAg ICBxc3RyaW5nX2Zyb21fc3RyKHBvcnQgPzogc3RyaW5naWZ5KDIyKSkpOworICAgICAgICBxZGlj dF9wdXRfc3RyKG91dHB1dF9vcHRzLCAic2VydmVyLmhvc3QiLCBob3N0KTsKKyAgICAgICAgcWRp Y3RfcHV0X3N0cihvdXRwdXRfb3B0cywgInNlcnZlci5wb3J0IiwgcG9ydCA/OiBzdHJpbmdpZnko MjIpKTsKICAgICB9CgogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvYmxvY2svdnZmYXQu YyBiL2Jsb2NrL3Z2ZmF0LmMKaW5kZXggZGVkMjEwOS4uY2YyZTEwOSAxMDA2NDQKLS0tIGEvYmxv Y2svdnZmYXQuYworKysgYi9ibG9jay92dmZhdC5jCkBAIC0xMDU3LDEwICsxMDU3LDEwIEBAIHN0 YXRpYyB2b2lkIHZ2ZmF0X3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGlj dCAqb3B0aW9ucywKICAgICB9CgogICAgIC8qIEZpbGwgaW4gdGhlIG9wdGlvbnMgUURpY3QgKi8K LSAgICBxZGljdF9wdXQob3B0aW9ucywgImRpciIsIHFzdHJpbmdfZnJvbV9zdHIoZmlsZW5hbWUp KTsKLSAgICBxZGljdF9wdXQob3B0aW9ucywgImZhdC10eXBlIiwgcWludF9mcm9tX2ludChmYXRf dHlwZSkpOwotICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZmxvcHB5IiwgcWJvb2xfZnJvbV9ib29s KGZsb3BweSkpOwotICAgIHFkaWN0X3B1dChvcHRpb25zLCAicnciLCBxYm9vbF9mcm9tX2Jvb2wo cncpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJkaXIiLCBmaWxlbmFtZSk7CisgICAg cWRpY3RfcHV0X2ludChvcHRpb25zLCAiZmF0LXR5cGUiLCBmYXRfdHlwZSk7CisgICAgcWRpY3Rf cHV0X2Jvb2wob3B0aW9ucywgImZsb3BweSIsIGZsb3BweSk7CisgICAgcWRpY3RfcHV0X2Jvb2wo b3B0aW9ucywgInJ3IiwgcncpOwogfQoKIHN0YXRpYyBpbnQgdnZmYXRfb3BlbihCbG9ja0RyaXZl clN0YXRlICpicywgUURpY3QgKm9wdGlvbnMsIGludCBmbGFncywKQEAgLTMwMTksNyArMzAxOSw3 IEBAIHN0YXRpYyBpbnQgZW5hYmxlX3dyaXRlX3RhcmdldChCbG9ja0RyaXZlclN0YXRlICpicywg RXJyb3IgKiplcnJwKQogICAgIH0KCiAgICAgb3B0aW9ucyA9IHFkaWN0X25ldygpOwotICAgIHFk aWN0X3B1dChvcHRpb25zLCAid3JpdGUtdGFyZ2V0LmRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIo InFjb3ciKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAid3JpdGUtdGFyZ2V0LmRyaXZl ciIsICJxY293Iik7CiAgICAgcy0+cWNvdyA9IGJkcnZfb3Blbl9jaGlsZChzLT5xY293X2ZpbGVu YW1lLCBvcHRpb25zLCAid3JpdGUtdGFyZ2V0IiwgYnMsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmY2hpbGRfdnZmYXRfcWNvdywgZmFsc2UsIGVycnApOwogICAgIFFERUNSRUYob3B0 aW9ucyk7CmRpZmYgLS1naXQgYS9ibG9ja2Rldi5jIGIvYmxvY2tkZXYuYwppbmRleCAyNDVlMWUx Li4yODAyY2VhIDEwMDY0NAotLS0gYS9ibG9ja2Rldi5jCisrKyBiL2Jsb2NrZGV2LmMKQEAgLTUy Myw3ICs1MjMsNyBAQCBzdGF0aWMgQmxvY2tCYWNrZW5kICpibG9ja2Rldl9pbml0KGNvbnN0IGNo YXIgKmZpbGUsIFFEaWN0ICpic19vcHRzLAogICAgICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAi Q2Fubm90IHNwZWNpZnkgYm90aCAnZHJpdmVyJyBhbmQgJ2Zvcm1hdCciKTsKICAgICAgICAgICAg IGdvdG8gZWFybHlfZXJyOwogICAgICAgICB9Ci0gICAgICAgIHFkaWN0X3B1dChic19vcHRzLCAi ZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0cihidWYpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihi c19vcHRzLCAiZHJpdmVyIiwgYnVmKTsKICAgICB9CgogICAgIG9uX3dyaXRlX2Vycm9yID0gQkxP Q0tERVZfT05fRVJST1JfRU5PU1BDOwpAQCAtODk5LDEwICs4OTksOCBAQCBEcml2ZUluZm8gKmRy aXZlX25ldyhRZW11T3B0cyAqYWxsX29wdHMsIEJsb2NrSW50ZXJmYWNlVHlwZSBibG9ja19kZWZh dWx0X3R5cGUpCiAgICAgICAgIGNvcHlfb25fcmVhZCA9IGZhbHNlOwogICAgIH0KCi0gICAgcWRp Y3RfcHV0KGJzX29wdHMsIEJEUlZfT1BUX1JFQURfT05MWSwKLSAgICAgICAgICAgICAgcXN0cmlu Z19mcm9tX3N0cihyZWFkX29ubHkgPyAib24iIDogIm9mZiIpKTsKLSAgICBxZGljdF9wdXQoYnNf b3B0cywgImNvcHktb24tcmVhZCIsCi0gICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIoY29w eV9vbl9yZWFkID8gIm9uIiA6Im9mZiIpKTsKKyAgICBxZGljdF9wdXRfc3RyKGJzX29wdHMsIEJE UlZfT1BUX1JFQURfT05MWSwgcmVhZF9vbmx5ID8gIm9uIiA6ICJvZmYiKTsKKyAgICBxZGljdF9w dXRfc3RyKGJzX29wdHMsICJjb3B5LW9uLXJlYWQiLCBjb3B5X29uX3JlYWQgPyAib24iIDogIm9m ZiIpOwoKICAgICAvKiBDb250cm9sbGVyIHR5cGUgKi8KICAgICB2YWx1ZSA9IHFlbXVfb3B0X2dl dChsZWdhY3lfb3B0cywgImlmIik7CkBAIC0xMDYzLDcgKzEwNjEsNyBAQCBEcml2ZUluZm8gKmRy aXZlX25ldyhRZW11T3B0cyAqYWxsX29wdHMsIEJsb2NrSW50ZXJmYWNlVHlwZSBibG9ja19kZWZh dWx0X3R5cGUpCiAgICAgICAgICAgICBlcnJvcl9yZXBvcnQoIndlcnJvciBpcyBub3Qgc3VwcG9y dGVkIGJ5IHRoaXMgYnVzIHR5cGUiKTsKICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAg fQotICAgICAgICBxZGljdF9wdXQoYnNfb3B0cywgIndlcnJvciIsIHFzdHJpbmdfZnJvbV9zdHIo d2Vycm9yKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIoYnNfb3B0cywgIndlcnJvciIsIHdlcnJv cik7CiAgICAgfQoKICAgICByZXJyb3IgPSBxZW11X29wdF9nZXQobGVnYWN5X29wdHMsICJyZXJy b3IiKTsKQEAgLTEwNzMsNyArMTA3MSw3IEBAIERyaXZlSW5mbyAqZHJpdmVfbmV3KFFlbXVPcHRz ICphbGxfb3B0cywgQmxvY2tJbnRlcmZhY2VUeXBlIGJsb2NrX2RlZmF1bHRfdHlwZSkKICAgICAg ICAgICAgIGVycm9yX3JlcG9ydCgicmVycm9yIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidXMg dHlwZSIpOwogICAgICAgICAgICAgZ290byBmYWlsOwogICAgICAgICB9Ci0gICAgICAgIHFkaWN0 X3B1dChic19vcHRzLCAicmVycm9yIiwgcXN0cmluZ19mcm9tX3N0cihyZXJyb3IpKTsKKyAgICAg ICAgcWRpY3RfcHV0X3N0cihic19vcHRzLCAicmVycm9yIiwgcmVycm9yKTsKICAgICB9CgogICAg IC8qIEFjdHVhbCBibG9jayBkZXZpY2UgaW5pdDogRnVuY3Rpb25hbGl0eSBzaGFyZWQgd2l0aCBi bG9ja2Rldi1hZGQgKi8KQEAgLTE3MzIsMTAgKzE3MzAsOSBAQCBzdGF0aWMgdm9pZCBleHRlcm5h bF9zbmFwc2hvdF9wcmVwYXJlKEJsa0FjdGlvblN0YXRlICpjb21tb24sCgogICAgICAgICBvcHRp b25zID0gcWRpY3RfbmV3KCk7CiAgICAgICAgIGlmIChzLT5oYXNfc25hcHNob3Rfbm9kZV9uYW1l KSB7Ci0gICAgICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgIm5vZGUtbmFtZSIsCi0gICAgICAg ICAgICAgICAgICAgICAgcXN0cmluZ19mcm9tX3N0cihzbmFwc2hvdF9ub2RlX25hbWUpKTsKKyAg ICAgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgIm5vZGUtbmFtZSIsIHNuYXBzaG90X25v ZGVfbmFtZSk7CiAgICAgICAgIH0KLSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJkcml2ZXIi LCBxc3RyaW5nX2Zyb21fc3RyKGZvcm1hdCkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlv bnMsICJkcml2ZXIiLCBmb3JtYXQpOwoKICAgICAgICAgZmxhZ3MgfD0gQkRSVl9PX05PX0JBQ0tJ Tkc7CiAgICAgfQpAQCAtMjU0NCwxMSArMjU0MSwxMCBAQCB2b2lkIHFtcF9ibG9ja2Rldl9jaGFu Z2VfbWVkaXVtKGJvb2wgaGFzX2RldmljZSwgY29uc3QgY2hhciAqZGV2aWNlLAoKICAgICBvcHRp b25zID0gcWRpY3RfbmV3KCk7CiAgICAgZGV0ZWN0X3plcm9lcyA9IGJsa19nZXRfZGV0ZWN0X3pl cm9lc19mcm9tX3Jvb3Rfc3RhdGUoYmxrKTsKLSAgICBxZGljdF9wdXQob3B0aW9ucywgImRldGVj dC16ZXJvZXMiLAotICAgICAgICAgICAgICBxc3RyaW5nX2Zyb21fc3RyKGRldGVjdF96ZXJvZXMg PyAib24iIDogIm9mZiIpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJkZXRlY3QtemVy b2VzIiwgZGV0ZWN0X3plcm9lcyA/ICJvbiIgOiAib2ZmIik7CgogICAgIGlmIChoYXNfZm9ybWF0 KSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0 cihmb3JtYXQpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZHJpdmVyIiwgZm9y bWF0KTsKICAgICB9CgogICAgIG1lZGl1bV9icyA9IGJkcnZfb3BlbihmaWxlbmFtZSwgTlVMTCwg b3B0aW9ucywgYmRydl9mbGFncywgZXJycCk7CkBAIC0zMjA0LDcgKzMyMDAsNyBAQCBzdGF0aWMg QmxvY2tKb2IgKmRvX2RyaXZlX2JhY2t1cChEcml2ZUJhY2t1cCAqYmFja3VwLCBCbG9ja0pvYlR4 biAqdHhuLAoKICAgICBpZiAoYmFja3VwLT5mb3JtYXQpIHsKICAgICAgICAgb3B0aW9ucyA9IHFk aWN0X25ldygpOwotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgImRyaXZlciIsIHFzdHJpbmdf ZnJvbV9zdHIoYmFja3VwLT5mb3JtYXQpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25z LCAiZHJpdmVyIiwgYmFja3VwLT5mb3JtYXQpOwogICAgIH0KCiAgICAgdGFyZ2V0X2JzID0gYmRy dl9vcGVuKGJhY2t1cC0+dGFyZ2V0LCBOVUxMLCBvcHRpb25zLCBmbGFncywgZXJycCk7CkBAIC0z NTAyLDEwICszNDk4LDEwIEBAIHZvaWQgcW1wX2RyaXZlX21pcnJvcihEcml2ZU1pcnJvciAqYXJn LCBFcnJvciAqKmVycnApCgogICAgIG9wdGlvbnMgPSBxZGljdF9uZXcoKTsKICAgICBpZiAoYXJn LT5oYXNfbm9kZV9uYW1lKSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAibm9kZS1uYW1l IiwgcXN0cmluZ19mcm9tX3N0cihhcmctPm5vZGVfbmFtZSkpOworICAgICAgICBxZGljdF9wdXRf c3RyKG9wdGlvbnMsICJub2RlLW5hbWUiLCBhcmctPm5vZGVfbmFtZSk7CiAgICAgfQogICAgIGlm IChmb3JtYXQpIHsKLSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJkcml2ZXIiLCBxc3RyaW5n X2Zyb21fc3RyKGZvcm1hdCkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJkcml2 ZXIiLCBmb3JtYXQpOwogICAgIH0KCiAgICAgLyogTWlycm9yaW5nIHRha2VzIGNhcmUgb2YgY29w eS1vbi13cml0ZSB1c2luZyB0aGUgc291cmNlJ3MgYmFja2luZwpkaWZmIC0tZ2l0IGEvaHcvYmxv Y2sveGVuX2Rpc2suYyBiL2h3L2Jsb2NrL3hlbl9kaXNrLmMKaW5kZXggNDU2YTJkNS4uNDdiMmNh MSAxMDA2NDQKLS0tIGEvaHcvYmxvY2sveGVuX2Rpc2suYworKysgYi9ody9ibG9jay94ZW5fZGlz ay5jCkBAIC0xMDgyLDcgKzEwODIsNyBAQCBzdGF0aWMgaW50IGJsa19jb25uZWN0KHN0cnVjdCBY ZW5EZXZpY2UgKnhlbmRldikKCiAgICAgICAgIGlmIChzdHJjbXAoYmxrZGV2LT5maWxlcHJvdG8s ICI8dW5zZXQ+IikpIHsKICAgICAgICAgICAgIG9wdGlvbnMgPSBxZGljdF9uZXcoKTsKLSAgICAg ICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0cihibGtk ZXYtPmZpbGVwcm90bykpOworICAgICAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZHJp dmVyIiwgYmxrZGV2LT5maWxlcHJvdG8pOwogICAgICAgICB9CgogICAgICAgICAvKiBzZXR1cCB2 aWEgeGVuYnVzIC0+IGNyZWF0ZSBuZXcgYmxvY2sgZHJpdmVyIGluc3RhbmNlICovCmRpZmYgLS1n aXQgYS9ody91c2IveGVuLXVzYi5jIGIvaHcvdXNiL3hlbi11c2IuYwppbmRleCA4ZTY3NmU2Li42 NjU5NDE1IDEwMDY0NAotLS0gYS9ody91c2IveGVuLXVzYi5jCisrKyBiL2h3L3VzYi94ZW4tdXNi LmMKQEAgLTc0NiwxNiArNzQ2LDE2IEBAIHN0YXRpYyB2b2lkIHVzYmJhY2tfcG9ydGlkX2FkZChz dHJ1Y3QgdXNiYmFja19pbmZvICp1c2JpZiwgdW5zaWduZWQgcG9ydCwKICAgICBwb3J0bmFtZSsr OwoKICAgICBxZGljdCA9IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1dChxZGljdCwgImRyaXZl ciIsIHFzdHJpbmdfZnJvbV9zdHIoInVzYi1ob3N0IikpOworICAgIHFkaWN0X3B1dF9zdHIocWRp Y3QsICJkcml2ZXIiLCAidXNiLWhvc3QiKTsKICAgICB0bXAgPSBnX3N0cmR1cF9wcmludGYoIiVz LjAiLCB1c2JpZi0+eGVuZGV2LnFkZXYuaWQpOwotICAgIHFkaWN0X3B1dChxZGljdCwgImJ1cyIs IHFzdHJpbmdfZnJvbV9zdHIodG1wKSk7CisgICAgcWRpY3RfcHV0X3N0cihxZGljdCwgImJ1cyIs IHRtcCk7CiAgICAgZ19mcmVlKHRtcCk7CiAgICAgdG1wID0gZ19zdHJkdXBfcHJpbnRmKCIlcy0l dSIsIHVzYmlmLT54ZW5kZXYucWRldi5pZCwgcG9ydCk7Ci0gICAgcWRpY3RfcHV0KHFkaWN0LCAi aWQiLCBxc3RyaW5nX2Zyb21fc3RyKHRtcCkpOworICAgIHFkaWN0X3B1dF9zdHIocWRpY3QsICJp ZCIsIHRtcCk7CiAgICAgZ19mcmVlKHRtcCk7Ci0gICAgcWRpY3RfcHV0KHFkaWN0LCAicG9ydCIs IHFpbnRfZnJvbV9pbnQocG9ydCkpOwotICAgIHFkaWN0X3B1dChxZGljdCwgImhvc3RidXMiLCBx aW50X2Zyb21faW50KGF0b2koYnVzaWQpKSk7Ci0gICAgcWRpY3RfcHV0KHFkaWN0LCAiaG9zdHBv cnQiLCBxc3RyaW5nX2Zyb21fc3RyKHBvcnRuYW1lKSk7CisgICAgcWRpY3RfcHV0X2ludChxZGlj dCwgInBvcnQiLCBwb3J0KTsKKyAgICBxZGljdF9wdXRfaW50KHFkaWN0LCAiaG9zdGJ1cyIsIGF0 b2koYnVzaWQpKTsKKyAgICBxZGljdF9wdXRfc3RyKHFkaWN0LCAiaG9zdHBvcnQiLCBwb3J0bmFt ZSk7CiAgICAgb3B0cyA9IHFlbXVfb3B0c19mcm9tX3FkaWN0KHFlbXVfZmluZF9vcHRzKCJkZXZp Y2UiKSwgcWRpY3QsICZsb2NhbF9lcnIpOwogICAgIGlmIChsb2NhbF9lcnIpIHsKICAgICAgICAg Z290byBlcnI7CmRpZmYgLS1naXQgYS9tb25pdG9yLmMgYi9tb25pdG9yLmMKaW5kZXggMDg0MWQ0 My4uMmE4NzdlZiAxMDA2NDQKLS0tIGEvbW9uaXRvci5jCisrKyBiL21vbml0b3IuYwpAQCAtMjYx OCw3ICsyNjE4LDcgQEAgc3RhdGljIFFEaWN0ICptb25pdG9yX3BhcnNlX2FyZ3VtZW50cyhNb25p dG9yICptb24sCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgZ290 byBmYWlsOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBxZGljdF9wdXQocWRp Y3QsIGtleSwgcXN0cmluZ19mcm9tX3N0cihidWYpKTsKKyAgICAgICAgICAgICAgICBxZGljdF9w dXRfc3RyKHFkaWN0LCBrZXksIGJ1Zik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh azsKICAgICAgICAgY2FzZSAnTyc6CkBAIC0yNzIwLDkgKzI3MjAsOSBAQCBzdGF0aWMgUURpY3Qg Km1vbml0b3JfcGFyc2VfYXJndW1lbnRzKE1vbml0b3IgKm1vbiwKICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemUgPSAtMTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg IH0KLSAgICAgICAgICAgICAgICBxZGljdF9wdXQocWRpY3QsICJjb3VudCIsIHFpbnRfZnJvbV9p bnQoY291bnQpKTsKLSAgICAgICAgICAgICAgICBxZGljdF9wdXQocWRpY3QsICJmb3JtYXQiLCBx aW50X2Zyb21faW50KGZvcm1hdCkpOwotICAgICAgICAgICAgICAgIHFkaWN0X3B1dChxZGljdCwg InNpemUiLCBxaW50X2Zyb21faW50KHNpemUpKTsKKyAgICAgICAgICAgICAgICBxZGljdF9wdXRf aW50KHFkaWN0LCAiY291bnQiLCBjb3VudCk7CisgICAgICAgICAgICAgICAgcWRpY3RfcHV0X2lu dChxZGljdCwgImZvcm1hdCIsIGZvcm1hdCk7CisgICAgICAgICAgICAgICAgcWRpY3RfcHV0X2lu dChxZGljdCwgInNpemUiLCBzaXplKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICBjYXNlICdpJzoKQEAgLTI3NjUsNyArMjc2NSw3IEBAIHN0YXRpYyBRRGljdCAq bW9uaXRvcl9wYXJzZV9hcmd1bWVudHMoTW9uaXRvciAqbW9uLAogICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgIHZhbCA8PD0gMjA7CiAgICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICAgIHFkaWN0X3B1dChxZGljdCwga2V5LCBxaW50X2Zyb21faW50KHZhbCkp OworICAgICAgICAgICAgICAgIHFkaWN0X3B1dF9pbnQocWRpY3QsIGtleSwgdmFsKTsKICAgICAg ICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICdvJzoKQEAgLTI3ODcs NyArMjc4Nyw3IEBAIHN0YXRpYyBRRGljdCAqbW9uaXRvcl9wYXJzZV9hcmd1bWVudHMoTW9uaXRv ciAqbW9uLAogICAgICAgICAgICAgICAgICAgICBtb25pdG9yX3ByaW50Zihtb24sICJpbnZhbGlk IHNpemVcbiIpOwogICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgICAgICAg ICAgfQotICAgICAgICAgICAgICAgIHFkaWN0X3B1dChxZGljdCwga2V5LCBxaW50X2Zyb21faW50 KHZhbCkpOworICAgICAgICAgICAgICAgIHFkaWN0X3B1dF9pbnQocWRpY3QsIGtleSwgdmFsKTsK ICAgICAgICAgICAgICAgICBwID0gZW5kOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJl YWs7CkBAIC0yODQzLDcgKzI4NDMsNyBAQCBzdGF0aWMgUURpY3QgKm1vbml0b3JfcGFyc2VfYXJn dW1lbnRzKE1vbml0b3IgKm1vbiwKICAgICAgICAgICAgICAgICAgICAgbW9uaXRvcl9wcmludGYo bW9uLCAiRXhwZWN0ZWQgJ29uJyBvciAnb2ZmJ1xuIik7CiAgICAgICAgICAgICAgICAgICAgIGdv dG8gZmFpbDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcWRpY3RfcHV0KHFk aWN0LCBrZXksIHFib29sX2Zyb21fYm9vbCh2YWwpKTsKKyAgICAgICAgICAgICAgICBxZGljdF9w dXRfYm9vbChxZGljdCwga2V5LCB2YWwpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgIGNhc2UgJy0nOgpAQCAtMjg3NCw3ICsyODc0LDcgQEAgc3RhdGljIFFEaWN0 ICptb25pdG9yX3BhcnNlX2FyZ3VtZW50cyhNb25pdG9yICptb24sCiAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBoYXMgb3B0aW9uICovCiAg ICAgICAgICAgICAgICAgICAgICAgICBwKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICBxZGlj dF9wdXQocWRpY3QsIGtleSwgcWJvb2xfZnJvbV9ib29sKHRydWUpKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgIHFkaWN0X3B1dF9ib29sKHFkaWN0LCBrZXksIHRydWUpOwogICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMjkwMCw3ICsy OTAwLDcgQEAgc3RhdGljIFFEaWN0ICptb25pdG9yX3BhcnNlX2FyZ3VtZW50cyhNb25pdG9yICpt b24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZC0+bmFtZSk7CiAgICAg ICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgICAgcWRpY3RfcHV0KHFkaWN0LCBrZXksIHFzdHJpbmdfZnJvbV9zdHIocCkpOworICAgICAg ICAgICAgICAgIHFkaWN0X3B1dF9zdHIocWRpY3QsIGtleSwgcCk7CiAgICAgICAgICAgICAgICAg cCArPSBsZW47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh L3FhcGkvcW1wLWV2ZW50LmMgYi9xYXBpL3FtcC1ldmVudC5jCmluZGV4IDgwMmVkZTQuLmJhMzAy OWMgMTAwNjQ0Ci0tLSBhL3FhcGkvcW1wLWV2ZW50LmMKKysrIGIvcWFwaS9xbXAtZXZlbnQuYwpA QCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgdm9pZCB0aW1lc3RhbXBfcHV0KFFEaWN0ICpxZGljdCkK IFFEaWN0ICpxbXBfZXZlbnRfYnVpbGRfZGljdChjb25zdCBjaGFyICpldmVudF9uYW1lKQogewog ICAgIFFEaWN0ICpkaWN0ID0gcWRpY3RfbmV3KCk7Ci0gICAgcWRpY3RfcHV0KGRpY3QsICJldmVu dCIsIHFzdHJpbmdfZnJvbV9zdHIoZXZlbnRfbmFtZSkpOworICAgIHFkaWN0X3B1dF9zdHIoZGlj dCwgImV2ZW50IiwgZXZlbnRfbmFtZSk7CiAgICAgdGltZXN0YW1wX3B1dChkaWN0KTsKICAgICBy ZXR1cm4gZGljdDsKIH0KZGlmZiAtLWdpdCBhL3FlbXUtaW1nLmMgYi9xZW11LWltZy5jCmluZGV4 IDVkZjY2ZmUuLmY5Y2VkZDAgMTAwNjQ0Ci0tLSBhL3FlbXUtaW1nLmMKKysrIGIvcWVtdS1pbWcu YwpAQCAtMjk4LDcgKzI5OCw3IEBAIHN0YXRpYyBCbG9ja0JhY2tlbmQgKmltZ19vcGVuX2ZpbGUo Y29uc3QgY2hhciAqZmlsZW5hbWUsCgogICAgIGlmIChmbXQpIHsKICAgICAgICAgb3B0aW9ucyA9 IHFkaWN0X25ldygpOwotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgImRyaXZlciIsIHFzdHJp bmdfZnJvbV9zdHIoZm10KSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgImRyaXZl ciIsIGZtdCk7CiAgICAgfQoKICAgICBibGsgPSBibGtfbmV3X29wZW4oZmlsZW5hbWUsIE5VTEws IG9wdGlvbnMsIGZsYWdzLCAmbG9jYWxfZXJyKTsKQEAgLTI5NTMsNyArMjk1Myw3IEBAIHN0YXRp YyBpbnQgaW1nX3JlYmFzZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCgogICAgICAgICBpZiAoYnMt PmJhY2tpbmdfZm9ybWF0WzBdICE9ICdcMCcpIHsKICAgICAgICAgICAgIG9wdGlvbnMgPSBxZGlj dF9uZXcoKTsKLSAgICAgICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZHJpdmVyIiwgcXN0cmlu Z19mcm9tX3N0cihicy0+YmFja2luZ19mb3JtYXQpKTsKKyAgICAgICAgICAgIHFkaWN0X3B1dF9z dHIob3B0aW9ucywgImRyaXZlciIsIGJzLT5iYWNraW5nX2Zvcm1hdCk7CiAgICAgICAgIH0KCiAg ICAgICAgIGJkcnZfZ2V0X2JhY2tpbmdfZmlsZW5hbWUoYnMsIGJhY2tpbmdfbmFtZSwgc2l6ZW9m KGJhY2tpbmdfbmFtZSkpOwpAQCAtMjk3MCw3ICsyOTcwLDcgQEAgc3RhdGljIGludCBpbWdfcmVi YXNlKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgaWYgKG91dF9iYXNlaW1nWzBdKSB7 CiAgICAgICAgICAgICBpZiAob3V0X2Jhc2VmbXQpIHsKICAgICAgICAgICAgICAgICBvcHRpb25z ID0gcWRpY3RfbmV3KCk7Ci0gICAgICAgICAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJkcml2 ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKG91dF9iYXNlZm10KSk7CisgICAgICAgICAgICAgICAgcWRp Y3RfcHV0X3N0cihvcHRpb25zLCAiZHJpdmVyIiwgb3V0X2Jhc2VmbXQpOwogICAgICAgICAgICAg fSBlbHNlIHsKICAgICAgICAgICAgICAgICBvcHRpb25zID0gTlVMTDsKICAgICAgICAgICAgIH0K ZGlmZiAtLWdpdCBhL3FlbXUtaW8uYyBiL3FlbXUtaW8uYwppbmRleCAyM2EyMjlmLi45N2ZlOTlk IDEwMDY0NAotLS0gYS9xZW11LWlvLmMKKysrIGIvcWVtdS1pby5jCkBAIC01OTksNyArNTk5LDcg QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgICB9IGVsc2UgewogICAg ICAgICAgICAgaWYgKGZvcm1hdCkgewogICAgICAgICAgICAgICAgIG9wdHMgPSBxZGljdF9uZXco KTsKLSAgICAgICAgICAgICAgICBxZGljdF9wdXQob3B0cywgImRyaXZlciIsIHFzdHJpbmdfZnJv bV9zdHIoZm9ybWF0KSk7CisgICAgICAgICAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRzLCAiZHJp dmVyIiwgZm9ybWF0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG9wZW5maWxlKGFyZ3Zb b3B0aW5kXSwgZmxhZ3MsIHdyaXRldGhyb3VnaCwgb3B0cyk7CiAgICAgICAgIH0KZGlmZiAtLWdp dCBhL3FlbXUtbmJkLmMgYi9xZW11LW5iZC5jCmluZGV4IGM3MzRmNjIuLjhmNWFjOGQgMTAwNjQ0 Ci0tLSBhL3FlbXUtbmJkLmMKKysrIGIvcWVtdS1uYmQuYwpAQCAtODgyLDcgKzg4Miw3IEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICB9IGVsc2UgewogICAgICAgICBpZiAo Zm10KSB7CiAgICAgICAgICAgICBvcHRpb25zID0gcWRpY3RfbmV3KCk7Ci0gICAgICAgICAgICBx ZGljdF9wdXQob3B0aW9ucywgImRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoZm10KSk7CisgICAg ICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJkcml2ZXIiLCBmbXQpOwogICAgICAgICB9 CiAgICAgICAgIGJsayA9IGJsa19uZXdfb3BlbihzcmNwYXRoLCBOVUxMLCBvcHRpb25zLCBmbGFn cywgJmxvY2FsX2Vycik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvcW9iamVjdC9xZGljdC5jIGIvcW9i amVjdC9xZGljdC5jCmluZGV4IDE5N2IwZmIuLjUxZjBlZjYgMTAwNjQ0Ci0tLSBhL3FvYmplY3Qv cWRpY3QuYworKysgYi9xb2JqZWN0L3FkaWN0LmMKQEAgLTQ4Nyw3ICs0ODcsNyBAQCB2b2lkIHFk aWN0X3NldF9kZWZhdWx0X3N0cihRRGljdCAqZHN0LCBjb25zdCBjaGFyICprZXksIGNvbnN0IGNo YXIgKnZhbCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KCi0gICAgcWRpY3RfcHV0KGRzdCwga2V5 LCBxc3RyaW5nX2Zyb21fc3RyKHZhbCkpOworICAgIHFkaWN0X3B1dF9zdHIoZHN0LCBrZXksIHZh bCk7CiB9Cgogc3RhdGljIHZvaWQgcWRpY3RfZmxhdHRlbl9xZGljdChRRGljdCAqcWRpY3QsIFFE aWN0ICp0YXJnZXQsCmRpZmYgLS1naXQgYS90YXJnZXQvczM5MHgvY3B1X21vZGVscy5jIGIvdGFy Z2V0L3MzOTB4L2NwdV9tb2RlbHMuYwppbmRleCA1YjY2ZDMzLi4wMzRlOTA0IDEwMDY0NAotLS0g YS90YXJnZXQvczM5MHgvY3B1X21vZGVscy5jCisrKyBiL3RhcmdldC9zMzkweC9jcHVfbW9kZWxz LmMKQEAgLTM3NiwxMiArMzc2LDEyIEBAIHN0YXRpYyB2b2lkIGNwdV9tb2RlbF9mcm9tX2luZm8o UzM5MENQVU1vZGVsICptb2RlbCwgY29uc3QgQ3B1TW9kZWxJbmZvICppbmZvLAoKIHN0YXRpYyB2 b2lkIHFkaWN0X2FkZF9kaXNhYmxlZF9mZWF0KGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgKm9wYXF1 ZSkKIHsKLSAgICBxZGljdF9wdXQoKFFEaWN0ICopIG9wYXF1ZSwgbmFtZSwgcWJvb2xfZnJvbV9i b29sKGZhbHNlKSk7CisgICAgcWRpY3RfcHV0X2Jvb2woKFFEaWN0ICopIG9wYXF1ZSwgbmFtZSwg ZmFsc2UpOwogfQoKIHN0YXRpYyB2b2lkIHFkaWN0X2FkZF9lbmFibGVkX2ZlYXQoY29uc3QgY2hh ciAqbmFtZSwgdm9pZCAqb3BhcXVlKQogewotICAgIHFkaWN0X3B1dCgoUURpY3QgKikgb3BhcXVl LCBuYW1lLCBxYm9vbF9mcm9tX2Jvb2wodHJ1ZSkpOworICAgIHFkaWN0X3B1dF9ib29sKChRRGlj dCAqKSBvcGFxdWUsIG5hbWUsIHRydWUpOwogfQoKIC8qIGNvbnZlcnQgUzM5MENQVURlZiBpbnRv IGEgc3RhdGljIENwdU1vZGVsSW5mbyAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2stcWRpY3Qu YyBiL3Rlc3RzL2NoZWNrLXFkaWN0LmMKaW5kZXggMDdiMWM3OS4uZDAwYjQxMSAxMDA2NDQKLS0t IGEvdGVzdHMvY2hlY2stcWRpY3QuYworKysgYi90ZXN0cy9jaGVjay1xZGljdC5jCkBAIC00Nyw3 ICs0Nyw3IEBAIHN0YXRpYyB2b2lkIHFkaWN0X3B1dF9vYmpfdGVzdCh2b2lkKQogICAgIHFkaWN0 ID0gcWRpY3RfbmV3KCk7CgogICAgIC8vIGtleSAiIiB3aWxsIGhhdmUgdGRiIGhhc2ggMTIzNDUK LSAgICBxZGljdF9wdXRfb2JqKHFkaWN0LCAiIiwgUU9CSkVDVChxaW50X2Zyb21faW50KG51bSkp KTsKKyAgICBxZGljdF9wdXRfaW50KHFkaWN0LCAiIiwgbnVtKTsKCiAgICAgZ19hc3NlcnQocWRp Y3Rfc2l6ZShxZGljdCkgPT0gMSk7CiAgICAgZW50ID0gUUxJU1RfRklSU1QoJnFkaWN0LT50YWJs ZVsxMjM0NSAlIFFESUNUX0JVQ0tFVF9NQVhdKTsKQEAgLTY2LDggKzY2LDggQEAgc3RhdGljIHZv aWQgcWRpY3RfZGVzdHJveV9zaW1wbGVfdGVzdCh2b2lkKQogICAgIFFEaWN0ICpxZGljdDsKCiAg ICAgcWRpY3QgPSBxZGljdF9uZXcoKTsKLSAgICBxZGljdF9wdXRfb2JqKHFkaWN0LCAibnVtIiwg UU9CSkVDVChxaW50X2Zyb21faW50KDApKSk7Ci0gICAgcWRpY3RfcHV0X29iaihxZGljdCwgInN0 ciIsIFFPQkpFQ1QocXN0cmluZ19mcm9tX3N0cigiZm9vIikpKTsKKyAgICBxZGljdF9wdXRfaW50 KHFkaWN0LCAibnVtIiwgMCk7CisgICAgcWRpY3RfcHV0X3N0cihxZGljdCwgInN0ciIsICJmb28i KTsKCiAgICAgUURFQ1JFRihxZGljdCk7CiB9CkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyB2b2lk IHFkaWN0X2dldF90ZXN0KHZvaWQpCiAgICAgY29uc3QgY2hhciAqa2V5ID0gInRlc3QiOwogICAg IFFEaWN0ICp0ZXN0c19kaWN0ID0gcWRpY3RfbmV3KCk7CgotICAgIHFkaWN0X3B1dCh0ZXN0c19k aWN0LCBrZXksIHFpbnRfZnJvbV9pbnQodmFsdWUpKTsKKyAgICBxZGljdF9wdXRfaW50KHRlc3Rz X2RpY3QsIGtleSwgdmFsdWUpOwoKICAgICBvYmogPSBxZGljdF9nZXQodGVzdHNfZGljdCwga2V5 KTsKICAgICBnX2Fzc2VydChvYmogIT0gTlVMTCk7CkBAIC05OCw3ICs5OCw3IEBAIHN0YXRpYyB2 b2lkIHFkaWN0X2dldF9pbnRfdGVzdCh2b2lkKQogICAgIGNvbnN0IGNoYXIgKmtleSA9ICJpbnQi OwogICAgIFFEaWN0ICp0ZXN0c19kaWN0ID0gcWRpY3RfbmV3KCk7CgotICAgIHFkaWN0X3B1dCh0 ZXN0c19kaWN0LCBrZXksIHFpbnRfZnJvbV9pbnQodmFsdWUpKTsKKyAgICBxZGljdF9wdXRfaW50 KHRlc3RzX2RpY3QsIGtleSwgdmFsdWUpOwoKICAgICByZXQgPSBxZGljdF9nZXRfaW50KHRlc3Rz X2RpY3QsIGtleSk7CiAgICAgZ19hc3NlcnQocmV0ID09IHZhbHVlKTsKQEAgLTExMyw3ICsxMTMs NyBAQCBzdGF0aWMgdm9pZCBxZGljdF9nZXRfdHJ5X2ludF90ZXN0KHZvaWQpCiAgICAgY29uc3Qg Y2hhciAqa2V5ID0gImludCI7CiAgICAgUURpY3QgKnRlc3RzX2RpY3QgPSBxZGljdF9uZXcoKTsK Ci0gICAgcWRpY3RfcHV0KHRlc3RzX2RpY3QsIGtleSwgcWludF9mcm9tX2ludCh2YWx1ZSkpOwor ICAgIHFkaWN0X3B1dF9pbnQodGVzdHNfZGljdCwga2V5LCB2YWx1ZSk7CgogICAgIHJldCA9IHFk aWN0X2dldF90cnlfaW50KHRlc3RzX2RpY3QsIGtleSwgMCk7CiAgICAgZ19hc3NlcnQocmV0ID09 IHZhbHVlKTsKQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgdm9pZCBxZGljdF9nZXRfc3RyX3Rl c3Qodm9pZCkKICAgICBjb25zdCBjaGFyICpzdHIgPSAic3RyaW5nIjsKICAgICBRRGljdCAqdGVz dHNfZGljdCA9IHFkaWN0X25ldygpOwoKLSAgICBxZGljdF9wdXQodGVzdHNfZGljdCwga2V5LCBx c3RyaW5nX2Zyb21fc3RyKHN0cikpOworICAgIHFkaWN0X3B1dF9zdHIodGVzdHNfZGljdCwga2V5 LCBzdHIpOwoKICAgICBwID0gcWRpY3RfZ2V0X3N0cih0ZXN0c19kaWN0LCBrZXkpOwogICAgIGdf YXNzZXJ0KHAgIT0gTlVMTCk7CkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIHZvaWQgcWRpY3Rf Z2V0X3RyeV9zdHJfdGVzdCh2b2lkKQogICAgIGNvbnN0IGNoYXIgKnN0ciA9ICJzdHJpbmciOwog ICAgIFFEaWN0ICp0ZXN0c19kaWN0ID0gcWRpY3RfbmV3KCk7CgotICAgIHFkaWN0X3B1dCh0ZXN0 c19kaWN0LCBrZXksIHFzdHJpbmdfZnJvbV9zdHIoc3RyKSk7CisgICAgcWRpY3RfcHV0X3N0cih0 ZXN0c19kaWN0LCBrZXksIHN0cik7CgogICAgIHAgPSBxZGljdF9nZXRfdHJ5X3N0cih0ZXN0c19k aWN0LCBrZXkpOwogICAgIGdfYXNzZXJ0KHAgIT0gTlVMTCk7CkBAIC0xODgsNyArMTg4LDcgQEAg c3RhdGljIHZvaWQgcWRpY3RfaGFza2V5X3Rlc3Qodm9pZCkKICAgICBjb25zdCBjaGFyICprZXkg PSAidGVzdCI7CiAgICAgUURpY3QgKnRlc3RzX2RpY3QgPSBxZGljdF9uZXcoKTsKCi0gICAgcWRp Y3RfcHV0KHRlc3RzX2RpY3QsIGtleSwgcWludF9mcm9tX2ludCgwKSk7CisgICAgcWRpY3RfcHV0 X2ludCh0ZXN0c19kaWN0LCBrZXksIDApOwogICAgIGdfYXNzZXJ0KHFkaWN0X2hhc2tleSh0ZXN0 c19kaWN0LCBrZXkpID09IDEpOwoKICAgICBRREVDUkVGKHRlc3RzX2RpY3QpOwpAQCAtMTk5LDcg KzE5OSw3IEBAIHN0YXRpYyB2b2lkIHFkaWN0X2RlbF90ZXN0KHZvaWQpCiAgICAgY29uc3QgY2hh ciAqa2V5ID0gImtleSB0ZXN0IjsKICAgICBRRGljdCAqdGVzdHNfZGljdCA9IHFkaWN0X25ldygp OwoKLSAgICBxZGljdF9wdXQodGVzdHNfZGljdCwga2V5LCBxc3RyaW5nX2Zyb21fc3RyKCJmb28i KSk7CisgICAgcWRpY3RfcHV0X3N0cih0ZXN0c19kaWN0LCBrZXksICJmb28iKTsKICAgICBnX2Fz c2VydChxZGljdF9zaXplKHRlc3RzX2RpY3QpID09IDEpOwoKICAgICBxZGljdF9kZWwodGVzdHNf ZGljdCwga2V5KTsKQEAgLTIyNiw5ICsyMjYsOSBAQCBzdGF0aWMgdm9pZCBxZGljdF9pdGVyYXBp X3Rlc3Qodm9pZCkKCiAgICAgZ19hc3NlcnQocWRpY3RfZmlyc3QodGVzdHNfZGljdCkgPT0gTlVM TCk7CgotICAgIHFkaWN0X3B1dCh0ZXN0c19kaWN0LCAia2V5MSIsIHFpbnRfZnJvbV9pbnQoMSkp OwotICAgIHFkaWN0X3B1dCh0ZXN0c19kaWN0LCAia2V5MiIsIHFpbnRfZnJvbV9pbnQoMikpOwot ICAgIHFkaWN0X3B1dCh0ZXN0c19kaWN0LCAia2V5MyIsIHFpbnRfZnJvbV9pbnQoMykpOworICAg IHFkaWN0X3B1dF9pbnQodGVzdHNfZGljdCwgImtleTEiLCAxKTsKKyAgICBxZGljdF9wdXRfaW50 KHRlc3RzX2RpY3QsICJrZXkyIiwgMik7CisgICAgcWRpY3RfcHV0X2ludCh0ZXN0c19kaWN0LCAi a2V5MyIsIDMpOwoKICAgICBjb3VudCA9IDA7CiAgICAgZm9yIChlbnQgPSBxZGljdF9maXJzdCh0 ZXN0c19kaWN0KTsgZW50OyBlbnQgPSBxZGljdF9uZXh0KHRlc3RzX2RpY3QsIGVudCkpewpAQCAt Mjk0LDggKzI5NCw4IEBAIHN0YXRpYyB2b2lkIHFkaWN0X2ZsYXR0ZW5fdGVzdCh2b2lkKQogICAg ICAqIH0KICAgICAgKi8KCi0gICAgcWRpY3RfcHV0KGRpY3QxLCAiYSIsIHFpbnRfZnJvbV9pbnQo MCkpOwotICAgIHFkaWN0X3B1dChkaWN0MSwgImIiLCBxaW50X2Zyb21faW50KDEpKTsKKyAgICBx ZGljdF9wdXRfaW50KGRpY3QxLCAiYSIsIDApOworICAgIHFkaWN0X3B1dF9pbnQoZGljdDEsICJi IiwgMSk7CgogICAgIHFsaXN0X2FwcGVuZF9vYmoobGlzdDEsIFFPQkpFQ1QocWludF9mcm9tX2lu dCgyMykpKTsKICAgICBxbGlzdF9hcHBlbmRfb2JqKGxpc3QxLCBRT0JKRUNUKHFpbnRfZnJvbV9p bnQoNjYpKSk7CkBAIC0zMDMsMTEgKzMwMywxMSBAQCBzdGF0aWMgdm9pZCBxZGljdF9mbGF0dGVu X3Rlc3Qodm9pZCkKICAgICBxbGlzdF9hcHBlbmRfb2JqKGxpc3QyLCBRT0JKRUNUKHFpbnRfZnJv bV9pbnQoNDIpKSk7CiAgICAgcWxpc3RfYXBwZW5kX29iaihsaXN0MiwgUU9CSkVDVChsaXN0MSkp OwoKLSAgICBxZGljdF9wdXQoZGljdDIsICJjIiwgcWludF9mcm9tX2ludCgyKSk7Ci0gICAgcWRp Y3RfcHV0KGRpY3QyLCAiZCIsIHFpbnRfZnJvbV9pbnQoMykpOwotICAgIHFkaWN0X3B1dF9vYmoo ZGljdDMsICJlIiwgUU9CSkVDVChsaXN0MikpOwotICAgIHFkaWN0X3B1dF9vYmooZGljdDMsICJm IiwgUU9CSkVDVChkaWN0MikpOwotICAgIHFkaWN0X3B1dChkaWN0MywgImciLCBxaW50X2Zyb21f aW50KDQpKTsKKyAgICBxZGljdF9wdXRfaW50KGRpY3QyLCAiYyIsIDIpOworICAgIHFkaWN0X3B1 dF9pbnQoZGljdDIsICJkIiwgMyk7CisgICAgcWRpY3RfcHV0KGRpY3QzLCAiZSIsIGxpc3QyKTsK KyAgICBxZGljdF9wdXQoZGljdDMsICJmIiwgZGljdDIpOworICAgIHFkaWN0X3B1dF9pbnQoZGlj dDMsICJnIiwgNCk7CgogICAgIHFkaWN0X2ZsYXR0ZW4oZGljdDMpOwoKQEAgLTM2OSwxMiArMzY5 LDEyIEBAIHN0YXRpYyB2b2lkIHFkaWN0X2FycmF5X3NwbGl0X3Rlc3Qodm9pZCkKICAgICAgKiBU aGlzIGV4YW1wbGUgaXMgZ2l2ZW4gaW4gdGhlIGNvbW1lbnQgb2YgcWRpY3RfYXJyYXlfc3BsaXQo KS4KICAgICAgKi8KCi0gICAgcWRpY3RfcHV0KHRlc3RfZGljdCwgIjEueCIsIHFpbnRfZnJvbV9p bnQoMCkpOwotICAgIHFkaWN0X3B1dCh0ZXN0X2RpY3QsICI0LnkiLCBxaW50X2Zyb21faW50KDEp KTsKLSAgICBxZGljdF9wdXQodGVzdF9kaWN0LCAiMC5hIiwgcWludF9mcm9tX2ludCg0MikpOwot ICAgIHFkaWN0X3B1dCh0ZXN0X2RpY3QsICJvLm8iLCBxaW50X2Zyb21faW50KDcpKTsKLSAgICBx ZGljdF9wdXQodGVzdF9kaWN0LCAiMC5iIiwgcWludF9mcm9tX2ludCgyMykpOwotICAgIHFkaWN0 X3B1dCh0ZXN0X2RpY3QsICIyIiwgcWludF9mcm9tX2ludCg2NikpOworICAgIHFkaWN0X3B1dF9p bnQodGVzdF9kaWN0LCAiMS54IiwgMCk7CisgICAgcWRpY3RfcHV0X2ludCh0ZXN0X2RpY3QsICI0 LnkiLCAxKTsKKyAgICBxZGljdF9wdXRfaW50KHRlc3RfZGljdCwgIjAuYSIsIDQyKTsKKyAgICBx ZGljdF9wdXRfaW50KHRlc3RfZGljdCwgIm8ubyIsIDcpOworICAgIHFkaWN0X3B1dF9pbnQodGVz dF9kaWN0LCAiMC5iIiwgMjMpOworICAgIHFkaWN0X3B1dF9pbnQodGVzdF9kaWN0LCAiMiIsIDY2 KTsKCiAgICAgcWRpY3RfYXJyYXlfc3BsaXQodGVzdF9kaWN0LCAmdGVzdF9saXN0KTsKCkBAIC00 NDEsOSArNDQxLDkgQEAgc3RhdGljIHZvaWQgcWRpY3RfYXJyYXlfc3BsaXRfdGVzdCh2b2lkKQoK ICAgICB0ZXN0X2RpY3QgPSBxZGljdF9uZXcoKTsKCi0gICAgcWRpY3RfcHV0KHRlc3RfZGljdCwg IjAiLCBxaW50X2Zyb21faW50KDQyKSk7Ci0gICAgcWRpY3RfcHV0KHRlc3RfZGljdCwgIjEiLCBx aW50X2Zyb21faW50KDIzKSk7Ci0gICAgcWRpY3RfcHV0KHRlc3RfZGljdCwgIjEueCIsIHFpbnRf ZnJvbV9pbnQoODQpKTsKKyAgICBxZGljdF9wdXRfaW50KHRlc3RfZGljdCwgIjAiLCA0Mik7Cisg ICAgcWRpY3RfcHV0X2ludCh0ZXN0X2RpY3QsICIxIiwgMjMpOworICAgIHFkaWN0X3B1dF9pbnQo dGVzdF9kaWN0LCAiMS54IiwgODQpOwoKICAgICBxZGljdF9hcnJheV9zcGxpdCh0ZXN0X2RpY3Qs ICZ0ZXN0X2xpc3QpOwoKQEAgLTQ3MiwzOCArNDcyLDM4IEBAIHN0YXRpYyB2b2lkIHFkaWN0X2Fy cmF5X2VudHJpZXNfdGVzdCh2b2lkKQoKICAgICBnX2Fzc2VydF9jbXBpbnQocWRpY3RfYXJyYXlf ZW50cmllcyhkaWN0LCAiZm9vLiIpLCA9PSwgMCk7CgotICAgIHFkaWN0X3B1dChkaWN0LCAiYmFy IiwgcWludF9mcm9tX2ludCgwKSk7Ci0gICAgcWRpY3RfcHV0KGRpY3QsICJiYXouMCIsIHFpbnRf ZnJvbV9pbnQoMCkpOworICAgIHFkaWN0X3B1dF9pbnQoZGljdCwgImJhciIsIDApOworICAgIHFk aWN0X3B1dF9pbnQoZGljdCwgImJhei4wIiwgMCk7CiAgICAgZ19hc3NlcnRfY21waW50KHFkaWN0 X2FycmF5X2VudHJpZXMoZGljdCwgImZvby4iKSwgPT0sIDApOwoKLSAgICBxZGljdF9wdXQoZGlj dCwgImZvby4xIiwgcWludF9mcm9tX2ludCgwKSk7CisgICAgcWRpY3RfcHV0X2ludChkaWN0LCAi Zm9vLjEiLCAwKTsKICAgICBnX2Fzc2VydF9jbXBpbnQocWRpY3RfYXJyYXlfZW50cmllcyhkaWN0 LCAiZm9vLiIpLCA9PSwgLUVJTlZBTCk7Ci0gICAgcWRpY3RfcHV0KGRpY3QsICJmb28uMCIsIHFp bnRfZnJvbV9pbnQoMCkpOworICAgIHFkaWN0X3B1dF9pbnQoZGljdCwgImZvby4wIiwgMCk7CiAg ICAgZ19hc3NlcnRfY21waW50KHFkaWN0X2FycmF5X2VudHJpZXMoZGljdCwgImZvby4iKSwgPT0s IDIpOwotICAgIHFkaWN0X3B1dChkaWN0LCAiZm9vLmJhciIsIHFpbnRfZnJvbV9pbnQoMCkpOwor ICAgIHFkaWN0X3B1dF9pbnQoZGljdCwgImZvby5iYXIiLCAwKTsKICAgICBnX2Fzc2VydF9jbXBp bnQocWRpY3RfYXJyYXlfZW50cmllcyhkaWN0LCAiZm9vLiIpLCA9PSwgLUVJTlZBTCk7CiAgICAg cWRpY3RfZGVsKGRpY3QsICJmb28uYmFyIik7CgotICAgIHFkaWN0X3B1dChkaWN0LCAiZm9vLjIu YSIsIHFpbnRfZnJvbV9pbnQoMCkpOwotICAgIHFkaWN0X3B1dChkaWN0LCAiZm9vLjIuYiIsIHFp bnRfZnJvbV9pbnQoMCkpOwotICAgIHFkaWN0X3B1dChkaWN0LCAiZm9vLjIuYyIsIHFpbnRfZnJv bV9pbnQoMCkpOworICAgIHFkaWN0X3B1dF9pbnQoZGljdCwgImZvby4yLmEiLCAwKTsKKyAgICBx ZGljdF9wdXRfaW50KGRpY3QsICJmb28uMi5iIiwgMCk7CisgICAgcWRpY3RfcHV0X2ludChkaWN0 LCAiZm9vLjIuYyIsIDApOwogICAgIGdfYXNzZXJ0X2NtcGludChxZGljdF9hcnJheV9lbnRyaWVz KGRpY3QsICJmb28uIiksID09LCAzKTsKICAgICBnX2Fzc2VydF9jbXBpbnQocWRpY3RfYXJyYXlf ZW50cmllcyhkaWN0LCAiIiksID09LCAtRUlOVkFMKTsKCiAgICAgUURFQ1JFRihkaWN0KTsKCiAg ICAgZGljdCA9IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1dChkaWN0LCAiMSIsIHFpbnRfZnJv bV9pbnQoMCkpOworICAgIHFkaWN0X3B1dF9pbnQoZGljdCwgIjEiLCAwKTsKICAgICBnX2Fzc2Vy dF9jbXBpbnQocWRpY3RfYXJyYXlfZW50cmllcyhkaWN0LCAiIiksID09LCAtRUlOVkFMKTsKLSAg ICBxZGljdF9wdXQoZGljdCwgIjAiLCBxaW50X2Zyb21faW50KDApKTsKKyAgICBxZGljdF9wdXRf aW50KGRpY3QsICIwIiwgMCk7CiAgICAgZ19hc3NlcnRfY21waW50KHFkaWN0X2FycmF5X2VudHJp ZXMoZGljdCwgIiIpLCA9PSwgMik7Ci0gICAgcWRpY3RfcHV0KGRpY3QsICJiYXIiLCBxaW50X2Zy b21faW50KDApKTsKKyAgICBxZGljdF9wdXRfaW50KGRpY3QsICJiYXIiLCAwKTsKICAgICBnX2Fz c2VydF9jbXBpbnQocWRpY3RfYXJyYXlfZW50cmllcyhkaWN0LCAiIiksID09LCAtRUlOVkFMKTsK ICAgICBxZGljdF9kZWwoZGljdCwgImJhciIpOwoKLSAgICBxZGljdF9wdXQoZGljdCwgIjIuYSIs IHFpbnRfZnJvbV9pbnQoMCkpOwotICAgIHFkaWN0X3B1dChkaWN0LCAiMi5iIiwgcWludF9mcm9t X2ludCgwKSk7Ci0gICAgcWRpY3RfcHV0KGRpY3QsICIyLmMiLCBxaW50X2Zyb21faW50KDApKTsK KyAgICBxZGljdF9wdXRfaW50KGRpY3QsICIyLmEiLCAwKTsKKyAgICBxZGljdF9wdXRfaW50KGRp Y3QsICIyLmIiLCAwKTsKKyAgICBxZGljdF9wdXRfaW50KGRpY3QsICIyLmMiLCAwKTsKICAgICBn X2Fzc2VydF9jbXBpbnQocWRpY3RfYXJyYXlfZW50cmllcyhkaWN0LCAiIiksID09LCAzKTsKCiAg ICAgUURFQ1JFRihkaWN0KTsKQEAgLTUyOSw3ICs1MjksNyBAQCBzdGF0aWMgdm9pZCBxZGljdF9q b2luX3Rlc3Qodm9pZCkKCiAgICAgICAgIC8qIEZpcnN0IGl0ZXJhdGlvbjogVGVzdCBtb3ZlbWVu dCAqLwogICAgICAgICAvKiBTZWNvbmQgaXRlcmF0aW9uOiBUZXN0IGVtcHR5IHNvdXJjZSBhbmQg bm9uLWVtcHR5IGRlc3RpbmF0aW9uICovCi0gICAgICAgIHFkaWN0X3B1dChkaWN0MiwgImZvbyIs IHFpbnRfZnJvbV9pbnQoNDIpKTsKKyAgICAgICAgcWRpY3RfcHV0X2ludChkaWN0MiwgImZvbyIs IDQyKTsKCiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKICAgICAgICAgICAgIHFk aWN0X2pvaW4oZGljdDEsIGRpY3QyLCBvdmVyd3JpdGUpOwpAQCAtNTQxLDcgKzU0MSw3IEBAIHN0 YXRpYyB2b2lkIHFkaWN0X2pvaW5fdGVzdCh2b2lkKQogICAgICAgICB9CgogICAgICAgICAvKiBU ZXN0IG5vbi1lbXB0eSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHdpdGhvdXQgY29uZmxpY3QgKi8K LSAgICAgICAgcWRpY3RfcHV0KGRpY3QyLCAiYmFyIiwgcWludF9mcm9tX2ludCgyMykpOworICAg ICAgICBxZGljdF9wdXRfaW50KGRpY3QyLCAiYmFyIiwgMjMpOwoKICAgICAgICAgcWRpY3Rfam9p bihkaWN0MSwgZGljdDIsIG92ZXJ3cml0ZSk7CgpAQCAtNTUyLDcgKzU1Miw3IEBAIHN0YXRpYyB2 b2lkIHFkaWN0X2pvaW5fdGVzdCh2b2lkKQogICAgICAgICBnX2Fzc2VydChxZGljdF9nZXRfaW50 KGRpY3QxLCAiYmFyIikgPT0gMjMpOwoKICAgICAgICAgLyogVGVzdCBjb25mbGljdCAqLwotICAg ICAgICBxZGljdF9wdXQoZGljdDIsICJmb28iLCBxaW50X2Zyb21faW50KDg0KSk7CisgICAgICAg IHFkaWN0X3B1dF9pbnQoZGljdDIsICJmb28iLCA4NCk7CgogICAgICAgICBxZGljdF9qb2luKGRp Y3QxLCBkaWN0Miwgb3ZlcndyaXRlKTsKCkBAIC01OTUsMTUgKzU5NSwxNSBAQCBzdGF0aWMgdm9p ZCBxZGljdF9jcnVtcGxlX3Rlc3RfcmVjdXJzaXZlKHZvaWQpCiAgICAgUUxpc3QgKnJ1bGVzOwoK ICAgICBzcmMgPSBxZGljdF9uZXcoKTsKLSAgICBxZGljdF9wdXQoc3JjLCAidm5jLmxpc3Rlbi5h ZGRyIiwgcXN0cmluZ19mcm9tX3N0cigiMTI3LjAuMC4xIikpOwotICAgIHFkaWN0X3B1dChzcmMs ICJ2bmMubGlzdGVuLnBvcnQiLCBxc3RyaW5nX2Zyb21fc3RyKCI1OTAxIikpOwotICAgIHFkaWN0 X3B1dChzcmMsICJ2bmMuYWNsLnJ1bGVzLjAubWF0Y2giLCBxc3RyaW5nX2Zyb21fc3RyKCJmcmVk IikpOwotICAgIHFkaWN0X3B1dChzcmMsICJ2bmMuYWNsLnJ1bGVzLjAucG9saWN5IiwgcXN0cmlu Z19mcm9tX3N0cigiYWxsb3ciKSk7Ci0gICAgcWRpY3RfcHV0KHNyYywgInZuYy5hY2wucnVsZXMu MS5tYXRjaCIsIHFzdHJpbmdfZnJvbV9zdHIoImJvYiIpKTsKLSAgICBxZGljdF9wdXQoc3JjLCAi dm5jLmFjbC5ydWxlcy4xLnBvbGljeSIsIHFzdHJpbmdfZnJvbV9zdHIoImRlbnkiKSk7Ci0gICAg cWRpY3RfcHV0KHNyYywgInZuYy5hY2wuZGVmYXVsdCIsIHFzdHJpbmdfZnJvbV9zdHIoImRlbnki KSk7Ci0gICAgcWRpY3RfcHV0KHNyYywgInZuYy5hY2wuLm5hbWUiLCBxc3RyaW5nX2Zyb21fc3Ry KCJhY2wwIikpOwotICAgIHFkaWN0X3B1dChzcmMsICJ2bmMuYWNsLnJ1bGUuLm5hbWUiLCBxc3Ry aW5nX2Zyb21fc3RyKCJhY2wwIikpOworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAidm5jLmxpc3Rl bi5hZGRyIiwgIjEyNy4wLjAuMSIpOworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAidm5jLmxpc3Rl bi5wb3J0IiwgIjU5MDEiKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInZuYy5hY2wucnVsZXMu MC5tYXRjaCIsICJmcmVkIik7CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJ2bmMuYWNsLnJ1bGVz LjAucG9saWN5IiwgImFsbG93Iik7CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJ2bmMuYWNsLnJ1 bGVzLjEubWF0Y2giLCAiYm9iIik7CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJ2bmMuYWNsLnJ1 bGVzLjEucG9saWN5IiwgImRlbnkiKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInZuYy5hY2wu ZGVmYXVsdCIsICJkZW55Iik7CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJ2bmMuYWNsLi5uYW1l IiwgImFjbDAiKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInZuYy5hY2wucnVsZS4ubmFtZSIs ICJhY2wwIik7CgogICAgIHJlcyA9IHFkaWN0X2NydW1wbGUoc3JjLCAmZXJyb3JfYWJvcnQpOwoK QEAgLTY3Niw4ICs2NzYsOCBAQCBzdGF0aWMgdm9pZCBxZGljdF9jcnVtcGxlX3Rlc3RfYmFkX2lu cHV0cyh2b2lkKQoKICAgICBzcmMgPSBxZGljdF9uZXcoKTsKICAgICAvKiBydWxlLjAgY2FuJ3Qg YmUgYm90aCBhIHN0cmluZyBhbmQgYSBkaWN0ICovCi0gICAgcWRpY3RfcHV0KHNyYywgInJ1bGUu MCIsIHFzdHJpbmdfZnJvbV9zdHIoImZyZWQiKSk7Ci0gICAgcWRpY3RfcHV0KHNyYywgInJ1bGUu MC5wb2xpY3kiLCBxc3RyaW5nX2Zyb21fc3RyKCJhbGxvdyIpKTsKKyAgICBxZGljdF9wdXRfc3Ry KHNyYywgInJ1bGUuMCIsICJmcmVkIik7CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJydWxlLjAu cG9saWN5IiwgImFsbG93Iik7CgogICAgIGdfYXNzZXJ0KHFkaWN0X2NydW1wbGUoc3JjLCAmZXJy b3IpID09IE5VTEwpOwogICAgIGdfYXNzZXJ0KGVycm9yICE9IE5VTEwpOwpAQCAtNjg3LDggKzY4 Nyw4IEBAIHN0YXRpYyB2b2lkIHFkaWN0X2NydW1wbGVfdGVzdF9iYWRfaW5wdXRzKHZvaWQpCgog ICAgIHNyYyA9IHFkaWN0X25ldygpOwogICAgIC8qIHJ1bGUgY2FuJ3QgYmUgYm90aCBhIGxpc3Qg YW5kIGEgZGljdCAqLwotICAgIHFkaWN0X3B1dChzcmMsICJydWxlLjAiLCBxc3RyaW5nX2Zyb21f c3RyKCJmcmVkIikpOwotICAgIHFkaWN0X3B1dChzcmMsICJydWxlLmEiLCBxc3RyaW5nX2Zyb21f c3RyKCJhbGxvdyIpKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInJ1bGUuMCIsICJmcmVkIik7 CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJydWxlLmEiLCAiYWxsb3ciKTsKCiAgICAgZ19hc3Nl cnQocWRpY3RfY3J1bXBsZShzcmMsICZlcnJvcikgPT0gTlVMTCk7CiAgICAgZ19hc3NlcnQoZXJy b3IgIT0gTlVMTCk7CkBAIC02OTksNyArNjk5LDcgQEAgc3RhdGljIHZvaWQgcWRpY3RfY3J1bXBs ZV90ZXN0X2JhZF9pbnB1dHModm9pZCkKICAgICBzcmMgPSBxZGljdF9uZXcoKTsKICAgICAvKiBU aGUgaW5wdXQgc2hvdWxkIGJlIGZsYXQsIGllIG5vIGRpY3RzIG9yIGxpc3RzICovCiAgICAgcWRp Y3RfcHV0KHNyYywgInJ1bGUuYSIsIHFkaWN0X25ldygpKTsKLSAgICBxZGljdF9wdXQoc3JjLCAi cnVsZS5iIiwgcXN0cmluZ19mcm9tX3N0cigiYWxsb3ciKSk7CisgICAgcWRpY3RfcHV0X3N0cihz cmMsICJydWxlLmIiLCAiYWxsb3ciKTsKCiAgICAgZ19hc3NlcnQocWRpY3RfY3J1bXBsZShzcmMs ICZlcnJvcikgPT0gTlVMTCk7CiAgICAgZ19hc3NlcnQoZXJyb3IgIT0gTlVMTCk7CkBAIC03MDks OCArNzA5LDggQEAgc3RhdGljIHZvaWQgcWRpY3RfY3J1bXBsZV90ZXN0X2JhZF9pbnB1dHModm9p ZCkKCiAgICAgc3JjID0gcWRpY3RfbmV3KCk7CiAgICAgLyogTGlzdCBpbmRleGVzIG11c3Qgbm90 IGhhdmUgZ2FwcyAqLwotICAgIHFkaWN0X3B1dChzcmMsICJydWxlLjAiLCBxc3RyaW5nX2Zyb21f c3RyKCJkZW55IikpOwotICAgIHFkaWN0X3B1dChzcmMsICJydWxlLjMiLCBxc3RyaW5nX2Zyb21f c3RyKCJhbGxvdyIpKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInJ1bGUuMCIsICJkZW55Iik7 CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJydWxlLjMiLCAiYWxsb3ciKTsKCiAgICAgZ19hc3Nl cnQocWRpY3RfY3J1bXBsZShzcmMsICZlcnJvcikgPT0gTlVMTCk7CiAgICAgZ19hc3NlcnQoZXJy b3IgIT0gTlVMTCk7CkBAIC03MjAsOCArNzIwLDggQEAgc3RhdGljIHZvaWQgcWRpY3RfY3J1bXBs ZV90ZXN0X2JhZF9pbnB1dHModm9pZCkKCiAgICAgc3JjID0gcWRpY3RfbmV3KCk7CiAgICAgLyog TGlzdCBpbmRleGVzIG11c3QgYmUgaW4gJXp1IGZvcm1hdCAqLwotICAgIHFkaWN0X3B1dChzcmMs ICJydWxlLjAiLCBxc3RyaW5nX2Zyb21fc3RyKCJkZW55IikpOwotICAgIHFkaWN0X3B1dChzcmMs ICJydWxlLisxIiwgcXN0cmluZ19mcm9tX3N0cigiYWxsb3ciKSk7CisgICAgcWRpY3RfcHV0X3N0 cihzcmMsICJydWxlLjAiLCAiZGVueSIpOworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAicnVsZS4r MSIsICJhbGxvdyIpOwoKICAgICBnX2Fzc2VydChxZGljdF9jcnVtcGxlKHNyYywgJmVycm9yKSA9 PSBOVUxMKTsKICAgICBnX2Fzc2VydChlcnJvciAhPSBOVUxMKTsKQEAgLTc0MCw4ICs3NDAsOCBA QCBzdGF0aWMgdm9pZCBxZGljdF9wdXRfZXhpc3RzX3Rlc3Qodm9pZCkKICAgICBjb25zdCBjaGFy ICprZXkgPSAiZXhpc3RzIjsKICAgICBRRGljdCAqdGVzdHNfZGljdCA9IHFkaWN0X25ldygpOwoK LSAgICBxZGljdF9wdXQodGVzdHNfZGljdCwga2V5LCBxaW50X2Zyb21faW50KDEpKTsKLSAgICBx ZGljdF9wdXQodGVzdHNfZGljdCwga2V5LCBxaW50X2Zyb21faW50KDIpKTsKKyAgICBxZGljdF9w dXRfaW50KHRlc3RzX2RpY3QsIGtleSwgMSk7CisgICAgcWRpY3RfcHV0X2ludCh0ZXN0c19kaWN0 LCBrZXksIDIpOwoKICAgICB2YWx1ZSA9IHFkaWN0X2dldF9pbnQodGVzdHNfZGljdCwga2V5KTsK ICAgICBnX2Fzc2VydCh2YWx1ZSA9PSAyKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3QtcW1wLWNv bW1hbmRzLmMgYi90ZXN0cy90ZXN0LXFtcC1jb21tYW5kcy5jCmluZGV4IGZmOTQ0ODEuLjY2MGE5 ZTggMTAwNjQ0Ci0tLSBhL3Rlc3RzL3Rlc3QtcW1wLWNvbW1hbmRzLmMKKysrIGIvdGVzdHMvdGVz dC1xbXAtY29tbWFuZHMuYwpAQCAtOTIsNyArOTIsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2Rpc3Bh dGNoX2NtZCh2b2lkKQogICAgIFFEaWN0ICpyZXEgPSBxZGljdF9uZXcoKTsKICAgICBRT2JqZWN0 ICpyZXNwOwoKLSAgICBxZGljdF9wdXRfb2JqKHJlcSwgImV4ZWN1dGUiLCBRT0JKRUNUKHFzdHJp bmdfZnJvbV9zdHIoInVzZXJfZGVmX2NtZCIpKSk7CisgICAgcWRpY3RfcHV0X3N0cihyZXEsICJl eGVjdXRlIiwgInVzZXJfZGVmX2NtZCIpOwoKICAgICByZXNwID0gcW1wX2Rpc3BhdGNoKFFPQkpF Q1QocmVxKSk7CiAgICAgYXNzZXJ0KHJlc3AgIT0gTlVMTCk7CkBAIC0xMDksNyArMTA5LDcgQEAg c3RhdGljIHZvaWQgdGVzdF9kaXNwYXRjaF9jbWRfZmFpbHVyZSh2b2lkKQogICAgIFFEaWN0ICph cmdzID0gcWRpY3RfbmV3KCk7CiAgICAgUU9iamVjdCAqcmVzcDsKCi0gICAgcWRpY3RfcHV0X29i aihyZXEsICJleGVjdXRlIiwgUU9CSkVDVChxc3RyaW5nX2Zyb21fc3RyKCJ1c2VyX2RlZl9jbWQy IikpKTsKKyAgICBxZGljdF9wdXRfc3RyKHJlcSwgImV4ZWN1dGUiLCAidXNlcl9kZWZfY21kMiIp OwoKICAgICByZXNwID0gcW1wX2Rpc3BhdGNoKFFPQkpFQ1QocmVxKSk7CiAgICAgYXNzZXJ0KHJl c3AgIT0gTlVMTCk7CkBAIC0xMjAsMTAgKzEyMCwxMCBAQCBzdGF0aWMgdm9pZCB0ZXN0X2Rpc3Bh dGNoX2NtZF9mYWlsdXJlKHZvaWQpCgogICAgIC8qIGNoZWNrIHRoYXQgd2l0aCBleHRyYSBhcmd1 bWVudHMgaXQgdGhyb3dzIGFuIGVycm9yICovCiAgICAgcmVxID0gcWRpY3RfbmV3KCk7Ci0gICAg cWRpY3RfcHV0KGFyZ3MsICJhIiwgcWludF9mcm9tX2ludCg2NikpOworICAgIHFkaWN0X3B1dF9p bnQoYXJncywgImEiLCA2Nik7CiAgICAgcWRpY3RfcHV0KHJlcSwgImFyZ3VtZW50cyIsIGFyZ3Mp OwoKLSAgICBxZGljdF9wdXRfb2JqKHJlcSwgImV4ZWN1dGUiLCBRT0JKRUNUKHFzdHJpbmdfZnJv bV9zdHIoInVzZXJfZGVmX2NtZCIpKSk7CisgICAgcWRpY3RfcHV0X3N0cihyZXEsICJleGVjdXRl IiwgInVzZXJfZGVmX2NtZCIpOwoKICAgICByZXNwID0gcW1wX2Rpc3BhdGNoKFFPQkpFQ1QocmVx KSk7CiAgICAgYXNzZXJ0KHJlc3AgIT0gTlVMTCk7CkBAIC0xNjIsMTQgKzE2MiwxNCBAQCBzdGF0 aWMgdm9pZCB0ZXN0X2Rpc3BhdGNoX2NtZF9pbyh2b2lkKQogICAgIFFEaWN0ICpyZXRfZGljdF9k aWN0MiwgKnJldF9kaWN0X2RpY3QyX3VzZXJkZWY7CiAgICAgUUludCAqcmV0MzsKCi0gICAgcWRp Y3RfcHV0X29iaih1ZDFhLCAiaW50ZWdlciIsIFFPQkpFQ1QocWludF9mcm9tX2ludCg0MikpKTsK LSAgICBxZGljdF9wdXRfb2JqKHVkMWEsICJzdHJpbmciLCBRT0JKRUNUKHFzdHJpbmdfZnJvbV9z dHIoImhlbGxvIikpKTsKLSAgICBxZGljdF9wdXRfb2JqKHVkMWIsICJpbnRlZ2VyIiwgUU9CSkVD VChxaW50X2Zyb21faW50KDQyMikpKTsKLSAgICBxZGljdF9wdXRfb2JqKHVkMWIsICJzdHJpbmci LCBRT0JKRUNUKHFzdHJpbmdfZnJvbV9zdHIoImhlbGxvMiIpKSk7Ci0gICAgcWRpY3RfcHV0X29i aihhcmdzLCAidWQxYSIsIFFPQkpFQ1QodWQxYSkpOwotICAgIHFkaWN0X3B1dF9vYmooYXJncywg InVkMWIiLCBRT0JKRUNUKHVkMWIpKTsKLSAgICBxZGljdF9wdXRfb2JqKHJlcSwgImFyZ3VtZW50 cyIsIFFPQkpFQ1QoYXJncykpOwotICAgIHFkaWN0X3B1dF9vYmoocmVxLCAiZXhlY3V0ZSIsIFFP QkpFQ1QocXN0cmluZ19mcm9tX3N0cigidXNlcl9kZWZfY21kMiIpKSk7CisgICAgcWRpY3RfcHV0 X2ludCh1ZDFhLCAiaW50ZWdlciIsIDQyKTsKKyAgICBxZGljdF9wdXRfc3RyKHVkMWEsICJzdHJp bmciLCAiaGVsbG8iKTsKKyAgICBxZGljdF9wdXRfaW50KHVkMWIsICJpbnRlZ2VyIiwgNDIyKTsK KyAgICBxZGljdF9wdXRfc3RyKHVkMWIsICJzdHJpbmciLCAiaGVsbG8yIik7CisgICAgcWRpY3Rf cHV0KGFyZ3MsICJ1ZDFhIiwgdWQxYSk7CisgICAgcWRpY3RfcHV0KGFyZ3MsICJ1ZDFiIiwgdWQx Yik7CisgICAgcWRpY3RfcHV0KHJlcSwgImFyZ3VtZW50cyIsIGFyZ3MpOworICAgIHFkaWN0X3B1 dF9zdHIocmVxLCAiZXhlY3V0ZSIsICJ1c2VyX2RlZl9jbWQyIik7CgogICAgIHJldCA9IHFvYmpl Y3RfdG9fcWRpY3QodGVzdF9xbXBfZGlzcGF0Y2gocmVxKSk7CgpAQCAtMTg4LDkgKzE4OCw5IEBA IHN0YXRpYyB2b2lkIHRlc3RfZGlzcGF0Y2hfY21kX2lvKHZvaWQpCiAgICAgYXNzZXJ0KCFzdHJj bXAocWRpY3RfZ2V0X3N0cihyZXRfZGljdF9kaWN0MiwgInN0cmluZyIpLCAiYmxhaDQiKSk7CiAg ICAgUURFQ1JFRihyZXQpOwoKLSAgICBxZGljdF9wdXQoYXJnczMsICJhIiwgcWludF9mcm9tX2lu dCg2NikpOworICAgIHFkaWN0X3B1dF9pbnQoYXJnczMsICJhIiwgNjYpOwogICAgIHFkaWN0X3B1 dChyZXEsICJhcmd1bWVudHMiLCBhcmdzMyk7Ci0gICAgcWRpY3RfcHV0KHJlcSwgImV4ZWN1dGUi LCBxc3RyaW5nX2Zyb21fc3RyKCJndWVzdC1nZXQtdGltZSIpKTsKKyAgICBxZGljdF9wdXRfc3Ry KHJlcSwgImV4ZWN1dGUiLCAiZ3Vlc3QtZ2V0LXRpbWUiKTsKCiAgICAgcmV0MyA9IHFvYmplY3Rf dG9fcWludCh0ZXN0X3FtcF9kaXNwYXRjaChyZXEpKTsKICAgICBhc3NlcnQocWludF9nZXRfaW50 KHJldDMpID09IDY2KTsKQEAgLTI0Miw3ICsyNDIsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2RlYWxs b2NfcGFydGlhbCh2b2lkKQogICAgICAgICBWaXNpdG9yICp2OwoKICAgICAgICAgdWQyX2RpY3Qg PSBxZGljdF9uZXcoKTsKLSAgICAgICAgcWRpY3RfcHV0X29iaih1ZDJfZGljdCwgInN0cmluZzAi LCBRT0JKRUNUKHFzdHJpbmdfZnJvbV9zdHIodGV4dCkpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0 cih1ZDJfZGljdCwgInN0cmluZzAiLCB0ZXh0KTsKCiAgICAgICAgIHYgPSBxb2JqZWN0X2lucHV0 X3Zpc2l0b3JfbmV3KFFPQkpFQ1QodWQyX2RpY3QpLCB0cnVlKTsKICAgICAgICAgdmlzaXRfdHlw ZV9Vc2VyRGVmVHdvKHYsIE5VTEwsICZ1ZDIsICZlcnIpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVz dC1xbXAtZXZlbnQuYyBiL3Rlc3RzL3Rlc3QtcW1wLWV2ZW50LmMKaW5kZXggNjMzZGM4Ny4uY2Y1 ODEwNCAxMDA2NDQKLS0tIGEvdGVzdHMvdGVzdC1xbXAtZXZlbnQuYworKysgYi90ZXN0cy90ZXN0 LXFtcC1ldmVudC5jCkBAIC0xNTksNyArMTU5LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9ldmVudF9h KFRlc3RFdmVudERhdGEgKmRhdGEsCiB7CiAgICAgUURpY3QgKmQ7CiAgICAgZCA9IGRhdGEtPmV4 cGVjdDsKLSAgICBxZGljdF9wdXQoZCwgImV2ZW50IiwgcXN0cmluZ19mcm9tX3N0cigiRVZFTlRf QSIpKTsKKyAgICBxZGljdF9wdXRfc3RyKGQsICJldmVudCIsICJFVkVOVF9BIik7CiAgICAgcWFw aV9ldmVudF9zZW5kX2V2ZW50X2EoJmVycm9yX2Fib3J0KTsKIH0KCkBAIC0xNjgsNyArMTY4LDcg QEAgc3RhdGljIHZvaWQgdGVzdF9ldmVudF9iKFRlc3RFdmVudERhdGEgKmRhdGEsCiB7CiAgICAg UURpY3QgKmQ7CiAgICAgZCA9IGRhdGEtPmV4cGVjdDsKLSAgICBxZGljdF9wdXQoZCwgImV2ZW50 IiwgcXN0cmluZ19mcm9tX3N0cigiRVZFTlRfQiIpKTsKKyAgICBxZGljdF9wdXRfc3RyKGQsICJl dmVudCIsICJFVkVOVF9CIik7CiAgICAgcWFwaV9ldmVudF9zZW5kX2V2ZW50X2IoJmVycm9yX2Fi b3J0KTsKIH0KCkBAIC0xODMsMTYgKzE4MywxNiBAQCBzdGF0aWMgdm9pZCB0ZXN0X2V2ZW50X2Mo VGVzdEV2ZW50RGF0YSAqZGF0YSwKICAgICBiLmhhc19lbnVtMSA9IGZhbHNlOwoKICAgICBkX2Ig PSBxZGljdF9uZXcoKTsKLSAgICBxZGljdF9wdXQoZF9iLCAiaW50ZWdlciIsIHFpbnRfZnJvbV9p bnQoMikpOwotICAgIHFkaWN0X3B1dChkX2IsICJzdHJpbmciLCBxc3RyaW5nX2Zyb21fc3RyKCJ0 ZXN0MSIpKTsKKyAgICBxZGljdF9wdXRfaW50KGRfYiwgImludGVnZXIiLCAyKTsKKyAgICBxZGlj dF9wdXRfc3RyKGRfYiwgInN0cmluZyIsICJ0ZXN0MSIpOwoKICAgICBkX2RhdGEgPSBxZGljdF9u ZXcoKTsKLSAgICBxZGljdF9wdXQoZF9kYXRhLCAiYSIsIHFpbnRfZnJvbV9pbnQoMSkpOworICAg IHFkaWN0X3B1dF9pbnQoZF9kYXRhLCAiYSIsIDEpOwogICAgIHFkaWN0X3B1dChkX2RhdGEsICJi IiwgZF9iKTsKLSAgICBxZGljdF9wdXQoZF9kYXRhLCAiYyIsIHFzdHJpbmdfZnJvbV9zdHIoInRl c3QyIikpOworICAgIHFkaWN0X3B1dF9zdHIoZF9kYXRhLCAiYyIsICJ0ZXN0MiIpOwoKICAgICBk ID0gZGF0YS0+ZXhwZWN0OwotICAgIHFkaWN0X3B1dChkLCAiZXZlbnQiLCBxc3RyaW5nX2Zyb21f c3RyKCJFVkVOVF9DIikpOworICAgIHFkaWN0X3B1dF9zdHIoZCwgImV2ZW50IiwgIkVWRU5UX0Mi KTsKICAgICBxZGljdF9wdXQoZCwgImRhdGEiLCBkX2RhdGEpOwoKICAgICBxYXBpX2V2ZW50X3Nl bmRfZXZlbnRfYyh0cnVlLCAxLCB0cnVlLCAmYiwgInRlc3QyIiwgJmVycm9yX2Fib3J0KTsKQEAg LTIxOSwyMiArMjE5LDIyIEBAIHN0YXRpYyB2b2lkIHRlc3RfZXZlbnRfZChUZXN0RXZlbnREYXRh ICpkYXRhLAogICAgIGEuZW51bTIgPSBFTlVNX09ORV9WQUxVRTI7CgogICAgIGRfc3RydWN0MSA9 IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1dChkX3N0cnVjdDEsICJpbnRlZ2VyIiwgcWludF9m cm9tX2ludCgyKSk7Ci0gICAgcWRpY3RfcHV0KGRfc3RydWN0MSwgInN0cmluZyIsIHFzdHJpbmdf ZnJvbV9zdHIoInRlc3QxIikpOwotICAgIHFkaWN0X3B1dChkX3N0cnVjdDEsICJlbnVtMSIsIHFz dHJpbmdfZnJvbV9zdHIoInZhbHVlMSIpKTsKKyAgICBxZGljdF9wdXRfaW50KGRfc3RydWN0MSwg ImludGVnZXIiLCAyKTsKKyAgICBxZGljdF9wdXRfc3RyKGRfc3RydWN0MSwgInN0cmluZyIsICJ0 ZXN0MSIpOworICAgIHFkaWN0X3B1dF9zdHIoZF9zdHJ1Y3QxLCAiZW51bTEiLCAidmFsdWUxIik7 CgogICAgIGRfYSA9IHFkaWN0X25ldygpOwogICAgIHFkaWN0X3B1dChkX2EsICJzdHJ1Y3QxIiwg ZF9zdHJ1Y3QxKTsKLSAgICBxZGljdF9wdXQoZF9hLCAic3RyaW5nIiwgcXN0cmluZ19mcm9tX3N0 cigidGVzdDIiKSk7Ci0gICAgcWRpY3RfcHV0KGRfYSwgImVudW0yIiwgcXN0cmluZ19mcm9tX3N0 cigidmFsdWUyIikpOworICAgIHFkaWN0X3B1dF9zdHIoZF9hLCAic3RyaW5nIiwgInRlc3QyIik7 CisgICAgcWRpY3RfcHV0X3N0cihkX2EsICJlbnVtMiIsICJ2YWx1ZTIiKTsKCiAgICAgZF9kYXRh ID0gcWRpY3RfbmV3KCk7CiAgICAgcWRpY3RfcHV0KGRfZGF0YSwgImEiLCBkX2EpOwotICAgIHFk aWN0X3B1dChkX2RhdGEsICJiIiwgcXN0cmluZ19mcm9tX3N0cigidGVzdDMiKSk7Ci0gICAgcWRp Y3RfcHV0KGRfZGF0YSwgImVudW0zIiwgcXN0cmluZ19mcm9tX3N0cigidmFsdWUzIikpOworICAg IHFkaWN0X3B1dF9zdHIoZF9kYXRhLCAiYiIsICJ0ZXN0MyIpOworICAgIHFkaWN0X3B1dF9zdHIo ZF9kYXRhLCAiZW51bTMiLCAidmFsdWUzIik7CgogICAgIGQgPSBkYXRhLT5leHBlY3Q7Ci0gICAg cWRpY3RfcHV0KGQsICJldmVudCIsIHFzdHJpbmdfZnJvbV9zdHIoIkVWRU5UX0QiKSk7CisgICAg cWRpY3RfcHV0X3N0cihkLCAiZXZlbnQiLCAiRVZFTlRfRCIpOwogICAgIHFkaWN0X3B1dChkLCAi ZGF0YSIsIGRfZGF0YSk7CgogICAgIHFhcGlfZXZlbnRfc2VuZF9ldmVudF9kKCZhLCAidGVzdDMi LCBmYWxzZSwgTlVMTCwgdHJ1ZSwgRU5VTV9PTkVfVkFMVUUzLApkaWZmIC0tZ2l0IGEvdGVzdHMv dGVzdC1xb2JqZWN0LW91dHB1dC12aXNpdG9yLmMgYi90ZXN0cy90ZXN0LXFvYmplY3Qtb3V0cHV0 LXZpc2l0b3IuYwppbmRleCA0ZTJkNzljLi4yMmQxNDhhIDEwMDY0NAotLS0gYS90ZXN0cy90ZXN0 LXFvYmplY3Qtb3V0cHV0LXZpc2l0b3IuYworKysgYi90ZXN0cy90ZXN0LXFvYmplY3Qtb3V0cHV0 LXZpc2l0b3IuYwpAQCAtMzU2LDkgKzM1Niw5IEBAIHN0YXRpYyB2b2lkIHRlc3RfdmlzaXRvcl9v dXRfYW55KFRlc3RPdXRwdXRWaXNpdG9yRGF0YSAqZGF0YSwKCiAgICAgdmlzaXRvcl9yZXNldChk YXRhKTsKICAgICBxZGljdCA9IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1dChxZGljdCwgImlu dGVnZXIiLCBxaW50X2Zyb21faW50KC00MikpOwotICAgIHFkaWN0X3B1dChxZGljdCwgImJvb2xl YW4iLCBxYm9vbF9mcm9tX2Jvb2wodHJ1ZSkpOwotICAgIHFkaWN0X3B1dChxZGljdCwgInN0cmlu ZyIsIHFzdHJpbmdfZnJvbV9zdHIoImZvbyIpKTsKKyAgICBxZGljdF9wdXRfaW50KHFkaWN0LCAi aW50ZWdlciIsIC00Mik7CisgICAgcWRpY3RfcHV0X2Jvb2wocWRpY3QsICJib29sZWFuIiwgdHJ1 ZSk7CisgICAgcWRpY3RfcHV0X3N0cihxZGljdCwgInN0cmluZyIsICJmb28iKTsKICAgICBxb2Jq ID0gUU9CSkVDVChxZGljdCk7CiAgICAgdmlzaXRfdHlwZV9hbnkoZGF0YS0+b3YsIE5VTEwsICZx b2JqLCAmZXJyb3JfYWJvcnQpOwogICAgIHFvYmplY3RfZGVjcmVmKHFvYmopOwpkaWZmIC0tZ2l0 IGEvdXRpbC9xZW11LW9wdGlvbi5jIGIvdXRpbC9xZW11LW9wdGlvbi5jCmluZGV4IDM0NjdkYzIu LmIwNjFmYjAgMTAwNjQ0Ci0tLSBhL3V0aWwvcWVtdS1vcHRpb24uYworKysgYi91dGlsL3FlbXUt b3B0aW9uLmMKQEAgLTEwNTYsMTcgKzEwNTYsMTUgQEAgdm9pZCBxZW11X29wdHNfYWJzb3JiX3Fk aWN0KFFlbXVPcHRzICpvcHRzLCBRRGljdCAqcWRpY3QsIEVycm9yICoqZXJycCkKIFFEaWN0ICpx ZW11X29wdHNfdG9fcWRpY3QoUWVtdU9wdHMgKm9wdHMsIFFEaWN0ICpxZGljdCkKIHsKICAgICBR ZW11T3B0ICpvcHQ7Ci0gICAgUU9iamVjdCAqdmFsOwoKICAgICBpZiAoIXFkaWN0KSB7CiAgICAg ICAgIHFkaWN0ID0gcWRpY3RfbmV3KCk7CiAgICAgfQogICAgIGlmIChvcHRzLT5pZCkgewotICAg ICAgICBxZGljdF9wdXQocWRpY3QsICJpZCIsIHFzdHJpbmdfZnJvbV9zdHIob3B0cy0+aWQpKTsK KyAgICAgICAgcWRpY3RfcHV0X3N0cihxZGljdCwgImlkIiwgb3B0cy0+aWQpOwogICAgIH0KICAg ICBRVEFJTFFfRk9SRUFDSChvcHQsICZvcHRzLT5oZWFkLCBuZXh0KSB7Ci0gICAgICAgIHZhbCA9 IFFPQkpFQ1QocXN0cmluZ19mcm9tX3N0cihvcHQtPnN0cikpOwotICAgICAgICBxZGljdF9wdXRf b2JqKHFkaWN0LCBvcHQtPm5hbWUsIHZhbCk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIocWRpY3Qs IG9wdC0+bmFtZSwgb3B0LT5zdHIpOwogICAgIH0KICAgICByZXR1cm4gcWRpY3Q7CiB9Ci0tIAoy LjkuMwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=