Re: Modernizing Documentation format?
Clinton Bunch <[email protected]> Fri, 31 Jul 2026 11:27:15 -0500
| Newsgroups | gmane.comp.shells.zsh.devel |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------o3m0dWJvu0nmtjlzoa11pQQa Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 8/22/2025 20:40, dana wrote: > On Fri 22 Aug 2025, at 11:54, Clinton Bunch wrote: >> Man is good for reference on small single use programs.=C2=A0 It strug= gles >> with large programs or languages. > that's how i feel also. if it's a language, compiler, etc, i prefer > html. and ours does the job but it could be a lot better > > On Fri 22 Aug 2025, at 17:41, Clinton Bunch wrote: >> None of this discussion of programming languages is really pertinent t= o >> a discussion of a new documentation system for zsh to replace YODL, > yes, 99% of documentation changes are going to be in the documentation > language, so how anyone feels about the syntax or 'culture' of whatever > it's implemented in doesn't seem that important > > the main thing is how annoying of a dependency it is. python is > pre-installed on almost every system anyone would be developing zsh on, > or it's trivial to get if somehow it's not, so i think it's fine > > On Fri 22 Aug 2025, at 17:41, Clinton Bunch wrote: >> I haven't seen an example of mandoc that doesn't look like a man page >> presented in a web browser. > afaik that's deliberate. mandoc is designed exclusively for producing > traditional-style man pages and its feature set and rendering output > reflect that > > even if that wasn't the case i think maintaining a large body of > documentation in any roff-derived language is a nightmare. i can't thin= k > of any non-legacy projects that do it. the syntax is disgusting and it'= s > full of weird rules that even people who are familiar with it always > forget. imo it would be a downgrade from yodl > > idk about texinfo. i have managed to avoid it my entire life. it doesn'= t > seem popular outside of gnu projects in any case > > the obvious competitor to rst is adoc, but the dependency on ruby is > probably more objectionable than the python one, and i don't think the > syntax or functionality is any better than rst's > > some projects still use docbook but many that previously did (linux, > gnome, bind, nixos, rsync) have switched away > > straight markdown is almost ideal to me syntax-wise but we'd need tonne= s > of boiler-plate to get the functionality we want > > the myst extension for sphinx semi addresses that by taking rst's > functionality and making it a superset of commonmark. but it seems like > it's still not used much outside of the python eco-system. maybe that > would make people nervous > > dana > I am sorry it has taken nearly a year to get back to this. (Squirrel=20 :))=C2=A0 But here's a sample of zshbuiltins translated and the man and=20 in-tree html output (purposely kept simple for quick terminal or local=20 use.=C2=A0 I plan to do a more functional and prettier one for the websit= e) --------------o3m0dWJvu0nmtjlzoa11pQQa Content-Type: text/plain; charset=UTF-8; name="builtins.rst" Content-Disposition: attachment; filename="builtins.rst" Content-Transfer-Encoding: base64 U2hlbGwgQnVpbHRpbiBDb21tYW5kcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQouLiBv bmx5OjogbWFuCgpTaGVsbCBCdWlsdGluIENvbW1hbmRzCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCgouLiBpbmRleDo6IHNpbmdsZTogYnVpbHRpbiBjb21tYW5kczsgQ29tbWFuZAoK Li4gaW5kZXg6OiBzaW5nbGU6IGNvbW1hbmRzLCBidWlsdGluOyBDb21tYW5kCgpTb21lIHNo ZWxsIGJ1aWx0aW4gY29tbWFuZHMgdGFrZSBvcHRpb25zIGFzIGRlc2NyaWJlZCBpbiBpbmRp dmlkdWFsCmVudHJpZXM7IHRoZXNlIGFyZSBvZnRlbiByZWZlcnJlZCB0byBpbiB0aGUgbGlz dCBiZWxvdyBhcyBgYGZsYWdzYGAgdG8KYXZvaWQgY29uZnVzaW9uIHdpdGggc2hlbGwgb3B0 aW9ucywgd2hpY2ggbWF5IGFsc28gaGF2ZSBhbiBlZmZlY3Qgb24gdGhlCmJlaGF2aW91ciBv ZiBidWlsdGluIGNvbW1hbmRzLiAgSW4gdGhpcyBpbnRyb2R1Y3Rvcnkgc2VjdGlvbiwKYGBv cHRpb25gYCBhbHdheXMgaGFzIHRoZSBtZWFuaW5nIG9mIGFuIG9wdGlvbiB0byBhIGNvbW1h bmQgdGhhdCBzaG91bGQKYmUgZmFtaWxpYXIgdG8gbW9zdCBjb21tYW5kIGxpbmUgdXNlcnMu CgpUeXBpY2FsbHksIG9wdGlvbnMgYXJlIHNpbmdsZSBsZXR0ZXJzIHByZWNlZGVkIGJ5IGEg aHlwaGVuIChgYC1gYCkuCk9wdGlvbnMgdGhhdCB0YWtlIGFuIGFyZ3VtZW50IGFjY2VwdCBp dCBlaXRoZXIgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZQpvcHRpb24gbGV0dGVyIG9yIGFm dGVyIHdoaXRlIHNwYWNlLCBmb3IgZXhhbXBsZSBgYHByaW50IC1DMyB7MS4uOX1gYCBvcgpg YHByaW50IC1DIDMgezEuLjl9YGAgYXJlIGVxdWl2YWxlbnQuICBBcmd1bWVudHMgdG8gb3B0 aW9ucyBhcmUgbm90IHRoZQpzYW1lIGFzIGFyZ3VtZW50cyB0byB0aGUgY29tbWFuZDsgdGhl IGRvY3VtZW50YXRpb24gaW5kaWNhdGVzIHdoaWNoIGlzCndoaWNoLiAgT3B0aW9ucyB0aGF0 IGRvIG5vdCB0YWtlIGFuIGFyZ3VtZW50IG1heSBiZSBjb21iaW5lZCBpbiBhIHNpbmdsZQp3 b3JkLCBmb3IgZXhhbXBsZSBgYHByaW50IC1yY2EgLS0gKmBgIGFuZCBgYHByaW50IC1yIC1j IC1hIC0tICpgYCBhcmUKZXF1aXZhbGVudC4KClNvbWUgc2hlbGwgYnVpbHRpbiBjb21tYW5k cyBhbHNvIHRha2Ugb3B0aW9ucyB0aGF0IGJlZ2luIHdpdGggYGArYGAKaW5zdGVhZCBvZiBg YC1gYC4gIFRoZSBsaXN0IGJlbG93IG1ha2VzIGNsZWFyIHdoaWNoIGNvbW1hbmRzIHRoZXNl CmFyZS4KCk9wdGlvbnMgKHRvZ2V0aGVyIHdpdGggdGhlaXIgaW5kaXZpZHVhbCBhcmd1bWVu dHMsIGlmIGFueSkgbXVzdCBhcHBlYXIKaW4gYSBncm91cCBiZWZvcmUgYW55IG5vbi1vcHRp b24gYXJndW1lbnRzOyBvbmNlIHRoZSBmaXJzdCBub24tb3B0aW9uCmFyZ3VtZW50IGhhcyBi ZWVuIGZvdW5kLCBvcHRpb24gcHJvY2Vzc2luZyBpcyB0ZXJtaW5hdGVkLgoKQWxsIGJ1aWx0 aW4gY29tbWFuZHMgb3RoZXIgdGhhbiBgYGVjaG9gYCBhbmQgcHJlY29tbWFuZCBtb2RpZmll cnMsCmV2ZW4gdGhvc2UgdGhhdCBoYXZlIG5vIG9wdGlvbnMsIGNhbiBiZSBnaXZlbiB0aGUg YXJndW1lbnQgYGAtLWBgCnRvIHRlcm1pbmF0ZSBvcHRpb24gcHJvY2Vzc2luZy4gIFRoaXMg aW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyB3b3JkcwphcmUgbm9uLW9wdGlvbiBhcmd1 bWVudHMsIGJ1dCBpcyBvdGhlcndpc2UgaWdub3JlZC4gIFRoaXMgaXMgdXNlZnVsIGluCmNh c2VzIHdoZXJlIGFyZ3VtZW50cyB0byB0aGUgY29tbWFuZCBtYXkgYmVnaW4gd2l0aCBgYC1g YC4gIEZvcgpoaXN0b3JpY2FsIHJlYXNvbnMsIG1vc3QgYnVpbHRpbiBjb21tYW5kcyAoaW5j bHVkaW5nIGBgZWNob2BgKSBhbHNvCnJlY29nbml6ZSBhIHNpbmdsZSBgYC1gYCBpbiBhIHNl cGFyYXRlIHdvcmQgZm9yIHRoaXMgcHVycG9zZTsgbm90ZQp0aGF0IHRoaXMgaXMgbGVzcyBz dGFuZGFyZCBhbmQgdXNlIG9mIGBgLS1gYCBpcyByZWNvbW1lbmRlZC4KCmBgLWBgIDp2YXI6 YHNpbXBsZSBjb21tYW5kYAogICAgCiAgICBTZWUgOnJlZjpgUHJlY29tbWFuZCBNb2RpZmll cnNgLgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogLjsgRnVuY3Rpb24KCmBgLmBgIDp2YXI6 YGZpbGVgIFsgOnZhcjpgYXJnYCAuLi4gXQogICAgCiAgICBSZWFkIGNvbW1hbmRzIGZyb20g OnZhcjpgZmlsZWAgYW5kIGV4ZWN1dGUgdGhlbSBpbiB0aGUgY3VycmVudCBzaGVsbAogICAg ZW52aXJvbm1lbnQuCiAgICAKICAgIElmIDp2YXI6YGZpbGVgIGRvZXMgbm90IGNvbnRhaW4g YSBzbGFzaCwgb3IgaWYgYGBQQVRIX0RJUlNgYCBpcyBzZXQsCiAgICB0aGUgc2hlbGwgbG9v a3MgaW4gdGhlIGNvbXBvbmVudHMgb2YgYGAkcGF0aGBgIHRvIGZpbmQgdGhlIGRpcmVjdG9y eQogICAgY29udGFpbmluZyA6dmFyOmBmaWxlYC4gIEZpbGVzIGluIHRoZSBjdXJyZW50IGRp cmVjdG9yeSBhcmUgbm90IHJlYWQKICAgIHVubGVzcyBgYC5gYCBhcHBlYXJzIHNvbWV3aGVy ZSBpbiBgYCRwYXRoYGAuICBJZiBhIGZpbGUgbmFtZWQKICAgIDp2YXI6YGZpbGVgXCBgYC56 d2NgYCBpcyBmb3VuZCwgaXMgbmV3ZXIgdGhhbiA6dmFyOmBmaWxlYCwgYW5kIGlzIHRoZQog ICAgY29tcGlsZWQgZm9ybSAoY3JlYXRlZCB3aXRoIHRoZSBgYHpjb21waWxlYGAgYnVpbHRp bikgb2YgOnZhcjpgZmlsZWAsCiAgICB0aGVuIGNvbW1hbmRzIGFyZSByZWFkIGZyb20gdGhh dCBmaWxlIGluc3RlYWQgb2YgOnZhcjpgZmlsZWAuCiAgICAKICAgIElmIGFueSBhcmd1bWVu dHMgOnZhcjpgYXJnYCBhcmUgZ2l2ZW4sCiAgICB0aGV5IGJlY29tZSB0aGUgcG9zaXRpb25h bCBwYXJhbWV0ZXJzOyB0aGUgb2xkIHBvc2l0aW9uYWwKICAgIHBhcmFtZXRlcnMgYXJlIHJl c3RvcmVkIHdoZW4gdGhlIDp2YXI6YGZpbGVgIGlzIGRvbmUgZXhlY3V0aW5nLgogICAgSG93 ZXZlciwgaWYgbm8gYXJndW1lbnRzIGFyZSBnaXZlbiwKICAgIHRoZSBwb3NpdGlvbmFsIHBh cmFtZXRlcnMgcmVtYWluIHRob3NlIG9mIHRoZSBjYWxsaW5nIGNvbnRleHQsCiAgICBhbmQg bm8gcmVzdG9yaW5nIGlzIGRvbmUuCiAgICAKICAgIElmIDp2YXI6YGZpbGVgIHdhcyBub3Qg Zm91bmQgdGhlIHJldHVybiBzdGF0dXMgaXMgMTI3OyBpZiA6dmFyOmBmaWxlYCB3YXMgZm91 bmQKICAgIGJ1dCBjb250YWluZWQgYSBzeW50YXggZXJyb3IgdGhlIHJldHVybiBzdGF0dXMg aXMgMTI2OyBlbHNlIHRoZSByZXR1cm4KICAgIHN0YXR1cyBpcyB0aGUgZXhpdCBzdGF0dXMg b2YgdGhlIGxhc3QgY29tbWFuZCBleGVjdXRlZC4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6 IDo7IEZ1bmN0aW9uCgouLiBpbmRleDo6IHNpbmdsZTogZXhwYW5kaW5nIHBhcmFtZXRlcnM7 IENvbW1hbmQKCi4uIGluZGV4Ojogc2luZ2xlOiBwYXJhbWV0ZXJzLCBleHBhbmRpbmc7IENv bW1hbmQKCi4uIGluZGV4Ojogc2luZ2xlOiBkb2luZyBub3RoaW5nOyBDb21tYW5kCgpgYDpg YCBbIDp2YXI6YGFyZ2AgLi4uIF0KICAgIAogICAgVGhpcyBjb21tYW5kIGRvZXMgbm90aGlu ZywgYWx0aG91Z2ggbm9ybWFsIGFyZ3VtZW50IGV4cGFuc2lvbnMgaXMgcGVyZm9ybWVkCiAg ICB3aGljaCBtYXkgaGF2ZSBlZmZlY3RzIG9uIHNoZWxsIHBhcmFtZXRlcnMuICBBIHplcm8g ZXhpdCBzdGF0dXMgaXMgcmV0dXJuZWQuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiBhbGlh czsgRnVuY3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiBhbGlhc2VzLCBkZWZpbmluZzsgQ29t bWFuZAoKLi4gaW5kZXg6OiBzaW5nbGU6IGFsaWFzZXMsIGxpc3Rpbmc7IENvbW1hbmQKCmBg YWxpYXNgYCBbIHtgYCt8LX1nbXJzTGBgIF0gWyA6dmFyOmBuYW1lYFxbYGA9YGA6dmFyOmB2 YWx1ZWBdIC4uLiBdCiAgICAKICAgIEZvciBlYWNoIDp2YXI6YG5hbWVgIHdpdGggYSBjb3Jy ZXNwb25kaW5nIDp2YXI6YHZhbHVlYCwgZGVmaW5lIGFuIGFsaWFzCiAgICB3aXRoIHRoYXQg dmFsdWUuICBBIHRyYWlsaW5nIHNwYWNlIGluIDp2YXI6YHZhbHVlYCBjYXVzZXMgdGhlIG5l eHQgd29yZAogICAgdG8gYmUgY2hlY2tlZCBmb3IgYWxpYXMgZXhwYW5zaW9uLiAgSWYgdGhl IGBgLWdgYCBmbGFnIGlzIHByZXNlbnQsCiAgICBkZWZpbmUgYSBnbG9iYWwgYWxpYXM7IGds b2JhbCBhbGlhc2VzIGFyZSBleHBhbmRlZCBldmVuIGlmIHRoZXkgZG8gbm90CiAgICBvY2N1 ciBpbiBjb21tYW5kIHBvc2l0aW9uOgogICAgCiAgICAuLiBwYXJzZWQtbGl0ZXJhbDo6CiAg ICAgICA6Y2xhc3M6IGV4YW1wbGUKICAgIAoKICAgICAgICAlIHBlcmxkb2MgLS1oZWxwIDI+ JjEgfCBncmVwICdidWlsdC1pbiBmdW5jdGlvbnMnCiAgICAgICAgICAgIC1mICAgU2VhcmNo IFBlcmwgYnVpbHQtaW4gZnVuY3Rpb25zCiAgICAgICAgJSBhbGlhcyAtZyBIRz0nLS1oZWxw IDI+JjEgfCBncmVwJwogICAgICAgICUgcGVybGRvYyBIRyAnYnVpbHQtaW4gZnVuY3Rpb25z JwogICAgICAgICAgICAtZiAgIFNlYXJjaCBQZXJsIGJ1aWx0LWluIGZ1bmN0aW9ucwogICAg CiAgICAKICAgIElmIHRoZSBgYC1zYGAgZmxhZyBpcyBwcmVzZW50LCBkZWZpbmUgYSBzdWZm aXggYWxpYXM6IGlmIHRoZSBjb21tYW5kCiAgICB3b3JkIG9uIGEgY29tbWFuZCBsaW5lIGlz IGluIHRoZSBmb3JtIDp2YXI6YHRleHRgXCBgYC5gYDp2YXI6YG5hbWVgLCB3aGVyZQogICAg OnZhcjpgdGV4dGAgaXMgYW55IG5vbi1lbXB0eSBzdHJpbmcsIGl0IGlzIHJlcGxhY2VkIGJ5 IHRoZSB0ZXh0CiAgICA6dmFyOmB2YWx1ZWAgOnZhcjpgdGV4dGBcIGBgLmBgOnZhcjpgbmFt ZWAuICBOb3RlIHRoYXQgOnZhcjpgbmFtZWAgaXMgdHJlYXRlZCBhcwogICAgYSBsaXRlcmFs IHN0cmluZywgbm90IGEgcGF0dGVybi4gIEEgdHJhaWxpbmcgc3BhY2UgaW4gOnZhcjpgdmFs dWVgIGlzIG5vdAogICAgc3BlY2lhbCBpbiB0aGlzIGNhc2UuICBGb3IgZXhhbXBsZSwKICAg IAogICAgLi4gcGFyc2VkLWxpdGVyYWw6OgogICAgICAgOmNsYXNzOiBleGFtcGxlCiAgICAK CiAgICAgICAgYWxpYXMgLXMgcHM9J2d2IC0tJwogICAgCiAgICAKICAgIHdpbGwgY2F1c2Ug dGhlIGNvbW1hbmQgYGAqLnBzYGAgdG8gYmUgZXhwYW5kZWQgdG8gYGBndiAtLSAqLnBzYGAu ICBBcwogICAgYWxpYXMgZXhwYW5zaW9uIGlzIGNhcnJpZWQgb3V0IGVhcmxpZXIgdGhhbiBn bG9iYmluZywgdGhlIGBgKi5wc2BgIHdpbGwKICAgIHRoZW4gYmUgZXhwYW5kZWQuICBTdWZm aXggYWxpYXNlcyBjb25zdGl0dXRlIGEgZGlmZmVyZW50IG5hbWUgc3BhY2UgZnJvbQogICAg b3RoZXIgYWxpYXNlcyAoc28gaW4gdGhlIGFib3ZlIGV4YW1wbGUgaXQgaXMgc3RpbGwgcG9z c2libGUKICAgIHRvIGNyZWF0ZSBhbiBhbGlhcyBmb3IgdGhlIGNvbW1hbmQgYGBwc2BgKSBh bmQgdGhlIHR3byBzZXRzIGFyZSBuZXZlcgogICAgbGlzdGVkIHRvZ2V0aGVyLgogICAgCiAg ICBGb3IgZWFjaCA6dmFyOmBuYW1lYCB3aXRoIG5vIDp2YXI6YHZhbHVlYCwKICAgIHByaW50 IHRoZSB2YWx1ZSBvZiA6dmFyOmBuYW1lYCwgaWYgYW55LiAgV2l0aCBubyBhcmd1bWVudHMs IHByaW50IGFsbAogICAgY3VycmVudGx5IGRlZmluZWQgYWxpYXNlcyBvdGhlciB0aGFuIHN1 ZmZpeCBhbGlhc2VzLiAgSWYgdGhlIGBgLW1gYCBmbGFnCiAgICBpcyBnaXZlbiB0aGUgYXJn dW1lbnRzIGFyZSB0YWtlbiBhcyBwYXR0ZXJucyAodGhleSBzaG91bGQgYmUgcXVvdGVkIHRv CiAgICBwcmVzZXJ2ZSB0aGVtIGZyb20gYmVpbmcgaW50ZXJwcmV0ZWQgYXMgZ2xvYiBwYXR0 ZXJucyksIGFuZCB0aGUgYWxpYXNlcwogICAgbWF0Y2hpbmcgdGhlc2UgcGF0dGVybnMgYXJl IHByaW50ZWQuICBXaGVuIHByaW50aW5nIGFsaWFzZXMgYW5kIG9uZSBvZgogICAgdGhlIGBg LWdgYCwgYGAtcmBgIG9yIGBgLXNgYCBmbGFncyBpcyBwcmVzZW50LCByZXN0cmljdCB0aGUg cHJpbnRpbmcgdG8KICAgIGdsb2JhbCwgcmVndWxhciBvciBzdWZmaXggYWxpYXNlcywgcmVz cGVjdGl2ZWx5OyBhIHJlZ3VsYXIgYWxpYXMgaXMgb25lCiAgICB3aGljaCBpcyBuZWl0aGVy IGEgZ2xvYmFsIG5vciBhIHN1ZmZpeCBhbGlhcy4gICBVc2luZyBgYCtgYAogICAgaW5zdGVh ZCBvZiBgYC1gYCwgb3IgZW5kaW5nIHRoZSBvcHRpb24gbGlzdCB3aXRoIGEgc2luZ2xlCiAg ICBgYCtgYCwgcHJldmVudHMgdGhlIHZhbHVlcyBvZiB0aGUgYWxpYXNlcyBmcm9tIGJlaW5n IHByaW50ZWQuCiAgICAKICAgIElmIHRoZSBgYC1MYGAgZmxhZyBpcyBwcmVzZW50LCB0aGVu IHByaW50IGVhY2gKICAgIGFsaWFzIGluIGEgbWFubmVyIHN1aXRhYmxlIGZvciBwdXR0aW5n IGluIGEgc3RhcnR1cCBzY3JpcHQuICBUaGUgZXhpdAogICAgc3RhdHVzIGlzIG5vbnplcm8g aWYgYSA6dmFyOmBuYW1lYCAod2l0aCBubyA6dmFyOmB2YWx1ZWApIGlzIGdpdmVuIGZvcgog ICAgd2hpY2ggbm8gYWxpYXMgaGFzIGJlZW4gZGVmaW5lZC4KICAgIAogICAgRm9yIG1vcmUg b24gYWxpYXNlcywgaW5jbHVkaW5nIGNvbW1vbiBwcm9ibGVtcywKICAgIHNlZSA6cmVmOmBB bGlhc2luZ2AuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiBhdXRvbG9hZDsgRnVuY3Rpb24K Ci4uIGluZGV4Ojogc2luZ2xlOiBmdW5jdGlvbnMsIGF1dG9sb2FkaW5nOyBDb21tYW5kCgou LiBpbmRleDo6IHNpbmdsZTogYXV0b2xvYWRpbmcgZnVuY3Rpb25zOyBDb21tYW5kCgpgYGF1 dG9sb2FkYGAgWyB7YGArfC19UlRVWGRrbXJ0V3pgYCBdIFsgYGAtd2BgIF0gWyA6dmFyOmBu YW1lYCAuLi4gXQogICAgCiAgICAuLiBpbmRleDo6IHNpbmdsZTogZnBhdGgsIHNlYXJjaGlu ZzsgVmFyaWFibGUKICAgIAogICAgCiAgICBTZWUgOnJlZjpgQXV0b2xvYWRpbmcgRnVuY3Rp b25zYAogICAgZm9yIGZ1bGwgZGV0YWlscy4gIFRoZSBgYGZwYXRoYGAgcGFyYW1ldGVyCiAg ICB3aWxsIGJlIHNlYXJjaGVkIHRvIGZpbmQgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gd2hl biB0aGUgZnVuY3Rpb24gaXMKICAgIGZpcnN0IHJlZmVyZW5jZWQuCiAgICAKICAgIElmIDp2 YXI6YG5hbWVgIGNvbnNpc3RzIG9mIGFuIGFic29sdXRlIHBhdGgsIHRoZSBmdW5jdGlvbiBp cyBkZWZpbmVkIHRvCiAgICBsb2FkIGZyb20gdGhlIGZpbGUgZ2l2ZW4gKHNlYXJjaGluZyBh cyB1c3VhbCBmb3IgZHVtcCBmaWxlcyBpbiB0aGUgZ2l2ZW4KICAgIGxvY2F0aW9uKS4gIFRo ZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiBpcyB0aGUgYmFzZW5hbWUgKG5vbi1kaXJlY3RvcnkK ICAgIHBhcnQpIG9mIHRoZSBmaWxlLiAgSXQgaXMgbm9ybWFsbHkgYW4gZXJyb3IgaWYgdGhl IGZ1bmN0aW9uIGlzIG5vdCBmb3VuZAogICAgaW4gdGhlIGdpdmVuIGxvY2F0aW9uOyBob3dl dmVyLCBpZiB0aGUgb3B0aW9uIGBgLWRgYCBpcyBnaXZlbiwgc2VhcmNoaW5nCiAgICBmb3Ig dGhlIGZ1bmN0aW9uIGRlZmF1bHRzIHRvIGBgJGZwYXRoYGAuICBJZiBhIGZ1bmN0aW9uIGlz IGxvYWRlZCBieQogICAgYWJzb2x1dGUgcGF0aCwgYW55IGZ1bmN0aW9ucyBsb2FkZWQgZnJv bSBpdCB0aGF0IGFyZSBtYXJrZWQgZm9yCiAgICBgYGF1dG9sb2FkYGAgd2l0aG91dCBhbiBh YnNvbHV0ZSBwYXRoIGhhdmUgdGhlIGxvYWQgcGF0aCBvZiB0aGUgcGFyZW50CiAgICBmdW5j dGlvbiB0ZW1wb3JhcmlseSBwcmVwZW5kZWQgdG8gYGAkZnBhdGhgYC4KICAgIAogICAgSWYg dGhlIG9wdGlvbiBgYC1yYGAgb3IgYGAtUmBgIGlzIGdpdmVuLCB0aGUgZnVuY3Rpb24gaXMg c2VhcmNoZWQgZm9yCiAgICBpbW1lZGlhdGVseSBhbmQgdGhlIGxvY2F0aW9uIGlzIHJlY29y ZGVkIGludGVybmFsbHkgZm9yIHVzZSB3aGVuIHRoZQogICAgZnVuY3Rpb24gaXMgZXhlY3V0 ZWQ7IGEgcmVsYXRpdmUgcGF0aCBpcyBleHBhbmRlZCB1c2luZyB0aGUgdmFsdWUgb2YKICAg IGBgJFBXRGBgLiAgVGhpcyBwcm90ZWN0cyBhZ2FpbnN0IGEgY2hhbmdlIHRvIGBgJGZwYXRo YGAgYWZ0ZXIgdGhlIGNhbGwKICAgIHRvIGBgYXV0b2xvYWRgYC4gIFdpdGggYGAtcmBgLCBp ZiB0aGUgZnVuY3Rpb24gaXMgbm90IGZvdW5kLCBpdCBpcwogICAgc2lsZW50bHkgbGVmdCB1 bnJlc29sdmVkIHVudGlsIGV4ZWN1dGlvbjsgd2l0aCBgYC1SYGAsIGFuIGVycm9yIG1lc3Nh Z2UKICAgIGlzIHByaW50ZWQgYW5kIGNvbW1hbmQgcHJvY2Vzc2luZyBhYm9ydGVkIGltbWVk aWF0ZWx5IHRoZSBzZWFyY2ggZmFpbHMsCiAgICBpLmUuIGF0IHRoZSBgYGF1dG9sb2FkYGAg Y29tbWFuZCByYXRoZXIgdGhhbiBhdCBmdW5jdGlvbiBleGVjdXRpb24uLgogICAgCiAgICBU aGUgZmxhZyBgYC1YYGAgbWF5IGJlIHVzZWQgb25seSBpbnNpZGUgYSBzaGVsbCBmdW5jdGlv bi4gIEl0IGNhdXNlcyB0aGUKICAgIGNhbGxpbmcgZnVuY3Rpb24gdG8gYmUgbWFya2VkIGZv ciBhdXRvbG9hZGluZyBhbmQgdGhlbiBpbW1lZGlhdGVseQogICAgbG9hZGVkIGFuZCBleGVj dXRlZCwgd2l0aCB0aGUgY3VycmVudCBhcnJheSBvZiBwb3NpdGlvbmFsIHBhcmFtZXRlcnMg YXMKICAgIGFyZ3VtZW50cy4gIFRoaXMgcmVwbGFjZXMgdGhlIHByZXZpb3VzIGRlZmluaXRp b24gb2YgdGhlIGZ1bmN0aW9uLiAgSWYKICAgIG5vIGZ1bmN0aW9uIGRlZmluaXRpb24gaXMg Zm91bmQsIGFuIGVycm9yIGlzIHByaW50ZWQgYW5kIHRoZSBmdW5jdGlvbgogICAgcmVtYWlu cyB1bmRlZmluZWQgYW5kIG1hcmtlZCBmb3IgYXV0b2xvYWRpbmcuICBJZiBhbiBhcmd1bWVu dCBpcyBnaXZlbiwKICAgIGl0IGlzIHVzZWQgYXMgYSBkaXJlY3RvcnkgKGkuZS4gaXQgZG9l cyBub3QgaW5jbHVkZSB0aGUgbmFtZSBvZiB0aGUKICAgIGZ1bmN0aW9uKSBpbiB3aGljaCB0 aGUgZnVuY3Rpb24gaXMgdG8gYmUgZm91bmQ7IHRoaXMgbWF5IGJlIGNvbWJpbmVkCiAgICB3 aXRoIHRoZSBgYC1kYGAgb3B0aW9uIHRvIGFsbG93IHRoZSBmdW5jdGlvbiBzZWFyY2ggdG8g ZGVmYXVsdCB0byBgYCRmcGF0aGBgCiAgICBpZiBpdCBpcyBub3QgaW4gdGhlIGdpdmVuIGxv Y2F0aW9uLgogICAgCiAgICBUaGUgZmxhZyBgYCtYYGAgYXR0ZW1wdHMgdG8gbG9hZCBlYWNo IDp2YXI6YG5hbWVgIGFzIGFuIGF1dG9sb2FkZWQgZnVuY3Rpb24sCiAgICBidXQgZG9lcyA6 ZW1waGFzaXM6YG5vdGAgZXhlY3V0ZSBpdC4gIFRoZSBleGl0IHN0YXR1cyBpcyB6ZXJvIChz dWNjZXNzKSBpZiB0aGUKICAgIGZ1bmN0aW9uIHdhcyBub3QgcHJldmlvdXNseSBkZWZpbmVk IDplbXBoYXNpczpgYW5kYCBhIGRlZmluaXRpb24gZm9yIGl0IHdhcyBmb3VuZC4KICAgIFRo aXMgZG9lcyA6ZW1waGFzaXM6YG5vdGAgcmVwbGFjZSBhbnkgZXhpc3RpbmcgZGVmaW5pdGlv biBvZiB0aGUgZnVuY3Rpb24uICBUaGUKICAgIGV4aXQgc3RhdHVzIGlzIG5vbnplcm8gKGZh aWx1cmUpIGlmIHRoZSBmdW5jdGlvbiB3YXMgYWxyZWFkeSBkZWZpbmVkIG9yCiAgICB3aGVu IG5vIGRlZmluaXRpb24gd2FzIGZvdW5kLiAgSW4gdGhlIGxhdHRlciBjYXNlIHRoZSBmdW5j dGlvbiByZW1haW5zCiAgICB1bmRlZmluZWQgYW5kIG1hcmtlZCBmb3IgYXV0b2xvYWRpbmcu ICBJZiBrc2gtc3R5bGUgYXV0b2xvYWRpbmcgaXMKICAgIGVuYWJsZWQsIHRoZSBmdW5jdGlv biBjcmVhdGVkIHdpbGwgY29udGFpbiB0aGUgY29udGVudHMgb2YgdGhlIGZpbGUKICAgIHBs dXMgYSBjYWxsIHRvIHRoZSBmdW5jdGlvbiBpdHNlbGYgYXBwZW5kZWQgdG8gaXQsIHRodXMg Z2l2aW5nIG5vcm1hbAogICAga3NoIGF1dG9sb2FkaW5nIGJlaGF2aW91ciBvbiB0aGUgZmly c3QgY2FsbCB0byB0aGUgZnVuY3Rpb24uCiAgICBJZiB0aGUgYGAtbWBgIGZsYWcgaXMgYWxz byBnaXZlbiBlYWNoIDp2YXI6YG5hbWVgIGlzIHRyZWF0ZWQgYXMgYQogICAgcGF0dGVybiBh bmQgYWxsIGZ1bmN0aW9ucyBhbHJlYWR5IG1hcmtlZCBmb3IgYXV0b2xvYWQgdGhhdCBtYXRj aCB0aGUKICAgIHBhdHRlcm4gYXJlIGxvYWRlZC4KICAgIAogICAgV2l0aCB0aGUgYGAtdGBg IGZsYWcsIHR1cm4gb24gZXhlY3V0aW9uIHRyYWNpbmc7IHdpdGggYGAtVGBgLCB0dXJuIG9u CiAgICBleGVjdXRpb24gdHJhY2luZyBvbmx5IGZvciB0aGUgY3VycmVudCBmdW5jdGlvbiwg dHVybmluZyBpdCBvZmYgb24gZW50cnkKICAgIHRvIGFueSBjYWxsZWQgZnVuY3Rpb25zIHRo YXQgZG8gbm90IGFsc28gaGF2ZSB0cmFjaW5nIGVuYWJsZWQuCiAgICAKICAgIFdpdGggdGhl IGBgLVVgYCBmbGFnLCBhbGlhcyBleHBhbnNpb24gaXMgc3VwcHJlc3NlZCB3aGVuIHRoZSBm dW5jdGlvbiBpcwogICAgbG9hZGVkLgogICAgCiAgICBXaXRoIHRoZSBgYC13YGAgZmxhZywg dGhlIDp2YXI6YG5hbWVgXHMgYXJlIHRha2VuIGFzIG5hbWVzIG9mIGZpbGVzIGNvbXBpbGVk CiAgICB3aXRoIHRoZSBgYHpjb21waWxlYGAgYnVpbHRpbiwgYW5kIGFsbCBmdW5jdGlvbnMg ZGVmaW5lZCBpbiB0aGVtIGFyZQogICAgbWFya2VkIGZvciBhdXRvbG9hZGluZy4KICAgIAog ICAgVGhlIGZsYWdzIGBgLXpgYCBhbmQgYGAta2BgIG1hcmsgdGhlIGZ1bmN0aW9uIHRvIGJl IGF1dG9sb2FkZWQgdXNpbmcgdGhlCiAgICB6c2ggb3Iga3NoIHN0eWxlLCBhcyBpZiB0aGUg b3B0aW9uIGBgS1NIX0FVVE9MT0FEYGAgd2VyZSB1bnNldCBvciB3ZXJlCiAgICBzZXQsIHJl c3BlY3RpdmVseS4gIFRoZSBmbGFncyBvdmVycmlkZSB0aGUgc2V0dGluZyBvZiB0aGUgb3B0 aW9uIGF0IHRoZQogICAgdGltZSB0aGUgZnVuY3Rpb24gaXMgbG9hZGVkLgogICAgCiAgICBO b3RlIHRoYXQgdGhlIGBgYXV0b2xvYWRgYCBjb21tYW5kIG1ha2VzIG5vIGF0dGVtcHQgdG8g ZW5zdXJlIHRoZQogICAgc2hlbGwgb3B0aW9ucyBzZXQgZHVyaW5nIHRoZSBsb2FkaW5nIG9y IGV4ZWN1dGlvbiBvZiB0aGUgZmlsZSBoYXZlCiAgICBhbnkgcGFydGljdWxhciB2YWx1ZS4g IEZvciB0aGlzLCB0aGUgYGBlbXVsYXRlYGAgY29tbWFuZCBjYW4gYmUgdXNlZDoKICAgIAog ICAgLi4gcGFyc2VkLWxpdGVyYWw6OgogICAgICAgOmNsYXNzOiBleGFtcGxlCiAgICAKCiAg ICAgICAgZW11bGF0ZSB6c2ggLWMgJ2F1dG9sb2FkIC1VeiA6dmFyOmBmdW5jYCcKICAgIAog ICAgCiAgICBhcnJhbmdlcyB0aGF0IHdoZW4gOnZhcjpgZnVuY2AgaXMgbG9hZGVkIHRoZSBz aGVsbCBpcyBpbiBuYXRpdmUgYGB6c2hgYAogICAgZW11bGF0aW9uLCBhbmQgdGhpcyBlbXVs YXRpb24gaXMgYWxzbyBhcHBsaWVkIHdoZW4gOnZhcjpgZnVuY2AgaXMgcnVuLgogICAgCiAg ICBTb21lIG9mIHRoZSBmdW5jdGlvbnMgb2YgYGBhdXRvbG9hZGBgIGFyZSBhbHNvIHByb3Zp ZGVkIGJ5IGBgZnVuY3Rpb25zCiAgICAtdSBgYG9yYGAgZnVuY3Rpb25zIC1VYGAsIGJ1dGBg IGF1dG9sb2FkYGAgaXMgYSBtb3JlIGNvbXByZWhlbnNpdmUKICAgIGludGVyZmFjZS4KICAg IAoKLi4gaW5kZXg6OiBzaW5nbGU6IGJnOyBGdW5jdGlvbgoKLi4gaW5kZXg6OiBzaW5nbGU6 IGpvYnMsIGJhY2tncm91bmRpbmc7IENvbW1hbmQKCmBgYmdgYCBbIDp2YXI6YGpvYmAgLi4u IF0KCjp2YXI6YGpvYmAgLi4uIGBgJmBgCiAgICAKICAgIFB1dCBlYWNoIHNwZWNpZmllZCA6 dmFyOmBqb2JgIGluIHRoZSBiYWNrZ3JvdW5kLAogICAgb3IgdGhlIGN1cnJlbnQgam9iIGlm IG5vbmUgaXMgc3BlY2lmaWVkLgogICAgCgpgYGJpbmRrZXlgYAogICAgCiAgICBTZWUgOnJl ZjpgWmxlIEJ1aWx0aW5zYC4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6IGJyZWFrOyBGdW5j dGlvbgoKLi4gaW5kZXg6OiBzaW5nbGU6IGV4aXRpbmcgbG9vcHM7IENvbW1hbmQKCi4uIGlu ZGV4Ojogc2luZ2xlOiBsb29wcywgZXhpdGluZzsgQ29tbWFuZAoKYGBicmVha2BgIFsgOnZh cjpgbmAgXQogICAgCiAgICBFeGl0IGZyb20gYW4gZW5jbG9zaW5nIGBgZm9yYGAsIGBgd2hp bGVgYCwKICAgIGBgdW50aWxgYCwgYGBzZWxlY3RgYCBvciBgYHJlcGVhdGBgIGxvb3AuIElm IGFuIGFyaXRobWV0aWMgZXhwcmVzc2lvbiA6dmFyOmBuYAogICAgaXMgc3BlY2lmaWVkLCB0 aGVuIGJyZWFrIDp2YXI6YG5gIGxldmVscyBpbnN0ZWFkIG9mIGp1c3Qgb25lLgogICAgCgou LiBpbmRleDo6IHNpbmdsZTogYnVpbHRpbjsgRnVuY3Rpb24KCmBgYnVpbHRpbmBgIDp2YXI6 YG5hbWVgIFsgOnZhcjpgYXJnc2AgLi4uIF0KICAgIAogICAgRXhlY3V0ZXMgdGhlIGJ1aWx0 aW4gOnZhcjpgbmFtZWAsIHdpdGggdGhlIGdpdmVuIDp2YXI6YGFyZ3NgLgogICAgCgouLiBp bmRleDo6IHNpbmdsZTogYnllOyBGdW5jdGlvbgoKYGBieWVgYAogICAgCiAgICBTYW1lIGFz IGBgZXhpdGBgLgogICAgCgpgYGNhcGBgCiAgICAKICAgIFNlZSA6cmVmOmBUaGUgenNoL2Nh cCBNb2R1bGVgLgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogY2Q7IEZ1bmN0aW9uCgouLiBp bmRleDo6IHNpbmdsZTogZGlyZWN0b3JpZXMsIGNoYW5naW5nOyBDb21tYW5kCgpgYGNkYGAg WyBgYC1xc0xQYGAgXSBbIDp2YXI6YGFyZ2AgXQoKYGBjZGBgIFsgYGAtcXNMUGBgIF0gOnZh cjpgb2xkYCA6dmFyOmBuZXdgCgpgYGNkYGAgWyBgYC1xc0xQYGAgXSB7YGArfC1gYH06dmFy OmBuYAogICAgCiAgICBDaGFuZ2UgdGhlIGN1cnJlbnQgZGlyZWN0b3J5LiAgSW4gdGhlIGZp cnN0IGZvcm0sIGNoYW5nZSB0aGUKICAgIGN1cnJlbnQgZGlyZWN0b3J5IHRvIDp2YXI6YGFy Z2AsIG9yIHRvIHRoZSB2YWx1ZSBvZiBgYCRIT01FYGAgaWYKICAgIDp2YXI6YGFyZ2AgaXMg bm90IHNwZWNpZmllZC4gIElmIDp2YXI6YGFyZ2AgaXMgYGAtYGAsIGNoYW5nZSB0byB0aGUK ICAgIHByZXZpb3VzIGRpcmVjdG9yeS4KICAgIAogICAgT3RoZXJ3aXNlLCBpZiA6dmFyOmBh cmdgIGJlZ2lucyB3aXRoIGEgc2xhc2gsIGF0dGVtcHQgdG8gY2hhbmdlIHRvIHRoZQogICAg ZGlyZWN0b3J5IGdpdmVuIGJ5IDp2YXI6YGFyZ2AuCiAgICAKICAgIElmIDp2YXI6YGFyZ2Ag ZG9lcyBub3QgYmVnaW4gd2l0aCBhIHNsYXNoLCB0aGUgYmVoYXZpb3VyIGRlcGVuZHMgb24g d2hldGhlcgogICAgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGBgLmBgIG9jY3VycyBpbiB0aGUg bGlzdCBvZiBkaXJlY3RvcmllcyBjb250YWluZWQKICAgIGluIHRoZSBzaGVsbCBwYXJhbWV0 ZXIgYGBjZHBhdGhgYC4gIElmIGl0IGRvZXMgbm90LCBmaXJzdCBhdHRlbXB0IHRvIGNoYW5n ZQogICAgdG8gdGhlIGRpcmVjdG9yeSA6dmFyOmBhcmdgIHVuZGVyIHRoZSBjdXJyZW50IGRp cmVjdG9yeSwgYW5kIGlmIHRoYXQgZmFpbHMKICAgIGJ1dCBgYGNkcGF0aGBgIGlzIHNldCBh bmQgY29udGFpbnMgYXQgbGVhc3Qgb25lIGVsZW1lbnQgYXR0ZW1wdCB0byBjaGFuZ2UKICAg IHRvIHRoZSBkaXJlY3RvcnkgOnZhcjpgYXJnYCB1bmRlciBlYWNoIGNvbXBvbmVudCBvZiBg YGNkcGF0aGBgIGluIHR1cm4gdW50aWwKICAgIHN1Y2Nlc3NmdWwuICBJZiBgYC5gYCBvY2N1 cnMgaW4gYGBjZHBhdGhgYCwgdGhlbiBgYGNkcGF0aGBgIGlzIHNlYXJjaGVkCiAgICBzdHJp Y3RseSBpbiBvcmRlciBzbyB0aGF0IGBgLmBgIGlzIG9ubHkgdHJpZWQgYXQgdGhlIGFwcHJv cHJpYXRlIHBvaW50LgogICAgCiAgICBUaGUgb3JkZXIgb2YgdGVzdGluZyBgYGNkcGF0aGBg IGlzIG1vZGlmaWVkIGlmIHRoZSBvcHRpb24gYGBQT1NJWF9DRGBgCiAgICBpcyBzZXQsIGFz IGRlc2NyaWJlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIG9wdGlvbi4KICAgIAog ICAgSWYgbm8gZGlyZWN0b3J5IGlzIGZvdW5kLCB0aGUgb3B0aW9uIGBgQ0RBQkxFX1ZBUlNg YCBpcyBzZXQsIGFuZCBhCiAgICBwYXJhbWV0ZXIgbmFtZWQgOnZhcjpgYXJnYCBleGlzdHMg d2hvc2UgdmFsdWUgYmVnaW5zIHdpdGggYSBzbGFzaCwgdHJlYXQgaXRzCiAgICB2YWx1ZSBh cyB0aGUgZGlyZWN0b3J5LiAgSW4gdGhhdCBjYXNlLCB0aGUgcGFyYW1ldGVyIGlzIGFkZGVk IHRvIHRoZSBuYW1lZAogICAgZGlyZWN0b3J5IGhhc2ggdGFibGUuCiAgICAKICAgIFRoZSBz ZWNvbmQgZm9ybSBvZiBgYGNkYGAgc3Vic3RpdHV0ZXMgdGhlIHN0cmluZyA6dmFyOmBuZXdg CiAgICBmb3IgdGhlIHN0cmluZyA6dmFyOmBvbGRgIGluIHRoZSBuYW1lIG9mIHRoZSBjdXJy ZW50IGRpcmVjdG9yeSwKICAgIGFuZCB0cmllcyB0byBjaGFuZ2UgdG8gdGhpcyBuZXcgZGly ZWN0b3J5LgogICAgCiAgICBUaGUgdGhpcmQgZm9ybSBvZiBgYGNkYGAgZXh0cmFjdHMgYW4g ZW50cnkgZnJvbSB0aGUgZGlyZWN0b3J5CiAgICBzdGFjaywgYW5kIGNoYW5nZXMgdG8gdGhh dCBkaXJlY3RvcnkuICBBbiBhcmd1bWVudCBvZiB0aGUgZm9ybQogICAgYGArYGA6dmFyOmBu YCBpZGVudGlmaWVzIGEgc3RhY2sgZW50cnkgYnkgY291bnRpbmcgZnJvbSB0aGUgbGVmdAog ICAgb2YgdGhlIGxpc3Qgc2hvd24gYnkgdGhlIGBgZGlyc2BgIGNvbW1hbmQsIHN0YXJ0aW5n IHdpdGggemVyby4KICAgIEFuIGFyZ3VtZW50IG9mIHRoZSBmb3JtIGBgLWBgOnZhcjpgbmAg Y291bnRzIGZyb20gdGhlIHJpZ2h0LgogICAgSWYgdGhlIGBgUFVTSERfTUlOVVNgYCBvcHRp b24gaXMgc2V0LCB0aGUgbWVhbmluZ3Mgb2YgYGArYGAKICAgIGFuZCBgYC1gYCBpbiB0aGlz IGNvbnRleHQgYXJlIHN3YXBwZWQuCiAgICBJZiB0aGUgYGBQT1NJWF9DRGBgIG9wdGlvbiBp cyBzZXQsIHRoaXMgZm9ybSBvZiBgYGNkYGAgaXMgbm90IHJlY29nbmlzZWQKICAgIGFuZCB3 aWxsIGJlIGludGVycHJldGVkIGFzIHRoZSBmaXJzdCBmb3JtLgogICAgCiAgICBJZiB0aGUg YGAtcWBgIChxdWlldCkgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlIGhvb2sgZnVuY3Rpb24g YGBjaHB3ZGBgCiAgICBhbmQgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgYXJyYXkgYGBjaHB3ZF9m dW5jdGlvbnNgYCBhcmUgbm90IGNhbGxlZC4KICAgIFRoaXMgaXMgdXNlZnVsIGZvciBjYWxs cyB0byBgYGNkYGAgdGhhdCBkbyBub3QgY2hhbmdlIHRoZSBlbnZpcm9ubWVudAogICAgc2Vl biBieSBhbiBpbnRlcmFjdGl2ZSB1c2VyLgogICAgCiAgICBJZiB0aGUgYGAtc2BgIG9wdGlv biBpcyBzcGVjaWZpZWQsIGBgY2RgYCByZWZ1c2VzIHRvIGNoYW5nZSB0aGUgY3VycmVudAog ICAgZGlyZWN0b3J5IGlmIHRoZSBnaXZlbiBwYXRobmFtZSBjb250YWlucyBzeW1saW5rcy4g IElmIHRoZSBgYC1QYGAgb3B0aW9uCiAgICBpcyBnaXZlbiBvciB0aGUgYGBDSEFTRV9MSU5L U2BgIG9wdGlvbiBpcyBzZXQsIHN5bWJvbGljIGxpbmtzIGFyZSByZXNvbHZlZAogICAgdG8g dGhlaXIgdHJ1ZSB2YWx1ZXMuICBJZiB0aGUgYGAtTGBgIG9wdGlvbiBpcyBnaXZlbiBzeW1i b2xpYyBsaW5rcyBhcmUKICAgIHJldGFpbmVkIGluIHRoZSBkaXJlY3RvcnkgKGFuZCBub3Qg cmVzb2x2ZWQpIHJlZ2FyZGxlc3Mgb2YgdGhlIHN0YXRlIG9mCiAgICB0aGUgYGBDSEFTRV9M SU5LU2BgIG9wdGlvbi4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6IGNoZGlyOyBGdW5jdGlv bgoKYGBjaGRpcmBgCiAgICAKICAgIFNhbWUgYXMgYGBjZGBgLgogICAgCgpgYGNsb25lYGAK ICAgIAogICAgU2VlIDpyZWY6YFRoZSB6c2gvY2xvbmUgTW9kdWxlYC4KICAgIAoKLi4gaW5k ZXg6OiBzaW5nbGU6IGNvbW1hbmQ7IEZ1bmN0aW9uCgpgYGNvbW1hbmRgYCBbIGBgLXB2VmBg IF0gOnZhcjpgc2ltcGxlIGNvbW1hbmRgCiAgICAKICAgIFRoZSBzaW1wbGUgY29tbWFuZCBh cmd1bWVudCBpcyB0YWtlbiBhcyBhbiBleHRlcm5hbCBjb21tYW5kIGluc3RlYWQgb2YKICAg IGEgZnVuY3Rpb24gb3IgYnVpbHRpbiBhbmQgaXMgZXhlY3V0ZWQuIElmIHRoZSBgYFBPU0lY X0JVSUxUSU5TYGAgb3B0aW9uCiAgICBpcyBzZXQsIGJ1aWx0aW5zIHdpbGwgYWxzbyBiZSBl eGVjdXRlZCBidXQgY2VydGFpbiBzcGVjaWFsIHByb3BlcnRpZXMKICAgIG9mIHRoZW0gYXJl IHN1cHByZXNzZWQuIFRoZSBgYC1wYGAgZmxhZyBjYXVzZXMgYSBkZWZhdWx0IHBhdGggdG8g YmUKICAgIHNlYXJjaGVkIGluc3RlYWQgb2YgdGhhdCBpbiBgYCRwYXRoYGAuIFdpdGggdGhl IGBgLXZgYCBmbGFnLCBgYGNvbW1hbmRgYAogICAgaXMgc2ltaWxhciB0byBgYHdoZW5jZWBg IGFuZCB3aXRoIGBgLVZgYCwgaXQgaXMgZXF1aXZhbGVudCB0byBgYHdoZW5jZQogICAgLXZg YC4KICAgIAogICAgU2VlIGFsc28gOnJlZjpgUHJlY29tbWFuZCBNb2RpZmllcnNgLgogICAg CgpgYGNvbXBhcmd1bWVudHNgYAogICAgCiAgICBTZWUgOnJlZjpgVGhlIHpzaC9jb21wdXRp bCBNb2R1bGVgLgogICAgCgpgYGNvbXBjYWxsYGAKICAgIAogICAgU2VlIDpyZWY6YFRoZSB6 c2gvY29tcGN0bCBNb2R1bGVgLgogICAgCgpgYGNvbXBjdGxgYAogICAgCiAgICBTZWUgOnJl ZjpgVGhlIHpzaC9jb21wY3RsIE1vZHVsZWAuCiAgICAKCmBgY29tcGRlc2NyaWJlYGAKICAg IAogICAgU2VlIDpyZWY6YFRoZSB6c2gvY29tcHV0aWwgTW9kdWxlYC4KICAgIAoKYGBjb21w ZmlsZXNgYAogICAgCiAgICBTZWUgOnJlZjpgVGhlIHpzaC9jb21wdXRpbCBNb2R1bGVgLgog ICAgCgpgYGNvbXBncm91cHNgYAogICAgCiAgICBTZWUgOnJlZjpgVGhlIHpzaC9jb21wdXRp bCBNb2R1bGVgLgogICAgCgpgYGNvbXBxdW90ZWBgCiAgICAKICAgIFNlZSA6cmVmOmBUaGUg enNoL2NvbXB1dGlsIE1vZHVsZWAuCiAgICAKCmBgY29tcHRhZ3NgYAogICAgCiAgICBTZWUg OnJlZjpgVGhlIHpzaC9jb21wdXRpbCBNb2R1bGVgLgogICAgCgpgYGNvbXB0cnlgYAogICAg CiAgICBTZWUgOnJlZjpgVGhlIHpzaC9jb21wdXRpbCBNb2R1bGVgLgogICAgCgpgYGNvbXB2 YWx1ZXNgYAogICAgCiAgICBTZWUgOnJlZjpgVGhlIHpzaC9jb21wdXRpbCBNb2R1bGVgLgog ICAgCgouLiBpbmRleDo6IHNpbmdsZTogY29udGludWU7IEZ1bmN0aW9uCgouLiBpbmRleDo6 IHNpbmdsZTogbG9vcHMsIGNvbnRpbnVpbmc7IENvbW1hbmQKCi4uIGluZGV4Ojogc2luZ2xl OiBjb250aW51aW5nIGxvb3BzOyBDb21tYW5kCgpgYGNvbnRpbnVlYGAgWyA6dmFyOmBuYCBd CiAgICAKICAgIFJlc3VtZSB0aGUgbmV4dCBpdGVyYXRpb24gb2YgdGhlIGVuY2xvc2luZwog ICAgYGBmb3JgYCwgYGB3aGlsZWBgLCBgYHVudGlsYGAsIGBgc2VsZWN0YGAgb3IKICAgIGBg cmVwZWF0YGAgbG9vcC4gSWYgYW4gYXJpdGhtZXRpYyBleHByZXNzaW9uIDp2YXI6YG5gIGlz IHNwZWNpZmllZCwgYnJlYWsgb3V0IG9mCiAgICA6dmFyOmBuYC0xIGxvb3BzIGFuZCByZXN1 bWUgYXQgdGhlIDp2YXI6YG5gXHRoIGVuY2xvc2luZyBsb29wLgogICAgCgouLiBpbmRleDo6 IHNpbmdsZTogZGVjbGFyZTsgRnVuY3Rpb24KCmBgZGVjbGFyZWBgCiAgICAKICAgIFNhbWUg YXMgYGB0eXBlc2V0YGAuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiBkaXJzOyBGdW5jdGlv bgoKLi4gaW5kZXg6OiBzaW5nbGU6IGRpcmVjdG9yeSBzdGFjaywgcHJpbnRpbmc7IENvbW1h bmQKCmBgZGlyc2BgIFsgYGAtY2BgIF0gWyA6dmFyOmBhcmdgIC4uLiBdCgpgYGRpcnNgYCBb IGBgLWxwdmBgIF0KICAgIAogICAgV2l0aCBubyBhcmd1bWVudHMsIHByaW50IHRoZSBjb250 ZW50cyBvZiB0aGUgZGlyZWN0b3J5IHN0YWNrLgogICAgRGlyZWN0b3JpZXMgYXJlIGFkZGVk IHRvIHRoaXMgc3RhY2sgd2l0aCB0aGUgYGBwdXNoZGBgIGNvbW1hbmQsCiAgICBhbmQgcmVt b3ZlZCB3aXRoIHRoZSBgYGNkYGAgb3IgYGBwb3BkYGAgY29tbWFuZHMuCiAgICBJZiBhcmd1 bWVudHMgYXJlIHNwZWNpZmllZCwgbG9hZCB0aGVtIG9udG8gdGhlIGRpcmVjdG9yeSBzdGFj aywKICAgIHJlcGxhY2luZyBhbnl0aGluZyB0aGF0IHdhcyB0aGVyZSwgYW5kIHB1c2ggdGhl IGN1cnJlbnQgZGlyZWN0b3J5CiAgICBvbnRvIHRoZSBzdGFjay4KICAgIAogICAgCiAgICBg YC1jYGAKICAgICAgICAKICAgICAgICBjbGVhciB0aGUgZGlyZWN0b3J5IHN0YWNrLgogICAg ICAgIAogICAgCiAgICBgYC1sYGAKICAgICAgICAKICAgICAgICBwcmludCBkaXJlY3Rvcnkg bmFtZXMgaW4gZnVsbCBpbnN0ZWFkIG9mIHVzaW5nIGBgfmBgIGV4cHJlc3Npb25zCiAgICAg ICAgKHNlZSA6cmVmOmBGaWxlbmFtZSBFeHBhbnNpb25gKS4KICAgICAgICAKICAgIAogICAg YGAtcGBgCiAgICAgICAgCiAgICAgICAgcHJpbnQgZGlyZWN0b3J5IGVudHJpZXMgb25lIHBl ciBsaW5lLgogICAgICAgIAogICAgCiAgICBgYC12YGAKICAgICAgICAKICAgICAgICBudW1i ZXIgdGhlIGRpcmVjdG9yaWVzIGluIHRoZSBzdGFjayB3aGVuIHByaW50aW5nLgogICAgICAg IAogICAgCiAgICAKICAgIAogICAgCgouLiBpbmRleDo6IHNpbmdsZTogZGlzYWJsZTsgRnVu Y3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiBkaXNhYmxpbmcgY29tbWFuZHM7IENvbW1hbmQK Ci4uIGluZGV4Ojogc2luZ2xlOiBjb21tYW5kcywgZGlzYWJsaW5nOyBDb21tYW5kCgpgYGRp c2FibGVgYCBbIGBgLWFmbXByc2BgIF0gOnZhcjpgbmFtZWAgLi4uCiAgICAKICAgIFRlbXBv cmFyaWx5IGRpc2FibGUgdGhlIDp2YXI6YG5hbWVgXGQgaGFzaCB0YWJsZSBlbGVtZW50cyBv ciBwYXR0ZXJucy4gIFRoZSBkZWZhdWx0CiAgICBpcyB0byBkaXNhYmxlIGJ1aWx0aW4gY29t bWFuZHMuICBUaGlzIGFsbG93cyB5b3UgdG8gdXNlIGFuIGV4dGVybmFsCiAgICBjb21tYW5k IHdpdGggdGhlIHNhbWUgbmFtZSBhcyBhIGJ1aWx0aW4gY29tbWFuZC4gIFRoZSBgYC1hYGAg b3B0aW9uCiAgICBjYXVzZXMgYGBkaXNhYmxlYGAgdG8gYWN0IG9uIHJlZ3VsYXIgb3IgZ2xv YmFsIGFsaWFzZXMuICBUaGUgYGAtc2BgCiAgICBvcHRpb24gY2F1c2VzIGBgZGlzYWJsZWBg IHRvIGFjdCBvbiBzdWZmaXggYWxpYXNlcy4gIFRoZSBgYC1mYGAgb3B0aW9uIGNhdXNlcwog ICAgYGBkaXNhYmxlYGAgdG8gYWN0IG9uIHNoZWxsIGZ1bmN0aW9ucy4gIFRoZSBgYC1yYGAg b3B0aW9ucyBjYXVzZXMKICAgIGBgZGlzYWJsZWBgIHRvIGFjdCBvbiByZXNlcnZlZCB3b3Jk cy4gIFdpdGhvdXQgYXJndW1lbnRzIGFsbCBkaXNhYmxlZAogICAgaGFzaCB0YWJsZSBlbGVt ZW50cyBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGhhc2ggdGFibGUgYXJlIHByaW50ZWQuCiAg ICBXaXRoIHRoZSBgYC1tYGAgZmxhZyB0aGUgYXJndW1lbnRzIGFyZSB0YWtlbiBhcyBwYXR0 ZXJucyAod2hpY2ggc2hvdWxkIGJlCiAgICBxdW90ZWQgdG8gcHJldmVudCB0aGVtIGZyb20g dW5kZXJnb2luZyBmaWxlbmFtZSBleHBhbnNpb24pLCBhbmQgYWxsIGhhc2gKICAgIHRhYmxl IGVsZW1lbnRzIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgaGFzaCB0YWJsZSBtYXRjaGluZyB0 aGVzZSBwYXR0ZXJucwogICAgYXJlIGRpc2FibGVkLiAgRGlzYWJsZWQgb2JqZWN0cyBjYW4g YmUgZW5hYmxlZCB3aXRoIHRoZSBgYGVuYWJsZWBgCiAgICBjb21tYW5kLgogICAgCiAgICBX aXRoIHRoZSBvcHRpb24gYGAtcGBgLCA6dmFyOmBuYW1lYCAuLi4gcmVmZXIgdG8gZWxlbWVu dHMgb2YgdGhlCiAgICBzaGVsbCdzIHBhdHRlcm4gc3ludGF4IGFzIGRlc2NyaWJlZCBpbiA6 cmVmOmBGaWxlbmFtZSBHZW5lcmF0aW9uYC4KICAgIENlcnRhaW4gZWxlbWVudHMgY2FuIGJl IGRpc2FibGVkIHNlcGFyYXRlbHksIGFzIGdpdmVuIGJlbG93LgogICAgCiAgICBOb3RlIHRo YXQgcGF0dGVybnMKICAgIG5vdCBhbGxvd2VkIGJ5IHRoZSBjdXJyZW50IHNldHRpbmdzIGZv ciB0aGUgb3B0aW9ucyBgYEVYVEVOREVEX0dMT0JgYCwKICAgIGBgS1NIX0dMT0JgYCBhbmQg YGBTSF9HTE9CYGAgYXJlIG5ldmVyIGVuYWJsZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlCiAgICBz ZXR0aW5nIGhlcmUuICBGb3IgZXhhbXBsZSwgaWYgYGBFWFRFTkRFRF9HTE9CYGAgaXMgbm90 IGFjdGl2ZSwKICAgIHRoZSBwYXR0ZXJuIGBgXmBgIGlzIGluZWZmZWN0aXZlIGV2ZW4gaWYg YGBkaXNhYmxlIC1wICJeImBgIGhhcwogICAgbm90IGJlZW4gaXNzdWVkLiAgVGhlIGxpc3Qg YmVsb3cgaW5kaWNhdGVzIGFueSBvcHRpb24gc2V0dGluZ3MKICAgIHRoYXQgcmVzdHJpY3Qg dGhlIHVzZSBvZiB0aGUgcGF0dGVybi4gIEl0IHNob3VsZCBiZSBub3RlZCB0aGF0CiAgICBz ZXR0aW5nIGBgU0hfR0xPQmBgIGhhcyBhIHdpZGVyIGVmZmVjdCB0aGFuIG1lcmVseSBkaXNh YmxpbmcgcGF0dGVybnMKICAgIGFzIGNlcnRhaW4gZXhwcmVzc2lvbnMsIGluIHBhcnRpY3Vs YXIgdGhvc2UgaW52b2x2aW5nIHBhcmVudGhlc2VzLAogICAgYXJlIHBhcnNlZCBkaWZmZXJl bnRseS4KICAgIAogICAgVGhlIGZvbGxvd2luZyBwYXR0ZXJucyBtYXkgYmUgZGlzYWJsZWQ7 IGFsbAogICAgdGhlIHN0cmluZ3MgbmVlZCBxdW90aW5nIG9uIHRoZSBjb21tYW5kIGxpbmUg dG8gcHJldmVudCB0aGVtIGZyb20KICAgIGJlaW5nIGludGVycHJldGVkIGltbWVkaWF0ZWx5 IGFzIHBhdHRlcm5zIGFuZCB0aGUgcGF0dGVybnMgYXJlCiAgICBzaG93biBiZWxvdyBpbiBz aW5nbGUgcXVvdGVzIGFzIGEgcmVtaW5kZXIuCiAgICAKICAgIAogICAgYGAnPydgYAogICAg ICAgIAogICAgICAgIFRoZSBwYXR0ZXJuIGNoYXJhY3RlciBgYD9gYCB3aGVyZXZlciBpdCBv Y2N1cnMsIGluY2x1ZGluZyB3aGVuIHByZWNlZGluZwogICAgICAgIGEgcGFyZW50aGVzaXMg d2l0aCBgYEtTSF9HTE9CYGAuCiAgICAgICAgCiAgICAKICAgIGBgJyonYGAKICAgICAgICAK ICAgICAgICBUaGUgcGF0dGVybiBjaGFyYWN0ZXIgYGAqYGAgd2hlcmV2ZXIgaXQgb2NjdXJz LCBpbmNsdWRpbmcgcmVjdXJzaXZlCiAgICAgICAgZ2xvYmJpbmcgYW5kIHdoZW4gcHJlY2Vk aW5nIGEgcGFyZW50aGVzaXMgd2l0aCBgYEtTSF9HTE9CYGAuCiAgICAgICAgCiAgICAKICAg IGBgJ1snYGAKICAgICAgICAKICAgICAgICBDaGFyYWN0ZXIgY2xhc3Nlcy4KICAgICAgICAK ICAgIAogICAgYGAnPCdgYCAoYGBOT19TSF9HTE9CYGApCiAgICAgICAgCiAgICAgICAgTnVt ZXJpYyByYW5nZXMuCiAgICAgICAgCiAgICAKICAgIGBgJ3wnYGAgKGBgTk9fU0hfR0xPQmBg KQogICAgICAgIAogICAgICAgIEFsdGVybmF0aW9uIGluIGdyb3VwZWQgcGF0dGVybnMsIGNh c2Ugc3RhdGVtZW50cywgb3IgS1NIX0dMT0IKICAgICAgICBwYXJlbnRoZXNpc2VkIGV4cHJl c3Npb25zLgogICAgICAgIAogICAgCiAgICBgYCcoJ2BgIChgYE5PX1NIX0dMT0JgYCkKICAg ICAgICAKICAgICAgICBHcm91cGluZyB1c2luZyBzaW5nbGUgcGFyZW50aGVzZXMuICBEaXNh YmxpbmcgdGhpcyBkb2VzIG5vdCBkaXNhYmxlIHRoZQogICAgICAgIHVzZSBvZiBwYXJlbnRo ZXNlcyBmb3IgYGBLU0hfR0xPQmBgIHdoZXJlIHRoZXkgYXJlIGludHJvZHVjZWQgYnkgYQog ICAgICAgIHNwZWNpYWwgY2hhcmFjdGVyLCBub3IgZm9yIGdsb2IgcXVhbGlmaWVycyAodXNl IGBgc2V0b3B0CiAgICAgICAgTk9fQkFSRV9HTE9CX1FVQUxgYCB0byBkaXNhYmxlIGdsb2Ig cXVhbGlmaWVycyB0aGF0IHVzZSBwYXJlbnRoZXNlcwogICAgICAgIG9ubHkpLgogICAgICAg IAogICAgCiAgICBgYCd+J2BgIChgYEVYVEVOREVEX0dMT0JgYCkKICAgICAgICAKICAgICAg ICBFeGNsdXNpb24gaW4gdGhlIGZvcm0gOnZhcjpgQWBcIGBgfmBgOnZhcjpgQmAuCiAgICAg ICAgCiAgICAKICAgIGBgJ14nYGAgKGBgRVhURU5ERURfR0xPQmBgKQogICAgICAgIAogICAg ICAgIEV4Y2x1c2lvbiBpbiB0aGUgZm9ybSA6dmFyOmBBYFwgYGBeYGA6dmFyOmBCYC4KICAg ICAgICAKICAgIAogICAgYGAnIydgYCAoYGBFWFRFTkRFRF9HTE9CYGApCiAgICAgICAgCiAg ICAgICAgVGhlIHBhdHRlcm4gY2hhcmFjdGVyIGBgI2BgIHdoZXJldmVyIGl0IG9jY3Vycywg Ym90aCBmb3IKICAgICAgICByZXBldGl0aW9uIG9mIGEgcHJldmlvdXMgcGF0dGVybiBhbmQg Zm9yIGluZGljYXRpbmcgZ2xvYmJpbmcgZmxhZ3MuCiAgICAgICAgCiAgICAKICAgIGBgJz8o J2BgIChgYEtTSF9HTE9CYGApCiAgICAgICAgCiAgICAgICAgVGhlIGdyb3VwaW5nIGZvcm0g YGA/KGBgOnZhcjpgLi4uYFwgYGApYGAuICBOb3RlIHRoaXMgaXMgYWxzbwogICAgICAgIGRp c2FibGVkIGlmIGBgJz8nYGAgaXMgZGlzYWJsZWQuCiAgICAgICAgCiAgICAKICAgIGBgJyoo J2BgIChgYEtTSF9HTE9CYGApCiAgICAgICAgCiAgICAgICAgVGhlIGdyb3VwaW5nIGZvcm0g YGAqKGBgOnZhcjpgLi4uYFwgYGApYGAuICBOb3RlIHRoaXMgaXMgYWxzbwogICAgICAgIGRp c2FibGVkIGlmIGBgJyonYGAgaXMgZGlzYWJsZWQuCiAgICAgICAgCiAgICAKICAgIGBgJyso J2BgIChgYEtTSF9HTE9CYGApCiAgICAgICAgCiAgICAgICAgVGhlIGdyb3VwaW5nIGZvcm0g YGArKGBgOnZhcjpgLi4uYFwgYGApYGAuCiAgICAgICAgCiAgICAKICAgIGBgJyEoJ2BgIChg YEtTSF9HTE9CYGApCiAgICAgICAgCiAgICAgICAgVGhlIGdyb3VwaW5nIGZvcm0gYGAhKGBg OnZhcjpgLi4uYFwgYGApYGAuCiAgICAgICAgCiAgICAKICAgIGBgJ0AoJ2BgIChgYEtTSF9H TE9CYGApCiAgICAgICAgCiAgICAgICAgVGhlIGdyb3VwaW5nIGZvcm0gYGBAKGBgOnZhcjpg Li4uYFwgYGApYGAuCiAgICAgICAgCiAgICAKICAgIAogICAgCgouLiBpbmRleDo6IHNpbmds ZTogZGlzb3duOyBGdW5jdGlvbgoKLi4gaW5kZXg6OiBzaW5nbGU6IGpvYnMsIGRpc293bmlu ZzsgQ29tbWFuZAoKYGBkaXNvd25gYCBbIGBgLWFgYCB8IDp2YXI6YGpvYmAgLi4uIF0KCjp2 YXI6YGpvYmAgLi4uIGBgJnxgYAoKOnZhcjpgam9iYCAuLi4gYGAmIWBgCiAgICAKICAgIFJl bW92ZSB0aGUgc3BlY2lmaWVkIDp2YXI6YGpvYmBccyBmcm9tIHRoZSBqb2IgdGFibGU7IHRo ZSBzaGVsbCB3aWxsCiAgICBubyBsb25nZXIgcmVwb3J0IHRoZWlyIHN0YXR1cywgYW5kIHdp bGwgbm90IGNvbXBsYWluIGlmIHlvdQogICAgdHJ5IHRvIGV4aXQgYW4gaW50ZXJhY3RpdmUg c2hlbGwgd2l0aCB0aGVtIHJ1bm5pbmcgb3Igc3RvcHBlZC4KICAgIElmIG5vIDp2YXI6YGpv YmAgaXMgc3BlY2lmaWVkLCBkaXNvd24gdGhlIGN1cnJlbnQgam9iLgogICAgV2l0aCBgYC1h YGAsIGRpc293biBhbGwgam9icy4KICAgIAogICAgSWYgdGhlIDp2YXI6YGpvYmBccyBhcmUg Y3VycmVudGx5IHN0b3BwZWQgYW5kIHRoZSBgYEFVVE9fQ09OVElOVUVgYCBvcHRpb24KICAg IGlzIG5vdCBzZXQsIGEgd2FybmluZyBpcyBwcmludGVkIGNvbnRhaW5pbmcgaW5mb3JtYXRp b24gYWJvdXQgaG93IHRvCiAgICBtYWtlIHRoZW0gcnVubmluZyBhZnRlciB0aGV5IGhhdmUg YmVlbiBkaXNvd25lZC4gIElmIG9uZSBvZiB0aGUgbGF0dGVyCiAgICB0d28gZm9ybXMgaXMg dXNlZCwgdGhlIDp2YXI6YGpvYmBccyB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgbWFkZSBydW5u aW5nLAogICAgaW5kZXBlbmRlbnQgb2YgdGhlIHNldHRpbmcgb2YgdGhlIGBgQVVUT19DT05U SU5VRWBgIG9wdGlvbi4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6IGVjaG87IEZ1bmN0aW9u CgpgYGVjaG9gYCBbIGBgLW5lRWBgIF0gWyA6dmFyOmBhcmdgIC4uLiBdCiAgICAKICAgIFdy aXRlIGVhY2ggOnZhcjpgYXJnYCBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0LCB3aXRoIGEgc3Bh Y2Ugc2VwYXJhdGluZwogICAgZWFjaCBvbmUuCiAgICBJZiB0aGUgYGAtbmBgIGZsYWcgaXMg bm90IHByZXNlbnQsIHByaW50IGEgbmV3bGluZSBhdCB0aGUgZW5kLgogICAgYGBlY2hvYGAg cmVjb2duaXplcyB0aGUgZm9sbG93aW5nIGVzY2FwZSBzZXF1ZW5jZXM6CiAgICAKICAgIAog ICAgYGBcYWBgCiAgICAgICAgYmVsbCBjaGFyYWN0ZXIKICAgIAogICAgYGBcYmBgCiAgICAg ICAgYmFja3NwYWNlCiAgICAKICAgIGBgXGNgYAogICAgICAgIHN1cHByZXNzIHN1YnNlcXVl bnQgY2hhcmFjdGVycyBhbmQgZmluYWwgbmV3bGluZQogICAgCiAgICBgYFxlYGAKICAgICAg ICBlc2NhcGUKICAgIAogICAgYGBcZmBgCiAgICAgICAgZm9ybSBmZWVkCiAgICAKICAgIGBg XG5gYAogICAgICAgIGxpbmVmZWVkIChuZXdsaW5lKQogICAgCiAgICBgYFxyYGAKICAgICAg ICBjYXJyaWFnZSByZXR1cm4KICAgIAogICAgYGBcdGBgCiAgICAgICAgaG9yaXpvbnRhbCB0 YWIKICAgIAogICAgYGBcdmBgCiAgICAgICAgdmVydGljYWwgdGFiCiAgICAKICAgIGBgXFxg YAogICAgICAgIGJhY2tzbGFzaAogICAgCiAgICBgYFwwYGA6dmFyOmBOTk5gCiAgICAgICAg Y2hhcmFjdGVyIGNvZGUgaW4gb2N0YWwKICAgIAogICAgYGBceGBgOnZhcjpgTk5gCiAgICAg ICAgY2hhcmFjdGVyIGNvZGUgaW4gaGV4YWRlY2ltYWwKICAgIAogICAgYGBcdWBgOnZhcjpg Tk5OTmAKICAgICAgICB1bmljb2RlIGNoYXJhY3RlciBjb2RlIGluIGhleGFkZWNpbWFsCiAg ICAKICAgIGBgXFVgYDp2YXI6YE5OTk5OTk5OYAogICAgICAgIHVuaWNvZGUgY2hhcmFjdGVy IGNvZGUgaW4gaGV4YWRlY2ltYWwKICAgIAogICAgCiAgICAKICAgIC4uIGluZGV4Ojogc2lu Z2xlOiBCU0RfRUNITywgdXNlIG9mOyBQcm9ncmFtCiAgICAKICAgIAogICAgVGhlIGBgLUVg YCBmbGFnLCBvciB0aGUgYGBCU0RfRUNIT2BgIG9wdGlvbiwgY2FuIGJlIHVzZWQgdG8gZGlz YWJsZQogICAgdGhlc2UgZXNjYXBlIHNlcXVlbmNlcy4gIEluIHRoZSBsYXR0ZXIgY2FzZSwg YGAtZWBgIGZsYWcgY2FuIGJlIHVzZWQgdG8KICAgIGVuYWJsZSB0aGVtLgogICAgCiAgICBO b3RlIHRoYXQgZm9yIHN0YW5kYXJkcyBjb21wbGlhbmNlIGEgZG91YmxlIGRhc2ggZG9lcyBu b3QgdGVybWluYXRlCiAgICBvcHRpb24gcHJvY2Vzc2luZzsgaW5zdGVhZCwgaXQgaXMgcHJp bnRlZCBkaXJlY3RseS4gIEhvd2V2ZXIsIGEKICAgIHNpbmdsZSBkYXNoIGRvZXMgdGVybWlu YXRlIG9wdGlvbiBwcm9jZXNzaW5nLCBzbyB0aGUgZmlyc3QgZGFzaCwKICAgIHBvc3NpYmx5 IGZvbGxvd2luZyBvcHRpb25zLCBpcyBub3QgcHJpbnRlZCwgYnV0IGV2ZXJ5dGhpbmcgZm9s bG93aW5nIGl0CiAgICBpcyBwcmludGVkIGFzIGFuIGFyZ3VtZW50LiAgVGhlIHNpbmdsZSBk YXNoIGJlaGF2aW91ciBpcyBkaWZmZXJlbnQKICAgIGZyb20gb3RoZXIgc2hlbGxzLiAgRm9y IGEgbW9yZSBwb3J0YWJsZSB3YXkgb2YgcHJpbnRpbmcgdGV4dCwgc2VlCiAgICBgYHByaW50 ZmBgLCBhbmQgZm9yIGEgbW9yZSBjb250cm9sbGFibGUgd2F5IG9mIHByaW50aW5nIHRleHQg d2l0aGluIHpzaCwKICAgIHNlZSBgYHByaW50YGAuCiAgICAKCmBgZWNob3RjYGAKICAgIAog ICAgU2VlIDpyZWY6YFRoZSB6c2gvdGVybWNhcCBNb2R1bGVgLgogICAgCgpgYGVjaG90aWBg CiAgICAKICAgIFNlZSA6cmVmOmBUaGUgenNoL3Rlcm1pbmZvIE1vZHVsZWAuCiAgICAKCi4u IGluZGV4Ojogc2luZ2xlOiBlbXVsYXRlOyBGdW5jdGlvbgoKLi4gaW5kZXg6OiBzaW5nbGU6 IGNvbXBhdGliaWxpdHksIHNoOyBDb21tYW5kCgouLiBpbmRleDo6IHNpbmdsZTogY29tcGF0 aWJpbGl0eSwga3NoOyBDb21tYW5kCgouLiBpbmRleDo6IHNpbmdsZTogY29tcGF0aWJpbGl0 eSwgY3NoOyBDb21tYW5kCgouLiBpbmRleDo6IHNpbmdsZTogc2gsIGNvbXBhdGliaWxpdHk7 IENvbW1hbmQKCi4uIGluZGV4Ojogc2luZ2xlOiBrc2gsIGNvbXBhdGliaWxpdHk7IENvbW1h bmQKCi4uIGluZGV4Ojogc2luZ2xlOiBjc2gsIGNvbXBhdGliaWxpdHk7IENvbW1hbmQKCmBg ZW11bGF0ZWBgIFsgYGAtbExSYGAgXSBbIHtgYHpzaHxzaHxrc2h8Y3NoYGB9IFsgOnZhcjpg ZmxhZ3NgIC4uLiBdIF0KICAgIAogICAgV2l0aG91dCBhbnkgYXJndW1lbnQgcHJpbnQgY3Vy cmVudCBlbXVsYXRpb24gbW9kZS4KICAgIAogICAgV2l0aCBzaW5nbGUgYXJndW1lbnQgc2V0 IHVwIHpzaCBvcHRpb25zIHRvIGVtdWxhdGUgdGhlIHNwZWNpZmllZCBzaGVsbAogICAgYXMg bXVjaCBhcyBwb3NzaWJsZS4KICAgIDpzdHJvbmc6YGNzaGAgd2lsbCBuZXZlciBiZSBmdWxs eSBlbXVsYXRlZC4KICAgIElmIHRoZSBhcmd1bWVudCBpcyBub3Qgb25lIG9mIHRoZSBzaGVs bHMgbGlzdGVkIGFib3ZlLCBgYHpzaGBgCiAgICB3aWxsIGJlIHVzZWQgYXMgYSBkZWZhdWx0 OyBtb3JlIHByZWNpc2VseSwgdGhlIHRlc3RzIHBlcmZvcm1lZCBvbiB0aGUKICAgIGFyZ3Vt ZW50IGFyZSB0aGUgc2FtZSBhcyB0aG9zZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZW11bGF0 aW9uIGF0IHN0YXJ0dXAKICAgIGJhc2VkIG9uIHRoZSBzaGVsbCBuYW1lLCBzZWUgOnJlZjpg Q29tcGF0aWJpbGl0eWAuCiAgICBJbiBhZGRpdGlvbiB0byBzZXR0aW5nIHNoZWxsIG9wdGlv bnMsIHRoZSBjb21tYW5kIGFsc28gcmVzdG9yZXMKICAgIHRoZSBwcmlzdGluZSBzdGF0ZSBv ZiBwYXR0ZXJuIGVuYWJsZXMsIGFzIGlmIGFsbCBwYXR0ZXJucyBoYWQgYmVlbgogICAgZW5h YmxlZCB1c2luZyBgYGVuYWJsZSAtcGBgLgogICAgCiAgICBJZiB0aGUgYGBlbXVsYXRlYGAg Y29tbWFuZCBvY2N1cnMgaW5zaWRlIGEgZnVuY3Rpb24gdGhhdCBoYXMgYmVlbgogICAgbWFy a2VkIGZvciBleGVjdXRpb24gdHJhY2luZyB3aXRoIGBgZnVuY3Rpb25zIC10YGAgdGhlbiB0 aGUgYGB4dHJhY2VgYAogICAgb3B0aW9uIHdpbGwgYmUgdHVybmVkIG9uIHJlZ2FyZGxlc3Mg b2YgZW11bGF0aW9uIG1vZGUgb3Igb3RoZXIgb3B0aW9ucy4KICAgIE5vdGUgdGhhdCBjb2Rl IGV4ZWN1dGVkIGluc2lkZSB0aGUgZnVuY3Rpb24gYnkgdGhlIGBgLmBgLCBgYHNvdXJjZWBg LCBvcgogICAgYGBldmFsYGAgY29tbWFuZHMgaXMgbm90IGNvbnNpZGVyZWQgdG8gYmUgcnVu bmluZyBkaXJlY3RseSBmcm9tIHRoZQogICAgZnVuY3Rpb24sIGhlbmNlIGRvZXMgbm90IHBy b3Zva2UgdGhpcyBiZWhhdmlvdXIuCiAgICAKICAgIElmIHRoZSBgYC1SYGAgc3dpdGNoIGlz IGdpdmVuLCBhbGwgc2V0dGFibGUgb3B0aW9ucwogICAgYXJlIHJlc2V0IHRvIHRoZWlyIGRl ZmF1bHQgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGUgc3BlY2lmaWVkIGVtdWxhdGlvbgog ICAgbW9kZSwgZXhjZXB0IGZvciBjZXJ0YWluIG9wdGlvbnMgZGVzY3JpYmluZyB0aGUgaW50 ZXJhY3RpdmUKICAgIGVudmlyb25tZW50OyBvdGhlcndpc2UsIG9ubHkgdGhvc2Ugb3B0aW9u cyBsaWtlbHkgdG8gY2F1c2UgcG9ydGFiaWxpdHkKICAgIHByb2JsZW1zIGluIHNjcmlwdHMg YW5kIGZ1bmN0aW9ucyBhcmUgYWx0ZXJlZC4gIElmIHRoZSBgYC1MYGAgc3dpdGNoIGlzIGdp dmVuLAogICAgdGhlIG9wdGlvbnMgYGBMT0NBTF9PUFRJT05TYGAsIGBgTE9DQUxfUEFUVEVS TlNgYCBhbmQgYGBMT0NBTF9UUkFQU2BgCiAgICB3aWxsIGJlIHNldCBhcwogICAgd2VsbCwg Y2F1c2luZyB0aGUgZWZmZWN0cyBvZiB0aGUgYGBlbXVsYXRlYGAgY29tbWFuZCBhbmQgYW55 IGBgc2V0b3B0YGAsCiAgICBgYGRpc2FibGUgLXBgYCBvciBgYGVuYWJsZSAtcGBgLCBhbmQg YGB0cmFwYGAgY29tbWFuZHMgdG8gYmUgbG9jYWwgdG8KICAgIHRoZSBpbW1lZGlhdGVseSBz dXJyb3VuZGluZyBzaGVsbAogICAgZnVuY3Rpb24sIGlmIGFueTsgbm9ybWFsbHkgdGhlc2Ug b3B0aW9ucyBhcmUgdHVybmVkIG9mZiBpbiBhbGwgZW11bGF0aW9uCiAgICBtb2RlcyBleGNl cHQgYGBrc2hgYC4gVGhlIGBgLUxgYCBzd2l0Y2ggaXMgbXV0dWFsbHkgZXhjbHVzaXZlIHdp dGggdGhlCiAgICB1c2Ugb2YgYGAtY2BgIGluIDp2YXI6YGZsYWdzYC4KICAgIAogICAgSWYg dGhlcmUgaXMgYSBzaW5nbGUgYXJndW1lbnQgYW5kIHRoZSBgYC1sYGAgc3dpdGNoIGlzIGdp dmVuLCB0aGUKICAgIG9wdGlvbnMgdGhhdCB3b3VsZCBiZSBzZXQgb3IgdW5zZXQgKHRoZSBs YXR0ZXIgaW5kaWNhdGVkIHdpdGggdGhlIHByZWZpeAogICAgYGBub2BgKSBhcmUgbGlzdGVk LiAgYGAtbGBgIGNhbiBiZSBjb21iaW5lZCB3aXRoIGBgLUxgYCBvciBgYC1SYGAgYW5kCiAg ICB0aGUgbGlzdCB3aWxsIGJlIG1vZGlmaWVkIGluIHRoZSBhcHByb3ByaWF0ZSB3YXkuICBO b3RlIHRoZSBsaXN0IGRvZXMKICAgIG5vdCBkZXBlbmQgb24gdGhlIGN1cnJlbnQgc2V0dGlu ZyBvZiBvcHRpb25zLCBpLmUuIGl0IGluY2x1ZGVzIGFsbAogICAgb3B0aW9ucyB0aGF0IG1h eSBpbiBwcmluY2lwbGUgY2hhbmdlLCBub3QganVzdCB0aG9zZSB0aGF0IHdvdWxkIGFjdHVh bGx5CiAgICBjaGFuZ2UuCiAgICAKICAgIFRoZSA6dmFyOmBmbGFnc2AgbWF5IGJlIGFueSBv ZiB0aGUgaW52b2NhdGlvbi10aW1lIGZsYWdzIGRlc2NyaWJlZCBpbgogICAgOnJlZjpgSW52 b2NhdGlvbmAsCiAgICBleGNlcHQgdGhhdCBgYC1vIEVNQUNTYGAgYW5kIGBgLW8gVklgYCBt YXkgbm90IGJlIHVzZWQuCiAgICAKICAgIElmIGBgLWNgYCA6dmFyOmBhcmdgIGFwcGVhcnMg aW4gOnZhcjpgZmxhZ3NgLCA6dmFyOmBhcmdgIGlzIGV2YWx1YXRlZCB3aGlsZSB0aGUKICAg IHJlcXVlc3RlZCBlbXVsYXRpb24gaXMgdGVtcG9yYXJpbHkgaW4gZWZmZWN0LiAgSW4gdGhp cyBjYXNlIHRoZSBlbXVsYXRpb24KICAgIG1vZGUgYW5kIGFsbCBvcHRpb25zIGFyZSByZXN0 b3JlZCB0byB0aGVpciBwcmV2aW91cyB2YWx1ZXMgYmVmb3JlCiAgICBgYGVtdWxhdGVgYCBy ZXR1cm5zLiAgVGhlIGBgLVJgYCBzd2l0Y2ggbWF5IHByZWNlZGUgdGhlIG5hbWUgb2YgdGhl IHNoZWxsCiAgICB0byBlbXVsYXRlOyBub3RlIHRoaXMgaGFzIGEgbWVhbmluZyBkaXN0aW5j dCBmcm9tIGluY2x1ZGluZyBgYC1SYGAgaW4KICAgIDp2YXI6YGZsYWdzYC4KICAgIAogICAg VXNlIG9mIGBgLWNgYCBlbmFibGVzIFxgc3RpY2t5JyBlbXVsYXRpb24gbW9kZSBmb3IgZnVu Y3Rpb25zIGRlZmluZWQKICAgIHdpdGhpbiB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb246ICB0 aGUgZW11bGF0aW9uIG1vZGUgaXMgYXNzb2NpYXRlZAogICAgdGhlcmVhZnRlciB3aXRoIHRo ZSBmdW5jdGlvbiBzbyB0aGF0IHdoZW5ldmVyIHRoZSBmdW5jdGlvbiBpcyBleGVjdXRlZAog ICAgdGhlIGVtdWxhdGlvbiAocmVzcGVjdGluZyB0aGUgYGAtUmBgIHN3aXRjaCwgaWYgcHJl c2VudCkgYW5kIGFsbAogICAgb3B0aW9ucyBhcmUgc2V0IChhbmQgcGF0dGVybiBkaXNhYmxl cyBjbGVhcmVkKQogICAgYmVmb3JlIGVudHJ5IHRvIHRoZSBmdW5jdGlvbiwgYW5kIHRoZSBz dGF0ZSBpcyByZXN0b3JlZCBhZnRlciBleGl0LgogICAgSWYgdGhlIGZ1bmN0aW9uIGlzIGNh bGxlZCB3aGVuIHRoZSBzdGlja3kgZW11bGF0aW9uIGlzIGFscmVhZHkgaW4KICAgIGVmZmVj dCwgZWl0aGVyIHdpdGhpbiBhbiBgYGVtdWxhdGVgYCA6dmFyOmBzaGVsbGAgYGAtY2BgIGV4 cHJlc3Npb24gb3IKICAgIHdpdGhpbiBhbm90aGVyIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUg c3RpY2t5IGVtdWxhdGlvbiwgZW50cnkgYW5kIGV4aXQKICAgIGZyb20gdGhlIGZ1bmN0aW9u IGRvIG5vdCBjYXVzZSBvcHRpb25zIHRvIGJlIGFsdGVyZWQgKGV4Y2VwdCBkdWUgdG8KICAg IHN0YW5kYXJkIHByb2Nlc3Npbmcgc3VjaCBhcyB0aGUgYGBMT0NBTF9PUFRJT05TYGAgb3B0 aW9uKS4gIFRoaXMgYWxzbwogICAgYXBwbGllcyB0byBmdW5jdGlvbnMgbWFya2VkIGZvciBh dXRvbG9hZCB3aXRoaW4gdGhlIHN0aWNreSBlbXVsYXRpb247CiAgICB0aGUgYXBwcm9wcmlh dGUgc2V0IG9mIG9wdGlvbnMgd2lsbCBiZSBhcHBsaWVkIGF0IHRoZSBwb2ludCB0aGUKICAg IGZ1bmN0aW9uIGlzIGxvYWRlZCBhcyB3ZWxsIGFzIHdoZW4gaXQgaXMgcnVuLgogICAgCiAg ICBGb3IgZXhhbXBsZToKICAgIAogICAgLi4gcGFyc2VkLWxpdGVyYWw6OgogICAgICAgOmNs YXNzOiBleGFtcGxlCiAgICAKCiAgICAgICAgZW11bGF0ZSBzaCAtYyAnZm5pKCkgeyBzZXRv cHQgY3NobnVsbGdsb2I7IH0KICAgICAgICBmbm8oKSB7IGZuaTsgfScKICAgICAgICBmbm8K ICAgIAogICAgCiAgICBUaGUgdHdvIGZ1bmN0aW9ucyBgYGZuaWBgIGFuZCBgYGZub2BgIGFy ZSBkZWZpbmVkIHdpdGggc3RpY2t5IGBgc2hgYAogICAgZW11bGF0aW9uLiAgYGBmbm9gYCBp cyB0aGVuIGV4ZWN1dGVkLCBjYXVzaW5nIG9wdGlvbnMgYXNzb2NpYXRlZAogICAgd2l0aCBl bXVsYXRpb25zIHRvIGJlIHNldCB0byB0aGVpciB2YWx1ZXMgaW4gYGBzaGBgLiAgYGBmbm9g YCB0aGVuCiAgICBjYWxscyBgYGZuaWBgOyBiZWNhdXNlIGBgZm5pYGAgaXMgYWxzbyBtYXJr ZWQgZm9yIHN0aWNreSBgYHNoYGAKICAgIGVtdWxhdGlvbiwgbm8gb3B0aW9uIGNoYW5nZXMg dGFrZSBwbGFjZSBvbiBlbnRyeSB0byBvciBleGl0IGZyb20gaXQuCiAgICBIZW5jZSB0aGUg b3B0aW9uIGBgY3NobnVsbGdsb2JgYCwgdHVybmVkIG9mZiBieSBgYHNoYGAgZW11bGF0aW9u LCB3aWxsCiAgICBiZSB0dXJuZWQgb24gd2l0aGluIGBgZm5pYGAgYW5kIHJlbWFpbiBvbiBy ZXR1cm4gdG8gYGBmbm9gYC4gIE9uIGV4aXQKICAgIGZyb20gYGBmbm9gYCwgdGhlIGVtdWxh dGlvbiBtb2RlIGFuZCBhbGwgb3B0aW9ucyB3aWxsIGJlIHJlc3RvcmVkIHRvIHRoZQogICAg c3RhdGUgdGhleSB3ZXJlIGluIGJlZm9yZSBlbnRyeSB0byB0aGUgdGVtcG9yYXJ5IGVtdWxh dGlvbi4KICAgIAogICAgVGhlIGRvY3VtZW50YXRpb24gYWJvdmUgaXMgdHlwaWNhbGx5IHN1 ZmZpY2llbnQgZm9yIHRoZSBpbnRlbmRlZAogICAgcHVycG9zZSBvZiBleGVjdXRpbmcgY29k ZSBkZXNpZ25lZCBmb3Igb3RoZXIgc2hlbGxzIGluIGEgc3VpdGFibGUKICAgIGVudmlyb25t ZW50LiAgTW9yZSBkZXRhaWxlZCBydWxlcyBmb2xsb3cuCiAgICAKICAgIDEuCiAgICAgICAg VGhlIHN0aWNreSBlbXVsYXRpb24gZW52aXJvbm1lbnQgcHJvdmlkZWQgYnkgYGBlbXVsYXRl YGAKICAgICAgICA6dmFyOmBzaGVsbGAgYGAtY2BgIGlzIGlkZW50aWNhbCB0byB0aGF0IHBy b3ZpZGVkIGJ5IGVudHJ5IHRvCiAgICAgICAgYSBmdW5jdGlvbiBtYXJrZWQgZm9yIHN0aWNr eSBlbXVsYXRpb24gYXMgYSBjb25zZXF1ZW5jZSBvZiBiZWluZwogICAgICAgIGRlZmluZWQg aW4gc3VjaCBhbiBlbnZpcm9ubWVudC4gIEhlbmNlLCBmb3IgZXhhbXBsZSwgdGhlIHN0aWNr eQogICAgICAgIGVtdWxhdGlvbiBpcyBpbmhlcml0ZWQgYnkgc3ViZnVuY3Rpb25zIGRlZmlu ZWQgd2l0aGluIGZ1bmN0aW9ucwogICAgICAgIHdpdGggc3RpY2t5IGVtdWxhdGlvbi4KICAg IAogICAgMi4KICAgICAgICBObyBjaGFuZ2Ugb2Ygb3B0aW9ucyB0YWtlcyBwbGFjZSBvbiBl bnRyeSB0byBvciBleGl0IGZyb20KICAgICAgICBmdW5jdGlvbnMgdGhhdCBhcmUgbm90IG1h cmtlZCBmb3Igc3RpY2t5IGVtdWxhdGlvbiwgb3RoZXIgdGhhbiB0aG9zZQogICAgICAgIHRo YXQgd291bGQgbm9ybWFsbHkgdGFrZSBwbGFjZSwgZXZlbiBpZiB0aG9zZSBmdW5jdGlvbnMg YXJlIGNhbGxlZAogICAgICAgIHdpdGhpbiBzdGlja3kgZW11bGF0aW9uLgogICAgCiAgICAz LgogICAgICAgIE5vIHNwZWNpYWwgaGFuZGxpbmcgaXMgcHJvdmlkZWQgZm9yIGZ1bmN0aW9u cyBtYXJrZWQgZm9yCiAgICAgICAgYGBhdXRvbG9hZGBgIG5vciBmb3IgZnVuY3Rpb25zIHBy ZXNlbnQgaW4gd29yZGNvZGUgY3JlYXRlZCBieQogICAgICAgIHRoZSBgYHpjb21waWxlYGAg Y29tbWFuZC4KICAgIAogICAgNC4KICAgICAgICBUaGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBv ZiB0aGUgYGAtUmBgIHN3aXRjaCB0byBgYGVtdWxhdGVgYAogICAgICAgIGNvcnJlc3BvbmRz IHRvIGRpZmZlcmVudCBzdGlja3kgZW11bGF0aW9uIG1vZGVzLCBzbyBmb3IgZXhhbXBsZQog ICAgICAgIGBgZW11bGF0ZSBzaCAtY2BgLCBgYGVtdWxhdGUgLVIgc2ggLWNgYCBhbmQgYGBl bXVsYXRlIGNzaCAtY2BgCiAgICAgICAgYXJlIHRyZWF0ZWQgYXMgdGhyZWUgZGlzdGluY3Qg c3RpY2t5IGVtdWxhdGlvbnMuCiAgICAKICAgIDUuCiAgICAgICAgRGlmZmVyZW5jZSBpbiBz aGVsbCBvcHRpb25zIHN1cHBsaWVkIGluIGFkZGl0aW9uIHRvIHRoZQogICAgICAgIGJhc2lj IGVtdWxhdGlvbiBhbHNvIG1lYW4gdGhlIHN0aWNreSBlbXVsYXRpb25zIGFyZSBkaWZmZXJl bnQsIHNvIGZvcgogICAgICAgIGV4YW1wbGUgYGBlbXVsYXRlIHpzaCAtY2BgIGFuZCBgYGVt dWxhdGUgenNoIC1vIGNiYXNlcyAtY2BgIGFyZQogICAgICAgIHRyZWF0ZWQgYXMgZGlzdGlu Y3Qgc3RpY2t5IGVtdWxhdGlvbnMuCiAgICAKICAgIAogICAgCgouLiBpbmRleDo6IHNpbmds ZTogZW5hYmxlOyBGdW5jdGlvbgoKLi4gaW5kZXg6OiBzaW5nbGU6IGVuYWJsaW5nIGNvbW1h bmRzOyBDb21tYW5kCgouLiBpbmRleDo6IHNpbmdsZTogY29tbWFuZHMsIGVuYWJsaW5nOyBD b21tYW5kCgpgYGVuYWJsZWBgIFsgYGAtYWZtcHJzYGAgXSA6dmFyOmBuYW1lYCAuLi4KICAg IAogICAgRW5hYmxlIHRoZSA6dmFyOmBuYW1lYFxkIGhhc2ggdGFibGUgZWxlbWVudHMsIHBy ZXN1bWFibHkgZGlzYWJsZWQKICAgIGVhcmxpZXIgd2l0aCBgYGRpc2FibGVgYC4gIFRoZSBk ZWZhdWx0IGlzIHRvIGVuYWJsZSBidWlsdGluIGNvbW1hbmRzLgogICAgVGhlIGBgLWFgYCBv cHRpb24gY2F1c2VzIGBgZW5hYmxlYGAgdG8gYWN0IG9uIHJlZ3VsYXIgb3IgZ2xvYmFsIGFs aWFzZXMuCiAgICBUaGUgYGAtc2BgIG9wdGlvbiBjYXVzZXMgYGBlbmFibGVgYCB0byBhY3Qg b24gc3VmZml4IGFsaWFzZXMuCiAgICBUaGUgYGAtZmBgIG9wdGlvbiBjYXVzZXMgYGBlbmFi bGVgYCB0byBhY3Qgb24gc2hlbGwgZnVuY3Rpb25zLiAgVGhlIGBgLXJgYAogICAgb3B0aW9u IGNhdXNlcyBgYGVuYWJsZWBgIHRvIGFjdCBvbiByZXNlcnZlZCB3b3Jkcy4gIFdpdGhvdXQg YXJndW1lbnRzCiAgICBhbGwgZW5hYmxlZCBoYXNoIHRhYmxlIGVsZW1lbnRzIGZyb20gdGhl IGNvcnJlc3BvbmRpbmcgaGFzaCB0YWJsZSBhcmUKICAgIHByaW50ZWQuICBXaXRoIHRoZSBg YC1tYGAgZmxhZyB0aGUgYXJndW1lbnRzIGFyZSB0YWtlbiBhcyBwYXR0ZXJucwogICAgKHNo b3VsZCBiZSBxdW90ZWQpIGFuZCBhbGwgaGFzaCB0YWJsZSBlbGVtZW50cyBmcm9tIHRoZSBj b3JyZXNwb25kaW5nCiAgICBoYXNoIHRhYmxlIG1hdGNoaW5nIHRoZXNlIHBhdHRlcm5zIGFy ZSBlbmFibGVkLiAgRW5hYmxlZCBvYmplY3RzIGNhbiBiZQogICAgZGlzYWJsZWQgd2l0aCB0 aGUgYGBkaXNhYmxlYGAgYnVpbHRpbiBjb21tYW5kLgogICAgCiAgICBgYGVuYWJsZSAtcGBg IHJlZW5hYmxlcyBwYXR0ZXJucyBkaXNhYmxlZCB3aXRoIGBgZGlzYWJsZSAtcGBgLiAgTm90 ZQogICAgdGhhdCBpdCBkb2VzIG5vdCBvdmVycmlkZSBnbG9iYmluZyBvcHRpb25zOyBmb3Ig ZXhhbXBsZSwgYGBlbmFibGUgLXAKICAgICJ+IiBgYGRvZXMgbm90IGNhdXNlIHRoZSBwYXR0 ZXJuIGNoYXJhY3RlcmBgIH5gYCB0byBiZSBhY3RpdmUgdW5sZXNzCiAgICB0aGUgYGBFWFRF TkRFRF9HTE9CYGAgb3B0aW9uIGlzIGFsc28gc2V0LiAgVG8gZW5hYmxlIGFsbCBwb3NzaWJs ZQogICAgcGF0dGVybnMgKHNvIHRoYXQgdGhleSBtYXkgYmUgaW5kaXZpZHVhbGx5IGRpc2Fi bGVkIHdpdGggYGBkaXNhYmxlIC1wYGApLAogICAgdXNlIGBgc2V0b3B0IEVYVEVOREVEX0dM T0IgS1NIX0dMT0IgTk9fU0hfR0xPQmBgLgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogZXZh bDsgRnVuY3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiBldmFsdWF0aW5nIGFyZ3VtZW50cyBh cyBjb21tYW5kczsgQ29tbWFuZAoKYGBldmFsYGAgWyA6dmFyOmBhcmdgIC4uLiBdCiAgICAK ICAgIFJlYWQgdGhlIGFyZ3VtZW50cyBhcyBpbnB1dCB0byB0aGUgc2hlbGwgYW5kIGV4ZWN1 dGUgdGhlIHJlc3VsdGluZwogICAgY29tbWFuZChzKSBpbiB0aGUgY3VycmVudCBzaGVsbCBw cm9jZXNzLiAgVGhlIHJldHVybiBzdGF0dXMgaXMKICAgIHRoZSBzYW1lIGFzIGlmIHRoZSBj b21tYW5kcyBoYWQgYmVlbiBleGVjdXRlZCBkaXJlY3RseSBieSB0aGUgc2hlbGw7CiAgICBp ZiB0aGVyZSBhcmUgbm8gOnZhcjpgYXJnc2Agb3IgdGhleSBjb250YWluIG5vIGNvbW1hbmRz IChpLmUuIGFyZQogICAgYW4gZW1wdHkgc3RyaW5nIG9yIHdoaXRlc3BhY2UpIHRoZSByZXR1 cm4gc3RhdHVzIGlzIHplcm8uCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiBleGVjOyBGdW5j dGlvbgoKYGBleGVjYGAgWyBgYC1jbGBgIF0gWyBgYC1hYGAgOnZhcjpgYXJndjBgIF0gWyA6 dmFyOmBjb21tYW5kYCBbIDp2YXI6YGFyZ2AgLi4uIF0gXQogICAgCiAgICBSZXBsYWNlIHRo ZSBjdXJyZW50IHNoZWxsIHdpdGggOnZhcjpgY29tbWFuZGAgcmF0aGVyIHRoYW4gZm9ya2lu Zy4KICAgIElmIDp2YXI6YGNvbW1hbmRgIGlzIGEgc2hlbGwgYnVpbHRpbiBjb21tYW5kIG9y IGEgc2hlbGwgZnVuY3Rpb24sCiAgICB0aGUgc2hlbGwgZXhlY3V0ZXMgaXQsIGFuZCBleGl0 cyB3aGVuIHRoZSBjb21tYW5kIGlzIGNvbXBsZXRlLgogICAgCiAgICBXaXRoIGBgLWNgYCBj bGVhciB0aGUgZW52aXJvbm1lbnQ7IHdpdGggYGAtbGBgIHByZXBlbmQgYGAtYGAgdG8gdGhl CiAgICBgYGFyZ3ZbMF1gYCBzdHJpbmcgb2YgdGhlIGNvbW1hbmQgZXhlY3V0ZWQgKHRvIHNp bXVsYXRlIGEgbG9naW4gc2hlbGwpOwogICAgd2l0aCBgYC1hYGAgOnZhcjpgYXJndjBgIHNl dCB0aGUgYGBhcmd2WzBdYGAgc3RyaW5nIG9mIHRoZSBjb21tYW5kCiAgICBleGVjdXRlZC4K ICAgIFNlZSA6cmVmOmBQcmVjb21tYW5kIE1vZGlmaWVyc2AuCiAgICAKICAgIElmIHRoZSBv cHRpb24gYGBQT1NJWF9CVUlMVElOU2BgIGlzIHNldCwgOnZhcjpgY29tbWFuZGAgaXMgbmV2 ZXIKICAgIGludGVycHJldGVkIGFzIGEgc2hlbGwgYnVpbHRpbiBjb21tYW5kIG9yIHNoZWxs IGZ1bmN0aW9uLiAgVGhpcwogICAgbWVhbnMgZnVydGhlciBwcmVjb21tYW5kIG1vZGlmaWVy cyBzdWNoIGFzIGBgYnVpbHRpbmBgIGFuZAogICAgYGBub2dsb2JgYCBhcmUgYWxzbyBub3Qg aW50ZXJwcmV0ZWQgd2l0aGluIHRoZSBzaGVsbC4gIEhlbmNlCiAgICA6dmFyOmBjb21tYW5k YCBpcyBhbHdheXMgZm91bmQgYnkgc2VhcmNoaW5nIHRoZSBjb21tYW5kIHBhdGguCiAgICAK ICAgIC4uIGluZGV4Ojogc2luZ2xlOiByZWRpcmVjdGlvbiwgY3VycmVudCBzaGVsbCdzIEkv TzsgQ29tbWFuZAogICAgCiAgICAKICAgIElmIDp2YXI6YGNvbW1hbmRgIGlzIG9taXR0ZWQg YnV0IGFueSByZWRpcmVjdGlvbnMgYXJlIHNwZWNpZmllZCwKICAgIHRoZW4gdGhlIHJlZGly ZWN0aW9ucyB3aWxsIHRha2UgZWZmZWN0IGluIHRoZSBjdXJyZW50IHNoZWxsLgogICAgCgou LiBpbmRleDo6IHNpbmdsZTogZXhpdDsgRnVuY3Rpb24KCmBgZXhpdGBgIFsgOnZhcjpgbmAg XQogICAgCiAgICBFeGl0IHRoZSBzaGVsbCB3aXRoIHRoZSBleGl0IHN0YXR1cyBzcGVjaWZp ZWQgYnkgYW4gYXJpdGhtZXRpYwogICAgZXhwcmVzc2lvbiA6dmFyOmBuYDsgaWYgbm9uZQog ICAgaXMgc3BlY2lmaWVkLCB1c2UgdGhlIGV4aXQgc3RhdHVzIGZyb20gdGhlIGxhc3QgY29t bWFuZCBleGVjdXRlZC4KICAgIC4uIGluZGV4Ojogc2luZ2xlOiBJR05PUkVfRU9GLCB1c2Ug b2Y7IFByb2dyYW0KICAgIAogICAgCiAgICBBbiBFT0YgY29uZGl0aW9uIHdpbGwgYWxzbyBj YXVzZSB0aGUgc2hlbGwgdG8gZXhpdCwgdW5sZXNzCiAgICB0aGUgYGBJR05PUkVfRU9GYGAg b3B0aW9uIGlzIHNldC4KICAgIAogICAgU2VlIG5vdGVzIGF0IHRoZSBlbmQgb2YgOnJlZjpg U2lnbmFsc2AKICAgIGZvciBzb21lIHBvc3NpYmx5IHVuZXhwZWN0ZWQgaW50ZXJhY3Rpb25z CiAgICBvZiB0aGUgYGBleGl0YGAgY29tbWFuZCB3aXRoIGpvYnMuCiAgICAKCi4uIGluZGV4 Ojogc2luZ2xlOiBleHBvcnQ7IEZ1bmN0aW9uCgpgYGV4cG9ydGBgIFsgOnZhcjpgbmFtZWBc W2BgPWBgOnZhcjpgdmFsdWVgXSAuLi4gXQogICAgCiAgICBUaGUgc3BlY2lmaWVkIDp2YXI6 YG5hbWVgXHMgYXJlIG1hcmtlZCBmb3IgYXV0b21hdGljIGV4cG9ydAogICAgdG8gdGhlIGVu dmlyb25tZW50IG9mIHN1YnNlcXVlbnRseSBleGVjdXRlZCBjb21tYW5kcy4KICAgIEVxdWl2 YWxlbnQgdG8gYGB0eXBlc2V0IC1neGBgLgogICAgSWYgYSBwYXJhbWV0ZXIgc3BlY2lmaWVk IGRvZXMgbm90CiAgICBhbHJlYWR5IGV4aXN0LCBpdCBpcyBjcmVhdGVkIGluIHRoZSBnbG9i YWwgc2NvcGUuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiBmYWxzZTsgRnVuY3Rpb24KCi4u IGluZGV4Ojogc2luZ2xlOiBkb2luZyBub3RoaW5nLCB1bnN1Y2Nlc3NmdWxseTsgQ29tbWFu ZAoKYGBmYWxzZWBgIFsgOnZhcjpgYXJnYCAuLi4gXQogICAgCiAgICBEbyBub3RoaW5nIGFu ZCByZXR1cm4gYW4gZXhpdCBzdGF0dXMgb2YgMS4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6 IGZjOyBGdW5jdGlvbgoKLi4gaW5kZXg6OiBzaW5nbGU6IGhpc3RvcnksIGVkaXRpbmc7IENv bW1hbmQKCi4uIGluZGV4Ojogc2luZ2xlOiBlZGl0aW5nIGhpc3Rvcnk7IENvbW1hbmQKCmBg ZmNgYCBbIGBgLWVgYCA6dmFyOmBlbmFtZWAgXSBbIGBgLXNgYCBdIFsgYGAtTElgYCBdIFsg YGAtbWBgIDp2YXI6YG1hdGNoYCBdIFsgOnZhcjpgb2xkYFwgYGA9YGA6dmFyOmBuZXdgIC4u LiBdIFsgOnZhcjpgZmlyc3RgIFsgOnZhcjpgbGFzdGAgXSBdCgpgYGZjIC1sYGAgWyBgYC1M SWBgIF0gWyBgYC1ucmRmRWlEYGAgXSBbIGBgLXRgYCA6dmFyOmB0aW1lZm10YCBdIFsgYGAt bWBgIDp2YXI6YG1hdGNoYCBdCgogICAgICBbIDp2YXI6YG9sZGBcIGBgPWBgOnZhcjpgbmV3 YCAuLi4gXSBbIDp2YXI6YGZpcnN0YCBbIDp2YXI6YGxhc3RgIF0gXQoKYGBmYyAtcGBgIFsg YGAtYWBgIF0gWyA6dmFyOmBmaWxlbmFtZWAgWyA6dmFyOmBoaXN0c2l6ZWAgWyA6dmFyOmBz YXZlaGlzdHNpemVgIF0gXSBdCgpgYGZjYGAgYGAtUGBgCgpgYGZjYGAgYGAtQVJXSWBgIFsg OnZhcjpgZmlsZW5hbWVgIF0KICAgIAogICAgVGhlIGBgZmNgYCBjb21tYW5kIGNvbnRyb2xz IHRoZSBpbnRlcmFjdGl2ZSBoaXN0b3J5IG1lY2hhbmlzbS4gIE5vdGUKICAgIHRoYXQgcmVh ZGluZyBhbmQgd3JpdGluZyBvZiBoaXN0b3J5IG9wdGlvbnMgaXMgb25seSBwZXJmb3JtZWQg aWYgdGhlCiAgICBzaGVsbCBpcyBpbnRlcmFjdGl2ZS4gIFVzdWFsbHkgdGhpcyBpcyBkZXRl Y3RlZCBhdXRvbWF0aWNhbGx5LCBidXQKICAgIGl0IGNhbiBiZSBmb3JjZWQgYnkgc2V0dGlu ZyB0aGUgYGBpbnRlcmFjdGl2ZWBgIG9wdGlvbiB3aGVuIHN0YXJ0aW5nIHRoZQogICAgc2hl bGwuCiAgICAKICAgIFRoZSBmaXJzdCB0d28gZm9ybXMgb2YgdGhpcyBjb21tYW5kIHNlbGVj dCBhIHJhbmdlIG9mIGV2ZW50cyBmcm9tCiAgICA6dmFyOmBmaXJzdGAgdG8gOnZhcjpgbGFz dGAgZnJvbSB0aGUgaGlzdG9yeSBsaXN0LiAgVGhlIGFyZ3VtZW50cyA6dmFyOmBmaXJzdGAK ICAgIGFuZCA6dmFyOmBsYXN0YCBtYXkgYmUgc3BlY2lmaWVkIGFzIGEgbnVtYmVyIG9yIGFz IGEgc3RyaW5nLiAgQSBuZWdhdGl2ZQogICAgbnVtYmVyIGlzIHVzZWQgYXMgYW4gb2Zmc2V0 IHRvIHRoZSBjdXJyZW50IGhpc3RvcnkgZXZlbnQgbnVtYmVyLiAgQSBzdHJpbmcKICAgIHNw ZWNpZmllcyB0aGUgbW9zdCByZWNlbnQgZXZlbnQgYmVnaW5uaW5nIHdpdGggdGhlIGdpdmVu IHN0cmluZy4gIEFsbAogICAgc3Vic3RpdHV0aW9ucyA6dmFyOmBvbGRgXCBgYD1gYDp2YXI6 YG5ld2AsIGlmIGFueSwgYXJlIHRoZW4gcGVyZm9ybWVkIG9uIHRoZQogICAgdGV4dCBvZiB0 aGUgZXZlbnRzLgogICAgCiAgICBUaGUgcmFuZ2Ugb2YgZXZlbnRzIHNlbGVjdGVkIGJ5IG51 bWJlcnMgY2FuIGJlIG5hcnJvd2VkIGZ1cnRoZXIgYnkgdGhlCiAgICBmb2xsb3dpbmcgZmxh Z3MuCiAgICAKICAgIGBgLUlgYAogICAgICAgIHJlc3RyaWN0cyB0byBvbmx5IGludGVybmFs IGV2ZW50cyAobm90IGZyb20gYGAkSElTVEZJTEVgYCkKICAgIAogICAgYGAtTGBgCiAgICAg ICAgcmVzdHJpY3RzIHRvIG9ubHkgbG9jYWwgZXZlbnRzIChub3QgZnJvbSBvdGhlciBzaGVs bHMsIHNlZQogICAgICAgIGBgU0hBUkVfSElTVE9SWWBgIGluCiAgICAgICAgOm1hbnBhZ2U6 YHpzaG9wdGlvbnNgIC0tIG5vdGUgdGhhdCBgYCRISVNURklMRWBgIGlzCiAgICAgICAgY29u c2lkZXJlZCBsb2NhbCB3aGVuIHJlYWQgYXQgc3RhcnR1cCkKICAgIAogICAgYGAtbWBgCiAg ICAgICAgdGFrZXMgdGhlIGZpcnN0IGFyZ3VtZW50IGFzIGEgcGF0dGVybiAod2hpY2ggc2hv dWxkIGJlCiAgICAgICAgcXVvdGVkKSBhbmQgb25seSB0aGUgaGlzdG9yeSBldmVudHMgbWF0 Y2hpbmcgdGhpcyBwYXR0ZXJuIGFyZSBjb25zaWRlcmVkCiAgICAKICAgIAogICAgCiAgICBJ ZiA6dmFyOmBmaXJzdGAgaXMgbm90IHNwZWNpZmllZCwgaXQgd2lsbCBiZSBzZXQgdG8gLTEg KHRoZSBtb3N0IHJlY2VudAogICAgZXZlbnQpLCBvciB0byAtMTYgaWYgdGhlIGBgLWxgYCBm bGFnIGlzIGdpdmVuLgogICAgSWYgOnZhcjpgbGFzdGAgaXMgbm90IHNwZWNpZmllZCwgaXQg d2lsbCBiZSBzZXQgdG8gOnZhcjpgZmlyc3RgLAogICAgb3IgdG8gLTEgaWYgdGhlIGBgLWxg YCBmbGFnIGlzIGdpdmVuLgogICAgSG93ZXZlciwgaWYgdGhlIGN1cnJlbnQgZXZlbnQgaGFz IGFkZGVkIGVudHJpZXMgdG8gdGhlIGhpc3Rvcnkgd2l0aAogICAgYGBwcmludCAtc2BgIG9y IGBgZmMgLVJgYCwgdGhlbiB0aGUgZGVmYXVsdCA6dmFyOmBsYXN0YCBmb3IgYGAtbGBgCiAg ICBpbmNsdWRlcyBhbGwgbmV3IGhpc3RvcnkgZW50cmllcyBzaW5jZSB0aGUgY3VycmVudCBl dmVudCBiZWdhbi4KICAgIAogICAgV2hlbiB0aGUgYGAtbGBgIGZsYWcgaXMgZ2l2ZW4sIHRo ZSByZXN1bHRpbmcgZXZlbnRzIGFyZSBsaXN0ZWQgb24KICAgIHN0YW5kYXJkIG91dHB1dC4g IE90aGVyd2lzZSB0aGUgZWRpdG9yIHByb2dyYW0gc3BlY2lmaWVkIGJ5IGBgLWVgYCA6dmFy OmBlbmFtZWAKICAgIGlzIGludm9rZWQgb24gYSBmaWxlIGNvbnRhaW5pbmcgdGhlc2UgaGlz dG9yeSBldmVudHMuICBJZiBgYC1lYGAgaXMgbm90IGdpdmVuLCB0aGUKICAgIHZhbHVlIG9m IHRoZSBwYXJhbWV0ZXIgYGBGQ0VESVRgYCBpcyB1c2VkOyBpZiB0aGF0IGlzIG5vdCBzZXQg dGhlIHZhbHVlIG9mCiAgICB0aGUgcGFyYW1ldGVyIGBgRURJVE9SYGAgaXMgdXNlZDsgaWYg dGhhdCBpcyBub3Qgc2V0IGEgYnVpbHRpbiBkZWZhdWx0LAogICAgdXN1YWxseSBgYHZpYGAg aXMgdXNlZC4gIElmIDp2YXI6YGVuYW1lYCBpcyBgYC1gYCwgbm8gZWRpdG9yIGlzIGludm9r ZWQuCiAgICBXaGVuIGVkaXRpbmcgaXMgY29tcGxldGUsIHRoZSBlZGl0ZWQgY29tbWFuZCBp cyBleGVjdXRlZC4KICAgIAogICAgVGhlIGZsYWcgYGAtc2BgIGlzIGVxdWl2YWxlbnQgdG8g YGAtZSAtYGAuCiAgICBUaGUgZmxhZyBgYC1yYGAgcmV2ZXJzZXMgdGhlIG9yZGVyIG9mIHRo ZSBldmVudHMgYW5kIHRoZQogICAgZmxhZyBgYC1uYGAgc3VwcHJlc3NlcyBldmVudCBudW1i ZXJzIHdoZW4gbGlzdGluZy4KICAgIAogICAgQWxzbyB3aGVuIGxpc3RpbmcsCiAgICAKICAg IGBgLWRgYAogICAgICAgIHByaW50cyB0aW1lc3RhbXBzIGZvciBlYWNoIGV2ZW50CiAgICAK ICAgIGBgLWZgYAogICAgICAgIHByaW50cyBmdWxsIHRpbWUtZGF0ZSBzdGFtcHMgaW4gdGhl IFVTCiAgICAgICAgOnZhcjpgTU1gXCBgYC9gYDp2YXI6YEREYFwgYGAvYGA6dmFyOmBZWWAg OnZhcjpgaGhgXCBgYDpgYDp2YXI6YG1tYCBmb3JtYXQKICAgIAogICAgYGAtRWBgCiAgICAg ICAgcHJpbnRzIGZ1bGwgdGltZS1kYXRlIHN0YW1wcyBpbiB0aGUgRXVyb3BlYW4KICAgICAg ICA6dmFyOmBkZGBcIGBgLmBgOnZhcjpgbW1gXCBgYC5gYDp2YXI6YHl5eXlgIDp2YXI6YGho YFwgYGA6YGA6dmFyOmBtbWAgZm9ybWF0CiAgICAKICAgIGBgLWlgYAogICAgICAgIHByaW50 cyBmdWxsIHRpbWUtZGF0ZSBzdGFtcHMgaW4gSVNPODYwMQogICAgICAgIDp2YXI6YHl5eXlg XCBgYC1gYDp2YXI6YG1tYFwgYGAtYGA6dmFyOmBkZGAgOnZhcjpgaGhgXCBgYDpgYDp2YXI6 YG1tYCBmb3JtYXQKICAgIAogICAgYGAtdGBgIDp2YXI6YGZtdGAKICAgICAgICBwcmludHMg dGltZSBhbmQgZGF0ZSBzdGFtcHMgaW4gdGhlIGdpdmVuIGZvcm1hdDsKICAgICAgICA6dmFy OmBmbXRgIGlzIGZvcm1hdHRlZCB3aXRoIHRoZSBzdHJmdGltZSBmdW5jdGlvbiB3aXRoIHRo ZSB6c2ggZXh0ZW5zaW9ucwogICAgICAgIGRlc2NyaWJlZCBmb3IgdGhlIGBgJUR7YGA6dmFy OmBzdHJpbmdgXCBgYH1gYCBwcm9tcHQgZm9ybWF0IGluCiAgICAgICAgOnJlZjpgU2ltcGxl IFByb21wdCBFc2NhcGVzYC4KICAgICAgICBUaGUgcmVzdWx0aW5nIGZvcm1hdHRlZCBzdHJp bmcgbXVzdCBiZQogICAgICAgIG5vIG1vcmUgdGhhbiAyNTYgY2hhcmFjdGVycyBvciB3aWxs IG5vdCBiZSBwcmludGVkCiAgICAgICAgCiAgICAKICAgIGBgLURgYAogICAgICAgIHByaW50 cyBlbGFwc2VkIHRpbWVzOyBtYXkgYmUgY29tYmluZWQgd2l0aCBvbmUgb2YgdGhlCiAgICAg ICAgb3B0aW9ucyBhYm92ZQogICAgCiAgICAKICAgIAogICAgLi4gaW5kZXg6OiBzaW5nbGU6 IGhpc3RvcnksIHN0YWNrOyBDb21tYW5kCiAgICAKICAgIAogICAgLi4gaW5kZXg6OiBzaW5n bGU6IHN0YWNrLCBoaXN0b3J5OyBDb21tYW5kCiAgICAKICAgIAogICAgYGBmYyAtcGBgIHB1 c2hlcyB0aGUgY3VycmVudCBoaXN0b3J5IGxpc3Qgb250byBhIHN0YWNrIGFuZCBzd2l0Y2hl cyB0byBhCiAgICBuZXcgaGlzdG9yeSBsaXN0LiAgSWYgdGhlIGBgLWFgYCBvcHRpb24gaXMg YWxzbyBzcGVjaWZpZWQsIHRoaXMgaGlzdG9yeSBsaXN0CiAgICB3aWxsIGJlIGF1dG9tYXRp Y2FsbHkgcG9wcGVkIHdoZW4gdGhlIGN1cnJlbnQgZnVuY3Rpb24gc2NvcGUgaXMgZXhpdGVk LCB3aGljaAogICAgaXMgYSBtdWNoIGJldHRlciBzb2x1dGlvbiB0aGFuIGNyZWF0aW5nIGEg dHJhcCBmdW5jdGlvbiB0byBjYWxsIGBgZmMgLVBgYAogICAgbWFudWFsbHkuICBJZiBubyBh cmd1bWVudHMgYXJlIHNwZWNpZmllZCwgdGhlIGhpc3RvcnkgbGlzdCBpcyBsZWZ0IGVtcHR5 LAogICAgYGAkSElTVEZJTEVgYCBpcyB1bnNldCwgYW5kIGBgJEhJU1RTSVpFYGAgJiBgYCRT QVZFSElTVGBgIGFyZSBzZXQgdG8gdGhlaXIKICAgIGRlZmF1bHQgdmFsdWVzLiAgSWYgb25l IGFyZ3VtZW50IGlzIGdpdmVuLCBgYCRISVNURklMRWBgIGlzIHNldCB0byB0aGF0CiAgICBm aWxlbmFtZSwgYGAkSElTVFNJWkVgYCAmIGBgJFNBVkVISVNUYGAgYXJlIGxlZnQgdW5jaGFu Z2VkLCBhbmQgdGhlIGhpc3RvcnkKICAgIGZpbGUgaXMgcmVhZCBpbiAoaWYgaXQgZXhpc3Rz KSB0byBpbml0aWFsaXplIHRoZSBuZXcgbGlzdC4gIElmIGEgc2Vjb25kCiAgICBhcmd1bWVu dCBpcyBzcGVjaWZpZWQsIGBgJEhJU1RTSVpFYGAgJiBgYCRTQVZFSElTVGBgIGFyZSBpbnN0 ZWFkIHNldCB0byB0aGUKICAgIHNpbmdsZSBzcGVjaWZpZWQgbnVtZXJpYyB2YWx1ZS4gIEZp bmFsbHksIGlmIGEgdGhpcmQgYXJndW1lbnQgaXMgc3BlY2lmaWVkLAogICAgYGAkU0FWRUhJ U1RgYCBpcyBzZXQgdG8gYSBzZXBhcmF0ZSB2YWx1ZSBmcm9tIGBgJEhJU1RTSVpFYGAuICBZ b3UgYXJlIGZyZWUgdG8KICAgIGNoYW5nZSB0aGVzZSBlbnZpcm9ubWVudCB2YWx1ZXMgZm9y IHRoZSBuZXcgaGlzdG9yeSBsaXN0IGhvd2V2ZXIgeW91IGRlc2lyZQogICAgaW4gb3JkZXIg dG8gbWFuaXB1bGF0ZSB0aGUgbmV3IGhpc3RvcnkgbGlzdC4KICAgIAogICAgYGBmYyAtUGBg IHBvcHMgdGhlIGhpc3RvcnkgbGlzdCBiYWNrIHRvIGFuIG9sZGVyIGxpc3Qgc2F2ZWQgYnkg YGBmYyAtcGBgLgogICAgVGhlIGN1cnJlbnQgbGlzdCBpcyBzYXZlZCB0byBpdHMgYGAkSElT VEZJTEVgYCBiZWZvcmUgaXQgaXMgZGVzdHJveWVkCiAgICAoYXNzdW1pbmcgdGhhdCBgYCRI SVNURklMRWBgIGFuZCBgYCRTQVZFSElTVGBgIGFyZSBzZXQgYXBwcm9wcmlhdGVseSwgb2YK ICAgIGNvdXJzZSkuICBUaGUgdmFsdWVzIG9mIGBgJEhJU1RGSUxFYGAsIGBgJEhJU1RTSVpF YGAsIGFuZCBgYCRTQVZFSElTVGBgIGFyZQogICAgcmVzdG9yZWQgdG8gdGhlIHZhbHVlcyB0 aGV5IGhhZCB3aGVuIGBgZmMgLXBgYCB3YXMgY2FsbGVkLiAgTm90ZSB0aGF0IHRoaXMKICAg IHJlc3RvcmF0aW9uIGNhbiBjb25mbGljdCB3aXRoIG1ha2luZyB0aGVzZSB2YXJpYWJsZXMg ImxvY2FsIiwgc28geW91ciBiZXN0CiAgICBiZXQgaXMgdG8gYXZvaWQgbG9jYWwgZGVjbGFy YXRpb25zIGZvciB0aGVzZSB2YXJpYWJsZXMgaW4gZnVuY3Rpb25zIHRoYXQgdXNlCiAgICBg YGZjIC1wYGAuICBUaGUgb25lIG90aGVyIGd1YXJhbnRlZWQtc2FmZSBjb21iaW5hdGlvbiBp cyBkZWNsYXJpbmcgdGhlc2UKICAgIHZhcmlhYmxlcyB0byBiZSBsb2NhbCBhdCB0aGUgdG9w IG9mIHlvdXIgZnVuY3Rpb24gYW5kIHVzaW5nIHRoZSBhdXRvbWF0aWMKICAgIG9wdGlvbiAo YGAtYWBgKSB3aXRoIGBgZmMgLXBgYC4gIEZpbmFsbHksIG5vdGUgdGhhdCBpdCBpcyBsZWdh bCB0byBtYW51YWxseQogICAgcG9wIGEgcHVzaCBtYXJrZWQgZm9yIGF1dG9tYXRpYyBwb3Bw aW5nIGlmIHlvdSBuZWVkIHRvIGRvIHNvIGJlZm9yZSB0aGUKICAgIGZ1bmN0aW9uIGV4aXRz LgogICAgCiAgICAuLiBpbmRleDo6IHNpbmdsZTogaGlzdG9yeSwgZmlsZTsgQ29tbWFuZAog ICAgCiAgICAKICAgIC4uIGluZGV4Ojogc2luZ2xlOiBmaWxlLCBoaXN0b3J5OyBDb21tYW5k CiAgICAKICAgIAogICAgYGBmYyAtUmBgIHJlYWRzIHRoZSBoaXN0b3J5IGZyb20gdGhlIGdp dmVuIGZpbGUsCiAgICBgYGZjIC1XYGAgd3JpdGVzIHRoZSBoaXN0b3J5IG91dCB0byB0aGUg Z2l2ZW4gZmlsZSwKICAgIGFuZCBgYGZjIC1BYGAgYXBwZW5kcyB0aGUgaGlzdG9yeSBvdXQg dG8gdGhlIGdpdmVuIGZpbGUuCiAgICBJZiBubyBmaWxlbmFtZSBpcyBzcGVjaWZpZWQsIHRo ZSBgYCRISVNURklMRWBgIGlzIGFzc3VtZWQuCiAgICBJZiB0aGUgYGAtSWBgIG9wdGlvbiBp cyBhZGRlZCB0byBgYC1SYGAsIG9ubHkgdGhvc2UgZXZlbnRzIHRoYXQgYXJlCiAgICBub3Qg YWxyZWFkeSBjb250YWluZWQgd2l0aGluIHRoZSBpbnRlcm5hbCBoaXN0b3J5IGxpc3QgYXJl IGFkZGVkLgogICAgSWYgdGhlIGBgLUlgYCBvcHRpb24gaXMgYWRkZWQgdG8gYGAtQWBgIG9y IGBgLVdgYCwgb25seSB0aG9zZQogICAgZXZlbnRzIHRoYXQgYXJlIG5ldyBzaW5jZSBsYXN0 IGluY3JlbWVudGFsIGFwcGVuZC93cml0ZSB0bwogICAgdGhlIGhpc3RvcnkgZmlsZSBhcmUg YXBwZW5kZWQvd3JpdHRlbi4KICAgIEluIGFueSBjYXNlLCB0aGUgY3JlYXRlZCBmaWxlIHdp bGwgaGF2ZSBubyBtb3JlIHRoYW4gYGAkU0FWRUhJU1RgYAogICAgZW50cmllcy4KICAgIAoK Li4gaW5kZXg6OiBzaW5nbGU6IGZnOyBGdW5jdGlvbgoKLi4gaW5kZXg6OiBzaW5nbGU6IGpv YnMsIGZvcmVncm91bmRpbmc7IENvbW1hbmQKCi4uIGluZGV4Ojogc2luZ2xlOiBqb2JzLCBy ZXN1bWluZzsgQ29tbWFuZAoKYGBmZ2BgIFsgOnZhcjpgam9iYCAuLi4gXQoKOnZhcjpgam9i YCAuLi4KICAgIAogICAgQnJpbmcgZWFjaCBzcGVjaWZpZWQgOnZhcjpgam9iYCBpbiB0dXJu IHRvIHRoZSBmb3JlZ3JvdW5kLgogICAgSWYgbm8gOnZhcjpgam9iYCBpcyBzcGVjaWZpZWQs IHJlc3VtZSB0aGUgY3VycmVudCBqb2IuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiBmbG9h dDsgRnVuY3Rpb24KCmBgZmxvYXRgYCBbIHtgYCt8LX1IZ2hscHJ0dXhgYCBdIFsge2BgK3wt fUVGTFJaYGAgWyA6dmFyOmBuYCBdIF0gWyA6dmFyOmBuYW1lYFxbYGA9YGA6dmFyOmB2YWx1 ZWBdIC4uLiBdCiAgICAKICAgIEVxdWl2YWxlbnQgdG8gYGB0eXBlc2V0IC1FYGAsIGV4Y2Vw dCB0aGF0IG9wdGlvbnMgaXJyZWxldmFudCB0byBmbG9hdGluZwogICAgcG9pbnQgbnVtYmVy cyBhcmUgbm90IHBlcm1pdHRlZC4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6IGZ1bmN0aW9u czsgRnVuY3Rpb24KCmBgZnVuY3Rpb25zYGAgWyB7YGArfC19VWttdFR1V3pgYCBdIFsgYGAt eGBgIDp2YXI6YG51bWAgXSBbIDp2YXI6YG5hbWVgIC4uLiBdCgpgYGZ1bmN0aW9ucyAtY2Bg IDp2YXI6YG9sZGZuYCA6dmFyOmBuZXdmbmAKCmBgZnVuY3Rpb25zIC1NYGAgW2BgLXNgYF0g OnZhcjpgbWF0aGZuYCBbIDp2YXI6YG1pbmAgWyA6dmFyOmBtYXhgIFsgOnZhcjpgc2hlbGxm bmAgXSBdIF0KCmBgZnVuY3Rpb25zIC1NYGAgWyBgYC1tYGAgOnZhcjpgcGF0dGVybmAgLi4u IF0KCmBgZnVuY3Rpb25zICtNYGAgWyBgYC1tYGAgXSA6dmFyOmBtYXRoZm5gIC4uLgogICAg CiAgICBFcXVpdmFsZW50IHRvIGBgdHlwZXNldCAtZmBgLCB3aXRoIHRoZSBleGNlcHRpb24g b2YgdGhlIGBgLWNgYCwgYGAteGBgLAogICAgYGAtTWBgIGFuZCBgYC1XYGAgb3B0aW9ucy4g IEZvciBgYGZ1bmN0aW9ucyAtdWBgIGFuZCBgYGZ1bmN0aW9ucyAtVWBgLAogICAgc2VlIGBg YXV0b2xvYWRgYCwgd2hpY2ggcHJvdmlkZXMgYWRkaXRpb25hbCBvcHRpb25zLiAgRm9yIGBg ZnVuY3Rpb25zIC10YGAKICAgIGFuZCBgYGZ1bmN0aW9ucyAtVGBgLCBzZWUgYGB0eXBlc2V0 IC1mYGAuCiAgICAKICAgIFRoZSBgYC14YGAgb3B0aW9uIGluZGljYXRlcyB0aGF0IGFueSBm dW5jdGlvbnMgb3V0cHV0IHdpbGwgaGF2ZQogICAgZWFjaCBsZWFkaW5nIHRhYiBmb3IgaW5k ZW50YXRpb24sIGFkZGVkIGJ5IHRoZSBzaGVsbCB0byBzaG93IHN5bnRhY3RpYwogICAgc3Ry dWN0dXJlLCBleHBhbmRlZCB0byB0aGUgZ2l2ZW4gbnVtYmVyIDp2YXI6YG51bWAgb2Ygc3Bh Y2VzLiAgOnZhcjpgbnVtYAogICAgY2FuIGFsc28gYmUgMCB0byBzdXBwcmVzcyBhbGwgaW5k ZW50YXRpb24uCiAgICAKICAgIFRoZSBgYC1XYGAgb3B0aW9uIHR1cm5zIG9uIHRoZSBvcHRp b24gYGBXQVJOX05FU1RFRF9WQVJgYCBmb3IgdGhlIG5hbWVkCiAgICBmdW5jdGlvbiBvciBm dW5jdGlvbnMgb25seS4gIFRoZSBvcHRpb24gaXMgdHVybmVkIG9mZiBhdCB0aGUgc3RhcnQg b2YKICAgIG5lc3RlZCBmdW5jdGlvbnMgKGFwYXJ0IGZyb20gYW5vbnltb3VzIGZ1bmN0aW9u cykgdW5sZXNzIHRoZSBjYWxsZWQKICAgIGZ1bmN0aW9uIGFsc28gaGFzIHRoZSBgYC1XYGAg YXR0cmlidXRlLgogICAgCiAgICBUaGUgYGAtY2BgIG9wdGlvbiBjYXVzZXMgOnZhcjpgb2xk Zm5gIHRvIGJlIGNvcGllZCB0byA6dmFyOmBuZXdmbmAuICBUaGUKICAgIGNvcHkgaXMgZWZm aWNpZW50bHkgaGFuZGxlZCBpbnRlcm5hbGx5IGJ5IHJlZmVyZW5jZSBjb3VudGluZy4gIElm CiAgICA6dmFyOmBvbGRmbmAgd2FzIG1hcmtlZCBmb3IgYXV0b2xvYWQgaXQgaXMgZmlyc3Qg bG9hZGVkIGFuZCBpZiB0aGlzCiAgICBmYWlscyB0aGUgY29weSBmYWlscy4gIEVpdGhlciBm dW5jdGlvbiBtYXkgc3Vic2VxdWVudGx5IGJlIHJlZGVmaW5lZAogICAgd2l0aG91dCBhZmZl Y3RpbmcgdGhlIG90aGVyLiAgQSB0eXBpY2FsIGlkaW9tIGlzIHRoYXQgOnZhcjpgb2xkZm5g IGlzIHRoZQogICAgbmFtZSBvZiBhIGxpYnJhcnkgc2hlbGwgZnVuY3Rpb24gd2hpY2ggaXMg dGhlbiByZWRlZmluZWQgdG8gY2FsbAogICAgYGBuZXdmbmBgLCB0aGVyZWJ5IGluc3RhbGxp bmcgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBmdW5jdGlvbi4KICAgIAogICAgOmVtcGhh c2lzOmBUaGUgYFwgYGAtTWBgOmVtcGhhc2lzOmAgYW5kIGBcIGBgK01gYDplbXBoYXNpczpg IGZsYWdzYAogICAgLi4gaW5kZXg6OiBzaW5nbGU6IGRlZmluaW5nIG1hdGhlbWF0aWNhbCBm dW5jdGlvbnM7IENvbW1hbmQKICAgIAogICAgCiAgICAuLiBpbmRleDo6IHNpbmdsZTogZnVu Y3Rpb25zLCBkZWZpbmluZyBtYXRoZW1hdGljYWw7IENvbW1hbmQKICAgIAogICAgCiAgICAK ICAgIFVzZSBvZiB0aGUgYGAtTWBgIG9wdGlvbiBtYXkgbm90IGJlIGNvbWJpbmVkIHdpdGgg YW55IG9mIHRoZSBvcHRpb25zCiAgICBoYW5kbGVkIGJ5IGBgdHlwZXNldCAtZmBgLgogICAg CiAgICBgYGZ1bmN0aW9ucyAtTWBgIDp2YXI6YG1hdGhmbmAgZGVmaW5lcyA6dmFyOmBtYXRo Zm5gIGFzIHRoZSBuYW1lIG9mCiAgICBhIG1hdGhlbWF0aWNhbCBmdW5jdGlvbiByZWNvZ25p c2VkIGluIGFsbCBmb3JtcyBvZiBhcml0aG1ldGljYWwgZXhwcmVzc2lvbnM7CiAgICBzZWUg OnJlZjpgQXJpdGhtZXRpYyBFdmFsdWF0aW9uYC4KICAgIEJ5IGRlZmF1bHQgOnZhcjpgbWF0 aGZuYCBtYXkgdGFrZQogICAgYW55IG51bWJlciBvZiBjb21tYS1zZXBhcmF0ZWQgYXJndW1l bnRzLiAgSWYgOnZhcjpgbWluYCBpcyBnaXZlbiwKICAgIGl0IG11c3QgaGF2ZSBleGFjdGx5 IDp2YXI6YG1pbmAgYXJnczsgaWYgOnZhcjpgbWluYCBhbmQgOnZhcjpgbWF4YCBhcmUKICAg IGJvdGggZ2l2ZW4sIGl0IG11c3QgaGF2ZSBhdCBsZWFzdCA6dmFyOmBtaW5gIGFuZCBhdCBt b3N0IDp2YXI6YG1heGAKICAgIGFyZ3MuICA6dmFyOmBtYXhgIG1heSBiZSAtMSB0byBpbmRp Y2F0ZSB0aGF0IHRoZXJlIGlzIG5vIHVwcGVyIGxpbWl0LgogICAgCiAgICBCeSBkZWZhdWx0 IHRoZSBmdW5jdGlvbiBpcyBpbXBsZW1lbnRlZCBieSBhIHNoZWxsIGZ1bmN0aW9uIG9mIHRo ZSBzYW1lCiAgICBuYW1lOyBpZiA6dmFyOmBzaGVsbGZuYCBpcyBzcGVjaWZpZWQgaXQgZ2l2 ZXMgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcKICAgIHNoZWxsIGZ1bmN0aW9uIHdo aWxlIDp2YXI6YG1hdGhmbmAgcmVtYWlucyB0aGUgbmFtZSB1c2VkIGluIGFyaXRobWV0aWNh bAogICAgZXhwcmVzc2lvbnMuICBUaGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gaW4gYGAkMGBg IGlzIDp2YXI6YG1hdGhmbmAgKG5vdAogICAgOnZhcjpgc2hlbGxmbmAgYXMgd291bGQgdXN1 YWxseSBiZSB0aGUgY2FzZSksIHByb3ZpZGVkIHRoZSBvcHRpb24KICAgIGBgRlVOQ1RJT05f QVJHWkVST2BgIGlzIGluIGVmZmVjdC4gIFRoZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgaW4g dGhlIHNoZWxsCiAgICBmdW5jdGlvbiBjb3JyZXNwb25kIHRvIHRoZSBhcmd1bWVudHMgb2Yg dGhlIG1hdGhlbWF0aWNhbCBmdW5jdGlvbiBjYWxsLgogICAgCiAgICBUaGUgcmVzdWx0IG9m IHRoZSBsYXN0IGFyaXRobWV0aWNhbCBleHByZXNzaW9uIGV2YWx1YXRlZCBpbnNpZGUgdGhl IHNoZWxsCiAgICBmdW5jdGlvbiBnaXZlcyB0aGUgcmVzdWx0IG9mIHRoZSBtYXRoZW1hdGlj YWwgZnVuY3Rpb24uICBUaGlzIGlzIG5vdCBsaW1pdGVkIHRvCiAgICBhcml0aG1ldGljIHN1 YnN0aXR1dGlvbnMgb2YgdGhlIGZvcm0gYGAkKChgYDp2YXI6YC4uLmBcIGBgKSlgYCwKICAg IGJ1dCBhbHNvIGluY2x1ZGVzIGFyaXRobWV0aWNhbCBleHByZXNzaW9ucyBldmFsdWF0ZWQg aW4gYW55IG90aGVyIHdheSwgaW5jbHVkaW5nCiAgICBieSB0aGUgYGBsZXRgYCBidWlsdGlu LAogICAgYnkgYGAoKGBgOnZhcjpgLi4uYFwgYGApKWBgIHN0YXRlbWVudHMsCiAgICBhbmQg ZXZlbgogICAgYnkgdGhlIGBgcmV0dXJuYGAgYnVpbHRpbgogICAgYW5kCiAgICBieSBhcnJh eSBzdWJzY3JpcHRzLgogICAgVGhlcmVmb3JlLCBjYXJlIG11c3QgYmUgdGFrZW4gbm90IHRv IHVzZSBzeW50YWN0aWNhbCBjb25zdHJ1Y3RzIHRoYXQgcGVyZm9ybQogICAgYXJpdGhtZXRp YyBldmFsdWF0aW9uIGFmdGVyIGV2YWx1YXRpbmcgd2hhdCBpcyB0byBiZSB0aGUgcmVzdWx0 IG9mIHRoZSBmdW5jdGlvbi4KICAgIEZvciBleGFtcGxlOgogICAgCiAgICAuLiBpbmRleDo6 IHNpbmdsZTogem1hdGhfY3ViZTsgRnVuY3Rpb24KICAgIAogICAgCiAgICAuLiBpbmRleDo6 IHNpbmdsZTogY3ViZTsgRnVuY3Rpb24KICAgIAogICAgCiAgICAuLiBwYXJzZWQtbGl0ZXJh bDo6CiAgICAgICA6Y2xhc3M6IGV4YW1wbGUKICAgIAoKICAgICAgICAjIFdST05HCiAgICAg ICAgem1hdGhfY3ViZSgpIHsKICAgICAgICAgICgoICQxICogJDEgKiAkMSApKQogICAgICAg ICAgcmV0dXJuIDAKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb25zIC1NIGN1YmUgMSAxIHpt YXRoX2N1YmUKICAgICAgICBwcmludCAkKCggY3ViZSgzKSApKQogICAgCiAgICAKICAgIFRo aXMgd2lsbCBwcmludCBgYDBgYCBiZWNhdXNlIG9mIHRoZSBgYHJldHVybmBgLgogICAgCiAg ICBDb21tZW50aW5nIHRoZSBgYHJldHVybmBgIG91dCB3b3VsZCBsZWFkIHRvIGEgZGlmZmVy ZW50IHByb2JsZW06IHRoZQogICAgYGAoKGBgOnZhcjpgLi4uYFwgYGApKWBgIHN0YXRlbWVu dCB3b3VsZCBiZWNvbWUKICAgIHRoZSBsYXN0IHN0YXRlbWVudCBpbiB0aGUgZnVuY3Rpb24s IHNvIHRoZSA6ZW1waGFzaXM6YHJldHVybiBzdGF0dXNgIChgYCQ/YGApIG9mIHRoZQogICAg ZnVuY3Rpb24gd291bGQgYmUgbm9uLXplcm8gKGluZGljYXRpbmcgZmFpbHVyZSkgd2hlbmV2 ZXIgdGhlIDplbXBoYXNpczpgYXJpdGhtZXRpYwogICAgcmVzdWx0YCBvZiB0aGUgZnVuY3Rp b24gd291bGQgaGFwcGVuIHRvIGJlIHplcm8gKG51bWVyaWNhbGx5KToKICAgIAogICAgLi4g cGFyc2VkLWxpdGVyYWw6OgogICAgICAgOmNsYXNzOiBleGFtcGxlCiAgICAKCiAgICAgICAg IyBXUk9ORwogICAgICAgIHptYXRoX2N1YmUoKSB7CiAgICAgICAgICAoKCAkMSAqICQxICog JDEgKSkKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb25zIC1NIGN1YmUgMSAxIHptYXRoX2N1 YmUKICAgICAgICBwcmludCAkKCggY3ViZSgwKSApKQogICAgCiAgICAKICAgIEluc3RlYWQs IHRoZSBgYHRydWVgYCBidWlsdGluIGNhbiBiZSB1c2VkOgogICAgCiAgICAuLiBwYXJzZWQt bGl0ZXJhbDo6CiAgICAgICA6Y2xhc3M6IGV4YW1wbGUKICAgIAoKICAgICAgICAjIFJJR0hU CiAgICAgICAgem1hdGhfY3ViZSgpIHsKICAgICAgICAgICgoICQxICogJDEgKiAkMSApKQog ICAgICAgICAgdHJ1ZQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbnMgLU0gY3ViZSAxIDEg em1hdGhfY3ViZQogICAgICAgIHByaW50ICQoKCBjdWJlKDMpICkpCiAgICAKICAgIAogICAg SWYgdGhlIGFkZGl0aW9uYWwgb3B0aW9uIGBgLXNgYCBpcyBnaXZlbiB0byBgYGZ1bmN0aW9u cyAtTWBgLCB0aGUKICAgIGFyZ3VtZW50IHRvIHRoZSBmdW5jdGlvbiBpcyBhIHNpbmdsZSBz dHJpbmc6IGFueXRoaW5nIGJldHdlZW4gdGhlCiAgICBvcGVuaW5nIGFuZCBtYXRjaGluZyBj bG9zaW5nIHBhcmVudGhlc2lzIGlzIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gYXMgYQogICAg c2luZ2xlIGFyZ3VtZW50LCBldmVuIGlmIGl0IGluY2x1ZGVzIGNvbW1hcyBvciB3aGl0ZSBz cGFjZS4gIFRoZSBtaW5pbXVtCiAgICBhbmQgbWF4aW11bSBhcmd1bWVudCBzcGVjaWZpZXJz IG11c3QgdGhlcmVmb3JlIGJlIDEgaWYgZ2l2ZW4uICBBbiBlbXB0eQogICAgYXJndW1lbnQg bGlzdCBpcyBwYXNzZWQgYXMgYSB6ZXJvLWxlbmd0aCBzdHJpbmcuCiAgICBUaHVzLCB0aGUg Zm9sbG93aW5nIHN0cmluZyBmdW5jdGlvbiB0YWtlcyBhIHNpbmdsZSBhcmd1bWVudCwgaW5j bHVkaW5nCiAgICB0aGUgY29tbWFzLCBhbmQgcHJpbnRzIDExOgogICAgCiAgICAuLiBwYXJz ZWQtbGl0ZXJhbDo6CiAgICAgICA6Y2xhc3M6IGV4YW1wbGUKICAgIAoKICAgICAgICBzdHJp bmdmbigpIHsgKCggJCMxICkpOyB0cnVlIH0KICAgICAgICBmdW5jdGlvbnMgLU1zIHN0cmlu Z2ZuCiAgICAgICAgcHJpbnQgJCgoIHN0cmluZ2ZuKGZvbyxiYXIscm9kKSApKQogICAgCiAg ICAKICAgIGBgZnVuY3Rpb25zIC1NYGAgd2l0aCBubyBhcmd1bWVudHMgbGlzdHMgYWxsIHN1 Y2ggdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBpbgogICAgdGhlIHNhbWUgZm9ybSBhcyBhIGRl ZmluaXRpb24uICBXaXRoIHRoZSBhZGRpdGlvbmFsIG9wdGlvbiBgYC1tYGAgYW5kCiAgICBh IGxpc3Qgb2YgYXJndW1lbnRzLCBhbGwgZnVuY3Rpb25zIHdob3NlIDp2YXI6YG1hdGhmbmAg bWF0Y2hlcyBvbmUgb2YKICAgIHRoZSBwYXR0ZXJuIGFyZ3VtZW50cyBhcmUgbGlzdGVkLgog ICAgCiAgICBgYGZ1bmN0aW9uICtNYGAgcmVtb3ZlcyB0aGUgbGlzdCBvZiBtYXRoZW1hdGlj YWwgZnVuY3Rpb25zOyB3aXRoIHRoZQogICAgYWRkaXRpb25hbCBvcHRpb24gYGAtbWBgIHRo ZSBhcmd1bWVudHMgYXJlIHRyZWF0ZWQgYXMgcGF0dGVybnMgYW5kCiAgICBhbGwgZnVuY3Rp b25zIHdob3NlIDp2YXI6YG1hdGhmbmAgbWF0Y2hlcyB0aGUgcGF0dGVybiBhcmUgcmVtb3Zl ZC4gIE5vdGUKICAgIHRoYXQgdGhlIHNoZWxsIGZ1bmN0aW9uIGltcGxlbWVudGluZyB0aGUg YmVoYXZpb3VyIGlzIG5vdCByZW1vdmVkCiAgICAocmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0 cyBuYW1lIGNvaW5jaWRlcyB3aXRoIDp2YXI6YG1hdGhmbmApLgogICAgCgpgYGdldGNhcGBg CiAgICAKICAgIFNlZSA6cmVmOmBUaGUgenNoL2NhcCBNb2R1bGVgLgogICAgCgouLiBpbmRl eDo6IHNpbmdsZTogZ2V0bG47IEZ1bmN0aW9uCgouLiBpbmRleDo6IHNpbmdsZTogbGluZSwg cmVhZGluZzsgQ29tbWFuZAoKLi4gaW5kZXg6OiBzaW5nbGU6IHJlYWRpbmcgYSBsaW5lOyBD b21tYW5kCgpgYGdldGxuYGAgWyBgYC1BY2xuZUVgYCBdIDp2YXI6YG5hbWVgIC4uLgogICAg CiAgICBSZWFkIHRoZSB0b3AgdmFsdWUgZnJvbSB0aGUgYnVmZmVyIHN0YWNrIGFuZCBwdXQg aXQgaW4KICAgIHRoZSBzaGVsbCBwYXJhbWV0ZXIgOnZhcjpgbmFtZWAuICBFcXVpdmFsZW50 IHRvCiAgICBgYHJlYWQgLXpyYGAuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiBnZXRvcHRz OyBGdW5jdGlvbgoKLi4gaW5kZXg6OiBzaW5nbGU6IG9wdGlvbnMsIHByb2Nlc3Npbmc7IENv bW1hbmQKCmBgZ2V0b3B0c2BgIFsgYGAtcGBgIF0gOnZhcjpgb3B0c3RyaW5nYCA6dmFyOmBu YW1lYCBbIDp2YXI6YGFyZ2AgLi4uIF0KICAgIAogICAgQ2hlY2tzIHRoZSA6dmFyOmBhcmdg XHMgZm9yIGxlZ2FsIG9wdGlvbnMuICBJZiB0aGUgOnZhcjpgYXJnYFxzIGFyZSBvbWl0dGVk LAogICAgdGhlIHBvc2l0aW9uYWwgcGFyYW1ldGVycyBhcmUgdXNlZC4gIEEgdmFsaWQgb3B0 aW9uIGFyZ3VtZW50CiAgICBiZWdpbnMgd2l0aCBhIGBgK2BgIG9yIGEgYGAtYGAuICBBbiBh cmd1bWVudCBub3QgYmVnaW5uaW5nIHdpdGgKICAgIGEgYGArYGAgb3IgYSBgYC1gYCwgb3Ig dGhlIGFyZ3VtZW50IGBgLS1gYCwgZW5kcyB0aGUgb3B0aW9ucy4KICAgIE5vdGUgdGhhdCBh IHNpbmdsZSBgYC1gYCBpcyBub3QgY29uc2lkZXJlZCBhIHZhbGlkIG9wdGlvbiBhcmd1bWVu dC4KICAgIDp2YXI6YG9wdHN0cmluZ2AgY29udGFpbnMgdGhlIGxldHRlcnMgdGhhdCBgYGdl dG9wdHNgYAogICAgcmVjb2duaXplcy4gIElmIGEgbGV0dGVyIGlzIGZvbGxvd2VkIGJ5IGEg YGA6YGAsIHRoYXQgb3B0aW9uCiAgICByZXF1aXJlcyBhbiBhcmd1bWVudC4gIFRoZSBhcmd1 bWVudCBtYXkgYXBwZWFyIGVpdGhlciBpbW1lZGlhdGVseQogICAgZm9sbG93aW5nIHRoZSBv cHRpb24gaW4gdGhlIHNhbWUgd29yZCwgb3IgaW4gdGhlIG5leHQgd29yZC4KICAgIAogICAg RWFjaCB0aW1lIGl0IGlzIGludm9rZWQsIGBgZ2V0b3B0c2BgIHBsYWNlcyB0aGUgb3B0aW9u IGxldHRlciBpdCBmaW5kcwogICAgaW4gdGhlIHNoZWxsIHBhcmFtZXRlciA6dmFyOmBuYW1l YCwgcHJlcGVuZGVkIHdpdGggYSBgYCtgYCB3aGVuCiAgICA6dmFyOmBhcmdgIGJlZ2lucyB3 aXRoIGEgYGArYGAuICBUaGUgaW5kZXggb2YgdGhlIG5leHQgOnZhcjpgYXJnYAogICAgaXMg c3RvcmVkIGluIGBgT1BUSU5EYGAuICBUaGUgb3B0aW9uIGFyZ3VtZW50LCBpZiBhbnksCiAg ICBpcyBzdG9yZWQgaW4gYGBPUFRBUkdgYC4KICAgIC4uIGluZGV4Ojogc2luZ2xlOiBPUFRJ TkQsIHVzZSBvZjsgVmFyaWFibGUKICAgIAogICAgCiAgICAuLiBpbmRleDo6IHNpbmdsZTog T1BUQVJHLCB1c2Ugb2Y7IFZhcmlhYmxlCiAgICAKICAgIAogICAgCiAgICBXaGVuIHRoZSB0 ZXJtaW5hdG9yIGBgLS1gYCBpcyBlbmNvdW50ZXJlZCwgYGBPUFRJTkRgYCBpcwogICAgaW5j cmVtZW50ZWQgc3VjaCB0aGF0IGl0IGNhbiBiZSBgYHNoaWZ0YGBcZWQgYXdheSB3aXRoIHRo ZSBvcHRpb25zLiAgVGhpcwogICAgaXMgbm90IHRydWUgb2Ygb3RoZXIgbm9uLW9wdGlvbiBh cmd1bWVudHMsIGluY2x1ZGluZyBhIHNpbmdsZSBgYC1gYC4KICAgIAogICAgVGhlIGZpcnN0 IG9wdGlvbiB0byBiZSBleGFtaW5lZCBtYXkgYmUgY2hhbmdlZCBieSBleHBsaWNpdGx5IGFz c2lnbmluZwogICAgdG8gYGBPUFRJTkRgYC4gIGBgT1BUSU5EYGAgaGFzIGFuIGluaXRpYWwg dmFsdWUgb2YgYGAxYGAsIGFuZCBpcwogICAgbm9ybWFsbHkgc2V0IHRvIGBgMWBgIHVwb24g ZW50cnkgdG8gYSBzaGVsbCBmdW5jdGlvbiBhbmQgcmVzdG9yZWQKICAgIHVwb24gZXhpdC4g IGBgT1BUQVJHYGAgaXMgbm90IHJlc2V0IGFuZCByZXRhaW5zIGl0cyB2YWx1ZSBmcm9tIHRo ZSBtb3N0CiAgICByZWNlbnQgY2FsbCB0byBgYGdldG9wdHNgYC4gIElmIGVpdGhlciBvZiBg YE9QVElORGBgIG9yIGBgT1BUQVJHYGAgaXMKICAgIGV4cGxpY2l0bHkgdW5zZXQsIGl0IHJl bWFpbnMgdW5zZXQsIGFuZCB0aGUgaW5kZXggb3Igb3B0aW9uIGFyZ3VtZW50IGlzCiAgICBu b3Qgc3RvcmVkLiAgVGhlIG9wdGlvbiBpdHNlbGYgaXMgc3RpbGwgc3RvcmVkIGluIDp2YXI6 YG5hbWVgIGluIHRoaXMgY2FzZS4KICAgIAogICAgQSBsZWFkaW5nIGBgOmBgIGluIDp2YXI6 YG9wdHN0cmluZ2AgY2F1c2VzIGBgZ2V0b3B0c2BgIHRvIHN0b3JlIHRoZQogICAgbGV0dGVy IG9mIGFueSBpbnZhbGlkIG9wdGlvbiBpbiBgYE9QVEFSR2BgLCBhbmQgdG8gc2V0IDp2YXI6 YG5hbWVgIHRvCiAgICBgYD9gYCBmb3IgYW4gdW5rbm93biBvcHRpb24gYW5kIHRvIGBgOmBg IHdoZW4gYSByZXF1aXJlZCBhcmd1bWVudCBpcwogICAgbWlzc2luZy4gIE90aGVyd2lzZSwg YGBnZXRvcHRzYGAgc2V0cyA6dmFyOmBuYW1lYCB0byBgYD9gYCBhbmQgcHJpbnRzCiAgICBh biBlcnJvciBtZXNzYWdlIHdoZW4gYW4gb3B0aW9uIGlzIGludmFsaWQuICBUaGUgZXhpdCBz dGF0dXMgaXMKICAgIG5vbnplcm8gd2hlbiB0aGVyZSBhcmUgbm8gbW9yZSBvcHRpb25zLgog ICAgCiAgICBXaGVuIGVpdGhlciB0aGUgYGBQT1NJWF9CVUlMVElOU2BgIG9wdGlvbiBpcyBl bmFibGVkIG9yIHRoZSBgYC1wYGAKICAgIG9wdGlvbiBpcyBnaXZlbiB0byBgYGdldG9wdHNg YCBpdHNlbGYsIGBgZ2V0b3B0c2BgIGJlaGF2ZXMgaW4gYSBtb3JlCiAgICBQT1NJWC1jb21w YXRpYmxlIG1hbm5lci4gIFNwZWNpZmljYWxseSwgaGFuZGxpbmcgb2YKICAgIGBgK2BgLXBy ZWZpeGVkIG9wdGlvbnMgaXMgZGlzYWJsZWQgKHRoZXkgYXJlIHRyZWF0ZWQgYXMKICAgIG5v bi1vcHRpb25zKSBhbmQgdGhlIHZhbHVlIG9mIGBgT1BUSU5EYGAgaXMgY2FsY3VsYXRlZCBk aWZmZXJlbnRseS4KICAgIEFkZGl0aW9uYWxseSwgd2l0aCBgYFBPU0lYX0JVSUxUSU5TYGAg KGJ1dCBub3Qgd2l0aCBgYC1wYGApLCB0aGUgdmFsdWUKICAgIG9mIGBgT1BUSU5EYGAgaXMg bm90IGtlcHQgbG9jYWwgdG8gdGhlIGNhbGxpbmcgZnVuY3Rpb24uCiAgICAKCi4uIGluZGV4 Ojogc2luZ2xlOiBoYXNoOyBGdW5jdGlvbgoKYGBoYXNoYGAgWyBgYC1MZGZtcnZgYCBdIFsg OnZhcjpgbmFtZWBcW2BgPWBgOnZhcjpgdmFsdWVgXSBdIC4uLgogICAgCiAgICBgYGhhc2hg YCBjYW4gYmUgdXNlZCB0byBkaXJlY3RseSBtb2RpZnkgdGhlIGNvbnRlbnRzIG9mIHRoZSBj b21tYW5kCiAgICBoYXNoIHRhYmxlLCBhbmQgdGhlIG5hbWVkIGRpcmVjdG9yeSBoYXNoIHRh YmxlLiAgTm9ybWFsbHkgb25lIHdvdWxkCiAgICBtb2RpZnkgdGhlc2UgdGFibGVzIGJ5IG1v ZGlmeWluZyBvbmUncyBgYFBBVEhgYAogICAgKGZvciB0aGUgY29tbWFuZCBoYXNoIHRhYmxl KSBvciBieSBjcmVhdGluZyBhcHByb3ByaWF0ZSBzaGVsbCBwYXJhbWV0ZXJzCiAgICAoZm9y IHRoZSBuYW1lZCBkaXJlY3RvcnkgaGFzaCB0YWJsZSkuCiAgICBUaGUgY2hvaWNlIG9mIGhh c2ggdGFibGUgdG8gd29yayBvbiBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBgYC1kYGAgb3B0aW9u OwogICAgd2l0aG91dCB0aGUgb3B0aW9uIHRoZSBjb21tYW5kIGhhc2ggdGFibGUgaXMgdXNl ZCwgYW5kIHdpdGggdGhlIG9wdGlvbiB0aGUKICAgIG5hbWVkIGRpcmVjdG9yeSBoYXNoIHRh YmxlIGlzIHVzZWQuCiAgICAKICAgIEEgY29tbWFuZCA6dmFyOmBuYW1lYCBzdGFydGluZyB3 aXRoIGEgYGAvYGAgb3Igd2l0aCBhIHJlbGF0aXZlIHBhdGgKICAgIHN0YXJ0aW5nIHdpdGgg YGAuL2BgIG9yIGBgLi4vYGAgaXMgbmV2ZXIgZXhlY3V0ZWQgYnkgbG9va3VwIGluCiAgICB0 aGUgY29tbWFuZCBoYXNoIHRhYmxlLCBhbmQgdGhlc2UgY2FuIG9ubHkgYmUgYWRkZWQgdG8g dGhlIHRhYmxlIGJ5CiAgICBleHBsaWNpdCB1c2Ugb2YgdGhlIGBgaGFzaGBgIGNvbW1hbmQu ICBTdWNoIGEgY29tbWFuZCBpcyBhbHdheXMKICAgIGZvdW5kIGJ5IGRpcmVjdCBsb29rIHVw IGluIHRoZSBmaWxlIHN5c3RlbS4KICAgIAogICAgR2l2ZW4gbm8gYXJndW1lbnRzLCBhbmQg bmVpdGhlciB0aGUgYGAtcmBgIG9yIGBgLWZgYCBvcHRpb25zLAogICAgdGhlIHNlbGVjdGVk IGhhc2ggdGFibGUgd2lsbCBiZSBsaXN0ZWQgaW4gZnVsbC4KICAgIAogICAgVGhlIGBgLXJg YCBvcHRpb24gY2F1c2VzIHRoZSBzZWxlY3RlZCBoYXNoIHRhYmxlIHRvIGJlIGVtcHRpZWQu CiAgICBJdCB3aWxsIGJlIHN1YnNlcXVlbnRseSByZWJ1aWx0IGluIHRoZSBub3JtYWwgZmFz aGlvbi4KICAgIFRoZSBgYC1mYGAgb3B0aW9uIGNhdXNlcyB0aGUgc2VsZWN0ZWQgaGFzaCB0 YWJsZSB0byBiZSBmdWxseQogICAgcmVidWlsdCBpbW1lZGlhdGVseS4gIEZvciB0aGUgY29t bWFuZCBoYXNoIHRhYmxlIHRoaXMgaGFzaGVzCiAgICBhbGwgKGFuZCA6ZW1waGFzaXM6YG9u bHlgKSB0aGUgYWJzb2x1dGUgZGlyZWN0b3JpZXMgaW4gdGhlIGBgUEFUSGBgLAogICAgYW5k IGZvciB0aGUgbmFtZWQgZGlyZWN0b3J5IGhhc2ggdGFibGUgdGhpcyBhZGRzIGFsbCB1c2Vy cycgaG9tZQogICAgZGlyZWN0b3JpZXMuCiAgICBUaGVzZSB0d28gb3B0aW9ucyBjYW5ub3Qg YmUgdXNlZCB3aXRoIGFueSBhcmd1bWVudHMuCiAgICBCb3RoIG9wdGlvbnMgcmVtb3ZlIGFu eSBleHBsaWNpdGx5LWFkZGVkIGVsZW1lbnRzLgogICAgCiAgICBUaGUgYGAtbWBgIG9wdGlv biBjYXVzZXMgdGhlIGFyZ3VtZW50cyB0byBiZSB0YWtlbiBhcyBwYXR0ZXJucwogICAgKHdo aWNoIHNob3VsZCBiZSBxdW90ZWQpIGFuZCB0aGUgZWxlbWVudHMgb2YgdGhlIGhhc2ggdGFi bGUKICAgIG1hdGNoaW5nIHRob3NlIHBhdHRlcm5zIGFyZSBwcmludGVkLiAgVGhpcyBpcyB0 aGUgb25seSB3YXkgdG8gZGlzcGxheQogICAgYSBsaW1pdGVkIHNlbGVjdGlvbiBvZiBoYXNo IHRhYmxlIGVsZW1lbnRzLgogICAgCiAgICBGb3IgZWFjaCA6dmFyOmBuYW1lYCB3aXRoIGEg Y29ycmVzcG9uZGluZyA6dmFyOmB2YWx1ZWAsIHB1dCA6dmFyOmBuYW1lYCBpbgogICAgdGhl IHNlbGVjdGVkIGhhc2ggdGFibGUsIGFzc29jaWF0aW5nIGl0IHdpdGggdGhlIHBhdGhuYW1l IDp2YXI6YHZhbHVlYC4KICAgIEluIHRoZSBjb21tYW5kIGhhc2ggdGFibGUsIHRoaXMgbWVh bnMgdGhhdAogICAgd2hlbmV2ZXIgOnZhcjpgbmFtZWAgaXMgdXNlZCBhcyBhIGNvbW1hbmQg YXJndW1lbnQsIHRoZSBzaGVsbCB3aWxsIHRyeQogICAgdG8gZXhlY3V0ZSB0aGUgZmlsZSBn aXZlbiBieSA6dmFyOmB2YWx1ZWAuCiAgICBJbiB0aGUgbmFtZWQgZGlyZWN0b3J5IGhhc2gg dGFibGUsIHRoaXMgbWVhbnMKICAgIHRoYXQgOnZhcjpgdmFsdWVgIG1heSBiZSByZWZlcnJl ZCB0byBhcyBgYH5gYDp2YXI6YG5hbWVgLgogICAgCiAgICBGb3IgZWFjaCA6dmFyOmBuYW1l YCB3aXRoIG5vCiAgICBjb3JyZXNwb25kaW5nIDp2YXI6YHZhbHVlYCwgYXR0ZW1wdCB0byBh ZGQgOnZhcjpgbmFtZWAgdG8gdGhlIGhhc2ggdGFibGUsCiAgICBjaGVja2luZyB3aGF0IHRo ZSBhcHByb3ByaWF0ZSBgYHZhbHVlYGAgaXMgaW4gdGhlIG5vcm1hbCBtYW5uZXIgZm9yCiAg ICB0aGF0IGhhc2ggdGFibGUuICBJZiBhbiBhcHByb3ByaWF0ZSBgYHZhbHVlYGAgY2FuJ3Qg YmUgZm91bmQsIHRoZW4KICAgIHRoZSBoYXNoIHRhYmxlIHdpbGwgYmUgdW5jaGFuZ2VkLgog ICAgCiAgICBUaGUgYGAtdmBgIG9wdGlvbiBjYXVzZXMgaGFzaCB0YWJsZSBlbnRyaWVzIHRv IGJlIGxpc3RlZCBhcyB0aGV5IGFyZQogICAgYWRkZWQgYnkgZXhwbGljaXQgc3BlY2lmaWNh dGlvbi4gIElmIGhhcyBubyBlZmZlY3QgaWYgdXNlZCB3aXRoIGBgLWZgYC4KICAgIAogICAg SWYgdGhlIGBgLUxgYCBmbGFnIGlzIHByZXNlbnQsIHRoZW4gZWFjaCBoYXNoIHRhYmxlIGVu dHJ5IGlzIHByaW50ZWQgaW4KICAgIHRoZSBmb3JtIG9mIGEgY2FsbCB0byBoYXNoLgogICAg CgouLiBpbmRleDo6IHNpbmdsZTogaGlzdG9yeTsgRnVuY3Rpb24KCmBgaGlzdG9yeWBgCiAg ICAKICAgIFNhbWUgYXMgYGBmYyAtbGBgLgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogaW50 ZWdlcjsgRnVuY3Rpb24KCmBgaW50ZWdlcmBgIFsge2BgK3wtfUhnaGxwcnR1eGBgIF0gWyB7 YGArfC19TFJaaWBgIFsgOnZhcjpgbmAgXSBdIFsgOnZhcjpgbmFtZWBcW2BgPWBgOnZhcjpg dmFsdWVgXSAuLi4gXQogICAgCiAgICBFcXVpdmFsZW50IHRvIGBgdHlwZXNldCAtaWBgLCBl eGNlcHQgdGhhdCBvcHRpb25zIGlycmVsZXZhbnQgdG8KICAgIGludGVnZXJzIGFyZSBub3Qg cGVybWl0dGVkLgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogam9iczsgRnVuY3Rpb24KCmBg am9ic2BgIFsgYGAtZGxwcnNgYCBdIFsgOnZhcjpgam9iYCAuLi4gXQoKYGBqb2JzIC1aYGAg OnZhcjpgc3RyaW5nYAogICAgCiAgICBMaXN0cyBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIGdp dmVuIGpvYiwgb3IgYWxsIGpvYnMKICAgIGlmIDp2YXI6YGpvYmAgaXMgb21pdHRlZC4gIFRo ZSBgYC1sYGAgZmxhZyBsaXN0cyBwcm9jZXNzCiAgICBJRHMsIGFuZCB0aGUgYGAtcGBgIGZs YWcgbGlzdHMgcHJvY2VzcyBncm91cHMuCiAgICBJZiB0aGUgYGAtcmBgIGZsYWcgaXMgc3Bl Y2lmaWVkIG9ubHkgcnVubmluZyBqb2JzIHdpbGwgYmUgbGlzdGVkCiAgICBhbmQgaWYgdGhl IGBgLXNgYCBmbGFnIGlzIGdpdmVuIG9ubHkgc3RvcHBlZCBqb2JzIGFyZSBzaG93bi4KICAg IElmIHRoZSBgYC1kYGAgZmxhZyBpcyBnaXZlbiwgdGhlIGRpcmVjdG9yeSBmcm9tIHdoaWNo IHRoZSBqb2Igd2FzCiAgICBzdGFydGVkICh3aGljaCBtYXkgbm90IGJlIHRoZSBjdXJyZW50 IGRpcmVjdG9yeSBvZiB0aGUgam9iKSB3aWxsIGFsc28KICAgIGJlIHNob3duLgogICAgCiAg ICBUaGUgYGAtWmBgIG9wdGlvbiByZXBsYWNlcyB0aGUgc2hlbGwncyBhcmd1bWVudCBhbmQg ZW52aXJvbm1lbnQgc3BhY2Ugd2l0aAogICAgdGhlIGdpdmVuIHN0cmluZywgdHJ1bmNhdGVk IGlmIG5lY2Vzc2FyeSB0byBmaXQuICBUaGlzIHdpbGwgbm9ybWFsbHkgYmUKICAgIHZpc2li bGUgaW4gYGBwc2BgICg6bWFucGFnZTpgcHMoMSlgKSBsaXN0aW5ncy4gIFRoaXMgZmVhdHVy ZSBpcyB0eXBpY2FsbHkKICAgIHVzZWQgYnkgZGFlbW9ucywgdG8gaW5kaWNhdGUgdGhlaXIg c3RhdGUuCiAgICAKICAgIEZ1bGwgam9iIGNvbnRyb2wgaXMgb25seSBhdmFpbGFibGUgaW4g dGhlIHRvcC1sZXZlbCBpbnRlcmFjdGl2ZSBzaGVsbCwKICAgIG5vdCBpbiBjb21tYW5kcyBy dW4gaW4gdGhlIGxlZnQgaGFuZCBzaWRlIG9mIHBpcGVsaW5lcyBvciB3aXRoaW4KICAgIHRo ZSBgYChgYDp2YXI6YC4uLmBcIGBgKWBgIGNvbnN0cnVjdC4gIEhvd2V2ZXIsIGEgc25hcHNo b3QKICAgIG9mIHRoZSBqb2Igc3RhdGUgYXQgdGhhdCBwb2ludCBpcyB0YWtlbiwgc28gaXQg aXMgc3RpbGwgcG9zc2libGUKICAgIHRvIHVzZSB0aGUgYGBqb2JzYGAgYnVpbHRpbiwgb3Ig YW55IHBhcmFtZXRlciBwcm92aWRpbmcgam9iIGluZm9ybWF0aW9uLgogICAgVGhpcyBnaXZl cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RhdGUgb2Ygam9icyBhdCB0aGUgcG9pbnQgdGhl IHN1YnNoZWxsCiAgICB3YXMgY3JlYXRlZC4gIElmIGJhY2tncm91bmQgcHJvY2Vzc2VzIGFy ZSBjcmVhdGVkIHdpdGhpbiB0aGUgc3Vic2hlbGwsCiAgICB0aGVuIGluc3RlYWQgaW5mb3Jt YXRpb24gYWJvdXQgdGhvc2UgcHJvY2Vzc2VzIGlzIHByb3ZpZGVkLgogICAgCiAgICBGb3Ig ZXhhbXBsZSwKICAgIAogICAgLi4gcGFyc2VkLWxpdGVyYWw6OgogICAgICAgOmNsYXNzOiBl eGFtcGxlCiAgICAKCiAgICAgICAgc2xlZXAgMTAgJiAgICAjIEpvYiBpbiBiYWNrZ3JvdW5k CiAgICAgICAgKCAgICAgICAgICAgICAjIFNoZWxsIGZvcmtzCiAgICAgICAgam9icyAgICAg ICAgICAjIFNob3dzIGluZm9ybWF0aW9uIGFib3V0ICJzbGVlcCAxMCAmIgogICAgICAgIHNs ZWVwIDUgJiAgICAgIyBQcm9jZXNzIGluIGJhY2tncm91bmQgKG5vIGpvYiBjb250cm9sKQog ICAgICAgIGpvYnMgICAgICAgICAgIyBTaG93cyBpbmZvcm1hdGlvbiBhYm91dCAic2xlZXAg NSAmIgogICAgICAgICkKICAgIAogICAgCgouLiBpbmRleDo6IHNpbmdsZToga2lsbDsgRnVu Y3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiBraWxsaW5nIGpvYnM7IENvbW1hbmQKCi4uIGlu ZGV4Ojogc2luZ2xlOiBqb2JzLCBraWxsaW5nOyBDb21tYW5kCgpgYGtpbGxgYCBbIGBgLXNg YCA6dmFyOmBzaWduYWxfbmFtZWAgfCBgYC1uYGAgOnZhcjpgc2lnbmFsX251bWJlcmAgfCBg YC1gYDp2YXI6YHNpZ2AgXSBbIGBgLXFgYCA6dmFyOmB2YWx1ZWAgXSA6dmFyOmBqb2JgIC4u LgoKYGBraWxsYGAgYGAtbGBgIFsgOnZhcjpgc2lnYCAuLi4gXQoKYGBraWxsYGAgYGAtTGBg CiAgICAKICAgIFNlbmRzIGVpdGhlciBgYFNJR1RFUk1gYCBvciB0aGUgc3BlY2lmaWVkIHNp Z25hbCB0byB0aGUgZ2l2ZW4KICAgIGpvYnMgb3IgcHJvY2Vzc2VzLgogICAgU2lnbmFscyBh cmUgZ2l2ZW4gYnkgbnVtYmVyIG9yIGJ5IG5hbWVzLCB3aXRoIG9yIHdpdGhvdXQgdGhlIGBg U0lHYGAKICAgIHByZWZpeC4KICAgIElmIHRoZSBzaWduYWwgYmVpbmcgc2VudCBpcyBub3Qg YGBLSUxMYGAgb3IgYGBDT05UYGAsIHRoZW4gdGhlIGpvYgogICAgd2lsbCBiZSBzZW50IGEg YGBDT05UYGAgc2lnbmFsIGlmIGl0IGlzIHN0b3BwZWQuCiAgICBUaGUgYXJndW1lbnQgOnZh cjpgam9iYCBjYW4gYmUgdGhlIHByb2Nlc3MgSUQgb2YgYSBqb2IKICAgIG5vdCBpbiB0aGUg am9iIGxpc3QuCiAgICBJbiB0aGUgc2Vjb25kIGZvcm0sIGBga2lsbCAtbGBgLCBpZiA6dmFy OmBzaWdgIGlzIG5vdAogICAgc3BlY2lmaWVkIHRoZSBzaWduYWwgbmFtZXMgYXJlIGxpc3Rl ZC4gIE90aGVyd2lzZSwgZm9yIGVhY2gKICAgIDp2YXI6YHNpZ2AgdGhhdCBpcyBhIG5hbWUs IHRoZSBjb3JyZXNwb25kaW5nIHNpZ25hbCBudW1iZXIgaXMKICAgIGxpc3RlZC4gIEZvciBl YWNoIDp2YXI6YHNpZ2AgdGhhdCBpcyBhIHNpZ25hbCBudW1iZXIgb3IgYSBudW1iZXIKICAg IHJlcHJlc2VudGluZyB0aGUgZXhpdCBzdGF0dXMgb2YgYSBwcm9jZXNzIHdoaWNoIHdhcyB0 ZXJtaW5hdGVkIG9yCiAgICBzdG9wcGVkIGJ5IGEgc2lnbmFsIHRoZSBuYW1lIG9mIHRoZSBz aWduYWwgaXMgcHJpbnRlZC4gIFRoZSBmaW5hbAogICAgZm9ybSB3aXRoIGBgLUxgYCBsaXN0 cyBlYWNoIHNpZ25hbCBuYW1lIHdpdGggaXRzIGNvcnJlc3BvbmRpbmcgbnVtYmVyLgogICAg CiAgICBPbiBzb21lIHN5c3RlbXMsIGFsdGVybmF0aXZlIHNpZ25hbCBuYW1lcyBhcmUgYWxs b3dlZCBmb3IgYSBmZXcgc2lnbmFscy4KICAgIFR5cGljYWwgZXhhbXBsZXMgYXJlIGBgU0lH Q0hMRGBgIGFuZCBgYFNJR0NMRGBgIG9yIGBgU0lHUE9MTGBgIGFuZAogICAgYGBTSUdJT2Bg LCBhc3N1bWluZyB0aGV5IGNvcnJlc3BvbmQgdG8gdGhlIHNhbWUgc2lnbmFsIG51bWJlci4g IGBga2lsbAogICAgLWwgYGB3aWxsIG9ubHkgbGlzdCB0aGUgcHJlZmVycmVkIGZvcm0sIGhv d2V2ZXJgYCBraWxsIC1sYGAgOnZhcjpgYWx0YCB3aWxsCiAgICBzaG93IGlmIHRoZSBhbHRl cm5hdGl2ZSBmb3JtIGNvcnJlc3BvbmRzIHRvIGEgc2lnbmFsIG51bWJlci4gIEZvciBleGFt cGxlLAogICAgdW5kZXIgTGludXggYGBraWxsIC1sIElPYGAgYW5kIGBga2lsbCAtbCBQT0xM YGAgYm90aCBvdXRwdXQgMjksIGhlbmNlCiAgICBgYGtpbGwgLUlPYGAgYW5kIGBga2lsbCAt UE9MTGBgIGhhdmUgdGhlIHNhbWUgZWZmZWN0LgogICAgCiAgICBNYW55IHN5c3RlbXMgd2ls bCBhbGxvdyBwcm9jZXNzIElEcyB0byBiZSBuZWdhdGl2ZSB0byBraWxsIGEgcHJvY2Vzcwog ICAgZ3JvdXAgb3IgemVybyB0byBraWxsIHRoZSBjdXJyZW50IHByb2Nlc3MgZ3JvdXAuCiAg ICAKICAgIFRoZSBgYC1xYGAgb3B0aW9uIGFsbG93cyBhbiBpbnRlZ2VyIHZhbHVlIHRvIGJl IHNlbnQgd2l0aCB0aGUgc2lnbmFsCiAgICBvbiBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBgYHNp Z3F1ZXVlKClgYC4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6IGxldDsgRnVuY3Rpb24KCmBg bGV0YGAgOnZhcjpgYXJnYCAuLi4KICAgIAogICAgRXZhbHVhdGUgZWFjaCA6dmFyOmBhcmdg IGFzIGFuIGFyaXRobWV0aWMgZXhwcmVzc2lvbi4KICAgIFNlZSA6cmVmOmBBcml0aG1ldGlj IEV2YWx1YXRpb25gCiAgICBmb3IgYSBkZXNjcmlwdGlvbiBvZiBhcml0aG1ldGljIGV4cHJl c3Npb25zLiAgVGhlIGV4aXQgc3RhdHVzIGlzIDAgaWYgdGhlCiAgICB2YWx1ZSBvZiB0aGUg bGFzdCBleHByZXNzaW9uIGlzIG5vbnplcm8sIDEgaWYgaXQgaXMgemVybywgYW5kIDIgaWYK ICAgIGFuIGVycm9yIG9jY3VycmVkLgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogbGltaXQ7 IEZ1bmN0aW9uCgouLiBpbmRleDo6IHNpbmdsZTogcmVzb3VyY2UgbGltaXRzOyBDb21tYW5k CgouLiBpbmRleDo6IHNpbmdsZTogbGltaXRzLCByZXNvdXJjZTsgQ29tbWFuZAoKYGBsaW1p dGBgIFsgYGAtaHNgYCBdIFsgOnZhcjpgcmVzb3VyY2VgIFsgOnZhcjpgbGltaXRgIF0gXSAu Li4KICAgIAogICAgU2V0IG9yIGRpc3BsYXkgcmVzb3VyY2UgbGltaXRzLiAgVW5sZXNzIHRo ZSBgYC1zYGAgZmxhZyBpcyBnaXZlbiwKICAgIHRoZSBsaW1pdCBhcHBsaWVzIG9ubHkgdGhl IGNoaWxkcmVuIG9mIHRoZSBzaGVsbC4gIElmIGBgLXNgYCBpcwogICAgZ2l2ZW4gd2l0aG91 dCBvdGhlciBhcmd1bWVudHMsIHRoZSByZXNvdXJjZSBsaW1pdHMgb2YgdGhlIGN1cnJlbnQK ICAgIHNoZWxsIGlzIHNldCB0byB0aGUgcHJldmlvdXNseSBzZXQgcmVzb3VyY2UgbGltaXRz IG9mIHRoZSBjaGlsZHJlbi4KICAgIAogICAgSWYgOnZhcjpgbGltaXRgIGlzIG5vdCBzcGVj aWZpZWQsIHByaW50IHRoZSBjdXJyZW50IGxpbWl0IHBsYWNlZAogICAgb24gOnZhcjpgcmVz b3VyY2VgLCBvdGhlcndpc2UKICAgIHNldCB0aGUgbGltaXQgdG8gdGhlIHNwZWNpZmllZCB2 YWx1ZS4gIElmIHRoZSBgYC1oYGAgZmxhZwogICAgaXMgZ2l2ZW4sIHVzZSBoYXJkIGxpbWl0 cyBpbnN0ZWFkIG9mIHNvZnQgbGltaXRzLgogICAgSWYgbm8gOnZhcjpgcmVzb3VyY2VgIGlz IGdpdmVuLCBwcmludCBhbGwgbGltaXRzLgogICAgCiAgICBXaGVuIGxvb3Bpbmcgb3ZlciBt dWx0aXBsZSByZXNvdXJjZXMsIHRoZSBzaGVsbCB3aWxsIGFib3J0IGltbWVkaWF0ZWx5IGlm CiAgICBpdCBkZXRlY3RzIGEgYmFkbHkgZm9ybWVkIGFyZ3VtZW50LiAgSG93ZXZlciwgaWYg aXQgZmFpbHMgdG8gc2V0IGEgbGltaXQKICAgIGZvciBzb21lIG90aGVyIHJlYXNvbiBpdCB3 aWxsIGNvbnRpbnVlIHRyeWluZyB0byBzZXQgdGhlIHJlbWFpbmluZyBsaW1pdHMuCiAgICAK ICAgIDp2YXI6YHJlc291cmNlYCBjYW4gYmUgb25lIG9mOgogICAgCiAgICAKICAgIGBgYWRk cmVzc3NwYWNlYGAKICAgICAgICBNYXhpbXVtIGFtb3VudCBvZiBhZGRyZXNzIHNwYWNlIHVz ZWQuCiAgICAKICAgIGBgYWlvbWVtb3J5bG9ja2VkYGAKICAgICAgICBNYXhpbXVtIGFtb3Vu dCBvZiBtZW1vcnkgbG9ja2VkIGluIFJBTSBmb3IgQUlPIG9wZXJhdGlvbnMuCiAgICAKICAg IGBgYWlvb3BlcmF0aW9uc2BgCiAgICAgICAgTWF4aW11bSBudW1iZXIgb2YgQUlPIG9wZXJh dGlvbnMuCiAgICAKICAgIGBgY2FjaGVkdGhyZWFkc2BgCiAgICAgICAgTWF4aW11bSBudW1i ZXIgb2YgY2FjaGVkIHRocmVhZHMuCiAgICAKICAgIGBgY29yZWR1bXBzaXplYGAKICAgICAg ICBNYXhpbXVtIHNpemUgb2YgYSBjb3JlIGR1bXAuCiAgICAKICAgIGBgY3B1dGltZWBgCiAg ICAgICAgTWF4aW11bSBDUFUgc2Vjb25kcyBwZXIgcHJvY2Vzcy4KICAgIAogICAgYGBkYXRh c2l6ZWBgCiAgICAgICAgTWF4aW11bSBkYXRhIHNpemUgKGluY2x1ZGluZyBzdGFjaykgZm9y IGVhY2ggcHJvY2Vzcy4KICAgIAogICAgYGBkZXNjcmlwdG9yc2BgCiAgICAgICAgTWF4aW11 bSB2YWx1ZSBmb3IgYSBmaWxlIGRlc2NyaXB0b3IuCiAgICAKICAgIGBgZmlsZXNpemVgYAog ICAgICAgIExhcmdlc3Qgc2luZ2xlIGZpbGUgYWxsb3dlZC4KICAgIAogICAgYGBrcXVldWVz YGAKICAgICAgICBNYXhpbXVtIG51bWJlciBvZiBrcXVldWVzIGFsbG9jYXRlZC4KICAgIAog ICAgYGBtYXhmaWxlbG9ja3NgYAogICAgICAgIE1heGltdW0gbnVtYmVyIG9mIGZpbGUgbG9j a3MuCiAgICAKICAgIGBgbWF4cHJvY2BgCiAgICAgICAgTWF4aW11bSBudW1iZXIgb2YgcHJv Y2Vzc2VzLgogICAgCiAgICBgYG1heHB0aHJlYWRzYGAKICAgICAgICBNYXhpbXVtIG51bWJl ciBvZiB0aHJlYWRzIHBlciBwcm9jZXNzLgogICAgCiAgICBgYG1lbW9yeWxvY2tlZGBgCiAg ICAgICAgTWF4aW11bSBhbW91bnQgb2YgbWVtb3J5IGxvY2tlZCBpbiBSQU0uCiAgICAKICAg IGBgbWVtb3J5dXNlYGAKICAgICAgICBNYXhpbXVtIHJlc2lkZW50IHNldCBzaXplLgogICAg CiAgICBgYG1zZ3F1ZXVlYGAKICAgICAgICBNYXhpbXVtIG51bWJlciBvZiBieXRlcyBpbiBQ T1NJWCBtZXNzYWdlIHF1ZXVlcy4KICAgIAogICAgYGBuaWNlYGAKICAgICAgICBNYXhpbXVt IG5pY2UgdmFsdWUuCiAgICAKICAgIGBgcGlwZWJ1ZmBgCiAgICAgICAgTWF4aW11bSBzaXpl IG9mIGJ1ZmZlcnMgZm9yIHBpcGVzL2ZpZm9zLgogICAgCiAgICBgYHBvc2l4bG9ja3NgYAog ICAgICAgIE1heGltdW0gbnVtYmVyIG9mIFBPU0lYIGxvY2tzIHBlciB1c2VyLgogICAgCiAg ICBgYHBzZXVkb3Rlcm1pbmFsc2BgCiAgICAgICAgTWF4aW11bSBudW1iZXIgb2YgcHNldWRv LXRlcm1pbmFscy4KICAgIAogICAgYGByZXNpZGVudGBgCiAgICAgICAgTWF4aW11bSByZXNp ZGVudCBzZXQgc2l6ZS4KICAgIAogICAgYGBydF9wcmlvcml0eWBgCiAgICAgICAgTWF4aW11 bSByZWFsLXRpbWUgcHJpb3JpdHkuCiAgICAKICAgIGBgcnRfdGltZWBgCiAgICAgICAgTWF4 aW11bSBDUFUgdGltZSB3aXRob3V0IGEgYmxvY2tpbmcgc3lzdGVtIGNhbGwuCiAgICAKICAg IGBgc2lncGVuZGluZ2BgCiAgICAgICAgTWF4aW11bSBudW1iZXIgb2YgcGVuZGluZyBzaWdu YWxzLgogICAgCiAgICBgYHNvY2tidWZzaXplYGAKICAgICAgICBNYXhpbXVtIHNpemUgb2Yg YWxsIHNvY2tldCBidWZmZXJzLgogICAgCiAgICBgYHN0YWNrc2l6ZWBgCiAgICAgICAgTWF4 aW11bSBzdGFjayBzaXplIGZvciBlYWNoIHByb2Nlc3MuCiAgICAKICAgIGBgc3dhcHNpemVg YAogICAgICAgIE1heGltdW0gYW1vdW50IG9mIHN3YXAgdXNlZC4KICAgIAogICAgYGB1bXR4 cGBgCiAgICAgICAgTWF4aW11bSBudW1iZXIgb2YgUE9TSVggdGhyZWFkIGxpYnJhcnkgb2Jq ZWN0cy4KICAgIAogICAgYGB2bWVtb3J5c2l6ZWBgCiAgICAgICAgTWF4aW11bSBhbW91bnQg b2YgdmlydHVhbCBtZW1vcnkuCiAgICAKICAgIGBgdm5vZGVtb25pdG9yc2BgCiAgICAgICAg TWF4aW11bSBudW1iZXIgb2Ygb3BlbiB2bm9kZSBtb25pdG9ycy4KICAgIAogICAgCiAgICAK ICAgIFdoaWNoIG9mIHRoZXNlIHJlc291cmNlIGxpbWl0cyBhcmUgYXZhaWxhYmxlIGRlcGVu ZHMgb24gdGhlIHN5c3RlbS4KICAgIDp2YXI6YHJlc291cmNlYCBjYW4gYmUgYWJicmV2aWF0 ZWQgdG8gYW55IHVuYW1iaWd1b3VzIHByZWZpeC4gIEl0CiAgICBjYW4gYWxzbyBiZSBhbiBp bnRlZ2VyLCB3aGljaCBjb3JyZXNwb25kcyB0byB0aGUgaW50ZWdlciBkZWZpbmVkCiAgICBm b3IgdGhlIHJlc291cmNlIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVtLgogICAgCiAgICBJZiBh cmd1bWVudCBjb3JyZXNwb25kcyB0byBhIG51bWJlciB3aGljaCBpcyBvdXQgb2YgdGhlIHJh bmdlIG9mIHRoZQogICAgcmVzb3VyY2VzIGNvbmZpZ3VyZWQgaW50byB0aGUgc2hlbGwsIHRo ZSBzaGVsbCB3aWxsIHRyeSB0byByZWFkIG9yIHdyaXRlCiAgICB0aGUgbGltaXQgYW55d2F5 LCBhbmQgd2lsbCByZXBvcnQgYW4gZXJyb3IgaWYgdGhpcyBmYWlscy4gIEFzIHRoZSBzaGVs bAogICAgZG9lcyBub3Qgc3RvcmUgc3VjaCByZXNvdXJjZXMgaW50ZXJuYWxseSwgYW4gYXR0 ZW1wdCB0byBzZXQgdGhlIGxpbWl0IHdpbGwKICAgIGZhaWwgdW5sZXNzIHRoZSBgYC1zYGAg b3B0aW9uIGlzIHByZXNlbnQuCiAgICAKICAgIDp2YXI6YGxpbWl0YCBpcyBhIG51bWJlciwg d2l0aCBhbiBvcHRpb25hbCBzY2FsaW5nIGZhY3RvciwgYXMgZm9sbG93czoKICAgIAogICAg CiAgICA6dmFyOmBuYFwgYGBoYGAKICAgICAgICBob3VycwogICAgCiAgICA6dmFyOmBuYFwg YGBrYGAKICAgICAgICBraWxvYnl0ZXMgKGRlZmF1bHQpCiAgICAKICAgIDp2YXI6YG5gXCBg YG1gYAogICAgICAgIG1lZ2FieXRlcyBvciBtaW51dGVzCiAgICAKICAgIDp2YXI6YG5gXCBg YGdgYAogICAgICAgIGdpZ2FieXRlcwogICAgCiAgICBbOnZhcjpgbW1gXCBgYDpgYF06dmFy OmBzc2AKICAgICAgICBtaW51dGVzIGFuZCBzZWNvbmRzCiAgICAKICAgIAogICAgCiAgICBU aGUgYGBsaW1pdGBgIGNvbW1hbmQgaXMgbm90IG1hZGUgYXZhaWxhYmxlIGJ5IGRlZmF1bHQg d2hlbiB0aGUKICAgIHNoZWxsIHN0YXJ0cyBpbiBhIG1vZGUgZW11bGF0aW5nIGFub3RoZXIg c2hlbGwuICBJdCBjYW4gYmUgbWFkZSBhdmFpbGFibGUKICAgIHdpdGggdGhlIGNvbW1hbmQg YGB6bW9kbG9hZCAtRiB6c2gvcmxpbWl0cyBiOmxpbWl0YGAuCiAgICAKCi4uIGluZGV4Ojog c2luZ2xlOiBsb2NhbDsgRnVuY3Rpb24KCmBgbG9jYWxgYCBbIHtgYCt8LX1BSFVhaGxwcnR1 eGBgIF0gWyB7YGArfC19RUZMUlppYGAgWyA6dmFyOmBuYCBdIF0gWyA6dmFyOmBuYW1lYFxb YGA9YGA6dmFyOmB2YWx1ZWBdIC4uLiBdCiAgICAKICAgIFNhbWUgYXMgYGB0eXBlc2V0YGAs IGV4Y2VwdCB0aGF0IHRoZSBvcHRpb25zIGBgLWdgYCwgYW5kCiAgICBgYC1mYGAgYXJlIG5v dCBwZXJtaXR0ZWQuICBJbiB0aGlzIGNhc2UgdGhlIGBgLXhgYCBvcHRpb24gZG9lcyBub3Qg Zm9yY2UKICAgIHRoZSB1c2Ugb2YgYGAtZ2BgLCBpLmUuIGV4cG9ydGVkIHZhcmlhYmxlcyB3 aWxsIGJlIGxvY2FsIHRvIGZ1bmN0aW9ucy4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6IGxv Z291dDsgRnVuY3Rpb24KCmBgbG9nb3V0YGAgWyA6dmFyOmBuYCBdCiAgICAKICAgIFNhbWUg YXMgYGBleGl0YGAsIGV4Y2VwdCB0aGF0IGl0IG9ubHkgd29ya3MgaW4gYSBsb2dpbiBzaGVs bC4KICAgIAoKYGBub2dsb2JgYCA6dmFyOmBzaW1wbGUgY29tbWFuZGAKICAgIAogICAgU2Vl IDpyZWY6YFByZWNvbW1hbmQgTW9kaWZpZXJzYC4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6 IHBvcGQ7IEZ1bmN0aW9uCgpgYHBvcGRgYCBbIGBgLXFgYCBdIFsge2BgK3wtYGB9OnZhcjpg bmAgXQogICAgCiAgICBSZW1vdmUgYW4gZW50cnkgZnJvbSB0aGUgZGlyZWN0b3J5IHN0YWNr LCBhbmQgcGVyZm9ybSBhIGBgY2RgYCB0bwogICAgdGhlIG5ldyB0b3AgZGlyZWN0b3J5LiAg V2l0aCBubyBhcmd1bWVudCwgdGhlIGN1cnJlbnQgdG9wIGVudHJ5IGlzCiAgICByZW1vdmVk LiAgQW4gYXJndW1lbnQgb2YgdGhlIGZvcm0gYGArYGA6dmFyOmBuYCBpZGVudGlmaWVzIGEg c3RhY2sKICAgIGVudHJ5IGJ5IGNvdW50aW5nIGZyb20gdGhlIGxlZnQgb2YgdGhlIGxpc3Qg c2hvd24gYnkgdGhlIGBgZGlyc2BgIGNvbW1hbmQsCiAgICBzdGFydGluZyB3aXRoIHplcm8u ICBBbiBhcmd1bWVudCBvZiB0aGUgZm9ybSBgYC1gYDp2YXI6YG5gIGNvdW50cyBmcm9tIHRo ZSByaWdodC4KICAgIC4uIGluZGV4Ojogc2luZ2xlOiBQVVNIRF9NSU5VUywgdXNlIG9mOyBQ cm9ncmFtCiAgICAKICAgIAogICAgSWYgdGhlIGBgUFVTSERfTUlOVVNgYCBvcHRpb24gaXMg c2V0LCB0aGUgbWVhbmluZ3Mgb2YgYGArYGAgYW5kCiAgICBgYC1gYCBpbiB0aGlzIGNvbnRl eHQgYXJlIHN3YXBwZWQuCiAgICAKICAgIElmIHRoZSBgYC1xYGAgKHF1aWV0KSBvcHRpb24g aXMgc3BlY2lmaWVkLCB0aGUgaG9vayBmdW5jdGlvbiBgYGNocHdkYGAKICAgIGFuZCB0aGUg ZnVuY3Rpb25zIGluIHRoZSBhcnJheSBgYCRjaHB3ZF9mdW5jdGlvbnNgYCBhcmUgbm90IGNh bGxlZCwKICAgIGFuZCB0aGUgbmV3IGRpcmVjdG9yeSBzdGFjayBpcyBub3QgcHJpbnRlZC4g IFRoaXMgaXMgdXNlZnVsIGZvciBjYWxscyB0bwogICAgYGBwb3BkYGAgdGhhdCBkbyBub3Qg Y2hhbmdlIHRoZSBlbnZpcm9ubWVudCBzZWVuIGJ5IGFuIGludGVyYWN0aXZlIHVzZXIuCiAg ICAKCi4uIGluZGV4Ojogc2luZ2xlOiBwcmludDsgRnVuY3Rpb24KCmBgcHJpbnRgYCBbIGBg LWFiY0RpbG1uTm9PcFByc1N6YGAgXSBbIGBgLXVgYCA6dmFyOmBuYCBdIFsgYGAtZmBgIDp2 YXI6YGZvcm1hdGAgXSBbIGBgLUNgYCA6dmFyOmBjb2xzYCBdCgogICAgICBbIGBgLXZgYCA6 dmFyOmBuYW1lYCBdIFsgYGAteFhgYCA6dmFyOmB0YWJzdG9wYCBdIFsgYGAtUmBgIFsgYGAt ZW5gYCBdXSBbIDp2YXI6YGFyZ2AgLi4uIF0KICAgIAogICAgV2l0aCB0aGUgYGAtZmBgIG9w dGlvbiB0aGUgYXJndW1lbnRzIGFyZSBwcmludGVkIGFzIGRlc2NyaWJlZCBieSBgYHByaW50 ZmBgLgogICAgV2l0aCBubyBmbGFncyBvciB3aXRoIHRoZSBmbGFnIGBgLWBgLCB0aGUgYXJn dW1lbnRzIGFyZSBwcmludGVkIG9uCiAgICB0aGUgc3RhbmRhcmQgb3V0cHV0IGFzIGRlc2Ny aWJlZCBieSBgYGVjaG9gYCwgd2l0aCB0aGUgZm9sbG93aW5nIGRpZmZlcmVuY2VzOgogICAg dGhlIGVzY2FwZSBzZXF1ZW5jZSBgYFxNLWBgOnZhcjpgeGAgKG9yIGBgXE1gYDp2YXI6YHhg KSBtZXRhZmllcyB0aGUgY2hhcmFjdGVyCiAgICA6dmFyOmB4YCAoc2V0cyB0aGUgaGlnaGVz dCBiaXQpLAogICAgYGBcQy1gYDp2YXI6YHhgIChvciBgYFxDYGA6dmFyOmB4YCkgcHJvZHVj ZXMgYSBjb250cm9sIGNoYXJhY3RlcgogICAgKGBgXEMtQGBgIGFuZCBgYFxDLT9gYCBnaXZl IHRoZSBjaGFyYWN0ZXJzIE5VTEwgYW5kIGRlbGV0ZSksCiAgICBhIGNoYXJhY3RlciBjb2Rl IGluIG9jdGFsIGlzIHJlcHJlc2VudGVkIGJ5IGBgXGBgOnZhcjpgTk5OYAogICAgKGluc3Rl YWQgb2YgYGBcMGBgOnZhcjpgTk5OYCksCiAgICBhbmQgYGBcRWBgIGlzIGEgc3lub255bSBm b3IgYGBcZWBgLgogICAgRmluYWxseSwgaWYgbm90IGluIGFuIGVzY2FwZQogICAgc2VxdWVu Y2UsIGBgXGBgIGVzY2FwZXMgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIgYW5kIGlzIG5vdCBw cmludGVkLgogICAgCiAgICAKICAgIGBgLWFgYAogICAgICAgIAogICAgICAgIFByaW50IGFy Z3VtZW50cyB3aXRoIHRoZSBjb2x1bW4gaW5jcmVtZW50aW5nIGZpcnN0LiAgT25seSB1c2Vm dWwgd2l0aCB0aGUKICAgICAgICBgYC1jYGAgYW5kIGBgLUNgYCBvcHRpb25zLgogICAgICAg IAogICAgCiAgICBgYC1iYGAKICAgICAgICAKICAgICAgICBSZWNvZ25pemUgYWxsIHRoZSBl c2NhcGUgc2VxdWVuY2VzIGRlZmluZWQgZm9yIHRoZSBgYGJpbmRrZXlgYCBjb21tYW5kLAog ICAgICAgIHNlZSA6cmVmOmBabGUgQnVpbHRpbnNgLgogICAgICAgIAogICAgCiAgICBgYC1j YGAKICAgICAgICAKICAgICAgICBQcmludCB0aGUgYXJndW1lbnRzIGluIGNvbHVtbnMuICBV bmxlc3MgYGAtYWBgIGlzIGFsc28gZ2l2ZW4sIGFyZ3VtZW50cyBhcmUKICAgICAgICBwcmlu dGVkIHdpdGggdGhlIHJvdyBpbmNyZW1lbnRpbmcgZmlyc3QuCiAgICAgICAgCiAgICAKICAg IGBgLUNgYCA6dmFyOmBjb2xzYAogICAgICAgIAogICAgICAgIFByaW50IHRoZSBhcmd1bWVu dHMgaW4gOnZhcjpgY29sc2AgY29sdW1ucy4gIFVubGVzcyBgYC1hYGAgaXMgYWxzbyBnaXZl biwKICAgICAgICBhcmd1bWVudHMgYXJlIHByaW50ZWQgd2l0aCB0aGUgcm93IGluY3JlbWVu dGluZyBmaXJzdC4KICAgICAgICAKICAgIAogICAgYGAtRGBgCiAgICAgICAgCiAgICAgICAg VHJlYXQgdGhlIGFyZ3VtZW50cyBhcyBwYXRocywgcmVwbGFjaW5nIGRpcmVjdG9yeSBwcmVm aXhlcyB3aXRoIGBgfmBgCiAgICAgICAgZXhwcmVzc2lvbnMgY29ycmVzcG9uZGluZyB0byBk aXJlY3RvcnkgbmFtZXMsIGFzIGFwcHJvcHJpYXRlLgogICAgICAgIAogICAgCiAgICBgYC1p YGAKICAgICAgICAKICAgICAgICBJZiBnaXZlbiB0b2dldGhlciB3aXRoIGBgLW9gYCBvciBg YC1PYGAsIHNvcnRpbmcgaXMgcGVyZm9ybWVkCiAgICAgICAgY2FzZS1pbmRlcGVuZGVudGx5 LgogICAgICAgIAogICAgCiAgICBgYC1sYGAKICAgICAgICAKICAgICAgICBQcmludCB0aGUg YXJndW1lbnRzIHNlcGFyYXRlZCBieSBuZXdsaW5lcyBpbnN0ZWFkIG9mIHNwYWNlcy4gIE5v dGU6IGlmCiAgICAgICAgdGhlIGxpc3Qgb2YgYXJndW1lbnRzIGlzIGVtcHR5LCBgYHByaW50 IC1sYGAgd2lsbCBzdGlsbCBvdXRwdXQgb25lIGVtcHR5CiAgICAgICAgbGluZS4gVG8gcHJp bnQgYSBwb3NzaWJseS1lbXB0eSBsaXN0IG9mIGFyZ3VtZW50cyBvbmUgcGVyIGxpbmUsIHVz ZQogICAgICAgIGBgcHJpbnQgLUMxYGAsIGFzIGluIGBgcHJpbnQgLXJDMSAtLSAiJGxpc3Rb QF0iYGAuCiAgICAgICAgCiAgICAKICAgIGBgLW1gYAogICAgICAgIAogICAgICAgIFRha2Ug dGhlIGZpcnN0IGFyZ3VtZW50IGFzIGEgcGF0dGVybiAoc2hvdWxkIGJlIHF1b3RlZCksIGFu ZCByZW1vdmUKICAgICAgICBpdCBmcm9tIHRoZSBhcmd1bWVudCBsaXN0IHRvZ2V0aGVyIHdp dGggc3Vic2VxdWVudCBhcmd1bWVudHMgdGhhdAogICAgICAgIGRvIG5vdCBtYXRjaCB0aGlz IHBhdHRlcm4uCiAgICAgICAgCiAgICAKICAgIGBgLW5gYAogICAgICAgIAogICAgICAgIERv IG5vdCBhZGQgYSBuZXdsaW5lIHRvIHRoZSBvdXRwdXQuCiAgICAgICAgCiAgICAKICAgIGBg LU5gYAogICAgICAgIAogICAgICAgIFByaW50IHRoZSBhcmd1bWVudHMgc2VwYXJhdGVkIGFu ZCB0ZXJtaW5hdGVkIGJ5IG51bGxzLiBBZ2FpbiwKICAgICAgICBgYHByaW50IC1yTkMxIC0t ICIkbGlzdFtAXSJgYCBpcyBhIGNhbm9uaWNhbCB3YXkgdG8gcHJpbnQgYW4KICAgICAgICBh cmJpdHJhcnkgbGlzdCBhcyBudWxsLWRlbGltaXRlZCByZWNvcmRzLgogICAgICAgIAogICAg CiAgICBgYC1vYGAKICAgICAgICAKICAgICAgICBQcmludCB0aGUgYXJndW1lbnRzIHNvcnRl ZCBpbiBhc2NlbmRpbmcgb3JkZXIuCiAgICAgICAgCiAgICAKICAgIGBgLU9gYAogICAgICAg IAogICAgICAgIFByaW50IHRoZSBhcmd1bWVudHMgc29ydGVkIGluIGRlc2NlbmRpbmcgb3Jk ZXIuCiAgICAgICAgCiAgICAKICAgIGBgLXBgYAogICAgICAgIAogICAgICAgIFByaW50IHRo ZSBhcmd1bWVudHMgdG8gdGhlIGlucHV0IG9mIHRoZSBjb3Byb2Nlc3MuCiAgICAgICAgCiAg ICAKICAgIGBgLVBgYAogICAgICAgIAogICAgICAgIFBlcmZvcm0gcHJvbXB0IGV4cGFuc2lv biAoc2VlCiAgICAgICAgOnJlZjpgRXhwYW5zaW9uIG9mIFByb21wdCBTZXF1ZW5jZXNgKS4K ICAgICAgICBJbiBjb21iaW5hdGlvbiB3aXRoIGBgLWZgYCwKICAgICAgICBwcm9tcHQgZXNj YXBlIHNlcXVlbmNlcyBhcmUgcGFyc2VkIG9ubHkgd2l0aGluIGludGVycG9sYXRlZCBhcmd1 bWVudHMsCiAgICAgICAgbm90IHdpdGhpbiB0aGUgZm9ybWF0IHN0cmluZy4KICAgICAgICAK ICAgIAogICAgYGAtcmBgCiAgICAgICAgCiAgICAgICAgSWdub3JlIHRoZSBlc2NhcGUgY29u dmVudGlvbnMgb2YgYGBlY2hvYGAuCiAgICAgICAgCiAgICAKICAgIGBgLVJgYAogICAgICAg IAogICAgICAgIEVtdWxhdGUgdGhlIEJTRCBgYGVjaG9gYCBjb21tYW5kLCB3aGljaCBkb2Vz IG5vdCBwcm9jZXNzIGVzY2FwZSBzZXF1ZW5jZXMKICAgICAgICB1bmxlc3MgdGhlIGBgLWVg YCBmbGFnIGlzIGdpdmVuLiAgVGhlIGBgLW5gYCBmbGFnIHN1cHByZXNzZXMgdGhlIHRyYWls aW5nCiAgICAgICAgbmV3bGluZS4gIE9ubHkgdGhlIGBgLWVgYCBhbmQgYGAtbmBgIGZsYWdz IGFyZSByZWNvZ25pemVkIGFmdGVyCiAgICAgICAgYGAtUmBgOyBhbGwgb3RoZXIgYXJndW1l bnRzIGFuZCBvcHRpb25zIGFyZSBwcmludGVkLgogICAgICAgIAogICAgCiAgICBgYC1zYGAK ICAgICAgICAKICAgICAgICBQbGFjZSB0aGUgcmVzdWx0cyBpbiB0aGUgaGlzdG9yeSBsaXN0 IGluc3RlYWQgb2Ygb24gdGhlIHN0YW5kYXJkIG91dHB1dC4KICAgICAgICBFYWNoIGFyZ3Vt ZW50IHRvIHRoZSBgYHByaW50YGAgY29tbWFuZCBpcyB0cmVhdGVkIGFzIGEgc2luZ2xlIHdv cmQgaW4gdGhlCiAgICAgICAgaGlzdG9yeSwgcmVnYXJkbGVzcyBvZiBpdHMgY29udGVudC4K ICAgICAgICAKICAgIAogICAgYGAtU2BgCiAgICAgICAgCiAgICAgICAgUGxhY2UgdGhlIHJl c3VsdHMgaW4gdGhlIGhpc3RvcnkgbGlzdCBpbnN0ZWFkIG9mIG9uIHRoZSBzdGFuZGFyZCBv dXRwdXQuCiAgICAgICAgSW4gdGhpcyBjYXNlIG9ubHkgYSBzaW5nbGUgYXJndW1lbnQgaXMg YWxsb3dlZDsgaXQgd2lsbCBiZSBzcGxpdCBpbnRvCiAgICAgICAgd29yZHMgYXMgaWYgaXQg d2VyZSBhIGZ1bGwgc2hlbGwgY29tbWFuZCBsaW5lLiAgVGhlIGVmZmVjdCBpcwogICAgICAg IHNpbWlsYXIgdG8gcmVhZGluZyB0aGUgbGluZSBmcm9tIGEgaGlzdG9yeSBmaWxlIHdpdGgg dGhlCiAgICAgICAgYGBISVNUX0xFWF9XT1JEU2BgIG9wdGlvbiBhY3RpdmUuCiAgICAgICAg CiAgICAKICAgIGBgLXVgYCA6dmFyOmBuYAogICAgICAgIAogICAgICAgIFByaW50IHRoZSBh cmd1bWVudHMgdG8gZmlsZSBkZXNjcmlwdG9yIDp2YXI6YG5gLgogICAgICAgIAogICAgCiAg ICBgYC12YGAgOnZhcjpgbmFtZWAKICAgICAgICAKICAgICAgICBTdG9yZSB0aGUgcHJpbnRl ZCBhcmd1bWVudHMgYXMgdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIgOnZhcjpgbmFtZWAu CiAgICAgICAgCiAgICAKICAgIGBgLXhgYCA6dmFyOmB0YWItc3RvcGAKICAgICAgICAKICAg ICAgICBFeHBhbmQgbGVhZGluZyB0YWJzIG9uIGVhY2ggbGluZSBvZiBvdXRwdXQgaW4gdGhl IHByaW50ZWQgc3RyaW5nCiAgICAgICAgYXNzdW1pbmcgYSB0YWIgc3RvcCBldmVyeSA6dmFy OmB0YWItc3RvcGAgY2hhcmFjdGVycy4gIFRoaXMgaXMgYXBwcm9wcmlhdGUKICAgICAgICBm b3IgZm9ybWF0dGluZyBjb2RlIHRoYXQgbWF5IGJlIGluZGVudGVkIHdpdGggdGFicy4gIE5v dGUgdGhhdCBsZWFkaW5nCiAgICAgICAgdGFicyBvZiBhbnkgYXJndW1lbnQgdG8gcHJpbnQs IG5vdCBqdXN0IHRoZSBmaXJzdCwgYXJlIGV4cGFuZGVkLCBldmVuIGlmCiAgICAgICAgYGBw cmludGBgIGlzIHVzaW5nIHNwYWNlcyB0byBzZXBhcmF0ZSBhcmd1bWVudHMgKHRoZSBjb2x1 bW4gY291bnQKICAgICAgICBpcyBtYWludGFpbmVkIGFjcm9zcyBhcmd1bWVudHMgYnV0IG1h eSBiZSBpbmNvcnJlY3Qgb24gb3V0cHV0CiAgICAgICAgb3dpbmcgdG8gcHJldmlvdXMgdW5l eHBhbmRlZCB0YWJzKS4KICAgICAgICAKICAgICAgICBUaGUgc3RhcnQgb2YgdGhlIG91dHB1 dCBvZiBlYWNoIHByaW50IGNvbW1hbmQgaXMgYXNzdW1lZCB0byBiZSBhbGlnbmVkCiAgICAg ICAgd2l0aCBhIHRhYiBzdG9wLiAgV2lkdGhzIG9mIG11bHRpYnl0ZSBjaGFyYWN0ZXJzIGFy ZSBoYW5kbGVkIGlmIHRoZQogICAgICAgIG9wdGlvbiBgYE1VTFRJQllURWBgIGlzIGluIGVm ZmVjdC4gIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgaWYgb3RoZXIKICAgICAgICBmb3JtYXR0 aW5nIG9wdGlvbnMgYXJlIGluIGVmZmVjdCwgbmFtZWx5IGNvbHVtbiBhbGlnbm1lbnQgb3IK ICAgICAgICBgYHByaW50ZmBgIHN0eWxlLCBvciBpZiBvdXRwdXQgaXMgdG8gYSBzcGVjaWFs IGxvY2F0aW9uIHN1Y2ggYXMgc2hlbGwKICAgICAgICBoaXN0b3J5IG9yIHRoZSBjb21tYW5k IGxpbmUgZWRpdG9yLgogICAgICAgIAogICAgCiAgICBgYC1YYGAgOnZhcjpgdGFiLXN0b3Bg CiAgICAgICAgCiAgICAgICAgVGhpcyBpcyBzaW1pbGFyIHRvIGBgLXhgYCwgZXhjZXB0IHRo YXQgYWxsIHRhYnMgaW4gdGhlIHByaW50ZWQgc3RyaW5nCiAgICAgICAgYXJlIGV4cGFuZGVk LiAgVGhpcyBpcyBhcHByb3ByaWF0ZSBpZiB0YWJzIGluIHRoZSBhcmd1bWVudHMgYXJlCiAg ICAgICAgYmVpbmcgdXNlZCB0byBwcm9kdWNlIGEgdGFibGUgZm9ybWF0LgogICAgICAgIAog ICAgCiAgICBgYC16YGAKICAgICAgICAKICAgICAgICBQdXNoIHRoZSBhcmd1bWVudHMgb250 byB0aGUgZWRpdGluZyBidWZmZXIgc3RhY2ssIHNlcGFyYXRlZCBieSBzcGFjZXMuCiAgICAg ICAgCiAgICAKICAgIAogICAgCiAgICBJZiBhbnkgb2YgYGAtbWBgLCBgYC1vYGAgb3IgYGAt T2BgIGFyZSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGgKICAgIGBgLWZgYCBhbmQgdGhlcmUg YXJlIG5vIGFyZ3VtZW50cyAoYWZ0ZXIgdGhlIHJlbW92YWwgcHJvY2VzcyBpbiB0aGUKICAg IGNhc2Ugb2YgYGAtbWBgKSB0aGVuIG5vdGhpbmcgaXMgcHJpbnRlZC4KICAgIAoKLi4gaW5k ZXg6OiBzaW5nbGU6IHByaW50ZjsgRnVuY3Rpb24KCmBgcHJpbnRmYGAgWyBgYC12YGAgOnZh cjpgbmFtZWAgXSA6dmFyOmBmb3JtYXRgIFsgOnZhcjpgYXJnYCAuLi4gXQogICAgCiAgICBQ cmludCB0aGUgYXJndW1lbnRzIGFjY29yZGluZyB0byB0aGUgZm9ybWF0IHNwZWNpZmljYXRp b24uIEZvcm1hdHRpbmcKICAgIHJ1bGVzIGFyZSB0aGUgc2FtZSBhcyB1c2VkIGluIEMuIFRo ZSBzYW1lIGVzY2FwZSBzZXF1ZW5jZXMgYXMgZm9yIGBgZWNob2BgCiAgICBhcmUgcmVjb2du aXNlZCBpbiB0aGUgZm9ybWF0LiBBbGwgQyBjb252ZXJzaW9uIHNwZWNpZmljYXRpb25zIGVu ZGluZyBpbgogICAgb25lIG9mIGBgY3NkaW91eFhlRWZnR25gYCBhcmUgaGFuZGxlZC4gSW4g YWRkaXRpb24gdG8gdGhpcywgYGAlYmBgIGNhbiBiZQogICAgdXNlZCBpbnN0ZWFkIG9mIGBg JXNgYCB0byBjYXVzZSBlc2NhcGUgc2VxdWVuY2VzIGluIHRoZSBhcmd1bWVudCB0byBiZQog ICAgcmVjb2duaXNlZCBhbmQgYGAlcWBgIGNhbiBiZSB1c2VkIHRvIHF1b3RlIHRoZSBhcmd1 bWVudCBpbiBzdWNoIGEgd2F5CiAgICB0aGF0IGFsbG93cyBpdCB0byBiZSByZXVzZWQgYXMg c2hlbGwgaW5wdXQuIFdpdGggdGhlIG51bWVyaWMgZm9ybWF0CiAgICBzcGVjaWZpZXJzLCBp ZiB0aGUgY29ycmVzcG9uZGluZyBhcmd1bWVudCBzdGFydHMgd2l0aCBhIHF1b3RlIGNoYXJh Y3RlciwKICAgIHRoZSBudW1lcmljIHZhbHVlIG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVy IGlzIHVzZWQgYXMgdGhlIG51bWJlciB0bwogICAgcHJpbnQ7IG90aGVyd2lzZSB0aGUgYXJn dW1lbnQgaXMgZXZhbHVhdGVkIGFzIGFuIGFyaXRobWV0aWMgZXhwcmVzc2lvbi4gU2VlCiAg ICA6cmVmOmBBcml0aG1ldGljIEV2YWx1YXRpb25gIGZvciBhIGRlc2NyaXB0aW9uIG9mIGFy aXRobWV0aWMKICAgIGV4cHJlc3Npb25zLiBXaXRoIGBgJW5gYCwgdGhlIGNvcnJlc3BvbmRp bmcgYXJndW1lbnQgaXMgdGFrZW4gYXMgYW4KICAgIGlkZW50aWZpZXIgd2hpY2ggaXMgY3Jl YXRlZCBhcyBhbiBpbnRlZ2VyIHBhcmFtZXRlci4KICAgIAogICAgTm9ybWFsbHksIGNvbnZl cnNpb24gc3BlY2lmaWNhdGlvbnMgYXJlIGFwcGxpZWQgdG8gZWFjaCBhcmd1bWVudCBpbiBv cmRlcgogICAgYnV0IHRoZXkgY2FuIGV4cGxpY2l0bHkgc3BlY2lmeSB0aGUgOnZhcjpgbmBc dGggYXJndW1lbnQgaXMgdG8gYmUgdXNlZCBieQogICAgcmVwbGFjaW5nIGBgJWBgIGJ5IGBg JWBgOnZhcjpgbmBcIGBgJGBgIGFuZCBgYCpgYCBieSBgYCpgYDp2YXI6YG5gXCBgYCRgYC4K ICAgIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvIG5vdCBtaXggcmVmZXJlbmNlcyBv ZiB0aGlzIGV4cGxpY2l0IHN0eWxlCiAgICB3aXRoIHRoZSBub3JtYWwgc3R5bGUgYW5kIHRo ZSBoYW5kbGluZyBvZiBzdWNoIG1peGVkIHN0eWxlcyBtYXkgYmUgc3ViamVjdAogICAgdG8g ZnV0dXJlIGNoYW5nZS4KICAgIAogICAgSWYgYXJndW1lbnRzIHJlbWFpbiB1bnVzZWQgYWZ0 ZXIgZm9ybWF0dGluZywgdGhlIGZvcm1hdCBzdHJpbmcgaXMgcmV1c2VkCiAgICB1bnRpbCBh bGwgYXJndW1lbnRzIGhhdmUgYmVlbiBjb25zdW1lZC4gV2l0aCB0aGUgYGBwcmludGBgIGJ1 aWx0aW4sIHRoaXMKICAgIGNhbiBiZSBzdXBwcmVzc2VkIGJ5IHVzaW5nIHRoZSBgYC1yYGAg b3B0aW9uLiBJZiBtb3JlIGFyZ3VtZW50cyBhcmUKICAgIHJlcXVpcmVkIGJ5IHRoZSBmb3Jt YXQgdGhhbiBoYXZlIGJlZW4gc3BlY2lmaWVkLCB0aGUgYmVoYXZpb3VyIGlzIGFzIGlmCiAg ICB6ZXJvIG9yIGFuIGVtcHR5IHN0cmluZyBoYWQgYmVlbiBzcGVjaWZpZWQgYXMgdGhlIGFy Z3VtZW50LgogICAgCiAgICBUaGUgYGAtdmBgIG9wdGlvbiBjYXVzZXMgdGhlIG91dHB1dCB0 byBiZSBzdG9yZWQgYXMgdGhlIHZhbHVlIG9mIHRoZQogICAgcGFyYW1ldGVyIDp2YXI6YG5h bWVgLCBpbnN0ZWFkIG9mIHByaW50ZWQuIElmIDp2YXI6YG5hbWVgIGlzIGFuIGFycmF5IGFu ZAogICAgdGhlIGZvcm1hdCBzdHJpbmcgaXMgcmV1c2VkIHdoZW4gY29uc3VtaW5nIGFyZ3Vt ZW50cyB0aGVuIG9uZQogICAgYXJyYXkgZWxlbWVudCB3aWxsIGJlIHVzZWQgZm9yIGVhY2gg dXNlIG9mIHRoZSBmb3JtYXQgc3RyaW5nLgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogcHVz aGQ7IEZ1bmN0aW9uCgouLiBpbmRleDo6IHNpbmdsZTogUFVTSERfVE9fSE9NRSwgdXNlIG9m OyBQcm9ncmFtCgouLiBpbmRleDo6IHNpbmdsZTogUFVTSERfTUlOVVMsIHVzZSBvZjsgUHJv Z3JhbQoKLi4gaW5kZXg6OiBzaW5nbGU6IENEQUJMRV9WQVJTLCB1c2Ugb2Y7IFByb2dyYW0K Ci4uIGluZGV4Ojogc2luZ2xlOiBQVVNIRF9TSUxFTlQsIHVzZSBvZjsgUHJvZ3JhbQoKYGBw dXNoZGBgIFsgYGAtcXNMUGBgIF0gWyA6dmFyOmBhcmdgIF0KCmBgcHVzaGRgYCBbIGBgLXFz TFBgYCBdIDp2YXI6YG9sZGAgOnZhcjpgbmV3YAoKYGBwdXNoZGBgIFsgYGAtcXNMUGBgIF0g e2BgK3wtYGB9OnZhcjpgbmAKICAgIAogICAgQ2hhbmdlIHRoZSBjdXJyZW50IGRpcmVjdG9y eSwgYW5kIHB1c2ggdGhlIG9sZCBjdXJyZW50IGRpcmVjdG9yeQogICAgb250byB0aGUgZGly ZWN0b3J5IHN0YWNrLiAgSW4gdGhlIGZpcnN0IGZvcm0sIGNoYW5nZSB0aGUKICAgIGN1cnJl bnQgZGlyZWN0b3J5IHRvIDp2YXI6YGFyZ2AuCiAgICBJZiA6dmFyOmBhcmdgIGlzIG5vdCBz cGVjaWZpZWQsIGNoYW5nZSB0byB0aGUgc2Vjb25kIGRpcmVjdG9yeQogICAgb24gdGhlIHN0 YWNrICh0aGF0IGlzLCBleGNoYW5nZSB0aGUgdG9wIHR3byBlbnRyaWVzKSwgb3IKICAgIGNo YW5nZSB0byBgYCRIT01FYGAgaWYgdGhlIGBgUFVTSERfVE9fSE9NRWBgCiAgICBvcHRpb24g aXMgc2V0IG9yIGlmIHRoZXJlIGlzIG9ubHkgb25lIGVudHJ5IG9uIHRoZSBzdGFjay4KICAg IE90aGVyd2lzZSwgOnZhcjpgYXJnYCBpcyBpbnRlcnByZXRlZCBhcyBpdCB3b3VsZCBiZSBi eSBgYGNkYGAuCiAgICBUaGUgbWVhbmluZyBvZiA6dmFyOmBvbGRgIGFuZCA6dmFyOmBuZXdg IGluIHRoZSBzZWNvbmQgZm9ybSBpcyBhbHNvCiAgICB0aGUgc2FtZSBhcyBmb3IgYGBjZGBg LgogICAgCiAgICBUaGUgdGhpcmQgZm9ybSBvZiBgYHB1c2hkYGAgY2hhbmdlcyBkaXJlY3Rv cnkgYnkgcm90YXRpbmcgdGhlCiAgICBkaXJlY3RvcnkgbGlzdC4gIEFuIGFyZ3VtZW50IG9m IHRoZSBmb3JtIGBgK2BgOnZhcjpgbmAgaWRlbnRpZmllcyBhIHN0YWNrCiAgICBlbnRyeSBi eSBjb3VudGluZyBmcm9tIHRoZSBsZWZ0IG9mIHRoZSBsaXN0IHNob3duIGJ5IHRoZSBgYGRp cnNgYAogICAgY29tbWFuZCwgc3RhcnRpbmcgd2l0aCB6ZXJvLiAgQW4gYXJndW1lbnQgb2Yg dGhlIGZvcm0gYGAtYGA6dmFyOmBuYCBjb3VudHMKICAgIGZyb20gdGhlIHJpZ2h0LiAgSWYg dGhlIGBgUFVTSERfTUlOVVNgYCBvcHRpb24gaXMgc2V0LCB0aGUgbWVhbmluZ3MKICAgIG9m IGBgK2BgIGFuZCBgYC1gYCBpbiB0aGlzIGNvbnRleHQgYXJlIHN3YXBwZWQuCiAgICAKICAg IElmIHRoZSBgYC1xYGAgKHF1aWV0KSBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGUgaG9vayBm dW5jdGlvbiBgYGNocHdkYGAKICAgIGFuZCB0aGUgZnVuY3Rpb25zIGluIHRoZSBhcnJheSBg YCRjaHB3ZF9mdW5jdGlvbnNgYCBhcmUgbm90IGNhbGxlZCwKICAgIGFuZCB0aGUgbmV3IGRp cmVjdG9yeSBzdGFjayBpcyBub3QgcHJpbnRlZC4gIFRoaXMgaXMgdXNlZnVsIGZvciBjYWxs cyB0bwogICAgYGBwdXNoZGBgIHRoYXQgZG8gbm90IGNoYW5nZSB0aGUgZW52aXJvbm1lbnQg c2VlbiBieSBhbiBpbnRlcmFjdGl2ZSB1c2VyLgogICAgCiAgICBJZiB0aGUgb3B0aW9uIGBg LXFgYCBpcyBub3Qgc3BlY2lmaWVkIGFuZCB0aGUgc2hlbGwgb3B0aW9uIGBgUFVTSERfU0lM RU5UYGAKICAgIGlzIG5vdCBzZXQsIHRoZSBkaXJlY3Rvcnkgc3RhY2sgd2lsbCBiZSBwcmlu dGVkIGFmdGVyIGEgYGBwdXNoZGBgIGlzCiAgICBwZXJmb3JtZWQuCiAgICAKICAgIFRoZSBv cHRpb25zIGBgLXNgYCwgYGAtTGBgIGFuZCBgYC1QYGAgaGF2ZSB0aGUgc2FtZSBtZWFuaW5n cyBhcyBmb3IgdGhlCiAgICBgYGNkYGAgYnVpbHRpbi4KICAgIAoKLi4gaW5kZXg6OiBzaW5n bGU6IHB1c2hsbjsgRnVuY3Rpb24KCmBgcHVzaGxuYGAgWyA6dmFyOmBhcmdgIC4uLiBdCiAg ICAKICAgIEVxdWl2YWxlbnQgdG8gYGBwcmludCAtbnpgYC4KICAgIAoKLi4gaW5kZXg6OiBz aW5nbGU6IHB3ZDsgRnVuY3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiBDSEFTRV9MSU5LUywg dXNlIG9mOyBQcm9ncmFtCgpgYHB3ZGBgIFsgYGAtckxQYGAgXQogICAgCiAgICBQcmludCB0 aGUgYWJzb2x1dGUgcGF0aG5hbWUgb2YgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnku CiAgICBJZiB0aGUgYGAtcmBgIG9yIHRoZSBgYC1QYGAgZmxhZyBpcyBzcGVjaWZpZWQsIG9y IHRoZSBgYENIQVNFX0xJTktTYGAKICAgIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBgYC1MYGAg ZmxhZyBpcyBub3QgZ2l2ZW4sIHRoZSBwcmludGVkIHBhdGggd2lsbCBub3QKICAgIGNvbnRh aW4gc3ltYm9saWMgbGlua3MuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiByOyBGdW5jdGlv bgoKYGByYGAKICAgIAogICAgU2FtZSBhcyBgYGZjIC1lIC1gYC4KICAgIAoKLi4gaW5kZXg6 OiBzaW5nbGU6IHJlYWQ7IEZ1bmN0aW9uCgouLiBpbmRleDo6IHNpbmdsZTogSUZTLCB1c2Ug b2Y7IFZhcmlhYmxlCgpgYHJlYWRgYCBbIGBgLXJzenBxQWNsbmVFYGAgXSBbIGBgLXRgYCBb IDp2YXI6YG51bWAgXSBdIFsgYGAta2BgIFsgOnZhcjpgbnVtYCBdIF0gWyBgYC1kYGAgOnZh cjpgZGVsaW1gIF0KCiAgICAgWyBgYC11YGAgOnZhcjpgbmAgXSBbIFs6dmFyOmBuYW1lYF1b YGA/YGA6dmFyOmBwcm9tcHRgXSBdIFsgOnZhcjpgbmFtZWAgLi4uICBdCiAgICAKICAgIC4u IGluZGV4Ojogc2luZ2xlOiBSRVBMWSwgdXNlIG9mOyBWYXJpYWJsZQogICAgCiAgICAKICAg IC4uIGluZGV4Ojogc2luZ2xlOiByZXBseSwgdXNlIG9mOyBWYXJpYWJsZQogICAgCiAgICAK ICAgIFJlYWQgb25lIGxpbmUgYW5kIGJyZWFrIGl0IGludG8gZmllbGRzIHVzaW5nIHRoZSBj aGFyYWN0ZXJzCiAgICBpbiBgYCRJRlNgYCBhcyBzZXBhcmF0b3JzLCBleGNlcHQgYXMgbm90 ZWQgYmVsb3cuCiAgICBUaGUgZmlyc3QgZmllbGQgaXMgYXNzaWduZWQgdG8gdGhlIGZpcnN0 IDp2YXI6YG5hbWVgLCB0aGUgc2Vjb25kIGZpZWxkCiAgICB0byB0aGUgc2Vjb25kIDp2YXI6 YG5hbWVgLCBldGMuLCB3aXRoIGxlZnRvdmVyCiAgICBmaWVsZHMgYXNzaWduZWQgdG8gdGhl IGxhc3QgOnZhcjpgbmFtZWAuCiAgICBJZiA6dmFyOmBuYW1lYCBpcyBvbWl0dGVkIHRoZW4K ICAgIGBgUkVQTFlgYCBpcyB1c2VkIGZvciBzY2FsYXJzIGFuZCBgYHJlcGx5YGAgZm9yIGFy cmF5cy4KICAgIAogICAgCiAgICBgYC1yYGAKICAgICAgICAKICAgICAgICBSYXcgbW9kZTog YSBgYFxgYCBhdCB0aGUgZW5kIG9mIGEgbGluZSBkb2VzIG5vdCBzaWduaWZ5IGxpbmUKICAg ICAgICBjb250aW51YXRpb24gYW5kIGJhY2tzbGFzaGVzIGluIHRoZSBsaW5lIGRvbid0IHF1 b3RlIHRoZSBmb2xsb3dpbmcKICAgICAgICBjaGFyYWN0ZXIgYW5kIGFyZSBub3QgcmVtb3Zl ZC4KICAgICAgICAKICAgIAogICAgYGAtc2BgCiAgICAgICAgCiAgICAgICAgRG9uJ3QgZWNo byBiYWNrIGNoYXJhY3RlcnMgaWYgcmVhZGluZyBmcm9tIHRoZSB0ZXJtaW5hbC4KICAgICAg ICAKICAgIAogICAgYGAtcWBgCiAgICAgICAgCiAgICAgICAgUmVhZCBvbmx5IG9uZSBjaGFy YWN0ZXIgZnJvbSB0aGUgdGVybWluYWwgYW5kIHNldCA6dmFyOmBuYW1lYCB0bwogICAgICAg IGBgeWBgIGlmIHRoaXMgY2hhcmFjdGVyIHdhcyBgYHlgYCBvciBgYFlgYCBhbmQgdG8gYGBu YGAgb3RoZXJ3aXNlLgogICAgICAgIFdpdGggdGhpcyBmbGFnIHNldCB0aGUgcmV0dXJuIHN0 YXR1cyBpcyB6ZXJvIG9ubHkgaWYgdGhlIGNoYXJhY3RlciB3YXMKICAgICAgICBgYHlgYCBv ciBgYFlgYC4gIFRoaXMgb3B0aW9uIG1heSBiZSB1c2VkIHdpdGggYSB0aW1lb3V0IChzZWUg YGAtdGBgKTsgaWYKICAgICAgICB0aGUgcmVhZCB0aW1lcyBvdXQsIG9yIGVuY291bnRlcnMg ZW5kIG9mIGZpbGUsIHN0YXR1cyAyIGlzIHJldHVybmVkLiAgSW5wdXQgaXMKICAgICAgICBy ZWFkIGZyb20gdGhlIHRlcm1pbmFsIHVubGVzcyBvbmUgb2YgYGAtdWBgIG9yIGBgLXBgYCBp cyBwcmVzZW50LiAgVGhpcyBvcHRpb24KICAgICAgICBtYXkgYWxzbyBiZSB1c2VkIHdpdGhp biB6bGUgd2lkZ2V0cy4KICAgICAgICAKICAgIAogICAgYGAta2BgIFsgOnZhcjpgbnVtYCBd CiAgICAgICAgCiAgICAgICAgUmVhZCBvbmx5IG9uZSAob3IgOnZhcjpgbnVtYCkgY2hhcmFj dGVycy4gIEFsbCBhcmUgYXNzaWduZWQgdG8gdGhlIGZpcnN0CiAgICAgICAgOnZhcjpgbmFt ZWAsIHdpdGhvdXQgd29yZCBzcGxpdHRpbmcuICBUaGlzIGZsYWcgaXMgaWdub3JlZCB3aGVu IGBgLXFgYCBpcwogICAgICAgIHByZXNlbnQuICBJbnB1dCBpcyByZWFkIGZyb20gdGhlIHRl cm1pbmFsIHVubGVzcyBvbmUgb2YgYGAtdWBgIG9yIGBgLXBgYAogICAgICAgIGlzIHByZXNl bnQuICBUaGlzIG9wdGlvbiBtYXkgYWxzbyBiZSB1c2VkIHdpdGhpbiB6bGUgd2lkZ2V0cy4K ICAgICAgICAKICAgICAgICBOb3RlIHRoYXQgZGVzcGl0ZSB0aGUgbW5lbW9uaWMgXGBrZXkn IHRoaXMgb3B0aW9uIGRvZXMgcmVhZCBmdWxsCiAgICAgICAgY2hhcmFjdGVycywgd2hpY2gg bWF5IGNvbnNpc3Qgb2YgbXVsdGlwbGUgYnl0ZXMgaWYgdGhlIG9wdGlvbgogICAgICAgIGBg TVVMVElCWVRFYGAgaXMgc2V0LgogICAgICAgIAogICAgCiAgICBgYC16YGAKICAgICAgICAK ICAgICAgICBSZWFkIG9uZSBlbnRyeSBmcm9tIHRoZSBlZGl0b3IgYnVmZmVyIHN0YWNrIGFu ZCBhc3NpZ24gaXQgdG8gdGhlIGZpcnN0CiAgICAgICAgOnZhcjpgbmFtZWAsIHdpdGhvdXQg d29yZCBzcGxpdHRpbmcuICBUZXh0IGlzIHB1c2hlZCBvbnRvIHRoZSBzdGFjayB3aXRoCiAg ICAgICAgYGBwcmludCAtemBgIG9yIHdpdGggYGBwdXNoLWxpbmVgYCBmcm9tIHRoZSBsaW5l IGVkaXRvciAoc2VlCiAgICAgICAgOm1hbnBhZ2U6YHpzaHpsZWApLgogICAgICAgIFRoaXMg ZmxhZyBpcyBpZ25vcmVkIHdoZW4gdGhlIGBgLWtgYCBvciBgYC1xYGAgZmxhZ3MgYXJlIHBy ZXNlbnQuCiAgICAgICAgCiAgICAKICAgIGBgLWVgYAogICAgCiAgICBgYC1FYGAKICAgICAg ICAKICAgICAgICBUaGUgaW5wdXQgcmVhZCBpcyBwcmludGVkIChlY2hvZWQpIHRvIHRoZSBz dGFuZGFyZCBvdXRwdXQuICBJZiB0aGUgYGAtZWBgCiAgICAgICAgZmxhZyBpcyB1c2VkLCBu byBpbnB1dCBpcyBhc3NpZ25lZCB0byB0aGUgcGFyYW1ldGVycy4KICAgICAgICAKICAgIAog ICAgYGAtQWBgCiAgICAgICAgCiAgICAgICAgVGhlIGZpcnN0IDp2YXI6YG5hbWVgIGlzIHRh a2VuIGFzIHRoZSBuYW1lIG9mIGFuIGFycmF5IGFuZCBhbGwgd29yZHMgYXJlCiAgICAgICAg YXNzaWduZWQgdG8gaXQuCiAgICAgICAgCiAgICAKICAgIGBgLWNgYAogICAgCiAgICBgYC1s YGAKICAgICAgICAKICAgICAgICBUaGVzZSBmbGFncyBhcmUgYWxsb3dlZCBvbmx5IGlmIGNh bGxlZCBpbnNpZGUgYQogICAgICAgIGZ1bmN0aW9uIHVzZWQgZm9yIGNvbXBsZXRpb24gKHNw ZWNpZmllZCB3aXRoIHRoZSBgYC1LYGAgZmxhZyB0bwogICAgICAgIGBgY29tcGN0bGBgKS4g IElmIHRoZSBgYC1jYGAgZmxhZyBpcyBnaXZlbiwgdGhlIHdvcmRzIG9mIHRoZQogICAgICAg IGN1cnJlbnQgY29tbWFuZCBhcmUgcmVhZC4gSWYgdGhlIGBgLWxgYCBmbGFnIGlzIGdpdmVu LCB0aGUgd2hvbGUKICAgICAgICBsaW5lIGlzIGFzc2lnbmVkIGFzIGEgc2NhbGFyLiAgSWYg Ym90aCBmbGFncyBhcmUgcHJlc2VudCwgYGAtbGBgCiAgICAgICAgaXMgdXNlZCBhbmQgYGAt Y2BgIGlzIGlnbm9yZWQuCiAgICAgICAgCiAgICAKICAgIGBgLW5gYAogICAgICAgIAogICAg ICAgIFRvZ2V0aGVyIHdpdGggYGAtY2BgLCB0aGUgbnVtYmVyIG9mIHRoZSB3b3JkIHRoZSBj dXJzb3IgaXMgb24gaXMKICAgICAgICByZWFkLiAgV2l0aCBgYC1sYGAsIHRoZSBpbmRleCBv ZiB0aGUgY2hhcmFjdGVyIHRoZSBjdXJzb3IgaXMgb24gaXMKICAgICAgICByZWFkLiAgTm90 ZSB0aGF0IHRoZSBjb21tYW5kIG5hbWUgaXMgd29yZCBudW1iZXIgMSwgbm90IHdvcmQgMCwK ICAgICAgICBhbmQgdGhhdCB3aGVuIHRoZSBjdXJzb3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUg bGluZSwgaXRzIGNoYXJhY3RlcgogICAgICAgIGluZGV4IGlzIHRoZSBsZW5ndGggb2YgdGhl IGxpbmUgcGx1cyBvbmUuCiAgICAgICAgCiAgICAKICAgIGBgLXVgYCA6dmFyOmBuYAogICAg ICAgIAogICAgICAgIElucHV0IGlzIHJlYWQgZnJvbSBmaWxlIGRlc2NyaXB0b3IgOnZhcjpg bmAuCiAgICAgICAgCiAgICAKICAgIGBgLXBgYAogICAgICAgIAogICAgICAgIElucHV0IGlz IHJlYWQgZnJvbSB0aGUgY29wcm9jZXNzLgogICAgICAgIAogICAgCiAgICBgYC1kYGAgOnZh cjpgZGVsaW1gCiAgICAgICAgCiAgICAgICAgSW5wdXQgaXMgdGVybWluYXRlZCBieSB0aGUg Zmlyc3QgY2hhcmFjdGVyIG9mIDp2YXI6YGRlbGltYCBpbnN0ZWFkIG9mCiAgICAgICAgYnkg bmV3bGluZS4gIEZvciBjb21wYXRpYmlsaXR5IHdpdGggb3RoZXIgc2hlbGxzLCBpZiA6dmFy OmBkZWxpbWAgaXMgYW4KICAgICAgICBlbXB0eSBzdHJpbmcsIGlucHV0IGlzIHRlcm1pbmF0 ZWQgYXQgdGhlIGZpcnN0IE5VTC4KICAgICAgICAKICAgIAogICAgYGAtdGBgIFsgOnZhcjpg bnVtYCBdCiAgICAgICAgCiAgICAgICAgVGVzdCBpZiBpbnB1dCBpcyBhdmFpbGFibGUgYmVm b3JlIGF0dGVtcHRpbmcgdG8gcmVhZC4gIElmIDp2YXI6YG51bWAKICAgICAgICBpcyBwcmVz ZW50LCBpdCBtdXN0IGJlZ2luIHdpdGggYSBkaWdpdCBhbmQgd2lsbCBiZSBldmFsdWF0ZWQK ICAgICAgICB0byBnaXZlIGEgbnVtYmVyIG9mIHNlY29uZHMsIHdoaWNoIG1heSBiZSBhIGZs b2F0aW5nIHBvaW50IG51bWJlcjsKICAgICAgICBpbiB0aGlzIGNhc2UgdGhlIHJlYWQgdGlt ZXMgb3V0IGlmIGlucHV0IGlzIG5vdCBhdmFpbGFibGUgd2l0aGluIHRoaXMKICAgICAgICB0 aW1lLiAgSWYgOnZhcjpgbnVtYCBpcyBub3QgcHJlc2VudCwgaXQgaXMgdGFrZW4gdG8gYmUg emVybywgc28gdGhhdAogICAgICAgIGBgcmVhZGBgIHJldHVybnMgaW1tZWRpYXRlbHkgaWYg bm8gaW5wdXQgaXMgYXZhaWxhYmxlLgogICAgICAgIElmIG5vIGlucHV0IGlzIGF2YWlsYWJs ZSwgcmV0dXJuIHN0YXR1cyAxIGFuZCBkbyBub3Qgc2V0IGFueSB2YXJpYWJsZXMuCiAgICAg ICAgLi4gb25seTo6IG1hbgogICAgICAgIAogICAgICAgICAKICAgICAgICAKICAgICAgICBU aGlzIG9wdGlvbiBpcyBub3QgYXZhaWxhYmxlIHdoZW4gcmVhZGluZyBmcm9tIHRoZSBlZGl0 b3IgYnVmZmVyIHdpdGgKICAgICAgICBgYC16YGAsIHdoZW4gY2FsbGVkIGZyb20gd2l0aGlu IGNvbXBsZXRpb24gd2l0aCBgYC1jYGAgb3IgYGAtbGBgLCB3aXRoCiAgICAgICAgYGAtcWBg IHdoaWNoIGNsZWFycyB0aGUgaW5wdXQgcXVldWUgYmVmb3JlIHJlYWRpbmcsIG9yIHdpdGhp biB6bGUgd2hlcmUKICAgICAgICBvdGhlciBtZWNoYW5pc21zIHNob3VsZCBiZSB1c2VkIHRv IHRlc3QgZm9yIGlucHV0LgogICAgICAgIC4uIG9ubHk6OiBtYW4KICAgICAgICAKICAgICAg ICAgCiAgICAgICAgCiAgICAgICAgTm90ZSB0aGF0IHJlYWQgZG9lcyBub3QgYXR0ZW1wdCB0 byBhbHRlciB0aGUgaW5wdXQgcHJvY2Vzc2luZyBtb2RlLiAgVGhlCiAgICAgICAgZGVmYXVs dCBtb2RlIGlzIGNhbm9uaWNhbCBpbnB1dCwgaW4gd2hpY2ggYW4gZW50aXJlIGxpbmUgaXMg cmVhZCBhdCBhIHRpbWUsCiAgICAgICAgc28gdXN1YWxseSBgYHJlYWQgLXRgYCB3aWxsIG5v dCByZWFkIGFueXRoaW5nIHVudGlsIGFuIGVudGlyZSBsaW5lIGhhcwogICAgICAgIGJlZW4g dHlwZWQuICBIb3dldmVyLCB3aGVuIHJlYWRpbmcgZnJvbSB0aGUgdGVybWluYWwgd2l0aCBg YC1rYGAKICAgICAgICBpbnB1dCBpcyBwcm9jZXNzZWQgb25lIGtleSBhdCBhIHRpbWU7IGlu IHRoaXMgY2FzZSwgb25seSBhdmFpbGFiaWxpdHkgb2YKICAgICAgICB0aGUgZmlyc3QgY2hh cmFjdGVyIGlzIHRlc3RlZCwgc28gdGhhdCBlLmcuIGBgcmVhZCAtdCAtayAyYGAgY2FuIHN0 aWxsCiAgICAgICAgYmxvY2sgb24gdGhlIHNlY29uZCBjaGFyYWN0ZXIuICBVc2UgdHdvIGlu c3RhbmNlcyBvZiBgYHJlYWQgLXQgLWtgYCBpZgogICAgICAgIHRoaXMgaXMgbm90IHdoYXQg aXMgd2FudGVkLgogICAgICAgIAogICAgCiAgICAKICAgIAogICAgSWYgdGhlIGZpcnN0IGFy Z3VtZW50IGNvbnRhaW5zIGEgYGA/YGAsIHRoZSByZW1haW5kZXIgb2YgdGhpcwogICAgd29y ZCBpcyB1c2VkIGFzIGEgOnZhcjpgcHJvbXB0YCBvbiBzdGFuZGFyZCBlcnJvciB3aGVuIHRo ZSBzaGVsbAogICAgaXMgaW50ZXJhY3RpdmUuCiAgICAKICAgIFRoZSB2YWx1ZSAoZXhpdCBz dGF0dXMpIG9mIGBgcmVhZGBgIGlzIDEgd2hlbiBhbiBlbmQtb2YtZmlsZSBpcwogICAgZW5j b3VudGVyZWQsIG9yIHdoZW4gYGAtY2BgIG9yIGBgLWxgYCBpcyBwcmVzZW50IGFuZCB0aGUg Y29tbWFuZCBpcwogICAgbm90IGNhbGxlZCBmcm9tIGEgYGBjb21wY3RsYGAgZnVuY3Rpb24s IG9yIGFzIGRlc2NyaWJlZCBmb3IgYGAtcWBgLgogICAgT3RoZXJ3aXNlIHRoZSB2YWx1ZSBp cyAwLgogICAgCiAgICBUaGUgYmVoYXZpb3Igb2Ygc29tZSBjb21iaW5hdGlvbnMgb2YgdGhl IGBgLWtgYCwgYGAtcGBgLCBgYC1xYGAsIGBgLXVgYAogICAgYW5kIGBgLXpgYCBmbGFncyBp cyB1bmRlZmluZWQuICBQcmVzZW50bHkgYGAtcWBgIGNhbmNlbHMgYWxsIHRoZSBvdGhlcnMs CiAgICBgYC1wYGAgY2FuY2VscyBgYC11YGAsIGBgLWtgYCBjYW5jZWxzIGBgLXpgYCwgYW5k IG90aGVyd2lzZSBgYC16YGAKICAgIGNhbmNlbHMgYm90aCBgYC1wYGAgYW5kIGBgLXVgYC4K ICAgIAogICAgVGhlIGBgLWNgYCBvciBgYC1sYGAgZmxhZ3MgY2FuY2VsIGFueSBhbmQgYWxs IG9mIGBgLWtwcXV6YGAuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiByZWFkb25seTsgRnVu Y3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiBwYXJhbWV0ZXJzLCBtYXJraW5nIHJlYWRvbmx5 OyBDb21tYW5kCgpgYHJlYWRvbmx5YGAKICAgIAogICAgU2FtZSBhcyBgYHR5cGVzZXQgLXJg YC4gIFdpdGggdGhlIGBgUE9TSVhfQlVJTFRJTlNgYCBvcHRpb24gc2V0LCBzYW1lCiAgICBh cyBgYHR5cGVzZXQgLWdyYGAuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiByZWhhc2g7IEZ1 bmN0aW9uCgpgYHJlaGFzaGBgCiAgICAKICAgIFNhbWUgYXMgYGBoYXNoIC1yYGAuCiAgICAK Ci4uIGluZGV4Ojogc2luZ2xlOiByZXR1cm47IEZ1bmN0aW9uCgouLiBpbmRleDo6IHNpbmds ZTogZnVuY3Rpb25zLCByZXR1cm5pbmcgZnJvbTsgQ29tbWFuZAoKYGByZXR1cm5gYCBbIDp2 YXI6YG5gIF0KICAgIAogICAgQ2F1c2VzIGEgc2hlbGwgZnVuY3Rpb24gb3IgYGAuYGAgc2Ny aXB0IHRvIHJldHVybiB0bwogICAgdGhlIGludm9raW5nIHNjcmlwdCB3aXRoIHRoZSByZXR1 cm4gc3RhdHVzIHNwZWNpZmllZCBieQogICAgYW4gYXJpdGhtZXRpYyBleHByZXNzaW9uIDp2 YXI6YG5gLiAgQWxzbyBjYXVzZXMgYSBub24taW50ZXJhY3RpdmUKICAgIHNoZWxsIHRvIGV4 aXQsIGFsbG93aW5nIGZpbGVzIGNvbnRhaW5pbmcgc2hlbGwgY29kZSB0byBiZSB1c2VkCiAg ICBib3RoIGFzIHNjcmlwdHMgYW5kIGFzIGF1dG9sb2FkYWJsZSBzaGVsbCBmdW5jdGlvbnMu CiAgICBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBwcmludHMgYGA0MmBgOgogICAgCiAg ICAuLiBwYXJzZWQtbGl0ZXJhbDo6CiAgICAgICA6Y2xhc3M6IGV4YW1wbGUKICAgIAoKICAg ICAgICAoKSB7IGludGVnZXIgZm9vPTQwOyByZXR1cm4gImZvbyArIDIiIH0KICAgICAgICBl Y2hvICQ/CiAgICAKICAgIAogICAgSWYgOnZhcjpgbmAKICAgIGlzIG9taXR0ZWQsIHRoZSBy ZXR1cm4gc3RhdHVzIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFuZAogICAgZXhlY3V0ZWQu CiAgICAKICAgIElmIGBgcmV0dXJuYGAgd2FzIGV4ZWN1dGVkIGZyb20gYSB0cmFwIGluIGEg YGBUUkFQYGA6dmFyOmBOQUxgIGZ1bmN0aW9uLAogICAgdGhlIGVmZmVjdCBpcyBkaWZmZXJl bnQgZm9yIHplcm8gYW5kIG5vbi16ZXJvIHJldHVybiBzdGF0dXMuICBXaXRoIHplcm8KICAg IHN0YXR1cyAob3IgYWZ0ZXIgYW4gaW1wbGljaXQgcmV0dXJuIGF0IHRoZSBlbmQgb2YgdGhl IHRyYXApLCB0aGUgc2hlbGwKICAgIHdpbGwgcmV0dXJuIHRvIHdoYXRldmVyIGl0IHdhcyBw cmV2aW91c2x5IHByb2Nlc3Npbmc7IHdpdGggYSBub24temVybwogICAgc3RhdHVzLCB0aGUg c2hlbGwgd2lsbCBiZWhhdmUgYXMgaW50ZXJydXB0ZWQgZXhjZXB0IHRoYXQgdGhlIHJldHVy bgogICAgc3RhdHVzIG9mIHRoZSB0cmFwIGlzIHJldGFpbmVkLiAgTm90ZSB0aGF0IHRoZSBu dW1lcmljIHZhbHVlIG9mIHRoZSBzaWduYWwKICAgIHdoaWNoIGNhdXNlZCB0aGUgdHJhcCBp cyBwYXNzZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LCBzbyB0aGUgc3RhdGVtZW50CiAgICBg YHJldHVybiAiMTI4KyQxImBgIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHN0YXR1cyBhcyBpZiB0 aGUgc2lnbmFsCiAgICBoYWQgbm90IGJlZW4gdHJhcHBlZC4KICAgIAoKYGBzY2hlZGBgCiAg ICAKICAgIFNlZSA6cmVmOmBUaGUgenNoL3NjaGVkIE1vZHVsZWAuCiAgICAKCi4uIGluZGV4 Ojogc2luZ2xlOiBzZXQ7IEZ1bmN0aW9uCgouLiBpbmRleDo6IHNpbmdsZTogcGFyYW1ldGVy cywgbGlzdGluZzsgQ29tbWFuZAoKLi4gaW5kZXg6OiBzaW5nbGU6IHBhcmFtZXRlcnMsIHBv c2l0aW9uYWw7IENvbW1hbmQKCi4uIGluZGV4Ojogc2luZ2xlOiBwYXJhbWV0ZXJzLCBzZXR0 aW5nIGFycmF5OyBDb21tYW5kCgouLiBpbmRleDo6IHNpbmdsZTogYXJyYXkgcGFyYW1ldGVy cywgc2V0dGluZzsgQ29tbWFuZAoKLi4gaW5kZXg6OiBzaW5nbGU6IEtTSF9BUlJBWVMsIHVz ZSBvZjsgUHJvZ3JhbQoKYGBzZXRgYCBbIHtgYCt8LWBgfTp2YXI6YG9wdGlvbnNgIHwge2Bg K3wtfW9gYCBbIDp2YXI6YG9wdGlvbl9uYW1lYCBdIF0gLi4uIFsge2BgK3wtfUFgYCBbIDp2 YXI6YG5hbWVgIF0gXQoKICAgIFsgOnZhcjpgYXJnYCAuLi4gXQogICAgCiAgICBTZXQgdGhl IG9wdGlvbnMgZm9yIHRoZSBzaGVsbCBhbmQvb3Igc2V0IHRoZSBwb3NpdGlvbmFsIHBhcmFt ZXRlcnMsIG9yCiAgICBkZWNsYXJlIGFuZCBzZXQgYW4gYXJyYXkuICBJZiB0aGUgYGAtc2Bg IG9wdGlvbiBpcyBnaXZlbiwgaXQgY2F1c2VzIHRoZQogICAgc3BlY2lmaWVkIGFyZ3VtZW50 cyB0byBiZSBzb3J0ZWQgYmVmb3JlIGFzc2lnbmluZyB0aGVtIHRvIHRoZSBwb3NpdGlvbmFs CiAgICBwYXJhbWV0ZXJzIChvciB0byB0aGUgYXJyYXkgOnZhcjpgbmFtZWAgaWYgYGAtQWBg IGlzIHVzZWQpLiAgV2l0aCBgYCtzYGAKICAgIHNvcnQgYXJndW1lbnRzIGluIGRlc2NlbmRp bmcgb3JkZXIuICBGb3IgdGhlIG1lYW5pbmcgb2YgdGhlIG90aGVyIGZsYWdzLCBzZWUKICAg IDptYW5wYWdlOmB6c2hvcHRpb25zYC4KICAgIEZsYWdzIG1heSBiZSBzcGVjaWZpZWQgYnkg bmFtZSB1c2luZyB0aGUgYGAtb2BgIG9wdGlvbi4gSWYgbm8gb3B0aW9uCiAgICBuYW1lIGlz IHN1cHBsaWVkIHdpdGggYGAtb2BgLCB0aGUgY3VycmVudCBvcHRpb24gc3RhdGVzIGFyZSBw cmludGVkOiAgc2VlCiAgICB0aGUgZGVzY3JpcHRpb24gb2YgYGBzZXRvcHRgYCBiZWxvdyBm b3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgZm9ybWF0LgogICAgV2l0aCBgYCtvYGAgdGhl eSBhcmUgcHJpbnRlZCBpbiBhIGZvcm0gdGhhdCBjYW4gYmUgdXNlZCBhcyBpbnB1dAogICAg dG8gdGhlIHNoZWxsLgogICAgCiAgICBJZiB0aGUgYGAtQWBgIGZsYWcgaXMgc3BlY2lmaWVk LCA6dmFyOmBuYW1lYCBpcyBzZXQgdG8gYW4gYXJyYXkgY29udGFpbmluZwogICAgdGhlIGdp dmVuIDp2YXI6YGFyZ2BcczsgaWYgbm8gOnZhcjpgbmFtZWAgaXMgc3BlY2lmaWVkLCBhbGwg YXJyYXlzIGFyZSBwcmludGVkCiAgICB0b2dldGhlciB3aXRoIHRoZWlyIHZhbHVlcy4KICAg IAogICAgSWYgYGArQWBgIGlzIHVzZWQgYW5kIDp2YXI6YG5hbWVgIGlzIGFuIGFycmF5LCB0 aGUKICAgIGdpdmVuIGFyZ3VtZW50cyB3aWxsIHJlcGxhY2UgdGhlIGluaXRpYWwgZWxlbWVu dHMgb2YgdGhhdCBhcnJheTsgaWYgbm8KICAgIDp2YXI6YG5hbWVgIGlzIHNwZWNpZmllZCwg YWxsIGFycmF5cyBhcmUgcHJpbnRlZCB3aXRob3V0IHRoZWlyIHZhbHVlcy4KICAgIAogICAg VGhlIGJlaGF2aW91ciBvZiBhcmd1bWVudHMgYWZ0ZXIgYGAtQWBgIDp2YXI6YG5hbWVgIG9y IGBgK0FgYCA6dmFyOmBuYW1lYAogICAgZGVwZW5kcyBvbiB3aGV0aGVyIHRoZSBvcHRpb24g YGBLU0hfQVJSQVlTYGAgaXMgc2V0LiAgSWYgaXQgaXMgbm90IHNldCwgYWxsCiAgICBhcmd1 bWVudHMgZm9sbG93aW5nIDp2YXI6YG5hbWVgIGFyZSB0cmVhdGVkIGFzIHZhbHVlcyBmb3Ig dGhlIGFycmF5LAogICAgcmVnYXJkbGVzcyBvZiB0aGVpciBmb3JtLiAgSWYgdGhlIG9wdGlv biBpcyBzZXQsIG5vcm1hbCBvcHRpb24gcHJvY2Vzc2luZwogICAgY29udGludWVzIGF0IHRo YXQgcG9pbnQ7IG9ubHkgcmVndWxhciBhcmd1bWVudHMgYXJlIHRyZWF0ZWQgYXMgdmFsdWVz IGZvcgogICAgdGhlIGFycmF5LiAgVGhpcyBtZWFucyB0aGF0CiAgICAKICAgIC4uIHBhcnNl ZC1saXRlcmFsOjoKICAgICAgIDpjbGFzczogZXhhbXBsZQogICAgCgogICAgICAgIHNldCAt QSBhcnJheSAteCAtLSBmb28KICAgIAogICAgCiAgICBzZXRzIGBgYXJyYXlgYCB0byBgYC14 IC0tIGZvb2BgIGlmIGBgS1NIX0FSUkFZU2BgIGlzIG5vdCBzZXQsIGJ1dCBzZXRzCiAgICB0 aGUgYXJyYXkgdG8gYGBmb29gYCBhbmQgdHVybnMgb24gdGhlIG9wdGlvbiBgYC14YGAgaWYg aXQgaXMgc2V0LgogICAgCiAgICBJZiB0aGUgYGAtQWBgIGZsYWcgaXMgbm90IHByZXNlbnQs IGJ1dCB0aGVyZSBhcmUgYXJndW1lbnRzIGJleW9uZCB0aGUKICAgIG9wdGlvbnMsIHRoZSBw b3NpdGlvbmFsIHBhcmFtZXRlcnMgYXJlIHNldC4gIElmIHRoZSBvcHRpb24gbGlzdCAoaWYg YW55KQogICAgaXMgdGVybWluYXRlZCBieSBgYC0tYGAsIGFuZCB0aGVyZSBhcmUgbm8gZnVy dGhlciBhcmd1bWVudHMsIHRoZQogICAgcG9zaXRpb25hbCBwYXJhbWV0ZXJzIHdpbGwgYmUg dW5zZXQuCiAgICAKICAgIElmIG5vIGFyZ3VtZW50cyBhbmQgbm8gYGAtLWBgIGFyZSBnaXZl biwgdGhlbiB0aGUgbmFtZXMgYW5kIHZhbHVlcyBvZgogICAgYWxsIHBhcmFtZXRlcnMgYXJl IHByaW50ZWQgb24gdGhlIHN0YW5kYXJkIG91dHB1dC4gIElmIHRoZSBvbmx5IGFyZ3VtZW50 IGlzCiAgICBgYCtgYCwgdGhlIG5hbWVzIG9mIGFsbCBwYXJhbWV0ZXJzIGFyZSBwcmludGVk LgogICAgCiAgICBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBgYHNldCAtYGAgaXMgdHJlYXRl ZCBhcyBgYHNldCAreHZgYAogICAgYW5kIGBgc2V0IC1gYCA6dmFyOmBhcmdzYCBhcyBgYHNl dCAreHYgLS1gYCA6dmFyOmBhcmdzYCB3aGVuIGluCiAgICBhbnkgb3RoZXIgZW11bGF0aW9u IG1vZGUgdGhhbiB6c2gncyBuYXRpdmUgbW9kZS4KICAgIAoKYGBzZXRjYXBgYAogICAgCiAg ICBTZWUgOnJlZjpgVGhlIHpzaC9jYXAgTW9kdWxlYC4KICAgIAoKLi4gaW5kZXg6OiBzaW5n bGU6IHNldG9wdDsgRnVuY3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiBvcHRpb25zLCBzZXR0 aW5nOyBDb21tYW5kCgpgYHNldG9wdGBgIFsge2BgK3wtYGB9OnZhcjpgb3B0aW9uc2AgfCB7 YGArfC19b2BgIDp2YXI6YG9wdGlvbl9uYW1lYCBdIFsgYGAtbWBgIF0gWyA6dmFyOmBuYW1l YCAuLi4gXQogICAgCiAgICBTZXQgdGhlIG9wdGlvbnMgZm9yIHRoZSBzaGVsbC4gIEFsbCBv cHRpb25zIHNwZWNpZmllZCBlaXRoZXIKICAgIHdpdGggZmxhZ3Mgb3IgYnkgbmFtZSBhcmUg c2V0LgogICAgCiAgICBJZiBubyBhcmd1bWVudHMgYXJlIHN1cHBsaWVkLCB0aGUgbmFtZXMg b2YgYWxsIG9wdGlvbnMgY3VycmVudGx5IHNldCBhcmUKICAgIHByaW50ZWQuICBUaGUgZm9y bSBpcyBjaG9zZW4gc28gYXMgdG8gbWluaW1pemUgdGhlIGRpZmZlcmVuY2VzIGZyb20gdGhl CiAgICBkZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBjdXJyZW50IGVtdWxhdGlvbiAodGhlIGRl ZmF1bHQgZW11bGF0aW9uIGJlaW5nCiAgICBuYXRpdmUgYGB6c2hgYCwgc2hvd24gYXMgYGA8 Wj5gYCBpbgogICAgOnJlZjpgRGVzY3JpcHRpb24gb2YgT3B0aW9uc2ApLgogICAgT3B0aW9u cyB0aGF0IGFyZSBvbiBieSBkZWZhdWx0IGZvciB0aGUgZW11bGF0aW9uIGFyZQogICAgc2hv d24gd2l0aCB0aGUgcHJlZml4IGBgbm9gYCBvbmx5IGlmIHRoZXkgYXJlIG9mZiwgd2hpbGUg b3RoZXIgb3B0aW9ucyBhcmUKICAgIHNob3duIHdpdGhvdXQgdGhlIHByZWZpeCBgYG5vYGAg YW5kIG9ubHkgaWYgdGhleSBhcmUgb24uICBJbiBhZGRpdGlvbiB0bwogICAgb3B0aW9ucyBj aGFuZ2VkIGZyb20gdGhlIGRlZmF1bHQgc3RhdGUgYnkgdGhlIHVzZXIsIGFueSBvcHRpb25z IGFjdGl2YXRlZAogICAgYXV0b21hdGljYWxseSBieSB0aGUgc2hlbGwgKGZvciBleGFtcGxl LCBgYFNISU5fU1RESU5gYCBvciBgYElOVEVSQUNUSVZFYGApCiAgICB3aWxsIGJlIHNob3du IGluIHRoZSBsaXN0LiAgVGhlIGZvcm1hdCBpcyBmdXJ0aGVyIG1vZGlmaWVkIGJ5IHRoZSBv cHRpb24KICAgIGBgS1NIX09QVElPTl9QUklOVGBgLCBob3dldmVyIHRoZSByYXRpb25hbGUg Zm9yIGNob29zaW5nIG9wdGlvbnMgd2l0aAogICAgb3Igd2l0aG91dCB0aGUgYGBub2BgIHBy ZWZpeCByZW1haW5zIHRoZSBzYW1lIGluIHRoaXMgY2FzZS4KICAgIAogICAgSWYgdGhlIGBg LW1gYCBmbGFnIGlzIGdpdmVuIHRoZSBhcmd1bWVudHMgYXJlIHRha2VuIGFzIHBhdHRlcm5z CiAgICAod2hpY2ggc2hvdWxkIGJlIHF1b3RlZCB0byBwcm90ZWN0IHRoZW0gZnJvbSBmaWxl bmFtZSBleHBhbnNpb24pLCBhbmQgYWxsCiAgICBvcHRpb25zIHdpdGggbmFtZXMgbWF0Y2hp bmcgdGhlc2UgcGF0dGVybnMgYXJlIHNldC4KICAgIAogICAgTm90ZSB0aGF0IGEgYmFkIG9w dGlvbiBuYW1lIGRvZXMgbm90IGNhdXNlIGV4ZWN1dGlvbiBvZiBzdWJzZXF1ZW50IHNoZWxs CiAgICBjb2RlIHRvIGJlIGFib3J0ZWQ7IHRoaXMgYmVoYXZpb3VyIGlzIGRpZmZlcmVudCBm cm9tIHRoYXQgb2YgYGBzZXQKICAgIC1vYGAuICBUaGlzIGlzIGJlY2F1c2VgYCBzZXRgYCBp cyByZWdhcmRlZCBhcyBhIHNwZWNpYWwgYnVpbHRpbiBieSB0aGUKICAgIFBPU0lYIHN0YW5k YXJkLCBidXQgYGBzZXRvcHRgYCBpcyBub3QuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiBz aGlmdDsgRnVuY3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiBwYXJhbWV0ZXJzLCBwb3NpdGlv bmFsOyBDb21tYW5kCgpgYHNoaWZ0YGAgWyBgYC1wYGAgXSBbIDp2YXI6YG5gIF0gWyA6dmFy OmBuYW1lYCAuLi4gXQogICAgCiAgICBUaGUgcG9zaXRpb25hbCBwYXJhbWV0ZXJzIGBgJHtg YDp2YXI6YG5gXCsxYGB9YGAgLi4uIGFyZSByZW5hbWVkCiAgICB0byBgYCQxYGAgLi4uLCB3 aGVyZSA6dmFyOmBuYCBpcyBhbiBhcml0aG1ldGljIGV4cHJlc3Npb24gdGhhdAogICAgZGVm YXVsdHMgdG8gMS4KICAgIElmIGFueSA6dmFyOmBuYW1lYFxzIGFyZSBnaXZlbiB0aGVuIHRo ZSBhcnJheXMgd2l0aCB0aGVzZSBuYW1lcyBhcmUKICAgIHNoaWZ0ZWQgaW5zdGVhZCBvZiB0 aGUgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLgogICAgCiAgICBJZiB0aGUgb3B0aW9uIGBgLXBg YCBpcyBnaXZlbiBhcmd1bWVudHMgYXJlIGluc3RlYWQgcmVtb3ZlZCAocG9wcGVkKQogICAg ZnJvbSB0aGUgZW5kIHJhdGhlciB0aGFuIHRoZSBzdGFydCBvZiB0aGUgYXJyYXkuCiAgICAK Ci4uIGluZGV4Ojogc2luZ2xlOiBzb3VyY2U7IEZ1bmN0aW9uCgpgYHNvdXJjZWBgIDp2YXI6 YGZpbGVgIFsgOnZhcjpgYXJnYCAuLi4gXQogICAgCiAgICBTYW1lIGFzIGBgLmBgLCBleGNl cHQgdGhhdCB0aGUgY3VycmVudCBkaXJlY3RvcnkgaXMgYWx3YXlzIHNlYXJjaGVkIGFuZAog ICAgaXMgYWx3YXlzIHNlYXJjaGVkIGZpcnN0LCBiZWZvcmUgZGlyZWN0b3JpZXMgaW4gYGAk cGF0aGBgLgogICAgCgpgYHN0YXRgYAogICAgCiAgICBTZWUgOnJlZjpgVGhlIHpzaC9zdGF0 IE1vZHVsZWAuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiBzdXNwZW5kOyBGdW5jdGlvbgoK Li4gaW5kZXg6OiBzaW5nbGU6IHNoZWxsLCBzdXNwZW5kaW5nOyBDb21tYW5kCgouLiBpbmRl eDo6IHNpbmdsZTogc3VzcGVuZGluZyB0aGUgc2hlbGw7IENvbW1hbmQKCmBgc3VzcGVuZGBg IFsgYGAtZmBgIF0KICAgIAogICAgU3VzcGVuZCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBzaGVs bCAoc2VuZCBpdCBhIGBgU0lHVFNUUGBgKQogICAgdW50aWwgaXQgcmVjZWl2ZXMgYSBgYFNJ R0NPTlRgYC4KICAgIFVubGVzcyB0aGUgYGAtZmBgIG9wdGlvbiBpcyBnaXZlbiwgdGhpcyB3 aWxsIHJlZnVzZSB0byBzdXNwZW5kIGEgbG9naW4gc2hlbGwuCiAgICAKCi4uIGluZGV4Ojog c2luZ2xlOiB0ZXN0OyBGdW5jdGlvbgoKYGB0ZXN0YGAgWyA6dmFyOmBhcmdgIC4uLiBdCgpg YFtgYCBbIDp2YXI6YGFyZ2AgLi4uIF0gYGBdYGAKICAgIAogICAgTGlrZSB0aGUgc3lzdGVt IHZlcnNpb24gb2YgYGB0ZXN0YGAuICBBZGRlZCBmb3IgY29tcGF0aWJpbGl0eTsKICAgIHVz ZSBjb25kaXRpb25hbCBleHByZXNzaW9ucyBpbnN0ZWFkIChzZWUKICAgIDpyZWY6YENvbmRp dGlvbmFsIEV4cHJlc3Npb25zYCkuCiAgICBUaGUgbWFpbiBkaWZmZXJlbmNlcyBiZXR3ZWVu IHRoZSBjb25kaXRpb25hbCBleHByZXNzaW9uIHN5bnRheCBhbmQgdGhlCiAgICBgYHRlc3Rg YCBhbmQgYGBbYGAgYnVpbHRpbnMgYXJlOiAgdGhlc2UgY29tbWFuZHMgYXJlIG5vdCBoYW5k bGVkCiAgICBzeW50YWN0aWNhbGx5LCBzbyBmb3IgZXhhbXBsZSBhbiBlbXB0eSB2YXJpYWJs ZSBleHBhbnNpb24gbWF5IGNhdXNlIGFuCiAgICBhcmd1bWVudCB0byBiZSBvbWl0dGVkOyBz eW50YXggZXJyb3JzIGNhdXNlIHN0YXR1cyAyIHRvIGJlIHJldHVybmVkIGluc3RlYWQKICAg IG9mIGEgc2hlbGwgZXJyb3I7IGFuZCBhcml0aG1ldGljIG9wZXJhdG9ycyBleHBlY3QgaW50 ZWdlciBhcmd1bWVudHMgcmF0aGVyCiAgICB0aGFuIGFyaXRobWV0aWMgZXhwcmVzc2lvbnMu CiAgICAKICAgIFRoZSBjb21tYW5kIGF0dGVtcHRzIHRvIGltcGxlbWVudCBQT1NJWCBhbmQg aXRzIGV4dGVuc2lvbnMgd2hlcmUgdGhlc2UKICAgIGFyZSBzcGVjaWZpZWQuICBVbmZvcnR1 bmF0ZWx5IHRoZXJlIGFyZSBpbnRyaW5zaWMgYW1iaWd1aXRpZXMgaW4KICAgIHRoZSBzeW50 YXg7IGluIHBhcnRpY3VsYXIgdGhlcmUgaXMgbm8gZGlzdGluY3Rpb24gYmV0d2VlbiB0ZXN0 IG9wZXJhdG9ycwogICAgYW5kIHN0cmluZ3MgdGhhdCByZXNlbWJsZSB0aGVtLiAgVGhlIHN0 YW5kYXJkIGF0dGVtcHRzIHRvIHJlc29sdmUgdGhlc2UKICAgIGZvciBzbWFsbCBudW1iZXJz IG9mIGFyZ3VtZW50cyAodXAgdG8gZm91cik7IGZvciBmaXZlIG9yIG1vcmUgYXJndW1lbnRz CiAgICBjb21wYXRpYmlsaXR5IGNhbm5vdCBiZSByZWxpZWQgb24uICBVc2VycyBhcmUgdXJn ZWQgd2hlcmV2ZXIgcG9zc2libGUgdG8KICAgIHVzZSB0aGUgYGBbW2BgIHRlc3Qgc3ludGF4 IHdoaWNoIGRvZXMgbm90IGhhdmUgdGhlc2UgYW1iaWd1aXRpZXMuCiAgICAKCi4uIGluZGV4 Ojogc2luZ2xlOiB0aW1lczsgRnVuY3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiBzaGVsbCwg dGltaW5nOyBDb21tYW5kCgouLiBpbmRleDo6IHNpbmdsZTogdGltaW5nIHRoZSBzaGVsbDsg Q29tbWFuZAoKYGB0aW1lc2BgCiAgICAKICAgIFByaW50IHRoZSBhY2N1bXVsYXRlZCB1c2Vy IGFuZCBzeXN0ZW0gdGltZXMgZm9yIHRoZSBzaGVsbAogICAgYW5kIGZvciBwcm9jZXNzZXMg cnVuIGZyb20gdGhlIHNoZWxsLgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogdHJhcDsgRnVu Y3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiBzaWduYWxzLCB0cmFwcGluZzsgQ29tbWFuZAoK Li4gaW5kZXg6OiBzaW5nbGU6IHRyYXBwaW5nIHNpZ25hbHM7IENvbW1hbmQKCmBgdHJhcGBg IFsgOnZhcjpgYXJnYCBdIFsgOnZhcjpgc2lnYCAuLi4gXQogICAgCiAgICA6dmFyOmBhcmdg IGlzIGEgc2VyaWVzIG9mIGNvbW1hbmRzICh1c3VhbGx5IHF1b3RlZCB0byBwcm90ZWN0IGl0 IGZyb20KICAgIGltbWVkaWF0ZSBldmFsdWF0aW9uIGJ5IHRoZSBzaGVsbCkgdG8gYmUgcmVh ZCBhbmQgZXhlY3V0ZWQgd2hlbiB0aGUgc2hlbGwKICAgIHJlY2VpdmVzIGFueSBvZiB0aGUg c2lnbmFscyBzcGVjaWZpZWQgYnkgb25lIG9yIG1vcmUgOnZhcjpgc2lnYCBhcmdzLgogICAg RWFjaCA6dmFyOmBzaWdgIGNhbiBiZSBnaXZlbiBhcyBhIG51bWJlciwKICAgIG9yIGFzIHRo ZSBuYW1lIG9mIGEgc2lnbmFsIGVpdGhlciB3aXRoIG9yIHdpdGhvdXQgdGhlIHN0cmluZyBg YFNJR2BgCiAgICBpbiBmcm9udCAoZS5nLiAxLCBIVVAsIGFuZCBTSUdIVVAgYXJlIGFsbCB0 aGUgc2FtZSBzaWduYWwpLgogICAgCiAgICBJZiA6dmFyOmBhcmdgIGlzIGBgLWBgLCB0aGVu IHRoZSBzcGVjaWZpZWQgc2lnbmFscyBhcmUgcmVzZXQgdG8gdGhlaXIKICAgIGRlZmF1bHRz LCBvciwgaWYgbm8gOnZhcjpgc2lnYCBhcmdzIGFyZSBwcmVzZW50LCBhbGwgdHJhcHMgYXJl IHJlc2V0LgogICAgCiAgICBJZiA6dmFyOmBhcmdgIGlzIGFuIGVtcHR5IHN0cmluZywgdGhl biB0aGUgc3BlY2lmaWVkIHNpZ25hbHMKICAgIGFyZSBpZ25vcmVkIGJ5IHRoZSBzaGVsbCAo YW5kIGJ5IHRoZSBjb21tYW5kcyBpdCBpbnZva2VzKS4KICAgIAogICAgSWYgOnZhcjpgYXJn YCBpcyBvbWl0dGVkIGJ1dCBvbmUgb3IgbW9yZSA6dmFyOmBzaWdgIGFyZ3MgYXJlIHByb3Zp ZGVkIChpLmUuCiAgICB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSB2YWxpZCBzaWduYWwgbnVt YmVyIG9yIG5hbWUpLCB0aGUgZWZmZWN0IGlzIHRoZQogICAgc2FtZSBhcyBpZiA6dmFyOmBh cmdgIGhhZCBiZWVuIHNwZWNpZmllZCBhcyBgYC1gYC4KICAgIAogICAgVGhlIGBgdHJhcGBg IGNvbW1hbmQgd2l0aCBubyBhcmd1bWVudHMgcHJpbnRzIGEgbGlzdCBvZiBjb21tYW5kcwog ICAgYXNzb2NpYXRlZCB3aXRoIGVhY2ggc2lnbmFsLgogICAgCiAgICBJZiA6dmFyOmBzaWdg IGlzIGBgWkVSUmBgIHRoZW4gOnZhcjpgYXJnYCB3aWxsIGJlIGV4ZWN1dGVkCiAgICBhZnRl ciBlYWNoIGNvbW1hbmQgd2l0aCBhIG5vbnplcm8gZXhpdCBzdGF0dXMuICBgYEVSUmBgIGlz IGFuIGFsaWFzCiAgICBmb3IgYGBaRVJSYGAgb24gc3lzdGVtcyB0aGF0IGhhdmUgbm8gYGBT SUdFUlJgYCBzaWduYWwgKHRoaXMgaXMgdGhlCiAgICB1c3VhbCBjYXNlKS4KICAgIAogICAg SWYgOnZhcjpgc2lnYCBpcyBgYERFQlVHYGAgdGhlbiA6dmFyOmBhcmdgIHdpbGwgYmUgZXhl Y3V0ZWQKICAgIGJlZm9yZSBlYWNoIGNvbW1hbmQgaWYgdGhlIG9wdGlvbiBgYERFQlVHX0JF Rk9SRV9DTURgYCBpcyBzZXQKICAgIChhcyBpdCBpcyBieSBkZWZhdWx0KSwgZWxzZSBhZnRl ciBlYWNoIGNvbW1hbmQuICBIZXJlLCBhIFxgY29tbWFuZCcgaXMKICAgIHdoYXQgaXMgZGVz Y3JpYmVkIGFzIGEgXGBzdWJsaXN0JyBpbiB0aGUgc2hlbGwgZ3JhbW1hciwgc2VlCiAgICA6 cmVmOmBTaW1wbGUgQ29tbWFuZHMgJiBQaXBlbGluZXNgLgogICAgSWYgYGBERUJVR19CRUZP UkVfQ01EYGAgaXMgc2V0IHZhcmlvdXMgYWRkaXRpb25hbCBmZWF0dXJlcyBhcmUgYXZhaWxh YmxlLgogICAgRmlyc3QsIGl0IGlzIHBvc3NpYmxlIHRvIHNraXAgdGhlIG5leHQgY29tbWFu ZCBieSBzZXR0aW5nIHRoZSBvcHRpb24KICAgIGBgRVJSX0VYSVRgYDsgc2VlIHRoZSBkZXNj cmlwdGlvbiBvZiB0aGUgYGBFUlJfRVhJVGBgIG9wdGlvbiBpbgogICAgOm1hbnBhZ2U6YHpz aG9wdGlvbnNgLiAgQWxzbywgdGhlIHNoZWxsIHBhcmFtZXRlcgogICAgYGBaU0hfREVCVUdf Q01EYGAgaXMgc2V0IHRvIHRoZSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byB0aGUgY29tbWFu ZAogICAgdG8gYmUgZXhlY3V0ZWQgZm9sbG93aW5nIHRoZSB0cmFwLiAgTm90ZSB0aGF0IHRo aXMgc3RyaW5nIGlzIHJlY29uc3RydWN0ZWQKICAgIGZyb20gdGhlIGludGVybmFsIGZvcm1h dCBhbmQgbWF5IG5vdCBiZSBmb3JtYXR0ZWQgdGhlIHNhbWUgd2F5IGFzIHRoZQogICAgb3Jp Z2luYWwgdGV4dC4gIFRoZSBwYXJhbWV0ZXIgaXMgdW5zZXQgYWZ0ZXIgdGhlIHRyYXAgaXMg ZXhlY3V0ZWQuCiAgICAKICAgIElmIDp2YXI6YHNpZ2AgaXMgYGAwYGAgb3IgYGBFWElUYGAK ICAgIGFuZCB0aGUgYGB0cmFwYGAgc3RhdGVtZW50IGlzIGV4ZWN1dGVkIGluc2lkZSB0aGUg Ym9keSBvZiBhIGZ1bmN0aW9uLAogICAgdGhlbiB0aGUgY29tbWFuZCA6dmFyOmBhcmdgIGlz IGV4ZWN1dGVkIGFmdGVyIHRoZSBmdW5jdGlvbiBjb21wbGV0ZXMuCiAgICBUaGUgdmFsdWUg b2YgYGAkP2BgIGF0IHRoZSBzdGFydCBvZiBleGVjdXRpb24gaXMgdGhlIGV4aXQgc3RhdHVz IG9mIHRoZQogICAgc2hlbGwgb3IgdGhlIHJldHVybiBzdGF0dXMgb2YgdGhlIGZ1bmN0aW9u IGV4aXRpbmcuCiAgICBJZiA6dmFyOmBzaWdgIGlzIGBgMGBgIG9yIGBgRVhJVGBgCiAgICBh bmQgdGhlIGBgdHJhcGBgIHN0YXRlbWVudCBpcyBub3QgZXhlY3V0ZWQgaW5zaWRlIHRoZSBi b2R5IG9mIGEgZnVuY3Rpb24sCiAgICB0aGVuIHRoZSBjb21tYW5kIDp2YXI6YGFyZ2AgaXMg ZXhlY3V0ZWQgd2hlbiB0aGUgc2hlbGwgdGVybWluYXRlczsgdGhlCiAgICB0cmFwIHJ1bnMg YmVmb3JlIGFueSBgYHpzaGV4aXRgYCBob29rIGZ1bmN0aW9ucy4KICAgIAogICAgYGBaRVJS YGAsIGBgREVCVUdgYCwgYW5kIGBgRVhJVGBgIHRyYXBzIGFyZSBub3QgZXhlY3V0ZWQgaW5z aWRlIG90aGVyCiAgICB0cmFwcy4gIGBgWkVSUmBgIGFuZCBgYERFQlVHYGAgdHJhcHMgYXJl IGtlcHQgd2l0aGluIHN1YnNoZWxscywgd2hpbGUKICAgIG90aGVyIHRyYXBzIGFyZSByZXNl dC4KICAgIAogICAgTm90ZSB0aGF0IHRyYXBzIGRlZmluZWQgd2l0aCB0aGUgYGB0cmFwYGAg YnVpbHRpbiBhcmUgc2xpZ2h0bHkgZGlmZmVyZW50CiAgICBmcm9tIHRob3NlIGRlZmluZWQg YXMgYGBUUkFQYGA6dmFyOmBOQUxgICgpIHsgLi4uIH0sIGFzIHRoZSBsYXR0ZXIgaGF2ZQog ICAgdGhlaXIgb3duIGZ1bmN0aW9uIGVudmlyb25tZW50IChsaW5lIG51bWJlcnMsIGxvY2Fs IHZhcmlhYmxlcywgZXRjLikgd2hpbGUKICAgIHRoZSBmb3JtZXIgdXNlIHRoZSBlbnZpcm9u bWVudCBvZiB0aGUgY29tbWFuZCBpbiB3aGljaCB0aGV5IHdlcmUgY2FsbGVkLgogICAgRm9y IGV4YW1wbGUsCiAgICAKICAgIC4uIHBhcnNlZC1saXRlcmFsOjoKICAgICAgIDpjbGFzczog ZXhhbXBsZQogICAgCgogICAgICAgIHRyYXAgJ3ByaW50ICRMSU5FTk8nIERFQlVHCiAgICAK ICAgIAogICAgd2lsbCBwcmludCB0aGUgbGluZSBudW1iZXIgb2YgYSBjb21tYW5kIGV4ZWN1 dGVkIGFmdGVyIGl0IGhhcyBydW4sIHdoaWxlCiAgICAKICAgIC4uIHBhcnNlZC1saXRlcmFs OjoKICAgICAgIDpjbGFzczogZXhhbXBsZQogICAgCgogICAgICAgIFRSQVBERUJVRygpIHsg cHJpbnQgJExJTkVOTzsgfQogICAgCiAgICAKICAgIHdpbGwgYWx3YXlzIHByaW50IHRoZSBu dW1iZXIgemVyby4KICAgIAogICAgQWx0ZXJuYXRpdmUgc2lnbmFsIG5hbWVzIGFyZSBhbGxv d2VkIGFzIGRlc2NyaWJlZCB1bmRlciBgYGtpbGxgYCBhYm92ZS4KICAgIERlZmluaW5nIGEg dHJhcCB1bmRlciBlaXRoZXIgbmFtZSBjYXVzZXMgYW55IHRyYXAgdW5kZXIgYW4gYWx0ZXJu YXRpdmUKICAgIG5hbWUgdG8gYmUgcmVtb3ZlZC4gIEhvd2V2ZXIsIGl0IGlzIHJlY29tbWVu ZGVkIHRoYXQgZm9yIGNvbnNpc3RlbmN5CiAgICB1c2VycyBzdGljayBleGNsdXNpdmVseSB0 byBvbmUgbmFtZSBvciBhbm90aGVyLgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogdHJ1ZTsg RnVuY3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiBkb2luZyBub3RoaW5nLCBzdWNjZXNzZnVs bHk7IENvbW1hbmQKCmBgdHJ1ZWBgIFsgOnZhcjpgYXJnYCAuLi4gXQogICAgCiAgICBEbyBu b3RoaW5nIGFuZCByZXR1cm4gYW4gZXhpdCBzdGF0dXMgb2YgMC4KICAgIAoKLi4gaW5kZXg6 OiBzaW5nbGU6IHR0eWN0bDsgRnVuY3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiB0dHksIGZy ZWV6aW5nOyBDb21tYW5kCgpgYHR0eWN0bGBgIFsgYGAtZnVgYCBdCiAgICAKICAgIFRoZSBg YC1mYGAgb3B0aW9uIGZyZWV6ZXMgdGhlIHR0eSAoaS5lLiB0ZXJtaW5hbCBvciB0ZXJtaW5h bCBlbXVsYXRvciksIGFuZAogICAgYGAtdWBgIHVuZnJlZXplcyBpdC4KICAgIFdoZW4gdGhl IHR0eSBpcyBmcm96ZW4sIG5vIGNoYW5nZXMgbWFkZSB0byB0aGUgdHR5IHNldHRpbmdzIGJ5 CiAgICBleHRlcm5hbCBwcm9ncmFtcyB3aWxsIGJlIGhvbm9yZWQgYnkgdGhlIHNoZWxsLCBl eGNlcHQgZm9yIGNoYW5nZXMgaW4gdGhlCiAgICBzaXplIG9mIHRoZSBzY3JlZW47IHRoZSBz aGVsbCB3aWxsCiAgICBzaW1wbHkgcmVzZXQgdGhlIHNldHRpbmdzIHRvIHRoZWlyIHByZXZp b3VzIHZhbHVlcyBhcyBzb29uIGFzIGVhY2gKICAgIGNvbW1hbmQgZXhpdHMgb3IgaXMgc3Vz cGVuZGVkLiAgVGh1cywgYGBzdHR5YGAgYW5kIHNpbWlsYXIgcHJvZ3JhbXMgaGF2ZQogICAg bm8gZWZmZWN0IHdoZW4gdGhlIHR0eSBpcyBmcm96ZW4uICBGcmVlemluZyB0aGUgdHR5IGRv ZXMgbm90IGNhdXNlCiAgICB0aGUgY3VycmVudCBzdGF0ZSB0byBiZSByZW1lbWJlcmVkOiBp bnN0ZWFkLCBpdCBjYXVzZXMgZnV0dXJlIGNoYW5nZXMKICAgIHRvIHRoZSBzdGF0ZSB0byBi ZSBibG9ja2VkLgogICAgCiAgICBXaXRob3V0IG9wdGlvbnMgaXQgcmVwb3J0cyB3aGV0aGVy IHRoZSB0ZXJtaW5hbCBpcyBmcm96ZW4gb3Igbm90LgogICAgCiAgICBOb3RlIHRoYXQsIHJl Z2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgdHR5IGlzIGZyb3plbiBvciBub3QsIHRoZQogICAg c2hlbGwgbmVlZHMgdG8gY2hhbmdlIHRoZSBzZXR0aW5ncyB3aGVuIHRoZSBsaW5lIGVkaXRv ciBzdGFydHMsIHNvCiAgICB1bmZyZWV6aW5nIHRoZSB0dHkgZG9lcyBub3QgZ3VhcmFudGVl IHNldHRpbmdzIG1hZGUgb24gdGhlCiAgICBjb21tYW5kIGxpbmUgYXJlIHByZXNlcnZlZC4g IFN0cmluZ3Mgb2YgY29tbWFuZHMgcnVuIGJldHdlZW4KICAgIGVkaXRpbmcgdGhlIGNvbW1h bmQgbGluZSB3aWxsIHNlZSBhIGNvbnNpc3RlbnQgdHR5IHN0YXRlLgogICAgU2VlIGFsc28g dGhlIHNoZWxsIHZhcmlhYmxlIGBgU1RUWWBgIGZvciBhIG1lYW5zIG9mIGluaXRpYWxpc2lu ZwogICAgdGhlIHR0eSBiZWZvcmUgcnVubmluZyBleHRlcm5hbCBjb21tYW5kcyBhbmQvb3Ig ZnJlZXppbmcgdGhlIHR0eQogICAgYXJvdW5kIGEgc2luZ2xlIGNvbW1hbmQuCiAgICAKCi4u IGluZGV4Ojogc2luZ2xlOiB0eXBlOyBGdW5jdGlvbgoKYGB0eXBlYGAgWyBgYC13ZnBhbXNT YGAgXSA6dmFyOmBuYW1lYCAuLi4KICAgIAogICAgRXF1aXZhbGVudCB0byBgYHdoZW5jZSAt dmBgLgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogdHlwZXNldDsgRnVuY3Rpb24KCi4uIGlu ZGV4Ojogc2luZ2xlOiBwYXJhbWV0ZXJzLCBzZXR0aW5nOyBDb21tYW5kCgouLiBpbmRleDo6 IHNpbmdsZTogcGFyYW1ldGVycywgZGVjbGFyaW5nOyBDb21tYW5kCgpgYHR5cGVzZXRgYCBb IHtgYCt8LX1BSFVhZ2hsbXJ0dXhgYCBdIFsge2BgK3wtfUVGTFJaaXBgYCBbIDp2YXI6YG5g IF0gXQoKICAgICAgICBbIGBgK2BgIF0gWyA6dmFyOmBuYW1lYFxbYGA9YGA6dmFyOmB2YWx1 ZWBdIC4uLiBdCgpgYHR5cGVzZXQgeyt8LX1uYGAgWyBgYC1nYGAgXSBbIHtgYCt8LX1yYGAg XSBbIDp2YXI6YG5hbWVgXFtgYD1gYDp2YXI6YHZhbHVlYF0gLi4uIF0KCmBgdHlwZXNldCAt VGBgIFsge2BgK3wtfVVnbHJ1eGBgIF0gWyB7YGArfC19TFJacGBgIFsgOnZhcjpgbmAgXSBd CgogICAgICAgIFsgYGArYGAgfCA6dmFyOmBTQ0FMQVJgXFtgYD1gYDp2YXI6YHZhbHVlYF0g OnZhcjpgYXJyYXlgXFtgYD0oYGA6dmFyOmB2YWx1ZWAgLi4uYGApYGBdIFsgOnZhcjpgc2Vw YCBdIF0KCmBgdHlwZXNldGBgIGBgLWZgYCBbIHtgYCt8LX1UVWttdHV6YGAgXSBbIGBgK2Bg IF0gWyA6dmFyOmBuYW1lYCAuLi4gXQogICAgCiAgICBTZXQgb3IgZGlzcGxheSBhdHRyaWJ1 dGVzIGFuZCB2YWx1ZXMgZm9yIHNoZWxsIHBhcmFtZXRlcnMuCiAgICAKICAgIEV4Y2VwdCBh cyBub3RlZCBiZWxvdyBmb3IgY29udHJvbCBmbGFncyB0aGF0IGNoYW5nZSB0aGUgYmVoYXZp b3IsCiAgICBhIHBhcmFtZXRlciBpcyBjcmVhdGVkIGZvciBlYWNoIDp2YXI6YG5hbWVgIHRo YXQgZG9lcyBub3QgYWxyZWFkeSByZWZlcgogICAgdG8gb25lLiAgV2hlbiBpbnNpZGUgYSBm dW5jdGlvbiwgYSBuZXcgcGFyYW1ldGVyIGlzIGNyZWF0ZWQgZm9yIGV2ZXJ5CiAgICA6dmFy OmBuYW1lYCAoZXZlbiB0aG9zZSB0aGF0IGFscmVhZHkgZXhpc3QpLCBhbmQgaXMgdW5zZXQg YWdhaW4gd2hlbiB0aGUKICAgIGZ1bmN0aW9uIGNvbXBsZXRlcy4gIFNlZSA6cmVmOmBMb2Nh bCBQYXJhbWV0ZXJzYC4KICAgIFRoZSBzYW1lIHJ1bGVzIGFwcGx5IHRvIHNwZWNpYWwgc2hl bGwgcGFyYW1ldGVycywgd2hpY2gKICAgIHJldGFpbiB0aGVpciBzcGVjaWFsIGF0dHJpYnV0 ZXMgd2hlbiBtYWRlIGxvY2FsLgogICAgCiAgICBGb3IgZWFjaCA6dmFyOmBuYW1lYFwgYGA9 YGA6dmFyOmB2YWx1ZWAgYXNzaWdubWVudCwgdGhlIHBhcmFtZXRlcgogICAgOnZhcjpgbmFt ZWAgaXMgc2V0IHRvIDp2YXI6YHZhbHVlYC4gIElmIHRoZSBhc3NpZ25tZW50IGlzIG9taXR0 ZWQgYW5kIDp2YXI6YG5hbWVgCiAgICBkb2VzIDplbXBoYXNpczpgbm90YCByZWZlciB0byBh biBleGlzdGluZyBwYXJhbWV0ZXIsIGEgbmV3IHBhcmFtZXRlciBpcyBpbml0aWFsaXplZAog ICAgdG8gZW1wdHkgc3RyaW5nLCB6ZXJvLCBvciBlbXB0eSBhcnJheSAoYXMgYXBwcm9wcmlh dGUpLCA6ZW1waGFzaXM6YHVubGVzc2AgdGhlCiAgICBzaGVsbCBvcHRpb24gYGBUWVBFU0VU X1RPX1VOU0VUYGAgaXMgc2V0LiAgV2hlbiB0aGF0IG9wdGlvbiBpcyBzZXQsCiAgICB0aGUg cGFyYW1ldGVyIGF0dHJpYnV0ZXMgYXJlIHJlY29yZGVkIGJ1dCB0aGUgcGFyYW1ldGVyIHJl bWFpbnMgdW5zZXQuCiAgICAKICAgIElmIHRoZSBzaGVsbCBvcHRpb24gYGBUWVBFU0VUX1NJ TEVOVGBgIGlzIG5vdCBzZXQsIGZvciBlYWNoIHJlbWFpbmluZwogICAgOnZhcjpgbmFtZWAg dGhhdCByZWZlcnMgdG8gYSBwYXJhbWV0ZXIgdGhhdCBpcyBhbHJlYWR5IHNldCwgdGhlIG5h bWUgYW5kCiAgICB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyIGFyZSBwcmludGVkIGluIHRoZSBm b3JtIG9mIGFuIGFzc2lnbm1lbnQuCiAgICBOb3RoaW5nIGlzIHByaW50ZWQgZm9yIG5ld2x5 LWNyZWF0ZWQgcGFyYW1ldGVycywgb3Igd2hlbiBhbnkgYXR0cmlidXRlCiAgICBmbGFncyBs aXN0ZWQgYmVsb3cgYXJlIGdpdmVuIGFsb25nIHdpdGggdGhlIDp2YXI6YG5hbWVgLiAgVXNp bmcKICAgIGBgK2BgIGluc3RlYWQgb2YgbWludXMgdG8gaW50cm9kdWNlIGFuIGF0dHJpYnV0 ZSB0dXJucyBpdCBvZmYuCiAgICAKICAgIElmIG5vIDp2YXI6YG5hbWVgIGlzIHByZXNlbnQs IHRoZSBuYW1lcyBhbmQgdmFsdWVzIG9mIGFsbCBwYXJhbWV0ZXJzIGFyZQogICAgcHJpbnRl ZC4gIEluIHRoaXMgY2FzZSB0aGUgYXR0cmlidXRlIGZsYWdzIHJlc3RyaWN0IHRoZSBkaXNw bGF5IHRvIG9ubHkKICAgIHRob3NlIHBhcmFtZXRlcnMgdGhhdCBoYXZlIHRoZSBzcGVjaWZp ZWQgYXR0cmlidXRlcywgYW5kIHVzaW5nIGBgK2BgCiAgICByYXRoZXIgdGhhbiBgYC1gYCB0 byBpbnRyb2R1Y2UgdGhlIGZsYWcgc3VwcHJlc3NlcyBwcmludGluZyBvZiB0aGUgdmFsdWVz CiAgICBvZiBwYXJhbWV0ZXJzIHdoZW4gdGhlcmUgaXMgbm8gcGFyYW1ldGVyIG5hbWUuCiAg ICAKICAgIEFsbCBmb3JtcyBvZiB0aGUgY29tbWFuZCBoYW5kbGUgc2NhbGFyIGFzc2lnbm1l bnQuICBBcnJheSBhc3NpZ25tZW50IGlzCiAgICBwb3NzaWJsZSBpZiBhbnkgb2YgdGhlIHJl c2VydmVkIHdvcmRzIGBgZGVjbGFyZWBgLCBgYGV4cG9ydGBgLCBgYGZsb2F0YGAsCiAgICBg YGludGVnZXJgYCwgYGBsb2NhbGBgLCBgYHJlYWRvbmx5YGAgb3IgYGB0eXBlc2V0YGAgaXMg bWF0Y2hlZCB3aGVuIHRoZQogICAgbGluZSBpcyBwYXJzZWQgKE4uQi4gbm90IHdoZW4gaXQg aXMgZXhlY3V0ZWQpLiAgSW4gdGhpcyBjYXNlIHRoZSBhcmd1bWVudHMKICAgIGFyZSBwYXJz ZWQgYXMgYXNzaWdubWVudHMsIGV4Y2VwdCB0aGF0IHRoZSBgYCs9YGAgc3ludGF4IGFuZCB0 aGUKICAgIGBgR0xPQl9BU1NJR05gYCBvcHRpb24gYXJlIG5vdCBzdXBwb3J0ZWQsIGFuZCBz Y2FsYXIgdmFsdWVzIGFmdGVyIGBgPWBgCiAgICBhcmUgOmVtcGhhc2lzOmBub3RgIHNwbGl0 IGZ1cnRoZXIgaW50byB3b3JkcywgZXZlbiBpZiBleHBhbmRlZCAocmVnYXJkbGVzcyBvZiB0 aGUKICAgIHNldHRpbmcgb2YgdGhlIGBgS1NIX1RZUEVTRVRgYCBvcHRpb247IHRoaXMgb3B0 aW9uIGlzIG9ic29sZXRlKS4KICAgIAogICAgRXhhbXBsZXMgb2YgdGhlIGRpZmZlcmVuY2Vz IGJldHdlZW4gY29tbWFuZCBhbmQgcmVzZXJ2ZWQgd29yZCBwYXJzaW5nOgogICAgCiAgICAu LiBwYXJzZWQtbGl0ZXJhbDo6CiAgICAgICA6Y2xhc3M6IGV4YW1wbGUKICAgIAoKICAgICAg ICAjIFJlc2VydmVkIHdvcmQgcGFyc2luZwogICAgICAgIHR5cGVzZXQgc3Zhcj0kKGVjaG8g b25lIHdvcmQpIGF2YXI9KHNldmVyYWwgd29yZHMpCiAgICAKICAgIAogICAgVGhlIGFib3Zl IGNyZWF0ZXMgYSBzY2FsYXIgcGFyYW1ldGVyIGBgc3ZhcmBgIGFuZCBhbiBhcnJheQogICAg cGFyYW1ldGVyIGBgYXZhcmBgIGFzIGlmIHRoZSBhc3NpZ25tZW50cyBoYWQgYmVlbgogICAg CiAgICAuLiBwYXJzZWQtbGl0ZXJhbDo6CiAgICAgICA6Y2xhc3M6IGV4YW1wbGUKICAgIAoK ICAgICAgICBzdmFyPSJvbmUgd29yZCIKICAgICAgICBhdmFyPShzZXZlcmFsIHdvcmRzKQog ICAgCiAgICAKICAgIE9uIHRoZSBvdGhlciBoYW5kOgogICAgCiAgICAuLiBwYXJzZWQtbGl0 ZXJhbDo6CiAgICAgICA6Y2xhc3M6IGV4YW1wbGUKICAgIAoKICAgICAgICAjIE5vcm1hbCBi dWlsdGluIGludGVyZmFjZQogICAgICAgIGJ1aWx0aW4gdHlwZXNldCBzdmFyPSQoZWNobyB0 d28gd29yZHMpCiAgICAKICAgIAogICAgVGhlIGBgYnVpbHRpbmBgIGtleXdvcmQgY2F1c2Vz IHRoZSBhYm92ZSB0byB1c2UgdGhlIHN0YW5kYXJkIGJ1aWx0aW4KICAgIGludGVyZmFjZSB0 byBgYHR5cGVzZXRgYCBpbiB3aGljaCBhcmd1bWVudCBwYXJzaW5nIGlzIHBlcmZvcm1lZCBp biB0aGUgc2FtZQogICAgd2F5IGFzIGZvciBvdGhlciBjb21tYW5kcy4gIFRoaXMgZXhhbXBs ZSBjcmVhdGVzIGEgc2NhbGFyIGBgc3ZhcmBgCiAgICBjb250YWluaW5nIHRoZSB2YWx1ZSBg YHR3b2BgIGFuZCBhbm90aGVyIHNjYWxhciBwYXJhbWV0ZXIgYGB3b3Jkc2BgIHdpdGgKICAg IG5vIHZhbHVlLiAgQW4gYXJyYXkgdmFsdWUgaW4gdGhpcyBjYXNlIHdvdWxkIGVpdGhlciBj YXVzZSBhbiBlcnJvciBvciBiZQogICAgdHJlYXRlZCBhcyBhbiBvYnNjdXJlIHNldCBvZiBn bG9iIHF1YWxpZmllcnMuCiAgICAKICAgIEFyYml0cmFyeSBhcmd1bWVudHMgYXJlIGFsbG93 ZWQgaWYgdGhleSB0YWtlIHRoZSBmb3JtIG9mIGFzc2lnbm1lbnRzCiAgICBhZnRlciBjb21t YW5kIGxpbmUgZXhwYW5zaW9uOyBob3dldmVyLCB0aGVzZSBvbmx5IHBlcmZvcm0gc2NhbGFy CiAgICBhc3NpZ25tZW50OgogICAgCiAgICAuLiBwYXJzZWQtbGl0ZXJhbDo6CiAgICAgICA6 Y2xhc3M6IGV4YW1wbGUKICAgIAoKICAgICAgICB2YXI9J3N2YXI9dmFsJwogICAgICAgIHR5 cGVzZXQgJHZhcgogICAgCiAgICAKICAgIFRoZSBhYm92ZSBzZXRzIHRoZSBzY2FsYXIgcGFy YW1ldGVyIGBgc3ZhcmBgIHRvIHRoZSB2YWx1ZSBgYHZhbGBgLgogICAgUGFyZW50aGVzZXMg YXJvdW5kIHRoZSB2YWx1ZSB3aXRoaW4gYGB2YXJgYCB3b3VsZCBub3QgY2F1c2UgYXJyYXkK ICAgIGFzc2lnbm1lbnQgYXMgdGhleSB3aWxsIGJlIHRyZWF0ZWQgYXMgb3JkaW5hcnkgY2hh cmFjdGVycyB3aGVuIGBgJHZhcmBgCiAgICBpcyBzdWJzdGl0dXRlZC4gIEFueSBub24tdHJp dmlhbCBleHBhbnNpb24gaW4gdGhlIG5hbWUgcGFydCBvZiB0aGUKICAgIGFzc2lnbm1lbnQg Y2F1c2VzIHRoZSBhcmd1bWVudCB0byBiZSB0cmVhdGVkIGluIHRoaXMgZmFzaGlvbjoKICAg IAogICAgLi4gcGFyc2VkLWxpdGVyYWw6OgogICAgICAgOmNsYXNzOiBleGFtcGxlCiAgICAK CiAgICAgICAgdHlwZXNldCB7dmFyMSx2YXIyLHZhcjN9PW5hbWUKICAgIAogICAgCiAgICBU aGUgYWJvdmUgc3ludGF4IGlzIHZhbGlkLCBhbmQgaGFzIHRoZSBleHBlY3RlZCBlZmZlY3Qg b2Ygc2V0dGluZyB0aGUKICAgIHRocmVlIHBhcmFtZXRlcnMgdG8gdGhlIHNhbWUgdmFsdWUs IGJ1dCB0aGUgY29tbWFuZCBsaW5lIGlzIHBhcnNlZCBhcwogICAgYSBzZXQgb2YgdGhyZWUg bm9ybWFsIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdG8gYGB0eXBlc2V0YGAgYWZ0ZXIKICAg IGV4cGFuc2lvbi4gIEhlbmNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBhc3NpZ24gdG8gbXVs dGlwbGUgYXJyYXlzIGJ5CiAgICB0aGlzIG1lYW5zLgogICAgCiAgICBOb3RlIHRoYXQgZWFj aCBpbnRlcmZhY2UgdG8gYW55IG9mIHRoZSBjb21tYW5kcyBtYXkgYmUgZGlzYWJsZWQKICAg IHNlcGFyYXRlbHkuICBGb3IgZXhhbXBsZSwgYGBkaXNhYmxlIC1yIHR5cGVzZXRgYCBkaXNh YmxlcyB0aGUgcmVzZXJ2ZWQKICAgIHdvcmQgaW50ZXJmYWNlIHRvIGBgdHlwZXNldGBgLCBl eHBvc2luZyB0aGUgYnVpbHRpbiBpbnRlcmZhY2UsIHdoaWxlCiAgICBgYGRpc2FibGUgdHlw ZXNldGBgIGRpc2FibGVzIHRoZSBidWlsdGluLiAgTm90ZSB0aGF0IGRpc2FibGluZyB0aGUK ICAgIHJlc2VydmVkIHdvcmQgaW50ZXJmYWNlIGZvciBgYHR5cGVzZXRgYCBtYXkgY2F1c2Ug cHJvYmxlbXMgd2l0aCB0aGUKICAgIG91dHB1dCBvZiBgYHR5cGVzZXQgLXBgYCwgd2hpY2gg YXNzdW1lcyB0aGUgcmVzZXJ2ZWQgd29yZCBpbnRlcmZhY2UgaXMKICAgIGF2YWlsYWJsZSBp biBvcmRlciB0byByZXN0b3JlIGFycmF5IGFuZCBhc3NvY2lhdGl2ZSBhcnJheSB2YWx1ZXMu CiAgICAKICAgIFVubGlrZSBwYXJhbWV0ZXIgYXNzaWdubWVudCBzdGF0ZW1lbnRzLCBgYHR5 cGVzZXRgYCdzIGV4aXQgc3RhdHVzIG9uIGFuCiAgICBhc3NpZ25tZW50IHRoYXQgaW52b2x2 ZXMgYSBjb21tYW5kIHN1YnN0aXR1dGlvbiBkb2VzIG5vdCByZWZsZWN0IHRoZSBleGl0CiAg ICBzdGF0dXMgb2YgdGhlIGNvbW1hbmQgc3Vic3RpdHV0aW9uLiAgVGhlcmVmb3JlLCB0byB0 ZXN0IGZvciBhbiBlcnJvciBpbgogICAgYSBjb21tYW5kIHN1YnN0aXR1dGlvbiwgc2VwYXJh dGUgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSBwYXJhbWV0ZXIgZnJvbSBpdHMKICAgIGluaXRp YWxpemF0aW9uOgogICAgCiAgICAuLiBwYXJzZWQtbGl0ZXJhbDo6CiAgICAgICA6Y2xhc3M6 IGV4YW1wbGUKICAgIAoKICAgICAgICAjIFdST05HCiAgICAgICAgdHlwZXNldCB2YXIxPSQo ZXhpdCAxKSB8fCBlY2hvICJUcm91YmxlIHdpdGggdmFyMSIKICAgICAgICAKICAgICAgICAj IFJJR0hUCiAgICAgICAgdHlwZXNldCB2YXIxICYmIHZhcjE9JChleGl0IDEpIHx8IGVjaG8g IlRyb3VibGUgd2l0aCB2YXIxIgogICAgICAgIAogICAgCiAgICAKICAgIFRvIGluaXRpYWxp emUgYSBwYXJhbWV0ZXIgOnZhcjpgcGFyYW1gIHRvIGEgY29tbWFuZCBvdXRwdXQgYW5kIG1h cmsgaXQgcmVhZG9ubHksCiAgICB1c2UgYGB0eXBlc2V0IC1yYGAgOnZhcjpgcGFyYW1gIG9y IGBgcmVhZG9ubHlgYCA6dmFyOmBwYXJhbWAgYWZ0ZXIgdGhlIHBhcmFtZXRlcgogICAgYXNz aWdubWVudCBzdGF0ZW1lbnQuCiAgICAKICAgIC4uIGluZGV4Ojogc2luZ2xlOiBuYW1lZCBy ZWZlcmVuY2U7IENvbW1hbmQKICAgIAogICAgCiAgICAuLiBpbmRleDo6IHNpbmdsZTogcmVm ZXJlbmNlLCBuYW1lZDsgQ29tbWFuZAogICAgCiAgICAKICAgIFRoZSBmbGFnIGBgLW5gYCBj cmVhdGVzIGEgOmVtcGhhc2lzOmBuYW1lZCByZWZlcmVuY2VgIHRvIGFub3RoZXIgcGFyYW1l dGVyLgogICAgVGhlIHNlY29uZCBwYXJhbWV0ZXIgbmVlZCBub3QgZXhpc3QgYXQgdGhlIHRp bWUgdGhlIHJlZmVyZW5jZSBpcwogICAgY3JlYXRlZC4gIE9ubHkgdGhlIGBgLUhgYCwgYGAt Z2BgLCBhbmQgYGAtcmBgIGZsYWdzIG1heSBiZSB1c2VkIGluCiAgICBjb25qdW5jdGlvbiB3 aXRoIGBgLW5gYCwgaGF2aW5nIHRoZWlyIHVzdWFsIG1lYW5pbmdzLiAgVGhlIGBgLXVgYAog ICAgZmxhZyBpcyBzcGVjaWFsIGFuZCBtYXkgYmUgYXBwbGllZCB0byBhbHRlciB0aGUgc2Nv cGUgb2YgdGhlIHJlZmVyZW5jZS4KICAgIFRoZSA6dmFyOmBuYW1lYCBzbyBjcmVhdGVkIG1h eSBub3QgYmUgYW4gYXJyYXkgZWxlbWVudCBub3IgdXNlCiAgICBhIHN1YnNjcmlwdCwgYnV0 IHRoZSA6dmFyOmB2YWx1ZWAgYXNzaWduZWQgbWF5IGJlIGFueSB2YWxpZCBwYXJhbWV0ZXIK ICAgIG5hbWUgc3ludGF4LCBldmVuIGEgc3Vic2NyaXB0ZWQgYXJyYXkgZWxlbWVudCAoaW5j bHVkaW5nIGFuIGFzc29jaWF0aXZlCiAgICBhcnJheSBlbGVtZW50KSBvciBhbiBhcnJheSBz bGljZSwgd2hpY2ggaXMgZXZhbHVhdGVkIHdoZW4gdGhlIG5hbWVkCiAgICByZWZlcmVuY2Ug aXMgZXhwYW5kZWQuICBJdCBpcyBhbiBlcnJvciBmb3IgYSBuYW1lZCByZWZlcmVuY2UgdG8g cmVmZXIKICAgIHRvIGl0c2VsZiwgZXZlbiBpbmRpcmVjdGx5IHRocm91Z2ggYSBjaGFpbiBv ZiByZWZlcmVuY2VzLiAgV2hlbiBgYC11YGAKICAgIGlzIGFwcGxpZWQgdG8gYSBuYW1lZCBy ZWZlcmVuY2UsIHRoZSBwYXJhbWV0ZXIgaWRlbnRpZmllZCBieSA6dmFyOmB2YWx1ZWAKICAg IGlzIGFsd2F5cyBmb3VuZCBpbiB0aGUgY2FsbGluZyBmdW5jdGlvbiBzY29wZSByYXRoZXIg dGhhbiB0aGUgY3VycmVudAogICAgbG9jYWwgc2NvcGUuICBJbiB0aGlzIGNhc2UsIGlmIHRo ZXJlIGlzIG5vIHN1Y2ggcGFyYW1ldGVyIGluIHRoZSBjYWxsaW5nCiAgICBzY29wZSwgYXNz aWdubWVudHMgdG8gdGhlIG5hbWVkIHJlZmVyZW5jZSBtYXkgZmFpbCwgc2V0dGluZyBgYCQ/ YGAgdG8gMS4KICAgIFNlZSA6cmVmOmBQYXJhbWV0ZXIgRXhwYW5zaW9uYCBhbmQKICAgIDpy ZWY6YE5hbWVkIFJlZmVyZW5jZXNgIGZvciBkZXRhaWxzIG9mIHRoZQogICAgYmVoYXZpb3Ig b2YgbmFtZWQgcmVmZXJlbmNlcy4KICAgIAogICAgTG9jYWwgZnVuY3Rpb24gc2NvcGluZyBy dWxlcyBmb3IgYGB0eXBlc2V0YGAgZG8gYXBwbHkgd2l0aCBgYC1uYGAsCiAgICBzbyBhIGRl Y2xhcmF0aW9uIHdpdGhpbiBhIGZ1bmN0aW9uIHBlcnNpc3RzIG9ubHkgdW50aWwgdGhlIGVu ZCBvZiB0aGUKICAgIGZ1bmN0aW9uIHVubGVzcyBgYC1nIC1uYGAgaXMgc3BlY2lmaWVkLCBh bmQgYW55IGxvY2FsIHBhcmFtZXRlciAob2YKICAgIGFueSB0eXBlKSB3aXRoIHRoZSBzYW1l IDp2YXI6YG5hbWVgIHN1cHBsYW50cyBhIG5hbWVkIHJlZmVyZW5jZSBmcm9tIGEKICAgIHN1 cnJvdW5kaW5nIHNjb3BlLgogICAgCiAgICBBIHNjYWxhciBwYXJhbWV0ZXIsIGluY2x1ZGlu ZyBhbiBleGlzdGluZyBuYW1lZCByZWZlcmVuY2UsIG1heSBiZQogICAgY29udmVydGVkIHRv IGEgbmV3IG5hbWVkIHJlZmVyZW5jZSBieSBgYHR5cGVzZXQgLW5gYCA6dmFyOmBuYW1lYCwg c28KICAgIHRoZSBgYC1wYGAgb3B0aW9uIG11c3QgYmUgaW5jbHVkZWQgdG8gZGlzcGxheSB0 aGUgdmFsdWUgb2YgYQogICAgc3BlY2lmaWMgbmFtZWQgcmVmZXJlbmNlIDp2YXI6YG5hbWVg LgogICAgCiAgICBJZiBubyBhdHRyaWJ1dGUgZmxhZ3MgYXJlIGdpdmVuLCBhbmQgZWl0aGVy IG5vIDp2YXI6YG5hbWVgIGFyZ3VtZW50cyBhcmUKICAgIHByZXNlbnQgb3IgdGhlIGZsYWcg YGArbWBgIGlzIHVzZWQsIHRoZW4gZWFjaCBwYXJhbWV0ZXIgbmFtZSBwcmludGVkIGlzCiAg ICBwcmVjZWRlZCBieSBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgb2YgdGhhdCBwYXJhbWV0 ZXIgKGBgYXJyYXlgYCwKICAgIGBgYXNzb2NpYXRpb25gYCwgYGBleHBvcnRlZGBgLCBgYGZs b2F0YGAsIGBgaW50ZWdlcmBgLCBgYHJlYWRvbmx5YGAsCiAgICBvciBgYHVuZGVmaW5lZGBg IGZvciBhdXRvbG9hZGVkIHBhcmFtZXRlcnMgbm90IHlldCBsb2FkZWQpLiAgSWYgYGArbWBg IGlzCiAgICB1c2VkIHdpdGggYXR0cmlidXRlIGZsYWdzLCBhbmQgYWxsIHRob3NlIGZsYWdz IGFyZSBpbnRyb2R1Y2VkIHdpdGgKICAgIGBgK2BgLCB0aGUgbWF0Y2hpbmcgcGFyYW1ldGVy IG5hbWVzIGFyZSBwcmludGVkIGJ1dCB0aGVpciB2YWx1ZXMKICAgIGFyZSBub3QuCiAgICAK ICAgIFRoZSBmb2xsb3dpbmcgY29udHJvbCBmbGFncyBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9m IGBgdHlwZXNldGBgOgogICAgCiAgICAKICAgIGBgK2BgCiAgICAgICAgCiAgICAgICAgSWYg YGArYGAgYXBwZWFycyBieSBpdHNlbGYgaW4gYSBzZXBhcmF0ZSB3b3JkIGFzIHRoZSBsYXN0 IG9wdGlvbiwKICAgICAgICB0aGVuIHRoZSBuYW1lcyBvZiBhbGwgcGFyYW1ldGVycyAoZnVu Y3Rpb25zIHdpdGggYGAtZmBgKSBhcmUgcHJpbnRlZCwgYnV0CiAgICAgICAgdGhlIHZhbHVl cyAoZnVuY3Rpb24gYm9kaWVzKSBhcmUgbm90LiAgSWYgOnZhcjpgbmFtZWAgYXJndW1lbnRz IGFwcGVhciwKICAgICAgICBib3RoIHRob3NlIG5hbWVzIGFuZCB0aGVpciB2YWx1ZXMgYXJl IHByaW50ZWQgaW4gdGhlIGZvcm0gb2YgYXNzaWdubWVudHMuCiAgICAgICAgSXQgaXMgYW4g ZXJyb3IgZm9yIGFueSBvdGhlciBvcHRpb25zIHRvIGZvbGxvdyBgYCtgYCwgYnV0IHRoZQog ICAgICAgIGVmZmVjdCBvZiBgYCtgYCBpcyBhcyBpZiBhbGwgYXR0cmlidXRlIGZsYWdzIHdo aWNoIHByZWNlZGUgaXQgd2VyZQogICAgICAgIGdpdmVuIHdpdGggYSBgYCtgYCBwcmVmaXgu ICBGb3IgZXhhbXBsZSwgYGB0eXBlc2V0IC1VICtgYCBpcwogICAgICAgIGVxdWl2YWxlbnQg dG8gYGB0eXBlc2V0ICtVYGAgYW5kIGRpc3BsYXlzIHRoZSBuYW1lcyBvZiBhbGwgYXJyYXlz IGhhdmluZwogICAgICAgIHRoZSB1bmlxdWVuZXNzIGF0dHJpYnV0ZSwgd2hlcmVhcyBgYHR5 cGVzZXQgLWYgLVUgK2BgIGRpc3BsYXlzIHRoZQogICAgICAgIG5hbWVzIG9mIGFsbCBhdXRv bG9hZGFibGUgZnVuY3Rpb25zLiAgSWYgYGArYGAgaXMgdGhlIG9ubHkgb3B0aW9uLAogICAg ICAgIHRoZW4gdHlwZSBpbmZvcm1hdGlvbiAoYXJyYXksIHJlYWRvbmx5LCBldGMuKSBpcyBh bHNvIHByaW50ZWQgZm9yIGVhY2gKICAgICAgICBwYXJhbWV0ZXIsIGluIHRoZSBzYW1lIG1h bm5lciBhcyBgYHR5cGVzZXQgK20gIioiYGAuCiAgICAgICAgCiAgICAKICAgIGBgLWdgYAog ICAgICAgIAogICAgICAgIFRoZSBgYC1nYGAgKGdsb2JhbCkgbWVhbnMgdGhhdCBhbnkgcmVz dWx0aW5nIHBhcmFtZXRlciB3aWxsIG5vdCBiZQogICAgICAgIHJlc3RyaWN0ZWQgdG8gbG9j YWwgc2NvcGUuICBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBuZWNlc3NhcmlseSBtZWFuIHRo YXQKICAgICAgICB0aGUgcGFyYW1ldGVyIHdpbGwgYmUgZ2xvYmFsLCBhcyB0aGUgZmxhZyB3 aWxsIGFwcGx5IHRvIGFueSBleGlzdGluZwogICAgICAgIHBhcmFtZXRlciAoZXZlbiBpZiB1 bnNldCkgZnJvbSBhbiBlbmNsb3NpbmcgZnVuY3Rpb24uICBUaGlzIGZsYWcgZG9lcyBub3QK ICAgICAgICBhZmZlY3QgdGhlIHBhcmFtZXRlciBhZnRlciBjcmVhdGlvbiwgaGVuY2UgaXQg aGFzIG5vIGVmZmVjdCB3aGVuIGxpc3RpbmcKICAgICAgICBleGlzdGluZyBwYXJhbWV0ZXJz LCBub3IgZG9lcyB0aGUgZmxhZyBgYCtnYGAgaGF2ZSBhbnkgZWZmZWN0IGV4Y2VwdCBpbgog ICAgICAgIGNvbWJpbmF0aW9uIHdpdGggYGAtbWBgIChzZWUgYmVsb3cpLgogICAgICAgIAog ICAgCiAgICBgYC1tYGAKICAgICAgICAKICAgICAgICBJZiB0aGUgYGAtbWBgIGZsYWcgaXMg Z2l2ZW4gdGhlIDp2YXI6YG5hbWVgIGFyZ3VtZW50cyBhcmUgdGFrZW4gYXMgcGF0dGVybnMK ICAgICAgICAodXNlIHF1b3RpbmcgdG8gcHJldmVudCB0aGVzZSBmcm9tIGJlaW5nIGludGVy cHJldGVkIGFzIGZpbGUgcGF0dGVybnMpLgogICAgICAgIFdpdGggbm8gYXR0cmlidXRlIGZs YWdzLCBhbGwgcGFyYW1ldGVycyAob3IgZnVuY3Rpb25zIHdpdGggdGhlIGBgLWZgYAogICAg ICAgIGZsYWcpIHdpdGggbWF0Y2hpbmcgbmFtZXMgYXJlIHByaW50ZWQgKHRoZSBzaGVsbCBv cHRpb24gYGBUWVBFU0VUX1NJTEVOVGBgCiAgICAgICAgaXMgbm90IHVzZWQgaW4gdGhpcyBj YXNlKS4KICAgICAgICAKICAgICAgICBJZiB0aGUgYGArZ2BgIGZsYWcgaXMgY29tYmluZWQg d2l0aCBgYC1tYGAsIGEgbmV3IGxvY2FsIHBhcmFtZXRlciBpcwogICAgICAgIGNyZWF0ZWQg Zm9yIGV2ZXJ5IG1hdGNoaW5nIHBhcmFtZXRlciB0aGF0IGlzIG5vdCBhbHJlYWR5IGxvY2Fs LiAgT3RoZXJ3aXNlCiAgICAgICAgYGAtbWBgIGFwcGxpZXMgYWxsIG90aGVyIGZsYWdzIG9y IGFzc2lnbm1lbnRzIHRvIHRoZSBleGlzdGluZyBwYXJhbWV0ZXJzLAogICAgICAgIGV4Y2Vw dCB0aGF0IHRoZSBgYC1uYGAgb3B0aW9uIGNhbm5vdCBjcmVhdGUgbmFtZWQgcmVmZXJlbmNl cyBpbiB0aGlzIHdheS4KICAgICAgICAKICAgICAgICBFeGNlcHQgd2hlbiBhc3NpZ25tZW50 cyBhcmUgbWFkZSB3aXRoIDp2YXI6YG5hbWVgXCBgYD1gYDp2YXI6YHZhbHVlYCwgdXNpbmcK ICAgICAgICBgYCttYGAgZm9yY2VzIHRoZSBtYXRjaGluZyBwYXJhbWV0ZXJzIGFuZCB0aGVp ciBhdHRyaWJ1dGVzIHRvIGJlIHByaW50ZWQsCiAgICAgICAgZXZlbiBpbnNpZGUgYSBmdW5j dGlvbi4gIE5vdGUgdGhhdCBgYC1tYGAgaXMgaWdub3JlZCBpZiBubyBwYXR0ZXJucyBhcmUK ICAgICAgICBnaXZlbiwgc28gYGB0eXBlc2V0IC1tYGAgZGlzcGxheXMgYXR0cmlidXRlcyBi dXQgYGB0eXBlc2V0IC1hICttYGAKICAgICAgICBkb2VzIG5vdC4gIE9yZGluYXJ5IHNjYWxh ciBzdHJpbmcgcGFyYW1ldGVycyBoYXZlIG5vIGF0dHJpYnV0ZXMsIHNvIGZvcgogICAgICAg IHRob3NlIGBgK21gYCBwcmludHMgb25seSB0aGUgbmFtZXMuCiAgICAgICAgCiAgICAKICAg IGBgLXBgYCBbIDp2YXI6YG5gIF0KICAgICAgICAKICAgICAgICBJZiB0aGUgYGAtcGBgIG9w dGlvbiBpcyBnaXZlbiwgcGFyYW1ldGVycyBhbmQgdmFsdWVzIGFyZSBwcmludGVkIGluIHRo ZQogICAgICAgIGZvcm0gb2YgYSB0eXBlc2V0IGNvbW1hbmQgd2l0aCBhbiBhc3NpZ25tZW50 LCByZWdhcmRsZXNzIG9mIG90aGVyIGZsYWdzCiAgICAgICAgYW5kIG9wdGlvbnMuICBOb3Rl IHRoYXQgdGhlIGBgLUhgYCBmbGFnIG9uIHBhcmFtZXRlcnMgaXMgcmVzcGVjdGVkOyBubwog ICAgICAgIHZhbHVlIHdpbGwgYmUgc2hvd24gZm9yIHRoZXNlIHBhcmFtZXRlcnMuCiAgICAg ICAgCiAgICAgICAgYGAtcGBgIG1heSBiZSBmb2xsb3dlZCBieSBhbiBvcHRpb25hbCBpbnRl Z2VyIGFyZ3VtZW50LiAgQ3VycmVudGx5CiAgICAgICAgb25seSB0aGUgdmFsdWUgYGAxYGAg aXMgc3VwcG9ydGVkLiAgSW4gdGhpcyBjYXNlIGFycmF5cyBhbmQgYXNzb2NpYXRpdmUKICAg ICAgICBhcnJheXMgYXJlIHByaW50ZWQgd2l0aCBuZXdsaW5lcyBiZXR3ZWVuIGluZGVudGVk IGVsZW1lbnRzIGZvcgogICAgICAgIHJlYWRhYmlsaXR5LgogICAgICAgIAogICAgICAgIFRo ZSBuYW1lcyBhbmQgdmFsdWVzIG9mIHJlYWRvbmx5IHNwZWNpYWwgcGFyYW1ldGVycwogICAg ICAgIChtb3N0IG9mIHRoZSBwYXJhbWV0ZXJzIG1hcmtlZCBcYDxTPicgaW4KICAgICAgICA6 cmVmOmBQYXJhbWV0ZXJzIFNldCBieSB0aGUgU2hlbGxgLAogICAgICAgIGV4Y2VwdCB0aG9z ZSBkb2N1bWVudGVkIGFzIHNldHRhYmxlKQogICAgICAgIGFyZSBub3QgcHJpbnRlZCB3aXRo IGBgLXBgYCBiZWNhdXNlIHRvIGV4ZWN1dGUgdGhvc2UgdHlwZXNldCBjb21tYW5kcwogICAg ICAgIHdvdWxkIGNhdXNlIGVycm9ycy4gIEhvd2V2ZXIsIHRoZXNlIHBhcmFtZXRlcnMgYXJl IHByaW50ZWQgd2hlbiB0aGV5CiAgICAgICAgaGF2ZSBiZWVuIG1hZGUgbG9jYWwgdG8gdGhl IHNjb3BlIHdoZXJlIGBgdHlwZXNldCAtcGBgIGlzIHJ1bi4KICAgICAgICAKICAgIAogICAg YGAtVGBgIFsgOnZhcjpgc2NhbGFyYFxbYGA9YGA6dmFyOmB2YWx1ZWBdIDp2YXI6YGFycmF5 YFxbYGA9KGBgOnZhcjpgdmFsdWVgIC4uLmBgKWBgXSBbIDp2YXI6YHNlcGAgXSBdCiAgICAg ICAgCiAgICAgICAgVGhpcyBmbGFnIGhhcyBhIGRpZmZlcmVudCBtZWFuaW5nIHdoZW4gdXNl ZCB3aXRoIGBgLWZgYDsgc2VlIGJlbG93LgogICAgICAgIE90aGVyd2lzZSB0aGUgYGAtVGBg IG9wdGlvbiByZXF1aXJlcyB6ZXJvLCB0d28sIG9yIHRocmVlIGFyZ3VtZW50cyB0byBiZQog ICAgICAgIHByZXNlbnQuICBXaXRoIG5vIGFyZ3VtZW50cywgdGhlIGxpc3Qgb2YgcGFyYW1l dGVycyBjcmVhdGVkIGluIHRoaXMKICAgICAgICBmYXNoaW9uIGlzIHNob3duLiAgV2l0aCB0 d28gb3IgdGhyZWUgYXJndW1lbnRzLCB0aGUgZmlyc3QgdHdvIGFyZSB0aGUgbmFtZQogICAg ICAgIG9mIGEgc2NhbGFyIGFuZCBvZiBhbiBhcnJheSBwYXJhbWV0ZXIgKGluIHRoYXQgb3Jk ZXIpIHRoYXQgd2lsbCBiZSB0aWVkCiAgICAgICAgdG9nZXRoZXIgaW4gdGhlIG1hbm5lciBv ZiBgYCRQQVRIYGAgYW5kIGBgJHBhdGhgYC4gIFRoZSBvcHRpb25hbCB0aGlyZAogICAgICAg IGFyZ3VtZW50IGlzIGEgc2luZ2xlLWNoYXJhY3RlciBzZXBhcmF0b3Igd2hpY2ggd2lsbCBi ZSB1c2VkIHRvIGpvaW4gdGhlCiAgICAgICAgZWxlbWVudHMgb2YgdGhlIGFycmF5IHRvIGZv cm0gdGhlIHNjYWxhcjsgaWYgYWJzZW50LCBhIGNvbG9uIGlzIHVzZWQsIGFzCiAgICAgICAg d2l0aCBgYCRQQVRIYGAuICBPbmx5IHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHNlcGFy YXRvciBpcyBzaWduaWZpY2FudDsKICAgICAgICBhbnkgcmVtYWluaW5nIGNoYXJhY3RlcnMg YXJlIGlnbm9yZWQuICBNdWx0aWJ5dGUgY2hhcmFjdGVycyBhcmUgbm90CiAgICAgICAgeWV0 IHN1cHBvcnRlZC4KICAgICAgICAKICAgICAgICBPbmx5IG9uZSBvZiB0aGUgc2NhbGFyIGFu ZCBhcnJheSBwYXJhbWV0ZXJzIG1heSBiZSBhc3NpZ25lZCBhbiBpbml0aWFsCiAgICAgICAg dmFsdWUgKHRoZSByZXN0cmljdGlvbnMgb24gYXNzaWdubWVudCBmb3JtcyBkZXNjcmliZWQg YWJvdmUgYWxzbyBhcHBseSkuCiAgICAgICAgCiAgICAgICAgQm90aCB0aGUgc2NhbGFyIGFu ZCB0aGUgYXJyYXkgbWF5IGJlIG1hbmlwdWxhdGVkIGFzIG5vcm1hbC4gIElmIG9uZSBpcwog ICAgICAgIHVuc2V0LCB0aGUgb3RoZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHVuc2V0IHRv by4gIFRoZXJlIGlzIG5vIHdheSBvZgogICAgICAgIHVudHlpbmcgdGhlIHZhcmlhYmxlcyB3 aXRob3V0IHVuc2V0dGluZyB0aGVtLCBub3Igb2YgY29udmVydGluZyB0aGUgdHlwZQogICAg ICAgIG9mIG9uZSBvZiB0aGVtIHdpdGggYW5vdGhlciBgYHR5cGVzZXRgYCBjb21tYW5kOyBg YCtUYGAgZG9lcyBub3Qgd29yaywKICAgICAgICBhc3NpZ25pbmcgYW4gYXJyYXkgdG8gOnZh cjpgc2NhbGFyYCBpcyBhbiBlcnJvciwgYW5kIGFzc2lnbmluZyBhIHNjYWxhciB0bwogICAg ICAgIDp2YXI6YGFycmF5YCBzZXRzIGl0IHRvIGJlIGEgc2luZ2xlLWVsZW1lbnQgYXJyYXku CiAgICAgICAgCiAgICAgICAgTm90ZSB0aGF0IGJvdGggYGB0eXBlc2V0IC14VCAuLi5gYCAg YW5kIGBgZXhwb3J0IC1UIC4uLmBgIHdvcmssIGJ1dAogICAgICAgIG9ubHkgdGhlIHNjYWxh ciB3aWxsIGJlIG1hcmtlZCBmb3IgZXhwb3J0LiAgU2V0dGluZyB0aGUgdmFsdWUgdXNpbmcg dGhlCiAgICAgICAgc2NhbGFyIHZlcnNpb24gY2F1c2VzIGEgc3BsaXQgb24gYWxsIHNlcGFy YXRvcnMgKHdoaWNoIGNhbm5vdCBiZSBxdW90ZWQpLgogICAgICAgIEl0IGlzIHBvc3NpYmxl IHRvIGFwcGx5IGBgLVRgYCB0byB0d28gcHJldmlvdXNseSB0aWVkIHZhcmlhYmxlcyBidXQg d2l0aCBhCiAgICAgICAgZGlmZmVyZW50IHNlcGFyYXRvciBjaGFyYWN0ZXIsIGluIHdoaWNo IGNhc2UgdGhlIHZhcmlhYmxlcyByZW1haW4gam9pbmVkCiAgICAgICAgYXMgYmVmb3JlIGJ1 dCB0aGUgc2VwYXJhdG9yIGlzIGNoYW5nZWQuCiAgICAgICAgCiAgICAgICAgV2hlbiBhbiBl eGlzdGluZyBzY2FsYXIgaXMgdGllZCB0byBhIG5ldyBhcnJheSwgdGhlIHZhbHVlIG9mIHRo ZSBzY2FsYXIKICAgICAgICBpcyBwcmVzZXJ2ZWQgYnV0IG5vIGF0dHJpYnV0ZSBvdGhlciB0 aGFuIGV4cG9ydCB3aWxsIGJlIHByZXNlcnZlZC4KICAgICAgICAKICAgIAogICAgCiAgICAK ICAgIEF0dHJpYnV0ZSBmbGFncyB0aGF0IHRyYW5zZm9ybSB0aGUgZmluYWwgdmFsdWUgKGBg LUxgYCwgYGAtUmBgLCBgYC1aYGAsCiAgICBgYC1sYGAsIGBgLXVgYCkgYXJlIG9ubHkgYXBw bGllZCB0byB0aGUgZXhwYW5kZWQgdmFsdWUgYXQgdGhlIHBvaW50CiAgICBvZiBhIHBhcmFt ZXRlciBleHBhbnNpb24gZXhwcmVzc2lvbiB1c2luZyBgYCRgYC4gIFRoZXkgYXJlIG5vdCBh cHBsaWVkCiAgICB3aGVuIGEgcGFyYW1ldGVyIGlzIHJldHJpZXZlZCBpbnRlcm5hbGx5IGJ5 IHRoZSBzaGVsbCBmb3IgYW55IHB1cnBvc2UuIAogICAgCiAgICBUaGUgZm9sbG93aW5nIGF0 dHJpYnV0ZSBmbGFncyBtYXkgYmUgc3BlY2lmaWVkOgogICAgCiAgICAKICAgIGBgLUFgYAog ICAgICAgIAogICAgICAgIFRoZSBuYW1lcyByZWZlciB0byBhc3NvY2lhdGl2ZSBhcnJheSBw YXJhbWV0ZXJzOyBzZWUKICAgICAgICA6cmVmOmBBcnJheSBQYXJhbWV0ZXJzYC4KICAgICAg ICAKICAgIAogICAgYGAtTGBgIFsgOnZhcjpgbmAgXQogICAgICAgIAogICAgICAgIExlZnQg anVzdGlmeSBhbmQgcmVtb3ZlIGxlYWRpbmcgYmxhbmtzIGZyb20gdGhlIHZhbHVlIHdoZW4g dGhlIHBhcmFtZXRlcgogICAgICAgIGlzIGV4cGFuZGVkLgogICAgICAgIElmIDp2YXI6YG5g IGlzIG5vbnplcm8sIGl0IGRlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBmaWVsZC4KICAgICAg ICBJZiA6dmFyOmBuYCBpcyB6ZXJvLCB0aGUgd2lkdGggaXMgZGV0ZXJtaW5lZCBieSB0aGUg d2lkdGggb2YgdGhlIHZhbHVlIG9mCiAgICAgICAgdGhlIGZpcnN0IGFzc2lnbm1lbnQuICBJ biB0aGUgY2FzZSBvZiBudW1lcmljIHBhcmFtZXRlcnMsIHRoZSBsZW5ndGggb2YgdGhlCiAg ICAgICAgY29tcGxldGUgdmFsdWUgYXNzaWduZWQgdG8gdGhlIHBhcmFtZXRlciBpcyB1c2Vk IHRvIGRldGVybWluZSB0aGUgd2lkdGgsCiAgICAgICAgbm90IHRoZSB2YWx1ZSB0aGF0IHdv dWxkIGJlIG91dHB1dC4KICAgICAgICAKICAgICAgICBUaGUgd2lkdGggaXMgdGhlIGNvdW50 IG9mIGNoYXJhY3RlcnMsIHdoaWNoIG1heSBiZSBtdWx0aWJ5dGUgY2hhcmFjdGVycwogICAg ICAgIGlmIHRoZSBgYE1VTFRJQllURWBgIG9wdGlvbiBpcyBpbiBlZmZlY3QuICBOb3RlIHRo YXQgdGhlIHNjcmVlbgogICAgICAgIHdpZHRoIG9mIHRoZSBjaGFyYWN0ZXIgaXMgbm90IHRh a2VuIGludG8gYWNjb3VudDsgaWYgdGhpcyBpcyByZXF1aXJlZCwKICAgICAgICB1c2UgcGFk ZGluZyB3aXRoIHBhcmFtZXRlciBleHBhbnNpb24gZmxhZ3MKICAgICAgICBgYCR7KG1sYGA6 dmFyOmAuLi5gXCBgYClgYDp2YXI6YC4uLmBcIGBgfWBgIGFzIGRlc2NyaWJlZCBpbgogICAg ICAgIDpyZWY6YFBhcmFtZXRlciBFeHBhbnNpb24gRmxhZ3NgLgogICAgICAgIAogICAgICAg IFdoZW4gdGhlIHBhcmFtZXRlciBpcyBleHBhbmRlZCwgaXQgaXMgZmlsbGVkIG9uIHRoZSBy aWdodCB3aXRoCiAgICAgICAgYmxhbmtzIG9yIHRydW5jYXRlZCBpZiBuZWNlc3NhcnkgdG8g Zml0IHRoZSBmaWVsZC4KICAgICAgICBOb3RlIHRydW5jYXRpb24gY2FuIGxlYWQgdG8gdW5l eHBlY3RlZCByZXN1bHRzIHdpdGggbnVtZXJpYyBwYXJhbWV0ZXJzLgogICAgICAgIExlYWRp bmcgemVyb3MgYXJlIHJlbW92ZWQgaWYgdGhlIGBgLVpgYCBmbGFnIGlzIGFsc28gc2V0Lgog ICAgICAgIAogICAgCiAgICBgYC1SYGAgWyA6dmFyOmBuYCBdCiAgICAgICAgCiAgICAgICAg U2ltaWxhciB0byBgYC1MYGAsIGV4Y2VwdCB0aGF0IHJpZ2h0IGp1c3RpZmljYXRpb24gaXMg dXNlZDsKICAgICAgICB3aGVuIHRoZSBwYXJhbWV0ZXIgaXMgZXhwYW5kZWQsIHRoZSBmaWVs ZCBpcyBsZWZ0IGZpbGxlZCB3aXRoCiAgICAgICAgYmxhbmtzIG9yIHRydW5jYXRlZCBmcm9t IHRoZSBlbmQuICBNYXkgbm90IGJlIGNvbWJpbmVkIHdpdGggdGhlIGBgLVpgYAogICAgICAg IGZsYWcuCiAgICAgICAgCiAgICAKICAgIGBgLVVgYAogICAgICAgIAogICAgICAgIEZvciBh cnJheXMgKGJ1dCBub3QgZm9yIGFzc29jaWF0aXZlIGFycmF5cyksIGtlZXAgb25seSB0aGUg Zmlyc3QKICAgICAgICBvY2N1cnJlbmNlIG9mIGVhY2ggZHVwbGljYXRlZCB2YWx1ZS4gIFRo aXMgbWF5IGFsc28gYmUgc2V0IGZvciB0aWVkCiAgICAgICAgcGFyYW1ldGVycyAoc2VlIGBg LVRgYCkgb3IgY29sb24tc2VwYXJhdGVkIHNwZWNpYWwgcGFyYW1ldGVycyBsaWtlCiAgICAg ICAgYGBQQVRIYGAgb3IgYGBGSUdOT1JFYGAsIGV0Yy4gIE5vdGUgdGhlIGZsYWcgdGFrZXMg ZWZmZWN0IG9uIGFzc2lnbm1lbnQsCiAgICAgICAgYW5kIHRoZSB0eXBlIG9mIHRoZSB2YXJp YWJsZSBiZWluZyBhc3NpZ25lZCB0byBpcyBkZXRlcm1pbmF0aXZlOyBmb3IKICAgICAgICB2 YXJpYWJsZXMgd2l0aCBzaGFyZWQgdmFsdWVzIGl0IGlzIHRoZXJlZm9yZSByZWNvbW1lbmRl ZCB0byBzZXQgdGhlIGZsYWcKICAgICAgICBmb3IgYWxsIGludGVyZmFjZXMsIGUuZy4gYGB0 eXBlc2V0IC1VIFBBVEggcGF0aGBgLgogICAgICAgIAogICAgICAgIFRoaXMgZmxhZyBoYXMg YSBkaWZmZXJlbnQgbWVhbmluZyB3aGVuIHVzZWQgd2l0aCBgYC1mYGA7IHNlZSBiZWxvdy4K ICAgICAgICAKICAgIAogICAgYGAtWmBgIFsgOnZhcjpgbmAgXQogICAgICAgIAogICAgICAg IFNwZWNpYWxseSBoYW5kbGVkIGlmIHNldCBhbG9uZyB3aXRoIHRoZSBgYC1MYGAgZmxhZy4K ICAgICAgICBPdGhlcndpc2UsIHNpbWlsYXIgdG8gYGAtUmBgLCBleGNlcHQgdGhhdCBsZWFk aW5nIHplcm9zIGFyZSB1c2VkIGZvcgogICAgICAgIHBhZGRpbmcgaW5zdGVhZCBvZiBibGFu a3MgaWYgdGhlIGZpcnN0IG5vbi1ibGFuayBjaGFyYWN0ZXIgaXMgYSBkaWdpdC4KICAgICAg ICBOdW1lcmljIHBhcmFtZXRlcnMgYXJlIHNwZWNpYWxseSBoYW5kbGVkOiB0aGV5IGFyZSBh bHdheXMgZWxpZ2libGUKICAgICAgICBmb3IgcGFkZGluZyB3aXRoIHplcm9lcywgYW5kIHRo ZSB6ZXJvZXMgYXJlIGluc2VydGVkIGF0IGFuIGFwcHJvcHJpYXRlCiAgICAgICAgcGxhY2Ug aW4gdGhlIG91dHB1dC4KICAgICAgICAKICAgIAogICAgYGAtYWBgCiAgICAgICAgCiAgICAg ICAgVGhlIG5hbWVzIHJlZmVyIHRvIGFycmF5IHBhcmFtZXRlcnMuICBBbiBhcnJheSBwYXJh bWV0ZXIgbWF5IGJlCiAgICAgICAgY3JlYXRlZCB0aGlzIHdheSwgYnV0IGl0IG1heSBiZSBh c3NpZ25lZCB0byBpbiB0aGUgYGB0eXBlc2V0YGAKICAgICAgICBzdGF0ZW1lbnQgb25seSBp ZiB0aGUgcmVzZXJ2ZWQgd29yZCBmb3JtIG9mIGBgdHlwZXNldGBgIGlzIGVuYWJsZWQKICAg ICAgICAoYXMgaXQgaXMgYnkgZGVmYXVsdCkuICBXaGVuIGRpc3BsYXlpbmcsIGJvdGggbm9y bWFsIGFuZCBhc3NvY2lhdGl2ZQogICAgICAgIGFycmF5cyBhcmUgc2hvd24uCiAgICAgICAg CiAgICAKICAgIGBgLWZgYAogICAgICAgIAogICAgICAgIFRoZSBuYW1lcyByZWZlciB0byBm dW5jdGlvbnMgcmF0aGVyIHRoYW4gcGFyYW1ldGVycy4gIE5vIGFzc2lnbm1lbnRzCiAgICAg ICAgY2FuIGJlIG1hZGUsIGFuZCB0aGUgb25seSBvdGhlciB2YWxpZCBmbGFncyBhcmUgYGAt dGBgLCBgYC1UYGAsIGBgLWtgYCwKICAgICAgICBgYC11YGAsIGBgLVVgYCBhbmQgYGAtemBg LiAgVGhlIGZsYWcgYGAtdGBgIHR1cm5zIG9uIGV4ZWN1dGlvbiB0cmFjaW5nCiAgICAgICAg Zm9yIHRoaXMgZnVuY3Rpb247IHRoZSBmbGFnIGBgLVRgYCBkb2VzIHRoZSBzYW1lLCBidXQg dHVybnMgb2ZmIHRyYWNpbmcKICAgICAgICBmb3IgYW55IG5hbWVkIChub3QgYW5vbnltb3Vz KSBmdW5jdGlvbiBjYWxsZWQgZnJvbSB0aGUgcHJlc2VudCBvbmUsCiAgICAgICAgdW5sZXNz IHRoYXQgZnVuY3Rpb24gYWxzbwogICAgICAgIGhhcyB0aGUgYGAtdGBgIG9yIGBgLVRgYCBm bGFnLiAgVGhlIGBgLXVgYCBhbmQgYGAtVWBgIGZsYWdzIGNhdXNlIHRoZQogICAgICAgIGZ1 bmN0aW9uIHRvIGJlIG1hcmtlZCBmb3IgYXV0b2xvYWRpbmc7IGBgLVVgYCBhbHNvIGNhdXNl cyBhbGlhcwogICAgICAgIGV4cGFuc2lvbiB0byBiZSBzdXBwcmVzc2VkIHdoZW4gdGhlIGZ1 bmN0aW9uIGlzIGxvYWRlZC4gIFNlZSB0aGUKICAgICAgICBkZXNjcmlwdGlvbiBvZiB0aGUg YGBhdXRvbG9hZGBgIGJ1aWx0aW4gZm9yIGRldGFpbHMuCiAgICAgICAgCiAgICAgICAgTm90 ZSB0aGF0IHRoZSBidWlsdGluIGBgZnVuY3Rpb25zYGAgcHJvdmlkZXMgdGhlIHNhbWUgYmFz aWMgY2FwYWJpbGl0aWVzCiAgICAgICAgYXMgYGB0eXBlc2V0IC1mYGAgYnV0IGdpdmVzIGFj Y2VzcyB0byBhIGZldyBleHRyYSBvcHRpb25zOyBgYGF1dG9sb2FkYGAKICAgICAgICBnaXZl cyBmdXJ0aGVyIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIGNhc2UgYGB0eXBlc2V0IC1m dWBgIGFuZAogICAgICAgIGBgdHlwZXNldCAtZlVgYC4KICAgICAgICAKICAgIAogICAgYGAt aGBgCiAgICAgICAgCiAgICAgICAgSGlkZTogb25seSB1c2VmdWwgZm9yIHNwZWNpYWwgcGFy YW1ldGVycyAodGhvc2UgbWFya2VkIFxgPFM+JyBpbiB0aGUgdGFibGUgaW4KICAgICAgICA6 cmVmOmBQYXJhbWV0ZXJzIFNldCBieSB0aGUgU2hlbGxgKSwKICAgICAgICBhbmQgZm9yIGxv Y2FsIHBhcmFtZXRlcnMgd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGEgc3BlY2lhbCBwYXJhbWV0 ZXIsCiAgICAgICAgdGhvdWdoIGhhcm1sZXNzIGZvciBvdGhlcnMuICBBIHNwZWNpYWwgcGFy YW1ldGVyIHdpdGggdGhpcyBhdHRyaWJ1dGUgd2lsbAogICAgICAgIG5vdCByZXRhaW4gaXRz IHNwZWNpYWwgZWZmZWN0IHdoZW4gbWFkZSBsb2NhbC4gIFRodXMgYWZ0ZXIgYGB0eXBlc2V0 IC1oCiAgICAgICAgUEFUSGBgLCBhIGZ1bmN0aW9uIGNvbnRhaW5pbmdgYCB0eXBlc2V0IFBB VEhgYCB3aWxsIGNyZWF0ZSBhbiBvcmRpbmFyeQogICAgICAgIGxvY2FsIHBhcmFtZXRlciB3 aXRob3V0IHRoZSB1c3VhbCBiZWhhdmlvdXIgb2YgYGBQQVRIYGAuICBBbHRlcm5hdGl2ZWx5 LAogICAgICAgIHRoZSBsb2NhbCBwYXJhbWV0ZXIgbWF5IGl0c2VsZiBiZSBnaXZlbiB0aGlz IGF0dHJpYnV0ZTsgaGVuY2UgaW5zaWRlIGEKICAgICAgICBmdW5jdGlvbiBgYHR5cGVzZXQg LWggUEFUSGBgIGNyZWF0ZXMgYW4gb3JkaW5hcnkgbG9jYWwgcGFyYW1ldGVyIGFuZCB0aGUK ICAgICAgICBzcGVjaWFsIGBgUEFUSGBgIHBhcmFtZXRlciBpcyBub3QgYWx0ZXJlZCBpbiBh bnkgd2F5LiAgSXQgaXMgYWxzbyBwb3NzaWJsZQogICAgICAgIHRvIGNyZWF0ZSBhIGxvY2Fs IHBhcmFtZXRlciB1c2luZyBgYHR5cGVzZXQgK2hgYCA6dmFyOmBzcGVjaWFsYCwgd2hlcmUg dGhlCiAgICAgICAgbG9jYWwgY29weSBvZiA6dmFyOmBzcGVjaWFsYCB3aWxsIHJldGFpbiBp dHMgc3BlY2lhbCBwcm9wZXJ0aWVzIHJlZ2FyZGxlc3Mgb2YKICAgICAgICBoYXZpbmcgdGhl IGBgLWhgYCBhdHRyaWJ1dGUuICBHbG9iYWwgc3BlY2lhbCBwYXJhbWV0ZXJzIGxvYWRlZCBm cm9tIHNoZWxsCiAgICAgICAgbW9kdWxlcyAoZm9yIGV4YW1wbGUsIHRob3NlIGluIGBgenNo L21hcGZpbGVgYCBhbmQgYGB6c2gvcGFyYW1ldGVyYGApIGFyZQogICAgICAgIGF1dG9tYXRp Y2FsbHkgZ2l2ZW4gdGhlIGBgLWhgYCBhdHRyaWJ1dGUgdG8gYXZvaWQgbmFtZSBjbGFzaGVz LgogICAgICAgIAogICAgCiAgICBgYC1IYGAKICAgICAgICAKICAgICAgICBIaWRlIHZhbHVl OiBzcGVjaWZpZXMgdGhhdCBgYHR5cGVzZXRgYCB3aWxsIG5vdCBkaXNwbGF5IHRoZSB2YWx1 ZSBvZiB0aGUKICAgICAgICBwYXJhbWV0ZXIgd2hlbiBsaXN0aW5nIHBhcmFtZXRlcnM7IHRo ZSBkaXNwbGF5IGZvciBzdWNoIHBhcmFtZXRlcnMgaXMKICAgICAgICBhbHdheXMgYXMgaWYg dGhlIGBgK2BgIGZsYWcgd2VyZSBnaXZlbiwgYnV0IHVzZSBvZiB0aGUgcGFyYW1ldGVyIGlz CiAgICAgICAgaW4gb3RoZXIgcmVzcGVjdHMgbm9ybWFsLiAgVGhpcyBlZmZlY3QgZG9lcyBu b3QgYXBwbHkgd2hlbiB0aGUgcGFyYW1ldGVyIGlzCiAgICAgICAgc3BlY2lmaWVkIGJ5IG5h bWUgb3IgYnkgcGF0dGVybiB3aXRoIHRoZSBgYC1tYGAgb3B0aW9uLiAgVGhpcyBpcyBvbiBi eQogICAgICAgIGRlZmF1bHQgZm9yIHRoZSBwYXJhbWV0ZXJzIGluIHRoZSBgYHpzaC9wYXJh bWV0ZXJgYCBhbmQgYGB6c2gvbWFwZmlsZWBgCiAgICAgICAgbW9kdWxlcy4gIE5vdGUsIGhv d2V2ZXIsIHRoYXQgdW5saWtlIHRoZSBgYC1oYGAgZmxhZyB0aGlzIGlzIGFsc28gdXNlZnVs CiAgICAgICAgZm9yIG5vbi1zcGVjaWFsIHBhcmFtZXRlcnMuCiAgICAgICAgCiAgICAKICAg IGBgLWlgYCBbIDp2YXI6YG5gIF0KICAgICAgICAKICAgICAgICBVc2UgYW4gaW50ZXJuYWwg aW50ZWdlciByZXByZXNlbnRhdGlvbi4gIElmIDp2YXI6YG5gIGlzIG5vbnplcm8gaXQKICAg ICAgICBkZWZpbmVzIHRoZSBvdXRwdXQgYXJpdGhtZXRpYyBiYXNlLCBvdGhlcndpc2UgaXQg aXMgZGV0ZXJtaW5lZCBieSB0aGUKICAgICAgICBmaXJzdCBhc3NpZ25tZW50LiAgQmFzZXMg ZnJvbSAyIHRvIDM2IGluY2x1c2l2ZSBhcmUgYWxsb3dlZC4KICAgICAgICAKICAgIAogICAg YGAtRWBgIFsgOnZhcjpgbmAgXQogICAgICAgIAogICAgICAgIFVzZSBhbiBpbnRlcm5hbCBk b3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHJlcHJlc2VudGF0aW9uLiAgT24gb3V0 cHV0CiAgICAgICAgdGhlIHZhcmlhYmxlIHdpbGwgYmUgY29udmVydGVkIHRvIHNjaWVudGlm aWMgbm90YXRpb24uICBJZiA6dmFyOmBuYCBpcwogICAgICAgIG5vbnplcm8gaXQgZGVmaW5l cyB0aGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGZpZ3VyZXMgdG8gZGlzcGxheTsgdGhlCiAg ICAgICAgZGVmYXVsdCBpcyB0ZW4uCiAgICAgICAgCiAgICAKICAgIGBgLUZgYCBbIDp2YXI6 YG5gIF0KICAgICAgICAKICAgICAgICBVc2UgYW4gaW50ZXJuYWwgZG91YmxlLXByZWNpc2lv biBmbG9hdGluZyBwb2ludCByZXByZXNlbnRhdGlvbi4gIE9uIG91dHB1dAogICAgICAgIHRo ZSB2YXJpYWJsZSB3aWxsIGJlIGNvbnZlcnRlZCB0byBmaXhlZC1wb2ludCBkZWNpbWFsIG5v dGF0aW9uLiAgSWYgOnZhcjpgbmAKICAgICAgICBpcyBub256ZXJvIGl0IGRlZmluZXMgdGhl IG51bWJlciBvZiBkaWdpdHMgdG8gZGlzcGxheSBhZnRlciB0aGUgZGVjaW1hbAogICAgICAg IHBvaW50OyB0aGUgZGVmYXVsdCBpcyB0ZW4uCiAgICAgICAgCiAgICAKICAgIGBgLWxgYAog ICAgICAgIAogICAgICAgIENvbnZlcnQgdGhlIHJlc3VsdCB0byBsb3dlciBjYXNlIHdoZW5l dmVyIHRoZSBwYXJhbWV0ZXIgaXMgZXhwYW5kZWQuCiAgICAgICAgVGhlIHZhbHVlIGlzIDpl bXBoYXNpczpgbm90YCBjb252ZXJ0ZWQgd2hlbiBhc3NpZ25lZC4KICAgICAgICAKICAgIAog ICAgYGAtcmBgCiAgICAgICAgCiAgICAgICAgVGhlIGdpdmVuIDp2YXI6YG5hbWVgXHMgYXJl IG1hcmtlZCByZWFkb25seS4gIE5vdGUgdGhhdCBpZiA6dmFyOmBuYW1lYCBpcyBhCiAgICAg ICAgc3BlY2lhbCBwYXJhbWV0ZXIsIHRoZSByZWFkb25seSBhdHRyaWJ1dGUgY2FuIGJlIHR1 cm5lZCBvbiwgYnV0IGNhbm5vdCB0aGVuCiAgICAgICAgYmUgdHVybmVkIG9mZi4KICAgICAg ICAKICAgICAgICBJZiB0aGUgYGBQT1NJWF9CVUlMVElOU2BgIG9wdGlvbiBpcyBzZXQsIHRo ZSByZWFkb25seSBhdHRyaWJ1dGUgaXMKICAgICAgICBtb3JlIHJlc3RyaWN0aXZlOiB1bnNl dCB2YXJpYWJsZXMgY2FuIGJlIG1hcmtlZCByZWFkb25seSBhbmQgY2Fubm90IHRoZW4KICAg ICAgICBiZSBzZXQ7IGZ1cnRoZXJtb3JlLCB0aGUgcmVhZG9ubHkgYXR0cmlidXRlIGNhbm5v dCBiZSByZW1vdmVkIGZyb20gYW55CiAgICAgICAgdmFyaWFibGUuCiAgICAgICAgCiAgICAg ICAgSXQgaXMgc3RpbGwgcG9zc2libGUgdG8gY2hhbmdlIG90aGVyIGF0dHJpYnV0ZXMgb2Yg dGhlIHZhcmlhYmxlIHRob3VnaCwKICAgICAgICBzb21lIG9mIHdoaWNoIGxpa2UgYGAtVWBg IG9yIGBgLVpgYCB3b3VsZCBhZmZlY3QgdGhlIHZhbHVlLiBNb3JlIGdlbmVyYWxseSwKICAg ICAgICB0aGUgcmVhZG9ubHkgYXR0cmlidXRlIHNob3VsZCBub3QgYmUgcmVsaWVkIG9uIGFz IGEgc2VjdXJpdHkgbWVjaGFuaXNtLgogICAgICAgIAogICAgICAgIE5vdGUgdGhhdCBpbiB6 c2ggKGxpa2UgaW4gcGRrc2ggYnV0IHVubGlrZSBtb3N0IG90aGVyIHNoZWxscykgaXQgaXMK ICAgICAgICBzdGlsbCBwb3NzaWJsZSB0byBjcmVhdGUgYSBsb2NhbCB2YXJpYWJsZSBvZiB0 aGUgc2FtZSBuYW1lIGFzIHRoaXMgaXMKICAgICAgICBjb25zaWRlcmVkIGEgZGlmZmVyZW50 IHZhcmlhYmxlICh0aG91Z2ggdGhpcyB2YXJpYWJsZSwgdG9vLCBjYW4gYmUgbWFya2VkCiAg ICAgICAgcmVhZG9ubHkpLiBTcGVjaWFsIHZhcmlhYmxlcyB0aGF0IGhhdmUgYmVlbiBtYWRl IHJlYWRvbmx5IHJldGFpbiB0aGVpciB2YWx1ZQogICAgICAgIGFuZCByZWFkb25seSBhdHRy aWJ1dGUgd2hlbiBtYWRlIGxvY2FsLgogICAgICAgIAogICAgCiAgICBgYC10YGAKICAgICAg ICAKICAgICAgICBUYWdzIHRoZSBuYW1lZCBwYXJhbWV0ZXJzLiAgVGFncyBvbmx5IGV4aXN0 IHRvIGZsYWcgdGhlIHBhcmFtZXRlciBmb3IKICAgICAgICB0aGUgdXNlcidzIG93biBwdXJw b3NlcyAtLS0gdGhlIGxpc3Qgb2YgdGFnZ2VkIHBhcmFtZXRlcnMgY2FuIGJlIHF1ZXJpZWQK ICAgICAgICB1c2luZyBgYHR5cGVzZXQgLXRgYC4gIFRhZ3MgaGF2ZSBubyBvdGhlciB1c2Uu ICBOb3RlIHRoYXQgdGhlIGBgLXRgYAogICAgICAgIGZsYWcgaGFzIGEgZGlmZmVyZW50IG1l YW5pbmcgd2hlbiB1c2VkIHdpdGggYGAtZmBgOyBzZWUgYWJvdmUuCiAgICAgICAgCiAgICAK ICAgIGBgLXVgYAogICAgICAgIAogICAgICAgIENvbnZlcnQgdGhlIHJlc3VsdCB0byB1cHBl ciBjYXNlIHdoZW5ldmVyIHRoZSBwYXJhbWV0ZXIgaXMgZXhwYW5kZWQuCiAgICAgICAgVGhl IHZhbHVlIGlzIDplbXBoYXNpczpgbm90YCBjb252ZXJ0ZWQgd2hlbiBhc3NpZ25lZC4KICAg ICAgICBUaGlzIGZsYWcgaGFzIGRpZmZlcmVudCBtZWFuaW5ncyB3aGVuIHVzZWQgd2l0aCBg YC1mYGAgb3IgYGAtbmBgOyBzZWUgYWJvdmUuCiAgICAgICAgCiAgICAKICAgIGBgLXhgYAog ICAgICAgIAogICAgICAgIE1hcmsgZm9yIGF1dG9tYXRpYyBleHBvcnQgdG8gdGhlIGVudmly b25tZW50IG9mIHN1YnNlcXVlbnRseQogICAgICAgIGV4ZWN1dGVkIGNvbW1hbmRzLiAgSWYg dGhlIG9wdGlvbiBgYEdMT0JBTF9FWFBPUlRgYCBpcyBzZXQsIHRoaXMgaW1wbGllcwogICAg ICAgIHRoZSBvcHRpb24gYGAtZ2BgLCB1bmxlc3MgYGArZ2BgIGlzIGFsc28gZXhwbGljaXRs eSBnaXZlbjsgaW4gb3RoZXIgd29yZHMKICAgICAgICB0aGUgcGFyYW1ldGVyIGlzIG5vdCBt YWRlIGxvY2FsIHRvIHRoZSBlbmNsb3NpbmcgZnVuY3Rpb24uICBUaGlzIGlzIGZvcgogICAg ICAgIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyB2ZXJzaW9ucyBvZiB6c2guCiAgICAg ICAgCiAgICAKICAgIAogICAgCgouLiBpbmRleDo6IHNpbmdsZTogdWxpbWl0OyBGdW5jdGlv bgoKLi4gaW5kZXg6OiBzaW5nbGU6IHJlc291cmNlIGxpbWl0czsgQ29tbWFuZAoKLi4gaW5k ZXg6OiBzaW5nbGU6IGxpbWl0cywgcmVzb3VyY2U7IENvbW1hbmQKCmBgdWxpbWl0YGAgWyBg YC1IU2FgYCBdIFsgeyBgYC1iY2RmaWtsbW5wcXJzVHR2d3hgYCB8IGBgLU5gYCA6dmFyOmBy ZXNvdXJjZWAgfSBbIDp2YXI6YGxpbWl0YCBdIC4uLiBdCiAgICAKICAgIFNldCBvciBkaXNw bGF5IHJlc291cmNlIGxpbWl0cyBvZiB0aGUgc2hlbGwgYW5kIHRoZSBwcm9jZXNzZXMgc3Rh cnRlZCBieQogICAgdGhlIHNoZWxsLiAgVGhlIHZhbHVlIG9mIDp2YXI6YGxpbWl0YCBjYW4g YmUgYSBudW1iZXIgaW4gdGhlIHVuaXQgc3BlY2lmaWVkCiAgICBiZWxvdyBvciBvbmUgb2Yg dGhlIHZhbHVlcyBgYHVubGltaXRlZGBgLCB3aGljaCByZW1vdmVzIHRoZSBsaW1pdCBvbiB0 aGUKICAgIHJlc291cmNlLCBvciBgYGhhcmRgYCwgd2hpY2ggdXNlcyB0aGUgY3VycmVudCB2 YWx1ZSBvZiB0aGUgaGFyZCBsaW1pdCBvbgogICAgdGhlIHJlc291cmNlLgogICAgCiAgICBC eSBkZWZhdWx0LCBvbmx5IHNvZnQgbGltaXRzIGFyZSBtYW5pcHVsYXRlZC4gSWYgdGhlIGBg LUhgYCBmbGFnCiAgICBpcyBnaXZlbiB1c2UgaGFyZCBsaW1pdHMgaW5zdGVhZCBvZiBzb2Z0 IGxpbWl0cy4gIElmIHRoZSBgYC1TYGAgZmxhZyBpcyBnaXZlbgogICAgdG9nZXRoZXIgd2l0 aCB0aGUgYGAtSGBgIGZsYWcgc2V0IGJvdGggaGFyZCBhbmQgc29mdCBsaW1pdHMuCiAgICAK ICAgIElmIG5vIG9wdGlvbnMgYXJlIHVzZWQsIHRoZSBmaWxlIHNpemUgbGltaXQgKGBgLWZg YCkgaXMgYXNzdW1lZC4KICAgIAogICAgSWYgOnZhcjpgbGltaXRgIGlzIG9taXR0ZWQgdGhl IGN1cnJlbnQgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCByZXNvdXJjZXMgYXJlCiAgICBwcmlu dGVkLiAgV2hlbiBtb3JlIHRoYW4gb25lIHJlc291cmNlIHZhbHVlIGlzIHByaW50ZWQsIHRo ZSBsaW1pdCBuYW1lIGFuZAogICAgdW5pdCBpcyBwcmludGVkIGJlZm9yZSBlYWNoIHZhbHVl LgogICAgCiAgICBXaGVuIGxvb3Bpbmcgb3ZlciBtdWx0aXBsZSByZXNvdXJjZXMsIHRoZSBz aGVsbCB3aWxsIGFib3J0IGltbWVkaWF0ZWx5IGlmCiAgICBpdCBkZXRlY3RzIGEgYmFkbHkg Zm9ybWVkIGFyZ3VtZW50LiAgSG93ZXZlciwgaWYgaXQgZmFpbHMgdG8gc2V0IGEgbGltaXQK ICAgIGZvciBzb21lIG90aGVyIHJlYXNvbiBpdCB3aWxsIGNvbnRpbnVlIHRyeWluZyB0byBz ZXQgdGhlIHJlbWFpbmluZyBsaW1pdHMuCiAgICAKICAgIE5vdCBhbGwgdGhlIGZvbGxvd2lu ZyByZXNvdXJjZXMgYXJlIHN1cHBvcnRlZCBvbiBhbGwgc3lzdGVtcy4gIFJ1bm5pbmcKICAg IGBgdWxpbWl0IC1hYGAgd2lsbCBzaG93IHdoaWNoIGFyZSBzdXBwb3J0ZWQuCiAgICAKICAg IAogICAgYGAtYWBgCiAgICAgICAgTGlzdCBhbGwgb2YgdGhlIGN1cnJlbnQgcmVzb3VyY2Ug bGltaXRzLgogICAgCiAgICBgYC1iYGAKICAgICAgICBTb2NrZXQgYnVmZmVyIHNpemUgaW4g Ynl0ZXMgKE4uQi4gbm90IGtpbG9ieXRlcykKICAgIAogICAgYGAtY2BgCiAgICAgICAgNTEy LWJ5dGUgYmxvY2tzIG9uIHRoZSBzaXplIG9mIGNvcmUgZHVtcHMuCiAgICAKICAgIGBgLWRg YAogICAgICAgIEtpbG9ieXRlcyBvbiB0aGUgc2l6ZSBvZiB0aGUgZGF0YSBzZWdtZW50Lgog ICAgCiAgICBgYC1lYGAKICAgICAgICBNYXhpbXVtIG5pY2UgdmFsdWUuCiAgICAKICAgIGBg LWZgYAogICAgICAgIDUxMi1ieXRlIGJsb2NrcyBvbiB0aGUgc2l6ZSBvZiBmaWxlcyB3cml0 dGVuLgogICAgCiAgICBgYC1pYGAKICAgICAgICBUaGUgbnVtYmVyIG9mIHBlbmRpbmcgc2ln bmFscy4KICAgIAogICAgYGAta2BgCiAgICAgICAgVGhlIG51bWJlciBvZiBrcXVldWVzIGFs bG9jYXRlZC4KICAgIAogICAgYGAtbGBgCiAgICAgICAgS2lsb2J5dGVzIG9uIHRoZSBzaXpl IG9mIGxvY2tlZC1pbiBtZW1vcnkuCiAgICAKICAgIGBgLW1gYAogICAgICAgIEtpbG9ieXRl cyBvbiB0aGUgc2l6ZSBvZiBwaHlzaWNhbCBtZW1vcnkuCiAgICAKICAgIGBgLW5gYAogICAg ICAgIE9wZW4gZmlsZSBkZXNjcmlwdG9ycy4KICAgIAogICAgYGAtb2BgCiAgICAgICAgTWF4 aW11bSBudW1iZXIgb2YgUE9TSVggdGhyZWFkIGxpYnJhcnkgb2JqZWN0cy4KICAgIAogICAg YGAtcGBgCiAgICAgICAgVGhlIG51bWJlciBvZiBwc2V1ZG8tdGVybWluYWxzLgogICAgCiAg ICBgYC1xYGAKICAgICAgICBCeXRlcyBpbiBQT1NJWCBtZXNzYWdlIHF1ZXVlcy4KICAgIAog ICAgYGAtcmBgCiAgICAgICAgTWF4aW11bSByZWFsIHRpbWUgcHJpb3JpdHkuICBPbiBzb21l IHN5c3RlbXMgd2hlcmUgdGhpcwogICAgICAgIGlzIG5vdCBhdmFpbGFibGUsIHN1Y2ggYXMg TmV0QlNELCB0aGlzIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgYGAtVGBgCiAgICAgICAgZm9y IGNvbXBhdGliaWxpdHkgd2l0aCBgYHNoYGAuCiAgICAKICAgIGBgLXNgYAogICAgICAgIEtp bG9ieXRlcyBvbiB0aGUgc2l6ZSBvZiB0aGUgc3RhY2suCiAgICAKICAgIGBgLVRgYAogICAg ICAgIFRoZSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIHRocmVhZHMgYXZhaWxhYmxlIHRvIHRo ZSB1c2VyLgogICAgCiAgICBgYC10YGAKICAgICAgICBDUFUgc2Vjb25kcyB0byBiZSB1c2Vk LgogICAgCiAgICBgYC11YGAKICAgICAgICBUaGUgbnVtYmVyIG9mIHByb2Nlc3NlcyBhdmFp bGFibGUgdG8gdGhlIHVzZXIuCiAgICAKICAgIGBgLXZgYAogICAgICAgIEtpbG9ieXRlcyBv biB0aGUgc2l6ZSBvZiB2aXJ0dWFsIG1lbW9yeS4gIE9uIHNvbWUgc3lzdGVtcyB0aGlzCiAg ICAgICAgcmVmZXJzIHRvIHRoZSBsaW1pdCBjYWxsZWQgXGBhZGRyZXNzIHNwYWNlJy4KICAg IAogICAgYGAtd2BgCiAgICAgICAgS2lsb2J5dGVzIG9uIHRoZSBzaXplIG9mIHN3YXBwZWQg b3V0IG1lbW9yeS4KICAgIAogICAgYGAteGBgCiAgICAgICAgVGhlIG51bWJlciBvZiBsb2Nr cyBvbiBmaWxlcy4KICAgIAogICAgYGAteWBgCiAgICAgICAgTWF4aW11bSBzaXplIG9mIGJ1 ZmZlcnMgZm9yIHBpcGVzL2ZpZm9zLgogICAgCiAgICAKICAgIAogICAgQSByZXNvdXJjZSBt YXkgYWxzbyBiZSBzcGVjaWZpZWQgYnkgaW50ZWdlciBpbiB0aGUgZm9ybSBgYC1OYGAKICAg IDp2YXI6YHJlc291cmNlYCwgd2hlcmUgOnZhcjpgcmVzb3VyY2VgIGNvcnJlc3BvbmRzIHRv IHRoZSBpbnRlZ2VyIGRlZmluZWQgZm9yCiAgICB0aGUgcmVzb3VyY2UgYnkgdGhlIG9wZXJh dGluZyBzeXN0ZW0uICBUaGlzIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgbGltaXRzCiAgICBm b3IgcmVzb3VyY2VzIGtub3duIHRvIHRoZSBzaGVsbCB3aGljaCBkbyBub3QgY29ycmVzcG9u ZCB0byBvcHRpb24gbGV0dGVycy4KICAgIFN1Y2ggbGltaXRzIHdpbGwgYmUgc2hvd24gYnkg bnVtYmVyIGluIHRoZSBvdXRwdXQgb2YgYGB1bGltaXQgLWFgYC4KICAgIAogICAgVGhlIG51 bWJlciBtYXkgYWx0ZXJuYXRpdmVseSBiZSBvdXQgb2YgdGhlIHJhbmdlIG9mIGxpbWl0cyBj b21waWxlZCBpbnRvCiAgICB0aGUgc2hlbGwuICBUaGUgc2hlbGwgd2lsbCB0cnkgdG8gcmVh ZCBvciB3cml0ZSB0aGUgbGltaXQgYW55d2F5LCBhbmQKICAgIHdpbGwgcmVwb3J0IGFuIGVy cm9yIGlmIHRoaXMgZmFpbHMuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiB1bWFzazsgRnVu Y3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiB1bWFzazsgQ29tbWFuZAoKYGB1bWFza2BgIFsg YGAtU2BgIF0gWyA6dmFyOmBtYXNrYCBdCiAgICAKICAgIFRoZSB1bWFzayBpcyBzZXQgdG8g OnZhcjpgbWFza2AuICA6dmFyOmBtYXNrYCBjYW4gYmUgZWl0aGVyCiAgICBhbiBvY3RhbCBu dW1iZXIgb3IgYSBzeW1ib2xpYyB2YWx1ZSBhcyBkZXNjcmliZWQgaW4gdGhlIDptYW5wYWdl OmBjaG1vZCgxKWAgbWFuIHBhZ2UuCiAgICBJZiA6dmFyOmBtYXNrYCBpcyBvbWl0dGVkLCB0 aGUgY3VycmVudCB2YWx1ZSBpcyBwcmludGVkLiAgVGhlIGBgLVNgYAogICAgb3B0aW9uIGNh dXNlcyB0aGUgbWFzayB0byBiZSBwcmludGVkIGFzIGEgc3ltYm9saWMgdmFsdWUuICBPdGhl cndpc2UsCiAgICB0aGUgbWFzayBpcyBwcmludGVkIGFzIGFuIG9jdGFsIG51bWJlci4gIE5v dGUgdGhhdCBpbgogICAgdGhlIHN5bWJvbGljIGZvcm0gdGhlIHBlcm1pc3Npb25zIHlvdSBz cGVjaWZ5IGFyZSB0aG9zZSB3aGljaCBhcmUgdG8gYmUKICAgIGFsbG93ZWQgKG5vdCBkZW5p ZWQpIHRvIHRoZSB1c2VycyBzcGVjaWZpZWQuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiB1 bmFsaWFzOyBGdW5jdGlvbgoKLi4gaW5kZXg6OiBzaW5nbGU6IGFsaWFzZXMsIHJlbW92aW5n OyBDb21tYW5kCgpgYHVuYWxpYXNgYCBbIGBgLWFtc2BgIF0gOnZhcjpgbmFtZWAgLi4uCiAg ICAKICAgIFJlbW92ZXMgYWxpYXNlcy4gIFRoaXMgY29tbWFuZCB3b3JrcyB0aGUgc2FtZSBh cyBgYHVuaGFzaCAtYWBgLCBleGNlcHQgdGhhdAogICAgdGhlIGBgLWFgYCBvcHRpb24gcmVt b3ZlcyBhbGwgcmVndWxhciBvciBnbG9iYWwgYWxpYXNlcywgb3Igd2l0aCBgYC1zYGAKICAg IGFsbCBzdWZmaXggYWxpYXNlczogaW4gdGhpcyBjYXNlIG5vIDp2YXI6YG5hbWVgIGFyZ3Vt ZW50cyBtYXkgYXBwZWFyLiAgVGhlCiAgICBvcHRpb25zIGBgLW1gYCAocmVtb3ZlIGJ5IHBh dHRlcm4pIGFuZCBgYC1zYGAgd2l0aG91dCBgYC1hYGAgKHJlbW92ZQogICAgbGlzdGVkIHN1 ZmZpeCBhbGlhc2VzKSBiZWhhdmUgYXMgZm9yIGBgdW5oYXNoIC1hYGAuICBOb3RlIHRoYXQK ICAgIHRoZSBtZWFuaW5nIG9mIGBgLWFgYCBpcyBkaWZmZXJlbnQgYmV0d2VlbiBgYHVuYWxp YXNgYCBhbmQgYGB1bmhhc2hgYC4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6IGZ1bmN0aW9u cywgcmVtb3Zpbmc7IENvbW1hbmQKCi4uIGluZGV4Ojogc2luZ2xlOiB1bmZ1bmN0aW9uOyBG dW5jdGlvbgoKYGB1bmZ1bmN0aW9uYGAKICAgIAogICAgU2FtZSBhcyBgYHVuaGFzaCAtZmBg LgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogdW5oYXNoOyBGdW5jdGlvbgoKYGB1bmhhc2hg YCBbIGBgLWFkZm1zYGAgXSA6dmFyOmBuYW1lYCAuLi4KICAgIAogICAgUmVtb3ZlIHRoZSBl bGVtZW50IG5hbWVkIDp2YXI6YG5hbWVgIGZyb20gYW4gaW50ZXJuYWwgaGFzaCB0YWJsZS4g IFRoZQogICAgZGVmYXVsdCBpcyByZW1vdmUgZWxlbWVudHMgZnJvbSB0aGUgY29tbWFuZCBo YXNoIHRhYmxlLiAgVGhlIGBgLWFgYAogICAgb3B0aW9uIGNhdXNlcyBgYHVuaGFzaGBgIHRv IHJlbW92ZSByZWd1bGFyIG9yIGdsb2JhbCBhbGlhc2VzOyBub3RlCiAgICB3aGVuIHJlbW92 aW5nIGEgZ2xvYmFsIGFsaWFzZXMgdGhhdCB0aGUgYXJndW1lbnQgbXVzdCBiZSBxdW90ZWQg dG8gcHJldmVudAogICAgaXQgZnJvbSBiZWluZyBleHBhbmRlZCBiZWZvcmUgYmVpbmcgcGFz c2VkIHRvIHRoZSBjb21tYW5kLgogICAgVGhlIGBgLXNgYCBvcHRpb24gY2F1c2VzIGBgdW5o YXNoYGAgdG8gcmVtb3ZlIHN1ZmZpeCBhbGlhc2VzLgogICAgVGhlIGBgLWZgYCBvcHRpb24g Y2F1c2VzCiAgICBgYHVuaGFzaGBgIHRvIHJlbW92ZSBzaGVsbCBmdW5jdGlvbnMuICBUaGUg YGAtZGBgIG9wdGlvbnMgY2F1c2VzCiAgICBgYHVuaGFzaGBgIHRvIHJlbW92ZSBuYW1lZCBk aXJlY3Rvcmllcy4gIElmIHRoZSBgYC1tYGAgZmxhZyBpcyBnaXZlbgogICAgdGhlIGFyZ3Vt ZW50cyBhcmUgdGFrZW4gYXMgcGF0dGVybnMgKHNob3VsZCBiZSBxdW90ZWQpIGFuZCBhbGwg ZWxlbWVudHMKICAgIG9mIHRoZSBjb3JyZXNwb25kaW5nIGhhc2ggdGFibGUgd2l0aCBtYXRj aGluZyBuYW1lcyB3aWxsIGJlIHJlbW92ZWQuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiB1 bmxpbWl0OyBGdW5jdGlvbgoKLi4gaW5kZXg6OiBzaW5nbGU6IHJlc291cmNlIGxpbWl0czsg Q29tbWFuZAoKLi4gaW5kZXg6OiBzaW5nbGU6IGxpbWl0cywgcmVzb3VyY2U7IENvbW1hbmQK CmBgdW5saW1pdGBgIFsgYGAtaHNgYCBdIDp2YXI6YHJlc291cmNlYCAuLi4KICAgIAogICAg VGhlIHJlc291cmNlIGxpbWl0IGZvciBlYWNoIDp2YXI6YHJlc291cmNlYCBpcyBzZXQgdG8g dGhlIGhhcmQgbGltaXQuCiAgICBJZiB0aGUgYGAtaGBgIGZsYWcgaXMgZ2l2ZW4gYW5kIHRo ZSBzaGVsbCBoYXMgYXBwcm9wcmlhdGUgcHJpdmlsZWdlcywKICAgIHRoZSBoYXJkIHJlc291 cmNlIGxpbWl0IGZvciBlYWNoIDp2YXI6YHJlc291cmNlYCBpcyByZW1vdmVkLgogICAgVGhl IHJlc291cmNlcyBvZiB0aGUgc2hlbGwgcHJvY2VzcyBhcmUgb25seSBjaGFuZ2VkIGlmIHRo ZSBgYC1zYGAKICAgIGZsYWcgaXMgZ2l2ZW4uCiAgICAKICAgIFRoZSBgYHVubGltaXRgYCBj b21tYW5kIGlzIG5vdCBtYWRlIGF2YWlsYWJsZSBieSBkZWZhdWx0IHdoZW4gdGhlCiAgICBz aGVsbCBzdGFydHMgaW4gYSBtb2RlIGVtdWxhdGluZyBhbm90aGVyIHNoZWxsLiAgSXQgY2Fu IGJlIG1hZGUgYXZhaWxhYmxlCiAgICB3aXRoIHRoZSBjb21tYW5kIGBgem1vZGxvYWQgLUYg enNoL3JsaW1pdHMgYjp1bmxpbWl0YGAuCiAgICAKCi4uIGluZGV4Ojogc2luZ2xlOiB1bnNl dDsgRnVuY3Rpb24KCi4uIGluZGV4Ojogc2luZ2xlOiBwYXJhbWV0ZXJzLCB1bnNldHRpbmc7 IENvbW1hbmQKCmBgdW5zZXRgYCBbIGBgLWZtdmBgIF0gWyBgYC1uYGAgXSA6dmFyOmBuYW1l YCAuLi4KICAgIAogICAgRWFjaCBuYW1lZCBwYXJhbWV0ZXIgaXMgdW5zZXQuCiAgICBMb2Nh bCBwYXJhbWV0ZXJzIHJlbWFpbiBsb2NhbCBldmVuIGlmIHVuc2V0OyB0aGV5IGFwcGVhciB1 bnNldCB3aXRoaW4gc2NvcGUsCiAgICBidXQgdGhlIHByZXZpb3VzIHZhbHVlIHdpbGwgc3Rp bGwgcmVhcHBlYXIgd2hlbiB0aGUgc2NvcGUgZW5kcy4KICAgIAogICAgSW5kaXZpZHVhbCBl bGVtZW50cyBvZiBhc3NvY2lhdGl2ZSBhcnJheSBwYXJhbWV0ZXJzIG1heSBiZSB1bnNldCBi eSB1c2luZwogICAgc3Vic2NyaXB0IHN5bnRheCBvbiA6dmFyOmBuYW1lYCwgd2hpY2ggc2hv dWxkIGJlIHF1b3RlZCAob3IgdGhlIGVudGlyZSBjb21tYW5kCiAgICBwcmVmaXhlZCB3aXRo IGBgbm9nbG9iYGApIHRvIHByb3RlY3QgdGhlIHN1YnNjcmlwdCBmcm9tIGZpbGVuYW1lIGdl bmVyYXRpb24uCiAgICAKICAgIElmIHRoZSBgYC1tYGAgZmxhZyBpcyBzcGVjaWZpZWQgdGhl IGFyZ3VtZW50cyBhcmUgdGFrZW4gYXMgcGF0dGVybnMgKHNob3VsZAogICAgYmUgcXVvdGVk KSBhbmQgYWxsIHBhcmFtZXRlcnMgd2l0aCBtYXRjaGluZyBuYW1lcyBhcmUgdW5zZXQuICBO b3RlIHRoYXQgdGhpcwogICAgY2Fubm90IGJlIHVzZWQgd2hlbiB1bnNldHRpbmcgYXNzb2Np YXRpdmUgYXJyYXkgZWxlbWVudHMsIGFzIHRoZSBzdWJzY3JpcHQKICAgIHdpbGwgYmUgdHJl YXRlZCBhcyBwYXJ0IG9mIHRoZSBwYXR0ZXJuLgogICAgCiAgICBUaGUgYGAtdmBgIGZsYWcg c3BlY2lmaWVzIHRoYXQgOnZhcjpgbmFtZWAgcmVmZXJzIHRvIHBhcmFtZXRlcnMuIFRoaXMg aXMKICAgIHRoZSBkZWZhdWx0IGJlaGF2aW91ci4gIElmIHRoZSBgYC1uYGAgb3B0aW9uIGlz IHN1cHBsaWVkLCBhbmQKICAgIDp2YXI6YG5hbWVgIGlzIGEgYSBuYW1lZCByZWZlcmVuY2Us IDp2YXI6YG5hbWVgIHdpbGwgYmUgdW5zZXQgcmF0aGVyIHRoYW4KICAgIHRoZSB2YXJpYWJs ZSBpdCByZWZlcmVuY2VzLgogICAgCiAgICBgYHVuc2V0IC1mYGAgaXMgZXF1aXZhbGVudCB0 byBgYHVuZnVuY3Rpb25gYC4gIFRoZSBgYC1uYGAgb3B0aW9uIGhhcwogICAgbm8gZWZmZWN0 IHdpdGggYGAtZmBgLgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogdW5zZXRvcHQ7IEZ1bmN0 aW9uCgouLiBpbmRleDo6IHNpbmdsZTogb3B0aW9ucywgdW5zZXR0aW5nOyBDb21tYW5kCgpg YHVuc2V0b3B0YGAgWyB7YGArfC1gYH06dmFyOmBvcHRpb25zYCB8IHtgYCt8LX1vYGAgOnZh cjpgb3B0aW9uX25hbWVgIF0gWyA6dmFyOmBuYW1lYCAuLi4gXQogICAgCiAgICBVbnNldCB0 aGUgb3B0aW9ucyBmb3IgdGhlIHNoZWxsLiAgQWxsIG9wdGlvbnMgc3BlY2lmaWVkIGVpdGhl cgogICAgd2l0aCBmbGFncyBvciBieSBuYW1lIGFyZSB1bnNldC4gIElmIG5vIGFyZ3VtZW50 cyBhcmUgc3VwcGxpZWQsCiAgICB0aGUgbmFtZXMgb2YgYWxsIG9wdGlvbnMgY3VycmVudGx5 IHVuc2V0IGFyZSBwcmludGVkLgogICAgSWYgdGhlIGBgLW1gYCBmbGFnIGlzIGdpdmVuIHRo ZSBhcmd1bWVudHMgYXJlIHRha2VuIGFzIHBhdHRlcm5zCiAgICAod2hpY2ggc2hvdWxkIGJl IHF1b3RlZCB0byBwcmVzZXJ2ZSB0aGVtIGZyb20gYmVpbmcgaW50ZXJwcmV0ZWQgYXMgZ2xv YgogICAgcGF0dGVybnMpLCBhbmQgYWxsIG9wdGlvbnMgd2l0aCBuYW1lcyBtYXRjaGluZyB0 aGVzZSBwYXR0ZXJucyBhcmUgdW5zZXQuCiAgICAKCmBgdmFyZWRgYAogICAgCiAgICBTZWUg OnJlZjpgWmxlIEJ1aWx0aW5zYC4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6IHdhaXQ7IEZ1 bmN0aW9uCgouLiBpbmRleDo6IHNpbmdsZTogd2FpdGluZyBmb3Igam9iczsgQ29tbWFuZAoK Li4gaW5kZXg6OiBzaW5nbGU6IGpvYnMsIHdhaXRpbmcgZm9yOyBDb21tYW5kCgpgYHdhaXRg YCBbIDp2YXI6YGpvYmAgLi4uIF0KICAgIAogICAgV2FpdCBmb3IgdGhlIHNwZWNpZmllZCBq b2JzIG9yIHByb2Nlc3Nlcy4gIElmIDp2YXI6YGpvYmAgaXMgbm90IGdpdmVuCiAgICB0aGVu IGFsbCBjdXJyZW50bHkgYWN0aXZlIGNoaWxkIHByb2Nlc3NlcyBhcmUgd2FpdGVkIGZvci4K ICAgIEVhY2ggOnZhcjpgam9iYCBjYW4gYmUgZWl0aGVyIGEgam9iIHNwZWNpZmljYXRpb24g b3IgdGhlIHByb2Nlc3MgSUQKICAgIG9mIGEgam9iIGluIHRoZSBqb2IgdGFibGUuCiAgICBU aGUgZXhpdCBzdGF0dXMgZnJvbSB0aGlzIGNvbW1hbmQgaXMgdGhhdCBvZiB0aGUgam9iIHdh aXRlZCBmb3IuCiAgICBJZiA6dmFyOmBqb2JgIHJlcHJlc2VudHMgYW4gdW5rbm93biBqb2Ig b3IgcHJvY2VzcyBJRCwgYSB3YXJuaW5nIGlzIHByaW50ZWQKICAgICh1bmxlc3MgdGhlIGBg UE9TSVhfQlVJTFRJTlNgYCBvcHRpb24gaXMgc2V0KSBhbmQgdGhlIGV4aXQgc3RhdHVzIGlz IDEyNy4KICAgIAogICAgSXQgaXMgcG9zc2libGUgdG8gd2FpdCBmb3IgcmVjZW50IHByb2Nl c3NlcyAoc3BlY2lmaWVkIGJ5IHByb2Nlc3MgSUQsCiAgICBub3QgYnkgam9iKSB0aGF0IHdl cmUgcnVubmluZyBpbiB0aGUgYmFja2dyb3VuZCBldmVuIGlmIHRoZSBwcm9jZXNzIGhhcwog ICAgZXhpdGVkLiAgVHlwaWNhbGx5IHRoZSBwcm9jZXNzIElEIHdpbGwgYmUgcmVjb3JkZWQg YnkgY2FwdHVyaW5nIHRoZQogICAgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIGBgJCFgYCBpbW1l ZGlhdGVseSBhZnRlciB0aGUgcHJvY2VzcyBoYXMgYmVlbgogICAgc3RhcnRlZC4gIFRoZXJl IGlzIGEgbGltaXQgb24gdGhlIG51bWJlciBvZiBwcm9jZXNzIElEcyByZW1lbWJlcmVkIGJ5 CiAgICB0aGUgc2hlbGw7IHRoaXMgaXMgZ2l2ZW4gYnkgdGhlIHZhbHVlIG9mIHRoZSBzeXN0 ZW0gY29uZmlndXJhdGlvbgogICAgcGFyYW1ldGVyIGBgQ0hJTERfTUFYYGAuICBXaGVuIHRo aXMgbGltaXQgaXMgcmVhY2hlZCwgb2xkZXIgcHJvY2VzcyBJRHMKICAgIGFyZSBkaXNjYXJk ZWQsIGxlYXN0IHJlY2VudGx5IHN0YXJ0ZWQgcHJvY2Vzc2VzIGZpcnN0LgogICAgCiAgICBO b3RlIHRoZXJlIGlzIG5vIHByb3RlY3Rpb24gYWdhaW5zdCB0aGUgcHJvY2VzcyBJRCB3cmFw cGluZywgaS5lLiBpZiB0aGUKICAgIHdhaXQgaXMgbm90IGV4ZWN1dGVkIHNvb24gZW5vdWdo IHRoZXJlIGlzIGEgY2hhbmNlIHRoZSBwcm9jZXNzIHdhaXRlZAogICAgZm9yIGlzIHRoZSB3 cm9uZyBvbmUuICBBIGNvbmZsaWN0IGltcGxpZXMgYm90aCBwcm9jZXNzIElEcyBoYXZlIGJl ZW4KICAgIGdlbmVyYXRlZCBieSB0aGUgc2hlbGwsIGFzIG90aGVyIHByb2Nlc3NlcyBhcmUg bm90IHJlY29yZGVkLCBhbmQgdGhhdAogICAgdGhlIHVzZXIgaXMgcG90ZW50aWFsbHkgaW50 ZXJlc3RlZCBpbiBib3RoLCBzbyB0aGlzIHByb2JsZW0gaXMgaW50cmluc2ljCiAgICB0byBw cm9jZXNzIElEcy4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6IHdoZW5jZTsgRnVuY3Rpb24K CmBgd2hlbmNlYGAgWyBgYC12Y3dmcGFtc1NgYCBdIFsgYGAteGBgIDp2YXI6YG51bWAgXSA6 dmFyOmBuYW1lYCAuLi4KICAgIAogICAgRm9yIGVhY2ggOnZhcjpgbmFtZWAsIGluZGljYXRl IGhvdyBpdCB3b3VsZCBiZSBpbnRlcnByZXRlZCBpZiB1c2VkIGFzIGEKICAgIGNvbW1hbmQg bmFtZS4KICAgIAogICAgSWYgOnZhcjpgbmFtZWAgaXMgbm90IGFuIGFsaWFzLCBidWlsdC1p biBjb21tYW5kLCBleHRlcm5hbCBjb21tYW5kLCBzaGVsbAogICAgZnVuY3Rpb24sIGhhc2hl ZCBjb21tYW5kLCBvciBhIHJlc2VydmVkIHdvcmQsIHRoZSBleGl0IHN0YXR1cyBzaGFsbCBi ZQogICAgbm9uLXplcm8sIGFuZCAtLSBpZiBgYC12YGAsIGBgLWNgYCwgb3IgYGAtd2BgIHdh cyBwYXNzZWQgLS0gYSBtZXNzYWdlCiAgICB3aWxsIGJlIHdyaXR0ZW4gdG8gc3RhbmRhcmQg b3V0cHV0LiAgKFRoaXMgaXMgZGlmZmVyZW50IGZyb20gb3RoZXIgc2hlbGxzIHRoYXQKICAg IHdyaXRlIHRoYXQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvci4pCiAgICAKICAgIGBgd2hl bmNlYGAgaXMgbW9zdCB1c2VmdWwgd2hlbiA6dmFyOmBuYW1lYCBpcyBvbmx5IHRoZSBsYXN0 IHBhdGggY29tcG9uZW50CiAgICBvZiBhIGNvbW1hbmQsIGkuZS4gZG9lcyBub3QgaW5jbHVk ZSBhIGBgL2BgOyBpbiBwYXJ0aWN1bGFyLCBwYXR0ZXJuCiAgICBtYXRjaGluZyBvbmx5IHN1 Y2NlZWRzIGlmIGp1c3QgdGhlIG5vbi1kaXJlY3RvcnkgY29tcG9uZW50IG9mIHRoZSBjb21t YW5kIGlzCiAgICBwYXNzZWQuCiAgICAKICAgIAogICAgYGAtdmBgCiAgICAgICAgCiAgICAg ICAgUHJvZHVjZSBhIG1vcmUgdmVyYm9zZSByZXBvcnQuCiAgICAgICAgCiAgICAKICAgIGBg LWNgYAogICAgICAgIAogICAgICAgIFByaW50IHRoZSByZXN1bHRzIGluIGEgOnN0cm9uZzpg Y3NoYC1saWtlIGZvcm1hdC4KICAgICAgICBUaGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBg YC12YGAuCiAgICAgICAgCiAgICAKICAgIGBgLXdgYAogICAgICAgIAogICAgICAgIEZvciBl YWNoIDp2YXI6YG5hbWVgLCBwcmludCA6dmFyOmBuYW1lYFwgYGA6YGAgOnZhcjpgd29yZGAg d2hlcmUgOnZhcjpgd29yZGAKICAgICAgICBpcyBvbmUgb2YgYGBhbGlhc2BgLCBgYGJ1aWx0 aW5gYCwgYGBjb21tYW5kYGAsIGBgZnVuY3Rpb25gYCwKICAgICAgICBgYGhhc2hlZGBgLCBg YHJlc2VydmVkYGAgb3IgYGBub25lYGAsIGFjY29yZGluZyBhcyA6dmFyOmBuYW1lYAogICAg ICAgIGNvcnJlc3BvbmRzIHRvIGFuIGFsaWFzLCBhIGJ1aWx0LWluIGNvbW1hbmQsIGFuIGV4 dGVybmFsIGNvbW1hbmQsIGEKICAgICAgICBzaGVsbCBmdW5jdGlvbiwgYSBjb21tYW5kIGRl ZmluZWQgd2l0aCB0aGUgYGBoYXNoYGAgYnVpbHRpbiwgYQogICAgICAgIHJlc2VydmVkIHdv cmQsIG9yIGlzIG5vdCByZWNvZ25pc2VkLiAgVGhpcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIK ICAgICAgICBgYC12YGAgYW5kIGBgLWNgYC4KICAgICAgICAKICAgIAogICAgYGAtZmBgCiAg ICAgICAgCiAgICAgICAgQ2F1c2VzIHRoZSBjb250ZW50cyBvZiBhIHNoZWxsIGZ1bmN0aW9u IHRvIGJlCiAgICAgICAgZGlzcGxheWVkLCB3aGljaCB3b3VsZCBvdGhlcndpc2Ugbm90IGhh cHBlbiB1bmxlc3MgdGhlIGBgLWNgYAogICAgICAgIGZsYWcgd2VyZSB1c2VkLgogICAgICAg IAogICAgCiAgICBgYC1wYGAKICAgICAgICAKICAgICAgICBEbyBhIHBhdGggc2VhcmNoIGZv ciA6dmFyOmBuYW1lYAogICAgICAgIGV2ZW4gaWYgaXQgaXMgYW4gYWxpYXMsIHJlc2VydmVk IHdvcmQsIHNoZWxsIGZ1bmN0aW9uIG9yIGJ1aWx0aW4uCiAgICAgICAgCiAgICAKICAgIGBg LWFgYAogICAgICAgIAogICAgICAgIERvIGEgc2VhcmNoIGZvciBhbGwgb2NjdXJyZW5jZXMg b2YgOnZhcjpgbmFtZWAKICAgICAgICB0aHJvdWdob3V0IHRoZSBjb21tYW5kIHBhdGguCiAg ICAgICAgTm9ybWFsbHkgb25seSB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBpcyBwcmludGVkLgog ICAgICAgIFdoZW4gY29tYmluZWQgd2l0aCBgYC1tYGAsIG9ubHkgbmFtZXMgYXBwZWFyaW5n IGluIHRoZSBjb21tYW5kIGhhc2gKICAgICAgICB0YWJsZSBhcmUgc2VhcmNoZWQsIGJ1dCBh bGwgb2NjdXJyZW5jZXMgb2YgdGhvc2UgbmFtZXMgYXJlIHByaW50ZWQuCiAgICAgICAgCiAg ICAKICAgIGBgLW1gYAogICAgICAgIAogICAgICAgIFRoZSBhcmd1bWVudHMgYXJlIHRha2Vu IGFzIHBhdHRlcm5zIChwYXR0ZXJuIGNoYXJhY3RlcnMgc2hvdWxkIGJlCiAgICAgICAgcXVv dGVkKSwgYW5kIHRoZSBpbmZvcm1hdGlvbiBpcyBkaXNwbGF5ZWQgZm9yIGVhY2ggZW50cnkg aW4gdGhlIGNvbW1hbmQKICAgICAgICBoYXNoIHRhYmxlIG1hdGNoaW5nIG9uZSBvZiB0aGVz ZSBwYXR0ZXJucy4gIFRoZSBoYXNoIHRhYmxlIGlzIGZpcnN0CiAgICAgICAgcmVmaWxsZWQs IGluIGNhc2Ugb2YgY2hhbmdlcyB0byBgYFBBVEhgYC4KICAgICAgICAKICAgIAogICAgYGAt c2BgCiAgICAgICAgCiAgICAgICAgSWYgYSBwYXRobmFtZSBjb250YWlucyBzeW1saW5rcywg cHJpbnQgdGhlIHN5bWxpbmstZnJlZSBwYXRobmFtZSBhcyB3ZWxsLgogICAgICAgIAogICAg CiAgICBgYC1TYGAKICAgICAgICAKICAgICAgICBBcyBgYC1zYGAsIGJ1dCBpZiB0aGUgcGF0 aG5hbWUgaGFkIHRvIGJlIHJlc29sdmVkIGJ5IGZvbGxvd2luZwogICAgICAgIG11bHRpcGxl IHN5bWxpbmtzLCB0aGUgaW50ZXJtZWRpYXRlIHN0ZXBzIGFyZSBwcmludGVkLCB0b28uICBU aGUKICAgICAgICBzeW1saW5rIHJlc29sdmVkIGF0IGVhY2ggc3RlcCBtaWdodCBiZSBhbnl3 aGVyZSBpbiB0aGUgcGF0aC4KICAgICAgICAKICAgIAogICAgYGAteGBgIDp2YXI6YG51bWAK ICAgICAgICAKICAgICAgICBFeHBhbmQgdGFicyB3aGVuIG91dHB1dHRpbmcgc2hlbGwgZnVu Y3Rpb25zIHVzaW5nIHRoZSBgYC1jYGAgb3B0aW9uLgogICAgICAgIFRoaXMgaGFzIHRoZSBz YW1lIGVmZmVjdCBhcyB0aGUgYGAteGBgIG9wdGlvbiB0byB0aGUgYGBmdW5jdGlvbnNgYAog ICAgICAgIGJ1aWx0aW4uCiAgICAgICAgCiAgICAKICAgIAogICAgCgouLiBpbmRleDo6IHNp bmdsZTogd2hlcmU7IEZ1bmN0aW9uCgpgYHdoZXJlYGAgWyBgYC13cG1zU2BgIF0gWyBgYC14 YGAgOnZhcjpgbnVtYCBdIDp2YXI6YG5hbWVgIC4uLgogICAgCiAgICBFcXVpdmFsZW50IHRv IGBgd2hlbmNlIC1jYWBgLgogICAgCgouLiBpbmRleDo6IHNpbmdsZTogd2hpY2g7IEZ1bmN0 aW9uCgpgYHdoaWNoYGAgWyBgYC13cGFtc1NgYCBdIFsgYGAteGBgIDp2YXI6YG51bWAgXSA6 dmFyOmBuYW1lYCAuLi4KICAgIAogICAgRXF1aXZhbGVudCB0byBgYHdoZW5jZSAtY2BgLgog ICAgCgouLiBpbmRleDo6IHNpbmdsZTogemNvbXBpbGU7IEZ1bmN0aW9uCgouLiBpbmRleDo6 IHNpbmdsZTogLnp3YyBmaWxlcywgY3JlYXRpb247IENvbW1hbmQKCi4uIGluZGV4Ojogc2lu Z2xlOiBjb21waWxhdGlvbjsgQ29tbWFuZAoKYGB6Y29tcGlsZWBgIFsgYGAtVWBgIF0gWyBg YC16YGAgfCBgYC1rYGAgXSBbIGBgLVJgYCB8IGBgLU1gYCBdIDp2YXI6YGZpbGVgIFsgOnZh cjpgbmFtZWAgLi4uIF0KCmBgemNvbXBpbGVgYCBgYC1jYWBgIFsgYGAtbWBgIF0gWyBgYC1S YGAgfCBgYC1NYGAgXSA6dmFyOmBmaWxlYCBbIDp2YXI6YG5hbWVgIC4uLiBdCgpgYHpjb21w aWxlIC10YGAgOnZhcjpgZmlsZWAgWyA6dmFyOmBuYW1lYCAuLi4gXQogICAgCiAgICBUaGlz IGJ1aWx0aW4gY29tbWFuZCBjYW4gYmUgdXNlZCB0byBjb21waWxlIGZ1bmN0aW9ucyBvciBz Y3JpcHRzLAogICAgc3RvcmluZyB0aGUgY29tcGlsZWQgZm9ybSBpbiBhIGZpbGUsIGFuZCB0 byBleGFtaW5lIGZpbGVzIGNvbnRhaW5pbmcKICAgIHRoZSBjb21waWxlZCBmb3JtLiAgVGhp cyBhbGxvd3MgZmFzdGVyIGF1dG9sb2FkaW5nIG9mIGZ1bmN0aW9ucyBhbmQKICAgIHNvdXJj aW5nIG9mIHNjcmlwdHMgYnkgYXZvaWRpbmcgcGFyc2luZyBvZiB0aGUgdGV4dCB3aGVuIHRo ZSBmaWxlcwogICAgYXJlIHJlYWQuCiAgICAKICAgIFRoZSBmaXJzdCBmb3JtICh3aXRob3V0 IHRoZSBgYC1jYGAsIGBgLWFgYCBvciBgYC10YGAgb3B0aW9ucykgY3JlYXRlcyBhCiAgICBj b21waWxlZCBmaWxlLiAgSWYgb25seSB0aGUgOnZhcjpgZmlsZWAgYXJndW1lbnQgaXMgZ2l2 ZW4sIHRoZQogICAgb3V0cHV0IGZpbGUgaGFzIHRoZSBuYW1lIDp2YXI6YGZpbGVgXCBgYC56 d2NgYCBhbmQgd2lsbCBiZSBwbGFjZWQgaW4KICAgIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0 aGUgOnZhcjpgZmlsZWAuICBUaGUgc2hlbGwgd2lsbCBsb2FkIHRoZSBjb21waWxlZAogICAg ZmlsZSBpbnN0ZWFkIG9mIHRoZSBub3JtYWwgZnVuY3Rpb24gZmlsZSB3aGVuIHRoZSBmdW5j dGlvbgogICAgaXMgYXV0b2xvYWRlZDsgc2VlIDpyZWY6YEF1dG9sb2FkaW5nIEZ1bmN0aW9u c2AKICAgIGZvciBhIGRlc2NyaXB0aW9uIG9mIGhvdyBhdXRvbG9hZGVkIGZ1bmN0aW9ucyBh cmUgc2VhcmNoZWQuICBUaGUKICAgIGV4dGVuc2lvbiBgYC56d2NgYCBzdGFuZHMgZm9yIFxg enNoIHdvcmQgY29kZScuCiAgICAKICAgIC4uIGluZGV4Ojogc2luZ2xlOiBmcGF0aCwgd2l0 aCB6Y29tcGlsZTsgVmFyaWFibGUKICAgIAogICAgCiAgICBJZiB0aGVyZSBpcyBhdCBsZWFz dCBvbmUgOnZhcjpgbmFtZWAgYXJndW1lbnQsIGFsbCB0aGUgbmFtZWQgZmlsZXMKICAgIGFy ZSBjb21waWxlZCBpbnRvIHRoZSBvdXRwdXQgOnZhcjpgZmlsZWAgZ2l2ZW4gYXMgdGhlIGZp cnN0IGFyZ3VtZW50LiAgSWYKICAgIDp2YXI6YGZpbGVgIGRvZXMgbm90IGVuZCBpbiBgYC56 d2NgYCwgdGhpcyBleHRlbnNpb24gaXMgYXV0b21hdGljYWxseQogICAgYXBwZW5kZWQuICBG aWxlcyBjb250YWluaW5nIG11bHRpcGxlIGNvbXBpbGVkIGZ1bmN0aW9ucyBhcmUgY2FsbGVk IFxgZGlnZXN0JwogICAgZmlsZXMsIGFuZCBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyBl bGVtZW50cyBvZiB0aGUgYGBGUEFUSC9mcGF0aGBgCiAgICBzcGVjaWFsIGFycmF5LgogICAg CiAgICBUaGUgc2Vjb25kIGZvcm0sIHdpdGggdGhlIGBgLWNgYCBvciBgYC1hYGAgb3B0aW9u cywgd3JpdGVzIHRoZSBjb21waWxlZAogICAgZGVmaW5pdGlvbnMgZm9yIGFsbCB0aGUgbmFt ZWQgZnVuY3Rpb25zIGludG8gOnZhcjpgZmlsZWAuICBGb3IgYGAtY2BgLCB0aGUKICAgIG5h bWVzIG11c3QgYmUgZnVuY3Rpb25zIGN1cnJlbnRseSBkZWZpbmVkIGluIHRoZSBzaGVsbCwg bm90IHRob3NlIG1hcmtlZAogICAgZm9yIGF1dG9sb2FkaW5nLiAgVW5kZWZpbmVkIGZ1bmN0 aW9ucyB0aGF0IGFyZSBtYXJrZWQgZm9yIGF1dG9sb2FkaW5nCiAgICBtYXkgYmUgd3JpdHRl biBieSB1c2luZyB0aGUgYGAtYWBgIG9wdGlvbiwgaW4gd2hpY2ggY2FzZSB0aGUgYGBmcGF0 aGBgCiAgICBpcyBzZWFyY2hlZCBhbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBkZWZpbml0aW9u IGZpbGVzIGZvciB0aG9zZQogICAgZnVuY3Rpb25zLCBpZiBmb3VuZCwgYXJlIGNvbXBpbGVk IGludG8gOnZhcjpgZmlsZWAuICBJZiBib3RoIGBgLWNgYCBhbmQKICAgIGBgLWFgYCBhcmUg Z2l2ZW4sIG5hbWVzIG9mIGJvdGggZGVmaW5lZCBmdW5jdGlvbnMgYW5kIGZ1bmN0aW9ucyBt YXJrZWQKICAgIGZvciBhdXRvbG9hZGluZyBtYXkgYmUgZ2l2ZW4uICBJbiBlaXRoZXIgY2Fz ZSwgdGhlIGZ1bmN0aW9ucyBpbiBmaWxlcwogICAgd3JpdHRlbiB3aXRoIHRoZSBgYC1jYGAg b3IgYGAtYWBgIG9wdGlvbiB3aWxsIGJlIGF1dG9sb2FkZWQgYXMgaWYgdGhlCiAgICBgYEtT SF9BVVRPTE9BRGBgIG9wdGlvbiB3ZXJlIHVuc2V0LgogICAgCiAgICBUaGUgcmVhc29uIGZv ciBoYW5kbGluZyBsb2FkZWQgYW5kIG5vdC15ZXQtbG9hZGVkIGZ1bmN0aW9ucyB3aXRoCiAg ICBkaWZmZXJlbnQgb3B0aW9ucyBpcyB0aGF0IHNvbWUgZGVmaW5pdGlvbiBmaWxlcyBmb3Ig YXV0b2xvYWRpbmcgZGVmaW5lCiAgICBtdWx0aXBsZSBmdW5jdGlvbnMsIGluY2x1ZGluZyB0 aGUgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBuYW1lIGFzIHRoZQogICAgZmlsZSwgYW5kLCBh dCB0aGUgZW5kLCBjYWxsIHRoYXQgZnVuY3Rpb24uICBJbiBzdWNoIGNhc2VzIHRoZSBvdXRw dXQgb2YKICAgIGBgemNvbXBpbGUgLWNgYCBkb2VzIG5vdCBpbmNsdWRlIHRoZSBhZGRpdGlv bmFsIGZ1bmN0aW9ucyBkZWZpbmVkIGluCiAgICB0aGUgZmlsZSwgYW5kIGFueSBvdGhlciBp bml0aWFsaXphdGlvbiBjb2RlIGluIHRoZSBmaWxlIGlzIGxvc3QuICBVc2luZwogICAgYGB6 Y29tcGlsZSAtYWBgIGNhcHR1cmVzIGFsbCB0aGlzIGV4dHJhIGluZm9ybWF0aW9uLgogICAg CiAgICBJZiB0aGUgYGAtbWBgIG9wdGlvbiBpcyBjb21iaW5lZCB3aXRoIGBgLWNgYCBvciBg YC1hYGAsCiAgICB0aGUgOnZhcjpgbmFtZWBccyBhcmUgdXNlZCBhcyBwYXR0ZXJucyBhbmQg YWxsIGZ1bmN0aW9ucyB3aG9zZSBuYW1lcwogICAgbWF0Y2ggb25lIG9mIHRoZXNlIHBhdHRl cm5zIHdpbGwgYmUgd3JpdHRlbi4gSWYgbm8gOnZhcjpgbmFtZWAgaXMgZ2l2ZW4sCiAgICB0 aGUgZGVmaW5pdGlvbnMgb2YgYWxsIGZ1bmN0aW9ucyBjdXJyZW50bHkgZGVmaW5lZCBvciBt YXJrZWQgYXMKICAgIGF1dG9sb2FkZWQgd2lsbCBiZSB3cml0dGVuLgogICAgCiAgICBOb3Rl IHRoZSBzZWNvbmQgZm9ybSBjYW5ub3QgYmUgdXNlZCBmb3IgY29tcGlsaW5nIGZ1bmN0aW9u cyB0aGF0CiAgICBpbmNsdWRlIHJlZGlyZWN0aW9ucyBhcyBwYXJ0IG9mIHRoZSBkZWZpbml0 aW9uIHJhdGhlciB0aGFuIHdpdGhpbgogICAgdGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uOyBm b3IgZXhhbXBsZQogICAgCiAgICAuLiBwYXJzZWQtbGl0ZXJhbDo6CiAgICAgICA6Y2xhc3M6 IGV4YW1wbGUKICAgIAoKICAgICAgICBmbjEoKSB7IHsgLi4uIH0gPn4vbG9nZmlsZSB9CiAg ICAKICAgIAogICAgY2FuIGJlIGNvbXBpbGVkIGJ1dAogICAgCiAgICAuLiBwYXJzZWQtbGl0 ZXJhbDo6CiAgICAgICA6Y2xhc3M6IGV4YW1wbGUKICAgIAoKICAgICAgICBmbjEoKSB7IC4u LiB9ID5+L2xvZ2ZpbGUKICAgIAogICAgCiAgICBjYW5ub3QuICBJdCBpcyBwb3NzaWJsZSB0 byB1c2UgdGhlIGZpcnN0IGZvcm0gb2YgYGB6Y29tcGlsZWBgIHRvIGNvbXBpbGUKICAgIGF1 dG9sb2FkYWJsZSBmdW5jdGlvbnMgdGhhdCBpbmNsdWRlIHRoZSBmdWxsIGZ1bmN0aW9uIGRl ZmluaXRpb24gaW5zdGVhZAogICAgb2YganVzdCB0aGUgYm9keSBvZiB0aGUgZnVuY3Rpb24u CiAgICAKICAgIFRoZSB0aGlyZCBmb3JtLCB3aXRoIHRoZSBgYC10YGAgb3B0aW9uLCBleGFt aW5lcyBhbiBleGlzdGluZwogICAgY29tcGlsZWQgZmlsZS4gIFdpdGhvdXQgZnVydGhlciBh cmd1bWVudHMsIHRoZSBuYW1lcyBvZiB0aGUgb3JpZ2luYWwKICAgIGZpbGVzIGNvbXBpbGVk IGludG8gaXQgYXJlIGxpc3RlZC4gIFRoZSBmaXJzdCBsaW5lIG9mIG91dHB1dCBzaG93cwog ICAgdGhlIHZlcnNpb24gb2YgdGhlIHNoZWxsIHdoaWNoIGNvbXBpbGVkIHRoZSBmaWxlIGFu ZCBob3cgdGhlIGZpbGUKICAgIHdpbGwgYmUgdXNlZCAoaS5lLiBieSByZWFkaW5nIGl0IGRp cmVjdGx5IG9yIGJ5IG1hcHBpbmcgaXQgaW50byBtZW1vcnkpLgogICAgV2l0aCBhcmd1bWVu dHMsIG5vdGhpbmcgaXMgb3V0cHV0IGFuZCB0aGUgcmV0dXJuIHN0YXR1cyBpcyBzZXQgdG8g emVybyBpZgogICAgZGVmaW5pdGlvbnMgZm9yIDplbXBoYXNpczpgYWxsYCA6dmFyOmBuYW1l YFxzIHdlcmUgZm91bmQgaW4gdGhlIGNvbXBpbGVkCiAgICBmaWxlLCBhbmQgbm9uLXplcm8g aWYgdGhlIGRlZmluaXRpb24gZm9yIGF0IGxlYXN0IG9uZSA6dmFyOmBuYW1lYCB3YXMgbm90 CiAgICBmb3VuZC4KICAgIAogICAgT3RoZXIgb3B0aW9uczoKICAgIAogICAgCiAgICBgYC1V YGAKICAgICAgICAKICAgICAgICBBbGlhc2VzIGFyZSBub3QgZXhwYW5kZWQgd2hlbiBjb21w aWxpbmcgdGhlIDp2YXI6YG5hbWVgXGQgZmlsZXMuCiAgICAgICAgCiAgICAKICAgIGBgLVJg YAogICAgICAgIAogICAgICAgIFdoZW4gdGhlIGNvbXBpbGVkIGZpbGUgaXMgcmVhZCwgaXRz IGNvbnRlbnRzIGFyZSBjb3BpZWQgaW50byB0aGUKICAgICAgICBzaGVsbCdzIG1lbW9yeSwg cmF0aGVyIHRoYW4gbWVtb3J5LW1hcHBlZCAoc2VlIGBgLU1gYCkuICBUaGlzCiAgICAgICAg aGFwcGVucyBhdXRvbWF0aWNhbGx5IG9uIHN5c3RlbXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBt ZW1vcnkgbWFwcGluZy4KICAgICAgICAKICAgICAgICBXaGVuIGNvbXBpbGluZyBzY3JpcHRz IGluc3RlYWQgb2YgYXV0b2xvYWRhYmxlIGZ1bmN0aW9ucywgaXQgaXMKICAgICAgICBvZnRl biBkZXNpcmFibGUgdG8gdXNlIHRoaXMgb3B0aW9uOyBvdGhlcndpc2UgdGhlIHdob2xlIGZp bGUsIGluY2x1ZGluZyB0aGUKICAgICAgICBjb2RlIHRvIGRlZmluZSBmdW5jdGlvbnMgd2hp Y2ggaGF2ZSBhbHJlYWR5IGJlZW4gZGVmaW5lZCwgd2lsbAogICAgICAgIHJlbWFpbiBtYXBw ZWQsIGNvbnNlcXVlbnRseSB3YXN0aW5nIG1lbW9yeS4KICAgICAgICAKICAgIAogICAgYGAt TWBgCiAgICAgICAgCiAgICAgICAgVGhlIGNvbXBpbGVkIGZpbGUgaXMgbWFwcGVkIGludG8g dGhlIHNoZWxsJ3MgbWVtb3J5IHdoZW4gcmVhZC4gVGhpcwogICAgICAgIGlzIGRvbmUgaW4g c3VjaCBhIHdheSB0aGF0IG11bHRpcGxlIGluc3RhbmNlcyBvZiB0aGUgc2hlbGwgcnVubmlu ZwogICAgICAgIG9uIHRoZSBzYW1lIGhvc3Qgd2lsbCBzaGFyZSB0aGlzIG1hcHBlZCBmaWxl LiAgSWYgbmVpdGhlciBgYC1SYGAgbm9yCiAgICAgICAgYGAtTWBgIGlzIGdpdmVuLCB0aGUg YGB6Y29tcGlsZWBgIGJ1aWx0aW4gZGVjaWRlcyB3aGF0IHRvIGRvIGJhc2VkCiAgICAgICAg b24gdGhlIHNpemUgb2YgdGhlIGNvbXBpbGVkIGZpbGUuCiAgICAgICAgCiAgICAKICAgIGBg LWtgYAogICAgCiAgICBgYC16YGAKICAgICAgICAKICAgICAgICBUaGVzZSBvcHRpb25zIGFy ZSB1c2VkIHdoZW4gdGhlIGNvbXBpbGVkIGZpbGUgY29udGFpbnMgZnVuY3Rpb25zIHdoaWNo CiAgICAgICAgYXJlIHRvIGJlIGF1dG9sb2FkZWQuIElmIGBgLXpgYCBpcyBnaXZlbiwgdGhl CiAgICAgICAgZnVuY3Rpb24gd2lsbCBiZSBhdXRvbG9hZGVkIGFzIGlmIHRoZSBgYEtTSF9B VVRPTE9BRGBgIG9wdGlvbiBpcwogICAgICAgIDplbXBoYXNpczpgbm90YCBzZXQsIGV2ZW4g aWYgaXQgaXMgc2V0IGF0IHRoZSB0aW1lIHRoZSBjb21waWxlZCBmaWxlIGlzCiAgICAgICAg cmVhZCwgd2hpbGUgaWYgdGhlIGBgLWtgYCBpcyBnaXZlbiwgdGhlIGZ1bmN0aW9uIHdpbGwg YmUgbG9hZGVkIGFzIGlmCiAgICAgICAgYGBLU0hfQVVUT0xPQURgYCA6ZW1waGFzaXM6YGlz YCBzZXQuICBUaGVzZSBvcHRpb25zIGFsc28gdGFrZSBwcmVjZWRlbmNlIG92ZXIKICAgICAg ICBhbnkgYGAta2BgIG9yIGBgLXpgYCBvcHRpb25zIHNwZWNpZmllZCB0byB0aGUgYGBhdXRv bG9hZGBgIGJ1aWx0aW4uIElmCiAgICAgICAgbmVpdGhlciBvZiB0aGVzZSBvcHRpb25zIGlz IGdpdmVuLCB0aGUgZnVuY3Rpb24gd2lsbCBiZSBsb2FkZWQgYXMKICAgICAgICBkZXRlcm1p bmVkIGJ5IHRoZSBzZXR0aW5nIG9mIHRoZSBgYEtTSF9BVVRPTE9BRGBgIG9wdGlvbiBhdCB0 aGUgdGltZQogICAgICAgIHRoZSBjb21waWxlZCBmaWxlIGlzIHJlYWQuCiAgICAgICAgLi4g b25seTo6IG1hbgogICAgICAgIAogICAgICAgICAKICAgICAgICAKICAgICAgICBUaGVzZSBv cHRpb25zIG1heSBhbHNvIGFwcGVhciBhcyBtYW55IHRpbWVzIGFzIG5lY2Vzc2FyeSBiZXR3 ZWVuIHRoZSBsaXN0ZWQKICAgICAgICA6dmFyOmBuYW1lYFxzIHRvIHNwZWNpZnkgdGhlIGxv YWRpbmcgc3R5bGUgb2YgYWxsIGZvbGxvd2luZyBmdW5jdGlvbnMsIHVwIHRvCiAgICAgICAg dGhlIG5leHQgYGAta2BgIG9yIGBgLXpgYC4KICAgICAgICAKICAgIAogICAgLi4gb25seTo6 IG5vdCBtYW4KICAgIAogICAgCiAgICAKICAgIAogICAgVGhlIGNyZWF0ZWQgZmlsZSBhbHdh eXMgY29udGFpbnMgdHdvIHZlcnNpb25zIG9mIHRoZSBjb21waWxlZAogICAgZm9ybWF0LCBv bmUgZm9yIGJpZy1lbmRpYW4gbWFjaGluZXMgYW5kIG9uZSBmb3Igc21hbGwtZW5kaWFuCiAg ICBtYWNoaW5lcy4gIFRoZSB1cHNob3Qgb2YgdGhpcyBpcyB0aGF0IHRoZSBjb21waWxlZCBm aWxlIGlzIG1hY2hpbmUKICAgIGluZGVwZW5kZW50IGFuZCBpZiBpdCBpcyByZWFkIG9yIG1h cHBlZCwgb25seSBvbmUgaGFsZiBvZiB0aGUgZmlsZQogICAgaXMgYWN0dWFsbHkgdXNlZCAo YW5kIG1hcHBlZCkuCiAgICAuLiBvbmx5OjogbWFuCiAgICAKICAgIC4uIERFRklOSVRJT04t TElTVC1FTkQKICAgIAogICAgCiAgICAKCmBgemZvcm1hdGBgCiAgICAKICAgIFNlZSA6cmVm OmBUaGUgenNoL3p1dGlsIE1vZHVsZWAuCiAgICAKCmBgemZ0cGBgCiAgICAKICAgIFNlZSA6 cmVmOmBUaGUgenNoL3pmdHAgTW9kdWxlYC4KICAgIAoKYGB6bGVgYAogICAgCiAgICBTZWUg OnJlZjpgWmxlIEJ1aWx0aW5zYC4KICAgIAoKLi4gaW5kZXg6OiBzaW5nbGU6IHptb2Rsb2Fk OyBGdW5jdGlvbgoKLi4gaW5kZXg6OiBzaW5nbGU6IG1vZHVsZXMsIGxvYWRpbmc7IENvbW1h bmQKCi4uIGluZGV4Ojogc2luZ2xlOiBsb2FkaW5nIG1vZHVsZXM7IENvbW1hbmQKCmBgem1v ZGxvYWRgYCBbIGBgLWRMYGAgXSBbIGBgLXNgYCBdIFsgLi4uIF0KCmBgem1vZGxvYWQgLUZg YCBbIGBgLWFsTG1lYGAgYGAtUGBgIDp2YXI6YHBhcmFtYCBdIDp2YXI6YG1vZHVsZWAgWyBb YGArLWBgXTp2YXI6YGZlYXR1cmVgIC4uLiBdCgpgYHptb2Rsb2FkIC1lYGAgWyBgYC1BYGAg XSBbIC4uLiBdCgpgYHptb2Rsb2FkYGAgWyBgYC1hYGAgWyBgYC1iY3BmYGAgWyBgYC1JYGAg XSBdIF0gWyBgYC1pTGBgIF0gLi4uCgpgYHptb2Rsb2FkYGAgYGAtdWBgIFsgYGAtYWJjZHBm YGAgWyBgYC1JYGAgXSBdIFsgYGAtaUxgYCBdIC4uLgoKYGB6bW9kbG9hZGBgIGBgLUFgYCBb IGBgLUxgYCBdIFsgOnZhcjpgbW9kYWxpYXNgXFtgYD1gYDp2YXI6YG1vZHVsZWBdIC4uLiBd CgpgYHptb2Rsb2FkYGAgYGAtUmBgIDp2YXI6YG1vZGFsaWFzYCAuLi4KICAgIAogICAgUGVy Zm9ybXMgb3BlcmF0aW9ucyByZWxhdGluZyB0byB6c2gncyBsb2FkYWJsZSBtb2R1bGVzLgog ICAgTG9hZGluZyBvZiBtb2R1bGVzIHdoaWxlIHRoZSBzaGVsbCBpcyBydW5uaW5nIChcYGR5 bmFtaWNhbCBsb2FkaW5nJykgaXMgbm90CiAgICBhdmFpbGFibGUgb24gYWxsIG9wZXJhdGlu ZyBzeXN0ZW1zLCBvciBvbiBhbGwgaW5zdGFsbGF0aW9ucyBvbiBhIHBhcnRpY3VsYXIKICAg IG9wZXJhdGluZyBzeXN0ZW0sIGFsdGhvdWdoIHRoZSBgYHptb2Rsb2FkYGAgY29tbWFuZCBp dHNlbGYgaXMgYWx3YXlzCiAgICBhdmFpbGFibGUgYW5kIGNhbiBiZSB1c2VkIHRvIG1hbmlw dWxhdGUgbW9kdWxlcyBidWlsdCBpbnRvIHZlcnNpb25zIG9mIHRoZQogICAgc2hlbGwgZXhl Y3V0YWJsZSB3aXRob3V0IGR5bmFtaWNhbCBsb2FkaW5nLgogICAgCiAgICBXaXRob3V0IGFy Z3VtZW50cyB0aGUgbmFtZXMgb2YgYWxsIGN1cnJlbnRseSBsb2FkZWQgYmluYXJ5IG1vZHVs ZXMgYXJlCiAgICBwcmludGVkLiAgVGhlIGBgLUxgYCBvcHRpb24gY2F1c2VzIHRoaXMgbGlz dCB0byBiZSBpbiB0aGUgZm9ybSBvZiBhCiAgICBzZXJpZXMgb2YgYGB6bW9kbG9hZGBgIGNv bW1hbmRzLiAgRm9ybXMgd2l0aCBhcmd1bWVudHMgYXJlOgogICAgCiAgICAKICAgIGBgem1v ZGxvYWRgYCBbIGBgLWlzYGAgXSA6dmFyOmBuYW1lYCAuLi4gCiAgICAKICAgIGBgem1vZGxv YWRgYCBgYC11YGAgWyBgYC1pYGAgXSA6dmFyOmBuYW1lYCAuLi4KICAgICAgICAKICAgICAg ICBJbiB0aGUgc2ltcGxlc3QgY2FzZSwgYGB6bW9kbG9hZGBgIGxvYWRzIGEgYmluYXJ5IG1v ZHVsZS4gIFRoZSBtb2R1bGUgbXVzdAogICAgICAgIGJlIGluIGEgZmlsZSB3aXRoIGEgbmFt ZSBjb25zaXN0aW5nIG9mIHRoZSBzcGVjaWZpZWQgOnZhcjpgbmFtZWAgZm9sbG93ZWQgYnkK ICAgICAgICBhIHN0YW5kYXJkIHN1ZmZpeCwgdXN1YWxseSBgYC5zb2BgIChgYC5zbGBgIG9u IEhQVVgpLgogICAgICAgIElmIHRoZSBtb2R1bGUgdG8gYmUgbG9hZGVkIGlzIGFscmVhZHkg bG9hZGVkIHRoZSBkdXBsaWNhdGUgbW9kdWxlIGlzCiAgICAgICAgaWdub3JlZC4gIElmIGBg em1vZGxvYWRgYCBkZXRlY3RzIGFuIGluY29uc2lzdGVuY3ksIHN1Y2ggYXMgYW4KICAgICAg ICBpbnZhbGlkIG1vZHVsZSBuYW1lIG9yIGNpcmN1bGFyIGRlcGVuZGVuY3kgbGlzdCwgdGhl IGN1cnJlbnQgY29kZSBibG9jayBpcyAKICAgICAgICBhYm9ydGVkLiAgSWYgaXQgaXMgYXZh aWxhYmxlLCB0aGUgbW9kdWxlIGlzIGxvYWRlZCBpZiBuZWNlc3NhcnksIHdoaWxlIGlmIGl0 CiAgICAgICAgaXMgbm90IGF2YWlsYWJsZSwgbm9uLXplcm8gc3RhdHVzIGlzIHNpbGVudGx5 IHJldHVybmVkLiAgVGhlIG9wdGlvbgogICAgICAgIGBgLWlgYCBpcyBhY2NlcHRlZCBmb3Ig Y29tcGF0aWJpbGl0eSBidXQgaGFzIG5vIGVmZmVjdC4KICAgICAgICAKICAgICAgICBUaGUg OnZhcjpgbmFtZWBcZCBtb2R1bGUgaXMgc2VhcmNoZWQgZm9yIGluIHRoZSBzYW1lIHdheSBh IGNvbW1hbmQgaXMsIHVzaW5nCiAgICAgICAgYGAkbW9kdWxlX3BhdGhgYCBpbnN0ZWFkIG9m IGBgJHBhdGhgYC4gIEhvd2V2ZXIsIHRoZSBwYXRoIHNlYXJjaCBpcwogICAgICAgIHBlcmZv cm1lZCBldmVuIHdoZW4gdGhlIG1vZHVsZSBuYW1lIGNvbnRhaW5zIGEgYGAvYGAsIHdoaWNo IGl0IHVzdWFsbHkgZG9lcy4KICAgICAgICBUaGVyZSBpcyBubyB3YXkgdG8gcHJldmVudCB0 aGUgcGF0aCBzZWFyY2guCiAgICAgICAgCiAgICAgICAgSWYgdGhlIG1vZHVsZSBzdXBwb3J0 cyBmZWF0dXJlcyAoc2VlIGJlbG93KSwgYGB6bW9kbG9hZGBgIHRyaWVzIHRvCiAgICAgICAg ZW5hYmxlIGFsbCBmZWF0dXJlcyB3aGVuIGxvYWRpbmcgYSBtb2R1bGUuICBJZiB0aGUgbW9k dWxlIHdhcyBzdWNjZXNzZnVsbHkKICAgICAgICBsb2FkZWQgYnV0IG5vdCBhbGwgZmVhdHVy ZXMgY291bGQgYmUgZW5hYmxlZCwgYGB6bW9kbG9hZGBgIHJldHVybnMgc3RhdHVzIDIuCiAg ICAgICAgCiAgICAgICAgSWYgdGhlIG9wdGlvbiBgYC1zYGAgaXMgZ2l2ZW4sIG5vIGVycm9y IGlzIHByaW50ZWQgaWYgdGhlIG1vZHVsZSB3YXMgbm90CiAgICAgICAgYXZhaWxhYmxlICh0 aG91Z2ggb3RoZXIgZXJyb3JzIGluZGljYXRpbmcgYSBwcm9ibGVtIHdpdGggdGhlIG1vZHVs ZSBhcmUKICAgICAgICBwcmludGVkKS4gIFRoZSByZXR1cm4gc3RhdHVzIGluZGljYXRlcyBp ZiB0aGUgbW9kdWxlIHdhcyBsb2FkZWQuICBUaGlzCiAgICAgICAgaXMgYXBwcm9wcmlhdGUg aWYgdGhlIGNhbGxlciBjb25zaWRlcnMgdGhlIG1vZHVsZSBvcHRpb25hbC4KICAgICAgICAK ICAgICAgICBXaXRoIGBgLXVgYCwgYGB6bW9kbG9hZGBgIHVubG9hZHMgbW9kdWxlcy4gIFRo ZSBzYW1lIDp2YXI6YG5hbWVgCiAgICAgICAgbXVzdCBiZSBnaXZlbiB0aGF0IHdhcyBnaXZl biB3aGVuIHRoZSBtb2R1bGUgd2FzIGxvYWRlZCwgYnV0IGl0IGlzIG5vdAogICAgICAgIG5l Y2Vzc2FyeSBmb3IgdGhlIG1vZHVsZSB0byBleGlzdCBpbiB0aGUgZmlsZSBzeXN0ZW0uCiAg ICAgICAgVGhlIGBgLWlgYCBvcHRpb24gc3VwcHJlc3NlcyB0aGUgZXJyb3IgaWYgdGhlIG1v ZHVsZSBpcyBhbHJlYWR5CiAgICAgICAgdW5sb2FkZWQgKG9yIHdhcyBuZXZlciBsb2FkZWQp LgogICAgICAgIAogICAgICAgIEVhY2ggbW9kdWxlIGhhcyBhIGJvb3QgYW5kIGEgY2xlYW51 cCBmdW5jdGlvbi4gIFRoZSBtb2R1bGUKICAgICAgICB3aWxsIG5vdCBiZSBsb2FkZWQgaWYg aXRzIGJvb3QgZnVuY3Rpb24gZmFpbHMuICBTaW1pbGFybHkgYSBtb2R1bGUKICAgICAgICBj YW4gb25seSBiZSB1bmxvYWRlZCBpZiBpdHMgY2xlYW51cCBmdW5jdGlvbiBydW5zIHN1Y2Nl c3NmdWxseS4KICAgICAgICAKICAgIAogICAgYGB6bW9kbG9hZCAtRmBgIFsgYGAtYWxtTGVg YCBgYC1QYGAgOnZhcjpgcGFyYW1gIF0gOnZhcjpgbW9kdWxlYCBbIFtgYCstYGBdOnZhcjpg ZmVhdHVyZWAgLi4uIF0KICAgICAgICAKICAgICAgICBgYHptb2Rsb2FkIC1GYGAgYWxsb3dz IG1vcmUgc2VsZWN0aXZlIGNvbnRyb2wgb3ZlciB0aGUgZmVhdHVyZXMgcHJvdmlkZWQKICAg ICAgICBieSBtb2R1bGVzLiAgV2l0aCBubyBvcHRpb25zIGFwYXJ0IGZyb20gYGAtRmBgLCB0 aGUgbW9kdWxlIG5hbWVkCiAgICAgICAgOnZhcjpgbW9kdWxlYCBpcyBsb2FkZWQsIGlmIGl0 IHdhcyBub3QgYWxyZWFkeSBsb2FkZWQsIGFuZCB0aGUgbGlzdCBvZgogICAgICAgIDp2YXI6 YGZlYXR1cmVgXHMgaXMgc2V0IHRvIHRoZSByZXF1aXJlZCBzdGF0ZS4gIElmIG5vIAogICAg ICAgIDp2YXI6YGZlYXR1cmVgXHMgYXJlIHNwZWNpZmllZCwgdGhlIG1vZHVsZSBpcyBsb2Fk ZWQsIGlmIGl0IHdhcyBub3QgYWxyZWFkeQogICAgICAgIGxvYWRlZCwgYnV0IHRoZSBzdGF0 ZSBvZiBmZWF0dXJlcyBpcyB1bmNoYW5nZWQuICBFYWNoIGZlYXR1cmUKICAgICAgICBtYXkg YmUgcHJlY2VkZWQgYnkgYSBgYCtgYCB0byB0dXJuIHRoZSBmZWF0dXJlIG9uLCBvciBgYC1g YCB0byB0dXJuIGl0CiAgICAgICAgb2ZmOyB0aGUgYGArYGAgaXMgYXNzdW1lZCBpZiBuZWl0 aGVyIGNoYXJhY3RlciBpcyBwcmVzZW50LgogICAgICAgIEFueSBmZWF0dXJlIG5vdCBleHBs aWNpdGx5IG1lbnRpb25lZCBpcyBsZWZ0IGluIGl0cyBjdXJyZW50IHN0YXRlOwogICAgICAg IGlmIHRoZSBtb2R1bGUgd2FzIG5vdCBwcmV2aW91c2x5IGxvYWRlZCB0aGlzIG1lYW5zIGFu eSBzdWNoIGZlYXR1cmVzIHdpbGwKICAgICAgICByZW1haW4gZGlzYWJsZWQuICBUaGUgcmV0 dXJuIHN0YXR1cyBpcyB6ZXJvIGlmIGFsbCBmZWF0dXJlcyB3ZXJlCiAgICAgICAgc2V0LCAx IGlmIHRoZSBtb2R1bGUgZmFpbGVkIHRvIGxvYWQsIGFuZCAyIGlmIHNvbWUgZmVhdHVyZXMg Y291bGQKICAgICAgICBub3QgYmUgc2V0IChmb3IgZXhhbXBsZSwgYSBwYXJhbWV0ZXIgY291 bGRuJ3QgYmUgYWRkZWQgYmVjYXVzZSB0aGVyZQogICAgICAgIHdhcyBhIGRpZmZlcmVudCBw YXJhbWV0ZXIgb2YgdGhlIHNhbWUgbmFtZSkgYnV0IHRoZSBtb2R1bGUgd2FzIGxvYWRlZC4K ICAgICAgICAKICAgICAgICBUaGUgc3RhbmRhcmQgZmVhdHVyZXMgYXJlIGJ1aWx0aW5zLCBj b25kaXRpb25zLCBwYXJhbWV0ZXJzIGFuZCBtYXRoCiAgICAgICAgZnVuY3Rpb25zOyB0aGVz ZSBhcmUgaW5kaWNhdGVkIGJ5IHRoZSBwcmVmaXggYGBiOmBgLCBgYGM6YGAKICAgICAgICAo YGBDOmBgIGZvciBhbiBpbmZpeCBjb25kaXRpb24pLCBgYHA6YGAgYW5kIGBgZjpgYCwgcmVz cGVjdGl2ZWx5LAogICAgICAgIGZvbGxvd2VkIGJ5IHRoZSBuYW1lIHRoYXQgdGhlIGNvcnJl c3BvbmRpbmcgZmVhdHVyZSB3b3VsZCBoYXZlIGluIHRoZQogICAgICAgIHNoZWxsLiAgRm9y IGV4YW1wbGUsIGBgYjpzdHJmdGltZWBgIGluZGljYXRlcyBhIGJ1aWx0aW4gbmFtZWQKICAg ICAgICBgYHN0cmZ0aW1lYGAgYW5kIGBgcDpFUE9DSFNFQ09ORFNgYCBpbmRpY2F0ZXMgYSBw YXJhbWV0ZXIgbmFtZWQKICAgICAgICBgYEVQT0NIU0VDT05EU2BgLiAgVGhlIG1vZHVsZSBt YXkgcHJvdmlkZSBvdGhlciAoXGBhYnN0cmFjdCcpIGZlYXR1cmVzIG9mCiAgICAgICAgaXRz IG93biBhcyBpbmRpY2F0ZWQgYnkgaXRzIGRvY3VtZW50YXRpb247IHRoZXNlIGhhdmUgbm8g cHJlZml4LgogICAgICAgIAogICAgICAgIFdpdGggYGAtbGBgIG9yIGBgLUxgYCwgZmVhdHVy ZXMgcHJvdmlkZWQgYnkgdGhlIG1vZHVsZSBhcmUgbGlzdGVkLiAgV2l0aAogICAgICAgIGBg LWxgYCBhbG9uZSwgYSBsaXN0IG9mIGZlYXR1cmVzIHRvZ2V0aGVyIHdpdGggdGhlaXIgc3Rh dGVzIGlzIHNob3duLCBvbmUKICAgICAgICBmZWF0dXJlIHBlciBsaW5lLiAgV2l0aCBgYC1M YGAgYWxvbmUsIGEgYGB6bW9kbG9hZCAtRmBgIGNvbW1hbmQgdGhhdCB3b3VsZAogICAgICAg IGNhdXNlIGVuYWJsZWQgZmVhdHVyZXMgb2YgdGhlIG1vZHVsZSB0byBiZSB0dXJuZWQgb24g aXMgc2hvd24uICBXaXRoCiAgICAgICAgYGAtbExgYCwgYSBgYHptb2Rsb2FkIC1GYGAgY29t bWFuZCB0aGF0IHdvdWxkIGNhdXNlIGFsbCB0aGUgZmVhdHVyZXMgdG8gYmUKICAgICAgICBz ZXQgdG8gdGhlaXIgY3VycmVudCBzdGF0ZSBpcyBzaG93bi4gIElmIG9uZSBvZiB0aGVzZSBj b21iaW5hdGlvbnMgaXMgZ2l2ZW4KICAgICAgICB3aXRoIHRoZSBvcHRpb24gYGAtUGBgIDp2 YXI6YHBhcmFtYCB0aGVuIHRoZSBwYXJhbWV0ZXIgOnZhcjpgcGFyYW1gIGlzIHNldCB0byBh bgogICAgICAgIGFycmF5IG9mIGZlYXR1cmVzLCBlaXRoZXIgZmVhdHVyZXMgdG9nZXRoZXIg d2l0aCB0aGVpciBzdGF0ZSBvciAoaWYKICAgICAgICBgYC1MYGAgYWxvbmUgaXMgZ2l2ZW4p IGVuYWJsZWQgZmVhdHVyZXMuCiAgICAgICAgCiAgICAgICAgV2l0aCB0aGUgb3B0aW9uIGBg LUxgYCB0aGUgbW9kdWxlIG5hbWUgbWF5IGJlIG9taXR0ZWQ7IHRoZW4gYSBsaXN0CiAgICAg ICAgb2YgYWxsIGVuYWJsZWQgZmVhdHVyZXMgZm9yIGFsbCBtb2R1bGVzIHByb3ZpZGluZyBm ZWF0dXJlcyBpcyBwcmludGVkCiAgICAgICAgaW4gdGhlIGZvcm0gb2YgYGB6bW9kbG9hZCAt RmBgIGNvbW1hbmRzLiAgSWYgYGAtbGBgIGlzIGFsc28gZ2l2ZW4sCiAgICAgICAgdGhlIHN0 YXRlIG9mIGJvdGggZW5hYmxlZCBhbmQgZGlzYWJsZWQgZmVhdHVyZXMgaXMgb3V0cHV0IGlu IHRoYXQgZm9ybS4KICAgICAgICAKICAgICAgICBBIHNldCBvZiBmZWF0dXJlcyBtYXkgYmUg cHJvdmlkZWQgdG9nZXRoZXIgd2l0aCBgYC1sYGAgb3IgYGAtTGBgIGFuZCBhCiAgICAgICAg bW9kdWxlIG5hbWU7IGluIHRoYXQgY2FzZSBvbmx5IHRoZSBzdGF0ZSBvZiB0aG9zZSBmZWF0 dXJlcyBpcwogICAgICAgIGNvbnNpZGVyZWQuICBFYWNoIGZlYXR1cmUgbWF5IGJlIHByZWNl ZGVkIGJ5IGBgK2BgIG9yIGBgLWBgIGJ1dCB0aGUKICAgICAgICBjaGFyYWN0ZXIgaGFzIG5v IGVmZmVjdC4gIElmIG5vIHNldCBvZiBmZWF0dXJlcyBpcyBwcm92aWRlZCwgYWxsCiAgICAg ICAgZmVhdHVyZXMgYXJlIGNvbnNpZGVyZWQuCiAgICAgICAgCiAgICAgICAgV2l0aCBgYC1l YGAsIHRoZSBjb21tYW5kIGZpcnN0IHRlc3RzIHRoYXQgdGhlIG1vZHVsZSBpcyBsb2FkZWQ7 CiAgICAgICAgaWYgaXQgaXMgbm90LCBzdGF0dXMgMSBpcyByZXR1cm5lZC4gIElmIHRoZSBt b2R1bGUgaXMgbG9hZGVkLAogICAgICAgIHRoZSBsaXN0IG9mIGZlYXR1cmVzIGdpdmVuIGFz IGFuIGFyZ3VtZW50IGlzIGV4YW1pbmVkLiAgQW55IGZlYXR1cmUKICAgICAgICBnaXZlbiB3 aXRoIG5vIHByZWZpeCBpcyBzaW1wbHkgdGVzdGVkIHRvIHNlZSBpZiB0aGUgbW9kdWxlIHBy b3ZpZGVzIGl0OwogICAgICAgIGFueSBmZWF0dXJlIGdpdmVuIHdpdGggYSBwcmVmaXggYGAr YGAgb3IgYGAtYGAgaXMgdGVzdGVkIHRvCiAgICAgICAgc2VlIGlmIGlzIHByb3ZpZGVkIGFu ZCBpbiB0aGUgZ2l2ZW4gc3RhdGUuICBJZiB0aGUgdGVzdHMgb24gYWxsIGZlYXR1cmVzCiAg ICAgICAgaW4gdGhlIGxpc3Qgc3VjY2VlZCwgc3RhdHVzIDAgaXMgcmV0dXJuZWQsIGVsc2Ug c3RhdHVzIDEuCiAgICAgICAgCiAgICAgICAgV2l0aCBgYC1tYGAsIGVhY2ggZW50cnkgaW4g dGhlIGdpdmVuIGxpc3Qgb2YgZmVhdHVyZXMgaXMgdGFrZW4KICAgICAgICBhcyBhIHBhdHRl cm4gdG8gYmUgbWF0Y2hlZCBhZ2FpbnN0IHRoZSBsaXN0IG9mIGZlYXR1cmVzIHByb3ZpZGVk CiAgICAgICAgYnkgdGhlIG1vZHVsZS4gIEFuIGluaXRpYWwgYGArYGAgb3IgYGAtYGAgbXVz dCBiZSBnaXZlbiBleHBsaWNpdGx5LgogICAgICAgIFRoaXMgbWF5IG5vdCBiZSBjb21iaW5l ZCB3aXRoIHRoZSBgYC1hYGAgb3B0aW9uIGFzIGF1dG9sb2FkcyBtdXN0CiAgICAgICAgYmUg c3BlY2lmaWVkIGV4cGxpY2l0bHkuCiAgICAgICAgCiAgICAgICAgV2l0aCBgYC1hYGAsIHRo ZSBnaXZlbiBsaXN0IG9mIGZlYXR1cmVzIGlzIG1hcmtlZCBmb3IgYXV0b2xvYWQgZnJvbQog ICAgICAgIHRoZSBzcGVjaWZpZWQgbW9kdWxlLCB3aGljaCBtYXkgbm90IHlldCBiZSBsb2Fk ZWQuICBBbiBvcHRpb25hbCBgYCtgYAogICAgICAgIG1heSBhcHBlYXIgYmVmb3JlIHRoZSBm ZWF0dXJlIG5hbWUuICBJZiB0aGUgZmVhdHVyZSBpcyBwcmVmaXhlZCB3aXRoCiAgICAgICAg YGAtYGAsIGFueSBleGlzdGluZyBhdXRvbG9hZCBpcyByZW1vdmVkLiAgVGhlIG9wdGlvbnMg YGAtbGBgIGFuZCBgYC1MYGAKICAgICAgICBtYXkgYmUgdXNlZCB0byBsaXN0IGF1dG9sb2Fk cy4gIEF1dG9sb2FkaW5nIGlzIHNwZWNpZmljIHRvIGluZGl2aWR1YWwKICAgICAgICBmZWF0 dXJlczsgd2hlbiB0aGUgbW9kdWxlIGlzIGxvYWRlZCBvbmx5IHRoZSByZXF1ZXN0ZWQgZmVh dHVyZSBpcwogICAgICAgIGVuYWJsZWQuICBBdXRvbG9hZCByZXF1ZXN0cyBhcmUgcHJlc2Vy dmVkIGlmIHRoZSBtb2R1bGUgaXMKICAgICAgICBzdWJzZXF1ZW50bHkgdW5sb2FkZWQgdW50 aWwgYW4gZXhwbGljaXQgYGB6bW9kbG9hZCAtRmFgYCA6dmFyOmBtb2R1bGVgCiAgICAgICAg YGAtYGA6dmFyOmBmZWF0dXJlYCBpcyBpc3N1ZWQuICBJdCBpcyBub3QgYW4gZXJyb3IgdG8g cmVxdWVzdCBhbiBhdXRvbG9hZAogICAgICAgIGZvciBhIGZlYXR1cmUgb2YgYSBtb2R1bGUg dGhhdCBpcyBhbHJlYWR5IGxvYWRlZC4KICAgICAgICAKICAgICAgICBXaGVuIHRoZSBtb2R1 bGUgaXMgbG9hZGVkIGVhY2ggYXV0b2xvYWQgaXMgY2hlY2tlZCBhZ2FpbnN0IHRoZSBmZWF0 dXJlcwogICAgICAgIGFjdHVhbGx5IHByb3ZpZGVkIGJ5IHRoZSBtb2R1bGU7IGlmIHRoZSBm ZWF0dXJlIGlzIG5vdCBwcm92aWRlZCB0aGUKICAgICAgICBhdXRvbG9hZCByZXF1ZXN0IGlz IGRlbGV0ZWQuICBBIHdhcm5pbmcgbWVzc2FnZSBpcyBvdXRwdXQ7IGlmIHRoZQogICAgICAg IG1vZHVsZSBpcyBiZWluZyBsb2FkZWQgdG8gcHJvdmlkZSBhIGRpZmZlcmVudCBmZWF0dXJl LCBhbmQgdGhhdCBhdXRvbG9hZAogICAgICAgIGlzIHN1Y2Nlc3NmdWwsIHRoZXJlIGlzIG5v IGVmZmVjdCBvbiB0aGUgc3RhdHVzIG9mIHRoZSBjdXJyZW50IGNvbW1hbmQuCiAgICAgICAg SWYgdGhlIG1vZHVsZSBpcyBhbHJlYWR5IGxvYWRlZCBhdCB0aGUgdGltZSB3aGVuIGBgem1v ZGxvYWQgLUZhYGAgaXMKICAgICAgICBydW4sIGFuIGVycm9yIG1lc3NhZ2UgaXMgcHJpbnRl ZCBhbmQgc3RhdHVzIDEgcmV0dXJuZWQuCiAgICAgICAgCiAgICAgICAgYGB6bW9kbG9hZCAt RmFgYCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBgYC1sYGAsIGBgLUxgYCwgYGAtZWBgIGFuZAog ICAgICAgIGBgLVBgYCBvcHRpb25zIGZvciBsaXN0aW5nIGFuZCB0ZXN0aW5nIHRoZSBleGlz dGVuY2Ugb2YgYXV0b2xvYWRhYmxlCiAgICAgICAgZmVhdHVyZXMuICBJbiB0aGlzIGNhc2Ug YGAtbGBgIGlzIGlnbm9yZWQgaWYgYGAtTGBgIGlzIHNwZWNpZmllZC4KICAgICAgICBgYHpt b2Rsb2FkIC1GYUxgYCB3aXRoIG5vIG1vZHVsZSBuYW1lIGxpc3RzIGF1dG9sb2FkcyBmb3Ig YWxsIG1vZHVsZXMuCiAgICAgICAgCiAgICAgICAgTm90ZSB0aGF0IG9ubHkgc3RhbmRhcmQg ZmVhdHVyZXMgYXMgZGVzY3JpYmVkIGFib3ZlIGNhbiBiZSBhdXRvbG9hZGVkOwogICAgICAg IG90aGVyIGZlYXR1cmVzIHJlcXVpcmUgdGhlIG1vZHVsZSB0byBiZSBsb2FkZWQgYmVmb3Jl IGVuYWJsaW5nLgogICAgICAgIAogICAgCiAgICBgYHptb2Rsb2FkYGAgYGAtZGBgIFsgYGAt TGBgIF0gWyA6dmFyOmBuYW1lYCBdCiAgICAKICAgIGBgem1vZGxvYWRgYCBgYC1kYGAgOnZh cjpgbmFtZWAgOnZhcjpgZGVwYCAuLi4KICAgIAogICAgYGB6bW9kbG9hZGBgIGBgLXVkYGAg OnZhcjpgbmFtZWAgWyA6dmFyOmBkZXBgIC4uLiBdCiAgICAgICAgCiAgICAgICAgVGhlIGBg LWRgYCBvcHRpb24gY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBtb2R1bGUgZGVwZW5kZW5jaWVz LiAgVGhlIG1vZHVsZXMKICAgICAgICBuYW1lZCBpbiB0aGUgc2Vjb25kIGFuZCBzdWJzZXF1 ZW50IGFyZ3VtZW50cyB3aWxsIGJlIGxvYWRlZCBiZWZvcmUgdGhlCiAgICAgICAgbW9kdWxl IG5hbWVkIGluIHRoZSBmaXJzdCBhcmd1bWVudC4KICAgICAgICAKICAgICAgICBXaXRoIGBg LWRgYCBhbmQgb25lIGFyZ3VtZW50LCBhbGwgZGVwZW5kZW5jaWVzIGZvciB0aGF0IG1vZHVs ZSBhcmUgbGlzdGVkLgogICAgICAgIFdpdGggYGAtZGBgIGFuZCBubyBhcmd1bWVudHMsIGFs bCBtb2R1bGUgZGVwZW5kZW5jaWVzIGFyZSBsaXN0ZWQuICBUaGlzCiAgICAgICAgbGlzdGlu ZyBpcyBieSBkZWZhdWx0IGluIGEgTWFrZWZpbGUtbGlrZSBmb3JtYXQuICBUaGUgYGAtTGBg IG9wdGlvbgogICAgICAgIGNoYW5nZXMgdGhpcyBmb3JtYXQgdG8gYSBsaXN0IG9mIGBgem1v ZGxvYWQgLWRgYCBjb21tYW5kcy4KICAgICAgICAKICAgICAgICBJZiBgYC1kYGAgYW5kIGBg LXVgYCBhcmUgYm90aCB1c2VkLCBkZXBlbmRlbmNpZXMgYXJlIHJlbW92ZWQuICBJZiBvbmx5 IG9uZQogICAgICAgIGFyZ3VtZW50IGlzIGdpdmVuLCBhbGwgZGVwZW5kZW5jaWVzIGZvciB0 aGF0IG1vZHVsZSBhcmUgcmVtb3ZlZC4KICAgICAgICAKICAgIAogICAgYGB6bW9kbG9hZGBg IGBgLWFiYGAgWyBgYC1MYGAgXQogICAgCiAgICBgYHptb2Rsb2FkYGAgYGAtYWJgYCBbIGBg LWlgYCBdIDp2YXI6YG5hbWVgIFsgOnZhcjpgYnVpbHRpbmAgLi4uIF0KICAgIAogICAgYGB6 bW9kbG9hZGBgIGBgLXViYGAgWyBgYC1pYGAgXSA6dmFyOmBidWlsdGluYCAuLi4KICAgICAg ICAKICAgICAgICBUaGUgYGAtYWJgYCBvcHRpb24gZGVmaW5lcyBhdXRvbG9hZGVkIGJ1aWx0 aW5zLiAgSXQgZGVmaW5lcyB0aGUgc3BlY2lmaWVkCiAgICAgICAgOnZhcjpgYnVpbHRpbmBc cy4gIFdoZW4gYW55IG9mIHRob3NlIGJ1aWx0aW5zIGlzIGNhbGxlZCwgdGhlIG1vZHVsZSBz cGVjaWZpZWQKICAgICAgICBpbiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgbG9hZGVkIGFuZCBh bGwgaXRzIGZlYXR1cmVzIGFyZSBlbmFibGVkIChmb3IKICAgICAgICBzZWxlY3RpdmUgY29u dHJvbCBvZiBmZWF0dXJlcyB1c2UgYGB6bW9kbG9hZCAtRiAtYWBgIGFzIGRlc2NyaWJlZAog ICAgICAgIGFib3ZlKS4gIElmIG9ubHkgdGhlIDp2YXI6YG5hbWVgIGlzIGdpdmVuLCBvbmUg YnVpbHRpbiBpcyBkZWZpbmVkLCB3aXRoCiAgICAgICAgdGhlIHNhbWUgbmFtZSBhcyB0aGUg bW9kdWxlLiAgYGAtaWBgIHN1cHByZXNzZXMgdGhlIGVycm9yIGlmIHRoZSBidWlsdGluCiAg ICAgICAgaXMgYWxyZWFkeSBkZWZpbmVkIG9yIGF1dG9sb2FkZWQsIGJ1dCBub3QgaWYgYW5v dGhlciBidWlsdGluIG9mIHRoZQogICAgICAgIHNhbWUgbmFtZSBpcyBhbHJlYWR5IGRlZmlu ZWQuCiAgICAgICAgCiAgICAgICAgV2l0aCBgYC1hYmBgIGFuZCBubyBhcmd1bWVudHMsIGFs bCBhdXRvbG9hZGVkIGJ1aWx0aW5zIGFyZSBsaXN0ZWQsIHdpdGggdGhlCiAgICAgICAgbW9k dWxlIG5hbWUgKGlmIGRpZmZlcmVudCkgc2hvd24gaW4gcGFyZW50aGVzZXMgYWZ0ZXIgdGhl IGJ1aWx0aW4gbmFtZS4KICAgICAgICBUaGUgYGAtTGBgIG9wdGlvbiBjaGFuZ2VzIHRoaXMg Zm9ybWF0IHRvIGEgbGlzdCBvZiBgYHptb2Rsb2FkIC1hYGAKICAgICAgICBjb21tYW5kcy4K ICAgICAgICAKICAgICAgICBJZiBgYC1iYGAgaXMgdXNlZCB0b2dldGhlciB3aXRoIHRoZSBg YC11YGAgb3B0aW9uLCBpdCByZW1vdmVzIGJ1aWx0aW5zCiAgICAgICAgcHJldmlvdXNseSBk ZWZpbmVkIHdpdGggYGAtYWJgYC4gIFRoaXMgaXMgb25seSBwb3NzaWJsZSBpZiB0aGUgYnVp bHRpbiBpcwogICAgICAgIG5vdCB5ZXQgbG9hZGVkLiAgYGAtaWBgIHN1cHByZXNzZXMgdGhl IGVycm9yIGlmIHRoZSBidWlsdGluIGlzIGFscmVhZHkKICAgICAgICByZW1vdmVkIChvciBu ZXZlciBleGlzdGVkKS4KICAgICAgICAKICAgICAgICBBdXRvbG9hZCByZXF1ZXN0cyBhcmUg cmV0YWluZWQgaWYgdGhlIG1vZHVsZSBpcyBzdWJzZXF1ZW50bHkgdW5sb2FkZWQKICAgICAg ICB1bnRpbCBhbiBleHBsaWNpdCBgYHptb2Rsb2FkIC11YmBgIDp2YXI6YGJ1aWx0aW5gIGlz IGlzc3VlZC4KICAgICAgICAKICAgIAogICAgYGB6bW9kbG9hZGBgIGBgLWFjYGAgWyBgYC1J TGBgIF0KICAgIAogICAgYGB6bW9kbG9hZGBgIGBgLWFjYGAgWyBgYC1pSWBgIF0gOnZhcjpg bmFtZWAgWyA6dmFyOmBjb25kYCAuLi4gXQogICAgCiAgICBgYHptb2Rsb2FkYGAgYGAtdWNg YCBbIGBgLWlJYGAgXSA6dmFyOmBjb25kYCAuLi4KICAgICAgICAKICAgICAgICBUaGUgYGAt YWNgYCBvcHRpb24gaXMgdXNlZCB0byBkZWZpbmUgYXV0b2xvYWRlZCBjb25kaXRpb24gY29k ZXMuIFRoZQogICAgICAgIDp2YXI6YGNvbmRgIHN0cmluZ3MgZ2l2ZSB0aGUgbmFtZXMgb2Yg dGhlIGNvbmRpdGlvbnMgZGVmaW5lZCBieSB0aGUKICAgICAgICBtb2R1bGUuIFRoZSBvcHRp b25hbCBgYC1JYGAgb3B0aW9uIGlzIHVzZWQgdG8gZGVmaW5lIGluZml4IGNvbmRpdGlvbgog ICAgICAgIG5hbWVzLiBXaXRob3V0IHRoaXMgb3B0aW9uIHByZWZpeCBjb25kaXRpb24gbmFt ZXMgYXJlIGRlZmluZWQuCiAgICAgICAgCiAgICAgICAgSWYgZ2l2ZW4gbm8gY29uZGl0aW9u IG5hbWVzLCBhbGwgZGVmaW5lZCBuYW1lcyBhcmUgbGlzdGVkIChhcyBhIHNlcmllcyBvZgog ICAgICAgIGBgem1vZGxvYWRgYCBjb21tYW5kcyBpZiB0aGUgYGAtTGBgIG9wdGlvbiBpcyBn aXZlbikuCiAgICAgICAgCiAgICAgICAgVGhlIGBgLXVjYGAgb3B0aW9uIHJlbW92ZXMgZGVm aW5pdGlvbnMgZm9yIGF1dG9sb2FkZWQgY29uZGl0aW9ucy4KICAgICAgICAKICAgIAogICAg YGB6bW9kbG9hZGBgIGBgLWFwYGAgWyBgYC1MYGAgXQogICAgCiAgICBgYHptb2Rsb2FkYGAg YGAtYXBgYCBbIGBgLWlgYCBdIDp2YXI6YG5hbWVgIFsgOnZhcjpgcGFyYW1ldGVyYCAuLi4g XQogICAgCiAgICBgYHptb2Rsb2FkYGAgYGAtdXBgYCBbIGBgLWlgYCBdIDp2YXI6YHBhcmFt ZXRlcmAgLi4uCiAgICAgICAgCiAgICAgICAgVGhlIGBgLXBgYCBvcHRpb24gaXMgbGlrZSB0 aGUgYGAtYmBgIGFuZCBgYC1jYGAgb3B0aW9ucywgYnV0IG1ha2VzCiAgICAgICAgYGB6bW9k bG9hZGBgIHdvcmsgb24gYXV0b2xvYWRlZCBwYXJhbWV0ZXJzIGluc3RlYWQuCiAgICAgICAg CiAgICAKICAgIGBgem1vZGxvYWRgYCBgYC1hZmBgIFsgYGAtTGBgIF0KICAgIAogICAgYGB6 bW9kbG9hZGBgIGBgLWFmYGAgWyBgYC1pYGAgXSA6dmFyOmBuYW1lYCBbIDp2YXI6YGZ1bmN0 aW9uYCAuLi4gXQogICAgCiAgICBgYHptb2Rsb2FkYGAgYGAtdWZgYCBbIGBgLWlgYCBdIDp2 YXI6YGZ1bmN0aW9uYCAuLi4KICAgICAgICAKICAgICAgICBUaGUgYGAtZmBgIG9wdGlvbiBp cyBsaWtlIHRoZSBgYC1iYGAsIGBgLXBgYCwgYW5kIGBgLWNgYCBvcHRpb25zLCBidXQKICAg ICAgICBtYWtlcyBgYHptb2Rsb2FkYGAgd29yayBvbiBhdXRvbG9hZGVkIG1hdGggZnVuY3Rp b25zIGluc3RlYWQuIAogICAgICAgIAogICAgCiAgICBgYHptb2Rsb2FkYGAgYGAtYWBgIFsg YGAtTGBgIF0KICAgIAogICAgYGB6bW9kbG9hZGBgIGBgLWFgYCBbIGBgLWlgYCBdIDp2YXI6 YG5hbWVgIFsgOnZhcjpgYnVpbHRpbmAgLi4uIF0KICAgIAogICAgYGB6bW9kbG9hZGBgIGBg LXVhYGAgWyBgYC1pYGAgXSA6dmFyOmBidWlsdGluYCAuLi4KICAgICAgICAKICAgICAgICBF cXVpdmFsZW50IHRvIGBgLWFiYGAgYW5kIGBgLXViYGAuCiAgICAgICAgCiAgICAKICAgIGBg em1vZGxvYWQgLWVgYCBbIGBgLUFgYCBdIFsgOnZhcjpgc3RyaW5nYCAuLi4gXQogICAgICAg IAogICAgICAgIFRoZSBgYC1lYGAgb3B0aW9uIHdpdGhvdXQgYXJndW1lbnRzIGxpc3RzIGFs bCBsb2FkZWQgbW9kdWxlczsgaWYgdGhlIGBgLUFgYAogICAgICAgIG9wdGlvbiBpcyBhbHNv IGdpdmVuLCBtb2R1bGUgYWxpYXNlcyBjb3JyZXNwb25kaW5nIHRvIGxvYWRlZCBtb2R1bGVz IGFyZQogICAgICAgIGFsc28gc2hvd24uICBJZiBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLCBu b3RoaW5nIGlzIHByaW50ZWQ7CiAgICAgICAgdGhlIHJldHVybiBzdGF0dXMgaXMgc2V0IHRv IHplcm8gaWYgYWxsIDp2YXI6YHN0cmluZ2BccyBnaXZlbiBhcyBhcmd1bWVudHMKICAgICAg ICBhcmUgbmFtZXMgb2YgbG9hZGVkIG1vZHVsZXMgYW5kIHRvIG9uZSBpZiBhdCBsZWFzdCBv biA6dmFyOmBzdHJpbmdgIGlzIG5vdAogICAgICAgIHRoZSBuYW1lIG9mIGEgbG9hZGVkIG1v ZHVsZS4gIFRoaXMgY2FuIGJlIHVzZWQgdG8gdGVzdCBmb3IgdGhlCiAgICAgICAgYXZhaWxh YmlsaXR5IG9mIHRoaW5ncyBpbXBsZW1lbnRlZCBieSBtb2R1bGVzLiAgSW4gdGhpcyBjYXNl LCBhbnkKICAgICAgICBhbGlhc2VzIGFyZSBhdXRvbWF0aWNhbGx5IHJlc29sdmVkIGFuZCB0 aGUgYGAtQWBgIGZsYWcgaXMgbm90IHVzZWQuCiAgICAgICAgCiAgICAKICAgIGBgem1vZGxv YWRgYCBgYC1BYGAgWyBgYC1MYGAgXSBbIDp2YXI6YG1vZGFsaWFzYFxbYGA9YGA6dmFyOmBt b2R1bGVgXSAuLi4gXQogICAgICAgIAogICAgICAgIEZvciBlYWNoIGFyZ3VtZW50LCBpZiBi b3RoIDp2YXI6YG1vZGFsaWFzYCBhbmQgOnZhcjpgbW9kdWxlYCBhcmUgZ2l2ZW4sCiAgICAg ICAgZGVmaW5lIDp2YXI6YG1vZGFsaWFzYCB0byBiZSBhbiBhbGlhcyBmb3IgdGhlIG1vZHVs ZSA6dmFyOmBtb2R1bGVgLgogICAgICAgIElmIHRoZSBtb2R1bGUgOnZhcjpgbW9kYWxpYXNg IGlzIGV2ZXIgc3Vic2VxdWVudGx5IHJlcXVlc3RlZCwgZWl0aGVyIHZpYSBhCiAgICAgICAg Y2FsbCB0byBgYHptb2Rsb2FkYGAgb3IgaW1wbGljaXRseSwgdGhlIHNoZWxsIHdpbGwgYXR0 ZW1wdCB0byBsb2FkCiAgICAgICAgOnZhcjpgbW9kdWxlYCBpbnN0ZWFkLiAgSWYgOnZhcjpg bW9kdWxlYCBpcyBub3QgZ2l2ZW4sIHNob3cgdGhlIGRlZmluaXRpb24gb2YKICAgICAgICA6 dmFyOmBtb2RhbGlhc2AuICBJZiBubyBhcmd1bWVudHMgYXJlIGdpdmVuLCBsaXN0IGFsbCBk ZWZpbmVkIG1vZHVsZSBhbGlhc2VzLgogICAgICAgIFdoZW4gbGlzdGluZywgaWYgdGhlIGBg LUxgYCBmbGFnIHdhcyBhbHNvIGdpdmVuLCBsaXN0IHRoZSBkZWZpbml0aW9uIGFzIGEKICAg ICAgICBgYHptb2Rsb2FkYGAgY29tbWFuZCB0byByZWNyZWF0ZSB0aGUgYWxpYXMuCiAgICAg ICAgCiAgICAgICAgVGhlIGV4aXN0ZW5jZSBvZiBhbGlhc2VzIGZvciBtb2R1bGVzIGlzIGNv bXBsZXRlbHkgaW5kZXBlbmRlbnQgb2Ygd2hldGhlcgogICAgICAgIHRoZSBuYW1lIHJlc29s dmVkIGlzIGFjdHVhbGx5IGxvYWRlZCBhcyBhIG1vZHVsZTogd2hpbGUgdGhlIGFsaWFzIGV4 aXN0cywKICAgICAgICBsb2FkaW5nIGFuZCB1bmxvYWRpbmcgdGhlIG1vZHVsZSB1bmRlciBh bnkgYWxpYXMgaGFzIGV4YWN0bHkgdGhlIHNhbWUKICAgICAgICBlZmZlY3QgYXMgdXNpbmcg dGhlIHJlc29sdmVkIG5hbWUsIGFuZCBkb2VzIG5vdCBhZmZlY3QgdGhlIGNvbm5lY3Rpb24K ICAgICAgICBiZXR3ZWVuIHRoZSBhbGlhcyBhbmQgdGhlIHJlc29sdmVkIG5hbWUgd2hpY2gg Y2FuIGJlIHJlbW92ZWQgZWl0aGVyIGJ5CiAgICAgICAgYGB6bW9kbG9hZCAtUmBgIG9yIGJ5 IHJlZGVmaW5pbmcgdGhlIGFsaWFzLiAgQ2hhaW5zIG9mIGFsaWFzZXMgKGkuZS4gd2hlcmUK ICAgICAgICB0aGUgZmlyc3QgcmVzb2x2ZWQgbmFtZSBpcyBpdHNlbGYgYW4gYWxpYXMpIGFy ZSB2YWxpZCBzbyBsb25nIGFzIHRoZXNlIGFyZQogICAgICAgIG5vdCBjaXJjdWxhci4gIEFz IHRoZSBhbGlhc2VzIHRha2UgdGhlIHNhbWUgZm9ybWF0IGFzIG1vZHVsZSBuYW1lcywgdGhl eQogICAgICAgIG1heSBpbmNsdWRlIHBhdGggc2VwYXJhdG9yczogIGluIHRoaXMgY2FzZSwg dGhlcmUgaXMgbm8gcmVxdWlyZW1lbnQgZm9yIGFueQogICAgICAgIHBhcnQgb2YgdGhlIHBh dGggbmFtZWQgdG8gZXhpc3QgYXMgdGhlIGFsaWFzIHdpbGwgYmUgcmVzb2x2ZWQgZmlyc3Qu ICBGb3IKICAgICAgICBleGFtcGxlLCBgYGFueS9vbGQvYWxpYXNgYCBpcyBhbHdheXMgYSB2 YWxpZCBhbGlhcy4KICAgICAgICAKICAgICAgICBEZXBlbmRlbmNpZXMgYWRkZWQgdG8gYWxp YXNlZCBtb2R1bGVzIGFyZSBhY3R1YWxseSBhZGRlZCB0byB0aGUgcmVzb2x2ZWQKICAgICAg ICBtb2R1bGU7IHRoZXNlIHJlbWFpbiBpZiB0aGUgYWxpYXMgaXMgcmVtb3ZlZC4gIEl0IGlz IHZhbGlkIHRvIGNyZWF0ZSBhbgogICAgICAgIGFsaWFzIHdob3NlIG5hbWUgaXMgb25lIG9m IHRoZSBzdGFuZGFyZCBzaGVsbCBtb2R1bGVzIGFuZCB3aGljaCByZXNvbHZlcyB0bwogICAg ICAgIGEgZGlmZmVyZW50IG1vZHVsZS4gIEhvd2V2ZXIsIGlmIGEgbW9kdWxlIGhhcyBkZXBl bmRlbmNpZXMsIGl0CiAgICAgICAgd2lsbCBub3QgYmUgcG9zc2libGUgdG8gdXNlIHRoZSBt b2R1bGUgbmFtZSBhcyBhbiBhbGlhcyBhcyB0aGUgbW9kdWxlIHdpbGwKICAgICAgICBhbHJl YWR5IGJlIG1hcmtlZCBhcyBhIGxvYWRhYmxlIG1vZHVsZSBpbiBpdHMgb3duIHJpZ2h0Lgog ICAgICAgIAogICAgICAgIEFwYXJ0IGZyb20gdGhlIGFib3ZlLCBhbGlhc2VzIGNhbiBiZSB1 c2VkIGluIHRoZSBgYHptb2Rsb2FkYGAgY29tbWFuZAogICAgICAgIGFueXdoZXJlIG1vZHVs ZSBuYW1lcyBhcmUgcmVxdWlyZWQuICBIb3dldmVyLCBhbGlhc2VzIHdpbGwgbm90IGJlCiAg ICAgICAgc2hvd24gaW4gbGlzdHMgb2YgbG9hZGVkIG1vZHVsZXMgd2l0aCBhIGJhcmUgYGB6 bW9kbG9hZGBgLgogICAgICAgIAogICAgCiAgICBgYHptb2Rsb2FkYGAgYGAtUmBgIDp2YXI6 YG1vZGFsaWFzYCAuLi4KICAgICAgICAKICAgICAgICBGb3IgZWFjaCA6dmFyOmBtb2RhbGlh c2AgYXJndW1lbnQgdGhhdCB3YXMgcHJldmlvdXNseSBkZWZpbmVkIGFzIGEgbW9kdWxlCiAg ICAgICAgYWxpYXMgdmlhIGBgem1vZGxvYWQgLUFgYCwgZGVsZXRlIHRoZSBhbGlhcy4gIElm IGFueSB3YXMgbm90IGRlZmluZWQsIGFuCiAgICAgICAgZXJyb3IgaXMgY2F1c2VkIGFuZCB0 aGUgcmVtYWluZGVyIG9mIHRoZSBsaW5lIGlzIGlnbm9yZWQuCiAgICAgICAgCiAgICAKICAg IAogICAgCiAgICBOb3RlIHRoYXQgYGB6c2hgYCBtYWtlcyBubyBkaXN0aW5jdGlvbiBiZXR3 ZWVuIG1vZHVsZXMgdGhhdCB3ZXJlIGxpbmtlZCAKICAgIGludG8gdGhlIHNoZWxsIGFuZCBt b2R1bGVzIHRoYXQgYXJlIGxvYWRlZCBkeW5hbWljYWxseS4gSW4gYm90aCBjYXNlcwogICAg dGhpcyBidWlsdGluIGNvbW1hbmQgaGFzIHRvIGJlIHVzZWQgdG8gbWFrZSBhdmFpbGFibGUg dGhlIGJ1aWx0aW5zIGFuZAogICAgb3RoZXIgdGhpbmdzIGRlZmluZWQgYnkgbW9kdWxlcyAo dW5sZXNzIHRoZSBtb2R1bGUgaXMgYXV0b2xvYWRlZCBvbgogICAgdGhlc2UgZGVmaW5pdGlv bnMpLiBUaGlzIGlzIHRydWUgZXZlbiBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQK ICAgIGR5bmFtaWMgbG9hZGluZyBvZiBtb2R1bGVzLgogICAgCgpgYHpwYXJzZW9wdHNgYAog ICAgCiAgICBTZWUgOnJlZjpgVGhlIHpzaC96dXRpbCBNb2R1bGVgLgogICAgCgpgYHpwcm9m YGAKICAgIAogICAgU2VlIDpyZWY6YFRoZSB6c2gvenByb2YgTW9kdWxlYC4KICAgIAoKYGB6 cHR5YGAKICAgIAogICAgU2VlIDpyZWY6YFRoZSB6c2gvenB0eSBNb2R1bGVgLgogICAgCgpg YHpyZWdleHBhcnNlYGAKICAgIAogICAgU2VlIDpyZWY6YFRoZSB6c2gvenV0aWwgTW9kdWxl YC4KICAgIAoKYGB6c29ja2V0YGAKICAgIAogICAgU2VlIDpyZWY6YFRoZSB6c2gvbmV0L3Nv Y2tldCBNb2R1bGVgLgogICAgCgpgYHpzdHlsZWBgCiAgICAKICAgIFNlZSA6cmVmOmBUaGUg enNoL3p1dGlsIE1vZHVsZWAuCiAgICAKCmBgenRjcGBgCiAgICAKICAgIFNlZSA6cmVmOmBU aGUgenNoL25ldC90Y3AgTW9kdWxlYC4KICAgIAoK --------------o3m0dWJvu0nmtjlzoa11pQQa Content-Type: text/plain; charset=UTF-8; name="zshbuiltins.1" Content-Disposition: attachment; filename="zshbuiltins.1" Content-Transfer-Encoding: base64 LlwiIE1hbiBwYWdlIGdlbmVyYXRlZCBmcm9tIHJlU3RydWN0dXJlZFRleHQuCi4KLgoubnIg cnN0Mm1hbi1pbmRlbnQtbGV2ZWwgMAouCi5kZTEgcnN0UmVwb3J0TWFyZ2luClxcJDEgXFxu W2FuLW1hcmdpbl0KbGV2ZWwgXFxuW3JzdDJtYW4taW5kZW50LWxldmVsXQpsZXZlbCBtYXJn aW46IFxcbltyc3QybWFuLWluZGVudFxcbltyc3QybWFuLWluZGVudC1sZXZlbF1dCi0KXFxu W3JzdDJtYW4taW5kZW50MF0KXFxuW3JzdDJtYW4taW5kZW50MV0KXFxuW3JzdDJtYW4taW5k ZW50Ml0KLi4KLmRlMSBJTkRFTlQKLlwiIC5yc3RSZXBvcnRNYXJnaW4gcHJlOgouIFJTIFxc JDEKLiBuciByc3QybWFuLWluZGVudFxcbltyc3QybWFuLWluZGVudC1sZXZlbF0gXFxuW2Fu LW1hcmdpbl0KLiBuciByc3QybWFuLWluZGVudC1sZXZlbCArMQouXCIgLnJzdFJlcG9ydE1h cmdpbiBwb3N0OgouLgouZGUgVU5JTkRFTlQKLiBSRQouXCIgaW5kZW50IFxcblthbi1tYXJn aW5dCi5cIiBvbGQ6IFxcbltyc3QybWFuLWluZGVudFxcbltyc3QybWFuLWluZGVudC1sZXZl bF1dCi5uciByc3QybWFuLWluZGVudC1sZXZlbCAtMQouXCIgbmV3OiBcXG5bcnN0Mm1hbi1p bmRlbnRcXG5bcnN0Mm1hbi1pbmRlbnQtbGV2ZWxdXQouaW4gXFxuW3JzdDJtYW4taW5kZW50 XFxuW3JzdDJtYW4taW5kZW50LWxldmVsXV11Ci4uCi5USCAiWlNIQlVJTFRJTlMiICIxIiAi SnVsIDMxLCAyMDI2IiAiNS45Ljk5OS4zIiAiWnNoIgouU0ggTkFNRQp6c2hidWlsdGlucyBc LSB6c2ggYnVpbHQtaW4gY29tbWFuZHMKLlNIIFNIRUxMIEJVSUxUSU4gQ09NTUFORFMKLnNw ClNvbWUgc2hlbGwgYnVpbHRpbiBjb21tYW5kcyB0YWtlIG9wdGlvbnMgYXMgZGVzY3JpYmVk IGluIGluZGl2aWR1YWwKZW50cmllczsgdGhlc2UgYXJlIG9mdGVuIHJlZmVycmVkIHRvIGlu IHRoZSBsaXN0IGJlbG93IGFzIFxmQmZsYWdzXGZQIHRvCmF2b2lkIGNvbmZ1c2lvbiB3aXRo IHNoZWxsIG9wdGlvbnMsIHdoaWNoIG1heSBhbHNvIGhhdmUgYW4gZWZmZWN0IG9uIHRoZQpi ZWhhdmlvdXIgb2YgYnVpbHRpbiBjb21tYW5kcy4gIEluIHRoaXMgaW50cm9kdWN0b3J5IHNl Y3Rpb24sClxmQm9wdGlvblxmUCBhbHdheXMgaGFzIHRoZSBtZWFuaW5nIG9mIGFuIG9wdGlv biB0byBhIGNvbW1hbmQgdGhhdCBzaG91bGQKYmUgZmFtaWxpYXIgdG8gbW9zdCBjb21tYW5k IGxpbmUgdXNlcnMuCi5zcApUeXBpY2FsbHksIG9wdGlvbnMgYXJlIHNpbmdsZSBsZXR0ZXJz IHByZWNlZGVkIGJ5IGEgaHlwaGVuIChcZkJcLVxmUCkuCk9wdGlvbnMgdGhhdCB0YWtlIGFu IGFyZ3VtZW50IGFjY2VwdCBpdCBlaXRoZXIgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZQpv cHRpb24gbGV0dGVyIG9yIGFmdGVyIHdoaXRlIHNwYWNlLCBmb3IgZXhhbXBsZSBcZkJwcmlu dCBcLUMzIHsxLi45fVxmUCBvcgpcZkJwcmludCBcLUMgMyB7MS4uOX1cZlAgYXJlIGVxdWl2 YWxlbnQuICBBcmd1bWVudHMgdG8gb3B0aW9ucyBhcmUgbm90IHRoZQpzYW1lIGFzIGFyZ3Vt ZW50cyB0byB0aGUgY29tbWFuZDsgdGhlIGRvY3VtZW50YXRpb24gaW5kaWNhdGVzIHdoaWNo IGlzCndoaWNoLiAgT3B0aW9ucyB0aGF0IGRvIG5vdCB0YWtlIGFuIGFyZ3VtZW50IG1heSBi ZSBjb21iaW5lZCBpbiBhIHNpbmdsZQp3b3JkLCBmb3IgZXhhbXBsZSBcZkJwcmludCBcLXJj YSBcLVwtICpcZlAgYW5kIFxmQnByaW50IFwtciBcLWMgXC1hIFwtXC0gKlxmUCBhcmUKZXF1 aXZhbGVudC4KLnNwClNvbWUgc2hlbGwgYnVpbHRpbiBjb21tYW5kcyBhbHNvIHRha2Ugb3B0 aW9ucyB0aGF0IGJlZ2luIHdpdGggXGZCK1xmUAppbnN0ZWFkIG9mIFxmQlwtXGZQXCYuICBU aGUgbGlzdCBiZWxvdyBtYWtlcyBjbGVhciB3aGljaCBjb21tYW5kcyB0aGVzZQphcmUuCi5z cApPcHRpb25zICh0b2dldGhlciB3aXRoIHRoZWlyIGluZGl2aWR1YWwgYXJndW1lbnRzLCBp ZiBhbnkpIG11c3QgYXBwZWFyCmluIGEgZ3JvdXAgYmVmb3JlIGFueSBub25cLW9wdGlvbiBh cmd1bWVudHM7IG9uY2UgdGhlIGZpcnN0IG5vblwtb3B0aW9uCmFyZ3VtZW50IGhhcyBiZWVu IGZvdW5kLCBvcHRpb24gcHJvY2Vzc2luZyBpcyB0ZXJtaW5hdGVkLgouc3AKQWxsIGJ1aWx0 aW4gY29tbWFuZHMgb3RoZXIgdGhhbiBcZkJlY2hvXGZQIGFuZCBwcmVjb21tYW5kIG1vZGlm aWVycywKZXZlbiB0aG9zZSB0aGF0IGhhdmUgbm8gb3B0aW9ucywgY2FuIGJlIGdpdmVuIHRo ZSBhcmd1bWVudCBcZkJcLVxmUFxmQlwtXGZQCnRvIHRlcm1pbmF0ZSBvcHRpb24gcHJvY2Vz c2luZy4gIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIGZvbGxvd2luZyB3b3JkcwphcmUgbm9u XC1vcHRpb24gYXJndW1lbnRzLCBidXQgaXMgb3RoZXJ3aXNlIGlnbm9yZWQuICBUaGlzIGlz IHVzZWZ1bCBpbgpjYXNlcyB3aGVyZSBhcmd1bWVudHMgdG8gdGhlIGNvbW1hbmQgbWF5IGJl Z2luIHdpdGggXGZCXC1cZlBcJi4gIEZvcgpoaXN0b3JpY2FsIHJlYXNvbnMsIG1vc3QgYnVp bHRpbiBjb21tYW5kcyAoaW5jbHVkaW5nIFxmQmVjaG9cZlApIGFsc28KcmVjb2duaXplIGEg c2luZ2xlIFxmQlwtXGZQIGluIGEgc2VwYXJhdGUgd29yZCBmb3IgdGhpcyBwdXJwb3NlOyBu b3RlCnRoYXQgdGhpcyBpcyBsZXNzIHN0YW5kYXJkIGFuZCB1c2Ugb2YgXGZCXC1cZlBcZkJc LVxmUCBpcyByZWNvbW1lbmRlZC4KLnNwClxmQlwtXGZQIFxmSXNpbXBsZSBjb21tYW5kXGZQ Ci5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClNlZSBQcmVjb21tYW5kIE1vZGlmaWVyc1wmLgou VU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcJi5cZlAgXGZJZmlsZVxmUCBbIFxmSWFyZ1xm UCAuLi4gXQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpSZWFkIGNvbW1hbmRzIGZyb20gXGZJ ZmlsZVxmUCBhbmQgZXhlY3V0ZSB0aGVtIGluIHRoZSBjdXJyZW50IHNoZWxsCmVudmlyb25t ZW50Lgouc3AKSWYgXGZJZmlsZVxmUCBkb2VzIG5vdCBjb250YWluIGEgc2xhc2gsIG9yIGlm IFxmQlBBVEhfRElSU1xmUCBpcyBzZXQsCnRoZSBzaGVsbCBsb29rcyBpbiB0aGUgY29tcG9u ZW50cyBvZiBcZkIkcGF0aFxmUCB0byBmaW5kIHRoZSBkaXJlY3RvcnkKY29udGFpbmluZyBc ZklmaWxlXGZQXCYuICBGaWxlcyBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkgYXJlIG5vdCBy ZWFkCnVubGVzcyBcZkJcJi5cZlAgYXBwZWFycyBzb21ld2hlcmUgaW4gXGZCJHBhdGhcZlBc Ji4gIElmIGEgZmlsZSBuYW1lZApcZklmaWxlXGZQXGZCXCYuendjXGZQIGlzIGZvdW5kLCBp cyBuZXdlciB0aGFuIFxmSWZpbGVcZlAsIGFuZCBpcyB0aGUKY29tcGlsZWQgZm9ybSAoY3Jl YXRlZCB3aXRoIHRoZSBcZkJ6Y29tcGlsZVxmUCBidWlsdGluKSBvZiBcZklmaWxlXGZQLAp0 aGVuIGNvbW1hbmRzIGFyZSByZWFkIGZyb20gdGhhdCBmaWxlIGluc3RlYWQgb2YgXGZJZmls ZVxmUFwmLgouc3AKSWYgYW55IGFyZ3VtZW50cyBcZklhcmdcZlAgYXJlIGdpdmVuLAp0aGV5 IGJlY29tZSB0aGUgcG9zaXRpb25hbCBwYXJhbWV0ZXJzOyB0aGUgb2xkIHBvc2l0aW9uYWwK cGFyYW1ldGVycyBhcmUgcmVzdG9yZWQgd2hlbiB0aGUgXGZJZmlsZVxmUCBpcyBkb25lIGV4 ZWN1dGluZy4KSG93ZXZlciwgaWYgbm8gYXJndW1lbnRzIGFyZSBnaXZlbiwKdGhlIHBvc2l0 aW9uYWwgcGFyYW1ldGVycyByZW1haW4gdGhvc2Ugb2YgdGhlIGNhbGxpbmcgY29udGV4dCwK YW5kIG5vIHJlc3RvcmluZyBpcyBkb25lLgouc3AKSWYgXGZJZmlsZVxmUCB3YXMgbm90IGZv dW5kIHRoZSByZXR1cm4gc3RhdHVzIGlzIDEyNzsgaWYgXGZJZmlsZVxmUCB3YXMgZm91bmQK YnV0IGNvbnRhaW5lZCBhIHN5bnRheCBlcnJvciB0aGUgcmV0dXJuIHN0YXR1cyBpcyAxMjY7 IGVsc2UgdGhlIHJldHVybgpzdGF0dXMgaXMgdGhlIGV4aXQgc3RhdHVzIG9mIHRoZSBsYXN0 IGNvbW1hbmQgZXhlY3V0ZWQuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQjpcZlAgWyBc ZklhcmdcZlAgLi4uIF0KLklOREVOVCAwLjAKLklOREVOVCAzLjUKVGhpcyBjb21tYW5kIGRv ZXMgbm90aGluZywgYWx0aG91Z2ggbm9ybWFsIGFyZ3VtZW50IGV4cGFuc2lvbnMgaXMgcGVy Zm9ybWVkCndoaWNoIG1heSBoYXZlIGVmZmVjdHMgb24gc2hlbGwgcGFyYW1ldGVycy4gIEEg emVybyBleGl0IHN0YXR1cyBpcyByZXR1cm5lZC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AK XGZCYWxpYXNcZlAgWyB7XGZCK3xcLX1nbXJzTFxmUCBdIFsgXGZJbmFtZVxmUFtcZkI9XGZQ XGZJdmFsdWVcZlBdIC4uLiBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkZvciBlYWNoIFxm SW5hbWVcZlAgd2l0aCBhIGNvcnJlc3BvbmRpbmcgXGZJdmFsdWVcZlAsIGRlZmluZSBhbiBh bGlhcwp3aXRoIHRoYXQgdmFsdWUuICBBIHRyYWlsaW5nIHNwYWNlIGluIFxmSXZhbHVlXGZQ IGNhdXNlcyB0aGUgbmV4dCB3b3JkCnRvIGJlIGNoZWNrZWQgZm9yIGFsaWFzIGV4cGFuc2lv bi4gIElmIHRoZSBcZkJcLWdcZlAgZmxhZyBpcyBwcmVzZW50LApkZWZpbmUgYSBnbG9iYWwg YWxpYXM7IGdsb2JhbCBhbGlhc2VzIGFyZSBleHBhbmRlZCBldmVuIGlmIHRoZXkgZG8gbm90 Cm9jY3VyIGluIGNvbW1hbmQgcG9zaXRpb246Ci5JTkRFTlQgMC4wCi5JTkRFTlQgMy41Ci5z cAouRVgKICUgcGVybGRvYyBcLVwtaGVscCAyPiYxIHwgZ3JlcCBcKGFxYnVpbHRcLWluIGZ1 bmN0aW9uc1woYXEKICAgICBcLWYgICBTZWFyY2ggUGVybCBidWlsdFwtaW4gZnVuY3Rpb25z CiAlIGFsaWFzIFwtZyBIRz1cKGFxXC1cLWhlbHAgMj4mMSB8IGdyZXBcKGFxCiAlIHBlcmxk b2MgSEcgXChhcWJ1aWx0XC1pbiBmdW5jdGlvbnNcKGFxCiAgICAgXC1mICAgU2VhcmNoIFBl cmwgYnVpbHRcLWluIGZ1bmN0aW9ucwouRUUKLlVOSU5ERU5UCi5VTklOREVOVAouc3AKSWYg dGhlIFxmQlwtc1xmUCBmbGFnIGlzIHByZXNlbnQsIGRlZmluZSBhIHN1ZmZpeCBhbGlhczog aWYgdGhlIGNvbW1hbmQKd29yZCBvbiBhIGNvbW1hbmQgbGluZSBpcyBpbiB0aGUgZm9ybSBc Zkl0ZXh0XGZQXGZCXCYuXGZQXGZJbmFtZVxmUCwgd2hlcmUKXGZJdGV4dFxmUCBpcyBhbnkg bm9uXC1lbXB0eSBzdHJpbmcsIGl0IGlzIHJlcGxhY2VkIGJ5IHRoZSB0ZXh0ClxmSXZhbHVl XGZQIFxmSXRleHRcZlBcZkJcJi5cZlBcZkluYW1lXGZQXCYuICBOb3RlIHRoYXQgXGZJbmFt ZVxmUCBpcyB0cmVhdGVkIGFzCmEgbGl0ZXJhbCBzdHJpbmcsIG5vdCBhIHBhdHRlcm4uICBB IHRyYWlsaW5nIHNwYWNlIGluIFxmSXZhbHVlXGZQIGlzIG5vdApzcGVjaWFsIGluIHRoaXMg Y2FzZS4gIEZvciBleGFtcGxlLAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQouc3AKLkVYCiBh bGlhcyBcLXMgcHM9XChhcWd2IFwtXC1cKGFxCi5FRQouVU5JTkRFTlQKLlVOSU5ERU5UCi5z cAp3aWxsIGNhdXNlIHRoZSBjb21tYW5kIFxmQioucHNcZlAgdG8gYmUgZXhwYW5kZWQgdG8g XGZCZ3YgXC1cLSAqLnBzXGZQXCYuICBBcwphbGlhcyBleHBhbnNpb24gaXMgY2FycmllZCBv dXQgZWFybGllciB0aGFuIGdsb2JiaW5nLCB0aGUgXGZCKi5wc1xmUCB3aWxsCnRoZW4gYmUg ZXhwYW5kZWQuICBTdWZmaXggYWxpYXNlcyBjb25zdGl0dXRlIGEgZGlmZmVyZW50IG5hbWUg c3BhY2UgZnJvbQpvdGhlciBhbGlhc2VzIChzbyBpbiB0aGUgYWJvdmUgZXhhbXBsZSBpdCBp cyBzdGlsbCBwb3NzaWJsZQp0byBjcmVhdGUgYW4gYWxpYXMgZm9yIHRoZSBjb21tYW5kIFxm QnBzXGZQKSBhbmQgdGhlIHR3byBzZXRzIGFyZSBuZXZlcgpsaXN0ZWQgdG9nZXRoZXIuCi5z cApGb3IgZWFjaCBcZkluYW1lXGZQIHdpdGggbm8gXGZJdmFsdWVcZlAsCnByaW50IHRoZSB2 YWx1ZSBvZiBcZkluYW1lXGZQLCBpZiBhbnkuICBXaXRoIG5vIGFyZ3VtZW50cywgcHJpbnQg YWxsCmN1cnJlbnRseSBkZWZpbmVkIGFsaWFzZXMgb3RoZXIgdGhhbiBzdWZmaXggYWxpYXNl cy4gIElmIHRoZSBcZkJcLW1cZlAgZmxhZwppcyBnaXZlbiB0aGUgYXJndW1lbnRzIGFyZSB0 YWtlbiBhcyBwYXR0ZXJucyAodGhleSBzaG91bGQgYmUgcXVvdGVkIHRvCnByZXNlcnZlIHRo ZW0gZnJvbSBiZWluZyBpbnRlcnByZXRlZCBhcyBnbG9iIHBhdHRlcm5zKSwgYW5kIHRoZSBh bGlhc2VzCm1hdGNoaW5nIHRoZXNlIHBhdHRlcm5zIGFyZSBwcmludGVkLiAgV2hlbiBwcmlu dGluZyBhbGlhc2VzIGFuZCBvbmUgb2YKdGhlIFxmQlwtZ1xmUCwgXGZCXC1yXGZQIG9yIFxm Qlwtc1xmUCBmbGFncyBpcyBwcmVzZW50LCByZXN0cmljdCB0aGUgcHJpbnRpbmcgdG8KZ2xv YmFsLCByZWd1bGFyIG9yIHN1ZmZpeCBhbGlhc2VzLCByZXNwZWN0aXZlbHk7IGEgcmVndWxh ciBhbGlhcyBpcyBvbmUKd2hpY2ggaXMgbmVpdGhlciBhIGdsb2JhbCBub3IgYSBzdWZmaXgg YWxpYXMuICAgVXNpbmcgXGZCK1xmUAppbnN0ZWFkIG9mIFxmQlwtXGZQLCBvciBlbmRpbmcg dGhlIG9wdGlvbiBsaXN0IHdpdGggYSBzaW5nbGUKXGZCK1xmUCwgcHJldmVudHMgdGhlIHZh bHVlcyBvZiB0aGUgYWxpYXNlcyBmcm9tIGJlaW5nIHByaW50ZWQuCi5zcApJZiB0aGUgXGZC XC1MXGZQIGZsYWcgaXMgcHJlc2VudCwgdGhlbiBwcmludCBlYWNoCmFsaWFzIGluIGEgbWFu bmVyIHN1aXRhYmxlIGZvciBwdXR0aW5nIGluIGEgc3RhcnR1cCBzY3JpcHQuICBUaGUgZXhp dApzdGF0dXMgaXMgbm9uemVybyBpZiBhIFxmSW5hbWVcZlAgKHdpdGggbm8gXGZJdmFsdWVc ZlApIGlzIGdpdmVuIGZvcgp3aGljaCBubyBhbGlhcyBoYXMgYmVlbiBkZWZpbmVkLgouc3AK Rm9yIG1vcmUgb24gYWxpYXNlcywgaW5jbHVkaW5nIGNvbW1vbiBwcm9ibGVtcywKc2VlIEFs aWFzaW5nXCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQmF1dG9sb2FkXGZQIFsge1xm Qit8XC19UlRVWGRrbXJ0V3pcZlAgXSBbIFxmQlwtd1xmUCBdIFsgXGZJbmFtZVxmUCAuLi4g XQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpTZWUgQXV0b2xvYWRpbmcgRnVuY3Rpb25zCmZv ciBmdWxsIGRldGFpbHMuICBUaGUgXGZCZnBhdGhcZlAgcGFyYW1ldGVyCndpbGwgYmUgc2Vh cmNoZWQgdG8gZmluZCB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbiB3aGVuIHRoZSBmdW5jdGlv biBpcwpmaXJzdCByZWZlcmVuY2VkLgouc3AKSWYgXGZJbmFtZVxmUCBjb25zaXN0cyBvZiBh biBhYnNvbHV0ZSBwYXRoLCB0aGUgZnVuY3Rpb24gaXMgZGVmaW5lZCB0bwpsb2FkIGZyb20g dGhlIGZpbGUgZ2l2ZW4gKHNlYXJjaGluZyBhcyB1c3VhbCBmb3IgZHVtcCBmaWxlcyBpbiB0 aGUgZ2l2ZW4KbG9jYXRpb24pLiAgVGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIGlzIHRoZSBi YXNlbmFtZSAobm9uXC1kaXJlY3RvcnkKcGFydCkgb2YgdGhlIGZpbGUuICBJdCBpcyBub3Jt YWxseSBhbiBlcnJvciBpZiB0aGUgZnVuY3Rpb24gaXMgbm90IGZvdW5kCmluIHRoZSBnaXZl biBsb2NhdGlvbjsgaG93ZXZlciwgaWYgdGhlIG9wdGlvbiBcZkJcLWRcZlAgaXMgZ2l2ZW4s IHNlYXJjaGluZwpmb3IgdGhlIGZ1bmN0aW9uIGRlZmF1bHRzIHRvIFxmQiRmcGF0aFxmUFwm LiAgSWYgYSBmdW5jdGlvbiBpcyBsb2FkZWQgYnkKYWJzb2x1dGUgcGF0aCwgYW55IGZ1bmN0 aW9ucyBsb2FkZWQgZnJvbSBpdCB0aGF0IGFyZSBtYXJrZWQgZm9yClxmQmF1dG9sb2FkXGZQ IHdpdGhvdXQgYW4gYWJzb2x1dGUgcGF0aCBoYXZlIHRoZSBsb2FkIHBhdGggb2YgdGhlIHBh cmVudApmdW5jdGlvbiB0ZW1wb3JhcmlseSBwcmVwZW5kZWQgdG8gXGZCJGZwYXRoXGZQXCYu Ci5zcApJZiB0aGUgb3B0aW9uIFxmQlwtclxmUCBvciBcZkJcLVJcZlAgaXMgZ2l2ZW4sIHRo ZSBmdW5jdGlvbiBpcyBzZWFyY2hlZCBmb3IKaW1tZWRpYXRlbHkgYW5kIHRoZSBsb2NhdGlv biBpcyByZWNvcmRlZCBpbnRlcm5hbGx5IGZvciB1c2Ugd2hlbiB0aGUKZnVuY3Rpb24gaXMg ZXhlY3V0ZWQ7IGEgcmVsYXRpdmUgcGF0aCBpcyBleHBhbmRlZCB1c2luZyB0aGUgdmFsdWUg b2YKXGZCJFBXRFxmUFwmLiAgVGhpcyBwcm90ZWN0cyBhZ2FpbnN0IGEgY2hhbmdlIHRvIFxm QiRmcGF0aFxmUCBhZnRlciB0aGUgY2FsbAp0byBcZkJhdXRvbG9hZFxmUFwmLiAgV2l0aCBc ZkJcLXJcZlAsIGlmIHRoZSBmdW5jdGlvbiBpcyBub3QgZm91bmQsIGl0IGlzCnNpbGVudGx5 IGxlZnQgdW5yZXNvbHZlZCB1bnRpbCBleGVjdXRpb247IHdpdGggXGZCXC1SXGZQLCBhbiBl cnJvciBtZXNzYWdlCmlzIHByaW50ZWQgYW5kIGNvbW1hbmQgcHJvY2Vzc2luZyBhYm9ydGVk IGltbWVkaWF0ZWx5IHRoZSBzZWFyY2ggZmFpbHMsCmkuZS4gYXQgdGhlIFxmQmF1dG9sb2Fk XGZQIGNvbW1hbmQgcmF0aGVyIHRoYW4gYXQgZnVuY3Rpb24gZXhlY3V0aW9uLi4KLnNwClRo ZSBmbGFnIFxmQlwtWFxmUCBtYXkgYmUgdXNlZCBvbmx5IGluc2lkZSBhIHNoZWxsIGZ1bmN0 aW9uLiAgSXQgY2F1c2VzIHRoZQpjYWxsaW5nIGZ1bmN0aW9uIHRvIGJlIG1hcmtlZCBmb3Ig YXV0b2xvYWRpbmcgYW5kIHRoZW4gaW1tZWRpYXRlbHkKbG9hZGVkIGFuZCBleGVjdXRlZCwg d2l0aCB0aGUgY3VycmVudCBhcnJheSBvZiBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgYXMKYXJn dW1lbnRzLiAgVGhpcyByZXBsYWNlcyB0aGUgcHJldmlvdXMgZGVmaW5pdGlvbiBvZiB0aGUg ZnVuY3Rpb24uICBJZgpubyBmdW5jdGlvbiBkZWZpbml0aW9uIGlzIGZvdW5kLCBhbiBlcnJv ciBpcyBwcmludGVkIGFuZCB0aGUgZnVuY3Rpb24KcmVtYWlucyB1bmRlZmluZWQgYW5kIG1h cmtlZCBmb3IgYXV0b2xvYWRpbmcuICBJZiBhbiBhcmd1bWVudCBpcyBnaXZlbiwKaXQgaXMg dXNlZCBhcyBhIGRpcmVjdG9yeSAoaS5lLiBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSBuYW1l IG9mIHRoZQpmdW5jdGlvbikgaW4gd2hpY2ggdGhlIGZ1bmN0aW9uIGlzIHRvIGJlIGZvdW5k OyB0aGlzIG1heSBiZSBjb21iaW5lZAp3aXRoIHRoZSBcZkJcLWRcZlAgb3B0aW9uIHRvIGFs bG93IHRoZSBmdW5jdGlvbiBzZWFyY2ggdG8gZGVmYXVsdCB0byBcZkIkZnBhdGhcZlAKaWYg aXQgaXMgbm90IGluIHRoZSBnaXZlbiBsb2NhdGlvbi4KLnNwClRoZSBmbGFnIFxmQitYXGZQ IGF0dGVtcHRzIHRvIGxvYWQgZWFjaCBcZkluYW1lXGZQIGFzIGFuIGF1dG9sb2FkZWQgZnVu Y3Rpb24sCmJ1dCBkb2VzIFxmSW5vdFxmUCBleGVjdXRlIGl0LiAgVGhlIGV4aXQgc3RhdHVz IGlzIHplcm8gKHN1Y2Nlc3MpIGlmIHRoZQpmdW5jdGlvbiB3YXMgbm90IHByZXZpb3VzbHkg ZGVmaW5lZCBcZklhbmRcZlAgYSBkZWZpbml0aW9uIGZvciBpdCB3YXMgZm91bmQuClRoaXMg ZG9lcyBcZklub3RcZlAgcmVwbGFjZSBhbnkgZXhpc3RpbmcgZGVmaW5pdGlvbiBvZiB0aGUg ZnVuY3Rpb24uICBUaGUKZXhpdCBzdGF0dXMgaXMgbm9uemVybyAoZmFpbHVyZSkgaWYgdGhl IGZ1bmN0aW9uIHdhcyBhbHJlYWR5IGRlZmluZWQgb3IKd2hlbiBubyBkZWZpbml0aW9uIHdh cyBmb3VuZC4gIEluIHRoZSBsYXR0ZXIgY2FzZSB0aGUgZnVuY3Rpb24gcmVtYWlucwp1bmRl ZmluZWQgYW5kIG1hcmtlZCBmb3IgYXV0b2xvYWRpbmcuICBJZiBrc2hcLXN0eWxlIGF1dG9s b2FkaW5nIGlzCmVuYWJsZWQsIHRoZSBmdW5jdGlvbiBjcmVhdGVkIHdpbGwgY29udGFpbiB0 aGUgY29udGVudHMgb2YgdGhlIGZpbGUKcGx1cyBhIGNhbGwgdG8gdGhlIGZ1bmN0aW9uIGl0 c2VsZiBhcHBlbmRlZCB0byBpdCwgdGh1cyBnaXZpbmcgbm9ybWFsCmtzaCBhdXRvbG9hZGlu ZyBiZWhhdmlvdXIgb24gdGhlIGZpcnN0IGNhbGwgdG8gdGhlIGZ1bmN0aW9uLgpJZiB0aGUg XGZCXC1tXGZQIGZsYWcgaXMgYWxzbyBnaXZlbiBlYWNoIFxmSW5hbWVcZlAgaXMgdHJlYXRl ZCBhcyBhCnBhdHRlcm4gYW5kIGFsbCBmdW5jdGlvbnMgYWxyZWFkeSBtYXJrZWQgZm9yIGF1 dG9sb2FkIHRoYXQgbWF0Y2ggdGhlCnBhdHRlcm4gYXJlIGxvYWRlZC4KLnNwCldpdGggdGhl IFxmQlwtdFxmUCBmbGFnLCB0dXJuIG9uIGV4ZWN1dGlvbiB0cmFjaW5nOyB3aXRoIFxmQlwt VFxmUCwgdHVybiBvbgpleGVjdXRpb24gdHJhY2luZyBvbmx5IGZvciB0aGUgY3VycmVudCBm dW5jdGlvbiwgdHVybmluZyBpdCBvZmYgb24gZW50cnkKdG8gYW55IGNhbGxlZCBmdW5jdGlv bnMgdGhhdCBkbyBub3QgYWxzbyBoYXZlIHRyYWNpbmcgZW5hYmxlZC4KLnNwCldpdGggdGhl IFxmQlwtVVxmUCBmbGFnLCBhbGlhcyBleHBhbnNpb24gaXMgc3VwcHJlc3NlZCB3aGVuIHRo ZSBmdW5jdGlvbiBpcwpsb2FkZWQuCi5zcApXaXRoIHRoZSBcZkJcLXdcZlAgZmxhZywgdGhl IFxmSW5hbWVcZlBzIGFyZSB0YWtlbiBhcyBuYW1lcyBvZiBmaWxlcyBjb21waWxlZAp3aXRo IHRoZSBcZkJ6Y29tcGlsZVxmUCBidWlsdGluLCBhbmQgYWxsIGZ1bmN0aW9ucyBkZWZpbmVk IGluIHRoZW0gYXJlCm1hcmtlZCBmb3IgYXV0b2xvYWRpbmcuCi5zcApUaGUgZmxhZ3MgXGZC XC16XGZQIGFuZCBcZkJcLWtcZlAgbWFyayB0aGUgZnVuY3Rpb24gdG8gYmUgYXV0b2xvYWRl ZCB1c2luZyB0aGUKenNoIG9yIGtzaCBzdHlsZSwgYXMgaWYgdGhlIG9wdGlvbiBcZkJLU0hf QVVUT0xPQURcZlAgd2VyZSB1bnNldCBvciB3ZXJlCnNldCwgcmVzcGVjdGl2ZWx5LiAgVGhl IGZsYWdzIG92ZXJyaWRlIHRoZSBzZXR0aW5nIG9mIHRoZSBvcHRpb24gYXQgdGhlCnRpbWUg dGhlIGZ1bmN0aW9uIGlzIGxvYWRlZC4KLnNwCk5vdGUgdGhhdCB0aGUgXGZCYXV0b2xvYWRc ZlAgY29tbWFuZCBtYWtlcyBubyBhdHRlbXB0IHRvIGVuc3VyZSB0aGUKc2hlbGwgb3B0aW9u cyBzZXQgZHVyaW5nIHRoZSBsb2FkaW5nIG9yIGV4ZWN1dGlvbiBvZiB0aGUgZmlsZSBoYXZl CmFueSBwYXJ0aWN1bGFyIHZhbHVlLiAgRm9yIHRoaXMsIHRoZSBcZkJlbXVsYXRlXGZQIGNv bW1hbmQgY2FuIGJlIHVzZWQ6Ci5JTkRFTlQgMC4wCi5JTkRFTlQgMy41Ci5zcAouRVgKIGVt dWxhdGUgenNoIFwtYyBcKGFxYXV0b2xvYWQgXC1VeiBcZklmdW5jXGZQXChhcQouRUUKLlVO SU5ERU5UCi5VTklOREVOVAouc3AKYXJyYW5nZXMgdGhhdCB3aGVuIFxmSWZ1bmNcZlAgaXMg bG9hZGVkIHRoZSBzaGVsbCBpcyBpbiBuYXRpdmUgXGZCenNoXGZQCmVtdWxhdGlvbiwgYW5k IHRoaXMgZW11bGF0aW9uIGlzIGFsc28gYXBwbGllZCB3aGVuIFxmSWZ1bmNcZlAgaXMgcnVu Lgouc3AKU29tZSBvZiB0aGUgZnVuY3Rpb25zIG9mIFxmQmF1dG9sb2FkXGZQIGFyZSBhbHNv IHByb3ZpZGVkIGJ5IFxmQmZ1bmN0aW9ucwpcLXUgXChnYVwoZ2FvclxmUCBmdW5jdGlvbnMg XC1VXChnYVwoZ2EsIGJ1dFwoZ2FcKGdhIGF1dG9sb2FkXChnYVwoZ2EgaXMgYSBtb3JlIGNv bXByZWhlbnNpdmUKaW50ZXJmYWNlLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJiZ1xm UCBbIFxmSWpvYlxmUCAuLi4gXQouc3AKXGZJam9iXGZQIC4uLiBcZkImXGZQCi5JTkRFTlQg MC4wCi5JTkRFTlQgMy41ClB1dCBlYWNoIHNwZWNpZmllZCBcZklqb2JcZlAgaW4gdGhlIGJh Y2tncm91bmQsCm9yIHRoZSBjdXJyZW50IGpvYiBpZiBub25lIGlzIHNwZWNpZmllZC4KLlVO SU5ERU5UCi5VTklOREVOVAouc3AKXGZCYmluZGtleVxmUAouSU5ERU5UIDAuMAouSU5ERU5U IDMuNQpTZWUgWmxlIEJ1aWx0aW5zXCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQmJy ZWFrXGZQIFsgXGZJblxmUCBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkV4aXQgZnJvbSBh biBlbmNsb3NpbmcgXGZCZm9yXGZQLCBcZkJ3aGlsZVxmUCwKXGZCdW50aWxcZlAsIFxmQnNl bGVjdFxmUCBvciBcZkJyZXBlYXRcZlAgbG9vcC4gSWYgYW4gYXJpdGhtZXRpYyBleHByZXNz aW9uIFxmSW5cZlAKaXMgc3BlY2lmaWVkLCB0aGVuIGJyZWFrIFxmSW5cZlAgbGV2ZWxzIGlu c3RlYWQgb2YganVzdCBvbmUuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQmJ1aWx0aW5c ZlAgXGZJbmFtZVxmUCBbIFxmSWFyZ3NcZlAgLi4uIF0KLklOREVOVCAwLjAKLklOREVOVCAz LjUKRXhlY3V0ZXMgdGhlIGJ1aWx0aW4gXGZJbmFtZVxmUCwgd2l0aCB0aGUgZ2l2ZW4gXGZJ YXJnc1xmUFwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJieWVcZlAKLklOREVOVCAw LjAKLklOREVOVCAzLjUKU2FtZSBhcyBcZkJleGl0XGZQXCYuCi5VTklOREVOVAouVU5JTkRF TlQKLnNwClxmQmNhcFxmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpTZWUgVGhlIHpzaC9j YXAgTW9kdWxlXCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQmNkXGZQIFsgXGZCXC1x c0xQXGZQIF0gWyBcZklhcmdcZlAgXQouc3AKXGZCY2RcZlAgWyBcZkJcLXFzTFBcZlAgXSBc ZklvbGRcZlAgXGZJbmV3XGZQCi5zcApcZkJjZFxmUCBbIFxmQlwtcXNMUFxmUCBdIHtcZkIr fFwtXGZQfTp2YXI6XGZJblxmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpDaGFuZ2UgdGhl IGN1cnJlbnQgZGlyZWN0b3J5LiAgSW4gdGhlIGZpcnN0IGZvcm0sIGNoYW5nZSB0aGUKY3Vy cmVudCBkaXJlY3RvcnkgdG8gXGZJYXJnXGZQLCBvciB0byB0aGUgdmFsdWUgb2YgXGZCJEhP TUVcZlAgaWYKXGZJYXJnXGZQIGlzIG5vdCBzcGVjaWZpZWQuICBJZiBcZklhcmdcZlAgaXMg XGZCXC1cZlAsIGNoYW5nZSB0byB0aGUKcHJldmlvdXMgZGlyZWN0b3J5Lgouc3AKT3RoZXJ3 aXNlLCBpZiBcZklhcmdcZlAgYmVnaW5zIHdpdGggYSBzbGFzaCwgYXR0ZW1wdCB0byBjaGFu Z2UgdG8gdGhlCmRpcmVjdG9yeSBnaXZlbiBieSBcZklhcmdcZlBcJi4KLnNwCklmIFxmSWFy Z1xmUCBkb2VzIG5vdCBiZWdpbiB3aXRoIGEgc2xhc2gsIHRoZSBiZWhhdmlvdXIgZGVwZW5k cyBvbiB3aGV0aGVyCnRoZSBjdXJyZW50IGRpcmVjdG9yeSBcZkJcJi5cZlAgb2NjdXJzIGlu IHRoZSBsaXN0IG9mIGRpcmVjdG9yaWVzIGNvbnRhaW5lZAppbiB0aGUgc2hlbGwgcGFyYW1l dGVyIFxmQmNkcGF0aFxmUFwmLiAgSWYgaXQgZG9lcyBub3QsIGZpcnN0IGF0dGVtcHQgdG8g Y2hhbmdlCnRvIHRoZSBkaXJlY3RvcnkgXGZJYXJnXGZQIHVuZGVyIHRoZSBjdXJyZW50IGRp cmVjdG9yeSwgYW5kIGlmIHRoYXQgZmFpbHMKYnV0IFxmQmNkcGF0aFxmUCBpcyBzZXQgYW5k IGNvbnRhaW5zIGF0IGxlYXN0IG9uZSBlbGVtZW50IGF0dGVtcHQgdG8gY2hhbmdlCnRvIHRo ZSBkaXJlY3RvcnkgXGZJYXJnXGZQIHVuZGVyIGVhY2ggY29tcG9uZW50IG9mIFxmQmNkcGF0 aFxmUCBpbiB0dXJuIHVudGlsCnN1Y2Nlc3NmdWwuICBJZiBcZkJcJi5cZlAgb2NjdXJzIGlu IFxmQmNkcGF0aFxmUCwgdGhlbiBcZkJjZHBhdGhcZlAgaXMgc2VhcmNoZWQKc3RyaWN0bHkg aW4gb3JkZXIgc28gdGhhdCBcZkJcJi5cZlAgaXMgb25seSB0cmllZCBhdCB0aGUgYXBwcm9w cmlhdGUgcG9pbnQuCi5zcApUaGUgb3JkZXIgb2YgdGVzdGluZyBcZkJjZHBhdGhcZlAgaXMg bW9kaWZpZWQgaWYgdGhlIG9wdGlvbiBcZkJQT1NJWF9DRFxmUAppcyBzZXQsIGFzIGRlc2Ny aWJlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIG9wdGlvbi4KLnNwCklmIG5vIGRp cmVjdG9yeSBpcyBmb3VuZCwgdGhlIG9wdGlvbiBcZkJDREFCTEVfVkFSU1xmUCBpcyBzZXQs IGFuZCBhCnBhcmFtZXRlciBuYW1lZCBcZklhcmdcZlAgZXhpc3RzIHdob3NlIHZhbHVlIGJl Z2lucyB3aXRoIGEgc2xhc2gsIHRyZWF0IGl0cwp2YWx1ZSBhcyB0aGUgZGlyZWN0b3J5LiAg SW4gdGhhdCBjYXNlLCB0aGUgcGFyYW1ldGVyIGlzIGFkZGVkIHRvIHRoZSBuYW1lZApkaXJl Y3RvcnkgaGFzaCB0YWJsZS4KLnNwClRoZSBzZWNvbmQgZm9ybSBvZiBcZkJjZFxmUCBzdWJz dGl0dXRlcyB0aGUgc3RyaW5nIFxmSW5ld1xmUApmb3IgdGhlIHN0cmluZyBcZklvbGRcZlAg aW4gdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgZGlyZWN0b3J5LAphbmQgdHJpZXMgdG8gY2hh bmdlIHRvIHRoaXMgbmV3IGRpcmVjdG9yeS4KLnNwClRoZSB0aGlyZCBmb3JtIG9mIFxmQmNk XGZQIGV4dHJhY3RzIGFuIGVudHJ5IGZyb20gdGhlIGRpcmVjdG9yeQpzdGFjaywgYW5kIGNo YW5nZXMgdG8gdGhhdCBkaXJlY3RvcnkuICBBbiBhcmd1bWVudCBvZiB0aGUgZm9ybQpcZkIr XGZQXGZJblxmUCBpZGVudGlmaWVzIGEgc3RhY2sgZW50cnkgYnkgY291bnRpbmcgZnJvbSB0 aGUgbGVmdApvZiB0aGUgbGlzdCBzaG93biBieSB0aGUgXGZCZGlyc1xmUCBjb21tYW5kLCBz dGFydGluZyB3aXRoIHplcm8uCkFuIGFyZ3VtZW50IG9mIHRoZSBmb3JtIFxmQlwtXGZQXGZJ blxmUCBjb3VudHMgZnJvbSB0aGUgcmlnaHQuCklmIHRoZSBcZkJQVVNIRF9NSU5VU1xmUCBv cHRpb24gaXMgc2V0LCB0aGUgbWVhbmluZ3Mgb2YgXGZCK1xmUAphbmQgXGZCXC1cZlAgaW4g dGhpcyBjb250ZXh0IGFyZSBzd2FwcGVkLgpJZiB0aGUgXGZCUE9TSVhfQ0RcZlAgb3B0aW9u IGlzIHNldCwgdGhpcyBmb3JtIG9mIFxmQmNkXGZQIGlzIG5vdCByZWNvZ25pc2VkCmFuZCB3 aWxsIGJlIGludGVycHJldGVkIGFzIHRoZSBmaXJzdCBmb3JtLgouc3AKSWYgdGhlIFxmQlwt cVxmUCAocXVpZXQpIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRoZSBob29rIGZ1bmN0aW9uIFxm QmNocHdkXGZQCmFuZCB0aGUgZnVuY3Rpb25zIGluIHRoZSBhcnJheSBcZkJjaHB3ZF9mdW5j dGlvbnNcZlAgYXJlIG5vdCBjYWxsZWQuClRoaXMgaXMgdXNlZnVsIGZvciBjYWxscyB0byBc ZkJjZFxmUCB0aGF0IGRvIG5vdCBjaGFuZ2UgdGhlIGVudmlyb25tZW50CnNlZW4gYnkgYW4g aW50ZXJhY3RpdmUgdXNlci4KLnNwCklmIHRoZSBcZkJcLXNcZlAgb3B0aW9uIGlzIHNwZWNp ZmllZCwgXGZCY2RcZlAgcmVmdXNlcyB0byBjaGFuZ2UgdGhlIGN1cnJlbnQKZGlyZWN0b3J5 IGlmIHRoZSBnaXZlbiBwYXRobmFtZSBjb250YWlucyBzeW1saW5rcy4gIElmIHRoZSBcZkJc LVBcZlAgb3B0aW9uCmlzIGdpdmVuIG9yIHRoZSBcZkJDSEFTRV9MSU5LU1xmUCBvcHRpb24g aXMgc2V0LCBzeW1ib2xpYyBsaW5rcyBhcmUgcmVzb2x2ZWQKdG8gdGhlaXIgdHJ1ZSB2YWx1 ZXMuICBJZiB0aGUgXGZCXC1MXGZQIG9wdGlvbiBpcyBnaXZlbiBzeW1ib2xpYyBsaW5rcyBh cmUKcmV0YWluZWQgaW4gdGhlIGRpcmVjdG9yeSAoYW5kIG5vdCByZXNvbHZlZCkgcmVnYXJk bGVzcyBvZiB0aGUgc3RhdGUgb2YKdGhlIFxmQkNIQVNFX0xJTktTXGZQIG9wdGlvbi4KLlVO SU5ERU5UCi5VTklOREVOVAouc3AKXGZCY2hkaXJcZlAKLklOREVOVCAwLjAKLklOREVOVCAz LjUKU2FtZSBhcyBcZkJjZFxmUFwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJjbG9u ZVxmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpTZWUgVGhlIHpzaC9jbG9uZSBNb2R1bGVc Ji4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCY29tbWFuZFxmUCBbIFxmQlwtcHZWXGZQ IF0gXGZJc2ltcGxlIGNvbW1hbmRcZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKVGhlIHNp bXBsZSBjb21tYW5kIGFyZ3VtZW50IGlzIHRha2VuIGFzIGFuIGV4dGVybmFsIGNvbW1hbmQg aW5zdGVhZCBvZgphIGZ1bmN0aW9uIG9yIGJ1aWx0aW4gYW5kIGlzIGV4ZWN1dGVkLiBJZiB0 aGUgXGZCUE9TSVhfQlVJTFRJTlNcZlAgb3B0aW9uCmlzIHNldCwgYnVpbHRpbnMgd2lsbCBh bHNvIGJlIGV4ZWN1dGVkIGJ1dCBjZXJ0YWluIHNwZWNpYWwgcHJvcGVydGllcwpvZiB0aGVt IGFyZSBzdXBwcmVzc2VkLiBUaGUgXGZCXC1wXGZQIGZsYWcgY2F1c2VzIGEgZGVmYXVsdCBw YXRoIHRvIGJlCnNlYXJjaGVkIGluc3RlYWQgb2YgdGhhdCBpbiBcZkIkcGF0aFxmUFwmLiBX aXRoIHRoZSBcZkJcLXZcZlAgZmxhZywgXGZCY29tbWFuZFxmUAppcyBzaW1pbGFyIHRvIFxm QndoZW5jZVxmUCBhbmQgd2l0aCBcZkJcLVZcZlAsIGl0IGlzIGVxdWl2YWxlbnQgdG8gXGZC d2hlbmNlClwtdlxmUFwmLgouc3AKU2VlIGFsc28gUHJlY29tbWFuZCBNb2RpZmllcnNcJi4K LlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCY29tcGFyZ3VtZW50c1xmUAouSU5ERU5UIDAu MAouSU5ERU5UIDMuNQpTZWUgVGhlIHpzaC9jb21wdXRpbCBNb2R1bGVcJi4KLlVOSU5ERU5U Ci5VTklOREVOVAouc3AKXGZCY29tcGNhbGxcZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUK U2VlIFRoZSB6c2gvY29tcGN0bCBNb2R1bGVcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AK XGZCY29tcGN0bFxmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpTZWUgVGhlIHpzaC9jb21w Y3RsIE1vZHVsZVwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJjb21wZGVzY3JpYmVc ZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKU2VlIFRoZSB6c2gvY29tcHV0aWwgTW9kdWxl XCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQmNvbXBmaWxlc1xmUAouSU5ERU5UIDAu MAouSU5ERU5UIDMuNQpTZWUgVGhlIHpzaC9jb21wdXRpbCBNb2R1bGVcJi4KLlVOSU5ERU5U Ci5VTklOREVOVAouc3AKXGZCY29tcGdyb3Vwc1xmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMu NQpTZWUgVGhlIHpzaC9jb21wdXRpbCBNb2R1bGVcJi4KLlVOSU5ERU5UCi5VTklOREVOVAou c3AKXGZCY29tcHF1b3RlXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClNlZSBUaGUgenNo L2NvbXB1dGlsIE1vZHVsZVwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJjb21wdGFn c1xmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpTZWUgVGhlIHpzaC9jb21wdXRpbCBNb2R1 bGVcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCY29tcHRyeVxmUAouSU5ERU5UIDAu MAouSU5ERU5UIDMuNQpTZWUgVGhlIHpzaC9jb21wdXRpbCBNb2R1bGVcJi4KLlVOSU5ERU5U Ci5VTklOREVOVAouc3AKXGZCY29tcHZhbHVlc1xmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMu NQpTZWUgVGhlIHpzaC9jb21wdXRpbCBNb2R1bGVcJi4KLlVOSU5ERU5UCi5VTklOREVOVAou c3AKXGZCY29udGludWVcZlAgWyBcZkluXGZQIF0KLklOREVOVCAwLjAKLklOREVOVCAzLjUK UmVzdW1lIHRoZSBuZXh0IGl0ZXJhdGlvbiBvZiB0aGUgZW5jbG9zaW5nClxmQmZvclxmUCwg XGZCd2hpbGVcZlAsIFxmQnVudGlsXGZQLCBcZkJzZWxlY3RcZlAgb3IKXGZCcmVwZWF0XGZQ IGxvb3AuIElmIGFuIGFyaXRobWV0aWMgZXhwcmVzc2lvbiBcZkluXGZQIGlzIHNwZWNpZmll ZCwgYnJlYWsgb3V0IG9mClxmSW5cZlBcLTEgbG9vcHMgYW5kIHJlc3VtZSBhdCB0aGUgXGZJ blxmUHRoIGVuY2xvc2luZyBsb29wLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJkZWNs YXJlXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClNhbWUgYXMgXGZCdHlwZXNldFxmUFwm LgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJkaXJzXGZQIFsgXGZCXC1jXGZQIF0gWyBc ZklhcmdcZlAgLi4uIF0KLnNwClxmQmRpcnNcZlAgWyBcZkJcLWxwdlxmUCBdCi5JTkRFTlQg MC4wCi5JTkRFTlQgMy41CldpdGggbm8gYXJndW1lbnRzLCBwcmludCB0aGUgY29udGVudHMg b2YgdGhlIGRpcmVjdG9yeSBzdGFjay4KRGlyZWN0b3JpZXMgYXJlIGFkZGVkIHRvIHRoaXMg c3RhY2sgd2l0aCB0aGUgXGZCcHVzaGRcZlAgY29tbWFuZCwKYW5kIHJlbW92ZWQgd2l0aCB0 aGUgXGZCY2RcZlAgb3IgXGZCcG9wZFxmUCBjb21tYW5kcy4KSWYgYXJndW1lbnRzIGFyZSBz cGVjaWZpZWQsIGxvYWQgdGhlbSBvbnRvIHRoZSBkaXJlY3Rvcnkgc3RhY2ssCnJlcGxhY2lu ZyBhbnl0aGluZyB0aGF0IHdhcyB0aGVyZSwgYW5kIHB1c2ggdGhlIGN1cnJlbnQgZGlyZWN0 b3J5Cm9udG8gdGhlIHN0YWNrLgouc3AKXGZCXC1jXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQg My41CmNsZWFyIHRoZSBkaXJlY3Rvcnkgc3RhY2suCi5VTklOREVOVAouVU5JTkRFTlQKLnNw ClxmQlwtbFxmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpwcmludCBkaXJlY3RvcnkgbmFt ZXMgaW4gZnVsbCBpbnN0ZWFkIG9mIHVzaW5nIFxmQn5cZlAgZXhwcmVzc2lvbnMKKHNlZSBG aWxlbmFtZSBFeHBhbnNpb24pLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcLXBcZlAK LklOREVOVCAwLjAKLklOREVOVCAzLjUKcHJpbnQgZGlyZWN0b3J5IGVudHJpZXMgb25lIHBl ciBsaW5lLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcLXZcZlAKLklOREVOVCAwLjAK LklOREVOVCAzLjUKbnVtYmVyIHRoZSBkaXJlY3RvcmllcyBpbiB0aGUgc3RhY2sgd2hlbiBw cmludGluZy4KLlVOSU5ERU5UCi5VTklOREVOVAouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApc ZkJkaXNhYmxlXGZQIFsgXGZCXC1hZm1wcnNcZlAgXSBcZkluYW1lXGZQIC4uLgouSU5ERU5U IDAuMAouSU5ERU5UIDMuNQpUZW1wb3JhcmlseSBkaXNhYmxlIHRoZSBcZkluYW1lXGZQZCBo YXNoIHRhYmxlIGVsZW1lbnRzIG9yIHBhdHRlcm5zLiAgVGhlIGRlZmF1bHQKaXMgdG8gZGlz YWJsZSBidWlsdGluIGNvbW1hbmRzLiAgVGhpcyBhbGxvd3MgeW91IHRvIHVzZSBhbiBleHRl cm5hbApjb21tYW5kIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBhIGJ1aWx0aW4gY29tbWFuZC4g IFRoZSBcZkJcLWFcZlAgb3B0aW9uCmNhdXNlcyBcZkJkaXNhYmxlXGZQIHRvIGFjdCBvbiBy ZWd1bGFyIG9yIGdsb2JhbCBhbGlhc2VzLiAgVGhlIFxmQlwtc1xmUApvcHRpb24gY2F1c2Vz IFxmQmRpc2FibGVcZlAgdG8gYWN0IG9uIHN1ZmZpeCBhbGlhc2VzLiAgVGhlIFxmQlwtZlxm UCBvcHRpb24gY2F1c2VzClxmQmRpc2FibGVcZlAgdG8gYWN0IG9uIHNoZWxsIGZ1bmN0aW9u cy4gIFRoZSBcZkJcLXJcZlAgb3B0aW9ucyBjYXVzZXMKXGZCZGlzYWJsZVxmUCB0byBhY3Qg b24gcmVzZXJ2ZWQgd29yZHMuICBXaXRob3V0IGFyZ3VtZW50cyBhbGwgZGlzYWJsZWQKaGFz aCB0YWJsZSBlbGVtZW50cyBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGhhc2ggdGFibGUgYXJl IHByaW50ZWQuCldpdGggdGhlIFxmQlwtbVxmUCBmbGFnIHRoZSBhcmd1bWVudHMgYXJlIHRh a2VuIGFzIHBhdHRlcm5zICh3aGljaCBzaG91bGQgYmUKcXVvdGVkIHRvIHByZXZlbnQgdGhl bSBmcm9tIHVuZGVyZ29pbmcgZmlsZW5hbWUgZXhwYW5zaW9uKSwgYW5kIGFsbCBoYXNoCnRh YmxlIGVsZW1lbnRzIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgaGFzaCB0YWJsZSBtYXRjaGlu ZyB0aGVzZSBwYXR0ZXJucwphcmUgZGlzYWJsZWQuICBEaXNhYmxlZCBvYmplY3RzIGNhbiBi ZSBlbmFibGVkIHdpdGggdGhlIFxmQmVuYWJsZVxmUApjb21tYW5kLgouc3AKV2l0aCB0aGUg b3B0aW9uIFxmQlwtcFxmUCwgXGZJbmFtZVxmUCAuLi4gcmVmZXIgdG8gZWxlbWVudHMgb2Yg dGhlCnNoZWxsXChhcXMgcGF0dGVybiBzeW50YXggYXMgZGVzY3JpYmVkIGluIEZpbGVuYW1l IEdlbmVyYXRpb25cJi4KQ2VydGFpbiBlbGVtZW50cyBjYW4gYmUgZGlzYWJsZWQgc2VwYXJh dGVseSwgYXMgZ2l2ZW4gYmVsb3cuCi5zcApOb3RlIHRoYXQgcGF0dGVybnMKbm90IGFsbG93 ZWQgYnkgdGhlIGN1cnJlbnQgc2V0dGluZ3MgZm9yIHRoZSBvcHRpb25zIFxmQkVYVEVOREVE X0dMT0JcZlAsClxmQktTSF9HTE9CXGZQIGFuZCBcZkJTSF9HTE9CXGZQIGFyZSBuZXZlciBl bmFibGVkLCByZWdhcmRsZXNzIG9mIHRoZQpzZXR0aW5nIGhlcmUuICBGb3IgZXhhbXBsZSwg aWYgXGZCRVhURU5ERURfR0xPQlxmUCBpcyBub3QgYWN0aXZlLAp0aGUgcGF0dGVybiBcZkJe XGZQIGlzIGluZWZmZWN0aXZlIGV2ZW4gaWYgXGZCZGlzYWJsZSBcLXAgXChkcV5cKGRxXGZQ IGhhcwpub3QgYmVlbiBpc3N1ZWQuICBUaGUgbGlzdCBiZWxvdyBpbmRpY2F0ZXMgYW55IG9w dGlvbiBzZXR0aW5ncwp0aGF0IHJlc3RyaWN0IHRoZSB1c2Ugb2YgdGhlIHBhdHRlcm4uICBJ dCBzaG91bGQgYmUgbm90ZWQgdGhhdApzZXR0aW5nIFxmQlNIX0dMT0JcZlAgaGFzIGEgd2lk ZXIgZWZmZWN0IHRoYW4gbWVyZWx5IGRpc2FibGluZyBwYXR0ZXJucwphcyBjZXJ0YWluIGV4 cHJlc3Npb25zLCBpbiBwYXJ0aWN1bGFyIHRob3NlIGludm9sdmluZyBwYXJlbnRoZXNlcywK YXJlIHBhcnNlZCBkaWZmZXJlbnRseS4KLnNwClRoZSBmb2xsb3dpbmcgcGF0dGVybnMgbWF5 IGJlIGRpc2FibGVkOyBhbGwKdGhlIHN0cmluZ3MgbmVlZCBxdW90aW5nIG9uIHRoZSBjb21t YW5kIGxpbmUgdG8gcHJldmVudCB0aGVtIGZyb20KYmVpbmcgaW50ZXJwcmV0ZWQgaW1tZWRp YXRlbHkgYXMgcGF0dGVybnMgYW5kIHRoZSBwYXR0ZXJucyBhcmUKc2hvd24gYmVsb3cgaW4g c2luZ2xlIHF1b3RlcyBhcyBhIHJlbWluZGVyLgouc3AKXGZCXChhcT9cKGFxXGZQCi5JTkRF TlQgMC4wCi5JTkRFTlQgMy41ClRoZSBwYXR0ZXJuIGNoYXJhY3RlciBcZkI/XGZQIHdoZXJl dmVyIGl0IG9jY3VycywgaW5jbHVkaW5nIHdoZW4gcHJlY2VkaW5nCmEgcGFyZW50aGVzaXMg d2l0aCBcZkJLU0hfR0xPQlxmUFwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcKGFx KlwoYXFcZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKVGhlIHBhdHRlcm4gY2hhcmFjdGVy IFxmQipcZlAgd2hlcmV2ZXIgaXQgb2NjdXJzLCBpbmNsdWRpbmcgcmVjdXJzaXZlCmdsb2Ji aW5nIGFuZCB3aGVuIHByZWNlZGluZyBhIHBhcmVudGhlc2lzIHdpdGggXGZCS1NIX0dMT0Jc ZlBcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCXChhcVtcKGFxXGZQCi5JTkRFTlQg MC4wCi5JTkRFTlQgMy41CkNoYXJhY3RlciBjbGFzc2VzLgouVU5JTkRFTlQKLlVOSU5ERU5U Ci5zcApcZkJcKGFxPFwoYXFcZlAgKFxmQk5PX1NIX0dMT0JcZlApCi5JTkRFTlQgMC4wCi5J TkRFTlQgMy41Ck51bWVyaWMgcmFuZ2VzLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJc KGFxfFwoYXFcZlAgKFxmQk5PX1NIX0dMT0JcZlApCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41 CkFsdGVybmF0aW9uIGluIGdyb3VwZWQgcGF0dGVybnMsIGNhc2Ugc3RhdGVtZW50cywgb3Ig S1NIX0dMT0IKcGFyZW50aGVzaXNlZCBleHByZXNzaW9ucy4KLlVOSU5ERU5UCi5VTklOREVO VAouc3AKXGZCXChhcShcKGFxXGZQIChcZkJOT19TSF9HTE9CXGZQKQouSU5ERU5UIDAuMAou SU5ERU5UIDMuNQpHcm91cGluZyB1c2luZyBzaW5nbGUgcGFyZW50aGVzZXMuICBEaXNhYmxp bmcgdGhpcyBkb2VzIG5vdCBkaXNhYmxlIHRoZQp1c2Ugb2YgcGFyZW50aGVzZXMgZm9yIFxm QktTSF9HTE9CXGZQIHdoZXJlIHRoZXkgYXJlIGludHJvZHVjZWQgYnkgYQpzcGVjaWFsIGNo YXJhY3Rlciwgbm9yIGZvciBnbG9iIHF1YWxpZmllcnMgKHVzZSBcZkJzZXRvcHQKTk9fQkFS RV9HTE9CX1FVQUxcZlAgdG8gZGlzYWJsZSBnbG9iIHF1YWxpZmllcnMgdGhhdCB1c2UgcGFy ZW50aGVzZXMKb25seSkuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwoYXF+XChhcVxm UCAoXGZCRVhURU5ERURfR0xPQlxmUCkKLklOREVOVCAwLjAKLklOREVOVCAzLjUKRXhjbHVz aW9uIGluIHRoZSBmb3JtIFxmSUFcZlBcZkJ+XGZQXGZJQlxmUFwmLgouVU5JTkRFTlQKLlVO SU5ERU5UCi5zcApcZkJcKGFxXlwoYXFcZlAgKFxmQkVYVEVOREVEX0dMT0JcZlApCi5JTkRF TlQgMC4wCi5JTkRFTlQgMy41CkV4Y2x1c2lvbiBpbiB0aGUgZm9ybSBcZklBXGZQXGZCXlxm UFxmSUJcZlBcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCXChhcSNcKGFxXGZQIChc ZkJFWFRFTkRFRF9HTE9CXGZQKQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpUaGUgcGF0dGVy biBjaGFyYWN0ZXIgXGZCI1xmUCB3aGVyZXZlciBpdCBvY2N1cnMsIGJvdGggZm9yCnJlcGV0 aXRpb24gb2YgYSBwcmV2aW91cyBwYXR0ZXJuIGFuZCBmb3IgaW5kaWNhdGluZyBnbG9iYmlu ZyBmbGFncy4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCXChhcT8oXChhcVxmUCAoXGZC S1NIX0dMT0JcZlApCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClRoZSBncm91cGluZyBmb3Jt IFxmQj8oXGZQXGZJXCYuLi5cZlBcZkIpXGZQXCYuICBOb3RlIHRoaXMgaXMgYWxzbwpkaXNh YmxlZCBpZiBcZkJcKGFxP1woYXFcZlAgaXMgZGlzYWJsZWQuCi5VTklOREVOVAouVU5JTkRF TlQKLnNwClxmQlwoYXEqKFwoYXFcZlAgKFxmQktTSF9HTE9CXGZQKQouSU5ERU5UIDAuMAou SU5ERU5UIDMuNQpUaGUgZ3JvdXBpbmcgZm9ybSBcZkIqKFxmUFxmSVwmLi4uXGZQXGZCKVxm UFwmLiAgTm90ZSB0aGlzIGlzIGFsc28KZGlzYWJsZWQgaWYgXGZCXChhcSpcKGFxXGZQIGlz IGRpc2FibGVkLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcKGFxKyhcKGFxXGZQIChc ZkJLU0hfR0xPQlxmUCkKLklOREVOVCAwLjAKLklOREVOVCAzLjUKVGhlIGdyb3VwaW5nIGZv cm0gXGZCKyhcZlBcZklcJi4uLlxmUFxmQilcZlBcJi4KLlVOSU5ERU5UCi5VTklOREVOVAou c3AKXGZCXChhcSEoXChhcVxmUCAoXGZCS1NIX0dMT0JcZlApCi5JTkRFTlQgMC4wCi5JTkRF TlQgMy41ClRoZSBncm91cGluZyBmb3JtIFxmQiEoXGZQXGZJXCYuLi5cZlBcZkIpXGZQXCYu Ci5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwoYXFAKFwoYXFcZlAgKFxmQktTSF9HTE9C XGZQKQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpUaGUgZ3JvdXBpbmcgZm9ybSBcZkJAKFxm UFxmSVwmLi4uXGZQXGZCKVxmUFwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5VTklOREVOVAou VU5JTkRFTlQKLnNwClxmQmRpc293blxmUCBbIFxmQlwtYVxmUCB8IFxmSWpvYlxmUCAuLi4g XQouc3AKXGZJam9iXGZQIC4uLiBcZkImfFxmUAouc3AKXGZJam9iXGZQIC4uLiBcZkImIVxm UAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpSZW1vdmUgdGhlIHNwZWNpZmllZCBcZklqb2Jc ZlBzIGZyb20gdGhlIGpvYiB0YWJsZTsgdGhlIHNoZWxsIHdpbGwKbm8gbG9uZ2VyIHJlcG9y dCB0aGVpciBzdGF0dXMsIGFuZCB3aWxsIG5vdCBjb21wbGFpbiBpZiB5b3UKdHJ5IHRvIGV4 aXQgYW4gaW50ZXJhY3RpdmUgc2hlbGwgd2l0aCB0aGVtIHJ1bm5pbmcgb3Igc3RvcHBlZC4K SWYgbm8gXGZJam9iXGZQIGlzIHNwZWNpZmllZCwgZGlzb3duIHRoZSBjdXJyZW50IGpvYi4K V2l0aCBcZkJcLWFcZlAsIGRpc293biBhbGwgam9icy4KLnNwCklmIHRoZSBcZklqb2JcZlBz IGFyZSBjdXJyZW50bHkgc3RvcHBlZCBhbmQgdGhlIFxmQkFVVE9fQ09OVElOVUVcZlAgb3B0 aW9uCmlzIG5vdCBzZXQsIGEgd2FybmluZyBpcyBwcmludGVkIGNvbnRhaW5pbmcgaW5mb3Jt YXRpb24gYWJvdXQgaG93IHRvCm1ha2UgdGhlbSBydW5uaW5nIGFmdGVyIHRoZXkgaGF2ZSBi ZWVuIGRpc293bmVkLiAgSWYgb25lIG9mIHRoZSBsYXR0ZXIKdHdvIGZvcm1zIGlzIHVzZWQs IHRoZSBcZklqb2JcZlBzIHdpbGwgYXV0b21hdGljYWxseSBiZSBtYWRlIHJ1bm5pbmcsCmlu ZGVwZW5kZW50IG9mIHRoZSBzZXR0aW5nIG9mIHRoZSBcZkJBVVRPX0NPTlRJTlVFXGZQIG9w dGlvbi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCZWNob1xmUCBbIFxmQlwtbmVFXGZQ IF0gWyBcZklhcmdcZlAgLi4uIF0KLklOREVOVCAwLjAKLklOREVOVCAzLjUKV3JpdGUgZWFj aCBcZklhcmdcZlAgb24gdGhlIHN0YW5kYXJkIG91dHB1dCwgd2l0aCBhIHNwYWNlIHNlcGFy YXRpbmcKZWFjaCBvbmUuCklmIHRoZSBcZkJcLW5cZlAgZmxhZyBpcyBub3QgcHJlc2VudCwg cHJpbnQgYSBuZXdsaW5lIGF0IHRoZSBlbmQuClxmQmVjaG9cZlAgcmVjb2duaXplcyB0aGUg Zm9sbG93aW5nIGVzY2FwZSBzZXF1ZW5jZXM6Ci5JTkRFTlQgMC4wCi5UUAouQiBcZkJcZWFc ZlAKYmVsbCBjaGFyYWN0ZXIKLlRQCi5CIFxmQlxlYlxmUApiYWNrc3BhY2UKLlRQCi5CIFxm QlxlY1xmUApzdXBwcmVzcyBzdWJzZXF1ZW50IGNoYXJhY3RlcnMgYW5kIGZpbmFsIG5ld2xp bmUKLlRQCi5CIFxmQlxlZVxmUAplc2NhcGUKLlRQCi5CIFxmQlxlZlxmUApmb3JtIGZlZWQK LlRQCi5CIFxmQlxlblxmUApsaW5lZmVlZCAobmV3bGluZSkKLlRQCi5CIFxmQlxlclxmUApj YXJyaWFnZSByZXR1cm4KLlRQCi5CIFxmQlxldFxmUApob3Jpem9udGFsIHRhYgouVFAKLkIg XGZCXGV2XGZQCnZlcnRpY2FsIHRhYgouVFAKLkIgXGZCXGVcZVxmUApiYWNrc2xhc2gKLlRQ Ci5CIFxmQlxlMFxmUFxmSU5OTlxmUApjaGFyYWN0ZXIgY29kZSBpbiBvY3RhbAouVFAKLkIg XGZCXGV4XGZQXGZJTk5cZlAKY2hhcmFjdGVyIGNvZGUgaW4gaGV4YWRlY2ltYWwKLlRQCi5C IFxmQlxldVxmUFxmSU5OTk5cZlAKdW5pY29kZSBjaGFyYWN0ZXIgY29kZSBpbiBoZXhhZGVj aW1hbAouVFAKLkIgXGZCXGVVXGZQXGZJTk5OTk5OTk5cZlAKdW5pY29kZSBjaGFyYWN0ZXIg Y29kZSBpbiBoZXhhZGVjaW1hbAouVU5JTkRFTlQKLnNwClRoZSBcZkJcLUVcZlAgZmxhZywg b3IgdGhlIFxmQkJTRF9FQ0hPXGZQIG9wdGlvbiwgY2FuIGJlIHVzZWQgdG8gZGlzYWJsZQp0 aGVzZSBlc2NhcGUgc2VxdWVuY2VzLiAgSW4gdGhlIGxhdHRlciBjYXNlLCBcZkJcLWVcZlAg ZmxhZyBjYW4gYmUgdXNlZCB0bwplbmFibGUgdGhlbS4KLnNwCk5vdGUgdGhhdCBmb3Igc3Rh bmRhcmRzIGNvbXBsaWFuY2UgYSBkb3VibGUgZGFzaCBkb2VzIG5vdCB0ZXJtaW5hdGUKb3B0 aW9uIHByb2Nlc3Npbmc7IGluc3RlYWQsIGl0IGlzIHByaW50ZWQgZGlyZWN0bHkuICBIb3dl dmVyLCBhCnNpbmdsZSBkYXNoIGRvZXMgdGVybWluYXRlIG9wdGlvbiBwcm9jZXNzaW5nLCBz byB0aGUgZmlyc3QgZGFzaCwKcG9zc2libHkgZm9sbG93aW5nIG9wdGlvbnMsIGlzIG5vdCBw cmludGVkLCBidXQgZXZlcnl0aGluZyBmb2xsb3dpbmcgaXQKaXMgcHJpbnRlZCBhcyBhbiBh cmd1bWVudC4gIFRoZSBzaW5nbGUgZGFzaCBiZWhhdmlvdXIgaXMgZGlmZmVyZW50CmZyb20g b3RoZXIgc2hlbGxzLiAgRm9yIGEgbW9yZSBwb3J0YWJsZSB3YXkgb2YgcHJpbnRpbmcgdGV4 dCwgc2VlClxmQnByaW50ZlxmUCwgYW5kIGZvciBhIG1vcmUgY29udHJvbGxhYmxlIHdheSBv ZiBwcmludGluZyB0ZXh0IHdpdGhpbiB6c2gsCnNlZSBcZkJwcmludFxmUFwmLgouVU5JTkRF TlQKLlVOSU5ERU5UCi5zcApcZkJlY2hvdGNcZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUK U2VlIFRoZSB6c2gvdGVybWNhcCBNb2R1bGVcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AK XGZCZWNob3RpXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClNlZSBUaGUgenNoL3Rlcm1p bmZvIE1vZHVsZVwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJlbXVsYXRlXGZQIFsg XGZCXC1sTFJcZlAgXSBbIHtcZkJ6c2h8c2h8a3NofGNzaFxmUH0gWyBcZklmbGFnc1xmUCAu Li4gXSBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CldpdGhvdXQgYW55IGFyZ3VtZW50IHBy aW50IGN1cnJlbnQgZW11bGF0aW9uIG1vZGUuCi5zcApXaXRoIHNpbmdsZSBhcmd1bWVudCBz ZXQgdXAgenNoIG9wdGlvbnMgdG8gZW11bGF0ZSB0aGUgc3BlY2lmaWVkIHNoZWxsCmFzIG11 Y2ggYXMgcG9zc2libGUuClxmQmNzaFxmUCB3aWxsIG5ldmVyIGJlIGZ1bGx5IGVtdWxhdGVk LgpJZiB0aGUgYXJndW1lbnQgaXMgbm90IG9uZSBvZiB0aGUgc2hlbGxzIGxpc3RlZCBhYm92 ZSwgXGZCenNoXGZQCndpbGwgYmUgdXNlZCBhcyBhIGRlZmF1bHQ7IG1vcmUgcHJlY2lzZWx5 LCB0aGUgdGVzdHMgcGVyZm9ybWVkIG9uIHRoZQphcmd1bWVudCBhcmUgdGhlIHNhbWUgYXMg dGhvc2UgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGVtdWxhdGlvbiBhdCBzdGFydHVwCmJhc2Vk IG9uIHRoZSBzaGVsbCBuYW1lLCBzZWUgQ29tcGF0aWJpbGl0eVwmLgpJbiBhZGRpdGlvbiB0 byBzZXR0aW5nIHNoZWxsIG9wdGlvbnMsIHRoZSBjb21tYW5kIGFsc28gcmVzdG9yZXMKdGhl IHByaXN0aW5lIHN0YXRlIG9mIHBhdHRlcm4gZW5hYmxlcywgYXMgaWYgYWxsIHBhdHRlcm5z IGhhZCBiZWVuCmVuYWJsZWQgdXNpbmcgXGZCZW5hYmxlIFwtcFxmUFwmLgouc3AKSWYgdGhl IFxmQmVtdWxhdGVcZlAgY29tbWFuZCBvY2N1cnMgaW5zaWRlIGEgZnVuY3Rpb24gdGhhdCBo YXMgYmVlbgptYXJrZWQgZm9yIGV4ZWN1dGlvbiB0cmFjaW5nIHdpdGggXGZCZnVuY3Rpb25z IFwtdFxmUCB0aGVuIHRoZSBcZkJ4dHJhY2VcZlAKb3B0aW9uIHdpbGwgYmUgdHVybmVkIG9u IHJlZ2FyZGxlc3Mgb2YgZW11bGF0aW9uIG1vZGUgb3Igb3RoZXIgb3B0aW9ucy4KTm90ZSB0 aGF0IGNvZGUgZXhlY3V0ZWQgaW5zaWRlIHRoZSBmdW5jdGlvbiBieSB0aGUgXGZCXCYuXGZQ LCBcZkJzb3VyY2VcZlAsIG9yClxmQmV2YWxcZlAgY29tbWFuZHMgaXMgbm90IGNvbnNpZGVy ZWQgdG8gYmUgcnVubmluZyBkaXJlY3RseSBmcm9tIHRoZQpmdW5jdGlvbiwgaGVuY2UgZG9l cyBub3QgcHJvdm9rZSB0aGlzIGJlaGF2aW91ci4KLnNwCklmIHRoZSBcZkJcLVJcZlAgc3dp dGNoIGlzIGdpdmVuLCBhbGwgc2V0dGFibGUgb3B0aW9ucwphcmUgcmVzZXQgdG8gdGhlaXIg ZGVmYXVsdCB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBzcGVjaWZpZWQgZW11bGF0aW9u Cm1vZGUsIGV4Y2VwdCBmb3IgY2VydGFpbiBvcHRpb25zIGRlc2NyaWJpbmcgdGhlIGludGVy YWN0aXZlCmVudmlyb25tZW50OyBvdGhlcndpc2UsIG9ubHkgdGhvc2Ugb3B0aW9ucyBsaWtl bHkgdG8gY2F1c2UgcG9ydGFiaWxpdHkKcHJvYmxlbXMgaW4gc2NyaXB0cyBhbmQgZnVuY3Rp b25zIGFyZSBhbHRlcmVkLiAgSWYgdGhlIFxmQlwtTFxmUCBzd2l0Y2ggaXMgZ2l2ZW4sCnRo ZSBvcHRpb25zIFxmQkxPQ0FMX09QVElPTlNcZlAsIFxmQkxPQ0FMX1BBVFRFUk5TXGZQIGFu ZCBcZkJMT0NBTF9UUkFQU1xmUAp3aWxsIGJlIHNldCBhcwp3ZWxsLCBjYXVzaW5nIHRoZSBl ZmZlY3RzIG9mIHRoZSBcZkJlbXVsYXRlXGZQIGNvbW1hbmQgYW5kIGFueSBcZkJzZXRvcHRc ZlAsClxmQmRpc2FibGUgXC1wXGZQIG9yIFxmQmVuYWJsZSBcLXBcZlAsIGFuZCBcZkJ0cmFw XGZQIGNvbW1hbmRzIHRvIGJlIGxvY2FsIHRvCnRoZSBpbW1lZGlhdGVseSBzdXJyb3VuZGlu ZyBzaGVsbApmdW5jdGlvbiwgaWYgYW55OyBub3JtYWxseSB0aGVzZSBvcHRpb25zIGFyZSB0 dXJuZWQgb2ZmIGluIGFsbCBlbXVsYXRpb24KbW9kZXMgZXhjZXB0IFxmQmtzaFxmUFwmLiBU aGUgXGZCXC1MXGZQIHN3aXRjaCBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCB0aGUKdXNl IG9mIFxmQlwtY1xmUCBpbiBcZklmbGFnc1xmUFwmLgouc3AKSWYgdGhlcmUgaXMgYSBzaW5n bGUgYXJndW1lbnQgYW5kIHRoZSBcZkJcLWxcZlAgc3dpdGNoIGlzIGdpdmVuLCB0aGUKb3B0 aW9ucyB0aGF0IHdvdWxkIGJlIHNldCBvciB1bnNldCAodGhlIGxhdHRlciBpbmRpY2F0ZWQg d2l0aCB0aGUgcHJlZml4ClxmQm5vXGZQKSBhcmUgbGlzdGVkLiAgXGZCXC1sXGZQIGNhbiBi ZSBjb21iaW5lZCB3aXRoIFxmQlwtTFxmUCBvciBcZkJcLVJcZlAgYW5kCnRoZSBsaXN0IHdp bGwgYmUgbW9kaWZpZWQgaW4gdGhlIGFwcHJvcHJpYXRlIHdheS4gIE5vdGUgdGhlIGxpc3Qg ZG9lcwpub3QgZGVwZW5kIG9uIHRoZSBjdXJyZW50IHNldHRpbmcgb2Ygb3B0aW9ucywgaS5l LiBpdCBpbmNsdWRlcyBhbGwKb3B0aW9ucyB0aGF0IG1heSBpbiBwcmluY2lwbGUgY2hhbmdl LCBub3QganVzdCB0aG9zZSB0aGF0IHdvdWxkIGFjdHVhbGx5CmNoYW5nZS4KLnNwClRoZSBc ZklmbGFnc1xmUCBtYXkgYmUgYW55IG9mIHRoZSBpbnZvY2F0aW9uXC10aW1lIGZsYWdzIGRl c2NyaWJlZCBpbgpJbnZvY2F0aW9uLApleGNlcHQgdGhhdCBcZkJcLW8gRU1BQ1NcZlAgYW5k IFxmQlwtbyBWSVxmUCBtYXkgbm90IGJlIHVzZWQuCi5zcApJZiBcZkJcLWNcZlAgXGZJYXJn XGZQIGFwcGVhcnMgaW4gXGZJZmxhZ3NcZlAsIFxmSWFyZ1xmUCBpcyBldmFsdWF0ZWQgd2hp bGUgdGhlCnJlcXVlc3RlZCBlbXVsYXRpb24gaXMgdGVtcG9yYXJpbHkgaW4gZWZmZWN0LiAg SW4gdGhpcyBjYXNlIHRoZSBlbXVsYXRpb24KbW9kZSBhbmQgYWxsIG9wdGlvbnMgYXJlIHJl c3RvcmVkIHRvIHRoZWlyIHByZXZpb3VzIHZhbHVlcyBiZWZvcmUKXGZCZW11bGF0ZVxmUCBy ZXR1cm5zLiAgVGhlIFxmQlwtUlxmUCBzd2l0Y2ggbWF5IHByZWNlZGUgdGhlIG5hbWUgb2Yg dGhlIHNoZWxsCnRvIGVtdWxhdGU7IG5vdGUgdGhpcyBoYXMgYSBtZWFuaW5nIGRpc3RpbmN0 IGZyb20gaW5jbHVkaW5nIFxmQlwtUlxmUCBpbgpcZklmbGFnc1xmUFwmLgouc3AKVXNlIG9m IFxmQlwtY1xmUCBlbmFibGVzIFwoZ2FzdGlja3lcKGFxIGVtdWxhdGlvbiBtb2RlIGZvciBm dW5jdGlvbnMgZGVmaW5lZAp3aXRoaW4gdGhlIGV2YWx1YXRlZCBleHByZXNzaW9uOiAgdGhl IGVtdWxhdGlvbiBtb2RlIGlzIGFzc29jaWF0ZWQKdGhlcmVhZnRlciB3aXRoIHRoZSBmdW5j dGlvbiBzbyB0aGF0IHdoZW5ldmVyIHRoZSBmdW5jdGlvbiBpcyBleGVjdXRlZAp0aGUgZW11 bGF0aW9uIChyZXNwZWN0aW5nIHRoZSBcZkJcLVJcZlAgc3dpdGNoLCBpZiBwcmVzZW50KSBh bmQgYWxsCm9wdGlvbnMgYXJlIHNldCAoYW5kIHBhdHRlcm4gZGlzYWJsZXMgY2xlYXJlZCkK YmVmb3JlIGVudHJ5IHRvIHRoZSBmdW5jdGlvbiwgYW5kIHRoZSBzdGF0ZSBpcyByZXN0b3Jl ZCBhZnRlciBleGl0LgpJZiB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHN0aWNr eSBlbXVsYXRpb24gaXMgYWxyZWFkeSBpbgplZmZlY3QsIGVpdGhlciB3aXRoaW4gYW4gXGZC ZW11bGF0ZVxmUCBcZklzaGVsbFxmUCBcZkJcLWNcZlAgZXhwcmVzc2lvbiBvcgp3aXRoaW4g YW5vdGhlciBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIHN0aWNreSBlbXVsYXRpb24sIGVudHJ5 IGFuZCBleGl0CmZyb20gdGhlIGZ1bmN0aW9uIGRvIG5vdCBjYXVzZSBvcHRpb25zIHRvIGJl IGFsdGVyZWQgKGV4Y2VwdCBkdWUgdG8Kc3RhbmRhcmQgcHJvY2Vzc2luZyBzdWNoIGFzIHRo ZSBcZkJMT0NBTF9PUFRJT05TXGZQIG9wdGlvbikuICBUaGlzIGFsc28KYXBwbGllcyB0byBm dW5jdGlvbnMgbWFya2VkIGZvciBhdXRvbG9hZCB3aXRoaW4gdGhlIHN0aWNreSBlbXVsYXRp b247CnRoZSBhcHByb3ByaWF0ZSBzZXQgb2Ygb3B0aW9ucyB3aWxsIGJlIGFwcGxpZWQgYXQg dGhlIHBvaW50IHRoZQpmdW5jdGlvbiBpcyBsb2FkZWQgYXMgd2VsbCBhcyB3aGVuIGl0IGlz IHJ1bi4KLnNwCkZvciBleGFtcGxlOgouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQouc3AKLkVY CiBlbXVsYXRlIHNoIFwtYyBcKGFxZm5pKCkgeyBzZXRvcHQgY3NobnVsbGdsb2I7IH0KIGZu bygpIHsgZm5pOyB9XChhcQogZm5vCi5FRQouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApUaGUg dHdvIGZ1bmN0aW9ucyBcZkJmbmlcZlAgYW5kIFxmQmZub1xmUCBhcmUgZGVmaW5lZCB3aXRo IHN0aWNreSBcZkJzaFxmUAplbXVsYXRpb24uICBcZkJmbm9cZlAgaXMgdGhlbiBleGVjdXRl ZCwgY2F1c2luZyBvcHRpb25zIGFzc29jaWF0ZWQKd2l0aCBlbXVsYXRpb25zIHRvIGJlIHNl dCB0byB0aGVpciB2YWx1ZXMgaW4gXGZCc2hcZlBcJi4gIFxmQmZub1xmUCB0aGVuCmNhbGxz IFxmQmZuaVxmUDsgYmVjYXVzZSBcZkJmbmlcZlAgaXMgYWxzbyBtYXJrZWQgZm9yIHN0aWNr eSBcZkJzaFxmUAplbXVsYXRpb24sIG5vIG9wdGlvbiBjaGFuZ2VzIHRha2UgcGxhY2Ugb24g ZW50cnkgdG8gb3IgZXhpdCBmcm9tIGl0LgpIZW5jZSB0aGUgb3B0aW9uIFxmQmNzaG51bGxn bG9iXGZQLCB0dXJuZWQgb2ZmIGJ5IFxmQnNoXGZQIGVtdWxhdGlvbiwgd2lsbApiZSB0dXJu ZWQgb24gd2l0aGluIFxmQmZuaVxmUCBhbmQgcmVtYWluIG9uIHJldHVybiB0byBcZkJmbm9c ZlBcJi4gIE9uIGV4aXQKZnJvbSBcZkJmbm9cZlAsIHRoZSBlbXVsYXRpb24gbW9kZSBhbmQg YWxsIG9wdGlvbnMgd2lsbCBiZSByZXN0b3JlZCB0byB0aGUKc3RhdGUgdGhleSB3ZXJlIGlu IGJlZm9yZSBlbnRyeSB0byB0aGUgdGVtcG9yYXJ5IGVtdWxhdGlvbi4KLnNwClRoZSBkb2N1 bWVudGF0aW9uIGFib3ZlIGlzIHR5cGljYWxseSBzdWZmaWNpZW50IGZvciB0aGUgaW50ZW5k ZWQKcHVycG9zZSBvZiBleGVjdXRpbmcgY29kZSBkZXNpZ25lZCBmb3Igb3RoZXIgc2hlbGxz IGluIGEgc3VpdGFibGUKZW52aXJvbm1lbnQuICBNb3JlIGRldGFpbGVkIHJ1bGVzIGZvbGxv dy4KLklOREVOVCAwLjAKLklQIDEuIDMKVGhlIHN0aWNreSBlbXVsYXRpb24gZW52aXJvbm1l bnQgcHJvdmlkZWQgYnkgXGZCZW11bGF0ZVxmUApcZklzaGVsbFxmUCBcZkJcLWNcZlAgaXMg aWRlbnRpY2FsIHRvIHRoYXQgcHJvdmlkZWQgYnkgZW50cnkgdG8KYSBmdW5jdGlvbiBtYXJr ZWQgZm9yIHN0aWNreSBlbXVsYXRpb24gYXMgYSBjb25zZXF1ZW5jZSBvZiBiZWluZwpkZWZp bmVkIGluIHN1Y2ggYW4gZW52aXJvbm1lbnQuICBIZW5jZSwgZm9yIGV4YW1wbGUsIHRoZSBz dGlja3kKZW11bGF0aW9uIGlzIGluaGVyaXRlZCBieSBzdWJmdW5jdGlvbnMgZGVmaW5lZCB3 aXRoaW4gZnVuY3Rpb25zCndpdGggc3RpY2t5IGVtdWxhdGlvbi4KLklQIDIuIDMKTm8gY2hh bmdlIG9mIG9wdGlvbnMgdGFrZXMgcGxhY2Ugb24gZW50cnkgdG8gb3IgZXhpdCBmcm9tCmZ1 bmN0aW9ucyB0aGF0IGFyZSBub3QgbWFya2VkIGZvciBzdGlja3kgZW11bGF0aW9uLCBvdGhl ciB0aGFuIHRob3NlCnRoYXQgd291bGQgbm9ybWFsbHkgdGFrZSBwbGFjZSwgZXZlbiBpZiB0 aG9zZSBmdW5jdGlvbnMgYXJlIGNhbGxlZAp3aXRoaW4gc3RpY2t5IGVtdWxhdGlvbi4KLklQ IDMuIDMKTm8gc3BlY2lhbCBoYW5kbGluZyBpcyBwcm92aWRlZCBmb3IgZnVuY3Rpb25zIG1h cmtlZCBmb3IKXGZCYXV0b2xvYWRcZlAgbm9yIGZvciBmdW5jdGlvbnMgcHJlc2VudCBpbiB3 b3JkY29kZSBjcmVhdGVkIGJ5CnRoZSBcZkJ6Y29tcGlsZVxmUCBjb21tYW5kLgouSVAgNC4g MwpUaGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiB0aGUgXGZCXC1SXGZQIHN3aXRjaCB0byBc ZkJlbXVsYXRlXGZQCmNvcnJlc3BvbmRzIHRvIGRpZmZlcmVudCBzdGlja3kgZW11bGF0aW9u IG1vZGVzLCBzbyBmb3IgZXhhbXBsZQpcZkJlbXVsYXRlIHNoIFwtY1xmUCwgXGZCZW11bGF0 ZSBcLVIgc2ggXC1jXGZQIGFuZCBcZkJlbXVsYXRlIGNzaCBcLWNcZlAKYXJlIHRyZWF0ZWQg YXMgdGhyZWUgZGlzdGluY3Qgc3RpY2t5IGVtdWxhdGlvbnMuCi5JUCA1LiAzCkRpZmZlcmVu Y2UgaW4gc2hlbGwgb3B0aW9ucyBzdXBwbGllZCBpbiBhZGRpdGlvbiB0byB0aGUKYmFzaWMg ZW11bGF0aW9uIGFsc28gbWVhbiB0aGUgc3RpY2t5IGVtdWxhdGlvbnMgYXJlIGRpZmZlcmVu dCwgc28gZm9yCmV4YW1wbGUgXGZCZW11bGF0ZSB6c2ggXC1jXGZQIGFuZCBcZkJlbXVsYXRl IHpzaCBcLW8gY2Jhc2VzIFwtY1xmUCBhcmUKdHJlYXRlZCBhcyBkaXN0aW5jdCBzdGlja3kg ZW11bGF0aW9ucy4KLlVOSU5ERU5UCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQmVuYWJs ZVxmUCBbIFxmQlwtYWZtcHJzXGZQIF0gXGZJbmFtZVxmUCAuLi4KLklOREVOVCAwLjAKLklO REVOVCAzLjUKRW5hYmxlIHRoZSBcZkluYW1lXGZQZCBoYXNoIHRhYmxlIGVsZW1lbnRzLCBw cmVzdW1hYmx5IGRpc2FibGVkCmVhcmxpZXIgd2l0aCBcZkJkaXNhYmxlXGZQXCYuICBUaGUg ZGVmYXVsdCBpcyB0byBlbmFibGUgYnVpbHRpbiBjb21tYW5kcy4KVGhlIFxmQlwtYVxmUCBv cHRpb24gY2F1c2VzIFxmQmVuYWJsZVxmUCB0byBhY3Qgb24gcmVndWxhciBvciBnbG9iYWwg YWxpYXNlcy4KVGhlIFxmQlwtc1xmUCBvcHRpb24gY2F1c2VzIFxmQmVuYWJsZVxmUCB0byBh Y3Qgb24gc3VmZml4IGFsaWFzZXMuClRoZSBcZkJcLWZcZlAgb3B0aW9uIGNhdXNlcyBcZkJl bmFibGVcZlAgdG8gYWN0IG9uIHNoZWxsIGZ1bmN0aW9ucy4gIFRoZSBcZkJcLXJcZlAKb3B0 aW9uIGNhdXNlcyBcZkJlbmFibGVcZlAgdG8gYWN0IG9uIHJlc2VydmVkIHdvcmRzLiAgV2l0 aG91dCBhcmd1bWVudHMKYWxsIGVuYWJsZWQgaGFzaCB0YWJsZSBlbGVtZW50cyBmcm9tIHRo ZSBjb3JyZXNwb25kaW5nIGhhc2ggdGFibGUgYXJlCnByaW50ZWQuICBXaXRoIHRoZSBcZkJc LW1cZlAgZmxhZyB0aGUgYXJndW1lbnRzIGFyZSB0YWtlbiBhcyBwYXR0ZXJucwooc2hvdWxk IGJlIHF1b3RlZCkgYW5kIGFsbCBoYXNoIHRhYmxlIGVsZW1lbnRzIGZyb20gdGhlIGNvcnJl c3BvbmRpbmcKaGFzaCB0YWJsZSBtYXRjaGluZyB0aGVzZSBwYXR0ZXJucyBhcmUgZW5hYmxl ZC4gIEVuYWJsZWQgb2JqZWN0cyBjYW4gYmUKZGlzYWJsZWQgd2l0aCB0aGUgXGZCZGlzYWJs ZVxmUCBidWlsdGluIGNvbW1hbmQuCi5zcApcZkJlbmFibGUgXC1wXGZQIHJlZW5hYmxlcyBw YXR0ZXJucyBkaXNhYmxlZCB3aXRoIFxmQmRpc2FibGUgXC1wXGZQXCYuICBOb3RlCnRoYXQg aXQgZG9lcyBub3Qgb3ZlcnJpZGUgZ2xvYmJpbmcgb3B0aW9uczsgZm9yIGV4YW1wbGUsIFxm QmVuYWJsZSBcLXAKXChkcX5cKGRxIFwoZ2FcKGdhZG9lcyBub3QgY2F1c2UgdGhlIHBhdHRl cm4gY2hhcmFjdGVyXGZQIH5cKGdhXChnYSB0byBiZSBhY3RpdmUgdW5sZXNzCnRoZSBcZkJF WFRFTkRFRF9HTE9CXGZQIG9wdGlvbiBpcyBhbHNvIHNldC4gIFRvIGVuYWJsZSBhbGwgcG9z c2libGUKcGF0dGVybnMgKHNvIHRoYXQgdGhleSBtYXkgYmUgaW5kaXZpZHVhbGx5IGRpc2Fi bGVkIHdpdGggXGZCZGlzYWJsZSBcLXBcZlApLAp1c2UgXGZCc2V0b3B0IEVYVEVOREVEX0dM T0IgS1NIX0dMT0IgTk9fU0hfR0xPQlxmUFwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApc ZkJldmFsXGZQIFsgXGZJYXJnXGZQIC4uLiBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClJl YWQgdGhlIGFyZ3VtZW50cyBhcyBpbnB1dCB0byB0aGUgc2hlbGwgYW5kIGV4ZWN1dGUgdGhl IHJlc3VsdGluZwpjb21tYW5kKHMpIGluIHRoZSBjdXJyZW50IHNoZWxsIHByb2Nlc3MuICBU aGUgcmV0dXJuIHN0YXR1cyBpcwp0aGUgc2FtZSBhcyBpZiB0aGUgY29tbWFuZHMgaGFkIGJl ZW4gZXhlY3V0ZWQgZGlyZWN0bHkgYnkgdGhlIHNoZWxsOwppZiB0aGVyZSBhcmUgbm8gXGZJ YXJnc1xmUCBvciB0aGV5IGNvbnRhaW4gbm8gY29tbWFuZHMgKGkuZS4gYXJlCmFuIGVtcHR5 IHN0cmluZyBvciB3aGl0ZXNwYWNlKSB0aGUgcmV0dXJuIHN0YXR1cyBpcyB6ZXJvLgouVU5J TkRFTlQKLlVOSU5ERU5UCi5zcApcZkJleGVjXGZQIFsgXGZCXC1jbFxmUCBdIFsgXGZCXC1h XGZQIFxmSWFyZ3YwXGZQIF0gWyBcZkljb21tYW5kXGZQIFsgXGZJYXJnXGZQIC4uLiBdIF0K LklOREVOVCAwLjAKLklOREVOVCAzLjUKUmVwbGFjZSB0aGUgY3VycmVudCBzaGVsbCB3aXRo IFxmSWNvbW1hbmRcZlAgcmF0aGVyIHRoYW4gZm9ya2luZy4KSWYgXGZJY29tbWFuZFxmUCBp cyBhIHNoZWxsIGJ1aWx0aW4gY29tbWFuZCBvciBhIHNoZWxsIGZ1bmN0aW9uLAp0aGUgc2hl bGwgZXhlY3V0ZXMgaXQsIGFuZCBleGl0cyB3aGVuIHRoZSBjb21tYW5kIGlzIGNvbXBsZXRl Lgouc3AKV2l0aCBcZkJcLWNcZlAgY2xlYXIgdGhlIGVudmlyb25tZW50OyB3aXRoIFxmQlwt bFxmUCBwcmVwZW5kIFxmQlwtXGZQIHRvIHRoZQpcZkJhcmd2WzBdXGZQIHN0cmluZyBvZiB0 aGUgY29tbWFuZCBleGVjdXRlZCAodG8gc2ltdWxhdGUgYSBsb2dpbiBzaGVsbCk7CndpdGgg XGZCXC1hXGZQIFxmSWFyZ3YwXGZQIHNldCB0aGUgXGZCYXJndlswXVxmUCBzdHJpbmcgb2Yg dGhlIGNvbW1hbmQKZXhlY3V0ZWQuClNlZSBQcmVjb21tYW5kIE1vZGlmaWVyc1wmLgouc3AK SWYgdGhlIG9wdGlvbiBcZkJQT1NJWF9CVUlMVElOU1xmUCBpcyBzZXQsIFxmSWNvbW1hbmRc ZlAgaXMgbmV2ZXIKaW50ZXJwcmV0ZWQgYXMgYSBzaGVsbCBidWlsdGluIGNvbW1hbmQgb3Ig c2hlbGwgZnVuY3Rpb24uICBUaGlzCm1lYW5zIGZ1cnRoZXIgcHJlY29tbWFuZCBtb2RpZmll cnMgc3VjaCBhcyBcZkJidWlsdGluXGZQIGFuZApcZkJub2dsb2JcZlAgYXJlIGFsc28gbm90 IGludGVycHJldGVkIHdpdGhpbiB0aGUgc2hlbGwuICBIZW5jZQpcZkljb21tYW5kXGZQIGlz IGFsd2F5cyBmb3VuZCBieSBzZWFyY2hpbmcgdGhlIGNvbW1hbmQgcGF0aC4KLnNwCklmIFxm SWNvbW1hbmRcZlAgaXMgb21pdHRlZCBidXQgYW55IHJlZGlyZWN0aW9ucyBhcmUgc3BlY2lm aWVkLAp0aGVuIHRoZSByZWRpcmVjdGlvbnMgd2lsbCB0YWtlIGVmZmVjdCBpbiB0aGUgY3Vy cmVudCBzaGVsbC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCZXhpdFxmUCBbIFxmSW5c ZlAgXQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpFeGl0IHRoZSBzaGVsbCB3aXRoIHRoZSBl eGl0IHN0YXR1cyBzcGVjaWZpZWQgYnkgYW4gYXJpdGhtZXRpYwpleHByZXNzaW9uIFxmSW5c ZlA7IGlmIG5vbmUKaXMgc3BlY2lmaWVkLCB1c2UgdGhlIGV4aXQgc3RhdHVzIGZyb20gdGhl IGxhc3QgY29tbWFuZCBleGVjdXRlZC4KXCYuLiBpbmRleDo6IHNpbmdsZTogSUdOT1JFX0VP RiwgdXNlIG9mOyBQcm9ncmFtCi5zcApBbiBFT0YgY29uZGl0aW9uIHdpbGwgYWxzbyBjYXVz ZSB0aGUgc2hlbGwgdG8gZXhpdCwgdW5sZXNzCnRoZSBcZkJJR05PUkVfRU9GXGZQIG9wdGlv biBpcyBzZXQuCi5zcApTZWUgbm90ZXMgYXQgdGhlIGVuZCBvZiBTaWduYWxzCmZvciBzb21l IHBvc3NpYmx5IHVuZXhwZWN0ZWQgaW50ZXJhY3Rpb25zCm9mIHRoZSBcZkJleGl0XGZQIGNv bW1hbmQgd2l0aCBqb2JzLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJleHBvcnRcZlAg WyBcZkluYW1lXGZQW1xmQj1cZlBcZkl2YWx1ZVxmUF0gLi4uIF0KLklOREVOVCAwLjAKLklO REVOVCAzLjUKVGhlIHNwZWNpZmllZCBcZkluYW1lXGZQcyBhcmUgbWFya2VkIGZvciBhdXRv bWF0aWMgZXhwb3J0CnRvIHRoZSBlbnZpcm9ubWVudCBvZiBzdWJzZXF1ZW50bHkgZXhlY3V0 ZWQgY29tbWFuZHMuCkVxdWl2YWxlbnQgdG8gXGZCdHlwZXNldCBcLWd4XGZQXCYuCklmIGEg cGFyYW1ldGVyIHNwZWNpZmllZCBkb2VzIG5vdAphbHJlYWR5IGV4aXN0LCBpdCBpcyBjcmVh dGVkIGluIHRoZSBnbG9iYWwgc2NvcGUuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQmZh bHNlXGZQIFsgXGZJYXJnXGZQIC4uLiBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkRvIG5v dGhpbmcgYW5kIHJldHVybiBhbiBleGl0IHN0YXR1cyBvZiAxLgouVU5JTkRFTlQKLlVOSU5E RU5UCi5zcApcZkJmY1xmUCBbIFxmQlwtZVxmUCBcZkllbmFtZVxmUCBdIFsgXGZCXC1zXGZQ IF0gWyBcZkJcLUxJXGZQIF0gWyBcZkJcLW1cZlAgXGZJbWF0Y2hcZlAgXSBbIFxmSW9sZFxm UFxmQj1cZlBcZkluZXdcZlAgLi4uIF0gWyBcZklmaXJzdFxmUCBbIFxmSWxhc3RcZlAgXSBd Ci5zcApcZkJmYyBcLWxcZlAgWyBcZkJcLUxJXGZQIF0gWyBcZkJcLW5yZGZFaURcZlAgXSBb IFxmQlwtdFxmUCBcZkl0aW1lZm10XGZQIF0gWyBcZkJcLW1cZlAgXGZJbWF0Y2hcZlAgXQou SU5ERU5UIDAuMAouSU5ERU5UIDMuNQpbIFxmSW9sZFxmUFxmQj1cZlBcZkluZXdcZlAgLi4u IF0gWyBcZklmaXJzdFxmUCBbIFxmSWxhc3RcZlAgXSBdCi5VTklOREVOVAouVU5JTkRFTlQK LnNwClxmQmZjIFwtcFxmUCBbIFxmQlwtYVxmUCBdIFsgXGZJZmlsZW5hbWVcZlAgWyBcZklo aXN0c2l6ZVxmUCBbIFxmSXNhdmVoaXN0c2l6ZVxmUCBdIF0gXQouc3AKXGZCZmNcZlAgXGZC XC1QXGZQCi5zcApcZkJmY1xmUCBcZkJcLUFSV0lcZlAgWyBcZklmaWxlbmFtZVxmUCBdCi5J TkRFTlQgMC4wCi5JTkRFTlQgMy41ClRoZSBcZkJmY1xmUCBjb21tYW5kIGNvbnRyb2xzIHRo ZSBpbnRlcmFjdGl2ZSBoaXN0b3J5IG1lY2hhbmlzbS4gIE5vdGUKdGhhdCByZWFkaW5nIGFu ZCB3cml0aW5nIG9mIGhpc3Rvcnkgb3B0aW9ucyBpcyBvbmx5IHBlcmZvcm1lZCBpZiB0aGUK c2hlbGwgaXMgaW50ZXJhY3RpdmUuICBVc3VhbGx5IHRoaXMgaXMgZGV0ZWN0ZWQgYXV0b21h dGljYWxseSwgYnV0Cml0IGNhbiBiZSBmb3JjZWQgYnkgc2V0dGluZyB0aGUgXGZCaW50ZXJh Y3RpdmVcZlAgb3B0aW9uIHdoZW4gc3RhcnRpbmcgdGhlCnNoZWxsLgouc3AKVGhlIGZpcnN0 IHR3byBmb3JtcyBvZiB0aGlzIGNvbW1hbmQgc2VsZWN0IGEgcmFuZ2Ugb2YgZXZlbnRzIGZy b20KXGZJZmlyc3RcZlAgdG8gXGZJbGFzdFxmUCBmcm9tIHRoZSBoaXN0b3J5IGxpc3QuICBU aGUgYXJndW1lbnRzIFxmSWZpcnN0XGZQCmFuZCBcZklsYXN0XGZQIG1heSBiZSBzcGVjaWZp ZWQgYXMgYSBudW1iZXIgb3IgYXMgYSBzdHJpbmcuICBBIG5lZ2F0aXZlCm51bWJlciBpcyB1 c2VkIGFzIGFuIG9mZnNldCB0byB0aGUgY3VycmVudCBoaXN0b3J5IGV2ZW50IG51bWJlci4g IEEgc3RyaW5nCnNwZWNpZmllcyB0aGUgbW9zdCByZWNlbnQgZXZlbnQgYmVnaW5uaW5nIHdp dGggdGhlIGdpdmVuIHN0cmluZy4gIEFsbApzdWJzdGl0dXRpb25zIFxmSW9sZFxmUFxmQj1c ZlBcZkluZXdcZlAsIGlmIGFueSwgYXJlIHRoZW4gcGVyZm9ybWVkIG9uIHRoZQp0ZXh0IG9m IHRoZSBldmVudHMuCi5zcApUaGUgcmFuZ2Ugb2YgZXZlbnRzIHNlbGVjdGVkIGJ5IG51bWJl cnMgY2FuIGJlIG5hcnJvd2VkIGZ1cnRoZXIgYnkgdGhlCmZvbGxvd2luZyBmbGFncy4KLklO REVOVCAwLjAKLlRQCi5CIFxmQlwtSVxmUApyZXN0cmljdHMgdG8gb25seSBpbnRlcm5hbCBl dmVudHMgKG5vdCBmcm9tIFxmQiRISVNURklMRVxmUCkKLlRQCi5CIFxmQlwtTFxmUApyZXN0 cmljdHMgdG8gb25seSBsb2NhbCBldmVudHMgKG5vdCBmcm9tIG90aGVyIHNoZWxscywgc2Vl ClxmQlNIQVJFX0hJU1RPUllcZlAgaW4KXGZCenNob3B0aW9uc1xmUCBcLVwtIG5vdGUgdGhh dCBcZkIkSElTVEZJTEVcZlAgaXMKY29uc2lkZXJlZCBsb2NhbCB3aGVuIHJlYWQgYXQgc3Rh cnR1cCkKLlRQCi5CIFxmQlwtbVxmUAp0YWtlcyB0aGUgZmlyc3QgYXJndW1lbnQgYXMgYSBw YXR0ZXJuICh3aGljaCBzaG91bGQgYmUKcXVvdGVkKSBhbmQgb25seSB0aGUgaGlzdG9yeSBl dmVudHMgbWF0Y2hpbmcgdGhpcyBwYXR0ZXJuIGFyZSBjb25zaWRlcmVkCi5VTklOREVOVAou c3AKSWYgXGZJZmlyc3RcZlAgaXMgbm90IHNwZWNpZmllZCwgaXQgd2lsbCBiZSBzZXQgdG8g XC0xICh0aGUgbW9zdCByZWNlbnQKZXZlbnQpLCBvciB0byBcLTE2IGlmIHRoZSBcZkJcLWxc ZlAgZmxhZyBpcyBnaXZlbi4KSWYgXGZJbGFzdFxmUCBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3 aWxsIGJlIHNldCB0byBcZklmaXJzdFxmUCwKb3IgdG8gXC0xIGlmIHRoZSBcZkJcLWxcZlAg ZmxhZyBpcyBnaXZlbi4KSG93ZXZlciwgaWYgdGhlIGN1cnJlbnQgZXZlbnQgaGFzIGFkZGVk IGVudHJpZXMgdG8gdGhlIGhpc3Rvcnkgd2l0aApcZkJwcmludCBcLXNcZlAgb3IgXGZCZmMg XC1SXGZQLCB0aGVuIHRoZSBkZWZhdWx0IFxmSWxhc3RcZlAgZm9yIFxmQlwtbFxmUAppbmNs dWRlcyBhbGwgbmV3IGhpc3RvcnkgZW50cmllcyBzaW5jZSB0aGUgY3VycmVudCBldmVudCBi ZWdhbi4KLnNwCldoZW4gdGhlIFxmQlwtbFxmUCBmbGFnIGlzIGdpdmVuLCB0aGUgcmVzdWx0 aW5nIGV2ZW50cyBhcmUgbGlzdGVkIG9uCnN0YW5kYXJkIG91dHB1dC4gIE90aGVyd2lzZSB0 aGUgZWRpdG9yIHByb2dyYW0gc3BlY2lmaWVkIGJ5IFxmQlwtZVxmUCBcZkllbmFtZVxmUApp cyBpbnZva2VkIG9uIGEgZmlsZSBjb250YWluaW5nIHRoZXNlIGhpc3RvcnkgZXZlbnRzLiAg SWYgXGZCXC1lXGZQIGlzIG5vdCBnaXZlbiwgdGhlCnZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIg XGZCRkNFRElUXGZQIGlzIHVzZWQ7IGlmIHRoYXQgaXMgbm90IHNldCB0aGUgdmFsdWUgb2YK dGhlIHBhcmFtZXRlciBcZkJFRElUT1JcZlAgaXMgdXNlZDsgaWYgdGhhdCBpcyBub3Qgc2V0 IGEgYnVpbHRpbiBkZWZhdWx0LAp1c3VhbGx5IFxmQnZpXGZQIGlzIHVzZWQuICBJZiBcZkll bmFtZVxmUCBpcyBcZkJcLVxmUCwgbm8gZWRpdG9yIGlzIGludm9rZWQuCldoZW4gZWRpdGlu ZyBpcyBjb21wbGV0ZSwgdGhlIGVkaXRlZCBjb21tYW5kIGlzIGV4ZWN1dGVkLgouc3AKVGhl IGZsYWcgXGZCXC1zXGZQIGlzIGVxdWl2YWxlbnQgdG8gXGZCXC1lIFwtXGZQXCYuClRoZSBm bGFnIFxmQlwtclxmUCByZXZlcnNlcyB0aGUgb3JkZXIgb2YgdGhlIGV2ZW50cyBhbmQgdGhl CmZsYWcgXGZCXC1uXGZQIHN1cHByZXNzZXMgZXZlbnQgbnVtYmVycyB3aGVuIGxpc3Rpbmcu Ci5zcApBbHNvIHdoZW4gbGlzdGluZywKLklOREVOVCAwLjAKLlRQCi5CIFxmQlwtZFxmUApw cmludHMgdGltZXN0YW1wcyBmb3IgZWFjaCBldmVudAouVFAKLkIgXGZCXC1mXGZQCnByaW50 cyBmdWxsIHRpbWVcLWRhdGUgc3RhbXBzIGluIHRoZSBVUwpcZklNTVxmUFxmQi9cZlBcZklE RFxmUFxmQi9cZlBcZklZWVxmUCBcZkloaFxmUFxmQjpcZlBcZkltbVxmUCBmb3JtYXQKLlRQ Ci5CIFxmQlwtRVxmUApwcmludHMgZnVsbCB0aW1lXC1kYXRlIHN0YW1wcyBpbiB0aGUgRXVy b3BlYW4KXGZJZGRcZlBcZkJcJi5cZlBcZkltbVxmUFxmQlwmLlxmUFxmSXl5eXlcZlAgXGZJ aGhcZlBcZkI6XGZQXGZJbW1cZlAgZm9ybWF0Ci5UUAouQiBcZkJcLWlcZlAKcHJpbnRzIGZ1 bGwgdGltZVwtZGF0ZSBzdGFtcHMgaW4gSVNPODYwMQpcZkl5eXl5XGZQXGZCXC1cZlBcZklt bVxmUFxmQlwtXGZQXGZJZGRcZlAgXGZJaGhcZlBcZkI6XGZQXGZJbW1cZlAgZm9ybWF0Ci5U UAouQiBcZkJcLXRcZlAgXGZJZm10XGZQCnByaW50cyB0aW1lIGFuZCBkYXRlIHN0YW1wcyBp biB0aGUgZ2l2ZW4gZm9ybWF0OwpcZklmbXRcZlAgaXMgZm9ybWF0dGVkIHdpdGggdGhlIHN0 cmZ0aW1lIGZ1bmN0aW9uIHdpdGggdGhlIHpzaCBleHRlbnNpb25zCmRlc2NyaWJlZCBmb3Ig dGhlIFxmQiVEe1xmUFxmSXN0cmluZ1xmUFxmQn1cZlAgcHJvbXB0IGZvcm1hdCBpbgpTaW1w bGUgUHJvbXB0IEVzY2FwZXNcJi4KVGhlIHJlc3VsdGluZyBmb3JtYXR0ZWQgc3RyaW5nIG11 c3QgYmUKbm8gbW9yZSB0aGFuIDI1NiBjaGFyYWN0ZXJzIG9yIHdpbGwgbm90IGJlIHByaW50 ZWQKLlRQCi5CIFxmQlwtRFxmUApwcmludHMgZWxhcHNlZCB0aW1lczsgbWF5IGJlIGNvbWJp bmVkIHdpdGggb25lIG9mIHRoZQpvcHRpb25zIGFib3ZlCi5VTklOREVOVAouc3AKXGZCZmMg XC1wXGZQIHB1c2hlcyB0aGUgY3VycmVudCBoaXN0b3J5IGxpc3Qgb250byBhIHN0YWNrIGFu ZCBzd2l0Y2hlcyB0byBhCm5ldyBoaXN0b3J5IGxpc3QuICBJZiB0aGUgXGZCXC1hXGZQIG9w dGlvbiBpcyBhbHNvIHNwZWNpZmllZCwgdGhpcyBoaXN0b3J5IGxpc3QKd2lsbCBiZSBhdXRv bWF0aWNhbGx5IHBvcHBlZCB3aGVuIHRoZSBjdXJyZW50IGZ1bmN0aW9uIHNjb3BlIGlzIGV4 aXRlZCwgd2hpY2gKaXMgYSBtdWNoIGJldHRlciBzb2x1dGlvbiB0aGFuIGNyZWF0aW5nIGEg dHJhcCBmdW5jdGlvbiB0byBjYWxsIFxmQmZjIFwtUFxmUAptYW51YWxseS4gIElmIG5vIGFy Z3VtZW50cyBhcmUgc3BlY2lmaWVkLCB0aGUgaGlzdG9yeSBsaXN0IGlzIGxlZnQgZW1wdHks ClxmQiRISVNURklMRVxmUCBpcyB1bnNldCwgYW5kIFxmQiRISVNUU0laRVxmUCAmIFxmQiRT QVZFSElTVFxmUCBhcmUgc2V0IHRvIHRoZWlyCmRlZmF1bHQgdmFsdWVzLiAgSWYgb25lIGFy Z3VtZW50IGlzIGdpdmVuLCBcZkIkSElTVEZJTEVcZlAgaXMgc2V0IHRvIHRoYXQKZmlsZW5h bWUsIFxmQiRISVNUU0laRVxmUCAmIFxmQiRTQVZFSElTVFxmUCBhcmUgbGVmdCB1bmNoYW5n ZWQsIGFuZCB0aGUgaGlzdG9yeQpmaWxlIGlzIHJlYWQgaW4gKGlmIGl0IGV4aXN0cykgdG8g aW5pdGlhbGl6ZSB0aGUgbmV3IGxpc3QuICBJZiBhIHNlY29uZAphcmd1bWVudCBpcyBzcGVj aWZpZWQsIFxmQiRISVNUU0laRVxmUCAmIFxmQiRTQVZFSElTVFxmUCBhcmUgaW5zdGVhZCBz ZXQgdG8gdGhlCnNpbmdsZSBzcGVjaWZpZWQgbnVtZXJpYyB2YWx1ZS4gIEZpbmFsbHksIGlm IGEgdGhpcmQgYXJndW1lbnQgaXMgc3BlY2lmaWVkLApcZkIkU0FWRUhJU1RcZlAgaXMgc2V0 IHRvIGEgc2VwYXJhdGUgdmFsdWUgZnJvbSBcZkIkSElTVFNJWkVcZlBcJi4gIFlvdSBhcmUg ZnJlZSB0bwpjaGFuZ2UgdGhlc2UgZW52aXJvbm1lbnQgdmFsdWVzIGZvciB0aGUgbmV3IGhp c3RvcnkgbGlzdCBob3dldmVyIHlvdSBkZXNpcmUKaW4gb3JkZXIgdG8gbWFuaXB1bGF0ZSB0 aGUgbmV3IGhpc3RvcnkgbGlzdC4KLnNwClxmQmZjIFwtUFxmUCBwb3BzIHRoZSBoaXN0b3J5 IGxpc3QgYmFjayB0byBhbiBvbGRlciBsaXN0IHNhdmVkIGJ5IFxmQmZjIFwtcFxmUFwmLgpU aGUgY3VycmVudCBsaXN0IGlzIHNhdmVkIHRvIGl0cyBcZkIkSElTVEZJTEVcZlAgYmVmb3Jl IGl0IGlzIGRlc3Ryb3llZAooYXNzdW1pbmcgdGhhdCBcZkIkSElTVEZJTEVcZlAgYW5kIFxm QiRTQVZFSElTVFxmUCBhcmUgc2V0IGFwcHJvcHJpYXRlbHksIG9mCmNvdXJzZSkuICBUaGUg dmFsdWVzIG9mIFxmQiRISVNURklMRVxmUCwgXGZCJEhJU1RTSVpFXGZQLCBhbmQgXGZCJFNB VkVISVNUXGZQIGFyZQpyZXN0b3JlZCB0byB0aGUgdmFsdWVzIHRoZXkgaGFkIHdoZW4gXGZC ZmMgXC1wXGZQIHdhcyBjYWxsZWQuICBOb3RlIHRoYXQgdGhpcwpyZXN0b3JhdGlvbiBjYW4g Y29uZmxpY3Qgd2l0aCBtYWtpbmcgdGhlc2UgdmFyaWFibGVzIFwoZHFsb2NhbFwoZHEsIHNv IHlvdXIgYmVzdApiZXQgaXMgdG8gYXZvaWQgbG9jYWwgZGVjbGFyYXRpb25zIGZvciB0aGVz ZSB2YXJpYWJsZXMgaW4gZnVuY3Rpb25zIHRoYXQgdXNlClxmQmZjIFwtcFxmUFwmLiAgVGhl IG9uZSBvdGhlciBndWFyYW50ZWVkXC1zYWZlIGNvbWJpbmF0aW9uIGlzIGRlY2xhcmluZyB0 aGVzZQp2YXJpYWJsZXMgdG8gYmUgbG9jYWwgYXQgdGhlIHRvcCBvZiB5b3VyIGZ1bmN0aW9u IGFuZCB1c2luZyB0aGUgYXV0b21hdGljCm9wdGlvbiAoXGZCXC1hXGZQKSB3aXRoIFxmQmZj IFwtcFxmUFwmLiAgRmluYWxseSwgbm90ZSB0aGF0IGl0IGlzIGxlZ2FsIHRvIG1hbnVhbGx5 CnBvcCBhIHB1c2ggbWFya2VkIGZvciBhdXRvbWF0aWMgcG9wcGluZyBpZiB5b3UgbmVlZCB0 byBkbyBzbyBiZWZvcmUgdGhlCmZ1bmN0aW9uIGV4aXRzLgouc3AKXGZCZmMgXC1SXGZQIHJl YWRzIHRoZSBoaXN0b3J5IGZyb20gdGhlIGdpdmVuIGZpbGUsClxmQmZjIFwtV1xmUCB3cml0 ZXMgdGhlIGhpc3Rvcnkgb3V0IHRvIHRoZSBnaXZlbiBmaWxlLAphbmQgXGZCZmMgXC1BXGZQ IGFwcGVuZHMgdGhlIGhpc3Rvcnkgb3V0IHRvIHRoZSBnaXZlbiBmaWxlLgpJZiBubyBmaWxl bmFtZSBpcyBzcGVjaWZpZWQsIHRoZSBcZkIkSElTVEZJTEVcZlAgaXMgYXNzdW1lZC4KSWYg dGhlIFxmQlwtSVxmUCBvcHRpb24gaXMgYWRkZWQgdG8gXGZCXC1SXGZQLCBvbmx5IHRob3Nl IGV2ZW50cyB0aGF0IGFyZQpub3QgYWxyZWFkeSBjb250YWluZWQgd2l0aGluIHRoZSBpbnRl cm5hbCBoaXN0b3J5IGxpc3QgYXJlIGFkZGVkLgpJZiB0aGUgXGZCXC1JXGZQIG9wdGlvbiBp cyBhZGRlZCB0byBcZkJcLUFcZlAgb3IgXGZCXC1XXGZQLCBvbmx5IHRob3NlCmV2ZW50cyB0 aGF0IGFyZSBuZXcgc2luY2UgbGFzdCBpbmNyZW1lbnRhbCBhcHBlbmQvd3JpdGUgdG8KdGhl IGhpc3RvcnkgZmlsZSBhcmUgYXBwZW5kZWQvd3JpdHRlbi4KSW4gYW55IGNhc2UsIHRoZSBj cmVhdGVkIGZpbGUgd2lsbCBoYXZlIG5vIG1vcmUgdGhhbiBcZkIkU0FWRUhJU1RcZlAKZW50 cmllcy4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCZmdcZlAgWyBcZklqb2JcZlAgLi4u IF0KLnNwClxmSWpvYlxmUCAuLi4KLklOREVOVCAwLjAKLklOREVOVCAzLjUKQnJpbmcgZWFj aCBzcGVjaWZpZWQgXGZJam9iXGZQIGluIHR1cm4gdG8gdGhlIGZvcmVncm91bmQuCklmIG5v IFxmSWpvYlxmUCBpcyBzcGVjaWZpZWQsIHJlc3VtZSB0aGUgY3VycmVudCBqb2IuCi5VTklO REVOVAouVU5JTkRFTlQKLnNwClxmQmZsb2F0XGZQIFsge1xmQit8XC19SGdobHBydHV4XGZQ IF0gWyB7XGZCK3xcLX1FRkxSWlxmUCBbIFxmSW5cZlAgXSBdIFsgXGZJbmFtZVxmUFtcZkI9 XGZQXGZJdmFsdWVcZlBdIC4uLiBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkVxdWl2YWxl bnQgdG8gXGZCdHlwZXNldCBcLUVcZlAsIGV4Y2VwdCB0aGF0IG9wdGlvbnMgaXJyZWxldmFu dCB0byBmbG9hdGluZwpwb2ludCBudW1iZXJzIGFyZSBub3QgcGVybWl0dGVkLgouVU5JTkRF TlQKLlVOSU5ERU5UCi5zcApcZkJmdW5jdGlvbnNcZlAgWyB7XGZCK3xcLX1Va210VHVXelxm UCBdIFsgXGZCXC14XGZQIFxmSW51bVxmUCBdIFsgXGZJbmFtZVxmUCAuLi4gXQouc3AKXGZC ZnVuY3Rpb25zIFwtY1xmUCBcZklvbGRmblxmUCBcZkluZXdmblxmUAouc3AKXGZCZnVuY3Rp b25zIFwtTVxmUCBbXGZCXC1zXGZQXSBcZkltYXRoZm5cZlAgWyBcZkltaW5cZlAgWyBcZklt YXhcZlAgWyBcZklzaGVsbGZuXGZQIF0gXSBdCi5zcApcZkJmdW5jdGlvbnMgXC1NXGZQIFsg XGZCXC1tXGZQIFxmSXBhdHRlcm5cZlAgLi4uIF0KLnNwClxmQmZ1bmN0aW9ucyArTVxmUCBb IFxmQlwtbVxmUCBdIFxmSW1hdGhmblxmUCAuLi4KLklOREVOVCAwLjAKLklOREVOVCAzLjUK RXF1aXZhbGVudCB0byBcZkJ0eXBlc2V0IFwtZlxmUCwgd2l0aCB0aGUgZXhjZXB0aW9uIG9m IHRoZSBcZkJcLWNcZlAsIFxmQlwteFxmUCwKXGZCXC1NXGZQIGFuZCBcZkJcLVdcZlAgb3B0 aW9ucy4gIEZvciBcZkJmdW5jdGlvbnMgXC11XGZQIGFuZCBcZkJmdW5jdGlvbnMgXC1VXGZQ LApzZWUgXGZCYXV0b2xvYWRcZlAsIHdoaWNoIHByb3ZpZGVzIGFkZGl0aW9uYWwgb3B0aW9u cy4gIEZvciBcZkJmdW5jdGlvbnMgXC10XGZQCmFuZCBcZkJmdW5jdGlvbnMgXC1UXGZQLCBz ZWUgXGZCdHlwZXNldCBcLWZcZlBcJi4KLnNwClRoZSBcZkJcLXhcZlAgb3B0aW9uIGluZGlj YXRlcyB0aGF0IGFueSBmdW5jdGlvbnMgb3V0cHV0IHdpbGwgaGF2ZQplYWNoIGxlYWRpbmcg dGFiIGZvciBpbmRlbnRhdGlvbiwgYWRkZWQgYnkgdGhlIHNoZWxsIHRvIHNob3cgc3ludGFj dGljCnN0cnVjdHVyZSwgZXhwYW5kZWQgdG8gdGhlIGdpdmVuIG51bWJlciBcZkludW1cZlAg b2Ygc3BhY2VzLiAgXGZJbnVtXGZQCmNhbiBhbHNvIGJlIDAgdG8gc3VwcHJlc3MgYWxsIGlu ZGVudGF0aW9uLgouc3AKVGhlIFxmQlwtV1xmUCBvcHRpb24gdHVybnMgb24gdGhlIG9wdGlv biBcZkJXQVJOX05FU1RFRF9WQVJcZlAgZm9yIHRoZSBuYW1lZApmdW5jdGlvbiBvciBmdW5j dGlvbnMgb25seS4gIFRoZSBvcHRpb24gaXMgdHVybmVkIG9mZiBhdCB0aGUgc3RhcnQgb2YK bmVzdGVkIGZ1bmN0aW9ucyAoYXBhcnQgZnJvbSBhbm9ueW1vdXMgZnVuY3Rpb25zKSB1bmxl c3MgdGhlIGNhbGxlZApmdW5jdGlvbiBhbHNvIGhhcyB0aGUgXGZCXC1XXGZQIGF0dHJpYnV0 ZS4KLnNwClRoZSBcZkJcLWNcZlAgb3B0aW9uIGNhdXNlcyBcZklvbGRmblxmUCB0byBiZSBj b3BpZWQgdG8gXGZJbmV3Zm5cZlBcJi4gIFRoZQpjb3B5IGlzIGVmZmljaWVudGx5IGhhbmRs ZWQgaW50ZXJuYWxseSBieSByZWZlcmVuY2UgY291bnRpbmcuICBJZgpcZklvbGRmblxmUCB3 YXMgbWFya2VkIGZvciBhdXRvbG9hZCBpdCBpcyBmaXJzdCBsb2FkZWQgYW5kIGlmIHRoaXMK ZmFpbHMgdGhlIGNvcHkgZmFpbHMuICBFaXRoZXIgZnVuY3Rpb24gbWF5IHN1YnNlcXVlbnRs eSBiZSByZWRlZmluZWQKd2l0aG91dCBhZmZlY3RpbmcgdGhlIG90aGVyLiAgQSB0eXBpY2Fs IGlkaW9tIGlzIHRoYXQgXGZJb2xkZm5cZlAgaXMgdGhlCm5hbWUgb2YgYSBsaWJyYXJ5IHNo ZWxsIGZ1bmN0aW9uIHdoaWNoIGlzIHRoZW4gcmVkZWZpbmVkIHRvIGNhbGwKXGZCbmV3Zm5c ZlAsIHRoZXJlYnkgaW5zdGFsbGluZyBhIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIGZ1bmN0 aW9uLgouc3AKXGZJVGhlIFwoZ2FcKGdhXGZQXC1NXChnYVwoZ2E6ZW1waGFzaXM6XChnYSBh bmQgXGZJXChnYVwoZ2ErTVwoZ2FcZlA6ZW1waGFzaXM6XChnYSBmbGFnc1woZ2EKXCYuLiBp bmRleDo6IHNpbmdsZTogZGVmaW5pbmcgbWF0aGVtYXRpY2FsIGZ1bmN0aW9uczsgQ29tbWFu ZAouc3AKVXNlIG9mIHRoZSBcZkJcLU1cZlAgb3B0aW9uIG1heSBub3QgYmUgY29tYmluZWQg d2l0aCBhbnkgb2YgdGhlIG9wdGlvbnMKaGFuZGxlZCBieSBcZkJ0eXBlc2V0IFwtZlxmUFwm Lgouc3AKXGZCZnVuY3Rpb25zIFwtTVxmUCBcZkltYXRoZm5cZlAgZGVmaW5lcyBcZkltYXRo Zm5cZlAgYXMgdGhlIG5hbWUgb2YKYSBtYXRoZW1hdGljYWwgZnVuY3Rpb24gcmVjb2duaXNl ZCBpbiBhbGwgZm9ybXMgb2YgYXJpdGhtZXRpY2FsIGV4cHJlc3Npb25zOwpzZWUgQXJpdGht ZXRpYyBFdmFsdWF0aW9uXCYuCkJ5IGRlZmF1bHQgXGZJbWF0aGZuXGZQIG1heSB0YWtlCmFu eSBudW1iZXIgb2YgY29tbWFcLXNlcGFyYXRlZCBhcmd1bWVudHMuICBJZiBcZkltaW5cZlAg aXMgZ2l2ZW4sCml0IG11c3QgaGF2ZSBleGFjdGx5IFxmSW1pblxmUCBhcmdzOyBpZiBcZklt aW5cZlAgYW5kIFxmSW1heFxmUCBhcmUKYm90aCBnaXZlbiwgaXQgbXVzdCBoYXZlIGF0IGxl YXN0IFxmSW1pblxmUCBhbmQgYXQgbW9zdCBcZkltYXhcZlAKYXJncy4gIFxmSW1heFxmUCBt YXkgYmUgXC0xIHRvIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgbm8gdXBwZXIgbGltaXQuCi5z cApCeSBkZWZhdWx0IHRoZSBmdW5jdGlvbiBpcyBpbXBsZW1lbnRlZCBieSBhIHNoZWxsIGZ1 bmN0aW9uIG9mIHRoZSBzYW1lCm5hbWU7IGlmIFxmSXNoZWxsZm5cZlAgaXMgc3BlY2lmaWVk IGl0IGdpdmVzIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nCnNoZWxsIGZ1bmN0aW9u IHdoaWxlIFxmSW1hdGhmblxmUCByZW1haW5zIHRoZSBuYW1lIHVzZWQgaW4gYXJpdGhtZXRp Y2FsCmV4cHJlc3Npb25zLiAgVGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIGluIFxmQiQwXGZQ IGlzIFxmSW1hdGhmblxmUCAobm90ClxmSXNoZWxsZm5cZlAgYXMgd291bGQgdXN1YWxseSBi ZSB0aGUgY2FzZSksIHByb3ZpZGVkIHRoZSBvcHRpb24KXGZCRlVOQ1RJT05fQVJHWkVST1xm UCBpcyBpbiBlZmZlY3QuICBUaGUgcG9zaXRpb25hbCBwYXJhbWV0ZXJzIGluIHRoZSBzaGVs bApmdW5jdGlvbiBjb3JyZXNwb25kIHRvIHRoZSBhcmd1bWVudHMgb2YgdGhlIG1hdGhlbWF0 aWNhbCBmdW5jdGlvbiBjYWxsLgouc3AKVGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBhcml0aG1l dGljYWwgZXhwcmVzc2lvbiBldmFsdWF0ZWQgaW5zaWRlIHRoZSBzaGVsbApmdW5jdGlvbiBn aXZlcyB0aGUgcmVzdWx0IG9mIHRoZSBtYXRoZW1hdGljYWwgZnVuY3Rpb24uICBUaGlzIGlz IG5vdCBsaW1pdGVkIHRvCmFyaXRobWV0aWMgc3Vic3RpdHV0aW9ucyBvZiB0aGUgZm9ybSBc ZkIkKChcZlBcZklcJi4uLlxmUFxmQikpXGZQLApidXQgYWxzbyBpbmNsdWRlcyBhcml0aG1l dGljYWwgZXhwcmVzc2lvbnMgZXZhbHVhdGVkIGluIGFueSBvdGhlciB3YXksIGluY2x1ZGlu ZwpieSB0aGUgXGZCbGV0XGZQIGJ1aWx0aW4sCmJ5IFxmQigoXGZQXGZJXCYuLi5cZlBcZkIp KVxmUCBzdGF0ZW1lbnRzLAphbmQgZXZlbgpieSB0aGUgXGZCcmV0dXJuXGZQIGJ1aWx0aW4K YW5kCmJ5IGFycmF5IHN1YnNjcmlwdHMuClRoZXJlZm9yZSwgY2FyZSBtdXN0IGJlIHRha2Vu IG5vdCB0byB1c2Ugc3ludGFjdGljYWwgY29uc3RydWN0cyB0aGF0IHBlcmZvcm0KYXJpdGht ZXRpYyBldmFsdWF0aW9uIGFmdGVyIGV2YWx1YXRpbmcgd2hhdCBpcyB0byBiZSB0aGUgcmVz dWx0IG9mIHRoZSBmdW5jdGlvbi4KRm9yIGV4YW1wbGU6Ci5JTkRFTlQgMC4wCi5JTkRFTlQg My41Ci5zcAouRVgKICMgV1JPTkcKIHptYXRoX2N1YmUoKSB7CiAgICgoICQxICogJDEgKiAk MSApKQogICByZXR1cm4gMAogfQogZnVuY3Rpb25zIFwtTSBjdWJlIDEgMSB6bWF0aF9jdWJl CiBwcmludCAkKCggY3ViZSgzKSApKQouRUUKLlVOSU5ERU5UCi5VTklOREVOVAouc3AKVGhp cyB3aWxsIHByaW50IFxmQjBcZlAgYmVjYXVzZSBvZiB0aGUgXGZCcmV0dXJuXGZQXCYuCi5z cApDb21tZW50aW5nIHRoZSBcZkJyZXR1cm5cZlAgb3V0IHdvdWxkIGxlYWQgdG8gYSBkaWZm ZXJlbnQgcHJvYmxlbTogdGhlClxmQigoXGZQXGZJXCYuLi5cZlBcZkIpKVxmUCBzdGF0ZW1l bnQgd291bGQgYmVjb21lCnRoZSBsYXN0IHN0YXRlbWVudCBpbiB0aGUgZnVuY3Rpb24sIHNv IHRoZSBcZklyZXR1cm4gc3RhdHVzXGZQIChcZkIkP1xmUCkgb2YgdGhlCmZ1bmN0aW9uIHdv dWxkIGJlIG5vblwtemVybyAoaW5kaWNhdGluZyBmYWlsdXJlKSB3aGVuZXZlciB0aGUgXGZJ YXJpdGhtZXRpYwpyZXN1bHRcZlAgb2YgdGhlIGZ1bmN0aW9uIHdvdWxkIGhhcHBlbiB0byBi ZSB6ZXJvIChudW1lcmljYWxseSk6Ci5JTkRFTlQgMC4wCi5JTkRFTlQgMy41Ci5zcAouRVgK ICMgV1JPTkcKIHptYXRoX2N1YmUoKSB7CiAgICgoICQxICogJDEgKiAkMSApKQogfQogZnVu Y3Rpb25zIFwtTSBjdWJlIDEgMSB6bWF0aF9jdWJlCiBwcmludCAkKCggY3ViZSgwKSApKQou RUUKLlVOSU5ERU5UCi5VTklOREVOVAouc3AKSW5zdGVhZCwgdGhlIFxmQnRydWVcZlAgYnVp bHRpbiBjYW4gYmUgdXNlZDoKLklOREVOVCAwLjAKLklOREVOVCAzLjUKLnNwCi5FWAogIyBS SUdIVAogem1hdGhfY3ViZSgpIHsKICAgKCggJDEgKiAkMSAqICQxICkpCiAgIHRydWUKIH0K IGZ1bmN0aW9ucyBcLU0gY3ViZSAxIDEgem1hdGhfY3ViZQogcHJpbnQgJCgoIGN1YmUoMykg KSkKLkVFCi5VTklOREVOVAouVU5JTkRFTlQKLnNwCklmIHRoZSBhZGRpdGlvbmFsIG9wdGlv biBcZkJcLXNcZlAgaXMgZ2l2ZW4gdG8gXGZCZnVuY3Rpb25zIFwtTVxmUCwgdGhlCmFyZ3Vt ZW50IHRvIHRoZSBmdW5jdGlvbiBpcyBhIHNpbmdsZSBzdHJpbmc6IGFueXRoaW5nIGJldHdl ZW4gdGhlCm9wZW5pbmcgYW5kIG1hdGNoaW5nIGNsb3NpbmcgcGFyZW50aGVzaXMgaXMgcGFz c2VkIHRvIHRoZSBmdW5jdGlvbiBhcyBhCnNpbmdsZSBhcmd1bWVudCwgZXZlbiBpZiBpdCBp bmNsdWRlcyBjb21tYXMgb3Igd2hpdGUgc3BhY2UuICBUaGUgbWluaW11bQphbmQgbWF4aW11 bSBhcmd1bWVudCBzcGVjaWZpZXJzIG11c3QgdGhlcmVmb3JlIGJlIDEgaWYgZ2l2ZW4uICBB biBlbXB0eQphcmd1bWVudCBsaXN0IGlzIHBhc3NlZCBhcyBhIHplcm9cLWxlbmd0aCBzdHJp bmcuClRodXMsIHRoZSBmb2xsb3dpbmcgc3RyaW5nIGZ1bmN0aW9uIHRha2VzIGEgc2luZ2xl IGFyZ3VtZW50LCBpbmNsdWRpbmcKdGhlIGNvbW1hcywgYW5kIHByaW50cyAxMToKLklOREVO VCAwLjAKLklOREVOVCAzLjUKLnNwCi5FWAogc3RyaW5nZm4oKSB7ICgoICQjMSApKTsgdHJ1 ZSB9CiBmdW5jdGlvbnMgXC1NcyBzdHJpbmdmbgogcHJpbnQgJCgoIHN0cmluZ2ZuKGZvbyxi YXIscm9kKSApKQouRUUKLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCZnVuY3Rpb25zIFwt TVxmUCB3aXRoIG5vIGFyZ3VtZW50cyBsaXN0cyBhbGwgc3VjaCB1c2VyXC1kZWZpbmVkIGZ1 bmN0aW9ucyBpbgp0aGUgc2FtZSBmb3JtIGFzIGEgZGVmaW5pdGlvbi4gIFdpdGggdGhlIGFk ZGl0aW9uYWwgb3B0aW9uIFxmQlwtbVxmUCBhbmQKYSBsaXN0IG9mIGFyZ3VtZW50cywgYWxs IGZ1bmN0aW9ucyB3aG9zZSBcZkltYXRoZm5cZlAgbWF0Y2hlcyBvbmUgb2YKdGhlIHBhdHRl cm4gYXJndW1lbnRzIGFyZSBsaXN0ZWQuCi5zcApcZkJmdW5jdGlvbiArTVxmUCByZW1vdmVz IHRoZSBsaXN0IG9mIG1hdGhlbWF0aWNhbCBmdW5jdGlvbnM7IHdpdGggdGhlCmFkZGl0aW9u YWwgb3B0aW9uIFxmQlwtbVxmUCB0aGUgYXJndW1lbnRzIGFyZSB0cmVhdGVkIGFzIHBhdHRl cm5zIGFuZAphbGwgZnVuY3Rpb25zIHdob3NlIFxmSW1hdGhmblxmUCBtYXRjaGVzIHRoZSBw YXR0ZXJuIGFyZSByZW1vdmVkLiAgTm90ZQp0aGF0IHRoZSBzaGVsbCBmdW5jdGlvbiBpbXBs ZW1lbnRpbmcgdGhlIGJlaGF2aW91ciBpcyBub3QgcmVtb3ZlZAoocmVnYXJkbGVzcyBvZiB3 aGV0aGVyIGl0cyBuYW1lIGNvaW5jaWRlcyB3aXRoIFxmSW1hdGhmblxmUCkuCi5VTklOREVO VAouVU5JTkRFTlQKLnNwClxmQmdldGNhcFxmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpT ZWUgVGhlIHpzaC9jYXAgTW9kdWxlXCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQmdl dGxuXGZQIFsgXGZCXC1BY2xuZUVcZlAgXSBcZkluYW1lXGZQIC4uLgouSU5ERU5UIDAuMAou SU5ERU5UIDMuNQpSZWFkIHRoZSB0b3AgdmFsdWUgZnJvbSB0aGUgYnVmZmVyIHN0YWNrIGFu ZCBwdXQgaXQgaW4KdGhlIHNoZWxsIHBhcmFtZXRlciBcZkluYW1lXGZQXCYuICBFcXVpdmFs ZW50IHRvClxmQnJlYWQgXC16clxmUFwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJn ZXRvcHRzXGZQIFsgXGZCXC1wXGZQIF0gXGZJb3B0c3RyaW5nXGZQIFxmSW5hbWVcZlAgWyBc ZklhcmdcZlAgLi4uIF0KLklOREVOVCAwLjAKLklOREVOVCAzLjUKQ2hlY2tzIHRoZSBcZklh cmdcZlBzIGZvciBsZWdhbCBvcHRpb25zLiAgSWYgdGhlIFxmSWFyZ1xmUHMgYXJlIG9taXR0 ZWQsCnRoZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgYXJlIHVzZWQuICBBIHZhbGlkIG9wdGlv biBhcmd1bWVudApiZWdpbnMgd2l0aCBhIFxmQitcZlAgb3IgYSBcZkJcLVxmUFwmLiAgQW4g YXJndW1lbnQgbm90IGJlZ2lubmluZyB3aXRoCmEgXGZCK1xmUCBvciBhIFxmQlwtXGZQLCBv ciB0aGUgYXJndW1lbnQgXGZCXC1cZlBcZkJcLVxmUCwgZW5kcyB0aGUgb3B0aW9ucy4KTm90 ZSB0aGF0IGEgc2luZ2xlIFxmQlwtXGZQIGlzIG5vdCBjb25zaWRlcmVkIGEgdmFsaWQgb3B0 aW9uIGFyZ3VtZW50LgpcZklvcHRzdHJpbmdcZlAgY29udGFpbnMgdGhlIGxldHRlcnMgdGhh dCBcZkJnZXRvcHRzXGZQCnJlY29nbml6ZXMuICBJZiBhIGxldHRlciBpcyBmb2xsb3dlZCBi eSBhIFxmQjpcZlAsIHRoYXQgb3B0aW9uCnJlcXVpcmVzIGFuIGFyZ3VtZW50LiAgVGhlIGFy Z3VtZW50IG1heSBhcHBlYXIgZWl0aGVyIGltbWVkaWF0ZWx5CmZvbGxvd2luZyB0aGUgb3B0 aW9uIGluIHRoZSBzYW1lIHdvcmQsIG9yIGluIHRoZSBuZXh0IHdvcmQuCi5zcApFYWNoIHRp bWUgaXQgaXMgaW52b2tlZCwgXGZCZ2V0b3B0c1xmUCBwbGFjZXMgdGhlIG9wdGlvbiBsZXR0 ZXIgaXQgZmluZHMKaW4gdGhlIHNoZWxsIHBhcmFtZXRlciBcZkluYW1lXGZQLCBwcmVwZW5k ZWQgd2l0aCBhIFxmQitcZlAgd2hlbgpcZklhcmdcZlAgYmVnaW5zIHdpdGggYSBcZkIrXGZQ XCYuICBUaGUgaW5kZXggb2YgdGhlIG5leHQgXGZJYXJnXGZQCmlzIHN0b3JlZCBpbiBcZkJP UFRJTkRcZlBcJi4gIFRoZSBvcHRpb24gYXJndW1lbnQsIGlmIGFueSwKaXMgc3RvcmVkIGlu IFxmQk9QVEFSR1xmUFwmLgpcJi4uIGluZGV4Ojogc2luZ2xlOiBPUFRJTkQsIHVzZSBvZjsg VmFyaWFibGUKLnNwCldoZW4gdGhlIHRlcm1pbmF0b3IgXGZCXC1cZlBcZkJcLVxmUCBpcyBl bmNvdW50ZXJlZCwgXGZCT1BUSU5EXGZQIGlzCmluY3JlbWVudGVkIHN1Y2ggdGhhdCBpdCBj YW4gYmUgXGZCc2hpZnRcZlBlZCBhd2F5IHdpdGggdGhlIG9wdGlvbnMuICBUaGlzCmlzIG5v dCB0cnVlIG9mIG90aGVyIG5vblwtb3B0aW9uIGFyZ3VtZW50cywgaW5jbHVkaW5nIGEgc2lu Z2xlIFxmQlwtXGZQXCYuCi5zcApUaGUgZmlyc3Qgb3B0aW9uIHRvIGJlIGV4YW1pbmVkIG1h eSBiZSBjaGFuZ2VkIGJ5IGV4cGxpY2l0bHkgYXNzaWduaW5nCnRvIFxmQk9QVElORFxmUFwm LiAgXGZCT1BUSU5EXGZQIGhhcyBhbiBpbml0aWFsIHZhbHVlIG9mIFxmQjFcZlAsIGFuZCBp cwpub3JtYWxseSBzZXQgdG8gXGZCMVxmUCB1cG9uIGVudHJ5IHRvIGEgc2hlbGwgZnVuY3Rp b24gYW5kIHJlc3RvcmVkCnVwb24gZXhpdC4gIFxmQk9QVEFSR1xmUCBpcyBub3QgcmVzZXQg YW5kIHJldGFpbnMgaXRzIHZhbHVlIGZyb20gdGhlIG1vc3QKcmVjZW50IGNhbGwgdG8gXGZC Z2V0b3B0c1xmUFwmLiAgSWYgZWl0aGVyIG9mIFxmQk9QVElORFxmUCBvciBcZkJPUFRBUkdc ZlAgaXMKZXhwbGljaXRseSB1bnNldCwgaXQgcmVtYWlucyB1bnNldCwgYW5kIHRoZSBpbmRl eCBvciBvcHRpb24gYXJndW1lbnQgaXMKbm90IHN0b3JlZC4gIFRoZSBvcHRpb24gaXRzZWxm IGlzIHN0aWxsIHN0b3JlZCBpbiBcZkluYW1lXGZQIGluIHRoaXMgY2FzZS4KLnNwCkEgbGVh ZGluZyBcZkI6XGZQIGluIFxmSW9wdHN0cmluZ1xmUCBjYXVzZXMgXGZCZ2V0b3B0c1xmUCB0 byBzdG9yZSB0aGUKbGV0dGVyIG9mIGFueSBpbnZhbGlkIG9wdGlvbiBpbiBcZkJPUFRBUkdc ZlAsIGFuZCB0byBzZXQgXGZJbmFtZVxmUCB0bwpcZkI/XGZQIGZvciBhbiB1bmtub3duIG9w dGlvbiBhbmQgdG8gXGZCOlxmUCB3aGVuIGEgcmVxdWlyZWQgYXJndW1lbnQgaXMKbWlzc2lu Zy4gIE90aGVyd2lzZSwgXGZCZ2V0b3B0c1xmUCBzZXRzIFxmSW5hbWVcZlAgdG8gXGZCP1xm UCBhbmQgcHJpbnRzCmFuIGVycm9yIG1lc3NhZ2Ugd2hlbiBhbiBvcHRpb24gaXMgaW52YWxp ZC4gIFRoZSBleGl0IHN0YXR1cyBpcwpub256ZXJvIHdoZW4gdGhlcmUgYXJlIG5vIG1vcmUg b3B0aW9ucy4KLnNwCldoZW4gZWl0aGVyIHRoZSBcZkJQT1NJWF9CVUlMVElOU1xmUCBvcHRp b24gaXMgZW5hYmxlZCBvciB0aGUgXGZCXC1wXGZQCm9wdGlvbiBpcyBnaXZlbiB0byBcZkJn ZXRvcHRzXGZQIGl0c2VsZiwgXGZCZ2V0b3B0c1xmUCBiZWhhdmVzIGluIGEgbW9yZQpQT1NJ WFwtY29tcGF0aWJsZSBtYW5uZXIuICBTcGVjaWZpY2FsbHksIGhhbmRsaW5nIG9mClxmQitc ZlBcLXByZWZpeGVkIG9wdGlvbnMgaXMgZGlzYWJsZWQgKHRoZXkgYXJlIHRyZWF0ZWQgYXMK bm9uXC1vcHRpb25zKSBhbmQgdGhlIHZhbHVlIG9mIFxmQk9QVElORFxmUCBpcyBjYWxjdWxh dGVkIGRpZmZlcmVudGx5LgpBZGRpdGlvbmFsbHksIHdpdGggXGZCUE9TSVhfQlVJTFRJTlNc ZlAgKGJ1dCBub3Qgd2l0aCBcZkJcLXBcZlApLCB0aGUgdmFsdWUKb2YgXGZCT1BUSU5EXGZQ IGlzIG5vdCBrZXB0IGxvY2FsIHRvIHRoZSBjYWxsaW5nIGZ1bmN0aW9uLgouVU5JTkRFTlQK LlVOSU5ERU5UCi5zcApcZkJoYXNoXGZQIFsgXGZCXC1MZGZtcnZcZlAgXSBbIFxmSW5hbWVc ZlBbXGZCPVxmUFxmSXZhbHVlXGZQXSBdIC4uLgouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpc ZkJoYXNoXGZQIGNhbiBiZSB1c2VkIHRvIGRpcmVjdGx5IG1vZGlmeSB0aGUgY29udGVudHMg b2YgdGhlIGNvbW1hbmQKaGFzaCB0YWJsZSwgYW5kIHRoZSBuYW1lZCBkaXJlY3RvcnkgaGFz aCB0YWJsZS4gIE5vcm1hbGx5IG9uZSB3b3VsZAptb2RpZnkgdGhlc2UgdGFibGVzIGJ5IG1v ZGlmeWluZyBvbmVcKGFxcyBcZkJQQVRIXGZQCihmb3IgdGhlIGNvbW1hbmQgaGFzaCB0YWJs ZSkgb3IgYnkgY3JlYXRpbmcgYXBwcm9wcmlhdGUgc2hlbGwgcGFyYW1ldGVycwooZm9yIHRo ZSBuYW1lZCBkaXJlY3RvcnkgaGFzaCB0YWJsZSkuClRoZSBjaG9pY2Ugb2YgaGFzaCB0YWJs ZSB0byB3b3JrIG9uIGlzIGRldGVybWluZWQgYnkgdGhlIFxmQlwtZFxmUCBvcHRpb247Cndp dGhvdXQgdGhlIG9wdGlvbiB0aGUgY29tbWFuZCBoYXNoIHRhYmxlIGlzIHVzZWQsIGFuZCB3 aXRoIHRoZSBvcHRpb24gdGhlCm5hbWVkIGRpcmVjdG9yeSBoYXNoIHRhYmxlIGlzIHVzZWQu Ci5zcApBIGNvbW1hbmQgXGZJbmFtZVxmUCBzdGFydGluZyB3aXRoIGEgXGZCL1xmUCBvciB3 aXRoIGEgcmVsYXRpdmUgcGF0aApzdGFydGluZyB3aXRoIFxmQlwmLi9cZlAgb3IgXGZCXCYu Li9cZlAgaXMgbmV2ZXIgZXhlY3V0ZWQgYnkgbG9va3VwIGluCnRoZSBjb21tYW5kIGhhc2gg dGFibGUsIGFuZCB0aGVzZSBjYW4gb25seSBiZSBhZGRlZCB0byB0aGUgdGFibGUgYnkKZXhw bGljaXQgdXNlIG9mIHRoZSBcZkJoYXNoXGZQIGNvbW1hbmQuICBTdWNoIGEgY29tbWFuZCBp cyBhbHdheXMKZm91bmQgYnkgZGlyZWN0IGxvb2sgdXAgaW4gdGhlIGZpbGUgc3lzdGVtLgou c3AKR2l2ZW4gbm8gYXJndW1lbnRzLCBhbmQgbmVpdGhlciB0aGUgXGZCXC1yXGZQIG9yIFxm QlwtZlxmUCBvcHRpb25zLAp0aGUgc2VsZWN0ZWQgaGFzaCB0YWJsZSB3aWxsIGJlIGxpc3Rl ZCBpbiBmdWxsLgouc3AKVGhlIFxmQlwtclxmUCBvcHRpb24gY2F1c2VzIHRoZSBzZWxlY3Rl ZCBoYXNoIHRhYmxlIHRvIGJlIGVtcHRpZWQuCkl0IHdpbGwgYmUgc3Vic2VxdWVudGx5IHJl YnVpbHQgaW4gdGhlIG5vcm1hbCBmYXNoaW9uLgpUaGUgXGZCXC1mXGZQIG9wdGlvbiBjYXVz ZXMgdGhlIHNlbGVjdGVkIGhhc2ggdGFibGUgdG8gYmUgZnVsbHkKcmVidWlsdCBpbW1lZGlh dGVseS4gIEZvciB0aGUgY29tbWFuZCBoYXNoIHRhYmxlIHRoaXMgaGFzaGVzCmFsbCAoYW5k IFxmSW9ubHlcZlApIHRoZSBhYnNvbHV0ZSBkaXJlY3RvcmllcyBpbiB0aGUgXGZCUEFUSFxm UCwKYW5kIGZvciB0aGUgbmFtZWQgZGlyZWN0b3J5IGhhc2ggdGFibGUgdGhpcyBhZGRzIGFs bCB1c2Vyc1woYXEgaG9tZQpkaXJlY3Rvcmllcy4KVGhlc2UgdHdvIG9wdGlvbnMgY2Fubm90 IGJlIHVzZWQgd2l0aCBhbnkgYXJndW1lbnRzLgpCb3RoIG9wdGlvbnMgcmVtb3ZlIGFueSBl eHBsaWNpdGx5XC1hZGRlZCBlbGVtZW50cy4KLnNwClRoZSBcZkJcLW1cZlAgb3B0aW9uIGNh dXNlcyB0aGUgYXJndW1lbnRzIHRvIGJlIHRha2VuIGFzIHBhdHRlcm5zCih3aGljaCBzaG91 bGQgYmUgcXVvdGVkKSBhbmQgdGhlIGVsZW1lbnRzIG9mIHRoZSBoYXNoIHRhYmxlCm1hdGNo aW5nIHRob3NlIHBhdHRlcm5zIGFyZSBwcmludGVkLiAgVGhpcyBpcyB0aGUgb25seSB3YXkg dG8gZGlzcGxheQphIGxpbWl0ZWQgc2VsZWN0aW9uIG9mIGhhc2ggdGFibGUgZWxlbWVudHMu Ci5zcApGb3IgZWFjaCBcZkluYW1lXGZQIHdpdGggYSBjb3JyZXNwb25kaW5nIFxmSXZhbHVl XGZQLCBwdXQgXGZJbmFtZVxmUCBpbgp0aGUgc2VsZWN0ZWQgaGFzaCB0YWJsZSwgYXNzb2Np YXRpbmcgaXQgd2l0aCB0aGUgcGF0aG5hbWUgXGZJdmFsdWVcZlBcJi4KSW4gdGhlIGNvbW1h bmQgaGFzaCB0YWJsZSwgdGhpcyBtZWFucyB0aGF0CndoZW5ldmVyIFxmSW5hbWVcZlAgaXMg dXNlZCBhcyBhIGNvbW1hbmQgYXJndW1lbnQsIHRoZSBzaGVsbCB3aWxsIHRyeQp0byBleGVj dXRlIHRoZSBmaWxlIGdpdmVuIGJ5IFxmSXZhbHVlXGZQXCYuCkluIHRoZSBuYW1lZCBkaXJl Y3RvcnkgaGFzaCB0YWJsZSwgdGhpcyBtZWFucwp0aGF0IFxmSXZhbHVlXGZQIG1heSBiZSBy ZWZlcnJlZCB0byBhcyBcZkJ+XGZQXGZJbmFtZVxmUFwmLgouc3AKRm9yIGVhY2ggXGZJbmFt ZVxmUCB3aXRoIG5vCmNvcnJlc3BvbmRpbmcgXGZJdmFsdWVcZlAsIGF0dGVtcHQgdG8gYWRk IFxmSW5hbWVcZlAgdG8gdGhlIGhhc2ggdGFibGUsCmNoZWNraW5nIHdoYXQgdGhlIGFwcHJv cHJpYXRlIFxmQnZhbHVlXGZQIGlzIGluIHRoZSBub3JtYWwgbWFubmVyIGZvcgp0aGF0IGhh c2ggdGFibGUuICBJZiBhbiBhcHByb3ByaWF0ZSBcZkJ2YWx1ZVxmUCBjYW5cKGFxdCBiZSBm b3VuZCwgdGhlbgp0aGUgaGFzaCB0YWJsZSB3aWxsIGJlIHVuY2hhbmdlZC4KLnNwClRoZSBc ZkJcLXZcZlAgb3B0aW9uIGNhdXNlcyBoYXNoIHRhYmxlIGVudHJpZXMgdG8gYmUgbGlzdGVk IGFzIHRoZXkgYXJlCmFkZGVkIGJ5IGV4cGxpY2l0IHNwZWNpZmljYXRpb24uICBJZiBoYXMg bm8gZWZmZWN0IGlmIHVzZWQgd2l0aCBcZkJcLWZcZlBcJi4KLnNwCklmIHRoZSBcZkJcLUxc ZlAgZmxhZyBpcyBwcmVzZW50LCB0aGVuIGVhY2ggaGFzaCB0YWJsZSBlbnRyeSBpcyBwcmlu dGVkIGluCnRoZSBmb3JtIG9mIGEgY2FsbCB0byBoYXNoLgouVU5JTkRFTlQKLlVOSU5ERU5U Ci5zcApcZkJoaXN0b3J5XGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClNhbWUgYXMgXGZC ZmMgXC1sXGZQXCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQmludGVnZXJcZlAgWyB7 XGZCK3xcLX1IZ2hscHJ0dXhcZlAgXSBbIHtcZkIrfFwtfUxSWmlcZlAgWyBcZkluXGZQIF0g XSBbIFxmSW5hbWVcZlBbXGZCPVxmUFxmSXZhbHVlXGZQXSAuLi4gXQouSU5ERU5UIDAuMAou SU5ERU5UIDMuNQpFcXVpdmFsZW50IHRvIFxmQnR5cGVzZXQgXC1pXGZQLCBleGNlcHQgdGhh dCBvcHRpb25zIGlycmVsZXZhbnQgdG8KaW50ZWdlcnMgYXJlIG5vdCBwZXJtaXR0ZWQuCi5V TklOREVOVAouVU5JTkRFTlQKLnNwClxmQmpvYnNcZlAgWyBcZkJcLWRscHJzXGZQIF0gWyBc Zklqb2JcZlAgLi4uIF0KLnNwClxmQmpvYnMgXC1aXGZQIFxmSXN0cmluZ1xmUAouSU5ERU5U IDAuMAouSU5ERU5UIDMuNQpMaXN0cyBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIGdpdmVuIGpv Yiwgb3IgYWxsIGpvYnMKaWYgXGZJam9iXGZQIGlzIG9taXR0ZWQuICBUaGUgXGZCXC1sXGZQ IGZsYWcgbGlzdHMgcHJvY2VzcwpJRHMsIGFuZCB0aGUgXGZCXC1wXGZQIGZsYWcgbGlzdHMg cHJvY2VzcyBncm91cHMuCklmIHRoZSBcZkJcLXJcZlAgZmxhZyBpcyBzcGVjaWZpZWQgb25s eSBydW5uaW5nIGpvYnMgd2lsbCBiZSBsaXN0ZWQKYW5kIGlmIHRoZSBcZkJcLXNcZlAgZmxh ZyBpcyBnaXZlbiBvbmx5IHN0b3BwZWQgam9icyBhcmUgc2hvd24uCklmIHRoZSBcZkJcLWRc ZlAgZmxhZyBpcyBnaXZlbiwgdGhlIGRpcmVjdG9yeSBmcm9tIHdoaWNoIHRoZSBqb2Igd2Fz CnN0YXJ0ZWQgKHdoaWNoIG1heSBub3QgYmUgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG9mIHRo ZSBqb2IpIHdpbGwgYWxzbwpiZSBzaG93bi4KLnNwClRoZSBcZkJcLVpcZlAgb3B0aW9uIHJl cGxhY2VzIHRoZSBzaGVsbFwoYXFzIGFyZ3VtZW50IGFuZCBlbnZpcm9ubWVudCBzcGFjZSB3 aXRoCnRoZSBnaXZlbiBzdHJpbmcsIHRydW5jYXRlZCBpZiBuZWNlc3NhcnkgdG8gZml0LiAg VGhpcyB3aWxsIG5vcm1hbGx5IGJlCnZpc2libGUgaW4gXGZCcHNcZlAgKFxmQnBzKDEpXGZQ KSBsaXN0aW5ncy4gIFRoaXMgZmVhdHVyZSBpcyB0eXBpY2FsbHkKdXNlZCBieSBkYWVtb25z LCB0byBpbmRpY2F0ZSB0aGVpciBzdGF0ZS4KLnNwCkZ1bGwgam9iIGNvbnRyb2wgaXMgb25s eSBhdmFpbGFibGUgaW4gdGhlIHRvcFwtbGV2ZWwgaW50ZXJhY3RpdmUgc2hlbGwsCm5vdCBp biBjb21tYW5kcyBydW4gaW4gdGhlIGxlZnQgaGFuZCBzaWRlIG9mIHBpcGVsaW5lcyBvciB3 aXRoaW4KdGhlIFxmQihcZlBcZklcJi4uLlxmUFxmQilcZlAgY29uc3RydWN0LiAgSG93ZXZl ciwgYSBzbmFwc2hvdApvZiB0aGUgam9iIHN0YXRlIGF0IHRoYXQgcG9pbnQgaXMgdGFrZW4s IHNvIGl0IGlzIHN0aWxsIHBvc3NpYmxlCnRvIHVzZSB0aGUgXGZCam9ic1xmUCBidWlsdGlu LCBvciBhbnkgcGFyYW1ldGVyIHByb3ZpZGluZyBqb2IgaW5mb3JtYXRpb24uClRoaXMgZ2l2 ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN0YXRlIG9mIGpvYnMgYXQgdGhlIHBvaW50IHRo ZSBzdWJzaGVsbAp3YXMgY3JlYXRlZC4gIElmIGJhY2tncm91bmQgcHJvY2Vzc2VzIGFyZSBj cmVhdGVkIHdpdGhpbiB0aGUgc3Vic2hlbGwsCnRoZW4gaW5zdGVhZCBpbmZvcm1hdGlvbiBh Ym91dCB0aG9zZSBwcm9jZXNzZXMgaXMgcHJvdmlkZWQuCi5zcApGb3IgZXhhbXBsZSwKLklO REVOVCAwLjAKLklOREVOVCAzLjUKLnNwCi5FWAogc2xlZXAgMTAgJiAgICAjIEpvYiBpbiBi YWNrZ3JvdW5kCiAoICAgICAgICAgICAgICMgU2hlbGwgZm9ya3MKIGpvYnMgICAgICAgICAg IyBTaG93cyBpbmZvcm1hdGlvbiBhYm91dCBcKGRxc2xlZXAgMTAgJlwoZHEKIHNsZWVwIDUg JiAgICAgIyBQcm9jZXNzIGluIGJhY2tncm91bmQgKG5vIGpvYiBjb250cm9sKQogam9icyAg ICAgICAgICAjIFNob3dzIGluZm9ybWF0aW9uIGFib3V0IFwoZHFzbGVlcCA1ICZcKGRxCiAp Ci5FRQouVU5JTkRFTlQKLlVOSU5ERU5UCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQmtp bGxcZlAgWyBcZkJcLXNcZlAgXGZJc2lnbmFsX25hbWVcZlAgfCBcZkJcLW5cZlAgXGZJc2ln bmFsX251bWJlclxmUCB8IFxmQlwtXGZQXGZJc2lnXGZQIF0gWyBcZkJcLXFcZlAgXGZJdmFs dWVcZlAgXSBcZklqb2JcZlAgLi4uCi5zcApcZkJraWxsXGZQIFxmQlwtbFxmUCBbIFxmSXNp Z1xmUCAuLi4gXQouc3AKXGZCa2lsbFxmUCBcZkJcLUxcZlAKLklOREVOVCAwLjAKLklOREVO VCAzLjUKU2VuZHMgZWl0aGVyIFxmQlNJR1RFUk1cZlAgb3IgdGhlIHNwZWNpZmllZCBzaWdu YWwgdG8gdGhlIGdpdmVuCmpvYnMgb3IgcHJvY2Vzc2VzLgpTaWduYWxzIGFyZSBnaXZlbiBi eSBudW1iZXIgb3IgYnkgbmFtZXMsIHdpdGggb3Igd2l0aG91dCB0aGUgXGZCU0lHXGZQCnBy ZWZpeC4KSWYgdGhlIHNpZ25hbCBiZWluZyBzZW50IGlzIG5vdCBcZkJLSUxMXGZQIG9yIFxm QkNPTlRcZlAsIHRoZW4gdGhlIGpvYgp3aWxsIGJlIHNlbnQgYSBcZkJDT05UXGZQIHNpZ25h bCBpZiBpdCBpcyBzdG9wcGVkLgpUaGUgYXJndW1lbnQgXGZJam9iXGZQIGNhbiBiZSB0aGUg cHJvY2VzcyBJRCBvZiBhIGpvYgpub3QgaW4gdGhlIGpvYiBsaXN0LgpJbiB0aGUgc2Vjb25k IGZvcm0sIFxmQmtpbGwgXC1sXGZQLCBpZiBcZklzaWdcZlAgaXMgbm90CnNwZWNpZmllZCB0 aGUgc2lnbmFsIG5hbWVzIGFyZSBsaXN0ZWQuICBPdGhlcndpc2UsIGZvciBlYWNoClxmSXNp Z1xmUCB0aGF0IGlzIGEgbmFtZSwgdGhlIGNvcnJlc3BvbmRpbmcgc2lnbmFsIG51bWJlciBp cwpsaXN0ZWQuICBGb3IgZWFjaCBcZklzaWdcZlAgdGhhdCBpcyBhIHNpZ25hbCBudW1iZXIg b3IgYSBudW1iZXIKcmVwcmVzZW50aW5nIHRoZSBleGl0IHN0YXR1cyBvZiBhIHByb2Nlc3Mg d2hpY2ggd2FzIHRlcm1pbmF0ZWQgb3IKc3RvcHBlZCBieSBhIHNpZ25hbCB0aGUgbmFtZSBv ZiB0aGUgc2lnbmFsIGlzIHByaW50ZWQuICBUaGUgZmluYWwKZm9ybSB3aXRoIFxmQlwtTFxm UCBsaXN0cyBlYWNoIHNpZ25hbCBuYW1lIHdpdGggaXRzIGNvcnJlc3BvbmRpbmcgbnVtYmVy Lgouc3AKT24gc29tZSBzeXN0ZW1zLCBhbHRlcm5hdGl2ZSBzaWduYWwgbmFtZXMgYXJlIGFs bG93ZWQgZm9yIGEgZmV3IHNpZ25hbHMuClR5cGljYWwgZXhhbXBsZXMgYXJlIFxmQlNJR0NI TERcZlAgYW5kIFxmQlNJR0NMRFxmUCBvciBcZkJTSUdQT0xMXGZQIGFuZApcZkJTSUdJT1xm UCwgYXNzdW1pbmcgdGhleSBjb3JyZXNwb25kIHRvIHRoZSBzYW1lIHNpZ25hbCBudW1iZXIu ICBcZkJraWxsClwtbCBcKGdhXChnYXdpbGwgb25seSBsaXN0IHRoZSBwcmVmZXJyZWQgZm9y bSwgaG93ZXZlclxmUCBraWxsIFwtbFwoZ2FcKGdhIFxmSWFsdFxmUCB3aWxsCnNob3cgaWYg dGhlIGFsdGVybmF0aXZlIGZvcm0gY29ycmVzcG9uZHMgdG8gYSBzaWduYWwgbnVtYmVyLiAg Rm9yIGV4YW1wbGUsCnVuZGVyIExpbnV4IFxmQmtpbGwgXC1sIElPXGZQIGFuZCBcZkJraWxs IFwtbCBQT0xMXGZQIGJvdGggb3V0cHV0IDI5LCBoZW5jZQpcZkJraWxsIFwtSU9cZlAgYW5k IFxmQmtpbGwgXC1QT0xMXGZQIGhhdmUgdGhlIHNhbWUgZWZmZWN0Lgouc3AKTWFueSBzeXN0 ZW1zIHdpbGwgYWxsb3cgcHJvY2VzcyBJRHMgdG8gYmUgbmVnYXRpdmUgdG8ga2lsbCBhIHBy b2Nlc3MKZ3JvdXAgb3IgemVybyB0byBraWxsIHRoZSBjdXJyZW50IHByb2Nlc3MgZ3JvdXAu Ci5zcApUaGUgXGZCXC1xXGZQIG9wdGlvbiBhbGxvd3MgYW4gaW50ZWdlciB2YWx1ZSB0byBi ZSBzZW50IHdpdGggdGhlIHNpZ25hbApvbiBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBcZkJzaWdx dWV1ZSgpXGZQXCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQmxldFxmUCBcZklhcmdc ZlAgLi4uCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkV2YWx1YXRlIGVhY2ggXGZJYXJnXGZQ IGFzIGFuIGFyaXRobWV0aWMgZXhwcmVzc2lvbi4KU2VlIEFyaXRobWV0aWMgRXZhbHVhdGlv bgpmb3IgYSBkZXNjcmlwdGlvbiBvZiBhcml0aG1ldGljIGV4cHJlc3Npb25zLiAgVGhlIGV4 aXQgc3RhdHVzIGlzIDAgaWYgdGhlCnZhbHVlIG9mIHRoZSBsYXN0IGV4cHJlc3Npb24gaXMg bm9uemVybywgMSBpZiBpdCBpcyB6ZXJvLCBhbmQgMiBpZgphbiBlcnJvciBvY2N1cnJlZC4K LlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCbGltaXRcZlAgWyBcZkJcLWhzXGZQIF0gWyBc ZklyZXNvdXJjZVxmUCBbIFxmSWxpbWl0XGZQIF0gXSAuLi4KLklOREVOVCAwLjAKLklOREVO VCAzLjUKU2V0IG9yIGRpc3BsYXkgcmVzb3VyY2UgbGltaXRzLiAgVW5sZXNzIHRoZSBcZkJc LXNcZlAgZmxhZyBpcyBnaXZlbiwKdGhlIGxpbWl0IGFwcGxpZXMgb25seSB0aGUgY2hpbGRy ZW4gb2YgdGhlIHNoZWxsLiAgSWYgXGZCXC1zXGZQIGlzCmdpdmVuIHdpdGhvdXQgb3RoZXIg YXJndW1lbnRzLCB0aGUgcmVzb3VyY2UgbGltaXRzIG9mIHRoZSBjdXJyZW50CnNoZWxsIGlz IHNldCB0byB0aGUgcHJldmlvdXNseSBzZXQgcmVzb3VyY2UgbGltaXRzIG9mIHRoZSBjaGls ZHJlbi4KLnNwCklmIFxmSWxpbWl0XGZQIGlzIG5vdCBzcGVjaWZpZWQsIHByaW50IHRoZSBj dXJyZW50IGxpbWl0IHBsYWNlZApvbiBcZklyZXNvdXJjZVxmUCwgb3RoZXJ3aXNlCnNldCB0 aGUgbGltaXQgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4gIElmIHRoZSBcZkJcLWhcZlAgZmxh ZwppcyBnaXZlbiwgdXNlIGhhcmQgbGltaXRzIGluc3RlYWQgb2Ygc29mdCBsaW1pdHMuCklm IG5vIFxmSXJlc291cmNlXGZQIGlzIGdpdmVuLCBwcmludCBhbGwgbGltaXRzLgouc3AKV2hl biBsb29waW5nIG92ZXIgbXVsdGlwbGUgcmVzb3VyY2VzLCB0aGUgc2hlbGwgd2lsbCBhYm9y dCBpbW1lZGlhdGVseSBpZgppdCBkZXRlY3RzIGEgYmFkbHkgZm9ybWVkIGFyZ3VtZW50LiAg SG93ZXZlciwgaWYgaXQgZmFpbHMgdG8gc2V0IGEgbGltaXQKZm9yIHNvbWUgb3RoZXIgcmVh c29uIGl0IHdpbGwgY29udGludWUgdHJ5aW5nIHRvIHNldCB0aGUgcmVtYWluaW5nIGxpbWl0 cy4KLnNwClxmSXJlc291cmNlXGZQIGNhbiBiZSBvbmUgb2Y6Ci5JTkRFTlQgMC4wCi5UUAou QiBcZkJhZGRyZXNzc3BhY2VcZlAKTWF4aW11bSBhbW91bnQgb2YgYWRkcmVzcyBzcGFjZSB1 c2VkLgouVFAKLkIgXGZCYWlvbWVtb3J5bG9ja2VkXGZQCk1heGltdW0gYW1vdW50IG9mIG1l bW9yeSBsb2NrZWQgaW4gUkFNIGZvciBBSU8gb3BlcmF0aW9ucy4KLlRQCi5CIFxmQmFpb29w ZXJhdGlvbnNcZlAKTWF4aW11bSBudW1iZXIgb2YgQUlPIG9wZXJhdGlvbnMuCi5UUAouQiBc ZkJjYWNoZWR0aHJlYWRzXGZQCk1heGltdW0gbnVtYmVyIG9mIGNhY2hlZCB0aHJlYWRzLgou VFAKLkIgXGZCY29yZWR1bXBzaXplXGZQCk1heGltdW0gc2l6ZSBvZiBhIGNvcmUgZHVtcC4K LlRQCi5CIFxmQmNwdXRpbWVcZlAKTWF4aW11bSBDUFUgc2Vjb25kcyBwZXIgcHJvY2Vzcy4K LlRQCi5CIFxmQmRhdGFzaXplXGZQCk1heGltdW0gZGF0YSBzaXplIChpbmNsdWRpbmcgc3Rh Y2spIGZvciBlYWNoIHByb2Nlc3MuCi5UUAouQiBcZkJkZXNjcmlwdG9yc1xmUApNYXhpbXVt IHZhbHVlIGZvciBhIGZpbGUgZGVzY3JpcHRvci4KLlRQCi5CIFxmQmZpbGVzaXplXGZQCkxh cmdlc3Qgc2luZ2xlIGZpbGUgYWxsb3dlZC4KLlRQCi5CIFxmQmtxdWV1ZXNcZlAKTWF4aW11 bSBudW1iZXIgb2Yga3F1ZXVlcyBhbGxvY2F0ZWQuCi5UUAouQiBcZkJtYXhmaWxlbG9ja3Nc ZlAKTWF4aW11bSBudW1iZXIgb2YgZmlsZSBsb2Nrcy4KLlRQCi5CIFxmQm1heHByb2NcZlAK TWF4aW11bSBudW1iZXIgb2YgcHJvY2Vzc2VzLgouVFAKLkIgXGZCbWF4cHRocmVhZHNcZlAK TWF4aW11bSBudW1iZXIgb2YgdGhyZWFkcyBwZXIgcHJvY2Vzcy4KLlRQCi5CIFxmQm1lbW9y eWxvY2tlZFxmUApNYXhpbXVtIGFtb3VudCBvZiBtZW1vcnkgbG9ja2VkIGluIFJBTS4KLlRQ Ci5CIFxmQm1lbW9yeXVzZVxmUApNYXhpbXVtIHJlc2lkZW50IHNldCBzaXplLgouVFAKLkIg XGZCbXNncXVldWVcZlAKTWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgaW4gUE9TSVggbWVzc2Fn ZSBxdWV1ZXMuCi5UUAouQiBcZkJuaWNlXGZQCk1heGltdW0gbmljZSB2YWx1ZS4KLlRQCi5C IFxmQnBpcGVidWZcZlAKTWF4aW11bSBzaXplIG9mIGJ1ZmZlcnMgZm9yIHBpcGVzL2ZpZm9z LgouVFAKLkIgXGZCcG9zaXhsb2Nrc1xmUApNYXhpbXVtIG51bWJlciBvZiBQT1NJWCBsb2Nr cyBwZXIgdXNlci4KLlRQCi5CIFxmQnBzZXVkb3Rlcm1pbmFsc1xmUApNYXhpbXVtIG51bWJl ciBvZiBwc2V1ZG9cLXRlcm1pbmFscy4KLlRQCi5CIFxmQnJlc2lkZW50XGZQCk1heGltdW0g cmVzaWRlbnQgc2V0IHNpemUuCi5UUAouQiBcZkJydF9wcmlvcml0eVxmUApNYXhpbXVtIHJl YWxcLXRpbWUgcHJpb3JpdHkuCi5UUAouQiBcZkJydF90aW1lXGZQCk1heGltdW0gQ1BVIHRp bWUgd2l0aG91dCBhIGJsb2NraW5nIHN5c3RlbSBjYWxsLgouVFAKLkIgXGZCc2lncGVuZGlu Z1xmUApNYXhpbXVtIG51bWJlciBvZiBwZW5kaW5nIHNpZ25hbHMuCi5UUAouQiBcZkJzb2Nr YnVmc2l6ZVxmUApNYXhpbXVtIHNpemUgb2YgYWxsIHNvY2tldCBidWZmZXJzLgouVFAKLkIg XGZCc3RhY2tzaXplXGZQCk1heGltdW0gc3RhY2sgc2l6ZSBmb3IgZWFjaCBwcm9jZXNzLgou VFAKLkIgXGZCc3dhcHNpemVcZlAKTWF4aW11bSBhbW91bnQgb2Ygc3dhcCB1c2VkLgouVFAK LkIgXGZCdW10eHBcZlAKTWF4aW11bSBudW1iZXIgb2YgUE9TSVggdGhyZWFkIGxpYnJhcnkg b2JqZWN0cy4KLlRQCi5CIFxmQnZtZW1vcnlzaXplXGZQCk1heGltdW0gYW1vdW50IG9mIHZp cnR1YWwgbWVtb3J5LgouVFAKLkIgXGZCdm5vZGVtb25pdG9yc1xmUApNYXhpbXVtIG51bWJl ciBvZiBvcGVuIHZub2RlIG1vbml0b3JzLgouVU5JTkRFTlQKLnNwCldoaWNoIG9mIHRoZXNl IHJlc291cmNlIGxpbWl0cyBhcmUgYXZhaWxhYmxlIGRlcGVuZHMgb24gdGhlIHN5c3RlbS4K XGZJcmVzb3VyY2VcZlAgY2FuIGJlIGFiYnJldmlhdGVkIHRvIGFueSB1bmFtYmlndW91cyBw cmVmaXguICBJdApjYW4gYWxzbyBiZSBhbiBpbnRlZ2VyLCB3aGljaCBjb3JyZXNwb25kcyB0 byB0aGUgaW50ZWdlciBkZWZpbmVkCmZvciB0aGUgcmVzb3VyY2UgYnkgdGhlIG9wZXJhdGlu ZyBzeXN0ZW0uCi5zcApJZiBhcmd1bWVudCBjb3JyZXNwb25kcyB0byBhIG51bWJlciB3aGlj aCBpcyBvdXQgb2YgdGhlIHJhbmdlIG9mIHRoZQpyZXNvdXJjZXMgY29uZmlndXJlZCBpbnRv IHRoZSBzaGVsbCwgdGhlIHNoZWxsIHdpbGwgdHJ5IHRvIHJlYWQgb3Igd3JpdGUKdGhlIGxp bWl0IGFueXdheSwgYW5kIHdpbGwgcmVwb3J0IGFuIGVycm9yIGlmIHRoaXMgZmFpbHMuICBB cyB0aGUgc2hlbGwKZG9lcyBub3Qgc3RvcmUgc3VjaCByZXNvdXJjZXMgaW50ZXJuYWxseSwg YW4gYXR0ZW1wdCB0byBzZXQgdGhlIGxpbWl0IHdpbGwKZmFpbCB1bmxlc3MgdGhlIFxmQlwt c1xmUCBvcHRpb24gaXMgcHJlc2VudC4KLnNwClxmSWxpbWl0XGZQIGlzIGEgbnVtYmVyLCB3 aXRoIGFuIG9wdGlvbmFsIHNjYWxpbmcgZmFjdG9yLCBhcyBmb2xsb3dzOgouSU5ERU5UIDAu MAouVFAKLkIgXGZJblxmUFxmQmhcZlAKaG91cnMKLlRQCi5CIFxmSW5cZlBcZkJrXGZQCmtp bG9ieXRlcyAoZGVmYXVsdCkKLlRQCi5CIFxmSW5cZlBcZkJtXGZQCm1lZ2FieXRlcyBvciBt aW51dGVzCi5UUAouQiBcZkluXGZQXGZCZ1xmUApnaWdhYnl0ZXMKLlRQCi5CIFtcZkltbVxm UFxmQjpcZlBdOnZhcjpcZklzc1xmUAptaW51dGVzIGFuZCBzZWNvbmRzCi5VTklOREVOVAou c3AKVGhlIFxmQmxpbWl0XGZQIGNvbW1hbmQgaXMgbm90IG1hZGUgYXZhaWxhYmxlIGJ5IGRl ZmF1bHQgd2hlbiB0aGUKc2hlbGwgc3RhcnRzIGluIGEgbW9kZSBlbXVsYXRpbmcgYW5vdGhl ciBzaGVsbC4gIEl0IGNhbiBiZSBtYWRlIGF2YWlsYWJsZQp3aXRoIHRoZSBjb21tYW5kIFxm Qnptb2Rsb2FkIFwtRiB6c2gvcmxpbWl0cyBiOmxpbWl0XGZQXCYuCi5VTklOREVOVAouVU5J TkRFTlQKLnNwClxmQmxvY2FsXGZQIFsge1xmQit8XC19QUhVYWhscHJ0dXhcZlAgXSBbIHtc ZkIrfFwtfUVGTFJaaVxmUCBbIFxmSW5cZlAgXSBdIFsgXGZJbmFtZVxmUFtcZkI9XGZQXGZJ dmFsdWVcZlBdIC4uLiBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClNhbWUgYXMgXGZCdHlw ZXNldFxmUCwgZXhjZXB0IHRoYXQgdGhlIG9wdGlvbnMgXGZCXC1nXGZQLCBhbmQKXGZCXC1m XGZQIGFyZSBub3QgcGVybWl0dGVkLiAgSW4gdGhpcyBjYXNlIHRoZSBcZkJcLXhcZlAgb3B0 aW9uIGRvZXMgbm90IGZvcmNlCnRoZSB1c2Ugb2YgXGZCXC1nXGZQLCBpLmUuIGV4cG9ydGVk IHZhcmlhYmxlcyB3aWxsIGJlIGxvY2FsIHRvIGZ1bmN0aW9ucy4KLlVOSU5ERU5UCi5VTklO REVOVAouc3AKXGZCbG9nb3V0XGZQIFsgXGZJblxmUCBdCi5JTkRFTlQgMC4wCi5JTkRFTlQg My41ClNhbWUgYXMgXGZCZXhpdFxmUCwgZXhjZXB0IHRoYXQgaXQgb25seSB3b3JrcyBpbiBh IGxvZ2luIHNoZWxsLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJub2dsb2JcZlAgXGZJ c2ltcGxlIGNvbW1hbmRcZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKU2VlIFByZWNvbW1h bmQgTW9kaWZpZXJzXCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQnBvcGRcZlAgWyBc ZkJcLXFcZlAgXSBbIHtcZkIrfFwtXGZQfTp2YXI6XGZJblxmUCBdCi5JTkRFTlQgMC4wCi5J TkRFTlQgMy41ClJlbW92ZSBhbiBlbnRyeSBmcm9tIHRoZSBkaXJlY3Rvcnkgc3RhY2ssIGFu ZCBwZXJmb3JtIGEgXGZCY2RcZlAgdG8KdGhlIG5ldyB0b3AgZGlyZWN0b3J5LiAgV2l0aCBu byBhcmd1bWVudCwgdGhlIGN1cnJlbnQgdG9wIGVudHJ5IGlzCnJlbW92ZWQuICBBbiBhcmd1 bWVudCBvZiB0aGUgZm9ybSBcZkIrXGZQXGZJblxmUCBpZGVudGlmaWVzIGEgc3RhY2sKZW50 cnkgYnkgY291bnRpbmcgZnJvbSB0aGUgbGVmdCBvZiB0aGUgbGlzdCBzaG93biBieSB0aGUg XGZCZGlyc1xmUCBjb21tYW5kLApzdGFydGluZyB3aXRoIHplcm8uICBBbiBhcmd1bWVudCBv ZiB0aGUgZm9ybSBcZkJcLVxmUFxmSW5cZlAgY291bnRzIGZyb20gdGhlIHJpZ2h0LgpcJi4u IGluZGV4Ojogc2luZ2xlOiBQVVNIRF9NSU5VUywgdXNlIG9mOyBQcm9ncmFtCi5zcApJZiB0 aGUgXGZCUFVTSERfTUlOVVNcZlAgb3B0aW9uIGlzIHNldCwgdGhlIG1lYW5pbmdzIG9mIFxm QitcZlAgYW5kClxmQlwtXGZQIGluIHRoaXMgY29udGV4dCBhcmUgc3dhcHBlZC4KLnNwCklm IHRoZSBcZkJcLXFcZlAgKHF1aWV0KSBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGUgaG9vayBm dW5jdGlvbiBcZkJjaHB3ZFxmUAphbmQgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgYXJyYXkgXGZC JGNocHdkX2Z1bmN0aW9uc1xmUCBhcmUgbm90IGNhbGxlZCwKYW5kIHRoZSBuZXcgZGlyZWN0 b3J5IHN0YWNrIGlzIG5vdCBwcmludGVkLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGNhbGxzIHRv ClxmQnBvcGRcZlAgdGhhdCBkbyBub3QgY2hhbmdlIHRoZSBlbnZpcm9ubWVudCBzZWVuIGJ5 IGFuIGludGVyYWN0aXZlIHVzZXIuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQnByaW50 XGZQIFsgXGZCXC1hYmNEaWxtbk5vT3BQcnNTelxmUCBdIFsgXGZCXC11XGZQIFxmSW5cZlAg XSBbIFxmQlwtZlxmUCBcZklmb3JtYXRcZlAgXSBbIFxmQlwtQ1xmUCBcZkljb2xzXGZQIF0K LklOREVOVCAwLjAKLklOREVOVCAzLjUKLklOREVOVCAwLjAKLklOREVOVCAzLjUKWyBcZkJc LXZcZlAgXGZJbmFtZVxmUCBdIFsgXGZCXC14WFxmUCBcZkl0YWJzdG9wXGZQIF0gWyBcZkJc LVJcZlAgWyBcZkJcLWVuXGZQIF1dIFsgXGZJYXJnXGZQIC4uLiBdCi5VTklOREVOVAouVU5J TkRFTlQKLnNwCldpdGggdGhlIFxmQlwtZlxmUCBvcHRpb24gdGhlIGFyZ3VtZW50cyBhcmUg cHJpbnRlZCBhcyBkZXNjcmliZWQgYnkgXGZCcHJpbnRmXGZQXCYuCldpdGggbm8gZmxhZ3Mg b3Igd2l0aCB0aGUgZmxhZyBcZkJcLVxmUCwgdGhlIGFyZ3VtZW50cyBhcmUgcHJpbnRlZCBv bgp0aGUgc3RhbmRhcmQgb3V0cHV0IGFzIGRlc2NyaWJlZCBieSBcZkJlY2hvXGZQLCB3aXRo IHRoZSBmb2xsb3dpbmcgZGlmZmVyZW5jZXM6CnRoZSBlc2NhcGUgc2VxdWVuY2UgXGZCXGVN XC1cZlBcZkl4XGZQIChvciBcZkJcZU1cZlBcZkl4XGZQKSBtZXRhZmllcyB0aGUgY2hhcmFj dGVyClxmSXhcZlAgKHNldHMgdGhlIGhpZ2hlc3QgYml0KSwKXGZCXGVDXC1cZlBcZkl4XGZQ IChvciBcZkJcZUNcZlBcZkl4XGZQKSBwcm9kdWNlcyBhIGNvbnRyb2wgY2hhcmFjdGVyCihc ZkJcZUNcLUBcZlAgYW5kIFxmQlxlQ1wtP1xmUCBnaXZlIHRoZSBjaGFyYWN0ZXJzIE5VTEwg YW5kIGRlbGV0ZSksCmEgY2hhcmFjdGVyIGNvZGUgaW4gb2N0YWwgaXMgcmVwcmVzZW50ZWQg YnkgXGZCXGVcZlBcZklOTk5cZlAKKGluc3RlYWQgb2YgXGZCXGUwXGZQXGZJTk5OXGZQKSwK YW5kIFxmQlxlRVxmUCBpcyBhIHN5bm9ueW0gZm9yIFxmQlxlZVxmUFwmLgpGaW5hbGx5LCBp ZiBub3QgaW4gYW4gZXNjYXBlCnNlcXVlbmNlLCBcZkJcZVxmUCBlc2NhcGVzIHRoZSBmb2xs b3dpbmcgY2hhcmFjdGVyIGFuZCBpcyBub3QgcHJpbnRlZC4KLnNwClxmQlwtYVxmUAouSU5E RU5UIDAuMAouSU5ERU5UIDMuNQpQcmludCBhcmd1bWVudHMgd2l0aCB0aGUgY29sdW1uIGlu Y3JlbWVudGluZyBmaXJzdC4gIE9ubHkgdXNlZnVsIHdpdGggdGhlClxmQlwtY1xmUCBhbmQg XGZCXC1DXGZQIG9wdGlvbnMuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtYlxmUAou SU5ERU5UIDAuMAouSU5ERU5UIDMuNQpSZWNvZ25pemUgYWxsIHRoZSBlc2NhcGUgc2VxdWVu Y2VzIGRlZmluZWQgZm9yIHRoZSBcZkJiaW5ka2V5XGZQIGNvbW1hbmQsCnNlZSBabGUgQnVp bHRpbnNcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCXC1jXGZQCi5JTkRFTlQgMC4w Ci5JTkRFTlQgMy41ClByaW50IHRoZSBhcmd1bWVudHMgaW4gY29sdW1ucy4gIFVubGVzcyBc ZkJcLWFcZlAgaXMgYWxzbyBnaXZlbiwgYXJndW1lbnRzIGFyZQpwcmludGVkIHdpdGggdGhl IHJvdyBpbmNyZW1lbnRpbmcgZmlyc3QuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwt Q1xmUCBcZkljb2xzXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClByaW50IHRoZSBhcmd1 bWVudHMgaW4gXGZJY29sc1xmUCBjb2x1bW5zLiAgVW5sZXNzIFxmQlwtYVxmUCBpcyBhbHNv IGdpdmVuLAphcmd1bWVudHMgYXJlIHByaW50ZWQgd2l0aCB0aGUgcm93IGluY3JlbWVudGlu ZyBmaXJzdC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCXC1EXGZQCi5JTkRFTlQgMC4w Ci5JTkRFTlQgMy41ClRyZWF0IHRoZSBhcmd1bWVudHMgYXMgcGF0aHMsIHJlcGxhY2luZyBk aXJlY3RvcnkgcHJlZml4ZXMgd2l0aCBcZkJ+XGZQCmV4cHJlc3Npb25zIGNvcnJlc3BvbmRp bmcgdG8gZGlyZWN0b3J5IG5hbWVzLCBhcyBhcHByb3ByaWF0ZS4KLlVOSU5ERU5UCi5VTklO REVOVAouc3AKXGZCXC1pXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CklmIGdpdmVuIHRv Z2V0aGVyIHdpdGggXGZCXC1vXGZQIG9yIFxmQlwtT1xmUCwgc29ydGluZyBpcyBwZXJmb3Jt ZWQKY2FzZVwtaW5kZXBlbmRlbnRseS4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCXC1s XGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClByaW50IHRoZSBhcmd1bWVudHMgc2VwYXJh dGVkIGJ5IG5ld2xpbmVzIGluc3RlYWQgb2Ygc3BhY2VzLiAgTm90ZTogaWYKdGhlIGxpc3Qg b2YgYXJndW1lbnRzIGlzIGVtcHR5LCBcZkJwcmludCBcLWxcZlAgd2lsbCBzdGlsbCBvdXRw dXQgb25lIGVtcHR5CmxpbmUuIFRvIHByaW50IGEgcG9zc2libHlcLWVtcHR5IGxpc3Qgb2Yg YXJndW1lbnRzIG9uZSBwZXIgbGluZSwgdXNlClxmQnByaW50IFwtQzFcZlAsIGFzIGluIFxm QnByaW50IFwtckMxIFwtXC0gXChkcSRsaXN0W0BdXChkcVxmUFwmLgouVU5JTkRFTlQKLlVO SU5ERU5UCi5zcApcZkJcLW1cZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKVGFrZSB0aGUg Zmlyc3QgYXJndW1lbnQgYXMgYSBwYXR0ZXJuIChzaG91bGQgYmUgcXVvdGVkKSwgYW5kIHJl bW92ZQppdCBmcm9tIHRoZSBhcmd1bWVudCBsaXN0IHRvZ2V0aGVyIHdpdGggc3Vic2VxdWVu dCBhcmd1bWVudHMgdGhhdApkbyBub3QgbWF0Y2ggdGhpcyBwYXR0ZXJuLgouVU5JTkRFTlQK LlVOSU5ERU5UCi5zcApcZkJcLW5cZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKRG8gbm90 IGFkZCBhIG5ld2xpbmUgdG8gdGhlIG91dHB1dC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AK XGZCXC1OXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClByaW50IHRoZSBhcmd1bWVudHMg c2VwYXJhdGVkIGFuZCB0ZXJtaW5hdGVkIGJ5IG51bGxzLiBBZ2FpbiwKXGZCcHJpbnQgXC1y TkMxIFwtXC0gXChkcSRsaXN0W0BdXChkcVxmUCBpcyBhIGNhbm9uaWNhbCB3YXkgdG8gcHJp bnQgYW4KYXJiaXRyYXJ5IGxpc3QgYXMgbnVsbFwtZGVsaW1pdGVkIHJlY29yZHMuCi5VTklO REVOVAouVU5JTkRFTlQKLnNwClxmQlwtb1xmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpQ cmludCB0aGUgYXJndW1lbnRzIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuCi5VTklOREVO VAouVU5JTkRFTlQKLnNwClxmQlwtT1xmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpQcmlu dCB0aGUgYXJndW1lbnRzIHNvcnRlZCBpbiBkZXNjZW5kaW5nIG9yZGVyLgouVU5JTkRFTlQK LlVOSU5ERU5UCi5zcApcZkJcLXBcZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKUHJpbnQg dGhlIGFyZ3VtZW50cyB0byB0aGUgaW5wdXQgb2YgdGhlIGNvcHJvY2Vzcy4KLlVOSU5ERU5U Ci5VTklOREVOVAouc3AKXGZCXC1QXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClBlcmZv cm0gcHJvbXB0IGV4cGFuc2lvbiAoc2VlCkV4cGFuc2lvbiBvZiBQcm9tcHQgU2VxdWVuY2Vz KS4KSW4gY29tYmluYXRpb24gd2l0aCBcZkJcLWZcZlAsCnByb21wdCBlc2NhcGUgc2VxdWVu Y2VzIGFyZSBwYXJzZWQgb25seSB3aXRoaW4gaW50ZXJwb2xhdGVkIGFyZ3VtZW50cywKbm90 IHdpdGhpbiB0aGUgZm9ybWF0IHN0cmluZy4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZC XC1yXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41Cklnbm9yZSB0aGUgZXNjYXBlIGNvbnZl bnRpb25zIG9mIFxmQmVjaG9cZlBcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCXC1S XGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkVtdWxhdGUgdGhlIEJTRCBcZkJlY2hvXGZQ IGNvbW1hbmQsIHdoaWNoIGRvZXMgbm90IHByb2Nlc3MgZXNjYXBlIHNlcXVlbmNlcwp1bmxl c3MgdGhlIFxmQlwtZVxmUCBmbGFnIGlzIGdpdmVuLiAgVGhlIFxmQlwtblxmUCBmbGFnIHN1 cHByZXNzZXMgdGhlIHRyYWlsaW5nCm5ld2xpbmUuICBPbmx5IHRoZSBcZkJcLWVcZlAgYW5k IFxmQlwtblxmUCBmbGFncyBhcmUgcmVjb2duaXplZCBhZnRlcgpcZkJcLVJcZlA7IGFsbCBv dGhlciBhcmd1bWVudHMgYW5kIG9wdGlvbnMgYXJlIHByaW50ZWQuCi5VTklOREVOVAouVU5J TkRFTlQKLnNwClxmQlwtc1xmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpQbGFjZSB0aGUg cmVzdWx0cyBpbiB0aGUgaGlzdG9yeSBsaXN0IGluc3RlYWQgb2Ygb24gdGhlIHN0YW5kYXJk IG91dHB1dC4KRWFjaCBhcmd1bWVudCB0byB0aGUgXGZCcHJpbnRcZlAgY29tbWFuZCBpcyB0 cmVhdGVkIGFzIGEgc2luZ2xlIHdvcmQgaW4gdGhlCmhpc3RvcnksIHJlZ2FyZGxlc3Mgb2Yg aXRzIGNvbnRlbnQuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtU1xmUAouSU5ERU5U IDAuMAouSU5ERU5UIDMuNQpQbGFjZSB0aGUgcmVzdWx0cyBpbiB0aGUgaGlzdG9yeSBsaXN0 IGluc3RlYWQgb2Ygb24gdGhlIHN0YW5kYXJkIG91dHB1dC4KSW4gdGhpcyBjYXNlIG9ubHkg YSBzaW5nbGUgYXJndW1lbnQgaXMgYWxsb3dlZDsgaXQgd2lsbCBiZSBzcGxpdCBpbnRvCndv cmRzIGFzIGlmIGl0IHdlcmUgYSBmdWxsIHNoZWxsIGNvbW1hbmQgbGluZS4gIFRoZSBlZmZl Y3QgaXMKc2ltaWxhciB0byByZWFkaW5nIHRoZSBsaW5lIGZyb20gYSBoaXN0b3J5IGZpbGUg d2l0aCB0aGUKXGZCSElTVF9MRVhfV09SRFNcZlAgb3B0aW9uIGFjdGl2ZS4KLlVOSU5ERU5U Ci5VTklOREVOVAouc3AKXGZCXC11XGZQIFxmSW5cZlAKLklOREVOVCAwLjAKLklOREVOVCAz LjUKUHJpbnQgdGhlIGFyZ3VtZW50cyB0byBmaWxlIGRlc2NyaXB0b3IgXGZJblxmUFwmLgou VU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcLXZcZlAgXGZJbmFtZVxmUAouSU5ERU5UIDAu MAouSU5ERU5UIDMuNQpTdG9yZSB0aGUgcHJpbnRlZCBhcmd1bWVudHMgYXMgdGhlIHZhbHVl IG9mIHRoZSBwYXJhbWV0ZXIgXGZJbmFtZVxmUFwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5z cApcZkJcLXhcZlAgXGZJdGFiXC1zdG9wXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkV4 cGFuZCBsZWFkaW5nIHRhYnMgb24gZWFjaCBsaW5lIG9mIG91dHB1dCBpbiB0aGUgcHJpbnRl ZCBzdHJpbmcKYXNzdW1pbmcgYSB0YWIgc3RvcCBldmVyeSBcZkl0YWJcLXN0b3BcZlAgY2hh cmFjdGVycy4gIFRoaXMgaXMgYXBwcm9wcmlhdGUKZm9yIGZvcm1hdHRpbmcgY29kZSB0aGF0 IG1heSBiZSBpbmRlbnRlZCB3aXRoIHRhYnMuICBOb3RlIHRoYXQgbGVhZGluZwp0YWJzIG9m IGFueSBhcmd1bWVudCB0byBwcmludCwgbm90IGp1c3QgdGhlIGZpcnN0LCBhcmUgZXhwYW5k ZWQsIGV2ZW4gaWYKXGZCcHJpbnRcZlAgaXMgdXNpbmcgc3BhY2VzIHRvIHNlcGFyYXRlIGFy Z3VtZW50cyAodGhlIGNvbHVtbiBjb3VudAppcyBtYWludGFpbmVkIGFjcm9zcyBhcmd1bWVu dHMgYnV0IG1heSBiZSBpbmNvcnJlY3Qgb24gb3V0cHV0Cm93aW5nIHRvIHByZXZpb3VzIHVu ZXhwYW5kZWQgdGFicykuCi5zcApUaGUgc3RhcnQgb2YgdGhlIG91dHB1dCBvZiBlYWNoIHBy aW50IGNvbW1hbmQgaXMgYXNzdW1lZCB0byBiZSBhbGlnbmVkCndpdGggYSB0YWIgc3RvcC4g IFdpZHRocyBvZiBtdWx0aWJ5dGUgY2hhcmFjdGVycyBhcmUgaGFuZGxlZCBpZiB0aGUKb3B0 aW9uIFxmQk1VTFRJQllURVxmUCBpcyBpbiBlZmZlY3QuICBUaGlzIG9wdGlvbiBpcyBpZ25v cmVkIGlmIG90aGVyCmZvcm1hdHRpbmcgb3B0aW9ucyBhcmUgaW4gZWZmZWN0LCBuYW1lbHkg Y29sdW1uIGFsaWdubWVudCBvcgpcZkJwcmludGZcZlAgc3R5bGUsIG9yIGlmIG91dHB1dCBp cyB0byBhIHNwZWNpYWwgbG9jYXRpb24gc3VjaCBhcyBzaGVsbApoaXN0b3J5IG9yIHRoZSBj b21tYW5kIGxpbmUgZWRpdG9yLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcLVhcZlAg XGZJdGFiXC1zdG9wXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClRoaXMgaXMgc2ltaWxh ciB0byBcZkJcLXhcZlAsIGV4Y2VwdCB0aGF0IGFsbCB0YWJzIGluIHRoZSBwcmludGVkIHN0 cmluZwphcmUgZXhwYW5kZWQuICBUaGlzIGlzIGFwcHJvcHJpYXRlIGlmIHRhYnMgaW4gdGhl IGFyZ3VtZW50cyBhcmUKYmVpbmcgdXNlZCB0byBwcm9kdWNlIGEgdGFibGUgZm9ybWF0Lgou VU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcLXpcZlAKLklOREVOVCAwLjAKLklOREVOVCAz LjUKUHVzaCB0aGUgYXJndW1lbnRzIG9udG8gdGhlIGVkaXRpbmcgYnVmZmVyIHN0YWNrLCBz ZXBhcmF0ZWQgYnkgc3BhY2VzLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApJZiBhbnkgb2Yg XGZCXC1tXGZQLCBcZkJcLW9cZlAgb3IgXGZCXC1PXGZQIGFyZSB1c2VkIGluIGNvbWJpbmF0 aW9uIHdpdGgKXGZCXC1mXGZQIGFuZCB0aGVyZSBhcmUgbm8gYXJndW1lbnRzIChhZnRlciB0 aGUgcmVtb3ZhbCBwcm9jZXNzIGluIHRoZQpjYXNlIG9mIFxmQlwtbVxmUCkgdGhlbiBub3Ro aW5nIGlzIHByaW50ZWQuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQnByaW50ZlxmUCBb IFxmQlwtdlxmUCBcZkluYW1lXGZQIF0gXGZJZm9ybWF0XGZQIFsgXGZJYXJnXGZQIC4uLiBd Ci5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClByaW50IHRoZSBhcmd1bWVudHMgYWNjb3JkaW5n IHRvIHRoZSBmb3JtYXQgc3BlY2lmaWNhdGlvbi4gRm9ybWF0dGluZwpydWxlcyBhcmUgdGhl IHNhbWUgYXMgdXNlZCBpbiBDLiBUaGUgc2FtZSBlc2NhcGUgc2VxdWVuY2VzIGFzIGZvciBc ZkJlY2hvXGZQCmFyZSByZWNvZ25pc2VkIGluIHRoZSBmb3JtYXQuIEFsbCBDIGNvbnZlcnNp b24gc3BlY2lmaWNhdGlvbnMgZW5kaW5nIGluCm9uZSBvZiBcZkJjc2Rpb3V4WGVFZmdHblxm UCBhcmUgaGFuZGxlZC4gSW4gYWRkaXRpb24gdG8gdGhpcywgXGZCJWJcZlAgY2FuIGJlCnVz ZWQgaW5zdGVhZCBvZiBcZkIlc1xmUCB0byBjYXVzZSBlc2NhcGUgc2VxdWVuY2VzIGluIHRo ZSBhcmd1bWVudCB0byBiZQpyZWNvZ25pc2VkIGFuZCBcZkIlcVxmUCBjYW4gYmUgdXNlZCB0 byBxdW90ZSB0aGUgYXJndW1lbnQgaW4gc3VjaCBhIHdheQp0aGF0IGFsbG93cyBpdCB0byBi ZSByZXVzZWQgYXMgc2hlbGwgaW5wdXQuIFdpdGggdGhlIG51bWVyaWMgZm9ybWF0CnNwZWNp ZmllcnMsIGlmIHRoZSBjb3JyZXNwb25kaW5nIGFyZ3VtZW50IHN0YXJ0cyB3aXRoIGEgcXVv dGUgY2hhcmFjdGVyLAp0aGUgbnVtZXJpYyB2YWx1ZSBvZiB0aGUgZm9sbG93aW5nIGNoYXJh Y3RlciBpcyB1c2VkIGFzIHRoZSBudW1iZXIgdG8KcHJpbnQ7IG90aGVyd2lzZSB0aGUgYXJn dW1lbnQgaXMgZXZhbHVhdGVkIGFzIGFuIGFyaXRobWV0aWMgZXhwcmVzc2lvbi4gU2VlCkFy aXRobWV0aWMgRXZhbHVhdGlvbiBmb3IgYSBkZXNjcmlwdGlvbiBvZiBhcml0aG1ldGljCmV4 cHJlc3Npb25zLiBXaXRoIFxmQiVuXGZQLCB0aGUgY29ycmVzcG9uZGluZyBhcmd1bWVudCBp cyB0YWtlbiBhcyBhbgppZGVudGlmaWVyIHdoaWNoIGlzIGNyZWF0ZWQgYXMgYW4gaW50ZWdl ciBwYXJhbWV0ZXIuCi5zcApOb3JtYWxseSwgY29udmVyc2lvbiBzcGVjaWZpY2F0aW9ucyBh cmUgYXBwbGllZCB0byBlYWNoIGFyZ3VtZW50IGluIG9yZGVyCmJ1dCB0aGV5IGNhbiBleHBs aWNpdGx5IHNwZWNpZnkgdGhlIFxmSW5cZlB0aCBhcmd1bWVudCBpcyB0byBiZSB1c2VkIGJ5 CnJlcGxhY2luZyBcZkIlXGZQIGJ5IFxmQiVcZlBcZkluXGZQXGZCJFxmUCBhbmQgXGZCKlxm UCBieSBcZkIqXGZQXGZJblxmUFxmQiRcZlBcJi4KSXQgaXMgcmVjb21tZW5kZWQgdGhhdCB5 b3UgZG8gbm90IG1peCByZWZlcmVuY2VzIG9mIHRoaXMgZXhwbGljaXQgc3R5bGUKd2l0aCB0 aGUgbm9ybWFsIHN0eWxlIGFuZCB0aGUgaGFuZGxpbmcgb2Ygc3VjaCBtaXhlZCBzdHlsZXMg bWF5IGJlIHN1YmplY3QKdG8gZnV0dXJlIGNoYW5nZS4KLnNwCklmIGFyZ3VtZW50cyByZW1h aW4gdW51c2VkIGFmdGVyIGZvcm1hdHRpbmcsIHRoZSBmb3JtYXQgc3RyaW5nIGlzIHJldXNl ZAp1bnRpbCBhbGwgYXJndW1lbnRzIGhhdmUgYmVlbiBjb25zdW1lZC4gV2l0aCB0aGUgXGZC cHJpbnRcZlAgYnVpbHRpbiwgdGhpcwpjYW4gYmUgc3VwcHJlc3NlZCBieSB1c2luZyB0aGUg XGZCXC1yXGZQIG9wdGlvbi4gSWYgbW9yZSBhcmd1bWVudHMgYXJlCnJlcXVpcmVkIGJ5IHRo ZSBmb3JtYXQgdGhhbiBoYXZlIGJlZW4gc3BlY2lmaWVkLCB0aGUgYmVoYXZpb3VyIGlzIGFz IGlmCnplcm8gb3IgYW4gZW1wdHkgc3RyaW5nIGhhZCBiZWVuIHNwZWNpZmllZCBhcyB0aGUg YXJndW1lbnQuCi5zcApUaGUgXGZCXC12XGZQIG9wdGlvbiBjYXVzZXMgdGhlIG91dHB1dCB0 byBiZSBzdG9yZWQgYXMgdGhlIHZhbHVlIG9mIHRoZQpwYXJhbWV0ZXIgXGZJbmFtZVxmUCwg aW5zdGVhZCBvZiBwcmludGVkLiBJZiBcZkluYW1lXGZQIGlzIGFuIGFycmF5IGFuZAp0aGUg Zm9ybWF0IHN0cmluZyBpcyByZXVzZWQgd2hlbiBjb25zdW1pbmcgYXJndW1lbnRzIHRoZW4g b25lCmFycmF5IGVsZW1lbnQgd2lsbCBiZSB1c2VkIGZvciBlYWNoIHVzZSBvZiB0aGUgZm9y bWF0IHN0cmluZy4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCcHVzaGRcZlAgWyBcZkJc LXFzTFBcZlAgXSBbIFxmSWFyZ1xmUCBdCi5zcApcZkJwdXNoZFxmUCBbIFxmQlwtcXNMUFxm UCBdIFxmSW9sZFxmUCBcZkluZXdcZlAKLnNwClxmQnB1c2hkXGZQIFsgXGZCXC1xc0xQXGZQ IF0ge1xmQit8XC1cZlB9OnZhcjpcZkluXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkNo YW5nZSB0aGUgY3VycmVudCBkaXJlY3RvcnksIGFuZCBwdXNoIHRoZSBvbGQgY3VycmVudCBk aXJlY3RvcnkKb250byB0aGUgZGlyZWN0b3J5IHN0YWNrLiAgSW4gdGhlIGZpcnN0IGZvcm0s IGNoYW5nZSB0aGUKY3VycmVudCBkaXJlY3RvcnkgdG8gXGZJYXJnXGZQXCYuCklmIFxmSWFy Z1xmUCBpcyBub3Qgc3BlY2lmaWVkLCBjaGFuZ2UgdG8gdGhlIHNlY29uZCBkaXJlY3RvcnkK b24gdGhlIHN0YWNrICh0aGF0IGlzLCBleGNoYW5nZSB0aGUgdG9wIHR3byBlbnRyaWVzKSwg b3IKY2hhbmdlIHRvIFxmQiRIT01FXGZQIGlmIHRoZSBcZkJQVVNIRF9UT19IT01FXGZQCm9w dGlvbiBpcyBzZXQgb3IgaWYgdGhlcmUgaXMgb25seSBvbmUgZW50cnkgb24gdGhlIHN0YWNr LgpPdGhlcndpc2UsIFxmSWFyZ1xmUCBpcyBpbnRlcnByZXRlZCBhcyBpdCB3b3VsZCBiZSBi eSBcZkJjZFxmUFwmLgpUaGUgbWVhbmluZyBvZiBcZklvbGRcZlAgYW5kIFxmSW5ld1xmUCBp biB0aGUgc2Vjb25kIGZvcm0gaXMgYWxzbwp0aGUgc2FtZSBhcyBmb3IgXGZCY2RcZlBcJi4K LnNwClRoZSB0aGlyZCBmb3JtIG9mIFxmQnB1c2hkXGZQIGNoYW5nZXMgZGlyZWN0b3J5IGJ5 IHJvdGF0aW5nIHRoZQpkaXJlY3RvcnkgbGlzdC4gIEFuIGFyZ3VtZW50IG9mIHRoZSBmb3Jt IFxmQitcZlBcZkluXGZQIGlkZW50aWZpZXMgYSBzdGFjawplbnRyeSBieSBjb3VudGluZyBm cm9tIHRoZSBsZWZ0IG9mIHRoZSBsaXN0IHNob3duIGJ5IHRoZSBcZkJkaXJzXGZQCmNvbW1h bmQsIHN0YXJ0aW5nIHdpdGggemVyby4gIEFuIGFyZ3VtZW50IG9mIHRoZSBmb3JtIFxmQlwt XGZQXGZJblxmUCBjb3VudHMKZnJvbSB0aGUgcmlnaHQuICBJZiB0aGUgXGZCUFVTSERfTUlO VVNcZlAgb3B0aW9uIGlzIHNldCwgdGhlIG1lYW5pbmdzCm9mIFxmQitcZlAgYW5kIFxmQlwt XGZQIGluIHRoaXMgY29udGV4dCBhcmUgc3dhcHBlZC4KLnNwCklmIHRoZSBcZkJcLXFcZlAg KHF1aWV0KSBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGUgaG9vayBmdW5jdGlvbiBcZkJjaHB3 ZFxmUAphbmQgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgYXJyYXkgXGZCJGNocHdkX2Z1bmN0aW9u c1xmUCBhcmUgbm90IGNhbGxlZCwKYW5kIHRoZSBuZXcgZGlyZWN0b3J5IHN0YWNrIGlzIG5v dCBwcmludGVkLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGNhbGxzIHRvClxmQnB1c2hkXGZQIHRo YXQgZG8gbm90IGNoYW5nZSB0aGUgZW52aXJvbm1lbnQgc2VlbiBieSBhbiBpbnRlcmFjdGl2 ZSB1c2VyLgouc3AKSWYgdGhlIG9wdGlvbiBcZkJcLXFcZlAgaXMgbm90IHNwZWNpZmllZCBh bmQgdGhlIHNoZWxsIG9wdGlvbiBcZkJQVVNIRF9TSUxFTlRcZlAKaXMgbm90IHNldCwgdGhl IGRpcmVjdG9yeSBzdGFjayB3aWxsIGJlIHByaW50ZWQgYWZ0ZXIgYSBcZkJwdXNoZFxmUCBp cwpwZXJmb3JtZWQuCi5zcApUaGUgb3B0aW9ucyBcZkJcLXNcZlAsIFxmQlwtTFxmUCBhbmQg XGZCXC1QXGZQIGhhdmUgdGhlIHNhbWUgbWVhbmluZ3MgYXMgZm9yIHRoZQpcZkJjZFxmUCBi dWlsdGluLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJwdXNobG5cZlAgWyBcZklhcmdc ZlAgLi4uIF0KLklOREVOVCAwLjAKLklOREVOVCAzLjUKRXF1aXZhbGVudCB0byBcZkJwcmlu dCBcLW56XGZQXCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQnB3ZFxmUCBbIFxmQlwt ckxQXGZQIF0KLklOREVOVCAwLjAKLklOREVOVCAzLjUKUHJpbnQgdGhlIGFic29sdXRlIHBh dGhuYW1lIG9mIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LgpJZiB0aGUgXGZCXC1y XGZQIG9yIHRoZSBcZkJcLVBcZlAgZmxhZyBpcyBzcGVjaWZpZWQsIG9yIHRoZSBcZkJDSEFT RV9MSU5LU1xmUApvcHRpb24gaXMgc2V0IGFuZCB0aGUgXGZCXC1MXGZQIGZsYWcgaXMgbm90 IGdpdmVuLCB0aGUgcHJpbnRlZCBwYXRoIHdpbGwgbm90CmNvbnRhaW4gc3ltYm9saWMgbGlu a3MuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQnJcZlAKLklOREVOVCAwLjAKLklOREVO VCAzLjUKU2FtZSBhcyBcZkJmYyBcLWUgXC1cZlBcJi4KLlVOSU5ERU5UCi5VTklOREVOVAou c3AKXGZCcmVhZFxmUCBbIFxmQlwtcnN6cHFBY2xuZUVcZlAgXSBbIFxmQlwtdFxmUCBbIFxm SW51bVxmUCBdIF0gWyBcZkJcLWtcZlAgWyBcZkludW1cZlAgXSBdIFsgXGZCXC1kXGZQIFxm SWRlbGltXGZQIF0KLklOREVOVCAwLjAKLklOREVOVCAzLjUKLklOREVOVCAwLjAKLklOREVO VCAzLjUKWyBcZkJcLXVcZlAgXGZJblxmUCBdIFsgW1xmSW5hbWVcZlBdW1xmQj9cZlBcZklw cm9tcHRcZlBdIF0gWyBcZkluYW1lXGZQIC4uLiAgXQouVU5JTkRFTlQKLlVOSU5ERU5UCi5z cApSZWFkIG9uZSBsaW5lIGFuZCBicmVhayBpdCBpbnRvIGZpZWxkcyB1c2luZyB0aGUgY2hh cmFjdGVycwppbiBcZkIkSUZTXGZQIGFzIHNlcGFyYXRvcnMsIGV4Y2VwdCBhcyBub3RlZCBi ZWxvdy4KVGhlIGZpcnN0IGZpZWxkIGlzIGFzc2lnbmVkIHRvIHRoZSBmaXJzdCBcZkluYW1l XGZQLCB0aGUgc2Vjb25kIGZpZWxkCnRvIHRoZSBzZWNvbmQgXGZJbmFtZVxmUCwgZXRjLiwg d2l0aCBsZWZ0b3ZlcgpmaWVsZHMgYXNzaWduZWQgdG8gdGhlIGxhc3QgXGZJbmFtZVxmUFwm LgpJZiBcZkluYW1lXGZQIGlzIG9taXR0ZWQgdGhlbgpcZkJSRVBMWVxmUCBpcyB1c2VkIGZv ciBzY2FsYXJzIGFuZCBcZkJyZXBseVxmUCBmb3IgYXJyYXlzLgouc3AKXGZCXC1yXGZQCi5J TkRFTlQgMC4wCi5JTkRFTlQgMy41ClJhdyBtb2RlOiBhIFxmQlxlXGZQIGF0IHRoZSBlbmQg b2YgYSBsaW5lIGRvZXMgbm90IHNpZ25pZnkgbGluZQpjb250aW51YXRpb24gYW5kIGJhY2tz bGFzaGVzIGluIHRoZSBsaW5lIGRvblwoYXF0IHF1b3RlIHRoZSBmb2xsb3dpbmcKY2hhcmFj dGVyIGFuZCBhcmUgbm90IHJlbW92ZWQuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwt c1xmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpEb25cKGFxdCBlY2hvIGJhY2sgY2hhcmFj dGVycyBpZiByZWFkaW5nIGZyb20gdGhlIHRlcm1pbmFsLgouVU5JTkRFTlQKLlVOSU5ERU5U Ci5zcApcZkJcLXFcZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKUmVhZCBvbmx5IG9uZSBj aGFyYWN0ZXIgZnJvbSB0aGUgdGVybWluYWwgYW5kIHNldCBcZkluYW1lXGZQIHRvClxmQnlc ZlAgaWYgdGhpcyBjaGFyYWN0ZXIgd2FzIFxmQnlcZlAgb3IgXGZCWVxmUCBhbmQgdG8gXGZC blxmUCBvdGhlcndpc2UuCldpdGggdGhpcyBmbGFnIHNldCB0aGUgcmV0dXJuIHN0YXR1cyBp cyB6ZXJvIG9ubHkgaWYgdGhlIGNoYXJhY3RlciB3YXMKXGZCeVxmUCBvciBcZkJZXGZQXCYu ICBUaGlzIG9wdGlvbiBtYXkgYmUgdXNlZCB3aXRoIGEgdGltZW91dCAoc2VlIFxmQlwtdFxm UCk7IGlmCnRoZSByZWFkIHRpbWVzIG91dCwgb3IgZW5jb3VudGVycyBlbmQgb2YgZmlsZSwg c3RhdHVzIDIgaXMgcmV0dXJuZWQuICBJbnB1dCBpcwpyZWFkIGZyb20gdGhlIHRlcm1pbmFs IHVubGVzcyBvbmUgb2YgXGZCXC11XGZQIG9yIFxmQlwtcFxmUCBpcyBwcmVzZW50LiAgVGhp cyBvcHRpb24KbWF5IGFsc28gYmUgdXNlZCB3aXRoaW4gemxlIHdpZGdldHMuCi5VTklOREVO VAouVU5JTkRFTlQKLnNwClxmQlwta1xmUCBbIFxmSW51bVxmUCBdCi5JTkRFTlQgMC4wCi5J TkRFTlQgMy41ClJlYWQgb25seSBvbmUgKG9yIFxmSW51bVxmUCkgY2hhcmFjdGVycy4gIEFs bCBhcmUgYXNzaWduZWQgdG8gdGhlIGZpcnN0ClxmSW5hbWVcZlAsIHdpdGhvdXQgd29yZCBz cGxpdHRpbmcuICBUaGlzIGZsYWcgaXMgaWdub3JlZCB3aGVuIFxmQlwtcVxmUCBpcwpwcmVz ZW50LiAgSW5wdXQgaXMgcmVhZCBmcm9tIHRoZSB0ZXJtaW5hbCB1bmxlc3Mgb25lIG9mIFxm QlwtdVxmUCBvciBcZkJcLXBcZlAKaXMgcHJlc2VudC4gIFRoaXMgb3B0aW9uIG1heSBhbHNv IGJlIHVzZWQgd2l0aGluIHpsZSB3aWRnZXRzLgouc3AKTm90ZSB0aGF0IGRlc3BpdGUgdGhl IG1uZW1vbmljIFwoZ2FrZXlcKGFxIHRoaXMgb3B0aW9uIGRvZXMgcmVhZCBmdWxsCmNoYXJh Y3RlcnMsIHdoaWNoIG1heSBjb25zaXN0IG9mIG11bHRpcGxlIGJ5dGVzIGlmIHRoZSBvcHRp b24KXGZCTVVMVElCWVRFXGZQIGlzIHNldC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZC XC16XGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClJlYWQgb25lIGVudHJ5IGZyb20gdGhl IGVkaXRvciBidWZmZXIgc3RhY2sgYW5kIGFzc2lnbiBpdCB0byB0aGUgZmlyc3QKXGZJbmFt ZVxmUCwgd2l0aG91dCB3b3JkIHNwbGl0dGluZy4gIFRleHQgaXMgcHVzaGVkIG9udG8gdGhl IHN0YWNrIHdpdGgKXGZCcHJpbnQgXC16XGZQIG9yIHdpdGggXGZCcHVzaFwtbGluZVxmUCBm cm9tIHRoZSBsaW5lIGVkaXRvciAoc2VlClxmQnpzaHpsZVxmUCkuClRoaXMgZmxhZyBpcyBp Z25vcmVkIHdoZW4gdGhlIFxmQlwta1xmUCBvciBcZkJcLXFcZlAgZmxhZ3MgYXJlIHByZXNl bnQuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtZVxmUAouc3AKXGZCXC1FXGZQCi5J TkRFTlQgMC4wCi5JTkRFTlQgMy41ClRoZSBpbnB1dCByZWFkIGlzIHByaW50ZWQgKGVjaG9l ZCkgdG8gdGhlIHN0YW5kYXJkIG91dHB1dC4gIElmIHRoZSBcZkJcLWVcZlAKZmxhZyBpcyB1 c2VkLCBubyBpbnB1dCBpcyBhc3NpZ25lZCB0byB0aGUgcGFyYW1ldGVycy4KLlVOSU5ERU5U Ci5VTklOREVOVAouc3AKXGZCXC1BXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClRoZSBm aXJzdCBcZkluYW1lXGZQIGlzIHRha2VuIGFzIHRoZSBuYW1lIG9mIGFuIGFycmF5IGFuZCBh bGwgd29yZHMgYXJlCmFzc2lnbmVkIHRvIGl0LgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApc ZkJcLWNcZlAKLnNwClxmQlwtbFxmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpUaGVzZSBm bGFncyBhcmUgYWxsb3dlZCBvbmx5IGlmIGNhbGxlZCBpbnNpZGUgYQpmdW5jdGlvbiB1c2Vk IGZvciBjb21wbGV0aW9uIChzcGVjaWZpZWQgd2l0aCB0aGUgXGZCXC1LXGZQIGZsYWcgdG8K XGZCY29tcGN0bFxmUCkuICBJZiB0aGUgXGZCXC1jXGZQIGZsYWcgaXMgZ2l2ZW4sIHRoZSB3 b3JkcyBvZiB0aGUKY3VycmVudCBjb21tYW5kIGFyZSByZWFkLiBJZiB0aGUgXGZCXC1sXGZQ IGZsYWcgaXMgZ2l2ZW4sIHRoZSB3aG9sZQpsaW5lIGlzIGFzc2lnbmVkIGFzIGEgc2NhbGFy LiAgSWYgYm90aCBmbGFncyBhcmUgcHJlc2VudCwgXGZCXC1sXGZQCmlzIHVzZWQgYW5kIFxm QlwtY1xmUCBpcyBpZ25vcmVkLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcLW5cZlAK LklOREVOVCAwLjAKLklOREVOVCAzLjUKVG9nZXRoZXIgd2l0aCBcZkJcLWNcZlAsIHRoZSBu dW1iZXIgb2YgdGhlIHdvcmQgdGhlIGN1cnNvciBpcyBvbiBpcwpyZWFkLiAgV2l0aCBcZkJc LWxcZlAsIHRoZSBpbmRleCBvZiB0aGUgY2hhcmFjdGVyIHRoZSBjdXJzb3IgaXMgb24gaXMK cmVhZC4gIE5vdGUgdGhhdCB0aGUgY29tbWFuZCBuYW1lIGlzIHdvcmQgbnVtYmVyIDEsIG5v dCB3b3JkIDAsCmFuZCB0aGF0IHdoZW4gdGhlIGN1cnNvciBpcyBhdCB0aGUgZW5kIG9mIHRo ZSBsaW5lLCBpdHMgY2hhcmFjdGVyCmluZGV4IGlzIHRoZSBsZW5ndGggb2YgdGhlIGxpbmUg cGx1cyBvbmUuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtdVxmUCBcZkluXGZQCi5J TkRFTlQgMC4wCi5JTkRFTlQgMy41CklucHV0IGlzIHJlYWQgZnJvbSBmaWxlIGRlc2NyaXB0 b3IgXGZJblxmUFwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcLXBcZlAKLklOREVO VCAwLjAKLklOREVOVCAzLjUKSW5wdXQgaXMgcmVhZCBmcm9tIHRoZSBjb3Byb2Nlc3MuCi5V TklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtZFxmUCBcZklkZWxpbVxmUAouSU5ERU5UIDAu MAouSU5ERU5UIDMuNQpJbnB1dCBpcyB0ZXJtaW5hdGVkIGJ5IHRoZSBmaXJzdCBjaGFyYWN0 ZXIgb2YgXGZJZGVsaW1cZlAgaW5zdGVhZCBvZgpieSBuZXdsaW5lLiAgRm9yIGNvbXBhdGli aWxpdHkgd2l0aCBvdGhlciBzaGVsbHMsIGlmIFxmSWRlbGltXGZQIGlzIGFuCmVtcHR5IHN0 cmluZywgaW5wdXQgaXMgdGVybWluYXRlZCBhdCB0aGUgZmlyc3QgTlVMLgouVU5JTkRFTlQK LlVOSU5ERU5UCi5zcApcZkJcLXRcZlAgWyBcZkludW1cZlAgXQouSU5ERU5UIDAuMAouSU5E RU5UIDMuNQpUZXN0IGlmIGlucHV0IGlzIGF2YWlsYWJsZSBiZWZvcmUgYXR0ZW1wdGluZyB0 byByZWFkLiAgSWYgXGZJbnVtXGZQCmlzIHByZXNlbnQsIGl0IG11c3QgYmVnaW4gd2l0aCBh IGRpZ2l0IGFuZCB3aWxsIGJlIGV2YWx1YXRlZAp0byBnaXZlIGEgbnVtYmVyIG9mIHNlY29u ZHMsIHdoaWNoIG1heSBiZSBhIGZsb2F0aW5nIHBvaW50IG51bWJlcjsKaW4gdGhpcyBjYXNl IHRoZSByZWFkIHRpbWVzIG91dCBpZiBpbnB1dCBpcyBub3QgYXZhaWxhYmxlIHdpdGhpbiB0 aGlzCnRpbWUuICBJZiBcZkludW1cZlAgaXMgbm90IHByZXNlbnQsIGl0IGlzIHRha2VuIHRv IGJlIHplcm8sIHNvIHRoYXQKXGZCcmVhZFxmUCByZXR1cm5zIGltbWVkaWF0ZWx5IGlmIG5v IGlucHV0IGlzIGF2YWlsYWJsZS4KSWYgbm8gaW5wdXQgaXMgYXZhaWxhYmxlLCByZXR1cm4g c3RhdHVzIDEgYW5kIGRvIG5vdCBzZXQgYW55IHZhcmlhYmxlcy4KXCYuLiBvbmx5OjogbWFu Ci5zcApUaGlzIG9wdGlvbiBpcyBub3QgYXZhaWxhYmxlIHdoZW4gcmVhZGluZyBmcm9tIHRo ZSBlZGl0b3IgYnVmZmVyIHdpdGgKXGZCXC16XGZQLCB3aGVuIGNhbGxlZCBmcm9tIHdpdGhp biBjb21wbGV0aW9uIHdpdGggXGZCXC1jXGZQIG9yIFxmQlwtbFxmUCwgd2l0aApcZkJcLXFc ZlAgd2hpY2ggY2xlYXJzIHRoZSBpbnB1dCBxdWV1ZSBiZWZvcmUgcmVhZGluZywgb3Igd2l0 aGluIHpsZSB3aGVyZQpvdGhlciBtZWNoYW5pc21zIHNob3VsZCBiZSB1c2VkIHRvIHRlc3Qg Zm9yIGlucHV0LgpcJi4uIG9ubHk6OiBtYW4KLnNwCk5vdGUgdGhhdCByZWFkIGRvZXMgbm90 IGF0dGVtcHQgdG8gYWx0ZXIgdGhlIGlucHV0IHByb2Nlc3NpbmcgbW9kZS4gIFRoZQpkZWZh dWx0IG1vZGUgaXMgY2Fub25pY2FsIGlucHV0LCBpbiB3aGljaCBhbiBlbnRpcmUgbGluZSBp cyByZWFkIGF0IGEgdGltZSwKc28gdXN1YWxseSBcZkJyZWFkIFwtdFxmUCB3aWxsIG5vdCBy ZWFkIGFueXRoaW5nIHVudGlsIGFuIGVudGlyZSBsaW5lIGhhcwpiZWVuIHR5cGVkLiAgSG93 ZXZlciwgd2hlbiByZWFkaW5nIGZyb20gdGhlIHRlcm1pbmFsIHdpdGggXGZCXC1rXGZQCmlu cHV0IGlzIHByb2Nlc3NlZCBvbmUga2V5IGF0IGEgdGltZTsgaW4gdGhpcyBjYXNlLCBvbmx5 IGF2YWlsYWJpbGl0eSBvZgp0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIHRlc3RlZCwgc28gdGhh dCBlLmcuIFxmQnJlYWQgXC10IFwtayAyXGZQIGNhbiBzdGlsbApibG9jayBvbiB0aGUgc2Vj b25kIGNoYXJhY3Rlci4gIFVzZSB0d28gaW5zdGFuY2VzIG9mIFxmQnJlYWQgXC10IFwta1xm UCBpZgp0aGlzIGlzIG5vdCB3aGF0IGlzIHdhbnRlZC4KLlVOSU5ERU5UCi5VTklOREVOVAou c3AKSWYgdGhlIGZpcnN0IGFyZ3VtZW50IGNvbnRhaW5zIGEgXGZCP1xmUCwgdGhlIHJlbWFp bmRlciBvZiB0aGlzCndvcmQgaXMgdXNlZCBhcyBhIFxmSXByb21wdFxmUCBvbiBzdGFuZGFy ZCBlcnJvciB3aGVuIHRoZSBzaGVsbAppcyBpbnRlcmFjdGl2ZS4KLnNwClRoZSB2YWx1ZSAo ZXhpdCBzdGF0dXMpIG9mIFxmQnJlYWRcZlAgaXMgMSB3aGVuIGFuIGVuZFwtb2ZcLWZpbGUg aXMKZW5jb3VudGVyZWQsIG9yIHdoZW4gXGZCXC1jXGZQIG9yIFxmQlwtbFxmUCBpcyBwcmVz ZW50IGFuZCB0aGUgY29tbWFuZCBpcwpub3QgY2FsbGVkIGZyb20gYSBcZkJjb21wY3RsXGZQ IGZ1bmN0aW9uLCBvciBhcyBkZXNjcmliZWQgZm9yIFxmQlwtcVxmUFwmLgpPdGhlcndpc2Ug dGhlIHZhbHVlIGlzIDAuCi5zcApUaGUgYmVoYXZpb3Igb2Ygc29tZSBjb21iaW5hdGlvbnMg b2YgdGhlIFxmQlwta1xmUCwgXGZCXC1wXGZQLCBcZkJcLXFcZlAsIFxmQlwtdVxmUAphbmQg XGZCXC16XGZQIGZsYWdzIGlzIHVuZGVmaW5lZC4gIFByZXNlbnRseSBcZkJcLXFcZlAgY2Fu Y2VscyBhbGwgdGhlIG90aGVycywKXGZCXC1wXGZQIGNhbmNlbHMgXGZCXC11XGZQLCBcZkJc LWtcZlAgY2FuY2VscyBcZkJcLXpcZlAsIGFuZCBvdGhlcndpc2UgXGZCXC16XGZQCmNhbmNl bHMgYm90aCBcZkJcLXBcZlAgYW5kIFxmQlwtdVxmUFwmLgouc3AKVGhlIFxmQlwtY1xmUCBv ciBcZkJcLWxcZlAgZmxhZ3MgY2FuY2VsIGFueSBhbmQgYWxsIG9mIFxmQlwta3BxdXpcZlBc Ji4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCcmVhZG9ubHlcZlAKLklOREVOVCAwLjAK LklOREVOVCAzLjUKU2FtZSBhcyBcZkJ0eXBlc2V0IFwtclxmUFwmLiAgV2l0aCB0aGUgXGZC UE9TSVhfQlVJTFRJTlNcZlAgb3B0aW9uIHNldCwgc2FtZQphcyBcZkJ0eXBlc2V0IFwtZ3Jc ZlBcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCcmVoYXNoXGZQCi5JTkRFTlQgMC4w Ci5JTkRFTlQgMy41ClNhbWUgYXMgXGZCaGFzaCBcLXJcZlBcJi4KLlVOSU5ERU5UCi5VTklO REVOVAouc3AKXGZCcmV0dXJuXGZQIFsgXGZJblxmUCBdCi5JTkRFTlQgMC4wCi5JTkRFTlQg My41CkNhdXNlcyBhIHNoZWxsIGZ1bmN0aW9uIG9yIFxmQlwmLlxmUCBzY3JpcHQgdG8gcmV0 dXJuIHRvCnRoZSBpbnZva2luZyBzY3JpcHQgd2l0aCB0aGUgcmV0dXJuIHN0YXR1cyBzcGVj aWZpZWQgYnkKYW4gYXJpdGhtZXRpYyBleHByZXNzaW9uIFxmSW5cZlBcJi4gIEFsc28gY2F1 c2VzIGEgbm9uXC1pbnRlcmFjdGl2ZQpzaGVsbCB0byBleGl0LCBhbGxvd2luZyBmaWxlcyBj b250YWluaW5nIHNoZWxsIGNvZGUgdG8gYmUgdXNlZApib3RoIGFzIHNjcmlwdHMgYW5kIGFz IGF1dG9sb2FkYWJsZSBzaGVsbCBmdW5jdGlvbnMuCkZvciBleGFtcGxlLCB0aGUgZm9sbG93 aW5nIHByaW50cyBcZkI0MlxmUDoKLklOREVOVCAwLjAKLklOREVOVCAzLjUKLnNwCi5FWAog KCkgeyBpbnRlZ2VyIGZvbz00MDsgcmV0dXJuIFwoZHFmb28gKyAyXChkcSB9CiBlY2hvICQ/ Ci5FRQouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApJZiBcZkluXGZQCmlzIG9taXR0ZWQsIHRo ZSByZXR1cm4gc3RhdHVzIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFuZApleGVjdXRlZC4K LnNwCklmIFxmQnJldHVyblxmUCB3YXMgZXhlY3V0ZWQgZnJvbSBhIHRyYXAgaW4gYSBcZkJU UkFQXGZQXGZJTkFMXGZQIGZ1bmN0aW9uLAp0aGUgZWZmZWN0IGlzIGRpZmZlcmVudCBmb3Ig emVybyBhbmQgbm9uXC16ZXJvIHJldHVybiBzdGF0dXMuICBXaXRoIHplcm8Kc3RhdHVzIChv ciBhZnRlciBhbiBpbXBsaWNpdCByZXR1cm4gYXQgdGhlIGVuZCBvZiB0aGUgdHJhcCksIHRo ZSBzaGVsbAp3aWxsIHJldHVybiB0byB3aGF0ZXZlciBpdCB3YXMgcHJldmlvdXNseSBwcm9j ZXNzaW5nOyB3aXRoIGEgbm9uXC16ZXJvCnN0YXR1cywgdGhlIHNoZWxsIHdpbGwgYmVoYXZl IGFzIGludGVycnVwdGVkIGV4Y2VwdCB0aGF0IHRoZSByZXR1cm4Kc3RhdHVzIG9mIHRoZSB0 cmFwIGlzIHJldGFpbmVkLiAgTm90ZSB0aGF0IHRoZSBudW1lcmljIHZhbHVlIG9mIHRoZSBz aWduYWwKd2hpY2ggY2F1c2VkIHRoZSB0cmFwIGlzIHBhc3NlZCBhcyB0aGUgZmlyc3QgYXJn dW1lbnQsIHNvIHRoZSBzdGF0ZW1lbnQKXGZCcmV0dXJuIFwoZHExMjgrJDFcKGRxXGZQIHdp bGwgcmV0dXJuIHRoZSBzYW1lIHN0YXR1cyBhcyBpZiB0aGUgc2lnbmFsCmhhZCBub3QgYmVl biB0cmFwcGVkLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJzY2hlZFxmUAouSU5ERU5U IDAuMAouSU5ERU5UIDMuNQpTZWUgVGhlIHpzaC9zY2hlZCBNb2R1bGVcJi4KLlVOSU5ERU5U Ci5VTklOREVOVAouc3AKXGZCc2V0XGZQIFsge1xmQit8XC1cZlB9OnZhcjpcZklvcHRpb25z XGZQIHwge1xmQit8XC19b1xmUCBbIFxmSW9wdGlvbl9uYW1lXGZQIF0gXSAuLi4gWyB7XGZC K3xcLX1BXGZQIFsgXGZJbmFtZVxmUCBdIF0KLklOREVOVCAwLjAKLklOREVOVCAzLjUKWyBc ZklhcmdcZlAgLi4uIF0KLnNwClNldCB0aGUgb3B0aW9ucyBmb3IgdGhlIHNoZWxsIGFuZC9v ciBzZXQgdGhlIHBvc2l0aW9uYWwgcGFyYW1ldGVycywgb3IKZGVjbGFyZSBhbmQgc2V0IGFu IGFycmF5LiAgSWYgdGhlIFxmQlwtc1xmUCBvcHRpb24gaXMgZ2l2ZW4sIGl0IGNhdXNlcyB0 aGUKc3BlY2lmaWVkIGFyZ3VtZW50cyB0byBiZSBzb3J0ZWQgYmVmb3JlIGFzc2lnbmluZyB0 aGVtIHRvIHRoZSBwb3NpdGlvbmFsCnBhcmFtZXRlcnMgKG9yIHRvIHRoZSBhcnJheSBcZklu YW1lXGZQIGlmIFxmQlwtQVxmUCBpcyB1c2VkKS4gIFdpdGggXGZCK3NcZlAKc29ydCBhcmd1 bWVudHMgaW4gZGVzY2VuZGluZyBvcmRlci4gIEZvciB0aGUgbWVhbmluZyBvZiB0aGUgb3Ro ZXIgZmxhZ3MsIHNlZQpcZkJ6c2hvcHRpb25zXGZQXCYuCkZsYWdzIG1heSBiZSBzcGVjaWZp ZWQgYnkgbmFtZSB1c2luZyB0aGUgXGZCXC1vXGZQIG9wdGlvbi4gSWYgbm8gb3B0aW9uCm5h bWUgaXMgc3VwcGxpZWQgd2l0aCBcZkJcLW9cZlAsIHRoZSBjdXJyZW50IG9wdGlvbiBzdGF0 ZXMgYXJlIHByaW50ZWQ6ICBzZWUKdGhlIGRlc2NyaXB0aW9uIG9mIFxmQnNldG9wdFxmUCBi ZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgZm9ybWF0LgpXaXRoIFxmQitvXGZQ IHRoZXkgYXJlIHByaW50ZWQgaW4gYSBmb3JtIHRoYXQgY2FuIGJlIHVzZWQgYXMgaW5wdXQK dG8gdGhlIHNoZWxsLgouc3AKSWYgdGhlIFxmQlwtQVxmUCBmbGFnIGlzIHNwZWNpZmllZCwg XGZJbmFtZVxmUCBpcyBzZXQgdG8gYW4gYXJyYXkgY29udGFpbmluZwp0aGUgZ2l2ZW4gXGZJ YXJnXGZQczsgaWYgbm8gXGZJbmFtZVxmUCBpcyBzcGVjaWZpZWQsIGFsbCBhcnJheXMgYXJl IHByaW50ZWQKdG9nZXRoZXIgd2l0aCB0aGVpciB2YWx1ZXMuCi5zcApJZiBcZkIrQVxmUCBp cyB1c2VkIGFuZCBcZkluYW1lXGZQIGlzIGFuIGFycmF5LCB0aGUKZ2l2ZW4gYXJndW1lbnRz IHdpbGwgcmVwbGFjZSB0aGUgaW5pdGlhbCBlbGVtZW50cyBvZiB0aGF0IGFycmF5OyBpZiBu bwpcZkluYW1lXGZQIGlzIHNwZWNpZmllZCwgYWxsIGFycmF5cyBhcmUgcHJpbnRlZCB3aXRo b3V0IHRoZWlyIHZhbHVlcy4KLnNwClRoZSBiZWhhdmlvdXIgb2YgYXJndW1lbnRzIGFmdGVy IFxmQlwtQVxmUCBcZkluYW1lXGZQIG9yIFxmQitBXGZQIFxmSW5hbWVcZlAKZGVwZW5kcyBv biB3aGV0aGVyIHRoZSBvcHRpb24gXGZCS1NIX0FSUkFZU1xmUCBpcyBzZXQuICBJZiBpdCBp cyBub3Qgc2V0LCBhbGwKYXJndW1lbnRzIGZvbGxvd2luZyBcZkluYW1lXGZQIGFyZSB0cmVh dGVkIGFzIHZhbHVlcyBmb3IgdGhlIGFycmF5LApyZWdhcmRsZXNzIG9mIHRoZWlyIGZvcm0u ICBJZiB0aGUgb3B0aW9uIGlzIHNldCwgbm9ybWFsIG9wdGlvbiBwcm9jZXNzaW5nCmNvbnRp bnVlcyBhdCB0aGF0IHBvaW50OyBvbmx5IHJlZ3VsYXIgYXJndW1lbnRzIGFyZSB0cmVhdGVk IGFzIHZhbHVlcyBmb3IKdGhlIGFycmF5LiAgVGhpcyBtZWFucyB0aGF0Ci5JTkRFTlQgMC4w Ci5JTkRFTlQgMy41Ci5zcAouRVgKIHNldCBcLUEgYXJyYXkgXC14IFwtXC0gZm9vCi5FRQou VU5JTkRFTlQKLlVOSU5ERU5UCi5zcApzZXRzIFxmQmFycmF5XGZQIHRvIFxmQlwteCBcLVxm UFxmQlwtIGZvb1xmUCBpZiBcZkJLU0hfQVJSQVlTXGZQIGlzIG5vdCBzZXQsIGJ1dCBzZXRz CnRoZSBhcnJheSB0byBcZkJmb29cZlAgYW5kIHR1cm5zIG9uIHRoZSBvcHRpb24gXGZCXC14 XGZQIGlmIGl0IGlzIHNldC4KLnNwCklmIHRoZSBcZkJcLUFcZlAgZmxhZyBpcyBub3QgcHJl c2VudCwgYnV0IHRoZXJlIGFyZSBhcmd1bWVudHMgYmV5b25kIHRoZQpvcHRpb25zLCB0aGUg cG9zaXRpb25hbCBwYXJhbWV0ZXJzIGFyZSBzZXQuICBJZiB0aGUgb3B0aW9uIGxpc3QgKGlm IGFueSkKaXMgdGVybWluYXRlZCBieSBcZkJcLVxmUFxmQlwtXGZQLCBhbmQgdGhlcmUgYXJl IG5vIGZ1cnRoZXIgYXJndW1lbnRzLCB0aGUKcG9zaXRpb25hbCBwYXJhbWV0ZXJzIHdpbGwg YmUgdW5zZXQuCi5zcApJZiBubyBhcmd1bWVudHMgYW5kIG5vIFxmQlwtXGZQXGZCXC1cZlAg YXJlIGdpdmVuLCB0aGVuIHRoZSBuYW1lcyBhbmQgdmFsdWVzIG9mCmFsbCBwYXJhbWV0ZXJz IGFyZSBwcmludGVkIG9uIHRoZSBzdGFuZGFyZCBvdXRwdXQuICBJZiB0aGUgb25seSBhcmd1 bWVudCBpcwpcZkIrXGZQLCB0aGUgbmFtZXMgb2YgYWxsIHBhcmFtZXRlcnMgYXJlIHByaW50 ZWQuCi5zcApGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBcZkJzZXQgXC1cZlAgaXMgdHJlYXRl ZCBhcyBcZkJzZXQgK3h2XGZQCmFuZCBcZkJzZXQgXC1cZlAgXGZJYXJnc1xmUCBhcyBcZkJz ZXQgK3h2IFwtXC1cZlAgXGZJYXJnc1xmUCB3aGVuIGluCmFueSBvdGhlciBlbXVsYXRpb24g bW9kZSB0aGFuIHpzaFwoYXFzIG5hdGl2ZSBtb2RlLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5z cApcZkJzZXRjYXBcZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKU2VlIFRoZSB6c2gvY2Fw IE1vZHVsZVwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJzZXRvcHRcZlAgWyB7XGZC K3xcLVxmUH06dmFyOlxmSW9wdGlvbnNcZlAgfCB7XGZCK3xcLX1vXGZQIFxmSW9wdGlvbl9u YW1lXGZQIF0gWyBcZkJcLW1cZlAgXSBbIFxmSW5hbWVcZlAgLi4uIF0KLklOREVOVCAwLjAK LklOREVOVCAzLjUKU2V0IHRoZSBvcHRpb25zIGZvciB0aGUgc2hlbGwuICBBbGwgb3B0aW9u cyBzcGVjaWZpZWQgZWl0aGVyCndpdGggZmxhZ3Mgb3IgYnkgbmFtZSBhcmUgc2V0Lgouc3AK SWYgbm8gYXJndW1lbnRzIGFyZSBzdXBwbGllZCwgdGhlIG5hbWVzIG9mIGFsbCBvcHRpb25z IGN1cnJlbnRseSBzZXQgYXJlCnByaW50ZWQuICBUaGUgZm9ybSBpcyBjaG9zZW4gc28gYXMg dG8gbWluaW1pemUgdGhlIGRpZmZlcmVuY2VzIGZyb20gdGhlCmRlZmF1bHQgb3B0aW9ucyBm b3IgdGhlIGN1cnJlbnQgZW11bGF0aW9uICh0aGUgZGVmYXVsdCBlbXVsYXRpb24gYmVpbmcK bmF0aXZlIFxmQnpzaFxmUCwgc2hvd24gYXMgXGZCPFo+XGZQIGluCkRlc2NyaXB0aW9uIG9m IE9wdGlvbnMpLgpPcHRpb25zIHRoYXQgYXJlIG9uIGJ5IGRlZmF1bHQgZm9yIHRoZSBlbXVs YXRpb24gYXJlCnNob3duIHdpdGggdGhlIHByZWZpeCBcZkJub1xmUCBvbmx5IGlmIHRoZXkg YXJlIG9mZiwgd2hpbGUgb3RoZXIgb3B0aW9ucyBhcmUKc2hvd24gd2l0aG91dCB0aGUgcHJl Zml4IFxmQm5vXGZQIGFuZCBvbmx5IGlmIHRoZXkgYXJlIG9uLiAgSW4gYWRkaXRpb24gdG8K b3B0aW9ucyBjaGFuZ2VkIGZyb20gdGhlIGRlZmF1bHQgc3RhdGUgYnkgdGhlIHVzZXIsIGFu eSBvcHRpb25zIGFjdGl2YXRlZAphdXRvbWF0aWNhbGx5IGJ5IHRoZSBzaGVsbCAoZm9yIGV4 YW1wbGUsIFxmQlNISU5fU1RESU5cZlAgb3IgXGZCSU5URVJBQ1RJVkVcZlApCndpbGwgYmUg c2hvd24gaW4gdGhlIGxpc3QuICBUaGUgZm9ybWF0IGlzIGZ1cnRoZXIgbW9kaWZpZWQgYnkg dGhlIG9wdGlvbgpcZkJLU0hfT1BUSU9OX1BSSU5UXGZQLCBob3dldmVyIHRoZSByYXRpb25h bGUgZm9yIGNob29zaW5nIG9wdGlvbnMgd2l0aApvciB3aXRob3V0IHRoZSBcZkJub1xmUCBw cmVmaXggcmVtYWlucyB0aGUgc2FtZSBpbiB0aGlzIGNhc2UuCi5zcApJZiB0aGUgXGZCXC1t XGZQIGZsYWcgaXMgZ2l2ZW4gdGhlIGFyZ3VtZW50cyBhcmUgdGFrZW4gYXMgcGF0dGVybnMK KHdoaWNoIHNob3VsZCBiZSBxdW90ZWQgdG8gcHJvdGVjdCB0aGVtIGZyb20gZmlsZW5hbWUg ZXhwYW5zaW9uKSwgYW5kIGFsbApvcHRpb25zIHdpdGggbmFtZXMgbWF0Y2hpbmcgdGhlc2Ug cGF0dGVybnMgYXJlIHNldC4KLnNwCk5vdGUgdGhhdCBhIGJhZCBvcHRpb24gbmFtZSBkb2Vz IG5vdCBjYXVzZSBleGVjdXRpb24gb2Ygc3Vic2VxdWVudCBzaGVsbApjb2RlIHRvIGJlIGFi b3J0ZWQ7IHRoaXMgYmVoYXZpb3VyIGlzIGRpZmZlcmVudCBmcm9tIHRoYXQgb2YgXGZCc2V0 Clwtb1xmUFwmLiAgVGhpcyBpcyBiZWNhdXNlXChnYVwoZ2Egc2V0XChnYVwoZ2EgaXMgcmVn YXJkZWQgYXMgYSBzcGVjaWFsIGJ1aWx0aW4gYnkgdGhlClBPU0lYIHN0YW5kYXJkLCBidXQg XGZCc2V0b3B0XGZQIGlzIG5vdC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCc2hpZnRc ZlAgWyBcZkJcLXBcZlAgXSBbIFxmSW5cZlAgXSBbIFxmSW5hbWVcZlAgLi4uIF0KLklOREVO VCAwLjAKLklOREVOVCAzLjUKVGhlIHBvc2l0aW9uYWwgcGFyYW1ldGVycyBcZkIke1xmUFxm SW5cZlArMVwoZ2FcKGdhfVwoZ2FcKGdhIC4uLiBhcmUgcmVuYW1lZAp0byBcZkIkMVxmUCAu Li4sIHdoZXJlIFxmSW5cZlAgaXMgYW4gYXJpdGhtZXRpYyBleHByZXNzaW9uIHRoYXQKZGVm YXVsdHMgdG8gMS4KSWYgYW55IFxmSW5hbWVcZlBzIGFyZSBnaXZlbiB0aGVuIHRoZSBhcnJh eXMgd2l0aCB0aGVzZSBuYW1lcyBhcmUKc2hpZnRlZCBpbnN0ZWFkIG9mIHRoZSBwb3NpdGlv bmFsIHBhcmFtZXRlcnMuCi5zcApJZiB0aGUgb3B0aW9uIFxmQlwtcFxmUCBpcyBnaXZlbiBh cmd1bWVudHMgYXJlIGluc3RlYWQgcmVtb3ZlZCAocG9wcGVkKQpmcm9tIHRoZSBlbmQgcmF0 aGVyIHRoYW4gdGhlIHN0YXJ0IG9mIHRoZSBhcnJheS4KLlVOSU5ERU5UCi5VTklOREVOVAou c3AKXGZCc291cmNlXGZQIFxmSWZpbGVcZlAgWyBcZklhcmdcZlAgLi4uIF0KLklOREVOVCAw LjAKLklOREVOVCAzLjUKU2FtZSBhcyBcZkJcJi5cZlAsIGV4Y2VwdCB0aGF0IHRoZSBjdXJy ZW50IGRpcmVjdG9yeSBpcyBhbHdheXMgc2VhcmNoZWQgYW5kCmlzIGFsd2F5cyBzZWFyY2hl ZCBmaXJzdCwgYmVmb3JlIGRpcmVjdG9yaWVzIGluIFxmQiRwYXRoXGZQXCYuCi5VTklOREVO VAouVU5JTkRFTlQKLnNwClxmQnN0YXRcZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKU2Vl IFRoZSB6c2gvc3RhdCBNb2R1bGVcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCc3Vz cGVuZFxmUCBbIFxmQlwtZlxmUCBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClN1c3BlbmQg dGhlIGV4ZWN1dGlvbiBvZiB0aGUgc2hlbGwgKHNlbmQgaXQgYSBcZkJTSUdUU1RQXGZQKQp1 bnRpbCBpdCByZWNlaXZlcyBhIFxmQlNJR0NPTlRcZlBcJi4KVW5sZXNzIHRoZSBcZkJcLWZc ZlAgb3B0aW9uIGlzIGdpdmVuLCB0aGlzIHdpbGwgcmVmdXNlIHRvIHN1c3BlbmQgYSBsb2dp biBzaGVsbC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCdGVzdFxmUCBbIFxmSWFyZ1xm UCAuLi4gXQouc3AKXGZCW1xmUCBbIFxmSWFyZ1xmUCAuLi4gXSBcZkJdXGZQCi5JTkRFTlQg MC4wCi5JTkRFTlQgMy41Ckxpa2UgdGhlIHN5c3RlbSB2ZXJzaW9uIG9mIFxmQnRlc3RcZlBc Ji4gIEFkZGVkIGZvciBjb21wYXRpYmlsaXR5Owp1c2UgY29uZGl0aW9uYWwgZXhwcmVzc2lv bnMgaW5zdGVhZCAoc2VlCkNvbmRpdGlvbmFsIEV4cHJlc3Npb25zKS4KVGhlIG1haW4gZGlm ZmVyZW5jZXMgYmV0d2VlbiB0aGUgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBzeW50YXggYW5k IHRoZQpcZkJ0ZXN0XGZQIGFuZCBcZkJbXGZQIGJ1aWx0aW5zIGFyZTogIHRoZXNlIGNvbW1h bmRzIGFyZSBub3QgaGFuZGxlZApzeW50YWN0aWNhbGx5LCBzbyBmb3IgZXhhbXBsZSBhbiBl bXB0eSB2YXJpYWJsZSBleHBhbnNpb24gbWF5IGNhdXNlIGFuCmFyZ3VtZW50IHRvIGJlIG9t aXR0ZWQ7IHN5bnRheCBlcnJvcnMgY2F1c2Ugc3RhdHVzIDIgdG8gYmUgcmV0dXJuZWQgaW5z dGVhZApvZiBhIHNoZWxsIGVycm9yOyBhbmQgYXJpdGhtZXRpYyBvcGVyYXRvcnMgZXhwZWN0 IGludGVnZXIgYXJndW1lbnRzIHJhdGhlcgp0aGFuIGFyaXRobWV0aWMgZXhwcmVzc2lvbnMu Ci5zcApUaGUgY29tbWFuZCBhdHRlbXB0cyB0byBpbXBsZW1lbnQgUE9TSVggYW5kIGl0cyBl eHRlbnNpb25zIHdoZXJlIHRoZXNlCmFyZSBzcGVjaWZpZWQuICBVbmZvcnR1bmF0ZWx5IHRo ZXJlIGFyZSBpbnRyaW5zaWMgYW1iaWd1aXRpZXMgaW4KdGhlIHN5bnRheDsgaW4gcGFydGlj dWxhciB0aGVyZSBpcyBubyBkaXN0aW5jdGlvbiBiZXR3ZWVuIHRlc3Qgb3BlcmF0b3JzCmFu ZCBzdHJpbmdzIHRoYXQgcmVzZW1ibGUgdGhlbS4gIFRoZSBzdGFuZGFyZCBhdHRlbXB0cyB0 byByZXNvbHZlIHRoZXNlCmZvciBzbWFsbCBudW1iZXJzIG9mIGFyZ3VtZW50cyAodXAgdG8g Zm91cik7IGZvciBmaXZlIG9yIG1vcmUgYXJndW1lbnRzCmNvbXBhdGliaWxpdHkgY2Fubm90 IGJlIHJlbGllZCBvbi4gIFVzZXJzIGFyZSB1cmdlZCB3aGVyZXZlciBwb3NzaWJsZSB0bwp1 c2UgdGhlIFxmQltbXGZQIHRlc3Qgc3ludGF4IHdoaWNoIGRvZXMgbm90IGhhdmUgdGhlc2Ug YW1iaWd1aXRpZXMuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQnRpbWVzXGZQCi5JTkRF TlQgMC4wCi5JTkRFTlQgMy41ClByaW50IHRoZSBhY2N1bXVsYXRlZCB1c2VyIGFuZCBzeXN0 ZW0gdGltZXMgZm9yIHRoZSBzaGVsbAphbmQgZm9yIHByb2Nlc3NlcyBydW4gZnJvbSB0aGUg c2hlbGwuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQnRyYXBcZlAgWyBcZklhcmdcZlAg XSBbIFxmSXNpZ1xmUCAuLi4gXQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpcZklhcmdcZlAg aXMgYSBzZXJpZXMgb2YgY29tbWFuZHMgKHVzdWFsbHkgcXVvdGVkIHRvIHByb3RlY3QgaXQg ZnJvbQppbW1lZGlhdGUgZXZhbHVhdGlvbiBieSB0aGUgc2hlbGwpIHRvIGJlIHJlYWQgYW5k IGV4ZWN1dGVkIHdoZW4gdGhlIHNoZWxsCnJlY2VpdmVzIGFueSBvZiB0aGUgc2lnbmFscyBz cGVjaWZpZWQgYnkgb25lIG9yIG1vcmUgXGZJc2lnXGZQIGFyZ3MuCkVhY2ggXGZJc2lnXGZQ IGNhbiBiZSBnaXZlbiBhcyBhIG51bWJlciwKb3IgYXMgdGhlIG5hbWUgb2YgYSBzaWduYWwg ZWl0aGVyIHdpdGggb3Igd2l0aG91dCB0aGUgc3RyaW5nIFxmQlNJR1xmUAppbiBmcm9udCAo ZS5nLiAxLCBIVVAsIGFuZCBTSUdIVVAgYXJlIGFsbCB0aGUgc2FtZSBzaWduYWwpLgouc3AK SWYgXGZJYXJnXGZQIGlzIFxmQlwtXGZQLCB0aGVuIHRoZSBzcGVjaWZpZWQgc2lnbmFscyBh cmUgcmVzZXQgdG8gdGhlaXIKZGVmYXVsdHMsIG9yLCBpZiBubyBcZklzaWdcZlAgYXJncyBh cmUgcHJlc2VudCwgYWxsIHRyYXBzIGFyZSByZXNldC4KLnNwCklmIFxmSWFyZ1xmUCBpcyBh biBlbXB0eSBzdHJpbmcsIHRoZW4gdGhlIHNwZWNpZmllZCBzaWduYWxzCmFyZSBpZ25vcmVk IGJ5IHRoZSBzaGVsbCAoYW5kIGJ5IHRoZSBjb21tYW5kcyBpdCBpbnZva2VzKS4KLnNwCklm IFxmSWFyZ1xmUCBpcyBvbWl0dGVkIGJ1dCBvbmUgb3IgbW9yZSBcZklzaWdcZlAgYXJncyBh cmUgcHJvdmlkZWQgKGkuZS4KdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgdmFsaWQgc2lnbmFs IG51bWJlciBvciBuYW1lKSwgdGhlIGVmZmVjdCBpcyB0aGUKc2FtZSBhcyBpZiBcZklhcmdc ZlAgaGFkIGJlZW4gc3BlY2lmaWVkIGFzIFxmQlwtXGZQXCYuCi5zcApUaGUgXGZCdHJhcFxm UCBjb21tYW5kIHdpdGggbm8gYXJndW1lbnRzIHByaW50cyBhIGxpc3Qgb2YgY29tbWFuZHMK YXNzb2NpYXRlZCB3aXRoIGVhY2ggc2lnbmFsLgouc3AKSWYgXGZJc2lnXGZQIGlzIFxmQlpF UlJcZlAgdGhlbiBcZklhcmdcZlAgd2lsbCBiZSBleGVjdXRlZAphZnRlciBlYWNoIGNvbW1h bmQgd2l0aCBhIG5vbnplcm8gZXhpdCBzdGF0dXMuICBcZkJFUlJcZlAgaXMgYW4gYWxpYXMK Zm9yIFxmQlpFUlJcZlAgb24gc3lzdGVtcyB0aGF0IGhhdmUgbm8gXGZCU0lHRVJSXGZQIHNp Z25hbCAodGhpcyBpcyB0aGUKdXN1YWwgY2FzZSkuCi5zcApJZiBcZklzaWdcZlAgaXMgXGZC REVCVUdcZlAgdGhlbiBcZklhcmdcZlAgd2lsbCBiZSBleGVjdXRlZApiZWZvcmUgZWFjaCBj b21tYW5kIGlmIHRoZSBvcHRpb24gXGZCREVCVUdfQkVGT1JFX0NNRFxmUCBpcyBzZXQKKGFz IGl0IGlzIGJ5IGRlZmF1bHQpLCBlbHNlIGFmdGVyIGVhY2ggY29tbWFuZC4gIEhlcmUsIGEg XChnYWNvbW1hbmRcKGFxIGlzCndoYXQgaXMgZGVzY3JpYmVkIGFzIGEgXChnYXN1Ymxpc3Rc KGFxIGluIHRoZSBzaGVsbCBncmFtbWFyLCBzZWUKU2ltcGxlIENvbW1hbmRzICYgUGlwZWxp bmVzXCYuCklmIFxmQkRFQlVHX0JFRk9SRV9DTURcZlAgaXMgc2V0IHZhcmlvdXMgYWRkaXRp b25hbCBmZWF0dXJlcyBhcmUgYXZhaWxhYmxlLgpGaXJzdCwgaXQgaXMgcG9zc2libGUgdG8g c2tpcCB0aGUgbmV4dCBjb21tYW5kIGJ5IHNldHRpbmcgdGhlIG9wdGlvbgpcZkJFUlJfRVhJ VFxmUDsgc2VlIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgXGZCRVJSX0VYSVRcZlAgb3B0aW9u IGluClxmQnpzaG9wdGlvbnNcZlBcJi4gIEFsc28sIHRoZSBzaGVsbCBwYXJhbWV0ZXIKXGZC WlNIX0RFQlVHX0NNRFxmUCBpcyBzZXQgdG8gdGhlIHN0cmluZyBjb3JyZXNwb25kaW5nIHRv IHRoZSBjb21tYW5kCnRvIGJlIGV4ZWN1dGVkIGZvbGxvd2luZyB0aGUgdHJhcC4gIE5vdGUg dGhhdCB0aGlzIHN0cmluZyBpcyByZWNvbnN0cnVjdGVkCmZyb20gdGhlIGludGVybmFsIGZv cm1hdCBhbmQgbWF5IG5vdCBiZSBmb3JtYXR0ZWQgdGhlIHNhbWUgd2F5IGFzIHRoZQpvcmln aW5hbCB0ZXh0LiAgVGhlIHBhcmFtZXRlciBpcyB1bnNldCBhZnRlciB0aGUgdHJhcCBpcyBl eGVjdXRlZC4KLnNwCklmIFxmSXNpZ1xmUCBpcyBcZkIwXGZQIG9yIFxmQkVYSVRcZlAKYW5k IHRoZSBcZkJ0cmFwXGZQIHN0YXRlbWVudCBpcyBleGVjdXRlZCBpbnNpZGUgdGhlIGJvZHkg b2YgYSBmdW5jdGlvbiwKdGhlbiB0aGUgY29tbWFuZCBcZklhcmdcZlAgaXMgZXhlY3V0ZWQg YWZ0ZXIgdGhlIGZ1bmN0aW9uIGNvbXBsZXRlcy4KVGhlIHZhbHVlIG9mIFxmQiQ/XGZQIGF0 IHRoZSBzdGFydCBvZiBleGVjdXRpb24gaXMgdGhlIGV4aXQgc3RhdHVzIG9mIHRoZQpzaGVs bCBvciB0aGUgcmV0dXJuIHN0YXR1cyBvZiB0aGUgZnVuY3Rpb24gZXhpdGluZy4KSWYgXGZJ c2lnXGZQIGlzIFxmQjBcZlAgb3IgXGZCRVhJVFxmUAphbmQgdGhlIFxmQnRyYXBcZlAgc3Rh dGVtZW50IGlzIG5vdCBleGVjdXRlZCBpbnNpZGUgdGhlIGJvZHkgb2YgYSBmdW5jdGlvbiwK dGhlbiB0aGUgY29tbWFuZCBcZklhcmdcZlAgaXMgZXhlY3V0ZWQgd2hlbiB0aGUgc2hlbGwg dGVybWluYXRlczsgdGhlCnRyYXAgcnVucyBiZWZvcmUgYW55IFxmQnpzaGV4aXRcZlAgaG9v ayBmdW5jdGlvbnMuCi5zcApcZkJaRVJSXGZQLCBcZkJERUJVR1xmUCwgYW5kIFxmQkVYSVRc ZlAgdHJhcHMgYXJlIG5vdCBleGVjdXRlZCBpbnNpZGUgb3RoZXIKdHJhcHMuICBcZkJaRVJS XGZQIGFuZCBcZkJERUJVR1xmUCB0cmFwcyBhcmUga2VwdCB3aXRoaW4gc3Vic2hlbGxzLCB3 aGlsZQpvdGhlciB0cmFwcyBhcmUgcmVzZXQuCi5zcApOb3RlIHRoYXQgdHJhcHMgZGVmaW5l ZCB3aXRoIHRoZSBcZkJ0cmFwXGZQIGJ1aWx0aW4gYXJlIHNsaWdodGx5IGRpZmZlcmVudApm cm9tIHRob3NlIGRlZmluZWQgYXMgXGZCVFJBUFxmUFxmSU5BTFxmUCAoKSB7IC4uLiB9LCBh cyB0aGUgbGF0dGVyIGhhdmUKdGhlaXIgb3duIGZ1bmN0aW9uIGVudmlyb25tZW50IChsaW5l IG51bWJlcnMsIGxvY2FsIHZhcmlhYmxlcywgZXRjLikgd2hpbGUKdGhlIGZvcm1lciB1c2Ug dGhlIGVudmlyb25tZW50IG9mIHRoZSBjb21tYW5kIGluIHdoaWNoIHRoZXkgd2VyZSBjYWxs ZWQuCkZvciBleGFtcGxlLAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQouc3AKLkVYCiB0cmFw IFwoYXFwcmludCAkTElORU5PXChhcSBERUJVRwouRUUKLlVOSU5ERU5UCi5VTklOREVOVAou c3AKd2lsbCBwcmludCB0aGUgbGluZSBudW1iZXIgb2YgYSBjb21tYW5kIGV4ZWN1dGVkIGFm dGVyIGl0IGhhcyBydW4sIHdoaWxlCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41Ci5zcAouRVgK IFRSQVBERUJVRygpIHsgcHJpbnQgJExJTkVOTzsgfQouRUUKLlVOSU5ERU5UCi5VTklOREVO VAouc3AKd2lsbCBhbHdheXMgcHJpbnQgdGhlIG51bWJlciB6ZXJvLgouc3AKQWx0ZXJuYXRp dmUgc2lnbmFsIG5hbWVzIGFyZSBhbGxvd2VkIGFzIGRlc2NyaWJlZCB1bmRlciBcZkJraWxs XGZQIGFib3ZlLgpEZWZpbmluZyBhIHRyYXAgdW5kZXIgZWl0aGVyIG5hbWUgY2F1c2VzIGFu eSB0cmFwIHVuZGVyIGFuIGFsdGVybmF0aXZlCm5hbWUgdG8gYmUgcmVtb3ZlZC4gIEhvd2V2 ZXIsIGl0IGlzIHJlY29tbWVuZGVkIHRoYXQgZm9yIGNvbnNpc3RlbmN5CnVzZXJzIHN0aWNr IGV4Y2x1c2l2ZWx5IHRvIG9uZSBuYW1lIG9yIGFub3RoZXIuCi5VTklOREVOVAouVU5JTkRF TlQKLnNwClxmQnRydWVcZlAgWyBcZklhcmdcZlAgLi4uIF0KLklOREVOVCAwLjAKLklOREVO VCAzLjUKRG8gbm90aGluZyBhbmQgcmV0dXJuIGFuIGV4aXQgc3RhdHVzIG9mIDAuCi5VTklO REVOVAouVU5JTkRFTlQKLnNwClxmQnR0eWN0bFxmUCBbIFxmQlwtZnVcZlAgXQouSU5ERU5U IDAuMAouSU5ERU5UIDMuNQpUaGUgXGZCXC1mXGZQIG9wdGlvbiBmcmVlemVzIHRoZSB0dHkg KGkuZS4gdGVybWluYWwgb3IgdGVybWluYWwgZW11bGF0b3IpLCBhbmQKXGZCXC11XGZQIHVu ZnJlZXplcyBpdC4KV2hlbiB0aGUgdHR5IGlzIGZyb3plbiwgbm8gY2hhbmdlcyBtYWRlIHRv IHRoZSB0dHkgc2V0dGluZ3MgYnkKZXh0ZXJuYWwgcHJvZ3JhbXMgd2lsbCBiZSBob25vcmVk IGJ5IHRoZSBzaGVsbCwgZXhjZXB0IGZvciBjaGFuZ2VzIGluIHRoZQpzaXplIG9mIHRoZSBz Y3JlZW47IHRoZSBzaGVsbCB3aWxsCnNpbXBseSByZXNldCB0aGUgc2V0dGluZ3MgdG8gdGhl aXIgcHJldmlvdXMgdmFsdWVzIGFzIHNvb24gYXMgZWFjaApjb21tYW5kIGV4aXRzIG9yIGlz IHN1c3BlbmRlZC4gIFRodXMsIFxmQnN0dHlcZlAgYW5kIHNpbWlsYXIgcHJvZ3JhbXMgaGF2 ZQpubyBlZmZlY3Qgd2hlbiB0aGUgdHR5IGlzIGZyb3plbi4gIEZyZWV6aW5nIHRoZSB0dHkg ZG9lcyBub3QgY2F1c2UKdGhlIGN1cnJlbnQgc3RhdGUgdG8gYmUgcmVtZW1iZXJlZDogaW5z dGVhZCwgaXQgY2F1c2VzIGZ1dHVyZSBjaGFuZ2VzCnRvIHRoZSBzdGF0ZSB0byBiZSBibG9j a2VkLgouc3AKV2l0aG91dCBvcHRpb25zIGl0IHJlcG9ydHMgd2hldGhlciB0aGUgdGVybWlu YWwgaXMgZnJvemVuIG9yIG5vdC4KLnNwCk5vdGUgdGhhdCwgcmVnYXJkbGVzcyBvZiB3aGV0 aGVyIHRoZSB0dHkgaXMgZnJvemVuIG9yIG5vdCwgdGhlCnNoZWxsIG5lZWRzIHRvIGNoYW5n ZSB0aGUgc2V0dGluZ3Mgd2hlbiB0aGUgbGluZSBlZGl0b3Igc3RhcnRzLCBzbwp1bmZyZWV6 aW5nIHRoZSB0dHkgZG9lcyBub3QgZ3VhcmFudGVlIHNldHRpbmdzIG1hZGUgb24gdGhlCmNv bW1hbmQgbGluZSBhcmUgcHJlc2VydmVkLiAgU3RyaW5ncyBvZiBjb21tYW5kcyBydW4gYmV0 d2VlbgplZGl0aW5nIHRoZSBjb21tYW5kIGxpbmUgd2lsbCBzZWUgYSBjb25zaXN0ZW50IHR0 eSBzdGF0ZS4KU2VlIGFsc28gdGhlIHNoZWxsIHZhcmlhYmxlIFxmQlNUVFlcZlAgZm9yIGEg bWVhbnMgb2YgaW5pdGlhbGlzaW5nCnRoZSB0dHkgYmVmb3JlIHJ1bm5pbmcgZXh0ZXJuYWwg Y29tbWFuZHMgYW5kL29yIGZyZWV6aW5nIHRoZSB0dHkKYXJvdW5kIGEgc2luZ2xlIGNvbW1h bmQuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQnR5cGVcZlAgWyBcZkJcLXdmcGFtc1Nc ZlAgXSBcZkluYW1lXGZQIC4uLgouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpFcXVpdmFsZW50 IHRvIFxmQndoZW5jZSBcLXZcZlBcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCdHlw ZXNldFxmUCBbIHtcZkIrfFwtfUFIVWFnaGxtcnR1eFxmUCBdIFsge1xmQit8XC19RUZMUlpp cFxmUCBbIFxmSW5cZlAgXSBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClsgXGZCK1xmUCBd IFsgXGZJbmFtZVxmUFtcZkI9XGZQXGZJdmFsdWVcZlBdIC4uLiBdCi5VTklOREVOVAouVU5J TkRFTlQKLnNwClxmQnR5cGVzZXQgeyt8XC19blxmUCBbIFxmQlwtZ1xmUCBdIFsge1xmQit8 XC19clxmUCBdIFsgXGZJbmFtZVxmUFtcZkI9XGZQXGZJdmFsdWVcZlBdIC4uLiBdCi5zcApc ZkJ0eXBlc2V0XGZQIFxmQlwtVFxmUCBbIHtcZkIrfFwtfVVnbHJ1eFxmUCBdIFsge1xmQit8 XC19TFJacFxmUCBbIFxmSW5cZlAgXSBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClsgXGZC K1xmUCB8IFxmSVNDQUxBUlxmUFtcZkI9XGZQXGZJdmFsdWVcZlBdIFxmSWFycmF5XGZQW1xm Qj0oXGZQXGZJdmFsdWVcZlAgLi4uXChnYVwoZ2EpXChnYVwoZ2FdIFsgXGZJc2VwXGZQIF0g XQouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJ0eXBlc2V0XGZQIFxmQlwtZlxmUCBbIHtc ZkIrfFwtfVRVa210dXpcZlAgXSBbIFxmQitcZlAgXSBbIFxmSW5hbWVcZlAgLi4uIF0KLklO REVOVCAwLjAKLklOREVOVCAzLjUKU2V0IG9yIGRpc3BsYXkgYXR0cmlidXRlcyBhbmQgdmFs dWVzIGZvciBzaGVsbCBwYXJhbWV0ZXJzLgouc3AKRXhjZXB0IGFzIG5vdGVkIGJlbG93IGZv ciBjb250cm9sIGZsYWdzIHRoYXQgY2hhbmdlIHRoZSBiZWhhdmlvciwKYSBwYXJhbWV0ZXIg aXMgY3JlYXRlZCBmb3IgZWFjaCBcZkluYW1lXGZQIHRoYXQgZG9lcyBub3QgYWxyZWFkeSBy ZWZlcgp0byBvbmUuICBXaGVuIGluc2lkZSBhIGZ1bmN0aW9uLCBhIG5ldyBwYXJhbWV0ZXIg aXMgY3JlYXRlZCBmb3IgZXZlcnkKXGZJbmFtZVxmUCAoZXZlbiB0aG9zZSB0aGF0IGFscmVh ZHkgZXhpc3QpLCBhbmQgaXMgdW5zZXQgYWdhaW4gd2hlbiB0aGUKZnVuY3Rpb24gY29tcGxl dGVzLiAgU2VlIExvY2FsIFBhcmFtZXRlcnNcJi4KVGhlIHNhbWUgcnVsZXMgYXBwbHkgdG8g c3BlY2lhbCBzaGVsbCBwYXJhbWV0ZXJzLCB3aGljaApyZXRhaW4gdGhlaXIgc3BlY2lhbCBh dHRyaWJ1dGVzIHdoZW4gbWFkZSBsb2NhbC4KLnNwCkZvciBlYWNoIFxmSW5hbWVcZlBcZkI9 XGZQXGZJdmFsdWVcZlAgYXNzaWdubWVudCwgdGhlIHBhcmFtZXRlcgpcZkluYW1lXGZQIGlz IHNldCB0byBcZkl2YWx1ZVxmUFwmLiAgSWYgdGhlIGFzc2lnbm1lbnQgaXMgb21pdHRlZCBh bmQgXGZJbmFtZVxmUApkb2VzIFxmSW5vdFxmUCByZWZlciB0byBhbiBleGlzdGluZyBwYXJh bWV0ZXIsIGEgbmV3IHBhcmFtZXRlciBpcyBpbml0aWFsaXplZAp0byBlbXB0eSBzdHJpbmcs IHplcm8sIG9yIGVtcHR5IGFycmF5IChhcyBhcHByb3ByaWF0ZSksIFxmSXVubGVzc1xmUCB0 aGUKc2hlbGwgb3B0aW9uIFxmQlRZUEVTRVRfVE9fVU5TRVRcZlAgaXMgc2V0LiAgV2hlbiB0 aGF0IG9wdGlvbiBpcyBzZXQsCnRoZSBwYXJhbWV0ZXIgYXR0cmlidXRlcyBhcmUgcmVjb3Jk ZWQgYnV0IHRoZSBwYXJhbWV0ZXIgcmVtYWlucyB1bnNldC4KLnNwCklmIHRoZSBzaGVsbCBv cHRpb24gXGZCVFlQRVNFVF9TSUxFTlRcZlAgaXMgbm90IHNldCwgZm9yIGVhY2ggcmVtYWlu aW5nClxmSW5hbWVcZlAgdGhhdCByZWZlcnMgdG8gYSBwYXJhbWV0ZXIgdGhhdCBpcyBhbHJl YWR5IHNldCwgdGhlIG5hbWUgYW5kCnZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIgYXJlIHByaW50 ZWQgaW4gdGhlIGZvcm0gb2YgYW4gYXNzaWdubWVudC4KTm90aGluZyBpcyBwcmludGVkIGZv ciBuZXdseVwtY3JlYXRlZCBwYXJhbWV0ZXJzLCBvciB3aGVuIGFueSBhdHRyaWJ1dGUKZmxh Z3MgbGlzdGVkIGJlbG93IGFyZSBnaXZlbiBhbG9uZyB3aXRoIHRoZSBcZkluYW1lXGZQXCYu ICBVc2luZwpcZkIrXGZQIGluc3RlYWQgb2YgbWludXMgdG8gaW50cm9kdWNlIGFuIGF0dHJp YnV0ZSB0dXJucyBpdCBvZmYuCi5zcApJZiBubyBcZkluYW1lXGZQIGlzIHByZXNlbnQsIHRo ZSBuYW1lcyBhbmQgdmFsdWVzIG9mIGFsbCBwYXJhbWV0ZXJzIGFyZQpwcmludGVkLiAgSW4g dGhpcyBjYXNlIHRoZSBhdHRyaWJ1dGUgZmxhZ3MgcmVzdHJpY3QgdGhlIGRpc3BsYXkgdG8g b25seQp0aG9zZSBwYXJhbWV0ZXJzIHRoYXQgaGF2ZSB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0 ZXMsIGFuZCB1c2luZyBcZkIrXGZQCnJhdGhlciB0aGFuIFxmQlwtXGZQIHRvIGludHJvZHVj ZSB0aGUgZmxhZyBzdXBwcmVzc2VzIHByaW50aW5nIG9mIHRoZSB2YWx1ZXMKb2YgcGFyYW1l dGVycyB3aGVuIHRoZXJlIGlzIG5vIHBhcmFtZXRlciBuYW1lLgouc3AKQWxsIGZvcm1zIG9m IHRoZSBjb21tYW5kIGhhbmRsZSBzY2FsYXIgYXNzaWdubWVudC4gIEFycmF5IGFzc2lnbm1l bnQgaXMKcG9zc2libGUgaWYgYW55IG9mIHRoZSByZXNlcnZlZCB3b3JkcyBcZkJkZWNsYXJl XGZQLCBcZkJleHBvcnRcZlAsIFxmQmZsb2F0XGZQLApcZkJpbnRlZ2VyXGZQLCBcZkJsb2Nh bFxmUCwgXGZCcmVhZG9ubHlcZlAgb3IgXGZCdHlwZXNldFxmUCBpcyBtYXRjaGVkIHdoZW4g dGhlCmxpbmUgaXMgcGFyc2VkIChOLkIuIG5vdCB3aGVuIGl0IGlzIGV4ZWN1dGVkKS4gIElu IHRoaXMgY2FzZSB0aGUgYXJndW1lbnRzCmFyZSBwYXJzZWQgYXMgYXNzaWdubWVudHMsIGV4 Y2VwdCB0aGF0IHRoZSBcZkIrPVxmUCBzeW50YXggYW5kIHRoZQpcZkJHTE9CX0FTU0lHTlxm UCBvcHRpb24gYXJlIG5vdCBzdXBwb3J0ZWQsIGFuZCBzY2FsYXIgdmFsdWVzIGFmdGVyIFxm Qj1cZlAKYXJlIFxmSW5vdFxmUCBzcGxpdCBmdXJ0aGVyIGludG8gd29yZHMsIGV2ZW4gaWYg ZXhwYW5kZWQgKHJlZ2FyZGxlc3Mgb2YgdGhlCnNldHRpbmcgb2YgdGhlIFxmQktTSF9UWVBF U0VUXGZQIG9wdGlvbjsgdGhpcyBvcHRpb24gaXMgb2Jzb2xldGUpLgouc3AKRXhhbXBsZXMg b2YgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gY29tbWFuZCBhbmQgcmVzZXJ2ZWQgd29yZCBw YXJzaW5nOgouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQouc3AKLkVYCiAjIFJlc2VydmVkIHdv cmQgcGFyc2luZwogdHlwZXNldCBzdmFyPSQoZWNobyBvbmUgd29yZCkgYXZhcj0oc2V2ZXJh bCB3b3JkcykKLkVFCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClRoZSBhYm92ZSBjcmVhdGVz IGEgc2NhbGFyIHBhcmFtZXRlciBcZkJzdmFyXGZQIGFuZCBhbiBhcnJheQpwYXJhbWV0ZXIg XGZCYXZhclxmUCBhcyBpZiB0aGUgYXNzaWdubWVudHMgaGFkIGJlZW4KLklOREVOVCAwLjAK LklOREVOVCAzLjUKLnNwCi5FWAogc3Zhcj1cKGRxb25lIHdvcmRcKGRxCiBhdmFyPShzZXZl cmFsIHdvcmRzKQouRUUKLlVOSU5ERU5UCi5VTklOREVOVAouc3AKT24gdGhlIG90aGVyIGhh bmQ6Ci5JTkRFTlQgMC4wCi5JTkRFTlQgMy41Ci5zcAouRVgKICMgTm9ybWFsIGJ1aWx0aW4g aW50ZXJmYWNlCiBidWlsdGluIHR5cGVzZXQgc3Zhcj0kKGVjaG8gdHdvIHdvcmRzKQouRUUK LlVOSU5ERU5UCi5VTklOREVOVAouc3AKVGhlIFxmQmJ1aWx0aW5cZlAga2V5d29yZCBjYXVz ZXMgdGhlIGFib3ZlIHRvIHVzZSB0aGUgc3RhbmRhcmQgYnVpbHRpbgppbnRlcmZhY2UgdG8g XGZCdHlwZXNldFxmUCBpbiB3aGljaCBhcmd1bWVudCBwYXJzaW5nIGlzIHBlcmZvcm1lZCBp biB0aGUgc2FtZQp3YXkgYXMgZm9yIG90aGVyIGNvbW1hbmRzLiAgVGhpcyBleGFtcGxlIGNy ZWF0ZXMgYSBzY2FsYXIgXGZCc3ZhclxmUApjb250YWluaW5nIHRoZSB2YWx1ZSBcZkJ0d29c ZlAgYW5kIGFub3RoZXIgc2NhbGFyIHBhcmFtZXRlciBcZkJ3b3Jkc1xmUCB3aXRoCm5vIHZh bHVlLiAgQW4gYXJyYXkgdmFsdWUgaW4gdGhpcyBjYXNlIHdvdWxkIGVpdGhlciBjYXVzZSBh biBlcnJvciBvciBiZQp0cmVhdGVkIGFzIGFuIG9ic2N1cmUgc2V0IG9mIGdsb2IgcXVhbGlm aWVycy4KLnNwCkFyYml0cmFyeSBhcmd1bWVudHMgYXJlIGFsbG93ZWQgaWYgdGhleSB0YWtl IHRoZSBmb3JtIG9mIGFzc2lnbm1lbnRzCmFmdGVyIGNvbW1hbmQgbGluZSBleHBhbnNpb247 IGhvd2V2ZXIsIHRoZXNlIG9ubHkgcGVyZm9ybSBzY2FsYXIKYXNzaWdubWVudDoKLklOREVO VCAwLjAKLklOREVOVCAzLjUKLnNwCi5FWAogdmFyPVwoYXFzdmFyPXZhbFwoYXEKIHR5cGVz ZXQgJHZhcgouRUUKLlVOSU5ERU5UCi5VTklOREVOVAouc3AKVGhlIGFib3ZlIHNldHMgdGhl IHNjYWxhciBwYXJhbWV0ZXIgXGZCc3ZhclxmUCB0byB0aGUgdmFsdWUgXGZCdmFsXGZQXCYu ClBhcmVudGhlc2VzIGFyb3VuZCB0aGUgdmFsdWUgd2l0aGluIFxmQnZhclxmUCB3b3VsZCBu b3QgY2F1c2UgYXJyYXkKYXNzaWdubWVudCBhcyB0aGV5IHdpbGwgYmUgdHJlYXRlZCBhcyBv cmRpbmFyeSBjaGFyYWN0ZXJzIHdoZW4gXGZCJHZhclxmUAppcyBzdWJzdGl0dXRlZC4gIEFu eSBub25cLXRyaXZpYWwgZXhwYW5zaW9uIGluIHRoZSBuYW1lIHBhcnQgb2YgdGhlCmFzc2ln bm1lbnQgY2F1c2VzIHRoZSBhcmd1bWVudCB0byBiZSB0cmVhdGVkIGluIHRoaXMgZmFzaGlv bjoKLklOREVOVCAwLjAKLklOREVOVCAzLjUKLnNwCi5FWAogdHlwZXNldCB7dmFyMSx2YXIy LHZhcjN9PW5hbWUKLkVFCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClRoZSBhYm92ZSBzeW50 YXggaXMgdmFsaWQsIGFuZCBoYXMgdGhlIGV4cGVjdGVkIGVmZmVjdCBvZiBzZXR0aW5nIHRo ZQp0aHJlZSBwYXJhbWV0ZXJzIHRvIHRoZSBzYW1lIHZhbHVlLCBidXQgdGhlIGNvbW1hbmQg bGluZSBpcyBwYXJzZWQgYXMKYSBzZXQgb2YgdGhyZWUgbm9ybWFsIGNvbW1hbmQgbGluZSBh cmd1bWVudHMgdG8gXGZCdHlwZXNldFxmUCBhZnRlcgpleHBhbnNpb24uICBIZW5jZSBpdCBp cyBub3QgcG9zc2libGUgdG8gYXNzaWduIHRvIG11bHRpcGxlIGFycmF5cyBieQp0aGlzIG1l YW5zLgouc3AKTm90ZSB0aGF0IGVhY2ggaW50ZXJmYWNlIHRvIGFueSBvZiB0aGUgY29tbWFu ZHMgbWF5IGJlIGRpc2FibGVkCnNlcGFyYXRlbHkuICBGb3IgZXhhbXBsZSwgXGZCZGlzYWJs ZSBcLXIgdHlwZXNldFxmUCBkaXNhYmxlcyB0aGUgcmVzZXJ2ZWQKd29yZCBpbnRlcmZhY2Ug dG8gXGZCdHlwZXNldFxmUCwgZXhwb3NpbmcgdGhlIGJ1aWx0aW4gaW50ZXJmYWNlLCB3aGls ZQpcZkJkaXNhYmxlIHR5cGVzZXRcZlAgZGlzYWJsZXMgdGhlIGJ1aWx0aW4uICBOb3RlIHRo YXQgZGlzYWJsaW5nIHRoZQpyZXNlcnZlZCB3b3JkIGludGVyZmFjZSBmb3IgXGZCdHlwZXNl dFxmUCBtYXkgY2F1c2UgcHJvYmxlbXMgd2l0aCB0aGUKb3V0cHV0IG9mIFxmQnR5cGVzZXQg XC1wXGZQLCB3aGljaCBhc3N1bWVzIHRoZSByZXNlcnZlZCB3b3JkIGludGVyZmFjZSBpcwph dmFpbGFibGUgaW4gb3JkZXIgdG8gcmVzdG9yZSBhcnJheSBhbmQgYXNzb2NpYXRpdmUgYXJy YXkgdmFsdWVzLgouc3AKVW5saWtlIHBhcmFtZXRlciBhc3NpZ25tZW50IHN0YXRlbWVudHMs IFxmQnR5cGVzZXRcZlBcKGFxcyBleGl0IHN0YXR1cyBvbiBhbgphc3NpZ25tZW50IHRoYXQg aW52b2x2ZXMgYSBjb21tYW5kIHN1YnN0aXR1dGlvbiBkb2VzIG5vdCByZWZsZWN0IHRoZSBl eGl0CnN0YXR1cyBvZiB0aGUgY29tbWFuZCBzdWJzdGl0dXRpb24uICBUaGVyZWZvcmUsIHRv IHRlc3QgZm9yIGFuIGVycm9yIGluCmEgY29tbWFuZCBzdWJzdGl0dXRpb24sIHNlcGFyYXRl IHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgcGFyYW1ldGVyIGZyb20gaXRzCmluaXRpYWxpemF0 aW9uOgouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQouc3AKLkVYCiAjIFdST05HCiB0eXBlc2V0 IHZhcjE9JChleGl0IDEpIHx8IGVjaG8gXChkcVRyb3VibGUgd2l0aCB2YXIxXChkcQoKICMg UklHSFQKIHR5cGVzZXQgdmFyMSAmJiB2YXIxPSQoZXhpdCAxKSB8fCBlY2hvIFwoZHFUcm91 YmxlIHdpdGggdmFyMVwoZHEKLkVFCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClRvIGluaXRp YWxpemUgYSBwYXJhbWV0ZXIgXGZJcGFyYW1cZlAgdG8gYSBjb21tYW5kIG91dHB1dCBhbmQg bWFyayBpdCByZWFkb25seSwKdXNlIFxmQnR5cGVzZXQgXC1yXGZQIFxmSXBhcmFtXGZQIG9y IFxmQnJlYWRvbmx5XGZQIFxmSXBhcmFtXGZQIGFmdGVyIHRoZSBwYXJhbWV0ZXIKYXNzaWdu bWVudCBzdGF0ZW1lbnQuCi5zcApUaGUgZmxhZyBcZkJcLW5cZlAgY3JlYXRlcyBhIFxmSW5h bWVkIHJlZmVyZW5jZVxmUCB0byBhbm90aGVyIHBhcmFtZXRlci4KVGhlIHNlY29uZCBwYXJh bWV0ZXIgbmVlZCBub3QgZXhpc3QgYXQgdGhlIHRpbWUgdGhlIHJlZmVyZW5jZSBpcwpjcmVh dGVkLiAgT25seSB0aGUgXGZCXC1IXGZQLCBcZkJcLWdcZlAsIGFuZCBcZkJcLXJcZlAgZmxh Z3MgbWF5IGJlIHVzZWQgaW4KY29uanVuY3Rpb24gd2l0aCBcZkJcLW5cZlAsIGhhdmluZyB0 aGVpciB1c3VhbCBtZWFuaW5ncy4gIFRoZSBcZkJcLXVcZlAKZmxhZyBpcyBzcGVjaWFsIGFu ZCBtYXkgYmUgYXBwbGllZCB0byBhbHRlciB0aGUgc2NvcGUgb2YgdGhlIHJlZmVyZW5jZS4K VGhlIFxmSW5hbWVcZlAgc28gY3JlYXRlZCBtYXkgbm90IGJlIGFuIGFycmF5IGVsZW1lbnQg bm9yIHVzZQphIHN1YnNjcmlwdCwgYnV0IHRoZSBcZkl2YWx1ZVxmUCBhc3NpZ25lZCBtYXkg YmUgYW55IHZhbGlkIHBhcmFtZXRlcgpuYW1lIHN5bnRheCwgZXZlbiBhIHN1YnNjcmlwdGVk IGFycmF5IGVsZW1lbnQgKGluY2x1ZGluZyBhbiBhc3NvY2lhdGl2ZQphcnJheSBlbGVtZW50 KSBvciBhbiBhcnJheSBzbGljZSwgd2hpY2ggaXMgZXZhbHVhdGVkIHdoZW4gdGhlIG5hbWVk CnJlZmVyZW5jZSBpcyBleHBhbmRlZC4gIEl0IGlzIGFuIGVycm9yIGZvciBhIG5hbWVkIHJl ZmVyZW5jZSB0byByZWZlcgp0byBpdHNlbGYsIGV2ZW4gaW5kaXJlY3RseSB0aHJvdWdoIGEg Y2hhaW4gb2YgcmVmZXJlbmNlcy4gIFdoZW4gXGZCXC11XGZQCmlzIGFwcGxpZWQgdG8gYSBu YW1lZCByZWZlcmVuY2UsIHRoZSBwYXJhbWV0ZXIgaWRlbnRpZmllZCBieSBcZkl2YWx1ZVxm UAppcyBhbHdheXMgZm91bmQgaW4gdGhlIGNhbGxpbmcgZnVuY3Rpb24gc2NvcGUgcmF0aGVy IHRoYW4gdGhlIGN1cnJlbnQKbG9jYWwgc2NvcGUuICBJbiB0aGlzIGNhc2UsIGlmIHRoZXJl IGlzIG5vIHN1Y2ggcGFyYW1ldGVyIGluIHRoZSBjYWxsaW5nCnNjb3BlLCBhc3NpZ25tZW50 cyB0byB0aGUgbmFtZWQgcmVmZXJlbmNlIG1heSBmYWlsLCBzZXR0aW5nIFxmQiQ/XGZQIHRv IDEuClNlZSBQYXJhbWV0ZXIgRXhwYW5zaW9uIGFuZApOYW1lZCBSZWZlcmVuY2VzIGZvciBk ZXRhaWxzIG9mIHRoZQpiZWhhdmlvciBvZiBuYW1lZCByZWZlcmVuY2VzLgouc3AKTG9jYWwg ZnVuY3Rpb24gc2NvcGluZyBydWxlcyBmb3IgXGZCdHlwZXNldFxmUCBkbyBhcHBseSB3aXRo IFxmQlwtblxmUCwKc28gYSBkZWNsYXJhdGlvbiB3aXRoaW4gYSBmdW5jdGlvbiBwZXJzaXN0 cyBvbmx5IHVudGlsIHRoZSBlbmQgb2YgdGhlCmZ1bmN0aW9uIHVubGVzcyBcZkJcLWcgXC1u XGZQIGlzIHNwZWNpZmllZCwgYW5kIGFueSBsb2NhbCBwYXJhbWV0ZXIgKG9mCmFueSB0eXBl KSB3aXRoIHRoZSBzYW1lIFxmSW5hbWVcZlAgc3VwcGxhbnRzIGEgbmFtZWQgcmVmZXJlbmNl IGZyb20gYQpzdXJyb3VuZGluZyBzY29wZS4KLnNwCkEgc2NhbGFyIHBhcmFtZXRlciwgaW5j bHVkaW5nIGFuIGV4aXN0aW5nIG5hbWVkIHJlZmVyZW5jZSwgbWF5IGJlCmNvbnZlcnRlZCB0 byBhIG5ldyBuYW1lZCByZWZlcmVuY2UgYnkgXGZCdHlwZXNldCBcLW5cZlAgXGZJbmFtZVxm UCwgc28KdGhlIFxmQlwtcFxmUCBvcHRpb24gbXVzdCBiZSBpbmNsdWRlZCB0byBkaXNwbGF5 IHRoZSB2YWx1ZSBvZiBhCnNwZWNpZmljIG5hbWVkIHJlZmVyZW5jZSBcZkluYW1lXGZQXCYu Ci5zcApJZiBubyBhdHRyaWJ1dGUgZmxhZ3MgYXJlIGdpdmVuLCBhbmQgZWl0aGVyIG5vIFxm SW5hbWVcZlAgYXJndW1lbnRzIGFyZQpwcmVzZW50IG9yIHRoZSBmbGFnIFxmQittXGZQIGlz IHVzZWQsIHRoZW4gZWFjaCBwYXJhbWV0ZXIgbmFtZSBwcmludGVkIGlzCnByZWNlZGVkIGJ5 IGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBvZiB0aGF0IHBhcmFtZXRlciAoXGZCYXJyYXlc ZlAsClxmQmFzc29jaWF0aW9uXGZQLCBcZkJleHBvcnRlZFxmUCwgXGZCZmxvYXRcZlAsIFxm QmludGVnZXJcZlAsIFxmQnJlYWRvbmx5XGZQLApvciBcZkJ1bmRlZmluZWRcZlAgZm9yIGF1 dG9sb2FkZWQgcGFyYW1ldGVycyBub3QgeWV0IGxvYWRlZCkuICBJZiBcZkIrbVxmUCBpcwp1 c2VkIHdpdGggYXR0cmlidXRlIGZsYWdzLCBhbmQgYWxsIHRob3NlIGZsYWdzIGFyZSBpbnRy b2R1Y2VkIHdpdGgKXGZCK1xmUCwgdGhlIG1hdGNoaW5nIHBhcmFtZXRlciBuYW1lcyBhcmUg cHJpbnRlZCBidXQgdGhlaXIgdmFsdWVzCmFyZSBub3QuCi5zcApUaGUgZm9sbG93aW5nIGNv bnRyb2wgZmxhZ3MgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiBcZkJ0eXBlc2V0XGZQOgouc3AK XGZCK1xmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpJZiBcZkIrXGZQIGFwcGVhcnMgYnkg aXRzZWxmIGluIGEgc2VwYXJhdGUgd29yZCBhcyB0aGUgbGFzdCBvcHRpb24sCnRoZW4gdGhl IG5hbWVzIG9mIGFsbCBwYXJhbWV0ZXJzIChmdW5jdGlvbnMgd2l0aCBcZkJcLWZcZlApIGFy ZSBwcmludGVkLCBidXQKdGhlIHZhbHVlcyAoZnVuY3Rpb24gYm9kaWVzKSBhcmUgbm90LiAg SWYgXGZJbmFtZVxmUCBhcmd1bWVudHMgYXBwZWFyLApib3RoIHRob3NlIG5hbWVzIGFuZCB0 aGVpciB2YWx1ZXMgYXJlIHByaW50ZWQgaW4gdGhlIGZvcm0gb2YgYXNzaWdubWVudHMuCkl0 IGlzIGFuIGVycm9yIGZvciBhbnkgb3RoZXIgb3B0aW9ucyB0byBmb2xsb3cgXGZCK1xmUCwg YnV0IHRoZQplZmZlY3Qgb2YgXGZCK1xmUCBpcyBhcyBpZiBhbGwgYXR0cmlidXRlIGZsYWdz IHdoaWNoIHByZWNlZGUgaXQgd2VyZQpnaXZlbiB3aXRoIGEgXGZCK1xmUCBwcmVmaXguICBG b3IgZXhhbXBsZSwgXGZCdHlwZXNldCBcLVUgK1xmUCBpcwplcXVpdmFsZW50IHRvIFxmQnR5 cGVzZXQgK1VcZlAgYW5kIGRpc3BsYXlzIHRoZSBuYW1lcyBvZiBhbGwgYXJyYXlzIGhhdmlu Zwp0aGUgdW5pcXVlbmVzcyBhdHRyaWJ1dGUsIHdoZXJlYXMgXGZCdHlwZXNldCBcLWYgXC1V ICtcZlAgZGlzcGxheXMgdGhlCm5hbWVzIG9mIGFsbCBhdXRvbG9hZGFibGUgZnVuY3Rpb25z LiAgSWYgXGZCK1xmUCBpcyB0aGUgb25seSBvcHRpb24sCnRoZW4gdHlwZSBpbmZvcm1hdGlv biAoYXJyYXksIHJlYWRvbmx5LCBldGMuKSBpcyBhbHNvIHByaW50ZWQgZm9yIGVhY2gKcGFy YW1ldGVyLCBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgXGZCdHlwZXNldCArbSBcKGRxKlwoZHFc ZlBcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCXC1nXGZQCi5JTkRFTlQgMC4wCi5J TkRFTlQgMy41ClRoZSBcZkJcLWdcZlAgKGdsb2JhbCkgbWVhbnMgdGhhdCBhbnkgcmVzdWx0 aW5nIHBhcmFtZXRlciB3aWxsIG5vdCBiZQpyZXN0cmljdGVkIHRvIGxvY2FsIHNjb3BlLiAg Tm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgbmVjZXNzYXJpbHkgbWVhbiB0aGF0CnRoZSBwYXJh bWV0ZXIgd2lsbCBiZSBnbG9iYWwsIGFzIHRoZSBmbGFnIHdpbGwgYXBwbHkgdG8gYW55IGV4 aXN0aW5nCnBhcmFtZXRlciAoZXZlbiBpZiB1bnNldCkgZnJvbSBhbiBlbmNsb3NpbmcgZnVu Y3Rpb24uICBUaGlzIGZsYWcgZG9lcyBub3QKYWZmZWN0IHRoZSBwYXJhbWV0ZXIgYWZ0ZXIg Y3JlYXRpb24sIGhlbmNlIGl0IGhhcyBubyBlZmZlY3Qgd2hlbiBsaXN0aW5nCmV4aXN0aW5n IHBhcmFtZXRlcnMsIG5vciBkb2VzIHRoZSBmbGFnIFxmQitnXGZQIGhhdmUgYW55IGVmZmVj dCBleGNlcHQgaW4KY29tYmluYXRpb24gd2l0aCBcZkJcLW1cZlAgKHNlZSBiZWxvdykuCi5V TklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtbVxmUAouSU5ERU5UIDAuMAouSU5ERU5UIDMu NQpJZiB0aGUgXGZCXC1tXGZQIGZsYWcgaXMgZ2l2ZW4gdGhlIFxmSW5hbWVcZlAgYXJndW1l bnRzIGFyZSB0YWtlbiBhcyBwYXR0ZXJucwoodXNlIHF1b3RpbmcgdG8gcHJldmVudCB0aGVz ZSBmcm9tIGJlaW5nIGludGVycHJldGVkIGFzIGZpbGUgcGF0dGVybnMpLgpXaXRoIG5vIGF0 dHJpYnV0ZSBmbGFncywgYWxsIHBhcmFtZXRlcnMgKG9yIGZ1bmN0aW9ucyB3aXRoIHRoZSBc ZkJcLWZcZlAKZmxhZykgd2l0aCBtYXRjaGluZyBuYW1lcyBhcmUgcHJpbnRlZCAodGhlIHNo ZWxsIG9wdGlvbiBcZkJUWVBFU0VUX1NJTEVOVFxmUAppcyBub3QgdXNlZCBpbiB0aGlzIGNh c2UpLgouc3AKSWYgdGhlIFxmQitnXGZQIGZsYWcgaXMgY29tYmluZWQgd2l0aCBcZkJcLW1c ZlAsIGEgbmV3IGxvY2FsIHBhcmFtZXRlciBpcwpjcmVhdGVkIGZvciBldmVyeSBtYXRjaGlu ZyBwYXJhbWV0ZXIgdGhhdCBpcyBub3QgYWxyZWFkeSBsb2NhbC4gIE90aGVyd2lzZQpcZkJc LW1cZlAgYXBwbGllcyBhbGwgb3RoZXIgZmxhZ3Mgb3IgYXNzaWdubWVudHMgdG8gdGhlIGV4 aXN0aW5nIHBhcmFtZXRlcnMsCmV4Y2VwdCB0aGF0IHRoZSBcZkJcLW5cZlAgb3B0aW9uIGNh bm5vdCBjcmVhdGUgbmFtZWQgcmVmZXJlbmNlcyBpbiB0aGlzIHdheS4KLnNwCkV4Y2VwdCB3 aGVuIGFzc2lnbm1lbnRzIGFyZSBtYWRlIHdpdGggXGZJbmFtZVxmUFxmQj1cZlBcZkl2YWx1 ZVxmUCwgdXNpbmcKXGZCK21cZlAgZm9yY2VzIHRoZSBtYXRjaGluZyBwYXJhbWV0ZXJzIGFu ZCB0aGVpciBhdHRyaWJ1dGVzIHRvIGJlIHByaW50ZWQsCmV2ZW4gaW5zaWRlIGEgZnVuY3Rp b24uICBOb3RlIHRoYXQgXGZCXC1tXGZQIGlzIGlnbm9yZWQgaWYgbm8gcGF0dGVybnMgYXJl CmdpdmVuLCBzbyBcZkJ0eXBlc2V0IFwtbVxmUCBkaXNwbGF5cyBhdHRyaWJ1dGVzIGJ1dCBc ZkJ0eXBlc2V0IFwtYSArbVxmUApkb2VzIG5vdC4gIE9yZGluYXJ5IHNjYWxhciBzdHJpbmcg cGFyYW1ldGVycyBoYXZlIG5vIGF0dHJpYnV0ZXMsIHNvIGZvcgp0aG9zZSBcZkIrbVxmUCBw cmludHMgb25seSB0aGUgbmFtZXMuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtcFxm UCBbIFxmSW5cZlAgXQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpJZiB0aGUgXGZCXC1wXGZQ IG9wdGlvbiBpcyBnaXZlbiwgcGFyYW1ldGVycyBhbmQgdmFsdWVzIGFyZSBwcmludGVkIGlu IHRoZQpmb3JtIG9mIGEgdHlwZXNldCBjb21tYW5kIHdpdGggYW4gYXNzaWdubWVudCwgcmVn YXJkbGVzcyBvZiBvdGhlciBmbGFncwphbmQgb3B0aW9ucy4gIE5vdGUgdGhhdCB0aGUgXGZC XC1IXGZQIGZsYWcgb24gcGFyYW1ldGVycyBpcyByZXNwZWN0ZWQ7IG5vCnZhbHVlIHdpbGwg YmUgc2hvd24gZm9yIHRoZXNlIHBhcmFtZXRlcnMuCi5zcApcZkJcLXBcZlAgbWF5IGJlIGZv bGxvd2VkIGJ5IGFuIG9wdGlvbmFsIGludGVnZXIgYXJndW1lbnQuICBDdXJyZW50bHkKb25s eSB0aGUgdmFsdWUgXGZCMVxmUCBpcyBzdXBwb3J0ZWQuICBJbiB0aGlzIGNhc2UgYXJyYXlz IGFuZCBhc3NvY2lhdGl2ZQphcnJheXMgYXJlIHByaW50ZWQgd2l0aCBuZXdsaW5lcyBiZXR3 ZWVuIGluZGVudGVkIGVsZW1lbnRzIGZvcgpyZWFkYWJpbGl0eS4KLnNwClRoZSBuYW1lcyBh bmQgdmFsdWVzIG9mIHJlYWRvbmx5IHNwZWNpYWwgcGFyYW1ldGVycwoobW9zdCBvZiB0aGUg cGFyYW1ldGVycyBtYXJrZWQgXChnYTxTPlwoYXEgaW4KUGFyYW1ldGVycyBTZXQgYnkgdGhl IFNoZWxsLApleGNlcHQgdGhvc2UgZG9jdW1lbnRlZCBhcyBzZXR0YWJsZSkKYXJlIG5vdCBw cmludGVkIHdpdGggXGZCXC1cZlBcZkJwXGZQIGJlY2F1c2UgdG8gZXhlY3V0ZSB0aG9zZSB0 eXBlc2V0IGNvbW1hbmRzCndvdWxkIGNhdXNlIGVycm9ycy4gIEhvd2V2ZXIsIHRoZXNlIHBh cmFtZXRlcnMgYXJlIHByaW50ZWQgd2hlbiB0aGV5CmhhdmUgYmVlbiBtYWRlIGxvY2FsIHRv IHRoZSBzY29wZSB3aGVyZSBcZkJ0eXBlc2V0IFwtcFxmUCBpcyBydW4uCi5VTklOREVOVAou VU5JTkRFTlQKLnNwClxmQlwtVFxmUCBbIFxmSXNjYWxhclxmUFtcZkI9XGZQXGZJdmFsdWVc ZlBdIFxmSWFycmF5XGZQW1xmQj0oXGZQXGZJdmFsdWVcZlAgLi4uXChnYVwoZ2EpXChnYVwo Z2FdIFsgXGZJc2VwXGZQIF0gXQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpUaGlzIGZsYWcg aGFzIGEgZGlmZmVyZW50IG1lYW5pbmcgd2hlbiB1c2VkIHdpdGggXGZCXC1mXGZQOyBzZWUg YmVsb3cuCk90aGVyd2lzZSB0aGUgXGZCXC1UXGZQIG9wdGlvbiByZXF1aXJlcyB6ZXJvLCB0 d28sIG9yIHRocmVlIGFyZ3VtZW50cyB0byBiZQpwcmVzZW50LiAgV2l0aCBubyBhcmd1bWVu dHMsIHRoZSBsaXN0IG9mIHBhcmFtZXRlcnMgY3JlYXRlZCBpbiB0aGlzCmZhc2hpb24gaXMg c2hvd24uICBXaXRoIHR3byBvciB0aHJlZSBhcmd1bWVudHMsIHRoZSBmaXJzdCB0d28gYXJl IHRoZSBuYW1lCm9mIGEgc2NhbGFyIGFuZCBvZiBhbiBhcnJheSBwYXJhbWV0ZXIgKGluIHRo YXQgb3JkZXIpIHRoYXQgd2lsbCBiZSB0aWVkCnRvZ2V0aGVyIGluIHRoZSBtYW5uZXIgb2Yg XGZCJFBBVEhcZlAgYW5kIFxmQiRwYXRoXGZQXCYuICBUaGUgb3B0aW9uYWwgdGhpcmQKYXJn dW1lbnQgaXMgYSBzaW5nbGVcLWNoYXJhY3RlciBzZXBhcmF0b3Igd2hpY2ggd2lsbCBiZSB1 c2VkIHRvIGpvaW4gdGhlCmVsZW1lbnRzIG9mIHRoZSBhcnJheSB0byBmb3JtIHRoZSBzY2Fs YXI7IGlmIGFic2VudCwgYSBjb2xvbiBpcyB1c2VkLCBhcwp3aXRoIFxmQiRQQVRIXGZQXCYu ICBPbmx5IHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHNlcGFyYXRvciBpcyBzaWduaWZp Y2FudDsKYW55IHJlbWFpbmluZyBjaGFyYWN0ZXJzIGFyZSBpZ25vcmVkLiAgTXVsdGlieXRl IGNoYXJhY3RlcnMgYXJlIG5vdAp5ZXQgc3VwcG9ydGVkLgouc3AKT25seSBvbmUgb2YgdGhl IHNjYWxhciBhbmQgYXJyYXkgcGFyYW1ldGVycyBtYXkgYmUgYXNzaWduZWQgYW4gaW5pdGlh bAp2YWx1ZSAodGhlIHJlc3RyaWN0aW9ucyBvbiBhc3NpZ25tZW50IGZvcm1zIGRlc2NyaWJl ZCBhYm92ZSBhbHNvIGFwcGx5KS4KLnNwCkJvdGggdGhlIHNjYWxhciBhbmQgdGhlIGFycmF5 IG1heSBiZSBtYW5pcHVsYXRlZCBhcyBub3JtYWwuICBJZiBvbmUgaXMKdW5zZXQsIHRoZSBv dGhlciB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgdW5zZXQgdG9vLiAgVGhlcmUgaXMgbm8gd2F5 IG9mCnVudHlpbmcgdGhlIHZhcmlhYmxlcyB3aXRob3V0IHVuc2V0dGluZyB0aGVtLCBub3Ig b2YgY29udmVydGluZyB0aGUgdHlwZQpvZiBvbmUgb2YgdGhlbSB3aXRoIGFub3RoZXIgXGZC dHlwZXNldFxmUCBjb21tYW5kOyBcZkIrVFxmUCBkb2VzIG5vdCB3b3JrLAphc3NpZ25pbmcg YW4gYXJyYXkgdG8gXGZJc2NhbGFyXGZQIGlzIGFuIGVycm9yLCBhbmQgYXNzaWduaW5nIGEg c2NhbGFyIHRvClxmSWFycmF5XGZQIHNldHMgaXQgdG8gYmUgYSBzaW5nbGVcLWVsZW1lbnQg YXJyYXkuCi5zcApOb3RlIHRoYXQgYm90aCBcZkJ0eXBlc2V0IFwteFQgLi4uXGZQICBhbmQg XGZCZXhwb3J0IFwtVCAuLi5cZlAgd29yaywgYnV0Cm9ubHkgdGhlIHNjYWxhciB3aWxsIGJl IG1hcmtlZCBmb3IgZXhwb3J0LiAgU2V0dGluZyB0aGUgdmFsdWUgdXNpbmcgdGhlCnNjYWxh ciB2ZXJzaW9uIGNhdXNlcyBhIHNwbGl0IG9uIGFsbCBzZXBhcmF0b3JzICh3aGljaCBjYW5u b3QgYmUgcXVvdGVkKS4KSXQgaXMgcG9zc2libGUgdG8gYXBwbHkgXGZCXC1UXGZQIHRvIHR3 byBwcmV2aW91c2x5IHRpZWQgdmFyaWFibGVzIGJ1dCB3aXRoIGEKZGlmZmVyZW50IHNlcGFy YXRvciBjaGFyYWN0ZXIsIGluIHdoaWNoIGNhc2UgdGhlIHZhcmlhYmxlcyByZW1haW4gam9p bmVkCmFzIGJlZm9yZSBidXQgdGhlIHNlcGFyYXRvciBpcyBjaGFuZ2VkLgouc3AKV2hlbiBh biBleGlzdGluZyBzY2FsYXIgaXMgdGllZCB0byBhIG5ldyBhcnJheSwgdGhlIHZhbHVlIG9m IHRoZSBzY2FsYXIKaXMgcHJlc2VydmVkIGJ1dCBubyBhdHRyaWJ1dGUgb3RoZXIgdGhhbiBl eHBvcnQgd2lsbCBiZSBwcmVzZXJ2ZWQuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwCkF0dHJp YnV0ZSBmbGFncyB0aGF0IHRyYW5zZm9ybSB0aGUgZmluYWwgdmFsdWUgKFxmQlwtTFxmUCwg XGZCXC1SXGZQLCBcZkJcLVpcZlAsClxmQlwtbFxmUCwgXGZCXC11XGZQKSBhcmUgb25seSBh cHBsaWVkIHRvIHRoZSBleHBhbmRlZCB2YWx1ZSBhdCB0aGUgcG9pbnQKb2YgYSBwYXJhbWV0 ZXIgZXhwYW5zaW9uIGV4cHJlc3Npb24gdXNpbmcgXGZCJFxmUFwmLiAgVGhleSBhcmUgbm90 IGFwcGxpZWQKd2hlbiBhIHBhcmFtZXRlciBpcyByZXRyaWV2ZWQgaW50ZXJuYWxseSBieSB0 aGUgc2hlbGwgZm9yIGFueSBwdXJwb3NlLgouc3AKVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGUg ZmxhZ3MgbWF5IGJlIHNwZWNpZmllZDoKLnNwClxmQlwtQVxmUAouSU5ERU5UIDAuMAouSU5E RU5UIDMuNQpUaGUgbmFtZXMgcmVmZXIgdG8gYXNzb2NpYXRpdmUgYXJyYXkgcGFyYW1ldGVy czsgc2VlCkFycmF5IFBhcmFtZXRlcnNcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZC XC1MXGZQIFsgXGZJblxmUCBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkxlZnQganVzdGlm eSBhbmQgcmVtb3ZlIGxlYWRpbmcgYmxhbmtzIGZyb20gdGhlIHZhbHVlIHdoZW4gdGhlIHBh cmFtZXRlcgppcyBleHBhbmRlZC4KSWYgXGZJblxmUCBpcyBub256ZXJvLCBpdCBkZWZpbmVz IHRoZSB3aWR0aCBvZiB0aGUgZmllbGQuCklmIFxmSW5cZlAgaXMgemVybywgdGhlIHdpZHRo IGlzIGRldGVybWluZWQgYnkgdGhlIHdpZHRoIG9mIHRoZSB2YWx1ZSBvZgp0aGUgZmlyc3Qg YXNzaWdubWVudC4gIEluIHRoZSBjYXNlIG9mIG51bWVyaWMgcGFyYW1ldGVycywgdGhlIGxl bmd0aCBvZiB0aGUKY29tcGxldGUgdmFsdWUgYXNzaWduZWQgdG8gdGhlIHBhcmFtZXRlciBp cyB1c2VkIHRvIGRldGVybWluZSB0aGUgd2lkdGgsCm5vdCB0aGUgdmFsdWUgdGhhdCB3b3Vs ZCBiZSBvdXRwdXQuCi5zcApUaGUgd2lkdGggaXMgdGhlIGNvdW50IG9mIGNoYXJhY3RlcnMs IHdoaWNoIG1heSBiZSBtdWx0aWJ5dGUgY2hhcmFjdGVycwppZiB0aGUgXGZCTVVMVElCWVRF XGZQIG9wdGlvbiBpcyBpbiBlZmZlY3QuICBOb3RlIHRoYXQgdGhlIHNjcmVlbgp3aWR0aCBv ZiB0aGUgY2hhcmFjdGVyIGlzIG5vdCB0YWtlbiBpbnRvIGFjY291bnQ7IGlmIHRoaXMgaXMg cmVxdWlyZWQsCnVzZSBwYWRkaW5nIHdpdGggcGFyYW1ldGVyIGV4cGFuc2lvbiBmbGFncwpc ZkIkeyhtbFxmUFxmSVwmLi4uXGZQXGZCKVxmUFxmSVwmLi4uXGZQXGZCfVxmUCBhcyBkZXNj cmliZWQgaW4KUGFyYW1ldGVyIEV4cGFuc2lvbiBGbGFnc1wmLgouc3AKV2hlbiB0aGUgcGFy YW1ldGVyIGlzIGV4cGFuZGVkLCBpdCBpcyBmaWxsZWQgb24gdGhlIHJpZ2h0IHdpdGgKYmxh bmtzIG9yIHRydW5jYXRlZCBpZiBuZWNlc3NhcnkgdG8gZml0IHRoZSBmaWVsZC4KTm90ZSB0 cnVuY2F0aW9uIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgcmVzdWx0cyB3aXRoIG51bWVyaWMg cGFyYW1ldGVycy4KTGVhZGluZyB6ZXJvcyBhcmUgcmVtb3ZlZCBpZiB0aGUgXGZCXC1aXGZQ IGZsYWcgaXMgYWxzbyBzZXQuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtUlxmUCBb IFxmSW5cZlAgXQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpTaW1pbGFyIHRvIFxmQlwtTFxm UCwgZXhjZXB0IHRoYXQgcmlnaHQganVzdGlmaWNhdGlvbiBpcyB1c2VkOwp3aGVuIHRoZSBw YXJhbWV0ZXIgaXMgZXhwYW5kZWQsIHRoZSBmaWVsZCBpcyBsZWZ0IGZpbGxlZCB3aXRoCmJs YW5rcyBvciB0cnVuY2F0ZWQgZnJvbSB0aGUgZW5kLiAgTWF5IG5vdCBiZSBjb21iaW5lZCB3 aXRoIHRoZSBcZkJcLVpcZlAKZmxhZy4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCXC1V XGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkZvciBhcnJheXMgKGJ1dCBub3QgZm9yIGFz c29jaWF0aXZlIGFycmF5cyksIGtlZXAgb25seSB0aGUgZmlyc3QKb2NjdXJyZW5jZSBvZiBl YWNoIGR1cGxpY2F0ZWQgdmFsdWUuICBUaGlzIG1heSBhbHNvIGJlIHNldCBmb3IgdGllZApw YXJhbWV0ZXJzIChzZWUgXGZCXC1UXGZQKSBvciBjb2xvblwtc2VwYXJhdGVkIHNwZWNpYWwg cGFyYW1ldGVycyBsaWtlClxmQlBBVEhcZlAgb3IgXGZCRklHTk9SRVxmUCwgZXRjLiAgTm90 ZSB0aGUgZmxhZyB0YWtlcyBlZmZlY3Qgb24gYXNzaWdubWVudCwKYW5kIHRoZSB0eXBlIG9m IHRoZSB2YXJpYWJsZSBiZWluZyBhc3NpZ25lZCB0byBpcyBkZXRlcm1pbmF0aXZlOyBmb3IK dmFyaWFibGVzIHdpdGggc2hhcmVkIHZhbHVlcyBpdCBpcyB0aGVyZWZvcmUgcmVjb21tZW5k ZWQgdG8gc2V0IHRoZSBmbGFnCmZvciBhbGwgaW50ZXJmYWNlcywgZS5nLiBcZkJ0eXBlc2V0 IFwtVSBQQVRIIHBhdGhcZlBcJi4KLnNwClRoaXMgZmxhZyBoYXMgYSBkaWZmZXJlbnQgbWVh bmluZyB3aGVuIHVzZWQgd2l0aCBcZkJcLWZcZlA7IHNlZSBiZWxvdy4KLlVOSU5ERU5UCi5V TklOREVOVAouc3AKXGZCXC1aXGZQIFsgXGZJblxmUCBdCi5JTkRFTlQgMC4wCi5JTkRFTlQg My41ClNwZWNpYWxseSBoYW5kbGVkIGlmIHNldCBhbG9uZyB3aXRoIHRoZSBcZkJcLUxcZlAg ZmxhZy4KT3RoZXJ3aXNlLCBzaW1pbGFyIHRvIFxmQlwtUlxmUCwgZXhjZXB0IHRoYXQgbGVh ZGluZyB6ZXJvcyBhcmUgdXNlZCBmb3IKcGFkZGluZyBpbnN0ZWFkIG9mIGJsYW5rcyBpZiB0 aGUgZmlyc3Qgbm9uXC1ibGFuayBjaGFyYWN0ZXIgaXMgYSBkaWdpdC4KTnVtZXJpYyBwYXJh bWV0ZXJzIGFyZSBzcGVjaWFsbHkgaGFuZGxlZDogdGhleSBhcmUgYWx3YXlzIGVsaWdpYmxl CmZvciBwYWRkaW5nIHdpdGggemVyb2VzLCBhbmQgdGhlIHplcm9lcyBhcmUgaW5zZXJ0ZWQg YXQgYW4gYXBwcm9wcmlhdGUKcGxhY2UgaW4gdGhlIG91dHB1dC4KLlVOSU5ERU5UCi5VTklO REVOVAouc3AKXGZCXC1hXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClRoZSBuYW1lcyBy ZWZlciB0byBhcnJheSBwYXJhbWV0ZXJzLiAgQW4gYXJyYXkgcGFyYW1ldGVyIG1heSBiZQpj cmVhdGVkIHRoaXMgd2F5LCBidXQgaXQgbWF5IGJlIGFzc2lnbmVkIHRvIGluIHRoZSBcZkJ0 eXBlc2V0XGZQCnN0YXRlbWVudCBvbmx5IGlmIHRoZSByZXNlcnZlZCB3b3JkIGZvcm0gb2Yg XGZCdHlwZXNldFxmUCBpcyBlbmFibGVkCihhcyBpdCBpcyBieSBkZWZhdWx0KS4gIFdoZW4g ZGlzcGxheWluZywgYm90aCBub3JtYWwgYW5kIGFzc29jaWF0aXZlCmFycmF5cyBhcmUgc2hv d24uCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtZlxmUAouSU5ERU5UIDAuMAouSU5E RU5UIDMuNQpUaGUgbmFtZXMgcmVmZXIgdG8gZnVuY3Rpb25zIHJhdGhlciB0aGFuIHBhcmFt ZXRlcnMuICBObyBhc3NpZ25tZW50cwpjYW4gYmUgbWFkZSwgYW5kIHRoZSBvbmx5IG90aGVy IHZhbGlkIGZsYWdzIGFyZSBcZkJcLXRcZlAsIFxmQlwtVFxmUCwgXGZCXC1rXGZQLApcZkJc LXVcZlAsIFxmQlwtVVxmUCBhbmQgXGZCXC16XGZQXCYuICBUaGUgZmxhZyBcZkJcLXRcZlAg dHVybnMgb24gZXhlY3V0aW9uIHRyYWNpbmcKZm9yIHRoaXMgZnVuY3Rpb247IHRoZSBmbGFn IFxmQlwtVFxmUCBkb2VzIHRoZSBzYW1lLCBidXQgdHVybnMgb2ZmIHRyYWNpbmcKZm9yIGFu eSBuYW1lZCAobm90IGFub255bW91cykgZnVuY3Rpb24gY2FsbGVkIGZyb20gdGhlIHByZXNl bnQgb25lLAp1bmxlc3MgdGhhdCBmdW5jdGlvbiBhbHNvCmhhcyB0aGUgXGZCXC10XGZQIG9y IFxmQlwtVFxmUCBmbGFnLiAgVGhlIFxmQlwtdVxmUCBhbmQgXGZCXC1VXGZQIGZsYWdzIGNh dXNlIHRoZQpmdW5jdGlvbiB0byBiZSBtYXJrZWQgZm9yIGF1dG9sb2FkaW5nOyBcZkJcLVVc ZlAgYWxzbyBjYXVzZXMgYWxpYXMKZXhwYW5zaW9uIHRvIGJlIHN1cHByZXNzZWQgd2hlbiB0 aGUgZnVuY3Rpb24gaXMgbG9hZGVkLiAgU2VlIHRoZQpkZXNjcmlwdGlvbiBvZiB0aGUgXGZC YXV0b2xvYWRcZlAgYnVpbHRpbiBmb3IgZGV0YWlscy4KLnNwCk5vdGUgdGhhdCB0aGUgYnVp bHRpbiBcZkJmdW5jdGlvbnNcZlAgcHJvdmlkZXMgdGhlIHNhbWUgYmFzaWMgY2FwYWJpbGl0 aWVzCmFzIFxmQnR5cGVzZXQgXC1mXGZQIGJ1dCBnaXZlcyBhY2Nlc3MgdG8gYSBmZXcgZXh0 cmEgb3B0aW9uczsgXGZCYXV0b2xvYWRcZlAKZ2l2ZXMgZnVydGhlciBhZGRpdGlvbmFsIG9w dGlvbnMgZm9yIHRoZSBjYXNlIFxmQnR5cGVzZXQgXC1mdVxmUCBhbmQKXGZCdHlwZXNldCBc LWZVXGZQXCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtaFxmUAouSU5ERU5UIDAu MAouSU5ERU5UIDMuNQpIaWRlOiBvbmx5IHVzZWZ1bCBmb3Igc3BlY2lhbCBwYXJhbWV0ZXJz ICh0aG9zZSBtYXJrZWQgXChnYTxTPlwoYXEgaW4gdGhlIHRhYmxlIGluClBhcmFtZXRlcnMg U2V0IGJ5IHRoZSBTaGVsbCksCmFuZCBmb3IgbG9jYWwgcGFyYW1ldGVycyB3aXRoIHRoZSBz YW1lIG5hbWUgYXMgYSBzcGVjaWFsIHBhcmFtZXRlciwKdGhvdWdoIGhhcm1sZXNzIGZvciBv dGhlcnMuICBBIHNwZWNpYWwgcGFyYW1ldGVyIHdpdGggdGhpcyBhdHRyaWJ1dGUgd2lsbApu b3QgcmV0YWluIGl0cyBzcGVjaWFsIGVmZmVjdCB3aGVuIG1hZGUgbG9jYWwuICBUaHVzIGFm dGVyIFxmQnR5cGVzZXQgXC1oClBBVEhcZlAsIGEgZnVuY3Rpb24gY29udGFpbmluZ1woZ2Fc KGdhIHR5cGVzZXQgUEFUSFwoZ2FcKGdhIHdpbGwgY3JlYXRlIGFuIG9yZGluYXJ5CmxvY2Fs IHBhcmFtZXRlciB3aXRob3V0IHRoZSB1c3VhbCBiZWhhdmlvdXIgb2YgXGZCUEFUSFxmUFwm LiAgQWx0ZXJuYXRpdmVseSwKdGhlIGxvY2FsIHBhcmFtZXRlciBtYXkgaXRzZWxmIGJlIGdp dmVuIHRoaXMgYXR0cmlidXRlOyBoZW5jZSBpbnNpZGUgYQpmdW5jdGlvbiBcZkJ0eXBlc2V0 IFwtaCBQQVRIXGZQIGNyZWF0ZXMgYW4gb3JkaW5hcnkgbG9jYWwgcGFyYW1ldGVyIGFuZCB0 aGUKc3BlY2lhbCBcZkJQQVRIXGZQIHBhcmFtZXRlciBpcyBub3QgYWx0ZXJlZCBpbiBhbnkg d2F5LiAgSXQgaXMgYWxzbyBwb3NzaWJsZQp0byBjcmVhdGUgYSBsb2NhbCBwYXJhbWV0ZXIg dXNpbmcgXGZCdHlwZXNldCAraFxmUCBcZklzcGVjaWFsXGZQLCB3aGVyZSB0aGUKbG9jYWwg Y29weSBvZiBcZklzcGVjaWFsXGZQIHdpbGwgcmV0YWluIGl0cyBzcGVjaWFsIHByb3BlcnRp ZXMgcmVnYXJkbGVzcyBvZgpoYXZpbmcgdGhlIFxmQlwtaFxmUCBhdHRyaWJ1dGUuICBHbG9i YWwgc3BlY2lhbCBwYXJhbWV0ZXJzIGxvYWRlZCBmcm9tIHNoZWxsCm1vZHVsZXMgKGZvciBl eGFtcGxlLCB0aG9zZSBpbiBcZkJ6c2gvbWFwZmlsZVxmUCBhbmQgXGZCenNoL3BhcmFtZXRl clxmUCkgYXJlCmF1dG9tYXRpY2FsbHkgZ2l2ZW4gdGhlIFxmQlwtaFxmUCBhdHRyaWJ1dGUg dG8gYXZvaWQgbmFtZSBjbGFzaGVzLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcLUhc ZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKSGlkZSB2YWx1ZTogc3BlY2lmaWVzIHRoYXQg XGZCdHlwZXNldFxmUCB3aWxsIG5vdCBkaXNwbGF5IHRoZSB2YWx1ZSBvZiB0aGUKcGFyYW1l dGVyIHdoZW4gbGlzdGluZyBwYXJhbWV0ZXJzOyB0aGUgZGlzcGxheSBmb3Igc3VjaCBwYXJh bWV0ZXJzIGlzCmFsd2F5cyBhcyBpZiB0aGUgXGZCK1xmUCBmbGFnIHdlcmUgZ2l2ZW4sIGJ1 dCB1c2Ugb2YgdGhlIHBhcmFtZXRlciBpcwppbiBvdGhlciByZXNwZWN0cyBub3JtYWwuICBU aGlzIGVmZmVjdCBkb2VzIG5vdCBhcHBseSB3aGVuIHRoZSBwYXJhbWV0ZXIgaXMKc3BlY2lm aWVkIGJ5IG5hbWUgb3IgYnkgcGF0dGVybiB3aXRoIHRoZSBcZkJcLW1cZlAgb3B0aW9uLiAg VGhpcyBpcyBvbiBieQpkZWZhdWx0IGZvciB0aGUgcGFyYW1ldGVycyBpbiB0aGUgXGZCenNo L3BhcmFtZXRlclxmUCBhbmQgXGZCenNoL21hcGZpbGVcZlAKbW9kdWxlcy4gIE5vdGUsIGhv d2V2ZXIsIHRoYXQgdW5saWtlIHRoZSBcZkJcLWhcZlAgZmxhZyB0aGlzIGlzIGFsc28gdXNl ZnVsCmZvciBub25cLXNwZWNpYWwgcGFyYW1ldGVycy4KLlVOSU5ERU5UCi5VTklOREVOVAou c3AKXGZCXC1pXGZQIFsgXGZJblxmUCBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClVzZSBh biBpbnRlcm5hbCBpbnRlZ2VyIHJlcHJlc2VudGF0aW9uLiAgSWYgXGZJblxmUCBpcyBub256 ZXJvIGl0CmRlZmluZXMgdGhlIG91dHB1dCBhcml0aG1ldGljIGJhc2UsIG90aGVyd2lzZSBp dCBpcyBkZXRlcm1pbmVkIGJ5IHRoZQpmaXJzdCBhc3NpZ25tZW50LiAgQmFzZXMgZnJvbSAy IHRvIDM2IGluY2x1c2l2ZSBhcmUgYWxsb3dlZC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AK XGZCXC1FXGZQIFsgXGZJblxmUCBdCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClVzZSBhbiBp bnRlcm5hbCBkb3VibGVcLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCByZXByZXNlbnRhdGlv bi4gIE9uIG91dHB1dAp0aGUgdmFyaWFibGUgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gc2NpZW50 aWZpYyBub3RhdGlvbi4gIElmIFxmSW5cZlAgaXMKbm9uemVybyBpdCBkZWZpbmVzIHRoZSBu dW1iZXIgb2Ygc2lnbmlmaWNhbnQgZmlndXJlcyB0byBkaXNwbGF5OyB0aGUKZGVmYXVsdCBp cyB0ZW4uCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtRlxmUCBbIFxmSW5cZlAgXQou SU5ERU5UIDAuMAouSU5ERU5UIDMuNQpVc2UgYW4gaW50ZXJuYWwgZG91YmxlXC1wcmVjaXNp b24gZmxvYXRpbmcgcG9pbnQgcmVwcmVzZW50YXRpb24uICBPbiBvdXRwdXQKdGhlIHZhcmlh YmxlIHdpbGwgYmUgY29udmVydGVkIHRvIGZpeGVkXC1wb2ludCBkZWNpbWFsIG5vdGF0aW9u LiAgSWYgXGZJblxmUAppcyBub256ZXJvIGl0IGRlZmluZXMgdGhlIG51bWJlciBvZiBkaWdp dHMgdG8gZGlzcGxheSBhZnRlciB0aGUgZGVjaW1hbApwb2ludDsgdGhlIGRlZmF1bHQgaXMg dGVuLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcLWxcZlAKLklOREVOVCAwLjAKLklO REVOVCAzLjUKQ29udmVydCB0aGUgcmVzdWx0IHRvIGxvd2VyIGNhc2Ugd2hlbmV2ZXIgdGhl IHBhcmFtZXRlciBpcyBleHBhbmRlZC4KVGhlIHZhbHVlIGlzIFxmSW5vdFxmUCBjb252ZXJ0 ZWQgd2hlbiBhc3NpZ25lZC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCXC1yXGZQCi5J TkRFTlQgMC4wCi5JTkRFTlQgMy41ClRoZSBnaXZlbiBcZkluYW1lXGZQcyBhcmUgbWFya2Vk IHJlYWRvbmx5LiAgTm90ZSB0aGF0IGlmIFxmSW5hbWVcZlAgaXMgYQpzcGVjaWFsIHBhcmFt ZXRlciwgdGhlIHJlYWRvbmx5IGF0dHJpYnV0ZSBjYW4gYmUgdHVybmVkIG9uLCBidXQgY2Fu bm90IHRoZW4KYmUgdHVybmVkIG9mZi4KLnNwCklmIHRoZSBcZkJQT1NJWF9CVUlMVElOU1xm UCBvcHRpb24gaXMgc2V0LCB0aGUgcmVhZG9ubHkgYXR0cmlidXRlIGlzCm1vcmUgcmVzdHJp Y3RpdmU6IHVuc2V0IHZhcmlhYmxlcyBjYW4gYmUgbWFya2VkIHJlYWRvbmx5IGFuZCBjYW5u b3QgdGhlbgpiZSBzZXQ7IGZ1cnRoZXJtb3JlLCB0aGUgcmVhZG9ubHkgYXR0cmlidXRlIGNh bm5vdCBiZSByZW1vdmVkIGZyb20gYW55CnZhcmlhYmxlLgouc3AKSXQgaXMgc3RpbGwgcG9z c2libGUgdG8gY2hhbmdlIG90aGVyIGF0dHJpYnV0ZXMgb2YgdGhlIHZhcmlhYmxlIHRob3Vn aCwKc29tZSBvZiB3aGljaCBsaWtlIFxmQlwtVVxmUCBvciBcZkJcLVpcZlAgd291bGQgYWZm ZWN0IHRoZSB2YWx1ZS4gTW9yZSBnZW5lcmFsbHksCnRoZSByZWFkb25seSBhdHRyaWJ1dGUg c2hvdWxkIG5vdCBiZSByZWxpZWQgb24gYXMgYSBzZWN1cml0eSBtZWNoYW5pc20uCi5zcApO b3RlIHRoYXQgaW4genNoIChsaWtlIGluIHBka3NoIGJ1dCB1bmxpa2UgbW9zdCBvdGhlciBz aGVsbHMpIGl0IGlzCnN0aWxsIHBvc3NpYmxlIHRvIGNyZWF0ZSBhIGxvY2FsIHZhcmlhYmxl IG9mIHRoZSBzYW1lIG5hbWUgYXMgdGhpcyBpcwpjb25zaWRlcmVkIGEgZGlmZmVyZW50IHZh cmlhYmxlICh0aG91Z2ggdGhpcyB2YXJpYWJsZSwgdG9vLCBjYW4gYmUgbWFya2VkCnJlYWRv bmx5KS4gU3BlY2lhbCB2YXJpYWJsZXMgdGhhdCBoYXZlIGJlZW4gbWFkZSByZWFkb25seSBy ZXRhaW4gdGhlaXIgdmFsdWUKYW5kIHJlYWRvbmx5IGF0dHJpYnV0ZSB3aGVuIG1hZGUgbG9j YWwuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtdFxmUAouSU5ERU5UIDAuMAouSU5E RU5UIDMuNQpUYWdzIHRoZSBuYW1lZCBwYXJhbWV0ZXJzLiAgVGFncyBvbmx5IGV4aXN0IHRv IGZsYWcgdGhlIHBhcmFtZXRlciBmb3IKdGhlIHVzZXJcKGFxcyBvd24gcHVycG9zZXMgXC1c LVwtIHRoZSBsaXN0IG9mIHRhZ2dlZCBwYXJhbWV0ZXJzIGNhbiBiZSBxdWVyaWVkCnVzaW5n IFxmQnR5cGVzZXQgXC10XGZQXCYuICBUYWdzIGhhdmUgbm8gb3RoZXIgdXNlLiAgTm90ZSB0 aGF0IHRoZSBcZkJcLXRcZlAKZmxhZyBoYXMgYSBkaWZmZXJlbnQgbWVhbmluZyB3aGVuIHVz ZWQgd2l0aCBcZkJcLWZcZlA7IHNlZSBhYm92ZS4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AK XGZCXC11XGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkNvbnZlcnQgdGhlIHJlc3VsdCB0 byB1cHBlciBjYXNlIHdoZW5ldmVyIHRoZSBwYXJhbWV0ZXIgaXMgZXhwYW5kZWQuClRoZSB2 YWx1ZSBpcyBcZklub3RcZlAgY29udmVydGVkIHdoZW4gYXNzaWduZWQuClRoaXMgZmxhZyBo YXMgZGlmZmVyZW50IG1lYW5pbmdzIHdoZW4gdXNlZCB3aXRoIFxmQlwtZlxmUCBvciBcZkJc LW5cZlA7IHNlZSBhYm92ZS4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCXC14XGZQCi5J TkRFTlQgMC4wCi5JTkRFTlQgMy41Ck1hcmsgZm9yIGF1dG9tYXRpYyBleHBvcnQgdG8gdGhl IGVudmlyb25tZW50IG9mIHN1YnNlcXVlbnRseQpleGVjdXRlZCBjb21tYW5kcy4gIElmIHRo ZSBvcHRpb24gXGZCR0xPQkFMX0VYUE9SVFxmUCBpcyBzZXQsIHRoaXMgaW1wbGllcwp0aGUg b3B0aW9uIFxmQlwtZ1xmUCwgdW5sZXNzIFxmQitnXGZQIGlzIGFsc28gZXhwbGljaXRseSBn aXZlbjsgaW4gb3RoZXIgd29yZHMKdGhlIHBhcmFtZXRlciBpcyBub3QgbWFkZSBsb2NhbCB0 byB0aGUgZW5jbG9zaW5nIGZ1bmN0aW9uLiAgVGhpcyBpcyBmb3IKY29tcGF0aWJpbGl0eSB3 aXRoIHByZXZpb3VzIHZlcnNpb25zIG9mIHpzaC4KLlVOSU5ERU5UCi5VTklOREVOVAouVU5J TkRFTlQKLlVOSU5ERU5UCi5zcApcZkJ1bGltaXRcZlAgWyBcZkJcLUhTYVxmUCBdIFsgeyBc ZkJcLWJjZGZpa2xtbnBxcnNUdHZ3eFxmUCB8IFxmQlwtTlxmUCBcZklyZXNvdXJjZVxmUCB9 IFsgXGZJbGltaXRcZlAgXSAuLi4gXQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpTZXQgb3Ig ZGlzcGxheSByZXNvdXJjZSBsaW1pdHMgb2YgdGhlIHNoZWxsIGFuZCB0aGUgcHJvY2Vzc2Vz IHN0YXJ0ZWQgYnkKdGhlIHNoZWxsLiAgVGhlIHZhbHVlIG9mIFxmSWxpbWl0XGZQIGNhbiBi ZSBhIG51bWJlciBpbiB0aGUgdW5pdCBzcGVjaWZpZWQKYmVsb3cgb3Igb25lIG9mIHRoZSB2 YWx1ZXMgXGZCdW5saW1pdGVkXGZQLCB3aGljaCByZW1vdmVzIHRoZSBsaW1pdCBvbiB0aGUK cmVzb3VyY2UsIG9yIFxmQmhhcmRcZlAsIHdoaWNoIHVzZXMgdGhlIGN1cnJlbnQgdmFsdWUg b2YgdGhlIGhhcmQgbGltaXQgb24KdGhlIHJlc291cmNlLgouc3AKQnkgZGVmYXVsdCwgb25s eSBzb2Z0IGxpbWl0cyBhcmUgbWFuaXB1bGF0ZWQuIElmIHRoZSBcZkJcLUhcZlAgZmxhZwpp cyBnaXZlbiB1c2UgaGFyZCBsaW1pdHMgaW5zdGVhZCBvZiBzb2Z0IGxpbWl0cy4gIElmIHRo ZSBcZkJcLVNcZlAgZmxhZyBpcyBnaXZlbgp0b2dldGhlciB3aXRoIHRoZSBcZkJcLUhcZlAg ZmxhZyBzZXQgYm90aCBoYXJkIGFuZCBzb2Z0IGxpbWl0cy4KLnNwCklmIG5vIG9wdGlvbnMg YXJlIHVzZWQsIHRoZSBmaWxlIHNpemUgbGltaXQgKFxmQlwtZlxmUCkgaXMgYXNzdW1lZC4K LnNwCklmIFxmSWxpbWl0XGZQIGlzIG9taXR0ZWQgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhl IHNwZWNpZmllZCByZXNvdXJjZXMgYXJlCnByaW50ZWQuICBXaGVuIG1vcmUgdGhhbiBvbmUg cmVzb3VyY2UgdmFsdWUgaXMgcHJpbnRlZCwgdGhlIGxpbWl0IG5hbWUgYW5kCnVuaXQgaXMg cHJpbnRlZCBiZWZvcmUgZWFjaCB2YWx1ZS4KLnNwCldoZW4gbG9vcGluZyBvdmVyIG11bHRp cGxlIHJlc291cmNlcywgdGhlIHNoZWxsIHdpbGwgYWJvcnQgaW1tZWRpYXRlbHkgaWYKaXQg ZGV0ZWN0cyBhIGJhZGx5IGZvcm1lZCBhcmd1bWVudC4gIEhvd2V2ZXIsIGlmIGl0IGZhaWxz IHRvIHNldCBhIGxpbWl0CmZvciBzb21lIG90aGVyIHJlYXNvbiBpdCB3aWxsIGNvbnRpbnVl IHRyeWluZyB0byBzZXQgdGhlIHJlbWFpbmluZyBsaW1pdHMuCi5zcApOb3QgYWxsIHRoZSBm b2xsb3dpbmcgcmVzb3VyY2VzIGFyZSBzdXBwb3J0ZWQgb24gYWxsIHN5c3RlbXMuICBSdW5u aW5nClxmQnVsaW1pdCBcLWFcZlAgd2lsbCBzaG93IHdoaWNoIGFyZSBzdXBwb3J0ZWQuCi5J TkRFTlQgMC4wCi5UUAouQiBcZkJcLWFcZlAKTGlzdCBhbGwgb2YgdGhlIGN1cnJlbnQgcmVz b3VyY2UgbGltaXRzLgouVFAKLkIgXGZCXC1iXGZQClNvY2tldCBidWZmZXIgc2l6ZSBpbiBi eXRlcyAoTi5CLiBub3Qga2lsb2J5dGVzKQouVFAKLkIgXGZCXC1jXGZQCjUxMlwtYnl0ZSBi bG9ja3Mgb24gdGhlIHNpemUgb2YgY29yZSBkdW1wcy4KLlRQCi5CIFxmQlwtZFxmUApLaWxv Ynl0ZXMgb24gdGhlIHNpemUgb2YgdGhlIGRhdGEgc2VnbWVudC4KLlRQCi5CIFxmQlwtZVxm UApNYXhpbXVtIG5pY2UgdmFsdWUuCi5UUAouQiBcZkJcLWZcZlAKNTEyXC1ieXRlIGJsb2Nr cyBvbiB0aGUgc2l6ZSBvZiBmaWxlcyB3cml0dGVuLgouVFAKLkIgXGZCXC1pXGZQClRoZSBu dW1iZXIgb2YgcGVuZGluZyBzaWduYWxzLgouVFAKLkIgXGZCXC1rXGZQClRoZSBudW1iZXIg b2Yga3F1ZXVlcyBhbGxvY2F0ZWQuCi5UUAouQiBcZkJcLWxcZlAKS2lsb2J5dGVzIG9uIHRo ZSBzaXplIG9mIGxvY2tlZFwtaW4gbWVtb3J5LgouVFAKLkIgXGZCXC1tXGZQCktpbG9ieXRl cyBvbiB0aGUgc2l6ZSBvZiBwaHlzaWNhbCBtZW1vcnkuCi5UUAouQiBcZkJcLW5cZlAKT3Bl biBmaWxlIGRlc2NyaXB0b3JzLgouVFAKLkIgXGZCXC1vXGZQCk1heGltdW0gbnVtYmVyIG9m IFBPU0lYIHRocmVhZCBsaWJyYXJ5IG9iamVjdHMuCi5UUAouQiBcZkJcLXBcZlAKVGhlIG51 bWJlciBvZiBwc2V1ZG9cLXRlcm1pbmFscy4KLlRQCi5CIFxmQlwtcVxmUApCeXRlcyBpbiBQ T1NJWCBtZXNzYWdlIHF1ZXVlcy4KLlRQCi5CIFxmQlwtclxmUApNYXhpbXVtIHJlYWwgdGlt ZSBwcmlvcml0eS4gIE9uIHNvbWUgc3lzdGVtcyB3aGVyZSB0aGlzCmlzIG5vdCBhdmFpbGFi bGUsIHN1Y2ggYXMgTmV0QlNELCB0aGlzIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgXGZCXC1U XGZQCmZvciBjb21wYXRpYmlsaXR5IHdpdGggXGZCc2hcZlBcJi4KLlRQCi5CIFxmQlwtc1xm UApLaWxvYnl0ZXMgb24gdGhlIHNpemUgb2YgdGhlIHN0YWNrLgouVFAKLkIgXGZCXC1UXGZQ ClRoZSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIHRocmVhZHMgYXZhaWxhYmxlIHRvIHRoZSB1 c2VyLgouVFAKLkIgXGZCXC10XGZQCkNQVSBzZWNvbmRzIHRvIGJlIHVzZWQuCi5UUAouQiBc ZkJcLXVcZlAKVGhlIG51bWJlciBvZiBwcm9jZXNzZXMgYXZhaWxhYmxlIHRvIHRoZSB1c2Vy LgouVFAKLkIgXGZCXC12XGZQCktpbG9ieXRlcyBvbiB0aGUgc2l6ZSBvZiB2aXJ0dWFsIG1l bW9yeS4gIE9uIHNvbWUgc3lzdGVtcyB0aGlzCnJlZmVycyB0byB0aGUgbGltaXQgY2FsbGVk IFwoZ2FhZGRyZXNzIHNwYWNlXChhcS4KLlRQCi5CIFxmQlwtd1xmUApLaWxvYnl0ZXMgb24g dGhlIHNpemUgb2Ygc3dhcHBlZCBvdXQgbWVtb3J5LgouVFAKLkIgXGZCXC14XGZQClRoZSBu dW1iZXIgb2YgbG9ja3Mgb24gZmlsZXMuCi5UUAouQiBcZkJcLXlcZlAKTWF4aW11bSBzaXpl IG9mIGJ1ZmZlcnMgZm9yIHBpcGVzL2ZpZm9zLgouVU5JTkRFTlQKLnNwCkEgcmVzb3VyY2Ug bWF5IGFsc28gYmUgc3BlY2lmaWVkIGJ5IGludGVnZXIgaW4gdGhlIGZvcm0gXGZCXC1OXGZQ ClxmSXJlc291cmNlXGZQLCB3aGVyZSBcZklyZXNvdXJjZVxmUCBjb3JyZXNwb25kcyB0byB0 aGUgaW50ZWdlciBkZWZpbmVkIGZvcgp0aGUgcmVzb3VyY2UgYnkgdGhlIG9wZXJhdGluZyBz eXN0ZW0uICBUaGlzIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgbGltaXRzCmZvciByZXNvdXJj ZXMga25vd24gdG8gdGhlIHNoZWxsIHdoaWNoIGRvIG5vdCBjb3JyZXNwb25kIHRvIG9wdGlv biBsZXR0ZXJzLgpTdWNoIGxpbWl0cyB3aWxsIGJlIHNob3duIGJ5IG51bWJlciBpbiB0aGUg b3V0cHV0IG9mIFxmQnVsaW1pdCBcLWFcZlBcJi4KLnNwClRoZSBudW1iZXIgbWF5IGFsdGVy bmF0aXZlbHkgYmUgb3V0IG9mIHRoZSByYW5nZSBvZiBsaW1pdHMgY29tcGlsZWQgaW50bwp0 aGUgc2hlbGwuICBUaGUgc2hlbGwgd2lsbCB0cnkgdG8gcmVhZCBvciB3cml0ZSB0aGUgbGlt aXQgYW55d2F5LCBhbmQKd2lsbCByZXBvcnQgYW4gZXJyb3IgaWYgdGhpcyBmYWlscy4KLlVO SU5ERU5UCi5VTklOREVOVAouc3AKXGZCdW1hc2tcZlAgWyBcZkJcLVNcZlAgXSBbIFxmSW1h c2tcZlAgXQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpUaGUgdW1hc2sgaXMgc2V0IHRvIFxm SW1hc2tcZlBcJi4gIFxmSW1hc2tcZlAgY2FuIGJlIGVpdGhlcgphbiBvY3RhbCBudW1iZXIg b3IgYSBzeW1ib2xpYyB2YWx1ZSBhcyBkZXNjcmliZWQgaW4gdGhlIFxmQmNobW9kKDEpXGZQ IG1hbiBwYWdlLgpJZiBcZkltYXNrXGZQIGlzIG9taXR0ZWQsIHRoZSBjdXJyZW50IHZhbHVl IGlzIHByaW50ZWQuICBUaGUgXGZCXC1TXGZQCm9wdGlvbiBjYXVzZXMgdGhlIG1hc2sgdG8g YmUgcHJpbnRlZCBhcyBhIHN5bWJvbGljIHZhbHVlLiAgT3RoZXJ3aXNlLAp0aGUgbWFzayBp cyBwcmludGVkIGFzIGFuIG9jdGFsIG51bWJlci4gIE5vdGUgdGhhdCBpbgp0aGUgc3ltYm9s aWMgZm9ybSB0aGUgcGVybWlzc2lvbnMgeW91IHNwZWNpZnkgYXJlIHRob3NlIHdoaWNoIGFy ZSB0byBiZQphbGxvd2VkIChub3QgZGVuaWVkKSB0byB0aGUgdXNlcnMgc3BlY2lmaWVkLgou VU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJ1bmFsaWFzXGZQIFsgXGZCXC1hbXNcZlAgXSBc ZkluYW1lXGZQIC4uLgouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpSZW1vdmVzIGFsaWFzZXMu ICBUaGlzIGNvbW1hbmQgd29ya3MgdGhlIHNhbWUgYXMgXGZCdW5oYXNoIFwtYVxmUCwgZXhj ZXB0IHRoYXQKdGhlIFxmQlwtYVxmUCBvcHRpb24gcmVtb3ZlcyBhbGwgcmVndWxhciBvciBn bG9iYWwgYWxpYXNlcywgb3Igd2l0aCBcZkJcLXNcZlAKYWxsIHN1ZmZpeCBhbGlhc2VzOiBp biB0aGlzIGNhc2Ugbm8gXGZJbmFtZVxmUCBhcmd1bWVudHMgbWF5IGFwcGVhci4gIFRoZQpv cHRpb25zIFxmQlwtbVxmUCAocmVtb3ZlIGJ5IHBhdHRlcm4pIGFuZCBcZkJcLXNcZlAgd2l0 aG91dCBcZkJcLWFcZlAgKHJlbW92ZQpsaXN0ZWQgc3VmZml4IGFsaWFzZXMpIGJlaGF2ZSBh cyBmb3IgXGZCdW5oYXNoIFwtYVxmUFwmLiAgTm90ZSB0aGF0CnRoZSBtZWFuaW5nIG9mIFxm QlwtYVxmUCBpcyBkaWZmZXJlbnQgYmV0d2VlbiBcZkJ1bmFsaWFzXGZQIGFuZCBcZkJ1bmhh c2hcZlBcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCdW5mdW5jdGlvblxmUAouSU5E RU5UIDAuMAouSU5ERU5UIDMuNQpTYW1lIGFzIFxmQnVuaGFzaCBcLWZcZlBcJi4KLlVOSU5E RU5UCi5VTklOREVOVAouc3AKXGZCdW5oYXNoXGZQIFsgXGZCXC1hZGZtc1xmUCBdIFxmSW5h bWVcZlAgLi4uCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClJlbW92ZSB0aGUgZWxlbWVudCBu YW1lZCBcZkluYW1lXGZQIGZyb20gYW4gaW50ZXJuYWwgaGFzaCB0YWJsZS4gIFRoZQpkZWZh dWx0IGlzIHJlbW92ZSBlbGVtZW50cyBmcm9tIHRoZSBjb21tYW5kIGhhc2ggdGFibGUuICBU aGUgXGZCXC1hXGZQCm9wdGlvbiBjYXVzZXMgXGZCdW5oYXNoXGZQIHRvIHJlbW92ZSByZWd1 bGFyIG9yIGdsb2JhbCBhbGlhc2VzOyBub3RlCndoZW4gcmVtb3ZpbmcgYSBnbG9iYWwgYWxp YXNlcyB0aGF0IHRoZSBhcmd1bWVudCBtdXN0IGJlIHF1b3RlZCB0byBwcmV2ZW50Cml0IGZy b20gYmVpbmcgZXhwYW5kZWQgYmVmb3JlIGJlaW5nIHBhc3NlZCB0byB0aGUgY29tbWFuZC4K VGhlIFxmQlwtc1xmUCBvcHRpb24gY2F1c2VzIFxmQnVuaGFzaFxmUCB0byByZW1vdmUgc3Vm Zml4IGFsaWFzZXMuClRoZSBcZkJcLWZcZlAgb3B0aW9uIGNhdXNlcwpcZkJ1bmhhc2hcZlAg dG8gcmVtb3ZlIHNoZWxsIGZ1bmN0aW9ucy4gIFRoZSBcZkJcLWRcZlAgb3B0aW9ucyBjYXVz ZXMKXGZCdW5oYXNoXGZQIHRvIHJlbW92ZSBuYW1lZCBkaXJlY3Rvcmllcy4gIElmIHRoZSBc ZkJcLW1cZlAgZmxhZyBpcyBnaXZlbgp0aGUgYXJndW1lbnRzIGFyZSB0YWtlbiBhcyBwYXR0 ZXJucyAoc2hvdWxkIGJlIHF1b3RlZCkgYW5kIGFsbCBlbGVtZW50cwpvZiB0aGUgY29ycmVz cG9uZGluZyBoYXNoIHRhYmxlIHdpdGggbWF0Y2hpbmcgbmFtZXMgd2lsbCBiZSByZW1vdmVk LgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJ1bmxpbWl0XGZQIFsgXGZCXC1oc1xmUCBd IFxmSXJlc291cmNlXGZQIC4uLgouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpUaGUgcmVzb3Vy Y2UgbGltaXQgZm9yIGVhY2ggXGZJcmVzb3VyY2VcZlAgaXMgc2V0IHRvIHRoZSBoYXJkIGxp bWl0LgpJZiB0aGUgXGZCXC1oXGZQIGZsYWcgaXMgZ2l2ZW4gYW5kIHRoZSBzaGVsbCBoYXMg YXBwcm9wcmlhdGUgcHJpdmlsZWdlcywKdGhlIGhhcmQgcmVzb3VyY2UgbGltaXQgZm9yIGVh Y2ggXGZJcmVzb3VyY2VcZlAgaXMgcmVtb3ZlZC4KVGhlIHJlc291cmNlcyBvZiB0aGUgc2hl bGwgcHJvY2VzcyBhcmUgb25seSBjaGFuZ2VkIGlmIHRoZSBcZkJcLXNcZlAKZmxhZyBpcyBn aXZlbi4KLnNwClRoZSBcZkJ1bmxpbWl0XGZQIGNvbW1hbmQgaXMgbm90IG1hZGUgYXZhaWxh YmxlIGJ5IGRlZmF1bHQgd2hlbiB0aGUKc2hlbGwgc3RhcnRzIGluIGEgbW9kZSBlbXVsYXRp bmcgYW5vdGhlciBzaGVsbC4gIEl0IGNhbiBiZSBtYWRlIGF2YWlsYWJsZQp3aXRoIHRoZSBj b21tYW5kIFxmQnptb2Rsb2FkIFwtRiB6c2gvcmxpbWl0cyBiOnVubGltaXRcZlBcJi4KLlVO SU5ERU5UCi5VTklOREVOVAouc3AKXGZCdW5zZXRcZlAgWyBcZkJcLWZtdlxmUCBdIFsgXGZC XC1uXGZQIF0gXGZJbmFtZVxmUCAuLi4KLklOREVOVCAwLjAKLklOREVOVCAzLjUKRWFjaCBu YW1lZCBwYXJhbWV0ZXIgaXMgdW5zZXQuCkxvY2FsIHBhcmFtZXRlcnMgcmVtYWluIGxvY2Fs IGV2ZW4gaWYgdW5zZXQ7IHRoZXkgYXBwZWFyIHVuc2V0IHdpdGhpbiBzY29wZSwKYnV0IHRo ZSBwcmV2aW91cyB2YWx1ZSB3aWxsIHN0aWxsIHJlYXBwZWFyIHdoZW4gdGhlIHNjb3BlIGVu ZHMuCi5zcApJbmRpdmlkdWFsIGVsZW1lbnRzIG9mIGFzc29jaWF0aXZlIGFycmF5IHBhcmFt ZXRlcnMgbWF5IGJlIHVuc2V0IGJ5IHVzaW5nCnN1YnNjcmlwdCBzeW50YXggb24gXGZJbmFt ZVxmUCwgd2hpY2ggc2hvdWxkIGJlIHF1b3RlZCAob3IgdGhlIGVudGlyZSBjb21tYW5kCnBy ZWZpeGVkIHdpdGggXGZCbm9nbG9iXGZQKSB0byBwcm90ZWN0IHRoZSBzdWJzY3JpcHQgZnJv bSBmaWxlbmFtZSBnZW5lcmF0aW9uLgouc3AKSWYgdGhlIFxmQlwtbVxmUCBmbGFnIGlzIHNw ZWNpZmllZCB0aGUgYXJndW1lbnRzIGFyZSB0YWtlbiBhcyBwYXR0ZXJucyAoc2hvdWxkCmJl IHF1b3RlZCkgYW5kIGFsbCBwYXJhbWV0ZXJzIHdpdGggbWF0Y2hpbmcgbmFtZXMgYXJlIHVu c2V0LiAgTm90ZSB0aGF0IHRoaXMKY2Fubm90IGJlIHVzZWQgd2hlbiB1bnNldHRpbmcgYXNz b2NpYXRpdmUgYXJyYXkgZWxlbWVudHMsIGFzIHRoZSBzdWJzY3JpcHQKd2lsbCBiZSB0cmVh dGVkIGFzIHBhcnQgb2YgdGhlIHBhdHRlcm4uCi5zcApUaGUgXGZCXC12XGZQIGZsYWcgc3Bl Y2lmaWVzIHRoYXQgXGZJbmFtZVxmUCByZWZlcnMgdG8gcGFyYW1ldGVycy4gVGhpcyBpcwp0 aGUgZGVmYXVsdCBiZWhhdmlvdXIuICBJZiB0aGUgXGZCXC1uXGZQIG9wdGlvbiBpcyBzdXBw bGllZCwgYW5kClxmSW5hbWVcZlAgaXMgYSBhIG5hbWVkIHJlZmVyZW5jZSwgXGZJbmFtZVxm UCB3aWxsIGJlIHVuc2V0IHJhdGhlciB0aGFuCnRoZSB2YXJpYWJsZSBpdCByZWZlcmVuY2Vz Lgouc3AKXGZCdW5zZXQgXC1mXGZQIGlzIGVxdWl2YWxlbnQgdG8gXGZCdW5mdW5jdGlvblxm UFwmLiAgVGhlIFxmQlwtblxmUCBvcHRpb24gaGFzCm5vIGVmZmVjdCB3aXRoIFxmQlwtZlxm UFwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJ1bnNldG9wdFxmUCBbIHtcZkIrfFwt XGZQfTp2YXI6XGZJb3B0aW9uc1xmUCB8IHtcZkIrfFwtfW9cZlAgXGZJb3B0aW9uX25hbWVc ZlAgXSBbIFxmSW5hbWVcZlAgLi4uIF0KLklOREVOVCAwLjAKLklOREVOVCAzLjUKVW5zZXQg dGhlIG9wdGlvbnMgZm9yIHRoZSBzaGVsbC4gIEFsbCBvcHRpb25zIHNwZWNpZmllZCBlaXRo ZXIKd2l0aCBmbGFncyBvciBieSBuYW1lIGFyZSB1bnNldC4gIElmIG5vIGFyZ3VtZW50cyBh cmUgc3VwcGxpZWQsCnRoZSBuYW1lcyBvZiBhbGwgb3B0aW9ucyBjdXJyZW50bHkgdW5zZXQg YXJlIHByaW50ZWQuCklmIHRoZSBcZkJcLW1cZlAgZmxhZyBpcyBnaXZlbiB0aGUgYXJndW1l bnRzIGFyZSB0YWtlbiBhcyBwYXR0ZXJucwood2hpY2ggc2hvdWxkIGJlIHF1b3RlZCB0byBw cmVzZXJ2ZSB0aGVtIGZyb20gYmVpbmcgaW50ZXJwcmV0ZWQgYXMgZ2xvYgpwYXR0ZXJucyks IGFuZCBhbGwgb3B0aW9ucyB3aXRoIG5hbWVzIG1hdGNoaW5nIHRoZXNlIHBhdHRlcm5zIGFy ZSB1bnNldC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCdmFyZWRcZlAKLklOREVOVCAw LjAKLklOREVOVCAzLjUKU2VlIFpsZSBCdWlsdGluc1wmLgouVU5JTkRFTlQKLlVOSU5ERU5U Ci5zcApcZkJ3YWl0XGZQIFsgXGZJam9iXGZQIC4uLiBdCi5JTkRFTlQgMC4wCi5JTkRFTlQg My41CldhaXQgZm9yIHRoZSBzcGVjaWZpZWQgam9icyBvciBwcm9jZXNzZXMuICBJZiBcZklq b2JcZlAgaXMgbm90IGdpdmVuCnRoZW4gYWxsIGN1cnJlbnRseSBhY3RpdmUgY2hpbGQgcHJv Y2Vzc2VzIGFyZSB3YWl0ZWQgZm9yLgpFYWNoIFxmSWpvYlxmUCBjYW4gYmUgZWl0aGVyIGEg am9iIHNwZWNpZmljYXRpb24gb3IgdGhlIHByb2Nlc3MgSUQKb2YgYSBqb2IgaW4gdGhlIGpv YiB0YWJsZS4KVGhlIGV4aXQgc3RhdHVzIGZyb20gdGhpcyBjb21tYW5kIGlzIHRoYXQgb2Yg dGhlIGpvYiB3YWl0ZWQgZm9yLgpJZiBcZklqb2JcZlAgcmVwcmVzZW50cyBhbiB1bmtub3du IGpvYiBvciBwcm9jZXNzIElELCBhIHdhcm5pbmcgaXMgcHJpbnRlZAoodW5sZXNzIHRoZSBc ZkJQT1NJWF9CVUlMVElOU1xmUCBvcHRpb24gaXMgc2V0KSBhbmQgdGhlIGV4aXQgc3RhdHVz IGlzIDEyNy4KLnNwCkl0IGlzIHBvc3NpYmxlIHRvIHdhaXQgZm9yIHJlY2VudCBwcm9jZXNz ZXMgKHNwZWNpZmllZCBieSBwcm9jZXNzIElELApub3QgYnkgam9iKSB0aGF0IHdlcmUgcnVu bmluZyBpbiB0aGUgYmFja2dyb3VuZCBldmVuIGlmIHRoZSBwcm9jZXNzIGhhcwpleGl0ZWQu ICBUeXBpY2FsbHkgdGhlIHByb2Nlc3MgSUQgd2lsbCBiZSByZWNvcmRlZCBieSBjYXB0dXJp bmcgdGhlCnZhbHVlIG9mIHRoZSB2YXJpYWJsZSBcZkIkIVxmUCBpbW1lZGlhdGVseSBhZnRl ciB0aGUgcHJvY2VzcyBoYXMgYmVlbgpzdGFydGVkLiAgVGhlcmUgaXMgYSBsaW1pdCBvbiB0 aGUgbnVtYmVyIG9mIHByb2Nlc3MgSURzIHJlbWVtYmVyZWQgYnkKdGhlIHNoZWxsOyB0aGlz IGlzIGdpdmVuIGJ5IHRoZSB2YWx1ZSBvZiB0aGUgc3lzdGVtIGNvbmZpZ3VyYXRpb24KcGFy YW1ldGVyIFxmQkNISUxEX01BWFxmUFwmLiAgV2hlbiB0aGlzIGxpbWl0IGlzIHJlYWNoZWQs IG9sZGVyIHByb2Nlc3MgSURzCmFyZSBkaXNjYXJkZWQsIGxlYXN0IHJlY2VudGx5IHN0YXJ0 ZWQgcHJvY2Vzc2VzIGZpcnN0Lgouc3AKTm90ZSB0aGVyZSBpcyBubyBwcm90ZWN0aW9uIGFn YWluc3QgdGhlIHByb2Nlc3MgSUQgd3JhcHBpbmcsIGkuZS4gaWYgdGhlCndhaXQgaXMgbm90 IGV4ZWN1dGVkIHNvb24gZW5vdWdoIHRoZXJlIGlzIGEgY2hhbmNlIHRoZSBwcm9jZXNzIHdh aXRlZApmb3IgaXMgdGhlIHdyb25nIG9uZS4gIEEgY29uZmxpY3QgaW1wbGllcyBib3RoIHBy b2Nlc3MgSURzIGhhdmUgYmVlbgpnZW5lcmF0ZWQgYnkgdGhlIHNoZWxsLCBhcyBvdGhlciBw cm9jZXNzZXMgYXJlIG5vdCByZWNvcmRlZCwgYW5kIHRoYXQKdGhlIHVzZXIgaXMgcG90ZW50 aWFsbHkgaW50ZXJlc3RlZCBpbiBib3RoLCBzbyB0aGlzIHByb2JsZW0gaXMgaW50cmluc2lj CnRvIHByb2Nlc3MgSURzLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJ3aGVuY2VcZlAg WyBcZkJcLXZjd2ZwYW1zU1xmUCBdIFsgXGZCXC14XGZQIFxmSW51bVxmUCBdIFxmSW5hbWVc ZlAgLi4uCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkZvciBlYWNoIFxmSW5hbWVcZlAsIGlu ZGljYXRlIGhvdyBpdCB3b3VsZCBiZSBpbnRlcnByZXRlZCBpZiB1c2VkIGFzIGEKY29tbWFu ZCBuYW1lLgouc3AKSWYgXGZJbmFtZVxmUCBpcyBub3QgYW4gYWxpYXMsIGJ1aWx0XC1pbiBj b21tYW5kLCBleHRlcm5hbCBjb21tYW5kLCBzaGVsbApmdW5jdGlvbiwgaGFzaGVkIGNvbW1h bmQsIG9yIGEgcmVzZXJ2ZWQgd29yZCwgdGhlIGV4aXQgc3RhdHVzIHNoYWxsIGJlCm5vblwt emVybywgYW5kIFwtXC0gaWYgXGZCXC12XGZQLCBcZkJcLWNcZlAsIG9yIFxmQlwtd1xmUCB3 YXMgcGFzc2VkIFwtXC0gYSBtZXNzYWdlCndpbGwgYmUgd3JpdHRlbiB0byBzdGFuZGFyZCBv dXRwdXQuICAoVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBvdGhlciBzaGVsbHMgdGhhdAp3cml0 ZSB0aGF0IG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuKQouc3AKXGZCd2hlbmNlXGZQIGlz IG1vc3QgdXNlZnVsIHdoZW4gXGZJbmFtZVxmUCBpcyBvbmx5IHRoZSBsYXN0IHBhdGggY29t cG9uZW50Cm9mIGEgY29tbWFuZCwgaS5lLiBkb2VzIG5vdCBpbmNsdWRlIGEgXGZCL1xmUDsg aW4gcGFydGljdWxhciwgcGF0dGVybgptYXRjaGluZyBvbmx5IHN1Y2NlZWRzIGlmIGp1c3Qg dGhlIG5vblwtZGlyZWN0b3J5IGNvbXBvbmVudCBvZiB0aGUgY29tbWFuZCBpcwpwYXNzZWQu Ci5zcApcZkJcLXZcZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKUHJvZHVjZSBhIG1vcmUg dmVyYm9zZSByZXBvcnQuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtY1xmUAouSU5E RU5UIDAuMAouSU5ERU5UIDMuNQpQcmludCB0aGUgcmVzdWx0cyBpbiBhIFxmQmNzaFxmUFwt bGlrZSBmb3JtYXQuClRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIFxmQlwtdlxmUFwmLgou VU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcLXdcZlAKLklOREVOVCAwLjAKLklOREVOVCAz LjUKRm9yIGVhY2ggXGZJbmFtZVxmUCwgcHJpbnQgXGZJbmFtZVxmUFxmQjpcZlAgXGZJd29y ZFxmUCB3aGVyZSBcZkl3b3JkXGZQCmlzIG9uZSBvZiBcZkJhbGlhc1xmUCwgXGZCYnVpbHRp blxmUCwgXGZCY29tbWFuZFxmUCwgXGZCZnVuY3Rpb25cZlAsClxmQmhhc2hlZFxmUCwgXGZC cmVzZXJ2ZWRcZlAgb3IgXGZCbm9uZVxmUCwgYWNjb3JkaW5nIGFzIFxmSW5hbWVcZlAKY29y cmVzcG9uZHMgdG8gYW4gYWxpYXMsIGEgYnVpbHRcLWluIGNvbW1hbmQsIGFuIGV4dGVybmFs IGNvbW1hbmQsIGEKc2hlbGwgZnVuY3Rpb24sIGEgY29tbWFuZCBkZWZpbmVkIHdpdGggdGhl IFxmQmhhc2hcZlAgYnVpbHRpbiwgYQpyZXNlcnZlZCB3b3JkLCBvciBpcyBub3QgcmVjb2du aXNlZC4gIFRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyClxmQlwtdlxmUCBhbmQgXGZCXC1j XGZQXCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtZlxmUAouSU5ERU5UIDAuMAou SU5ERU5UIDMuNQpDYXVzZXMgdGhlIGNvbnRlbnRzIG9mIGEgc2hlbGwgZnVuY3Rpb24gdG8g YmUKZGlzcGxheWVkLCB3aGljaCB3b3VsZCBvdGhlcndpc2Ugbm90IGhhcHBlbiB1bmxlc3Mg dGhlIFxmQlwtY1xmUApmbGFnIHdlcmUgdXNlZC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AK XGZCXC1wXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkRvIGEgcGF0aCBzZWFyY2ggZm9y IFxmSW5hbWVcZlAKZXZlbiBpZiBpdCBpcyBhbiBhbGlhcywgcmVzZXJ2ZWQgd29yZCwgc2hl bGwgZnVuY3Rpb24gb3IgYnVpbHRpbi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCXC1h XGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkRvIGEgc2VhcmNoIGZvciBhbGwgb2NjdXJy ZW5jZXMgb2YgXGZJbmFtZVxmUAp0aHJvdWdob3V0IHRoZSBjb21tYW5kIHBhdGguCk5vcm1h bGx5IG9ubHkgdGhlIGZpcnN0IG9jY3VycmVuY2UgaXMgcHJpbnRlZC4KV2hlbiBjb21iaW5l ZCB3aXRoIFxmQlwtbVxmUCwgb25seSBuYW1lcyBhcHBlYXJpbmcgaW4gdGhlIGNvbW1hbmQg aGFzaAp0YWJsZSBhcmUgc2VhcmNoZWQsIGJ1dCBhbGwgb2NjdXJyZW5jZXMgb2YgdGhvc2Ug bmFtZXMgYXJlIHByaW50ZWQuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwtbVxmUAou SU5ERU5UIDAuMAouSU5ERU5UIDMuNQpUaGUgYXJndW1lbnRzIGFyZSB0YWtlbiBhcyBwYXR0 ZXJucyAocGF0dGVybiBjaGFyYWN0ZXJzIHNob3VsZCBiZQpxdW90ZWQpLCBhbmQgdGhlIGlu Zm9ybWF0aW9uIGlzIGRpc3BsYXllZCBmb3IgZWFjaCBlbnRyeSBpbiB0aGUgY29tbWFuZApo YXNoIHRhYmxlIG1hdGNoaW5nIG9uZSBvZiB0aGVzZSBwYXR0ZXJucy4gIFRoZSBoYXNoIHRh YmxlIGlzIGZpcnN0CnJlZmlsbGVkLCBpbiBjYXNlIG9mIGNoYW5nZXMgdG8gXGZCUEFUSFxm UFwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcLXNcZlAKLklOREVOVCAwLjAKLklO REVOVCAzLjUKSWYgYSBwYXRobmFtZSBjb250YWlucyBzeW1saW5rcywgcHJpbnQgdGhlIHN5 bWxpbmtcLWZyZWUgcGF0aG5hbWUgYXMgd2VsbC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AK XGZCXC1TXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkFzIFxmQlwtc1xmUCwgYnV0IGlm IHRoZSBwYXRobmFtZSBoYWQgdG8gYmUgcmVzb2x2ZWQgYnkgZm9sbG93aW5nCm11bHRpcGxl IHN5bWxpbmtzLCB0aGUgaW50ZXJtZWRpYXRlIHN0ZXBzIGFyZSBwcmludGVkLCB0b28uICBU aGUKc3ltbGluayByZXNvbHZlZCBhdCBlYWNoIHN0ZXAgbWlnaHQgYmUgYW55d2hlcmUgaW4g dGhlIHBhdGguCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwteFxmUCBcZkludW1cZlAK LklOREVOVCAwLjAKLklOREVOVCAzLjUKRXhwYW5kIHRhYnMgd2hlbiBvdXRwdXR0aW5nIHNo ZWxsIGZ1bmN0aW9ucyB1c2luZyB0aGUgXGZCXC1jXGZQIG9wdGlvbi4KVGhpcyBoYXMgdGhl IHNhbWUgZWZmZWN0IGFzIHRoZSBcZkJcLXhcZlAgb3B0aW9uIHRvIHRoZSBcZkJmdW5jdGlv bnNcZlAKYnVpbHRpbi4KLlVOSU5ERU5UCi5VTklOREVOVAouVU5JTkRFTlQKLlVOSU5ERU5U Ci5zcApcZkJ3aGVyZVxmUCBbIFxmQlwtd3Btc1NcZlAgXSBbIFxmQlwteFxmUCBcZkludW1c ZlAgXSBcZkluYW1lXGZQIC4uLgouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpFcXVpdmFsZW50 IHRvIFxmQndoZW5jZSBcLWNhXGZQXCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQndo aWNoXGZQIFsgXGZCXC13cGFtc1NcZlAgXSBbIFxmQlwteFxmUCBcZkludW1cZlAgXSBcZklu YW1lXGZQIC4uLgouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpFcXVpdmFsZW50IHRvIFxmQndo ZW5jZSBcLWNcZlBcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCemNvbXBpbGVcZlAg WyBcZkJcLVVcZlAgXSBbIFxmQlwtelxmUCB8IFxmQlwta1xmUCBdIFsgXGZCXC1SXGZQIHwg XGZCXC1NXGZQIF0gXGZJZmlsZVxmUCBbIFxmSW5hbWVcZlAgLi4uIF0KLnNwClxmQnpjb21w aWxlXGZQIFxmQlwtY2FcZlAgWyBcZkJcLW1cZlAgXSBbIFxmQlwtUlxmUCB8IFxmQlwtTVxm UCBdIFxmSWZpbGVcZlAgWyBcZkluYW1lXGZQIC4uLiBdCi5zcApcZkJ6Y29tcGlsZSBcLXRc ZlAgXGZJZmlsZVxmUCBbIFxmSW5hbWVcZlAgLi4uIF0KLklOREVOVCAwLjAKLklOREVOVCAz LjUKVGhpcyBidWlsdGluIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gY29tcGlsZSBmdW5jdGlv bnMgb3Igc2NyaXB0cywKc3RvcmluZyB0aGUgY29tcGlsZWQgZm9ybSBpbiBhIGZpbGUsIGFu ZCB0byBleGFtaW5lIGZpbGVzIGNvbnRhaW5pbmcKdGhlIGNvbXBpbGVkIGZvcm0uICBUaGlz IGFsbG93cyBmYXN0ZXIgYXV0b2xvYWRpbmcgb2YgZnVuY3Rpb25zIGFuZApzb3VyY2luZyBv ZiBzY3JpcHRzIGJ5IGF2b2lkaW5nIHBhcnNpbmcgb2YgdGhlIHRleHQgd2hlbiB0aGUgZmls ZXMKYXJlIHJlYWQuCi5zcApUaGUgZmlyc3QgZm9ybSAod2l0aG91dCB0aGUgXGZCXC1jXGZQ LCBcZkJcLWFcZlAgb3IgXGZCXC10XGZQIG9wdGlvbnMpIGNyZWF0ZXMgYQpjb21waWxlZCBm aWxlLiAgSWYgb25seSB0aGUgXGZJZmlsZVxmUCBhcmd1bWVudCBpcyBnaXZlbiwgdGhlCm91 dHB1dCBmaWxlIGhhcyB0aGUgbmFtZSBcZklmaWxlXGZQXGZCXCYuendjXGZQIGFuZCB3aWxs IGJlIHBsYWNlZCBpbgp0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIFxmSWZpbGVcZlBcJi4g IFRoZSBzaGVsbCB3aWxsIGxvYWQgdGhlIGNvbXBpbGVkCmZpbGUgaW5zdGVhZCBvZiB0aGUg bm9ybWFsIGZ1bmN0aW9uIGZpbGUgd2hlbiB0aGUgZnVuY3Rpb24KaXMgYXV0b2xvYWRlZDsg c2VlIEF1dG9sb2FkaW5nIEZ1bmN0aW9ucwpmb3IgYSBkZXNjcmlwdGlvbiBvZiBob3cgYXV0 b2xvYWRlZCBmdW5jdGlvbnMgYXJlIHNlYXJjaGVkLiAgVGhlCmV4dGVuc2lvbiBcZkJcJi56 d2NcZlAgc3RhbmRzIGZvciBcKGdhenNoIHdvcmQgY29kZVwoYXEuCi5zcApJZiB0aGVyZSBp cyBhdCBsZWFzdCBvbmUgXGZJbmFtZVxmUCBhcmd1bWVudCwgYWxsIHRoZSBuYW1lZCBmaWxl cwphcmUgY29tcGlsZWQgaW50byB0aGUgb3V0cHV0IFxmSWZpbGVcZlAgZ2l2ZW4gYXMgdGhl IGZpcnN0IGFyZ3VtZW50LiAgSWYKXGZJZmlsZVxmUCBkb2VzIG5vdCBlbmQgaW4gXGZCXCYu endjXGZQLCB0aGlzIGV4dGVuc2lvbiBpcyBhdXRvbWF0aWNhbGx5CmFwcGVuZGVkLiAgRmls ZXMgY29udGFpbmluZyBtdWx0aXBsZSBjb21waWxlZCBmdW5jdGlvbnMgYXJlIGNhbGxlZCBc KGdhZGlnZXN0XChhcQpmaWxlcywgYW5kIGFyZSBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIGVs ZW1lbnRzIG9mIHRoZSBcZkJGUEFUSC9mcGF0aFxmUApzcGVjaWFsIGFycmF5Lgouc3AKVGhl IHNlY29uZCBmb3JtLCB3aXRoIHRoZSBcZkJcLWNcZlAgb3IgXGZCXC1hXGZQIG9wdGlvbnMs IHdyaXRlcyB0aGUgY29tcGlsZWQKZGVmaW5pdGlvbnMgZm9yIGFsbCB0aGUgbmFtZWQgZnVu Y3Rpb25zIGludG8gXGZJZmlsZVxmUFwmLiAgRm9yIFxmQlwtY1xmUCwgdGhlCm5hbWVzIG11 c3QgYmUgZnVuY3Rpb25zIGN1cnJlbnRseSBkZWZpbmVkIGluIHRoZSBzaGVsbCwgbm90IHRo b3NlIG1hcmtlZApmb3IgYXV0b2xvYWRpbmcuICBVbmRlZmluZWQgZnVuY3Rpb25zIHRoYXQg YXJlIG1hcmtlZCBmb3IgYXV0b2xvYWRpbmcKbWF5IGJlIHdyaXR0ZW4gYnkgdXNpbmcgdGhl IFxmQlwtYVxmUCBvcHRpb24sIGluIHdoaWNoIGNhc2UgdGhlIFxmQmZwYXRoXGZQCmlzIHNl YXJjaGVkIGFuZCB0aGUgY29udGVudHMgb2YgdGhlIGRlZmluaXRpb24gZmlsZXMgZm9yIHRo b3NlCmZ1bmN0aW9ucywgaWYgZm91bmQsIGFyZSBjb21waWxlZCBpbnRvIFxmSWZpbGVcZlBc Ji4gIElmIGJvdGggXGZCXC1jXGZQIGFuZApcZkJcLWFcZlAgYXJlIGdpdmVuLCBuYW1lcyBv ZiBib3RoIGRlZmluZWQgZnVuY3Rpb25zIGFuZCBmdW5jdGlvbnMgbWFya2VkCmZvciBhdXRv bG9hZGluZyBtYXkgYmUgZ2l2ZW4uICBJbiBlaXRoZXIgY2FzZSwgdGhlIGZ1bmN0aW9ucyBp biBmaWxlcwp3cml0dGVuIHdpdGggdGhlIFxmQlwtY1xmUCBvciBcZkJcLWFcZlAgb3B0aW9u IHdpbGwgYmUgYXV0b2xvYWRlZCBhcyBpZiB0aGUKXGZCS1NIX0FVVE9MT0FEXGZQIG9wdGlv biB3ZXJlIHVuc2V0Lgouc3AKVGhlIHJlYXNvbiBmb3IgaGFuZGxpbmcgbG9hZGVkIGFuZCBu b3RcLXlldFwtbG9hZGVkIGZ1bmN0aW9ucyB3aXRoCmRpZmZlcmVudCBvcHRpb25zIGlzIHRo YXQgc29tZSBkZWZpbml0aW9uIGZpbGVzIGZvciBhdXRvbG9hZGluZyBkZWZpbmUKbXVsdGlw bGUgZnVuY3Rpb25zLCBpbmNsdWRpbmcgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgbmFt ZSBhcyB0aGUKZmlsZSwgYW5kLCBhdCB0aGUgZW5kLCBjYWxsIHRoYXQgZnVuY3Rpb24uICBJ biBzdWNoIGNhc2VzIHRoZSBvdXRwdXQgb2YKXGZCemNvbXBpbGUgXC1jXGZQIGRvZXMgbm90 IGluY2x1ZGUgdGhlIGFkZGl0aW9uYWwgZnVuY3Rpb25zIGRlZmluZWQgaW4KdGhlIGZpbGUs IGFuZCBhbnkgb3RoZXIgaW5pdGlhbGl6YXRpb24gY29kZSBpbiB0aGUgZmlsZSBpcyBsb3N0 LiAgVXNpbmcKXGZCemNvbXBpbGUgXC1hXGZQIGNhcHR1cmVzIGFsbCB0aGlzIGV4dHJhIGlu Zm9ybWF0aW9uLgouc3AKSWYgdGhlIFxmQlwtbVxmUCBvcHRpb24gaXMgY29tYmluZWQgd2l0 aCBcZkJcLWNcZlAgb3IgXGZCXC1hXGZQLAp0aGUgXGZJbmFtZVxmUHMgYXJlIHVzZWQgYXMg cGF0dGVybnMgYW5kIGFsbCBmdW5jdGlvbnMgd2hvc2UgbmFtZXMKbWF0Y2ggb25lIG9mIHRo ZXNlIHBhdHRlcm5zIHdpbGwgYmUgd3JpdHRlbi4gSWYgbm8gXGZJbmFtZVxmUCBpcyBnaXZl biwKdGhlIGRlZmluaXRpb25zIG9mIGFsbCBmdW5jdGlvbnMgY3VycmVudGx5IGRlZmluZWQg b3IgbWFya2VkIGFzCmF1dG9sb2FkZWQgd2lsbCBiZSB3cml0dGVuLgouc3AKTm90ZSB0aGUg c2Vjb25kIGZvcm0gY2Fubm90IGJlIHVzZWQgZm9yIGNvbXBpbGluZyBmdW5jdGlvbnMgdGhh dAppbmNsdWRlIHJlZGlyZWN0aW9ucyBhcyBwYXJ0IG9mIHRoZSBkZWZpbml0aW9uIHJhdGhl ciB0aGFuIHdpdGhpbgp0aGUgYm9keSBvZiB0aGUgZnVuY3Rpb247IGZvciBleGFtcGxlCi5J TkRFTlQgMC4wCi5JTkRFTlQgMy41Ci5zcAouRVgKIGZuMSgpIHsgeyAuLi4gfSA+fi9sb2dm aWxlIH0KLkVFCi5VTklOREVOVAouVU5JTkRFTlQKLnNwCmNhbiBiZSBjb21waWxlZCBidXQK LklOREVOVCAwLjAKLklOREVOVCAzLjUKLnNwCi5FWAogZm4xKCkgeyAuLi4gfSA+fi9sb2dm aWxlCi5FRQouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApjYW5ub3QuICBJdCBpcyBwb3NzaWJs ZSB0byB1c2UgdGhlIGZpcnN0IGZvcm0gb2YgXGZCemNvbXBpbGVcZlAgdG8gY29tcGlsZQph dXRvbG9hZGFibGUgZnVuY3Rpb25zIHRoYXQgaW5jbHVkZSB0aGUgZnVsbCBmdW5jdGlvbiBk ZWZpbml0aW9uIGluc3RlYWQKb2YganVzdCB0aGUgYm9keSBvZiB0aGUgZnVuY3Rpb24uCi5z cApUaGUgdGhpcmQgZm9ybSwgd2l0aCB0aGUgXGZCXC10XGZQIG9wdGlvbiwgZXhhbWluZXMg YW4gZXhpc3RpbmcKY29tcGlsZWQgZmlsZS4gIFdpdGhvdXQgZnVydGhlciBhcmd1bWVudHMs IHRoZSBuYW1lcyBvZiB0aGUgb3JpZ2luYWwKZmlsZXMgY29tcGlsZWQgaW50byBpdCBhcmUg bGlzdGVkLiAgVGhlIGZpcnN0IGxpbmUgb2Ygb3V0cHV0IHNob3dzCnRoZSB2ZXJzaW9uIG9m IHRoZSBzaGVsbCB3aGljaCBjb21waWxlZCB0aGUgZmlsZSBhbmQgaG93IHRoZSBmaWxlCndp bGwgYmUgdXNlZCAoaS5lLiBieSByZWFkaW5nIGl0IGRpcmVjdGx5IG9yIGJ5IG1hcHBpbmcg aXQgaW50byBtZW1vcnkpLgpXaXRoIGFyZ3VtZW50cywgbm90aGluZyBpcyBvdXRwdXQgYW5k IHRoZSByZXR1cm4gc3RhdHVzIGlzIHNldCB0byB6ZXJvIGlmCmRlZmluaXRpb25zIGZvciBc ZklhbGxcZlAgXGZJbmFtZVxmUHMgd2VyZSBmb3VuZCBpbiB0aGUgY29tcGlsZWQKZmlsZSwg YW5kIG5vblwtemVybyBpZiB0aGUgZGVmaW5pdGlvbiBmb3IgYXQgbGVhc3Qgb25lIFxmSW5h bWVcZlAgd2FzIG5vdApmb3VuZC4KLnNwCk90aGVyIG9wdGlvbnM6Ci5zcApcZkJcLVVcZlAK LklOREVOVCAwLjAKLklOREVOVCAzLjUKQWxpYXNlcyBhcmUgbm90IGV4cGFuZGVkIHdoZW4g Y29tcGlsaW5nIHRoZSBcZkluYW1lXGZQZCBmaWxlcy4KLlVOSU5ERU5UCi5VTklOREVOVAou c3AKXGZCXC1SXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CldoZW4gdGhlIGNvbXBpbGVk IGZpbGUgaXMgcmVhZCwgaXRzIGNvbnRlbnRzIGFyZSBjb3BpZWQgaW50byB0aGUKc2hlbGxc KGFxcyBtZW1vcnksIHJhdGhlciB0aGFuIG1lbW9yeVwtbWFwcGVkIChzZWUgXGZCXC1NXGZQ KS4gIFRoaXMKaGFwcGVucyBhdXRvbWF0aWNhbGx5IG9uIHN5c3RlbXMgdGhhdCBkbyBub3Qg c3VwcG9ydCBtZW1vcnkgbWFwcGluZy4KLnNwCldoZW4gY29tcGlsaW5nIHNjcmlwdHMgaW5z dGVhZCBvZiBhdXRvbG9hZGFibGUgZnVuY3Rpb25zLCBpdCBpcwpvZnRlbiBkZXNpcmFibGUg dG8gdXNlIHRoaXMgb3B0aW9uOyBvdGhlcndpc2UgdGhlIHdob2xlIGZpbGUsIGluY2x1ZGlu ZyB0aGUKY29kZSB0byBkZWZpbmUgZnVuY3Rpb25zIHdoaWNoIGhhdmUgYWxyZWFkeSBiZWVu IGRlZmluZWQsIHdpbGwKcmVtYWluIG1hcHBlZCwgY29uc2VxdWVudGx5IHdhc3RpbmcgbWVt b3J5LgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJcLU1cZlAKLklOREVOVCAwLjAKLklO REVOVCAzLjUKVGhlIGNvbXBpbGVkIGZpbGUgaXMgbWFwcGVkIGludG8gdGhlIHNoZWxsXChh cXMgbWVtb3J5IHdoZW4gcmVhZC4gVGhpcwppcyBkb25lIGluIHN1Y2ggYSB3YXkgdGhhdCBt dWx0aXBsZSBpbnN0YW5jZXMgb2YgdGhlIHNoZWxsIHJ1bm5pbmcKb24gdGhlIHNhbWUgaG9z dCB3aWxsIHNoYXJlIHRoaXMgbWFwcGVkIGZpbGUuICBJZiBuZWl0aGVyIFxmQlwtUlxmUCBu b3IKXGZCXC1NXGZQIGlzIGdpdmVuLCB0aGUgXGZCemNvbXBpbGVcZlAgYnVpbHRpbiBkZWNp ZGVzIHdoYXQgdG8gZG8gYmFzZWQKb24gdGhlIHNpemUgb2YgdGhlIGNvbXBpbGVkIGZpbGUu Ci5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQlwta1xmUAouc3AKXGZCXC16XGZQCi5JTkRF TlQgMC4wCi5JTkRFTlQgMy41ClRoZXNlIG9wdGlvbnMgYXJlIHVzZWQgd2hlbiB0aGUgY29t cGlsZWQgZmlsZSBjb250YWlucyBmdW5jdGlvbnMgd2hpY2gKYXJlIHRvIGJlIGF1dG9sb2Fk ZWQuIElmIFxmQlwtelxmUCBpcyBnaXZlbiwgdGhlCmZ1bmN0aW9uIHdpbGwgYmUgYXV0b2xv YWRlZCBhcyBpZiB0aGUgXGZCS1NIX0FVVE9MT0FEXGZQIG9wdGlvbiBpcwpcZklub3RcZlAg c2V0LCBldmVuIGlmIGl0IGlzIHNldCBhdCB0aGUgdGltZSB0aGUgY29tcGlsZWQgZmlsZSBp cwpyZWFkLCB3aGlsZSBpZiB0aGUgXGZCXC1rXGZQIGlzIGdpdmVuLCB0aGUgZnVuY3Rpb24g d2lsbCBiZSBsb2FkZWQgYXMgaWYKXGZCS1NIX0FVVE9MT0FEXGZQIFxmSWlzXGZQIHNldC4g IFRoZXNlIG9wdGlvbnMgYWxzbyB0YWtlIHByZWNlZGVuY2Ugb3ZlcgphbnkgXGZCXC1rXGZQ IG9yIFxmQlwtelxmUCBvcHRpb25zIHNwZWNpZmllZCB0byB0aGUgXGZCYXV0b2xvYWRcZlAg YnVpbHRpbi4gSWYKbmVpdGhlciBvZiB0aGVzZSBvcHRpb25zIGlzIGdpdmVuLCB0aGUgZnVu Y3Rpb24gd2lsbCBiZSBsb2FkZWQgYXMKZGV0ZXJtaW5lZCBieSB0aGUgc2V0dGluZyBvZiB0 aGUgXGZCS1NIX0FVVE9MT0FEXGZQIG9wdGlvbiBhdCB0aGUgdGltZQp0aGUgY29tcGlsZWQg ZmlsZSBpcyByZWFkLgpcJi4uIG9ubHk6OiBtYW4KLnNwClRoZXNlIG9wdGlvbnMgbWF5IGFs c28gYXBwZWFyIGFzIG1hbnkgdGltZXMgYXMgbmVjZXNzYXJ5IGJldHdlZW4gdGhlIGxpc3Rl ZApcZkluYW1lXGZQcyB0byBzcGVjaWZ5IHRoZSBsb2FkaW5nIHN0eWxlIG9mIGFsbCBmb2xs b3dpbmcgZnVuY3Rpb25zLCB1cCB0bwp0aGUgbmV4dCBcZkJcLWtcZlAgb3IgXGZCXC16XGZQ XCYuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClRoZSBjcmVhdGVkIGZpbGUgYWx3YXlzIGNv bnRhaW5zIHR3byB2ZXJzaW9ucyBvZiB0aGUgY29tcGlsZWQKZm9ybWF0LCBvbmUgZm9yIGJp Z1wtZW5kaWFuIG1hY2hpbmVzIGFuZCBvbmUgZm9yIHNtYWxsXC1lbmRpYW4KbWFjaGluZXMu ICBUaGUgdXBzaG90IG9mIHRoaXMgaXMgdGhhdCB0aGUgY29tcGlsZWQgZmlsZSBpcyBtYWNo aW5lCmluZGVwZW5kZW50IGFuZCBpZiBpdCBpcyByZWFkIG9yIG1hcHBlZCwgb25seSBvbmUg aGFsZiBvZiB0aGUgZmlsZQppcyBhY3R1YWxseSB1c2VkIChhbmQgbWFwcGVkKS4KXCYuLiBv bmx5OjogbWFuCi5VTklOREVOVAouVU5JTkRFTlQKLnNwClxmQnpmb3JtYXRcZlAKLklOREVO VCAwLjAKLklOREVOVCAzLjUKU2VlIFRoZSB6c2gvenV0aWwgTW9kdWxlXCYuCi5VTklOREVO VAouVU5JTkRFTlQKLnNwClxmQnpmdHBcZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKU2Vl IFRoZSB6c2gvemZ0cCBNb2R1bGVcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCemxl XGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClNlZSBabGUgQnVpbHRpbnNcJi4KLlVOSU5E RU5UCi5VTklOREVOVAouc3AKXGZCem1vZGxvYWRcZlAgWyBcZkJcLWRMXGZQIF0gWyBcZkJc LXNcZlAgXSBbIC4uLiBdCi5zcApcZkJ6bW9kbG9hZCBcLUZcZlAgWyBcZkJcLWFsTG1lXGZQ IFxmQlwtUFxmUCBcZklwYXJhbVxmUCBdIFxmSW1vZHVsZVxmUCBbIFtcZkIrXC1cZlBdOnZh cjpcZklmZWF0dXJlXGZQIC4uLiBdCi5zcApcZkJ6bW9kbG9hZCBcLWVcZlAgWyBcZkJcLUFc ZlAgXSBbIC4uLiBdCi5zcApcZkJ6bW9kbG9hZFxmUCBbIFxmQlwtYVxmUCBbIFxmQlwtYmNw ZlxmUCBbIFxmQlwtSVxmUCBdIF0gXSBbIFxmQlwtaUxcZlAgXSAuLi4KLnNwClxmQnptb2Rs b2FkXGZQIFxmQlwtdVxmUCBbIFxmQlwtYWJjZHBmXGZQIFsgXGZCXC1JXGZQIF0gXSBbIFxm QlwtaUxcZlAgXSAuLi4KLnNwClxmQnptb2Rsb2FkXGZQIFxmQlwtQVxmUCBbIFxmQlwtTFxm UCBdIFsgXGZJbW9kYWxpYXNcZlBbXGZCPVxmUFxmSW1vZHVsZVxmUF0gLi4uIF0KLnNwClxm Qnptb2Rsb2FkXGZQIFxmQlwtUlxmUCBcZkltb2RhbGlhc1xmUCAuLi4KLklOREVOVCAwLjAK LklOREVOVCAzLjUKUGVyZm9ybXMgb3BlcmF0aW9ucyByZWxhdGluZyB0byB6c2hcKGFxcyBs b2FkYWJsZSBtb2R1bGVzLgpMb2FkaW5nIG9mIG1vZHVsZXMgd2hpbGUgdGhlIHNoZWxsIGlz IHJ1bm5pbmcgKFwoZ2FkeW5hbWljYWwgbG9hZGluZ1woYXEpIGlzIG5vdAphdmFpbGFibGUg b24gYWxsIG9wZXJhdGluZyBzeXN0ZW1zLCBvciBvbiBhbGwgaW5zdGFsbGF0aW9ucyBvbiBh IHBhcnRpY3VsYXIKb3BlcmF0aW5nIHN5c3RlbSwgYWx0aG91Z2ggdGhlIFxmQnptb2Rsb2Fk XGZQIGNvbW1hbmQgaXRzZWxmIGlzIGFsd2F5cwphdmFpbGFibGUgYW5kIGNhbiBiZSB1c2Vk IHRvIG1hbmlwdWxhdGUgbW9kdWxlcyBidWlsdCBpbnRvIHZlcnNpb25zIG9mIHRoZQpzaGVs bCBleGVjdXRhYmxlIHdpdGhvdXQgZHluYW1pY2FsIGxvYWRpbmcuCi5zcApXaXRob3V0IGFy Z3VtZW50cyB0aGUgbmFtZXMgb2YgYWxsIGN1cnJlbnRseSBsb2FkZWQgYmluYXJ5IG1vZHVs ZXMgYXJlCnByaW50ZWQuICBUaGUgXGZCXC1MXGZQIG9wdGlvbiBjYXVzZXMgdGhpcyBsaXN0 IHRvIGJlIGluIHRoZSBmb3JtIG9mIGEKc2VyaWVzIG9mIFxmQnptb2Rsb2FkXGZQIGNvbW1h bmRzLiAgRm9ybXMgd2l0aCBhcmd1bWVudHMgYXJlOgouc3AKXGZCem1vZGxvYWRcZlAgWyBc ZkJcLWlzXGZQIF0gXGZJbmFtZVxmUCAuLi4KLnNwClxmQnptb2Rsb2FkXGZQIFxmQlwtdVxm UCBbIFxmQlwtaVxmUCBdIFxmSW5hbWVcZlAgLi4uCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41 CkluIHRoZSBzaW1wbGVzdCBjYXNlLCBcZkJ6bW9kbG9hZFxmUCBsb2FkcyBhIGJpbmFyeSBt b2R1bGUuICBUaGUgbW9kdWxlIG11c3QKYmUgaW4gYSBmaWxlIHdpdGggYSBuYW1lIGNvbnNp c3Rpbmcgb2YgdGhlIHNwZWNpZmllZCBcZkluYW1lXGZQIGZvbGxvd2VkIGJ5CmEgc3RhbmRh cmQgc3VmZml4LCB1c3VhbGx5IFxmQlwmLnNvXGZQIChcZkJcJi5zbFxmUCBvbiBIUFVYKS4K SWYgdGhlIG1vZHVsZSB0byBiZSBsb2FkZWQgaXMgYWxyZWFkeSBsb2FkZWQgdGhlIGR1cGxp Y2F0ZSBtb2R1bGUgaXMKaWdub3JlZC4gIElmIFxmQnptb2Rsb2FkXGZQIGRldGVjdHMgYW4g aW5jb25zaXN0ZW5jeSwgc3VjaCBhcyBhbgppbnZhbGlkIG1vZHVsZSBuYW1lIG9yIGNpcmN1 bGFyIGRlcGVuZGVuY3kgbGlzdCwgdGhlIGN1cnJlbnQgY29kZSBibG9jayBpcwphYm9ydGVk LiAgSWYgaXQgaXMgYXZhaWxhYmxlLCB0aGUgbW9kdWxlIGlzIGxvYWRlZCBpZiBuZWNlc3Nh cnksIHdoaWxlIGlmIGl0CmlzIG5vdCBhdmFpbGFibGUsIG5vblwtemVybyBzdGF0dXMgaXMg c2lsZW50bHkgcmV0dXJuZWQuICBUaGUgb3B0aW9uClxmQlwtaVxmUCBpcyBhY2NlcHRlZCBm b3IgY29tcGF0aWJpbGl0eSBidXQgaGFzIG5vIGVmZmVjdC4KLnNwClRoZSBcZkluYW1lXGZQ ZCBtb2R1bGUgaXMgc2VhcmNoZWQgZm9yIGluIHRoZSBzYW1lIHdheSBhIGNvbW1hbmQgaXMs IHVzaW5nClxmQiRtb2R1bGVfcGF0aFxmUCBpbnN0ZWFkIG9mIFxmQiRwYXRoXGZQXCYuICBI b3dldmVyLCB0aGUgcGF0aCBzZWFyY2ggaXMKcGVyZm9ybWVkIGV2ZW4gd2hlbiB0aGUgbW9k dWxlIG5hbWUgY29udGFpbnMgYSBcZkIvXGZQLCB3aGljaCBpdCB1c3VhbGx5IGRvZXMuClRo ZXJlIGlzIG5vIHdheSB0byBwcmV2ZW50IHRoZSBwYXRoIHNlYXJjaC4KLnNwCklmIHRoZSBt b2R1bGUgc3VwcG9ydHMgZmVhdHVyZXMgKHNlZSBiZWxvdyksIFxmQnptb2Rsb2FkXGZQIHRy aWVzIHRvCmVuYWJsZSBhbGwgZmVhdHVyZXMgd2hlbiBsb2FkaW5nIGEgbW9kdWxlLiAgSWYg dGhlIG1vZHVsZSB3YXMgc3VjY2Vzc2Z1bGx5CmxvYWRlZCBidXQgbm90IGFsbCBmZWF0dXJl cyBjb3VsZCBiZSBlbmFibGVkLCBcZkJ6bW9kbG9hZFxmUCByZXR1cm5zIHN0YXR1cyAyLgou c3AKSWYgdGhlIG9wdGlvbiBcZkJcLXNcZlAgaXMgZ2l2ZW4sIG5vIGVycm9yIGlzIHByaW50 ZWQgaWYgdGhlIG1vZHVsZSB3YXMgbm90CmF2YWlsYWJsZSAodGhvdWdoIG90aGVyIGVycm9y cyBpbmRpY2F0aW5nIGEgcHJvYmxlbSB3aXRoIHRoZSBtb2R1bGUgYXJlCnByaW50ZWQpLiAg VGhlIHJldHVybiBzdGF0dXMgaW5kaWNhdGVzIGlmIHRoZSBtb2R1bGUgd2FzIGxvYWRlZC4g IFRoaXMKaXMgYXBwcm9wcmlhdGUgaWYgdGhlIGNhbGxlciBjb25zaWRlcnMgdGhlIG1vZHVs ZSBvcHRpb25hbC4KLnNwCldpdGggXGZCXC11XGZQLCBcZkJ6bW9kbG9hZFxmUCB1bmxvYWRz IG1vZHVsZXMuICBUaGUgc2FtZSBcZkluYW1lXGZQCm11c3QgYmUgZ2l2ZW4gdGhhdCB3YXMg Z2l2ZW4gd2hlbiB0aGUgbW9kdWxlIHdhcyBsb2FkZWQsIGJ1dCBpdCBpcyBub3QKbmVjZXNz YXJ5IGZvciB0aGUgbW9kdWxlIHRvIGV4aXN0IGluIHRoZSBmaWxlIHN5c3RlbS4KVGhlIFxm QlwtaVxmUCBvcHRpb24gc3VwcHJlc3NlcyB0aGUgZXJyb3IgaWYgdGhlIG1vZHVsZSBpcyBh bHJlYWR5CnVubG9hZGVkIChvciB3YXMgbmV2ZXIgbG9hZGVkKS4KLnNwCkVhY2ggbW9kdWxl IGhhcyBhIGJvb3QgYW5kIGEgY2xlYW51cCBmdW5jdGlvbi4gIFRoZSBtb2R1bGUKd2lsbCBu b3QgYmUgbG9hZGVkIGlmIGl0cyBib290IGZ1bmN0aW9uIGZhaWxzLiAgU2ltaWxhcmx5IGEg bW9kdWxlCmNhbiBvbmx5IGJlIHVubG9hZGVkIGlmIGl0cyBjbGVhbnVwIGZ1bmN0aW9uIHJ1 bnMgc3VjY2Vzc2Z1bGx5LgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJ6bW9kbG9hZCBc LUZcZlAgWyBcZkJcLWFsbUxlXGZQIFxmQlwtUFxmUCBcZklwYXJhbVxmUCBdIFxmSW1vZHVs ZVxmUCBbIFtcZkIrXC1cZlBdOnZhcjpcZklmZWF0dXJlXGZQIC4uLiBdCi5JTkRFTlQgMC4w Ci5JTkRFTlQgMy41ClxmQnptb2Rsb2FkIFwtRlxmUCBhbGxvd3MgbW9yZSBzZWxlY3RpdmUg Y29udHJvbCBvdmVyIHRoZSBmZWF0dXJlcyBwcm92aWRlZApieSBtb2R1bGVzLiAgV2l0aCBu byBvcHRpb25zIGFwYXJ0IGZyb20gXGZCXC1GXGZQLCB0aGUgbW9kdWxlIG5hbWVkClxmSW1v ZHVsZVxmUCBpcyBsb2FkZWQsIGlmIGl0IHdhcyBub3QgYWxyZWFkeSBsb2FkZWQsIGFuZCB0 aGUgbGlzdCBvZgpcZklmZWF0dXJlXGZQcyBpcyBzZXQgdG8gdGhlIHJlcXVpcmVkIHN0YXRl LiAgSWYgbm8KXGZJZmVhdHVyZVxmUHMgYXJlIHNwZWNpZmllZCwgdGhlIG1vZHVsZSBpcyBs b2FkZWQsIGlmIGl0IHdhcyBub3QgYWxyZWFkeQpsb2FkZWQsIGJ1dCB0aGUgc3RhdGUgb2Yg ZmVhdHVyZXMgaXMgdW5jaGFuZ2VkLiAgRWFjaCBmZWF0dXJlCm1heSBiZSBwcmVjZWRlZCBi eSBhIFxmQitcZlAgdG8gdHVybiB0aGUgZmVhdHVyZSBvbiwgb3IgXGZCXC1cZlAgdG8gdHVy biBpdApvZmY7IHRoZSBcZkIrXGZQIGlzIGFzc3VtZWQgaWYgbmVpdGhlciBjaGFyYWN0ZXIg aXMgcHJlc2VudC4KQW55IGZlYXR1cmUgbm90IGV4cGxpY2l0bHkgbWVudGlvbmVkIGlzIGxl ZnQgaW4gaXRzIGN1cnJlbnQgc3RhdGU7CmlmIHRoZSBtb2R1bGUgd2FzIG5vdCBwcmV2aW91 c2x5IGxvYWRlZCB0aGlzIG1lYW5zIGFueSBzdWNoIGZlYXR1cmVzIHdpbGwKcmVtYWluIGRp c2FibGVkLiAgVGhlIHJldHVybiBzdGF0dXMgaXMgemVybyBpZiBhbGwgZmVhdHVyZXMgd2Vy ZQpzZXQsIDEgaWYgdGhlIG1vZHVsZSBmYWlsZWQgdG8gbG9hZCwgYW5kIDIgaWYgc29tZSBm ZWF0dXJlcyBjb3VsZApub3QgYmUgc2V0IChmb3IgZXhhbXBsZSwgYSBwYXJhbWV0ZXIgY291 bGRuXChhcXQgYmUgYWRkZWQgYmVjYXVzZSB0aGVyZQp3YXMgYSBkaWZmZXJlbnQgcGFyYW1l dGVyIG9mIHRoZSBzYW1lIG5hbWUpIGJ1dCB0aGUgbW9kdWxlIHdhcyBsb2FkZWQuCi5zcApU aGUgc3RhbmRhcmQgZmVhdHVyZXMgYXJlIGJ1aWx0aW5zLCBjb25kaXRpb25zLCBwYXJhbWV0 ZXJzIGFuZCBtYXRoCmZ1bmN0aW9uczsgdGhlc2UgYXJlIGluZGljYXRlZCBieSB0aGUgcHJl Zml4IFxmQmI6XGZQLCBcZkJjOlxmUAooXGZCQzpcZlAgZm9yIGFuIGluZml4IGNvbmRpdGlv biksIFxmQnA6XGZQIGFuZCBcZkJmOlxmUCwgcmVzcGVjdGl2ZWx5LApmb2xsb3dlZCBieSB0 aGUgbmFtZSB0aGF0IHRoZSBjb3JyZXNwb25kaW5nIGZlYXR1cmUgd291bGQgaGF2ZSBpbiB0 aGUKc2hlbGwuICBGb3IgZXhhbXBsZSwgXGZCYjpzdHJmdGltZVxmUCBpbmRpY2F0ZXMgYSBi dWlsdGluIG5hbWVkClxmQnN0cmZ0aW1lXGZQIGFuZCBcZkJwOkVQT0NIU0VDT05EU1xmUCBp bmRpY2F0ZXMgYSBwYXJhbWV0ZXIgbmFtZWQKXGZCRVBPQ0hTRUNPTkRTXGZQXCYuICBUaGUg bW9kdWxlIG1heSBwcm92aWRlIG90aGVyIChcKGdhYWJzdHJhY3RcKGFxKSBmZWF0dXJlcyBv ZgppdHMgb3duIGFzIGluZGljYXRlZCBieSBpdHMgZG9jdW1lbnRhdGlvbjsgdGhlc2UgaGF2 ZSBubyBwcmVmaXguCi5zcApXaXRoIFxmQlwtbFxmUCBvciBcZkJcLUxcZlAsIGZlYXR1cmVz IHByb3ZpZGVkIGJ5IHRoZSBtb2R1bGUgYXJlIGxpc3RlZC4gIFdpdGgKXGZCXC1sXGZQIGFs b25lLCBhIGxpc3Qgb2YgZmVhdHVyZXMgdG9nZXRoZXIgd2l0aCB0aGVpciBzdGF0ZXMgaXMg c2hvd24sIG9uZQpmZWF0dXJlIHBlciBsaW5lLiAgV2l0aCBcZkJcLUxcZlAgYWxvbmUsIGEg XGZCem1vZGxvYWQgXC1GXGZQIGNvbW1hbmQgdGhhdCB3b3VsZApjYXVzZSBlbmFibGVkIGZl YXR1cmVzIG9mIHRoZSBtb2R1bGUgdG8gYmUgdHVybmVkIG9uIGlzIHNob3duLiAgV2l0aApc ZkJcLWxMXGZQLCBhIFxmQnptb2Rsb2FkIFwtRlxmUCBjb21tYW5kIHRoYXQgd291bGQgY2F1 c2UgYWxsIHRoZSBmZWF0dXJlcyB0byBiZQpzZXQgdG8gdGhlaXIgY3VycmVudCBzdGF0ZSBp cyBzaG93bi4gIElmIG9uZSBvZiB0aGVzZSBjb21iaW5hdGlvbnMgaXMgZ2l2ZW4Kd2l0aCB0 aGUgb3B0aW9uIFxmQlwtUFxmUCBcZklwYXJhbVxmUCB0aGVuIHRoZSBwYXJhbWV0ZXIgXGZJ cGFyYW1cZlAgaXMgc2V0IHRvIGFuCmFycmF5IG9mIGZlYXR1cmVzLCBlaXRoZXIgZmVhdHVy ZXMgdG9nZXRoZXIgd2l0aCB0aGVpciBzdGF0ZSBvciAoaWYKXGZCXC1MXGZQIGFsb25lIGlz IGdpdmVuKSBlbmFibGVkIGZlYXR1cmVzLgouc3AKV2l0aCB0aGUgb3B0aW9uIFxmQlwtTFxm UCB0aGUgbW9kdWxlIG5hbWUgbWF5IGJlIG9taXR0ZWQ7IHRoZW4gYSBsaXN0Cm9mIGFsbCBl bmFibGVkIGZlYXR1cmVzIGZvciBhbGwgbW9kdWxlcyBwcm92aWRpbmcgZmVhdHVyZXMgaXMg cHJpbnRlZAppbiB0aGUgZm9ybSBvZiBcZkJ6bW9kbG9hZCBcLUZcZlAgY29tbWFuZHMuICBJ ZiBcZkJcLWxcZlAgaXMgYWxzbyBnaXZlbiwKdGhlIHN0YXRlIG9mIGJvdGggZW5hYmxlZCBh bmQgZGlzYWJsZWQgZmVhdHVyZXMgaXMgb3V0cHV0IGluIHRoYXQgZm9ybS4KLnNwCkEgc2V0 IG9mIGZlYXR1cmVzIG1heSBiZSBwcm92aWRlZCB0b2dldGhlciB3aXRoIFxmQlwtbFxmUCBv ciBcZkJcLUxcZlAgYW5kIGEKbW9kdWxlIG5hbWU7IGluIHRoYXQgY2FzZSBvbmx5IHRoZSBz dGF0ZSBvZiB0aG9zZSBmZWF0dXJlcyBpcwpjb25zaWRlcmVkLiAgRWFjaCBmZWF0dXJlIG1h eSBiZSBwcmVjZWRlZCBieSBcZkIrXGZQIG9yIFxmQlwtXGZQIGJ1dCB0aGUKY2hhcmFjdGVy IGhhcyBubyBlZmZlY3QuICBJZiBubyBzZXQgb2YgZmVhdHVyZXMgaXMgcHJvdmlkZWQsIGFs bApmZWF0dXJlcyBhcmUgY29uc2lkZXJlZC4KLnNwCldpdGggXGZCXC1lXGZQLCB0aGUgY29t bWFuZCBmaXJzdCB0ZXN0cyB0aGF0IHRoZSBtb2R1bGUgaXMgbG9hZGVkOwppZiBpdCBpcyBu b3QsIHN0YXR1cyAxIGlzIHJldHVybmVkLiAgSWYgdGhlIG1vZHVsZSBpcyBsb2FkZWQsCnRo ZSBsaXN0IG9mIGZlYXR1cmVzIGdpdmVuIGFzIGFuIGFyZ3VtZW50IGlzIGV4YW1pbmVkLiAg QW55IGZlYXR1cmUKZ2l2ZW4gd2l0aCBubyBwcmVmaXggaXMgc2ltcGx5IHRlc3RlZCB0byBz ZWUgaWYgdGhlIG1vZHVsZSBwcm92aWRlcyBpdDsKYW55IGZlYXR1cmUgZ2l2ZW4gd2l0aCBh IHByZWZpeCBcZkIrXGZQIG9yIFxmQlwtXGZQIGlzIHRlc3RlZCB0bwpzZWUgaWYgaXMgcHJv dmlkZWQgYW5kIGluIHRoZSBnaXZlbiBzdGF0ZS4gIElmIHRoZSB0ZXN0cyBvbiBhbGwgZmVh dHVyZXMKaW4gdGhlIGxpc3Qgc3VjY2VlZCwgc3RhdHVzIDAgaXMgcmV0dXJuZWQsIGVsc2Ug c3RhdHVzIDEuCi5zcApXaXRoIFxmQlwtbVxmUCwgZWFjaCBlbnRyeSBpbiB0aGUgZ2l2ZW4g bGlzdCBvZiBmZWF0dXJlcyBpcyB0YWtlbgphcyBhIHBhdHRlcm4gdG8gYmUgbWF0Y2hlZCBh Z2FpbnN0IHRoZSBsaXN0IG9mIGZlYXR1cmVzIHByb3ZpZGVkCmJ5IHRoZSBtb2R1bGUuICBB biBpbml0aWFsIFxmQitcZlAgb3IgXGZCXC1cZlAgbXVzdCBiZSBnaXZlbiBleHBsaWNpdGx5 LgpUaGlzIG1heSBub3QgYmUgY29tYmluZWQgd2l0aCB0aGUgXGZCXC1hXGZQIG9wdGlvbiBh cyBhdXRvbG9hZHMgbXVzdApiZSBzcGVjaWZpZWQgZXhwbGljaXRseS4KLnNwCldpdGggXGZC XC1hXGZQLCB0aGUgZ2l2ZW4gbGlzdCBvZiBmZWF0dXJlcyBpcyBtYXJrZWQgZm9yIGF1dG9s b2FkIGZyb20KdGhlIHNwZWNpZmllZCBtb2R1bGUsIHdoaWNoIG1heSBub3QgeWV0IGJlIGxv YWRlZC4gIEFuIG9wdGlvbmFsIFxmQitcZlAKbWF5IGFwcGVhciBiZWZvcmUgdGhlIGZlYXR1 cmUgbmFtZS4gIElmIHRoZSBmZWF0dXJlIGlzIHByZWZpeGVkIHdpdGgKXGZCXC1cZlAsIGFu eSBleGlzdGluZyBhdXRvbG9hZCBpcyByZW1vdmVkLiAgVGhlIG9wdGlvbnMgXGZCXC1sXGZQ IGFuZCBcZkJcLUxcZlAKbWF5IGJlIHVzZWQgdG8gbGlzdCBhdXRvbG9hZHMuICBBdXRvbG9h ZGluZyBpcyBzcGVjaWZpYyB0byBpbmRpdmlkdWFsCmZlYXR1cmVzOyB3aGVuIHRoZSBtb2R1 bGUgaXMgbG9hZGVkIG9ubHkgdGhlIHJlcXVlc3RlZCBmZWF0dXJlIGlzCmVuYWJsZWQuICBB dXRvbG9hZCByZXF1ZXN0cyBhcmUgcHJlc2VydmVkIGlmIHRoZSBtb2R1bGUgaXMKc3Vic2Vx dWVudGx5IHVubG9hZGVkIHVudGlsIGFuIGV4cGxpY2l0IFxmQnptb2Rsb2FkIFwtRmFcZlAg XGZJbW9kdWxlXGZQClxmQlwtXGZQXGZJZmVhdHVyZVxmUCBpcyBpc3N1ZWQuICBJdCBpcyBu b3QgYW4gZXJyb3IgdG8gcmVxdWVzdCBhbiBhdXRvbG9hZApmb3IgYSBmZWF0dXJlIG9mIGEg bW9kdWxlIHRoYXQgaXMgYWxyZWFkeSBsb2FkZWQuCi5zcApXaGVuIHRoZSBtb2R1bGUgaXMg bG9hZGVkIGVhY2ggYXV0b2xvYWQgaXMgY2hlY2tlZCBhZ2FpbnN0IHRoZSBmZWF0dXJlcwph Y3R1YWxseSBwcm92aWRlZCBieSB0aGUgbW9kdWxlOyBpZiB0aGUgZmVhdHVyZSBpcyBub3Qg cHJvdmlkZWQgdGhlCmF1dG9sb2FkIHJlcXVlc3QgaXMgZGVsZXRlZC4gIEEgd2FybmluZyBt ZXNzYWdlIGlzIG91dHB1dDsgaWYgdGhlCm1vZHVsZSBpcyBiZWluZyBsb2FkZWQgdG8gcHJv dmlkZSBhIGRpZmZlcmVudCBmZWF0dXJlLCBhbmQgdGhhdCBhdXRvbG9hZAppcyBzdWNjZXNz ZnVsLCB0aGVyZSBpcyBubyBlZmZlY3Qgb24gdGhlIHN0YXR1cyBvZiB0aGUgY3VycmVudCBj b21tYW5kLgpJZiB0aGUgbW9kdWxlIGlzIGFscmVhZHkgbG9hZGVkIGF0IHRoZSB0aW1lIHdo ZW4gXGZCem1vZGxvYWQgXC1GYVxmUCBpcwpydW4sIGFuIGVycm9yIG1lc3NhZ2UgaXMgcHJp bnRlZCBhbmQgc3RhdHVzIDEgcmV0dXJuZWQuCi5zcApcZkJ6bW9kbG9hZCBcLUZhXGZQIGNh biBiZSB1c2VkIHdpdGggdGhlIFxmQlwtbFxmUCwgXGZCXC1MXGZQLCBcZkJcLWVcZlAgYW5k ClxmQlwtUFxmUCBvcHRpb25zIGZvciBsaXN0aW5nIGFuZCB0ZXN0aW5nIHRoZSBleGlzdGVu Y2Ugb2YgYXV0b2xvYWRhYmxlCmZlYXR1cmVzLiAgSW4gdGhpcyBjYXNlIFxmQlwtbFxmUCBp cyBpZ25vcmVkIGlmIFxmQlwtTFxmUCBpcyBzcGVjaWZpZWQuClxmQnptb2Rsb2FkIFwtRmFM XGZQIHdpdGggbm8gbW9kdWxlIG5hbWUgbGlzdHMgYXV0b2xvYWRzIGZvciBhbGwgbW9kdWxl cy4KLnNwCk5vdGUgdGhhdCBvbmx5IHN0YW5kYXJkIGZlYXR1cmVzIGFzIGRlc2NyaWJlZCBh Ym92ZSBjYW4gYmUgYXV0b2xvYWRlZDsKb3RoZXIgZmVhdHVyZXMgcmVxdWlyZSB0aGUgbW9k dWxlIHRvIGJlIGxvYWRlZCBiZWZvcmUgZW5hYmxpbmcuCi5VTklOREVOVAouVU5JTkRFTlQK LnNwClxmQnptb2Rsb2FkXGZQIFxmQlwtZFxmUCBbIFxmQlwtTFxmUCBdIFsgXGZJbmFtZVxm UCBdCi5zcApcZkJ6bW9kbG9hZFxmUCBcZkJcLWRcZlAgXGZJbmFtZVxmUCBcZklkZXBcZlAg Li4uCi5zcApcZkJ6bW9kbG9hZFxmUCBcZkJcLXVkXGZQIFxmSW5hbWVcZlAgWyBcZklkZXBc ZlAgLi4uIF0KLklOREVOVCAwLjAKLklOREVOVCAzLjUKVGhlIFxmQlwtZFxmUCBvcHRpb24g Y2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBtb2R1bGUgZGVwZW5kZW5jaWVzLiAgVGhlIG1vZHVs ZXMKbmFtZWQgaW4gdGhlIHNlY29uZCBhbmQgc3Vic2VxdWVudCBhcmd1bWVudHMgd2lsbCBi ZSBsb2FkZWQgYmVmb3JlIHRoZQptb2R1bGUgbmFtZWQgaW4gdGhlIGZpcnN0IGFyZ3VtZW50 Lgouc3AKV2l0aCBcZkJcLWRcZlAgYW5kIG9uZSBhcmd1bWVudCwgYWxsIGRlcGVuZGVuY2ll cyBmb3IgdGhhdCBtb2R1bGUgYXJlIGxpc3RlZC4KV2l0aCBcZkJcLWRcZlAgYW5kIG5vIGFy Z3VtZW50cywgYWxsIG1vZHVsZSBkZXBlbmRlbmNpZXMgYXJlIGxpc3RlZC4gIFRoaXMKbGlz dGluZyBpcyBieSBkZWZhdWx0IGluIGEgTWFrZWZpbGVcLWxpa2UgZm9ybWF0LiAgVGhlIFxm QlwtTFxmUCBvcHRpb24KY2hhbmdlcyB0aGlzIGZvcm1hdCB0byBhIGxpc3Qgb2YgXGZCem1v ZGxvYWQgXC1kXGZQIGNvbW1hbmRzLgouc3AKSWYgXGZCXC1kXGZQIGFuZCBcZkJcLXVcZlAg YXJlIGJvdGggdXNlZCwgZGVwZW5kZW5jaWVzIGFyZSByZW1vdmVkLiAgSWYgb25seSBvbmUK YXJndW1lbnQgaXMgZ2l2ZW4sIGFsbCBkZXBlbmRlbmNpZXMgZm9yIHRoYXQgbW9kdWxlIGFy ZSByZW1vdmVkLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJ6bW9kbG9hZFxmUCBcZkJc LWFiXGZQIFsgXGZCXC1MXGZQIF0KLnNwClxmQnptb2Rsb2FkXGZQIFxmQlwtYWJcZlAgWyBc ZkJcLWlcZlAgXSBcZkluYW1lXGZQIFsgXGZJYnVpbHRpblxmUCAuLi4gXQouc3AKXGZCem1v ZGxvYWRcZlAgXGZCXC11YlxmUCBbIFxmQlwtaVxmUCBdIFxmSWJ1aWx0aW5cZlAgLi4uCi5J TkRFTlQgMC4wCi5JTkRFTlQgMy41ClRoZSBcZkJcLWFiXGZQIG9wdGlvbiBkZWZpbmVzIGF1 dG9sb2FkZWQgYnVpbHRpbnMuICBJdCBkZWZpbmVzIHRoZSBzcGVjaWZpZWQKXGZJYnVpbHRp blxmUHMuICBXaGVuIGFueSBvZiB0aG9zZSBidWlsdGlucyBpcyBjYWxsZWQsIHRoZSBtb2R1 bGUgc3BlY2lmaWVkCmluIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBsb2FkZWQgYW5kIGFsbCBp dHMgZmVhdHVyZXMgYXJlIGVuYWJsZWQgKGZvcgpzZWxlY3RpdmUgY29udHJvbCBvZiBmZWF0 dXJlcyB1c2UgXGZCem1vZGxvYWQgXC1GIFwtYVxmUCBhcyBkZXNjcmliZWQKYWJvdmUpLiAg SWYgb25seSB0aGUgXGZJbmFtZVxmUCBpcyBnaXZlbiwgb25lIGJ1aWx0aW4gaXMgZGVmaW5l ZCwgd2l0aAp0aGUgc2FtZSBuYW1lIGFzIHRoZSBtb2R1bGUuICBcZkJcLWlcZlAgc3VwcHJl c3NlcyB0aGUgZXJyb3IgaWYgdGhlIGJ1aWx0aW4KaXMgYWxyZWFkeSBkZWZpbmVkIG9yIGF1 dG9sb2FkZWQsIGJ1dCBub3QgaWYgYW5vdGhlciBidWlsdGluIG9mIHRoZQpzYW1lIG5hbWUg aXMgYWxyZWFkeSBkZWZpbmVkLgouc3AKV2l0aCBcZkJcLWFiXGZQIGFuZCBubyBhcmd1bWVu dHMsIGFsbCBhdXRvbG9hZGVkIGJ1aWx0aW5zIGFyZSBsaXN0ZWQsIHdpdGggdGhlCm1vZHVs ZSBuYW1lIChpZiBkaWZmZXJlbnQpIHNob3duIGluIHBhcmVudGhlc2VzIGFmdGVyIHRoZSBi dWlsdGluIG5hbWUuClRoZSBcZkJcLUxcZlAgb3B0aW9uIGNoYW5nZXMgdGhpcyBmb3JtYXQg dG8gYSBsaXN0IG9mIFxmQnptb2Rsb2FkIFwtYVxmUApjb21tYW5kcy4KLnNwCklmIFxmQlwt YlxmUCBpcyB1c2VkIHRvZ2V0aGVyIHdpdGggdGhlIFxmQlwtdVxmUCBvcHRpb24sIGl0IHJl bW92ZXMgYnVpbHRpbnMKcHJldmlvdXNseSBkZWZpbmVkIHdpdGggXGZCXC1hYlxmUFwmLiAg VGhpcyBpcyBvbmx5IHBvc3NpYmxlIGlmIHRoZSBidWlsdGluIGlzCm5vdCB5ZXQgbG9hZGVk LiAgXGZCXC1pXGZQIHN1cHByZXNzZXMgdGhlIGVycm9yIGlmIHRoZSBidWlsdGluIGlzIGFs cmVhZHkKcmVtb3ZlZCAob3IgbmV2ZXIgZXhpc3RlZCkuCi5zcApBdXRvbG9hZCByZXF1ZXN0 cyBhcmUgcmV0YWluZWQgaWYgdGhlIG1vZHVsZSBpcyBzdWJzZXF1ZW50bHkgdW5sb2FkZWQK dW50aWwgYW4gZXhwbGljaXQgXGZCem1vZGxvYWQgXC11YlxmUCBcZklidWlsdGluXGZQIGlz IGlzc3VlZC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCem1vZGxvYWRcZlAgXGZCXC1h Y1xmUCBbIFxmQlwtSUxcZlAgXQouc3AKXGZCem1vZGxvYWRcZlAgXGZCXC1hY1xmUCBbIFxm QlwtaUlcZlAgXSBcZkluYW1lXGZQIFsgXGZJY29uZFxmUCAuLi4gXQouc3AKXGZCem1vZGxv YWRcZlAgXGZCXC11Y1xmUCBbIFxmQlwtaUlcZlAgXSBcZkljb25kXGZQIC4uLgouSU5ERU5U IDAuMAouSU5ERU5UIDMuNQpUaGUgXGZCXC1hY1xmUCBvcHRpb24gaXMgdXNlZCB0byBkZWZp bmUgYXV0b2xvYWRlZCBjb25kaXRpb24gY29kZXMuIFRoZQpcZkljb25kXGZQIHN0cmluZ3Mg Z2l2ZSB0aGUgbmFtZXMgb2YgdGhlIGNvbmRpdGlvbnMgZGVmaW5lZCBieSB0aGUKbW9kdWxl LiBUaGUgb3B0aW9uYWwgXGZCXC1JXGZQIG9wdGlvbiBpcyB1c2VkIHRvIGRlZmluZSBpbmZp eCBjb25kaXRpb24KbmFtZXMuIFdpdGhvdXQgdGhpcyBvcHRpb24gcHJlZml4IGNvbmRpdGlv biBuYW1lcyBhcmUgZGVmaW5lZC4KLnNwCklmIGdpdmVuIG5vIGNvbmRpdGlvbiBuYW1lcywg YWxsIGRlZmluZWQgbmFtZXMgYXJlIGxpc3RlZCAoYXMgYSBzZXJpZXMgb2YKXGZCem1vZGxv YWRcZlAgY29tbWFuZHMgaWYgdGhlIFxmQlwtTFxmUCBvcHRpb24gaXMgZ2l2ZW4pLgouc3AK VGhlIFxmQlwtdWNcZlAgb3B0aW9uIHJlbW92ZXMgZGVmaW5pdGlvbnMgZm9yIGF1dG9sb2Fk ZWQgY29uZGl0aW9ucy4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCem1vZGxvYWRcZlAg XGZCXC1hcFxmUCBbIFxmQlwtTFxmUCBdCi5zcApcZkJ6bW9kbG9hZFxmUCBcZkJcLWFwXGZQ IFsgXGZCXC1pXGZQIF0gXGZJbmFtZVxmUCBbIFxmSXBhcmFtZXRlclxmUCAuLi4gXQouc3AK XGZCem1vZGxvYWRcZlAgXGZCXC11cFxmUCBbIFxmQlwtaVxmUCBdIFxmSXBhcmFtZXRlclxm UCAuLi4KLklOREVOVCAwLjAKLklOREVOVCAzLjUKVGhlIFxmQlwtcFxmUCBvcHRpb24gaXMg bGlrZSB0aGUgXGZCXC1iXGZQIGFuZCBcZkJcLWNcZlAgb3B0aW9ucywgYnV0IG1ha2VzClxm Qnptb2Rsb2FkXGZQIHdvcmsgb24gYXV0b2xvYWRlZCBwYXJhbWV0ZXJzIGluc3RlYWQuCi5V TklOREVOVAouVU5JTkRFTlQKLnNwClxmQnptb2Rsb2FkXGZQIFxmQlwtYWZcZlAgWyBcZkJc LUxcZlAgXQouc3AKXGZCem1vZGxvYWRcZlAgXGZCXC1hZlxmUCBbIFxmQlwtaVxmUCBdIFxm SW5hbWVcZlAgWyBcZklmdW5jdGlvblxmUCAuLi4gXQouc3AKXGZCem1vZGxvYWRcZlAgXGZC XC11ZlxmUCBbIFxmQlwtaVxmUCBdIFxmSWZ1bmN0aW9uXGZQIC4uLgouSU5ERU5UIDAuMAou SU5ERU5UIDMuNQpUaGUgXGZCXC1mXGZQIG9wdGlvbiBpcyBsaWtlIHRoZSBcZkJcLWJcZlAs IFxmQlwtcFxmUCwgYW5kIFxmQlwtY1xmUCBvcHRpb25zLCBidXQKbWFrZXMgXGZCem1vZGxv YWRcZlAgd29yayBvbiBhdXRvbG9hZGVkIG1hdGggZnVuY3Rpb25zIGluc3RlYWQuCi5VTklO REVOVAouVU5JTkRFTlQKLnNwClxmQnptb2Rsb2FkXGZQIFxmQlwtYVxmUCBbIFxmQlwtTFxm UCBdCi5zcApcZkJ6bW9kbG9hZFxmUCBcZkJcLWFcZlAgWyBcZkJcLWlcZlAgXSBcZkluYW1l XGZQIFsgXGZJYnVpbHRpblxmUCAuLi4gXQouc3AKXGZCem1vZGxvYWRcZlAgXGZCXC11YVxm UCBbIFxmQlwtaVxmUCBdIFxmSWJ1aWx0aW5cZlAgLi4uCi5JTkRFTlQgMC4wCi5JTkRFTlQg My41CkVxdWl2YWxlbnQgdG8gXGZCXC1hYlxmUCBhbmQgXGZCXC11YlxmUFwmLgouVU5JTkRF TlQKLlVOSU5ERU5UCi5zcApcZkJ6bW9kbG9hZCBcLWVcZlAgWyBcZkJcLUFcZlAgXSBbIFxm SXN0cmluZ1xmUCAuLi4gXQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpUaGUgXGZCXC1lXGZQ IG9wdGlvbiB3aXRob3V0IGFyZ3VtZW50cyBsaXN0cyBhbGwgbG9hZGVkIG1vZHVsZXM7IGlm IHRoZSBcZkJcLUFcZlAKb3B0aW9uIGlzIGFsc28gZ2l2ZW4sIG1vZHVsZSBhbGlhc2VzIGNv cnJlc3BvbmRpbmcgdG8gbG9hZGVkIG1vZHVsZXMgYXJlCmFsc28gc2hvd24uICBJZiBhcmd1 bWVudHMgYXJlIHByb3ZpZGVkLCBub3RoaW5nIGlzIHByaW50ZWQ7CnRoZSByZXR1cm4gc3Rh dHVzIGlzIHNldCB0byB6ZXJvIGlmIGFsbCBcZklzdHJpbmdcZlBzIGdpdmVuIGFzIGFyZ3Vt ZW50cwphcmUgbmFtZXMgb2YgbG9hZGVkIG1vZHVsZXMgYW5kIHRvIG9uZSBpZiBhdCBsZWFz dCBvbiBcZklzdHJpbmdcZlAgaXMgbm90CnRoZSBuYW1lIG9mIGEgbG9hZGVkIG1vZHVsZS4g IFRoaXMgY2FuIGJlIHVzZWQgdG8gdGVzdCBmb3IgdGhlCmF2YWlsYWJpbGl0eSBvZiB0aGlu Z3MgaW1wbGVtZW50ZWQgYnkgbW9kdWxlcy4gIEluIHRoaXMgY2FzZSwgYW55CmFsaWFzZXMg YXJlIGF1dG9tYXRpY2FsbHkgcmVzb2x2ZWQgYW5kIHRoZSBcZkJcLUFcZlAgZmxhZyBpcyBu b3QgdXNlZC4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCem1vZGxvYWRcZlAgXGZCXC1B XGZQIFsgXGZCXC1MXGZQIF0gWyBcZkltb2RhbGlhc1xmUFtcZkI9XGZQXGZJbW9kdWxlXGZQ XSAuLi4gXQouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpGb3IgZWFjaCBhcmd1bWVudCwgaWYg Ym90aCBcZkltb2RhbGlhc1xmUCBhbmQgXGZJbW9kdWxlXGZQIGFyZSBnaXZlbiwKZGVmaW5l IFxmSW1vZGFsaWFzXGZQIHRvIGJlIGFuIGFsaWFzIGZvciB0aGUgbW9kdWxlIFxmSW1vZHVs ZVxmUFwmLgpJZiB0aGUgbW9kdWxlIFxmSW1vZGFsaWFzXGZQIGlzIGV2ZXIgc3Vic2VxdWVu dGx5IHJlcXVlc3RlZCwgZWl0aGVyIHZpYSBhCmNhbGwgdG8gXGZCem1vZGxvYWRcZlAgb3Ig aW1wbGljaXRseSwgdGhlIHNoZWxsIHdpbGwgYXR0ZW1wdCB0byBsb2FkClxmSW1vZHVsZVxm UCBpbnN0ZWFkLiAgSWYgXGZJbW9kdWxlXGZQIGlzIG5vdCBnaXZlbiwgc2hvdyB0aGUgZGVm aW5pdGlvbiBvZgpcZkltb2RhbGlhc1xmUFwmLiAgSWYgbm8gYXJndW1lbnRzIGFyZSBnaXZl biwgbGlzdCBhbGwgZGVmaW5lZCBtb2R1bGUgYWxpYXNlcy4KV2hlbiBsaXN0aW5nLCBpZiB0 aGUgXGZCXC1MXGZQIGZsYWcgd2FzIGFsc28gZ2l2ZW4sIGxpc3QgdGhlIGRlZmluaXRpb24g YXMgYQpcZkJ6bW9kbG9hZFxmUCBjb21tYW5kIHRvIHJlY3JlYXRlIHRoZSBhbGlhcy4KLnNw ClRoZSBleGlzdGVuY2Ugb2YgYWxpYXNlcyBmb3IgbW9kdWxlcyBpcyBjb21wbGV0ZWx5IGlu ZGVwZW5kZW50IG9mIHdoZXRoZXIKdGhlIG5hbWUgcmVzb2x2ZWQgaXMgYWN0dWFsbHkgbG9h ZGVkIGFzIGEgbW9kdWxlOiB3aGlsZSB0aGUgYWxpYXMgZXhpc3RzLApsb2FkaW5nIGFuZCB1 bmxvYWRpbmcgdGhlIG1vZHVsZSB1bmRlciBhbnkgYWxpYXMgaGFzIGV4YWN0bHkgdGhlIHNh bWUKZWZmZWN0IGFzIHVzaW5nIHRoZSByZXNvbHZlZCBuYW1lLCBhbmQgZG9lcyBub3QgYWZm ZWN0IHRoZSBjb25uZWN0aW9uCmJldHdlZW4gdGhlIGFsaWFzIGFuZCB0aGUgcmVzb2x2ZWQg bmFtZSB3aGljaCBjYW4gYmUgcmVtb3ZlZCBlaXRoZXIgYnkKXGZCem1vZGxvYWQgXC1SXGZQ IG9yIGJ5IHJlZGVmaW5pbmcgdGhlIGFsaWFzLiAgQ2hhaW5zIG9mIGFsaWFzZXMgKGkuZS4g d2hlcmUKdGhlIGZpcnN0IHJlc29sdmVkIG5hbWUgaXMgaXRzZWxmIGFuIGFsaWFzKSBhcmUg dmFsaWQgc28gbG9uZyBhcyB0aGVzZSBhcmUKbm90IGNpcmN1bGFyLiAgQXMgdGhlIGFsaWFz ZXMgdGFrZSB0aGUgc2FtZSBmb3JtYXQgYXMgbW9kdWxlIG5hbWVzLCB0aGV5Cm1heSBpbmNs dWRlIHBhdGggc2VwYXJhdG9yczogIGluIHRoaXMgY2FzZSwgdGhlcmUgaXMgbm8gcmVxdWly ZW1lbnQgZm9yIGFueQpwYXJ0IG9mIHRoZSBwYXRoIG5hbWVkIHRvIGV4aXN0IGFzIHRoZSBh bGlhcyB3aWxsIGJlIHJlc29sdmVkIGZpcnN0LiAgRm9yCmV4YW1wbGUsIFxmQmFueS9vbGQv YWxpYXNcZlAgaXMgYWx3YXlzIGEgdmFsaWQgYWxpYXMuCi5zcApEZXBlbmRlbmNpZXMgYWRk ZWQgdG8gYWxpYXNlZCBtb2R1bGVzIGFyZSBhY3R1YWxseSBhZGRlZCB0byB0aGUgcmVzb2x2 ZWQKbW9kdWxlOyB0aGVzZSByZW1haW4gaWYgdGhlIGFsaWFzIGlzIHJlbW92ZWQuICBJdCBp cyB2YWxpZCB0byBjcmVhdGUgYW4KYWxpYXMgd2hvc2UgbmFtZSBpcyBvbmUgb2YgdGhlIHN0 YW5kYXJkIHNoZWxsIG1vZHVsZXMgYW5kIHdoaWNoIHJlc29sdmVzIHRvCmEgZGlmZmVyZW50 IG1vZHVsZS4gIEhvd2V2ZXIsIGlmIGEgbW9kdWxlIGhhcyBkZXBlbmRlbmNpZXMsIGl0Cndp bGwgbm90IGJlIHBvc3NpYmxlIHRvIHVzZSB0aGUgbW9kdWxlIG5hbWUgYXMgYW4gYWxpYXMg YXMgdGhlIG1vZHVsZSB3aWxsCmFscmVhZHkgYmUgbWFya2VkIGFzIGEgbG9hZGFibGUgbW9k dWxlIGluIGl0cyBvd24gcmlnaHQuCi5zcApBcGFydCBmcm9tIHRoZSBhYm92ZSwgYWxpYXNl cyBjYW4gYmUgdXNlZCBpbiB0aGUgXGZCem1vZGxvYWRcZlAgY29tbWFuZAphbnl3aGVyZSBt b2R1bGUgbmFtZXMgYXJlIHJlcXVpcmVkLiAgSG93ZXZlciwgYWxpYXNlcyB3aWxsIG5vdCBi ZQpzaG93biBpbiBsaXN0cyBvZiBsb2FkZWQgbW9kdWxlcyB3aXRoIGEgYmFyZSBcZkJ6bW9k bG9hZFxmUFwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJ6bW9kbG9hZFxmUCBcZkJc LVJcZlAgXGZJbW9kYWxpYXNcZlAgLi4uCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41CkZvciBl YWNoIFxmSW1vZGFsaWFzXGZQIGFyZ3VtZW50IHRoYXQgd2FzIHByZXZpb3VzbHkgZGVmaW5l ZCBhcyBhIG1vZHVsZQphbGlhcyB2aWEgXGZCem1vZGxvYWQgXC1BXGZQLCBkZWxldGUgdGhl IGFsaWFzLiAgSWYgYW55IHdhcyBub3QgZGVmaW5lZCwgYW4KZXJyb3IgaXMgY2F1c2VkIGFu ZCB0aGUgcmVtYWluZGVyIG9mIHRoZSBsaW5lIGlzIGlnbm9yZWQuCi5VTklOREVOVAouVU5J TkRFTlQKLnNwCk5vdGUgdGhhdCBcZkJ6c2hcZlAgbWFrZXMgbm8gZGlzdGluY3Rpb24gYmV0 d2VlbiBtb2R1bGVzIHRoYXQgd2VyZSBsaW5rZWQKaW50byB0aGUgc2hlbGwgYW5kIG1vZHVs ZXMgdGhhdCBhcmUgbG9hZGVkIGR5bmFtaWNhbGx5LiBJbiBib3RoIGNhc2VzCnRoaXMgYnVp bHRpbiBjb21tYW5kIGhhcyB0byBiZSB1c2VkIHRvIG1ha2UgYXZhaWxhYmxlIHRoZSBidWls dGlucyBhbmQKb3RoZXIgdGhpbmdzIGRlZmluZWQgYnkgbW9kdWxlcyAodW5sZXNzIHRoZSBt b2R1bGUgaXMgYXV0b2xvYWRlZCBvbgp0aGVzZSBkZWZpbml0aW9ucykuIFRoaXMgaXMgdHJ1 ZSBldmVuIGZvciBzeXN0ZW1zIHRoYXQgZG9uXChhcXQgc3VwcG9ydApkeW5hbWljIGxvYWRp bmcgb2YgbW9kdWxlcy4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCenBhcnNlb3B0c1xm UAouSU5ERU5UIDAuMAouSU5ERU5UIDMuNQpTZWUgVGhlIHpzaC96dXRpbCBNb2R1bGVcJi4K LlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCenByb2ZcZlAKLklOREVOVCAwLjAKLklOREVO VCAzLjUKU2VlIFRoZSB6c2gvenByb2YgTW9kdWxlXCYuCi5VTklOREVOVAouVU5JTkRFTlQK LnNwClxmQnpwdHlcZlAKLklOREVOVCAwLjAKLklOREVOVCAzLjUKU2VlIFRoZSB6c2gvenB0 eSBNb2R1bGVcJi4KLlVOSU5ERU5UCi5VTklOREVOVAouc3AKXGZCenJlZ2V4cGFyc2VcZlAK LklOREVOVCAwLjAKLklOREVOVCAzLjUKU2VlIFRoZSB6c2gvenV0aWwgTW9kdWxlXCYuCi5V TklOREVOVAouVU5JTkRFTlQKLnNwClxmQnpzb2NrZXRcZlAKLklOREVOVCAwLjAKLklOREVO VCAzLjUKU2VlIFRoZSB6c2gvbmV0L3NvY2tldCBNb2R1bGVcJi4KLlVOSU5ERU5UCi5VTklO REVOVAouc3AKXGZCenN0eWxlXGZQCi5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClNlZSBUaGUg enNoL3p1dGlsIE1vZHVsZVwmLgouVU5JTkRFTlQKLlVOSU5ERU5UCi5zcApcZkJ6dGNwXGZQ Ci5JTkRFTlQgMC4wCi5JTkRFTlQgMy41ClNlZSBUaGUgenNoL25ldC90Y3AgTW9kdWxlXCYu Ci5VTklOREVOVAouVU5JTkRFTlQKLlNIIEFVVEhPUgpac2ggRGV2ZWxvcG1lbnQgR3JvdXAK LlNIIENPUFlSSUdIVAoxOTkw4oCTMjAyNiwgWnNoIERldmVsb3BtZW50IEdyb3VwCi5cIiBH ZW5lcmF0ZWQgYnkgZG9jdXRpbHMgbWFucGFnZSB3cml0ZXIuCi4K --------------o3m0dWJvu0nmtjlzoa11pQQa Content-Type: text/plain; charset=UTF-8; name="yodl-to-rst-guide" Content-Disposition: attachment; filename="yodl-to-rst-guide" Content-Transfer-Encoding: base64 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpZT0RMIFRPIFJFU1RS VUNUVVJFRFRFWFQgRk9SIFpTSCBXUklURVJTCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KCkF1ZGllbmNlOiBwZW9wbGUgd2hvIGFscmVhZHkgd3JpdGUgenNo IGRvY3VtZW50YXRpb24gaW4gWW9kbCAoRG9jLyoueW8sCkRvYy9ac2gvKi55bykgYW5kIG5l ZWQgdG8gZWRpdCBvciByZXZpZXcgdGhlIHJlU3RydWN0dXJlZFRleHQgc291cmNlcwphZnRl ciB0aGUgYWxsLWF0LW9uY2UgZm9ybWF0IGN1dG92ZXIuCgpOZXcgZGV2ZWxvcGVycyBzaG91 bGQgdXNlIEV0Yy96c2gtZGV2ZWxvcG1lbnQtZ3VpZGUgKERvY3VtZW50YXRpb24pCmluc3Rl YWQ7IHRoYXQgZG9jdW1lbnQgdHJlYXRzIHJTVCBhcyB0aGUgb25seSBmb3JtYXQgb2YgdHJ1 dGggYW5kIGRvZXMKbm90IGFzc3VtZSBZb2RsLgoKR2VuZXJhbCBwcmltZXJzIChyU1QgaXRz ZWxmLCBub3QgenNoLXNwZWNpZmljKToKCiogaHR0cHM6Ly9kb2N1dGlscy5zb3VyY2Vmb3Jn ZS5pby9kb2NzL3VzZXIvcnN0L3F1aWNrc3RhcnQuaHRtbAoqIGh0dHBzOi8vd3d3LnNwaGlu eC1kb2Mub3JnL2VuL21hc3Rlci91c2FnZS9yZXN0cnVjdHVyZWR0ZXh0L2Jhc2ljcy5odG1s CgoKV2hhdCBjaGFuZ2VkIGluIG9uZSBzZW50ZW5jZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCgpZb3UgdXNlZCB0byBlZGl0IC55byBtYWNyb3M7IHRoZSBidWlsZCByYW4geW9k bCB3aXRoIHptYW4venRleGkgYmFja2VuZHMuCllvdSBub3cgZWRpdCAucnN0OyBTcGhpbngg YnVpbGRzIG1hbiwgSFRNTCwgYW5kIFRleGluZm8uICBUaGVyZSBpcyBubwpncmFkdWFsIHBl ci1jaGFwdGVyIG1peDogVGV4aW5mbyBhbmQgdGhlIHJlc3Qgb2YgdGhlIG1hbnVhbCBzaGFy ZSBvbmUKc291cmNlIHRyZWUsIHNvIHRoZSBjdXRvdmVyIGlzIHdob2xlc2FsZS4KCgpNYWNy byBtYXAKLS0tLS0tLS0tCgpZb2RsICAgICAgICAgICAgICAgICAgICByZVN0cnVjdHVyZWRU ZXh0Ci0tLS0tICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0KZW0odGV4dCkg ICAgICAgICAgICAgICAgOmVtcGhhc2lzOmB0ZXh0YApiZih0ZXh0KSAgICAgICAgICAgICAg ICA6c3Ryb25nOmB0ZXh0YAp0dCh0ZXh0KSAgICAgICAgICAgICAgICBgYHRleHRgYAp2YXIo bmFtZSkgICAgICAgICAgICAgICA6dmFyOmBuYW1lYAp1cmVmKHVybCkgICAgICAgICAgICAg ICB1cmwgb3IgYGxhYmVsIDx1cmw+YF8KdXJsKHRleHQpKHVybCkgICAgICAgICAgYHRleHQg PHVybD5gXwptYW5yZWYobmFtZSkoc2VjdCkgICAgICA6bWFucGFnZTpgbmFtZShzZWN0KWAK em1hbnJlZihuYW1lKSAgICAgICAgICAgOm1hbnBhZ2U6YG5hbWUoMSlgCm5vZGVyZWYobGFi ZWwpICAgICAgICAgIDpyZWY6YGxhYmVsYApzZWN0cmVmKHRleHQpKGxhYmVsKSAgICA6cmVm OmBsYWJlbGAgIChsaW5rIHRleHQgZnJvbSB0aGUgdGFyZ2V0IHRpdGxlLAogICAgICAgICAg ICAgICAgICAgICAgICBvciA6cmVmOmB0ZXh0IDxsYWJlbD5gIGlmIHlvdSBuZWVkIGN1c3Rv bSB0ZXh0KQphbmNob3IobGFiZWwpIC8gICAgICAgICAuLiBfbGFiZWw6CiAgbGFiZWwobGFi ZWwpCgpjaGFwdGVyKHRpdGxlKSAgICAgICAgICB0aXRsZQogICAgICAgICAgICAgICAgICAg ICAgICA9PT09PT09CnNlY3QodGl0bGUpICAgICAgICAgICAgIHRpdGxlCiAgICAgICAgICAg ICAgICAgICAgICAgIC0tLS0tLS0Kc3Vic2VjdCh0aXRsZSkgICAgICAgICAgdGl0bGUKICAg ICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXgooYW5kIHNpbWlsYXJseSBmb3IgZGVlcGVy IGxldmVscyB3aXRoIH5+fn4gLyAnJycnKQoKaXRlbSh0ZXJtKShkZWZuKSAgICAgICAgZGVm aW5pdGlvbiBsaXN0OjoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXJtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmbgoKeGl0ZW0odGVybSkgICAgICAgICAg ICAgZXh0cmEgdGVybSBsaW5lIGJlZm9yZSB0aGUgbmV4dCBpdGVtKCkKICAgICAgICAgICAg ICAgICAgICAgICAgKFNwaGlueCBkZWZpbml0aW9uIGxpc3Q7IGtlZXAgdGVybXMgc2hvcnQp CgpleGFtcGxlKGJvZHkpICAgICAgICAgICAuLiBwYXJzZWQtbGl0ZXJhbDo6CiAgICAgICAg ICAgICAgICAgICAgICAgICAgIDpjbGFzczogZXhhbXBsZQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJvZHkKCiAgICAgICAgICAgICAgICAgICAgICAgIElubGluZSB0dC92YXIv ZW0gaW5zaWRlIGJvZHkgc3RheSByZWFsIG1hcmt1cAogICAgICAgICAgICAgICAgICAgICAg ICAoaXRhbGljIG1ldGF2YXJzIGluIG1hbiwgPHZhcj4gaW4gSFRNTCwgQHZhcgogICAgICAg ICAgICAgICAgICAgICAgICBpbiBUZXhpbmZvKS4gIERvIG5vdCB1c2UgLi4gY29kZS1ibG9j azo6IGZvcgogICAgICAgICAgICAgICAgICAgICAgICBtYW51YWwgZXhhbXBsZXMuCgppbmRl bnQoYm9keSkgICAgICAgICAgICBpbmRlbnRlZCBibG9jayAvIGJsb2NrIHF1b3RlOyB1c2Ug ZXhwbGljaXQKICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lIG1hcmt1cCBpbnNpZGUg KHNhbWUgaWRlYSBhcyBZb2RsIGluZGVudCkKCm5vZmlsbChib2R5KSAgICAgICAgICAgIDo6 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keQoKICAgICAgICAgICAgICAgICAg ICAgICAgVHVybnMgb2ZmIGZpbGxpbmc7IGV4cGxpY2l0IG1hcmt1cCBpbnNpZGUuCgppZnpt YW4odGV4dCkgLyAgICAgICAgICAuLiBvbmx5OjogbWFuCmlmbnptYW4odGV4dCkgICAgICAg ICAgIC4uIG9ubHk6OiBub3QgbWFuCgppZnp0ZXhpIC8gaWZuenRleGkgICAgICBQcmVmZXIg Y29udGVudCB0aGF0IGlzIGNvcnJlY3QgZm9yIGFsbCBvdXRwdXRzLgogICAgICAgICAgICAg ICAgICAgICAgICBTcGhpbnggYG9ubHk6OmAgY2FuIGdhdGUgVGV4aW5mbyBidWlsZHMgd2hl bgogICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGJ1aWxkZXIgaXMgZW5hYmxlZDsgYXZv aWQgcmVseWluZyBvbgogICAgICAgICAgICAgICAgICAgICAgICB0ZXhpLW9ubHkgYWxpZ25t ZW50IGhhY2tzIChTUEFDRVMoKSwgZXRjLikuCgpzdGFydGl0ZW0vZW5kaXRlbSAgICAgICBk ZWZpbml0aW9uIGxpc3RzIChzZWUgaXRlbSBhYm92ZSkKc3RhcnRsaXN0L2VuZGxpc3QgICAg ICAgYnVsbGV0IGxpc3RzOiAqIGl0ZW0KZW51bWVyYXRpb24gICAgICAgICAgICAgbnVtYmVy ZWQgbGlzdHM6ICMuIGl0ZW0KCgpTYW1lIHJ1bGVzLCBuZXcgc3ludGF4Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KClF1b3RlcyB2cyBmb250cyBhcmUgc3RpbGwgb3J0aG9nb25hbC4gIFlv dSBzdGlsbCB3cml0ZSB0aGluZ3MgbGlrZToKCiAgICBUeXBlIGBgeHl6enlgYCB0byBsZXQg enNoIGtub3cgeW91IGhhdmUgcGxheWVkIGBgYWR2ZW50YGAuCiAgICBTYXlpbmcgYHBsdWdo YCBhbG91ZCBkb2Vzbid0IGhhdmUgbXVjaCBlZmZlY3QsIGhvd2V2ZXIuCgp0aGF0IHVzZWQg dG8gYmU6CgogICAgVHlwZSBgdHQoeHl6enkpJyB0byBsZXQgenNoIGtub3cgeW91IGhhdmUg cGxheWVkIHR0KGFkdmVudCkuCiAgICBTYXlpbmcgYHBsdWdoJyBhbG91ZCBkb2Vzbid0IGhh dmUgbXVjaCBlZmZlY3QsIGhvd2V2ZXIuCgoKclNUIGdvdGNoYXMgWW9kbCBkaWQgbm90IGhh dmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiogTm8gd2hpdGVzcGFjZSBhZ2Fp bnN0IGNsb3NpbmcgYmFja3RpY2tzIG9mIGEgbGl0ZXJhbDoKICB0dChzZXQgKSB3YXMgZmlu ZSBpbiBZb2RsOyBgYHNldCBgYCBpcyBhIFNwaGlueC9kb2N1dGlscyBlcnJvci4KICBXcml0 ZSBgYHNldGBgIGFuZCBsZWF2ZSB0aGUgc3BhY2Ugb3V0c2lkZS4KCiogTm8gbGV0dGVyIGds dWVkIHRvIHRoZSBlbmQgb2YgZW1waGFzaXMgb3IgOnZhcjogd2l0aG91dCBhbiBlc2NhcGU6 CiAgdmFyKG5hbWUpcyB3b3JrZWQgaW4gWW9kbDsgd3JpdGUgOnZhcjpgbmFtZWBccwoKKiBD aGFyYWN0ZXJzIHRoYXQgY2Fubm90IGZvbGxvdyBhbiBpbmxpbmUgZW5kLXN0cmluZyAobm90 YWJseSBgW2AgYW5kCiAgYHxgKSBuZWVkIGEgYmFja3NsYXNoIG9yIGEgc3BhY2UgYWZ0ZXIg dGhlIG1hcmt1cC4gIFBhdHRlcm5zIHN1Y2ggYXMKICB2YXIobmFtZSlbdHQoPSl2YXIodmFs dWUpXSBhbmQge3R0KCspfHR0KC0pfXR0KGZsYWdzKSBhcmUgcmV3cml0dGVuCiAgY2FyZWZ1 bGx5IGluIHJTVCAob2Z0ZW4gd2l0aCBgYCt8LX1mbGFnc2BgIGNvbGxhcHNlZCBpbnRvIG9u ZQogIGxpdGVyYWwsIG9yIGBcW2AgYWZ0ZXIgYSByb2xlKS4KCiogSW5zaWRlIC4uIHBhcnNl ZC1saXRlcmFsOjosIG1hcmt1cCBpcyBpbnRlcnByZXRlZC4gIFRoYXQgaXMgd2hhdCB5b3UK ICB3YW50IGZvciB2YXIoKS90dCgpIGluIGV4YW1wbGVzIChZb2RsIHB1dCBmb250IGNoYW5n ZXMgaW5zaWRlCiAgZXhhbXBsZXMgdG9vKS4gIEEgbWFjaGluZS1vcmllbnRlZCBjb2RlIGxp c3Rpbmcgd2l0aCBubyBtZXRhdmFycyBjYW4KICBzdGlsbCB1c2UgYSBwbGFpbiA6OiBsaXRl cmFsIGJsb2NrLgoKCkJ1aWxkaW5nIChhZnRlciBjdXRvdmVyKQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KCiogbWFrZSAtZiBEb2Mvc3BoaW54Lm1rIHZlbnYKKiBtYWtlIC1mIERvYy9z cGhpbngubWsgaHRtbCAgICAgICAjIGRpc3RyaWJ1dGlvbiBIVE1MIChiYXNpYywgbm8gc2lk ZWJhcikKKiBtYWtlIC1mIERvYy9zcGhpbngubWsgaHRtbC13ZWIgICAjIHdlYnNpdGUgSFRN TCAoLXQgd2ViLCBGdXJvKQoqIG1ha2UgLWYgRG9jL3NwaGlueC5tayBtYW4KClNlZSBhbHNv IEV0Yy96c2gtZGV2ZWxvcG1lbnQtZ3VpZGUgZm9yIHRoZSBjYW5vbmljYWwgbmV3LWRldmVs b3Blcgpkb2N1bWVudGF0aW9uIHJ1bGVzIChubyBZb2RsIGFzc3VtZWQpLgo= --------------o3m0dWJvu0nmtjlzoa11pQQa Content-Type: application/x-compressed; name="html.tar.xz" Content-Disposition: attachment; filename="html.tar.xz" Content-Transfer-Encoding: base64 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 --------------o3m0dWJvu0nmtjlzoa11pQQa--