Date: Fri, 2 Apr 1999 01:27:51 -0500 (EST) From: "James A. Mutter" <jmutter@netwalk.com> To: chris@calldei.com Cc: "James A. Mutter" <jmutter@netwalk.com>, freebsd-stable@freebsd.org Subject: Re: Man pages aren't formatting correctly - Message-ID: <Pine.BSF.4.05.9904020125030.44361-200000@insomnia.local.net> In-Reply-To: <19990401235102.E425@holly.dyndns.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-615678612-923034471=:44361 Content-Type: TEXT/PLAIN; charset=US-ASCII :> Can anyone help with this one? :> :> bash-2.02$ man csh :> The is a command language interpreter incorporating a history :> mechanism (see job control facilities (see interactive file name :> and user name completion (see and a C-like syntax. It is used :> both as an interactive login shell and a shell script command :> processor. If the first argument (argument 0) to the shell is :> then this is a login shell. A login shell also can be specified :> by invoking the shell with the flag as the only argument. The :> rest of the flag arguments are interpreted as follows: This flag :> forces a ``break'' from option processing, causing any further :> <snipped - you get the point> : : Man pages are always formatted justified as shown above. : Maybe I should have included the entire page, I didn't think that that would be necessary. The problem is that these pages are missing things like newlines, highlighting, tabs, etc... Everything that makes them readable. See the attached 'csh.manpage' for an example. Thanks again, Jim --0-615678612-923034471=:44361 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="csh.manpage" Content-ID: <Pine.BSF.4.05.9904020127510.44361@insomnia.local.net> Content-Description: Content-Disposition: attachment; filename="csh.manpage" Content-Transfer-Encoding: BASE64 VGhlICBpcyAgYSAgY29tbWFuZCAgbGFuZ3VhZ2UgaW50ZXJwcmV0ZXIgaW5j b3Jwb3JhdGluZyBhIGhpc3RvcnkNCm1lY2hhbmlzbSAoc2VlIGpvYiBjb250 cm9sIGZhY2lsaXRpZXMgKHNlZSBpbnRlcmFjdGl2ZSBmaWxlICBuYW1lDQph bmQgIHVzZXIgIG5hbWUgIGNvbXBsZXRpb24gIChzZWUgYW5kIGEgQy1saWtl IHN5bnRheC4gSXQgaXMgdXNlZA0KYm90aCBhcyBhbiBpbnRlcmFjdGl2ZSBs b2dpbiBzaGVsbCBhbmQJYSAgc2hlbGwgIHNjcmlwdCAgY29tbWFuZA0KcHJv Y2Vzc29yLiAgIElmICB0aGUgIGZpcnN0IGFyZ3VtZW50IChhcmd1bWVudCAw KSB0byB0aGUgc2hlbGwgaXMNCnRoZW4gdGhpcyBpcyBhIGxvZ2luIHNoZWxs LiAgQSBsb2dpbiBzaGVsbCBhbHNvIGNhbiBiZQlzcGVjaWZpZWQNCmJ5ICBp bnZva2luZyAgdGhlICBzaGVsbCB3aXRoIHRoZSBmbGFnIGFzIHRoZSBvbmx5 IGFyZ3VtZW50LiAgVGhlDQpyZXN0IG9mIHRoZSBmbGFnIGFyZ3VtZW50cyBh cmUgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czogVGhpcyAgZmxhZw0KZm9yY2Vz CWEgIGBgYnJlYWsnJyAgZnJvbSBvcHRpb24gcHJvY2Vzc2luZywgY2F1c2lu ZyBhbnkgZnVydGhlcg0Kc2hlbGwgYXJndW1lbnRzIHRvICBiZQl0cmVhdGVk ICBhcyAgbm9uLW9wdGlvbiAgYXJndW1lbnRzLiAgIFRoZQ0KcmVtYWluaW5n ICBhcmd1bWVudHMgIHdpbGwgIG5vdCAgYmUgaW50ZXJwcmV0ZWQgYXMgc2hl bGwgb3B0aW9ucy4NClRoaXMgbWF5IGJlIHVzZWQgdG8gcGFzcyBvcHRpb25z IHRvIGEgc2hlbGwgc2NyaXB0IHdpdGhvdXQgY29uZnUtDQpzaW9uICBvciAg cG9zc2libGUgc3VidGVyZnVnZS4JVGhlIHNoZWxsIHdpbGwgbm90IHJ1biBh IHNldC11c2VyDQpJRCBzY3JpcHQgd2l0aG91dCB0aGlzIG9wdGlvbi4JQ29t bWFuZHMgYXJlIHJlYWQgZnJvbSB0aGUgIChzaW4tDQpnbGUpICBmb2xsb3dp bmcgIGFyZ3VtZW50ICB3aGljaCAgbXVzdCBiZSBwcmVzZW50LiAgQW55IHJl bWFpbmluZw0KYXJndW1lbnRzIGFyZSBwbGFjZWQgaW4gVGhlIHNoZWxsIGV4 aXRzIGlmICBhbnkgIGludm9rZWQgIGNvbW1hbmQNCnRlcm1pbmF0ZXMgIGFi bm9ybWFsbHkJb3IgIHlpZWxkcyAgYSAgbm9uLXplcm8gZXhpdCBzdGF0dXMu ICBUaGUNCnNoZWxsIHdpbGwgc3RhcnQgZmFzdGVyLCBiZWNhdXNlIGl0IHdp bGwgbmVpdGhlciBzZWFyY2ggIGZvciAgbm9yDQpleGVjdXRlICBjb21tYW5k cyAgZnJvbSB0aGUgZmlsZSBpbiB0aGUgaW52b2tlcidzIGhvbWUgZGlyZWN0 b3J5Lg0KVGhlIHNoZWxsIGlzIGludGVyYWN0aXZlIGFuZCBwcm9tcHRzICBm b3IgIGl0cwl0b3AtbGV2ZWwgIGlucHV0LA0KZXZlbiAgaWYgaXQgYXBwZWFy cyBub3QgdG8gYmUgYSB0ZXJtaW5hbC4gIFNoZWxscyBhcmUgaW50ZXJhY3Rp dmUNCndpdGhvdXQgdGhpcyBvcHRpb24gaWYgdGhlaXIgaW5wdXRzIGFuZCAg b3V0cHV0cyAgYXJlICB0ZXJtaW5hbHMuDQpUaGUgIHNoZWxsICBpcyBhIGxv Z2luIHNoZWxsIChvbmx5IGFwcGxpY2FibGUgaWYgaXMgdGhlIG9ubHkgZmxh Zw0Kc3BlY2lmaWVkKS4gIFRoZSBzaGVsbCBsb2FkcyBldmVuIGlmIGl0IGRv ZXMgbm90ICBiZWxvbmcgIHRvICB0aGUNCmVmZmVjdGl2ZSB1c2VyLiAgY2Fu IHBhc3MgdG8gdGhlIHNoZWxsLiAgQ29tbWFuZHMgYXJlIHBhcnNlZCwgYnV0 DQpub3QgZXhlY3V0ZWQuICBUaGlzIGFpZHMgaW4gc3ludGFjdGljIGNoZWNr aW5nIG9mIHNoZWxsICBzY3JpcHRzLg0KQ29tbWFuZCBpbnB1dCBpcyB0YWtl biBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dC4gIEEgc2luZ2xlIGxpbmUgb2YN CmlucHV0IGlzIHJlYWQgYW5kIGV4ZWN1dGVkLiAgQSBtYXkgYmUgdXNlZCB0 byBlc2NhcGUgdGhlICBuZXdsaW5lDQphdCAgdGhlICBlbmQgIG9mIHRoaXMg bGluZSBhbmQgY29udGludWUgb250byBhbm90aGVyIGxpbmUuICBDYXVzZQ0K dGhlIHZhcmlhYmxlIHRvIGJlIHNldCwgd2l0aCB0aGUgZWZmZWN0ICB0aGF0 ICBjb21tYW5kCWlucHV0ICBpcw0KZWNob2VkIGFmdGVyIGhpc3Rvcnkgc3Vi c3RpdHV0aW9uLiAgQ2F1c2UgdGhlIHZhcmlhYmxlIHRvIGJlIHNldCwNCnNv IHRoYXQgY29tbWFuZHMgYXJlIGVjaG9lZCBpbW1lZGlhdGVseSBiZWZvcmUg ZXhlY3V0aW9uLiAgIENhdXNlDQp0aGUgIHZhcmlhYmxlICB0byBiZSBzZXQg ZXZlbiBiZWZvcmUgaXMgZXhlY3V0ZWQuICBJcyB0byBhcyBpcyB0bw0KQWZ0 ZXIgcHJvY2Vzc2luZyBvZiBmbGFnIGFyZ3VtZW50cywgaWYgYXJndW1lbnRz IHJlbWFpbiBidXQgIG5vbmUNCm9mICB0aGUgb3Igb3B0aW9ucyB3ZXJlIGdp dmVuLCB0aGUgZmlyc3QgYXJndW1lbnQgaXMgdGFrZW4gYXMgdGhlDQpuYW1l IG9mIGEgZmlsZSBvZiBjb21tYW5kcyB0byBiZSBleGVjdXRlZC4gIFRoZSBz aGVsbCBvcGVucyAgdGhpcw0KZmlsZSwgIGFuZCAgc2F2ZXMgIGl0cwluYW1l IGZvciBwb3NzaWJsZSByZXN1YnN0aXR1dGlvbiBieSBgJDAnLg0KU2luY2Ug bWFueSBzeXN0ZW1zIHVzZSBlaXRoZXIgdGhlIHN0YW5kYXJkIHZlcnNpb24g NiBvciB2ZXJzaW9uIDcNCnNoZWxscwl3aG9zZSAgc2hlbGwgIHNjcmlwdHMg YXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdGhpcyBzaGVsbCwNCnRoZSBzaGVs bCB3aWxsIGV4ZWN1dGUgc3VjaCBhIGBzdGFuZGFyZCcgc2hlbGwgaWYgdGhl IGZpcnN0IGNoYXItDQphY3RlciAgb2YgIGEgIHNjcmlwdCAgaXMgIG5vdCBh IGAjJywgaS5lLiwgaWYgdGhlIHNjcmlwdCBkb2VzIG5vdA0Kc3RhcnQgd2l0 aCBhIGNvbW1lbnQuICBSZW1haW5pbmcgYXJndW1lbnRzIGluaXRpYWxpemUg IHRoZSAgdmFyaS0NCmFibGUgIEFuICBpbnN0YW5jZSAgb2YgYmVnaW5zIGJ5 IGV4ZWN1dGluZyBjb21tYW5kcyBmcm9tIHRoZSBmaWxlDQphbmQsIGlmIHRo aXMgaXMgYSBsb2dpbiBzaGVsbCwgSXQgdGhlbiBleGVjdXRlcyBjb21tYW5k cyBmcm9tICBpbg0KdGhlICBkaXJlY3Rvcnkgb2YgdGhlIGludm9rZXIsIGFu ZCwgaWYgdGhpcyBpcyBhIGxvZ2luIHNoZWxsLCB0aGUNCmZpbGUgaW4gdGhl IHNhbWUgbG9jYXRpb24uICBJdCBpcyB0eXBpY2FsIGZvciB1c2VycyBvbglj cnQncyAgdG8NCnB1dCAgdGhlICBjb21tYW5kICBgYHN0dHkgY3J0JycgaW4g dGhlaXIgZmlsZSwgYW5kIHRvIGFsc28gaW52b2tlDQp0aGVyZS4JSW4gdGhl IG5vcm1hbCBjYXNlLCB0aGUgc2hlbGwgd2lsbCBiZWdpbiByZWFkaW5nIGNv bW1hbmRzDQpmcm9tICB0aGUgdGVybWluYWwsIHByb21wdGluZyB3aXRoIGAl ICcuICBQcm9jZXNzaW5nIG9mIGFyZ3VtZW50cw0KYW5kIHRoZSB1c2Ugb2Yg dGhlIHNoZWxsICB0byAgcHJvY2VzcyAgZmlsZXMgIGNvbnRhaW5pbmcgIGNv bW1hbmQNCnNjcmlwdHMgIHdpbGwgIGJlIGRlc2NyaWJlZCBsYXRlci4gIFRo ZSBzaGVsbCByZXBlYXRlZGx5IHBlcmZvcm1zDQp0aGUgZm9sbG93aW5nIGFj dGlvbnM6IGEgbGluZSBvZiBjb21tYW5kIGlucHV0IGlzIHJlYWQgYW5kIGJy b2tlbg0KaW50byBUaGlzIHNlcXVlbmNlIG9mIHdvcmRzIGlzIHBsYWNlZCBv biB0aGUgY29tbWFuZCBoaXN0b3J5IGxpc3QNCmFuZCBwYXJzZWQuICBGaW5h bGx5IGVhY2ggY29tbWFuZCBpbiB0aGUgIGN1cnJlbnQgIGxpbmUgIGlzICBl eGUtDQpjdXRlZC4JIFdoZW4gIGEgbG9naW4gc2hlbGwgdGVybWluYXRlcyBp dCBleGVjdXRlcyBjb21tYW5kcyBmcm9tDQp0aGUgZmlsZXMgaW4gdGhlIHVz ZXIncyBkaXJlY3RvcnkgIGFuZAlUaGUgIHNoZWxsICBzcGxpdHMgIGlucHV0 DQpsaW5lcyAgaW50byAgd29yZHMgIGF0CWJsYW5rcyBhbmQgdGFicyB3aXRo IHRoZSBmb2xsb3dpbmcgZXhjZXAtDQp0aW9ucy4JVGhlIGNoYXJhY3RlcnMg YCYnIGB8JyBgOycgYDwnIGA+JyBgKCcgYCknIGZvcm0gIHNlcGFyYXRlDQp3 b3Jkcy4JIElmICBkb3VibGVkIGluIGAmJicsIGB8fCcsIGA8PCcgb3IgYD4+ JyB0aGVzZSBwYWlycyBmb3JtDQpzaW5nbGUgd29yZHMuICBUaGVzZSBwYXJz ZXIgbWV0YWNoYXJhY3RlcnMgbWF5IGJlICBtYWRlICBwYXJ0ICBvZg0Kb3Ro ZXIgIHdvcmRzLCAgb3IgIHByZXZlbnRlZCAgdGhlaXIgc3BlY2lhbCBtZWFu aW5nLCBieSBwcmVjZWRpbmcNCnRoZW0gd2l0aCBgXCcuCUEgbmV3bGluZSBw cmVjZWRlZCBieSBhIGBcJyBpcwllcXVpdmFsZW50ICB0bwlhDQpibGFuay4J IFN0cmluZ3MgZW5jbG9zZWQgaW4gbWF0Y2hlZCBwYWlycyBvZiBxdW90YXRp b25zLCBgJycsIGAnDQpvciBgIicsIGZvcm0gcGFydHMgb2YgYSB3b3JkOyBt ZXRhY2hhcmFjdGVycyAgaW4gIHRoZXNlICBzdHJpbmdzLA0KaW5jbHVkaW5n ICBibGFua3MgIGFuZAl0YWJzLCAgZG8gbm90IGZvcm0gc2VwYXJhdGUgd29y ZHMuICBUaGVzZQ0KcXVvdGF0aW9ucyBoYXZlIHNlbWFudGljcyB0byBiZSBk ZXNjcmliZWQgbGF0ZXIuICBXaXRoaW4gcGFpcnMgb2YNCmAnJyAgb3IgIGAi JyBjaGFyYWN0ZXJzLCBhIG5ld2xpbmUgcHJlY2VkZWQgYnkgYSBgXCcgZ2l2 ZXMgYSB0cnVlDQpuZXdsaW5lIGNoYXJhY3Rlci4gIFdoZW4gdGhlIHNoZWxs J3MgaW5wdXQgaXMgbm90IGEgdGVybWluYWwsIHRoZQ0KY2hhcmFjdGVyICBg IycJaW50cm9kdWNlcyBhIGNvbW1lbnQgdGhhdCBjb250aW51ZXMgdG8gdGhl IGVuZCBvZg0KdGhlIGlucHV0IGxpbmUuICBJdCBpcyBwcmV2ZW50ZWQgdGhp cyBzcGVjaWFsIG1lYW5pbmcgIHdoZW4gIHByZS0NCmNlZGVkIGJ5IGBcJyBh bmQgaW4gcXVvdGF0aW9ucyB1c2luZyBgYCcsIGAnJywgYW5kIGAiJy4gIEEg c2ltcGxlDQpjb21tYW5kIGlzIGEgc2VxdWVuY2Ugb2Ygd29yZHMsIHRoZSBm aXJzdCBvZiB3aGljaCBzcGVjaWZpZXMgIHRoZQ0KY29tbWFuZCB0byBiZSBl eGVjdXRlZC4gIEEgc2ltcGxlIGNvbW1hbmQgb3IgYSBzZXF1ZW5jZSBvZiBz aW1wbGUNCmNvbW1hbmRzIHNlcGFyYXRlZCBieSBgfCcgY2hhcmFjdGVycyBm b3JtcyBhIHBpcGVsaW5lLglUaGUgIG91dC0NCnB1dCAgb2YgIGVhY2ggIGNv bW1hbmQgaW4gYSBwaXBlbGluZSBpcyBjb25uZWN0ZWQgdG8gdGhlIGlucHV0 IG9mDQp0aGUgbmV4dC4gIFNlcXVlbmNlcyBvZiBwaXBlbGluZXMgbWF5IGJl IHNlcGFyYXRlZCAgYnkJYDsnLCAgYW5kDQphcmUgIHRoZW4gIGV4ZWN1dGVk IHNlcXVlbnRpYWxseS4gIEEgc2VxdWVuY2Ugb2YgcGlwZWxpbmVzIG1heSBi ZQ0KZXhlY3V0ZWQgd2l0aG91dCBpbW1lZGlhdGVseSB3YWl0aW5nIGZvciBp dCB0byB0ZXJtaW5hdGUgYnkgIGZvbC0NCmxvd2luZyBpdCB3aXRoIGFuIGAm Jy4JQW55IG9mIHRoZSBhYm92ZSBtYXkgYmUgcGxhY2VkIGluIGAoJyBgKScN CnRvIGZvcm0gYSBzaW1wbGUgY29tbWFuZCAodGhhdCBtYXkgYmUgYSBjb21w b25lbnQgb2YgYQlwaXBlbGluZSwNCmV0Yy4pLgkgSXQgIGlzICBhbHNvIHBv c3NpYmxlIHRvIHNlcGFyYXRlIHBpcGVsaW5lcyB3aXRoIGB8fCcgb3INCmAm Jicgc2hvd2luZywgYXMgaW4gdGhlIEMgbGFuZ3VhZ2UsIHRoYXQgdGhlIHNl Y29uZCBpcyB0byBiZSBleGUtDQpjdXRlZCAgb25seSBpZiB0aGUgZmlyc3Qg ZmFpbHMgb3Igc3VjY2VlZHMgcmVzcGVjdGl2ZWx5LiAoU2VlIFRoZQ0Kc2hl bGwgYXNzb2NpYXRlcyBhIHdpdGggZWFjaCBwaXBlbGluZS4JSXQga2VlcHMg YSB0YWJsZSBvZiAgY3VyLQ0KcmVudCBqb2JzLCBwcmludGVkIGJ5IHRoZSBj b21tYW5kLCBhbmQgYXNzaWducyB0aGVtIHNtYWxsIGludGVnZXINCm51bWJl cnMuICBXaGVuIGEgam9iIGlzICBzdGFydGVkICBhc3luY2hyb25vdXNseSAg d2l0aAlgJicsICB0aGUNCnNoZWxsICBwcmludHMgIGEgIGxpbmUgdGhhdCBs b29rcyBsaWtlOiAxMjM0IHNob3dpbmcgdGhhdCB0aGUgam9iDQp3aGljaCB3 YXMgc3RhcnRlZCBhc3luY2hyb25vdXNseSB3YXMgam9iIG51bWJlciAgMSAg YW5kICBoYWQgIG9uZQ0KKHRvcC1sZXZlbCkgIHByb2Nlc3MsIHdob3NlIHBy b2Nlc3MgaWQgd2FzIDEyMzQuICBJZiB5b3UgYXJlIHJ1bi0NCm5pbmcgYSBq b2IgYW5kIHdpc2ggdG8gZG8gc29tZXRoaW5nIGVsc2UgIHlvdSAgbWF5ICBo aXQgIHRoZSAga2V5DQooY29udHJvbC1aKSAgd2hpY2ggIHNlbmRzICBhIFNU T1Agc2lnbmFsIHRvIHRoZSBjdXJyZW50IGpvYi4gIFRoZQ0Kc2hlbGwgd2ls bCB0aGVuIG5vcm1hbGx5IHNob3cgdGhhdCB0aGUgam9iICBoYXMgIGJlZW4g IGBTdG9wcGVkJywNCmFuZCAgcHJpbnQgIGFub3RoZXIgcHJvbXB0LiAgWW91 IGNhbiB0aGVuIG1hbmlwdWxhdGUgdGhlIHN0YXRlIG9mDQp0aGlzIGpvYiwg cHV0dGluZyBpdCBpbiB0aGUgd2l0aCB0aGUgY29tbWFuZCwgb3IgcnVuICBz b21lICBvdGhlcg0KY29tbWFuZHMgIGFuZCAgZXZlbnR1YWxseSAgYnJpbmcg dGhlIGpvYiBiYWNrIGludG8gdGhlIGZvcmVncm91bmQNCndpdGggdGhlIGNv bW1hbmQgQSB0YWtlcyBlZmZlY3QgaW1tZWRpYXRlbHkgYW5kIGlzIGxpa2Ug YW4gaW50ZXItDQpydXB0ICBpbiAgdGhhdCBwZW5kaW5nIG91dHB1dCBhbmQg dW5yZWFkIGlucHV0IGFyZSBkaXNjYXJkZWQgd2hlbg0KaXQgaXMgdHlwZWQu ICBUaGVyZSBpcyBhbm90aGVyIHNwZWNpYWwga2V5IHRoYXQgZG9lcyBub3Qg Z2VuZXJhdGUNCmEgIFNUT1AgIHNpZ25hbCB1bnRpbCBhIHByb2dyYW0gYXR0 ZW1wdHMgdG8gaXQuICBUaGlzIHJlcXVlc3QgY2FuDQp1c2VmdWxseSBiZSB0 eXBlZCBhaGVhZCB3aGVuIHlvdSBoYXZlIHByZXBhcmVkIHNvbWUgY29tbWFu ZHMgIGZvcg0KYSAgam9iIHRoYXQgeW91IHdpc2ggdG8gc3RvcCBhZnRlciBp dCBoYXMgcmVhZCB0aGVtLiAgQSBqb2IgYmVpbmcNCnJ1biBpbiB0aGUgYmFj a2dyb3VuZCB3aWxsIHN0b3AgaWYgaXQgdHJpZXMgdG8gcmVhZCBmcm9tIHRo ZSB0ZXItDQptaW5hbC4JIEJhY2tncm91bmQgIGpvYnMgYXJlIG5vcm1hbGx5 IGFsbG93ZWQgdG8gcHJvZHVjZSBvdXRwdXQsDQpidXQgdGhpcyBjYW4gYmUg ZGlzYWJsZWQgYnkgZ2l2aW5nIHRoZSBjb21tYW5kCWBgc3R0eQl0b3N0b3An Jy4NCklmICB5b3UgIHNldCB0aGlzIHR0eSBvcHRpb24sIHRoZW4gYmFja2dy b3VuZCBqb2JzIHdpbGwgc3RvcCB3aGVuDQp0aGV5IHRyeSB0byBwcm9kdWNl IG91dHB1dCBsaWtlIHRoZXkgZG8gd2hlbiAgdGhleSAgdHJ5ICB0byAgcmVh ZA0KaW5wdXQuCSBUaGVyZQlhcmUgIHNldmVyYWwgIHdheXMgdG8gcmVmZXIg dG8gam9icyBpbiB0aGUgc2hlbGwuDQpUaGUgY2hhcmFjdGVyIGAlJyBpbnRy b2R1Y2VzIGEgam9iIG5hbWUuICBJZiB5b3Ugd2lzaCB0byByZWZlciB0bw0K am9iICBudW1iZXIgMSwgeW91IGNhbiBuYW1lIGl0IGFzIGAlMScuICBKdXN0 IG5hbWluZyBhIGpvYiBicmluZ3MNCml0IHRvIHRoZSBmb3JlZ3JvdW5kOyB0 aHVzIGAlMScgaXMgYSBzeW5vbnltIGZvciBgZmcgJTEnLCAgYnJpbmctDQpp bmcgIGpvYiBudW1iZXIgMSBiYWNrIGludG8gdGhlIGZvcmVncm91bmQuICBT aW1pbGFybHkgc2F5aW5nIGAlMQ0KJicgcmVzdW1lcyBqb2IgbnVtYmVyIDEg aW4gdGhlCWJhY2tncm91bmQuICAgSm9icyAgY2FuICBhbHNvICBiZQ0KbmFt ZWQgIGJ5IHByZWZpeGVzIG9mIHRoZSBzdHJpbmcgdHlwZWQgaW4gdG8gc3Rh cnQgdGhlbSwgaWYgdGhlc2UNCnByZWZpeGVzIGFyZSB1bmFtYmlndW91cywg dGh1cyBgJWV4JyAgd291bGQgIG5vcm1hbGx5ICByZXN0YXJ0CWENCnN1c3Bl bmRlZCAgam9iLCAgaWYgIHRoZXJlIHdlcmUgb25seSBvbmUgc3VzcGVuZGVk IGpvYiB3aG9zZSBuYW1lDQpiZWdhbiAgd2l0aCAgdGhlICBzdHJpbmcgIGBl eCcuICAgSXQgIGlzICBhbHNvCXBvc3NpYmxlICB0byAgc2F5DQpgJT9zdHJp bmcnICB3aGljaCBzcGVjaWZpZXMgYSBqb2Igd2hvc2UgdGV4dCBjb250YWlu cyBpZiB0aGVyZSBpcw0Kb25seSBvbmUgc3VjaCBqb2IuICBUaGUgc2hlbGwg bWFpbnRhaW5zIGEgbm90aW9uIG9mICB0aGUgIGN1cnJlbnQNCmFuZCAgcHJl dmlvdXMgIGpvYnMuICAgSW4gIG91dHB1dCAgYWJvdXQgam9icywgdGhlIGN1 cnJlbnQgam9iIGlzDQptYXJrZWQgd2l0aCBhIGArJyBhbmQgdGhlIHByZXZp b3VzIGpvYiB3aXRoIGEgYC0nLiAgVGhlIGFiYnJldmlhLQ0KdGlvbiBgJSsn IHJlZmVycyB0byB0aGUgY3VycmVudCBqb2IgYW5kIGAlLScgcmVmZXJzIHRv IHRoZSBwcmV2aS0NCm91cyBqb2IuICBGb3IgY2xvc2UgYW5hbG9neSB3aXRo ICB0aGUgIHN5bnRheCAgb2YgIHRoZQltZWNoYW5pc20NCihkZXNjcmliZWQg IGJlbG93KSwgIGAlJScgIGlzIGFsc28gYSBzeW5vbnltIGZvciB0aGUgY3Vy cmVudCBqb2IuDQpUaGUgam9iIGNvbnRyb2wgbWVjaGFuaXNtIHJlcXVpcmVz IHRoYXQgdGhlIG9wdGlvbiBiZSBzZXQuIEl0ICBpcw0KYW4gIGFydGlmYWN0 ICBmcm9tIGEgaW1wbGVtZW50YXRpb24gb2YgdGhlIHR0eSBkcml2ZXIgdGhh dCBhbGxvd3MNCmdlbmVyYXRpb24gb2YgaW50ZXJydXB0IGNoYXJhY3RlcnMg ZnJvbSB0aGUga2V5Ym9hcmQgdG8gdGVsbCBqb2JzDQp0byAgc3RvcC4gICBT ZWUgc3R0eSgxKSBmb3IgZGV0YWlscyBvbiBzZXR0aW5nIG9wdGlvbnMgaW4g dGhlIG5ldw0KdHR5IGRyaXZlci4gIFRoaXMgc2hlbGwgbGVhcm5zCWltbWVk aWF0ZWx5ICB3aGVuZXZlciAgYSAgcHJvY2Vzcw0KY2hhbmdlcyAgc3RhdGUu ICAgSXQgIG5vcm1hbGx5IGluZm9ybXMgeW91IHdoZW5ldmVyIGEgam9iIGJl Y29tZXMNCmJsb2NrZWQgc28gdGhhdCBubyBmdXJ0aGVyIHByb2dyZXNzIGlz IHBvc3NpYmxlLCAgYnV0ICBvbmx5ICBqdXN0DQpiZWZvcmUgaXQgcHJpbnRz IGEgcHJvbXB0LiAgVGhpcyBpcyBkb25lIHNvIHRoYXQgaXQgZG9lcyBub3Qg b3RoLQ0KZXJ3aXNlIGRpc3R1cmIJeW91ciAgd29yay4gICBJZiwgIGhvd2V2 ZXIsICB5b3UgIHNldCAgdGhlICBzaGVsbA0KdmFyaWFibGUgdGhlIHNoZWxs IHdpbGwgbm90aWZ5IHlvdSBpbW1lZGlhdGVseSBvZiBjaGFuZ2VzIG9mIHN0 YS0NCnR1cyBpbiBiYWNrZ3JvdW5kIGpvYnMuICBUaGVyZSBpcyBhbHNvIGEg c2hlbGwgY29tbWFuZCB0aGF0IG1hcmtzDQphICBzaW5nbGUgIHByb2Nlc3Mg c28gdGhhdCBpdHMgc3RhdHVzIGNoYW5nZXMgd2lsbCBiZSBpbW1lZGlhdGVs eQ0KcmVwb3J0ZWQuICBCeSBkZWZhdWx0ICBtYXJrcyAgdGhlICBjdXJyZW50 ICBwcm9jZXNzOyAgc2ltcGx5ICBzYXkNCmBub3RpZnknICBhZnRlciAgc3Rh cnRpbmcgIGEgYmFja2dyb3VuZCBqb2IgdG8gbWFyayBpdC4gIFdoZW4geW91 DQp0cnkgdG8gbGVhdmUgdGhlIHNoZWxsIHdoaWxlIGpvYnMgYXJlIHN0b3Bw ZWQsIHlvdSB3aWxsIGJlIHdhcm5lZA0KdGhhdCAgYFlvdSAgaGF2ZSAgc3Rv cHBlZCAgam9icy4nICBZb3UgbWF5IHVzZSB0aGUgY29tbWFuZCB0byBzZWUN CndoYXQgdGhleSBhcmUuCUlmIHlvdSBkbyB0aGlzIG9yIGltbWVkaWF0ZWx5 IHRyeSB0byBleGl0ICBhZ2FpbiwNCnRoZSBzaGVsbCB3aWxsIG5vdCB3YXJu IHlvdSBhIHNlY29uZCB0aW1lLCBhbmQgdGhlIHN1c3BlbmRlZCBqb2JzDQp3 aWxsIGJlIHRlcm1pbmF0ZWQuICBXaGVuIHRoZSBmaWxlICBuYW1lICBjb21w bGV0aW9uICBmZWF0dXJlICBpcw0KZW5hYmxlZCAgYnkgIHNldHRpbmcgIHRo ZSAgc2hlbGwgdmFyaWFibGUgKHNlZSB3aWxsIGludGVyYWN0aXZlbHkNCmNv bXBsZXRlIGZpbGUgbmFtZXMgYW5kIHVzZXIgbmFtZXMgIGZyb20gIHVuaXF1 ZSAgcHJlZml4ZXMsICB3aGVuDQp0aGV5IGFyZSBpbnB1dCBmcm9tIHRoZSB0 ZXJtaW5hbCBmb2xsb3dlZCBieSB0aGUgZXNjYXBlIGNoYXJhY3Rlcg0KKHRo ZSBlc2NhcGUga2V5LCBvciBjb250cm9sLVspIEZvciBleGFtcGxlLCBpZiB0 aGUgY3VycmVudCBkaXJlYy0NCnRvcnkgIGxvb2tzICBsaWtlICBEU0MuT0xE ICAgYmluICAgICAgIGNtZAkgbGliCSAgIHhtcGwuYw0KRFNDLk5FVyAgY2hh b3NuZXQgY210ZXN0ICAgbWFpbCAgICAgeG1wbC5vIGJlbmNoICAgIGNsYXNz ICAgICBkZXYNCm1ib3gJICB4bXBsLm91dCAgYW5kICB0aGUgIGlucHV0ICBp cyAgd2lsbCBjb21wbGV0ZSB0aGUgcHJlZml4DQpgYGNoJycgdG8gdGhlIG9u bHkgbWF0Y2hpbmcgZmlsZSBuYW1lIGBgY2hhb3NuZXQnJywgY2hhbmdpbmcg IHRoZQ0KaW5wdXQgIGxpbmUgIHRvICBIb3dldmVyLCBnaXZlbiB3aWxsIG9u bHkgZXhwYW5kIHRoZSBpbnB1dCB0byBhbmQNCndpbGwgc291bmQgdGhlIHRl cm1pbmFsIGJlbGwgdG8gaW5kaWNhdGUgdGhhdCAgdGhlICBleHBhbnNpb24g IGlzDQppbmNvbXBsZXRlLCAgc2luY2UgIHRoZXJlICBhcmUgdHdvIGZpbGUg bmFtZXMgbWF0Y2hpbmcgdGhlIHByZWZpeA0KYGBEJycuCUlmIGEgcGFydGlh bCBmaWxlIG5hbWUgaXMgIGZvbGxvd2VkICBieSAgdGhlICBlbmQtb2YtZmls ZQ0KY2hhcmFjdGVyICAodXN1YWxseSAgY29udHJvbC1EKSwgIHRoZW4sIGlu c3RlYWQgb2YgY29tcGxldGluZyB0aGUNCm5hbWUsIHdpbGwgbGlzdCBhbGwg ZmlsZSBuYW1lcyBtYXRjaGluZyB0aGUgcHJlZml4LiAgRm9yIGV4YW1wbGUs DQp0aGUgIGlucHV0ICBjYXVzZXMgIGFsbCAgZmlsZXMgYmVnaW5uaW5nIHdp dGggYGBEJycgdG8gYmUgbGlzdGVkOg0Kd2hpbGUgdGhlIGlucHV0IGxpbmUg IHJlbWFpbnMgIHVuY2hhbmdlZC4gICBUaGUgIHNhbWUgIHN5c3RlbSAgb2YN CmVzY2FwZQlhbmQgIGVuZC1vZi1maWxlICBjYW4gYWxzbyBiZSB1c2VkIHRv IGV4cGFuZCBwYXJ0aWFsIHVzZXINCm5hbWVzLCBpZiB0aGUgd29yZCB0byBi ZSBjb21wbGV0ZWQgKG9yIGxpc3RlZCkJYmVnaW5zCXdpdGggIHRoZQ0KY2hh cmFjdGVyICBgYH4nJy4gICBGb3IgZXhhbXBsZSwgdHlwaW5nIG1heSBwcm9k dWNlIHRoZSBleHBhbnNpb24NClRoZSB1c2Ugb2YgdGhlIHRlcm1pbmFsIGJl bGwgdG8gc2lnbmFsIGVycm9ycyBvciBtdWx0aXBsZSBtYXRjaGVzDQpjYW4g IGJlICBpbmhpYml0ZWQgYnkgc2V0dGluZyB0aGUgdmFyaWFibGUgTm9ybWFs bHksIGFsbCBmaWxlcyBpbg0KdGhlIHBhcnRpY3VsYXIgZGlyZWN0b3J5ICBh cmUgIGNhbmRpZGF0ZXMgIGZvcgluYW1lICBjb21wbGV0aW9uLg0KRmlsZXMg d2l0aCBjZXJ0YWluIHN1ZmZpeGVzIGNhbiBiZSBleGNsdWRlZCBmcm9tIGNv bnNpZGVyYXRpb24gYnkNCnNldHRpbmcgdGhlIHZhcmlhYmxlIHRvIHRoZSAg bGlzdCAgb2YgIHN1ZmZpeGVzICB0byAgYmUgIGlnbm9yZWQuDQpUaHVzLCAg aWYgIGlzICBzZXQgYnkgdGhlIGNvbW1hbmQgdGhlbiB0eXBpbmcgd291bGQg cmVzdWx0IGluIHRoZQ0KY29tcGxldGlvbiB0byBpZ25vcmluZyB0aGUgZmls ZXMgInhtcGwubyIgYW5kICAieG1wbC5vdXQiLiAgIEhvdy0NCmV2ZXIsIGlm IHRoZSBvbmx5IGNvbXBsZXRpb24gcG9zc2libGUgcmVxdWlyZXMgbm90IGln bm9yaW5nIHRoZXNlDQpzdWZmaXhlcywgdGhlbiB0aGV5IGFyZSAgbm90ICBp Z25vcmVkLgkgSW4gIGFkZGl0aW9uLAlkb2VzICBub3QNCmFmZmVjdAl0aGUg IGxpc3RpbmcgIG9mICBmaWxlIG5hbWVzIGJ5IGNvbnRyb2wtRC4gIEFsbCBm aWxlcyBhcmUNCmxpc3RlZCByZWdhcmRsZXNzIG9mIHRoZWlyIHN1ZmZpeGVz LiAgV2Ugbm93IGRlc2NyaWJlIHRoZSB2YXJpb3VzDQp0cmFuc2Zvcm1hdGlv bnMgIHRoZSAgc2hlbGwgcGVyZm9ybXMgb24gdGhlIGlucHV0IGluIHRoZSBv cmRlciBpbg0Kd2hpY2ggdGhleSBvY2N1ci4gIEhpc3Rvcnkgc3Vic3RpdHV0 aW9ucyBwbGFjZSB3b3JkcyBmcm9tICBwcmV2aS0NCm91cyAgY29tbWFuZCBp bnB1dCBhcyBwb3J0aW9ucyBvZiBuZXcgY29tbWFuZHMsIG1ha2luZyBpdCBl YXN5IHRvDQpyZXBlYXQgY29tbWFuZHMsIHJlcGVhdCBhcmd1bWVudHMgb2Yg YSBwcmV2aW91cyAgY29tbWFuZCAgaW4gIHRoZQ0KY3VycmVudCBjb21tYW5k LCBvciBmaXggc3BlbGxpbmcgbWlzdGFrZXMgaW4gdGhlIHByZXZpb3VzIGNv bW1hbmQNCndpdGggbGl0dGxlIHR5cGluZyBhbmQgYSBoaWdoIGRlZ3JlZSBv ZiBjb25maWRlbmNlLiAgSGlzdG9yeSBzdWItDQpzdGl0dXRpb25zICBiZWdp biAgd2l0aCAgdGhlICBjaGFyYWN0ZXIgIGAhJyBhbmQgbWF5IGJlZ2luIGlu IHRoZQ0KaW5wdXQgc3RyZWFtICh3aXRoIHRoZSBwcm92aXNvIHRoYXQgdGhl eSBuZXN0LikgIFRoaXMgYCEnIG1heSAgYmUNCnByZWNlZGVkICBieSAgYSAg YFwnICB0byAgcHJldmVudCBpdHMgc3BlY2lhbCBtZWFuaW5nOyBmb3IgY29u dmUtDQpuaWVuY2UsIGFuIGAhJyBpcyBwYXNzZWQgdW5jaGFuZ2VkICB3aGVu ICBpdCAgaXMgIGZvbGxvd2VkICBieQlhDQpibGFuaywJdGFiLCAgbmV3bGlu ZSwJYD0nICBvciBgKCcuICAoSGlzdG9yeSBzdWJzdGl0dXRpb25zIGFsc28N Cm9jY3VyIHdoZW4gYW4gaW5wdXQgbGluZSBiZWdpbnMgd2l0aCBgJy4gIFRo aXMgc3BlY2lhbAlhYmJyZXZpYS0NCnRpb24gd2lsbCBiZSBkZXNjcmliZWQg bGF0ZXIuKQlBbnkgaW5wdXQgbGluZSB0aGF0IGNvbnRhaW5zIGhpcy0NCnRv cnkgc3Vic3RpdHV0aW9uIGlzIGVjaG9lZCBvbiB0aGUgdGVybWluYWwgYmVm b3JlIGl0IGlzIGV4ZWN1dGVkDQphcyAgaXQJY291bGQgaGF2ZSBiZWVuIHR5 cGVkIHdpdGhvdXQgaGlzdG9yeSBzdWJzdGl0dXRpb24uICBDb20tDQptYW5k cyBpbnB1dCBmcm9tIHRoZSB0ZXJtaW5hbCB0aGF0IGNvbnNpc3Qgb2Ygb25l IG9yICBtb3JlICB3b3Jkcw0KYXJlICBzYXZlZCAgb24gdGhlIGhpc3Rvcnkg bGlzdC4gIFRoZSBoaXN0b3J5IHN1YnN0aXR1dGlvbnMgcmVpbi0NCnRyb2R1 Y2Ugc2VxdWVuY2VzIG9mIHdvcmRzIGZyb20gdGhlc2UgIHNhdmVkICBjb21t YW5kcwlpbnRvICB0aGUNCmlucHV0ICBzdHJlYW0uCVRoZSBzaXplIG9mIHRo ZSBoaXN0b3J5IGxpc3QgaXMgY29udHJvbGxlZCBieSB0aGUNCnZhcmlhYmxl OyB0aGUgcHJldmlvdXMgY29tbWFuZCBpcyBhbHdheXMgcmV0YWluZWQsIHJl Z2FyZGxlc3MgIG9mDQp0aGUgdmFsdWUgb2YgdGhlIGhpc3RvcnkgdmFyaWFi bGUuICBDb21tYW5kcyBhcmUgbnVtYmVyZWQgc2VxdWVuLQ0KdGlhbGx5IGZy b20gMS4JRm9yIGRlZmluaXRlbmVzcywgY29uc2lkZXIgdGhlCWZvbGxvd2lu ZyAgb3V0cHV0DQpmcm9tICB0aGUgIGNvbW1hbmQ6ICA5CXdyaXRlIG1pY2hh ZWwgMTAgIGV4IHdyaXRlLmMgMTEgIGNhdCBvbGQtDQp3cml0ZS5jIDEyICBk aWZmICp3cml0ZS5jIFRoZSBjb21tYW5kcyBhcmUgc2hvd24gd2l0aCB0aGVp ciBldmVudA0KbnVtYmVycy4gICBJdCAgaXMgbm90IHVzdWFsbHkgbmVjZXNz YXJ5IHRvIHVzZSBldmVudCBudW1iZXJzLCBidXQNCnRoZSBjdXJyZW50IGV2 ZW50IG51bWJlciBjYW4gYmUgbWFkZSBwYXJ0IG9mIHRoZSAgYnkgIHBsYWNp bmcgIGFuDQpgIScgaW4gdGhlIHByb21wdCBzdHJpbmcuICBXaXRoIHRoZSBj dXJyZW50IGV2ZW50IDEzIHdlIGNhbiByZWZlcg0KdG8gcHJldmlvdXMgZXZl bnRzIGJ5IGV2ZW50IG51bWJlciBgITExJywgcmVsYXRpdmVseSBhcyBpbiAg YCEtMicNCihyZWZlcnJpbmcgIHRvCXRoZSBzYW1lIGV2ZW50KSwgYnkgYSBw cmVmaXggb2YgYSBjb21tYW5kIHdvcmQgYXMNCmluIGAhZCcgZm9yIGV2ZW50 IDEyIG9yIGAhd3JpJyBmb3IgZXZlbnQgOSwgb3IgYnkgYSAgc3RyaW5nICBj b24tDQp0YWluZWQJaW4gYSB3b3JkIGluIHRoZSBjb21tYW5kIGFzIGluIGAh P21pYz8nIGFsc28gcmVmZXJyaW5nIHRvDQpldmVudCA5LiAgVGhlc2UgZm9y bXMsIHdpdGhvdXQgZnVydGhlciBjaGFuZ2UsIHNpbXBseSByZWludHJvZHVj ZQ0KdGhlICB3b3JkcyAgb2YJdGhlICBzcGVjaWZpZWQgZXZlbnRzLCBlYWNo IHNlcGFyYXRlZCBieSBhIHNpbmdsZQ0KYmxhbmsuCUFzIGEgc3BlY2lhbCBj YXNlLCBgISEnIHJlZmVycyB0byB0aGUgIHByZXZpb3VzICBjb21tYW5kOw0K dGh1cyBgISEnICBhbG9uZSBpcyBhIFRvIHNlbGVjdCB3b3JkcyBmcm9tIGFu IGV2ZW50IHdlIGNhbiBmb2xsb3cNCnRoZSBldmVudCBzcGVjaWZpY2F0aW9u IGJ5IGEgYDonIGFuZCBhIGRlc2lnbmF0b3IgZm9yIHRoZSBkZXNpcmVkDQp3 b3Jkcy4JVGhlIHdvcmRzIG9mIGFuIGlucHV0IGxpbmUgYXJlIG51bWJlcmVk IGZyb20gMCwgdGhlIGZpcnN0DQoodXN1YWxseSBjb21tYW5kKSB3b3JkIGJl aW5nIDAsIHRoZSBzZWNvbmQgd29yZCAoZmlyc3QJYXJndW1lbnQpDQpiZWlu ZyAgMSwgIGV0Yy4gICBUaGUgYmFzaWMgd29yZCBkZXNpZ25hdG9ycyBhcmU6 IGZpcnN0IChjb21tYW5kKQ0Kd29yZCBhcmd1bWVudCBmaXJzdCAgYXJndW1l bnQsCSBpLmUuLAlgMScgIGxhc3QgIGFyZ3VtZW50ICB3b3JkDQptYXRjaGVk IGJ5IChpbW1lZGlhdGVseSBwcmVjZWRpbmcpIHNlYXJjaCByYW5nZSBvZiB3 b3JkcyBhYmJyZXZpLQ0KYXRlcyBhYmJyZXZpYXRlcyBgLSQnLCBvciBub3Ro aW5nIGlmIG9ubHkgMSB3b3JkIGluIGV2ZW50ICBhYmJyZS0NCnZpYXRlcwls aWtlICBidXQgIG9taXR0aW5nIHdvcmQgYCQnIFRoZSBgOicgc2VwYXJhdGlu ZyB0aGUgZXZlbnQNCnNwZWNpZmljYXRpb24gZnJvbSB0aGUgd29yZCBkZXNp Z25hdG9yCWNhbiAgYmUgIG9taXR0ZWQgIGlmICB0aGUNCmFyZ3VtZW50ICBz ZWxlY3RvciAgYmVnaW5zIHdpdGggYSBgJywgYCQnLCBgKicgYC0nIG9yIGAl Jy4gIEFmdGVyDQp0aGUgb3B0aW9uYWwgd29yZCBkZXNpZ25hdG9yIGNhbiBi ZSBwbGFjZWQgYSAgc2VxdWVuY2UJb2YgIG1vZGktDQpmaWVycywJZWFjaCAg cHJlY2VkZWQJYnkgIGEgIGA6Jy4gICBUaGUgZm9sbG93aW5nIG1vZGlmaWVy cyBhcmUNCmRlZmluZWQ6IFJlbW92ZSBhIHRyYWlsaW5nIHBhdGhuYW1lIGNv bXBvbmVudCwgbGVhdmluZyB0aGUgIGhlYWQuDQpSZW1vdmUJYSAgdHJhaWxp bmcgIGAueHh4JyAgY29tcG9uZW50LCAgbGVhdmluZyAgdGhlICByb290IG5h bWUuDQpSZW1vdmUgYWxsIGJ1dCB0aGUgZXh0ZW5zaW9uIGAueHh4JyBwYXJ0 LiAgU3Vic3RpdHV0ZSBmb3IgIFJlbW92ZQ0KYWxsICBsZWFkaW5nICBwYXRo bmFtZQljb21wb25lbnRzLCBsZWF2aW5nIHRoZSB0YWlsLiAgUmVwZWF0IHRo ZQ0KcHJldmlvdXMgc3Vic3RpdHV0aW9uLglBcHBseSB0aGUgY2hhbmdlIG9u Y2Ugb24gZWFjaCB3b3JkLCAgcHJlLQ0KZml4aW5nCXRoZSBhYm92ZSwgZS5n LiwgYGcmJy4JQXBwbHkgdGhlIGNoYW5nZSBhcyBtYW55IHRpbWVzIGFzDQpw b3NzaWJsZSBvbiBhIHNpbmdsZSB3b3JkLCBwcmVmaXhpbmcgdGhlIGFib3Zl LiBJdCAgY2FuICBiZSAgdXNlZA0KdG9nZXRoZXIgIHdpdGgJYGcnICB0byBh cHBseSBhIHN1YnN0aXR1dGlvbiBnbG9iYWxseS4JUHJpbnQgdGhlDQpuZXcg Y29tbWFuZCBsaW5lIGJ1dCBkbyBub3QgZXhlY3V0ZSBpdC4gICBRdW90ZSAg dGhlICBzdWJzdGl0dXRlZA0Kd29yZHMsCXByZXZlbnRpbmcgZnVydGhlciBz dWJzdGl0dXRpb25zLiAgTGlrZSBxLCBidXQgYnJlYWsgaW50bw0Kd29yZHMg YXQgYmxhbmtzLCB0YWJzIGFuZCBuZXdsaW5lcy4gIFVubGVzcyBwcmVjZWRl ZCBieSBhIGBnJyB0aGUNCmNoYW5nZQlpcyAgYXBwbGllZCBvbmx5IHRvIHRo ZSBmaXJzdCBtb2RpZmlhYmxlIHdvcmQuCVdpdGggc3ViLQ0Kc3RpdHV0aW9u cywgaXQgaXMgYW4gZXJyb3IgZm9yIG5vIHdvcmQJdG8gIGJlCWFwcGxpY2Fi bGUuICAgVGhlDQpsZWZ0ICBoYW5kICBzaWRlICBvZiBzdWJzdGl0dXRpb25z IGFyZSBub3QgcmVndWxhciBleHByZXNzaW9ucyBpbg0KdGhlIHNlbnNlIG9m IHRoZSBlZGl0b3JzLCBidXQgaW5zdGVhZCBzdHJpbmdzLglBbnkgY2hhcmFj dGVyIG1heQ0KYmUgdXNlZCBhcyB0aGUgZGVsaW1pdGVyIGluIHBsYWNlIG9m IGAvJzsgYSBgXCcgcXVvdGVzIHRoZSBkZWxpbS0NCml0ZXIgaW50byB0aGUg YW5kIHN0cmluZ3MuICBUaGUgY2hhcmFjdGVyIGAmJyBpbiB0aGUgIHJpZ2h0 ICBoYW5kDQpzaWRlICBpcyAgcmVwbGFjZWQgIGJ5IHRoZSB0ZXh0IGZyb20g dGhlIGxlZnQuCUEgYFwnIGFsc28gcXVvdGVzDQpgJicuICBBIG51bGwgKGAv LycpIHVzZXMgdGhlIHByZXZpb3VzIHN0cmluZyBlaXRoZXIgIGZyb20gIGFu ICBvcg0KZnJvbSAgYSAgY29udGV4dHVhbCAgc2NhbiBzdHJpbmcgaW4gVGhl IHRyYWlsaW5nIGRlbGltaXRlciBpbiB0aGUNCnN1YnN0aXR1dGlvbiBtYXkg YmUgb21pdHRlZCBpZiBhIG5ld2xpbmUgZm9sbG93cyAgaW1tZWRpYXRlbHkg IGFzDQptYXkgIHRoZSAgdHJhaWxpbmcgYD8nIGluIGEgY29udGV4dHVhbCBz Y2FuLiAgQSBoaXN0b3J5IHJlZmVyZW5jZQ0KbWF5IGJlIGdpdmVuIHdpdGhv dXQgYW4gZXZlbnQgc3BlY2lmaWNhdGlvbiwgZS5nLiwgIGAhJCcuICAgSGVy ZSwNCnRoZSAgcmVmZXJlbmNlCWlzIHRvIHRoZSBwcmV2aW91cyBjb21tYW5k IHVubGVzcyBhIHByZXZpb3VzIGhpcy0NCnRvcnkgcmVmZXJlbmNlIG9jY3Vy cmVkIG9uIHRoZSBzYW1lIGxpbmUgaW4gd2hpY2ggY2FzZSB0aGlzICBmb3Jt DQpyZXBlYXRzIHRoZSBwcmV2aW91cyByZWZlcmVuY2UuICBUaHVzIGAhP2Zv bz8gISQnIGdpdmVzIHRoZSBmaXJzdA0KYW5kIGxhc3QgYXJndW1lbnRzIGZy b20gdGhlIGNvbW1hbmQgbWF0Y2hpbmcgYD9mb28/Jy4gIEEgIHNwZWNpYWwN CmFiYnJldmlhdGlvbiAgb2YgIGEgIGhpc3RvcnkgcmVmZXJlbmNlIG9jY3Vy cyB3aGVuIHRoZSBmaXJzdCBub24tDQpibGFuayBjaGFyYWN0ZXIgb2YgYW4g aW5wdXQgbGluZSBpcyBhIGAnLiAgVGhpcyBpcyBlcXVpdmFsZW50ICB0bw0K YCE6cycgIHByb3ZpZGluZyAgYSBjb252ZW5pZW50IHNob3J0aGFuZCBmb3Ig c3Vic3RpdHV0aW9ucyBvbiB0aGUNCnRleHQgb2YgdGhlIHByZXZpb3VzIGxp bmUuICBUaHVzIGBsYmxpYicgZml4ZXMJdGhlICBzcGVsbGluZyAgb2YNCmBs aWInICBpbiAgdGhlIHByZXZpb3VzIGNvbW1hbmQuICBGaW5hbGx5LCBhIGhp c3Rvcnkgc3Vic3RpdHV0aW9uDQptYXkgYmUgc3Vycm91bmRlZCB3aXRoIGB7 JyBhbmQgYH0nIGlmIG5lY2Vzc2FyeSAgdG8gIGluc3VsYXRlICBpdA0KZnJv bSAgdGhlICBjaGFyYWN0ZXJzIHRoYXQgZm9sbG93LiAgVGh1cywgYWZ0ZXIg YGxzIC1sZCB+cGF1bCcgd2UNCm1pZ2h0IGRvIGAhe2x9YScgdG8gZG8gYGxz IC1sZCB+cGF1bGEnLCB3aGlsZSAgYCFsYScgIHdvdWxkICBsb29rDQpmb3Ig IGEJY29tbWFuZCAgc3RhcnRpbmcgd2l0aCBgbGEnLiAgVGhlIHF1b3RhdGlv biBvZiBzdHJpbmdzIGJ5DQpgJycgYW5kIGAiJyBjYW4gYmUgdXNlZCB0byBw cmV2ZW50IGFsbCBvciBzb21lIG9mICB0aGUJcmVtYWluaW5nDQpzdWJzdGl0 dXRpb25zLglTdHJpbmdzIGVuY2xvc2VkIGluIGAnJyBhcmUgcHJldmVudGVk IGFueSBmdXJ0aGVyDQppbnRlcnByZXRhdGlvbi4gIFN0cmluZ3MgZW5jbG9z ZWQgIGluICBgIicgIG1heSAgYmUgIGV4cGFuZGVkICBhcw0KZGVzY3JpYmVk ICBiZWxvdy4gICBJbiBib3RoIGNhc2VzIHRoZSByZXN1bHRpbmcgdGV4dCBi ZWNvbWVzIChhbGwNCm9yIHBhcnQgb2YpIGEgc2luZ2xlIHdvcmQ7IG9ubHkg aW4gb25lIHNwZWNpYWwgY2FzZSAgKHNlZSAgYmVsb3cpDQpkb2VzICBhICBg IicgcXVvdGVkIHN0cmluZyB5aWVsZCBwYXJ0cyBvZiBtb3JlIHRoYW4gb25l IHdvcmQ7IGAnJw0KcXVvdGVkIHN0cmluZ3MgbmV2ZXIgZG8uICBUaGUgc2hl bGwgbWFpbnRhaW5zIGEgbGlzdCAgb2YgIGFsaWFzZXMNCnRoYXQgIGNhbiAg YmUgZXN0YWJsaXNoZWQsIGRpc3BsYXllZCBhbmQgbW9kaWZpZWQgYnkgdGhl IGFuZCBjb20tDQptYW5kcy4JQWZ0ZXIgYSBjb21tYW5kICBsaW5lICBpcyAg c2Nhbm5lZCwgIGl0ICBpcyAgcGFyc2VkICBpbnRvDQpkaXN0aW5jdCAgY29t bWFuZHMgIGFuZCAgdGhlIGZpcnN0IHdvcmQgb2YgZWFjaCBjb21tYW5kLCBs ZWZ0LXRvLQ0KcmlnaHQsIGlzIGNoZWNrZWQgdG8gc2VlIGlmIGl0IGhhcyBh biBhbGlhcy4gIElmICBpdCAgZG9lcywgIHRoZW4NCnRoZSAgdGV4dCAgdGhh dCAgaXMgdGhlIGFsaWFzIGZvciB0aGF0IGNvbW1hbmQgaXMgcmVyZWFkIHdp dGggdGhlDQpoaXN0b3J5IG1lY2hhbmlzbSBhdmFpbGFibGUgYXMgdGhvdWdo IHRoYXQgY29tbWFuZCB3ZXJlIHRoZSAgcHJlLQ0KdmlvdXMgIGlucHV0ICBs aW5lLiAgIFRoZSByZXN1bHRpbmcgd29yZHMgcmVwbGFjZSB0aGUgY29tbWFu ZCBhbmQNCmFyZ3VtZW50IGxpc3QuCUlmIG5vIHJlZmVyZW5jZSBpcyBtYWRl IHRvIHRoZSBoaXN0b3J5IGxpc3QsIHRoZW4NCnRoZSAgYXJndW1lbnQgbGlz dCBpcyBsZWZ0IHVuY2hhbmdlZC4gIFRodXMgaWYgdGhlIGFsaWFzIGZvciBg bHMnDQppcyBgbHMgLWwnIHRoZSBjb21tYW5kIGBscyAvdXNyJyB3b3VsZCBt YXAgdG8gYGxzIC1sICAvdXNyJywgIHRoZQ0KYXJndW1lbnQgbGlzdCBoZXJl IGJlaW5nIHVuZGlzdHVyYmVkLiAgU2ltaWxhcmx5IGlmIHRoZSBhbGlhcyBm b3INCmBsb29rdXAnIHdhcyBgZ3JlcCAhIC9ldGMvcGFzc3dkJyB0aGVuIGBs b29rdXAgYmlsbCcgd291bGQgbWFwIHRvDQpgZ3JlcCAgYmlsbCAgL2V0Yy9w YXNzd2QnLiAgSWYgYW4gYWxpYXMgaXMgZm91bmQsIHRoZSB3b3JkIHRyYW5z LQ0KZm9ybWF0aW9uIG9mIHRoZSBpbnB1dCB0ZXh0IGlzIHBlcmZvcm1lZCBh bmQgdGhlIGFsaWFzaW5nIHByb2Nlc3MNCmJlZ2lucyBhZ2FpbiBvbiB0aGUg cmVmb3JtZWQgaW5wdXQgbGluZS4gIExvb3BpbmcgaXMgcHJldmVudGVkIGlm DQp0aGUgZmlyc3Qgd29yZCBvZiB0aGUgbmV3IHRleHQgaXMgdGhlIHNhbWUg YXMgdGhlIG9sZCBieSBmbGFnZ2luZw0KaXQgIHRvCXByZXZlbnQgIGZ1cnRo ZXIgIGFsaWFzaW5nLiAgT3RoZXIgbG9vcHMgYXJlIGRldGVjdGVkIGFuZA0K Y2F1c2UgYW4gZXJyb3IuICBOb3RlIHRoYXQgdGhlIG1lY2hhbmlzbSBhbGxv d3MgYWxpYXNlcyB0byBpbnRyby0NCmR1Y2UgIHBhcnNlciAgbWV0YXN5bnRh eC4gICBUaHVzLCAgd2UgIGNhbiBgYWxpYXMgcHJpbnQgJ3ByIFwhKiB8DQps cHInJyB0byBtYWtlIGEgY29tbWFuZCB0aGF0IGl0cyBhcmd1bWVudHMgdG8g dGhlICBsaW5lICBwcmludGVyLg0KVGhlICBzaGVsbCAgbWFpbnRhaW5zICBh ICBzZXQgIG9mIHZhcmlhYmxlcywgZWFjaCBvZiB3aGljaCBoYXMgYXMNCnZh bHVlIGEgbGlzdCBvZiB6ZXJvIG9yIG1vcmUgd29yZHMuICBTb21lIG9mIHRo ZXNlIHZhcmlhYmxlcyAgYXJlDQpzZXQgIGJ5ICB0aGUgc2hlbGwgb3IgcmVm ZXJyZWQgdG8gYnkgaXQuICBGb3IgaW5zdGFuY2UsIHRoZSB2YXJpLQ0KYWJs ZSBpcyBhbiBpbWFnZSBvZiB0aGUgc2hlbGwncyBhcmd1bWVudCBsaXN0LCBh bmQgd29yZHMgb2YgIHRoaXMNCnZhcmlhYmxlJ3MgIHZhbHVlIGFyZSByZWZl cnJlZCB0byBpbiBzcGVjaWFsIHdheXMuICBUaGUgdmFsdWVzIG9mDQp2YXJp YWJsZXMgbWF5IGJlIGRpc3BsYXllZCBhbmQgY2hhbmdlZCBieSB1c2luZyB0 aGUgYW5kIGNvbW1hbmRzLg0KT2YgIHRoZSAgdmFyaWFibGVzIHJlZmVycmVk IHRvIGJ5IHRoZSBzaGVsbCBhIG51bWJlciBhcmUgdG9nZ2xlczsNCnRoZSBz aGVsbCBkb2VzIG5vdCBjYXJlIHdoYXQgdGhlaXIgdmFsdWUgaXMsICBvbmx5 ICB3aGV0aGVyICB0aGV5DQphcmUgIHNldCAgb3IgIG5vdC4gICBGb3IgIGlu c3RhbmNlLCB0aGUgdmFyaWFibGUgaXMgYSB0b2dnbGUgdGhhdA0KY2F1c2Vz IGNvbW1hbmQgaW5wdXQgdG8gYmUgZWNob2VkLiAgVGhlIHNldHRpbmcgb2Yg dGhpcyAgdmFyaWFibGUNCnJlc3VsdHMgIGZyb20gIHRoZSAgY29tbWFuZCAg bGluZSBvcHRpb24uICBPdGhlciBvcGVyYXRpb25zIHRyZWF0DQp2YXJpYWJs ZXMgbnVtZXJpY2FsbHkuCVRoZSBgQCcgY29tbWFuZCBwZXJtaXRzIG51bWVy aWMgIGNhbGN1bGEtDQp0aW9ucyAgdG8gIGJlICBwZXJmb3JtZWQgIGFuZCAg dGhlIHJlc3VsdCBhc3NpZ25lZCB0byBhIHZhcmlhYmxlLg0KVmFyaWFibGUg dmFsdWVzIGFyZSwgaG93ZXZlciwgIGFsd2F5cyAgcmVwcmVzZW50ZWQgIGFz CSh6ZXJvICBvcg0KbW9yZSkgIHN0cmluZ3MuICBGb3IgdGhlIHB1cnBvc2Vz IG9mIG51bWVyaWMgb3BlcmF0aW9ucywgdGhlIG51bGwNCnN0cmluZyBpcyBj b25zaWRlcmVkIHRvIGJlIHplcm8sIGFuZCB0aGUgIHNlY29uZCAgYW5kICBh ZGRpdGlvbmFsDQp3b3JkcyAgb2YgIG11bHRpd29yZCB2YWx1ZXMgYXJlIGln bm9yZWQuICBBZnRlciB0aGUgaW5wdXQgbGluZSBpcw0KYWxpYXNlZCBhbmQg cGFyc2VkLCBhbmQgYmVmb3JlIGVhY2ggY29tbWFuZCBpcyBleGVjdXRlZCwg dmFyaWFibGUNCnN1YnN0aXR1dGlvbiAgaXMgIHBlcmZvcm1lZCBrZXllZCBi eSBgJCcgY2hhcmFjdGVycy4gIFRoaXMgZXhwYW4tDQpzaW9uIGNhbiBiZSBw cmV2ZW50ZWQgYnkgcHJlY2VkaW5nIHRoZQlgJCcgIHdpdGggIGEgIGBcJyAg ZXhjZXB0DQp3aXRoaW4JYCIncyAgd2hlcmUgIGl0ICBvY2N1cnMsIGFuZCB3 aXRoaW4gYCcncyB3aGVyZSBpdCBvY2N1cnMuDQpTdHJpbmdzIHF1b3RlZCBi eSBgJyBhcmUgaW50ZXJwcmV0ZWQgbGF0ZXIgIChzZWUgIGJlbG93KSAgc28g IGAkJw0Kc3Vic3RpdHV0aW9uICBkb2VzIG5vdCBvY2N1ciB0aGVyZSB1bnRp bCBsYXRlciwgaWYgYXQgYWxsLiAgQSBgJCcNCmlzIHBhc3NlZCB1bmNoYW5n ZWQgaWYgZm9sbG93ZWQgYnkgYSBibGFuaywgdGFiLCBvciAgZW5kLW9mLWxp bmUuDQpJbnB1dC9vdXRwdXQgIHJlZGlyZWN0aW9ucyAgYXJlIHJlY29nbml6 ZWQgYmVmb3JlIHZhcmlhYmxlIGV4cGFuLQ0Kc2lvbiwgYW5kIGFyZSB2YXJp YWJsZSBleHBhbmRlZCBzZXBhcmF0ZWx5LiAgT3RoZXJ3aXNlLCB0aGUgIGNv bS0NCm1hbmQgIG5hbWUgYW5kIGVudGlyZSBhcmd1bWVudCBsaXN0IGFyZSBl eHBhbmRlZCB0b2dldGhlci4gIEl0IGlzDQp0aHVzIHBvc3NpYmxlIGZvciB0 aGUgZmlyc3QgKGNvbW1hbmQpIHdvcmQgICh0byAgdGhpcyAgcG9pbnQpICB0 bw0KZ2VuZXJhdGUgIG1vcmUgdGhhbiBvbmUgd29yZCwgdGhlIGZpcnN0IG9m IHdoaWNoIGJlY29tZXMgdGhlIGNvbS0NCm1hbmQgbmFtZSwgYW5kCXRoZSAg cmVzdCAgb2YgIHdoaWNoICBiZWNvbWUgIGFyZ3VtZW50cy4gICBVbmxlc3MN CmVuY2xvc2VkICBpbiAgYCInIG9yIGdpdmVuIHRoZSBgOnEnIG1vZGlmaWVy IHRoZSByZXN1bHRzIG9mIHZhcmktDQphYmxlIHN1YnN0aXR1dGlvbiBtYXkg ZXZlbnR1YWxseSBiZSBjb21tYW5kIGFuZCBmaWxlbmFtZSAgc3Vic3RpLQ0K dHV0ZWQuCSBXaXRoaW4gIGAiJywgYSB2YXJpYWJsZSB3aG9zZSB2YWx1ZSBj b25zaXN0cyBvZiBtdWx0aXBsZQ0Kd29yZHMgZXhwYW5kcyB0byBhIChwb3J0 aW9uIG9mKSBhIHNpbmdsZSB3b3JkLCB3aXRoIHRoZSB3b3JkcyAgb2YNCnRo ZSAgdmFyaWFibGVzIHZhbHVlIHNlcGFyYXRlZCBieSBibGFua3MuICBXaGVu IHRoZSBgOnEnIG1vZGlmaWVyDQppcyBhcHBsaWVkIHRvIGEgc3Vic3RpdHV0 aW9uIHRoZSB2YXJpYWJsZSB3aWxsIGV4cGFuZCB0byBtdWx0aXBsZQ0Kd29y ZHMgIHdpdGggIGVhY2ggd29yZCBzZXBhcmF0ZWQgYnkgYSBibGFuayBhbmQg cXVvdGVkIHRvIHByZXZlbnQNCmxhdGVyIGNvbW1hbmQgb3IgZmlsZW5hbWUg c3Vic3RpdHV0aW9uLiAgIFRoZSAgZm9sbG93aW5nICBtZXRhc2UtDQpxdWVu Y2VzICBhcmUgIHByb3ZpZGVkCWZvciAgaW50cm9kdWNpbmcgdmFyaWFibGUg dmFsdWVzIGludG8gdGhlDQpzaGVsbCBpbnB1dC4gIEV4Y2VwdCBhcyBub3Rl ZCwgaXQgaXMgIGFuICBlcnJvciAgdG8gIHJlZmVyZW5jZQlhDQp2YXJpYWJs ZSB0aGF0IGlzIG5vdCBzZXQuICBBcmUgcmVwbGFjZWQgYnkgdGhlIHdvcmRz IG9mIHRoZSB2YWx1ZQ0Kb2YgdmFyaWFibGUgZWFjaCBzZXBhcmF0ZWQgYnkg YSBibGFuay4JQnJhY2VzIGluc3VsYXRlIGZyb20gZm9sLQ0KbG93aW5nCWNo YXJhY3RlcnMgIHRoYXQgIHdvdWxkICBvdGhlcndpc2UgIGJlIHBhcnQgb2Yg aXQuICBTaGVsbA0KdmFyaWFibGVzIGhhdmUgbmFtZXMgY29uc2lzdGluZyBv ZiB1cCB0byAyMCAgbGV0dGVycyAgYW5kICBkaWdpdHMNCnN0YXJ0aW5nIHdp dGggYSBsZXR0ZXIuICBUaGUgdW5kZXJzY29yZSBjaGFyYWN0ZXIgaXMgY29u c2lkZXJlZCBhDQpsZXR0ZXIuICBJZiBpcyBub3QgYSBzaGVsbCB2YXJpYWJs ZSwgYnV0IGlzIHNldCBpbiAgdGhlICBlbnZpcm9uLQ0KbWVudCwgIHRoZW4g IHRoYXQgIHZhbHVlIGlzIHJldHVybmVkIChidXQgbW9kaWZpZXJzIGFuZCB0 aGUgb3RoZXINCmZvcm1zIGdpdmVuIGJlbG93IGFyZSBub3QgYXZhaWxhYmxl IGhlcmUpLiAgTWF5IGJlIHVzZWQgdG8gc2VsZWN0DQpvbmx5ICBzb21lICBv Zgl0aGUgIHdvcmRzIGZyb20gdGhlIHZhbHVlIG9mIFRoZSBzZWxlY3RvciBp cyBzdWItDQpqZWN0ZWQgdG8gYCQnIHN1YnN0aXR1dGlvbiBhbmQgbWF5IGNv bnNpc3Qgb2YgYSBzaW5nbGUgbnVtYmVyICBvcg0KdHdvICBudW1iZXJzICBz ZXBhcmF0ZWQgIGJ5IGEgYC0nLiAgVGhlIGZpcnN0IHdvcmQgb2YgYSB2YXJp YWJsZXMNCnZhbHVlIGlzIG51bWJlcmVkIGAxJy4JSWYgdGhlIGZpcnN0IG51 bWJlciBvZiBhIHJhbmdlIGlzIG9taXR0ZWQNCml0ICBkZWZhdWx0cyB0byBg MScuICBJZiB0aGUgbGFzdCBudW1iZXIgb2YgYSByYW5nZSBpcyBvbWl0dGVk IGl0DQpkZWZhdWx0cyB0byBgJCNuYW1lJy4gIFRoZSBzZWxlY3RvciBgKicg c2VsZWN0cyBhbGwgd29yZHMuICBJdCBpcw0Kbm90ICBhbiAgZXJyb3IJZm9y IGEgcmFuZ2UgdG8gYmUgZW1wdHkgaWYgdGhlIHNlY29uZCBhcmd1bWVudCBp cw0Kb21pdHRlZCBvciBpbiByYW5nZS4gIEdpdmUgdGhlIG51bWJlciBvZiB3 b3JkcyBpbiAgdGhlCXZhcmlhYmxlLg0KVGhpcyAgaXMgdXNlZnVsIGZvciBs YXRlciB1c2UgaW4gYSBgJGFyZ3Zbc2VsZWN0b3JdJy4gIFN1YnN0aXR1dGUN CnRoZSBuYW1lIG9mIHRoZSBmaWxlIGZyb20gd2hpY2ggY29tbWFuZCBpbnB1 dCBpcyBiZWluZyByZWFkLiAgIEFuDQplcnJvciBvY2N1cnMgaWYgdGhlIG5h bWUgaXMgbm90IGtub3duLglFcXVpdmFsZW50IHRvIGAkYXJndltudW0tDQpi ZXJdJy4JRXF1aXZhbGVudCB0byAgYCRhcmd2WypdJy4gICBUaGUgIG1vZGlm aWVycyAgYDplJywgIGA6aCcsDQpgOnQnLCAgYDpyJywgIGA6cScgIGFuZCAg YDp4JyBtYXkgYmUgYXBwbGllZCB0byB0aGUgc3Vic3RpdHV0aW9ucw0KYWJv dmUgYXMgbWF5IGA6Z2gnLCBgOmd0JyBhbmQgYDpncicuICBJZiBicmFjZXMg YHsnICd9JyBhcHBlYXIgaW4NCnRoZSAgY29tbWFuZCAgZm9ybSAgdGhlbiAg dGhlICBtb2RpZmllcnMgIG11c3QJYXBwZWFyIHdpdGhpbiB0aGUNCmJyYWNl cy4gIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGFsbG93cyBvbmx5IG9u ZSBgOicgIG1vZGlmaWVyDQpvbiAgZWFjaCAgYCQnICBleHBhbnNpb24uICBU aGUgZm9sbG93aW5nIHN1YnN0aXR1dGlvbnMgbWF5IG5vdCBiZQ0KbW9kaWZp ZWQgd2l0aCBgOicgbW9kaWZpZXJzLiAgU3Vic3RpdHV0ZSB0aGUgc3RyaW5n IGAxJyAgaWYgIG5hbWUNCmlzICBzZXQsICBgMCcgIGlmIGl0IGlzIG5vdC4g IFN1YnN0aXR1dGUgYDEnIGlmIHRoZSBjdXJyZW50IGlucHV0DQpmaWxlbmFt ZSBpcyBrbm93biwgYDAnIGlmIGl0IGlzIG5vdC4gICBTdWJzdGl0dXRlICB0 aGUJKGRlY2ltYWwpDQpwcm9jZXNzICBudW1iZXIgIG9mIHRoZSAocGFyZW50 KSBzaGVsbC4gIFN1YnN0aXR1dGUgdGhlIChkZWNpbWFsKQ0KcHJvY2VzcyBu dW1iZXIgb2YgdGhlIGxhc3QgYmFja2dyb3VuZCAgcHJvY2VzcwlzdGFydGVk ICBieSAgdGhpcw0Kc2hlbGwuCSBTdWJzdGl0dXRlICBhIGxpbmUgZnJvbSB0 aGUgc3RhbmRhcmQgaW5wdXQsIHdpdGggbm8gZnVyLQ0KdGhlciBpbnRlcnBy ZXRhdGlvbi4gIEl0IGNhbiBiZSB1c2VkIHRvIHJlYWQgZnJvbSB0aGUga2V5 Ym9hcmQgaW4NCmEgIHNoZWxsICBzY3JpcHQuICBUaGUgcmVtYWluaW5nIHN1 YnN0aXR1dGlvbnMsIGNvbW1hbmQgYW5kIGZpbGUtDQpuYW1lIHN1YnN0aXR1 dGlvbiwgYXJlIGFwcGxpZWQgc2VsZWN0aXZlbHkgdG8gIHRoZSAgYXJndW1l bnRzICBvZg0KYnVpbHRpbiAgY29tbWFuZHMuICAgQnkgIHNlbGVjdGl2ZWx5 LCAgd2UgIG1lYW4gIHRoYXQgcG9ydGlvbnMgb2YNCmV4cHJlc3Npb25zIHdo aWNoIGFyZSBub3QgZXZhbHVhdGVkIGFyZSBub3QgIHN1YmplY3RlZAl0byAg dGhlc2UNCmV4cGFuc2lvbnMuICBGb3IgY29tbWFuZHMgdGhhdCBhcmUgbm90 IGludGVybmFsIHRvIHRoZSBzaGVsbCwgdGhlDQpjb21tYW5kIG5hbWUgaXMg c3Vic3RpdHV0ZWQgc2VwYXJhdGVseSBmcm9tICB0aGUgIGFyZ3VtZW50ICBs aXN0Lg0KVGhpcyAgb2NjdXJzICB2ZXJ5ICBsYXRlLCAgYWZ0ZXIgaW5wdXQt b3V0cHV0IHJlZGlyZWN0aW9uIGlzIHBlci0NCmZvcm1lZCwgYW5kIGluIGEg Y2hpbGQgb2YgdGhlIG1haW4gc2hlbGwuICAgQ29tbWFuZCAgc3Vic3RpdHV0 aW9uDQppcyAgc2hvd24gIGJ5ICBhICBjb21tYW5kIGVuY2xvc2VkIGluIGAn LiAgVGhlIG91dHB1dCBmcm9tIHN1Y2ggYQ0KY29tbWFuZCBpcyBub3JtYWxs eSBicm9rZW4gaW50byBzZXBhcmF0ZSB3b3JkcwlhdCAgYmxhbmtzLCAgdGFi cw0KYW5kICBuZXdsaW5lcywJd2l0aCAgbnVsbCAgd29yZHMgYmVpbmcgZGlz Y2FyZGVkOyB0aGlzIHRleHQgdGhlbg0KcmVwbGFjZXMgdGhlIG9yaWdpbmFs IHN0cmluZy4gIFdpdGhpbiBgIidzLCBvbmx5ICBuZXdsaW5lcyAgZm9yY2UN Cm5ldyAgd29yZHM7IGJsYW5rcyBhbmQgdGFicyBhcmUgcHJlc2VydmVkLiAg SW4gYW55IGNhc2UsIHRoZSBzaW4tDQpnbGUgZmluYWwgbmV3bGluZSBkb2Vz IG5vdCBmb3JjZSBhIG5ldyB3b3JkLiAgIE5vdGUgIHRoYXQgIGl0ICBpcw0K dGh1cyAgcG9zc2libGUgZm9yIGEgY29tbWFuZCBzdWJzdGl0dXRpb24gdG8g eWllbGQgb25seSBwYXJ0IG9mIGENCndvcmQsIGV2ZW4gaWYgdGhlIGNvbW1h bmQgb3V0cHV0cyBhIGNvbXBsZXRlICBsaW5lLiAgIElmICBhICB3b3JkDQpj b250YWlucyAgYW55ICBvZiAgdGhlCWNoYXJhY3RlcnMgYConLCBgPycsIGBb JyBvciBgeycgb3IgYmVnaW5zDQp3aXRoIHRoZSBjaGFyYWN0ZXIgYH4nLCB0 aGVuIHRoYXQgd29yZCBpcyBhIGNhbmRpZGF0ZSAgZm9yICBmaWxlLQ0KbmFt ZSAgc3Vic3RpdHV0aW9uLCAgYWxzbyBrbm93biBhcyBgZ2xvYmJpbmcnLglU aGlzIHdvcmQgaXMgdGhlbg0KcmVnYXJkZWQgYXMgYSBwYXR0ZXJuLCBhbmQg cmVwbGFjZWQgd2l0aCBhbiBhbHBoYWJldGljYWxseSBzb3J0ZWQNCmxpc3Qg IG9mICBmaWxlCW5hbWVzIHRoYXQgbWF0Y2ggdGhlIHBhdHRlcm4uICBJbiBh IGxpc3Qgb2Ygd29yZHMNCnNwZWNpZnlpbmcgZmlsZW5hbWUgc3Vic3RpdHV0 aW9uIGl0IGlzIGFuIGVycm9yIGZvciBubyBwYXR0ZXJuIHRvDQptYXRjaCBh biBleGlzdGluZyBmaWxlIG5hbWUsIGJ1dCBpdCBpcyBub3QgcmVxdWlyZWQg Zm9yIGVhY2ggcGF0LQ0KdGVybiB0byBtYXRjaC4JT25seSB0aGUgbWV0YWNo YXJhY3RlcnMgYConLCBgPycgIGFuZCAgYFsnICBpbXBseQ0KcGF0dGVybiAg bWF0Y2hpbmcsICB0aGUgY2hhcmFjdGVycyBgficgYW5kIGB7JyBiZWluZyBt b3JlIGFraW4gdG8NCmFiYnJldmlhdGlvbnMuCUluIG1hdGNoaW5nIGZpbGVu YW1lcywgdGhlIGNoYXJhY3RlciBgLicgIGF0ICB0aGUNCmJlZ2lubmluZyAg b2YgIGEgZmlsZW5hbWUgb3IgaW1tZWRpYXRlbHkgZm9sbG93aW5nIGEgYC8n LCBhcyB3ZWxsDQphcyB0aGUgY2hhcmFjdGVyIGAvJyBtdXN0IGJlIG1hdGNo ZWQgZXhwbGljaXRseS4gICBUaGUJY2hhcmFjdGVyDQpgKicgIG1hdGNoZXMg YW55IHN0cmluZyBvZiBjaGFyYWN0ZXJzLCBpbmNsdWRpbmcgdGhlIG51bGwg c3RyaW5nLg0KVGhlIGNoYXJhY3RlciBgPycgbWF0Y2hlcyBhbnkgIHNpbmds ZSAgY2hhcmFjdGVyLiAgIFRoZSAgc2VxdWVuY2UNCm1hdGNoZXMgIGFueSAg b25lICBvZiAgdGhlIGNoYXJhY3RlcnMgZW5jbG9zZWQuICBXaXRoaW4gYSBw YWlyIG9mDQpjaGFyYWN0ZXJzIHNlcGFyYXRlZCAgYnkgIGAtJyAgbWF0Y2hl cwlhbnkgIGNoYXJhY3RlcglsZXhpY2FsbHkNCmJldHdlZW4gIHRoZSB0d28g KGluY2x1c2l2ZSkuICBUaGUgY2hhcmFjdGVyIGB+JyBhdCB0aGUgYmVnaW5u aW5nDQpvZiBhIGZpbGVuYW1lIHJlZmVycyB0byBob21lIGRpcmVjdG9yaWVz LiAgU3RhbmRpbmcgYWxvbmUsICBpLmUuLA0KYH4nIGl0IGV4cGFuZHMgdG8g dGhlIGludm9rZXJzIGhvbWUgZGlyZWN0b3J5IGFzIHJlZmxlY3RlZCBpbiB0 aGUNCnZhbHVlIG9mIHRoZSB2YXJpYWJsZSBXaGVuIGZvbGxvd2VkIGJ5IGEg bmFtZSBjb25zaXN0aW5nIG9mICBsZXQtDQp0ZXJzLCAgZGlnaXRzICBhbmQg IGAtJyBjaGFyYWN0ZXJzLCB0aGUgc2hlbGwgc2VhcmNoZXMgZm9yIGEgdXNl cg0Kd2l0aCB0aGF0IG5hbWUgYW5kIHN1YnN0aXR1dGVzIHRoZWlyIGhvbWUg ZGlyZWN0b3J5OyAgdGh1cyBgfmtlbicNCm1pZ2h0CSBleHBhbmQgICAgdG8J IGAvdXNyL2tlbicgICAgYW5kICAgIGB+a2VuL2NobWFjaCcgICAgdG8NCmAv dXNyL2tlbi9jaG1hY2gnLiAgSWYgdGhlIGNoYXJhY3RlciBgficgaXMgZm9s bG93ZWQgYnkgYSBjaGFyYWMtDQp0ZXIgIG90aGVyICB0aGFuIGEgbGV0dGVy IG9yIGAvJyBvciBkb2VzIG5vdCBhcHBlYXIgYXQgdGhlIGJlZ2luLQ0Kbmlu ZyBvZiAgYSAgd29yZCwgIGl0ICBpcyAgbGVmdCAgdW5kaXN0dXJiZWQuCVRo ZSAgbWV0YW5vdGF0aW9uDQpgYXtiLGMsZH1lJyAgaXMgIGEgIHNob3J0aGFu ZCAgZm9yICBgYWJlIGFjZSBhZGUnLiAgTGVmdCB0byByaWdodA0Kb3JkZXIg aXMgcHJlc2VydmVkLCB3aXRoIHJlc3VsdHMgb2YgbWF0Y2hlcyAgYmVpbmcg IHNvcnRlZCAgc2VwYS0NCnJhdGVseSBhdCBhIGxvdyBsZXZlbCB0byBwcmVz ZXJ2ZSB0aGlzIG9yZGVyLiAgVGhpcyBjb25zdHJ1Y3QgbWF5DQpiZSAgIG5l c3RlZC4JVGh1cywJYH5zb3VyY2UvczEve29sZGxzLGxzfS5jJyAgIGV4cGFu ZHMgICAgdG8NCmAvdXNyL3NvdXJjZS9zMS9vbGRscy5jICAvdXNyL3NvdXJj ZS9zMS9scy5jJyAgd2l0aG91dAljaGFuY2Ugb2YNCmVycm9yIGlmIHRoZSBo b21lIGRpcmVjdG9yeSBmb3IgYHNvdXJjZScgaXMgYC91c3Ivc291cmNlJy4g IFNpbWktDQpsYXJseSAgYC4uL3ttZW1vLCpib3h9JyBtaWdodCBleHBhbmQg dG8gYC4uL21lbW8gLi4vYm94IC4uL21ib3gnLg0KKE5vdGUgdGhhdCBgbWVt bycgd2FzIG5vdCBzb3J0ZWQgd2l0aCB0aGUgcmVzdWx0cyBvZiB0aGUgbWF0 Y2ggdG8NCmAqYm94Jy4pICAgQXMgIGEgc3BlY2lhbCBjYXNlIGB7JywgYH0n IGFuZCBge30nIGFyZSBwYXNzZWQgdW5kaXMtDQp0dXJiZWQuICBUaGUgc3Rh bmRhcmQgaW5wdXQgYW5kIHRoZSBzdGFuZGFyZCBvdXRwdXQgb2YgYSAgY29t bWFuZA0KbWF5ICBiZSByZWRpcmVjdGVkIHdpdGggdGhlIGZvbGxvd2luZyBz eW50YXg6IE9wZW4gZmlsZSAod2hpY2ggaXMNCmZpcnN0IHZhcmlhYmxlLCBj b21tYW5kIGFuZCBmaWxlbmFtZSBleHBhbmRlZCkJYXMgIHRoZSAgc3RhbmRh cmQNCmlucHV0LglSZWFkIHRoZSBzaGVsbCBpbnB1dCB1cCB0byBhIGxpbmUg dGhhdCBpcyBpZGVudGljYWwgdG8gaXMNCm5vdCBzdWJqZWN0ZWQgdG8gdmFy aWFibGUsIGZpbGVuYW1lIG9yIGNvbW1hbmQgc3Vic3RpdHV0aW9uLCAgYW5k DQplYWNoICBpbnB1dCBsaW5lIGlzIGNvbXBhcmVkIHRvIGJlZm9yZSBhbnkg c3Vic3RpdHV0aW9ucyBhcmUgZG9uZQ0Kb24gdGhlIGlucHV0IGxpbmUuICBV bmxlc3MgYSBxdW90aW5nIGBcJywgYCInLCBgJyBvciAgYCcgIGFwcGVhcnMN CmluICB2YXJpYWJsZSAgYW5kIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGlzIHBl cmZvcm1lZCBvbiB0aGUgaW50ZXItDQp2ZW5pbmcgbGluZXMsIGFsbG93aW5n IGBcJyB0byBxdW90ZSBgJCcsIGBcJyAgYW5kICBgJy4JIENvbW1hbmRzDQp0 aGF0ICBhcmUgIHN1YnN0aXR1dGVkCWhhdmUgIGFsbCBibGFua3MsIHRhYnMs IGFuZCBuZXdsaW5lcyBwcmUtDQpzZXJ2ZWQsIGV4Y2VwdCBmb3IgdGhlCWZp bmFsICBuZXdsaW5lCXdoaWNoICBpcyAgZHJvcHBlZC4gICBUaGUNCnJlc3Vs dGFudCAgdGV4dCAgaXMgcGxhY2VkIGluIGFuIGFub255bW91cyB0ZW1wb3Jh cnkgZmlsZSB0aGF0IGlzDQpnaXZlbiB0byB0aGUgY29tbWFuZCBhcyBpdHMg c3RhbmRhcmQgaW5wdXQuICBUaGUgZmlsZSBpcyB1c2VkICBhcw0KdGhlICBz dGFuZGFyZCBvdXRwdXQuICBJZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCB0 aGVuIGl0IGlzIGNyZS0NCmF0ZWQ7IGlmIHRoZSBmaWxlIGV4aXN0cywgaXQg aXMgdHJ1bmNhdGVkOyBpdHMgcHJldmlvdXMgIGNvbnRlbnRzDQphcmUgIGxv c3QuICAgSWYgdGhlIHZhcmlhYmxlIGlzIHNldCwgdGhlbiB0aGUgZmlsZSBt dXN0IG5vdCBleGlzdA0Kb3IgYmUgYSBjaGFyYWN0ZXIgc3BlY2lhbCBmaWxl IChlLmcuLCBhIHRlcm1pbmFsIG9yICBgL2Rldi9udWxsJykNCm9yICBhbgll cnJvciByZXN1bHRzLglUaGlzIGhlbHBzIHByZXZlbnQgYWNjaWRlbnRhbCBk ZXN0cnVjdGlvbg0Kb2YgZmlsZXMuICBIZXJlLCB0aGUgYCEnIGZvcm1zCWNh biAgYmUgIHVzZWQgIHRvICBzdXBwcmVzcyAgdGhpcw0KY2hlY2suCSBUaGUg IGZvcm1zIGludm9sdmluZyBgJicgcm91dGUgdGhlIHN0YW5kYXJkIGVycm9y IG91dHB1dA0KaW50byB0aGUgc3BlY2lmaWVkIGZpbGUgYXMgIHdlbGwgIGFz ICB0aGUgIHN0YW5kYXJkICBvdXRwdXQuICAgaXMNCmV4cGFuZGVkIGluIHRo ZSBzYW1lIHdheSBhcyBgPCcgaW5wdXQgZmlsZW5hbWVzIGFyZS4gIFVzZSBm aWxlIGFzDQp0aGUgc3RhbmRhcmQgb3V0cHV0OyBsaWtlIGA+JyBidXQgcGxh Y2VzIG91dHB1dCBhdCB0aGUgZW5kIG9mIHRoZQ0KZmlsZS4JSWYgIHRoZSB2 YXJpYWJsZSBpcyBzZXQsIHRoZW4gaXQgaXMgYW4gZXJyb3IgZm9yIHRoZSBm aWxlDQpub3QgdG8gZXhpc3QgdW5sZXNzIG9uZSBvZiB0aGUgYCEnICBmb3Jt cyAgaXMgIGdpdmVuLglPdGhlcndpc2UNCnNpbWlsYXIgIHRvIGA+Jy4gIEEg Y29tbWFuZCByZWNlaXZlcyB0aGUgZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhl DQpzaGVsbCB3YXMgaW52b2tlZCBhcyBtb2RpZmllZCBieSB0aGUgaW5wdXQt b3V0cHV0IHBhcmFtZXRlcnMgIGFuZA0KdGhlICBwcmVzZW5jZSAgb2YgIHRo ZQljb21tYW5kIGluIGEgcGlwZWxpbmUuCVRodXMsIHVubGlrZSBzb21lDQpw cmV2aW91cyBzaGVsbHMsIGNvbW1hbmRzIHJ1biBmcm9tIGEgZmlsZSBvZiBz aGVsbCBjb21tYW5kcyAgaGF2ZQ0Kbm8gIGFjY2VzcyAgdG8JdGhlIHRleHQg b2YgdGhlIGNvbW1hbmRzIGJ5IGRlZmF1bHQ7IGluc3RlYWQgdGhleQ0KcmVj ZWl2ZSB0aGUgb3JpZ2luYWwgc3RhbmRhcmQgaW5wdXQgb2YgdGhlIHNoZWxs LiAgVGhlIGA8PCcgbWVjaC0NCmFuaXNtICBzaG91bGQgYmUgdXNlZCB0byBw cmVzZW50IGlubGluZSBkYXRhLiAgVGhpcyBwZXJtaXRzIHNoZWxsDQpjb21t YW5kIHNjcmlwdHMgdG8gZnVuY3Rpb24gYXMgY29tcG9uZW50cyBvZiBwaXBl bGluZXMgYW5kIGFsbG93cw0KdGhlICBzaGVsbCAgdG8gYmxvY2sgcmVhZCBp dHMgaW5wdXQuICBOb3RlIHRoYXQgdGhlIGRlZmF1bHQgc3Rhbi0NCmRhcmQg aW5wdXQgZm9yIGEgY29tbWFuZCBydW4gZGV0YWNoZWQgaXMgbW9kaWZpZWQg dG8gYmUgdGhlIGVtcHR5DQpmaWxlICBpbnN0ZWFkIHRoZSBzdGFuZGFyZCBp bnB1dCByZW1haW5zIGFzIHRoZSBvcmlnaW5hbCBzdGFuZGFyZA0KaW5wdXQg b2YgdGhlIHNoZWxsLiAgSWYgdGhpcyBpcyBhIHRlcm1pbmFsICBhbmQgIGlm ICB0aGUgIHByb2Nlc3MNCmF0dGVtcHRzICB0byAgcmVhZCBmcm9tIHRoZSB0 ZXJtaW5hbCwgdGhlbiB0aGUgcHJvY2VzcyB3aWxsIGJsb2NrDQphbmQgdGhl IHVzZXIgd2lsbCBiZSBub3RpZmllZCAoc2VlIGFib3ZlKS4gICBUaGUgIHN0 YW5kYXJkICBlcnJvcg0Kb3V0cHV0CW1heSAgYmUgZGlyZWN0ZWQgdGhyb3Vn aCBhIHBpcGUgd2l0aCB0aGUgc3RhbmRhcmQgb3V0cHV0Lg0KU2ltcGx5IHVz ZSB0aGUgZm9ybSBgfCYnIGluc3RlYWQgb2YganVzdCAgYHwnLgkgU2V2ZXJh bCAgb2YgIHRoZQ0KYnVpbHRpbiAgY29tbWFuZHMgICh0bwliZSAgZGVzY3Jp YmVkIGxhdGVyKSB0YWtlIGV4cHJlc3Npb25zLCBpbg0Kd2hpY2ggdGhlIG9w ZXJhdG9ycyBhcmUgc2ltaWxhciB0byB0aG9zZSAgb2YgIEMsICB3aXRoCXRo ZSAgc2FtZQ0KcHJlY2VkZW5jZS4gICBUaGVzZSAgZXhwcmVzc2lvbnMgYXBw ZWFyIGluIHRoZSBhbmQgY29tbWFuZHMuICBUaGUNCmZvbGxvd2luZyBvcGVy YXRvcnMgYXJlIGF2YWlsYWJsZTogfHwgICYmICB8ICAgJiAgPT0gICE9ICA9 fiAgICF+DQo8PSAgPj0gPCAgPiA8PAk+PiAgKyAgLSAgKiAgLwklICAhICB+ ICAoICApIEhlcmUgdGhlIHByZWNlZGVuY2UNCmluY3JlYXNlcyB0byB0aGUg cmlnaHQsIGA9PScgYCE9JyBgPX4nIGFuZCBgIX4nLCAgYDw9JwlgPj0nICBg PCcNCmFuZCAgYD4nLCAgYDw8JyAgYW5kIGA+PicsIGArJyBhbmQgYC0nLCBg KicgYC8nIGFuZCBgJScgYmVpbmcsIGluDQpncm91cHMsIGF0IHRoZSBzYW1l IGxldmVsLiAgVGhlIGA9PScgYCE9JyBgPX4nIGFuZCBgIX4nIG9wZXJhdG9y cw0KY29tcGFyZSAgdGhlaXIJYXJndW1lbnRzICBhcyBzdHJpbmdzOyBhbGwg b3RoZXJzIG9wZXJhdGUgb24gbnVtLQ0KYmVycy4gIFRoZSBvcGVyYXRvcnMg YD1+JyBhbmQgYCF+JyBhcmUgbGlrZSBgIT0nIGFuZCBgPT0nICBleGNlcHQN CnRoYXQgIHRoZSAgcmlnaHQgaGFuZCBzaWRlIGlzIGEgKGNvbnRhaW5pbmcs IGUuZy4sIGAqJ3MsIGA/J3MgYW5kDQppbnN0YW5jZXMgb2YgYFsuLi5dJykg IGFnYWluc3Qgd2hpY2ggdGhlICBsZWZ0CWhhbmQgIG9wZXJhbmQgIGlzDQpt YXRjaGVkLiAgVGhpcyByZWR1Y2VzIHRoZSBuZWVkIGZvciB1c2Ugb2YgdGhl IHN0YXRlbWVudCBpbiBzaGVsbA0Kc2NyaXB0cyB3aGVuIGFsbCB0aGF0ICBp cyAgcmVhbGx5ICBuZWVkZWQgIGlzICBwYXR0ZXJuCW1hdGNoaW5nLg0KU3Ry aW5ncyAgdGhhdCAgYmVnaW4gd2l0aCBgMCcgYXJlIGNvbnNpZGVyZWQgb2N0 YWwgbnVtYmVycy4gIE51bGwNCm9yIG1pc3NpbmcgYXJndW1lbnRzIGFyZSAg Y29uc2lkZXJlZCAgYDAnLiAgIFRoZSAgcmVzdWx0ICBvZiAgYWxsDQpleHBy ZXNzaW9ucyAgYXJlIHN0cmluZ3MsIHdoaWNoIHJlcHJlc2VudCBkZWNpbWFs IG51bWJlcnMuICBJdCBpcw0KaW1wb3J0YW50IHRvIG5vdGUgdGhhdCBubyB0 d28gY29tcG9uZW50cyAgb2YgIGFuICBleHByZXNzaW9uICBjYW4NCmFwcGVh cglpbiAgdGhlICBzYW1lIHdvcmQ7IGV4Y2VwdCB3aGVuIGFkamFjZW50IHRv IGNvbXBvbmVudHMgb2YNCmV4cHJlc3Npb25zIHRoYXQgYXJlIHN5bnRhY3Rp Y2FsbHkgc2lnbmlmaWNhbnQgdG8gdGhlIHBhcnNlciAoYCYnDQpgfCcgIGA8 JyBgPicgYCgnIGApJyksIHRoZXkgc2hvdWxkIGJlIHN1cnJvdW5kZWQgYnkg c3BhY2VzLiAgQWxzbw0KYXZhaWxhYmxlIGluIGV4cHJlc3Npb25zIGFzIHBy aW1pdGl2ZSBvcGVyYW5kcyBhcmUgY29tbWFuZCBleGVjdS0NCnRpb25zICBl bmNsb3NlZCAgaW4gIGB7JyAgYW5kICBgfScgYW5kIGZpbGUgZW5xdWlyaWVz IG9mIHRoZSBmb3JtDQp3aGVyZSBpcyBvbmUgb2Y6IHIgICAgcmVhZCBhY2Nl c3MgdyAgICB3cml0ZSBhY2Nlc3MgIHgJICBleGVjdXRlDQphY2Nlc3MJZSAg ICBleGlzdGVuY2UJbyAgICBvd25lcnNoaXAJeiAgICB6ZXJvIHNpemUgZiAg ICBwbGFpbg0KZmlsZSBkCSAgZGlyZWN0b3J5IFRoZSBzcGVjaWZpZWQgbmFt ZSBpcyAgY29tbWFuZCAgYW5kICBmaWxlbmFtZQ0KZXhwYW5kZWQgYW5kIHRo ZW4gdGVzdGVkIHRvIHNlZSBpZiBpdCBoYXMgdGhlIHNwZWNpZmllZCByZWxh dGlvbi0NCnNoaXAgdG8gdGhlIHJlYWwgdXNlci4JSWYgdGhlIGZpbGUgZG9l cyBub3QgZXhpc3Qgb3IgaXMgaW5hY2Nlcy0NCnNpYmxlIHRoZW4gYWxsIGVu cXVpcmllcyByZXR1cm4gZmFsc2UsIGkuZS4sIGAwJy4gIENvbW1hbmQgZXhl Y3UtDQp0aW9ucyBzdWNjZWVkLCByZXR1cm5pbmcgdHJ1ZSwgaS5lLiwgYDEn LCBpZiAgdGhlICBjb21tYW5kICBleGl0cw0Kd2l0aCAgc3RhdHVzICAwLCBv dGhlcndpc2UgdGhleSBmYWlsLCByZXR1cm5pbmcgZmFsc2UsIGkuZS4sIGAw Jy4NCklmIG1vcmUgZGV0YWlsZWQgc3RhdHVzIGluZm9ybWF0aW9uIGlzIHJl cXVpcmVkIHRoZW4gdGhlICBjb21tYW5kDQpzaG91bGQJYmUgIGV4ZWN1dGVk IG91dHNpZGUgYW4gZXhwcmVzc2lvbiBhbmQgdGhlIHZhcmlhYmxlIGV4YW0t DQppbmVkLiAgVGhlIHNoZWxsIGNvbnRhaW5zIHNldmVyYWwgY29tbWFuZHMg dGhhdCBjYW4gIGJlICB1c2VkICB0bw0KcmVndWxhdGUgdGhlIGZsb3cgb2Yg Y29udHJvbCBpbiBjb21tYW5kIGZpbGVzIChzaGVsbCBzY3JpcHRzKSBhbmQN CihpbiBsaW1pdGVkIGJ1dCB1c2VmdWwgd2F5cykgZnJvbSB0ZXJtaW5hbCBp bnB1dC4gIFRoZXNlIGNvbW1hbmRzDQphbGwgIG9wZXJhdGUgIGJ5IGZvcmNp bmcgdGhlIHNoZWxsIHRvIHJlcmVhZCBvciBza2lwIGluIGl0cyBpbnB1dA0K YW5kLCBiZWNhdXNlIG9mIHRoZSBpbXBsZW1lbnRhdGlvbiwgIHJlc3RyaWN0 ICB0aGUgIHBsYWNlbWVudCAgb2YNCnNvbWUgb2YgdGhlIGNvbW1hbmRzLiAg VGhlIGFuZCBzdGF0ZW1lbnRzLCBhcyB3ZWxsIGFzIHRoZSBmb3JtIG9mDQp0 aGUgc3RhdGVtZW50IHJlcXVpcmUgdGhhdCB0aGUgbWFqb3Iga2V5d29yZHMg YXBwZWFyIGluIGEgIHNpbmdsZQ0Kc2ltcGxlCWNvbW1hbmQgIG9uIGFuIGlu cHV0IGxpbmUgYXMgc2hvd24gYmVsb3cuICBJZiB0aGUgc2hlbGwncw0KaW5w dXQgaXMgbm90IHNlZWthYmxlLCB0aGUgc2hlbGwgYnVmZmVycyB1cCBpbnB1 dCB3aGVuZXZlciBhIGxvb3ANCmlzICBiZWluZyAgcmVhZCAgYW5kICBwZXJm b3JtcwlzZWVrcyAgaW4gdGhpcyBpbnRlcm5hbCBidWZmZXIgdG8NCmFjY29t cGxpc2ggdGhlIHJlcmVhZGluZyBpbXBsaWVkIGJ5IHRoZSAgbG9vcC4JIChU byAgdGhlICBleHRlbnQNCnRoYXQgIHRoaXMgIGFsbG93cywgIGJhY2t3YXJk IGdvdG8ncyB3aWxsIHN1Y2NlZWQgb24gbm9uLXNlZWthYmxlDQppbnB1dHMu KSAgQnVpbHRpbiBjb21tYW5kcyBhcmUgZXhlY3V0ZWQgd2l0aGluIHRoZSBz aGVsbC4gICBJZglhDQpidWlsdGluICBjb21tYW5kIG9jY3VycyBhcyBhbnkg Y29tcG9uZW50IG9mIGEgcGlwZWxpbmUgZXhjZXB0IHRoZQ0KbGFzdCB0aGVu IGl0IGlzIGV4ZWN1dGVkIGluIGEgc3Vic2hlbGwuICBUaGUgIGZpcnN0ICBm b3JtICBwcmludHMNCmFsbCAgYWxpYXNlcy4JVGhlICBzZWNvbmQgIGZvcm0g cHJpbnRzIHRoZSBhbGlhcyBmb3IgbmFtZS4gIFRoZQ0KZmluYWwgZm9ybSBh c3NpZ25zIHRoZSBzcGVjaWZpZWQgYXMgdGhlIGFsaWFzIG9mIGlzICBjb21t YW5kICBhbmQNCmZpbGVuYW1lIHN1YnN0aXR1dGVkLiAgaXMgbm90IGFsbG93 ZWQgdG8gYmUgb3IgU2hvdyB0aGUgYW1vdW50IG9mDQpkeW5hbWljIG1lbW9y eSBhY3F1aXJlZCwgYnJva2VuIGRvd24gaW50byB1c2VkIGFuZCAgZnJlZSAg bWVtb3J5Lg0KV2l0aCBhbiBhcmd1bWVudCBzaG93cyB0aGUgbnVtYmVyIG9m IGZyZWUgYW5kIHVzZWQgYmxvY2tzIGluIGVhY2gNCnNpemUgY2F0ZWdvcnku CVRoZSBjYXRlZ29yaWVzIHN0YXJ0IGF0IHNpemUgOCBhbmQgZG91YmxlIGF0 IGVhY2gNCnN0ZXAuCVRoaXMgY29tbWFuZCdzIG91dHB1dCBtYXkgdmFyeSBh Y3Jvc3Mgc3lzdGVtIHR5cGVzLCBzaW5jZQ0Kc3lzdGVtcyBvdGhlciB0aGFu IHRoZSBWQVggbWF5IHVzZSBhIGRpZmZlcmVudCBtZW1vcnkgIGFsbG9jYXRv ci4NClB1dCB0aGUgY3VycmVudCBvciBzcGVjaWZpZWQgam9icyBpbnRvIHRo ZSBiYWNrZ3JvdW5kLCBjb250aW51aW5nDQp0aGVtIGlmIHRoZXkgd2VyZSBz dG9wcGVkLiAgQ2F1c2UgZXhlY3V0aW9uIHRvIHJlc3VtZSAgYWZ0ZXIgIHRo ZQ0Kb2YgdGhlIG5lYXJlc3QgZW5jbG9zaW5nIG9yIFRoZSByZW1haW5pbmcg Y29tbWFuZHMgb24gdGhlIGN1cnJlbnQNCmxpbmUgYXJlIGV4ZWN1dGVkLiAg TXVsdGktbGV2ZWwgYnJlYWtzIGFyZSB0aHVzIHBvc3NpYmxlIGJ5IHdyaXQt DQppbmcgIHRoZW0gIGFsbAlvbiBvbmUgbGluZS4gIENhdXNlIGEgYnJlYWsg ZnJvbSBhIHJlc3VtaW5nIGFmdGVyDQp0aGUgQSBsYWJlbCBpbglhICBzdGF0 ZW1lbnQgIGFzICBkaXNjdXNzZWQgIGJlbG93LiAgIENoYW5nZSAgdGhlDQpz aGVsbCdzICB3b3JraW5nICBkaXJlY3RvcnkgIHRvIGRpcmVjdG9yeSBJZiBu byBhcmd1bWVudCBpcyBnaXZlbg0KdGhlbiBjaGFuZ2UgdG8gdGhlIGhvbWUg ZGlyZWN0b3J5IG9mIHRoZSB1c2VyLglJZiBpcyAgbm90ICBmb3VuZA0KYXMg IGEgIHN1YmRpcmVjdG9yeSAgb2YgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IChh bmQgZG9lcyBub3QgYmVnaW4NCndpdGggYC8nLCBgLi8nIG9yIGAuLi8nKSwg dGhlbiBlYWNoIGNvbXBvbmVudCBvZiB0aGUgdmFyaWFibGUgIGlzDQpjaGVj a2VkICB0byAgc2VlICBpZiAgaXQgIGhhcyBhIHN1YmRpcmVjdG9yeSBGaW5h bGx5LCBpZiBhbGwgZWxzZQ0KZmFpbHMgYnV0IGlzIGEgc2hlbGwgdmFyaWFi bGUgd2hvc2UgdmFsdWUgYmVnaW5zIHdpdGggIGAvJywgIHRoZW4NCnRoaXMg aXMgdHJpZWQgdG8gc2VlIGlmIGl0IGlzIGEgZGlyZWN0b3J5LiAgQ29udGlu dWUgZXhlY3V0aW9uIG9mDQp0aGUgbmVhcmVzdCBlbmNsb3Npbmcgb3IgVGhl IHJlc3Qgb2YgdGhlIGNvbW1hbmRzIG9uIHRoZSAgY3VycmVudA0KbGluZSAg YXJlICBleGVjdXRlZC4gIExhYmVsIHRoZSBkZWZhdWx0IGNhc2UgaW4gYSBz dGF0ZW1lbnQuICBUaGUNCmRlZmF1bHQgc2hvdWxkIGNvbWUgYWZ0ZXIgYWxs IGxhYmVscy4gIFByaW50IHRoZSBkaXJlY3Rvcnkgc3RhY2s7DQp0aGUgIHRv cCAgb2YgdGhlIHN0YWNrIGlzIGF0IHRoZSBsZWZ0LCB0aGUgZmlyc3QgZGly ZWN0b3J5IGluIHRoZQ0Kc3RhY2sgYmVpbmcgdGhlIGN1cnJlbnQgZGlyZWN0 b3J5LiAgVGhlIHNwZWNpZmllZCB3b3JkcyBhcmUgd3JpdC0NCnRlbiB0byB0 aGUgc2hlbGwncyBzdGFuZGFyZCBvdXRwdXQsIHNlcGFyYXRlZCBieSBzcGFj ZXMsIGFuZCB0ZXItDQptaW5hdGVkIHdpdGggYSBuZXdsaW5lIHVubGVzcyB0 aGUgb3B0aW9uIGlzIHNwZWNpZmllZC4JIFNlZSAgdGhlDQpkZXNjcmlwdGlv biAgb2YgIHRoZSAgYW5kIHN0YXRlbWVudHMgYmVsb3cuICAoQXMgaW4gVGhl IGFyZ3VtZW50cw0KYXJlIHJlYWQgYXMgaW5wdXQgdG8gdGhlIHNoZWxsIGFu ZCB0aGUgcmVzdWx0aW5nIGNvbW1hbmQocykgIGV4ZS0NCmN1dGVkICBpbiB0 aGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBzaGVsbC4gIFRoaXMgaXMgdXN1 YWxseSB1c2VkDQp0byBleGVjdXRlIGNvbW1hbmRzIGdlbmVyYXRlZCBhcyB0 aGUgcmVzdWx0IG9mIGNvbW1hbmQJb3IgIHZhcmktDQphYmxlICBzdWJzdGl0 dXRpb24sICBzaW5jZSAgcGFyc2luZyBvY2N1cnMgYmVmb3JlIHRoZXNlIHN1 YnN0aXR1LQ0KdGlvbnMuCVNlZSBmb3IgYW4gZXhhbXBsZSBvZiAgdXNpbmcg IFRoZSAgc3BlY2lmaWVkICBjb21tYW5kICBpcw0KZXhlY3V0ZWQgIGluICBw bGFjZSBvZiB0aGUgY3VycmVudCBzaGVsbC4gIFRoZSBzaGVsbCBleGl0cyBl aXRoZXINCndpdGggdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSAoZmlyc3Qg Zm9ybSkgb3Igd2l0aCB0aGUgdmFsdWUgIG9mDQp0aGUgc3BlY2lmaWVkIChz ZWNvbmQgZm9ybSkuICBCcmluZyB0aGUgY3VycmVudCBvciBzcGVjaWZpZWQg am9icw0KaW50byB0aGUgZm9yZWdyb3VuZCwgY29udGludWluZyB0aGVtIGlm IHRoZXkgd2VyZSAgc3RvcHBlZC4gICBUaGUNCnZhcmlhYmxlICBpcyAgc3Vj Y2Vzc2l2ZWx5IHNldCB0byBlYWNoIG1lbWJlciBvZiBhbmQgdGhlIHNlcXVl bmNlDQpvZiBjb21tYW5kcyBiZXR3ZWVuIHRoaXMgY29tbWFuZCBhbmQgdGhl IG1hdGNoaW5nICBhcmUJZXhlY3V0ZWQuDQooQm90aCBhbmQgbXVzdCBhcHBl YXIgYWxvbmUgb24gc2VwYXJhdGUgbGluZXMuKSAgVGhlIGJ1aWx0aW4gY29t LQ0KbWFuZCBtYXkgYmUgdXNlZCB0byBjb250aW51ZSB0aGUgbG9vcCBwcmVt YXR1cmVseSBhbmQgdGhlIGJ1aWx0aW4NCmNvbW1hbmQgIHRvICB0ZXJtaW5h dGUgaXQgcHJlbWF0dXJlbHkuCVdoZW4gdGhpcyBjb21tYW5kIGlzIHJlYWQN CmZyb20gdGhlIHRlcm1pbmFsLCB0aGUgbG9vcCAgaXMgIHJlYWQgIG9uY2Ug IHByb21wdGluZwl3aXRoICBgPycNCmJlZm9yZQlhbnkgIHN0YXRlbWVudHMg IGluIHRoZSBsb29wIGFyZSBleGVjdXRlZC4gIElmIHlvdSBtYWtlIGENCm1p c3Rha2UgdHlwaW5nIGluIGEgbG9vcCBhdCB0aGUgdGVybWluYWwgIHlvdSAg Y2FuICBydWIgIGl0ICBvdXQuDQpMaWtlIGJ1dCBubyBgXCcgZXNjYXBlcyBh cmUgcmVjb2duaXplZCBhbmQgd29yZHMgYXJlIGRlbGltaXRlZCBieQ0KbnVs bCBjaGFyYWN0ZXJzIGluIHRoZSBvdXRwdXQuCVVzZWZ1bCBmb3IgcHJvZ3Jh bXMgdGhhdCB3aXNoICB0bw0KdXNlICB0aGUgc2hlbGwgdG8gZmlsZW5hbWUg ZXhwYW5kIGEgbGlzdCBvZiB3b3Jkcy4gIFRoZSBzcGVjaWZpZWQNCmlzIGZp bGVuYW1lIGFuZCBjb21tYW5kIGV4cGFuZGVkIHRvIHlpZWxkIGEgc3RyaW5n ICBvZgl0aGUgIGZvcm0NCmBsYWJlbCcuICAgVGhlCXNoZWxsICByZXdpbmRz CWl0cyBpbnB1dCBhcyBtdWNoIGFzIHBvc3NpYmxlIGFuZA0Kc2VhcmNoZXMg Zm9yIGEgbGluZSBvZiB0aGUgZm9ybSAgYGxhYmVsOicgIHBvc3NpYmx5ICBw cmVjZWRlZCAgYnkNCmJsYW5rcwlvciAgdGFicy4gICBFeGVjdXRpb24gY29u dGludWVzIGFmdGVyIHRoZSBzcGVjaWZpZWQgbGluZS4NClByaW50IGEgc3Rh dGlzdGljcyBsaW5lIHNob3dpbmcgaG93IGVmZmVjdGl2ZSB0aGUgIGludGVy bmFsICBoYXNoDQp0YWJsZSBoYXMgYmVlbiBhdCBsb2NhdGluZyBjb21tYW5k cyAoYW5kIGF2b2lkaW5nIEFuIGlzIGF0dGVtcHRlZA0KZm9yIGVhY2ggY29t cG9uZW50IG9mIHRoZSB3aGVyZSB0aGUgIGhhc2ggIGZ1bmN0aW9uICBpbmRp Y2F0ZXMJYQ0KcG9zc2libGUgIGhpdCwJYW5kICBpbiBlYWNoIGNvbXBvbmVu dCB0aGF0IGRvZXMgbm90IGJlZ2luIHdpdGggYQ0KYC8nLiAgRGlzcGxheSB0 aGUgaGlzdG9yeSBldmVudCBsaXN0OyBpZiBpcyBnaXZlbiBvbmx5CXRoZSAg bW9zdA0KcmVjZW50CWV2ZW50cwlhcmUgIHByaW50ZWQuCVRoZSAgb3B0aW9u IHJldmVyc2VzIHRoZSBvcmRlciBvZg0KcHJpbnRvdXQgdG8gYmUgbW9zdCBy ZWNlbnQgZmlyc3QgaW5zdGVhZCBvZiAgb2xkZXN0ICBmaXJzdC4gICBUaGUN Cm9wdGlvbiBjYXVzZXMgdGhlIGhpc3RvcnkgbGlzdCB0byBiZSBwcmludGVk IHdpdGhvdXQgbGVhZGluZyBudW0tDQpiZXJzLiAgVGhpcyBmb3JtYXQgcHJv ZHVjZXMgZmlsZXMgc3VpdGFibGUgZm9yIHNvdXJjaW5nIHVzaW5nIHRoZQ0K LWggb3B0aW9uIHRvIElmIHRoZSBzcGVjaWZpZWQgZXhwcmVzc2lvbiBldmFs dWF0ZXMgdHJ1ZSwgdGhlbiB0aGUNCnNpbmdsZSB3aXRoIGFyZ3VtZW50cyBp cyBleGVjdXRlZC4gIFZhcmlhYmxlIHN1YnN0aXR1dGlvbiBvbiBoYXAtDQpw ZW5zIGVhcmx5LCBhdCB0aGUgc2FtZSB0aW1lIGl0IGRvZXMgZm9yIHRoZSBy ZXN0IG9mIHRoZSBjb21tYW5kLg0KbXVzdCBiZSBhIHNpbXBsZSBjb21tYW5k LCBub3QgYSBwaXBlbGluZSwgYSBjb21tYW5kICBsaXN0LCAgb3IJYQ0KcGFy ZW50aGVzaXplZCBjb21tYW5kIGxpc3QuICBJbnB1dC9vdXRwdXQgcmVkaXJl Y3Rpb24gb2NjdXJzIGV2ZW4NCmlmIGlzIGZhbHNlLCBpLmUuLCB3aGVuIGNv bW1hbmQgaXMgZXhlY3V0ZWQgKHRoaXMgaXMgYSBidWcpLiAgIElmDQp0aGUg IHNwZWNpZmllZCBpcyB0cnVlIHRoZW4gdGhlIGNvbW1hbmRzIHVwIHRvIHRo ZSBmaXJzdCBhcmUgZXhlLQ0KY3V0ZWQ7IG90aGVyd2lzZSBpZiBpcyB0cnVl IHRoZW4gdGhlIGNvbW1hbmRzIHVwICB0byAgdGhlICBzZWNvbmQNCmFyZSBl eGVjdXRlZCwgZXRjLiAgQW55IG51bWJlciBvZiBwYWlycyBhcmUgcG9zc2li bGU7IG9ubHkgb25lIGlzDQpuZWVkZWQuICBUaGUgcGFydCBpcyBsaWtld2lz ZSAgb3B0aW9uYWwuICAgKFRoZSAgd29yZHMJYW5kICBtdXN0DQphcHBlYXIJ YXQgdGhlIGJlZ2lubmluZyBvZiBpbnB1dCBsaW5lczsgdGhlIG11c3QgYXBw ZWFyIGFsb25lIG9uDQppdHMgaW5wdXQgbGluZSBvciBhZnRlciBhbiBMaXN0 IHRoZSBhY3RpdmUgam9iczsgdGhlIG9wdGlvbiBsaXN0cw0KcHJvY2VzcyAg aWQncyBpbiBhZGRpdGlvbiB0byB0aGUgbm9ybWFsIGluZm9ybWF0aW9uLiAg U2VuZCBlaXRoZXINCnRoZSBURVJNICh0ZXJtaW5hdGUpIHNpZ25hbCBvciB0 aGUgc3BlY2lmaWVkIHNpZ25hbCB0byB0aGUgc3BlY2ktDQpmaWVkIGpvYnMg b3IgcHJvY2Vzc2VzLiAgU2lnbmFscyBhcmUgZWl0aGVyIGdpdmVuIGJ5IG51 bWJlciBvciBieQ0KbmFtZXMgKGFzIGdpdmVuIGluIHN0cmlwcGVkIG9mIHRo ZSBwcmVmaXggYGBTSUcnJykuICAgVGhlICBzaWduYWwNCm5hbWVzICBhcmUg bGlzdGVkIGJ5IGBga2lsbCAtbCcnLiAgVGhlcmUgaXMgbm8gZGVmYXVsdCwg anVzdCBzYXktDQppbmcgYGtpbGwnIGRvZXMgbm90IHNlbmQgYSBzaWduYWwg dG8gdGhlICBjdXJyZW50ICBqb2IuICAgSWYgIHRoZQ0Kc2lnbmFsCWJlaW5n ICBzZW50IGlzIFRFUk0gKHRlcm1pbmF0ZSkgb3IgSFVQIChoYW5ndXApLCB0 aGVuIHRoZQ0Kam9iIG9yIHByb2Nlc3Mgd2lsbCBiZSBzZW50IGEgQ09OVCAg KGNvbnRpbnVlKQlzaWduYWwJYXMgIHdlbGwuDQpMaW1pdCAgdGhlIGNvbnN1 bXB0aW9uIGJ5IHRoZSBjdXJyZW50IHByb2Nlc3MgYW5kIGVhY2ggcHJvY2Vz cyBpdA0KY3JlYXRlcyB0byBub3QgaW5kaXZpZHVhbGx5IGV4Y2VlZCBvbiAg dGhlICBzcGVjaWZpZWQgIElmICBubyAgaXMNCmdpdmVuLAl0aGVuICB0aGUg IGN1cnJlbnQgbGltaXQgaXMgcHJpbnRlZDsgaWYgbm8gaXMgZ2l2ZW4sIHRo ZW4NCmFsbCBsaW1pdGF0aW9ucyBhcmUgZ2l2ZW4uICBJZiB0aGUgZmxhZyBp cyBnaXZlbiwgdGhlIGhhcmQgbGltaXRzDQphcmUgdXNlZCBpbnN0ZWFkIG9m IHRoZSBjdXJyZW50IGxpbWl0cy4gIFRoZSBoYXJkIGxpbWl0cyBpbXBvc2Ug YQ0KY2VpbGluZyBvbiB0aGUgdmFsdWVzIG9mIHRoZSBjdXJyZW50IGxpbWl0 cy4gIE9ubHkgdGhlIHN1cGVyLXVzZXINCm1heSByYWlzZSB0aGUgaGFyZCBs aW1pdHMsIGJ1dCBhIHVzZXIgbWF5IGxvd2VyIG9yIHJhaXNlIHRoZSBjdXIt DQpyZW50IGxpbWl0cyB3aXRoaW4gdGhlIGxlZ2FsIHJhbmdlLiAgUmVzb3Vy Y2VzIGNvbnRyb2xsYWJsZSAgY3VyLQ0KcmVudGx5CWluY2x1ZGUgICh0aGUg bWF4aW11bSBudW1iZXIgb2YgY3B1LXNlY29uZHMgdG8gYmUgdXNlZCBieQ0K ZWFjaCBwcm9jZXNzKSwgKHRoZSBsYXJnZXN0IHNpbmdsZSBmaWxlICB0aGF0 ICBjYW4gIGJlCWNyZWF0ZWQpLA0KKHRoZSAgbWF4aW11bSAgZ3Jvd3RoIG9m IHRoZSBkYXRhK3N0YWNrIHJlZ2lvbiB2aWEgYmV5b25kIHRoZSBlbmQNCm9m IHRoZSBwcm9ncmFtIHRleHQpLCAodGhlIG1heGltdW0gIHNpemUgIG9mICB0 aGUgIGF1dG9tYXRpY2FsbHktDQpleHRlbmRlZCAgc3RhY2sgIHJlZ2lvbiks ICBhbmQgKHRoZSBzaXplIG9mIHRoZSBsYXJnZXN0IGNvcmUgZHVtcA0KdGhh dCB3aWxsIGJlIGNyZWF0ZWQpLglUaGUgbWF5IGJlIGdpdmVuIGFzIGEgKGZs b2F0aW5nIHBvaW50ICBvcg0KaW50ZWdlcikgbnVtYmVyIGZvbGxvd2VkIGJ5 IGEgc2NhbGUgZmFjdG9yLiAgRm9yIGFsbCBsaW1pdHMgb3RoZXINCnRoYW4g dGhlIGRlZmF1bHQgc2NhbGUgaXMgYGsnICBvciAgYGtpbG9ieXRlcycJKDEw MjQgIGJ5dGVzKTsJYQ0Kc2NhbGUgIGZhY3RvciAgb2YgIGBtJwlvciBgbWVn YWJ5dGVzJyBtYXkgYWxzbyBiZSB1c2VkLiAgRm9yIHRoZQ0KZGVmYXVsdCBz Y2FsZSBpcyBgc2Vjb25kcyc7IGEgc2NhbGUgZmFjdG9yIG9mIGBtJyBmb3Ig bWludXRlcyAgb3INCmBoJyAgZm9yICBob3Vycywgb3IgYSB0aW1lIG9mIHRo ZSBmb3JtIGBtbTpzcycgZ2l2aW5nIG1pbnV0ZXMgYW5kDQpzZWNvbmRzIGFs c28gbWF5IGJlIHVzZWQuICBGb3IJYm90aCAgbmFtZXMgIGFuZCAgc2NhbGUg IGZhY3RvcnMsDQp1bmFtYmlndW91cyAgcHJlZml4ZXMgIG9mICB0aGUJbmFt ZXMgc3VmZmljZS4JVGVybWluYXRlIGEgbG9naW4NCnNoZWxsLCByZXBsYWNp bmcgaXQgd2l0aCBhbiBpbnN0YW5jZSBvZiBUaGlzIGlzIG9uZSAgd2F5ICB0 byAgbG9nDQpvZmYsICBpbmNsdWRlZAlmb3IgIGNvbXBhdGliaWxpdHkgIHdp dGggVGVybWluYXRlIGEgbG9naW4gc2hlbGwuDQpFc3BlY2lhbGx5IHVzZWZ1 bCBpZiBpcyBzZXQuICBUaGUgZmlyc3QgZm9ybSBzZXRzIHRoZSAgc2NoZWR1 bGluZw0KcHJpb3JpdHkgIGZvciB0aGlzIHNoZWxsIHRvIDQuCVRoZSBzZWNv bmQgZm9ybSBzZXRzIHRoZSBwcmlvcml0eQ0KdG8gdGhlIGdpdmVuIFRoZSBm aW5hbCB0d28gZm9ybXMgcnVuIGNvbW1hbmQgYXQgIHByaW9yaXR5ICA0ICBh bmQNCnJlc3BlY3RpdmVseS4JVGhlICBncmVhdGVyIHRoZSBudW1iZXIsIHRo ZSBsZXNzIGNwdSB0aGUgcHJvY2Vzcw0Kd2lsbCBnZXQuICBUaGUgc3VwZXIt dXNlciBtYXkgc3BlY2lmeSBuZWdhdGl2ZSBwcmlvcml0eSBieSAgdXNpbmcN CmBuaWNlICAtbnVtYmVyCS4uLicuICBpcyBhbHdheXMgZXhlY3V0ZWQgaW4g YSBzdWItc2hlbGwsIGFuZCB0aGUNCnJlc3RyaWN0aW9ucyBwbGFjZWQgb24g Y29tbWFuZHMgaW4gc2ltcGxlIHN0YXRlbWVudHMgYXBwbHkuICAgVGhlDQpm aXJzdCAgZm9ybSAgY2FuICBiZSB1c2VkIGluIHNoZWxsIHNjcmlwdHMgdG8g Y2F1c2UgaGFuZ3VwcyB0byBiZQ0KaWdub3JlZCBmb3IgdGhlIHJlbWFpbmRl ciBvZiB0aGUgc2NyaXB0LiAgVGhlIHNlY29uZCBmb3JtICBjYXVzZXMNCnRo ZSAgc3BlY2lmaWVkCWNvbW1hbmQgdG8gYmUgcnVuIHdpdGggaGFuZ3VwcyBp Z25vcmVkLiAgQWxsIHByby0NCmNlc3NlcyBkZXRhY2hlZCB3aXRoIGAmJyAg YXJlICBlZmZlY3RpdmVseSAgQ2F1c2UgIHRoZQlzaGVsbCAgdG8NCm5vdGlm eQl0aGUgdXNlciBhc3luY2hyb25vdXNseSB3aGVuIHRoZSBzdGF0dXMgb2Yg dGhlIGN1cnJlbnQgb3INCnNwZWNpZmllZCBqb2JzIGNoYW5nZTsgbm9ybWFs bHkgbm90aWZpY2F0aW9uIGlzIHByZXNlbnRlZCAgYmVmb3JlDQphICBwcm9t cHQuICBUaGlzIGlzIGF1dG9tYXRpYyBpZiB0aGUgc2hlbGwgdmFyaWFibGUg aXMgc2V0LiAgQ29uLQ0KdHJvbCB0aGUgYWN0aW9uIG9mIHRoZQlzaGVsbCAg b24gIGludGVycnVwdHMuCSBUaGUgIGZpcnN0ICBmb3JtDQpyZXN0b3JlcyAg dGhlICBkZWZhdWx0IGFjdGlvbiBvZiB0aGUgc2hlbGwgb24gaW50ZXJydXB0 cyB3aGljaCBpcw0KdG8gdGVybWluYXRlIHNoZWxsIHNjcmlwdHMgb3IgdG8g cmV0dXJuIHRvIHRoZQl0ZXJtaW5hbCAgY29tbWFuZA0KaW5wdXQgbGV2ZWwu ICBUaGUgc2Vjb25kIGZvcm0gYG9uaW50ciAtJyBjYXVzZXMgYWxsIGludGVy cnVwdHMgdG8NCmJlIGlnbm9yZWQuICBUaGUgZmluYWwgZm9ybSBjYXVzZXMg dGhlIHNoZWxsIHRvIGV4ZWN1dGUgIGEgIGBnb3RvDQpsYWJlbCcJd2hlbiAg YW4gIGludGVycnVwdCBpcyByZWNlaXZlZCBvciBhIGNoaWxkIHByb2Nlc3Mg dGVybWktDQpuYXRlcyBiZWNhdXNlIGl0IHdhcyBpbnRlcnJ1cHRlZC4gIElu IGFueSBjYXNlLCBpZiB0aGUJc2hlbGwgIGlzDQpydW5uaW5nICBkZXRhY2hl ZCAgYW5kIGludGVycnVwdHMgYXJlIGJlaW5nIGlnbm9yZWQsIGFsbCBmb3Jt cyBvZg0KaGF2ZSBubyBtZWFuaW5nIGFuZCBpbnRlcnJ1cHRzIGNvbnRpbnVl ICB0byAgYmUgIGlnbm9yZWQgIGJ5ICB0aGUNCnNoZWxsICBhbmQgIGFsbCBp bnZva2VkIGNvbW1hbmRzLiAgRmluYWxseSBzdGF0ZW1lbnRzIGFyZSBpZ25v cmVkDQppbiAgdGhlICBzeXN0ZW0gIHN0YXJ0dXAgIGZpbGVzICB3aGVyZQlp bnRlcnJ1cHRzICBhcmUgIGRpc2FibGVkDQooL2V0Yy9jc2guY3NocmMsICAg L2V0Yy9jc2gubG9naW4pLiAgIFBvcCAgdGhlCWRpcmVjdG9yeSAgc3RhY2ss DQpyZXR1cm5pbmcgdG8gdGhlIG5ldyB0b3AgZGlyZWN0b3J5LiAgV2l0aCAg YW4gIGFyZ3VtZW50ICBkaXNjYXJkcw0KdGhlICBlbnRyeSAgaW4gdGhlIHN0 YWNrLiAgVGhlIG1lbWJlcnMgb2YgdGhlIGRpcmVjdG9yeSBzdGFjayBhcmUN Cm51bWJlcmVkIGZyb20gdGhlIHRvcCBzdGFydGluZyBhdCAwLiAgSW52b2tl cyBhIGJ1aWx0LWluICB2ZXJzaW9uDQpvZiBhZnRlciBldmFsdWF0aW5nIHRo ZSBhbmQgU2VlIHRoZSBtYW5wYWdlIGZvciBkZXRhaWxzLiAgV2l0aCBubw0K YXJndW1lbnRzLCBleGNoYW5nZXMgdGhlIHRvcCB0d28gZWxlbWVudHMgb2Yg dGhlIGRpcmVjdG9yeSBzdGFjay4NCkdpdmVuICBhICBhcmd1bWVudCwgIGNo YW5nZXMgdG8gdGhlIG5ldyBkaXJlY3RvcnkgKGFsYSBhbmQgcHVzaGVzDQp0 aGUgb2xkIGN1cnJlbnQgd29ya2luZyAgZGlyZWN0b3J5ICAoYXMgIGluICBv bnRvICB0aGUJZGlyZWN0b3J5DQpzdGFjay4JIFdpdGggIGEgIG51bWVyaWMg IGFyZ3VtZW50LCAgcm90YXRlcyB0aGUgYXJndW1lbnQgb2YgdGhlDQpkaXJl Y3Rvcnkgc3RhY2sgYXJvdW5kIHRvIGJlIHRoZSB0b3AgZWxlbWVudCBhbmQg Y2hhbmdlcyAgdG8gIGl0Lg0KVGhlICBtZW1iZXJzICBvZiAgdGhlICBkaXJl Y3RvcnkgIHN0YWNrIGFyZSBudW1iZXJlZCBmcm9tIHRoZSB0b3ANCnN0YXJ0 aW5nIGF0IDAuCUNhdXNlIHRoZSBpbnRlcm5hbCBoYXNoIHRhYmxlIG9mIHRo ZSBjb250ZW50cyAgb2YNCnRoZSBkaXJlY3RvcmllcyBpbiB0aGUgdmFyaWFi bGUgdG8gYmUgcmVjb21wdXRlZC4gIFRoaXMgaXMgbmVlZGVkDQppZiBuZXcg Y29tbWFuZHMgYXJlIGFkZGVkIHRvIGRpcmVjdG9yaWVzIGluICB0aGUgIHdo aWxlICB5b3UgIGFyZQ0KbG9nZ2VkCWluLiAgVGhpcyBzaG91bGQgb25seSBi ZSBuZWNlc3NhcnkgaWYgeW91IGFkZCBjb21tYW5kcyB0bw0Kb25lIG9mIHlv dXIgb3duIGRpcmVjdG9yaWVzLCBvciBpZiBhIHN5c3RlbXMgIHByb2dyYW1t ZXIgIGNoYW5nZXMNCnRoZSAgY29udGVudHMgb2YgYSBzeXN0ZW0gZGlyZWN0 b3J5LiAgVGhlIHNwZWNpZmllZCB3aGljaCBpcyBzdWItDQpqZWN0IHRvIHRo ZSBzYW1lIHJlc3RyaWN0aW9ucyBhcyB0aGUgaW4gdGhlICBvbmUgIGxpbmUJ c3RhdGVtZW50DQphYm92ZSwJaXMgIGV4ZWN1dGVkIHRpbWVzLiAgSS9PIHJl ZGlyZWN0aW9ucyBvY2N1ciBleGFjdGx5IG9uY2UsDQpldmVuIGlmIGlzIDAu ICBUaGUgZmlyc3QgZm9ybSBvZiB0aGUgY29tbWFuZCBzaG93cyB0aGUJdmFs dWUgIG9mDQphbGwgIHNoZWxsICB2YXJpYWJsZXMuCSBWYXJpYWJsZXMgIHRo YXQgaGF2ZSBvdGhlciB0aGFuIGEgc2luZ2xlDQp3b3JkIGFzIHRoZWlyIHZh bHVlIHByaW50IGFzIGEgcGFyZW50aGVzaXplZCB3b3JkIGxpc3QuICBUaGUg c2VjLQ0Kb25kICBmb3JtICBzZXRzICB0byAgdGhlIG51bGwgc3RyaW5nLiAg VGhlIHRoaXJkIGZvcm0gc2V0cyB0byB0aGUNCnNpbmdsZSBUaGUgZm91cnRo IGZvcm0gc2V0cyB0aGUgY29tcG9uZW50IG9mICB0byAgdGhpcwljb21wb25l bnQNCm11c3QgIGFscmVhZHkgZXhpc3QuICBUaGUgZmluYWwgZm9ybSBzZXRz IHRvIHRoZSBsaXN0IG9mIHdvcmRzIGluDQpUaGUgdmFsdWUgaXMgYWx3YXlz IGNvbW1hbmQgYW5kIGZpbGVuYW1lIGV4cGFuZGVkLiAgIFRoZXNlICBhcmd1 LQ0KbWVudHMgbWF5IGJlIHJlcGVhdGVkIHRvIHNldCBtdWx0aXBsZSB2YWx1 ZXMgaW4gYSBzaW5nbGUgc2V0IGNvbS0NCm1hbmQuICBOb3RlIGhvd2V2ZXIs IHRoYXQgIHZhcmlhYmxlICBleHBhbnNpb24JaGFwcGVucyAgZm9yICBhbGwN CmFyZ3VtZW50cyAgYmVmb3JlICBhbnkJc2V0dGluZyBvY2N1cnMuICBUaGUg Zmlyc3QgZm9ybSBsaXN0cyBhbGwNCmN1cnJlbnQgZW52aXJvbm1lbnQgdmFy aWFibGVzLglJdCBpcyBlcXVpdmFsZW50IHRvIFRoZSBsYXN0IGZvcm0NCnNl dHMgIHRoZSAgdmFsdWUgIG9mICBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBi ZSBhIHNpbmdsZSBzdHJpbmcuDQpUaGUgc2Vjb25kIGZvcm0gc2V0cyB0byBh biBlbXB0eSBzdHJpbmcuICBUaGUgbW9zdCBjb21tb25seSAgdXNlZA0KZW52 aXJvbm1lbnQgIHZhcmlhYmxlcwlhbmQgIGFyZSAgYXV0b21hdGljYWxseSAg aW1wb3J0ZWQgIHRvIGFuZA0KZXhwb3J0ZWQgZnJvbSB0aGUgdmFyaWFibGVz IGFuZCB0aGVyZSAgaXMgIG5vICBuZWVkICB0byAgdXNlICBmb3INCnRoZXNl LgkgVGhlIG1lbWJlcnMgb2YgYXJlIHNoaWZ0ZWQgdG8gdGhlIGxlZnQsIGRp c2NhcmRpbmcgSXQgaXMNCmFuIGVycm9yIGZvciBub3QgdG8gYmUgc2V0IG9y IHRvICBoYXZlCWxlc3MgIHRoYW4gIG9uZSAgd29yZCAgYXMNCnZhbHVlLgkg VGhlIHNlY29uZCBmb3JtIHBlcmZvcm1zIHRoZSBzYW1lIGZ1bmN0aW9uIG9u IHRoZSBzcGVjaS0NCmZpZWQgdmFyaWFibGUuCVRoZSBzaGVsbCByZWFkcyBj b21tYW5kcyAgZnJvbQljb21tYW5kcyAgbWF5ICBiZQ0KbmVzdGVkOyAgaWYg IHRoZXkgIGFyZSBuZXN0ZWQgdG9vIGRlZXBseSB0aGUgc2hlbGwgbWF5IHJ1 biBvdXQgb2YNCmZpbGUgZGVzY3JpcHRvcnMuICBBbiBlcnJvciBpbiBhICBh dCAgYW55ICBsZXZlbCAgdGVybWluYXRlcyAgYWxsDQpuZXN0ZWQgY29tbWFu ZHMuICBOb3JtYWxseSBpbnB1dCBkdXJpbmcgY29tbWFuZHMgaXMgbm90IHBs YWNlZCBvbg0KdGhlIGhpc3RvcnkgbGlzdDsgdGhlIG9wdGlvbiBjYXVzZXMg dGhlIGNvbW1hbmRzIHRvIGJlIHBsYWNlZCAgb24NCnRoZSAgaGlzdG9yeSAg bGlzdCAgd2l0aG91dCAgYmVpbmcgZXhlY3V0ZWQuICBTdG9wIHRoZSBjdXJy ZW50IG9yDQpzcGVjaWZpZWQgam9icyB0aGF0IGFyZSBleGVjdXRpbmcgaW4g dGhlIGJhY2tncm91bmQuICAgQ2F1c2UgIHRoZQ0Kc2hlbGwgIHRvICBzdG9w IGluIGl0cyB0cmFja3MsIG11Y2ggYXMgaWYgaXQgaGFkIGJlZW4gc2VudCBh IHN0b3ANCnNpZ25hbCB3aXRoIFRoaXMgaXMgbW9zdCBvZnRlbiB1c2VkIHRv CXN0b3AgIHNoZWxscyAgc3RhcnRlZCAgYnkNCkVhY2ggIGNhc2UgIGxhYmVs ICBpcyAgc3VjY2Vzc2l2ZWx5IG1hdGNoZWQgYWdhaW5zdCB0aGUgc3BlY2lm aWVkDQp3aGljaCBpcyBmaXJzdCBjb21tYW5kIGFuZCBmaWxlbmFtZSBleHBh bmRlZC4gIFRoZSBmaWxlIG1ldGFjaGFyLQ0KYWN0ZXJzCWAqJywgIGA/JyAg YW5kCWBbLi4uXScgICBtYXkgYmUgdXNlZCBpbiB0aGUgY2FzZSBsYWJlbHMs DQp3aGljaCBhcmUgdmFyaWFibGUgZXhwYW5kZWQuICBJZiBub25lIG9mIHRo ZSBsYWJlbHMgbWF0Y2ggIGJlZm9yZQ0KdGhlIGBkZWZhdWx0JyBsYWJlbCBp cyBmb3VuZCwgdGhlbiB0aGUgZXhlY3V0aW9uIGJlZ2lucyBhZnRlciB0aGUN CmRlZmF1bHQgbGFiZWwuCUVhY2ggY2FzZSBsYWJlbCBhbmQgdGhlIGRlZmF1 bHQgbGFiZWwgbXVzdCBhcHBlYXINCmF0IHRoZSBiZWdpbm5pbmcgb2YgYSBs aW5lLiAgVGhlIGNvbW1hbmQgY2F1c2VzIGV4ZWN1dGlvbiB0byBjb24tDQp0 aW51ZSBhZnRlciB0aGUgT3RoZXJ3aXNlIGNvbnRyb2wgbWF5IGZhbGwgIHRo cm91Z2ggIGNhc2UgIGxhYmVscw0KYW5kICB0aGUgZGVmYXVsdCBsYWJlbCBh cyBpbiBDLiAgSWYgbm8gbGFiZWwgbWF0Y2hlcyBhbmQgdGhlcmUgaXMNCm5v IGRlZmF1bHQsIGV4ZWN1dGlvbiBjb250aW51ZXMgYWZ0ZXIgdGhlICBXaXRo ICBubyAgYXJndW1lbnQsCWENCnN1bW1hcnkgIG9mICB0aW1lIHVzZWQgYnkg dGhpcyBzaGVsbCBhbmQgaXRzIGNoaWxkcmVuIGlzIHByaW50ZWQuDQpJZiBh cmd1bWVudHMgYXJlIGdpdmVuIHRoZSBzcGVjaWZpZWQgc2ltcGxlIGNvbW1h bmQgaXMgdGltZWQgIGFuZA0KYSAgdGltZSAgc3VtbWFyeSAgYXMgZGVzY3Jp YmVkIHVuZGVyIHRoZSB2YXJpYWJsZSBpcyBwcmludGVkLiAgSWYNCm5lY2Vz c2FyeSwgYW4gZXh0cmEgc2hlbGwgaXMgY3JlYXRlZCB0byBwcmludCB0aGUg dGltZQlzdGF0aXN0aWMNCndoZW4gIHRoZSBjb21tYW5kIGNvbXBsZXRlcy4g IFRoZSBmaWxlIGNyZWF0aW9uIG1hc2sgaXMgZGlzcGxheWVkDQooZmlyc3Qg Zm9ybSkgb3Igc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUgIChzZWNvbmQg IGZvcm0pLiAgIFRoZQ0KbWFzayAgaXMgZ2l2ZW4gaW4gb2N0YWwuICBDb21t b24gdmFsdWVzIGZvciB0aGUgbWFzayBhcmUgMDAyIGdpdi0NCmluZyBhbGwg YWNjZXNzIHRvIHRoZSBncm91cCBhbmQgcmVhZCBhbmQgZXhlY3V0ZSBhY2Nl c3MgdG8gb3RoZXJzDQpvciAgMDIyICBnaXZpbmcgIGFsbCAgYWNjZXNzIGV4 Y2VwdCB3cml0ZSBhY2Nlc3MgZm9yIHVzZXJzIGluIHRoZQ0KZ3JvdXAgb3Ig b3RoZXJzLiAgQWxsIGFsaWFzZXMgd2hvc2UgIG5hbWVzICBtYXRjaCAgdGhl CXNwZWNpZmllZA0KcGF0dGVybiAgYXJlIGRpc2NhcmRlZC4gIFRodXMgYWxs IGFsaWFzZXMgYXJlIHJlbW92ZWQgYnkgYHVuYWxpYXMNCionLiAgSXQgaXMg bm90IGFuIGVycm9yIGZvciBub3RoaW5nIHRvIGJlICBVc2UJb2YgIHRoZSAg aW50ZXJuYWwNCmhhc2ggIHRhYmxlICB0byAgc3BlZWQgbG9jYXRpb24gb2Yg ZXhlY3V0ZWQgcHJvZ3JhbXMgaXMgZGlzYWJsZWQuDQpSZW1vdmUgdGhlIGxp bWl0YXRpb24gb24gSWYgbm8gaXMgc3BlY2lmaWVkLCB0aGVuIGFsbCBsaW1p dGF0aW9ucw0KYXJlICByZW1vdmVkLglJZiAgaXMJZ2l2ZW4sCXRoZSBjb3Jy ZXNwb25kaW5nIGhhcmQgbGltaXRzIGFyZQ0KcmVtb3ZlZC4gIE9ubHkgdGhl IHN1cGVyLXVzZXIgbWF5IGRvIHRoaXMuICBBbGwgIHZhcmlhYmxlcyAgd2hv c2UNCm5hbWVzICBtYXRjaCAgdGhlICBzcGVjaWZpZWQgcGF0dGVybiBhcmUg cmVtb3ZlZC4gIFRodXMgYWxsIHZhcmktDQphYmxlcyBhcmUgcmVtb3ZlZCBi eSBgdW5zZXQgKic7IHRoaXMgaGFzICBub3RpY2VhYmx5ICBkaXN0YXN0ZWZ1 bA0Kc2lkZS1lZmZlY3RzLglJdCAgaXMJbm90IGFuIGVycm9yIGZvciBub3Ro aW5nIHRvIGJlIFJlbW92ZSBhbGwNCnZhcmlhYmxlcyB3aG9zZSBuYW1lIG1h dGNoIHRoZSBzcGVjaWZpZWQgcGF0dGVybiBmcm9tICB0aGUgIGVudmktDQpy b25tZW50LiAgIFNlZSBhbHNvIHRoZSBjb21tYW5kIGFib3ZlIGFuZCBXYWl0 IGZvciBhbGwgYmFja2dyb3VuZA0Kam9icy4gIElmIHRoZSBzaGVsbCBpcyBp bnRlcmFjdGl2ZSwgdGhlbiBhbiBpbnRlcnJ1cHQgY2FuIGRpc3J1cHQNCnRo ZSAgd2FpdC4gICBBZnRlciAgdGhlIGludGVycnVwdCwgdGhlIHNoZWxsIHBy aW50cyBuYW1lcyBhbmQgam9iDQpudW1iZXJzIG9mICBhbGwgIGpvYnMgIGtu b3duICB0byAgYmUgIG91dHN0YW5kaW5nLiAgIERpc3BsYXkgIHRoZQ0KcmVz b2x2ZWQgIGNvbW1hbmQgIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBieSB0aGUg c2hlbGwuCVdoaWxlIHRoZQ0Kc3BlY2lmaWVkIGV4cHJlc3Npb24gZXZhbHVh dGVzIG5vbi16ZXJvLCB0aGUgY29tbWFuZHMgYmV0d2VlbiB0aGUNCmFuZCAg dGhlIG1hdGNoaW5nIGFyZSBldmFsdWF0ZWQuICBhbmQgbWF5IGJlIHVzZWQg dG8gdGVybWluYXRlIG9yDQpjb250aW51ZSB0aGUgbG9vcCBwcmVtYXR1cmVs eS4JKFRoZSBhbmQgIG11c3QJYXBwZWFyCWFsb25lICBvbg0KdGhlaXIgaW5w dXQgbGluZXMuKSAgUHJvbXB0aW5nIG9jY3VycyBoZXJlIHRoZSBmaXJzdCB0 aW1lIHRocm91Z2gNCnRoZSBsb29wIGFzIGZvciB0aGUgc3RhdGVtZW50IGlm IHRoZSBpbnB1dCBpcyBhIHRlcm1pbmFsLiAgIEJyaW5nDQp0aGUgIHNwZWNp ZmllZAlqb2IgIGludG8gdGhlIGZvcmVncm91bmQuICBDb250aW51ZSB0aGUg c3BlY2lmaWVkDQpqb2IgaW4gdGhlIGJhY2tncm91bmQuCVRoZSBmaXJzdCBm b3JtIHByaW50cyB0aGUgdmFsdWVzICBvZiAgYWxsDQp0aGUgIHNoZWxsICB2 YXJpYWJsZXMuCVRoZSBzZWNvbmQgZm9ybSBzZXRzIHRoZSBzcGVjaWZpZWQg dG8gdGhlDQp2YWx1ZSBvZiBJZiB0aGUgZXhwcmVzc2lvbiBjb250YWlucyBg PCcsIGA+JywgYCYnIG9yIGB8JyB0aGVuICBhdA0KbGVhc3QgIHRoaXMgcGFy dCBvZiB0aGUgZXhwcmVzc2lvbiBtdXN0IGJlIHBsYWNlZCB3aXRoaW4gYCgn IGApJy4NClRoZSB0aGlyZCBmb3JtIGFzc2lnbnMgdGhlIHZhbHVlIG9mIHRv IHRoZSBhcmd1bWVudCBvZglCb3RoICBhbmQNCml0cyAgY29tcG9uZW50IG11 c3QgYWxyZWFkeSBleGlzdC4gIFRoZSBvcGVyYXRvcnMgYCo9JywgYCs9Jywg ZXRjDQphcmUgYXZhaWxhYmxlIGFzIGluIEMuCVRoZSBzcGFjZSBzZXBhcmF0 aW5nIHRoZSAgbmFtZQlmcm9tICB0aGUNCmFzc2lnbm1lbnQgIG9wZXJhdG9y IGlzIG9wdGlvbmFsLiAgU3BhY2VzIGFyZSwgaG93ZXZlciwgbWFuZGF0b3J5 DQppbiBzZXBhcmF0aW5nIGNvbXBvbmVudHMgIG9mICB3aGljaCAgd291bGQg IG90aGVyd2lzZSAgYmUgIHNpbmdsZQ0Kd29yZHMuCSBTcGVjaWFsICBwb3N0 Zml4ICBgKysnICBhbmQgYC0tJyBvcGVyYXRvcnMgaW5jcmVtZW50IGFuZA0K ZGVjcmVtZW50IHJlc3BlY3RpdmVseSwgaS5lLiwgYEAgIGkrKycuICBUaGUg Zm9sbG93aW5nCXZhcmlhYmxlcw0KaGF2ZSAgc3BlY2lhbCBtZWFuaW5nIHRv IHRoZSBzaGVsbC4gIE9mIHRoZXNlLCBhbmQgYXJlIGFsd2F5cyBzZXQNCmJ5 IHRoZSBzaGVsbC4gIEV4Y2VwdCBmb3IgYW5kIHRoaXMgc2V0dGluZyBvY2N1 cnMgIG9ubHkgIGF0ICBpbmktDQp0aWFsaXphdGlvbjsgIHRoZXNlICB2YXJp YWJsZXMJd2lsbCAgbm90IHRoZW4gYmUgbW9kaWZpZWQgdW5sZXNzDQpkb25l IGV4cGxpY2l0bHkgYnkgdGhlIHVzZXIuICBUaGUgc2hlbGwgIGNvcGllcyAg dGhlICBlbnZpcm9ubWVudA0KdmFyaWFibGUgIGludG8JdGhlICB2YXJpYWJs ZSBpbnRvIGFuZCBpbnRvIGFuZCBjb3BpZXMgdGhlc2UgYmFjaw0KaW50byB0 aGUgZW52aXJvbm1lbnQgd2hlbmV2ZXIgIHRoZSAgbm9ybWFsICBzaGVsbCAg dmFyaWFibGVzICBhcmUNCnJlc2V0LgkgVGhlICBlbnZpcm9ubWVudCB2YXJp YWJsZSBpcyBsaWtld2lzZSBoYW5kbGVkOyBpdCBpcyBub3QNCm5lY2Vzc2Fy eSB0byB3b3JyeSBhYm91dCBpdHMgc2V0dGluZyBvdGhlciB0aGFuIGluICB0 aGUgIGZpbGUgIGFzDQppbmZlcmlvciAgcHJvY2Vzc2VzICB3aWxsIGltcG9y dCB0aGUgZGVmaW5pdGlvbiBvZiBmcm9tIHRoZSBlbnZpLQ0Kcm9ubWVudCwg YW5kIHJlLWV4cG9ydCBpdCBpZiB5b3UgdGhlbiAgY2hhbmdlICBpdC4gICBT ZXQgIHRvICB0aGUNCmFyZ3VtZW50cyAgdG8gdGhlIHNoZWxsLCBpdCBpcyBm cm9tIHRoaXMgdmFyaWFibGUgdGhhdCBwb3NpdGlvbmFsDQpwYXJhbWV0ZXJz IGFyZSBzdWJzdGl0dXRlZCwgaS5lLiwgYCQxJyBpcyByZXBsYWNlZCBieSBg JGFyZ3ZbMV0nLA0KZXRjLiAgIEdpdmUgYSBsaXN0IG9mIGFsdGVybmF0ZSBk aXJlY3RvcmllcyBzZWFyY2hlZCB0byBmaW5kIHN1Yi0NCmRpcmVjdG9yaWVz IGluIGNvbW1hbmRzLiAgVGhlIGZ1bGwgcGF0aG5hbWUgb2YgdGhlIGN1cnJl bnQgZGlyZWMtDQp0b3J5LglTZXQgIHdoZW4gIHRoZSBjb21tYW5kIGxpbmUg b3B0aW9uIGlzIGdpdmVuLiAgQ2F1c2VzIGVhY2gNCmNvbW1hbmQgYW5kIGl0 cyBhcmd1bWVudHMgdG8gYmUgZWNob2VkIGp1c3QgIGJlZm9yZSAgaXQgIGlz ICBleGUtDQpjdXRlZC4JIEZvciAgbm9uLWJ1aWx0aW4gIGNvbW1hbmRzICBh bGwgIGV4cGFuc2lvbnMgb2NjdXIgYmVmb3JlDQplY2hvaW5nLiAgQnVpbHRp biBjb21tYW5kcyBhcmUgZWNob2VkIGJlZm9yZSBjb21tYW5kIGFuZCBmaWxl bmFtZQ0Kc3Vic3RpdHV0aW9uLCAgc2luY2UgIHRoZXNlICBzdWJzdGl0dXRp b25zICBhcmUgIHRoZW4gZG9uZSBzZWxlYy0NCnRpdmVseS4gIEVuYWJsZSBm aWxlIG5hbWUgY29tcGxldGlvbi4JQ2FuICBiZSAgZ2l2ZW4JYSAgc3RyaW5n DQp2YWx1ZSB0byBjaGFuZ2UgdGhlIGNoYXJhY3RlcnMgdXNlZCBpbiBoaXN0 b3J5IHN1YnN0aXR1dGlvbi4gIFRoZQ0KZmlyc3QgY2hhcmFjdGVyIG9mIGl0 cyB2YWx1ZSBpcyB1c2VkIGFzIHRoZSBoaXN0b3J5ICBzdWJzdGl0dXRpb24N CmNoYXJhY3RlciwgcmVwbGFjaW5nIHRoZSBkZWZhdWx0IGNoYXJhY3RlciBg IScuICBUaGUgc2Vjb25kIGNoYXItDQphY3RlciBvZiBpdHMgdmFsdWUgcmVw bGFjZXMgdGhlIGNoYXJhY3RlciBgfAheJyBpbiBxdWljawlzdWJzdGl0dS0N CnRpb25zLgkgQ2FuICBiZSBzZXQgdG8gdGhlIHBhdGhuYW1lIHdoZXJlIGhp c3RvcnkgaXMgZ29pbmcgdG8gYmUNCnNhdmVkL3Jlc3RvcmVkLiAgQ2FuIGJl IGdpdmVuIGEgbnVtZXJpYyB2YWx1ZSB0byBjb250cm9sIHRoZSBzaXplDQpv ZiAgdGhlICBoaXN0b3J5ICBsaXN0LiAgIEFueSBjb21tYW5kIHRoYXQgaGFz IGJlZW4gcmVmZXJlbmNlZCBpbg0KdGhpcyBtYW55IGV2ZW50cyB3aWxsIG5v dCBiZSBkaXNjYXJkZWQuICBUb28gbGFyZ2UgdmFsdWVzIG9mICBtYXkNCnJ1 biB0aGUgc2hlbGwgb3V0IG9mIG1lbW9yeS4gIFRoZSBsYXN0IGV4ZWN1dGVk IGNvbW1hbmQgaXMgYWx3YXlzDQpzYXZlZCBvbiB0aGUgaGlzdG9yeSBsaXN0 LiAgVGhlIGhvbWUgZGlyZWN0b3J5CW9mICB0aGUgIGludm9rZXIsDQppbml0 aWFsaXplZCAgZnJvbSAgdGhlCWVudmlyb25tZW50LiAgIFRoZSAgZmlsZW5h bWUgZXhwYW5zaW9uIG9mDQpyZWZlcnMgdG8gdGhpcyB2YXJpYWJsZS4gIElm IHNldCB0aGUgIHNoZWxsICBpZ25vcmVzICBlbmQtb2YtZmlsZQ0KZnJvbSAg aW5wdXQgIGRldmljZXMgIHdoaWNoICBhcmUgdGVybWluYWxzLiAgVGhpcyBw cmV2ZW50cyBzaGVsbHMNCmZyb20gYWNjaWRlbnRhbGx5IGJlaW5nIGtpbGxl ZCBieSBjb250cm9sLUQncy4JVGhlICBmaWxlcyAgd2hlcmUNCnRoZSBzaGVs bCBjaGVja3MgZm9yIG1haWwuICBUaGlzIGNoZWNraW5nIGlzIGRvbmUgYWZ0 ZXIgZWFjaCBjb20tDQptYW5kIGNvbXBsZXRpb24gdGhhdCB3aWxsIHJlc3Vs dCBpbiAgYQlwcm9tcHQsICBpZiAgYQlzcGVjaWZpZWQNCmludGVydmFsICBo YXMgIGVsYXBzZWQuICAgVGhlIHNoZWxsIHNheXMgYFlvdSBoYXZlIG5ldyBt YWlsLicgIGlmDQp0aGUgZmlsZSBleGlzdHMgd2l0aCBhbiBhY2Nlc3MgdGlt ZSBub3QgZ3JlYXRlciB0aGFuICBpdHMgIG1vZGlmeQ0KdGltZS4JSWYgdGhl IGZpcnN0IHdvcmQgb2YgdGhlIHZhbHVlIG9mIGlzIG51bWVyaWMgaXQgc3Bl Y2lmaWVzDQphIGRpZmZlcmVudCBtYWlsIGNoZWNraW5nIGludGVydmFsLCBp biBzZWNvbmRzLCB0aGFuIHRoZSBkZWZhdWx0LA0Kd2hpY2ggIGlzIDEwIG1p bnV0ZXMuICBJZiBtdWx0aXBsZSBtYWlsIGZpbGVzIGFyZSBzcGVjaWZpZWQs IHRoZW4NCnRoZSBzaGVsbCBzYXlzIGBOZXcgbWFpbCBpbiB3aGVuIHRoZXJl IGlzIG1haWwJaW4gIHRoZSAgZmlsZSAgQXMNCmRlc2NyaWJlZCAgaW4gIHRo ZSAgc2VjdGlvbiAgb24gcmVzdHJpY3Rpb25zIGFyZSBwbGFjZWQgb24gb3V0 cHV0DQpyZWRpcmVjdGlvbiB0byBpbnN1cmUgdGhhdCBmaWxlcyBhcmUgbm90 IGFjY2lkZW50YWxseSAgZGVzdHJveWVkLA0KYW5kICB0aGF0ICBgPj4nICBy ZWRpcmVjdGlvbnMgIHJlZmVyICB0byBleGlzdGluZyBmaWxlcy4gIElmIHNl dCwNCmZpbGVuYW1lIGV4cGFuc2lvbiBpcyBpbmhpYml0ZWQuICBUaGlzIGlu aGliaXRpb24gaXMgbW9zdCAgdXNlZnVsDQppbiAgc2hlbGwgc2NyaXB0cyB0 aGF0IGFyZSBub3QgZGVhbGluZyB3aXRoIGZpbGVuYW1lcywgb3IgYWZ0ZXIg YQ0KbGlzdCBvZiBmaWxlbmFtZXMgaGFzIGJlZW4gb2J0YWluZWQgYW5kICBm dXJ0aGVyICBleHBhbnNpb25zICBhcmUNCm5vdCAgZGVzaXJhYmxlLiAgSWYg c2V0LCBpdCBpcyBub3QgYW4gZXJyb3IgZm9yIGEgZmlsZW5hbWUgZXhwYW4t DQpzaW9uIHRvIG5vdCBtYXRjaCBhbnkgZXhpc3RpbmcgZmlsZXM7IGluc3Rl YWQgdGhlIHByaW1pdGl2ZSAgcGF0LQ0KdGVybiBpcyByZXR1cm5lZC4gIEl0 IGlzIHN0aWxsIGFuIGVycm9yIGZvciB0aGUgcHJpbWl0aXZlIHBhdHRlcm4N CnRvIGJlIG1hbGZvcm1lZCwgaS5lLiwgYGVjaG8gWycgc3RpbGwgZ2l2ZXMg YW4JZXJyb3IuCSBJZiAgc2V0LA0KdGhlIHNoZWxsIG5vdGlmaWVzIGFzeW5j aHJvbm91c2x5IG9mIGpvYiBjb21wbGV0aW9uczsgdGhlIGRlZmF1bHQNCmlz IHRvIHByZXNlbnQgam9iIGNvbXBsZXRpb25zICBqdXN0ICBiZWZvcmUgIHBy aW50aW5nICBhICBwcm9tcHQuDQpFYWNoICB3b3JkICBvZgl0aGUgIHBhdGgg dmFyaWFibGUgc3BlY2lmaWVzIGEgZGlyZWN0b3J5IGluIHdoaWNoDQpjb21t YW5kcyBhcmUgdG8gYmUgc291Z2h0IGZvciBleGVjdXRpb24uICBBIG51bGwg IHdvcmQJc3BlY2lmaWVzDQp0aGUgIGN1cnJlbnQgIGRpcmVjdG9yeS4gICBJ ZiB0aGVyZSBpcyBubyB2YXJpYWJsZSB0aGVuIG9ubHkgZnVsbA0KcGF0aCBu YW1lcyB3aWxsIGV4ZWN1dGUuICBUaGUgdXN1YWwgc2VhcmNoIHBhdGggIGlz ICBgLicsICBgL2JpbicNCmFuZCBgL3Vzci9iaW4nLCBidXQgdGhpcyBtYXkg dmFyeSBmcm9tIHN5c3RlbSB0byBzeXN0ZW0uICBGb3IgdGhlDQpzdXBlci11 c2VyICB0aGUgIGRlZmF1bHQgIHNlYXJjaCAgcGF0aAlpcyAgYC9ldGMnLCAg YC9iaW4nICAgYW5kDQpgL3Vzci9iaW4nLiAgIEEgIHNoZWxsCXRoYXQgIGlz IGdpdmVuIG5laXRoZXIgdGhlIG5vciB0aGUgb3B0aW9uDQp3aWxsIG5vcm1h bGx5IGhhc2ggdGhlIGNvbnRlbnRzIG9mIHRoZSBkaXJlY3RvcmllcyBpbiAg dGhlICB2YXJpLQ0KYWJsZSAgYWZ0ZXIgIHJlYWRpbmcgYW5kIGVhY2ggdGlt ZSB0aGUgdmFyaWFibGUgaXMgcmVzZXQuICBJZiBuZXcNCmNvbW1hbmRzIGFy ZSBhZGRlZCAgdG8JdGhlc2UgIGRpcmVjdG9yaWVzICB3aGlsZSAgdGhlCXNo ZWxsICBpcw0KYWN0aXZlLCAgaXQgIG1heSAgYmUgbmVjZXNzYXJ5IHRvIGRv IGEgb3IgdGhlIGNvbW1hbmRzIG1heSBub3QgYmUNCmZvdW5kLglUaGUgc3Ry aW5nIHRoYXQgaXMgcHJpbnRlZCBiZWZvcmUgZWFjaAljb21tYW5kICBpcyAg cmVhZA0KZnJvbSAgYW4gIGludGVyYWN0aXZlICB0ZXJtaW5hbCAgaW5wdXQu ICAgSWYgYSBgIScgYXBwZWFycyBpbiB0aGUNCnN0cmluZyBpdCB3aWxsIGJl IHJlcGxhY2VkIGJ5IHRoZSBjdXJyZW50IGV2ZW50IG51bWJlcgl1bmxlc3MJ YQ0KcHJlY2VkaW5nICBgXCcgaXMgZ2l2ZW4uICBEZWZhdWx0IGlzIGAlICcs IG9yIGAjICcgZm9yIHRoZSBzdXBlci0NCnVzZXIuICBJcyBnaXZlbiBhIG51 bWVyaWMgdmFsdWUgdG8gY29udHJvbCB0aGUgbnVtYmVyIG9mICBlbnRyaWVz DQpvZiAgdGhlICBoaXN0b3J5ICBsaXN0IHRoYXQgYXJlIHNhdmVkIGluIH4v Lmhpc3Rvcnkgd2hlbiB0aGUgdXNlcg0KbG9ncyBvdXQuICBBbnkgY29tbWFu ZCB0aGF0IGhhcyAgYmVlbiAgcmVmZXJlbmNlZCAgaW4gIHRoaXMgIG1hbnkN CmV2ZW50cwl3aWxsIGJlIHNhdmVkLglEdXJpbmcgc3RhcnQgdXAgdGhlIHNo ZWxsIHNvdXJjZXMgfi8uaGlzLQ0KdG9yeSBpbnRvIHRoZSBoaXN0b3J5IGxp c3QgZW5hYmxpbmcgaGlzdG9yeSB0bwliZSAgc2F2ZWQgIGFjcm9zcw0KbG9n aW5zLiAgIFRvbyAgbGFyZ2UgIHZhbHVlcyAgb2YgIHdpbGwgc2xvdyBkb3du IHRoZSBzaGVsbCBkdXJpbmcNCnN0YXJ0IHVwLiAgSWYgaXMganVzdCBzZXQs IHRoZSBzaGVsbCB3aWxsIHVzZSB0aGUgIHZhbHVlICBvZiAgVGhlDQpmaWxl ICBpbiB3aGljaCB0aGUgc2hlbGwgcmVzaWRlcy4gIFRoaXMgdmFyaWFibGUg aXMgdXNlZCBpbiBmb3JrLQ0KaW5nIHNoZWxscyB0byBpbnRlcnByZXQgZmls ZXMgdGhhdCBoYXZlICBleGVjdXRlICBiaXRzCXNldCwgIGJ1dA0Kd2hpY2gg IGFyZSBub3QgZXhlY3V0YWJsZSBieSB0aGUgc3lzdGVtLiAgKFNlZSB0aGUg ZGVzY3JpcHRpb24gb2YNCmJlbG93LikgIEluaXRpYWxpemVkIHRvIHRoZSAo c3lzdGVtLWRlcGVuZGVudCkgaG9tZSBvZiB0aGUgc2hlbGwuDQpUaGUgc3Rh dHVzIHJldHVybmVkIGJ5IHRoZSBsYXN0IGNvbW1hbmQuICBJZiBpdCB0ZXJt aW5hdGVkIGFibm9yLQ0KbWFsbHksIHRoZW4gMDIwMCBpcyBhZGRlZCB0byB0 aGUgc3RhdHVzLiAgQnVpbHRpbiAgY29tbWFuZHMgIHRoYXQNCmZhaWwgIHJl dHVybiBleGl0IHN0YXR1cyBgMScsIGFsbCBvdGhlciBidWlsdGluIGNvbW1h bmRzIHNldCBzdGEtDQp0dXMgdG8gYDAnLiAgQ29udHJvbCBhdXRvbWF0aWMg dGltaW5nIG9mIGNvbW1hbmRzLiAgSWYgc2V0LCAgdGhlbg0KYW55IGNvbW1h bmQgdGhhdCB0YWtlcyBtb3JlIHRoYW4gdGhpcyBtYW55IGNwdSBzZWNvbmRz IHdpbGwgY2F1c2UNCmEgbGluZSBnaXZpbmcgdXNlciwgc3lzdGVtLCBhbmQg cmVhbCB0aW1lcyBhbmQgYSB1dGlsaXphdGlvbiBwZXItDQpjZW50YWdlIHdo aWNoIGlzIHRoZSByYXRpbyBvZiB1c2VyIHBsdXMgc3lzdGVtIHRpbWVzIHRv IHJlYWwgdGltZQ0KdG8gYmUgcHJpbnRlZCB3aGVuICBpdAl0ZXJtaW5hdGVz LiAgIFNldCAgYnkgIHRoZSAgY29tbWFuZCAgbGluZQ0Kb3B0aW9uLCBjYXVz ZXMgdGhlIHdvcmRzIG9mIGVhY2ggY29tbWFuZCB0byBiZSBwcmludGVkIGFm dGVyIGhpcy0NCnRvcnkgc3Vic3RpdHV0aW9uLiAgV2hlbiBhIGNvbW1hbmQg dG8gYmUgZXhlY3V0ZWQgaXMgZm91bmQgdG8gbm90DQpiZSAgYSAgYnVpbHRp bgljb21tYW5kIHRoZSBzaGVsbCBhdHRlbXB0cyB0byBleGVjdXRlIHRoZSBj b21tYW5kDQp2aWEgRWFjaCB3b3JkIGluIHRoZSB2YXJpYWJsZSBuYW1lcyBh IGRpcmVjdG9yeSAgZnJvbSAgd2hpY2ggIHRoZQ0Kc2hlbGwgIHdpbGwgIGF0 dGVtcHQgdG8gZXhlY3V0ZSB0aGUgY29tbWFuZC4gIElmIGl0IGlzIGdpdmVu IG5laS0NCnRoZXIgYSBub3IgYSBvcHRpb24sIHRoZSBzaGVsbAl3aWxsICBo YXNoICB0aGUgIG5hbWVzCWluICB0aGVzZQ0KZGlyZWN0b3JpZXMgaW50byBh biBpbnRlcm5hbCB0YWJsZSBzbyB0aGF0IGl0IHdpbGwgb25seSB0cnkgYW4g aW4NCmEgZGlyZWN0b3J5IGlmIHRoZXJlIGlzIGEgcG9zc2liaWxpdHkgdGhh dCAgdGhlICBjb21tYW5kICByZXNpZGVzDQp0aGVyZS4JIFRoaXMgIHNob3J0 Y3V0IGdyZWF0bHkgc3BlZWRzIGNvbW1hbmQgbG9jYXRpb24gd2hlbiBtYW55 DQpkaXJlY3RvcmllcyBhcmUgcHJlc2VudCBpbiB0aGUgc2VhcmNoIHBhdGgu ICAgSWYgIHRoaXMJbWVjaGFuaXNtDQpoYXMgYmVlbiB0dXJuZWQgb2ZmICh2 aWEgb3IgaWYgdGhlIHNoZWxsIHdhcyBnaXZlbiBhIG9yIGFyZ3VtZW50LA0K YW5kIGluIGFueSBjYXNlIGZvciBlYWNoIGRpcmVjdG9yeSBjb21wb25lbnQg IG9mICB0aGF0CWRvZXMgIG5vdA0KYmVnaW4gIHdpdGggIGEgYC8nLCB0aGUg c2hlbGwgY29uY2F0ZW5hdGVzIHdpdGggdGhlIGdpdmVuIGNvbW1hbmQNCm5h bWUgdG8gZm9ybSBhIHBhdGggbmFtZSBvZiBhIGZpbGUgd2hpY2ggaXQgdGhl biBhdHRlbXB0cyB0byBleGUtDQpjdXRlLglQYXJlbnRoZXNpemVkIGNvbW1h bmRzIGFyZSBhbHdheXMgZXhlY3V0ZWQgaW4gYSBzdWJzaGVsbC4NClRodXMg cHJpbnRzIHRoZSBkaXJlY3Rvcnk7IGxlYXZpbmcgeW91IHdoZXJlIHlvdSAg d2VyZQkocHJpbnRpbmcNCnRoaXMgIGFmdGVyICB0aGUgIGhvbWUgZGlyZWN0 b3J5KSwgd2hpbGUgbGVhdmVzIHlvdSBpbiB0aGUgZGlyZWMtDQp0b3J5LiAg UGFyZW50aGVzaXplZCBjb21tYW5kcyBhcmUgbW9zdCBvZnRlbiB1c2VkIHRv IHByZXZlbnQgZnJvbQ0KYWZmZWN0aW5nIHRoZSBjdXJyZW50IHNoZWxsLiAg SWYgdGhlIGZpbGUgaGFzIGV4ZWN1dGUgcGVybWlzc2lvbnMNCmJ1dCBpcyBu b3QgYW4gZXhlY3V0YWJsZSBiaW5hcnkgdG8gdGhlIHN5c3RlbSwgdGhlbiBp dCBpcyBhc3N1bWVkDQp0byBiZSBhIGZpbGUgY29udGFpbmluZyBzaGVsbCBj b21tYW5kcyBhbmQgYSBuZXcgc2hlbGwgaXMgc3Bhd25lZA0KdG8gcmVhZCBp dC4gIElmIHRoZXJlIGlzIGFuIGZvciB0aGVuIHRoZSB3b3JkcyBvZiB0aGUg YWxpYXMgIHdpbGwNCmJlIHByZXBlbmRlZCB0byB0aGUgYXJndW1lbnQgbGlz dCB0byBmb3JtIHRoZSBzaGVsbCBjb21tYW5kLiAgVGhlDQpmaXJzdCB3b3Jk IG9mIHRoZSBzaG91bGQgYmUgdGhlICBmdWxsICBwYXRoICBuYW1lICBvZiAg dGhlICBzaGVsbA0KKGUuZy4sCWAkc2hlbGwnKS4gICBOb3RlIHRoYXQgdGhp cyBpcyBhIHNwZWNpYWwsIGxhdGUgb2NjdXJyaW5nLA0KY2FzZSBvZiBzdWJz dGl0dXRpb24sIGFuZCBvbmx5IGFsbG93cyB3b3JkcyB0bwliZSAgcHJlcGVu ZGVkICB0bw0KdGhlICBhcmd1bWVudCAgbGlzdCAgd2l0aG91dCAgY2hhbmdl LiAgVGhlIHNoZWxsIG5vcm1hbGx5IGlnbm9yZXMNCnNpZ25hbHMuICBKb2Jz IHJ1bm5pbmcgZGV0YWNoZWQgKGVpdGhlciBieSBvciAgdGhlICBvcgljb21t YW5kcykNCmFyZSAgaW1tdW5lICB0byAgc2lnbmFscyAgZ2VuZXJhdGVkICBm cm9tIHRoZSBrZXlib2FyZCwgaW5jbHVkaW5nDQpoYW5ndXBzLiAgT3RoZXIg c2lnbmFscyBoYXZlIHRoZSB2YWx1ZXMgd2hpY2ggdGhlIHNoZWxsIGluaGVy aXRlZA0KZnJvbSAgaXRzICBwYXJlbnQuICBUaGUgc2hlbGwncyBoYW5kbGlu ZyBvZiBpbnRlcnJ1cHRzIGFuZCB0ZXJtaS0NCm5hdGUgc2lnbmFscyBpbiBz aGVsbCBzY3JpcHRzIGNhbiBiZSBjb250cm9sbGVkIGJ5ICBMb2dpbiAgc2hl bGxzDQpjYXRjaCAgdGhlIHNpZ25hbDsgb3RoZXJ3aXNlIHRoaXMgc2lnbmFs IGlzIHBhc3NlZCBvbiB0byBjaGlsZHJlbg0KZnJvbSB0aGUgc3RhdGUgaW4g dGhlIHNoZWxsJ3MgcGFyZW50LiAgSW50ZXJydXB0cyBhcmUgbm90IGFsbG93 ZWQNCndoZW4gIGEgbG9naW4gc2hlbGwgaXMgcmVhZGluZyB0aGUgZmlsZSBK b2IgY29udHJvbCBhbmQgZGlyZWN0b3J5DQpzdGFjayBmZWF0dXJlcyBmaXJz dCBpbXBsZW1lbnRlZCBieSBvZiBJSUFTQSwgTGF4ZW5idXJnLCBBdXN0cmlh LA0Kd2l0aCAgZGlmZmVyZW50ICBzeW50YXggdGhhbiB0aGF0IHVzZWQgbm93 LiAgRmlsZSBuYW1lIGNvbXBsZXRpb24NCmNvZGUgd3JpdHRlbiBieSBIUCBM YWJzLiAgRWlnaHQtYml0IGltcGxlbWVudGF0aW9uICBDb3JuZWxsICBVbmkt DQp2ZXJzaXR5LiAgIHJlYWQgYXQgYmVnaW5uaW5nIG9mIGV4ZWN1dGlvbiBi eSBlYWNoIHNoZWxsLiAgcmVhZCBieQ0KbG9naW4gc2hlbGwsIGFmdGVyIGAu Y3NocmMnIGF0IGxvZ2luLiAgcmVhZCBieQlsb2dpbiAgc2hlbGwsICBhdA0K bG9nb3V0LiAgIHN0YW5kYXJkICBzaGVsbCwgIGZvciBzaGVsbCBzY3JpcHRz IG5vdCBzdGFydGluZyB3aXRoIGENCmAjJy4gIHRlbXBvcmFyeSBmaWxlIGZv ciBgPDwnLglzb3VyY2Ugb2YgIGhvbWUgIGRpcmVjdG9yaWVzICBmb3INCmB+ bmFtZScuICBXb3JkIGxlbmd0aHMgLSBXb3JkcyBjYW4gYmUgbm8gbG9uZ2Vy IHRoYW4gMTAyNCBjaGFyYWMtDQp0ZXJzLiAgVGhlIHN5c3RlbSBsaW1pdHMg YXJndW1lbnQgbGlzdHMgdG8gMTAyNDAgY2hhcmFjdGVycy4gIFRoZQ0KbnVt YmVyIG9mIGFyZ3VtZW50cyB0byBhIGNvbW1hbmQgdGhhdCBpbnZvbHZlcyBm aWxlbmFtZSBleHBhbnNpb24NCmlzIGxpbWl0ZWQgdG8gMS82J3RoIHRoZSBu dW1iZXIgb2YgY2hhcmFjdGVycyBhbGxvd2VkIGluIGFuIGFyZ3UtDQptZW50 ICBsaXN0LiAgQ29tbWFuZCBzdWJzdGl0dXRpb25zIG1heSBzdWJzdGl0dXRl IG5vIG1vcmUgY2hhcmFjLQ0KdGVycyB0aGFuIGFyZSBhbGxvd2VkIGluIGFu IGFyZ3VtZW50IGxpc3QuICAgVG8gIGRldGVjdCAgbG9vcGluZywNCnRoZSAg c2hlbGwgcmVzdHJpY3RzIHRoZSBudW1iZXIgb2Ygc3Vic3RpdHV0aW9ucyBv biBhIHNpbmdsZSBsaW5lDQp0byAyMC4NCmFwcGVhcmVkIGluIEl0IHdhcyBh IGZpcnN0IGltcGxlbWVudGF0aW9uIG9mIGEJY29tbWFuZCAgbGFuZ3VhZ2UN CmludGVycHJldGVyICBpbmNvcnBvcmF0aW5nICBhICBoaXN0b3J5IG1lY2hh bmlzbSAoc2VlIGpvYiBjb250cm9sDQpmYWNpbGl0aWVzIChzZWUgaW50ZXJh Y3RpdmUgZmlsZSBuYW1lIGFuZCAgdXNlciAgbmFtZSAgY29tcGxldGlvbg0K KHNlZSAgYW5kICBhICBDLWxpa2Ugc3ludGF4LiAgVGhlcmUgYXJlIG5vdyBt YW55IHNoZWxscyB0aGF0IGFsc28NCmhhdmUgdGhlc2UgbWVjaGFuaXNtcywg cGx1cyBhIGZldyBtb3JlIChhbmQgbWF5YmUgc29tZSBidWdzIHRvbyksDQp3 aGljaCAgYXJlICBhdmFpbGFibGUgIHRocm91Z2gJdGhlICB1c2VuZXQuICAg V2hlbiAgYSBjb21tYW5kIGlzDQpyZXN0YXJ0ZWQgZnJvbSBhIHN0b3AsIHRo ZSBzaGVsbCBwcmludHMgdGhlIGRpcmVjdG9yeSBpdCAgc3RhcnRlZA0KaW4g IGlmCXRoaXMgaXMgZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgZGlyZWN0 b3J5OyB0aGlzIGNhbiBiZQ0KbWlzbGVhZGluZyAoaS5lLiwgd3JvbmcpIGFz IHRoZSBqb2IgbWF5IGhhdmUgY2hhbmdlZCAgZGlyZWN0b3JpZXMNCmludGVy bmFsbHkuCVNoZWxsCSBidWlsdGluICAgIGZ1bmN0aW9ucwlhcmUgICBub3Qg ICBzdG9wLQ0KcGFibGUvcmVzdGFydGFibGUuICBDb21tYW5kIHNlcXVlbmNl cyBvZiB0aGUgZm9ybSBgYSA7IGIgOyBjJyBhcmUNCmFsc28gIG5vdCAgaGFu ZGxlZCBncmFjZWZ1bGx5IHdoZW4gc3RvcHBpbmcgaXMgYXR0ZW1wdGVkLiAg SWYgeW91DQpzdXNwZW5kIGBiJywgdGhlIHNoZWxsIHdpbGwgaW1tZWRpYXRl bHkgIGV4ZWN1dGUgIGBjJy4JIFRoaXMgIGlzDQplc3BlY2lhbGx5ICBub3Rp Y2VhYmxlCWlmIHRoaXMgZXhwYW5zaW9uIHJlc3VsdHMgZnJvbSBhbiBJdCBz dWYtDQpmaWNlcyB0byBwbGFjZSB0aGUgc2VxdWVuY2Ugb2YgY29tbWFuZHMg aW4gKCkncyB0byBmb3JjZSBpdCB0bwlhDQpzdWJzaGVsbCwgIGkuZS4sICBg KCBhIDsgYiA7IGMgKScuICBDb250cm9sIG92ZXIgdHR5IG91dHB1dCBhZnRl cg0KcHJvY2Vzc2VzIGFyZSBzdGFydGVkIGlzIHByaW1pdGl2ZTsgIHBlcmhh cHMgIHRoaXMgIHdpbGwgIGluc3BpcmUNCnNvbWVvbmUgIHRvIHdvcmsgb24g YSBnb29kIHZpcnR1YWwgdGVybWluYWwgaW50ZXJmYWNlLglJbiBhIHZpci0N CnR1YWwgdGVybWluYWwgaW50ZXJmYWNlIG11Y2ggbW9yZSAgaW50ZXJlc3Rp bmcJdGhpbmdzCWNvdWxkICBiZQ0KZG9uZSAgd2l0aCBvdXRwdXQgY29udHJv bC4gIEFsaWFzIHN1YnN0aXR1dGlvbiBpcyBtb3N0IG9mdGVuIHVzZWQNCnRv IGNsdW1zaWx5IHNpbXVsYXRlIHNoZWxsIHByb2NlZHVyZXM7IHNoZWxsIHBy b2NlZHVyZXMgc2hvdWxkIGJlDQpwcm92aWRlZCBpbnN0ZWFkIG9mIGFsaWFz ZXMuICBDb21tYW5kcyB3aXRoaW4gbG9vcHMsIHByb21wdGVkIGZvcg0KYnkg YD8nLCBhcmUgbm90IHBsYWNlZCBvbiB0aGUgbGlzdC4gIENvbnRyb2wgc3Ry dWN0dXJlIHNob3VsZCAgYmUNCnBhcnNlZAlpbnN0ZWFkICBvZiAgYmVpbmcg cmVjb2duaXplZCBhcyBidWlsdC1pbiBjb21tYW5kcy4gIFRoaXMNCndvdWxk IGFsbG93IGNvbnRyb2wgY29tbWFuZHMgdG8gYmUgcGxhY2VkIGFueXdoZXJl LCAgdG8gIGJlICBjb20tDQpiaW5lZCAgd2l0aCAgYHwnLCBhbmQgdG8gYmUg dXNlZCB3aXRoIGAmJyBhbmQgYDsnIG1ldGFzeW50YXguICBJdA0Kc2hvdWxk IGJlIHBvc3NpYmxlIHRvIHVzZSB0aGUgYDonIG1vZGlmaWVycyBvbiB0aGUg b3V0cHV0IG9mIGNvbS0NCm1hbmQgIHN1YnN0aXR1dGlvbnMuICBUaGUgd2F5 IHRoZSBmYWNpbGl0eSBpcyBpbXBsZW1lbnRlZCBpcyB1Z2x5DQphbmQgZXhw ZW5zaXZlLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg== --0-615678612-923034471=:44361-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9904020125030.44361-200000>