From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id +OzMJdEOJWE05AAAgWs5BA (envelope-from ) for ; Tue, 24 Aug 2021 17:22:57 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id uFV7IdEOJWGDbgAAB5/wlQ (envelope-from ) for ; Tue, 24 Aug 2021 15:22:57 +0000 Received: from mail.notmuchmail.org (nmbug.tethera.net [144.217.243.247]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id EB241856A for ; Tue, 24 Aug 2021 17:22:56 +0200 (CEST) Received: from nmbug.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id 44B7D26A25; Tue, 24 Aug 2021 11:21:25 -0400 (EDT) Received: from fethera.tethera.net (fethera.tethera.net [IPv6:2607:5300:60:c5::1]) by mail.notmuchmail.org (Postfix) with ESMTP id BEA322686D for ; Tue, 24 Aug 2021 11:21:20 -0400 (EDT) Received: by fethera.tethera.net (Postfix, from userid 1001) id B8EDC5FD5C; Tue, 24 Aug 2021 11:21:20 -0400 (EDT) Received: (nullmailer pid 2942849 invoked by uid 1000); Tue, 24 Aug 2021 15:17:51 -0000 From: David Bremner To: notmuch@notmuchmail.org Cc: David Bremner Subject: [PATCH 11/36] lib/parse-sexp: support subject field Date: Tue, 24 Aug 2021 08:17:20 -0700 Message-Id: <20210824151745.2941868-12-david@tethera.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210824151745.2941868-1-david@tethera.net> References: <20210824151745.2941868-1-david@tethera.net> MIME-Version: 1.0 Message-ID-Hash: 3WTCZXAE6OFP7ZIZOKOC4COV5QJEBDSW X-Message-ID-Hash: 3WTCZXAE6OFP7ZIZOKOC4COV5QJEBDSW X-MailFrom: bremner@tethera.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.1 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1629818577; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=DDq7iBMd/7IbKtGZZqWnG6KHh7tqVKwBwgYBurucqLc=; b=dPcYPAnuHTnjJC6/T8KxdPf3/1mULHJqZT3WLVgnVKAM8HnSKyZlor0ctsJhz2hxwIMGUh prL3Xn3qlD6tSUiCnrg0ebyLu9V4QmmzZnTUXmx68Fh/1cczEOjgyMwoKsWQGVkSDOsePp 9xf+y2S8xupfCGp2CU7U44lXFXA7nYZ2mntbAcgv5hhrvGHQZ0q159kBIN/ukfjpoj4a3J 7A0alDMPR+uD/oHY0cTmEZTCsH9a1TB7ezzeUxGaWCA8uWFHzcGf1qWOeB1JipJlBFuw1R nqLWYXCRbkx4GeUFa6QWXWXZGhznoyTcpvt6KMM16VoMdF92aoFDzQYfCzN+7g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1629818577; a=rsa-sha256; cv=none; b=kAENg+bcHKRCgSe4UNHgsj/CaKsXT/z43u0MrReiRnYVNZS+ytcIidjhzeiAh7/ClDX8fc NPTCaJdVhf8nnuB3QhpJrvoW6RqYCu20gsg+eLqgJ2VMx/lcZ4/zECCg79lFeflY7aI5xv sx+cyMbR5JH/8EmTSU9MTrhUfEflKufMuZ1kewKXb/hi+XdDQGTFigMML5siDldfpLV9bN HWafj5TfB6jbaa9RNssJFChjn+la9+SUKMj9Jb9YSTFuGE4Knz2jD9PC5K5A+Clo5TLQ5W hsPU+T0hdO7myvbhrp+JANaEmgO4aknFhkbwRLO/vbZyYU4V/LV7EQU/hJdnyQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 144.217.243.247 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Spam-Score: -0.90 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 144.217.243.247 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Queue-Id: EB241856A X-Spam-Score: -0.90 X-Migadu-Scanner: scn0.migadu.com X-TUID: zNlj9qARifxi VGhlIGJyb2tlbiB0ZXN0cyBhcmUgYmVjYXVzZSB3ZSBkbyBub3QgeWV0IGhhbmRsZSBwaHJhc2Ug c2VhcmNoZXMuDQotLS0NCiBkb2MvbWFuNy9ub3RtdWNoLXNleHAtcXVlcmllcy5yc3QgfCA2MiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tDQogbGliL3BhcnNlLXNleHAuY2MgICAgICAg ICAgICAgICAgIHwgMTkgKysrKysrKysrLQ0KIHRlc3QvVDA4MS1zZXhwci1zZWFyY2guc2ggICAg ICAgICB8IDU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysNCiAzIGZpbGVzIGNoYW5nZWQs IDEzMyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZG9jL21h bjcvbm90bXVjaC1zZXhwLXF1ZXJpZXMucnN0IGIvZG9jL21hbjcvbm90bXVjaC1zZXhwLXF1ZXJp ZXMucnN0DQppbmRleCAwMzA0NzU5ZS4uMDhlOTdjYzMgMTAwNjQ0DQotLS0gYS9kb2MvbWFuNy9u b3RtdWNoLXNleHAtcXVlcmllcy5yc3QNCisrKyBiL2RvYy9tYW43L25vdG11Y2gtc2V4cC1xdWVy aWVzLnJzdA0KQEAgLTM2LDkgKzM2LDggQEAgQW4gcy1leHByZXNzaW9uIHF1ZXJ5IGlzIGVpdGhl ciBhbiBhdG9tLCB0aGUgZW1wdHkgbGlzdCwgb3IgYQ0KIGEgKmZpZWxkKiwgKmxvZ2ljYWwgb3Bl cmF0aW9uKiwgb3IgKm1vZGlmaWVyKiwgYW5kIDAgb3IgbW9yZQ0KIHN1YnF1ZXJpZXMuDQogDQot YGAqYGANCi1gYCgpYGANCi0gICAgVGhlIGVtcHR5IGxpc3QgbWF0Y2hlcyBhbGwgbWVzc2FnZXMN CitgYCpgYCBgYCgpYGANCisgICAgTWF0Y2ggYWxsIG1lc3NhZ2VzLg0KIA0KICp0ZXJtKg0KICAg ICBNYXRjaCBhbGwgbWVzc2FnZXMgY29udGFpbmluZyAqdGVybSosIHBvc3NpYmx5IGFmdGVyDQpA QCAtNjQsNiArNjMsNTkgQEAgc3VicXVlcmllcy4NCiBGSUVMRFMNCiBgYGBgYGANCiANCisqRmll bGRzKiAoYWxzbyBjYWxsZWQgKnByZWZpeGVzKiBpbiBub3RtdWNoIGRvY3VtZW50YXRpb24pDQor Y29ycmVzcG9uZCB0byBhdHRyaWJ1dGVzIG9mIG1haWwgbWVzc2FnZXMuIFNvbWUgYXJlIGluaGVy ZW50IChhbmQNCitpbW11dGFibGUpIGxpa2UgYGBzdWJqZWN0YGAsIHdoaWxlIG90aGVycyBgYHRh Z2BgIGFuZCBgYHByb3BlcnR5YGAgYXJlDQorc2V0dGFibGUgYnkgdGhlIHVzZXIuICBFYWNoIGNv bmNyZXRlIGZpZWxkIGluDQorOmFueTpgdGhlIHRhYmxlIGJlbG93IDxmaWVsZC10YWJsZT5gDQor aXMgZGlzY3Vzc2VkIGZ1cnRoZXIgdW5kZXIgIlNlYXJjaCBwcmVmaXhlcyIgaW4NCis6YW55OmBu b3RtdWNoLXNlYXJjaC10ZXJtcyg3KWAuIFRoZSByb3cgKnVzZXIqIHJlZmVycyB0byB1c2VyIGRl ZmluZWQNCitmaWVsZHMsIGRlc2NyaWJlZCBpbiA6YW55OmBub3RtdWNoLWNvbmZpZygxKWAuDQor DQorLi4gX2ZpZWxkLXRhYmxlOg0KKw0KKy4uIHRhYmxlOjogRmllbGRzIHdpdGggc3VwcG9ydGVk IG1vZGlmaWVycw0KKw0KKyAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KKyAgfCAgIGZpZWxkICAgIHwgIGNv bWJpbmUgIHwgICB0eXBlICAgIHwgIGV4cGFuZCAgIHwgd2lsZGNhcmQgIHwgIHJlZ2V4ICAgfA0K KyAgKz09PT09PT09PT09PSs9PT09PT09PT09PSs9PT09PT09PT09PSs9PT09PT09PT09PSs9PT09 PT09PT09PSs9PT09PT09PT09Kw0KKyAgfCAgICpub25lKiAgIHwgICAgYW5kICAgIHwgICAgICAg ICAgIHwgICAgbm8gICAgIHwgICAgeWVzICAgIHwgICAgbm8gICAgfA0KKyAgKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKw0KKyAgfCAgICp1c2VyKiAgIHwgICAgYW5kICAgIHwgIHBocmFzZSAgIHwgICAgbm8gICAg IHwgICAgeWVzICAgIHwgICAgbm8gICAgfA0KKyAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KKyAgfCBhdHRh Y2htZW50IHwgICAgYW5kICAgIHwgIHBocmFzZSAgIHwgICAgeWVzICAgIHwgICAgeWVzICAgIHwg ICAgbm8gICAgfA0KKyAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KKyAgfCAgICBib2R5ICAgIHwgICAgYW5k ICAgIHwgIHBocmFzZSAgIHwgICAgbm8gICAgIHwgICAgbm8gICAgIHwgICAgbm8gICAgfA0KKyAg Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKw0KKyAgfCAgICBkYXRlICAgIHwgICAgICAgICAgIHwgICByYW5nZSAg IHwgICAgbm8gICAgIHwgICAgbm8gICAgIHwgICAgbm8gICAgfA0KKyAgKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Kw0KKyAgfCAgIGZvbGRlciAgIHwgICAgb3IgICAgIHwgIHBocmFzZSAgIHwgICAgeWVzICAgIHwg ICAgeWVzICAgIHwgICB5ZXMgICAgfA0KKyAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KKyAgfCAgICBmcm9t ICAgIHwgICAgYW5kICAgIHwgIHBocmFzZSAgIHwgICAgeWVzICAgIHwgICAgeWVzICAgIHwgICB5 ZXMgICAgfA0KKyAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KKyAgfCAgICAgaWQgICAgIHwgICAgb3IgICAg IHwgICB0ZXJtICAgIHwgICAgbm8gICAgIHwgICAgeWVzICAgIHwgICB5ZXMgICAgfA0KKyAgKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKw0KKyAgfCAgICAgaXMgICAgIHwgICAgYW5kICAgIHwgICB0ZXJtICAgIHwg ICAgeWVzICAgIHwgICAgeWVzICAgIHwgICB5ZXMgICAgfA0KKyAgKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0K KyAgfCAgbGFzdG1vZCAgIHwgICAgICAgICAgIHwgICByYW5nZSAgIHwgICAgbm8gICAgIHwgICAg bm8gICAgIHwgICAgbm8gICAgfA0KKyAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KKyAgfCAgICBtaWQgICAg IHwgICAgb3IgICAgIHwgICB0ZXJtICAgIHwgICAgbm8gICAgIHwgICAgeWVzICAgIHwgICB5ZXMg ICAgfA0KKyAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KKyAgfCAgbWltZXR5cGUgIHwgICAgb3IgICAgIHwg IHBocmFzZSAgIHwgICAgeWVzICAgIHwgICAgeWVzICAgIHwgICAgbm8gICAgfA0KKyAgKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKw0KKyAgfCAgICBwYXRoICAgIHwgICAgb3IgICAgIHwgICB0ZXJtICAgIHwgICAg eWVzICAgIHwgICAgeWVzICAgIHwgICB5ZXMgICAgfA0KKyAgKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KKyAg fCAgcHJvcGVydHkgIHwgICAgYW5kICAgIHwgICB0ZXJtICAgIHwgICAgeWVzICAgIHwgICAgeWVz ICAgIHwgICB5ZXMgICAgfA0KKyAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KKyAgfCAgc3ViamVjdCAgIHwg ICAgYW5kICAgIHwgIHBocmFzZSAgIHwgICAgeWVzICAgIHwgICAgeWVzICAgIHwgICB5ZXMgICAg fA0KKyAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KKyAgfCAgICB0YWcgICAgIHwgICAgYW5kICAgIHwgICB0 ZXJtICAgIHwgICAgeWVzICAgIHwgICAgeWVzICAgIHwgICB5ZXMgICAgfA0KKyAgKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKw0KKyAgfCAgIHRocmVhZCAgIHwgICAgb3IgICAgIHwgICB0ZXJtICAgIHwgICAgeWVz ICAgIHwgICAgeWVzICAgIHwgICB5ZXMgICAgfA0KKyAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KKyAgfCAg ICAgdG8gICAgIHwgICAgYW5kICAgIHwgIHBocmFzZSAgIHwgICAgeWVzICAgIHwgICAgeWVzICAg IHwgICAgbm8gICAgfA0KKyAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KKw0KIC4uIF9tb2RpZmllcnM6DQog DQogTU9ESUZJRVJTDQpAQCAtODYsNiArMTM4LDEwIEBAIEVYQU1QTEVTDQogYGAobm90IEJvYiBN YXJsZXkpYGANCiAgICAgTWF0Y2ggbWVzc2FnZXMgY29udGFpbmluZyBuZWl0aGVyICJCb2IiIG5v ciAiTWFybGV5Iiwgbm9yIHRoZWlyIHN0ZW1zLA0KIA0KK2BgKHN1YmplY3QgcXVpY2sgImJyb3du IGZveCIpYGANCisgICAgTWF0Y2ggbWVzc2FnZXMgd2hvc2Ugc3ViamVjdCBjb250YWlucyAicXVp Y2siIChhbnl3aGVyZSwgc3RlbW1lZCkgYW5kDQorICAgIHRoZSBwaHJhc2UgImJyb3duIGZveCIu DQorDQogLi4gfHExfCByZXBsYWNlOjogOm1hdGg6YHFfMWANCiAuLiB8cTJ8IHJlcGxhY2U6OiA6 bWF0aDpgcV8yYA0KIC4uIHxxbnwgcmVwbGFjZTo6IDptYXRoOmBxX25gDQpkaWZmIC0tZ2l0IGEv bGliL3BhcnNlLXNleHAuY2MgYi9saWIvcGFyc2Utc2V4cC5jYw0KaW5kZXggMGQyYzBiYTguLjI1 NTU2MDU4IDEwMDY0NA0KLS0tIGEvbGliL3BhcnNlLXNleHAuY2MNCisrKyBiL2xpYi9wYXJzZS1z ZXhwLmNjDQpAQCAtOCw3ICs4LDggQEANCiAgKiBkZWZpbml0aW9ucyBmcm9tIHNleHAuaCAqLw0K IA0KIHR5cGVkZWYgZW51bSB7DQotICAgIFNFWFBfRkxBR19OT05FID0gMCwNCisgICAgU0VYUF9G TEFHX05PTkUJPSAwLA0KKyAgICBTRVhQX0ZMQUdfRklFTEQJPSAxIDw8IDAsDQogfSBfc2V4cF9m bGFnX3Q7DQogDQogdHlwZWRlZiBzdHJ1Y3QgIHsNCkBAIC0yNiw2ICsyNyw4IEBAIHN0YXRpYyBf c2V4cF9wcmVmaXhfdCBwcmVmaXhlc1tdID0NCiAgICAgICBTRVhQX0ZMQUdfTk9ORSB9LA0KICAg ICB7ICJvciIsICAgICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok9QX09SLCAgICAgICAgICAgWGFw aWFuOjpRdWVyeTo6TWF0Y2hOb3RoaW5nLA0KICAgICAgIFNFWFBfRkxBR19OT05FIH0sDQorICAg IHsgInN1YmplY3QiLCAgICAgICAgWGFwaWFuOjpRdWVyeTo6T1BfQU5ELCAgICAgICAgICBYYXBp YW46OlF1ZXJ5OjpNYXRjaEFsbCwNCisgICAgICBTRVhQX0ZMQUdfRklFTEQgfSwNCiAgICAgeyB9 DQogfTsNCiANCkBAIC03Niw4ICs3OSwxMSBAQCBfc2V4cF90b194YXBpYW5fcXVlcnkgKG5vdG11 Y2hfZGF0YWJhc2VfdCAqbm90bXVjaCwgY29uc3QgX3NleHBfcHJlZml4X3QgKnBhcmVudA0KICAg ICBpZiAoc3gtPnR5ID09IFNFWFBfVkFMVUUpIHsNCiAJc3RkOjpzdHJpbmcgdGVybSA9IFhhcGlh bjo6VW5pY29kZTo6dG9sb3dlciAoc3gtPnZhbCk7DQogCVhhcGlhbjo6U3RlbSBzdGVtID0gKihu b3RtdWNoLT5zdGVtbWVyKTsNCisJc3RkOjpzdHJpbmcgdGVybV9wcmVmaXggPSBwYXJlbnQgPyBf ZmluZF9wcmVmaXggKHBhcmVudC0+bmFtZSkgOiAiIjsNCiAJaWYgKHN4LT5hdHkgPT0gU0VYUF9C QVNJQykNCi0JICAgIHRlcm0gPSAiWiIgKyBzdGVtICh0ZXJtKTsNCisJICAgIHRlcm0gPSAiWiIg KyB0ZXJtX3ByZWZpeCArIHN0ZW0gKHRlcm0pOw0KKwllbHNlDQorCSAgICB0ZXJtID0gdGVybV9w cmVmaXggKyB0ZXJtOw0KIA0KIAlvdXRwdXQgPSBYYXBpYW46OlF1ZXJ5ICh0ZXJtKTsNCiAJcmV0 dXJuIE5PVE1VQ0hfU1RBVFVTX1NVQ0NFU1M7DQpAQCAtOTcsNiArMTAzLDE1IEBAIF9zZXhwX3Rv X3hhcGlhbl9xdWVyeSAobm90bXVjaF9kYXRhYmFzZV90ICpub3RtdWNoLCBjb25zdCBfc2V4cF9w cmVmaXhfdCAqcGFyZW50DQogDQogICAgIGZvciAoX3NleHBfcHJlZml4X3QgKnByZWZpeCA9IHBy ZWZpeGVzOyBwcmVmaXggJiYgcHJlZml4LT5uYW1lOyBwcmVmaXgrKykgew0KIAlpZiAoc3RyY21w IChwcmVmaXgtPm5hbWUsIHN4LT5saXN0LT52YWwpID09IDApIHsNCisJICAgIGlmIChwcmVmaXgt PmZsYWdzICYgU0VYUF9GTEFHX0ZJRUxEKSB7DQorCQlpZiAocGFyZW50KSB7DQorCQkgICAgX25v dG11Y2hfZGF0YWJhc2VfbG9nIChub3RtdWNoLCAibmVzdGVkIGZpZWxkOiAnJXMnIGluc2lkZSAn JXMnXG4iLA0KKwkJCQkJICAgcHJlZml4LT5uYW1lLCBwYXJlbnQtPm5hbWUpOw0KKwkJICAgIHJl dHVybiBOT1RNVUNIX1NUQVRVU19CQURfUVVFUllfU1lOVEFYOw0KKwkJfQ0KKwkJcGFyZW50ID0g cHJlZml4Ow0KKwkgICAgfQ0KKw0KIAkgICAgcmV0dXJuIF9zZXhwX2NvbWJpbmVfcXVlcnkgKG5v dG11Y2gsIHBhcmVudCwgcHJlZml4LT54YXBpYW5fb3AsIHByZWZpeC0+aW5pdGlhbCwNCiAJCQkJ CXN4LT5saXN0LT5uZXh0LCBvdXRwdXQpOw0KIAl9DQpkaWZmIC0tZ2l0IGEvdGVzdC9UMDgxLXNl eHByLXNlYXJjaC5zaCBiL3Rlc3QvVDA4MS1zZXhwci1zZWFyY2guc2gNCmluZGV4IDVlMWJiMThk Li45MGNlZjUwYyAxMDA3NTUNCi0tLSBhL3Rlc3QvVDA4MS1zZXhwci1zZWFyY2guc2gNCisrKyBi L3Rlc3QvVDA4MS1zZXhwci1zZWFyY2guc2gNCkBAIC02Miw2ICs2Miw1NSBAQCB0ZXN0X2JlZ2lu X3N1YnRlc3QgInNpbmdsZSB0ZXJtIGluIGJvZHksIHVuc3RlbW1lZCB2ZXJzaW9uIg0KIG5vdG11 Y2ggc2VhcmNoIC0tcXVlcnk9c2V4cCAnImFycml2IicgPiBPVVRQVVQNCiB0ZXN0X2V4cGVjdF9l cXVhbF9maWxlIC9kZXYvbnVsbCBPVVRQVVQNCiANCit0ZXN0X2JlZ2luX3N1YnRlc3QgIlNlYXJj aCBieSAnc3ViamVjdCciDQorYWRkX21lc3NhZ2UgW3N1YmplY3RdPXN1YmplY3RzZWFyY2h0ZXN0 ICdbZGF0ZV09IlNhdCwgMDEgSmFuIDIwMDAgMTI6MDA6MDAgLTAwMDAiJw0KK291dHB1dD0kKG5v dG11Y2ggc2VhcmNoIC0tcXVlcnk9c2V4cCAnKHN1YmplY3Qgc3ViamVjdHNlYXJjaHRlc3QpJyB8 IG5vdG11Y2hfc2VhcmNoX3Nhbml0aXplKQ0KK3Rlc3RfZXhwZWN0X2VxdWFsICIkb3V0cHV0IiAi dGhyZWFkOlhYWCAgIDIwMDAtMDEtMDEgWzEvMV0gTm90bXVjaCBUZXN0IFN1aXRlOyBzdWJqZWN0 c2VhcmNodGVzdCAoaW5ib3ggdW5yZWFkKSINCisNCit0ZXN0X2JlZ2luX3N1YnRlc3QgIlNlYXJj aCBieSAnc3ViamVjdCcgKGNhc2UgaW5zZW5zaXRpdmUpIg0KK25vdG11Y2ggc2VhcmNoIHRhZzpp bmJveCBhbmQgc3ViamVjdDptYWlsZGlyIHwgbm90bXVjaF9zZWFyY2hfc2FuaXRpemUgPiBFWFBF Q1RFRA0KK25vdG11Y2ggc2VhcmNoIC0tcXVlcnk9c2V4cCAnKHN1YmplY3QgIk1haWxkaXIiKScg fCBub3RtdWNoX3NlYXJjaF9zYW5pdGl6ZSA+IE9VVFBVVA0KK3Rlc3RfZXhwZWN0X2VxdWFsX2Zp bGUgRVhQRUNURUQgT1VUUFVUDQorDQordGVzdF9iZWdpbl9zdWJ0ZXN0ICJTZWFyY2ggYnkgJ3N1 YmplY3QnICh1dGYtOCk6Ig0KK2FkZF9tZXNzYWdlIFtzdWJqZWN0XT11dGY4LXPDvGJqw6ljdCAn W2RhdGVdPSJTYXQsIDAxIEphbiAyMDAwIDEyOjAwOjAwIC0wMDAwIicNCitvdXRwdXQ9JChub3Rt dWNoIHNlYXJjaCAtLXF1ZXJ5PXNleHAgJyhzdWJqZWN0IHV0Zjggc8O8YmrDqWN0KScgfCBub3Rt dWNoX3NlYXJjaF9zYW5pdGl6ZSkNCit0ZXN0X2V4cGVjdF9lcXVhbCAiJG91dHB1dCIgInRocmVh ZDpYWFggICAyMDAwLTAxLTAxIFsxLzFdIE5vdG11Y2ggVGVzdCBTdWl0ZTsgdXRmOC1zw7xiasOp Y3QgKGluYm94IHVucmVhZCkiDQorDQordGVzdF9iZWdpbl9zdWJ0ZXN0ICJTZWFyY2ggYnkgJ3N1 YmplY3QnICh1dGYtOCwgYW5kKToiDQorb3V0cHV0PSQobm90bXVjaCBzZWFyY2ggLS1xdWVyeT1z ZXhwICcoc3ViamVjdCAoYW5kIHV0Zjggc8O8YmrDqWN0KSknIHwgbm90bXVjaF9zZWFyY2hfc2Fu aXRpemUpDQordGVzdF9leHBlY3RfZXF1YWwgIiRvdXRwdXQiICJ0aHJlYWQ6WFhYICAgMjAwMC0w MS0wMSBbMS8xXSBOb3RtdWNoIFRlc3QgU3VpdGU7IHV0Zjgtc8O8YmrDqWN0IChpbmJveCB1bnJl YWQpIg0KKw0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiU2VhcmNoIGJ5ICdzdWJqZWN0JyAodXRmLTgs IGFuZCBvdXRzaWRlKToiDQorb3V0cHV0PSQobm90bXVjaCBzZWFyY2ggLS1xdWVyeT1zZXhwICco YW5kIChzdWJqZWN0IHV0ZjgpIChzdWJqZWN0IHPDvGJqw6ljdCkpJyB8IG5vdG11Y2hfc2VhcmNo X3Nhbml0aXplKQ0KK3Rlc3RfZXhwZWN0X2VxdWFsICIkb3V0cHV0IiAidGhyZWFkOlhYWCAgIDIw MDAtMDEtMDEgWzEvMV0gTm90bXVjaCBUZXN0IFN1aXRlOyB1dGY4LXPDvGJqw6ljdCAoaW5ib3gg dW5yZWFkKSINCisNCit0ZXN0X2JlZ2luX3N1YnRlc3QgIlNlYXJjaCBieSAnc3ViamVjdCcgKHV0 Zi04LCBvcik6Ig0KK25vdG11Y2ggc2VhcmNoIC0tcXVlcnk9c2V4cCAnKHN1YmplY3QgKG9yIHV0 Zjggc3ViamVjdHNlYXJjaHRlc3QpKScgfCBub3RtdWNoX3NlYXJjaF9zYW5pdGl6ZSA+IE9VVFBV VA0KK2NhdCA8PEVPRiA+IEVYUEVDVEVEDQordGhyZWFkOlhYWCAgIDIwMDAtMDEtMDEgWzEvMV0g Tm90bXVjaCBUZXN0IFN1aXRlOyBzdWJqZWN0c2VhcmNodGVzdCAoaW5ib3ggdW5yZWFkKQ0KK3Ro cmVhZDpYWFggICAyMDAwLTAxLTAxIFsxLzFdIE5vdG11Y2ggVGVzdCBTdWl0ZTsgdXRmOC1zw7xi asOpY3QgKGluYm94IHVucmVhZCkNCitFT0YNCit0ZXN0X2V4cGVjdF9lcXVhbF9maWxlIEVYUEVD VEVEIE9VVFBVVA0KKw0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiU2VhcmNoIGJ5ICdzdWJqZWN0JyAo dXRmLTgsIG9yIG91dHNpZGUpOiINCitub3RtdWNoIHNlYXJjaCAtLXF1ZXJ5PXNleHAgJyhvciAo c3ViamVjdCB1dGY4KSAoc3ViamVjdCBzdWJqZWN0c2VhcmNodGVzdCkpJyB8IG5vdG11Y2hfc2Vh cmNoX3Nhbml0aXplID4gT1VUUFVUDQorY2F0IDw8RU9GID4gRVhQRUNURUQNCit0aHJlYWQ6WFhY ICAgMjAwMC0wMS0wMSBbMS8xXSBOb3RtdWNoIFRlc3QgU3VpdGU7IHN1YmplY3RzZWFyY2h0ZXN0 IChpbmJveCB1bnJlYWQpDQordGhyZWFkOlhYWCAgIDIwMDAtMDEtMDEgWzEvMV0gTm90bXVjaCBU ZXN0IFN1aXRlOyB1dGY4LXPDvGJqw6ljdCAoaW5ib3ggdW5yZWFkKQ0KK0VPRg0KK3Rlc3RfZXhw ZWN0X2VxdWFsX2ZpbGUgRVhQRUNURUQgT1VUUFVUDQorDQordGVzdF9iZWdpbl9zdWJ0ZXN0ICJT ZWFyY2ggYnkgJ3N1YmplY3QnICh1dGYtOCwgcGhyYXNlLXRva2VuKToiDQordGVzdF9zdWJ0ZXN0 X2tub3duX2Jyb2tlbg0KK291dHB1dD0kKG5vdG11Y2ggc2VhcmNoIC0tcXVlcnk9c2V4cCAnKHN1 YmplY3QgdXRmOC1zw7xiasOpY3QpJyB8IG5vdG11Y2hfc2VhcmNoX3Nhbml0aXplKQ0KK3Rlc3Rf ZXhwZWN0X2VxdWFsICIkb3V0cHV0IiAidGhyZWFkOlhYWCAgIDIwMDAtMDEtMDEgWzEvMV0gTm90 bXVjaCBUZXN0IFN1aXRlOyB1dGY4LXPDvGJqw6ljdCAoaW5ib3ggdW5yZWFkKSINCisNCit0ZXN0 X2JlZ2luX3N1YnRlc3QgIlNlYXJjaCBieSAnc3ViamVjdCcgKHV0Zi04LCBxdW90ZWQgc3RyaW5n KToiDQordGVzdF9zdWJ0ZXN0X2tub3duX2Jyb2tlbg0KK291dHB1dD0kKG5vdG11Y2ggc2VhcmNo IC0tcXVlcnk9c2V4cCAnKHN1YmplY3QgInV0Zjggc8O8YmrDqWN0IiknIHwgbm90bXVjaF9zZWFy Y2hfc2FuaXRpemUpDQordGVzdF9leHBlY3RfZXF1YWwgIiRvdXRwdXQiICJ0aHJlYWQ6WFhYICAg MjAwMC0wMS0wMSBbMS8xXSBOb3RtdWNoIFRlc3QgU3VpdGU7IHV0Zjgtc8O8YmrDqWN0IChpbmJv eCB1bnJlYWQpIg0KKw0KIHRlc3RfYmVnaW5fc3VidGVzdCAiVW5iYWxhbmNlZCBwYXJlbnMiDQog IyBBIGNvZGUgMSBpbmRpY2F0ZXMgdGhlIGVycm9yIHdhcyBoYW5kbGVkIChhIGNyYXNoIHdpbGwg cmV0dXJuIGUuZy4gMTM5KS4NCiB0ZXN0X2V4cGVjdF9jb2RlIDEgIm5vdG11Y2ggc2VhcmNoIC0t cXVlcnk9c2V4cCAnKCciDQpAQCAtOTAsNCArMTM5LDEyIEBAIHVuZXhwZWN0ZWQgbGlzdCBpbiBm aWVsZC9vcGVyYXRpb24gcG9zaXRpb24NCiBFT0YNCiB0ZXN0X2V4cGVjdF9lcXVhbF9maWxlIEVY UEVDVEVEIE9VVFBVVA0KIA0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiaWxsZWdhbCBuZXN0aW5nIg0K K25vdG11Y2ggc2VhcmNoIC0tcXVlcnk9c2V4cCAnKHN1YmplY3QgKHN1YmplY3QgZm9vKSknID5P VVRQVVQgMj4mMQ0KK2NhdCA8PEVPRiA+IEVYUEVDVEVEDQorbm90bXVjaCBzZWFyY2g6IFN5bnRh eCBlcnJvciBpbiBxdWVyeQ0KK25lc3RlZCBmaWVsZDogJ3N1YmplY3QnIGluc2lkZSAnc3ViamVj dCcNCitFT0YNCit0ZXN0X2V4cGVjdF9lcXVhbF9maWxlIEVYUEVDVEVEIE9VVFBVVA0KKw0KIHRl c3RfZG9uZQ0KLS0gDQoyLjMyLjAN