From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Christoph Newsgroups: gmane.emacs.devel Subject: Re: make dist target for Windows Date: Tue, 06 Apr 2010 19:53:46 -0600 Message-ID: <4BBBE5AA.2000103@gmail.com> References: <4BB2BB70.3090608@gmail.com> <83eij0zydg.fsf@gnu.org> <4BB3FB7C.3040106@gmail.com> <83iq8by6bw.fsf@gnu.org> <4BB571EA.4030209@gmail.com> <83k4sqw9av.fsf@gnu.org> <4BB77B64.3080501@gmail.com> <83wrwnzoa8.fsf@gnu.org> <4BBA98A5.4060904@gmail.com> <83eiisxxzg.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070306020108050500050300" X-Trace: dough.gmane.org 1270605264 5511 80.91.229.12 (7 Apr 2010 01:54:24 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 7 Apr 2010 01:54:24 +0000 (UTC) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Apr 07 03:54:22 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1NzKT7-0003AS-IJ for ged-emacs-devel@m.gmane.org; Wed, 07 Apr 2010 03:54:22 +0200 Original-Received: from localhost ([127.0.0.1]:49321 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NzKT6-0004Ri-A7 for ged-emacs-devel@m.gmane.org; Tue, 06 Apr 2010 21:54:12 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NzKSz-0004Ov-8l for emacs-devel@gnu.org; Tue, 06 Apr 2010 21:54:05 -0400 Original-Received: from [140.186.70.92] (port=40911 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NzKSv-0004Mi-N6 for emacs-devel@gnu.org; Tue, 06 Apr 2010 21:54:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NzKSs-0007k2-Pn for emacs-devel@gnu.org; Tue, 06 Apr 2010 21:54:01 -0400 Original-Received: from mail-pz0-f171.google.com ([209.85.222.171]:50296) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NzKSo-0007jM-T6; Tue, 06 Apr 2010 21:53:55 -0400 Original-Received: by pzk1 with SMTP id 1so506732pzk.14 for ; Tue, 06 Apr 2010 18:53:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :content-type; bh=WfzEeIvnTINv/C0uNMG4GTUOy0YCo5wUUjPDMlKSy1A=; b=TgA8ZMSLe6rQM81xPQCvSgt3FSQ4kNnV+bt7Z7oHo9MGn0L2QgS/rV4M6761KMNwIC IPitTUV0BGnRtE8mB2XVkt6wxRrNXfpbt0Mqe/0GrOeMjs2WPQuVLwiZS3gomhYESBYH /zT1/+SVcxpnmr7YS3bUtV+FGV74+A7vrY95s= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type; b=vTw1IrK85IdS7moA6V5Ma1aGwZuumzJiq+4Pze15ZeCFIbi6Qp4LiFtC5hO55m0Lz6 /DSgrNPQH/HM7JcgUW9X3kiUCUu47vP0nnDDplqE4kASAogLSZEaq1dYgFcI9fDukib8 DbZOTh5+KRwuG8FwjQGlte1HprUSQzummNMU0= Original-Received: by 10.141.100.15 with SMTP id c15mr4877797rvm.221.1270605232787; Tue, 06 Apr 2010 18:53:52 -0700 (PDT) Original-Received: from [192.168.1.2] (67-41-143-56.hlrn.qwest.net [67.41.143.56]) by mx.google.com with ESMTPS id 21sm2086962pzk.12.2010.04.06.18.53.48 (version=SSLv3 cipher=RC4-MD5); Tue, 06 Apr 2010 18:53:50 -0700 (PDT) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 In-Reply-To: <83eiisxxzg.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:123286 Archived-At: This is a multi-part message in MIME format. --------------070306020108050500050300 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 4/6/2010 12:00 PM, Eli Zaretskii wrote: > Does it work to use backslashes instead of forward slashes? > No. Same result. > You are right, INSTALL_DIR with spaces will not work. But not because > of lack of quoting; because it is used in targets and prerequisites, > and GNU Make does not support targets and prerequisites with embedded > blanks. > > So you might as well forget about the triple quotes I suggested above, > it's not needed. > Triple quotes didnt work either, btw. So, here is the final version of the patch. Major changes: - Use $(ComSpec) etc. to execute batch file zipdist accordingly with cygwin shell and cmd.exe - Added info to prerequisites for dist target. When packaging a snapshot from the trunk this might be necessary, for the tarball it is not. If the info files exist, it will not do anything. Christoph --------------070306020108050500050300 Content-Type: text/plain; name="makedistw32v5.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="makedistw32v5.txt" IyBCYXphYXIgbWVyZ2UgZGlyZWN0aXZlIGZvcm1hdCAyIChCYXphYXIgMC45MCkKIyByZXZp c2lvbl9pZDogY3NjaG9sMjExMkBnbWFpbC5jb20tMjAxMDA0MDcwMTQ2MDUtaXM5Y3pzbjM1 M29laGJncgojIHRhcmdldF9icmFuY2g6IGh0dHA6Ly9ienIuc2F2YW5uYWguZ251Lm9yZy9y L2VtYWNzL3RydW5rLwojIHRlc3RhbWVudF9zaGExOiA1NjBhNGJkMTE1YmU4ZjFlNjFkNTE3 ZmU2NzdlYzgzZjI2MjAwZTliCiMgdGltZXN0YW1wOiAyMDEwLTA0LTA2IDE5OjQ2OjI5IC0w NjAwCiMgYmFzZV9yZXZpc2lvbl9pZDogandpZWdsZXlAZ21haWwuY29tLTIwMTAwNDA2MTgx NzU1LWpjaXloNHdubTQxdWYzYWoKIyAKIyBCZWdpbiBwYXRjaAo9PT0gbW9kaWZpZWQgZmls ZSAnYWRtaW4vYWRtaW4uZWwnCi0tLSBhZG1pbi9hZG1pbi5lbAkyMDEwLTAxLTEzIDA4OjM1 OjEwICswMDAwCisrKyBhZG1pbi9hZG1pbi5lbAkyMDEwLTAzLTMxIDAyOjI3OjE1ICswMDAw CkBAIC05NSw2ICs5NSw5IEBACiAgIChzZXQtdmVyc2lvbi1pbi1maWxlIHJvb3QgImxpYi1z cmMvbWFrZWZpbGUudzMyLWluIiB2ZXJzaW9uCiAJCSAgICAgICAocnggKGFuZCAiVkVSU0lP TiIgKDArIHNwYWNlKSAiPSIgKDArIHNwYWNlKQogCQkJCShzdWJtYXRjaCAoMSsgKGluICIw LTkuIikpKSkpKQorICAoc2V0LXZlcnNpb24taW4tZmlsZSByb290ICJudC9tYWtlZmlsZS53 MzItaW4iIHZlcnNpb24KKwkJICAgICAgIChyeCAoYW5kICJWRVJTSU9OIiAoMCsgc3BhY2Up ICI9IiAoMCsgc3BhY2UpCisJCQkJKHN1Ym1hdGNoICgxKyAoaW4gIjAtOS4iKSkpKSkpCiAg IDs7IG50L2VtYWNzLnJjIGFsc28gY29udGFpbnMgdGhlIHZlcnNpb24gbnVtYmVyLCBidXQg aW4gYW4gYXdrd2FyZAogICA7OyBmb3JtYXQuIEl0IG11c3QgY29udGFpbiBmb3VyIGNvbXBv bmVudHMsIHNlcGFyYXRlZCBieSBjb21tYXMsIGFuZAogICA7OyBpbiB0d28gcGxhY2VzIHRo b3NlIGNvbW1hcyBhcmUgZm9sbG93ZWQgYnkgc3BhY2UsIGluIHR3byBvdGhlcgoKPT09IG1v ZGlmaWVkIGZpbGUgJ250L0lOU1RBTEwnCi0tLSBudC9JTlNUQUxMCTIwMTAtMDEtMTMgMDg6 MzU6MTAgKzAwMDAKKysrIG50L0lOU1RBTEwJMjAxMC0wNC0wMyAxNzowMToxNyArMDAwMApA QCAtNDAzLDYgKzQwMyw5IEBACiAgIFJlbW92ZXMgdGhlIGluc3RhbGxlZCBmaWxlcyBpbiB0 aGUgYmluIHN1YmRpcmVjdG9yeSBpbiBhZGRpdGlvbiB0bwogICB0aGUgZmlsZXMgcmVtb3Zl ZCBieSBtYWtlIGNsZWFuYWxsLgogCisgIG1ha2UgZGlzdAorICBCdWlsZHMgRW1hY3MgZnJv bSB0aGUgYXZhaWxhYmxlIHNvdXJjZXMgYW5kIHByZS1jb21waWxlZCBsaXNwIGZpbGVzLgor ICBQYWNrYWdlcyBFbWFjcyBiaW5hcmllcyBhcyBmdWxsIGRpc3RyaWJ1dGlvbiBhbmQgYmFy ZWJpbiBkaXN0cmlidXRpb24uCiAKICAgVGhlIGZvbGxvd2luZyB0YXJnZXRzIGFyZSBpbnRl bmRlZCBvbmx5IGZvciB1c2Ugd2l0aCB0aGUgQmF6YWFyIHNvdXJjZXMuCiAKQEAgLTQyNSw3 ICs0MjgsMzMgQEAKICAgYm9vdHN0cmFwIHRvIHJlYnVpbGQuICBPY2Nhc2lvbmFsbHkgaXQg bWF5IGJlIG5lY2Vzc2FyeSB0byBydW4gdGhpcwogICB0YXJnZXQgYWZ0ZXIgYW4gdXBkYXRl LgogCi0KKyogQ3JlYXRpbmcgYmluYXJ5IGRpc3RyaWJ1dGlvbnMKKyAgCisgIEJpbmFyeSBk aXN0cmlidXRpb25zIChmdWxsIGFuZCBiYXJlYmluIGRpc3RyaWJ1dGlvbnMpIGNhbiBiZSAK KyAgYXV0b21hdGljYWxseSBidWlsdCBhbmQgcGFja2FnZWQgZnJvbSBzb3VyY2UgdGFyYmFs bHMgb3IgYSBienIKKyAgY2hlY2tvdXQuIAorICAKKyAgV2hlbiBidWlsZGluZyBFbWFjcyBi aW5hcnkgZGlzdHJpYnV0aW9ucywgdGhlIC0tZGlzdGZpbGVzIGFyZ3VtZW50CisgIHRvIGNv bmZpZ3VyZS5iYXQgc3BlY2lmaWVzIGZpbGVzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBiaW4g ZGlyZWN0b3J5CisgIG9mIHRoZSBiaW5hcnkgZGlzdHJpYnV0aW9ucy4gVGhpcyBpcyBpbnRl bmRlZCBmb3IgbGlicmFyaWVzIHRoYXQgYXJlIAorICBub3QgYnVpbHQgYXMgcGFydCBvZiBF bWFjcywgZS5nLiBpbWFnZSBsaWJyYXJpZXMuCisgIAorICBGb3IgZXhhbXBsZSwgc3BlY2lm eWluZyAKKyAgCisJLS1kaXN0ZmlsZXMgRDpcZGlzdGZpbGVzXGxpYlhwbS5kbGwKKworICBy ZXN1bHRzIGluIGxpYlhwbS5kbGwgYmVpbmcgY29waWVkIGZyb20gRDpcZGlzdGZpbGVzIHRv IHRoZSAKKyAgYmluIGRpcmVjdG9yeSBiZWZvcmUgcGFja2FnaW5nIHN0YXJ0cy4KKyAgCisg IE11bHRpcGxlIGZpbGVzIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgbXVsdGlwbGUgLS1kaXN0 ZmlsZXMgYXJndW1lbnRzOgorICAKKwktLWRpc3RmaWxlcyBEOlxkaXN0ZmlsZXNcbGliWHBt LmRsbCAtLWRpc3RmaWxlcyBDOlxqcGVnbGliXGpwZWcuZGxsCisgICAgCisgIEZvciBwYWNr YWdpbmcgdGhlIGJpbmFyeSBkaXN0cmlidXRpb25zLCB0aGUgJ2Rpc3QnIG1ha2UgdGFyZ2V0 IHVzZXMKKyAgNy1aaXAgKGh0dHA6Ly93d3cuNy16aXAub3JnKSwgd2hpY2ggbXVzdCBiZSBp bnN0YWxsZWQgYW5kIGF2YWlsYWJsZQorICBvbiB0aGUgV2luZG93cyBQYXRoLgorCisgIAog KiBUcm91YmxlLXNob290aW5nCiAKICAgVGhlIG1haW4gcHJvYmxlbXMgdGhhdCBhcmUgbGlr ZWx5IHRvIGJlIGVuY291bnRlcmVkIHdoZW4gYnVpbGRpbmcKCj09PSBhZGRlZCBmaWxlICdu dC9SRUFETUUuVzMyJwotLS0gbnQvUkVBRE1FLlczMgkxOTcwLTAxLTAxIDAwOjAwOjAwICsw MDAwCisrKyBudC9SRUFETUUuVzMyCTIwMTAtMDMtMzEgMDI6Mjc6MTUgKzAwMDAKQEAgLTAs MCArMSwyNjQgQEAKK0NvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAw NSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMAorICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KK1NlZSB0aGUgZW5kIG9mIHRoZSBmaWxlIGZvciBsaWNlbnNlIGNvbmRp dGlvbnMuCisKKwkJCSAgIEVtYWNzIGZvciBXaW5kb3dzCisKKyAgVGhpcyBSRUFETUUgZmls ZSBkZXNjcmliZXMgaG93IHRvIHNldCB1cCBhbmQgcnVuIGEgcHJlY29tcGlsZWQKKyAgdmVy c2lvbiBvZiBHTlUgRW1hY3MgZm9yIFdpbmRvd3MuICBUaGlzIGRpc3RyaWJ1dGlvbiBjYW4g YmUgZm91bmQgb24KKyAgdGhlIGZ0cC5nbnUub3JnIHNlcnZlciBhbmQgaXRzIG1pcnJvcnM6 CisKKwlmdHA6Ly9mdHAuZ251Lm9yZy9nbnUvZW1hY3Mvd2luZG93cy8KKworICBUaGlzIHNl cnZlciBjb250YWlucyBvdGhlciBkaXN0cmlidXRpb25zLCBpbmNsdWRpbmcgdGhlIGZ1bGwg RW1hY3MKKyAgc291cmNlIGRpc3RyaWJ1dGlvbiBhbmQgYSBiYXJlYmluIGRpc3RyaWJ1dGlv biB3aGljaCBjYW4gYmUgaW5zdGFsbGVkCisgIG92ZXIgaXQsIGFzIHdlbGwgYXMgb2xkZXIg cmVsZWFzZXMgb2YgRW1hY3MgZm9yIFdpbmRvd3MuCisKKyAgQW5zd2VycyB0byBmcmVxdWVu dGx5IGFza2VkIHF1ZXN0aW9ucywgYW5kIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQKKyAg dGhpcyBwb3J0IG9mIEdOVSBFbWFjcyBhbmQgcmVsYXRlZCBzb2Z0d2FyZSBwYWNrYWdlcyBj YW4gYmUgZm91bmQgdmlhCisgIGh0dHA6CisKKwlodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZW1hY3Mvd2luZG93cy8KKworKiBQcmVsaW1pbmFyaWVzCisKKyAgQWxvbmcgd2l0aCB0 aGlzIGZpbGUgc2hvdWxkIGJlIHNpeCBzdWJkaXJlY3RvcmllcyAoYmluLCBldGMsIGluZm8s CisgIGxpc3AsIGxlaW0sIHNpdGUtbGlzcCkuICBJZiB5b3UgaGF2ZSBkb3dubG9hZGVkIHRo ZSBiYXJlYmluCisgIGRpc3RyaWJ1dGlvbiwgdGhlbiBpdCB3aWxsIGNvbnRhaW4gb25seSB0 aGUgYmluIGRpcmVjdG9yeSBhbmQgdGhlCisgIGJ1aWx0IGluIGRvY3VtZW50YXRpb24gaW4g ZXRjL0RPQy1YLCB0aGUgcmVzdCBvZiB0aGUgc3ViZGlyZWN0b3JpZXMKKyAgYXJlIGluIHRo ZSBzcmMgZGlzdHJpYnV0aW9uLCB3aGljaCB0aGUgYmFyZWJpbiBkaXN0cmlidXRpb24gaXMK KyAgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoLgorCisqIFNldHRpbmcgdXAgRW1hY3MKKwor ICBUbyBpbnN0YWxsIEVtYWNzLCBzaW1wbHkgdW5wYWNrIGFsbCB0aGUgZmlsZXMgaW50byBh IGRpcmVjdG9yeSBvZgorICB5b3VyIGNob2ljZSwgYnV0IG5vdGUgdGhhdCB5b3UgbWlnaHQg ZW5jb3VudGVyIG1pbm9yIHByb2JsZW1zIGlmCisgIHRoZXJlIGlzIGEgc3BhY2UgYW55d2hl cmUgaW4gdGhlIGRpcmVjdG9yeSBuYW1lLiAgVG8gY29tcGxldGUgdGhlCisgIGluc3RhbGxh dGlvbiBwcm9jZXNzLCB5b3UgY2FuIG9wdGlvbmFsbHkgcnVuIHRoZSBwcm9ncmFtIGFkZHBt LmV4ZQorICBpbiB0aGUgYmluIHN1YmRpcmVjdG9yeS4gIFRoaXMgd2lsbCBwdXQgYW4gaWNv biBmb3IgRW1hY3MgaW4gdGhlCisgIFN0YXJ0IE1lbnUgdW5kZXIgIlN0YXJ0IC0+IFByb2dy YW1zIC0+IEdudSBFbWFjcyIuCisKKyAgU29tZSB1c2VycyBoYXZlIHJlcG9ydGVkIHRoYXQg dGhlIFN0YXJ0IE1lbnUgaXRlbSBpcyBub3QgY3JlYXRlZCBmb3IKKyAgdGhlbS4gIElmIHRo aXMgaGFwcGVucywganVzdCBjcmVhdGUgeW91ciBvd24gc2hvcnRjdXQgdG8gcnVuZW1hY3Mu ZXhlLAorICBlZy4gYnkgZHJhZ2dpbmcgaXQgb24gdG8gdGhlIGRlc2t0b3Agb3IgdGhlIFN0 YXJ0IGJ1dHRvbi4KKworICBOb3RlIHRoYXQgcnVubmluZyBhZGRwbSBpcyBub3cgYW4gb3B0 aW9uYWwgc3RlcDsgRW1hY3MgaXMgYWJsZSB0bworICBsb2NhdGUgYWxsIG9mIGl0cyBmaWxl cyB3aXRob3V0IG5lZWRpbmcgYW55IGluZm9ybWF0aW9uIHRvIGJlIHNldCBpbgorICB0aGUg ZW52aXJvbm1lbnQgb3IgdGhlIHJlZ2lzdHJ5LCBhbHRob3VnaCBzdWNoIHNldHRpbmdzIHdp bGwgc3RpbGwKKyAgYmUgb2JleWVkIGlmIHByZXNlbnQuICBUaGlzIGlzIGNvbnZlbmllbnQg Zm9yIHJ1bm5pbmcgRW1hY3Mgb24gYQorICBtYWNoaW5lIHdoaWNoIGRpc2FsbG93cyByZWdp c3RyeSBjaGFuZ2VzLCBvciBvbiB3aGljaCBzb2Z0d2FyZQorICBzaG91bGQgbm90IGJlIGlu c3RhbGxlZC4gIEZvciBpbnN0YW5jZSwgeW91IGNhbiBub3cgcnVuIEVtYWNzCisgIGRpcmVj dGx5IGZyb20gYSBDRCBvciBVU0IgZmxhc2ggZHJpdmUgd2l0aG91dCBjb3B5aW5nIG9yIGlu c3RhbGxpbmcKKyAgYW55dGhpbmcgb24gdGhlIG1hY2hpbmUgaXRzZWxmLgorCisqIFN0YXJ0 aW5nIEVtYWNzCisKKyAgVG8gcnVuIEVtYWNzLCBzaW1wbHkgc2VsZWN0IEVtYWNzIGZyb20g dGhlIFN0YXJ0IE1lbnUsIG9yIGludm9rZQorICBydW5lbWFjcy5leGUgZGlyZWN0bHkgZnJv bSBFeHBsb3JlciBvciBmcm9tIGEgY29tbWFuZCBwcm9tcHQuICBUaGlzCisgIHdpbGwgc3Rh cnQgRW1hY3MgaW4gaXRzIGRlZmF1bHQgR1VJIG1vZGUsIHJlYWR5IHRvIHVzZS4gIElmIHlv dSBoYXZlCisgIG5ldmVyIHVzZWQgRW1hY3MgYmVmb3JlLCB5b3Ugc2hvdWxkIGZvbGxvdyB0 aGUgdHV0b3JpYWwgYXQgdGhpcworICBwb2ludCAoc2VsZWN0IEVtYWNzIFR1dG9yaWFsIGZy b20gdGhlIEhlbHAgbWVudSksIHNpbmNlIEVtYWNzIGlzCisgIHF1aXRlIGRpZmZlcmVudCBm cm9tIG9yZGluYXJ5IFdpbmRvd3MgYXBwbGljYXRpb25zIGluIG1hbnkgcmVzcGVjdHMuCisK KyAgSWYgeW91IHdhbnQgdG8gdXNlIEVtYWNzIGluIHR0eSBvciBjaGFyYWN0ZXIgbW9kZSB3 aXRoaW4gYSBjb21tYW5kCisgIHdpbmRvdywgeW91IGNhbiBzdGFydCBpdCBieSB0eXBpbmcg ImVtYWNzIC1udyIgYXQgdGhlIGNvbW1hbmQgcHJvbXB0LgorICAoT2J2aW91c2x5LCB5b3Ug bmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgRW1hY3MgYmluIHN1YmRpcmVjdG9yeSBpcyBpbgor ICB5b3VyIFBBVEggZmlyc3QsIG9yIHNwZWNpZnkgdGhlIHBhdGggdG8gZW1hY3MuZXhlLikg IFRoZSAtbncKKyAgKG5vbi13aW5kb3dlZCkgbW9kZSBvZiBvcGVyYXRpb24gaXMgbW9zdCB1 c2VmdWwgaWYgeW91IGhhdmUgYSB0ZWxuZXQKKyAgc2VydmVyIG9uIHlvdXIgbWFjaGluZSwg YWxsb3dpbmcgeW91IHRvIHJ1biBFbWFjcyByZW1vdGVseS4KKworKiBFWEUgZmlsZXMgaW5j bHVkZWQKKworICBFbWFjcyBjb21lcyB3aXRoIHRoZSBmb2xsb3dpbmcgZXhlY3V0YWJsZSBm aWxlcyBpbiB0aGUgYmluIGRpcmVjdG9yeS4KKworICArIGVtYWNzLmV4ZSAtIFRoZSBtYWlu IEVtYWNzIGV4ZWN1dGFibGUuICBBcyB0aGlzIGlzIGRlc2lnbmVkIHRvIHJ1bgorICAgIGFz IGJvdGggYSB0ZXh0LW1vZGUgYXBwbGljYXRpb24gKGVtYWNzIC1udykgYW5kIGFzIGEgR1VJ IGFwcGxpY2F0aW9uLAorICAgIGl0IHdpbGwgcG9wIHVwIGEgY29tbWFuZCBwcm9tcHQgd2lu ZG93IGlmIHJ1biBkaXJlY3RseSBmcm9tIEV4cGxvcmVyLgorCisgICsgcnVuZW1hY3MuZXhl IC0gQSB3cmFwcGVyIGZvciBydW5uaW5nIEVtYWNzIGFzIGEgR1VJIGFwcGxpY2F0aW9uCisg ICAgd2l0aG91dCBwb3BwaW5nIHVwIGEgY29tbWFuZCBwcm9tcHQgd2luZG93LgorCisgICsg ZW1hY3NjbGllbnQuZXhlIC0gQSBjb21tYW5kLWxpbmUgY2xpZW50IHByb2dyYW0gdGhhdCBj YW4KKyAgICBjb21tdW5pY2F0ZSB3aXRoIGEgcnVubmluZyBFbWFjcyBwcm9jZXNzLiAgU2Vl IHRoZSBgRW1hY3MgU2VydmVyJworICAgIG5vZGUgb2YgdGhlIEVtYWNzIG1hbnVhbC4KKwor ICArIGVtYWNzY2xpZW50dy5leGUgLSBBIHZlcnNpb24gb2YgZW1hY3NjbGllbnQgdGhhdCBk b2VzIG5vdCBvcGVuCisgICAgYSBjb21tYW5kLWxpbmUgd2luZG93LgorCisgICsgYWRkcG0u ZXhlIC0gQSBiYXNpYyBpbnN0YWxsZXIgdGhhdCBjcmVhdGVzIFN0YXJ0IE1lbnUgaWNvbnMg Zm9yIEVtYWNzLgorICAgIFJ1bm5pbmcgdGhpcyBpcyBvcHRpb25hbC4KKworICArIGNtZHBy b3h5LmV4ZSAtIFVzZWQgaW50ZXJuYWxseSBieSBFbWFjcyB0byB3b3JrIGFyb3VuZCBwcm9i bGVtcyB3aXRoCisgICAgdGhlIG5hdGl2ZSBzaGVsbHMgaW4gdmFyaW91cyB2ZXJzaW9ucyBv ZiBXaW5kb3dzLgorCisgICsgY3RhZ3MuZXhlLCBldGFncy5leGUgLSBUb29scyBmb3IgZ2Vu ZXJhdGluZyB0YWcgZmlsZXMuICBTZWUgdGhlCisgICAgYFRhZ3MnIG5vZGUgb2YgdGhlIEVt YWNzIG1hbnVhbC4KKworICArIGVicm93c2UuZXhlIC0gQSB0b29sIGZvciBnZW5lcmF0aW5n IEMrKyBicm93c2UgaW5mb3JtYXRpb24uICBTZWUgdGhlCisgICAgYEVicm93c2UnIG1hbnVh bC4KKworICArIGRkZWNsaWVudC5leGUgLSBBIHRvb2wgZm9yIGludGVyYWN0aW5nIHdpdGgg RERFIHNlcnZlcnMuCisKKyAgKyBoZXhsLmV4ZSAtIEEgdG9vbCBmb3IgY29udmVydGluZyBm aWxlcyB0byBoZXggZHVtcHMuICBTZWUgdGhlCisgICAgYEVkaXRpbmcgQmluYXJ5IEZpbGVz JyBub2RlIG9mIHRoZSBFbWFjcyBtYW51YWwuCisKKyAgKyBtb3ZlbWFpbC5leGUgLSBBIGhl bHBlciBhcHBsaWNhdGlvbiBmb3Igc2FmZWx5IG1vdmluZyBtYWlsIGZyb20KKyAgICBhIG1h aWwgc3Bvb2wgb3IgUE9QIHNlcnZlciB0byBhIGxvY2FsIHVzZXIgbWFpbGJveC4gIFNlZSB0 aGUKKyAgICBgTW92ZW1haWwnIG5vZGUgb2YgdGhlIEVtYWNzIG1hbnVhbC4KKworICArIGRp Z2VzdC1kb2MuZXhlLCBzb3J0ZWQtZG9jLmV4ZSAtIFRvb2xzIGZvciByZWJ1aWxkaW5nIHRo ZQorICAgIGJ1aWx0LWluIGRvY3VtZW50YXRpb24uCisKKyogSW1hZ2Ugc3VwcG9ydAorCisg IEVtYWNzIGhhcyBidWlsdCBpbiBzdXBwb3J0IGZvciBYQk0gYW5kIFBQTS9QR00vUEJNIGlt YWdlcywgYW5kIHRoZQorICBsaWJYcG0gbGlicmFyeSBpcyBidW5kbGVkLCBwcm92aWRpbmcg WFBNIHN1cHBvcnQgKHJlcXVpcmVkIGZvciBjb2xvcgorICB0b29sYmFyIGljb25zIGFuZCBz cGxhc2ggc2NyZWVuKS4gIFNvdXJjZSBmb3IgbGliWHBtIHNob3VsZCBiZSBhdmFpbGFibGUK KyAgb24gdGhlIHNhbWUgcGxhY2UgYXMgeW91IGdvdCB0aGlzIGJpbmFyeSBkaXN0cmlidXRp b24gZnJvbS4gIFRoZSB2ZXJzaW9uCisgIG9mIGxpYlhwbSBidW5kbGVkIHdpdGggdGhpcyB2 ZXJzaW9uIG9mIEVtYWNzIGlzIDMuNS43LCBiYXNlZCBvbiB4Lm9yZydzCisgIGxpYlhwbSBs aWJyYXJ5IGZyb20gWDExUjcuMy4KKworICBFbWFjcyBjYW4gYWxzbyBzdXBwb3J0IHNvbWUg b3RoZXIgaW1hZ2UgZm9ybWF0cyB3aXRoIGFwcHJvcHJpYXRlCisgIGxpYnJhcmllcy4gIFRo ZXNlIGxpYnJhcmllcyBhcmUgYWxsIGF2YWlsYWJsZSBhcyBwYXJ0IG9mIEdUSywgb3IgZnJv bQorICBnbnV3aW4zMi5zb3VyY2Vmb3JnZS5uZXQuICBFbWFjcyB3aWxsIGZpbmQgdGhlbSBp ZiB0aGUgZGlyZWN0b3J5IHRoZXkKKyAgYXJlIGluc3RhbGxlZCBpbiBpcyBvbiB0aGUgUEFU SC4KKworICAgICAgUE5HOiByZXF1aXJlcyB0aGUgUE5HIHJlZmVyZW5jZSBsaWJyYXJ5IDEu MiBvciBsYXRlciwgd2hpY2ggd2lsbAorICAgICAgYmUgbmFtZWQgbGlicG5nMTNkLmRsbCwg bGlicG5nMTMuZGxsLCBsaWJwbmcxMmQuZGxsLCBsaWJwbmcxMi5kbGwKKyAgICAgIG9yIGxp YnBuZy5kbGwuICBMaWJQTkcgcmVxdWlyZXMgemxpYiwgd2hpY2ggc2hvdWxkIGNvbWUgZnJv bSB0aGUgc2FtZQorICAgICAgc291cmNlIGFzIHlvdSBnb3QgbGlicG5nLgorCisgICAgICBK UEVHOiByZXF1aXJlcyB0aGUgSW5kZXBlbmRhbnQgSlBFRyBHcm91cCdzIGxpYmpwZWcgNmIg b3IgbGF0ZXIsCisgICAgICB3aGljaCB3aWxsIGJlIGNhbGxlZCBqcGVnNjIuZGxsLCBsaWJq cGVnLmRsbCwganBlZy02Mi5kbGwgb3IganBlZy5kbGwuCisKKyAgICAgIFRJRkY6IHJlcXVp cmVzIGxpYlRJRkYgMy4wIG9yIGxhdGVyLCB3aGljaCB3aWxsIGJlIGNhbGxlZCBsaWJ0aWZm My5kbGwKKyAgICAgIG9yIGxpYnRpZmYuZGxsLgorCisgICAgICBHSUY6IHJlcXVpcmVzIGxp YnVuZ2lmIG9yIGdpZmxpYiA0LjEgb3IgbGF0ZXIsIHdoaWNoIHdpbGwgYmUKKyAgICAgIGNh bGxlZCBnaWZsaWI0LmRsbCwgbGlidW5naWY0LmRsbCBvciBsaWJ1bmdpZi5kbGwuCisKKyAg IEluIGFkZGl0aW9uLCBFbWFjcyBjYW4gYmUgY29tcGlsZWQgdG8gc3VwcG9ydCBTVkcuICBU aGlzIHByZWNvbXBpbGVkCisgICBkaXN0cmlidXRpb24gaGFzIG5vdCBiZWVuIGNvbXBpbGVk IHRoYXQgd2F5LCBzaW5jZSB0aGUgU1ZHIGxpYnJhcnkKKyAgIG9yIG9uZSBvciBtb3JlIG9m IGl0cyBleHRlbnNpdmUgZGVwZW5kZW5jaWVzIGFwcGVhciB0byBiZQorICAgdW5yZWxpYWJs ZSB1bmRlciBXaW5kb3dzLiAgU2VlIG50L0lOU1RBTEwgaW4gdGhlIHNyYyBkaXN0cmlidXRp b24gaWYKKyAgIHlvdSB3aXNoIHRvIGNvbXBpbGUgRW1hY3Mgd2l0aCBTVkcgc3VwcG9ydC4K KworKiBVbmluc3RhbGxpbmcgRW1hY3MKKworICBJZiB5b3Ugc2hvdWxkIG5lZWQgdG8gdW5p bnN0YWxsIEVtYWNzLCBzaW1wbHkgZGVsZXRlIGFsbCB0aGUgZmlsZXMKKyAgYW5kIHN1YmRp cmVjdG9yaWVzIGZyb20gdGhlIGRpcmVjdG9yeSB3aGVyZSBpdCB3YXMgdW5wYWNrZWQgKEVt YWNzCisgIGRvZXMgbm90IGluc3RhbGwgb3IgdXBkYXRlIGFueSBmaWxlcyBpbiBzeXN0ZW0g ZGlyZWN0b3JpZXMgb3IKKyAgYW55d2hlcmUgZWxzZSkuICBJZiB5b3UgcmFuIHRoZSBhZGRw bS5leGUgcHJvZ3JhbSB0byBjcmVhdGUgdGhlCisgIHJlZ2lzdHJ5IGVudHJpZXMgYW5kIHRo ZSBTdGFydCBtZW51IGljb24sIHRoZW4geW91IGNhbiByZW1vdmUgdGhlCisgIHJlZ2lzdHJ5 IGVudHJpZXMgdXNpbmcgcmVnZWRpdC4gIEFsbCBvZiB0aGUgc2V0dGluZ3MgYXJlIHdyaXR0 ZW4KKyAgdW5kZXIgdGhlIFNvZnR3YXJlXEdOVVxFbWFjcyBrZXkgaW4gSEtFWV9MT0NBTF9N QUNISU5FLCBvciBpZiB5b3UKKyAgZGlkbid0IGhhdmUgYWRtaW5pc3RyYXRvciBwcml2aWxl Z2VzIHdoZW4geW91IGluc3RhbGxlZCwgdGhlIHNhbWUKKyAga2V5IGluIEhLRVlfQ1VSUkVO VF9VU0VSLiAgSnVzdCBkZWxldGUgdGhlIHdob2xlIFNvZnR3YXJlXEdOVVxFbWFjcworICBr ZXkuCisKKyAgVGhlIFN0YXJ0IG1lbnUgZW50cnkgY2FuIGJlIHJlbW92ZWQgYnkgcmlnaHQt Y2xpY2tpbmcgb24gdGhlIFRhc2sgYmFyCisgIGFuZCBzZWxlY3RpbmcgUHJvcGVydGllcywg dGhlbiB1c2luZyB0aGUgUmVtb3ZlIG9wdGlvbiBvbiB0aGUgU3RhcnQKKyAgTWVudSBQcm9n cmFtcyBwYWdlLiAgKElmIHlvdSBpbnN0YWxsZWQgdW5kZXIgYW4gYWNjb3VudCB3aXRoCisg IGFkbWluaXN0cmF0b3IgcHJpdmlsZWdlcywgdGhlbiB5b3UgbmVlZCB0byBjbGljayB0aGUg QWR2YW5jZWQgYnV0dG9uCisgIGFuZCBsb29rIGZvciB0aGUgR251IEVtYWNzIG1lbnUgaXRl bSB1bmRlciBBbGwgVXNlcnMuKQorCisqIFRyb3VibGVzaG9vdGluZworCisgIFVucGFja2lu ZyB0aGUgZGlzdHJpYnV0aW9ucworCisgIElmIHlvdSBlbmNvdW50ZXIgdHJvdWJsZSB0cnlp bmcgdG8gcnVuIEVtYWNzLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YKKyAgcG9zc2libGUgY2F1 c2VzLiAgQ2hlY2sgdGhlIGZvbGxvd2luZyBmb3IgaW5kaWNhdGlvbnMgdGhhdCB0aGUKKyAg ZGlzdHJpYnV0aW9uIHdhcyBub3QgY29ycnVwdGVkIGJ5IHRoZSB0b29scyB1c2VkIHRvIHVu cGFjayBpdDoKKworICAgICogQmUgc3VyZSB0byBkaXNhYmxlIENSL0xGIHRyYW5zbGF0aW9u IG9yIHRoZSBleGVjdXRhYmxlcyB3aWxsCisgICAgICBiZSB1bnVzYWJsZS4gIE9sZGVyIHZl cnNpb25zIG9mIFdpblppcE5UIHdvdWxkIGVuYWJsZSB0aGlzCisgICAgICB0cmFuc2xhdGlv biBieSBkZWZhdWx0LiAgSWYgeW91IGFyZSB1c2luZyBXaW5aaXBOVCwgZGlzYWJsZSBpdC4K KyAgICAgIChJIGRvbid0IGhhdmUgV2luWmlwTlQgbXlzZWxmLCBhbmQgSSBkbyBub3Qga25v dyB0aGUgc3BlY2lmaWMKKyAgICAgIGNvbW1hbmRzIG5lY2Vzc2FyeSB0byBkaXNhYmxlIGl0 LikKKworICAgICogQ2hlY2sgdGhhdCBmaWxlbmFtZXMgd2VyZSBub3QgdHJ1bmNhdGVkIHRv IDguMy4gIEZvciBleGFtcGxlLAorICAgICAgdGhlcmUgc2hvdWxkIGJlIGEgZmlsZSBsaXNw XGFiYnJldmxpc3QuZWxjOyBpZiB0aGlzIGhhcyBiZWVuCisgICAgICB0cnVuY2F0ZWQgdG8g YWJicmV2bGkuZWxjLCB5b3VyIGRpc3RyaWJ1dGlvbiBoYXMgYmVlbiBjb3JydXB0ZWQKKyAg ICAgIHdoaWxlIHVucGFja2luZyBhbmQgRW1hY3Mgd2lsbCBub3Qgc3RhcnQuCisKKyAgSWYg eW91IGJlbGlldmUgeW91IGhhdmUgdW5wYWNrZWQgdGhlIGRpc3RyaWJ1dGlvbnMgY29ycmVj dGx5IGFuZCBhcmUKKyAgc3RpbGwgZW5jb3VudGVyaW5nIHByb2JsZW1zLCBzZWUgdGhlIHNl Y3Rpb24gb24gRnVydGhlciBJbmZvcm1hdGlvbgorICBiZWxvdy4KKworICBWaXJ1cyBzY2Fu bmVycworCisgIFNvbWUgdmlydXMgc2Nhbm5lcnMgaW50ZXJmZXJlIHdpdGggRW1hY3MnIHVz ZSBvZiBzdWJwcm9jZXNzZXMuICBJZiB5b3UKKyAgYXJlIHVuYWJsZSB0byB1c2Ugc3VicHJv Y2Vzc2VzIGFuZCB5b3UgdXNlIERyLiBTb2xvbW9uJ3MgV2luR3VhcmQgb3IKKyAgTWNBZmVl J3MgVnNoaWVsZCwgdHVybiBvZmYgIlNjYW4gYWxsIGZpbGVzIiAoV2luR3VhcmQpIG9yICJi b290IHNlY3RvcgorICBzY2FubmluZyIgKE1jQWZlZSBleGNsdXNpb24gcHJvcGVydGllcyku CisKKyogRnVydGhlciBpbmZvcm1hdGlvbgorCisgIElmIHlvdSBoYXZlIGFjY2VzcyB0byB0 aGUgV29ybGQgV2lkZSBXZWIsIEkgd291bGQgcmVjb21tZW5kIHBvaW50aW5nCisgIHlvdXIg ZmF2b3JpdGUgd2ViIGJyb3dzZXIgdG8gdGhlIGZvbGxvd2luZyBkb2N1bWVudCAoaWYgeW91 IGhhdmVuJ3QKKyAgYWxyZWFkeSk6CisKKwlodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv ZW1hY3Mvd2luZG93cy8KKworICBUaGlzIGRvY3VtZW50IHNlcnZlcyBhcyBhbiBGQVEgYW5k IGEgc291cmNlIGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uCisgIGFib3V0IHRoZSBXaW5kb3dz IHBvcnQgYW5kIHJlbGF0ZWQgc29mdHdhcmUgcGFja2FnZXMuCisKKyAgSW4gYWRkaXRpb24g dG8gdGhlIEZBUSwgdGhlcmUgaXMgYSBtYWlsaW5nIGxpc3QgZm9yIGRpc2N1c3NpbmcgaXNz dWVzCisgIHJlbGF0ZWQgdG8gdGhlIFdpbmRvd3MgcG9ydCBvZiBFbWFjcy4gIEZvciBpbmZv cm1hdGlvbiBhYm91dCB0aGUKKyAgbGlzdCwgc2VlIHRoaXMgV2ViIHBhZ2U6CisKKwlodHRw Oi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2hlbHAtZW1hY3Mtd2luZG93cwor CisgIFRvIGFzayBxdWVzdGlvbnMgb24gdGhlIG1haWxpbmcgbGlzdCwgc2VuZCBlbWFpbCB0 bworICBoZWxwLWVtYWNzLXdpbmRvd3NAZ251Lm9yZy4gIChZb3UgZG9uJ3QgbmVlZCB0byBz dWJzY3JpYmUgZm9yIHRoYXQuKQorICBUbyBzdWJzY3JpYmUgdG8gdGhlIGxpc3Qgb3IgdW5z dWJzY3JpYmUgZnJvbSBpdCwgZmlsbCB0aGUgZm9ybSB5b3UKKyAgZmluZCBhdCBodHRwOi8v bGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2hlbHAtZW1hY3Mtd2luZG93cyBhcwor ICBleHBsYWluZWQgdGhlcmUuCisKKyAgQW5vdGhlciB2YWx1YWJsZSBzb3VyY2Ugb2YgaW5m b3JtYXRpb24gYW5kIGhlbHAgd2hpY2ggc2hvdWxkIG5vdCBiZQorICBvdmVybG9va2VkIGlz IHRoZSB2YXJpb3VzIFVzZW5ldCBuZXdzIGdyb3VwcyBkZWRpY2F0ZWQgdG8gRW1hY3MuCisg IFRoZXNlIGFyZSBwYXJ0aWN1bGFybHkgZ29vZCBmb3IgaGVscCB3aXRoIGdlbmVyYWwgaXNz dWVzIHdoaWNoIGFyZW4ndAorICBzcGVjaWZpYyB0byB0aGUgV2luZG93cyBwb3J0IG9mIEVt YWNzLiAgVGhlIG1haW4gbmV3cyBncm91cHMgdG8gdXNlCisgIGZvciBzZWVraW5nIGhlbHAg YXJlOgorCisJZ251LmVtYWNzLmhlbHAKKwljb21wLmVtYWNzCisKKyAgVGhlcmUgYXJlIGFs c28gZmFpcmx5IHJlZ3VsYXIgcG9zdGluZ3MgYW5kIGFubm91bmNlbWVudHMgb2YgbmV3IG9y CisgIHVwZGF0ZWQgRW1hY3MgcGFja2FnZXMgb24gdGhpcyBncm91cDoKKworCWdudS5lbWFj cy5zb3VyY2VzCisKKyogUmVwb3J0aW5nIGJ1Z3MKKworICBJZiB5b3UgZW5jb3VudGVyIGEg YnVnIGluIHRoaXMgcG9ydCBvZiBFbWFjcywgd2Ugd291bGQgbGlrZSB0byBoZWFyCisgIGFi b3V0IGl0LiAgRmlyc3QgY2hlY2sgdGhlIEZBUSBvbiB0aGUgd2ViIHBhZ2UgYWJvdmUgdG8g c2VlIGlmIHRoZSBidWcKKyAgaXMgYWxyZWFkeSBrbm93biBhbmQgaWYgdGhlcmUgYXJlIGFu eSB3b3JrYXJvdW5kcy4gIFRoZW4gY2hlY2sgd2hldGhlcgorICB0aGUgYnVnIGhhcyBzb21l dGhpbmcgdG8gZG8gd2l0aCBjb2RlIGluIHlvdXIgLmVtYWNzIGZpbGUsIGUuZy4gYnkKKyAg aW52b2tpbmcgRW1hY3Mgd2l0aCB0aGUgIi1RIiBvcHRpb24uCisKKyAgSWYgeW91IGRlY2lk ZSB0aGF0IGl0IGlzIGEgYnVnIGluIEVtYWNzLCB1c2UgdGhlIGJ1aWx0IGluIGJ1ZworICBy ZXBvcnRpbmcgZmFjaWxpdHkgdG8gcmVwb3J0IGl0IChmcm9tIHRoZSBtZW51OyBIZWxwIC0+ IFNlbmQgQnVnIFJlcG9ydCkuCisgIElmIHlvdSBoYXZlIG5vdCB5ZXQgY29uZmlndXJlZCBF bWFjcyBmb3IgbWFpbCwgdGhlbiB3aGVuIHlvdSBwcmVzcworICBDLWMgQy1jIHRvIHNlbmQg dGhlIHJlcG9ydCwgaXQgd2lsbCBhc2sgeW91IHRvIHBhc3RlIHRoZSB0ZXh0IG9mIHRoZQor ICByZXBvcnQgaW50byB5b3VyIG1haWwgY2xpZW50LiAgSWYgdGhlIGJ1ZyBpcyByZWxhdGVk IHRvIHN1YnByb2Nlc3NlcywKKyAgYWxzbyBzcGVjaWZ5IHdoaWNoIHNoZWxsIHlvdSBhcmUg dXNpbmcgKGUuZy4sIGluY2x1ZGUgdGhlIHZhbHVlcyBvZgorICBgc2hlbGwtZmlsZS1uYW1l JyBhbmQgYGV4cGxpY2l0LXNoZWxsLWZpbGUtbmFtZScgaW4geW91ciBtZXNzYWdlKS4KKwor ICBFbmpveSEKKworDAorVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgorCitHTlUg RW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQoraXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKK3RoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorCitHTlUgRW1hY3MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKK2J1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCitNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCitHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCitZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCgo9PT0gbW9kaWZpZWQgZmlsZSAnbnQvY29uZmlndXJlLmJhdCcK LS0tIG50L2NvbmZpZ3VyZS5iYXQJMjAxMC0wMS0xMyAwODozNToxMCArMDAwMAorKysgbnQv Y29uZmlndXJlLmJhdAkyMDEwLTA0LTA2IDAyOjE2OjQxICswMDAwCkBAIC04OSw2ICs4OSw4 IEBACiBzZXQgZG9sZGZsYWdzPQ0KIHNldCBzZXAxPQ0KIHNldCBzZXAyPQ0KK3NldCBzZXAz PQ0KK3NldCBkaXN0ZmlsZXM9DQogDQogcmVtIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiByZW0gICBI YW5kbGUgYXJndW1lbnRzLg0KQEAgLTExMCw2ICsxMTIsNyBAQAogaWYgIiUxIiA9PSAiLS13 aXRob3V0LXRpZmYiIGdvdG8gd2l0aG91dHRpZmYNCiBpZiAiJTEiID09ICItLXdpdGhvdXQt eHBtIiBnb3RvIHdpdGhvdXR4cG0NCiBpZiAiJTEiID09ICItLXdpdGgtc3ZnIiBnb3RvIHdp dGhzdmcNCitpZiAiJTEiID09ICItLWRpc3RmaWxlcyIgZ290byBkaXN0ZmlsZXMNCiBpZiAi JTEiID09ICIiIGdvdG8gY2hlY2t1dGlscw0KIDp1c2FnZQ0KIGVjaG8gVXNhZ2U6IGNvbmZp Z3VyZSBbb3B0aW9uc10NCkBAIC0xMjksNiArMTMyLDcgQEAKIGVjaG8uICAgLS13aXRob3V0 LXRpZmYgICAgICAgICAgZG8gbm90IHVzZSBUSUZGIGxpYnJhcnkgZXZlbiBpZiBpdCBpcyBp bnN0YWxsZWQNCiBlY2hvLiAgIC0td2l0aG91dC14cG0gICAgICAgICAgIGRvIG5vdCB1c2Ug WFBNIGxpYnJhcnkgZXZlbiBpZiBpdCBpcyBpbnN0YWxsZWQNCiBlY2hvLiAgIC0td2l0aC1z dmcgICAgICAgICAgICAgIHVzZSB0aGUgUlNWRyBsaWJyYXJ5IChleHBlcmltZW50YWwpDQor ZWNoby4gICAtLWRpc3RmaWxlcyAgICAgICAgICAgICBwYXRoIHRvIGZpbGVzIGZvciBtYWtl IGRpc3QsIGUuZy4gbGliWHBtLmRsbA0KIGdvdG8gZW5kDQogcmVtIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCiA6c2V0cHJlZml4DQpAQCAtMjI2LDYgKzIzMCwxNiBAQAogZ290byBhZ2Fpbg0KIA0K IHJlbSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorDQorOmRpc3RmaWxlcw0KK3NldCBIQVZFX0RJU1RG SUxFUz0xDQorc2hpZnQNCitzZXQgZGlzdGZpbGVzPSVkaXN0ZmlsZXMlJXNlcDMlJTENCitz ZXQgc2VwMz0gJW5vdGhpbmclDQorc2hpZnQNCitnb3RvIGFnYWluDQorDQorcmVtIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCiByZW0gICAgQ2hlY2sgdGhhdCBuZWNlc3NhcnkgdXRpbGl0aWVzIChj cCBhbmQgcm0pIGFyZSBwcmVzZW50Lg0KIDpjaGVja3V0aWxzDQogZWNobyBDaGVja2luZyBm b3IgJ2NwJy4uLg0KQEAgLTUxMyw2ICs1MjcsMzUgQEAKIDpzdmdEb25lDQogcm0gLWYganVu ay5jIGp1bmsub2JqIGp1bmsuZXJyIGp1bmsub3V0DQogDQorcmVtIEFueSBkaXN0ZmlsZXMg cHJvdmlkZWQgZm9yIGJ1aWxkaW5nIGRpc3RyaWJ1dGlvbj8gSWYgbm8sIHdlJ3JlIGRvbmUu DQoraWYgIiglSEFWRV9ESVNURklMRVMlKSI9PSIoKSIgZ290byA6ZGlzdEZpbGVzRG9uZQ0K Kw0KK3JlbSBBbnkgYXJndW1lbnRzIHRvIC0tZGlzdGZpbGVzIHNwZWNpZmllZD8gSWYgbm8s IHdlJ3JlIGRvbmUuDQoraWYgbm90ICIlZGlzdGZpbGVzJSI9PSIiIGdvdG8gOmNoZWNrRGlz dEZpbGVzDQorc2V0IGRpc3RGaWxlc09rPTANCitlY2hvIE5vIGFyZ3VtZW50cyBzcGVjaWZp ZWQgZm9yIG9wdGlvbiAtLWRpc3RmaWxlcyENCitnb3RvIGRpc3RmaWxlc0RvbmUNCisNCis6 Y2hlY2tEaXN0RmlsZXMNCitlY2hvIENoZWNraW5nIGZvciBkaXN0ZmlsZXMuLi4NCityZW0g Q2hlY2sgaWYgYWxsIHNwZWNpZmllZCBkaXN0ZmlsZXMgZXhpc3QNCitzZXQgZmlsZU5vdEZv dW5kPQ0KK2ZvciAlJWQgaW4gKCVkaXN0ZmlsZXMlKSBkbyBpZiBub3QgZXhpc3QgJSVkIHNl dCBmaWxlTm90Rm91bmQ9JSVkDQoraWYgbm90ICIlZmlsZU5vdEZvdW5kJSI9PSIiIGdvdG8g ZGlzdEZpbGVzTm90Rm91bmQNCisNCitzZXQgZGlzdEZpbGVzT0s9MQ0KK2VjaG8gLi4uYWxs IGRpc3RmaWxlcyBmb3VuZC4NCitnb3RvIDpkaXN0RmlsZXNEb25lDQorDQorOmRpc3RGaWxl c05vdEZvdW5kDQorc2V0IGRpc3RGaWxlc09rPTANCitlY2hvIC4uLiVmaWxlTm90Rm91bmQl IG5vdCBmb3VuZC4NCitzZXQgZGlzdGZpbGVzPQ0KK2dvdG8gOmRpc3RmaWxlc0RvbmUNCisN Cis6ZGlzdEZpbGVzRG9uZQ0KK3NldCBmaWxlTm90Rm91bmQ9DQorDQogcmVtIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCiA6Z2VubWFrZWZpbGVzDQogZWNobyBHZW5lcmF0aW5nIG1ha2VmaWxlcw0K QEAgLTUzMiw2ICs1NzUsNyBAQAogaWYgKCVwcm9maWxlJSkgPT0gKFkpIGVjaG8gUFJPRklM RT0xID4+Y29uZmlnLnNldHRpbmdzDQogaWYgKCVub2N5Z3dpbiUpID09IChZKSBlY2hvIE5P Q1lHV0lOPTEgPj5jb25maWcuc2V0dGluZ3MNCiBpZiBub3QgIiglcHJlZml4JSkiID09ICIo KSIgZWNobyBJTlNUQUxMX0RJUj0lcHJlZml4JT4+Y29uZmlnLnNldHRpbmdzDQoraWYgbm90 ICIoJWRpc3RmaWxlcyUpIiA9PSAiKCkiIGVjaG8gRElTVF9GSUxFUz0lZGlzdGZpbGVzJT4+ Y29uZmlnLnNldHRpbmdzDQogcmVtIFdlIGdvIHRocnUgZG9jZmxhZ3MgYmVjYXVzZSB1c2Vy Y2ZsYWdzIGNvdWxkIGJlICItREZPTz1iYXIiIC1zb21ldGhpbmcNCiByZW0gYW5kIHRoZSBp ZiBjb21tYW5kIGNhbm5vdCBjb3BlIHdpdGggdGhpcw0KIGZvciAlJXYgaW4gKCV1c2VyY2Zs YWdzJSkgZG8gaWYgbm90ICglJXYpPT0oKSBzZXQgZG9jZmxhZ3M9WQ0KQEAgLTYzMywxMiAr Njc3LDE5IEBACiAgZWNobyAgIEluc3RhbGwgbGlidGlmZiBkZXZlbG9wbWVudCBmaWxlcyBv ciB1c2UgLS13aXRob3V0LXRpZmYNCiANCiA6Y2hlY2tnaWYNCi1pZiBub3QgIiglSEFWRV9H SUYlKSIgPT0gIigpIiBnb3RvIGRvbmVsaWJjaGVja3MNCi1pZiAoJWdpZnN1cHBvcnQlKSA9 PSAoTikgZ290byBkb25lbGliY2hlY2tzDQoraWYgbm90ICIoJUhBVkVfR0lGJSkiID09ICIo KSIgZ290byBjaGVja2Rpc3RmaWxlcw0KK2lmICglZ2lmc3VwcG9ydCUpID09IChOKSBnb3Rv IGNoZWNrZGlzdGZpbGVzDQogIHNldCBsaWJzT0s9MA0KICBlY2hvIEdJRiBzdXBwb3J0IGlz IG1pc3NpbmcuDQogIGVjaG8gICBJbnN0YWxsIGdpZmxpYiBvciBsaWJ1bmdpZiBkZXZlbG9w bWVudCBmaWxlcyBvciB1c2UgLS13aXRob3V0LWdpZg0KIA0KKzpjaGVja2Rpc3RmaWxlcw0K K2lmICIoJUhBVkVfRElTVEZJTEVTJSkiID09ICIoKSIgZ290byBkb25lbGliY2hlY2tzDQor aWYgKCVkaXN0RmlsZXNPayUpID09ICgxKSBnb3RvIGRvbmVsaWJjaGVja3MNCitlY2hvLg0K K2VjaG8gRmlsZXMgc3BlY2lmaWVkIHdpdGggb3B0aW9uIC0tZGlzdGZpbGVzIGNvdWxkIG5v dCBiZSBmb3VuZC4NCitlY2hvICAgRml4IHRoZXNlIGlzc3VlcyBiZWZvcmUgcnVubmluZyBt YWtlIGRpc3QNCisNCiA6ZG9uZWxpYmNoZWNrcw0KIGlmICglbGlic09LJSkgPT0gKDEpIGdv dG8gc3VjY2Vzcw0KIGVjaG8uDQpAQCAtNjcwLDYgKzcyMSw5IEBACiBzZXQgZG9sZGZsYWdz PQ0KIHNldCBtaW5nd2ZsYWc9DQogc2V0IG1mPQ0KK3NldCBkaXN0ZmlsZXM9DQorc2V0IEhB VkVfRElTVEZJTEVTPQ0KK3NldCBkaXN0RmlsZXNPaz0NCiANCiBnb3RvIHNraXBBcmNoVGFn DQogICAgYXJjaC10YWc6IDMwMGQyMGE0LTE2NzUtNGU3NS1iNjE1LTdjZTFhOGM1Mzc2Yw0K Cj09PSBtb2RpZmllZCBmaWxlICdudC9tYWtlZmlsZS53MzItaW4nCi0tLSBudC9tYWtlZmls ZS53MzItaW4JMjAxMC0wMS0xMyAwODozNToxMCArMDAwMAorKysgbnQvbWFrZWZpbGUudzMy LWluCTIwMTAtMDQtMDYgMDI6MTY6NDEgKzAwMDAKQEAgLTIzLDYgKzIzLDggQEAKICMgRklY TUU6IFRoaXMgZmlsZSB1c2VzIERPUyBFT0xzLiAgQ29udmVydCB0byBVbml4IGFmdGVyIDIy LjEgaXMgb3V0DQogIyAgICAgICAgKGFuZCByZW1vdmUgb3IgcmVwbGFjZSB0aGlzIGNvbW1l bnQpLg0KIA0KK1ZFUlNJT04JCT0gMjQuMC41MA0KKw0KIFRSRVMJCT0gJChCTEQpL2VtYWNz LnJlcw0KIENMSUVOVFJFUwk9ICQoQkxEKS9lbWFjc2NsaWVudC5yZXMNCiANCkBAIC0xOTcs MTIgKzE5OSwxNSBAQAogIw0KICMgQnVpbGQgYW5kIGluc3RhbGwgZW1hY3MgaW4gSU5TVEFM TF9ESVINCiAjDQotaW5zdGFsbDogYWxsICQoSU5TVEFMTF9ESVIpL2JpbiBpbnN0YWxsLW90 aGVyLWRpcnMtJChNQUtFVFlQRSkNCisuUEhPTlk6IGluc3RhbGwtYmluIGluc3RhbGwtc2hv cnRjdXRzDQorDQoraW5zdGFsbDogaW5zdGFsbC1iaW4gaW5zdGFsbC1zaG9ydGN1dHMNCisN CitpbnN0YWxsLWJpbjogYWxsICQoSU5TVEFMTF9ESVIpL2JpbiBpbnN0YWxsLW90aGVyLWRp cnMtJChNQUtFVFlQRSkNCiAJLSAkKENQKSAkKEJMRCkvYWRkcG0uZXhlICQoSU5TVEFMTF9E SVIpL2Jpbg0KIAktICQoQ1ApICQoQkxEKS9kZGVjbGllbnQuZXhlICQoSU5TVEFMTF9ESVIp L2Jpbg0KIAktICQoQ1ApICQoQkxEKS9jbWRwcm94eS5leGUgJChJTlNUQUxMX0RJUikvYmlu DQogCS0gJChDUCkgJChCTEQpL3J1bmVtYWNzLmV4ZSAkKElOU1RBTExfRElSKS9iaW4NCi0J LSAiJChJTlNUQUxMX0RJUikvYmluL2FkZHBtIiAtcQ0KIAktICQoREVMKSAuLi9zYW1lLWRp ci50c3QNCiAJLSAkKERFTCkgJChJTlNUQUxMX0RJUikvc2FtZS1kaXIudHN0DQogCWVjaG8g U2FtZURpclRlc3QgPiAiJChJTlNUQUxMX0RJUikvc2FtZS1kaXIudHN0Ig0KQEAgLTIzOCw2 ICsyNDMsMTQgQEAKIAkkKE1BS0UpICQoTUZMQUdTKSAkKFhNRkxBR1MpIC1DIC4uL2xpc3Ag aW5zdGFsbA0KIAkkKE1BS0UpICQoTUZMQUdTKSAkKFhNRkxBR1MpIC1DIC4uL2xlaW0gaW5z dGFsbA0KIA0KK2luc3RhbGwtc2hvcnRjdXRzOg0KKwkiJChJTlNUQUxMX0RJUikvYmluL2Fk ZHBtIiAtcQ0KKw0KK2Rpc3Q6IGluZm8gaW5zdGFsbC1iaW4gDQorCSQoQ1ApICQoRElTVF9G SUxFUykgJChJTlNUQUxMX0RJUikvYmluDQorCSQoQ1ApIFJFQURNRS5XMzIgJChJTlNUQUxM X0RJUikNCisJJChDT01TUEVDKSQoQ29tU3BlYykgL2MgJChBUkdRVU9URSl6aXBkaXN0LmJh dCAkKElOU1RBTExfRElSKSAkKFZFUlNJT04pJChBUkdRVU9URSkNCisNCiBmb3JjZS1pbmZv Og0KICMgTm90ZSB0aGF0IGRvYy9lbWFjcy9tYWtlZmlsZSBrbm93cyBob3cgdG8NCiAjIHB1 dCB0aGUgaW5mbyBmaWxlcyBpbiAkKGluZm9kaXIpLA0KCj09PSBhZGRlZCBmaWxlICdudC96 aXBkaXN0LmJhdCcKLS0tIG50L3ppcGRpc3QuYmF0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAw MDAKKysrIG50L3ppcGRpc3QuYmF0CTIwMTAtMDQtMDEgMDE6NDA6NTggKzAwMDAKQEAgLTAs MCArMSw2NiBAQAorQGVjaG8gb2ZmDQorcmVtIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwg MjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMA0KK3JlbSAg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KKw0KK3JlbSBBdXRob3I6IENocmlz dG9waCBTY2hvbHRlcyBjc2Nob2wyMTEyIGF0IGdtYWlsLmNvbQ0KKw0KK3JlbSBUaGlzIGZp bGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuDQorDQorcmVtIEdOVSBFbWFjcyBpcyBmcmVlIHNv ZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQorcmVtIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5DQorcmVtIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yDQorcmVtIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uDQorDQorcmVtIEdOVSBFbWFjcyBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KK3JlbSBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KK3Jl bSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlDQorcmVtIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuDQorDQorcmVtIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQorcmVtIGFsb25nIHdpdGggR05VIEVtYWNz LiAgSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy4NCisNCitTRVRM T0NBTA0KK3JlbSBhcmcgMTogZnVsbCBwYXRoIHRvIEVtYWNzIHJvb3QgZGlyZWN0b3J5DQor c2V0IEFSR19QQVRIPSIlfmYxIg0KK3JlbSBQYXRoIHNlcGFyYXRvciBjYW5ub3QgYmUgcGFy c2VkIGNvcnJlY3RseSwgc3Vic3RpdHV0ZQ0KK3NldCBBUkdfUEFUSD0lQVJHX1BBVEg6XD07 JQ0KKw0KK3JlbSBhcmcgMjogRW1hY3MgdmVyc2lvbiBudW1iZXINCitzZXQgRU1BQ1NfVkVS PSUyDQorDQorcmVtIFBhcnNlIG91dCBsYXN0IGRpcmVjdG9yeSBmcm9tIHBhc3NlZCBpbiBm dWxsIHBhdGggKGFyZyAxKQ0KK2ZvciAvZiAidG9rZW5zPSogZGVsaW1zPTsiICUlRyBpbiAo JUFSR19QQVRIJSkgZG8gY2FsbCA6UEFSU0VfUEFUSCAlJUcNCitnb3RvIDpFWElUDQorDQor OlBBUlNFX1BBVEgNCitpZiAiJTEiPT0iIiAoDQorICBnb3RvIDpaSVBfQ0hFQ0sNCispDQor c2V0IFJPT1RfRElSPSUxDQorU0hJRlQNCitnb3RvIDpQQVJTRV9QQVRIDQorDQorcmVtIENo ZWNrLCBpZiA3emlwIGlzIGluc3RhbGxlZCBhbmQgYXZhaWxhYmxlIG9uIHBhdGgNCis6WklQ X0NIRUNLDQorN3oNCitpZiAlRVJST1JMRVZFTCUgTkVRIDAgZ290byA6WklQX0VSUk9SDQor Z290byBaSVBfRElTVA0KKw0KKzpaSVBfRVJST1INCitlY2hvLg0KK2VjaG8gRVJST1I6IE1h a2Ugc3VyZSA3emlwIGlzIGluc3RhbGxlZCBhbmQgYXZhaWxhYmxlIG9uIHRoZSBXaW5kb3dz IFBhdGghDQorZ290byBFWElUDQorDQorcmVtIEJ1aWxkIGRpc3RyaWJ1dGlvbnMNCis6WklQ X0RJU1QNCitwdXNoZCAuLlwuLg0KK3JlbSBCdWlsZCBhbmQgdmVyaWZ5IGZ1bGwgZGlzdHJp YnV0aW9uDQorN3ogYSAtYmQgLXRaSVAgLW14PTkgLXghLmJ6cmlnbm9yZSAteCEuZ2l0aWdu b3JlIC14ciFlbWFjcy5tZHAgLXhyISoucGRiIC14ciEqLm9wdCAteHIhKn4gLXhyIUNWUyAt eHIhLmFyY2gtaW52ZW50b3J5IGVtYWNzLSVFTUFDU19WRVIlLWJpbi1pMzg2LnppcCAlUk9P VF9ESVIlL0JVR1MgJVJPT1RfRElSJS9DT1BZSU5HICVST09UX0RJUiUvUkVBRE1FICVST09U X0RJUiUvUkVBRE1FLlczMiAlUk9PVF9ESVIlL0lOU1RBTEwgJVJPT1RfRElSJS9iaW4gJVJP T1RfRElSJS9ldGMgJVJPT1RfRElSJS9pbmZvICVST09UX0RJUiUvbGlzcCAlUk9PVF9ESVIl L2xlaW0gJVJPT1RfRElSJS9zaXRlLWxpc3ANCis3eiB0IGVtYWNzLSVFTUFDU19WRVIlLWJp bi1pMzg2LnppcA0KK3JlbSBCdWlsZCBhbmQgdmVyaWZ5IGJpbmFyeSBvbmx5IGRpc3RyaWJ1 dGlvbg0KKzd6IGEgLWJkIC10WklQIC1teD05IGVtYWNzLSVFTUFDU19WRVIlLWJhcmViaW4t aTM4Ni56aXAgJVJPT1RfRElSJS9SRUFETUUuVzMyICVST09UX0RJUiUvYmluICVST09UX0RJ UiUvZXRjL0RPQy1YICVST09UX0RJUiUvQ09QWUlORw0KKzd6IHQgZW1hY3MtJUVNQUNTX1ZF UiUtYmFyZWJpbi1pMzg2LnppcA0KK3BvcGQNCitnb3RvIEVYSVQNCisNCis6RVhJVA0KCiMg QmVnaW4gYnVuZGxlCkl5QkNZWHBoWVhJZ2NtVjJhWE5wYjI0Z1luVnVaR3hsSUhZMENpTUtR bHBvT1RGQldTWlRXUmdLYXJNQUhMM2ZnRmcyZC8vLy8vLy8KLy83Ly8vL3hZRE5jK3g0N3Zk M2hQWmE4ZWViczNKUVJsb2JMYlREYVBlOXVIdzR6MTdYZ3dsN01lKzdzMkdvSkQyWXR2UjY4 cXE5agp6ejN6R3JPM1JYdHV5YklQZmUrOXI1bVB1UWQ3MnU4eno2cjV4eXhVMWZiN1B1ck9w dG9qZHQyM2NHNHpTVnRXYkRURlNVczBUU1ZzCldxOE51N3RWZHg3dVR4YUtydVplejRTaEFo b1JoQUVCa0FUS1lhbW1tS0hrbnFlazJvZXArcEcwZ2FhQktDRFFJSTFFOUpxaDVES1QKeW5x YUhxZXBqVUdFQXhBQURJWkJwb0NFQ0NNVlBURVpVOVE5SjZqeWg2ajFQU0dROVFhTkJvQURR QkpwUkNDYW1tRXlZcW42bjZhcAptcWZwcWVwcWFlcDdWUFViVEtaRFFOR21uNmpVR2dZRVVR UVFKaERLbVlTYlJvaGhORTJwa3dFMVBhVTJVOHA2Z0FNZ1NKQ1pBRUJEClFta3cwRlBJYXA3 VTFQSXlURWVwa1BTUFU5UUFEOVUyTW9CenBBczFqOFBqZ3dKQlpNam8vczR6d0VOUEIvMzFK anYrVW5SYndzQS8KNlorbjl0bURrMEZUeEdmSEhRek9hYmsxYTg1NHYwK3IxeW00Snk5eVZV Mmtta21WNU9NaGlEcFEvMjl0TStzTkRnYjZDL1EvN0pZZgoyRmc0LzBmbVVrc1ZqaldQaGp4 d25GSGZWU2NkR0lxb0ltamlmcjFEMWc4YjZCdy81Vmw4dmRtZEdRY0pMVXcxRmNtM1NYWEgv Rlg2CmJKQWwwMlJ1WnpnZDE2SElVS25ES0xucVRVWlJONmo2NjNjYjcyZlQ2aXJ2K2pIVlM3 VlVsb2hybUk1OVBQL2h4bm90Z1JjelBKc3MKN3NPaHZ3S2duTGozTnY0cktxMkFiUG1XYzRv dE9JM2QrYUFMNXZLcUlQR0ZBWkFFYnlQSmRkZkF2dnZVVVBHQXhUdHdyWUhIYTJuZAo2dGR0 dStnVDVUZFR6T3FZUllwT1ZwekpQT3hZYXNtV0NOckV0YTFwb1ZTQXVodERHMmhtbWI2dm04 Wk1vcnk4R1VTRVpRT2pXcGFSCnVKUWNFMUxVTjBCcVJTTEhGcHRXYVBnNFZVZDRMdXhSc1ZC Y05kY2drRkpZWGE1WlFTTEhIWmhBMDNiQnF6Q2FzbFFPR0JUTHZ5VFIKRmlocUlvMEdvby81 NU9qWnVYWDV1SjQ3NzlSYkhYMFdWY3RMbFg1citxMmNCN1dabW9PWm9QRFBTN0paUDRLeDc2 MnFWU3RuUStQTwo0MmRqR04yVDEvaHNzRysvN01UeTNzSnN2c3F0akhSSm5qdm5EVmxzbko5 bnEyYkcwMVNld3htdExlOWtxZ01ocjFzaktkMjh3WDJYCjFYNDBXNU0xdHl5dGM4aHhvQ0hs bEZ3S1dydGNJZ1RrU1FHUUR1M0d4ZnA4ZElaVkpOUkt4WXBXcldvbHBLQ3FzdEtDb0NMenRp SXEKamJiUWxKZ0EyaEpzRzF5TkJqV3FNc3JVM2JudGFmaDdpUnlrRVk2RlRicHFoT3JaL2Z4 bnlmS0hXKzh1ZnExVzI1OGhudXF1VldJYwowaVdxRUdaZjFqUGcxenFka2I0Y2RUaFVFeUFs TEd4eFRldFVxdnRQRWxBMjNuODgvL0xYOTN5cG1LeDE0QUczbGwwRXZZa21nYlEyCmhzUWlM QWlxS0VGUkYrN3EvZEpKbjYveVlBdjQrdlA1TkJIREE3UzlKcnpORWtOcnllN0d5eXcrNmYz WTR0MWpGMWNVcFNjbkxhME8Ka1JRb1lzRFBFM3ROQ2NVWTdIMUFES0tjV210ZE5NTXJwWkxo WFdCZmlyS0tLbHRNRUsybWhjU3JTVkN3d1FLRG9wSVlaSlRSV2lUSgpoRlI2TVJNaFJ4c1dn cHRoTHhqZ1BkNWJ3UU1Mb2lsVk5LV2MrV0E4RlFNemdzRzJYVjFSZzF0REFGRkhKMlc3cUtp V3FvRHZKWmxFCk5MYlBibytSYjZ2ZGJ1bXkyaEs3R3lxUmRKTnlpWG9FK0JEU2ZwNXp2QTg1 eEV1VE9IU0t2eTF1M3ZRWnk3c25WVFZLbVRYSHNaNjAKS3Ayd0tLR2lwUHJYZm5qK2I4dE0z VzlDMlg1SWkwVGJ2Y3IvZkFPSDlPYnJqZjl2clZJckhmUE9GVWJPMm1kUmNlSmRpVlBlVzFx bApRR011NVhsNHpJb0VwY3pobUtuOFBqTXdNME1kQ256TWlBWkZIa01LWG1zUjVsMHZJQXZ0 ek1lSlRRTFp4RUtqYVc0Yk51MFNISVpiCklVTnNlb2hNQ3FpTVJQWEJHZXJLRDFZNUZFTkxS UUhKMDRhVXduUFVtL1NaR3ZMbDMrNXZsejNmMk1FNUkyeXl2S1BaT011LzhZdG8KSU9Ranpp SUdWelN6eWgzYTh2T0NaQzk1R3VQZEFtM2UxSGNmbHhmSzhHb2ZkMWNkWS90ODF2aXZ6NytT UjJYVWFhNjNCNk02M3E5aAphRGNiNUdnV24vRFlaL1NMVWtwVVZmZVBxdlE1NDNielV3cDJ6 bE9WSWxIMVIrN0xkNnV3MkZQcGN2OGFZejUwSkRJOGhtTGxXaFZnCmF3ZFFReWNMWmdseVNl U3FaQzQ3dmlqTTdBMmJuZlNNWTZWZWRVK1ppTHU1TFBPQjcraXd2c3UzWVRlTUpON1JjZmRX cjM3NW5mT3kKVlhwYllreXFVZk9MV1h1V0p5clYzYUhSOG03RzVMNGFPSnNqTFZiUHQwOEtp ejBvK2VsN2N6UkhxQXJjWDNwUUtHeE9hclZuZW12bgp5eXF6TjJpbUZhZFhUbzljeGlwK1BH MWZMSllYSEg0K3dlWHFZY3JqNjF0Vy96TWRPdXFMNTJuQkp5NXpVOGlYWFRDV2FldDNwRmZp CnRBNkhrY0kvRkFRZ1VpMnkyTXZncnU4ejd0WC9KOHZWaERYSEFHcml5eExSRHM3RndRcThK ckUrQk81QUZTSzlUS3dJM1pZeUZnRmkKcWVKaEk3RkdiQ1F6ZWk5cVZGdnBib0YrOXlIZVU5 cXJ2MVFhbGNLWnFLcFdRYTlWZysyemREZ3dLWVZPbk9sV2pwejFWOWRPNTNtbgpxWG43SkdT enowbU9zaEZib0VnY295NFFISEkxRUJ1Mi9GN3hzbkMwM0J2dG5xb1hwMllqWk5uR1FQTUgw Wmh5ZDV3MVdjUFFWODFDCkg2UVdkQ3RRNXVyZWQyRkhxL01pTXpuSmZUY3AyTVR0WjIzMHQ5 MVVvQ0l0SWZtTUNKdENwZkRHM0pkUThXV2l3cWRpcS9UVjNXQkUKS0M2UDFSNG1jOXVlZVNx QnRBWHJ6dHhMMjh6ZWdvSmp2NWE3ZTF2RUFDaFdZMTBQRmVCYmV3NElVRHBVa01mRUh1UGJr SUdIdzU1cQozSFpGaVVCS0tGZ1d5cUhFa0NndytRVHBhczhWQ3J4d3JNMWxkZlV0RmRDMExX TSszR0UxTUkwclMyN1lhdktYL1NPU003V3ZXWGY5ClhxN0gzeHpyeDRlWlQ1ZkxteFk0SlBK VWZaMTh3Q1RndGZURnlTWHUrSVFsaWIrdmY3azBuMWl1THJNSlM1VXo4WjZ4VEZpZGo0WngK WXA3S2twUTBVbHd3MjhLcVh2TGNFQkh2cG8ycWxkOGQxVUxUSEdlVjdKV1M0WFJ3S1ZKVDBa NEZjY1k5L3JtK2R6ZXhYUTlDM01BNQphQkhhNFVZdkU3b3VWM2hwZVZYVWc3Ylh4V291MWVS eTgvcXJVZTNTbCtKZlRLaW5pUS8xbXB2VFRnOXlOcUFCc00yT095QVFXOFdDCmhUWStUMlpp OVN3dXZKMG9EVHk0WWJMbUd6aWtyVmZNa2xaS1BTZVg5cXBiQjVMRjcwbGV0Nnhpbm1XenM5 TFlDaW1OYlBqVzlGbHQKdDJjYXBLMDJ0UnJac0pjcTNLODd5ZDk3akd6WWpkYWNuT3BMQ21E ME5xenhEUzdKWnlPandzNlQ2ZDhwYVBuWFI1WnRiUUhwc205YQpiUDc3VnVSOGRTNE82Rnp4 WWRiVXVraWNsMytCdThWa2ZTZERHTVdJNnlwR2o3UytoYVA1RTlqeUtHdkZrYW8yVVh5R3FR SkVHTi9ZCnpSTUhWMUFmcE4xUW9vSnNWbWUwM3RnOVJ6TGZVNng1Qmh4NVI4Yk82SGZlMld2 YWFkREdCekVXZE5Db1FwS0ZtcnN2bHp5L1ZGS0sKM0t3VzkyMlBzbHJ2N0c4Qjd4VHEwN1Bz OGM5RnZsKzczZHpwcXd2MisvM3VpZUFTN0dKb1pHRlpvRUpTUW1nNCt2bDJiZlF5TXZxWgpW WlYrNUtWQkwwQnY2N1RhZ281MWpuY3krbmlYNnNOT3JkVlRhK0ZPWGhUK1BPREtpS3A3Rk5x dUVBWFg3RGd6NTg1bnYzOUdpdWMwClFVa0JTU0tzRGhlY1J0SWV2MjJmMmV6Mi9aNWVucWU3 cWZEQTFaUGQ4MzdaWHY2L3dOZ3lhU3dPbkFpMXZ4a1o4UWRTYWhKSlpHN2cKNFdmb3VyQXd6 UkxRdzdNeHVQbzBTR0hRK2IybEE0d2hLckJEN2hFQi9aWUZXTVEvU2hQdVQ0K3ZoMVQzZW44 L3dyTjFUakw0SEFVSgowZm1iQ0I0WmpTOHNzNWh3Y0tDdnB2TlA3ZGwwK0RhNjI4TzNScU5J aHgrS1p0dnhWRVBBeHJzM1hONjk1VWVrN1QxSG1QU2VCMEgxCmx2MktUczFlM0tjRlVQY3Iz bEE1VzlIYkRzZk4zSXlGQitQSnZqTHJpdzVSVTZMdmJBWjUrTXNycTJZL1k5amhLczhlSkp4 N3EzWWUKdzNnaXhRYjBpbzVGVDBhemVRY0FIY0ZCTmFra3ErZ09kN2lnU2lsMkFTckFDZnVo UjZ6dWZNdDZxOTZOTmJ6YlBNWmVzc2JBa2lwcgo1L0tKeXpCNFc4VDUxNk15RWFpZEF6L0g0 RnU0bWt3MkVsMFBPMFlFVFdyb3B2RElPcERLelkzcTg2bGRmaGJEWUJBUWt0cGJwOTlSCjVU QlRObFk4dURiZUcyemc5bU1HWDArdGI1M3VDU1VZU284WGZ6L0QySkVTUDB2SU82aVFvczRm cVphVWIxa2h2T3F4bVBaMXRHaDkKNTlJTkc1RnlmbTY3OUk4WlRjZzhPS05CcUhIK3dVam40 Z0hKbTZUZHVOeXJ1M3hnNXorWHZkQ1BnYWtKcDZNQXdSVkZWQkZRVnVEZwpSUkFSSUd3ejlN M0lOZzl1T0N2NW9LdmFsU0xadDA5cFdQdE5vNTlxOGZMRldTZHlPT0pVbU1aUDhzZlJkQ1Ns c2NxaFVRZkVHUStJCkZ3QTNJbG90M1IvTWNtZnQ2aHhTd3J0dTdTU1hJZ3pNbHR0V2x0bHEw dDh4anFlQnY5L1Y3elA5Kys5V2hlSnNZT25uNTc3enlrNzYKbUN2UmFuTDE3eCtQbUVldm9l MmswTnU3N1NPU0VIc2F5SndUY3lRMlNvYmtVa1RGa25Na3FBZTNiSnZRK2t6WDEwRERET2tM cWdrSQpMd1Npd1FvcC9DVHhFRFlnVk5hRmlia0txNmtHUXNyTFZSa0lpSWc5MjI5eUxnbUNs eEdpMXBUWXRTcVdjU0JTUkhJNWk1MGxqQzZLCm1Vb3p0SkVTbUJhaEZpb2ZDWjV4SlpXdGkv Sld1bW1teFZUR0hPcGM3ZE5qQWdNRjJUc01EVjR6cWJYcFFVR0NST2hUS1FnTWxja0YKeGRz ZUU3ajZRWk16TjhiNTdHZ3R0VGx2djFRWmlOTEZrS0RZNzBqaWt0VDJpRHFQaXQ4QWxWTlpi OHBUYVVBODN5cHpKRmJvbEtBbgpLRXVuZzJleVFMQ3pnRzBxeENZeXUrWmtUbSszanBqcW5U dU5ocFIwS1YxVkpDT2xDd1VvQ3JCMC80MFFlZVlNQkhDK2sybDhqMENIClhsNlVPbkxIY2NC RXBYbWhWSFlHb1JOTkM2YVNzYW5kb2crQ0RaQjl2a01qMDQ1aGtudUxwOGtIRXU0eHJzYmNU MmI0NGViTG5qSnoKNE53eGlYUUIwUkVDWUY0SERVTGhCdkthczF2a0hRRjdhelFsaEVxa2N5 TVVaTXRlZ3p2dHZsVGE2UUN5dWUwUU5OYmMxTFZqYmdKUwpBMkUrbERvUXJjTnFOTDlKSTNn aVMwR2R3Y010RGJzUVM1eWtrWlR0Q2M4amZ3U1dva2NxTGRGOXhjVkdVc3UvWWxxcVp4ZjU4 YzhCCmFDRVUzQWlzWWx5M0t0UkdLUXFBRGk4M29qTXBuUXVOVHJKTXR2cGdhTUNSQWpZVjQ1 bWVQSWJZWUQyS3E1b3FQRU9STHlPRjdsamwKZVlva2xROTFBYnZUTVY0c3pveVF5SzFmRDBG QWVvMWdzeXlJZElpZUhoVEdDb0tzWG92SFZFbzRpSlkzUWFpSXo2QUNXQ0NxUnJXNwpWcWtH TW01RFZ3bXdRelNtU3Q1bS9YcDRNVlRPRVREN3NHVk1raGJsL0IzMnpDcU54MCttR1F1cThN ZzRkeXJ3cktxaDBvNVBpN3BUCjB3MkpFTXdROGVEYkhERlNtRjVRa0VudVV6MDhNc0x4dTNs RldzNTU0eHYwNENDVytDR0ZybGJWQ2kxOEs0amhhVFk3aUpjU08yeVEKalFRSUhmWTR1dXRQ a2t0VFUwb1VPWmlpL0dLTTZ0LyttakxJSzJWWkhzVEVjMHZFN1RaSlhmazIxVGtxdGFRNXRF UFloNUhVNUVYRworNWFXUmZnb2Z6U0pKWXBkeGVZNTBzcnNCbE1GUUh5NG5SdWNVREt2QWdr eC9aQXh1aVFyRWhoRVBWMHovNkdHYjZ3UGZxbGNJUlRJCm9nMEdJbVd1dU1zOGhDbjBQSVlr dkFMbGw4Y1BsRkxTTmp2b2VWTG91MTJGUVNRZEhJU1NWMVR6SElXMjVhZERyUkdkcnY1Wk51 MFMKTmF6RjlId0RjZ28yV0lydDA0dDBSNUlvZWhuZTVSTUdrMzF5UG94bzBjSGR5TkhEUWJN UjRoVXhBU0t5c0x2dkxjMmdnc1dOak16NApwY0toR3picUxaWVYraDluZTR6RFFXSzBLekpp azJIR2xXQ3FQR2UwZ0NkOWFvRUVGU2lTY2hLb3dsTEdCQVlsaWxKbXF5U041UkN2Ck9aZFFw aUlSdzhxQjB6MjlLbHRtTE91V2VreldkVng4dGJHOVhackV2Z0diYk5XZEZGNU5DQ0RUVWR2 ZWx6bmlnT0tURUlOOGQ5REoKT3VvSm5Nd1hnVnljd29ZRzZQTTVuTXJJOUVyTXZkc0RsVXlk akExYW9jRGtlTm9HSFFOd1ZBM1FFZ1VnSkVIQXFQVG5saXp6VXJOagpZdVZGS1pLM0lCVHNS TzFGeGNmQ0NCeDY3cHNCcG9lTlE3T3V6aHNJOFFydEtoNFJoeGRCVFV3UmxYeTNUSXNUNkpj aXU4NjFCYTQzCmEzbXltZ05WY2RWZGk4M25JdXgzM2JySFlMWm9iQnROb2JRMm0wVThjYkN3 dmttd1J3Y051cVI0R1RLWk5sTWxnczJlSlE2bWtpWWMKbmJ6VHlMRnBoYmd6UTdTNkVNbkoy a2NKYnVhbEtoWTU1ellyazdmSWo5MFJNQ0c2SW1sM0pNT21KYzZYdEJFcGh4SStQMnBhWDZq SApuSWx5M0hHSzhXYkZrazlmUUlSdkxTWEZMNXhDTkJ4Nm9uck1RY2lxM2hLbVZvUXBVVUha Mm9od1FWaG1CWU9EMXdnU1JEcmhwaFNLClVyRys5TEpYeW9Sdjc2T0tWMlY4b0phV0NrNG1R aEkxdnpQenRkZktaVFVpRVJkRkdCM28vVFRjU2s0SmttYW50MGE1VlN0MzI5b3YKRHEvQmRN NVBNZXUyYm5zM25xK2xEMVFOQ0NkYmwxT2JkSG5kS25FdWJ1TVdKRTlFK3UxelZEdjNzV04x R2ZtUjBhUkUrQWVxVFJDcApWTDhYMTMyanZ1RXF4S2M1U3FMU3pNRnB0anJPTlRMZXJUMlhN V3F1QVNtRVVYYVpiTU1GdUNHanlKOGJNRTY3QXJJaDdHT25PVGZlCkRWemVzTzhKc1FEMDVU SnUyU3FhbEo0c3ZjaTdFbXBqWmttZ3hVK3NrdEhqbEF1TEVlaExNanNRWUNBb1dKOW02bWhq c0QyTk9XK2gKdTFJNVBjRzlpNUxyVEZpM1JCQWdoZEtKK0QwVkR3UnQwbzlKTzJrcVlNYnY1 YXdrb3RjU1FLOWp5bWE5U0ZYVXp1SlhnOExjVlMwaAo1SnprczVydmNKMzhTTG1DODRSQjFT d3ZsTTVHc2RpaXI1RWxocmZjdFdGY0Exc2hPaTVXMDNZeGdhc3lvYTZUdGNhZGZpbytCZURZ CnE2RnVXa21FRGIwUUlKbWMxTG1ZM0pISm84bnNhR1J0Z1ltNzFnamJ6NW1KRW03TW40Z2pC QytBbGVoYm9uT1RieVNKWDEwemlsU2oKckVPVEx2UEFGSkNCQjhDN0NSSTZqMiszVlZ0RFhF RUdpY3hDU2lHbnNMV3EzTm05U0p5by9xaFNmRThsRHpoVHNVSFBCQmRRb1RieApPcHVrazBs MGpaWDBUUkY0SkV1VnFWNE9DWHB6bkEvWWs5V1dxUExHeHJaRTU5UkFYc09XWHZIMHVKczJn Tm9XR1Nrd3RDOTVrYUJaCm5KbDNVRDBUY0NGdVRxWHpOeFBPRy9kVmhIOFZOVE4rQjlwWVZn ZnlNNVhtUUdCQ1lodTZqeThpWmlldU1PMnRtUHEwUDE2SFFoRjcKeG9RMHFKMnRqTmk1Y0lu UXdHbEN5RnBxaFZ5UTFJVlFhSVNJRFFTUVdDS0lGZWtCYkJBMEduVDV1UjRtcURVQWJnZUhx L3crcjNaegpiMGJvS2ZtZmV6dWZSNm9IaEpXQXlNZUZXRER4Z3NWRVdJaVlJbUlNSU1qUFh6 TzU4M0tMenJLZmY3Q3YyN3dPWlQ2UUNEMU0vT2ZjCmUxRGZ1NDlnZ1B5TUkyRDF1dkJ3ZFFu OHo3Qis5WTg5Rlk1SEl1ZkUvb2ZhYnlwOVorUXVLZnhyM2tJY3V2dFRrb1JFTERBSkVCRUQK SDdIMzU5L0s4UnFSSC9ZMHg3Y0QvNHd1SzJHRlpvL011dFArTEZ2UU40YTZIU1FQellvQllv WnJvTzgzSFd0dkNjTStIaFAwNlM2ZApDNTNkQm4vdk1NcnVXRkF3ZUJ3SzJtanZBcVY5a3Jy Mk9SY2lpK1JvSFo3cmhDU29RUFY1Y1BWWE1Uck9jVWNCajV5aVFaR1JJYy9uCmZHOCtCTVhk OGZSc2VLc0JlYzdEOXVBb01Ebk1pQnlGbzhWak9yaW9nTVVDNTJaeDdCVFptQStBM2dicEQr Z3dRWm8rUUhtUWc4NGUKMHlQSVlBRm1rZGI0RzNoNnR3N0QxYzUyZ2U5d2t1cmwxWW9VMG9k Snk1UmZTbTNuWHF4MnhXQjhaNW9tRTNyTFVneFRTWDJMVU10QgpCQll0NmoxSWpVM2xxZFdL T281Z0dreURzR1NPc3pBTGpmZUdlQlRBT0ttYzAyMnV2dzhueUpmd1BEYTM0ZUVjQnJRMUZD UzVkaDczCjJsd1FYVUJnSjcvYmF0WXlKTm1iQjNWeUhEeUszcUh2RmlNUWxoSUpLdlNmbnA3 ZW9zQlhFZm94VGFQZlEyUDBKSmdacmdqZEFnczAKTDZsZFFKbVZQa2JKWkJrUk5DaDJRS0d4 NDhkdUpoWWF3QmtGTy9VTHpRclFBODJUdVAzUENTMzhXZ3hLQnlJaUExV1RIbDUxeFJzcwpi SGxRMEZHZ1BBWmdoOGtqTTlneG13NkVySmR4bEdWS3ZJamlzZnJPczdISmtYcE4zNVhIVng0 SWlkaUFyUE1RZ29FMnRMMUJYaW5ECllPOUNGbFdCUTFmUlFBTzg1NElQMmdXWVNJUSsvKzc3 ZnpLWWlCVS9FL0FvQVU5ZjhySDE0NG4xVmZJaDhUNHlIRlJTNktwOGlnaTkKVktQRWRWU1Vq SHpTczNGVnhGekZiRXlyOSsvSDNUUGthMTI3Tmp4NThsaFFzSXhVUjZHdEx6VWEzbUowNHMr RzM2bDN6RDFNUkpKSgpING1SUTUrWXlEOWpYekg1VDdXYUZ6dUtOKzNkNGpwMEs5T08zYTJt RUkycUI3Z3JFdzkrQlVSWDl4aEpPNlNlTWMvUTFBcDlzZ3VZCjlYWEV4TzZPeEtZRzIwayt4 a05NRVNiR0tOL29uWStORXR4aXFxaUJXUWZpVExWR2diOXNRaVdoZGZJUkw2N2tJZ0dDWXgx RG9yQk8KNGwvakJjaVlOb3VsQXUvVTl2Vks3dDA0Y2pMQVlNVEdoallZSldsVklTMWdzbWpi Zm8yb001OXVKNThMMGhnMjFhOXNCak9WZzJQZQo0ZDhJaUlXdXVaSGZOWlRjdzQyUlFZU0hL V25RV1NGeVE3dTN0NDFzRjRHSWdZeHdPbGdvSlNnZzN3Vm9nbEtYZzdCM3NCQVpod2xHCjdR K3lKb2lJMi81TVpMT3BTbmpaN3VURGxPbVVGUElVSEZ1Zkk2eXNvSkRWVjVTenNMQ2kwV3BR aXBJbE12ZjZQZW4wdVJqSkZUUWkKYm1PeDQ5bnFxSDJDbnhFUlo4T0t2NTgrb3lYQzZsWmhx WkU5Uy9oMWNUMG8zSUwybTBmdVlvWmttWEU3bUhwbkZRT0FvOGx4RXJ4TQpNVFp3ZzNrTkFw WWlxNElrU1BST1E1eE5CK0pvWUEyQzVNRFZPQkhlSHoxbWp2d0c3OERidFFxQjBsUGwyVGdG alUwUXJDZkJCVjlFCmtvQkJjVDdOQWlVRThlZ3Z2OCtTaVBDbytRaVkxWVJmYjV6b0tHMDNI SHRONVRpUDRqamtRb1oyd2NPU1BLYzV4VjFqNVVLK2ZLT28KSUJJTDk1ejFCSXlvaVRJanlU cDAwT3lSUlVuajNsTlZHTzNvVTByNkdKZlFuU2ZSdGlsMmJQUTdIMkVkWXlKUWNPcmlYSFpi bWQ0eQpoY2NpdXRPOXRReHdiUnp6N0hFYkUrazdhRVowdlNLRi9FcTE2ZERUTFUzbVVqWTc4 MW85bWcxa2dqbWw3elFodGJ6eUxCYjBnejNBCkVuZVE1cG5paE5lUHdsTUxoSXdFb0RFc1pa bVhIdGpLSXBHQS9IVjhZb3NJZGw5aUhsL2ExVE9YU1IrcEQ4S2Q2UWtsU0JleldFcHMKVG1R VXN3NUNWeE1SWWNwRW9NcEVvMkNXaFN4S1JLREtSTFFwWWxCTGYzUU5aekd0cWtKdTljT0hm bUF6ZFBBUFlHWWVid2Z0VG85eApwNmpINHRNeEVkRW9zcFlETEFXTlN6a3d3NExYYWdWbUdw VVpTK0xRSEZET0NpTVJHQU1TUHQzVXhxbXZFTG1BL044bURxTW5UZ2dWCjE5UmRXYzA3SGtS dFdhS1FvcFRtSldrVG5KbDNSSU5hQkUySStmdVp3bGpvUVRUSGFlam9RRG5XSi9RamM0UUxE Ym5YVXAzR0d0amUKZ1E5dmV0bzBXS3AzQU1IeVBxU3hNakZjVGEvbVdNVE9jWHVnQlR3OWlp TXpGN3l5K1poVTFHRlNzNG9hRktteFVpS3c3Mm5kSVhYMAo3WjhyN1Y2MENlNGZreDFyQnBR T3ROSnREOUVRUCsyY0pEeG5mTUw1TVlvSWZDWTJrd2o3MWIrTk5ZVTh4QVhpSXNheVZXQlBr OTQ0Ck9ZcDBBYitvRStkeURXUWpna1FvZk5ra1VPaXBpaHBlTnUzdUNvaWFuenB5MFJLOW4w eE4vb2Z4MUt5WFR3SXY0MjNpbk9JcTdtWWcKbmU1TE9KVmgrYUFreWdOSlVDVUFjYzRSVmw5 WjVPYmxrTnZDMEsxN0psb0VSU1dYZWRweXFXeTZhUkxYY29RckVhVkJoVVFWUlFtTgpjeExU QnM0VkZLYldGb1JsaVNxVEpiRHVhbGpNcmhMM1cybWIwK2VDQmNWbHBFZ1dPQTUxb0xCVTJs UUhMczc0R0p1cVJyWDRkbUpwCmJiM0hEcmtGTk1RdUZKVlhUclZieHA4RXdybHdObkVJdGwz RXUwNHR3aFlHWGpoQnBRZlViM3k0YVF6T2FaNWFNampWSWVGeEZFUUoKZVFmaHJRcUFGRDI2 N0h6bGZvbGYwWnFMdXIwWTZXbldkWkNnVjNackVJcDNLUk5lVW92TzJVcmE3b0Y1ZmpWZkc5 TTBGVXFsM1psYQpWNjBXUHZMc2N4aGM5eGZGd3pKZXJFSVJKcllnb1ZPSGw1Y0pNL1VBZGds elExbWk1TUZ5RzBOalJEYU9zZEVWR0FXU0F6TjgwUHkwCkpJOHAvSTVtSnUzbUh3TEplRGpI bEZGTTgzem9Lalh5WWRMd1c1SUlxdHk4OENiUUJIblFDT2NwNDFUcDBFSXZiZ08xdWdXM29W N2wKa2kvaml6VFlOay9hUStKRXJMcEVOd2REMmdxc0t0TTJhVVdmdFVRZWZ3ZE95MlBJMlV0 RFJCdjlxbUlSclFLd2ZaSVlFRWowUHlIagozTGN4Y2dtNENDRXR5QnpjNjY1WFY4R3JselZJ RlNCenBoVVFPNWRnK0JXZ0NoWmtUbE42aEhoRkRnUnpTN0F4Uk02QkllVUZSczJwCmR3NUt1 V1MyYWFVRGpOYTZadWN6MEJWblQwanRiL0JBY0lFd3lHZHRDYWhTT1p5aWZSZWZnanZ1aitU YkYyZUZMeENjM0E0ei9UN28KcUgwTFNHTjNpdm5Sd2RocXI5NmxuS20vUzdLTUtVQ2lMRjI1 S2loQitod2RlcHZkR1dRLzJpOTZublBMWklyZmVkK2NRM0NCM3lnawpBUXZzd0JLNVNDWWdL ZmZJWTIyNTFWbnNsc1dPREd3T0hmTWgxT2U0dXBBVzhDV3FybEdtVnBGRHNvRFMvc2NJUGdR REVnRHdma2JLCmJHT0lTYld0ODNha21KWHBEZ09wbS9qRzB1TUpFWklBb0hKWmVTSVN5MVRp aTVSVlljWEE0ZytrVmVhaERJTmc5bWRjNGRFL0JCazEKMjJLampBMUtNSWRtSUhvbTJacURS WGlHRVdrZ3dPcVp3eFN5WUJEVlhFY2NEdGh2SmF0TjkrUWRhODJKbzE2eFVyUk03UFVvUURN ZgozODZpVHhLL3hGaXc4ODdiMFFPUGFLZURRdlhReENJcVQ5QlNKYkdFYTJOVlNMRkRjYVkv QVUvbS9sLy8rZzVIaDd6OEo2K0dmcm1WCllaRVRIN3cxVDVVclJOdGlDTm91ZlZJL2ZtS3hQ TUVTTkZjcW1UTENFV3dLYWwwa0tneXBlVk1DNzJsbGgwK0E1aitmNllMazc4OEYKeGl1S1NP amN0TVV2WlVCTVd4cjdNcXJpQ0hmNXBXNkhQRENOeFRnVk5hQ0Z5eFNVSVBPSkhMN3dCaDR1 eklLQWZ6Z0gyR1pBOWdMSQpvQW9vZ3hCVlNJd2lIMVFqdk44bGhxcUFHMEdRODhESUZpdnl3 bDA5QUpQZDlmUWprMXdoTWtJTVVNajN5QTR1RWtNSkowc3F4Sk1zCklNRE52dndnekdwbVNo K0tWN0hIeHRwRzhJcEJGczJTcEZJbVp4cy9DQ1UwVkM3Z2M5TjEzSU5YalYvMVV6UnFHa00v b0VGekRnWlUKQWhlZXdjMDAyME1HdzdsMUljTEhjalZaNW96Qkh1RDBIYXZVeWZTUVpSZm9h TFd3N0xVTUlVSFFpRklKVTlTbm5EcWZrYk44QkJtUQoyeENTckFQWkd4TFZSUHpvU0tRSWlC Rk9NTmRmMEc1UlNJaHNhRER1MG5jSnVQdDRYcFlxaEswUlNyY21QcENHSVRoTjhMbkVZYWlJ CklLc1JhRUFNSkRPcHBRVVNFblV1a1RjRk9xTzZPK2gxQjhDdllBaGtocGZacEU4NGVCZVBW YUMwRXY0d3JJUWJvVUpRRFJJMG0zYjcKTEpHdkVLUUVIbVJ5a3VoUm5jSGtjdGFINW9Kc2ZC dDJteTZHeGNQRVoyTFBTWXRRd1pjMDNtTWFDZU9weFNiYkV2aFFQREZEY1FTNgpBNlpCeTRT VEE3bnFwNWl4TUVOZHlBQjVFTjFRSFJDQ3luTVNML2hDUkFwRUt3MGhzYUJseG53TUdrMktj d3ZGME42dUVHVUdpajFTCkdiUFVtSmhuT21JRDJKWXd5VXNBd1MrOGgxWXdFc2E0NHAwVm9m ZDB5VENhek1keDVsQW5OTTRoaUVJRGJVYjE3UFBWY0JwTzUrcnAKbkltKzdjelNWSnpuRXpx STBKRXlIZDFCNjJKVE9NL2FsQmRzSzlYaUlycGN6bTZIbWJyMlltcWNuOEF3ZFRFWkRMNVdo VThPLzVJSAp6UU5vR2gxOGdXUkdTSUlLU0pCRmlzQ0xBWUNNRHM3Qit3UDFzWXdtVCtpUTdZ UThpZFczWG41UEg5V25wNTFWR0N3WUl4QkJrWXFuClVHME83N3hySVFTY05wcFA3Wm1yRVFp ejlZeVFSQWhUcUlkNWlBSHJESllHeE8xRi9GbnFjMnVOL1lTTlJCNXhpeXlzRkVWMVFkZW0K RVR3R2ZVRmVuVzROQUNPbGRpbmxPaDVWQ0NQTXNlVkhmZmI3cGtubk9RSlQyTDRuaXJxZTB6 ZDNQdjdxTXdrUmIra3FRd0piK1RMZgpnRC9EQXJYR2JJVmhBaVd1dDBxZWxRS1ZmQkRWR3hN M2YwaHpTVHBEdklITVJCU0tjbUJ4bHgzdVpsa3JscUZ0NXNhR0pLaGdTVEpICkFRazF5RURV QWt2UUlvZ2tDQjBGN2l4MGpPNEdLcFcxcURNV1hnMlF4bnB5SGNjRzVwVkFNV3FJb2lDeEtx VVFBM2xoWVErbllMd1cKUmo1Q1UrZmx0TUJNcElFTklCM1h2Z21lTDI1dTlHSGZBMlZ1SVFp OFY2SXVJNWpHS2syZERNekxFclhReFp5Q2xWek5WSVk0Z2JmRgpuMjNUVExEUWNZek1WSFRR dVRKVVIwdVNNQ2lGRHhRUUFjZ1pOM0lHcmlYZGlYVUw1ZGM5eHRab1lqc0V4TEZTTXkyYXRu UlVZc0pkCkN0QWpjTVIzRlRQRW84ZURwcHBwWHUxNFI0c0pRWkZUaFpxekRXMFJjWW96RE9S VzFRVWF4UVQ2bkJXWEp3V3lIUUViSDhzb0ZFSXMKaEJrUUVrNEg1bk13T3NnU1d6MENFOGtE K0NKQ2FOeDdBSml5RWRyUVp0QnlQdDU4aWcyTVhRWWd2dU9EUnExaWlsWTFRYmtFbWc0Zwpp ZUFTWkN6UXNvZUdpVENaaEJFNUlaSU1qSkdLWnlGTGF5MDAyM3U4ZnJoTnhydjNZd3pjcmFG RkVqRk0xam5GRnhUSG9Fczl0azAxCnlKVzY0Q1dLWlN4SExER0E0cGNKUVpuVzVobUZzbVRC cTRFV09HMWlGckkwZVRLa3d4QUVJV1VMQTBMNlE0QlpvRFpRaUVGeGFVakIKeldabWdJYm9o Um1WSlRlSkprTVlJaGNEV0JoaFdEaTFyQ1hGTUtJeUpaQUxNSU16Wk1iVW9FMHVKTUtzVFc5 cFlZVXE0SVpuUFBDNAozRk1VTTRCQWxoM2pvRE5va2FVTXRBRlAxaXp5bDM1SzVzc1pwVllk SWVpUGx5MmxBTk1JSFo5VktIeEdhYk5RaWNRU255SzdGTk1CCnVnSVI1aWtBTk1ja3hta2Mv ZWttQ1RtdEFOaG1wcEVVcUlyRUtod1l3UHhKUTJxR2xtcVptTnNzZ1dMeVpQMzZUZkErYjVU NFcwaVEKWUlJdy9WK1d3NTBLZ0hreVljYTQxeUdXR2lWS2dHVTA3UjFCT0pDSGowK3ViakJV bE52djkwWmhBVzlRWE1RVTFmaUVEQlpPOE5mdgptbjRvMnpJVkFGaktkb1piTE5STXlrSWtB b3hDSHF5blRnV3NnZENCcUhwRFZPTEFSa2MyU1ZFZ2lpN2VZb2hXRk4wWGhGS2UxY0M1CjYw SUtpbWJWendDc1JBTUI0YkdUdmpwSXdPZU4xTEVtWlZTb21SMHEzcjU3b2FUcktiZG5OZ0xC QkJjWGJBZlVZTEZXMXRJLzZOeEMKK2NaRzVrVXFjcElteG8xbWtCRXptcUp1ZUpvSUpTRmQw OUo5OUVKYmcyM29ETUgwYXdRSWViMFIzTUJzZU1URXdIV0JGdVBNVTR4ZwpZQ24xSS9yQ2hC QTZ6V201cHMyY1c1bSs1d05KcFJjaGhWSTNyd2FPdGJZcDdRUWUycVc4ay83SGNZRWFlRE8z Q1Noc0pYU1NKTkJjCkZuK0U4OHdiaTcxaEU1a2N6S0NsQ0Z1bjBLd2c5YWtxdEJFMVVOTkcx Z0lhL0loSUJBZ1FEK0JGRnVhY2owajR0S0RaU3gyY2RTTzUKYTVsdHNVRk9kZExKbVBUYlg4 MmpVWGJKV1NCbng3R0xJejhzL3FDSGVUbWtuRTR2MXZHTDBEUVNpeGs5TGVFNWtJb2xJWEZn RGloZQpUVDduZ0prYzJVQkpLRnpUSG9Wb25sN0hxRVRXOUNuMkx1eUlHTzh5M2thSXRDSXpr MUJ0Q29yRUsxbHRMYkpscXhnc2hnYTJsZ29wClN1TUtHR0NpeGxTakhpTjVYMWF3bFRVQ1h3 cEtnYjVYQk5Hc1R4SE1kOUFOWnYwSDBuUEFzNHNTMERTWVA5U21CREZFV3VUQ2s1ZGMKcHBC TXZCbzkvNmV6UitJZlRjbE1NRGJzQnRBWXVtZHo0QStFem92Q0U2UDI2Z1dqbHZJVVdVeCtl VTBHbE5sSWdQRWhraEtEeU04MwpGUWtsdUVEUXBockRrZ0gzWHVVa2tpWUxoNVRPM2JXeDNp VjhIWHBLSEJXTU1OdE52Y3NncWgxdXdHclhNNWdLQXYyTjhxTVIyRmZqCm9mWjBWeDJBd21j NTV1VktGUzRMQ1lNWVVpTEZZZ3hCU1llb1Nra09SRUVmc0VhZ1pEVFRGbVdLcGR1QWkrOFlN M0ZKYU1DcXhGYWgKQjA1dXZ2NFBhSnBuamZ2cFptRDgwaWNvZ3ZHWUZvK0RiRkhycVZtSmR1 UktjM3d4bThpRURuTTRWTEZ5aXVvZ0ZVa3NGVU1Dc3NOMgpqb0lkbVJtYUdUeExxUkFMQXBU V0JEN28xZDdpOE1UZFlTbGRHQkFJSzVtN0lMUnJrRmxDUmdSa0lxWWxUa3p6TWczVWdoNmNP N2pVCkt6M2xMRkk5enNOQ0ZPL2JLK2tOZk9IQWNQdTFiQmdTQ2dWaG8zbFJiUzY0bURCWng1 ckpuellkK3VuTmNHS21MVTU1eGFlc3FYM3kKb1lzYndHSzVUQ0Y0Z3hHZ1Z1S0JiUEdnQlc3 czU5UWxKWmh6VUZqcGNMUWhmTWc5ZEtKbkkrWkRiNEROY0xHVnVEaUFoVG1vOGRsRQo1L2da S3k4Nnk0UmNzaXA1SDM0UTBFZVgwRk5qbzlIRkdLb0tzRkZBOGdEUlV1Zm5lZncwQnRwVmdU WG9xVVRJckJFY0FJelFsZ1FFCjkrbm5lUUJ2RGYxd1BCQlJZb0tLQ2lqcVNaOUt2bUNISnpJ VDZJRGdSckdGZEVCQ3VtSDM4N0NQT21tRFIwWm9tRUpPUUFXQTdRMTcKN3BKQ0ltMXp3VUU2 VkFwS0Nma3doZE9VQm5EenR5UjgwWXhhSS9tU1BpUy90UzJ2ZmpnOTk5TVJ2ZTQzQ2tvUGVi WFlOK04ySWVnbgoyU0VzQXB6UjFzS2JJWkVDSWg2cVdMcXBjQkcyR2NpWVNMVmlFTDZnemtr eldSRXBkeVdTeldMQUQ3ZHJWaHBXNzJEV2NPeXdRU0dWCldhaE5GWUtEVVRMaEJhaktncXJn ajlBZ0lLSWlLR3BPZ2F6YkZ4c1d5ODFpS05aYXpWd1J3KzJuSUlUcTQzUWtIV3ZhWWdHb0FO SUcKM0hkQllwaUlrQjdTR2hzYlpKVEREWUhaeWVVakluT3NVa1VnOFRKQnRRR3lnMWUwTXBs aGhlUzJ5TWFRYVBBVkVFSzRlNUJOdVFnUwpoZFVjU3BBNVFrd0VLUkRaRlBIQW9IM1FxODJ2 QWhqQWlvZHNOT3k5cW83ZE4wMElXbWNnZXdwcVBVUUUxNTg3YmRGc2VqQ2JKZ09JClBXSlJG UVYweFp0a3dZd2hneGFJMk1McTJzeTh4ak91OWh5RGpJSTRwV0NNaUNpQXNBTDhOM0V6RDU5 NURkdmxCQzVSREVTQmhDQ0UKT1J6T1V3dS9QRlFMc2xHb2tFV05Gb09pMzVaYmk4cGFWWklR TVJWRXpvQmhWTzBYb2hxUjdnb2E3NUxoeFhlM1lSaUVJSUlJVWlHRAprQStSZ1FrVTdRU04w SjZqV21COFk4aWdHOFRlZGl1bXZsZEErT2hNU2ZtK0EvcEFhdllqTkVoaUJzdWFuWXZoM1dF cEFIZWZEN3N6Cm1Xc05wcmR3QTZNeEVpRXRDSktYT3BSRDlKV3lRa0VIVzZFS0ZpQVNYSUVy N1RZVXVIbllBMTY0UnpwdHAyL25QY1dnVU5YTmdhU0kKWjliUWxqWDIyYW5xTmVLNUs0anJP ZUg4bjV4RXFua2d3aG1TWjhtZ1J4eVNTSHVnaWRFbEpMWUhaZ1BWUWxPV2tsUW5BMFdqWFdF aApUUGlRdURVVlpSRDVlbER5QXNCSWUwTitJUmgyeVVMRFZQVUU1QlorRVlUM0s3Umtuc1E2 cDhyR1FVQWZUOFpSK2w1eEVzUHZCRlI0CkVDSE8xRVRnbWhPTjlwcU1jdWk0bmFZQ0JjRTlJ VC9NU0QzRlJrR0hWSnc2VEJ2ZWkreXJZcDdIbGFaS1V6Y3BnbUdZWUJnU1hDd0gKY2NGRHNP d2VBVUt6MlZMTEFhS2RuaWNZR0FTTWI5ZUpJbFpuMVhyUkNTZHF2dksrNHExYWhEMWxudWJG WWoySnh4ZVR0NGFiSUR3QQpvY3RYQjhpKytyZGJJN0EwT0tvQnVDUnJyVDNyK1Y1eENqc2lJ dUtCaWlKdExRN1ErbjdqLzR1NUlwd29TQXdGTlZtQQo= --------------070306020108050500050300--