Return-Path: X-Original-To: apmail-directory-kerby-archive@minotaur.apache.org Delivered-To: apmail-directory-kerby-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9926E18AE3 for ; Fri, 19 Feb 2016 05:52:25 +0000 (UTC) Received: (qmail 3525 invoked by uid 500); 19 Feb 2016 05:52:25 -0000 Delivered-To: apmail-directory-kerby-archive@directory.apache.org Received: (qmail 3494 invoked by uid 500); 19 Feb 2016 05:52:25 -0000 Mailing-List: contact kerby-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: kerby@directory.apache.org Delivered-To: mailing list kerby@directory.apache.org Received: (qmail 3483 invoked by uid 99); 19 Feb 2016 05:52:25 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Feb 2016 05:52:25 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id DD93EC15A9 for ; Fri, 19 Feb 2016 05:52:24 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -5.027 X-Spam-Level: X-Spam-Status: No, score=-5.027 tagged_above=-999 required=6.31 tests=[RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.006, SPF_PASS=-0.001] autolearn=disabled Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id UKGeCDTfb40z for ; Fri, 19 Feb 2016 05:52:23 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with ESMTP id 33E9D5F1B3 for ; Fri, 19 Feb 2016 05:52:21 +0000 (UTC) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP; 18 Feb 2016 21:52:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,469,1449561600"; d="scan'208";a="916348323" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga002.jf.intel.com with ESMTP; 18 Feb 2016 21:52:15 -0800 Received: from fmsmsx152.amr.corp.intel.com (10.18.125.5) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 18 Feb 2016 21:52:14 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX152.amr.corp.intel.com (10.18.125.5) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 18 Feb 2016 21:52:14 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.4]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.196]) with mapi id 14.03.0248.002; Fri, 19 Feb 2016 13:52:12 +0800 From: "Yan, Yan A" To: "kerby@directory.apache.org" , Steve Moyer Subject: RE: Kerby client library refactoring Thread-Topic: Kerby client library refactoring Thread-Index: AdEmd2d+kDNtvzviTFKkjWMa06g6YQABbzrQAHsXbYAAEPBJwABV/2AAAAysSAAAPOyZgAA20lzgCBklRHCm1eih8KadwoEAzTbSL9A= Date: Fri, 19 Feb 2016 05:52:12 +0000 Message-ID: <0BDBC3A328AD6E4C87F467F180AFCBF4E16DF5@SHSMSX103.ccr.corp.intel.com> References: <8D5F7E3237B3ED47B84CF187BB17B66611CD3F1C@SHSMSX152.ccr.corp.intel.com> <8D5F7E3237B3ED47B84CF187BB17B66611CD5E81@SHSMSX152.ccr.corp.intel.com> <565AAEEA.5050903@gmail.com> <459976100.154348.1448888261062.JavaMail.zimbra@psu.edu> <8D5F7E3237B3ED47B84CF187BB17B66611CD7728@SHSMSX152.ccr.corp.intel.com> <8D5F7E3237B3ED47B84CF187BB17B6661485BDC8@SHSMSX103.ccr.corp.intel.com> <2122969913.8916379.1455312860741.JavaMail.zimbra@psu.edu> <8D5F7E3237B3ED47B84CF187BB17B666148873E3@SHSMSX103.ccr.corp.intel.com> In-Reply-To: <8D5F7E3237B3ED47B84CF187BB17B666148873E3@SHSMSX103.ccr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZWMzODc2NmEtYzNmOS00MDlmLTk5MjItZTdhMTU0ZjJhOTdiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX1BVQkxJQyJ9XX1dfSwiU3ViamVjdExhYmVscyI6W10sIlRNQ1ZlcnNpb24iOiIxNS45LjYuNiIsIlRydXN0ZWRMYWJlbEhhc2giOiJ6bHcwMnZINHo3XC9SeWNLZGlUa2E1UUExSVYzQ0VSVXgyUitvTUdIMTFyaz0ifQ== x-ctpclassification: CTP_PUBLIC x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 SGksIGFsbA0KDQpJIHdhcyByZWFkaW5nIHlvdXIgZGlzY3Vzc2lvbiBhYm91dCBhZGRpbmcgdGhl IHJlbW90ZSBrYWRtaW4gYW5kIGtwYXNzd2QgZnVuY3Rpb25hbGl0eSwgYW5kIEkgaG9wZSBJIGNh biBoZWxwIHdpdGggdGhlc2UgbW9kdWxlcy4NCg0KSW4gZmFjdCwgSSBoYXZlIHJlYWQgY29kZXMg b24ga2FkbWluLXJlbW90ZSBicmFuY2ggd2hpY2ggaGFzIHR3byBuZXcgZGlmZmVyZW50IG1vZHVs ZXMgZnJvbSB0cnVuayBicmFuY2ggKGtlcmItYWRtaW4gYW5kIGtlcmItYWRtaW4tc2VydmVyKS4N Cg0KSWYgdGhlcmUgaXMgbm8gb3RoZXIgc3VnZ2VzdGlvbnMsIEkgY2FuIGhlbHAgd29yayBvbiB0 aGUga2FkbWluLXJlbW90ZSBicmFuY2ggYXMgeW91IGRpc2N1c3NlZCBiZWZvcmUuDQoNCklmIHNv bWVvbmUgaGFzIGFsc28gc3RhcnRlZCB3b3JraW5nIG9uIHRoaXMgaXNzdWUsIHBsZWFzZSBsZXQg bWUga25vdywgYW5kIEknbSBnbGFkIHRvIGhlbHAgc2hhcmUgc29tZSBwYXJ0cy4NCg0KQmVzdCBy ZWdhcmRzLA0KWWFuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBaaGVuZywg S2FpIFttYWlsdG86a2FpLnpoZW5nQGludGVsLmNvbV0gDQpTZW50OiBUdWVzZGF5LCBGZWJydWFy eSAxNiwgMjAxNiAyOjQ2IFBNDQpUbzoga2VyYnlAZGlyZWN0b3J5LmFwYWNoZS5vcmc7IFN0ZXZl IE1veWVyIDxzbW95ZXJAcHN1LmVkdT4NClN1YmplY3Q6IFJFOiBLZXJieSBjbGllbnQgbGlicmFy eSByZWZhY3RvcmluZw0KDQpTb3JyeSBmb3IgdGhlIGxhdGUgcmVwbHkuDQoNCj4+IEkndmUgYWRk ZWQgYSBjb3VwbGUgbW9yZSBzdWItdGFza3MgdG8gRElSS1JCLTQ0MCB3aGljaCB3aWxsIGFsbG93 IHRoZSBLcmJDbGllbnQgdG8gc2V0IHRoZSBsaXN0IG9mIGVuY3J5cHRpb24gdHlwZXMNClNvdW5k cyBnb29kIHRvIG1lLiBBIHF1ZXN0aW9uIGlzLCBpbiB5b3VyIGNhc2UsIHdoZXJlIGRvIHlvdSBn ZXQgdGhlIGVuY3J5cHRpb24gdHlwZXMgbGlzdD8gSWYgeW91IGdldCB0aGVtIGZyb20gYSBjb25m aWd1cmF0aW9uLCB0aGVuIHRoaXMgbWlnaHQgbm90IGJlIG5lZWRlZCBiZWNhdXNlIEtyYkNsaWVu dCBjYW4gcGljayB1cCB0aGVtIGJ5IGl0c2VsZi4NCg0KPj4gdGhlIEtPcHRpb24gYW5kIEtyYktk Y09wdGlvbnMgYXJlIGFkZGVkIGludG8gdGhlIHJlcXVlc3QncyBvcHRpb25zICh3aGljaCBkb2Vz IG1ha2UgdGhlbSBlYXNpZXIgdG8gcGFzcykgYnV0IHRoZW4gdGhlIHJlcXVlc3RzIG5lZWQgdG8g cmVhZCB0aGVtIGJhY2sgb3V0LiBJIHRoaW5rIEknZCBwcmVmZXIgdGhhdCAoYXQgbGVhc3QgYXMg YW4gb3B0aW9uKSB3ZSBiZSBhYmxlIHRvIGJ1aWxkIHRoZSByZXF1ZXN0IHdlIHdhbnQgYW5kIGNh bGwgc29tZXRoaW5nIGxpa2UgYW4gZXhlY3V0ZSgpIG1ldGhvZCBvbiB0aGUgY2xpZW50Lg0KRGlk IHlvdSBmaW5kIGFueSBpc3N1ZSBhYm91dCByZWFkaW5nIHRoZW0gYmFjayBvdXQ/IENhbiB3ZSBl bmhhbmNlIHRoZSBjb2RlcyB0byBhbGxvdyB5b3UgdG8gdXNlIEtyYkNsaWVudCBhcyBmbGV4aWJs ZSBhcyB5b3Ugd291bGQgYnVpbGQgdGhlIHJlcXVlc3QgeW91cnNlbGY/IE5vdCBzdXJlIHdoYXQn cyBleGFjdGx5IG5lZWRlZCBoZXJlLiBFeHBvc2luZyBBc1JlcXVlc3QgbGV2ZWwgaXMgYSBsaXR0 bGUgdHJpY2t5IGJlY2F1c2UgaXQncyBzdGlsbCBpbiBmYXN0IGV2b2x2aW5nLg0KDQo+PiBhZGRp bmcgdGhlIHJlbW90ZSBrcGFzc3dkIGFuZCBrYWRtaW4gZnVuY3Rpb25hbGl0eSB3aWxsIHJlcXVp cmUgYSBzbWFsbCBhbW91bnQgb2YgcmVmYWN0b3Jpbmcgd2l0aGluIHRoZSBjbGllbnQgY29kZSBh cyB3ZWxsIGFzIHNldHRpbmcgdXAgdGhlIGNsYXNzIGhpZXJhcmNoeSBpbiBhIGNvbnZlbmllbnQg d2F5Lg0KQWdyZWUuIFdlIGNhbiBhZGQga3Bhc3N3ZCBhbmQga2FkbWluIHNpbWlsYXJseSBhcyBL cmJDbGllbnQuIFdlIGhhZCBtYWRlIHNvbWUgaW5pdGlhbCB3b3JrIGluIGthZG1pbi1yZW1vdGUg YnJhbmNoIGZvciB0aGUgcHJvdG90eXBlLCBhcyBKaWFqaWEgbWVudGlvbmVkLiBUbyBhdm9pZCBi aWcgaW1wYWN0IGZvciBleGlzdGluZyBjb2Rlcywgd2Ugc2ltcGx5IGR1cGxpY2F0ZWQgdGhlIGNv ZGVzIGFuZCBhZGFwdCBhY2NvcmRpbmdseS4gRXZlbnR1YWxseSB3ZSBtYXkgcmVmYWN0b3IgdGhl IGNvZGVzIGFuZCBhdm9pZCB0aGUgZHVwbGljYXRpb24gY29kZXMgYWZ0ZXIgd2UgbWFrZSBpdCB3 b3JrIGZpcnN0IGFuZCBoYXZlIHRoZSB1bml0IHRlc3RzLiAgTm90ZSB0aGVyZSdyZSBzb21lIGRp ZmZlcmVuY2VzIHRob3VnaDogMSkgS3JiQ2xpZW50IGlzIGFnYWluc3QgS0RDLCBrcGFzc3dkIGFu ZCBrYWRtaW4gYXJlIGFnYWluc3Qga2FkbWluZDsgMikga2FkbWluIG5lZWRzIHRvIGF1dGhlbnRp Y2F0ZSB2aWEgR1NTQVBJOyAzKSBrYWRtaW4gdXNlcyBYRFIgZm9yIHRoZSBSUEM7IDQpIHRoZXkg bWF5IHVzZSBkaWZmZXJlbnQgY29uZmlndXJhdGlvbnMuIENvbnNpZGVyaW5nIHN1Y2gsIGl0IG1h eSBzb3VuZCByZWFzb25hYmxlIHRvIGRldmVsb3AgdGhlIG5ldyBmdW5jdGlvbmFsaXRpZXMgc2Vw YXJhdGVseSwgaW5zdGVhZCBvZiByZWRlc2lnbiB0aGUgd2hvbGUgYXJjaGl0ZWN0dXJlIGZpcnN0 Lg0KDQo+PiBUaGUgS3Bhc3N3ZCBjbGllbnQgc2hvdWxkIGFjdHVhbGx5IHVuZGVyc3RhbmQgYm90 aCB0aGUgTWljcm9zb2Z0IGFuZCB0aGUgInN0YW5kYXJkIiB2YXJpYW50IG9mIHRoZSBwcm90b2Nv bCwgc28gdGhlcmUgYXJlIGFjdHVhbGx5IHR3byBkaWZmZXJlbnQgcmVxdWVzdCBmb3JtYXRzIHJl cHJlc2VudCBieSBrcGFzc3dkLg0KSSB0aG91Z2h0IGl0IHdvdWxkIGJlIGVub3VnaCBmb3Iga3Bh c3N3ZCB0byBzdXBwb3J0IHRoZSBjaGFuZ2UgcGFzc3dvcmQgcHJvdG9jb2wgcmlnaHQsIHNpbmNl IGFsbCB2ZW5kb3JzIHVzZSB0aGUgc3BlYz8NCg0KPj4gV2UgbWlnaHQgd2FudCBhIGJhc2UgY2xh c3MgZm9yIHNvbWUgb2YgdGhlIHRvb2xzIGFzIHRoZXkgZG8gaGF2ZSBzb21lIGNvbW1vbmFsaXR5 Lg0KWWVhaCwgYWdyZWUuIFdlJ2xsIG5lZWQgYWRkIHVuaXQgdGVzdHMgZm9yIHRoZSB0b29scyBh cyB3ZWxsLg0KDQo+PlRoZXJlJ3MgYW4gQXNSZXF1ZXN0IGNsYXNzIGRlZmluZWQgaW4gdGhlIGNs aWVudCBjb2RlIGFzIHdlbGwgYXMgaW4gdGhlIHNlcnZlciBjb2RlIC0gaXMgdGhlcmUgc29tZSBy ZWFzb24gdGhlc2UgY2xhc3NlcyBhcmVuJ3Qgc2hhcmVkPyAgSWYgdGhleSBzaW1wbHkgcmVwcmVz ZW50IHRoZSBwYWNrZXQgb24gdGhlIHdpcmUsIGNvdWxkIHRoZXkgYmUgc2hhcmVkPw0KQXNSZXF1 ZXN0IGlzIGEgaGVscGVyIGNsYXNzIHRvIGJ1aWxkIG9yIGhhbmRsZSB0aGUgd2lyZSBtZXNzYWdl IHR5cGUgb2YgQXNSZXEuIEl0IGxvb2tzIHJvdWdobHkgc2FtZSBpbiBjbGllbnQgYW5kIEtEQyBz aWRlcywgYnV0IHN0aWxsIHF1aXRlIG11Y2ggZGlmZmVyZW5jZSwgbm90IHRvIHNoYXJlIGFsbG93 cyB0aGUgY29kZXMgY2FuIGV2b2x2ZSBpbmRlcGVuZGVudGx5IGluIHRoZSB0d28gc2lkZXMuDQoN Cj4+V2UgZG9uJ3QgaGF2ZSBhbiBBcFJlcXVlc3QgaW4gdGhlIGNsaWVudCB5ZXQNCkFoIHJpZ2h0 LCBnb29kIGNhdGNoISEgV2UgZGlkbid0IGhhdmUgaXQgYmVjYXVzZSBpdCdzIG5vdCBuZWVkZWQg eWV0LiBEbyB5b3UgaGF2ZSBhbnkgY2FzZXMgdG8gdXNlIGl0PyBXZSBoYXZlIG9uZSwgYW5kIGFj dHVhbGx5IHdlJ3JlIGltcGxlbWVudGluZyBhIG5ldyBHU1NBUEkgbWVjaGFuaXNtIGJhc2VkIG9u IEtlcmJ5LCB3aGljaCB3aWxsIG5lZWQgQXBSZXFldXN0IGFuZCBzb21lIEFQSXMuIA0KDQo+Pldl J3JlIHBsYW5uaW5nIHRvIGNvbnRpbnVlIHdvcmsgb24gdGhlIEtlcmJ5IENsaWVudCBvbiBNb25k YXkgYnV0IHdvdWxkIGxpa2Ugc29tZSBpbnB1dCBiZWZvcmUgd2UgInBlcmZvcm0gbWFqb3Igc3Vy Z2VyeSIuICBJZiB5b3UncmUgaW50ZXJlc3RlZCwgd2UgY291bGQgdGFrZSBvbiByZXNwb25zaWJp bGl0eSBmb3IgdGhlIGNsaWVudCBpZiB0aGF0IGhlbHBzLg0KRGVmaW5pdGVseSB5b3UncmUgdmVy eSB3ZWxjb21lLiBUaGFua3MgZm9yIHRoZSBjb21tdW5pY2F0aW9uIGFuZCBzeW5jIHRvIGF2b2lk IHBvc3NpYmxlIGNvbmZsaWN0LiBGb2N1c2luZyBvbiB0aGUgY2xpZW50IHNpZGUgc291bmRzIHJl YXNvbmFibGUgYXMgaXQncyBlc3NlbnRpYWxseSBuZWVkZWQuIFdlJ2xsIGFsc28gbWFkZSB0aGUg c2VydmVyIHNpZGUgd29yayBhcyB3ZWxsIGJlY2F1c2UgaXQgY2FuIGhlbHAgdG8gZG8gdGhlIHVu aXQgdGVzdHMuIEZvciBzbWFsbCBjaGFuZ2VzLCBob3cgYWJvdXQgZG9pbmcgaW4gdHJ1bmsgdGFy Z2V0aW5nIHRoZSBSQzIgcmVsZWFzZT8gQW5kIGZvciB0aGUga3Bhc3N3ZCBhbmQga2FkbWluIHN0 dWZmcywgaG93IGFib3V0IGRldmVsb3BpbmcgdGhlbSBpbiB0aGUga2FkbWluLXJlbW90ZSBicmFu Y2g/IFdvdWxkIHlvdSBjaGVjayB0aGUgYnJhbmNoLCBsb29raW5nIGF0IHRoZSByZWxhdGVkIGNs aWVudCBzaWRlIG1vZHVsZXM/IE91ciBzaWRlIG1heSBmb2N1cyBvbiB0aGUgc2VydmVyIHNpZGUu IElmIHNvdW5kcyBnb29kLCBJIGd1ZXNzIHdlIGNhbiBtYWtlIHRoZSBicmFuY2ggY29tbWl0dGFi bGUgdG8geW91LiBJZiB5b3UgaGF2ZSBvdGhlciBpZGVhcyBhYm91dCBob3cgdG8gY29sbGFib3Jh dGUsIHBsZWFzZSBsZXQgbWUga25vdy4gVGhhbmtzLg0KDQpSZWdhcmRzLA0KS2FpDQoNCi0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBTdGV2ZSBNb3llciBbbWFpbHRvOnNtb3llckBw c3UuZWR1XSANClNlbnQ6IFNhdHVyZGF5LCBGZWJydWFyeSAxMywgMjAxNiA1OjM0IEFNDQpUbzog a2VyYnlAZGlyZWN0b3J5LmFwYWNoZS5vcmcNClN1YmplY3Q6IFJlOiBLZXJieSBjbGllbnQgbGli cmFyeSByZWZhY3RvcmluZw0KDQpBbGwsIA0KDQpJJ3ZlIGZpbmFsbHkgZm91bmQgdGhlIHRpbWUg dG8gcmVhbGx5IGRpZyBpbnRvIHRoZSBLZXJieSBjbGllbnQgY29kZSB3aXRoIGFuIGV5ZSB0b3dh cmRzIGFkZGluZyByZW1vdGUga3Bhc3N3ZCBhbmQga2FkbWluIGZ1bmN0aW9uYWxpdHkuIFRvZGF5 LCB3ZSBmb3VuZCB3aGF0IEkgYmVsaWV2ZSB0byBiZSB0aGUgbGFzdCBhcmVhIHdoZXJlIHRoZSBL ZXJieSBjbGllbnQgZ2VuZXJhdGVzIGRpZmZlcmVudCBwYWNrZXRzIHRoYW4gdGhlIE1JVCBDTEkg dG9vbHMuIEkndmUgYWRkZWQgYSBjb3VwbGUgbW9yZSBzdWItdGFza3MgdG8gRElSS1JCLTQ0MCB3 aGljaCB3aWxsIGFsbG93IHRoZSBLcmJDbGllbnQgdG8gc2V0IHRoZSBsaXN0IG9mIGVuY3J5cHRp b24gdHlwZXMuIEkgYWxzbyB0aGluayB0aGVyZSdzIHNvbWUgcmVmYWN0b3JpbmcgdG8gZG8gYXJv dW5kIGhvdyB0aGUgY2xpZW50IGJ1aWxkcyB0aGUgcmVxdWVzdCAtIHRoZSBLT3B0aW9uIGFuZCBL cmJLZGNPcHRpb25zIGFyZSBhZGRlZCBpbnRvIHRoZSByZXF1ZXN0J3Mgb3B0aW9ucyAod2hpY2gg ZG9lcyBtYWtlIHRoZW0gZWFzaWVyIHRvIHBhc3MpIGJ1dCB0aGVuIHRoZSByZXF1ZXN0cyBuZWVk IHRvIHJlYWQgdGhlbSBiYWNrIG91dC4gSSB0aGluayBJJ2QgcHJlZmVyIHRoYXQgKGF0IGxlYXN0 IGFzIGFuIG9wdGlvbikgd2UgYmUgYWJsZSB0byBidWlsZCB0aGUgcmVxdWVzdCB3ZSB3YW50IGFu ZCBjYWxsIHNvbWV0aGluZyBsaWtlIGFuIGV4ZWN1dGUoKSBtZXRob2Qgb24gdGhlIGNsaWVudC4g DQoNCkluIGFueSBjYXNlLCBhZGRpbmcgdGhlIHJlbW90ZSBrcGFzc3dkIGFuZCBrYWRtaW4gZnVu Y3Rpb25hbGl0eSB3aWxsIHJlcXVpcmUgYSBzbWFsbCBhbW91bnQgb2YgcmVmYWN0b3Jpbmcgd2l0 aGluIHRoZSBjbGllbnQgY29kZSBhcyB3ZWxsIGFzIHNldHRpbmcgdXAgdGhlIGNsYXNzIGhpZXJh cmNoeSBpbiBhIGNvbnZlbmllbnQgd2F5LiBJJ2QgcHJvcG9zZSB0aGUgZm9sbG93aW5nIGhpZXJh cmNoeTogDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0t LS0tLS0tLS0rDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgS3JiQ2xp ZW50IChBUykgfA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0t LS0tLS0tLS0tLSsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAg ICAgICAgICBeDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgfA0KICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0rICAgICAg ICAgICstLS0tLS0tLS0tLS0tLS0tLS0tKw0KICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KICAgICAgICAgICAg ICAgICAgKy0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0t LS0tLS0tLS0tLS0tKw0KICAgICAgICAgICAgICAgICAgfCBLZGNDbGllbnQgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCA8UHJvdG9jb2w+IChBUCkgfA0KICAgICAgICAgICAgICAg ICAgKy0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0t LS0tLS0tLS0tKw0KICAgICAgICAgICAgICAgICAgICAgXiAgXiAgXiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXiAgICAgICAgICAgXg0KICAgICAgICAgICAgICAgICAgICAg fCAgfCAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg fA0KICAgICAgKy0tLS0tLS0tLS0tLS0tKyAgfCAgKy0tLS0tLS0tLS0tLS0rICAgICAgICAgICAg ICAgICAgICstLS0tKyAgICAgICAgICAgKy0tLS0rDQogICAgICB8ICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg IHwNCistLS0tLS0tLS0tLSsgICAgICstLS0tLS0tLS0tKyAgICAgKy0tLS0tLS0tLS0tKyAgICAg Ky0tLS0tLS0tLS0tLS0tLSsgICAgICstLS0tLS0tLS0tLS0tLSsNCnwgS2luaXRUb29sIHwgICAg IHwgS3Zub1Rvb2wgfCAgICAgfCBLbGlzdFRvb2wgfCAgICAgfCBLcGFzc3dkQ2xpZW50IHwgICAg IHwgS2FkbWluQ2xpZW50IHwNCistLS0tLS0tLS0tLSsgICAgICstLS0tLS0tLS0tKyAgICAgKy0t LS0tLS0tLS0tKyAgICAgKy0tLS0tLS0tLS0tLS0tLSsgICAgICstLS0tLS0tLS0tLS0tLSsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeICAgICAgICAgICAgICAgICAgICAgXg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0t LS0tLS0tLS0tLSsgICAgICAgKy0tLS0tLS0tLS0tLSsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgS3Bhc3N3ZFRvb2wgfCAgICAgICB8IEth ZG1pblRvb2wgfA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKy0tLS0tLS0tLS0tLS0rICAgICAgICstLS0tLS0tLS0tLS0rDQoNClNvbWUgaW1w b3J0YW50IG5vdGVzIGFib3V0IHdoZXJlIHdlIHdvdWxkIGdvIGZyb20gaGVyZToNCg0KMSkgIFRo ZSBrcGFzc3dkIGFuZCBrYWRtaW4gc3BlY2lmaWNhdGlvbnMgc2hhcmUgYSBwcm90b2NvbCBidXQg ZG9uJ3Qgc2hhcmUgY29tbWFuZHMuICBJIGhhdmVuJ3QgdGhvdWdodCBvZiBhIGdvb2QgbmFtZSBm b3IgdGhlIGNsYXNzIHlldCBzbyA8UHJvdG9jb2w+IGlzIHRoZSBwbGFjZWhvbGRlci4gIFRoZXNl IGNvbW1hbmRzIDx1c2U+IGEgdGlja2V0IHJldHJpZXZlZCB2aWEgYW4gQXNSZXF1ZXN0IGJ1dCB0 aGUgY29tbWFuZHMgdGhlbXNlbHZlcyBhcmUgc2VudCB2aWEgQXBSZXF1ZXN0cy4NCg0KMikgIFRo ZSBLcGFzc3dkIGNsaWVudCBzaG91bGQgYWN0dWFsbHkgdW5kZXJzdGFuZCBib3RoIHRoZSBNaWNy b3NvZnQgYW5kIHRoZSAic3RhbmRhcmQiIHZhcmlhbnQgb2YgdGhlIHByb3RvY29sLCBzbyB0aGVy ZSBhcmUgYWN0dWFsbHkgdHdvIGRpZmZlcmVudCByZXF1ZXN0IGZvcm1hdHMgcmVwcmVzZW50IGJ5 IGtwYXNzd2QuDQoNCjMpICBBbnkgY2xhc3MgYWJvdmUgdGhhdCBpbmNsdWRlcyB0aGUgd29yZCAi VG9vbCIgdXNlcyB0aGUgY2xhc3MgYWJvdmUgaXQgKHNvcnJ5IGFib3V0IHRoZSBBU0NJSSBhcnQp LiAgQ3VycmVudGx5LCB0aGUgS3JiS2RjT3B0aW9uIGVudW0gaW5jbHVkZSBmbGFncyBmb3IgdGhl IFRvb2wgYnV0IFNvQyB3b3VsZCBzdWdnZXN0IHRoYXQgdGhlIGFyZ3VtZW50cyBhcmUgYSBjb25j ZXJuIG9mIHRoZSBUb29sIGl0c2VsZi4gIEkgdGhpbmsgaXQgd291bGQgYWxzbyBiZSBlYXNpZXIg dG8gbWFuYWdlIGFyZ3VtZW50IHBhcnNpbmcgd2l0aCBhcmdzNGogb3IgY29tbW9ucy1jbGkgYW5k IHRoYXQgdGhlIEVuZ2xpc2ggdGl0bGUgb2YgdGhlIGZsYWcgc2hvdWxkIGFsc28gYmUgbW92ZWQg b3V0IG9mIHRoZSBlbnVtLg0KDQo0KSAgV2UgbWlnaHQgd2FudCBhIGJhc2UgY2xhc3MgZm9yIHNv bWUgb2YgdGhlIHRvb2xzIGFzIHRoZXkgZG8gaGF2ZSBzb21lIGNvbW1vbmFsaXR5Lg0KDQo1KSAg VGhlcmUncyBhbiBBc1JlcXVlc3QgY2xhc3MgZGVmaW5lZCBpbiB0aGUgY2xpZW50IGNvZGUgYXMg d2VsbCBhcyBpbiB0aGUgc2VydmVyIGNvZGUgLSBpcyB0aGVyZSBzb21lIHJlYXNvbiB0aGVzZSBj bGFzc2VzIGFyZW4ndCBzaGFyZWQ/ICBJZiB0aGV5IHNpbXBseSByZXByZXNlbnQgdGhlIHBhY2tl dCBvbiB0aGUgd2lyZSwgY291bGQgdGhleSBiZSBzaGFyZWQ/DQoNCjYpICBXZSBkb24ndCBoYXZl IGFuIEFwUmVxdWVzdCBpbiB0aGUgY2xpZW50IHlldCwgaWYgd2Ugc2hhcmUgdGhlIEFzUmVxdWVz dCB3aXRoIHRoZSBzZXJ2ZXIgSSdkIHN1Z2dlc3QgdGhlIHNhbWUgYmUgZG9uZSBmb3IgQXBSZXF1 ZXN0Lg0KDQpXZSdyZSBwbGFubmluZyB0byBjb250aW51ZSB3b3JrIG9uIHRoZSBLZXJieSBDbGll bnQgb24gTW9uZGF5IGJ1dCB3b3VsZCBsaWtlIHNvbWUgaW5wdXQgYmVmb3JlIHdlICJwZXJmb3Jt IG1ham9yIHN1cmdlcnkiLiAgSWYgeW91J3JlIGludGVyZXN0ZWQsIHdlIGNvdWxkIHRha2Ugb24g cmVzcG9uc2liaWxpdHkgZm9yIHRoZSBjbGllbnQgaWYgdGhhdCBoZWxwcy4NCg0KSGF2ZSBhIGdy ZWF0IHdlZWtlbmQsDQoNClN0ZXZlDQoNCi0tDQoNCuKAnFRoZSBtYXJrIG9mIHRoZSBpbW1hdHVy ZSBtYW4gaXMgdGhhdCBoZSB3YW50cyB0byBkaWUgbm9ibHkgZm9yIGEgY2F1c2UsIHdoaWxlIHRo ZSBtYXJrIG9mIHRoZSBtYXR1cmUgbWFuIGlzIHRoYXQgaGUgd2FudHMgdG8gbGl2ZSBodW1ibHkg Zm9yIG9uZS7igJ0gLSBXaWxoZWxtIFN0ZWtlbA0KDQotLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0t LS0tDQpGcm9tOiAiWmhlbmcsIEthaSIgPGthaS56aGVuZ0BpbnRlbC5jb20+DQpUbzoga2VyYnlA ZGlyZWN0b3J5LmFwYWNoZS5vcmcNClNlbnQ6IE1vbmRheSwgSmFudWFyeSAxMSwgMjAxNiA3OjI5 OjIwIEFNDQpTdWJqZWN0OiBGVzogS2VyYnkgY2xpZW50IGxpYnJhcnkgcmVmYWN0b3JpbmcNCg0K DQoNClNvcnJ5LCB3YXMgd29ya2luZyBvbiBzb21lIG90aGVyIHByb2plY3RzLiBNeSB0aG91Z2h0 IHdhcyBpbnN0ZWFkIG9mIGNvZGUgdGhhdCBsb29rcyBsaWtlIHRoaXM6IA0KDQpyZXF1ZXN0T3B0 aW9ucyA9IG5ldyBLT3B0aW9ucygpOw0KcmVxdWVzdE9wdGlvbnMuYWRkKEtyYk9wdGlvbi5VU0Vf VEdULCB0Z3QpOyAvL3JlcXVlc3RPcHRpb25zLmFkZChLcmJPcHRpb24uU0VSVkVSX1BSSU5DSVBB TCwNCiJIVFRQL2ZyZWVpcGEucmhlbGVudC5sYW4iKTsNCnJlcXVlc3RPcHRpb25zLmFkZChLcmJP cHRpb24uU0VSVkVSX1BSSU5DSVBBTCwgbmV3IFByaW5jaXBhbE5hbWUoIkhUVFAvZnJlZWlwYS5y aGVsZW50LmxhbkBSSEVMRU5ULkxBTiIsTmFtZVR5cGUuTlRfVU5LTk8NCldOKSk7IHJlcXVlc3RP cHRpb25zLmFkZChLcmJPcHRpb24uRk9SV0FSREFCTEUsdHJ1ZSk7DQpyZXF1ZXN0T3B0aW9ucy5h ZGQoS3JiT3B0aW9uLlBST1hJQUJMRSxmYWxzZSk7DQpyZXF1ZXN0T3B0aW9ucy5hZGQoS3JiT3B0 aW9uLlJFTkVXQUJMRV9PSyxmYWxzZSk7IA0KDQpJIHdvdWxkIHRoaW5rIHRoaXMgd291bGQgYmUg bW9yZSBPTzogDQoNCnJlcXVlc3RPcHRpb25zID0gbmV3IEtPcHRpb25zKCk7DQpyZXF1ZXN0T3B0 aW9ucy5zZXRUZ3QodGd0KTsNCi8vcmVxdWVzdE9wdGlvbnMuc2V0U2VydmVyUHJpbmNpcGFsKCJI VFRQL2ZyZWVpcGEucmhlbGVudC5sYW4iKTsNCnJlcXVlc3RPcHRpb25zLnNldFNlcnZlclByaW5j aXBhbChuZXcNClByaW5jaXBhbE5hbWUoIkhUVFAvZnJlZWlwYS5yaGVsZW50LmxhbkBSSEVMRU5U LkxBTiIsTmFtZVR5cGUuTlRfVU5LTk8NCldOKSk7DQpyZXF1ZXN0T3B0aW9ucy5zZXRGb3J3YXJk YWJsZSh0cnVlKTsNCnJlcXVlc3RPcHRpb25zLnNldFByb3hpYWJsZShmYWxzZSk7DQpyZXF1ZXN0 T3B0aW9ucy5zZXRSZW5ld2FibGUoZmFsc2UpOyANCg0KQ291bGQga2VlcCBpdCBiYWNrZWQgYnkg YSBzZXQgb2Ygb3B0aW9ucyANCg0KDQoNCg0KQWdyZWVkLiBUaGlzIGlzIGZ1bGx5IGNvbXBhdGli bGUgd2l0aCB0aGUgZGVmaW5pdGlvbiBvZiBhbGwgdGhlIEtyYk9wdGlvbnMgZW51bXMsIGV4Y2Vw dCB0aGF5IHdpbGwgbm90IGJlIHZpc2libGUgYnkgdGhlIGVuZCB1c2VyLiANCg==