From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1.migadu.com with LMTPS id 4JyNHU59NWa8LQEA62LTzQ:P1 (envelope-from ) for ; Sat, 04 May 2024 02:11:58 +0200 Received: from aspmx1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id 4JyNHU59NWa8LQEA62LTzQ (envelope-from ) for ; Sat, 04 May 2024 02:11:58 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=fnQLPlhH; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1714781518; a=rsa-sha256; cv=none; b=V+Ys6u844f89gbMXzuaocCiZ12xpXBXaxHRD6g4UdIGio4z+muKxangzGiGgg1AP20ZWsB xUKMqGzPJOsINBpdQOCmqdYKRuWd4XWp08eGPbqtZo0E9I3rJN1T2OVHwEiRSdeDO2fJjC 7Bwgx+7fu+qy38aWzr+xGzbQ1Oh+aKahyg8oQtkDhSgjWf5XangWSDePDpeA1AffU3XvxY 9lT4dkdrn/mfvZnGN61kRX/sLrnzfsQ+Zkw0+IHj9ftxxXsZB0nRjrvwIAW/ctA1JtdE45 LvFcczp0PL7xh/LOkBtWlmGf9NclFy22TWPIrkFiNY1GFdE8w+z85++ds0E0ng== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=fnQLPlhH; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1714781518; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=K+SJ5OrF70RrOVwLFFTsAP8uXBjCxEaPR+X4Lg61d/s=; b=GRHaSqzJV/Um7vfh4dG8X2tFApoXfkSbGjUK8ZH5kZ/CkC1iuyI6ElkTfpm79Ftwhx+SyL cZvlKa8c7lzdvaBD9IRHBeg4tjQuFCZR1uEMzecv5LfYSTu1YvLAcaJ1Znh4lsQzylVdn+ 7gokU0/zTHlAopOhTqKPMpEYZBDaUw3W4V1iuojtf0WDr9JETmaYJLAs1eve5NFzIRarqS 4mNY6yonz80UvZL+a9xIZrSAd2muDQr6bVcxT9Er+CP40tU5nRrTbjJ/TBxGJkjcIcdhOG YMTqHqJVHSHx05Zz5WaUMYzaKruoDPZvqNOG6nr4vj6D1OPa0pVIgC0CLPRCSA== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 2D43B351EE for ; Sat, 4 May 2024 02:11:58 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s32zP-0002AN-P6; Fri, 03 May 2024 20:10:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s32zN-00028R-Kb for emacs-orgmode@gnu.org; Fri, 03 May 2024 20:10:53 -0400 Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s32zL-0002zM-O5 for emacs-orgmode@gnu.org; Fri, 03 May 2024 20:10:53 -0400 Received: by mail-lj1-x22e.google.com with SMTP id 38308e7fff4ca-2d8a24f8a3cso2302871fa.1 for ; Fri, 03 May 2024 17:10:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714781449; x=1715386249; darn=gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=K+SJ5OrF70RrOVwLFFTsAP8uXBjCxEaPR+X4Lg61d/s=; b=fnQLPlhHTEw6X/RKj68dEZFNxyuJZWWznzP7FOAE350pz6eFJy5rEvA+VHEEq1Ibih HWIACUDUmGFSWia2LceqxgLKI+uqQ8tM8GIG2mBrdMGwL1ytqqU9rAJlNVklo8d2Huv4 fD5vXUvTWdTAmrHrU3w7KjqMwn2heSL65pE2ow8SxEV+aGqZ4Ca2AioPV/us7yayuJ14 80W7WWZN4pdD3fTNPY4mAIoYfZ3v4kVX0qUTMk/PHJmOgOyIrJOTxWq3V86Y6LLzWZ5D u15DfJLZUuFdywGr9ogzt+AqRyTbdf18wM66vOUPt50m+Dh+pYq6gFDfrIaUDpt7SqAG 48CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714781449; x=1715386249; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=K+SJ5OrF70RrOVwLFFTsAP8uXBjCxEaPR+X4Lg61d/s=; b=cqFZLMUEYxAnN9QmfI0bOmJJhtI1i80pinXKR8YFmOrJGhi0LXAVC/pOU1t+UjlUR8 1gqLC7XX2Xu7ABTIogwzkDexPA7eK9YvKRPz0crbYTjzElhRVjzTgCEQSH2tUdOplVof nGZwmAM9ZinCdaAKu3DzvbDy6MVTQiDsIyFSwvil819pnaXydX00nWjrtc94BA7g1nYY LHMIDZge6OAuOrXLPmitN9MLXFp2Cm395A2ovhfewA0eLQG29EOywrZzK6RHaVxcZn8e 9JKrFZdjMra4Qs746O3CRGn7VMKiavavMFK/hsUfa9cf+r3ZF7TD5CEwHkUXXCUxxrnF pSTw== X-Gm-Message-State: AOJu0YxHIuz6UzMQ9aXgEzKstpXfiqVk0Bvtzu4o3R8HRgCOdWj651BB bc3t1TFD5DFeOExWOsj43K7A4k5UnOoKYMz58y3tQ+mrvixbWCSmtdDG4p3up/ZMTv2ewseGZI8 Wzf81W+d4na1WKQNq41YSgy7FeBgKVjty X-Google-Smtp-Source: AGHT+IGZFSmM6cLKnb8k0ULB/YvNgdA/D8giLSgSYuaQeHZoZdCIBe8xaMUmZQbQmDyewITmGT7lc0jvL9BuJpOoqrk= X-Received: by 2002:ac2:51b3:0:b0:51f:13e8:3729 with SMTP id f19-20020ac251b3000000b0051f13e83729mr2696538lfk.20.1714781448633; Fri, 03 May 2024 17:10:48 -0700 (PDT) MIME-Version: 1.0 References: <87mspb6nf2.fsf@localhost> <87r0eleqi2.fsf@localhost> <87jzkdsksv.fsf@localhost> <87wmoc9yuc.fsf@localhost> <87ttjftany.fsf@localhost> In-Reply-To: <87ttjftany.fsf@localhost> From: Nafiz Islam Date: Fri, 3 May 2024 20:10:37 -0400 Message-ID: Subject: Re: [FR] Support headline as a function for file+headline target for org-capture-templates To: Ihor Radchenko Cc: emacs-orgmode@gnu.org Content-Type: multipart/alternative; boundary="0000000000001d0833061795ab5c" Received-SPF: pass client-ip=2a00:1450:4864:20::22e; envelope-from=nafiz.islam1001@gmail.com; helo=mail-lj1-x22e.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Queue-Id: 2D43B351EE X-Migadu-Scanner: mx12.migadu.com X-Migadu-Spam-Score: -9.61 X-Spam-Score: -9.61 X-TUID: IrwM17b9Ywuy --0000000000001d0833061795ab5c Content-Type: text/plain; charset="UTF-8" So far I have written this code... (defun org-capture-expand-headline (headline) "Expand functions, symbols and strings for HEADLINE. When HEADLINE is a function, call it. When it is a form, evaluate it. When it is a variable, return its value. When it is a string, treat it as a headline title. When it is `t', select existing headline title or enter a new one. In any other case, raise an error." (let* ((headlines (org-map-entries (lambda () (org-element-property :title (org-element-at-point))))) (final-headline (cond ((stringp headline) headline) ((functionp headline) (funcall headline headlines)) ((eq headline t) (completing-read "Enter headline: " headlines nil 'confirm)) ((and (symbolp headline) (boundp headline)) (symbol-value headline)) (t nil)))) (or (org-string-nw-p final-headline) (error "Invalid headline: %S" headline)))) and I updated `org-capture-set-target-location' to use that function when handling with target `file+headline' What I am concerned about is the amount of tests I might have to write or update for `org-capture'. testing/lisp/test-org-capture.el 125: `(("t" "Todo" entry (file+headline ,file "A") "** H1 %?")))) 144: `(("t" "Todo" entry (file+headline ,file2 "A") 175: `(("t" "Todo" entry (file+headline ,file "A") "** H1 %?")))) 221: `(("t" "Todo" entry (file+headline ,file "A") "** H1 %?")))) 233: `(("t" "Test" entry (file+headline ,file "A") "** H\nFoo" 243: `(("t" "Test" entry (file+headline ,file "A") "** " 279: `(("t" "Item" item (file+headline ,file "A") "- X")))) 312: `(("t" "Item" item (file+headline ,file "A") "- X")))) 323: `(("t" "Item" item (file+headline ,file "A") "- X" 337: `(("t" "Item" item (file+headline ,file "A") "- X" 358: `(("t" "Item" item (file+headline ,file "A") "- X" 371: `(("t" "Item" item (file+headline ,file "A") "- X")))) 538: `(("t" "Table" table-line (file+headline ,file "Inbox") 552: `(("t" "Table" table-line (file+headline ,file "Inbox") 723: `(("t" "Text" plain (file+headline ,file "A") "Foo" 733: `(("t" "Text" plain (file+headline ,file "A") "Foo" How do you think it should be tested if the headline can be 4 different types? Apology in advance if the formatting is off. --0000000000001d0833061795ab5c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdj5TbyBmYXIgSSBoYXZlIHdyaXR0ZW4gdGhpcyBjb2RlLi4uPC9k aXY+PGRpdj48YnI+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNl Ij4oZGVmdW4gb3JnLWNhcHR1cmUtZXhwYW5kLWhlYWRsaW5lIChoZWFkbGluZSk8YnI+wqAgJnF1 b3Q7RXhwYW5kIGZ1bmN0aW9ucywgc3ltYm9scyBhbmQgc3RyaW5ncyBmb3IgSEVBRExJTkUuIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPGJyPldoZW4gSEVBRExJTkUgaXMgYSBmdW5j dGlvbiwgY2FsbCBpdC7CoCBXaGVuIGl0IGlzIGEgZm9ybSwgZXZhbHVhdGUgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqA8YnI+aXQuwqAgV2hlbiBpdCBpcyBhIHZhcmlhYmxlLCByZXR1cm4gaXRzIHZhbHVlLsKgIFdo ZW4gaXQgaXMgYSBzdHJpbmcsIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj50cmVhdCBpdCBhcyBhIGhlYWRsaW5l IHRpdGxlLiBXaGVuIGl0IGlzIGB0JiMzOTssIHNlbGVjdCBleGlzdGluZyBoZWFkbGluZSDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoDxicj50aXRsZSBvciBlbnRlciBhIG5ldyBvbmUuwqAgSW4gYW55IG90aGVyIGNhc2UsIHJh aXNlIGFuIGVycm9yLiZxdW90Ozxicj7CoCAobGV0KiAoKGhlYWRsaW5lcyAob3JnLW1hcC1lbnRy aWVzIChsYW1iZGEgKCk8YnI+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnRpdGxlIChvcmctZWxl bWVudC1hdC1wb2ludCkpKSkpPGJyPsKgIMKgIMKgIMKgIMKgKGZpbmFsLWhlYWRsaW5lIChjb25k ICgoc3RyaW5ncCBoZWFkbGluZSkgaGVhZGxpbmUpPGJyPsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKChmdW5jdGlvbnAgaGVhZGxpbmUpIChmdW5jYWxsIGhl YWRsaW5lIGhlYWRsaW5lcykpPGJyPsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgKChlcSBoZWFkbGluZSB0KSAoY29tcGxldGluZy1yZWFkICZxdW90O0VudGVy IGhlYWRsaW5lOiAmcXVvdDsgaGVhZGxpbmVzIMKgbmlsICYjMzk7Y29uZmlybSkpPGJyPsKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKChhbmQgKHN5bWJvbHAg aGVhZGxpbmUpIChib3VuZHAgaGVhZGxpbmUpKSAoc3ltYm9sLXZhbHVlIGhlYWRsaW5lKSk8YnI+ wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAodCBuaWwpKSkp PGJyPsKgIMKgIChvciAob3JnLXN0cmluZy1udy1wIGZpbmFsLWhlYWRsaW5lKTxicj4JKGVycm9y ICZxdW90O0ludmFsaWQgaGVhZGxpbmU6ICVTJnF1b3Q7IGhlYWRsaW5lKSkpKTwvc3Bhbj48YnI+ PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5hbmQgSSB1cGRhdGVkIGBvcmctY2FwdHVyZS1zZXQt dGFyZ2V0LWxvY2F0aW9uJiMzOTsgdG8gdXNlIHRoYXQgZnVuY3Rpb24gd2hlbiBoYW5kbGluZyB3 aXRoIHRhcmdldCBgZmlsZStoZWFkbGluZSYjMzk7PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5X aGF0IEkgYW0gY29uY2VybmVkIGFib3V0IGlzIHRoZSBhbW91bnQgb2YgdGVzdHMgSSBtaWdodCBo YXZlIHRvIHdyaXRlIG9yIHVwZGF0ZSBmb3IgYG9yZy1jYXB0dXJlJiMzOTsuPC9kaXY+PGRpdj48 YnI+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlIj50ZXN0aW5n L2xpc3AvdGVzdC1vcmctY2FwdHVyZS5lbCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj4xMjU6IMKgIMKgIMKgIMKgIMKg YCgoJnF1b3Q7dCZxdW90OyAmcXVvdDtUb2RvJnF1b3Q7IGVudHJ5IChmaWxlK2hlYWRsaW5lICxm aWxlICZxdW90O0EmcXVvdDspICZxdW90OyoqIEgxICU/JnF1b3Q7KSkpKSDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj4xNDQ6IMKg IMKgIMKgIMKgIMKgIMKgIGAoKCZxdW90O3QmcXVvdDsgJnF1b3Q7VG9kbyZxdW90OyBlbnRyeSAo ZmlsZStoZWFkbGluZSAsZmlsZTIgJnF1b3Q7QSZxdW90OykgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJy PjE3NTogwqAgwqAgwqAgwqAgwqBgKCgmcXVvdDt0JnF1b3Q7ICZxdW90O1RvZG8mcXVvdDsgZW50 cnkgKGZpbGUraGVhZGxpbmUgLGZpbGUgJnF1b3Q7QSZxdW90OykgJnF1b3Q7KiogSDEgJT8mcXVv dDspKSkpIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgPGJyPjIyMTogwqAgwqAgwqAgwqAgwqBgKCgmcXVvdDt0JnF1b3Q7ICZxdW90O1Rv ZG8mcXVvdDsgZW50cnkgKGZpbGUraGVhZGxpbmUgLGZpbGUgJnF1b3Q7QSZxdW90OykgJnF1b3Q7 KiogSDEgJT8mcXVvdDspKSkpIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgPGJyPjIzMzogwqAgwqAgwqAgwqAgwqBgKCgmcXVvdDt0JnF1 b3Q7ICZxdW90O1Rlc3QmcXVvdDsgZW50cnkgKGZpbGUraGVhZGxpbmUgLGZpbGUgJnF1b3Q7QSZx dW90OykgJnF1b3Q7KiogSFxuRm9vJnF1b3Q7IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj4yNDM6IMKgIMKgIMKgIMKgIGAo KCZxdW90O3QmcXVvdDsgJnF1b3Q7VGVzdCZxdW90OyBlbnRyeSAoZmlsZStoZWFkbGluZSAsZmls ZSAmcXVvdDtBJnF1b3Q7KSAmcXVvdDsqKiAmcXVvdDsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+Mjc5 OiDCoCDCoCDCoCDCoCDCoGAoKCZxdW90O3QmcXVvdDsgJnF1b3Q7SXRlbSZxdW90OyBpdGVtIChm aWxlK2hlYWRsaW5lICxmaWxlICZxdW90O0EmcXVvdDspICZxdW90Oy0gWCZxdW90OykpKSkgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqA8YnI+MzEyOiDCoCDCoCDCoCDCoCDCoGAoKCZxdW90O3QmcXVvdDsgJnF1b3Q7SXRl bSZxdW90OyBpdGVtIChmaWxlK2hlYWRsaW5lICxmaWxlICZxdW90O0EmcXVvdDspICZxdW90Oy0g WCZxdW90OykpKSkgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+MzIzOiDCoCDCoCDCoCDCoCDCoGAoKCZxdW90O3Qm cXVvdDsgJnF1b3Q7SXRlbSZxdW90OyBpdGVtIChmaWxlK2hlYWRsaW5lICxmaWxlICZxdW90O0Em cXVvdDspICZxdW90Oy0gWCZxdW90OyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj4zMzc6IMKgIMKgIMKg IMKgIMKgYCgoJnF1b3Q7dCZxdW90OyAmcXVvdDtJdGVtJnF1b3Q7IGl0ZW0gKGZpbGUraGVhZGxp bmUgLGZpbGUgJnF1b3Q7QSZxdW90OykgJnF1b3Q7LSBYJnF1b3Q7IMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg PGJyPjM1ODogwqAgwqAgwqAgwqAgwqBgKCgmcXVvdDt0JnF1b3Q7ICZxdW90O0l0ZW0mcXVvdDsg aXRlbSAoZmlsZStoZWFkbGluZSAsZmlsZSAmcXVvdDtBJnF1b3Q7KSAmcXVvdDstIFgmcXVvdDsg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqA8YnI+MzcxOiDCoCDCoCDCoCDCoCDCoGAoKCZxdW90O3QmcXVvdDsg JnF1b3Q7SXRlbSZxdW90OyBpdGVtIChmaWxlK2hlYWRsaW5lICxmaWxlICZxdW90O0EmcXVvdDsp ICZxdW90Oy0gWCZxdW90OykpKSkgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+NTM4OiDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoGAoKCZxdW90O3QmcXVvdDsgJnF1b3Q7VGFibGUmcXVvdDsgdGFibGUtbGluZSAoZmls ZStoZWFkbGluZSAsZmlsZSAmcXVvdDtJbmJveCZxdW90OykgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPjU1MjogwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqBgKCgmcXVvdDt0JnF1b3Q7ICZxdW90O1RhYmxlJnF1b3Q7IHRhYmxlLWxpbmUg KGZpbGUraGVhZGxpbmUgLGZpbGUgJnF1b3Q7SW5ib3gmcXVvdDspIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj43MjM6IMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgYCgoJnF1b3Q7dCZxdW90OyAmcXVvdDtUZXh0JnF1b3Q7IHBsYWluIChm aWxlK2hlYWRsaW5lICxmaWxlICZxdW90O0EmcXVvdDspICZxdW90O0ZvbyZxdW90OyDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA8 YnI+NzMzOiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGAoKCZxdW90O3QmcXVvdDsgJnF1b3Q7VGV4 dCZxdW90OyBwbGFpbiAoZmlsZStoZWFkbGluZSAsZmlsZSAmcXVvdDtBJnF1b3Q7KSAmcXVvdDtG b28mcXVvdDs8L3NwYW4+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5Ib3cgZG8geW91IHRoaW5r IGl0IHNob3VsZCBiZSB0ZXN0ZWQgaWYgdGhlIGhlYWRsaW5lIGNhbiBiZSA0IGRpZmZlcmVudCB0 eXBlcz88L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkFwb2xvZ3kgaW4gYWR2YW5jZSBpZiB0aGUg Zm9ybWF0dGluZyBpcyBvZmYuPGJyPjwvZGl2PjwvZGl2Pg0K --0000000000001d0833061795ab5c--