From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tim Burt Subject: Re: Gather properties for use by babel source block? Date: Tue, 08 May 2012 06:42:00 -0400 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([208.118.235.92]:52088) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SRhrw-0002UP-Pk for emacs-orgmode@gnu.org; Tue, 08 May 2012 06:42:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SRhrp-0001wX-Lt for emacs-orgmode@gnu.org; Tue, 08 May 2012 06:42:12 -0400 Received: from hrndva-omtalb.mail.rr.com ([71.74.56.122]:13266) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SRhrp-0001uX-G4 for emacs-orgmode@gnu.org; Tue, 08 May 2012 06:42:05 -0400 In-Reply-To: (Colin Hall's message of "Mon, 7 May 2012 15:52:04 +0000 (UTC)") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Colin Hall Cc: emacs-orgmode@gnu.org --=-=-= Colin Hall writes: > Tim Burt rochester.rr.com> writes: >> >> I want to gather data from properties into something that can be used by >> a babel source block (e.g. plot the data). Searches in the manual, >> worg, and gmane have not yielded the method, but my best guess is that >> I've missed it. If so, this is simply a request for a pointer to the >> documentation I should read. > > Any luck with this, Tim? I'm trying to do something very similar. After the hints of Darlan and Suvayu last August I cobbled a workflow described below. Errors and instability in the early weeks have been resolved into the current set of workable blemishes described below the workflow. The attachment is an org file that should be a working example if gnuplot is installed and configured for org-babel. Thank you Colin for asking the question about progress, because I should have shared it with the mailing list long ago warts and all. This is an example file for gathering and plotting health data (some of which has been fudged to protect the guilty ;-). The workflow is this: 1. DAILY: Use capture templates to query for data into a datetree under the heading '2011' which has an ID property. Each data headline is marked with tags for the data class (e.g. weight, blood sugar) that is used as a hook for collection. 2. ONE-TIME: Define the plots, in this case using gnuplot (thanks to Suvayu for the noweb example), under the heading 'Calculation and Visualization'. Another one-time setup is to define propview blocks that org-collector will populate for each data class (e.g. weight). Both the ID and tags are used to extract the information. 3. ONE-TIME: Another one-time setup is to define propview blocks that org-collector will populate for each data class (e.g. weight). Both the ID and tags are used to extract the information and this is under the 'Summaries' heading. - A #+tblname is placed after the #+BEGIN to provide a hook for the babel blocks for plotting. 4. ON-DEMAND: Refresh each collector block (in this case 4 separate ones), then org-babel-execute-buffer to generate the plots. This method has been mostly working but it has a few weaknesses, borne mostly from my ignorance. I haven't thought about the problem in several months, so maybe the act of writing the questions will spur me to the act of making it better. Here are my observations and questions: - At various times in the past year the ON-DEMAND step has not worked consistently, especially in regards to the #+tblname within the collector block. Sometimes the refresh would fail, often by wiping out the existing static view and replacing with an empty line under the #+tblname. No matter what happened in the past, it is stable enough for this post. - The problem could have been one of configuration (e.g. org-collector not loaded) or data (e.g. error in the date tree) or something else entirely. I have not done sufficiently thorough troubleshooting to really identify the different problems. - Collection is done by matching the tags in the data headlines, but the same type of information can be gleaned from the properties themselves. How can a match invocation be crafted to use the properties? - This weakness comes straight from my ignorance of lisp. - Collection is done for each separate table which does not scale well as the number of tables increases. Scaling itself is not the issue with just 4 tables, but forgetting to update each table is a slight problem. - Is there a way to automate the org-collector step so that one action updates all tables? - Of course, for the current story another solution would be to create one single data table with org-collector then modify the plotting routines to extract only the necessary columns. I'd like the ability to do monolithic or separate then decide which to use for which problems. - The capture templates yield blank properties that simply clutter the drawer and make data extraction logic slightly more complicated since existence alone is not a complete test. - Can a capture template be written to ask all the questions, but not yield a property if the answer is 'null'? --=-=-= Content-Type: application/vnd.lotus-organizer Content-Disposition: attachment; filename=TCBHealth-Example.org Content-Transfer-Encoding: base64 KiBNZXRhCgoKKiogTWFpbGluZyBsaXN0IHBvc3QgZm9yIFsyMDEyLTA1LTA4IFR1ZSAwNjoxOF0K CkFmdGVyIHRoZSBoaW50cyBvZiBEYXJsYW4gYW5kIFN1dmF5dSBsYXN0IEF1Z3VzdCBJIGNvYmJs ZWQgYSB3b3JrZmxvdwpkZXNjcmliZWQgYmVsb3cuICBFcnJvcnMgYW5kIGluc3RhYmlsaXR5IGlu IHRoZSBlYXJseSB3ZWVrcyBoYXZlIGJlZW4KcmVzb2x2ZWQgaW50byB0aGUgY3VycmVudCBzZXQg b2Ygd29ya2FibGUgYmxlbWlzaGVzIGRlc2NyaWJlZCBiZWxvdyB0aGUKd29ya2Zsb3cuICBUaGUg YXR0YWNobWVudCBpcyBhbiBvcmcgZmlsZSB0aGF0IHNob3VsZCBiZSBhIHdvcmtpbmcgZXhhbXBs ZQppZiBnbnVwbG90IGlzIGluc3RhbGxlZCBhbmQgY29uZmlndXJlZCBmb3Igb3JnLWJhYmVsLgoK VGhhbmsgeW91IENvbGluIGZvciBhc2tpbmcgdGhlIHF1ZXN0aW9uIGFib3V0IHByb2dyZXNzLCBi ZWNhdXNlIEkgc2hvdWxkCmhhdmUgc2hhcmVkIGl0IHdpdGggdGhlIG1haWxpbmcgbGlzdCBsb25n IGFnbyB3YXJ0cyBhbmQgYWxsLgoKCgpUaGlzIGlzIGFuIGV4YW1wbGUgZmlsZSBmb3IgZ2F0aGVy aW5nIGFuZCBwbG90dGluZyBoZWFsdGggZGF0YSAoc29tZSBvZgp3aGljaCBoYXMgYmVlbiBmdWRn ZWQgdG8gcHJvdGVjdCB0aGUgZ3VpbHR5IDstKS4gIFRoZSB3b3JrZmxvdyBpcyB0aGlzOgogMS4g REFJTFk6IFVzZSBjYXB0dXJlIHRlbXBsYXRlcyB0byBxdWVyeSBmb3IgZGF0YSBpbnRvIGEgZGF0 ZXRyZWUgdW5kZXIKICAgIHRoZSBoZWFkaW5nICcyMDExJyB3aGljaCBoYXMgYW4gSUQgcHJvcGVy dHkuICBFYWNoIGRhdGEgaGVhZGxpbmUgaXMKICAgIG1hcmtlZCB3aXRoIHRhZ3MgZm9yIHRoZSBk YXRhIGNsYXNzIChlLmcuIHdlaWdodCwgYmxvb2Qgc3VnYXIpIHRoYXQgaXMKICAgIHVzZWQgYXMg YSBob29rIGZvciBjb2xsZWN0aW9uLgogMi4gT05FLVRJTUU6IERlZmluZSB0aGUgcGxvdHMsIGlu IHRoaXMgY2FzZSB1c2luZyBnbnVwbG90ICh0aGFua3MgdG8KICAgIFN1dmF5dSBmb3IgdGhlIG5v d2ViIGV4YW1wbGUpLCB1bmRlciB0aGUgaGVhZGluZyAnQ2FsY3VsYXRpb24gYW5kCiAgICBWaXN1 YWxpemF0aW9uJy4gIEFub3RoZXIgb25lLXRpbWUgc2V0dXAgaXMgdG8gZGVmaW5lIHByb3B2aWV3 IGJsb2NrcyB0aGF0CiAgICBvcmctY29sbGVjdG9yIHdpbGwgcG9wdWxhdGUgZm9yIGVhY2ggZGF0 YSBjbGFzcyAoZS5nLiB3ZWlnaHQpLiAgQm90aAogICAgdGhlIElEIGFuZCB0YWdzIGFyZSB1c2Vk IHRvIGV4dHJhY3QgdGhlIGluZm9ybWF0aW9uLgogMy4gT05FLVRJTUU6IEFub3RoZXIgb25lLXRp bWUgc2V0dXAgaXMgdG8gZGVmaW5lIHByb3B2aWV3IGJsb2NrcyB0aGF0CiAgICBvcmctY29sbGVj dG9yIHdpbGwgcG9wdWxhdGUgZm9yIGVhY2ggZGF0YSBjbGFzcyAoZS5nLiB3ZWlnaHQpLiAgQm90 aAogICAgdGhlIElEIGFuZCB0YWdzIGFyZSB1c2VkIHRvIGV4dHJhY3QgdGhlIGluZm9ybWF0aW9u IGFuZCB0aGlzIGlzIHVuZGVyCiAgICB0aGUgJ1N1bW1hcmllcycgaGVhZGluZy4KICAgIC0gQSAj K3RibG5hbWUgaXMgcGxhY2VkIGFmdGVyIHRoZSAjK0JFR0lOIHRvIHByb3ZpZGUgYSBob29rIGZv ciB0aGUKICAgICAgYmFiZWwgYmxvY2tzIGZvciBwbG90dGluZy4KIDQuIE9OLURFTUFORDogUmVm cmVzaCBlYWNoIGNvbGxlY3RvciBibG9jayAoaW4gdGhpcyBjYXNlIDQgc2VwYXJhdGUgb25lcyks CiAgICB0aGVuIG9yZy1iYWJlbC1leGVjdXRlLWJ1ZmZlciB0byBnZW5lcmF0ZSB0aGUgcGxvdHMu CgpUaGlzIG1ldGhvZCBoYXMgYmVlbiBtb3N0bHkgd29ya2luZyBidXQgaXQgaGFzIGEgZmV3IHdl YWtuZXNzZXMsIGJvcm5lIG1vc3RseSBmcm9tCm15IGlnbm9yYW5jZS4gSSBoYXZlbid0IHRob3Vn aHQgYWJvdXQgdGhlIHByb2JsZW0gaW4gc2V2ZXJhbCBtb250aHMsIHNvCm1heWJlIHRoZSBhY3Qg b2Ygd3JpdGluZyB0aGUgcXVlc3Rpb25zIHdpbGwgc3B1ciBtZSB0byB0aGUgYWN0IG9mIG1ha2lu ZyBpdApiZXR0ZXIuICBIZXJlIGFyZSBteSBvYnNlcnZhdGlvbnMgYW5kIHF1ZXN0aW9uczogCiAt IEF0IHZhcmlvdXMgdGltZXMgaW4gdGhlIHBhc3QgeWVhciB0aGUgT04tREVNQU5EIHN0ZXAgaGFz IG5vdCB3b3JrZWQKICAgY29uc2lzdGVudGx5LCBlc3BlY2lhbGx5IGluIHJlZ2FyZHMgdG8gdGhl ICMrdGJsbmFtZSB3aXRoaW4gdGhlCiAgIGNvbGxlY3RvciBibG9jay4gIFNvbWV0aW1lcyB0aGUg cmVmcmVzaCB3b3VsZCBmYWlsLCBvZnRlbiBieSB3aXBpbmcgb3V0CiAgIHRoZSBleGlzdGluZyBz dGF0aWMgdmlldyBhbmQgcmVwbGFjaW5nIHdpdGggYW4gZW1wdHkgbGluZSB1bmRlcgogICB0aGUg Iyt0YmxuYW1lLiAgTm8gbWF0dGVyIHdoYXQgaGFwcGVuZWQgaW4gdGhlIHBhc3QsIGl0IGlzIHN0 YWJsZSBlbm91Z2gKICAgZm9yIHRoaXMgcG9zdC4KICAgLSBUaGUgcHJvYmxlbSBjb3VsZCBoYXZl IGJlZW4gb25lIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4gb3JnLWNvbGxlY3RvcgogICAgIG5vdCBs b2FkZWQpIG9yIGRhdGEgKGUuZy4gZXJyb3IgaW4gdGhlIGRhdGUgdHJlZSkgb3Igc29tZXRoaW5n IGVsc2UKICAgICBlbnRpcmVseS4gIEkgaGF2ZSBub3QgZG9uZSBzdWZmaWNpZW50bHkgdGhvcm91 Z2ggdHJvdWJsZXNob290aW5nIHRvCiAgICAgcmVhbGx5IGlkZW50aWZ5IHRoZSBkaWZmZXJlbnQg cHJvYmxlbXMuCiAtIENvbGxlY3Rpb24gaXMgZG9uZSBieSBtYXRjaGluZyB0aGUgdGFncyBpbiB0 aGUgZGF0YSBoZWFkbGluZXMsIGJ1dCB0aGUKICAgc2FtZSB0eXBlIG9mIGluZm9ybWF0aW9uIGNh biBiZSBnbGVhbmVkIGZyb20gdGhlIHByb3BlcnRpZXMgdGhlbXNlbHZlcy4KICAgSG93IGNhbiBh IG1hdGNoIGludm9jYXRpb24gYmUgY3JhZnRlZCB0byB1c2UgdGhlIHByb3BlcnRpZXM/CiAgIC0g VGhpcyB3ZWFrbmVzcyBjb21lcyBzdHJhaWdodCBmcm9tIG15IGlnbm9yYW5jZSBvZiBsaXNwLgog LSBDb2xsZWN0aW9uIGlzIGRvbmUgZm9yIGVhY2ggc2VwYXJhdGUgdGFibGUgd2hpY2ggZG9lcyBu b3Qgc2NhbGUgd2VsbCBhcwogICB0aGUgbnVtYmVyIG9mIHRhYmxlcyBpbmNyZWFzZXMuICBTY2Fs aW5nIGl0c2VsZiBpcyBub3QgdGhlIGlzc3VlIHdpdGgKICAganVzdCA0IHRhYmxlcywgYnV0IGZv cmdldHRpbmcgdG8gdXBkYXRlIGVhY2ggdGFibGUgaXMgYSBzbGlnaHQgcHJvYmxlbS4KICAgLSBJ cyB0aGVyZSBhIHdheSB0byBhdXRvbWF0ZSB0aGUgb3JnLWNvbGxlY3RvciBzdGVwIHNvIHRoYXQg b25lIGFjdGlvbgogICAgIHVwZGF0ZXMgYWxsIHRhYmxlcz8KICAgLSBPZiBjb3Vyc2UsIGZvciB0 aGUgY3VycmVudCBzdG9yeSBhbm90aGVyIHNvbHV0aW9uIHdvdWxkIGJlIHRvIGNyZWF0ZQogICAg IG9uZSBzaW5nbGUgZGF0YSB0YWJsZSB3aXRoIG9yZy1jb2xsZWN0b3IgdGhlbiBtb2RpZnkgdGhl IHBsb3R0aW5nCiAgICAgcm91dGluZXMgdG8gZXh0cmFjdCBvbmx5IHRoZSBuZWNlc3NhcnkgY29s dW1ucy4gIEknZCBsaWtlIHRoZSBhYmlsaXR5CiAgICAgdG8gZG8gbW9ub2xpdGhpYyBvciBzZXBh cmF0ZSB0aGVuIGRlY2lkZSB3aGljaCB0byB1c2UgZm9yIHdoaWNoCiAgICAgcHJvYmxlbXMuIAog LSBUaGUgY2FwdHVyZSB0ZW1wbGF0ZXMgeWllbGQgYmxhbmsgcHJvcGVydGllcyB0aGF0IHNpbXBs eSBjbHV0dGVyIHRoZQogICBkcmF3ZXIgYW5kIG1ha2UgZGF0YSBleHRyYWN0aW9uIGxvZ2ljIHNs aWdodGx5IG1vcmUgY29tcGxpY2F0ZWQgc2luY2UKICAgZXhpc3RlbmNlIGFsb25lIGlzIG5vdCBh IGNvbXBsZXRlIHRlc3QuCiAgIC0gQ2FuIGEgY2FwdHVyZSB0ZW1wbGF0ZSBiZSB3cml0dGVuIHRv IGFzayBhbGwgdGhlIHF1ZXN0aW9ucywgYnV0IG5vdAogICAgIHlpZWxkIGEgcHJvcGVydHkgaWYg dGhlIGFuc3dlciBpcyAnbnVsbCc/CgoKKiBTdW1tYXJpZXMKKiogV2VpZ2h0ICAgCgojK0JFR0lO OiBwcm9wdmlldyAgOmNvbHMgKEFjcVRpbWUgV2VpZ2h0KSA6bWF0Y2ggIldlaWdodCIgOmlkIDgy MTdiYWU0LWUxNWItNGUzYS05YWVmLTBhMzRhYjFiYzRmOQojK3RibG5hbWU6IFdlaWdodE1lYXN1 cmVtZW50cwp8ICJBY3FUaW1lIiAgICAgICAgICAgICAgfCAiV2VpZ2h0IiB8CnwtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLXwKfCBbMjAxMS0wOC0wMSBNb24gMDY6NDBdIHwgICAg MjMyLjMgfAp8IFsyMDExLTA4LTAyIFR1ZSAwNjo1M10gfCAgICAyMzIuNSB8CnwgWzIwMTEtMDgt MDMgV2VkIDA2OjEwXSB8ICAgIDIzMi44IHwKfCBbMjAxMS0wOC0wNCBUaHUgMDU6MzZdIHwgICAg MjMyLjQgfAp8IFsyMDExLTA4LTA1IEZyaSAwNjoyN10gfCAgICAyMzMuOSB8CnwgWzIwMTEtMDgt MDYgU2F0IDA4OjE0XSB8ICAgIDIzMC41IHwKfCBbMjAxMS0wOC0wNyBTdW4gMDc6MDhdIHwgICAg MjMzLjIgfAp8IFsyMDExLTA4LTA4IE1vbiAwNTozOV0gfCAgICAyMzIuNSB8CnwgWzIwMTEtMDgt MDkgVHVlIDA2OjAwXSB8ICAgIDIzNC40IHwKfCBbMjAxMS0wOC0xMCBXZWQgMDQ6MzRdIHwgICAg MjMzLjkgfAp8IFsyMDExLTA4LTExIFRodSAwNjo0NV0gfCAgICAyMzMuNiB8CnwgWzIwMTEtMDgt MjcgU2F0IDA4OjAxXSB8ICAgIDIzMi4wIHwKfCBbMjAxMS0wOC0yOCBTdW4gMDY6NThdIHwgICAg MjMxLjggfAp8IFsyMDExLTA4LTI5IE1vbiAwNTozNV0gfCAgICAyMjkuMiB8CnwgWzIwMTEtMDgt MzAgVHVlIDA1OjU2XSB8ICAgIDIyOC41IHwKfCBbMjAxMS0wOC0zMSBXZWQgMDU6NDJdIHwgICAg MjI5LjUgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS18CnwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgIHwKIytFTkQ6CgoqKiBCbG9vZCBTdWdhcgoKIytCRUdJ TjogcHJvcHZpZXcgIDpjb2xzIChBY3FUaW1lIEJHZmFzdGluZyBCR3ByZXByYW5kaWFsIEJHcG9z dHByYW5kaWFsKSA6bWF0Y2ggIkJsb29kR2x1Y29zZSIgOmlkIDgyMTdiYWU0LWUxNWItNGUzYS05 YWVmLTBhMzRhYjFiYzRmOQojK3RibG5hbWU6IEJsb29kR2x1Y29zZU1lYXN1cmVtZW50cwp8ICJB Y3FUaW1lIiAgICAgICAgICAgICAgfCAiQkdmYXN0aW5nIiB8ICJCR3ByZXByYW5kaWFsIiB8ICJC R3Bvc3RwcmFuZGlhbCIgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tfAp8IFsyMDExLTA4LTAxIE1vbiAw Njo0MF0gfCAgICAgICAgIDE0MSB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAg fAp8IFsyMDExLTA4LTAxIE1vbiAxNjo1MV0gfCAgICAgICAgICAgMCB8ICAgICAgICAgICAgICA4 MiB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTAyIFR1ZSAwNjo1M10gfCAgICAgICAg IDEyMSB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTAy IFR1ZSAxODo0NF0gfCAgICAgICAgICAgMCB8ICAgICAgICAgICAgICA5MiB8ICAgICAgICAgICAg ICAgIDAgfAp8IFsyMDExLTA4LTAyIFR1ZSAyMTozM10gfCAgICAgICAgICAgMCB8ICAgICAgICAg ICAgICAgMCB8ICAgICAgICAgICAgICAyMTQgfAp8IFsyMDExLTA4LTAzIFdlZCAwNjoxMF0gfCAg ICAgICAgIDEyOCB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDEx LTA4LTAzIFdlZCAxOTozM10gfCAgICAgICAgICAgMCB8ICAgICAgICAgICAgIDE1MCB8ICAgICAg ICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTA0IFRodSAwNTozNl0gfCAgICAgICAgIDEyOCB8ICAg ICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTA1IEZyaSAwNjoy N10gfCAgICAgICAgIDEwOSB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8 IFsyMDExLTA4LTA2IFNhdCAwODoxNF0gfCAgICAgICAgIDEyMCB8ICAgICAgICAgICAgICAgMCB8 ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTA3IFN1biAwNzowOF0gfCAgICAgICAgIDEz NCB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTA3IFN1 biAxNjowM10gfCAgICAgICAgICAgMCB8ICAgICAgICAgICAgICA5MSB8ICAgICAgICAgICAgICAg IDAgfAp8IFsyMDExLTA4LTA4IE1vbiAwNTozOV0gfCAgICAgICAgICA4MyB8ICAgICAgICAgICAg ICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTA4IE1vbiAxODozN10gfCAgICAg ICAgICAgMCB8ICAgICAgICAgICAgIDEzOSB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4 LTA5IFR1ZSAwNjowMF0gfCAgICAgICAgIDExNyB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAg ICAgICAgIDAgfAp8IFsyMDExLTA4LTEwIFdlZCAwNDozNF0gfCAgICAgICAgIDEyMiB8ICAgICAg ICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTExIFRodSAwNjo0NV0g fCAgICAgICAgIDEwNSB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsy MDExLTA4LTEzIFNhdCAwODowMF0gfCAgICAgICAgICA5NiB8ICAgICAgICAgICAgICAgMCB8ICAg ICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTE0IFN1biAwODoxMF0gfCAgICAgICAgIDEyOSB8 ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTE1IE1vbiAw Nzo0NV0gfCAgICAgICAgIDEzNSB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAg fAp8IFsyMDExLTA4LTE2IFR1ZSAwODo0MF0gfCAgICAgICAgICA5NyB8ICAgICAgICAgICAgICAg MCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTE3IFdlZCAwODoxMF0gfCAgICAgICAg IDEyNCB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTE4 IFRodSAwODoyMF0gfCAgICAgICAgIDExNCB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAg ICAgIDAgfAp8IFsyMDExLTA4LTIxIFN1biAxMDowNV0gfCAgICAgICAgIDE2NyB8ICAgICAgICAg ICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTIyIE1vbiAwNjoyNV0gfCAg ICAgICAgIDE3MyB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDEx LTA4LTIyIE1vbiAxODo1MF0gfCAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgMCB8ICAgICAg ICAgICAgICAxOTggfAp8IFsyMDExLTA4LTIzIFR1ZSAwNzozMF0gfCAgICAgICAgIDE2MCB8ICAg ICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTI0IFdlZCAwNjoy MF0gfCAgICAgICAgIDE2NCB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8 IFsyMDExLTA4LTI0IFdlZCAyMDoyMF0gfCAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgMCB8 ICAgICAgICAgICAgICAxODEgfAp8IFsyMDExLTA4LTI1IFRodSAxODo1MF0gfCAgICAgICAgICAg MCB8ICAgICAgICAgICAgIDEzMyB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTI2IEZy aSAwNjoyM10gfCAgICAgICAgIDEzMCB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAg IDAgfAp8IFsyMDExLTA4LTI3IFNhdCAwODowMV0gfCAgICAgICAgIDEwNiB8ICAgICAgICAgICAg ICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTI4IFN1biAwNjo1OF0gfCAgICAg ICAgIDExOSB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIiIgfAp8IFsyMDExLTA4 LTI5IE1vbiAwNTozNV0gfCAgICAgICAgIDE3MyB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAg ICAgICAgIDAgfAp8IFsyMDExLTA4LTMwIFR1ZSAwNTo1Nl0gfCAgICAgICAgIDE2MSB8ICAgICAg ICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTMxIFdlZCAwNTo0Ml0g fCAgICAgICAgIDE0OSB8ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgIDAgfAp8IFsy MDExLTA4LTMxIFdlZCAxNTo1MV0gfCAgICAgICAgICAgMCB8ICAgICAgICAgICAgIDE1OSB8ICAg ICAgICAgICAgICAgIDAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tfAp8ICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg fAojK0VORDoKCioqIEJsb29kIFByZXNzdXJlCgojK0JFR0lOOiBwcm9wdmlldyA6Y29scyAoQWNx VGltZSBCUFN5c3RvbGljIEJQRGlhc3RvbGljKSA6bWF0Y2ggIkJsb29kUHJlc3N1cmUiIDppZCA4 MjE3YmFlNC1lMTViLTRlM2EtOWFlZi0wYTM0YWIxYmM0ZjkKIyt0YmxuYW1lOiBCbG9vZFByZXNz dXJlTWVhc3VybWVudHMKfCAiQWNxVGltZSIgICAgICAgICAgICAgIHwgIkJQU3lzdG9saWMiIHwg IkJQRGlhc3RvbGljIiB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tfAp8IFsyMDExLTA4LTAxIE1vbiAwNjo0MF0gfCAgICAgICAgICAxNDAg fCAgICAgICAgICAgIDkwIHwKfCBbMjAxMS0wOC0wMiBUdWUgMDY6NTNdIHwgICAgICAgICAgMTM1 IHwgICAgICAgICAgICA5MCB8CnwgWzIwMTEtMDgtMDMgV2VkIDA2OjEwXSB8ICAgICAgICAgIDEz NSB8ICAgICAgICAgICAgOTAgfAp8IFsyMDExLTA4LTA0IFRodSAwNTozNl0gfCAgICAgICAgICAx NDAgfCAgICAgICAgICAgIDkwIHwKfCBbMjAxMS0wOC0wNSBGcmkgMDY6MjddIHwgICAgICAgICAg ICAwIHwgICAgICAgICAgICAgMCB8CnwgWzIwMTEtMDgtMDYgU2F0IDA4OjE0XSB8ICAgICAgICAg ICAgMCB8ICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTA3IFN1biAwNzowOF0gfCAgICAgICAg ICAxMzAgfCAgICAgICAgICAgIDkwIHwKfCBbMjAxMS0wOC0wOCBNb24gMDU6MzldIHwgICAgICAg ICAgMTMwIHwgICAgICAgICAgICA4NSB8CnwgWzIwMTEtMDgtMDkgVHVlIDA2OjAwXSB8ICAgICAg ICAgICAiIiB8ICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTEwIFdlZCAwNDozNF0gfCAgICAg ICAgICAxNDAgfCAgICAgICAgICAgIDkwIHwKfCBbMjAxMS0wOC0xMSBUaHUgMDY6NDVdIHwgICAg ICAgICAgICAwIHwgICAgICAgICAgICAgMCB8CnwgWzIwMTEtMDgtMjcgU2F0IDA4OjAxXSB8ICAg ICAgICAgICAgMCB8ICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTI4IFN1biAwNjo1OF0gfCAg ICAgICAgICAxNDAgfCAgICAgICAgICAgIDg1IHwKfCBbMjAxMS0wOC0yOSBNb24gMDU6MzVdIHwg ICAgICAgICAgICAwIHwgICAgICAgICAgICAgMCB8CnwgWzIwMTEtMDgtMzAgVHVlIDA1OjU2XSB8 ICAgICAgICAgICAgMCB8ICAgICAgICAgICAgIDAgfAp8IFsyMDExLTA4LTMxIFdlZCAwNTo0Ml0g fCAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAwIHwKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS18CnwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfAojK0VORDoKCioqIEV4ZXJjaXNlCgoj K0JFR0lOOiBwcm9wdmlldyAgOmNvbHMgKEFjcVRpbWUgSVRFTSBEdXJhdGlvbiBEaXN0YW5jZSBD YWxvcmllcyBIUmF2ZykgOm1hdGNoICJFeGVyY2lzZSIgOmlkIDgyMTdiYWU0LWUxNWItNGUzYS05 YWVmLTBhMzRhYjFiYzRmOQojK3RibG5hbWU6IEV4ZXJjaXNlTWVhc3VybWVudHMKfCAiQWNxVGlt ZSIgICAgICAgICAgICAgIHwgIklURU0iIHwgIkR1cmF0aW9uIiB8ICJEaXN0YW5jZSIgfCAiQ2Fs b3JpZXMiIHwgIkhSYXZnIiB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tfAp8IFsyMDExLTA4 LTAxIE1vbiAxOTo0M10gfCAiQmlrZSIgfCAiMDA6NDU6NTciIHwgICAgICAgNi4xMSB8ICAgICAg ICA0MDQgfCAgICAgMTI3IHwKfCBbMjAxMS0wOC0wMyBXZWQgMjE6MDBdIHwgIkJpa2UiIHwgIjE6 MDY6MDEiICB8ICAgICAgMTEuMjcgfCAgICAgICAgNzc2IHwgICAgIDE0OSB8CnwgWzIwMTEtMDgt MDcgU3VuIDE5OjM1XSB8ICJCaWtlIiB8ICIwMDozNzowNCIgfCAgICAgICA2LjMzIHwgICAgICAg IDQzMCB8ICAgICAxNDUgfAp8IFsyMDExLTA4LTA3IFN1biAxOTozOV0gfCAiSm9nIiAgfCAiMDA6 MTk6MjAiIHwgICAgICAgIDEuMiB8ICAgICAgICAyNTAgfCAgICAgMTU4IHwKfCBbMjAxMS0wOC0y NSBUaHUgMjA6MjRdIHwgIkJpa2UiIHwgIjAwOjMyOjQwIiB8ICAgICAgIDYuMDcgfCAgICAgICAg Mzg4IHwgICAgIDE0OCB8CnwgWzIwMTEtMDgtMjYgRnJpIDA2OjMyXSB8ICJKb2ciICB8ICIwMDoy MDoxMSIgfCAgICAgICAgMS4yIHwgICAgICAgIDI2NyB8ICAgICAxNjAgfAp8LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLXwKfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICB8CiMrRU5EOgoKKiBDYWxj dWxhdGlvbiBhbmQgVmlzdWFsaXphdGlvbgogICMrQkFCRUw6IDpub3dlYiB5ZXMgOnJlc3VsdHMg c2lsZW50CiAgIytzcmNuYW1lOiBnbnVwbG90LXByZWFtYmxlCiMrYmVnaW5fc3JjIGdudXBsb3QK ICByZXNldAogIHNldCBncmlkIGJhY2sKICBzZXQgc3R5bGUgbGluZSAxIGxpbmV3aWR0aCAyIGxp bmVjb2xvciByZ2IgJ2ZvcmVzdC1ncmVlbicKICBzZXQgc3R5bGUgbGluZSAyIGxpbmV3aWR0aCAy IGxpbmVjb2xvciByZ2IgJ3JlZCcKICBzZXQgeGxhYmVsICdEYXRlJwogIHNldCB4ZGF0YSB0aW1l CiAgc2V0IHRpbWVmbXQgIiVZLSVtLSVkICVIOiVNOiVTIgogIHNldCBmb3JtYXQgeCAiJW0tJWQi CiMrZW5kX3NyYwoKIytyZXN1bHRzOiBnbnVwbG90LXByZWFtYmxlCgojK2JlZ2luX3NyYyBnbnVw bG90IDp2YXIgZGF0YT1XZWlnaHRNZWFzdXJlbWVudHMgOmZpbGUgSGVhbHRoLVdlaWdodC5wbmcK ICByZXNldAogIHNldCBncmlkIGJhY2sKICBzZXQgc3R5bGUgbGluZSAxIGxpbmV3aWR0aCAyIGxp bmVjb2xvciByZ2IgJ2ZvcmVzdC1ncmVlbicKICBzZXQgc3R5bGUgbGluZSAyIGxpbmV3aWR0aCAy IGxpbmVjb2xvciByZ2IgJ3JlZCcKICBzZXQgeGxhYmVsICdEYXRlJwogIHNldCB4ZGF0YSB0aW1l CiAgc2V0IHRpbWVmbXQgIiVZLSVtLSVkICVIOiVNOiVTIgogIHNldCBmb3JtYXQgeCAiJW0tJWQi CiAgc2V0IHh0aWNzIHJvdGF0ZSByaWdodAogIHNldCB5bGFiZWwgJ1dlaWdodCAocG91bmRzKScK ICBzZXQgdGl0bGUgJ1dlaWdodCBoaXN0b3J5JwogIHNldCBvdXRwdXQgIkhlYWx0aC1XZWlnaHQu cG5nIgogIHBsb3QgIiRkYXRhIiB1c2luZyAxOjIgd2l0aCBsaW5lc3BvaW50cyBsaW5lc3R5bGUg MSB0aXRsZSAnTW9ybmluZyB3ZWlnaHQnCiAgc2V0IG91dHB1dAojK2VuZF9zcmMKCiMrcmVzdWx0 czoKW1tmaWxlOkhlYWx0aC1XZWlnaHQucG5nXV0KCgojK2JlZ2luX3NyYyBnbnVwbG90IDp2YXIg ZGF0YT1CbG9vZEdsdWNvc2VNZWFzdXJlbWVudHMgOmZpbGUgSGVhbHRoLUJsb29kU3VnYXIucG5n CiAgcmVzZXQKICBzZXQgZ3JpZCBiYWNrCiAgc2V0IHN0eWxlIGxpbmUgMSBsaW5ld2lkdGggMiBs aW5lY29sb3IgcmdiICdmb3Jlc3QtZ3JlZW4nCiAgc2V0IHN0eWxlIGxpbmUgMiBsaW5ld2lkdGgg MiBsaW5lY29sb3IgcmdiICdyZWQnCiAgc2V0IHhsYWJlbCAnRGF0ZScKICBzZXQgeGRhdGEgdGlt ZQogIHNldCB0aW1lZm10ICIlWS0lbS0lZCAlSDolTTolUyIKICBzZXQgZm9ybWF0IHggIiVtLSVk IgogICAgc2V0IHh0aWNzIHJvdGF0ZSByaWdodAogICAgc2V0IHlsYWJlbCAnQmxvb2QgZ2x1Y29z ZSAobWcvZEwpJwogICAgc2V0IHRpdGxlICdCbG9vZCBnbHVjb3NlIGhpc3RvcnknCiAgICBzZXQg b3V0cHV0ICJIZWFsdGgtQmxvb2RTdWdhci5wbmciCiAgICBzZXQgZGF0YWZpbGUgbWlzc2luZyAn MCcgCiAgICBzZXQgeXJhbmdlIFs3MDoyNTBdCiAgICBwbG90ICIkZGF0YSIgdXNpbmcgMToyIFwK ICAgICAgICAgd2l0aCBsaW5lc3BvaW50cyBsaW5lc3R5bGUgMSB0aXRsZSAnRmFzdGluZycsIFwK ICAgICAgICAgIiRkYXRhIiB1c2luZyAxOjMgXAogICAgICAgICB3aXRoIHBvaW50cyBsaW5lc3R5 bGUgMiB0aXRsZSAnUHJlcHJhbmRpYWwnLCBcCiAgICAgICAgICIkZGF0YSIgdXNpbmcgMTo0IFwK ICAgICAgICAgd2l0aCBwb2ludHMgbGluZXN0eWxlIDMgdGl0bGUgJ1Bvc3RwcmFuZGlhbCcKICAg IHNldCBvdXRwdXQKIytlbmRfc3JjCgojK3Jlc3VsdHM6CltbZmlsZTpIZWFsdGgtQmxvb2RTdWdh ci5wbmddXQoKCiogQ2FwdHVyZSBibG9ja3MgZm9yIHRoZSBleGFtcGxlCiAgIytiZWdpbl9zcmMg ZW1hY3MtbGlzcAogICAgKCJoIiAiSGVhbHRoIHRlbXBsYXRlcyIpCiAgICAoImhtIiAiTWVhc3Vy ZW1lbnRzIiBlbnRyeSAoZmlsZStkYXRldHJlZSAifi9vcmcvMjAxMkhlYWx0aC5vcmciKQogICAg ICIqIEhlYWx0aCBtZWFzdXJlbWVudCA6V2VpZ2h0OkJsb29kR2x1Y29zZTpCbG9vZFByZXNzdXJl OlxuOlBST1BFUlRJRVM6XG46QWNxVGltZTogJVVcbjpFTkQ6XG4lPyVee1dlaWdodH1wXG4lXntC R2Zhc3Rpbmd9cFxuJV57QkdwcmVwcmFuZGlhbH1wJV57Qkdwb3N0cHJhbmRpYWx9cFxuJV57QlBT eXN0b2xpY31wXG4lXntCUERpYXN0b2xpY31wXG4iKQogICAgKCJoZyIgIkJsb29kR2x1Y29zZSIg ZW50cnkgKGZpbGUrZGF0ZXRyZWUgIn4vb3JnLzIwMTJIZWFsdGgub3JnIikKICAgICAiKiBCbG9v ZCBnbHVjb3NlIG1lYXN1cmVtZW50IDpCbG9vZEdsdWNvc2U6XG46UFJPUEVSVElFUzpcbjpBY3FU aW1lOiAlVVxuOkVORDolXntCR2Zhc3Rpbmd9cFxuJV57QkdwcmVwcmFuZGlhbH1wJV57Qkdwb3N0 cHJhbmRpYWx9cCIpCiAgICAoImh3IiAiV2VpZ2h0IiBlbnRyeSAoZmlsZStkYXRldHJlZSAifi9v cmcvMjAxMkhlYWx0aC5vcmciKQogICAgICIqIFdlaWdodCBtZWFzdXJlbWVudCA6V2VpZ2h0Olxu OlBST1BFUlRJRVM6XG46QWNxVGltZTogJVVcbjpFTkQ6JV57V2VpZ2h0fXAiKQogICAgKCJoYiIg IkJsb29kUHJlc3N1cmUiIGVudHJ5IChmaWxlK2RhdGV0cmVlICJ+L29yZy8yMDEySGVhbHRoLm9y ZyIpCiAgICAgIiogQmxvb2QgcHJlc3N1cmUgbWVhc3VyZW1lbnQgOkJsb29kUHJlc3N1cmU6XG46 UFJPUEVSVElFUzpcbjpBY3FUaW1lOiAlVVxuOkVORDolXntCUFN5c3RvbGljfXBcbiVee0JQRGlh c3RvbGljfXAiKQogICAgKCJlIiAiRXhlcmNpc2UiIGVudHJ5IChmaWxlK2RhdGV0cmVlICJ+L29y Zy8yMDEySGVhbHRoLm9yZyIpCiAgICAgIiogJV57QWN0aXZpdHl9IDpFeGVyY2lzZTpcbjpQUk9Q RVJUSUVTOlxuOkFjcVRpbWU6ICVVXG46RU5EOiVee0R1cmF0aW9ufXBcbiVee0Rpc3RhbmNlfXBc biVee0NhbG9yaWVzfXBcbiVee0hSYXZnfXBcbiIpCiAgIytlbmRfc3JjCiogMjAxMQogIDpQUk9Q RVJUSUVTOgogIDpDT0xVTU5TOiAgJTIwSVRFTShUaW1lKSAlNldlaWdodChXdCkgJTRCR2Zhc3Rp bmcoQkdmYSkgJTRCR3ByZXByYW5kaWFsKEJHcHIpICU0Qkdwb3N0cHJhbmRpYWwoQkdwbykgJTRC UFN5c3RvbGljKFN5cykgJTRCUERpYXN0b2xpYyhEaWEpIAogIDpJRDogICAgICAgODIxN2JhZTQt ZTE1Yi00ZTNhLTlhZWYtMGEzNGFiMWJjNGY5CiAgOkVORDoKKiogMjAxMS0wOCBBdWd1c3QKKioq IDIwMTEtMDgtMDEgTW9uZGF5CioqKiogSGVhbHRoIG1lYXN1cmVtZW50cyA6V2VpZ2h0OkJsb29k R2x1Y29zZTpCbG9vZFByZXNzdXJlOgogICAgIDpQUk9QRVJUSUVTOgogICAgIDpBY3FUaW1lOiBb MjAxMS0wOC0wMSBNb24gMDY6NDBdCiAgICAgOldlaWdodDogICAyMzIuMwogICAgIDpCR2Zhc3Rp bmc6IDE0MQogICAgIDpCUFN5c3RvbGljOiAxNDAKICAgICA6QlBEaWFzdG9saWM6IDkwCiAgICAg OkVORDoKKioqKiBCbG9vZCBnbHVjb3NlIG1lYXN1cmVtZW50IDpCbG9vZEdsdWNvc2U6CiAgICAg OlBST1BFUlRJRVM6CiAgICAgOkFjcVRpbWU6IFsyMDExLTA4LTAxIE1vbiAxNjo1MV0KICAgICA6 QkdwcmVwcmFuZGlhbDogODIKICAgICA6RU5EOgoqKioqIEJpa2UgOkV4ZXJjaXNlOgogICAgIDpQ Uk9QRVJUSUVTOgogICAgIDpBY3FUaW1lOiBbMjAxMS0wOC0wMSBNb24gMTk6NDNdCiAgICAgOkR1 cmF0aW9uOiAwMDo0NTo1NwogICAgIDpEaXN0YW5jZTogNi4xMQogICAgIDpDYWxvcmllczogNDA0 CiAgICAgOkhSYXZnOiAgICAxMjcKICAgICA6RU5EOgoqKiogMjAxMS0wOC0wMiBUdWVzZGF5Cioq KiogSGVhbHRoIG1lYXN1cmVtZW50cyA6V2VpZ2h0OkJsb29kR2x1Y29zZTpCbG9vZFByZXNzdXJl OgogICAgIDpQUk9QRVJUSUVTOgogICAgIDpBY3FUaW1lOiBbMjAxMS0wOC0wMiBUdWUgMDY6NTNd CiAgICAgOldlaWdodDogICAyMzIuNQogICAgIDpCR2Zhc3Rpbmc6IDEyMQogICAgIDpCUFN5c3Rv bGljOiAxMzUKICAgICA6QlBEaWFzdG9saWM6IDkwCiAgICAgOkVORDoKKioqKiBCbG9vZCBnbHVj b3NlIG1lYXN1cmVtZW50IDpCbG9vZEdsdWNvc2U6CiAgICAgOlBST1BFUlRJRVM6CiAgICAgOkFj cVRpbWU6IFsyMDExLTA4LTAyIFR1ZSAxODo0NF0KICAgICA6QkdwcmVwcmFuZGlhbDogOTIKICAg ICA6RU5EOgoqKioqIEJsb29kIGdsdWNvc2UgbWVhc3VyZW1lbnQgOkJsb29kR2x1Y29zZToKICAg ICA6UFJPUEVSVElFUzoKICAgICA6QWNxVGltZTogWzIwMTEtMDgtMDIgVHVlIDIxOjMzXQogICAg IDpCR3Bvc3RwcmFuZGlhbDogMjE0CiAgICAgOkVORDoKCioqKiAyMDExLTA4LTAzIFdlZG5lc2Rh eQoqKioqIEhlYWx0aCBtZWFzdXJlbWVudHMgOldlaWdodDpCbG9vZEdsdWNvc2U6Qmxvb2RQcmVz c3VyZToKICAgICA6UFJPUEVSVElFUzoKICAgICA6QWNxVGltZTogIFsyMDExLTA4LTAzIFdlZCAw NjoxMF0KICAgICA6V2VpZ2h0OiAgIDIzMi44CiAgICAgOkJHZmFzdGluZzogMTI4CiAgICAgOkJQ U3lzdG9saWM6IDEzNQogICAgIDpCUERpYXN0b2xpYzogOTAKICAgICA6RU5EOgoqKioqIEJsb29k IGdsdWNvc2UgbWVhc3VyZW1lbnQgOkJsb29kR2x1Y29zZToKICAgICA6UFJPUEVSVElFUzoKICAg ICA6QWNxVGltZTogWzIwMTEtMDgtMDMgV2VkIDE5OjMzXQogICAgIDpCR3ByZXByYW5kaWFsOiAx NTAKICAgICA6RU5EOgoqKioqIEJpa2UgOkV4ZXJjaXNlOgogICAgIDpQUk9QRVJUSUVTOgogICAg IDpBY3FUaW1lOiBbMjAxMS0wOC0wMyBXZWQgMjE6MDBdCiAgICAgOkR1cmF0aW9uOiAxOjA2OjAx CiAgICAgOkRpc3RhbmNlOiAxMS4yNwogICAgIDpDYWxvcmllczogNzc2CiAgICAgOkhSYXZnOiAg ICAxNDkKICAgICA6RU5EOgoqKiogMjAxMS0wOC0wNCBUaHVyc2RheQoqKioqIEhlYWx0aCBtZWFz dXJlbWVudHMgOldlaWdodDpCbG9vZEdsdWNvc2U6Qmxvb2RQcmVzc3VyZToKICAgICA6UFJPUEVS VElFUzoKICAgICA6QWNxVGltZTogWzIwMTEtMDgtMDQgVGh1IDA1OjM2XQogICAgIDpXZWlnaHQ6 ICAgMjMyLjQKICAgICA6QkdmYXN0aW5nOiAxMjgKICAgICA6QlBTeXN0b2xpYzogMTQwCiAgICAg OkJQRGlhc3RvbGljOiA5MAogICAgIDpFTkQ6CioqKiAyMDExLTA4LTA1IEZyaWRheQoqKioqIEhl YWx0aCBtZWFzdXJlbWVudHMgOldlaWdodDpCbG9vZEdsdWNvc2U6Qmxvb2RQcmVzc3VyZToKICAg ICA6UFJPUEVSVElFUzoKICAgICA6QWNxVGltZTogIFsyMDExLTA4LTA1IEZyaSAwNjoyN10KICAg ICA6V2VpZ2h0OiAgIDIzMy45CiAgICAgOkJHZmFzdGluZzogMTA5CiAgICAgOkVORDoKKioqIDIw MTEtMDgtMDYgU2F0dXJkYXkKKioqKiBIZWFsdGggbWVhc3VyZW1lbnRzIDpXZWlnaHQ6Qmxvb2RH bHVjb3NlOkJsb29kUHJlc3N1cmU6CiAgICAgOlBST1BFUlRJRVM6CiAgICAgOkFjcVRpbWU6IFsy MDExLTA4LTA2IFNhdCAwODoxNF0KICAgICA6V2VpZ2h0OiAgIDIzMC41CiAgICAgOkJHZmFzdGlu ZzogMTIwCiAgICAgOkVORDoKKioqIDIwMTEtMDgtMDcgU3VuZGF5CioqKiogSGVhbHRoIG1lYXN1 cmVtZW50IDpXZWlnaHQ6Qmxvb2RHbHVjb3NlOkJsb29kUHJlc3N1cmU6CjpQUk9QRVJUSUVTOgo6 QWNxVGltZTogWzIwMTEtMDgtMDcgU3VuIDA3OjA4XQo6V2VpZ2h0OiAyMzMuMgo6QkdmYXN0aW5n OiAxMzQKOkJQU3lzdG9saWM6IDEzMAo6QlBEaWFzdG9saWM6IDkwCjpFTkQ6CioqKiogQmxvb2Qg Z2x1Y29zZSBtZWFzdXJlbWVudCA6Qmxvb2RHbHVjb3NlOgo6UFJPUEVSVElFUzoKOkFjcVRpbWU6 IFsyMDExLTA4LTA3IFN1biAxNjowM10KOkJHcHJlcHJhbmRpYWw6IDkxCjpFTkQ6CioqKiogQmlr ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6RXhlcmNpc2U6CjpQUk9QRVJUSUVTOgo6QWNxVGltZTogWzIwMTEtMDgtMDcgU3VuIDE5OjM1 XQo6RHVyYXRpb246IDAwOjM3OjA0CjpEaXN0YW5jZTogNi4zMwo6Q2Fsb3JpZXM6IDQzMAo6SFJh dmc6IDE0NQo6RU5EOgoqKioqIEpvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOkV4ZXJjaXNlOgo6UFJPUEVSVElFUzoKOkFjcVRpbWU6 IFsyMDExLTA4LTA3IFN1biAxOTozOV0KOkR1cmF0aW9uOiAwMDoxOToyMAo6RGlzdGFuY2U6IDEu Mgo6Q2Fsb3JpZXM6IDI1MAo6SFJhdmc6IDE1OAo6RU5EOgoqKiogMjAxMS0wOC0wOCBNb25kYXkK KioqKiBIZWFsdGggbWVhc3VyZW1lbnQgICAgICAgICAgICAgICAgICAgOldlaWdodDpCbG9vZEds dWNvc2U6Qmxvb2RQcmVzc3VyZToKOlBST1BFUlRJRVM6CjpBY3FUaW1lOiBbMjAxMS0wOC0wOCBN b24gMDU6MzldCjpXZWlnaHQ6IDIzMi41CjpCR2Zhc3Rpbmc6IDgzCjpCUFN5c3RvbGljOiAxMzAK OkJQRGlhc3RvbGljOiA4NQo6RU5EOgoqKioqIEJsb29kIGdsdWNvc2UgbWVhc3VyZW1lbnQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Qmxvb2RHbHVjb3NlOgo6UFJPUEVSVElFUzoK OkFjcVRpbWU6IFsyMDExLTA4LTA4IE1vbiAxODozN10KOkJHcHJlcHJhbmRpYWw6IDEzOQo6RU5E OgoqKiogMjAxMS0wOC0wOSBUdWVzZGF5CioqKiogSGVhbHRoIG1lYXN1cmVtZW50ICAgICAgICAg ICAgICAgICAgIDpXZWlnaHQ6Qmxvb2RHbHVjb3NlOkJsb29kUHJlc3N1cmU6CjpQUk9QRVJUSUVT Ogo6QWNxVGltZTogWzIwMTEtMDgtMDkgVHVlIDA2OjAwXQo6V2VpZ2h0OiAyMzQuNAo6QkdmYXN0 aW5nOiAxMTcKOkJQU3lzdG9saWM6CjpFTkQ6CioqKiAyMDExLTA4LTEwIFdlZG5lc2RheQoqKioq IEhlYWx0aCBtZWFzdXJlbWVudCAgICAgICAgICAgICAgICAgICA6V2VpZ2h0OkJsb29kR2x1Y29z ZTpCbG9vZFByZXNzdXJlOgo6UFJPUEVSVElFUzoKOkFjcVRpbWU6IFsyMDExLTA4LTEwIFdlZCAw NDozNF0KOldlaWdodDogMjMzLjkKOkJHZmFzdGluZzogMTIyCjpCUFN5c3RvbGljOiAxNDAKOkJQ RGlhc3RvbGljOiA5MAo6RU5EOgoqKiogMjAxMS0wOC0xMSBUaHVyc2RheQoqKioqIEhlYWx0aCBt ZWFzdXJlbWVudCAgICAgICAgICAgICAgICAgICA6V2VpZ2h0OkJsb29kR2x1Y29zZTpCbG9vZFBy ZXNzdXJlOgo6UFJPUEVSVElFUzoKOkFjcVRpbWU6IFsyMDExLTA4LTExIFRodSAwNjo0NV0KOldl aWdodDogMjMzLjYKOkJHZmFzdGluZzogMTA1CjpFTkQ6CioqKiAyMDExLTA4LTEzIFNhdHVyZGF5 CioqKiogQmxvb2QgZ2x1Y29zZSBtZWFzdXJlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDpCbG9vZEdsdWNvc2U6CjpQUk9QRVJUSUVTOgo6QWNxVGltZTogWzIwMTEtMDgtMTMg U2F0IDA4OjAwXQo6QkdmYXN0aW5nOiA5Ngo6RU5EOgoqKiogMjAxMS0wOC0xNCBTdW5kYXkKKioq KiBCbG9vZCBnbHVjb3NlIG1lYXN1cmVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOkJsb29kR2x1Y29zZToKOlBST1BFUlRJRVM6CjpBY3FUaW1lOiBbMjAxMS0wOC0xNCBTdW4g MDg6MTBdCjpCR2Zhc3Rpbmc6IDEyOQo6RU5EOgoqKiogMjAxMS0wOC0xNSBNb25kYXkKKioqKiBC bG9vZCBnbHVjb3NlIG1lYXN1cmVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OkJsb29kR2x1Y29zZToKOlBST1BFUlRJRVM6CjpBY3FUaW1lOiBbMjAxMS0wOC0xNSBNb24gMDc6 NDVdCjpCR2Zhc3Rpbmc6IDEzNQo6RU5EOgoqKiogMjAxMS0wOC0xNiBUdWVzZGF5CioqKiogQmxv b2QgZ2x1Y29zZSBtZWFzdXJlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpC bG9vZEdsdWNvc2U6CjpQUk9QRVJUSUVTOgo6QWNxVGltZTogWzIwMTEtMDgtMTYgVHVlIDA4OjQw XQo6QkdmYXN0aW5nOiA5Nwo6RU5EOgoqKiogMjAxMS0wOC0xNyBXZWRuZXNkYXkKKioqKiBCbG9v ZCBnbHVjb3NlIG1lYXN1cmVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOkJs b29kR2x1Y29zZToKOlBST1BFUlRJRVM6CjpBY3FUaW1lOiBbMjAxMS0wOC0xNyBXZWQgMDg6MTBd CjpCR2Zhc3Rpbmc6IDEyNAo6RU5EOgoqKiogMjAxMS0wOC0xOCBUaHVyc2RheQoqKioqIEJsb29k IGdsdWNvc2UgbWVhc3VyZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Qmxv b2RHbHVjb3NlOgo6UFJPUEVSVElFUzoKOkFjcVRpbWU6IFsyMDExLTA4LTE4IFRodSAwODoyMF0K OkJHZmFzdGluZzogMTE0CjpFTkQ6CioqKiAyMDExLTA4LTIxIFN1bmRheQoqKioqIEJsb29kIGds dWNvc2UgbWVhc3VyZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Qmxvb2RH bHVjb3NlOgo6UFJPUEVSVElFUzoKOkFjcVRpbWU6IFsyMDExLTA4LTIxIFN1biAxMDowNV0KOkJH ZmFzdGluZzogMTY3CjpFTkQ6CioqKiAyMDExLTA4LTIyIE1vbmRheQoqKioqIEJsb29kIGdsdWNv c2UgbWVhc3VyZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Qmxvb2RHbHVj b3NlOgo6UFJPUEVSVElFUzoKOkFjcVRpbWU6IFsyMDExLTA4LTIyIE1vbiAwNjoyNV0KOkJHZmFz dGluZzogMTczCjpFTkQ6CioqKiAyMDExLTA4LTIyIE1vbmRheQoqKioqIEJsb29kIGdsdWNvc2Ug bWVhc3VyZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Qmxvb2RHbHVjb3Nl Ogo6UFJPUEVSVElFUzoKOkFjcVRpbWU6IFsyMDExLTA4LTIyIE1vbiAxODo1MF0KOkJHcG9zdHBy YW5kaWFsOiAxOTgKOkVORDoKKioqIDIwMTEtMDgtMjMgVHVlc2RheQoqKioqIEJsb29kIGdsdWNv c2UgbWVhc3VyZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Qmxvb2RHbHVj b3NlOgo6UFJPUEVSVElFUzoKOkFjcVRpbWU6IFsyMDExLTA4LTIzIFR1ZSAwNzozMF0KOkJHZmFz dGluZzogMTYwCjpFTkQ6CioqKiAyMDExLTA4LTI0IFdlZG5lc2RheQoqKioqIEJsb29kIGdsdWNv c2UgbWVhc3VyZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Qmxvb2RHbHVj b3NlOgo6UFJPUEVSVElFUzoKOkFjcVRpbWU6IFsyMDExLTA4LTI0IFdlZCAwNjoyMF0KOkJHZmFz dGluZzogMTY0CjpFTkQ6CioqKiAyMDExLTA4LTI0IFdlZG5lc2RheQoqKioqIEJsb29kIGdsdWNv c2UgbWVhc3VyZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Qmxvb2RHbHVj b3NlOgo6UFJPUEVSVElFUzoKOkFjcVRpbWU6IFsyMDExLTA4LTI0IFdlZCAyMDoyMF0KOkJHcG9z dHByYW5kaWFsOiAxODEKOkVORDoKKioqIDIwMTEtMDgtMjUgVGh1cnNkYXkKKioqKiBCbG9vZCBn bHVjb3NlIG1lYXN1cmVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOkJsb29k R2x1Y29zZToKOlBST1BFUlRJRVM6CjpBY3FUaW1lOiBbMjAxMS0wOC0yNSBUaHUgMTg6NTBdCjpC R3ByZXByYW5kaWFsOiAxMzMKOkVORDoKKioqKiBCaWtlICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpFeGVyY2lzZToKOlBST1BFUlRJRVM6 CjpBY3FUaW1lOiBbMjAxMS0wOC0yNSBUaHUgMjA6MjRdCjpEdXJhdGlvbjogMDA6MzI6NDAKOkRp c3RhbmNlOiA2LjA3CjpDYWxvcmllczogMzg4CjpIUmF2ZzogMTQ4CjpFTkQ6CioqKiogSm9nICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6 RXhlcmNpc2U6CjpQUk9QRVJUSUVTOgo6QWNxVGltZTogWzIwMTEtMDgtMjYgRnJpIDA2OjMyXQo6 RHVyYXRpb246IDAwOjIwOjExCjpEaXN0YW5jZTogMS4yCjpDYWxvcmllczogMjY3CjpIUmF2Zzog MTYwCjpFTkQ6CgpJIGRpZCBhIGNvbnRpbnVvdXMgMTAgbWludXRlcyBqb2cgYXQgdGhlIGJlZ2lu bmluZy4gIE1vc3Qgb2YgdGhlIHJlbWFpbmRlcgp3YXMgd2Fsa2luZywgZXhjZXB0IGZvciBhbm90 aGVyIDEgbWludXRlIGpvZyBpbiB0aGUgbWlkZGxlLiAKCioqKiAyMDExLTA4LTI2IEZyaWRheQoq KioqIEJsb29kIGdsdWNvc2UgbWVhc3VyZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6Qmxvb2RHbHVjb3NlOgo6UFJPUEVSVElFUzoKOkFjcVRpbWU6IFsyMDExLTA4LTI2IEZy aSAwNjoyM10KOkJHZmFzdGluZzogMTMwCjpFTkQ6CioqKiAyMDExLTA4LTI3IFNhdHVyZGF5Cioq KiogSGVhbHRoIG1lYXN1cmVtZW50ICAgICAgICAgICAgICAgICAgIDpXZWlnaHQ6Qmxvb2RHbHVj b3NlOkJsb29kUHJlc3N1cmU6CjpQUk9QRVJUSUVTOgo6QWNxVGltZTogWzIwMTEtMDgtMjcgU2F0 IDA4OjAxXQo6V2VpZ2h0OiAyMzIuMAo6QkdmYXN0aW5nOiAxMDYKOkVORDoKKioqIDIwMTEtMDgt MjggU3VuZGF5CioqKiogSGVhbHRoIG1lYXN1cmVtZW50ICAgICAgICAgICAgICAgICAgIDpXZWln aHQ6Qmxvb2RHbHVjb3NlOkJsb29kUHJlc3N1cmU6CjpQUk9QRVJUSUVTOgo6QWNxVGltZTogWzIw MTEtMDgtMjggU3VuIDA2OjU4XQo6V2VpZ2h0OiAyMzEuOAo6QkdmYXN0aW5nOiAxMTkKOkJHcG9z dHByYW5kaWFsOiAKOkJQU3lzdG9saWM6IDE0MAo6QlBEaWFzdG9saWM6IDg1CjpFTkQ6CioqKiAy MDExLTA4LTI5IE1vbmRheQoqKioqIEhlYWx0aCBtZWFzdXJlbWVudCAgICAgICAgICAgICAgICAg ICA6V2VpZ2h0OkJsb29kR2x1Y29zZTpCbG9vZFByZXNzdXJlOgo6UFJPUEVSVElFUzoKOkFjcVRp bWU6IFsyMDExLTA4LTI5IE1vbiAwNTozNV0KOldlaWdodDogMjI5LjIKOkJHZmFzdGluZzogMTcz CjpFTkQ6CioqKiAyMDExLTA4LTMwIFR1ZXNkYXkKKioqKiBIZWFsdGggbWVhc3VyZW1lbnQgICAg ICAgICAgICAgICAgICAgOldlaWdodDpCbG9vZEdsdWNvc2U6Qmxvb2RQcmVzc3VyZToKOlBST1BF UlRJRVM6CjpBY3FUaW1lOiBbMjAxMS0wOC0zMCBUdWUgMDU6NTZdCjpXZWlnaHQ6IDIyOC41CjpC R2Zhc3Rpbmc6IDE2MQo6RU5EOgoqKiogMjAxMS0wOC0zMSBXZWRuZXNkYXkKKioqKiBIZWFsdGgg bWVhc3VyZW1lbnQgICAgICAgICAgICAgICAgICAgOldlaWdodDpCbG9vZEdsdWNvc2U6Qmxvb2RQ cmVzc3VyZToKOlBST1BFUlRJRVM6CjpBY3FUaW1lOiBbMjAxMS0wOC0zMSBXZWQgMDU6NDJdCjpX ZWlnaHQ6IDIyOS41CjpCR2Zhc3Rpbmc6IDE0OQo6RU5EOgoqKioqIEJsb29kIGdsdWNvc2UgbWVh c3VyZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Qmxvb2RHbHVjb3NlOgo6 UFJPUEVSVElFUzoKOkFjcVRpbWU6IFsyMDExLTA4LTMxIFdlZCAxNTo1MV0KOkJHcHJlcHJhbmRp YWw6IDE1OQo6RU5EOgo= --=-=-= > > Cheers, > Colin. > > > > > > -- Tim Burt www.rketburt.org "It is healthful to every sane man to utter the art within him;" -- GK Chesterton --=-=-=--