From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8AA85C2D0A8 for ; Wed, 23 Sep 2020 10:59:46 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 08EB2235FC for ; Wed, 23 Sep 2020 10:59:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="XVTeBPdI" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 08EB2235FC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:56998 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kL2Uy-0006di-1u for qemu-devel@archiver.kernel.org; Wed, 23 Sep 2020 06:59:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53472) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kL2Si-0005Wr-L3 for qemu-devel@nongnu.org; Wed, 23 Sep 2020 06:57:24 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:21395) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kL2Sa-0000O0-BS for qemu-devel@nongnu.org; Wed, 23 Sep 2020 06:57:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600858634; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=Aoo1aaxNq8JJhsaH1Vu8WVn/nDYeaPVnxNnYOoP2p4w=; b=XVTeBPdIzkJYNKN/dvrTANp/3fXZ5yElkwYEc5AtQ1yh5GuQ7h53hdhIHJwywOUoSiWDRb ds3Jkxa6+56jDFE1W/hYKO6VfhEcJzFfTv5q8UtIQQ7faMeJjicljX40hxEMcRP5IPpHPi GJU6Ym5YiEdPLhj/u3HzYWUAZ8JiV78= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-590-i3-iDvvGOAusklqrca4VLg-1; Wed, 23 Sep 2020 06:57:09 -0400 X-MC-Unique: i3-iDvvGOAusklqrca4VLg-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id CF5C981CAFC; Wed, 23 Sep 2020 10:57:04 +0000 (UTC) Received: from localhost (ovpn-114-98.ams2.redhat.com [10.36.114.98]) by smtp.corp.redhat.com (Postfix) with ESMTP id D00FA5D9CC; Wed, 23 Sep 2020 10:56:47 +0000 (UTC) From: Stefan Hajnoczi To: qemu-devel@nongnu.org Subject: [PATCH v3] qemu/atomic.h: rename atomic_ to qatomic_ Date: Wed, 23 Sep 2020 11:56:46 +0100 Message-Id: <20200923105646.47864-1-stefanha@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Received-SPF: pass client-ip=63.128.21.124; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/23 00:53:58 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.455, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MIME_BASE64_TEXT=1.741, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , Peter Maydell , sheepdog@lists.wpkg.org, Matthew Rosato , Paul Durrant , Jason Wang , David Hildenbrand , Yuval Shaia , Markus Armbruster , Max Filippov , Alistair Francis , Gerd Hoffmann , Huacai Chen , Stefano Stabellini , Alberto Garcia , kvm@vger.kernel.org, Yoshinori Sato , Juan Quintela , Jiri Slaby , "Michael S. Tsirkin" , Michael Roth , Halil Pasic , Christian Borntraeger , Aleksandar Markovic , Anthony Perard , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Liu Yuan , Richard Henderson , Thomas Huth , Eduardo Habkost , Stefan Weil , Peter Lieven , "Dr. David Alan Gilbert" , qemu-s390x@nongnu.org, qemu-arm@nongnu.org, Stefan Hajnoczi , xen-devel@lists.xenproject.org, qemu-riscv@nongnu.org, Sunil Muthuswamy , John Snow , Hailiang Zhang , Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Bastian Koppelmann , Cornelia Huck , Laurent Vivier , Max Reitz , Sagar Karandikar , Palmer Dabbelt , Paolo Bonzini , Aleksandar Rikalo , Aurelien Jarno Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Y2xhbmcncyBDMTEgYXRvbWljX2ZldGNoXyooKSBmdW5jdGlvbnMgb25seSB0YWtlIGEgQzExIGF0 b21pYyB0eXBlCnBvaW50ZXIgYXJndW1lbnQuIFFFTVUgdXNlcyBkaXJlY3QgdHlwZXMgKGludCwg ZXRjKSBhbmQgdGhpcyBjYXVzZXMgYQpjb21waWxlciBlcnJvciB3aGVuIGEgUUVNVSBjb2RlIGNh bGxzIHRoZXNlIGZ1bmN0aW9ucyBpbiBhIHNvdXJjZSBmaWxlCnRoYXQgYWxzbyBpbmNsdWRlZCA8 c3RkYXRvbWljLmg+IHZpYSBhIHN5c3RlbSBoZWFkZXIgZmlsZToKCiAgJCBDQz1jbGFuZyBDWFg9 Y2xhbmcrKyAuL2NvbmZpZ3VyZSAuLi4gJiYgbWFrZQogIC4uL3V0aWwvYXN5bmMuYzo3OToxNzog ZXJyb3I6IGFkZHJlc3MgYXJndW1lbnQgdG8gYXRvbWljIG9wZXJhdGlvbiBtdXN0IGJlIGEgcG9p bnRlciB0byBfQXRvbWljIHR5cGUgKCd1bnNpZ25lZCBpbnQgKicgaW52YWxpZCkKCkF2b2lkIHVz aW5nIGF0b21pY18qKCkgbmFtZXMgaW4gUUVNVSdzIGF0b21pYy5oIHNpbmNlIHRoYXQgbmFtZXNw YWNlIGlzCnVzZWQgYnkgPHN0ZGF0b21pYy5oPi4gUHJlZml4IFFFTVUncyBBUElzIHdpdGggJ3En IHNvIHRoYXQgYXRvbWljLmgKYW5kIDxzdGRhdG9taWMuaD4gY2FuIGNvLWV4aXN0LiBJIGNoZWNr ZWQgL3Vzci9pbmNsdWRlIG9uIG15IG1hY2hpbmUgYW5kCnNlYXJjaGVkIEdpdEh1YiBmb3IgZXhp c3RpbmcgInFhdG9taWNfIiB1c2VycyBidXQgdGhlcmUgc2VlbSB0byBiZSBub25lLgoKVGhpcyBw YXRjaCB3YXMgZ2VuZXJhdGVkIHVzaW5nOgoKICAkIGdpdCBncmVwIC1oIC1vICdcPGF0b21pY1wo NjRcKVw/X1thLXowLTlfXVwrJyBpbmNsdWRlL3FlbXUvYXRvbWljLmggfCBcCiAgICBzb3J0IC11 ID4vdG1wL2NoYW5nZWRfaWRlbnRpZmllcnMKICAkIGZvciBpZGVudGlmaWVyIGluICQoPC90bXAv Y2hhbmdlZF9pZGVudGlmaWVycyk7IGRvCiAgICAgICAgc2VkIC1pICJzJVw8JGlkZW50aWZpZXJc PiVxJGlkZW50aWZpZXIlZyIgXAogICAgICAgICAgICAkKGdpdCBncmVwIC1JIC1sICJcPCRpZGVu dGlmaWVyXD4iKQogICAgZG9uZQoKSSBtYW51YWxseSBmaXhlZCBsaW5lLXdyYXAgaXNzdWVzIGFu ZCBtaXNhbGlnbmVkIHJTVCB0YWJsZXMuCgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gSGFqbm9jemkg PHN0ZWZhbmhhQHJlZGhhdC5jb20+Ci0tLQp2MzoKICogVXNlIHFhdG9taWNfIGluc3RlYWQgb2Yg YXRvbWljXyBbUGFvbG9dCiAqIFRoZSBkaWZmIG9mIG15IG1hbnVhbCBmaXh1cHMgaXMgYXZhaWxh YmxlIGhlcmU6CiAgIGh0dHBzOi8vdm1zcGxpY2UubmV0L35zdGVmYW4vYXRvbWljLW5hbWVzcGFj ZS1wcmUtZml4dXBzLXYzLmRpZmYKICAgLSBEcm9wcGluZyAjaWZuZGVmIHFhdG9taWNfZmV0Y2hf YWRkIGluIGF0b21pYy5oCiAgIC0gYXRvbWljXyMjWChoYWRkciwgdmFsKSBnbHVlIG1hY3JvcyBu b3QgY2F1Z2h0IGJ5IGdyZXAKICAgLSBLZWVwIGF0b21pY19hZGQtYmVuY2ggbmFtZQogICAtIEMg cHJlcHJvY2Vzc29yIGJhY2tzbGFzaC1uZXdsaW5lICgnXCcpIGNvbHVtbiBhbGlnbm1lbnQKICAg LSBMaW5lIHdyYXBwaW5nCnYyOgogKiBUaGUgZGlmZiBvZiBteSBtYW51YWwgZml4dXBzIGlzIGF2 YWlsYWJsZSBoZXJlOgogICBodHRwczovL3Ztc3BsaWNlLm5ldC9+c3RlZmFuL2F0b21pYy1uYW1l c3BhY2UtcHJlLWZpeHVwcy5kaWZmCiAgIC0gRHJvcHBpbmcgI2lmbmRlZiBxZW11X2F0b21pY19m ZXRjaF9hZGQgaW4gYXRvbWljLmgKICAgLSBhdG9taWNfIyNYKGhhZGRyLCB2YWwpIGdsdWUgbWFj cm9zIG5vdCBjYXVnaHQgYnkgZ3JlcAogICAtIEtlZXAgYXRvbWljX2FkZC1iZW5jaCBuYW1lCiAg IC0gQyBwcmVwcm9jZXNzb3IgYmFja3NsYXNoLW5ld2xpbmUgKCdcJykgY29sdW1uIGFsaWdubWVu dAogICAtIExpbmUgd3JhcHBpbmcKICogVXNlIGdyZXAgLUkgdG8gYXZvaWQgYWNjaWRlbnRhbGx5 IG1vZGlmeWluZyBiaW5hcnkgZmlsZXMgKFJJU0MtVgogICBPcGVuU0JJIEVMRnMpIFtFcmljIEJs YWtlXQogKiBUd2VhayAuZ2l0b3JkZXIgdG8gc2hvdyBhdG9taWMuaCBjaGFuZ2VzIGZpcnN0IFtF cmljIEJsYWtlXQogKiBVcGRhdGUgZ3JlcCBjb21tYW5kcyBpbiBjb21taXQgZGVzY3JpcHRpb24g c28gcmV2aWV3ZXJzIGNhbiByZXByb2R1Y2UKICAgbWVjaGFuaWNhbCBjaGFuZ2VzIFtFcmljIEJs YWtlXQotLS0KIGluY2x1ZGUvcWVtdS9hdG9taWMuaCAgICAgICAgICAgICAgICAgICAgICAgICB8 IDI0OCArKysrKysrKystLS0tLS0tLS0KIGRvY3MvZGV2ZWwvbG9ja2NudC50eHQgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgOCArLQogZG9jcy9kZXZlbC9yY3UudHh0ICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDM0ICstLQogYWNjZWwvdGNnL2F0b21pY190ZW1wbGF0ZS5oICAgICAg ICAgICAgICAgICAgIHwgIDIwICstCiBpbmNsdWRlL2Jsb2NrL2Fpby13YWl0LmggICAgICAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KIGluY2x1ZGUvYmxvY2svYWlvLmggICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgOCArLQogaW5jbHVkZS9leGVjL2NwdV9sZHN0LmggICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiBpbmNsdWRlL2V4ZWMvZXhlYy1hbGwuaCAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDYgKy0KIGluY2x1ZGUvZXhlYy9sb2cuaCAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgNiArLQogaW5jbHVkZS9leGVjL21lbW9yeS5oICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAyICstCiBpbmNsdWRlL2V4ZWMvcmFtX2FkZHIuaCAgICAgICAgICAgICAgICAg ICAgICAgfCAgMjYgKy0KIGluY2x1ZGUvZXhlYy9yYW1saXN0LmggICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogaW5jbHVkZS9leGVjL3RiLWxvb2t1cC5oICAgICAgICAgICAgICAgICAg ICAgIHwgICA0ICstCiBpbmNsdWRlL2h3L2NvcmUvY3B1LmggICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIGluY2x1ZGUvcWVtdS9hdG9taWMxMjguaCAgICAgICAgICAgICAgICAgICAg ICB8ICAgNiArLQogaW5jbHVkZS9xZW11L2JpdG9wcy5oICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAyICstCiBpbmNsdWRlL3FlbXUvY29yb3V0aW5lLmggICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIGluY2x1ZGUvcWVtdS9sb2cuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgNiArLQogaW5jbHVkZS9xZW11L3F1ZXVlLmggICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA3ICstCiBpbmNsdWRlL3FlbXUvcmN1LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MTAgKy0KIGluY2x1ZGUvcWVtdS9yY3VfcXVldWUuaCAgICAgICAgICAgICAgICAgICAgICB8IDEw MCArKystLS0tCiBpbmNsdWRlL3FlbXUvc2VxbG9jay5oICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDggKy0KIGluY2x1ZGUvcWVtdS9zdGF0czY0LmggICAgICAgICAgICAgICAgICAgICAgICB8 ICAyOCArLQogaW5jbHVkZS9xZW11L3RocmVhZC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDI0ICstCiAuLi4vaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9yaW5nLmggICAgfCAg MTQgKy0KIGxpbnV4LXVzZXIvcWVtdS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogdGNnL2kzODYvdGNnLXRhcmdldC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiB0Y2cvczM5MC90Y2ctdGFyZ2V0LmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIHRjZy90Y2kvdGNnLXRhcmdldC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogYWNjZWwva3ZtL2t2bS1hbGwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICst CiBhY2NlbC90Y2cvY3B1LWV4ZWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTUgKy0K IGFjY2VsL3RjZy9jcHV0bGIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNCArLQog YWNjZWwvdGNnL3RjZy1hbGwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBh Y2NlbC90Y2cvdHJhbnNsYXRlLWFsbC5jICAgICAgICAgICAgICAgICAgICAgfCAgNTUgKystLQog YXVkaW8vamFja2F1ZGlvLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiBi bG9jay5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGJs b2NrL2Jsb2NrLWJhY2tlbmQuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNSArLQogYmxv Y2svaW8uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ4ICsrLS0KIGJs b2NrL25mcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogYmxv Y2svc2hlZXBkb2cuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBibG9j ay90aHJvdHRsZS1ncm91cHMuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIGJsb2Nr L3Rocm90dGxlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogYmxvY2tk ZXYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBibG9ja2pv Yi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGNvbnRyaWIv bGlidmhvc3QtdXNlci9saWJ2aG9zdC11c2VyLmMgICAgICAgICB8ICAgMiArLQogY3B1cy1jb21t b24uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI2ICstCiBkdW1wL2R1bXAu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIGV4ZWMuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0OSArKy0tCiBody9jb3JlL2Nw dS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGh3L2Rpc3BsYXkv cXhsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogaHcvaHlwZXJ2L2h5 cGVydi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICstCiBody9oeXBlcnYvdm1i dXMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGh3L2kzODYveGVuL3hl bi1odm0uYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogaHcvaW50Yy9yeF9pY3Uu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBody9pbnRjL3NpZml2ZV9w bGljLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGh3L21pc2MvZWR1LmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNiArLQogaHcvbmV0L3ZpcnRpby1uZXQu YyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICstCiBody9yZG1hL3JkbWFfYmFja2Vu ZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTggKy0KIGh3L3JkbWEvcmRtYV9ybS5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogaHcvcmRtYS92bXcvcHZyZG1hX2Rl dl9yaW5nLmMgICAgICAgICAgICAgICAgIHwgICA0ICstCiBody9zMzkweC9zMzkwLXBjaS1idXMu YyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGh3L3MzOTB4L3ZpcnRpby1jY3cuYyAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogaHcvdmlydGlvL3Zob3N0LmMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBody92aXJ0aW8vdmlydGlvLW1taW8uYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGh3L3ZpcnRpby92aXJ0aW8tcGNpLmMgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogaHcvdmlydGlvL3ZpcnRpby5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDE2ICstCiBody94dGVuc2EvcGljX2NwdS5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGlvdGhyZWFkLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgNiArLQogbGludXgtdXNlci9ocHBhL2NwdV9sb29wLmMgICAg ICAgICAgICAgICAgICAgIHwgIDExICstCiBsaW51eC11c2VyL3NpZ25hbC5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDggKy0KIG1pZ3JhdGlvbi9jb2xvLWZhaWxvdmVyLmMgICAgICAg ICAgICAgICAgICAgICB8ICAgNCArLQogbWlncmF0aW9uL21pZ3JhdGlvbi5jICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICA4ICstCiBtaWdyYXRpb24vbXVsdGlmZC5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMTggKy0KIG1pZ3JhdGlvbi9wb3N0Y29weS1yYW0uYyAgICAgICAgICAg ICAgICAgICAgICB8ICAzNCArLS0KIG1pZ3JhdGlvbi9yZG1hLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAzNCArLS0KIG1vbml0b3IvaG1wLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgNiArLQogbW9uaXRvci9taXNjLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiBtb25pdG9yL21vbml0b3IuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDYgKy0KIHFlbXUtbmJkLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArLQogcWdhL2NvbW1hbmRzLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDEyICstCiBxb20vb2JqZWN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMjAgKy0KIHNjc2kvcWVtdS1wci1oZWxwZXIuYyAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNCArLQogc29mdG1tdS9jcHUtdGhyb3R0bGUuYyAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDEwICstCiBzb2Z0bW11L2NwdXMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNDIgKy0tCiBzb2Z0bW11L21lbW9yeS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDYgKy0KIHNvZnRtbXUvdmwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogdGFyZ2V0L2FybS9tdGVfaGVscGVyLmMgICAgICAgICAgICAgICAgICAgICAg IHwgICA2ICstCiB0YXJnZXQvaHBwYS9vcF9oZWxwZXIuYyAgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIHRhcmdldC9pMzg2L21lbV9oZWxwZXIuYyAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogdGFyZ2V0L2kzODYvd2hweC1hbGwuYyAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA2ICstCiB0YXJnZXQvcmlzY3YvY3B1X2hlbHBlci5jICAgICAgICAgICAgICAgICAgICAgfCAg IDIgKy0KIHRhcmdldC9zMzkweC9tZW1faGVscGVyLmMgICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogdGFyZ2V0L3h0ZW5zYS9leGNfaGVscGVyLmMgICAgICAgICAgICAgICAgICAgIHwgICA0 ICstCiB0YXJnZXQveHRlbnNhL29wX2hlbHBlci5jICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIHRjZy90Y2cuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1OCAr Ky0tCiB0Y2cvdGNpLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIHRlc3RzL2F0b21pYzY0LWJlbmNoLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNCAr LQogdGVzdHMvYXRvbWljX2FkZC1iZW5jaC5jICAgICAgICAgICAgICAgICAgICAgIHwgIDE0ICst CiB0ZXN0cy9pb3RocmVhZC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHRlc3RzL3FodC1iZW5jaC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQog dGVzdHMvcmN1dG9ydHVyZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI0ICstCiB0 ZXN0cy90ZXN0LWFpby1tdWx0aXRocmVhZC5jICAgICAgICAgICAgICAgICAgfCAgNTIgKystLQog dGVzdHMvdGVzdC1sb2dnaW5nLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiB0 ZXN0cy90ZXN0LXJjdS1saXN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzggKy0tCiB0 ZXN0cy90ZXN0LXRocmVhZC1wb29sLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHV0 aWwvYWlvLXBvc2l4LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNCArLQogdXRp bC9haW8td2FpdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB1dGls L2Fpby13aW4zMi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIHV0aWwv YXN5bmMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyOCArLQogdXRpbC9h dG9taWM2NC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICstCiB1dGlsL2Jp dG1hcC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KIHV0aWwvY2Fj aGVpbmZvLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogdXRpbC9mZG1v bi1lcG9sbC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiB1dGlsL2ZkbW9u LWlvX3VyaW5nLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIHV0aWwvbG9ja2Nu dC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1MiArKy0tCiB1dGlsL2xvZy5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHV0aWwvcWVtdS1j b3JvdXRpbmUtbG9jay5jICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogdXRpbC9xZW11LWNv cm91dGluZS1zbGVlcC5jICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiB1dGlsL3FlbXUtY29y b3V0aW5lLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIHV0aWwvcWVtdS1zb2Nr ZXRzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogdXRpbC9xZW11LXRocmVh ZC1wb3NpeC5jICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiB1dGlsL3FlbXUtdGhyZWFk LXdpbjMyLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIHV0aWwvcWVtdS10aW1lci5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogdXRpbC9xaHQuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU3ICsrLS0KIHV0aWwvcXNwLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1MCArKy0tCiB1dGlsL3JjdS5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzYgKy0tCiB1dGlsL3N0YXRzNjQuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzQgKy0tCiBkb2NzL2RldmVsL2F0b21p Y3MucnN0ICAgICAgICAgICAgICAgICAgICAgICAgfCAxMzQgKysrKystLS0tLQogc2NyaXB0cy9r ZXJuZWwtZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB0Y2cvYWFyY2g2 NC90Y2ctdGFyZ2V0LmMuaW5jICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHRjZy9taXBzL3Rj Zy10YXJnZXQuYy5pbmMgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogdGNnL3BwYy90Y2ct dGFyZ2V0LmMuaW5jICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiB0Y2cvc3BhcmMvdGNn LXRhcmdldC5jLmluYyAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIDEzMyBmaWxlcyBjaGFu Z2VkLCAxMDQxIGluc2VydGlvbnMoKyksIDEwMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9xZW11L2F0b21pYy5oIGIvaW5jbHVkZS9xZW11L2F0b21pYy5oCmluZGV4IGZmNzJk YjUxMTUuLmMxZDIxMWEzNTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcWVtdS9hdG9taWMuaAorKysg Yi9pbmNsdWRlL3FlbXUvYXRvbWljLmgKQEAgLTEyNSw0OSArMTI1LDQ5IEBACiAgKiBubyBlZmZl Y3Qgb24gdGhlIGdlbmVyYXRlZCBjb2RlIGJ1dCBub3QgdXNpbmcgdGhlIGF0b21pYyBwcmltaXRp dmVzCiAgKiB3aWxsIGdldCBmbGFnZ2VkIGJ5IHNhbml0aXplcnMgYXMgYSB2aW9sYXRpb24uCiAg Ki8KLSNkZWZpbmUgYXRvbWljX3JlYWRfX25vY2hlY2socHRyKSBcCisjZGVmaW5lIHFhdG9taWNf cmVhZF9fbm9jaGVjayhwdHIpIFwKICAgICBfX2F0b21pY19sb2FkX24ocHRyLCBfX0FUT01JQ19S RUxBWEVEKQogCi0jZGVmaW5lIGF0b21pY19yZWFkKHB0cikgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCi0gICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisjZGVmaW5lIHFhdG9taWNfcmVhZChwdHIpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgICBRRU1VX0JVSUxEX0JVR19PTihzaXplb2YoKnB0cikgPiBBVE9NSUNf UkVHX1NJWkUpOyBcCi0gICAgYXRvbWljX3JlYWRfX25vY2hlY2socHRyKTsgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgcWF0b21pY19yZWFkX19ub2NoZWNrKHB0cik7ICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgIH0pCiAKLSNkZWZpbmUgYXRvbWljX3NldF9fbm9jaGVjayhwdHIs IGkpIFwKKyNkZWZpbmUgcWF0b21pY19zZXRfX25vY2hlY2socHRyLCBpKSBcCiAgICAgX19hdG9t aWNfc3RvcmVfbihwdHIsIGksIF9fQVRPTUlDX1JFTEFYRUQpCiAKLSNkZWZpbmUgYXRvbWljX3Nl dChwdHIsIGkpICBkbyB7ICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgcWF0b21pY19z ZXQocHRyLCBpKSAgZG8geyAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgUUVNVV9CVUlMRF9C VUdfT04oc2l6ZW9mKCpwdHIpID4gQVRPTUlDX1JFR19TSVpFKTsgXAotICAgIGF0b21pY19zZXRf X25vY2hlY2socHRyLCBpKTsgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHFhdG9taWNfc2V0 X19ub2NoZWNrKHB0ciwgaSk7ICAgICAgICAgICAgICAgICAgICAgIFwKIH0gd2hpbGUoMCkKIAog LyogU2VlIGFib3ZlOiBtb3N0IGNvbXBpbGVycyBjdXJyZW50bHkgdHJlYXQgY29uc3VtZSBhbmQg YWNxdWlyZSB0aGUKLSAqIHNhbWUsIGJ1dCB0aGlzIHNsb3dzIGRvd24gYXRvbWljX3JjdV9yZWFk IHVubmVjZXNzYXJpbHkuCisgKiBzYW1lLCBidXQgdGhpcyBzbG93cyBkb3duIHFhdG9taWNfcmN1 X3JlYWQgdW5uZWNlc3NhcmlseS4KICAqLwogI2lmZGVmIF9fU0FOSVRJWkVfVEhSRUFEX18KLSNk ZWZpbmUgYXRvbWljX3JjdV9yZWFkX19ub2NoZWNrKHB0ciwgdmFscHRyKSAgICAgICAgICAgXAor I2RlZmluZSBxYXRvbWljX3JjdV9yZWFkX19ub2NoZWNrKHB0ciwgdmFscHRyKSAgICAgICAgICAg XAogICAgIF9fYXRvbWljX2xvYWQocHRyLCB2YWxwdHIsIF9fQVRPTUlDX0NPTlNVTUUpOwogI2Vs c2UKLSNkZWZpbmUgYXRvbWljX3JjdV9yZWFkX19ub2NoZWNrKHB0ciwgdmFscHRyKSAgICAgICAg ICAgXAotICAgIF9fYXRvbWljX2xvYWQocHRyLCB2YWxwdHIsIF9fQVRPTUlDX1JFTEFYRUQpOyAg ICAgICBcCisjZGVmaW5lIHFhdG9taWNfcmN1X3JlYWRfX25vY2hlY2socHRyLCB2YWxwdHIpICAg ICAgICAgICBcCisgICAgX19hdG9taWNfbG9hZChwdHIsIHZhbHB0ciwgX19BVE9NSUNfUkVMQVhF RCk7ICAgICAgICBcCiAgICAgc21wX3JlYWRfYmFycmllcl9kZXBlbmRzKCk7CiAjZW5kaWYKIAot I2RlZmluZSBhdG9taWNfcmN1X3JlYWQocHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAot ICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor I2RlZmluZSBxYXRvbWljX3JjdV9yZWFkKHB0cikgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgUUVNVV9CVUlMRF9CVUdfT04oc2l6ZW9mKCpwdHIpID4gQVRPTUlDX1JFR19TSVpFKTsg XAotICAgIHR5cGVvZl9zdHJpcF9xdWFsKCpwdHIpIF92YWw7ICAgICAgICAgICAgICAgICAgICAg XAotICAgIGF0b21pY19yY3VfcmVhZF9fbm9jaGVjayhwdHIsICZfdmFsKTsgICAgICAgICAgICAg XAotICAgIF92YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgIHR5cGVvZl9zdHJpcF9xdWFsKCpwdHIpIF92YWw7ICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICBxYXRvbWljX3JjdV9yZWFkX19ub2NoZWNrKHB0ciwgJl92YWwpOyAgICAgICAgICAg ICBcCisgICAgX3ZhbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgIH0pCiAKLSNkZWZpbmUgYXRvbWljX3JjdV9zZXQocHRyLCBpKSBkbyB7ICAgICAg ICAgICAgICAgICAgIFwKKyNkZWZpbmUgcWF0b21pY19yY3Vfc2V0KHB0ciwgaSkgZG8geyAgICAg ICAgICAgICAgICAgICBcCiAgICAgUUVNVV9CVUlMRF9CVUdfT04oc2l6ZW9mKCpwdHIpID4gQVRP TUlDX1JFR19TSVpFKTsgXAotICAgIF9fYXRvbWljX3N0b3JlX24ocHRyLCBpLCBfX0FUT01JQ19S RUxFQVNFKTsgICAgICAgXAorICAgIF9fYXRvbWljX3N0b3JlX24ocHRyLCBpLCBfX0FUT01JQ19S RUxFQVNFKTsgICAgICAgIFwKIH0gd2hpbGUoMCkKIAotI2RlZmluZSBhdG9taWNfbG9hZF9hY3F1 aXJlKHB0cikgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIHFhdG9taWNfbG9hZF9h Y3F1aXJlKHB0cikgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAoeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIFFFTVVfQlVJTERfQlVH X09OKHNpemVvZigqcHRyKSA+IEFUT01JQ19SRUdfU0laRSk7ICBcCiAgICAgdHlwZW9mX3N0cmlw X3F1YWwoKnB0cikgX3ZhbDsgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTE3NSw3ICsxNzUs NyBAQAogICAgIF92YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICAgfSkKIAotI2RlZmluZSBhdG9taWNfc3RvcmVfcmVsZWFzZShwdHIsIGkpICBk byB7ICAgICAgICAgICAgICBcCisjZGVmaW5lIHFhdG9taWNfc3RvcmVfcmVsZWFzZShwdHIsIGkp ICBkbyB7ICAgICAgICAgICAgIFwKICAgICBRRU1VX0JVSUxEX0JVR19PTihzaXplb2YoKnB0cikg PiBBVE9NSUNfUkVHX1NJWkUpOyAgXAogICAgIF9fYXRvbWljX3N0b3JlX24ocHRyLCBpLCBfX0FU T01JQ19SRUxFQVNFKTsgICAgICAgICBcCiB9IHdoaWxlKDApCkBAIC0xODMsNTYgKzE4Myw2MSBA QAogCiAvKiBBbGwgdGhlIHJlbWFpbmluZyBvcGVyYXRpb25zIGFyZSBmdWxseSBzZXF1ZW50aWFs bHkgY29uc2lzdGVudCAqLwogCi0jZGVmaW5lIGF0b21pY194Y2hnX19ub2NoZWNrKHB0ciwgaSkg ICAgKHsgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIHFhdG9taWNfeGNoZ19fbm9jaGVjayhw dHIsIGkpICAgICh7ICAgICAgICAgICAgICAgICBcCiAgICAgX19hdG9taWNfZXhjaGFuZ2Vfbihw dHIsIChpKSwgX19BVE9NSUNfU0VRX0NTVCk7ICAgICAgICBcCiB9KQogCi0jZGVmaW5lIGF0b21p Y194Y2hnKHB0ciwgaSkgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5l IHFhdG9taWNfeGNoZyhwdHIsIGkpICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg ICAgUUVNVV9CVUlMRF9CVUdfT04oc2l6ZW9mKCpwdHIpID4gQVRPTUlDX1JFR19TSVpFKTsgICAg ICBcCi0gICAgYXRvbWljX3hjaGdfX25vY2hlY2socHRyLCBpKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgcWF0b21pY194Y2hnX19ub2NoZWNrKHB0ciwgaSk7ICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiB9KQogCiAvKiBSZXR1cm5zIHRoZSBldmVudHVhbCB2YWx1ZSwgZmFp bGVkIG9yIG5vdCAqLwotI2RlZmluZSBhdG9taWNfY21weGNoZ19fbm9jaGVjayhwdHIsIG9sZCwg bmV3KSAgICAoeyAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBxYXRvbWljX2NtcHhjaGdf X25vY2hlY2socHRyLCBvbGQsIG5ldykgICAgKHsgICAgICAgICAgICAgICAgICAgXAogICAgIHR5 cGVvZl9zdHJpcF9xdWFsKCpwdHIpIF9vbGQgPSAob2xkKTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgICh2b2lkKV9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2VfbihwdHIsICZf b2xkLCBuZXcsIGZhbHNlLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgX19BVE9NSUNfU0VRX0NTVCwgX19BVE9NSUNfU0VRX0NTVCk7ICAgICAgXAogICAgIF9vbGQ7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogfSkKIAotI2RlZmluZSBhdG9taWNfY21weGNoZyhwdHIsIG9sZCwgbmV3KSAgICAo eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBxYXRvbWljX2NtcHhjaGco cHRyLCBvbGQsIG5ldykgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIFFF TVVfQlVJTERfQlVHX09OKHNpemVvZigqcHRyKSA+IEFUT01JQ19SRUdfU0laRSk7ICAgICAgICAg ICAgICAgICAgXAotICAgIGF0b21pY19jbXB4Y2hnX19ub2NoZWNrKHB0ciwgb2xkLCBuZXcpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHFhdG9taWNfY21weGNoZ19fbm9jaGVj ayhwdHIsIG9sZCwgbmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogfSkKIAogLyog UHJvdmlkZSBzaG9ydGVyIG5hbWVzIGZvciBHQ0MgYXRvbWljIGJ1aWx0aW5zLCByZXR1cm4gb2xk IHZhbHVlICovCi0jZGVmaW5lIGF0b21pY19mZXRjaF9pbmMocHRyKSAgX19hdG9taWNfZmV0Y2hf YWRkKHB0ciwgMSwgX19BVE9NSUNfU0VRX0NTVCkKLSNkZWZpbmUgYXRvbWljX2ZldGNoX2RlYyhw dHIpICBfX2F0b21pY19mZXRjaF9zdWIocHRyLCAxLCBfX0FUT01JQ19TRVFfQ1NUKQorI2RlZmlu ZSBxYXRvbWljX2ZldGNoX2luYyhwdHIpICBfX2F0b21pY19mZXRjaF9hZGQocHRyLCAxLCBfX0FU T01JQ19TRVFfQ1NUKQorI2RlZmluZSBxYXRvbWljX2ZldGNoX2RlYyhwdHIpICBfX2F0b21pY19m ZXRjaF9zdWIocHRyLCAxLCBfX0FUT01JQ19TRVFfQ1NUKQogCi0jaWZuZGVmIGF0b21pY19mZXRj aF9hZGQKLSNkZWZpbmUgYXRvbWljX2ZldGNoX2FkZChwdHIsIG4pIF9fYXRvbWljX2ZldGNoX2Fk ZChwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1QpCi0jZGVmaW5lIGF0b21pY19mZXRjaF9zdWIocHRy LCBuKSBfX2F0b21pY19mZXRjaF9zdWIocHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NUKQotI2RlZmlu ZSBhdG9taWNfZmV0Y2hfYW5kKHB0ciwgbikgX19hdG9taWNfZmV0Y2hfYW5kKHB0ciwgbiwgX19B VE9NSUNfU0VRX0NTVCkKLSNkZWZpbmUgYXRvbWljX2ZldGNoX29yKHB0ciwgbikgIF9fYXRvbWlj X2ZldGNoX29yKHB0ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkKLSNkZWZpbmUgYXRvbWljX2ZldGNo X3hvcihwdHIsIG4pIF9fYXRvbWljX2ZldGNoX3hvcihwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1Qp Ci0jZW5kaWYKKyNkZWZpbmUgcWF0b21pY19mZXRjaF9hZGQocHRyLCBuKSBfX2F0b21pY19mZXRj aF9hZGQocHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NUKQorI2RlZmluZSBxYXRvbWljX2ZldGNoX3N1 YihwdHIsIG4pIF9fYXRvbWljX2ZldGNoX3N1YihwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1QpCisj ZGVmaW5lIHFhdG9taWNfZmV0Y2hfYW5kKHB0ciwgbikgX19hdG9taWNfZmV0Y2hfYW5kKHB0ciwg biwgX19BVE9NSUNfU0VRX0NTVCkKKyNkZWZpbmUgcWF0b21pY19mZXRjaF9vcihwdHIsIG4pICBf X2F0b21pY19mZXRjaF9vcihwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1QpCisjZGVmaW5lIHFhdG9t aWNfZmV0Y2hfeG9yKHB0ciwgbikgX19hdG9taWNfZmV0Y2hfeG9yKHB0ciwgbiwgX19BVE9NSUNf U0VRX0NTVCkKIAotI2RlZmluZSBhdG9taWNfaW5jX2ZldGNoKHB0cikgICAgX19hdG9taWNfYWRk X2ZldGNoKHB0ciwgMSwgX19BVE9NSUNfU0VRX0NTVCkKLSNkZWZpbmUgYXRvbWljX2RlY19mZXRj aChwdHIpICAgIF9fYXRvbWljX3N1Yl9mZXRjaChwdHIsIDEsIF9fQVRPTUlDX1NFUV9DU1QpCi0j ZGVmaW5lIGF0b21pY19hZGRfZmV0Y2gocHRyLCBuKSBfX2F0b21pY19hZGRfZmV0Y2gocHRyLCBu LCBfX0FUT01JQ19TRVFfQ1NUKQotI2RlZmluZSBhdG9taWNfc3ViX2ZldGNoKHB0ciwgbikgX19h dG9taWNfc3ViX2ZldGNoKHB0ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkKLSNkZWZpbmUgYXRvbWlj X2FuZF9mZXRjaChwdHIsIG4pIF9fYXRvbWljX2FuZF9mZXRjaChwdHIsIG4sIF9fQVRPTUlDX1NF UV9DU1QpCi0jZGVmaW5lIGF0b21pY19vcl9mZXRjaChwdHIsIG4pICBfX2F0b21pY19vcl9mZXRj aChwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1QpCi0jZGVmaW5lIGF0b21pY194b3JfZmV0Y2gocHRy LCBuKSBfX2F0b21pY194b3JfZmV0Y2gocHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NUKQorI2RlZmlu ZSBxYXRvbWljX2luY19mZXRjaChwdHIpICAgIF9fYXRvbWljX2FkZF9mZXRjaChwdHIsIDEsIF9f QVRPTUlDX1NFUV9DU1QpCisjZGVmaW5lIHFhdG9taWNfZGVjX2ZldGNoKHB0cikgICAgX19hdG9t aWNfc3ViX2ZldGNoKHB0ciwgMSwgX19BVE9NSUNfU0VRX0NTVCkKKyNkZWZpbmUgcWF0b21pY19h ZGRfZmV0Y2gocHRyLCBuKSBfX2F0b21pY19hZGRfZmV0Y2gocHRyLCBuLCBfX0FUT01JQ19TRVFf Q1NUKQorI2RlZmluZSBxYXRvbWljX3N1Yl9mZXRjaChwdHIsIG4pIF9fYXRvbWljX3N1Yl9mZXRj aChwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1QpCisjZGVmaW5lIHFhdG9taWNfYW5kX2ZldGNoKHB0 ciwgbikgX19hdG9taWNfYW5kX2ZldGNoKHB0ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkKKyNkZWZp bmUgcWF0b21pY19vcl9mZXRjaChwdHIsIG4pICBfX2F0b21pY19vcl9mZXRjaChwdHIsIG4sIF9f QVRPTUlDX1NFUV9DU1QpCisjZGVmaW5lIHFhdG9taWNfeG9yX2ZldGNoKHB0ciwgbikgX19hdG9t aWNfeG9yX2ZldGNoKHB0ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkKIAogLyogQW5kIGV2ZW4gc2hv cnRlciBuYW1lcyB0aGF0IHJldHVybiB2b2lkLiAgKi8KLSNkZWZpbmUgYXRvbWljX2luYyhwdHIp ICAgICgodm9pZCkgX19hdG9taWNfZmV0Y2hfYWRkKHB0ciwgMSwgX19BVE9NSUNfU0VRX0NTVCkp Ci0jZGVmaW5lIGF0b21pY19kZWMocHRyKSAgICAoKHZvaWQpIF9fYXRvbWljX2ZldGNoX3N1Yihw dHIsIDEsIF9fQVRPTUlDX1NFUV9DU1QpKQotI2RlZmluZSBhdG9taWNfYWRkKHB0ciwgbikgKCh2 b2lkKSBfX2F0b21pY19mZXRjaF9hZGQocHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NUKSkKLSNkZWZp bmUgYXRvbWljX3N1YihwdHIsIG4pICgodm9pZCkgX19hdG9taWNfZmV0Y2hfc3ViKHB0ciwgbiwg X19BVE9NSUNfU0VRX0NTVCkpCi0jZGVmaW5lIGF0b21pY19hbmQocHRyLCBuKSAoKHZvaWQpIF9f YXRvbWljX2ZldGNoX2FuZChwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1QpKQotI2RlZmluZSBhdG9t aWNfb3IocHRyLCBuKSAgKCh2b2lkKSBfX2F0b21pY19mZXRjaF9vcihwdHIsIG4sIF9fQVRPTUlD X1NFUV9DU1QpKQotI2RlZmluZSBhdG9taWNfeG9yKHB0ciwgbikgKCh2b2lkKSBfX2F0b21pY19m ZXRjaF94b3IocHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NUKSkKKyNkZWZpbmUgcWF0b21pY19pbmMo cHRyKSBcCisgICAgKCh2b2lkKSBfX2F0b21pY19mZXRjaF9hZGQocHRyLCAxLCBfX0FUT01JQ19T RVFfQ1NUKSkKKyNkZWZpbmUgcWF0b21pY19kZWMocHRyKSBcCisgICAgKCh2b2lkKSBfX2F0b21p Y19mZXRjaF9zdWIocHRyLCAxLCBfX0FUT01JQ19TRVFfQ1NUKSkKKyNkZWZpbmUgcWF0b21pY19h ZGQocHRyLCBuKSBcCisgICAgKCh2b2lkKSBfX2F0b21pY19mZXRjaF9hZGQocHRyLCBuLCBfX0FU T01JQ19TRVFfQ1NUKSkKKyNkZWZpbmUgcWF0b21pY19zdWIocHRyLCBuKSBcCisgICAgKCh2b2lk KSBfX2F0b21pY19mZXRjaF9zdWIocHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NUKSkKKyNkZWZpbmUg cWF0b21pY19hbmQocHRyLCBuKSBcCisgICAgKCh2b2lkKSBfX2F0b21pY19mZXRjaF9hbmQocHRy LCBuLCBfX0FUT01JQ19TRVFfQ1NUKSkKKyNkZWZpbmUgcWF0b21pY19vcihwdHIsIG4pIFwKKyAg ICAoKHZvaWQpIF9fYXRvbWljX2ZldGNoX29yKHB0ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkpCisj ZGVmaW5lIHFhdG9taWNfeG9yKHB0ciwgbikgXAorICAgICgodm9pZCkgX19hdG9taWNfZmV0Y2hf eG9yKHB0ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkpCiAKICNlbHNlIC8qIF9fQVRPTUlDX1JFTEFY RUQgKi8KIApAQCAtMjcyLDcgKzI3Nyw3IEBACiAgKiBidXQgaXQgaXMgYSBmdWxsIGJhcnJpZXIg YXQgdGhlIGhhcmR3YXJlIGxldmVsLiAgQWRkIGEgY29tcGlsZXIgYmFycmllcgogICogdG8gbWFr ZSBpdCBhIGZ1bGwgYmFycmllciBhbHNvIGF0IHRoZSBjb21waWxlciBsZXZlbC4KICAqLwotI2Rl ZmluZSBhdG9taWNfeGNoZyhwdHIsIGkpICAgIChiYXJyaWVyKCksIF9fc3luY19sb2NrX3Rlc3Rf YW5kX3NldChwdHIsIGkpKQorI2RlZmluZSBxYXRvbWljX3hjaGcocHRyLCBpKSAgICAoYmFycmll cigpLCBfX3N5bmNfbG9ja190ZXN0X2FuZF9zZXQocHRyLCBpKSkKIAogI2VsaWYgZGVmaW5lZChf QVJDSF9QUEMpCiAKQEAgLTMyNSwxNCArMzMwLDE0IEBACiAvKiBUaGVzZSB3aWxsIG9ubHkgYmUg YXRvbWljIGlmIHRoZSBwcm9jZXNzb3IgZG9lcyB0aGUgZmV0Y2ggb3Igc3RvcmUKICAqIGluIGEg c2luZ2xlIGlzc3VlIG1lbW9yeSBvcGVyYXRpb24KICAqLwotI2RlZmluZSBhdG9taWNfcmVhZF9f bm9jaGVjayhwKSAgICgqKF9fdHlwZW9mX18oKihwKSkgdm9sYXRpbGUqKSAocCkpCi0jZGVmaW5l IGF0b21pY19zZXRfX25vY2hlY2socCwgaSkgKCgqKF9fdHlwZW9mX18oKihwKSkgdm9sYXRpbGUq KSAocCkpID0gKGkpKQorI2RlZmluZSBxYXRvbWljX3JlYWRfX25vY2hlY2socCkgICAoKihfX3R5 cGVvZl9fKCoocCkpIHZvbGF0aWxlKikgKHApKQorI2RlZmluZSBxYXRvbWljX3NldF9fbm9jaGVj ayhwLCBpKSAoKCooX190eXBlb2ZfXygqKHApKSB2b2xhdGlsZSopIChwKSkgPSAoaSkpCiAKLSNk ZWZpbmUgYXRvbWljX3JlYWQocHRyKSAgICAgICBhdG9taWNfcmVhZF9fbm9jaGVjayhwdHIpCi0j ZGVmaW5lIGF0b21pY19zZXQocHRyLCBpKSAgICAgYXRvbWljX3NldF9fbm9jaGVjayhwdHIsaSkK KyNkZWZpbmUgcWF0b21pY19yZWFkKHB0cikgICAgICAgcWF0b21pY19yZWFkX19ub2NoZWNrKHB0 cikKKyNkZWZpbmUgcWF0b21pY19zZXQocHRyLCBpKSAgICAgcWF0b21pY19zZXRfX25vY2hlY2so cHRyLGkpCiAKIC8qKgotICogYXRvbWljX3JjdV9yZWFkIC0gcmVhZHMgYSBSQ1UtcHJvdGVjdGVk IHBvaW50ZXIgdG8gYSBsb2NhbCB2YXJpYWJsZQorICogcWF0b21pY19yY3VfcmVhZCAtIHJlYWRz IGEgUkNVLXByb3RlY3RlZCBwb2ludGVyIHRvIGEgbG9jYWwgdmFyaWFibGUKICAqIGludG8gYSBS Q1UgcmVhZC1zaWRlIGNyaXRpY2FsIHNlY3Rpb24uIFRoZSBwb2ludGVyIGNhbiBsYXRlciBiZSBz YWZlbHkKICAqIGRlcmVmZXJlbmNlZCB3aXRoaW4gdGhlIGNyaXRpY2FsIHNlY3Rpb24uCiAgKgpA QCAtMzQyLDIxICszNDcsMjEgQEAKICAqIEluc2VydHMgbWVtb3J5IGJhcnJpZXJzIG9uIGFyY2hp dGVjdHVyZXMgdGhhdCByZXF1aXJlIHRoZW0gKGN1cnJlbnRseSBvbmx5CiAgKiBBbHBoYSkgYW5k IGRvY3VtZW50cyB3aGljaCBwb2ludGVycyBhcmUgcHJvdGVjdGVkIGJ5IFJDVS4KICAqCi0gKiBh dG9taWNfcmN1X3JlYWQgYWxzbyBpbmNsdWRlcyBhIGNvbXBpbGVyIGJhcnJpZXIgdG8gZW5zdXJl IHRoYXQKKyAqIHFhdG9taWNfcmN1X3JlYWQgYWxzbyBpbmNsdWRlcyBhIGNvbXBpbGVyIGJhcnJp ZXIgdG8gZW5zdXJlIHRoYXQKICAqIHZhbHVlLXNwZWN1bGF0aXZlIG9wdGltaXphdGlvbnMgKGUu Zy4gVlNTOiBWYWx1ZSBTcGVjdWxhdGlvbgogICogU2NoZWR1bGluZykgZG9lcyBub3QgcGVyZm9y bSB0aGUgZGF0YSByZWFkIGJlZm9yZSB0aGUgcG9pbnRlciByZWFkCiAgKiBieSBzcGVjdWxhdGlu ZyB0aGUgdmFsdWUgb2YgdGhlIHBvaW50ZXIuCiAgKgotICogU2hvdWxkIG1hdGNoIGF0b21pY19y Y3Vfc2V0KCksIGF0b21pY194Y2hnKCksIGF0b21pY19jbXB4Y2hnKCkuCisgKiBTaG91bGQgbWF0 Y2ggcWF0b21pY19yY3Vfc2V0KCksIHFhdG9taWNfeGNoZygpLCBxYXRvbWljX2NtcHhjaGcoKS4K ICAqLwotI2RlZmluZSBhdG9taWNfcmN1X3JlYWQocHRyKSAgICAoeyAgICAgICAgICAgICAgICBc Ci0gICAgdHlwZW9mKCpwdHIpIF92YWwgPSBhdG9taWNfcmVhZChwdHIpOyAgICAgICAgIFwKKyNk ZWZpbmUgcWF0b21pY19yY3VfcmVhZChwdHIpICAgICh7ICAgICAgICAgICAgICAgXAorICAgIHR5 cGVvZigqcHRyKSBfdmFsID0gcWF0b21pY19yZWFkKHB0cik7ICAgICAgICBcCiAgICAgc21wX3Jl YWRfYmFycmllcl9kZXBlbmRzKCk7ICAgICAgICAgICAgICAgICAgIFwKICAgICBfdmFsOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogfSkKIAogLyoqCi0gKiBhdG9t aWNfcmN1X3NldCAtIGFzc2lnbnMgKHB1YmxpY2l6ZXMpIGEgcG9pbnRlciB0byBhIG5ldyBkYXRh IHN0cnVjdHVyZQorICogcWF0b21pY19yY3Vfc2V0IC0gYXNzaWducyAocHVibGljaXplcykgYSBw b2ludGVyIHRvIGEgbmV3IGRhdGEgc3RydWN0dXJlCiAgKiBtZWFudCB0byBiZSByZWFkIGJ5IFJD VSByZWFkLXNpZGUgY3JpdGljYWwgc2VjdGlvbnMuCiAgKgogICogRG9jdW1lbnRzIHdoaWNoIHBv aW50ZXJzIHdpbGwgYmUgZGVyZWZlcmVuY2VkIGJ5IFJDVSByZWFkLXNpZGUgY3JpdGljYWwKQEAg LTM2NCw2NSArMzY5LDY0IEBACiAgKiB0aGVtLiBJdCBhbHNvIG1ha2VzIHN1cmUgdGhlIGNvbXBp bGVyIGRvZXMgbm90IHJlb3JkZXIgY29kZSBpbml0aWFsaXppbmcgdGhlCiAgKiBkYXRhIHN0cnVj dHVyZSBiZWZvcmUgaXRzIHB1YmxpY2F0aW9uLgogICoKLSAqIFNob3VsZCBtYXRjaCBhdG9taWNf cmN1X3JlYWQoKS4KKyAqIFNob3VsZCBtYXRjaCBxYXRvbWljX3JjdV9yZWFkKCkuCiAgKi8KLSNk ZWZpbmUgYXRvbWljX3JjdV9zZXQocHRyLCBpKSAgZG8geyAgICAgICAgICAgICAgXAorI2RlZmlu ZSBxYXRvbWljX3JjdV9zZXQocHRyLCBpKSAgZG8geyAgICAgICAgICAgICBcCiAgICAgc21wX3dt YigpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhdG9taWNfc2V0 KHB0ciwgaSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHFhdG9taWNfc2V0KHB0 ciwgaSk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiB9IHdoaWxlICgwKQogCi0jZGVmaW5l IGF0b21pY19sb2FkX2FjcXVpcmUocHRyKSAgICAoeyAgICAgIFwKLSAgICB0eXBlb2YoKnB0cikg X3ZhbCA9IGF0b21pY19yZWFkKHB0cik7ICAgXAorI2RlZmluZSBxYXRvbWljX2xvYWRfYWNxdWly ZShwdHIpICAgICh7ICAgICBcCisgICAgdHlwZW9mKCpwdHIpIF92YWwgPSBxYXRvbWljX3JlYWQo cHRyKTsgIFwKICAgICBzbXBfbWJfYWNxdWlyZSgpOyAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgIF92YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiB9KQogCi0jZGVm aW5lIGF0b21pY19zdG9yZV9yZWxlYXNlKHB0ciwgaSkgIGRvIHsgIFwKKyNkZWZpbmUgcWF0b21p Y19zdG9yZV9yZWxlYXNlKHB0ciwgaSkgIGRvIHsgXAogICAgIHNtcF9tYl9yZWxlYXNlKCk7ICAg ICAgICAgICAgICAgICAgICAgICBcCi0gICAgYXRvbWljX3NldChwdHIsIGkpOyAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICBxYXRvbWljX3NldChwdHIsIGkpOyAgICAgICAgICAgICAgICAgICAg XAogfSB3aGlsZSAoMCkKIAotI2lmbmRlZiBhdG9taWNfeGNoZworI2lmbmRlZiBxYXRvbWljX3hj aGcKICNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNkZWZpbmUgYXRvbWljX3hjaGcocHRyLCBpKSAg ICBfX3N5bmNfc3dhcChwdHIsIGkpCisjZGVmaW5lIHFhdG9taWNfeGNoZyhwdHIsIGkpICAgIF9f c3luY19zd2FwKHB0ciwgaSkKICNlbHNlCiAvKiBfX3N5bmNfbG9ja190ZXN0X2FuZF9zZXQoKSBp cyBkb2N1bWVudGVkIHRvIGJlIGFuIGFjcXVpcmUgYmFycmllciBvbmx5LiAgKi8KLSNkZWZpbmUg YXRvbWljX3hjaGcocHRyLCBpKSAgICAoc21wX21iKCksIF9fc3luY19sb2NrX3Rlc3RfYW5kX3Nl dChwdHIsIGkpKQorI2RlZmluZSBxYXRvbWljX3hjaGcocHRyLCBpKSAgICAoc21wX21iKCksIF9f c3luY19sb2NrX3Rlc3RfYW5kX3NldChwdHIsIGkpKQogI2VuZGlmCiAjZW5kaWYKLSNkZWZpbmUg YXRvbWljX3hjaGdfX25vY2hlY2sgIGF0b21pY194Y2hnCisjZGVmaW5lIHFhdG9taWNfeGNoZ19f bm9jaGVjayAgcWF0b21pY194Y2hnCiAKIC8qIFByb3ZpZGUgc2hvcnRlciBuYW1lcyBmb3IgR0ND IGF0b21pYyBidWlsdGlucy4gICovCi0jZGVmaW5lIGF0b21pY19mZXRjaF9pbmMocHRyKSAgX19z eW5jX2ZldGNoX2FuZF9hZGQocHRyLCAxKQotI2RlZmluZSBhdG9taWNfZmV0Y2hfZGVjKHB0cikg IF9fc3luY19mZXRjaF9hbmRfYWRkKHB0ciwgLTEpCisjZGVmaW5lIHFhdG9taWNfZmV0Y2hfaW5j KHB0cikgIF9fc3luY19mZXRjaF9hbmRfYWRkKHB0ciwgMSkKKyNkZWZpbmUgcWF0b21pY19mZXRj aF9kZWMocHRyKSAgX19zeW5jX2ZldGNoX2FuZF9hZGQocHRyLCAtMSkKIAotI2lmbmRlZiBhdG9t aWNfZmV0Y2hfYWRkCi0jZGVmaW5lIGF0b21pY19mZXRjaF9hZGQocHRyLCBuKSBfX3N5bmNfZmV0 Y2hfYW5kX2FkZChwdHIsIG4pCi0jZGVmaW5lIGF0b21pY19mZXRjaF9zdWIocHRyLCBuKSBfX3N5 bmNfZmV0Y2hfYW5kX3N1YihwdHIsIG4pCi0jZGVmaW5lIGF0b21pY19mZXRjaF9hbmQocHRyLCBu KSBfX3N5bmNfZmV0Y2hfYW5kX2FuZChwdHIsIG4pCi0jZGVmaW5lIGF0b21pY19mZXRjaF9vcihw dHIsIG4pIF9fc3luY19mZXRjaF9hbmRfb3IocHRyLCBuKQotI2RlZmluZSBhdG9taWNfZmV0Y2hf eG9yKHB0ciwgbikgX19zeW5jX2ZldGNoX2FuZF94b3IocHRyLCBuKQotI2VuZGlmCisjZGVmaW5l IHFhdG9taWNfZmV0Y2hfYWRkKHB0ciwgbikgX19zeW5jX2ZldGNoX2FuZF9hZGQocHRyLCBuKQor I2RlZmluZSBxYXRvbWljX2ZldGNoX3N1YihwdHIsIG4pIF9fc3luY19mZXRjaF9hbmRfc3ViKHB0 ciwgbikKKyNkZWZpbmUgcWF0b21pY19mZXRjaF9hbmQocHRyLCBuKSBfX3N5bmNfZmV0Y2hfYW5k X2FuZChwdHIsIG4pCisjZGVmaW5lIHFhdG9taWNfZmV0Y2hfb3IocHRyLCBuKSBfX3N5bmNfZmV0 Y2hfYW5kX29yKHB0ciwgbikKKyNkZWZpbmUgcWF0b21pY19mZXRjaF94b3IocHRyLCBuKSBfX3N5 bmNfZmV0Y2hfYW5kX3hvcihwdHIsIG4pCiAKLSNkZWZpbmUgYXRvbWljX2luY19mZXRjaChwdHIp ICBfX3N5bmNfYWRkX2FuZF9mZXRjaChwdHIsIDEpCi0jZGVmaW5lIGF0b21pY19kZWNfZmV0Y2go cHRyKSAgX19zeW5jX2FkZF9hbmRfZmV0Y2gocHRyLCAtMSkKLSNkZWZpbmUgYXRvbWljX2FkZF9m ZXRjaChwdHIsIG4pIF9fc3luY19hZGRfYW5kX2ZldGNoKHB0ciwgbikKLSNkZWZpbmUgYXRvbWlj X3N1Yl9mZXRjaChwdHIsIG4pIF9fc3luY19zdWJfYW5kX2ZldGNoKHB0ciwgbikKLSNkZWZpbmUg YXRvbWljX2FuZF9mZXRjaChwdHIsIG4pIF9fc3luY19hbmRfYW5kX2ZldGNoKHB0ciwgbikKLSNk ZWZpbmUgYXRvbWljX29yX2ZldGNoKHB0ciwgbikgX19zeW5jX29yX2FuZF9mZXRjaChwdHIsIG4p Ci0jZGVmaW5lIGF0b21pY194b3JfZmV0Y2gocHRyLCBuKSBfX3N5bmNfeG9yX2FuZF9mZXRjaChw dHIsIG4pCisjZGVmaW5lIHFhdG9taWNfaW5jX2ZldGNoKHB0cikgIF9fc3luY19hZGRfYW5kX2Zl dGNoKHB0ciwgMSkKKyNkZWZpbmUgcWF0b21pY19kZWNfZmV0Y2gocHRyKSAgX19zeW5jX2FkZF9h bmRfZmV0Y2gocHRyLCAtMSkKKyNkZWZpbmUgcWF0b21pY19hZGRfZmV0Y2gocHRyLCBuKSBfX3N5 bmNfYWRkX2FuZF9mZXRjaChwdHIsIG4pCisjZGVmaW5lIHFhdG9taWNfc3ViX2ZldGNoKHB0ciwg bikgX19zeW5jX3N1Yl9hbmRfZmV0Y2gocHRyLCBuKQorI2RlZmluZSBxYXRvbWljX2FuZF9mZXRj aChwdHIsIG4pIF9fc3luY19hbmRfYW5kX2ZldGNoKHB0ciwgbikKKyNkZWZpbmUgcWF0b21pY19v cl9mZXRjaChwdHIsIG4pIF9fc3luY19vcl9hbmRfZmV0Y2gocHRyLCBuKQorI2RlZmluZSBxYXRv bWljX3hvcl9mZXRjaChwdHIsIG4pIF9fc3luY194b3JfYW5kX2ZldGNoKHB0ciwgbikKIAotI2Rl ZmluZSBhdG9taWNfY21weGNoZyhwdHIsIG9sZCwgbmV3KSBfX3N5bmNfdmFsX2NvbXBhcmVfYW5k X3N3YXAocHRyLCBvbGQsIG5ldykKLSNkZWZpbmUgYXRvbWljX2NtcHhjaGdfX25vY2hlY2socHRy LCBvbGQsIG5ldykgIGF0b21pY19jbXB4Y2hnKHB0ciwgb2xkLCBuZXcpCisjZGVmaW5lIHFhdG9t aWNfY21weGNoZyhwdHIsIG9sZCwgbmV3KSBcCisgICAgX19zeW5jX3ZhbF9jb21wYXJlX2FuZF9z d2FwKHB0ciwgb2xkLCBuZXcpCisjZGVmaW5lIHFhdG9taWNfY21weGNoZ19fbm9jaGVjayhwdHIs IG9sZCwgbmV3KSAgcWF0b21pY19jbXB4Y2hnKHB0ciwgb2xkLCBuZXcpCiAKIC8qIEFuZCBldmVu IHNob3J0ZXIgbmFtZXMgdGhhdCByZXR1cm4gdm9pZC4gICovCi0jZGVmaW5lIGF0b21pY19pbmMo cHRyKSAgICAgICAgKCh2b2lkKSBfX3N5bmNfZmV0Y2hfYW5kX2FkZChwdHIsIDEpKQotI2RlZmlu ZSBhdG9taWNfZGVjKHB0cikgICAgICAgICgodm9pZCkgX19zeW5jX2ZldGNoX2FuZF9hZGQocHRy LCAtMSkpCi0jZGVmaW5lIGF0b21pY19hZGQocHRyLCBuKSAgICAgKCh2b2lkKSBfX3N5bmNfZmV0 Y2hfYW5kX2FkZChwdHIsIG4pKQotI2RlZmluZSBhdG9taWNfc3ViKHB0ciwgbikgICAgICgodm9p ZCkgX19zeW5jX2ZldGNoX2FuZF9zdWIocHRyLCBuKSkKLSNkZWZpbmUgYXRvbWljX2FuZChwdHIs IG4pICAgICAoKHZvaWQpIF9fc3luY19mZXRjaF9hbmRfYW5kKHB0ciwgbikpCi0jZGVmaW5lIGF0 b21pY19vcihwdHIsIG4pICAgICAgKCh2b2lkKSBfX3N5bmNfZmV0Y2hfYW5kX29yKHB0ciwgbikp Ci0jZGVmaW5lIGF0b21pY194b3IocHRyLCBuKSAgICAgKCh2b2lkKSBfX3N5bmNfZmV0Y2hfYW5k X3hvcihwdHIsIG4pKQorI2RlZmluZSBxYXRvbWljX2luYyhwdHIpICAgICAgICAoKHZvaWQpIF9f c3luY19mZXRjaF9hbmRfYWRkKHB0ciwgMSkpCisjZGVmaW5lIHFhdG9taWNfZGVjKHB0cikgICAg ICAgICgodm9pZCkgX19zeW5jX2ZldGNoX2FuZF9hZGQocHRyLCAtMSkpCisjZGVmaW5lIHFhdG9t aWNfYWRkKHB0ciwgbikgICAgICgodm9pZCkgX19zeW5jX2ZldGNoX2FuZF9hZGQocHRyLCBuKSkK KyNkZWZpbmUgcWF0b21pY19zdWIocHRyLCBuKSAgICAgKCh2b2lkKSBfX3N5bmNfZmV0Y2hfYW5k X3N1YihwdHIsIG4pKQorI2RlZmluZSBxYXRvbWljX2FuZChwdHIsIG4pICAgICAoKHZvaWQpIF9f c3luY19mZXRjaF9hbmRfYW5kKHB0ciwgbikpCisjZGVmaW5lIHFhdG9taWNfb3IocHRyLCBuKSAg ICAgICgodm9pZCkgX19zeW5jX2ZldGNoX2FuZF9vcihwdHIsIG4pKQorI2RlZmluZSBxYXRvbWlj X3hvcihwdHIsIG4pICAgICAoKHZvaWQpIF9fc3luY19mZXRjaF9hbmRfeG9yKHB0ciwgbikpCiAK ICNlbmRpZiAvKiBfX0FUT01JQ19SRUxBWEVEICovCiAKQEAgLTQzNiwxMSArNDQwLDExIEBACiAv KiBUaGlzIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gYSBzdG9yZSBwbHVzIGEgZmVuY2UuICAqLwog I2lmICFkZWZpbmVkKF9fU0FOSVRJWkVfVEhSRUFEX18pCiAjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fczM5MHhfXykKLSNkZWZpbmUgYXRv bWljX21iX3NldChwdHIsIGkpICAoKHZvaWQpYXRvbWljX3hjaGcocHRyLCBpKSkKKyNkZWZpbmUg cWF0b21pY19tYl9zZXQocHRyLCBpKSAgKCh2b2lkKXFhdG9taWNfeGNoZyhwdHIsIGkpKQogI2Vu ZGlmCiAjZW5kaWYKIAotLyogYXRvbWljX21iX3JlYWQvc2V0IHNlbWFudGljcyBtYXAgSmF2YSB2 b2xhdGlsZSB2YXJpYWJsZXMuIFRoZXkgYXJlCisvKiBxYXRvbWljX21iX3JlYWQvc2V0IHNlbWFu dGljcyBtYXAgSmF2YSB2b2xhdGlsZSB2YXJpYWJsZXMuIFRoZXkgYXJlCiAgKiBsZXNzIGV4cGVu c2l2ZSBvbiBzb21lIHBsYXRmb3JtcyAobm90YWJseSBQT1dFUikgdGhhbiBmdWxseQogICogc2Vx dWVudGlhbGx5IGNvbnNpc3RlbnQgb3BlcmF0aW9ucy4KICAqCkBAIC00NDgsNTggKzQ1Miw1OCBA QAogICogdXNlLiBTZWUgZG9jcy9kZXZlbC9hdG9taWNzLnR4dCBmb3IgbW9yZSBkaXNjdXNzaW9u LgogICovCiAKLSNpZm5kZWYgYXRvbWljX21iX3JlYWQKLSNkZWZpbmUgYXRvbWljX21iX3JlYWQo cHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGF0b21pY19sb2FkX2FjcXVp cmUocHRyKQorI2lmbmRlZiBxYXRvbWljX21iX3JlYWQKKyNkZWZpbmUgcWF0b21pY19tYl9yZWFk KHB0cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBxYXRvbWljX2xvYWRfYWNx dWlyZShwdHIpCiAjZW5kaWYKIAotI2lmbmRlZiBhdG9taWNfbWJfc2V0Ci0jZGVmaW5lIGF0b21p Y19tYl9zZXQocHRyLCBpKSAgZG8geyAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhdG9taWNf c3RvcmVfcmVsZWFzZShwdHIsIGkpOyAgICAgICAgICAgICAgICAgICAgICAgXAorI2lmbmRlZiBx YXRvbWljX21iX3NldAorI2RlZmluZSBxYXRvbWljX21iX3NldChwdHIsIGkpICBkbyB7ICAgICAg ICAgICAgICAgICAgICBcCisgICAgcWF0b21pY19zdG9yZV9yZWxlYXNlKHB0ciwgaSk7ICAgICAg ICAgICAgICAgICAgICAgIFwKICAgICBzbXBfbWIoKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAogfSB3aGlsZSgwKQogI2VuZGlmCiAKLSNkZWZpbmUgYXRvbWlj X2ZldGNoX2luY19ub256ZXJvKHB0cikgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKLSAgICB0eXBlb2Zfc3RyaXBfcXVhbCgqcHRyKSBfb2xkbiA9IGF0b21pY19yZWFkKHB0cik7 ICAgICAgICAgICAgICAgICAgIFwKLSAgICB3aGlsZSAoX29sZG4gJiYgYXRvbWljX2NtcHhjaGco cHRyLCBfb2xkbiwgX29sZG4gKyAxKSAhPSBfb2xkbikgeyAgIFwKLSAgICAgICAgX29sZG4gPSBh dG9taWNfcmVhZChwdHIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyNkZWZpbmUgcWF0b21pY19mZXRjaF9pbmNfbm9uemVybyhwdHIpICh7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICB0eXBlb2Zfc3RyaXBfcXVhbCgqcHRyKSBfb2xkbiA9IHFh dG9taWNfcmVhZChwdHIpOyAgICAgICAgICAgICAgICAgIFwKKyAgICB3aGlsZSAoX29sZG4gJiYg cWF0b21pY19jbXB4Y2hnKHB0ciwgX29sZG4sIF9vbGRuICsgMSkgIT0gX29sZG4pIHsgIFwKKyAg ICAgICAgX29sZG4gPSBxYXRvbWljX3JlYWQocHRyKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBfb2xkbjsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIH0pCiAK IC8qIEFic3RyYWN0aW9ucyB0byBhY2Nlc3MgYXRvbWljYWxseSAoaS5lLiAib25jZSIpIGk2NC91 NjQgdmFyaWFibGVzICovCiAjaWZkZWYgQ09ORklHX0FUT01JQzY0Ci1zdGF0aWMgaW5saW5lIGlu dDY0X3QgYXRvbWljX3JlYWRfaTY0KGNvbnN0IGludDY0X3QgKnB0cikKK3N0YXRpYyBpbmxpbmUg aW50NjRfdCBxYXRvbWljX3JlYWRfaTY0KGNvbnN0IGludDY0X3QgKnB0cikKIHsKICAgICAvKiB1 c2UgX19ub2NoZWNrIGJlY2F1c2Ugc2l6ZW9mKHZvaWQgKikgbWlnaHQgYmUgPCBzaXplb2YodTY0 KSAqLwotICAgIHJldHVybiBhdG9taWNfcmVhZF9fbm9jaGVjayhwdHIpOworICAgIHJldHVybiBx YXRvbWljX3JlYWRfX25vY2hlY2socHRyKTsKIH0KIAotc3RhdGljIGlubGluZSB1aW50NjRfdCBh dG9taWNfcmVhZF91NjQoY29uc3QgdWludDY0X3QgKnB0cikKK3N0YXRpYyBpbmxpbmUgdWludDY0 X3QgcWF0b21pY19yZWFkX3U2NChjb25zdCB1aW50NjRfdCAqcHRyKQogewotICAgIHJldHVybiBh dG9taWNfcmVhZF9fbm9jaGVjayhwdHIpOworICAgIHJldHVybiBxYXRvbWljX3JlYWRfX25vY2hl Y2socHRyKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGF0b21pY19zZXRfaTY0KGludDY0X3Qg KnB0ciwgaW50NjRfdCB2YWwpCitzdGF0aWMgaW5saW5lIHZvaWQgcWF0b21pY19zZXRfaTY0KGlu dDY0X3QgKnB0ciwgaW50NjRfdCB2YWwpCiB7Ci0gICAgYXRvbWljX3NldF9fbm9jaGVjayhwdHIs IHZhbCk7CisgICAgcWF0b21pY19zZXRfX25vY2hlY2socHRyLCB2YWwpOwogfQogCi1zdGF0aWMg aW5saW5lIHZvaWQgYXRvbWljX3NldF91NjQodWludDY0X3QgKnB0ciwgdWludDY0X3QgdmFsKQor c3RhdGljIGlubGluZSB2b2lkIHFhdG9taWNfc2V0X3U2NCh1aW50NjRfdCAqcHRyLCB1aW50NjRf dCB2YWwpCiB7Ci0gICAgYXRvbWljX3NldF9fbm9jaGVjayhwdHIsIHZhbCk7CisgICAgcWF0b21p Y19zZXRfX25vY2hlY2socHRyLCB2YWwpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgYXRvbWlj NjRfaW5pdCh2b2lkKQorc3RhdGljIGlubGluZSB2b2lkIHFhdG9taWM2NF9pbml0KHZvaWQpCiB7 CiB9CiAjZWxzZSAvKiAhQ09ORklHX0FUT01JQzY0ICovCi1pbnQ2NF90ICBhdG9taWNfcmVhZF9p NjQoY29uc3QgaW50NjRfdCAqcHRyKTsKLXVpbnQ2NF90IGF0b21pY19yZWFkX3U2NChjb25zdCB1 aW50NjRfdCAqcHRyKTsKLXZvaWQgYXRvbWljX3NldF9pNjQoaW50NjRfdCAqcHRyLCBpbnQ2NF90 IHZhbCk7Ci12b2lkIGF0b21pY19zZXRfdTY0KHVpbnQ2NF90ICpwdHIsIHVpbnQ2NF90IHZhbCk7 Ci12b2lkIGF0b21pYzY0X2luaXQodm9pZCk7CitpbnQ2NF90ICBxYXRvbWljX3JlYWRfaTY0KGNv bnN0IGludDY0X3QgKnB0cik7Cit1aW50NjRfdCBxYXRvbWljX3JlYWRfdTY0KGNvbnN0IHVpbnQ2 NF90ICpwdHIpOwordm9pZCBxYXRvbWljX3NldF9pNjQoaW50NjRfdCAqcHRyLCBpbnQ2NF90IHZh bCk7Cit2b2lkIHFhdG9taWNfc2V0X3U2NCh1aW50NjRfdCAqcHRyLCB1aW50NjRfdCB2YWwpOwor dm9pZCBxYXRvbWljNjRfaW5pdCh2b2lkKTsKICNlbmRpZiAvKiAhQ09ORklHX0FUT01JQzY0ICov CiAKICNlbmRpZiAvKiBRRU1VX0FUT01JQ19IICovCmRpZmYgLS1naXQgYS9kb2NzL2RldmVsL2xv Y2tjbnQudHh0IGIvZG9jcy9kZXZlbC9sb2NrY250LnR4dAppbmRleCA3YzA5OWJjNmM4Li4yZDg1 NDYyZmUzIDEwMDY0NAotLS0gYS9kb2NzL2RldmVsL2xvY2tjbnQudHh0CisrKyBiL2RvY3MvZGV2 ZWwvbG9ja2NudC50eHQKQEAgLTk1LDcgKzk1LDcgQEAgbm90IGp1c3QgZnJlZXMsIHRob3VnaCB0 aGVyZSBjb3VsZCBiZSBjYXNlcyB3aGVyZSB0aGlzIGlzIG5vdCBuZWNlc3NhcnkuCiAKIFJlYWRz LCBpbnN0ZWFkLCBjYW4gYmUgZG9uZSB3aXRob3V0IHRha2luZyB0aGUgbXV0ZXgsIGFzIGxvbmcg YXMgdGhlCiByZWFkZXJzIGFuZCB3cml0ZXJzIHVzZSB0aGUgc2FtZSBtYWNyb3MgdGhhdCBhcmUg dXNlZCBmb3IgUkNVLCBmb3IKLWV4YW1wbGUgYXRvbWljX3JjdV9yZWFkLCBhdG9taWNfcmN1X3Nl dCwgUUxJU1RfRk9SRUFDSF9SQ1UsIGV0Yy4gIFRoaXMgaXMKK2V4YW1wbGUgcWF0b21pY19yY3Vf cmVhZCwgcWF0b21pY19yY3Vfc2V0LCBRTElTVF9GT1JFQUNIX1JDVSwgZXRjLiAgVGhpcyBpcwog YmVjYXVzZSB0aGUgcmVhZHMgYXJlIGRvbmUgb3V0c2lkZSBhIGxvY2sgYW5kIGEgc2V0IG9yIFFM SVNUX0lOU0VSVF9IRUFECiBjYW4gaGFwcGVuIGNvbmN1cnJlbnRseSB3aXRoIHRoZSByZWFkLiAg VGhlIFJDVSBBUEkgZW5zdXJlcyB0aGF0IHRoZQogcHJvY2Vzc29yIGFuZCB0aGUgY29tcGlsZXIg c2VlIGFsbCByZXF1aXJlZCBtZW1vcnkgYmFycmllcnMuCkBAIC0xODksNyArMTg5LDcgQEAgcWVt dV9sb2NrY250X2xvY2sgYW5kIHFlbXVfbG9ja2NudF91bmxvY2s6CiAgICAgaWYgKCF4eXopIHsK ICAgICAgICAgbmV3X3h5eiA9IGdfbmV3KFhZWiwgMSk7CiAgICAgICAgIC4uLgotICAgICAgICBh dG9taWNfcmN1X3NldCgmeHl6LCBuZXdfeHl6KTsKKyAgICAgICAgcWF0b21pY19yY3Vfc2V0KCZ4 eXosIG5ld194eXopOwogICAgIH0KICAgICBxZW11X2xvY2tjbnRfdW5sb2NrKCZ4eXpfbG9ja2Nu dCk7CiAKQEAgLTE5OCw3ICsxOTgsNyBAQCBxZW11X2xvY2tjbnRfZGVjOgogCiAgICAgcWVtdV9s b2NrY250X2luYygmeHl6X2xvY2tjbnQpOwogICAgIGlmICh4eXopIHsKLSAgICAgICAgWFlaICpw ID0gYXRvbWljX3JjdV9yZWFkKCZ4eXopOworICAgICAgICBYWVogKnAgPSBxYXRvbWljX3JjdV9y ZWFkKCZ4eXopOwogICAgICAgICAuLi4KICAgICAgICAgLyogQWNjZXNzZXMgY2FuIG5vdyBiZSBk b25lIHRocm91Z2ggInAiLiAgKi8KICAgICB9CkBAIC0yMjIsNyArMjIyLDcgQEAgdGhlIGRlY3Jl bWVudCwgdGhlIGxvY2tpbmcgYW5kIHRoZSBjaGVjayBvbiBjb3VudCBhcyBmb2xsb3dzOgogCiAg ICAgcWVtdV9sb2NrY250X2luYygmeHl6X2xvY2tjbnQpOwogICAgIGlmICh4eXopIHsKLSAgICAg ICAgWFlaICpwID0gYXRvbWljX3JjdV9yZWFkKCZ4eXopOworICAgICAgICBYWVogKnAgPSBxYXRv bWljX3JjdV9yZWFkKCZ4eXopOwogICAgICAgICAuLi4KICAgICAgICAgLyogQWNjZXNzZXMgY2Fu IG5vdyBiZSBkb25lIHRocm91Z2ggInAiLiAgKi8KICAgICB9CmRpZmYgLS1naXQgYS9kb2NzL2Rl dmVsL3JjdS50eHQgYi9kb2NzL2RldmVsL3JjdS50eHQKaW5kZXggMGNlMTViYTE5OC4uY2RmMDAy ZWRkOCAxMDA2NDQKLS0tIGEvZG9jcy9kZXZlbC9yY3UudHh0CisrKyBiL2RvY3MvZGV2ZWwvcmN1 LnR4dApAQCAtMTMwLDEzICsxMzAsMTMgQEAgVGhlIGNvcmUgUkNVIEFQSSBpcyBzbWFsbDoKIAog ICAgICAgICAgICAgZ19mcmVlX3JjdSgmZm9vLCByY3UpOwogCi0gICAgIHR5cGVvZigqcCkgYXRv bWljX3JjdV9yZWFkKHApOworICAgICB0eXBlb2YoKnApIHFhdG9taWNfcmN1X3JlYWQocCk7CiAK LSAgICAgICAgYXRvbWljX3JjdV9yZWFkKCkgaXMgc2ltaWxhciB0byBhdG9taWNfbG9hZF9hY3F1 aXJlKCksIGJ1dCBpdCBtYWtlcworICAgICAgICBxYXRvbWljX3JjdV9yZWFkKCkgaXMgc2ltaWxh ciB0byBxYXRvbWljX2xvYWRfYWNxdWlyZSgpLCBidXQgaXQgbWFrZXMKICAgICAgICAgc29tZSBh c3N1bXB0aW9ucyBvbiB0aGUgY29kZSB0aGF0IGNhbGxzIGl0LiAgVGhpcyBhbGxvd3MgYSBtb3Jl CiAgICAgICAgIG9wdGltaXplZCBpbXBsZW1lbnRhdGlvbi4KIAotICAgICAgICBhdG9taWNfcmN1 X3JlYWQgYXNzdW1lcyB0aGF0IHdoZW5ldmVyIGEgc2luZ2xlIFJDVSBjcml0aWNhbAorICAgICAg ICBxYXRvbWljX3JjdV9yZWFkIGFzc3VtZXMgdGhhdCB3aGVuZXZlciBhIHNpbmdsZSBSQ1UgY3Jp dGljYWwKICAgICAgICAgc2VjdGlvbiByZWFkcyBtdWx0aXBsZSBzaGFyZWQgZGF0YSwgdGhlc2Ug cmVhZHMgYXJlIGVpdGhlcgogICAgICAgICBkYXRhLWRlcGVuZGVudCBvciBuZWVkIG5vIG9yZGVy aW5nLiAgVGhpcyBpcyBhbG1vc3QgYWx3YXlzIHRoZQogICAgICAgICBjYXNlIHdoZW4gdXNpbmcg UkNVLCBiZWNhdXNlIHJlYWQtc2lkZSBjcml0aWNhbCBzZWN0aW9ucyB0eXBpY2FsbHkKQEAgLTE0 NCw3ICsxNDQsNyBAQCBUaGUgY29yZSBSQ1UgQVBJIGlzIHNtYWxsOgogICAgICAgICBldmVyeSB1 cGRhdGUpIHVudGlsIHJlYWNoaW5nIGEgZGF0YSBzdHJ1Y3R1cmUgb2YgaW50ZXJlc3QsCiAgICAg ICAgIGFuZCB0aGVuIHJlYWQgZnJvbSB0aGVyZS4KIAotICAgICAgICBSQ1UgcmVhZC1zaWRlIGNy aXRpY2FsIHNlY3Rpb25zIG11c3QgdXNlIGF0b21pY19yY3VfcmVhZCgpIHRvCisgICAgICAgIFJD VSByZWFkLXNpZGUgY3JpdGljYWwgc2VjdGlvbnMgbXVzdCB1c2UgcWF0b21pY19yY3VfcmVhZCgp IHRvCiAgICAgICAgIHJlYWQgZGF0YSwgdW5sZXNzIGNvbmN1cnJlbnQgd3JpdGVzIGFyZSBwcmV2 ZW50ZWQgYnkgYW5vdGhlcgogICAgICAgICBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtLgogCkBA IC0xNTIsMTggKzE1MiwxOCBAQCBUaGUgY29yZSBSQ1UgQVBJIGlzIHNtYWxsOgogICAgICAgICBk YXRhIHN0cnVjdHVyZSBpbiBhIHNpbmdsZSBkaXJlY3Rpb24sIG9wcG9zaXRlIHRvIHRoZSBkaXJl Y3Rpb24KICAgICAgICAgaW4gd2hpY2ggdGhlIHVwZGF0ZXIgaW5pdGlhbGl6ZXMgaXQuCiAKLSAg ICAgdm9pZCBhdG9taWNfcmN1X3NldChwLCB0eXBlb2YoKnApIHYpOworICAgICB2b2lkIHFhdG9t aWNfcmN1X3NldChwLCB0eXBlb2YoKnApIHYpOwogCi0gICAgICAgIGF0b21pY19yY3Vfc2V0KCkg aXMgc2ltaWxhciB0byBhdG9taWNfc3RvcmVfcmVsZWFzZSgpLCB0aG91Z2ggaXQgYWxzbworICAg ICAgICBxYXRvbWljX3JjdV9zZXQoKSBpcyBzaW1pbGFyIHRvIHFhdG9taWNfc3RvcmVfcmVsZWFz ZSgpLCB0aG91Z2ggaXQgYWxzbwogICAgICAgICBtYWtlcyBhc3N1bXB0aW9ucyBvbiB0aGUgY29k ZSB0aGF0IGNhbGxzIGl0IGluIG9yZGVyIHRvIGFsbG93IGEgbW9yZQogICAgICAgICBvcHRpbWl6 ZWQgaW1wbGVtZW50YXRpb24uCiAKLSAgICAgICAgSW4gcGFydGljdWxhciwgYXRvbWljX3JjdV9z ZXQoKSBzdWZmaWNlcyBmb3Igc3luY2hyb25pemF0aW9uCisgICAgICAgIEluIHBhcnRpY3VsYXIs IHFhdG9taWNfcmN1X3NldCgpIHN1ZmZpY2VzIGZvciBzeW5jaHJvbml6YXRpb24KICAgICAgICAg d2l0aCByZWFkZXJzLCBpZiB0aGUgdXBkYXRlciBuZXZlciBtdXRhdGVzIGEgZmllbGQgd2l0aGlu IGEKICAgICAgICAgZGF0YSBpdGVtIHRoYXQgaXMgYWxyZWFkeSBhY2Nlc3NpYmxlIHRvIHJlYWRl cnMuICBUaGlzIGlzIHRoZQogICAgICAgICBjYXNlIHdoZW4gaW5pdGlhbGl6aW5nIGEgbmV3IGNv cHkgb2YgdGhlIFJDVS1wcm90ZWN0ZWQgZGF0YQogICAgICAgICBzdHJ1Y3R1cmU7IGp1c3QgZW5z dXJlIHRoYXQgaW5pdGlhbGl6YXRpb24gb2YgKnAgaXMgY2FycmllZCBvdXQKLSAgICAgICAgYmVm b3JlIGF0b21pY19yY3Vfc2V0KCkgbWFrZXMgdGhlIGRhdGEgaXRlbSB2aXNpYmxlIHRvIHJlYWRl cnMuCisgICAgICAgIGJlZm9yZSBxYXRvbWljX3JjdV9zZXQoKSBtYWtlcyB0aGUgZGF0YSBpdGVt IHZpc2libGUgdG8gcmVhZGVycy4KICAgICAgICAgSWYgdGhpcyBydWxlIGlzIG9ic2VydmVkLCB3 cml0ZXMgd2lsbCBoYXBwZW4gaW4gdGhlIG9wcG9zaXRlCiAgICAgICAgIG9yZGVyIGFzIHJlYWRz IGluIHRoZSBSQ1UgcmVhZC1zaWRlIGNyaXRpY2FsIHNlY3Rpb25zIChvciBpZgogICAgICAgICB0 aGVyZSBpcyBqdXN0IG9uZSB1cGRhdGUpLCBhbmQgdGhlcmUgd2lsbCBiZSBubyBuZWVkIGZvciBv dGhlcgpAQCAtMjEyLDcgKzIxMiw3IEBAIERJRkZFUkVOQ0VTIFdJVEggTElOVVgKICAgcHJvZ3Jh bW1pbmc7IG5vdCBhbGxvd2luZyB0aGlzIHdvdWxkIHByZXZlbnQgdXBncmFkaW5nIGFuIFJDVSBy ZWFkLXNpZGUKICAgY3JpdGljYWwgc2VjdGlvbiB0byBiZWNvbWUgYW4gdXBkYXRlci4KIAotLSBh dG9taWNfcmN1X3JlYWQgYW5kIGF0b21pY19yY3Vfc2V0IHJlcGxhY2UgcmN1X2RlcmVmZXJlbmNl IGFuZAorLSBxYXRvbWljX3JjdV9yZWFkIGFuZCBxYXRvbWljX3JjdV9zZXQgcmVwbGFjZSByY3Vf ZGVyZWZlcmVuY2UgYW5kCiAgIHJjdV9hc3NpZ25fcG9pbnRlci4gIFRoZXkgdGFrZSBhIF9wb2lu dGVyXyB0byB0aGUgdmFyaWFibGUgYmVpbmcgYWNjZXNzZWQuCiAKIC0gY2FsbF9yY3UgaXMgYSBt YWNybyB0aGF0IGhhcyBhbiBleHRyYSBhcmd1bWVudCAodGhlIG5hbWUgb2YgdGhlIGZpcnN0CkBA IC0yNTcsNyArMjU3LDcgQEAgbWF5IGJlIHVzZWQgYXMgYSByZXN0cmljdGVkIHJlZmVyZW5jZS1j b3VudGluZyBtZWNoYW5pc20uICBGb3IgZXhhbXBsZSwKIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcg Y29kZSBmcmFnbWVudDoKIAogICAgIHJjdV9yZWFkX2xvY2soKTsKLSAgICBwID0gYXRvbWljX3Jj dV9yZWFkKCZmb28pOworICAgIHAgPSBxYXRvbWljX3JjdV9yZWFkKCZmb28pOwogICAgIC8qIGRv IHNvbWV0aGluZyB3aXRoIHAuICovCiAgICAgcmN1X3JlYWRfdW5sb2NrKCk7CiAKQEAgLTI2OCw3 ICsyNjgsNyBAQCBUaGUgd3JpdGUgc2lkZSBsb29rcyBzaW1wbHkgbGlrZSB0aGlzICh3aXRoIGFw cHJvcHJpYXRlIGxvY2tpbmcpOgogCiAgICAgcWVtdV9tdXRleF9sb2NrKCZmb29fbXV0ZXgpOwog ICAgIG9sZCA9IGZvbzsKLSAgICBhdG9taWNfcmN1X3NldCgmZm9vLCBuZXcpOworICAgIHFhdG9t aWNfcmN1X3NldCgmZm9vLCBuZXcpOwogICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZmb29fbXV0ZXgp OwogICAgIHN5bmNocm9uaXplX3JjdSgpOwogICAgIGZyZWUob2xkKTsKQEAgLTI3Nyw3ICsyNzcs NyBAQCBJZiB0aGUgcHJvY2Vzc2luZyBjYW5ub3QgYmUgZG9uZSBwdXJlbHkgd2l0aGluIHRoZSBj cml0aWNhbCBzZWN0aW9uLCBpdAogaXMgcG9zc2libGUgdG8gY29tYmluZSB0aGlzIGlkaW9tIHdp dGggYSAicmVhbCIgcmVmZXJlbmNlIGNvdW50OgogCiAgICAgcmN1X3JlYWRfbG9jaygpOwotICAg IHAgPSBhdG9taWNfcmN1X3JlYWQoJmZvbyk7CisgICAgcCA9IHFhdG9taWNfcmN1X3JlYWQoJmZv byk7CiAgICAgZm9vX3JlZihwKTsKICAgICByY3VfcmVhZF91bmxvY2soKTsKICAgICAvKiBkbyBz b21ldGhpbmcgd2l0aCBwLiAqLwpAQCAtMjg3LDcgKzI4Nyw3IEBAIFRoZSB3cml0ZSBzaWRlIGNh biBiZSBsaWtlIHRoaXM6CiAKICAgICBxZW11X211dGV4X2xvY2soJmZvb19tdXRleCk7CiAgICAg b2xkID0gZm9vOwotICAgIGF0b21pY19yY3Vfc2V0KCZmb28sIG5ldyk7CisgICAgcWF0b21pY19y Y3Vfc2V0KCZmb28sIG5ldyk7CiAgICAgcWVtdV9tdXRleF91bmxvY2soJmZvb19tdXRleCk7CiAg ICAgc3luY2hyb25pemVfcmN1KCk7CiAgICAgZm9vX3VucmVmKG9sZCk7CkBAIC0yOTYsNyArMjk2 LDcgQEAgb3Igd2l0aCBjYWxsX3JjdToKIAogICAgIHFlbXVfbXV0ZXhfbG9jaygmZm9vX211dGV4 KTsKICAgICBvbGQgPSBmb287Ci0gICAgYXRvbWljX3JjdV9zZXQoJmZvbywgbmV3KTsKKyAgICBx YXRvbWljX3JjdV9zZXQoJmZvbywgbmV3KTsKICAgICBxZW11X211dGV4X3VubG9jaygmZm9vX211 dGV4KTsKICAgICBjYWxsX3JjdShmb29fdW5yZWYsIG9sZCwgcmN1KTsKIApAQCAtMzA3LDcgKzMw Nyw3IEBAIGxhc3QgcmVmZXJlbmNlIG1heSBiZSBkcm9wcGVkIG9uIHRoZSByZWFkIHNpZGUuICBI ZW5jZSB5b3UgY2FuCiB1c2UgY2FsbF9yY3UoKSBpbnN0ZWFkOgogCiAgICAgIGZvb191bnJlZihz dHJ1Y3QgZm9vICpwKSB7Ci0gICAgICAgIGlmIChhdG9taWNfZmV0Y2hfZGVjKCZwLT5yZWZjb3Vu dCkgPT0gMSkgeworICAgICAgICBpZiAocWF0b21pY19mZXRjaF9kZWMoJnAtPnJlZmNvdW50KSA9 PSAxKSB7CiAgICAgICAgICAgICBjYWxsX3JjdShmb29fZGVzdHJveSwgcCwgcmN1KTsKICAgICAg ICAgfQogICAgIH0KQEAgLTM3NSw3ICszNzUsNyBAQCBJbnN0ZWFkLCB3ZSBzdG9yZSB0aGUgc2l6 ZSBvZiB0aGUgYXJyYXkgd2l0aCB0aGUgYXJyYXkgaXRzZWxmOgogCiAgICAgcmVhZCBzaWRlOgog ICAgICAgICByY3VfcmVhZF9sb2NrKCk7Ci0gICAgICAgIHN0cnVjdCBhcnIgKmFycmF5ID0gYXRv bWljX3JjdV9yZWFkKCZnbG9iYWxfYXJyYXkpOworICAgICAgICBzdHJ1Y3QgYXJyICphcnJheSA9 IHFhdG9taWNfcmN1X3JlYWQoJmdsb2JhbF9hcnJheSk7CiAgICAgICAgIHggPSBpIDwgYXJyYXkt PnNpemUgPyBhcnJheS0+ZGF0YVtpXSA6IC0xOwogICAgICAgICByY3VfcmVhZF91bmxvY2soKTsK ICAgICAgICAgcmV0dXJuIHg7CkBAIC0zOTIsNyArMzkyLDcgQEAgSW5zdGVhZCwgd2Ugc3RvcmUg dGhlIHNpemUgb2YgdGhlIGFycmF5IHdpdGggdGhlIGFycmF5IGl0c2VsZjoKIAogICAgICAgICAg ICAgLyogUmVtb3ZhbCBwaGFzZS4gICovCiAgICAgICAgICAgICBvbGRfYXJyYXkgPSBnbG9iYWxf YXJyYXk7Ci0gICAgICAgICAgICBhdG9taWNfcmN1X3NldCgmbmV3X2FycmF5LT5kYXRhLCBuZXdf YXJyYXkpOworICAgICAgICAgICAgcWF0b21pY19yY3Vfc2V0KCZuZXdfYXJyYXktPmRhdGEsIG5l d19hcnJheSk7CiAgICAgICAgICAgICBzeW5jaHJvbml6ZV9yY3UoKTsKIAogICAgICAgICAgICAg LyogUmVjbGFtYXRpb24gcGhhc2UuICAqLwpkaWZmIC0tZ2l0IGEvYWNjZWwvdGNnL2F0b21pY190 ZW1wbGF0ZS5oIGIvYWNjZWwvdGNnL2F0b21pY190ZW1wbGF0ZS5oCmluZGV4IDI2OTY5NDg3ZDYu LjBmZjdmOTEzZTEgMTAwNjQ0Ci0tLSBhL2FjY2VsL3RjZy9hdG9taWNfdGVtcGxhdGUuaAorKysg Yi9hY2NlbC90Y2cvYXRvbWljX3RlbXBsYXRlLmgKQEAgLTgzLDcgKzgzLDcgQEAgQUJJX1RZUEUg QVRPTUlDX05BTUUoY21weGNoZykoQ1BVQXJjaFN0YXRlICplbnYsIHRhcmdldF91bG9uZyBhZGRy LAogI2lmIERBVEFfU0laRSA9PSAxNgogICAgIHJldCA9IGF0b21pYzE2X2NtcHhjaGcoaGFkZHIs IGNtcHYsIG5ld3YpOwogI2Vsc2UKLSAgICByZXQgPSBhdG9taWNfY21weGNoZ19fbm9jaGVjayho YWRkciwgY21wdiwgbmV3dik7CisgICAgcmV0ID0gcWF0b21pY19jbXB4Y2hnX19ub2NoZWNrKGhh ZGRyLCBjbXB2LCBuZXd2KTsKICNlbmRpZgogICAgIEFUT01JQ19NTVVfQ0xFQU5VUDsKICAgICBh dG9taWNfdHJhY2Vfcm13X3Bvc3QoZW52LCBhZGRyLCBpbmZvKTsKQEAgLTEzMSw3ICsxMzEsNyBA QCBBQklfVFlQRSBBVE9NSUNfTkFNRSh4Y2hnKShDUFVBcmNoU3RhdGUgKmVudiwgdGFyZ2V0X3Vs b25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFUT01J Q19NTVVfSURYKTsKIAogICAgIGF0b21pY190cmFjZV9ybXdfcHJlKGVudiwgYWRkciwgaW5mbyk7 Ci0gICAgcmV0ID0gYXRvbWljX3hjaGdfX25vY2hlY2soaGFkZHIsIHZhbCk7CisgICAgcmV0ID0g cWF0b21pY194Y2hnX19ub2NoZWNrKGhhZGRyLCB2YWwpOwogICAgIEFUT01JQ19NTVVfQ0xFQU5V UDsKICAgICBhdG9taWNfdHJhY2Vfcm13X3Bvc3QoZW52LCBhZGRyLCBpbmZvKTsKICAgICByZXR1 cm4gcmV0OwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIEFCSV9UWVBFIEFUT01JQ19OQU1FKFgpKENQVUFy Y2hTdGF0ZSAqZW52LCB0YXJnZXRfdWxvbmcgYWRkciwgICAgICAgXAogICAgIHVpbnQxNl90IGlu Zm8gPSB0cmFjZV9tZW1fYnVpbGRfaW5mbyhTSElGVCwgZmFsc2UsIDAsIGZhbHNlLCAgICBcCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFUT01JQ19NTVVfSURYKTsg ICAgICAgICAgIFwKICAgICBhdG9taWNfdHJhY2Vfcm13X3ByZShlbnYsIGFkZHIsIGluZm8pOyAg ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHJldCA9IGF0b21pY18jI1goaGFkZHIsIHZh bCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0ID0gcWF0b21p Y18jI1goaGFkZHIsIHZhbCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICBBVE9NSUNfTU1VX0NMRUFOVVA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgIGF0b21pY190cmFjZV9ybXdfcG9zdChlbnYsIGFkZHIsIGluZm8pOyAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgcmV0dXJuIHJldDsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTE4MiwxMCArMTgyLDEw IEBAIEFCSV9UWVBFIEFUT01JQ19OQU1FKFgpKENQVUFyY2hTdGF0ZSAqZW52LCB0YXJnZXRfdWxv bmcgYWRkciwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBVE9NSUNfTU1VX0lEWCk7ICAgICAgICAgICBcCiAgICAgYXRvbWljX3RyYWNlX3Jtd19wcmUo ZW52LCBhZGRyLCBpbmZvKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBzbXBfbWIo KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAotICAgIGNtcCA9IGF0b21pY19yZWFkX19ub2NoZWNrKGhhZGRyKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgY21wID0gcWF0b21pY19yZWFkX19ub2NoZWNrKGhhZGRyKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBkbyB7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBvbGQg PSBjbXA7IG5ldyA9IEZOKG9sZCwgdmFsKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Ci0gICAgICAgIGNtcCA9IGF0b21pY19jbXB4Y2hnX19ub2NoZWNrKGhhZGRyLCBvbGQsIG5ldyk7 ICAgICAgICAgICAgIFwKKyAgICAgICAgY21wID0gcWF0b21pY19jbXB4Y2hnX19ub2NoZWNrKGhh ZGRyLCBvbGQsIG5ldyk7ICAgICAgICAgICAgXAogICAgIH0gd2hpbGUgKGNtcCAhPSBvbGQpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgQVRPTUlDX01N VV9DTEVBTlVQOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgICBhdG9taWNfdHJhY2Vfcm13X3Bvc3QoZW52LCBhZGRyLCBpbmZvKTsgICAgICAgICAgICAg ICAgICAgICAgICAgXApAQCAtMjMwLDcgKzIzMCw3IEBAIEFCSV9UWVBFIEFUT01JQ19OQU1FKGNt cHhjaGcpKENQVUFyY2hTdGF0ZSAqZW52LCB0YXJnZXRfdWxvbmcgYWRkciwKICNpZiBEQVRBX1NJ WkUgPT0gMTYKICAgICByZXQgPSBhdG9taWMxNl9jbXB4Y2hnKGhhZGRyLCBCU1dBUChjbXB2KSwg QlNXQVAobmV3dikpOwogI2Vsc2UKLSAgICByZXQgPSBhdG9taWNfY21weGNoZ19fbm9jaGVjayho YWRkciwgQlNXQVAoY21wdiksIEJTV0FQKG5ld3YpKTsKKyAgICByZXQgPSBxYXRvbWljX2NtcHhj aGdfX25vY2hlY2soaGFkZHIsIEJTV0FQKGNtcHYpLCBCU1dBUChuZXd2KSk7CiAjZW5kaWYKICAg ICBBVE9NSUNfTU1VX0NMRUFOVVA7CiAgICAgYXRvbWljX3RyYWNlX3Jtd19wb3N0KGVudiwgYWRk ciwgaW5mbyk7CkBAIC0yODAsNyArMjgwLDcgQEAgQUJJX1RZUEUgQVRPTUlDX05BTUUoeGNoZyko Q1BVQXJjaFN0YXRlICplbnYsIHRhcmdldF91bG9uZyBhZGRyLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBVE9NSUNfTU1VX0lEWCk7CiAKICAgICBhdG9taWNfdHJh Y2Vfcm13X3ByZShlbnYsIGFkZHIsIGluZm8pOwotICAgIHJldCA9IGF0b21pY194Y2hnX19ub2No ZWNrKGhhZGRyLCBCU1dBUCh2YWwpKTsKKyAgICByZXQgPSBxYXRvbWljX3hjaGdfX25vY2hlY2so aGFkZHIsIEJTV0FQKHZhbCkpOwogICAgIEFUT01JQ19NTVVfQ0xFQU5VUDsKICAgICBhdG9taWNf dHJhY2Vfcm13X3Bvc3QoZW52LCBhZGRyLCBpbmZvKTsKICAgICByZXR1cm4gQlNXQVAocmV0KTsK QEAgLTI5Niw3ICsyOTYsNyBAQCBBQklfVFlQRSBBVE9NSUNfTkFNRShYKShDUFVBcmNoU3RhdGUg KmVudiwgdGFyZ2V0X3Vsb25nIGFkZHIsICAgICAgIFwKICAgICB1aW50MTZfdCBpbmZvID0gdHJh Y2VfbWVtX2J1aWxkX2luZm8oU0hJRlQsIGZhbHNlLCBNT19CU1dBUCwgICAgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgQVRPTUlDX01NVV9JRFgpOyAg ICBcCiAgICAgYXRvbWljX3RyYWNlX3Jtd19wcmUoZW52LCBhZGRyLCBpbmZvKTsgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKLSAgICByZXQgPSBhdG9taWNfIyNYKGhhZGRyLCBCU1dBUCh2YWwp KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldCA9IHFhdG9taWNfIyNYKGhh ZGRyLCBCU1dBUCh2YWwpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgQVRPTUlD X01NVV9DTEVBTlVQOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgICBhdG9taWNfdHJhY2Vfcm13X3Bvc3QoZW52LCBhZGRyLCBpbmZvKTsgICAgICAgICAg ICAgICAgICAgICAgICAgXAogICAgIHJldHVybiBCU1dBUChyZXQpOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0zMjksMTAgKzMyOSwxMCBAQCBBQklf VFlQRSBBVE9NSUNfTkFNRShYKShDUFVBcmNoU3RhdGUgKmVudiwgdGFyZ2V0X3Vsb25nIGFkZHIs ICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2Us IEFUT01JQ19NTVVfSURYKTsgICAgXAogICAgIGF0b21pY190cmFjZV9ybXdfcHJlKGVudiwgYWRk ciwgaW5mbyk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgc21wX21iKCk7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBs ZG4gPSBhdG9taWNfcmVhZF9fbm9jaGVjayhoYWRkcik7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgIGxkbiA9IHFhdG9taWNfcmVhZF9fbm9jaGVjayhoYWRkcik7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCiAgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgbGRvID0gbGRuOyBv bGQgPSBCU1dBUChsZG8pOyBuZXcgPSBGTihvbGQsIHZhbCk7ICAgICAgICAgICAgXAotICAgICAg ICBsZG4gPSBhdG9taWNfY21weGNoZ19fbm9jaGVjayhoYWRkciwgbGRvLCBCU1dBUChuZXcpKTsg ICAgICBcCisgICAgICAgIGxkbiA9IHFhdG9taWNfY21weGNoZ19fbm9jaGVjayhoYWRkciwgbGRv LCBCU1dBUChuZXcpKTsgICAgIFwKICAgICB9IHdoaWxlIChsZG8gIT0gbGRuKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIEFUT01JQ19NTVVfQ0xFQU5V UDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgYXRv bWljX3RyYWNlX3Jtd19wb3N0KGVudiwgYWRkciwgaW5mbyk7ICAgICAgICAgICAgICAgICAgICAg ICAgIFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYmxvY2svYWlvLXdhaXQuaCBiL2luY2x1ZGUvYmxv Y2svYWlvLXdhaXQuaAppbmRleCA3MTZkMjYzOWRmLi5iMzllZWZiMzhkIDEwMDY0NAotLS0gYS9p bmNsdWRlL2Jsb2NrL2Fpby13YWl0LmgKKysrIGIvaW5jbHVkZS9ibG9jay9haW8td2FpdC5oCkBA IC04MCw3ICs4MCw3IEBAIGV4dGVybiBBaW9XYWl0IGdsb2JhbF9haW9fd2FpdDsKICAgICBBaW9X YWl0ICp3YWl0XyA9ICZnbG9iYWxfYWlvX3dhaXQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgICAgQWlvQ29udGV4dCAqY3R4XyA9IChjdHgpOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAogICAgIC8qIEluY3JlbWVudCB3YWl0Xy0+bnVtX3dhaXRlcnMgYmVm b3JlIGV2YWx1YXRpbmcgY29uZC4gKi8gICAgIFwKLSAgICBhdG9taWNfaW5jKCZ3YWl0Xy0+bnVt X3dhaXRlcnMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcWF0b21pY19p bmMoJndhaXRfLT5udW1fd2FpdGVycyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgIGlmIChjdHhfICYmIGluX2Fpb19jb250ZXh0X2hvbWVfdGhyZWFkKGN0eF8pKSB7ICAgICAg ICAgICAgICAgIFwKICAgICAgICAgd2hpbGUgKChjb25kKSkgeyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBhaW9fcG9sbChjdHhfLCB0cnVl KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTAwLDcgKzEwMCw3IEBA IGV4dGVybiBBaW9XYWl0IGdsb2JhbF9haW9fd2FpdDsKICAgICAgICAgICAgIHdhaXRlZF8gPSB0 cnVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIH0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLSAgICBhdG9taWNfZGVjKCZ3YWl0Xy0+bnVtX3dhaXRlcnMpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcWF0b21pY19kZWMoJndhaXRfLT5udW1f d2FpdGVycyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHdhaXRlZF87IH0p CiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ibG9jay9haW8uaCBiL2luY2x1ZGUvYmxvY2sv YWlvLmgKaW5kZXggYjJmNzAzZmEzZi4uZWM4YzVhZjY0MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9i bG9jay9haW8uaAorKysgYi9pbmNsdWRlL2Jsb2NrL2Fpby5oCkBAIC01OTUsNyArNTk1LDcgQEAg aW50NjRfdCBhaW9fY29tcHV0ZV90aW1lb3V0KEFpb0NvbnRleHQgKmN0eCk7CiAgKi8KIHN0YXRp YyBpbmxpbmUgdm9pZCBhaW9fZGlzYWJsZV9leHRlcm5hbChBaW9Db250ZXh0ICpjdHgpCiB7Ci0g ICAgYXRvbWljX2luYygmY3R4LT5leHRlcm5hbF9kaXNhYmxlX2NudCk7CisgICAgcWF0b21pY19p bmMoJmN0eC0+ZXh0ZXJuYWxfZGlzYWJsZV9jbnQpOwogfQogCiAvKioKQEAgLTYwOCw3ICs2MDgs NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWlvX2VuYWJsZV9leHRlcm5hbChBaW9Db250ZXh0ICpj dHgpCiB7CiAgICAgaW50IG9sZDsKIAotICAgIG9sZCA9IGF0b21pY19mZXRjaF9kZWMoJmN0eC0+ ZXh0ZXJuYWxfZGlzYWJsZV9jbnQpOworICAgIG9sZCA9IHFhdG9taWNfZmV0Y2hfZGVjKCZjdHgt PmV4dGVybmFsX2Rpc2FibGVfY250KTsKICAgICBhc3NlcnQob2xkID4gMCk7CiAgICAgaWYgKG9s ZCA9PSAxKSB7CiAgICAgICAgIC8qIEtpY2sgZXZlbnQgbG9vcCBzbyBpdCByZS1hcm1zIGZpbGUg ZGVzY3JpcHRvcnMgKi8KQEAgLTYyNCw3ICs2MjQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWlv X2VuYWJsZV9leHRlcm5hbChBaW9Db250ZXh0ICpjdHgpCiAgKi8KIHN0YXRpYyBpbmxpbmUgYm9v bCBhaW9fZXh0ZXJuYWxfZGlzYWJsZWQoQWlvQ29udGV4dCAqY3R4KQogewotICAgIHJldHVybiBh dG9taWNfcmVhZCgmY3R4LT5leHRlcm5hbF9kaXNhYmxlX2NudCk7CisgICAgcmV0dXJuIHFhdG9t aWNfcmVhZCgmY3R4LT5leHRlcm5hbF9kaXNhYmxlX2NudCk7CiB9CiAKIC8qKgpAQCAtNjM3LDcg KzYzNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhaW9fZXh0ZXJuYWxfZGlzYWJsZWQoQWlvQ29u dGV4dCAqY3R4KQogICovCiBzdGF0aWMgaW5saW5lIGJvb2wgYWlvX25vZGVfY2hlY2soQWlvQ29u dGV4dCAqY3R4LCBib29sIGlzX2V4dGVybmFsKQogewotICAgIHJldHVybiAhaXNfZXh0ZXJuYWwg fHwgIWF0b21pY19yZWFkKCZjdHgtPmV4dGVybmFsX2Rpc2FibGVfY250KTsKKyAgICByZXR1cm4g IWlzX2V4dGVybmFsIHx8ICFxYXRvbWljX3JlYWQoJmN0eC0+ZXh0ZXJuYWxfZGlzYWJsZV9jbnQp OwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZXhlYy9jcHVfbGRzdC5oIGIvaW5jbHVk ZS9leGVjL2NwdV9sZHN0LmgKaW5kZXggYzE0YTQ4ZjY1ZS4uMzA2MDVlZGFiOSAxMDA2NDQKLS0t IGEvaW5jbHVkZS9leGVjL2NwdV9sZHN0LmgKKysrIGIvaW5jbHVkZS9leGVjL2NwdV9sZHN0LmgK QEAgLTI5OSw3ICsyOTksNyBAQCBzdGF0aWMgaW5saW5lIHRhcmdldF91bG9uZyB0bGJfYWRkcl93 cml0ZShjb25zdCBDUFVUTEJFbnRyeSAqZW50cnkpCiAjaWYgVENHX09WRVJTSVpFRF9HVUVTVAog ICAgIHJldHVybiBlbnRyeS0+YWRkcl93cml0ZTsKICNlbHNlCi0gICAgcmV0dXJuIGF0b21pY19y ZWFkKCZlbnRyeS0+YWRkcl93cml0ZSk7CisgICAgcmV0dXJuIHFhdG9taWNfcmVhZCgmZW50cnkt PmFkZHJfd3JpdGUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZXhlYy9leGVj LWFsbC5oIGIvaW5jbHVkZS9leGVjL2V4ZWMtYWxsLmgKaW5kZXggM2NmODgyNzJkZi4uMWZlMjhk NTc0ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9leGVjL2V4ZWMtYWxsLmgKKysrIGIvaW5jbHVkZS9l eGVjL2V4ZWMtYWxsLmgKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBRRU1VX05PUkVUVVJOIGNwdV9s b29wX2V4aXRfYXRvbWljKENQVVN0YXRlICpjcHUsIHVpbnRwdHJfdCBwYyk7CiAgKi8KIHN0YXRp YyBpbmxpbmUgYm9vbCBjcHVfbG9vcF9leGl0X3JlcXVlc3RlZChDUFVTdGF0ZSAqY3B1KQogewot ICAgIHJldHVybiAoaW50MzJfdClhdG9taWNfcmVhZCgmY3B1X25lZyhjcHUpLT5pY291bnRfZGVj ci51MzIpIDwgMDsKKyAgICByZXR1cm4gKGludDMyX3QpcWF0b21pY19yZWFkKCZjcHVfbmVnKGNw dSktPmljb3VudF9kZWNyLnUzMikgPCAwOwogfQogCiAjaWYgIWRlZmluZWQoQ09ORklHX1VTRVJf T05MWSkKQEAgLTQ4NywxMCArNDg3LDEwIEBAIHN0cnVjdCBUcmFuc2xhdGlvbkJsb2NrIHsKIAog ZXh0ZXJuIGJvb2wgcGFyYWxsZWxfY3B1czsKIAotLyogSGlkZSB0aGUgYXRvbWljX3JlYWQgdG8g bWFrZSBjb2RlIGEgbGl0dGxlIGVhc2llciBvbiB0aGUgZXllcyAqLworLyogSGlkZSB0aGUgcWF0 b21pY19yZWFkIHRvIG1ha2UgY29kZSBhIGxpdHRsZSBlYXNpZXIgb24gdGhlIGV5ZXMgKi8KIHN0 YXRpYyBpbmxpbmUgdWludDMyX3QgdGJfY2ZsYWdzKGNvbnN0IFRyYW5zbGF0aW9uQmxvY2sgKnRi KQogewotICAgIHJldHVybiBhdG9taWNfcmVhZCgmdGItPmNmbGFncyk7CisgICAgcmV0dXJuIHFh dG9taWNfcmVhZCgmdGItPmNmbGFncyk7CiB9CiAKIC8qIGN1cnJlbnQgY2ZsYWdzIGZvciBoYXNo aW5nL2NvbXBhcmlzb24gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZXhlYy9sb2cuaCBiL2luY2x1 ZGUvZXhlYy9sb2cuaAppbmRleCAzZWQ3OTdjMWM4Li44Njg3MWY0MDNhIDEwMDY0NAotLS0gYS9p bmNsdWRlL2V4ZWMvbG9nLmgKKysrIGIvaW5jbHVkZS9leGVjL2xvZy5oCkBAIC0xOSw3ICsxOSw3 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2dfY3B1X3N0YXRlKENQVVN0YXRlICpjcHUsIGludCBm bGFncykKIAogICAgIGlmIChxZW11X2xvZ19lbmFibGVkKCkpIHsKICAgICAgICAgcmN1X3JlYWRf bG9jaygpOwotICAgICAgICBsb2dmaWxlID0gYXRvbWljX3JjdV9yZWFkKCZxZW11X2xvZ2ZpbGUp OworICAgICAgICBsb2dmaWxlID0gcWF0b21pY19yY3VfcmVhZCgmcWVtdV9sb2dmaWxlKTsKICAg ICAgICAgaWYgKGxvZ2ZpbGUpIHsKICAgICAgICAgICAgIGNwdV9kdW1wX3N0YXRlKGNwdSwgbG9n ZmlsZS0+ZmQsIGZsYWdzKTsKICAgICAgICAgfQpAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgbG9nX3RhcmdldF9kaXNhcyhDUFVTdGF0ZSAqY3B1LCB0YXJnZXRfdWxvbmcgc3Rh cnQsCiB7CiAgICAgUWVtdUxvZ0ZpbGUgKmxvZ2ZpbGU7CiAgICAgcmN1X3JlYWRfbG9jaygpOwot ICAgIGxvZ2ZpbGUgPSBhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAgbG9nZmls ZSA9IHFhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CiAgICAgaWYgKGxvZ2ZpbGUpIHsK ICAgICAgICAgdGFyZ2V0X2Rpc2FzKGxvZ2ZpbGUtPmZkLCBjcHUsIHN0YXJ0LCBsZW4pOwogICAg IH0KQEAgLTYwLDcgKzYwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGxvZ19kaXNhcyh2b2lkICpj b2RlLCB1bnNpZ25lZCBsb25nIHNpemUsIGNvbnN0IGNoYXIgKm5vdGUpCiB7CiAgICAgUWVtdUxv Z0ZpbGUgKmxvZ2ZpbGU7CiAgICAgcmN1X3JlYWRfbG9jaygpOwotICAgIGxvZ2ZpbGUgPSBhdG9t aWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAgbG9nZmlsZSA9IHFhdG9taWNfcmN1X3Jl YWQoJnFlbXVfbG9nZmlsZSk7CiAgICAgaWYgKGxvZ2ZpbGUpIHsKICAgICAgICAgZGlzYXMobG9n ZmlsZS0+ZmQsIGNvZGUsIHNpemUsIG5vdGUpOwogICAgIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZXhlYy9tZW1vcnkuaCBiL2luY2x1ZGUvZXhlYy9tZW1vcnkuaAppbmRleCBmMWJiMmE3ZGY1Li4w NmI4NWUzYTczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2V4ZWMvbWVtb3J5LmgKKysrIGIvaW5jbHVk ZS9leGVjL21lbW9yeS5oCkBAIC02ODUsNyArNjg1LDcgQEAgc3RydWN0IEZsYXRWaWV3IHsKIAog c3RhdGljIGlubGluZSBGbGF0VmlldyAqYWRkcmVzc19zcGFjZV90b19mbGF0dmlldyhBZGRyZXNz U3BhY2UgKmFzKQogewotICAgIHJldHVybiBhdG9taWNfcmN1X3JlYWQoJmFzLT5jdXJyZW50X21h cCk7CisgICAgcmV0dXJuIHFhdG9taWNfcmN1X3JlYWQoJmFzLT5jdXJyZW50X21hcCk7CiB9CiAK IApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9leGVjL3JhbV9hZGRyLmggYi9pbmNsdWRlL2V4ZWMvcmFt X2FkZHIuaAppbmRleCAzZWY3MjlhMjNjLi5jNmQyZWYxZDA3IDEwMDY0NAotLS0gYS9pbmNsdWRl L2V4ZWMvcmFtX2FkZHIuaAorKysgYi9pbmNsdWRlL2V4ZWMvcmFtX2FkZHIuaApAQCAtMTY0LDcg KzE2NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjcHVfcGh5c2ljYWxfbWVtb3J5X2dldF9kaXJ0 eShyYW1fYWRkcl90IHN0YXJ0LAogICAgIHBhZ2UgPSBzdGFydCA+PiBUQVJHRVRfUEFHRV9CSVRT OwogCiAgICAgV0lUSF9SQ1VfUkVBRF9MT0NLX0dVQVJEKCkgewotICAgICAgICBibG9ja3MgPSBh dG9taWNfcmN1X3JlYWQoJnJhbV9saXN0LmRpcnR5X21lbW9yeVtjbGllbnRdKTsKKyAgICAgICAg YmxvY2tzID0gcWF0b21pY19yY3VfcmVhZCgmcmFtX2xpc3QuZGlydHlfbWVtb3J5W2NsaWVudF0p OwogCiAgICAgICAgIGlkeCA9IHBhZ2UgLyBESVJUWV9NRU1PUllfQkxPQ0tfU0laRTsKICAgICAg ICAgb2Zmc2V0ID0gcGFnZSAlIERJUlRZX01FTU9SWV9CTE9DS19TSVpFOwpAQCAtMjA1LDcgKzIw NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjcHVfcGh5c2ljYWxfbWVtb3J5X2FsbF9kaXJ0eShy YW1fYWRkcl90IHN0YXJ0LAogCiAgICAgUkNVX1JFQURfTE9DS19HVUFSRCgpOwogCi0gICAgYmxv Y2tzID0gYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5kaXJ0eV9tZW1vcnlbY2xpZW50XSk7Cisg ICAgYmxvY2tzID0gcWF0b21pY19yY3VfcmVhZCgmcmFtX2xpc3QuZGlydHlfbWVtb3J5W2NsaWVu dF0pOwogCiAgICAgaWR4ID0gcGFnZSAvIERJUlRZX01FTU9SWV9CTE9DS19TSVpFOwogICAgIG9m ZnNldCA9IHBhZ2UgJSBESVJUWV9NRU1PUllfQkxPQ0tfU0laRTsKQEAgLTI3OCw3ICsyNzgsNyBA QCBzdGF0aWMgaW5saW5lIHZvaWQgY3B1X3BoeXNpY2FsX21lbW9yeV9zZXRfZGlydHlfZmxhZyhy YW1fYWRkcl90IGFkZHIsCiAKICAgICBSQ1VfUkVBRF9MT0NLX0dVQVJEKCk7CiAKLSAgICBibG9j a3MgPSBhdG9taWNfcmN1X3JlYWQoJnJhbV9saXN0LmRpcnR5X21lbW9yeVtjbGllbnRdKTsKKyAg ICBibG9ja3MgPSBxYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5kaXJ0eV9tZW1vcnlbY2xpZW50 XSk7CiAKICAgICBzZXRfYml0X2F0b21pYyhvZmZzZXQsIGJsb2Nrcy0+YmxvY2tzW2lkeF0pOwog fQpAQCAtMzAxLDcgKzMwMSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjcHVfcGh5c2ljYWxfbWVt b3J5X3NldF9kaXJ0eV9yYW5nZShyYW1fYWRkcl90IHN0YXJ0LAogCiAgICAgV0lUSF9SQ1VfUkVB RF9MT0NLX0dVQVJEKCkgewogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgRElSVFlfTUVNT1JZX05V TTsgaSsrKSB7Ci0gICAgICAgICAgICBibG9ja3NbaV0gPSBhdG9taWNfcmN1X3JlYWQoJnJhbV9s aXN0LmRpcnR5X21lbW9yeVtpXSk7CisgICAgICAgICAgICBibG9ja3NbaV0gPSBxYXRvbWljX3Jj dV9yZWFkKCZyYW1fbGlzdC5kaXJ0eV9tZW1vcnlbaV0pOwogICAgICAgICB9CiAKICAgICAgICAg aWR4ID0gcGFnZSAvIERJUlRZX01FTU9SWV9CTE9DS19TSVpFOwpAQCAtMzYxLDIzICszNjEsMjUg QEAgc3RhdGljIGlubGluZSB2b2lkIGNwdV9waHlzaWNhbF9tZW1vcnlfc2V0X2RpcnR5X2xlYml0 bWFwKHVuc2lnbmVkIGxvbmcgKmJpdG1hcCwKIAogICAgICAgICBXSVRIX1JDVV9SRUFEX0xPQ0tf R1VBUkQoKSB7CiAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgRElSVFlfTUVNT1JZX05VTTsg aSsrKSB7Ci0gICAgICAgICAgICAgICAgYmxvY2tzW2ldID0gYXRvbWljX3JjdV9yZWFkKCZyYW1f bGlzdC5kaXJ0eV9tZW1vcnlbaV0pLT5ibG9ja3M7CisgICAgICAgICAgICAgICAgYmxvY2tzW2ld ID0KKyAgICAgICAgICAgICAgICAgICAgcWF0b21pY19yY3VfcmVhZCgmcmFtX2xpc3QuZGlydHlf bWVtb3J5W2ldKS0+YmxvY2tzOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBmb3IgKGsg PSAwOyBrIDwgbnI7IGsrKykgewogICAgICAgICAgICAgICAgIGlmIChiaXRtYXBba10pIHsKICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB0ZW1wID0gbGV1bF90b19jcHUoYml0bWFw W2tdKTsKIAotICAgICAgICAgICAgICAgICAgICBhdG9taWNfb3IoJmJsb2Nrc1tESVJUWV9NRU1P UllfVkdBXVtpZHhdW29mZnNldF0sIHRlbXApOworICAgICAgICAgICAgICAgICAgICBxYXRvbWlj X29yKCZibG9ja3NbRElSVFlfTUVNT1JZX1ZHQV1baWR4XVtvZmZzZXRdLCB0ZW1wKTsKIAogICAg ICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsX2RpcnR5X2xvZykgewotICAgICAgICAgICAgICAg ICAgICAgICAgYXRvbWljX29yKCZibG9ja3NbRElSVFlfTUVNT1JZX01JR1JBVElPTl1baWR4XVtv ZmZzZXRdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXApOworICAgICAg ICAgICAgICAgICAgICAgICAgcWF0b21pY19vcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmJsb2Nrc1tESVJUWV9NRU1PUllfTUlHUkFUSU9OXVtpZHhdW29mZnNldF0sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXApOwogICAgICAgICAgICAgICAgICAgICB9 CiAKICAgICAgICAgICAgICAgICAgICAgaWYgKHRjZ19lbmFibGVkKCkpIHsKLSAgICAgICAgICAg ICAgICAgICAgICAgIGF0b21pY19vcigmYmxvY2tzW0RJUlRZX01FTU9SWV9DT0RFXVtpZHhdW29m ZnNldF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcCk7CisgICAgICAg ICAgICAgICAgICAgICAgICBxYXRvbWljX29yKCZibG9ja3NbRElSVFlfTUVNT1JZX0NPREVdW2lk eF1bb2Zmc2V0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcCk7CiAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAKQEAgLTQ2MSwxMiArNDYz LDEyIEBAIHVpbnQ2NF90IGNwdV9waHlzaWNhbF9tZW1vcnlfc3luY19kaXJ0eV9iaXRtYXAoUkFN QmxvY2sgKnJiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJUlRZ X01FTU9SWV9CTE9DS19TSVpFKTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBwYWdlID0gQklUX1dP UkQoc3RhcnQgPj4gVEFSR0VUX1BBR0VfQklUUyk7CiAKLSAgICAgICAgc3JjID0gYXRvbWljX3Jj dV9yZWFkKAorICAgICAgICBzcmMgPSBxYXRvbWljX3JjdV9yZWFkKAogICAgICAgICAgICAgICAg ICZyYW1fbGlzdC5kaXJ0eV9tZW1vcnlbRElSVFlfTUVNT1JZX01JR1JBVElPTl0pLT5ibG9ja3M7 CiAKICAgICAgICAgZm9yIChrID0gcGFnZTsgayA8IHBhZ2UgKyBucjsgaysrKSB7CiAgICAgICAg ICAgICBpZiAoc3JjW2lkeF1bb2Zmc2V0XSkgewotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgYml0cyA9IGF0b21pY194Y2hnKCZzcmNbaWR4XVtvZmZzZXRdLCAwKTsKKyAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIGJpdHMgPSBxYXRvbWljX3hjaGcoJnNyY1tpZHhdW29mZnNldF0s IDApOwogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbmV3X2RpcnR5OwogICAgICAgICAg ICAgICAgIG5ld19kaXJ0eSA9IH5kZXN0W2tdOwogICAgICAgICAgICAgICAgIGRlc3Rba10gfD0g Yml0czsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZXhlYy9yYW1saXN0LmggYi9pbmNsdWRlL2V4ZWMv cmFtbGlzdC5oCmluZGV4IGJjNGZhYTFiMDAuLjI2NzA0YWEzYjAgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvZXhlYy9yYW1saXN0LmgKKysrIGIvaW5jbHVkZS9leGVjL3JhbWxpc3QuaApAQCAtMTksNyAr MTksNyBAQCB0eXBlZGVmIHN0cnVjdCBSQU1CbG9ja05vdGlmaWVyIFJBTUJsb2NrTm90aWZpZXI7 CiAgKiAgIHJjdV9yZWFkX2xvY2soKTsKICAqCiAgKiAgIERpcnR5TWVtb3J5QmxvY2tzICpibG9j a3MgPQotICogICAgICAgYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5kaXJ0eV9tZW1vcnlbRElS VFlfTUVNT1JZX01JR1JBVElPTl0pOworICogICAgICAgcWF0b21pY19yY3VfcmVhZCgmcmFtX2xp c3QuZGlydHlfbWVtb3J5W0RJUlRZX01FTU9SWV9NSUdSQVRJT05dKTsKICAqCiAgKiAgIHJhbV9h ZGRyX3QgaWR4ID0gKGFkZHIgPj4gVEFSR0VUX1BBR0VfQklUUykgLyBESVJUWV9NRU1PUllfQkxP Q0tfU0laRTsKICAqICAgdW5zaWduZWQgbG9uZyAqYmxvY2sgPSBibG9ja3MuYmxvY2tzW2lkeF07 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2V4ZWMvdGItbG9va3VwLmggYi9pbmNsdWRlL2V4ZWMvdGIt bG9va3VwLmgKaW5kZXggMjY5MjFiNmRhZi4uOWNmNDc1YmIwMyAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9leGVjL3RiLWxvb2t1cC5oCisrKyBiL2luY2x1ZGUvZXhlYy90Yi1sb29rdXAuaApAQCAtMjcs NyArMjcsNyBAQCB0Yl9sb29rdXBfX2NwdV9zdGF0ZShDUFVTdGF0ZSAqY3B1LCB0YXJnZXRfdWxv bmcgKnBjLCB0YXJnZXRfdWxvbmcgKmNzX2Jhc2UsCiAKICAgICBjcHVfZ2V0X3RiX2NwdV9zdGF0 ZShlbnYsIHBjLCBjc19iYXNlLCBmbGFncyk7CiAgICAgaGFzaCA9IHRiX2ptcF9jYWNoZV9oYXNo X2Z1bmMoKnBjKTsKLSAgICB0YiA9IGF0b21pY19yY3VfcmVhZCgmY3B1LT50Yl9qbXBfY2FjaGVb aGFzaF0pOworICAgIHRiID0gcWF0b21pY19yY3VfcmVhZCgmY3B1LT50Yl9qbXBfY2FjaGVbaGFz aF0pOwogCiAgICAgY2ZfbWFzayAmPSB+Q0ZfQ0xVU1RFUl9NQVNLOwogICAgIGNmX21hc2sgfD0g Y3B1LT5jbHVzdGVyX2luZGV4IDw8IENGX0NMVVNURVJfU0hJRlQ7CkBAIC00NCw3ICs0NCw3IEBA IHRiX2xvb2t1cF9fY3B1X3N0YXRlKENQVVN0YXRlICpjcHUsIHRhcmdldF91bG9uZyAqcGMsIHRh cmdldF91bG9uZyAqY3NfYmFzZSwKICAgICBpZiAodGIgPT0gTlVMTCkgewogICAgICAgICByZXR1 cm4gTlVMTDsKICAgICB9Ci0gICAgYXRvbWljX3NldCgmY3B1LT50Yl9qbXBfY2FjaGVbaGFzaF0s IHRiKTsKKyAgICBxYXRvbWljX3NldCgmY3B1LT50Yl9qbXBfY2FjaGVbaGFzaF0sIHRiKTsKICAg ICByZXR1cm4gdGI7CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvY29yZS9jcHUuaCBiL2lu Y2x1ZGUvaHcvY29yZS9jcHUuaAppbmRleCA5OWRjMzNmZmViLi42YzM0Nzk4YzhiIDEwMDY0NAot LS0gYS9pbmNsdWRlL2h3L2NvcmUvY3B1LmgKKysrIGIvaW5jbHVkZS9ody9jb3JlL2NwdS5oCkBA IC00ODIsNyArNDgyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGNwdV90Yl9qbXBfY2FjaGVfY2xl YXIoQ1BVU3RhdGUgKmNwdSkKICAgICB1bnNpZ25lZCBpbnQgaTsKIAogICAgIGZvciAoaSA9IDA7 IGkgPCBUQl9KTVBfQ0FDSEVfU0laRTsgaSsrKSB7Ci0gICAgICAgIGF0b21pY19zZXQoJmNwdS0+ dGJfam1wX2NhY2hlW2ldLCBOVUxMKTsKKyAgICAgICAgcWF0b21pY19zZXQoJmNwdS0+dGJfam1w X2NhY2hlW2ldLCBOVUxMKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcWVtdS9h dG9taWMxMjguaCBiL2luY2x1ZGUvcWVtdS9hdG9taWMxMjguaAppbmRleCA2YjM0NDg0ZTE1Li5h ZDJiY2Y0NWI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL3FlbXUvYXRvbWljMTI4LmgKKysrIGIvaW5j bHVkZS9xZW11L2F0b21pYzEyOC5oCkBAIC00NCw3ICs0NCw3IEBACiAjaWYgZGVmaW5lZChDT05G SUdfQVRPTUlDMTI4KQogc3RhdGljIGlubGluZSBJbnQxMjggYXRvbWljMTZfY21weGNoZyhJbnQx MjggKnB0ciwgSW50MTI4IGNtcCwgSW50MTI4IG5ldykKIHsKLSAgICByZXR1cm4gYXRvbWljX2Nt cHhjaGdfX25vY2hlY2socHRyLCBjbXAsIG5ldyk7CisgICAgcmV0dXJuIHFhdG9taWNfY21weGNo Z19fbm9jaGVjayhwdHIsIGNtcCwgbmV3KTsKIH0KICMgZGVmaW5lIEhBVkVfQ01QWENIRzEyOCAx CiAjZWxpZiBkZWZpbmVkKENPTkZJR19DTVBYQ0hHMTI4KQpAQCAtODksMTIgKzg5LDEyIEBAIElu dDEyOCBRRU1VX0VSUk9SKCJ1bnN1cHBvcnRlZCBhdG9taWMiKQogI2lmIGRlZmluZWQoQ09ORklH X0FUT01JQzEyOCkKIHN0YXRpYyBpbmxpbmUgSW50MTI4IGF0b21pYzE2X3JlYWQoSW50MTI4ICpw dHIpCiB7Ci0gICAgcmV0dXJuIGF0b21pY19yZWFkX19ub2NoZWNrKHB0cik7CisgICAgcmV0dXJu IHFhdG9taWNfcmVhZF9fbm9jaGVjayhwdHIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXRv bWljMTZfc2V0KEludDEyOCAqcHRyLCBJbnQxMjggdmFsKQogewotICAgIGF0b21pY19zZXRfX25v Y2hlY2socHRyLCB2YWwpOworICAgIHFhdG9taWNfc2V0X19ub2NoZWNrKHB0ciwgdmFsKTsKIH0K IAogIyBkZWZpbmUgSEFWRV9BVE9NSUMxMjggMQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9xZW11L2Jp dG9wcy5oIGIvaW5jbHVkZS9xZW11L2JpdG9wcy5oCmluZGV4IGY1NWNlOGIzMjAuLjNhY2JmMzM4 NGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcWVtdS9iaXRvcHMuaAorKysgYi9pbmNsdWRlL3FlbXUv Yml0b3BzLmgKQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldF9iaXRfYXRv bWljKGxvbmcgbnIsIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiAgICAgdW5zaWduZWQgbG9uZyBtYXNr ID0gQklUX01BU0sobnIpOwogICAgIHVuc2lnbmVkIGxvbmcgKnAgPSBhZGRyICsgQklUX1dPUkQo bnIpOwogCi0gICAgYXRvbWljX29yKHAsIG1hc2spOworICAgIHFhdG9taWNfb3IocCwgbWFzayk7 CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9xZW11L2Nvcm91dGluZS5oIGIvaW5jbHVk ZS9xZW11L2Nvcm91dGluZS5oCmluZGV4IGRmZDI2MWM1YjEuLjg0ZWFiNmUzYmYgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvcWVtdS9jb3JvdXRpbmUuaAorKysgYi9pbmNsdWRlL3FlbXUvY29yb3V0aW5l LmgKQEAgLTE3OSw3ICsxNzksNyBAQCBzdGF0aWMgaW5saW5lIGNvcm91dGluZV9mbiB2b2lkIHFl bXVfY29fbXV0ZXhfYXNzZXJ0X2xvY2tlZChDb011dGV4ICptdXRleCkKICAgICAgKiBiZWNhdXNl IHRoZSBjb25kaXRpb24gd2lsbCBiZSBmYWxzZSBubyBtYXR0ZXIgd2hldGhlciB3ZSByZWFkIE5V TEwgb3IKICAgICAgKiB0aGUgcG9pbnRlciBmb3IgYW55IG90aGVyIGNvcm91dGluZS4KICAgICAg Ki8KLSAgICBhc3NlcnQoYXRvbWljX3JlYWQoJm11dGV4LT5sb2NrZWQpICYmCisgICAgYXNzZXJ0 KHFhdG9taWNfcmVhZCgmbXV0ZXgtPmxvY2tlZCkgJiYKICAgICAgICAgICAgbXV0ZXgtPmhvbGRl ciA9PSBxZW11X2Nvcm91dGluZV9zZWxmKCkpOwogfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3Fl bXUvbG9nLmggYi9pbmNsdWRlL3FlbXUvbG9nLmgKaW5kZXggZjQ3MjRmNzMzMC4uOWI4MDY2MDIw NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9xZW11L2xvZy5oCisrKyBiL2luY2x1ZGUvcWVtdS9sb2cu aApAQCAtMzYsNyArMzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcWVtdV9sb2dfc2VwYXJhdGUo dm9pZCkKICAgICBib29sIHJlcyA9IGZhbHNlOwogCiAgICAgcmN1X3JlYWRfbG9jaygpOwotICAg IGxvZ2ZpbGUgPSBhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAgbG9nZmlsZSA9 IHFhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CiAgICAgaWYgKGxvZ2ZpbGUgJiYgbG9n ZmlsZS0+ZmQgIT0gc3RkZXJyKSB7CiAgICAgICAgIHJlcyA9IHRydWU7CiAgICAgfQpAQCAtNzUs NyArNzUsNyBAQCBzdGF0aWMgaW5saW5lIEZJTEUgKnFlbXVfbG9nX2xvY2sodm9pZCkKIHsKICAg ICBRZW11TG9nRmlsZSAqbG9nZmlsZTsKICAgICByY3VfcmVhZF9sb2NrKCk7Ci0gICAgbG9nZmls ZSA9IGF0b21pY19yY3VfcmVhZCgmcWVtdV9sb2dmaWxlKTsKKyAgICBsb2dmaWxlID0gcWF0b21p Y19yY3VfcmVhZCgmcWVtdV9sb2dmaWxlKTsKICAgICBpZiAobG9nZmlsZSkgewogICAgICAgICBx ZW11X2Zsb2NrZmlsZShsb2dmaWxlLT5mZCk7CiAgICAgICAgIHJldHVybiBsb2dmaWxlLT5mZDsK QEAgLTEwMiw3ICsxMDIsNyBAQCBxZW11X2xvZ192cHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgdmFf bGlzdCB2YSkKICAgICBRZW11TG9nRmlsZSAqbG9nZmlsZTsKIAogICAgIHJjdV9yZWFkX2xvY2so KTsKLSAgICBsb2dmaWxlID0gYXRvbWljX3JjdV9yZWFkKCZxZW11X2xvZ2ZpbGUpOworICAgIGxv Z2ZpbGUgPSBxYXRvbWljX3JjdV9yZWFkKCZxZW11X2xvZ2ZpbGUpOwogICAgIGlmIChsb2dmaWxl KSB7CiAgICAgICAgIHZmcHJpbnRmKGxvZ2ZpbGUtPmZkLCBmbXQsIHZhKTsKICAgICB9CmRpZmYg LS1naXQgYS9pbmNsdWRlL3FlbXUvcXVldWUuaCBiL2luY2x1ZGUvcWVtdS9xdWV1ZS5oCmluZGV4 IDQ1NmE1YjAxZWUuLmUwMjllN2JmNjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcWVtdS9xdWV1ZS5o CisrKyBiL2luY2x1ZGUvcWVtdS9xdWV1ZS5oCkBAIC0yMTgsMTIgKzIxOCwxMiBAQCBzdHJ1Y3Qg eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICAgICAgIHR5cGVvZihlbG0pIHNhdmVfc2xlX25leHQ7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgZG8geyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgICAgICAgICAgc2F2ZV9zbGVfbmV4dCA9IChlbG0pLT5maWVsZC5zbGVfbmV4dCA9IChoZWFk KS0+c2xoX2ZpcnN0OyAgICAgICBcCi0gICAgICAgIH0gd2hpbGUgKGF0b21pY19jbXB4Y2hnKCYo aGVhZCktPnNsaF9maXJzdCwgc2F2ZV9zbGVfbmV4dCwgKGVsbSkpICE9IFwKKyAgICAgICAgfSB3 aGlsZSAocWF0b21pY19jbXB4Y2hnKCYoaGVhZCktPnNsaF9maXJzdCwgc2F2ZV9zbGVfbmV4dCwg KGVsbSkpICE9XAogICAgICAgICAgICAgICAgICBzYXZlX3NsZV9uZXh0KTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiB9IHdoaWxlICgvKkNPTlNUQ09ORCov MCkKIAogI2RlZmluZSBRU0xJU1RfTU9WRV9BVE9NSUMoZGVzdCwgc3JjKSBkbyB7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgKGRlc3QpLT5zbGhfZmlyc3QgPSBhdG9t aWNfeGNoZygmKHNyYyktPnNsaF9maXJzdCwgTlVMTCk7ICAgICAgICBcCisgICAgICAgIChkZXN0 KS0+c2xoX2ZpcnN0ID0gcWF0b21pY194Y2hnKCYoc3JjKS0+c2xoX2ZpcnN0LCBOVUxMKTsgICAg ICAgXAogfSB3aGlsZSAoLypDT05TVENPTkQqLzApCiAKICNkZWZpbmUgUVNMSVNUX1JFTU9WRV9I RUFEKGhlYWQsIGZpZWxkKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0z NzYsNyArMzc2LDggQEAgc3RydWN0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogLyoKICAqIFNpbXBsZSBxdWV1ZSBhY2Nl c3MgbWV0aG9kcy4KICAqLwotI2RlZmluZSBRU0lNUExFUV9FTVBUWV9BVE9NSUMoaGVhZCkgKGF0 b21pY19yZWFkKCYoKGhlYWQpLT5zcWhfZmlyc3QpKSA9PSBOVUxMKQorI2RlZmluZSBRU0lNUExF UV9FTVBUWV9BVE9NSUMoaGVhZCkgXAorICAgIChxYXRvbWljX3JlYWQoJigoaGVhZCktPnNxaF9m aXJzdCkpID09IE5VTEwpCiAjZGVmaW5lIFFTSU1QTEVRX0VNUFRZKGhlYWQpICAgICAgICAoKGhl YWQpLT5zcWhfZmlyc3QgPT0gTlVMTCkKICNkZWZpbmUgUVNJTVBMRVFfRklSU1QoaGVhZCkgICAg ICAgICgoaGVhZCktPnNxaF9maXJzdCkKICNkZWZpbmUgUVNJTVBMRVFfTkVYVChlbG0sIGZpZWxk KSAgICgoZWxtKS0+ZmllbGQuc3FlX25leHQpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3FlbXUvcmN1 LmggYi9pbmNsdWRlL3FlbXUvcmN1LmgKaW5kZXggMGUzNzVlYmUxMy4uNTE1ZDMyN2NmMSAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9xZW11L3JjdS5oCisrKyBiL2luY2x1ZGUvcWVtdS9yY3UuaApAQCAt NzksOCArNzksOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcmN1X3JlYWRfbG9jayh2b2lkKQogICAg ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY3RyID0gYXRvbWljX3JlYWQoJnJjdV9ncF9jdHIp OwotICAgIGF0b21pY19zZXQoJnBfcmN1X3JlYWRlci0+Y3RyLCBjdHIpOworICAgIGN0ciA9IHFh dG9taWNfcmVhZCgmcmN1X2dwX2N0cik7CisgICAgcWF0b21pY19zZXQoJnBfcmN1X3JlYWRlci0+ Y3RyLCBjdHIpOwogCiAgICAgLyogV3JpdGUgcF9yY3VfcmVhZGVyLT5jdHIgYmVmb3JlIHJlYWRp bmcgUkNVLXByb3RlY3RlZCBwb2ludGVycy4gICovCiAgICAgc21wX21iX3BsYWNlaG9sZGVyKCk7 CkBAIC0xMDAsMTIgKzEwMCwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcmN1X3JlYWRfdW5sb2Nr KHZvaWQpCiAgICAgICogc21wX21iX3BsYWNlaG9sZGVyKCksIHRoaXMgZW5zdXJlcyB3cml0ZXMg dG8gcF9yY3VfcmVhZGVyLT5jdHIKICAgICAgKiBhcmUgc2VxdWVudGlhbGx5IGNvbnNpc3RlbnQu CiAgICAgICovCi0gICAgYXRvbWljX3N0b3JlX3JlbGVhc2UoJnBfcmN1X3JlYWRlci0+Y3RyLCAw KTsKKyAgICBxYXRvbWljX3N0b3JlX3JlbGVhc2UoJnBfcmN1X3JlYWRlci0+Y3RyLCAwKTsKIAog ICAgIC8qIFdyaXRlIHBfcmN1X3JlYWRlci0+Y3RyIGJlZm9yZSByZWFkaW5nIHBfcmN1X3JlYWRl ci0+d2FpdGluZy4gICovCiAgICAgc21wX21iX3BsYWNlaG9sZGVyKCk7Ci0gICAgaWYgKHVubGlr ZWx5KGF0b21pY19yZWFkKCZwX3JjdV9yZWFkZXItPndhaXRpbmcpKSkgewotICAgICAgICBhdG9t aWNfc2V0KCZwX3JjdV9yZWFkZXItPndhaXRpbmcsIGZhbHNlKTsKKyAgICBpZiAodW5saWtlbHko cWF0b21pY19yZWFkKCZwX3JjdV9yZWFkZXItPndhaXRpbmcpKSkgeworICAgICAgICBxYXRvbWlj X3NldCgmcF9yY3VfcmVhZGVyLT53YWl0aW5nLCBmYWxzZSk7CiAgICAgICAgIHFlbXVfZXZlbnRf c2V0KCZyY3VfZ3BfZXZlbnQpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcWVtdS9y Y3VfcXVldWUuaCBiL2luY2x1ZGUvcWVtdS9yY3VfcXVldWUuaAppbmRleCA1NTg5NjFjYzI3Li4w ZTUzZGRkNTMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3FlbXUvcmN1X3F1ZXVlLmgKKysrIGIvaW5j bHVkZS9xZW11L3JjdV9xdWV1ZS5oCkBAIC0zNiw5ICszNiw5IEBAIGV4dGVybiAiQyIgewogLyoK ICAqIExpc3QgYWNjZXNzIG1ldGhvZHMuCiAgKi8KLSNkZWZpbmUgUUxJU1RfRU1QVFlfUkNVKGhl YWQpIChhdG9taWNfcmVhZCgmKGhlYWQpLT5saF9maXJzdCkgPT0gTlVMTCkKLSNkZWZpbmUgUUxJ U1RfRklSU1RfUkNVKGhlYWQpIChhdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+bGhfZmlyc3QpKQot I2RlZmluZSBRTElTVF9ORVhUX1JDVShlbG0sIGZpZWxkKSAoYXRvbWljX3JjdV9yZWFkKCYoZWxt KS0+ZmllbGQubGVfbmV4dCkpCisjZGVmaW5lIFFMSVNUX0VNUFRZX1JDVShoZWFkKSAocWF0b21p Y19yZWFkKCYoaGVhZCktPmxoX2ZpcnN0KSA9PSBOVUxMKQorI2RlZmluZSBRTElTVF9GSVJTVF9S Q1UoaGVhZCkgKHFhdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+bGhfZmlyc3QpKQorI2RlZmluZSBR TElTVF9ORVhUX1JDVShlbG0sIGZpZWxkKSAocWF0b21pY19yY3VfcmVhZCgmKGVsbSktPmZpZWxk LmxlX25leHQpKQogCiAvKgogICogTGlzdCBmdW5jdGlvbnMuCkBAIC00Niw3ICs0Niw3IEBAIGV4 dGVybiAiQyIgewogCiAKIC8qCi0gKiAgVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhdG9taWNfcmVh ZC9zZXQgYW5kIGF0b21pY19yY3VfcmVhZC9zZXQKKyAqICBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVu IHFhdG9taWNfcmVhZC9zZXQgYW5kIHFhdG9taWNfcmN1X3JlYWQvc2V0CiAgKiAgaXMgaW4gdGhl IGluY2x1ZGluZyBvZiBhIHJlYWQvd3JpdGUgbWVtb3J5IGJhcnJpZXIgdG8gdGhlIHZvbGF0aWxl CiAgKiAgYWNjZXNzLiBhdG9taWNfcmN1XyogbWFjcm9zIGluY2x1ZGUgdGhlIG1lbW9yeSBiYXJy aWVyLCB0aGUKICAqICBwbGFpbiBhdG9taWMgbWFjcm9zIGRvIG5vdC4gVGhlcmVmb3JlLCBpdCBz aG91bGQgYmUgY29ycmVjdCB0bwpAQCAtNjYsNyArNjYsNyBAQCBleHRlcm4gIkMiIHsKICNkZWZp bmUgUUxJU1RfSU5TRVJUX0FGVEVSX1JDVShsaXN0ZWxtLCBlbG0sIGZpZWxkKSBkbyB7ICAgIFwK ICAgICAoZWxtKS0+ZmllbGQubGVfbmV4dCA9IChsaXN0ZWxtKS0+ZmllbGQubGVfbmV4dDsgICAg ICAgIFwKICAgICAoZWxtKS0+ZmllbGQubGVfcHJldiA9ICYobGlzdGVsbSktPmZpZWxkLmxlX25l eHQ7ICAgICAgIFwKLSAgICBhdG9taWNfcmN1X3NldCgmKGxpc3RlbG0pLT5maWVsZC5sZV9uZXh0 LCAoZWxtKSk7ICAgICAgIFwKKyAgICBxYXRvbWljX3JjdV9zZXQoJihsaXN0ZWxtKS0+ZmllbGQu bGVfbmV4dCwgKGVsbSkpOyAgICAgIFwKICAgICBpZiAoKGVsbSktPmZpZWxkLmxlX25leHQgIT0g TlVMTCkgeyAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAoZWxtKS0+ZmllbGQubGVfbmV4 dC0+ZmllbGQubGVfcHJldiA9ICAgICAgICAgICAgICAgIFwKICAgICAgICAgJihlbG0pLT5maWVs ZC5sZV9uZXh0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTgyLDcgKzgyLDcg QEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIFFMSVNUX0lOU0VSVF9CRUZPUkVfUkNVKGxpc3RlbG0s IGVsbSwgZmllbGQpIGRvIHsgICBcCiAgICAgKGVsbSktPmZpZWxkLmxlX3ByZXYgPSAobGlzdGVs bSktPmZpZWxkLmxlX3ByZXY7ICAgICAgICBcCiAgICAgKGVsbSktPmZpZWxkLmxlX25leHQgPSAo bGlzdGVsbSk7ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgYXRvbWljX3JjdV9zZXQoKGxp c3RlbG0pLT5maWVsZC5sZV9wcmV2LCAoZWxtKSk7ICAgICAgICBcCisgICAgcWF0b21pY19yY3Vf c2V0KChsaXN0ZWxtKS0+ZmllbGQubGVfcHJldiwgKGVsbSkpOyAgICAgICBcCiAgICAgKGxpc3Rl bG0pLT5maWVsZC5sZV9wcmV2ID0gJihlbG0pLT5maWVsZC5sZV9uZXh0OyAgICAgICBcCiB9IHdo aWxlICgvKkNPTlNUQ09ORCovMCkKIApAQCAtOTUsNyArOTUsNyBAQCBleHRlcm4gIkMiIHsKICNk ZWZpbmUgUUxJU1RfSU5TRVJUX0hFQURfUkNVKGhlYWQsIGVsbSwgZmllbGQpIGRvIHsgICAgXAog ICAgIChlbG0pLT5maWVsZC5sZV9wcmV2ID0gJihoZWFkKS0+bGhfZmlyc3Q7ICAgICAgICAgICBc CiAgICAgKGVsbSktPmZpZWxkLmxlX25leHQgPSAoaGVhZCktPmxoX2ZpcnN0OyAgICAgICAgICAg IFwKLSAgICBhdG9taWNfcmN1X3NldCgoJihoZWFkKS0+bGhfZmlyc3QpLCAoZWxtKSk7ICAgICAg ICAgXAorICAgIHFhdG9taWNfcmN1X3NldCgoJihoZWFkKS0+bGhfZmlyc3QpLCAoZWxtKSk7ICAg ICAgICBcCiAgICAgaWYgKChlbG0pLT5maWVsZC5sZV9uZXh0ICE9IE5VTEwpIHsgICAgICAgICAg ICAgICAgIFwKICAgICAgICAoZWxtKS0+ZmllbGQubGVfbmV4dC0+ZmllbGQubGVfcHJldiA9ICAg ICAgICAgICAgXAogICAgICAgICAmKGVsbSktPmZpZWxkLmxlX25leHQ7ICAgICAgICAgICAgICAg ICAgICAgICAgICBcCkBAIC0xMTIsMjAgKzExMiwyMCBAQCBleHRlcm4gIkMiIHsKICAgICAgICAo ZWxtKS0+ZmllbGQubGVfbmV4dC0+ZmllbGQubGVfcHJldiA9ICAgICAgICBcCiAgICAgICAgIChl bG0pLT5maWVsZC5sZV9wcmV2OyAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhdG9taWNfc2V0 KChlbG0pLT5maWVsZC5sZV9wcmV2LCAoZWxtKS0+ZmllbGQubGVfbmV4dCk7IFwKKyAgICBxYXRv bWljX3NldCgoZWxtKS0+ZmllbGQubGVfcHJldiwgKGVsbSktPmZpZWxkLmxlX25leHQpOyBcCiB9 IHdoaWxlICgvKkNPTlNUQ09ORCovMCkKIAogLyogTGlzdCB0cmF2ZXJzYWwgbXVzdCBvY2N1ciB3 aXRoaW4gYW4gUkNVIGNyaXRpY2FsIHNlY3Rpb24uICAqLwogI2RlZmluZSBRTElTVF9GT1JFQUNI X1JDVSh2YXIsIGhlYWQsIGZpZWxkKSAgICAgICAgICAgICAgICAgXAotICAgICAgICBmb3IgKCh2 YXIpID0gYXRvbWljX3JjdV9yZWFkKCYoaGVhZCktPmxoX2ZpcnN0KTsgICAgXAorICAgICAgICBm b3IgKCh2YXIpID0gcWF0b21pY19yY3VfcmVhZCgmKGhlYWQpLT5saF9maXJzdCk7ICAgXAogICAg ICAgICAgICAgICAgICh2YXIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAotICAgICAgICAgICAgICAgICh2YXIpID0gYXRvbWljX3JjdV9yZWFkKCYodmFyKS0+ZmllbGQu bGVfbmV4dCkpCisgICAgICAgICAgICAgICAgKHZhcikgPSBxYXRvbWljX3JjdV9yZWFkKCYodmFy KS0+ZmllbGQubGVfbmV4dCkpCiAKIC8qIExpc3QgdHJhdmVyc2FsIG11c3Qgb2NjdXIgd2l0aGlu IGFuIFJDVSBjcml0aWNhbCBzZWN0aW9uLiAgKi8KICNkZWZpbmUgUUxJU1RfRk9SRUFDSF9TQUZF X1JDVSh2YXIsIGhlYWQsIGZpZWxkLCBuZXh0X3ZhcikgICAgICAgICAgIFwKLSAgICBmb3IgKCh2 YXIpID0gKGF0b21pY19yY3VfcmVhZCgmKGhlYWQpLT5saF9maXJzdCkpOyAgICAgICAgICAgICAg IFwKKyAgICBmb3IgKCh2YXIpID0gKHFhdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+bGhfZmlyc3Qp KTsgICAgICAgICAgICAgIFwKICAgICAgICh2YXIpICYmICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAoKG5leHRfdmFyKSA9 IGF0b21pY19yY3VfcmVhZCgmKHZhciktPmZpZWxkLmxlX25leHQpLCAxKTsgIFwKKyAgICAgICAg ICAoKG5leHRfdmFyKSA9IHFhdG9taWNfcmN1X3JlYWQoJih2YXIpLT5maWVsZC5sZV9uZXh0KSwg MSk7IFwKICAgICAgICAgICAgKHZhcikgPSAobmV4dF92YXIpKQogCiAvKgpAQCAtMTMzLDkgKzEz MywxMCBAQCBleHRlcm4gIkMiIHsKICAqLwogCiAvKiBTaW1wbGUgcXVldWUgYWNjZXNzIG1ldGhv ZHMgKi8KLSNkZWZpbmUgUVNJTVBMRVFfRU1QVFlfUkNVKGhlYWQpICAgICAgKGF0b21pY19yZWFk KCYoaGVhZCktPnNxaF9maXJzdCkgPT0gTlVMTCkKLSNkZWZpbmUgUVNJTVBMRVFfRklSU1RfUkNV KGhlYWQpICAgICAgIGF0b21pY19yY3VfcmVhZCgmKGhlYWQpLT5zcWhfZmlyc3QpCi0jZGVmaW5l IFFTSU1QTEVRX05FWFRfUkNVKGVsbSwgZmllbGQpICBhdG9taWNfcmN1X3JlYWQoJihlbG0pLT5m aWVsZC5zcWVfbmV4dCkKKyNkZWZpbmUgUVNJTVBMRVFfRU1QVFlfUkNVKGhlYWQpIFwKKyAgICAo cWF0b21pY19yZWFkKCYoaGVhZCktPnNxaF9maXJzdCkgPT0gTlVMTCkKKyNkZWZpbmUgUVNJTVBM RVFfRklSU1RfUkNVKGhlYWQpICAgICAgIHFhdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+c3FoX2Zp cnN0KQorI2RlZmluZSBRU0lNUExFUV9ORVhUX1JDVShlbG0sIGZpZWxkKSAgcWF0b21pY19yY3Vf cmVhZCgmKGVsbSktPmZpZWxkLnNxZV9uZXh0KQogCiAvKiBTaW1wbGUgcXVldWUgZnVuY3Rpb25z ICovCiAjZGVmaW5lIFFTSU1QTEVRX0lOU0VSVF9IRUFEX1JDVShoZWFkLCBlbG0sIGZpZWxkKSBk byB7ICAgICAgICAgXApAQCAtMTQzLDEyICsxNDQsMTIgQEAgZXh0ZXJuICJDIiB7CiAgICAgaWYg KChlbG0pLT5maWVsZC5zcWVfbmV4dCA9PSBOVUxMKSB7ICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgICAgICAoaGVhZCktPnNxaF9sYXN0ID0gJihlbG0pLT5maWVsZC5zcWVfbmV4dDsgICAg ICAgICAgICAgIFwKICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCi0gICAgYXRvbWljX3JjdV9zZXQoJihoZWFkKS0+c3FoX2Zp cnN0LCAoZWxtKSk7ICAgICAgICAgICAgICAgICAgXAorICAgIHFhdG9taWNfcmN1X3NldCgmKGhl YWQpLT5zcWhfZmlyc3QsIChlbG0pKTsgICAgICAgICAgICAgICAgIFwKIH0gd2hpbGUgKC8qQ09O U1RDT05EKi8wKQogCiAjZGVmaW5lIFFTSU1QTEVRX0lOU0VSVF9UQUlMX1JDVShoZWFkLCBlbG0s IGZpZWxkKSBkbyB7ICAgIFwKICAgICAoZWxtKS0+ZmllbGQuc3FlX25leHQgPSBOVUxMOyAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotICAgIGF0b21pY19yY3Vfc2V0KChoZWFkKS0+c3FoX2xh c3QsIChlbG0pKTsgICAgICAgICAgICAgICBcCisgICAgcWF0b21pY19yY3Vfc2V0KChoZWFkKS0+ c3FoX2xhc3QsIChlbG0pKTsgICAgICAgICAgICAgIFwKICAgICAoaGVhZCktPnNxaF9sYXN0ID0g JihlbG0pLT5maWVsZC5zcWVfbmV4dDsgICAgICAgICAgICAgXAogfSB3aGlsZSAoLypDT05TVENP TkQqLzApCiAKQEAgLTE1NywxMSArMTU4LDExIEBAIGV4dGVybiAiQyIgewogICAgIGlmICgoZWxt KS0+ZmllbGQuc3FlX25leHQgPT0gTlVMTCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgICAgICAoaGVhZCktPnNxaF9sYXN0ID0gJihlbG0pLT5maWVsZC5zcWVfbmV4dDsg ICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGF0b21pY19yY3Vf c2V0KCYobGlzdGVsbSktPmZpZWxkLnNxZV9uZXh0LCAoZWxtKSk7ICAgICAgICAgICAgICAgICAg XAorICAgIHFhdG9taWNfcmN1X3NldCgmKGxpc3RlbG0pLT5maWVsZC5zcWVfbmV4dCwgKGVsbSkp OyAgICAgICAgICAgICAgICAgXAogfSB3aGlsZSAoLypDT05TVENPTkQqLzApCiAKICNkZWZpbmUg UVNJTVBMRVFfUkVNT1ZFX0hFQURfUkNVKGhlYWQsIGZpZWxkKSBkbyB7ICAgICAgICAgICAgICAg ICAgICAgXAotICAgIGF0b21pY19zZXQoJihoZWFkKS0+c3FoX2ZpcnN0LCAoaGVhZCktPnNxaF9m aXJzdC0+ZmllbGQuc3FlX25leHQpOyBcCisgICAgcWF0b21pY19zZXQoJihoZWFkKS0+c3FoX2Zp cnN0LCAoaGVhZCktPnNxaF9maXJzdC0+ZmllbGQuc3FlX25leHQpO1wKICAgICBpZiAoKGhlYWQp LT5zcWhfZmlyc3QgPT0gTlVMTCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgICAgICAoaGVhZCktPnNxaF9sYXN0ID0gJihoZWFkKS0+c3FoX2ZpcnN0OyAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTE3NSw3ICsxNzYsNyBAQCBl eHRlcm4gIkMiIHsKICAgICAgICAgd2hpbGUgKGN1cnItPmZpZWxkLnNxZV9uZXh0ICE9IChlbG0p KSB7ICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgY3VyciA9IGN1cnItPmZpZWxk LnNxZV9uZXh0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIH0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg ICAgICAgYXRvbWljX3NldCgmY3Vyci0+ZmllbGQuc3FlX25leHQsICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgICAgICBxYXRvbWljX3NldCgmY3Vyci0+ZmllbGQuc3FlX25leHQsICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgY3Vyci0+ZmllbGQu c3FlX25leHQtPmZpZWxkLnNxZV9uZXh0KTsgICAgICAgICAgIFwKICAgICAgICAgaWYgKGN1cnIt PmZpZWxkLnNxZV9uZXh0ID09IE5VTEwpIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg ICAgICAgICAgKGhlYWQpLT5zcWhfbGFzdCA9ICYoY3VyciktPmZpZWxkLnNxZV9uZXh0OyAgICAg ICAgICAgICBcCkBAIC0xODQsMTMgKzE4NSwxMyBAQCBleHRlcm4gIkMiIHsKIH0gd2hpbGUgKC8q Q09OU1RDT05EKi8wKQogCiAjZGVmaW5lIFFTSU1QTEVRX0ZPUkVBQ0hfUkNVKHZhciwgaGVhZCwg ZmllbGQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZm9yICgodmFyKSA9IGF0b21p Y19yY3VfcmVhZCgmKGhlYWQpLT5zcWhfZmlyc3QpOyAgICAgICAgICAgICAgICAgICBcCisgICAg Zm9yICgodmFyKSA9IHFhdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+c3FoX2ZpcnN0KTsgICAgICAg ICAgICAgICAgICBcCiAgICAgICAgICAodmFyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAodmFyKSA9IGF0b21pY19y Y3VfcmVhZCgmKHZhciktPmZpZWxkLnNxZV9uZXh0KSkKKyAgICAgICAgICh2YXIpID0gcWF0b21p Y19yY3VfcmVhZCgmKHZhciktPmZpZWxkLnNxZV9uZXh0KSkKIAogI2RlZmluZSBRU0lNUExFUV9G T1JFQUNIX1NBRkVfUkNVKHZhciwgaGVhZCwgZmllbGQsIG5leHQpICAgICAgICAgICAgICAgIFwK LSAgICBmb3IgKCh2YXIpID0gYXRvbWljX3JjdV9yZWFkKCYoaGVhZCktPnNxaF9maXJzdCk7ICAg ICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAodmFyKSAmJiAoKG5leHQpID0gYXRvbWljX3Jj dV9yZWFkKCYodmFyKS0+ZmllbGQuc3FlX25leHQpLCAxKTsgXAorICAgIGZvciAoKHZhcikgPSBx YXRvbWljX3JjdV9yZWFkKCYoaGVhZCktPnNxaF9maXJzdCk7ICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgICh2YXIpICYmICgobmV4dCkgPSBxYXRvbWljX3JjdV9yZWFkKCYodmFyKS0+Zmll bGQuc3FlX25leHQpLCAxKTtcCiAgICAgICAgICAodmFyKSA9IChuZXh0KSkKIAogLyoKQEAgLTE5 OCw5ICsxOTksOSBAQCBleHRlcm4gIkMiIHsKICAqLwogCiAvKiBUYWlsIHF1ZXVlIGFjY2VzcyBt ZXRob2RzICovCi0jZGVmaW5lIFFUQUlMUV9FTVBUWV9SQ1UoaGVhZCkgICAgICAoYXRvbWljX3Jl YWQoJihoZWFkKS0+dHFoX2ZpcnN0KSA9PSBOVUxMKQotI2RlZmluZSBRVEFJTFFfRklSU1RfUkNV KGhlYWQpICAgICAgIGF0b21pY19yY3VfcmVhZCgmKGhlYWQpLT50cWhfZmlyc3QpCi0jZGVmaW5l IFFUQUlMUV9ORVhUX1JDVShlbG0sIGZpZWxkKSAgYXRvbWljX3JjdV9yZWFkKCYoZWxtKS0+Zmll bGQudHFlX25leHQpCisjZGVmaW5lIFFUQUlMUV9FTVBUWV9SQ1UoaGVhZCkgICAgICAocWF0b21p Y19yZWFkKCYoaGVhZCktPnRxaF9maXJzdCkgPT0gTlVMTCkKKyNkZWZpbmUgUVRBSUxRX0ZJUlNU X1JDVShoZWFkKSAgICAgICBxYXRvbWljX3JjdV9yZWFkKCYoaGVhZCktPnRxaF9maXJzdCkKKyNk ZWZpbmUgUVRBSUxRX05FWFRfUkNVKGVsbSwgZmllbGQpICBxYXRvbWljX3JjdV9yZWFkKCYoZWxt KS0+ZmllbGQudHFlX25leHQpCiAKIC8qIFRhaWwgcXVldWUgZnVuY3Rpb25zICovCiAjZGVmaW5l IFFUQUlMUV9JTlNFUlRfSEVBRF9SQ1UoaGVhZCwgZWxtLCBmaWVsZCkgZG8geyAgICAgICAgICAg ICAgICAgICBcCkBAIC0yMTEsMTQgKzIxMiwxNCBAQCBleHRlcm4gIkMiIHsKICAgICB9IGVsc2Ug eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICAgICAgKGhlYWQpLT50cWhfY2lyYy50cWxfcHJldiA9ICYoZWxtKS0+ZmllbGQu dHFlX2NpcmM7ICAgICAgICAgICAgIFwKICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhdG9taWNfcmN1 X3NldCgmKGhlYWQpLT50cWhfZmlyc3QsIChlbG0pKTsgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICBxYXRvbWljX3JjdV9zZXQoJihoZWFkKS0+dHFoX2ZpcnN0LCAoZWxtKSk7ICAgICAg ICAgICAgICAgICAgICAgICAgIFwKICAgICAoZWxtKS0+ZmllbGQudHFlX2NpcmMudHFsX3ByZXYg PSAmKGhlYWQpLT50cWhfY2lyYzsgICAgICAgICAgICAgICAgIFwKIH0gd2hpbGUgKC8qQ09OU1RD T05EKi8wKQogCiAjZGVmaW5lIFFUQUlMUV9JTlNFUlRfVEFJTF9SQ1UoaGVhZCwgZWxtLCBmaWVs ZCkgZG8geyAgICAgICAgICAgICAgICAgICBcCiAgICAgKGVsbSktPmZpZWxkLnRxZV9uZXh0ID0g TlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgKGVsbSkt PmZpZWxkLnRxZV9jaXJjLnRxbF9wcmV2ID0gKGhlYWQpLT50cWhfY2lyYy50cWxfcHJldjsgICAg ICAgICBcCi0gICAgYXRvbWljX3JjdV9zZXQoJihoZWFkKS0+dHFoX2NpcmMudHFsX3ByZXYtPnRx bF9uZXh0LCAoZWxtKSk7ICAgICAgICBcCisgICAgcWF0b21pY19yY3Vfc2V0KCYoaGVhZCktPnRx aF9jaXJjLnRxbF9wcmV2LT50cWxfbmV4dCwgKGVsbSkpOyAgICAgICBcCiAgICAgKGhlYWQpLT50 cWhfY2lyYy50cWxfcHJldiA9ICYoZWxtKS0+ZmllbGQudHFlX2NpcmM7ICAgICAgICAgICAgICAg ICBcCiB9IHdoaWxlICgvKkNPTlNUQ09ORCovMCkKIApAQCAtMjMwLDE0ICsyMzEsMTQgQEAgZXh0 ZXJuICJDIiB7CiAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIChoZWFkKS0+dHFoX2NpcmMudHFs X3ByZXYgPSAmKGVsbSktPmZpZWxkLnRxZV9jaXJjOyAgICAgICAgICAgICBcCiAgICAgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0gICAgYXRvbWljX3JjdV9zZXQoJihsaXN0ZWxtKS0+ZmllbGQudHFlX25leHQsIChl bG0pKTsgICAgICAgICAgICAgICAgICBcCisgICAgcWF0b21pY19yY3Vfc2V0KCYobGlzdGVsbSkt PmZpZWxkLnRxZV9uZXh0LCAoZWxtKSk7ICAgICAgICAgICAgICAgICBcCiAgICAgKGVsbSktPmZp ZWxkLnRxZV9jaXJjLnRxbF9wcmV2ID0gJihsaXN0ZWxtKS0+ZmllbGQudHFlX2NpcmM7ICAgICAg ICBcCiB9IHdoaWxlICgvKkNPTlNUQ09ORCovMCkKIAogI2RlZmluZSBRVEFJTFFfSU5TRVJUX0JF Rk9SRV9SQ1UobGlzdGVsbSwgZWxtLCBmaWVsZCkgZG8geyAgICAgICAgICAgICAgICBcCiAgICAg KGVsbSktPmZpZWxkLnRxZV9jaXJjLnRxbF9wcmV2ID0gKGxpc3RlbG0pLT5maWVsZC50cWVfY2ly Yy50cWxfcHJldjsgIFwKICAgICAoZWxtKS0+ZmllbGQudHFlX25leHQgPSAobGlzdGVsbSk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGF0b21pY19yY3Vfc2V0KCYo bGlzdGVsbSktPmZpZWxkLnRxZV9jaXJjLnRxbF9wcmV2LT50cWxfbmV4dCwgKGVsbSkpOyBcCisg ICAgcWF0b21pY19yY3Vfc2V0KCYobGlzdGVsbSktPmZpZWxkLnRxZV9jaXJjLnRxbF9wcmV2LT50 cWxfbmV4dCwgKGVsbSkpO1wKICAgICAobGlzdGVsbSktPmZpZWxkLnRxZV9jaXJjLnRxbF9wcmV2 ID0gJihlbG0pLT5maWVsZC50cWVfY2lyYzsgICAgICAgICAgXAogfSB3aGlsZSAoLypDT05TVENP TkQqLzApCiAKQEAgLTI0OCwxOCArMjQ5LDE5IEBAIGV4dGVybiAiQyIgewogICAgIH0gZWxzZSB7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgICAgICAoaGVhZCktPnRxaF9jaXJjLnRxbF9wcmV2ID0gKGVsbSktPmZpZWxkLnRx ZV9jaXJjLnRxbF9wcmV2OyAgICAgXAogICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGF0b21pY19zZXQo JihlbG0pLT5maWVsZC50cWVfY2lyYy50cWxfcHJldi0+dHFsX25leHQsIChlbG0pLT5maWVsZC50 cWVfbmV4dCk7IFwKKyAgICBxYXRvbWljX3NldCgmKGVsbSktPmZpZWxkLnRxZV9jaXJjLnRxbF9w cmV2LT50cWxfbmV4dCwgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAoZWxtKS0+Zmll bGQudHFlX25leHQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAoZWxt KS0+ZmllbGQudHFlX2NpcmMudHFsX3ByZXYgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKIH0gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQogCiAjZGVmaW5lIFFUQUlMUV9GT1JF QUNIX1JDVSh2YXIsIGhlYWQsIGZpZWxkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g ICAgZm9yICgodmFyKSA9IGF0b21pY19yY3VfcmVhZCgmKGhlYWQpLT50cWhfZmlyc3QpOyAgICAg ICAgICAgICAgICAgICBcCisgICAgZm9yICgodmFyKSA9IHFhdG9taWNfcmN1X3JlYWQoJihoZWFk KS0+dHFoX2ZpcnN0KTsgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAodmFyKTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg ICAgICAodmFyKSA9IGF0b21pY19yY3VfcmVhZCgmKHZhciktPmZpZWxkLnRxZV9uZXh0KSkKKyAg ICAgICAgICh2YXIpID0gcWF0b21pY19yY3VfcmVhZCgmKHZhciktPmZpZWxkLnRxZV9uZXh0KSkK IAogI2RlZmluZSBRVEFJTFFfRk9SRUFDSF9TQUZFX1JDVSh2YXIsIGhlYWQsIGZpZWxkLCBuZXh0 KSAgICAgICAgICAgICAgICAgIFwKLSAgICBmb3IgKCh2YXIpID0gYXRvbWljX3JjdV9yZWFkKCYo aGVhZCktPnRxaF9maXJzdCk7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAodmFyKSAm JiAoKG5leHQpID0gYXRvbWljX3JjdV9yZWFkKCYodmFyKS0+ZmllbGQudHFlX25leHQpLCAxKTsg XAorICAgIGZvciAoKHZhcikgPSBxYXRvbWljX3JjdV9yZWFkKCYoaGVhZCktPnRxaF9maXJzdCk7 ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICh2YXIpICYmICgobmV4dCkgPSBxYXRvbWlj X3JjdV9yZWFkKCYodmFyKS0+ZmllbGQudHFlX25leHQpLCAxKTtcCiAgICAgICAgICAodmFyKSA9 IChuZXh0KSkKIAogLyoKQEAgLTI2NywyMyArMjY5LDIzIEBAIGV4dGVybiAiQyIgewogICovCiAK IC8qIFNpbmdseS1saW5rZWQgbGlzdCBhY2Nlc3MgbWV0aG9kcyAqLwotI2RlZmluZSBRU0xJU1Rf RU1QVFlfUkNVKGhlYWQpICAgICAgKGF0b21pY19yZWFkKCYoaGVhZCktPnNsaF9maXJzdCkgPT0g TlVMTCkKLSNkZWZpbmUgUVNMSVNUX0ZJUlNUX1JDVShoZWFkKSAgICAgICBhdG9taWNfcmN1X3Jl YWQoJihoZWFkKS0+c2xoX2ZpcnN0KQotI2RlZmluZSBRU0xJU1RfTkVYVF9SQ1UoZWxtLCBmaWVs ZCkgIGF0b21pY19yY3VfcmVhZCgmKGVsbSktPmZpZWxkLnNsZV9uZXh0KQorI2RlZmluZSBRU0xJ U1RfRU1QVFlfUkNVKGhlYWQpICAgICAgKHFhdG9taWNfcmVhZCgmKGhlYWQpLT5zbGhfZmlyc3Qp ID09IE5VTEwpCisjZGVmaW5lIFFTTElTVF9GSVJTVF9SQ1UoaGVhZCkgICAgICAgcWF0b21pY19y Y3VfcmVhZCgmKGhlYWQpLT5zbGhfZmlyc3QpCisjZGVmaW5lIFFTTElTVF9ORVhUX1JDVShlbG0s IGZpZWxkKSAgcWF0b21pY19yY3VfcmVhZCgmKGVsbSktPmZpZWxkLnNsZV9uZXh0KQogCiAvKiBT aW5nbHktbGlua2VkIGxpc3QgZnVuY3Rpb25zICovCiAjZGVmaW5lIFFTTElTVF9JTlNFUlRfSEVB RF9SQ1UoaGVhZCwgZWxtLCBmaWVsZCkgZG8geyAgICAgICAgICAgXAogICAgIChlbG0pLT5maWVs ZC5zbGVfbmV4dCA9IChoZWFkKS0+c2xoX2ZpcnN0OyAgICAgICAgICAgICAgICAgIFwKLSAgICBh dG9taWNfcmN1X3NldCgmKGhlYWQpLT5zbGhfZmlyc3QsIChlbG0pKTsgICAgICAgICAgICAgICAg ICBcCisgICAgcWF0b21pY19yY3Vfc2V0KCYoaGVhZCktPnNsaF9maXJzdCwgKGVsbSkpOyAgICAg ICAgICAgICAgICAgXAogfSB3aGlsZSAoLypDT05TVENPTkQqLzApCiAKICNkZWZpbmUgUVNMSVNU X0lOU0VSVF9BRlRFUl9SQ1UoaGVhZCwgbGlzdGVsbSwgZWxtLCBmaWVsZCkgZG8geyAgICAgICAg IFwKICAgICAoZWxtKS0+ZmllbGQuc2xlX25leHQgPSAobGlzdGVsbSktPmZpZWxkLnNsZV9uZXh0 OyAgICAgICAgICAgICAgICAgIFwKLSAgICBhdG9taWNfcmN1X3NldCgmKGxpc3RlbG0pLT5maWVs ZC5zbGVfbmV4dCwgKGVsbSkpOyAgICAgICAgICAgICAgICAgIFwKKyAgICBxYXRvbWljX3JjdV9z ZXQoJihsaXN0ZWxtKS0+ZmllbGQuc2xlX25leHQsIChlbG0pKTsgICAgICAgICAgICAgICAgIFwK IH0gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQogCiAjZGVmaW5lIFFTTElTVF9SRU1PVkVfSEVBRF9S Q1UoaGVhZCwgZmllbGQpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhdG9taWNf c2V0KCYoaGVhZCktPnNsaF9maXJzdCwgKGhlYWQpLT5zbGhfZmlyc3QtPmZpZWxkLnNsZV9uZXh0 KTsgXAorICAgIHFhdG9taWNfc2V0KCYoaGVhZCktPnNsaF9maXJzdCwgKGhlYWQpLT5zbGhfZmly c3QtPmZpZWxkLnNsZV9uZXh0KTtcCiB9IHdoaWxlICgvKkNPTlNUQ09ORCovMCkKIAogI2RlZmlu ZSBRU0xJU1RfUkVNT1ZFX1JDVShoZWFkLCBlbG0sIHR5cGUsIGZpZWxkKSBkbyB7ICAgICAgICAg ICAgICBcCkBAIC0yOTQsMTkgKzI5NiwxOSBAQCBleHRlcm4gIkMiIHsKICAgICAgICAgd2hpbGUg KGN1cnItPmZpZWxkLnNsZV9uZXh0ICE9IChlbG0pKSB7ICAgICAgICAgICAgICAgICAgICAgXAog ICAgICAgICAgICAgY3VyciA9IGN1cnItPmZpZWxkLnNsZV9uZXh0OyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCiAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgYXRvbWljX3NldCgmY3Vyci0+Zmll bGQuc2xlX25leHQsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBxYXRvbWlj X3NldCgmY3Vyci0+ZmllbGQuc2xlX25leHQsICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg ICAgICAgICAgICAgICAgICAgY3Vyci0+ZmllbGQuc2xlX25leHQtPmZpZWxkLnNsZV9uZXh0KTsg ICAgICAgICAgIFwKICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogfSB3aGlsZSAoLypDT05TVENPTkQqLzApCiAKICNk ZWZpbmUgUVNMSVNUX0ZPUkVBQ0hfUkNVKHZhciwgaGVhZCwgZmllbGQpICAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0gICAgZm9yICgodmFyKSA9IGF0b21pY19yY3VfcmVhZCgmKGhlYWQpLT5z bGhfZmlyc3QpOyAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAodmFyKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg ICAodmFyKSA9IGF0b21pY19yY3VfcmVhZCgmKHZhciktPmZpZWxkLnNsZV9uZXh0KSkKKyAgICBm b3IgKCh2YXIpID0gcWF0b21pY19yY3VfcmVhZCgmKGhlYWQpLT5zbGhfZmlyc3QpOyAgICAgICAg ICAgICAgICBcCisgICAgICAgICAodmFyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgKHZhcikgPSBxYXRvbWljX3JjdV9y ZWFkKCYodmFyKS0+ZmllbGQuc2xlX25leHQpKQogCi0jZGVmaW5lIFFTTElTVF9GT1JFQUNIX1NB RkVfUkNVKHZhciwgaGVhZCwgZmllbGQsIG5leHQpICAgICAgICAgICAgICAgIFwKLSAgICBmb3Ig KCh2YXIpID0gYXRvbWljX3JjdV9yZWFkKCYoaGVhZCktPnNsaF9maXJzdCk7ICAgICAgICAgICAg ICAgICAgICBcCi0gICAgICAgICAodmFyKSAmJiAoKG5leHQpID0gYXRvbWljX3JjdV9yZWFkKCYo dmFyKS0+ZmllbGQuc2xlX25leHQpLCAxKTsgXAorI2RlZmluZSBRU0xJU1RfRk9SRUFDSF9TQUZF X1JDVSh2YXIsIGhlYWQsIGZpZWxkLCBuZXh0KSAgICAgICAgICAgICAgICAgICBcCisgICAgZm9y ICgodmFyKSA9IHFhdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+c2xoX2ZpcnN0KTsgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAgICAgICh2YXIpICYmICgobmV4dCkgPSBxYXRvbWljX3JjdV9yZWFk KCYodmFyKS0+ZmllbGQuc2xlX25leHQpLCAxKTsgXAogICAgICAgICAgKHZhcikgPSAobmV4dCkp CiAKICNpZmRlZiBfX2NwbHVzcGx1cwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9xZW11L3NlcWxvY2su aCBiL2luY2x1ZGUvcWVtdS9zZXFsb2NrLmgKaW5kZXggOGI2YjRlZTRiYi4uZWNiN2QyYzg2NCAx MDA2NDQKLS0tIGEvaW5jbHVkZS9xZW11L3NlcWxvY2suaAorKysgYi9pbmNsdWRlL3FlbXUvc2Vx bG9jay5oCkBAIC0zMiw3ICszMiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXFsb2NrX2luaXQo UWVtdVNlcUxvY2sgKnNsKQogLyogTG9jayBvdXQgb3RoZXIgd3JpdGVycyBhbmQgdXBkYXRlIHRo ZSBjb3VudC4gICovCiBzdGF0aWMgaW5saW5lIHZvaWQgc2VxbG9ja193cml0ZV9iZWdpbihRZW11 U2VxTG9jayAqc2wpCiB7Ci0gICAgYXRvbWljX3NldCgmc2wtPnNlcXVlbmNlLCBzbC0+c2VxdWVu Y2UgKyAxKTsKKyAgICBxYXRvbWljX3NldCgmc2wtPnNlcXVlbmNlLCBzbC0+c2VxdWVuY2UgKyAx KTsKIAogICAgIC8qIFdyaXRlIHNlcXVlbmNlIGJlZm9yZSB1cGRhdGluZyBvdGhlciBmaWVsZHMu ICAqLwogICAgIHNtcF93bWIoKTsKQEAgLTQzLDcgKzQzLDcgQEAgc3RhdGljIGlubGluZSB2b2lk IHNlcWxvY2tfd3JpdGVfZW5kKFFlbXVTZXFMb2NrICpzbCkKICAgICAvKiBXcml0ZSBvdGhlciBm aWVsZHMgYmVmb3JlIGZpbmFsaXppbmcgc2VxdWVuY2UuICAqLwogICAgIHNtcF93bWIoKTsKIAot ICAgIGF0b21pY19zZXQoJnNsLT5zZXF1ZW5jZSwgc2wtPnNlcXVlbmNlICsgMSk7CisgICAgcWF0 b21pY19zZXQoJnNsLT5zZXF1ZW5jZSwgc2wtPnNlcXVlbmNlICsgMSk7CiB9CiAKIC8qIExvY2sg b3V0IG90aGVyIHdyaXRlcnMgYW5kIHVwZGF0ZSB0aGUgY291bnQuICAqLwpAQCAtNjgsNyArNjgs NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2VxbG9ja193cml0ZV91bmxvY2tfaW1wbChRZW11U2Vx TG9jayAqc2wsIFFlbXVMb2NrYWJsZSAqbG9jawogc3RhdGljIGlubGluZSB1bnNpZ25lZCBzZXFs b2NrX3JlYWRfYmVnaW4oY29uc3QgUWVtdVNlcUxvY2sgKnNsKQogewogICAgIC8qIEFsd2F5cyBm YWlsIGlmIGEgd3JpdGUgaXMgaW4gcHJvZ3Jlc3MuICAqLwotICAgIHVuc2lnbmVkIHJldCA9IGF0 b21pY19yZWFkKCZzbC0+c2VxdWVuY2UpOworICAgIHVuc2lnbmVkIHJldCA9IHFhdG9taWNfcmVh ZCgmc2wtPnNlcXVlbmNlKTsKIAogICAgIC8qIFJlYWQgc2VxdWVuY2UgYmVmb3JlIHJlYWRpbmcg b3RoZXIgZmllbGRzLiAgKi8KICAgICBzbXBfcm1iKCk7CkBAIC03OSw3ICs3OSw3IEBAIHN0YXRp YyBpbmxpbmUgaW50IHNlcWxvY2tfcmVhZF9yZXRyeShjb25zdCBRZW11U2VxTG9jayAqc2wsIHVu c2lnbmVkIHN0YXJ0KQogewogICAgIC8qIFJlYWQgb3RoZXIgZmllbGRzIGJlZm9yZSByZWFkaW5n IGZpbmFsIHNlcXVlbmNlLiAgKi8KICAgICBzbXBfcm1iKCk7Ci0gICAgcmV0dXJuIHVubGlrZWx5 KGF0b21pY19yZWFkKCZzbC0+c2VxdWVuY2UpICE9IHN0YXJ0KTsKKyAgICByZXR1cm4gdW5saWtl bHkocWF0b21pY19yZWFkKCZzbC0+c2VxdWVuY2UpICE9IHN0YXJ0KTsKIH0KIAogI2VuZGlmCmRp ZmYgLS1naXQgYS9pbmNsdWRlL3FlbXUvc3RhdHM2NC5oIGIvaW5jbHVkZS9xZW11L3N0YXRzNjQu aAppbmRleCAxOWE1YWM0YzU2Li5mZGQzZDFiOGY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3FlbXUv c3RhdHM2NC5oCisrKyBiL2luY2x1ZGUvcWVtdS9zdGF0czY0LmgKQEAgLTM3LDI3ICszNywyNyBA QCBzdGF0aWMgaW5saW5lIHZvaWQgc3RhdDY0X2luaXQoU3RhdDY0ICpzLCB1aW50NjRfdCB2YWx1 ZSkKIAogc3RhdGljIGlubGluZSB1aW50NjRfdCBzdGF0NjRfZ2V0KGNvbnN0IFN0YXQ2NCAqcykK IHsKLSAgICByZXR1cm4gYXRvbWljX3JlYWRfX25vY2hlY2soJnMtPnZhbHVlKTsKKyAgICByZXR1 cm4gcWF0b21pY19yZWFkX19ub2NoZWNrKCZzLT52YWx1ZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg dm9pZCBzdGF0NjRfYWRkKFN0YXQ2NCAqcywgdWludDY0X3QgdmFsdWUpCiB7Ci0gICAgYXRvbWlj X2FkZCgmcy0+dmFsdWUsIHZhbHVlKTsKKyAgICBxYXRvbWljX2FkZCgmcy0+dmFsdWUsIHZhbHVl KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHN0YXQ2NF9taW4oU3RhdDY0ICpzLCB1aW50NjRf dCB2YWx1ZSkKIHsKLSAgICB1aW50NjRfdCBvcmlnID0gYXRvbWljX3JlYWRfX25vY2hlY2soJnMt PnZhbHVlKTsKKyAgICB1aW50NjRfdCBvcmlnID0gcWF0b21pY19yZWFkX19ub2NoZWNrKCZzLT52 YWx1ZSk7CiAgICAgd2hpbGUgKG9yaWcgPiB2YWx1ZSkgewotICAgICAgICBvcmlnID0gYXRvbWlj X2NtcHhjaGdfX25vY2hlY2soJnMtPnZhbHVlLCBvcmlnLCB2YWx1ZSk7CisgICAgICAgIG9yaWcg PSBxYXRvbWljX2NtcHhjaGdfX25vY2hlY2soJnMtPnZhbHVlLCBvcmlnLCB2YWx1ZSk7CiAgICAg fQogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc3RhdDY0X21heChTdGF0NjQgKnMsIHVpbnQ2NF90 IHZhbHVlKQogewotICAgIHVpbnQ2NF90IG9yaWcgPSBhdG9taWNfcmVhZF9fbm9jaGVjaygmcy0+ dmFsdWUpOworICAgIHVpbnQ2NF90IG9yaWcgPSBxYXRvbWljX3JlYWRfX25vY2hlY2soJnMtPnZh bHVlKTsKICAgICB3aGlsZSAob3JpZyA8IHZhbHVlKSB7Ci0gICAgICAgIG9yaWcgPSBhdG9taWNf Y21weGNoZ19fbm9jaGVjaygmcy0+dmFsdWUsIG9yaWcsIHZhbHVlKTsKKyAgICAgICAgb3JpZyA9 IHFhdG9taWNfY21weGNoZ19fbm9jaGVjaygmcy0+dmFsdWUsIG9yaWcsIHZhbHVlKTsKICAgICB9 CiB9CiAjZWxzZQpAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3RhdDY0X2Fk ZChTdGF0NjQgKnMsIHVpbnQ2NF90IHZhbHVlKQogICAgIGxvdyA9ICh1aW50MzJfdCkgdmFsdWU7 CiAgICAgaWYgKCFsb3cpIHsKICAgICAgICAgaWYgKGhpZ2gpIHsKLSAgICAgICAgICAgIGF0b21p Y19hZGQoJnMtPmhpZ2gsIGhpZ2gpOworICAgICAgICAgICAgcWF0b21pY19hZGQoJnMtPmhpZ2gs IGhpZ2gpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMDEsNyArMTAx LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHN0YXQ2NF9hZGQoU3RhdDY0ICpzLCB1aW50NjRfdCB2 YWx1ZSkKICAgICAgICAgICogdGhlIGhpZ2ggMzIgYml0cywgc28gaXQgY2FuIHJhY2UganVzdCBm aW5lIHdpdGggc3RhdDY0X2FkZDMyX2NhcnJ5CiAgICAgICAgICAqIGFuZCBldmVuIHN0YXQ2NF9n ZXQhCiAgICAgICAgICAqLwotICAgICAgICBvbGQgPSBhdG9taWNfY21weGNoZygmcy0+bG93LCBv cmlnLCByZXN1bHQpOworICAgICAgICBvbGQgPSBxYXRvbWljX2NtcHhjaGcoJnMtPmxvdywgb3Jp ZywgcmVzdWx0KTsKICAgICAgICAgaWYgKG9yaWcgPT0gb2xkKSB7CiAgICAgICAgICAgICByZXR1 cm47CiAgICAgICAgIH0KQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3Rh dDY0X21pbihTdGF0NjQgKnMsIHVpbnQ2NF90IHZhbHVlKQogICAgIGhpZ2ggPSB2YWx1ZSA+PiAz MjsKICAgICBsb3cgPSAodWludDMyX3QpIHZhbHVlOwogICAgIGRvIHsKLSAgICAgICAgb3JpZ19o aWdoID0gYXRvbWljX3JlYWQoJnMtPmhpZ2gpOworICAgICAgICBvcmlnX2hpZ2ggPSBxYXRvbWlj X3JlYWQoJnMtPmhpZ2gpOwogICAgICAgICBpZiAob3JpZ19oaWdoIDwgaGlnaCkgewogICAgICAg ICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMjgsNyArMTI4LDcgQEAgc3RhdGljIGlubGlu ZSB2b2lkIHN0YXQ2NF9taW4oU3RhdDY0ICpzLCB1aW50NjRfdCB2YWx1ZSkKICAgICAgICAgICAg ICAqIHRoZSB3cml0ZSBiYXJyaWVyIGluIHN0YXQ2NF9taW5fc2xvdy4KICAgICAgICAgICAgICAq LwogICAgICAgICAgICAgc21wX3JtYigpOwotICAgICAgICAgICAgb3JpZ19sb3cgPSBhdG9taWNf cmVhZCgmcy0+bG93KTsKKyAgICAgICAgICAgIG9yaWdfbG93ID0gcWF0b21pY19yZWFkKCZzLT5s b3cpOwogICAgICAgICAgICAgaWYgKG9yaWdfbG93IDw9IGxvdykgewogICAgICAgICAgICAgICAg IHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTEzOCw3ICsxMzgsNyBAQCBzdGF0aWMgaW5saW5l IHZvaWQgc3RhdDY0X21pbihTdGF0NjQgKnMsIHVpbnQ2NF90IHZhbHVlKQogICAgICAgICAgICAg ICogd2UgbWF5IG1pc3MgYmVpbmcgbHVja3kuCiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAg IHNtcF9ybWIoKTsKLSAgICAgICAgICAgIG9yaWdfaGlnaCA9IGF0b21pY19yZWFkKCZzLT5oaWdo KTsKKyAgICAgICAgICAgIG9yaWdfaGlnaCA9IHFhdG9taWNfcmVhZCgmcy0+aGlnaCk7CiAgICAg ICAgICAgICBpZiAob3JpZ19oaWdoIDwgaGlnaCkgewogICAgICAgICAgICAgICAgIHJldHVybjsK ICAgICAgICAgICAgIH0KQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3Rh dDY0X21heChTdGF0NjQgKnMsIHVpbnQ2NF90IHZhbHVlKQogICAgIGhpZ2ggPSB2YWx1ZSA+PiAz MjsKICAgICBsb3cgPSAodWludDMyX3QpIHZhbHVlOwogICAgIGRvIHsKLSAgICAgICAgb3JpZ19o aWdoID0gYXRvbWljX3JlYWQoJnMtPmhpZ2gpOworICAgICAgICBvcmlnX2hpZ2ggPSBxYXRvbWlj X3JlYWQoJnMtPmhpZ2gpOwogICAgICAgICBpZiAob3JpZ19oaWdoID4gaGlnaCkgewogICAgICAg ICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xNjgsNyArMTY4LDcgQEAgc3RhdGljIGlubGlu ZSB2b2lkIHN0YXQ2NF9tYXgoU3RhdDY0ICpzLCB1aW50NjRfdCB2YWx1ZSkKICAgICAgICAgICAg ICAqIHRoZSB3cml0ZSBiYXJyaWVyIGluIHN0YXQ2NF9tYXhfc2xvdy4KICAgICAgICAgICAgICAq LwogICAgICAgICAgICAgc21wX3JtYigpOwotICAgICAgICAgICAgb3JpZ19sb3cgPSBhdG9taWNf cmVhZCgmcy0+bG93KTsKKyAgICAgICAgICAgIG9yaWdfbG93ID0gcWF0b21pY19yZWFkKCZzLT5s b3cpOwogICAgICAgICAgICAgaWYgKG9yaWdfbG93ID49IGxvdykgewogICAgICAgICAgICAgICAg IHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTE3OCw3ICsxNzgsNyBAQCBzdGF0aWMgaW5saW5l IHZvaWQgc3RhdDY0X21heChTdGF0NjQgKnMsIHVpbnQ2NF90IHZhbHVlKQogICAgICAgICAgICAg ICogd2UgbWF5IG1pc3MgYmVpbmcgbHVja3kuCiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAg IHNtcF9ybWIoKTsKLSAgICAgICAgICAgIG9yaWdfaGlnaCA9IGF0b21pY19yZWFkKCZzLT5oaWdo KTsKKyAgICAgICAgICAgIG9yaWdfaGlnaCA9IHFhdG9taWNfcmVhZCgmcy0+aGlnaCk7CiAgICAg ICAgICAgICBpZiAob3JpZ19oaWdoID4gaGlnaCkgewogICAgICAgICAgICAgICAgIHJldHVybjsK ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcWVtdS90aHJlYWQuaCBiL2luY2x1 ZGUvcWVtdS90aHJlYWQuaAppbmRleCA0YmFmNGQxNzE1Li41NDM1NzYzMTg0IDEwMDY0NAotLS0g YS9pbmNsdWRlL3FlbXUvdGhyZWFkLmgKKysrIGIvaW5jbHVkZS9xZW11L3RocmVhZC5oCkBAIC03 MCwzMyArNzAsMzMgQEAgZXh0ZXJuIFFlbXVDb25kVGltZWRXYWl0RnVuYyBxZW11X2NvbmRfdGlt ZWR3YWl0X2Z1bmM7CiAgICAgICAgICAgICBxZW11X2NvbmRfdGltZWR3YWl0X2ltcGwoYywgbSwg bXMsIF9fRklMRV9fLCBfX0xJTkVfXykKICNlbHNlCiAjZGVmaW5lIHFlbXVfbXV0ZXhfbG9jayht KSAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg ICAgICBRZW11TXV0ZXhMb2NrRnVuYyBfZiA9IGF0b21pY19yZWFkKCZxZW11X211dGV4X2xvY2tf ZnVuYyk7ICBcCisgICAgICAgICAgICBRZW11TXV0ZXhMb2NrRnVuYyBfZiA9IHFhdG9taWNfcmVh ZCgmcWVtdV9tdXRleF9sb2NrX2Z1bmMpOyBcCiAgICAgICAgICAgICBfZihtLCBfX0ZJTEVfXywg X19MSU5FX18pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIH0p CiAKLSNkZWZpbmUgcWVtdV9tdXRleF90cnlsb2NrKG0pICh7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIFFlbXVNdXRleFRyeWxvY2tGdW5jIF9m ID0gYXRvbWljX3JlYWQoJnFlbXVfbXV0ZXhfdHJ5bG9ja19mdW5jKTsgXAotICAgICAgICAgICAg X2YobSwgX19GSUxFX18sIF9fTElORV9fKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorI2RlZmluZSBxZW11X211dGV4X3RyeWxvY2sobSkgKHsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgUWVtdU11dGV4VHJ5bG9j a0Z1bmMgX2YgPSBxYXRvbWljX3JlYWQoJnFlbXVfbXV0ZXhfdHJ5bG9ja19mdW5jKTsgXAorICAg ICAgICAgICAgX2YobSwgX19GSUxFX18sIF9fTElORV9fKTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAogICAgICAgICB9KQogCi0jZGVmaW5lIHFlbXVfcmVjX211dGV4 X2xvY2sobSkgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg ICAgICAgICBRZW11UmVjTXV0ZXhMb2NrRnVuYyBfZiA9IGF0b21pY19yZWFkKCZxZW11X3JlY19t dXRleF9sb2NrX2Z1bmMpOyBcCi0gICAgICAgICAgICBfZihtLCBfX0ZJTEVfXywgX19MSU5FX18p OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIHFlbXVfcmVjX211 dGV4X2xvY2sobSkgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgICAgICBRZW11UmVjTXV0ZXhMb2NrRnVuYyBfZiA9IHFhdG9taWNfcmVhZCgm cWVtdV9yZWNfbXV0ZXhfbG9ja19mdW5jKTtcCisgICAgICAgICAgICBfZihtLCBfX0ZJTEVfXywg X19MSU5FX18pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg ICAgIH0pCiAKICNkZWZpbmUgcWVtdV9yZWNfbXV0ZXhfdHJ5bG9jayhtKSAoeyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBRZW11UmVjTXV0ZXhUcnlsb2NrRnVuYyBf ZjsgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgX2YgPSBhdG9taWNfcmVh ZCgmcWVtdV9yZWNfbXV0ZXhfdHJ5bG9ja19mdW5jKTsgICAgIFwKKyAgICAgICAgICAgIF9mID0g cWF0b21pY19yZWFkKCZxZW11X3JlY19tdXRleF90cnlsb2NrX2Z1bmMpOyAgICBcCiAgICAgICAg ICAgICBfZihtLCBfX0ZJTEVfXywgX19MSU5FX18pOyAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgICAgICB9KQogCiAjZGVmaW5lIHFlbXVfY29uZF93YWl0KGMsIG0pICh7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBRZW11Q29uZFdh aXRGdW5jIF9mID0gYXRvbWljX3JlYWQoJnFlbXVfY29uZF93YWl0X2Z1bmMpOyAgICBcCisgICAg ICAgICAgICBRZW11Q29uZFdhaXRGdW5jIF9mID0gcWF0b21pY19yZWFkKCZxZW11X2NvbmRfd2Fp dF9mdW5jKTsgICBcCiAgICAgICAgICAgICBfZihjLCBtLCBfX0ZJTEVfXywgX19MSU5FX18pOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIH0pCiAKICNkZWZpbmUgcWVt dV9jb25kX3RpbWVkd2FpdChjLCBtLCBtcykgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0gICAgICAgICAgICBRZW11Q29uZFRpbWVkV2FpdEZ1bmMgX2YgPSBhdG9t aWNfcmVhZCgmcWVtdV9jb25kX3RpbWVkd2FpdF9mdW5jKTsgXAorICAgICAgICAgICAgUWVtdUNv bmRUaW1lZFdhaXRGdW5jIF9mID0gcWF0b21pY19yZWFkKCZxZW11X2NvbmRfdGltZWR3YWl0X2Z1 bmMpO1wKICAgICAgICAgICAgIF9mKGMsIG0sIG1zLCBfX0ZJTEVfXywgX19MSU5FX18pOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIH0pCiAjZW5kaWYKQEAgLTIz Niw3ICsyMzYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcWVtdV9zcGluX2xvY2soUWVtdVNwaW4g KnNwaW4pCiAgICAgX190c2FuX211dGV4X3ByZV9sb2NrKHNwaW4sIDApOwogI2VuZGlmCiAgICAg d2hpbGUgKHVubGlrZWx5KF9fc3luY19sb2NrX3Rlc3RfYW5kX3NldCgmc3Bpbi0+dmFsdWUsIHRy dWUpKSkgewotICAgICAgICB3aGlsZSAoYXRvbWljX3JlYWQoJnNwaW4tPnZhbHVlKSkgeworICAg ICAgICB3aGlsZSAocWF0b21pY19yZWFkKCZzcGluLT52YWx1ZSkpIHsKICAgICAgICAgICAgIGNw dV9yZWxheCgpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjYxLDcgKzI2MSw3IEBAIHN0YXRpYyBp bmxpbmUgYm9vbCBxZW11X3NwaW5fdHJ5bG9jayhRZW11U3BpbiAqc3BpbikKIAogc3RhdGljIGlu bGluZSBib29sIHFlbXVfc3Bpbl9sb2NrZWQoUWVtdVNwaW4gKnNwaW4pCiB7Ci0gICAgcmV0dXJu IGF0b21pY19yZWFkKCZzcGluLT52YWx1ZSk7CisgICAgcmV0dXJuIHFhdG9taWNfcmVhZCgmc3Bp bi0+dmFsdWUpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcWVtdV9zcGluX3VubG9jayhRZW11 U3BpbiAqc3BpbikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3RhbmRhcmQtaGVhZGVycy9kcml2ZXJz L2luZmluaWJhbmQvaHcvdm13X3B2cmRtYS9wdnJkbWFfcmluZy5oIGIvaW5jbHVkZS9zdGFuZGFy ZC1oZWFkZXJzL2RyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9yaW5nLmgK aW5kZXggYWNkNGM4MzQ2ZC4uN2I0MDYyYTFhMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zdGFuZGFy ZC1oZWFkZXJzL2RyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9yaW5nLmgK KysrIGIvaW5jbHVkZS9zdGFuZGFyZC1oZWFkZXJzL2RyaXZlcnMvaW5maW5pYmFuZC9ody92bXdf cHZyZG1hL3B2cmRtYV9yaW5nLmgKQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIGlubGluZSBpbnQg cHZyZG1hX2lkeF92YWxpZCh1aW50MzJfdCBpZHgsIHVpbnQzMl90IG1heF9lbGVtcykKIAogc3Rh dGljIGlubGluZSBpbnQzMl90IHB2cmRtYV9pZHgoaW50ICp2YXIsIHVpbnQzMl90IG1heF9lbGVt cykKIHsKLQljb25zdCB1bnNpZ25lZCBpbnQgaWR4ID0gYXRvbWljX3JlYWQodmFyKTsKKwljb25z dCB1bnNpZ25lZCBpbnQgaWR4ID0gcWF0b21pY19yZWFkKHZhcik7CiAKIAlpZiAocHZyZG1hX2lk eF92YWxpZChpZHgsIG1heF9lbGVtcykpCiAJCXJldHVybiBpZHggJiAobWF4X2VsZW1zIC0gMSk7 CkBAIC03NywxNyArNzcsMTcgQEAgc3RhdGljIGlubGluZSBpbnQzMl90IHB2cmRtYV9pZHgoaW50 ICp2YXIsIHVpbnQzMl90IG1heF9lbGVtcykKIAogc3RhdGljIGlubGluZSB2b2lkIHB2cmRtYV9p ZHhfcmluZ19pbmMoaW50ICp2YXIsIHVpbnQzMl90IG1heF9lbGVtcykKIHsKLQl1aW50MzJfdCBp ZHggPSBhdG9taWNfcmVhZCh2YXIpICsgMTsJLyogSW5jcmVtZW50LiAqLworCXVpbnQzMl90IGlk eCA9IHFhdG9taWNfcmVhZCh2YXIpICsgMTsJLyogSW5jcmVtZW50LiAqLwogCiAJaWR4ICY9ICht YXhfZWxlbXMgPDwgMSkgLSAxOwkJLyogTW9kdWxvIHNpemUsIGZsaXAgZ2VuLiAqLwotCWF0b21p Y19zZXQodmFyLCBpZHgpOworCXFhdG9taWNfc2V0KHZhciwgaWR4KTsKIH0KIAogc3RhdGljIGlu bGluZSBpbnQzMl90IHB2cmRtYV9pZHhfcmluZ19oYXNfc3BhY2UoY29uc3Qgc3RydWN0IHB2cmRt YV9yaW5nICpyLAogCQkJCQkgICAgICB1aW50MzJfdCBtYXhfZWxlbXMsIHVpbnQzMl90ICpvdXRf dGFpbCkKIHsKLQljb25zdCB1aW50MzJfdCB0YWlsID0gYXRvbWljX3JlYWQoJnItPnByb2RfdGFp bCk7Ci0JY29uc3QgdWludDMyX3QgaGVhZCA9IGF0b21pY19yZWFkKCZyLT5jb25zX2hlYWQpOwor CWNvbnN0IHVpbnQzMl90IHRhaWwgPSBxYXRvbWljX3JlYWQoJnItPnByb2RfdGFpbCk7CisJY29u c3QgdWludDMyX3QgaGVhZCA9IHFhdG9taWNfcmVhZCgmci0+Y29uc19oZWFkKTsKIAogCWlmIChw dnJkbWFfaWR4X3ZhbGlkKHRhaWwsIG1heF9lbGVtcykgJiYKIAkgICAgcHZyZG1hX2lkeF92YWxp ZChoZWFkLCBtYXhfZWxlbXMpKSB7CkBAIC0xMDAsOCArMTAwLDggQEAgc3RhdGljIGlubGluZSBp bnQzMl90IHB2cmRtYV9pZHhfcmluZ19oYXNfc3BhY2UoY29uc3Qgc3RydWN0IHB2cmRtYV9yaW5n ICpyLAogc3RhdGljIGlubGluZSBpbnQzMl90IHB2cmRtYV9pZHhfcmluZ19oYXNfZGF0YShjb25z dCBzdHJ1Y3QgcHZyZG1hX3JpbmcgKnIsCiAJCQkJCSAgICAgdWludDMyX3QgbWF4X2VsZW1zLCB1 aW50MzJfdCAqb3V0X2hlYWQpCiB7Ci0JY29uc3QgdWludDMyX3QgdGFpbCA9IGF0b21pY19yZWFk KCZyLT5wcm9kX3RhaWwpOwotCWNvbnN0IHVpbnQzMl90IGhlYWQgPSBhdG9taWNfcmVhZCgmci0+ Y29uc19oZWFkKTsKKwljb25zdCB1aW50MzJfdCB0YWlsID0gcWF0b21pY19yZWFkKCZyLT5wcm9k X3RhaWwpOworCWNvbnN0IHVpbnQzMl90IGhlYWQgPSBxYXRvbWljX3JlYWQoJnItPmNvbnNfaGVh ZCk7CiAKIAlpZiAocHZyZG1hX2lkeF92YWxpZCh0YWlsLCBtYXhfZWxlbXMpICYmCiAJICAgIHB2 cmRtYV9pZHhfdmFsaWQoaGVhZCwgbWF4X2VsZW1zKSkgewpkaWZmIC0tZ2l0IGEvbGludXgtdXNl ci9xZW11LmggYi9saW51eC11c2VyL3FlbXUuaAppbmRleCBhNjlhMGJkMzQ3Li45NDFjYTk5NzIy IDEwMDY0NAotLS0gYS9saW51eC11c2VyL3FlbXUuaAorKysgYi9saW51eC11c2VyL3FlbXUuaApA QCAtMTQ2LDcgKzE0Niw3IEBAIHR5cGVkZWYgc3RydWN0IFRhc2tTdGF0ZSB7CiAgICAgLyogTm9u emVybyBpZiBwcm9jZXNzX3BlbmRpbmdfc2lnbmFscygpIG5lZWRzIHRvIGRvIHNvbWV0aGluZyAo ZWl0aGVyCiAgICAgICogaGFuZGxlIGEgcGVuZGluZyBzaWduYWwgb3IgdW5ibG9jayBzaWduYWxz KS4KICAgICAgKiBUaGlzIGZsYWcgaXMgd3JpdHRlbiBmcm9tIGEgc2lnbmFsIGhhbmRsZXIgc28g c2hvdWxkIGJlIGFjY2Vzc2VkIHZpYQotICAgICAqIHRoZSBhdG9taWNfcmVhZCgpIGFuZCBhdG9t aWNfc2V0KCkgZnVuY3Rpb25zLiAoSXQgaXMgbm90IGFjY2Vzc2VkCisgICAgICogdGhlIHFhdG9t aWNfcmVhZCgpIGFuZCBxYXRvbWljX3NldCgpIGZ1bmN0aW9ucy4gKEl0IGlzIG5vdCBhY2Nlc3Nl ZAogICAgICAqIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4pCiAgICAgICovCiAgICAgaW50IHNpZ25h bF9wZW5kaW5nOwpkaWZmIC0tZ2l0IGEvdGNnL2kzODYvdGNnLXRhcmdldC5oIGIvdGNnL2kzODYv dGNnLXRhcmdldC5oCmluZGV4IDk5YWMxZTM5NTguLmQyYmFmNzk2YjAgMTAwNjQ0Ci0tLSBhL3Rj Zy9pMzg2L3RjZy10YXJnZXQuaAorKysgYi90Y2cvaTM4Ni90Y2ctdGFyZ2V0LmgKQEAgLTIxNSw3 ICsyMTUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdGJfdGFyZ2V0X3NldF9qbXBfdGFyZ2V0KHVp bnRwdHJfdCB0Y19wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnRwdHJfdCBqbXBfYWRkciwgdWludHB0cl90IGFkZHIpCiB7CiAgICAgLyogcGF0Y2gg dGhlIGJyYW5jaCBkZXN0aW5hdGlvbiAqLwotICAgIGF0b21pY19zZXQoKGludDMyX3QgKilqbXBf YWRkciwgYWRkciAtIChqbXBfYWRkciArIDQpKTsKKyAgICBxYXRvbWljX3NldCgoaW50MzJfdCAq KWptcF9hZGRyLCBhZGRyIC0gKGptcF9hZGRyICsgNCkpOwogICAgIC8qIG5vIG5lZWQgdG8gZmx1 c2ggaWNhY2hlIGV4cGxpY2l0bHkgKi8KIH0KIApkaWZmIC0tZ2l0IGEvdGNnL3MzOTAvdGNnLXRh cmdldC5oIGIvdGNnL3MzOTAvdGNnLXRhcmdldC5oCmluZGV4IDA3YWNjYWJiZDEuLjYzYzg3OTdi ZDMgMTAwNjQ0Ci0tLSBhL3RjZy9zMzkwL3RjZy10YXJnZXQuaAorKysgYi90Y2cvczM5MC90Y2ct dGFyZ2V0LmgKQEAgLTE1NCw3ICsxNTQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdGJfdGFyZ2V0 X3NldF9qbXBfdGFyZ2V0KHVpbnRwdHJfdCB0Y19wdHIsCiB7CiAgICAgLyogcGF0Y2ggdGhlIGJy YW5jaCBkZXN0aW5hdGlvbiAqLwogICAgIGludHB0cl90IGRpc3AgPSBhZGRyIC0gKGptcF9hZGRy IC0gMik7Ci0gICAgYXRvbWljX3NldCgoaW50MzJfdCAqKWptcF9hZGRyLCBkaXNwIC8gMik7Cisg ICAgcWF0b21pY19zZXQoKGludDMyX3QgKilqbXBfYWRkciwgZGlzcCAvIDIpOwogICAgIC8qIG5v IG5lZWQgdG8gZmx1c2ggaWNhY2hlIGV4cGxpY2l0bHkgKi8KIH0KIApkaWZmIC0tZ2l0IGEvdGNn L3RjaS90Y2ctdGFyZ2V0LmggYi90Y2cvdGNpL3RjZy10YXJnZXQuaAppbmRleCA4YjkwYWI3MWNi Li44YzFjMWQyNjVkIDEwMDY0NAotLS0gYS90Y2cvdGNpL3RjZy10YXJnZXQuaAorKysgYi90Y2cv dGNpL3RjZy10YXJnZXQuaApAQCAtMjA2LDcgKzIwNiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0 Yl90YXJnZXRfc2V0X2ptcF90YXJnZXQodWludHB0cl90IHRjX3B0ciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGptcF9hZGRyLCB1aW50cHRy X3QgYWRkcikKIHsKICAgICAvKiBwYXRjaCB0aGUgYnJhbmNoIGRlc3RpbmF0aW9uICovCi0gICAg YXRvbWljX3NldCgoaW50MzJfdCAqKWptcF9hZGRyLCBhZGRyIC0gKGptcF9hZGRyICsgNCkpOwor ICAgIHFhdG9taWNfc2V0KChpbnQzMl90ICopam1wX2FkZHIsIGFkZHIgLSAoam1wX2FkZHIgKyA0 KSk7CiAgICAgLyogbm8gbmVlZCB0byBmbHVzaCBpY2FjaGUgZXhwbGljaXRseSAqLwogfQogCmRp ZmYgLS1naXQgYS9hY2NlbC9rdm0va3ZtLWFsbC5jIGIvYWNjZWwva3ZtL2t2bS1hbGwuYwppbmRl eCBhZDhiMzE1YjM1Li5lNGJiZjc4MzY2IDEwMDY0NAotLS0gYS9hY2NlbC9rdm0va3ZtLWFsbC5j CisrKyBiL2FjY2VsL2t2bS9rdm0tYWxsLmMKQEAgLTIzNzksNyArMjM3OSw3IEBAIHN0YXRpYyBf X3RocmVhZCBib29sIGhhdmVfc2lnYnVzX3BlbmRpbmc7CiAKIHN0YXRpYyB2b2lkIGt2bV9jcHVf a2ljayhDUFVTdGF0ZSAqY3B1KQogewotICAgIGF0b21pY19zZXQoJmNwdS0+a3ZtX3J1bi0+aW1t ZWRpYXRlX2V4aXQsIDEpOworICAgIHFhdG9taWNfc2V0KCZjcHUtPmt2bV9ydW4tPmltbWVkaWF0 ZV9leGl0LCAxKTsKIH0KIAogc3RhdGljIHZvaWQga3ZtX2NwdV9raWNrX3NlbGYodm9pZCkKQEAg LTI0MDAsNyArMjQwMCw3IEBAIHN0YXRpYyB2b2lkIGt2bV9lYXRfc2lnbmFscyhDUFVTdGF0ZSAq Y3B1KQogICAgIGludCByOwogCiAgICAgaWYgKGt2bV9pbW1lZGlhdGVfZXhpdCkgewotICAgICAg ICBhdG9taWNfc2V0KCZjcHUtPmt2bV9ydW4tPmltbWVkaWF0ZV9leGl0LCAwKTsKKyAgICAgICAg cWF0b21pY19zZXQoJmNwdS0+a3ZtX3J1bi0+aW1tZWRpYXRlX2V4aXQsIDApOwogICAgICAgICAv KiBXcml0ZSBrdm1fcnVuLT5pbW1lZGlhdGVfZXhpdCBiZWZvcmUgdGhlIGNwdS0+ZXhpdF9yZXF1 ZXN0CiAgICAgICAgICAqIHdyaXRlIGluIGt2bV9jcHVfZXhlYy4KICAgICAgICAgICovCkBAIC0y NDM0LDcgKzI0MzQsNyBAQCBpbnQga3ZtX2NwdV9leGVjKENQVVN0YXRlICpjcHUpCiAgICAgRFBS SU5URigia3ZtX2NwdV9leGVjKClcbiIpOwogCiAgICAgaWYgKGt2bV9hcmNoX3Byb2Nlc3NfYXN5 bmNfZXZlbnRzKGNwdSkpIHsKLSAgICAgICAgYXRvbWljX3NldCgmY3B1LT5leGl0X3JlcXVlc3Qs IDApOworICAgICAgICBxYXRvbWljX3NldCgmY3B1LT5leGl0X3JlcXVlc3QsIDApOwogICAgICAg ICByZXR1cm4gRVhDUF9ITFQ7CiAgICAgfQogCkBAIC0yNDUwLDcgKzI0NTAsNyBAQCBpbnQga3Zt X2NwdV9leGVjKENQVVN0YXRlICpjcHUpCiAgICAgICAgIH0KIAogICAgICAgICBrdm1fYXJjaF9w cmVfcnVuKGNwdSwgcnVuKTsKLSAgICAgICAgaWYgKGF0b21pY19yZWFkKCZjcHUtPmV4aXRfcmVx dWVzdCkpIHsKKyAgICAgICAgaWYgKHFhdG9taWNfcmVhZCgmY3B1LT5leGl0X3JlcXVlc3QpKSB7 CiAgICAgICAgICAgICBEUFJJTlRGKCJpbnRlcnJ1cHQgZXhpdCByZXF1ZXN0ZWRcbiIpOwogICAg ICAgICAgICAgLyoKICAgICAgICAgICAgICAqIEtWTSByZXF1aXJlcyB1cyB0byByZWVudGVyIHRo ZSBrZXJuZWwgYWZ0ZXIgSU8gZXhpdHMgdG8gY29tcGxldGUKQEAgLTI1NzcsNyArMjU3Nyw3IEBA IGludCBrdm1fY3B1X2V4ZWMoQ1BVU3RhdGUgKmNwdSkKICAgICAgICAgdm1fc3RvcChSVU5fU1RB VEVfSU5URVJOQUxfRVJST1IpOwogICAgIH0KIAotICAgIGF0b21pY19zZXQoJmNwdS0+ZXhpdF9y ZXF1ZXN0LCAwKTsKKyAgICBxYXRvbWljX3NldCgmY3B1LT5leGl0X3JlcXVlc3QsIDApOwogICAg IHJldHVybiByZXQ7CiB9CiAKQEAgLTI5OTQsNyArMjk5NCw3IEBAIGludCBrdm1fb25fc2lnYnVz X3ZjcHUoQ1BVU3RhdGUgKmNwdSwgaW50IGNvZGUsIHZvaWQgKmFkZHIpCiAgICAgaGF2ZV9zaWdi dXNfcGVuZGluZyA9IHRydWU7CiAgICAgcGVuZGluZ19zaWdidXNfYWRkciA9IGFkZHI7CiAgICAg cGVuZGluZ19zaWdidXNfY29kZSA9IGNvZGU7Ci0gICAgYXRvbWljX3NldCgmY3B1LT5leGl0X3Jl cXVlc3QsIDEpOworICAgIHFhdG9taWNfc2V0KCZjcHUtPmV4aXRfcmVxdWVzdCwgMSk7CiAgICAg cmV0dXJuIDA7CiAjZWxzZQogICAgIHJldHVybiAxOwpkaWZmIC0tZ2l0IGEvYWNjZWwvdGNnL2Nw dS1leGVjLmMgYi9hY2NlbC90Y2cvY3B1LWV4ZWMuYwppbmRleCA2NmQzOGY5ZDg1Li5lMTBiNDYy ODNjIDEwMDY0NAotLS0gYS9hY2NlbC90Y2cvY3B1LWV4ZWMuYworKysgYi9hY2NlbC90Y2cvY3B1 LWV4ZWMuYwpAQCAtMzY3LDcgKzM2Nyw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0Yl9hZGRfanVt cChUcmFuc2xhdGlvbkJsb2NrICp0YiwgaW50IG4sCiAgICAgICAgIGdvdG8gb3V0X3VubG9ja19u ZXh0OwogICAgIH0KICAgICAvKiBBdG9taWNhbGx5IGNsYWltIHRoZSBqdW1wIGRlc3RpbmF0aW9u IHNsb3Qgb25seSBpZiBpdCB3YXMgTlVMTCAqLwotICAgIG9sZCA9IGF0b21pY19jbXB4Y2hnKCZ0 Yi0+am1wX2Rlc3Rbbl0sICh1aW50cHRyX3QpTlVMTCwgKHVpbnRwdHJfdCl0Yl9uZXh0KTsKKyAg ICBvbGQgPSBxYXRvbWljX2NtcHhjaGcoJnRiLT5qbXBfZGVzdFtuXSwgKHVpbnRwdHJfdClOVUxM LAorICAgICAgICAgICAgICAgICAgICAgICAgICAodWludHB0cl90KXRiX25leHQpOwogICAgIGlm IChvbGQpIHsKICAgICAgICAgZ290byBvdXRfdW5sb2NrX25leHQ7CiAgICAgfQpAQCAtNDA3LDcg KzQwOCw3IEBAIHN0YXRpYyBpbmxpbmUgVHJhbnNsYXRpb25CbG9jayAqdGJfZmluZChDUFVTdGF0 ZSAqY3B1LAogICAgICAgICB0YiA9IHRiX2dlbl9jb2RlKGNwdSwgcGMsIGNzX2Jhc2UsIGZsYWdz LCBjZl9tYXNrKTsKICAgICAgICAgbW1hcF91bmxvY2soKTsKICAgICAgICAgLyogV2UgYWRkIHRo ZSBUQiBpbiB0aGUgdmlydHVhbCBwYyBoYXNoIHRhYmxlIGZvciB0aGUgZmFzdCBsb29rdXAgKi8K LSAgICAgICAgYXRvbWljX3NldCgmY3B1LT50Yl9qbXBfY2FjaGVbdGJfam1wX2NhY2hlX2hhc2hf ZnVuYyhwYyldLCB0Yik7CisgICAgICAgIHFhdG9taWNfc2V0KCZjcHUtPnRiX2ptcF9jYWNoZVt0 Yl9qbXBfY2FjaGVfaGFzaF9mdW5jKHBjKV0sIHRiKTsKICAgICB9CiAjaWZuZGVmIENPTkZJR19V U0VSX09OTFkKICAgICAvKiBXZSBkb24ndCB0YWtlIGNhcmUgb2YgZGlyZWN0IGp1bXBzIHdoZW4g YWRkcmVzcyBtYXBwaW5nIGNoYW5nZXMgaW4KQEAgLTUzNiw5ICs1MzcsOSBAQCBzdGF0aWMgaW5s aW5lIGJvb2wgY3B1X2hhbmRsZV9pbnRlcnJ1cHQoQ1BVU3RhdGUgKmNwdSwKICAgICAgKiBFbnN1 cmUgemVyb2luZyBoYXBwZW5zIGJlZm9yZSByZWFkaW5nIGNwdS0+ZXhpdF9yZXF1ZXN0IG9yCiAg ICAgICogY3B1LT5pbnRlcnJ1cHRfcmVxdWVzdCAoc2VlIGFsc28gc21wX3dtYiBpbiBjcHVfZXhp dCgpKQogICAgICAqLwotICAgIGF0b21pY19tYl9zZXQoJmNwdV9uZWcoY3B1KS0+aWNvdW50X2Rl Y3IudTE2LmhpZ2gsIDApOworICAgIHFhdG9taWNfbWJfc2V0KCZjcHVfbmVnKGNwdSktPmljb3Vu dF9kZWNyLnUxNi5oaWdoLCAwKTsKIAotICAgIGlmICh1bmxpa2VseShhdG9taWNfcmVhZCgmY3B1 LT5pbnRlcnJ1cHRfcmVxdWVzdCkpKSB7CisgICAgaWYgKHVubGlrZWx5KHFhdG9taWNfcmVhZCgm Y3B1LT5pbnRlcnJ1cHRfcmVxdWVzdCkpKSB7CiAgICAgICAgIGludCBpbnRlcnJ1cHRfcmVxdWVz dDsKICAgICAgICAgcWVtdV9tdXRleF9sb2NrX2lvdGhyZWFkKCk7CiAgICAgICAgIGludGVycnVw dF9yZXF1ZXN0ID0gY3B1LT5pbnRlcnJ1cHRfcmVxdWVzdDsKQEAgLTYxMywxMCArNjE0LDEwIEBA IHN0YXRpYyBpbmxpbmUgYm9vbCBjcHVfaGFuZGxlX2ludGVycnVwdChDUFVTdGF0ZSAqY3B1LAog ICAgIH0KIAogICAgIC8qIEZpbmFsbHksIGNoZWNrIGlmIHdlIG5lZWQgdG8gZXhpdCB0byB0aGUg bWFpbiBsb29wLiAgKi8KLSAgICBpZiAodW5saWtlbHkoYXRvbWljX3JlYWQoJmNwdS0+ZXhpdF9y ZXF1ZXN0KSkKKyAgICBpZiAodW5saWtlbHkocWF0b21pY19yZWFkKCZjcHUtPmV4aXRfcmVxdWVz dCkpCiAgICAgICAgIHx8ICh1c2VfaWNvdW50CiAgICAgICAgICAgICAmJiBjcHVfbmVnKGNwdSkt Pmljb3VudF9kZWNyLnUxNi5sb3cgKyBjcHUtPmljb3VudF9leHRyYSA9PSAwKSkgewotICAgICAg ICBhdG9taWNfc2V0KCZjcHUtPmV4aXRfcmVxdWVzdCwgMCk7CisgICAgICAgIHFhdG9taWNfc2V0 KCZjcHUtPmV4aXRfcmVxdWVzdCwgMCk7CiAgICAgICAgIGlmIChjcHUtPmV4Y2VwdGlvbl9pbmRl eCA9PSAtMSkgewogICAgICAgICAgICAgY3B1LT5leGNlcHRpb25faW5kZXggPSBFWENQX0lOVEVS UlVQVDsKICAgICAgICAgfQpAQCAtNjQyLDcgKzY0Myw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBj cHVfbG9vcF9leGVjX3RiKENQVVN0YXRlICpjcHUsIFRyYW5zbGF0aW9uQmxvY2sgKnRiLAogICAg IH0KIAogICAgICpsYXN0X3RiID0gTlVMTDsKLSAgICBpbnNuc19sZWZ0ID0gYXRvbWljX3JlYWQo JmNwdV9uZWcoY3B1KS0+aWNvdW50X2RlY3IudTMyKTsKKyAgICBpbnNuc19sZWZ0ID0gcWF0b21p Y19yZWFkKCZjcHVfbmVnKGNwdSktPmljb3VudF9kZWNyLnUzMik7CiAgICAgaWYgKGluc25zX2xl ZnQgPCAwKSB7CiAgICAgICAgIC8qIFNvbWV0aGluZyBhc2tlZCB1cyB0byBzdG9wIGV4ZWN1dGlu ZyBjaGFpbmVkIFRCczsganVzdAogICAgICAgICAgKiBjb250aW51ZSByb3VuZCB0aGUgbWFpbiBs b29wLiBXaGF0ZXZlciByZXF1ZXN0ZWQgdGhlIGV4aXQKZGlmZiAtLWdpdCBhL2FjY2VsL3RjZy9j cHV0bGIuYyBiL2FjY2VsL3RjZy9jcHV0bGIuYwppbmRleCA2NDg5YWJiZjhjLi5hYWY4ZTQ2YWU1 IDEwMDY0NAotLS0gYS9hY2NlbC90Y2cvY3B1dGxiLmMKKysrIGIvYWNjZWwvdGNnL2NwdXRsYi5j CkBAIC0zMTIsOSArMzEyLDkgQEAgdm9pZCB0bGJfZmx1c2hfY291bnRzKHNpemVfdCAqcGZ1bGws IHNpemVfdCAqcHBhcnQsIHNpemVfdCAqcGVsaWRlKQogICAgIENQVV9GT1JFQUNIKGNwdSkgewog ICAgICAgICBDUFVBcmNoU3RhdGUgKmVudiA9IGNwdS0+ZW52X3B0cjsKIAotICAgICAgICBmdWxs ICs9IGF0b21pY19yZWFkKCZlbnZfdGxiKGVudiktPmMuZnVsbF9mbHVzaF9jb3VudCk7Ci0gICAg ICAgIHBhcnQgKz0gYXRvbWljX3JlYWQoJmVudl90bGIoZW52KS0+Yy5wYXJ0X2ZsdXNoX2NvdW50 KTsKLSAgICAgICAgZWxpZGUgKz0gYXRvbWljX3JlYWQoJmVudl90bGIoZW52KS0+Yy5lbGlkZV9m bHVzaF9jb3VudCk7CisgICAgICAgIGZ1bGwgKz0gcWF0b21pY19yZWFkKCZlbnZfdGxiKGVudikt PmMuZnVsbF9mbHVzaF9jb3VudCk7CisgICAgICAgIHBhcnQgKz0gcWF0b21pY19yZWFkKCZlbnZf dGxiKGVudiktPmMucGFydF9mbHVzaF9jb3VudCk7CisgICAgICAgIGVsaWRlICs9IHFhdG9taWNf cmVhZCgmZW52X3RsYihlbnYpLT5jLmVsaWRlX2ZsdXNoX2NvdW50KTsKICAgICB9CiAgICAgKnBm dWxsID0gZnVsbDsKICAgICAqcHBhcnQgPSBwYXJ0OwpAQCAtMzQ5LDEzICszNDksMTMgQEAgc3Rh dGljIHZvaWQgdGxiX2ZsdXNoX2J5X21tdWlkeF9hc3luY193b3JrKENQVVN0YXRlICpjcHUsIHJ1 bl9vbl9jcHVfZGF0YSBkYXRhKQogICAgIGNwdV90Yl9qbXBfY2FjaGVfY2xlYXIoY3B1KTsKIAog ICAgIGlmICh0b19jbGVhbiA9PSBBTExfTU1VSURYX0JJVFMpIHsKLSAgICAgICAgYXRvbWljX3Nl dCgmZW52X3RsYihlbnYpLT5jLmZ1bGxfZmx1c2hfY291bnQsCisgICAgICAgIHFhdG9taWNfc2V0 KCZlbnZfdGxiKGVudiktPmMuZnVsbF9mbHVzaF9jb3VudCwKICAgICAgICAgICAgICAgICAgICBl bnZfdGxiKGVudiktPmMuZnVsbF9mbHVzaF9jb3VudCArIDEpOwogICAgIH0gZWxzZSB7Ci0gICAg ICAgIGF0b21pY19zZXQoJmVudl90bGIoZW52KS0+Yy5wYXJ0X2ZsdXNoX2NvdW50LAorICAgICAg ICBxYXRvbWljX3NldCgmZW52X3RsYihlbnYpLT5jLnBhcnRfZmx1c2hfY291bnQsCiAgICAgICAg ICAgICAgICAgICAgZW52X3RsYihlbnYpLT5jLnBhcnRfZmx1c2hfY291bnQgKyBjdHBvcDE2KHRv X2NsZWFuKSk7CiAgICAgICAgIGlmICh0b19jbGVhbiAhPSBhc2tlZCkgewotICAgICAgICAgICAg YXRvbWljX3NldCgmZW52X3RsYihlbnYpLT5jLmVsaWRlX2ZsdXNoX2NvdW50LAorICAgICAgICAg ICAgcWF0b21pY19zZXQoJmVudl90bGIoZW52KS0+Yy5lbGlkZV9mbHVzaF9jb3VudCwKICAgICAg ICAgICAgICAgICAgICAgICAgZW52X3RsYihlbnYpLT5jLmVsaWRlX2ZsdXNoX2NvdW50ICsKICAg ICAgICAgICAgICAgICAgICAgICAgY3Rwb3AxNihhc2tlZCAmIH50b19jbGVhbikpOwogICAgICAg ICB9CkBAIC02OTMsNyArNjkzLDcgQEAgdm9pZCB0bGJfdW5wcm90ZWN0X2NvZGUocmFtX2FkZHJf dCByYW1fYWRkcikKICAqIGdlbmVyYXRlZCBjb2RlLgogICoKICAqIE90aGVyIHZDUFVzIG1pZ2h0 IGJlIHJlYWRpbmcgdGhlaXIgVExCcyBkdXJpbmcgZ3Vlc3QgZXhlY3V0aW9uLCBzbyB3ZSB1cGRh dGUKLSAqIHRlLT5hZGRyX3dyaXRlIHdpdGggYXRvbWljX3NldC4gV2UgZG9uJ3QgbmVlZCB0byB3 b3JyeSBhYm91dCB0aGlzIGZvcgorICogdGUtPmFkZHJfd3JpdGUgd2l0aCBxYXRvbWljX3NldC4g V2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCB0aGlzIGZvcgogICogb3ZlcnNpemVkIGd1ZXN0 cyBhcyBNVFRDRyBpcyBkaXNhYmxlZCBmb3IgdGhlbS4KICAqCiAgKiBDYWxsZWQgd2l0aCB0bGJf Yy5sb2NrIGhlbGQuCkBAIC03MTEsNyArNzExLDcgQEAgc3RhdGljIHZvaWQgdGxiX3Jlc2V0X2Rp cnR5X3JhbmdlX2xvY2tlZChDUFVUTEJFbnRyeSAqdGxiX2VudHJ5LAogI2lmIFRDR19PVkVSU0la RURfR1VFU1QKICAgICAgICAgICAgIHRsYl9lbnRyeS0+YWRkcl93cml0ZSB8PSBUTEJfTk9URElS VFk7CiAjZWxzZQotICAgICAgICAgICAgYXRvbWljX3NldCgmdGxiX2VudHJ5LT5hZGRyX3dyaXRl LAorICAgICAgICAgICAgcWF0b21pY19zZXQoJnRsYl9lbnRyeS0+YWRkcl93cml0ZSwKICAgICAg ICAgICAgICAgICAgICAgICAgdGxiX2VudHJ5LT5hZGRyX3dyaXRlIHwgVExCX05PVERJUlRZKTsK ICNlbmRpZgogICAgICAgICB9CkBAIC0xMTM4LDggKzExMzgsOCBAQCBzdGF0aWMgaW5saW5lIHRh cmdldF91bG9uZyB0bGJfcmVhZF9vZnMoQ1BVVExCRW50cnkgKmVudHJ5LCBzaXplX3Qgb2ZzKQog I2lmIFRDR19PVkVSU0laRURfR1VFU1QKICAgICByZXR1cm4gKih0YXJnZXRfdWxvbmcgKikoKHVp bnRwdHJfdCllbnRyeSArIG9mcyk7CiAjZWxzZQotICAgIC8qIG9mcyBtaWdodCBjb3JyZXNwb25k IHRvIC5hZGRyX3dyaXRlLCBzbyB1c2UgYXRvbWljX3JlYWQgKi8KLSAgICByZXR1cm4gYXRvbWlj X3JlYWQoKHRhcmdldF91bG9uZyAqKSgodWludHB0cl90KWVudHJ5ICsgb2ZzKSk7CisgICAgLyog b2ZzIG1pZ2h0IGNvcnJlc3BvbmQgdG8gLmFkZHJfd3JpdGUsIHNvIHVzZSBxYXRvbWljX3JlYWQg Ki8KKyAgICByZXR1cm4gcWF0b21pY19yZWFkKCh0YXJnZXRfdWxvbmcgKikoKHVpbnRwdHJfdCll bnRyeSArIG9mcykpOwogI2VuZGlmCiB9CiAKQEAgLTExNTUsMTEgKzExNTUsMTEgQEAgc3RhdGlj IGJvb2wgdmljdGltX3RsYl9oaXQoQ1BVQXJjaFN0YXRlICplbnYsIHNpemVfdCBtbXVfaWR4LCBz aXplX3QgaW5kZXgsCiAgICAgICAgIENQVVRMQkVudHJ5ICp2dGxiID0gJmVudl90bGIoZW52KS0+ ZFttbXVfaWR4XS52dGFibGVbdmlkeF07CiAgICAgICAgIHRhcmdldF91bG9uZyBjbXA7CiAKLSAg ICAgICAgLyogZWx0X29mcyBtaWdodCBjb3JyZXNwb25kIHRvIC5hZGRyX3dyaXRlLCBzbyB1c2Ug YXRvbWljX3JlYWQgKi8KKyAgICAgICAgLyogZWx0X29mcyBtaWdodCBjb3JyZXNwb25kIHRvIC5h ZGRyX3dyaXRlLCBzbyB1c2UgcWF0b21pY19yZWFkICovCiAjaWYgVENHX09WRVJTSVpFRF9HVUVT VAogICAgICAgICBjbXAgPSAqKHRhcmdldF91bG9uZyAqKSgodWludHB0cl90KXZ0bGIgKyBlbHRf b2ZzKTsKICNlbHNlCi0gICAgICAgIGNtcCA9IGF0b21pY19yZWFkKCh0YXJnZXRfdWxvbmcgKiko KHVpbnRwdHJfdCl2dGxiICsgZWx0X29mcykpOworICAgICAgICBjbXAgPSBxYXRvbWljX3JlYWQo KHRhcmdldF91bG9uZyAqKSgodWludHB0cl90KXZ0bGIgKyBlbHRfb2ZzKSk7CiAjZW5kaWYKIAog ICAgICAgICBpZiAoY21wID09IHBhZ2UpIHsKZGlmZiAtLWdpdCBhL2FjY2VsL3RjZy90Y2ctYWxs LmMgYi9hY2NlbC90Y2cvdGNnLWFsbC5jCmluZGV4IDcwOThhZDk2YzMuLjFjNjY0OTI0ZDcgMTAw NjQ0Ci0tLSBhL2FjY2VsL3RjZy90Y2ctYWxsLmMKKysrIGIvYWNjZWwvdGNnL3RjZy1hbGwuYwpA QCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgdm9pZCB0Y2dfaGFuZGxlX2ludGVycnVwdChDUFVTdGF0 ZSAqY3B1LCBpbnQgbWFzaykKICAgICBpZiAoIXFlbXVfY3B1X2lzX3NlbGYoY3B1KSkgewogICAg ICAgICBxZW11X2NwdV9raWNrKGNwdSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXRvbWljX3Nl dCgmY3B1X25lZyhjcHUpLT5pY291bnRfZGVjci51MTYuaGlnaCwgLTEpOworICAgICAgICBxYXRv bWljX3NldCgmY3B1X25lZyhjcHUpLT5pY291bnRfZGVjci51MTYuaGlnaCwgLTEpOwogICAgICAg ICBpZiAodXNlX2ljb3VudCAmJgogICAgICAgICAgICAgIWNwdS0+Y2FuX2RvX2lvCiAgICAgICAg ICAgICAmJiAobWFzayAmIH5vbGRfbWFzaykgIT0gMCkgewpkaWZmIC0tZ2l0IGEvYWNjZWwvdGNn L3RyYW5zbGF0ZS1hbGwuYyBiL2FjY2VsL3RjZy90cmFuc2xhdGUtYWxsLmMKaW5kZXggMmQ4MzAx MzYzMy4uZjQ0YmE5ZDQ2ZCAxMDA2NDQKLS0tIGEvYWNjZWwvdGNnL3RyYW5zbGF0ZS1hbGwuYwor KysgYi9hY2NlbC90Y2cvdHJhbnNsYXRlLWFsbC5jCkBAIC0zNzcsOSArMzc3LDkgQEAgc3RhdGlj IGludCBjcHVfcmVzdG9yZV9zdGF0ZV9mcm9tX3RiKENQVVN0YXRlICpjcHUsIFRyYW5zbGF0aW9u QmxvY2sgKnRiLAogICAgIHJlc3RvcmVfc3RhdGVfdG9fb3BjKGVudiwgdGIsIGRhdGEpOwogCiAj aWZkZWYgQ09ORklHX1BST0ZJTEVSCi0gICAgYXRvbWljX3NldCgmcHJvZi0+cmVzdG9yZV90aW1l LAorICAgIHFhdG9taWNfc2V0KCZwcm9mLT5yZXN0b3JlX3RpbWUsCiAgICAgICAgICAgICAgICAg cHJvZi0+cmVzdG9yZV90aW1lICsgcHJvZmlsZV9nZXRjbG9jaygpIC0gdGkpOwotICAgIGF0b21p Y19zZXQoJnByb2YtPnJlc3RvcmVfY291bnQsIHByb2YtPnJlc3RvcmVfY291bnQgKyAxKTsKKyAg ICBxYXRvbWljX3NldCgmcHJvZi0+cmVzdG9yZV9jb3VudCwgcHJvZi0+cmVzdG9yZV9jb3VudCAr IDEpOwogI2VuZGlmCiAgICAgcmV0dXJuIDA7CiB9CkBAIC01MDksNyArNTA5LDcgQEAgc3RhdGlj IFBhZ2VEZXNjICpwYWdlX2ZpbmRfYWxsb2ModGJfcGFnZV9hZGRyX3QgaW5kZXgsIGludCBhbGxv YykKIAogICAgIC8qIExldmVsIDIuLk4tMS4gICovCiAgICAgZm9yIChpID0gdl9sMl9sZXZlbHM7 IGkgPiAwOyBpLS0pIHsKLSAgICAgICAgdm9pZCAqKnAgPSBhdG9taWNfcmN1X3JlYWQobHApOwor ICAgICAgICB2b2lkICoqcCA9IHFhdG9taWNfcmN1X3JlYWQobHApOwogCiAgICAgICAgIGlmIChw ID09IE5VTEwpIHsKICAgICAgICAgICAgIHZvaWQgKmV4aXN0aW5nOwpAQCAtNTE4LDcgKzUxOCw3 IEBAIHN0YXRpYyBQYWdlRGVzYyAqcGFnZV9maW5kX2FsbG9jKHRiX3BhZ2VfYWRkcl90IGluZGV4 LCBpbnQgYWxsb2MpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICB9 CiAgICAgICAgICAgICBwID0gZ19uZXcwKHZvaWQgKiwgVl9MMl9TSVpFKTsKLSAgICAgICAgICAg IGV4aXN0aW5nID0gYXRvbWljX2NtcHhjaGcobHAsIE5VTEwsIHApOworICAgICAgICAgICAgZXhp c3RpbmcgPSBxYXRvbWljX2NtcHhjaGcobHAsIE5VTEwsIHApOwogICAgICAgICAgICAgaWYgKHVu bGlrZWx5KGV4aXN0aW5nKSkgewogICAgICAgICAgICAgICAgIGdfZnJlZShwKTsKICAgICAgICAg ICAgICAgICBwID0gZXhpc3Rpbmc7CkBAIC01MjgsNyArNTI4LDcgQEAgc3RhdGljIFBhZ2VEZXNj ICpwYWdlX2ZpbmRfYWxsb2ModGJfcGFnZV9hZGRyX3QgaW5kZXgsIGludCBhbGxvYykKICAgICAg ICAgbHAgPSBwICsgKChpbmRleCA+PiAoaSAqIFZfTDJfQklUUykpICYgKFZfTDJfU0laRSAtIDEp KTsKICAgICB9CiAKLSAgICBwZCA9IGF0b21pY19yY3VfcmVhZChscCk7CisgICAgcGQgPSBxYXRv bWljX3JjdV9yZWFkKGxwKTsKICAgICBpZiAocGQgPT0gTlVMTCkgewogICAgICAgICB2b2lkICpl eGlzdGluZzsKIApAQCAtNTQ1LDcgKzU0NSw3IEBAIHN0YXRpYyBQYWdlRGVzYyAqcGFnZV9maW5k X2FsbG9jKHRiX3BhZ2VfYWRkcl90IGluZGV4LCBpbnQgYWxsb2MpCiAgICAgICAgICAgICB9CiAg ICAgICAgIH0KICNlbmRpZgotICAgICAgICBleGlzdGluZyA9IGF0b21pY19jbXB4Y2hnKGxwLCBO VUxMLCBwZCk7CisgICAgICAgIGV4aXN0aW5nID0gcWF0b21pY19jbXB4Y2hnKGxwLCBOVUxMLCBw ZCk7CiAgICAgICAgIGlmICh1bmxpa2VseShleGlzdGluZykpIHsKICNpZm5kZWYgQ09ORklHX1VT RVJfT05MWQogICAgICAgICAgICAgewpAQCAtMTI1Myw3ICsxMjUzLDcgQEAgc3RhdGljIHZvaWQg ZG9fdGJfZmx1c2goQ1BVU3RhdGUgKmNwdSwgcnVuX29uX2NwdV9kYXRhIHRiX2ZsdXNoX2NvdW50 KQogICAgIHRjZ19yZWdpb25fcmVzZXRfYWxsKCk7CiAgICAgLyogWFhYOiBmbHVzaCBwcm9jZXNz b3IgaWNhY2hlIGF0IHRoaXMgcG9pbnQgaWYgY2FjaGUgZmx1c2ggaXMKICAgICAgICBleHBlbnNp dmUgKi8KLSAgICBhdG9taWNfbWJfc2V0KCZ0Yl9jdHgudGJfZmx1c2hfY291bnQsIHRiX2N0eC50 Yl9mbHVzaF9jb3VudCArIDEpOworICAgIHFhdG9taWNfbWJfc2V0KCZ0Yl9jdHgudGJfZmx1c2hf Y291bnQsIHRiX2N0eC50Yl9mbHVzaF9jb3VudCArIDEpOwogCiBkb25lOgogICAgIG1tYXBfdW5s b2NrKCk7CkBAIC0xMjY1LDcgKzEyNjUsNyBAQCBkb25lOgogdm9pZCB0Yl9mbHVzaChDUFVTdGF0 ZSAqY3B1KQogewogICAgIGlmICh0Y2dfZW5hYmxlZCgpKSB7Ci0gICAgICAgIHVuc2lnbmVkIHRi X2ZsdXNoX2NvdW50ID0gYXRvbWljX21iX3JlYWQoJnRiX2N0eC50Yl9mbHVzaF9jb3VudCk7Cisg ICAgICAgIHVuc2lnbmVkIHRiX2ZsdXNoX2NvdW50ID0gcWF0b21pY19tYl9yZWFkKCZ0Yl9jdHgu dGJfZmx1c2hfY291bnQpOwogCiAgICAgICAgIGlmIChjcHVfaW5fZXhjbHVzaXZlX2NvbnRleHQo Y3B1KSkgewogICAgICAgICAgICAgZG9fdGJfZmx1c2goY3B1LCBSVU5fT05fQ1BVX0hPU1RfSU5U KHRiX2ZsdXNoX2NvdW50KSk7CkBAIC0xMzU4LDcgKzEzNTgsNyBAQCBzdGF0aWMgaW5saW5lIHZv aWQgdGJfcmVtb3ZlX2Zyb21fam1wX2xpc3QoVHJhbnNsYXRpb25CbG9jayAqb3JpZywgaW50IG5f b3JpZykKICAgICBpbnQgbjsKIAogICAgIC8qIG1hcmsgdGhlIExTQiBvZiBqbXBfZGVzdFtdIHNv IHRoYXQgbm8gZnVydGhlciBqdW1wcyBjYW4gYmUgaW5zZXJ0ZWQgKi8KLSAgICBwdHIgPSBhdG9t aWNfb3JfZmV0Y2goJm9yaWctPmptcF9kZXN0W25fb3JpZ10sIDEpOworICAgIHB0ciA9IHFhdG9t aWNfb3JfZmV0Y2goJm9yaWctPmptcF9kZXN0W25fb3JpZ10sIDEpOwogICAgIGRlc3QgPSAoVHJh bnNsYXRpb25CbG9jayAqKShwdHIgJiB+MSk7CiAgICAgaWYgKGRlc3QgPT0gTlVMTCkgewogICAg ICAgICByZXR1cm47CkBAIC0xMzY5LDcgKzEzNjksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdGJf cmVtb3ZlX2Zyb21fam1wX2xpc3QoVHJhbnNsYXRpb25CbG9jayAqb3JpZywgaW50IG5fb3JpZykK ICAgICAgKiBXaGlsZSBhY3F1aXJpbmcgdGhlIGxvY2ssIHRoZSBqdW1wIG1pZ2h0IGhhdmUgYmVl biByZW1vdmVkIGlmIHRoZQogICAgICAqIGRlc3RpbmF0aW9uIFRCIHdhcyBpbnZhbGlkYXRlZDsg Y2hlY2sgYWdhaW4uCiAgICAgICovCi0gICAgcHRyX2xvY2tlZCA9IGF0b21pY19yZWFkKCZvcmln LT5qbXBfZGVzdFtuX29yaWddKTsKKyAgICBwdHJfbG9ja2VkID0gcWF0b21pY19yZWFkKCZvcmln LT5qbXBfZGVzdFtuX29yaWddKTsKICAgICBpZiAocHRyX2xvY2tlZCAhPSBwdHIpIHsKICAgICAg ICAgcWVtdV9zcGluX3VubG9jaygmZGVzdC0+am1wX2xvY2spOwogICAgICAgICAvKgpAQCAtMTQx NSw3ICsxNDE1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHRiX2ptcF91bmxpbmsoVHJhbnNsYXRp b25CbG9jayAqZGVzdCkKIAogICAgIFRCX0ZPUl9FQUNIX0pNUChkZXN0LCB0YiwgbikgewogICAg ICAgICB0Yl9yZXNldF9qdW1wKHRiLCBuKTsKLSAgICAgICAgYXRvbWljX2FuZCgmdGItPmptcF9k ZXN0W25dLCAodWludHB0cl90KU5VTEwgfCAxKTsKKyAgICAgICAgcWF0b21pY19hbmQoJnRiLT5q bXBfZGVzdFtuXSwgKHVpbnRwdHJfdClOVUxMIHwgMSk7CiAgICAgICAgIC8qIE5vIG5lZWQgdG8g Y2xlYXIgdGhlIGxpc3QgZW50cnk7IHNldHRpbmcgdGhlIGRlc3QgcHRyIGlzIGVub3VnaCAqLwog ICAgIH0KICAgICBkZXN0LT5qbXBfbGlzdF9oZWFkID0gKHVpbnRwdHJfdClOVUxMOwpAQCAtMTQz OSw3ICsxNDM5LDcgQEAgc3RhdGljIHZvaWQgZG9fdGJfcGh5c19pbnZhbGlkYXRlKFRyYW5zbGF0 aW9uQmxvY2sgKnRiLCBib29sIHJtX2Zyb21fcGFnZV9saXN0KQogCiAgICAgLyogbWFrZSBzdXJl IG5vIGZ1cnRoZXIgaW5jb21pbmcganVtcHMgd2lsbCBiZSBjaGFpbmVkIHRvIHRoaXMgVEIgKi8K ICAgICBxZW11X3NwaW5fbG9jaygmdGItPmptcF9sb2NrKTsKLSAgICBhdG9taWNfc2V0KCZ0Yi0+ Y2ZsYWdzLCB0Yi0+Y2ZsYWdzIHwgQ0ZfSU5WQUxJRCk7CisgICAgcWF0b21pY19zZXQoJnRiLT5j ZmxhZ3MsIHRiLT5jZmxhZ3MgfCBDRl9JTlZBTElEKTsKICAgICBxZW11X3NwaW5fdW5sb2NrKCZ0 Yi0+am1wX2xvY2spOwogCiAgICAgLyogcmVtb3ZlIHRoZSBUQiBmcm9tIHRoZSBoYXNoIGxpc3Qg Ki8KQEAgLTE0NjYsOCArMTQ2Niw4IEBAIHN0YXRpYyB2b2lkIGRvX3RiX3BoeXNfaW52YWxpZGF0 ZShUcmFuc2xhdGlvbkJsb2NrICp0YiwgYm9vbCBybV9mcm9tX3BhZ2VfbGlzdCkKICAgICAvKiBy ZW1vdmUgdGhlIFRCIGZyb20gdGhlIGhhc2ggbGlzdCAqLwogICAgIGggPSB0Yl9qbXBfY2FjaGVf aGFzaF9mdW5jKHRiLT5wYyk7CiAgICAgQ1BVX0ZPUkVBQ0goY3B1KSB7Ci0gICAgICAgIGlmIChh dG9taWNfcmVhZCgmY3B1LT50Yl9qbXBfY2FjaGVbaF0pID09IHRiKSB7Ci0gICAgICAgICAgICBh dG9taWNfc2V0KCZjcHUtPnRiX2ptcF9jYWNoZVtoXSwgTlVMTCk7CisgICAgICAgIGlmIChxYXRv bWljX3JlYWQoJmNwdS0+dGJfam1wX2NhY2hlW2hdKSA9PSB0YikgeworICAgICAgICAgICAgcWF0 b21pY19zZXQoJmNwdS0+dGJfam1wX2NhY2hlW2hdLCBOVUxMKTsKICAgICAgICAgfQogICAgIH0K IApAQCAtMTQ3OCw3ICsxNDc4LDcgQEAgc3RhdGljIHZvaWQgZG9fdGJfcGh5c19pbnZhbGlkYXRl KFRyYW5zbGF0aW9uQmxvY2sgKnRiLCBib29sIHJtX2Zyb21fcGFnZV9saXN0KQogICAgIC8qIHN1 cHByZXNzIGFueSByZW1haW5pbmcganVtcHMgdG8gdGhpcyBUQiAqLwogICAgIHRiX2ptcF91bmxp bmsodGIpOwogCi0gICAgYXRvbWljX3NldCgmdGNnX2N0eC0+dGJfcGh5c19pbnZhbGlkYXRlX2Nv dW50LAorICAgIHFhdG9taWNfc2V0KCZ0Y2dfY3R4LT50Yl9waHlzX2ludmFsaWRhdGVfY291bnQs CiAgICAgICAgICAgICAgICB0Y2dfY3R4LT50Yl9waHlzX2ludmFsaWRhdGVfY291bnQgKyAxKTsK IH0KIApAQCAtMTczMyw3ICsxNzMzLDcgQEAgVHJhbnNsYXRpb25CbG9jayAqdGJfZ2VuX2NvZGUo Q1BVU3RhdGUgKmNwdSwKIAogI2lmZGVmIENPTkZJR19QUk9GSUxFUgogICAgIC8qIGluY2x1ZGVz IGFib3J0ZWQgdHJhbnNsYXRpb25zIGJlY2F1c2Ugb2YgZXhjZXB0aW9ucyAqLwotICAgIGF0b21p Y19zZXQoJnByb2YtPnRiX2NvdW50MSwgcHJvZi0+dGJfY291bnQxICsgMSk7CisgICAgcWF0b21p Y19zZXQoJnByb2YtPnRiX2NvdW50MSwgcHJvZi0+dGJfY291bnQxICsgMSk7CiAgICAgdGkgPSBw cm9maWxlX2dldGNsb2NrKCk7CiAjZW5kaWYKIApAQCAtMTc1OCw4ICsxNzU4LDkgQEAgVHJhbnNs YXRpb25CbG9jayAqdGJfZ2VuX2NvZGUoQ1BVU3RhdGUgKmNwdSwKICAgICB9CiAKICNpZmRlZiBD T05GSUdfUFJPRklMRVIKLSAgICBhdG9taWNfc2V0KCZwcm9mLT50Yl9jb3VudCwgcHJvZi0+dGJf Y291bnQgKyAxKTsKLSAgICBhdG9taWNfc2V0KCZwcm9mLT5pbnRlcm1fdGltZSwgcHJvZi0+aW50 ZXJtX3RpbWUgKyBwcm9maWxlX2dldGNsb2NrKCkgLSB0aSk7CisgICAgcWF0b21pY19zZXQoJnBy b2YtPnRiX2NvdW50LCBwcm9mLT50Yl9jb3VudCArIDEpOworICAgIHFhdG9taWNfc2V0KCZwcm9m LT5pbnRlcm1fdGltZSwKKyAgICAgICAgICAgICAgICBwcm9mLT5pbnRlcm1fdGltZSArIHByb2Zp bGVfZ2V0Y2xvY2soKSAtIHRpKTsKICAgICB0aSA9IHByb2ZpbGVfZ2V0Y2xvY2soKTsKICNlbmRp ZgogCkBAIC0xODA0LDEwICsxODA1LDEwIEBAIFRyYW5zbGF0aW9uQmxvY2sgKnRiX2dlbl9jb2Rl KENQVVN0YXRlICpjcHUsCiAgICAgdGItPnRjLnNpemUgPSBnZW5fY29kZV9zaXplOwogCiAjaWZk ZWYgQ09ORklHX1BST0ZJTEVSCi0gICAgYXRvbWljX3NldCgmcHJvZi0+Y29kZV90aW1lLCBwcm9m LT5jb2RlX3RpbWUgKyBwcm9maWxlX2dldGNsb2NrKCkgLSB0aSk7Ci0gICAgYXRvbWljX3NldCgm cHJvZi0+Y29kZV9pbl9sZW4sIHByb2YtPmNvZGVfaW5fbGVuICsgdGItPnNpemUpOwotICAgIGF0 b21pY19zZXQoJnByb2YtPmNvZGVfb3V0X2xlbiwgcHJvZi0+Y29kZV9vdXRfbGVuICsgZ2VuX2Nv ZGVfc2l6ZSk7Ci0gICAgYXRvbWljX3NldCgmcHJvZi0+c2VhcmNoX291dF9sZW4sIHByb2YtPnNl YXJjaF9vdXRfbGVuICsgc2VhcmNoX3NpemUpOworICAgIHFhdG9taWNfc2V0KCZwcm9mLT5jb2Rl X3RpbWUsIHByb2YtPmNvZGVfdGltZSArIHByb2ZpbGVfZ2V0Y2xvY2soKSAtIHRpKTsKKyAgICBx YXRvbWljX3NldCgmcHJvZi0+Y29kZV9pbl9sZW4sIHByb2YtPmNvZGVfaW5fbGVuICsgdGItPnNp emUpOworICAgIHFhdG9taWNfc2V0KCZwcm9mLT5jb2RlX291dF9sZW4sIHByb2YtPmNvZGVfb3V0 X2xlbiArIGdlbl9jb2RlX3NpemUpOworICAgIHFhdG9taWNfc2V0KCZwcm9mLT5zZWFyY2hfb3V0 X2xlbiwgcHJvZi0+c2VhcmNoX291dF9sZW4gKyBzZWFyY2hfc2l6ZSk7CiAjZW5kaWYKIAogI2lm ZGVmIERFQlVHX0RJU0FTCkBAIC0xODY5LDcgKzE4NzAsNyBAQCBUcmFuc2xhdGlvbkJsb2NrICp0 Yl9nZW5fY29kZShDUFVTdGF0ZSAqY3B1LAogICAgIH0KICNlbmRpZgogCi0gICAgYXRvbWljX3Nl dCgmdGNnX2N0eC0+Y29kZV9nZW5fcHRyLCAodm9pZCAqKQorICAgIHFhdG9taWNfc2V0KCZ0Y2df Y3R4LT5jb2RlX2dlbl9wdHIsICh2b2lkICopCiAgICAgICAgIFJPVU5EX1VQKCh1aW50cHRyX3Qp Z2VuX2NvZGVfYnVmICsgZ2VuX2NvZGVfc2l6ZSArIHNlYXJjaF9zaXplLAogICAgICAgICAgICAg ICAgICBDT0RFX0dFTl9BTElHTikpOwogCkBAIC0xOTA1LDcgKzE5MDYsNyBAQCBUcmFuc2xhdGlv bkJsb2NrICp0Yl9nZW5fY29kZShDUFVTdGF0ZSAqY3B1LAogICAgICAgICB1aW50cHRyX3Qgb3Jp Z19hbGlnbmVkID0gKHVpbnRwdHJfdClnZW5fY29kZV9idWY7CiAKICAgICAgICAgb3JpZ19hbGln bmVkIC09IFJPVU5EX1VQKHNpemVvZigqdGIpLCBxZW11X2ljYWNoZV9saW5lc2l6ZSk7Ci0gICAg ICAgIGF0b21pY19zZXQoJnRjZ19jdHgtPmNvZGVfZ2VuX3B0ciwgKHZvaWQgKilvcmlnX2FsaWdu ZWQpOworICAgICAgICBxYXRvbWljX3NldCgmdGNnX2N0eC0+Y29kZV9nZW5fcHRyLCAodm9pZCAq KW9yaWdfYWxpZ25lZCk7CiAgICAgICAgIHRiX2Rlc3Ryb3kodGIpOwogICAgICAgICByZXR1cm4g ZXhpc3RpbmdfdGI7CiAgICAgfQpAQCAtMjI3Myw3ICsyMjc0LDcgQEAgc3RhdGljIHZvaWQgdGJf am1wX2NhY2hlX2NsZWFyX3BhZ2UoQ1BVU3RhdGUgKmNwdSwgdGFyZ2V0X3Vsb25nIHBhZ2VfYWRk cikKICAgICB1bnNpZ25lZCBpbnQgaSwgaTAgPSB0Yl9qbXBfY2FjaGVfaGFzaF9wYWdlKHBhZ2Vf YWRkcik7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgVEJfSk1QX1BBR0VfU0laRTsgaSsrKSB7Ci0g ICAgICAgIGF0b21pY19zZXQoJmNwdS0+dGJfam1wX2NhY2hlW2kwICsgaV0sIE5VTEwpOworICAg ICAgICBxYXRvbWljX3NldCgmY3B1LT50Yl9qbXBfY2FjaGVbaTAgKyBpXSwgTlVMTCk7CiAgICAg fQogfQogCkBAIC0yMzkzLDcgKzIzOTQsNyBAQCB2b2lkIGR1bXBfZXhlY19pbmZvKHZvaWQpCiAK ICAgICBxZW11X3ByaW50ZigiXG5TdGF0aXN0aWNzOlxuIik7CiAgICAgcWVtdV9wcmludGYoIlRC IGZsdXNoIGNvdW50ICAgICAgJXVcbiIsCi0gICAgICAgICAgICAgICAgYXRvbWljX3JlYWQoJnRi X2N0eC50Yl9mbHVzaF9jb3VudCkpOworICAgICAgICAgICAgICAgIHFhdG9taWNfcmVhZCgmdGJf Y3R4LnRiX2ZsdXNoX2NvdW50KSk7CiAgICAgcWVtdV9wcmludGYoIlRCIGludmFsaWRhdGUgY291 bnQgJXp1XG4iLAogICAgICAgICAgICAgICAgIHRjZ190Yl9waHlzX2ludmFsaWRhdGVfY291bnQo KSk7CiAKQEAgLTI0MTUsNyArMjQxNiw3IEBAIHZvaWQgY3B1X2ludGVycnVwdChDUFVTdGF0ZSAq Y3B1LCBpbnQgbWFzaykKIHsKICAgICBnX2Fzc2VydChxZW11X211dGV4X2lvdGhyZWFkX2xvY2tl ZCgpKTsKICAgICBjcHUtPmludGVycnVwdF9yZXF1ZXN0IHw9IG1hc2s7Ci0gICAgYXRvbWljX3Nl dCgmY3B1X25lZyhjcHUpLT5pY291bnRfZGVjci51MTYuaGlnaCwgLTEpOworICAgIHFhdG9taWNf c2V0KCZjcHVfbmVnKGNwdSktPmljb3VudF9kZWNyLnUxNi5oaWdoLCAtMSk7CiB9CiAKIC8qCmRp ZmYgLS1naXQgYS9hdWRpby9qYWNrYXVkaW8uYyBiL2F1ZGlvL2phY2thdWRpby5jCmluZGV4IDcy ZWQ3YzQ5MjkuLjFlNzE0YjMwYmMgMTAwNjQ0Ci0tLSBhL2F1ZGlvL2phY2thdWRpby5jCisrKyBi L2F1ZGlvL2phY2thdWRpby5jCkBAIC0xMDQsNyArMTA0LDcgQEAgc3RhdGljIHZvaWQgcWphY2tf YnVmZmVyX2NyZWF0ZShRSmFja0J1ZmZlciAqYnVmZmVyLCBpbnQgY2hhbm5lbHMsIGludCBmcmFt ZXMpCiBzdGF0aWMgdm9pZCBxamFja19idWZmZXJfY2xlYXIoUUphY2tCdWZmZXIgKmJ1ZmZlcikK IHsKICAgICBhc3NlcnQoYnVmZmVyLT5kYXRhKTsKLSAgICBhdG9taWNfc3RvcmVfcmVsZWFzZSgm YnVmZmVyLT51c2VkLCAwKTsKKyAgICBxYXRvbWljX3N0b3JlX3JlbGVhc2UoJmJ1ZmZlci0+dXNl ZCwgMCk7CiAgICAgYnVmZmVyLT5ycHRyID0gMDsKICAgICBidWZmZXItPndwdHIgPSAwOwogfQpA QCAtMTI5LDcgKzEyOSw3IEBAIHN0YXRpYyBpbnQgcWphY2tfYnVmZmVyX3dyaXRlKFFKYWNrQnVm ZmVyICpidWZmZXIsIGZsb2F0ICpkYXRhLCBpbnQgc2l6ZSkKICAgICBhc3NlcnQoYnVmZmVyLT5k YXRhKTsKICAgICBjb25zdCBpbnQgc2FtcGxlcyA9IHNpemUgLyBzaXplb2YoZmxvYXQpOwogICAg IGludCBmcmFtZXMgICAgICAgID0gc2FtcGxlcyAvIGJ1ZmZlci0+Y2hhbm5lbHM7Ci0gICAgY29u c3QgaW50IGF2YWlsICAgPSBidWZmZXItPmZyYW1lcyAtIGF0b21pY19sb2FkX2FjcXVpcmUoJmJ1 ZmZlci0+dXNlZCk7CisgICAgY29uc3QgaW50IGF2YWlsICAgPSBidWZmZXItPmZyYW1lcyAtIHFh dG9taWNfbG9hZF9hY3F1aXJlKCZidWZmZXItPnVzZWQpOwogCiAgICAgaWYgKGZyYW1lcyA+IGF2 YWlsKSB7CiAgICAgICAgIGZyYW1lcyA9IGF2YWlsOwpAQCAtMTUzLDcgKzE1Myw3IEBAIHN0YXRp YyBpbnQgcWphY2tfYnVmZmVyX3dyaXRlKFFKYWNrQnVmZmVyICpidWZmZXIsIGZsb2F0ICpkYXRh LCBpbnQgc2l6ZSkKIAogICAgIGJ1ZmZlci0+d3B0ciA9IHdwdHI7CiAKLSAgICBhdG9taWNfYWRk KCZidWZmZXItPnVzZWQsIGZyYW1lcyk7CisgICAgcWF0b21pY19hZGQoJmJ1ZmZlci0+dXNlZCwg ZnJhbWVzKTsKICAgICByZXR1cm4gZnJhbWVzICogYnVmZmVyLT5jaGFubmVscyAqIHNpemVvZihm bG9hdCk7CiB9OwogCkBAIC0xNjEsNyArMTYxLDcgQEAgc3RhdGljIGludCBxamFja19idWZmZXJf d3JpdGUoUUphY2tCdWZmZXIgKmJ1ZmZlciwgZmxvYXQgKmRhdGEsIGludCBzaXplKQogc3RhdGlj IGludCBxamFja19idWZmZXJfd3JpdGVfbChRSmFja0J1ZmZlciAqYnVmZmVyLCBmbG9hdCAqKmRl c3QsIGludCBmcmFtZXMpCiB7CiAgICAgYXNzZXJ0KGJ1ZmZlci0+ZGF0YSk7Ci0gICAgY29uc3Qg aW50IGF2YWlsICAgPSBidWZmZXItPmZyYW1lcyAtIGF0b21pY19sb2FkX2FjcXVpcmUoJmJ1ZmZl ci0+dXNlZCk7CisgICAgY29uc3QgaW50IGF2YWlsICAgPSBidWZmZXItPmZyYW1lcyAtIHFhdG9t aWNfbG9hZF9hY3F1aXJlKCZidWZmZXItPnVzZWQpOwogICAgIGludCB3cHRyID0gYnVmZmVyLT53 cHRyOwogCiAgICAgaWYgKGZyYW1lcyA+IGF2YWlsKSB7CkBAIC0xODUsNyArMTg1LDcgQEAgc3Rh dGljIGludCBxamFja19idWZmZXJfd3JpdGVfbChRSmFja0J1ZmZlciAqYnVmZmVyLCBmbG9hdCAq KmRlc3QsIGludCBmcmFtZXMpCiAgICAgfQogICAgIGJ1ZmZlci0+d3B0ciA9IHdwdHI7CiAKLSAg ICBhdG9taWNfYWRkKCZidWZmZXItPnVzZWQsIGZyYW1lcyk7CisgICAgcWF0b21pY19hZGQoJmJ1 ZmZlci0+dXNlZCwgZnJhbWVzKTsKICAgICByZXR1cm4gZnJhbWVzOwogfQogCkBAIC0xOTUsNyAr MTk1LDcgQEAgc3RhdGljIGludCBxamFja19idWZmZXJfcmVhZChRSmFja0J1ZmZlciAqYnVmZmVy LCBmbG9hdCAqZGVzdCwgaW50IHNpemUpCiAgICAgYXNzZXJ0KGJ1ZmZlci0+ZGF0YSk7CiAgICAg Y29uc3QgaW50IHNhbXBsZXMgPSBzaXplIC8gc2l6ZW9mKGZsb2F0KTsKICAgICBpbnQgZnJhbWVz ICAgICAgICA9IHNhbXBsZXMgLyBidWZmZXItPmNoYW5uZWxzOwotICAgIGNvbnN0IGludCBhdmFp bCAgID0gYXRvbWljX2xvYWRfYWNxdWlyZSgmYnVmZmVyLT51c2VkKTsKKyAgICBjb25zdCBpbnQg YXZhaWwgICA9IHFhdG9taWNfbG9hZF9hY3F1aXJlKCZidWZmZXItPnVzZWQpOwogCiAgICAgaWYg KGZyYW1lcyA+IGF2YWlsKSB7CiAgICAgICAgIGZyYW1lcyA9IGF2YWlsOwpAQCAtMjE5LDcgKzIx OSw3IEBAIHN0YXRpYyBpbnQgcWphY2tfYnVmZmVyX3JlYWQoUUphY2tCdWZmZXIgKmJ1ZmZlciwg ZmxvYXQgKmRlc3QsIGludCBzaXplKQogCiAgICAgYnVmZmVyLT5ycHRyID0gcnB0cjsKIAotICAg IGF0b21pY19zdWIoJmJ1ZmZlci0+dXNlZCwgZnJhbWVzKTsKKyAgICBxYXRvbWljX3N1YigmYnVm ZmVyLT51c2VkLCBmcmFtZXMpOwogICAgIHJldHVybiBmcmFtZXMgKiBidWZmZXItPmNoYW5uZWxz ICogc2l6ZW9mKGZsb2F0KTsKIH0KIApAQCAtMjI4LDcgKzIyOCw3IEBAIHN0YXRpYyBpbnQgcWph Y2tfYnVmZmVyX3JlYWRfbChRSmFja0J1ZmZlciAqYnVmZmVyLCBmbG9hdCAqKmRlc3QsIGludCBm cmFtZXMpCiB7CiAgICAgYXNzZXJ0KGJ1ZmZlci0+ZGF0YSk7CiAgICAgaW50IGNvcHkgICAgICAg PSBmcmFtZXM7Ci0gICAgY29uc3QgaW50IHVzZWQgPSBhdG9taWNfbG9hZF9hY3F1aXJlKCZidWZm ZXItPnVzZWQpOworICAgIGNvbnN0IGludCB1c2VkID0gcWF0b21pY19sb2FkX2FjcXVpcmUoJmJ1 ZmZlci0+dXNlZCk7CiAgICAgaW50IHJwdHIgICAgICAgPSBidWZmZXItPnJwdHI7CiAKICAgICBp ZiAoY29weSA+IHVzZWQpIHsKQEAgLTI1Miw3ICsyNTIsNyBAQCBzdGF0aWMgaW50IHFqYWNrX2J1 ZmZlcl9yZWFkX2woUUphY2tCdWZmZXIgKmJ1ZmZlciwgZmxvYXQgKipkZXN0LCBpbnQgZnJhbWVz KQogICAgIH0KICAgICBidWZmZXItPnJwdHIgPSBycHRyOwogCi0gICAgYXRvbWljX3N1YigmYnVm ZmVyLT51c2VkLCBjb3B5KTsKKyAgICBxYXRvbWljX3N1YigmYnVmZmVyLT51c2VkLCBjb3B5KTsK ICAgICByZXR1cm4gY29weTsKIH0KIApkaWZmIC0tZ2l0IGEvYmxvY2suYyBiL2Jsb2NrLmMKaW5k ZXggMTFhYjU1ZjgwYi4uZjcyYTJlMjZlOCAxMDA2NDQKLS0tIGEvYmxvY2suYworKysgYi9ibG9j ay5jCkBAIC0xNjk0LDcgKzE2OTQsNyBAQCBzdGF0aWMgaW50IGJkcnZfb3Blbl9jb21tb24oQmxv Y2tEcml2ZXJTdGF0ZSAqYnMsIEJsb2NrQmFja2VuZCAqZmlsZSwKICAgICB9CiAKICAgICAvKiBi ZHJ2X25ldygpIGFuZCBiZHJ2X2Nsb3NlKCkgbWFrZSBpdCBzbyAqLwotICAgIGFzc2VydChhdG9t aWNfcmVhZCgmYnMtPmNvcHlfb25fcmVhZCkgPT0gMCk7CisgICAgYXNzZXJ0KHFhdG9taWNfcmVh ZCgmYnMtPmNvcHlfb25fcmVhZCkgPT0gMCk7CiAKICAgICBpZiAoYnMtPm9wZW5fZmxhZ3MgJiBC RFJWX09fQ09QWV9PTl9SRUFEKSB7CiAgICAgICAgIGlmICghYnMtPnJlYWRfb25seSkgewpAQCAt NDQzNiw3ICs0NDM2LDcgQEAgc3RhdGljIHZvaWQgYmRydl9jbG9zZShCbG9ja0RyaXZlclN0YXRl ICpicykKICAgICBicy0+ZmlsZSA9IE5VTEw7CiAgICAgZ19mcmVlKGJzLT5vcGFxdWUpOwogICAg IGJzLT5vcGFxdWUgPSBOVUxMOwotICAgIGF0b21pY19zZXQoJmJzLT5jb3B5X29uX3JlYWQsIDAp OworICAgIHFhdG9taWNfc2V0KCZicy0+Y29weV9vbl9yZWFkLCAwKTsKICAgICBicy0+YmFja2lu Z19maWxlWzBdID0gJ1wwJzsKICAgICBicy0+YmFja2luZ19mb3JtYXRbMF0gPSAnXDAnOwogICAg IGJzLT50b3RhbF9zZWN0b3JzID0gMDsKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsb2NrLWJhY2tlbmQu YyBiL2Jsb2NrL2Jsb2NrLWJhY2tlbmQuYwppbmRleCAyNGRkMDY3MGQxLi5jZTc4ZDMwNzk0IDEw MDY0NAotLS0gYS9ibG9jay9ibG9jay1iYWNrZW5kLmMKKysrIGIvYmxvY2svYmxvY2stYmFja2Vu ZC5jCkBAIC0xMzUzLDEyICsxMzUzLDEyIEBAIGludCBibGtfbWFrZV96ZXJvKEJsb2NrQmFja2Vu ZCAqYmxrLCBCZHJ2UmVxdWVzdEZsYWdzIGZsYWdzKQogCiB2b2lkIGJsa19pbmNfaW5fZmxpZ2h0 KEJsb2NrQmFja2VuZCAqYmxrKQogewotICAgIGF0b21pY19pbmMoJmJsay0+aW5fZmxpZ2h0KTsK KyAgICBxYXRvbWljX2luYygmYmxrLT5pbl9mbGlnaHQpOwogfQogCiB2b2lkIGJsa19kZWNfaW5f ZmxpZ2h0KEJsb2NrQmFja2VuZCAqYmxrKQogewotICAgIGF0b21pY19kZWMoJmJsay0+aW5fZmxp Z2h0KTsKKyAgICBxYXRvbWljX2RlYygmYmxrLT5pbl9mbGlnaHQpOwogICAgIGFpb193YWl0X2tp Y2soKTsKIH0KIApAQCAtMTcyMCw3ICsxNzIwLDcgQEAgdm9pZCBibGtfZHJhaW4oQmxvY2tCYWNr ZW5kICpibGspCiAKICAgICAvKiBXZSBtYXkgaGF2ZSAtRU5PTUVESVVNIGNvbXBsZXRpb25zIGlu IGZsaWdodCAqLwogICAgIEFJT19XQUlUX1dISUxFKGJsa19nZXRfYWlvX2NvbnRleHQoYmxrKSwK LSAgICAgICAgICAgICAgICAgICBhdG9taWNfbWJfcmVhZCgmYmxrLT5pbl9mbGlnaHQpID4gMCk7 CisgICAgICAgICAgICAgICAgICAgcWF0b21pY19tYl9yZWFkKCZibGstPmluX2ZsaWdodCkgPiAw KTsKIAogICAgIGlmIChicykgewogICAgICAgICBiZHJ2X2RyYWluZWRfZW5kKGJzKTsKQEAgLTE3 MzksNyArMTczOSw3IEBAIHZvaWQgYmxrX2RyYWluX2FsbCh2b2lkKQogICAgICAgICBhaW9fY29u dGV4dF9hY3F1aXJlKGN0eCk7CiAKICAgICAgICAgLyogV2UgbWF5IGhhdmUgLUVOT01FRElVTSBj b21wbGV0aW9ucyBpbiBmbGlnaHQgKi8KLSAgICAgICAgQUlPX1dBSVRfV0hJTEUoY3R4LCBhdG9t aWNfbWJfcmVhZCgmYmxrLT5pbl9mbGlnaHQpID4gMCk7CisgICAgICAgIEFJT19XQUlUX1dISUxF KGN0eCwgcWF0b21pY19tYl9yZWFkKCZibGstPmluX2ZsaWdodCkgPiAwKTsKIAogICAgICAgICBh aW9fY29udGV4dF9yZWxlYXNlKGN0eCk7CiAgICAgfQpAQCAtMjM0Niw2ICsyMzQ2LDcgQEAgdm9p ZCBibGtfaW9fbGltaXRzX3VwZGF0ZV9ncm91cChCbG9ja0JhY2tlbmQgKmJsaywgY29uc3QgY2hh ciAqZ3JvdXApCiBzdGF0aWMgdm9pZCBibGtfcm9vdF9kcmFpbmVkX2JlZ2luKEJkcnZDaGlsZCAq Y2hpbGQpCiB7CiAgICAgQmxvY2tCYWNrZW5kICpibGsgPSBjaGlsZC0+b3BhcXVlOworICAgIFRo cm90dGxlR3JvdXBNZW1iZXIgKnRnbSA9ICZibGstPnB1YmxpYy50aHJvdHRsZV9ncm91cF9tZW1i ZXI7CiAKICAgICBpZiAoKytibGstPnF1aWVzY2VfY291bnRlciA9PSAxKSB7CiAgICAgICAgIGlm IChibGstPmRldl9vcHMgJiYgYmxrLT5kZXZfb3BzLT5kcmFpbmVkX2JlZ2luKSB7CkBAIC0yMzU2 LDggKzIzNTcsOCBAQCBzdGF0aWMgdm9pZCBibGtfcm9vdF9kcmFpbmVkX2JlZ2luKEJkcnZDaGls ZCAqY2hpbGQpCiAgICAgLyogTm90ZSB0aGF0IGJsay0+cm9vdCBtYXkgbm90IGJlIGFjY2Vzc2li bGUgaGVyZSB5ZXQgaWYgd2UgYXJlIGp1c3QKICAgICAgKiBhdHRhY2hpbmcgdG8gYSBCbG9ja0Ry aXZlclN0YXRlIHRoYXQgaXMgZHJhaW5lZC4gVXNlIGNoaWxkIGluc3RlYWQuICovCiAKLSAgICBp ZiAoYXRvbWljX2ZldGNoX2luYygmYmxrLT5wdWJsaWMudGhyb3R0bGVfZ3JvdXBfbWVtYmVyLmlv X2xpbWl0c19kaXNhYmxlZCkgPT0gMCkgewotICAgICAgICB0aHJvdHRsZV9ncm91cF9yZXN0YXJ0 X3RnbSgmYmxrLT5wdWJsaWMudGhyb3R0bGVfZ3JvdXBfbWVtYmVyKTsKKyAgICBpZiAocWF0b21p Y19mZXRjaF9pbmMoJnRnbS0+aW9fbGltaXRzX2Rpc2FibGVkKSA9PSAwKSB7CisgICAgICAgIHRo cm90dGxlX2dyb3VwX3Jlc3RhcnRfdGdtKHRnbSk7CiAgICAgfQogfQogCkBAIC0yMzc0LDcgKzIz NzUsNyBAQCBzdGF0aWMgdm9pZCBibGtfcm9vdF9kcmFpbmVkX2VuZChCZHJ2Q2hpbGQgKmNoaWxk LCBpbnQgKmRyYWluZWRfZW5kX2NvdW50ZXIpCiAgICAgYXNzZXJ0KGJsay0+cXVpZXNjZV9jb3Vu dGVyKTsKIAogICAgIGFzc2VydChibGstPnB1YmxpYy50aHJvdHRsZV9ncm91cF9tZW1iZXIuaW9f bGltaXRzX2Rpc2FibGVkKTsKLSAgICBhdG9taWNfZGVjKCZibGstPnB1YmxpYy50aHJvdHRsZV9n cm91cF9tZW1iZXIuaW9fbGltaXRzX2Rpc2FibGVkKTsKKyAgICBxYXRvbWljX2RlYygmYmxrLT5w dWJsaWMudGhyb3R0bGVfZ3JvdXBfbWVtYmVyLmlvX2xpbWl0c19kaXNhYmxlZCk7CiAKICAgICBp ZiAoLS1ibGstPnF1aWVzY2VfY291bnRlciA9PSAwKSB7CiAgICAgICAgIGlmIChibGstPmRldl9v cHMgJiYgYmxrLT5kZXZfb3BzLT5kcmFpbmVkX2VuZCkgewpkaWZmIC0tZ2l0IGEvYmxvY2svaW8u YyBiL2Jsb2NrL2lvLmMKaW5kZXggYTIzODliYjM4Yy4uMTFkZjE4ODlmMSAxMDA2NDQKLS0tIGEv YmxvY2svaW8uYworKysgYi9ibG9jay9pby5jCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgYmRydl9w YXJlbnRfZHJhaW5lZF9lbmRfc2luZ2xlKEJkcnZDaGlsZCAqYykKIHsKICAgICBpbnQgZHJhaW5l ZF9lbmRfY291bnRlciA9IDA7CiAgICAgYmRydl9wYXJlbnRfZHJhaW5lZF9lbmRfc2luZ2xlX25v X3BvbGwoYywgJmRyYWluZWRfZW5kX2NvdW50ZXIpOwotICAgIEJEUlZfUE9MTF9XSElMRShjLT5i cywgYXRvbWljX3JlYWQoJmRyYWluZWRfZW5kX2NvdW50ZXIpID4gMCk7CisgICAgQkRSVl9QT0xM X1dISUxFKGMtPmJzLCBxYXRvbWljX3JlYWQoJmRyYWluZWRfZW5kX2NvdW50ZXIpID4gMCk7CiB9 CiAKIHN0YXRpYyB2b2lkIGJkcnZfcGFyZW50X2RyYWluZWRfZW5kKEJsb2NrRHJpdmVyU3RhdGUg KmJzLCBCZHJ2Q2hpbGQgKmlnbm9yZSwKQEAgLTE4NiwxMiArMTg2LDEyIEBAIHZvaWQgYmRydl9y ZWZyZXNoX2xpbWl0cyhCbG9ja0RyaXZlclN0YXRlICpicywgRXJyb3IgKiplcnJwKQogICovCiB2 b2lkIGJkcnZfZW5hYmxlX2NvcHlfb25fcmVhZChCbG9ja0RyaXZlclN0YXRlICpicykKIHsKLSAg ICBhdG9taWNfaW5jKCZicy0+Y29weV9vbl9yZWFkKTsKKyAgICBxYXRvbWljX2luYygmYnMtPmNv cHlfb25fcmVhZCk7CiB9CiAKIHZvaWQgYmRydl9kaXNhYmxlX2NvcHlfb25fcmVhZChCbG9ja0Ry aXZlclN0YXRlICpicykKIHsKLSAgICBpbnQgb2xkID0gYXRvbWljX2ZldGNoX2RlYygmYnMtPmNv cHlfb25fcmVhZCk7CisgICAgaW50IG9sZCA9IHFhdG9taWNfZmV0Y2hfZGVjKCZicy0+Y29weV9v bl9yZWFkKTsKICAgICBhc3NlcnQob2xkID49IDEpOwogfQogCkBAIC0yMTksOSArMjE5LDkgQEAg c3RhdGljIHZvaWQgY29yb3V0aW5lX2ZuIGJkcnZfZHJhaW5faW52b2tlX2VudHJ5KHZvaWQgKm9w YXF1ZSkKICAgICB9CiAKICAgICAvKiBTZXQgZGF0YS0+ZG9uZSBhbmQgZGVjcmVtZW50IGRyYWlu ZWRfZW5kX2NvdW50ZXIgYmVmb3JlIGJkcnZfd2FrZXVwKCkgKi8KLSAgICBhdG9taWNfbWJfc2V0 KCZkYXRhLT5kb25lLCB0cnVlKTsKKyAgICBxYXRvbWljX21iX3NldCgmZGF0YS0+ZG9uZSwgdHJ1 ZSk7CiAgICAgaWYgKCFkYXRhLT5iZWdpbikgewotICAgICAgICBhdG9taWNfZGVjKGRhdGEtPmRy YWluZWRfZW5kX2NvdW50ZXIpOworICAgICAgICBxYXRvbWljX2RlYyhkYXRhLT5kcmFpbmVkX2Vu ZF9jb3VudGVyKTsKICAgICB9CiAgICAgYmRydl9kZWNfaW5fZmxpZ2h0KGJzKTsKIApAQCAtMjQ4 LDcgKzI0OCw3IEBAIHN0YXRpYyB2b2lkIGJkcnZfZHJhaW5faW52b2tlKEJsb2NrRHJpdmVyU3Rh dGUgKmJzLCBib29sIGJlZ2luLAogICAgIH07CiAKICAgICBpZiAoIWJlZ2luKSB7Ci0gICAgICAg IGF0b21pY19pbmMoZHJhaW5lZF9lbmRfY291bnRlcik7CisgICAgICAgIHFhdG9taWNfaW5jKGRy YWluZWRfZW5kX2NvdW50ZXIpOwogICAgIH0KIAogICAgIC8qIE1ha2Ugc3VyZSB0aGUgZHJpdmVy IGNhbGxiYWNrIGNvbXBsZXRlcyBkdXJpbmcgdGhlIHBvbGxpbmcgcGhhc2UgZm9yCkBAIC0yNjgs NyArMjY4LDcgQEAgYm9vbCBiZHJ2X2RyYWluX3BvbGwoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIGJv b2wgcmVjdXJzaXZlLAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoYXRv bWljX3JlYWQoJmJzLT5pbl9mbGlnaHQpKSB7CisgICAgaWYgKHFhdG9taWNfcmVhZCgmYnMtPmlu X2ZsaWdodCkpIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0zODIsNyArMzgy LDcgQEAgdm9pZCBiZHJ2X2RvX2RyYWluZWRfYmVnaW5fcXVpZXNjZShCbG9ja0RyaXZlclN0YXRl ICpicywKICAgICBhc3NlcnQoIXFlbXVfaW5fY29yb3V0aW5lKCkpOwogCiAgICAgLyogU3RvcCB0 aGluZ3MgaW4gcGFyZW50LXRvLWNoaWxkIG9yZGVyICovCi0gICAgaWYgKGF0b21pY19mZXRjaF9p bmMoJmJzLT5xdWllc2NlX2NvdW50ZXIpID09IDApIHsKKyAgICBpZiAocWF0b21pY19mZXRjaF9p bmMoJmJzLT5xdWllc2NlX2NvdW50ZXIpID09IDApIHsKICAgICAgICAgYWlvX2Rpc2FibGVfZXh0 ZXJuYWwoYmRydl9nZXRfYWlvX2NvbnRleHQoYnMpKTsKICAgICB9CiAKQEAgLTQ3Myw3ICs0NzMs NyBAQCBzdGF0aWMgdm9pZCBiZHJ2X2RvX2RyYWluZWRfZW5kKEJsb2NrRHJpdmVyU3RhdGUgKmJz LCBib29sIHJlY3Vyc2l2ZSwKICAgICBiZHJ2X3BhcmVudF9kcmFpbmVkX2VuZChicywgcGFyZW50 LCBpZ25vcmVfYmRzX3BhcmVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhaW5l ZF9lbmRfY291bnRlcik7CiAKLSAgICBvbGRfcXVpZXNjZV9jb3VudGVyID0gYXRvbWljX2ZldGNo X2RlYygmYnMtPnF1aWVzY2VfY291bnRlcik7CisgICAgb2xkX3F1aWVzY2VfY291bnRlciA9IHFh dG9taWNfZmV0Y2hfZGVjKCZicy0+cXVpZXNjZV9jb3VudGVyKTsKICAgICBpZiAob2xkX3F1aWVz Y2VfY291bnRlciA9PSAxKSB7CiAgICAgICAgIGFpb19lbmFibGVfZXh0ZXJuYWwoYmRydl9nZXRf YWlvX2NvbnRleHQoYnMpKTsKICAgICB9CkBAIC00OTIsNyArNDkyLDcgQEAgdm9pZCBiZHJ2X2Ry YWluZWRfZW5kKEJsb2NrRHJpdmVyU3RhdGUgKmJzKQogewogICAgIGludCBkcmFpbmVkX2VuZF9j b3VudGVyID0gMDsKICAgICBiZHJ2X2RvX2RyYWluZWRfZW5kKGJzLCBmYWxzZSwgTlVMTCwgZmFs c2UsICZkcmFpbmVkX2VuZF9jb3VudGVyKTsKLSAgICBCRFJWX1BPTExfV0hJTEUoYnMsIGF0b21p Y19yZWFkKCZkcmFpbmVkX2VuZF9jb3VudGVyKSA+IDApOworICAgIEJEUlZfUE9MTF9XSElMRShi cywgcWF0b21pY19yZWFkKCZkcmFpbmVkX2VuZF9jb3VudGVyKSA+IDApOwogfQogCiB2b2lkIGJk cnZfZHJhaW5lZF9lbmRfbm9fcG9sbChCbG9ja0RyaXZlclN0YXRlICpicywgaW50ICpkcmFpbmVk X2VuZF9jb3VudGVyKQpAQCAtNTA0LDcgKzUwNCw3IEBAIHZvaWQgYmRydl9zdWJ0cmVlX2RyYWlu ZWRfZW5kKEJsb2NrRHJpdmVyU3RhdGUgKmJzKQogewogICAgIGludCBkcmFpbmVkX2VuZF9jb3Vu dGVyID0gMDsKICAgICBiZHJ2X2RvX2RyYWluZWRfZW5kKGJzLCB0cnVlLCBOVUxMLCBmYWxzZSwg JmRyYWluZWRfZW5kX2NvdW50ZXIpOwotICAgIEJEUlZfUE9MTF9XSElMRShicywgYXRvbWljX3Jl YWQoJmRyYWluZWRfZW5kX2NvdW50ZXIpID4gMCk7CisgICAgQkRSVl9QT0xMX1dISUxFKGJzLCBx YXRvbWljX3JlYWQoJmRyYWluZWRfZW5kX2NvdW50ZXIpID4gMCk7CiB9CiAKIHZvaWQgYmRydl9h cHBseV9zdWJ0cmVlX2RyYWluKEJkcnZDaGlsZCAqY2hpbGQsIEJsb2NrRHJpdmVyU3RhdGUgKm5l d19wYXJlbnQpCkBAIC01MjYsNyArNTI2LDcgQEAgdm9pZCBiZHJ2X3VuYXBwbHlfc3VidHJlZV9k cmFpbihCZHJ2Q2hpbGQgKmNoaWxkLCBCbG9ja0RyaXZlclN0YXRlICpvbGRfcGFyZW50KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZkcmFpbmVkX2VuZF9jb3VudGVyKTsKICAgICB9CiAK LSAgICBCRFJWX1BPTExfV0hJTEUoY2hpbGQtPmJzLCBhdG9taWNfcmVhZCgmZHJhaW5lZF9lbmRf Y291bnRlcikgPiAwKTsKKyAgICBCRFJWX1BPTExfV0hJTEUoY2hpbGQtPmJzLCBxYXRvbWljX3Jl YWQoJmRyYWluZWRfZW5kX2NvdW50ZXIpID4gMCk7CiB9CiAKIC8qCkBAIC01NTMsNyArNTUzLDcg QEAgc3RhdGljIHZvaWQgYmRydl9kcmFpbl9hc3NlcnRfaWRsZShCbG9ja0RyaXZlclN0YXRlICpi cykKIHsKICAgICBCZHJ2Q2hpbGQgKmNoaWxkLCAqbmV4dDsKIAotICAgIGFzc2VydChhdG9taWNf cmVhZCgmYnMtPmluX2ZsaWdodCkgPT0gMCk7CisgICAgYXNzZXJ0KHFhdG9taWNfcmVhZCgmYnMt PmluX2ZsaWdodCkgPT0gMCk7CiAgICAgUUxJU1RfRk9SRUFDSF9TQUZFKGNoaWxkLCAmYnMtPmNo aWxkcmVuLCBuZXh0LCBuZXh0KSB7CiAgICAgICAgIGJkcnZfZHJhaW5fYXNzZXJ0X2lkbGUoY2hp bGQtPmJzKTsKICAgICB9CkBAIC02NTUsNyArNjU1LDcgQEAgdm9pZCBiZHJ2X2RyYWluX2FsbF9l bmQodm9pZCkKICAgICB9CiAKICAgICBhc3NlcnQocWVtdV9nZXRfY3VycmVudF9haW9fY29udGV4 dCgpID09IHFlbXVfZ2V0X2Fpb19jb250ZXh0KCkpOwotICAgIEFJT19XQUlUX1dISUxFKE5VTEws IGF0b21pY19yZWFkKCZkcmFpbmVkX2VuZF9jb3VudGVyKSA+IDApOworICAgIEFJT19XQUlUX1dI SUxFKE5VTEwsIHFhdG9taWNfcmVhZCgmZHJhaW5lZF9lbmRfY291bnRlcikgPiAwKTsKIAogICAg IGFzc2VydChiZHJ2X2RyYWluX2FsbF9jb3VudCA+IDApOwogICAgIGJkcnZfZHJhaW5fYWxsX2Nv dW50LS07CkBAIC02NzUsNyArNjc1LDcgQEAgdm9pZCBiZHJ2X2RyYWluX2FsbCh2b2lkKQogc3Rh dGljIHZvaWQgdHJhY2tlZF9yZXF1ZXN0X2VuZChCZHJ2VHJhY2tlZFJlcXVlc3QgKnJlcSkKIHsK ICAgICBpZiAocmVxLT5zZXJpYWxpc2luZykgewotICAgICAgICBhdG9taWNfZGVjKCZyZXEtPmJz LT5zZXJpYWxpc2luZ19pbl9mbGlnaHQpOworICAgICAgICBxYXRvbWljX2RlYygmcmVxLT5icy0+ c2VyaWFsaXNpbmdfaW5fZmxpZ2h0KTsKICAgICB9CiAKICAgICBxZW11X2NvX211dGV4X2xvY2so JnJlcS0+YnMtPnJlcXNfbG9jayk7CkBAIC03NzcsNyArNzc3LDcgQEAgYm9vbCBiZHJ2X21hcmtf cmVxdWVzdF9zZXJpYWxpc2luZyhCZHJ2VHJhY2tlZFJlcXVlc3QgKnJlcSwgdWludDY0X3QgYWxp Z24pCiAKICAgICBxZW11X2NvX211dGV4X2xvY2soJmJzLT5yZXFzX2xvY2spOwogICAgIGlmICgh cmVxLT5zZXJpYWxpc2luZykgewotICAgICAgICBhdG9taWNfaW5jKCZyZXEtPmJzLT5zZXJpYWxp c2luZ19pbl9mbGlnaHQpOworICAgICAgICBxYXRvbWljX2luYygmcmVxLT5icy0+c2VyaWFsaXNp bmdfaW5fZmxpZ2h0KTsKICAgICAgICAgcmVxLT5zZXJpYWxpc2luZyA9IHRydWU7CiAgICAgfQog CkBAIC04NDEsNyArODQxLDcgQEAgc3RhdGljIGludCBiZHJ2X2dldF9jbHVzdGVyX3NpemUoQmxv Y2tEcml2ZXJTdGF0ZSAqYnMpCiAKIHZvaWQgYmRydl9pbmNfaW5fZmxpZ2h0KEJsb2NrRHJpdmVy U3RhdGUgKmJzKQogewotICAgIGF0b21pY19pbmMoJmJzLT5pbl9mbGlnaHQpOworICAgIHFhdG9t aWNfaW5jKCZicy0+aW5fZmxpZ2h0KTsKIH0KIAogdm9pZCBiZHJ2X3dha2V1cChCbG9ja0RyaXZl clN0YXRlICpicykKQEAgLTg1MSw3ICs4NTEsNyBAQCB2b2lkIGJkcnZfd2FrZXVwKEJsb2NrRHJp dmVyU3RhdGUgKmJzKQogCiB2b2lkIGJkcnZfZGVjX2luX2ZsaWdodChCbG9ja0RyaXZlclN0YXRl ICpicykKIHsKLSAgICBhdG9taWNfZGVjKCZicy0+aW5fZmxpZ2h0KTsKKyAgICBxYXRvbWljX2Rl YygmYnMtPmluX2ZsaWdodCk7CiAgICAgYmRydl93YWtldXAoYnMpOwogfQogCkBAIC04NjAsNyAr ODYwLDcgQEAgc3RhdGljIGJvb2wgY29yb3V0aW5lX2ZuIGJkcnZfd2FpdF9zZXJpYWxpc2luZ19y ZXF1ZXN0cyhCZHJ2VHJhY2tlZFJlcXVlc3QgKnNlbGYKICAgICBCbG9ja0RyaXZlclN0YXRlICpi cyA9IHNlbGYtPmJzOwogICAgIGJvb2wgd2FpdGVkID0gZmFsc2U7CiAKLSAgICBpZiAoIWF0b21p Y19yZWFkKCZicy0+c2VyaWFsaXNpbmdfaW5fZmxpZ2h0KSkgeworICAgIGlmICghcWF0b21pY19y ZWFkKCZicy0+c2VyaWFsaXNpbmdfaW5fZmxpZ2h0KSkgewogICAgICAgICByZXR1cm4gZmFsc2U7 CiAgICAgfQogCkBAIC0xNzQ3LDcgKzE3NDcsNyBAQCBpbnQgY29yb3V0aW5lX2ZuIGJkcnZfY29f cHJlYWR2X3BhcnQoQmRydkNoaWxkICpjaGlsZCwKICAgICBiZHJ2X2luY19pbl9mbGlnaHQoYnMp OwogCiAgICAgLyogRG9uJ3QgZG8gY29weS1vbi1yZWFkIGlmIHdlIHJlYWQgZGF0YSBiZWZvcmUg d3JpdGUgb3BlcmF0aW9uICovCi0gICAgaWYgKGF0b21pY19yZWFkKCZicy0+Y29weV9vbl9yZWFk KSkgeworICAgIGlmIChxYXRvbWljX3JlYWQoJmJzLT5jb3B5X29uX3JlYWQpKSB7CiAgICAgICAg IGZsYWdzIHw9IEJEUlZfUkVRX0NPUFlfT05fUkVBRDsKICAgICB9CiAKQEAgLTE5MzUsNyArMTkz NSw3IEBAIGJkcnZfY29fd3JpdGVfcmVxX2ZpbmlzaChCZHJ2Q2hpbGQgKmNoaWxkLCBpbnQ2NF90 IG9mZnNldCwgdWludDY0X3QgYnl0ZXMsCiAgICAgaW50NjRfdCBlbmRfc2VjdG9yID0gRElWX1JP VU5EX1VQKG9mZnNldCArIGJ5dGVzLCBCRFJWX1NFQ1RPUl9TSVpFKTsKICAgICBCbG9ja0RyaXZl clN0YXRlICpicyA9IGNoaWxkLT5iczsKIAotICAgIGF0b21pY19pbmMoJmJzLT53cml0ZV9nZW4p OworICAgIHFhdG9taWNfaW5jKCZicy0+d3JpdGVfZ2VuKTsKIAogICAgIC8qCiAgICAgICogRGlz Y2FyZCBjYW5ub3QgZXh0ZW5kIHRoZSBpbWFnZSwgYnV0IGluIGVycm9yIGhhbmRsaW5nIGNhc2Vz LCBzdWNoIGFzCkBAIC0yNzY4LDcgKzI3NjgsNyBAQCBpbnQgY29yb3V0aW5lX2ZuIGJkcnZfY29f Zmx1c2goQmxvY2tEcml2ZXJTdGF0ZSAqYnMpCiAgICAgfQogCiAgICAgcWVtdV9jb19tdXRleF9s b2NrKCZicy0+cmVxc19sb2NrKTsKLSAgICBjdXJyZW50X2dlbiA9IGF0b21pY19yZWFkKCZicy0+ d3JpdGVfZ2VuKTsKKyAgICBjdXJyZW50X2dlbiA9IHFhdG9taWNfcmVhZCgmYnMtPndyaXRlX2dl bik7CiAKICAgICAvKiBXYWl0IHVudGlsIGFueSBwcmV2aW91cyBmbHVzaGVzIGFyZSBjb21wbGV0 ZWQgKi8KICAgICB3aGlsZSAoYnMtPmFjdGl2ZV9mbHVzaF9yZXEpIHsKQEAgLTMxMTYsNyArMzEx Niw3IEBAIHZvaWQgYmRydl9pb19wbHVnKEJsb2NrRHJpdmVyU3RhdGUgKmJzKQogICAgICAgICBi ZHJ2X2lvX3BsdWcoY2hpbGQtPmJzKTsKICAgICB9CiAKLSAgICBpZiAoYXRvbWljX2ZldGNoX2lu YygmYnMtPmlvX3BsdWdnZWQpID09IDApIHsKKyAgICBpZiAocWF0b21pY19mZXRjaF9pbmMoJmJz LT5pb19wbHVnZ2VkKSA9PSAwKSB7CiAgICAgICAgIEJsb2NrRHJpdmVyICpkcnYgPSBicy0+ZHJ2 OwogICAgICAgICBpZiAoZHJ2ICYmIGRydi0+YmRydl9pb19wbHVnKSB7CiAgICAgICAgICAgICBk cnYtPmJkcnZfaW9fcGx1Zyhicyk7CkBAIC0zMTI5LDcgKzMxMjksNyBAQCB2b2lkIGJkcnZfaW9f dW5wbHVnKEJsb2NrRHJpdmVyU3RhdGUgKmJzKQogICAgIEJkcnZDaGlsZCAqY2hpbGQ7CiAKICAg ICBhc3NlcnQoYnMtPmlvX3BsdWdnZWQpOwotICAgIGlmIChhdG9taWNfZmV0Y2hfZGVjKCZicy0+ aW9fcGx1Z2dlZCkgPT0gMSkgeworICAgIGlmIChxYXRvbWljX2ZldGNoX2RlYygmYnMtPmlvX3Bs dWdnZWQpID09IDEpIHsKICAgICAgICAgQmxvY2tEcml2ZXIgKmRydiA9IGJzLT5kcnY7CiAgICAg ICAgIGlmIChkcnYgJiYgZHJ2LT5iZHJ2X2lvX3VucGx1ZykgewogICAgICAgICAgICAgZHJ2LT5i ZHJ2X2lvX3VucGx1Zyhicyk7CmRpZmYgLS1naXQgYS9ibG9jay9uZnMuYyBiL2Jsb2NrL25mcy5j CmluZGV4IDYxYTI0OWE5ZmMuLmY4NmU2NjAzNzQgMTAwNjQ0Ci0tLSBhL2Jsb2NrL25mcy5jCisr KyBiL2Jsb2NrL25mcy5jCkBAIC03MjEsNyArNzIxLDcgQEAgbmZzX2dldF9hbGxvY2F0ZWRfZmls ZV9zaXplX2NiKGludCByZXQsIHN0cnVjdCBuZnNfY29udGV4dCAqbmZzLCB2b2lkICpkYXRhLAog ICAgIH0KIAogICAgIC8qIFNldCB0YXNrLT5jb21wbGV0ZSBiZWZvcmUgcmVhZGluZyBicy0+d2Fr ZXVwLiAgKi8KLSAgICBhdG9taWNfbWJfc2V0KCZ0YXNrLT5jb21wbGV0ZSwgMSk7CisgICAgcWF0 b21pY19tYl9zZXQoJnRhc2stPmNvbXBsZXRlLCAxKTsKICAgICBiZHJ2X3dha2V1cCh0YXNrLT5i cyk7CiB9CiAKZGlmZiAtLWdpdCBhL2Jsb2NrL3NoZWVwZG9nLmMgYi9ibG9jay9zaGVlcGRvZy5j CmluZGV4IGNiYmViYzFhYWYuLjJmNWMwZWIzNzYgMTAwNjQ0Ci0tLSBhL2Jsb2NrL3NoZWVwZG9n LmMKKysrIGIvYmxvY2svc2hlZXBkb2cuYwpAQCAtNjY1LDcgKzY2NSw3IEBAIG91dDoKICAgICBz cmNvLT5jbyA9IE5VTEw7CiAgICAgc3Jjby0+cmV0ID0gcmV0OwogICAgIC8qIFNldCBzcmNvLT5m aW5pc2hlZCBiZWZvcmUgcmVhZGluZyBicy0+d2FrZXVwLiAgKi8KLSAgICBhdG9taWNfbWJfc2V0 KCZzcmNvLT5maW5pc2hlZCwgdHJ1ZSk7CisgICAgcWF0b21pY19tYl9zZXQoJnNyY28tPmZpbmlz aGVkLCB0cnVlKTsKICAgICBpZiAoc3Jjby0+YnMpIHsKICAgICAgICAgYmRydl93YWtldXAoc3Jj by0+YnMpOwogICAgIH0KZGlmZiAtLWdpdCBhL2Jsb2NrL3Rocm90dGxlLWdyb3Vwcy5jIGIvYmxv Y2svdGhyb3R0bGUtZ3JvdXBzLmMKaW5kZXggNGUyODM2NWQ4ZC4uZTJmMjgxM2MwZiAxMDA2NDQK LS0tIGEvYmxvY2svdGhyb3R0bGUtZ3JvdXBzLmMKKysrIGIvYmxvY2svdGhyb3R0bGUtZ3JvdXBz LmMKQEAgLTIyOCw3ICsyMjgsNyBAQCBzdGF0aWMgVGhyb3R0bGVHcm91cE1lbWJlciAqbmV4dF90 aHJvdHRsZV90b2tlbihUaHJvdHRsZUdyb3VwTWVtYmVyICp0Z20sCiAgICAgICogaW1tZWRpYXRl bHkgaWYgaXQgaGFzIHBlbmRpbmcgcmVxdWVzdHMuIE90aGVyd2lzZSB3ZSBjb3VsZCBiZQogICAg ICAqIGZvcmNpbmcgaXQgdG8gd2FpdCBmb3Igb3RoZXIgbWVtYmVyJ3MgdGhyb3R0bGVkIHJlcXVl c3RzLiAqLwogICAgIGlmICh0Z21faGFzX3BlbmRpbmdfcmVxcyh0Z20sIGlzX3dyaXRlKSAmJgot ICAgICAgICBhdG9taWNfcmVhZCgmdGdtLT5pb19saW1pdHNfZGlzYWJsZWQpKSB7CisgICAgICAg IHFhdG9taWNfcmVhZCgmdGdtLT5pb19saW1pdHNfZGlzYWJsZWQpKSB7CiAgICAgICAgIHJldHVy biB0Z207CiAgICAgfQogCkBAIC0yNzIsNyArMjcyLDcgQEAgc3RhdGljIGJvb2wgdGhyb3R0bGVf Z3JvdXBfc2NoZWR1bGVfdGltZXIoVGhyb3R0bGVHcm91cE1lbWJlciAqdGdtLAogICAgIFRocm90 dGxlVGltZXJzICp0dCA9ICZ0Z20tPnRocm90dGxlX3RpbWVyczsKICAgICBib29sIG11c3Rfd2Fp dDsKIAotICAgIGlmIChhdG9taWNfcmVhZCgmdGdtLT5pb19saW1pdHNfZGlzYWJsZWQpKSB7Cisg ICAgaWYgKHFhdG9taWNfcmVhZCgmdGdtLT5pb19saW1pdHNfZGlzYWJsZWQpKSB7CiAgICAgICAg IHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTQxNyw3ICs0MTcsNyBAQCBzdGF0aWMgdm9pZCBj b3JvdXRpbmVfZm4gdGhyb3R0bGVfZ3JvdXBfcmVzdGFydF9xdWV1ZV9lbnRyeSh2b2lkICpvcGFx dWUpCiAKICAgICBnX2ZyZWUoZGF0YSk7CiAKLSAgICBhdG9taWNfZGVjKCZ0Z20tPnJlc3RhcnRf cGVuZGluZyk7CisgICAgcWF0b21pY19kZWMoJnRnbS0+cmVzdGFydF9wZW5kaW5nKTsKICAgICBh aW9fd2FpdF9raWNrKCk7CiB9CiAKQEAgLTQzNCw3ICs0MzQsNyBAQCBzdGF0aWMgdm9pZCB0aHJv dHRsZV9ncm91cF9yZXN0YXJ0X3F1ZXVlKFRocm90dGxlR3JvdXBNZW1iZXIgKnRnbSwgYm9vbCBp c193cml0ZQogICAgICAqIGJlIG5vIHRpbWVyIHBlbmRpbmcgb24gdGhpcyB0Z20gYXQgdGhpcyBw b2ludCAqLwogICAgIGFzc2VydCghdGltZXJfcGVuZGluZyh0Z20tPnRocm90dGxlX3RpbWVycy50 aW1lcnNbaXNfd3JpdGVdKSk7CiAKLSAgICBhdG9taWNfaW5jKCZ0Z20tPnJlc3RhcnRfcGVuZGlu Zyk7CisgICAgcWF0b21pY19pbmMoJnRnbS0+cmVzdGFydF9wZW5kaW5nKTsKIAogICAgIGNvID0g cWVtdV9jb3JvdXRpbmVfY3JlYXRlKHRocm90dGxlX2dyb3VwX3Jlc3RhcnRfcXVldWVfZW50cnks IHJkKTsKICAgICBhaW9fY29fZW50ZXIodGdtLT5haW9fY29udGV4dCwgY28pOwpAQCAtNTQ0LDcg KzU0NCw3IEBAIHZvaWQgdGhyb3R0bGVfZ3JvdXBfcmVnaXN0ZXJfdGdtKFRocm90dGxlR3JvdXBN ZW1iZXIgKnRnbSwKIAogICAgIHRnbS0+dGhyb3R0bGVfc3RhdGUgPSB0czsKICAgICB0Z20tPmFp b19jb250ZXh0ID0gY3R4OwotICAgIGF0b21pY19zZXQoJnRnbS0+cmVzdGFydF9wZW5kaW5nLCAw KTsKKyAgICBxYXRvbWljX3NldCgmdGdtLT5yZXN0YXJ0X3BlbmRpbmcsIDApOwogCiAgICAgcWVt dV9tdXRleF9sb2NrKCZ0Zy0+bG9jayk7CiAgICAgLyogSWYgdGhlIFRocm90dGxlR3JvdXAgaXMg bmV3IHNldCB0aGlzIFRocm90dGxlR3JvdXBNZW1iZXIgYXMgdGhlIHRva2VuICovCkBAIC01OTIs NyArNTkyLDcgQEAgdm9pZCB0aHJvdHRsZV9ncm91cF91bnJlZ2lzdGVyX3RnbShUaHJvdHRsZUdy b3VwTWVtYmVyICp0Z20pCiAgICAgfQogCiAgICAgLyogV2FpdCBmb3IgdGhyb3R0bGVfZ3JvdXBf cmVzdGFydF9xdWV1ZV9lbnRyeSgpIGNvcm91dGluZXMgdG8gZmluaXNoICovCi0gICAgQUlPX1dB SVRfV0hJTEUodGdtLT5haW9fY29udGV4dCwgYXRvbWljX3JlYWQoJnRnbS0+cmVzdGFydF9wZW5k aW5nKSA+IDApOworICAgIEFJT19XQUlUX1dISUxFKHRnbS0+YWlvX2NvbnRleHQsIHFhdG9taWNf cmVhZCgmdGdtLT5yZXN0YXJ0X3BlbmRpbmcpID4gMCk7CiAKICAgICBxZW11X211dGV4X2xvY2so JnRnLT5sb2NrKTsKICAgICBmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7CmRpZmYgLS1naXQgYS9i bG9jay90aHJvdHRsZS5jIGIvYmxvY2svdGhyb3R0bGUuYwppbmRleCA5YTBmMzgxNDlhLi5iNjg1 MTY2YWQ0IDEwMDY0NAotLS0gYS9ibG9jay90aHJvdHRsZS5jCisrKyBiL2Jsb2NrL3Rocm90dGxl LmMKQEAgLTIxNyw3ICsyMTcsNyBAQCBzdGF0aWMgdm9pZCB0aHJvdHRsZV9yZW9wZW5fYWJvcnQo QkRSVlJlb3BlblN0YXRlICpyZW9wZW5fc3RhdGUpCiBzdGF0aWMgdm9pZCBjb3JvdXRpbmVfZm4g dGhyb3R0bGVfY29fZHJhaW5fYmVnaW4oQmxvY2tEcml2ZXJTdGF0ZSAqYnMpCiB7CiAgICAgVGhy b3R0bGVHcm91cE1lbWJlciAqdGdtID0gYnMtPm9wYXF1ZTsKLSAgICBpZiAoYXRvbWljX2ZldGNo X2luYygmdGdtLT5pb19saW1pdHNfZGlzYWJsZWQpID09IDApIHsKKyAgICBpZiAocWF0b21pY19m ZXRjaF9pbmMoJnRnbS0+aW9fbGltaXRzX2Rpc2FibGVkKSA9PSAwKSB7CiAgICAgICAgIHRocm90 dGxlX2dyb3VwX3Jlc3RhcnRfdGdtKHRnbSk7CiAgICAgfQogfQpAQCAtMjI2LDcgKzIyNiw3IEBA IHN0YXRpYyB2b2lkIGNvcm91dGluZV9mbiB0aHJvdHRsZV9jb19kcmFpbl9lbmQoQmxvY2tEcml2 ZXJTdGF0ZSAqYnMpCiB7CiAgICAgVGhyb3R0bGVHcm91cE1lbWJlciAqdGdtID0gYnMtPm9wYXF1 ZTsKICAgICBhc3NlcnQodGdtLT5pb19saW1pdHNfZGlzYWJsZWQpOwotICAgIGF0b21pY19kZWMo JnRnbS0+aW9fbGltaXRzX2Rpc2FibGVkKTsKKyAgICBxYXRvbWljX2RlYygmdGdtLT5pb19saW1p dHNfZGlzYWJsZWQpOwogfQogCiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgdGhyb3R0bGVfc3Ry b25nX3J1bnRpbWVfb3B0c1tdID0gewpkaWZmIC0tZ2l0IGEvYmxvY2tkZXYuYyBiL2Jsb2NrZGV2 LmMKaW5kZXggN2YyNTYxMDgxZS4uYmViZDNiYTFjMyAxMDA2NDQKLS0tIGEvYmxvY2tkZXYuYwor KysgYi9ibG9ja2Rldi5jCkBAIC0xNjA0LDcgKzE2MDQsNyBAQCBzdGF0aWMgdm9pZCBleHRlcm5h bF9zbmFwc2hvdF9jb21taXQoQmxrQWN0aW9uU3RhdGUgKmNvbW1vbikKICAgICAvKiBXZSBkb24n dCBuZWVkIChvciB3YW50KSB0byB1c2UgdGhlIHRyYW5zYWN0aW9uYWwKICAgICAgKiBiZHJ2X3Jl b3Blbl9tdWx0aXBsZSgpIGFjcm9zcyBhbGwgdGhlIGVudHJpZXMgYXQgb25jZSwgYmVjYXVzZSB3 ZQogICAgICAqIGRvbid0IHdhbnQgdG8gYWJvcnQgYWxsIG9mIHRoZW0gaWYgb25lIG9mIHRoZW0g ZmFpbHMgdGhlIHJlb3BlbiAqLwotICAgIGlmICghYXRvbWljX3JlYWQoJnN0YXRlLT5vbGRfYnMt PmNvcHlfb25fcmVhZCkpIHsKKyAgICBpZiAoIXFhdG9taWNfcmVhZCgmc3RhdGUtPm9sZF9icy0+ Y29weV9vbl9yZWFkKSkgewogICAgICAgICBiZHJ2X3Jlb3Blbl9zZXRfcmVhZF9vbmx5KHN0YXRl LT5vbGRfYnMsIHRydWUsIE5VTEwpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvYmxvY2tqb2IuYyBi L2Jsb2Nram9iLmMKaW5kZXggNDcwZmFjZmQ0Ny4uOThhYzhhZjk4MiAxMDA2NDQKLS0tIGEvYmxv Y2tqb2IuYworKysgYi9ibG9ja2pvYi5jCkBAIC0yOTgsNyArMjk4LDcgQEAgQmxvY2tKb2JJbmZv ICpibG9ja19qb2JfcXVlcnkoQmxvY2tKb2IgKmpvYiwgRXJyb3IgKiplcnJwKQogICAgIGluZm8g PSBnX25ldzAoQmxvY2tKb2JJbmZvLCAxKTsKICAgICBpbmZvLT50eXBlICAgICAgPSBnX3N0cmR1 cChqb2JfdHlwZV9zdHIoJmpvYi0+am9iKSk7CiAgICAgaW5mby0+ZGV2aWNlICAgID0gZ19zdHJk dXAoam9iLT5qb2IuaWQpOwotICAgIGluZm8tPmJ1c3kgICAgICA9IGF0b21pY19yZWFkKCZqb2It PmpvYi5idXN5KTsKKyAgICBpbmZvLT5idXN5ICAgICAgPSBxYXRvbWljX3JlYWQoJmpvYi0+am9i LmJ1c3kpOwogICAgIGluZm8tPnBhdXNlZCAgICA9IGpvYi0+am9iLnBhdXNlX2NvdW50ID4gMDsK ICAgICBpbmZvLT5vZmZzZXQgICAgPSBqb2ItPmpvYi5wcm9ncmVzcy5jdXJyZW50OwogICAgIGlu Zm8tPmxlbiAgICAgICA9IGpvYi0+am9iLnByb2dyZXNzLnRvdGFsOwpkaWZmIC0tZ2l0IGEvY29u dHJpYi9saWJ2aG9zdC11c2VyL2xpYnZob3N0LXVzZXIuYyBiL2NvbnRyaWIvbGlidmhvc3QtdXNl ci9saWJ2aG9zdC11c2VyLmMKaW5kZXggOWQzMGZmMjI4My4uMDU4NjFiMTQxOSAxMDA2NDQKLS0t IGEvY29udHJpYi9saWJ2aG9zdC11c2VyL2xpYnZob3N0LXVzZXIuYworKysgYi9jb250cmliL2xp YnZob3N0LXVzZXIvbGlidmhvc3QtdXNlci5jCkBAIC00NDgsNyArNDQ4LDcgQEAgc3RhdGljIHZv aWQKIHZ1X2xvZ19wYWdlKHVpbnQ4X3QgKmxvZ190YWJsZSwgdWludDY0X3QgcGFnZSkKIHsKICAg ICBEUFJJTlQoIkxvZ2dlZCBkaXJ0eSBndWVzdCBwYWdlOiAlIlBSSWQ2NCJcbiIsIHBhZ2UpOwot ICAgIGF0b21pY19vcigmbG9nX3RhYmxlW3BhZ2UgLyA4XSwgMSA8PCAocGFnZSAlIDgpKTsKKyAg ICBxYXRvbWljX29yKCZsb2dfdGFibGVbcGFnZSAvIDhdLCAxIDw8IChwYWdlICUgOCkpOwogfQog CiBzdGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEvY3B1cy1jb21tb24uYyBiL2NwdXMtY29tbW9uLmMK aW5kZXggMzQwNDRmNGU0Yy4uODM0NzVlZmZmNyAxMDA2NDQKLS0tIGEvY3B1cy1jb21tb24uYwor KysgYi9jcHVzLWNvbW1vbi5jCkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBkb19ydW5fb25fY3B1 KENQVVN0YXRlICpjcHUsIHJ1bl9vbl9jcHVfZnVuYyBmdW5jLCBydW5fb25fY3B1X2RhdGEgZGF0 YSwKICAgICB3aS5leGNsdXNpdmUgPSBmYWxzZTsKIAogICAgIHF1ZXVlX3dvcmtfb25fY3B1KGNw dSwgJndpKTsKLSAgICB3aGlsZSAoIWF0b21pY19tYl9yZWFkKCZ3aS5kb25lKSkgeworICAgIHdo aWxlICghcWF0b21pY19tYl9yZWFkKCZ3aS5kb25lKSkgewogICAgICAgICBDUFVTdGF0ZSAqc2Vs Zl9jcHUgPSBjdXJyZW50X2NwdTsKIAogICAgICAgICBxZW11X2NvbmRfd2FpdCgmcWVtdV93b3Jr X2NvbmQsIG11dGV4KTsKQEAgLTE4OCwyMCArMTg4LDIwIEBAIHZvaWQgc3RhcnRfZXhjbHVzaXZl KHZvaWQpCiAgICAgZXhjbHVzaXZlX2lkbGUoKTsKIAogICAgIC8qIE1ha2UgYWxsIG90aGVyIGNw dXMgc3RvcCBleGVjdXRpbmcuICAqLwotICAgIGF0b21pY19zZXQoJnBlbmRpbmdfY3B1cywgMSk7 CisgICAgcWF0b21pY19zZXQoJnBlbmRpbmdfY3B1cywgMSk7CiAKICAgICAvKiBXcml0ZSBwZW5k aW5nX2NwdXMgYmVmb3JlIHJlYWRpbmcgb3RoZXJfY3B1LT5ydW5uaW5nLiAgKi8KICAgICBzbXBf bWIoKTsKICAgICBydW5uaW5nX2NwdXMgPSAwOwogICAgIENQVV9GT1JFQUNIKG90aGVyX2NwdSkg ewotICAgICAgICBpZiAoYXRvbWljX3JlYWQoJm90aGVyX2NwdS0+cnVubmluZykpIHsKKyAgICAg ICAgaWYgKHFhdG9taWNfcmVhZCgmb3RoZXJfY3B1LT5ydW5uaW5nKSkgewogICAgICAgICAgICAg b3RoZXJfY3B1LT5oYXNfd2FpdGVyID0gdHJ1ZTsKICAgICAgICAgICAgIHJ1bm5pbmdfY3B1cysr OwogICAgICAgICAgICAgcWVtdV9jcHVfa2ljayhvdGhlcl9jcHUpOwogICAgICAgICB9CiAgICAg fQogCi0gICAgYXRvbWljX3NldCgmcGVuZGluZ19jcHVzLCBydW5uaW5nX2NwdXMgKyAxKTsKKyAg ICBxYXRvbWljX3NldCgmcGVuZGluZ19jcHVzLCBydW5uaW5nX2NwdXMgKyAxKTsKICAgICB3aGls ZSAocGVuZGluZ19jcHVzID4gMSkgewogICAgICAgICBxZW11X2NvbmRfd2FpdCgmZXhjbHVzaXZl X2NvbmQsICZxZW11X2NwdV9saXN0X2xvY2spOwogICAgIH0KQEAgLTIyMCw3ICsyMjAsNyBAQCB2 b2lkIGVuZF9leGNsdXNpdmUodm9pZCkKICAgICBjdXJyZW50X2NwdS0+aW5fZXhjbHVzaXZlX2Nv bnRleHQgPSBmYWxzZTsKIAogICAgIHFlbXVfbXV0ZXhfbG9jaygmcWVtdV9jcHVfbGlzdF9sb2Nr KTsKLSAgICBhdG9taWNfc2V0KCZwZW5kaW5nX2NwdXMsIDApOworICAgIHFhdG9taWNfc2V0KCZw ZW5kaW5nX2NwdXMsIDApOwogICAgIHFlbXVfY29uZF9icm9hZGNhc3QoJmV4Y2x1c2l2ZV9yZXN1 bWUpOwogICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZxZW11X2NwdV9saXN0X2xvY2spOwogfQpAQCAt MjI4LDcgKzIyOCw3IEBAIHZvaWQgZW5kX2V4Y2x1c2l2ZSh2b2lkKQogLyogV2FpdCBmb3IgZXhj bHVzaXZlIG9wcyB0byBmaW5pc2gsIGFuZCBiZWdpbiBjcHUgZXhlY3V0aW9uLiAgKi8KIHZvaWQg Y3B1X2V4ZWNfc3RhcnQoQ1BVU3RhdGUgKmNwdSkKIHsKLSAgICBhdG9taWNfc2V0KCZjcHUtPnJ1 bm5pbmcsIHRydWUpOworICAgIHFhdG9taWNfc2V0KCZjcHUtPnJ1bm5pbmcsIHRydWUpOwogCiAg ICAgLyogV3JpdGUgY3B1LT5ydW5uaW5nIGJlZm9yZSByZWFkaW5nIHBlbmRpbmdfY3B1cy4gICov CiAgICAgc21wX21iKCk7CkBAIC0yNDYsMTcgKzI0NiwxNyBAQCB2b2lkIGNwdV9leGVjX3N0YXJ0 KENQVVN0YXRlICpjcHUpCiAgICAgICogMy4gcGVuZGluZ19jcHVzID09IDAuICBUaGVuIHN0YXJ0 X2V4Y2x1c2l2ZSBpcyBkZWZpbml0ZWx5IGdvaW5nIHRvCiAgICAgICogc2VlIGNwdS0+cnVubmlu ZyA9PSB0cnVlLCBhbmQgaXQgd2lsbCBraWNrIHRoZSBDUFUuCiAgICAgICovCi0gICAgaWYgKHVu bGlrZWx5KGF0b21pY19yZWFkKCZwZW5kaW5nX2NwdXMpKSkgeworICAgIGlmICh1bmxpa2VseShx YXRvbWljX3JlYWQoJnBlbmRpbmdfY3B1cykpKSB7CiAgICAgICAgIFFFTVVfTE9DS19HVUFSRCgm cWVtdV9jcHVfbGlzdF9sb2NrKTsKICAgICAgICAgaWYgKCFjcHUtPmhhc193YWl0ZXIpIHsKICAg ICAgICAgICAgIC8qIE5vdCBjb3VudGVkIGluIHBlbmRpbmdfY3B1cywgbGV0IHRoZSBleGNsdXNp dmUgaXRlbQogICAgICAgICAgICAgICogcnVuLiAgU2luY2Ugd2UgaGF2ZSB0aGUgbG9jaywganVz dCBzZXQgY3B1LT5ydW5uaW5nIHRvIHRydWUKICAgICAgICAgICAgICAqIHdoaWxlIGhvbGRpbmcg aXQ7IG5vIG5lZWQgdG8gY2hlY2sgcGVuZGluZ19jcHVzIGFnYWluLgogICAgICAgICAgICAgICov Ci0gICAgICAgICAgICBhdG9taWNfc2V0KCZjcHUtPnJ1bm5pbmcsIGZhbHNlKTsKKyAgICAgICAg ICAgIHFhdG9taWNfc2V0KCZjcHUtPnJ1bm5pbmcsIGZhbHNlKTsKICAgICAgICAgICAgIGV4Y2x1 c2l2ZV9pZGxlKCk7CiAgICAgICAgICAgICAvKiBOb3cgcGVuZGluZ19jcHVzIGlzIHplcm8uICAq LwotICAgICAgICAgICAgYXRvbWljX3NldCgmY3B1LT5ydW5uaW5nLCB0cnVlKTsKKyAgICAgICAg ICAgIHFhdG9taWNfc2V0KCZjcHUtPnJ1bm5pbmcsIHRydWUpOwogICAgICAgICB9IGVsc2Ugewog ICAgICAgICAgICAgLyogQ291bnRlZCBpbiBwZW5kaW5nX2NwdXMsIGdvIGFoZWFkIGFuZCByZWxl YXNlIHRoZQogICAgICAgICAgICAgICogd2FpdGVyIGF0IGNwdV9leGVjX2VuZC4KQEAgLTI2OCw3 ICsyNjgsNyBAQCB2b2lkIGNwdV9leGVjX3N0YXJ0KENQVVN0YXRlICpjcHUpCiAvKiBNYXJrIGNw dSBhcyBub3QgZXhlY3V0aW5nLCBhbmQgcmVsZWFzZSBwZW5kaW5nIGV4Y2x1c2l2ZSBvcHMuICAq Lwogdm9pZCBjcHVfZXhlY19lbmQoQ1BVU3RhdGUgKmNwdSkKIHsKLSAgICBhdG9taWNfc2V0KCZj cHUtPnJ1bm5pbmcsIGZhbHNlKTsKKyAgICBxYXRvbWljX3NldCgmY3B1LT5ydW5uaW5nLCBmYWxz ZSk7CiAKICAgICAvKiBXcml0ZSBjcHUtPnJ1bm5pbmcgYmVmb3JlIHJlYWRpbmcgcGVuZGluZ19j cHVzLiAgKi8KICAgICBzbXBfbWIoKTsKQEAgLTI4OCwxMSArMjg4LDExIEBAIHZvaWQgY3B1X2V4 ZWNfZW5kKENQVVN0YXRlICpjcHUpCiAgICAgICogc2VlIGNwdS0+cnVubmluZyA9PSBmYWxzZSwg YW5kIGl0IGNhbiBpZ25vcmUgdGhpcyBDUFUgdW50aWwgdGhlCiAgICAgICogbmV4dCBjcHVfZXhl Y19zdGFydC4KICAgICAgKi8KLSAgICBpZiAodW5saWtlbHkoYXRvbWljX3JlYWQoJnBlbmRpbmdf Y3B1cykpKSB7CisgICAgaWYgKHVubGlrZWx5KHFhdG9taWNfcmVhZCgmcGVuZGluZ19jcHVzKSkp IHsKICAgICAgICAgUUVNVV9MT0NLX0dVQVJEKCZxZW11X2NwdV9saXN0X2xvY2spOwogICAgICAg ICBpZiAoY3B1LT5oYXNfd2FpdGVyKSB7CiAgICAgICAgICAgICBjcHUtPmhhc193YWl0ZXIgPSBm YWxzZTsKLSAgICAgICAgICAgIGF0b21pY19zZXQoJnBlbmRpbmdfY3B1cywgcGVuZGluZ19jcHVz IC0gMSk7CisgICAgICAgICAgICBxYXRvbWljX3NldCgmcGVuZGluZ19jcHVzLCBwZW5kaW5nX2Nw dXMgLSAxKTsKICAgICAgICAgICAgIGlmIChwZW5kaW5nX2NwdXMgPT0gMSkgewogICAgICAgICAg ICAgICAgIHFlbXVfY29uZF9zaWduYWwoJmV4Y2x1c2l2ZV9jb25kKTsKICAgICAgICAgICAgIH0K QEAgLTM0Niw3ICszNDYsNyBAQCB2b2lkIHByb2Nlc3NfcXVldWVkX2NwdV93b3JrKENQVVN0YXRl ICpjcHUpCiAgICAgICAgIGlmICh3aS0+ZnJlZSkgewogICAgICAgICAgICAgZ19mcmVlKHdpKTsK ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGF0b21pY19tYl9zZXQoJndpLT5kb25lLCB0 cnVlKTsKKyAgICAgICAgICAgIHFhdG9taWNfbWJfc2V0KCZ3aS0+ZG9uZSwgdHJ1ZSk7CiAgICAg ICAgIH0KICAgICB9CiAgICAgcWVtdV9tdXRleF91bmxvY2soJmNwdS0+d29ya19tdXRleCk7CmRp ZmYgLS1naXQgYS9kdW1wL2R1bXAuYyBiL2R1bXAvZHVtcC5jCmluZGV4IDEzZmRhNDQwYTQuLjQ1 ZGE0NmE5NTIgMTAwNjQ0Ci0tLSBhL2R1bXAvZHVtcC5jCisrKyBiL2R1bXAvZHVtcC5jCkBAIC0x NTcyLDcgKzE1NzIsNyBAQCBzdGF0aWMgdm9pZCBkdW1wX3N0YXRlX3ByZXBhcmUoRHVtcFN0YXRl ICpzKQogYm9vbCBkdW1wX2luX3Byb2dyZXNzKHZvaWQpCiB7CiAgICAgRHVtcFN0YXRlICpzdGF0 ZSA9ICZkdW1wX3N0YXRlX2dsb2JhbDsKLSAgICByZXR1cm4gKGF0b21pY19yZWFkKCZzdGF0ZS0+ c3RhdHVzKSA9PSBEVU1QX1NUQVRVU19BQ1RJVkUpOworICAgIHJldHVybiAocWF0b21pY19yZWFk KCZzdGF0ZS0+c3RhdHVzKSA9PSBEVU1QX1NUQVRVU19BQ1RJVkUpOwogfQogCiAvKiBjYWxjdWxh dGUgdG90YWwgc2l6ZSBvZiBtZW1vcnkgdG8gYmUgZHVtcGVkICh0YWtpbmcgZmlsdGVyIGludG8K QEAgLTE4ODIsNyArMTg4Miw3IEBAIHN0YXRpYyB2b2lkIGR1bXBfcHJvY2VzcyhEdW1wU3RhdGUg KnMsIEVycm9yICoqZXJycCkKIAogICAgIC8qIG1ha2Ugc3VyZSBzdGF0dXMgaXMgd3JpdHRlbiBh ZnRlciB3cml0dGVuX3NpemUgdXBkYXRlcyAqLwogICAgIHNtcF93bWIoKTsKLSAgICBhdG9taWNf c2V0KCZzLT5zdGF0dXMsCisgICAgcWF0b21pY19zZXQoJnMtPnN0YXR1cywKICAgICAgICAgICAg ICAgIChsb2NhbF9lcnIgPyBEVU1QX1NUQVRVU19GQUlMRUQgOiBEVU1QX1NUQVRVU19DT01QTEVU RUQpKTsKIAogICAgIC8qIHNlbmQgRFVNUF9DT01QTEVURUQgbWVzc2FnZSAodW5jb25kaXRpb25h bGx5KSAqLwpAQCAtMTkwOCw3ICsxOTA4LDcgQEAgRHVtcFF1ZXJ5UmVzdWx0ICpxbXBfcXVlcnlf ZHVtcChFcnJvciAqKmVycnApCiB7CiAgICAgRHVtcFF1ZXJ5UmVzdWx0ICpyZXN1bHQgPSBnX25l dyhEdW1wUXVlcnlSZXN1bHQsIDEpOwogICAgIER1bXBTdGF0ZSAqc3RhdGUgPSAmZHVtcF9zdGF0 ZV9nbG9iYWw7Ci0gICAgcmVzdWx0LT5zdGF0dXMgPSBhdG9taWNfcmVhZCgmc3RhdGUtPnN0YXR1 cyk7CisgICAgcmVzdWx0LT5zdGF0dXMgPSBxYXRvbWljX3JlYWQoJnN0YXRlLT5zdGF0dXMpOwog ICAgIC8qIG1ha2Ugc3VyZSB3ZSBhcmUgcmVhZGluZyBzdGF0dXMgYW5kIHdyaXR0ZW5fc2l6ZSBp biBvcmRlciAqLwogICAgIHNtcF9ybWIoKTsKICAgICByZXN1bHQtPmNvbXBsZXRlZCA9IHN0YXRl LT53cml0dGVuX3NpemU7CkBAIC0yMDEzLDcgKzIwMTMsNyBAQCB2b2lkIHFtcF9kdW1wX2d1ZXN0 X21lbW9yeShib29sIHBhZ2luZywgY29uc3QgY2hhciAqZmlsZSwKICAgICAgICAgICAgICAgYmVn aW4sIGxlbmd0aCwgJmxvY2FsX2Vycik7CiAgICAgaWYgKGxvY2FsX2VycikgewogICAgICAgICBl cnJvcl9wcm9wYWdhdGUoZXJycCwgbG9jYWxfZXJyKTsKLSAgICAgICAgYXRvbWljX3NldCgmcy0+ c3RhdHVzLCBEVU1QX1NUQVRVU19GQUlMRUQpOworICAgICAgICBxYXRvbWljX3NldCgmcy0+c3Rh dHVzLCBEVU1QX1NUQVRVU19GQUlMRUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYg LS1naXQgYS9leGVjLmMgYi9leGVjLmMKaW5kZXggZTM0YjYwMmJkZi4uM2Y1ZGViMzVmZiAxMDA2 NDQKLS0tIGEvZXhlYy5jCisrKyBiL2V4ZWMuYwpAQCAtMzUzLDEzICszNTMsMTMgQEAgc3RhdGlj IE1lbW9yeVJlZ2lvblNlY3Rpb24gKmFkZHJlc3Nfc3BhY2VfbG9va3VwX3JlZ2lvbihBZGRyZXNz U3BhY2VEaXNwYXRjaCAqZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaHdhZGRyIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcmVzb2x2ZV9zdWJwYWdlKQogewot ICAgIE1lbW9yeVJlZ2lvblNlY3Rpb24gKnNlY3Rpb24gPSBhdG9taWNfcmVhZCgmZC0+bXJ1X3Nl Y3Rpb24pOworICAgIE1lbW9yeVJlZ2lvblNlY3Rpb24gKnNlY3Rpb24gPSBxYXRvbWljX3JlYWQo JmQtPm1ydV9zZWN0aW9uKTsKICAgICBzdWJwYWdlX3QgKnN1YnBhZ2U7CiAKICAgICBpZiAoIXNl Y3Rpb24gfHwgc2VjdGlvbiA9PSAmZC0+bWFwLnNlY3Rpb25zW1BIWVNfU0VDVElPTl9VTkFTU0lH TkVEXSB8fAogICAgICAgICAhc2VjdGlvbl9jb3ZlcnNfYWRkcihzZWN0aW9uLCBhZGRyKSkgewog ICAgICAgICBzZWN0aW9uID0gcGh5c19wYWdlX2ZpbmQoZCwgYWRkcik7Ci0gICAgICAgIGF0b21p Y19zZXQoJmQtPm1ydV9zZWN0aW9uLCBzZWN0aW9uKTsKKyAgICAgICAgcWF0b21pY19zZXQoJmQt Pm1ydV9zZWN0aW9uLCBzZWN0aW9uKTsKICAgICB9CiAgICAgaWYgKHJlc29sdmVfc3VicGFnZSAm JiBzZWN0aW9uLT5tci0+c3VicGFnZSkgewogICAgICAgICBzdWJwYWdlID0gY29udGFpbmVyX29m KHNlY3Rpb24tPm1yLCBzdWJwYWdlX3QsIGlvbWVtKTsKQEAgLTY5NSw3ICs2OTUsOCBAQCBhZGRy ZXNzX3NwYWNlX3RyYW5zbGF0ZV9mb3JfaW90bGIoQ1BVU3RhdGUgKmNwdSwgaW50IGFzaWR4LCBo d2FkZHIgYWRkciwKICAgICBJT01NVU1lbW9yeVJlZ2lvbkNsYXNzICppbXJjOwogICAgIElPTU1V VExCRW50cnkgaW90bGI7CiAgICAgaW50IGlvbW11X2lkeDsKLSAgICBBZGRyZXNzU3BhY2VEaXNw YXRjaCAqZCA9IGF0b21pY19yY3VfcmVhZCgmY3B1LT5jcHVfYXNlc1thc2lkeF0ubWVtb3J5X2Rp c3BhdGNoKTsKKyAgICBBZGRyZXNzU3BhY2VEaXNwYXRjaCAqZCA9CisgICAgICAgIHFhdG9taWNf cmN1X3JlYWQoJmNwdS0+Y3B1X2FzZXNbYXNpZHhdLm1lbW9yeV9kaXNwYXRjaCk7CiAKICAgICBm b3IgKDs7KSB7CiAgICAgICAgIHNlY3Rpb24gPSBhZGRyZXNzX3NwYWNlX3RyYW5zbGF0ZV9pbnRl cm5hbChkLCBhZGRyLCAmYWRkciwgcGxlbiwgZmFsc2UpOwpAQCAtMTI0Nyw3ICsxMjQ4LDcgQEAg c3RhdGljIFJBTUJsb2NrICpxZW11X2dldF9yYW1fYmxvY2socmFtX2FkZHJfdCBhZGRyKQogewog ICAgIFJBTUJsb2NrICpibG9jazsKIAotICAgIGJsb2NrID0gYXRvbWljX3JjdV9yZWFkKCZyYW1f bGlzdC5tcnVfYmxvY2spOworICAgIGJsb2NrID0gcWF0b21pY19yY3VfcmVhZCgmcmFtX2xpc3Qu bXJ1X2Jsb2NrKTsKICAgICBpZiAoYmxvY2sgJiYgYWRkciAtIGJsb2NrLT5vZmZzZXQgPCBibG9j ay0+bWF4X2xlbmd0aCkgewogICAgICAgICByZXR1cm4gYmxvY2s7CiAgICAgfQpAQCAtMTI3Myw3 ICsxMjc0LDcgQEAgZm91bmQ6CiAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2FsbF9yY3UocmVjbGFpbV9yYW1ibG9jaywgeHh4KTsKICAgICAgKiAgICAgICAg ICAgICAgICAgIHJjdV9yZWFkX3VubG9jaygpCiAgICAgICoKLSAgICAgKiBhdG9taWNfcmN1X3Nl dCBpcyBub3QgbmVlZGVkIGhlcmUuICBUaGUgYmxvY2sgd2FzIGFscmVhZHkgcHVibGlzaGVkCisg ICAgICogcWF0b21pY19yY3Vfc2V0IGlzIG5vdCBuZWVkZWQgaGVyZS4gIFRoZSBibG9jayB3YXMg YWxyZWFkeSBwdWJsaXNoZWQKICAgICAgKiB3aGVuIGl0IHdhcyBwbGFjZWQgaW50byB0aGUgbGlz dC4gIEhlcmUgd2UncmUganVzdCBtYWtpbmcgYW4gZXh0cmEKICAgICAgKiBjb3B5IG9mIHRoZSBw b2ludGVyLgogICAgICAqLwpAQCAtMTMyMSw3ICsxMzIyLDcgQEAgYm9vbCBjcHVfcGh5c2ljYWxf bWVtb3J5X3Rlc3RfYW5kX2NsZWFyX2RpcnR5KHJhbV9hZGRyX3Qgc3RhcnQsCiAgICAgcGFnZSA9 IHN0YXJ0X3BhZ2U7CiAKICAgICBXSVRIX1JDVV9SRUFEX0xPQ0tfR1VBUkQoKSB7Ci0gICAgICAg IGJsb2NrcyA9IGF0b21pY19yY3VfcmVhZCgmcmFtX2xpc3QuZGlydHlfbWVtb3J5W2NsaWVudF0p OworICAgICAgICBibG9ja3MgPSBxYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5kaXJ0eV9tZW1v cnlbY2xpZW50XSk7CiAgICAgICAgIHJhbWJsb2NrID0gcWVtdV9nZXRfcmFtX2Jsb2NrKHN0YXJ0 KTsKICAgICAgICAgLyogUmFuZ2Ugc2FuaXR5IGNoZWNrIG9uIHRoZSByYW1ibG9jayAqLwogICAg ICAgICBhc3NlcnQoc3RhcnQgPj0gcmFtYmxvY2stPm9mZnNldCAmJgpAQCAtMTM3MSw3ICsxMzcy LDcgQEAgRGlydHlCaXRtYXBTbmFwc2hvdCAqY3B1X3BoeXNpY2FsX21lbW9yeV9zbmFwc2hvdF9h bmRfY2xlYXJfZGlydHkKICAgICBkZXN0ID0gMDsKIAogICAgIFdJVEhfUkNVX1JFQURfTE9DS19H VUFSRCgpIHsKLSAgICAgICAgYmxvY2tzID0gYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5kaXJ0 eV9tZW1vcnlbY2xpZW50XSk7CisgICAgICAgIGJsb2NrcyA9IHFhdG9taWNfcmN1X3JlYWQoJnJh bV9saXN0LmRpcnR5X21lbW9yeVtjbGllbnRdKTsKIAogICAgICAgICB3aGlsZSAocGFnZSA8IGVu ZCkgewogICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBpZHggPSBwYWdlIC8gRElSVFlfTUVNT1JZ X0JMT0NLX1NJWkU7CkBAIC0yMjA3LDcgKzIyMDgsNyBAQCBzdGF0aWMgdm9pZCBkaXJ0eV9tZW1v cnlfZXh0ZW5kKHJhbV9hZGRyX3Qgb2xkX3JhbV9zaXplLAogICAgICAgICBEaXJ0eU1lbW9yeUJs b2NrcyAqbmV3X2Jsb2NrczsKICAgICAgICAgaW50IGo7CiAKLSAgICAgICAgb2xkX2Jsb2NrcyA9 IGF0b21pY19yY3VfcmVhZCgmcmFtX2xpc3QuZGlydHlfbWVtb3J5W2ldKTsKKyAgICAgICAgb2xk X2Jsb2NrcyA9IHFhdG9taWNfcmN1X3JlYWQoJnJhbV9saXN0LmRpcnR5X21lbW9yeVtpXSk7CiAg ICAgICAgIG5ld19ibG9ja3MgPSBnX21hbGxvYyhzaXplb2YoKm5ld19ibG9ja3MpICsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihuZXdfYmxvY2tzLT5ibG9ja3NbMF0pICog bmV3X251bV9ibG9ja3MpOwogCkBAIC0yMjIwLDcgKzIyMjEsNyBAQCBzdGF0aWMgdm9pZCBkaXJ0 eV9tZW1vcnlfZXh0ZW5kKHJhbV9hZGRyX3Qgb2xkX3JhbV9zaXplLAogICAgICAgICAgICAgbmV3 X2Jsb2Nrcy0+YmxvY2tzW2pdID0gYml0bWFwX25ldyhESVJUWV9NRU1PUllfQkxPQ0tfU0laRSk7 CiAgICAgICAgIH0KIAotICAgICAgICBhdG9taWNfcmN1X3NldCgmcmFtX2xpc3QuZGlydHlfbWVt b3J5W2ldLCBuZXdfYmxvY2tzKTsKKyAgICAgICAgcWF0b21pY19yY3Vfc2V0KCZyYW1fbGlzdC5k aXJ0eV9tZW1vcnlbaV0sIG5ld19ibG9ja3MpOwogCiAgICAgICAgIGlmIChvbGRfYmxvY2tzKSB7 CiAgICAgICAgICAgICBnX2ZyZWVfcmN1KG9sZF9ibG9ja3MsIHJjdSk7CkBAIC0yNjY3LDcgKzI2 NjgsNyBAQCBSQU1CbG9jayAqcWVtdV9yYW1fYmxvY2tfZnJvbV9ob3N0KHZvaWQgKnB0ciwgYm9v bCByb3VuZF9vZmZzZXQsCiAgICAgfQogCiAgICAgUkNVX1JFQURfTE9DS19HVUFSRCgpOwotICAg IGJsb2NrID0gYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5tcnVfYmxvY2spOworICAgIGJsb2Nr ID0gcWF0b21pY19yY3VfcmVhZCgmcmFtX2xpc3QubXJ1X2Jsb2NrKTsKICAgICBpZiAoYmxvY2sg JiYgYmxvY2stPmhvc3QgJiYgaG9zdCAtIGJsb2NrLT5ob3N0IDwgYmxvY2stPm1heF9sZW5ndGgp IHsKICAgICAgICAgZ290byBmb3VuZDsKICAgICB9CkBAIC0yOTEyLDcgKzI5MTMsNyBAQCBNZW1v cnlSZWdpb25TZWN0aW9uICppb3RsYl90b19zZWN0aW9uKENQVVN0YXRlICpjcHUsCiB7CiAgICAg aW50IGFzaWR4ID0gY3B1X2FzaWR4X2Zyb21fYXR0cnMoY3B1LCBhdHRycyk7CiAgICAgQ1BVQWRk cmVzc1NwYWNlICpjcHVhcyA9ICZjcHUtPmNwdV9hc2VzW2FzaWR4XTsKLSAgICBBZGRyZXNzU3Bh Y2VEaXNwYXRjaCAqZCA9IGF0b21pY19yY3VfcmVhZCgmY3B1YXMtPm1lbW9yeV9kaXNwYXRjaCk7 CisgICAgQWRkcmVzc1NwYWNlRGlzcGF0Y2ggKmQgPSBxYXRvbWljX3JjdV9yZWFkKCZjcHVhcy0+ bWVtb3J5X2Rpc3BhdGNoKTsKICAgICBNZW1vcnlSZWdpb25TZWN0aW9uICpzZWN0aW9ucyA9IGQt Pm1hcC5zZWN0aW9uczsKIAogICAgIHJldHVybiAmc2VjdGlvbnNbaW5kZXggJiB+VEFSR0VUX1BB R0VfTUFTS107CkBAIC0yOTk2LDcgKzI5OTcsNyBAQCBzdGF0aWMgdm9pZCB0Y2dfY29tbWl0KE1l bW9yeUxpc3RlbmVyICpsaXN0ZW5lcikKICAgICAgKiBtYXkgaGF2ZSBzcGxpdCB0aGUgUkNVIGNy aXRpY2FsIHNlY3Rpb24uCiAgICAgICovCiAgICAgZCA9IGFkZHJlc3Nfc3BhY2VfdG9fZGlzcGF0 Y2goY3B1YXMtPmFzKTsKLSAgICBhdG9taWNfcmN1X3NldCgmY3B1YXMtPm1lbW9yeV9kaXNwYXRj aCwgZCk7CisgICAgcWF0b21pY19yY3Vfc2V0KCZjcHVhcy0+bWVtb3J5X2Rpc3BhdGNoLCBkKTsK ICAgICB0bGJfZmx1c2goY3B1YXMtPmNwdSk7CiB9CiAKQEAgLTM0NDMsNyArMzQ0NCw3IEBAIHZv aWQgY3B1X3JlZ2lzdGVyX21hcF9jbGllbnQoUUVNVUJIICpiaCkKICAgICBxZW11X211dGV4X2xv Y2soJm1hcF9jbGllbnRfbGlzdF9sb2NrKTsKICAgICBjbGllbnQtPmJoID0gYmg7CiAgICAgUUxJ U1RfSU5TRVJUX0hFQUQoJm1hcF9jbGllbnRfbGlzdCwgY2xpZW50LCBsaW5rKTsKLSAgICBpZiAo IWF0b21pY19yZWFkKCZib3VuY2UuaW5fdXNlKSkgeworICAgIGlmICghcWF0b21pY19yZWFkKCZi b3VuY2UuaW5fdXNlKSkgewogICAgICAgICBjcHVfbm90aWZ5X21hcF9jbGllbnRzX2xvY2tlZCgp OwogICAgIH0KICAgICBxZW11X211dGV4X3VubG9jaygmbWFwX2NsaWVudF9saXN0X2xvY2spOwpA QCAtMzU3Nyw3ICszNTc4LDcgQEAgdm9pZCAqYWRkcmVzc19zcGFjZV9tYXAoQWRkcmVzc1NwYWNl ICphcywKICAgICBtciA9IGZsYXR2aWV3X3RyYW5zbGF0ZShmdiwgYWRkciwgJnhsYXQsICZsLCBp c193cml0ZSwgYXR0cnMpOwogCiAgICAgaWYgKCFtZW1vcnlfYWNjZXNzX2lzX2RpcmVjdChtciwg aXNfd3JpdGUpKSB7Ci0gICAgICAgIGlmIChhdG9taWNfeGNoZygmYm91bmNlLmluX3VzZSwgdHJ1 ZSkpIHsKKyAgICAgICAgaWYgKHFhdG9taWNfeGNoZygmYm91bmNlLmluX3VzZSwgdHJ1ZSkpIHsK ICAgICAgICAgICAgICpwbGVuID0gMDsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAg ICB9CkBAIC0zNjM2LDcgKzM2MzcsNyBAQCB2b2lkIGFkZHJlc3Nfc3BhY2VfdW5tYXAoQWRkcmVz c1NwYWNlICphcywgdm9pZCAqYnVmZmVyLCBod2FkZHIgbGVuLAogICAgIHFlbXVfdmZyZWUoYm91 bmNlLmJ1ZmZlcik7CiAgICAgYm91bmNlLmJ1ZmZlciA9IE5VTEw7CiAgICAgbWVtb3J5X3JlZ2lv bl91bnJlZihib3VuY2UubXIpOwotICAgIGF0b21pY19tYl9zZXQoJmJvdW5jZS5pbl91c2UsIGZh bHNlKTsKKyAgICBxYXRvbWljX21iX3NldCgmYm91bmNlLmluX3VzZSwgZmFsc2UpOwogICAgIGNw dV9ub3RpZnlfbWFwX2NsaWVudHMoKTsKIH0KIApAQCAtNDEwNSwxNiArNDEwNiwxNyBAQCBpbnQg cmFtX2Jsb2NrX2Rpc2NhcmRfZGlzYWJsZShib29sIHN0YXRlKQogICAgIGludCBvbGQ7CiAKICAg ICBpZiAoIXN0YXRlKSB7Ci0gICAgICAgIGF0b21pY19kZWMoJnJhbV9ibG9ja19kaXNjYXJkX2Rp c2FibGVkKTsKKyAgICAgICAgcWF0b21pY19kZWMoJnJhbV9ibG9ja19kaXNjYXJkX2Rpc2FibGVk KTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgZG8gewotICAgICAgICBvbGQgPSBh dG9taWNfcmVhZCgmcmFtX2Jsb2NrX2Rpc2NhcmRfZGlzYWJsZWQpOworICAgICAgICBvbGQgPSBx YXRvbWljX3JlYWQoJnJhbV9ibG9ja19kaXNjYXJkX2Rpc2FibGVkKTsKICAgICAgICAgaWYgKG9s ZCA8IDApIHsKICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7CiAgICAgICAgIH0KLSAgICB9IHdo aWxlIChhdG9taWNfY21weGNoZygmcmFtX2Jsb2NrX2Rpc2NhcmRfZGlzYWJsZWQsIG9sZCwgb2xk ICsgMSkgIT0gb2xkKTsKKyAgICB9IHdoaWxlIChxYXRvbWljX2NtcHhjaGcoJnJhbV9ibG9ja19k aXNjYXJkX2Rpc2FibGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGQsIG9sZCAr IDEpICE9IG9sZCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTQxMjMsMjcgKzQxMjUsMjggQEAg aW50IHJhbV9ibG9ja19kaXNjYXJkX3JlcXVpcmUoYm9vbCBzdGF0ZSkKICAgICBpbnQgb2xkOwog CiAgICAgaWYgKCFzdGF0ZSkgewotICAgICAgICBhdG9taWNfaW5jKCZyYW1fYmxvY2tfZGlzY2Fy ZF9kaXNhYmxlZCk7CisgICAgICAgIHFhdG9taWNfaW5jKCZyYW1fYmxvY2tfZGlzY2FyZF9kaXNh YmxlZCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIGRvIHsKLSAgICAgICAgb2xk ID0gYXRvbWljX3JlYWQoJnJhbV9ibG9ja19kaXNjYXJkX2Rpc2FibGVkKTsKKyAgICAgICAgb2xk ID0gcWF0b21pY19yZWFkKCZyYW1fYmxvY2tfZGlzY2FyZF9kaXNhYmxlZCk7CiAgICAgICAgIGlm IChvbGQgPiAwKSB7CiAgICAgICAgICAgICByZXR1cm4gLUVCVVNZOwogICAgICAgICB9Ci0gICAg fSB3aGlsZSAoYXRvbWljX2NtcHhjaGcoJnJhbV9ibG9ja19kaXNjYXJkX2Rpc2FibGVkLCBvbGQs IG9sZCAtIDEpICE9IG9sZCk7CisgICAgfSB3aGlsZSAocWF0b21pY19jbXB4Y2hnKCZyYW1fYmxv Y2tfZGlzY2FyZF9kaXNhYmxlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkLCBv bGQgLSAxKSAhPSBvbGQpOwogICAgIHJldHVybiAwOwogfQogCiBib29sIHJhbV9ibG9ja19kaXNj YXJkX2lzX2Rpc2FibGVkKHZvaWQpCiB7Ci0gICAgcmV0dXJuIGF0b21pY19yZWFkKCZyYW1fYmxv Y2tfZGlzY2FyZF9kaXNhYmxlZCkgPiAwOworICAgIHJldHVybiBxYXRvbWljX3JlYWQoJnJhbV9i bG9ja19kaXNjYXJkX2Rpc2FibGVkKSA+IDA7CiB9CiAKIGJvb2wgcmFtX2Jsb2NrX2Rpc2NhcmRf aXNfcmVxdWlyZWQodm9pZCkKIHsKLSAgICByZXR1cm4gYXRvbWljX3JlYWQoJnJhbV9ibG9ja19k aXNjYXJkX2Rpc2FibGVkKSA8IDA7CisgICAgcmV0dXJuIHFhdG9taWNfcmVhZCgmcmFtX2Jsb2Nr X2Rpc2NhcmRfZGlzYWJsZWQpIDwgMDsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9ody9jb3Jl L2NwdS5jIGIvaHcvY29yZS9jcHUuYwppbmRleCA4ZjY1MzgzZmZiLi5jNTVjMDlmNzM0IDEwMDY0 NAotLS0gYS9ody9jb3JlL2NwdS5jCisrKyBiL2h3L2NvcmUvY3B1LmMKQEAgLTExMSwxMCArMTEx LDEwIEBAIHZvaWQgY3B1X3Jlc2V0X2ludGVycnVwdChDUFVTdGF0ZSAqY3B1LCBpbnQgbWFzaykK IAogdm9pZCBjcHVfZXhpdChDUFVTdGF0ZSAqY3B1KQogewotICAgIGF0b21pY19zZXQoJmNwdS0+ ZXhpdF9yZXF1ZXN0LCAxKTsKKyAgICBxYXRvbWljX3NldCgmY3B1LT5leGl0X3JlcXVlc3QsIDEp OwogICAgIC8qIEVuc3VyZSBjcHVfZXhlYyB3aWxsIHNlZSB0aGUgZXhpdCByZXF1ZXN0IGFmdGVy IFRDRyBoYXMgZXhpdGVkLiAgKi8KICAgICBzbXBfd21iKCk7Ci0gICAgYXRvbWljX3NldCgmY3B1 LT5pY291bnRfZGVjcl9wdHItPnUxNi5oaWdoLCAtMSk7CisgICAgcWF0b21pY19zZXQoJmNwdS0+ aWNvdW50X2RlY3JfcHRyLT51MTYuaGlnaCwgLTEpOwogfQogCiBpbnQgY3B1X3dyaXRlX2VsZjMy X3FlbXVub3RlKFdyaXRlQ29yZUR1bXBGdW5jdGlvbiBmLCBDUFVTdGF0ZSAqY3B1LApAQCAtMjYx LDcgKzI2MSw3IEBAIHN0YXRpYyB2b2lkIGNwdV9jb21tb25fcmVzZXQoRGV2aWNlU3RhdGUgKmRl dikKICAgICBjcHUtPmhhbHRlZCA9IGNwdS0+c3RhcnRfcG93ZXJlZF9vZmY7CiAgICAgY3B1LT5t ZW1faW9fcGMgPSAwOwogICAgIGNwdS0+aWNvdW50X2V4dHJhID0gMDsKLSAgICBhdG9taWNfc2V0 KCZjcHUtPmljb3VudF9kZWNyX3B0ci0+dTMyLCAwKTsKKyAgICBxYXRvbWljX3NldCgmY3B1LT5p Y291bnRfZGVjcl9wdHItPnUzMiwgMCk7CiAgICAgY3B1LT5jYW5fZG9faW8gPSAxOwogICAgIGNw dS0+ZXhjZXB0aW9uX2luZGV4ID0gLTE7CiAgICAgY3B1LT5jcmFzaF9vY2N1cnJlZCA9IGZhbHNl OwpkaWZmIC0tZ2l0IGEvaHcvZGlzcGxheS9xeGwuYyBiL2h3L2Rpc3BsYXkvcXhsLmMKaW5kZXgg MTE4NzEzNDBlNy4uNDMxYzEwNzA5NiAxMDA2NDQKLS0tIGEvaHcvZGlzcGxheS9xeGwuYworKysg Yi9ody9kaXNwbGF5L3F4bC5jCkBAIC0xOTA4LDcgKzE5MDgsNyBAQCBzdGF0aWMgdm9pZCBxeGxf c2VuZF9ldmVudHMoUENJUVhMRGV2aWNlICpkLCB1aW50MzJfdCBldmVudHMpCiAgICAgLyoKICAg ICAgKiBPbGRlciB2ZXJzaW9ucyBvZiBTcGljZSBmb3Jnb3QgdG8gZGVmaW5lIHRoZSBRWExSYW0g c3RydWN0CiAgICAgICogd2l0aCB0aGUgJ19fYWxpZ25lZF9fKDQpJyBhdHRyaWJ1dGUuIGNsYW5n IDcgYW5kIG5ld2VyIHdpbGwKLSAgICAgKiB0aHVzIHdhcm4gdGhhdCBhdG9taWNfZmV0Y2hfb3Io JmQtPnJhbS0+aW50X3BlbmRpbmcsIC4uLikKKyAgICAgKiB0aHVzIHdhcm4gdGhhdCBxYXRvbWlj X2ZldGNoX29yKCZkLT5yYW0tPmludF9wZW5kaW5nLCAuLi4pCiAgICAgICogbWlnaHQgYmUgYSBt aXNhbGlnbmVkIGF0b21pYyBhY2Nlc3MsIGFuZCB3aWxsIGdlbmVyYXRlIGFuCiAgICAgICogb3V0 LW9mLWxpbmUgY2FsbCBmb3IgaXQsIHdoaWNoIHJlc3VsdHMgaW4gYSBsaW5rIGVycm9yIHNpbmNl CiAgICAgICogd2UgZG9uJ3QgY3VycmVudGx5IGxpbmsgYWdhaW5zdCBsaWJhdG9taWMuCkBAIC0x OTI4LDcgKzE5MjgsNyBAQCBzdGF0aWMgdm9pZCBxeGxfc2VuZF9ldmVudHMoUENJUVhMRGV2aWNl ICpkLCB1aW50MzJfdCBldmVudHMpCiAjZGVmaW5lIEFMSUdORURfVUlOVDMyX1BUUihQKSAoKHVp bnQzMl90ICopUCkKICNlbmRpZgogCi0gICAgb2xkX3BlbmRpbmcgPSBhdG9taWNfZmV0Y2hfb3Io QUxJR05FRF9VSU5UMzJfUFRSKCZkLT5yYW0tPmludF9wZW5kaW5nKSwKKyAgICBvbGRfcGVuZGlu ZyA9IHFhdG9taWNfZmV0Y2hfb3IoQUxJR05FRF9VSU5UMzJfUFRSKCZkLT5yYW0tPmludF9wZW5k aW5nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZV9ldmVudHMpOwogICAg IGlmICgob2xkX3BlbmRpbmcgJiBsZV9ldmVudHMpID09IGxlX2V2ZW50cykgewogICAgICAgICBy ZXR1cm47CmRpZmYgLS1naXQgYS9ody9oeXBlcnYvaHlwZXJ2LmMgYi9ody9oeXBlcnYvaHlwZXJ2 LmMKaW5kZXggNGIyNmRiMTM2NS4uY2IxMDc0ZjIzNCAxMDA2NDQKLS0tIGEvaHcvaHlwZXJ2L2h5 cGVydi5jCisrKyBiL2h3L2h5cGVydi9oeXBlcnYuYwpAQCAtMjMxLDcgKzIzMSw3IEBAIHN0YXRp YyB2b2lkIHNpbnRfbXNnX2JoKHZvaWQgKm9wYXF1ZSkKICAgICBIdlNpbnRSb3V0ZSAqc2ludF9y b3V0ZSA9IG9wYXF1ZTsKICAgICBIdlNpbnRTdGFnZWRNZXNzYWdlICpzdGFnZWRfbXNnID0gc2lu dF9yb3V0ZS0+c3RhZ2VkX21zZzsKIAotICAgIGlmIChhdG9taWNfcmVhZCgmc3RhZ2VkX21zZy0+ c3RhdGUpICE9IEhWX1NUQUdFRF9NU0dfUE9TVEVEKSB7CisgICAgaWYgKHFhdG9taWNfcmVhZCgm c3RhZ2VkX21zZy0+c3RhdGUpICE9IEhWX1NUQUdFRF9NU0dfUE9TVEVEKSB7CiAgICAgICAgIC8q IHN0YXR1cyBub3IgcmVhZHkgeWV0IChzcHVyaW91cyBhY2sgZnJvbSBndWVzdD8pLCBpZ25vcmUg Ki8KICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI0MCw3ICsyNDAsNyBAQCBzdGF0aWMgdm9p ZCBzaW50X21zZ19iaCh2b2lkICpvcGFxdWUpCiAgICAgc3RhZ2VkX21zZy0+c3RhdHVzID0gMDsK IAogICAgIC8qIHN0YWdlZCBtZXNzYWdlIHByb2Nlc3NpbmcgZmluaXNoZWQsIHJlYWR5IHRvIHN0 YXJ0IG92ZXIgKi8KLSAgICBhdG9taWNfc2V0KCZzdGFnZWRfbXNnLT5zdGF0ZSwgSFZfU1RBR0VE X01TR19GUkVFKTsKKyAgICBxYXRvbWljX3NldCgmc3RhZ2VkX21zZy0+c3RhdGUsIEhWX1NUQUdF RF9NU0dfRlJFRSk7CiAgICAgLyogZHJvcCB0aGUgcmVmZXJlbmNlIHRha2VuIGluIGh5cGVydl9w b3N0X21zZyAqLwogICAgIGh5cGVydl9zaW50X3JvdXRlX3VucmVmKHNpbnRfcm91dGUpOwogfQpA QCAtMjc4LDcgKzI3OCw3IEBAIHN0YXRpYyB2b2lkIGNwdV9wb3N0X21zZyhDUFVTdGF0ZSAqY3Ms IHJ1bl9vbl9jcHVfZGF0YSBkYXRhKQogICAgIG1lbW9yeV9yZWdpb25fc2V0X2RpcnR5KCZzeW5p Yy0+bXNnX3BhZ2VfbXIsIDAsIHNpemVvZigqc3luaWMtPm1zZ19wYWdlKSk7CiAKIHBvc3RlZDoK LSAgICBhdG9taWNfc2V0KCZzdGFnZWRfbXNnLT5zdGF0ZSwgSFZfU1RBR0VEX01TR19QT1NURUQp OworICAgIHFhdG9taWNfc2V0KCZzdGFnZWRfbXNnLT5zdGF0ZSwgSFZfU1RBR0VEX01TR19QT1NU RUQpOwogICAgIC8qCiAgICAgICogTm90aWZ5IHRoZSBtc2cgb3JpZ2luYXRvciBvZiB0aGUgcHJv Z3Jlc3MgbWFkZTsgaWYgdGhlIHNsb3Qgd2FzIGJ1c3kgd2UKICAgICAgKiBzZXQgbXNnX3BlbmRp bmcgZmxhZyBpbiBpdCBzbyBpdCB3aWxsIGJlIHRoZSBndWVzdCB3aG8gd2lsbCBkbyBFT00gYW5k CkBAIC0zMDEsNyArMzAxLDcgQEAgaW50IGh5cGVydl9wb3N0X21zZyhIdlNpbnRSb3V0ZSAqc2lu dF9yb3V0ZSwgc3RydWN0IGh5cGVydl9tZXNzYWdlICpzcmNfbXNnKQogICAgIGFzc2VydChzdGFn ZWRfbXNnKTsKIAogICAgIC8qIGdyYWIgdGhlIHN0YWdpbmcgYXJlYSAqLwotICAgIGlmIChhdG9t aWNfY21weGNoZygmc3RhZ2VkX21zZy0+c3RhdGUsIEhWX1NUQUdFRF9NU0dfRlJFRSwKKyAgICBp ZiAocWF0b21pY19jbXB4Y2hnKCZzdGFnZWRfbXNnLT5zdGF0ZSwgSFZfU1RBR0VEX01TR19GUkVF LAogICAgICAgICAgICAgICAgICAgICAgICBIVl9TVEFHRURfTVNHX0JVU1kpICE9IEhWX1NUQUdF RF9NU0dfRlJFRSkgewogICAgICAgICByZXR1cm4gLUVBR0FJTjsKICAgICB9CkBAIC0zNTEsNyAr MzUxLDcgQEAgaW50IGh5cGVydl9zZXRfZXZlbnRfZmxhZyhIdlNpbnRSb3V0ZSAqc2ludF9yb3V0 ZSwgdW5zaWduZWQgZXZlbnRubykKICAgICBzZXRfbWFzayA9IEJJVF9NQVNLKGV2ZW50bm8pOwog ICAgIGZsYWdzID0gc3luaWMtPmV2ZW50X3BhZ2UtPnNsb3Rbc2ludF9yb3V0ZS0+c2ludF0uZmxh Z3M7CiAKLSAgICBpZiAoKGF0b21pY19mZXRjaF9vcigmZmxhZ3Nbc2V0X2lkeF0sIHNldF9tYXNr KSAmIHNldF9tYXNrKSAhPSBzZXRfbWFzaykgeworICAgIGlmICgocWF0b21pY19mZXRjaF9vcigm ZmxhZ3Nbc2V0X2lkeF0sIHNldF9tYXNrKSAmIHNldF9tYXNrKSAhPSBzZXRfbWFzaykgewogICAg ICAgICBtZW1vcnlfcmVnaW9uX3NldF9kaXJ0eSgmc3luaWMtPmV2ZW50X3BhZ2VfbXIsIDAsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZigqc3luaWMtPmV2ZW50X3BhZ2Up KTsKICAgICAgICAgcmV0ID0gaHlwZXJ2X3NpbnRfcm91dGVfc2V0X3NpbnQoc2ludF9yb3V0ZSk7 CmRpZmYgLS1naXQgYS9ody9oeXBlcnYvdm1idXMuYyBiL2h3L2h5cGVydi92bWJ1cy5jCmluZGV4 IDZlZjg5NWJjMzUuLjg5NmU5ODFmODUgMTAwNjQ0Ci0tLSBhL2h3L2h5cGVydi92bWJ1cy5jCisr KyBiL2h3L2h5cGVydi92bWJ1cy5jCkBAIC03NDcsNyArNzQ3LDcgQEAgc3RhdGljIGludCB2bWJ1 c19jaGFubmVsX25vdGlmeV9ndWVzdChWTUJ1c0NoYW5uZWwgKmNoYW4pCiAKICAgICBpZHggPSBC SVRfV09SRChjaGFuLT5pZCk7CiAgICAgbWFzayA9IEJJVF9NQVNLKGNoYW4tPmlkKTsKLSAgICBp ZiAoKGF0b21pY19mZXRjaF9vcigmaW50X21hcFtpZHhdLCBtYXNrKSAmIG1hc2spICE9IG1hc2sp IHsKKyAgICBpZiAoKHFhdG9taWNfZmV0Y2hfb3IoJmludF9tYXBbaWR4XSwgbWFzaykgJiBtYXNr KSAhPSBtYXNrKSB7CiAgICAgICAgIHJlcyA9IGh5cGVydl9zaW50X3JvdXRlX3NldF9zaW50KGNo YW4tPm5vdGlmeV9yb3V0ZSk7CiAgICAgICAgIGRpcnR5ID0gbGVuOwogICAgIH0KZGlmZiAtLWdp dCBhL2h3L2kzODYveGVuL3hlbi1odm0uYyBiL2h3L2kzODYveGVuL3hlbi1odm0uYwppbmRleCBj ZGU5ODFiYWQ2Li5hMzlhNjQ4Y2E2IDEwMDY0NAotLS0gYS9ody9pMzg2L3hlbi94ZW4taHZtLmMK KysrIGIvaHcvaTM4Ni94ZW4veGVuLWh2bS5jCkBAIC0xMTQwLDcgKzExNDAsNyBAQCBzdGF0aWMg aW50IGhhbmRsZV9idWZmZXJlZF9pb3BhZ2UoWGVuSU9TdGF0ZSAqc3RhdGUpCiAgICAgICAgIGFz c2VydChyZXEuZGlyID09IElPUkVRX1dSSVRFKTsKICAgICAgICAgYXNzZXJ0KCFyZXEuZGF0YV9p c19wdHIpOwogCi0gICAgICAgIGF0b21pY19hZGQoJmJ1Zl9wYWdlLT5yZWFkX3BvaW50ZXIsIHF3 ICsgMSk7CisgICAgICAgIHFhdG9taWNfYWRkKCZidWZfcGFnZS0+cmVhZF9wb2ludGVyLCBxdyAr IDEpOwogICAgIH0KIAogICAgIHJldHVybiByZXEuY291bnQ7CmRpZmYgLS1naXQgYS9ody9pbnRj L3J4X2ljdS5jIGIvaHcvaW50Yy9yeF9pY3UuYwppbmRleCBkZjRiNmE4ZDIyLi45NGUxN2E5ZGVh IDEwMDY0NAotLS0gYS9ody9pbnRjL3J4X2ljdS5jCisrKyBiL2h3L2ludGMvcnhfaWN1LmMKQEAg LTgxLDggKzgxLDggQEAgc3RhdGljIHZvaWQgcnhpY3VfcmVxdWVzdChSWElDVVN0YXRlICppY3Us IGludCBuX0lSUSkKICAgICBpbnQgZW5hYmxlOwogCiAgICAgZW5hYmxlID0gaWN1LT5pZXJbbl9J UlEgLyA4XSAmICgxIDw8IChuX0lSUSAmIDcpKTsKLSAgICBpZiAobl9JUlEgPiAwICYmIGVuYWJs ZSAhPSAwICYmIGF0b21pY19yZWFkKCZpY3UtPnJlcV9pcnEpIDwgMCkgewotICAgICAgICBhdG9t aWNfc2V0KCZpY3UtPnJlcV9pcnEsIG5fSVJRKTsKKyAgICBpZiAobl9JUlEgPiAwICYmIGVuYWJs ZSAhPSAwICYmIHFhdG9taWNfcmVhZCgmaWN1LT5yZXFfaXJxKSA8IDApIHsKKyAgICAgICAgcWF0 b21pY19zZXQoJmljdS0+cmVxX2lycSwgbl9JUlEpOwogICAgICAgICBzZXRfaXJxKGljdSwgbl9J UlEsIHJ4aWN1X2xldmVsKGljdSwgbl9JUlEpKTsKICAgICB9CiB9CkBAIC0xMjQsMTAgKzEyNCwx MCBAQCBzdGF0aWMgdm9pZCByeGljdV9zZXRfaXJxKHZvaWQgKm9wYXF1ZSwgaW50IG5fSVJRLCBp bnQgbGV2ZWwpCiAgICAgfQogICAgIGlmIChpc3N1ZSA9PSAwICYmIHNyYy0+c2Vuc2UgPT0gVFJH X0xFVkVMKSB7CiAgICAgICAgIGljdS0+aXJbbl9JUlFdID0gMDsKLSAgICAgICAgaWYgKGF0b21p Y19yZWFkKCZpY3UtPnJlcV9pcnEpID09IG5fSVJRKSB7CisgICAgICAgIGlmIChxYXRvbWljX3Jl YWQoJmljdS0+cmVxX2lycSkgPT0gbl9JUlEpIHsKICAgICAgICAgICAgIC8qIGNsZWFyIHJlcXVl c3QgKi8KICAgICAgICAgICAgIHNldF9pcnEoaWN1LCBuX0lSUSwgMCk7Ci0gICAgICAgICAgICBh dG9taWNfc2V0KCZpY3UtPnJlcV9pcnEsIC0xKTsKKyAgICAgICAgICAgIHFhdG9taWNfc2V0KCZp Y3UtPnJlcV9pcnEsIC0xKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt MTQ0LDExICsxNDQsMTEgQEAgc3RhdGljIHZvaWQgcnhpY3VfYWNrX2lycSh2b2lkICpvcGFxdWUs IGludCBubywgaW50IGxldmVsKQogICAgIGludCBuX0lSUTsKICAgICBpbnQgbWF4X3ByaTsKIAot ICAgIG5fSVJRID0gYXRvbWljX3JlYWQoJmljdS0+cmVxX2lycSk7CisgICAgbl9JUlEgPSBxYXRv bWljX3JlYWQoJmljdS0+cmVxX2lycSk7CiAgICAgaWYgKG5fSVJRIDwgMCkgewogICAgICAgICBy ZXR1cm47CiAgICAgfQotICAgIGF0b21pY19zZXQoJmljdS0+cmVxX2lycSwgLTEpOworICAgIHFh dG9taWNfc2V0KCZpY3UtPnJlcV9pcnEsIC0xKTsKICAgICBpZiAoaWN1LT5zcmNbbl9JUlFdLnNl bnNlICE9IFRSR19MRVZFTCkgewogICAgICAgICBpY3UtPmlyW25fSVJRXSA9IDA7CiAgICAgfQpk aWZmIC0tZ2l0IGEvaHcvaW50Yy9zaWZpdmVfcGxpYy5jIGIvaHcvaW50Yy9zaWZpdmVfcGxpYy5j CmluZGV4IGFmNjExZjhkYjguLmY0MmZkNjk1ZDggMTAwNjQ0Ci0tLSBhL2h3L2ludGMvc2lmaXZl X3BsaWMuYworKysgYi9ody9pbnRjL3NpZml2ZV9wbGljLmMKQEAgLTg5LDEyICs4OSwxMiBAQCBz dGF0aWMgdm9pZCBzaWZpdmVfcGxpY19wcmludF9zdGF0ZShTaUZpdmVQTElDU3RhdGUgKnBsaWMp CiAKIHN0YXRpYyB1aW50MzJfdCBhdG9taWNfc2V0X21hc2tlZCh1aW50MzJfdCAqYSwgdWludDMy X3QgbWFzaywgdWludDMyX3QgdmFsdWUpCiB7Ci0gICAgdWludDMyX3Qgb2xkLCBuZXcsIGNtcCA9 IGF0b21pY19yZWFkKGEpOworICAgIHVpbnQzMl90IG9sZCwgbmV3LCBjbXAgPSBxYXRvbWljX3Jl YWQoYSk7CiAKICAgICBkbyB7CiAgICAgICAgIG9sZCA9IGNtcDsKICAgICAgICAgbmV3ID0gKG9s ZCAmIH5tYXNrKSB8ICh2YWx1ZSAmIG1hc2spOwotICAgICAgICBjbXAgPSBhdG9taWNfY21weGNo ZyhhLCBvbGQsIG5ldyk7CisgICAgICAgIGNtcCA9IHFhdG9taWNfY21weGNoZyhhLCBvbGQsIG5l dyk7CiAgICAgfSB3aGlsZSAob2xkICE9IGNtcCk7CiAKICAgICByZXR1cm4gb2xkOwpkaWZmIC0t Z2l0IGEvaHcvbWlzYy9lZHUuYyBiL2h3L21pc2MvZWR1LmMKaW5kZXggMGZmOWQxYWM3OC4uZTkz NWM0MThkNCAxMDA2NDQKLS0tIGEvaHcvbWlzYy9lZHUuYworKysgYi9ody9taXNjL2VkdS5jCkBA IC0yMTIsNyArMjEyLDcgQEAgc3RhdGljIHVpbnQ2NF90IGVkdV9tbWlvX3JlYWQodm9pZCAqb3Bh cXVlLCBod2FkZHIgYWRkciwgdW5zaWduZWQgc2l6ZSkKICAgICAgICAgcWVtdV9tdXRleF91bmxv Y2soJmVkdS0+dGhyX211dGV4KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAweDIwOgotICAg ICAgICB2YWwgPSBhdG9taWNfcmVhZCgmZWR1LT5zdGF0dXMpOworICAgICAgICB2YWwgPSBxYXRv bWljX3JlYWQoJmVkdS0+c3RhdHVzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAweDI0Ogog ICAgICAgICB2YWwgPSBlZHUtPmlycV9zdGF0dXM7CkBAIC0yNTIsNyArMjUyLDcgQEAgc3RhdGlj IHZvaWQgZWR1X21taW9fd3JpdGUodm9pZCAqb3BhcXVlLCBod2FkZHIgYWRkciwgdWludDY0X3Qg dmFsLAogICAgICAgICBlZHUtPmFkZHI0ID0gfnZhbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz ZSAweDA4OgotICAgICAgICBpZiAoYXRvbWljX3JlYWQoJmVkdS0+c3RhdHVzKSAmIEVEVV9TVEFU VVNfQ09NUFVUSU5HKSB7CisgICAgICAgIGlmIChxYXRvbWljX3JlYWQoJmVkdS0+c3RhdHVzKSAm IEVEVV9TVEFUVVNfQ09NUFVUSU5HKSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog ICAgICAgICAvKiBFRFVfU1RBVFVTX0NPTVBVVElORyBjYW5ub3QgZ28gMC0+MSBjb25jdXJyZW50 bHksIGJlY2F1c2UgaXQgaXMgb25seQpAQCAtMjYwLDE1ICsyNjAsMTUgQEAgc3RhdGljIHZvaWQg ZWR1X21taW9fd3JpdGUodm9pZCAqb3BhcXVlLCBod2FkZHIgYWRkciwgdWludDY0X3QgdmFsLAog ICAgICAgICAgKi8KICAgICAgICAgcWVtdV9tdXRleF9sb2NrKCZlZHUtPnRocl9tdXRleCk7CiAg ICAgICAgIGVkdS0+ZmFjdCA9IHZhbDsKLSAgICAgICAgYXRvbWljX29yKCZlZHUtPnN0YXR1cywg RURVX1NUQVRVU19DT01QVVRJTkcpOworICAgICAgICBxYXRvbWljX29yKCZlZHUtPnN0YXR1cywg RURVX1NUQVRVU19DT01QVVRJTkcpOwogICAgICAgICBxZW11X2NvbmRfc2lnbmFsKCZlZHUtPnRo cl9jb25kKTsKICAgICAgICAgcWVtdV9tdXRleF91bmxvY2soJmVkdS0+dGhyX211dGV4KTsKICAg ICAgICAgYnJlYWs7CiAgICAgY2FzZSAweDIwOgogICAgICAgICBpZiAodmFsICYgRURVX1NUQVRV U19JUlFGQUNUKSB7Ci0gICAgICAgICAgICBhdG9taWNfb3IoJmVkdS0+c3RhdHVzLCBFRFVfU1RB VFVTX0lSUUZBQ1QpOworICAgICAgICAgICAgcWF0b21pY19vcigmZWR1LT5zdGF0dXMsIEVEVV9T VEFUVVNfSVJRRkFDVCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdG9taWNfYW5k KCZlZHUtPnN0YXR1cywgfkVEVV9TVEFUVVNfSVJRRkFDVCk7CisgICAgICAgICAgICBxYXRvbWlj X2FuZCgmZWR1LT5zdGF0dXMsIH5FRFVfU1RBVFVTX0lSUUZBQ1QpOwogICAgICAgICB9CiAgICAg ICAgIGJyZWFrOwogICAgIGNhc2UgMHg2MDoKQEAgLTMyMiw3ICszMjIsNyBAQCBzdGF0aWMgdm9p ZCAqZWR1X2ZhY3RfdGhyZWFkKHZvaWQgKm9wYXF1ZSkKICAgICAgICAgdWludDMyX3QgdmFsLCBy ZXQgPSAxOwogCiAgICAgICAgIHFlbXVfbXV0ZXhfbG9jaygmZWR1LT50aHJfbXV0ZXgpOwotICAg ICAgICB3aGlsZSAoKGF0b21pY19yZWFkKCZlZHUtPnN0YXR1cykgJiBFRFVfU1RBVFVTX0NPTVBV VElORykgPT0gMCAmJgorICAgICAgICB3aGlsZSAoKHFhdG9taWNfcmVhZCgmZWR1LT5zdGF0dXMp ICYgRURVX1NUQVRVU19DT01QVVRJTkcpID09IDAgJiYKICAgICAgICAgICAgICAgICAgICAgICAg ICFlZHUtPnN0b3BwaW5nKSB7CiAgICAgICAgICAgICBxZW11X2NvbmRfd2FpdCgmZWR1LT50aHJf Y29uZCwgJmVkdS0+dGhyX211dGV4KTsKICAgICAgICAgfQpAQCAtMzQ3LDkgKzM0Nyw5IEBAIHN0 YXRpYyB2b2lkICplZHVfZmFjdF90aHJlYWQodm9pZCAqb3BhcXVlKQogICAgICAgICBxZW11X211 dGV4X2xvY2soJmVkdS0+dGhyX211dGV4KTsKICAgICAgICAgZWR1LT5mYWN0ID0gcmV0OwogICAg ICAgICBxZW11X211dGV4X3VubG9jaygmZWR1LT50aHJfbXV0ZXgpOwotICAgICAgICBhdG9taWNf YW5kKCZlZHUtPnN0YXR1cywgfkVEVV9TVEFUVVNfQ09NUFVUSU5HKTsKKyAgICAgICAgcWF0b21p Y19hbmQoJmVkdS0+c3RhdHVzLCB+RURVX1NUQVRVU19DT01QVVRJTkcpOwogCi0gICAgICAgIGlm IChhdG9taWNfcmVhZCgmZWR1LT5zdGF0dXMpICYgRURVX1NUQVRVU19JUlFGQUNUKSB7CisgICAg ICAgIGlmIChxYXRvbWljX3JlYWQoJmVkdS0+c3RhdHVzKSAmIEVEVV9TVEFUVVNfSVJRRkFDVCkg ewogICAgICAgICAgICAgcWVtdV9tdXRleF9sb2NrX2lvdGhyZWFkKCk7CiAgICAgICAgICAgICBl ZHVfcmFpc2VfaXJxKGVkdSwgRkFDVF9JUlEpOwogICAgICAgICAgICAgcWVtdV9tdXRleF91bmxv Y2tfaW90aHJlYWQoKTsKZGlmZiAtLWdpdCBhL2h3L25ldC92aXJ0aW8tbmV0LmMgYi9ody9uZXQv dmlydGlvLW5ldC5jCmluZGV4IGNiMGQyNzA4NGMuLjdiZjI3YjlkYjcgMTAwNjQ0Ci0tLSBhL2h3 L25ldC92aXJ0aW8tbmV0LmMKKysrIGIvaHcvbmV0L3ZpcnRpby1uZXQuYwpAQCAtOTMzLDcgKzkz Myw3IEBAIHN0YXRpYyB2b2lkIHZpcnRpb19uZXRfc2V0X2ZlYXR1cmVzKFZpcnRJT0RldmljZSAq dmRldiwgdWludDY0X3QgZmVhdHVyZXMpCiAKICAgICBpZiAodmlydGlvX2hhc19mZWF0dXJlKGZl YXR1cmVzLCBWSVJUSU9fTkVUX0ZfU1RBTkRCWSkpIHsKICAgICAgICAgcWFwaV9ldmVudF9zZW5k X2ZhaWxvdmVyX25lZ290aWF0ZWQobi0+bmV0Y2xpZW50X25hbWUpOwotICAgICAgICBhdG9taWNf c2V0KCZuLT5wcmltYXJ5X3Nob3VsZF9iZV9oaWRkZW4sIGZhbHNlKTsKKyAgICAgICAgcWF0b21p Y19zZXQoJm4tPnByaW1hcnlfc2hvdWxkX2JlX2hpZGRlbiwgZmFsc2UpOwogICAgICAgICBmYWls b3Zlcl9hZGRfcHJpbWFyeShuLCAmZXJyKTsKICAgICAgICAgaWYgKGVycikgewogICAgICAgICAg ICAgbi0+cHJpbWFyeV9kZXYgPSB2aXJ0aW9fY29ubmVjdF9mYWlsb3Zlcl9kZXZpY2VzKG4sIG4t PnFkZXYsICZlcnIpOwpAQCAtMzE2OCw3ICszMTY4LDcgQEAgc3RhdGljIHZvaWQgdmlydGlvX25l dF9oYW5kbGVfbWlncmF0aW9uX3ByaW1hcnkoVmlydElPTmV0ICpuLAogICAgIGJvb2wgc2hvdWxk X2JlX2hpZGRlbjsKICAgICBFcnJvciAqZXJyID0gTlVMTDsKIAotICAgIHNob3VsZF9iZV9oaWRk ZW4gPSBhdG9taWNfcmVhZCgmbi0+cHJpbWFyeV9zaG91bGRfYmVfaGlkZGVuKTsKKyAgICBzaG91 bGRfYmVfaGlkZGVuID0gcWF0b21pY19yZWFkKCZuLT5wcmltYXJ5X3Nob3VsZF9iZV9oaWRkZW4p OwogCiAgICAgaWYgKCFuLT5wcmltYXJ5X2RldikgewogICAgICAgICBuLT5wcmltYXJ5X2RldiA9 IHZpcnRpb19jb25uZWN0X2ZhaWxvdmVyX2RldmljZXMobiwgbi0+cWRldiwgJmVycik7CkBAIC0z MTgzLDcgKzMxODMsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fbmV0X2hhbmRsZV9taWdyYXRpb25f cHJpbWFyeShWaXJ0SU9OZXQgKm4sCiAgICAgICAgICAgICAgICAgICAgIHFkZXZfZ2V0X3Ztc2Qo bi0+cHJpbWFyeV9kZXYpLAogICAgICAgICAgICAgICAgICAgICBuLT5wcmltYXJ5X2Rldik7CiAg ICAgICAgICAgICBxYXBpX2V2ZW50X3NlbmRfdW5wbHVnX3ByaW1hcnkobi0+cHJpbWFyeV9kZXZp Y2VfaWQpOwotICAgICAgICAgICAgYXRvbWljX3NldCgmbi0+cHJpbWFyeV9zaG91bGRfYmVfaGlk ZGVuLCB0cnVlKTsKKyAgICAgICAgICAgIHFhdG9taWNfc2V0KCZuLT5wcmltYXJ5X3Nob3VsZF9i ZV9oaWRkZW4sIHRydWUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgd2Fybl9yZXBv cnQoImNvdWxkbid0IHVucGx1ZyBwcmltYXJ5IGRldmljZSIpOwogICAgICAgICB9CkBAIC0zMjM0 LDcgKzMyMzQsNyBAQCBzdGF0aWMgaW50IHZpcnRpb19uZXRfcHJpbWFyeV9zaG91bGRfYmVfaGlk ZGVuKERldmljZUxpc3RlbmVyICpsaXN0ZW5lciwKICAgICBuLT5wcmltYXJ5X2RldmljZV9vcHRz ID0gZGV2aWNlX29wdHM7CiAKICAgICAvKiBwcmltYXJ5X3Nob3VsZF9iZV9oaWRkZW4gaXMgc2V0 IGR1cmluZyBmZWF0dXJlIG5lZ290aWF0aW9uICovCi0gICAgaGlkZSA9IGF0b21pY19yZWFkKCZu LT5wcmltYXJ5X3Nob3VsZF9iZV9oaWRkZW4pOworICAgIGhpZGUgPSBxYXRvbWljX3JlYWQoJm4t PnByaW1hcnlfc2hvdWxkX2JlX2hpZGRlbik7CiAKICAgICBpZiAobi0+cHJpbWFyeV9kZXZpY2Vf ZGljdCkgewogICAgICAgICBnX2ZyZWUobi0+cHJpbWFyeV9kZXZpY2VfaWQpOwpAQCAtMzI5MSw3 ICszMjkxLDcgQEAgc3RhdGljIHZvaWQgdmlydGlvX25ldF9kZXZpY2VfcmVhbGl6ZShEZXZpY2VT dGF0ZSAqZGV2LCBFcnJvciAqKmVycnApCiAgICAgaWYgKG4tPmZhaWxvdmVyKSB7CiAgICAgICAg IG4tPnByaW1hcnlfbGlzdGVuZXIuc2hvdWxkX2JlX2hpZGRlbiA9CiAgICAgICAgICAgICB2aXJ0 aW9fbmV0X3ByaW1hcnlfc2hvdWxkX2JlX2hpZGRlbjsKLSAgICAgICAgYXRvbWljX3NldCgmbi0+ cHJpbWFyeV9zaG91bGRfYmVfaGlkZGVuLCB0cnVlKTsKKyAgICAgICAgcWF0b21pY19zZXQoJm4t PnByaW1hcnlfc2hvdWxkX2JlX2hpZGRlbiwgdHJ1ZSk7CiAgICAgICAgIGRldmljZV9saXN0ZW5l cl9yZWdpc3Rlcigmbi0+cHJpbWFyeV9saXN0ZW5lcik7CiAgICAgICAgIG4tPm1pZ3JhdGlvbl9z dGF0ZS5ub3RpZnkgPSB2aXJ0aW9fbmV0X21pZ3JhdGlvbl9zdGF0ZV9ub3RpZmllcjsKICAgICAg ICAgYWRkX21pZ3JhdGlvbl9zdGF0ZV9jaGFuZ2Vfbm90aWZpZXIoJm4tPm1pZ3JhdGlvbl9zdGF0 ZSk7CmRpZmYgLS1naXQgYS9ody9yZG1hL3JkbWFfYmFja2VuZC5jIGIvaHcvcmRtYS9yZG1hX2Jh Y2tlbmQuYwppbmRleCBkYjdlNWM4YmU1Li41ZGUwMTBiMWZhIDEwMDY0NAotLS0gYS9ody9yZG1h L3JkbWFfYmFja2VuZC5jCisrKyBiL2h3L3JkbWEvcmRtYV9iYWNrZW5kLmMKQEAgLTY4LDcgKzY4 LDcgQEAgc3RhdGljIHZvaWQgZnJlZV9jcWVfY3R4KGdwb2ludGVyIGRhdGEsIGdwb2ludGVyIHVz ZXJfZGF0YSkKICAgICBiY3R4ID0gcmRtYV9ybV9nZXRfY3FlX2N0eChyZG1hX2Rldl9yZXMsIGNx ZV9jdHhfaWQpOwogICAgIGlmIChiY3R4KSB7CiAgICAgICAgIHJkbWFfcm1fZGVhbGxvY19jcWVf Y3R4KHJkbWFfZGV2X3JlcywgY3FlX2N0eF9pZCk7Ci0gICAgICAgIGF0b21pY19kZWMoJnJkbWFf ZGV2X3Jlcy0+c3RhdHMubWlzc2luZ19jcWUpOworICAgICAgICBxYXRvbWljX2RlYygmcmRtYV9k ZXZfcmVzLT5zdGF0cy5taXNzaW5nX2NxZSk7CiAgICAgfQogICAgIGdfZnJlZShiY3R4KTsKIH0K QEAgLTgxLDcgKzgxLDcgQEAgc3RhdGljIHZvaWQgY2xlYW5fcmVjdl9tYWRzKFJkbWFCYWNrZW5k RGV2ICpiYWNrZW5kX2RldikKICAgICAgICAgY3FlX2N0eF9pZCA9IHJkbWFfcHJvdGVjdGVkX3Fs aXN0X3BvcF9pbnQ2NCgmYmFja2VuZF9kZXYtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3ZfbWFkc19saXN0KTsKICAgICAgICAgaWYgKGNx ZV9jdHhfaWQgIT0gLUVOT0VOVCkgewotICAgICAgICAgICAgYXRvbWljX2luYygmYmFja2VuZF9k ZXYtPnJkbWFfZGV2X3Jlcy0+c3RhdHMubWlzc2luZ19jcWUpOworICAgICAgICAgICAgcWF0b21p Y19pbmMoJmJhY2tlbmRfZGV2LT5yZG1hX2Rldl9yZXMtPnN0YXRzLm1pc3NpbmdfY3FlKTsKICAg ICAgICAgICAgIGZyZWVfY3FlX2N0eChHSU5UX1RPX1BPSU5URVIoY3FlX2N0eF9pZCksCiAgICAg ICAgICAgICAgICAgICAgICAgICAgYmFja2VuZF9kZXYtPnJkbWFfZGV2X3Jlcyk7CiAgICAgICAg IH0KQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgaW50IHJkbWFfcG9sbF9jcShSZG1hRGV2aWNl UmVzb3VyY2VzICpyZG1hX2Rldl9yZXMsIHN0cnVjdCBpYnZfY3EgKmliY3EpCiAgICAgICAgICAg ICB9CiAgICAgICAgICAgICB0b3RhbF9uZSArPSBuZTsKICAgICAgICAgfSB3aGlsZSAobmUgPiAw KTsKLSAgICAgICAgYXRvbWljX3N1YigmcmRtYV9kZXZfcmVzLT5zdGF0cy5taXNzaW5nX2NxZSwg dG90YWxfbmUpOworICAgICAgICBxYXRvbWljX3N1YigmcmRtYV9kZXZfcmVzLT5zdGF0cy5taXNz aW5nX2NxZSwgdG90YWxfbmUpOwogICAgIH0KIAogICAgIGlmIChuZSA8IDApIHsKQEAgLTE5NSwx NyArMTk1LDE3IEBAIHN0YXRpYyB2b2lkICpjb21wX2hhbmRsZXJfdGhyZWFkKHZvaWQgKmFyZykK IAogc3RhdGljIGlubGluZSB2b2lkIGRpc2FibGVfcmRtYWNtX211eF9hc3luYyhSZG1hQmFja2Vu ZERldiAqYmFja2VuZF9kZXYpCiB7Ci0gICAgYXRvbWljX3NldCgmYmFja2VuZF9kZXYtPnJkbWFj bV9tdXguY2FuX3JlY2VpdmUsIDApOworICAgIHFhdG9taWNfc2V0KCZiYWNrZW5kX2Rldi0+cmRt YWNtX211eC5jYW5fcmVjZWl2ZSwgMCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBlbmFibGVf cmRtYWNtX211eF9hc3luYyhSZG1hQmFja2VuZERldiAqYmFja2VuZF9kZXYpCiB7Ci0gICAgYXRv bWljX3NldCgmYmFja2VuZF9kZXYtPnJkbWFjbV9tdXguY2FuX3JlY2VpdmUsIHNpemVvZihSZG1h Q21NdXhNc2cpKTsKKyAgICBxYXRvbWljX3NldCgmYmFja2VuZF9kZXYtPnJkbWFjbV9tdXguY2Fu X3JlY2VpdmUsIHNpemVvZihSZG1hQ21NdXhNc2cpKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQg cmRtYWNtX211eF9jYW5fcHJvY2Vzc19hc3luYyhSZG1hQmFja2VuZERldiAqYmFja2VuZF9kZXYp CiB7Ci0gICAgcmV0dXJuIGF0b21pY19yZWFkKCZiYWNrZW5kX2Rldi0+cmRtYWNtX211eC5jYW5f cmVjZWl2ZSk7CisgICAgcmV0dXJuIHFhdG9taWNfcmVhZCgmYmFja2VuZF9kZXYtPnJkbWFjbV9t dXguY2FuX3JlY2VpdmUpOwogfQogCiBzdGF0aWMgaW50IHJkbWFjbV9tdXhfY2hlY2tfb3Bfc3Rh dHVzKENoYXJCYWNrZW5kICptYWRfY2hyX2JlKQpAQCAtNTU1LDcgKzU1NSw3IEBAIHZvaWQgcmRt YV9iYWNrZW5kX3Bvc3Rfc2VuZChSZG1hQmFja2VuZERldiAqYmFja2VuZF9kZXYsCiAgICAgICAg IGdvdG8gZXJyX2RlYWxsb2NfY3FlX2N0eDsKICAgICB9CiAKLSAgICBhdG9taWNfaW5jKCZiYWNr ZW5kX2Rldi0+cmRtYV9kZXZfcmVzLT5zdGF0cy5taXNzaW5nX2NxZSk7CisgICAgcWF0b21pY19p bmMoJmJhY2tlbmRfZGV2LT5yZG1hX2Rldl9yZXMtPnN0YXRzLm1pc3NpbmdfY3FlKTsKICAgICBi YWNrZW5kX2Rldi0+cmRtYV9kZXZfcmVzLT5zdGF0cy50eCsrOwogCiAgICAgcmV0dXJuOwpAQCAt NjU4LDcgKzY1OCw3IEBAIHZvaWQgcmRtYV9iYWNrZW5kX3Bvc3RfcmVjdihSZG1hQmFja2VuZERl diAqYmFja2VuZF9kZXYsCiAgICAgICAgIGdvdG8gZXJyX2RlYWxsb2NfY3FlX2N0eDsKICAgICB9 CiAKLSAgICBhdG9taWNfaW5jKCZiYWNrZW5kX2Rldi0+cmRtYV9kZXZfcmVzLT5zdGF0cy5taXNz aW5nX2NxZSk7CisgICAgcWF0b21pY19pbmMoJmJhY2tlbmRfZGV2LT5yZG1hX2Rldl9yZXMtPnN0 YXRzLm1pc3NpbmdfY3FlKTsKICAgICBiYWNrZW5kX2Rldi0+cmRtYV9kZXZfcmVzLT5zdGF0cy5y eF9idWZzKys7CiAKICAgICByZXR1cm47CkBAIC03MTAsNyArNzEwLDcgQEAgdm9pZCByZG1hX2Jh Y2tlbmRfcG9zdF9zcnFfcmVjdihSZG1hQmFja2VuZERldiAqYmFja2VuZF9kZXYsCiAgICAgICAg IGdvdG8gZXJyX2RlYWxsb2NfY3FlX2N0eDsKICAgICB9CiAKLSAgICBhdG9taWNfaW5jKCZiYWNr ZW5kX2Rldi0+cmRtYV9kZXZfcmVzLT5zdGF0cy5taXNzaW5nX2NxZSk7CisgICAgcWF0b21pY19p bmMoJmJhY2tlbmRfZGV2LT5yZG1hX2Rldl9yZXMtPnN0YXRzLm1pc3NpbmdfY3FlKTsKICAgICBi YWNrZW5kX2Rldi0+cmRtYV9kZXZfcmVzLT5zdGF0cy5yeF9idWZzKys7CiAgICAgYmFja2VuZF9k ZXYtPnJkbWFfZGV2X3Jlcy0+c3RhdHMucnhfc3JxKys7CiAKZGlmZiAtLWdpdCBhL2h3L3JkbWEv cmRtYV9ybS5jIGIvaHcvcmRtYS9yZG1hX3JtLmMKaW5kZXggNjA5NTdmODhkYi4uNDkxNDFkNDA3 NCAxMDA2NDQKLS0tIGEvaHcvcmRtYS9yZG1hX3JtLmMKKysrIGIvaHcvcmRtYS9yZG1hX3JtLmMK QEAgLTc5MCw3ICs3OTAsNyBAQCBpbnQgcmRtYV9ybV9pbml0KFJkbWFEZXZpY2VSZXNvdXJjZXMg KmRldl9yZXMsIHN0cnVjdCBpYnZfZGV2aWNlX2F0dHIgKmRldl9hdHRyKQogICAgIHFlbXVfbXV0 ZXhfaW5pdCgmZGV2X3Jlcy0+bG9jayk7CiAKICAgICBtZW1zZXQoJmRldl9yZXMtPnN0YXRzLCAw LCBzaXplb2YoZGV2X3Jlcy0+c3RhdHMpKTsKLSAgICBhdG9taWNfc2V0KCZkZXZfcmVzLT5zdGF0 cy5taXNzaW5nX2NxZSwgMCk7CisgICAgcWF0b21pY19zZXQoJmRldl9yZXMtPnN0YXRzLm1pc3Np bmdfY3FlLCAwKTsKIAogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvaHcvcmRtYS92bXcv cHZyZG1hX2Rldl9yaW5nLmMgYi9ody9yZG1hL3Ztdy9wdnJkbWFfZGV2X3JpbmcuYwppbmRleCBj MTIyZmU3MDM1Li5mMGJjZGU3NGIwIDEwMDY0NAotLS0gYS9ody9yZG1hL3Ztdy9wdnJkbWFfZGV2 X3JpbmcuYworKysgYi9ody9yZG1hL3Ztdy9wdnJkbWFfZGV2X3JpbmcuYwpAQCAtMzgsOCArMzgs OCBAQCBpbnQgcHZyZG1hX3JpbmdfaW5pdChQdnJkbWFSaW5nICpyaW5nLCBjb25zdCBjaGFyICpu YW1lLCBQQ0lEZXZpY2UgKmRldiwKICAgICByaW5nLT5tYXhfZWxlbXMgPSBtYXhfZWxlbXM7CiAg ICAgcmluZy0+ZWxlbV9zeiA9IGVsZW1fc3o7CiAgICAgLyogVE9ETzogR2l2ZSBhIG1vbWVudCB0 byB0aGluayBpZiB3ZSB3YW50IHRvIHJlZG8gZHJpdmVyIHNldHRpbmdzCi0gICAgYXRvbWljX3Nl dCgmcmluZy0+cmluZ19zdGF0ZS0+cHJvZF90YWlsLCAwKTsKLSAgICBhdG9taWNfc2V0KCZyaW5n LT5yaW5nX3N0YXRlLT5jb25zX2hlYWQsIDApOworICAgIHFhdG9taWNfc2V0KCZyaW5nLT5yaW5n X3N0YXRlLT5wcm9kX3RhaWwsIDApOworICAgIHFhdG9taWNfc2V0KCZyaW5nLT5yaW5nX3N0YXRl LT5jb25zX2hlYWQsIDApOwogICAgICovCiAgICAgcmluZy0+bnBhZ2VzID0gbnBhZ2VzOwogICAg IHJpbmctPnBhZ2VzID0gZ19tYWxsb2MobnBhZ2VzICogc2l6ZW9mKHZvaWQgKikpOwpkaWZmIC0t Z2l0IGEvaHcvczM5MHgvczM5MC1wY2ktYnVzLmMgYi9ody9zMzkweC9zMzkwLXBjaS1idXMuYwpp bmRleCA5MjE0NmEyMTE5Li5mYjRjZWU4N2E0IDEwMDY0NAotLS0gYS9ody9zMzkweC9zMzkwLXBj aS1idXMuYworKysgYi9ody9zMzkweC9zMzkwLXBjaS1idXMuYwpAQCAtNjUwLDcgKzY1MCw3IEBA IHN0YXRpYyB1aW50OF90IHNldF9pbmRfYXRvbWljKHVpbnQ2NF90IGluZF9sb2MsIHVpbnQ4X3Qg dG9fYmVfc2V0KQogICAgIGFjdHVhbCA9ICppbmRfYWRkcjsKICAgICBkbyB7CiAgICAgICAgIGV4 cGVjdGVkID0gYWN0dWFsOwotICAgICAgICBhY3R1YWwgPSBhdG9taWNfY21weGNoZyhpbmRfYWRk ciwgZXhwZWN0ZWQsIGV4cGVjdGVkIHwgdG9fYmVfc2V0KTsKKyAgICAgICAgYWN0dWFsID0gcWF0 b21pY19jbXB4Y2hnKGluZF9hZGRyLCBleHBlY3RlZCwgZXhwZWN0ZWQgfCB0b19iZV9zZXQpOwog ICAgIH0gd2hpbGUgKGFjdHVhbCAhPSBleHBlY3RlZCk7CiAgICAgY3B1X3BoeXNpY2FsX21lbW9y eV91bm1hcCgodm9pZCAqKWluZF9hZGRyLCBsZW4sIDEsIGxlbik7CiAKZGlmZiAtLWdpdCBhL2h3 L3MzOTB4L3ZpcnRpby1jY3cuYyBiL2h3L3MzOTB4L3ZpcnRpby1jY3cuYwppbmRleCA4ZmViMzQ1 MWEwLi44ZDE0MGRjNTBmIDEwMDY0NAotLS0gYS9ody9zMzkweC92aXJ0aW8tY2N3LmMKKysrIGIv aHcvczM5MHgvdmlydGlvLWNjdy5jCkBAIC04MDAsNyArODAwLDcgQEAgc3RhdGljIHVpbnQ4X3Qg dmlydGlvX3NldF9pbmRfYXRvbWljKFN1YmNoRGV2ICpzY2gsIHVpbnQ2NF90IGluZF9sb2MsCiAg ICAgYWN0dWFsID0gKmluZF9hZGRyOwogICAgIGRvIHsKICAgICAgICAgZXhwZWN0ZWQgPSBhY3R1 YWw7Ci0gICAgICAgIGFjdHVhbCA9IGF0b21pY19jbXB4Y2hnKGluZF9hZGRyLCBleHBlY3RlZCwg ZXhwZWN0ZWQgfCB0b19iZV9zZXQpOworICAgICAgICBhY3R1YWwgPSBxYXRvbWljX2NtcHhjaGco aW5kX2FkZHIsIGV4cGVjdGVkLCBleHBlY3RlZCB8IHRvX2JlX3NldCk7CiAgICAgfSB3aGlsZSAo YWN0dWFsICE9IGV4cGVjdGVkKTsKICAgICB0cmFjZV92aXJ0aW9fY2N3X3NldF9pbmQoaW5kX2xv YywgYWN0dWFsLCBhY3R1YWwgfCB0b19iZV9zZXQpOwogICAgIGNwdV9waHlzaWNhbF9tZW1vcnlf dW5tYXAoKHZvaWQgKilpbmRfYWRkciwgbGVuLCAxLCBsZW4pOwpkaWZmIC0tZ2l0IGEvaHcvdmly dGlvL3Zob3N0LmMgYi9ody92aXJ0aW8vdmhvc3QuYwppbmRleCAxYTEzODRlN2E2Li4wMTE5NTE2 MjU0IDEwMDY0NAotLS0gYS9ody92aXJ0aW8vdmhvc3QuYworKysgYi9ody92aXJ0aW8vdmhvc3Qu YwpAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgdm9pZCB2aG9zdF9kZXZfc3luY19yZWdpb24oc3Ry dWN0IHZob3N0X2RldiAqZGV2LAogICAgICAgICB9CiAgICAgICAgIC8qIERhdGEgbXVzdCBiZSBy ZWFkIGF0b21pY2FsbHkuIFdlIGRvbid0IHJlYWxseSBuZWVkIGJhcnJpZXIgc2VtYW50aWNzCiAg ICAgICAgICAqIGJ1dCBpdCdzIGVhc2llciB0byB1c2UgYXRvbWljXyogdGhhbiByb2xsIG91ciBv d24uICovCi0gICAgICAgIGxvZyA9IGF0b21pY194Y2hnKGZyb20sIDApOworICAgICAgICBsb2cg PSBxYXRvbWljX3hjaGcoZnJvbSwgMCk7CiAgICAgICAgIHdoaWxlIChsb2cpIHsKICAgICAgICAg ICAgIGludCBiaXQgPSBjdHpsKGxvZyk7CiAgICAgICAgICAgICBod2FkZHIgcGFnZV9hZGRyOwpk aWZmIC0tZ2l0IGEvaHcvdmlydGlvL3ZpcnRpby1tbWlvLmMgYi9ody92aXJ0aW8vdmlydGlvLW1t aW8uYwppbmRleCBmMTJkMTU5NWFhLi5lMWI1YzNiODFlIDEwMDY0NAotLS0gYS9ody92aXJ0aW8v dmlydGlvLW1taW8uYworKysgYi9ody92aXJ0aW8vdmlydGlvLW1taW8uYwpAQCAtMTc5LDcgKzE3 OSw3IEBAIHN0YXRpYyB1aW50NjRfdCB2aXJ0aW9fbW1pb19yZWFkKHZvaWQgKm9wYXF1ZSwgaHdh ZGRyIG9mZnNldCwgdW5zaWduZWQgc2l6ZSkKICAgICAgICAgfQogICAgICAgICByZXR1cm4gcHJv eHktPnZxc1t2ZGV2LT5xdWV1ZV9zZWxdLmVuYWJsZWQ7CiAgICAgY2FzZSBWSVJUSU9fTU1JT19J TlRFUlJVUFRfU1RBVFVTOgotICAgICAgICByZXR1cm4gYXRvbWljX3JlYWQoJnZkZXYtPmlzcik7 CisgICAgICAgIHJldHVybiBxYXRvbWljX3JlYWQoJnZkZXYtPmlzcik7CiAgICAgY2FzZSBWSVJU SU9fTU1JT19TVEFUVVM6CiAgICAgICAgIHJldHVybiB2ZGV2LT5zdGF0dXM7CiAgICAgY2FzZSBW SVJUSU9fTU1JT19DT05GSUdfR0VORVJBVElPTjoKQEAgLTM3MCw3ICszNzAsNyBAQCBzdGF0aWMg dm9pZCB2aXJ0aW9fbW1pb193cml0ZSh2b2lkICpvcGFxdWUsIGh3YWRkciBvZmZzZXQsIHVpbnQ2 NF90IHZhbHVlLAogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVklSVElPX01N SU9fSU5URVJSVVBUX0FDSzoKLSAgICAgICAgYXRvbWljX2FuZCgmdmRldi0+aXNyLCB+dmFsdWUp OworICAgICAgICBxYXRvbWljX2FuZCgmdmRldi0+aXNyLCB+dmFsdWUpOwogICAgICAgICB2aXJ0 aW9fdXBkYXRlX2lycSh2ZGV2KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWSVJUSU9fTU1J T19TVEFUVVM6CkBAIC00OTYsNyArNDk2LDcgQEAgc3RhdGljIHZvaWQgdmlydGlvX21taW9fdXBk YXRlX2lycShEZXZpY2VTdGF0ZSAqb3BhcXVlLCB1aW50MTZfdCB2ZWN0b3IpCiAgICAgaWYgKCF2 ZGV2KSB7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgbGV2ZWwgPSAoYXRvbWljX3JlYWQo JnZkZXYtPmlzcikgIT0gMCk7CisgICAgbGV2ZWwgPSAocWF0b21pY19yZWFkKCZ2ZGV2LT5pc3Ip ICE9IDApOwogICAgIHRyYWNlX3ZpcnRpb19tbWlvX3NldHRpbmdfaXJxKGxldmVsKTsKICAgICBx ZW11X3NldF9pcnEocHJveHktPmlycSwgbGV2ZWwpOwogfQpkaWZmIC0tZ2l0IGEvaHcvdmlydGlv L3ZpcnRpby1wY2kuYyBiL2h3L3ZpcnRpby92aXJ0aW8tcGNpLmMKaW5kZXggNWJjNzY5ZjY4NS4u MDI3OTBlMzIzNyAxMDA2NDQKLS0tIGEvaHcvdmlydGlvL3ZpcnRpby1wY2kuYworKysgYi9ody92 aXJ0aW8vdmlydGlvLXBjaS5jCkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyB2b2lkIHZpcnRpb19w Y2lfbm90aWZ5KERldmljZVN0YXRlICpkLCB1aW50MTZfdCB2ZWN0b3IpCiAgICAgICAgIG1zaXhf bm90aWZ5KCZwcm94eS0+cGNpX2RldiwgdmVjdG9yKTsKICAgICBlbHNlIHsKICAgICAgICAgVmly dElPRGV2aWNlICp2ZGV2ID0gdmlydGlvX2J1c19nZXRfZGV2aWNlKCZwcm94eS0+YnVzKTsKLSAg ICAgICAgcGNpX3NldF9pcnEoJnByb3h5LT5wY2lfZGV2LCBhdG9taWNfcmVhZCgmdmRldi0+aXNy KSAmIDEpOworICAgICAgICBwY2lfc2V0X2lycSgmcHJveHktPnBjaV9kZXYsIHFhdG9taWNfcmVh ZCgmdmRldi0+aXNyKSAmIDEpOwogICAgIH0KIH0KIApAQCAtMzk4LDcgKzM5OCw3IEBAIHN0YXRp YyB1aW50MzJfdCB2aXJ0aW9faW9wb3J0X3JlYWQoVmlydElPUENJUHJveHkgKnByb3h5LCB1aW50 MzJfdCBhZGRyKQogICAgICAgICBicmVhazsKICAgICBjYXNlIFZJUlRJT19QQ0lfSVNSOgogICAg ICAgICAvKiByZWFkaW5nIGZyb20gdGhlIElTUiBhbHNvIGNsZWFycyBpdC4gKi8KLSAgICAgICAg cmV0ID0gYXRvbWljX3hjaGcoJnZkZXYtPmlzciwgMCk7CisgICAgICAgIHJldCA9IHFhdG9taWNf eGNoZygmdmRldi0+aXNyLCAwKTsKICAgICAgICAgcGNpX2lycV9kZWFzc2VydCgmcHJveHktPnBj aV9kZXYpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZJUlRJT19NU0lfQ09ORklHX1ZFQ1RP UjoKQEAgLTEzNjIsNyArMTM2Miw3IEBAIHN0YXRpYyB1aW50NjRfdCB2aXJ0aW9fcGNpX2lzcl9y ZWFkKHZvaWQgKm9wYXF1ZSwgaHdhZGRyIGFkZHIsCiB7CiAgICAgVmlydElPUENJUHJveHkgKnBy b3h5ID0gb3BhcXVlOwogICAgIFZpcnRJT0RldmljZSAqdmRldiA9IHZpcnRpb19idXNfZ2V0X2Rl dmljZSgmcHJveHktPmJ1cyk7Ci0gICAgdWludDY0X3QgdmFsID0gYXRvbWljX3hjaGcoJnZkZXYt PmlzciwgMCk7CisgICAgdWludDY0X3QgdmFsID0gcWF0b21pY194Y2hnKCZ2ZGV2LT5pc3IsIDAp OwogICAgIHBjaV9pcnFfZGVhc3NlcnQoJnByb3h5LT5wY2lfZGV2KTsKIAogICAgIHJldHVybiB2 YWw7CmRpZmYgLS1naXQgYS9ody92aXJ0aW8vdmlydGlvLmMgYi9ody92aXJ0aW8vdmlydGlvLmMK aW5kZXggZTk4MzAyNTIxNy4uM2EzZDAxMmQ5ZiAxMDA2NDQKLS0tIGEvaHcvdmlydGlvL3ZpcnRp by5jCisrKyBiL2h3L3ZpcnRpby92aXJ0aW8uYwpAQCAtMTQ5LDggKzE0OSw4IEBAIHN0YXRpYyB2 b2lkIHZpcnRpb192aXJ0cXVldWVfcmVzZXRfcmVnaW9uX2NhY2hlKHN0cnVjdCBWaXJ0UXVldWUg KnZxKQogewogICAgIFZSaW5nTWVtb3J5UmVnaW9uQ2FjaGVzICpjYWNoZXM7CiAKLSAgICBjYWNo ZXMgPSBhdG9taWNfcmVhZCgmdnEtPnZyaW5nLmNhY2hlcyk7Ci0gICAgYXRvbWljX3JjdV9zZXQo JnZxLT52cmluZy5jYWNoZXMsIE5VTEwpOworICAgIGNhY2hlcyA9IHFhdG9taWNfcmVhZCgmdnEt PnZyaW5nLmNhY2hlcyk7CisgICAgcWF0b21pY19yY3Vfc2V0KCZ2cS0+dnJpbmcuY2FjaGVzLCBO VUxMKTsKICAgICBpZiAoY2FjaGVzKSB7CiAgICAgICAgIGNhbGxfcmN1KGNhY2hlcywgdmlydGlv X2ZyZWVfcmVnaW9uX2NhY2hlLCByY3UpOwogICAgIH0KQEAgLTE5Nyw3ICsxOTcsNyBAQCBzdGF0 aWMgdm9pZCB2aXJ0aW9faW5pdF9yZWdpb25fY2FjaGUoVmlydElPRGV2aWNlICp2ZGV2LCBpbnQg bikKICAgICAgICAgZ290byBlcnJfYXZhaWw7CiAgICAgfQogCi0gICAgYXRvbWljX3JjdV9zZXQo JnZxLT52cmluZy5jYWNoZXMsIG5ldyk7CisgICAgcWF0b21pY19yY3Vfc2V0KCZ2cS0+dnJpbmcu Y2FjaGVzLCBuZXcpOwogICAgIGlmIChvbGQpIHsKICAgICAgICAgY2FsbF9yY3Uob2xkLCB2aXJ0 aW9fZnJlZV9yZWdpb25fY2FjaGUsIHJjdSk7CiAgICAgfQpAQCAtMjgzLDcgKzI4Myw3IEBAIHN0 YXRpYyB2b2lkIHZyaW5nX3BhY2tlZF9mbGFnc193cml0ZShWaXJ0SU9EZXZpY2UgKnZkZXYsCiAv KiBDYWxsZWQgd2l0aGluIHJjdV9yZWFkX2xvY2soKS4gICovCiBzdGF0aWMgVlJpbmdNZW1vcnlS ZWdpb25DYWNoZXMgKnZyaW5nX2dldF9yZWdpb25fY2FjaGVzKHN0cnVjdCBWaXJ0UXVldWUgKnZx KQogewotICAgIHJldHVybiBhdG9taWNfcmN1X3JlYWQoJnZxLT52cmluZy5jYWNoZXMpOworICAg IHJldHVybiBxYXRvbWljX3JjdV9yZWFkKCZ2cS0+dnJpbmcuY2FjaGVzKTsKIH0KIAogLyogQ2Fs bGVkIHdpdGhpbiByY3VfcmVhZF9sb2NrKCkuICAqLwpAQCAtMjAwNyw3ICsyMDA3LDcgQEAgdm9p ZCB2aXJ0aW9fcmVzZXQodm9pZCAqb3BhcXVlKQogICAgIHZkZXYtPnF1ZXVlX3NlbCA9IDA7CiAg ICAgdmRldi0+c3RhdHVzID0gMDsKICAgICB2ZGV2LT5kaXNhYmxlZCA9IGZhbHNlOwotICAgIGF0 b21pY19zZXQoJnZkZXYtPmlzciwgMCk7CisgICAgcWF0b21pY19zZXQoJnZkZXYtPmlzciwgMCk7 CiAgICAgdmRldi0+Y29uZmlnX3ZlY3RvciA9IFZJUlRJT19OT19WRUNUT1I7CiAgICAgdmlydGlv X25vdGlmeV92ZWN0b3IodmRldiwgdmRldi0+Y29uZmlnX3ZlY3Rvcik7CiAKQEAgLTI0MzksMTMg KzI0MzksMTMgQEAgdm9pZCB2aXJ0aW9fZGVsX3F1ZXVlKFZpcnRJT0RldmljZSAqdmRldiwgaW50 IG4pCiAKIHN0YXRpYyB2b2lkIHZpcnRpb19zZXRfaXNyKFZpcnRJT0RldmljZSAqdmRldiwgaW50 IHZhbHVlKQogewotICAgIHVpbnQ4X3Qgb2xkID0gYXRvbWljX3JlYWQoJnZkZXYtPmlzcik7Cisg ICAgdWludDhfdCBvbGQgPSBxYXRvbWljX3JlYWQoJnZkZXYtPmlzcik7CiAKICAgICAvKiBEbyBu b3Qgd3JpdGUgSVNSIGlmIGl0IGRvZXMgbm90IGNoYW5nZSwgc28gdGhhdCBpdHMgY2FjaGVsaW5l IHJlbWFpbnMKICAgICAgKiBzaGFyZWQgaW4gdGhlIGNvbW1vbiBjYXNlIHdoZXJlIHRoZSBndWVz dCBkb2VzIG5vdCByZWFkIGl0LgogICAgICAqLwogICAgIGlmICgob2xkICYgdmFsdWUpICE9IHZh bHVlKSB7Ci0gICAgICAgIGF0b21pY19vcigmdmRldi0+aXNyLCB2YWx1ZSk7CisgICAgICAgIHFh dG9taWNfb3IoJnZkZXYtPmlzciwgdmFsdWUpOwogICAgIH0KIH0KIApAQCAtMzI1NCw3ICszMjU0 LDcgQEAgdm9pZCB2aXJ0aW9faW5pdChWaXJ0SU9EZXZpY2UgKnZkZXYsIGNvbnN0IGNoYXIgKm5h bWUsCiAgICAgdmRldi0+c3RhcnRlZCA9IGZhbHNlOwogICAgIHZkZXYtPmRldmljZV9pZCA9IGRl dmljZV9pZDsKICAgICB2ZGV2LT5zdGF0dXMgPSAwOwotICAgIGF0b21pY19zZXQoJnZkZXYtPmlz ciwgMCk7CisgICAgcWF0b21pY19zZXQoJnZkZXYtPmlzciwgMCk7CiAgICAgdmRldi0+cXVldWVf c2VsID0gMDsKICAgICB2ZGV2LT5jb25maWdfdmVjdG9yID0gVklSVElPX05PX1ZFQ1RPUjsKICAg ICB2ZGV2LT52cSA9IGdfbWFsbG9jMChzaXplb2YoVmlydFF1ZXVlKSAqIFZJUlRJT19RVUVVRV9N QVgpOwpkaWZmIC0tZ2l0IGEvaHcveHRlbnNhL3BpY19jcHUuYyBiL2h3L3h0ZW5zYS9waWNfY3B1 LmMKaW5kZXggMWQ1OTgyYTllNC4uNmM5NDQ3NTY1ZCAxMDA2NDQKLS0tIGEvaHcveHRlbnNhL3Bp Y19jcHUuYworKysgYi9ody94dGVuc2EvcGljX2NwdS5jCkBAIC03Miw5ICs3Miw5IEBAIHN0YXRp YyB2b2lkIHh0ZW5zYV9zZXRfaXJxKHZvaWQgKm9wYXF1ZSwgaW50IGlycSwgaW50IGFjdGl2ZSkK ICAgICAgICAgdWludDMyX3QgaXJxX2JpdCA9IDEgPDwgaXJxOwogCiAgICAgICAgIGlmIChhY3Rp dmUpIHsKLSAgICAgICAgICAgIGF0b21pY19vcigmZW52LT5zcmVnc1tJTlRTRVRdLCBpcnFfYml0 KTsKKyAgICAgICAgICAgIHFhdG9taWNfb3IoJmVudi0+c3JlZ3NbSU5UU0VUXSwgaXJxX2JpdCk7 CiAgICAgICAgIH0gZWxzZSBpZiAoZW52LT5jb25maWctPmludGVycnVwdFtpcnFdLmludHR5cGUg PT0gSU5UVFlQRV9MRVZFTCkgewotICAgICAgICAgICAgYXRvbWljX2FuZCgmZW52LT5zcmVnc1tJ TlRTRVRdLCB+aXJxX2JpdCk7CisgICAgICAgICAgICBxYXRvbWljX2FuZCgmZW52LT5zcmVnc1tJ TlRTRVRdLCB+aXJxX2JpdCk7CiAgICAgICAgIH0KIAogICAgICAgICBjaGVja19pbnRlcnJ1cHRz KGVudik7CmRpZmYgLS1naXQgYS9pb3RocmVhZC5jIGIvaW90aHJlYWQuYwppbmRleCAzYTM4NjBh MDljLi42OWVmZjllZmJjIDEwMDY0NAotLS0gYS9pb3RocmVhZC5jCisrKyBiL2lvdGhyZWFkLmMK QEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIHZvaWQgKmlvdGhyZWFkX3J1bih2b2lkICpvcGFxdWUp CiAgICAgICAgICAqIFdlIG11c3QgY2hlY2sgdGhlIHJ1bm5pbmcgc3RhdGUgYWdhaW4gaW4gY2Fz ZSBpdCB3YXMKICAgICAgICAgICogY2hhbmdlZCBpbiBwcmV2aW91cyBhaW9fcG9sbCgpCiAgICAg ICAgICAqLwotICAgICAgICBpZiAoaW90aHJlYWQtPnJ1bm5pbmcgJiYgYXRvbWljX3JlYWQoJmlv dGhyZWFkLT5ydW5fZ2NvbnRleHQpKSB7CisgICAgICAgIGlmIChpb3RocmVhZC0+cnVubmluZyAm JiBxYXRvbWljX3JlYWQoJmlvdGhyZWFkLT5ydW5fZ2NvbnRleHQpKSB7CiAgICAgICAgICAgICBn X21haW5fbG9vcF9ydW4oaW90aHJlYWQtPm1haW5fbG9vcCk7CiAgICAgICAgIH0KICAgICB9CkBA IC0xMTYsNyArMTE2LDcgQEAgc3RhdGljIHZvaWQgaW90aHJlYWRfaW5zdGFuY2VfaW5pdChPYmpl Y3QgKm9iaikKICAgICBpb3RocmVhZC0+dGhyZWFkX2lkID0gLTE7CiAgICAgcWVtdV9zZW1faW5p dCgmaW90aHJlYWQtPmluaXRfZG9uZV9zZW0sIDApOwogICAgIC8qIEJ5IGRlZmF1bHQsIHdlIGRv bid0IHJ1biBnY29udGV4dCAqLwotICAgIGF0b21pY19zZXQoJmlvdGhyZWFkLT5ydW5fZ2NvbnRl eHQsIDApOworICAgIHFhdG9taWNfc2V0KCZpb3RocmVhZC0+cnVuX2djb250ZXh0LCAwKTsKIH0K IAogc3RhdGljIHZvaWQgaW90aHJlYWRfaW5zdGFuY2VfZmluYWxpemUoT2JqZWN0ICpvYmopCkBA IC0zNDgsNyArMzQ4LDcgQEAgSU9UaHJlYWRJbmZvTGlzdCAqcW1wX3F1ZXJ5X2lvdGhyZWFkcyhF cnJvciAqKmVycnApCiAKIEdNYWluQ29udGV4dCAqaW90aHJlYWRfZ2V0X2dfbWFpbl9jb250ZXh0 KElPVGhyZWFkICppb3RocmVhZCkKIHsKLSAgICBhdG9taWNfc2V0KCZpb3RocmVhZC0+cnVuX2dj b250ZXh0LCAxKTsKKyAgICBxYXRvbWljX3NldCgmaW90aHJlYWQtPnJ1bl9nY29udGV4dCwgMSk7 CiAgICAgYWlvX25vdGlmeShpb3RocmVhZC0+Y3R4KTsKICAgICByZXR1cm4gaW90aHJlYWQtPndv cmtlcl9jb250ZXh0OwogfQpkaWZmIC0tZ2l0IGEvbGludXgtdXNlci9ocHBhL2NwdV9sb29wLmMg Yi9saW51eC11c2VyL2hwcGEvY3B1X2xvb3AuYwppbmRleCA5OTE1NDU2YTFkLi5kN2UxZWM3NzIy IDEwMDY0NAotLS0gYS9saW51eC11c2VyL2hwcGEvY3B1X2xvb3AuYworKysgYi9saW51eC11c2Vy L2hwcGEvY3B1X2xvb3AuYwpAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgYWJpX3Vsb25nIGhwcGFf bHdzKENQVUhQUEFTdGF0ZSAqZW52KQogICAgICAgICB9CiAgICAgICAgIG9sZCA9IHRzd2FwMzIo b2xkKTsKICAgICAgICAgbmV3ID0gdHN3YXAzMihuZXcpOwotICAgICAgICByZXQgPSBhdG9taWNf Y21weGNoZygodWludDMyX3QgKilnMmgoYWRkciksIG9sZCwgbmV3KTsKKyAgICAgICAgcmV0ID0g cWF0b21pY19jbXB4Y2hnKCh1aW50MzJfdCAqKWcyaChhZGRyKSwgb2xkLCBuZXcpOwogICAgICAg ICByZXQgPSB0c3dhcDMyKHJldCk7CiAgICAgICAgIGJyZWFrOwogCkBAIC02MCwxOSArNjAsMTkg QEAgc3RhdGljIGFiaV91bG9uZyBocHBhX2x3cyhDUFVIUFBBU3RhdGUgKmVudikKICAgICAgICAg Y2FzZSAwOgogICAgICAgICAgICAgb2xkID0gKih1aW50OF90ICopZzJoKG9sZCk7CiAgICAgICAg ICAgICBuZXcgPSAqKHVpbnQ4X3QgKilnMmgobmV3KTsKLSAgICAgICAgICAgIHJldCA9IGF0b21p Y19jbXB4Y2hnKCh1aW50OF90ICopZzJoKGFkZHIpLCBvbGQsIG5ldyk7CisgICAgICAgICAgICBy ZXQgPSBxYXRvbWljX2NtcHhjaGcoKHVpbnQ4X3QgKilnMmgoYWRkciksIG9sZCwgbmV3KTsKICAg ICAgICAgICAgIHJldCA9IHJldCAhPSBvbGQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg Y2FzZSAxOgogICAgICAgICAgICAgb2xkID0gKih1aW50MTZfdCAqKWcyaChvbGQpOwogICAgICAg ICAgICAgbmV3ID0gKih1aW50MTZfdCAqKWcyaChuZXcpOwotICAgICAgICAgICAgcmV0ID0gYXRv bWljX2NtcHhjaGcoKHVpbnQxNl90ICopZzJoKGFkZHIpLCBvbGQsIG5ldyk7CisgICAgICAgICAg ICByZXQgPSBxYXRvbWljX2NtcHhjaGcoKHVpbnQxNl90ICopZzJoKGFkZHIpLCBvbGQsIG5ldyk7 CiAgICAgICAgICAgICByZXQgPSByZXQgIT0gb2xkOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgIGNhc2UgMjoKICAgICAgICAgICAgIG9sZCA9ICoodWludDMyX3QgKilnMmgob2xkKTsKICAg ICAgICAgICAgIG5ldyA9ICoodWludDMyX3QgKilnMmgobmV3KTsKLSAgICAgICAgICAgIHJldCA9 IGF0b21pY19jbXB4Y2hnKCh1aW50MzJfdCAqKWcyaChhZGRyKSwgb2xkLCBuZXcpOworICAgICAg ICAgICAgcmV0ID0gcWF0b21pY19jbXB4Y2hnKCh1aW50MzJfdCAqKWcyaChhZGRyKSwgb2xkLCBu ZXcpOwogICAgICAgICAgICAgcmV0ID0gcmV0ICE9IG9sZDsKICAgICAgICAgICAgIGJyZWFrOwog ICAgICAgICBjYXNlIDM6CkBAIC04MSw3ICs4MSw4IEBAIHN0YXRpYyBhYmlfdWxvbmcgaHBwYV9s d3MoQ1BVSFBQQVN0YXRlICplbnYpCiAgICAgICAgICAgICAgICAgbzY0ID0gKih1aW50NjRfdCAq KWcyaChvbGQpOwogICAgICAgICAgICAgICAgIG42NCA9ICoodWludDY0X3QgKilnMmgobmV3KTsK ICNpZmRlZiBDT05GSUdfQVRPTUlDNjQKLSAgICAgICAgICAgICAgICByNjQgPSBhdG9taWNfY21w eGNoZ19fbm9jaGVjaygodWludDY0X3QgKilnMmgoYWRkciksIG82NCwgbjY0KTsKKyAgICAgICAg ICAgICAgICByNjQgPSBxYXRvbWljX2NtcHhjaGdfX25vY2hlY2soKHVpbnQ2NF90ICopZzJoKGFk ZHIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvNjQs IG42NCk7CiAgICAgICAgICAgICAgICAgcmV0ID0gcjY0ICE9IG82NDsKICNlbHNlCiAgICAgICAg ICAgICAgICAgc3RhcnRfZXhjbHVzaXZlKCk7CmRpZmYgLS1naXQgYS9saW51eC11c2VyL3NpZ25h bC5jIGIvbGludXgtdXNlci9zaWduYWwuYwppbmRleCA4Y2Y1MWZmZWNkLi43M2RlOTM0YzY1IDEw MDY0NAotLS0gYS9saW51eC11c2VyL3NpZ25hbC5jCisrKyBiL2xpbnV4LXVzZXIvc2lnbmFsLmMK QEAgLTE5NSw3ICsxOTUsNyBAQCBpbnQgYmxvY2tfc2lnbmFscyh2b2lkKQogICAgIHNpZ2ZpbGxz ZXQoJnNldCk7CiAgICAgc2lncHJvY21hc2soU0lHX1NFVE1BU0ssICZzZXQsIDApOwogCi0gICAg cmV0dXJuIGF0b21pY194Y2hnKCZ0cy0+c2lnbmFsX3BlbmRpbmcsIDEpOworICAgIHJldHVybiBx YXRvbWljX3hjaGcoJnRzLT5zaWduYWxfcGVuZGluZywgMSk7CiB9CiAKIC8qIFdyYXBwZXIgZm9y IHNpZ3Byb2NtYXNrIGZ1bmN0aW9uCkBAIC02ODgsNyArNjg4LDcgQEAgaW50IHF1ZXVlX3NpZ25h bChDUFVBcmNoU3RhdGUgKmVudiwgaW50IHNpZywgaW50IHNpX3R5cGUsCiAgICAgdHMtPnN5bmNf c2lnbmFsLmluZm8gPSAqaW5mbzsKICAgICB0cy0+c3luY19zaWduYWwucGVuZGluZyA9IHNpZzsK ICAgICAvKiBzaWduYWwgdGhhdCBhIG5ldyBzaWduYWwgaXMgcGVuZGluZyAqLwotICAgIGF0b21p Y19zZXQoJnRzLT5zaWduYWxfcGVuZGluZywgMSk7CisgICAgcWF0b21pY19zZXQoJnRzLT5zaWdu YWxfcGVuZGluZywgMSk7CiAgICAgcmV0dXJuIDE7IC8qIGluZGljYXRlcyB0aGF0IHRoZSBzaWdu YWwgd2FzIHF1ZXVlZCAqLwogfQogCkBAIC0xMDA1LDcgKzEwMDUsNyBAQCB2b2lkIHByb2Nlc3Nf cGVuZGluZ19zaWduYWxzKENQVUFyY2hTdGF0ZSAqY3B1X2VudikKICAgICBzaWdzZXRfdCBzZXQ7 CiAgICAgc2lnc2V0X3QgKmJsb2NrZWRfc2V0OwogCi0gICAgd2hpbGUgKGF0b21pY19yZWFkKCZ0 cy0+c2lnbmFsX3BlbmRpbmcpKSB7CisgICAgd2hpbGUgKHFhdG9taWNfcmVhZCgmdHMtPnNpZ25h bF9wZW5kaW5nKSkgewogICAgICAgICAvKiBGSVhNRTogVGhpcyBpcyBub3QgdGhyZWFkc2FmZS4g ICovCiAgICAgICAgIHNpZ2ZpbGxzZXQoJnNldCk7CiAgICAgICAgIHNpZ3Byb2NtYXNrKFNJR19T RVRNQVNLLCAmc2V0LCAwKTsKQEAgLTEwNDksNyArMTA0OSw3IEBAIHZvaWQgcHJvY2Vzc19wZW5k aW5nX3NpZ25hbHMoQ1BVQXJjaFN0YXRlICpjcHVfZW52KQogICAgICAgICAgKiBvZiB1bmJsb2Nr aW5nIG1pZ2h0IGNhdXNlIHVzIHRvIHRha2UgYW5vdGhlciBob3N0IHNpZ25hbCB3aGljaAogICAg ICAgICAgKiB3aWxsIHNldCBzaWduYWxfcGVuZGluZyBhZ2FpbikuCiAgICAgICAgICAqLwotICAg ICAgICBhdG9taWNfc2V0KCZ0cy0+c2lnbmFsX3BlbmRpbmcsIDApOworICAgICAgICBxYXRvbWlj X3NldCgmdHMtPnNpZ25hbF9wZW5kaW5nLCAwKTsKICAgICAgICAgdHMtPmluX3NpZ3N1c3BlbmQg PSAwOwogICAgICAgICBzZXQgPSB0cy0+c2lnbmFsX21hc2s7CiAgICAgICAgIHNpZ2RlbHNldCgm c2V0LCBTSUdTRUdWKTsKZGlmZiAtLWdpdCBhL21pZ3JhdGlvbi9jb2xvLWZhaWxvdmVyLmMgYi9t aWdyYXRpb24vY29sby1mYWlsb3Zlci5jCmluZGV4IGI3MTdlZGM4ZTIuLjQyNDUzNDgxYzQgMTAw NjQ0Ci0tLSBhL21pZ3JhdGlvbi9jb2xvLWZhaWxvdmVyLmMKKysrIGIvbWlncmF0aW9uL2NvbG8t ZmFpbG92ZXIuYwpAQCAtNjMsNyArNjMsNyBAQCBGYWlsb3ZlclN0YXR1cyBmYWlsb3Zlcl9zZXRf c3RhdGUoRmFpbG92ZXJTdGF0dXMgb2xkX3N0YXRlLAogewogICAgIEZhaWxvdmVyU3RhdHVzIG9s ZDsKIAotICAgIG9sZCA9IGF0b21pY19jbXB4Y2hnKCZmYWlsb3Zlcl9zdGF0ZSwgb2xkX3N0YXRl LCBuZXdfc3RhdGUpOworICAgIG9sZCA9IHFhdG9taWNfY21weGNoZygmZmFpbG92ZXJfc3RhdGUs IG9sZF9zdGF0ZSwgbmV3X3N0YXRlKTsKICAgICBpZiAob2xkID09IG9sZF9zdGF0ZSkgewogICAg ICAgICB0cmFjZV9jb2xvX2ZhaWxvdmVyX3NldF9zdGF0ZShGYWlsb3ZlclN0YXR1c19zdHIobmV3 X3N0YXRlKSk7CiAgICAgfQpAQCAtNzIsNyArNzIsNyBAQCBGYWlsb3ZlclN0YXR1cyBmYWlsb3Zl cl9zZXRfc3RhdGUoRmFpbG92ZXJTdGF0dXMgb2xkX3N0YXRlLAogCiBGYWlsb3ZlclN0YXR1cyBm YWlsb3Zlcl9nZXRfc3RhdGUodm9pZCkKIHsKLSAgICByZXR1cm4gYXRvbWljX3JlYWQoJmZhaWxv dmVyX3N0YXRlKTsKKyAgICByZXR1cm4gcWF0b21pY19yZWFkKCZmYWlsb3Zlcl9zdGF0ZSk7CiB9 CiAKIHZvaWQgcW1wX3hfY29sb19sb3N0X2hlYXJ0YmVhdChFcnJvciAqKmVycnApCmRpZmYgLS1n aXQgYS9taWdyYXRpb24vbWlncmF0aW9uLmMgYi9taWdyYXRpb24vbWlncmF0aW9uLmMKaW5kZXgg NThhNTQ1MjQ3MS4uZDlkMWUwYjE5MCAxMDA2NDQKLS0tIGEvbWlncmF0aW9uL21pZ3JhdGlvbi5j CisrKyBiL21pZ3JhdGlvbi9taWdyYXRpb24uYwpAQCAtMTU5NSw3ICsxNTk1LDcgQEAgdm9pZCBx bXBfbWlncmF0ZV9zdGFydF9wb3N0Y29weShFcnJvciAqKmVycnApCiAgICAgICogd2UgZG9uJ3Qg ZXJyb3IgaWYgbWlncmF0aW9uIGhhcyBmaW5pc2hlZCBzaW5jZSB0aGF0IHdvdWxkIGJlIHJhY3kK ICAgICAgKiB3aXRoIGlzc3VpbmcgdGhpcyBjb21tYW5kLgogICAgICAqLwotICAgIGF0b21pY19z ZXQoJnMtPnN0YXJ0X3Bvc3Rjb3B5LCB0cnVlKTsKKyAgICBxYXRvbWljX3NldCgmcy0+c3RhcnRf cG9zdGNvcHksIHRydWUpOwogfQogCiAvKiBzaGFyZWQgbWlncmF0aW9uIGhlbHBlcnMgKi8KQEAg LTE2MDMsNyArMTYwMyw3IEBAIHZvaWQgcW1wX21pZ3JhdGVfc3RhcnRfcG9zdGNvcHkoRXJyb3Ig KiplcnJwKQogdm9pZCBtaWdyYXRlX3NldF9zdGF0ZShpbnQgKnN0YXRlLCBpbnQgb2xkX3N0YXRl LCBpbnQgbmV3X3N0YXRlKQogewogICAgIGFzc2VydChuZXdfc3RhdGUgPCBNSUdSQVRJT05fU1RB VFVTX19NQVgpOwotICAgIGlmIChhdG9taWNfY21weGNoZyhzdGF0ZSwgb2xkX3N0YXRlLCBuZXdf c3RhdGUpID09IG9sZF9zdGF0ZSkgeworICAgIGlmIChxYXRvbWljX2NtcHhjaGcoc3RhdGUsIG9s ZF9zdGF0ZSwgbmV3X3N0YXRlKSA9PSBvbGRfc3RhdGUpIHsKICAgICAgICAgdHJhY2VfbWlncmF0 ZV9zZXRfc3RhdGUoTWlncmF0aW9uU3RhdHVzX3N0cihuZXdfc3RhdGUpKTsKICAgICAgICAgbWln cmF0ZV9nZW5lcmF0ZV9ldmVudChuZXdfc3RhdGUpOwogICAgIH0KQEAgLTE5NTQsNyArMTk1NCw3 IEBAIHZvaWQgcW1wX21pZ3JhdGVfcmVjb3Zlcihjb25zdCBjaGFyICp1cmksIEVycm9yICoqZXJy cCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChhdG9taWNfY21weGNoZygmbWlz LT5wb3N0Y29weV9yZWNvdmVyX3RyaWdnZXJlZCwKKyAgICBpZiAocWF0b21pY19jbXB4Y2hnKCZt aXMtPnBvc3Rjb3B5X3JlY292ZXJfdHJpZ2dlcmVkLAogICAgICAgICAgICAgICAgICAgICAgICBm YWxzZSwgdHJ1ZSkgPT0gdHJ1ZSkgewogICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJNaWdyYXRl IHJlY292ZXJ5IGlzIHRyaWdnZXJlZCBhbHJlYWR5Iik7CiAgICAgICAgIHJldHVybjsKQEAgLTMz MjksNyArMzMyOSw3IEBAIHN0YXRpYyBNaWdJdGVyYXRlU3RhdGUgbWlncmF0aW9uX2l0ZXJhdGlv bl9ydW4oTWlncmF0aW9uU3RhdGUgKnMpCiAgICAgaWYgKHBlbmRpbmdfc2l6ZSAmJiBwZW5kaW5n X3NpemUgPj0gcy0+dGhyZXNob2xkX3NpemUpIHsKICAgICAgICAgLyogU3RpbGwgYSBzaWduaWZp Y2FudCBhbW91bnQgdG8gdHJhbnNmZXIgKi8KICAgICAgICAgaWYgKCFpbl9wb3N0Y29weSAmJiBw ZW5kX3ByZSA8PSBzLT50aHJlc2hvbGRfc2l6ZSAmJgotICAgICAgICAgICAgYXRvbWljX3JlYWQo JnMtPnN0YXJ0X3Bvc3Rjb3B5KSkgeworICAgICAgICAgICAgcWF0b21pY19yZWFkKCZzLT5zdGFy dF9wb3N0Y29weSkpIHsKICAgICAgICAgICAgIGlmIChwb3N0Y29weV9zdGFydChzKSkgewogICAg ICAgICAgICAgICAgIGVycm9yX3JlcG9ydCgiJXM6IHBvc3Rjb3B5IGZhaWxlZCB0byBzdGFydCIs IF9fZnVuY19fKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL21pZ3JhdGlvbi9tdWx0aWZk LmMgYi9taWdyYXRpb24vbXVsdGlmZC5jCmluZGV4IGFjODRhNjE3OTcuLmZkNTczNzhkYjggMTAw NjQ0Ci0tLSBhL21pZ3JhdGlvbi9tdWx0aWZkLmMKKysrIGIvbWlncmF0aW9uL211bHRpZmQuYwpA QCAtNDEwLDcgKzQxMCw3IEBAIHN0YXRpYyBpbnQgbXVsdGlmZF9zZW5kX3BhZ2VzKFFFTVVGaWxl ICpmKQogICAgIE11bHRpRkRQYWdlc190ICpwYWdlcyA9IG11bHRpZmRfc2VuZF9zdGF0ZS0+cGFn ZXM7CiAgICAgdWludDY0X3QgdHJhbnNmZXJyZWQ7CiAKLSAgICBpZiAoYXRvbWljX3JlYWQoJm11 bHRpZmRfc2VuZF9zdGF0ZS0+ZXhpdGluZykpIHsKKyAgICBpZiAocWF0b21pY19yZWFkKCZtdWx0 aWZkX3NlbmRfc3RhdGUtPmV4aXRpbmcpKSB7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAK QEAgLTUwOCw3ICs1MDgsNyBAQCBzdGF0aWMgdm9pZCBtdWx0aWZkX3NlbmRfdGVybWluYXRlX3Ro cmVhZHMoRXJyb3IgKmVycikKICAgICAgKiB0aHJlYWRzIGF0IHRoZSBzYW1lIHRpbWUsIHdlIGNh biBlbmQgY2FsbGluZyB0aGlzIGZ1bmN0aW9uCiAgICAgICogdHdpY2UuCiAgICAgICovCi0gICAg aWYgKGF0b21pY194Y2hnKCZtdWx0aWZkX3NlbmRfc3RhdGUtPmV4aXRpbmcsIDEpKSB7CisgICAg aWYgKHFhdG9taWNfeGNoZygmbXVsdGlmZF9zZW5kX3N0YXRlLT5leGl0aW5nLCAxKSkgewogICAg ICAgICByZXR1cm47CiAgICAgfQogCkBAIC02MzIsNyArNjMyLDcgQEAgc3RhdGljIHZvaWQgKm11 bHRpZmRfc2VuZF90aHJlYWQodm9pZCAqb3BhcXVlKQogICAgIHdoaWxlICh0cnVlKSB7CiAgICAg ICAgIHFlbXVfc2VtX3dhaXQoJnAtPnNlbSk7CiAKLSAgICAgICAgaWYgKGF0b21pY19yZWFkKCZt dWx0aWZkX3NlbmRfc3RhdGUtPmV4aXRpbmcpKSB7CisgICAgICAgIGlmIChxYXRvbWljX3JlYWQo Jm11bHRpZmRfc2VuZF9zdGF0ZS0+ZXhpdGluZykpIHsKICAgICAgICAgICAgIGJyZWFrOwogICAg ICAgICB9CiAgICAgICAgIHFlbXVfbXV0ZXhfbG9jaygmcC0+bXV0ZXgpOwpAQCAtNzYwLDcgKzc2 MCw3IEBAIGludCBtdWx0aWZkX3NhdmVfc2V0dXAoRXJyb3IgKiplcnJwKQogICAgIG11bHRpZmRf c2VuZF9zdGF0ZS0+cGFyYW1zID0gZ19uZXcwKE11bHRpRkRTZW5kUGFyYW1zLCB0aHJlYWRfY291 bnQpOwogICAgIG11bHRpZmRfc2VuZF9zdGF0ZS0+cGFnZXMgPSBtdWx0aWZkX3BhZ2VzX2luaXQo cGFnZV9jb3VudCk7CiAgICAgcWVtdV9zZW1faW5pdCgmbXVsdGlmZF9zZW5kX3N0YXRlLT5jaGFu bmVsc19yZWFkeSwgMCk7Ci0gICAgYXRvbWljX3NldCgmbXVsdGlmZF9zZW5kX3N0YXRlLT5leGl0 aW5nLCAwKTsKKyAgICBxYXRvbWljX3NldCgmbXVsdGlmZF9zZW5kX3N0YXRlLT5leGl0aW5nLCAw KTsKICAgICBtdWx0aWZkX3NlbmRfc3RhdGUtPm9wcyA9IG11bHRpZmRfb3BzW21pZ3JhdGVfbXVs dGlmZF9jb21wcmVzc2lvbigpXTsKIAogICAgIGZvciAoaSA9IDA7IGkgPCB0aHJlYWRfY291bnQ7 IGkrKykgewpAQCAtOTk3LDcgKzk5Nyw3IEBAIGludCBtdWx0aWZkX2xvYWRfc2V0dXAoRXJyb3Ig KiplcnJwKQogICAgIHRocmVhZF9jb3VudCA9IG1pZ3JhdGVfbXVsdGlmZF9jaGFubmVscygpOwog ICAgIG11bHRpZmRfcmVjdl9zdGF0ZSA9IGdfbWFsbG9jMChzaXplb2YoKm11bHRpZmRfcmVjdl9z dGF0ZSkpOwogICAgIG11bHRpZmRfcmVjdl9zdGF0ZS0+cGFyYW1zID0gZ19uZXcwKE11bHRpRkRS ZWN2UGFyYW1zLCB0aHJlYWRfY291bnQpOwotICAgIGF0b21pY19zZXQoJm11bHRpZmRfcmVjdl9z dGF0ZS0+Y291bnQsIDApOworICAgIHFhdG9taWNfc2V0KCZtdWx0aWZkX3JlY3Zfc3RhdGUtPmNv dW50LCAwKTsKICAgICBxZW11X3NlbV9pbml0KCZtdWx0aWZkX3JlY3Zfc3RhdGUtPnNlbV9zeW5j LCAwKTsKICAgICBtdWx0aWZkX3JlY3Zfc3RhdGUtPm9wcyA9IG11bHRpZmRfb3BzW21pZ3JhdGVf bXVsdGlmZF9jb21wcmVzc2lvbigpXTsKIApAQCAtMTAzNyw3ICsxMDM3LDcgQEAgYm9vbCBtdWx0 aWZkX3JlY3ZfYWxsX2NoYW5uZWxzX2NyZWF0ZWQodm9pZCkKICAgICAgICAgcmV0dXJuIHRydWU7 CiAgICAgfQogCi0gICAgcmV0dXJuIHRocmVhZF9jb3VudCA9PSBhdG9taWNfcmVhZCgmbXVsdGlm ZF9yZWN2X3N0YXRlLT5jb3VudCk7CisgICAgcmV0dXJuIHRocmVhZF9jb3VudCA9PSBxYXRvbWlj X3JlYWQoJm11bHRpZmRfcmVjdl9zdGF0ZS0+Y291bnQpOwogfQogCiAvKgpAQCAtMTA1OCw3ICsx MDU4LDcgQEAgYm9vbCBtdWx0aWZkX3JlY3ZfbmV3X2NoYW5uZWwoUUlPQ2hhbm5lbCAqaW9jLCBF cnJvciAqKmVycnApCiAgICAgICAgIGVycm9yX3Byb3BhZ2F0ZV9wcmVwZW5kKGVycnAsIGxvY2Fs X2VyciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZhaWxlZCB0byByZWNlaXZl IHBhY2tldCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiB2aWEgbXVsdGlmZCBj aGFubmVsICVkOiAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdG9taWNfcmVh ZCgmbXVsdGlmZF9yZWN2X3N0YXRlLT5jb3VudCkpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBxYXRvbWljX3JlYWQoJm11bHRpZmRfcmVjdl9zdGF0ZS0+Y291bnQpKTsKICAgICAg ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICB0cmFjZV9tdWx0aWZkX3JlY3ZfbmV3X2NoYW5u ZWwoaWQpOwpAQCAtMTA3OSw3ICsxMDc5LDcgQEAgYm9vbCBtdWx0aWZkX3JlY3ZfbmV3X2NoYW5u ZWwoUUlPQ2hhbm5lbCAqaW9jLCBFcnJvciAqKmVycnApCiAgICAgcC0+cnVubmluZyA9IHRydWU7 CiAgICAgcWVtdV90aHJlYWRfY3JlYXRlKCZwLT50aHJlYWQsIHAtPm5hbWUsIG11bHRpZmRfcmVj dl90aHJlYWQsIHAsCiAgICAgICAgICAgICAgICAgICAgICAgIFFFTVVfVEhSRUFEX0pPSU5BQkxF KTsKLSAgICBhdG9taWNfaW5jKCZtdWx0aWZkX3JlY3Zfc3RhdGUtPmNvdW50KTsKLSAgICByZXR1 cm4gYXRvbWljX3JlYWQoJm11bHRpZmRfcmVjdl9zdGF0ZS0+Y291bnQpID09CisgICAgcWF0b21p Y19pbmMoJm11bHRpZmRfcmVjdl9zdGF0ZS0+Y291bnQpOworICAgIHJldHVybiBxYXRvbWljX3Jl YWQoJm11bHRpZmRfcmVjdl9zdGF0ZS0+Y291bnQpID09CiAgICAgICAgICAgIG1pZ3JhdGVfbXVs dGlmZF9jaGFubmVscygpOwogfQpkaWZmIC0tZ2l0IGEvbWlncmF0aW9uL3Bvc3Rjb3B5LXJhbS5j IGIvbWlncmF0aW9uL3Bvc3Rjb3B5LXJhbS5jCmluZGV4IGJhZjA5NGJhM2EuLjE2NTRmZjExYTUg MTAwNjQ0Ci0tLSBhL21pZ3JhdGlvbi9wb3N0Y29weS1yYW0uYworKysgYi9taWdyYXRpb24vcG9z dGNvcHktcmFtLmMKQEAgLTUzMCw3ICs1MzAsNyBAQCBpbnQgcG9zdGNvcHlfcmFtX2luY29taW5n X2NsZWFudXAoTWlncmF0aW9uSW5jb21pbmdTdGF0ZSAqbWlzKQogICAgICAgICBFcnJvciAqbG9j YWxfZXJyID0gTlVMTDsKIAogICAgICAgICAvKiBMZXQgdGhlIGZhdWx0IHRocmVhZCBxdWl0ICov Ci0gICAgICAgIGF0b21pY19zZXQoJm1pcy0+ZmF1bHRfdGhyZWFkX3F1aXQsIDEpOworICAgICAg ICBxYXRvbWljX3NldCgmbWlzLT5mYXVsdF90aHJlYWRfcXVpdCwgMSk7CiAgICAgICAgIHBvc3Rj b3B5X2ZhdWx0X3RocmVhZF9ub3RpZnkobWlzKTsKICAgICAgICAgdHJhY2VfcG9zdGNvcHlfcmFt X2luY29taW5nX2NsZWFudXBfam9pbigpOwogICAgICAgICBxZW11X3RocmVhZF9qb2luKCZtaXMt PmZhdWx0X3RocmVhZCk7CkBAIC03NDIsMTIgKzc0MiwxMiBAQCBzdGF0aWMgdm9pZCBtYXJrX3Bv c3Rjb3B5X2Jsb2NrdGltZV9iZWdpbih1aW50cHRyX3QgYWRkciwgdWludDMyX3QgcHRpZCwKIAog ICAgIGxvd190aW1lX29mZnNldCA9IGdldF9sb3dfdGltZV9vZmZzZXQoZGMpOwogICAgIGlmIChk Yy0+dmNwdV9hZGRyW2NwdV0gPT0gMCkgewotICAgICAgICBhdG9taWNfaW5jKCZkYy0+c21wX2Nw dXNfZG93bik7CisgICAgICAgIHFhdG9taWNfaW5jKCZkYy0+c21wX2NwdXNfZG93bik7CiAgICAg fQogCi0gICAgYXRvbWljX3hjaGcoJmRjLT5sYXN0X2JlZ2luLCBsb3dfdGltZV9vZmZzZXQpOwot ICAgIGF0b21pY194Y2hnKCZkYy0+cGFnZV9mYXVsdF92Y3B1X3RpbWVbY3B1XSwgbG93X3RpbWVf b2Zmc2V0KTsKLSAgICBhdG9taWNfeGNoZygmZGMtPnZjcHVfYWRkcltjcHVdLCBhZGRyKTsKKyAg ICBxYXRvbWljX3hjaGcoJmRjLT5sYXN0X2JlZ2luLCBsb3dfdGltZV9vZmZzZXQpOworICAgIHFh dG9taWNfeGNoZygmZGMtPnBhZ2VfZmF1bHRfdmNwdV90aW1lW2NwdV0sIGxvd190aW1lX29mZnNl dCk7CisgICAgcWF0b21pY194Y2hnKCZkYy0+dmNwdV9hZGRyW2NwdV0sIGFkZHIpOwogCiAgICAg LyoKICAgICAgKiBjaGVjayBpdCBoZXJlLCBub3QgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZnVu Y3Rpb24sCkBAIC03NTYsOSArNzU2LDkgQEAgc3RhdGljIHZvaWQgbWFya19wb3N0Y29weV9ibG9j a3RpbWVfYmVnaW4odWludHB0cl90IGFkZHIsIHVpbnQzMl90IHB0aWQsCiAgICAgICovCiAgICAg YWxyZWFkeV9yZWNlaXZlZCA9IHJhbWJsb2NrX3JlY3ZfYml0bWFwX3Rlc3QocmIsICh2b2lkICop YWRkcik7CiAgICAgaWYgKGFscmVhZHlfcmVjZWl2ZWQpIHsKLSAgICAgICAgYXRvbWljX3hjaGco JmRjLT52Y3B1X2FkZHJbY3B1XSwgMCk7Ci0gICAgICAgIGF0b21pY194Y2hnKCZkYy0+cGFnZV9m YXVsdF92Y3B1X3RpbWVbY3B1XSwgMCk7Ci0gICAgICAgIGF0b21pY19kZWMoJmRjLT5zbXBfY3B1 c19kb3duKTsKKyAgICAgICAgcWF0b21pY194Y2hnKCZkYy0+dmNwdV9hZGRyW2NwdV0sIDApOwor ICAgICAgICBxYXRvbWljX3hjaGcoJmRjLT5wYWdlX2ZhdWx0X3ZjcHVfdGltZVtjcHVdLCAwKTsK KyAgICAgICAgcWF0b21pY19kZWMoJmRjLT5zbXBfY3B1c19kb3duKTsKICAgICB9CiAgICAgdHJh Y2VfbWFya19wb3N0Y29weV9ibG9ja3RpbWVfYmVnaW4oYWRkciwgZGMsIGRjLT5wYWdlX2ZhdWx0 X3ZjcHVfdGltZVtjcHVdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNwdSwgYWxyZWFkeV9yZWNlaXZlZCk7CkBAIC04MTMsMjggKzgxMywyOCBAQCBzdGF0aWMgdm9p ZCBtYXJrX3Bvc3Rjb3B5X2Jsb2NrdGltZV9lbmQodWludHB0cl90IGFkZHIpCiAgICAgZm9yIChp ID0gMDsgaSA8IHNtcF9jcHVzOyBpKyspIHsKICAgICAgICAgdWludDMyX3QgdmNwdV9ibG9ja3Rp bWUgPSAwOwogCi0gICAgICAgIHJlYWRfdmNwdV90aW1lID0gYXRvbWljX2ZldGNoX2FkZCgmZGMt PnBhZ2VfZmF1bHRfdmNwdV90aW1lW2ldLCAwKTsKLSAgICAgICAgaWYgKGF0b21pY19mZXRjaF9h ZGQoJmRjLT52Y3B1X2FkZHJbaV0sIDApICE9IGFkZHIgfHwKKyAgICAgICAgcmVhZF92Y3B1X3Rp bWUgPSBxYXRvbWljX2ZldGNoX2FkZCgmZGMtPnBhZ2VfZmF1bHRfdmNwdV90aW1lW2ldLCAwKTsK KyAgICAgICAgaWYgKHFhdG9taWNfZmV0Y2hfYWRkKCZkYy0+dmNwdV9hZGRyW2ldLCAwKSAhPSBh ZGRyIHx8CiAgICAgICAgICAgICByZWFkX3ZjcHVfdGltZSA9PSAwKSB7CiAgICAgICAgICAgICBj b250aW51ZTsKICAgICAgICAgfQotICAgICAgICBhdG9taWNfeGNoZygmZGMtPnZjcHVfYWRkcltp XSwgMCk7CisgICAgICAgIHFhdG9taWNfeGNoZygmZGMtPnZjcHVfYWRkcltpXSwgMCk7CiAgICAg ICAgIHZjcHVfYmxvY2t0aW1lID0gbG93X3RpbWVfb2Zmc2V0IC0gcmVhZF92Y3B1X3RpbWU7CiAg ICAgICAgIGFmZmVjdGVkX2NwdSArPSAxOwogICAgICAgICAvKiB3ZSBuZWVkIHRvIGtub3cgaXMg dGhhdCBtYXJrX3Bvc3Rjb3B5X2VuZCB3YXMgZHVlIHRvCiAgICAgICAgICAqIGZhdWx0ZWQgcGFn ZSwgYW5vdGhlciBwb3NzaWJsZSBjYXNlIGl0J3MgcHJlZmV0Y2hlZAogICAgICAgICAgKiBwYWdl IGFuZCBpbiB0aGF0IGNhc2Ugd2Ugc2hvdWxkbid0IGJlIGhlcmUgKi8KICAgICAgICAgaWYgKCF2 Y3B1X3RvdGFsX2Jsb2NrdGltZSAmJgotICAgICAgICAgICAgYXRvbWljX2ZldGNoX2FkZCgmZGMt PnNtcF9jcHVzX2Rvd24sIDApID09IHNtcF9jcHVzKSB7CisgICAgICAgICAgICBxYXRvbWljX2Zl dGNoX2FkZCgmZGMtPnNtcF9jcHVzX2Rvd24sIDApID09IHNtcF9jcHVzKSB7CiAgICAgICAgICAg ICB2Y3B1X3RvdGFsX2Jsb2NrdGltZSA9IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgLyogY29u dGludWUgY3ljbGUsIGR1ZSB0byBvbmUgcGFnZSBjb3VsZCBhZmZlY3Qgc2V2ZXJhbCB2Q1BVcyAq LwogICAgICAgICBkYy0+dmNwdV9ibG9ja3RpbWVbaV0gKz0gdmNwdV9ibG9ja3RpbWU7CiAgICAg fQogCi0gICAgYXRvbWljX3N1YigmZGMtPnNtcF9jcHVzX2Rvd24sIGFmZmVjdGVkX2NwdSk7Cisg ICAgcWF0b21pY19zdWIoJmRjLT5zbXBfY3B1c19kb3duLCBhZmZlY3RlZF9jcHUpOwogICAgIGlm ICh2Y3B1X3RvdGFsX2Jsb2NrdGltZSkgewotICAgICAgICBkYy0+dG90YWxfYmxvY2t0aW1lICs9 IGxvd190aW1lX29mZnNldCAtIGF0b21pY19mZXRjaF9hZGQoCisgICAgICAgIGRjLT50b3RhbF9i bG9ja3RpbWUgKz0gbG93X3RpbWVfb2Zmc2V0IC0gcWF0b21pY19mZXRjaF9hZGQoCiAgICAgICAg ICAgICAgICAgJmRjLT5sYXN0X2JlZ2luLCAwKTsKICAgICB9CiAgICAgdHJhY2VfbWFya19wb3N0 Y29weV9ibG9ja3RpbWVfZW5kKGFkZHIsIGRjLCBkYy0+dG90YWxfYmxvY2t0aW1lLApAQCAtOTI4 LDcgKzkyOCw3IEBAIHN0YXRpYyB2b2lkICpwb3N0Y29weV9yYW1fZmF1bHRfdGhyZWFkKHZvaWQg Km9wYXF1ZSkKICAgICAgICAgICAgICAgICBlcnJvcl9yZXBvcnQoIiVzOiByZWFkKCkgZmFpbGVk IiwgX19mdW5jX18pOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoYXRvbWljX3Jl YWQoJm1pcy0+ZmF1bHRfdGhyZWFkX3F1aXQpKSB7CisgICAgICAgICAgICBpZiAocWF0b21pY19y ZWFkKCZtaXMtPmZhdWx0X3RocmVhZF9xdWl0KSkgewogICAgICAgICAgICAgICAgIHRyYWNlX3Bv c3Rjb3B5X3JhbV9mYXVsdF90aHJlYWRfcXVpdCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog ICAgICAgICAgICAgfQpAQCAtMTQxMCwxMyArMTQxMCwxMyBAQCBzdGF0aWMgUG9zdGNvcHlTdGF0 ZSBpbmNvbWluZ19wb3N0Y29weV9zdGF0ZTsKIAogUG9zdGNvcHlTdGF0ZSAgcG9zdGNvcHlfc3Rh dGVfZ2V0KHZvaWQpCiB7Ci0gICAgcmV0dXJuIGF0b21pY19tYl9yZWFkKCZpbmNvbWluZ19wb3N0 Y29weV9zdGF0ZSk7CisgICAgcmV0dXJuIHFhdG9taWNfbWJfcmVhZCgmaW5jb21pbmdfcG9zdGNv cHlfc3RhdGUpOwogfQogCiAvKiBTZXQgdGhlIHN0YXRlIGFuZCByZXR1cm4gdGhlIG9sZCBzdGF0 ZSAqLwogUG9zdGNvcHlTdGF0ZSBwb3N0Y29weV9zdGF0ZV9zZXQoUG9zdGNvcHlTdGF0ZSBuZXdf c3RhdGUpCiB7Ci0gICAgcmV0dXJuIGF0b21pY194Y2hnKCZpbmNvbWluZ19wb3N0Y29weV9zdGF0 ZSwgbmV3X3N0YXRlKTsKKyAgICByZXR1cm4gcWF0b21pY194Y2hnKCZpbmNvbWluZ19wb3N0Y29w eV9zdGF0ZSwgbmV3X3N0YXRlKTsKIH0KIAogLyogUmVnaXN0ZXIgYSBoYW5kbGVyIGZvciBleHRl cm5hbCBzaGFyZWQgbWVtb3J5IHBvc3Rjb3B5CmRpZmYgLS1naXQgYS9taWdyYXRpb24vcmRtYS5j IGIvbWlncmF0aW9uL3JkbWEuYwppbmRleCAzYmQzMGQ0NmFkLi4wMzQwODQxZmFkIDEwMDY0NAot LS0gYS9taWdyYXRpb24vcmRtYS5jCisrKyBiL21pZ3JhdGlvbi9yZG1hLmMKQEAgLTI2NzgsNyAr MjY3OCw3IEBAIHN0YXRpYyBzc2l6ZV90IHFpb19jaGFubmVsX3JkbWFfd3JpdGV2KFFJT0NoYW5u ZWwgKmlvYywKICAgICBzaXplX3QgbGVuID0gMDsKIAogICAgIFJDVV9SRUFEX0xPQ0tfR1VBUkQo KTsKLSAgICByZG1hID0gYXRvbWljX3JjdV9yZWFkKCZyaW9jLT5yZG1hb3V0KTsKKyAgICByZG1h ID0gcWF0b21pY19yY3VfcmVhZCgmcmlvYy0+cmRtYW91dCk7CiAKICAgICBpZiAoIXJkbWEpIHsK ICAgICAgICAgcmV0dXJuIC1FSU87CkBAIC0yNzYwLDcgKzI3NjAsNyBAQCBzdGF0aWMgc3NpemVf dCBxaW9fY2hhbm5lbF9yZG1hX3JlYWR2KFFJT0NoYW5uZWwgKmlvYywKICAgICBzaXplX3QgZG9u ZSA9IDA7CiAKICAgICBSQ1VfUkVBRF9MT0NLX0dVQVJEKCk7Ci0gICAgcmRtYSA9IGF0b21pY19y Y3VfcmVhZCgmcmlvYy0+cmRtYWluKTsKKyAgICByZG1hID0gcWF0b21pY19yY3VfcmVhZCgmcmlv Yy0+cmRtYWluKTsKIAogICAgIGlmICghcmRtYSkgewogICAgICAgICByZXR1cm4gLUVJTzsKQEAg LTI4NzUsOSArMjg3NSw5IEBAIHFpb19jaGFubmVsX3JkbWFfc291cmNlX3ByZXBhcmUoR1NvdXJj ZSAqc291cmNlLAogCiAgICAgUkNVX1JFQURfTE9DS19HVUFSRCgpOwogICAgIGlmIChyc291cmNl LT5jb25kaXRpb24gPT0gR19JT19JTikgewotICAgICAgICByZG1hID0gYXRvbWljX3JjdV9yZWFk KCZyc291cmNlLT5yaW9jLT5yZG1haW4pOworICAgICAgICByZG1hID0gcWF0b21pY19yY3VfcmVh ZCgmcnNvdXJjZS0+cmlvYy0+cmRtYWluKTsKICAgICB9IGVsc2UgewotICAgICAgICByZG1hID0g YXRvbWljX3JjdV9yZWFkKCZyc291cmNlLT5yaW9jLT5yZG1hb3V0KTsKKyAgICAgICAgcmRtYSA9 IHFhdG9taWNfcmN1X3JlYWQoJnJzb3VyY2UtPnJpb2MtPnJkbWFvdXQpOwogICAgIH0KIAogICAg IGlmICghcmRtYSkgewpAQCAtMjkwMiw5ICsyOTAyLDkgQEAgcWlvX2NoYW5uZWxfcmRtYV9zb3Vy Y2VfY2hlY2soR1NvdXJjZSAqc291cmNlKQogCiAgICAgUkNVX1JFQURfTE9DS19HVUFSRCgpOwog ICAgIGlmIChyc291cmNlLT5jb25kaXRpb24gPT0gR19JT19JTikgewotICAgICAgICByZG1hID0g YXRvbWljX3JjdV9yZWFkKCZyc291cmNlLT5yaW9jLT5yZG1haW4pOworICAgICAgICByZG1hID0g cWF0b21pY19yY3VfcmVhZCgmcnNvdXJjZS0+cmlvYy0+cmRtYWluKTsKICAgICB9IGVsc2Ugewot ICAgICAgICByZG1hID0gYXRvbWljX3JjdV9yZWFkKCZyc291cmNlLT5yaW9jLT5yZG1hb3V0KTsK KyAgICAgICAgcmRtYSA9IHFhdG9taWNfcmN1X3JlYWQoJnJzb3VyY2UtPnJpb2MtPnJkbWFvdXQp OwogICAgIH0KIAogICAgIGlmICghcmRtYSkgewpAQCAtMjkzMiw5ICsyOTMyLDkgQEAgcWlvX2No YW5uZWxfcmRtYV9zb3VyY2VfZGlzcGF0Y2goR1NvdXJjZSAqc291cmNlLAogCiAgICAgUkNVX1JF QURfTE9DS19HVUFSRCgpOwogICAgIGlmIChyc291cmNlLT5jb25kaXRpb24gPT0gR19JT19JTikg ewotICAgICAgICByZG1hID0gYXRvbWljX3JjdV9yZWFkKCZyc291cmNlLT5yaW9jLT5yZG1haW4p OworICAgICAgICByZG1hID0gcWF0b21pY19yY3VfcmVhZCgmcnNvdXJjZS0+cmlvYy0+cmRtYWlu KTsKICAgICB9IGVsc2UgewotICAgICAgICByZG1hID0gYXRvbWljX3JjdV9yZWFkKCZyc291cmNl LT5yaW9jLT5yZG1hb3V0KTsKKyAgICAgICAgcmRtYSA9IHFhdG9taWNfcmN1X3JlYWQoJnJzb3Vy Y2UtPnJpb2MtPnJkbWFvdXQpOwogICAgIH0KIAogICAgIGlmICghcmRtYSkgewpAQCAtMzAzNSwx MiArMzAzNSwxMiBAQCBzdGF0aWMgaW50IHFpb19jaGFubmVsX3JkbWFfY2xvc2UoUUlPQ2hhbm5l bCAqaW9jLAogCiAgICAgcmRtYWluID0gcmlvYy0+cmRtYWluOwogICAgIGlmIChyZG1haW4pIHsK LSAgICAgICAgYXRvbWljX3JjdV9zZXQoJnJpb2MtPnJkbWFpbiwgTlVMTCk7CisgICAgICAgIHFh dG9taWNfcmN1X3NldCgmcmlvYy0+cmRtYWluLCBOVUxMKTsKICAgICB9CiAKICAgICByZG1hb3V0 ID0gcmlvYy0+cmRtYW91dDsKICAgICBpZiAocmRtYW91dCkgewotICAgICAgICBhdG9taWNfcmN1 X3NldCgmcmlvYy0+cmRtYW91dCwgTlVMTCk7CisgICAgICAgIHFhdG9taWNfcmN1X3NldCgmcmlv Yy0+cmRtYW91dCwgTlVMTCk7CiAgICAgfQogCiAgICAgcmN1LT5yZG1haW4gPSByZG1haW47CkBA IC0zMDYwLDggKzMwNjAsOCBAQCBxaW9fY2hhbm5lbF9yZG1hX3NodXRkb3duKFFJT0NoYW5uZWwg KmlvYywKIAogICAgIFJDVV9SRUFEX0xPQ0tfR1VBUkQoKTsKIAotICAgIHJkbWFpbiA9IGF0b21p Y19yY3VfcmVhZCgmcmlvYy0+cmRtYWluKTsKLSAgICByZG1hb3V0ID0gYXRvbWljX3JjdV9yZWFk KCZyaW9jLT5yZG1haW4pOworICAgIHJkbWFpbiA9IHFhdG9taWNfcmN1X3JlYWQoJnJpb2MtPnJk bWFpbik7CisgICAgcmRtYW91dCA9IHFhdG9taWNfcmN1X3JlYWQoJnJpb2MtPnJkbWFpbik7CiAK ICAgICBzd2l0Y2ggKGhvdykgewogICAgIGNhc2UgUUlPX0NIQU5ORUxfU0hVVERPV05fUkVBRDoK QEAgLTMxMzEsNyArMzEzMSw3IEBAIHN0YXRpYyBzaXplX3QgcWVtdV9yZG1hX3NhdmVfcGFnZShR RU1VRmlsZSAqZiwgdm9pZCAqb3BhcXVlLAogICAgIGludCByZXQ7CiAKICAgICBSQ1VfUkVBRF9M T0NLX0dVQVJEKCk7Ci0gICAgcmRtYSA9IGF0b21pY19yY3VfcmVhZCgmcmlvYy0+cmRtYW91dCk7 CisgICAgcmRtYSA9IHFhdG9taWNfcmN1X3JlYWQoJnJpb2MtPnJkbWFvdXQpOwogCiAgICAgaWYg KCFyZG1hKSB7CiAgICAgICAgIHJldHVybiAtRUlPOwpAQCAtMzQ1MSw3ICszNDUxLDcgQEAgc3Rh dGljIGludCBxZW11X3JkbWFfcmVnaXN0cmF0aW9uX2hhbmRsZShRRU1VRmlsZSAqZiwgdm9pZCAq b3BhcXVlKQogICAgIGludCBpID0gMDsKIAogICAgIFJDVV9SRUFEX0xPQ0tfR1VBUkQoKTsKLSAg ICByZG1hID0gYXRvbWljX3JjdV9yZWFkKCZyaW9jLT5yZG1haW4pOworICAgIHJkbWEgPSBxYXRv bWljX3JjdV9yZWFkKCZyaW9jLT5yZG1haW4pOwogCiAgICAgaWYgKCFyZG1hKSB7CiAgICAgICAg IHJldHVybiAtRUlPOwpAQCAtMzcxNCw3ICszNzE0LDcgQEAgcmRtYV9ibG9ja19ub3RpZmljYXRp b25faGFuZGxlKFFJT0NoYW5uZWxSRE1BICpyaW9jLCBjb25zdCBjaGFyICpuYW1lKQogICAgIGlu dCBmb3VuZCA9IC0xOwogCiAgICAgUkNVX1JFQURfTE9DS19HVUFSRCgpOwotICAgIHJkbWEgPSBh dG9taWNfcmN1X3JlYWQoJnJpb2MtPnJkbWFpbik7CisgICAgcmRtYSA9IHFhdG9taWNfcmN1X3Jl YWQoJnJpb2MtPnJkbWFpbik7CiAKICAgICBpZiAoIXJkbWEpIHsKICAgICAgICAgcmV0dXJuIC1F SU87CkBAIC0zNzYyLDcgKzM3NjIsNyBAQCBzdGF0aWMgaW50IHFlbXVfcmRtYV9yZWdpc3RyYXRp b25fc3RhcnQoUUVNVUZpbGUgKmYsIHZvaWQgKm9wYXF1ZSwKICAgICBSRE1BQ29udGV4dCAqcmRt YTsKIAogICAgIFJDVV9SRUFEX0xPQ0tfR1VBUkQoKTsKLSAgICByZG1hID0gYXRvbWljX3JjdV9y ZWFkKCZyaW9jLT5yZG1hb3V0KTsKKyAgICByZG1hID0gcWF0b21pY19yY3VfcmVhZCgmcmlvYy0+ cmRtYW91dCk7CiAgICAgaWYgKCFyZG1hKSB7CiAgICAgICAgIHJldHVybiAtRUlPOwogICAgIH0K QEAgLTM3OTMsNyArMzc5Myw3IEBAIHN0YXRpYyBpbnQgcWVtdV9yZG1hX3JlZ2lzdHJhdGlvbl9z dG9wKFFFTVVGaWxlICpmLCB2b2lkICpvcGFxdWUsCiAgICAgaW50IHJldCA9IDA7CiAKICAgICBS Q1VfUkVBRF9MT0NLX0dVQVJEKCk7Ci0gICAgcmRtYSA9IGF0b21pY19yY3VfcmVhZCgmcmlvYy0+ cmRtYW91dCk7CisgICAgcmRtYSA9IHFhdG9taWNfcmN1X3JlYWQoJnJpb2MtPnJkbWFvdXQpOwog ICAgIGlmICghcmRtYSkgewogICAgICAgICByZXR1cm4gLUVJTzsKICAgICB9CmRpZmYgLS1naXQg YS9tb25pdG9yL2htcC5jIGIvbW9uaXRvci9obXAuYwppbmRleCBkNTk4ZGQwMmJiLi40ZWNkZWZk NzA1IDEwMDY0NAotLS0gYS9tb25pdG9yL2htcC5jCisrKyBiL21vbml0b3IvaG1wLmMKQEAgLTEz MzcsMTkgKzEzMzcsMTkgQEAgc3RhdGljIHZvaWQgbW9uaXRvcl9ldmVudCh2b2lkICpvcGFxdWUs IFFFTVVDaHJFdmVudCBldmVudCkKICAgICAgICAgICAgIG1vbml0b3JfcmVzdW1lKG1vbik7CiAg ICAgICAgICAgICBtb25pdG9yX2ZsdXNoKG1vbik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg ICAgICBhdG9taWNfbWJfc2V0KCZtb24tPnN1c3BlbmRfY250LCAwKTsKKyAgICAgICAgICAgIHFh dG9taWNfbWJfc2V0KCZtb24tPnN1c3BlbmRfY250LCAwKTsKICAgICAgICAgfQogICAgICAgICBi cmVhazsKIAogICAgIGNhc2UgQ0hSX0VWRU5UX01VWF9PVVQ6CiAgICAgICAgIGlmIChtb24tPnJl c2V0X3NlZW4pIHsKLSAgICAgICAgICAgIGlmIChhdG9taWNfbWJfcmVhZCgmbW9uLT5zdXNwZW5k X2NudCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKHFhdG9taWNfbWJfcmVhZCgmbW9uLT5zdXNw ZW5kX2NudCkgPT0gMCkgewogICAgICAgICAgICAgICAgIG1vbml0b3JfcHJpbnRmKG1vbiwgIlxu Iik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBtb25pdG9yX2ZsdXNoKG1vbik7CiAgICAg ICAgICAgICBtb25pdG9yX3N1c3BlbmQobW9uKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg ICAgIGF0b21pY19pbmMoJm1vbi0+c3VzcGVuZF9jbnQpOworICAgICAgICAgICAgcWF0b21pY19p bmMoJm1vbi0+c3VzcGVuZF9jbnQpOwogICAgICAgICB9CiAgICAgICAgIHFlbXVfbXV0ZXhfbG9j aygmbW9uLT5tb25fbG9jayk7CiAgICAgICAgIG1vbi0+bXV4X291dCA9IDE7CmRpZmYgLS1naXQg YS9tb25pdG9yL21pc2MuYyBiL21vbml0b3IvbWlzYy5jCmluZGV4IDBiMWI5YjE5NmMuLjI2MmYy YmQ5NTEgMTAwNjQ0Ci0tLSBhL21vbml0b3IvbWlzYy5jCisrKyBiL21vbml0b3IvbWlzYy5jCkBA IC03NTEsNyArNzUxLDcgQEAgc3RhdGljIHVpbnQ2NF90IHZ0b3Aodm9pZCAqcHRyLCBFcnJvciAq KmVycnApCiAgICAgfQogCiAgICAgLyogRm9yY2UgY29weS1vbi13cml0ZSBpZiBuZWNlc3Nhcnku ICAqLwotICAgIGF0b21pY19hZGQoKHVpbnQ4X3QgKilwdHIsIDApOworICAgIHFhdG9taWNfYWRk KCh1aW50OF90ICopcHRyLCAwKTsKIAogICAgIGlmIChwcmVhZChmZCwgJnBpbmZvLCBzaXplb2Yo cGluZm8pLCBvZmZzZXQpICE9IHNpemVvZihwaW5mbykpIHsKICAgICAgICAgZXJyb3Jfc2V0Z19l cnJubyhlcnJwLCBlcnJubywgIkNhbm5vdCByZWFkIHBhZ2VtYXAiKTsKZGlmZiAtLWdpdCBhL21v bml0b3IvbW9uaXRvci5jIGIvbW9uaXRvci9tb25pdG9yLmMKaW5kZXggYjM4NWEzZDU2OS4uMGYz Mjg5MmFkNCAxMDA2NDQKLS0tIGEvbW9uaXRvci9tb25pdG9yLmMKKysrIGIvbW9uaXRvci9tb25p dG9yLmMKQEAgLTQ0OSw3ICs0NDksNyBAQCBpbnQgbW9uaXRvcl9zdXNwZW5kKE1vbml0b3IgKm1v bikKICAgICAgICAgcmV0dXJuIC1FTk9UVFk7CiAgICAgfQogCi0gICAgYXRvbWljX2luYygmbW9u LT5zdXNwZW5kX2NudCk7CisgICAgcWF0b21pY19pbmMoJm1vbi0+c3VzcGVuZF9jbnQpOwogCiAg ICAgaWYgKG1vbi0+dXNlX2lvX3RocmVhZCkgewogICAgICAgICAvKgpAQCAtNDc2LDcgKzQ3Niw3 IEBAIHZvaWQgbW9uaXRvcl9yZXN1bWUoTW9uaXRvciAqbW9uKQogICAgICAgICByZXR1cm47CiAg ICAgfQogCi0gICAgaWYgKGF0b21pY19kZWNfZmV0Y2goJm1vbi0+c3VzcGVuZF9jbnQpID09IDAp IHsKKyAgICBpZiAocWF0b21pY19kZWNfZmV0Y2goJm1vbi0+c3VzcGVuZF9jbnQpID09IDApIHsK ICAgICAgICAgQWlvQ29udGV4dCAqY3R4OwogCiAgICAgICAgIGlmIChtb24tPnVzZV9pb190aHJl YWQpIHsKQEAgLTUwMSw3ICs1MDEsNyBAQCBpbnQgbW9uaXRvcl9jYW5fcmVhZCh2b2lkICpvcGFx dWUpCiB7CiAgICAgTW9uaXRvciAqbW9uID0gb3BhcXVlOwogCi0gICAgcmV0dXJuICFhdG9taWNf bWJfcmVhZCgmbW9uLT5zdXNwZW5kX2NudCk7CisgICAgcmV0dXJuICFxYXRvbWljX21iX3JlYWQo Jm1vbi0+c3VzcGVuZF9jbnQpOwogfQogCiB2b2lkIG1vbml0b3JfbGlzdF9hcHBlbmQoTW9uaXRv ciAqbW9uKQpkaWZmIC0tZ2l0IGEvcWVtdS1uYmQuYyBiL3FlbXUtbmJkLmMKaW5kZXggMzM0NzZh MTAwMC4uZTM5ZDNiMjNjMSAxMDA2NDQKLS0tIGEvcWVtdS1uYmQuYworKysgYi9xZW11LW5iZC5j CkBAIC0xNTgsNyArMTU4LDcgQEAgUUVNVV9DT1BZUklHSFQgIlxuIgogI2lmIEhBVkVfTkJEX0RF VklDRQogc3RhdGljIHZvaWQgdGVybXNpZ19oYW5kbGVyKGludCBzaWdudW0pCiB7Ci0gICAgYXRv bWljX2NtcHhjaGcoJnN0YXRlLCBSVU5OSU5HLCBURVJNSU5BVEUpOworICAgIHFhdG9taWNfY21w eGNoZygmc3RhdGUsIFJVTk5JTkcsIFRFUk1JTkFURSk7CiAgICAgcWVtdV9ub3RpZnlfZXZlbnQo KTsKIH0KICNlbmRpZiAvKiBIQVZFX05CRF9ERVZJQ0UgKi8KZGlmZiAtLWdpdCBhL3FnYS9jb21t YW5kcy5jIGIvcWdhL2NvbW1hbmRzLmMKaW5kZXggZDNmZWM4MDdjMS4uM2RjZDVmYmU1YyAxMDA2 NDQKLS0tIGEvcWdhL2NvbW1hbmRzLmMKKysrIGIvcWdhL2NvbW1hbmRzLmMKQEAgLTE2NiwxMyAr MTY2LDEzIEBAIEd1ZXN0RXhlY1N0YXR1cyAqcW1wX2d1ZXN0X2V4ZWNfc3RhdHVzKGludDY0X3Qg cGlkLCBFcnJvciAqKmVycnApCiAKICAgICBnZXMgPSBnX25ldzAoR3Vlc3RFeGVjU3RhdHVzLCAx KTsKIAotICAgIGJvb2wgZmluaXNoZWQgPSBhdG9taWNfbWJfcmVhZCgmZ2VpLT5maW5pc2hlZCk7 CisgICAgYm9vbCBmaW5pc2hlZCA9IHFhdG9taWNfbWJfcmVhZCgmZ2VpLT5maW5pc2hlZCk7CiAK ICAgICAvKiBuZWVkIHRvIHdhaXQgdGlsbCBvdXRwdXQgY2hhbm5lbHMgYXJlIGNsb3NlZAogICAg ICAqIHRvIGJlIHN1cmUgd2UgY2FwdHVyZWQgYWxsIG91dHB1dCBhdCB0aGlzIHBvaW50ICovCiAg ICAgaWYgKGdlaS0+aGFzX291dHB1dCkgewotICAgICAgICBmaW5pc2hlZCA9IGZpbmlzaGVkICYm IGF0b21pY19tYl9yZWFkKCZnZWktPm91dC5jbG9zZWQpOwotICAgICAgICBmaW5pc2hlZCA9IGZp bmlzaGVkICYmIGF0b21pY19tYl9yZWFkKCZnZWktPmVyci5jbG9zZWQpOworICAgICAgICBmaW5p c2hlZCA9IGZpbmlzaGVkICYmIHFhdG9taWNfbWJfcmVhZCgmZ2VpLT5vdXQuY2xvc2VkKTsKKyAg ICAgICAgZmluaXNoZWQgPSBmaW5pc2hlZCAmJiBxYXRvbWljX21iX3JlYWQoJmdlaS0+ZXJyLmNs b3NlZCk7CiAgICAgfQogCiAgICAgZ2VzLT5leGl0ZWQgPSBmaW5pc2hlZDsKQEAgLTI3NCw3ICsy NzQsNyBAQCBzdGF0aWMgdm9pZCBndWVzdF9leGVjX2NoaWxkX3dhdGNoKEdQaWQgcGlkLCBnaW50 IHN0YXR1cywgZ3BvaW50ZXIgZGF0YSkKICAgICAgICAgICAgIChpbnQzMl90KWdwaWRfdG9faW50 NjQocGlkKSwgKHVpbnQzMl90KXN0YXR1cyk7CiAKICAgICBnZWktPnN0YXR1cyA9IHN0YXR1czsK LSAgICBhdG9taWNfbWJfc2V0KCZnZWktPmZpbmlzaGVkLCB0cnVlKTsKKyAgICBxYXRvbWljX21i X3NldCgmZ2VpLT5maW5pc2hlZCwgdHJ1ZSk7CiAKICAgICBnX3NwYXduX2Nsb3NlX3BpZChwaWQp OwogfQpAQCAtMzMwLDcgKzMzMCw3IEBAIHN0YXRpYyBnYm9vbGVhbiBndWVzdF9leGVjX2lucHV0 X3dhdGNoKEdJT0NoYW5uZWwgKmNoLAogZG9uZToKICAgICBnX2lvX2NoYW5uZWxfc2h1dGRvd24o Y2gsIHRydWUsIE5VTEwpOwogICAgIGdfaW9fY2hhbm5lbF91bnJlZihjaCk7Ci0gICAgYXRvbWlj X21iX3NldCgmcC0+Y2xvc2VkLCB0cnVlKTsKKyAgICBxYXRvbWljX21iX3NldCgmcC0+Y2xvc2Vk LCB0cnVlKTsKICAgICBnX2ZyZWUocC0+ZGF0YSk7CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC0z ODQsNyArMzg0LDcgQEAgc3RhdGljIGdib29sZWFuIGd1ZXN0X2V4ZWNfb3V0cHV0X3dhdGNoKEdJ T0NoYW5uZWwgKmNoLAogY2xvc2U6CiAgICAgZ19pb19jaGFubmVsX3NodXRkb3duKGNoLCB0cnVl LCBOVUxMKTsKICAgICBnX2lvX2NoYW5uZWxfdW5yZWYoY2gpOwotICAgIGF0b21pY19tYl9zZXQo JnAtPmNsb3NlZCwgdHJ1ZSk7CisgICAgcWF0b21pY19tYl9zZXQoJnAtPmNsb3NlZCwgdHJ1ZSk7 CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9xb20vb2JqZWN0LmMgYi9xb20v b2JqZWN0LmMKaW5kZXggYTkxYTZhNTE1YS4uMTE5Njk3MDYzNSAxMDA2NDQKLS0tIGEvcW9tL29i amVjdC5jCisrKyBiL3FvbS9vYmplY3QuYwpAQCAtODY3LDcgKzg2Nyw3IEBAIE9iamVjdCAqb2Jq ZWN0X2R5bmFtaWNfY2FzdF9hc3NlcnQoT2JqZWN0ICpvYmosIGNvbnN0IGNoYXIgKnR5cGVuYW1l LAogICAgIE9iamVjdCAqaW5zdDsKIAogICAgIGZvciAoaSA9IDA7IG9iaiAmJiBpIDwgT0JKRUNU X0NMQVNTX0NBU1RfQ0FDSEU7IGkrKykgewotICAgICAgICBpZiAoYXRvbWljX3JlYWQoJm9iai0+ Y2xhc3MtPm9iamVjdF9jYXN0X2NhY2hlW2ldKSA9PSB0eXBlbmFtZSkgeworICAgICAgICBpZiAo cWF0b21pY19yZWFkKCZvYmotPmNsYXNzLT5vYmplY3RfY2FzdF9jYWNoZVtpXSkgPT0gdHlwZW5h bWUpIHsKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9CiAgICAgfQpAQCAtODg0LDEw ICs4ODQsMTAgQEAgT2JqZWN0ICpvYmplY3RfZHluYW1pY19jYXN0X2Fzc2VydChPYmplY3QgKm9i aiwgY29uc3QgY2hhciAqdHlwZW5hbWUsCiAKICAgICBpZiAob2JqICYmIG9iaiA9PSBpbnN0KSB7 CiAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBPQkpFQ1RfQ0xBU1NfQ0FTVF9DQUNIRTsgaSsrKSB7 Ci0gICAgICAgICAgICBhdG9taWNfc2V0KCZvYmotPmNsYXNzLT5vYmplY3RfY2FzdF9jYWNoZVtp IC0gMV0sCi0gICAgICAgICAgICAgICAgICAgICAgIGF0b21pY19yZWFkKCZvYmotPmNsYXNzLT5v YmplY3RfY2FzdF9jYWNoZVtpXSkpOworICAgICAgICAgICAgcWF0b21pY19zZXQoJm9iai0+Y2xh c3MtPm9iamVjdF9jYXN0X2NhY2hlW2kgLSAxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgcWF0 b21pY19yZWFkKCZvYmotPmNsYXNzLT5vYmplY3RfY2FzdF9jYWNoZVtpXSkpOwogICAgICAgICB9 Ci0gICAgICAgIGF0b21pY19zZXQoJm9iai0+Y2xhc3MtPm9iamVjdF9jYXN0X2NhY2hlW2kgLSAx XSwgdHlwZW5hbWUpOworICAgICAgICBxYXRvbWljX3NldCgmb2JqLT5jbGFzcy0+b2JqZWN0X2Nh c3RfY2FjaGVbaSAtIDFdLCB0eXBlbmFtZSk7CiAgICAgfQogCiBvdXQ6CkBAIC05NTcsNyArOTU3 LDcgQEAgT2JqZWN0Q2xhc3MgKm9iamVjdF9jbGFzc19keW5hbWljX2Nhc3RfYXNzZXJ0KE9iamVj dENsYXNzICpjbGFzcywKICAgICBpbnQgaTsKIAogICAgIGZvciAoaSA9IDA7IGNsYXNzICYmIGkg PCBPQkpFQ1RfQ0xBU1NfQ0FTVF9DQUNIRTsgaSsrKSB7Ci0gICAgICAgIGlmIChhdG9taWNfcmVh ZCgmY2xhc3MtPmNsYXNzX2Nhc3RfY2FjaGVbaV0pID09IHR5cGVuYW1lKSB7CisgICAgICAgIGlm IChxYXRvbWljX3JlYWQoJmNsYXNzLT5jbGFzc19jYXN0X2NhY2hlW2ldKSA9PSB0eXBlbmFtZSkg ewogICAgICAgICAgICAgcmV0ID0gY2xhc3M7CiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAg ICAgfQpAQCAtOTc4LDEwICs5NzgsMTAgQEAgT2JqZWN0Q2xhc3MgKm9iamVjdF9jbGFzc19keW5h bWljX2Nhc3RfYXNzZXJ0KE9iamVjdENsYXNzICpjbGFzcywKICNpZmRlZiBDT05GSUdfUU9NX0NB U1RfREVCVUcKICAgICBpZiAoY2xhc3MgJiYgcmV0ID09IGNsYXNzKSB7CiAgICAgICAgIGZvciAo aSA9IDE7IGkgPCBPQkpFQ1RfQ0xBU1NfQ0FTVF9DQUNIRTsgaSsrKSB7Ci0gICAgICAgICAgICBh dG9taWNfc2V0KCZjbGFzcy0+Y2xhc3NfY2FzdF9jYWNoZVtpIC0gMV0sCi0gICAgICAgICAgICAg ICAgICAgICAgIGF0b21pY19yZWFkKCZjbGFzcy0+Y2xhc3NfY2FzdF9jYWNoZVtpXSkpOworICAg ICAgICAgICAgcWF0b21pY19zZXQoJmNsYXNzLT5jbGFzc19jYXN0X2NhY2hlW2kgLSAxXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgcWF0b21pY19yZWFkKCZjbGFzcy0+Y2xhc3NfY2FzdF9jYWNo ZVtpXSkpOwogICAgICAgICB9Ci0gICAgICAgIGF0b21pY19zZXQoJmNsYXNzLT5jbGFzc19jYXN0 X2NhY2hlW2kgLSAxXSwgdHlwZW5hbWUpOworICAgICAgICBxYXRvbWljX3NldCgmY2xhc3MtPmNs YXNzX2Nhc3RfY2FjaGVbaSAtIDFdLCB0eXBlbmFtZSk7CiAgICAgfQogb3V0OgogI2VuZGlmCkBA IC0xMTY2LDcgKzExNjYsNyBAQCBPYmplY3QgKm9iamVjdF9yZWYodm9pZCAqb2JqcHRyKQogICAg IGlmICghb2JqKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBhdG9taWNfaW5j KCZvYmotPnJlZik7CisgICAgcWF0b21pY19pbmMoJm9iai0+cmVmKTsKICAgICByZXR1cm4gb2Jq OwogfQogCkBAIC0xMTc5LDcgKzExNzksNyBAQCB2b2lkIG9iamVjdF91bnJlZih2b2lkICpvYmpw dHIpCiAgICAgZ19hc3NlcnQob2JqLT5yZWYgPiAwKTsKIAogICAgIC8qIHBhcmVudCBhbHdheXMg aG9sZHMgYSByZWZlcmVuY2UgdG8gaXRzIGNoaWxkcmVuICovCi0gICAgaWYgKGF0b21pY19mZXRj aF9kZWMoJm9iai0+cmVmKSA9PSAxKSB7CisgICAgaWYgKHFhdG9taWNfZmV0Y2hfZGVjKCZvYmot PnJlZikgPT0gMSkgewogICAgICAgICBvYmplY3RfZmluYWxpemUob2JqKTsKICAgICB9CiB9CmRp ZmYgLS1naXQgYS9zY3NpL3FlbXUtcHItaGVscGVyLmMgYi9zY3NpL3FlbXUtcHItaGVscGVyLmMK aW5kZXggNTdhZDgzMGQ1NC4uZDI2ZmFhZjkxZSAxMDA2NDQKLS0tIGEvc2NzaS9xZW11LXByLWhl bHBlci5jCisrKyBiL3Njc2kvcWVtdS1wci1oZWxwZXIuYwpAQCAtNzQ3LDcgKzc0Nyw3IEBAIHN0 YXRpYyB2b2lkIGNvcm91dGluZV9mbiBwcmhfY29fZW50cnkodm9pZCAqb3BhcXVlKQogICAgICAg ICBnb3RvIG91dDsKICAgICB9CiAKLSAgICB3aGlsZSAoYXRvbWljX3JlYWQoJnN0YXRlKSA9PSBS VU5OSU5HKSB7CisgICAgd2hpbGUgKHFhdG9taWNfcmVhZCgmc3RhdGUpID09IFJVTk5JTkcpIHsK ICAgICAgICAgUFJIZWxwZXJSZXF1ZXN0IHJlcTsKICAgICAgICAgUFJIZWxwZXJSZXNwb25zZSBy ZXNwOwogICAgICAgICBpbnQgc3o7CkBAIC04MTYsNyArODE2LDcgQEAgc3RhdGljIGdib29sZWFu IGFjY2VwdF9jbGllbnQoUUlPQ2hhbm5lbCAqaW9jLCBHSU9Db25kaXRpb24gY29uZCwgZ3BvaW50 ZXIgb3BhcXUKIAogc3RhdGljIHZvaWQgdGVybXNpZ19oYW5kbGVyKGludCBzaWdudW0pCiB7Ci0g ICAgYXRvbWljX2NtcHhjaGcoJnN0YXRlLCBSVU5OSU5HLCBURVJNSU5BVEUpOworICAgIHFhdG9t aWNfY21weGNoZygmc3RhdGUsIFJVTk5JTkcsIFRFUk1JTkFURSk7CiAgICAgcWVtdV9ub3RpZnlf ZXZlbnQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvc29mdG1tdS9jcHUtdGhyb3R0bGUuYyBiL3NvZnRt bXUvY3B1LXRocm90dGxlLmMKaW5kZXggNGU2YjI4MThjYS4uMmVjNGI4ZTBiYyAxMDA2NDQKLS0t IGEvc29mdG1tdS9jcHUtdGhyb3R0bGUuYworKysgYi9zb2Z0bW11L2NwdS10aHJvdHRsZS5jCkBA IC02NCw3ICs2NCw3IEBAIHN0YXRpYyB2b2lkIGNwdV90aHJvdHRsZV90aHJlYWQoQ1BVU3RhdGUg KmNwdSwgcnVuX29uX2NwdV9kYXRhIG9wYXF1ZSkKICAgICAgICAgfQogICAgICAgICBzbGVlcHRp bWVfbnMgPSBlbmR0aW1lX25zIC0gcWVtdV9jbG9ja19nZXRfbnMoUUVNVV9DTE9DS19SRUFMVElN RSk7CiAgICAgfQotICAgIGF0b21pY19zZXQoJmNwdS0+dGhyb3R0bGVfdGhyZWFkX3NjaGVkdWxl ZCwgMCk7CisgICAgcWF0b21pY19zZXQoJmNwdS0+dGhyb3R0bGVfdGhyZWFkX3NjaGVkdWxlZCwg MCk7CiB9CiAKIHN0YXRpYyB2b2lkIGNwdV90aHJvdHRsZV90aW1lcl90aWNrKHZvaWQgKm9wYXF1 ZSkKQEAgLTc3LDcgKzc3LDcgQEAgc3RhdGljIHZvaWQgY3B1X3Rocm90dGxlX3RpbWVyX3RpY2so dm9pZCAqb3BhcXVlKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIENQVV9GT1JFQUNIKGNw dSkgewotICAgICAgICBpZiAoIWF0b21pY194Y2hnKCZjcHUtPnRocm90dGxlX3RocmVhZF9zY2hl ZHVsZWQsIDEpKSB7CisgICAgICAgIGlmICghcWF0b21pY194Y2hnKCZjcHUtPnRocm90dGxlX3Ro cmVhZF9zY2hlZHVsZWQsIDEpKSB7CiAgICAgICAgICAgICBhc3luY19ydW5fb25fY3B1KGNwdSwg Y3B1X3Rocm90dGxlX3RocmVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlVOX09O X0NQVV9OVUxMKTsKICAgICAgICAgfQpAQCAtOTQsNyArOTQsNyBAQCB2b2lkIGNwdV90aHJvdHRs ZV9zZXQoaW50IG5ld190aHJvdHRsZV9wY3QpCiAgICAgbmV3X3Rocm90dGxlX3BjdCA9IE1JTihu ZXdfdGhyb3R0bGVfcGN0LCBDUFVfVEhST1RUTEVfUENUX01BWCk7CiAgICAgbmV3X3Rocm90dGxl X3BjdCA9IE1BWChuZXdfdGhyb3R0bGVfcGN0LCBDUFVfVEhST1RUTEVfUENUX01JTik7CiAKLSAg ICBhdG9taWNfc2V0KCZ0aHJvdHRsZV9wZXJjZW50YWdlLCBuZXdfdGhyb3R0bGVfcGN0KTsKKyAg ICBxYXRvbWljX3NldCgmdGhyb3R0bGVfcGVyY2VudGFnZSwgbmV3X3Rocm90dGxlX3BjdCk7CiAK ICAgICB0aW1lcl9tb2QodGhyb3R0bGVfdGltZXIsIHFlbXVfY2xvY2tfZ2V0X25zKFFFTVVfQ0xP Q0tfVklSVFVBTF9SVCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Q1BVX1RIUk9UVExFX1RJTUVTTElDRV9OUyk7CkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBjcHVf dGhyb3R0bGVfc2V0KGludCBuZXdfdGhyb3R0bGVfcGN0KQogCiB2b2lkIGNwdV90aHJvdHRsZV9z dG9wKHZvaWQpCiB7Ci0gICAgYXRvbWljX3NldCgmdGhyb3R0bGVfcGVyY2VudGFnZSwgMCk7Cisg ICAgcWF0b21pY19zZXQoJnRocm90dGxlX3BlcmNlbnRhZ2UsIDApOwogfQogCiBib29sIGNwdV90 aHJvdHRsZV9hY3RpdmUodm9pZCkKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIGNwdV90aHJvdHRs ZV9hY3RpdmUodm9pZCkKIAogaW50IGNwdV90aHJvdHRsZV9nZXRfcGVyY2VudGFnZSh2b2lkKQog ewotICAgIHJldHVybiBhdG9taWNfcmVhZCgmdGhyb3R0bGVfcGVyY2VudGFnZSk7CisgICAgcmV0 dXJuIHFhdG9taWNfcmVhZCgmdGhyb3R0bGVfcGVyY2VudGFnZSk7CiB9CiAKIHZvaWQgY3B1X3Ro cm90dGxlX2luaXQodm9pZCkKZGlmZiAtLWdpdCBhL3NvZnRtbXUvY3B1cy5jIGIvc29mdG1tdS9j cHVzLmMKaW5kZXggZTNiOTgwNjVjOS4uYWM4OTQwZDUyZSAxMDA2NDQKLS0tIGEvc29mdG1tdS9j cHVzLmMKKysrIGIvc29mdG1tdS9jcHVzLmMKQEAgLTE5Miw3ICsxOTIsNyBAQCBzdGF0aWMgdm9p ZCBjcHVfdXBkYXRlX2ljb3VudF9sb2NrZWQoQ1BVU3RhdGUgKmNwdSkKICAgICBpbnQ2NF90IGV4 ZWN1dGVkID0gY3B1X2dldF9pY291bnRfZXhlY3V0ZWQoY3B1KTsKICAgICBjcHUtPmljb3VudF9i dWRnZXQgLT0gZXhlY3V0ZWQ7CiAKLSAgICBhdG9taWNfc2V0X2k2NCgmdGltZXJzX3N0YXRlLnFl bXVfaWNvdW50LAorICAgIHFhdG9taWNfc2V0X2k2NCgmdGltZXJzX3N0YXRlLnFlbXVfaWNvdW50 LAogICAgICAgICAgICAgICAgICAgIHRpbWVyc19zdGF0ZS5xZW11X2ljb3VudCArIGV4ZWN1dGVk KTsKIH0KIApAQCAtMjIzLDEzICsyMjMsMTMgQEAgc3RhdGljIGludDY0X3QgY3B1X2dldF9pY291 bnRfcmF3X2xvY2tlZCh2b2lkKQogICAgICAgICBjcHVfdXBkYXRlX2ljb3VudF9sb2NrZWQoY3B1 KTsKICAgICB9CiAgICAgLyogVGhlIHJlYWQgaXMgcHJvdGVjdGVkIGJ5IHRoZSBzZXFsb2NrLCBi dXQgbmVlZHMgYXRvbWljNjQgdG8gYXZvaWQgVUIgKi8KLSAgICByZXR1cm4gYXRvbWljX3JlYWRf aTY0KCZ0aW1lcnNfc3RhdGUucWVtdV9pY291bnQpOworICAgIHJldHVybiBxYXRvbWljX3JlYWRf aTY0KCZ0aW1lcnNfc3RhdGUucWVtdV9pY291bnQpOwogfQogCiBzdGF0aWMgaW50NjRfdCBjcHVf Z2V0X2ljb3VudF9sb2NrZWQodm9pZCkKIHsKICAgICBpbnQ2NF90IGljb3VudCA9IGNwdV9nZXRf aWNvdW50X3Jhd19sb2NrZWQoKTsKLSAgICByZXR1cm4gYXRvbWljX3JlYWRfaTY0KCZ0aW1lcnNf c3RhdGUucWVtdV9pY291bnRfYmlhcykgKworICAgIHJldHVybiBxYXRvbWljX3JlYWRfaTY0KCZ0 aW1lcnNfc3RhdGUucWVtdV9pY291bnRfYmlhcykgKwogICAgICAgICBjcHVfaWNvdW50X3RvX25z KGljb3VudCk7CiB9CiAKQEAgLTI2Miw3ICsyNjIsNyBAQCBpbnQ2NF90IGNwdV9nZXRfaWNvdW50 KHZvaWQpCiAKIGludDY0X3QgY3B1X2ljb3VudF90b19ucyhpbnQ2NF90IGljb3VudCkKIHsKLSAg ICByZXR1cm4gaWNvdW50IDw8IGF0b21pY19yZWFkKCZ0aW1lcnNfc3RhdGUuaWNvdW50X3RpbWVf c2hpZnQpOworICAgIHJldHVybiBpY291bnQgPDwgcWF0b21pY19yZWFkKCZ0aW1lcnNfc3RhdGUu aWNvdW50X3RpbWVfc2hpZnQpOwogfQogCiBzdGF0aWMgaW50NjRfdCBjcHVfZ2V0X3RpY2tzX2xv Y2tlZCh2b2lkKQpAQCAtMzkzLDE4ICszOTMsMTggQEAgc3RhdGljIHZvaWQgaWNvdW50X2FkanVz dCh2b2lkKQogICAgICAgICAmJiBsYXN0X2RlbHRhICsgSUNPVU5UX1dPQkJMRSA8IGRlbHRhICog MgogICAgICAgICAmJiB0aW1lcnNfc3RhdGUuaWNvdW50X3RpbWVfc2hpZnQgPiAwKSB7CiAgICAg ICAgIC8qIFRoZSBndWVzdCBpcyBnZXR0aW5nIHRvbyBmYXIgYWhlYWQuICBTbG93IHRpbWUgZG93 bi4gICovCi0gICAgICAgIGF0b21pY19zZXQoJnRpbWVyc19zdGF0ZS5pY291bnRfdGltZV9zaGlm dCwKKyAgICAgICAgcWF0b21pY19zZXQoJnRpbWVyc19zdGF0ZS5pY291bnRfdGltZV9zaGlmdCwK ICAgICAgICAgICAgICAgICAgICB0aW1lcnNfc3RhdGUuaWNvdW50X3RpbWVfc2hpZnQgLSAxKTsK ICAgICB9CiAgICAgaWYgKGRlbHRhIDwgMAogICAgICAgICAmJiBsYXN0X2RlbHRhIC0gSUNPVU5U X1dPQkJMRSA+IGRlbHRhICogMgogICAgICAgICAmJiB0aW1lcnNfc3RhdGUuaWNvdW50X3RpbWVf c2hpZnQgPCBNQVhfSUNPVU5UX1NISUZUKSB7CiAgICAgICAgIC8qIFRoZSBndWVzdCBpcyBnZXR0 aW5nIHRvbyBmYXIgYmVoaW5kLiAgU3BlZWQgdGltZSB1cC4gICovCi0gICAgICAgIGF0b21pY19z ZXQoJnRpbWVyc19zdGF0ZS5pY291bnRfdGltZV9zaGlmdCwKKyAgICAgICAgcWF0b21pY19zZXQo JnRpbWVyc19zdGF0ZS5pY291bnRfdGltZV9zaGlmdCwKICAgICAgICAgICAgICAgICAgICB0aW1l cnNfc3RhdGUuaWNvdW50X3RpbWVfc2hpZnQgKyAxKTsKICAgICB9CiAgICAgbGFzdF9kZWx0YSA9 IGRlbHRhOwotICAgIGF0b21pY19zZXRfaTY0KCZ0aW1lcnNfc3RhdGUucWVtdV9pY291bnRfYmlh cywKKyAgICBxYXRvbWljX3NldF9pNjQoJnRpbWVyc19zdGF0ZS5xZW11X2ljb3VudF9iaWFzLAog ICAgICAgICAgICAgICAgICAgIGN1cl9pY291bnQgLSAodGltZXJzX3N0YXRlLnFlbXVfaWNvdW50 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCB0aW1lcnNfc3RhdGUuaWNvdW50 X3RpbWVfc2hpZnQpKTsKICAgICBzZXFsb2NrX3dyaXRlX3VubG9jaygmdGltZXJzX3N0YXRlLnZt X2Nsb2NrX3NlcWxvY2ssCkBAIC00MjgsNyArNDI4LDcgQEAgc3RhdGljIHZvaWQgaWNvdW50X2Fk anVzdF92bSh2b2lkICpvcGFxdWUpCiAKIHN0YXRpYyBpbnQ2NF90IHFlbXVfaWNvdW50X3JvdW5k KGludDY0X3QgY291bnQpCiB7Ci0gICAgaW50IHNoaWZ0ID0gYXRvbWljX3JlYWQoJnRpbWVyc19z dGF0ZS5pY291bnRfdGltZV9zaGlmdCk7CisgICAgaW50IHNoaWZ0ID0gcWF0b21pY19yZWFkKCZ0 aW1lcnNfc3RhdGUuaWNvdW50X3RpbWVfc2hpZnQpOwogICAgIHJldHVybiAoY291bnQgKyAoMSA8 PCBzaGlmdCkgLSAxKSA+PiBzaGlmdDsKIH0KIApAQCAtNDY2LDcgKzQ2Niw3IEBAIHN0YXRpYyB2 b2lkIGljb3VudF93YXJwX3J0KHZvaWQpCiAgICAgICAgICAgICBpbnQ2NF90IGRlbHRhID0gY2xv Y2sgLSBjdXJfaWNvdW50OwogICAgICAgICAgICAgd2FycF9kZWx0YSA9IE1JTih3YXJwX2RlbHRh LCBkZWx0YSk7CiAgICAgICAgIH0KLSAgICAgICAgYXRvbWljX3NldF9pNjQoJnRpbWVyc19zdGF0 ZS5xZW11X2ljb3VudF9iaWFzLAorICAgICAgICBxYXRvbWljX3NldF9pNjQoJnRpbWVyc19zdGF0 ZS5xZW11X2ljb3VudF9iaWFzLAogICAgICAgICAgICAgICAgICAgICAgICB0aW1lcnNfc3RhdGUu cWVtdV9pY291bnRfYmlhcyArIHdhcnBfZGVsdGEpOwogICAgIH0KICAgICB0aW1lcnNfc3RhdGUu dm1fY2xvY2tfd2FycF9zdGFydCA9IC0xOwpAQCAtNDk5LDcgKzQ5OSw3IEBAIHZvaWQgcXRlc3Rf Y2xvY2tfd2FycChpbnQ2NF90IGRlc3QpCiAKICAgICAgICAgc2VxbG9ja193cml0ZV9sb2NrKCZ0 aW1lcnNfc3RhdGUudm1fY2xvY2tfc2VxbG9jaywKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZ0aW1lcnNfc3RhdGUudm1fY2xvY2tfbG9jayk7Ci0gICAgICAgIGF0b21pY19zZXRfaTY0KCZ0 aW1lcnNfc3RhdGUucWVtdV9pY291bnRfYmlhcywKKyAgICAgICAgcWF0b21pY19zZXRfaTY0KCZ0 aW1lcnNfc3RhdGUucWVtdV9pY291bnRfYmlhcywKICAgICAgICAgICAgICAgICAgICAgICAgdGlt ZXJzX3N0YXRlLnFlbXVfaWNvdW50X2JpYXMgKyB3YXJwKTsKICAgICAgICAgc2VxbG9ja193cml0 ZV91bmxvY2soJnRpbWVyc19zdGF0ZS52bV9jbG9ja19zZXFsb2NrLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmdGltZXJzX3N0YXRlLnZtX2Nsb2NrX2xvY2spOwpAQCAtNTgzLDcgKzU4 Myw3IEBAIHZvaWQgcWVtdV9zdGFydF93YXJwX3RpbWVyKHZvaWQpCiAgICAgICAgICAgICAgKi8K ICAgICAgICAgICAgIHNlcWxvY2tfd3JpdGVfbG9jaygmdGltZXJzX3N0YXRlLnZtX2Nsb2NrX3Nl cWxvY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRpbWVyc19zdGF0ZS52bV9j bG9ja19sb2NrKTsKLSAgICAgICAgICAgIGF0b21pY19zZXRfaTY0KCZ0aW1lcnNfc3RhdGUucWVt dV9pY291bnRfYmlhcywKKyAgICAgICAgICAgIHFhdG9taWNfc2V0X2k2NCgmdGltZXJzX3N0YXRl LnFlbXVfaWNvdW50X2JpYXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lcnNfc3Rh dGUucWVtdV9pY291bnRfYmlhcyArIGRlYWRsaW5lKTsKICAgICAgICAgICAgIHNlcWxvY2tfd3Jp dGVfdW5sb2NrKCZ0aW1lcnNfc3RhdGUudm1fY2xvY2tfc2VxbG9jaywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZ0aW1lcnNfc3RhdGUudm1fY2xvY2tfbG9jayk7CkBAIC04Mzcs MTEgKzgzNywxMSBAQCBzdGF0aWMgdm9pZCBxZW11X2NwdV9raWNrX3JyX25leHRfY3B1KHZvaWQp CiB7CiAgICAgQ1BVU3RhdGUgKmNwdTsKICAgICBkbyB7Ci0gICAgICAgIGNwdSA9IGF0b21pY19t Yl9yZWFkKCZ0Y2dfY3VycmVudF9ycl9jcHUpOworICAgICAgICBjcHUgPSBxYXRvbWljX21iX3Jl YWQoJnRjZ19jdXJyZW50X3JyX2NwdSk7CiAgICAgICAgIGlmIChjcHUpIHsKICAgICAgICAgICAg IGNwdV9leGl0KGNwdSk7CiAgICAgICAgIH0KLSAgICB9IHdoaWxlIChjcHUgIT0gYXRvbWljX21i X3JlYWQoJnRjZ19jdXJyZW50X3JyX2NwdSkpOworICAgIH0gd2hpbGUgKGNwdSAhPSBxYXRvbWlj X21iX3JlYWQoJnRjZ19jdXJyZW50X3JyX2NwdSkpOwogfQogCiAvKiBLaWNrIGFsbCBSUiB2Q1BV cyAqLwpAQCAtMTExMCw3ICsxMTEwLDcgQEAgc3RhdGljIHZvaWQgcWVtdV9jcHVfc3RvcChDUFVT dGF0ZSAqY3B1LCBib29sIGV4aXQpCiAKIHN0YXRpYyB2b2lkIHFlbXVfd2FpdF9pb19ldmVudF9j b21tb24oQ1BVU3RhdGUgKmNwdSkKIHsKLSAgICBhdG9taWNfbWJfc2V0KCZjcHUtPnRocmVhZF9r aWNrZWQsIGZhbHNlKTsKKyAgICBxYXRvbWljX21iX3NldCgmY3B1LT50aHJlYWRfa2lja2VkLCBm YWxzZSk7CiAgICAgaWYgKGNwdS0+c3RvcCkgewogICAgICAgICBxZW11X2NwdV9zdG9wKGNwdSwg ZmFsc2UpOwogICAgIH0KQEAgLTEzNTYsNyArMTM1Niw3IEBAIHN0YXRpYyBpbnQgdGNnX2NwdV9l eGVjKENQVVN0YXRlICpjcHUpCiAgICAgcmV0ID0gY3B1X2V4ZWMoY3B1KTsKICAgICBjcHVfZXhl Y19lbmQoY3B1KTsKICNpZmRlZiBDT05GSUdfUFJPRklMRVIKLSAgICBhdG9taWNfc2V0KCZ0Y2df Y3R4LT5wcm9mLmNwdV9leGVjX3RpbWUsCisgICAgcWF0b21pY19zZXQoJnRjZ19jdHgtPnByb2Yu Y3B1X2V4ZWNfdGltZSwKICAgICAgICAgICAgICAgIHRjZ19jdHgtPnByb2YuY3B1X2V4ZWNfdGlt ZSArIHByb2ZpbGVfZ2V0Y2xvY2soKSAtIHRpKTsKICNlbmRpZgogICAgIHJldHVybiByZXQ7CkBA IC0xNDQzLDcgKzE0NDMsNyBAQCBzdGF0aWMgdm9pZCAqcWVtdV90Y2dfcnJfY3B1X3RocmVhZF9m bih2b2lkICphcmcpCiAKICAgICAgICAgd2hpbGUgKGNwdSAmJiBjcHVfd29ya19saXN0X2VtcHR5 KGNwdSkgJiYgIWNwdS0+ZXhpdF9yZXF1ZXN0KSB7CiAKLSAgICAgICAgICAgIGF0b21pY19tYl9z ZXQoJnRjZ19jdXJyZW50X3JyX2NwdSwgY3B1KTsKKyAgICAgICAgICAgIHFhdG9taWNfbWJfc2V0 KCZ0Y2dfY3VycmVudF9ycl9jcHUsIGNwdSk7CiAgICAgICAgICAgICBjdXJyZW50X2NwdSA9IGNw dTsKIAogICAgICAgICAgICAgcWVtdV9jbG9ja19lbmFibGUoUUVNVV9DTE9DS19WSVJUVUFMLApA QCAtMTQ3OSwxMSArMTQ3OSwxMSBAQCBzdGF0aWMgdm9pZCAqcWVtdV90Y2dfcnJfY3B1X3RocmVh ZF9mbih2b2lkICphcmcpCiAgICAgICAgICAgICBjcHUgPSBDUFVfTkVYVChjcHUpOwogICAgICAg ICB9IC8qIHdoaWxlIChjcHUgJiYgIWNwdS0+ZXhpdF9yZXF1ZXN0KS4uICovCiAKLSAgICAgICAg LyogRG9lcyBub3QgbmVlZCBhdG9taWNfbWJfc2V0IGJlY2F1c2UgYSBzcHVyaW91cyB3YWtldXAg aXMgb2theS4gICovCi0gICAgICAgIGF0b21pY19zZXQoJnRjZ19jdXJyZW50X3JyX2NwdSwgTlVM TCk7CisgICAgICAgIC8qIERvZXMgbm90IG5lZWQgcWF0b21pY19tYl9zZXQgYmVjYXVzZSBhIHNw dXJpb3VzIHdha2V1cCBpcyBva2F5LiAgKi8KKyAgICAgICAgcWF0b21pY19zZXQoJnRjZ19jdXJy ZW50X3JyX2NwdSwgTlVMTCk7CiAKICAgICAgICAgaWYgKGNwdSAmJiBjcHUtPmV4aXRfcmVxdWVz dCkgewotICAgICAgICAgICAgYXRvbWljX21iX3NldCgmY3B1LT5leGl0X3JlcXVlc3QsIDApOwor ICAgICAgICAgICAgcWF0b21pY19tYl9zZXQoJmNwdS0+ZXhpdF9yZXF1ZXN0LCAwKTsKICAgICAg ICAgfQogCiAgICAgICAgIGlmICh1c2VfaWNvdW50ICYmIGFsbF9jcHVfdGhyZWFkc19pZGxlKCkp IHsKQEAgLTE2ODcsNyArMTY4Nyw3IEBAIHN0YXRpYyB2b2lkICpxZW11X3RjZ19jcHVfdGhyZWFk X2ZuKHZvaWQgKmFyZykKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGF0b21p Y19tYl9zZXQoJmNwdS0+ZXhpdF9yZXF1ZXN0LCAwKTsKKyAgICAgICAgcWF0b21pY19tYl9zZXQo JmNwdS0+ZXhpdF9yZXF1ZXN0LCAwKTsKICAgICAgICAgcWVtdV93YWl0X2lvX2V2ZW50KGNwdSk7 CiAgICAgfSB3aGlsZSAoIWNwdS0+dW5wbHVnIHx8IGNwdV9jYW5fcnVuKGNwdSkpOwogCkBAIC0x Nzc2LDcgKzE3NzYsNyBAQCBib29sIHFlbXVfbXV0ZXhfaW90aHJlYWRfbG9ja2VkKHZvaWQpCiAg Ki8KIHZvaWQgcWVtdV9tdXRleF9sb2NrX2lvdGhyZWFkX2ltcGwoY29uc3QgY2hhciAqZmlsZSwg aW50IGxpbmUpCiB7Ci0gICAgUWVtdU11dGV4TG9ja0Z1bmMgYnFsX2xvY2sgPSBhdG9taWNfcmVh ZCgmcWVtdV9icWxfbXV0ZXhfbG9ja19mdW5jKTsKKyAgICBRZW11TXV0ZXhMb2NrRnVuYyBicWxf bG9jayA9IHFhdG9taWNfcmVhZCgmcWVtdV9icWxfbXV0ZXhfbG9ja19mdW5jKTsKIAogICAgIGdf YXNzZXJ0KCFxZW11X211dGV4X2lvdGhyZWFkX2xvY2tlZCgpKTsKICAgICBicWxfbG9jaygmcWVt dV9nbG9iYWxfbXV0ZXgsIGZpbGUsIGxpbmUpOwpkaWZmIC0tZ2l0IGEvc29mdG1tdS9tZW1vcnku YyBiL3NvZnRtbXUvbWVtb3J5LmMKaW5kZXggZDAzMGViNmY3Yy4uZGE1ZjkwZjE0MSAxMDA2NDQK LS0tIGEvc29mdG1tdS9tZW1vcnkuYworKysgYi9zb2Z0bW11L21lbW9yeS5jCkBAIC0yOTQsMTIg KzI5NCwxMiBAQCBzdGF0aWMgdm9pZCBmbGF0dmlld19kZXN0cm95KEZsYXRWaWV3ICp2aWV3KQog CiBzdGF0aWMgYm9vbCBmbGF0dmlld19yZWYoRmxhdFZpZXcgKnZpZXcpCiB7Ci0gICAgcmV0dXJu IGF0b21pY19mZXRjaF9pbmNfbm9uemVybygmdmlldy0+cmVmKSA+IDA7CisgICAgcmV0dXJuIHFh dG9taWNfZmV0Y2hfaW5jX25vbnplcm8oJnZpZXctPnJlZikgPiAwOwogfQogCiB2b2lkIGZsYXR2 aWV3X3VucmVmKEZsYXRWaWV3ICp2aWV3KQogewotICAgIGlmIChhdG9taWNfZmV0Y2hfZGVjKCZ2 aWV3LT5yZWYpID09IDEpIHsKKyAgICBpZiAocWF0b21pY19mZXRjaF9kZWMoJnZpZXctPnJlZikg PT0gMSkgewogICAgICAgICB0cmFjZV9mbGF0dmlld19kZXN0cm95X3JjdSh2aWV3LCB2aWV3LT5y b290KTsKICAgICAgICAgYXNzZXJ0KHZpZXctPnJvb3QpOwogICAgICAgICBjYWxsX3JjdSh2aWV3 LCBmbGF0dmlld19kZXN0cm95LCByY3UpOwpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgc3RhdGljIHZv aWQgYWRkcmVzc19zcGFjZV9zZXRfZmxhdHZpZXcoQWRkcmVzc1NwYWNlICphcykKICAgICB9CiAK ICAgICAvKiBXcml0ZXMgYXJlIHByb3RlY3RlZCBieSB0aGUgQlFMLiAgKi8KLSAgICBhdG9taWNf cmN1X3NldCgmYXMtPmN1cnJlbnRfbWFwLCBuZXdfdmlldyk7CisgICAgcWF0b21pY19yY3Vfc2V0 KCZhcy0+Y3VycmVudF9tYXAsIG5ld192aWV3KTsKICAgICBpZiAob2xkX3ZpZXcpIHsKICAgICAg ICAgZmxhdHZpZXdfdW5yZWYob2xkX3ZpZXcpOwogICAgIH0KZGlmZiAtLWdpdCBhL3NvZnRtbXUv dmwuYyBiL3NvZnRtbXUvdmwuYwppbmRleCBmN2IxMDM0NjdjLi41MGQ4YzJlNDJlIDEwMDY0NAot LS0gYS9zb2Z0bW11L3ZsLmMKKysrIGIvc29mdG1tdS92bC5jCkBAIC0xMzIwLDcgKzEzMjAsNyBA QCBTaHV0ZG93bkNhdXNlIHFlbXVfcmVzZXRfcmVxdWVzdGVkX2dldCh2b2lkKQogCiBzdGF0aWMg aW50IHFlbXVfc2h1dGRvd25fcmVxdWVzdGVkKHZvaWQpCiB7Ci0gICAgcmV0dXJuIGF0b21pY194 Y2hnKCZzaHV0ZG93bl9yZXF1ZXN0ZWQsIFNIVVRET1dOX0NBVVNFX05PTkUpOworICAgIHJldHVy biBxYXRvbWljX3hjaGcoJnNodXRkb3duX3JlcXVlc3RlZCwgU0hVVERPV05fQ0FVU0VfTk9ORSk7 CiB9CiAKIHN0YXRpYyB2b2lkIHFlbXVfa2lsbF9yZXBvcnQodm9pZCkKZGlmZiAtLWdpdCBhL3Rh cmdldC9hcm0vbXRlX2hlbHBlci5jIGIvdGFyZ2V0L2FybS9tdGVfaGVscGVyLmMKaW5kZXggODkx MzA2ZjViMC4uNTYxNWM2NzA2YyAxMDA2NDQKLS0tIGEvdGFyZ2V0L2FybS9tdGVfaGVscGVyLmMK KysrIGIvdGFyZ2V0L2FybS9tdGVfaGVscGVyLmMKQEAgLTMxMywxMSArMzEzLDExIEBAIHN0YXRp YyB2b2lkIHN0b3JlX3RhZzEodWludDY0X3QgcHRyLCB1aW50OF90ICptZW0sIGludCB0YWcpCiBz dGF0aWMgdm9pZCBzdG9yZV90YWcxX3BhcmFsbGVsKHVpbnQ2NF90IHB0ciwgdWludDhfdCAqbWVt LCBpbnQgdGFnKQogewogICAgIGludCBvZnMgPSBleHRyYWN0MzIocHRyLCBMT0cyX1RBR19HUkFO VUxFLCAxKSAqIDQ7Ci0gICAgdWludDhfdCBvbGQgPSBhdG9taWNfcmVhZChtZW0pOworICAgIHVp bnQ4X3Qgb2xkID0gcWF0b21pY19yZWFkKG1lbSk7CiAKICAgICB3aGlsZSAoMSkgewogICAgICAg ICB1aW50OF90IG5ldyA9IGRlcG9zaXQzMihvbGQsIG9mcywgNCwgdGFnKTsKLSAgICAgICAgdWlu dDhfdCBjbXAgPSBhdG9taWNfY21weGNoZyhtZW0sIG9sZCwgbmV3KTsKKyAgICAgICAgdWludDhf dCBjbXAgPSBxYXRvbWljX2NtcHhjaGcobWVtLCBvbGQsIG5ldyk7CiAgICAgICAgIGlmIChsaWtl bHkoY21wID09IG9sZCkpIHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzk4 LDcgKzM5OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkb19zdDJnKENQVUFSTVN0YXRlICplbnYs IHVpbnQ2NF90IHB0ciwgdWludDY0X3QgeHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMiAqIFRBR19HUkFOVUxFLCBNTVVfREFUQV9TVE9SRSwgMSwgcmEpOwogICAgICAgICBp ZiAobWVtMSkgewogICAgICAgICAgICAgdGFnIHw9IHRhZyA8PCA0OwotICAgICAgICAgICAgYXRv bWljX3NldChtZW0xLCB0YWcpOworICAgICAgICAgICAgcWF0b21pY19zZXQobWVtMSwgdGFnKTsK ICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL3RhcmdldC9ocHBhL29wX2hlbHBlci5j IGIvdGFyZ2V0L2hwcGEvb3BfaGVscGVyLmMKaW5kZXggNTY4NWUzMDNhYi4uMzkzNjFkMzc1OSAx MDA2NDQKLS0tIGEvdGFyZ2V0L2hwcGEvb3BfaGVscGVyLmMKKysrIGIvdGFyZ2V0L2hwcGEvb3Bf aGVscGVyLmMKQEAgLTY3LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgYXRvbWljX3N0b3JlXzMoQ1BV SFBQQVN0YXRlICplbnYsIHRhcmdldF91bG9uZyBhZGRyLCB1aW50MzJfdCB2YWwsCiAgICAgb2xk ID0gKmhhZGRyOwogICAgIHdoaWxlICgxKSB7CiAgICAgICAgIG5ldyA9IChvbGQgJiB+bWFzaykg fCAodmFsICYgbWFzayk7Ci0gICAgICAgIGNtcCA9IGF0b21pY19jbXB4Y2hnKGhhZGRyLCBvbGQs IG5ldyk7CisgICAgICAgIGNtcCA9IHFhdG9taWNfY21weGNoZyhoYWRkciwgb2xkLCBuZXcpOwog ICAgICAgICBpZiAoY21wID09IG9sZCkgewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9 CmRpZmYgLS1naXQgYS90YXJnZXQvaTM4Ni9tZW1faGVscGVyLmMgYi90YXJnZXQvaTM4Ni9tZW1f aGVscGVyLmMKaW5kZXggYWNmNDFmODg4NS4uM2E2ZDNhZTJlZiAxMDA2NDQKLS0tIGEvdGFyZ2V0 L2kzODYvbWVtX2hlbHBlci5jCisrKyBiL3RhcmdldC9pMzg2L21lbV9oZWxwZXIuYwpAQCAtNjgs NyArNjgsNyBAQCB2b2lkIGhlbHBlcl9jbXB4Y2hnOGIoQ1BVWDg2U3RhdGUgKmVudiwgdGFyZ2V0 X3Vsb25nIGEwKQogICAgICAgICB1aW50NjRfdCAqaGFkZHIgPSBnMmgoYTApOwogICAgICAgICBj bXB2ID0gY3B1X3RvX2xlNjQoY21wdik7CiAgICAgICAgIG5ld3YgPSBjcHVfdG9fbGU2NChuZXd2 KTsKLSAgICAgICAgb2xkdiA9IGF0b21pY19jbXB4Y2hnX19ub2NoZWNrKGhhZGRyLCBjbXB2LCBu ZXd2KTsKKyAgICAgICAgb2xkdiA9IHFhdG9taWNfY21weGNoZ19fbm9jaGVjayhoYWRkciwgY21w diwgbmV3dik7CiAgICAgICAgIG9sZHYgPSBsZTY0X3RvX2NwdShvbGR2KTsKICAgICB9CiAjZWxz ZQpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2kzODYvd2hweC1hbGwuYyBiL3RhcmdldC9pMzg2L3docHgt YWxsLmMKaW5kZXggYzc4YmFhYzZkZi4uNWEwZjMzN2E0YyAxMDA2NDQKLS0tIGEvdGFyZ2V0L2kz ODYvd2hweC1hbGwuYworKysgYi90YXJnZXQvaTM4Ni93aHB4LWFsbC5jCkBAIC05NDYsNyArOTQ2 LDcgQEAgc3RhdGljIGludCB3aHB4X3ZjcHVfcnVuKENQVVN0YXRlICpjcHUpCiAgICAgd2hweF92 Y3B1X3Byb2Nlc3NfYXN5bmNfZXZlbnRzKGNwdSk7CiAgICAgaWYgKGNwdS0+aGFsdGVkKSB7CiAg ICAgICAgIGNwdS0+ZXhjZXB0aW9uX2luZGV4ID0gRVhDUF9ITFQ7Ci0gICAgICAgIGF0b21pY19z ZXQoJmNwdS0+ZXhpdF9yZXF1ZXN0LCBmYWxzZSk7CisgICAgICAgIHFhdG9taWNfc2V0KCZjcHUt PmV4aXRfcmVxdWVzdCwgZmFsc2UpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTk2 MSw3ICs5NjEsNyBAQCBzdGF0aWMgaW50IHdocHhfdmNwdV9ydW4oQ1BVU3RhdGUgKmNwdSkKIAog ICAgICAgICB3aHB4X3ZjcHVfcHJlX3J1bihjcHUpOwogCi0gICAgICAgIGlmIChhdG9taWNfcmVh ZCgmY3B1LT5leGl0X3JlcXVlc3QpKSB7CisgICAgICAgIGlmIChxYXRvbWljX3JlYWQoJmNwdS0+ ZXhpdF9yZXF1ZXN0KSkgewogICAgICAgICAgICAgd2hweF92Y3B1X2tpY2soY3B1KTsKICAgICAg ICAgfQogCkBAIC0xMTEzLDcgKzExMTMsNyBAQCBzdGF0aWMgaW50IHdocHhfdmNwdV9ydW4oQ1BV U3RhdGUgKmNwdSkKICAgICBxZW11X211dGV4X2xvY2tfaW90aHJlYWQoKTsKICAgICBjdXJyZW50 X2NwdSA9IGNwdTsKIAotICAgIGF0b21pY19zZXQoJmNwdS0+ZXhpdF9yZXF1ZXN0LCBmYWxzZSk7 CisgICAgcWF0b21pY19zZXQoJmNwdS0+ZXhpdF9yZXF1ZXN0LCBmYWxzZSk7CiAKICAgICByZXR1 cm4gcmV0IDwgMDsKIH0KZGlmZiAtLWdpdCBhL3RhcmdldC9yaXNjdi9jcHVfaGVscGVyLmMgYi90 YXJnZXQvcmlzY3YvY3B1X2hlbHBlci5jCmluZGV4IGY0YzQxMTE1MzYuLjkwNDg5OTA1NGQgMTAw NjQ0Ci0tLSBhL3RhcmdldC9yaXNjdi9jcHVfaGVscGVyLmMKKysrIGIvdGFyZ2V0L3Jpc2N2L2Nw dV9oZWxwZXIuYwpAQCAtNTM3LDcgKzUzNyw3IEBAIHJlc3RhcnQ6CiAgICAgICAgICAgICAgICAg ICAgICpwdGVfcGEgPSBwdGUgPSB1cGRhdGVkX3B0ZTsKICNlbHNlCiAgICAgICAgICAgICAgICAg ICAgIHRhcmdldF91bG9uZyBvbGRfcHRlID0KLSAgICAgICAgICAgICAgICAgICAgICAgIGF0b21p Y19jbXB4Y2hnKHB0ZV9wYSwgcHRlLCB1cGRhdGVkX3B0ZSk7CisgICAgICAgICAgICAgICAgICAg ICAgICBxYXRvbWljX2NtcHhjaGcocHRlX3BhLCBwdGUsIHVwZGF0ZWRfcHRlKTsKICAgICAgICAg ICAgICAgICAgICAgaWYgKG9sZF9wdGUgIT0gcHRlKSB7CiAgICAgICAgICAgICAgICAgICAgICAg ICBnb3RvIHJlc3RhcnQ7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CmRpZmYgLS1naXQg YS90YXJnZXQvczM5MHgvbWVtX2hlbHBlci5jIGIvdGFyZ2V0L3MzOTB4L21lbV9oZWxwZXIuYwpp bmRleCBhMjM3ZGVjNzU3Li5iZDI1ZWVkM2U4IDEwMDY0NAotLS0gYS90YXJnZXQvczM5MHgvbWVt X2hlbHBlci5jCisrKyBiL3RhcmdldC9zMzkweC9tZW1faGVscGVyLmMKQEAgLTE3ODAsNyArMTc4 MCw3IEBAIHN0YXRpYyB1aW50MzJfdCBkb19jc3N0KENQVVMzOTBYU3RhdGUgKmVudiwgdWludDMy X3QgcjMsIHVpbnQ2NF90IGExLAogICAgICAgICAgICAgaWYgKHBhcmFsbGVsKSB7CiAjaWZkZWYg Q09ORklHX1VTRVJfT05MWQogICAgICAgICAgICAgICAgIHVpbnQzMl90ICpoYWRkciA9IGcyaChh MSk7Ci0gICAgICAgICAgICAgICAgb3YgPSBhdG9taWNfY21weGNoZ19fbm9jaGVjayhoYWRkciwg Y3YsIG52KTsKKyAgICAgICAgICAgICAgICBvdiA9IHFhdG9taWNfY21weGNoZ19fbm9jaGVjayho YWRkciwgY3YsIG52KTsKICNlbHNlCiAgICAgICAgICAgICAgICAgVENHTWVtT3BJZHggb2kgPSBt YWtlX21lbW9wX2lkeChNT19URVVMIHwgTU9fQUxJR04sIG1lbV9pZHgpOwogICAgICAgICAgICAg ICAgIG92ID0gaGVscGVyX2F0b21pY19jbXB4Y2hnbF9iZV9tbXUoZW52LCBhMSwgY3YsIG52LCBv aSwgcmEpOwpAQCAtMTgwNCw3ICsxODA0LDcgQEAgc3RhdGljIHVpbnQzMl90IGRvX2Nzc3QoQ1BV UzM5MFhTdGF0ZSAqZW52LCB1aW50MzJfdCByMywgdWludDY0X3QgYTEsCiAjaWZkZWYgQ09ORklH X0FUT01JQzY0CiAjIGlmZGVmIENPTkZJR19VU0VSX09OTFkKICAgICAgICAgICAgICAgICB1aW50 NjRfdCAqaGFkZHIgPSBnMmgoYTEpOwotICAgICAgICAgICAgICAgIG92ID0gYXRvbWljX2NtcHhj aGdfX25vY2hlY2soaGFkZHIsIGN2LCBudik7CisgICAgICAgICAgICAgICAgb3YgPSBxYXRvbWlj X2NtcHhjaGdfX25vY2hlY2soaGFkZHIsIGN2LCBudik7CiAjIGVsc2UKICAgICAgICAgICAgICAg ICBUQ0dNZW1PcElkeCBvaSA9IG1ha2VfbWVtb3BfaWR4KE1PX1RFUSB8IE1PX0FMSUdOLCBtZW1f aWR4KTsKICAgICAgICAgICAgICAgICBvdiA9IGhlbHBlcl9hdG9taWNfY21weGNoZ3FfYmVfbW11 KGVudiwgYTEsIGN2LCBudiwgb2ksIHJhKTsKZGlmZiAtLWdpdCBhL3RhcmdldC94dGVuc2EvZXhj X2hlbHBlci5jIGIvdGFyZ2V0L3h0ZW5zYS9leGNfaGVscGVyLmMKaW5kZXggNThhNjRlNmQ2Mi4u MmYwMzJiYzA1MyAxMDA2NDQKLS0tIGEvdGFyZ2V0L3h0ZW5zYS9leGNfaGVscGVyLmMKKysrIGIv dGFyZ2V0L3h0ZW5zYS9leGNfaGVscGVyLmMKQEAgLTEyOCwxMyArMTI4LDEzIEBAIHZvaWQgSEVM UEVSKGNoZWNrX2ludGVycnVwdHMpKENQVVh0ZW5zYVN0YXRlICplbnYpCiAKIHZvaWQgSEVMUEVS KGludHNldCkoQ1BVWHRlbnNhU3RhdGUgKmVudiwgdWludDMyX3QgdikKIHsKLSAgICBhdG9taWNf b3IoJmVudi0+c3JlZ3NbSU5UU0VUXSwKKyAgICBxYXRvbWljX29yKCZlbnYtPnNyZWdzW0lOVFNF VF0sCiAgICAgICAgICAgICAgIHYgJiBlbnYtPmNvbmZpZy0+aW50dHlwZV9tYXNrW0lOVFRZUEVf U09GVFdBUkVdKTsKIH0KIAogc3RhdGljIHZvaWQgaW50Y2xlYXIoQ1BVWHRlbnNhU3RhdGUgKmVu diwgdWludDMyX3QgdikKIHsKLSAgICBhdG9taWNfYW5kKCZlbnYtPnNyZWdzW0lOVFNFVF0sIH52 KTsKKyAgICBxYXRvbWljX2FuZCgmZW52LT5zcmVnc1tJTlRTRVRdLCB+dik7CiB9CiAKIHZvaWQg SEVMUEVSKGludGNsZWFyKShDUFVYdGVuc2FTdGF0ZSAqZW52LCB1aW50MzJfdCB2KQpkaWZmIC0t Z2l0IGEvdGFyZ2V0L3h0ZW5zYS9vcF9oZWxwZXIuYyBiL3RhcmdldC94dGVuc2Evb3BfaGVscGVy LmMKaW5kZXggMDlmNDk2MmQwMC4uMTQzNDc2ODQ5ZiAxMDA2NDQKLS0tIGEvdGFyZ2V0L3h0ZW5z YS9vcF9oZWxwZXIuYworKysgYi90YXJnZXQveHRlbnNhL29wX2hlbHBlci5jCkBAIC02Miw3ICs2 Miw3IEBAIHZvaWQgSEVMUEVSKHVwZGF0ZV9jY29tcGFyZSkoQ1BVWHRlbnNhU3RhdGUgKmVudiwg dWludDMyX3QgaSkKIHsKICAgICB1aW50NjRfdCBkY2M7CiAKLSAgICBhdG9taWNfYW5kKCZlbnYt PnNyZWdzW0lOVFNFVF0sCisgICAgcWF0b21pY19hbmQoJmVudi0+c3JlZ3NbSU5UU0VUXSwKICAg ICAgICAgICAgICAgIH4oMXUgPDwgZW52LT5jb25maWctPnRpbWVyaW50W2ldKSk7CiAgICAgSEVM UEVSKHVwZGF0ZV9jY291bnQpKGVudik7CiAgICAgZGNjID0gKHVpbnQ2NF90KShlbnYtPnNyZWdz W0NDT01QQVJFICsgaV0gLSBlbnYtPnNyZWdzW0NDT1VOVF0gLSAxKSArIDE7CmRpZmYgLS1naXQg YS90Y2cvdGNnLmMgYi90Y2cvdGNnLmMKaW5kZXggNjJmMjk5ZTM2ZS4uMjg0YjFjMmExNSAxMDA2 NDQKLS0tIGEvdGNnL3RjZy5jCisrKyBiL3RjZy90Y2cuYwpAQCAtNTk3LDcgKzU5Nyw3IEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCB0Y2dfcmVnaW9uX2luaXRpYWxfYWxsb2NfX2xvY2tlZChUQ0dDb250 ZXh0ICpzKQogLyogQ2FsbCBmcm9tIGEgc2FmZS13b3JrIGNvbnRleHQgKi8KIHZvaWQgdGNnX3Jl Z2lvbl9yZXNldF9hbGwodm9pZCkKIHsKLSAgICB1bnNpZ25lZCBpbnQgbl9jdHhzID0gYXRvbWlj X3JlYWQoJm5fdGNnX2N0eHMpOworICAgIHVuc2lnbmVkIGludCBuX2N0eHMgPSBxYXRvbWljX3Jl YWQoJm5fdGNnX2N0eHMpOwogICAgIHVuc2lnbmVkIGludCBpOwogCiAgICAgcWVtdV9tdXRleF9s b2NrKCZyZWdpb24ubG9jayk7CkBAIC02MDUsNyArNjA1LDcgQEAgdm9pZCB0Y2dfcmVnaW9uX3Jl c2V0X2FsbCh2b2lkKQogICAgIHJlZ2lvbi5hZ2dfc2l6ZV9mdWxsID0gMDsKIAogICAgIGZvciAo aSA9IDA7IGkgPCBuX2N0eHM7IGkrKykgewotICAgICAgICBUQ0dDb250ZXh0ICpzID0gYXRvbWlj X3JlYWQoJnRjZ19jdHhzW2ldKTsKKyAgICAgICAgVENHQ29udGV4dCAqcyA9IHFhdG9taWNfcmVh ZCgmdGNnX2N0eHNbaV0pOwogICAgICAgICBib29sIGVyciA9IHRjZ19yZWdpb25faW5pdGlhbF9h bGxvY19fbG9ja2VkKHMpOwogCiAgICAgICAgIGdfYXNzZXJ0KCFlcnIpOwpAQCAtNzk0LDkgKzc5 NCw5IEBAIHZvaWQgdGNnX3JlZ2lzdGVyX3RocmVhZCh2b2lkKQogICAgIH0KIAogICAgIC8qIENs YWltIGFuIGVudHJ5IGluIHRjZ19jdHhzICovCi0gICAgbiA9IGF0b21pY19mZXRjaF9pbmMoJm5f dGNnX2N0eHMpOworICAgIG4gPSBxYXRvbWljX2ZldGNoX2luYygmbl90Y2dfY3R4cyk7CiAgICAg Z19hc3NlcnQobiA8IG1zLT5zbXAubWF4X2NwdXMpOwotICAgIGF0b21pY19zZXQoJnRjZ19jdHhz W25dLCBzKTsKKyAgICBxYXRvbWljX3NldCgmdGNnX2N0eHNbbl0sIHMpOwogCiAgICAgaWYgKG4g PiAwKSB7CiAgICAgICAgIGFsbG9jX3RjZ19wbHVnaW5fY29udGV4dChzKTsKQEAgLTgxOSwxNyAr ODE5LDE3IEBAIHZvaWQgdGNnX3JlZ2lzdGVyX3RocmVhZCh2b2lkKQogICovCiBzaXplX3QgdGNn X2NvZGVfc2l6ZSh2b2lkKQogewotICAgIHVuc2lnbmVkIGludCBuX2N0eHMgPSBhdG9taWNfcmVh ZCgmbl90Y2dfY3R4cyk7CisgICAgdW5zaWduZWQgaW50IG5fY3R4cyA9IHFhdG9taWNfcmVhZCgm bl90Y2dfY3R4cyk7CiAgICAgdW5zaWduZWQgaW50IGk7CiAgICAgc2l6ZV90IHRvdGFsOwogCiAg ICAgcWVtdV9tdXRleF9sb2NrKCZyZWdpb24ubG9jayk7CiAgICAgdG90YWwgPSByZWdpb24uYWdn X3NpemVfZnVsbDsKICAgICBmb3IgKGkgPSAwOyBpIDwgbl9jdHhzOyBpKyspIHsKLSAgICAgICAg Y29uc3QgVENHQ29udGV4dCAqcyA9IGF0b21pY19yZWFkKCZ0Y2dfY3R4c1tpXSk7CisgICAgICAg IGNvbnN0IFRDR0NvbnRleHQgKnMgPSBxYXRvbWljX3JlYWQoJnRjZ19jdHhzW2ldKTsKICAgICAg ICAgc2l6ZV90IHNpemU7CiAKLSAgICAgICAgc2l6ZSA9IGF0b21pY19yZWFkKCZzLT5jb2RlX2dl bl9wdHIpIC0gcy0+Y29kZV9nZW5fYnVmZmVyOworICAgICAgICBzaXplID0gcWF0b21pY19yZWFk KCZzLT5jb2RlX2dlbl9wdHIpIC0gcy0+Y29kZV9nZW5fYnVmZmVyOwogICAgICAgICBnX2Fzc2Vy dChzaXplIDw9IHMtPmNvZGVfZ2VuX2J1ZmZlcl9zaXplKTsKICAgICAgICAgdG90YWwgKz0gc2l6 ZTsKICAgICB9CkBAIC04NTUsMTQgKzg1NSwxNCBAQCBzaXplX3QgdGNnX2NvZGVfY2FwYWNpdHko dm9pZCkKIAogc2l6ZV90IHRjZ190Yl9waHlzX2ludmFsaWRhdGVfY291bnQodm9pZCkKIHsKLSAg ICB1bnNpZ25lZCBpbnQgbl9jdHhzID0gYXRvbWljX3JlYWQoJm5fdGNnX2N0eHMpOworICAgIHVu c2lnbmVkIGludCBuX2N0eHMgPSBxYXRvbWljX3JlYWQoJm5fdGNnX2N0eHMpOwogICAgIHVuc2ln bmVkIGludCBpOwogICAgIHNpemVfdCB0b3RhbCA9IDA7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwg bl9jdHhzOyBpKyspIHsKLSAgICAgICAgY29uc3QgVENHQ29udGV4dCAqcyA9IGF0b21pY19yZWFk KCZ0Y2dfY3R4c1tpXSk7CisgICAgICAgIGNvbnN0IFRDR0NvbnRleHQgKnMgPSBxYXRvbWljX3Jl YWQoJnRjZ19jdHhzW2ldKTsKIAotICAgICAgICB0b3RhbCArPSBhdG9taWNfcmVhZCgmcy0+dGJf cGh5c19pbnZhbGlkYXRlX2NvdW50KTsKKyAgICAgICAgdG90YWwgKz0gcWF0b21pY19yZWFkKCZz LT50Yl9waHlzX2ludmFsaWRhdGVfY291bnQpOwogICAgIH0KICAgICByZXR1cm4gdG90YWw7CiB9 CkBAIC0xMDQxLDcgKzEwNDEsNyBAQCBUcmFuc2xhdGlvbkJsb2NrICp0Y2dfdGJfYWxsb2MoVENH Q29udGV4dCAqcykKICAgICAgICAgfQogICAgICAgICBnb3RvIHJldHJ5OwogICAgIH0KLSAgICBh dG9taWNfc2V0KCZzLT5jb2RlX2dlbl9wdHIsIG5leHQpOworICAgIHFhdG9taWNfc2V0KCZzLT5j b2RlX2dlbl9wdHIsIG5leHQpOwogICAgIHMtPmRhdGFfZ2VuX3B0ciA9IE5VTEw7CiAgICAgcmV0 dXJuIHRiOwogfQpAQCAtMjEzNCw3ICsyMTM0LDcgQEAgc3RhdGljIHZvaWQgdGNnX2R1bXBfb3Bz KFRDR0NvbnRleHQgKnMsIGJvb2wgaGF2ZV9wcmVmcykKICAgICAgICAgICAgIFFlbXVMb2dGaWxl ICpsb2dmaWxlOwogCiAgICAgICAgICAgICByY3VfcmVhZF9sb2NrKCk7Ci0gICAgICAgICAgICBs b2dmaWxlID0gYXRvbWljX3JjdV9yZWFkKCZxZW11X2xvZ2ZpbGUpOworICAgICAgICAgICAgbG9n ZmlsZSA9IHFhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CiAgICAgICAgICAgICBpZiAo bG9nZmlsZSkgewogICAgICAgICAgICAgICAgIGZvciAoOyBjb2wgPCA0MDsgKytjb2wpIHsKICAg ICAgICAgICAgICAgICAgICAgcHV0YygnICcsIGxvZ2ZpbGUtPmZkKTsKQEAgLTIzNDEsNyArMjM0 MSw3IEBAIHZvaWQgdGNnX29wX3JlbW92ZShUQ0dDb250ZXh0ICpzLCBUQ0dPcCAqb3ApCiAgICAg cy0+bmJfb3BzLS07CiAKICNpZmRlZiBDT05GSUdfUFJPRklMRVIKLSAgICBhdG9taWNfc2V0KCZz LT5wcm9mLmRlbF9vcF9jb3VudCwgcy0+cHJvZi5kZWxfb3BfY291bnQgKyAxKTsKKyAgICBxYXRv bWljX3NldCgmcy0+cHJvZi5kZWxfb3BfY291bnQsIHMtPnByb2YuZGVsX29wX2NvdW50ICsgMSk7 CiAjZW5kaWYKIH0KIApAQCAtMzk2NCwxMiArMzk2NCwxMiBAQCBzdGF0aWMgdm9pZCB0Y2dfcmVn X2FsbG9jX2NhbGwoVENHQ29udGV4dCAqcywgVENHT3AgKm9wKQogLyogYXZvaWQgY29weS9wYXN0 ZSBlcnJvcnMgKi8KICNkZWZpbmUgUFJPRl9BREQodG8sIGZyb20sIGZpZWxkKSAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCi0gICAgICAgICh0byktPmZpZWxkICs9IGF0b21pY19yZWFkKCYoKGZy b20pLT5maWVsZCkpOyAgIFwKKyAgICAgICAgKHRvKS0+ZmllbGQgKz0gcWF0b21pY19yZWFkKCYo KGZyb20pLT5maWVsZCkpOyAgXAogICAgIH0gd2hpbGUgKDApCiAKICNkZWZpbmUgUFJPRl9NQVgo dG8sIGZyb20sIGZpZWxkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgdHlwZW9mKChmcm9tKS0+ZmllbGQpIHZhbF9fID0g YXRvbWljX3JlYWQoJigoZnJvbSktPmZpZWxkKSk7ICAgIFwKKyAgICAgICAgdHlwZW9mKChmcm9t KS0+ZmllbGQpIHZhbF9fID0gcWF0b21pY19yZWFkKCYoKGZyb20pLT5maWVsZCkpOyAgIFwKICAg ICAgICAgaWYgKHZhbF9fID4gKHRvKS0+ZmllbGQpIHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICAgICAgICAgICh0byktPmZpZWxkID0gdmFsX187ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgfSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTM5 NzksMTEgKzM5NzksMTEgQEAgc3RhdGljIHZvaWQgdGNnX3JlZ19hbGxvY19jYWxsKFRDR0NvbnRl eHQgKnMsIFRDR09wICpvcCkKIHN0YXRpYyBpbmxpbmUKIHZvaWQgdGNnX3Byb2ZpbGVfc25hcHNo b3QoVENHUHJvZmlsZSAqcHJvZiwgYm9vbCBjb3VudGVycywgYm9vbCB0YWJsZSkKIHsKLSAgICB1 bnNpZ25lZCBpbnQgbl9jdHhzID0gYXRvbWljX3JlYWQoJm5fdGNnX2N0eHMpOworICAgIHVuc2ln bmVkIGludCBuX2N0eHMgPSBxYXRvbWljX3JlYWQoJm5fdGNnX2N0eHMpOwogICAgIHVuc2lnbmVk IGludCBpOwogCiAgICAgZm9yIChpID0gMDsgaSA8IG5fY3R4czsgaSsrKSB7Ci0gICAgICAgIFRD R0NvbnRleHQgKnMgPSBhdG9taWNfcmVhZCgmdGNnX2N0eHNbaV0pOworICAgICAgICBUQ0dDb250 ZXh0ICpzID0gcWF0b21pY19yZWFkKCZ0Y2dfY3R4c1tpXSk7CiAgICAgICAgIGNvbnN0IFRDR1By b2ZpbGUgKm9yaWcgPSAmcy0+cHJvZjsKIAogICAgICAgICBpZiAoY291bnRlcnMpIHsKQEAgLTQw NDIsMTUgKzQwNDIsMTUgQEAgdm9pZCB0Y2dfZHVtcF9vcF9jb3VudCh2b2lkKQogCiBpbnQ2NF90 IHRjZ19jcHVfZXhlY190aW1lKHZvaWQpCiB7Ci0gICAgdW5zaWduZWQgaW50IG5fY3R4cyA9IGF0 b21pY19yZWFkKCZuX3RjZ19jdHhzKTsKKyAgICB1bnNpZ25lZCBpbnQgbl9jdHhzID0gcWF0b21p Y19yZWFkKCZuX3RjZ19jdHhzKTsKICAgICB1bnNpZ25lZCBpbnQgaTsKICAgICBpbnQ2NF90IHJl dCA9IDA7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgbl9jdHhzOyBpKyspIHsKLSAgICAgICAgY29u c3QgVENHQ29udGV4dCAqcyA9IGF0b21pY19yZWFkKCZ0Y2dfY3R4c1tpXSk7CisgICAgICAgIGNv bnN0IFRDR0NvbnRleHQgKnMgPSBxYXRvbWljX3JlYWQoJnRjZ19jdHhzW2ldKTsKICAgICAgICAg Y29uc3QgVENHUHJvZmlsZSAqcHJvZiA9ICZzLT5wcm9mOwogCi0gICAgICAgIHJldCArPSBhdG9t aWNfcmVhZCgmcHJvZi0+Y3B1X2V4ZWNfdGltZSk7CisgICAgICAgIHJldCArPSBxYXRvbWljX3Jl YWQoJnByb2YtPmNwdV9leGVjX3RpbWUpOwogICAgIH0KICAgICByZXR1cm4gcmV0OwogfQpAQCAt NDA4MywxNSArNDA4MywxNSBAQCBpbnQgdGNnX2dlbl9jb2RlKFRDR0NvbnRleHQgKnMsIFRyYW5z bGF0aW9uQmxvY2sgKnRiKQogICAgICAgICBRVEFJTFFfRk9SRUFDSChvcCwgJnMtPm9wcywgbGlu aykgewogICAgICAgICAgICAgbisrOwogICAgICAgICB9Ci0gICAgICAgIGF0b21pY19zZXQoJnBy b2YtPm9wX2NvdW50LCBwcm9mLT5vcF9jb3VudCArIG4pOworICAgICAgICBxYXRvbWljX3NldCgm cHJvZi0+b3BfY291bnQsIHByb2YtPm9wX2NvdW50ICsgbik7CiAgICAgICAgIGlmIChuID4gcHJv Zi0+b3BfY291bnRfbWF4KSB7Ci0gICAgICAgICAgICBhdG9taWNfc2V0KCZwcm9mLT5vcF9jb3Vu dF9tYXgsIG4pOworICAgICAgICAgICAgcWF0b21pY19zZXQoJnByb2YtPm9wX2NvdW50X21heCwg bik7CiAgICAgICAgIH0KIAogICAgICAgICBuID0gcy0+bmJfdGVtcHM7Ci0gICAgICAgIGF0b21p Y19zZXQoJnByb2YtPnRlbXBfY291bnQsIHByb2YtPnRlbXBfY291bnQgKyBuKTsKKyAgICAgICAg cWF0b21pY19zZXQoJnByb2YtPnRlbXBfY291bnQsIHByb2YtPnRlbXBfY291bnQgKyBuKTsKICAg ICAgICAgaWYgKG4gPiBwcm9mLT50ZW1wX2NvdW50X21heCkgewotICAgICAgICAgICAgYXRvbWlj X3NldCgmcHJvZi0+dGVtcF9jb3VudF9tYXgsIG4pOworICAgICAgICAgICAgcWF0b21pY19zZXQo JnByb2YtPnRlbXBfY291bnRfbWF4LCBuKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAt NDEyNSw3ICs0MTI1LDcgQEAgaW50IHRjZ19nZW5fY29kZShUQ0dDb250ZXh0ICpzLCBUcmFuc2xh dGlvbkJsb2NrICp0YikKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1BST0ZJTEVSCi0gICAgYXRv bWljX3NldCgmcHJvZi0+b3B0X3RpbWUsIHByb2YtPm9wdF90aW1lIC0gcHJvZmlsZV9nZXRjbG9j aygpKTsKKyAgICBxYXRvbWljX3NldCgmcHJvZi0+b3B0X3RpbWUsIHByb2YtPm9wdF90aW1lIC0g cHJvZmlsZV9nZXRjbG9jaygpKTsKICNlbmRpZgogCiAjaWZkZWYgVVNFX1RDR19PUFRJTUlaQVRJ T05TCkBAIC00MTMzLDggKzQxMzMsOCBAQCBpbnQgdGNnX2dlbl9jb2RlKFRDR0NvbnRleHQgKnMs IFRyYW5zbGF0aW9uQmxvY2sgKnRiKQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUFJPRklMRVIK LSAgICBhdG9taWNfc2V0KCZwcm9mLT5vcHRfdGltZSwgcHJvZi0+b3B0X3RpbWUgKyBwcm9maWxl X2dldGNsb2NrKCkpOwotICAgIGF0b21pY19zZXQoJnByb2YtPmxhX3RpbWUsIHByb2YtPmxhX3Rp bWUgLSBwcm9maWxlX2dldGNsb2NrKCkpOworICAgIHFhdG9taWNfc2V0KCZwcm9mLT5vcHRfdGlt ZSwgcHJvZi0+b3B0X3RpbWUgKyBwcm9maWxlX2dldGNsb2NrKCkpOworICAgIHFhdG9taWNfc2V0 KCZwcm9mLT5sYV90aW1lLCBwcm9mLT5sYV90aW1lIC0gcHJvZmlsZV9nZXRjbG9jaygpKTsKICNl bmRpZgogCiAgICAgcmVhY2hhYmxlX2NvZGVfcGFzcyhzKTsKQEAgLTQxNTksNyArNDE1OSw3IEBA IGludCB0Y2dfZ2VuX2NvZGUoVENHQ29udGV4dCAqcywgVHJhbnNsYXRpb25CbG9jayAqdGIpCiAg ICAgfQogCiAjaWZkZWYgQ09ORklHX1BST0ZJTEVSCi0gICAgYXRvbWljX3NldCgmcHJvZi0+bGFf dGltZSwgcHJvZi0+bGFfdGltZSArIHByb2ZpbGVfZ2V0Y2xvY2soKSk7CisgICAgcWF0b21pY19z ZXQoJnByb2YtPmxhX3RpbWUsIHByb2YtPmxhX3RpbWUgKyBwcm9maWxlX2dldGNsb2NrKCkpOwog I2VuZGlmCiAKICNpZmRlZiBERUJVR19ESVNBUwpAQCAtNDE5MCw3ICs0MTkwLDcgQEAgaW50IHRj Z19nZW5fY29kZShUQ0dDb250ZXh0ICpzLCBUcmFuc2xhdGlvbkJsb2NrICp0YikKICAgICAgICAg VENHT3Bjb2RlIG9wYyA9IG9wLT5vcGM7CiAKICNpZmRlZiBDT05GSUdfUFJPRklMRVIKLSAgICAg ICAgYXRvbWljX3NldCgmcHJvZi0+dGFibGVfb3BfY291bnRbb3BjXSwgcHJvZi0+dGFibGVfb3Bf Y291bnRbb3BjXSArIDEpOworICAgICAgICBxYXRvbWljX3NldCgmcHJvZi0+dGFibGVfb3BfY291 bnRbb3BjXSwgcHJvZi0+dGFibGVfb3BfY291bnRbb3BjXSArIDEpOwogI2VuZGlmCiAKICAgICAg ICAgc3dpdGNoIChvcGMpIHsKZGlmZiAtLWdpdCBhL3RjZy90Y2kuYyBiL3RjZy90Y2kuYwppbmRl eCA0NmZlOWNlNjNmLi44MjAzOWZkMTYzIDEwMDY0NAotLS0gYS90Y2cvdGNpLmMKKysrIGIvdGNn L3RjaS5jCkBAIC0xMTE1LDcgKzExMTUsNyBAQCB1aW50cHRyX3QgdGNnX3FlbXVfdGJfZXhlYyhD UFVBcmNoU3RhdGUgKmVudiwgdWludDhfdCAqdGJfcHRyKQogICAgICAgICBjYXNlIElOREVYX29w X2dvdG9fdGI6CiAgICAgICAgICAgICAvKiBKdW1wIGFkZHJlc3MgaXMgYWxpZ25lZCAqLwogICAg ICAgICAgICAgdGJfcHRyID0gUUVNVV9BTElHTl9QVFJfVVAodGJfcHRyLCA0KTsKLSAgICAgICAg ICAgIHQwID0gYXRvbWljX3JlYWQoKGludDMyX3QgKil0Yl9wdHIpOworICAgICAgICAgICAgdDAg PSBxYXRvbWljX3JlYWQoKGludDMyX3QgKil0Yl9wdHIpOwogICAgICAgICAgICAgdGJfcHRyICs9 IHNpemVvZihpbnQzMl90KTsKICAgICAgICAgICAgIHRjaV9hc3NlcnQodGJfcHRyID09IG9sZF9j b2RlX3B0ciArIG9wX3NpemUpOwogICAgICAgICAgICAgdGJfcHRyICs9IChpbnQzMl90KXQwOwpk aWZmIC0tZ2l0IGEvdGVzdHMvYXRvbWljNjQtYmVuY2guYyBiL3Rlc3RzL2F0b21pYzY0LWJlbmNo LmMKaW5kZXggMTIxYThjMTRmNC4uZTQ3NDc1M2QzNCAxMDA2NDQKLS0tIGEvdGVzdHMvYXRvbWlj NjQtYmVuY2guYworKysgYi90ZXN0cy9hdG9taWM2NC1iZW5jaC5jCkBAIC01NiwxNyArNTYsMTcg QEAgc3RhdGljIHZvaWQgKnRocmVhZF9mdW5jKHZvaWQgKmFyZykKIHsKICAgICBzdHJ1Y3QgdGhy ZWFkX2luZm8gKmluZm8gPSBhcmc7CiAKLSAgICBhdG9taWNfaW5jKCZuX3JlYWR5X3RocmVhZHMp OwotICAgIHdoaWxlICghYXRvbWljX3JlYWQoJnRlc3Rfc3RhcnQpKSB7CisgICAgcWF0b21pY19p bmMoJm5fcmVhZHlfdGhyZWFkcyk7CisgICAgd2hpbGUgKCFxYXRvbWljX3JlYWQoJnRlc3Rfc3Rh cnQpKSB7CiAgICAgICAgIGNwdV9yZWxheCgpOwogICAgIH0KIAotICAgIHdoaWxlICghYXRvbWlj X3JlYWQoJnRlc3Rfc3RvcCkpIHsKKyAgICB3aGlsZSAoIXFhdG9taWNfcmVhZCgmdGVzdF9zdG9w KSkgewogICAgICAgICB1bnNpZ25lZCBpbnQgaW5kZXg7CiAKICAgICAgICAgaW5mby0+ciA9IHhv cnNoaWZ0NjRzdGFyKGluZm8tPnIpOwogICAgICAgICBpbmRleCA9IGluZm8tPnIgJiAocmFuZ2Ug LSAxKTsKLSAgICAgICAgYXRvbWljX3JlYWRfaTY0KCZjb3VudHNbaW5kZXhdLmk2NCk7CisgICAg ICAgIHFhdG9taWNfcmVhZF9pNjQoJmNvdW50c1tpbmRleF0uaTY0KTsKICAgICAgICAgaW5mby0+ YWNjZXNzZXMrKzsKICAgICB9CiAgICAgcmV0dXJuIE5VTEw7CkBAIC03NiwxMyArNzYsMTMgQEAg c3RhdGljIHZvaWQgcnVuX3Rlc3Qodm9pZCkKIHsKICAgICB1bnNpZ25lZCBpbnQgaTsKIAotICAg IHdoaWxlIChhdG9taWNfcmVhZCgmbl9yZWFkeV90aHJlYWRzKSAhPSBuX3RocmVhZHMpIHsKKyAg ICB3aGlsZSAocWF0b21pY19yZWFkKCZuX3JlYWR5X3RocmVhZHMpICE9IG5fdGhyZWFkcykgewog ICAgICAgICBjcHVfcmVsYXgoKTsKICAgICB9CiAKLSAgICBhdG9taWNfc2V0KCZ0ZXN0X3N0YXJ0 LCB0cnVlKTsKKyAgICBxYXRvbWljX3NldCgmdGVzdF9zdGFydCwgdHJ1ZSk7CiAgICAgZ191c2xl ZXAoZHVyYXRpb24gKiBHX1VTRUNfUEVSX1NFQyk7Ci0gICAgYXRvbWljX3NldCgmdGVzdF9zdG9w LCB0cnVlKTsKKyAgICBxYXRvbWljX3NldCgmdGVzdF9zdG9wLCB0cnVlKTsKIAogICAgIGZvciAo aSA9IDA7IGkgPCBuX3RocmVhZHM7IGkrKykgewogICAgICAgICBxZW11X3RocmVhZF9qb2luKCZ0 aHJlYWRzW2ldKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2F0b21pY19hZGQtYmVuY2guYyBiL3Rlc3Rz L2F0b21pY19hZGQtYmVuY2guYwppbmRleCA1NjY2ZjZiYmZmLi5mMDU0NzFhYjQ1IDEwMDY0NAot LS0gYS90ZXN0cy9hdG9taWNfYWRkLWJlbmNoLmMKKysrIGIvdGVzdHMvYXRvbWljX2FkZC1iZW5j aC5jCkBAIC01MywxMiArNTMsMTIgQEAgc3RhdGljIHZvaWQgKnRocmVhZF9mdW5jKHZvaWQgKmFy ZykKIHsKICAgICBzdHJ1Y3QgdGhyZWFkX2luZm8gKmluZm8gPSBhcmc7CiAKLSAgICBhdG9taWNf aW5jKCZuX3JlYWR5X3RocmVhZHMpOwotICAgIHdoaWxlICghYXRvbWljX3JlYWQoJnRlc3Rfc3Rh cnQpKSB7CisgICAgcWF0b21pY19pbmMoJm5fcmVhZHlfdGhyZWFkcyk7CisgICAgd2hpbGUgKCFx YXRvbWljX3JlYWQoJnRlc3Rfc3RhcnQpKSB7CiAgICAgICAgIGNwdV9yZWxheCgpOwogICAgIH0K IAotICAgIHdoaWxlICghYXRvbWljX3JlYWQoJnRlc3Rfc3RvcCkpIHsKKyAgICB3aGlsZSAoIXFh dG9taWNfcmVhZCgmdGVzdF9zdG9wKSkgewogICAgICAgICB1bnNpZ25lZCBpbnQgaW5kZXg7CiAK ICAgICAgICAgaW5mby0+ciA9IHhvcnNoaWZ0NjRzdGFyKGluZm8tPnIpOwpAQCAtNjgsNyArNjgs NyBAQCBzdGF0aWMgdm9pZCAqdGhyZWFkX2Z1bmModm9pZCAqYXJnKQogICAgICAgICAgICAgY291 bnRzW2luZGV4XS52YWwgKz0gMTsKICAgICAgICAgICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZjb3Vu dHNbaW5kZXhdLmxvY2spOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXRvbWljX2lu YygmY291bnRzW2luZGV4XS52YWwpOworICAgICAgICAgICAgcWF0b21pY19pbmMoJmNvdW50c1tp bmRleF0udmFsKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gTlVMTDsKQEAgLTc4LDEz ICs3OCwxMyBAQCBzdGF0aWMgdm9pZCBydW5fdGVzdCh2b2lkKQogewogICAgIHVuc2lnbmVkIGlu dCBpOwogCi0gICAgd2hpbGUgKGF0b21pY19yZWFkKCZuX3JlYWR5X3RocmVhZHMpICE9IG5fdGhy ZWFkcykgeworICAgIHdoaWxlIChxYXRvbWljX3JlYWQoJm5fcmVhZHlfdGhyZWFkcykgIT0gbl90 aHJlYWRzKSB7CiAgICAgICAgIGNwdV9yZWxheCgpOwogICAgIH0KIAotICAgIGF0b21pY19zZXQo JnRlc3Rfc3RhcnQsIHRydWUpOworICAgIHFhdG9taWNfc2V0KCZ0ZXN0X3N0YXJ0LCB0cnVlKTsK ICAgICBnX3VzbGVlcChkdXJhdGlvbiAqIEdfVVNFQ19QRVJfU0VDKTsKLSAgICBhdG9taWNfc2V0 KCZ0ZXN0X3N0b3AsIHRydWUpOworICAgIHFhdG9taWNfc2V0KCZ0ZXN0X3N0b3AsIHRydWUpOwog CiAgICAgZm9yIChpID0gMDsgaSA8IG5fdGhyZWFkczsgaSsrKSB7CiAgICAgICAgIHFlbXVfdGhy ZWFkX2pvaW4oJnRocmVhZHNbaV0pOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaW90aHJlYWQuYyBiL3Rl c3RzL2lvdGhyZWFkLmMKaW5kZXggZDNhMmVlOWEwMS4uYWZkZTEyYjRlZiAxMDA2NDQKLS0tIGEv dGVzdHMvaW90aHJlYWQuYworKysgYi90ZXN0cy9pb3RocmVhZC5jCkBAIC03NCw3ICs3NCw3IEBA IHN0YXRpYyB2b2lkICppb3RocmVhZF9ydW4odm9pZCAqb3BhcXVlKQogICAgIHFlbXVfY29uZF9z aWduYWwoJmlvdGhyZWFkLT5pbml0X2RvbmVfY29uZCk7CiAgICAgcWVtdV9tdXRleF91bmxvY2so JmlvdGhyZWFkLT5pbml0X2RvbmVfbG9jayk7CiAKLSAgICB3aGlsZSAoIWF0b21pY19yZWFkKCZp b3RocmVhZC0+c3RvcHBpbmcpKSB7CisgICAgd2hpbGUgKCFxYXRvbWljX3JlYWQoJmlvdGhyZWFk LT5zdG9wcGluZykpIHsKICAgICAgICAgYWlvX3BvbGwoaW90aHJlYWQtPmN0eCwgdHJ1ZSk7CiAg ICAgfQogCmRpZmYgLS1naXQgYS90ZXN0cy9xaHQtYmVuY2guYyBiL3Rlc3RzL3FodC1iZW5jaC5j CmluZGV4IDM2MmYwM2NiMDMuLjJlNWI3MGNjZDAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3FodC1iZW5j aC5jCisrKyBiL3Rlc3RzL3FodC1iZW5jaC5jCkBAIC0yMDksMTMgKzIwOSwxMyBAQCBzdGF0aWMg dm9pZCAqdGhyZWFkX2Z1bmModm9pZCAqcCkKIAogICAgIHJjdV9yZWdpc3Rlcl90aHJlYWQoKTsK IAotICAgIGF0b21pY19pbmMoJm5fcmVhZHlfdGhyZWFkcyk7Ci0gICAgd2hpbGUgKCFhdG9taWNf cmVhZCgmdGVzdF9zdGFydCkpIHsKKyAgICBxYXRvbWljX2luYygmbl9yZWFkeV90aHJlYWRzKTsK KyAgICB3aGlsZSAoIXFhdG9taWNfcmVhZCgmdGVzdF9zdGFydCkpIHsKICAgICAgICAgY3B1X3Jl bGF4KCk7CiAgICAgfQogCiAgICAgcmN1X3JlYWRfbG9jaygpOwotICAgIHdoaWxlICghYXRvbWlj X3JlYWQoJnRlc3Rfc3RvcCkpIHsKKyAgICB3aGlsZSAoIXFhdG9taWNfcmVhZCgmdGVzdF9zdG9w KSkgewogICAgICAgICBpbmZvLT5zZWVkID0geG9yc2hpZnQ2NHN0YXIoaW5mby0+c2VlZCk7CiAg ICAgICAgIGluZm8tPmZ1bmMoaW5mbyk7CiAgICAgfQpAQCAtNDIzLDEzICs0MjMsMTMgQEAgc3Rh dGljIHZvaWQgcnVuX3Rlc3Qodm9pZCkKIHsKICAgICBpbnQgaTsKIAotICAgIHdoaWxlIChhdG9t aWNfcmVhZCgmbl9yZWFkeV90aHJlYWRzKSAhPSBuX3J3X3RocmVhZHMgKyBuX3J6X3RocmVhZHMp IHsKKyAgICB3aGlsZSAocWF0b21pY19yZWFkKCZuX3JlYWR5X3RocmVhZHMpICE9IG5fcndfdGhy ZWFkcyArIG5fcnpfdGhyZWFkcykgewogICAgICAgICBjcHVfcmVsYXgoKTsKICAgICB9CiAKLSAg ICBhdG9taWNfc2V0KCZ0ZXN0X3N0YXJ0LCB0cnVlKTsKKyAgICBxYXRvbWljX3NldCgmdGVzdF9z dGFydCwgdHJ1ZSk7CiAgICAgZ191c2xlZXAoZHVyYXRpb24gKiBHX1VTRUNfUEVSX1NFQyk7Ci0g ICAgYXRvbWljX3NldCgmdGVzdF9zdG9wLCB0cnVlKTsKKyAgICBxYXRvbWljX3NldCgmdGVzdF9z dG9wLCB0cnVlKTsKIAogICAgIGZvciAoaSA9IDA7IGkgPCBuX3J3X3RocmVhZHM7IGkrKykgewog ICAgICAgICBxZW11X3RocmVhZF9qb2luKCZyd190aHJlYWRzW2ldKTsKZGlmZiAtLWdpdCBhL3Rl c3RzL3JjdXRvcnR1cmUuYyBiL3Rlc3RzL3JjdXRvcnR1cmUuYwppbmRleCA3MzJmMDNhYmRhLi5k ZTZmNjQ5MDU4IDEwMDY0NAotLS0gYS90ZXN0cy9yY3V0b3J0dXJlLmMKKysrIGIvdGVzdHMvcmN1 dG9ydHVyZS5jCkBAIC0xMjMsNyArMTIzLDcgQEAgc3RhdGljIHZvaWQgKnJjdV9yZWFkX3BlcmZf dGVzdCh2b2lkICphcmcpCiAgICAgcmN1X3JlZ2lzdGVyX3RocmVhZCgpOwogCiAgICAgKihzdHJ1 Y3QgcmN1X3JlYWRlcl9kYXRhICoqKWFyZyA9ICZyY3VfcmVhZGVyOwotICAgIGF0b21pY19pbmMo Jm50aHJlYWRzcnVubmluZyk7CisgICAgcWF0b21pY19pbmMoJm50aHJlYWRzcnVubmluZyk7CiAg ICAgd2hpbGUgKGdvZmxhZyA9PSBHT0ZMQUdfSU5JVCkgewogICAgICAgICBnX3VzbGVlcCgxMDAw KTsKICAgICB9CkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIHZvaWQgKnJjdV91cGRhdGVfcGVy Zl90ZXN0KHZvaWQgKmFyZykKICAgICByY3VfcmVnaXN0ZXJfdGhyZWFkKCk7CiAKICAgICAqKHN0 cnVjdCByY3VfcmVhZGVyX2RhdGEgKiopYXJnID0gJnJjdV9yZWFkZXI7Ci0gICAgYXRvbWljX2lu YygmbnRocmVhZHNydW5uaW5nKTsKKyAgICBxYXRvbWljX2luYygmbnRocmVhZHNydW5uaW5nKTsK ICAgICB3aGlsZSAoZ29mbGFnID09IEdPRkxBR19JTklUKSB7CiAgICAgICAgIGdfdXNsZWVwKDEw MDApOwogICAgIH0KQEAgLTE3Miw3ICsxNzIsNyBAQCBzdGF0aWMgdm9pZCBwZXJmdGVzdGluaXQo dm9pZCkKIAogc3RhdGljIHZvaWQgcGVyZnRlc3RydW4oaW50IG50aHJlYWRzLCBpbnQgZHVyYXRp b24sIGludCBucmVhZGVycywgaW50IG51cGRhdGVycykKIHsKLSAgICB3aGlsZSAoYXRvbWljX3Jl YWQoJm50aHJlYWRzcnVubmluZykgPCBudGhyZWFkcykgeworICAgIHdoaWxlIChxYXRvbWljX3Jl YWQoJm50aHJlYWRzcnVubmluZykgPCBudGhyZWFkcykgewogICAgICAgICBnX3VzbGVlcCgxMDAw KTsKICAgICB9CiAgICAgZ29mbGFnID0gR09GTEFHX1JVTjsKQEAgLTI1OSw4ICsyNTksOCBAQCBz dGF0aWMgdm9pZCAqcmN1X3JlYWRfc3RyZXNzX3Rlc3Qodm9pZCAqYXJnKQogICAgIH0KICAgICB3 aGlsZSAoZ29mbGFnID09IEdPRkxBR19SVU4pIHsKICAgICAgICAgcmN1X3JlYWRfbG9jaygpOwot ICAgICAgICBwID0gYXRvbWljX3JjdV9yZWFkKCZyY3Vfc3RyZXNzX2N1cnJlbnQpOwotICAgICAg ICBpZiAoYXRvbWljX3JlYWQoJnAtPm1idGVzdCkgPT0gMCkgeworICAgICAgICBwID0gcWF0b21p Y19yY3VfcmVhZCgmcmN1X3N0cmVzc19jdXJyZW50KTsKKyAgICAgICAgaWYgKHFhdG9taWNfcmVh ZCgmcC0+bWJ0ZXN0KSA9PSAwKSB7CiAgICAgICAgICAgICBuX21iZXJyb3IrKzsKICAgICAgICAg fQogICAgICAgICByY3VfcmVhZF9sb2NrKCk7CkBAIC0yNjgsNyArMjY4LDcgQEAgc3RhdGljIHZv aWQgKnJjdV9yZWFkX3N0cmVzc190ZXN0KHZvaWQgKmFyZykKICAgICAgICAgICAgIGdhcmJhZ2Ur KzsKICAgICAgICAgfQogICAgICAgICByY3VfcmVhZF91bmxvY2soKTsKLSAgICAgICAgcGMgPSBh dG9taWNfcmVhZCgmcC0+YWdlKTsKKyAgICAgICAgcGMgPSBxYXRvbWljX3JlYWQoJnAtPmFnZSk7 CiAgICAgICAgIHJjdV9yZWFkX3VubG9jaygpOwogICAgICAgICBpZiAoKHBjID4gUkNVX1NUUkVT U19QSVBFX0xFTikgfHwgKHBjIDwgMCkpIHsKICAgICAgICAgICAgIHBjID0gUkNVX1NUUkVTU19Q SVBFX0xFTjsKQEAgLTMwMSw3ICszMDEsNyBAQCBzdGF0aWMgdm9pZCAqcmN1X3JlYWRfc3RyZXNz X3Rlc3Qodm9pZCAqYXJnKQogc3RhdGljIHZvaWQgKnJjdV91cGRhdGVfc3RyZXNzX3Rlc3Qodm9p ZCAqYXJnKQogewogICAgIGludCBpLCByY3Vfc3RyZXNzX2lkeCA9IDA7Ci0gICAgc3RydWN0IHJj dV9zdHJlc3MgKmNwID0gYXRvbWljX3JlYWQoJnJjdV9zdHJlc3NfY3VycmVudCk7CisgICAgc3Ry dWN0IHJjdV9zdHJlc3MgKmNwID0gcWF0b21pY19yZWFkKCZyY3Vfc3RyZXNzX2N1cnJlbnQpOwog CiAgICAgcmN1X3JlZ2lzdGVyX3RocmVhZCgpOwogICAgICooc3RydWN0IHJjdV9yZWFkZXJfZGF0 YSAqKilhcmcgPSAmcmN1X3JlYWRlcjsKQEAgLTMxOSwxMSArMzE5LDExIEBAIHN0YXRpYyB2b2lk ICpyY3VfdXBkYXRlX3N0cmVzc190ZXN0KHZvaWQgKmFyZykKICAgICAgICAgcCA9ICZyY3Vfc3Ry ZXNzX2FycmF5W3JjdV9zdHJlc3NfaWR4XTsKICAgICAgICAgLyogY2F0Y2hpbmcgdXAgd2l0aCBv dXJzZWx2ZXMgd291bGQgYmUgYSBidWcgKi8KICAgICAgICAgYXNzZXJ0KHAgIT0gY3ApOwotICAg ICAgICBhdG9taWNfc2V0KCZwLT5tYnRlc3QsIDApOworICAgICAgICBxYXRvbWljX3NldCgmcC0+ bWJ0ZXN0LCAwKTsKICAgICAgICAgc21wX21iKCk7Ci0gICAgICAgIGF0b21pY19zZXQoJnAtPmFn ZSwgMCk7Ci0gICAgICAgIGF0b21pY19zZXQoJnAtPm1idGVzdCwgMSk7Ci0gICAgICAgIGF0b21p Y19yY3Vfc2V0KCZyY3Vfc3RyZXNzX2N1cnJlbnQsIHApOworICAgICAgICBxYXRvbWljX3NldCgm cC0+YWdlLCAwKTsKKyAgICAgICAgcWF0b21pY19zZXQoJnAtPm1idGVzdCwgMSk7CisgICAgICAg IHFhdG9taWNfcmN1X3NldCgmcmN1X3N0cmVzc19jdXJyZW50LCBwKTsKICAgICAgICAgY3AgPSBw OwogICAgICAgICAvKgogICAgICAgICAgKiBOZXcgUkNVIHN0cnVjdHVyZSBpcyBub3cgbGl2ZSwg dXBkYXRlIHBpcGUgY291bnRzIG9uIG9sZApAQCAtMzMxLDcgKzMzMSw3IEBAIHN0YXRpYyB2b2lk ICpyY3VfdXBkYXRlX3N0cmVzc190ZXN0KHZvaWQgKmFyZykKICAgICAgICAgICovCiAgICAgICAg IGZvciAoaSA9IDA7IGkgPCBSQ1VfU1RSRVNTX1BJUEVfTEVOOyBpKyspIHsKICAgICAgICAgICAg IGlmIChpICE9IHJjdV9zdHJlc3NfaWR4KSB7Ci0gICAgICAgICAgICAgICAgYXRvbWljX3NldCgm cmN1X3N0cmVzc19hcnJheVtpXS5hZ2UsCisgICAgICAgICAgICAgICAgcWF0b21pY19zZXQoJnJj dV9zdHJlc3NfYXJyYXlbaV0uYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmN1X3N0 cmVzc19hcnJheVtpXS5hZ2UgKyAxKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0t Z2l0IGEvdGVzdHMvdGVzdC1haW8tbXVsdGl0aHJlYWQuYyBiL3Rlc3RzL3Rlc3QtYWlvLW11bHRp dGhyZWFkLmMKaW5kZXggZDMxNDRiZTdlMC4uYTU1NWNjODgzNSAxMDA2NDQKLS0tIGEvdGVzdHMv dGVzdC1haW8tbXVsdGl0aHJlYWQuYworKysgYi90ZXN0cy90ZXN0LWFpby1tdWx0aXRocmVhZC5j CkBAIC0xMTgsMTYgKzExOCwxNiBAQCBzdGF0aWMgYm9vbCBzY2hlZHVsZV9uZXh0KGludCBuKQog ewogICAgIENvcm91dGluZSAqY287CiAKLSAgICBjbyA9IGF0b21pY194Y2hnKCZ0b19zY2hlZHVs ZVtuXSwgTlVMTCk7CisgICAgY28gPSBxYXRvbWljX3hjaGcoJnRvX3NjaGVkdWxlW25dLCBOVUxM KTsKICAgICBpZiAoIWNvKSB7Ci0gICAgICAgIGF0b21pY19pbmMoJmNvdW50X3JldHJ5KTsKKyAg ICAgICAgcWF0b21pY19pbmMoJmNvdW50X3JldHJ5KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog ICAgIH0KIAogICAgIGlmIChuID09IGlkKSB7Ci0gICAgICAgIGF0b21pY19pbmMoJmNvdW50X2hl cmUpOworICAgICAgICBxYXRvbWljX2luYygmY291bnRfaGVyZSk7CiAgICAgfSBlbHNlIHsKLSAg ICAgICAgYXRvbWljX2luYygmY291bnRfb3RoZXIpOworICAgICAgICBxYXRvbWljX2luYygmY291 bnRfb3RoZXIpOwogICAgIH0KIAogICAgIGFpb19jb19zY2hlZHVsZShjdHhbbl0sIGNvKTsKQEAg LTE0MywxMyArMTQzLDEzIEBAIHN0YXRpYyBjb3JvdXRpbmVfZm4gdm9pZCB0ZXN0X211bHRpX2Nv X3NjaGVkdWxlX2VudHJ5KHZvaWQgKm9wYXF1ZSkKIHsKICAgICBnX2Fzc2VydCh0b19zY2hlZHVs ZVtpZF0gPT0gTlVMTCk7CiAKLSAgICB3aGlsZSAoIWF0b21pY19tYl9yZWFkKCZub3dfc3RvcHBp bmcpKSB7CisgICAgd2hpbGUgKCFxYXRvbWljX21iX3JlYWQoJm5vd19zdG9wcGluZykpIHsKICAg ICAgICAgaW50IG47CiAKICAgICAgICAgbiA9IGdfdGVzdF9yYW5kX2ludF9yYW5nZSgwLCBOVU1f Q09OVEVYVFMpOwogICAgICAgICBzY2hlZHVsZV9uZXh0KG4pOwogCi0gICAgICAgIGF0b21pY19t Yl9zZXQoJnRvX3NjaGVkdWxlW2lkXSwgcWVtdV9jb3JvdXRpbmVfc2VsZigpKTsKKyAgICAgICAg cWF0b21pY19tYl9zZXQoJnRvX3NjaGVkdWxlW2lkXSwgcWVtdV9jb3JvdXRpbmVfc2VsZigpKTsK ICAgICAgICAgcWVtdV9jb3JvdXRpbmVfeWllbGQoKTsKICAgICAgICAgZ19hc3NlcnQodG9fc2No ZWR1bGVbaWRdID09IE5VTEwpOwogICAgIH0KQEAgLTE3MSw3ICsxNzEsNyBAQCBzdGF0aWMgdm9p ZCB0ZXN0X211bHRpX2NvX3NjaGVkdWxlKGludCBzZWNvbmRzKQogCiAgICAgZ191c2xlZXAoc2Vj b25kcyAqIDEwMDAwMDApOwogCi0gICAgYXRvbWljX21iX3NldCgmbm93X3N0b3BwaW5nLCB0cnVl KTsKKyAgICBxYXRvbWljX21iX3NldCgmbm93X3N0b3BwaW5nLCB0cnVlKTsKICAgICBmb3IgKGkg PSAwOyBpIDwgTlVNX0NPTlRFWFRTOyBpKyspIHsKICAgICAgICAgY3R4X3J1bihpLCBmaW5pc2hf Y2IsIE5VTEwpOwogICAgICAgICB0b19zY2hlZHVsZVtpXSA9IE5VTEw7CkBAIC0yMDIsNyArMjAy LDcgQEAgc3RhdGljIENvTXV0ZXggY29tdXRleDsKIAogc3RhdGljIHZvaWQgY29yb3V0aW5lX2Zu IHRlc3RfbXVsdGlfY29fbXV0ZXhfZW50cnkodm9pZCAqb3BhcXVlKQogewotICAgIHdoaWxlICgh YXRvbWljX21iX3JlYWQoJm5vd19zdG9wcGluZykpIHsKKyAgICB3aGlsZSAoIXFhdG9taWNfbWJf cmVhZCgmbm93X3N0b3BwaW5nKSkgewogICAgICAgICBxZW11X2NvX211dGV4X2xvY2soJmNvbXV0 ZXgpOwogICAgICAgICBjb3VudGVyKys7CiAgICAgICAgIHFlbXVfY29fbXV0ZXhfdW5sb2NrKCZj b211dGV4KTsKQEAgLTIxMiw5ICsyMTIsOSBAQCBzdGF0aWMgdm9pZCBjb3JvdXRpbmVfZm4gdGVz dF9tdWx0aV9jb19tdXRleF9lbnRyeSh2b2lkICpvcGFxdWUpCiAgICAgICAgICAqIGV4aXRzIGJl Zm9yZSB0aGUgY29yb3V0aW5lIGlzIHdva2VuIHVwLCBjYXVzaW5nIGEgc3B1cmlvdXMKICAgICAg ICAgICogYXNzZXJ0aW9uIGZhaWx1cmUuCiAgICAgICAgICAqLwotICAgICAgICBhdG9taWNfaW5j KCZhdG9taWNfY291bnRlcik7CisgICAgICAgIHFhdG9taWNfaW5jKCZhdG9taWNfY291bnRlcik7 CiAgICAgfQotICAgIGF0b21pY19kZWMoJnJ1bm5pbmcpOworICAgIHFhdG9taWNfZGVjKCZydW5u aW5nKTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdF9tdWx0aV9jb19tdXRleChpbnQgdGhyZWFkcywg aW50IHNlY29uZHMpCkBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9tdWx0aV9j b19tdXRleChpbnQgdGhyZWFkcywgaW50IHNlY29uZHMpCiAKICAgICBnX3VzbGVlcChzZWNvbmRz ICogMTAwMDAwMCk7CiAKLSAgICBhdG9taWNfbWJfc2V0KCZub3dfc3RvcHBpbmcsIHRydWUpOwor ICAgIHFhdG9taWNfbWJfc2V0KCZub3dfc3RvcHBpbmcsIHRydWUpOwogICAgIHdoaWxlIChydW5u aW5nID4gMCkgewogICAgICAgICBnX3VzbGVlcCgxMDAwMDApOwogICAgIH0KQEAgLTI5Niw5ICsy OTYsOSBAQCBzdGF0aWMgdm9pZCBtY3NfbXV0ZXhfbG9jayh2b2lkKQogCiAgICAgbm9kZXNbaWRd Lm5leHQgPSAtMTsKICAgICBub2Rlc1tpZF0ubG9ja2VkID0gMTsKLSAgICBwcmV2ID0gYXRvbWlj X3hjaGcoJm11dGV4X2hlYWQsIGlkKTsKKyAgICBwcmV2ID0gcWF0b21pY194Y2hnKCZtdXRleF9o ZWFkLCBpZCk7CiAgICAgaWYgKHByZXYgIT0gLTEpIHsKLSAgICAgICAgYXRvbWljX3NldCgmbm9k ZXNbcHJldl0ubmV4dCwgaWQpOworICAgICAgICBxYXRvbWljX3NldCgmbm9kZXNbcHJldl0ubmV4 dCwgaWQpOwogICAgICAgICBxZW11X2Z1dGV4X3dhaXQoJm5vZGVzW2lkXS5sb2NrZWQsIDEpOwog ICAgIH0KIH0KQEAgLTMwNiwxMyArMzA2LDEzIEBAIHN0YXRpYyB2b2lkIG1jc19tdXRleF9sb2Nr KHZvaWQpCiBzdGF0aWMgdm9pZCBtY3NfbXV0ZXhfdW5sb2NrKHZvaWQpCiB7CiAgICAgaW50IG5l eHQ7Ci0gICAgaWYgKGF0b21pY19yZWFkKCZub2Rlc1tpZF0ubmV4dCkgPT0gLTEpIHsKLSAgICAg ICAgaWYgKGF0b21pY19yZWFkKCZtdXRleF9oZWFkKSA9PSBpZCAmJgotICAgICAgICAgICAgYXRv bWljX2NtcHhjaGcoJm11dGV4X2hlYWQsIGlkLCAtMSkgPT0gaWQpIHsKKyAgICBpZiAocWF0b21p Y19yZWFkKCZub2Rlc1tpZF0ubmV4dCkgPT0gLTEpIHsKKyAgICAgICAgaWYgKHFhdG9taWNfcmVh ZCgmbXV0ZXhfaGVhZCkgPT0gaWQgJiYKKyAgICAgICAgICAgIHFhdG9taWNfY21weGNoZygmbXV0 ZXhfaGVhZCwgaWQsIC0xKSA9PSBpZCkgewogICAgICAgICAgICAgLyogTGFzdCBpdGVtIGluIHRo ZSBsaXN0LCBleGl0LiAgKi8KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAg ICB3aGlsZSAoYXRvbWljX3JlYWQoJm5vZGVzW2lkXS5uZXh0KSA9PSAtMSkgeworICAgICAgICB3 aGlsZSAocWF0b21pY19yZWFkKCZub2Rlc1tpZF0ubmV4dCkgPT0gLTEpIHsKICAgICAgICAgICAg IC8qIG1jc19tdXRleF9sb2NrIGRpZCB0aGUgeGNoZywgYnV0IGhhcyBub3QgdXBkYXRlZAogICAg ICAgICAgICAgICogbm9kZXNbcHJldl0ubmV4dCB5ZXQuCiAgICAgICAgICAgICAgKi8KQEAgLTMy MCwyMCArMzIwLDIwIEBAIHN0YXRpYyB2b2lkIG1jc19tdXRleF91bmxvY2sodm9pZCkKICAgICB9 CiAKICAgICAvKiBXYWtlIHVwIHRoZSBuZXh0IGluIGxpbmUuICAqLwotICAgIG5leHQgPSBhdG9t aWNfcmVhZCgmbm9kZXNbaWRdLm5leHQpOworICAgIG5leHQgPSBxYXRvbWljX3JlYWQoJm5vZGVz W2lkXS5uZXh0KTsKICAgICBub2Rlc1tuZXh0XS5sb2NrZWQgPSAwOwogICAgIHFlbXVfZnV0ZXhf d2FrZSgmbm9kZXNbbmV4dF0ubG9ja2VkLCAxKTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdF9tdWx0 aV9mYWlyX211dGV4X2VudHJ5KHZvaWQgKm9wYXF1ZSkKIHsKLSAgICB3aGlsZSAoIWF0b21pY19t Yl9yZWFkKCZub3dfc3RvcHBpbmcpKSB7CisgICAgd2hpbGUgKCFxYXRvbWljX21iX3JlYWQoJm5v d19zdG9wcGluZykpIHsKICAgICAgICAgbWNzX211dGV4X2xvY2soKTsKICAgICAgICAgY291bnRl cisrOwogICAgICAgICBtY3NfbXV0ZXhfdW5sb2NrKCk7Ci0gICAgICAgIGF0b21pY19pbmMoJmF0 b21pY19jb3VudGVyKTsKKyAgICAgICAgcWF0b21pY19pbmMoJmF0b21pY19jb3VudGVyKTsKICAg ICB9Ci0gICAgYXRvbWljX2RlYygmcnVubmluZyk7CisgICAgcWF0b21pY19kZWMoJnJ1bm5pbmcp OwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0X211bHRpX2ZhaXJfbXV0ZXgoaW50IHRocmVhZHMsIGlu dCBzZWNvbmRzKQpAQCAtMzU1LDcgKzM1NSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfbXVsdGlfZmFp cl9tdXRleChpbnQgdGhyZWFkcywgaW50IHNlY29uZHMpCiAKICAgICBnX3VzbGVlcChzZWNvbmRz ICogMTAwMDAwMCk7CiAKLSAgICBhdG9taWNfbWJfc2V0KCZub3dfc3RvcHBpbmcsIHRydWUpOwor ICAgIHFhdG9taWNfbWJfc2V0KCZub3dfc3RvcHBpbmcsIHRydWUpOwogICAgIHdoaWxlIChydW5u aW5nID4gMCkgewogICAgICAgICBnX3VzbGVlcCgxMDAwMDApOwogICAgIH0KQEAgLTM4MywxMyAr MzgzLDEzIEBAIHN0YXRpYyBRZW11TXV0ZXggbXV0ZXg7CiAKIHN0YXRpYyB2b2lkIHRlc3RfbXVs dGlfbXV0ZXhfZW50cnkodm9pZCAqb3BhcXVlKQogewotICAgIHdoaWxlICghYXRvbWljX21iX3Jl YWQoJm5vd19zdG9wcGluZykpIHsKKyAgICB3aGlsZSAoIXFhdG9taWNfbWJfcmVhZCgmbm93X3N0 b3BwaW5nKSkgewogICAgICAgICBxZW11X211dGV4X2xvY2soJm11dGV4KTsKICAgICAgICAgY291 bnRlcisrOwogICAgICAgICBxZW11X211dGV4X3VubG9jaygmbXV0ZXgpOwotICAgICAgICBhdG9t aWNfaW5jKCZhdG9taWNfY291bnRlcik7CisgICAgICAgIHFhdG9taWNfaW5jKCZhdG9taWNfY291 bnRlcik7CiAgICAgfQotICAgIGF0b21pY19kZWMoJnJ1bm5pbmcpOworICAgIHFhdG9taWNfZGVj KCZydW5uaW5nKTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdF9tdWx0aV9tdXRleChpbnQgdGhyZWFk cywgaW50IHNlY29uZHMpCkBAIC00MTEsNyArNDExLDcgQEAgc3RhdGljIHZvaWQgdGVzdF9tdWx0 aV9tdXRleChpbnQgdGhyZWFkcywgaW50IHNlY29uZHMpCiAKICAgICBnX3VzbGVlcChzZWNvbmRz ICogMTAwMDAwMCk7CiAKLSAgICBhdG9taWNfbWJfc2V0KCZub3dfc3RvcHBpbmcsIHRydWUpOwor ICAgIHFhdG9taWNfbWJfc2V0KCZub3dfc3RvcHBpbmcsIHRydWUpOwogICAgIHdoaWxlIChydW5u aW5nID4gMCkgewogICAgICAgICBnX3VzbGVlcCgxMDAwMDApOwogICAgIH0KZGlmZiAtLWdpdCBh L3Rlc3RzL3Rlc3QtbG9nZ2luZy5jIGIvdGVzdHMvdGVzdC1sb2dnaW5nLmMKaW5kZXggOGIxNTIy Y2ZlZC4uY2NiODE5ZjE5MyAxMDA2NDQKLS0tIGEvdGVzdHMvdGVzdC1sb2dnaW5nLmMKKysrIGIv dGVzdHMvdGVzdC1sb2dnaW5nLmMKQEAgLTEzMyw3ICsxMzMsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0 X2xvZ2ZpbGVfd3JpdGUoZ2NvbnN0cG9pbnRlciBkYXRhKQogICAgICAqLwogICAgIHFlbXVfc2V0 X2xvZ19maWxlbmFtZShmaWxlX3BhdGgsICZlcnJvcl9hYm9ydCk7CiAgICAgcmN1X3JlYWRfbG9j aygpOwotICAgIGxvZ2ZpbGUgPSBhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAg bG9nZmlsZSA9IHFhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CiAgICAgb3JpZ19mZCA9 IGxvZ2ZpbGUtPmZkOwogICAgIGdfYXNzZXJ0KGxvZ2ZpbGUgJiYgbG9nZmlsZS0+ZmQpOwogICAg IGZwcmludGYobG9nZmlsZS0+ZmQsICIlcyAxc3Qgd3JpdGUgdG8gZmlsZVxuIiwgX19mdW5jX18p OwpAQCAtMTQxLDcgKzE0MSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfbG9nZmlsZV93cml0ZShnY29u c3Rwb2ludGVyIGRhdGEpCiAKICAgICAvKiBDaGFuZ2UgdGhlIGxvZ2ZpbGUgYW5kIGVuc3VyZSB0 aGF0IHRoZSBoYW5kbGUgaXMgc3RpbGwgdmFsaWQuICovCiAgICAgcWVtdV9zZXRfbG9nX2ZpbGVu YW1lKGZpbGVfcGF0aDEsICZlcnJvcl9hYm9ydCk7Ci0gICAgbG9nZmlsZTIgPSBhdG9taWNfcmN1 X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAgbG9nZmlsZTIgPSBxYXRvbWljX3JjdV9yZWFkKCZx ZW11X2xvZ2ZpbGUpOwogICAgIGdfYXNzZXJ0KGxvZ2ZpbGUtPmZkID09IG9yaWdfZmQpOwogICAg IGdfYXNzZXJ0KGxvZ2ZpbGUyLT5mZCAhPSBsb2dmaWxlLT5mZCk7CiAgICAgZnByaW50Zihsb2dm aWxlLT5mZCwgIiVzIDJuZCB3cml0ZSB0byBmaWxlXG4iLCBfX2Z1bmNfXyk7CmRpZmYgLS1naXQg YS90ZXN0cy90ZXN0LXJjdS1saXN0LmMgYi90ZXN0cy90ZXN0LXJjdS1saXN0LmMKaW5kZXggOTJi ZTUxZWM1MC4uNDk2NDFlMTkzNiAxMDA2NDQKLS0tIGEvdGVzdHMvdGVzdC1yY3UtbGlzdC5jCisr KyBiL3Rlc3RzL3Rlc3QtcmN1LWxpc3QuYwpAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyB2b2lk IHJlY2xhaW1fbGlzdF9lbChzdHJ1Y3QgcmN1X2hlYWQgKnByY3UpCiAgICAgc3RydWN0IGxpc3Rf ZWxlbWVudCAqZWwgPSBjb250YWluZXJfb2YocHJjdSwgc3RydWN0IGxpc3RfZWxlbWVudCwgcmN1 KTsKICAgICBnX2ZyZWUoZWwpOwogICAgIC8qIEFjY2Vzc2VkIG9ubHkgZnJvbSBjYWxsX3JjdSB0 aHJlYWQuICAqLwotICAgIGF0b21pY19zZXRfaTY0KCZuX3JlY2xhaW1zLCBuX3JlY2xhaW1zICsg MSk7CisgICAgcWF0b21pY19zZXRfaTY0KCZuX3JlY2xhaW1zLCBuX3JlY2xhaW1zICsgMSk7CiB9 CiAKICNpZiBURVNUX0xJU1RfVFlQRSA9PSAxCkBAIC0xNzIsMTYgKzE3MiwxNiBAQCBzdGF0aWMg dm9pZCAqcmN1X3FfcmVhZGVyKHZvaWQgKmFyZykKICAgICByY3VfcmVnaXN0ZXJfdGhyZWFkKCk7 CiAKICAgICAqKHN0cnVjdCByY3VfcmVhZGVyX2RhdGEgKiopYXJnID0gJnJjdV9yZWFkZXI7Ci0g ICAgYXRvbWljX2luYygmbnRocmVhZHNydW5uaW5nKTsKLSAgICB3aGlsZSAoYXRvbWljX3JlYWQo JmdvZmxhZykgPT0gR09GTEFHX0lOSVQpIHsKKyAgICBxYXRvbWljX2luYygmbnRocmVhZHNydW5u aW5nKTsKKyAgICB3aGlsZSAocWF0b21pY19yZWFkKCZnb2ZsYWcpID09IEdPRkxBR19JTklUKSB7 CiAgICAgICAgIGdfdXNsZWVwKDEwMDApOwogICAgIH0KIAotICAgIHdoaWxlIChhdG9taWNfcmVh ZCgmZ29mbGFnKSA9PSBHT0ZMQUdfUlVOKSB7CisgICAgd2hpbGUgKHFhdG9taWNfcmVhZCgmZ29m bGFnKSA9PSBHT0ZMQUdfUlVOKSB7CiAgICAgICAgIHJjdV9yZWFkX2xvY2soKTsKICAgICAgICAg VEVTVF9MSVNUX0ZPUkVBQ0hfUkNVKGVsLCAmUV9saXN0X2hlYWQsIGVudHJ5KSB7CiAgICAgICAg ICAgICBuX3JlYWRzX2xvY2FsKys7Ci0gICAgICAgICAgICBpZiAoYXRvbWljX3JlYWQoJmdvZmxh ZykgPT0gR09GTEFHX1NUT1ApIHsKKyAgICAgICAgICAgIGlmIChxYXRvbWljX3JlYWQoJmdvZmxh ZykgPT0gR09GTEFHX1NUT1ApIHsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg IH0KICAgICAgICAgfQpAQCAtMjA3LDEyICsyMDcsMTIgQEAgc3RhdGljIHZvaWQgKnJjdV9xX3Vw ZGF0ZXIodm9pZCAqYXJnKQogICAgIHN0cnVjdCBsaXN0X2VsZW1lbnQgKmVsLCAqcHJldl9lbDsK IAogICAgICooc3RydWN0IHJjdV9yZWFkZXJfZGF0YSAqKilhcmcgPSAmcmN1X3JlYWRlcjsKLSAg ICBhdG9taWNfaW5jKCZudGhyZWFkc3J1bm5pbmcpOwotICAgIHdoaWxlIChhdG9taWNfcmVhZCgm Z29mbGFnKSA9PSBHT0ZMQUdfSU5JVCkgeworICAgIHFhdG9taWNfaW5jKCZudGhyZWFkc3J1bm5p bmcpOworICAgIHdoaWxlIChxYXRvbWljX3JlYWQoJmdvZmxhZykgPT0gR09GTEFHX0lOSVQpIHsK ICAgICAgICAgZ191c2xlZXAoMTAwMCk7CiAgICAgfQogCi0gICAgd2hpbGUgKGF0b21pY19yZWFk KCZnb2ZsYWcpID09IEdPRkxBR19SVU4pIHsKKyAgICB3aGlsZSAocWF0b21pY19yZWFkKCZnb2Zs YWcpID09IEdPRkxBR19SVU4pIHsKICAgICAgICAgdGFyZ2V0X2VsID0gc2VsZWN0X3JhbmRvbV9l bChSQ1VfUV9MRU4pOwogICAgICAgICBqID0gMDsKICAgICAgICAgLyogRk9SRUFDSF9SQ1UgY291 bGQgd29yayBoZXJlIGJ1dCBsZXQncyB1c2UgYm90aCBtYWNyb3MgKi8KQEAgLTIyNiw3ICsyMjYs NyBAQCBzdGF0aWMgdm9pZCAqcmN1X3FfdXBkYXRlcih2b2lkICphcmcpCiAgICAgICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGF0b21pY19y ZWFkKCZnb2ZsYWcpID09IEdPRkxBR19TVE9QKSB7CisgICAgICAgIGlmIChxYXRvbWljX3JlYWQo JmdvZmxhZykgPT0gR09GTEFHX1NUT1ApIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9 CiAgICAgICAgIHRhcmdldF9lbCA9IHNlbGVjdF9yYW5kb21fZWwoUkNVX1FfTEVOKTsKQEAgLTI0 OCw3ICsyNDgsNyBAQCBzdGF0aWMgdm9pZCAqcmN1X3FfdXBkYXRlcih2b2lkICphcmcpCiAgICAg cWVtdV9tdXRleF9sb2NrKCZjb3VudHNfbXV0ZXgpOwogICAgIG5fbm9kZXMgKz0gbl9ub2Rlc19s b2NhbDsKICAgICBuX3VwZGF0ZXMgKz0gbl91cGRhdGVzX2xvY2FsOwotICAgIGF0b21pY19zZXRf aTY0KCZuX25vZGVzX3JlbW92ZWQsIG5fbm9kZXNfcmVtb3ZlZCArIG5fcmVtb3ZlZF9sb2NhbCk7 CisgICAgcWF0b21pY19zZXRfaTY0KCZuX25vZGVzX3JlbW92ZWQsIG5fbm9kZXNfcmVtb3ZlZCAr IG5fcmVtb3ZlZF9sb2NhbCk7CiAgICAgcWVtdV9tdXRleF91bmxvY2soJmNvdW50c19tdXRleCk7 CiAgICAgcmV0dXJuIE5VTEw7CiB9CkBAIC0yNzEsMTMgKzI3MSwxMyBAQCBzdGF0aWMgdm9pZCBy Y3VfcXRlc3RfaW5pdCh2b2lkKQogc3RhdGljIHZvaWQgcmN1X3F0ZXN0X3J1bihpbnQgZHVyYXRp b24sIGludCBucmVhZGVycykKIHsKICAgICBpbnQgbnRocmVhZHMgPSBucmVhZGVycyArIDE7Ci0g ICAgd2hpbGUgKGF0b21pY19yZWFkKCZudGhyZWFkc3J1bm5pbmcpIDwgbnRocmVhZHMpIHsKKyAg ICB3aGlsZSAocWF0b21pY19yZWFkKCZudGhyZWFkc3J1bm5pbmcpIDwgbnRocmVhZHMpIHsKICAg ICAgICAgZ191c2xlZXAoMTAwMCk7CiAgICAgfQogCi0gICAgYXRvbWljX3NldCgmZ29mbGFnLCBH T0ZMQUdfUlVOKTsKKyAgICBxYXRvbWljX3NldCgmZ29mbGFnLCBHT0ZMQUdfUlVOKTsKICAgICBz bGVlcChkdXJhdGlvbik7Ci0gICAgYXRvbWljX3NldCgmZ29mbGFnLCBHT0ZMQUdfU1RPUCk7Cisg ICAgcWF0b21pY19zZXQoJmdvZmxhZywgR09GTEFHX1NUT1ApOwogICAgIHdhaXRfYWxsX3RocmVh ZHMoKTsKIH0KIApAQCAtMzAyLDIxICszMDIsMjMgQEAgc3RhdGljIHZvaWQgcmN1X3F0ZXN0KGNv bnN0IGNoYXIgKnRlc3QsIGludCBkdXJhdGlvbiwgaW50IG5yZWFkZXJzKQogICAgICAgICBuX3Jl bW92ZWRfbG9jYWwrKzsKICAgICB9CiAgICAgcWVtdV9tdXRleF9sb2NrKCZjb3VudHNfbXV0ZXgp OwotICAgIGF0b21pY19zZXRfaTY0KCZuX25vZGVzX3JlbW92ZWQsIG5fbm9kZXNfcmVtb3ZlZCAr IG5fcmVtb3ZlZF9sb2NhbCk7CisgICAgcWF0b21pY19zZXRfaTY0KCZuX25vZGVzX3JlbW92ZWQs IG5fbm9kZXNfcmVtb3ZlZCArIG5fcmVtb3ZlZF9sb2NhbCk7CiAgICAgcWVtdV9tdXRleF91bmxv Y2soJmNvdW50c19tdXRleCk7CiAgICAgc3luY2hyb25pemVfcmN1KCk7Ci0gICAgd2hpbGUgKGF0 b21pY19yZWFkX2k2NCgmbl9ub2Rlc19yZW1vdmVkKSA+IGF0b21pY19yZWFkX2k2NCgmbl9yZWNs YWltcykpIHsKKyAgICB3aGlsZSAocWF0b21pY19yZWFkX2k2NCgmbl9ub2Rlc19yZW1vdmVkKSA+ CisgICAgICAgICAgIHFhdG9taWNfcmVhZF9pNjQoJm5fcmVjbGFpbXMpKSB7CiAgICAgICAgIGdf dXNsZWVwKDEwMCk7CiAgICAgICAgIHN5bmNocm9uaXplX3JjdSgpOwogICAgIH0KICAgICBpZiAo Z190ZXN0X2luX2NoYXJnZSkgewotICAgICAgICBnX2Fzc2VydF9jbXBpbnQoYXRvbWljX3JlYWRf aTY0KCZuX25vZGVzX3JlbW92ZWQpLCA9PSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGF0b21p Y19yZWFkX2k2NCgmbl9yZWNsYWltcykpOworICAgICAgICBnX2Fzc2VydF9jbXBpbnQocWF0b21p Y19yZWFkX2k2NCgmbl9ub2Rlc19yZW1vdmVkKSwgPT0sCisgICAgICAgICAgICAgICAgICAgICAg ICBxYXRvbWljX3JlYWRfaTY0KCZuX3JlY2xhaW1zKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg cHJpbnRmKCIlczogJWQgcmVhZGVyczsgMSB1cGRhdGVyOyBub2RlcyByZWFkOiAiICBcCiAgICAg ICAgICAgICAgICAiJWxsZCwgbm9kZXMgcmVtb3ZlZDogJSJQUklpNjQiOyBub2RlcyByZWNsYWlt ZWQ6ICUiUFJJaTY0IlxuIiwKICAgICAgICAgICAgICAgIHRlc3QsIG50aHJlYWRzcnVubmluZyAt IDEsIG5fcmVhZHMsCi0gICAgICAgICAgICAgICBhdG9taWNfcmVhZF9pNjQoJm5fbm9kZXNfcmVt b3ZlZCksIGF0b21pY19yZWFkX2k2NCgmbl9yZWNsYWltcykpOworICAgICAgICAgICAgICAgcWF0 b21pY19yZWFkX2k2NCgmbl9ub2Rlc19yZW1vdmVkKSwKKyAgICAgICAgICAgICAgIHFhdG9taWNf cmVhZF9pNjQoJm5fcmVjbGFpbXMpKTsKICAgICAgICAgZXhpdCgwKTsKICAgICB9CiB9CmRpZmYg LS1naXQgYS90ZXN0cy90ZXN0LXRocmVhZC1wb29sLmMgYi90ZXN0cy90ZXN0LXRocmVhZC1wb29s LmMKaW5kZXggMGI2NzU5MjNmNi4uNzBkYzYzMTRhMSAxMDA2NDQKLS0tIGEvdGVzdHMvdGVzdC10 aHJlYWQtcG9vbC5jCisrKyBiL3Rlc3RzL3Rlc3QtdGhyZWFkLXBvb2wuYwpAQCAtMjEsMTUgKzIx LDE1IEBAIHR5cGVkZWYgc3RydWN0IHsKIHN0YXRpYyBpbnQgd29ya2VyX2NiKHZvaWQgKm9wYXF1 ZSkKIHsKICAgICBXb3JrZXJUZXN0RGF0YSAqZGF0YSA9IG9wYXF1ZTsKLSAgICByZXR1cm4gYXRv bWljX2ZldGNoX2luYygmZGF0YS0+bik7CisgICAgcmV0dXJuIHFhdG9taWNfZmV0Y2hfaW5jKCZk YXRhLT5uKTsKIH0KIAogc3RhdGljIGludCBsb25nX2NiKHZvaWQgKm9wYXF1ZSkKIHsKICAgICBX b3JrZXJUZXN0RGF0YSAqZGF0YSA9IG9wYXF1ZTsKLSAgICBpZiAoYXRvbWljX2NtcHhjaGcoJmRh dGEtPm4sIDAsIDEpID09IDApIHsKKyAgICBpZiAocWF0b21pY19jbXB4Y2hnKCZkYXRhLT5uLCAw LCAxKSA9PSAwKSB7CiAgICAgICAgIGdfdXNsZWVwKDIwMDAwMDApOwotICAgICAgICBhdG9taWNf b3IoJmRhdGEtPm4sIDIpOworICAgICAgICBxYXRvbWljX29yKCZkYXRhLT5uLCAyKTsKICAgICB9 CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0xNzIsNyArMTcyLDcgQEAgc3RhdGljIHZvaWQgZG9fdGVz dF9jYW5jZWwoYm9vbCBzeW5jKQogICAgIC8qIENhbmNlbCB0aGUgam9icyB0aGF0IGhhdmVuJ3Qg YmVlbiBzdGFydGVkIHlldC4gICovCiAgICAgbnVtX2NhbmNlbGVkID0gMDsKICAgICBmb3IgKGkg PSAwOyBpIDwgMTAwOyBpKyspIHsKLSAgICAgICAgaWYgKGF0b21pY19jbXB4Y2hnKCZkYXRhW2ld Lm4sIDAsIDQpID09IDApIHsKKyAgICAgICAgaWYgKHFhdG9taWNfY21weGNoZygmZGF0YVtpXS5u LCAwLCA0KSA9PSAwKSB7CiAgICAgICAgICAgICBkYXRhW2ldLnJldCA9IC1FQ0FOQ0VMRUQ7CiAg ICAgICAgICAgICBpZiAoc3luYykgewogICAgICAgICAgICAgICAgIGJkcnZfYWlvX2NhbmNlbChk YXRhW2ldLmFpb2NiKTsKQEAgLTE4Niw3ICsxODYsNyBAQCBzdGF0aWMgdm9pZCBkb190ZXN0X2Nh bmNlbChib29sIHN5bmMpCiAgICAgZ19hc3NlcnRfY21waW50KG51bV9jYW5jZWxlZCwgPCwgMTAw KTsKIAogICAgIGZvciAoaSA9IDA7IGkgPCAxMDA7IGkrKykgewotICAgICAgICBpZiAoZGF0YVtp XS5haW9jYiAmJiBhdG9taWNfcmVhZCgmZGF0YVtpXS5uKSA8IDQpIHsKKyAgICAgICAgaWYgKGRh dGFbaV0uYWlvY2IgJiYgcWF0b21pY19yZWFkKCZkYXRhW2ldLm4pIDwgNCkgewogICAgICAgICAg ICAgaWYgKHN5bmMpIHsKICAgICAgICAgICAgICAgICAvKiBDYW5jZWxpbmcgdGhlIG90aGVycyB3 aWxsIGJlIGEgYmxvY2tpbmcgb3BlcmF0aW9uLiAgKi8KICAgICAgICAgICAgICAgICBiZHJ2X2Fp b19jYW5jZWwoZGF0YVtpXS5haW9jYik7CmRpZmYgLS1naXQgYS91dGlsL2Fpby1wb3NpeC5jIGIv dXRpbC9haW8tcG9zaXguYwppbmRleCBmN2YxM2ViZmMyLi4yODBmMjdiYjk5IDEwMDY0NAotLS0g YS91dGlsL2Fpby1wb3NpeC5jCisrKyBiL3V0aWwvYWlvLXBvc2l4LmMKQEAgLTI3LDcgKzI3LDcg QEAKIAogYm9vbCBhaW9fcG9sbF9kaXNhYmxlZChBaW9Db250ZXh0ICpjdHgpCiB7Ci0gICAgcmV0 dXJuIGF0b21pY19yZWFkKCZjdHgtPnBvbGxfZGlzYWJsZV9jbnQpOworICAgIHJldHVybiBxYXRv bWljX3JlYWQoJmN0eC0+cG9sbF9kaXNhYmxlX2NudCk7CiB9CiAKIHZvaWQgYWlvX2FkZF9yZWFk eV9oYW5kbGVyKEFpb0hhbmRsZXJMaXN0ICpyZWFkeV9saXN0LApAQCAtMTQ4LDggKzE0OCw4IEBA IHZvaWQgYWlvX3NldF9mZF9oYW5kbGVyKEFpb0NvbnRleHQgKmN0eCwKICAgICAgKiBDaGFuZ2lu ZyBoYW5kbGVycyBpcyBhIHJhcmUgZXZlbnQsIGFuZCBhIGxpdHRsZSB3YXN0ZWQgcG9sbGluZyB1 bnRpbAogICAgICAqIHRoZSBhaW9fbm90aWZ5IGJlbG93IGlzIG5vdCBhbiBpc3N1ZS4KICAgICAg Ki8KLSAgICBhdG9taWNfc2V0KCZjdHgtPnBvbGxfZGlzYWJsZV9jbnQsCi0gICAgICAgICAgICAg ICBhdG9taWNfcmVhZCgmY3R4LT5wb2xsX2Rpc2FibGVfY250KSArIHBvbGxfZGlzYWJsZV9jaGFu Z2UpOworICAgIHFhdG9taWNfc2V0KCZjdHgtPnBvbGxfZGlzYWJsZV9jbnQsCisgICAgICAgICAg ICAgICBxYXRvbWljX3JlYWQoJmN0eC0+cG9sbF9kaXNhYmxlX2NudCkgKyBwb2xsX2Rpc2FibGVf Y2hhbmdlKTsKIAogICAgIGN0eC0+ZmRtb25fb3BzLT51cGRhdGUoY3R4LCBub2RlLCBuZXdfbm9k ZSk7CiAgICAgaWYgKG5vZGUpIHsKQEAgLTU4MSw3ICs1ODEsNyBAQCBib29sIGFpb19wb2xsKEFp b0NvbnRleHQgKmN0eCwgYm9vbCBibG9ja2luZykKICAgICAgKi8KICAgICB1c2Vfbm90aWZ5X21l ID0gdGltZW91dCAhPSAwOwogICAgIGlmICh1c2Vfbm90aWZ5X21lKSB7Ci0gICAgICAgIGF0b21p Y19zZXQoJmN0eC0+bm90aWZ5X21lLCBhdG9taWNfcmVhZCgmY3R4LT5ub3RpZnlfbWUpICsgMik7 CisgICAgICAgIHFhdG9taWNfc2V0KCZjdHgtPm5vdGlmeV9tZSwgcWF0b21pY19yZWFkKCZjdHgt Pm5vdGlmeV9tZSkgKyAyKTsKICAgICAgICAgLyoKICAgICAgICAgICogV3JpdGUgY3R4LT5ub3Rp ZnlfbWUgYmVmb3JlIHJlYWRpbmcgY3R4LT5ub3RpZmllZC4gIFBhaXJzIHdpdGgKICAgICAgICAg ICogc21wX21iIGluIGFpb19ub3RpZnkoKS4KQEAgLTU4OSw3ICs1ODksNyBAQCBib29sIGFpb19w b2xsKEFpb0NvbnRleHQgKmN0eCwgYm9vbCBibG9ja2luZykKICAgICAgICAgc21wX21iKCk7CiAK ICAgICAgICAgLyogRG9uJ3QgYmxvY2sgaWYgYWlvX25vdGlmeSgpIHdhcyBjYWxsZWQgKi8KLSAg ICAgICAgaWYgKGF0b21pY19yZWFkKCZjdHgtPm5vdGlmaWVkKSkgeworICAgICAgICBpZiAocWF0 b21pY19yZWFkKCZjdHgtPm5vdGlmaWVkKSkgewogICAgICAgICAgICAgdGltZW91dCA9IDA7CiAg ICAgICAgIH0KICAgICB9CkBAIC02MDMsOCArNjAzLDggQEAgYm9vbCBhaW9fcG9sbChBaW9Db250 ZXh0ICpjdHgsIGJvb2wgYmxvY2tpbmcpCiAKICAgICBpZiAodXNlX25vdGlmeV9tZSkgewogICAg ICAgICAvKiBGaW5pc2ggdGhlIHBvbGwgYmVmb3JlIGNsZWFyaW5nIHRoZSBmbGFnLiAgKi8KLSAg ICAgICAgYXRvbWljX3N0b3JlX3JlbGVhc2UoJmN0eC0+bm90aWZ5X21lLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhdG9taWNfcmVhZCgmY3R4LT5ub3RpZnlfbWUpIC0gMik7CisgICAg ICAgIHFhdG9taWNfc3RvcmVfcmVsZWFzZSgmY3R4LT5ub3RpZnlfbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHFhdG9taWNfcmVhZCgmY3R4LT5ub3RpZnlfbWUpIC0gMik7CiAgICAg fQogCiAgICAgYWlvX25vdGlmeV9hY2NlcHQoY3R4KTsKZGlmZiAtLWdpdCBhL3V0aWwvYWlvLXdh aXQuYyBiL3V0aWwvYWlvLXdhaXQuYwppbmRleCBiNDg3NzQ5M2Y4Li5iZGIzZDNhZjIyIDEwMDY0 NAotLS0gYS91dGlsL2Fpby13YWl0LmMKKysrIGIvdXRpbC9haW8td2FpdC5jCkBAIC0zNiw3ICsz Niw3IEBAIHN0YXRpYyB2b2lkIGR1bW15X2JoX2NiKHZvaWQgKm9wYXF1ZSkKIHZvaWQgYWlvX3dh aXRfa2ljayh2b2lkKQogewogICAgIC8qIFRoZSBiYXJyaWVyIChvciBhbiBhdG9taWMgb3ApIGlz IGluIHRoZSBjYWxsZXIuICAqLwotICAgIGlmIChhdG9taWNfcmVhZCgmZ2xvYmFsX2Fpb193YWl0 Lm51bV93YWl0ZXJzKSkgeworICAgIGlmIChxYXRvbWljX3JlYWQoJmdsb2JhbF9haW9fd2FpdC5u dW1fd2FpdGVycykpIHsKICAgICAgICAgYWlvX2JoX3NjaGVkdWxlX29uZXNob3QocWVtdV9nZXRf YWlvX2NvbnRleHQoKSwgZHVtbXlfYmhfY2IsIE5VTEwpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBh L3V0aWwvYWlvLXdpbjMyLmMgYi91dGlsL2Fpby13aW4zMi5jCmluZGV4IDQ5YmQ5MGU2MmUuLmU3 YjFkNjQ5ZTkgMTAwNjQ0Ci0tLSBhL3V0aWwvYWlvLXdpbjMyLmMKKysrIGIvdXRpbC9haW8td2lu MzIuYwpAQCAtMzQ1LDcgKzM0NSw3IEBAIGJvb2wgYWlvX3BvbGwoQWlvQ29udGV4dCAqY3R4LCBi b29sIGJsb2NraW5nKQogICAgICAqIHNvIGRpc2FibGUgdGhlIG9wdGltaXphdGlvbiBub3cuCiAg ICAgICovCiAgICAgaWYgKGJsb2NraW5nKSB7Ci0gICAgICAgIGF0b21pY19zZXQoJmN0eC0+bm90 aWZ5X21lLCBhdG9taWNfcmVhZCgmY3R4LT5ub3RpZnlfbWUpICsgMik7CisgICAgICAgIHFhdG9t aWNfc2V0KCZjdHgtPm5vdGlmeV9tZSwgcWF0b21pY19yZWFkKCZjdHgtPm5vdGlmeV9tZSkgKyAy KTsKICAgICAgICAgLyoKICAgICAgICAgICogV3JpdGUgY3R4LT5ub3RpZnlfbWUgYmVmb3JlIGNv bXB1dGluZyB0aGUgdGltZW91dAogICAgICAgICAgKiAocmVhZGluZyBib3R0b20gaGFsZiBmbGFn cywgZXRjLikuICBQYWlycyB3aXRoCkBAIC0zODQsNyArMzg0LDggQEAgYm9vbCBhaW9fcG9sbChB aW9Db250ZXh0ICpjdHgsIGJvb2wgYmxvY2tpbmcpCiAgICAgICAgIHJldCA9IFdhaXRGb3JNdWx0 aXBsZU9iamVjdHMoY291bnQsIGV2ZW50cywgRkFMU0UsIHRpbWVvdXQpOwogICAgICAgICBpZiAo YmxvY2tpbmcpIHsKICAgICAgICAgICAgIGFzc2VydChmaXJzdCk7Ci0gICAgICAgICAgICBhdG9t aWNfc3RvcmVfcmVsZWFzZSgmY3R4LT5ub3RpZnlfbWUsIGF0b21pY19yZWFkKCZjdHgtPm5vdGlm eV9tZSkgLSAyKTsKKyAgICAgICAgICAgIHFhdG9taWNfc3RvcmVfcmVsZWFzZSgmY3R4LT5ub3Rp ZnlfbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWF0b21pY19yZWFkKCZj dHgtPm5vdGlmeV9tZSkgLSAyKTsKICAgICAgICAgICAgIGFpb19ub3RpZnlfYWNjZXB0KGN0eCk7 CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvdXRpbC9hc3luYy5jIGIvdXRpbC9hc3luYy5jCmlu ZGV4IDQyNjY3NDVkZWUuLmY3NTgzNTRjNmEgMTAwNjQ0Ci0tLSBhL3V0aWwvYXN5bmMuYworKysg Yi91dGlsL2FzeW5jLmMKQEAgLTcwLDEzICs3MCwxMyBAQCBzdGF0aWMgdm9pZCBhaW9fYmhfZW5x dWV1ZShRRU1VQkggKmJoLCB1bnNpZ25lZCBuZXdfZmxhZ3MpCiAgICAgdW5zaWduZWQgb2xkX2Zs YWdzOwogCiAgICAgLyoKLSAgICAgKiBUaGUgbWVtb3J5IGJhcnJpZXIgaW1wbGljaXQgaW4gYXRv bWljX2ZldGNoX29yIG1ha2VzIHN1cmUgdGhhdDoKKyAgICAgKiBUaGUgbWVtb3J5IGJhcnJpZXIg aW1wbGljaXQgaW4gcWF0b21pY19mZXRjaF9vciBtYWtlcyBzdXJlIHRoYXQ6CiAgICAgICogMS4g aWRsZSAmIGFueSB3cml0ZXMgbmVlZGVkIGJ5IHRoZSBjYWxsYmFjayBhcmUgZG9uZSBiZWZvcmUg dGhlCiAgICAgICogICAgbG9jYXRpb25zIGFyZSByZWFkIGluIHRoZSBhaW9fYmhfcG9sbC4KICAg ICAgKiAyLiBjdHggaXMgbG9hZGVkIGJlZm9yZSB0aGUgY2FsbGJhY2sgaGFzIGEgY2hhbmNlIHRv IGV4ZWN1dGUgYW5kIGJoCiAgICAgICogICAgY291bGQgYmUgZnJlZWQuCiAgICAgICovCi0gICAg b2xkX2ZsYWdzID0gYXRvbWljX2ZldGNoX29yKCZiaC0+ZmxhZ3MsIEJIX1BFTkRJTkcgfCBuZXdf ZmxhZ3MpOworICAgIG9sZF9mbGFncyA9IHFhdG9taWNfZmV0Y2hfb3IoJmJoLT5mbGFncywgQkhf UEVORElORyB8IG5ld19mbGFncyk7CiAgICAgaWYgKCEob2xkX2ZsYWdzICYgQkhfUEVORElORykp IHsKICAgICAgICAgUVNMSVNUX0lOU0VSVF9IRUFEX0FUT01JQygmY3R4LT5iaF9saXN0LCBiaCwg bmV4dCk7CiAgICAgfQpAQCAtOTYsMTMgKzk2LDEzIEBAIHN0YXRpYyBRRU1VQkggKmFpb19iaF9k ZXF1ZXVlKEJITGlzdCAqaGVhZCwgdW5zaWduZWQgKmZsYWdzKQogICAgIFFTTElTVF9SRU1PVkVf SEVBRChoZWFkLCBuZXh0KTsKIAogICAgIC8qCi0gICAgICogVGhlIGF0b21pY19hbmQgaXMgcGFp cmVkIHdpdGggYWlvX2JoX2VucXVldWUoKS4gIFRoZSBpbXBsaWNpdCBtZW1vcnkKKyAgICAgKiBU aGUgcWF0b21pY19hbmQgaXMgcGFpcmVkIHdpdGggYWlvX2JoX2VucXVldWUoKS4gIFRoZSBpbXBs aWNpdCBtZW1vcnkKICAgICAgKiBiYXJyaWVyIGVuc3VyZXMgdGhhdCB0aGUgY2FsbGJhY2sgc2Vl cyBhbGwgd3JpdGVzIGRvbmUgYnkgdGhlIHNjaGVkdWxpbmcKICAgICAgKiB0aHJlYWQuICBJdCBh bHNvIGVuc3VyZXMgdGhhdCB0aGUgc2NoZWR1bGluZyB0aHJlYWQgc2VlcyB0aGUgY2xlYXJlZAog ICAgICAqIGZsYWcgYmVmb3JlIGJoLT5jYiBoYXMgcnVuLCBhbmQgdGh1cyB3aWxsIGNhbGwgYWlv X25vdGlmeSBhZ2FpbiBpZgogICAgICAqIG5lY2Vzc2FyeS4KICAgICAgKi8KLSAgICAqZmxhZ3Mg PSBhdG9taWNfZmV0Y2hfYW5kKCZiaC0+ZmxhZ3MsCisgICAgKmZsYWdzID0gcWF0b21pY19mZXRj aF9hbmQoJmJoLT5mbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH4oQkhfUEVO RElORyB8IEJIX1NDSEVEVUxFRCB8IEJIX0lETEUpKTsKICAgICByZXR1cm4gYmg7CiB9CkBAIC0x ODUsNyArMTg1LDcgQEAgdm9pZCBxZW11X2JoX3NjaGVkdWxlKFFFTVVCSCAqYmgpCiAgKi8KIHZv aWQgcWVtdV9iaF9jYW5jZWwoUUVNVUJIICpiaCkKIHsKLSAgICBhdG9taWNfYW5kKCZiaC0+Zmxh Z3MsIH5CSF9TQ0hFRFVMRUQpOworICAgIHFhdG9taWNfYW5kKCZiaC0+ZmxhZ3MsIH5CSF9TQ0hF RFVMRUQpOwogfQogCiAvKiBUaGlzIGZ1bmMgaXMgYXN5bmMuVGhlIGJvdHRvbSBoYWxmIHdpbGwg ZG8gdGhlIGRlbGV0ZSBhY3Rpb24gYXQgdGhlIGZpbmlhbApAQCAtMjQ5LDcgKzI0OSw3IEBAIGFp b19jdHhfcHJlcGFyZShHU291cmNlICpzb3VyY2UsIGdpbnQgICAgKnRpbWVvdXQpCiB7CiAgICAg QWlvQ29udGV4dCAqY3R4ID0gKEFpb0NvbnRleHQgKikgc291cmNlOwogCi0gICAgYXRvbWljX3Nl dCgmY3R4LT5ub3RpZnlfbWUsIGF0b21pY19yZWFkKCZjdHgtPm5vdGlmeV9tZSkgfCAxKTsKKyAg ICBxYXRvbWljX3NldCgmY3R4LT5ub3RpZnlfbWUsIHFhdG9taWNfcmVhZCgmY3R4LT5ub3RpZnlf bWUpIHwgMSk7CiAKICAgICAvKgogICAgICAqIFdyaXRlIGN0eC0+bm90aWZ5X21lIGJlZm9yZSBj b21wdXRpbmcgdGhlIHRpbWVvdXQKQEAgLTI3Niw3ICsyNzYsNyBAQCBhaW9fY3R4X2NoZWNrKEdT b3VyY2UgKnNvdXJjZSkKICAgICBCSExpc3RTbGljZSAqczsKIAogICAgIC8qIEZpbmlzaCBjb21w dXRpbmcgdGhlIHRpbWVvdXQgYmVmb3JlIGNsZWFyaW5nIHRoZSBmbGFnLiAgKi8KLSAgICBhdG9t aWNfc3RvcmVfcmVsZWFzZSgmY3R4LT5ub3RpZnlfbWUsIGF0b21pY19yZWFkKCZjdHgtPm5vdGlm eV9tZSkgJiB+MSk7CisgICAgcWF0b21pY19zdG9yZV9yZWxlYXNlKCZjdHgtPm5vdGlmeV9tZSwg cWF0b21pY19yZWFkKCZjdHgtPm5vdGlmeV9tZSkgJiB+MSk7CiAgICAgYWlvX25vdGlmeV9hY2Nl cHQoY3R4KTsKIAogICAgIFFTTElTVF9GT1JFQUNIX1JDVShiaCwgJmN0eC0+YmhfbGlzdCwgbmV4 dCkgewpAQCAtNDI0LDIxICs0MjQsMjEgQEAgdm9pZCBhaW9fbm90aWZ5KEFpb0NvbnRleHQgKmN0 eCkKICAgICAgKiBhaW9fbm90aWZ5X2FjY2VwdC4KICAgICAgKi8KICAgICBzbXBfd21iKCk7Ci0g ICAgYXRvbWljX3NldCgmY3R4LT5ub3RpZmllZCwgdHJ1ZSk7CisgICAgcWF0b21pY19zZXQoJmN0 eC0+bm90aWZpZWQsIHRydWUpOwogCiAgICAgLyoKICAgICAgKiBXcml0ZSBjdHgtPm5vdGlmaWVk IGJlZm9yZSByZWFkaW5nIGN0eC0+bm90aWZ5X21lLiAgUGFpcnMKICAgICAgKiB3aXRoIHNtcF9t YiBpbiBhaW9fY3R4X3ByZXBhcmUgb3IgYWlvX3BvbGwuCiAgICAgICovCiAgICAgc21wX21iKCk7 Ci0gICAgaWYgKGF0b21pY19yZWFkKCZjdHgtPm5vdGlmeV9tZSkpIHsKKyAgICBpZiAocWF0b21p Y19yZWFkKCZjdHgtPm5vdGlmeV9tZSkpIHsKICAgICAgICAgZXZlbnRfbm90aWZpZXJfc2V0KCZj dHgtPm5vdGlmaWVyKTsKICAgICB9CiB9CiAKIHZvaWQgYWlvX25vdGlmeV9hY2NlcHQoQWlvQ29u dGV4dCAqY3R4KQogewotICAgIGF0b21pY19zZXQoJmN0eC0+bm90aWZpZWQsIGZhbHNlKTsKKyAg ICBxYXRvbWljX3NldCgmY3R4LT5ub3RpZmllZCwgZmFsc2UpOwogCiAgICAgLyoKICAgICAgKiBX cml0ZSBjdHgtPm5vdGlmaWVkIGJlZm9yZSByZWFkaW5nIGUuZy4gYmgtPmZsYWdzLiAgUGFpcnMg d2l0aCBzbXBfd21iCkBAIC00NjUsNyArNDY1LDcgQEAgc3RhdGljIGJvb2wgYWlvX2NvbnRleHRf bm90aWZpZXJfcG9sbCh2b2lkICpvcGFxdWUpCiAgICAgRXZlbnROb3RpZmllciAqZSA9IG9wYXF1 ZTsKICAgICBBaW9Db250ZXh0ICpjdHggPSBjb250YWluZXJfb2YoZSwgQWlvQ29udGV4dCwgbm90 aWZpZXIpOwogCi0gICAgcmV0dXJuIGF0b21pY19yZWFkKCZjdHgtPm5vdGlmaWVkKTsKKyAgICBy ZXR1cm4gcWF0b21pY19yZWFkKCZjdHgtPm5vdGlmaWVkKTsKIH0KIAogc3RhdGljIHZvaWQgY29f c2NoZWR1bGVfYmhfY2Iodm9pZCAqb3BhcXVlKQpAQCAtNDg5LDcgKzQ4OSw3IEBAIHN0YXRpYyB2 b2lkIGNvX3NjaGVkdWxlX2JoX2NiKHZvaWQgKm9wYXF1ZSkKICAgICAgICAgYWlvX2NvbnRleHRf YWNxdWlyZShjdHgpOwogCiAgICAgICAgIC8qIFByb3RlY3RlZCBieSB3cml0ZSBiYXJyaWVyIGlu IHFlbXVfYWlvX2Nvcm91dGluZV9lbnRlciAqLwotICAgICAgICBhdG9taWNfc2V0KCZjby0+c2No ZWR1bGVkLCBOVUxMKTsKKyAgICAgICAgcWF0b21pY19zZXQoJmNvLT5zY2hlZHVsZWQsIE5VTEwp OwogICAgICAgICBxZW11X2Fpb19jb3JvdXRpbmVfZW50ZXIoY3R4LCBjbyk7CiAgICAgICAgIGFp b19jb250ZXh0X3JlbGVhc2UoY3R4KTsKICAgICB9CkBAIC01NDYsNyArNTQ2LDcgQEAgZmFpbDoK IHZvaWQgYWlvX2NvX3NjaGVkdWxlKEFpb0NvbnRleHQgKmN0eCwgQ29yb3V0aW5lICpjbykKIHsK ICAgICB0cmFjZV9haW9fY29fc2NoZWR1bGUoY3R4LCBjbyk7Ci0gICAgY29uc3QgY2hhciAqc2No ZWR1bGVkID0gYXRvbWljX2NtcHhjaGcoJmNvLT5zY2hlZHVsZWQsIE5VTEwsCisgICAgY29uc3Qg Y2hhciAqc2NoZWR1bGVkID0gcWF0b21pY19jbXB4Y2hnKCZjby0+c2NoZWR1bGVkLCBOVUxMLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZnVuY19fKTsKIAog ICAgIGlmIChzY2hlZHVsZWQpIHsKQEAgLTU3Nyw3ICs1NzcsNyBAQCB2b2lkIGFpb19jb193YWtl KHN0cnVjdCBDb3JvdXRpbmUgKmNvKQogICAgICAqIHFlbXVfY29yb3V0aW5lX2VudGVyLgogICAg ICAqLwogICAgIHNtcF9yZWFkX2JhcnJpZXJfZGVwZW5kcygpOwotICAgIGN0eCA9IGF0b21pY19y ZWFkKCZjby0+Y3R4KTsKKyAgICBjdHggPSBxYXRvbWljX3JlYWQoJmNvLT5jdHgpOwogCiAgICAg YWlvX2NvX2VudGVyKGN0eCwgY28pOwogfQpkaWZmIC0tZ2l0IGEvdXRpbC9hdG9taWM2NC5jIGIv dXRpbC9hdG9taWM2NC5jCmluZGV4IGIxOThhNmM5YzguLjkzMDM3ZDViMTEgMTAwNjQ0Ci0tLSBh L3V0aWwvYXRvbWljNjQuYworKysgYi91dGlsL2F0b21pYzY0LmMKQEAgLTUxLDggKzUxLDggQEAg c3RhdGljIFFlbXVTcGluICphZGRyX3RvX2xvY2soY29uc3Qgdm9pZCAqYWRkcikKICAgICAgICAg cmV0dXJuIHJldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9CiAKLUdFTl9S RUFEKGF0b21pY19yZWFkX2k2NCwgaW50NjRfdCkKLUdFTl9SRUFEKGF0b21pY19yZWFkX3U2NCwg dWludDY0X3QpCitHRU5fUkVBRChxYXRvbWljX3JlYWRfaTY0LCBpbnQ2NF90KQorR0VOX1JFQUQo cWF0b21pY19yZWFkX3U2NCwgdWludDY0X3QpCiAjdW5kZWYgR0VOX1JFQUQKIAogI2RlZmluZSBH RU5fU0VUKG5hbWUsIHR5cGUpICAgICAgICAgICAgICAgICAgICAgXApAQCAtNjUsMTEgKzY1LDEx IEBAIEdFTl9SRUFEKGF0b21pY19yZWFkX3U2NCwgdWludDY0X3QpCiAgICAgICAgIHFlbXVfc3Bp bl91bmxvY2sobG9jayk7ICAgICAgICAgICAgICAgICBcCiAgICAgfQogCi1HRU5fU0VUKGF0b21p Y19zZXRfaTY0LCBpbnQ2NF90KQotR0VOX1NFVChhdG9taWNfc2V0X3U2NCwgdWludDY0X3QpCitH RU5fU0VUKHFhdG9taWNfc2V0X2k2NCwgaW50NjRfdCkKK0dFTl9TRVQocWF0b21pY19zZXRfdTY0 LCB1aW50NjRfdCkKICN1bmRlZiBHRU5fU0VUCiAKLXZvaWQgYXRvbWljNjRfaW5pdCh2b2lkKQor dm9pZCBxYXRvbWljNjRfaW5pdCh2b2lkKQogewogICAgIGludCBpOwogCmRpZmYgLS1naXQgYS91 dGlsL2JpdG1hcC5jIGIvdXRpbC9iaXRtYXAuYwppbmRleCAxNzUzZmY3ZjViLi4xZjIwMTM5M2Fl IDEwMDY0NAotLS0gYS91dGlsL2JpdG1hcC5jCisrKyBiL3V0aWwvYml0bWFwLmMKQEAgLTE5MCw3 ICsxOTAsNyBAQCB2b2lkIGJpdG1hcF9zZXRfYXRvbWljKHVuc2lnbmVkIGxvbmcgKm1hcCwgbG9u ZyBzdGFydCwgbG9uZyBucikKIAogICAgIC8qIEZpcnN0IHdvcmQgKi8KICAgICBpZiAobnIgLSBi aXRzX3RvX3NldCA+IDApIHsKLSAgICAgICAgYXRvbWljX29yKHAsIG1hc2tfdG9fc2V0KTsKKyAg ICAgICAgcWF0b21pY19vcihwLCBtYXNrX3RvX3NldCk7CiAgICAgICAgIG5yIC09IGJpdHNfdG9f c2V0OwogICAgICAgICBiaXRzX3RvX3NldCA9IEJJVFNfUEVSX0xPTkc7CiAgICAgICAgIG1hc2tf dG9fc2V0ID0gfjBVTDsKQEAgLTIwOSw5ICsyMDksOSBAQCB2b2lkIGJpdG1hcF9zZXRfYXRvbWlj KHVuc2lnbmVkIGxvbmcgKm1hcCwgbG9uZyBzdGFydCwgbG9uZyBucikKICAgICAvKiBMYXN0IHdv cmQgKi8KICAgICBpZiAobnIpIHsKICAgICAgICAgbWFza190b19zZXQgJj0gQklUTUFQX0xBU1Rf V09SRF9NQVNLKHNpemUpOwotICAgICAgICBhdG9taWNfb3IocCwgbWFza190b19zZXQpOworICAg ICAgICBxYXRvbWljX29yKHAsIG1hc2tfdG9fc2V0KTsKICAgICB9IGVsc2UgewotICAgICAgICAv KiBJZiB3ZSBhdm9pZGVkIHRoZSBmdWxsIGJhcnJpZXIgaW4gYXRvbWljX29yKCksIGlzc3VlIGEK KyAgICAgICAgLyogSWYgd2UgYXZvaWRlZCB0aGUgZnVsbCBiYXJyaWVyIGluIHFhdG9taWNfb3Io KSwgaXNzdWUgYQogICAgICAgICAgKiBiYXJyaWVyIHRvIGFjY291bnQgZm9yIHRoZSBhc3NpZ25t ZW50cyBpbiB0aGUgd2hpbGUgbG9vcC4KICAgICAgICAgICovCiAgICAgICAgIHNtcF9tYigpOwpA QCAtMjUzLDcgKzI1Myw3IEBAIGJvb2wgYml0bWFwX3Rlc3RfYW5kX2NsZWFyX2F0b21pYyh1bnNp Z25lZCBsb25nICptYXAsIGxvbmcgc3RhcnQsIGxvbmcgbnIpCiAKICAgICAvKiBGaXJzdCB3b3Jk ICovCiAgICAgaWYgKG5yIC0gYml0c190b19jbGVhciA+IDApIHsKLSAgICAgICAgb2xkX2JpdHMg PSBhdG9taWNfZmV0Y2hfYW5kKHAsIH5tYXNrX3RvX2NsZWFyKTsKKyAgICAgICAgb2xkX2JpdHMg PSBxYXRvbWljX2ZldGNoX2FuZChwLCB+bWFza190b19jbGVhcik7CiAgICAgICAgIGRpcnR5IHw9 IG9sZF9iaXRzICYgbWFza190b19jbGVhcjsKICAgICAgICAgbnIgLT0gYml0c190b19jbGVhcjsK ICAgICAgICAgYml0c190b19jbGVhciA9IEJJVFNfUEVSX0xPTkc7CkBAIC0yNjUsNyArMjY1LDcg QEAgYm9vbCBiaXRtYXBfdGVzdF9hbmRfY2xlYXJfYXRvbWljKHVuc2lnbmVkIGxvbmcgKm1hcCwg bG9uZyBzdGFydCwgbG9uZyBucikKICAgICBpZiAoYml0c190b19jbGVhciA9PSBCSVRTX1BFUl9M T05HKSB7CiAgICAgICAgIHdoaWxlIChuciA+PSBCSVRTX1BFUl9MT05HKSB7CiAgICAgICAgICAg ICBpZiAoKnApIHsKLSAgICAgICAgICAgICAgICBvbGRfYml0cyA9IGF0b21pY194Y2hnKHAsIDAp OworICAgICAgICAgICAgICAgIG9sZF9iaXRzID0gcWF0b21pY194Y2hnKHAsIDApOwogICAgICAg ICAgICAgICAgIGRpcnR5IHw9IG9sZF9iaXRzOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg bnIgLT0gQklUU19QRVJfTE9ORzsKQEAgLTI3Niw3ICsyNzYsNyBAQCBib29sIGJpdG1hcF90ZXN0 X2FuZF9jbGVhcl9hdG9taWModW5zaWduZWQgbG9uZyAqbWFwLCBsb25nIHN0YXJ0LCBsb25nIG5y KQogICAgIC8qIExhc3Qgd29yZCAqLwogICAgIGlmIChucikgewogICAgICAgICBtYXNrX3RvX2Ns ZWFyICY9IEJJVE1BUF9MQVNUX1dPUkRfTUFTSyhzaXplKTsKLSAgICAgICAgb2xkX2JpdHMgPSBh dG9taWNfZmV0Y2hfYW5kKHAsIH5tYXNrX3RvX2NsZWFyKTsKKyAgICAgICAgb2xkX2JpdHMgPSBx YXRvbWljX2ZldGNoX2FuZChwLCB+bWFza190b19jbGVhcik7CiAgICAgICAgIGRpcnR5IHw9IG9s ZF9iaXRzICYgbWFza190b19jbGVhcjsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIWRpcnR5 KSB7CkBAIC0yOTEsNyArMjkxLDcgQEAgdm9pZCBiaXRtYXBfY29weV9hbmRfY2xlYXJfYXRvbWlj KHVuc2lnbmVkIGxvbmcgKmRzdCwgdW5zaWduZWQgbG9uZyAqc3JjLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxvbmcgbnIpCiB7CiAgICAgd2hpbGUgKG5yID4gMCkgewotICAg ICAgICAqZHN0ID0gYXRvbWljX3hjaGcoc3JjLCAwKTsKKyAgICAgICAgKmRzdCA9IHFhdG9taWNf eGNoZyhzcmMsIDApOwogICAgICAgICBkc3QrKzsKICAgICAgICAgc3JjKys7CiAgICAgICAgIG5y IC09IEJJVFNfUEVSX0xPTkc7CmRpZmYgLS1naXQgYS91dGlsL2NhY2hlaW5mby5jIGIvdXRpbC9j YWNoZWluZm8uYwppbmRleCBkOTRkYzZhZGM4Li43ODA0YzE4NmI2IDEwMDY0NAotLS0gYS91dGls L2NhY2hlaW5mby5jCisrKyBiL3V0aWwvY2FjaGVpbmZvLmMKQEAgLTE5Myw1ICsxOTMsNSBAQCBz dGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIGluaXRfY2FjaGVfaW5mbyh2 b2lkKQogICAgIHFlbXVfZGNhY2hlX2xpbmVzaXplID0gZHNpemU7CiAgICAgcWVtdV9kY2FjaGVf bGluZXNpemVfbG9nID0gY3R6MzIoZHNpemUpOwogCi0gICAgYXRvbWljNjRfaW5pdCgpOworICAg IHFhdG9taWM2NF9pbml0KCk7CiB9CmRpZmYgLS1naXQgYS91dGlsL2ZkbW9uLWVwb2xsLmMgYi91 dGlsL2ZkbW9uLWVwb2xsLmMKaW5kZXggZmNkOTg5ZDQ3ZC4uZTExYThhMDIyZSAxMDA2NDQKLS0t IGEvdXRpbC9mZG1vbi1lcG9sbC5jCisrKyBiL3V0aWwvZmRtb24tZXBvbGwuYwpAQCAtNjUsNyAr NjUsNyBAQCBzdGF0aWMgaW50IGZkbW9uX2Vwb2xsX3dhaXQoQWlvQ29udGV4dCAqY3R4LCBBaW9I YW5kbGVyTGlzdCAqcmVhZHlfbGlzdCwKICAgICBzdHJ1Y3QgZXBvbGxfZXZlbnQgZXZlbnRzWzEy OF07CiAKICAgICAvKiBGYWxsIGJhY2sgd2hpbGUgZXh0ZXJuYWwgY2xpZW50cyBhcmUgZGlzYWJs ZWQgKi8KLSAgICBpZiAoYXRvbWljX3JlYWQoJmN0eC0+ZXh0ZXJuYWxfZGlzYWJsZV9jbnQpKSB7 CisgICAgaWYgKHFhdG9taWNfcmVhZCgmY3R4LT5leHRlcm5hbF9kaXNhYmxlX2NudCkpIHsKICAg ICAgICAgcmV0dXJuIGZkbW9uX3BvbGxfb3BzLndhaXQoY3R4LCByZWFkeV9saXN0LCB0aW1lb3V0 KTsKICAgICB9CiAKQEAgLTEzMiw3ICsxMzIsNyBAQCBib29sIGZkbW9uX2Vwb2xsX3RyeV91cGdy YWRlKEFpb0NvbnRleHQgKmN0eCwgdW5zaWduZWQgbnBmZCkKICAgICB9CiAKICAgICAvKiBEbyBu b3QgdXBncmFkZSB3aGlsZSBleHRlcm5hbCBjbGllbnRzIGFyZSBkaXNhYmxlZCAqLwotICAgIGlm IChhdG9taWNfcmVhZCgmY3R4LT5leHRlcm5hbF9kaXNhYmxlX2NudCkpIHsKKyAgICBpZiAocWF0 b21pY19yZWFkKCZjdHgtPmV4dGVybmFsX2Rpc2FibGVfY250KSkgewogICAgICAgICByZXR1cm4g ZmFsc2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS91dGlsL2ZkbW9uLWlvX3VyaW5nLmMgYi91dGls L2ZkbW9uLWlvX3VyaW5nLmMKaW5kZXggMWQxNDE3N2RmMC4uMTQ2MWRmYTQwNyAxMDA2NDQKLS0t IGEvdXRpbC9mZG1vbi1pb191cmluZy5jCisrKyBiL3V0aWwvZmRtb24taW9fdXJpbmcuYwpAQCAt MTAzLDcgKzEwMyw3IEBAIHN0YXRpYyB2b2lkIGVucXVldWUoQWlvSGFuZGxlclNMaXN0ICpoZWFk LCBBaW9IYW5kbGVyICpub2RlLCB1bnNpZ25lZCBmbGFncykKIHsKICAgICB1bnNpZ25lZCBvbGRf ZmxhZ3M7CiAKLSAgICBvbGRfZmxhZ3MgPSBhdG9taWNfZmV0Y2hfb3IoJm5vZGUtPmZsYWdzLCBG RE1PTl9JT19VUklOR19QRU5ESU5HIHwgZmxhZ3MpOworICAgIG9sZF9mbGFncyA9IHFhdG9taWNf ZmV0Y2hfb3IoJm5vZGUtPmZsYWdzLCBGRE1PTl9JT19VUklOR19QRU5ESU5HIHwgZmxhZ3MpOwog ICAgIGlmICghKG9sZF9mbGFncyAmIEZETU9OX0lPX1VSSU5HX1BFTkRJTkcpKSB7CiAgICAgICAg IFFTTElTVF9JTlNFUlRfSEVBRF9BVE9NSUMoaGVhZCwgbm9kZSwgbm9kZV9zdWJtaXR0ZWQpOwog ICAgIH0KQEAgLTEyNyw3ICsxMjcsNyBAQCBzdGF0aWMgQWlvSGFuZGxlciAqZGVxdWV1ZShBaW9I YW5kbGVyU0xpc3QgKmhlYWQsIHVuc2lnbmVkICpmbGFncykKICAgICAgKiB0ZWxsaW5nIHByb2Nl c3NfY3FlKCkgdG8gZGVsZXRlIHRoZSBBaW9IYW5kbGVyIHdoZW4gaXRzCiAgICAgICogSU9SSU5H X09QX1BPTExfQUREIGNvbXBsZXRlcy4KICAgICAgKi8KLSAgICAqZmxhZ3MgPSBhdG9taWNfZmV0 Y2hfYW5kKCZub2RlLT5mbGFncywgfihGRE1PTl9JT19VUklOR19QRU5ESU5HIHwKKyAgICAqZmxh Z3MgPSBxYXRvbWljX2ZldGNoX2FuZCgmbm9kZS0+ZmxhZ3MsIH4oRkRNT05fSU9fVVJJTkdfUEVO RElORyB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkRN T05fSU9fVVJJTkdfQUREKSk7CiAgICAgcmV0dXJuIG5vZGU7CiB9CkBAIC0yMzMsNyArMjMzLDcg QEAgc3RhdGljIGJvb2wgcHJvY2Vzc19jcWUoQWlvQ29udGV4dCAqY3R4LAogICAgICAqIHdpdGgg ZW5xdWV1ZSgpIGhlcmUgdGhlbiB3ZSBjYW4gc2FmZWx5IGNsZWFyIHRoZSBGRE1PTl9JT19VUklO R19SRU1PVkUKICAgICAgKiBiaXQgYmVmb3JlIElPUklOR19PUF9QT0xMX1JFTU9WRSBpcyBzdWJt aXR0ZWQuCiAgICAgICovCi0gICAgZmxhZ3MgPSBhdG9taWNfZmV0Y2hfYW5kKCZub2RlLT5mbGFn cywgfkZETU9OX0lPX1VSSU5HX1JFTU9WRSk7CisgICAgZmxhZ3MgPSBxYXRvbWljX2ZldGNoX2Fu ZCgmbm9kZS0+ZmxhZ3MsIH5GRE1PTl9JT19VUklOR19SRU1PVkUpOwogICAgIGlmIChmbGFncyAm IEZETU9OX0lPX1VSSU5HX1JFTU9WRSkgewogICAgICAgICBRTElTVF9JTlNFUlRfSEVBRF9SQ1Uo JmN0eC0+ZGVsZXRlZF9haW9faGFuZGxlcnMsIG5vZGUsIG5vZGVfZGVsZXRlZCk7CiAgICAgICAg IHJldHVybiBmYWxzZTsKQEAgLTI3Myw3ICsyNzMsNyBAQCBzdGF0aWMgaW50IGZkbW9uX2lvX3Vy aW5nX3dhaXQoQWlvQ29udGV4dCAqY3R4LCBBaW9IYW5kbGVyTGlzdCAqcmVhZHlfbGlzdCwKICAg ICBpbnQgcmV0OwogCiAgICAgLyogRmFsbCBiYWNrIHdoaWxlIGV4dGVybmFsIGNsaWVudHMgYXJl IGRpc2FibGVkICovCi0gICAgaWYgKGF0b21pY19yZWFkKCZjdHgtPmV4dGVybmFsX2Rpc2FibGVf Y250KSkgeworICAgIGlmIChxYXRvbWljX3JlYWQoJmN0eC0+ZXh0ZXJuYWxfZGlzYWJsZV9jbnQp KSB7CiAgICAgICAgIHJldHVybiBmZG1vbl9wb2xsX29wcy53YWl0KGN0eCwgcmVhZHlfbGlzdCwg dGltZW91dCk7CiAgICAgfQogCkBAIC0zMTIsNyArMzEyLDcgQEAgc3RhdGljIGJvb2wgZmRtb25f aW9fdXJpbmdfbmVlZF93YWl0KEFpb0NvbnRleHQgKmN0eCkKICAgICB9CiAKICAgICAvKiBBcmUg d2UgZmFsbGluZyBiYWNrIHRvIGZkbW9uLXBvbGw/ICovCi0gICAgcmV0dXJuIGF0b21pY19yZWFk KCZjdHgtPmV4dGVybmFsX2Rpc2FibGVfY250KTsKKyAgICByZXR1cm4gcWF0b21pY19yZWFkKCZj dHgtPmV4dGVybmFsX2Rpc2FibGVfY250KTsKIH0KIAogc3RhdGljIGNvbnN0IEZETW9uT3BzIGZk bW9uX2lvX3VyaW5nX29wcyA9IHsKQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lkIGZkbW9uX2lvX3Vy aW5nX2Rlc3Ryb3koQWlvQ29udGV4dCAqY3R4KQogCiAgICAgICAgIC8qIE1vdmUgaGFuZGxlcnMg ZHVlIHRvIGJlIHJlbW92ZWQgb250byB0aGUgZGVsZXRlZCBsaXN0ICovCiAgICAgICAgIHdoaWxl ICgobm9kZSA9IFFTTElTVF9GSVJTVF9SQ1UoJmN0eC0+c3VibWl0X2xpc3QpKSkgewotICAgICAg ICAgICAgdW5zaWduZWQgZmxhZ3MgPSBhdG9taWNfZmV0Y2hfYW5kKCZub2RlLT5mbGFncywKKyAg ICAgICAgICAgIHVuc2lnbmVkIGZsYWdzID0gcWF0b21pY19mZXRjaF9hbmQoJm5vZGUtPmZsYWdz LAogICAgICAgICAgICAgICAgICAgICB+KEZETU9OX0lPX1VSSU5HX1BFTkRJTkcgfAogICAgICAg ICAgICAgICAgICAgICAgIEZETU9OX0lPX1VSSU5HX0FERCB8CiAgICAgICAgICAgICAgICAgICAg ICAgRkRNT05fSU9fVVJJTkdfUkVNT1ZFKSk7CmRpZmYgLS1naXQgYS91dGlsL2xvY2tjbnQuYyBi L3V0aWwvbG9ja2NudC5jCmluZGV4IDRmODhkY2Y4YjguLjVkYTM2OTQ2YjEgMTAwNjQ0Ci0tLSBh L3V0aWwvbG9ja2NudC5jCisrKyBiL3V0aWwvbG9ja2NudC5jCkBAIC02MSw3ICs2MSw3IEBAIHN0 YXRpYyBib29sIHFlbXVfbG9ja2NudF9jbXB4Y2hnX29yX3dhaXQoUWVtdUxvY2tDbnQgKmxvY2tj bnQsIGludCAqdmFsLAogICAgICAgICBpbnQgZXhwZWN0ZWQgPSAqdmFsOwogCiAgICAgICAgIHRy YWNlX2xvY2tjbnRfZmFzdF9wYXRoX2F0dGVtcHQobG9ja2NudCwgZXhwZWN0ZWQsIG5ld19pZl9m cmVlKTsKLSAgICAgICAgKnZhbCA9IGF0b21pY19jbXB4Y2hnKCZsb2NrY250LT5jb3VudCwgZXhw ZWN0ZWQsIG5ld19pZl9mcmVlKTsKKyAgICAgICAgKnZhbCA9IHFhdG9taWNfY21weGNoZygmbG9j a2NudC0+Y291bnQsIGV4cGVjdGVkLCBuZXdfaWZfZnJlZSk7CiAgICAgICAgIGlmICgqdmFsID09 IGV4cGVjdGVkKSB7CiAgICAgICAgICAgICB0cmFjZV9sb2NrY250X2Zhc3RfcGF0aF9zdWNjZXNz KGxvY2tjbnQsIGV4cGVjdGVkLCBuZXdfaWZfZnJlZSk7CiAgICAgICAgICAgICAqdmFsID0gbmV3 X2lmX2ZyZWU7CkBAIC04MSw3ICs4MSw3IEBAIHN0YXRpYyBib29sIHFlbXVfbG9ja2NudF9jbXB4 Y2hnX29yX3dhaXQoUWVtdUxvY2tDbnQgKmxvY2tjbnQsIGludCAqdmFsLAogICAgICAgICAgICAg aW50IG5ldyA9IGV4cGVjdGVkIC0gUUVNVV9MT0NLQ05UX1NUQVRFX0xPQ0tFRCArIFFFTVVfTE9D S0NOVF9TVEFURV9XQUlUSU5HOwogCiAgICAgICAgICAgICB0cmFjZV9sb2NrY250X2Z1dGV4X3dh aXRfcHJlcGFyZShsb2NrY250LCBleHBlY3RlZCwgbmV3KTsKLSAgICAgICAgICAgICp2YWwgPSBh dG9taWNfY21weGNoZygmbG9ja2NudC0+Y291bnQsIGV4cGVjdGVkLCBuZXcpOworICAgICAgICAg ICAgKnZhbCA9IHFhdG9taWNfY21weGNoZygmbG9ja2NudC0+Y291bnQsIGV4cGVjdGVkLCBuZXcp OwogICAgICAgICAgICAgaWYgKCp2YWwgPT0gZXhwZWN0ZWQpIHsKICAgICAgICAgICAgICAgICAq dmFsID0gbmV3OwogICAgICAgICAgICAgfQpAQCAtOTIsNyArOTIsNyBAQCBzdGF0aWMgYm9vbCBx ZW11X2xvY2tjbnRfY21weGNoZ19vcl93YWl0KFFlbXVMb2NrQ250ICpsb2NrY250LCBpbnQgKnZh bCwKICAgICAgICAgICAgICp3YWl0ZWQgPSB0cnVlOwogICAgICAgICAgICAgdHJhY2VfbG9ja2Nu dF9mdXRleF93YWl0KGxvY2tjbnQsICp2YWwpOwogICAgICAgICAgICAgcWVtdV9mdXRleF93YWl0 KCZsb2NrY250LT5jb3VudCwgKnZhbCk7Ci0gICAgICAgICAgICAqdmFsID0gYXRvbWljX3JlYWQo JmxvY2tjbnQtPmNvdW50KTsKKyAgICAgICAgICAgICp2YWwgPSBxYXRvbWljX3JlYWQoJmxvY2tj bnQtPmNvdW50KTsKICAgICAgICAgICAgIHRyYWNlX2xvY2tjbnRfZnV0ZXhfd2FpdF9yZXN1bWUo bG9ja2NudCwgKnZhbCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtMTEw LDEzICsxMTAsMTQgQEAgc3RhdGljIHZvaWQgbG9ja2NudF93YWtlKFFlbXVMb2NrQ250ICpsb2Nr Y250KQogCiB2b2lkIHFlbXVfbG9ja2NudF9pbmMoUWVtdUxvY2tDbnQgKmxvY2tjbnQpCiB7Ci0g ICAgaW50IHZhbCA9IGF0b21pY19yZWFkKCZsb2NrY250LT5jb3VudCk7CisgICAgaW50IHZhbCA9 IHFhdG9taWNfcmVhZCgmbG9ja2NudC0+Y291bnQpOwogICAgIGJvb2wgd2FpdGVkID0gZmFsc2U7 CiAKICAgICBmb3IgKDs7KSB7CiAgICAgICAgIGlmICh2YWwgPj0gUUVNVV9MT0NLQ05UX0NPVU5U X1NURVApIHsKICAgICAgICAgICAgIGludCBleHBlY3RlZCA9IHZhbDsKLSAgICAgICAgICAgIHZh bCA9IGF0b21pY19jbXB4Y2hnKCZsb2NrY250LT5jb3VudCwgdmFsLCB2YWwgKyBRRU1VX0xPQ0tD TlRfQ09VTlRfU1RFUCk7CisgICAgICAgICAgICB2YWwgPSBxYXRvbWljX2NtcHhjaGcoJmxvY2tj bnQtPmNvdW50LCB2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsICsg UUVNVV9MT0NLQ05UX0NPVU5UX1NURVApOwogICAgICAgICAgICAgaWYgKHZhbCA9PSBleHBlY3Rl ZCkgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTQyLDcgKzE0 Myw3IEBAIHZvaWQgcWVtdV9sb2NrY250X2luYyhRZW11TG9ja0NudCAqbG9ja2NudCkKIAogdm9p ZCBxZW11X2xvY2tjbnRfZGVjKFFlbXVMb2NrQ250ICpsb2NrY250KQogewotICAgIGF0b21pY19z dWIoJmxvY2tjbnQtPmNvdW50LCBRRU1VX0xPQ0tDTlRfQ09VTlRfU1RFUCk7CisgICAgcWF0b21p Y19zdWIoJmxvY2tjbnQtPmNvdW50LCBRRU1VX0xPQ0tDTlRfQ09VTlRfU1RFUCk7CiB9CiAKIC8q IERlY3JlbWVudCBhIGNvdW50ZXIsIGFuZCByZXR1cm4gbG9ja2VkIGlmIGl0IGlzIGRlY3JlbWVu dGVkIHRvIHplcm8uCkBAIC0xNTEsMTQgKzE1MiwxNSBAQCB2b2lkIHFlbXVfbG9ja2NudF9kZWMo UWVtdUxvY2tDbnQgKmxvY2tjbnQpCiAgKi8KIGJvb2wgcWVtdV9sb2NrY250X2RlY19hbmRfbG9j ayhRZW11TG9ja0NudCAqbG9ja2NudCkKIHsKLSAgICBpbnQgdmFsID0gYXRvbWljX3JlYWQoJmxv Y2tjbnQtPmNvdW50KTsKKyAgICBpbnQgdmFsID0gcWF0b21pY19yZWFkKCZsb2NrY250LT5jb3Vu dCk7CiAgICAgaW50IGxvY2tlZF9zdGF0ZSA9IFFFTVVfTE9DS0NOVF9TVEFURV9MT0NLRUQ7CiAg ICAgYm9vbCB3YWl0ZWQgPSBmYWxzZTsKIAogICAgIGZvciAoOzspIHsKICAgICAgICAgaWYgKHZh bCA+PSAyICogUUVNVV9MT0NLQ05UX0NPVU5UX1NURVApIHsKICAgICAgICAgICAgIGludCBleHBl Y3RlZCA9IHZhbDsKLSAgICAgICAgICAgIHZhbCA9IGF0b21pY19jbXB4Y2hnKCZsb2NrY250LT5j b3VudCwgdmFsLCB2YWwgLSBRRU1VX0xPQ0tDTlRfQ09VTlRfU1RFUCk7CisgICAgICAgICAgICB2 YWwgPSBxYXRvbWljX2NtcHhjaGcoJmxvY2tjbnQtPmNvdW50LCB2YWwsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdmFsIC0gUUVNVV9MT0NLQ05UX0NPVU5UX1NURVApOwogICAg ICAgICAgICAgaWYgKHZhbCA9PSBleHBlY3RlZCkgewogICAgICAgICAgICAgICAgIGJyZWFrOwog ICAgICAgICAgICAgfQpAQCAtMTk5LDcgKzIwMSw3IEBAIGJvb2wgcWVtdV9sb2NrY250X2RlY19h bmRfbG9jayhRZW11TG9ja0NudCAqbG9ja2NudCkKICAqLwogYm9vbCBxZW11X2xvY2tjbnRfZGVj X2lmX2xvY2soUWVtdUxvY2tDbnQgKmxvY2tjbnQpCiB7Ci0gICAgaW50IHZhbCA9IGF0b21pY19y ZWFkKCZsb2NrY250LT5jb3VudCk7CisgICAgaW50IHZhbCA9IHFhdG9taWNfcmVhZCgmbG9ja2Nu dC0+Y291bnQpOwogICAgIGludCBsb2NrZWRfc3RhdGUgPSBRRU1VX0xPQ0tDTlRfU1RBVEVfTE9D S0VEOwogICAgIGJvb2wgd2FpdGVkID0gZmFsc2U7CiAKQEAgLTIzMyw3ICsyMzUsNyBAQCBib29s IHFlbXVfbG9ja2NudF9kZWNfaWZfbG9jayhRZW11TG9ja0NudCAqbG9ja2NudCkKIAogdm9pZCBx ZW11X2xvY2tjbnRfbG9jayhRZW11TG9ja0NudCAqbG9ja2NudCkKIHsKLSAgICBpbnQgdmFsID0g YXRvbWljX3JlYWQoJmxvY2tjbnQtPmNvdW50KTsKKyAgICBpbnQgdmFsID0gcWF0b21pY19yZWFk KCZsb2NrY250LT5jb3VudCk7CiAgICAgaW50IHN0ZXAgPSBRRU1VX0xPQ0tDTlRfU1RBVEVfTE9D S0VEOwogICAgIGJvb2wgd2FpdGVkID0gZmFsc2U7CiAKQEAgLTI1NSwxMiArMjU3LDEyIEBAIHZv aWQgcWVtdV9sb2NrY250X2luY19hbmRfdW5sb2NrKFFlbXVMb2NrQ250ICpsb2NrY250KQogewog ICAgIGludCBleHBlY3RlZCwgbmV3LCB2YWw7CiAKLSAgICB2YWwgPSBhdG9taWNfcmVhZCgmbG9j a2NudC0+Y291bnQpOworICAgIHZhbCA9IHFhdG9taWNfcmVhZCgmbG9ja2NudC0+Y291bnQpOwog ICAgIGRvIHsKICAgICAgICAgZXhwZWN0ZWQgPSB2YWw7CiAgICAgICAgIG5ldyA9ICh2YWwgKyBR RU1VX0xPQ0tDTlRfQ09VTlRfU1RFUCkgJiB+UUVNVV9MT0NLQ05UX1NUQVRFX01BU0s7CiAgICAg ICAgIHRyYWNlX2xvY2tjbnRfdW5sb2NrX2F0dGVtcHQobG9ja2NudCwgdmFsLCBuZXcpOwotICAg ICAgICB2YWwgPSBhdG9taWNfY21weGNoZygmbG9ja2NudC0+Y291bnQsIHZhbCwgbmV3KTsKKyAg ICAgICAgdmFsID0gcWF0b21pY19jbXB4Y2hnKCZsb2NrY250LT5jb3VudCwgdmFsLCBuZXcpOwog ICAgIH0gd2hpbGUgKHZhbCAhPSBleHBlY3RlZCk7CiAKICAgICB0cmFjZV9sb2NrY250X3VubG9j a19zdWNjZXNzKGxvY2tjbnQsIHZhbCwgbmV3KTsKQEAgLTI3MywxMiArMjc1LDEyIEBAIHZvaWQg cWVtdV9sb2NrY250X3VubG9jayhRZW11TG9ja0NudCAqbG9ja2NudCkKIHsKICAgICBpbnQgZXhw ZWN0ZWQsIG5ldywgdmFsOwogCi0gICAgdmFsID0gYXRvbWljX3JlYWQoJmxvY2tjbnQtPmNvdW50 KTsKKyAgICB2YWwgPSBxYXRvbWljX3JlYWQoJmxvY2tjbnQtPmNvdW50KTsKICAgICBkbyB7CiAg ICAgICAgIGV4cGVjdGVkID0gdmFsOwogICAgICAgICBuZXcgPSB2YWwgJiB+UUVNVV9MT0NLQ05U X1NUQVRFX01BU0s7CiAgICAgICAgIHRyYWNlX2xvY2tjbnRfdW5sb2NrX2F0dGVtcHQobG9ja2Nu dCwgdmFsLCBuZXcpOwotICAgICAgICB2YWwgPSBhdG9taWNfY21weGNoZygmbG9ja2NudC0+Y291 bnQsIHZhbCwgbmV3KTsKKyAgICAgICAgdmFsID0gcWF0b21pY19jbXB4Y2hnKCZsb2NrY250LT5j b3VudCwgdmFsLCBuZXcpOwogICAgIH0gd2hpbGUgKHZhbCAhPSBleHBlY3RlZCk7CiAKICAgICB0 cmFjZV9sb2NrY250X3VubG9ja19zdWNjZXNzKGxvY2tjbnQsIHZhbCwgbmV3KTsKQEAgLTI4OSw3 ICsyOTEsNyBAQCB2b2lkIHFlbXVfbG9ja2NudF91bmxvY2soUWVtdUxvY2tDbnQgKmxvY2tjbnQp CiAKIHVuc2lnbmVkIHFlbXVfbG9ja2NudF9jb3VudChRZW11TG9ja0NudCAqbG9ja2NudCkKIHsK LSAgICByZXR1cm4gYXRvbWljX3JlYWQoJmxvY2tjbnQtPmNvdW50KSA+PiBRRU1VX0xPQ0tDTlRf Q09VTlRfU0hJRlQ7CisgICAgcmV0dXJuIHFhdG9taWNfcmVhZCgmbG9ja2NudC0+Y291bnQpID4+ IFFFTVVfTE9DS0NOVF9DT1VOVF9TSElGVDsKIH0KICNlbHNlCiB2b2lkIHFlbXVfbG9ja2NudF9p bml0KFFlbXVMb2NrQ250ICpsb2NrY250KQpAQCAtMzA3LDEzICszMDksMTMgQEAgdm9pZCBxZW11 X2xvY2tjbnRfaW5jKFFlbXVMb2NrQ250ICpsb2NrY250KQogewogICAgIGludCBvbGQ7CiAgICAg Zm9yICg7OykgewotICAgICAgICBvbGQgPSBhdG9taWNfcmVhZCgmbG9ja2NudC0+Y291bnQpOwor ICAgICAgICBvbGQgPSBxYXRvbWljX3JlYWQoJmxvY2tjbnQtPmNvdW50KTsKICAgICAgICAgaWYg KG9sZCA9PSAwKSB7CiAgICAgICAgICAgICBxZW11X2xvY2tjbnRfbG9jayhsb2NrY250KTsKICAg ICAgICAgICAgIHFlbXVfbG9ja2NudF9pbmNfYW5kX3VubG9jayhsb2NrY250KTsKICAgICAgICAg ICAgIHJldHVybjsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChhdG9taWNfY21w eGNoZygmbG9ja2NudC0+Y291bnQsIG9sZCwgb2xkICsgMSkgPT0gb2xkKSB7CisgICAgICAgICAg ICBpZiAocWF0b21pY19jbXB4Y2hnKCZsb2NrY250LT5jb3VudCwgb2xkLCBvbGQgKyAxKSA9PSBv bGQpIHsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K QEAgLTMyMiw3ICszMjQsNyBAQCB2b2lkIHFlbXVfbG9ja2NudF9pbmMoUWVtdUxvY2tDbnQgKmxv Y2tjbnQpCiAKIHZvaWQgcWVtdV9sb2NrY250X2RlYyhRZW11TG9ja0NudCAqbG9ja2NudCkKIHsK LSAgICBhdG9taWNfZGVjKCZsb2NrY250LT5jb3VudCk7CisgICAgcWF0b21pY19kZWMoJmxvY2tj bnQtPmNvdW50KTsKIH0KIAogLyogRGVjcmVtZW50IGEgY291bnRlciwgYW5kIHJldHVybiBsb2Nr ZWQgaWYgaXQgaXMgZGVjcmVtZW50ZWQgdG8gemVyby4KQEAgLTMzMSw5ICszMzMsOSBAQCB2b2lk IHFlbXVfbG9ja2NudF9kZWMoUWVtdUxvY2tDbnQgKmxvY2tjbnQpCiAgKi8KIGJvb2wgcWVtdV9s b2NrY250X2RlY19hbmRfbG9jayhRZW11TG9ja0NudCAqbG9ja2NudCkKIHsKLSAgICBpbnQgdmFs ID0gYXRvbWljX3JlYWQoJmxvY2tjbnQtPmNvdW50KTsKKyAgICBpbnQgdmFsID0gcWF0b21pY19y ZWFkKCZsb2NrY250LT5jb3VudCk7CiAgICAgd2hpbGUgKHZhbCA+IDEpIHsKLSAgICAgICAgaW50 IG9sZCA9IGF0b21pY19jbXB4Y2hnKCZsb2NrY250LT5jb3VudCwgdmFsLCB2YWwgLSAxKTsKKyAg ICAgICAgaW50IG9sZCA9IHFhdG9taWNfY21weGNoZygmbG9ja2NudC0+Y291bnQsIHZhbCwgdmFs IC0gMSk7CiAgICAgICAgIGlmIChvbGQgIT0gdmFsKSB7CiAgICAgICAgICAgICB2YWwgPSBvbGQ7 CiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTM0Myw3ICszNDUsNyBAQCBib29sIHFlbXVfbG9j a2NudF9kZWNfYW5kX2xvY2soUWVtdUxvY2tDbnQgKmxvY2tjbnQpCiAgICAgfQogCiAgICAgcWVt dV9sb2NrY250X2xvY2sobG9ja2NudCk7Ci0gICAgaWYgKGF0b21pY19mZXRjaF9kZWMoJmxvY2tj bnQtPmNvdW50KSA9PSAxKSB7CisgICAgaWYgKHFhdG9taWNfZmV0Y2hfZGVjKCZsb2NrY250LT5j b3VudCkgPT0gMSkgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM2MCwxMyAr MzYyLDEzIEBAIGJvb2wgcWVtdV9sb2NrY250X2RlY19hbmRfbG9jayhRZW11TG9ja0NudCAqbG9j a2NudCkKIGJvb2wgcWVtdV9sb2NrY250X2RlY19pZl9sb2NrKFFlbXVMb2NrQ250ICpsb2NrY250 KQogewogICAgIC8qIE5vIG5lZWQgZm9yIGFjcXVpcmUgc2VtYW50aWNzIGlmIHdlIHJldHVybiBm YWxzZS4gICovCi0gICAgaW50IHZhbCA9IGF0b21pY19yZWFkKCZsb2NrY250LT5jb3VudCk7Cisg ICAgaW50IHZhbCA9IHFhdG9taWNfcmVhZCgmbG9ja2NudC0+Y291bnQpOwogICAgIGlmICh2YWwg PiAxKSB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBxZW11X2xvY2tjbnRf bG9jayhsb2NrY250KTsKLSAgICBpZiAoYXRvbWljX2ZldGNoX2RlYygmbG9ja2NudC0+Y291bnQp ID09IDEpIHsKKyAgICBpZiAocWF0b21pY19mZXRjaF9kZWMoJmxvY2tjbnQtPmNvdW50KSA9PSAx KSB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMzgxLDcgKzM4Myw3IEBAIHZv aWQgcWVtdV9sb2NrY250X2xvY2soUWVtdUxvY2tDbnQgKmxvY2tjbnQpCiAKIHZvaWQgcWVtdV9s b2NrY250X2luY19hbmRfdW5sb2NrKFFlbXVMb2NrQ250ICpsb2NrY250KQogewotICAgIGF0b21p Y19pbmMoJmxvY2tjbnQtPmNvdW50KTsKKyAgICBxYXRvbWljX2luYygmbG9ja2NudC0+Y291bnQp OwogICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZsb2NrY250LT5tdXRleCk7CiB9CiAKQEAgLTM5Miw2 ICszOTQsNiBAQCB2b2lkIHFlbXVfbG9ja2NudF91bmxvY2soUWVtdUxvY2tDbnQgKmxvY2tjbnQp CiAKIHVuc2lnbmVkIHFlbXVfbG9ja2NudF9jb3VudChRZW11TG9ja0NudCAqbG9ja2NudCkKIHsK LSAgICByZXR1cm4gYXRvbWljX3JlYWQoJmxvY2tjbnQtPmNvdW50KTsKKyAgICByZXR1cm4gcWF0 b21pY19yZWFkKCZsb2NrY250LT5jb3VudCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwv bG9nLmMgYi91dGlsL2xvZy5jCmluZGV4IGJkYjNkNzEyZTguLjRiNDIzMDYyYWEgMTAwNjQ0Ci0t LSBhL3V0aWwvbG9nLmMKKysrIGIvdXRpbC9sb2cuYwpAQCAtNDEsNyArNDEsNyBAQCBpbnQgcWVt dV9sb2coY29uc3QgY2hhciAqZm10LCAuLi4pCiAgICAgUWVtdUxvZ0ZpbGUgKmxvZ2ZpbGU7CiAK ICAgICByY3VfcmVhZF9sb2NrKCk7Ci0gICAgbG9nZmlsZSA9IGF0b21pY19yY3VfcmVhZCgmcWVt dV9sb2dmaWxlKTsKKyAgICBsb2dmaWxlID0gcWF0b21pY19yY3VfcmVhZCgmcWVtdV9sb2dmaWxl KTsKICAgICBpZiAobG9nZmlsZSkgewogICAgICAgICB2YV9saXN0IGFwOwogICAgICAgICB2YV9z dGFydChhcCwgZm10KTsKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBxZW11X3NldF9sb2coaW50IGxv Z19mbGFncykKICAgICBRRU1VX0xPQ0tfR1VBUkQoJnFlbXVfbG9nZmlsZV9tdXRleCk7CiAgICAg aWYgKHFlbXVfbG9nZmlsZSAmJiAhbmVlZF90b19vcGVuX2ZpbGUpIHsKICAgICAgICAgbG9nZmls ZSA9IHFlbXVfbG9nZmlsZTsKLSAgICAgICAgYXRvbWljX3JjdV9zZXQoJnFlbXVfbG9nZmlsZSwg TlVMTCk7CisgICAgICAgIHFhdG9taWNfcmN1X3NldCgmcWVtdV9sb2dmaWxlLCBOVUxMKTsKICAg ICAgICAgY2FsbF9yY3UobG9nZmlsZSwgcWVtdV9sb2dmaWxlX2ZyZWUsIHJjdSk7CiAgICAgfSBl bHNlIGlmICghcWVtdV9sb2dmaWxlICYmIG5lZWRfdG9fb3Blbl9maWxlKSB7CiAgICAgICAgIGxv Z2ZpbGUgPSBnX25ldzAoUWVtdUxvZ0ZpbGUsIDEpOwpAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQg cWVtdV9zZXRfbG9nKGludCBsb2dfZmxhZ3MpCiAjZW5kaWYKICAgICAgICAgICAgIGxvZ19hcHBl bmQgPSAxOwogICAgICAgICB9Ci0gICAgICAgIGF0b21pY19yY3Vfc2V0KCZxZW11X2xvZ2ZpbGUs IGxvZ2ZpbGUpOworICAgICAgICBxYXRvbWljX3JjdV9zZXQoJnFlbXVfbG9nZmlsZSwgbG9nZmls ZSk7CiAgICAgfQogfQogCkBAIC0yNzIsNyArMjcyLDcgQEAgdm9pZCBxZW11X2xvZ19mbHVzaCh2 b2lkKQogICAgIFFlbXVMb2dGaWxlICpsb2dmaWxlOwogCiAgICAgcmN1X3JlYWRfbG9jaygpOwot ICAgIGxvZ2ZpbGUgPSBhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAgbG9nZmls ZSA9IHFhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CiAgICAgaWYgKGxvZ2ZpbGUpIHsK ICAgICAgICAgZmZsdXNoKGxvZ2ZpbGUtPmZkKTsKICAgICB9CkBAIC0yODgsNyArMjg4LDcgQEAg dm9pZCBxZW11X2xvZ19jbG9zZSh2b2lkKQogICAgIGxvZ2ZpbGUgPSBxZW11X2xvZ2ZpbGU7CiAK ICAgICBpZiAobG9nZmlsZSkgewotICAgICAgICBhdG9taWNfcmN1X3NldCgmcWVtdV9sb2dmaWxl LCBOVUxMKTsKKyAgICAgICAgcWF0b21pY19yY3Vfc2V0KCZxZW11X2xvZ2ZpbGUsIE5VTEwpOwog ICAgICAgICBjYWxsX3JjdShsb2dmaWxlLCBxZW11X2xvZ2ZpbGVfZnJlZSwgcmN1KTsKICAgICB9 CiAgICAgcWVtdV9tdXRleF91bmxvY2soJnFlbXVfbG9nZmlsZV9tdXRleCk7CmRpZmYgLS1naXQg YS91dGlsL3FlbXUtY29yb3V0aW5lLWxvY2suYyBiL3V0aWwvcWVtdS1jb3JvdXRpbmUtbG9jay5j CmluZGV4IDVkYTUyMzQxNTUuLjM2OTI3YjVmODggMTAwNjQ0Ci0tLSBhL3V0aWwvcWVtdS1jb3Jv dXRpbmUtbG9jay5jCisrKyBiL3V0aWwvcWVtdS1jb3JvdXRpbmUtbG9jay5jCkBAIC0yMTIsMTAg KzIxMiwxMCBAQCBzdGF0aWMgdm9pZCBjb3JvdXRpbmVfZm4gcWVtdV9jb19tdXRleF9sb2NrX3Ns b3dwYXRoKEFpb0NvbnRleHQgKmN0eCwKICAgICAvKiBUaGlzIGlzIHRoZSAiUmVzcG9uc2liaWxp dHkgSGFuZC1PZmYiIHByb3RvY29sOyBhIGxvY2soKSBwaWNrcyBmcm9tCiAgICAgICogYSBjb25j dXJyZW50IHVubG9jaygpIHRoZSByZXNwb25zaWJpbGl0eSBvZiB3YWtpbmcgc29tZWJvZHkgdXAu CiAgICAgICovCi0gICAgb2xkX2hhbmRvZmYgPSBhdG9taWNfbWJfcmVhZCgmbXV0ZXgtPmhhbmRv ZmYpOworICAgIG9sZF9oYW5kb2ZmID0gcWF0b21pY19tYl9yZWFkKCZtdXRleC0+aGFuZG9mZik7 CiAgICAgaWYgKG9sZF9oYW5kb2ZmICYmCiAgICAgICAgIGhhc193YWl0ZXJzKG11dGV4KSAmJgot ICAgICAgICBhdG9taWNfY21weGNoZygmbXV0ZXgtPmhhbmRvZmYsIG9sZF9oYW5kb2ZmLCAwKSA9 PSBvbGRfaGFuZG9mZikgeworICAgICAgICBxYXRvbWljX2NtcHhjaGcoJm11dGV4LT5oYW5kb2Zm LCBvbGRfaGFuZG9mZiwgMCkgPT0gb2xkX2hhbmRvZmYpIHsKICAgICAgICAgLyogVGhlcmUgY2Fu IGJlIG5vIGNvbmN1cnJlbnQgcG9wcywgYmVjYXVzZSB0aGVyZSBjYW4gYmUgb25seQogICAgICAg ICAgKiBvbmUgYWN0aXZlIGhhbmRvZmYgYXQgYSB0aW1lLgogICAgICAgICAgKi8KQEAgLTI1MCwx OCArMjUwLDE4IEBAIHZvaWQgY29yb3V0aW5lX2ZuIHFlbXVfY29fbXV0ZXhfbG9jayhDb011dGV4 ICptdXRleCkKICAgICAgKi8KICAgICBpID0gMDsKIHJldHJ5X2Zhc3RfcGF0aDoKLSAgICB3YWl0 ZXJzID0gYXRvbWljX2NtcHhjaGcoJm11dGV4LT5sb2NrZWQsIDAsIDEpOworICAgIHdhaXRlcnMg PSBxYXRvbWljX2NtcHhjaGcoJm11dGV4LT5sb2NrZWQsIDAsIDEpOwogICAgIGlmICh3YWl0ZXJz ICE9IDApIHsKICAgICAgICAgd2hpbGUgKHdhaXRlcnMgPT0gMSAmJiArK2kgPCAxMDAwKSB7Ci0g ICAgICAgICAgICBpZiAoYXRvbWljX3JlYWQoJm11dGV4LT5jdHgpID09IGN0eCkgeworICAgICAg ICAgICAgaWYgKHFhdG9taWNfcmVhZCgmbXV0ZXgtPmN0eCkgPT0gY3R4KSB7CiAgICAgICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYXRvbWljX3JlYWQo Jm11dGV4LT5sb2NrZWQpID09IDApIHsKKyAgICAgICAgICAgIGlmIChxYXRvbWljX3JlYWQoJm11 dGV4LT5sb2NrZWQpID09IDApIHsKICAgICAgICAgICAgICAgICBnb3RvIHJldHJ5X2Zhc3RfcGF0 aDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNwdV9yZWxheCgpOwogICAgICAgICB9Ci0g ICAgICAgIHdhaXRlcnMgPSBhdG9taWNfZmV0Y2hfaW5jKCZtdXRleC0+bG9ja2VkKTsKKyAgICAg ICAgd2FpdGVycyA9IHFhdG9taWNfZmV0Y2hfaW5jKCZtdXRleC0+bG9ja2VkKTsKICAgICB9CiAK ICAgICBpZiAod2FpdGVycyA9PSAwKSB7CkBAIC0yODgsNyArMjg4LDcgQEAgdm9pZCBjb3JvdXRp bmVfZm4gcWVtdV9jb19tdXRleF91bmxvY2soQ29NdXRleCAqbXV0ZXgpCiAgICAgbXV0ZXgtPmN0 eCA9IE5VTEw7CiAgICAgbXV0ZXgtPmhvbGRlciA9IE5VTEw7CiAgICAgc2VsZi0+bG9ja3NfaGVs ZC0tOwotICAgIGlmIChhdG9taWNfZmV0Y2hfZGVjKCZtdXRleC0+bG9ja2VkKSA9PSAxKSB7Cisg ICAgaWYgKHFhdG9taWNfZmV0Y2hfZGVjKCZtdXRleC0+bG9ja2VkKSA9PSAxKSB7CiAgICAgICAg IC8qIE5vIHdhaXRpbmcgcWVtdV9jb19tdXRleF9sb2NrKCkuICBQZmV3LCB0aGF0IHdhcyBlYXN5 ISAgKi8KICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lkIGNv cm91dGluZV9mbiBxZW11X2NvX211dGV4X3VubG9jayhDb011dGV4ICptdXRleCkKICAgICAgICAg fQogCiAgICAgICAgIG91cl9oYW5kb2ZmID0gbXV0ZXgtPnNlcXVlbmNlOwotICAgICAgICBhdG9t aWNfbWJfc2V0KCZtdXRleC0+aGFuZG9mZiwgb3VyX2hhbmRvZmYpOworICAgICAgICBxYXRvbWlj X21iX3NldCgmbXV0ZXgtPmhhbmRvZmYsIG91cl9oYW5kb2ZmKTsKICAgICAgICAgaWYgKCFoYXNf d2FpdGVycyhtdXRleCkpIHsKICAgICAgICAgICAgIC8qIFRoZSBjb25jdXJyZW50IGxvY2sgaGFz IG5vdCBhZGRlZCBpdHNlbGYgeWV0LCBzbyBpdAogICAgICAgICAgICAgICogd2lsbCBiZSBhYmxl IHRvIHBpY2sgb3VyIGhhbmRvZmYuCkBAIC0zMjIsNyArMzIyLDcgQEAgdm9pZCBjb3JvdXRpbmVf Zm4gcWVtdV9jb19tdXRleF91bmxvY2soQ29NdXRleCAqbXV0ZXgpCiAgICAgICAgIC8qIFRyeSB0 byBkbyB0aGUgaGFuZG9mZiBwcm90b2NvbCBvdXJzZWx2ZXM7IGlmIHNvbWVib2R5IGVsc2UgaGFz CiAgICAgICAgICAqIGFscmVhZHkgdGFrZW4gaXQsIGhvd2V2ZXIsIHdlJ3JlIGRvbmUgYW5kIHRo ZXkncmUgcmVzcG9uc2libGUuCiAgICAgICAgICAqLwotICAgICAgICBpZiAoYXRvbWljX2NtcHhj aGcoJm11dGV4LT5oYW5kb2ZmLCBvdXJfaGFuZG9mZiwgMCkgIT0gb3VyX2hhbmRvZmYpIHsKKyAg ICAgICAgaWYgKHFhdG9taWNfY21weGNoZygmbXV0ZXgtPmhhbmRvZmYsIG91cl9oYW5kb2ZmLCAw KSAhPSBvdXJfaGFuZG9mZikgewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9 CmRpZmYgLS1naXQgYS91dGlsL3FlbXUtY29yb3V0aW5lLXNsZWVwLmMgYi91dGlsL3FlbXUtY29y b3V0aW5lLXNsZWVwLmMKaW5kZXggNzY5YTc2ZTU3ZC4uOGM0ZGFjNGZkNyAxMDA2NDQKLS0tIGEv dXRpbC9xZW11LWNvcm91dGluZS1zbGVlcC5jCisrKyBiL3V0aWwvcWVtdS1jb3JvdXRpbmUtc2xl ZXAuYwpAQCAtMjgsNyArMjgsNyBAQCBzdHJ1Y3QgUWVtdUNvU2xlZXBTdGF0ZSB7CiB2b2lkIHFl bXVfY29fc2xlZXBfd2FrZShRZW11Q29TbGVlcFN0YXRlICpzbGVlcF9zdGF0ZSkKIHsKICAgICAv KiBXcml0ZSBvZiBzY2hlZHVsZSBwcm90ZWN0ZWQgYnkgYmFycmllciB3cml0ZSBpbiBhaW9fY29f c2NoZWR1bGUgKi8KLSAgICBjb25zdCBjaGFyICpzY2hlZHVsZWQgPSBhdG9taWNfY21weGNoZygm c2xlZXBfc3RhdGUtPmNvLT5zY2hlZHVsZWQsCisgICAgY29uc3QgY2hhciAqc2NoZWR1bGVkID0g cWF0b21pY19jbXB4Y2hnKCZzbGVlcF9zdGF0ZS0+Y28tPnNjaGVkdWxlZCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxZW11X2NvX3NsZWVwX25zX19zY2hlZHVs ZWQsIE5VTEwpOwogCiAgICAgYXNzZXJ0KHNjaGVkdWxlZCA9PSBxZW11X2NvX3NsZWVwX25zX19z Y2hlZHVsZWQpOwpAQCAtNTQsNyArNTQsNyBAQCB2b2lkIGNvcm91dGluZV9mbiBxZW11X2NvX3Ns ZWVwX25zX3dha2VhYmxlKFFFTVVDbG9ja1R5cGUgdHlwZSwgaW50NjRfdCBucywKICAgICAgICAg LnVzZXJfc3RhdGVfcG9pbnRlciA9IHNsZWVwX3N0YXRlLAogICAgIH07CiAKLSAgICBjb25zdCBj aGFyICpzY2hlZHVsZWQgPSBhdG9taWNfY21weGNoZygmc3RhdGUuY28tPnNjaGVkdWxlZCwgTlVM TCwKKyAgICBjb25zdCBjaGFyICpzY2hlZHVsZWQgPSBxYXRvbWljX2NtcHhjaGcoJnN0YXRlLmNv LT5zY2hlZHVsZWQsIE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcWVtdV9jb19zbGVlcF9uc19fc2NoZWR1bGVkKTsKICAgICBpZiAoc2NoZWR1bGVkKSB7 CiAgICAgICAgIGZwcmludGYoc3RkZXJyLApkaWZmIC0tZ2l0IGEvdXRpbC9xZW11LWNvcm91dGlu ZS5jIGIvdXRpbC9xZW11LWNvcm91dGluZS5jCmluZGV4IGMzY2FhNmM3NzAuLjM4ZmI2ZDMwODQg MTAwNjQ0Ci0tLSBhL3V0aWwvcWVtdS1jb3JvdXRpbmUuYworKysgYi91dGlsL3FlbXUtY29yb3V0 aW5lLmMKQEAgLTYwLDcgKzYwLDcgQEAgQ29yb3V0aW5lICpxZW11X2Nvcm91dGluZV9jcmVhdGUo Q29yb3V0aW5lRW50cnkgKmVudHJ5LCB2b2lkICpvcGFxdWUpCiAgICAgICAgICAgICAgICAgICog cmVsZWFzZV9wb29sX3NpemUgYW5kIHRoZSBhY3R1YWwgc2l6ZSBvZiByZWxlYXNlX3Bvb2wuICBC dXQKICAgICAgICAgICAgICAgICAgKiBpdCBpcyBqdXN0IGEgaGV1cmlzdGljLCBpdCBkb2VzIG5v dCBuZWVkIHRvIGJlIHBlcmZlY3QuCiAgICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAg ICAgYWxsb2NfcG9vbF9zaXplID0gYXRvbWljX3hjaGcoJnJlbGVhc2VfcG9vbF9zaXplLCAwKTsK KyAgICAgICAgICAgICAgICBhbGxvY19wb29sX3NpemUgPSBxYXRvbWljX3hjaGcoJnJlbGVhc2Vf cG9vbF9zaXplLCAwKTsKICAgICAgICAgICAgICAgICBRU0xJU1RfTU9WRV9BVE9NSUMoJmFsbG9j X3Bvb2wsICZyZWxlYXNlX3Bvb2wpOwogICAgICAgICAgICAgICAgIGNvID0gUVNMSVNUX0ZJUlNU KCZhbGxvY19wb29sKTsKICAgICAgICAgICAgIH0KQEAgLTg4LDcgKzg4LDcgQEAgc3RhdGljIHZv aWQgY29yb3V0aW5lX2RlbGV0ZShDb3JvdXRpbmUgKmNvKQogICAgIGlmIChDT05GSUdfQ09ST1VU SU5FX1BPT0wpIHsKICAgICAgICAgaWYgKHJlbGVhc2VfcG9vbF9zaXplIDwgUE9PTF9CQVRDSF9T SVpFICogMikgewogICAgICAgICAgICAgUVNMSVNUX0lOU0VSVF9IRUFEX0FUT01JQygmcmVsZWFz ZV9wb29sLCBjbywgcG9vbF9uZXh0KTsKLSAgICAgICAgICAgIGF0b21pY19pbmMoJnJlbGVhc2Vf cG9vbF9zaXplKTsKKyAgICAgICAgICAgIHFhdG9taWNfaW5jKCZyZWxlYXNlX3Bvb2xfc2l6ZSk7 CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKGFsbG9jX3Bvb2xf c2l6ZSA8IFBPT0xfQkFUQ0hfU0laRSkgewpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgcWVtdV9h aW9fY29yb3V0aW5lX2VudGVyKEFpb0NvbnRleHQgKmN0eCwgQ29yb3V0aW5lICpjbykKIAogICAg ICAgICAvKiBDYW5ub3QgcmVseSBvbiB0aGUgcmVhZCBiYXJyaWVyIGZvciB0byBpbiBhaW9fY29f d2FrZSgpLCBhcyB0aGVyZSBhcmUKICAgICAgICAgICogY2FsbGVycyBvdXRzaWRlIG9mIGFpb19j b193YWtlKCkgKi8KLSAgICAgICAgY29uc3QgY2hhciAqc2NoZWR1bGVkID0gYXRvbWljX21iX3Jl YWQoJnRvLT5zY2hlZHVsZWQpOworICAgICAgICBjb25zdCBjaGFyICpzY2hlZHVsZWQgPSBxYXRv bWljX21iX3JlYWQoJnRvLT5zY2hlZHVsZWQpOwogCiAgICAgICAgIFFTSU1QTEVRX1JFTU9WRV9I RUFEKCZwZW5kaW5nLCBjb19xdWV1ZV9uZXh0KTsKIApkaWZmIC0tZ2l0IGEvdXRpbC9xZW11LXNv Y2tldHMuYyBiL3V0aWwvcWVtdS1zb2NrZXRzLmMKaW5kZXggOTljZTJmZDVlNi4uZGU0YmY3NjE2 ZSAxMDA2NDQKLS0tIGEvdXRpbC9xZW11LXNvY2tldHMuYworKysgYi91dGlsL3FlbXUtc29ja2V0 cy5jCkBAIC0zOTUsNyArMzk1LDcgQEAgc3RhdGljIHN0cnVjdCBhZGRyaW5mbyAqaW5ldF9wYXJz ZV9jb25uZWN0X3NhZGRyKEluZXRTb2NrZXRBZGRyZXNzICpzYWRkciwKICAgICBtZW1zZXQoJmFp LCAwLCBzaXplb2YoYWkpKTsKIAogICAgIGFpLmFpX2ZsYWdzID0gQUlfQ0FOT05OQU1FIHwgQUlf QUREUkNPTkZJRzsKLSAgICBpZiAoYXRvbWljX3JlYWQoJnVzZVY0TWFwcGVkKSkgeworICAgIGlm IChxYXRvbWljX3JlYWQoJnVzZVY0TWFwcGVkKSkgewogICAgICAgICBhaS5haV9mbGFncyB8PSBB SV9WNE1BUFBFRDsKICAgICB9CiAgICAgYWkuYWlfZmFtaWx5ID0gaW5ldF9haV9mYW1pbHlfZnJv bV9hZGRyZXNzKHNhZGRyLCAmZXJyKTsKQEAgLTQyMSw3ICs0MjEsNyBAQCBzdGF0aWMgc3RydWN0 IGFkZHJpbmZvICppbmV0X3BhcnNlX2Nvbm5lY3Rfc2FkZHIoSW5ldFNvY2tldEFkZHJlc3MgKnNh ZGRyLAogICAgICAqLwogICAgIGlmIChyYyA9PSBFQUlfQkFERkxBR1MgJiYKICAgICAgICAgKGFp LmFpX2ZsYWdzICYgQUlfVjRNQVBQRUQpKSB7Ci0gICAgICAgIGF0b21pY19zZXQoJnVzZVY0TWFw cGVkLCAwKTsKKyAgICAgICAgcWF0b21pY19zZXQoJnVzZVY0TWFwcGVkLCAwKTsKICAgICAgICAg YWkuYWlfZmxhZ3MgJj0gfkFJX1Y0TUFQUEVEOwogICAgICAgICByYyA9IGdldGFkZHJpbmZvKHNh ZGRyLT5ob3N0LCBzYWRkci0+cG9ydCwgJmFpLCAmcmVzKTsKICAgICB9CmRpZmYgLS1naXQgYS91 dGlsL3FlbXUtdGhyZWFkLXBvc2l4LmMgYi91dGlsL3FlbXUtdGhyZWFkLXBvc2l4LmMKaW5kZXgg YjRjMjM1OTI3Mi4uZGNmZjVlN2M1ZCAxMDA2NDQKLS0tIGEvdXRpbC9xZW11LXRocmVhZC1wb3Np eC5jCisrKyBiL3V0aWwvcWVtdS10aHJlYWQtcG9zaXguYwpAQCAtNDE0LDggKzQxNCw4IEBAIHZv aWQgcWVtdV9ldmVudF9zZXQoUWVtdUV2ZW50ICpldikKICAgICAgKi8KICAgICBhc3NlcnQoZXYt PmluaXRpYWxpemVkKTsKICAgICBzbXBfbWIoKTsKLSAgICBpZiAoYXRvbWljX3JlYWQoJmV2LT52 YWx1ZSkgIT0gRVZfU0VUKSB7Ci0gICAgICAgIGlmIChhdG9taWNfeGNoZygmZXYtPnZhbHVlLCBF Vl9TRVQpID09IEVWX0JVU1kpIHsKKyAgICBpZiAocWF0b21pY19yZWFkKCZldi0+dmFsdWUpICE9 IEVWX1NFVCkgeworICAgICAgICBpZiAocWF0b21pY194Y2hnKCZldi0+dmFsdWUsIEVWX1NFVCkg PT0gRVZfQlVTWSkgewogICAgICAgICAgICAgLyogVGhlcmUgd2VyZSB3YWl0ZXJzLCB3YWtlIHRo ZW0gdXAuICAqLwogICAgICAgICAgICAgcWVtdV9mdXRleF93YWtlKGV2LCBJTlRfTUFYKTsKICAg ICAgICAgfQpAQCAtNDI3LDE0ICs0MjcsMTQgQEAgdm9pZCBxZW11X2V2ZW50X3Jlc2V0KFFlbXVF dmVudCAqZXYpCiAgICAgdW5zaWduZWQgdmFsdWU7CiAKICAgICBhc3NlcnQoZXYtPmluaXRpYWxp emVkKTsKLSAgICB2YWx1ZSA9IGF0b21pY19yZWFkKCZldi0+dmFsdWUpOworICAgIHZhbHVlID0g cWF0b21pY19yZWFkKCZldi0+dmFsdWUpOwogICAgIHNtcF9tYl9hY3F1aXJlKCk7CiAgICAgaWYg KHZhbHVlID09IEVWX1NFVCkgewogICAgICAgICAvKgogICAgICAgICAgKiBJZiB0aGVyZSB3YXMg YSBjb25jdXJyZW50IHJlc2V0IChvciBldmVuIHJlc2V0K3dhaXQpLAogICAgICAgICAgKiBkbyBu b3RoaW5nLiAgT3RoZXJ3aXNlIGNoYW5nZSBFVl9TRVQtPkVWX0ZSRUUuCiAgICAgICAgICAqLwot ICAgICAgICBhdG9taWNfb3IoJmV2LT52YWx1ZSwgRVZfRlJFRSk7CisgICAgICAgIHFhdG9taWNf b3IoJmV2LT52YWx1ZSwgRVZfRlJFRSk7CiAgICAgfQogfQogCkBAIC00NDMsNyArNDQzLDcgQEAg dm9pZCBxZW11X2V2ZW50X3dhaXQoUWVtdUV2ZW50ICpldikKICAgICB1bnNpZ25lZCB2YWx1ZTsK IAogICAgIGFzc2VydChldi0+aW5pdGlhbGl6ZWQpOwotICAgIHZhbHVlID0gYXRvbWljX3JlYWQo JmV2LT52YWx1ZSk7CisgICAgdmFsdWUgPSBxYXRvbWljX3JlYWQoJmV2LT52YWx1ZSk7CiAgICAg c21wX21iX2FjcXVpcmUoKTsKICAgICBpZiAodmFsdWUgIT0gRVZfU0VUKSB7CiAgICAgICAgIGlm ICh2YWx1ZSA9PSBFVl9GUkVFKSB7CkBAIC00NTMsNyArNDUzLDcgQEAgdm9pZCBxZW11X2V2ZW50 X3dhaXQoUWVtdUV2ZW50ICpldikKICAgICAgICAgICAgICAqIGEgY29uY3VycmVudCBidXN5LT5m cmVlIHRyYW5zaXRpb24uICBBZnRlciB0aGUgQ0FTLCB0aGUKICAgICAgICAgICAgICAqIGV2ZW50 IHdpbGwgYmUgZWl0aGVyIHNldCBvciBidXN5LgogICAgICAgICAgICAgICovCi0gICAgICAgICAg ICBpZiAoYXRvbWljX2NtcHhjaGcoJmV2LT52YWx1ZSwgRVZfRlJFRSwgRVZfQlVTWSkgPT0gRVZf U0VUKSB7CisgICAgICAgICAgICBpZiAocWF0b21pY19jbXB4Y2hnKCZldi0+dmFsdWUsIEVWX0ZS RUUsIEVWX0JVU1kpID09IEVWX1NFVCkgewogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg ICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvdXRpbC9xZW11LXRocmVhZC13aW4zMi5j IGIvdXRpbC9xZW11LXRocmVhZC13aW4zMi5jCmluZGV4IGQyMDdiMGNiNTguLmNiNWFhMjAxOGMg MTAwNjQ0Ci0tLSBhL3V0aWwvcWVtdS10aHJlYWQtd2luMzIuYworKysgYi91dGlsL3FlbXUtdGhy ZWFkLXdpbjMyLmMKQEAgLTI1MCw4ICsyNTAsOCBAQCB2b2lkIHFlbXVfZXZlbnRfc2V0KFFlbXVF dmVudCAqZXYpCiAgICAgICogZXYtPnZhbHVlIHdlIG5lZWQgYSBmdWxsIG1lbW9yeSBiYXJyaWVy IGhlcmUuCiAgICAgICovCiAgICAgc21wX21iKCk7Ci0gICAgaWYgKGF0b21pY19yZWFkKCZldi0+ dmFsdWUpICE9IEVWX1NFVCkgewotICAgICAgICBpZiAoYXRvbWljX3hjaGcoJmV2LT52YWx1ZSwg RVZfU0VUKSA9PSBFVl9CVVNZKSB7CisgICAgaWYgKHFhdG9taWNfcmVhZCgmZXYtPnZhbHVlKSAh PSBFVl9TRVQpIHsKKyAgICAgICAgaWYgKHFhdG9taWNfeGNoZygmZXYtPnZhbHVlLCBFVl9TRVQp ID09IEVWX0JVU1kpIHsKICAgICAgICAgICAgIC8qIFRoZXJlIHdlcmUgd2FpdGVycywgd2FrZSB0 aGVtIHVwLiAgKi8KICAgICAgICAgICAgIFNldEV2ZW50KGV2LT5ldmVudCk7CiAgICAgICAgIH0K QEAgLTI2MywxMyArMjYzLDEzIEBAIHZvaWQgcWVtdV9ldmVudF9yZXNldChRZW11RXZlbnQgKmV2 KQogICAgIHVuc2lnbmVkIHZhbHVlOwogCiAgICAgYXNzZXJ0KGV2LT5pbml0aWFsaXplZCk7Ci0g ICAgdmFsdWUgPSBhdG9taWNfcmVhZCgmZXYtPnZhbHVlKTsKKyAgICB2YWx1ZSA9IHFhdG9taWNf cmVhZCgmZXYtPnZhbHVlKTsKICAgICBzbXBfbWJfYWNxdWlyZSgpOwogICAgIGlmICh2YWx1ZSA9 PSBFVl9TRVQpIHsKICAgICAgICAgLyogSWYgdGhlcmUgd2FzIGEgY29uY3VycmVudCByZXNldCAo b3IgZXZlbiByZXNldCt3YWl0KSwKICAgICAgICAgICogZG8gbm90aGluZy4gIE90aGVyd2lzZSBj aGFuZ2UgRVZfU0VULT5FVl9GUkVFLgogICAgICAgICAgKi8KLSAgICAgICAgYXRvbWljX29yKCZl di0+dmFsdWUsIEVWX0ZSRUUpOworICAgICAgICBxYXRvbWljX29yKCZldi0+dmFsdWUsIEVWX0ZS RUUpOwogICAgIH0KIH0KIApAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgcWVtdV9ldmVudF93YWl0 KFFlbXVFdmVudCAqZXYpCiAgICAgdW5zaWduZWQgdmFsdWU7CiAKICAgICBhc3NlcnQoZXYtPmlu aXRpYWxpemVkKTsKLSAgICB2YWx1ZSA9IGF0b21pY19yZWFkKCZldi0+dmFsdWUpOworICAgIHZh bHVlID0gcWF0b21pY19yZWFkKCZldi0+dmFsdWUpOwogICAgIHNtcF9tYl9hY3F1aXJlKCk7CiAg ICAgaWYgKHZhbHVlICE9IEVWX1NFVCkgewogICAgICAgICBpZiAodmFsdWUgPT0gRVZfRlJFRSkg ewpAQCAtMjkyLDcgKzI5Miw3IEBAIHZvaWQgcWVtdV9ldmVudF93YWl0KFFlbXVFdmVudCAqZXYp CiAgICAgICAgICAgICAgKiBiZWNhdXNlIHRoZXJlIGNhbm5vdCBiZSBhIGNvbmN1cnJlbnQgYnVz eS0+ZnJlZSB0cmFuc2l0aW9uLgogICAgICAgICAgICAgICogQWZ0ZXIgdGhlIENBUywgdGhlIGV2 ZW50IHdpbGwgYmUgZWl0aGVyIHNldCBvciBidXN5LgogICAgICAgICAgICAgICovCi0gICAgICAg ICAgICBpZiAoYXRvbWljX2NtcHhjaGcoJmV2LT52YWx1ZSwgRVZfRlJFRSwgRVZfQlVTWSkgPT0g RVZfU0VUKSB7CisgICAgICAgICAgICBpZiAocWF0b21pY19jbXB4Y2hnKCZldi0+dmFsdWUsIEVW X0ZSRUUsIEVWX0JVU1kpID09IEVWX1NFVCkgewogICAgICAgICAgICAgICAgIHZhbHVlID0gRVZf U0VUOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IEVWX0JV U1k7CmRpZmYgLS1naXQgYS91dGlsL3FlbXUtdGltZXIuYyBiL3V0aWwvcWVtdS10aW1lci5jCmlu ZGV4IDg3OGQ4MGZkNWUuLmNhNjc3ODM2Y2IgMTAwNjQ0Ci0tLSBhL3V0aWwvcWVtdS10aW1lci5j CisrKyBiL3V0aWwvcWVtdS10aW1lci5jCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBxZW11X2Ns b2NrX2VuYWJsZShRRU1VQ2xvY2tUeXBlIHR5cGUsIGJvb2wgZW5hYmxlZCkKIAogYm9vbCB0aW1l cmxpc3RfaGFzX3RpbWVycyhRRU1VVGltZXJMaXN0ICp0aW1lcl9saXN0KQogewotICAgIHJldHVy biAhIWF0b21pY19yZWFkKCZ0aW1lcl9saXN0LT5hY3RpdmVfdGltZXJzKTsKKyAgICByZXR1cm4g ISFxYXRvbWljX3JlYWQoJnRpbWVyX2xpc3QtPmFjdGl2ZV90aW1lcnMpOwogfQogCiBib29sIHFl bXVfY2xvY2tfaGFzX3RpbWVycyhRRU1VQ2xvY2tUeXBlIHR5cGUpCkBAIC0xODMsNyArMTgzLDcg QEAgYm9vbCB0aW1lcmxpc3RfZXhwaXJlZChRRU1VVGltZXJMaXN0ICp0aW1lcl9saXN0KQogewog ICAgIGludDY0X3QgZXhwaXJlX3RpbWU7CiAKLSAgICBpZiAoIWF0b21pY19yZWFkKCZ0aW1lcl9s aXN0LT5hY3RpdmVfdGltZXJzKSkgeworICAgIGlmICghcWF0b21pY19yZWFkKCZ0aW1lcl9saXN0 LT5hY3RpdmVfdGltZXJzKSkgewogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0y MTMsNyArMjEzLDcgQEAgaW50NjRfdCB0aW1lcmxpc3RfZGVhZGxpbmVfbnMoUUVNVVRpbWVyTGlz dCAqdGltZXJfbGlzdCkKICAgICBpbnQ2NF90IGRlbHRhOwogICAgIGludDY0X3QgZXhwaXJlX3Rp bWU7CiAKLSAgICBpZiAoIWF0b21pY19yZWFkKCZ0aW1lcl9saXN0LT5hY3RpdmVfdGltZXJzKSkg eworICAgIGlmICghcWF0b21pY19yZWFkKCZ0aW1lcl9saXN0LT5hY3RpdmVfdGltZXJzKSkgewog ICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCkBAIC0zODUsNyArMzg1LDcgQEAgc3RhdGljIHZv aWQgdGltZXJfZGVsX2xvY2tlZChRRU1VVGltZXJMaXN0ICp0aW1lcl9saXN0LCBRRU1VVGltZXIg KnRzKQogICAgICAgICBpZiAoIXQpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgaWYgKHQg PT0gdHMpIHsKLSAgICAgICAgICAgIGF0b21pY19zZXQocHQsIHQtPm5leHQpOworICAgICAgICAg ICAgcWF0b21pY19zZXQocHQsIHQtPm5leHQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg IH0KICAgICAgICAgcHQgPSAmdC0+bmV4dDsKQEAgLTQwOCw3ICs0MDgsNyBAQCBzdGF0aWMgYm9v bCB0aW1lcl9tb2RfbnNfbG9ja2VkKFFFTVVUaW1lckxpc3QgKnRpbWVyX2xpc3QsCiAgICAgfQog ICAgIHRzLT5leHBpcmVfdGltZSA9IE1BWChleHBpcmVfdGltZSwgMCk7CiAgICAgdHMtPm5leHQg PSAqcHQ7Ci0gICAgYXRvbWljX3NldChwdCwgdHMpOworICAgIHFhdG9taWNfc2V0KHB0LCB0cyk7 CiAKICAgICByZXR1cm4gcHQgPT0gJnRpbWVyX2xpc3QtPmFjdGl2ZV90aW1lcnM7CiB9CkBAIC01 MDIsNyArNTAyLDcgQEAgYm9vbCB0aW1lcmxpc3RfcnVuX3RpbWVycyhRRU1VVGltZXJMaXN0ICp0 aW1lcl9saXN0KQogICAgIFFFTVVUaW1lckNCICpjYjsKICAgICB2b2lkICpvcGFxdWU7CiAKLSAg ICBpZiAoIWF0b21pY19yZWFkKCZ0aW1lcl9saXN0LT5hY3RpdmVfdGltZXJzKSkgeworICAgIGlm ICghcWF0b21pY19yZWFkKCZ0aW1lcl9saXN0LT5hY3RpdmVfdGltZXJzKSkgewogICAgICAgICBy ZXR1cm4gZmFsc2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS91dGlsL3FodC5jIGIvdXRpbC9xaHQu YwppbmRleCBiMmUwMjBjMzk4Li4wNzk2MDUxMjFiIDEwMDY0NAotLS0gYS91dGlsL3FodC5jCisr KyBiL3V0aWwvcWh0LmMKQEAgLTEzMSwxMSArMTMxLDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBx aHRfdW5sb2NrKHN0cnVjdCBxaHQgKmh0KQogCiAvKgogICogTm90ZTogcmVhZGluZyBwYXJ0aWFs bHktdXBkYXRlZCBwb2ludGVycyBpbiBAcG9pbnRlcnMgY291bGQgbGVhZCB0bwotICogc2VnZmF1 bHRzLiBXZSB0aHVzIGFjY2VzcyB0aGVtIHdpdGggYXRvbWljX3JlYWQvc2V0OyB0aGlzIGd1YXJh bnRlZXMKKyAqIHNlZ2ZhdWx0cy4gV2UgdGh1cyBhY2Nlc3MgdGhlbSB3aXRoIHFhdG9taWNfcmVh ZC9zZXQ7IHRoaXMgZ3VhcmFudGVlcwogICogdGhhdCB0aGUgY29tcGlsZXIgbWFrZXMgYWxsIHRo b3NlIGFjY2Vzc2VzIGF0b21pYy4gV2UgYWxzbyBuZWVkIHRoZQotICogdm9sYXRpbGUtbGlrZSBi ZWhhdmlvciBpbiBhdG9taWNfcmVhZCwgc2luY2Ugb3RoZXJ3aXNlIHRoZSBjb21waWxlcgorICog dm9sYXRpbGUtbGlrZSBiZWhhdmlvciBpbiBxYXRvbWljX3JlYWQsIHNpbmNlIG90aGVyd2lzZSB0 aGUgY29tcGlsZXIKICAqIG1pZ2h0IHJlZmV0Y2ggdGhlIHBvaW50ZXIuCi0gKiBhdG9taWNfcmVh ZCdzIGFyZSBvZiBjb3Vyc2Ugbm90IG5lY2Vzc2FyeSB3aGVuIHRoZSBidWNrZXQgbG9jayBpcyBo ZWxkLgorICogcWF0b21pY19yZWFkJ3MgYXJlIG9mIGNvdXJzZSBub3QgbmVjZXNzYXJ5IHdoZW4g dGhlIGJ1Y2tldCBsb2NrIGlzIGhlbGQuCiAgKgogICogSWYgYm90aCBodC0+bG9jayBhbmQgYi0+ bG9jayBhcmUgZ3JhYmJlZCwgaHQtPmxvY2sgc2hvdWxkIGFsd2F5cwogICogYmUgZ3JhYmJlZCBm aXJzdC4KQEAgLTI4Niw3ICsyODYsNyBAQCB2b2lkIHFodF9tYXBfbG9ja19idWNrZXRzX19ub19z dGFsZShzdHJ1Y3QgcWh0ICpodCwgc3RydWN0IHFodF9tYXAgKipwbWFwKQogewogICAgIHN0cnVj dCBxaHRfbWFwICptYXA7CiAKLSAgICBtYXAgPSBhdG9taWNfcmN1X3JlYWQoJmh0LT5tYXApOwor ICAgIG1hcCA9IHFhdG9taWNfcmN1X3JlYWQoJmh0LT5tYXApOwogICAgIHFodF9tYXBfbG9ja19i dWNrZXRzKG1hcCk7CiAgICAgaWYgKGxpa2VseSghcWh0X21hcF9pc19zdGFsZV9fbG9ja2VkKGh0 LCBtYXApKSkgewogICAgICAgICAqcG1hcCA9IG1hcDsKQEAgLTMxOCw3ICszMTgsNyBAQCBzdHJ1 Y3QgcWh0X2J1Y2tldCAqcWh0X2J1Y2tldF9sb2NrX19ub19zdGFsZShzdHJ1Y3QgcWh0ICpodCwg dWludDMyX3QgaGFzaCwKICAgICBzdHJ1Y3QgcWh0X2J1Y2tldCAqYjsKICAgICBzdHJ1Y3QgcWh0 X21hcCAqbWFwOwogCi0gICAgbWFwID0gYXRvbWljX3JjdV9yZWFkKCZodC0+bWFwKTsKKyAgICBt YXAgPSBxYXRvbWljX3JjdV9yZWFkKCZodC0+bWFwKTsKICAgICBiID0gcWh0X21hcF90b19idWNr ZXQobWFwLCBoYXNoKTsKIAogICAgIHFlbXVfc3Bpbl9sb2NrKCZiLT5sb2NrKTsKQEAgLTM0MCw3 ICszNDAsOCBAQCBzdHJ1Y3QgcWh0X2J1Y2tldCAqcWh0X2J1Y2tldF9sb2NrX19ub19zdGFsZShz dHJ1Y3QgcWh0ICpodCwgdWludDMyX3QgaGFzaCwKIAogc3RhdGljIGlubGluZSBib29sIHFodF9t YXBfbmVlZHNfcmVzaXplKGNvbnN0IHN0cnVjdCBxaHRfbWFwICptYXApCiB7Ci0gICAgcmV0dXJu IGF0b21pY19yZWFkKCZtYXAtPm5fYWRkZWRfYnVja2V0cykgPiBtYXAtPm5fYWRkZWRfYnVja2V0 c190aHJlc2hvbGQ7CisgICAgcmV0dXJuIHFhdG9taWNfcmVhZCgmbWFwLT5uX2FkZGVkX2J1Y2tl dHMpID4KKyAgICAgICAgICAgbWFwLT5uX2FkZGVkX2J1Y2tldHNfdGhyZXNob2xkOwogfQogCiBz dGF0aWMgaW5saW5lIHZvaWQgcWh0X2NoYWluX2Rlc3Ryb3koY29uc3Qgc3RydWN0IHFodF9idWNr ZXQgKmhlYWQpCkBAIC00MDQsNyArNDA1LDcgQEAgdm9pZCBxaHRfaW5pdChzdHJ1Y3QgcWh0ICpo dCwgcWh0X2NtcF9mdW5jX3QgY21wLCBzaXplX3Qgbl9lbGVtcywKICAgICBodC0+bW9kZSA9IG1v ZGU7CiAgICAgcWVtdV9tdXRleF9pbml0KCZodC0+bG9jayk7CiAgICAgbWFwID0gcWh0X21hcF9j cmVhdGUobl9idWNrZXRzKTsKLSAgICBhdG9taWNfcmN1X3NldCgmaHQtPm1hcCwgbWFwKTsKKyAg ICBxYXRvbWljX3JjdV9zZXQoJmh0LT5tYXAsIG1hcCk7CiB9CiAKIC8qIGNhbGwgb25seSB3aGVu IHRoZXJlIGFyZSBubyByZWFkZXJzL3dyaXRlcnMgbGVmdCAqLwpAQCAtNDI1LDggKzQyNiw4IEBA IHN0YXRpYyB2b2lkIHFodF9idWNrZXRfcmVzZXRfX2xvY2tlZChzdHJ1Y3QgcWh0X2J1Y2tldCAq aGVhZCkKICAgICAgICAgICAgIGlmIChiLT5wb2ludGVyc1tpXSA9PSBOVUxMKSB7CiAgICAgICAg ICAgICAgICAgZ290byBkb25lOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXRvbWljX3Nl dCgmYi0+aGFzaGVzW2ldLCAwKTsKLSAgICAgICAgICAgIGF0b21pY19zZXQoJmItPnBvaW50ZXJz W2ldLCBOVUxMKTsKKyAgICAgICAgICAgIHFhdG9taWNfc2V0KCZiLT5oYXNoZXNbaV0sIDApOwor ICAgICAgICAgICAgcWF0b21pY19zZXQoJmItPnBvaW50ZXJzW2ldLCBOVUxMKTsKICAgICAgICAg fQogICAgICAgICBiID0gYi0+bmV4dDsKICAgICB9IHdoaWxlIChiKTsKQEAgLTQ5MiwxOSArNDkz LDE5IEBAIHZvaWQgKnFodF9kb19sb29rdXAoY29uc3Qgc3RydWN0IHFodF9idWNrZXQgKmhlYWQs IHFodF9sb29rdXBfZnVuY190IGZ1bmMsCiAKICAgICBkbyB7CiAgICAgICAgIGZvciAoaSA9IDA7 IGkgPCBRSFRfQlVDS0VUX0VOVFJJRVM7IGkrKykgewotICAgICAgICAgICAgaWYgKGF0b21pY19y ZWFkKCZiLT5oYXNoZXNbaV0pID09IGhhc2gpIHsKKyAgICAgICAgICAgIGlmIChxYXRvbWljX3Jl YWQoJmItPmhhc2hlc1tpXSkgPT0gaGFzaCkgewogICAgICAgICAgICAgICAgIC8qIFRoZSBwb2lu dGVyIGlzIGRlcmVmZXJlbmNlZCBiZWZvcmUgc2VxbG9ja19yZWFkX3JldHJ5LAogICAgICAgICAg ICAgICAgICAqIHNvICh1bmxpa2UgcWh0X2luc2VydF9fbG9ja2VkKSB3ZSBuZWVkIHRvIHVzZQot ICAgICAgICAgICAgICAgICAqIGF0b21pY19yY3VfcmVhZCBoZXJlLgorICAgICAgICAgICAgICAg ICAqIHFhdG9taWNfcmN1X3JlYWQgaGVyZS4KICAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAg ICAgICAgICB2b2lkICpwID0gYXRvbWljX3JjdV9yZWFkKCZiLT5wb2ludGVyc1tpXSk7CisgICAg ICAgICAgICAgICAgdm9pZCAqcCA9IHFhdG9taWNfcmN1X3JlYWQoJmItPnBvaW50ZXJzW2ldKTsK IAogICAgICAgICAgICAgICAgIGlmIChsaWtlbHkocCkgJiYgbGlrZWx5KGZ1bmMocCwgdXNlcnAp KSkgewogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcDsKICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgYiA9IGF0b21pY19yY3VfcmVhZCgmYi0+ bmV4dCk7CisgICAgICAgIGIgPSBxYXRvbWljX3JjdV9yZWFkKCZiLT5uZXh0KTsKICAgICB9IHdo aWxlIChiKTsKIAogICAgIHJldHVybiBOVUxMOwpAQCAtNTMyLDcgKzUzMyw3IEBAIHZvaWQgKnFo dF9sb29rdXBfY3VzdG9tKGNvbnN0IHN0cnVjdCBxaHQgKmh0LCBjb25zdCB2b2lkICp1c2VycCwg dWludDMyX3QgaGFzaCwKICAgICB1bnNpZ25lZCBpbnQgdmVyc2lvbjsKICAgICB2b2lkICpyZXQ7 CiAKLSAgICBtYXAgPSBhdG9taWNfcmN1X3JlYWQoJmh0LT5tYXApOworICAgIG1hcCA9IHFhdG9t aWNfcmN1X3JlYWQoJmh0LT5tYXApOwogICAgIGIgPSBxaHRfbWFwX3RvX2J1Y2tldChtYXAsIGhh c2gpOwogCiAgICAgdmVyc2lvbiA9IHNlcWxvY2tfcmVhZF9iZWdpbigmYi0+c2VxdWVuY2UpOwpA QCAtNTg0LDcgKzU4NSw3IEBAIHN0YXRpYyB2b2lkICpxaHRfaW5zZXJ0X19sb2NrZWQoY29uc3Qg c3RydWN0IHFodCAqaHQsIHN0cnVjdCBxaHRfbWFwICptYXAsCiAgICAgbWVtc2V0KGIsIDAsIHNp emVvZigqYikpOwogICAgIG5ldyA9IGI7CiAgICAgaSA9IDA7Ci0gICAgYXRvbWljX2luYygmbWFw LT5uX2FkZGVkX2J1Y2tldHMpOworICAgIHFhdG9taWNfaW5jKCZtYXAtPm5fYWRkZWRfYnVja2V0 cyk7CiAgICAgaWYgKHVubGlrZWx5KHFodF9tYXBfbmVlZHNfcmVzaXplKG1hcCkpICYmIG5lZWRz X3Jlc2l6ZSkgewogICAgICAgICAqbmVlZHNfcmVzaXplID0gdHJ1ZTsKICAgICB9CkBAIC01OTMs MTEgKzU5NCwxMSBAQCBzdGF0aWMgdm9pZCAqcWh0X2luc2VydF9fbG9ja2VkKGNvbnN0IHN0cnVj dCBxaHQgKmh0LCBzdHJ1Y3QgcWh0X21hcCAqbWFwLAogICAgIC8qIGZvdW5kIGFuIGVtcHR5IGtl eTogYWNxdWlyZSB0aGUgc2VxbG9jayBhbmQgd3JpdGUgKi8KICAgICBzZXFsb2NrX3dyaXRlX2Jl Z2luKCZoZWFkLT5zZXF1ZW5jZSk7CiAgICAgaWYgKG5ldykgewotICAgICAgICBhdG9taWNfcmN1 X3NldCgmcHJldi0+bmV4dCwgYik7CisgICAgICAgIHFhdG9taWNfcmN1X3NldCgmcHJldi0+bmV4 dCwgYik7CiAgICAgfQogICAgIC8qIHNtcF93bWIoKSBpbXBsaWNpdCBpbiBzZXFsb2NrX3dyaXRl X2JlZ2luLiAgKi8KLSAgICBhdG9taWNfc2V0KCZiLT5oYXNoZXNbaV0sIGhhc2gpOwotICAgIGF0 b21pY19zZXQoJmItPnBvaW50ZXJzW2ldLCBwKTsKKyAgICBxYXRvbWljX3NldCgmYi0+aGFzaGVz W2ldLCBoYXNoKTsKKyAgICBxYXRvbWljX3NldCgmYi0+cG9pbnRlcnNbaV0sIHApOwogICAgIHNl cWxvY2tfd3JpdGVfZW5kKCZoZWFkLT5zZXF1ZW5jZSk7CiAgICAgcmV0dXJuIE5VTEw7CiB9CkBA IC02NjgsMTEgKzY2OSwxMSBAQCBxaHRfZW50cnlfbW92ZShzdHJ1Y3QgcWh0X2J1Y2tldCAqdG8s IGludCBpLCBzdHJ1Y3QgcWh0X2J1Y2tldCAqZnJvbSwgaW50IGopCiAgICAgcWh0X2RlYnVnX2Fz c2VydCh0by0+cG9pbnRlcnNbaV0pOwogICAgIHFodF9kZWJ1Z19hc3NlcnQoZnJvbS0+cG9pbnRl cnNbal0pOwogCi0gICAgYXRvbWljX3NldCgmdG8tPmhhc2hlc1tpXSwgZnJvbS0+aGFzaGVzW2pd KTsKLSAgICBhdG9taWNfc2V0KCZ0by0+cG9pbnRlcnNbaV0sIGZyb20tPnBvaW50ZXJzW2pdKTsK KyAgICBxYXRvbWljX3NldCgmdG8tPmhhc2hlc1tpXSwgZnJvbS0+aGFzaGVzW2pdKTsKKyAgICBx YXRvbWljX3NldCgmdG8tPnBvaW50ZXJzW2ldLCBmcm9tLT5wb2ludGVyc1tqXSk7CiAKLSAgICBh dG9taWNfc2V0KCZmcm9tLT5oYXNoZXNbal0sIDApOwotICAgIGF0b21pY19zZXQoJmZyb20tPnBv aW50ZXJzW2pdLCBOVUxMKTsKKyAgICBxYXRvbWljX3NldCgmZnJvbS0+aGFzaGVzW2pdLCAwKTsK KyAgICBxYXRvbWljX3NldCgmZnJvbS0+cG9pbnRlcnNbal0sIE5VTEwpOwogfQogCiAvKgpAQCAt Njg3LDcgKzY4OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBxaHRfYnVja2V0X3JlbW92ZV9lbnRy eShzdHJ1Y3QgcWh0X2J1Y2tldCAqb3JpZywgaW50IHBvcykKIAogICAgIGlmIChxaHRfZW50cnlf aXNfbGFzdChvcmlnLCBwb3MpKSB7CiAgICAgICAgIG9yaWctPmhhc2hlc1twb3NdID0gMDsKLSAg ICAgICAgYXRvbWljX3NldCgmb3JpZy0+cG9pbnRlcnNbcG9zXSwgTlVMTCk7CisgICAgICAgIHFh dG9taWNfc2V0KCZvcmlnLT5wb2ludGVyc1twb3NdLCBOVUxMKTsKICAgICAgICAgcmV0dXJuOwog ICAgIH0KICAgICBkbyB7CkBAIC04MDMsNyArODA0LDcgQEAgZG9fcWh0X2l0ZXIoc3RydWN0IHFo dCAqaHQsIGNvbnN0IHN0cnVjdCBxaHRfaXRlciAqaXRlciwgdm9pZCAqdXNlcnApCiB7CiAgICAg c3RydWN0IHFodF9tYXAgKm1hcDsKIAotICAgIG1hcCA9IGF0b21pY19yY3VfcmVhZCgmaHQtPm1h cCk7CisgICAgbWFwID0gcWF0b21pY19yY3VfcmVhZCgmaHQtPm1hcCk7CiAgICAgcWh0X21hcF9s b2NrX2J1Y2tldHMobWFwKTsKICAgICBxaHRfbWFwX2l0ZXJfX2FsbF9sb2NrZWQobWFwLCBpdGVy LCB1c2VycCk7CiAgICAgcWh0X21hcF91bmxvY2tfYnVja2V0cyhtYXApOwpAQCAtODc2LDcgKzg3 Nyw3IEBAIHN0YXRpYyB2b2lkIHFodF9kb19yZXNpemVfcmVzZXQoc3RydWN0IHFodCAqaHQsIHN0 cnVjdCBxaHRfbWFwICpuZXcsIGJvb2wgcmVzZXQpCiAgICAgcWh0X21hcF9pdGVyX19hbGxfbG9j a2VkKG9sZCwgJml0ZXIsICZkYXRhKTsKICAgICBxaHRfbWFwX2RlYnVnX19hbGxfbG9ja2VkKG5l dyk7CiAKLSAgICBhdG9taWNfcmN1X3NldCgmaHQtPm1hcCwgbmV3KTsKKyAgICBxYXRvbWljX3Jj dV9zZXQoJmh0LT5tYXAsIG5ldyk7CiAgICAgcWh0X21hcF91bmxvY2tfYnVja2V0cyhvbGQpOwog ICAgIGNhbGxfcmN1KG9sZCwgcWh0X21hcF9kZXN0cm95LCByY3UpOwogfQpAQCAtOTA1LDcgKzkw Niw3IEBAIHZvaWQgcWh0X3N0YXRpc3RpY3NfaW5pdChjb25zdCBzdHJ1Y3QgcWh0ICpodCwgc3Ry dWN0IHFodF9zdGF0cyAqc3RhdHMpCiAgICAgY29uc3Qgc3RydWN0IHFodF9tYXAgKm1hcDsKICAg ICBpbnQgaTsKIAotICAgIG1hcCA9IGF0b21pY19yY3VfcmVhZCgmaHQtPm1hcCk7CisgICAgbWFw ID0gcWF0b21pY19yY3VfcmVhZCgmaHQtPm1hcCk7CiAKICAgICBzdGF0cy0+dXNlZF9oZWFkX2J1 Y2tldHMgPSAwOwogICAgIHN0YXRzLT5lbnRyaWVzID0gMDsKQEAgLTkzMywxMyArOTM0LDEzIEBA IHZvaWQgcWh0X3N0YXRpc3RpY3NfaW5pdChjb25zdCBzdHJ1Y3QgcWh0ICpodCwgc3RydWN0IHFo dF9zdGF0cyAqc3RhdHMpCiAgICAgICAgICAgICBiID0gaGVhZDsKICAgICAgICAgICAgIGRvIHsK ICAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgUUhUX0JVQ0tFVF9FTlRSSUVTOyBqKysp IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGF0b21pY19yZWFkKCZiLT5wb2ludGVyc1tqXSkg PT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBpZiAocWF0b21pY19yZWFkKCZiLT5wb2lu dGVyc1tqXSkgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgZW50cmllcysrOwogICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBidWNrZXRzKys7Ci0gICAgICAgICAgICAgICAg YiA9IGF0b21pY19yY3VfcmVhZCgmYi0+bmV4dCk7CisgICAgICAgICAgICAgICAgYiA9IHFhdG9t aWNfcmN1X3JlYWQoJmItPm5leHQpOwogICAgICAgICAgICAgfSB3aGlsZSAoYik7CiAgICAgICAg IH0gd2hpbGUgKHNlcWxvY2tfcmVhZF9yZXRyeSgmaGVhZC0+c2VxdWVuY2UsIHZlcnNpb24pKTsK IApkaWZmIC0tZ2l0IGEvdXRpbC9xc3AuYyBiL3V0aWwvcXNwLmMKaW5kZXggN2Q1MTQ3ZjFiMi4u YmFjYzVmYTJmNiAxMDA2NDQKLS0tIGEvdXRpbC9xc3AuYworKysgYi91dGlsL3FzcC5jCkBAIC0y NDUsMTEgKzI0NSwxMSBAQCBzdGF0aWMgdm9pZCBxc3BfZG9faW5pdCh2b2lkKQogCiBzdGF0aWMg X19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSB2b2lkIHFzcF9pbml0X19zbG93cGF0aCh2b2lkKQog ewotICAgIGlmIChhdG9taWNfY21weGNoZygmcXNwX2luaXRpYWxpemluZywgZmFsc2UsIHRydWUp ID09IGZhbHNlKSB7CisgICAgaWYgKHFhdG9taWNfY21weGNoZygmcXNwX2luaXRpYWxpemluZywg ZmFsc2UsIHRydWUpID09IGZhbHNlKSB7CiAgICAgICAgIHFzcF9kb19pbml0KCk7Ci0gICAgICAg IGF0b21pY19zZXQoJnFzcF9pbml0aWFsaXplZCwgdHJ1ZSk7CisgICAgICAgIHFhdG9taWNfc2V0 KCZxc3BfaW5pdGlhbGl6ZWQsIHRydWUpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHdoaWxlICgh YXRvbWljX3JlYWQoJnFzcF9pbml0aWFsaXplZCkpIHsKKyAgICAgICAgd2hpbGUgKCFxYXRvbWlj X3JlYWQoJnFzcF9pbml0aWFsaXplZCkpIHsKICAgICAgICAgICAgIGNwdV9yZWxheCgpOwogICAg ICAgICB9CiAgICAgfQpAQCAtMjU4LDcgKzI1OCw3IEBAIHN0YXRpYyBfX2F0dHJpYnV0ZV9fKChu b2lubGluZSkpIHZvaWQgcXNwX2luaXRfX3Nsb3dwYXRoKHZvaWQpCiAvKiBxc3BfaW5pdCgpIG11 c3QgYmUgY2FsbGVkIGZyb20gX2FsbF8gZXhwb3J0ZWQgZnVuY3Rpb25zICovCiBzdGF0aWMgaW5s aW5lIHZvaWQgcXNwX2luaXQodm9pZCkKIHsKLSAgICBpZiAobGlrZWx5KGF0b21pY19yZWFkKCZx c3BfaW5pdGlhbGl6ZWQpKSkgeworICAgIGlmIChsaWtlbHkocWF0b21pY19yZWFkKCZxc3BfaW5p dGlhbGl6ZWQpKSkgewogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIHFzcF9pbml0X19zbG93 cGF0aCgpOwpAQCAtMzQ2LDkgKzM0Niw5IEBAIHN0YXRpYyBRU1BFbnRyeSAqcXNwX2VudHJ5X2dl dChjb25zdCB2b2lkICpvYmosIGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLAogICovCiBzdGF0 aWMgaW5saW5lIHZvaWQgZG9fcXNwX2VudHJ5X3JlY29yZChRU1BFbnRyeSAqZSwgaW50NjRfdCBk ZWx0YSwgYm9vbCBhY3EpCiB7Ci0gICAgYXRvbWljX3NldF91NjQoJmUtPm5zLCBlLT5ucyArIGRl bHRhKTsKKyAgICBxYXRvbWljX3NldF91NjQoJmUtPm5zLCBlLT5ucyArIGRlbHRhKTsKICAgICBp ZiAoYWNxKSB7Ci0gICAgICAgIGF0b21pY19zZXRfdTY0KCZlLT5uX2FjcXMsIGUtPm5fYWNxcyAr IDEpOworICAgICAgICBxYXRvbWljX3NldF91NjQoJmUtPm5fYWNxcywgZS0+bl9hY3FzICsgMSk7 CiAgICAgfQogfQogCkBAIC00MzIsMjkgKzQzMiwyOSBAQCBxc3BfY29uZF90aW1lZHdhaXQoUWVt dUNvbmQgKmNvbmQsIFFlbXVNdXRleCAqbXV0ZXgsIGludCBtcywKIAogYm9vbCBxc3BfaXNfZW5h YmxlZCh2b2lkKQogewotICAgIHJldHVybiBhdG9taWNfcmVhZCgmcWVtdV9tdXRleF9sb2NrX2Z1 bmMpID09IHFzcF9tdXRleF9sb2NrOworICAgIHJldHVybiBxYXRvbWljX3JlYWQoJnFlbXVfbXV0 ZXhfbG9ja19mdW5jKSA9PSBxc3BfbXV0ZXhfbG9jazsKIH0KIAogdm9pZCBxc3BfZW5hYmxlKHZv aWQpCiB7Ci0gICAgYXRvbWljX3NldCgmcWVtdV9tdXRleF9sb2NrX2Z1bmMsIHFzcF9tdXRleF9s b2NrKTsKLSAgICBhdG9taWNfc2V0KCZxZW11X211dGV4X3RyeWxvY2tfZnVuYywgcXNwX211dGV4 X3RyeWxvY2spOwotICAgIGF0b21pY19zZXQoJnFlbXVfYnFsX211dGV4X2xvY2tfZnVuYywgcXNw X2JxbF9tdXRleF9sb2NrKTsKLSAgICBhdG9taWNfc2V0KCZxZW11X3JlY19tdXRleF9sb2NrX2Z1 bmMsIHFzcF9yZWNfbXV0ZXhfbG9jayk7Ci0gICAgYXRvbWljX3NldCgmcWVtdV9yZWNfbXV0ZXhf dHJ5bG9ja19mdW5jLCBxc3BfcmVjX211dGV4X3RyeWxvY2spOwotICAgIGF0b21pY19zZXQoJnFl bXVfY29uZF93YWl0X2Z1bmMsIHFzcF9jb25kX3dhaXQpOwotICAgIGF0b21pY19zZXQoJnFlbXVf Y29uZF90aW1lZHdhaXRfZnVuYywgcXNwX2NvbmRfdGltZWR3YWl0KTsKKyAgICBxYXRvbWljX3Nl dCgmcWVtdV9tdXRleF9sb2NrX2Z1bmMsIHFzcF9tdXRleF9sb2NrKTsKKyAgICBxYXRvbWljX3Nl dCgmcWVtdV9tdXRleF90cnlsb2NrX2Z1bmMsIHFzcF9tdXRleF90cnlsb2NrKTsKKyAgICBxYXRv bWljX3NldCgmcWVtdV9icWxfbXV0ZXhfbG9ja19mdW5jLCBxc3BfYnFsX211dGV4X2xvY2spOwor ICAgIHFhdG9taWNfc2V0KCZxZW11X3JlY19tdXRleF9sb2NrX2Z1bmMsIHFzcF9yZWNfbXV0ZXhf bG9jayk7CisgICAgcWF0b21pY19zZXQoJnFlbXVfcmVjX211dGV4X3RyeWxvY2tfZnVuYywgcXNw X3JlY19tdXRleF90cnlsb2NrKTsKKyAgICBxYXRvbWljX3NldCgmcWVtdV9jb25kX3dhaXRfZnVu YywgcXNwX2NvbmRfd2FpdCk7CisgICAgcWF0b21pY19zZXQoJnFlbXVfY29uZF90aW1lZHdhaXRf ZnVuYywgcXNwX2NvbmRfdGltZWR3YWl0KTsKIH0KIAogdm9pZCBxc3BfZGlzYWJsZSh2b2lkKQog ewotICAgIGF0b21pY19zZXQoJnFlbXVfbXV0ZXhfbG9ja19mdW5jLCBxZW11X211dGV4X2xvY2tf aW1wbCk7Ci0gICAgYXRvbWljX3NldCgmcWVtdV9tdXRleF90cnlsb2NrX2Z1bmMsIHFlbXVfbXV0 ZXhfdHJ5bG9ja19pbXBsKTsKLSAgICBhdG9taWNfc2V0KCZxZW11X2JxbF9tdXRleF9sb2NrX2Z1 bmMsIHFlbXVfbXV0ZXhfbG9ja19pbXBsKTsKLSAgICBhdG9taWNfc2V0KCZxZW11X3JlY19tdXRl eF9sb2NrX2Z1bmMsIHFlbXVfcmVjX211dGV4X2xvY2tfaW1wbCk7Ci0gICAgYXRvbWljX3NldCgm cWVtdV9yZWNfbXV0ZXhfdHJ5bG9ja19mdW5jLCBxZW11X3JlY19tdXRleF90cnlsb2NrX2ltcGwp OwotICAgIGF0b21pY19zZXQoJnFlbXVfY29uZF93YWl0X2Z1bmMsIHFlbXVfY29uZF93YWl0X2lt cGwpOwotICAgIGF0b21pY19zZXQoJnFlbXVfY29uZF90aW1lZHdhaXRfZnVuYywgcWVtdV9jb25k X3RpbWVkd2FpdF9pbXBsKTsKKyAgICBxYXRvbWljX3NldCgmcWVtdV9tdXRleF9sb2NrX2Z1bmMs IHFlbXVfbXV0ZXhfbG9ja19pbXBsKTsKKyAgICBxYXRvbWljX3NldCgmcWVtdV9tdXRleF90cnls b2NrX2Z1bmMsIHFlbXVfbXV0ZXhfdHJ5bG9ja19pbXBsKTsKKyAgICBxYXRvbWljX3NldCgmcWVt dV9icWxfbXV0ZXhfbG9ja19mdW5jLCBxZW11X211dGV4X2xvY2tfaW1wbCk7CisgICAgcWF0b21p Y19zZXQoJnFlbXVfcmVjX211dGV4X2xvY2tfZnVuYywgcWVtdV9yZWNfbXV0ZXhfbG9ja19pbXBs KTsKKyAgICBxYXRvbWljX3NldCgmcWVtdV9yZWNfbXV0ZXhfdHJ5bG9ja19mdW5jLCBxZW11X3Jl Y19tdXRleF90cnlsb2NrX2ltcGwpOworICAgIHFhdG9taWNfc2V0KCZxZW11X2NvbmRfd2FpdF9m dW5jLCBxZW11X2NvbmRfd2FpdF9pbXBsKTsKKyAgICBxYXRvbWljX3NldCgmcWVtdV9jb25kX3Rp bWVkd2FpdF9mdW5jLCBxZW11X2NvbmRfdGltZWR3YWl0X2ltcGwpOwogfQogCiBzdGF0aWMgZ2lu dCBxc3BfdHJlZV9jbXAoZ2NvbnN0cG9pbnRlciBhcCwgZ2NvbnN0cG9pbnRlciBicCwgZ3BvaW50 ZXIgdXApCkBAIC01MzgsOCArNTM4LDggQEAgc3RhdGljIHZvaWQgcXNwX2FnZ3JlZ2F0ZSh2b2lk ICpwLCB1aW50MzJfdCBoLCB2b2lkICp1cCkKICAgICAgKiBUaGUgZW50cnkgaXMgaW4gdGhlIGds b2JhbCBoYXNoIHRhYmxlOyByZWFkIGZyb20gaXQgYXRvbWljYWxseSAoYXMgaW4KICAgICAgKiAi cmVhZCBvbmNlIikuCiAgICAgICovCi0gICAgYWdnLT5ucyArPSBhdG9taWNfcmVhZF91NjQoJmUt Pm5zKTsKLSAgICBhZ2ctPm5fYWNxcyArPSBhdG9taWNfcmVhZF91NjQoJmUtPm5fYWNxcyk7Cisg ICAgYWdnLT5ucyArPSBxYXRvbWljX3JlYWRfdTY0KCZlLT5ucyk7CisgICAgYWdnLT5uX2FjcXMg Kz0gcWF0b21pY19yZWFkX3U2NCgmZS0+bl9hY3FzKTsKIH0KIAogc3RhdGljIHZvaWQgcXNwX2l0 ZXJfZGlmZih2b2lkICpwLCB1aW50MzJfdCBoYXNoLCB2b2lkICpodHApCkBAIC02MTAsNyArNjEw LDcgQEAgc3RhdGljIHZvaWQgcXNwX21rdHJlZShHVHJlZSAqdHJlZSwgYm9vbCBjYWxsc2l0ZV9j b2FsZXNjZSkKICAgICAgKiB3aXRoIHRoZSBzbmFwc2hvdC4KICAgICAgKi8KICAgICBXSVRIX1JD VV9SRUFEX0xPQ0tfR1VBUkQoKSB7Ci0gICAgICAgIFFTUFNuYXBzaG90ICpzbmFwID0gYXRvbWlj X3JjdV9yZWFkKCZxc3Bfc25hcHNob3QpOworICAgICAgICBRU1BTbmFwc2hvdCAqc25hcCA9IHFh dG9taWNfcmN1X3JlYWQoJnFzcF9zbmFwc2hvdCk7CiAKICAgICAgICAgLyogQWdncmVnYXRlIGFs bCByZXN1bHRzIGZyb20gdGhlIGdsb2JhbCBoYXNoIHRhYmxlIGludG8gYSBsb2NhbCBvbmUgKi8K ICAgICAgICAgcWh0X2luaXQoJmh0LCBxc3BfZW50cnlfbm9fdGhyZWFkX2NtcCwgUVNQX0lOSVRJ QUxfU0laRSwKQEAgLTgwNiw3ICs4MDYsNyBAQCB2b2lkIHFzcF9yZXNldCh2b2lkKQogICAgIHFo dF9pdGVyKCZxc3BfaHQsIHFzcF9hZ2dyZWdhdGUsICZuZXctPmh0KTsKIAogICAgIC8qIHJlcGxh Y2UgdGhlIHByZXZpb3VzIHNuYXBzaG90LCBpZiBhbnkgKi8KLSAgICBvbGQgPSBhdG9taWNfeGNo ZygmcXNwX3NuYXBzaG90LCBuZXcpOworICAgIG9sZCA9IHFhdG9taWNfeGNoZygmcXNwX3NuYXBz aG90LCBuZXcpOwogICAgIGlmIChvbGQpIHsKICAgICAgICAgY2FsbF9yY3Uob2xkLCBxc3Bfc25h cHNob3RfZGVzdHJveSwgcmN1KTsKICAgICB9CmRpZmYgLS1naXQgYS91dGlsL3JjdS5jIGIvdXRp bC9yY3UuYwppbmRleCBjNGZlZmE5MzMzLi4xM2FjMGY3NWNiIDEwMDY0NAotLS0gYS91dGlsL3Jj dS5jCisrKyBiL3V0aWwvcmN1LmMKQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIGlubGluZSBpbnQg cmN1X2dwX29uZ29pbmcodW5zaWduZWQgbG9uZyAqY3RyKQogewogICAgIHVuc2lnbmVkIGxvbmcg djsKIAotICAgIHYgPSBhdG9taWNfcmVhZChjdHIpOworICAgIHYgPSBxYXRvbWljX3JlYWQoY3Ry KTsKICAgICByZXR1cm4gdiAmJiAodiAhPSByY3VfZ3BfY3RyKTsKIH0KIApAQCAtODIsMTQgKzgy LDE0IEBAIHN0YXRpYyB2b2lkIHdhaXRfZm9yX3JlYWRlcnModm9pZCkKICAgICAgICAgICovCiAg ICAgICAgIHFlbXVfZXZlbnRfcmVzZXQoJnJjdV9ncF9ldmVudCk7CiAKLSAgICAgICAgLyogSW5z dGVhZCBvZiB1c2luZyBhdG9taWNfbWJfc2V0IGZvciBpbmRleC0+d2FpdGluZywgYW5kCi0gICAg ICAgICAqIGF0b21pY19tYl9yZWFkIGZvciBpbmRleC0+Y3RyLCBtZW1vcnkgYmFycmllcnMgYXJl IHBsYWNlZAorICAgICAgICAvKiBJbnN0ZWFkIG9mIHVzaW5nIHFhdG9taWNfbWJfc2V0IGZvciBp bmRleC0+d2FpdGluZywgYW5kCisgICAgICAgICAqIHFhdG9taWNfbWJfcmVhZCBmb3IgaW5kZXgt PmN0ciwgbWVtb3J5IGJhcnJpZXJzIGFyZSBwbGFjZWQKICAgICAgICAgICogbWFudWFsbHkgc2lu Y2Ugd3JpdGVzIHRvIGRpZmZlcmVudCB0aHJlYWRzIGFyZSBpbmRlcGVuZGVudC4KICAgICAgICAg ICogcWVtdV9ldmVudF9yZXNldCBoYXMgYWNxdWlyZSBzZW1hbnRpY3MsIHNvIG5vIG1lbW9yeSBi YXJyaWVyCiAgICAgICAgICAqIGlzIG5lZWRlZCBoZXJlLgogICAgICAgICAgKi8KICAgICAgICAg UUxJU1RfRk9SRUFDSChpbmRleCwgJnJlZ2lzdHJ5LCBub2RlKSB7Ci0gICAgICAgICAgICBhdG9t aWNfc2V0KCZpbmRleC0+d2FpdGluZywgdHJ1ZSk7CisgICAgICAgICAgICBxYXRvbWljX3NldCgm aW5kZXgtPndhaXRpbmcsIHRydWUpOwogICAgICAgICB9CiAKICAgICAgICAgLyogSGVyZSwgb3Jk ZXIgdGhlIHN0b3JlcyB0byBpbmRleC0+d2FpdGluZyBiZWZvcmUgdGhlIGxvYWRzIG9mCkBAIC0x MDYsNyArMTA2LDcgQEAgc3RhdGljIHZvaWQgd2FpdF9mb3JfcmVhZGVycyh2b2lkKQogICAgICAg ICAgICAgICAgIC8qIE5vIG5lZWQgZm9yIG1iX3NldCBoZXJlLCB3b3JzdCBvZiBhbGwgd2UKICAg ICAgICAgICAgICAgICAgKiBnZXQgc29tZSBleHRyYSBmdXRleCB3YWtldXBzLgogICAgICAgICAg ICAgICAgICAqLwotICAgICAgICAgICAgICAgIGF0b21pY19zZXQoJmluZGV4LT53YWl0aW5nLCBm YWxzZSk7CisgICAgICAgICAgICAgICAgcWF0b21pY19zZXQoJmluZGV4LT53YWl0aW5nLCBmYWxz ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQg c3luY2hyb25pemVfcmN1KHZvaWQpCiAKICAgICBRRU1VX0xPQ0tfR1VBUkQoJnJjdV9yZWdpc3Ry eV9sb2NrKTsKICAgICBpZiAoIVFMSVNUX0VNUFRZKCZyZWdpc3RyeSkpIHsKLSAgICAgICAgLyog SW4gZWl0aGVyIGNhc2UsIHRoZSBhdG9taWNfbWJfc2V0IGJlbG93IGJsb2NrcyBzdG9yZXMgdGhh dCBmcmVlCisgICAgICAgIC8qIEluIGVpdGhlciBjYXNlLCB0aGUgcWF0b21pY19tYl9zZXQgYmVs b3cgYmxvY2tzIHN0b3JlcyB0aGF0IGZyZWUKICAgICAgICAgICogb2xkIFJDVS1wcm90ZWN0ZWQg cG9pbnRlcnMuCiAgICAgICAgICAqLwogICAgICAgICBpZiAoc2l6ZW9mKHJjdV9ncF9jdHIpIDwg OCkgewpAQCAtMTYwLDEyICsxNjAsMTIgQEAgdm9pZCBzeW5jaHJvbml6ZV9yY3Uodm9pZCkKICAg ICAgICAgICAgICAqCiAgICAgICAgICAgICAgKiBTd2l0Y2ggcGFyaXR5OiAwIC0+IDEsIDEgLT4g MC4KICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgYXRvbWljX21iX3NldCgmcmN1X2dwX2N0 ciwgcmN1X2dwX2N0ciBeIFJDVV9HUF9DVFIpOworICAgICAgICAgICAgcWF0b21pY19tYl9zZXQo JnJjdV9ncF9jdHIsIHJjdV9ncF9jdHIgXiBSQ1VfR1BfQ1RSKTsKICAgICAgICAgICAgIHdhaXRf Zm9yX3JlYWRlcnMoKTsKLSAgICAgICAgICAgIGF0b21pY19tYl9zZXQoJnJjdV9ncF9jdHIsIHJj dV9ncF9jdHIgXiBSQ1VfR1BfQ1RSKTsKKyAgICAgICAgICAgIHFhdG9taWNfbWJfc2V0KCZyY3Vf Z3BfY3RyLCByY3VfZ3BfY3RyIF4gUkNVX0dQX0NUUik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg ICAgICAgICAvKiBJbmNyZW1lbnQgY3VycmVudCBncmFjZSBwZXJpb2QuICAqLwotICAgICAgICAg ICAgYXRvbWljX21iX3NldCgmcmN1X2dwX2N0ciwgcmN1X2dwX2N0ciArIFJDVV9HUF9DVFIpOwor ICAgICAgICAgICAgcWF0b21pY19tYl9zZXQoJnJjdV9ncF9jdHIsIHJjdV9ncF9jdHIgKyBSQ1Vf R1BfQ1RSKTsKICAgICAgICAgfQogCiAgICAgICAgIHdhaXRfZm9yX3JlYWRlcnMoKTsKQEAgLTE4 OCw4ICsxODgsOCBAQCBzdGF0aWMgdm9pZCBlbnF1ZXVlKHN0cnVjdCByY3VfaGVhZCAqbm9kZSkK ICAgICBzdHJ1Y3QgcmN1X2hlYWQgKipvbGRfdGFpbDsKIAogICAgIG5vZGUtPm5leHQgPSBOVUxM OwotICAgIG9sZF90YWlsID0gYXRvbWljX3hjaGcoJnRhaWwsICZub2RlLT5uZXh0KTsKLSAgICBh dG9taWNfbWJfc2V0KG9sZF90YWlsLCBub2RlKTsKKyAgICBvbGRfdGFpbCA9IHFhdG9taWNfeGNo ZygmdGFpbCwgJm5vZGUtPm5leHQpOworICAgIHFhdG9taWNfbWJfc2V0KG9sZF90YWlsLCBub2Rl KTsKIH0KIAogc3RhdGljIHN0cnVjdCByY3VfaGVhZCAqdHJ5X2RlcXVldWUodm9pZCkKQEAgLTIw Myw3ICsyMDMsNyBAQCByZXRyeToKICAgICAgKiBUaGUgdGFpbCwgYmVjYXVzZSBpdCBpcyB0aGUg Zmlyc3Qgc3RlcCBpbiB0aGUgZW5xdWV1aW5nLgogICAgICAqIEl0IGlzIG9ubHkgdGhlIG5leHQg cG9pbnRlcnMgdGhhdCBtaWdodCBiZSBpbmNvbnNpc3RlbnQuCiAgICAgICovCi0gICAgaWYgKGhl YWQgPT0gJmR1bW15ICYmIGF0b21pY19tYl9yZWFkKCZ0YWlsKSA9PSAmZHVtbXkubmV4dCkgewor ICAgIGlmIChoZWFkID09ICZkdW1teSAmJiBxYXRvbWljX21iX3JlYWQoJnRhaWwpID09ICZkdW1t eS5uZXh0KSB7CiAgICAgICAgIGFib3J0KCk7CiAgICAgfQogCkBAIC0yMTEsNyArMjExLDcgQEAg cmV0cnk6CiAgICAgICogd3JvbmcgYW5kIHdlIG5lZWQgdG8gd2FpdCB1bnRpbCBpdHMgZW5xdWV1 ZXIgZmluaXNoZXMgdGhlIHVwZGF0ZS4KICAgICAgKi8KICAgICBub2RlID0gaGVhZDsKLSAgICBu ZXh0ID0gYXRvbWljX21iX3JlYWQoJmhlYWQtPm5leHQpOworICAgIG5leHQgPSBxYXRvbWljX21i X3JlYWQoJmhlYWQtPm5leHQpOwogICAgIGlmICghbmV4dCkgewogICAgICAgICByZXR1cm4gTlVM TDsKICAgICB9CkBAIC0yNDAsNyArMjQwLDcgQEAgc3RhdGljIHZvaWQgKmNhbGxfcmN1X3RocmVh ZCh2b2lkICpvcGFxdWUpCiAKICAgICBmb3IgKDs7KSB7CiAgICAgICAgIGludCB0cmllcyA9IDA7 Ci0gICAgICAgIGludCBuID0gYXRvbWljX3JlYWQoJnJjdV9jYWxsX2NvdW50KTsKKyAgICAgICAg aW50IG4gPSBxYXRvbWljX3JlYWQoJnJjdV9jYWxsX2NvdW50KTsKIAogICAgICAgICAvKiBIZXVy aXN0aWNhbGx5IHdhaXQgZm9yIGEgZGVjZW50IG51bWJlciBvZiBjYWxsYmFja3MgdG8gcGlsZSB1 cC4KICAgICAgICAgICogRmV0Y2ggcmN1X2NhbGxfY291bnQgbm93LCB3ZSBvbmx5IG11c3QgcHJv Y2VzcyBlbGVtZW50cyB0aGF0IHdlcmUKQEAgLTI1MCw3ICsyNTAsNyBAQCBzdGF0aWMgdm9pZCAq Y2FsbF9yY3VfdGhyZWFkKHZvaWQgKm9wYXF1ZSkKICAgICAgICAgICAgIGdfdXNsZWVwKDEwMDAw KTsKICAgICAgICAgICAgIGlmIChuID09IDApIHsKICAgICAgICAgICAgICAgICBxZW11X2V2ZW50 X3Jlc2V0KCZyY3VfY2FsbF9yZWFkeV9ldmVudCk7Ci0gICAgICAgICAgICAgICAgbiA9IGF0b21p Y19yZWFkKCZyY3VfY2FsbF9jb3VudCk7CisgICAgICAgICAgICAgICAgbiA9IHFhdG9taWNfcmVh ZCgmcmN1X2NhbGxfY291bnQpOwogICAgICAgICAgICAgICAgIGlmIChuID09IDApIHsKICNpZiBk ZWZpbmVkKENPTkZJR19NQUxMT0NfVFJJTSkKICAgICAgICAgICAgICAgICAgICAgbWFsbG9jX3Ry aW0oNCAqIDEwMjQgKiAxMDI0KTsKQEAgLTI1OCwxMCArMjU4LDEwIEBAIHN0YXRpYyB2b2lkICpj YWxsX3JjdV90aHJlYWQodm9pZCAqb3BhcXVlKQogICAgICAgICAgICAgICAgICAgICBxZW11X2V2 ZW50X3dhaXQoJnJjdV9jYWxsX3JlYWR5X2V2ZW50KTsKICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICBuID0gYXRvbWljX3JlYWQoJnJjdV9jYWxsX2NvdW50KTsK KyAgICAgICAgICAgIG4gPSBxYXRvbWljX3JlYWQoJnJjdV9jYWxsX2NvdW50KTsKICAgICAgICAg fQogCi0gICAgICAgIGF0b21pY19zdWIoJnJjdV9jYWxsX2NvdW50LCBuKTsKKyAgICAgICAgcWF0 b21pY19zdWIoJnJjdV9jYWxsX2NvdW50LCBuKTsKICAgICAgICAgc3luY2hyb25pemVfcmN1KCk7 CiAgICAgICAgIHFlbXVfbXV0ZXhfbG9ja19pb3RocmVhZCgpOwogICAgICAgICB3aGlsZSAobiA+ IDApIHsKQEAgLTI4OSw3ICsyODksNyBAQCB2b2lkIGNhbGxfcmN1MShzdHJ1Y3QgcmN1X2hlYWQg Km5vZGUsIHZvaWQgKCpmdW5jKShzdHJ1Y3QgcmN1X2hlYWQgKm5vZGUpKQogewogICAgIG5vZGUt PmZ1bmMgPSBmdW5jOwogICAgIGVucXVldWUobm9kZSk7Ci0gICAgYXRvbWljX2luYygmcmN1X2Nh bGxfY291bnQpOworICAgIHFhdG9taWNfaW5jKCZyY3VfY2FsbF9jb3VudCk7CiAgICAgcWVtdV9l dmVudF9zZXQoJnJjdV9jYWxsX3JlYWR5X2V2ZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvdXRpbC9z dGF0czY0LmMgYi91dGlsL3N0YXRzNjQuYwppbmRleCAzODljMzY1YTllLi44OTc2MTNjOTQ5IDEw MDY0NAotLS0gYS91dGlsL3N0YXRzNjQuYworKysgYi91dGlsL3N0YXRzNjQuYwpAQCAtMTgsMjcg KzE4LDI3IEBACiBzdGF0aWMgaW5saW5lIHZvaWQgc3RhdDY0X3JkbG9jayhTdGF0NjQgKnMpCiB7 CiAgICAgLyogS2VlcCBvdXQgaW5jb21pbmcgd3JpdGVycyB0byBhdm9pZCB0aGVtIHN0YXJ2aW5n IHVzLiAqLwotICAgIGF0b21pY19hZGQoJnMtPmxvY2ssIDIpOworICAgIHFhdG9taWNfYWRkKCZz LT5sb2NrLCAyKTsKIAogICAgIC8qIElmIHRoZXJlIGlzIGEgY29uY3VycmVudCB3cml0ZXIsIHdh aXQgZm9yIGl0LiAgKi8KLSAgICB3aGlsZSAoYXRvbWljX3JlYWQoJnMtPmxvY2spICYgMSkgewor ICAgIHdoaWxlIChxYXRvbWljX3JlYWQoJnMtPmxvY2spICYgMSkgewogICAgICAgICBjcHVfcmVs YXgoKTsKICAgICB9CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzdGF0NjRfcmR1bmxvY2soU3Rh dDY0ICpzKQogewotICAgIGF0b21pY19zdWIoJnMtPmxvY2ssIDIpOworICAgIHFhdG9taWNfc3Vi KCZzLT5sb2NrLCAyKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIHN0YXQ2NF93cnRyeWxvY2so U3RhdDY0ICpzKQogewotICAgIHJldHVybiBhdG9taWNfY21weGNoZygmcy0+bG9jaywgMCwgMSkg PT0gMDsKKyAgICByZXR1cm4gcWF0b21pY19jbXB4Y2hnKCZzLT5sb2NrLCAwLCAxKSA9PSAwOwog fQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc3RhdDY0X3dydW5sb2NrKFN0YXQ2NCAqcykKIHsKLSAg ICBhdG9taWNfZGVjKCZzLT5sb2NrKTsKKyAgICBxYXRvbWljX2RlYygmcy0+bG9jayk7CiB9CiAK IHVpbnQ2NF90IHN0YXQ2NF9nZXQoY29uc3QgU3RhdDY0ICpzKQpAQCAtNTAsOCArNTAsOCBAQCB1 aW50NjRfdCBzdGF0NjRfZ2V0KGNvbnN0IFN0YXQ2NCAqcykKICAgICAvKiA2NC1iaXQgd3JpdGVz IGFsd2F5cyB0YWtlIHRoZSBsb2NrLCBzbyB3ZSBjYW4gcmVhZCBpbgogICAgICAqIGFueSBvcmRl ci4KICAgICAgKi8KLSAgICBoaWdoID0gYXRvbWljX3JlYWQoJnMtPmhpZ2gpOwotICAgIGxvdyA9 IGF0b21pY19yZWFkKCZzLT5sb3cpOworICAgIGhpZ2ggPSBxYXRvbWljX3JlYWQoJnMtPmhpZ2gp OworICAgIGxvdyA9IHFhdG9taWNfcmVhZCgmcy0+bG93KTsKICAgICBzdGF0NjRfcmR1bmxvY2so KFN0YXQ2NCAqKXMpOwogCiAgICAgcmV0dXJuICgodWludDY0X3QpaGlnaCA8PCAzMikgfCBsb3c7 CkBAIC03MCw5ICs3MCw5IEBAIGJvb2wgc3RhdDY0X2FkZDMyX2NhcnJ5KFN0YXQ2NCAqcywgdWlu dDMyX3QgbG93LCB1aW50MzJfdCBoaWdoKQogICAgICAqIG9yZGVyIG9mIG91ciB1cGRhdGUuICBC eSB1cGRhdGluZyBzLT5sb3cgZmlyc3QsIHdlIGNhbiBjaGVjawogICAgICAqIHdoZXRoZXIgd2Ug aGF2ZSB0byBjYXJyeSBpbnRvIHMtPmhpZ2guCiAgICAgICovCi0gICAgb2xkID0gYXRvbWljX2Zl dGNoX2FkZCgmcy0+bG93LCBsb3cpOworICAgIG9sZCA9IHFhdG9taWNfZmV0Y2hfYWRkKCZzLT5s b3csIGxvdyk7CiAgICAgaGlnaCArPSAob2xkICsgbG93KSA8IG9sZDsKLSAgICBhdG9taWNfYWRk KCZzLT5oaWdoLCBoaWdoKTsKKyAgICBxYXRvbWljX2FkZCgmcy0+aGlnaCwgaGlnaCk7CiAgICAg c3RhdDY0X3dydW5sb2NrKHMpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtODcsOCArODcsOCBA QCBib29sIHN0YXQ2NF9taW5fc2xvdyhTdGF0NjQgKnMsIHVpbnQ2NF90IHZhbHVlKQogICAgICAg ICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaGlnaCA9IGF0b21pY19yZWFkKCZzLT5oaWdo KTsKLSAgICBsb3cgPSBhdG9taWNfcmVhZCgmcy0+bG93KTsKKyAgICBoaWdoID0gcWF0b21pY19y ZWFkKCZzLT5oaWdoKTsKKyAgICBsb3cgPSBxYXRvbWljX3JlYWQoJnMtPmxvdyk7CiAKICAgICBv cmlnID0gKCh1aW50NjRfdCloaWdoIDw8IDMyKSB8IGxvdzsKICAgICBpZiAodmFsdWUgPCBvcmln KSB7CkBAIC05OCw5ICs5OCw5IEBAIGJvb2wgc3RhdDY0X21pbl9zbG93KFN0YXQ2NCAqcywgdWlu dDY0X3QgdmFsdWUpCiAgICAgICAgICAqIGVmZmVjdCBvbiBzdGF0NjRfbWluIGlzIHRoYXQgdGhl IHNsb3cgcGF0aCBtYXkgYmUgdHJpZ2dlcmVkCiAgICAgICAgICAqIHVubmVjZXNzYXJpbHkuCiAg ICAgICAgICAqLwotICAgICAgICBhdG9taWNfc2V0KCZzLT5sb3csICh1aW50MzJfdCl2YWx1ZSk7 CisgICAgICAgIHFhdG9taWNfc2V0KCZzLT5sb3csICh1aW50MzJfdCl2YWx1ZSk7CiAgICAgICAg IHNtcF93bWIoKTsKLSAgICAgICAgYXRvbWljX3NldCgmcy0+aGlnaCwgdmFsdWUgPj4gMzIpOwor ICAgICAgICBxYXRvbWljX3NldCgmcy0+aGlnaCwgdmFsdWUgPj4gMzIpOwogICAgIH0KICAgICBz dGF0NjRfd3J1bmxvY2socyk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMTYsOCArMTE2LDggQEAg Ym9vbCBzdGF0NjRfbWF4X3Nsb3coU3RhdDY0ICpzLCB1aW50NjRfdCB2YWx1ZSkKICAgICAgICAg cmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGhpZ2ggPSBhdG9taWNfcmVhZCgmcy0+aGlnaCk7 Ci0gICAgbG93ID0gYXRvbWljX3JlYWQoJnMtPmxvdyk7CisgICAgaGlnaCA9IHFhdG9taWNfcmVh ZCgmcy0+aGlnaCk7CisgICAgbG93ID0gcWF0b21pY19yZWFkKCZzLT5sb3cpOwogCiAgICAgb3Jp ZyA9ICgodWludDY0X3QpaGlnaCA8PCAzMikgfCBsb3c7CiAgICAgaWYgKHZhbHVlID4gb3JpZykg ewpAQCAtMTI3LDkgKzEyNyw5IEBAIGJvb2wgc3RhdDY0X21heF9zbG93KFN0YXQ2NCAqcywgdWlu dDY0X3QgdmFsdWUpCiAgICAgICAgICAqIGVmZmVjdCBvbiBzdGF0NjRfbWF4IGlzIHRoYXQgdGhl IHNsb3cgcGF0aCBtYXkgYmUgdHJpZ2dlcmVkCiAgICAgICAgICAqIHVubmVjZXNzYXJpbHkuCiAg ICAgICAgICAqLwotICAgICAgICBhdG9taWNfc2V0KCZzLT5sb3csICh1aW50MzJfdCl2YWx1ZSk7 CisgICAgICAgIHFhdG9taWNfc2V0KCZzLT5sb3csICh1aW50MzJfdCl2YWx1ZSk7CiAgICAgICAg IHNtcF93bWIoKTsKLSAgICAgICAgYXRvbWljX3NldCgmcy0+aGlnaCwgdmFsdWUgPj4gMzIpOwor ICAgICAgICBxYXRvbWljX3NldCgmcy0+aGlnaCwgdmFsdWUgPj4gMzIpOwogICAgIH0KICAgICBz dGF0NjRfd3J1bmxvY2socyk7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9kb2NzL2Rl dmVsL2F0b21pY3MucnN0IGIvZG9jcy9kZXZlbC9hdG9taWNzLnJzdAppbmRleCA0NDVjM2IzNTAz Li41MmJhYTA3MzZkIDEwMDY0NAotLS0gYS9kb2NzL2RldmVsL2F0b21pY3MucnN0CisrKyBiL2Rv Y3MvZGV2ZWwvYXRvbWljcy5yc3QKQEAgLTIzLDkgKzIzLDkgQEAgcHJvdmlkZXMgbWFjcm9zIHRo YXQgZmFsbCBpbiB0aHJlZSBjYW1wczoKIAogLSBjb21waWxlciBiYXJyaWVyczogYGBiYXJyaWVy KClgYDsKIAotLSB3ZWFrIGF0b21pYyBhY2Nlc3MgYW5kIG1hbnVhbCBtZW1vcnkgYmFycmllcnM6 IGBgYXRvbWljX3JlYWQoKWBgLAotICBgYGF0b21pY19zZXQoKWBgLCBgYHNtcF9ybWIoKWBgLCBg YHNtcF93bWIoKWBgLCBgYHNtcF9tYigpYGAsIGBgc21wX21iX2FjcXVpcmUoKWBgLAotICBgYHNt cF9tYl9yZWxlYXNlKClgYCwgYGBzbXBfcmVhZF9iYXJyaWVyX2RlcGVuZHMoKWBgOworLSB3ZWFr IGF0b21pYyBhY2Nlc3MgYW5kIG1hbnVhbCBtZW1vcnkgYmFycmllcnM6IGBgcWF0b21pY19yZWFk KClgYCwKKyAgYGBxYXRvbWljX3NldCgpYGAsIGBgc21wX3JtYigpYGAsIGBgc21wX3dtYigpYGAs IGBgc21wX21iKClgYCwKKyAgYGBzbXBfbWJfYWNxdWlyZSgpYGAsIGBgc21wX21iX3JlbGVhc2Uo KWBgLCBgYHNtcF9yZWFkX2JhcnJpZXJfZGVwZW5kcygpYGA7CiAKIC0gc2VxdWVudGlhbGx5IGNv bnNpc3RlbnQgYXRvbWljIGFjY2VzczogZXZlcnl0aGluZyBlbHNlLgogCkBAIC02NywyMyArNjcs MjMgQEAgaW4gdGhlIG9yZGVyIHNwZWNpZmllZCBieSBpdHMgcHJvZ3JhbSIuCiBgYHFlbXUvYXRv bWljLmhgYCBwcm92aWRlcyB0aGUgZm9sbG93aW5nIHNldCBvZiBhdG9taWMgcmVhZC1tb2RpZnkt d3JpdGUKIG9wZXJhdGlvbnM6OgogCi0gICAgdm9pZCBhdG9taWNfaW5jKHB0cikKLSAgICB2b2lk IGF0b21pY19kZWMocHRyKQotICAgIHZvaWQgYXRvbWljX2FkZChwdHIsIHZhbCkKLSAgICB2b2lk IGF0b21pY19zdWIocHRyLCB2YWwpCi0gICAgdm9pZCBhdG9taWNfYW5kKHB0ciwgdmFsKQotICAg IHZvaWQgYXRvbWljX29yKHB0ciwgdmFsKQorICAgIHZvaWQgcWF0b21pY19pbmMocHRyKQorICAg IHZvaWQgcWF0b21pY19kZWMocHRyKQorICAgIHZvaWQgcWF0b21pY19hZGQocHRyLCB2YWwpCisg ICAgdm9pZCBxYXRvbWljX3N1YihwdHIsIHZhbCkKKyAgICB2b2lkIHFhdG9taWNfYW5kKHB0ciwg dmFsKQorICAgIHZvaWQgcWF0b21pY19vcihwdHIsIHZhbCkKIAotICAgIHR5cGVvZigqcHRyKSBh dG9taWNfZmV0Y2hfaW5jKHB0cikKLSAgICB0eXBlb2YoKnB0cikgYXRvbWljX2ZldGNoX2RlYyhw dHIpCi0gICAgdHlwZW9mKCpwdHIpIGF0b21pY19mZXRjaF9hZGQocHRyLCB2YWwpCi0gICAgdHlw ZW9mKCpwdHIpIGF0b21pY19mZXRjaF9zdWIocHRyLCB2YWwpCi0gICAgdHlwZW9mKCpwdHIpIGF0 b21pY19mZXRjaF9hbmQocHRyLCB2YWwpCi0gICAgdHlwZW9mKCpwdHIpIGF0b21pY19mZXRjaF9v cihwdHIsIHZhbCkKLSAgICB0eXBlb2YoKnB0cikgYXRvbWljX2ZldGNoX3hvcihwdHIsIHZhbCkK LSAgICB0eXBlb2YoKnB0cikgYXRvbWljX2ZldGNoX2luY19ub256ZXJvKHB0cikKLSAgICB0eXBl b2YoKnB0cikgYXRvbWljX3hjaGcocHRyLCB2YWwpCi0gICAgdHlwZW9mKCpwdHIpIGF0b21pY19j bXB4Y2hnKHB0ciwgb2xkLCBuZXcpCisgICAgdHlwZW9mKCpwdHIpIHFhdG9taWNfZmV0Y2hfaW5j KHB0cikKKyAgICB0eXBlb2YoKnB0cikgcWF0b21pY19mZXRjaF9kZWMocHRyKQorICAgIHR5cGVv ZigqcHRyKSBxYXRvbWljX2ZldGNoX2FkZChwdHIsIHZhbCkKKyAgICB0eXBlb2YoKnB0cikgcWF0 b21pY19mZXRjaF9zdWIocHRyLCB2YWwpCisgICAgdHlwZW9mKCpwdHIpIHFhdG9taWNfZmV0Y2hf YW5kKHB0ciwgdmFsKQorICAgIHR5cGVvZigqcHRyKSBxYXRvbWljX2ZldGNoX29yKHB0ciwgdmFs KQorICAgIHR5cGVvZigqcHRyKSBxYXRvbWljX2ZldGNoX3hvcihwdHIsIHZhbCkKKyAgICB0eXBl b2YoKnB0cikgcWF0b21pY19mZXRjaF9pbmNfbm9uemVybyhwdHIpCisgICAgdHlwZW9mKCpwdHIp IHFhdG9taWNfeGNoZyhwdHIsIHZhbCkKKyAgICB0eXBlb2YoKnB0cikgcWF0b21pY19jbXB4Y2hn KHB0ciwgb2xkLCBuZXcpCiAKIGFsbCBvZiB3aGljaCByZXR1cm4gdGhlIG9sZCB2YWx1ZSBvZiBg YCpwdHJgYC4gIFRoZXNlIG9wZXJhdGlvbnMgYXJlCiBwb2x5bW9ycGhpYzsgdGhleSBvcGVyYXRl IG9uIGFueSB0eXBlIHRoYXQgaXMgYXMgd2lkZSBhcyBhIHBvaW50ZXIgb3IKQEAgLTkxLDE5ICs5 MSwxOSBAQCBzbWFsbGVyLgogCiBTaW1pbGFyIG9wZXJhdGlvbnMgcmV0dXJuIHRoZSBuZXcgdmFs dWUgb2YgYGAqcHRyYGA6OgogCi0gICAgdHlwZW9mKCpwdHIpIGF0b21pY19pbmNfZmV0Y2gocHRy KQotICAgIHR5cGVvZigqcHRyKSBhdG9taWNfZGVjX2ZldGNoKHB0cikKLSAgICB0eXBlb2YoKnB0 cikgYXRvbWljX2FkZF9mZXRjaChwdHIsIHZhbCkKLSAgICB0eXBlb2YoKnB0cikgYXRvbWljX3N1 Yl9mZXRjaChwdHIsIHZhbCkKLSAgICB0eXBlb2YoKnB0cikgYXRvbWljX2FuZF9mZXRjaChwdHIs IHZhbCkKLSAgICB0eXBlb2YoKnB0cikgYXRvbWljX29yX2ZldGNoKHB0ciwgdmFsKQotICAgIHR5 cGVvZigqcHRyKSBhdG9taWNfeG9yX2ZldGNoKHB0ciwgdmFsKQorICAgIHR5cGVvZigqcHRyKSBx YXRvbWljX2luY19mZXRjaChwdHIpCisgICAgdHlwZW9mKCpwdHIpIHFhdG9taWNfZGVjX2ZldGNo KHB0cikKKyAgICB0eXBlb2YoKnB0cikgcWF0b21pY19hZGRfZmV0Y2gocHRyLCB2YWwpCisgICAg dHlwZW9mKCpwdHIpIHFhdG9taWNfc3ViX2ZldGNoKHB0ciwgdmFsKQorICAgIHR5cGVvZigqcHRy KSBxYXRvbWljX2FuZF9mZXRjaChwdHIsIHZhbCkKKyAgICB0eXBlb2YoKnB0cikgcWF0b21pY19v cl9mZXRjaChwdHIsIHZhbCkKKyAgICB0eXBlb2YoKnB0cikgcWF0b21pY194b3JfZmV0Y2gocHRy LCB2YWwpCiAKIGBgcWVtdS9hdG9taWMuaGBgIGFsc28gcHJvdmlkZXMgbG9hZHMgYW5kIHN0b3Jl cyB0aGF0IGNhbm5vdCBiZSByZW9yZGVyZWQKIHdpdGggZWFjaCBvdGhlcjo6CiAKLSAgICB0eXBl b2YoKnB0cikgYXRvbWljX21iX3JlYWQocHRyKQotICAgIHZvaWQgICAgICAgICBhdG9taWNfbWJf c2V0KHB0ciwgdmFsKQorICAgIHR5cGVvZigqcHRyKSBxYXRvbWljX21iX3JlYWQocHRyKQorICAg IHZvaWQgICAgICAgICBxYXRvbWljX21iX3NldChwdHIsIHZhbCkKIAogSG93ZXZlciB0aGVzZSBk byBub3QgcHJvdmlkZSBzZXF1ZW50aWFsIGNvbnNpc3RlbmN5IGFuZCwgaW4gcGFydGljdWxhciwK IHRoZXkgZG8gbm90IHBhcnRpY2lwYXRlIGluIHRoZSB0b3RhbCBvcmRlcmluZyBlbmZvcmNlZCBi eQpAQCAtMTE1LDExICsxMTUsMTEgQEAgZWFzaWVzdCB0byBoYXJkZXN0KToKIAogLSBsaWdodHdl aWdodCBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlcyBzdWNoIGFzIGBgUWVtdUV2ZW50YGAKIAot LSBSQ1Ugb3BlcmF0aW9ucyAoYGBhdG9taWNfcmN1X3JlYWRgYCwgYGBhdG9taWNfcmN1X3NldGBg KSB3aGVuIHB1Ymxpc2hpbmcKKy0gUkNVIG9wZXJhdGlvbnMgKGBgcWF0b21pY19yY3VfcmVhZGBg LCBgYHFhdG9taWNfcmN1X3NldGBgKSB3aGVuIHB1Ymxpc2hpbmcKICAgb3IgYWNjZXNzaW5nIGEg bmV3IHZlcnNpb24gb2YgYSBkYXRhIHN0cnVjdHVyZQogCi0tIG90aGVyIGF0b21pYyBhY2Nlc3Nl czogYGBhdG9taWNfcmVhZGBgIGFuZCBgYGF0b21pY19sb2FkX2FjcXVpcmVgYCBmb3IKLSAgbG9h ZHMsIGBgYXRvbWljX3NldGBgIGFuZCBgYGF0b21pY19zdG9yZV9yZWxlYXNlYGAgZm9yIHN0b3Jl cywgYGBzbXBfbWJgYAorLSBvdGhlciBhdG9taWMgYWNjZXNzZXM6IGBgcWF0b21pY19yZWFkYGAg YW5kIGBgcWF0b21pY19sb2FkX2FjcXVpcmVgYCBmb3IKKyAgbG9hZHMsIGBgcWF0b21pY19zZXRg YCBhbmQgYGBxYXRvbWljX3N0b3JlX3JlbGVhc2VgYCBmb3Igc3RvcmVzLCBgYHNtcF9tYmBgCiAg IHRvIGZvcmJpZCByZW9yZGVyaW5nIHN1YnNlcXVlbnQgbG9hZHMgYmVmb3JlIGEgc3RvcmUuCiAK IApAQCAtMTQ5LDIyICsxNDksMjIgQEAgVGhlIG9ubHkgZ3VhcmFudGVlcyB0aGF0IHlvdSBjYW4g cmVseSB1cG9uIGluIHRoaXMgY2FzZSBhcmU6CiAKIFdoZW4gdXNpbmcgdGhpcyBtb2RlbCwgdmFy aWFibGVzIGFyZSBhY2Nlc3NlZCB3aXRoOgogCi0tIGBgYXRvbWljX3JlYWQoKWBgIGFuZCBgYGF0 b21pY19zZXQoKWBgOyB0aGVzZSBwcmV2ZW50IHRoZSBjb21waWxlciBmcm9tCistIGBgcWF0b21p Y19yZWFkKClgYCBhbmQgYGBxYXRvbWljX3NldCgpYGA7IHRoZXNlIHByZXZlbnQgdGhlIGNvbXBp bGVyIGZyb20KICAgb3B0aW1pemluZyBhY2Nlc3NlcyBvdXQgb2YgZXhpc3RlbmNlIGFuZCBjcmVh dGluZyB1bnNvbGljaXRlZAogICBhY2Nlc3NlcywgYnV0IGRvIG5vdCBvdGhlcndpc2UgaW1wb3Nl IGFueSBvcmRlcmluZyBvbiBsb2FkcyBhbmQKICAgc3RvcmVzOiBib3RoIHRoZSBjb21waWxlciBh bmQgdGhlIHByb2Nlc3NvciBhcmUgZnJlZSB0byByZW9yZGVyCiAgIHRoZW0uCiAKLS0gYGBhdG9t aWNfbG9hZF9hY3F1aXJlKClgYCwgd2hpY2ggZ3VhcmFudGVlcyB0aGUgTE9BRCB0byBhcHBlYXIg dG8KKy0gYGBxYXRvbWljX2xvYWRfYWNxdWlyZSgpYGAsIHdoaWNoIGd1YXJhbnRlZXMgdGhlIExP QUQgdG8gYXBwZWFyIHRvCiAgIGhhcHBlbiwgd2l0aCByZXNwZWN0IHRvIHRoZSBvdGhlciBjb21w b25lbnRzIG9mIHRoZSBzeXN0ZW0sCiAgIGJlZm9yZSBhbGwgdGhlIExPQUQgb3IgU1RPUkUgb3Bl cmF0aW9ucyBzcGVjaWZpZWQgYWZ0ZXJ3YXJkcy4KLSAgT3BlcmF0aW9ucyBjb21pbmcgYmVmb3Jl IGBgYXRvbWljX2xvYWRfYWNxdWlyZSgpYGAgY2FuIHN0aWxsIGJlCisgIE9wZXJhdGlvbnMgY29t aW5nIGJlZm9yZSBgYHFhdG9taWNfbG9hZF9hY3F1aXJlKClgYCBjYW4gc3RpbGwgYmUKICAgcmVv cmRlcmVkIGFmdGVyIGl0LgogCi0tIGBgYXRvbWljX3N0b3JlX3JlbGVhc2UoKWBgLCB3aGljaCBn dWFyYW50ZWVzIHRoZSBTVE9SRSB0byBhcHBlYXIgdG8KKy0gYGBxYXRvbWljX3N0b3JlX3JlbGVh c2UoKWBgLCB3aGljaCBndWFyYW50ZWVzIHRoZSBTVE9SRSB0byBhcHBlYXIgdG8KICAgaGFwcGVu LCB3aXRoIHJlc3BlY3QgdG8gdGhlIG90aGVyIGNvbXBvbmVudHMgb2YgdGhlIHN5c3RlbSwKICAg YWZ0ZXIgYWxsIHRoZSBMT0FEIG9yIFNUT1JFIG9wZXJhdGlvbnMgc3BlY2lmaWVkIGJlZm9yZS4K LSAgT3BlcmF0aW9ucyBjb21pbmcgYWZ0ZXIgYGBhdG9taWNfc3RvcmVfcmVsZWFzZSgpYGAgY2Fu IHN0aWxsIGJlCisgIE9wZXJhdGlvbnMgY29taW5nIGFmdGVyIGBgcWF0b21pY19zdG9yZV9yZWxl YXNlKClgYCBjYW4gc3RpbGwgYmUKICAgcmVvcmRlcmVkIGJlZm9yZSBpdC4KIAogUmVzdHJpY3Rp b25zIHRvIHRoZSBvcmRlcmluZyBvZiBhY2Nlc3NlcyBjYW4gYWxzbyBiZSBzcGVjaWZpZWQKQEAg LTIyOSw3ICsyMjksNyBAQCBUaGV5IGNvbWUgaW4gc2l4IGtpbmRzOgogICBkZXBlbmRlbmN5IGFu ZCBhIGZ1bGwgcmVhZCBiYXJyaWVyIG9yIGJldHRlciBpcyByZXF1aXJlZC4KIAogCi1NZW1vcnkg YmFycmllcnMgYW5kIGBgYXRvbWljX2xvYWRfYWNxdWlyZWBgL2BgYXRvbWljX3N0b3JlX3JlbGVh c2VgYCBhcmUKK01lbW9yeSBiYXJyaWVycyBhbmQgYGBxYXRvbWljX2xvYWRfYWNxdWlyZWBgL2Bg cWF0b21pY19zdG9yZV9yZWxlYXNlYGAgYXJlCiBtb3N0bHkgdXNlZCB3aGVuIGEgZGF0YSBzdHJ1 Y3R1cmUgaGFzIG9uZSB0aHJlYWQgdGhhdCBpcyBhbHdheXMgYSB3cml0ZXIKIGFuZCBvbmUgdGhy ZWFkIHRoYXQgaXMgYWx3YXlzIGEgcmVhZGVyOgogCkBAIC0yMzgsOCArMjM4LDggQEAgYW5kIG9u ZSB0aHJlYWQgdGhhdCBpcyBhbHdheXMgYSByZWFkZXI6CiAgICAgKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKICAg ICB8IDo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOjogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAogICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgfCAgIGF0b21pY19zdG9y ZV9yZWxlYXNlKCZhLCB4KTsgICB8ICAgeSA9IGF0b21pY19sb2FkX2FjcXVpcmUoJmIpOyAgIHwK LSAgICB8ICAgYXRvbWljX3N0b3JlX3JlbGVhc2UoJmIsIHkpOyAgIHwgICB4ID0gYXRvbWljX2xv YWRfYWNxdWlyZSgmYSk7ICAgfAorICAgIHwgICBxYXRvbWljX3N0b3JlX3JlbGVhc2UoJmEsIHgp OyAgfCAgIHkgPSBxYXRvbWljX2xvYWRfYWNxdWlyZSgmYik7ICB8CisgICAgfCAgIHFhdG9taWNf c3RvcmVfcmVsZWFzZSgmYiwgeSk7ICB8ICAgeCA9IHFhdG9taWNfbG9hZF9hY3F1aXJlKCZhKTsg IHwKICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCiBJbiB0aGlzIGNhc2UsIGNvcnJlY3RuZXNzIGlzIGVh c3kgdG8gY2hlY2sgZm9yIHVzaW5nIHRoZSAicGFpcmluZyIKQEAgLTI1OCwxNCArMjU4LDE0IEBA IG91dHNpZGUgYSBsb29wLiAgRm9yIGV4YW1wbGU6CiAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fAogICAgIHwgICBuID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgbiA9 IDA7ICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICB8ICAgZm9yIChpID0gMDsgaSA8IDEw OyBpKyspICAgICAgICAgICAgICAgfCAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSAgICAgICB8 Ci0gICAgfCAgICAgbiArPSBhdG9taWNfbG9hZF9hY3F1aXJlKCZhW2ldKTsgICAgIHwgICAgIG4g Kz0gYXRvbWljX3JlYWQoJmFbaV0pOyAgICAgfAorICAgIHwgICAgIG4gKz0gcWF0b21pY19sb2Fk X2FjcXVpcmUoJmFbaV0pOyAgICB8ICAgICBuICs9IHFhdG9taWNfcmVhZCgmYVtpXSk7ICAgIHwK ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIHNtcF9t Yl9hY3F1aXJlKCk7ICAgICAgICAgICAgICB8CiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwog ICAgIHwgOjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDo6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBzbXBfbWJf cmVsZWFzZSgpOyAgICAgICAgICAgICAgfAogICAgIHwgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkr KykgICAgICAgICAgICAgICB8ICAgZm9yIChpID0gMDsgaSA8IDEwOyBpKyspICAgICAgIHwKLSAg ICB8ICAgICBhdG9taWNfc3RvcmVfcmVsZWFzZSgmYVtpXSwgZmFsc2UpOyAgfCAgICAgYXRvbWlj X3NldCgmYVtpXSwgZmFsc2UpOyAgICB8CisgICAgfCAgICAgcWF0b21pY19zdG9yZV9yZWxlYXNl KCZhW2ldLCBmYWxzZSk7IHwgICAgIHFhdG9taWNfc2V0KCZhW2ldLCBmYWxzZSk7ICAgfAogICAg ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAogU3BsaXR0aW5nIGEgbG9vcCBjYW4gYWxzbyBiZSB1 c2VmdWwgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgYmFycmllcnM6CkBAIC0yNzcsMTEgKzI3Nywx MSBAQCBTcGxpdHRpbmcgYSBsb29wIGNhbiBhbHNvIGJlIHVzZWZ1bCB0byByZWR1Y2UgdGhlIG51 bWJlciBvZiBiYXJyaWVyczoKICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgfCAgIG4g PSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHNtcF9tYl9yZWxlYXNl KCk7ICAgICAgICAgICAgfAogICAgIHwgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykgeyAgICAg ICAgICAgICB8ICAgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykgICAgIHwKLSAgICB8ICAgICBh dG9taWNfc3RvcmVfcmVsZWFzZSgmYVtpXSwgZmFsc2UpOyAgfCAgICAgICBhdG9taWNfc2V0KCZh W2ldLCBmYWxzZSk7ICB8CisgICAgfCAgICAgcWF0b21pY19zdG9yZV9yZWxlYXNlKCZhW2ldLCBm YWxzZSk7IHwgICAgICAgcWF0b21pY19zZXQoJmFbaV0sIGZhbHNlKTsgfAogICAgIHwgICAgIHNt cF9tYigpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICBzbWJfbWIoKTsgICAgICAg ICAgICAgICAgICAgIHwKLSAgICB8ICAgICBuICs9IGF0b21pY19yZWFkKCZiW2ldKTsgICAgICAg ICAgICAgfCAgICAgbiA9IDA7ICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgfCAgICAgbiAr PSBxYXRvbWljX3JlYWQoJmJbaV0pOyAgICAgICAgICAgIHwgICAgIG4gPSAwOyAgICAgICAgICAg ICAgICAgICAgICAgfAogICAgIHwgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykgICAgIHwKLSAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICBuICs9IGF0b21pY19yZWFk KCZiW2ldKTsgICB8CisgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgbiArPSBxYXRvbWljX3JlYWQoJmJbaV0pOyAgfAogICAgICstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSsKIAogSW4gdGhpcyBjYXNlLCBhIGBgc21wX21iX3JlbGVhc2UoKWBgIGlzIGFs c28gcmVwbGFjZWQgd2l0aCBhIChwb3NzaWJseSBjaGVhcGVyLCBhbmQgY2xlYXJlcgpAQCAtMjk0 LDEwICsyOTQsMTAgQEAgYXMgd2VsbCkgYGBzbXBfd21iKClgYDoKICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8CiAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgIHNtcF9tYl9yZWxlYXNlKCk7ICAgICAgICAgICAgfAogICAgIHwgICBmb3IgKGkgPSAw OyBpIDwgMTA7IGkrKykgeyAgICAgICAgICAgICB8ICAgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkr KykgICAgIHwKLSAgICB8ICAgICBhdG9taWNfc3RvcmVfcmVsZWFzZSgmYVtpXSwgZmFsc2UpOyAg fCAgICAgICBhdG9taWNfc2V0KCZhW2ldLCBmYWxzZSk7ICB8Ci0gICAgfCAgICAgYXRvbWljX3N0 b3JlX3JlbGVhc2UoJmJbaV0sIGZhbHNlKTsgIHwgICAgIHNtYl93bWIoKTsgICAgICAgICAgICAg ICAgICAgfAorICAgIHwgICAgIHFhdG9taWNfc3RvcmVfcmVsZWFzZSgmYVtpXSwgZmFsc2UpOyB8 ICAgICAgIHFhdG9taWNfc2V0KCZhW2ldLCBmYWxzZSk7IHwKKyAgICB8ICAgICBxYXRvbWljX3N0 b3JlX3JlbGVhc2UoJmJbaV0sIGZhbHNlKTsgfCAgICAgc21iX3dtYigpOyAgICAgICAgICAgICAg ICAgICB8CiAgICAgfCAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSAgICAgfAotICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIGF0b21pY19zZXQoJmJbaV0sIGZhbHNl KTsgIHwKKyAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICBxYXRvbWljX3NldCgmYltpXSwgZmFsc2UpOyB8CiAgICAgKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKwogCiAKQEAgLTMwNiw3ICszMDYsNyBAQCBhcyB3ZWxsKSBgYHNtcF93bWIoKWBgOgogQWNx dWlyZS9yZWxlYXNlIHBhaXJpbmcgYW5kIHRoZSAqc3luY2hyb25pemVzLXdpdGgqIHJlbGF0aW9u CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIAotQXRvbWljIG9wZXJhdGlvbnMgb3RoZXIgdGhhbiBgYGF0b21pY19zZXQoKWBgIGFu ZCBgYGF0b21pY19yZWFkKClgYCBoYXZlCitBdG9taWMgb3BlcmF0aW9ucyBvdGhlciB0aGFuIGBg cWF0b21pY19zZXQoKWBgIGFuZCBgYHFhdG9taWNfcmVhZCgpYGAgaGF2ZQogZWl0aGVyICphY3F1 aXJlKiBvciAqcmVsZWFzZSogc2VtYW50aWNzIFsjcm13XV8uICBUaGlzIGhhcyB0d28gZWZmZWN0 czoKIAogLi4gWyNybXddIFJlYWQtbW9kaWZ5LXdyaXRlIG9wZXJhdGlvbnMgY2FuIGhhdmUgYm90 aC0tLWFjcXVpcmUgYXBwbGllcyB0byB0aGUKQEAgLTM1NywxNiArMzU3LDE2IEBAIHRocmVhZCAy IGlzIHJlbHlpbmcgb24gdGhlICpzeW5jaHJvbml6ZXMtd2l0aCogcmVsYXRpb24gYmV0d2VlbiBg YHB0aHJlYWRfZXhpdGBgCiAKIFN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIHRocmVhZHMgYmFzaWNh bGx5IGRlc2NlbmRzIGZyb20gdGhpcyBwYWlyaW5nIG9mCiBhIHJlbGVhc2Ugb3BlcmF0aW9uIGFu ZCBhbiBhY3F1aXJlIG9wZXJhdGlvbi4gIFRoZXJlZm9yZSwgYXRvbWljIG9wZXJhdGlvbnMKLW90 aGVyIHRoYW4gYGBhdG9taWNfc2V0KClgYCBhbmQgYGBhdG9taWNfcmVhZCgpYGAgd2lsbCBhbG1v c3QgYWx3YXlzIGJlCitvdGhlciB0aGFuIGBgcWF0b21pY19zZXQoKWBgIGFuZCBgYHFhdG9taWNf cmVhZCgpYGAgd2lsbCBhbG1vc3QgYWx3YXlzIGJlCiBwYWlyZWQgd2l0aCBhbm90aGVyIG9wZXJh dGlvbiBvZiB0aGUgb3Bwb3NpdGUga2luZDogYW4gYWNxdWlyZSBvcGVyYXRpb24KIHdpbGwgcGFp ciB3aXRoIGEgcmVsZWFzZSBvcGVyYXRpb24gYW5kIHZpY2UgdmVyc2EuICBUaGlzIHJ1bGUgb2Yg dGh1bWIgaXMKIGV4dHJlbWVseSB1c2VmdWw7IGluIHRoZSBjYXNlIG9mIFFFTVUsIGhvd2V2ZXIs IG5vdGUgdGhhdCB0aGUgb3RoZXIKIG9wZXJhdGlvbiBtYXkgYWN0dWFsbHkgYmUgaW4gYSBkcml2 ZXIgdGhhdCBydW5zIGluIHRoZSBndWVzdCEKIAogYGBzbXBfcmVhZF9iYXJyaWVyX2RlcGVuZHMo KWBgLCBgYHNtcF9ybWIoKWBgLCBgYHNtcF9tYl9hY3F1aXJlKClgYCwKLWBgYXRvbWljX2xvYWRf YWNxdWlyZSgpYGAgYW5kIGBgYXRvbWljX3JjdV9yZWFkKClgYCBhbGwgY291bnQKK2BgcWF0b21p Y19sb2FkX2FjcXVpcmUoKWBgIGFuZCBgYHFhdG9taWNfcmN1X3JlYWQoKWBgIGFsbCBjb3VudAog YXMgYWNxdWlyZSBvcGVyYXRpb25zLiAgYGBzbXBfd21iKClgYCwgYGBzbXBfbWJfcmVsZWFzZSgp YGAsCi1gYGF0b21pY19zdG9yZV9yZWxlYXNlKClgYCBhbmQgYGBhdG9taWNfcmN1X3NldCgpYGAg YWxsIGNvdW50IGFzIHJlbGVhc2UKK2BgcWF0b21pY19zdG9yZV9yZWxlYXNlKClgYCBhbmQgYGBx YXRvbWljX3JjdV9zZXQoKWBgIGFsbCBjb3VudCBhcyByZWxlYXNlCiBvcGVyYXRpb25zLiAgYGBz bXBfbWIoKWBgIGNvdW50cyBhcyBib3RoIGFjcXVpcmUgYW5kIHJlbGVhc2UsIHRoZXJlZm9yZQog aXQgY2FuIHBhaXIgd2l0aCBhbnkgb3RoZXIgYXRvbWljIG9wZXJhdGlvbi4gIEhlcmUgaXMgYW4g ZXhhbXBsZToKIApAQCAtMzc1LDExICszNzUsMTEgQEAgaXQgY2FuIHBhaXIgd2l0aCBhbnkgb3Ro ZXIgYXRvbWljIG9wZXJhdGlvbi4gIEhlcmUgaXMgYW4gZXhhbXBsZToKICAgICAgICs9PT09PT09 PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKICAgICAgIHwg OjogICAgICAgICAgICAgICAgICAgfCA6OiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKLSAgICAgIHwgICBhdG9taWNfc2V0KCZhLCAxKTsgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKKyAgICAgIHwgICBxYXRvbWljX3NldCgmYSwgMSk7fCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKICAgICAgIHwgICBzbXBfd21iKCk7ICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKLSAgICAgIHwgICBhdG9taWNfc2V0KCZiLCAyKTsgfCAgIHgg PSBhdG9taWNfcmVhZCgmYik7ICAgICAgIHwKKyAgICAgIHwgICBxYXRvbWljX3NldCgmYiwgMik7 fCAgIHggPSBxYXRvbWljX3JlYWQoJmIpOyAgICAgIHwKICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgfCAgIHNtcF9ybWIoKTsgICAgICAgICAgICAgICAgIHwKLSAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgfCAgIHkgPSBhdG9taWNfcmVhZCgmYSk7ICAgICAgIHwKKyAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgfCAgIHkgPSBxYXRvbWljX3JlYWQoJmEpOyAgICAgIHwKICAgICAg ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK IAogTm90ZSB0aGF0IGEgbG9hZC1zdG9yZSBwYWlyIG9ubHkgY291bnRzIGlmIHRoZSB0d28gb3Bl cmF0aW9ucyBhY2Nlc3MgdGhlCkBAIC0zOTMsOSArMzkzLDkgQEAgY29ycmVjdCBzeW5jaHJvbml6 YXRpb246CiAgICAgICArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0rCiAgICAgICB8IDo6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8Ci0gICAgICB8ICAgYXRvbWljX3NldCgmYSwgMSk7ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8Ci0gICAgICB8ICAgYXRvbWljX3N0b3JlX3JlbGVhc2UoJmIs IDIpOyB8ICAgeCA9IGF0b21pY19sb2FkX2FjcXVpcmUoJmIpOyB8Ci0gICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgeSA9IGF0b21pY19yZWFkKCZhKTsgICAgICAgICB8 CisgICAgICB8ICAgcWF0b21pY19zZXQoJmEsIDEpOyAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8CisgICAgICB8ICAgcWF0b21pY19zdG9yZV9yZWxlYXNlKCZiLCAy KTt8ICAgeCA9IHFhdG9taWNfbG9hZF9hY3F1aXJlKCZiKTt8CisgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgeSA9IHFhdG9taWNfcmVhZCgmYSk7ICAgICAgICB8CiAg ICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rCiAKIEFjcXVpcmUgYW5kIHJlbGVhc2Ugc2VtYW50aWNzIG9mIGhpZ2hl ci1sZXZlbCBwcmltaXRpdmVzIGNhbiBhbHNvIGJlCkBAIC00MjEsNyArNDIxLDcgQEAgY2Fubm90 IGJlIGEgZGF0YSByYWNlOgogICAgICAgfCAgIHNtcF93bWIoKTsgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgfCAgIHgtPmkgPSAyOyAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgfCAgIHNtcF93bWIoKTsgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotICAgICAgfCAgIGF0b21pY19zZXQo JmEsIHgpOyB8ICB4ID0gYXRvbWljX3JlYWQoJmEpOyAgICAgICAgfAorICAgICAgfCAgIHFhdG9t aWNfc2V0KCZhLCB4KTt8ICB4ID0gcWF0b21pY19yZWFkKCZhKTsgICAgICAgfAogICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICB8ICBzbXBfcmVhZF9iYXJyaWVyX2RlcGVuZHMoKTsgfAogICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICB5ID0geC0+aTsgICAgICAgICAgICAgICAgICAg fAogICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICBzbXBfcmVhZF9iYXJyaWVyX2RlcGVu ZHMoKTsgfApAQCAtNDQyLDcgKzQ0Miw3IEBAIGFuZCBtZW1vcnkgYmFycmllcnMsIGFuZCB0aGUg ZXF1aXZhbGVudHMgaW4gUUVNVToKICAgYXQgYWxsLiBMaW51eCA0LjEgdXBkYXRlZCB0aGVtIHRv IGltcGxlbWVudCB2b2xhdGlsZQogICBzZW1hbnRpY3MgdmlhIGBgQUNDRVNTX09OQ0VgYCAob3Ig dGhlIG1vcmUgcmVjZW50IGBgUkVBRGBgL2BgV1JJVEVfT05DRWBgKS4KIAotICBRRU1VJ3MgYGBh dG9taWNfcmVhZGBgIGFuZCBgYGF0b21pY19zZXRgYCBpbXBsZW1lbnQgQzExIGF0b21pYyByZWxh eGVkCisgIFFFTVUncyBgYHFhdG9taWNfcmVhZGBgIGFuZCBgYHFhdG9taWNfc2V0YGAgaW1wbGVt ZW50IEMxMSBhdG9taWMgcmVsYXhlZAogICBzZW1hbnRpY3MgaWYgdGhlIGNvbXBpbGVyIHN1cHBv cnRzIGl0LCBhbmQgdm9sYXRpbGUgc2VtYW50aWNzIG90aGVyd2lzZS4KICAgQm90aCBzZW1hbnRp Y3MgcHJldmVudCB0aGUgY29tcGlsZXIgZnJvbSBkb2luZyBjZXJ0YWluIHRyYW5zZm9ybWF0aW9u czsKICAgdGhlIGRpZmZlcmVuY2UgaXMgdGhhdCBhdG9taWMgYWNjZXNzZXMgYXJlIGd1YXJhbnRl ZWQgdG8gYmUgYXRvbWljLApAQCAtNDUxLDggKzQ1MSw4IEBAIGFuZCBtZW1vcnkgYmFycmllcnMs IGFuZCB0aGUgZXF1aXZhbGVudHMgaW4gUUVNVToKICAgc2luY2Ugd2UgYXNzdW1lIHRoZSB2YXJp YWJsZXMgcGFzc2VkIGFyZSBtYWNoaW5lLXdvcmQgc2l6ZWQgYW5kCiAgIHByb3Blcmx5IGFsaWdu ZWQuCiAKLSAgTm8gYmFycmllcnMgYXJlIGltcGxpZWQgYnkgYGBhdG9taWNfcmVhZGBgIGFuZCBg YGF0b21pY19zZXRgYCBpbiBlaXRoZXIgTGludXgKLSAgb3IgUUVNVS4KKyAgTm8gYmFycmllcnMg YXJlIGltcGxpZWQgYnkgYGBxYXRvbWljX3JlYWRgYCBhbmQgYGBxYXRvbWljX3NldGBgIGluIGVp dGhlcgorICBMaW51eCBvciBRRU1VLgogCiAtIGF0b21pYyByZWFkLW1vZGlmeS13cml0ZSBvcGVy YXRpb25zIGluIExpbnV4IGFyZSBvZiB0aHJlZSBraW5kczoKIApAQCAtNDY5LDcgKzQ2OSw3IEBA IGFuZCBtZW1vcnkgYmFycmllcnMsIGFuZCB0aGUgZXF1aXZhbGVudHMgaW4gUUVNVToKICAgYSBk aWZmZXJlbnQgc2V0IG9mIG1lbW9yeSBiYXJyaWVyczsgaW4gUUVNVSwgYWxsIG9mIHRoZW0gZW5m b3JjZQogICBzZXF1ZW50aWFsIGNvbnNpc3RlbmN5LgogCi0tIGluIFFFTVUsIGBgYXRvbWljX3Jl YWQoKWBgIGFuZCBgYGF0b21pY19zZXQoKWBgIGRvIG5vdCBwYXJ0aWNpcGF0ZSBpbgorLSBpbiBR RU1VLCBgYHFhdG9taWNfcmVhZCgpYGAgYW5kIGBgcWF0b21pY19zZXQoKWBgIGRvIG5vdCBwYXJ0 aWNpcGF0ZSBpbgogICB0aGUgdG90YWwgb3JkZXJpbmcgZW5mb3JjZWQgYnkgc2VxdWVudGlhbGx5 LWNvbnNpc3RlbnQgb3BlcmF0aW9ucy4KICAgVGhpcyBpcyBiZWNhdXNlIFFFTVUgdXNlcyB0aGUg QzExIG1lbW9yeSBtb2RlbC4gIFRoZSBmb2xsb3dpbmcgZXhhbXBsZQogICBpcyBjb3JyZWN0IGlu IExpbnV4IGJ1dCBub3QgaW4gUUVNVToKQEAgLTQ3OSw4ICs0NzksOCBAQCBhbmQgbWVtb3J5IGJh cnJpZXJzLCBhbmQgdGhlIGVxdWl2YWxlbnRzIGluIFFFTVU6CiAgICAgICArPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsK ICAgICAgIHwgOjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA6OiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAogICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgICB8ICAgYSA9IGF0 b21pY19mZXRjaF9hZGQoJngsIDIpOyAgIHwgICBhID0gYXRvbWljX2ZldGNoX2FkZCgmeCwgMik7 IHwKLSAgICAgIHwgICBiID0gUkVBRF9PTkNFKCZ5KTsgICAgICAgICAgICAgfCAgIGIgPSBhdG9t aWNfcmVhZCgmeSk7ICAgICAgICAgfAorICAgICAgfCAgIGEgPSBhdG9taWNfZmV0Y2hfYWRkKCZ4 LCAyKTsgICB8ICAgYSA9IHFhdG9taWNfZmV0Y2hfYWRkKCZ4LCAyKTt8CisgICAgICB8ICAgYiA9 IFJFQURfT05DRSgmeSk7ICAgICAgICAgICAgIHwgICBiID0gcWF0b21pY19yZWFkKCZ5KTsgICAg ICAgIHwKICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCiAgIGJlY2F1c2UgdGhlIHJlYWQgb2YgYGB5YGAg Y2FuIGJlIG1vdmVkIChieSBlaXRoZXIgdGhlIHByb2Nlc3NvciBvciB0aGUKQEAgLTQ5NSwxMCAr NDk1LDEwIEBAIGFuZCBtZW1vcnkgYmFycmllcnMsIGFuZCB0aGUgZXF1aXZhbGVudHMgaW4gUUVN VToKICAgICAgICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKICAgICAgIHwgOjog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKLSAgICAgIHwgICBhID0gYXRvbWljX3JlYWQoJngpOyAgICAgICAgIHwK LSAgICAgIHwgICBhdG9taWNfc2V0KCZ4LCBhICsgMik7ICAgICAgIHwKKyAgICAgIHwgICBhID0g cWF0b21pY19yZWFkKCZ4KTsgICAgICAgIHwKKyAgICAgIHwgICBxYXRvbWljX3NldCgmeCwgYSAr IDIpOyAgICAgIHwKICAgICAgIHwgICBzbXBfbWIoKTsgICAgICAgICAgICAgICAgICAgIHwKLSAg ICAgIHwgICBiID0gYXRvbWljX3JlYWQoJnkpOyAgICAgICAgIHwKKyAgICAgIHwgICBiID0gcWF0 b21pY19yZWFkKCZ5KTsgICAgICAgIHwKICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSsKIAogU291cmNlcwpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9rZXJuZWwtZG9jIGIvc2Ny aXB0cy9rZXJuZWwtZG9jCmluZGV4IDAzMGI1Yzg2OTEuLjQwYWQ3ODJlMzQgMTAwNzU1Ci0tLSBh L3NjcmlwdHMva2VybmVsLWRvYworKysgYi9zY3JpcHRzL2tlcm5lbC1kb2MKQEAgLTE2MjUsNyAr MTYyNSw3IEBAIHN1YiBkdW1wX2Z1bmN0aW9uKCQkKSB7CiAgICAgIyBJZiB5b3UgbWVzcyB3aXRo IHRoZXNlIHJlZ2V4cHMsIGl0J3MgYSBnb29kIGlkZWEgdG8gY2hlY2sgdGhhdAogICAgICMgdGhl IGZvbGxvd2luZyBmdW5jdGlvbnMnIGRvY3VtZW50YXRpb24gc3RpbGwgY29tZXMgb3V0IHJpZ2h0 OgogICAgICMgLSBwYXJwb3J0X3JlZ2lzdGVyX2RldmljZSAoZnVuY3Rpb24gcG9pbnRlciBwYXJh bWV0ZXJzKQotICAgICMgLSBhdG9taWNfc2V0IChtYWNybykKKyAgICAjIC0gcWF0b21pY19zZXQg KG1hY3JvKQogICAgICMgLSBwY2lfbWF0Y2hfZGV2aWNlLCBfX2NvcHlfdG9fdXNlciAobG9uZyBy ZXR1cm4gdHlwZSkKIAogICAgIGlmICgkZGVmaW5lICYmICRwcm90b3R5cGUgPX4gbS9eKCkoW2Et ekEtWjAtOV9+Ol0rKVxzKy8pIHsKZGlmZiAtLWdpdCBhL3RjZy9hYXJjaDY0L3RjZy10YXJnZXQu Yy5pbmMgYi90Y2cvYWFyY2g2NC90Y2ctdGFyZ2V0LmMuaW5jCmluZGV4IDk0OGMzNWQ4MjUuLjI2 MDdmZTRhYjkgMTAwNjQ0Ci0tLSBhL3RjZy9hYXJjaDY0L3RjZy10YXJnZXQuYy5pbmMKKysrIGIv dGNnL2FhcmNoNjQvdGNnLXRhcmdldC5jLmluYwpAQCAtMTM2NSw3ICsxMzY1LDcgQEAgdm9pZCB0 Yl90YXJnZXRfc2V0X2ptcF90YXJnZXQodWludHB0cl90IHRjX3B0ciwgdWludHB0cl90IGptcF9h ZGRyLAogICAgICAgICBpMiA9IEkzNDAxX0FEREkgfCBydCA8PCAzMSB8IChhZGRyICYgMHhmZmYp IDw8IDEwIHwgcmQgPDwgNSB8IHJkOwogICAgIH0KICAgICBwYWlyID0gKHVpbnQ2NF90KWkyIDw8 IDMyIHwgaTE7Ci0gICAgYXRvbWljX3NldCgodWludDY0X3QgKilqbXBfYWRkciwgcGFpcik7Cisg ICAgcWF0b21pY19zZXQoKHVpbnQ2NF90ICopam1wX2FkZHIsIHBhaXIpOwogICAgIGZsdXNoX2lj YWNoZV9yYW5nZShqbXBfYWRkciwgam1wX2FkZHIgKyA4KTsKIH0KIApkaWZmIC0tZ2l0IGEvdGNn L21pcHMvdGNnLXRhcmdldC5jLmluYyBiL3RjZy9taXBzL3RjZy10YXJnZXQuYy5pbmMKaW5kZXgg YmQ1YjhlMDlhMC4uN2FhMjA3MzUyMCAxMDA2NDQKLS0tIGEvdGNnL21pcHMvdGNnLXRhcmdldC5j LmluYworKysgYi90Y2cvbWlwcy90Y2ctdGFyZ2V0LmMuaW5jCkBAIC0yNjYyLDcgKzI2NjIsNyBA QCBzdGF0aWMgdm9pZCB0Y2dfdGFyZ2V0X2luaXQoVENHQ29udGV4dCAqcykKIHZvaWQgdGJfdGFy Z2V0X3NldF9qbXBfdGFyZ2V0KHVpbnRwdHJfdCB0Y19wdHIsIHVpbnRwdHJfdCBqbXBfYWRkciwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBhZGRyKQogewotICAgIGF0 b21pY19zZXQoKHVpbnQzMl90ICopam1wX2FkZHIsIGRlcG9zaXQzMihPUENfSiwgMCwgMjYsIGFk ZHIgPj4gMikpOworICAgIHFhdG9taWNfc2V0KCh1aW50MzJfdCAqKWptcF9hZGRyLCBkZXBvc2l0 MzIoT1BDX0osIDAsIDI2LCBhZGRyID4+IDIpKTsKICAgICBmbHVzaF9pY2FjaGVfcmFuZ2Uoam1w X2FkZHIsIGptcF9hZGRyICsgNCk7CiB9CiAKZGlmZiAtLWdpdCBhL3RjZy9wcGMvdGNnLXRhcmdl dC5jLmluYyBiL3RjZy9wcGMvdGNnLXRhcmdldC5jLmluYwppbmRleCAzOTNjNGIzMGUwLi43Y2I0 MGIwNDY2IDEwMDY0NAotLS0gYS90Y2cvcHBjL3RjZy10YXJnZXQuYy5pbmMKKysrIGIvdGNnL3Bw Yy90Y2ctdGFyZ2V0LmMuaW5jCkBAIC0xNzU2LDEzICsxNzU2LDEzIEBAIHZvaWQgdGJfdGFyZ2V0 X3NldF9qbXBfdGFyZ2V0KHVpbnRwdHJfdCB0Y19wdHIsIHVpbnRwdHJfdCBqbXBfYWRkciwKICNl bmRpZgogCiAgICAgICAgIC8qIEFzIHBlciB0aGUgZW5jbG9zaW5nIGlmLCB0aGlzIGlzIHBwYzY0 LiAgQXZvaWQgdGhlIF9TdGF0aWNfYXNzZXJ0Ci0gICAgICAgICAgIHdpdGhpbiBhdG9taWNfc2V0 IHRoYXQgd291bGQgZmFpbCB0byBidWlsZCBhIHBwYzMyIGhvc3QuICAqLwotICAgICAgICBhdG9t aWNfc2V0X19ub2NoZWNrKCh1aW50NjRfdCAqKWptcF9hZGRyLCBwYWlyKTsKKyAgICAgICAgICAg d2l0aGluIHFhdG9taWNfc2V0IHRoYXQgd291bGQgZmFpbCB0byBidWlsZCBhIHBwYzMyIGhvc3Qu ICAqLworICAgICAgICBxYXRvbWljX3NldF9fbm9jaGVjaygodWludDY0X3QgKilqbXBfYWRkciwg cGFpcik7CiAgICAgICAgIGZsdXNoX2ljYWNoZV9yYW5nZShqbXBfYWRkciwgam1wX2FkZHIgKyA4 KTsKICAgICB9IGVsc2UgewogICAgICAgICBpbnRwdHJfdCBkaWZmID0gYWRkciAtIGptcF9hZGRy OwogICAgICAgICB0Y2dfZGVidWdfYXNzZXJ0KGluX3JhbmdlX2IoZGlmZikpOwotICAgICAgICBh dG9taWNfc2V0KCh1aW50MzJfdCAqKWptcF9hZGRyLCBCIHwgKGRpZmYgJiAweDNmZmZmZmMpKTsK KyAgICAgICAgcWF0b21pY19zZXQoKHVpbnQzMl90ICopam1wX2FkZHIsIEIgfCAoZGlmZiAmIDB4 M2ZmZmZmYykpOwogICAgICAgICBmbHVzaF9pY2FjaGVfcmFuZ2Uoam1wX2FkZHIsIGptcF9hZGRy ICsgNCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvdGNnL3NwYXJjL3RjZy10YXJnZXQuYy5pbmMg Yi90Y2cvc3BhcmMvdGNnLXRhcmdldC5jLmluYwppbmRleCAwZjFkOTFmYzIxLi40MGJjMTIyOTBj IDEwMDY0NAotLS0gYS90Y2cvc3BhcmMvdGNnLXRhcmdldC5jLmluYworKysgYi90Y2cvc3BhcmMv dGNnLXRhcmdldC5jLmluYwpAQCAtMTgzOSw3ICsxODM5LDggQEAgdm9pZCB0Yl90YXJnZXRfc2V0 X2ptcF90YXJnZXQodWludHB0cl90IHRjX3B0ciwgdWludHB0cl90IGptcF9hZGRyLAogICAgIHRj Z19kZWJ1Z19hc3NlcnQoYnJfZGlzcCA9PSAoaW50MzJfdClicl9kaXNwKTsKIAogICAgIGlmICgh VVNFX1JFR19UQikgewotICAgICAgICBhdG9taWNfc2V0KCh1aW50MzJfdCAqKWptcF9hZGRyLCBk ZXBvc2l0MzIoQ0FMTCwgMCwgMzAsIGJyX2Rpc3AgPj4gMikpOworICAgICAgICBxYXRvbWljX3Nl dCgodWludDMyX3QgKilqbXBfYWRkciwKKwkJICAgIGRlcG9zaXQzMihDQUxMLCAwLCAzMCwgYnJf ZGlzcCA+PiAyKSk7CiAgICAgICAgIGZsdXNoX2ljYWNoZV9yYW5nZShqbXBfYWRkciwgam1wX2Fk ZHIgKyA0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE4NjMsNiArMTg2NCw2IEBAIHZv aWQgdGJfdGFyZ2V0X3NldF9qbXBfdGFyZ2V0KHVpbnRwdHJfdCB0Y19wdHIsIHVpbnRwdHJfdCBq bXBfYWRkciwKICAgICAgICAgICAgICAgfCBJTlNOX0lNTTEzKCh0Yl9kaXNwICYgMHgzZmYpIHwg LTB4NDAwKSk7CiAgICAgfQogCi0gICAgYXRvbWljX3NldCgodWludDY0X3QgKilqbXBfYWRkciwg ZGVwb3NpdDY0KGkyLCAzMiwgMzIsIGkxKSk7CisgICAgcWF0b21pY19zZXQoKHVpbnQ2NF90ICop am1wX2FkZHIsIGRlcG9zaXQ2NChpMiwgMzIsIDMyLCBpMSkpOwogICAgIGZsdXNoX2ljYWNoZV9y YW5nZShqbXBfYWRkciwgam1wX2FkZHIgKyA4KTsKIH0KLS0gCjIuMjYuMgoK