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 Lg0iDdwVBWFceAAAgWs5BA (envelope-from ) for ; Sat, 31 Jul 2021 11:20:28 +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 wBVZCNwVBWH9aQAA1q6Kng (envelope-from ) for ; Sat, 31 Jul 2021 09:20:28 +0000 Received: from mail.notmuchmail.org (nmbug.tethera.net [IPv6:2607:5300:201:3100::1657]) (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 9FA3F1E0F7 for ; Sat, 31 Jul 2021 11:20:26 +0200 (CEST) Received: from nmbug.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id 76B6729237; Sat, 31 Jul 2021 05:20:20 -0400 (EDT) Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by mail.notmuchmail.org (Postfix) with ESMTPS id 14B6729234 for ; Sat, 31 Jul 2021 05:20:17 -0400 (EDT) Received: by mail-wm1-x336.google.com with SMTP id x17so1154452wmc.5 for ; Sat, 31 Jul 2021 02:20:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:in-reply-to:references:date:message-id :mime-version:content-transfer-encoding; bh=JLeOOlz4+EOuoyMRgAexowZlx2ICOHdfnfAqfIX36i0=; b=jMw8/4qU04Zsn2hDKKlkynQ8qNOGZmj/Eb3RLRpotJpMvJ/NalYecZ8JZz0wcCp9xW UJ/duKHyLmcLrEusPDa/FYSrOsxi5yjUpDriN8EougIxLGFK2LS8SXkPi0YgZA7aBn1O lJNb4C2Zk3js1zpnWLQHZiSnr/sBTn7+uniYUJ389LQYVubK8Q3zNyoKt/d421VBgxYL AWX0WK8kXUHSIbWw0rrvzS9Qvxbdc8o6fEYDcwMed0DeAYENrINkemhL8o4HZF2Ljfaa EDKk7afMffGKG+vuvITTjsSTBF/1logRKPhzI0g+EEDn1A1737enaMma6GU+HpPptY+f 7R/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:in-reply-to:references :date:message-id:mime-version:content-transfer-encoding; bh=JLeOOlz4+EOuoyMRgAexowZlx2ICOHdfnfAqfIX36i0=; b=cFL7aDGXNoZ/gwkKN03WxH/VHekrNZSMGmaUqkFrymf5oQV5FO5D1ayH6qltt27UTq nRzvu+qDprWM1Rywvbjgv+0j1n9IZ54ltUVjKf9ZoObdR1uoVBInoekc0cUiZGUvXX4B i2CK795XI4kV+BUmwiv1EumSUDvnsskhQFRKm+X/P29QkX1WaCdUE9w5O8PUcEbLmYbG QpBlmvDTOSK3cggSJ9tiJNzBtfl9w124wqJYo0R3ImsSObKAWaTVmdWEzdz7IKLa59Zy g90f+/qYAaNhjSLsmpSMma6+4q+kIRDlq1ofLmsq8AFan46E2U2EFwazUssDv9nOqO2N 3UeA== X-Gm-Message-State: AOAM531ASDfFoElxviTbXTU9mYEmcwlof25a99tdpgQkWXhApbxP27rQ mfoShe83FPPXOQbVPHuzMAo= X-Google-Smtp-Source: ABdhPJxyp6BaMixghxaAReD2jAGQgjKA9tm5VuAfP2TzVQLDeSd+vEz3lozZujA+aHuB7E7kBGmktw== X-Received: by 2002:a7b:cb01:: with SMTP id u1mr7213797wmj.44.1627723211137; Sat, 31 Jul 2021 02:20:11 -0700 (PDT) Received: from powell.devork.be (dynamic-2k7esdau8lrmrwtf7a-pd01.res.v6.highway.a1.net. [2001:871:25f:3a3:4e2d:f32f:e949:7e36]) by smtp.gmail.com with ESMTPSA id w13sm5218119wru.72.2021.07.31.02.20.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Jul 2021 02:20:10 -0700 (PDT) Sender: Floris Bruynooghe Received: (nullmailer pid 2073 invoked by uid 1000); Sat, 31 Jul 2021 09:20:09 -0000 From: Floris Bruynooghe To: Ludovic LANGE , notmuch@notmuchmail.org Subject: Re: [PATCH 1/1] python/notmuch2: provide binding for database_get_directory() In-Reply-To: References: <20210725081602.81497-1-ll-notmuch@lange.nom.fr> <87mtqa2ll9.fsf@powell.devork.be> <87im0v31z8.fsf@powell.devork.be> Date: Sat, 31 Jul 2021 11:20:09 +0200 Message-ID: <87y29met6e.fsf@powell.devork.be> MIME-Version: 1.0 Message-ID-Hash: MECIRIJBCVWFUDUDSNU7E5ZCP6BXE2CV X-Message-ID-Hash: MECIRIJBCVWFUDUDSNU7E5ZCP6BXE2CV X-MailFrom: floris.bruynooghe@gmail.com 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=1627723226; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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:dkim-signature; bh=cfTz68rOiKDLVQQObcnRhbrQstThkJYb7SNAhph3tbc=; b=qKHKeZ2mnQSrp9CnUXquMVA6EZ1gDe54nMVALWxYUM2W3b+uOCHpQryAfdxX7TrZBJJJWq bXHLgD8rZQ1XApa+/zgeTovF82hePYthbFP8vuMfEAM2bX7904osFfDJi1fBc7ONjSuENk NcSH57RzSUvhJUNTniFGAoxuWqQBXJgh1/RTQuwpecDfvw0d/D/sjdpnWDP+0+b29Ledf0 awlheUzNB8WHMVNiXyy2iHcYhQ9vQR7qnZ7XlveL4NqiMqXdgG2mWI2dND4a7zeju/ffDA fXKYQng+R7z/lMjVJ5nhklwNcMubjFd6NByFgxaLcOl5t/QzK6HRzmCuHoB31w== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1627723226; a=rsa-sha256; cv=none; b=lvsVXo+tReZ9qxNOh5SDkTeUGSpOYYITkBDEyc7s5qTtDGiMaFE9SjVMa6CT3lEfnXlBi3 b+UvRB0NiiinDJ0dZIc1hZQuzGkcMh2QpNUFKmcphIYTcEel0ov6vOJ7UNZhHBDMWLIvM0 +HHBPHHEvs1JKlOeG3HrZX2teI2ZOmcnQcY48JSn68Zvl29B9Sgb1YJSu9n9rbpfvF3O1r dh4r3QiDkGBygCQoLlc6ZNOT/FcSomnZp9Hfp+f8mLe2+XM5FHc9OiSk8+SkwCJXlX8IHa Iu1zTSlXP7iAiguVo7pNrhEp5J3uHu8IhDxUQkzzZVJJnX+riL13l4fmu4CiKw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=gmail.com header.s=20161025 header.b="jMw8/4qU"; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2607:5300:201:3100::1657 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Spam-Score: -0.88 Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=gmail.com header.s=20161025 header.b="jMw8/4qU"; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2607:5300:201:3100::1657 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Queue-Id: 9FA3F1E0F7 X-Spam-Score: -0.88 X-Migadu-Scanner: scn0.migadu.com X-TUID: 89HeD9tctQfI T24gU2F0IDMxIEp1bCAyMDIxIGF0IDAwOjMzICswMjAwLCBMdWRvdmljIExBTkdFIHdyb3RlOg0K PiAoQnR3LCBpdCBzZWVtcyB5b3VyIG1haWwgd2FzIHNlbnQgZGlyZWN0bHkgdG8gbWUsIG5vdCB0 aGUgTS9MLCB3YXMgaXQNCj4gaW50ZW50aW9uYWwgb3IgYW4gYWNjaWRlbnQgPyBCb3RoIGFyZSBP SyBmb3IgbWUuKQ0KDQpObywgdGhhdCB3YXMgYWNjaWRlbnRhbC4gIEFwb2xvZ2llcyENCg0KPiBX aGlsZSB5b3UgcmV2aWV3IHRoZSBuZXcgdmVyc2lvbiBvZiB0aGUgcGF0Y2gsIGEgZmV3IHRob3Vn aHRzIG9uIHlvdXINCj4gYW5zd2VycyBiZWxvdzoNCj4NCj4gTGUgMjcvMDcvMjAyMSDDoCAyMzow MSwgRmxvcmlzIEJydXlub29naGUgYSDDqWNyaXTCoDoNCj4+Pj4+ICsgICAgICAgIDpyYWlzZXMg VXBncmFkZVJlcXVpcmVkRXJyb3I6IFRoZSBkYXRhYmFzZSBtdXN0IGJlIHVwZ3JhZGVkDQo+Pj4+ PiArICAgICAgICAgICBmaXJzdC4NCj4+Pj4+ICsgICAgICAgICIiIg0KPj4+Pj4gKyAgICAgICAg aWYgbm90IGhhc2F0dHIob3MsICdQYXRoTGlrZScpIGFuZCBpc2luc3RhbmNlKHBhdGgsIHBhdGhs aWIuUGF0aCk6DQo+Pj4+PiArICAgICAgICAgICAgcGF0aCA9IGJ5dGVzKHBhdGgpDQo+Pj4+IEkg dGhpbmsgYHBhdGggPSBvcy5mc3BhdGgocGF0aClgIHNob3VsZCBoYW5kbGUgdGhpcyBmaW5lLiAg QnV0IEkgZG9uJ3QNCj4+Pj4gdGhpbmsgeW91IGV2ZW4gbmVlZCB0byBkbyB0aGF0IGFzIGBvcy5m c2VuY29kZSgpYCB3aWxsIGp1c3QgZG8gdGhlIHJpZ2h0DQo+Pj4+IHRoaW5nIGFscmVhZHkuDQo+ Pj4gVGhpcyBpcyBhIGNvbnN0cnVjdCBJIHNhdyBtdWx0aXBsZSB0aW1lcyBpbiB0aGUgc2FtZSBm aWxlIChfZGF0YWJhc2UucHkpDQo+Pj4gb2YgdGhlIG5vdG11Y2gyIHB5dGhvbiBiaW5kaW5ncy4g Tm90IGZhbWlsaWFyIHdpdGggaXQsIEkgZ3Vlc3NlZCBJDQo+Pj4gc2hvdWxkIGRvIHRoZSBzYW1l IGFsc28uDQo+Pj4NCj4+PiBJJ20gb2sgdG8gcmVtb3ZlIGl0LCBidXQgZm9yIGNvbnNpc3RlbmN5 IGEgbW9yZSBnZW5lcmFsIGFwcHJvYWNoIHNob3VsZA0KPj4+IGJlIHRha2VuIGZvciB0aGUgcmVz dCBvZiB0aGUgfjYgdGltZXMgaXQgb2NjdXJzIGluIHRoaXMgZmlsZS4gSSdkIGJlDQo+Pj4gaGFw cHkgdG8gaGF2ZSBtb3JlIGluc2lnaHRzIG9uIHdoeSB5b3UgKGFzIHlvdSBzZWVtIHRvIGJlIHRo ZSBhdXRob3Igb2YNCj4+PiB0aGUgbmV3IGJpbmRpbmdzLCBhbmQgb2YgdGhlc2UgY29uc3RydWN0 cykgaGFkIHRvIHB1dCB0aGVtIGhlcmUgdGhlDQo+Pj4gZmlyc3QgdGltZSA/DQo+PiBIZWgsIEkg Z3Vlc3MgSSBqdXN0IGRpZG4ndCB3cml0ZSB0aGF0IGdvb2QgY29kZSBhbmQgcmVhZCB0aGUgZG9j cyBiZXR0ZXINCj4+IHRoaXMgdGltZSByb3VuZD8gIFBhdGhsaWIgd2FzIGZhaXJseSBuZXcgYmFj ayB0aGVuLiAgSSB0aGluayB0aGUgb3RoZXIgNg0KPj4gdGltZXMgc2hvdWxkIHByb2JhYmx5IGNo YW5nZSBiZWNhdXNlIGl0IHNlZW1zIGxpa2UgdGhlc2UgYXJlIHRoZSBweXRob24NCj4+IEFQSXMg dG8gZG8gdGhpcyB3aXRoIGFuZCBhcmUgbGVzcyBlcnJvciBwcm9uZS4NCj4NCj4gT0ssIHRoYXQn cyBmaW5lIC0gaXQncyBqdXN0IHRoYXQgSSBkb24ndCBoYXZlIG11Y2ggZXhwZXJpZW5jZSB3aXRo IHRoaXMNCj4gUGF0aExpYiBBUEkuDQo+DQo+IEknbSBPSyB0byByZW1vdmUgdGhpcyBjb25zdHJ1 Y3QsIG5vIGlzc3VlLCB3aWxsIGRvIGl0LiBJJ2xsIGxldCB5b3UgZG8NCj4gdGhlIG90aGVycyBv ciBJIGNhbiBkbyBpdCwgYXMgeW91IHdpc2guDQo+DQo+DQo+Pj4+PiArY2xhc3MgUHVyZVBhdGhJ dGVyKEZpbGVuYW1lc0l0ZXIpOg0KPj4+Pj4gKyAgICAiIiJJdGVyYXRvciBmb3IgcGF0aGxpYi5Q dXJlUGF0aCBvYmplY3RzLiIiIg0KPj4+Pj4gKw0KPj4+Pj4gKyAgICBkZWYgX19uZXh0X18oc2Vs Zik6DQo+Pj4+PiArICAgICAgICBmbmFtZSA9IHN1cGVyKCkuX19uZXh0X18oKQ0KPj4+Pj4gKyAg ICAgICAgcmV0dXJuIHBhdGhsaWIuUHVyZVBhdGgob3MuZnNkZWNvZGUoZm5hbWUpKQ0KPj4+PiBJ J20gc3VycHJpc2VkIHlvdSBleHBsaWNpdGx5IG5lZWQgYSBQdXJlUGF0aCBoZXJlPw0KPj4+IE5v dCBuZWVkZWQuIE15IHJlYXNvbmluZyB3YXMgOiBhIERpcmVjdG9yeSBpcyByZXR1cm5pbmcgcmVh bC1wYXRocw0KPj4+IChkaXJlY3RvcmllcywgZmlsZXMpIG9uIHRoZSBmaWxlc3lzdGVtLCBidXQg dGhlIEFQSSBpcyBvbmx5IGRpcmVjdGVkDQo+Pj4gdG93YXJkcyBtYW5pcHVsYXRpbmcgdGhlIG5v dG11Y2ggZGF0YWJhc2UsIG5vdCB0aGUgdW5kZXJseWluZyBmaWxlc3lzdGVtDQo+Pj4gKG90aGVy d2lzZSB3ZSB3b3VsZCBoYXZlIHRvIHJlLXJ1biBub3RtdWNoIHRvIHN5bmNoIHRoZSBkaWZmZXJl bmNlcykuIFNvDQo+Pj4gYnkgcmV0dXJuaW5nIGEgUHVyZVBhdGggKGFzIG9wcG9zZWQgdG8gYSBj b25jcmV0ZSBQYXRoKSBpdCBjb3VsZCBiZSBhDQo+Pj4gc2lnbmFsIHRvIHRoZSB1c2VyIG5vdCB0 byBtZXNzIHdpdGggdGhlIHVuZGVlcmx5aW5nIGZpbGVzeXN0ZW0uDQo+PiBJIGxpa2UgdGhpcyBy ZWFzb25pbmcgOikNCj4+DQo+PiBJIHdvbmRlciBpZiB3ZSBjYW4gZ28gZXZlbiBmdXJ0aGVyIGFu ZCBub3Qgc3VwcGx5IHRoZSBgLmZpbGVzKClgIGFuZA0KPj4gYC5kaXJlY3RvcmllcygpYCBmdW5j dGlvbnMgYXQgYWxsLiAgQWZ0ZXIgYWxsIHRoZXJlIGlzIGBEaXJlY3RvcnkucGF0aGANCj4+IGFu ZCBpbiBweXRob24geW91IGNhbiBqdXN0IGRvIGBbcCBmb3IgcCBpbiBEaXJlY290cnkucGF0aC5p dGVyZGlyKCkgaWYNCj4+IHAuaXNfZmlsZSgpXWAgbyBnZXQgdGhlIGVxdWl2YWxlbnQuICBPVE9I IHN1cHBseWluZyB0aGVzZSBhbGxvd3MgeW91IHRvDQo+PiB2ZXJpZnkgdGhhdCBub3RtdWNoIHNl ZXMgdGhlIHNhbWUgdGhpbmdzLg0KPj4NCj4+IFNvIG1heWJlIGl0IG1ha2VzIHNlbnNlIHRvIGtl ZXAgdGhpcyBhcyBQdXJlUGF0aCBhbmQga2VlcCAuZmlsZXMoKSBhbmQNCj4+IC5kaXJlY3Rvcmll cygpIGJ1dCBleHBsYWluIGluIHRoZWlyIGRvY3N0cmluZyB0aGV5IGFyZSBtb3JlIGFkdmFuY2Vk IGFuZA0KPj4gcG9pbnQgdXNlcnMgdG8gdGhlIGxpc3QgY29tcHJlaGVuc2lvbiBpbnN0ZWFkIGZv ciBtb3N0IHVzZXMuDQo+Pg0KPj4gTWF5YmUgc29tZW9uZSB3aG8ga25vd3MgdGhlIEMgQVBJIGJl dHRlciBjYW4gY29tbWVudCBvbiB3aGV0aGVyIHRoaXMNCj4+IHNlZW1zIHJlYXNvbmFibGUgb3Ig d2hldGhlciBJIGhhdmUgdGhpcyBjb21wbGV0ZWx5IHdyb25nLg0KPg0KPiBJJ20gYSBsaXR0bGUg ZW1iYXJyYXNzZWQgcmVtb3ZpbmcgdGhvc2UgZnVuY3Rpb25zIChgLmZpbGVzKClgIGFuZA0KPiBg LmRpcmVjdG9yaWVzKClgKToNCj4NCj4gKiBUaGV5J3JlIHBhcnQgb2YgdGhlIEMgQVBJLCBhbmQg aW4gbXkgdmlzaW9uIHRoZSBweXRob24gQVBJIHNob3VsZCBiZSBhDQo+IChtYXliZSBhZ25vc3Rp Yykgd3JhcHBlciBhcm91bmQgdGhlIEMgQVBJLCBub3QgcmVtb3ZpbmcgZnVuY3Rpb25zLiBJJ20N Cj4gT0sgdG8gYmUgYSBsaXR0bGUgbW9yZSAiUHl0aG9uaWMiLCBidXQgSSdkIHByZWZlciBub3Qg dG8gZGl2ZXJnZSBmcm9tDQo+IHRoZSBDIHJvb3RzLg0KDQpUaGlzIEknbSBub3QgdG9vIHN3YXll ZCBieSwgaWYgeW91IHdhbnQgYSBmYWl0aGZ1bCBBUEkgdGhlbiB5b3Ugc2hvdWxkDQp1c2UgdGhl IG5vdG11Y2guX2NhcGkgbW9kdWxlIGRpcmVjdGx5IGJ1dCB5b3UgaGF2ZSB0byBkZWFsIHdpdGgg YWxsIHRoZQ0KaHVyZGxlcy4gIFNvIEkgdGhpbmsgaXQncyByZWFzb25hYmxlIHRvIGludGVycHJl dCB0aGluZ3MgaW4gYSBzdWl0YWJsZQ0Kd2F5Lg0KDQo+ICogSW4gdGhpcyBzcGVjaWZpYyB1c2Ut Y2FzZSwgYXNraW5nIHRoZSBEYXRhYmFzZSBpdHMgdmlzaW9uIG9mIHRoZQ0KPiBmaWxlc3lzdGVt IGlzIHdoYXQgSSB3YW50IC0gYmVjYXVzZSBJJ20gZGVhbGluZyB3aXRoIG1haWxzICh0aGF0IGFy ZSBpbg0KPiBzb21lIGZvbGRlcnMpIGluZGV4ZWQgYnkgdGhlIGRhdGFiYXNlLiBJZiB0aGVyZSBp cyBhbiBpbmNvbnNpc3RlbmN5DQo+IChmb2xkZXJzIG5vdCBpbmRleGVkIGZvciB3aGF0ZXZlciBy ZWFzb24pIGJldHdlZW4gdGhlIGZpbGVzeXN0ZW0gYW5kDQo+IG5vdG11Y2gncyB2aWV3IDsgSSBw cmVmZXIgdG8gaGF2ZSBub3RtdWNoJ3MgdmlldyBiZWNhdXNlIGFmdGVyIEknbGwNCj4gcXVlcnkg bm90bXVjaCBiYXNlZCBvbiB0aG9zZSBmb2xkZXJzIC0gdGhleSdyZSBiZXR0ZXIgZXhpc3QgaW4g dGhlIGRhdGFiYXNlLg0KDQpHcmVhdCwgSSBtaXNzZWQgdGhpcy4gIEkgY2hlY2tlZCB0aGUgaW1w bGVtZW50YXRpb24gaW4gQyBhbmQgaW5kZWVkIGl0DQpxdWVyaWVzIHRoZSBkYXRhYmFzZSBhbmQg ZG9lcyBub3QgZG8gYW55IGZpbGVzeXN0ZW0gb3BlcmF0aW9ucy4gIFNvIHllcywNCml0IGRvZXMg bWFrZSBzZW5zZSB0byBpbmNsdWRlIHRoZXNlLg0KDQpTbGlnaHRseSBvZmYtdG9waWM6IHRoaXMg aXMgd2h5IEkgd2FzIHJlbHVjdGFudCB0byB3b3JrIG9uIHRoaXMgQVBJDQpteXNlbGYsIEkgaGF2 ZW4ndCB1c2VkIGl0IGFuZCBkb24ndCBmdWxseSB1bmRlcnN0YW5kIGl0J3MgdXNlcy4gIFNvIEkN CmFwcHJlY2lhdGUgdGhpcyBkaXNjdXNzaW9uIGFuZCB5b3UgdGFraW5nIHRoZSB0aW1lIHRvIGV4 cGxhaW4gbWUgdGhpcw0Ka2luZCBvZiB0aGluZy4NCg0KPiAqIEFsc28sIHJlZ2FyZGluZyBQdXJl UGF0aCwgeW91J3JlIGluaXRpYWwgcmVhY3Rpb24gd2FzIHNvdW5kLCBhbmQgSSdtDQo+IE9LIHRv IHJlbW92ZSBQdXJlUGF0aCBhbmQgaGF2ZSBhICh2YWxpZCwgZnVuY3Rpb25hbCkgUGF0aCBpbnN0 ZWFkLg0KPiBUaGF0J3Mgd2hhdCBJIHB1dCBpbiB0aGUgc2Vjb25kIHZlcnNpb24gb2YgdGhlIHBh dGNoLg0KDQoNCkNoZWVycywNCkZsb3Jpcw==