Re: Sieve Clarifications
Chris Newman <Chris.Newman@innosoft.com> Wed, 30 April 1997 21:31 UTC
Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id OAA25595 for ietf-mta-filters-bks; Wed, 30 Apr 1997 14:31:31 -0700 (PDT)
Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id OAA25591 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 14:31:27 -0700 (PDT)
Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIBIXNUK8S99GM7G@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 14:32:28 PDT
Date: Wed, 30 Apr 1997 14:33:55 -0700
From: Chris Newman <Chris.Newman@innosoft.com>
Subject: Re: Sieve Clarifications
In-reply-to: <Pine.SOL.3.95L.970430153712.750I-100000@nil.andrew.cmu.edu>
To: Tim Showalter <tjs@andrew.cmu.edu>
Cc: MTA Filters <ietf-mta-filters@imc.org>
Message-id: <Pine.SOL.3.95.970430142523.16628W-100000@eleanor.innosoft.com>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset="US-ASCII"
Sender: owner-ietf-mta-filters@imc.org
Precedence: bulk
On Wed, 30 Apr 1997, Tim Showalter wrote: > On Wed, 30 Apr 1997, Chris Newman wrote: > > > Section 2.5.2. > > > > Also a useful section. Need to add comments about how to RFC 822 quoting > > of addresses is dealt with. Remember that junk like: > > <"foo" . "bar"@baz.biff> > > is a legal RFC 822 address, but for comparison one probably wants to treat > > it as <foo.bar@baz.biff> > > I'm not sure about this. While a comparison in addresses should make them > the same, a comparision of From headers might treat them differently. In > the document as it stands, there are no direct comparisons of addresses. At > least, I didn't intend any. Sorry, I was looking at notes on my document that I wrote as I read it. Comparison isn't so big a deal actually. More important is the addresses allowed in commands like "forward". The problem is that 822 syntax is different from 821 syntax. It also includes a lot of syntactical junk that's completely unnecessary. If we want to make this easy for implementors, I think we should require addresses in some canonical form. Choice 1: Addresses must meet both 821 and 822 quoting rules. Specifically, it's either <local-part@domain> or <"local-part"@domain>. Quotes around name-components, whitespace and embedded comments should be disallowed. Choice 2: Address must be in unquoted form. This means you have just <local-part@domain>. To convert to quoted form, one looks for the rightmost "@" sign and has to quote the local-part if it contains any specials other than "." (e.g. "@" is particularly nasty in local part). Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id OAA25595 for ietf-mta-filters-bks; Wed, 30 Apr 1997 14:31:31 -0700 (PDT) Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id OAA25591 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 14:31:27 -0700 (PDT) Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIBIXNUK8S99GM7G@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 14:32:28 PDT Date: Wed, 30 Apr 1997 14:33:55 -0700 (PDT) From: Chris Newman <Chris.Newman@innosoft.com> Subject: Re: Sieve Clarifications In-reply-to: <Pine.SOL.3.95L.970430153712.750I-100000@nil.andrew.cmu.edu> To: Tim Showalter <tjs@andrew.cmu.edu> Cc: MTA Filters <ietf-mta-filters@imc.org> Message-id: <Pine.SOL.3.95.970430142523.16628W-100000@eleanor.innosoft.com> MIME-version: 1.0 Content-type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk On Wed, 30 Apr 1997, Tim Showalter wrote: > On Wed, 30 Apr 1997, Chris Newman wrote: > > > Section 2.5.2. > > > > Also a useful section. Need to add comments about how to RFC 822 quoting > > of addresses is dealt with. Remember that junk like: > > <"foo" . "bar"@baz.biff> > > is a legal RFC 822 address, but for comparison one probably wants to treat > > it as <foo.bar@baz.biff> > > I'm not sure about this. While a comparison in addresses should make them > the same, a comparision of From headers might treat them differently. In > the document as it stands, there are no direct comparisons of addresses. At > least, I didn't intend any. Sorry, I was looking at notes on my document that I wrote as I read it. Comparison isn't so big a deal actually. More important is the addresses allowed in commands like "forward". The problem is that 822 syntax is different from 821 syntax. It also includes a lot of syntactical junk that's completely unnecessary. If we want to make this easy for implementors, I think we should require addresses in some canonical form. Choice 1: Addresses must meet both 821 and 822 quoting rules. Specifically, it's either <local-part@domain> or <"local-part"@domain>. Quotes around name-components, whitespace and embedded comments should be disallowed. Choice 2: Address must be in unquoted form. This means you have just <local-part@domain>. To convert to quoted form, one looks for the rightmost "@" sign and has to quote the local-part if it contains any specials other than "." (e.g. "@" is particularly nasty in local part). Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id NAA24499 for ietf-mta-filters-bks; Wed, 30 Apr 1997 13:16:47 -0700 (PDT) Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id NAA24495 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 13:16:44 -0700 (PDT) Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id QAA23126; Wed, 30 Apr 1997 16:18:10 -0400 Date: Wed, 30 Apr 1997 16:18:09 -0400 (EDT) From: Tim Showalter <tjs@andrew.cmu.edu> To: Chris Newman <Chris.Newman@innosoft.com> cc: MTA Filters <ietf-mta-filters@imc.org> Subject: Re: Sieve Clarifications In-Reply-To: <Pine.SOL.3.95.970430095600.16628G-100000@eleanor.innosoft.com> Message-ID: <Pine.SOL.3.95L.970430153712.750I-100000@nil.andrew.cmu.edu> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk On Wed, 30 Apr 1997, Chris Newman wrote: > Section 2.5.2. > > Also a useful section. Need to add comments about how to RFC 822 quoting > of addresses is dealt with. Remember that junk like: > <"foo" . "bar"@baz.biff> > is a legal RFC 822 address, but for comparison one probably wants to treat > it as <foo.bar@baz.biff> I'm not sure about this. While a comparison in addresses should make them the same, a comparision of From headers might treat them differently. In the document as it stands, there are no direct comparisons of addresses. At least, I didn't intend any. > Section 2.7. > > Change the last SHOULD to a MUST. A future extension could add a > test with a side effect, and it'd be good to have it's behavior > deterministic. Ok. > Section 4.1. > > Need to precisely document the format of a bounce message. How about a > MIME multipart with the first part containing the Sieve text and the > second part being the original message/rfc822. That's probably the right thing to do. If anyone wants to suggest precise language, I'll add it; otherwise, I'll go chasing references before the next draft goes out. > Section 4.2. [...] > I'd rather not have "fileinto" moved to a separate document. Sieve is > mostly useless for IMAP without it. It's probably most useful in POP3 cases. I'd like to just have an extension name. > Section 4.3. > > Need to make it clear that this is an MTA-style forward (e.g. .forward > file) rather than an MUA-style forward (e.g. "forword" button on MUA). Ok. > Section 4.5. > > I definitely think vacation support is a good idea. It's incredibly > useful functionality which many people get wrong, so it'd be really nice > to have a standard way to do it right. Of course this requires adding a > security model for dealing with the reply-history-database. Should this be an extension, or is it enough to fold it into the document? The reply database is a fairly large problem. > Section 4.7. > > Need to discuss security impact of "toss". ... Ok. > Section 6. > > Last sentence contradicts the existance of "toss". Fixed. > Section 7. I'll probably remove the suggestion that extensions contain version numbers. -- Tim Showalter tjs@andrew.cmu.edu Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id LAA22706 for ietf-mta-filters-bks; Wed, 30 Apr 1997 11:08:51 -0700 (PDT) Received: from po10.andrew.cmu.edu (PO10.ANDREW.CMU.EDU [128.2.10.110]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id LAA22702 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 11:08:47 -0700 (PDT) Received: (from postman@localhost) by po10.andrew.cmu.edu (8.8.5/8.8.2) id OAA00730 for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 14:10:18 -0400 (EDT) Received: via switchmail; Wed, 30 Apr 1997 14:10:17 -0400 (EDT) Received: from loiosh.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/service/mailqs/testq0/QF.0nNsed200WC700ZXM0>; Wed, 30 Apr 1997 14:08:42 -0400 (EDT) Received: from loiosh.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/usr17/rob/.Outgoing/QF.0nNseZ200WC71ICn40>; Wed, 30 Apr 1997 14:08:38 -0400 (EDT) Received: from BatMail.robin.v2.14.CUILIB.3.45.SNAP.NOT.LINKED.loiosh.andrew.cmu.edu.HP9000.715 via MS.5.6.loiosh.andrew.cmu.edu.hp700; Wed, 30 Apr 1997 14:08:27 -0400 (EDT) Message-ID: <0nNseP200WC71ICms0@andrew.cmu.edu> Date: Wed, 30 Apr 1997 14:08:27 -0400 (EDT) From: Rob Earhart <earhart+@cmu.edu> To: ietf-mta-filters@imc.org Subject: Re: Sieve Readability Suggestions In-Reply-To: <Pine.SOL.3.95.970430103059.16628H-100000@eleanor.innosoft.com> References: <Pine.SOL.3.95.970430103059.16628H-100000@eleanor.innosoft.com> X-Face: ,IWr.&S`]#R'C+7U:UE~"}g?Zq|OE%6.\}jCwGUO)]|?34%u!8RT_@0"_qA\@g8N:'pK!bM tSE)?S,#@MK1$o(69wQT2L'j)8tP5QfHdYlh`k}:tA"%dG?9z~> Beak: Is Not Organization: cmu X-URL: http://www.contrib.andrew.cmu.edu/~rob Sender: owner-ietf-mta-filters@imc.org Precedence: bulk Chris Newman <Chris.Newman@innosoft.com> writes: > Yes. There should be a single canonical format for scripts so they can be > communicated from client to server without ambiguity. It's an interesting idea. Currently, CR and LF are treated as "whitespace" - if they're present, they're only there *solely* for readability and comment termination. Your viewer could rewrap the lines and comments and come up with something you could edit on any given platform. Why not go further? For instance, should people use tabs or spaces for indentation? Or a combination? Should indentation be meaningful (if you don't think so, look at the Python addicts in the CS community - I think they're wrong, but they have some good points)? Maybe we should have one true indentation style - one tab per level, no spaces. Let the editor set tab stops where it wants... How about line length limits? If we really want scripts to be editable by all sorts of non-specialized editors, maybe we should suggest (or impose) an 80-column limit on lines... Just some ideas - I'm far from wedded to any of these, but I think they make about as much sense as requiring that lines end with CRLFs. (I'd argue that if we *really* want a single canonical format, we should think about what a abstract syntax tree for a program in this language should look like, write up the canonical way of encoding those trees as text, and require that all programs be in that form when returned from the server (since we're worried about interchangeability, servers should be strict in what they send and forgiving in what they accept, right? Or should it be strict on both ends?). Permitting things like "one or more spaces" inbetween tokens hardly leads to a single canonical form... (interestingly enough, the grammar currently says that WSP is exactly one whitespace; I suspect this will be changed :-) ) )Rob Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id KAA22506 for ietf-mta-filters-bks; Wed, 30 Apr 1997 10:56:10 -0700 (PDT) Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id KAA22502 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 10:56:03 -0700 (PDT) Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id NAA16925; Wed, 30 Apr 1997 13:57:31 -0400 Date: Wed, 30 Apr 1997 13:57:30 -0400 (EDT) From: Tim Showalter <tjs@andrew.cmu.edu> To: Chris Newman <Chris.Newman@innosoft.com> cc: Rob Earhart <earhart+@cmu.edu>, ietf-mta-filters@imc.org Subject: Re: Sieve Readability Suggestions In-Reply-To: <Pine.SOL.3.95.970430103059.16628H-100000@eleanor.innosoft.com> Message-ID: <Pine.SOL.3.95L.970430135640.750H-100000@nil.andrew.cmu.edu> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk On Wed, 30 Apr 1997, Chris Newman wrote: > On Wed, 30 Apr 1997, Rob Earhart wrote: > > Chris Newman <Chris.Newman@innosoft.com> writes: > > > The grammar seems to require a trailing ";" after every command > > > (including an endif). I'm starting to think it would be better to simply > > > have CRLF terminate a command as many of your examples do (and use "\" > > > CRLF to fold a line). > > > > Do we really want to impose any particular line terminator on > > scripts? > > Yes. There should be a single canonical format for scripts so they can be > communicated from client to server without ambiguity. Hey, Rob, did you mean the CR/LF/CRLF thing, or are you worried about how the script is encoded? -- Tim Showalter tjs@andrew.cmu.edu Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id KAA22177 for ietf-mta-filters-bks; Wed, 30 Apr 1997 10:31:27 -0700 (PDT) Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id KAA22173 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 10:31:24 -0700 (PDT) Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIBAIJX6YW99G2GF@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 10:31:13 PDT Date: Wed, 30 Apr 1997 10:32:40 -0700 (PDT) From: Chris Newman <Chris.Newman@innosoft.com> Subject: Re: Sieve Readability Suggestions In-reply-to: <0nNrwk200WC71ICm40@andrew.cmu.edu> To: Rob Earhart <earhart+@cmu.edu> Cc: ietf-mta-filters@imc.org Message-id: <Pine.SOL.3.95.970430103059.16628H-100000@eleanor.innosoft.com> MIME-version: 1.0 Content-type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk On Wed, 30 Apr 1997, Rob Earhart wrote: > Chris Newman <Chris.Newman@innosoft.com> writes: > > The grammar seems to require a trailing ";" after every command > > (including an endif). I'm starting to think it would be better to simply > > have CRLF terminate a command as many of your examples do (and use "\" > > CRLF to fold a line). > > Do we really want to impose any particular line terminator on > scripts? Yes. There should be a single canonical format for scripts so they can be communicated from client to server without ambiguity. Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id KAA21997 for ietf-mta-filters-bks; Wed, 30 Apr 1997 10:20:11 -0700 (PDT) Received: from po10.andrew.cmu.edu (PO10.ANDREW.CMU.EDU [128.2.10.110]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id KAA21993 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 10:20:08 -0700 (PDT) Received: (from postman@localhost) by po10.andrew.cmu.edu (8.8.5/8.8.2) id NAA00683 for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 13:21:39 -0400 (EDT) Received: via switchmail; Wed, 30 Apr 1997 13:21:38 -0400 (EDT) Received: from loiosh.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/service/mailqs/testq0/QF.0nNrwo200WC700ZXI0>; Wed, 30 Apr 1997 13:19:48 -0400 (EDT) Received: from loiosh.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/usr17/rob/.Outgoing/QF.0nNrwl200WC71ICmE0>; Wed, 30 Apr 1997 13:19:45 -0400 (EDT) Received: from BatMail.robin.v2.14.CUILIB.3.45.SNAP.NOT.LINKED.loiosh.andrew.cmu.edu.HP9000.715 via MS.5.6.loiosh.andrew.cmu.edu.hp700; Wed, 30 Apr 1997 13:19:44 -0400 (EDT) Message-ID: <0nNrwk200WC71ICm40@andrew.cmu.edu> Date: Wed, 30 Apr 1997 13:19:44 -0400 (EDT) From: Rob Earhart <earhart+@cmu.edu> To: ietf-mta-filters@imc.org Subject: Re: Sieve Readability Suggestions In-Reply-To: <Pine.SOL.3.95.970425104216.13106F-100000@eleanor.innosoft.com> References: <Pine.SOL.3.95.970425104216.13106F-100000@eleanor.innosoft.com> X-Face: ,IWr.&S`]#R'C+7U:UE~"}g?Zq|OE%6.\}jCwGUO)]|?34%u!8RT_@0"_qA\@g8N:'pK!bM tSE)?S,#@MK1$o(69wQT2L'j)8tP5QfHdYlh`k}:tA"%dG?9z~> Beak: Is Not Organization: cmu X-URL: http://www.contrib.andrew.cmu.edu/~rob Sender: owner-ietf-mta-filters@imc.org Precedence: bulk Chris Newman <Chris.Newman@innosoft.com> writes: > (4) Trailing ";" > > The grammar seems to require a trailing ";" after every command > (including an endif). I'm starting to think it would be better to simply > have CRLF terminate a command as many of your examples do (and use "\" > CRLF to fold a line). Do we really want to impose any particular line terminator on scripts? )Rob Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id KAA21967 for ietf-mta-filters-bks; Wed, 30 Apr 1997 10:18:14 -0700 (PDT) Received: from po10.andrew.cmu.edu (PO10.ANDREW.CMU.EDU [128.2.10.110]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id KAA21963 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 10:18:06 -0700 (PDT) Received: (from postman@localhost) by po10.andrew.cmu.edu (8.8.5/8.8.2) id NAA00679 for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 13:19:35 -0400 (EDT) Received: via switchmail; Wed, 30 Apr 1997 13:19:35 -0400 (EDT) Received: from loiosh.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/service/mailqs/testq0/QF.0nNrvS200WC700ZXE0>; Wed, 30 Apr 1997 13:18:23 -0400 (EDT) Received: from loiosh.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/usr17/rob/.Outgoing/QF.0nNrvM200WC71IClg0>; Wed, 30 Apr 1997 13:18:16 -0400 (EDT) Received: from BatMail.robin.v2.14.CUILIB.3.45.SNAP.NOT.LINKED.loiosh.andrew.cmu.edu.HP9000.715 via MS.5.6.loiosh.andrew.cmu.edu.hp700; Wed, 30 Apr 1997 13:18:06 -0400 (EDT) Message-ID: <0nNrvC200WC71IClU0@andrew.cmu.edu> Date: Wed, 30 Apr 1997 13:18:06 -0400 (EDT) From: Rob Earhart <earhart+@cmu.edu> To: ietf-mta-filters@imc.org Subject: Re: Sieve Readability Suggestions In-Reply-To: <01IIAFCM4ICA99FPS5@INNOSOFT.COM> References: <Pine.SOL.3.95.970425104216.13106F-100000@eleanor.innosoft.com> <01IIAFCM4ICA99FPS5@INNOSOFT.COM> X-Face: ,IWr.&S`]#R'C+7U:UE~"}g?Zq|OE%6.\}jCwGUO)]|?34%u!8RT_@0"_qA\@g8N:'pK!bM tSE)?S,#@MK1$o(69wQT2L'j)8tP5QfHdYlh`k}:tA"%dG?9z~> Beak: Is Organization: cmu X-URL: http://www.contrib.andrew.cmu.edu/~rob Sender: owner-ietf-mta-filters@imc.org Precedence: bulk Ned Freed <Ned.Freed@innosoft.com> writes: > I finally figured out why I dislike the use of SMTP-style message text: It is > because it makes the grammar context-sensitive: "message" (or "text:") has to > kick the lexer into a special state. I think this is fairly problematic > behavior at best. What happens when we want to extend the language by adding > some other construct that requires message text as an argument. The grammar's still regular - when the lexer sees a "message" or "text:" token, it switches states until it sees the end of the SMTP-style message text; this is well within the capabilities of a DFA. (By the same argument, you're against "'s, yes? Because when a lexer sees a " mark, it must enter a special state in which characters are processed until a closing unescaped "... this is really no different.) > I think we really need to bite the bullet here and go back to some sort of > consistent quoting scheme. I'd recommend using C style string constants, > possibly with the extension of alloing a string to cross line boundaries. The problem with multiline strings is that either you wind up with lots of backslashes at the ends of lines (which're a pain to keep consistant when one reworks one's linebreaks), or you create a situation in which there really isn't anything to keep a dropped end-of-string character from causing your string to chew up far more data than it really should, causing syntax errors far removed from the source of the problem. I don't think we want lots of backslashes, and I think that a . on a line by itself stands out much better than a " marks; much as I hate special casing lexers, I think it's better to have two ways to quote strings. (OTOH, with any non-backslash mechanism, you run the risk that it'll still parse, potentially mailing pieces of your script and automated responses to people who really shouldn't see it...) )Rob Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id KAA21875 for ietf-mta-filters-bks; Wed, 30 Apr 1997 10:12:06 -0700 (PDT) Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id KAA21871 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 10:12:03 -0700 (PDT) Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIB9VD6EW299F9KB@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 10:13:18 PDT Date: Wed, 30 Apr 1997 10:14:46 -0700 (PDT) From: Chris Newman <Chris.Newman@innosoft.com> Subject: Sieve Clarifications To: MTA Filters <ietf-mta-filters@imc.org> Message-id: <Pine.SOL.3.95.970430095600.16628G-100000@eleanor.innosoft.com> MIME-version: 1.0 Content-type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk Here's some things which I think need clarifying in the document: Section 2.5.1. This is a useful section. Section 2.5.2. Also a useful section. Need to add comments about how to RFC 822 quoting of addresses is dealt with. Remember that junk like: <"foo" . "bar"@baz.biff> is a legal RFC 822 address, but for comparison one probably wants to treat it as <foo.bar@baz.biff> Section 2.7. Change the last SHOULD to a MUST. A future extension could add a test with a side effect, and it'd be good to have it's behavior deterministic. Section 4.1. Need to precisely document the format of a bounce message. How about a MIME multipart with the first part containing the Sieve text and the second part being the original message/rfc822. Section 4.2. Text needs to be added describing the security model for "fileinto". The two choices for dealing with POP3 issue are: (1) Allow the "fileinto" security model to potentially forbid filing into any folder. (2) Make "fileinto" optional with an extension name. I'd rather not have "fileinto" moved to a separate document. Sieve is mostly useless for IMAP without it. Section 4.3. Need to make it clear that this is an MTA-style forward (e.g. .forward file) rather than an MUA-style forward (e.g. "forword" button on MUA). Section 4.5. I definitely think vacation support is a good idea. It's incredibly useful functionality which many people get wrong, so it'd be really nice to have a standard way to do it right. Of course this requires adding a security model for dealing with the reply-history-database. Section 4.7. Need to discuss security impact of "toss". It permits users to actually lose mail. This means if a user leaves themselves logged in at a lab environment a malicious user could change their script to "toss". Might want to discuss a security model which forbids the trivial script "toss" and it's equivalents, and suggest that servers may wish to save tossed messages for a few days in case it was a script error. Section 6. Last sentence contradicts the existance of "toss". Section 7. I dislike the suggestion to use version numbers in extension names. Simply say that if the extension's functionality changes, it MUST use a different name. Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id JAA21604 for ietf-mta-filters-bks; Wed, 30 Apr 1997 09:52:22 -0700 (PDT) Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id JAA21600 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 09:52:20 -0700 (PDT) Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIB95S6DJ499G2GF@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 09:52:40 PDT Date: Wed, 30 Apr 1997 09:54:08 -0700 (PDT) From: Chris Newman <Chris.Newman@innosoft.com> Subject: Sieve Internationalization To: MTA Filters <ietf-mta-filters@imc.org> Message-id: <Pine.SOL.3.95.970430092103.16628F-100000@eleanor.innosoft.com> MIME-version: 1.0 Content-type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk You're going to hate me for this, but IETF standards have to deal with this issue. Suggestions: (1) Sieve scripts use UTF-8 [RFC-2044]. This may require some text for message bodies (either all Sieve messages are US-ASCII/UTF-8 or non-UTF-8 Sieve messages have to be quoted-printable or base64 encoded). (2) Use the concept of "comparators" (formerly ordering functions) from ACAP (can even use ACAP's registry). Define match-keyword as: match-keyword = ("contains" / "matches" / "is") ["-" comparator] I'd be tempted to make the default comparator be "en-nocase" for reasons I've previously stated, although I'd live with "octet" as the default. Note that ACAP's registry will require comparator registrations to state if they're suitable for substring matching (some comparators would only work with "is"). Finally, comparators would have extension names of "comparator-<name>". (3) Require Sieve implementations to map MIME header encodings to utf-8. This is probably the only way to reasonably do international searching. Tim, you should be able to use code from the Cyrus IMAP server for this. (4) Language tagging probably isn't necessary in Sieve itself since it doesn't display strings. Probably need a way to include a "Content-Language" header in reply messages, however. Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id JAA21100 for ietf-mta-filters-bks; Wed, 30 Apr 1997 09:18:17 -0700 (PDT) Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id JAA21096 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 09:18:14 -0700 (PDT) Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIB80CISLY99EXJN@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 09:19:16 PDT Date: Wed, 30 Apr 1997 09:20:44 -0700 (PDT) From: Chris Newman <Chris.Newman@innosoft.com> Subject: Re: Sieve Readability Suggestions In-reply-to: <01IIAFCM4ICA99FPS5@INNOSOFT.COM> To: MTA Filters <ietf-mta-filters@imc.org> Message-id: <Pine.SOL.3.95.970430091827.16628E-100000@eleanor.innosoft.com> MIME-version: 1.0 Content-type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk On Tue, 29 Apr 1997, Ned Freed wrote: > "--" becomes problematic the minute you add arithmetic operators to the > language. Let's not make Ada's mistake here, OK? Given this point, I withdraw the suggestion. Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id IAA20588 for ietf-mta-filters-bks; Wed, 30 Apr 1997 08:48:36 -0700 (PDT) Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id IAA20584 for <ietf-mta-filters@imc.org>; Wed, 30 Apr 1997 08:48:31 -0700 (PDT) Received: from INNOSOFT.COM by INNOSOFT.COM (PMDF V5.1-8 #8694) id <01II8RYTGB2899FPS5@INNOSOFT.COM> for ietf-mta-filters@imc.org; Wed, 30 Apr 1997 08:48:59 PDT Date: Wed, 30 Apr 1997 08:42:14 -0700 (PDT) From: Ned Freed <Ned.Freed@innosoft.com> Subject: Re: Sieve Readability Suggestions In-reply-to: "Your message dated Tue, 29 Apr 1997 22:52:55 -0400 (EDT)" <Pine.SOL.3.95L.970429224114.750B-100000@nil.andrew.cmu.edu> To: Tim Showalter <tjs@andrew.cmu.edu> Cc: Ned Freed <Ned.Freed@innosoft.com>, MTA Filters <ietf-mta-filters@imc.org>, Chris Newman <Chris.Newman@innosoft.com> Message-id: <01IIB6XSE5AQ99FPS5@INNOSOFT.COM> MIME-version: 1.0 Content-type: TEXT/PLAIN; charset=US-ASCII References: <01IIAFCM4ICA99FPS5@INNOSOFT.COM> Sender: owner-ietf-mta-filters@imc.org Precedence: bulk > I agree with this; it'll make indentation prettier, but I can see it as > being a problem. I opted for SMTP strings in part because mail and some > similar programs cope with them; while this is an awkward solution, it makes > the parser easier. But if the theory is that novices won't write many > scripts, I can cope with C-style strings. (The "reply" feature is one > that probably should be kind of difficult to use.) If we don't use > backslashes above, we can use backslashes here, although I'm partial to > ANSI C-style string composition ("this is one" " long string"). The ANSI C way seems reasonable enough to me... However, there is an alternative if you want to keep the SMTP style stuff. Specifically, instead of making the message send operator special, you add a lexcical component to the language that is equivalent to a string. For example: blah blah blah message text The text of the message starts after the text token and continues until an SMTP-style end of string is seen. The entire text object is lexically equivalent to having the same thing in quotes; it does not imply any sort of operation. Here text is being used as an argument to the message operator. .. blah blah blah I would also recommend that you make the following legal: blah blah blah message "this is a one liner" blah blah blah This way we could add, say, a mime_message operator later on: blah blah blah mime_message text "Content-type: image/gif Content-transfer-encoding: base64 --base64 encoded stuff here-- .. blah blah blah Ned Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id TAA09963 for ietf-mta-filters-bks; Tue, 29 Apr 1997 19:51:32 -0700 (PDT) Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id TAA09958 for <ietf-mta-filters@imc.org>; Tue, 29 Apr 1997 19:51:29 -0700 (PDT) Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id WAA23912; Tue, 29 Apr 1997 22:52:57 -0400 Date: Tue, 29 Apr 1997 22:52:55 -0400 (EDT) From: Tim Showalter <tjs@andrew.cmu.edu> To: Ned Freed <Ned.Freed@innosoft.com> cc: MTA Filters <ietf-mta-filters@imc.org>, Chris Newman <Chris.Newman@innosoft.com> Subject: Re: Sieve Readability Suggestions In-Reply-To: <01IIAFCM4ICA99FPS5@INNOSOFT.COM> Message-ID: <Pine.SOL.3.95L.970429224114.750B-100000@nil.andrew.cmu.edu> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk I'm going to agree with Ned again because, uh, well, I like what's in the draft. I'll go with whatever consensus is, of course. On Tue, 29 Apr 1997, Ned Freed wrote: > > > (1) Comments > > "--" becomes problematic the minute you add arithmetic operators to the > language. Let's not make Ada's mistake here, OK? > > I'm not wild about "#" but the only alternative I see is "!", which might > interfere with future operator extensions. So "#" really seems like the best > choice for now. I like this argument. of course, I never used AppleScript and spend time writing shell scripts. > > > The grammar seems to require a trailing ";" after every command > > > (including an endif). I'm starting to think it would be better to simply > > > have CRLF terminate a command as many of your examples do (and use "\" > > > CRLF to fold a line). > > I don't like this change either -- we're making the mistake Praxis (and others) > made here. I'm not familiar with Praxis. The more I think about this change, the less I like it. > I finally figured out why I dislike the use of SMTP-style message text: It is > because it makes the grammar context-sensitive: "message" (or "text:") has to > kick the lexer into a special state. I think this is fairly problematic > behavior at best. What happens when we want to extend the language by adding > some other construct that requires message text as an argument. > > I think we really need to bite the bullet here and go back to some sort of > consistent quoting scheme. I'd recommend using C style string constants, > possibly with the extension of alloing a string to cross line boundaries. I agree with this; it'll make indentation prettier, but I can see it as being a problem. I opted for SMTP strings in part because mail and some similar programs cope with them; while this is an awkward solution, it makes the parser easier. But if the theory is that novices won't write many scripts, I can cope with C-style strings. (The "reply" feature is one that probably should be kind of difficult to use.) If we don't use backslashes above, we can use backslashes here, although I'm partial to ANSI C-style string composition ("this is one" " long string"). -- Tim Showalter tjs@andrew.cmu.edu Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id TAA09865 for ietf-mta-filters-bks; Tue, 29 Apr 1997 19:38:36 -0700 (PDT) Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id TAA09861 for <ietf-mta-filters@imc.org>; Tue, 29 Apr 1997 19:38:33 -0700 (PDT) Received: from INNOSOFT.COM by INNOSOFT.COM (PMDF V5.1-8 #8694) id <01II8RYTGB2899FPS5@INNOSOFT.COM> for ietf-mta-filters@imc.org; Tue, 29 Apr 1997 19:39:11 PDT Date: Tue, 29 Apr 1997 19:18:38 -0700 (PDT) From: Ned Freed <Ned.Freed@innosoft.com> Subject: Re: Sieve Readability Suggestions In-reply-to: "Your message dated Fri, 25 Apr 1997 15:42:25 -0400 (EDT)" <Pine.SOL.3.95L.970425153338.501B-100000@nil.andrew.cmu.edu> To: Tim Showalter <tjs@andrew.cmu.edu> Cc: MTA Filters <ietf-mta-filters@imc.org>, Chris Newman <Chris.Newman@innosoft.com> Message-id: <01IIAFCM4ICA99FPS5@INNOSOFT.COM> MIME-version: 1.0 Content-type: TEXT/PLAIN; charset=US-ASCII References: <Pine.SOL.3.95.970425104216.13106F-100000@eleanor.innosoft.com> Sender: owner-ietf-mta-filters@imc.org Precedence: bulk > > (1) Comments > > I suggest using "--" instead of "#" as the comment introducer. "--" is > > what Applescript uses, and is more likely to make sense to the average > > human (rather than a programmer) IMHO. > I can see this, but I'd like a second opinion. It seems a little strange to > me. "--" becomes problematic the minute you add arithmetic operators to the language. Let's not make Ada's mistake here, OK? I'm not wild about "#" but the only alternative I see is "!", which might interfere with future operator extensions. So "#" really seems like the best choice for now. > > The grammar seems to require a trailing ";" after every command > > (including an endif). I'm starting to think it would be better to simply > > have CRLF terminate a command as many of your examples do (and use "\" > > CRLF to fold a line). > I'll fix the examples to reflect what's in the draft. I'm not sure I like > this change, but it might clean things up. I'd like a second opinion. I don't like this change either -- we're making the mistake Praxis (and others) made here. > > You currently use "message" to introduce a block of text. I'll point out > > that this isn't really a message, as it's lacking headers. I suggest > > using "text:" instead of "message". > Ok, this is an improvement. I finally figured out why I dislike the use of SMTP-style message text: It is because it makes the grammar context-sensitive: "message" (or "text:") has to kick the lexer into a special state. I think this is fairly problematic behavior at best. What happens when we want to extend the language by adding some other construct that requires message text as an argument. I think we really need to bite the bullet here and go back to some sort of consistent quoting scheme. I'd recommend using C style string constants, possibly with the extension of alloing a string to cross line boundaries. Ned Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id TAA09495 for ietf-mta-filters-bks; Tue, 29 Apr 1997 19:04:19 -0700 (PDT) Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id TAA09491 for <ietf-mta-filters@imc.org>; Tue, 29 Apr 1997 19:04:16 -0700 (PDT) Received: from INNOSOFT.COM by INNOSOFT.COM (PMDF V5.1-8 #8694) id <01II8RYTGB2899FPS5@INNOSOFT.COM> for ietf-mta-filters@imc.org; Tue, 29 Apr 1997 19:04:43 PDT Date: Tue, 29 Apr 1997 18:58:50 -0700 (PDT) From: Ned Freed <Ned.Freed@innosoft.com> Subject: Re: onerror (was Re: some input on sieve-00) In-reply-to: "Your message dated Tue, 29 Apr 1997 14:54:10 -0700 (PDT)" <Pine.SOL.3.95.970429145145.15379G-100000@eleanor.innosoft.com> To: Chris Newman <Chris.Newman@innosoft.com> Cc: MTA Filters <ietf-mta-filters@imc.org> Message-id: <01IIAE5UP2EE99FPS5@INNOSOFT.COM> MIME-version: 1.0 Content-type: TEXT/PLAIN; charset=US-ASCII References: <SIMEON.9704281737.D@benhur.esys.ca> Sender: owner-ietf-mta-filters@imc.org Precedence: bulk > On Mon, 28 Apr 1997, Steve Hole wrote: > > On Sat, 26 Apr 1997 13:20:36 -0400 Jack De Winter <jack@wildbear.on.ca> > > wrote: > > > Personally, I would like to see an 'onerror' command that would allow you > > > to try and trap an error. This was actually a nice feature on one of > > > the basics I used in grade school many years ago, as there were some cases > > > where it came in useful. > > > > Sounds like a good idea. > I'm opposed to an "onerror" command in the base spec. It's very complex > and adds very little functionality. I agree. If "onerror" is to be added there has to be a class of errors which are: (1) Aren't purely syntax-related. (You cannot tell what an onerror command is supposed to do in the presence of syntax errors.) (2) Are the result of some anomalous runtime condition. (Anything else should have been caught sooner, preferably at the time the rules were submitted.) (3) Are something something you actually want users to be able to handle. (Something like a "cannot submit message because no disk space is available" isn't something I want users to be able to catch -- I want to deal with it myself.) I believe that the class of errors that meet all three of these criteria is empty in the language defined thus far. If anyone has a counterexample I'd like to hear what it is. Ned Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id OAA06543 for ietf-mta-filters-bks; Tue, 29 Apr 1997 14:52:18 -0700 (PDT) Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id OAA06539 for <ietf-mta-filters@imc.org>; Tue, 29 Apr 1997 14:52:16 -0700 (PDT) Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01IIA5CG4C3Q99GEUH@INNOSOFT.COM> for ietf-mta-filters@imc.org; Tue, 29 Apr 1997 14:52:43 PDT Date: Tue, 29 Apr 1997 14:54:10 -0700 (PDT) From: Chris Newman <Chris.Newman@innosoft.com> Subject: onerror (was Re: some input on sieve-00) In-reply-to: <SIMEON.9704281737.D@benhur.esys.ca> To: MTA Filters <ietf-mta-filters@imc.org> Message-id: <Pine.SOL.3.95.970429145145.15379G-100000@eleanor.innosoft.com> MIME-version: 1.0 Content-type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk On Mon, 28 Apr 1997, Steve Hole wrote: > On Sat, 26 Apr 1997 13:20:36 -0400 Jack De Winter <jack@wildbear.on.ca> > wrote: > > Personally, I would like to see an 'onerror' command that would allow you > > to try and trap an error. This was actually a nice feature on one of > > the basics I used in grade school many years ago, as there were some cases > > where it came in useful. > > Sounds like a good idea. I'm opposed to an "onerror" command in the base spec. It's very complex and adds very little functionality. Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id RAA20027 for ietf-mta-filters-bks; Mon, 28 Apr 1997 17:02:30 -0700 (PDT) Received: from service.esys.ca (root@service.esys.ca [141.118.1.124]) by mail.proper.com (8.8.5/8.7.3) with SMTP id RAA20021 for <ietf-mta-filters@imc.org>; Mon, 28 Apr 1997 17:02:25 -0700 (PDT) Received: from monet.esys.ca by service.esys.ca with smtp (Smail3.1.28.1 #1) id m0wM0RN-000UlrC; Mon, 28 Apr 97 18:06 MDT Received: from benhur.esys.ca by monet.esys.ca with smtp (Smail3.1.28.1 #6) id m0wM0OS-000RWrC; Mon, 28 Apr 97 18:03 MDT From: Steve Hole <steve@esys.ca> Reply-To: Steve Hole <steve@esys.ca> To: Ned Freed <Ned.Freed@innosoft.com> cc: kjj@primenet.com, ietf-mta-filters@imc.org Subject: Re: some input on sieve-00 Message-ID: <SIMEON.9704281741.E@benhur.esys.ca> Date: Mon, 28 Apr 1997 17:43:41 -0600 (MDT) X-Mailer: Simeon for Win32 Version 4.1.1b3 Build (8) X-Authentication: none MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk On Sun, 27 Apr 1997 20:59:36 -0700 (PDT) Ned Freed <Ned.Freed@innosoft.com> wrote: > > 6. Errors in Processing a Script > > > The stipulation that implementations SHOULD NOT try to recover from a > > script with errors is a problem for me. Aborting within an 'if' clause > > makes sense to me, but to totally stop filtering if any error is encountered > > is the wrong thing to do. I would venture a guess that most users would > > consider this a very bad characteristic of the mechanism. > > The problem with tring to recover is that you cannot be sure of what the user > meant and you may end up doing the wrong thing. And in this case the wrong > thing may mean losing mail. > > However, as a purely practical matter I think this is largely a moot point, > since I expect most implementations to perform syntax checking at the point > where rules are added. I know my implementation will do this. Exactly. Remember that in the worst case scenario, mail gets delivered to the user's inbox. Cheers. --- Steve Hole VP, Research and Development The Esys Corporation EMail: steve@esys.ca 900 10040 - 104 St. Phone: 403-424-4922 Edmonton, AB, Canada Fax: 403-424-4925 T5J 0Z6 Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id RAA20026 for ietf-mta-filters-bks; Mon, 28 Apr 1997 17:02:29 -0700 (PDT) Received: from service.esys.ca (root@service.esys.ca [141.118.1.124]) by mail.proper.com (8.8.5/8.7.3) with SMTP id RAA20016 for <ietf-mta-filters@imc.org>; Mon, 28 Apr 1997 17:02:23 -0700 (PDT) Received: from monet.esys.ca by service.esys.ca with smtp (Smail3.1.28.1 #1) id m0wM0RJ-000UoBC; Mon, 28 Apr 97 18:06 MDT Received: from benhur.esys.ca by monet.esys.ca with smtp (Smail3.1.28.1 #6) id m0wM0OO-000RWrC; Mon, 28 Apr 97 18:03 MDT From: Steve Hole <steve@esys.ca> Reply-To: Steve Hole <steve@esys.ca> To: Jack De Winter <jack@wildbear.on.ca> cc: kjj@primenet.com, ietf-mta-filters@imc.org Subject: Re: some input on sieve-00 Message-ID: <SIMEON.9704281737.D@benhur.esys.ca> Date: Mon, 28 Apr 1997 17:43:37 -0600 (MDT) X-Mailer: Simeon for Win32 Version 4.1.1b3 Build (8) X-Authentication: none MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk On Sat, 26 Apr 1997 13:20:36 -0400 Jack De Winter <jack@wildbear.on.ca> wrote: > >6. Errors in Processing a Script > > > >The stipulation that implementations SHOULD NOT try to recover from a > >script with errors is a problem for me. Aborting within an 'if' clause > >makes sense to me, but to totally stop filtering if any error is encountered > >is the wrong thing to do. I would venture a guess that most users would > >consider this a very bad characteristic of the mechanism. > > Personally, I would like to see an 'onerror' command that would allow you > to try and trap an error. This was actually a nice feature on one of > the basics I used in grade school many years ago, as there were some cases > where it came in useful. Sounds like a good idea. > >I would like to see an optimization made to the grammar. In the elements > >of an if-clause condition that use a list as an argument, I would like to > >see the ability to not necessarily have the parens for single-item lists. > >It might also be nice for users to not have to use quotes around words that > >don't need them. > > I agree on the single item lists, but not on the quotes. The UA can > put them in, and it makes parsing a lot simpler. Exactly. Wow - Jack and I agree on TWO things at once. A truly auspicious day. Makes me nervous like when I write 500 lines of code and get no syntax errors on the first compile :-). Cheers. --- Steve Hole VP, Research and Development The Esys Corporation EMail: steve@esys.ca 900 10040 - 104 St. Phone: 403-424-4922 Edmonton, AB, Canada Fax: 403-424-4925 T5J 0Z6 Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id RAA20025 for ietf-mta-filters-bks; Mon, 28 Apr 1997 17:02:27 -0700 (PDT) Received: from service.esys.ca (root@service.esys.ca [141.118.1.124]) by mail.proper.com (8.8.5/8.7.3) with SMTP id RAA20011 for <ietf-mta-filters@imc.org>; Mon, 28 Apr 1997 17:02:22 -0700 (PDT) Received: from monet.esys.ca by service.esys.ca with smtp (Smail3.1.28.1 #1) id m0wM0RF-000Uo7C; Mon, 28 Apr 97 18:06 MDT Received: from benhur.esys.ca by monet.esys.ca with smtp (Smail3.1.28.1 #6) id m0wM0OL-000RWrC; Mon, 28 Apr 97 18:03 MDT From: Steve Hole <steve@esys.ca> Reply-To: Steve Hole <steve@esys.ca> To: kjj@primenet.com cc: ietf-mta-filters@imc.org Subject: Re: some input on sieve-00 Message-ID: <SIMEON.9704281734.C@benhur.esys.ca> Date: Mon, 28 Apr 1997 17:43:34 -0600 (MDT) X-Mailer: Simeon for Win32 Version 4.1.1b3 Build (8) X-Authentication: none MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk On 26 Apr 1997 16:34:17 -0000 kjj@primenet.com wrote: > On the readability front, > > I would like to see an optimization made to the grammar. In the elements > of an if-clause condition that use a list as an argument, I would like to > see the ability to not necessarily have the parens for single-item lists. > It might also be nice for users to not have to use quotes around words that > don't need them. We don't want to get too crazy on the readability front. In practise, a GUI rule builder will be the interface for novice users wanting simple things and advanced users will just directly edit the language. We want to keep this thing parseable. The parens stripping I can live with because that is all semantic analysis anyway, but stripping the quotes means two different token types and doubling of the parser trees. Let's not do that. Cheers. --- Steve Hole VP, Research and Development The Esys Corporation EMail: steve@esys.ca 900 10040 - 104 St. Phone: 403-424-4922 Edmonton, AB, Canada Fax: 403-424-4925 T5J 0Z6 Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id WAA03812 for ietf-mta-filters-bks; Sun, 27 Apr 1997 22:52:05 -0700 (PDT) Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id WAA03808 for <ietf-mta-filters@imc.org>; Sun, 27 Apr 1997 22:52:02 -0700 (PDT) Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id BAA04429; Mon, 28 Apr 1997 01:53:15 -0400 Date: Mon, 28 Apr 1997 01:53:15 -0400 (EDT) From: Tim Showalter <tjs@andrew.cmu.edu> Reply-To: Tim Showalter <tjs@andrew.cmu.edu> To: kjj@primenet.com, Jack De Winter <jack@wildbear.on.ca>, MTA Filters <ietf-mta-filters@imc.org> Subject: Re: some input on sieve-00 In-Reply-To: <xmf.19970326163417.767.6@localhost.primenet.com> Message-ID: <Pine.SOL.3.95L.970428013049.2732E-100000@nil.andrew.cmu.edu> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk I agree with Ned completely, but want to add some things. On 26 Apr 1997 kjj@primenet.com wrote: > 1. Introduction > > The word 'sort' in 4th paragraph is maybe a bit ambiguous when talking > about sorting mailboxes. Maybe something like 'autofile' or something. > Not a big point, just a comment. I won't change the word "sort" to "autofile" as I find that to be worse, but I think the section might be a little vague. Can someone give me a wrong interpretation of the section? Or is it better to change "sort" to "filter"? > 2.7 Evaluation > > The second paragraph mentions the possibility that implementations may > impose restrictions on the number of actions per message. > > I think this is a bad thing. [...] Implementations are free to disallow the limits, but I want those limits. We have too many creative users. > With a restriction like this, the sieve becomes significantly less useful > for many of the users that are most likely to use it the first place - > users adept at email. Can you give an example? Mailing lists and bizarre autoresponders are best handled on private machines or by administrators. If sites need things like this, and can trust their users, they should turn the limits off. However, in order for this to be useful here, or for an ISP, there must be some way to keep users from writing instant automated mailbombs. > 6. Errors in Processing a Script > > The stipulation that implementations SHOULD NOT try to recover from a > script with errors is a problem for me. Aborting within an 'if' clause > makes sense to me, but to totally stop filtering if any error is encountered > is the wrong thing to do. I would venture a guess that most users would > consider this a very bad characteristic of the mechanism. Can you offer a counterproposal? I can't see another good way to do it; the syntax errors falling through cause too many problems. Furthermore, the design of the language allows one if clause to stop processing; aborting out of that if clause to allow the rest of the script to run would make it very difficult to predict control flow during a syntax error. > I would like to see an optimization made to the grammar. In the elements > of an if-clause condition that use a list as an argument, I would like to > see the ability to not necessarily have the parens for single-item lists. Sure, this has come up before, but I haven't updated the draft. > It might also be nice for users to not have to use quotes around words that > don't need them. This could cause serious ambiguity problems. I don't think it's worth it, especially since novice users probably won't edit scripts by hand. As far as the errorsto-like trap, I'm against it. For transitory failures (which should be addressed in the draft) it's hard to imagine one that can't be dealt with in some reasonable way (user over quota, hold the message; some host is down that we need to talk to, hold the reply; etc.) Everything else is syntax errors, and as I've said before, I think it's really dangerous to try and do something smart in case of an error. it'll only cause problems when the program goes and does something stupid anyway. -- Tim Showalter tjs@andrew.cmu.edu Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id VAA03314 for ietf-mta-filters-bks; Sun, 27 Apr 1997 21:39:17 -0700 (PDT) Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id VAA03309 for <ietf-mta-filters@imc.org>; Sun, 27 Apr 1997 21:39:14 -0700 (PDT) Received: from INNOSOFT.COM by INNOSOFT.COM (PMDF V5.1-8 #8694) id <01II7NSGJ2M899FOLY@INNOSOFT.COM> for ietf-mta-filters@imc.org; Sun, 27 Apr 1997 21:39:35 PDT Date: Sun, 27 Apr 1997 20:59:36 -0700 (PDT) From: Ned Freed <Ned.Freed@innosoft.com> Subject: Re: some input on sieve-00 In-reply-to: "Your message dated Sat, 26 Apr 1997 16:34:17 +0000" <xmf.19970326163417.767.6@localhost.primenet.com> To: kjj@primenet.com Cc: ietf-mta-filters@imc.org Message-id: <01II7QZ6M5AA99FOLY@INNOSOFT.COM> MIME-version: 1.0 Content-type: TEXT/PLAIN; CHARSET=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk > 0.2 - Open Issues. > I'm curious why "fileinto" is being considered for moving into a separate > document. Maybe I missed an earlier thread on this. "fileinto" needs to be a separate, optional facility becase many implementations will not be able to support it. It also isn't something that's going to be at all easy to write a security analysis of (something the IETF has gotten a lot pickier about lately). > 2.7 Evaluation > The second paragraph mentions the possibility that implementations may > impose restrictions on the number of actions per message. > I think this is a bad thing. While I understand that one of the design > goals is to reduce the possibility of using the mechanism for mail-bombing, > I want to point out that there is sufficient existing practice to allow > such actions as auto-filing in conjunction with auto-forwarding. Like it or not, this is going to have to be allowed. ISPs are not going to be willing to deploy something that cannot impose such limits. > With a restriction like this, the sieve becomes significantly less useful > for many of the users that are most likely to use it the first place - > users adept at email. The entire point of this exercise isn't to develop something for users adept at email. There are dozens if not hundreds of languages already available for this purpose -- I wrote one and released it into the public domain back in 1984, and my work was based on on the documentation of similar systems that had been around for years. The point here is to develop something that every MTA and message store will want to implement and that can easily be used by various automatic rule generation utilities. This means that the language cannot require the presence of constructs that are difficult or impossible for everyone to implement, nor can it require that limits obviously needed to combat spam cannot exist. > 6. Errors in Processing a Script > The stipulation that implementations SHOULD NOT try to recover from a > script with errors is a problem for me. Aborting within an 'if' clause > makes sense to me, but to totally stop filtering if any error is encountered > is the wrong thing to do. I would venture a guess that most users would > consider this a very bad characteristic of the mechanism. The problem with tring to recover is that you cannot be sure of what the user meant and you may end up doing the wrong thing. And in this case the wrong thing may mean losing mail. However, as a purely practical matter I think this is largely a moot point, since I expect most implementations to perform syntax checking at the point where rules are added. I know my implementation will do this. > On the readability front, > I would like to see an optimization made to the grammar. In the elements > of an if-clause condition that use a list as an argument, I would like to > see the ability to not necessarily have the parens for single-item lists. I don't have a problem with this. > It might also be nice for users to not have to use quotes around words that > don't need them. This is highly problematic, for the simple reason that it may have a very adverse effect on future extensibility. The ability to distinguish between a string argument and, say, a function that returns a string, is crucial if we want to keep the parser implementable with single-token lookahead and the language backwards-compatible. > Here's an abbreviated version of the example in 2.5 to illustrate: > if any-of (header ("from") > contains ("bart" "homer" "smithers" "burns" "lisa"), > header ("subject") contains ("URGENT")) then > fileinto "INBOX" > endif > Elimitating spurious parens: > if any-of (header "from" > contains ("bart" "homer" "smithers" "burns" "lisa"), > header "subject" contains "URGENT") then > fileinto "INBOX" > endif > Eliminating sprurious quotes: > if any-of (header from contains (bart, homer, smithers, burns, lisa), > header subject contains URGENT) then > fileinto INBOX > endif And what happens if I want to add a function bart to the language? > The rule for whether or not quotes were needed would be based on avoidance > of conflicts in the grammer (eg: whitespace and commas). > I think this behaviour is more novice-friendly. I disagree that this is more novice-friendly. What this does is introduce an inconsistency into the language, and inconsistencies are the single worst enemy of anyone unfamliar with the language. It is instructive to look at past language designs in this regard. In the Praxis language (and to a lesser extent Pascal), for example, the use of semicolons to delimit statements was deemed to be unfriendly to novices. But they couldn't be eliminated entirely. The resulting rules for when they were needed and when they weren't were so complex that nobody could figure them out, and were found to be a serious hindrance to learning and using the language. Eventually the optionality of semicolons was effectively abandoned by language users. But again this is largely moot. This language design from the outset is focused on ease of use by generating utilities, not on ease of use by novices. If it were engineered primarily for direct use by novices it would need to change in some fairly substantial ways from what we have now. Ned Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id KAA13022 for ietf-mta-filters-bks; Sat, 26 Apr 1997 10:19:25 -0700 (PDT) Received: from lacroix.wildbear.on.ca (lacroix.wildbear.on.ca [199.246.132.198]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id KAA13018 for <ietf-mta-filters@imc.org>; Sat, 26 Apr 1997 10:19:19 -0700 (PDT) Received: by lacroix.wildbear.on.ca from localhost (router,SLmailNT V3.0 (alpha 10)); Sat, 26 Apr 1997 13:19:25 -0400 Received: by lacroix.wildbear.on.ca from wildside.wildbear.on.ca (199.246.132.193::mail daemon,SLmailNT V3.0 (alpha 10)); Sat, 26 Apr 1997 13:19:24 -0400 Message-Id: <3.0.1.32.19970426132036.00ba70f4@lacroix.wildbear.on.ca> X-Sender: "Jack De Winter" <jack@wildbear.on.ca> X-Mailer: Windows Eudora Pro Version 3.0.1 (32) Date: Sat, 26 Apr 1997 13:20:36 -0400 To: kjj@primenet.com, ietf-mta-filters@imc.org From: "Jack De Winter" <jack@wildbear.on.ca> Subject: Re: some input on sieve-00 In-Reply-To: <xmf.19970326163417.767.6@localhost.primenet.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Sender: owner-ietf-mta-filters@imc.org Precedence: bulk >6. Errors in Processing a Script > >The stipulation that implementations SHOULD NOT try to recover from a >script with errors is a problem for me. Aborting within an 'if' clause >makes sense to me, but to totally stop filtering if any error is encountered >is the wrong thing to do. I would venture a guess that most users would >consider this a very bad characteristic of the mechanism. Personally, I would like to see an 'onerror' command that would allow you to try and trap an error. This was actually a nice feature on one of the basics I used in grade school many years ago, as there were some cases where it came in useful. >I would like to see an optimization made to the grammar. In the elements >of an if-clause condition that use a list as an argument, I would like to >see the ability to not necessarily have the parens for single-item lists. >It might also be nice for users to not have to use quotes around words that >don't need them. I agree on the single item lists, but not on the quotes. The UA can put them in, and it makes parsing a lot simpler. >Here's an abbreviated version of the example in 2.5 to illustrate: > if any-of (header ("from") > contains ("bart" "homer" "smithers" "burns" "lisa"), > header ("subject") contains ("URGENT")) then > fileinto "INBOX" > endif >Elimitating spurious parens: > if any-of (header "from" > contains ("bart" "homer" "smithers" "burns" "lisa"), > header "subject" contains "URGENT") then > fileinto "INBOX" > endif This makes some sense to me, as the lexical meaning is still unambiguous. >Eliminating sprurious quotes: > if any-of (header from contains (bart, homer, smithers, burns, lisa), > header subject contains URGENT) then > fileinto INBOX > endif >The rule for whether or not quotes were needed would be based on avoidance >of conflicts in the grammer (eg: whitespace and commas). > >I think this behaviour is more novice-friendly. While it is novice friendly, the parsing becomes more complicated. While it might be argued that the implementor can afford to get complicated, I would rather see the quotes around the strings stay there, as when I read the script without quotes, it is not immediately obvious what the strings are and what the verbs are. regards, Jack ------------------------------------------------- Jack De Winter - Wildbear Consulting, Inc. (519) 884-4498 http://www.wildbear.on.ca/ Author of SLMail for 95 & NT (http://www.seattlelab.com/) Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id JAA12713 for ietf-mta-filters-bks; Sat, 26 Apr 1997 09:32:33 -0700 (PDT) Received: from localhost.primenet.com (qmailr@ip-20-088.phx.primenet.com [206.165.20.88]) by mail.proper.com (8.8.5/8.7.3) with SMTP id JAA12708 for <ietf-mta-filters@imc.org>; Sat, 26 Apr 1997 09:32:29 -0700 (PDT) From: kjj@primenet.com Received: (qmail 845 invoked by uid 501); 26 Apr 1997 16:34:17 -0000 Date: 26 Apr 1997 16:34:17 -0000 To: ietf-mta-filters@imc.org Subject: some input on sieve-00 X-Mailer: X-MailFolder v0.01 Message-Id: <xmf.19970326163417.767.6@localhost.primenet.com> Sender: owner-ietf-mta-filters@imc.org Precedence: bulk 0.2 - Open Issues. I'm curious why "fileinto" is being considered for moving into a separate document. Maybe I missed an earlier thread on this. 1. Introduction The word 'sort' in 4th paragraph is maybe a bit ambiguous when talking about sorting mailboxes. Maybe something like 'autofile' or something. Not a big point, just a comment. 2.5.1 Headers 2.5.2 Addresses There are notes that asks whether these sections is necessary or useful. I think they are. 2.7 Evaluation The second paragraph mentions the possibility that implementations may impose restrictions on the number of actions per message. I think this is a bad thing. While I understand that one of the design goals is to reduce the possibility of using the mechanism for mail-bombing, I want to point out that there is sufficient existing practice to allow such actions as auto-filing in conjunction with auto-forwarding. With a restriction like this, the sieve becomes significantly less useful for many of the users that are most likely to use it the first place - users adept at email. 6. Errors in Processing a Script The stipulation that implementations SHOULD NOT try to recover from a script with errors is a problem for me. Aborting within an 'if' clause makes sense to me, but to totally stop filtering if any error is encountered is the wrong thing to do. I would venture a guess that most users would consider this a very bad characteristic of the mechanism. On the readability front, I would like to see an optimization made to the grammar. In the elements of an if-clause condition that use a list as an argument, I would like to see the ability to not necessarily have the parens for single-item lists. It might also be nice for users to not have to use quotes around words that don't need them. Here's an abbreviated version of the example in 2.5 to illustrate: if any-of (header ("from") contains ("bart" "homer" "smithers" "burns" "lisa"), header ("subject") contains ("URGENT")) then fileinto "INBOX" endif Elimitating spurious parens: if any-of (header "from" contains ("bart" "homer" "smithers" "burns" "lisa"), header "subject" contains "URGENT") then fileinto "INBOX" endif Eliminating sprurious quotes: if any-of (header from contains (bart, homer, smithers, burns, lisa), header subject contains URGENT) then fileinto INBOX endif The rule for whether or not quotes were needed would be based on avoidance of conflicts in the grammer (eg: whitespace and commas). I think this behaviour is more novice-friendly. -- thx, kjj Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id IAA12392 for ietf-mta-filters-bks; Sat, 26 Apr 1997 08:53:06 -0700 (PDT) Received: from localhost.primenet.com (qmailr@ip-20-088.phx.primenet.com [206.165.20.88]) by mail.proper.com (8.8.5/8.7.3) with SMTP id IAA12388 for <ietf-mta-filters@imc.org>; Sat, 26 Apr 1997 08:53:03 -0700 (PDT) From: kjj@primenet.com Received: (qmail 820 invoked by uid 501); 26 Apr 1997 15:54:55 -0000 Date: 26 Apr 1997 15:54:55 -0000 Subject: Re: Sieve Readability Suggestions To: ietf-mta-filters@imc.org References: <Pine.WNT.4.00.970425161419.-125899C-100000@piney_cac> In-Reply-To: <Pine.WNT.4.00.970425161419.-125899C-100000@piney_cac> from David L Miller on Fri, 25 Apr 1997 16:23:15 -0700 (PDT) X-Mailer: X-MailFolder v0.01 Message-Id: <xmf.19970326155454.767.3@localhost.primenet.com> Sender: owner-ietf-mta-filters@imc.org Precedence: bulk David L Miller <dlm@cac.washington.edu> writes: >On Fri, 25 Apr 1997, Tim Showalter wrote: >> On Fri, 25 Apr 1997, Chris Newman wrote: >> >> > (1) Comments >> > >> > I suggest using "--" instead of "#" as the comment introducer. "--" is >> > what Applescript uses, and is more likely to make sense to the average >> > human (rather than a programmer) IMHO. Only to those familier with applescript. >> I can see this, but I'd like a second opinion. It seems a little strange >> to me. >Both are used in other languages, so there is a precedent for either >one. I can see the argument for matching AppleScript, since there are >some otherwise novice potential users already familiar with it. Do >any other languages targeted to novices use "#"? I'm not sure worrying about the familiarity of '#' to novices is a big deal. It's short and to the point and it's in wide use on at least one platform (:-). For users that are 'pathologically-novice' a GUI interface is more in order anyway. -- thx, kjj Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id QAA05149 for ietf-mta-filters-bks; Fri, 25 Apr 1997 16:22:03 -0700 (PDT) Received: from mailhost1.cac.washington.edu (mailhost1.cac.washington.edu [140.142.32.2]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id QAA05145 for <ietf-mta-filters@imc.org>; Fri, 25 Apr 1997 16:22:00 -0700 (PDT) Received: from piney_cac (D-128-95-135-222.dhcp.washington.edu [128.95.135.222]) by mailhost1.cac.washington.edu (8.8.4+UW96.12/8.8.4+UW97.03) with SMTP id QAA05004; Fri, 25 Apr 1997 16:23:10 -0700 Date: Fri, 25 Apr 1997 16:23:15 -0700 (PDT) From: "David L. Miller" <dlm@cac.washington.edu> To: Tim Showalter <tjs@andrew.cmu.edu> cc: MTA Filters <ietf-mta-filters@imc.org>, Chris Newman <Chris.Newman@innosoft.com> Subject: Re: Sieve Readability Suggestions In-Reply-To: <Pine.SOL.3.95L.970425153338.501B-100000@nil.andrew.cmu.edu> Message-ID: <Pine.WNT.4.00.970425161419.-125899C-100000@piney_cac> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk On Fri, 25 Apr 1997, Tim Showalter wrote: > On Fri, 25 Apr 1997, Chris Newman wrote: > > > (1) Comments > > > > I suggest using "--" instead of "#" as the comment introducer. "--" is > > what Applescript uses, and is more likely to make sense to the average > > human (rather than a programmer) IMHO. > > I can see this, but I'd like a second opinion. It seems a little strange to > me. Both are used in other languages, so there is a precedent for either one. I can see the argument for matching AppleScript, since there are some otherwise novice potential users already familiar with it. Do any other languages targeted to novices use "#"? > > (4) Trailing ";" > > > > The grammar seems to require a trailing ";" after every command > > (including an endif). I'm starting to think it would be better to simply > > have CRLF terminate a command as many of your examples do (and use "\" > > CRLF to fold a line). > > I'll fix the examples to reflect what's in the draft. I'm not sure I like > this change, but it might clean things up. I'd like a second opinion. > > I would drop ; from the grammar entirely if this is the case, i.e., no more > than one command on a line. Single command/line is fine with me. I don't think multiple commands/line serve any particularly useful purpose in sieve... --DLM Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id MAA02367 for ietf-mta-filters-bks; Fri, 25 Apr 1997 12:41:22 -0700 (PDT) Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id MAA02363 for <ietf-mta-filters@imc.org>; Fri, 25 Apr 1997 12:41:16 -0700 (PDT) Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id PAA12586; Fri, 25 Apr 1997 15:42:25 -0400 Date: Fri, 25 Apr 1997 15:42:25 -0400 (EDT) From: Tim Showalter <tjs@andrew.cmu.edu> To: MTA Filters <ietf-mta-filters@imc.org> cc: Chris Newman <Chris.Newman@innosoft.com> Subject: Re: Sieve Readability Suggestions In-Reply-To: <Pine.SOL.3.95.970425104216.13106F-100000@eleanor.innosoft.com> Message-ID: <Pine.SOL.3.95L.970425153338.501B-100000@nil.andrew.cmu.edu> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk On Fri, 25 Apr 1997, Chris Newman wrote: > (1) Comments > > I suggest using "--" instead of "#" as the comment introducer. "--" is > what Applescript uses, and is more likely to make sense to the average > human (rather than a programmer) IMHO. I can see this, but I'd like a second opinion. It seems a little strange to me. > (2) The "header" test > > I'd like it if the <header-name-list> and the <key-list> items could be > either a list or a single quoted string. Thus you would get: > > if header "Subject" contains "$$" then > toss > endif This is probably a good idea. > (3) The "header" -nocase arguments > > I think nocase should be the default with -case as the modifier. So you'd > get "contains", "is", "matches", "contains-case", "is-case", > "matches-case". This makes it more readable, IMHO, and makes the > more common case easier to type. Ok, this makes sense. > (4) Trailing ";" > > The grammar seems to require a trailing ";" after every command > (including an endif). I'm starting to think it would be better to simply > have CRLF terminate a command as many of your examples do (and use "\" > CRLF to fold a line). I'll fix the examples to reflect what's in the draft. I'm not sure I like this change, but it might clean things up. I'd like a second opinion. I would drop ; from the grammar entirely if this is the case, i.e., no more than one command on a line. > (5) Optional "," > > I'm uncomfortable with "," being optional in any-of and all-of lists. I > think it should either be required or unnecessary. It should be required; I'll make sure the next draft reflects this. > (6) Normal action > > How about calling this "keep"? Fine with me. > (7) Message introducer > > You currently use "message" to introduce a block of text. I'll point out > that this isn't really a message, as it's lacking headers. I suggest > using "text:" instead of "message". Ok, this is an improvement. -- Tim Showalter tjs@andrew.cmu.edu Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id LAA00989 for ietf-mta-filters-bks; Fri, 25 Apr 1997 11:14:46 -0700 (PDT) Received: from THOR.INNOSOFT.COM (SYSTEM@THOR.INNOSOFT.COM [192.160.253.66]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id LAA00985 for <ietf-mta-filters@imc.org>; Fri, 25 Apr 1997 11:14:44 -0700 (PDT) Received: from eleanor.innosoft.com by INNOSOFT.COM (PMDF V5.1-8 #8694) with SMTP id <01II4CL7RLJK99FTK2@INNOSOFT.COM> for ietf-mta-filters@imc.org; Fri, 25 Apr 1997 11:15:05 PDT Date: Fri, 25 Apr 1997 11:16:32 -0700 (PDT) From: Chris Newman <Chris.Newman@innosoft.com> Subject: Sieve Readability Suggestions To: MTA Filters <ietf-mta-filters@imc.org> Message-id: <Pine.SOL.3.95.970425104216.13106F-100000@eleanor.innosoft.com> MIME-version: 1.0 Content-type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ietf-mta-filters@imc.org Precedence: bulk I finally made time to read the sieve document carefully. In general, I think the language is in good shape. I've got a few suggestions which I think may improve sieve's human readability without changing the complexity of parsing much. It's not bad as it is, but these might make it slightly better. (1) Comments I suggest using "--" instead of "#" as the comment introducer. "--" is what Applescript uses, and is more likely to make sense to the average human (rather than a programmer) IMHO. (2) The "header" test I'd like it if the <header-name-list> and the <key-list> items could be either a list or a single quoted string. Thus you would get: if header "Subject" contains "$$" then toss endif or if header ("Subject" "From") contains "B1FF" then toss endif (3) The "header" -nocase arguments I think nocase should be the default with -case as the modifier. So you'd get "contains", "is", "matches", "contains-case", "is-case", "matches-case". This makes it more readable, IMHO, and makes the more common case easier to type. (4) Trailing ";" The grammar seems to require a trailing ";" after every command (including an endif). I'm starting to think it would be better to simply have CRLF terminate a command as many of your examples do (and use "\" CRLF to fold a line). (5) Optional "," I'm uncomfortable with "," being optional in any-of and all-of lists. I think it should either be required or unnecessary. (6) Normal action How about calling this "keep"? if size under 1M then keep else toss endif (7) Message introducer You currently use "message" to introduce a block of text. I'll point out that this isn't really a message, as it's lacking headers. I suggest using "text:" instead of "message". reply text: You are not one of the people I regularly correspond with. I have deleted your message due to the large volume of email I regularly receive. If you feel that you need to speak with me directly, and cannot find your answer in my web pages, please send mail with the word "URGENT" in the subject line. Thank you for your time. . endif Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id NAA28476 for ietf-mta-filters-bks; Tue, 22 Apr 1997 13:17:20 -0700 (PDT) Received: from po10.andrew.cmu.edu (PO10.ANDREW.CMU.EDU [128.2.10.110]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id NAA28472 for <ietf-mta-filters@imc.org>; Tue, 22 Apr 1997 13:17:16 -0700 (PDT) Received: (from postman@localhost) by po10.andrew.cmu.edu (8.8.5/8.8.2) id QAA00934 for ietf-mta-filters@imc.org; Tue, 22 Apr 1997 16:18:18 -0400 (EDT) Received: via switchmail; Tue, 22 Apr 1997 16:18:18 -0400 (EDT) Received: from nil.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/service/mailqs/testq0/QF.cnLFncm00iVT01TE40>; Tue, 22 Apr 1997 16:17:45 -0400 (EDT) Received: from nil.andrew.cmu.edu via qmail ID </afs/andrew.cmu.edu/usr13/tjs/.Outgoing/QF.snLFmca00iVT03Cxw0>; Tue, 22 Apr 1997 16:16:40 -0400 (EDT) Received: from BatMail.robin.v2.14.CUILIB.3.45.SNAP.NOT.LINKED.nil.andrew.cmu.edu.sun4x.55 via MS.5.6.nil.andrew.cmu.edu.sun4_51; Tue, 22 Apr 1997 16:16:38 -0400 (EDT) Message-ID: <onLFmaW00iVT03Cxk0@andrew.cmu.edu> Date: Tue, 22 Apr 1997 16:16:38 -0400 (EDT) From: Timothy J Showalter <tjs+@andrew.cmu.edu> To: ietf-mta-filters@imc.org Subject: Fwd: I-D ACTION:draft-showalter-sieve-00.txt References: <9704210942.aa04502@ietf.org> X-URL: http://www.club.cc.cmu.edu/~tjs/ Organization: Komitet Gosudarstvennoi Bezopaznosti Sender: owner-ietf-mta-filters@imc.org Precedence: bulk The sieve draft I posted (except for some really trivial changes) has gone out as an Internet-Draft. -- Tim Showalter tjs@andrew.cmu.edu ---------- Forwarded message begins here ---------- Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce@ietf.org Sender: ietf-announce-request@ietf.org From: Internet-Drafts@ietf.org Reply-to: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-showalter-sieve-00.txt Date: Mon, 21 Apr 1997 09:42:37 -0400 X-Orig-Sender: cclark@ietf.org Message-ID: <9704210942.aa04502@ietf.org> --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. Title : SIEVE: A Mail Filtering Language Author(s) : T. Showalter Filename : draft-showalter-sieve-00.txt Pages : 19 Date : 04/18/1997 This document describes a mail filtering language for filtering messages at time of final delivery. It is designed to be independent of protocol, and implementable on either a mail client or mail server which uses multiple folders. It is meant to be extensible, simple, and independent of access protocol, mail architecture, and operating systems used to implement it. Mail filtering systems are widely used for a variety of reasons, including organization of messages (filtering out mailing list messages for separate reading). They are becoming increasingly useful in avoiding unsolicited mail. Existing languages are not consistant across client, server, or operating system, and are frequently difficult for users to use. This language is not tied to any particular system or mail architecture and is suitable for running on a mail server where users may not be allowed to execute arbitrary programs, such as on black box IMAP servers. Internet-Drafts are available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-showalter-sieve-00.txt". A URL for the Internet-Draft is: ftp://ds.internic.net/internet-drafts/draft-showalter-sieve-00.txt Internet-Drafts directories are located at: o Africa: ftp.is.co.za o Europe: ftp.nordu.net ftp.nis.garr.it o Pacific Rim: munnari.oz.au o US East Coast: ds.internic.net o US West Coast: ftp.isi.edu Internet-Drafts are also available by mail. Send a message to: mailserv@ds.internic.net. In the body type: "FILE /internet-drafts/draft-showalter-sieve-00.txt". NOTE: The mail server at ds.internic.net can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e., documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ds.internic.net" Content-Type: text/plain Content-ID: <19970418100553.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-showalter-sieve-00.txt --OtherAccess Content-Type: Message/External-body; name="draft-showalter-sieve-00.txt"; site="ds.internic.net"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <19970418100553.I-D@ietf.org> --OtherAccess-- --NextPart-- Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id RAA22773 for ietf-mta-filters-bks; Thu, 17 Apr 1997 17:25:04 -0700 (PDT) Received: from illyana.qualcomm.com (illyana.qualcomm.com [129.46.50.82]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id RAA22765 for <ietf-mta-filters@imc.org>; Thu, 17 Apr 1997 17:25:01 -0700 (PDT) Received: from [129.46.137.140] (randy-mac.qualcomm.com [129.46.137.140]) by illyana.qualcomm.com (8.8.5/1.4/8.7.2/1.13) with ESMTP id RAA27581 for <ietf-mta-filters@imc.org>; Thu, 17 Apr 1997 17:25:15 -0700 (PDT) Message-Id: <v03102703af7c6806d7f8@[129.46.137.140]> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Thu, 17 Apr 1997 16:52:21 -0700 To: ietf-mta-filters@imc.org From: Randall Gellens <Randy@Qualcomm.Com> Subject: Note: Filtering BOF was *Unofficial* Sender: owner-ietf-mta-filters@imc.org Precedence: bulk Sorry, I forgot to clarify that the "Filtering BOF" was unofficial. Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id LAA18766 for ietf-mta-filters-bks; Thu, 17 Apr 1997 11:55:29 -0700 (PDT) Received: from frobozz.qualcomm.com (frobozz.qualcomm.com [129.46.50.79]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id LAA18762 for <ietf-mta-filters@imc.org>; Thu, 17 Apr 1997 11:55:25 -0700 (PDT) Received: from [129.46.137.140] (randy-mac.qualcomm.com [129.46.137.140]) by frobozz.qualcomm.com (8.8.5/1.4/8.7.2/1.13) with ESMTP id LAA23685 for <ietf-mta-filters@imc.org>; Thu, 17 Apr 1997 11:55:39 -0700 (PDT) Message-Id: <v03102730af7c1d6638d4@[129.46.137.140]> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Thu, 17 Apr 1997 11:34:33 -0700 To: ietf-mta-filters@imc.org From: Randall Gellens <Randy@Qualcomm.Com> Subject: Summary of Filtering BOF Sender: owner-ietf-mta-filters@imc.org Precedence: bulk Here is my recollection of what happened at the Filtering portion of the Submit & Filtering BOF at IETF Memphis. This is reconstructed from memory. FILTERING: Discussion of Tim's draft (posted to list and copies passed around). Consensus: good start, make minor fixups and submit as I-D. Discussion of extension mechanism. Consensus: define capability string, which each extension adds to. How client gets string not defined in this spec. Could be ACAP, could be shared file, could be magic. Question: how to write script such that it can work on different servers, with or without extensions. Consensus: need dynamic test for extension supported, either REQUIRES or IF-EXTENSION or both. Discussion on how script gets from client to server. Consensus: leave for a different draft. Could be ACAP, could be file (.filters), could be anything. Discussion of where filtering occurs. Consensus: during "final delivery", which will differ depending on implementation, but is before message goes into mailbox. Discussion on specific elements of draft: IF/ENDIF vs. "{" and "}". No resolution; arbitrary choice. Discussion of blocks: needed or not? No consensus for them. Discussion of BOUNCE action: do we need it? Does it generate DSN or MSN or neither? Does it need parameter for text to be returned? Call for dropping BOUNCE since we have REPLY and TRASH. Discussion on how to specify text of REPLY. Series of lines with continuation character? Length-prefixed series of bytes? Series of lines ending in dot by itself (standard SMTP etc.)? Discussion of line-endings. CR vs. LF vs. CRLF. Consensus: add ABNF to allow any of three. Message text is series of lines, ending in dot on line by itself. Question: doesn't this make it hard for cross-platform clients, or client on one platform reading filter rules written by client on another platform? Answer: they have to deal with it now. Discussion on gearing language for machine-readability or human-readability (continuation of list thread). Consensus: current language is pretty good balance. Question on complexity of script vs. ability to be handled by GUI in client. Answer: if more complex elements (perhaps ELSE) are not used, GUI can read & display existing ruleset. If GUI encounters constructs it can't display, it can punt and open a text window. This should be added to document as suggestion to client implementors. Questions on filtering on envelope contents, syntax to do INCLUDE, filing into folders other than INBOX, and regular expressions. Consensus: filtering on envelope contents to be an extension. Syntax for INCLUDE to be in URI notation, but as an extension, not in base spec. Filing into folders other than INBOX, and regular expressions to be extensions. Question on STOP. Answer: it ends all rules. Any actions already specified (for example, filing, replying) get done, but no additional rules or actions are processed. Question on what if no actions specified/no rules matched. Answer: default action (file into inbox). Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id SAA01870 for ietf-mta-filters-bks; Mon, 14 Apr 1997 18:04:48 -0700 (PDT) Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id SAA01866 for <ietf-mta-filters@imc.org>; Mon, 14 Apr 1997 18:04:43 -0700 (PDT) Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id VAA12524 for <ietf-mta-filters@imc.org>; Mon, 14 Apr 1997 21:05:13 -0400 Date: Mon, 14 Apr 1997 21:05:10 -0400 (EDT) From: Tim Showalter <tjs@andrew.cmu.edu> To: MTA Filters <ietf-mta-filters@imc.org> Subject: sieve draft Message-ID: <Pine.SOL.3.95L.970414210021.7488B-200000@nil.andrew.cmu.edu> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-1804928587-861066310=:7488" Sender: owner-ietf-mta-filters@imc.org Precedence: bulk This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---559023410-1804928587-861066310=:7488 Content-Type: TEXT/PLAIN; charset=US-ASCII This is the latest draft of the SIEVE filtering language. I've also dropped a copy at http://www.club.cc.cmu.edu/~tjs/draft-showalter-sieve-00.txt. I'm in the process of submitting a copy as an internet-draft. I plan to do some heavy editoral changes, but I think it's close to complete in terms of content and features. Rob has been bugging me to make a good clean distinction between keywords and commands, and that should happen before this becomes an RFC. Any comments would be appreciated! -- Tim Showalter tjs@andrew.cmu.edu ---559023410-1804928587-861066310=:7488 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="draft-showalter-sieve-00.txt" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.SOL.3.95L.970414210510.7488C@nil.andrew.cmu.edu> Content-Description: DQoNCg0KDQoNCg0KTmV0d29yayBXb3JraW5nIEdyb3VwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVC4gU2hvd2FsdGVyDQpJbnRl cm5ldCBEcmFmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDYXJuZWdpZSBNZWxsb24NCkRvY3VtZW50OiBkcmFmdC1zaG93 YWx0ZXItc2lldmUtMDAudHh0ICAgICAgICAgICAgICAgICAgICAgICAgQXBy aWwgMTk5Nw0KRXhwaXJlIHNvbWV0aW1lIGFmdGVyIGl0J3MgcmVsZWFzZWQN Cg0KICAgICAgICAgICAgICAgICAgICBTSUVWRTogQSBNYWlsIEZpbHRlcmlu ZyBMYW5ndWFnZQ0KDQpTdGF0dXMgb2YgdGhpcyBNZW1vDQoNCiAgIFRoaXMg ZHJhZnQgaGFzIG5vIHN0YW5kaW5nIGFuZCBpcyBmb3IgbGltaXRlZCBkaXN0 cmlidXRpb24uICBQbGVhc2UNCiAgIGRvIG5vdCBpbXBsZW1lbnQgYW55dGhp bmcgd2l0aGluIHdpdGhvdXQgY29udGFjdGluZyB0aGUgYXV0aG9yLCBhbmQN CiAgIGV2ZW4gdGhlbiwgdXNlIGV4dHJlbWUgY2F1dGlvbjsgZXZlcnl0aGlu ZyBpbiB0aGlzIGRyYWZ0IGlzIGNhcnZlZCBpbg0KICAgd2FybSBidXR0ZXIu ICBQbGVhc2UgdXNlIGRpc2NyZXRpb24gaW4gZGlzdHJpYnV0aW9uLg0KDQog ICBUaGUgZm9sbG93aW5nIGlzIGhlcmUgZm9yIHdoZW4gd2UgYWN0dWFsbHkg cHVibGlzaCB0aGlzOg0KDQogICBUaGlzIGRvY3VtZW50IGlzIGFuIEludGVy bmV0LURyYWZ0LiAgSW50ZXJuZXQtRHJhZnRzIGFyZSB3b3JraW5nDQogICBk b2N1bWVudHMgb2YgdGhlIEludGVybmV0IEVuZ2luZWVyaW5nIFRhc2sgRm9y Y2UgKElFVEYpLCBpdHMgYXJlYXMsDQogICBhbmQgaXRzIHdvcmtpbmcgZ3Jv dXBzLiAgTm90ZSB0aGF0IG90aGVyIGdyb3VwcyBtYXkgYWxzbyBkaXN0cmli dXRlDQogICB3b3JraW5nIGRvY3VtZW50cyBhcyBJbnRlcm5ldC1EcmFmdHMu DQoNCiAgIEludGVybmV0LURyYWZ0cyBhcmUgZHJhZnQgZG9jdW1lbnRzIHZh bGlkIGZvciBhIG1heGltdW0gb2Ygc2l4IG1vbnRocw0KICAgYW5kIG1heSBi ZSB1cGRhdGVkLCByZXBsYWNlZCwgb3Igb2Jzb2xldGVkIGJ5IG90aGVyIGRv Y3VtZW50cyBhdCBhbnkNCiAgIHRpbWUuICBJdCBpcyBpbmFwcHJvcHJpYXRl IHRvIHVzZSBJbnRlcm5ldC1EcmFmdHMgYXMgcmVmZXJlbmNlDQogICBtYXRl cmlhbCBvciB0byBjaXRlIHRoZW0gb3RoZXIgdGhhbiBhcyBgYHdvcmsgaW4g cHJvZ3Jlc3MuJycNCg0KICAgVG8gbGVhcm4gdGhlIGN1cnJlbnQgc3RhdHVz IG9mIGFueSBJbnRlcm5ldC1EcmFmdCwgcGxlYXNlIGNoZWNrIHRoZQ0KICAg YGAxaWQtYWJzdHJhY3RzLnR4dCcnIGxpc3RpbmcgY29udGFpbmVkIGluIHRo ZSBJbnRlcm5ldC0gRHJhZnRzDQogICBTaGFkb3cgRGlyZWN0b3JpZXMgb24g ZnRwLmlzLmNvLnphIChBZnJpY2EpLCBmdHAubm9yZHUubmV0IChFdXJvcGUp LA0KICAgbXVubmFyaS5vei5hdSAoUGFjaWZpYyBSaW0pLCBkcy5pbnRlcm5p Yy5uZXQgKFVTIEVhc3QgQ29hc3QpLCBvcg0KICAgZnRwLmlzaS5lZHUgKFVT IFdlc3QgQ29hc3QpLg0KDQogICBUaGUgcHJvdG9jb2wgZGlzY3Vzc2VkIGlu IHRoaXMgZG9jdW1lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBzdWJqZWN0DQog ICB0byBjaGFuZ2UuICBQZXJzb25zIHBsYW5uaW5nIG9uIGVpdGhlciBpbXBs ZW1lbnRpbmcgb3IgdXNpbmcgdGhpcw0KICAgcHJvdG9jb2wgYXJlIFNUUk9O R0xZIFVSR0VEIHRvIGdldCBpbiB0b3VjaCB3aXRoIHRoZSBhdXRob3IgYmVm b3JlDQogICBlbWJhcmtpbmcgb24gc3VjaCBhIHByb2plY3QuDQoNCkFic3Ry YWN0DQoNCiAgIFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGEgbWFpbCBmaWx0 ZXJpbmcgbGFuZ3VhZ2UgZm9yIGZpbHRlcmluZw0KICAgbWVzc2FnZXMgYXQg dGltZSBvZiBmaW5hbCBkZWxpdmVyeS4gIEl0IGlzIGRlc2lnbmVkIHRvIGJl IGluZGVwZW5kZW50DQogICBvZiBwcm90b2NvbCwgYW5kIGltcGxlbWVudGFi bGUgb24gZWl0aGVyIGEgbWFpbCBjbGllbnQgb3IgbWFpbCBzZXJ2ZXINCiAg IHdoaWNoIHVzZXMgbXVsdGlwbGUgZm9sZGVycy4gIEl0IGlzIG1lYW50IHRv IGJlIGV4dGVuc2libGUsIHNpbXBsZSwNCiAgIGFuZCBpbmRlcGVuZGVudCBv ZiBhY2Nlc3MgcHJvdG9jb2wsIG1haWwgYXJjaGl0ZWN0dXJlLCBhbmQgb3Bl cmF0aW5nDQogICBzeXN0ZW1zIHVzZWQgdG8gaW1wbGVtZW50IGl0Lg0KDQog ICBNYWlsIGZpbHRlcmluZyBzeXN0ZW1zIGFyZSB3aWRlbHkgdXNlZCBmb3Ig YSB2YXJpZXR5IG9mIHJlYXNvbnMsDQogICBpbmNsdWRpbmcgb3JnYW5pemF0 aW9uIG9mIG1lc3NhZ2VzIChmaWx0ZXJpbmcgb3V0IG1haWxpbmcgbGlzdA0K DQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDFdDQoMDQpkcmFmdC1z aG93YWx0ZXItc2lldmUtUFJFLnR4dCAgICBTSUVWRSAgICAgICAgICAgICAg ICAgICAgICAgIDggQXByIDE5OTcNCg0KDQogICBtZXNzYWdlcyBmb3Igc2Vw YXJhdGUgcmVhZGluZykuICBUaGV5IGFyZSBiZWNvbWluZyBpbmNyZWFzaW5n bHkNCiAgIHVzZWZ1bCBpbiBhdm9pZGluZyB1bnNvbGljaXRlZCBtYWlsLiAg RXhpc3RpbmcgbGFuZ3VhZ2VzIGFyZSBub3QNCiAgIGNvbnNpc3RhbnQgYWNy b3NzIGNsaWVudCwgc2VydmVyLCBvciBvcGVyYXRpbmcgc3lzdGVtLCBhbmQg YXJlDQogICBmcmVxdWVudGx5IGRpZmZpY3VsdCBmb3IgdXNlcnMgdG8gdXNl LiAgVGhpcyBsYW5ndWFnZSBpcyBub3QgdGllZCB0bw0KICAgYW55IHBhcnRp Y3VsYXIgc3lzdGVtIG9yIG1haWwgYXJjaGl0ZWN0dXJlIGFuZCBpcyBzdWl0 YWJsZSBmb3INCiAgIHJ1bm5pbmcgb24gYSBtYWlsIHNlcnZlciB3aGVyZSB1 c2VycyBtYXkgbm90IGJlIGFsbG93ZWQgdG8gZXhlY3V0ZQ0KICAgYXJiaXRy YXJ5IHByb2dyYW1zLCBzdWNoIGFzIG9uIGJsYWNrIGJveCBJTUFQIHNlcnZl cnMuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDJdDQoMDQpkcmFmdC1zaG93 YWx0ZXItc2lldmUtUFJFLnR4dCAgICBTSUVWRSAgICAgICAgICAgICAgICAg ICAgICAgIDggQXByIDE5OTcNCg0KDQogICBUYWJsZSBvZiBDb250ZW50cw0K DQogICBUaGlzIGRvY3VtZW50IGlzIGNvbnRlbnQtZnJlZS4NCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNClNo b3dhbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbUGFnZSAzXQ0KDA0KZHJhZnQtc2hvd2FsdGVy LXNpZXZlLVBSRS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAg ICA4IEFwciAxOTk3DQoNCg0KMC4gICBVbmZpbmlzaGVkDQoNCiAgIDAuMS4g S25vd24gV2Vha25lc3Nlcw0KDQogICBUaGUgZm9sbG93aW5nIHN1Z2dlc3Rp b25zIGhhdmUgYmVlbiBtYWRlLCBhbmQgd2lsbCBwcm9iYWJseSBiZQ0KICAg YWRkcmVzc2VkIGJ5IGV4dGVuc2lvbnMuDQoNCiAgIEFuIGV4dGVuc2lvbiBm b3IgcmVndWxhciBleHByZXNzaW9ucyB3aWxsIGJlIHdyaXR0ZW4uICBXaGls ZSByZWd1bGFyDQogICBleHByZXNzaW9ucyBhcmUgb2YgcXVlc3Rpb25hYmxl IHVzZWZ1bG5lc3MgZm9yIHVzZXJzLCB0aGUgcHJvZ3JhbW1lcnMNCiAgIHdy aXRpbmcgaW1wbGVtZW50YXRpb25zIGRlc3BlcmF0ZWx5IHdhbnQgcmVndWxh ciBleHByZXNzaW9ucy4NCg0KICAgRW52ZWxvcGUtbWF0Y2hpbmcgY29tbWFu ZHMgYXJlIG5vdCByZWFkaWx5IHN1cHBvcnRlZCBieSBhbGwgbWFpbA0KICAg c3lzdGVtcywgYW5kIHB1dHRpbmcgdGhlbSBpbiB0aGUgZHJhZnQgd2lsbCBy ZXN1bHQgaW4gYSBzeXN0ZW0gdGhhdA0KICAgY2Fubm90IGJlIGltcGxlbWVu dGVkIGJ5IGEgbWFpbCBhcmNoaXRlY3R1cmUgdGhhdCBkb2VzIG5vdCBhZGVx dWF0ZWx5DQogICBzdG9yZSBlbnZlbG9wZXMuDQoNCiAgICJEZXRhaWxlZCIg YWRkcmVzc2luZyBvciAic3ViYWRkcmVzc2luZyIgKGkuZS4sIHRoZSAiZm1o IiBpbiBhbg0KICAgYWRkcmVzcyAidGpzK2ZtaEBhbmRyZXcuY211LmVkdSIp IGlzIG5vdCBoYW5kbGVkLCBhbmQgd2lsbCBiZSBtb3ZlZA0KICAgdG8gYW4g ZXh0ZW5zaW9uIGZvciB0aG9zZSBzeXN0ZW1zIHRoYXQgb2ZmZXIgaXQuDQoN CiAgIFRoZSBuZXdsaW5lIHByb2JsZW0gaXMgcmVsYXRpdmVseSwgYnV0IG5v dCBjb21wbGV0ZWx5LCBzb2x2ZWQuICBXZSdsbA0KICAgYmUgYXJndWluZyB0 aGlzIHVudGlsIHRoZSBlbmQgb2YgdGltZS4NCg0KICAgQSBwcmV2aW91cyB2 ZXJzaW9uIGluY2x1ZGVkIGEgInZhbGlkIiB0ZXN0LiAgSSBoYXZlIHRlbnRh dGl2ZWx5DQogICByZW1vdmVkIGl0IGJlY2F1c2UgUmFuZHkgaGFkIG5vdGVk IGl0IHdhcyB0b28gZnV6enkgdG8gaW1wbGVtZW50LCBhbmQNCiAgIHRoYXQn cyBwcm9iYWJseSB0cnVlLg0KDQogICBUaGUgZm9ybWFsIGdyYW1tYXIgaXMg bm90IGNvbXBsZXRlLCBhbmQgbmVlZHMgdG8gYmUgcmV2aXNlZCB0byBtYWtl DQogICB0aGUgYmVzdCB1c2Ugb2YgQUJORiwgd2hhdGV2ZXIgaXRzIGZpbmFs IHN0YXRlIGlzLg0KDQogICBNeSBrbm93bGVkZ2Ugb2YgZW1haWwgaXMgbm90 IGNvbXByZWhlbnNpdmUsIGFuZCBhcyBhIHJlc3VsdCwgdGhlcmUNCiAgIG1p Z2h0IGJlIGEgYmV0dGVyIHdheSB0byBleHByZXNzIHNvbWUgb2YgdGhlIGNv bmNlcHRzIGluIGhlcmUuDQoNCiAgIEFuICJpbmNsdWRlIiBjb21tYW5kIGlz IG5vdCBpbmNsdWRlZCwgYnV0IGhhcyBiZWVuIHN1Z2dlc3RlZCBmb3IgYW4N CiAgIGV4dGVuc2lvbi4NCg0KICAgSSBuZWVkIHRvIHJ1biBhIHNwZWxsaW5n IGNoZWNrZXIgb24gdGhpcyBkb2N1bWVudC4NCg0KICAgSSBoYXRlIG5yb2Zm Lg0KDQogICAwLjIuIE9wZW4gSXNzdWVzDQoNCiAgIERvICJmaWxlaW50byIg Y29tbWFuZHMgbmVlZCB0byBiZSBtb3ZlZCB0byBhIHNlcGFyYXRlIGRvY3Vt ZW50Pw0KDQoxLiAgIEludHJvZHVjdGlvbg0KDQogICBUaGVyZSBhcmUgYSBu dW1iZXIgb2YgcmVhc29ucyB0byB1c2UgYSBmaWx0ZXJpbmcgc3lzdGVtLiAg TWFpbA0KICAgdHJhZmZpYyBmb3IgbW9zdCB1c2VycyBoYXMgYmVlbiBpbmNy ZWFzaW5nIGR1ZSBib3RoIHRvIGluY3JlYXNlZA0KDQoNCg0KU2hvd2FsdGVy ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtQYWdlIDRdDQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUt UFJFLnR4dCAgICBTSUVWRSAgICAgICAgICAgICAgICAgICAgICAgIDggQXBy IDE5OTcNCg0KDQogICB1c2FnZSBvZiBlLW1haWwsIHRoZSBlbWVyZ2VuY2Ug b2YgdW5zb2xpY2l0ZWQgZW1haWwgYXMgYSBmb3JtIG9mDQogICBhZHZlcnRp c2luZywgYW5kIGluY3JlYXNlZCB1c2FnZSBvZiBtYWlsaW5nIGxpc3RzLg0K DQogICBUaGlzIGxhbmd1YWdlIGlzIG9mZmVyZWQgaW4gb3JkZXIgdG8gdHJ5 IGFuZCBwcm92aWRlIGEgc3RhbmRhcmQNCiAgIGxhbmd1YWdlIHRoYXQgY2Fu IGJlIHVzZWQgdG8gY3JlYXRlIGZpbHRlcnMgZm9yIGUtbWFpbC4gIEl0IGlz IG5vdA0KICAgdGllZCB0byBhbnkgcGFydGljdWxhciBvcGVyYXRpbmcgc3lz dGVtIG9yIG1haWwgYXJjaGl0ZWN0dXJlLiAgSXQNCiAgIHJlcXVpcmVzIHRo ZSB1c2Ugb2YgW0lNQUlMXS1jb21wbGlhbnQgbWVzc2FnZXMgYW5kIHN1cHBv cnQgb2YNCiAgIG11bHRpcGxlIGZvbGRlcnMsIGJ1dCBzaG91bGQgd29yayB3 aXRoIGEgd2lkZSB2YXJpZXR5IG9mIHN5c3RlbXMgdGhhdA0KICAgc3VwcG9y dCB0aGVzZSBjcml0ZXJpYS4NCg0KICAgVGhlIGxhbmd1YWdlIGlzIHBvd2Vy ZnVsIGVub3VnaCB0byBiZSB1c2VmdWwsIGJ1dCBsaW1pdGVkIGluIHBvd2Vy IGluDQogICBvcmRlciB0byBhbGxvdyBmb3IgYSByZWFzb25hYmx5IGJ1bGxl dHByb29mIHNlcnZlci1zaWRlIGZpbHRlcmluZw0KICAgc3lzdGVtLiAgVGhl IGxhbmd1YWdlIGlzIG5vdCBUdXJpbmctY29tcGxldGUsIGFuZCBwcm92aWRl cyBubyB3YXkgdG8NCiAgIHdyaXRlIGEgbG9vcCBvciBhIGZ1bmN0aW9uLCBu b3IgYXJlIHZhcmlhYmxlcyBhcmUgcHJvdmlkZWQuICBUaGUNCiAgIGludGVu dGlvbiBpcyB0byBtYWtlIGl0IGltcG9zc2libGUgZm9yIHVzZXJzIHRvIGRv IGFueXRoaW5nIG1vcmUNCiAgIGNvbXBsZXggdGhhbiB3cml0ZSBzaW1wbGUg bWFpbCBmaWx0ZXJzLg0KDQogICBJbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGxh bmd1YWdlIGFyZSBleHBlY3RlZCB0byB0YWtlIHBsYWNlIGF0IHRpbWUgb2YN CiAgIGZpbmFsIGRlbGl2ZXJ5LiAgSW4gc3lzdGVtcyB3aGVyZSB0aGUgTVRB IGRvZXMgZmluYWwgZGVsaXZlcnkgLS0NCiAgIElNQVA0IGFuZCB0cmFkaXRp b25hbCBVTklYIG1haWwsIGZvciBpbnN0YW5jZSwgaXQgaXMgcmVhc29uYWJs ZSB0bw0KICAgc29ydCB3aGVuIHRoZSBNVEEgZGVwb3NpdHMgbWFpbCBpbnRv IHRoZSB1c2VyJ3MgbWFpbGJveC4gIElmIHRoZSBNVEENCiAgIGRvZXMgbm90 IGRvIGZpbmFsIGRlbGl2ZXJ5LCBvciBsYWNrcyB0aGUgcG93ZXIgdG8gc29y dCBpbnRvIHNlcGFyYXRlDQogICBtYWlsYm94ZXMgKGFzIGlzIHRoZSBjYXNl IHVuZGVyIFBPUDMpLCB0aGUgTVVBIG11c3QgZG8gZmlsdGVyaW5nIGludG8N CiAgIGxvY2FsIGZpbHRlcnMuDQoNCiAgIEV4cGVyaWVuY2UgYXQgQ2FybmVn aWUgTWVsbG9uIGhhcyBzaG93biB0aGF0IGlmIGEgZmlsdGVyaW5nIHN5c3Rl bSBpcw0KICAgbWFkZSBhdmFpbGFibGUgdG8gdXNlcnMsIG1hbnkgd2lsbCBt YWtlIHVzZSBvZiBpdCBpbiBvcmRlciB0byBmaWxlDQogICBtZXNzYWdlcyBm cm9tIHNwZWNpZmljIHVzZXJzIG9yIG1haWxpbmcgbGlzdHMuICBIb3dldmVy LCBtYW55IHVzZXJzDQogICBkaWQgbm90IG1ha2UgdXNlIG9mIHRoZSBBbmRy ZXcgc3lzdGVtJ3MgRkxBTUVTIGZpbHRlcmluZyBsYW5ndWFnZSBkdWUNCiAg IHRvIGRpZmZpY3VsdHkgaW4gcHJvZ3JhbW1pbmcgaXQuICBEdWUgdG8gdGhp cyBleHBlY3RhdGlvbiwgdGhpcw0KICAgbGFuZ3VhZ2UgaGFzIGJlZW4gbWFk ZSBzaW1wbGUgZW5vdWdoIHRvIGFsbG93IG1hbnkgdXNlcnMgdG8gbWFrZSB1 c2UNCiAgIG9mIGl0Lg0KDQoxLjEuIENvbnZlbnRpb25zIHVzZWQgaW4gdGhp cyBkb2N1bWVudA0KDQogICBMaW5lIGJyZWFrcyBoYXZlIGJlZW4gaW5zZXJ0 ZWQgZm9yIHJlYWRhYmlsaXR5Lg0KDQogICBJbiB0aGUgc2VjdGlvbnMgb2Yg dGhpcyBkb2N1bWVudCB0aGF0IGRpc2N1c3MgdGhlIHJlcXVpcmVtZW50cyBv Zg0KICAgdmFyaW91cyBrZXl3b3JkcyBhbmQgb3BlcmF0b3JzLCB0aGUgZm9s bG93aW5nIGNvbnZlbnRpb25zIGhhdmUgYmVlbg0KICAgYWRvcHRlZC4NCg0K ICAgRWFjaCBzZWN0aW9uIG9uIGFuIHRlc3QsIGFjdGlvbiwgb3IgY29uZGl0 aW9uYWwgaGFzIGEgbGluZSBsYWJlbGVkDQogICAiU3ludGF4OiIuICBUaGlz IGxpbmUgZGVzY3JpYmVzIHRoZSBhcmd1bWVudHMgZWFjaCBjb21tYW5kIHJl cXVpcmVzLg0KICAgUmVxdWlyZWQgYXJndW1lbnRzIGFyZSBsaXN0ZWQgaW5z aWRlIGFuZ2xlIGJyYWNrZXRzICgiPCIgYW5kICI+IikuDQogICBPcHRpb25h bCBhcmd1bWVudHMgYXJlIGxpc3RlZCBpbnNpZGUgc3F1YXJlIGJyYWNrZXRz ICgiWyIgYW5kICJdIikuDQogICBUaGUgZm9ybWFsIGdyYW1tYXIgZm9yIHRo ZXNlIGNvbW1hbmRzIGlzIGRlc2NyaWJlZCBpbiBzZWN0aW9uIDEwIGFuZA0K ICAgaXMgdGhlIGF1dGhvcml0YXRpdmUgcmVmZXJlbmNlIG9uIGhvdyB0byBj b25zdHJ1Y3QgdGhlc2UgY29tbWFuZHMuDQoNCg0KDQoNClNob3dhbHRlciAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbUGFnZSA1XQ0KDA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZlLVBS RS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAgICA4IEFwciAx OTk3DQoNCg0KICAgVGhlIGtleSB3b3JkcyAiTVVTVCIsICJNVVNUIE5PVCIs ICJTSE9VTEQiLCAiU0hPVUxEIE5PVCIsICJDQU4iLCBhbmQNCiAgICJNQVki IGluIHRoaXMgZG9jdW1lbnQgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIGRl ZmluZWQgaW4NCiAgIFtLRVlXT1JEU10uDQoNCjEuMi4gRXhhbXBsZSBtYWls IG1lc3NhZ2VzDQoNCiAgIFRoZSBmb2xsb3dpbmcgbWFpbCBtZXNzYWdlcyB3 aWxsIGJlIHVzZWQgdGhyb3VnaG91dCB0aGlzIGRvY3VtZW50IGluDQogICBl eGFtcGxlcy4NCg0KICAgTWVzc2FnZSBBDQogICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K ICAgRGF0ZTogVHVlLCAxIEFwciAxOTk3IDA5OjA2OjMxIC0wODAwIChQU1Qp DQogICBGcm9tOiBjb3lvdGVAYW52aWwuZGVtZW50aWEub3JnDQogICBUbzog cm9hZHJ1bm5lckBiaXJkc2VlZC50aGVrZWVwLm9yZw0KICAgU3ViamVjdDog SSBoYXZlIGEgcHJlc2VudCBmb3IgeW91DQoNCiAgIExvb2ssIEknbSBzb3Jy eSBhYm91dCB0aGUgd2hvbGUgYW52aWwgdGhpbmcsIGJ1dCBJIGNhbiBtYWtl DQogICBpdCB1cCB0byB5b3UuICBJJ3ZlIGdvdCBzb21lIGdyZWF0IGJpcmRz ZWVkIG92ZXIgaGVyZSBhdA0KICAgbXkgcGxhY2UgLS0gdG9wIG9mIHRoZSBs aW5lIHN0dWZmIC0tIGFuZCBpZiB5b3UgY29tZSBieSwNCiAgIEknbGwgaGF2 ZSBpdCBhbGwgd3JhcHBlZCB1cCBmb3IgeW91LiAgSSdtIHJlYWxseSBzb3Jy eSBmb3INCiAgIGFsbCB0aGUgcHJvYmxlbXMgSSd2ZSBjYXVzZWQgZm9yIHlv dSBvdmVyIHRoZSB5ZWFycywgYW5kDQogICBJIGtub3cgd2UgY2FuIHdvcmsg dGhpcyBvdXQuDQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogICBNZXNzYWdlIEIN CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQogICBGcm9tOiB5b3Vjb3VsZGJlcmljaCFA cmVwbHktYnktcG9zdGFsLW1haWwNCiAgIFNlbmRlcjogYjFmZkB6bmljLm5l dA0KICAgVG86IHJ1YmVAem5pYy5uZXQNCiAgIERhdGU6ICBNb24sIDMxIE1h ciAxOTk3IDE4OjI2OjEwIC0wODAwIChQU1QpDQogICBTdWJqZWN0OiAkJCQg WU9VLCBUT08sIENBTiBCRSBBIE1JTExJT05BSVJFISAkJCQNCg0KICAgWU9V IE1BWSBIQVZFIEFMUkVBRFkgV09OIFRFTiBNSUxMSU9OIERPTExBUlMsIEJV VCBJIERPVUJUDQogICBJVCEgIFNPIEpVU1QgUE9TVCBUSElTIFRPIFNJWCBI VU5EUkVEIE5FV1NHUk9VUFMhICBJVCBXSUxMDQogICBHVUFSQU5URUUgVEhB VCBZT1UgR0VUIEFUIExFQVNUIEZJVkUgUkVTUE9OU0VTIFdJVEggTU9ORVkh DQogICBNT05FWSEgTU9ORVkhIENPTEQgSEFSRCBDQVNIISAgWU9VIFdJTEwg UkVDRUlWRSBPVkVSDQogICAkMjAsMDAwIElOIExFU1MgVEhBTiBUV08gTU9O VEhTISAgQU5EIElUJ1MgTEVHQUwhISEhISEhISENCiAgICEhISEhISEhISEh ISEhISEhITExMTExMTExMSEhISEhISExMTExMTExMTExMSEhMSAgSlVTVA0K ICAgU0VORCAkNSBJTiBTTUFMTCwgVU5NQVJLRUQgQklMTFMgVE8gVEhFIEFE RFJFU1NFUyBCRUxPVyENCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCjIuICAgRGVz aWduDQoNCjIuMS4gRm9ybSBvZiB0aGUgbGFuZ3VhZ2UNCg0KICAgVGhpcyBs YW5ndWFnZSBpcyBtYWRlIHVwIGFzIGEgc2V0IG9mIGNvbW1hbmRzLiAgRWFj aCBjb21tYW5kIGlzDQogICBlaXRoZXIgYW4gYWN0aW9uIG9yIGEgY29uZGl0 aW9uYWwuICBFYWNoIGNvbmRpdGlvbmFsIGNvbnRhaW5zIGEgdGVzdDsNCiAg IGRlcGVuZGluZyBvbiB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdCwgb25lIHNl dCBvZiBjb21tYW5kcyBpbiBhDQoNCg0KDQpTaG93YWx0ZXIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W1BhZ2UgNl0NCgwNCmRyYWZ0LXNob3dhbHRlci1zaWV2ZS1QUkUudHh0ICAg IFNJRVZFICAgICAgICAgICAgICAgICAgICAgICAgOCBBcHIgMTk5Nw0KDQoN CiAgIGNvbnRyb2wgc3RydWN0dXJlIGlzIHRha2VuLg0KDQoyLjIuIFdoaXRl c3BhY2UNCg0KICAgV2hpdGVzcGFjZSBpcyB1c2VkIHRvIHNlcGFyYXRlIGNv bW1hbmRzLiAgV2hpdGVzcGFjZSBpcyBtYWRlIHVwIG9mDQogICB0YWJzLCBu ZXdsaW5lcyAod2hpY2ggY2FuIGJlIENSLCBMRiwgb3IgYm90aCksIGFuZCB0 aGUgc3BhY2UNCiAgIGNoYXJhY3Rlci4gIFRoZSBhbW91bnQgb2Ygd2hpdGVz cGFjZSB1c2VkIGlzIG5vdCBzaWduaWZpY2FudC4NCg0KMi4zLiBDb21tZW50 cw0KDQogICBDb21tZW50cyBiZWdpbiB3aXRoIGEgIiMiIGNoYXJhY3RlciB0 aGF0IGlzIG5vdCBjb250YWluZWQgd2l0aGluIGENCiAgIHN0cmluZyBhbmQg Y29udGludWUgdW50aWwgdGhlIG5leHQgbmV3bGluZS4NCg0KDQogICBFeGFt cGxlOiAgICBpZiBzaXplIG92ZXIgMTAwSyB0aGVuICMgdGhpcyBpcyBhIGNv bW1lbnQNCiAgICAgICAgICAgICAgICAgICAgdG9zcw0KICAgICAgICAgICAg ICAgZW5kaWYNCg0KMi40LiBOdW1iZXJzDQoNCiAgICAgICAgICAgICAgIE51 bWJlcnMgYXJlIG5vcm1hbGx5IGdpdmVuIGFzIG9yZGluYXJ5IGRlY2ltYWwg bnVtYmVycy4NCiAgICAgICAgICAgICAgIEhvd2V2ZXIsIHRob3NlIG51bWJl cnMgdGhhdCBoYXZlIGEgdGVuZGVuY3kgdG8gYmUgZmFpcmx5DQogICAgICAg ICAgICAgICBsYXJnZSwgc3VjaCBhcyBtZXNzYWdlIHNpemVzLCBzdWNoIGFz IG1lc3NhZ2Ugc2l6ZXMsIG1heQ0KICAgICAgICAgICAgICAgaGF2ZSBhICJL IiwgIk0iLCBvciAiRyIgYXBwZW5kZWQgdG8gaW5kaWNhdGUgYSBtdWx0aXBs ZQ0KICAgICAgICAgICAgICAgb2YgYSBiYXNlLXR3byBudW1iZXIuICBUbyBi ZSBjb21wYXJhYmxlIHdpdGggdGhlIHBvd2VyLQ0KICAgICAgICAgICAgICAg b2YtdHdvLWJhc2VkIHZlcnNpb25zIG9mIFNJIHVuaXRzIHRoYXQgY29tcHV0 ZXJzIGZyZS0NCiAgICAgICAgICAgICAgIHF1ZW50bHkgdXNlLCBLIHNwZWNp ZmllcyBraWxvLCBvciAxLDAyNCAoMl4xMCkgdGltZXMgdGhlDQogICAgICAg ICAgICAgICB2YWx1ZSBvZiB0aGUgbnVtYmVyOyBNIHNwZWNpZmllcyBtZWdh LCBvciAxLDA0OCw1NzYNCiAgICAgICAgICAgICAgICgyXjIwKSB0aW1lcyB0 aGUgdmFsdWUgb2YgdGhlIG51bWJlcjsgYW5kIEcgc3BlY2lmaWVzDQogICAg ICAgICAgICAgICBnaWdhLCBvciAxLDA3Myw3NDEsODI0ICgyXjMwKSB0aW1l cyB0aGUgdmFsdWUgb2YgdGhlDQogICAgICAgICAgICAgICBudW1iZXIuDQoN CiAgICAgICAgICAgICAgIE51bWJlcnMgYXJlIGxpbWl0ZWQgdG8gMzIgYml0 cyBieSB0aGlzIHNwZWNpZmljYXRpb24uDQoNCiAgICAgICAgICAgICAgIFtP UEVOOiBJZiBudW1iZXJzIGFyZSBsaW1pdGVkIHRvIDMyIGJpdHMsIGdpZ2Fi aXQtc2l6ZWQNCiAgICAgICAgICAgICAgIG51bWJlcnMgcHJvYmFibHkgYXJl bid0IHZlcnkgdXNlZnVsLiAgU2hvdWxkIEkgcmVtb3ZlDQogICAgICAgICAg ICAgICB0aGVtP10NCg0KMi41LiBTdHJpbmdzDQoNCiAgICAgICAgICAgICAg IFNjcmlwdHMgaW52b2x2ZSBsYXJnZSBudW1iZXJzIG9mIHN0cmluZ3MuICBU eXBpY2FsbHksDQogICAgICAgICAgICAgICBzaG9ydCBxdW90ZWQgc3RyaW5n cyBzdWZmaWNlIGZvciBtb3N0IHVzZXMsIGJ1dCBhIG1vcmUNCiAgICAgICAg ICAgICAgIGNvbnZlbmllbnQgZm9ybSBpcyBwcm92aWRlZCBmb3IgbG9uZ2Vy IHN0cmluZ3MuDQoNCiAgICAgICAgICAgICAgIEEgcXVvdGVkIHN0cmluZyBz dGFydHMgYW5kIGVuZHMgd2l0aCBhIHNpbmdsZSBkb3VibGUNCiAgICAgICAg ICAgICAgIHF1b3RlICh0aGUgIiBjaGFyYWN0ZXIpLiAgQSBiYWNrc2xhc2gg KCJcIikgaW5zaWRlIG9mIGENCiAgICAgICAgICAgICAgIHF1b3RlZCBzdHJp bmcgaXMgZm9sbG93ZWQgYnkgZWl0aGVyIGFub3RoZXIgYmFja3NsYXNoIG9y DQogICAgICAgICAgICAgICBhIGRvdWJsZSBxdW90ZS4gIFRoaXMgdHdvLWNo YXJhY3RlciBzZXF1ZW5jZSByZXByZXNlbnRzIGENCg0KDQoNClNob3dhbHRl ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbUGFnZSA3XQ0KDA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZl LVBSRS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAgICA4IEFw ciAxOTk3DQoNCg0KICAgICAgICAgICAgICAgc2luZ2xlIGJhY2tzbGFzaCBv ciBkb3VibGUtcXVvdGUgd2l0aGluIHRoZSBzdHJpbmcuICBbSWYNCiAgICAg ICAgICAgICAgIHRoZXJlIGFyZSBtaXNzaW5nIHdvcmRzIGluIHRoZSBwYXJh Z3JhcGgsIEkgaGFkIHByb2JsZW1zDQogICAgICAgICAgICAgICB3aXRoIG5y b2ZmOyBwbGVhc2UgcG9pbnQgaXQgb3V0IHRvIG1lLl0NCg0KICAgICAgICAg ICAgICAgRm9yIGVudGVyaW5nIGxhcmdlciBhbW91bnRzIG9mIHRleHQsIHN1 Y2ggYXMgYW4gZW1haWwNCiAgICAgICAgICAgICAgIG1lc3NhZ2UsIGEgbG9u Z2VyIGZvcm0gaXMgYWxsb3dlZCwga25vd24gYXMgYSAidXNlci0NCiAgICAg ICAgICAgICAgIG1lc3NhZ2UiLiAgSXQgc3RhcnRzIHdpdGggdGhlIGtleXdv cmQgIm1lc3NhZ2UiIGFuZCBlbmRzDQogICAgICAgICAgICAgICB3aXRoIHRo ZSBzZXF1ZW5jZSBvZiBhIG5ld2xpbmUsIGEgc2luZ2xlIHBlcmlvZCwgYW5k DQogICAgICAgICAgICAgICBhbm90aGVyIG5ld2xpbmUuICBBbnkgbGluZSB0 aGF0IGJlZ2lucyB3aXRoICIuLiIgaXMgY29uLQ0KICAgICAgICAgICAgICAg c2lkZXJlZCB0byBiZWdpbiB3aXRoICIuIi4NCg0KICAgICAgICAgICAgICAg WFhYIHRoaXMgZXhhbXBsZSBuZWVkcyBmb3JtYXR0aW5nIHdvcmsNCg0KDQog ICBFeGFtcGxlOiAgICBpZiBhbnktb2YgKGhlYWRlciAoImZyb20iKSBjb250 YWlucw0KICAgICAgICAgICAgICAgICAgICAgICAgICgiYmFydCIgImhvbWVy IiAic21pdGhlcnMiICJidXJucyIgImxpc2EiKSB0aGVuDQogICAgICAgICAg ICAgICAgICAgIGhlYWRlciAoInN1YmplY3QiKSBjb250YWlucyAoIlVSR0VO VCIpKSB0aGVuDQogICAgICAgICAgICAgICAgICAgIGZpbGVpbnRvICJJTkJP WCINCiAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAg cmVwbHkgbWVzc2FnZQ0KICAgICAgICAgICAgICAgICAgICBZb3UgYXJlIG5v dCBvbmUgb2YgdGhlIHBlb3BsZSBJIHJlZ3VsYXJseSBjb3JyZXNwb25kIHdp dGguDQogICAgICAgICAgICAgICAgICAgIEkgaGF2ZSBkZWxldGVkIHlvdXIg bWVzc2FnZSBkdWUgdG8gdGhlIGxhcmdlIHZvbHVtZSBvZg0KICAgICAgICAg ICAgICAgICAgICBlbWFpbCBJIHJlZ3VsYXJseSByZWNlaXZlLiAgSWYgeW91 IGZlZWwgdGhhdCB5b3UgbmVlZCB0bw0KICAgICAgICAgICAgICAgICAgICBz cGVhayB3aXRoIG1lIGRpcmVjdGx5LCBhbmQgY2Fubm90IGZpbmQgeW91ciBh bnN3ZXIgaW4gbXkNCiAgICAgICAgICAgICAgICAgICAgd2ViIHBhZ2VzLCBw bGVhc2Ugc2VuZCBtYWlsIHdpdGggdGhlIHdvcmQgIlVSR0VOVCIgaW4gdGhl DQogICAgICAgICAgICAgICAgICAgIHN1YmplY3QgbGluZS4gIFRoYW5rIHlv dSBmb3IgeW91ciB0aW1lLg0KICAgICAgICAgICAgICAgICAgICBbT05FIFNJ TkdMRSBET1QsIHdoaWNoIEkgY2FuJ3QgZ2V0IG5yb2ZmIHRvIHByb2R1Y2UN CiAgICAgICAgICAgICAgICAgICAgLi4uXQ0KICAgZW5kaWYNCg0KDQoyLjUu MS4gSGVhZGVycw0KDQpbT1BFTiBJU1NVRTogSXMgdGhpcyBzZWN0aW9uIG5l Y2Vzc2FyeSBvciB1c2VmdWw/XQ0KDQpIZWFkZXJzIGFyZSBhIHN1YnNldCBv ZiBzdHJpbmdzLiAgSW4gdGhlIEludGVybmV0IE1lc3NhZ2UgU3BlY2lmaWNh dGlvbg0KW0lNQUlMXSwgZWFjaCBoZWFkZXIgbGluZSBpcyBhbGxvd2VkIHRv IGhhdmUgd2hpdGVzcGFjZSBuZWFybHkgYW55d2hlcmUNCmluIHRoZSBsaW5l LCBpbmNsdWRpbmcgYWZ0ZXIgdGhlIGZpZWxkIG5hbWUgYW5kIGJlZm9yZSB0 aGUgc3Vic2VxdWVudA0KY29sb24uICBUaHVzLCB0aGUgbGluZXMgIkZyb206 IGFjbUBhbmRyZXcuY211LmVkdSIgaXMgZXF1aXZhbGVudCB0bw0KIkZyb20g ICAgOiAgICBhY21AYW5kcmV3LmNtdS5lZHUiLiAgV2l0aGluIGEgU0lFVkUg c2NyaXB0LCBoZWFkZXIgbmFtZXMNCmFyZSBuZXZlciBjb25zaWRlcmVkIHRv IGhhdmUgc3BhY2VzLiAgT25seSB0aGUgIkZyb20iIGluIHRoZSBhYm92ZQ0K aGVhZGVycyBpcyBjb25zaWRlcmVkIHRvIGJlIHRoZXJlLiAgV2hpbGUgYSBo ZWFkZXIgY2FuIGJlIGxpc3RlZCBhcw0KIkZyb20gICAiIHdpdGhpbiBhIGhl YWRlciBsaXN0IChzYXksIGZvciB0aGUgImhlYWRlciIgY29tbWFuZCkgc3Vj aA0KdXNhZ2UgaXMgYWJzdXJkLiAgVGhlIGZvbGxvd2luZyBjb2xvbiBpcyBu ZXZlciBzcGVjaWZpZWQ7IGEgaGVhZGVyDQoiRnJvbToiLCBhcyB3ZWxsIGFz IGEgaGVhZGVyICI6RnJvbSIsIGlzIGd1YXJhbnRlZWQgbmV2ZXIgdG8gaGFw cGVuDQp3aXRoaW4gYSB2YWxpZCBoZWFkZXIuDQoNCjIuNS4yLiBBZGRyZXNz ZXMNCg0KDQoNClNob3dhbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbUGFnZSA4XQ0KDA0KZHJh ZnQtc2hvd2FsdGVyLXNpZXZlLVBSRS50eHQgICAgU0lFVkUgICAgICAgICAg ICAgICAgICAgICAgICA4IEFwciAxOTk3DQoNCg0KW09QRU4gSVNTVUU6IElz IHRoaXMgc2VjdGlvbiBuZWNlc3Nhcnkgb3IgdXNlZnVsP10NCg0KQSBudW1i ZXIgb2YgY29tbWFuZHMgY2FsbCBmb3IgZW1haWwgYWRkcmVzc2VzLCB3aGlj aCBhcmUgYWxzbyBhIHN1YnNldA0Kb2Ygc3RyaW5ncy4gIFRoZXNlIGFkZHJl c3NlcyBtdXN0IGJlIGNvbXBsaWFudCB3aXRoIFtJTUFJTF0uICBJbXBsZW1l bi0NCnRhdGlvbnMgTVVTVCBpbnN1cmUgdGhlIGFkZHJlc3NlcyBhcmUgc3lu dGFjdGljYWxseSB2YWxpZCwgYW5kIG5lZWQgbm90DQppbnN1cmUgdGhhdCB0 aGV5IGFyZSBhY3R1YWxseSBkZWxpdmVyYWJsZS4NCg0KMi43LiBFdmFsdWF0 aW9uDQoNCklmIGV2YWx1YXRpb24gb2YgdGhlIHNjcmlwdCBmYWlscyB0byBm aWxlIHRoZSBtZXNzYWdlIGludG8gYW55IG1haWxib3gsDQphcyBpbiB0aGUg Zm9sbG93aW5nIHNjcmlwdCwgdGhlIG1lc3NhZ2UgaXMgZmlsZWQgaW50byBJ TkJPWC4gIFdpdGggYW55DQpvZiB0aGUgc2hvcnQgbWVzc2FnZXMgb2ZmZXJl ZCBhYm92ZSwgdGhlIGZvbGxvd2luZyBzY3JpcHQgcHJvZHVjZXMgbm8NCmFj dGlvbnMuDQoNCkV4YW1wbGU6ICAgIGlmIHNpemUgb3ZlciA1MDBLIHRoZW4g dG9zcyBlbmRpZg0KDQp0aGVuIHRoZSAibm9ybWFsIiBhY3Rpb24gaXMgdGFr ZW4uICBUaGUgIm5vcm1hbCIgYWN0aW9uIGlzIGRlZmluZWQgdG8gYmUNCnRo ZSBhY3Rpb24gdGhhdCBpcyB0YWtlbiBub3JtYWxseSwgc3VjaCBhcyBpbiBh IHNpdHVhdGlvbiB3aGVyZSB0aGUgdXNlcg0KZG9lcyBubyBmaWx0ZXJpbmcu ICBVbmRlciBtb3N0IHNpdHVhdGlvbnMsIHRoZSBub3JtYWwgYWN0aW9uIGlz IHRvIGZpbGUNCmludG8gdGhlIHVzZXIncyBtYWluIG1haWxib3ggKHN1Y2gg YXMgIklOQk9YIiB1bmRlciBJTUFQKS4NCg0KSW1wbGVtZW50YXRpb25zIGRl ZmluZSB0aGUgc3BlY2lmaWMgbWVhbmluZ3Mgb2YgYWN0aW9ucy4gIEltcGxl bWVudGEtDQp0aW9ucyBtYXkgaW1wb3NlIHJlc3RyaWN0aW9ucyBvbiB0aGUg YWN0aW9ucyB0YWtlbiwgc3VjaCBhcyBvbmx5IGhvbm9yLQ0KaW5nIG9uZSAi cmVwbHkiLCAiYm91bmNlIiwgb3IgImZvcndhcmQiIHBlciBtZXNzYWdlLg0K DQpQcmVjZWRlbmNlIGlzIG5vdCBpbXBvcnRhbnQgaW4gYW55IG9mIHRoZSBj b21tYW5kcyBpbiB0aGlzIGJhc2Ugc3BlY2lmaS0NCmNhdGlvbi4gIEhvd2V2 ZXIsIGFzIGFuIGV4dGVuc2lvbiBtaWdodCBtYWtlIGl0IG1vcmUgaW1wb3J0 YW50LCBhbGwNCnJ1bGVzIE1VU1QgYmUgZXZhbHVhdGVkIGluIGxlZnQtdG8t cmlnaHQgb3JkZXIuICBUaG9zZSBvcGVyYXRpb25zIHRoYXQNCm1heSBpbXBs ZW1lbnQgc2hvcnQtY2lyY3VpdCBldmFsdWF0aW9uIChzdWNoIGFzIHRoZSAi YWxsLW9mIiBhbmQgImFueS0NCm9mIiBvcGVyYXRvcnMsIHdoaWNoIHByZWZv cm0gbG9naWNhbCAiYW5kIiBhbmQgIm9yIiBvcGVyYXRpb25zLCByZXNwZWMt DQp0aXZlbHkpIFNIT1VMRCBkbyBzby4NCg0KMy4gICBDb25kaXRpb25hbHMg YW5kIENvbnRyb2wgU3RydWN0dXJlcw0KDQpJbiBvcmRlciBmb3IgYSBzY3Jp cHQgdG8gZG8gbW9yZSB0aGFuIG9uZSBzZXQgb2YgYWN0aW9ucywgY29udHJv bCBzdHJ1Yy0NCnR1cmVzIGFyZSBuZWVkZWQuDQoNCjMuMS4gSWYNCg0KU3lu dGF4OiAgICAgaWYgPHRlc3Q+IHRoZW4gPGNvbW1hbmRzPg0KICAgICAgICAg ICAgW2Vsc2lmIDxlbHNpZi10ZXN0PiB0aGVuIDxlbHNpZi1jb21tYW5kcz4g W2Vsc2lmIC4uLl1dDQogICAgICAgICAgICBbZWxzZSA8ZWxzZS1jb21tYW5k cz5dDQogICAgICAgICAgICBlbmRpZg0KDQpUaGUgImlmIiBjb250cm9sIHN0 cnVjdHVyZSBpcyBib3Jyb3dlZCBmcm9tIGFueSBudW1iZXIgb2YgcHJvZ3Jh bW1pbmcNCmxhbmd1YWdlcy4gIEl0IGlzIGV2YWx1YXRlZCBpbiB0aGUgdXN1 YWwgd2F5LCBhcyBmb2xsb3dzOiBpZiA8dGVzdD4gaXMNCnRydWUsIHRoZW4g PGNvbW1hbmRzPiBhcmUgZXZhbHVhdGVkLiAgSWYgYW4gZWxzaWYga2V5d29y ZCBleGlzdHMsIGFuZA0KPG5leHQtdGVzdD4gaXMgdHJ1ZSwgdGhlbiA8ZWxz aWYtY29tbWFuZHM+IGFyZSBldmFsdWF0ZWQuICBBbnkgbnVtYmVyIG9mDQoN Cg0KDQpTaG93YWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgW1BhZ2UgOV0NCgwNCmRyYWZ0LXNo b3dhbHRlci1zaWV2ZS1QUkUudHh0ICAgIFNJRVZFICAgICAgICAgICAgICAg ICAgICAgICAgOCBBcHIgMTk5Nw0KDQoNCmVsc2lmIGNhc2VzIG1heSBiZSBp bmNsdWRlZCwgYW5kIGFyZSBldmFsdWF0ZWQgc2VyaWFsbHkuICBJZiA8dGVz dD4gaXMNCmZhbHNlIGFuZCB0aGUgPGVsc2lmLXRlc3Q+cyBhcmUgZmFsc2Ug YXMgd2VsbCwgdGhlbiB0aGUgPGVsc2UtY29tbWFuZHM+DQphcmUgZXZhbHVh dGVkLiAgVGhlICJpZiIgYmxvY2sgaXMgdGVybWluYXRlZCB3aXRoIGFuICJl bmRpZiIga2V5d29yZCwNCndoaWNoIGlzIHJlcXVpcmVkLg0KDQpJbiB0aGUg Zm9sbG93aW5nIGV4YW1wbGUsIGJvdGggTWVzc2FnZSBBIGFuZCBCIGFyZSBk cm9wcGVkLg0KDQpFeGFtcGxlOiAgICBpZiBoZWFkZXIgKCJmcm9tIikgY29u dGFpbnMgKCJjb3lvdGUiKSB0aGVuDQogICAgICAgICAgICB0b3NzDQogICAg ICAgICAgICBlbHNpZiBoZWFkZXIgKCJzdWJqZWN0IikgY29udGFpbnMgKCIk JCQiKQ0KICAgICAgICAgICAgdGhlbiB0b3NzDQogICAgICAgICAgICBlbHNl IGZpbGVpbnRvICJJTkJPWCINCiAgICAgICAgICAgIGVuZGlmDQoNCk9ubHkg b25lIHNldCBvZiBjb21tYW5kcyAgaW4gYW4gaWYgLi4uIGVsc2lmIC4uLiBl bHNpZiAuLi4gZWxzZSAuLi4NCmVuZGlmIGJsb2NrIGlzIGV4ZWN1dGVkLg0K DQpJbiB0aGUgc2NyaXB0IGJlbG93LCB3aGVuIHJ1biBvdmVyIG1lc3NhZ2Ug QSwgZm9yd2FyZHMgdGhlIG1lc3NhZ2UgdG8NCmFjbUBhbmRyZXcuY211LmVk dTsgbWVzc2FnZSBCLCB0byBzZXJ2aWNlQGFuZHJldy5jbXUuZWR1OyBhbnkg b3RoZXIgbWVzLQ0Kc2FnZSBpcyBmb3J3YXJkZWQgdG8gcG9zdG1hbkBhbmRy ZXcuY211LmVkdS4NCg0KRXhhbXBsZTogICAgaWYgaGVhZGVyICgiIikgY29u dGFpbnMgKCIiKSB0aGVuDQogICAgICAgICAgICAgICAgIGZvcndhcmQgImFj bUBhbmRyZXcuY211LmVkdSI7DQogICAgICAgICAgICBlbHNpZiBoZWFkZXIg KCJTdWJqZWN0IikgY29udGFpbnMgKCIkJCQiKSB0aGVuDQogICAgICAgICAg ICAgICAgIGZvcndhcmQgInNlcnZpY2VAYW5kcmV3LmNtdS5lZHUiOw0KICAg ICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICBmb3J3YXJkICJwb3N0 bWFuQGFuZHJldy5jbXUuZWR1IjsNCiAgICAgICAgICAgIGVuZGlmDQoNCg0K My4yLiBSZXF1aXJlDQoNClN5bnRheDogICAgIHJlcXVpcmUgPGV4dGVuc2lv bi1uYW1lPg0KDQpSZXF1aXJlIFNIT1VMRCBiZSBkZWNsYXJlZCBpbiBhIHVz ZXIgc2NyaXB0IGJlZm9yZSBhbiBleHRlbnNpb24gaXMgdXNlZC4NCkl0IGlu c3RydWN0cyB0aGUgZXZhbHVhdG9yIHRoYXQgdGhlIGV4dGVuc2lvbiBuYW1l ZCBleHRlbnNpb24tbmFtZSwgc3VwLQ0KcGxpZWQgYXMgYSBzdHJpbmcsIE1V U1QgYmUgcHJlc2VudCBpbiBvcmRlciB0byBhbGxvdyBmdXJ0aGVyIHByb2Nl c3NpbmcuDQpJZiB0aGUgc3RyaW5nIHNwZWNpZmllcyBhbiBleHRlbnNpb24g dGhhdCB0aGUgZXZhbHVhdGluZyBtZWNoYW5pc20gc3VwLQ0KcG9ydHMsIHRo ZW4gcHJvY2Vzc2luZyBjb250aW51ZXMuICBPdGhlcndpc2UsIGFuIGVycm9y IGhhcyBiZWVuIGVuY291bi0NCnRlcmVkLCBhbmQgdGhlIHNjcmlwdCBzaG91 bGQgbm90IGJlIGV2YWx1YXRlZC4NCg0KUmVxdWlyZSBpcyBpbnRlbmRlZCB0 byBkZW1hbmQgdGhlIHVzZSBvZiBhbiBleHRlbnNpb24gbm90IHByZXNlbnQg aW4NCnRoaXMgZG9jdW1lbnQuDQoNClRoZSBmb2xsb3dpbmcgZXhhbXBsZSB3 aWxsIGZhaWwgb24gYW55IHNlcnZlciB0aGF0IGRvZXMgbm90IGltcGxlbWVu dA0KdGhlIGV4dGVuc2lvbiBrbm93biBhcyBEV0lNLg0KDQoNCg0KDQoNClNo b3dhbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFtQYWdlIDEwXQ0KDA0KZHJhZnQtc2hvd2FsdGVy LXNpZXZlLVBSRS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAg ICA4IEFwciAxOTk3DQoNCg0KRXhhbXBsZTogICAgcmVxdWlyZSAiZHdpbSI7 IGlmIGhlYWRlciAoInN1YmplY3QiKSBjb250YWlucy1ub2Nhc2UgKCJ0aGUN CiAgICAgICAgICAgIHNlY3JldCBtZXNzYWdlIikgdGhlbg0KICAgICAgICAg ICAgICAgICBkd2ltIGJsdXJkeWJsb29wIGJvZHk7DQogICAgICAgICAgICBl bmRpZiBzdG9wDQoNCg0KNC4gICBBY3Rpb25zIFRoaXMgZG9jdW1lbnQgc3Vw cGxpZXMgc2l4IGFjdGlvbnMgdGhhdCBtYXkgYmUgdGFrZW4gb24gYQ0KbWVz c2FnZTogbm9ybWFsLCBmaWxlaW50bywgZm9yd2FyZCwgYm91bmNlLCB0b3Nz LCBhbmQgc3RvcC4NCg0KNC4xLiBBY3Rpb24gYm91bmNlDQoNClN5bnRheDog ICAgIGJvdW5jZQ0KDQpUaGUgImJvdW5jZSIgYWN0aW9uIHJlc2VuZHMgdGhl IG1lc3NhZ2UgdG8gdGhlIHNlbmRlciwgd3JhcHBpbmcgaXQgaW4gYQ0KImJv dW5jZSIgZm9ybSwgbm90aW5nIHRoYXQgaXQgd2FzIHJlamVjdGVkIGJ5IHRo ZSByZWNpcGllbnQuICBJbiB0aGUNCmZvbGxvd2luZyBzY3JpcHQsIG1lc3Nh Z2UgQSBpcyBib3VuY2VkIHRvIHRoZSBzZW5kZXIuDQoNCkV4YW1wbGU6ICAg IGlmIGhlYWRlciAoImZyb20iKSBjb250YWlucyAoImNveW90ZUBhbnZpbC5k ZW1lbnRpYS5vcmciKQ0KICAgICAgICAgICAgdGhlbg0KICAgICAgICAgICAg ICAgIGJvdW5jZSAiSSBhbSBub3QgdGFraW5nIG1haWwgZnJvbSB5b3UsIHlv dSBraWxsZXIhIg0KICAgICAgICAgICAgZW5kaWYNCg0KNC4yLiAgIEFjdGlv biBmaWxlaW50bw0KDQpTeW50YXg6ICAgICBmaWxlaW50byA8Zm9sZGVyPg0K DQpbT1BFTiBJU1NVRTogSSBjb3VsZCBiZSB0YWxrZWQgaW50byBtYWtpbmcg ZmlsZWludG8gb3B0aW9uYWwgZm9yIFBPUDMNCnNlcnZlciBhZ2VudHMgdGhh dCB3YW50ZWQgdG8gc2ltcGx5IHRocm93IG1haWwgb3V0IGFuZCB0aGVuIGRv IHVzZXINCmZpbHRlcmluZyBvbiB0aGUgY2xpZW50Ll0NCg0KVGhlICJmaWxl aW50byIgYWN0aW9uIGRyb3BzIHRoZSBtZXNzYWdlIGludG8gYSBuYW1lZCBm b2xkZXIuICBJbiB0aGUNCmZvbGxvd2luZyBzY3JpcHQsIG1lc3NhZ2UgQSBp cyBmaWxlZCBpbnRvIGZvbGRlciAiSU5CT1guaGFyYXNzbWVudCIuDQoNCkV4 YW1wbGU6ICAgIGlmIGhlYWRlciAoInRvIikgY29udGFpbnMNCg0KNC4zLiBB Y3Rpb24gZm9yd2FyZA0KDQpTeW50YXg6ICAgICBmb3J3YXJkIDxhZGRyZXNz Pg0KDQpUaGUgImZvcndhcmQiIGFjdGlvbiBpcyB1c2VkIHRvIGZvcndhcmQg dGhlIG1lc3NhZ2UgdG8gYW5vdGhlciB1c2VyIGF0DQp0aGUgc3VwcGxpZWQg YWRkcmVzcywgYXMgYSBtYWlsIGZvcndhcmRpbmcgZmVhdHVyZSBkb2VzLiAg VGhlICJmb3J3YXJkIg0KYWN0aW9uIG1ha2VzIG5vIGNoYW5nZXMgdG8gdGhl IG1lc3NhZ2UgYm9keSBvciBoZWFkZXJzLCBhbmQgb25seSBtb2RpLQ0KZmll cyB0aGUgZW52ZWxvcGUuDQoNCkEgc2ltcGxlIHNjcmlwdCBjYW4gYmUgdXNl ZCBmb3IgZm9yd2FyZGluZzoNCg0KRXhhbXBsZTogICAgZm9yd2FyZCAidGpz QGFuZHJldy5jbXUuZWR1Ig0KDQoNCg0KDQpTaG93YWx0ZXIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb UGFnZSAxMV0NCgwNCmRyYWZ0LXNob3dhbHRlci1zaWV2ZS1QUkUudHh0ICAg IFNJRVZFICAgICAgICAgICAgICAgICAgICAgICAgOCBBcHIgMTk5Nw0KDQoN CjQuNC4gQWN0aW9uIG5vcm1hbA0KDQpTeW50YXg6ICAgICBub3JtYWwNCg0K VGhlICJub3JtYWwiIGFjdGlvbiBpcyB3aGF0ZXZlciBhY3Rpb24gaXMgdGFr ZW4gaW4gbGlldSBvZiBhbGwgb3RoZXINCmFjdGlvbnM7IGdlbmVyYWxseSwg dGhpcyBzaW1wbHkgbWVhbnMgdG8gZHJvcCB0aGUgbWVzc2FnZSBpbnRvIHRo ZQ0KdXNlcidzIG5vcm1hbCBtYWlsYm94LiAgVGhpcyBjb21tYW5kIHByb3Zp ZGVzIGEgd2F5IHRvIGV4ZWN1dGUgdGhpcw0KYWN0aW9uIHdpdGhvdXQgbmFt aW5nIGl0IGV4cGxpY2l0bHksIHByb3ZpZGluZyBhIHdheSB0byB1c2UgaXQg aW5kZXBlbi0NCmRlbnQgb2Ygc3lzdGVtLg0KDQpTeW50YXg6ICAgICBpZiBz aXplIHVuZGVyIDFNIHRoZW4gbm9ybWFsIGVsc2UgdG9zcw0KDQo0LjUuIEFj dGlvbiByZXBseQ0KDQpTeW50YXg6ICAgICByZXBseSA8bWVzc2FnZT4NCg0K VGhlICJyZXBseSIgYWN0aW9uIGlzIHVzZWQgdG8gZ2VuZXJhdGUgYSBmb3Jt IGxldHRlciByZXBseSB0byB0aGUgb3JpZ2ktDQpuYWwgc2VuZGVyLiAgTWVz c2FnZSBpcyBhIHN0cmluZyB0byBiZSBzZW50IGFzIGEgcmVwbHkgbWVzc2Fn ZS4gIFRoZQ0KbXVsdGktbGluZSA8dXNlci1tZXNzYWdlPiBwcm9kdWN0aW9u IGRlc2NyaWJlZCBpbiB0aGUgRm9ybWFsIEdyYW1tYXINCnNlY3Rpb24gaXMg aW50ZW5kZWQgZm9yIHRoaXMgcHVycG9zZS4gIEluIHRoZSBmb2xsb3dpbmcg ZXhhbXBsZSwgYW55DQptZXNzYWdlIG92ZXIgNTAwSyAob3IgNTEyLDAwMCBv Y3RldHMpIHdvdWxkIGJlIHRocm93biBvdXQ7IG90aGVyd2lzZSwNCnRoZSBt ZXNzYWdlIHdvdWxkIGJlIGZpbGVkIGludG8gSU5CT1guDQoNCkV4YW1wbGU6 ICAgIGlmIHNpemUgb3ZlciA1MDBLIHJlcGx5IG1lc3NhZ2UNCiAgICAgICAg ICAgIFlvdXIgbWVzc2FnZSB3YXMgdW5uZWNlc3NhcmlseSBsYXJnZS4NCiAg ICAgICAgICAgIEkgcmVqZWN0IGFsbCBsYXJnZSBtZXNzYWdlczsgeW91IHdp bGwgbmVlZCB0byBjb250YWN0IG1lDQogICAgICAgICAgICBkaXJlY3RseS4N CiAgICAgICAgICAgIHRvc3MNCiAgICAgICAgICAgIGVuZGlmDQoNCk9QRU46 IFNwZWNpZnkgaGVhZGVycyB0cmFuc21pdHRlZD8NCg0KT1BFTjogU3BlY2lm eSB3YXkgdG8gZG8gdmFjYXRpb24/ICBBIHByZXZpb3VzIHZlcnNpb24gb2Yg dGhpcyBoYWQgYQ0KLWRheXMgc3dpdGNoIHRvIHNwZWNpZnkgbnVtYmVyIG9m IGRheXMgdG8gZG8gYSBuZXcgcmVwbHkuDQoNCjQuNi4gQWN0aW9uIHN0b3Ag VGhlICJzdG9wIiBhY3Rpb24gZW5kcyBhbGwgcHJvY2Vzc2luZy4gIElmIG5v IGFjdGlvbnMNCmhhdmUgYmVlbiBleGVjdXRlZCwgdGhlbiB0aGUgbm9ybWFs IGFjdGlvbiBpcyB0YWtlbi4NCg0KSW4gdGhlIGZvbGxvd2luZyBzY3JpcHQs IGlmIHRoZSBtYWlsIGlzIGZyb20gdGhlIGFkZHJlc3MNCiJ3YWxsQGFuZHJl dy5jbXUuZWR1IiBpdCBpcyBmb3J3YXJkZWQgdG8gInRqc0B4YW5hZHUud3Yu dXMiOyBvdGhlcndpc2UNCnRoZSBtYWlsIHJlY2VpdmVzIGEgcmVwbHksIGFu ZCBpcyB0aHJvd24gb3V0Lg0KDQpFeGFtcGxlOiAgICBpZiAoaGVhZGVyICgi ZnJvbSIpIG1hdGNoZXMgKCJ3YWxsQGFuZHJldy5jbXUuZWR1IikpDQogICAg ICAgICAgICAgICAgIHRoZW4gZm9yd2FyZCAidGpzQHhhbmFkdS53di51cyI7 IHN0b3ANCiAgICAgICAgICAgIGVuZGlmIHJlcGx5ICJJJ20gb24gdmFjYXRp b24gYW5kIG5vdCB0YWtpbmcgYW55IG1lc3NhZ2VzOw0KICAgICAgICAgICAg dHJ5IGFmdGVyIFN1bmRheS4gIEkgaGF2ZSB0aHJvd24geW91ciBtZXNzYWdl IG91dC4gIFBsZWFzZQ0KICAgICAgICAgICAgcmVzZW5kIGl0IGxhdGVyLiIg OyB0b3NzDQoNCg0KDQoNClNob3dhbHRlciAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDEyXQ0K DA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZlLVBSRS50eHQgICAgU0lFVkUgICAg ICAgICAgICAgICAgICAgICAgICA4IEFwciAxOTk3DQoNCg0KNC43LiBBY3Rp b24gdG9zcyBUb3NzIGRyb3BzIHRoZSBtZXNzYWdlLiAgSW4gdGhlIGZvbGxv d2luZyBzY3JpcHQsIGFueQ0KbWFpbCBmcm9tICJ3YWxsQGFuZHJldy5jbXUu ZWR1IiBpcyB0aHJvd24gb3V0Lg0KDQpFeGFtcGxlOiAgICBpZiBoZWFkZXIg KCJmcm9tIikgY29udGFpbnMgKCJ3YWxsQGFuZHJldy5jbXUuZWR1IikgdGhl bg0KICAgICAgICAgICAgdG9zcyBlbmRpZg0KDQo1LiAgIFRlc3RzDQoNClRl c3RzIGFyZSB1c2VkIGluIGNvbmRpdGlvbmFscyB0byBkZWNpZGUgd2hpY2gg cGFydChzKSBvZiB0aGUgY29uZGktDQp0aW9uYWwgdG8gZXhlY3V0ZS4NCg0K NS4xLiBhbGwtb2YNCg0KU3ludGF4OiAgICAgYWxsLW9mICggPHRlc3Q+IFss XSA8dGVzdD4gWyxdIC4uLiA8dGVzdD4gKQ0KDQpUaGUgYWxsLW9mIHRlc3Qg cHJlZm9ybXMgYSBsb2dpY2FsIEFORCBvbiB0aGUgdGVzdHMgc3VwcGxpZWQg dG8gaXQuDQoNClRoZSBjb21tYSBpbiBiZXR3ZWVuIHRlc3RzIGlzIG9wdGlv bmFsLg0KDQoNCkV4YW1wbGU6ICAgIGFsbC1vZiAoZmFsc2UgZmFsc2UpICA9 PiAgIGZhbHNlDQogICAgICAgICAgICBhbGwtb2YgKGZhbHNlIHRydWUpICAg PT4gICBmYWxzZQ0KICAgICAgICAgICAgYWxsLW9mICh0cnVlLCB0cnVlKSAg ID0+ICAgdHJ1ZQ0KDQoNCjUuMi4gYW55LW9mDQoNClN5bnRheDogICAgIGFs bC1vZiAoIDx0ZXN0PiBbLF0gPHRlc3Q+IFssXSAuLi4gPHRlc3Q+ICkNCg0K VGhlIGFueS1vZiB0ZXN0IHByZWZvcm1zIGEgbG9naWNhbCBPUiBvbiB0aGUg dGVzdHMgc3VwcGxpZWQgdG8gaXQuDQoNClRoZSBjb21tYSBpbiBiZXR3ZWVu IHRlc3RzIGlzIG9wdGlvbmFsLg0KDQoNCkV4YW1wbGU6ICAgIGFsbC1vZiAo ZmFsc2UgZmFsc2UpICA9PiAgIGZhbHNlDQogICAgICAgICAgICBhbGwtb2Yg KGZhbHNlIHRydWUpICAgPT4gICB0cnVlDQogICAgICAgICAgICBhbGwtb2Yg KHRydWUsIHRydWUpICAgPT4gICB0cnVlDQoNCg0KNS4zLiBleGlzdHMNCg0K U3ludGF4OiAgICAgZXhpc3RzIDxoZWFkZXItbmFtZS1saXN0Pg0KDQoNClRo ZSAiZXhpc3RzIiB0ZXN0IGlzIHRydWUgaWYgdGhlIGhlYWRlcnMgbGlzdGVk IGluIHRoZSA8aGVhZGVyLW5hbWUtDQpsaXN0PiBhcmd1bWVudCBleGlzdCB3 aXRoaW4gdGhlIG1lc3NhZ2UuICBBbGwgb2YgdGhlIGhlYWRlcnMgbXVzdCBl eGlzdA0Kb3IgdGhlIHRlc3QgaXMgZmFsc2UuDQoNCg0KDQoNClNob3dhbHRl ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtQYWdlIDEzXQ0KDA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZl LVBSRS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAgICA4IEFw ciAxOTk3DQoNCg0KRXhhbXBsZTogICAgaWYgbm90IGV4aXN0cyAoIkZyb20i ICJEYXRlIiAiU3ViamVjdCIgIlRvIiAiTWVzc2FnZS1JRCIpDQogICAgICAg ICAgICB0aGVuDQogICAgICAgICAgICAgICAgIHRvc3MNCiAgICAgICAgICAg IGVuZGlmDQoNCg0KNS40LiBmYWxzZQ0KDQpTeW50YXg6ICAgICBmYWxzZQ0K DQoNClRoZSAiZmFsc2UiIHRlc3QgYWx3YXlzIGV2YWx1YXRlcyB0byBmYWxz ZS4NCg0KNS41LiBoZWFkZXINCg0KU3ludGF4OiAgICAgaGVhZGVyIDxoZWFk ZXItbmFtZS1saXN0Pg0KICAgICAgICAgICAgPCJjb250YWlucyIvImlzIi8i bWF0Y2hlcyIvImNvbnRhaW5zLW5vY2FzZSIgLyAiaXMtDQogICAgICAgICAg ICBub2Nhc2UiLyJtYXRjaGVzLW5vY2FzZSI+IDxrZXktbGlzdD4NCg0KVGhl ICJoZWFkZXIiIHRlc3QgZXZhbHVhdGVzIHRvIHRydWUgaWYgdGhlIGhlYWRl ciBuYW1lIG1hdGNoZXMga2V5LiAgSG93DQp0aGUgbWF0Y2ggaXMgZG9uZSBp cyBkZXNjcmliZWQgYnkgdGhlIHNlY29uZCBhcmd1bWVudC4gIFRoZSBiYXNp YyBtYXRjaC0NCmluZyBmb3JtcyBhcmUgY2FzZSBzZW5zaXRpdmUuICBFYWNo IG1hdGNoaW5nIGZvcm0gaGFzIGEgY29ycmVzcG9uZGluZw0KZm9ybSBlbmRp bmcgaW4gIi1ub2Nhc2UiOyB0aGVzZSBhcmUgbm90IGNhc2Ugc2Vuc2l0aXZl Lg0KDQpBbGwgbWF0Y2hpbmdzIG9uIGhlYWRlciBmaWVsZCBuYW1lcyBNVVNU IGJlIGRvbmUgaW4gYSBjYXNlIGluc2Vuc2l0aXZlDQptYW5uZXIuDQoNClRo ZSAiaXMiIGFyZ3VtZW50IGRlbWFuZHMgdGhhdCBvbmUgb2YgdGhlIGZpZWxk cyBvZiB0aGUgaGVhZGVycyBsaXN0ZWQNCmluIGhlYWRlci1uYW1lLWxpc3Qg Y2FuIGJlIGZvdW5kIGluIHRoZSBrZXktbGlzdC4gIEl0IHJlcXVpcmVzIGFu IGFic28tDQpsdXRlIG1hdGNoLiAgSXQgaXMgdHJ1ZSBpZiB0aGVyZSBhcmUg cmVwZWF0ZWQgYXJndW1lbnRzIGluIHRoZSBoZWFkZXItDQpuYW1lLWxpc3Qg b3IgdGhlIGtleS1saXN0Lg0KDQpUaGUgImNvbnRhaW5zIiBhcmd1bWVudCBk ZW1hbmRzIHRoYXQgb25lIG9mIHRoZSB2YWx1ZXMgb2YgdGhlIGhlYWRlcnMN Cm5hbWVkIGluIGhlYWRlci1uYW1lLWxpc3QgcGFydGlhbGx5IG1hdGNoZXMg b25lIG9mIHRoZSB2YWx1ZXMgaW4ga2V5LQ0KbGlzdC4gIEl0IGlzIHRydWUg aWYgdGhlcmUgYXJlIHJlcGVhdGVkIGFyZ3VtZW50cyBpbiB0aGUgaGVhZGVy LW5hbWUtDQpsaXN0IG9yIHRoZSBrZXktbGlzdC4gIFRoZSBzdHJpbmcgIiIg aXMgY29udGFpbmVkIGluIGFueSBoZWFkZXIgdGhhdA0KZXhpc3RzLg0KDQpU aGUgIm1hdGNoZXMiIGFyZ3VtZW50IGRlbWFuZHMgdGhhdCBvbmUgb2YgdGhl IGZpZWxkcyBvZiB0aGUgaGVhZGVycw0KbGlzdGVkIGluIGhlYWRlci1uYW1l LWxpc3QgbWF0Y2hlcyBhICJnbG9iIiBwYXR0ZXJuIGRlc2NyaWJlZCBieSBv bmUgb2YNCnRoZSBtZW1iZXJzIG9mIGtleS1saXN0LiAgQSBnbG9iIHBhdHRl cm4gaXMgYSBVTklYLXN0eWxlIGZpbGVuYW1lIGdsb2IsDQp3aGljaCBoYXMg dGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnM6DQoNCiAgICAgICAg KiAgICAgTWF0Y2ggemVybyBvciBtb3JlIGNoYXJhY3RlcnMNCiAgICAgICAg PyAgICAgTWF0Y2ggYW55IHNpbmdsZSBjaGFyYWN0ZXINCiAgICAgICAgICAg ICBFc2NhcGUgbmV4dCBjaGFyYWN0ZXINCg0KVGhlIHN0cmluZyAiIiBtYXRj aGVzIGFsbCBzdHJpbmdzIHRoYXQgZXhpc3QuICBUaGF0IGlzLCBpZiBhIG1l c3NhZ2UNCg0KDQoNClNob3dhbHRlciAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDE0XQ0KDA0K ZHJhZnQtc2hvd2FsdGVyLXNpZXZlLVBSRS50eHQgICAgU0lFVkUgICAgICAg ICAgICAgICAgICAgICAgICA4IEFwciAxOTk3DQoNCg0KY29udGFpbnMgdGhl IGxpbmUgW1hYWCBmb3JtYXR0ZWQgaW1wcm9wZXJseV0NCg0KICAgICAgICBY LUJsdXJkeWJsb29wOiBkZWF0aCB0byB0aGUgaGVhdGhlbnMNCg0KdGhlIHRl c3RzIG9uIHRoYXQgaGVhZGVyIGV2YWx1YXRlIGFzIGZvbGxvd3M6DQoNCiAg ICAgICAgaGVhZGVyICgiWC1CbHVyZHlibG9wIikgaXMgKCIiKSAgICAgICAg ID0+IGZhbHNlDQogICAgICAgIGhlYWRlciAoIlgtQmx1cmR5YmxvcCIpIG1h dGNoZXMgKCIiKSAgICA9PiB0cnVlDQogICAgICAgIGhlYWRlciAoIlgtQmx1 cmR5YmxvcCIpIGNvbnRhaW5zICgiIikgICA9PiB0cnVlDQoNCjUuNi4gbm90 DQoNClN5bnRheDoNCiAgICAgbm90IDx0ZXN0Pg0KDQpUaGUgIm5vdCIgdGVz dCB0YWtlcyBzb21lIG90aGVyIHRlc3QsIGFuZCByZXR1cm5zIHRoZSBvcHBv c2l0ZSByZXN1bHQuDQoNCjUuNy4gc2l6ZQ0KDQpTeW50YXg6DQogICAgIHNp emUgPCJvdmVyIiAvICJ1bmRlciI+IDxsaW1pdCBbcXVhbnRpZmllcl0+DQoN ClRoZSAic2l6ZSIgdGVzdCBkZWFscyB3aXRoIHRoZSBzaXplIG9mIGEgbWVz c2FnZS4gIFRoZSB0ZXN0IGlzIHRydWUgb25seQ0KaWYgdGhlIHNlY29uZCBh cmd1bWVudCBpcyAib3ZlciIgYW5kIHRoZSBzaXplIG9mIHRoZSBtZXNzYWdl IGlzIHN0cmljdGx5DQpncmVhdGVyIHRoYW4gdGhlIG51bWJlciBvZiBvY3Rl dHMgc3BlY2lmaWVkIGFzIGxpbWl0LiAgSWYgdGhlIHNlY29uZA0KYXJndW1l bnQgaXMgInVuZGVyIiwgdGhlbiB0aGUgdGVzdCBpcyB0cnVlIG9ubHkgaWYg dGhlIG1lc3NhZ2Ugc2l6ZSBpcw0Kc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSBu dW1iZXIgb2Ygb2N0ZXRzIHNwZWNpZmllZCBhcyBsaW1pdC4gIEluIGVpdGhl cg0KY2FzZSwgaWYgdGhlIG1lc3NhZ2Ugc2l6ZSBpcyBleGFjdGx5IHRoZSBs aW1pdCwgdGhlIHRlc3QgaXMgZmFsc2UuDQoNClRoZSBzaXplIG9mIGEgbWVz c2FnZSBpcyBkZWZpbmVkIHRvIGJlIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGZy b20gdGhlDQppbml0aWFsIGhlYWRlciB1bnRpbCB0aGUgbGFzdCBjaGFyYWN0 ZXIgaW4gdGhlIG1lc3NhZ2UgYm9keS4NCg0KNS44LiBzdXBwb3J0DQoNClN5 bnRheDoNCiAgICAgc3VwcG9ydCA8ZXh0ZW5zaW9uLW5hbWU+DQoNCg0KVGhl ICJzdXBwb3J0IiB0ZXN0IGV2YWx1YXRlcyB0byB0cnVlIGlmIHRoZSBleHRl bnNpb24gbmFtZWQgYnkNCjxleHRlbnNpb24tbmFtZT4gaXMgc3VwcG9ydGVk LiAgSW4gdGhlIGZvbGxvd2luZyBzY3JpcHQsIGFsbCBtYWlsIGlzDQpmaWxl ZCBpbnRvIElOQk9YIHVubGVzcyB0aGUgImJsYWNrLW1hZ2ljIiBleHRlbnNp b24gaXMgc3VwcG9ydGVkLiAgT3RoLQ0KZXJ3aXNlLCBiZWhhdmlvciBpcyBk ZWZpbmVkIGJ5IHRoZSBibGFjay1tYWdpYyBleHRlbnNpb24uDQoNCg0KU3lu dGF4Og0KICAgICBpZiBzdXBwb3J0ICJibGFjay1tYWdpYyIgdGhlbg0KICAg ICAgICAgIGJsYWNrLW1hZ2ljICgia2diQGFuZHJldy5jbXUuZWR1IikNCiAg ICAgZW5kaWYNCg0KDQoNClNob3dhbHRlciAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDE1XQ0K DA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZlLVBSRS50eHQgICAgU0lFVkUgICAg ICAgICAgICAgICAgICAgICAgICA4IEFwciAxOTk3DQoNCg0KNS45LiB0cnVl DQoNClN5bnRheDoNCiAgICAgdHJ1ZQ0KDQpUaGUgInRydWUiIHRlc3QgaXMg YWx3YXlzIHRydWUuDQoNCjYuICAgRXJyb3JzIGluIFByb2Nlc3NpbmcgYSBT Y3JpcHQNCg0KSW4gYW55IHNvcnQgb2YgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Us IGV2ZW4gYSB2ZXJ5IHNpbXBsZSBvbmUsIGVycm9ycyBhcmUNCmluZXZpdGFi bGUuICBJbiB0aGlzIGNhc2UsIHVzZXJzIGFyZSBleHBlY3RlZCB0byBtYWtl IGVycm9ycyAtLSBldmVuIGlmDQp0aGUgYWN0dWFsIHNjcmlwdCBpcyBtYWNo aW5lLWdlbmVyYXRlZCwgbWFpbGJveCByaWdodHMgbWlnaHQgY2hhbmdlIHRv DQpkaXNhbGxvdyB1c2VycyBmcm9tIHdyaXRpbmcgdG8gYSBtYWlsYm94LCBh IG1haWxib3ggbWF5IG5vIGxvbmdlciBleGlzdCwNCm9yIGEgdmFyaWV0eSBv ZiBvdGhlciBwcm9ibGVtcy4gIEl0IGlzIGltcGVyYXRpdmUgdGhhdCBtYWls IGJlIGFsbG93ZWQNCnRvIGdldCB0aHJvdWdoIGluIGFueSBjYXNlLg0KDQpJ ZiBhbiBlcnJvciBpcyBmb3VuZCBpbiBhIHNjcmlwdCwgYW4gaW1wbGVtZW50 YXRpb24gTVVTVCBtYWtlIGFuIGF0dGVtcHQNCnRvIHJlc29sdmUgdGhlIGNv bmRpdGlvbi4gSW1wbGVtZW50YXRpb25zIFNIT1VMRCBjaGVjayBhIHNjcmlw dCBiZWZvcmUNCml0IGlzIHJ1biBpbiBvcmRlciB0byBpbnN1cmUgdGhhdCBp dCBpcyB2YWxpZC4gIEltcGxlbWVudGF0aW9ucyBTSE9VTEQNCk5PVCB0cnkg YW5kIHJlY292ZXIgZnJvbSBhIHNjcmlwdCB3aXRoIGVycm9ycywgYW5kIHNo b3VsZCBmaWxlIG1haWwgaW50bw0KdGhlIHVzZXIncyBwcmltYXJ5IG1haWxi b3guDQoNClVzZXJzIE1VU1QgYmUgbm90aWZpZWQgb2YgZXJyb3JzIGluIHBy b2Nlc3NpbmcgYSBzY3JpcHQuICBUaGUgbWV0aG9kIGJ5DQp3aGljaCB1c2Vy cyBhcmUgbm90aWZpZWQgaXMgaW1wbGVtZW50YXRpb24gZGVmaW5lZCwgYnV0 IGEgbWFpbCBtZXNzYWdlDQpkZXNjcmliaW5nIHRoZSBlcnJvciBpcyBzdWdn ZXN0ZWQgaWYgYSBwcmVmZXJhYmxlIGFsdGVybmF0aXZlIGNhbm5vdCBiZQ0K Zm91bmQNCg0KSW1wbGVtZW50YXRpb25zIHRoYXQgYWxsb3cgZm9yIHRoZSBz Y3JpcHQgdG8gYmUgY2hlY2tlZCBmb3Igc3ludGF4DQplcnJvcnMgaW4gYWR2 YW5jZSBvZiBtYWlsIHJlY2VpcHQgKGkuZS4sIGNsaWVudC1iYXNlZCBmaWx0 ZXJpbmcsIG9yDQpzZXJ2ZXItYmFzZWQgZmlsdGVyaW5nIHdpdGggYSBzdWJt aXNzaW9uIHByb3RvY29sIGF3YXJlIG9mIHRoaXMNCmxhbmd1YWdlKSBTSE9V TEQgbm90aWZ5IHRoZSB1c2VyIG9mIHRoZSBlcnJvciBhbmQgcmVmdXNlIHRv IGFjY2VwdCBhDQpzeW50YWN0aWNhbGx5IGludmFsaWQgc2NyaXB0LCBvciBv bmUgdGhhdCBtYWtlcyB1c2Ugb2YgZXh0ZW5zaW9ucyB0aGF0DQp0aGUgc2Vy dmVyIGRvZXMgbm90IHJlcG9ydC4NCg0KSW1wbGVtZW50YXRpb25zIHRoYXQg YWxsb3cgc2VydmVyLWJhc2VkIGZpbHRlcmluZyAoaS5lLiwgYXMgcGFydCBv ZiBhbg0KSU1BUCBzZXJ2ZXIpIE1VU1QgYWxsb3cgbWFpbCB0byBiZSBmaWxl ZCBub3JtYWxseSAoaS5lLiwgZm9yIElNQVAsIGludG8NCnRoZSB1c2VyJ3Mg SU5CT1gpIGluIGNhc2Ugb2YgYSBzeW50YXggZXJyb3IgaW4gdGhlIHNjcmlw dCwgYW5kIE1VU1QNCm5vdGlmeSB0aGUgdXNlciBvZiBhbiBlcnJvciBpbiBz b21lIGZvcm0gKHN1Y2ggYXMgc2VuZGluZyB0aGUgdXNlciBhDQptYWlsIG1l c3NhZ2Ugbm90aWZ5aW5nIHRoZW0gb2YgdGhlIGVycm9yKS4gIEltcGxlbWVu dGF0aW9ucyBTSE9VTEQgYXZvaWQNCm92ZXItc2VuZGluZyBlcnJvciBtZXNz YWdlcyB0byB0aGUgdXNlcidzIG1haWxib3guDQoNCkltcGxlbWVudGF0aW9u cyBhcmUgUkVRVUlSRUQgdG8gbm90aWZ5IHVzZXJzIG9mIGVycm9ycyBpbiBm aWx0ZXJpbmcNCnNjcmlwdHMuICBJZiB0aGVyZSBhcmUgZXJyb3JzIGluIHRo ZSBzY3JpcHQgYmVpbmcgdXNlZCwgbWFpbCBTSE9VTEQgYmUNCmZpbGVkIGlu dG8gSU5CT1guICBJbXBsZW1lbnRhdGlvbnMgTVVTVCBOT1QgZGlzY2FyZCBt YWlsLg0KDQo3LiAgIEV4dGVuc2liaWxpdHkNCg0KTmV3IGNvbnRyb2wgc3Ry dWN0dXJlcywgYWN0aW9ucywgYW5kIHRlc3RzIGNhbiBiZSBhZGRlZCB0byB0 aGUgbGFuZ3VhZ2UuDQoNCg0KDQpTaG93YWx0ZXIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbUGFnZSAx Nl0NCgwNCmRyYWZ0LXNob3dhbHRlci1zaWV2ZS1QUkUudHh0ICAgIFNJRVZF ICAgICAgICAgICAgICAgICAgICAgICAgOCBBcHIgMTk5Nw0KDQoNClNpdGVz IG11c3QgbWFrZSB0aGVzZSBmZWF0dXJlcyBrbm93biB0byB0aGVpciB1c2Vy czsgYW4gZXh0ZW5zaW9uIG5lZ28tDQp0aWF0aW9uIG1lY2hhbmlzbSBpcyBu b3QgZGVmaW5lZCBieSB0aGlzIGRvY3VtZW50Lg0KDQpGb3IgdGhlIGZvcm1h bCBncmFtbWFyLCBhbiBleHRlbnNpb24gU0hPVUxEIGRlZmluZSBvbmUgb2Yg dGhlIHN5bWJvbHMNCmJlZ2lubmluZyB3aXRoICJleHRlbnNpb24tIi4NCg0K QW55IGV4dGVuc2lvbnMgdG8gdGhpcyBsYW5ndWFnZSBNVVNUIGRlZmluZSBh IHVuaXF1ZSBzdHJpbmcgdGhhdA0KZGVzY3JpYmVzIHRoYXQgZXh0ZW5zaW9u LiAgU3VjaCBzdHJpbmdzIFNIT1VMRCBpbmNsdWRlIGEgdmVyc2lvbiBudW1i ZXIuDQpUaGUgcHVycG9zZSBvZiBzdWNoIGEgc3RyaW5nIGlzIGZvciB0aGUg InJlcXVpcmUiIGFuZCAic3VwcG9ydCIgY29uZGktDQp0aW9uYWxzLCB3aGlj aCBtYW5kYXRlcyB0aGF0IHNjcmlwdCByZXF1aXJlcyB0aGUgdXNlIG9mIHRo YXQgZXh0ZW5zaW9uLg0KQWRkaXRpb25hbGx5LCBpbiBhIHNpdHVhdGlvbiB3 aGVyZSB0aGVyZSBpcyBhIHN1Ym1pc3Npb24gcHJvdG9jb2wgYW5kIGFuDQpl eHRlbnNpb24gYWR2ZXJ0aXNlbWVudCBtZWNoYW5pc20sIHNvIHRoYXQgc2Ny aXB0cyBzdWJtaXR0ZWQgY2FuIGJlDQpjaGVja2VkIGFnYWluc3QgdGhlIG1h aWwgc2VydmVyIGZvciB2YWxpZCBleHRlbnNpb25zLg0KDQo3LjEuIENhcGFi aWxpdHkgTWVjaGFuaXNtDQoNCltBIGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRo ZSBjYXBhYmlsaXR5IHN0cmluZyB3aWxsIGJlIGluY2x1ZGVkIGhlcmUuXQ0K DQo3LjIuIFJlZ2lzdHJ5DQoNCltBIHJlZ2lzdHJhdGlvbiBtZWNoYW5pc20g d2lsbCBiZSBpbmNsdWRlZCBoZXJlLl0NCg0KNy4zLiBDYXBhYmlsaXR5IFRy YW5zcG9ydA0KDQpbQSBicmllZiBkZXNjcmlwdGlvbiBvZiB3aGF0IGlzIHJl cXVpcmVkIGZvciBhIGNhcGFiaWxpdHkgdHJhbnNwb3J0IHdpbGwNCmJlIGRl ZmluZWQgaGVyZS4gIFRyYW5zcG9ydHMgd2lsbCBiZSBkZWZpbmVkIGluIHNl cGFyYXRlIGRvY3VtZW50cy5dDQoNCjguICAgVHJhbnNtaXNzaW9uDQoNClRo aXMgZG9jdW1lbnQgZG9lcyBub3QgZGVmaW5lIGEgbWV0aG9kIGZvciBhY2Nl c3Npbmcgc3RvcmVkIHNjcmlwdHMgYXQNCnJ1bi10aW1lIG9yIGFzIHRoZXkg YXJlIHdyaXR0ZW4sIG5vciBkb2VzIGl0IGRlZmluZSBhIGNoYXJhY3RlciBz ZXQNCmVuY29kaW5nIGZvciBzY3JpcHRzLg0KDQpJZiB0aGUgbWV0aG9kIG9m IGhhbmRpbmcgYSBzY3JpcHQgb2ZmIHRvIHRoZSBzZXJ2ZXIgYWxsb3dzIGZv ciBNSU1FLQ0KdHlwaW5nIG9mIGRhdGEgYXMgZGVzY3JpYmVkIGluIFtNSU1F XSBhbmQgdGhlIGRhdGEgaXMgZW5jb2RlZCBpbiBVVEYtOA0KYXMgZGVzY3Jp YmVkIGluIFtVVEYtOF0sIHRoZSBNSU1FIHR5cGUgZm9yIGEgU0lFVkUgc2Ny aXB0IGlzIFhYWC9YWFguDQoNCkltcGxlbWVudGF0aW9ucyBTSE9VTEQgY2hl Y2sgYSBzY3JpcHQgYmVmb3JlIGl0IGlzIHJ1biBpbiBvcmRlciB0bw0KaW5z dXJlIHRoYXQgaXQgaXMgdmFsaWQuICBJbXBsZW1lbnRhdGlvbnMgU0hPVUxE IE5PVCB0cnkgYW5kIHJlY292ZXINCmZyb20gYSBzY3JpcHQgd2l0aCBlcnJv cnMsIGFuZCBzaG91bGQgZmlsZSBtYWlsIGludG8gdGhlIHVzZXIncyBwcmlt YXJ5DQptYWlsYm94Lg0KDQo5LiAgIEFja25vd2xlZGdtZW50cw0KDQoxMC4g IEZvcm1hbCBHcmFtbWFyDQoNClRoZSBncmFtbWFyIHVzZWQgaW4gdGhpcyBz ZWN0aW9uIGlzIHRoZSBzYW1lIGFzIHRoZSBBQk5GIGRlc2NyaWJlZCBpbg0K W0FCTkZdIHdpdGggb25lIGV4Y2VwdGlvbjogdGhlIGRlbGltaXRlciB1c2Vk IHdpdGggIiMiIGlzIGFueSBhbW91bnQgb2YNCg0KDQoNClNob3dhbHRlciAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtQYWdlIDE3XQ0KDA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZlLVBS RS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAgICA4IEFwciAx OTk3DQoNCg0Kd2hpdGVzcGFjZSAodGhhdCBpcywgQ1IsIExGLCBzcGFjZXMs IGFuZCB0YWJzKSwgYXMgZGVzY3JpYmVkIGJ5IHRoZQ0KIldTUCIgdGVybWlu YWwsIGZvbGxvd2VkIGJ5IGEgc2luZ2xlIGNvbW1hLCBhbmQgYWRkaXRpb25h bCB3aGl0ZXNwYWNlLg0KVHdvIGNvbW1hcyB3aXRob3V0IHNvbWV0aGluZyBp biBiZXR3ZWVuIHRoZW0gaXMgYSBwcm90b2NvbCBlcnJvciwgYW5kIGlzDQpw cm9oaWJpdGVkLg0KDQpJbiB0aGUgY2FzZSBvZiBhbHRlcm5hdGl2ZSBvciBv cHRpb25hbCBydWxlcyBpbiB3aGljaCBhIGxhdGVyIHJ1bGUgb3Zlci0NCmxh cHMgYW4gZWFybGllciBydWxlLCB0aGUgcnVsZSB3aGljaCBpcyBsaXN0ZWQg ZWFybGllciBNVVNUIHRha2UgcHJpb3ItDQppdHkuDQoNCmFjdGlvbiA9IHRv c3MgLyBmaWxlaW50byAvIGZvcndhcmQgLyBib3VuY2UgLyByZXBseSAvIHN0 b3AgLw0KICAgIGV4dGVuc2lvbi1hY3Rpb24NCg0KYWRkcmVzcyA9IHN0cmlu Zw0KICAgICAgICA7OyBhbnkgbGVnYWwgSU1BSUwgYWRkcmVzcw0KDQphbnkt b2YgPSAiYW55LW9mIiBXU1AgIigiIFtXU1BdICMoY29uZGl0aW9uKSBbV1NQ XSAiKSINCg0KYWxsLW9mID0gImFsbC1vZiIgV1NQICIoIiBbV1NQXSAjKGNv bmRpdGlvbikgW1dTUF0gIikiDQoNCmJpZy1udW1iZXIgPSBudW1iZXIgWyBV TklUIF0NCg0KYm91bmNlID0gImJvdW5jZSIgV1NQIHN0cmluZw0KICAgICAg ICA7OyBzdHJpbmcgaXMgYSB0ZXh0IG1lc3NhZ2UgdG8gYmUgc2VudCB3aXRo IHRoZSBib3VuY2UgYXMgdGhlDQogICAgICAgIDs7IHJlYXNvbg0KDQpjb250 cm9sLXN0cnVjdHVyZSA9IGlmIC8gZXh0ZW5zaW9uLWNvbnRyb2wtc3RydWN0 dXJlDQoNCmNvbW1hbmQgPSBhY3Rpb24gW1dTUF0gIjsiIFtXU1BdIC8gY29u dHJvbC1zdHJ1Y3R1cmUNCg0KY29tbWFuZHMgPSAjKGNvbW1hbmQpDQoNCmNv bW1lbnQgPSAiIyIgKkNIQVIgbmV3bGluZQ0KDQpmaWxlaW50byA9ICJmaWxl aW50byIgV1NQIHN0cmluZw0KDQpmb3J3YXJkID0gImZvcndhcmQiIFdTUCBh ZGRyZXNzDQoNCmlmID0gImlmIiBXU1AgdGVzdCBXU1AgInRoZW4iIFdTUCBj b21tYW5kcyBXU1AgIygiZWxzaWYiIFdTUA0KICAgIHRlc3QgV1NQICJ0aGVu IiBXU1AgY29tbWFuZHMpIFsgImVsc2UiIFdTUCBjb21tYW5kcyBXU1AgXQ0K ICAgICJlbmRpZiINCiAgICAgICAgOzsgaWYgPGNvbmQ+IHRoZW4gPGNvbW1h bmRzPg0KICAgICAgICA7OyBbZWxzaWYgPGNvbmQ+IHRoZW4gPGNvbW1hbmRz PiBbZWxzaWYgLi4uXV0NCiAgICAgICAgOzsgW2Vsc2UgPGNvbW1hbmRzPl0g ZW5kaWYNCg0KaGVhZGVyID0gImhlYWRlciIgV1NQIHN0cmluZy1saXN0IFdT UCBtYXRjaC1rZXl3b3JkIFdTUCBzdHJpbmctbGlzdA0KDQptYXRjaC1rZXl3 b3JkID0gImNvbnRhaW5zIiAvICJtYXRjaGVzIiAvICJpcyIgLyAiY29udGFp bnMtbm9jYXNlIiAvDQogICAgImNvbnRhaW5zLW5vY2FzZSIgLyAiaXMtbm9j YXNlIg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1BhZ2UgMThdDQoMDQpk cmFmdC1zaG93YWx0ZXItc2lldmUtUFJFLnR4dCAgICBTSUVWRSAgICAgICAg ICAgICAgICAgICAgICAgIDggQXByIDE5OTcNCg0KDQpuZXdsaW5lID0gQ1JM RiAvIENSIC8gTEYNCiAgICAgICAgOzsgQSBDUkxGIGlzIEFMV0FZUyBvbmUg bmV3bGluZS4NCg0KbnVtYmVyID0gMSpESUdJVA0KDQpvciA9IGNvbmRpdGlv biBXU1AgIm9yIiBXU1AgY29uZGl0aW9uDQoNCnF1b3RlZC1zdHJpbmcgPSAi DQogICAgICAgIDs7DQogICAgICAgIDs7IFwgaW5zaWRlIGEgc3RyaW5nIG1h cHMgdG8gICAgOzsgTm90ZSB0aGF0IG5ld2xpbmVzIGFuZCBvdGhlciB3ZWly ZCBjaGFyYWN0ZXJzDQogICAgICAgIDs7IGFyZSBhbGwgc3RyaW5ncy4NCg0K c2l6ZSA9ICJzaXplIiBXU1AgKCAib3ZlciIgLyAidW5kZXIiICkgV1NQIGJp Zy1udW1iZXINCg0Kc3RvcCA9ICJzdG9wIg0KDQpzdHJpbmcgPSBxdW90ZWQt c3RyaW5nIC8gdXNlci1tZXNzYWdlDQoNCnN0cmluZy1saXN0ID0gIigiIFtX U1BdICMoc3RyaW5nKSBbV1NQXSAiKSINCg0KdGVzdCA9IFtXU1BdIGFueS1v ZiAvIGFsbC1vZiAvIGV4aXN0cyAvIGZhbHNlIC8gaGVhZGVyIC8NCiAgICBu b3QgLyBzaXplIC8gZXh0ZW5zaW9uLXRlc3QgW1dTUF0NCg0KVU5JVCA9ICJL IiAvICJNIiAvICJHIg0KICAgICAgICA7OyBraWxvYnl0ZXMsIG1lZ2FieXRl cywgb3IgZ2lnYWJ5dGVzDQoNCnVzZXItbWVzc2FnZSA9ICJtZXNzYWdlIiBb V1NQXSBuZXdsaW5lICIuIiBuZXdsaW5lDQogICAgICAgIDs7IG5vdGUgd2hl biB1c2VkLA0KICAgICAgICA7OyBhIENSIHRoYXQgaXMgbm90IGZvbGxvd2Vk IGJ5IGFuIExGIGJlY29tZXMgYSBDUkxGOw0KICAgICAgICA7OyBhbiBMRiB0 aGF0IGlzIG5vdCBmb2xsb3dlZCBieSBhIENSIGJlY29tZXMgYSBDUkxGLg0K ICAgICAgICA7OyBhIGxlYWRpbmcgLi4gb24gYSBsaW5lIGlzIG1hcHBlZCB0 byAuDQoNCldTUCA9ICIgIiAvIENSIC8gTEYgLyB0YWINCiAgICAgICAgOzsg anVzdCB3aGl0ZXNwYWNlDQoNCg0KMTAuICBTZWN1cml0eSBDb25zaWRlcmF0 aW9ucyBVc2VycyBtdXN0IGdldCB0aGVpciBtYWlsLiAgSXQgaXMgaW1wZXJh LQ0KdGl2ZSB0aGF0IHdoYXRldmVyIG1ldGhvZCBpbXBsZW1lbnRhdGlvbnMg dXNlIHRvIHN0b3JlIHRoZSB1c2VyLWRlZmluZWQNCmZpbHRlcmluZyBzY3Jp cHRzIGJlIHJlYXNvbmFibHkgc2VjdXJlLg0KDQpJdCBpcyBlcXVhbGx5IGlt cG9ydGFudCB0aGF0IGltcGxlbWVudGF0aW9ucyBzYW5pdHktY2hlY2sgdGhl IHVzZXIncw0Kc2NyaXB0cywgYW5kIG5vdCBhbGxvdyB1c2VycyB0byBjcmVh dGUgb24tZGVtYW5kIG1haWxib21icy4gIEZvcg0KaW5zdGFuY2UsIGFuIGlt cGxlbWVudGF0aW9uIHRoYXQgYWxsb3dzIGEgdXNlciB0byBib3VuY2UsIGZv cndhcmQsIG9yDQpyZXBseSBtdWx0aXBsZSB0aW1lcyB0byBhIHNpbmdsZSBt ZXNzYWdlIG1pZ2h0IGFsc28gYWxsb3cgYSB1c2VyIHRvDQpjcmVhdGUgYSBt YWlsYm9tYiB0cmlnZ2VyZWQgYnkgbWFpbCBmcm9tIGEgc3BlY2lmaWMgdXNl ci4NCg0KMTEuICBBdXRob3IncyBBZGRyZXNzDQoNCg0KDQoNClNob3dhbHRl ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtQYWdlIDE5XQ0KDA0KZHJhZnQtc2hvd2FsdGVyLXNpZXZl LVBSRS50eHQgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAgICA4IEFw ciAxOTk3DQoNCg0KVGltIFNob3dhbHRlcg0KQ2FybmVnaWUgTWVsbG9uIFVu aXZlcnNpdHkNCjUwMDAgRm9yYmVzIEF2ZW51ZQ0KUGl0dHNidXJnaCwgUEEg MTUyMTMNCg0KRS1NYWlsOiB0anNAYW5kcmV3LmNtdS5lZHUNCg0KQXBwZW5k aXggQS4gICBSZWZlcmVuY2VzDQoNCltBQk5GXSBDcm9ja2VyLCBELiwgICJB dWdtZW50ZWQgQk5GIGZvciBTeW50YXggU3BlY2lmaWNhdGlvbnM6IEFCTkYi LA0KSW50ZXJuZXQgTWFpbCBDb25zb3J0aXVtLCBXb3JrIGluIFByb2dyZXNz Lg0KDQpbS0VZV09SRFNdIEJyYWRuZXIsIFMuLCAiS2V5IHdvcmRzIGZvciB1 c2UgaW4gUkZDcyB0byBJbmRpY2F0ZSBSZXF1aXJlLQ0KbWVudCBMZXZlbHMi LCBSRkMgMjExOSwgSGFydmFyZCBVbml2ZXJzaXR5LCBNYXJjaCAxOTk3Lg0K DQpbSU1BUF0gQ3Jpc3BpbiwgTS4sICJJbnRlcm5ldCBNYWlsIEFjY2VzcyBQ cm90b2NvbCAtIHZlcnNpb24gNHJldjEiLCBSRkMNCjIwNjAsIFVuaXZlcnNp dHkgb2YgV2FzaGluZ3RvbiwgRGVjZW1iZXIgMTk5Ni4NCg0KW0lNQUlMXSBD cm9ja2VyLCBELiwgIlN0YW5kYXJkIGZvciB0aGUgRm9ybWF0IG9mIEFSUEEg SW50ZXJuZXQgVGV4dCBNZXMtDQpzYWdlcyIsIFNURCAxMSwgUkZDIDgyMiwg VW5pdmVyc2l0eSBvZiBEZWxhd2FyZSwgQXVndXN0IDE5ODIuDQoNCltTTVRQ XSBQb3N0ZWwsIEouLCAiU2ltcGxlIE1haWwgVHJhbnNmZXIgUHJvdG9jb2wi LCBTVEQgMTAsIFJGQyA4MjEsDQpVU0MvSW5mb3JtYXRpb24gU2NpZW5jZXMg SW5zdGl0dXRlLCBBdWd1c3QgMTk4Mi4NCg0KW1VURi04XSBZZXJnZWF1LCBG LiAiVVRGLTgsIGEgdHJhbnNmb3JtYXRpb24gZm9ybWF0IG9mIFVuaWNvZGUg YW5kIElTTw0KMTA2NDYiLCBSRkMgMjA0NCwgQWxpcyBUZWNobm9sb2dpZXMs IE9jdG9iZXIgMTk5Ni4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1BhZ2Ug MjBdDQoM ---559023410-1804928587-861066310=:7488-- Received: (from majordomo@localhost) by mail.proper.com (8.8.5/8.7.3) id TAA23557 for ietf-mta-filters-bks; Tue, 1 Apr 1997 19:46:07 -0800 (PST) Received: from cmu1.acs.cmu.edu (CMU1.ACS.CMU.EDU [128.2.35.186]) by mail.proper.com (8.8.5/8.7.3) with ESMTP id TAA23553 for <ietf-mta-filters@imc.org>; Tue, 1 Apr 1997 19:46:04 -0800 (PST) Received: from nil.andrew.cmu.edu (NIL.ANDREW.CMU.EDU [128.2.232.95]) by cmu1.acs.cmu.edu (8.8.2/8.7.3) with SMTP id WAA16887 for <ietf-mta-filters@imc.org>; Tue, 1 Apr 1997 22:50:44 -0500 Date: Tue, 1 Apr 1997 22:50:43 -0500 (EST) From: Tim Showalter <tjs@andrew.cmu.edu> Reply-To: Tim Showalter <tjs@andrew.cmu.edu> To: MTA Filters <ietf-mta-filters@imc.org> Subject: pre-draft for language Message-ID: <Pine.SOL.3.95L.970401224604.1026N-200000@nil.andrew.cmu.edu> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-342241519-859953043=:1026" Content-ID: <Pine.SOL.3.95L.970401224802.1026P@nil.andrew.cmu.edu> Sender: owner-ietf-mta-filters@imc.org Precedence: bulk This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---559023410-342241519-859953043=:1026 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: <Pine.SOL.3.95L.970401224802.1026Q@nil.andrew.cmu.edu> This is a draft for the filtering language. I managed to fill in a few examples, but there are still a lot of consistancy errors that arose from making a lot of changes in the grammar. I'm posting it anyway because I believe it'll be better to actually let people see it. If you find obvious errors, let me know. I'm SURE there are places that are not internally consistant. I'll work on it more tomorrow. Thanks ... -- Tim Showalter tjs@andrew.cmu.edu ---559023410-342241519-859953043=:1026 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="draft-showalter-sieve-00.txt" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.SOL.3.95L.970401225043.1026R@nil.andrew.cmu.edu> Content-Description: draft-showaltersieve-XX.txt DQoNCg0KDQoNCg0KTmV0d29yayBXb3JraW5nIEdyb3VwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVC4gU2hvd2FsdGVyDQpJbnRl cm5ldCBEcmFmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDYXJuZWdpZSBNZWxsb24NCkRvY3VtZW50OiBkcmFmdC1zaG93 YWx0ZXItc2lldmUtWFgudHh0ICAgICAgICAgICAgICAgICAgICAgICAgTWFy Y2ggMTk5Nw0KRXhwaXJlIHNvbWV0aW1lIGFmdGVyIGl0J3MgcmVsZWFzZWQN Cg0KICAgICAgICAgICAgICAgICAgICBTSUVWRTogQSBNYWlsIEZpbHRlcmlu ZyBMYW5ndWFnZQ0KDQpTdGF0dXMgb2YgdGhpcyBNZW1vDQoNCiAgIFRoaXMg ZHJhZnQgaGFzIG5vIHN0YW5kaW5nIGFuZCBpcyBmb3IgbGltaXRlZCBkaXN0 cmlidXRpb24uICBQbGVhc2UNCiAgIGRvIG5vdCBpbXBsZW1lbnQgYW55dGhp bmcgd2l0aGluIHdpdGhvdXQgY29udGFjdGluZyB0aGUgYXV0aG9yLCBhbmQN CiAgIGV2ZW4gdGhlbiwgdXNlIGV4dHJlbWUgY2F1dGlvbjsgZXZlcnl0aGlu ZyBpbiB0aGlzIGRyYWZ0IGlzIGNhcnZlZCBpbg0KICAgd2FybSBidXR0ZXIu DQoNCiAgIFRoZSBmb2xsb3dpbmcgaXMgaGVyZSBmb3Igd2hlbiB3ZSBhY3R1 YWxseSBwdWJsaXNoIHRoaXM6DQoNCiAgIFRoaXMgZG9jdW1lbnQgaXMgYW4g SW50ZXJuZXQtRHJhZnQuICBJbnRlcm5ldC1EcmFmdHMgYXJlIHdvcmtpbmcN CiAgIGRvY3VtZW50cyBvZiB0aGUgSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFz ayBGb3JjZSAoSUVURiksIGl0cyBhcmVhcywNCiAgIGFuZCBpdHMgd29ya2lu ZyBncm91cHMuICBOb3RlIHRoYXQgb3RoZXIgZ3JvdXBzIG1heSBhbHNvIGRp c3RyaWJ1dGUNCiAgIHdvcmtpbmcgZG9jdW1lbnRzIGFzIEludGVybmV0LURy YWZ0cy4NCg0KICAgSW50ZXJuZXQtRHJhZnRzIGFyZSBkcmFmdCBkb2N1bWVu dHMgdmFsaWQgZm9yIGEgbWF4aW11bSBvZiBzaXggbW9udGhzDQogICBhbmQg bWF5IGJlIHVwZGF0ZWQsIHJlcGxhY2VkLCBvciBvYnNvbGV0ZWQgYnkgb3Ro ZXIgZG9jdW1lbnRzIGF0IGFueQ0KICAgdGltZS4gIEl0IGlzIGluYXBwcm9w cmlhdGUgdG8gdXNlIEludGVybmV0LURyYWZ0cyBhcyByZWZlcmVuY2UNCiAg IG1hdGVyaWFsIG9yIHRvIGNpdGUgdGhlbSBvdGhlciB0aGFuIGFzIGBgd29y ayBpbiBwcm9ncmVzcy4nJw0KDQogICBUbyBsZWFybiB0aGUgY3VycmVudCBz dGF0dXMgb2YgYW55IEludGVybmV0LURyYWZ0LCBwbGVhc2UgY2hlY2sgdGhl DQogICBgYDFpZC1hYnN0cmFjdHMudHh0JycgbGlzdGluZyBjb250YWluZWQg aW4gdGhlIEludGVybmV0LSBEcmFmdHMNCiAgIFNoYWRvdyBEaXJlY3Rvcmll cyBvbiBmdHAuaXMuY28uemEgKEFmcmljYSksIGZ0cC5ub3JkdS5uZXQgKEV1 cm9wZSksDQogICBtdW5uYXJpLm96LmF1IChQYWNpZmljIFJpbSksIGRzLmlu dGVybmljLm5ldCAoVVMgRWFzdCBDb2FzdCksIG9yDQogICBmdHAuaXNpLmVk dSAoVVMgV2VzdCBDb2FzdCkuDQoNCiAgIFRoZSBwcm90b2NvbCBkaXNjdXNz ZWQgaW4gdGhpcyBkb2N1bWVudCBpcyBleHBlcmltZW50YWwgYW5kIHN1Ympl Y3QNCiAgIHRvIGNoYW5nZS4gIFBlcnNvbnMgcGxhbm5pbmcgb24gZWl0aGVy IGltcGxlbWVudGluZyBvciB1c2luZyB0aGlzDQogICBwcm90b2NvbCBhcmUg U1RST05HTFkgVVJHRUQgdG8gZ2V0IGluIHRvdWNoIHdpdGggdGhlIGF1dGhv ciBiZWZvcmUNCiAgIGVtYmFya2luZyBvbiBzdWNoIGEgcHJvamVjdC4NCg0K QWJzdHJhY3QNCg0KICAgVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgYSBtYWls IGZpbHRlcmluZyBsYW5ndWFnZSBmb3IgZmlsdGVyaW5nDQogICBtZXNzYWdl cyBhdCB0aW1lIG9mIGZpbmFsIGRlbGl2ZXIuICBJdCBpcyBkZXNpZ25lZCB0 byBiZSBpbmRlcGVuZGVudA0KICAgb2YgcHJvdG9jb2wsIGFuZCBpbXBsZW1l bnRhYmxlIG9uIGVpdGhlciBhIG1haWwgY2xpZW50IG9yIG1haWwgc2VydmVy DQogICB3aGljaCB1c2VzIG11bHRpcGxlIGZvbGRlcnMuICBJdCBpcyBtZWFu dCB0byBiZSBleHRlbnNpYmxlLCBzaW1wbGUsDQogICBhbmQgaW5kZXBlbmRl bnQgb2YgYWNjZXNzIHByb3RvY29sLCBtYWlsIGFyY2hpdGVjaHR1cmUsIGFu ZCBvcGVyYXRpbmcNCiAgIHN5c3RlbXMgdXNlZCB0byBpbXBsZW1lbnQgaXQu DQoNCiAgIE1haWwgZmlsdGVyaW5nIHN5c3RlbXMgYXJlIHdpZGVseSB1c2Vk IGZvciBhIHZhcmlldHkgb2YgcmVhc29ucywNCiAgIGluY2x1ZGluZyBvcmdh bml6YXRpb24gb2YgbWVzc2FnZXMgKGZpbHRlcmluZyBvdXQgbWFpbGluZyBs aXN0cyksIGFuZA0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDFd DQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgudHh0ICAgICBTSUVWRSAg ICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5OTcNCg0KDQogICBhcmUg YmVjb21pbmcgaW5jcmVhc2luZ2x5IHVzZWZ1bCBpbiBhdm9pZGluZyB1bnNv bGljaXRlZCBtYWlsLg0KICAgRXhpc3RpbmcgbGFuZ3VhZ2VzIGFyZSBub3Qg Y29uc2lzdGFudCBhY3Jvc3MgY2xpZW50LCBzZXJ2ZXIsIG9yDQogICBvcGVy YXRpbmcgc3lzdGVtLCBhbmQgYXJlIGZyZXF1ZW50bHkgZGlmZmljdWx0IGZv ciB1c2VycyB0byB1c2UuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpTaG93YWx0ZXIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1Bh Z2UgMl0NCgwNCmRyYWZ0LXNob3dhbHRlci1zaWV2ZS1YWC50eHQgICAgIFNJ RVZFICAgICAgICAgICAgICAgICAgICAgICAyMCBNYXIgMTk5Nw0KDQoNCiAg IFRhYmxlIG9mIENvbnRlbnRzDQoNCiAgIFRoaXMgZG9jdW1lbnQgaXMgY29u dGVudC1mcmVlLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDNd DQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgudHh0ICAgICBTSUVWRSAg ICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5OTcNCg0KDQowLiAgIEtu b3duIFdlYWtuZXNzZXMNCg0KICAgVGhlIGZvbGxvd2luZyB3ZWFrbmVzc2Vz IHdpbGwgYmUgYWRkcmVzc2VkLCBwcm9iYWJseSBieSBleHRlbnNpb25zIHRv DQogICBiZSBpc3N1ZWQgd2l0aCB0aGlzIGRyYWZ0Lg0KDQogICBTZXZlcmFs IHBlb3BsZSB3YW50IHJlZ3VsYXIgZXhwcmVzc2lvbnMuICBJdCBpcyBteSBm ZWVsaW5nIHRoYXQNCiAgIG1vc3RseSBvbmx5IGFkdmFuY2VkIHVzZXJzICht b3N0bHkgVU5JWCB0eXBlcykgd2FudCByZWd1bGFyDQogICBleHByZXNzaW9u IHN1cHBvcnQgaW5zdGVhZCBvZiBnbG9icy4gIEkgcmVhbGx5IHdhbnQgdGhp cyBpbiBteQ0KICAgZmlsdGVyaW5nIGxhbmd1YWdlLCBhbmQgd2lsbCBjb2Rl IGl0LiAgSG93ZXZlciwgcmVnZXhwIHN1cHBvcnQgaXMNCiAgIGdyb3NzIGFu ZCBmcmVxdWVudGx5IGNyZWF0aXZlbHkgaW5jb21wYXRpYmxlLCBzbyBJIGhh dmUgcmVtb3ZlZCBpdA0KICAgZnJvbSB0aGlzIGRyYWZ0LiAgSSB3aWxsIHdy aXRlIHVwIGFuIGV4dGVuc2lvbiBpZiBJIGNhbiBmaW5kIGENCiAgIHJlYXNv bmFibGUgd2F5IG9mIGRvY3VtZW50aW5nIHJlZ3VsYXIgZXhwcmVzc2lvbnMg KHdpbGwgcHJvYmFibHkNCiAgIGJvcnJvdyBzb21ldGhpbmcgZnJvbSBQT1NJ WCkuDQoNCiAgIEVudmVsb3BlLW1hdGNoaW5nIGNvbW1hbmRzIGFyZSBub3Qg cmVhZGlseSBzdXBwb3J0ZWQgYnkgYWxsIG1haWwNCiAgIHN5c3RlbXMsIGFu ZCBwdXR0aW5nIHRoZW0gaW4gdGhlIGRyYWZ0IHdpbGwgcmVzdWx0IGluIGEg c3lzdGVtIHRoYXQNCiAgIGNhbm5vdCBiZSBpbXBsZW1lbnRlZCBieSBhIG1h aWwgYXJjaGl0ZWNodHVyZSB0aGF0IGR1bXBzIGVudmVsb3BlcywNCiAgIG9y IHN0b3JlcyB0aGVtIGluIHdlaXJkIHdheXMuDQoNCiAgICJEZXRhaWxlZCIg YWRkcmVzc2luZyBpcyBub3QgaGFuZGxlZCwgYW5kIHdpbGwgbGlrZWx5IGJl IG1vdmVkIHRvIGFuDQogICBleHRlbnNpb24gYXMgaXQgaXMgbm90IHN1cHBv cnRlZCBieSBhbGwgc3lzdGVtcy4gIERldGFpbGVkIGFkZHJlc3NpbmcNCiAg IGlzIHdoZXJlLCBpbiBhZGRyZXNzIGxpa2UgdGpzK2ZtaEBhbmRyZXcuY211 LmVkdSwgdGhlIGRlbGl2ZXJ5IHN5c3RlbQ0KICAgaWdub3JlcyB0aGUgIitm bWgiIGluIHRoZSBhZGRyZXNzLCBidXQgbGVhdmVzIGl0IHRvIHRoZSBmaWx0 ZXJpbmcNCiAgIHN5c3RlbSB0byBpbnRlcnByZXQuICBBICJkZXRhaWwiIGNv bW1hbmQgd2lsbCBiZSBhZGRlZCB0byBtYXRjaCB0aGlzOw0KICAgaXQgY2Fu IGJlIGhhbmRsZWQgaW4gdGhlIGRyYWZ0IGFzLWlzIHdpdGggc3VpdGFibGUg cGF0dGVybiBtYXRjaGluZw0KICAgb24gdGhlIHRvL2NjIGZpZWxkLCBidXQg aXQgcmVxdWlyZXMgZW52LXRvIG1hdGNoaW5nIHRvIGdldCBpdCByZWFsbHkN CiAgIHJpZ2h0LiAgVGhpcyBpcyBhIGNvbW1vbiBwcmFjdGljZSBvbiBDTVUn cyBtYWlsIHN5c3RlbSwgYW5kIHRoZSBDeXJ1cw0KICAgSU1BUEQgb2ZmZXJz IHNvbWUgc3VwcG9ydCBvZiBpdCBhcyBpdCBpcywgYW5kIGl0J3MgYSBtdXN0 IGZvciB1cy4NCg0KICAgSSBoYWQgYSBzZWN0aW9uIG9uIGEgInN1cHBvcnQi IHRlc3QsIGJ1dCByZW1vdmVkIGl0LiAgVGhlIGlkZWEgb2YNCiAgIHN1cHBv cnQgaXMgdGhhdCBpZiBhIGdpdmVuIGV4dGVuc2lvbiBpcyBzdXBwb3J0ZWQs IHRoZSB0ZXN0IGlzIHRydWUsDQogICBhbmQgeW91IGNhbiBjYWxsIG9uIHRo ZSBleHRlbnNpb24uICBJdCBpcyBhIG5lYXQgaWRlYSwgYnV0IGludHJvZHVj ZXMNCiAgIG15c3RlcnkgZ3JhbW1hdGljYWwgY29uc3RydWN0cyB0aGF0IGNh bm5vdCBiZSByZWFzb25hYmx5IHJlc29sdmVkLiAgQQ0KICAgInJlcXVpcmUi IGtleXdvcmQgaXMgc3RpbGwgdXNlZnVsLCBhbmQgaGFzIGJlZW4gYWRkZWQu DQoNCiAgIFdoaXRlc3BhY2UgaXMgZm9yIHJlYWRhYmlsaXR5LCBhbmQgYXMg c3VjaCwgc2hvdWxkIGJlIHJlYXNvbmFibHkgZWFzeQ0KICAgdG8gZWRpdC4g IChXaGl0ZXNwYWNlIGluIGNvbXB1dGVyLWdlbmVyYXRlZCBzY3JpcHRzIHdp bGwgcHJvYmFibHkgYmUNCiAgIHNpbmdsZSBzcGFjZXMgYW5kIG9jY2FzaW9u YWwgbmV3bGluZXMuKSAgQnV0IHRoYW5rcyB0byBjcmVhdGl2ZQ0KICAgb2Jz Y3VmYXRpb24gZnJvbSBtb2Rlcm4gb3BlcmF0aW5nIHN5c3RlbXMgaW4gdGhl aXIgZGVmaW5pdGlvbnMgb2YNCiAgIEFTQ0lJLCB0aGVyZSBpcyBubyBwbGF0 Zm9ybS1pbmRlcGVuZGFudCBuZXdsaW5lIGluIGEgdGV4dCBlZGl0b3IsDQog ICB3aGljaCB3aWxsIGJlIHVzZWZ1bCBmb3IgdXNlcnMgZWRpdGluZyBzb3Vy Y2UuICBQcm9wb3NlZCBzb2x1dGlvbjoNCiAgIHNpbmNlIHdlIGdlbmVyYWxs eSBkb24ndCBjYXJlIHdoYXQgdGhlIG5ld2xpbmUgY2hhcmFjdGVyIGlzIGFu eXdheSwNCiAgIGFsbG93IGFueSBuZXdsaW5lIGNoYXJhY3RlciAob3IsIGlu IHRoZSBjYXNlIG9mIHJlYWwgQVNDSUksIHRoZSBDUkxGDQogICBzZXF1ZW5j ZSkgdG8gYmUgd2hpdGVzcGFjZS4gIFRoaXMgaGFzIGJlZW4gdGhlIGRlY2lz aW9uIHVzZWQgaW4gdGhpcw0KICAgZG9jdW1lbnQgcmVnYXJkaW5nIHdoaXRl c3BhY2UuDQoNCiAgIENvbW1hbmRzIGNhbiBvcHRpb25hbGx5IGVuZCB3aXRo IGEgIjsiLCBhbmQgdGVzdHMgY2FuIG9wdGlvbmFsbHkgZW5kDQogICB3aXRo IGEgIiwiLiAgVGhpcyBpcyBhIGZlYXR1cmUgaW50ZW5kZWQgdG8gYWxsb3cg Zm9yIGh1bWFucyB0byBtYXJrDQoNCg0KDQpTaG93YWx0ZXIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W1BhZ2UgNF0NCgwNCmRyYWZ0LXNob3dhbHRlci1zaWV2ZS1YWC50eHQgICAg IFNJRVZFICAgICAgICAgICAgICAgICAgICAgICAyMCBNYXIgMTk5Nw0KDQoN CiAgIGVuZHMgb2YgY29tbWFuZHMsIGFzIEkgZXhwZWN0IG1pc3NpbmcgYXJn dW1lbnRzIGZvciBzb21lIGNvbW1hbmRzDQogICB3aWxsIGJlIGEgZnJlcXVl bnQgc291cmNlIG9mIGVycm9yLiAgVGhleSBhcmUgdW5uZWNlc3NhcnkgYW5k IHdvdWxkDQogICBiZSBlYXNpbHkgcmVtb3ZlZCwgYnV0IEknbSBwYXJ0aWFs IHRvIHRoZW0uICBDb21tZW50cyB3b3VsZCBiZQ0KICAgYXBwcmVjaWF0ZWQu DQoNCiAgIEknbSBub3Qgc3VyZSBpZiBJIGhhdmUgbW9zdCBvZiB0aGUgdGVj aG5pY2hhbCB0ZXJtcyByaWdodC4gIEkgc3VzcGVjdA0KICAgdGhleSdyZSBJ TUFQLWJpYXNlZCwgYW5kIG5lZWQgdG8gcmVmbGVjdCBtYWlsIG1vcmUgZ2Vu ZXJhbGx5LiAgQW55DQogICBjb21tZW50cyB3b3VsZCBiZSBhcHByZWNpYXRl ZC4NCg0KMS4gICBJbnRyb2R1Y3Rpb24NCg0KICAgVGhlcmUgYXJlIGEgbnVt YmVyIG9mIHJlYXNvbnMgdG8gdXNlIGEgZmlsdGVyaW5nIHN5c3RlbTogTWFp bCB0cmFmZmljDQogICBmb3IgbW9zdCB1c2VycyBoYXMgYmVlbiBpbmNyZWFz aW5nIGR1ZSBib3RoIHRvIGluY3JlYXNlZCB1c2FnZSBvZiBlLQ0KICAgbWFp bCwgdGhlIGVtZXJnZW5jZSBvZiB1bnNvbGljaXRlZCBlbWFpbCBhcyBhIGZv cm0gb2YgYWR2ZXJ0aXNpbmcsDQogICBhbmQgaW5jcmVhc2VkIHVzYWdlIG9m IG1haWxpbmcgbGlzdHMuDQoNCiAgIFRoaXMgbGFuZ3VhZ2UgaXMgb2ZmZXJl ZCBpbiBvcmRlciB0byB0cnkgYW5kIHByb3ZpZGUgYSBzdGFuZGFyZA0KICAg bGFuZ3VhZ2UgdGhhdCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgZmlsdGVycyBm b3IgZS1tYWlsLiAgSXQgaXMgbm90DQogICB0aWVkIHRvIGFueSBwYXJ0aWN1 bGFyIG9wZXJhdGluZyBzeXN0ZW0gb3IgbWFpbCBhcmNoaXRlY2h0dXJlLiAg SXQNCiAgIHJlcXVpcmVzIHRoZSB1c2Ugb2YgW1JGQzgyMl0tY29tcGxhbnQg bWVzc2FnZXMgYW5kIHN1cHBvcnQgb2YNCiAgIG11bHRpcGxlIGZvbGRlcnMs IGJ1dCBzaG91bGQgd29yayB3aXRoIGEgd2lkZSB2YXJpZXR5IG9mIHN5c3Rl bXMuDQoNCiAgIFRoZSBsYW5ndWFnZSBpcyBwb3dlcmZ1bCBlbm91Z2ggdG8g YmUgdXNlZnVsLCBidXQgZGVsaWJyYXRlbHkgdmVyeQ0KICAgbGltaXRlZCBp biBvcmRlciB0byBhbGxvdyBmb3IgYSByZWFzb25hYmx5IHNlY3VyZSBzZXJ2 ZXItc2lkZQ0KICAgZmlsdGVyaW5nIHN5c3RlbS4gIFRoZSBsYW5ndWFnZSBp cyBub3QgVHVyaW5nLWNvbXBsZXRlLCBhbmQgcHJvdmlkZXMNCiAgIG5vIHdh eSB0byB3cml0ZSBhIGxvb3Agb3IgYSBmdW5jdGlvbi4gIFRoZSBpbnRlbnRp b24gaXMgdG8gbWFrZSBpdA0KICAgaW1wb3NzaWJsZSBmb3IgdXNlcnMgdG8g ZG8gYW55dGhpbmcgbW9yZSBjb21wbGV4IHRoYW4gd3JpdGUgc2ltcGxlDQog ICBtYWlsIGZpbHRlcnMuDQoNCiAgIEltcGxlbWVudGF0aW9ucyBvZiB0aGUg bGFuZ3VhZ2UgYXJlIGV4cGVjdGVkIHRvIHRha2UgcGxhY2UgYXQgdGltZSBv Zg0KICAgZmluYWwgZGVsaXZlcnkuICBJbiBzeXN0ZW1zIHdoZXJlIHRoZSBN VEEgZG9lcyBmaW5hbCBkZWxpdmVyeSAtLQ0KICAgSU1BUDQgYW5kIHRyYWRp dGlvbmFsIFVOSVggbWFpbCwgZm9yIGluc3RhbmNlLCBpdCBpcyByZWFzb25h YmxlIHRvDQogICBzb3J0IHdoZW4gdGhlIE1UQSBkZXBvc2l0cyBtYWlsIGlu dG8gdGhlIHVzZXIncyBtYWlsYm94LiAgSWYgdGhlIE1UQQ0KICAgZG9lcyBu b3QgZG8gZmluYWwgZGVsaXZlcnksIG9yIGxhY2tzIHRoZSBwb3dlciB0byBz b3J0IGludG8gc2VwZXJhdGUNCiAgIG1haWxib3hlcyAoYXMgaXMgdGhlIGNh c2UgdW5kZXIgUE9QMyksIHRoZSBNVUEgbXVzdCBkbyBmaWx0ZXJpbmcgaW50 bw0KICAgbG9jYWwgZmlsdGVycy4NCg0KICAgRXhwZXJpZW5jZSBhdCBDYXJu ZWdpZSBNZWxsb24gaGFzIHNob3duIHRoYXQgaWYgYSBmaWx0ZXJpbmcgc3lz dGVtIGlzDQogICBtYWRlIGF2YWlsaWJsZSB0byB1c2VycywgbWFueSB3aWxs IG1ha2UgdXNlIG9mIGl0IGluIG9yZGVyIHRvIGZpbGUNCiAgIG1lc3NhZ2Vz IGZyb20gc3BlY2lmaWMgdXNlcnMgb3IgbWFpbGluZyBsaXN0cy4gIEhvd2V2 ZXIsIG1hbnkgdXNlcnMNCiAgIGRpZCBub3QgbWFrZSB1c2Ugb2YgdGhlIEFu ZHJldyBzeXN0ZW0ncyBGTEFNRVMgZmlsdGVyaW5nIGxhbmd1YWdlIGR1ZQ0K ICAgdG8gZGlmZmljdWx0eSBpbiBwcm9ncmFtbWluZyBpdC4gIER1ZSB0byB0 aGlzIGV4cGVjdGF0aW9uLCB0aGlzDQogICBsYW5ndWFnZSBoYXMgYmVlbiBt YWRlIHNpbXBsZSBlbm91Z2ggdG8gYWxsb3cgbWFueSB1c2VycyB0byBtYWtl IHVzZQ0KICAgb2YgaXQuDQoNCjEuMS4gQ29udmVudGlvbnMgdXNlZCBpbiB0 aGlzIGRvY3VtZW50DQoNCiAgIExpbmUgYnJlYWtzIGhhdmUgYmVlbiBpbnNl cnRlZCBmb3IgcmVhZGFiaWxpdHkuDQoNCg0KDQpTaG93YWx0ZXIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgW1BhZ2UgNV0NCgwNCmRyYWZ0LXNob3dhbHRlci1zaWV2ZS1YWC50eHQg ICAgIFNJRVZFICAgICAgICAgICAgICAgICAgICAgICAyMCBNYXIgMTk5Nw0K DQoNCiAgIEluIHRoZSBzZWN0aW9ucyBvZiB0aGlzIGRvY3VtZW50IHRoYXQg ZGlzY3VzcyB0aGUgcmVxdWlyZW1lbnRzIG9mDQogICB2YXJpb3VzIGtleXdv cmRzIGFuZCBvcGVyYXRvcnMsIHRoZSBmb2xsb3dpbmcgY29udmVudGlvbnMg aGF2ZSBiZWVuDQogICBhZG9wdGVkLg0KDQogICBFYWNoIHNlY3Rpb24gb24g YW4gdGVzdCwgYWN0aW9uLCBvciBjb25kaXRpb25hbCBoYXMgYSBsaW5lIGxh YmVsZWQNCiAgICJTeW50YXg6Ii4gIFRoaXMgbGluZSBkZXNjcmliZXMgdGhl IGFyZ3VtZW50cyBlYWNoIGNvbW1hbmQgcmVxdWlyZXMuDQogICBSZXF1aXJl ZCBhcmd1bWVudHMgYXJlIGxpc3RlZCBpbnNpZGUgYW5nbGUgYnJhY2tldHMg KCI8IiBhbmQgIj4iKS4NCiAgIE9wdGlvbmFsIGFyZ3VtZW50cyBhcmUgbGlz dGVkIGluc2lkZSBzcXVhcmUgYnJhY2tldHMgKCJbIiBhbmQgIl0iKS4NCiAg IFRoZSBmb3JtYWwgZ3JhbW1hciBmb3IgdGhlc2UgY29tbWFuZHMgaXMgZGVz Y3JpYmVkIGluIHNlY3Rpb24gMTAuDQoNCiAgIFRoZSBrZXkgd29yZHMgIk1V U1QiLCAiTVVTVCBOT1QiLCAiU0hPVUxEIiwgIlNIT1VMRCBOT1QiLCAiQ0FO IiwgYW5kDQogICAiTUFZIiBpbiB0aGlzIGRvY3VtZW50IGFyZSB0byBiZSBp bnRlcnByZXRlZCBhcyBkZWZpbmVkIGluIFtYWFhdLg0KDQoxLjIuIEV4YW1w bGUgbWFpbCBtZXNzYWdlcw0KDQogICBUaGUgZm9sbG93aW5nIG1haWwgbWVz c2FnZXMgd2lsbCBiZSB1c2VkIHRocm91Z2hvdXQgdGhpcyBkb2N1bWVudCBp bg0KICAgZXhhbXBsZXMuDQoNCiAgIE1lc3NhZ2UgQQ0KICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCiAgIERhdGU6IFR1ZSwgMSBBcHIgMTk5NyAwOTowNjozMSAtMDgw MCAoUFNUKQ0KICAgRnJvbTogY295b3RlQGFudmlsLmRlbWVudGlhLm9yZw0K ICAgVG86IHJvYWRydW5uZXJAYmlyZHNlZWQudGhla2VlcC5vcmcNCiAgIFN1 YmplY3Q6IEkgaGF2ZSBhIHByZXNlbnQgZm9yIHlvdQ0KDQogICBMb29rLCBJ J20gc29ycnkgYWJvdXQgdGhlIHdob2xlIGFudmlsIHRoaW5nLCBidXQgSSBj YW4gbWFrZQ0KICAgaXQgdXAgdG8geW91LiAgSSd2ZSBnb3Qgc29tZSBncmVh dCBiaXJkc2VlZCBvdmVyIGhlcmUgYXQNCiAgIG15IHBsYWNlIC0tIHRvcCBv ZiB0aGUgbGluZSBzdHVmZiAtLSBhbmQgaWYgeW91IGNvbWUgYnksDQogICBJ J2xsIGhhdmUgaXQgYWxsIHdyYXBwZWQgdXAgZm9yIHlvdS4gIEknbSByZWFs bHkgc29ycnkgZm9yDQogICBhbGwgdGhlIHByb2JsZW1zIEkndmUgY2F1c2Vk IGZvciB5b3Ugb3ZlciB0aGUgeWVhcnMsIGFuZA0KICAgSSBrbm93IHdlIGNh biB3b3JrIHRoaXMgb3V0Lg0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgTWVz c2FnZSBCDQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgRnJvbTogeW91Y291bGRi ZXJpY2ghQHJlcGx5LWJ5LXBvc3RhbC1tYWlsDQogICBTZW5kZXI6IGIxZmZA em5pYy5uZXQNCiAgIFRvOiBydWJlQHpuaWMubmV0DQogICBEYXRlOiAgTW9u LCAzMSBNYXIgMTk5NyAxODoyNjoxMCAtMDgwMCAoUFNUKQ0KICAgU3ViamVj dDogJCQkIFlPVSwgVE9PLCBDQU4gQkUgQSBNSUxMSU9OQUlSRSEgJCQkDQoN CiAgIFlPVSBNQVkgSEFWRSBBTFJFQURZIFdPTiBURU4gTUlMTElPTiBET0xM QVJTLCBCVVQgSSBET1VCVA0KICAgSVQhICBTTyBKVVNUIFBPU1QgVEhJUyBU TyBTSVggSFVORFJFRCBORVdTR1JPVVBTISAgSVQgV0lMTA0KICAgR1VBUkFO VEVFIFRIQVQgWU9VIEdFVCBBVCBMRUFTVCBGSVZFIFJFU1BPTlNFUyBXSVRI IE1PTkVZIQ0KICAgTU9ORVkhIE1PTkVZISBDT0xEIEhBUkQgQ0FTSCEgIFlP VSBXSUxMIFJFQ0VJVkUgT1ZFUg0KICAgJDIwLDAwMCBJTiBMRVNTIFRIQU4g VFdPIE1PTlRIUyEgIEFORCBJVCdTIExFR0FMISEhIEpVU1QNCiAgIFNFTkQg JDUgSU4gU01BTEwsIFVOTUFSS0VEIEJJTExTIFRPIFRIRSBBRERSRVNTRVMg QkVMT1chDQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCg0KU2hvd2FsdGVyICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtQYWdlIDZdDQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgu dHh0ICAgICBTSUVWRSAgICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5 OTcNCg0KDQoyLiAgIERlc2lnbg0KDQoyLjEuIEZvcm0gb2YgdGhlIGxhbmd1 YWdlDQoNCiAgIFRoaXMgbGFuZ3VhZ2UgaXMgbWFkZSB1cCBhcyBhIHNldCBv ZiBjb21tYW5kcy4gIEVhY2ggY29tbWFuZCBpcw0KICAgZWl0aGVyIGFuIGFj dGlvbiBvciBhIGNvbmRpdGlvbmFsLiAgRWFjaCBjb25kaXRpb25hbCBjb250 YWlucyBhIHRlc3Q7DQogICBkZXBlbmRpbmcgb24gdGhlIHJlc3VsdHMgb2Yg dGhlIHRlc3QsIG9uZSBzZXQgb2YgY29tbWFuZHMgaW4gYQ0KICAgY29udHJv bCBzdHJ1Y3R1cmUgaXMgdGFrZW4uDQoNCjIuMi4gV2hpdGVzcGFjZQ0KDQog ICBXaGl0ZXNwYWNlIHNlcGVyYXRlcyBjb21tYW5kcy4gIFRoZSBhbW91bnQg b2Ygd2hpdGVzcGFjZSB1c2VkIGluDQogICBzZXBlcmF0aW5nIGNvbW1hbmRz IGlzIG5vdCBpbXBvcnRhbnQuICBXaGl0ZXNwYWNlIGluY2x1ZGVzIHRhYnMs DQogICBuZXdsaW5lcywgYW5kIHRoZSBzcGFjZSBjaGFyYWN0ZXIuDQoNCjIu My4gQ29tbWVudHMNCg0KICAgQ29tbWVudHMgYmVnaW4gd2l0aCBhICIjIiBj aGFyYWN0ZXIgdGhhdCBpcyBub3QgY29udGFpbnRlZCB3aXRoaW4gYQ0KICAg c3RyaW5nIGFuZCBjb250aW51ZSB1bnRpbCB0aGUgbmV4dCBuZXdsaW5lLg0K DQoyLjQuIE51bWJlcnMNCg0KICAgTnVtYmVycyBhcmUgbm9ybWFsbHkgZ2l2 ZW4gaW4gdGhlIGZvcm0gb2YgZGVjaW1hbCBudW1iZXJzLiAgSG93ZXZlciwN CiAgIHRob3NlIG51bWJlcnMgdGhhdCBoYXZlIGEgdGVuZGFuY3kgdG8gYmUg ZmFpcmx5IGxhcmdlLCBzdWNoIGFzDQogICBtZXNzYWdlIHNpemVzLCBzdWNo IGFzIG1lc3NhZ2Ugc2l6ZXMsIG1heSBoYXZlIGEgIksiLCAiTSIsIG9yICJH Ig0KICAgYXBwZW5kZWQgdG8gaW5kaWNhdGUgYSBtdWx0aXBsZSBvZiBhIGJh c2UtdHdvIG51bWJlci4gIFRvIGJlDQogICBjb21wYXJhYmxlIHdpdGggdGhl IGJhc2UtdHdvLWJhc2VkIHZlcnNpb25zIG9mIFNJIHVuaXRzIHRoYXQNCiAg IGNvbXB1dGVycyBmcmVxdWVudGx5IHVzZSwgSyBzcGVjaWZpZXMga2lsbywg b3IgMSwwMjQgdGltZXMgdGhlIHZhbHVlDQogICBvZiB0aGUgbnVtYmVyOyBN IHNwZWNpZmllcyBtZWdhLCBvciAxLDA0OCw1NzYgdGltZXMgdGhlIHZhbHVl IG9mIHRoZQ0KICAgbnVtYmVyOyBhbmQgRyBzcGVjaWZpZXMgZ2lnYSwgb3Ix LDA3Myw3NDEsODI0IHRpbWVzIHRoZSB2YWx1ZSBvZiB0aGUNCiAgIG51bWJl ci4NCg0KMi41LiBTdHJpbmdzDQoNCiAgIFNjcmlwdHMgaW52b2x2ZSBsYXJn ZSBudW1iZXJzIG9mIHN0cmluZ3MuICBUeXBpY2FsbHksIHNob3J0IHF1b3Rl ZA0KICAgc3RyaW5ncyBzdWZmaWNlIGZvciBtb3N0IHVzZXMsIGJ1dCBhIG1v cmUgY29udmVpbmVudCBmb3JtIGlzIHByb3ZpZGVkDQogICBmb3IgbG9uZ2Vy IHN0cmluZ3MuDQoNCiAgIEEgcXVvdGVkIHN0cmluZyBzdGFydHMgYW5kIGVu ZHMgd2l0aCBhIHNpbmdsZSBkb3VibGUgcXVvdGUgKHRoZSAiKS4NCiAgIEEg YmFja3NsYXNoICgiIGJhY2tzbGFzaCBvciBhIGRvdWJsZSBxdW90ZS4gIFRo aXMgdHdvLWNoYXJhY3Rlcg0KICAgc2VxdWVuY2UgcmVwcmVzZW50cyBhIHNp bmdsZSBiYWNrc2xhc2ggb3IgZG91YmxlLXF1b3RlIHdpdGhpbiB0aGUNCiAg IHN0cmluZy4NCg0KICAgRm9yIGVudGVyaW5nIGxhcmdlciBhbW91bnRzIG9m IHRleHQsIHN1Y2ggYXMgYW4gZW1haWwgbWVzc2FnZSwgYQ0KICAgbG9uZ2Vy IGZvcm0gaXMgYWxsb3dlZCwga25vd24gYXMgYSAidXNlci1tZXNzYWdlIi4g IEl0IHN0YXJ0cyB3aXRoDQogICB0aGUga2V5d29yZCAibWVzc2FnZSIgYW5k IGVuZHMgd2l0aCB0aGUgc2VxdWVuY2Ugb2YgYSBuZXdsaW5lLCBhDQogICBz aW5nbGUgcGVyaW9kLCBhbmQgYW5vdGhlciBuZXdsaW5lLiAgQW55IGxpbmUg dGhhdCBiZWdpbnMgd2l0aCAiLi4iDQogICBpcyBjb25zaWRlcmVkIHRvIGJl Z2luIHdpdGggIi4iLg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdl IDddDQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgudHh0ICAgICBTSUVW RSAgICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5OTcNCg0KDQogICBF eGFtcGxlOiAgICBpZiBhbnktb2YgKGhlYWRlciAoImZyb20iKSBjb250YWlu cw0KICAgICAgICAgICAgICAgICAgKCJiYXJ0IiAiaG9tZXIiICJzbWl0aGVy cyIgImJ1cm5zIiAibGlzYSIpDQogICAgICAgICAgICAgICBoZWFkZXIgKCJz dWJqZWN0IikgY29udGFpbnMgKCJVUkdFTlQiKSkgdGhlbiBmaWxlaW50bw0K ICAgICAgICAgICAgICAgIklOQk9YIiBlbHNlIHJlcGx5IG1lc3NhZ2UgWW91 IGFyZSBub3Qgb25lIG9mIHRoZSBwZW9wbGUNCiAgICAgICAgICAgICAgIEkg cmVndWxhcmx5IGNvcnJlc3BvbmQgd2l0aC4gIEkgaGF2ZSBkZWxldGVkIHlv dXIgbWVzc2FnZQ0KICAgICAgICAgICAgICAgZHVlIHRvIHRoZSBsYXJnZSB2 b2x1bWUgb2YgZW1haWwgSSByZWd1bGFybHkgcmVjZWl2ZS4gIElmDQogICAg ICAgICAgICAgICB5b3UgZmVlbCB0aGF0IHlvdSBuZWVkIHRvIHNwZWFrIHdp dGggbWUgZGlyZWN0bHksIGFuZA0KICAgICAgICAgICAgICAgY2Fubm90IGZp bmQgeW91ciBhbnN3ZXIgaW4gbXkgd2ViIHBhZ2VzLCBwbGVhc2Ugc2VuZCBt YWlsDQogICAgICAgICAgICAgICB3aXRoIHRoZSB3b3JkICJVUkdFTlQiIGlu IHRoZSBzdWJqZWN0IGxpbmUuICBUaGFuayB5b3UNCiAgICAgICAgICAgICAg IGZvciB5b3VyIHRpbWUuDQogICAgICAgICAgICAgICBbIE9ORSBTSU5HTEUg RE9ULCB3aGljaCBJIGNhbid0IGdldCBucm9mZiB0byBwcm9kdWNlIC4uLg0K ICAgICAgICAgICAgICAgXQ0KICAgICAgICAgICAgICAgZW5kaWYNCg0KDQoy LjYuIEFkZHJlc3Nlcw0KDQogICBBIG51bWJlciBvZiBjb21tYW5kcyBjYWxs IGZvciBlbWFpbCBhZGRyZXNzZXMuICBUaGVzZSBhZGRyZXNzZXMgbXVzdA0K ICAgYmUgY29tcGxpYW50IHdpdGggW1JGQzgyMl0uICBJbXBsZW1lbnRhdGlv bnMgTVVTVCBpbnN1cmUgdGhlDQogICBhZGRyZXNzZXMgYXJlIHN5bnRhY3Rp Y2FsbHkgdmFsaWQsIGFuZCBuZWVkIG5vdCBpbnN1cmUgdGhhdCB0aGV5IGFy ZQ0KICAgYWN0dWFsbHkgZGVsaXZlcmFibGUuDQoNCjIuNy4gRXZhbHVhdGlv bg0KDQogICBJZiBldmFsdWF0aW9uIG9mIHRoZSBzY3JpcHQgZmFpbHMgdG8g cHJvZHVjZSBhbnkgYWN0aW9ucywgYXMgaW4gdGhlDQogICBmb2xsb3dpbmcg c2NyaXB0IHdpdGggbWVzc2FnZSBBIGFib3ZlOg0KDQogICBFeGFtcGxlOiAg ICBpZiBzaXplIG92ZXIgNTAwSyB0aGVuIHRvc3MgZW5kaWYNCg0KICAgdGhl biB0aGUgIm5vcm1hbCIgYWN0aW9uIGlzIHRha2VuLiAgVGhlICJub3JtYWwi IGFjdGlvbiBpcyBkZWZpbmVkIHRvDQogICBiZSB0aGUgYWN0aW9uIHRoYXQg aXMgdGFrZW4gbm9ybWFsbHksIHN1Y2ggYXMgaW4gYSBzaXR1YXRpb24gd2hl cmUNCiAgIHRoZSB1c2VyIGRvZXMgbm8gZmlsdGVyaW5nLiAgVW5kZXIgbW9z dCBzaXR1YXRpb25zLCB0aGUgbm9ybWFsIGFjdGlvbg0KICAgaXMgdG8gZmls ZSBpbnRvIHRoZSB1c2VyJ3MgbWFpbiBtYWlsYm94IChzdWNoIGFzICJJTkJP WCIgb24gbWFueQ0KICAgaW1wbGVtZW50YXRpb25zKS4NCg0KICAgSW1wbGVt ZW50YXRpb25zIGRlZmluZSB0aGUgc3BlY2lmaWMgbWVhbmluZ3Mgb2YgYWN0 aW9ucy4gIEltcGxlbWVudGEtDQogICB0aW9ucyBtYXkgaW1wb3NlIHJlc3Ry aWN0aW9ucyBvbiB0aGUgYWN0aW9ucyB0YWtlbiwgc3VjaCBhcyBvbmx5DQog ICBob25vcmluZyBvbmUgInJlcGx5IiwgImJvdW5jZSIsIG9yICJmb3J3YXJk IiBwZXIgbWVzc2FnZS4NCg0KICAgUHJlY2VkZW5jZSBpcyBub3QgaW1wb3J0 YW50IGluIGFueSBvZiB0aGUgY29tbWFuZHMgaW4gdGhpcyBiYXNlDQogICBz cGVjaWZpY2F0aW9uLiAgSG93ZXZlciwgYXMgYW4gZXh0ZW5zaW9uIG1pZ2h0 IG1ha2UgaXQgbW9yZSBpbXBvci0NCiAgIHRhbnQsIGFsbCBydWxlcyBtdXN0 IGJlIGV2YWx1YXRlZCBpbiBsZWZ0LXRvLXJpZ2h0IG9yZGVyLiAgVGhvc2UN CiAgIG9wZXJhdGlvbnMgdGhhdCBtYXkgaW1wbGVtZW50IHNob3J0LWNpcmN1 aXQgZXZhbHVhdGlvbiAoc3VjaCBhcyB0aGUNCiAgICJhbGwtb2YiIGFuZCAi YW55LW9mIiBvcGVyYXRvcnMsIHdoaWNoIHByZWZvcm0gbG9naWNhbCAiYW5k IiBhbmQgIm9yIg0KICAgb3BlcmF0aW9ucywgcmVzcGVjdGl2ZWx5KSBNQVkg ZG8gc28uDQoNCjMuICAgQ29uZGl0aW9uYWxzIGFuZCBDb250cm9sIFN0cnVj dHVyZXMNCg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtQYWdlIDhdDQoM DQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgudHh0ICAgICBTSUVWRSAgICAg ICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5OTcNCg0KDQogICBJbiBvcmRl ciBmb3IgYSBzY3JpcHQgdG8gZG8gbW9yZSB0aGFuIG9uZSBzZXQgb2YgYWN0 aW9ucywgY29udHJvbA0KICAgc3RydWN0dXJlcyBhcmUgbmVlZGVkLg0KDQoz LjEuIElmDQoNCiAgIFN5bnRheDogICAgIGlmIDx0ZXN0PiB0aGVuIDxjb21t YW5kcz4NCiAgICAgICAgICAgICAgIFtlbHNpZiA8ZWxzaWYtdGVzdD4gdGhl biA8ZWxzaWYtY29tbWFuZHM+IFtlbHNpZiAuLi5dXQ0KICAgICAgICAgICAg ICAgW2Vsc2UgPGVsc2UtY29tbWFuZHM+XQ0KICAgICAgICAgICAgICAgZW5k aWYNCg0KICAgVGhlICJpZiIgY29udHJvbCBzdHJ1Y3R1cmUgaXMgYm9ycm93 ZWQgZnJvbSBhbnkgbnVtYmVyIG9mIHByb2dyYW1taW5nDQogICBsYW5ndWFn ZXMuICBJdCBpcyBldmFsdWF0ZWQgaW4gdGhlIHVzdWFsIHdheSwgYXMgZm9s bG93czogaWYgPHRlc3Q+DQogICBpcyB0cnVlLCB0aGVuIDxjb21tYW5kcz4g YXJlIGV2YWx1YXRlZC4gIElmIGFuIGVsc2lmIGtleXdvcmQgZXhpc3RzLA0K ICAgYW5kIDxuZXh0LXRlc3Q+IGlzIHRydWUsIHRoZW4gPGVsc2lmLWNvbW1h bmRzPiBhcmUgZXZhbHVhdGVkLiAgQW55DQogICBudW1iZXIgb2YgZWxzaWYg Y2FzZXMgbWF5IGJlIGluY2x1ZGVkLCBhbmQgYXJlIGV2YWx1YXRlZCBzZXJp YWxseS4NCiAgIElmIDx0ZXN0PiBpcyBmYWxzZSBhbmQgdGhlIDxlbHNpZi10 ZXN0PnMgYXJlIGZhbHNlIGFzIHdlbGwsIHRoZW4gdGhlDQogICA8ZWxzZS1j b21tYW5kcz4gYXJlIGV2YWx1YXRlZC4gIFRoZSAiaWYiIGJsb2NrIGlzIHRl cm1pbmF0ZWQgd2l0aCBhbg0KICAgImVuZGlmIiBrZXl3b3JkLCB3aGljaCBp cyByZXF1aXJlZC4NCg0KICAgSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCBi b3RoIE1lc3NhZ2UgQSBhbmQgQiBhcmUgZHJvcHBlZC4NCg0KICAgRXhhbXBs ZTogICAgaWYgaGVhZGVyICgiZnJvbSIpIGNvbnRhaW5zICgiY295b3RlIikg dGhlbg0KICAgICAgICAgICAgICAgdG9zcw0KICAgICAgICAgICAgICAgZWxz aWYgaGVhZGVyICgic3ViamVjdCIpIGNvbnRhaW5zICgiJCQkIikNCiAgICAg ICAgICAgICAgIHRoZW4gdG9zcw0KICAgICAgICAgICAgICAgZWxzZSBmaWxl aW50byAiSU5CT1giDQogICAgICAgICAgICAgICBlbmRpZg0KDQogICBPbmx5 IG9uZSBzZXQgb2YgY29tbWFuZHMgIGluIGFuIGlmIC4uLiBlbHNpZiAuLi4g ZWxzaWYgLi4uIGVsc2UgLi4uDQogICBlbmRpZiBibG9jayBpcyBleGVjdXRl ZC4NCg0KICAgSW4gdGhlIHNjcmlwdCBiZWxvdywgd2hlbiBydW4gb3ZlciBt ZXNzYWdlIEEsIHNlbmRzIG1haWwgdG8NCiAgIGFjbUBhbmRyZXcuY211LmVk dTsgbWVzc2FnZSBCLCB0byBzZXJ2aWNlQGFuZHJldy5jbXUuZWR1OyBhbmQg bWVzc2FnZQ0KICAgQywgdG8gcG9zdG1hbkBhbmRyZXcuY211LmVkdS4NCg0K ICAgRXhhbXBsZTogICAgWFhYDQogICAgICAgICAgICAgICBYWFgNCg0KMy4y LiBSZXF1aXJlDQoNCiAgIFN5bnRheDogICAgIHJlcXVpcmUgPGV4dGVuc2lv bi1uYW1lPg0KDQogICBSZXF1aXJlIFNIT1VMRCBiZSBkZWNsYXJlZCBpbiBh IHVzZXIgc2NyaXB0IGJlZm9yZSBhbiBleHRlbnNpb24gaXMNCiAgIHVzZWQu ICBJdCBpbnN0cnVjdHMgdGhlIGV2YWx1YXRvciB0aGF0IHRoZSBleHRlbnNp b24gbmFtZWQNCiAgIGV4dGVuc2lvbi1uYW1lLCBzdXBwbGllZCBhcyBhIHN0 cmluZywgTVVTVCBiZSBwcmVzZW50IGluIG9yZGVyIHRvDQogICBhbGxvdyBm dXJ0aGVyIHByb2Nlc3NpbmcuICBJZiB0aGUgc3RyaW5nIHNwZWNpZmllcyBh biBleHRlbnNpb24gdGhhdA0KICAgdGhlIGV2YWx1YXRpbmcgbWVjaGFuaXNt IHN1cHBvcnRzLCB0aGVuIHByb2Nlc3NpbmcgY29udGludWVzLiAgT3RoZXIt DQogICB3aXNlLCBhbiBlcnJvciBoYXMgYmVlbiBlbmNvdW50ZXJlZCwgYW5k IHRoZSBzY3JpcHQgc2hvdWxkIG5vdCBiZQ0KDQoNCg0KU2hvd2FsdGVyICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtQYWdlIDldDQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgu dHh0ICAgICBTSUVWRSAgICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5 OTcNCg0KDQogICBldmFsdWF0ZWQuDQoNCiAgIFJlcXVpcmUgaXMgaW50ZW5k ZWQgdG8gZGVtYW5kIHRoZSB1c2Ugb2YgYW4gZXh0ZW5zaW9uIG5vdCBwcmVz ZW50IGluDQogICB0aGlzIGRvY3VtZW50Lg0KDQogICBUaGUgZm9sbG93aW5n IGV4YW1wbGUgd2lsbCBmYWlsIG9uIGFueSBzZXJ2ZXIgdGhhdCBkb2VzIG5v dCBpbXBsZW1lbnQNCiAgIHRoZSBleHRlbnNpb24ga25vd24gYXMgRFdJTS4N Cg0KDQogICBFeGFtcGxlOiAgICByZXF1aXJlICJkd2ltIjsgaWYgaGVhZGVy ICgic3ViamVjdCIpIGNvbnRhaW5zLW5vY2FzZQ0KICAgICAgICAgICAgICAg KCJ0aGUgc2VjcmV0IG1lc3NhZ2UiKSB0aGVuIGR3aW0gYmx1cmR5Ymxvb3Ag Ym9keTsgZW5kaWYNCiAgICAgICAgICAgICAgIHN0b3ANCg0KDQo0LiAgIEFj dGlvbnMgVGhpcyBkb2N1bWVudCBzdXBwbGllcyBzaXggYWN0aW9ucyB0aGF0 IG1heSBiZSB0YWtlbiBvbiBhDQogICBtZXNzYWdlOiBub3JtYWwsIGZpbGVp bnRvLCBmb3J3YXJkLCByZXNlbmQsIGJvdW5jZSwgdG9zcywgYW5kIHN0b3Au DQoNCjQuMS4gQWN0aW9uIGJvdW5jZQ0KDQogICBTeW50YXg6ICAgICBib3Vu Y2UNCg0KICAgVGhlICJib3VuY2UiIGFjdGlvbiByZXNlbmRzIHRoZSBtZXNz YWdlIHRvIHRoZSBzZW5kZXIsIHdyYXBwaW5nIGl0IGluDQogICBhICJib3Vu Y2UiIGZvcm0sIG5vdGluZyB0aGF0IGl0IHdhcyByZWplY3RlZCBieSB0aGUg cmVjaXBpZW50LiAgSW4NCiAgIHRoZSBmb2xsb3dpbmcgc2NyaXB0LCBtZXNz YWdlIEEgaXMgYm91bmNlZCB0byB0aGUgc2VuZGVyLg0KDQogICBFeGFtcGxl OiAgICBpZiBoZWFkZXIgKCJmcm9tIikgY29udGFpbnMgKCJjb3lvdGVAYW52 aWwuZGVtZW50aWEub3JnIikNCiAgICAgICAgICAgICAgIHRoZW4gYm91bmNl IGVuZGlmDQoNCiAgIDQuMi4gICBBY3Rpb24gZmlsZWludG8NCg0KICAgU3lu dGF4OiAgICAgZmlsZWludG8gPGZvbGRlcj4NCg0KICAgVGhlICJmaWxlaW50 byIgYWN0aW9uIGRyb3BzIHRoZSBtZXNzYWdlIGludG8gYSBuYW1lZCBmb2xk ZXIuICBJbiB0aGUNCiAgIGZvbGxvd2luZyBzY3JpcHQsIG1lc3NhZ2UgQSBp cyBmaWxlZCBpbnRvIGZvbGRlciAiSU5CT1guaGFyYXNzbWVudCIuDQoNCiAg IEV4YW1wbGU6ICAgIGlmIGhlYWRlciAoInRvIikgY29udGFpbnMNCg0KNC4z LiBBY3Rpb24gZm9yd2FyZA0KDQogICBTeW50YXg6ICAgICBmb3J3YXJkIDxh ZGRyZXNzPg0KDQogICBUaGUgImZvcndhcmQiIGFjdGlvbiBpcyB1c2VkIHRv IGZvcndhcmQgdGhlIG1lc3NhZ2UgdG8gYW5vdGhlciB1c2VyDQogICBhdCB0 aGUgc3VwcGxpZWQgYWRkcmVzcywgYXMgYSBtYWlsIGZvcndhcmRpbmcgZmVh dHVyZSBkb2VzLiAgVGhlDQogICAiZm9yd2FyZCIgYWN0aW9uIG1ha2VzIG5v IGNoYW5nZXMgdG8gdGhlIG1lc3NhZ2UgYm9keSBvciBoZWFkZXJzLCBhbmQN CiAgIG9ubHkgbW9kaWZpZXMgdGhlIGVudmVsb3BlLg0KDQogICBBIHNpbXBs ZSBzY3JpcHQgY2FuIGJlIHVzZWQgZm9yIGZvcndhcmRpbmc6DQoNCg0KDQoN ClNob3dhbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFtQYWdlIDEwXQ0KDA0KZHJhZnQtc2hvd2Fs dGVyLXNpZXZlLVhYLnR4dCAgICAgU0lFVkUgICAgICAgICAgICAgICAgICAg ICAgIDIwIE1hciAxOTk3DQoNCg0KICAgRXhhbXBsZTogICAgZm9yd2FyZCAi dGpzQGFuZHJldy5jbXUuZWR1Ig0KDQo0LjQuIEFjdGlvbiBub3JtYWwNCg0K ICAgU3ludGF4OiAgICAgbm9ybWFsDQoNCiAgIFRoZSAibm9ybWFsIiBhY3Rp b24gaXMgd2hhdGV2ZXIgYWN0aW9uIGlzIHRha2VuIGluIGxlaXUgb2YgYWxs IG90aGVyDQogICBhY3Rpb25zOyBnZW5lcmFsbHksIHRoaXMgc2ltcGx5IG1l YW5zIHRvIGRyb3AgdGhlIG1lc3NhZ2UgaW50byB0aGUNCiAgIHVzZXIncyBu b3JtYWwgbWFpbGJveC4gIFRoaXMgY29tbWFuZCBwcm92aWRlcyBhIHdheSB0 byBleGVjdXRlIHRoaXMNCiAgIGFjdGlvbiB3aXRob3V0IG5hbWluZyBpdCBl eHBsaWNpdGFsbHksIHByb3ZpZGluZyBhIHdheSB0byB1c2UgaXQNCiAgIGlu ZGVwZW5kYW50IG9mIHN5c3RlbS4NCg0KICAgU3ludGF4OiAgICAgaWYgc2l6 ZSB1bmRlciAxTUIgdGhlbiBub3JtYWwgZWxzZSB0b3NzDQoNCjQuNS4gQWN0 aW9uIHJlcGx5DQoNCiAgIFN5bnRheDogICAgIHJlcGx5IDxtZXNzYWdlPg0K DQogICBUaGUgInJlcGx5IiBhY3Rpb24gaXMgdXNlZCB0byBnZW5lcmF0ZSBh IGZvcm0gbGV0dGVyIHJlcGx5IHRvIHRoZQ0KICAgb3JpZ2luYWwgc2VuZGVy LiAgTWVzc2FnZSBpcyBYWFhYWFhYWFgNCg0KICAgRXhhbXBsZTogICAgaWYg c2l6ZSBvdmVyIDUwMEsgcmVwbHkgbWVzc2FnZQ0KICAgICAgICAgICAgICAg WW91ciBtZXNzYWdlIHdhcyB1bm5lY2Vzc2FyaWx5IGxhcmdlLg0KICAgICAg ICAgICAgICAgSSByZWplY3QgYWxsIGxhcmdlIG1lc3NhZ2VzOyB5b3Ugd2ls bCBuZWVkIHRvIGNvbnRhY3QgbWUNCiAgICAgICAgICAgICAgIGRpcmVjdGx5 Lg0KICAgICAgICAgICAgICAgZWxzZSBub3JtYWwgZW5kaWYNCg0KICAgT1BF TjogU3BlY2lmeSBoZWFkZXJzIHRyYW5zbWl0dGVkPyAgU3BlY2lmeSBudW1i ZXIgb2YgZGF5cyBiZWZvcmUNCiAgIGNvbnNpZGVyZWQgdmFsaWQvaW52YWxp ZD8NCjQuNi4gQWN0aW9uIHJlc2VuZA0KDQogICBTeW50YXg6ICAgICByZXNl bmQgPGFkZHJlc3M+DQoNCiAgIFRoZSAicmVzZW5kIiBhY3Rpb24gcmVzZW5k cyBhIG1lc3NhZ2UgdG8gdGhlIHN1cHBsaWVkIGFkZHJlc3MsIGFkZGluZw0K ICAgdGhlIGFwcHJvcHJpYXRlIFJlc2VudC1Gcm9tOiBhbmQgUmVzZW50LVRv OiBoZWFkZXJzLiAgT3RoZXIgdGhhbiBhDQogICBmZXcgYWRkZWQgaGVhZGVy cywgdGhlICJyZXNlbmQiIGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIG1ha2Ug bm8NCiAgIGNoYW5nZXMgdG8gdGhlIG1lc3NhZ2UgYm9keSBvciBoZWFkZXJz LCBsZWF2aW5nIHRoZSBtZXNzYWdlIG1vc3RseQ0KICAgdW50b3VjaGVkLg0K DQogICBFeGFtcGxlDQogICAgICAgIGlmIHN1YmplY3QgImN5cnVzIiB0aGVu IHJlc2VuZCAiY3lydXMtYnVnc0BhbmRyZXcuY211LmVkdSIgZW5kaWYNCg0K NC43LiBBY3Rpb24gc3RvcCBUaGUgInN0b3AiIGFjdGlvbiBlbmRzIGFsbCBw cm9jZXNzaW5nLiAgSWYgbm8gYWN0aW9ucw0KICAgaGF2ZSBiZWVuIGV4ZWN1 dGVkLCB0aGVuIHRoZSBub3JtYWwgYWN0aW9uIGlzIHRha2VuLg0KDQogICBF eGFtcGxlOiAgICBpZiAoaGVhZGVyICJmcm9tIiBtYXRjaGVzICJ3YWxsKkBh bmRyZXcuY211LmVkdSIpDQogICAgICAgICAgICAgICAgICAgIHRoZW4gZm9y d2FyZCAidGpzQHhhbmFkdS53di51cyI7IGVuZGlmIHN0b3ANCiAgICAgICAg ICAgICAgIGVuZGlmIHJlcGx5ICJJJ20gb24gdmFjYXRpb24gYW5kIG5vdCB0 YWtpbmcgYW55IG1lc3NhZ2VzOw0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W1BhZ2UgMTFdDQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgudHh0ICAg ICBTSUVWRSAgICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5OTcNCg0K DQogICAgICAgICAgICAgICB0cnkgYWdhaW4gaW4gYSB3ZWVrLiINCg0KNC44 LiBBY3Rpb24gdG9zcyBUb3NzIGRyb3BzIHRoZSBtZXNzYWdlLg0KDQogICBF eGFtcGxlOiAgICBpZiBoZWFkZXIgImZyb20iIGNvbnRhaW5zICJ3YWxsQGFu ZHJldy5jbXUuZWR1IiB0aGVuIHRvc3MNCiAgICAgICAgICAgICAgIGVuZGlm DQoNCjUuICAgVGVzdHMNCg0KICAgVGVzdHMgYXJlIHVzZWQgaW4gY29uZGl0 aW9uYWxzIHRvIGRlY2lkZSB3aGljaCBwYXJ0KHMpIG9mIHRoZSBjb25kaS0N CiAgIHRpb25hbCB0byBleGVjdXRlLg0KDQo1LlguIGFsbC1vZg0KDQogICBT eW50YXg6ICAgICBhbGwtb2YgKCA8dGVzdD4gWyxdIDx0ZXN0PiBbLF0gLi4u IDx0ZXN0PiApDQoNCiAgIFRoZSBhbGwtb2YgdGVzdCBwcmVmb3JtcyBhIGxv Z2ljYWwgQU5EIG9uIHRoZSB0ZXN0cyBzdXBwbGllZCB0byBpdC4NCg0KICAg VGhlIGNvbW1hIGluIGJldHdlZW4gdGVzdHMgaXMgb3B0aW9uYWwuDQoNCg0K ICAgRXhhbXBsZTogICAgYWxsLW9mIChmYWxzZSBmYWxzZSkgID0+ICAgZmFs c2UNCiAgICAgICAgICAgICAgIGFsbC1vZiAoZmFsc2UgdHJ1ZSkgICA9PiAg IGZhbHNlDQogICAgICAgICAgICAgICBhbGwtb2YgKHRydWUsIHRydWUpICAg PT4gICB0cnVlDQoNCg0KICAgNS5YLiBhbnktb2YNCg0KICAgU3ludGF4OiAg ICAgYWxsLW9mICggPHRlc3Q+IFssXSA8dGVzdD4gWyxdIC4uLiA8dGVzdD4g KQ0KDQogICBUaGUgYW55LW9mIHRlc3QgcHJlZm9ybXMgYSBsb2dpY2FsIE9S IG9uIHRoZSB0ZXN0cyBzdXBwbGllZCB0byBpdC4NCg0KICAgVGhlIGNvbW1h IGluIGJldHdlZW4gdGVzdHMgaXMgb3B0aW9uYWwuDQoNCg0KICAgRXhhbXBs ZTogICAgYWxsLW9mIChmYWxzZSBmYWxzZSkgID0+ICAgZmFsc2UNCiAgICAg ICAgICAgICAgIGFsbC1vZiAoZmFsc2UgdHJ1ZSkgICA9PiAgIHRydWUNCiAg ICAgICAgICAgICAgIGFsbC1vZiAodHJ1ZSwgdHJ1ZSkgICA9PiAgIHRydWUN Cg0KDQo1LiAuIGZhbHNlDQoNCiAgIFN5bnRheDogICAgIGZhbHNlDQoNCjUu WC4gaGVhZGVyDQoNCiAgIFN5bnRheDogICAgIGhlYWRlciA8aGVhZGVyLW5h bWUtbGlzdD4NCiAgICAgICAgICAgICAgIDwiY29udGFpbnMiLyJpcyIvIm1h dGNoZXMiLyJjb250YWlucy1ub2Nhc2UiIC8gImlzLQ0KDQoNCg0KU2hvd2Fs dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgW1BhZ2UgMTJdDQoMDQpkcmFmdC1zaG93YWx0ZXItc2ll dmUtWFgudHh0ICAgICBTSUVWRSAgICAgICAgICAgICAgICAgICAgICAgMjAg TWFyIDE5OTcNCg0KDQogICAgICAgICAgICAgICBub2Nhc2UiLyJtYXRjaGVz LW5vY2FzZSI+IDxrZXktbGlzdD4NCg0KICAgVGhlICJoZWFkZXIiIHRlc3Qg ZXZhbHVhdGVzIHRvIHRydWUgaWYgdGhlIGhlYWRlciBuYW1lIG1hdGNoZXMg a2V5Lg0KICAgSG93IHRoZSBtYXRjaCBpcyBkb25lIGlzIGRlc2NyaWJlZCBi eSB0aGUgc2Vjb25kIGFyZ3VtZW50LiAgVGhlIGJhc2ljDQogICBtYXRjaGlu ZyBmb3JtcyBhcmUgY2FzZSBzZW5zaXRpdmUuICBFYWNoIG1hdGNoaW5nIGZv cm0gaGFzIGENCiAgIGNvcnJlc3BvbmRpbmcgZm9ybSBlbmRpbmcgaW4gIi1u b2Nhc2UiOyB0aGVzZSBhcmUgbm90IGNhc2Ugc2Vuc2l0aXZlLg0KDQogICBB bGwgbWF0Y2hpbmdzIG9uIGhlYWRlciBmaWVsZCBuYW1lcyBNVVNUIGJlIGRv bmUgaW4gYSBjYXNlIGluc2Vuc2ktDQogICB0aXZlIG1hbm5lci4NCg0KICAg VGhlICJpcyIgYXJndW1lbnQgZGVtYW5kcyB0aGF0IG9uZSBvZiB0aGUgZmll bGRzIG9mIHRoZSBoZWFkZXJzDQogICBsaXN0ZWQgaW4gaGVhZGVyLW5hbWUt bGlzdCBjYW4gYmUgZm91bmQgaW4gdGhlIGtleS1saXN0LiAgSXQgaXMgdHJ1 ZQ0KICAgaWYgdGhlcmUgYXJlIHJlcGVhdGVkIGFyZ3VtZW50cyBpbiB0aGUg aGVhZGVyLW5hbWUtbGlzdCBvciB0aGUga2V5LQ0KICAgbGlzdC4NCg0KICAg VGhlICJjb250YWlucyIgYXJndW1lbnQgZGVtYW5kcyB0aGF0IG9uZSBvZiB0 aGUgdmFsdWVzIG9mIHRoZSBoZWFyZC0NCiAgIGVycyBuYW1lZCBpbiBoZWFk ZXItbmFtZS1saXN0IHBhcnRpYWxseSBtYXRjaGVzIG9uZSBvZiB0aGUgdmFs dWVzIGluDQogICBrZXktbGlzdC4gIEl0IGlzIHRydWUgaWYgdGhlcmUgYXJl IHJlcGVhdGVkIGFyZ3VtZW50cyBpbiB0aGUgaGVhZGVyLQ0KICAgbmFtZS1s aXN0IG9yIHRoZSBrZXktbGlzdC4gIFRoZSBzdHJpbmcgIiIgaXMgY29udGFp bmVkIGluIGFueSBoZWFkZXINCiAgIHRoYXQgZXhpc3RzLg0KDQogICBUaGUg Im1hdGNoZXMiIGFyZ3VtZW50IGRlbWFuZHMgdGhhdCBvbmUgb2YgdGhlIGZp ZWxkcyBvZiB0aGUgaGVhZGVycw0KICAgbGlzdGVkIGluIGhlYWRlci1uYW1l LWxpc3QgbWF0Y2hlcyBhICJnbG9iIiBwYXR0ZXJuIGRlc2NyaWJlZCBieSBv bmUNCiAgIG9mIHRoZSBtZW1iZXJzIG9mIGtleS1saXN0LiAgQSBnbG9iIHBh dHRlcm4gaXMgYSBVTklYLXN0eWxlIGZpbGVuYW1lDQogICBnbG9iLCB3aGlj aCBoYXMgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnM6DQoNCiAg ICAgICAgICAgKiAgICAgTWF0Y2ggemVybyBvciBtb3JlIGNoYXJhY3RlcnMN CiAgICAgICAgICAgPyAgICAgTWF0Y2ggYW55IHNpbmdsZSBjaGFyYWN0ZXIN CiAgICAgICAgICAgICAgICBFc2NhcGUgbmV4dCBjaGFyYWN0ZXINCg0KICAg IiIgbWF0Y2hlcyBhbGwgc3RyaW5ncyB0aGF0IGV4aXN0Lg0KDQo1LkIuIG5v dA0KDQogICBTeW50YXg6DQogICAgICAgIG5vdCA8dGVzdD4NCg0KICAgVGhl ICJub3QiIHRlc3QgdGFrZXMgc29tZSBvdGhlciB0ZXN0LCBhbmQgcmV0dXJu cyB0aGUgb3Bwb3NpdGUNCiAgIHJlc3VsdC4NCg0KNS5RLiBzaXplDQoNCiAg IFN5bnRheDoNCiAgICAgICAgc2l6ZSA8Im92ZXIiIC8gInVuZGVyIj4gPGxp bWl0IFtxdWFudGlmaWVyXT4NCg0KICAgVGhlICJzaXplIiB0ZXN0IGRlYWxz IHdpdGggdGhlIHNpemUgb2YgYSBtZXNzYWdlLiAgVGhlIHRlc3QgaXMgdHJ1 ZQ0KICAgb25seSBpZiB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzICJvdmVyIiBh bmQgdGhlIHNpemUgb2YgdGhlIG1lc3NhZ2UgaXMNCiAgIHN0cmljdGx5IGdy ZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIG9jdGV0cyBzcGVjaWZpZWQgYXMg bGltaXQuICBJZg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1BhZ2UgMTNd DQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUtWFgudHh0ICAgICBTSUVWRSAg ICAgICAgICAgICAgICAgICAgICAgMjAgTWFyIDE5OTcNCg0KDQogICB0aGUg c2Vjb25kIGFyZ3VtZW50IGlzICJ1bmRlciIsIHRoZW4gdGhlIHRlc3QgaXMg dHJ1ZSBvbmx5IGlmIHRoZQ0KICAgbWVzc2FnZSBzaXplIGlzIHN0cmljdGx5 IGxlc3MgdGhhbiB0aGUgbnVtYmVyIG9mIG9jdGV0cyBzcGVjaWZpZWQgYXMN CiAgIGxpbWl0LiAgSW4gZWl0aGVyIGNhc2UsIGlmIHRoZSBtZXNzYWdlIHNp emUgaXMgZXhhY3RseSB0aGUgbGltaXQsIHRoZQ0KICAgdGVzdCBpcyBmYWxz ZS4NCg0KICAgVGhlIHNpemUgb2YgYSBtZXNzYWdlIGlzIGRlZmluZWQgdG8g YmUgdGhlIG51bWJlciBvZiBvY3RldHMgZnJvbSB0aGUNCiAgIGluaXRpYWwg aGVhZGVyIHVudGlsIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbWVzc2Fn ZSBib2R5Lg0KDQo1LlguIHRydWUNCg0KICAgU3ludGF4Og0KICAgICAgICB0 cnVlDQoNCiAgIFRoZSAidHJ1ZSIgdGVzdCBpcyBhbHdheXMgdHJ1ZS4NCg0K NS5YLiB2YWxpZA0KDQogICBTeW50YXg6DQogICAgICAgIHZhbGlkDQoNCiAg IFRoZSAidmFsaWQiIHRlc3QgaXMgdHJ1ZSBpZiB0aGUgbWVzc2FnZSBzYXRp c2ZpZXMgdGhlIGJhc2ljIGNyaXRlcmlhDQogICBmb3IgYW4gW1JGQzgyMl0g Y29tcGxpYW50IG1lc3NhZ2UuICBBdCBhIG1pbmltdW0sIHRoZSBtZXNzYWdl IG11c3QNCiAgIGhhdmUgdmFsaWQgYSB2YWxpZCAiVG8iIGhlYWRlciwgYSB2 YWxpZCAiRnJvbSIgb3IgIlNlbmRlciIgaGVhZGVyLA0KICAgd2hlcmUgdGhl IGZpZWxkIGluIHRoZSBhZGRyZXNzIGNvbnRhaW5zIGFuIGVtYWlsIGFkZHJl c3Mgb2YgdGhlIGZvcm0NCiAgICJ1c2VyQGhvc3QiLCBhbmQgaG9zdCBpcyBh IHZhbGlkIGRvbWFpbiByZWNvcmQuDQoNCiAgIFRoZSBpbnRlbnRpb24gb2Yg dGhlICJ2YWxpZCIgdGVzdCBpcyB0byBkcm9wIG1lc3NhZ2VzIHRoYXQgZG8g bm90IGZpdA0KICAgdGhlIGJhc2ljIHJlcXVpcmVtZW50cyBvZiBhbiBbUkZD ODIyXSBjb21wbGlhbnQgbWVzc2FnZSwgYnV0IG1hZGUgaXQNCiAgIHRvIGZp bmFsIGRlbGl2ZXJ5IG5vbmUgdGhlIGxlc3MuDQoNCiAgIFtJJ20gbm90IHN1 cmUgZXhhY3RseSB3aGF0IHJlcXVpcmVtZW50cyBzaG91bGQgYmUgaW1wb3Nl ZCwgYnV0IHRoaXMNCiAgIG9uZSBtaWdodCBiZSB2ZXJ5IHVzZWZ1bCBmb3Ig d2VlZGluZyBvdXQgam9rZSBtZXNzYWdlcyBmcm9tDQogICBwcmVzaWRlbnRA d2hpdGVob3VzZS5nb3YgdGhhdCBoYXBwZW4gd2hlbmV2ZXIgdGhlIGZyZXNo bWFuIGNsYXNzIGZpZy0NCiAgIHVyZXMgb3V0IGhvdyB0byBmb3JnZSBtYWls LCBvciBzcGFtcyB0aGF0IGRvbid0IGJvdGhlciBoYXZpbmcgdmFsaWQNCiAg IHJldHVybiBhZGRyZXNzZXMuXQ0KDQo2LiAgIEVycm9ycyBpbiBQcm9jZXNz aW5nIGEgU2NyaXB0DQoNCiAgIEluIGFueSBzb3J0IG9mIHByb2dyYW1taW5n IGxhbmd1YWdlLCBldmVuIGEgdmVyeSBzaW1wbGUgb25lLCBlcnJvcnMNCiAg IGFyZSBpbmV2aXRhYmxlLiAgSW4gdGhpcyBjYXNlLCB1c2VycyBhcmUgZXhw ZWN0ZWQgdG8gbWFrZSBlcnJvcnMgLS0NCiAgIGV2ZW4gaWYgdGhlIGFjdHVh bCBzY3JpcHQgaXMgbWFjaGluZS1nZW5lcmF0ZWQsIG1haWxib3ggcmlnaHRz IG1pZ2h0DQogICBjaGFuZ2UgdG8gZGlzYWxsb3cgdXNlcnMgZnJvbSB3cml0 aW5nIHRvIGEgbWFpbGJveCwgYSBtYWlsYm94IG1heSBubw0KICAgbG9uZ2Vy IGV4aXN0LCBvciBhIHZhcmlldHkgb2Ygb3RoZXIgcHJvYmxlbXMuICBJdCBp cyBpbXBlcmF0aXZlIHRoYXQNCiAgIG1haWwgYmUgYWxsb3dlZCB0byBnZXQg dGhyb3VnaCBpbiBhbnkgY2FzZS4NCg0KICAgSWYgYW4gZXJyb3IgaXMgZm91 bmQgaW4gYSBzY3JpcHQsIGFuIGltcGxlbWVudGF0aW9uIE1VU1QgdHJ5IHRv IG1ha2UNCiAgIGZvcndhcmQgcHJvY2Vzcy4NCg0KDQoNCg0KU2hvd2FsdGVy ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW1BhZ2UgMTRdDQoMDQpkcmFmdC1zaG93YWx0ZXItc2lldmUt WFgudHh0ICAgICBTSUVWRSAgICAgICAgICAgICAgICAgICAgICAgMjAgTWFy IDE5OTcNCg0KDQogICBVc2VycyBNVVNUIGJlIG5vdGlmaWVkIG9mIGVycm9y cyBpbiBwcm9jZXNzaW5nIGEgc2NyaXB0LiAgVGhlIG1ldGhvZA0KICAgYnkg d2hpY2ggdXNlcnMgYXJlIG5vdGlmaWVkIGlzIGltcGxlbWVudGF0aW9uIGRl ZmluZWQsIGJ1dCBhIG1haWwNCiAgIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUg ZXJyb3IgaXMgc3VnZ2VzdGVkIGlmIGEgcHJlZmVycmFibGUgYWx0ZXJuYS0N CiAgIHRpdmUgY2Fubm90IGJlIGZvdW5kDQoNCiAgIEltcGxlbnRhdGlvbnMg dGhhdCBhbGxvdyBmb3IgdGhlIHNjcmlwdCB0byBiZSBjaGVja2VkIGZvciBz eW50YXgNCiAgIGVycm9ycyBpbiBhZHZhbmNlIG9mIG1haWwgcmVjZWlwdCAo aS5lLiwgY2xpZW50LWJhc2VkIGZpbHRlcmluZywgb3INCiAgIHNlcnZlci1i YXNlZCBmaWx0ZXJpbmcgd2l0aCBhIHN1Ym1pc3Npb24gcHJvdG9jb2wgYXdh cmUgb2YgdGhpcw0KICAgbGFuZ3VhZ2UpIFNIT1VMRCBub3RpZnkgdGhlIHVz ZXIgb2YgdGhlIGVycm9yIGFuZCByZWZ1c2UgdG8gYWNjZXB0IGENCiAgIHN5 bnRhY3RpY2FsbHkgaW52YWxpZCBzY3JpcHQsIG9yIG9uZSB0aGF0IG1ha2Vz IHVzZSBvZiBleHRlbnNpb25zDQogICB0aGF0IHRoZSBzZXJ2ZXIgZG9lcyBu b3QgcmVwb3J0Lg0KDQogICBJbXBsZW1lbnRhdGlvbnMgdGhhdCBhbGxvdyBz ZXJ2ZXItYmFzZWQgZmlsdGVyaW5nIChpLmUuLCBhcyBwYXJ0IG9mDQogICBh biBJTUFQIHNlcnZlcikgTVVTVCBhbGxvdyBtYWlsIHRvIGJlIGZpbGVkIG5v cm1hbGx5IChpLmUuLCBmb3IgSU1BUCwNCiAgIGludG8gdGhlIHVzZXIncyBJ TkJPWCkgaW4gY2FzZSBvZiBhIHN5bnRheCBlcnJvciBpbiB0aGUgc2NyaXB0 LCBhbmQNCiAgIE1VU1Qgbm90aWZ5IHRoZSB1c2VyIG9mIGFuIGVycm9yIGlu IHNvbWUgZm9ybSAoc3VjaCBhcyBzZW5kaW5nIHRoZQ0KICAgdXNlciBhIG1h aWwgbWVzc2FnZSBub3RpZnlpbmcgdGhlbSBvZiB0aGUgZXJyb3IpLiAgSW1w bGVtZW50YXRpb25zDQogICBTSE9VTEQgYXZvaWQgb3ZlcnNlbmRpbmcgZXJy b3IgbWVzc2FnZXMgdG8gdGhlIHVzZXIncyBtYWlsYm94Lg0KDQogICBJbXBs ZW1lbnRhdGlvbnMgdGhhdCBhbGxvdyBjbGllbnQtYmFzZWQgZmlsdGVyaW5n IChpLmUuLCB1c2UgdGhpcw0KICAgbGFuZ3VhZ2UgdG8gaW1wbGVtZW50IGZp bHRlcmluZyBmcm9tIGEgUE9QIHNlcnZlciBpbnRvIGxvY2FsIG1haWwNCiAg IGZvbGRlcnMpIG11c3Qgbm90aWZ5IHRoZSB1c2VyIG9mIHN5bnRheCBlcnJv cnMsIGFuZCBzaG91bGQgYWxsb3cgdGhlDQogICB1c2VyIHRvIGZpbGUgbWFp bCBpbnRvIHRoZWlyIG1haW4gbWFpbGJveCBvbiByZXF1ZXN0LiAgSWYgbWFp bCBpcw0KICAgcHJvY2Vzc2VkIHdpdGhvdXQgdXNlciBpbnRlcnZlbnRpb24g KGFzIHBhcnQgb2YgYSBiYWNrZ3JvdW5kIHRlc3QsDQogICB3aXRoIGxvbmcg cGVyaW9kcyBvZiB0aW1lIGluIGJldHdlZW4gdXNlciBpbnRlcnZlbnRpb24p IHRoZSBpbXBsZW50YS0NCiAgIHRpb24gTVVTVCBmaWxlIG1haWwgaW50byB0 aGUgbWFpbiBtYWlsYm94Lg0KDQo3LiAgIEV4dGVuc2liaWxpdHkNCg0KICAg TmV3IGNvbnRyb2wgc3RydWN0dXJlcywgYWN0aW9ucywgYW5kIHRlc3RzIGNh biBiZSBhZGRlZCB0byB0aGUNCiAgIGxhbmd1YWdlLiAgU2l0ZXMgbXVzdCBt YWtlIHRoZXNlIGZlYXR1cmVzIGtub3duIHRvIHRoZWlyIHVzZXJzOyBhbg0K ICAgZXh0ZW5zaW9uIG5lZ290aWF0aW9uIG1lY2hhbmlzbSBpcyBub3QgZGVm aW5lZCBieSB0aGlzIGRvY3VtZW50Lg0KDQogICBGb3IgdGhlIGZvcm1hbCBn cmFtbWFyLCBhbiBleHRlbnNpb24gU0hPVUxEIGRlZmluZSBvbmUgb2YgdGhl IHN5bWJvbHMNCiAgIGJlZ2lubmluZyB3aXRoICJleHRlbnNpb24tIi4NCg0K ICAgQW55IGV4dGVuc2lvbnMgdG8gdGhpcyBsYW5ndWFnZSBNVVNUIGRlZmlu ZSBhIHVuaXF1ZSBzdHJpbmcgdGhhdA0KICAgZGVzY3JpYmVzIHRoYXQgZXh0 ZW5zaW9uLiAgU3VjaCBzdHJpbmdzIFNIT1VMRCBpbmNsdWRlIGEgdmVyc2lv bg0KICAgbnVtYmVyLiAgVGhlIHB1cnBvc2Ugb2Ygc3VjaCBhIHN0cmluZyBp cyBmb3IgdGhlICJyZXF1aXJlIiBjb25kaS0NCiAgIHRpb25hbCwgd2hpY2gg bWFuZGF0ZXMgdGhhdCBzY3JpcHQgcmVxdWlyZXMgdGhlIHVzZSBvZiB0aGF0 IGV4dGVuLQ0KICAgc2lvbi4gIEFkZGl0aW9uYWxseSwgaW4gYSBzaXR1YXRp b24gd2hlcmUgdGhlcmUgaXMgYSBzdWJtaXNzaW9uIHByby0NCiAgIHRvY29s IGFuZCBhbiBleHRzZW5zaW9uIGFkdmVydGlzZW1lbnQgbWVjaGFuaXNtLCBz byB0aGF0IHNjcmlwdHMgc3ViLQ0KICAgbWl0dGVkIGNhbiBiZSBjaGVja2Vk IGFnYWluc3QgdGhlIG1haWwgc2VydmVyIGZvciB2YWxpZCBleHRlbnNpb25z Lg0KDQo4LiAgIFRyYW5zbWlzc2lvbg0KDQogICBUaGlzIGRvY3VtZW50IGRv ZXMgbm90IGRlZmluZSBhIG1ldGhvZCBmb3IgYWNjZXNzaW5nIHN0b3JlZCBz Y3JpcHRzDQogICBhdCBydW4tdGltZSBvciBhcyB0aGV5IGFyZSB3cml0dGVu LCBub3IgZG9lcyBpdCBkZWZpbmUgYSBjaGFyYWN0ZXINCg0KDQoNClNob3dh bHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFtQYWdlIDE1XQ0KDA0KZHJhZnQtc2hvd2FsdGVyLXNp ZXZlLVhYLnR4dCAgICAgU0lFVkUgICAgICAgICAgICAgICAgICAgICAgIDIw IE1hciAxOTk3DQoNCg0KICAgc2V0IGVuY29kaW5nIGZvciBzY3JpcHRzLg0K DQogICBJZiB0aGUgbWV0aG9kIG9mIGhhbmRpbmcgYSBzY3JpcHQgb2ZmIHRv IHRoZSBzZXJ2ZXIgYWxsb3dzIGZvciBNSU1FLQ0KICAgdHlwaW5nIG9mIGRh dGEgKGFzIGRlc2NyaWJlZCBpbiBbTUlNRV0gYW5kIHRoZSBkYXRhIGlzIGVu Y29kZWQgaW4NCiAgIFVURi04LCB0aGUgTUlNRSB0eXBlIGZvciBhIFNJRVZF IHNjcmlwdCBpcyBYWFgvWFhYLg0KDQogICBJbXBsZW1lbnRhdGlvbnMgU0hP VUxEIGNoZWNrIGEgc2NyaXB0IGJlZm9yZSBpdCBpcyBydW4gaW4gb3JkZXIg dG8NCiAgIGluc3VyZSB0aGF0IGl0IGlzIHZhbGlkLiAgSW1wbGVtZW50YXRp b25zIFNIT1VMRCBOT1QgdHJ5IGFuZCByZWNvdmVyDQogICBmcm9tIGEgc2Ny aXB0IHdpdGggZXJyb3JzLCBhbmQgc2hvdWxkIGZpbGUgbWFpbCBpbnRvIHRo ZSB1c2VyJ3MgcHJpLQ0KICAgbWFyeSBtYWlsYm94Lg0KDQo5LiAgIEFja25v d2xlZGdlbWVudHMNCg0KMTAuICBGb3JtYWwgR3JhbW1hcg0KDQogICBUaGUg Z3JhbW1hciB1c2VkIGluIHRoaXMgc2VjdGlvbiBpcyB0aGUgc2FtZSBhcyB0 aGUgQUJORiBkZXNjcmliZWQgaW4NCiAgIFtBQk5GXSB3aXRoIG9uZSBleGNl cHRpb246IHRoZSBkZWxpbWl0ZXIgdXNlZCB3aXRoICIjIiBpcyBhbnkgYW1v dW50DQogICBvZiB3aGl0ZXNwYWNlICh0aGF0IGlzLCBDUiwgTEYsIHNwYWNl cywgYW5kIHRhYnMpLCBhcyBkZXNjcmliZWQgYnkNCiAgIHRoZSAiV1NQIiB0 ZXJtaW5hbCwgYW5kIG5vdCBhIHNpbmdsZSBjb21tYS4NCg0KICAgSW4gdGhl IGNhc2Ugb2YgYWx0ZXJuYXRpdmUgb3Igb3B0aW9uYWwgcnVsZXMgaW4gd2hp Y2ggYSBsYXRlciBydWxlDQogICBvdmVybGFwcyBhbiBlYXJsaWVyIHJ1bGUs IHRoZSBydWxlIHdoaWNoIGlzIGxpc3RlZCBlYXJsaWVyIE1VU1QgdGFrZQ0K ICAgcHJpb3JpdHkuDQoNCiAgIGFjdGlvbiA6Oj0gdG9zcyAvIGZpbGVpbnRv IC8gZm9yd2FyZCAvIGJvdW5jZSAvIHJlcGx5IC8gcmVzZW5kIC8NCiAgICAg ICBzdG9wIC8gZXh0ZW5zaW9uLWFjdGlvbg0KDQogICBhZGRyZXNzIDo6PSBz dHJpbmcNCiAgICAgICAgICAgOzsgYW55IGxlZ2FsIFJGQzgyMiBhZGRyZXNz DQoNCiAgIGFueS1vZiA6Oj0gImFueS1vZiIgV1NQICIoIiBbV1NQXSBjb25k aXRpb24gKihbIiwiXSBjb25kaXRpb24pIFtXU1BdICIpIg0KDQogICBhbGwt b2YgOjo9ICJhbGwtb2YiIFdTUCAiKCIgW1dTUF0gY29uZGl0aW9uICooWyIs Il0gY29uZGl0aW9uKSBbV1NQXSAiKSINCg0KICAgYmlnLW51bWJlciA6Oj0g bnVtYmVyIFsgVU5JVCBdDQoNCiAgIGJvdW5jZSA6Oj0gImJvdW5jZSINCg0K ICAgY29udHJvbC1zdHJ1Y3R1cmUgOjo9IGlmIC8gZXh0ZW5zaW9uLWNvbnRy b2wtc3RydWN0dXJlDQoNCiAgIGNvbW1hbmQgOjo9IGFjdGlvbiBbV1NQXSBb IjsiXSAvIGNvbnRyb2wtc3RydWN0dXJlDQoNCiAgIGNvbW1hbmRzIDo6PSAj KGNvbW1hbmQpDQoNCiAgIGNvbW1lbnQgOjo9ICIjIiAqQ0hBUiBDUkxGDQoN CiAgIENIQVIgOjo9IDxhbnkgQVNDSUkvVVRGLTggY2hhcmFjdGVyPg0KDQoN Cg0KDQpTaG93YWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbUGFnZSAxNl0NCgwNCmRyYWZ0LXNo b3dhbHRlci1zaWV2ZS1YWC50eHQgICAgIFNJRVZFICAgICAgICAgICAgICAg ICAgICAgICAyMCBNYXIgMTk5Nw0KDQoNCiAgIENSIDo6PSA8QVNDSUkgQ1Is IGNhcnJpYWdlIHJldHVybiwgMHgwRD4NCg0KICAgQ1JMRiA6Oj0gQ1IgTEYN Cg0KICAgRElHSVQgOjo9ICIwIiAvICIxIiAvICIyIiAvICIzIiAvICI0IiAv ICI1IiAvICI2IiAvICI3IiAvICI4IiAvICI5Ig0KDQogICBmaWxlaW50byA6 Oj0gImZpbGVpbnRvIiBXU1Agc3RyaW5nDQoNCiAgIGZvcndhcmQgOjo9ICJm b3J3YXJkIiBXU1AgYWRkcmVzcw0KDQogICBpZiA6Oj0gImlmIiBXU1AgdGVz dCBXU1AgInRoZW4iIFdTUCBjb21tYW5kcyBXU1AgIygiZWxzaWYiIFdTUA0K ICAgICAgIHRlc3QgV1NQICJ0aGVuIiBXU1AgY29tbWFuZHMpIFsgImVsc2Ui IFdTUCBjb21tYW5kcyBXU1AgXQ0KICAgICAgICJlbmRpZiINCiAgICAgICAg ICAgOzsgaWYgPGNvbmQ+IHRoZW4gPGNvbW1hbmRzPg0KICAgICAgICAgICA7 OyBbZWxzaWYgPGNvbmQ+IHRoZW4gPGNvbW1hbmRzPiBbZWxzaWYgLi4uXV0N CiAgICAgICAgICAgOzsgW2Vsc2UgPGNvbW1hbmRzPl0gZW5kaWYNCg0KICAg aW5jbHVkZSA6Oj0gImluY2x1ZGUiIFdTUCB1cmwNCg0KICAgaGVhZGVyIDo6 PQ0KDQogICBMRiA6Oj0gPEFTQ0lJIExGLCBsaW5lIGZlZWQsIDB4MEE+DQoN CiAgIG5ld2xpbmUgOjo9IENSW0xGXSAvIExGDQogICAgICAgICAgIDs7IEEg Q1JMRiBpcyBBTFdBWVMgb25lIG5ld2xpbmUuDQogICAgICAgICAgIDs7IFhY WCB0aGVyZSdzIGEgYmV0dGVyIHdheSB0byBzcGVjaWZ5IHRoaXMhDQoNCiAg IG51bWJlciA6Oj0gMSpESUdJVA0KDQogICBvciA6Oj0gY29uZGl0aW9uIFdT UCAib3IiIFdTUCBjb25kaXRpb24NCg0KICAgdXNlci1tZXNzYWdlIDo6PSAi bWVzc2FnZSIgW1dTUF0gbmV3bGluZSAiLiIgbmV3bGluZQ0KICAgICAgICAg ICA7OyBub3RlIHdoZW4gdXNlZCwNCiAgICAgICAgICAgOzsgYSBDUiB0aGF0 IGlzIG5vdCBmb2xsb3dlZCBieSBhbiBMRiBiZWNvbWVzIGEgQ1JMRjsNCiAg ICAgICAgICAgOzsgYW4gTEYgdGhhdCBpcyBub3QgZm9sbG93ZWQgYnkgYSBD UiBiZWNvbWVzIGEgQ1JMRi4NCiAgICAgICAgICAgOzsgYSBsZWFkaW5nIC4u IG9uIGEgbGluZSBpcyBtYXBwZWQgdG8gLg0KDQogICByZXNlbmQgOjo9ICJy ZXNlbmQiIFdTUCBzdHJpbmcNCg0KICAgc2l6ZSA6Oj0gInNpemUiIFdTUCAo ICJvdmVyIiAvICJ1bmRlciIgKSBXU1AgYmlnLW51bWJlcg0KDQogICBzdG9w IDo6PSAic3RvcCINCg0KICAgc3RyaW5nIDo6PSAoICINCiAgICAgICAgICAg OzsNCiAgICAgICAgICAgOzsgXCBpbnNpZGUgYSBzdHJpbmcgbWFwcyB0bw0K ICAgc3RyaW5nLWxpc3QgOjo9ICIoIiBbV1NQXSAqc3RyaW5nIFtXU1BdICIp Ig0KDQoNCg0KDQpTaG93YWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbUGFnZSAxN10NCgwNCmRy YWZ0LXNob3dhbHRlci1zaWV2ZS1YWC50eHQgICAgIFNJRVZFICAgICAgICAg ICAgICAgICAgICAgICAyMCBNYXIgMTk5Nw0KDQoNCiAgIHRlc3QgOjo9IFtX U1BdIGFueS1vZiAvIGFsbC1vZiAvIGZhbHNlIC8gaGVhZGVyIC8gbm90IC8N CiAgICAgICBzaXplIC8gZXh0ZW5zaW9uLXRlc3QgW1dTUF0NCg0KICAgVU5J VCA6Oj0gIksiIC8gIk0iIC8gIkciDQogICAgICAgICAgIDs7IGtpbG9ieXRl cywgbWVnYWJ5dGVzLCBvciBnaWdhYnl0ZXM7IHRoZSBCIGlzIG9wdGlvbmFs DQoNCiAgIHVybCA6Oj0gc3RyaW5nDQoNCiAgIFdTUCA6Oj0gIiAiIC8gQ1Ig LyBMRiAvIHRhYg0KICAgICAgICAgICA7OyBqdXN0IHdoaXRlc3BhY2UNCg0K DQoxMC4gIFNlY3VyaXR5IENvbnNpZGVyYXRpb25zIFVzZXJzIG11c3QgZ2V0 IHRoZWlyIG1haWwuICBJdCBpcyBpbXBlcmEtDQogICB0aXZlIHRoYXQgd2hh dGV2ZXIgbWV0aG9kIGltcGxlbWVudGF0aW9ucyB1c2UgdG8gc3RvcmUgdGhl IHVzZXItDQogICBkZWZpbmVkIGZpbHRlcmluZyBzY3JpcHRzIGJlIHJlYXNv bmFibHkgc2VjdXJlLg0KDQogICBJdCBpcyBlcXVhbGx5IGltcG9ydGFudCB0 aGF0IGltcGxlbWVudGF0aW9ucyBzYW5pdHktY2hlY2sgdGhlIHVzZXIncw0K ICAgc2NyaXB0cywgYW5kIG5vdCBhbGxvdyB1c2VycyB0byBjcmVhdGUgb24t ZGVtYW5kIG1haWxib21icy4gIEZvcg0KICAgaW5zdGFuY2UsIGFuIGltcGxl bWVudGF0aW9uIHRoYXQgYWxsb3dzIGEgdXNlciB0byBib3VuY2UsIGZvcndh cmQsIG9yDQogICByZXBseSBtdWx0aXBsZSB0aW1lcyB0byBhIHNpbmdsZSBt ZXNzYWdlIG1pZ2h0IGFsc28gYWxsb3cgYSB1c2VyIHRvDQogICBjcmVhdGUg YSBtYWlsYm9tYiB0cmlnZ2VyZWQgYnkgbWFpbCBmcm9tIGEgc3BlY2lmaWMg dXNlci4NCg0KMTEuICBBdXRob3IncyBBZGRyZXNzDQoNCiAgIFRpbSBTaG93 YWx0ZXINCiAgIENhcm5lZ2llIE1lbGxvbiBVbml2ZXJzaXR5DQogICA1MDAw IEZvcmJlcyBBdmVudWUNCiAgIFBpdHRzYnVyZ2gsIFBBIDE1MjEzDQoNCiAg IEUtTWFpbDogdGpzQGFuZHJldy5jbXUuZWR1DQoNCiAgIEFwcGVuZGl4IEEu ICAgUmVmZXJlbmNlcw0KDQogICBbQUJORl0NCg0KICAgW0FDQVBdDQoNCiAg IFtJTUFQXQ0KDQogICBbUkZDODIyXQ0KDQogICBbWFhYXQ0KDQoNCg0KDQoN Cg0KDQoNCg0KU2hvd2FsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW1BhZ2UgMThdDQoM ---559023410-342241519-859953043=:1026--
- Re: Sieve Clarifications Steve Hole
- Sieve Clarifications Chris Newman
- Re: Sieve Clarifications Tim Showalter
- Re: Sieve Clarifications Chris Newman
- Re: Sieve Clarifications Chris Newman
- Re: Sieve Clarifications Tim Showalter