From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jambunathan K Subject: TexInfo conversion of Org syntax (Success!) Date: Sun, 10 Mar 2013 13:34:43 +0530 Message-ID: <878v5v8yuc.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([208.118.235.92]:33574) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UEbFQ-0000oX-97 for emacs-orgmode@gnu.org; Sun, 10 Mar 2013 04:04:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UEbFP-0008QX-9Z for emacs-orgmode@gnu.org; Sun, 10 Mar 2013 04:04:48 -0400 Received: from mail-da0-x22b.google.com ([2607:f8b0:400e:c00::22b]:63416) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UEbFO-0008QP-Od for emacs-orgmode@gnu.org; Sun, 10 Mar 2013 04:04:47 -0400 Received: by mail-da0-f43.google.com with SMTP id u36so493148dak.16 for ; Sun, 10 Mar 2013 00:04:45 -0800 (PST) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain TexInfo conversion of Org syntax (Success!) The info file looks good. I feel some stylistic aspects can be improved. (I will say no more.) Eval this form (info "/home/kjambunathan/src/worg/dev/org-syntax.info" nil) Or try C-u M-x info RET org-syntax.info RET I am not sure this little exercise is very useful, but we seem to like reading right from within Emacs right. I am attaching the files, --=-=-= Content-Type: application/x-info Content-Disposition: attachment; filename=org-syntax.info Content-Transfer-Encoding: base64 VGhpcyBpcyBvcmctc3ludGF4LmluZm8sIHByb2R1Y2VkIGJ5IG1ha2VpbmZvIHZlcnNpb24gNC4x MyBmcm9tCi9ob21lL2tqYW1idW5hdGhhbi9zcmMvd29yZy9kZXYvb3JnLXN5bnRheC50ZXhpLgoK HwpGaWxlOiBvcmctc3ludGF4LmluZm8sICBOb2RlOiBUb3AsICBOZXh0OiBIZWFkbGluZXMgYW5k IFNlY3Rpb25zLCAgVXA6IChkaXIpCgpPcmcgU3ludGF4IChkcmFmdCkgTWFudWFsCioqKioqKioq KioqKioqKioqKioqKioqKioKCiogTWVudToKCiogSGVhZGxpbmVzIGFuZCBTZWN0aW9uczo6Ciog QWZmaWxpYXRlZCBLZXl3b3Jkczo6CiogR3JlYXRlciBFbGVtZW50czo6CiogRWxlbWVudHM6Ogoq IE9iamVjdHM6OgoKIC0tLSBUaGUgRGV0YWlsZWQgTm9kZSBMaXN0aW5nIC0tLQoKR3JlYXRlciBF bGVtZW50cwoKKiBHcmVhdGVyIEJsb2Nrczo6CiogRHJhd2VycyBhbmQgUHJvcGVydHkgRHJhd2Vy czo6CiogRHluYW1pYyBCbG9ja3M6OgoqIEZvb3Rub3RlIERlZmluaXRpb25zOjoKKiBJbmxpbmV0 YXNrczo6CiogUGxhaW4gTGlzdHMgYW5kIEl0ZW1zOjoKKiBUYWJsZXM6OgoKRWxlbWVudHMKCiog QmFiZWwgQ2FsbDo6CiogQmxvY2tzOjoKKiBDbG9jayBEaWFyeSBTZXhwIGFuZCBQbGFubmluZzo6 CiogQ29tbWVudHM6OgoqIEZpeGVkIFdpZHRoIEFyZWFzOjoKKiBIb3Jpem9udGFsIFJ1bGVzOjoK KiBLZXl3b3Jkczo6CiogTGFUZVggRW52aXJvbm1lbnRzOjoKKiBOb2RlIFByb3BlcnRpZXM6Ogoq IFBhcmFncmFwaHM6OgoqIFRhYmxlIFJvd3M6OgoKT2JqZWN0cwoKKiBFbnRpdGllcyBhbmQgTGFU ZVggRnJhZ21lbnRzOjoKKiBFeHBvcnQgU25pcHBldHM6OgoqIEZvb3Rub3RlIFJlZmVyZW5jZXM6 OgoqIElubGluZSBCYWJlbCBDYWxscyBhbmQgU291cmNlIEJsb2Nrczo6CiogTGluZSBCcmVha3M6 OgoqIExpbmtzOjoKKiBNYWNyb3M6OgoqIFRhcmdldHMgYW5kIFJhZGlvIFRhcmdldHM6OgoqIFN0 YXRpc3RpY3MgQ29va2llczo6CiogU3Vic2NyaXB0IGFuZCBTdXBlcnNjcmlwdDo6CiogVGFibGUg Q2VsbHM6OgoqIFRpbWVzdGFtcHM6OgoqIFRleHQgTWFya3VwOjoKCiAgIFRoaXMgZG9jdW1lbnQg ZGVzY3JpYmVzIGFuZCBjb21tZW50cyBPcmcgc3ludGF4IGFzIGl0IGlzIGN1cnJlbnRseQpyZWFk IGJ5IGl0cyBwYXJzZXIgKE9yZyBFbGVtZW50cykgYW5kLCB0aGVyZWZvcmUsIGJ5IHRoZSBleHBv cnQKZnJhbWV3b3JrLiAgSXQgYWxzbyBpbmNsdWRlcyBhIGZldyBjb21tZW50cyBvbiB0aGF0IHN5 bnRheC4KCiAgIEEgY29yZSBjb25jZXB0IGluIHRoaXMgc3ludGF4IGlzIHRoYXQgb25seSBoZWFk bGluZXMgYW5kIHNlY3Rpb25zIGFyZQpjb250ZXh0LWZyZWUoMSkoMikuICBFdmVyeSBvdGhlciBz eW50YWN0aWNhbCBwYXJ0IG9ubHkgZXhpc3RzIHdpdGhpbgpzcGVjaWZpYyBlbnZpcm9ubWVudHMu CgogICBUaHJlZSBjYXRlZ29yaWVzIGFyZSB1c2VkIHRvIGNsYXNzaWZ5IHRoZXNlIGVudmlyb25t ZW50czogIkdyZWF0ZXIKZWxlbWVudHMiLCAiZWxlbWVudHMiLCBhbmQgIm9iamVjdHMiLCBmcm9t IHRoZSBicm9hZGVzdCBzY29wZSB0byB0aGUKbmFycm93ZXN0LgoKICAgVGhlIHBhcmFncmFwaCBp cyB0aGUgdW5pdCBvZiBtZWFzdXJlbWVudC4gIEFuIGVsZW1lbnQgZGVmaW5lcwpzeW50YWN0aWNh bCBwYXJ0cyB0aGF0IGFyZSBhdCB0aGUgc2FtZSBsZXZlbCBhcyBhIHBhcmFncmFwaCwgaS5lLiB3 aGljaApjYW5ub3QgY29udGFpbiBvciBiZSBpbmNsdWRlZCBpbiBhIHBhcmFncmFwaC4gIEFuIG9i amVjdCBpcyBhIHBhcnQgdGhhdApjb3VsZCBiZSBpbmNsdWRlZCBpbiBhbiBlbGVtZW50LiAgR3Jl YXRlciBlbGVtZW50cyBhcmUgYWxsIHBhcnRzIHRoYXQKY2FuIGNvbnRhaW4gYW4gZWxlbWVudC4K CiAgIEVtcHR5IGxpbmVzIGJlbG9uZyB0byB0aGUgbGFyZ2VzdCBlbGVtZW50IGVuZGluZyBiZWZv cmUgdGhlbS4gIEZvcgpleGFtcGxlLCBpbiBhIGxpc3QsIGVtcHR5IGxpbmVzIGJldHdlZW4gaXRl bXMgYmVsb25nIGFyZSBwYXJ0IG9mIHRoZQppdGVtIGJlZm9yZSB0aGVtLCBidXQgZW1wdHkgbGlu ZXMgYXQgdGhlIGVuZCBvZiBhIGxpc3QgYmVsb25nIHRvIHRoZQpwbGFpbiBsaXN0IGVsZW1lbnQu CgogICBVbmxlc3Mgc3BlY2lmaWVkIG90aGVyd2lzZSwgY2FzZSBpcyBub3Qgc2lnbmlmaWNhbnQu CgogICAtLS0tLS0tLS0tIEZvb3Rub3RlcyAtLS0tLS0tLS0tCgogICAoMSkgSW4gcGFydGljdWxh ciwgdGhlIHBhcnNlciByZXF1aXJlcyBzdGFycyBhdCBjb2x1bW4gMCB0byBiZQpxdW90ZWQgYnkg YSBjb21tYSB3aGVuIHRoZXkgZG8gbm90IGRlZmluZSBhIGhlYWRsaW5lLgoKICAgKDIpIEl0IGFs c28gbWVhbnMgdGhhdCBvbmx5IGhlYWRsaW5lcyBhbmQgc2VjdGlvbnMgY2FuIGJlIHJlY29nbml6 ZWQKanVzdCBieSBsb29raW5nIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUuCgogICBBcyBh IGNvbnNlcXVlbmNlLCB1c2luZyBgb3JnLWVsZW1lbnQtYXQtcG9pbnQnIG9yCmBvcmctZWxlbWVu dC1jb250ZXh0JyB3aWxsIG1vdmUgdXAgdG8gdGhlIHBhcmVudCBoZWFkbGluZSwgYW5kIHBhcnNl CnRvcC1kb3duIGZyb20gdGhlcmUgdW50aWwgY29udGV4dCBhcm91bmQgaXMgZm91bmQuCgofCkZp bGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IEhlYWRsaW5lcyBhbmQgU2VjdGlvbnMsICBOZXh0 OiBBZmZpbGlhdGVkIEtleXdvcmRzLCAgUHJldjogVG9wLCAgVXA6IFRvcAoKMSBIZWFkbGluZXMg YW5kIFNlY3Rpb25zCioqKioqKioqKioqKioqKioqKioqKioqKgoKQSBoZWFkbGluZSBpcyBkZWZp bmVkIGFzOgoKU1RBUlMgS0VZV09SRCBQUklPUklUWSBUSVRMRSBUQUdTCgogICBTVEFSUyBpcyBh IHN0cmluZyBzdGFydGluZyBhdCBjb2x1bW4gMCBhbmQgY29udGFpbmluZyBhdCBsZWFzdCBvbmUK YXN0ZXJpc2sgKGFuZCB1cCB0byBgb3JnLWlubGluZXRhc2stbWluLWxldmVsJyBpZiBvcmctaW5s aW5ldGFzawpsaWJyYXJ5IGlzIGxvYWRlZCkuICBJdCdzIHRoZSBzb2xlIGNvbXB1bHNvcnkgcGFy dCBvZiBhIGhlYWRsaW5lLgoKICAgS0VZV09SRCBpcyBhIFRPRE8ga2V5d29yZCwgd2hpY2ggaGFz IHRvIGJlbG9uZyB0byB0aGUgbGlzdCBkZWZpbmVkCmluIGBvcmctdG9kby1rZXl3b3JkcycuICBD YXNlIGlzIHNpZ25pZmljYW50LgoKICAgUFJJT1JJVFkgaXMgYSBwcmlvcml0eSBjb29raWUsIGku ZS4gYSBzaW5nbGUgbGV0dGVyIHByZWNlZGVkIGJ5IGEKaGFzaCBzaWduICMgYW5kIGVuY2xvc2Vk IHdpdGhpbiBzcXVhcmUgYnJhY2tldHMuICBDYXNlIGlzIHNpZ25pZmljYW50LgoKICAgVElUTEUg Y2FuIGJlIG1hZGUgb2YgYW55IGNoYXJhY3RlciBidXQgYSBuZXcgbGluZS4gIFRob3VnaCwgaXQg d2lsbAptYXRjaCBhZnRlciBldmVyeSBvdGhlciBwYXJ0IGhhdmUgYmVlbiBtYXRjaGVkLgoKICAg VEFHUyBpcyBtYWRlIG9mIHdvcmRzIGNvbnRhaW5pbmcgYW55IGFscGhhLW51bWVyaWMgY2hhcmFj dGVyLAp1bmRlcnNjb3JlLCBhdCBzaWduLCBoYXNoIHNpZ24gb3IgcGVyY2VudCBzaWduLCBhbmQg c2VwYXJhdGVkIHdpdGgKY29sb25zLgoKICAgRXhhbXBsZXMgb2YgdmFsaWQgaGVhZGxpbmVzIGlu Y2x1ZGU6CgoqCgoqKiBET05FCgoqKiogU29tZSBlLW1haWwKCioqKiogVE9ETyBbI0FdIENPTU1F TlQgVGl0bGUgOnRhZzphMiU6CgogICBJZiB0aGUgZmlyc3Qgd29yZCBhcHBlYXJpbmcgaW4gdGhl IHRpdGxlIGlzIGBvcmctY29tbWVudC1rZXl3b3JkJywKdGhlIGhlYWRsaW5lIHdpbGwgYmUgY29u c2lkZXJlZCBhcyAiY29tbWVudGVkIi4gIElmIHRoYXQgZmlyc3Qgd29yZCBpcwpgb3JnLXF1b3Rl LXN0cmluZycsIGl0IHdpbGwgYmUgY29uc2lkZXJlZCBhcyAicXVvdGVkIi4gIEluIGJvdGgKc2l0 dWF0aW9ucywgY2FzZSBpcyBzaWduaWZpY2FudC4KCiAgIElmIGl0cyB0aXRsZSBpcyBgb3JnLWZv b3Rub3RlLXNlY3Rpb24nLCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgYQoiZm9vdG5vdGUgc2Vj dGlvbiIuICBDYXNlIGlzIHNpZ25pZmljYW50LgoKICAgSWYgYG9yZy1hcmNoaXZlLXRhZycgaXMg b25lIG9mIGl0cyB0YWdzLCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgYXMKImFyY2hpdmVkIi4gIENh c2UgaXMgc2lnbmlmaWNhbnQuCgogICBBIGhlYWRsaW5lIGNvbnRhaW5zIGRpcmVjdGx5IGF0IG1v c3Qgb25lIHNlY3Rpb24sIGZvbGxvd2VkIGJ5IGFueQpudW1iZXIgb2YgaGVhZGxpbmVzLiAgT25s eSBhIHNlY3Rpb24gY2FuIGNvbnRhaW4gYW5vdGhlciBzZWN0aW9uLgoKICAgQSBzZWN0aW9uIGNv bnRhaW5zIGRpcmVjdGx5IGFueSBncmVhdGVyIGVsZW1lbnQgb3IgZWxlbWVudC4gIE9ubHkgYQpo ZWFkbGluZSBjYW4gY29udGFpbiBhIHNlY3Rpb24uICBBcyBhbiBleGNlcHRpb24sIHRleHQgYmVm b3JlIHRoZSBmaXJzdApoZWFkbGluZSBpbiB0aGUgZG9jdW1lbnQgYWxzbyBiZWxvbmdzIHRvIGEg c2VjdGlvbi4KCiAgIEluIGEgcXVvdGVkIGhlYWRsaW5lIGNvbnRhaW5zIGEgc2VjdGlvbiwgdGhl IGxhdHRlciB3aWxsIGJlCmNvbnNpZGVyZWQgYXMgYSAicXVvdGUgc2VjdGlvbiIuCgogICBBcyBh biBleGFtcGxlLCBjb25zaWRlciB0aGUgZm9sbG93aW5nIGRvY3VtZW50OgoKICAgICBBbiBpbnRy b2R1Y3Rpb24uCgogICAgICogQSBIZWFkbGluZQoKICAgICAgIFNvbWUgdGV4dC4KCiAgICAgKiog U3ViLVRvcGljIDEKCiAgICAgKiogU3ViLVRvcGljIDIKCiAgICAgKioqIEFkZGl0aW9uYWwgZW50 cnkKCiAgICAgKiogUVVPVEUgQW5vdGhlciBTdWItVG9waWMKCiAgICAgICAgU29tZSBvdGhlciB0 ZXh0LgoKICAgSXRzIGludGVybmFsIHN0cnVjdHVyZSBjb3VsZCBiZSBzdW1tYXJpemVkIGFzOgoK KGRvY3VtZW50CiAoc2VjdGlvbikKIChoZWFkbGluZQogIChzZWN0aW9uKQogIChoZWFkbGluZSkK ICAoaGVhZGxpbmUKICAgKGhlYWRsaW5lKSkKICAoaGVhZGxpbmUKICAgKHF1b3RlLXNlY3Rpb24p KSkpCgofCkZpbGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IEFmZmlsaWF0ZWQgS2V5d29yZHMs ICBOZXh0OiBHcmVhdGVyIEVsZW1lbnRzLCAgUHJldjogSGVhZGxpbmVzIGFuZCBTZWN0aW9ucywg IFVwOiBUb3AKCjIgQWZmaWxpYXRlZCBLZXl3b3JkcwoqKioqKioqKioqKioqKioqKioqKioKCldp dGggdGhlIGV4Y2VwdGlvbiBvZiAqbm90ZSBpbmxpbmV0YXNrczogSW5saW5ldGFza3MsICpub3Rl IGl0ZW1zOgpQbGFpbiBMaXN0cyBhbmQgSXRlbXMsICpub3RlIHBsYW5uaW5nOiBDbG9jayBEaWFy eSBTZXhwIGFuZCBQbGFubmluZywKKm5vdGUgY2xvY2tzOiBDbG9jayBEaWFyeSBTZXhwIGFuZCBQ bGFubmluZywgKm5vdGUgbm9kZSBwcm9wZXJ0aWVzOgpOb2RlIFByb3BlcnRpZXMuIGFuZCAqbm90 ZSB0YWJsZSByb3dzOiBUYWJsZSBSb3dzLCBldmVyeSBvdGhlciBlbGVtZW50CnR5cGUgY2FuIGJl IGFzc2lnbmVkIGF0dHJpYnV0ZXMuCgogICBUaGlzIGlzIGRvbmUgYnkgYWRkaW5nIHNwZWNpZmlj IGtleXdvcmRzLCBuYW1lZCAiYWZmaWxpYXRlZAprZXl3b3JkcyIsIGp1c3QgYWJvdmUgdGhlIGVs ZW1lbnQgY29uc2lkZXJlZCwgbm8gYmxhbmsgbGluZSBhbGxvd2VkLgoKICAgQWZmaWxpYXRlZCBr ZXl3b3JkcyBhcmUgYnVpbHQgdXBvbiBvbmUgb2YgdGhlIGZvbGxvd2luZyBwYXR0ZXJuczoKIiMr S0VZOiBWQUxVRSIsICIjK0tFWVtPUFRJT05BTF06IFZBTFVFIiBvciAiIytBVFRSX0JBQ0tFTkQ6 IFZBTFVFIi4KCiAgIEtFWSBpcyBlaXRoZXIgIkNBUFRJT04iLCAiSEVBREVSIiwgIk5BTUUiLCAi UExPVCIgb3IgIlJFU1VMVFMiCnN0cmluZy4KCiAgIEJBQ0tFTkQgaXMgYSBzdHJpbmcgY29uc3Rp dHV0ZWQgb2YgYWxwaGEtbnVtZXJpYyBjaGFyYWN0ZXJzLCBoeXBoZW5zCm9yIHVuZGVyc2NvcmVz LgoKICAgT1BUSU9OQUwgYW5kIFZBTFVFIGNhbiBjb250YWluIGFueSBjaGFyYWN0ZXIgYnV0IGEg bmV3IGxpbmUuICBPbmx5CiJDQVBUSU9OIiBhbmQgIlJFU1VMVFMiIGtleXdvcmRzIGNhbiBoYXZl IGFuIG9wdGlvbmFsIHZhbHVlLgoKICAgQW4gYWZmaWxpYXRlZCBrZXl3b3JkIGNhbiBhcHBlYXIg b24gbXVsdGlwbGUgbGluZXMgaWYgS0VZIGlzIGVpdGhlcgoiQ0FQVElPTiIgb3IgIkhFQURFUiIg b3IgaWYgaXRzIHBhdHRlcm4gaXMgIiMrQVRUUl9CQUNLRU5EOiBWQUxVRSIuCgogICAiQ0FQVElP TiIsICJBVVRIT1IiLCAiREFURSIgYW5kICJUSVRMRSIga2V5d29yZHMgY2FuIGNvbnRhaW4gb2Jq ZWN0cwppbiB0aGVpciB2YWx1ZSBhbmQgdGhlaXIgb3B0aW9uYWwgdmFsdWUsIGlmIGFwcGxpY2Fi bGUuCgofCkZpbGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IEdyZWF0ZXIgRWxlbWVudHMsICBO ZXh0OiBFbGVtZW50cywgIFByZXY6IEFmZmlsaWF0ZWQgS2V5d29yZHMsICBVcDogVG9wCgozIEdy ZWF0ZXIgRWxlbWVudHMKKioqKioqKioqKioqKioqKioqCgpVbmxlc3Mgc3BlY2lmaWVkIG90aGVy d2lzZSwgZ3JlYXRlciBlbGVtZW50cyBjYW4gY29udGFpbiBkaXJlY3RseSBhbnkKb3RoZXIgZWxl bWVudCBvciBncmVhdGVyIGVsZW1lbnQgZXhjZXB0ZWQ6CgogICAqIGVsZW1lbnRzIG9mIHRoZWly IG93biB0eXBlLAoKICAgKiAqbm90ZSBub2RlIHByb3BlcnRpZXM6IE5vZGUgUHJvcGVydGllcywg d2hpY2ggY2FuIG9ubHkgYmUgZm91bmQgaW4KICAgICAqbm90ZSBwcm9wZXJ0eSBkcmF3ZXJzOiBE cmF3ZXJzIGFuZCBQcm9wZXJ0eSBEcmF3ZXJzLAoKICAgKiAqbm90ZSBpdGVtczogUGxhaW4gTGlz dHMgYW5kIEl0ZW1zLCB3aGljaCBjYW4gb25seSBiZSBmb3VuZCBpbgogICAgICpub3RlIHBsYWlu IGxpc3RzOiBQbGFpbiBMaXN0cyBhbmQgSXRlbXMuCgoKKiBNZW51OgoKKiBHcmVhdGVyIEJsb2Nr czo6CiogRHJhd2VycyBhbmQgUHJvcGVydHkgRHJhd2Vyczo6CiogRHluYW1pYyBCbG9ja3M6Ogoq IEZvb3Rub3RlIERlZmluaXRpb25zOjoKKiBJbmxpbmV0YXNrczo6CiogUGxhaW4gTGlzdHMgYW5k IEl0ZW1zOjoKKiBUYWJsZXM6OgoKHwpGaWxlOiBvcmctc3ludGF4LmluZm8sICBOb2RlOiBHcmVh dGVyIEJsb2NrcywgIE5leHQ6IERyYXdlcnMgYW5kIFByb3BlcnR5IERyYXdlcnMsICBVcDogR3Jl YXRlciBFbGVtZW50cwoKMy4xIEdyZWF0ZXIgQmxvY2tzCj09PT09PT09PT09PT09PT09PQoKR3Jl YXRlciBibG9ja3MgY29uc2lzdCBpbiB0aGUgZm9sbG93aW5nIHBhdHRlcm46CgojK0JFR0lOX05B TUUgUEFSQU1FVEVSUwpDT05URU5UUwojK0VORF9OQU1FCgogICBOQU1FIGNhbiBjb250YWluIGFu eSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIuCgogICBQQVJBTUVURVJTIGNhbiBjb250YWluIGFu eSBjaGFyYWN0ZXIsIGFuZCBjYW4gYmUgb21pdHRlZC4KCiAgIElmIE5BTUUgaXMgIkNFTlRFUiIs IGl0IHdpbGwgYmUgYSAiY2VudGVyIGJsb2NrIi4gIElmIGl0IGlzICJRVU9URSIsCml0IHdpbGwg YmUgYSAicXVvdGUgYmxvY2siLgoKICAgSWYgdGhlIGJsb2NrIGlzIG5laXRoZXIgYSBjZW50ZXIg YmxvY2ssIGEgcXVvdGUgYmxvY2sgb3IgYSAqbm90ZQpibG9jayBlbGVtZW50OiBCbG9ja3MsIGl0 IHdpbGwgYmUgYSAic3BlY2lhbCBibG9jayIuCgogICBDT05URU5UUyBjYW4gY29udGFpbiBhbnkg ZWxlbWVudCwgYnV0IGFub3RoZXIgZ3JlYXRlciBibG9jayBvZiB0aGUKc2FtZSB0eXBlLgoKHwpG aWxlOiBvcmctc3ludGF4LmluZm8sICBOb2RlOiBEcmF3ZXJzIGFuZCBQcm9wZXJ0eSBEcmF3ZXJz LCAgTmV4dDogRHluYW1pYyBCbG9ja3MsICBQcmV2OiBHcmVhdGVyIEJsb2NrcywgIFVwOiBHcmVh dGVyIEVsZW1lbnRzCgozLjIgRHJhd2VycyBhbmQgUHJvcGVydHkgRHJhd2Vycwo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQoKUGF0dGVybiBmb3IgZHJhd2VycyBpczoKCjpOQU1FOgpD T05URU5UUwo6RU5EOgoKICAgTkFNRSBoYXMgdG8gZWl0aGVyIGJlICJQUk9QRVJUSUVTIiBvciBi ZWxvbmcgdG8gYG9yZy1kcmF3ZXJzJyBsaXN0LgoKICAgSWYgTkFNRSBpcyAiUFJPUEVSVElFUyIs IHRoZSBkcmF3ZXIgd2lsbCBiZWNvbWUgYSAicHJvcGVydHkgZHJhd2VyIi4KCiAgIEluIGEgcHJv cGVydHkgZHJhd2VycywgQ09OVEVOVFMgY2FuIG9ubHkgY29udGFpbiAqbm90ZSBub2RlCnByb3Bl cnR5OiBOb2RlIFByb3BlcnRpZXMuICBlbGVtZW50cy4gIE90aGVyd2lzZSBpdCBjYW4gY29udGFp biBhbnkKZWxlbWVudCBidXQgYW5vdGhlciBkcmF3ZXIgb3IgcHJvcGVydHkgZHJhd2VyLgoKICAg SXQgd291bGQgYmUgbmljZSBpZiB1c2VycyBoYWRuJ3QgdG8gcmVnaXN0ZXIgZHJhd2VycyBuYW1l cyBiZWZvcmUKdXNpbmcgdGhlbSBpbiBgb3JnLWRyYXdlcnMnIChvciB0aHJvdWdoIHRoZSBgIytE UkFXRVJTOicga2V5d29yZCkuCkFueXRoaW5nIHN0YXJ0aW5nIHdpdGggYF5bIFx0XSo6XHcrOlsg XHRdJCcgYW5kIGVuZGluZyB3aXRoIGBeWwpcdF0qOkVORDpbIFx0XSQnIGNvdWxkIGJlIGNvbnNp ZGVyZWQgYXMgYSBkcmF3ZXIuICAtLSBuZ3oKCh8KRmlsZTogb3JnLXN5bnRheC5pbmZvLCAgTm9k ZTogRHluYW1pYyBCbG9ja3MsICBOZXh0OiBGb290bm90ZSBEZWZpbml0aW9ucywgIFByZXY6IERy YXdlcnMgYW5kIFByb3BlcnR5IERyYXdlcnMsICBVcDogR3JlYXRlciBFbGVtZW50cwoKMy4zIER5 bmFtaWMgQmxvY2tzCj09PT09PT09PT09PT09PT09PQoKUGF0dGVybiBmb3IgZHluYW1pYyBibG9j a3MgaXM6CgojK0JFR0lOOiBOQU1FIFBBUkFNRVRFUlMKQ09OVEVOVFMKIytFTkQ6CgogICBOQU1F IGNhbm5vdCBjb250YWluIGFueSB3aGl0ZXNwYWNlIGNoYXJhY3Rlci4KCiAgIFBBUkFNRVRFUlMg Y2FuIGNvbnRhaW4gYW55IGNoYXJhY3RlciBhbmQgY2FuIGJlIG9taXR0ZWQuCgofCkZpbGU6IG9y Zy1zeW50YXguaW5mbywgIE5vZGU6IEZvb3Rub3RlIERlZmluaXRpb25zLCAgTmV4dDogSW5saW5l dGFza3MsICBQcmV2OiBEeW5hbWljIEJsb2NrcywgIFVwOiBHcmVhdGVyIEVsZW1lbnRzCgozLjQg Rm9vdG5vdGUgRGVmaW5pdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09CgpQYXR0ZXJuIGZv ciBmb290bm90ZSBkZWZpbml0aW9ucyBpczoKCltMQUJFTF0gQ09OVEVOVFMKCiAgIEl0IG11c3Qg c3RhcnQgYXQgY29sdW1uIDAuCgogICBMQUJFTCBpcyBlaXRoZXIgYSBudW1iZXIgb3IgZm9sbG93 cyB0aGUgcGF0dGVybiAiZm46V09SRCIsIHdoZXJlCndvcmQgY2FuIGNvbnRhaW4gYW55IHdvcmQt Y29uc3RpdHVlbnQgY2hhcmFjdGVyLCBoeXBoZW5zIGFuZCB1bmRlcnNjb3JlCmNoYXJhY3RlcnMu CgogICBDT05URU5UUyBjYW4gY29udGFpbiBhbnkgZWxlbWVudCBleGNlcHRlZCBhbm90aGVyIGZv b3Rub3RlCmRlZmluaXRpb24uICBJdCBlbmRzIGF0IHRoZSBuZXh0IGZvb3Rub3RlIGRlZmluaXRp b24sIHRoZSBuZXh0CmhlYWRsaW5lLCB0d28gY29uc2VjdXRpdmUgZW1wdHkgbGluZXMgb3IgdGhl IGVuZCBvZiBidWZmZXIuCgofCkZpbGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IElubGluZXRh c2tzLCAgTmV4dDogUGxhaW4gTGlzdHMgYW5kIEl0ZW1zLCAgUHJldjogRm9vdG5vdGUgRGVmaW5p dGlvbnMsICBVcDogR3JlYXRlciBFbGVtZW50cwoKMy41IElubGluZXRhc2tzCj09PT09PT09PT09 PT09PQoKSW5saW5ldGFza3MgYXJlIGRlZmluZWQgYnkgYG9yZy1pbmxpbmV0YXNrLW1pbi1sZXZl bCcgY29udGlndW91cwphc3RlcmlzayBjaGFyYWN0ZXJzIHN0YXJ0aW5nIGF0IGNvbHVtbiAwLCBm b2xsb3dlZCBieSBhIHdoaXRlc3BhY2UKY2hhcmFjdGVyLgoKICAgT3B0aW9uYWxseSwgaW5saW5l dGFza3MgY2FuIGJlIGVuZGVkIHdpdGggYSBzdHJpbmcgY29uc3RpdHV0ZWQgb2YKYG9yZy1pbmxp bmV0YXNrLW1pbi1sZXZlbCcgY29udGlndW91cyBjaGFyYWN0ZXJzIHN0YXJ0aW5nIGF0IGNvbHVt biAwLApmb2xsb3dlZCBieSBhIHNwYWNlIGFuZCB0aGUgIkVORCIgc3RyaW5nLgoKICAgSW5saW5l dGFza3MgYXJlIHJlY29nbml6ZWQgb25seSBhZnRlciBvcmctaW5saW5ldGFzayBsaWJyYXJ5IGlz CmxvYWRlZC4KCh8KRmlsZTogb3JnLXN5bnRheC5pbmZvLCAgTm9kZTogUGxhaW4gTGlzdHMgYW5k IEl0ZW1zLCAgTmV4dDogVGFibGVzLCAgUHJldjogSW5saW5ldGFza3MsICBVcDogR3JlYXRlciBF bGVtZW50cwoKMy42IFBsYWluIExpc3RzIGFuZCBJdGVtcwo9PT09PT09PT09PT09PT09PT09PT09 PT09CgpJdGVtcyBhcmUgZGVmaW5lZCBieSBhIGxpbmUgc3RhcnRpbmcgd2l0aCB0aGUgZm9sbG93 aW5nIHBhdHRlcm46CiJCVUxMRVQgQ09VTlRFUi1TRVQgQ0hFQ0stQk9YIFRBRyIsIGluIHdoaWNo IG9ubHkgQlVMTEVUIGlzIG1hbmRhdG9yeS4KCiAgIEJVTExFVCBpcyBlaXRoZXIgYW4gYXN0ZXJp c2ssIGEgaHlwaGVuLCBhIHBsdXMgc2lnbiBjaGFyYWN0ZXIgb3IKZm9sbG93cyBlaXRoZXIgdGhl IHBhdHRlcm4gIkNPVU5URVIuIiBvciAiQ09VTlRFUikiLiAgSW4gYW55IGNhc2UsCkJVTExFVCBp cyBmb2xsd2VkIGJ5IGEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgb3IgbGluZSBlbmRpbmcuCgogICBD T1VOVEVSIGNhbiBiZSBhIG51bWJlciBvciBhIHNpbmdsZSBsZXR0ZXIuCgogICBDT1VOVEVSLVNF VCBmb2xsb3dzIHRoZSBwYXR0ZXJuIFtAQ09VTlRFUl0uCgogICBDSEVDSy1CT1ggaXMgZWl0aGVy IGEgc2luZ2xlIHdoaXRlc3BhY2UgY2hhcmFjdGVyLCBhICJYIiBjaGFyYWN0ZXIKb3IgYSBoeXBo ZW4sIGVuY2xvc2VkIHdpdGhpbiBzcXVhcmUgYnJhY2tldHMuCgogICBUQUcgZm9sbG93cyAiVEFH LVRFWFQgOjoiIHBhdHRlcm4sIHdoZXJlIFRBRy1URVhUIGNhbiBjb250YWluIGFueQpjaGFyYWN0 ZXIgYnV0IGEgbmV3IGxpbmUuCgogICBBbiBpdGVtIGVuZHMgYmVmb3JlIHRoZSBuZXh0IGl0ZW0s IHRoZSBmaXJzdCBsaW5lIGxlc3Mgb3IgZXF1YWxseQppbmRlbnRlZCB0aGFuIGl0cyBzdGFydGlu ZyBsaW5lLCBvciB0d28gY29uc2VjdXRpdmUgZW1wdHkgbGluZXMuCkluZGVudGF0aW9uIG9mIGxp bmVzIHdpdGhpbiBvdGhlciBncmVhdGVyIGVsZW1lbnRzIGRvIG5vdCBjb3VudCwKbmVpdGhlciBk byBpbmxpbmV0YXNrcyBib3VuZGFyaWVzLgoKICAgQSBwbGFpbiBsaXN0IGlzIGEgc2V0IG9mIGNv bnNlY3V0aXZlIGl0ZW1zIG9mIHRoZSBzYW1lIGluZGVudGF0aW9uLgpJdCBjYW4gb25seSBkaXJl Y3RseSBjb250YWluIGl0ZW1zLgoKICAgSWYgZmlyc3QgaXRlbSBpbiBhIHBsYWluIGxpc3QgaGFz IGEgY291bnRlciBpbiBpdHMgYnVsbGV0LCB0aGUgcGxhaW4KbGlzdCB3aWxsIGJlIGFuICJvcmRl cmVkIHBsYWluLWxpc3QiLiAgSWYgaXQgY29udGFpbnMgYSB0YWcsIGl0IHdpbGwgYmUKYSAiZGVz Y3JpcHRpdmUgbGlzdCIuICBPdGhlcndpc2UsIGl0IHdpbGwgYmUgYW4gInVub3JkZXJlZCBsaXN0 Ii4gIExpc3QKdHlwZXMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KCiAgIEZvciBleGFtcGxlLCBj b25zaWRlciB0aGUgZm9sbG93aW5nIGV4Y2VycHQgb2YgYW4gT3JnIGRvY3VtZW50OgoKMS4gaXRl bSAxCjIuIFtYXSBpdGVtIDIKICAgLSBzb21lIHRhZyA6OiBpdGVtIDIuMQoKICAgSXRzIGludGVy bmFsIHN0cnVjdHVyZSBpcyBhcyBmb2xsb3dzOgoKKG9yZGVyZWQtcGxhaW4tbGlzdAogKGl0ZW0p CiAoaXRlbQogIChkZXNjcmlwdGl2ZS1wbGFpbi1saXN0CiAgIChpdGVtKSkpKQoKHwpGaWxlOiBv cmctc3ludGF4LmluZm8sICBOb2RlOiBUYWJsZXMsICBQcmV2OiBQbGFpbiBMaXN0cyBhbmQgSXRl bXMsICBVcDogR3JlYXRlciBFbGVtZW50cwoKMy43IFRhYmxlcwo9PT09PT09PT09CgpUYWJsZXMg c3RhcnQgYXQgbGluZXMgYmVnaW5uaW5nIHdpdGggZWl0aGVyIGEgdmVydGljYWwgYmFyIG9yIHRo ZSAiKy0iCnN0cmluZyBmb2xsb3dlZCBieSBwbHVzIG9yIG1pbnVzIHNpZ25zIG9ubHksIGFzc3Vt aW5nIHRoZXkgYXJlIG5vdApwcmVjZWRlZCB3aXRoIGxpbmVzIG9mIHRoZSBzYW1lIHR5cGUuICBU aGVzZSBsaW5lcyBjYW4gYmUgaW5kZW50ZWQuCgogICBBIHRhYmxlIHN0YXJ0aW5nIHdpdGggYSB2 ZXJ0aWNhbCBiYXIgaGFzICJvcmciIHR5cGUuICBPdGhlcndpc2UgaXQKaGFzICJ0YWJsZS5lbCIg dHlwZS4KCiAgIE9yZyB0YWJsZXMgZW5kIGF0IHRoZSBmaXJzdCBsaW5lIG5vdCBzdGFydGluZyB3 aXRoIGEgdmVydGljYWwgYmFyLgpUYWJsZS5lbCB0YWJsZXMgZW5kIGF0IHRoZSBmaXJzdCBsaW5l IG5vdCBzdGFydGluZyB3aXRoIGVpdGhlciBhCnZlcnRpY2FsIGxpbmUgb3IgYSBwbHVzIHNpZ24u ICBTdWNoIGxpbmVzIGNhbiBiZSBpbmRlbnRlZC4KCiAgIEFuIG9yZyB0YWJsZSBjYW4gb25seSBj b250YWluIHRhYmxlIHJvd3MuICBBIHRhYmxlLmVsIHRhYmxlIGRvZXMgbm90CmNvbnRhaW4gYW55 dGhpbmcuCgofCkZpbGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IEVsZW1lbnRzLCAgTmV4dDog T2JqZWN0cywgIFByZXY6IEdyZWF0ZXIgRWxlbWVudHMsICBVcDogVG9wCgo0IEVsZW1lbnRzCioq KioqKioqKioKCkVsZW1lbnRzIGNhbm5vdCBjb250YWluIGFueSBvdGhlciBlbGVtZW50LgoKICAg T25seSAqbm90ZSBrZXl3b3JkczogS2V5d29yZHMuIHdob3NlIG5hbWUgYmVsb25ncyB0bwpgb3Jn LWVsZW1lbnQtZG9jdW1lbnQtcHJvcGVydGllcycsICpub3RlIHZlcnNlIGJsb2NrczogQmxvY2tz ICwgKm5vdGUKcGFyYWdyYXBoczogUGFyYWdyYXBocy4gYW5kICpub3RlIHRhYmxlIHJvd3M6IFRh YmxlIFJvd3MuIGNhbiBjb250YWluCm9iamVjdHMuCgoqIE1lbnU6CgoqIEJhYmVsIENhbGw6Ogoq IEJsb2Nrczo6CiogQ2xvY2sgRGlhcnkgU2V4cCBhbmQgUGxhbm5pbmc6OgoqIENvbW1lbnRzOjoK KiBGaXhlZCBXaWR0aCBBcmVhczo6CiogSG9yaXpvbnRhbCBSdWxlczo6CiogS2V5d29yZHM6Ogoq IExhVGVYIEVudmlyb25tZW50czo6CiogTm9kZSBQcm9wZXJ0aWVzOjoKKiBQYXJhZ3JhcGhzOjoK KiBUYWJsZSBSb3dzOjoKCh8KRmlsZTogb3JnLXN5bnRheC5pbmZvLCAgTm9kZTogQmFiZWwgQ2Fs bCwgIE5leHQ6IEJsb2NrcywgIFVwOiBFbGVtZW50cwoKNC4xIEJhYmVsIENhbGwKPT09PT09PT09 PT09PT0KClBhdHRlcm4gZm9yIGJhYmVsIGNhbGxzIGlzOgoKIytDQUxMOiBWQUxVRQoKICAgVkFM VUUgaXMgb3B0aW9uYWwuICBJdCBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVyIGJ1dCBhIG5ldyBs aW5lLgoKHwpGaWxlOiBvcmctc3ludGF4LmluZm8sICBOb2RlOiBCbG9ja3MsICBOZXh0OiBDbG9j ayBEaWFyeSBTZXhwIGFuZCBQbGFubmluZywgIFByZXY6IEJhYmVsIENhbGwsICBVcDogRWxlbWVu dHMKCjQuMiBCbG9ja3MKPT09PT09PT09PQoKTGlrZSAqbm90ZSBncmVhdGVyIGJsb2NrczogR3Jl YXRlciBCbG9ja3MsIHBhdHRlcm4gZm9yIGJsb2NrcyBpczoKCiMrQkVHSU5fTkFNRSBEQVRBCkNP TlRFTlRTCiMrRU5EX05BTUUKCiAgIE5BTUUgY2Fubm90IGNvbnRhaW4gYW55IHdoaXRlc3BhY2Ug Y2hhcmFjdGVyLgoKICAgSWYgTkFNRSBpcyAiQ09NTUVOVCIsIGl0IHdpbGwgYmUgYSAiY29tbWVu dCBibG9jayIuICBJZiBpdCBpcwoiRVhBTVBMRSIsIGl0IHdpbGwgYmUgYW4gImV4YW1wbGUgYmxv Y2siLiAgSWYgaXQgaXMgIlNSQyIsIGl0IHdpbGwgYmUgYQoic291cmNlIGJsb2NrIi4gIElmIGl0 IGlzICJWRVJTRSIsIGl0IHdpbGwgYmUgYSAidmVyc2UgYmxvY2siLgoKICAgSWYgTkFNRSBpcyBh IHN0cmluZyBtYXRjaGluZyB0aGUgbmFtZSBvZiBhbnkgZXhwb3J0IGJhY2stZW5kIGxvYWRlZCwK dGhlIGJsb2NrIHdpbGwgYmUgYW4gImV4cG9ydCBibG9jayIuCgogICBEQVRBIGNhbiBjb250YWlu IGFueSBjaGFyYWN0ZXIgYnV0IGEgbmV3IGxpbmUuICBJdCBjYW4gYmUgb21taXR0ZWQsCnVubGVz cyB0aGUgYmxvY2sgaXMgYSAic291cmNlIGJsb2NrIi4gIEluIHRoaXMgY2FzZSwgaXQgbXVzdCBm b2xsb3cgdGhlCnBhdHRlcm4gIkxBTkdVQUdFIFNXSVRDSEVTIEFSR1VNRU5UUyIsIHdoZXJlIFNX SVRDSEVTIGFuZCBBUkdVTUVOVFMgYXJlCm9wdGlvbmFsLgoKICAgTEFOR1VBR0UgY2Fubm90IGNv bnRhaW4gYW55IHdoaXRlc3BhY2UgY2hhcmFjdGVyLgoKICAgU1dJVENIRVMgaXMgbWFkZSBvZiBh bnkgbnVtYmVyIG9mICJTV0lUQ0giIHBhdHRlcm5zLCBzZXBhcmF0ZWQgYnkKYmxhbmsgbGluZXMu CgogICBBIFNXSVRDSCBwYXR0ZXJuIGlzIGVpdGhlciAiLWwgIkZPUk1BVCIiLCB3aGVyZSBGT1JN QVQgY2FuIGNvbnRhaW4KYW55IGNoYXJhY3RlciBidXQgYSBkb3VibGUgcXVvdGUgYW5kIGEgbmV3 IGxpbmUsICItUyIgb3IgIitTIiwgd2hlcmUgUwpzdGFuZHMgZm9yIGEgc2luZ2xlIGxldHRlci4K CiAgIEFSR1VNRU5UUyBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVyIGJ1dCBhIG5ldyBsaW5lLgoK ICAgQ09OVEVOVFMgY2FuIGNvbnRhaW4gYW55IGNoYXJhY3RlciwgaW5jbHVkaW5nIG5ldyBsaW5l cy4gIFRob3VnaCBpdAp3aWxsIG9ubHkgY29udGFpbiBPcmcgb2JqZWN0cyBpZiB0aGUgYmxvY2sg aXMgYSB2ZXJzZSBibG9jay4KT3RoZXJ3aXNlLCBjb250ZW50cyB3aWxsIG5vdCBiZSBwYXJzZWQu CgofCkZpbGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IENsb2NrIERpYXJ5IFNleHAgYW5kIFBs YW5uaW5nLCAgTmV4dDogQ29tbWVudHMsICBQcmV2OiBCbG9ja3MsICBVcDogRWxlbWVudHMKCjQu MyBDbG9jaywgRGlhcnkgU2V4cCBhbmQgUGxhbm5pbmcKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQoKQSBjbG9jayBmb2xsb3dzIHRoZSBwYXR0ZXJuOgoKQ0xPQ0s6IFRJTUVTVEFN UCBEVVJBVElPTgoKICAgQm90aCBUSU1FU1RBTVAgYW5kIERVUkFUSU9OIGFyZSBvcHRpb25hbC4K CiAgIFRJTUVTVEFNUCBpcyBhICpub3RlIHRpbWVzdGFtcDogVGltZXN0YW1wcy4gb2JqZWN0LgoK ICAgRFVSQVRJT04gZm9sbG93cyB0aGUgcGF0dGVybjoKCj0+IEhIOk1NCgogICBISCBpcyBhIG51 bWJlciBjb250YWluaW5nIGFueSBudW1iZXIgb2YgZGlnaXRzLiAgTU0gaXMgYSB0d28gZGlnaXQK bnVtYmVycy4KCiAgIEEgZGlhcnkgc2V4cCBpcyBhIGxpbmUgc3RhcnRpbmcgYXQgY29sdW1uIDAg d2l0aCAiJSUoIiBzdHJpbmcuICBJdApjYW4gdGhlbiBjb250YWluIGFueSBjaGFyYWN0ZXIgYmVz aWRlcyBhIG5ldyBsaW5lLgoKICAgQSBwbGFubmluZyBpcyBhIGxpbmUgZmlsbGVkIHdpdGggbW9y ZSBhdCBtb3N0IHRocmVlIElORk8gcGFydHMsCndoZXJlIGVhY2ggSU5GTyBwYXJ0IGZvbGxvd3Mg dGhlIHBhdHRlcm46CgpLRVlXT1JEOiBUSU1FU1RBTVAKCiAgIEtFWVdPUkQgaXMgYSBzdHJpbmcg YW1vbmcgYG9yZy1kZWFkbGluZS1zdHJpbmcnLApgb3JnLXNjaGVkdWxlZC1zdHJpbmcnIGFuZCBg b3JnLWNsb3NlZC1zdHJpbmcnLiAgVElNRVNUQU1QIGlzIGlzIGEKKm5vdGUgdGltZXN0YW1wOiBU aW1lc3RhbXBzLiBvYmplY3QuCgogICBFdmVuIHRob3VnaCBhIHBsYW5uaW5nIGVsZW1lbnQgY2Fu IGV4aXN0IGFueXdoZXJlIGluIGEgc2VjdGlvbiBvciBhCmdyZWF0ZXIgZWxlbWVudCwgaXQgd2ls bCBvbmx5IGFmZmVjdCB0aGUgaGVhZGxpbmUgY29udGFpbmluZyB0aGUKc2VjdGlvbiBpZiBpdCBp cyBwdXQgb24gdGhlIGxpbmUgZm9sbG93aW5nIHRoYXQgaGVhZGxpbmUuCgofCkZpbGU6IG9yZy1z eW50YXguaW5mbywgIE5vZGU6IENvbW1lbnRzLCAgTmV4dDogRml4ZWQgV2lkdGggQXJlYXMsICBQ cmV2OiBDbG9jayBEaWFyeSBTZXhwIGFuZCBQbGFubmluZywgIFVwOiBFbGVtZW50cwoKNC40IENv bW1lbnRzCj09PT09PT09PT09PQoKQSAiY29tbWVudCBsaW5lIiBzdGFydHMgd2l0aCBhIGhhc2gg c2lnbmUgYW5kIGEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgb3IKYW4gZW5kIG9mIGxpbmUuCgogICBD b21tZW50cyBjYW4gY29udGFpbiBhbnkgbnVtYmVyIG9mIGNvbnNlY3V0aXZlIGNvbW1lbnQgbGlu ZXMuCgofCkZpbGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IEZpeGVkIFdpZHRoIEFyZWFzLCAg TmV4dDogSG9yaXpvbnRhbCBSdWxlcywgIFByZXY6IENvbW1lbnRzLCAgVXA6IEVsZW1lbnRzCgo0 LjUgRml4ZWQgV2lkdGggQXJlYXMKPT09PT09PT09PT09PT09PT09PT09CgpBICJmaXhlZC13aWR0 aCBsaW5lIiBzdGFydCB3aXRoIGEgY29sb24gY2hhcmFjdGVyIGFuZCBhIHdoaXRlc3BhY2Ugb3IK YW4gZW5kIG9mIGxpbmUuCgogICBGaXhlZCB3aWR0aCBhcmVhcyBjYW4gY29udGFpbiBhbnkgbnVt YmVyIG9mIGNvbnNlY3V0aXZlIGZpeGVkLXdpZHRoCmxpbmVzLgoKHwpGaWxlOiBvcmctc3ludGF4 LmluZm8sICBOb2RlOiBIb3Jpem9udGFsIFJ1bGVzLCAgTmV4dDogS2V5d29yZHMsICBQcmV2OiBG aXhlZCBXaWR0aCBBcmVhcywgIFVwOiBFbGVtZW50cwoKNC42IEhvcml6b250YWwgUnVsZXMKPT09 PT09PT09PT09PT09PT09PT0KCkEgaG9yaXpvbnRhbCBydWxlIGlzIGEgbGluZSBtYWRlIG9mIGF0 IGxlYXN0IDUgY29uc2VjdXRpdmUgaHlwaGVucy4gIEl0CmNhbiBiZSBpbmRlbnRlZC4KCh8KRmls ZTogb3JnLXN5bnRheC5pbmZvLCAgTm9kZTogS2V5d29yZHMsICBOZXh0OiBMYVRlWCBFbnZpcm9u bWVudHMsICBQcmV2OiBIb3Jpem9udGFsIFJ1bGVzLCAgVXA6IEVsZW1lbnRzCgo0LjcgS2V5d29y ZHMKPT09PT09PT09PT09CgpLZXl3b3JkcyBmb2xsb3cgdGhlIHN5bnRheDoKCiMrS0VZOiBWQUxV RQoKICAgS0VZIGNhbiBjb250YWluIGFueSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIsIGJ1dCBp dCBjYW5ub3QgYmUgZXF1YWwKdG8gIkNBTEwiIG9yIGFueSBhZmZpbGlhdGVkIGtleXdvcmQuCgog ICBWQUxVRSBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVyIGV4Y2VwdGVkIGEgbmV3IGxpbmUuCgog ICBJZiBLRVkgYmVsb25ncyB0byBgb3JnLWVsZW1lbnQtZG9jdW1lbnQtcHJvcGVydGllcycsIFZB TFVFIGNhbgpjb250YWluIG9iamVjdHMuCgofCkZpbGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6 IExhVGVYIEVudmlyb25tZW50cywgIE5leHQ6IE5vZGUgUHJvcGVydGllcywgIFByZXY6IEtleXdv cmRzLCAgVXA6IEVsZW1lbnRzCgo0LjggTGFUZVggRW52aXJvbm1lbnRzCj09PT09PT09PT09PT09 PT09PT09PT0KClBhdHRlcm4gZm9yIExhVGVYIGVudmlyb25tZW50cyBpczoKClxiZWdpbntOQU1F fQpDT05URU5UUwpcZW5ke05BTUV9CgogICBOQU1FIGlzIGNvbnN0aXR1dGVkIG9mIGFscGhhLW51 bWVyaWMgY2hhcmFjdGVycyBhbmQgbWF5IGVuZCB3aXRoIGFuCmFzdGVyaXNrLgoKICAgQ09OVEVO VFMgY2FuIGNvbnRhaW4gYW55dGhpbmcgYnV0IHRoZSAiIiBzdHJpbmcuCgofCkZpbGU6IG9yZy1z eW50YXguaW5mbywgIE5vZGU6IE5vZGUgUHJvcGVydGllcywgIE5leHQ6IFBhcmFncmFwaHMsICBQ cmV2OiBMYVRlWCBFbnZpcm9ubWVudHMsICBVcDogRWxlbWVudHMKCjQuOSBOb2RlIFByb3BlcnRp ZXMKPT09PT09PT09PT09PT09PT09PQoKUGF0dGVyIGZvciBub2RlIHByb3BlcnRpZXMgaXM6Cgo6 UFJPUEVSVFk6IFZBTFVFCgogICBQUk9QRVJUWSBjYW4gY29udGFpbiBhbnkgbm9uLXdoaXRlc3Bh Y2UgY2hhcmFjdGVyLiAgVkFMVUUgY2FuCmNvbnRhaW4gYW55IGNoYXJhY3RlciBidXQgYSBuZXcg bGluZS4KCiAgIE5vZGUgcHJvcGVydGllcyBjYW4gb25seSBleGlzdCBpbiBhICpub3RlIHByb3Bl cnR5IGRyYXdlcnM6IERyYXdlcnMKYW5kIFByb3BlcnR5IERyYXdlcnMuCgofCkZpbGU6IG9yZy1z eW50YXguaW5mbywgIE5vZGU6IFBhcmFncmFwaHMsICBOZXh0OiBUYWJsZSBSb3dzLCAgUHJldjog Tm9kZSBQcm9wZXJ0aWVzLCAgVXA6IEVsZW1lbnRzCgo0LjEwIFBhcmFncmFwaHMKPT09PT09PT09 PT09PT09CgpQYXJhZ3JhcGhzIGFyZSB0aGUgZGVmYXVsdCBlbGVtZW50LCB3aGljaCBtZWFucyB0 aGF0IGFueSB1bnJlY29nbml6ZWQKY29udGV4dCBpcyBhIHBhcmFncmFwaC4KCiAgIEVtcHR5IGxp bmVzIGFuZCBvdGhlciBlbGVtZW50cyBlbmQgcGFyYWdyYXBocy4KCiAgIFBhcmFncmFwaHMgY2Fu IGNvbnRhaW4gZXZlcnkgdHlwZSBvZiBvYmplY3QuCgofCkZpbGU6IG9yZy1zeW50YXguaW5mbywg IE5vZGU6IFRhYmxlIFJvd3MsICBQcmV2OiBQYXJhZ3JhcGhzLCAgVXA6IEVsZW1lbnRzCgo0LjEx IFRhYmxlIFJvd3MKPT09PT09PT09PT09PT09CgpBIHRhYmxlIHJvd3MgaXMgZWl0aGVyIGNvbnN0 aXR1dGVkIG9mIGEgdmVydGljYWwgYmFyIGFuZCBhbnkgbnVtYmVyIG9mCipub3RlIHRhYmxlIGNl bGxzOiBUYWJsZSBDZWxscy4gb3IgYSB2ZXJ0aWNhbCBiYXIgZm9sbG93ZWQgYnkgYSBoeXBoZW4u CgogICBJbiB0aGUgZmlyc3QgY2FzZSB0aGUgdGFibGUgcm93IGhhcyB0aGUgInN0YW5kYXJkIiB0 eXBlLiAgSW4gdGhlCnNlY29uZCBjYXNlLCBpdCBoYXMgdGhlICJydWxlIiB0eXBlLgoKICAgVGFi bGUgcm93cyBjYW4gb25seSBleGlzdCBpbiAqbm90ZSB0YWJsZXM6IFRhYmxlcy4KCh8KRmlsZTog b3JnLXN5bnRheC5pbmZvLCAgTm9kZTogT2JqZWN0cywgIFByZXY6IEVsZW1lbnRzLCAgVXA6IFRv cAoKNSBPYmplY3RzCioqKioqKioqKgoKT2JqZWN0cyBjYW4gb25seSBiZSBmb3VuZCBpbiB0aGUg Zm9sbG93aW5nIGxvY2F0aW9uczoKCiAgICogKm5vdGUgYWZmaWxpYXRlZCBrZXl3b3JkczogQWZm aWxpYXRlZCBLZXl3b3Jkcy4gZGVmaW5lZCBpbgogICAgIGBvcmctZWxlbWVudC1wYXJzZWQta2V5 d29yZHMnLAoKICAgKiAqbm90ZSBkb2N1bWVudCBwcm9wZXJ0aWVzOiBLZXl3b3JkcywKCiAgICog Km5vdGUgaGVhZGxpbmU6IEhlYWRsaW5lcyBhbmQgU2VjdGlvbnMuIHRpdGxlcywKCiAgICogKm5v dGUgaW5saW5ldGFzazogSW5saW5ldGFza3MuIHRpdGxlcywKCiAgICogKm5vdGUgaXRlbTogUGxh aW4gTGlzdHMgYW5kIEl0ZW1zLiB0YWdzLAoKICAgKiAqbm90ZSBwYXJhZ3JhcGhzOiBQYXJhZ3Jh cGhzLAoKICAgKiAqbm90ZSB0YWJsZSBjZWxsczogVGFibGUgQ2VsbHMsCgogICAqICpub3RlIHRh YmxlIHJvd3M6IFRhYmxlIFJvd3MsIHdoaWNoIGNhbiBvbmx5IGNvbnRhaW4gdGFibGUgY2VsbAog ICAgIG9iamVjdHMsCgogICAqICpub3RlIHZlcnNlIGJsb2NrczogQmxvY2tzLgoKCiAgIE1vc3Qg b2JqZWN0cyBjYW5ub3QgY29udGFpbiBvYmplY3RzLiAgVGhvc2Ugd2hpY2ggY2FuIHdpbGwgYmUK c3BlY2lmaWVkLgoKKiBNZW51OgoKKiBFbnRpdGllcyBhbmQgTGFUZVggRnJhZ21lbnRzOjoKKiBF eHBvcnQgU25pcHBldHM6OgoqIEZvb3Rub3RlIFJlZmVyZW5jZXM6OgoqIElubGluZSBCYWJlbCBD YWxscyBhbmQgU291cmNlIEJsb2Nrczo6CiogTGluZSBCcmVha3M6OgoqIExpbmtzOjoKKiBNYWNy b3M6OgoqIFRhcmdldHMgYW5kIFJhZGlvIFRhcmdldHM6OgoqIFN0YXRpc3RpY3MgQ29va2llczo6 CiogU3Vic2NyaXB0IGFuZCBTdXBlcnNjcmlwdDo6CiogVGFibGUgQ2VsbHM6OgoqIFRpbWVzdGFt cHM6OgoqIFRleHQgTWFya3VwOjoKCh8KRmlsZTogb3JnLXN5bnRheC5pbmZvLCAgTm9kZTogRW50 aXRpZXMgYW5kIExhVGVYIEZyYWdtZW50cywgIE5leHQ6IEV4cG9ydCBTbmlwcGV0cywgIFVwOiBP YmplY3RzCgo1LjEgRW50aXRpZXMgYW5kIExhVGVYIEZyYWdtZW50cwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQoKQW4gZW50aXR5IGZvbGxvd3MgdGhlIHBhdHRlcm46CgpcTkFNRSBQ T1NUCgogICB3aGVyZSBOQU1FIGhhcyBhIHZhbGlkIGFzc29jaWF0aW9uIGluIGVpdGhlciBgb3Jn LWVudGl0aWVzJyBvcgpgb3JnLWVudGl0aWVzLXVzZXInLgoKICAgUE9TVCBpcyB0aGUgZW5kIG9m IGxpbmUsICJ7fSIgc3RyaW5nLCBvciBhIG5vbi1hbHBoYWJldGljYWwKY2hhcmFjdGVyLiAgSXQg aXNuJ3Qgc2VwYXJhdGVkIGZyb20gTkFNRSBieSBhIHdoaXRlc3BhY2UgY2hhcmFjdGVyLgoKICAg QSBMYVRlWCBmcmFnbWVudCBjYW4gZm9sbG93IG11bHRpcGxlIHBhdHRlcm5zOgoKXE5BTUUgUE9T VApcKENPTlRFTlRTXCkKXFtDT05URU5UU1xdCiQkQ09OVEVOVFMkJApQUkUkQ0hBUiRQT1NUClBS RSRCT1JERVIxIEJPRFkgQk9SREVSMiQKCiAgIE5BTUUgY29udGFpbnMgYWxwaGFiZXRpY2FsIGNo YXJhY3RlcnMgb25seSBhbmQgbXVzdCBub3QgaGF2ZSBhbgphc3NvY2lhdGlvbiBpbiBlaXRoZXIg YG9yZy1lbnRpdGllcycgb3IgYG9yZy1lbnRpdGllcy11c2VyJy4KCiAgIFBPU1QgaXMgdGhlIHNh bWUgYXMgZm9yIGVudGl0aWVzLgoKICAgQ09OVEVOVFMgY2FuIGNvbnRhaW4gYW55IGNoYXJhY3Rl ciBidXQgY2Fubm90IGNvbnRhaW4gIlwpIiBpbiB0aGUKc2Vjb25kIHRlbXBsYXRlIG9yICJcXSIg aW4gdGhlIHRoaXJkIG9uZS4KCiAgIFBSRSBpcyBlaXRoZXIgdGhlIGJlZ2lubmluZyBvZiBsaW5l IG9yIGEgY2hhcmFjdGVyIGRpZmZlcmVudCBmcm9tCmAkJy4KCiAgIENIQVIgaXMgYSBub24td2hp dGVzcGFjZSBjaGFyYWN0ZXIgZGlmZmVyZW50IGZyb20gYC4nLCB+LH4sIGA/JywKYDsnLCB+J34g b3IgYSBkb3VibGUgcXVvdGUuCgogICBQT1NUIGlzIGFueSBvZiBgLScsIGAuJywgfix+LCBgPycs IGA7JywgYDonLCB+J34sIGEgZG91YmxlIHF1b3RlLCBhCndoaXRlc3BhY2UgY2hhcmFjdGVyIGFu ZCB0aGUgZW5kIG9mIGxpbmUuCgogICBCT1JERVIxIGlzIGEgbm9uLXdoaXRlc3BhY2UgY2hhcmFj dGVyIGRpZmZlcmVudCBmcm9tIGAuJywgYDsnLCBgLicKYW5kIGAkJy4KCiAgIEJPRFkgY2FuIGNv bnRhaW4gYW55IGNoYXJhY3RlciBleGNlcHRlZCBgJCcsIGFuZCBtYXkgbm90IHNwYW4gb3Zlcgpt b3JlIHRoYW4gMyBsaW5lcy4KCiAgIEJPUkRFUjIgaXMgYW55IG5vbi13aGl0ZXNwYWNlIGNoYXJh Y3RlciBkaWZmZXJlbnQgZnJvbSB+LH4sIGAuJyBhbmQKYCQnLgoKICAgICBJdCB3b3VsZCBpbnRy b2R1Y2UgaW5jb21wYXRpYmlsaXRpZXMgd2l0aCBwcmV2aW91cyBPcmcgdmVyc2lvbnMsCiAgICAg YnV0IHN1cHBvcnQgZm9yICIkLi4uJCIgKGFuZCBmb3Igc3ltbWV0cnksIGAkJC4uLiQkJykgY29u c3RydWN0cwogICAgIG91Z2h0IHRvIGJlIHJlbW92ZWQuCgogICAgIFRoZXkgYXJlIHNsb3cgdG8g cGFyc2UsIGZyYWdpbGUsIHJlZHVuZGFudCwgaW1wbHkgZmFsc2UgcG9zaXRpdmVzCiAgICAgYW5k IGRvIG5vdCBsb29rIGdvb2QgaW4gTGFUZVggb3V0cHV0IGFueXdheS4gIEV2ZW4gdGhlIExhVGVY CiAgICAgY29tbXVuaXR5IHN1Z2dlc3RzIHRvIHVzZSBgXCguLi5cKScgb3ZlciBgJC4uLiQnLiAg LS0gbmd6CgofCkZpbGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IEV4cG9ydCBTbmlwcGV0cywg IE5leHQ6IEZvb3Rub3RlIFJlZmVyZW5jZXMsICBQcmV2OiBFbnRpdGllcyBhbmQgTGFUZVggRnJh Z21lbnRzLCAgVXA6IE9iamVjdHMKCjUuMiBFeHBvcnQgU25pcHBldHMKPT09PT09PT09PT09PT09 PT09PQoKUGF0dGVyIGZvciBleHBvcnQgc25pcHBldHMgaXM6CgpAQE5BTUU6VkFMVUVAQAoKICAg TkFNRSBjYW4gY29udGFpbiBhbnkgYWxwaGEtbnVtZXJpYyBjaGFyYWN0ZXIgYW5kIGh5cGhlbnMu CgogICBWQUxVRSBjYW4gY29udGFpbiBhbnl0aGluZyBidXQgIkBAIiBzdHJpbmcuCgofCkZpbGU6 IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IEZvb3Rub3RlIFJlZmVyZW5jZXMsICBOZXh0OiBJbmxp bmUgQmFiZWwgQ2FsbHMgYW5kIFNvdXJjZSBCbG9ja3MsICBQcmV2OiBFeHBvcnQgU25pcHBldHMs ICBVcDogT2JqZWN0cwoKNS4zIEZvb3Rub3RlIFJlZmVyZW5jZXMKPT09PT09PT09PT09PT09PT09 PT09PT0KClRoZXJlIGFyZSBmb3VyIHBhdHRlcm5zIGZvciBmb290bm90ZSByZWZlcmVuY2VzOgoK W01BUktdCltmbjpMQUJFTF0KW2ZuOkxBQkVMOkRFRklOSVRJT05dCltmbjo6REVGSU5JVElPTl0K CiAgIE1BUksgaXMgYSBudW1iZXIuCgogICBMQUJFTCBjYW4gY29udGFpbiBhbnkgd29yZCBjb25z dGl0dWVudCBjaGFyYWN0ZXIsIGh5cGhlbnMgYW5kCnVuZGVyc2NvcmVzLgoKICAgREVGSU5JVElP TiBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVyLiAgVGhvdWdoIG9wZW5pbmcgYW5kIGNsb3NpbmcK c3F1YXJlIGJyYWNrZXRzIG11c3QgYmUgYmFsYW5jZWQgaW4gaXQuICBJdCBjYW4gY29udGFpbiBh bnkgb2JqZWN0CmVuY291bnRlcmVkIGluIGEgcGFyYWdyYXBoLCBldmVuIG90aGVyIGZvb3Rub3Rl IHJlZmVyZW5jZXMuCgogICBJZiB0aGUgcmVmZXJlbmNlIGZvbGxvd3MgdGhlIHRoaXJkIHBhdHRl cm4sIGl0IGlzIGNhbGxlZCBhbiAiaW5saW5lCmZvb3Rub3RlIi4gIElmIGl0IGZvbGxvd3MgdGhl IGZvdXJ0aCBvbmUsIGkuZS4gaWYgTEFCRUwgaXMgb21pdHRlZCwgaXQKaXMgYW4gImFub255bW91 cyBmb290bm90ZSIuCgofCkZpbGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IElubGluZSBCYWJl bCBDYWxscyBhbmQgU291cmNlIEJsb2NrcywgIE5leHQ6IExpbmUgQnJlYWtzLCAgUHJldjogRm9v dG5vdGUgUmVmZXJlbmNlcywgIFVwOiBPYmplY3RzCgo1LjQgSW5saW5lIEJhYmVsIENhbGxzIGFu ZCBTb3VyY2UgQmxvY2tzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K CklubGluZSBCYWJlbCBjYWxscyBmb2xsb3cgYW55IG9mIHRoZSBmb2xsb3dpbmcgcGF0dGVybnM6 CgpjYWxsX05BTUUoQVJHVU1FTlRTKQpjYWxsX05BTUVbSEVBREVSXShBUkdVTUVOVFMpW0hFQURF Ul0KCiAgIE5BTUUgY2FuIGNvbnRhaW4gYW55IGNoYXJhY3RlciBiZXNpZGVzIGAoJywgYCknIGFu ZCAiIi4KCiAgIEhFQURFUiBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVyIGJlc2lkZXMgYF0nIGFu ZCAiIi4KCiAgIEFSR1VNRU5UUyBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVyIGJlc2lkZXMgYCkn IGFuZCAiIi4KCiAgIElubGluZSBzb3VyY2UgYmxvY2tzIGZvbGxvdyBhbnkgb2YgdGhlIGZvbGxv d2luZyBwYXR0ZXJuczoKCnNyY19MQU5He0JPRFl9CnNyY19MQU5HW09QVElPTlNde0JPRFl9Cgog ICBMQU5HIGNhbiBjb250YWluIGFueSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIuCgogICBPUFRJ T05TIGFuZCBCT0RZIGNhbiBjb250YWluIGFueSBjaGFyYWN0ZXIgYnV0ICIiLgoKHwpGaWxlOiBv cmctc3ludGF4LmluZm8sICBOb2RlOiBMaW5lIEJyZWFrcywgIE5leHQ6IExpbmtzLCAgUHJldjog SW5saW5lIEJhYmVsIENhbGxzIGFuZCBTb3VyY2UgQmxvY2tzLCAgVXA6IE9iamVjdHMKCjUuNSBM aW5lIEJyZWFrcwo9PT09PT09PT09PT09PT0KCkEgbGluZSBicmVhayBjb25zaXN0cyBpbiAiXCIg cGF0dGVybiBhdCB0aGUgZW5kIG9mIGFuIG90aGVyd2lzZQpub24tZW1wdHkgbGluZS4KCiAgIFNQ QUNFIGNhbiBjb250YWluIGFueSBudW1iZXIgb2YgdGFicyBhbmQgc3BhY2VzLCBpbmNsdWRpbmcg MC4KCh8KRmlsZTogb3JnLXN5bnRheC5pbmZvLCAgTm9kZTogTGlua3MsICBOZXh0OiBNYWNyb3Ms ICBQcmV2OiBMaW5lIEJyZWFrcywgIFVwOiBPYmplY3RzCgo1LjYgTGlua3MKPT09PT09PT09CgpU aGVyZSBhcmUgNCBtYWpvciB0eXBlcyBvZiBsaW5rczoKClJBRElPICAgICAgICAgICAgICAgICAg ICAgKCJyYWRpbyIgbGluaykKPFBST1RPQ09MOlBBVEg+ICAgICAgICAgICAoImFuZ2xlIiBsaW5r KQpQUkUgUFJPVE9DT0w6UEFUSDIgUE9TVCAgICgicGxhaW4iIGxpbmspCltbUEFUSDNdREVTQ1JJ UFRJT05dICAgICAgKCJyZWd1bGFyIiBsaW5rKQoKICAgUkFESU8gaXMgYSBzdHJpbmcgbWF0Y2hl ZCBieSBzb21lICpub3RlIHJhZGlvIHRhcmdldDogVGFyZ2V0cyBhbmQKUmFkaW8gVGFyZ2V0cy4g IEl0IGNhbiBjb250YWluICpub3RlIGVudGl0aWVzOiBFbnRpdGllcyBhbmQgTGFUZVgKRnJhZ21l bnRzLCAqbm90ZSBsYXRleCBmcmFnbWVudHM6IEVudGl0aWVzIGFuZCBMYVRlWCBGcmFnbWVudHMs ICpub3RlCnN1YnNjcmlwdDogU3Vic2NyaXB0IGFuZCBTdXBlcnNjcmlwdC4gYW5kICpub3RlIHN1 cGVyc2NyaXB0OiBTdWJzY3JpcHQKYW5kIFN1cGVyc2NyaXB0LiBvbmx5LgoKICAgUFJPVE9DT0wg aXMgYSBzdHJpbmcgYW1vbmcgYG9yZy1saW5rLXR5cGVzJy4KCiAgIFBBVEggY2FuIGNvbnRhaW4g YW55IGNoYXJhY3RlciBidXQgYF0nLCBgPCcsIGA+JyBhbmQgYFxuJy4KCiAgIFBSRSBhbmQgUE9T VCBhcmUgbm9uIHdvcmQgY29uc3RpdHVlbnQuICBUaGV5IGNhbiBiZSwgcmVzcGVjdGl2ZWx5LAp0 aGUgYmVnaW5uaW5nIG9yIHRoZSBlbmQgb2YgYSBsaW5lLgoKICAgUEFUSDIgY2FuIGNvbnRhaW4g YW55IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlciBleGNlcHRlZCBgKCcsIGApJywKYDwnIGFuZCBg PicuICBJdCBtdXN0IGVuZCB3aXRoIGEgd29yZC1jb25zdGl0dWVudCBjaGFyYWN0ZXIsIG9yIGFu eQpub24td2hpdGVzcGFjZSBub24tcHVuY3R1YXRpb24gY2hhcmFjdGVyIGZvbGxvd2VkIGJ5IGAv Jy4KCiAgIERFU0NSSVBUSU9OIG11c3QgYmUgZW5jbG9zZWQgd2l0aGluIHNxdWFyZSBicmFja2V0 cy4gIEl0IGNhbiBjb250YWluCmFueSBjaGFyYWN0ZXIgYnV0IHNxdWFyZSBicmFja2V0cy4gIE9i amVjdC13aXNlLCBpdCBjYW4gY29udGFpbiBhbnkKb2JqZWN0IGZvdW5kIGluIGEgcGFyYWdyYXBo IGV4Y2VwdGVkIGEgKm5vdGUgZm9vdG5vdGUgcmVmZXJlbmNlOgpGb290bm90ZSBSZWZlcmVuY2Vz LCBhICpub3RlIHJhZGlvIHRhcmdldDogVGFyZ2V0cyBhbmQgUmFkaW8gVGFyZ2V0cy4KYW5kIGEg Km5vdGUgbGluZSBicmVhazogTGluZSBCcmVha3MuICBJdCBjYW5ub3QgY29udGFpbiBhbm90aGVy IGxpbmsKZWl0aGVyLCB1bmxlc3MgaXQgaXMgYSBwbGFpbiBsaW5rLgoKICAgREVTQ1JJUFRJT04g aXMgb3B0aW9uYWwuCgogICBQQVRIMyBpcyBidWlsdCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2lu ZyBwYXR0ZXJuczoKCkZJTEVOQU1FICAgICAgICAgICAoImZpbGUiIHR5cGUpClBST1RPQ09MOlBB VEg0ICAgICAoIlBST1RPQ09MIiB0eXBlKQppZDpJRCAgICAgICAgICAgICAgKCJpZCIgdHlwZSkK I0NVU1RPTS1JRCAgICAgICAgICgiY3VzdG9tLWlkIiB0eXBlKQooQ09ERVJFRikgICAgICAgICAg KCJjb2RlcmVmIiB0eXBlKQpGVVpaWSAgICAgICAgICAgICAgKCJmdXp6eSIgdHlwZSkKCiAgIEZJ TEVOQU1FIGlzIGEgZmlsZSBuYW1lLCBlaXRoZXIgYWJzb2x1dGUgb3IgcmVsYXRpdmUuCgogICBQ QVRINCBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVyIGJlc2lkZXMgc3F1YXJlIGJyYWNrZXRzLgoK ICAgSUQgaXMgY29uc3RpdHV0ZWQgb2YgaGV4YWRlY2ltYWwgbnVtYmVycyBzZXBhcmF0ZWQgd2l0 aCBoeXBoZW5zLgoKICAgUEFUSDQsIENVU1RPTS1JRCwgQ09ERVJFRiBhbmQgRlVaWlkgY2FuIGNv bnRhaW4gYW55IGNoYXJhY3RlcgpiZXNpZGVzIHNxdWFyZSBicmFja2V0cy4KCiAgICAgSSBzdWdn ZXN0IHRvIHJlbW92ZSBhbmdsZSBsaW5rcy4gIElmIG9uZSBuZWVkcyBzcGFjZXMgaW4gUEFUSCwg c2hlCiAgICAgY2FuIHVzZSBzdGFuZGFyZCBsaW5rIHN5bnRheCBpbnN0ZWFkLgoKICAgICBJIGFs c28gc3VnZ2VzdCB0byByZW1vdmUgYG9yZy1saW5rLXR5cGVzJyBkZXBlbmRlbmN5IGluIFBST1RP Q09MCiAgICAgYW5kIG1hdGNoIGBbYS16QS1aXScgaW5zdGVhZCwgZm9yIHBvcnRhYmlsaXR5LiAg LS0gbmd6CgofCkZpbGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IE1hY3JvcywgIE5leHQ6IFRh cmdldHMgYW5kIFJhZGlvIFRhcmdldHMsICBQcmV2OiBMaW5rcywgIFVwOiBPYmplY3RzCgo1Ljcg TWFjcm9zCj09PT09PT09PT0KCk1hY3JvcyBmb2xsb3cgdGhlIHBhdHRlcm46Cgp7e3tOQU1FKEFS R1VNRU5UUyl9fX0KCiAgIE5BTUUgbXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyIGFuZCBjYW4gYmUg Zm9sbG93ZWQgYnkgYW55IG51bWJlciBvZgphbHBoYS1udW1lcmljIGNoYXJhY3RlcnMsIGh5cGhl bnMgYW5kIHVuZGVyc2NvcmVzLgoKICAgQVJHVU1FTlRTIGNhbiBjb250YWluIGFueXRoaW5nIGJ1 dCAifX19IiBzdHJpbmcuICBWYWx1ZXMgd2l0aGluCkFSR1VNRU5UUyBhcmUgc2VwYXJhdGVkIGJ5 IGNvbW1hcy4gIE5vbi1zZXBhcmF0aW5nIGNvbW1hcyBoYXZlIHRvIGJlCmVzY2FwZWQgd2l0aCBh IGJhY2tzbGFzaCBjaGFyYWN0ZXIuCgofCkZpbGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IFRh cmdldHMgYW5kIFJhZGlvIFRhcmdldHMsICBOZXh0OiBTdGF0aXN0aWNzIENvb2tpZXMsICBQcmV2 OiBNYWNyb3MsICBVcDogT2JqZWN0cwoKNS44IFRhcmdldHMgYW5kIFJhZGlvIFRhcmdldHMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KClJhZGlvIHRhcmdldHMgZm9sbG93IHRoZSBwYXR0 ZXJuOgoKPDw8Q09OVEVOVFM+Pj4KCiAgIENPTlRFTlRTIGNhbiBiZSBhbnkgY2hhcmFjdGVyIGJl c2lkZXMgYDwnLCBgPicgYW5kICIiLiAgQXMgZmFyIGFzCm9iamVjdHMgZ28sIGl0IGNhbiBjb250 YWluICpub3RlIGVudGl0aWVzOiBFbnRpdGllcyBhbmQgTGFUZVgKRnJhZ21lbnRzLCAqbm90ZSBs YXRleCBmcmFnbWVudHM6IEVudGl0aWVzIGFuZCBMYVRlWCBGcmFnbWVudHMsICpub3RlCnN1YnNj cmlwdDogU3Vic2NyaXB0IGFuZCBTdXBlcnNjcmlwdC4gYW5kICpub3RlIHN1cGVyc2NyaXB0OiBT dWJzY3JpcHQKYW5kIFN1cGVyc2NyaXB0LiBvbmx5LgoKICAgVGFyZ2V0cyBmb2xsb3cgdGhlIHBh dHRlcm46Cgo8PFRBUkdFVD4+CgogICBUQVJHRVQgY2FuIGNvbnRhaW4gYW55IGNoYXJhY3RlciBi ZXNpZGVzIGA8JywgYD4nIGFuZCAiIi4gIEl0IGNhbm5vdApjb250YWluIGFueSBvYmplY3QuCgof CkZpbGU6IG9yZy1zeW50YXguaW5mbywgIE5vZGU6IFN0YXRpc3RpY3MgQ29va2llcywgIE5leHQ6 IFN1YnNjcmlwdCBhbmQgU3VwZXJzY3JpcHQsICBQcmV2OiBUYXJnZXRzIGFuZCBSYWRpbyBUYXJn ZXRzLCAgVXA6IE9iamVjdHMKCjUuOSBTdGF0aXN0aWNzIENvb2tpZXMKPT09PT09PT09PT09PT09 PT09PT09PQoKU3RhdGlzdGljcyBjb29raWVzIGZvbGxvdyBlaXRoZXIgcGF0dGVybjoKCltQRVJD RU5UJV0KW05VTTEvTlVNMl0KCiAgIFBFUkNFTlQsIE5VTTEgYW5kIE5VTTIgYXJlIG51bWJlcnMg b3IgdGhlIGVtcHR5IHN0cmluZy4KCh8KRmlsZTogb3JnLXN5bnRheC5pbmZvLCAgTm9kZTogU3Vi c2NyaXB0IGFuZCBTdXBlcnNjcmlwdCwgIE5leHQ6IFRhYmxlIENlbGxzLCAgUHJldjogU3RhdGlz dGljcyBDb29raWVzLCAgVXA6IE9iamVjdHMKCjUuMTAgU3Vic2NyaXB0IGFuZCBTdXBlcnNjcmlw dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClBhdHRlcm4gZm9yIHN1YnNjcmlwdCBp czoKCkNIQVJfU0NSSVBUCgogICBQYXR0ZXJuIGZvciBzdXBlcnNjcmlwdCBpczoKCkNIQVJeU0NS SVBUCgogICBDSEFSIGlzIGFueSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIuCgogICBTQ1JJUFQg Y2FuIGJlIGAqJywgYSBzdHJpbmcgbWFkZSBvZiB3b3JkLWNvbnN0aXR1ZW50IGNoYXJhY3RlcnMK bWF5YmUgcHJlY2VkZWQgYnkgYSBwbHVzIG9yIGEgbWludXMgc2lnbiwgYW4gZXhwcmVzc2lvbiBl bmNsb3NlZCBpbgpwYXJlbnRoZXNpcyAocmVzcC4gY3VybHkgYnJhY2tldHMpIGNvbnRhaW5pbmcg YmFsYW5jZWQgcGFyZW50aGVzaXMKKHJlc3AuIGN1cmx5IGJyYWNrZXRzKS4KCh8KRmlsZTogb3Jn LXN5bnRheC5pbmZvLCAgTm9kZTogVGFibGUgQ2VsbHMsICBOZXh0OiBUaW1lc3RhbXBzLCAgUHJl djogU3Vic2NyaXB0IGFuZCBTdXBlcnNjcmlwdCwgIFVwOiBPYmplY3RzCgo1LjExIFRhYmxlIENl bGxzCj09PT09PT09PT09PT09PT0KClRhYmxlIGNlbGxzIGZvbGxvdyB0aGUgcGF0dGVybjoKCkNP TlRFTlRTfAoKICAgQ09OVEVOVFMgY2FuIGNvbnRhaW4gYW55IGNoYXJhY3RlciBleGNlcHRlZCBh IHZlcnRpY2FsIGJhci4KCh8KRmlsZTogb3JnLXN5bnRheC5pbmZvLCAgTm9kZTogVGltZXN0YW1w cywgIE5leHQ6IFRleHQgTWFya3VwLCAgUHJldjogVGFibGUgQ2VsbHMsICBVcDogT2JqZWN0cwoK NS4xMiBUaW1lc3RhbXBzCj09PT09PT09PT09PT09PQoKVGhlcmUgYXJlIHNldmVuIHBvc3NpYmxl IHBhdHRlcm5zIGZvciB0aW1lc3RhbXBzOgoKPCUlKFNFWFApPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoZGlhcnkpCjxEQVRFIFRJTUUgUkVQRUFURVI+ICAgICAgICAgICAg ICAgICAgICAgICAgIChhY3RpdmUpCltEQVRFIFRJTUUgUkVQRUFURVJdICAgICAgICAgICAgICAg ICAgICAgICAgIChpbmFjdGl2ZSkKPERBVEUgVElNRSBSRVBFQVRFUj4tLTxEQVRFIFRJTUUgUkVQ RUFURVI+ICAgKGFjdGl2ZSByYW5nZSkKPERBVEUgVElNRS1USU1FIFJFUEVBVEVSPiAgICAgICAg ICAgICAgICAgICAgKGFjdGl2ZSByYW5nZSkKW0RBVEUgVElNRSBSRVBFQVRFUl0tLVtEQVRFIFRJ TUUgUkVQRUFURVJdICAgKGluYWN0aXZlIHJhbmdlKQpbREFURSBUSU1FLVRJTUUgUkVQRUFURVJd ICAgICAgICAgICAgICAgICAgICAoaW5hY3RpdmUgcmFuZ2UpCgogICBTRVhQIGNhbiBjb250YWlu IGFueSBjaGFyYWN0ZXIgZXhjZXB0ZWQgYD4nIGFuZCBgXG4nLgoKICAgREFURSBmb2xsb3dzIHRo ZSBwYXR0ZXJuOgoKWVlZWS1NTS1ERCBEQVlOQU1FCgogICBZLCBNIGFuZCBEIGFyZSBkaWdpdHMu ICBEQVlOQU1FIGNhbiBjb250YWluIGFueSBub24Kd2hpdGVzcGFjZS1jaGFyYWN0ZXIgYmVzaWRl cyBgKycsIGAtJywgYF0nLCBgPicsIGEgZGlnaXQgb3IgYFxuJy4KCiAgIFRJTUUgZm9sbG93cyB0 aGUgcGF0dGVybiA9SDpNTX4uICBIIGNhbiBiZSBvbmUgb3IgdHdvIGRpZ2l0IGxvbmcgYW5kCmNh biBzdGFydCB3aXRoIDAuCgogICBSRVBFQVRFUiBmb2xsb3dzIHRoZSBwYXR0ZXI6CgpNQVJLIFZB TFVFIFVOSVQKCiAgIE1BUksgaXMgYCsnIChjdW11bGF0ZSB0eXBlKSwgYCsrJyAoY2F0Y2gtdXAg dHlwZSkgb3IgYC4rJyAocmVzdGFydAp0eXBlKS4KCiAgIFZBTFVFIGlzIGEgbnVtYmVyLgoKICAg VU5JVCBpcyBhIGNoYXJhY3RlciBhbW9uZyBgaCcgKGhvdXIpLCBgZCcgKGRheSksIGB3JyAod2Vl ayksIGBtJwoobW9udGgpLCBgeScgKHllYXIpLgoKICAgTUFSSywgVkFMVUUgYW5kIFVOSVQgYXJl IG5vdCBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLgoKHwpGaWxlOiBvcmctc3lu dGF4LmluZm8sICBOb2RlOiBUZXh0IE1hcmt1cCwgIFByZXY6IFRpbWVzdGFtcHMsICBVcDogT2Jq ZWN0cwoKNS4xMyBUZXh0IE1hcmt1cAo9PT09PT09PT09PT09PT09CgpUZXh0IG1hcmt1cCBmb2xs b3dzIHRoZSBwYXR0ZXJuOgoKUFJFIE1BUktFUiBDT05URU5UUyBNQVJLRVIgUE9TVAoKICAgUFJF IGlzIGEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIsIGAoJywgYHsnIH4nfiBvciBhIGRvdWJsZSBxdW90 ZS4gIEl0CmNhbiBhbHNvIGJlIGEgYmVnaW5uaW5nIG9mIGxpbmUuCgogICBNQVJLRVIgaXMgYSBj aGFyYWN0ZXIgYW1vbmcgYConIChib2xkKSwgYD0nICh2ZXJiYXRpbSksIGAvJwooaXRhbGljKSwg YCsnIChzdHJpa2UtdGhyb3VnaCksIGBfJyAodW5kZXJsaW5lKSwgYH4nIChjb2RlKS4KCiAgIENP TlRFTlRTIGlzIGEgc3RyaW5nIGZvbGxvd2luZyB0aGUgcGF0dGVybjoKCkJPUkRFUiBCT0RZIEJP UkRFUgoKICAgQk9SREVSIGNhbiBiZSBhbnkgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIGV4Y2Vw dGVkIH4sfiwgfid+IG9yIGEKZG91YmxlIHF1b3RlLgoKICAgQk9EWSBjYW4gY29udGFpbiBjb250 YWluIGFueSBjaGFyYWN0ZXIgYnV0IG1heSBub3Qgc3BhbiBvdmVyIG1vcmUKdGhhbiAzIGxpbmVz LgoKICAgQk9SREVSIGFuZCBCT0RZIGFyZSBub3Qgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2VzLgoK ICAgQ09OVEVOVFMgY2FuIGNvbnRhaW4gYW55IG9iamVjdCBlbmNvdW50ZXJlZCBpbiBhIHBhcmFn cmFwaCB3aGVuCm1hcmt1cCBpcyAiYm9sZCIsICJpdGFsaWMiLCAic3RyaWtlLXRocm91Z2giIG9y ICJ1bmRlcmxpbmUiLgoKICAgUE9TVCBpcyBhIHdoaXRlc3BhY2UgY2hhcmFjdGVyLCBgLScsIGAu Jywgfix+LCBgOicsIGAhJywgYD8nLCB+J34sCmApJywgYH0nIG9yIGEgZG91YmxlIHF1b3RlLiAg SXQgY2FuIGFsc28gYmUgYW4gZW5kIG9mIGxpbmUuCgogICBQUkUsIE1BUktFUiwgQ09OVEVOVFMs IE1BUktFUiBhbmQgUE9TVCBhcmUgbm90IHNlcGFyYXRlZCBieQp3aGl0ZXNwYWNlIGNoYXJhY3Rl cnMuCgogICAgIEFsbCBvZiB0aGlzIGlzIHdyb25nIGlmIGBvcmctZW1waGFzaXMtcmVnZXhwLWNv bXBvbmVudHMnIG9yCiAgICAgYG9yZy1lbXBoYXNpcy1hbGlzdCcgYXJlIG1vZGlmaWVkLgoKICAg ICBUaGlzIHNob3VsZCByZWFsbHkgYmUgc2ltcGxpZmllZCBhbmQgbWFkZSBwZXJzaXN0ZW50IChp LmUuIG5vCiAgICAgZGVmY3VzdG9tIGFsbG93ZWQpLiAgT3RoZXJ3aXNlLCBwb3J0YWJpbGl0eSBh bmQgcGFyc2luZyBhcmUgam9rZXMuCgogICAgIEFsc28sIENPTlRFTlRTIHNob3VsZCBiZSBhbnl0 aGluZyB3aXRoaW4gY29kZSBhbmQgdmVyYmF0aW0KICAgICBlbXBoYXNpcywgYnkgZGVmaW5pdGlv bi4gIC0tIG5negoKCh8KVGFnIFRhYmxlOgpOb2RlOiBUb3B/MTE0ClJlZjogVG9wLUZvb3Rub3Rl LTF/MjIwNApSZWY6IFRvcC1Gb290bm90ZS0yfzIzMjUKTm9kZTogSGVhZGxpbmVzIGFuZCBTZWN0 aW9uc38yNjE4Ck5vZGU6IEFmZmlsaWF0ZWQgS2V5d29yZHN/NDk2NApOb2RlOiBHcmVhdGVyIEVs ZW1lbnRzfzYyNzUKTm9kZTogR3JlYXRlciBCbG9ja3N/Njk3NQpOb2RlOiBEcmF3ZXJzIGFuZCBQ cm9wZXJ0eSBEcmF3ZXJzfzc2MzUKTm9kZTogRHluYW1pYyBCbG9ja3N/ODQ2NApOb2RlOiBGb290 bm90ZSBEZWZpbml0aW9uc384ODI1Ck5vZGU6IElubGluZXRhc2tzfzk0MjIKTm9kZTogUGxhaW4g TGlzdHMgYW5kIEl0ZW1zfzk5ODUKTm9kZTogVGFibGVzfzExNjE5Ck5vZGU6IEVsZW1lbnRzfzEy MzIwCk5vZGU6IEJhYmVsIENhbGx/MTI4OTgKTm9kZTogQmxvY2tzfzEzMTE2Ck5vZGU6IENsb2Nr IERpYXJ5IFNleHAgYW5kIFBsYW5uaW5nfzE0NDgwCk5vZGU6IENvbW1lbnRzfzE1NTQ4Ck5vZGU6 IEZpeGVkIFdpZHRoIEFyZWFzfzE1ODUxCk5vZGU6IEhvcml6b250YWwgUnVsZXN/MTYxNzAKTm9k ZTogS2V5d29yZHN/MTY0MTEKTm9kZTogTGFUZVggRW52aXJvbm1lbnRzfzE2ODQxCk5vZGU6IE5v ZGUgUHJvcGVydGllc38xNzIwMQpOb2RlOiBQYXJhZ3JhcGhzfzE3NjAwCk5vZGU6IFRhYmxlIFJv d3N/MTc5MzAKTm9kZTogT2JqZWN0c38xODM0NgpOb2RlOiBFbnRpdGllcyBhbmQgTGFUZVggRnJh Z21lbnRzfzE5MzQ1Ck5vZGU6IEV4cG9ydCBTbmlwcGV0c38yMTA5OApOb2RlOiBGb290bm90ZSBS ZWZlcmVuY2VzfzIxNDI1Ck5vZGU6IElubGluZSBCYWJlbCBDYWxscyBhbmQgU291cmNlIEJsb2Nr c38yMjE4NwpOb2RlOiBMaW5lIEJyZWFrc38yMjkwNQpOb2RlOiBMaW5rc38yMzIwMwpOb2RlOiBN YWNyb3N/MjU0MzAKTm9kZTogVGFyZ2V0cyBhbmQgUmFkaW8gVGFyZ2V0c38yNTkwMQpOb2RlOiBT dGF0aXN0aWNzIENvb2tpZXN/MjY1NjEKTm9kZTogU3Vic2NyaXB0IGFuZCBTdXBlcnNjcmlwdH8y Njg2OQpOb2RlOiBUYWJsZSBDZWxsc38yNzQwNgpOb2RlOiBUaW1lc3RhbXBzfzI3NjYxCk5vZGU6 IFRleHQgTWFya3VwfzI4ODg0Ch8KRW5kIFRhZyBUYWJsZQo= --=-=-= Content-Type: application/x-texinfo Content-Disposition: attachment; filename=org-syntax.texi Content-Transfer-Encoding: base64 XGlucHV0IHRleGluZm8gICAgQGMgLSotIHRleGluZm8gLSotCkBjICUqKnN0YXJ0IG9mIGhlYWRl cgpAc2V0ZmlsZW5hbWUgb3JnLXN5bnRheC5pbmZvCkBzZXR0aXRsZSBPcmcgU3ludGF4IChkcmFm dCkKCgpAYyBWZXJzaW9uIGFuZCBDb250YWN0IEluZm8KQHNldCBBVVRIT1IgTmljb2xhcyBHb2F6 aW91CkBjICUqKmVuZCBvZiBoZWFkZXIKQGZpbmFsb3V0CgoKQGNvcHlpbmcKQGVuZCBjb3B5aW5n CgoKCgpAdGl0bGVwYWdlCkB0aXRsZSBPcmcgU3ludGF4IChkcmFmdCkKCkBhdXRob3IgTmljb2xh cyBHb2F6aW91CgpAYyBUaGUgZm9sbG93aW5nIHR3byBjb21tYW5kcyBzdGFydCB0aGUgY29weXJp Z2h0IHBhZ2UuCkBwYWdlCkB2c2tpcCAwcHQgcGx1cyAxZmlsbGwKQGluc2VydGNvcHlpbmcKQGVu ZCB0aXRsZXBhZ2UKCkBjIE91dHB1dCB0aGUgdGFibGUgb2YgY29udGVudHMgYXQgdGhlIGJlZ2lu bmluZy4KQGNvbnRlbnRzCgpAaWZub3R0ZXgKQG5vZGUgVG9wCkB0b3AgT3JnIFN5bnRheCAoZHJh ZnQpIE1hbnVhbApAaW5zZXJ0Y29weWluZwpAZW5kIGlmbm90dGV4CgpAbWVudQoqIEhlYWRsaW5l cyBhbmQgU2VjdGlvbnM6OiAgICAgIAoqIEFmZmlsaWF0ZWQgS2V5d29yZHM6OiAgICAgICAgIAoq IEdyZWF0ZXIgRWxlbWVudHM6OiAgICAgICAgICAgIAoqIEVsZW1lbnRzOjogICAgICAgICAgICAg ICAgICAgIAoqIE9iamVjdHM6OiAgICAgICAgICAgICAgICAgICAgIAoKQGRldGFpbG1lbnUKIC0t LSBUaGUgRGV0YWlsZWQgTm9kZSBMaXN0aW5nIC0tLQoKR3JlYXRlciBFbGVtZW50cwoKKiBHcmVh dGVyIEJsb2Nrczo6ICAgICAgICAgICAgICAKKiBEcmF3ZXJzIGFuZCBQcm9wZXJ0eSBEcmF3ZXJz OjogIAoqIER5bmFtaWMgQmxvY2tzOjogICAgICAgICAgICAgIAoqIEZvb3Rub3RlIERlZmluaXRp b25zOjogICAgICAgIAoqIElubGluZXRhc2tzOjogICAgICAgICAgICAgICAgIAoqIFBsYWluIExp c3RzIGFuZCBJdGVtczo6ICAgICAgIAoqIFRhYmxlczo6ICAgICAgICAgICAgICAgICAgICAgIAoK RWxlbWVudHMKCiogQmFiZWwgQ2FsbDo6ICAgICAgICAgICAgICAgICAgCiogQmxvY2tzOjogICAg ICAgICAgICAgICAgICAgICAgCiogQ2xvY2sgRGlhcnkgU2V4cCBhbmQgUGxhbm5pbmc6OiAgCiog Q29tbWVudHM6OiAgICAgICAgICAgICAgICAgICAgCiogRml4ZWQgV2lkdGggQXJlYXM6OiAgICAg ICAgICAgCiogSG9yaXpvbnRhbCBSdWxlczo6ICAgICAgICAgICAgCiogS2V5d29yZHM6OiAgICAg ICAgICAgICAgICAgICAgCiogTGFUZVggRW52aXJvbm1lbnRzOjogICAgICAgICAgCiogTm9kZSBQ cm9wZXJ0aWVzOjogICAgICAgICAgICAgCiogUGFyYWdyYXBoczo6ICAgICAgICAgICAgICAgICAg CiogVGFibGUgUm93czo6ICAgICAgICAgICAgICAgICAgCgpPYmplY3RzCgoqIEVudGl0aWVzIGFu ZCBMYVRlWCBGcmFnbWVudHM6OiAgCiogRXhwb3J0IFNuaXBwZXRzOjogICAgICAgICAgICAgCiog Rm9vdG5vdGUgUmVmZXJlbmNlczo6ICAgICAgICAgCiogSW5saW5lIEJhYmVsIENhbGxzIGFuZCBT b3VyY2UgQmxvY2tzOjogIAoqIExpbmUgQnJlYWtzOjogICAgICAgICAgICAgICAgIAoqIExpbmtz OjogICAgICAgICAgICAgICAgICAgICAgIAoqIE1hY3Jvczo6ICAgICAgICAgICAgICAgICAgICAg IAoqIFRhcmdldHMgYW5kIFJhZGlvIFRhcmdldHM6OiAgIAoqIFN0YXRpc3RpY3MgQ29va2llczo6 ICAgICAgICAgIAoqIFN1YnNjcmlwdCBhbmQgU3VwZXJzY3JpcHQ6OiAgIAoqIFRhYmxlIENlbGxz OjogICAgICAgICAgICAgICAgIAoqIFRpbWVzdGFtcHM6OiAgICAgICAgICAgICAgICAgIAoqIFRl eHQgTWFya3VwOjogICAgICAgICAgICAgICAgIAoKQGVuZCBkZXRhaWxtZW51CkBlbmQgbWVudQoK ClRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGFuZCBjb21tZW50cyBPcmcgc3ludGF4IGFzIGl0IGlz IGN1cnJlbnRseQpyZWFkIGJ5IGl0cyBwYXJzZXIgKE9yZyBFbGVtZW50cykgYW5kLCB0aGVyZWZv cmUsIGJ5IHRoZSBleHBvcnQKZnJhbWV3b3JrLiAgSXQgYWxzbyBpbmNsdWRlcyBhIGZldyBjb21t ZW50cyBvbiB0aGF0IHN5bnRheC4KCkEgY29yZSBjb25jZXB0IGluIHRoaXMgc3ludGF4IGlzIHRo YXQgb25seSBoZWFkbGluZXMgYW5kIHNlY3Rpb25zIGFyZQpjb250ZXh0LWZyZWVAZm9vdG5vdGV7 SW4gcGFydGljdWxhciwgdGhlIHBhcnNlciByZXF1aXJlcyBzdGFycyBhdCBjb2x1bW4gMCB0byBi ZQpxdW90ZWQgYnkgYSBjb21tYSB3aGVuIHRoZXkgZG8gbm90IGRlZmluZSBhIGhlYWRsaW5lLn1A Zm9vdG5vdGV7SXQgYWxzbyBtZWFucyB0aGF0IG9ubHkgaGVhZGxpbmVzIGFuZCBzZWN0aW9ucyBj YW4gYmUKcmVjb2duaXplZCBqdXN0IGJ5IGxvb2tpbmcgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUg bGluZS4KCkFzIGEgY29uc2VxdWVuY2UsIHVzaW5nIEBjb2Rle29yZy1lbGVtZW50LWF0LXBvaW50 fSBvcgpAY29kZXtvcmctZWxlbWVudC1jb250ZXh0fSB3aWxsIG1vdmUgdXAgdG8gdGhlIHBhcmVu dCBoZWFkbGluZSwgYW5kIHBhcnNlCnRvcC1kb3duIGZyb20gdGhlcmUgdW50aWwgY29udGV4dCBh cm91bmQgaXMgZm91bmQufS4gIEV2ZXJ5IG90aGVyIHN5bnRhY3RpY2FsIHBhcnQgb25seSBleGlz dHMKd2l0aGluIHNwZWNpZmljIGVudmlyb25tZW50cy4KClRocmVlIGNhdGVnb3JpZXMgYXJlIHVz ZWQgdG8gY2xhc3NpZnkgdGhlc2UgZW52aXJvbm1lbnRzOiBgYEdyZWF0ZXIKZWxlbWVudHMnJywg YGBlbGVtZW50cycnLCBhbmQgYGBvYmplY3RzJycsIGZyb20gdGhlIGJyb2FkZXN0IHNjb3BlIHRv IHRoZQpuYXJyb3dlc3QuCgpUaGUgcGFyYWdyYXBoIGlzIHRoZSB1bml0IG9mIG1lYXN1cmVtZW50 LiAgQW4gZWxlbWVudCBkZWZpbmVzCnN5bnRhY3RpY2FsIHBhcnRzIHRoYXQgYXJlIGF0IHRoZSBz YW1lIGxldmVsIGFzIGEgcGFyYWdyYXBoLAppLmUuIHdoaWNoIGNhbm5vdCBjb250YWluIG9yIGJl IGluY2x1ZGVkIGluIGEgcGFyYWdyYXBoLiAgQW4gb2JqZWN0IGlzCmEgcGFydCB0aGF0IGNvdWxk IGJlIGluY2x1ZGVkIGluIGFuIGVsZW1lbnQuICBHcmVhdGVyIGVsZW1lbnRzIGFyZSBhbGwKcGFy dHMgdGhhdCBjYW4gY29udGFpbiBhbiBlbGVtZW50LgoKRW1wdHkgbGluZXMgYmVsb25nIHRvIHRo ZSBsYXJnZXN0IGVsZW1lbnQgZW5kaW5nIGJlZm9yZSB0aGVtLiAgRm9yCmV4YW1wbGUsIGluIGEg bGlzdCwgZW1wdHkgbGluZXMgYmV0d2VlbiBpdGVtcyBiZWxvbmcgYXJlIHBhcnQgb2YgdGhlCml0 ZW0gYmVmb3JlIHRoZW0sIGJ1dCBlbXB0eSBsaW5lcyBhdCB0aGUgZW5kIG9mIGEgbGlzdCBiZWxv bmcgdG8gdGhlCnBsYWluIGxpc3QgZWxlbWVudC4KClVubGVzcyBzcGVjaWZpZWQgb3RoZXJ3aXNl LCBjYXNlIGlzIG5vdCBzaWduaWZpY2FudC4KCkBub2RlIEhlYWRsaW5lcyBhbmQgU2VjdGlvbnMK QGNoYXB0ZXIgSGVhZGxpbmVzIGFuZCBTZWN0aW9ucwoKQSBoZWFkbGluZSBpcyBkZWZpbmVkIGFz OgoKQHZlcmJhdGltClNUQVJTIEtFWVdPUkQgUFJJT1JJVFkgVElUTEUgVEFHUwpAZW5kIHZlcmJh dGltCgpTVEFSUyBpcyBhIHN0cmluZyBzdGFydGluZyBhdCBjb2x1bW4gMCBhbmQgY29udGFpbmlu ZyBhdCBsZWFzdCBvbmUKYXN0ZXJpc2sgKGFuZCB1cCB0byBAY29kZXtvcmctaW5saW5ldGFzay1t aW4tbGV2ZWx9IGlmIEB2ZXJie35vcmctaW5saW5ldGFza359CmxpYnJhcnkgaXMgbG9hZGVkKS4g IEl0J3MgdGhlIHNvbGUgY29tcHVsc29yeSBwYXJ0IG9mIGEgaGVhZGxpbmUuCgpLRVlXT1JEIGlz IGEgVE9ETyBrZXl3b3JkLCB3aGljaCBoYXMgdG8gYmVsb25nIHRvIHRoZSBsaXN0IGRlZmluZWQK aW4gQGNvZGV7b3JnLXRvZG8ta2V5d29yZHN9LiAgQ2FzZSBpcyBzaWduaWZpY2FudC4KClBSSU9S SVRZIGlzIGEgcHJpb3JpdHkgY29va2llLCBpLmUuIGEgc2luZ2xlIGxldHRlciBwcmVjZWRlZCBi eQphIGhhc2ggc2lnbiAjIGFuZCBlbmNsb3NlZCB3aXRoaW4gc3F1YXJlIGJyYWNrZXRzLiAgQ2Fz ZSBpcwpzaWduaWZpY2FudC4KClRJVExFIGNhbiBiZSBtYWRlIG9mIGFueSBjaGFyYWN0ZXIgYnV0 IGEgbmV3IGxpbmUuICBUaG91Z2gsIGl0IHdpbGwKbWF0Y2ggYWZ0ZXIgZXZlcnkgb3RoZXIgcGFy dCBoYXZlIGJlZW4gbWF0Y2hlZC4KClRBR1MgaXMgbWFkZSBvZiB3b3JkcyBjb250YWluaW5nIGFu eSBhbHBoYS1udW1lcmljIGNoYXJhY3RlciwKdW5kZXJzY29yZSwgYXQgc2lnbiwgaGFzaCBzaWdu IG9yIHBlcmNlbnQgc2lnbiwgYW5kIHNlcGFyYXRlZCB3aXRoCmNvbG9ucy4KCkV4YW1wbGVzIG9m IHZhbGlkIGhlYWRsaW5lcyBpbmNsdWRlOgoKQHZlcmJhdGltCioKCioqIERPTkUKCioqKiBTb21l IGUtbWFpbAoKKioqKiBUT0RPIFsjQV0gQ09NTUVOVCBUaXRsZSA6dGFnOmEyJToKQGVuZCB2ZXJi YXRpbQoKSWYgdGhlIGZpcnN0IHdvcmQgYXBwZWFyaW5nIGluIHRoZSB0aXRsZSBpcyBAY29kZXtv cmctY29tbWVudC1rZXl3b3JkfSwKdGhlIGhlYWRsaW5lIHdpbGwgYmUgY29uc2lkZXJlZCBhcyBg YGNvbW1lbnRlZCcnLiAgSWYgdGhhdCBmaXJzdCB3b3JkCmlzIEBjb2Rle29yZy1xdW90ZS1zdHJp bmd9LCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgYGBxdW90ZWQnJy4gIEluIGJvdGgKc2l0dWF0 aW9ucywgY2FzZSBpcyBzaWduaWZpY2FudC4KCklmIGl0cyB0aXRsZSBpcyBAY29kZXtvcmctZm9v dG5vdGUtc2VjdGlvbn0sIGl0IHdpbGwgYmUgY29uc2lkZXJlZCBhcwphIGBgZm9vdG5vdGUgc2Vj dGlvbicnLiAgQ2FzZSBpcyBzaWduaWZpY2FudC4KCklmIEBjb2Rle29yZy1hcmNoaXZlLXRhZ30g aXMgb25lIG9mIGl0cyB0YWdzLCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgYXMKYGBhcmNoaXZlZCcn LiAgQ2FzZSBpcyBzaWduaWZpY2FudC4KCkEgaGVhZGxpbmUgY29udGFpbnMgZGlyZWN0bHkgYXQg bW9zdCBvbmUgc2VjdGlvbiwgZm9sbG93ZWQgYnkgYW55Cm51bWJlciBvZiBoZWFkbGluZXMuICBP bmx5IGEgc2VjdGlvbiBjYW4gY29udGFpbiBhbm90aGVyIHNlY3Rpb24uCgpBIHNlY3Rpb24gY29u dGFpbnMgZGlyZWN0bHkgYW55IGdyZWF0ZXIgZWxlbWVudCBvciBlbGVtZW50LiAgT25seQphIGhl YWRsaW5lIGNhbiBjb250YWluIGEgc2VjdGlvbi4gIEFzIGFuIGV4Y2VwdGlvbiwgdGV4dCBiZWZv cmUgdGhlCmZpcnN0IGhlYWRsaW5lIGluIHRoZSBkb2N1bWVudCBhbHNvIGJlbG9uZ3MgdG8gYSBz ZWN0aW9uLgoKSW4gYSBxdW90ZWQgaGVhZGxpbmUgY29udGFpbnMgYSBzZWN0aW9uLCB0aGUgbGF0 dGVyIHdpbGwgYmUKY29uc2lkZXJlZCBhcyBhIGBgcXVvdGUgc2VjdGlvbicnLgoKQXMgYW4gZXhh bXBsZSwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBkb2N1bWVudDoKCkBleGFtcGxlCkFuIGludHJv ZHVjdGlvbi4KCiogQSBIZWFkbGluZSAKCiAgU29tZSB0ZXh0LgoKKiogU3ViLVRvcGljIDEKCioq IFN1Yi1Ub3BpYyAyCgoqKiogQWRkaXRpb25hbCBlbnRyeSAKCioqIFFVT1RFIEFub3RoZXIgU3Vi LVRvcGljCgogICBTb21lIG90aGVyIHRleHQuCkBlbmQgZXhhbXBsZQoKSXRzIGludGVybmFsIHN0 cnVjdHVyZSBjb3VsZCBiZSBzdW1tYXJpemVkIGFzOgoKQHZlcmJhdGltCihkb2N1bWVudAogKHNl Y3Rpb24pCiAoaGVhZGxpbmUKICAoc2VjdGlvbikKICAoaGVhZGxpbmUpCiAgKGhlYWRsaW5lCiAg IChoZWFkbGluZSkpCiAgKGhlYWRsaW5lCiAgIChxdW90ZS1zZWN0aW9uKSkpKQpAZW5kIHZlcmJh dGltCgpAbm9kZSBBZmZpbGlhdGVkIEtleXdvcmRzCkBjaGFwdGVyIEFmZmlsaWF0ZWQgS2V5d29y ZHMKCldpdGggdGhlIGV4Y2VwdGlvbiBvZiBAcmVme0lubGluZXRhc2tzLGlubGluZXRhc2tzfSwg QHJlZntQbGFpbiBMaXN0cyBhbmQgSXRlbXMsaXRlbXN9LCBAcmVme0Nsb2NrIERpYXJ5IFNleHAg YW5kIFBsYW5uaW5nLHBsYW5uaW5nfSwgQHJlZntDbG9jayBEaWFyeSBTZXhwIGFuZCBQbGFubmlu ZyxjbG9ja3N9LCBAcmVme05vZGUgUHJvcGVydGllcyxub2RlCnByb3BlcnRpZXN9IGFuZCBAcmVm e1RhYmxlIFJvd3MsdGFibGUgcm93c30sIGV2ZXJ5IG90aGVyIGVsZW1lbnQgdHlwZSBjYW4gYmUg YXNzaWduZWQKYXR0cmlidXRlcy4KClRoaXMgaXMgZG9uZSBieSBhZGRpbmcgc3BlY2lmaWMga2V5 d29yZHMsIG5hbWVkIGBgYWZmaWxpYXRlZAprZXl3b3JkcycnLCBqdXN0IGFib3ZlIHRoZSBlbGVt ZW50IGNvbnNpZGVyZWQsIG5vIGJsYW5rIGxpbmUgYWxsb3dlZC4KCkFmZmlsaWF0ZWQga2V5d29y ZHMgYXJlIGJ1aWx0IHVwb24gb25lIG9mIHRoZSBmb2xsb3dpbmcgcGF0dGVybnM6CmBgIytLRVk6 IFZBTFVFJycsIGBgIytLRVlbT1BUSU9OQUxdOiBWQUxVRScnIG9yIGBgIytBVFRSQG1hdGh7X0JB Q0tFTkR9OiBWQUxVRScnLgoKS0VZIGlzIGVpdGhlciBgYENBUFRJT04nJywgYGBIRUFERVInJywg YGBOQU1FJycsIGBgUExPVCcnIG9yIGBgUkVTVUxUUycnCnN0cmluZy4KCkJBQ0tFTkQgaXMgYSBz dHJpbmcgY29uc3RpdHV0ZWQgb2YgYWxwaGEtbnVtZXJpYyBjaGFyYWN0ZXJzLCBoeXBoZW5zCm9y IHVuZGVyc2NvcmVzLgoKT1BUSU9OQUwgYW5kIFZBTFVFIGNhbiBjb250YWluIGFueSBjaGFyYWN0 ZXIgYnV0IGEgbmV3IGxpbmUuICBPbmx5CmBgQ0FQVElPTicnIGFuZCBgYFJFU1VMVFMnJyBrZXl3 b3JkcyBjYW4gaGF2ZSBhbiBvcHRpb25hbCB2YWx1ZS4KCkFuIGFmZmlsaWF0ZWQga2V5d29yZCBj YW4gYXBwZWFyIG9uIG11bHRpcGxlIGxpbmVzIGlmIEtFWSBpcyBlaXRoZXIKYGBDQVBUSU9OJycg b3IgYGBIRUFERVInJyBvciBpZiBpdHMgcGF0dGVybiBpcyBgYCMrQVRUUkBtYXRoe19CQUNLRU5E fTogVkFMVUUnJy4KCmBgQ0FQVElPTicnLCBgYEFVVEhPUicnLCBgYERBVEUnJyBhbmQgYGBUSVRM RScnIGtleXdvcmRzIGNhbiBjb250YWluIG9iamVjdHMKaW4gdGhlaXIgdmFsdWUgYW5kIHRoZWly IG9wdGlvbmFsIHZhbHVlLCBpZiBhcHBsaWNhYmxlLgoKQG5vZGUgR3JlYXRlciBFbGVtZW50cwpA Y2hhcHRlciBHcmVhdGVyIEVsZW1lbnRzCgpVbmxlc3Mgc3BlY2lmaWVkIG90aGVyd2lzZSwgZ3Jl YXRlciBlbGVtZW50cyBjYW4gY29udGFpbiBkaXJlY3RseQphbnkgb3RoZXIgZWxlbWVudCBvciBn cmVhdGVyIGVsZW1lbnQgZXhjZXB0ZWQ6CgpAaXRlbWl6ZQpAaXRlbSAKZWxlbWVudHMgb2YgdGhl aXIgb3duIHR5cGUsCgpAaXRlbSAKQHJlZntOb2RlIFByb3BlcnRpZXMsbm9kZSBwcm9wZXJ0aWVz fSwgd2hpY2ggY2FuIG9ubHkgYmUgZm91bmQgaW4gQHJlZntEcmF3ZXJzIGFuZCBQcm9wZXJ0eSBE cmF3ZXJzLHByb3BlcnR5IGRyYXdlcnN9LAoKQGl0ZW0gCkByZWZ7UGxhaW4gTGlzdHMgYW5kIEl0 ZW1zLGl0ZW1zfSwgd2hpY2ggY2FuIG9ubHkgYmUgZm91bmQgaW4gQHJlZntQbGFpbiBMaXN0cyBh bmQgSXRlbXMscGxhaW4gbGlzdHN9LgoKQGVuZCBpdGVtaXplCgoKQG1lbnUKKiBHcmVhdGVyIEJs b2Nrczo6ICAgICAgICAgICAgICAKKiBEcmF3ZXJzIGFuZCBQcm9wZXJ0eSBEcmF3ZXJzOjogIAoq IER5bmFtaWMgQmxvY2tzOjogICAgICAgICAgICAgIAoqIEZvb3Rub3RlIERlZmluaXRpb25zOjog ICAgICAgIAoqIElubGluZXRhc2tzOjogICAgICAgICAgICAgICAgIAoqIFBsYWluIExpc3RzIGFu ZCBJdGVtczo6ICAgICAgIAoqIFRhYmxlczo6ICAgICAgICAgICAgICAgICAgICAgIApAZW5kIG1l bnUKCkBub2RlIEdyZWF0ZXIgQmxvY2tzCkBzZWN0aW9uIEdyZWF0ZXIgQmxvY2tzCgpHcmVhdGVy IGJsb2NrcyBjb25zaXN0IGluIHRoZSBmb2xsb3dpbmcgcGF0dGVybjoKCkB2ZXJiYXRpbQojK0JF R0lOX05BTUUgUEFSQU1FVEVSUwpDT05URU5UUwojK0VORF9OQU1FCkBlbmQgdmVyYmF0aW0KCk5B TUUgY2FuIGNvbnRhaW4gYW55IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3Rlci4KClBBUkFNRVRFUlMg Y2FuIGNvbnRhaW4gYW55IGNoYXJhY3RlciwgYW5kIGNhbiBiZSBvbWl0dGVkLgoKSWYgTkFNRSBp cyBgYENFTlRFUicnLCBpdCB3aWxsIGJlIGEgYGBjZW50ZXIgYmxvY2snJy4gIElmIGl0IGlzCmBg UVVPVEUnJywgaXQgd2lsbCBiZSBhIGBgcXVvdGUgYmxvY2snJy4KCklmIHRoZSBibG9jayBpcyBu ZWl0aGVyIGEgY2VudGVyIGJsb2NrLCBhIHF1b3RlIGJsb2NrIG9yIGEgQHJlZntCbG9ja3MsYmxv Y2sKZWxlbWVudH0sIGl0IHdpbGwgYmUgYSBgYHNwZWNpYWwgYmxvY2snJy4KCkNPTlRFTlRTIGNh biBjb250YWluIGFueSBlbGVtZW50LCBidXQgYW5vdGhlciBncmVhdGVyIGJsb2NrIG9mIHRoZQpz YW1lIHR5cGUuCgpAbm9kZSBEcmF3ZXJzIGFuZCBQcm9wZXJ0eSBEcmF3ZXJzCkBzZWN0aW9uIERy YXdlcnMgYW5kIFByb3BlcnR5IERyYXdlcnMKClBhdHRlcm4gZm9yIGRyYXdlcnMgaXM6CgpAdmVy YmF0aW0KOk5BTUU6CkNPTlRFTlRTCjpFTkQ6CkBlbmQgdmVyYmF0aW0KCk5BTUUgaGFzIHRvIGVp dGhlciBiZSBgYFBST1BFUlRJRVMnJyBvciBiZWxvbmcgdG8gQGNvZGV7b3JnLWRyYXdlcnN9IGxp c3QuCgpJZiBOQU1FIGlzIGBgUFJPUEVSVElFUycnLCB0aGUgZHJhd2VyIHdpbGwgYmVjb21lIGEg YGBwcm9wZXJ0eQpkcmF3ZXInJy4KCkluIGEgcHJvcGVydHkgZHJhd2VycywgQ09OVEVOVFMgY2Fu IG9ubHkgY29udGFpbiBAcmVme05vZGUgUHJvcGVydGllcyxub2RlIHByb3BlcnR5fQplbGVtZW50 cy4gIE90aGVyd2lzZSBpdCBjYW4gY29udGFpbiBhbnkgZWxlbWVudCBidXQgYW5vdGhlciBkcmF3 ZXIKb3IgcHJvcGVydHkgZHJhd2VyLgoKSXQgd291bGQgYmUgbmljZSBpZiB1c2VycyBoYWRuJ3Qg dG8gcmVnaXN0ZXIgZHJhd2VycyBuYW1lcyBiZWZvcmUKdXNpbmcgdGhlbSBpbiBAY29kZXtvcmct ZHJhd2Vyc30gKG9yIHRocm91Z2ggdGhlIEBjb2RleyMrRFJBV0VSUzp9IGtleXdvcmQpLgpBbnl0 aGluZyBzdGFydGluZyB3aXRoIEBjb2Rle15bIFx0XSo6XHcrOlsgXHRdJH0gYW5kIGVuZGluZyB3 aXRoCkBjb2Rle15bIFx0XSo6RU5EOlsgXHRdJH0gY291bGQgYmUgY29uc2lkZXJlZCBhcyBhIGRy YXdlci4gIC0tLSBuZ3oKCkBub2RlIER5bmFtaWMgQmxvY2tzCkBzZWN0aW9uIER5bmFtaWMgQmxv Y2tzCgpQYXR0ZXJuIGZvciBkeW5hbWljIGJsb2NrcyBpczoKCkB2ZXJiYXRpbQojK0JFR0lOOiBO QU1FIFBBUkFNRVRFUlMKQ09OVEVOVFMKIytFTkQ6CkBlbmQgdmVyYmF0aW0KCk5BTUUgY2Fubm90 IGNvbnRhaW4gYW55IHdoaXRlc3BhY2UgY2hhcmFjdGVyLgoKUEFSQU1FVEVSUyBjYW4gY29udGFp biBhbnkgY2hhcmFjdGVyIGFuZCBjYW4gYmUgb21pdHRlZC4KCkBub2RlIEZvb3Rub3RlIERlZmlu aXRpb25zCkBzZWN0aW9uIEZvb3Rub3RlIERlZmluaXRpb25zCgpQYXR0ZXJuIGZvciBmb290bm90 ZSBkZWZpbml0aW9ucyBpczoKCkB2ZXJiYXRpbQpbTEFCRUxdIENPTlRFTlRTCkBlbmQgdmVyYmF0 aW0KCkl0IG11c3Qgc3RhcnQgYXQgY29sdW1uIDAuCgpMQUJFTCBpcyBlaXRoZXIgYSBudW1iZXIg b3IgZm9sbG93cyB0aGUgcGF0dGVybiBgYGZuOldPUkQnJywgd2hlcmUKd29yZCBjYW4gY29udGFp biBhbnkgd29yZC1jb25zdGl0dWVudCBjaGFyYWN0ZXIsIGh5cGhlbnMgYW5kCnVuZGVyc2NvcmUg Y2hhcmFjdGVycy4KCkNPTlRFTlRTIGNhbiBjb250YWluIGFueSBlbGVtZW50IGV4Y2VwdGVkIGFu b3RoZXIgZm9vdG5vdGUKZGVmaW5pdGlvbi4gIEl0IGVuZHMgYXQgdGhlIG5leHQgZm9vdG5vdGUg ZGVmaW5pdGlvbiwgdGhlIG5leHQKaGVhZGxpbmUsIHR3byBjb25zZWN1dGl2ZSBlbXB0eSBsaW5l cyBvciB0aGUgZW5kIG9mIGJ1ZmZlci4KCkBub2RlIElubGluZXRhc2tzCkBzZWN0aW9uIElubGlu ZXRhc2tzCgpJbmxpbmV0YXNrcyBhcmUgZGVmaW5lZCBieSBAY29kZXtvcmctaW5saW5ldGFzay1t aW4tbGV2ZWx9IGNvbnRpZ3VvdXMKYXN0ZXJpc2sgY2hhcmFjdGVycyBzdGFydGluZyBhdCBjb2x1 bW4gMCwgZm9sbG93ZWQgYnkgYSB3aGl0ZXNwYWNlCmNoYXJhY3Rlci4KCk9wdGlvbmFsbHksIGlu bGluZXRhc2tzIGNhbiBiZSBlbmRlZCB3aXRoIGEgc3RyaW5nIGNvbnN0aXR1dGVkIG9mCkBjb2Rl e29yZy1pbmxpbmV0YXNrLW1pbi1sZXZlbH0gY29udGlndW91cyBjaGFyYWN0ZXJzIHN0YXJ0aW5n IGF0IGNvbHVtbgowLCBmb2xsb3dlZCBieSBhIHNwYWNlIGFuZCB0aGUgYGBFTkQnJyBzdHJpbmcu CgpJbmxpbmV0YXNrcyBhcmUgcmVjb2duaXplZCBvbmx5IGFmdGVyIEB2ZXJie35vcmctaW5saW5l dGFza359IGxpYnJhcnkgaXMKbG9hZGVkLgoKQG5vZGUgUGxhaW4gTGlzdHMgYW5kIEl0ZW1zCkBz ZWN0aW9uIFBsYWluIExpc3RzIGFuZCBJdGVtcwoKSXRlbXMgYXJlIGRlZmluZWQgYnkgYSBsaW5l IHN0YXJ0aW5nIHdpdGggdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgpgYEJVTExFVCBDT1VOVEVSLVNF VCBDSEVDSy1CT1ggVEFHJycsIGluIHdoaWNoIG9ubHkgQlVMTEVUIGlzCm1hbmRhdG9yeS4KCkJV TExFVCBpcyBlaXRoZXIgYW4gYXN0ZXJpc2ssIGEgaHlwaGVuLCBhIHBsdXMgc2lnbiBjaGFyYWN0 ZXIgb3IKZm9sbG93cyBlaXRoZXIgdGhlIHBhdHRlcm4gYGBDT1VOVEVSLicnIG9yIGBgQ09VTlRF UikiLiAgSW4gYW55IGNhc2UsCkJVTExFVCBpcyBmb2xsd2VkIGJ5IGEgd2hpdGVzcGFjZSBjaGFy YWN0ZXIgb3IgbGluZSBlbmRpbmcuCgpDT1VOVEVSIGNhbiBiZSBhIG51bWJlciBvciBhIHNpbmds ZSBsZXR0ZXIuCgpDT1VOVEVSLVNFVCBmb2xsb3dzIHRoZSBwYXR0ZXJuIFtAQENPVU5URVJdLgoK Q0hFQ0stQk9YIGlzIGVpdGhlciBhIHNpbmdsZSB3aGl0ZXNwYWNlIGNoYXJhY3RlciwgYSBgYFgn JyBjaGFyYWN0ZXIKb3IgYSBoeXBoZW4sIGVuY2xvc2VkIHdpdGhpbiBzcXVhcmUgYnJhY2tldHMu CgpUQUcgZm9sbG93cyBgYFRBRy1URVhUIDo6JycgcGF0dGVybiwgd2hlcmUgVEFHLVRFWFQgY2Fu IGNvbnRhaW4gYW55CmNoYXJhY3RlciBidXQgYSBuZXcgbGluZS4KCkFuIGl0ZW0gZW5kcyBiZWZv cmUgdGhlIG5leHQgaXRlbSwgdGhlIGZpcnN0IGxpbmUgbGVzcyBvciBlcXVhbGx5CmluZGVudGVk IHRoYW4gaXRzIHN0YXJ0aW5nIGxpbmUsIG9yIHR3byBjb25zZWN1dGl2ZSBlbXB0eSBsaW5lcy4K SW5kZW50YXRpb24gb2YgbGluZXMgd2l0aGluIG90aGVyIGdyZWF0ZXIgZWxlbWVudHMgZG8gbm90 IGNvdW50LApuZWl0aGVyIGRvIGlubGluZXRhc2tzIGJvdW5kYXJpZXMuCgpBIHBsYWluIGxpc3Qg aXMgYSBzZXQgb2YgY29uc2VjdXRpdmUgaXRlbXMgb2YgdGhlIHNhbWUgaW5kZW50YXRpb24uCkl0 IGNhbiBvbmx5IGRpcmVjdGx5IGNvbnRhaW4gaXRlbXMuCgpJZiBmaXJzdCBpdGVtIGluIGEgcGxh aW4gbGlzdCBoYXMgYSBjb3VudGVyIGluIGl0cyBidWxsZXQsIHRoZQpwbGFpbiBsaXN0IHdpbGwg YmUgYW4gYGBvcmRlcmVkIHBsYWluLWxpc3QnJy4gIElmIGl0IGNvbnRhaW5zIGEgdGFnLAppdCB3 aWxsIGJlIGEgYGBkZXNjcmlwdGl2ZSBsaXN0JycuICBPdGhlcndpc2UsIGl0IHdpbGwgYmUgYW4K YGB1bm9yZGVyZWQgbGlzdCcnLiAgTGlzdCB0eXBlcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgoK Rm9yIGV4YW1wbGUsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgZXhjZXJwdCBvZiBhbiBPcmcgZG9j dW1lbnQ6CgpAdmVyYmF0aW0KMS4gaXRlbSAxCjIuIFtYXSBpdGVtIDIKICAgLSBzb21lIHRhZyA6 OiBpdGVtIDIuMQpAZW5kIHZlcmJhdGltCgpJdHMgaW50ZXJuYWwgc3RydWN0dXJlIGlzIGFzIGZv bGxvd3M6CgpAdmVyYmF0aW0KKG9yZGVyZWQtcGxhaW4tbGlzdAogKGl0ZW0pCiAoaXRlbQogIChk ZXNjcmlwdGl2ZS1wbGFpbi1saXN0CiAgIChpdGVtKSkpKQpAZW5kIHZlcmJhdGltCgpAbm9kZSBU YWJsZXMKQHNlY3Rpb24gVGFibGVzCgpUYWJsZXMgc3RhcnQgYXQgbGluZXMgYmVnaW5uaW5nIHdp dGggZWl0aGVyIGEgdmVydGljYWwgYmFyIG9yIHRoZQpgYCstJycgc3RyaW5nIGZvbGxvd2VkIGJ5 IHBsdXMgb3IgbWludXMgc2lnbnMgb25seSwgYXNzdW1pbmcgdGhleSBhcmUKbm90IHByZWNlZGVk IHdpdGggbGluZXMgb2YgdGhlIHNhbWUgdHlwZS4gIFRoZXNlIGxpbmVzIGNhbiBiZQppbmRlbnRl ZC4KCkEgdGFibGUgc3RhcnRpbmcgd2l0aCBhIHZlcnRpY2FsIGJhciBoYXMgYGBvcmcnJyB0eXBl LiAgT3RoZXJ3aXNlIGl0CmhhcyBgYHRhYmxlLmVsJycgdHlwZS4KCk9yZyB0YWJsZXMgZW5kIGF0 IHRoZSBmaXJzdCBsaW5lIG5vdCBzdGFydGluZyB3aXRoIGEgdmVydGljYWwgYmFyLgpUYWJsZS5l bCB0YWJsZXMgZW5kIGF0IHRoZSBmaXJzdCBsaW5lIG5vdCBzdGFydGluZyB3aXRoIGVpdGhlcgph IHZlcnRpY2FsIGxpbmUgb3IgYSBwbHVzIHNpZ24uICBTdWNoIGxpbmVzIGNhbiBiZSBpbmRlbnRl ZC4KCkFuIG9yZyB0YWJsZSBjYW4gb25seSBjb250YWluIHRhYmxlIHJvd3MuICBBIHRhYmxlLmVs IHRhYmxlIGRvZXMKbm90IGNvbnRhaW4gYW55dGhpbmcuCgpAbm9kZSBFbGVtZW50cwpAY2hhcHRl ciBFbGVtZW50cwoKRWxlbWVudHMgY2Fubm90IGNvbnRhaW4gYW55IG90aGVyIGVsZW1lbnQuCgpP bmx5IEByZWZ7S2V5d29yZHMsa2V5d29yZHN9IHdob3NlIG5hbWUgYmVsb25ncyB0bwpAY29kZXtv cmctZWxlbWVudC1kb2N1bWVudC1wcm9wZXJ0aWVzfSwgQHJlZntCbG9ja3MsdmVyc2UgYmxvY2tz fSAsIEByZWZ7UGFyYWdyYXBocyxwYXJhZ3JhcGhzfSBhbmQKQHJlZntUYWJsZSBSb3dzLHRhYmxl IHJvd3N9IGNhbiBjb250YWluIG9iamVjdHMuCgoKQG1lbnUKKiBCYWJlbCBDYWxsOjogICAgICAg ICAgICAgICAgICAKKiBCbG9ja3M6OiAgICAgICAgICAgICAgICAgICAgICAKKiBDbG9jayBEaWFy eSBTZXhwIGFuZCBQbGFubmluZzo6ICAKKiBDb21tZW50czo6ICAgICAgICAgICAgICAgICAgICAK KiBGaXhlZCBXaWR0aCBBcmVhczo6ICAgICAgICAgICAKKiBIb3Jpem9udGFsIFJ1bGVzOjogICAg ICAgICAgICAKKiBLZXl3b3Jkczo6ICAgICAgICAgICAgICAgICAgICAKKiBMYVRlWCBFbnZpcm9u bWVudHM6OiAgICAgICAgICAKKiBOb2RlIFByb3BlcnRpZXM6OiAgICAgICAgICAgICAKKiBQYXJh Z3JhcGhzOjogICAgICAgICAgICAgICAgICAKKiBUYWJsZSBSb3dzOjogICAgICAgICAgICAgICAg ICAKQGVuZCBtZW51CgpAbm9kZSBCYWJlbCBDYWxsCkBzZWN0aW9uIEJhYmVsIENhbGwKClBhdHRl cm4gZm9yIGJhYmVsIGNhbGxzIGlzOgoKQHZlcmJhdGltCiMrQ0FMTDogVkFMVUUKQGVuZCB2ZXJi YXRpbQoKVkFMVUUgaXMgb3B0aW9uYWwuICBJdCBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVyIGJ1 dCBhIG5ldyBsaW5lLgoKQG5vZGUgQmxvY2tzCkBzZWN0aW9uIEJsb2NrcwoKTGlrZSBAcmVme0dy ZWF0ZXIgQmxvY2tzLGdyZWF0ZXIgYmxvY2tzfSwgcGF0dGVybiBmb3IgYmxvY2tzIGlzOgoKQHZl cmJhdGltCiMrQkVHSU5fTkFNRSBEQVRBCkNPTlRFTlRTCiMrRU5EX05BTUUKQGVuZCB2ZXJiYXRp bQoKTkFNRSBjYW5ub3QgY29udGFpbiBhbnkgd2hpdGVzcGFjZSBjaGFyYWN0ZXIuCgpJZiBOQU1F IGlzIGBgQ09NTUVOVCcnLCBpdCB3aWxsIGJlIGEgYGBjb21tZW50IGJsb2NrJycuICBJZiBpdCBp cwpgYEVYQU1QTEUnJywgaXQgd2lsbCBiZSBhbiBgYGV4YW1wbGUgYmxvY2snJy4gIElmIGl0IGlz IGBgU1JDJycsIGl0IHdpbGwKYmUgYSBgYHNvdXJjZSBibG9jaycnLiAgSWYgaXQgaXMgYGBWRVJT RScnLCBpdCB3aWxsIGJlIGEgYGB2ZXJzZSBibG9jaycnLgoKSWYgTkFNRSBpcyBhIHN0cmluZyBt YXRjaGluZyB0aGUgbmFtZSBvZiBhbnkgZXhwb3J0IGJhY2stZW5kCmxvYWRlZCwgdGhlIGJsb2Nr IHdpbGwgYmUgYW4gYGBleHBvcnQgYmxvY2snJy4KCkRBVEEgY2FuIGNvbnRhaW4gYW55IGNoYXJh Y3RlciBidXQgYSBuZXcgbGluZS4gIEl0IGNhbiBiZSBvbW1pdHRlZCwKdW5sZXNzIHRoZSBibG9j ayBpcyBhIGBgc291cmNlIGJsb2NrJycuICBJbiB0aGlzIGNhc2UsIGl0IG11c3QgZm9sbG93CnRo ZSBwYXR0ZXJuIGBgTEFOR1VBR0UgU1dJVENIRVMgQVJHVU1FTlRTJycsIHdoZXJlIFNXSVRDSEVT IGFuZApBUkdVTUVOVFMgYXJlIG9wdGlvbmFsLgoKTEFOR1VBR0UgY2Fubm90IGNvbnRhaW4gYW55 IHdoaXRlc3BhY2UgY2hhcmFjdGVyLgoKU1dJVENIRVMgaXMgbWFkZSBvZiBhbnkgbnVtYmVyIG9m IGBgU1dJVENIJycgcGF0dGVybnMsIHNlcGFyYXRlZCBieQpibGFuayBsaW5lcy4KCkEgU1dJVENI IHBhdHRlcm4gaXMgZWl0aGVyIGBgLWwgYGBGT1JNQVQiIiwgd2hlcmUgRk9STUFUIGNhbiBjb250 YWluCmFueSBjaGFyYWN0ZXIgYnV0IGEgZG91YmxlIHF1b3RlIGFuZCBhIG5ldyBsaW5lLCBgYC1T Jycgb3IgYGArUycnLAp3aGVyZSBTIHN0YW5kcyBmb3IgYSBzaW5nbGUgbGV0dGVyLgoKQVJHVU1F TlRTIGNhbiBjb250YWluIGFueSBjaGFyYWN0ZXIgYnV0IGEgbmV3IGxpbmUuCgpDT05URU5UUyBj YW4gY29udGFpbiBhbnkgY2hhcmFjdGVyLCBpbmNsdWRpbmcgbmV3IGxpbmVzLiAgVGhvdWdoIGl0 CndpbGwgb25seSBjb250YWluIE9yZyBvYmplY3RzIGlmIHRoZSBibG9jayBpcyBhIHZlcnNlIGJs b2NrLgpPdGhlcndpc2UsIGNvbnRlbnRzIHdpbGwgbm90IGJlIHBhcnNlZC4KCkBub2RlIENsb2Nr IERpYXJ5IFNleHAgYW5kIFBsYW5uaW5nCkBzZWN0aW9uIENsb2NrLCBEaWFyeSBTZXhwIGFuZCBQ bGFubmluZwoKQSBjbG9jayBmb2xsb3dzIHRoZSBwYXR0ZXJuOgoKQHZlcmJhdGltCkNMT0NLOiBU SU1FU1RBTVAgRFVSQVRJT04KQGVuZCB2ZXJiYXRpbQoKQm90aCBUSU1FU1RBTVAgYW5kIERVUkFU SU9OIGFyZSBvcHRpb25hbC4KClRJTUVTVEFNUCBpcyBhIEByZWZ7VGltZXN0YW1wcyx0aW1lc3Rh bXB9IG9iamVjdC4KCkRVUkFUSU9OIGZvbGxvd3MgdGhlIHBhdHRlcm46CgpAdmVyYmF0aW0KPT4g SEg6TU0KQGVuZCB2ZXJiYXRpbQoKSEggaXMgYSBudW1iZXIgY29udGFpbmluZyBhbnkgbnVtYmVy IG9mIGRpZ2l0cy4gIE1NIGlzIGEgdHdvIGRpZ2l0Cm51bWJlcnMuCgpBIGRpYXJ5IHNleHAgaXMg YSBsaW5lIHN0YXJ0aW5nIGF0IGNvbHVtbiAwIHdpdGggYGAlJSgiIHN0cmluZy4gIEl0CmNhbiB0 aGVuIGNvbnRhaW4gYW55IGNoYXJhY3RlciBiZXNpZGVzIGEgbmV3IGxpbmUuCgpBIHBsYW5uaW5n IGlzIGEgbGluZSBmaWxsZWQgd2l0aCBtb3JlIGF0IG1vc3QgdGhyZWUgSU5GTyBwYXJ0cywKd2hl cmUgZWFjaCBJTkZPIHBhcnQgZm9sbG93cyB0aGUgcGF0dGVybjoKCkB2ZXJiYXRpbQpLRVlXT1JE OiBUSU1FU1RBTVAKQGVuZCB2ZXJiYXRpbQoKS0VZV09SRCBpcyBhIHN0cmluZyBhbW9uZyBAY29k ZXtvcmctZGVhZGxpbmUtc3RyaW5nfSwKQGNvZGV7b3JnLXNjaGVkdWxlZC1zdHJpbmd9IGFuZCBA Y29kZXtvcmctY2xvc2VkLXN0cmluZ30uICBUSU1FU1RBTVAgaXMgaXMKYSBAcmVme1RpbWVzdGFt cHMsdGltZXN0YW1wfSBvYmplY3QuCgpFdmVuIHRob3VnaCBhIHBsYW5uaW5nIGVsZW1lbnQgY2Fu IGV4aXN0IGFueXdoZXJlIGluIGEgc2VjdGlvbiBvcgphIGdyZWF0ZXIgZWxlbWVudCwgaXQgd2ls bCBvbmx5IGFmZmVjdCB0aGUgaGVhZGxpbmUgY29udGFpbmluZyB0aGUKc2VjdGlvbiBpZiBpdCBp cyBwdXQgb24gdGhlIGxpbmUgZm9sbG93aW5nIHRoYXQgaGVhZGxpbmUuCgpAbm9kZSBDb21tZW50 cwpAc2VjdGlvbiBDb21tZW50cwoKQSBgYGNvbW1lbnQgbGluZScnIHN0YXJ0cyB3aXRoIGEgaGFz aCBzaWduZSBhbmQgYSB3aGl0ZXNwYWNlCmNoYXJhY3RlciBvciBhbiBlbmQgb2YgbGluZS4KCkNv bW1lbnRzIGNhbiBjb250YWluIGFueSBudW1iZXIgb2YgY29uc2VjdXRpdmUgY29tbWVudCBsaW5l cy4KCkBub2RlIEZpeGVkIFdpZHRoIEFyZWFzCkBzZWN0aW9uIEZpeGVkIFdpZHRoIEFyZWFzCgpB IGBgZml4ZWQtd2lkdGggbGluZScnIHN0YXJ0IHdpdGggYSBjb2xvbiBjaGFyYWN0ZXIgYW5kIGEg d2hpdGVzcGFjZQpvciBhbiBlbmQgb2YgbGluZS4KCkZpeGVkIHdpZHRoIGFyZWFzIGNhbiBjb250 YWluIGFueSBudW1iZXIgb2YgY29uc2VjdXRpdmUgZml4ZWQtd2lkdGgKbGluZXMuCgpAbm9kZSBI b3Jpem9udGFsIFJ1bGVzCkBzZWN0aW9uIEhvcml6b250YWwgUnVsZXMKCkEgaG9yaXpvbnRhbCBy dWxlIGlzIGEgbGluZSBtYWRlIG9mIGF0IGxlYXN0IDUgY29uc2VjdXRpdmUgaHlwaGVucy4KSXQg Y2FuIGJlIGluZGVudGVkLgoKQG5vZGUgS2V5d29yZHMKQHNlY3Rpb24gS2V5d29yZHMKCktleXdv cmRzIGZvbGxvdyB0aGUgc3ludGF4OgoKQHZlcmJhdGltCiMrS0VZOiBWQUxVRQpAZW5kIHZlcmJh dGltCgpLRVkgY2FuIGNvbnRhaW4gYW55IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlciwgYnV0IGl0 IGNhbm5vdCBiZQplcXVhbCB0byBgYENBTEwnJyBvciBhbnkgYWZmaWxpYXRlZCBrZXl3b3JkLgoK VkFMVUUgY2FuIGNvbnRhaW4gYW55IGNoYXJhY3RlciBleGNlcHRlZCBhIG5ldyBsaW5lLgoKSWYg S0VZIGJlbG9uZ3MgdG8gQGNvZGV7b3JnLWVsZW1lbnQtZG9jdW1lbnQtcHJvcGVydGllc30sIFZB TFVFIGNhbgpjb250YWluIG9iamVjdHMuCgpAbm9kZSBMYVRlWCBFbnZpcm9ubWVudHMKQHNlY3Rp b24gTGFUZVggRW52aXJvbm1lbnRzCgpQYXR0ZXJuIGZvciBATGFUZVh7fSBlbnZpcm9ubWVudHMg aXM6CgpAdmVyYmF0aW0KXGJlZ2lue05BTUV9CkNPTlRFTlRTClxlbmR7TkFNRX0KQGVuZCB2ZXJi YXRpbQoKTkFNRSBpcyBjb25zdGl0dXRlZCBvZiBhbHBoYS1udW1lcmljIGNoYXJhY3RlcnMgYW5k IG1heSBlbmQgd2l0aCBhbgphc3Rlcmlzay4KCkNPTlRFTlRTIGNhbiBjb250YWluIGFueXRoaW5n IGJ1dCB0aGUgYGAnJyBzdHJpbmcuCgpAbm9kZSBOb2RlIFByb3BlcnRpZXMKQHNlY3Rpb24gTm9k ZSBQcm9wZXJ0aWVzCgpQYXR0ZXIgZm9yIG5vZGUgcHJvcGVydGllcyBpczoKCkB2ZXJiYXRpbQo6 UFJPUEVSVFk6IFZBTFVFCkBlbmQgdmVyYmF0aW0KClBST1BFUlRZIGNhbiBjb250YWluIGFueSBu b24td2hpdGVzcGFjZSBjaGFyYWN0ZXIuICBWQUxVRSBjYW4KY29udGFpbiBhbnkgY2hhcmFjdGVy IGJ1dCBhIG5ldyBsaW5lLgoKTm9kZSBwcm9wZXJ0aWVzIGNhbiBvbmx5IGV4aXN0IGluIGEgQHJl ZntEcmF3ZXJzIGFuZCBQcm9wZXJ0eSBEcmF3ZXJzLHByb3BlcnR5IGRyYXdlcnN9LgoKQG5vZGUg UGFyYWdyYXBocwpAc2VjdGlvbiBQYXJhZ3JhcGhzCgpQYXJhZ3JhcGhzIGFyZSB0aGUgZGVmYXVs dCBlbGVtZW50LCB3aGljaCBtZWFucyB0aGF0IGFueQp1bnJlY29nbml6ZWQgY29udGV4dCBpcyBh IHBhcmFncmFwaC4KCkVtcHR5IGxpbmVzIGFuZCBvdGhlciBlbGVtZW50cyBlbmQgcGFyYWdyYXBo cy4KClBhcmFncmFwaHMgY2FuIGNvbnRhaW4gZXZlcnkgdHlwZSBvZiBvYmplY3QuCgpAbm9kZSBU YWJsZSBSb3dzCkBzZWN0aW9uIFRhYmxlIFJvd3MKCkEgdGFibGUgcm93cyBpcyBlaXRoZXIgY29u c3RpdHV0ZWQgb2YgYSB2ZXJ0aWNhbCBiYXIgYW5kIGFueSBudW1iZXIKb2YgQHJlZntUYWJsZSBD ZWxscyx0YWJsZSBjZWxsc30gb3IgYSB2ZXJ0aWNhbCBiYXIgZm9sbG93ZWQgYnkgYSBoeXBoZW4u CgpJbiB0aGUgZmlyc3QgY2FzZSB0aGUgdGFibGUgcm93IGhhcyB0aGUgYGBzdGFuZGFyZCcnIHR5 cGUuICBJbiB0aGUKc2Vjb25kIGNhc2UsIGl0IGhhcyB0aGUgYGBydWxlJycgdHlwZS4KClRhYmxl IHJvd3MgY2FuIG9ubHkgZXhpc3QgaW4gQHJlZntUYWJsZXMsdGFibGVzfS4KCkBub2RlIE9iamVj dHMKQGNoYXB0ZXIgT2JqZWN0cwoKT2JqZWN0cyBjYW4gb25seSBiZSBmb3VuZCBpbiB0aGUgZm9s bG93aW5nIGxvY2F0aW9uczoKCkBpdGVtaXplCkBpdGVtIApAcmVme0FmZmlsaWF0ZWQgS2V5d29y ZHMsYWZmaWxpYXRlZCBrZXl3b3Jkc30gZGVmaW5lZCBpbiBAY29kZXtvcmctZWxlbWVudC1wYXJz ZWQta2V5d29yZHN9LAoKQGl0ZW0gCkByZWZ7S2V5d29yZHMsZG9jdW1lbnQgcHJvcGVydGllc30s CgpAaXRlbSAKQHJlZntIZWFkbGluZXMgYW5kIFNlY3Rpb25zLGhlYWRsaW5lfSB0aXRsZXMsCgpA aXRlbSAKQHJlZntJbmxpbmV0YXNrcyxpbmxpbmV0YXNrfSB0aXRsZXMsCgpAaXRlbSAKQHJlZntQ bGFpbiBMaXN0cyBhbmQgSXRlbXMsaXRlbX0gdGFncywKCkBpdGVtIApAcmVme1BhcmFncmFwaHMs cGFyYWdyYXBoc30sCgpAaXRlbSAKQHJlZntUYWJsZSBDZWxscyx0YWJsZSBjZWxsc30sCgpAaXRl bSAKQHJlZntUYWJsZSBSb3dzLHRhYmxlIHJvd3N9LCB3aGljaCBjYW4gb25seSBjb250YWluIHRh YmxlIGNlbGwKb2JqZWN0cywKCkBpdGVtIApAcmVme0Jsb2Nrcyx2ZXJzZSBibG9ja3N9LgoKQGVu ZCBpdGVtaXplCgpNb3N0IG9iamVjdHMgY2Fubm90IGNvbnRhaW4gb2JqZWN0cy4gIFRob3NlIHdo aWNoIGNhbiB3aWxsIGJlCnNwZWNpZmllZC4KCgpAbWVudQoqIEVudGl0aWVzIGFuZCBMYVRlWCBG cmFnbWVudHM6OiAgCiogRXhwb3J0IFNuaXBwZXRzOjogICAgICAgICAgICAgCiogRm9vdG5vdGUg UmVmZXJlbmNlczo6ICAgICAgICAgCiogSW5saW5lIEJhYmVsIENhbGxzIGFuZCBTb3VyY2UgQmxv Y2tzOjogIAoqIExpbmUgQnJlYWtzOjogICAgICAgICAgICAgICAgIAoqIExpbmtzOjogICAgICAg ICAgICAgICAgICAgICAgIAoqIE1hY3Jvczo6ICAgICAgICAgICAgICAgICAgICAgIAoqIFRhcmdl dHMgYW5kIFJhZGlvIFRhcmdldHM6OiAgIAoqIFN0YXRpc3RpY3MgQ29va2llczo6ICAgICAgICAg IAoqIFN1YnNjcmlwdCBhbmQgU3VwZXJzY3JpcHQ6OiAgIAoqIFRhYmxlIENlbGxzOjogICAgICAg ICAgICAgICAgIAoqIFRpbWVzdGFtcHM6OiAgICAgICAgICAgICAgICAgIAoqIFRleHQgTWFya3Vw OjogICAgICAgICAgICAgICAgIApAZW5kIG1lbnUKCkBub2RlIEVudGl0aWVzIGFuZCBMYVRlWCBG cmFnbWVudHMKQHNlY3Rpb24gRW50aXRpZXMgYW5kIExhVGVYIEZyYWdtZW50cwoKQW4gZW50aXR5 IGZvbGxvd3MgdGhlIHBhdHRlcm46CgpAdmVyYmF0aW0KXE5BTUUgUE9TVApAZW5kIHZlcmJhdGlt Cgp3aGVyZSBOQU1FIGhhcyBhIHZhbGlkIGFzc29jaWF0aW9uIGluIGVpdGhlciBAY29kZXtvcmct ZW50aXRpZXN9IG9yCkBjb2Rle29yZy1lbnRpdGllcy11c2VyfS4KClBPU1QgaXMgdGhlIGVuZCBv ZiBsaW5lLCBgYEB7QH0iIHN0cmluZywgb3IgYSBub24tYWxwaGFiZXRpY2FsCmNoYXJhY3Rlci4g IEl0IGlzbid0IHNlcGFyYXRlZCBmcm9tIE5BTUUgYnkgYSB3aGl0ZXNwYWNlIGNoYXJhY3Rlci4K CkEgQExhVGVYe30gZnJhZ21lbnQgY2FuIGZvbGxvdyBtdWx0aXBsZSBwYXR0ZXJuczoKCkB2ZXJi YXRpbQpcTkFNRSBQT1NUClwoQ09OVEVOVFNcKQpcW0NPTlRFTlRTXF0KJCRDT05URU5UUyQkClBS RSRDSEFSJFBPU1QKUFJFJEJPUkRFUjEgQk9EWSBCT1JERVIyJApAZW5kIHZlcmJhdGltCgpOQU1F IGNvbnRhaW5zIGFscGhhYmV0aWNhbCBjaGFyYWN0ZXJzIG9ubHkgYW5kIG11c3Qgbm90IGhhdmUg YW4KYXNzb2NpYXRpb24gaW4gZWl0aGVyIEBjb2Rle29yZy1lbnRpdGllc30gb3IgQGNvZGV7b3Jn LWVudGl0aWVzLXVzZXJ9LgoKUE9TVCBpcyB0aGUgc2FtZSBhcyBmb3IgZW50aXRpZXMuCgpDT05U RU5UUyBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVyIGJ1dCBjYW5ub3QgY29udGFpbiBgYFwpIiBp biB0aGUKc2Vjb25kIHRlbXBsYXRlIG9yIGBgXF0iIGluIHRoZSB0aGlyZCBvbmUuCgpQUkUgaXMg ZWl0aGVyIHRoZSBiZWdpbm5pbmcgb2YgbGluZSBvciBhIGNoYXJhY3RlciBkaWZmZXJlbnQgZnJv bQpAY29kZXskfS4KCkNIQVIgaXMgYSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIgZGlmZmVyZW50 IGZyb20gQGNvZGV7Ln0sIH4sfiwgQGNvZGV7P30sCkBjb2Rlezt9LCB+J34gb3IgYSBkb3VibGUg cXVvdGUuCgpQT1NUIGlzIGFueSBvZiBAY29kZXstfSwgQGNvZGV7Ln0sIH4sfiwgQGNvZGV7P30s IEBjb2Rlezt9LCBAY29kZXs6fSwgfid+LCBhIGRvdWJsZSBxdW90ZSwKYSB3aGl0ZXNwYWNlIGNo YXJhY3RlciBhbmQgdGhlIGVuZCBvZiBsaW5lLgoKQk9SREVSMSBpcyBhIG5vbi13aGl0ZXNwYWNl IGNoYXJhY3RlciBkaWZmZXJlbnQgZnJvbSBAY29kZXsufSwgQGNvZGV7O30sIEBjb2Rley59CmFu ZCBAY29kZXskfS4KCkJPRFkgY2FuIGNvbnRhaW4gYW55IGNoYXJhY3RlciBleGNlcHRlZCBAY29k ZXskfSwgYW5kIG1heSBub3Qgc3BhbiBvdmVyCm1vcmUgdGhhbiAzIGxpbmVzLgoKQk9SREVSMiBp cyBhbnkgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIGRpZmZlcmVudCBmcm9tIH4sfiwgQGNvZGV7 Ln0gYW5kCkBjb2RleyR9LgoKQHF1b3RhdGlvbgpJdCB3b3VsZCBpbnRyb2R1Y2UgaW5jb21wYXRp YmlsaXRpZXMgd2l0aCBwcmV2aW91cyBPcmcgdmVyc2lvbnMsCmJ1dCBzdXBwb3J0IGZvciBgYCRA ZG90c3t9JCcnIChhbmQgZm9yIHN5bW1ldHJ5LCBAY29kZXskJC4uLiQkfSkgY29uc3RydWN0cwpv dWdodCB0byBiZSByZW1vdmVkLgoKVGhleSBhcmUgc2xvdyB0byBwYXJzZSwgZnJhZ2lsZSwgcmVk dW5kYW50LCBpbXBseSBmYWxzZSBwb3NpdGl2ZXMKYW5kIGRvIG5vdCBsb29rIGdvb2QgaW4gQExh VGVYe30gb3V0cHV0IGFueXdheS4gIEV2ZW4gdGhlIEBMYVRlWHt9CmNvbW11bml0eSBzdWdnZXN0 cyB0byB1c2UgQGNvZGV7XCguLi5cKX0gb3ZlciBAY29kZXskLi4uJH0uICAtLS0gbmd6CkBlbmQg cXVvdGF0aW9uCgpAbm9kZSBFeHBvcnQgU25pcHBldHMKQHNlY3Rpb24gRXhwb3J0IFNuaXBwZXRz CgpQYXR0ZXIgZm9yIGV4cG9ydCBzbmlwcGV0cyBpczoKCkB2ZXJiYXRpbQpAQE5BTUU6VkFMVUVA QApAZW5kIHZlcmJhdGltCgpOQU1FIGNhbiBjb250YWluIGFueSBhbHBoYS1udW1lcmljIGNoYXJh Y3RlciBhbmQgaHlwaGVucy4KClZBTFVFIGNhbiBjb250YWluIGFueXRoaW5nIGJ1dCBgYEBAQEAn JyBzdHJpbmcuCgpAbm9kZSBGb290bm90ZSBSZWZlcmVuY2VzCkBzZWN0aW9uIEZvb3Rub3RlIFJl ZmVyZW5jZXMKClRoZXJlIGFyZSBmb3VyIHBhdHRlcm5zIGZvciBmb290bm90ZSByZWZlcmVuY2Vz OgoKQHZlcmJhdGltCltNQVJLXQpbZm46TEFCRUxdCltmbjpMQUJFTDpERUZJTklUSU9OXQpbZm46 OkRFRklOSVRJT05dCkBlbmQgdmVyYmF0aW0KCk1BUksgaXMgYSBudW1iZXIuCgpMQUJFTCBjYW4g Y29udGFpbiBhbnkgd29yZCBjb25zdGl0dWVudCBjaGFyYWN0ZXIsIGh5cGhlbnMgYW5kCnVuZGVy c2NvcmVzLgoKREVGSU5JVElPTiBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVyLiAgVGhvdWdoIG9w ZW5pbmcgYW5kIGNsb3NpbmcKc3F1YXJlIGJyYWNrZXRzIG11c3QgYmUgYmFsYW5jZWQgaW4gaXQu ICBJdCBjYW4gY29udGFpbiBhbnkgb2JqZWN0CmVuY291bnRlcmVkIGluIGEgcGFyYWdyYXBoLCBl dmVuIG90aGVyIGZvb3Rub3RlIHJlZmVyZW5jZXMuCgpJZiB0aGUgcmVmZXJlbmNlIGZvbGxvd3Mg dGhlIHRoaXJkIHBhdHRlcm4sIGl0IGlzIGNhbGxlZCBhbiBgYGlubGluZQpmb290bm90ZScnLiAg SWYgaXQgZm9sbG93cyB0aGUgZm91cnRoIG9uZSwgaS5lLiBpZiBMQUJFTCBpcyBvbWl0dGVkLApp dCBpcyBhbiBgYGFub255bW91cyBmb290bm90ZScnLgoKQG5vZGUgSW5saW5lIEJhYmVsIENhbGxz IGFuZCBTb3VyY2UgQmxvY2tzCkBzZWN0aW9uIElubGluZSBCYWJlbCBDYWxscyBhbmQgU291cmNl IEJsb2NrcwoKSW5saW5lIEJhYmVsIGNhbGxzIGZvbGxvdyBhbnkgb2YgdGhlIGZvbGxvd2luZyBw YXR0ZXJuczoKCkB2ZXJiYXRpbQpjYWxsX05BTUUoQVJHVU1FTlRTKQpjYWxsX05BTUVbSEVBREVS XShBUkdVTUVOVFMpW0hFQURFUl0KQGVuZCB2ZXJiYXRpbQoKTkFNRSBjYW4gY29udGFpbiBhbnkg Y2hhcmFjdGVyIGJlc2lkZXMgQGNvZGV7KH0sIEBjb2Rleyl9IGFuZCBgYCcnLgoKSEVBREVSIGNh biBjb250YWluIGFueSBjaGFyYWN0ZXIgYmVzaWRlcyBAY29kZXtdfSBhbmQgYGAnJy4KCkFSR1VN RU5UUyBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVyIGJlc2lkZXMgQGNvZGV7KX0gYW5kIGBgJycu CgpJbmxpbmUgc291cmNlIGJsb2NrcyBmb2xsb3cgYW55IG9mIHRoZSBmb2xsb3dpbmcgcGF0dGVy bnM6CgpAdmVyYmF0aW0Kc3JjX0xBTkd7Qk9EWX0Kc3JjX0xBTkdbT1BUSU9OU117Qk9EWX0KQGVu ZCB2ZXJiYXRpbQoKTEFORyBjYW4gY29udGFpbiBhbnkgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVy LgoKT1BUSU9OUyBhbmQgQk9EWSBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVyIGJ1dCBgYCcnLgoK QG5vZGUgTGluZSBCcmVha3MKQHNlY3Rpb24gTGluZSBCcmVha3MKCkEgbGluZSBicmVhayBjb25z aXN0cyBpbiBgYFwnJyBwYXR0ZXJuIGF0IHRoZSBlbmQgb2YgYW4Kb3RoZXJ3aXNlIG5vbi1lbXB0 eSBsaW5lLgoKU1BBQ0UgY2FuIGNvbnRhaW4gYW55IG51bWJlciBvZiB0YWJzIGFuZCBzcGFjZXMs IGluY2x1ZGluZyAwLgoKQG5vZGUgTGlua3MKQHNlY3Rpb24gTGlua3MKClRoZXJlIGFyZSA0IG1h am9yIHR5cGVzIG9mIGxpbmtzOgoKQHZlcmJhdGltClJBRElPICAgICAgICAgICAgICAgICAgICAg KCJyYWRpbyIgbGluaykKPFBST1RPQ09MOlBBVEg+ICAgICAgICAgICAoImFuZ2xlIiBsaW5rKQpQ UkUgUFJPVE9DT0w6UEFUSDIgUE9TVCAgICgicGxhaW4iIGxpbmspCltbUEFUSDNdREVTQ1JJUFRJ T05dICAgICAgKCJyZWd1bGFyIiBsaW5rKQpAZW5kIHZlcmJhdGltCgpSQURJTyBpcyBhIHN0cmlu ZyBtYXRjaGVkIGJ5IHNvbWUgQHJlZntUYXJnZXRzIGFuZCBSYWRpbyBUYXJnZXRzLHJhZGlvIHRh cmdldH0uICBJdCBjYW4gY29udGFpbgpAcmVme0VudGl0aWVzIGFuZCBMYVRlWCBGcmFnbWVudHMs ZW50aXRpZXN9LCBAcmVme0VudGl0aWVzIGFuZCBMYVRlWCBGcmFnbWVudHMsbGF0ZXggZnJhZ21l bnRzfSwgQHJlZntTdWJzY3JpcHQgYW5kIFN1cGVyc2NyaXB0LHN1YnNjcmlwdH0gYW5kIEByZWZ7 U3Vic2NyaXB0IGFuZCBTdXBlcnNjcmlwdCxzdXBlcnNjcmlwdH0gb25seS4KClBST1RPQ09MIGlz IGEgc3RyaW5nIGFtb25nIEBjb2Rle29yZy1saW5rLXR5cGVzfS4KClBBVEggY2FuIGNvbnRhaW4g YW55IGNoYXJhY3RlciBidXQgQGNvZGV7XX0sIEBjb2Rlezx9LCBAY29kZXs+fSBhbmQgQGNvZGV7 XG59LgoKUFJFIGFuZCBQT1NUIGFyZSBub24gd29yZCBjb25zdGl0dWVudC4gIFRoZXkgY2FuIGJl LCByZXNwZWN0aXZlbHksCnRoZSBiZWdpbm5pbmcgb3IgdGhlIGVuZCBvZiBhIGxpbmUuCgpQQVRI MiBjYW4gY29udGFpbiBhbnkgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIGV4Y2VwdGVkIEBjb2Rl eyh9LCBAY29kZXspfSwKQGNvZGV7PH0gYW5kIEBjb2Rlez59LiAgSXQgbXVzdCBlbmQgd2l0aCBh IHdvcmQtY29uc3RpdHVlbnQgY2hhcmFjdGVyLCBvciBhbnkKbm9uLXdoaXRlc3BhY2Ugbm9uLXB1 bmN0dWF0aW9uIGNoYXJhY3RlciBmb2xsb3dlZCBieSBAY29kZXsvfS4KCkRFU0NSSVBUSU9OIG11 c3QgYmUgZW5jbG9zZWQgd2l0aGluIHNxdWFyZSBicmFja2V0cy4gIEl0IGNhbgpjb250YWluIGFu eSBjaGFyYWN0ZXIgYnV0IHNxdWFyZSBicmFja2V0cy4gIE9iamVjdC13aXNlLCBpdCBjYW4KY29u dGFpbiBhbnkgb2JqZWN0IGZvdW5kIGluIGEgcGFyYWdyYXBoIGV4Y2VwdGVkIGEgQHJlZntGb290 bm90ZSBSZWZlcmVuY2VzLGZvb3Rub3RlCnJlZmVyZW5jZX0sIGEgQHJlZntUYXJnZXRzIGFuZCBS YWRpbyBUYXJnZXRzLHJhZGlvIHRhcmdldH0gYW5kIGEgQHJlZntMaW5lIEJyZWFrcyxsaW5lIGJy ZWFrfS4gIEl0IGNhbm5vdCBjb250YWluCmFub3RoZXIgbGluayBlaXRoZXIsIHVubGVzcyBpdCBp cyBhIHBsYWluIGxpbmsuCgpERVNDUklQVElPTiBpcyBvcHRpb25hbC4KClBBVEgzIGlzIGJ1aWx0 IGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHBhdHRlcm5zOgoKQHZlcmJhdGltCkZJTEVOQU1F ICAgICAgICAgICAoImZpbGUiIHR5cGUpClBST1RPQ09MOlBBVEg0ICAgICAoIlBST1RPQ09MIiB0 eXBlKQppZDpJRCAgICAgICAgICAgICAgKCJpZCIgdHlwZSkKI0NVU1RPTS1JRCAgICAgICAgICgi Y3VzdG9tLWlkIiB0eXBlKQooQ09ERVJFRikgICAgICAgICAgKCJjb2RlcmVmIiB0eXBlKQpGVVpa WSAgICAgICAgICAgICAgKCJmdXp6eSIgdHlwZSkKQGVuZCB2ZXJiYXRpbQoKRklMRU5BTUUgaXMg YSBmaWxlIG5hbWUsIGVpdGhlciBhYnNvbHV0ZSBvciByZWxhdGl2ZS4KClBBVEg0IGNhbiBjb250 YWluIGFueSBjaGFyYWN0ZXIgYmVzaWRlcyBzcXVhcmUgYnJhY2tldHMuCgpJRCBpcyBjb25zdGl0 dXRlZCBvZiBoZXhhZGVjaW1hbCBudW1iZXJzIHNlcGFyYXRlZCB3aXRoIGh5cGhlbnMuCgpQQVRI NCwgQ1VTVE9NLUlELCBDT0RFUkVGIGFuZCBGVVpaWSBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVy CmJlc2lkZXMgc3F1YXJlIGJyYWNrZXRzLgoKQHF1b3RhdGlvbgpJIHN1Z2dlc3QgdG8gcmVtb3Zl IGFuZ2xlIGxpbmtzLiAgSWYgb25lIG5lZWRzIHNwYWNlcyBpbiBQQVRILCBzaGUKY2FuIHVzZSBz dGFuZGFyZCBsaW5rIHN5bnRheCBpbnN0ZWFkLgoKSSBhbHNvIHN1Z2dlc3QgdG8gcmVtb3ZlIEBj b2Rle29yZy1saW5rLXR5cGVzfSBkZXBlbmRlbmN5IGluIFBST1RPQ09MCmFuZCBtYXRjaCBAY29k ZXtbYS16QS1aXX0gaW5zdGVhZCwgZm9yIHBvcnRhYmlsaXR5LiAgLS0tIG5negpAZW5kIHF1b3Rh dGlvbgoKQG5vZGUgTWFjcm9zCkBzZWN0aW9uIE1hY3JvcwoKTWFjcm9zIGZvbGxvdyB0aGUgcGF0 dGVybjoKCkB2ZXJiYXRpbQp7e3tOQU1FKEFSR1VNRU5UUyl9fX0KQGVuZCB2ZXJiYXRpbQoKTkFN RSBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgYW5kIGNhbiBiZSBmb2xsb3dlZCBieSBhbnkgbnVt YmVyIG9mCmFscGhhLW51bWVyaWMgY2hhcmFjdGVycywgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMu CgpBUkdVTUVOVFMgY2FuIGNvbnRhaW4gYW55dGhpbmcgYnV0IGBgQH1AfUB9IiBzdHJpbmcuICBW YWx1ZXMgd2l0aGluCkFSR1VNRU5UUyBhcmUgc2VwYXJhdGVkIGJ5IGNvbW1hcy4gIE5vbi1zZXBh cmF0aW5nIGNvbW1hcyBoYXZlIHRvCmJlIGVzY2FwZWQgd2l0aCBhIGJhY2tzbGFzaCBjaGFyYWN0 ZXIuCgpAbm9kZSBUYXJnZXRzIGFuZCBSYWRpbyBUYXJnZXRzCkBzZWN0aW9uIFRhcmdldHMgYW5k IFJhZGlvIFRhcmdldHMKClJhZGlvIHRhcmdldHMgZm9sbG93IHRoZSBwYXR0ZXJuOgoKQHZlcmJh dGltCjw8PENPTlRFTlRTPj4+CkBlbmQgdmVyYmF0aW0KCkNPTlRFTlRTIGNhbiBiZSBhbnkgY2hh cmFjdGVyIGJlc2lkZXMgQGNvZGV7PH0sIEBjb2Rlez59IGFuZCBgYCcnLiAgQXMgZmFyIGFzCm9i amVjdHMgZ28sIGl0IGNhbiBjb250YWluIEByZWZ7RW50aXRpZXMgYW5kIExhVGVYIEZyYWdtZW50 cyxlbnRpdGllc30sIEByZWZ7RW50aXRpZXMgYW5kIExhVGVYIEZyYWdtZW50cyxsYXRleCBmcmFn bWVudHN9LCBAcmVme1N1YnNjcmlwdCBhbmQgU3VwZXJzY3JpcHQsc3Vic2NyaXB0fSBhbmQKQHJl ZntTdWJzY3JpcHQgYW5kIFN1cGVyc2NyaXB0LHN1cGVyc2NyaXB0fSBvbmx5LgoKVGFyZ2V0cyBm b2xsb3cgdGhlIHBhdHRlcm46CgpAdmVyYmF0aW0KPDxUQVJHRVQ+PgpAZW5kIHZlcmJhdGltCgpU QVJHRVQgY2FuIGNvbnRhaW4gYW55IGNoYXJhY3RlciBiZXNpZGVzIEBjb2Rlezx9LCBAY29kZXs+ fSBhbmQgYGAnJy4gIEl0CmNhbm5vdCBjb250YWluIGFueSBvYmplY3QuCgpAbm9kZSBTdGF0aXN0 aWNzIENvb2tpZXMKQHNlY3Rpb24gU3RhdGlzdGljcyBDb29raWVzCgpTdGF0aXN0aWNzIGNvb2tp ZXMgZm9sbG93IGVpdGhlciBwYXR0ZXJuOgoKQHZlcmJhdGltCltQRVJDRU5UJV0KW05VTTEvTlVN Ml0KQGVuZCB2ZXJiYXRpbQoKUEVSQ0VOVCwgTlVNMSBhbmQgTlVNMiBhcmUgbnVtYmVycyBvciB0 aGUgZW1wdHkgc3RyaW5nLgoKQG5vZGUgU3Vic2NyaXB0IGFuZCBTdXBlcnNjcmlwdApAc2VjdGlv biBTdWJzY3JpcHQgYW5kIFN1cGVyc2NyaXB0CgpQYXR0ZXJuIGZvciBzdWJzY3JpcHQgaXM6CgpA dmVyYmF0aW0KQ0hBUl9TQ1JJUFQKQGVuZCB2ZXJiYXRpbQoKUGF0dGVybiBmb3Igc3VwZXJzY3Jp cHQgaXM6CgpAdmVyYmF0aW0KQ0hBUl5TQ1JJUFQKQGVuZCB2ZXJiYXRpbQoKQ0hBUiBpcyBhbnkg bm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyLgoKU0NSSVBUIGNhbiBiZSBAY29kZXsqfSwgYSBzdHJp bmcgbWFkZSBvZiB3b3JkLWNvbnN0aXR1ZW50IGNoYXJhY3RlcnMKbWF5YmUgcHJlY2VkZWQgYnkg YSBwbHVzIG9yIGEgbWludXMgc2lnbiwgYW4gZXhwcmVzc2lvbiBlbmNsb3NlZCBpbgpwYXJlbnRo ZXNpcyAocmVzcC4gY3VybHkgYnJhY2tldHMpIGNvbnRhaW5pbmcgYmFsYW5jZWQgcGFyZW50aGVz aXMKKHJlc3AuIGN1cmx5IGJyYWNrZXRzKS4KCkBub2RlIFRhYmxlIENlbGxzCkBzZWN0aW9uIFRh YmxlIENlbGxzCgpUYWJsZSBjZWxscyBmb2xsb3cgdGhlIHBhdHRlcm46CgpAdmVyYmF0aW0KQ09O VEVOVFN8CkBlbmQgdmVyYmF0aW0KCkNPTlRFTlRTIGNhbiBjb250YWluIGFueSBjaGFyYWN0ZXIg ZXhjZXB0ZWQgYSB2ZXJ0aWNhbCBiYXIuCgpAbm9kZSBUaW1lc3RhbXBzCkBzZWN0aW9uIFRpbWVz dGFtcHMKClRoZXJlIGFyZSBzZXZlbiBwb3NzaWJsZSBwYXR0ZXJucyBmb3IgdGltZXN0YW1wczoK CkB2ZXJiYXRpbQo8JSUoU0VYUCk+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChkaWFyeSkKPERBVEUgVElNRSBSRVBFQVRFUj4gICAgICAgICAgICAgICAgICAgICAgICAgKGFj dGl2ZSkKW0RBVEUgVElNRSBSRVBFQVRFUl0gICAgICAgICAgICAgICAgICAgICAgICAgKGluYWN0 aXZlKQo8REFURSBUSU1FIFJFUEVBVEVSPi0tPERBVEUgVElNRSBSRVBFQVRFUj4gICAoYWN0aXZl IHJhbmdlKQo8REFURSBUSU1FLVRJTUUgUkVQRUFURVI+ICAgICAgICAgICAgICAgICAgICAoYWN0 aXZlIHJhbmdlKQpbREFURSBUSU1FIFJFUEVBVEVSXS0tW0RBVEUgVElNRSBSRVBFQVRFUl0gICAo aW5hY3RpdmUgcmFuZ2UpCltEQVRFIFRJTUUtVElNRSBSRVBFQVRFUl0gICAgICAgICAgICAgICAg ICAgIChpbmFjdGl2ZSByYW5nZSkKQGVuZCB2ZXJiYXRpbQoKU0VYUCBjYW4gY29udGFpbiBhbnkg Y2hhcmFjdGVyIGV4Y2VwdGVkIEBjb2Rlez59IGFuZCBAY29kZXtcbn0uCgpEQVRFIGZvbGxvd3Mg dGhlIHBhdHRlcm46CgpAdmVyYmF0aW0KWVlZWS1NTS1ERCBEQVlOQU1FCkBlbmQgdmVyYmF0aW0K ClksIE0gYW5kIEQgYXJlIGRpZ2l0cy4gIERBWU5BTUUgY2FuIGNvbnRhaW4gYW55IG5vbgp3aGl0 ZXNwYWNlLWNoYXJhY3RlciBiZXNpZGVzIEBjb2Rleyt9LCBAY29kZXstfSwgQGNvZGV7XX0sIEBj b2Rlez59LCBhIGRpZ2l0IG9yIEBjb2Rle1xufS4KClRJTUUgZm9sbG93cyB0aGUgcGF0dGVybiA9 SDpNTX4uICBIIGNhbiBiZSBvbmUgb3IgdHdvIGRpZ2l0IGxvbmcKYW5kIGNhbiBzdGFydCB3aXRo IDAuCgpSRVBFQVRFUiBmb2xsb3dzIHRoZSBwYXR0ZXI6CgpAdmVyYmF0aW0KTUFSSyBWQUxVRSBV TklUCkBlbmQgdmVyYmF0aW0KCk1BUksgaXMgQGNvZGV7K30gKGN1bXVsYXRlIHR5cGUpLCBAY29k ZXsrK30gKGNhdGNoLXVwIHR5cGUpIG9yIEBjb2Rley4rfSAocmVzdGFydAp0eXBlKS4KClZBTFVF IGlzIGEgbnVtYmVyLgoKVU5JVCBpcyBhIGNoYXJhY3RlciBhbW9uZyBAY29kZXtofSAoaG91ciks IEBjb2Rle2R9IChkYXkpLCBAY29kZXt3fSAod2VlayksIEBjb2Rle219Cihtb250aCksIEBjb2Rl e3l9ICh5ZWFyKS4KCk1BUkssIFZBTFVFIGFuZCBVTklUIGFyZSBub3Qgc2VwYXJhdGVkIGJ5IHdo aXRlc3BhY2UgY2hhcmFjdGVycy4KCkBub2RlIFRleHQgTWFya3VwCkBzZWN0aW9uIFRleHQgTWFy a3VwCgpUZXh0IG1hcmt1cCBmb2xsb3dzIHRoZSBwYXR0ZXJuOgoKQHZlcmJhdGltClBSRSBNQVJL RVIgQ09OVEVOVFMgTUFSS0VSIFBPU1QKQGVuZCB2ZXJiYXRpbQoKUFJFIGlzIGEgd2hpdGVzcGFj ZSBjaGFyYWN0ZXIsIEBjb2Rleyh9LCBAY29kZXtAe30gfid+IG9yIGEgZG91YmxlIHF1b3RlLiAg SXQKY2FuIGFsc28gYmUgYSBiZWdpbm5pbmcgb2YgbGluZS4KCk1BUktFUiBpcyBhIGNoYXJhY3Rl ciBhbW9uZyBAY29kZXsqfSAoYm9sZCksIEBjb2Rlez19ICh2ZXJiYXRpbSksIEBjb2Rley99Cihp dGFsaWMpLCBAY29kZXsrfSAoc3RyaWtlLXRocm91Z2gpLCBAY29kZXtffSAodW5kZXJsaW5lKSwg QGNvZGV7fn0gKGNvZGUpLgoKQ09OVEVOVFMgaXMgYSBzdHJpbmcgZm9sbG93aW5nIHRoZSBwYXR0 ZXJuOgoKQHZlcmJhdGltCkJPUkRFUiBCT0RZIEJPUkRFUgpAZW5kIHZlcmJhdGltCgpCT1JERVIg Y2FuIGJlIGFueSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIgZXhjZXB0ZWQgfix+LCB+J34gb3IK YSBkb3VibGUgcXVvdGUuCgpCT0RZIGNhbiBjb250YWluIGNvbnRhaW4gYW55IGNoYXJhY3RlciBi dXQgbWF5IG5vdCBzcGFuIG92ZXIgbW9yZQp0aGFuIDMgbGluZXMuCgpCT1JERVIgYW5kIEJPRFkg YXJlIG5vdCBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZXMuCgpDT05URU5UUyBjYW4gY29udGFpbiBh bnkgb2JqZWN0IGVuY291bnRlcmVkIGluIGEgcGFyYWdyYXBoIHdoZW4KbWFya3VwIGlzIGBgYm9s ZCcnLCBgYGl0YWxpYycnLCBgYHN0cmlrZS10aHJvdWdoJycgb3IgYGB1bmRlcmxpbmUnJy4KClBP U1QgaXMgYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciwgQGNvZGV7LX0sIEBjb2Rley59LCB+LH4sIEBj b2Rlezp9LCBAY29kZXshfSwgQGNvZGV7P30sIH4nfiwKQGNvZGV7KX0sIEBjb2Rle0B9fSBvciBh IGRvdWJsZSBxdW90ZS4gIEl0IGNhbiBhbHNvIGJlIGFuIGVuZCBvZiBsaW5lLgoKUFJFLCBNQVJL RVIsIENPTlRFTlRTLCBNQVJLRVIgYW5kIFBPU1QgYXJlIG5vdCBzZXBhcmF0ZWQgYnkKd2hpdGVz cGFjZSBjaGFyYWN0ZXJzLgoKQHF1b3RhdGlvbgpBbGwgb2YgdGhpcyBpcyB3cm9uZyBpZiBAY29k ZXtvcmctZW1waGFzaXMtcmVnZXhwLWNvbXBvbmVudHN9IG9yCkBjb2Rle29yZy1lbXBoYXNpcy1h bGlzdH0gYXJlIG1vZGlmaWVkLgoKVGhpcyBzaG91bGQgcmVhbGx5IGJlIHNpbXBsaWZpZWQgYW5k IG1hZGUgcGVyc2lzdGVudCAoaS5lLiBubwpkZWZjdXN0b20gYWxsb3dlZCkuICBPdGhlcndpc2Us IHBvcnRhYmlsaXR5IGFuZCBwYXJzaW5nIGFyZQpqb2tlcy4KCkFsc28sIENPTlRFTlRTIHNob3Vs ZCBiZSBhbnl0aGluZyB3aXRoaW4gY29kZSBhbmQgdmVyYmF0aW0KZW1waGFzaXMsIGJ5IGRlZmlu aXRpb24uICAtLS0gbmd6CkBlbmQgcXVvdGF0aW9uCgpAYyBHZW5lcmF0ZWQgYnkgT3JnIG1vZGUg OC4wLXByZSBpbiBFbWFjcyAyNC4zLjUwLjUuCgpAYnll --=-=-=--