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=-8.4 required=3.0 tests=DKIM_ADSP_ALL,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham 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 A8C61C3A5A3 for ; Tue, 27 Aug 2019 08:47:36 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 72D56206BB for ; Tue, 27 Aug 2019 08:47:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amazon.de header.i=@amazon.de header.b="jNLrusqe" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 72D56206BB Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amazon.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i2X8M-0002iG-Dd; Tue, 27 Aug 2019 08:47:22 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i2X8L-0002gV-IM for xen-devel@lists.xenproject.org; Tue, 27 Aug 2019 08:47:21 +0000 X-Inumbo-ID: 462ef080-c8a7-11e9-ac23-bc764e2007e4 Received: from smtp-fw-9102.amazon.com (unknown [207.171.184.29]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 462ef080-c8a7-11e9-ac23-bc764e2007e4; Tue, 27 Aug 2019 08:47:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209; t=1566895638; x=1598431638; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=u0adtx1CGOaCZnSK3tY//HjBoHDEI0H4a2b62XNPQgA=; b=jNLrusqev7BULtw4+AtfBrvYIeimOZSV995V1Gxxz2IspLaqCwWCVRim igfI4a1aaj1o7pIrfN8KTXX+SDVtF+lWS4TB/QsQyV3/mOqeVgafxHgPc xZxxKR6gHDotYTuRD3waoyQ1lgZfPhNdg1MEA9/d18OB2CmGR9PPVLHhT s=; X-IronPort-AV: E=Sophos;i="5.64,436,1559520000"; d="scan'208";a="697824924" Received: from sea3-co-svc-lb6-vlan3.sea.amazon.com (HELO email-inbound-relay-1e-27fb8269.us-east-1.amazon.com) ([10.47.22.38]) by smtp-border-fw-out-9102.sea19.amazon.com with ESMTP; 27 Aug 2019 08:47:15 +0000 Received: from EX13MTAUEA001.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan3.iad.amazon.com [10.40.159.166]) by email-inbound-relay-1e-27fb8269.us-east-1.amazon.com (Postfix) with ESMTPS id 51E65A21E7; Tue, 27 Aug 2019 08:47:12 +0000 (UTC) Received: from EX13D05EUB001.ant.amazon.com (10.43.166.87) by EX13MTAUEA001.ant.amazon.com (10.43.61.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 27 Aug 2019 08:46:58 +0000 Received: from EX13MTAUEE001.ant.amazon.com (10.43.62.200) by EX13D05EUB001.ant.amazon.com (10.43.166.87) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 27 Aug 2019 08:46:57 +0000 Received: from dev-dsk-wipawel-1a-0c4e6d58.eu-west-1.amazon.com (10.4.134.33) by mail-relay.amazon.com (10.43.62.226) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 27 Aug 2019 08:46:55 +0000 From: Pawel Wieczorkiewicz To: , Date: Tue, 27 Aug 2019 08:46:22 +0000 Message-ID: <20190827084624.116917-11-wipawel@amazon.de> X-Mailer: git-send-email 2.16.5 In-Reply-To: <20190827084624.116917-1-wipawel@amazon.de> References: <20190821081931.90887-1-wipawel@amazon.de> <20190827084624.116917-1-wipawel@amazon.de> MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH v2 10/12] livepatch: Handle arbitrary size names with the list operation X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: wipawel@amazon.com, Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ross Lagerwall , Ian Jackson , mpohlack@amazon.com, Tim Deegan , Pawel Wieczorkiewicz , Julien Grall , Jan Beulich Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VGhlIHBheWxvYWRzJyBuYW1lIHN0cmluZ3MgY2FuIGJlIG9mIGFyYml0cmFyeSBzaXplICh0eXBp Y2FsbHkgc21hbGwKd2l0aCBhbiB1cHBlciBib3VuZCBvZiBYRU5fTElWRVBBVENIX05BTUVfU0la RSkuCkN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGxpc3Qgb3BlcmF0aW9uIGludGVyZmFj ZSBhbGxvd3MgdG8gY29weQpuYW1lcyBpbiB0aGUgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUgY2h1 bmtzIHJlZ2FyZGxlc3Mgb2YgaXRzIGFjdHVhbApzaXplIGFuZCBlbmZvcmNlcyBzcGFjZSBhbGxv Y2F0aW9uIHJlcXVpcmVtZW50cyBvbiB1c2VybGFuZCB0b29scy4KClRvIHVuaWZ5IGFuZCBzaW1w bGlmeSB0aGUgaW50ZXJmYWNlLCBoYW5kbGUgdGhlIG5hbWUgc3RyaW5ncyBvZgphcmJpdHJhcnkg c2l6ZSBieSBjb3B5aW5nIHRoZW0gaW4gYWRoZXJpbmcgY2h1bmtzIHRvIHRoZSB1c2VybGFuZC4K SW4gb3JkZXIgdG8gbGV0IHRoZSB1c2VybGFuZCBhbGxvY2F0ZSBlbm91Z2ggc3BhY2UgZm9yIHRo ZSBpbmNvbWluZwpkYXRhIGFkZCBhbiBhdXhpbGlhcnkgaW50ZXJmYWNlIHhjX2xpdmVwYXRjaF9s aXN0X2dldF9zaXplcygpIHRoYXQKcHJvdmlkZXMgdGhlIGN1cnJlbnQgbnVtYmVyIG9mIHBheWxv YWQgZW50cmllcyBhbmQgdGhlIHRvdGFsIHNpemUgb2YKYWxsIG5hbWUgc3RyaW5ncy4gVGhpcyBp cyBhY2hpZXZlZCBieSBleHRlbmRpbmcgdGhlIHN5c2N0bCBsaXN0CmludGVyZmFjZSB3aXRoIGFu IGV4dHJhIGZpZWxkczogbmFtZV90b3RhbF9zaXplLgoKVGhlIHhjX2xpdmVwYXRjaF9saXN0X2dl dF9zaXplcygpIGlzc3VlcyB0aGUgbGl2ZXBhdGNoIHN5c2N0bCBsaXN0Cm9wZXJhdGlvbiB3aXRo IHRoZSBuciBmaWVsZCBzZXQgdG8gMC4gSW4gdGhpcyBtb2RlIHRoZSBvcGVyYXRpb24KcmV0dXJu cyB0aGUgbnVtYmVyIG9mIHBheWxvYWQgZW50cmllcyBhbmQgY2FsY3VsYXRlcyB0aGUgdG90YWwg c2l6ZXMKZm9yIGFsbCBwYXlsb2FkcycgbmFtZXMuCldoZW4gdGhlIHN5c2N0bCBvcGVyYXRpb24g aXMgaXNzdWVkIHdpdGggYSBub24temVybyBuciBmaWVsZCAoZm9yCmluc3RhbmNlIHdpdGggYSB2 YWx1ZSBvYnRhaW5lZCBlYXJsaWVyIHdpdGggdGhlIHByaW9yIGNhbGwgdG8gdGhlCnhjX2xpdmVw YXRjaF9saXN0X2dldF9zaXplcygpKSB0aGUgbmV3IGZpZWxkIG5hbWVfdG90YWxfc2l6ZSBwcm92 aWRlcwp0aGUgdG90YWwgc2l6ZSBvZiBhY3R1YWxseSBjb3BpZWQgZGF0YS4KCkV4dGVuZCB0aGUg bGlieGMgdG8gaGFuZGxlIHRoZSBuYW1lIGJhY2stdG8tYmFjayBkYXRhIHRyYW5zZmVycy4KClRo ZSB4ZW4tbGl2ZXBhdGNoIHRvb2wgaXMgbW9kaWZpZWQgdG8gc3RhcnQgdGhlIGxpc3Qgb3BlcmF0 aW9uIHdpdGggYQpjYWxsIHRvIHRoZSB4Y19saXZlcGF0Y2hfbGlzdF9nZXRfc2l6ZXMoKSB0byBv YnRhaW4gdGhlIGFjdHVhbCBudW1iZXIKb2YgcGF5bG9hZHMgYXMgd2VsbCBhcyB0aGUgbmVjZXNz YXJ5IHNwYWNlIGZvciBuYW1lcy4KVGhlIHRvb2wgbm93IGFsd2F5cyByZXF1ZXN0cyB0aGUgYWN0 dWFsIG51bWJlciBvZiBlbnRyaWVzIGFuZCBsZWF2ZXMKdGhlIHByZWVtcHRpb24gaGFuZGxpbmcg dG8gdGhlIGxpYnhjIHJvdXRpbmUuIFRoZSBsaWJ4YyBzdGlsbCByZXR1cm5zCidkb25lJyBhbmQg J2xlZnQnIHBhcmFtZXRlcnMgd2l0aCB0aGUgc2FtZSBzZW1hbnRpYyBhbGxvd2luZyB0aGUgdG9v bAp0byBkZXRlY3QgYW5vbWFsaWVzIGFuZCByZWFjdCB0byB0aGVtLiBBdCB0aGUgbW9tZW50IGl0 IGlzIGV4cGVjdGVkCnRoYXQgdGhlIHRvb2wgcmVjZWl2ZXMgdGhlIGV4YWN0IG51bWJlciBvZiBl bnRpcmVzIGFzIHJlcXVlc3RlZC4KVGhlIHhlbi1saXZlcGF0Y2ggdG9vbCBoYXMgYmVlbiBhbHNv IG1vZGlmaWVkIHRvIGhhbmRsZSB0aGUgbmFtZQpiYWNrLXRvLWJhY2sgdHJhbnNmZXJzIGNvcnJl Y3RseS4KClNpZ25lZC1vZmYtYnk6IFBhd2VsIFdpZWN6b3JraWV3aWN6IDx3aXBhd2VsQGFtYXpv bi5kZT4KUmV2aWV3ZWQtYnk6IEFuZHJhLUlyaW5hIFBhcmFzY2hpdiA8YW5kcmFwcnNAYW1hem9u LmNvbT4KUmV2aWV3ZWQtYnk6IEJqb2VybiBEb2ViZWwgPGRvZWJlbEBhbWF6b24uZGU+ClJldmll d2VkLWJ5OiBNYXJ0aW4gUG9obGFjayA8bXBvaGxhY2tAYW1hem9uLmRlPgotLS0KQ2hhbmdlZCBz aW5jZSB2MToKICAqIGFkZGVkIGNvcnJlc3BvbmRpbmcgZG9jdW1lbnRhdGlvbgoKIGRvY3MvbWlz Yy9saXZlcGF0Y2gucGFuZG9jICAgIHwgIDI0ICsrKysrLS0tLQogdG9vbHMvbGlieGMvaW5jbHVk ZS94ZW5jdHJsLmggfCAgNDkgKysrKysrKysrKysrLS0tLS0tCiB0b29scy9saWJ4Yy94Y19taXNj LmMgICAgICAgICB8IDEwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiB0 b29scy9taXNjL3hlbi1saXZlcGF0Y2guYyAgICB8IDExMiArKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9jb21tb24vbGl2ZXBhdGNoLmMgICAgICAgIHwgIDMx ICsrKysrKysrKy0tLQogeGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oICAgfCAgMTUgKysrLS0t CiA2IGZpbGVzIGNoYW5nZWQsIDIxOSBpbnNlcnRpb25zKCspLCAxMTIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jcy9taXNjL2xpdmVwYXRjaC5wYW5kb2MgYi9kb2NzL21pc2MvbGl2ZXBh dGNoLnBhbmRvYwppbmRleCA5MmE0MjRlOTE4Li5hNjI2YzRmOTE2IDEwMDY0NAotLS0gYS9kb2Nz L21pc2MvbGl2ZXBhdGNoLnBhbmRvYworKysgYi9kb2NzL21pc2MvbGl2ZXBhdGNoLnBhbmRvYwpA QCAtNzE0LDE3ICs3MTQsMjAgQEAgVGhlIGNhbGxlciBwcm92aWRlczoKICAqIGBpZHhgIEluZGV4 IGl0ZXJhdG9yLiBUaGUgaW5kZXggaW50byB0aGUgaHlwZXJ2aXNvcidzIHBheWxvYWQgY291bnQu IEl0IGlzCiAgICAgcmVjb21tZW5kZWQgdGhhdCBvbiBmaXJzdCBpbnZvY2F0aW9uIHplcm8gYmUg dXNlZCBzbyB0aGF0IGBucmAgKHdoaWNoIHRoZQogICAgIGh5cGVydmlzb3Igd2lsbCB1cGRhdGUg d2l0aCB0aGUgcmVtYWluaW5nIHBheWxvYWQgY291bnQpIGJlIHByb3ZpZGVkLgotICAgIEFsc28g dGhlIGh5cGVydmlzb3Igd2lsbCBwcm92aWRlIGB2ZXJzaW9uYCB3aXRoIHRoZSBtb3N0IGN1cnJl bnQgdmFsdWUuCisgICAgQWxzbyB0aGUgaHlwZXJ2aXNvciB3aWxsIHByb3ZpZGUgYHZlcnNpb25g IHdpdGggdGhlIG1vc3QgY3VycmVudCB2YWx1ZSBhbmQKKyAgICBjYWxjdWxhdGVkIHRvdGFsIHNp emUgZm9yIGFsbCBwYXlsb2FkcycgbmFtZXMuCiAgKiBgbnJgIFRoZSBtYXggbnVtYmVyIG9mIGVu dHJpZXMgdG8gcG9wdWxhdGUuIENhbiBiZSB6ZXJvIHdoaWNoIHdpbGwgcmVzdWx0CiAgICAgaW4g dGhlIGh5cGVyY2FsbCBiZWluZyBhIHByb2Jpbmcgb25lIGFuZCByZXR1cm4gdGhlIG51bWJlciBv ZiBwYXlsb2FkcwogICAgIChhbmQgdXBkYXRlIHRoZSBgdmVyc2lvbmApLgogICogYHBhZGAgLSAq TVVTVCogYmUgemVyby4KICAqIGBzdGF0dXNgIFZpcnR1YWwgYWRkcmVzcyBvZiB3aGVyZSB0byB3 cml0ZSBgc3RydWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVzYAogICAgc3RydWN0dXJlcy4gQ2FsbGVy ICpNVVNUKiBhbGxvY2F0ZSB1cCB0byBgbnJgIG9mIHRoZW0uCi0gKiBgbmFtZWAgLSBWaXJ0dWFs IGFkZHJlc3Mgb2Ygd2hlcmUgdG8gd3JpdGUgdGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSBwYXlsb2Fk LgotICAgQ2FsbGVyICpNVVNUKiBhbGxvY2F0ZSB1cCB0byBgbnJgIG9mIHRoZW0uIEVhY2ggKk1V U1QqIGJlIG9mCi0gICAqKlhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFKiogc2l6ZS4gTm90ZSB0aGF0 ICoqWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUqKiBpbmNsdWRlcwotICAgdGhlIE5VTCB0ZXJtaW5h dG9yLgorICogYG5hbWVgIC0gVmlydHVhbCBhZGRyZXNzIG9mIHdoZXJlIHRvIHdyaXRlIHRoZSB1 bmlxdWUgbmFtZSBvZiB0aGUgcGF5bG9hZHMuCisgICBDYWxsZXIgKk1VU1QqIGFsbG9jYXRlIGVu b3VnaCBzcGFjZSB0byBiZSBhYmxlIHRvIHN0b3JlIGFsbCByZWNlaXZlZCBkYXRhCisgICAoaS5l LiB0b3RhbCBhbGxvY2F0ZWQgc3BhY2UgKk1VU1QqIG1hdGNoIHRoZSBgbmFtZV90b3RhbF9zaXpl YCB2YWx1ZQorICAgcHJvdmlkZWQgYnkgdGhlIGh5cGVydmlzb3IpLiBJbmRpdmlkdWFsIHBheWxv YWQgbmFtZSBjYW5ub3QgYmUgbG9uZ2VyIHRoYW4KKyAgICoqWEVOX0xJVkVQQVRDSF9OQU1FX1NJ WkUqKiBieXRlcy4gTm90ZSB0aGF0ICoqWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUqKgorICAgaW5j bHVkZXMgdGhlIE5VTCB0ZXJtaW5hdG9yLgogICogYGxlbmAgLSBWaXJ0dWFsIGFkZHJlc3Mgb2Yg d2hlcmUgdG8gd3JpdGUgdGhlIGxlbmd0aCBvZiBlYWNoIHVuaXF1ZSBuYW1lCiAgICBvZiB0aGUg cGF5bG9hZC4gQ2FsbGVyICpNVVNUKiBhbGxvY2F0ZSB1cCB0byBgbnJgIG9mIHRoZW0uIEVhY2gg Kk1VU1QqIGJlCiAgICBvZiBzaXplb2YodWludDMyX3QpICg0IGJ5dGVzKS4KQEAgLTczMyw3ICs3 MzYsOCBAQCBJZiB0aGUgaHlwZXJjYWxsIHJldHVybnMgYW4gcG9zaXRpdmUgbnVtYmVyLCBpdCBp cyB0aGUgbnVtYmVyICh1cHRvIGBucmAKIHByb3ZpZGVkIHRvIHRoZSBoeXBlcmNhbGwpIG9mIHRo ZSBwYXlsb2FkcyByZXR1cm5lZCwgYWxvbmcgd2l0aCBgbnJgIHVwZGF0ZWQKIHdpdGggdGhlIG51 bWJlciBvZiByZW1haW5pbmcgcGF5bG9hZHMsIGB2ZXJzaW9uYCB1cGRhdGVkIChpdCBtYXkgYmUg dGhlIHNhbWUKIGFjcm9zcyBoeXBlcmNhbGxzIC0gaWYgaXQgdmFyaWVzIHRoZSBkYXRhIGlzIHN0 YWxlIGFuZCBmdXJ0aGVyIGNhbGxzIGNvdWxkCi1mYWlsKS4gVGhlIGBzdGF0dXNgLCBgbmFtZWAs IGFuZCBgbGVuYCBhcmUgdXBkYXRlZCBhdCB0aGVpciBkZXNpZ25lZCBpbmRleAorZmFpbCkgYW5k IHRoZSBgbmFtZV90b3RhbF9zaXplYCBjb250YWluaW5nIHRvdGFsIHNpemUgb2YgdHJhbnNmZXJl ZCBkYXRhIGZvcgordGhlIGFycmF5LiBUaGUgYHN0YXR1c2AsIGBuYW1lYCwgYW5kIGBsZW5gIGFy ZSB1cGRhdGVkIGF0IHRoZWlyIGRlc2lnbmVkIGluZGV4CiB2YWx1ZSAoYGlkeGApIHdpdGggdGhl IHJldHVybmVkIHZhbHVlIG9mIGRhdGEuCiAKIElmIHRoZSBoeXBlcmNhbGwgcmV0dXJucyAtWEVO X0UyQklHIHRoZSBgbnJgIGlzIHRvbyBiaWcgYW5kIHNob3VsZCBiZQpAQCAtNzcyLDExICs3NzYs MTMgQEAgVGhlIHN0cnVjdHVyZSBpcyBhcyBmb2xsb3c6CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgb2YgcGF5bG9hZHMgYW5kIHZlcnNp b24uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP VVQ6IEhvdyBtYW55IHBheWxvYWRzIGxlZnQuICovCiAgICAgICAgIHVpbnQzMl90IHBhZDsgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogTXVzdCBiZSB6ZXJvLiAqLworICAgICAgICB1 aW50NjRfdCBuYW1lX3RvdGFsX3NpemU7ICAgICAgICAgICAgICAgLyogT1VUOiBUb3RhbCBzaXpl IG9mIGFsbCB0cmFuc2ZlciBuYW1lcyAqLwogICAgICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHhl bl9saXZlcGF0Y2hfc3RhdHVzX3QpIHN0YXR1czsgIC8qIE9VVC4gTXVzdCBoYXZlIGVub3VnaAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhY2Ug YWxsb2NhdGUgZm9yIG5yIG9mIHRoZW0uICovCi0gICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQo Y2hhcikgaWQ7ICAgICAgICAgICAvKiBPVVQ6IEFycmF5IG9mIG5hbWVzLiBFYWNoIG1lbWJlcgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVVTVCBY RU5fTElWRVBBVENIX05BTUVfU0laRSBpbiBzaXplLgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRoZW0uICovCisgICAg ICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoY2hhcikgbmFtZTsgICAgICAgICAvKiBPVVQ6IEFycmF5 IG9mIG5hbWVzLiBFYWNoIG1lbWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWF5IGhhdmUgYW4gYXJiaXRyYXJ5IGxlbmd0aCB1cCB0bworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0xJVkVQ QVRDSF9OQU1FX1NJWkUgYnl0ZXMuIE11c3QgaGF2ZQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnIgb2YgdGhlbS4gKi8KICAgICAgICAgWEVOX0dV RVNUX0hBTkRMRV82NCh1aW50MzIpIGxlbjsgICAgICAgIC8qIE9VVDogQXJyYXkgb2YgbGVuZ3Ro cyBvZiBuYW1lJ3MuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNdXN0IGhhdmUgbnIgb2YgdGhlbS4gKi8KICAgICB9OwpkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwu aAppbmRleCA3MjU2OTdjMTMyLi5lMGViYjU4NmI2IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9p bmNsdWRlL3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAt MjU2MCw3ICsyNTYwLDI1IEBAIGludCB4Y19saXZlcGF0Y2hfZ2V0KHhjX2ludGVyZmFjZSAqeGNo LAogICAgICAgICAgICAgICAgICAgICAgeGVuX2xpdmVwYXRjaF9zdGF0dXNfdCAqc3RhdHVzKTsK IAogLyoKLSAqIFRoZSBoZWFydCBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRvIGdldCBhbiBhcnJheSBv ZiB4ZW5fbGl2ZXBhdGNoX3N0YXR1c190LgorICogR2V0IGEgbnVtYmVyIG9mIGF2YWlsYWJsZSBw YXlsb2FkcyBhbmQgZ2V0IGFjdHVhbCB0b3RhbCBzaXplIG9mCisgKiB0aGUgcGF5bG9hZHMnIG5h bWUgYXJyYXkuCisgKgorICogVGhpcyBmdW5jdGlvbnMgaXMgdHlwaWNhbGx5IGV4ZWN1dGVkIGZp cnN0IGJlZm9yZSB0aGUgeGNfbGl2ZXBhdGNoX2xpc3QoKQorICogdG8gb2J0YWluIHRoZSBzaXpl cyBhbmQgY29ycmVjdGx5IGFsbG9jYXRlIGFsbCBuZWNlc3NhcnkgZGF0YSByZXNvdXJjZXMuCisg KgorICogVGhlIHJldHVybiB2YWx1ZSBpcyB6ZXJvIGlmIHRoZSBoeXBlcmNhbGwgY29tcGxldGVk IHN1Y2Nlc3NmdWxseS4KKyAqCisgKiBJZiB0aGVyZSB3YXMgYW4gZXJyb3IgcGVyZm9ybWluZyB0 aGUgc3lzY3RsIG9wZXJhdGlvbiwgdGhlIHJldHVybiB2YWx1ZQorICogd2lsbCBjb250YWluIHRo ZSBoeXBlcmNhbGwgZXJyb3IgY29kZSB2YWx1ZS4KKyAqLworaW50IHhjX2xpdmVwYXRjaF9saXN0 X2dldF9zaXplcyh4Y19pbnRlcmZhY2UgKnhjaCwgdW5zaWduZWQgaW50ICpuciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgKm5hbWVfdG90YWxfc2l6ZSk7CisKKy8q CisgKiBUaGUgaGVhcnQgb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBnZXQgYW4gYXJyYXkgb2YgdGhl IGZvbGxvd2luZyBvYmplY3RzOgorICogICAtIHhlbl9saXZlcGF0Y2hfc3RhdHVzX3Q6IHN0YXRl cyBhbmQgcmV0dXJuIGNvZGVzIG9mIHBheWxvYWRzCisgKiAgIC0gbmFtZTogbmFtZXMgb2YgcGF5 bG9hZHMKKyAqICAgLSBsZW46IGxlbmd0aHMgb2YgY29ycmVzcG9uZGluZyBwYXlsb2FkcycgbmFt ZXMKICAqCiAgKiBIb3dldmVyIGl0IGlzIGNvbXBsZXggYmVjYXVzZSBpdCBoYXMgdG8gZGVhbCB3 aXRoIHRoZSBoeXBlcnZpc29yCiAgKiByZXR1cm5pbmcgc29tZSBvZiB0aGUgcmVxdWVzdGVkIGRh dGEgb3IgZGF0YSBiZWluZyBzdGFsZQpAQCAtMjU3MSwyMSArMjU4OSwyMCBAQCBpbnQgeGNfbGl2 ZXBhdGNoX2dldCh4Y19pbnRlcmZhY2UgKnhjaCwKICAqICdsZWZ0JyBhcmUgYWxzbyB1cGRhdGVk IHdpdGggdGhlIG51bWJlciBvZiBlbnRyaWVzIGZpbGxlZCBvdXQKICAqIGFuZCByZXNwZWN0aXZl bHkgdGhlIG51bWJlciBvZiBlbnRyaWVzIGxlZnQgdG8gZ2V0IGZyb20gaHlwZXJ2aXNvci4KICAq Ci0gKiBJdCBpcyBleHBlY3RlZCB0aGF0IHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbiB3aWxs IHRha2UgdGhlCi0gKiAnbGVmdCcgYW5kIHVzZSB0aGUgdmFsdWUgZm9yICdzdGFydCcuIFRoaXMg d2F5IHdlIGhhdmUgYW4KLSAqIGN1cnNvciBpbiB0aGUgYXJyYXkuIE5vdGUgdGhhdCB0aGUgJ2lu Zm8nLCduYW1lJywgYW5kICdsZW4nIHdpbGwKLSAqIGJlIHVwZGF0ZWQgYXQgdGhlIHN1YnNlcXVl bnQgY2FsbHMuCisgKiBJdCBpcyBleHBlY3RlZCB0aGF0IHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5j dGlvbiB3aWxsIGZpcnN0IGlzc3VlIHRoZQorICogeGNfbGl2ZXBhdGNoX2xpc3RfZ2V0X3NpemVz KCkgaW4gb3JkZXIgdG8gb2J0YWluIHRvdGFsIHNpemVzIG9mIG5hbWVzCisgKiBhcyB3ZWxsIGFz IHRoZSBjdXJyZW50IG51bWJlciBvZiBwYXlsb2FkIGVudHJpZXMuCisgKiBUaGUgdG90YWwgc2l6 ZXMgYXJlIHJlcXVpcmVkIGFuZCBzdXBwbGllZCB2aWEgdGhlICduYW1lX3RvdGFsX3NpemUnCisg KiBwYXJhbWV0ZXIuCiAgKgotICogVGhlICdtYXgnIGlzIHRvIGJlIHByb3ZpZGVkIGJ5IHRoZSBj YWxsZXIgd2l0aCB0aGUgbWF4aW11bQotICogbnVtYmVyIG9mIGVudHJpZXMgdGhhdCAnaW5mbycs ICduYW1lJywgYW5kICdsZW4nIGFycmF5cyBjYW4KLSAqIGJlIGZpbGxlZCB1cCB3aXRoLgotICoK LSAqIEVhY2ggZW50cnkgaW4gdGhlICduYW1lJyBhcnJheSBpcyBleHBlY3RlZCB0byBiZSBvZiBY RU5fTElWRVBBVENIX05BTUVfU0laRQotICogbGVuZ3RoLgorICogVGhlICdtYXgnIGlzIHRvIGJl IHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIgd2l0aCB0aGUgbWF4aW11bSBudW1iZXIgb2YKKyAqIGVu dHJpZXMgdGhhdCAnaW5mbycsICduYW1lJywgJ2xlbicgYXJyYXlzIGNhbiBiZSBmaWxsZWQgdXAg d2l0aC4KICAqCiAgKiBFYWNoIGVudHJ5IGluIHRoZSAnaW5mbycgYXJyYXkgaXMgZXhwZWN0ZWQg dG8gYmUgb2YgeGVuX2xpdmVwYXRjaF9zdGF0dXNfdAogICogc3RydWN0dXJlIHNpemUuCiAgKgor ICogRWFjaCBlbnRyeSBpbiB0aGUgJ25hbWUnIGFycmF5IG1heSBoYXZlIGFuIGFyYml0cmFyeSBz aXplLgorICoKICAqIEVhY2ggZW50cnkgaW4gdGhlICdsZW4nIGFycmF5IGlzIGV4cGVjdGVkIHRv IGJlIG9mIHVpbnQzMl90IHNpemUuCiAgKgogICogVGhlIHJldHVybiB2YWx1ZSBpcyB6ZXJvIGlm IHRoZSBoeXBlcmNhbGwgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4KQEAgLTI1OTcsMTAgKzI2MTQs MTIgQEAgaW50IHhjX2xpdmVwYXRjaF9nZXQoeGNfaW50ZXJmYWNlICp4Y2gsCiAgKiB3aWxsIGNv bnRhaW4gdGhlIG51bWJlciBvZiBlbnRyaWVzIHRoYXQgaGFkIGJlZW4gc3VjY2VzZnVsbHkKICAq IHJldHJpZXZlZCAoaWYgYW55KS4KICAqLwotaW50IHhjX2xpdmVwYXRjaF9saXN0KHhjX2ludGVy ZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3RhcnQsCi0gICAgICAg ICAgICAgICAgICAgICAgeGVuX2xpdmVwYXRjaF9zdGF0dXNfdCAqaW5mbywgY2hhciAqbmFtZSwK LSAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqbGVuLCB1bnNpZ25lZCBpbnQgKmRvbmUs Ci0gICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpsZWZ0KTsKK2ludCB4Y19saXZl cGF0Y2hfbGlzdCh4Y19pbnRlcmZhY2UgKnhjaCwgY29uc3QgdW5zaWduZWQgaW50IG1heCwKKyAg ICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgc3RhcnQsCisgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVzICppbmZvLAorICAgICAgICAg ICAgICAgICAgICAgIGNoYXIgKm5hbWUsIHVpbnQzMl90ICpsZW4sCisgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgdWludDY0X3QgbmFtZV90b3RhbF9zaXplLAorICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCAqZG9uZSwgdW5zaWduZWQgaW50ICpsZWZ0KTsKIAogLyoKICAqIFRo ZSBvcGVyYXRpb25zIGFyZSBhc3luY2hyb25vdXMgYW5kIHRoZSBoeXBlcnZpc29yIG1heSB0YWtl IGEgd2hpbGUKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYyBiL3Rvb2xzL2xpYnhj L3hjX21pc2MuYwppbmRleCBhOGU5ZTdkMWUyLi5kNzg3ZjNmMjlmIDEwMDY0NAotLS0gYS90b29s cy9saWJ4Yy94Y19taXNjLmMKKysrIGIvdG9vbHMvbGlieGMveGNfbWlzYy5jCkBAIC02NjIsNyAr NjYyLDQ4IEBAIGludCB4Y19saXZlcGF0Y2hfZ2V0KHhjX2ludGVyZmFjZSAqeGNoLAogfQogCiAv KgotICogVGhlIGhlYXJ0IG9mIHRoaXMgZnVuY3Rpb24gaXMgdG8gZ2V0IGFuIGFycmF5IG9mIHhl bl9saXZlcGF0Y2hfc3RhdHVzX3QuCisgKiBHZXQgYSBudW1iZXIgb2YgYXZhaWxhYmxlIHBheWxv YWRzIGFuZCBnZXQgYWN0dWFsIHRvdGFsIHNpemUgb2YKKyAqIHRoZSBwYXlsb2FkcycgbmFtZSBh cnJheS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9ucyBpcyB0eXBpY2FsbHkgZXhlY3V0ZWQgZmlyc3Qg YmVmb3JlIHRoZSB4Y19saXZlcGF0Y2hfbGlzdCgpCisgKiB0byBvYnRhaW4gdGhlIHNpemVzIGFu ZCBjb3JyZWN0bHkgYWxsb2NhdGUgYWxsIG5lY2Vzc2FyeSBkYXRhIHJlc291cmNlcy4KKyAqCisg KiBUaGUgcmV0dXJuIHZhbHVlIGlzIHplcm8gaWYgdGhlIGh5cGVyY2FsbCBjb21wbGV0ZWQgc3Vj Y2Vzc2Z1bGx5LgorICoKKyAqIElmIHRoZXJlIHdhcyBhbiBlcnJvciBwZXJmb3JtaW5nIHRoZSBz eXNjdGwgb3BlcmF0aW9uLCB0aGUgcmV0dXJuIHZhbHVlCisgKiB3aWxsIGNvbnRhaW4gdGhlIGh5 cGVyY2FsbCBlcnJvciBjb2RlIHZhbHVlLgorICovCitpbnQgeGNfbGl2ZXBhdGNoX2xpc3RfZ2V0 X3NpemVzKHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgKm5yLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqbmFtZV90b3RhbF9zaXplKQoreworICAgIERF Q0xBUkVfU1lTQ1RMOworICAgIGludCByYzsKKworICAgIGlmICggIW5yIHx8ICFuYW1lX3RvdGFs X3NpemUgKQorICAgIHsKKyAgICAgICAgZXJybm8gPSBFSU5WQUw7CisgICAgICAgIHJldHVybiAt MTsKKyAgICB9CisKKyAgICBtZW1zZXQoJnN5c2N0bCwgMCwgc2l6ZW9mKHN5c2N0bCkpOworICAg IHN5c2N0bC5jbWQgPSBYRU5fU1lTQ1RMX2xpdmVwYXRjaF9vcDsKKyAgICBzeXNjdGwudS5saXZl cGF0Y2guY21kID0gWEVOX1NZU0NUTF9MSVZFUEFUQ0hfTElTVDsKKworICAgIHJjID0gZG9fc3lz Y3RsKHhjaCwgJnN5c2N0bCk7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiByYzsKKwor ICAgICpuciA9IHN5c2N0bC51LmxpdmVwYXRjaC51Lmxpc3QubnI7CisgICAgKm5hbWVfdG90YWxf c2l6ZSA9IHN5c2N0bC51LmxpdmVwYXRjaC51Lmxpc3QubmFtZV90b3RhbF9zaXplOworCisgICAg cmV0dXJuIDA7Cit9CisKKy8qCisgKiBUaGUgaGVhcnQgb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBn ZXQgYW4gYXJyYXkgb2YgdGhlIGZvbGxvd2luZyBvYmplY3RzOgorICogICAtIHhlbl9saXZlcGF0 Y2hfc3RhdHVzX3Q6IHN0YXRlcyBhbmQgcmV0dXJuIGNvZGVzIG9mIHBheWxvYWRzCisgKiAgIC0g bmFtZTogbmFtZXMgb2YgcGF5bG9hZHMKKyAqICAgLSBsZW46IGxlbmd0aHMgb2YgY29ycmVzcG9u ZGluZyBwYXlsb2FkcycgbmFtZXMKICAqCiAgKiBIb3dldmVyIGl0IGlzIGNvbXBsZXggYmVjYXVz ZSBpdCBoYXMgdG8gZGVhbCB3aXRoIHRoZSBoeXBlcnZpc29yCiAgKiByZXR1cm5pbmcgc29tZSBv ZiB0aGUgcmVxdWVzdGVkIGRhdGEgb3IgZGF0YSBiZWluZyBzdGFsZQpAQCAtNjczLDIxICs3MTQs MjAgQEAgaW50IHhjX2xpdmVwYXRjaF9nZXQoeGNfaW50ZXJmYWNlICp4Y2gsCiAgKiAnbGVmdCcg YXJlIGFsc28gdXBkYXRlZCB3aXRoIHRoZSBudW1iZXIgb2YgZW50cmllcyBmaWxsZWQgb3V0CiAg KiBhbmQgcmVzcGVjdGl2ZWx5IHRoZSBudW1iZXIgb2YgZW50cmllcyBsZWZ0IHRvIGdldCBmcm9t IGh5cGVydmlzb3IuCiAgKgotICogSXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGUgY2FsbGVyIG9mIHRo aXMgZnVuY3Rpb24gd2lsbCB0YWtlIHRoZQotICogJ2xlZnQnIGFuZCB1c2UgdGhlIHZhbHVlIGZv ciAnc3RhcnQnLiBUaGlzIHdheSB3ZSBoYXZlIGFuCi0gKiBjdXJzb3IgaW4gdGhlIGFycmF5LiBO b3RlIHRoYXQgdGhlICdpbmZvJywnbmFtZScsIGFuZCAnbGVuJyB3aWxsCi0gKiBiZSB1cGRhdGVk IGF0IHRoZSBzdWJzZXF1ZW50IGNhbGxzLgorICogSXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGUgY2Fs bGVyIG9mIHRoaXMgZnVuY3Rpb24gd2lsbCBmaXJzdCBpc3N1ZSB0aGUKKyAqIHhjX2xpdmVwYXRj aF9saXN0X2dldF9zaXplcygpIGluIG9yZGVyIHRvIG9idGFpbiB0b3RhbCBzaXplcyBvZiBuYW1l cworICogYXMgd2VsbCBhcyB0aGUgY3VycmVudCBudW1iZXIgb2YgcGF5bG9hZCBlbnRyaWVzLgor ICogVGhlIHRvdGFsIHNpemVzIGFyZSByZXF1aXJlZCBhbmQgc3VwcGxpZWQgdmlhIHRoZSAnbmFt ZV90b3RhbF9zaXplJworICogcGFyYW1ldGVyLgogICoKLSAqIFRoZSAnbWF4JyBpcyB0byBiZSBw cm92aWRlZCBieSB0aGUgY2FsbGVyIHdpdGggdGhlIG1heGltdW0KLSAqIG51bWJlciBvZiBlbnRy aWVzIHRoYXQgJ2luZm8nLCAnbmFtZScsIGFuZCAnbGVuJyBhcnJheXMgY2FuCi0gKiBiZSBmaWxs ZWQgdXAgd2l0aC4KLSAqCi0gKiBFYWNoIGVudHJ5IGluIHRoZSAnbmFtZScgYXJyYXkgaXMgZXhw ZWN0ZWQgdG8gYmUgb2YgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUKLSAqIGxlbmd0aC4KKyAqIFRo ZSAnbWF4JyBpcyB0byBiZSBwcm92aWRlZCBieSB0aGUgY2FsbGVyIHdpdGggdGhlIG1heGltdW0g bnVtYmVyIG9mCisgKiBlbnRyaWVzIHRoYXQgJ2luZm8nLCAnbmFtZScsICdsZW4nIGFycmF5cyBj YW4gYmUgZmlsbGVkIHVwIHdpdGguCiAgKgogICogRWFjaCBlbnRyeSBpbiB0aGUgJ2luZm8nIGFy cmF5IGlzIGV4cGVjdGVkIHRvIGJlIG9mIHhlbl9saXZlcGF0Y2hfc3RhdHVzX3QKICAqIHN0cnVj dHVyZSBzaXplLgogICoKKyAqIEVhY2ggZW50cnkgaW4gdGhlICduYW1lJyBhcnJheSBtYXkgaGF2 ZSBhbiBhcmJpdHJhcnkgc2l6ZS4KKyAqCiAgKiBFYWNoIGVudHJ5IGluIHRoZSAnbGVuJyBhcnJh eSBpcyBleHBlY3RlZCB0byBiZSBvZiB1aW50MzJfdCBzaXplLgogICoKICAqIFRoZSByZXR1cm4g dmFsdWUgaXMgemVybyBpZiB0aGUgaHlwZXJjYWxsIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuCkBA IC02OTksMTEgKzczOSwxMiBAQCBpbnQgeGNfbGl2ZXBhdGNoX2dldCh4Y19pbnRlcmZhY2UgKnhj aCwKICAqIHdpbGwgY29udGFpbiB0aGUgbnVtYmVyIG9mIGVudHJpZXMgdGhhdCBoYWQgYmVlbiBz dWNjZXNmdWxseQogICogcmV0cmlldmVkIChpZiBhbnkpLgogICovCi1pbnQgeGNfbGl2ZXBhdGNo X2xpc3QoeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2lnbmVkIGludCBtYXgsIHVuc2lnbmVkIGludCBz dGFydCwKK2ludCB4Y19saXZlcGF0Y2hfbGlzdCh4Y19pbnRlcmZhY2UgKnhjaCwgY29uc3QgdW5z aWduZWQgaW50IG1heCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg c3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVz ICppbmZvLAogICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUsIHVpbnQzMl90ICpsZW4s Ci0gICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpkb25lLAotICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCAqbGVmdCkKKyAgICAgICAgICAgICAgICAgICAgICBjb25z dCB1aW50NjRfdCBuYW1lX3RvdGFsX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50ICpkb25lLCB1bnNpZ25lZCBpbnQgKmxlZnQpCiB7CiAgICAgaW50IHJjOwogICAgIERF Q0xBUkVfU1lTQ1RMOwpAQCAtNzE0LDI3ICs3NTUsMzMgQEAgaW50IHhjX2xpdmVwYXRjaF9saXN0 KHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3RhcnQs CiAgICAgdWludDMyX3QgbWF4X2JhdGNoX3N6LCBucjsKICAgICB1aW50MzJfdCB2ZXJzaW9uID0g MCwgcmV0cmllcyA9IDA7CiAgICAgdWludDMyX3QgYWRqdXN0ID0gMDsKLSAgICBzc2l6ZV90IHN6 OworICAgIG9mZl90IG5hbWVfb2ZmID0gMDsKKyAgICB1aW50NjRfdCBuYW1lX3N6OwogCi0gICAg aWYgKCAhbWF4IHx8ICFpbmZvIHx8ICFuYW1lIHx8ICFsZW4gKQorICAgIGlmICggIW1heCB8fCAh aW5mbyB8fCAhbmFtZSB8fCAhbGVuIHx8ICFkb25lIHx8ICFsZWZ0ICkKICAgICB7CiAgICAgICAg IGVycm5vID0gRUlOVkFMOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCisgICAgaWYgKCBu YW1lX3RvdGFsX3NpemUgPT0gMCApCisgICAgeworICAgICAgICBlcnJubyA9IEVOT0VOVDsKKyAg ICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIG1lbXNldCgmc3lzY3RsLCAwLCBzaXplb2Yo c3lzY3RsKSk7CiAgICAgc3lzY3RsLmNtZCA9IFhFTl9TWVNDVExfbGl2ZXBhdGNoX29wOwogICAg IHN5c2N0bC51LmxpdmVwYXRjaC5jbWQgPSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9MSVNUOwotICAg IHN5c2N0bC51LmxpdmVwYXRjaC5wYWQgPSAwOwotICAgIHN5c2N0bC51LmxpdmVwYXRjaC51Lmxp c3QudmVyc2lvbiA9IDA7CiAgICAgc3lzY3RsLnUubGl2ZXBhdGNoLnUubGlzdC5pZHggPSBzdGFy dDsKLSAgICBzeXNjdGwudS5saXZlcGF0Y2gudS5saXN0LnBhZCA9IDA7CiAKICAgICBtYXhfYmF0 Y2hfc3ogPSBtYXg7Ci0gICAgLyogQ29udmllbmNlIHZhbHVlLiAqLwotICAgIHN6ID0gc2l6ZW9m KCpuYW1lKSAqIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFOworICAgIG5hbWVfc3ogPSBuYW1lX3Rv dGFsX3NpemU7CiAgICAgKmRvbmUgPSAwOwogICAgICpsZWZ0ID0gMDsKICAgICBkbyB7CisgICAg ICAgIHVpbnQ2NF90IF9uYW1lX3N6OworCiAgICAgICAgIC8qCiAgICAgICAgICAqIFRoZSBmaXJz dCB0aW1lIHdlIGdvIGluIHRoaXMgbG9vcCBvdXIgJ21heCcgbWF5IGJlIGJpZ2dlcgogICAgICAg ICAgKiB0aGFuIHdoYXQgdGhlIGh5cGVydmlzb3IgaXMgY29tZm9ydGFibGUgd2l0aCAtIGhlbmNl IHRoZSBmaXJzdApAQCAtNzU0LDExICs4MDEsMTEgQEAgaW50IHhjX2xpdmVwYXRjaF9saXN0KHhj X2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3RhcnQsCiAg ICAgICAgIHN5c2N0bC51LmxpdmVwYXRjaC51Lmxpc3QubnIgPSBucjsKICAgICAgICAgLyogRml4 IHRoZSBzaXplIChtYXkgdmFyeSBiZXR3ZWVuIGh5cGVyY2FsbHMpLiAqLwogICAgICAgICBIWVBF UkNBTExfQk9VTkNFX1NFVF9TSVpFKGluZm8sIG5yICogc2l6ZW9mKCppbmZvKSk7Ci0gICAgICAg IEhZUEVSQ0FMTF9CT1VOQ0VfU0VUX1NJWkUobmFtZSwgbnIgKiBucik7CisgICAgICAgIEhZUEVS Q0FMTF9CT1VOQ0VfU0VUX1NJWkUobmFtZSwgbmFtZV9zeik7CiAgICAgICAgIEhZUEVSQ0FMTF9C T1VOQ0VfU0VUX1NJWkUobGVuLCBuciAqIHNpemVvZigqbGVuKSk7CiAgICAgICAgIC8qIE1vdmUg dGhlIHBvaW50ZXIgdG8gcHJvcGVyIG9mZnNldCBpbnRvICdpbmZvJy4gKi8KICAgICAgICAgKEhZ UEVSQ0FMTF9CVUZGRVIoaW5mbykpLT51YnVmID0gaW5mbyArICpkb25lOwotICAgICAgICAoSFlQ RVJDQUxMX0JVRkZFUihuYW1lKSktPnVidWYgPSBuYW1lICsgKHN6ICogKmRvbmUpOworICAgICAg ICAoSFlQRVJDQUxMX0JVRkZFUihuYW1lKSktPnVidWYgPSBuYW1lICsgbmFtZV9vZmY7CiAgICAg ICAgIChIWVBFUkNBTExfQlVGRkVSKGxlbikpLT51YnVmID0gbGVuICsgKmRvbmU7CiAgICAgICAg IC8qIEFsbG9jYXRlIG1lbW9yeS4gKi8KICAgICAgICAgcmMgPSB4Y19oeXBlcmNhbGxfYm91bmNl X3ByZSh4Y2gsIGluZm8pOwpAQCAtODI3LDE0ICs4NzQsMTkgQEAgaW50IHhjX2xpdmVwYXRjaF9s aXN0KHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3Rh cnQsCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAqbGVmdCA9IHN5c2N0 bC51LmxpdmVwYXRjaC51Lmxpc3QubnI7IC8qIFRvdGFsIHJlbWFpbmluZyBjb3VudC4gKi8KKyAg ICAgICAgX25hbWVfc3ogPSBzeXNjdGwudS5saXZlcGF0Y2gudS5saXN0Lm5hbWVfdG90YWxfc2l6 ZTsgLyogVG90YWwgcmVjZWl2ZWQgbmFtZSBzaXplLiAqLwogICAgICAgICAvKiBDb3B5IG9ubHkg dXAgJ3JjJyBvZiBkYXRhJyAtIHdlIGNvdWxkIGFkZCAnbWluKHJjLG5yKSBpZiBkZXNpcmVkLiAq LwogICAgICAgICBIWVBFUkNBTExfQk9VTkNFX1NFVF9TSVpFKGluZm8sIChyYyAqIHNpemVvZigq aW5mbykpKTsKLSAgICAgICAgSFlQRVJDQUxMX0JPVU5DRV9TRVRfU0laRShuYW1lLCAocmMgKiBz eikpOworICAgICAgICBIWVBFUkNBTExfQk9VTkNFX1NFVF9TSVpFKG5hbWUsIF9uYW1lX3N6KTsK ICAgICAgICAgSFlQRVJDQUxMX0JPVU5DRV9TRVRfU0laRShsZW4sIChyYyAqIHNpemVvZigqbGVu KSkpOwogICAgICAgICAvKiBCb3VuY2UgdGhlIGRhdGEgYW5kIGZyZWUgdGhlIGJvdW5jZSBidWZm ZXIuICovCiAgICAgICAgIHhjX2h5cGVyY2FsbF9ib3VuY2VfcG9zdCh4Y2gsIGluZm8pOwogICAg ICAgICB4Y19oeXBlcmNhbGxfYm91bmNlX3Bvc3QoeGNoLCBuYW1lKTsKICAgICAgICAgeGNfaHlw ZXJjYWxsX2JvdW5jZV9wb3N0KHhjaCwgbGVuKTsKKworICAgICAgICBuYW1lX3N6IC09IF9uYW1l X3N6OworICAgICAgICBuYW1lX29mZiArPSBfbmFtZV9zejsKKwogICAgICAgICAvKiBBbmQgdXBk YXRlIGhvdyBtYW55IGVsZW1lbnRzIG9mIGluZm8gd2UgaGF2ZSBjb3BpZWQgaW50by4gKi8KICAg ICAgICAgKmRvbmUgKz0gcmM7CiAgICAgICAgIC8qIFVwZGF0ZSBpZHguICovCmRpZmYgLS1naXQg YS90b29scy9taXNjL3hlbi1saXZlcGF0Y2guYyBiL3Rvb2xzL21pc2MveGVuLWxpdmVwYXRjaC5j CmluZGV4IGEzN2IyNDU3ZmYuLjhhYzNkNTY3ZmMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL21pc2MveGVu LWxpdmVwYXRjaC5jCisrKyBiL3Rvb2xzL21pc2MveGVuLWxpdmVwYXRjaC5jCkBAIC02NCwxNCAr NjQsMTQgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnN0YXRlMnN0cih1bnNpZ25lZCBpbnQgc3RhdGUp CiAgICAgcmV0dXJuIG5hbWVzW3N0YXRlXTsKIH0KIAotLyogVGhpcyB2YWx1ZSB3YXMgY2hvb3Nl biBhZGhvYy4gSXQgY291bGQgYmUgNDIgdG9vLiAqLwotI2RlZmluZSBNQVhfTEVOIDExCiBzdGF0 aWMgaW50IGxpc3RfZnVuYyhpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotICAgIHVuc2lnbmVk IGludCBpZHgsIGRvbmUsIGxlZnQsIGk7CisgICAgdW5zaWduZWQgaW50IG5yLCBkb25lLCBsZWZ0 LCBpOwogICAgIHhlbl9saXZlcGF0Y2hfc3RhdHVzX3QgKmluZm8gPSBOVUxMOwogICAgIGNoYXIg Km5hbWUgPSBOVUxMOwogICAgIHVpbnQzMl90ICpsZW4gPSBOVUxMOworICAgIHVpbnQ2NF90IG5h bWVfdG90YWxfc2l6ZTsKKyAgICBvZmZfdCBuYW1lX29mZjsKICAgICBpbnQgcmMgPSBFTk9NRU07 CiAKICAgICBpZiAoIGFyZ2MgKQpAQCAtNzksNjUgKzc5LDczIEBAIHN0YXRpYyBpbnQgbGlzdF9m dW5jKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgIHNob3dfaGVscCgpOwogICAgICAg ICByZXR1cm4gLTE7CiAgICAgfQotICAgIGlkeCA9IGxlZnQgPSAwOwotICAgIGluZm8gPSBtYWxs b2Moc2l6ZW9mKCppbmZvKSAqIE1BWF9MRU4pOwotICAgIGlmICggIWluZm8gKQotICAgICAgICBy ZXR1cm4gcmM7Ci0gICAgbmFtZSA9IG1hbGxvYyhzaXplb2YoKm5hbWUpICogWEVOX0xJVkVQQVRD SF9OQU1FX1NJWkUgKiBNQVhfTEVOKTsKLSAgICBpZiAoICFuYW1lICkKKyAgICBkb25lID0gbGVm dCA9IDA7CisKKyAgICByYyA9IHhjX2xpdmVwYXRjaF9saXN0X2dldF9zaXplcyh4Y2gsICZuciwg Jm5hbWVfdG90YWxfc2l6ZSk7CisgICAgaWYgKCByYyApCiAgICAgewotICAgICAgICBmcmVlKGlu Zm8pOworICAgICAgICByYyA9IGVycm5vOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxl ZCB0byBnZXQgbGlzdCBzaXplcy5cbiIKKyAgICAgICAgICAgICAgICAiRXJyb3IgJWQ6ICVzXG4i LAorICAgICAgICAgICAgICAgIHJjLCBzdHJlcnJvcihyYykpOwogICAgICAgICByZXR1cm4gcmM7 CiAgICAgfQotICAgIGxlbiA9IG1hbGxvYyhzaXplb2YoKmxlbikgKiBNQVhfTEVOKTsKLSAgICBp ZiAoICFsZW4gKSB7Ci0gICAgICAgIGZyZWUobmFtZSk7Ci0gICAgICAgIGZyZWUoaW5mbyk7CisK KyAgICBpZiAoIG5yID09IDAgKQorICAgIHsKKyAgICAgICAgZnByaW50ZihzdGRvdXQsICJOb3Ro aW5nIHRvIGxpc3RcbiIpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpbmZvID0g bWFsbG9jKG5yICogc2l6ZW9mKCppbmZvKSk7CisgICAgaWYgKCAhaW5mbyApCiAgICAgICAgIHJl dHVybiByYzsKKworICAgIG5hbWUgPSBtYWxsb2MobmFtZV90b3RhbF9zaXplICogc2l6ZW9mKCpu YW1lKSk7CisgICAgaWYgKCAhbmFtZSApCisgICAgICAgIGdvdG8gZXJyb3JfbmFtZTsKKworICAg IGxlbiA9IG1hbGxvYyhuciAqIHNpemVvZigqbGVuKSk7CisgICAgaWYgKCAhbGVuICkKKyAgICAg ICAgZ290byBlcnJvcl9sZW47CisKKyAgICBtZW1zZXQoaW5mbywgJ0EnLCBuciAqIHNpemVvZigq aW5mbykpOworICAgIG1lbXNldChuYW1lLCAnQicsIG5hbWVfdG90YWxfc2l6ZSAqIHNpemVvZigq bmFtZSkpOworICAgIG1lbXNldChsZW4sICdDJywgbnIgKiBzaXplb2YoKmxlbikpOworICAgIG5h bWVfb2ZmID0gMDsKKworICAgIHJjID0geGNfbGl2ZXBhdGNoX2xpc3QoeGNoLCBuciwgMCwgaW5m bywgbmFtZSwgbGVuLCBuYW1lX3RvdGFsX3NpemUsICZkb25lLCAmbGVmdCk7CisgICAgaWYgKCBy YyB8fCBkb25lICE9IG5yIHx8IGxlZnQgPiAwKQorICAgIHsKKyAgICAgICAgcmMgPSBlcnJubzsK KyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gbGlzdCAlZC8lZC5cbiIKKyAgICAg ICAgICAgICAgICAiRXJyb3IgJWQ6ICVzXG4iLAorICAgICAgICAgICAgICAgIGxlZnQsIG5yLCBy Yywgc3RyZXJyb3IocmMpKTsKKyAgICAgICAgZ290byBlcnJvcjsKICAgICB9CiAKLSAgICBkbyB7 Ci0gICAgICAgIGRvbmUgPSAwOwotICAgICAgICAvKiBUaGUgbWVtc2V0IGlzIGRvbmUgdG8gY2F0 Y2ggZXJyb3JzLiAqLwotICAgICAgICBtZW1zZXQoaW5mbywgJ0EnLCBzaXplb2YoKmluZm8pICog TUFYX0xFTik7Ci0gICAgICAgIG1lbXNldChuYW1lLCAnQicsIHNpemVvZigqbmFtZSkgKiBNQVhf TEVOICogWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUpOwotICAgICAgICBtZW1zZXQobGVuLCAnQycs IHNpemVvZigqbGVuKSAqIE1BWF9MRU4pOwotICAgICAgICByYyA9IHhjX2xpdmVwYXRjaF9saXN0 KHhjaCwgTUFYX0xFTiwgaWR4LCBpbmZvLCBuYW1lLCBsZW4sICZkb25lLCAmbGVmdCk7Ci0gICAg ICAgIGlmICggcmMgKQotICAgICAgICB7Ci0gICAgICAgICAgICByYyA9IGVycm5vOwotICAgICAg ICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gbGlzdCAlZC8lZC5cbiIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiRXJyb3IgJWQ6ICVzXG4iLAotICAgICAgICAgICAgICAgICAg ICBpZHgsIGxlZnQsIHJjLCBzdHJlcnJvcihyYykpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg ICAgIH0KLSAgICAgICAgaWYgKCAhaWR4ICkKLSAgICAgICAgICAgIGZwcmludGYoc3Rkb3V0LCIg SUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzdGF0dXNcbiIKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLVxuIik7CisgICAgZnByaW50ZihzdGRvdXQsIiBJRCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHN0YXR1c1xuIgorICAgICAgICAgICAgICAg ICAgICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LVxuIik7CiAKLSAgICAgICAgZm9yICggaSA9IDA7IGkgPCBkb25lOyBpKysgKQotICAgICAgICB7 Ci0gICAgICAgICAgICB1bnNpZ25lZCBpbnQgajsKLSAgICAgICAgICAgIHVpbnQzMl90IHN6Owot ICAgICAgICAgICAgY2hhciAqc3RyOwotCi0gICAgICAgICAgICBzeiA9IGxlbltpXTsKLSAgICAg ICAgICAgIHN0ciA9IG5hbWUgKyAoaSAqIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFKTsKLSAgICAg ICAgICAgIGZvciAoIGogPSBzejsgaiA8IFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFOyBqKysgKQot ICAgICAgICAgICAgICAgIHN0cltqXSA9ICdcMCc7Ci0KLSAgICAgICAgICAgIHByaW50ZigiJS00 MHN8ICVzIiwgc3RyLCBzdGF0ZTJzdHIoaW5mb1tpXS5zdGF0ZSkpOwotICAgICAgICAgICAgaWYg KCBpbmZvW2ldLnJjICkKLSAgICAgICAgICAgICAgICBwcmludGYoIiAoJWQsICVzKVxuIiwgLWlu Zm9baV0ucmMsIHN0cmVycm9yKC1pbmZvW2ldLnJjKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAg ICAgICAgICAgICAgcHV0cygiIik7Ci0gICAgICAgIH0KLSAgICAgICAgaWR4ICs9IGRvbmU7Ci0g ICAgfSB3aGlsZSAoIGxlZnQgKTsKKyAgICBmb3IgKCBpID0gMDsgaSA8IGRvbmU7IGkrKyApCisg ICAgeworICAgICAgICBjaGFyICpuYW1lX3N0ciA9IG5hbWUgKyBuYW1lX29mZjsKKworICAgICAg ICBwcmludGYoIiUtNDAuKnN8ICVzIiwgbGVuW2ldLCBuYW1lX3N0ciwgc3RhdGUyc3RyKGluZm9b aV0uc3RhdGUpKTsKKyAgICAgICAgaWYgKCBpbmZvW2ldLnJjICkKKyAgICAgICAgICAgIHByaW50 ZigiICglZCwgJXMpXG4iLCAtaW5mb1tpXS5yYywgc3RyZXJyb3IoLWluZm9baV0ucmMpKTsKKyAg ICAgICAgZWxzZQorICAgICAgICAgICAgcHV0cygiIik7CisKKyAgICAgICAgbmFtZV9vZmYgKz0g bGVuW2ldOworICAgIH0KIAorZXJyb3I6CisgICAgZnJlZShsZW4pOworZXJyb3JfbGVuOgogICAg IGZyZWUobmFtZSk7CitlcnJvcl9uYW1lOgogICAgIGZyZWUoaW5mbyk7Ci0gICAgZnJlZShsZW4p OwogICAgIHJldHVybiByYzsKIH0KICN1bmRlZiBNQVhfTEVOCmRpZmYgLS1naXQgYS94ZW4vY29t bW9uL2xpdmVwYXRjaC5jIGIveGVuL2NvbW1vbi9saXZlcGF0Y2guYwppbmRleCBhMDU2ZmNlZmNj Li44YTllOTI2NjBlIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2xpdmVwYXRjaC5jCisrKyBiL3hl bi9jb21tb24vbGl2ZXBhdGNoLmMKQEAgLTExNjEsNyArMTE2MSw2IEBAIHN0YXRpYyBpbnQgbGl2 ZXBhdGNoX2xpc3Qoc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3QgKmxpc3QpCiAKICAg ICBpZiAoIGxpc3QtPm5yICYmCiAgICAgICAgICAoIWd1ZXN0X2hhbmRsZV9va2F5KGxpc3QtPnN0 YXR1cywgbGlzdC0+bnIpIHx8Ci0gICAgICAgICAgIWd1ZXN0X2hhbmRsZV9va2F5KGxpc3QtPm5h bWUsIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFICogbGlzdC0+bnIpIHx8CiAgICAgICAgICAgIWd1 ZXN0X2hhbmRsZV9va2F5KGxpc3QtPmxlbiwgbGlzdC0+bnIpKSApCiAgICAgICAgIHJldHVybiAt RUlOVkFMOwogCkBAIC0xMTcyLDIzICsxMTcxLDM1IEBAIHN0YXRpYyBpbnQgbGl2ZXBhdGNoX2xp c3Qoc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3QgKmxpc3QpCiAgICAgICAgIHJldHVy biAtRUlOVkFMOwogICAgIH0KIAorICAgIGxpc3QtPm5hbWVfdG90YWxfc2l6ZSA9IDA7CiAgICAg aWYgKCBsaXN0LT5uciApCiAgICAgeworICAgICAgICB1aW50NjRfdCBuYW1lX29mZnNldCA9IDA7 CisKICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSggZGF0YSwgJnBheWxvYWRfbGlzdCwgbGlz dCApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHVpbnQzMl90IGxlbjsKKyAgICAgICAgICAgIHVp bnQzMl90IG5hbWVfbGVuOwogCiAgICAgICAgICAgICBpZiAoIGxpc3QtPmlkeCA+IGkrKyApCiAg ICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIHN0YXR1cy5zdGF0ZSA9IGRh dGEtPnN0YXRlOwogICAgICAgICAgICAgc3RhdHVzLnJjID0gZGF0YS0+cmM7Ci0gICAgICAgICAg ICBsZW4gPSBzdHJsZW4oZGF0YS0+bmFtZSkgKyAxOworCisgICAgICAgICAgICBuYW1lX2xlbiA9 IHN0cmxlbihkYXRhLT5uYW1lKSArIDE7CisgICAgICAgICAgICBsaXN0LT5uYW1lX3RvdGFsX3Np emUgKz0gbmFtZV9sZW47CisKKyAgICAgICAgICAgIGlmICggIWd1ZXN0X2hhbmRsZV9zdWJyYW5n ZV9va2F5KGxpc3QtPm5hbWUsIG5hbWVfb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbmFtZV9vZmZzZXQgKyBuYW1lX2xlbiAtIDEpICkKKyAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8qIE4uQi4gJ2lkeCcgIT0gJ2kn LiAqLwotICAgICAgICAgICAgaWYgKCBfX2NvcHlfdG9fZ3Vlc3Rfb2Zmc2V0KGxpc3QtPm5hbWUs IGlkeCAqIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGEtPm5hbWUsIGxlbikgfHwKLSAgICAgICAgICAgICAgICBfX2Nv cHlfdG9fZ3Vlc3Rfb2Zmc2V0KGxpc3QtPmxlbiwgaWR4LCAmbGVuLCAxKSB8fAorICAgICAgICAg ICAgaWYgKCBfX2NvcHlfdG9fZ3Vlc3Rfb2Zmc2V0KGxpc3QtPm5hbWUsIG5hbWVfb2Zmc2V0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPm5hbWUsIG5hbWVf bGVuKSB8fAorICAgICAgICAgICAgICAgIF9fY29weV90b19ndWVzdF9vZmZzZXQobGlzdC0+bGVu LCBpZHgsICZuYW1lX2xlbiwgMSkgfHwKICAgICAgICAgICAgICAgICBfX2NvcHlfdG9fZ3Vlc3Rf b2Zmc2V0KGxpc3QtPnN0YXR1cywgaWR4LCAmc3RhdHVzLCAxKSApCiAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgcmMgPSAtRUZBVUxUOwpAQCAtMTE5NiwxMSArMTIwNywxOSBAQCBzdGF0 aWMgaW50IGxpdmVwYXRjaF9saXN0KHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0ICps aXN0KQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZHgrKzsKKyAgICAgICAgICAgIG5h bWVfb2Zmc2V0ICs9IG5hbWVfbGVuOwogCiAgICAgICAgICAgICBpZiAoIChpZHggPj0gbGlzdC0+ bnIpIHx8IGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQogICAgICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICB9CiAgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIGxpc3RfZm9yX2Vh Y2hfZW50cnkoIGRhdGEsICZwYXlsb2FkX2xpc3QsIGxpc3QgKQorICAgICAgICB7CisgICAgICAg ICAgICBsaXN0LT5uYW1lX3RvdGFsX3NpemUgKz0gc3RybGVuKGRhdGEtPm5hbWUpICsgMTsKKyAg ICAgICAgfQorICAgIH0KICAgICBsaXN0LT5uciA9IHBheWxvYWRfY250IC0gaTsgLyogUmVtYWlu aW5nIGFtb3VudC4gKi8KICAgICBsaXN0LT52ZXJzaW9uID0gcGF5bG9hZF92ZXJzaW9uOwogICAg IHNwaW5fdW5sb2NrKCZwYXlsb2FkX2xvY2spOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVi bGljL3N5c2N0bC5oIGIveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oCmluZGV4IGE0NTRiODZj ZTYuLmQ5NWM2MmYwNmIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaAor KysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmgKQEAgLTkyNCwxMCArOTI0LDExIEBAIHN0 cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9nZXQgewogICoKICAqIElmIHRoZSBoeXBlcmNhbGwg cmV0dXJucyBhbiBwb3NpdGl2ZSBudW1iZXIsIGl0IGlzIHRoZSBudW1iZXIgKHVwIHRvIGBucmAp CiAgKiBvZiB0aGUgcGF5bG9hZHMgcmV0dXJuZWQsIGFsb25nIHdpdGggYG5yYCB1cGRhdGVkIHdp dGggdGhlIG51bWJlciBvZiByZW1haW5pbmcKLSAqIHBheWxvYWRzLCBgdmVyc2lvbmAgdXBkYXRl ZCAoaXQgbWF5IGJlIHRoZSBzYW1lIGFjcm9zcyBoeXBlcmNhbGxzLiBJZiBpdAotICogdmFyaWVz IHRoZSBkYXRhIGlzIHN0YWxlIGFuZCBmdXJ0aGVyIGNhbGxzIGNvdWxkIGZhaWwpLiBUaGUgYHN0 YXR1c2AsCi0gKiBgbmFtZWAsIGFuZCBgbGVuYCcgYXJlIHVwZGF0ZWQgYXQgdGhlaXIgZGVzaWdu ZWQgaW5kZXggdmFsdWUgKGBpZHhgKSB3aXRoCi0gKiB0aGUgcmV0dXJuZWQgdmFsdWUgb2YgZGF0 YS4KKyAqIHBheWxvYWRzLCBgdmVyc2lvbmAgdXBkYXRlZCAoaXQgbWF5IGJlIHRoZSBzYW1lIGFj cm9zcyBoeXBlcmNhbGxzLiBJZiBpdCB2YXJpZXMKKyAqIHRoZSBkYXRhIGlzIHN0YWxlIGFuZCBm dXJ0aGVyIGNhbGxzIGNvdWxkIGZhaWwpIGFuZCB0aGUgbmFtZV90b3RhbF9zaXplCisgKiBjb250 YWluaW5nIHRvdGFsIHNpemUgb2YgdHJhbnNmZXJlZCBkYXRhIGZvciB0aGUgYXJyYXkuCisgKiBU aGUgYHN0YXR1c2AsIGBuYW1lYCwgYGxlbmAgYXJlIHVwZGF0ZWQgYXQgdGhlaXIgZGVzaWduZWQg aW5kZXggdmFsdWUgKGBpZHhgKQorICogd2l0aCB0aGUgcmV0dXJuZWQgdmFsdWUgb2YgZGF0YS4K ICAqCiAgKiBJZiB0aGUgaHlwZXJjYWxsIHJldHVybnMgRTJCSUcgdGhlIGBucmAgaXMgdG9vIGJp ZyBhbmQgc2hvdWxkIGJlCiAgKiBsb3dlcmVkLiBUaGUgdXBwZXIgbGltaXQgb2YgYG5yYCBpcyBs ZWZ0IHRvIHRoZSBpbXBsZW1lbnRpb24uCkBAIC05NTAsMTEgKzk1MSwxMyBAQCBzdHJ1Y3QgeGVu X3N5c2N0bF9saXZlcGF0Y2hfbGlzdCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFtb3VudCBvZiBwYXlsb2FkcyBhbmQgdmVyc2lvbi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1VUOiBIb3cgbWFueSBwYXls b2FkcyBsZWZ0LiAqLwogICAgIHVpbnQzMl90IHBhZDsgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBJTjogTXVzdCBiZSB6ZXJvLiAqLworICAgIHVpbnQ2NF90IG5hbWVfdG90YWxfc2l6ZTsg ICAgICAgICAgICAgICAvKiBPVVQ6IFRvdGFsIHNpemUgb2YgYWxsIHRyYW5zZmVyIG5hbWVzICov CiAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5fbGl2ZXBhdGNoX3N0YXR1c190KSBzdGF0dXM7 ICAvKiBPVVQuIE11c3QgaGF2ZSBlbm91Z2gKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3BhY2UgYWxsb2NhdGUgZm9yIG5yIG9mIHRoZW0uICovCiAgICAg WEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBuYW1lOyAgICAgICAgIC8qIE9VVDogQXJyYXkgb2Yg bmFtZXMuIEVhY2ggbWVtYmVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1VU1QgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUgaW4gc2l6ZS4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRo ZW0uICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h eSBoYXZlIGFuIGFyYml0cmFyeSBsZW5ndGggdXAgdG8KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUgYnl0ZXMuIE11 c3QgaGF2ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu ciBvZiB0aGVtLiAqLwogICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDMyKSBsZW47ICAgICAg ICAvKiBPVVQ6IEFycmF5IG9mIGxlbmd0aHMgb2YgbmFtZSdzLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdXN0IGhhdmUgbnIgb2YgdGhlbS4gKi8KIH07 Ci0tIAoyLjE2LjUKCgoKCkFtYXpvbiBEZXZlbG9wbWVudCBDZW50ZXIgR2VybWFueSBHbWJICkty YXVzZW5zdHIuIDM4CjEwMTE3IEJlcmxpbgpHZXNjaGFlZnRzZnVlaHJ1bmc6IENocmlzdGlhbiBT Y2hsYWVnZXIsIFJhbGYgSGVyYnJpY2gKRWluZ2V0cmFnZW4gYW0gQW10c2dlcmljaHQgQ2hhcmxv dHRlbmJ1cmcgdW50ZXIgSFJCIDE0OTE3MyBCClNpdHo6IEJlcmxpbgpVc3QtSUQ6IERFIDI4OSAy MzcgODc5CgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs