From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id AHx5GXH3A2E8hAEAgWs5BA (envelope-from ) for ; Fri, 30 Jul 2021 14:58:25 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id 8KYwFXH3A2GuJQAA1q6Kng (envelope-from ) for ; Fri, 30 Jul 2021 12:58:25 +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) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 01F2FD882 for ; Fri, 30 Jul 2021 14:58:25 +0200 (CEST) Received: from nmbug.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id 7BBEF29685; Fri, 30 Jul 2021 08:57:09 -0400 (EDT) Received: from fethera.tethera.net (fethera.tethera.net [IPv6:2607:5300:60:c5::1]) by mail.notmuchmail.org (Postfix) with ESMTP id 8D5AE29205 for ; Fri, 30 Jul 2021 08:56:33 -0400 (EDT) Received: by fethera.tethera.net (Postfix, from userid 1001) id 7D2335FD17; Fri, 30 Jul 2021 08:56:33 -0400 (EDT) Received: (nullmailer pid 2166892 invoked by uid 1000); Fri, 30 Jul 2021 12:56:10 -0000 From: David Bremner To: notmuch@notmuchmail.org Cc: David Bremner Subject: [PATCH 13/27] lib/parse-sexp: add term prefix backed fields Date: Fri, 30 Jul 2021 09:55:53 -0300 Message-Id: <20210730125607.2165433-14-david@tethera.net> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210730125607.2165433-1-david@tethera.net> References: <20210730125607.2165433-1-david@tethera.net> MIME-Version: 1.0 Message-ID-Hash: TJYU4VIWSRD2W7QPGKAKWQ7OZHDII6P5 X-Message-ID-Hash: TJYU4VIWSRD2W7QPGKAKWQ7OZHDII6P5 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=1627649905; 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=MDi8VTkj3eDmMAhqHrfilMdchijS+2o6Siaw8ERz+C8=; b=VyIVsz1Hyju/b0P6H6zdrimy3AZqZOuA39pBzcKmTxwpV6nu2moJBP8+3awMP4kDnJp0u3 h8jY3RLGcbKQr4ucJcsHtxSjgAGnc/GQX/NlelNHgJnlsy/2XPitrhqeZObCoAAeqqkg6V pawa8ZIKUYu7FAoaoWrPeewypZ9ixQc6VilfvZ6NPpyFs5R8pT4sfolW/H3a1QvIowkwdQ Upstmiwnp9mSDq8uH9aHELXtrJ+Tx4nNze0mdFjsQSbd22svU/HN1pdmcOhSVph8fVhVfX K+sTzhLobA9RY3jqu4oIM4BcCb0srMZhAtihtEq3y7suBddCVAj0dO23G4AZWA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1627649905; a=rsa-sha256; cv=none; b=rS9muW0rTlt/AftZuMpShkA7qiPxMYMwIt7wPnPZtg6soVOUAxcO0f64nbLKa8wydq0KWP l0tKPJ4URCHMTWBPLWNILzZrVLtLLQoByOcmIAh7iH8jUgJFfh9J9M4Ned5Ghdx2v15fsd V63iBlZPZHPLbI+H3oxTJwyQ5AHDXLGUGIMlNbJwA0+3xw5tIxYjcLfoPyZFyXJkLB1LTB Vyc0Q2i3deBO8GJV7QB09dyFNb8QQoTj1/wJaMVuByFxSodFeZIUBhdN4RpppDqTr7XgAR nxqcIC9HidrZV97LI/Vv/PB9QOGBJx0nJTlDPM2PprcBV69eA8T8SfAtMCyiVg== 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.59 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: 01F2FD882 X-Spam-Score: 0.59 X-Migadu-Scanner: scn1.migadu.com X-TUID: ZugbgZGJr4a2 V2UgdXNlICJib29sZWFuIiB0byBkZXNjcmliZSBmaWVsZHMgdGhhdCBzaG91bGQgZ2VuZXJhdGUg dGVybXMNCmxpdGVyYWxseSB3aXRob3V0IHN0ZW1taW5nIG9yIHBocmFzZSBzcGxpdHRpbmcuICBU aGlzIHRlcm1pbm9sb2d5DQptaWdodCBub3QgYmUgaWRlYWwgYnV0IGl0IGlzIGFscmVhZHkgZW5z aHJpbmVkIGluDQpub3RtdWNoLXNlYXJjaC10ZXJtcyg3KS4NCi0tLQ0KIGRvYy9tYW43L25vdG11 Y2gtc2V4cC1xdWVyaWVzLnJzdCB8IDE4ICsrKysrLQ0KIGxpYi9wYXJzZS1zZXhwLmNjICAgICAg ICAgICAgICAgICB8IDQ5ICsrKysrKysrKysrKysrKysNCiB0ZXN0L1QwODEtc2V4cHItc2VhcmNo LnNoICAgICAgICAgfCA5NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQogMyBmaWxl cyBjaGFuZ2VkLCAxNjAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KDQpkaWZmIC0tZ2l0 IGEvZG9jL21hbjcvbm90bXVjaC1zZXhwLXF1ZXJpZXMucnN0IGIvZG9jL21hbjcvbm90bXVjaC1z ZXhwLXF1ZXJpZXMucnN0DQppbmRleCA1NzBlZDZhZS4uODMwMTdiMzggMTAwNjQ0DQotLS0gYS9k b2MvbWFuNy9ub3RtdWNoLXNleHAtcXVlcmllcy5yc3QNCisrKyBiL2RvYy9tYW43L25vdG11Y2gt c2V4cC1xdWVyaWVzLnJzdA0KQEAgLTgyLDYgKzgyLDE0IEBAIHN0cmluZykgaW50byB3b3Jkcywg aWdub3JlIHB1bmN0dWF0aW9uLiBQaHJhc2Ugc3BsaXR0aW5nIGlzIGFwcGxpZWQgdG8NCiB0ZXJt cyBpbiBwaHJhc2UgKHByb2JhYmlsaXN0aWMpIGZpZWxkcy4gQm90aCBwaHJhc2Ugc3BsaXR0aW5n IGFuZA0KIHN0ZW1taW5nIGFwcGx5IG9ubHkgaW4gcGhyYXNlIGZpZWxkcy4NCiANCitFYWNoIHRl cm0gb3IgcGhyYXNlIGZpZWxkIGhhcyBhbiBhc3NvY2lhdGVkIGNvbWJpbmluZyBvcGVyYXRvcg0K KyhgYGFuZGBgIG9yIGBgb3JgYCkgdXNlZCB0byBjb21iaW5lIHRoZSBxdWVyaWVzIGZyb20gZWFj aCBlbGVtZW50IG9mDQordGhlIHRhaWwgb2YgdGhlIGxpc3QuIFRoaXMgaXMgZ2VuZXJhbGx5IGBg b3JgYCBmb3IgdGhvc2UgZmllbGRzIHdoZXJlDQorYSBtZXNzYWdlIGhhcyBvbmUgc3VjaCBhdHRy aWJ1dGUsIGFuZCBgYGFuZGBgIG90aGVyd2lzZS4NCisNCitUZXJtIG9yIHBocmFzZSBmaWVsZHMg Y2FuIGNvbnRhaW4gYXJiaXRyYXJpbHkgY29tcGxleCBxdWVyaWVzIG1hZGUgdXANCitmcm9tIHRl cm1zLCBvcGVyYXRvcnMsIGFuZCBtb2RpZmllcnMsIGJ1dCBub3Qgb3RoZXIgZmllbGRzLg0KKw0K IC4uIF9maWVsZC10YWJsZToNCiANCiAuLiB0YWJsZTo6IEZpZWxkcyB3aXRoIHN1cHBvcnRlZCBt b2RpZmllcnMNCkBAIC0xMTMsNyArMTIxLDcgQEAgc3RlbW1pbmcgYXBwbHkgb25seSBpbiBwaHJh c2UgZmllbGRzLg0KICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KICAgfCAgbWltZXR5cGUgIHwgICAgb3Ig ICAgIHwgIHBocmFzZSAgIHwgICAgeWVzICAgIHwgICAgeWVzICAgIHwgICAgbm8gICAgfA0KICAg Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKw0KLSAgfCAgICBwYXRoICAgIHwgICAgb3IgICAgIHwgICB0ZXJtICAg IHwgICAgeWVzICAgIHwgICAgeWVzICAgIHwgICB5ZXMgICAgfA0KKyAgfCAgICBwYXRoICAgIHwg ICAgb3IgICAgIHwgICB0ZXJtICAgIHwgICAgbm8gICAgIHwgICAgeWVzICAgIHwgICB5ZXMgICAg fA0KICAgKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KICAgfCAgcHJvcGVydHkgIHwgICAgYW5kICAgIHwgICB0 ZXJtICAgIHwgICAgeWVzICAgIHwgICAgeWVzICAgIHwgICB5ZXMgICAgfA0KICAgKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKw0KQEAgLTE1MiwxMCArMTYwLDE4IEBAIEVYQU1QTEVTDQogICAgIE1hdGNoIHRoZSAq cGhyYXNlKiAicXVpY2siIGZvbGxvd2VkIGJ5ICJmb3giIGluIHBocmFzZSBmaWVsZHMgKG9yDQog ICAgIG91dHNpZGUgYSBmaWVsZCkuIE1hdGNoIHRoZSBsaXRlcmFsIHN0cmluZyBpbiBhIHRlcm0g ZmllbGQuDQogDQorYGAoaWQgMTIzNEBpbnZhbGlkIGJsYWhAdGVzdClgYA0KKyAgICBNYXRjaGVz IE1lc3NhZ2UtSWQgIjEyMzRAaW52YWxpZCIgKm9yKiBNZXNzYWdlLUlkICJibGFoQHRlc3QiDQor DQogYGAoc3ViamVjdCBxdWljayAiYnJvd24gZm94IilgYA0KICAgICBNYXRjaCBtZXNzYWdlcyB3 aG9zZSBzdWJqZWN0IGNvbnRhaW5zICJxdWljayIgKGFueXdoZXJlLCBzdGVtbWVkKSBhbmQNCiAg ICAgdGhlIHBocmFzZSAiYnJvd24gZm94Ii4NCiANCitgYCh0byAob3IgYm9iQGV4YW1wbGUuY29t IG1hbGxvcnlAZXhhbXBsZS5vcmcpKWBgIGBgKG9yICh0byBib2JAZXhhbXBsZS5jb20pICh0byBt YWxsb3J5QGV4YW1wbGUub3JnKSlgYA0KKyAgICBNYXRjaCBpbiB0aGUgIlRvIiBvciAiQ2MiIGhl YWRlcnMsICJib2JAZXhhbXBsZS5jb20iLA0KKyAgICAibWFsbG9yeUBleGFtcGxlLm9yZyIsIGFu ZCBhbHNvICJib2JAZXhhbXBsZS5jb20uYXUiIHNpbmNlIGl0DQorICAgIGNvbnRhaW5zIHRoZSBh ZGphY2VudCB0cmlwbGUgImJvYiIsICJleGFtcGxlIiwgImNvbSIuDQorDQogTk9URVMNCiA9PT09 PQ0KIA0KZGlmZiAtLWdpdCBhL2xpYi9wYXJzZS1zZXhwLmNjIGIvbGliL3BhcnNlLXNleHAuY2MN CmluZGV4IDRhZGZjNGM1Li45NzI3YzU3ZCAxMDA2NDQNCi0tLSBhL2xpYi9wYXJzZS1zZXhwLmNj DQorKysgYi9saWIvcGFyc2Utc2V4cC5jYw0KQEAgLTEwLDggKzEwLDI2IEBADQogdHlwZWRlZiBl bnVtIHsNCiAgICAgU0VYUF9GTEFHX05PTkUJPSAwLA0KICAgICBTRVhQX0ZMQUdfRklFTEQJPSAx IDw8IDAsDQorICAgIFNFWFBfRkxBR19CT09MRUFOCT0gMSA8PCAxLA0KIH0gX3NleHBfZmxhZ190 Ow0KIA0KKy8qDQorICogZGVmaW5lIGJpdHdpc2Ugb3BlcmF0b3JzIHRvIGhpZGUgY2FzdHMgKi8N CisNCitpbmxpbmUgX3NleHBfZmxhZ190DQorb3BlcmF0b3J8IChfc2V4cF9mbGFnX3QgYSwgX3Nl eHBfZmxhZ190IGIpDQorew0KKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8X3NleHBfZmxhZ190PigN CisJc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGEpIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGIpKTsN Cit9DQorDQoraW5saW5lIF9zZXhwX2ZsYWdfdA0KK29wZXJhdG9yJiAoX3NleHBfZmxhZ190IGEs IF9zZXhwX2ZsYWdfdCBiKQ0KK3sNCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PF9zZXhwX2ZsYWdf dD4oDQorCXN0YXRpY19jYXN0PHVuc2lnbmVkPihhKSAmIHN0YXRpY19jYXN0PHVuc2lnbmVkPihi KSk7DQorfQ0KKw0KIHR5cGVkZWYgc3RydWN0ICB7DQogICAgIGNvbnN0IGNoYXIgKm5hbWU7DQog ICAgIFhhcGlhbjo6UXVlcnk6Om9wIHhhcGlhbl9vcDsNCkBAIC0yMywxMiArNDEsMzkgQEAgc3Rh dGljIF9zZXhwX3ByZWZpeF90IHByZWZpeGVzW10gPQ0KIHsNCiAgICAgeyAiYW5kIiwgICAgICAg ICAgICBYYXBpYW46OlF1ZXJ5OjpPUF9BTkQsICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok1hdGNo QWxsLA0KICAgICAgIFNFWFBfRkxBR19OT05FIH0sDQorICAgIHsgImF0dGFjaG1lbnQiLCAgICAg WGFwaWFuOjpRdWVyeTo6T1BfQU5ELCAgICAgICAgICBYYXBpYW46OlF1ZXJ5OjpNYXRjaEFsbCwN CisgICAgICBTRVhQX0ZMQUdfRklFTEQgfSwNCisgICAgeyAiYm9keSIsICAgICAgICAgICBYYXBp YW46OlF1ZXJ5OjpPUF9BTkQsICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok1hdGNoQWxsLA0KKyAg ICAgIFNFWFBfRkxBR19GSUVMRCB9LA0KKyAgICB7ICJmcm9tIiwgICAgICAgICAgIFhhcGlhbjo6 UXVlcnk6Ok9QX0FORCwgICAgICAgICAgWGFwaWFuOjpRdWVyeTo6TWF0Y2hBbGwsDQorICAgICAg U0VYUF9GTEFHX0ZJRUxEIH0sDQorICAgIHsgImZvbGRlciIsICAgICAgICAgWGFwaWFuOjpRdWVy eTo6T1BfT1IsICAgICAgICAgICBYYXBpYW46OlF1ZXJ5OjpNYXRjaE5vdGhpbmcsDQorICAgICAg U0VYUF9GTEFHX0ZJRUxEIHwgU0VYUF9GTEFHX0JPT0xFQU4gfSwNCisgICAgeyAiaWQiLCAgICAg ICAgICAgICBYYXBpYW46OlF1ZXJ5OjpPUF9PUiwgICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok1h dGNoTm90aGluZywNCisgICAgICBTRVhQX0ZMQUdfRklFTEQgfCBTRVhQX0ZMQUdfQk9PTEVBTiB9 LA0KKyAgICB7ICJpcyIsICAgICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok9QX0FORCwgICAgICAg ICAgWGFwaWFuOjpRdWVyeTo6TWF0Y2hBbGwsDQorICAgICAgU0VYUF9GTEFHX0ZJRUxEIHwgU0VY UF9GTEFHX0JPT0xFQU4gfSwNCisgICAgeyAibWlkIiwgICAgICAgICAgICBYYXBpYW46OlF1ZXJ5 OjpPUF9PUiwgICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok1hdGNoTm90aGluZywNCisgICAgICBT RVhQX0ZMQUdfRklFTEQgfCBTRVhQX0ZMQUdfQk9PTEVBTiB9LA0KKyAgICB7ICJtaW1ldHlwZSIs ICAgICAgIFhhcGlhbjo6UXVlcnk6Ok9QX0FORCwgICAgICAgICAgWGFwaWFuOjpRdWVyeTo6TWF0 Y2hBbGwsDQorICAgICAgU0VYUF9GTEFHX0ZJRUxEIH0sDQogICAgIHsgIm5vdCIsICAgICAgICAg ICAgWGFwaWFuOjpRdWVyeTo6T1BfQU5EX05PVCwgICAgICBYYXBpYW46OlF1ZXJ5OjpNYXRjaEFs bCwNCiAgICAgICBTRVhQX0ZMQUdfTk9ORSB9LA0KICAgICB7ICJvciIsICAgICAgICAgICAgIFhh cGlhbjo6UXVlcnk6Ok9QX09SLCAgICAgICAgICAgWGFwaWFuOjpRdWVyeTo6TWF0Y2hOb3RoaW5n LA0KICAgICAgIFNFWFBfRkxBR19OT05FIH0sDQorICAgIHsgInBhdGgiLCAgICAgICAgICAgWGFw aWFuOjpRdWVyeTo6T1BfT1IsICAgICAgICAgICBYYXBpYW46OlF1ZXJ5OjpNYXRjaE5vdGhpbmcs DQorICAgICAgU0VYUF9GTEFHX0ZJRUxEIHwgU0VYUF9GTEFHX0JPT0xFQU4gfSwNCisgICAgeyAi cHJvcGVydHkiLCAgICAgICBYYXBpYW46OlF1ZXJ5OjpPUF9BTkQsICAgICAgICAgIFhhcGlhbjo6 UXVlcnk6Ok1hdGNoQWxsLA0KKyAgICAgIFNFWFBfRkxBR19GSUVMRA0KKyAgICAgIHwgU0VYUF9G TEFHX0JPT0xFQU4gfSwNCiAgICAgeyAic3ViamVjdCIsICAgICAgICBYYXBpYW46OlF1ZXJ5OjpP UF9BTkQsICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok1hdGNoQWxsLA0KICAgICAgIFNFWFBfRkxB R19GSUVMRCB9LA0KKyAgICB7ICJ0YWciLCAgICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok9QX0FO RCwgICAgICAgICAgWGFwaWFuOjpRdWVyeTo6TWF0Y2hBbGwsDQorICAgICAgU0VYUF9GTEFHX0ZJ RUxEIHwgU0VYUF9GTEFHX0JPT0xFQU4gfSwNCisgICAgeyAidGhyZWFkIiwgICAgICAgICBYYXBp YW46OlF1ZXJ5OjpPUF9PUiwgICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok1hdGNoTm90aGluZywN CisgICAgICBTRVhQX0ZMQUdfRklFTEQgfCBTRVhQX0ZMQUdfQk9PTEVBTiB9LA0KKyAgICB7ICJ0 byIsICAgICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok9QX0FORCwgICAgICAgICAgWGFwaWFuOjpR dWVyeTo6TWF0Y2hBbGwsDQorICAgICAgU0VYUF9GTEFHX0ZJRUxEIH0sDQogICAgIHsgfQ0KIH07 DQogDQpAQCAtMTEwLDYgKzE1NSwxMCBAQCBfc2V4cF90b194YXBpYW5fcXVlcnkgKG5vdG11Y2hf ZGF0YWJhc2VfdCAqbm90bXVjaCwgY29uc3QgX3NleHBfcHJlZml4X3QgKnBhcmVudA0KIAlzdGQ6 OnN0cmluZyB0ZXJtID0gWGFwaWFuOjpVbmljb2RlOjp0b2xvd2VyIChzeC0+dmFsKTsNCiAJWGFw aWFuOjpTdGVtIHN0ZW0gPSAqKG5vdG11Y2gtPnN0ZW1tZXIpOw0KIAlzdGQ6OnN0cmluZyB0ZXJt X3ByZWZpeCA9IHBhcmVudCA/IF9maW5kX3ByZWZpeCAocGFyZW50LT5uYW1lKSA6ICIiOw0KKwlp ZiAocGFyZW50ICYmIChwYXJlbnQtPmZsYWdzICYgU0VYUF9GTEFHX0JPT0xFQU4pKSB7DQorCSAg ICBvdXRwdXQgPSBYYXBpYW46OlF1ZXJ5ICh0ZXJtX3ByZWZpeCArIHN4LT52YWwpOw0KKwkgICAg cmV0dXJuIE5PVE1VQ0hfU1RBVFVTX1NVQ0NFU1M7DQorCX0NCiAJaWYgKHN4LT5hdHkgPT0gU0VY UF9CQVNJQyAmJiB1bmljb2RlX3dvcmRfdXRmOCAoc3gtPnZhbCkpIHsNCiAJICAgIG91dHB1dCA9 IFhhcGlhbjo6UXVlcnkgKCJaIiArIHRlcm1fcHJlZml4ICsgc3RlbSAodGVybSkpOw0KIAkgICAg cmV0dXJuIE5PVE1VQ0hfU1RBVFVTX1NVQ0NFU1M7DQpkaWZmIC0tZ2l0IGEvdGVzdC9UMDgxLXNl eHByLXNlYXJjaC5zaCBiL3Rlc3QvVDA4MS1zZXhwci1zZWFyY2guc2gNCmluZGV4IDZjMWUyNTM2 Li44NGY2N2QxMSAxMDA3NTUNCi0tLSBhL3Rlc3QvVDA4MS1zZXhwci1zZWFyY2guc2gNCisrKyBi L3Rlc3QvVDA4MS1zZXhwci1zZWFyY2guc2gNCkBAIC0xMDEsNiArMTAxLDk5IEBAIHRocmVhZDpY WFggICAyMDAwLTAxLTAxIFsxLzFdIE5vdG11Y2ggVGVzdCBTdWl0ZTsgdXRmOC1zw7xiasOpY3Qg KGluYm94IHVucmVhZCkNCiBFT0YNCiB0ZXN0X2V4cGVjdF9lcXVhbF9maWxlIEVYUEVDVEVEIE9V VFBVVA0KIA0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiU2VhcmNoIGJ5ICdhdHRhY2htZW50JyINCitu b3RtdWNoIHNlYXJjaCBhdHRhY2htZW50Om5vdG11Y2gtaGVscC5wYXRjaCA+IEVYUEVDVEVEDQor bm90bXVjaCBzZWFyY2ggLS1xdWVyeS1zeW50YXg9c2V4cCAnKGF0dGFjaG1lbnQgbm90bXVjaC1o ZWxwLnBhdGNoKScgPiBPVVRQVVQNCit0ZXN0X2V4cGVjdF9lcXVhbF9maWxlIEVYUEVDVEVEIE9V VFBVVA0KKw0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiU2VhcmNoIGJ5ICdib2R5JyINCithZGRfbWVz c2FnZSAnW3N1YmplY3RdPSJib2R5IHNlYXJjaCInICdbZGF0ZV09IlNhdCwgMDEgSmFuIDIwMDAg MTI6MDA6MDAgLTAwMDAiJyBbYm9keV09Ym9keXNlYXJjaHRlc3QNCitvdXRwdXQ9JChub3RtdWNo IHNlYXJjaCAtLXF1ZXJ5LXN5bnRheD1zZXhwICcoYm9keSBib2R5c2VhcmNodGVzdCknIHwgbm90 bXVjaF9zZWFyY2hfc2FuaXRpemUpDQordGVzdF9leHBlY3RfZXF1YWwgIiRvdXRwdXQiICJ0aHJl YWQ6WFhYICAgMjAwMC0wMS0wMSBbMS8xXSBOb3RtdWNoIFRlc3QgU3VpdGU7IGJvZHkgc2VhcmNo IChpbmJveCB1bnJlYWQpIg0KKw0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiU2VhcmNoIGJ5ICdib2R5 JyAocGhyYXNlKSINCithZGRfbWVzc2FnZSAnW3N1YmplY3RdPSJib2R5IHNlYXJjaCAocGhyYXNl KSInICdbZGF0ZV09IlNhdCwgMDEgSmFuIDIwMDAgMTI6MDA6MDAgLTAwMDAiJyAnW2JvZHldPSJi b2R5IHNlYXJjaCAocGhyYXNlKSInDQorYWRkX21lc3NhZ2UgJ1tzdWJqZWN0XT0ibmVnYXRpdmUg cmVzdWx0IicgJ1tkYXRlXT0iU2F0LCAwMSBKYW4gMjAwMCAxMjowMDowMCAtMDAwMCInICdbYm9k eV09IlRoaXMgcGhyYXNlIHNob3VsZCBub3QgbWF0Y2ggdGhlIGJvZHkgc2VhcmNoIicNCitvdXRw dXQ9JChub3RtdWNoIHNlYXJjaCAtLXF1ZXJ5LXN5bnRheD1zZXhwICcoYm9keSAiYm9keSBzZWFy Y2ggcGhyYXNlIiknIHwgbm90bXVjaF9zZWFyY2hfc2FuaXRpemUpDQordGVzdF9leHBlY3RfZXF1 YWwgIiRvdXRwdXQiICJ0aHJlYWQ6WFhYICAgMjAwMC0wMS0wMSBbMS8xXSBOb3RtdWNoIFRlc3Qg U3VpdGU7IGJvZHkgc2VhcmNoIChwaHJhc2UpIChpbmJveCB1bnJlYWQpIg0KKw0KK3Rlc3RfYmVn aW5fc3VidGVzdCAiU2VhcmNoIGJ5ICdib2R5JyAodXRmLTgpOiINCithZGRfbWVzc2FnZSAnW3N1 YmplY3RdPSJ1dGY4LW1lc3NhZ2UtYm9keS1zdWJqZWN0IicgJ1tkYXRlXT0iU2F0LCAwMSBKYW4g MjAwMCAxMjowMDowMCAtMDAwMCInICdbYm9keV09Im1lc3NhZ2UgYm9keSB1dGY4OiBiw7Zkw70i Jw0KK291dHB1dD0kKG5vdG11Y2ggc2VhcmNoIC0tcXVlcnktc3ludGF4PXNleHAgJyhib2R5IGLD tmTDvSknIHwgbm90bXVjaF9zZWFyY2hfc2FuaXRpemUpDQordGVzdF9leHBlY3RfZXF1YWwgIiRv dXRwdXQiICJ0aHJlYWQ6WFhYICAgMjAwMC0wMS0wMSBbMS8xXSBOb3RtdWNoIFRlc3QgU3VpdGU7 IHV0ZjgtbWVzc2FnZS1ib2R5LXN1YmplY3QgKGluYm94IHVucmVhZCkiDQorDQordGVzdF9iZWdp bl9zdWJ0ZXN0ICJTZWFyY2ggYnkgJ2Zyb20nIg0KK2FkZF9tZXNzYWdlICdbc3ViamVjdF09InNl YXJjaCBieSBmcm9tIicgJ1tkYXRlXT0iU2F0LCAwMSBKYW4gMjAwMCAxMjowMDowMCAtMDAwMCIn IFtmcm9tXT1zZWFyY2hieWZyb20NCitvdXRwdXQ9JChub3RtdWNoIHNlYXJjaCAtLXF1ZXJ5LXN5 bnRheD1zZXhwICcoZnJvbSBzZWFyY2hieWZyb20pJyB8IG5vdG11Y2hfc2VhcmNoX3Nhbml0aXpl KQ0KK3Rlc3RfZXhwZWN0X2VxdWFsICIkb3V0cHV0IiAidGhyZWFkOlhYWCAgIDIwMDAtMDEtMDEg WzEvMV0gc2VhcmNoYnlmcm9tOyBzZWFyY2ggYnkgZnJvbSAoaW5ib3ggdW5yZWFkKSINCisNCit0 ZXN0X2JlZ2luX3N1YnRlc3QgIlNlYXJjaCBieSAnZnJvbScgKGFkZHJlc3MpIg0KK2FkZF9tZXNz YWdlICdbc3ViamVjdF09InNlYXJjaCBieSBmcm9tIChhZGRyZXNzKSInICdbZGF0ZV09IlNhdCwg MDEgSmFuIDIwMDAgMTI6MDA6MDAgLTAwMDAiJyBbZnJvbV09c2VhcmNoYnlmcm9tQGV4YW1wbGUu Y29tDQorb3V0cHV0PSQobm90bXVjaCBzZWFyY2ggLS1xdWVyeS1zeW50YXg9c2V4cCAnKGZyb20g c2VhcmNoYnlmcm9tQGV4YW1wbGUuY29tKScgfCBub3RtdWNoX3NlYXJjaF9zYW5pdGl6ZSkNCit0 ZXN0X2V4cGVjdF9lcXVhbCAiJG91dHB1dCIgInRocmVhZDpYWFggICAyMDAwLTAxLTAxIFsxLzFd IHNlYXJjaGJ5ZnJvbUBleGFtcGxlLmNvbTsgc2VhcmNoIGJ5IGZyb20gKGFkZHJlc3MpIChpbmJv eCB1bnJlYWQpIg0KKw0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiU2VhcmNoIGJ5ICdmcm9tJyAobmFt ZSkiDQorYWRkX21lc3NhZ2UgJ1tzdWJqZWN0XT0ic2VhcmNoIGJ5IGZyb20gKG5hbWUpIicgJ1tk YXRlXT0iU2F0LCAwMSBKYW4gMjAwMCAxMjowMDowMCAtMDAwMCInICdbZnJvbV09IlNlYXJjaCBC eSBGcm9tIE5hbWUgPHRlc3RAZXhhbXBsZS5jb20+IicNCitvdXRwdXQ9JChub3RtdWNoIHNlYXJj aCAtLXF1ZXJ5LXN5bnRheD1zZXhwICcoZnJvbSAiU2VhcmNoIEJ5IEZyb20gTmFtZSIpJyB8IG5v dG11Y2hfc2VhcmNoX3Nhbml0aXplKQ0KK3Rlc3RfZXhwZWN0X2VxdWFsICIkb3V0cHV0IiAidGhy ZWFkOlhYWCAgIDIwMDAtMDEtMDEgWzEvMV0gU2VhcmNoIEJ5IEZyb20gTmFtZTsgc2VhcmNoIGJ5 IGZyb20gKG5hbWUpIChpbmJveCB1bnJlYWQpIg0KKw0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiU2Vh cmNoIGJ5ICdmcm9tJyAobmFtZSBhbmQgYWRkcmVzcykiDQorb3V0cHV0PSQobm90bXVjaCBzZWFy Y2ggLS1xdWVyeS1zeW50YXg9c2V4cCAnKGZyb20gIlNlYXJjaCBCeSBGcm9tIE5hbWUgPHRlc3RA ZXhhbXBsZS5jb20+IiknIHwgbm90bXVjaF9zZWFyY2hfc2FuaXRpemUpDQordGVzdF9leHBlY3Rf ZXF1YWwgIiRvdXRwdXQiICJ0aHJlYWQ6WFhYICAgMjAwMC0wMS0wMSBbMS8xXSBTZWFyY2ggQnkg RnJvbSBOYW1lOyBzZWFyY2ggYnkgZnJvbSAobmFtZSkgKGluYm94IHVucmVhZCkiDQorDQorYWRk X21lc3NhZ2UgJ1tkaXJdPWJhZCcgJ1tzdWJqZWN0XT0iVG8gdGhlIGJvbmUiJw0KK2FkZF9tZXNz YWdlICdbZGlyXT0uJyAnW3N1YmplY3RdPSJUb3AgbGV2ZWwiJw0KK2FkZF9tZXNzYWdlICdbZGly XT1iYWQvbmV3cycgJ1tzdWJqZWN0XT0iQmVhcnMiJw0KK21rZGlyIC1wICIke01BSUxfRElSfS9k dXBsaWNhdGUvYmFkL25ld3MiDQorY3AgIiRnZW5fbXNnX2ZpbGVuYW1lIiAiJHtNQUlMX0RJUn0v ZHVwbGljYXRlL2JhZC9uZXdzIg0KKw0KK2FkZF9tZXNzYWdlICdbZGlyXT10aGluZ3MnICdbc3Vi amVjdF09IlRoZXNlIGFyZSBhIGZldyInDQorYWRkX21lc3NhZ2UgJ1tkaXJdPXRoaW5ncy9mYXZv cml0ZScgJ1tzdWJqZWN0XT0iUmFpbmRyb3BzLCB3aGlza2Vycywga2V0dGxlcyInDQorYWRkX21l c3NhZ2UgJ1tkaXJdPXRoaW5ncy9iYWQnICdbc3ViamVjdF09IkJpdGVzLCBzdGluZ3MsIHNhZCBm ZWVsaW5ncyInDQorDQordGVzdF9iZWdpbl9zdWJ0ZXN0ICJTZWFyY2ggYnkgJ2ZvbGRlcicgKG11 bHRpcGxlKSINCitvdXRwdXQ9JChub3RtdWNoIHNlYXJjaCAtLXF1ZXJ5LXN5bnRheD1zZXhwICco Zm9sZGVyIGJhZCBiYWQvbmV3cyB0aGluZ3MvYmFkKScgfCBub3RtdWNoX3NlYXJjaF9zYW5pdGl6 ZSkNCit0ZXN0X2V4cGVjdF9lcXVhbCAiJG91dHB1dCIgInRocmVhZDpYWFggICAyMDAxLTAxLTA1 IFsxLzFdIE5vdG11Y2ggVGVzdCBTdWl0ZTsgVG8gdGhlIGJvbmUgKGluYm94IHVucmVhZCkNCit0 aHJlYWQ6WFhYICAgMjAwMS0wMS0wNSBbMS8xKDIpXSBOb3RtdWNoIFRlc3QgU3VpdGU7IEJlYXJz IChpbmJveCB1bnJlYWQpDQordGhyZWFkOlhYWCAgIDIwMDEtMDEtMDUgWzEvMV0gTm90bXVjaCBU ZXN0IFN1aXRlOyBCaXRlcywgc3RpbmdzLCBzYWQgZmVlbGluZ3MgKGluYm94IHVucmVhZCkiDQor DQordGVzdF9iZWdpbl9zdWJ0ZXN0ICJTZWFyY2ggYnkgJ2ZvbGRlcic6IHRvcCBsZXZlbC4iDQor bm90bXVjaCBzZWFyY2ggZm9sZGVyOiciIicgPiBFWFBFQ1RFRA0KK25vdG11Y2ggc2VhcmNoIC0t cXVlcnktc3ludGF4PXNleHAgJyhmb2xkZXIgIiIpJyAgPiBPVVRQVVQNCit0ZXN0X2V4cGVjdF9l cXVhbF9maWxlIEVYUEVDVEVEIE9VVFBVVA0KKw0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiU2VhcmNo IGJ5ICdpZCciDQorYWRkX21lc3NhZ2UgJ1tzdWJqZWN0XT0ic2VhcmNoIGJ5IGlkIicgJ1tkYXRl XT0iU2F0LCAwMSBKYW4gMjAwMCAxMjowMDowMCAtMDAwMCInDQorb3V0cHV0PSQobm90bXVjaCBz ZWFyY2ggLS1xdWVyeS1zeW50YXg9c2V4cCAiKGlkICR7Z2VuX21zZ19pZH0pIiB8IG5vdG11Y2hf c2VhcmNoX3Nhbml0aXplKQ0KK3Rlc3RfZXhwZWN0X2VxdWFsICIkb3V0cHV0IiAidGhyZWFkOlhY WCAgIDIwMDAtMDEtMDEgWzEvMV0gTm90bXVjaCBUZXN0IFN1aXRlOyBzZWFyY2ggYnkgaWQgKGlu Ym94IHVucmVhZCkiDQorDQordGVzdF9iZWdpbl9zdWJ0ZXN0ICJTZWFyY2ggYnkgJ2lkJyAob3Ip Ig0KK2FkZF9tZXNzYWdlICdbc3ViamVjdF09InNlYXJjaCBieSBpZCInICdbZGF0ZV09IlNhdCwg MDEgSmFuIDIwMDAgMTI6MDA6MDAgLTAwMDAiJw0KK291dHB1dD0kKG5vdG11Y2ggc2VhcmNoIC0t cXVlcnktc3ludGF4PXNleHAgIihpZCBub24tZXhpc3RlbnQtbWlkICR7Z2VuX21zZ19pZH0pIiB8 IG5vdG11Y2hfc2VhcmNoX3Nhbml0aXplKQ0KK3Rlc3RfZXhwZWN0X2VxdWFsICIkb3V0cHV0IiAi dGhyZWFkOlhYWCAgIDIwMDAtMDEtMDEgWzEvMV0gTm90bXVjaCBUZXN0IFN1aXRlOyBzZWFyY2gg YnkgaWQgKGluYm94IHVucmVhZCkiDQorDQordGVzdF9iZWdpbl9zdWJ0ZXN0ICJTZWFyY2ggYnkg J2lzJyAobXVsdGlwbGUpIg0KK25vdG11Y2ggdGFnIC1pbmJveCB0YWc6c2VhcmNoYnl0YWcNCitu b3RtdWNoIHNlYXJjaCBpczppbmJveCBBTkQgaXM6dW5yZWFkIHwgbm90bXVjaF9zZWFyY2hfc2Fu aXRpemUgPiBFWFBFQ1RFRA0KK25vdG11Y2ggc2VhcmNoIC0tcXVlcnktc3ludGF4PXNleHAgJyhp cyBpbmJveCB1bnJlYWQpJyB8IG5vdG11Y2hfc2VhcmNoX3Nhbml0aXplID4gT1VUUFVUDQorbm90 bXVjaCB0YWcgK2luYm94IHRhZzpzZWFyY2hieXRhZw0KK3Rlc3RfZXhwZWN0X2VxdWFsX2ZpbGUg RVhQRUNURUQgT1VUUFVUDQorDQordGVzdF9iZWdpbl9zdWJ0ZXN0ICJTZWFyY2ggYnkgJ21pZCci DQorYWRkX21lc3NhZ2UgJ1tzdWJqZWN0XT0ic2VhcmNoIGJ5IG1pZCInICdbZGF0ZV09IlNhdCwg MDEgSmFuIDIwMDAgMTI6MDA6MDAgLTAwMDAiJw0KK291dHB1dD0kKG5vdG11Y2ggc2VhcmNoIC0t cXVlcnktc3ludGF4PXNleHAgIihtaWQgJHtnZW5fbXNnX2lkfSkiIHwgbm90bXVjaF9zZWFyY2hf c2FuaXRpemUpDQordGVzdF9leHBlY3RfZXF1YWwgIiRvdXRwdXQiICJ0aHJlYWQ6WFhYICAgMjAw MC0wMS0wMSBbMS8xXSBOb3RtdWNoIFRlc3QgU3VpdGU7IHNlYXJjaCBieSBtaWQgKGluYm94IHVu cmVhZCkiDQorDQordGVzdF9iZWdpbl9zdWJ0ZXN0ICJTZWFyY2ggYnkgJ21pZCcgKG9yKSINCith ZGRfbWVzc2FnZSAnW3N1YmplY3RdPSJzZWFyY2ggYnkgbWlkIicgJ1tkYXRlXT0iU2F0LCAwMSBK YW4gMjAwMCAxMjowMDowMCAtMDAwMCInDQorb3V0cHV0PSQobm90bXVjaCBzZWFyY2ggLS1xdWVy eS1zeW50YXg9c2V4cCAiKG1pZCBub24tZXhpc3RlbnQtbWlkICR7Z2VuX21zZ19pZH0pIiB8IG5v dG11Y2hfc2VhcmNoX3Nhbml0aXplKQ0KK3Rlc3RfZXhwZWN0X2VxdWFsICIkb3V0cHV0IiAidGhy ZWFkOlhYWCAgIDIwMDAtMDEtMDEgWzEvMV0gTm90bXVjaCBUZXN0IFN1aXRlOyBzZWFyY2ggYnkg bWlkIChpbmJveCB1bnJlYWQpIg0KKw0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiU2VhcmNoIGJ5ICdt aW1ldHlwZSciDQorbm90bXVjaCBzZWFyY2ggbWltZXR5cGU6dGV4dC9odG1sID4gRVhQRUNURUQN Citub3RtdWNoIHNlYXJjaCAtLXF1ZXJ5LXN5bnRheD1zZXhwICcobWltZXR5cGUgdGV4dCBodG1s KScgID4gT1VUUFVUDQordGVzdF9leHBlY3RfZXF1YWxfZmlsZSBFWFBFQ1RFRCBPVVRQVVQNCisN CiB0ZXN0X2JlZ2luX3N1YnRlc3QgIlNlYXJjaCBieSAnc3ViamVjdCcgKHV0Zi04LCBwaHJhc2Ut dG9rZW4pOiINCiBvdXRwdXQ9JChub3RtdWNoIHNlYXJjaCAtLXF1ZXJ5LXN5bnRheD1zZXhwICco c3ViamVjdCB1dGY4LXPDvGJqw6ljdCknIHwgbm90bXVjaF9zZWFyY2hfc2FuaXRpemUpDQogdGVz dF9leHBlY3RfZXF1YWwgIiRvdXRwdXQiICJ0aHJlYWQ6WFhYICAgMjAwMC0wMS0wMSBbMS8xXSBO b3RtdWNoIFRlc3QgU3VpdGU7IHV0Zjgtc8O8YmrDqWN0IChpbmJveCB1bnJlYWQpIg0KQEAgLTEx OCw2ICsyMTEsNyBAQCBub3RtdWNoIHNlYXJjaCAtLXF1ZXJ5LXN5bnRheD1zZXhwICcoc3ViamVj dCAob3IgdXRmOCAiY29tcGF0aWJpbGl0eSBpc3N1ZXMiKSknDQogY2F0IDw8RU9GID4gRVhQRUNU RUQNCiB0aHJlYWQ6WFhYICAgMjAwOS0xMS0xOCBbNC80XSBKamdvZCBKaWFuZywgQWxleGFuZGVy IEJvdGVyby1Mb3dyeTsgW25vdG11Y2hdIE1hYyBPUyBYL0RhcndpbiBjb21wYXRpYmlsaXR5IGlz c3VlcyAoaW5ib3ggdW5yZWFkKQ0KIHRocmVhZDpYWFggICAyMDAwLTAxLTAxIFsxLzFdIE5vdG11 Y2ggVGVzdCBTdWl0ZTsgdXRmOC1zw7xiasOpY3QgKGluYm94IHVucmVhZCkNCit0aHJlYWQ6WFhY ICAgMjAwMC0wMS0wMSBbMS8xXSBOb3RtdWNoIFRlc3QgU3VpdGU7IHV0ZjgtbWVzc2FnZS1ib2R5 LXN1YmplY3QgKGluYm94IHVucmVhZCkNCiBFT0YNCiB0ZXN0X2V4cGVjdF9lcXVhbF9maWxlIEVY UEVDVEVEIE9VVFBVVA0KIA0KLS0gDQoyLjMwLjIN