From owner-freebsd-java@FreeBSD.ORG Sun Mar 25 14:30:08 2007 Return-Path: X-Original-To: freebsd-java@hub.freebsd.org Delivered-To: freebsd-java@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 83BF416A401 for ; Sun, 25 Mar 2007 14:30:08 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 7418A13C468 for ; Sun, 25 Mar 2007 14:30:08 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id l2PEU8GR068199 for ; Sun, 25 Mar 2007 14:30:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id l2PEU8b7068196; Sun, 25 Mar 2007 14:30:08 GMT (envelope-from gnats) Date: Sun, 25 Mar 2007 14:30:08 GMT Message-Id: <200703251430.l2PEU8b7068196@freefall.freebsd.org> To: freebsd-java@FreeBSD.org From: nemo Cc: Subject: Re: ports/110163: [NEW PORT] [java] Jboss5b1 X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: nemo List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2007 14:30:08 -0000 The following reply was made to PR ports/110163; it has been noted by GNATS. From: nemo To: bug-followup@FreeBSD.org, nemoliu@gmail.com Cc: delphij@freebsd.org Subject: Re: ports/110163: [NEW PORT] [java] Jboss5b1 Date: Sun, 25 Mar 2007 22:22:27 +0800 ------=_Part_225228_27186714.1174832547365 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline I rewrite the patch, this one should be better. ------=_Part_225228_27186714.1174832547365 Content-Type: text/plain; name="jboss5.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="jboss5.txt" X-Attachment-Id: f_ezpkxfsp IyBUaGlzIGlzIGEgc2hlbGwgYXJjaGl2ZS4gIFNhdmUgaXQgaW4gYSBmaWxlLCByZW1vdmUgYW55 dGhpbmcgYmVmb3JlCiMgdGhpcyBsaW5lLCBhbmQgdGhlbiB1bnBhY2sgaXQgYnkgZW50ZXJpbmcg InNoIGZpbGUiLiAgTm90ZSwgaXQgbWF5CiMgY3JlYXRlIGRpcmVjdG9yaWVzOyBmaWxlcyBhbmQg ZGlyZWN0b3JpZXMgd2lsbCBiZSBvd25lZCBieSB5b3UgYW5kCiMgaGF2ZSBkZWZhdWx0IHBlcm1p c3Npb25zLgojCiMgVGhpcyBhcmNoaXZlIGNvbnRhaW5zOgojCiMJL2hvbWUvbGl1dG9uZy9qYm9z czUKIwkvaG9tZS9saXV0b25nL2pib3NzNS9maWxlcwojCS9ob21lL2xpdXRvbmcvamJvc3M1L2Zp bGVzL3BhdGNoLWJ1aWxkLWNvbW1vbi54bWwKIwkvaG9tZS9saXV0b25nL2pib3NzNS9maWxlcy9k YWVtb25jdGwuMS5pbgojCS9ob21lL2xpdXRvbmcvamJvc3M1L2ZpbGVzL2pib3NzNS5zaC5pbgoj CS9ob21lL2xpdXRvbmcvamJvc3M1L2ZpbGVzL2RhZW1vbmN0bC5jLmluCiMJL2hvbWUvbGl1dG9u Zy9qYm9zczUvZmlsZXMvcGF0Y2gtYnVpbGQueG1sCiMJL2hvbWUvbGl1dG9uZy9qYm9zczUvZmls ZXMvcGtnLWluc3RhbGwuaW4KIwkvaG9tZS9saXV0b25nL2pib3NzNS9maWxlcy9wa2ctZGVpbnN0 YWxsLmluCiMJL2hvbWUvbGl1dG9uZy9qYm9zczUvZmlsZXMvcGtnLW1lc3NhZ2UuaW4KIwkvaG9t ZS9saXV0b25nL2pib3NzNS9maWxlcy9wYXRjaC1idWlsZG1hZ2ljLmVudAojCS9ob21lL2xpdXRv bmcvamJvc3M1L01ha2VmaWxlCiMJL2hvbWUvbGl1dG9uZy9qYm9zczUvZGlzdGluZm8KIwkvaG9t ZS9saXV0b25nL2pib3NzNS9wa2ctZGVzY3IKIwplY2hvIGMgLSAvaG9tZS9saXV0b25nL2pib3Nz NQpta2RpciAtcCAvaG9tZS9saXV0b25nL2pib3NzNSA+IC9kZXYvbnVsbCAyPiYxCmVjaG8gYyAt IC9ob21lL2xpdXRvbmcvamJvc3M1L2ZpbGVzCm1rZGlyIC1wIC9ob21lL2xpdXRvbmcvamJvc3M1 L2ZpbGVzID4gL2Rldi9udWxsIDI+JjEKZWNobyB4IC0gL2hvbWUvbGl1dG9uZy9qYm9zczUvZmls ZXMvcGF0Y2gtYnVpbGQtY29tbW9uLnhtbApzZWQgJ3MvXlgvLycgPi9ob21lL2xpdXRvbmcvamJv c3M1L2ZpbGVzL3BhdGNoLWJ1aWxkLWNvbW1vbi54bWwgPDwgJ0VORC1vZi0vaG9tZS9saXV0b25n L2pib3NzNS9maWxlcy9wYXRjaC1idWlsZC1jb21tb24ueG1sJwpYLS0tIC4vdG9vbHMvZXRjL2J1 aWxkbWFnaWMvYnVpbGQtY29tbW9uLnhtbC5vcmlnCVN1biBNYXIgMjUgMjA6MjU6NTIgMjAwNwpY KysrIC4vdG9vbHMvZXRjL2J1aWxkbWFnaWMvYnVpbGQtY29tbW9uLnhtbAlTdW4gTWFyIDI1IDIw OjI3OjE4IDIwMDcKWEBAIC0yLDcgKzIsNyBAQApYIApYICAgPCEtLSBNYWtlIHN1cmUgd2UgaGF2 ZSB0aGUgcmlnaHQgdmVyc2lvbiBvZiBBbnQgLS0+ClggICA8cHJvcGVydHkgbmFtZT0iYnVpbGRt YWdpYy5hbnQxNi5iYXNldmVyc2lvbiIgdmFsdWU9IjEuNiIvPgpYLQpYKyAgPHByb3BlcnR5IG5h bWU9ImJ1aWxkbWFnaWMuYW50MTcuYmFzZXZlcnNpb24iIHZhbHVlPSIxLjciLz4KWCAgIDwhLS0K WCAgICAgIHwgQWRkIG5ldyBjb25kaXRpb25zIGZvciBvdGhlciBzdXBwb3J0ZWQgQW50IHZlcnNp b25zIHdoZW4gdGhleQpYICAgICAgfCBiZWNvbWUgYXZhaWFsYmxlLgpYQEAgLTEyLDEzICsxMiwx NiBAQApYICAgICA8b3I+ClggICAgICAgPGNvbnRhaW5zIHN0cmluZz0iJHthbnQudmVyc2lvbn0i IApYIAkgICAgICAgIHN1YnN0cmluZz0iQW50IHZlcnNpb24gJHtidWlsZG1hZ2ljLmFudDE2LmJh c2V2ZXJzaW9ufSIvPgpYKyAgICAgIDxjb250YWlucyBzdHJpbmc9IiR7YW50LnZlcnNpb259IgpY KyAgICAgICAgc3Vic3RyaW5nPSJBbnQgdmVyc2lvbiAke2J1aWxkbWFnaWMuYW50MTcuYmFzZXZl cnNpb259Ii8+ClggICAgIDwvb3I+ClggICA8L2NvbmRpdGlvbj4KWCAKWCAgIDxmYWlsIHVubGVz cz0iYnVpbGRtYWdpYy5hbnQuY29tcGF0aWJsZSI+ClggICBVbnN1cHBvcnRlZCBBbnQgdmVyc2lv bjoKWCAgICAgJHthbnQudmVyc2lvbn0KWC0gIFBsZWFzZSBpbnN0YWxsIGEgdmVyc2lvbiB3aGlj aCBpcyBjb21wYXRpYmxlIHdpdGggQW50ICR7YnVpbGRtYWdpYy5hbnQxNi5iYXNldmVyc2lvbn0u ClgrICBQbGVhc2UgaW5zdGFsbCBhIHZlcnNpb24gd2hpY2ggaXMgY29tcGF0aWJsZSB3aXRoIEFu dCAke2J1aWxkbWFnaWMuYW50MTYuYmFzZXZlcnNpb259ClgrICBvciAke2J1aWxkbWFnaWMuYW50 MTcuYmFzZXZlcnNpb259LgpYICAgPC9mYWlsPgpYIApYICAgPCEtLSBKREsgRGV0ZWN0aW9uIC0t PgpFTkQtb2YtL2hvbWUvbGl1dG9uZy9qYm9zczUvZmlsZXMvcGF0Y2gtYnVpbGQtY29tbW9uLnht bAplY2hvIHggLSAvaG9tZS9saXV0b25nL2pib3NzNS9maWxlcy9kYWVtb25jdGwuMS5pbgpzZWQg J3MvXlgvLycgPi9ob21lL2xpdXRvbmcvamJvc3M1L2ZpbGVzL2RhZW1vbmN0bC4xLmluIDw8ICdF TkQtb2YtL2hvbWUvbGl1dG9uZy9qYm9zczUvZmlsZXMvZGFlbW9uY3RsLjEuaW4nClguRGQgRmVi cnVhcnkgMjEsIDIwMDIKWC5EdCAlJUNPTlRST0xfU0NSSVBUX01BTlBBR0VfVElUTEUlJSAxClgu T3MgRnJlZUJTRApYLlNoIE5BTUUKWC5ObSAlJUNPTlRST0xfU0NSSVBUX05BTUUlJQpYLk5kICUl QVBQX1RJVExFJSUgc2VydmVyIGNvbnRyb2wgaW50ZXJmYWNlClguU2ggU1lOT1BTSVMKWC5ObQpY Lk9wIEZsIGphdmEtb3B0aW9ucwpYLkFyIHtzdGFydHxyZXN0YXJ0fHN0b3B9ClguU2ggREVTQ1JJ UFRJT04KWFRoZQpYLk5tClhwcm9ncmFtIHByb3ZpZGVzIGFuIHJlc3RyaWN0ZWQgaW50ZXJmYWNl IHRvIHRoZSAlJUFQUF9USVRMRSUlClhhcHBsaWNhdGlvbiBzZXJ2ZXIuIFRoZQpYLk5tClhwcm9n cmFtIGlzIG9ubHkgYWNjZXNzaWJsZSB0byB1c2VycyBpbiB0aGUgJ3d3dycgZ3JvdXAsIGFuZCB3 aWxsClhvbmx5IGludm9rZSB0aGUgJSVKQVZBX1BPUlRfT1NfREVTQ1JJUFRJT04lJSAlJUpBVkFf UE9SVF9WRVJTSU9OJSUgSlZNLgpYLlBwClhBbnkgSmF2YSBvcHRpb25zIGxpc3RlZCBhcmUgaGFu ZGVkIG9mZiBkaXJlY3RseSB0byB0aGUgSlZNLiBBbnkKWGNsYXNzcGF0aCBvcHRpb25zIHdpbGwg YmUgaWdub3JlZC4KWC5QcApYVGhlIHByb2dyYW0gZXhwZWN0cyBleGFjdGx5IG9uZSBvZiB0aGUg Zm9sbG93aW5nIHRlcm1pbmF0aW5nIGNvbW1hbmRzOgpYLkJsIC10YWcgLXdpZHRoIGluZGVudApY Lkl0IEFyIHN0YXJ0ClhTdGFydCAlJUFQUF9USVRMRSUlLCBpZiBpdCBpcyBub3QgYWxyZWFkeSBy dW5uaW5nLgpYLkl0IEFyIHJlc3RhcnQKWFJlc3RhcnQgJSVBUFBfVElUTEUlJS4gSWYgaXQgaXMg YWxyZWFkeSBydW5uaW5nLCB0aGVuIGl0IHdpbGwgYmUgc3RvcHBlZCBhbmQKWHRoZW4gc3RhcnRl ZCByaWdodCBhZnRlciB0aGF0LiBPdGhlcndpc2UgaXQgd2lsbCBqdXN0IGJlIHN0YXJ0ZWQgdXAu ClguSXQgQXIgc3RvcApYU3RvcCAlJUFQUF9USVRMRSUlLCBpZiBpdCBpcyBhY3R1YWxseSBydW5u aW5nLgpYLkVsClguU2ggRVJST1JTClhUaGUgZm9sbG93aW5nIGVycm9yIGNvbmRpdGlvbnMgYXJl IGRldGVjdGVkLiBUaGV5IHdpbGwgYmUgY2hlY2tlZCBpbiB0aGUKWHNwZWNpZmllZCBvcmRlci4g SW4gZWFjaCBjYXNlIGFuIGVycm9yIG1lc3NhZ2UgaXMgcHJpbnRlZCB3aXRoIHRoZSBuYW1lIG9m IHRoZQpYY29udHJvbCBwcm9ncmFtIHByZXBlbmRlZC4KWC5QcApYSWYgbm8gYXJndW1lbnQgaXMg cGFzc2VkLCB0aGVuIGEgc2ltcGxlIGhlbHAgbWVzc2FnZSBpcyBwcmludGVkIGFuZCB0aGUKWHBy b2dyYW0gZXhpc3RzIHdpdGggZXJyb3IgY29kZSAwLgpYLlBwClhJZiBhdCBsZWFzdCBvbmUgYXJn dW1lbnQgaXMgcGFzc2VkLCBidXQgaXQgaXMgZGlmZmVyZW50IGZyb20KWC5BciBzdGFydCAsClgu QXIgcmVzdGFydApYb3IKWC5BciBzdG9wClh0aGVuIHRoZSBoZWxwIG1lc3NhZ2UgaXMgcHJpbnRl ZCBhcyB3ZWxsLCBhbmQgdGhlIHByb2dyYW0gZXhpdHMgd2l0aCBlcnJvcgpYY29kZSAxLgpYLlBw ClhUaGUgZm9sbG93aW5nIGVycm9ycyBjb25kaXRpb25zIGFyZSBkZWZpbmVkOgpYLkJsIC10YWcg LXdpZHRoIGluZGVudApYLkl0IEVtIElsbGVnYWwgcHJvZ3JhbSBhcmd1bWVudCAoZXJyb3IgY29k ZSAxKQpYLkl0IEVtIFBJRCBmaWxlIG5vdCBmb3VuZCAoZXJyb3IgY29kZSAyKQpYLkl0IEVtIFBJ RCBmaWxlIHRvbyBsYXJnZSAoZXJyb3IgY29kZSAzKQpYLkl0IEVtIFBJRCBmaWxlIGNvbnRhaW5z IGlsbGVnYWwgY2hhcmFjdGVyIChlcnJvciBjb2RlIDQpClguSXQgRW0gS2lsbCBvZiBwcm9jZXNz IGZhaWxlZCAoZXJyb3IgY29kZSA1KQpYLkl0IEVtICUlQVBQX1RJVExFJSUgaXMgYWxyZWFkeSBy dW5uaW5nIChlcnJvciBjb2RlIDYpClguSXQgRW0gJSVBUFBfVElUTEUlJSBpcyBub3QgcnVubmlu ZyAoZXJyb3IgY29kZSA3KQpYLkl0IEVtIFVuYWJsZSB0byBjaGRpciB0byB0aGUgJSVBUFBfVElU TEUlJSBob21lIGRpcmVjdG9yeSAoZXJyb3IgY29kZSA4KQpYLkl0IEVtIFVuYWJsZSB0byBvcGVu IHRoZSBzdGRvdXQgbG9nIGZpbGUgKGVycm9yIGNvZGUgOSkKWC5JdCBFbSBVbmFibGUgdG8gb3Bl biB0aGUgc3RkZXJyIGxvZyBmaWxlIChlcnJvciBjb2RlIDEwKQpYLkl0IEVtIFVuYWJsZSB0byBz dGFydCAlJUFQUF9USVRMRSUlIChlcnJvciBjb2RlIDExKQpYLkVsClguU2ggRklMRVMKWC5CbCAt dGFnIC13aWR0aCAtaW5kZW50ClguSXQgUGEgJSVQSURfRklMRSUlClhUaGUgJSVBUFBfVElUTEUl JSBQSUQgZmlsZSB0aGF0IGlzIHVzZWQgdG8gc3RvcmUgdGhlIHByb2Nlc3MgSUQgb2YgdGhlClhj dXJyZW50bHkgcnVubmluZyBwcm9jZXNzIGluLiBJdCBpcyBlbXB0aWVkIGFzIHNvb24gYXMgdGhl IHNlcnZlciBpcyBzdG9wcGVkClhhbmQgZmlsbGVkIHdpdGggdGhlIHByb2Nlc3MgSUQgd2hlbiBp dCBpcyBzdGFydGVkLiBJdCBzaG91bGQgbmV2ZXIgYmUgd3JpdGFibGUKWGZvciBhbnlvbmUgYnV0 ClguRW0gd3d3ICwKWC5JdCBQYSAlJVNUQVJUVVBfU0NSSVBUJSUKWEEgc2NyaXB0IHRoYXQgc3Rh cnRzIHRoZQpYLk5tClhwcm9ncmFtLiBJdCBpcyB1c2VkIHRvIHN0YXJ0ICUlQVBQX1RJVExFJSUg YXQgc3RhcnR1cCB0aW1lLgpYLkVsClguU2ggQVVUSE9SUwpYLkFuIEVybnN0IGRlIEhhYW4gQXEg em5lcmRARnJlZUJTRC5vcmcKWC5BbiBKb25hdGhhbiBDaGVuIEFxIGpvbmNAY2hlbi5vcmcubnoK RU5ELW9mLS9ob21lL2xpdXRvbmcvamJvc3M1L2ZpbGVzL2RhZW1vbmN0bC4xLmluCmVjaG8geCAt IC9ob21lL2xpdXRvbmcvamJvc3M1L2ZpbGVzL2pib3NzNS5zaC5pbgpzZWQgJ3MvXlgvLycgPi9o b21lL2xpdXRvbmcvamJvc3M1L2ZpbGVzL2pib3NzNS5zaC5pbiA8PCAnRU5ELW9mLS9ob21lL2xp dXRvbmcvamJvc3M1L2ZpbGVzL2pib3NzNS5zaC5pbicKWCMhL2Jpbi9zaApYIwpYIyAlJUFQUF9U SVRMRSUlIHN0YXJ0dXAgc2NyaXB0LgpYIwpYIyAkRnJlZUJTRCQKWCMKWApYIyBQUk9WSURFOiAl JUFQUF9TSE9SVE5BTUUlJQpYIyBSRVFVSVJFOiBORVRXT1JLSU5HIFNFUlZFUlMKWApYIyBBZGQg dGhlIGZvbGxvd2luZyBsaW5lcyB0byAvZXRjL3JjLmNvbmYgdG8gZW5hYmxlICUlQVBQX1NIT1JU TkFNRSUlOgpYIyAlJUFQUF9TSE9SVE5BTUUlJV9lbmFibGUgKGJvb2wpOgkJU2V0IHRvICJOTyIg YnkgZGVmYXVsdC4KWCMJCQkJU2V0IGl0IHRvICJZRVMiIHRvIGVuYWJsZSAlJUFQUF9TSE9SVE5B TUUlJQpYIyAlJUFQUF9TSE9SVE5BTUUlJV9mbGFncyAoc3RyKToJCVNldCB0byAiLXNlcnZlciIg YnkgZGVmYXVsdC4KWCMJCQkJRXh0cmEgSlZNIGZsYWdzLgpYIyAlJUFQUF9TSE9SVE5BTUUlJV9j b25maWcgKHN0cik6CQlTZXQgdG8gIiIgYnkgZGVmYXVsdApYIwkJCQlKQm9zcyBzZXJ2ZXIgY29u ZmlnLCBlZyB7YWxsfGRlZmF1bHR8bWluaW1hbHxzdGFuZGFyZH0KWCMKWC4gJSVSQ19TVUJSJSUK WApYbmFtZT0iJSVBUFBfU0hPUlROQU1FJSUiClhyY3Zhcj1gc2V0X3JjdmFyYApYClhzdGFydF9j bWQ9IiUlQVBQX1NIT1JUTkFNRSUlX3N0YXJ0IgpYcmVzdGFydF9jbWQ9IiUlQVBQX1NIT1JUTkFN RSUlX3Jlc3RhcnQiClhwaWRmaWxlPSIlJVBJRF9GSUxFJSUiClhwcm9jbmFtZT0iJSVKQVZBJSUi ClgKWFsgLXogIiQlJUFQUF9TSE9SVE5BTUUlJV9lbmFibGUiIF0JJiYgJSVBUFBfU0hPUlROQU1F JSVfZW5hYmxlPSJOTyIKWFsgLXogIiQlJUFQUF9TSE9SVE5BTUUlJV9mbGFncyIgXQkmJiAlJUFQ UF9TSE9SVE5BTUUlJV9mbGFncz0iLXNlcnZlciIKWFsgLXogIiQlJUFQUF9TSE9SVE5BTUUlJV9j b25maWciIF0JJiYgJSVBUFBfU0hPUlROQU1FJSVfY29uZmlnPSIiClgKWCUlQVBQX1NIT1JUTkFN RSUlX3N0YXJ0ICgpClh7ClgJY2hlY2t5ZXNubyAlJUFQUF9TSE9SVE5BTUUlJV9lbmFibGUgJiYK WAl7ClgJCWlmIFsgISAtZiAke3BpZGZpbGV9IF0KWAkJdGhlbgpYCQkJdG91Y2ggJHtwaWRmaWxl fQpYCQkJY2hvd24gJSVVU0VSJSU6JSVHUk9VUCUlICR7cGlkZmlsZX0KWAkJZmkKWApYCQllY2hv ICJTdGFydGluZyAlJUFQUF9TSE9SVE5BTUUlJS4iClgJCSUlQ09OVFJPTF9TQ1JJUFQlJSAtcSAk eyUlQVBQX1NIT1JUTkFNRSUlX2ZsYWdzfSAkeyUlQVBQX1NIT1JUTkFNRSUlX2NvbmZpZ2ZsYWd9 ICR7JSVBUFBfU0hPUlROQU1FJSVfY29uZmlnfSBzdGFydApYCX0KWH0KWApYJSVBUFBfU0hPUlRO QU1FJSVfcmVzdGFydCAoKQpYewpYCWNoZWNreWVzbm8gJSVBUFBfU0hPUlROQU1FJSVfZW5hYmxl ICYmClgJewpYCQllY2hvICJSZXN0YXJ0aW5nICUlQVBQX1NIT1JUTkFNRSUlLiIKWAkJJSVDT05U Uk9MX1NDUklQVCUlIC1xICR7JSVBUFBfU0hPUlROQU1FJSVfZmxhZ3N9ICR7JSVBUFBfU0hPUlRO QU1FJSVfY29uZmlnZmxhZ30gJHslJUFQUF9TSE9SVE5BTUUlJV9jb25maWd9IHJlc3RhcnQKWAl9 Clh9ClgKWGxvYWRfcmNfY29uZmlnICRuYW1lClgKWFsgLW4gIiR7JSVBUFBfU0hPUlROQU1FJSVf Y29uZmlnfSIgXSAmJiAlJUFQUF9TSE9SVE5BTUUlJV9jb25maWdmbGFnPSItY29uZmlnIgpYClhy dW5fcmNfY29tbWFuZCAiJDEiCkVORC1vZi0vaG9tZS9saXV0b25nL2pib3NzNS9maWxlcy9qYm9z czUuc2guaW4KZWNobyB4IC0gL2hvbWUvbGl1dG9uZy9qYm9zczUvZmlsZXMvZGFlbW9uY3RsLmMu aW4Kc2VkICdzL15YLy8nID4vaG9tZS9saXV0b25nL2pib3NzNS9maWxlcy9kYWVtb25jdGwuYy5p biA8PCAnRU5ELW9mLS9ob21lL2xpdXRvbmcvamJvc3M1L2ZpbGVzL2RhZW1vbmN0bC5jLmluJwpY LyoKWCAqIC0qLSBtb2RlOiBGdW5kYW1lbnRhbDsgdGFiLXdpZHRoOiA0OyAtKi0KWCAqIGV4OnRz PTQKWCAqClggKiBEYWVtb24gY29udHJvbCBwcm9ncmFtLCB3aXRoIEphdmEgU3RhcnR1cCBvcHRp b25zLgpYICoKWCAqCU9yaWdpbmFsIGJ5IEVybnN0IGRlIEhhYW4gPHpuZXJkQGZyZWVic2Qub3Jn PgpYICoJd3d3L2pha2FydGEtdG9tY2F0NC9maWxlcy9kYWVtb25jdGwuYwpYICoKWCAqICRGcmVl QlNEJApYICovClgKWCNpbmNsdWRlIDxhc3NlcnQuaD4KWCNpbmNsdWRlIDxmY250bC5oPgpYI2lu Y2x1ZGUgPHNpZ25hbC5oPgpYI2luY2x1ZGUgPHN0ZGFyZy5oPgpYI2luY2x1ZGUgPHN0ZGlvLmg+ ClgjaW5jbHVkZSA8c3RkbGliLmg+ClgjaW5jbHVkZSA8c3RyaW5nLmg+ClgjaW5jbHVkZSA8c3lz bG9nLmg+ClgjaW5jbHVkZSA8dW5pc3RkLmg+ClgjaW5jbHVkZSA8c3lzL2Vycm5vLmg+ClgjaW5j bHVkZSA8c3lzL3N0YXQuaD4KWCNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KWCNpbmNsdWRlIDxzeXMv dWlvLmg+ClgKWCNkZWZpbmUJVFJVRQkxClgjZGVmaW5lCUZBTFNFCTAKWApYLyogVGhlIGludGVy dmFsIGluIHNlY29uZHMgYmV0d2VlbiB0aGUgY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGUgcHJvY2Vz cwpYICAgZGllZCBhZnRlciBhIGtpbGwgKi8KWCNkZWZpbmUgU1RPUF9USU1FX0lOVEVSVkFMCQkx ClgKWCNkZWZpbmUgRVJSX0lMTEVHQUxfQVJHVU1FTlQJCQkJMQpYI2RlZmluZSBFUlJfUElEX0ZJ TEVfTk9UX0ZPVU5ECQkJCTIKWCNkZWZpbmUgRVJSX0tJTExfRkFJTEVECQkJCQkJNQpYI2RlZmlu ZSBFUlJfQUxSRUFEWV9SVU5OSU5HCQkJCQk2ClgjZGVmaW5lIEVSUl9OT1RfUlVOTklORwkJCQkJ CTcKWCNkZWZpbmUgRVJSX0NIRElSX1RPX0FQUF9IT01FCQkJCTgKWCNkZWZpbmUgRVJSX0FDQ0VT U19KQVJfRklMRQkJCQkJMTcKWCNkZWZpbmUgRVJSX1NURE9VVF9MT0dGSUxFX09QRU4JCQkJOQpY I2RlZmluZSBFUlJfU1RERVJSX0xPR0ZJTEVfT1BFTgkJCQkxMApYI2RlZmluZSBFUlJfRk9SS19G QUlMRUQJCQkJCQkxMQpYI2RlZmluZSBFUlJfU1RBVF9KQVZBX0hPTUUJCQkJCTEyClgjZGVmaW5l IEVSUl9KQVZBX0hPTUVfTk9UX0RJUgkJCQkxMwpYI2RlZmluZSBFUlJfU1RBVF9KQVZBX0NNRAkJ CQkJMTQKWCNkZWZpbmUgRVJSX0pBVkFfQ01EX05PVF9GSUxFCQkJCTE1ClgjZGVmaW5lIEVSUl9K QVZBX0NNRF9OT1RfRVhFQ1VUQUJMRQkJCTE2ClgKWC8qClgJRnVuY3Rpb24gZGVjbGFyYXRpb25z LgpYICovClhzdGF0aWMgdm9pZCBwcmludFVzYWdlICh2b2lkKTsKWHN0YXRpYyBpbnQgcmVhZFBJ RCAodm9pZCk7ClhzdGF0aWMgdm9pZCB3cml0ZVBJRCAoaW50IHBpZCk7ClhzdGF0aWMgdm9pZCBj bGVhclBJRCAodm9pZCk7ClhzdGF0aWMgdm9pZCBzdGFydCAoaW50IGphdmFPcHQsIGNoYXIgKiBq YXZhQXJncyBbXSwgaW50IGpib3NzT3B0LCBjaGFyICogamJvc3NBcmdzIFtdKTsKWHN0YXRpYyB2 b2lkIHN0b3AgKHZvaWQpOwpYc3RhdGljIHZvaWQgcmVzdGFydCAoaW50IGphdmFPcHQsIGNoYXIg KiBqYXZhQXJncyBbXSwgaW50IGpib3NzT3B0LCBjaGFyICogamJvc3NBcmdzIFtdKTsKWHN0YXRp YyB2b2lkIGxvZ091dHB1dCAoY2hhciAqKTsKWApYLyoKWAlHbG9iYWxzClggKi8KWHN0YXRpYyBp bnQgaXNRdWlldCA9IEZBTFNFOwpYc3RhdGljIGNoYXIgKiBvcHRRdWlldCA9ICItcSIsCQkJLyog cXVpZXQgb3B0aW9uICovClgJCQkqIG9wdENvbmZpZyA9ICItY29uZmlnIjsJLyogamJvc3MgY29u ZmlndXJhdGlvbiBvcHRpb24gKi8KWApYLyoqClggKiBNYWluIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0 aW9uIGlzIGNhbGxlZCB3aGVuIHRoaXMgcHJvZ3JhbSBpcyBleGVjdXRlZC4KWCAqClggKiBAcGFy YW0gYXJnYwpYICogICAgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgcGx1cyBvbmUsIHNvIGFsd2F5 cyBncmVhdGVyIHRoYW4gMC4KWCAqClggKiBAcGFyYW0gYXJndgpYICogICAgdGhlIGFyZ3VtZW50 cyBpbiBhbiBhcnJheSBvZiBjaGFyYWN0ZXIgcG9pbnRlcnMsIHdoZXJlIHRoZSBsYXN0IGFyZ3Vt ZW50ClggKiAgICBlbGVtZW50IGlzIGZvbGxvd2VkIGJ5IGEgTlVMTCBlbGVtZW50LgpYICovClhp bnQKWG1haW4gKApYIGludCBhcmdjLApYIGNoYXIgKmFyZ3YgW10pClh7ClgJLyogRGVjbGFyZSB2 YXJpYWJsZXMsIGxpa2UgYWxsIG90aGVyIGdvb2QgQU5TSSBDIHByb2dyYW1zIGRvIDopICovClgJ aW50IGksIGphdmFPcHQsIGpib3NzT3B0OwpYCWNoYXIgKmFyZ3VtZW50LCAqKmphdmFBcmdzLCAq Kmpib3NzQXJnczsKWApYCS8qIFBhcnNlIHRoZSBhcmd1bWVudHMgKi8KWAlpZiAoYXJnYyA8IDIp ClgJewpYCQlwcmludFVzYWdlICgpOwpYCQlyZXR1cm4gMDsKWAl9ClgKWAkvKiBYWFg6IEZpeCBm b3Igc2V0dGluZyB1cCB0aGUgZW52aXJvbm1lbnQgZm9yIHRoZSBqYXZhIHdyYXBwZXIgc2NyaXB0 ICovClgJc2V0dWlkIChnZXRldWlkICgpKTsKWAlzZXRnaWQgKGdldGVnaWQgKCkpOwpYClgJLyoK WAkJQnVpbGQgdXAgamF2YSBhbmQgamJvc3Mgb3B0aW9uIGJsb2Nrcy4KWAkgKi8KWAlqYXZhT3B0 ID0gamJvc3NPcHQgPSAwOwpYCWZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspClgJewpYCQlpZiAo c3RyY21wIChhcmd2IFtpXSwgb3B0UXVpZXQpID09IDApClgJCXsKWAkJCWlzUXVpZXQgPSBUUlVF OwpYClgJCX0gZWxzZSBpZiAoc3RyY21wIChhcmd2IFtpXSwgb3B0Q29uZmlnKSA9PSAwKQpYCQl7 ClgJCQlqYm9zc09wdCArPSAyOwpYCQkJaWYgKCsraSA+PSBhcmdjKQpYCQkJewpYCQkJCXByaW50 VXNhZ2UgKCk7ClgJCQkJcmV0dXJuIEVSUl9JTExFR0FMX0FSR1VNRU5UOwpYCQkJfQpYClgJCX0g ZWxzZSBpZiAoKmFyZ3YgW2ldID09ICctJykKWAkJewpYCQkJamF2YU9wdCsrOwpYCQl9ClgJfQpY CWlmIChqYXZhT3B0ID09IDApClgJCWphdmFBcmdzID0gTlVMTDsKWAllbHNlClgJewpYCQlpbnQg aiA9IDA7ClgJCWphdmFBcmdzID0gbWFsbG9jIChzaXplb2YgKGNoYXIgKikgKiBqYXZhT3B0KTsK WAkJZm9yIChpID0gMDsgaSA8IGFyZ2M7IGkrKykKWAkJewpYCQkJaWYgKHN0cmNtcCAoYXJndiBb aV0sIG9wdFF1aWV0KSAmJgpYCQkJCXN0cmNtcCAoYXJndiBbaV0sIG9wdENvbmZpZykgJiYKWAkJ CQkqYXJndiBbaV0gPT0gJy0nKQpYCQkJewpYCQkJCWphdmFBcmdzIFtqKytdID0gYXJndiBbaV07 ClgJCQl9ClgJCX0KWAl9ClgJaWYgKGpib3NzT3B0ID09IDApClgJCWpib3NzQXJncyA9IE5VTEw7 ClgJZWxzZQpYCXsKWAkJaW50IGogPSAwOwpYCQlqYm9zc0FyZ3MgPSBtYWxsb2MgKHNpemVvZiAo Y2hhciAqKSAqIGpib3NzT3B0KTsKWAkJZm9yIChpID0gMDsgaSA8IGFyZ2M7IGkrKykKWAkJewpY CQkJaWYgKHN0cmNtcCAoYXJndiBbaV0sIG9wdENvbmZpZykgPT0gMCkKWAkJCXsKWAkJCQlqYm9z c0FyZ3MgW2orK10gPSAiLWMiOwpYCQkJCWpib3NzQXJncyBbaisrXSA9IGFyZ3YgWysraV07ClgJ CQl9ClgJCX0KWAl9ClgKWAkvKgpYCQlEZWNpZGUgb24ganVzdCB3aGF0IHRvIGNhbGwuClgJICov ClgJYXJndW1lbnQgPSBhcmd2IFthcmdjIC0gMV07ClgJaWYgKHN0cmNtcCAoInN0YXJ0IiwgYXJn dW1lbnQpID09IDApClgJewpYCQlzdGFydCAoamF2YU9wdCwgamF2YUFyZ3MsIGpib3NzT3B0LCBq Ym9zc0FyZ3MpOwpYClgJfSBlbHNlIGlmIChzdHJjbXAgKCJzdG9wIiwgYXJndW1lbnQpID09IDAp ClgJewpYCQlzdG9wICgpOwpYClgJfSBlbHNlIGlmIChzdHJjbXAgKCJyZXN0YXJ0IiwgYXJndW1l bnQpID09IDApClgJewpYCQlyZXN0YXJ0IChqYXZhT3B0LCBqYXZhQXJncywgamJvc3NPcHQsIGpi b3NzQXJncyk7ClgKWAl9IGVsc2UgewpYCQlmcHJpbnRmIChzdGRlcnIsICIlJUNPTlRST0xfU0NS SVBUX05BTUUlJTogSWxsZWdhbCBhcmd1bWVudCBcIiVzXCIuXG4iLCBhcmd1bWVudCk7ClgJCXBy aW50VXNhZ2UgKCk7ClgJCWV4aXQgKEVSUl9JTExFR0FMX0FSR1VNRU5UKTsKWAl9ClgKWAlyZXR1 cm4gRVhJVF9TVUNDRVNTOwpYfQpYClgvKioKWCAqIFByaW50cyB1c2FnZSBpbmZvcm1hdGlvbiB0 byBzdGRvdXQuClggKi8KWHN0YXRpYyB2b2lkClhwcmludFVzYWdlICh2b2lkKQpYewpYCXByaW50 ZiAoIlVzYWdlOiAlJUNPTlRST0xfU0NSSVBUX05BTUUlJSBbamF2YS1vcHRpb25zXSBbLWNvbmZp ZyBqYm9zc2NvbmZpZ10ge3N0YXJ0fHN0b3B8cmVzdGFydH1cbiIpOwpYfQpYClgvKioKWCAqIFJl YWRzIGEgUElEIGZyb20gdGhlIFBJRCBmaWxlLgpYICoKWCAqIEByZXR1cm4KWCAqICAgIHRoZSBQ SUQsIG9yIC0xIGlmIHRoZSBmaWxlIHdhcyBlbXB0eS4KWCAqLwpYc3RhdGljIGludApYcmVhZFBJ RCAodm9pZCkKWHsKWAlGSUxFICogZmlsZTsKWAlpbnQgcGlkOwpYClgJbG9nT3V0cHV0ICgiPj4g UmVhZGluZyBQSUQgZmlsZSAoJSVQSURfRklMRSUlKS4uLiIpOwpYCWZpbGUgPSBmb3BlbiAoIiUl UElEX0ZJTEUlJSIsICJyIik7ClgJaWYgKCFmaWxlKQpYCXsKWAkJbG9nT3V0cHV0ICgiIFsgRkFJ TEVEIF1cbiIpOwpYCQlwZXJyb3IgKCIlJUNPTlRST0xfU0NSSVBUX05BTUUlJTogVW5hYmxlIHRv IG9wZW4gJSVQSURfRklMRSUlIGZvciByZWFkaW5nOiAiKTsKWAkJZXhpdCAoRVJSX1BJRF9GSUxF X05PVF9GT1VORCk7ClgJfQpYCWlmIChmc2NhbmYgKGZpbGUsICIlZCIsICZwaWQpIDwgMSkKWAkJ cGlkID0gLTE7ClgJZmNsb3NlIChmaWxlKTsKWApYCWxvZ091dHB1dCAoIiBbIERPTkUgXVxuIik7 ClgJcmV0dXJuIHBpZDsKWH0KWApYLyoqClggKiBXcml0ZXMgYSBwcm9jZXNzIElEIHRvIHRoZSBz cGVjaWZpZWQgZmlsZS4gVGhlIGZpbGUgaXMgaWRlbnRpZmllZCBieSBhIGZpbGUKWCAqIGhhbmRs ZS4KWCAqClggKiBAcGFyYW0gcGlkClggKiAgICB0aGUgUElEIHRvIHN0b3JlLCBhbHdheXMgZ3Jl YXRlciB0aGFuIDAuClggKi8KWHN0YXRpYyB2b2lkClh3cml0ZVBJRCAoClggaW50IHBpZCkKWHsK WAlGSUxFICogZmlsZTsKWApYCWxvZ091dHB1dCAoIj4+IFdyaXRpbmcgUElEIGZpbGUuLi4iKTsK WAlmaWxlID0gZm9wZW4gKCIlJVBJRF9GSUxFJSUiLCAidyIpOwpYCWlmICghZmlsZSkKWAl7ClgJ CWxvZ091dHB1dCAoIiBbIEZBSUxFRCBdXG4iKTsKWAkJcGVycm9yICgiJSVDT05UUk9MX1NDUklQ VF9OQU1FJSU6IFVuYWJsZSB0byBvcGVuICUlUElEX0ZJTEUlJSBmb3Igd3JpdGluZzogIik7ClgJ CWV4aXQgKEVSUl9QSURfRklMRV9OT1RfRk9VTkQpOwpYCX0KWAlmcHJpbnRmIChmaWxlLCAiJWRc biIsIHBpZCk7ClgJZmNsb3NlIChmaWxlKTsKWApYCWxvZ091dHB1dCAoIiBbIERPTkUgXVxuIik7 Clh9ClgKWC8qKgpYCVRydW5jYXRlIHRoZSBQSUQgZmlsZS4KWCAqLwpYc3RhdGljIHZvaWQKWGNs ZWFyUElEICh2b2lkKQpYewpYCWlmICh0cnVuY2F0ZSAoIiUlUElEX0ZJTEUlJSIsIDApICE9IDAp ClgJewpYCQlwZXJyb3IgKCIlJUNPTlRST0xfU0NSSVBUX05BTUUlJTogVW5hYmxlIHRvIGNsZWFy ICUlUElEX0ZJTEUlJTogIik7ClgJCWV4aXQgKEVSUl9QSURfRklMRV9OT1RfRk9VTkQpOwpYCX0K WH0KWApYLyoqClggKiBDaGVja3MgaWYgdGhlIHNwZWNpZmllZCBwcm9jZXNzIGlzIHJ1bm5pbmcu ClggKgpYICogQHBhcmFtIHBpZApYICogICAgdGhlIHByb2Nlc3MgaWQsIGdyZWF0ZXIgdGhhbiAw LgpYICoKWCAqIEByZXR1cm4KWCAqICAgIDAgaWYgdGhlIHNwZWNpZmllZCBwcm9jZXNzIGlzIG5v dCBydW5uaW5nLCBhIGRpZmZlcmVudCB2YWx1ZSBvdGhlcndpc2UuClggKi8KWHN0YXRpYyBpbnQK WGV4aXN0c1Byb2Nlc3MgKApYIGludCBwaWQpClh7ClgJaW50IHJlc3VsdDsKWApYCS8qIENoZWNr IHByZWNvbmRpdGlvbnMgKi8KWAlhc3NlcnQgKHBpZCA+IDApOwpYClgJLyogU2VlIGlmIHRoZSBw cm9jZXNzIGV4aXN0cyAqLwpYICAgCXJlc3VsdCA9IGtpbGwgKHBpZCwgMCk7ClgKWAkvKiBJZiB0 aGUgcmVzdWx0IGlzIDAsIHRoZW4gdGhlIHByb2Nlc3MgZXhpc3RzICovClgJcmV0dXJuIHJlc3Vs dCA9PSAwOwpYfQpYClgvKioKWCAqIEtpbGxzIHRoZSBwcm9jZXNzIGlkZW50aWZpZWQgYnkgdGhl IHNwZWNpZmllZCBJRC4KWCAqClggKiBAcGFyYW0gcGlkClggKiAgICB0aGUgcHJvY2VzcyBpZCwg Z3JlYXRlciB0aGFuIDAuClggKi8KWHN0YXRpYyB2b2lkClhraWxsUHJvY2VzcyAoClggaW50IHBp ZCkKWHsKWAlpbnQgcmVzdWx0OwpYCXVuc2lnbmVkIGludCB3YWl0ZWQ7ClgJdW5zaWduZWQgaW50 IGZvcmNlZDsKWAl1bnNpZ25lZCBpbnQgaW50ZXJ2YWwgPSBTVE9QX1RJTUVfSU5URVJWQUw7ClgJ dW5zaWduZWQgaW50IHRpbWVvdXQgID0gJSVTVE9QX1RJTUVPVVQlJTsKWApYCS8qIENoZWNrIHBy ZWNvbmRpdGlvbnMgKi8KWAlhc3NlcnQgKHBpZCA+IDApOwpYClgJaWYgKCFpc1F1aWV0KQpYCQlw cmludGYgKCI+PiBUZXJtaW5hdGluZyBwcm9jZXNzICVkLi4uIiwgcGlkKTsKWAlyZXN1bHQgPSBr aWxsIChwaWQsIFNJR1RFUk0pOwpYCWlmIChyZXN1bHQgPCAwKSB7ClgJCWxvZ091dHB1dCAoIiBb IEZBSUxFRCBdXG4iKTsKWAkJZnByaW50ZiAoc3RkZXJyLCAiJSVDT05UUk9MX1NDUklQVF9OQU1F JSU6IFVuYWJsZSB0byBraWxsIHByb2Nlc3MgJWQ6ICIsIHBpZCk7ClgJCXBlcnJvciAoTlVMTCk7 ClgJCWV4aXQgKEVSUl9LSUxMX0ZBSUxFRCk7ClgJfQpYClgJLyogV2FpdCB1bnRpbCB0aGUgcHJv Y2VzcyBpcyBhY3R1YWxseSBraWxsZWQgKi8KWCAgICByZXN1bHQgPSBleGlzdHNQcm9jZXNzIChw aWQpOwpYCWZvciAod2FpdGVkPTA7IHJlc3VsdCA9PSAxICYmIHdhaXRlZCA8IHRpbWVvdXQ7IHdh aXRlZCArPSBpbnRlcnZhbCkKWAl7ClgJCWxvZ091dHB1dCAoIi4iKTsKWAkJZmZsdXNoIChzdGRv dXQpOwpYCQlzbGVlcCAoaW50ZXJ2YWwpOwpYICAgIAlyZXN1bHQgPSBleGlzdHNQcm9jZXNzIChw aWQpOwpYCX0KWApYCS8qIElmIHRoZSBwcm9jZXNzIHN0aWxsIGV4aXN0cywgdGhlbiBoYXZlIG5v IG1lcmN5IGFuZCBraWxsIGl0ICovClgJZm9yY2VkID0gMDsKWAlpZiAocmVzdWx0ID09IDEpClgJ ewpYCQkvKiBGb3JjZSB0aGUgcHJvY2VzcyB0byBkaWUgKi8KWAkJcmVzdWx0ID0ga2lsbCAocGlk LCBTSUdLSUxMKTsKWAkJaWYgKHJlc3VsdCA9PSAwKSB7ClgJCQlmb3JjZWQgPSAxOwpYCQkJbG9n T3V0cHV0ICgiIFsgS0lMTEVEIF1cbiIpOwpYCQkJZnByaW50ZiAoc3RkZXJyLCAiJSVDT05UUk9M X1NDUklQVF9OQU1FJSU6IFByb2Nlc3MgJWQgZGlkIG5vdCB0ZXJtaW5hdGUgd2l0aGluICUlU1RP UF9USU1FT1VUJSUgc2VjLiBLaWxsZWQuXG4iLCBwaWQpOwpYCQl9IGVsc2UgaWYgKHJlc3VsdCAh PSBFU1JDSCkgewpYCQkJbG9nT3V0cHV0ICgiIFsgRkFJTEVEIF1cbiIpOwpYCQkJZnByaW50ZiAo c3RkZXJyLCAiJSVDT05UUk9MX1NDUklQVF9OQU1FJSU6IFVuYWJsZSB0byBraWxsIHByb2Nlc3Mg JWQ6ICIsIHBpZCk7ClgJCQlwZXJyb3IgKE5VTEwpOwpYCQkJZXhpdCAoRVJSX0tJTExfRkFJTEVE KTsKWAkJfQpYCX0KWApYCWlmIChmb3JjZWQgPT0gMCkgewpYCQlsb2dPdXRwdXQgKCIgWyBET05F IF1cbiIpOwpYCX0KWH0KWApYLyoqClggKiBTdGFydHMgdGhlIGRhZW1vbi4KWCAqLwpYc3RhdGlj IHZvaWQKWHN0YXJ0ICgKWCBpbnQgamF2YU9wdCwKWCBjaGFyICogamF2YUFyZ3MgW10sClggaW50 IGpib3NzT3B0LApYIGNoYXIgKiBqYm9zc0FyZ3MgW10pClh7ClgJaW50IGksIGFyZ2M7ClgJY2hh ciAqKiBhcmd2OwpYCWludCBwaWQ7ClgJaW50IHJlc3VsdDsKWAlpbnQgc3Rkb3V0TG9nRmlsZTsK WAlpbnQgc3RkZXJyTG9nRmlsZTsKWAlzdHJ1Y3Qgc3RhdCBzYjsKWApYCXBpZCA9IHJlYWRQSUQg KCk7ClgKWAlsb2dPdXRwdXQgKCI+PiBTdGFydGluZyAlJUFQUF9USVRMRSUlICUlUE9SVFZFUlNJ T04lJS4uLiIpOwpYCWlmIChwaWQgIT0gLTEpClgJewpYCQkvKiBDaGVjayBpZiB0aGUgcHJvY2Vz cyBhY3R1YWxseSBleGlzdHMgKi8KWAkJcmVzdWx0ID0gZXhpc3RzUHJvY2VzcyAocGlkKTsKWAkJ aWYgKHJlc3VsdCA9PSAxKQpYCQl7ClgJCQlsb2dPdXRwdXQgKCIgWyBGQUlMRUQgXVxuIik7ClgJ CQlmcHJpbnRmIChzdGRlcnIsICIlJUNPTlRST0xfU0NSSVBUX05BTUUlJTogJSVBUFBfVElUTEUl JSAlJVBPUlRWRVJTSU9OJSUgaXMgYWxyZWFkeSBydW5uaW5nLCBQSUQgaXMgJWQuXG4iLCBwaWQp OwpYCQkJZXhpdCAoRVJSX0FMUkVBRFlfUlVOTklORyk7ClgJCX0KWAl9ClgKWAkvKiBDaGVjayBp ZiB0aGUgSkRLIGhvbWUgZGlyZWN0b3J5IGlzIGFjdHVhbGx5IGEgZGlyZWN0b3J5ICovClgJcmVz dWx0ID0gc3RhdCAoIiUlSkFWQV9IT01FJSUiLCAmc2IpOwpYCWlmIChyZXN1bHQgIT0gMCkgewpY CQlsb2dPdXRwdXQgKCIgWyBGQUlMRUQgXVxuIik7ClgJCWZwcmludGYgKHN0ZGVyciwgIiUlQ09O VFJPTF9TQ1JJUFRfTkFNRSUlOiBVbmFibGUgdG8gc3RhdCAlJUpBVkFfSE9NRSUlOiAiKTsKWAkJ cGVycm9yIChOVUxMKTsKWAkJZXhpdCAoRVJSX1NUQVRfSkFWQV9IT01FKTsKWAl9ClgJaWYgKCFT X0lTRElSIChzYi5zdF9tb2RlKSkgewpYCQlsb2dPdXRwdXQgKCIgWyBGQUlMRUQgXVxuIik7ClgJ CWZwcmludGYgKHN0ZGVyciwgIiUlQ09OVFJPTF9TQ1JJUFRfTkFNRSUlOiBKYXZhIGhvbWUgZGly ZWN0b3J5ICUlSkFWQV9IT01FJSUgaXMgbm90IGEgZGlyZWN0b3J5LlxuIik7ClgJCWV4aXQgKEVS Ul9KQVZBX0hPTUVfTk9UX0RJUik7ClgJfQpYClgJLyogQ2hlY2sgaWYgdGhlIEphdmEgY29tbWFu ZCBpcyBhY3R1YWxseSBhbiBleGVjdXRhYmxlIHJlZ3VsYXIgZmlsZSAqLwpYCXJlc3VsdCA9IHN0 YXQgKCIlJUpBVkElJSIsICZzYik7ClgJaWYgKHJlc3VsdCAhPSAwKSB7ClgJCWxvZ091dHB1dCAo IiBbIEZBSUxFRCBdXG4iKTsKWAkJZnByaW50ZiAoc3RkZXJyLCAiJSVDT05UUk9MX1NDUklQVF9O QU1FJSU6IFVuYWJsZSB0byBzdGF0ICUlSkFWQSUlOiAiKTsKWAkJcGVycm9yIChOVUxMKTsKWAkJ ZXhpdCAoRVJSX1NUQVRfSkFWQV9DTUQpOwpYCX0KWAlpZiAoIVNfSVNSRUcgKHNiLnN0X21vZGUp KSB7ClgJCWxvZ091dHB1dCAoIiBbIEZBSUxFRCBdXG4iKTsKWAkJZnByaW50ZiAoc3RkZXJyLCAi JSVDT05UUk9MX1NDUklQVF9OQU1FJSU6IEphdmEgY29tbWFuZCAlJUpBVkElJSBpcyBub3QgYSBy ZWd1bGFyIGZpbGUuXG4iKTsKWAkJZXhpdCAoRVJSX0pBVkFfQ01EX05PVF9GSUxFKTsKWAl9ClgJ cmVzdWx0ID0gYWNjZXNzICgiJSVKQVZBJSUiLCBYX09LKTsKWAlpZiAocmVzdWx0ICE9IDApIHsK WAkJbG9nT3V0cHV0ICgiIFsgRkFJTEVEIF1cbiIpOwpYCQlmcHJpbnRmIChzdGRlcnIsICIlJUNP TlRST0xfU0NSSVBUX05BTUUlJTogSmF2YSBjb21tYW5kICUlSkFWQSUlIGlzIG5vdCBleGVjdXRh YmxlOiAiKTsKWAkJcGVycm9yIChOVUxMKTsKWAkJZXhpdCAoRVJSX0pBVkFfQ01EX05PVF9FWEVD VVRBQkxFKTsKWAl9ClgKWAkvKiBDaGFuZ2UgZGlyZWN0b3J5ICovClgJcmVzdWx0ID0gY2hkaXIg KCIlJUFQUF9IT01FJSUiKTsKWAlpZiAocmVzdWx0IDwgMCkgewpYCQlsb2dPdXRwdXQgKCIgWyBG QUlMRUQgXVxuIik7ClgJCWZwcmludGYgKHN0ZGVyciwgIiUlQ09OVFJPTF9TQ1JJUFRfTkFNRSUl OiBVbmFibGUgdG8gYWNjZXNzIGRpcmVjdG9yeSAlJUFQUF9IT01FJSU6ICIpOwpYCQlwZXJyb3Ig KE5VTEwpOwpYCQlleGl0IChFUlJfQ0hESVJfVE9fQVBQX0hPTUUpOwpYCX0KWApYCS8qIFNlZSBp ZiB0aGUgSkFSIGZpbGUgZXhpc3RzICovClgJcmVzdWx0ID0gYWNjZXNzICgiJSVBUFBfSE9NRSUl LyUlSkFSX0ZJTEUlJSIsIFJfT0spOwpYCWlmIChyZXN1bHQgPCAwKSB7ClgJCWxvZ091dHB1dCAo IiBbIEZBSUxFRCBdXG4iKTsKWAkJZnByaW50ZiAoc3RkZXJyLCAiJSVDT05UUk9MX1NDUklQVF9O QU1FJSU6IFVuYWJsZSB0byBhY2Nlc3MgSkFSIGZpbGUgJSVBUFBfSE9NRSUlLyUlSkFSX0ZJTEUl JTogIik7ClgJCXBlcnJvciAoTlVMTCk7ClgJCWV4aXQgKEVSUl9BQ0NFU1NfSkFSX0ZJTEUpOwpY CX0KWApYCS8qIE9wZW4gdGhlIHN0ZG91dCBsb2cgZmlsZSAqLwpYCXN0ZG91dExvZ0ZpbGUgPSBv cGVuICgiJSVTVERPVVRfTE9HJSUiLCBPX1dST05MWSk7ClgJaWYgKHN0ZG91dExvZ0ZpbGUgPCAw KSB7ClgJCWxvZ091dHB1dCAoIiBbIEZBSUxFRCBdXG4iKTsKWAkJZnByaW50ZiAoc3RkZXJyLCAi JSVDT05UUk9MX1NDUklQVF9OQU1FJSU6IFVuYWJsZSB0byBvcGVuICUlU1RET1VUX0xPRyUlIGZv ciB3cml0aW5nOiAiKTsKWAkJcGVycm9yIChOVUxMKTsKWAkJZXhpdCAoRVJSX1NURE9VVF9MT0dG SUxFX09QRU4pOwpYCX0KWAlsc2VlayAoc3Rkb3V0TG9nRmlsZSwgKG9mZl90KSAwLCBTRUVLX0VO RCk7ClgKWAkvKiBPcGVuIHRoZSBzdGRlcnIgbG9nIGZpbGUgKi8KWAlzdGRlcnJMb2dGaWxlID0g b3BlbiAoIiUlU1RERVJSX0xPRyUlIiwgT19XUk9OTFkpOwpYCWlmIChzdGRlcnJMb2dGaWxlIDwg MCkgewpYCQlsb2dPdXRwdXQgKCIgWyBGQUlMRUQgXVxuIik7ClgJCWZwcmludGYgKHN0ZGVyciwg IiUlQ09OVFJPTF9TQ1JJUFRfTkFNRSUlOiBVbmFibGUgdG8gb3BlbiAlJVNUREVSUl9MT0clJSBm b3Igd3JpdGluZzogIik7ClgJCXBlcnJvciAoTlVMTCk7ClgJCWV4aXQgKEVSUl9TVERFUlJfTE9H RklMRV9PUEVOKTsKWAl9ClgJbHNlZWsgKHN0ZGVyckxvZ0ZpbGUsIChvZmZfdCkgMCwgU0VFS19F TkQpOwpYClgJLyogU3BsaXQgdGhpcyBwcm9jZXNzIGluIHR3byAqLwpYCXN3aXRjaCAocGlkID0g Zm9yayAoKSkKWAl7ClgJY2FzZSAtMToKWAkJbG9nT3V0cHV0ICgiIFsgRkFJTEVEIF1cbiIpOwpY CQlmcHJpbnRmIChzdGRlcnIsICIlJUNPTlRST0xfU0NSSVBUX05BTUUlJTogVW5hYmxlIHRvIGZv cms6ICIpOwpYCQlwZXJyb3IgKE5VTEwpOwpYCQlleGl0IChFUlJfRk9SS19GQUlMRUQpOwpYCQli cmVhazsKWApYCWNhc2UgMDoKWAkJLyogUmVkaXJlY3Qgc3Rkb3V0IHRvIGxvZyBmaWxlICovClgJ CWR1cDIgKHN0ZG91dExvZ0ZpbGUsIFNURE9VVF9GSUxFTk8pOwpYClgJCS8qIFJlZGlyZWN0IHN0 ZGVyciB0byBsb2cgZmlsZSAqLwpYCQlkdXAyIChzdGRlcnJMb2dGaWxlLCBTVERFUlJfRklMRU5P KTsKWApYCQkvKiBUT0RPOiBTdXBwb3J0IHJlZGlyZWN0aW9uIG9mIGJvdGggc3Rkb3V0IGFuZCBz dGRlcnIgdG8gdGhlIHNhbWUKWAkJCQkgZmlsZSB1c2luZyBwaXBlICgyKSAqLwpYClgJCS8qClgJ CQlCdWlsZCB0aGUgYXJndW1lbnQgdmVjdG9yLCB3aXRoIHRoZSBqYXZhL2pib3NzIG9wdGlvbnMg aWYgYW55LgpYCQkgKi8KWAkJYXJndiA9IG1hbGxvYyAoc2l6ZW9mIChjaGFyICopICogKGphdmFP cHQgKyBqYm9zc09wdCArIDUpKTsKWAkJYXJnYyA9IDA7ClgJCWFyZ3YgW2FyZ2MrK10gPSAiJSVK QVZBJSUiOwpYCQlmb3IgKGkgPSAwOyBpIDwgamF2YU9wdDsgaSsrKQpYCQkJYXJndiBbYXJnYysr XSA9IGphdmFBcmdzIFtpXTsKWAkJYXJndiBbYXJnYysrXSA9ICItY3AiOwpYCQlhcmd2IFthcmdj KytdID0gIiUlSkFWQV9DUCUlIjsKWAkJYXJndiBbYXJnYysrXSA9ICIlJUpBVkFfTUFJTiUlIjsK WAkJZm9yIChpID0gMDsgaSA8IGpib3NzT3B0OyBpKyspClgJCQlhcmd2IFthcmdjKytdID0gamJv c3NBcmdzIFtpXTsKWAkJYXJndiBbYXJnYysrXSA9IE5VTEw7ClgKWAkJLyogRXhlY3V0ZSB0aGUg Y29tbWFuZCAqLwpYCQlleGVjdiAoYXJndiBbMF0sIGFyZ3YpOwpYCQlwZXJyb3IgKE5VTEwpOwpY CQlicmVhazsKWApYCWRlZmF1bHQ6ClgJCWxvZ091dHB1dCAoIiBbIERPTkUgXVxuIik7ClgJCXdy aXRlUElEIChwaWQpOwpYCX0KWH0KWApYLyoqClggKiBTdG9wcyB0aGUgZGFlbW9uLgpYICovClhz dGF0aWMgdm9pZApYc3RvcCAodm9pZCkKWHsKWAlpbnQgcGlkOwpYClgJcGlkID0gcmVhZFBJRCAo KTsKWApYCWxvZ091dHB1dCAoIj4+IENoZWNraW5nIGlmICUlQVBQX1RJVExFJSUgJSVQT1JUVkVS U0lPTiUlIGlzIHJ1bm5pbmcuLi4iKTsKWApYCS8qIElmIHRoZXJlIGlzIGEgUElELCBzZWUgaWYg dGhlIHByb2Nlc3Mgc3RpbGwgZXhpc3RzICovClgJaWYgKHBpZCAhPSAtMSkKWAl7ClgJCWludCBy ZXN1bHQgPSBraWxsIChwaWQsIDApOwpYCQlpZiAocmVzdWx0ICE9IDAgJiYgZXJybm8gPT0gRVNS Q0gpClgJCXsKWAkJCWNsZWFyUElEICgpOwpYCQkJcGlkID0gLTE7ClgJCX0KWAl9ClgKWAkvKiBJ ZiB0aGVyZSBpcyBubyBydW5uaW5nIHByb2Nlc3MsIHByb2R1Y2UgYW4gZXJyb3IgKi8KWAlpZiAo cGlkID09IC0xKQpYCXsKWAkJbG9nT3V0cHV0ICgiIFsgRkFJTEVEIF1cbiIpOwpYCQlmcHJpbnRm IChzdGRlcnIsICIlJUNPTlRST0xfU0NSSVBUX05BTUUlJTogJSVBUFBfVElUTEUlJSAlJVBPUlRW RVJTSU9OJSUgaXMgY3VycmVudGx5IG5vdCBydW5uaW5nLlxuIik7ClgJCWV4aXQgKEVSUl9OT1Rf UlVOTklORyk7ClgJfQpYCWxvZ091dHB1dCAoIiBbIERPTkUgXVxuIik7ClgKWAkvKiBUZXJtaW5h dGUgdGhlIHByb2Nlc3MgKi8KWAlraWxsUHJvY2VzcyAocGlkKTsKWAljbGVhclBJRCAoKTsKWH0K WApYClgvKioKWCAqIFJlc3RhcnRzIHRoZSBwcm9jZXNzLiBJZiBpdCBub3QgY3VycmVudGx5IHJ1 bm5pbmcsIHRoZW4gaXQgd2lsbCBmYWlsLgpYICovClhzdGF0aWMgdm9pZApYcmVzdGFydCAoClgg aW50IGphdmFPcHQsClggY2hhciAqIGphdmFBcmdzIFtdLApYIGludCBqYm9zc09wdCwKWCBjaGFy ICogamJvc3NBcmdzIFtdKQpYewpYCXN0b3AgKCk7ClgJc3RhcnQgKGphdmFPcHQsIGphdmFBcmdz LCBqYm9zc09wdCwgamJvc3NBcmdzKTsKWH0KWApYLyoqClgJT3V0cHV0IGxvZyB0byBzdGRvdXQu ClggKi8KWHN0YXRpYyB2b2lkClhsb2dPdXRwdXQgKApYIGNoYXIgKiBzdHJpbmcpClh7ClgJaWYg KCFpc1F1aWV0KQpYCQlwcmludGYgKHN0cmluZyk7Clh9CkVORC1vZi0vaG9tZS9saXV0b25nL2pi b3NzNS9maWxlcy9kYWVtb25jdGwuYy5pbgplY2hvIHggLSAvaG9tZS9saXV0b25nL2pib3NzNS9m aWxlcy9wYXRjaC1idWlsZC54bWwKc2VkICdzL15YLy8nID4vaG9tZS9saXV0b25nL2pib3NzNS9m aWxlcy9wYXRjaC1idWlsZC54bWwgPDwgJ0VORC1vZi0vaG9tZS9saXV0b25nL2pib3NzNS9maWxl cy9wYXRjaC1idWlsZC54bWwnClgtLS0gLi9idWlsZC9idWlsZC54bWwub3JpZwlTdW4gTWFyIDI1 IDIxOjI5OjIxIDIwMDcKWCsrKyAuL2J1aWxkL2J1aWxkLnhtbAlTdW4gTWFyIDI1IDIxOjMwOjU2 IDIwMDcKWEBAIC00MCw2ICs0MCwzNiBAQApYICAgIC0tPgpYIApYICAgPHRhcmdldCBuYW1lPSJp bml0IiB1bmxlc3M9ImluaXQuZGlzYWJsZSIgZGVwZW5kcz0iX2J1aWxkbWFnaWM6aW5pdCI+Clgr ICAgICAgPCEtLSBNYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcmlnaHQgdmVyc2lvbiBvZiBBbnQgLS0+ ClgrICAgICAgPHByb3BlcnR5IG5hbWU9ImJ1aWxkbWFnaWMuYW50MTUuYmFzZXZlcnNpb24iIHZh bHVlPSIxLjUiLz4KWCsgICAgICA8cHJvcGVydHkgbmFtZT0iYnVpbGRtYWdpYy5hbnQxNi5iYXNl dmVyc2lvbiIgdmFsdWU9IjEuNiIvPgpYKyAgICAgIDxwcm9wZXJ0eSBuYW1lPSJidWlsZG1hZ2lj LmFudDE3LmJhc2V2ZXJzaW9uIiB2YWx1ZT0iMS43Ii8+ClgrICAgICAgPCEtLQpYKyAgICAgICAg fCBBZGQgbmV3IGNvbmRpdGlvbnMgZm9yIG90aGVyIHN1cHBvcnRlZCBBbnQgdmVyc2lvbnMgd2hl biB0aGV5ClgrICAgICAgICB8IGJlY29tZSBhdmFpYWxibGUuClgrICAgICAgIC0tPgpYKwpYKyAg ICAgIDxjb25kaXRpb24gcHJvcGVydHk9ImJ1aWxkbWFnaWMuYW50LmNvbXBhdGlibGUiPgpYKyAg ICAgIDxvcj4KWCsgICAgICAgICA8Y29udGFpbnMgc3RyaW5nPSIke2FudC52ZXJzaW9ufSIKWCsg ICAgICAgICAgICBzdWJzdHJpbmc9IkFudCB2ZXJzaW9uICR7YnVpbGRtYWdpYy5hbnQxNS5iYXNl dmVyc2lvbn0iLz4KWCsgICAgICAgICA8Y29udGFpbnMgc3RyaW5nPSIke2FudC52ZXJzaW9ufSIK WCsgICAgICAgICAgICBzdWJzdHJpbmc9IkFudCB2ZXJzaW9uICR7YnVpbGRtYWdpYy5hbnQxNi5i YXNldmVyc2lvbn0iLz4KWCsgICAgICAgICA8Y29udGFpbnMgc3RyaW5nPSIke2FudC52ZXJzaW9u fSIKWCsgICAgICAgICAgICBzdWJzdHJpbmc9IkFudCB2ZXJzaW9uICR7YnVpbGRtYWdpYy5hbnQx Ny5iYXNldmVyc2lvbn0iLz4KWCsgICAgICA8L29yPgpYKyAgICAgIDwvY29uZGl0aW9uPgpYKwpY KyAgICAgIDxmYWlsIHVubGVzcz0iYnVpbGRtYWdpYy5hbnQuY29tcGF0aWJsZSI+ClgrClgrICAg ICAgIFVuc3VwcG9ydGVkIEFudCB2ZXJzaW9uOgpYKwpYKyAgICAgICAke2FudC52ZXJzaW9ufQpY KwpYKyAgICAgICBQbGVhc2UgaW5zdGFsbCBhIHZlcnNpb24gd2hpY2ggaXMgY29tcGF0aWJsZSB3 aXRoIEFudCAke2J1aWxkbWFnaWMuYW50MTUuYmFzZXZlcnNpb259IG9yICR7YnVpbGRtYWdpYy5h bnQxNi5iYXNldmVyc2lvbn0KWCsgICAgICAgb3IgJHtidWlsZG1hZ2ljLmFudDE3LmJhc2V2ZXJz aW9ufS4KWCsKWCsgICAgICA8L2ZhaWw+ClggICA8L3RhcmdldD4KWCAKWCAKRU5ELW9mLS9ob21l L2xpdXRvbmcvamJvc3M1L2ZpbGVzL3BhdGNoLWJ1aWxkLnhtbAplY2hvIHggLSAvaG9tZS9saXV0 b25nL2pib3NzNS9maWxlcy9wa2ctaW5zdGFsbC5pbgpzZWQgJ3MvXlgvLycgPi9ob21lL2xpdXRv bmcvamJvc3M1L2ZpbGVzL3BrZy1pbnN0YWxsLmluIDw8ICdFTkQtb2YtL2hvbWUvbGl1dG9uZy9q Ym9zczUvZmlsZXMvcGtnLWluc3RhbGwuaW4nClgjIS9iaW4vc2gKWCMKWCMgQ2hlY2tzIGlmIHRo ZSAnd3d3JyB1c2VyIGFuZCBncm91cCBleGlzdC4gSWYgdGhleSBkb24ndCwgdGhlbgpYIyBhbiBh dHRlbXB0IGlzIG1hZGUgdG8gY3JlYXRlIGJvdGguClgjClgjICRGcmVlQlNEJApYIwpYClgjIE1h a2Ugc3VyZSB3ZSdyZSBjYWxsZWQgZHVyaW5nIHRoZSAnbWFrZSBpbnN0YWxsJyBwcm9jZXNzClhp ZiBbICIkMiIgIT0gIlBSRS1JTlNUQUxMIiBdOyB0aGVuClggICAgZXhpdCAwClhmaQpYClgjIFNl dCBzb21lIGNvbnN0YW50cwpYVVNFUj13d3cKWEdST1VQPSR7VVNFUn0KWFVJRD04MApYR0lEPSR7 VUlEfQpYClgjIFNlZSBpZiB0aGUgZ3JvdXAgYWxyZWFkeSBleGlzdHMKWGlmICEgcHcgZ3JvdXBz aG93ICIke0dST1VQfSIgMj4vZGV2L251bGwgMT4mMjsgdGhlbgpYClgJIyBJZiBub3QsIHRyeSB0 byBjcmVhdGUgaXQKWAlpZiBwdyBncm91cGFkZCAke0dST1VQfSAtZyAke0dJRH07IHRoZW4KWAkJ ZWNobyAiQWRkZWQgZ3JvdXAgXCIke0dST1VQfVwiLiIKWAllbHNlClgJCWVjaG8gIkFkZGluZyBn cm91cCBcIiR7R1JPVVB9XCIgZmFpbGVkLi4uIgpYCQlleGl0IDEKWAlmaQpYZmkKWApYIyBTZWUg aWYgdGhlIHVzZXIgYWxyZWFkeSBleGlzdHMKWGlmICEgcHcgdXNlcnNob3cgIiR7VVNFUn0iIDI+ L2Rldi9udWxsIDE+JjI7IHRoZW4KWApYCSMgSWYgbm90LCB0cnkgdG8gY3JlYXRlIGl0ClgJaWYg cHcgdXNlcmFkZCAke1VTRVJ9IC11ICR7VUlEfSAtZyAke0dST1VQfSAtaCAtIFwKWAkJLXMgIi9z YmluL25vbG9naW4iIC1kICIvbm9uZXhpc3RlbnQiIFwKWAkJLWMgIldvcmxkIFdpZGUgV2ViIE93 bmVyIjsgXApYCXRoZW4KWAkJZWNobyAiQWRkZWQgdXNlciBcIiR7VVNFUn1cIi4iClgJZWxzZQpY CQllY2hvICJBZGRpbmcgdXNlciBcIiR7VVNFUn1cIiBmYWlsZWQuLi4iClgJCWV4aXQgMQpYCWZp ClhmaQpYZXhpdCAwCkVORC1vZi0vaG9tZS9saXV0b25nL2pib3NzNS9maWxlcy9wa2ctaW5zdGFs bC5pbgplY2hvIHggLSAvaG9tZS9saXV0b25nL2pib3NzNS9maWxlcy9wa2ctZGVpbnN0YWxsLmlu CnNlZCAncy9eWC8vJyA+L2hvbWUvbGl1dG9uZy9qYm9zczUvZmlsZXMvcGtnLWRlaW5zdGFsbC5p biA8PCAnRU5ELW9mLS9ob21lL2xpdXRvbmcvamJvc3M1L2ZpbGVzL3BrZy1kZWluc3RhbGwuaW4n ClgjIS9iaW4vc2gKWCMKWCMgVGhpcyBzY3JpcHQgZG9lcyB0aGUgZm9sbG93aW5nLgpYIwpYIyAq IENoZWNrcyBpZiB0aGUgSkJvc3MgUElEIGZpbGUgZXhpc3RzLiBJZiBpdCBkb2VzLCBpdCBraWxs cyB0aGUKWCMgICBKQm9zcyBwcm9jZXNzIGFuZCByZW1vdmVzIHRoZSBQSUQgZmlsZS4KWCMKWCMg JEZyZWVCU0QkClgjClgKWCMgTWFrZSBzdXJlIHdlJ3JlIGluIHRoZSByaWdodCBzdGFnZSBvZiB0 aGUgcHJvY2VzcwpYaWYgWyAiJDIiID0gIkRFSU5TVEFMTCIgXTsgdGhlbgpYClgJIyBLaWxsIEpC b3NzIGlmIGl0IGlzIHN0aWxsIHJ1bm5pbmcKWAlQSURfRklMRT0vdmFyL3J1bi9qYm9zcy5waWQK WAlpZiBbIC1zICR7UElEX0ZJTEV9IF07IHRoZW4KWAkJUElEPWBjYXQgJHtQSURfRklMRX1gClgJ CWVjaG8gLW4gIj4+IEtpbGxpbmcgSkJvc3MgU2VydmVyIHByb2Nlc3MgKCR7UElEfSkuLi4iClgJ CS9iaW4va2lsbCAke1BJRH0gPiAvZGV2L251bGwgMj4gL2Rldi9udWxsClgJCWlmIFsgJD8gLWVx IDAgXTsgdGhlbgpYCQkJZWNobyAiIFsgRE9ORSBdIgpYCQllbHNlClgJCQllY2hvICIgWyBGQUlM RUQgXSIKWAkJZmkKWAkJZWNobyAtbiAiPj4gUmVtb3ZpbmcgUElEIGZpbGUgKCR7UElEX0ZJTEV9 KS4uLiIKWAkJcm0gJHtQSURfRklMRX0gPiAvZGV2L251bGwgMj4gL2Rldi9udWxsClgJCWlmIFsg JD8gLWVxIDAgXTsgdGhlbgpYCQkJZWNobyAiIFsgRE9ORSBdIgpYCQllbHNlClgJCQllY2hvICIg WyBGQUlMRUQgXSIKWAkJZmkKWAlmaQpYZmkKWApYZXhpdCAwCkVORC1vZi0vaG9tZS9saXV0b25n L2pib3NzNS9maWxlcy9wa2ctZGVpbnN0YWxsLmluCmVjaG8geCAtIC9ob21lL2xpdXRvbmcvamJv c3M1L2ZpbGVzL3BrZy1tZXNzYWdlLmluCnNlZCAncy9eWC8vJyA+L2hvbWUvbGl1dG9uZy9qYm9z czUvZmlsZXMvcGtnLW1lc3NhZ2UuaW4gPDwgJ0VORC1vZi0vaG9tZS9saXV0b25nL2pib3NzNS9m aWxlcy9wa2ctbWVzc2FnZS5pbicKWCUlUEtHTkFNRSUlIGhhcyBiZWVuIGluc3RhbGxlZCBpbiAl JUFQUF9IT01FJSUuClgKWElmIGEgdXNlciBzaG91bGQgYmUgYWJsZSB0byB1c2UgJSVDT05UUk9M X1NDUklQVF9OQU1FJSUsIHB1dCBpdCBpbiB0aGUgZ3JvdXAgJyUlR1JPVVAlJScuClgKWFVzZSAn bWFuICUlQ09OVFJPTF9TQ1JJUFRfTkFNRSUlJyBmb3IgaW5mb3JtYXRpb24gYWJvdXQgc3RhcnRp bmcgYW5kIHN0b3BwaW5nICUlQVBQX1RJVExFJSUuClgKWFRvIHJ1biB0aGUgJSVBUFBfVElUTEUl JSBzZXJ2ZXIgZnJvbSBzdGFydHVwLCBhZGQgJSVBUFBfU0hPUlROQU1FJSVfZW5hYmxlPSJZRVMi IGluIHlvdXIgL2V0Yy9yYy5jb25mLiBFeHRyYSBvcHRpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUg c3RhcnR1cCBzY3JpcHQuCkVORC1vZi0vaG9tZS9saXV0b25nL2pib3NzNS9maWxlcy9wa2ctbWVz c2FnZS5pbgplY2hvIHggLSAvaG9tZS9saXV0b25nL2pib3NzNS9maWxlcy9wYXRjaC1idWlsZG1h Z2ljLmVudApzZWQgJ3MvXlgvLycgPi9ob21lL2xpdXRvbmcvamJvc3M1L2ZpbGVzL3BhdGNoLWJ1 aWxkbWFnaWMuZW50IDw8ICdFTkQtb2YtL2hvbWUvbGl1dG9uZy9qYm9zczUvZmlsZXMvcGF0Y2gt YnVpbGRtYWdpYy5lbnQnClgtLS0gLi90b29scy9ldGMvYnVpbGRtYWdpYy9idWlsZG1hZ2ljLmVu dC5vcmlnCU1vbiBOb3YgMjAgMDc6NDU6NTUgMjAwNgpYKysrIC4vdG9vbHMvZXRjL2J1aWxkbWFn aWMvYnVpbGRtYWdpYy5lbnQJU3VuIE1hciAyNSAyMToyODoxNCAyMDA3ClhAQCAtNywzNCArNyw2 IEBAClggPCEtLSBJbml0aWFsaXplIHRoZSBidWlsZCBzeXN0ZW0uIC0tPgpYIDx0YXJnZXQgbmFt ZT0iX2J1aWxkbWFnaWM6aW5pdCIgdW5sZXNzPSJpbml0LmRpc2FibGUiPgpYIApYLSAgPCEtLSBN YWtlIHN1cmUgd2UgaGF2ZSB0aGUgcmlnaHQgdmVyc2lvbiBvZiBBbnQgLS0+ClgtICA8cHJvcGVy dHkgbmFtZT0iYnVpbGRtYWdpYy5hbnQxNS5iYXNldmVyc2lvbiIgdmFsdWU9IjEuNSIvPgpYLSAg PHByb3BlcnR5IG5hbWU9ImJ1aWxkbWFnaWMuYW50MTYuYmFzZXZlcnNpb24iIHZhbHVlPSIxLjYi Lz4KWC0KWC0gIDwhLS0KWC0gICAgIHwgQWRkIG5ldyBjb25kaXRpb25zIGZvciBvdGhlciBzdXBw b3J0ZWQgQW50IHZlcnNpb25zIHdoZW4gdGhleQpYLSAgICAgfCBiZWNvbWUgYXZhaWFsYmxlLgpY LSAgIC0tPgpYLQpYLSAgPGNvbmRpdGlvbiBwcm9wZXJ0eT0iYnVpbGRtYWdpYy5hbnQuY29tcGF0 aWJsZSI+ClgtICAgIDxvcj4KWC0gICAgICA8Y29udGFpbnMgc3RyaW5nPSIke2FudC52ZXJzaW9u fSIKWC0gICAgICAgIHN1YnN0cmluZz0iQW50IHZlcnNpb24gJHtidWlsZG1hZ2ljLmFudDE1LmJh c2V2ZXJzaW9ufSIvPgpYLSAgICAgIDxjb250YWlucyBzdHJpbmc9IiR7YW50LnZlcnNpb259IgpY LSAgICAgICAgc3Vic3RyaW5nPSJBbnQgdmVyc2lvbiAke2J1aWxkbWFnaWMuYW50MTYuYmFzZXZl cnNpb259Ii8+ClgtICAgIDwvb3I+ClgtICA8L2NvbmRpdGlvbj4KWC0KWC0gIDxmYWlsIHVubGVz cz0iYnVpbGRtYWdpYy5hbnQuY29tcGF0aWJsZSI+ClgtClgtICBVbnN1cHBvcnRlZCBBbnQgdmVy c2lvbjoKWC0KWC0gICAgJHthbnQudmVyc2lvbn0KWC0KWC0gIFBsZWFzZSBpbnN0YWxsIGEgdmVy c2lvbiB3aGljaCBpcyBjb21wYXRpYmxlIHdpdGggQW50ICR7YnVpbGRtYWdpYy5hbnQxNS5iYXNl dmVyc2lvbn0gb3IgJHtidWlsZG1hZ2ljLmFudDE2LmJhc2V2ZXJzaW9ufS4KWC0KWC0gIDwvZmFp bD4KWC0KWCAgIDwhLS0gSkRLIERldGVjdGlvbiAtLT4KWCAgIDxhdmFpbGFibGUgY2xhc3NuYW1l PSJqYXZhLmxhbmcuU3RhY2tUcmFjZUVsZW1lbnQiIHByb3BlcnR5PSJIQVZFX0pES18xLjQiLz4K WCAgIDxhdmFpbGFibGUgY2xhc3NuYW1lPSJqYXZhLmxhbmcuRW51bSIgcHJvcGVydHk9IkhBVkVf SkRLXzEuNSIvPgpFTkQtb2YtL2hvbWUvbGl1dG9uZy9qYm9zczUvZmlsZXMvcGF0Y2gtYnVpbGRt YWdpYy5lbnQKZWNobyB4IC0gL2hvbWUvbGl1dG9uZy9qYm9zczUvTWFrZWZpbGUKc2VkICdzL15Y Ly8nID4vaG9tZS9saXV0b25nL2pib3NzNS9NYWtlZmlsZSA8PCAnRU5ELW9mLS9ob21lL2xpdXRv bmcvamJvc3M1L01ha2VmaWxlJwpYIyBwb3J0cyBjb2xsZWN0aW9uIG1ha2VmaWxlIGZvcjogamJv c3M1ClgjIERhdGUgY3JlYXRlZDogICAgICAgICAgICAgICAgICA3IE1heSAyMDA3ClgjIFdob206 ICAgICAgICAgICAgICAgICAgICAgICAgICBuZW1vbGl1QGdtYWlsLmNvbSA8bmVtb2xpdUBnbWFp bC5jb20+ClgjClgjICRGcmVlQlNEJApYIwpYClhQT1JUTkFNRT0JJHtBUFBfVElUTEU6TH0KWFBP UlRWRVJTSU9OPQk1LjAuMC5iMQpYUE9SVEVQT0NIPQkxClhDQVRFR09SSUVTPQlqYXZhIGRldmVs ClhNQVNURVJfU0lURVM9CSR7TUFTVEVSX1NJVEVfU09VUkNFRk9SR0V9ClhNQVNURVJfU0lURV9T VUJESVI9CSR7UE9SVE5BTUV9ClhESVNUTkFNRT0JJHtQT1JUTkFNRX0tJHtQT1JUVkVSU0lPTjpS fS5CZXRhMS1zcmMKWApYTUFJTlRBSU5FUj0JbmVtb2xpdUBnbWFpbC5jb20KWENPTU1FTlQ9CU9w ZW4tc291cmNlIEoyRUUgYXBwbGljYXRpb24gc2VydmVyICg1LnggZmFtaWx5KQpYClhCVUlMRF9E RVBFTkRTPQlhbnQ6JHtQT1JUU0RJUn0vZGV2ZWwvYXBhY2hlLWFudApYClhMQVRFU1RfTElOSz0J amJvc3M1ClhVU0VfSkFWQT0JeWVzClhKQVZBX1ZFUlNJT049CTEuNSsKWFVTRV9BTlQ9CXllcwpY ClhNQUtFX0FSR1M9CS1idWlsZGZpbGUgYnVpbGQvYnVpbGQueG1sClgKWFVTRV9SQ19TVUJSPQlq Ym9zczUuc2gKWFNVQl9GSUxFUz0JcGtnLWluc3RhbGwgcGtnLWRlaW5zdGFsbCBwa2ctbWVzc2Fn ZSBkYWVtb25jdGwuMSBkYWVtb25jdGwuYwpYClguaWYgIWRlZmluZWQoTk9QT1JURE9DUykKWFBP UlRET0NTPQkqClguZW5kaWYKWApYQVBQX0hPTUU/PQkke1BSRUZJWH0vJHtBUFBfU0hPUlROQU1F fQpYRE9DU0RJUj0JJHtQUkVGSVh9L3NoYXJlL2RvYy8ke1BLR0JBU0V9JHtQT1JUVkVSU0lPTjpS fQpYTE9HX0RJUj0JJHtBUFBfSE9NRX0vbG9nClhBUFBfVElUTEU9CUpCb3NzClhBUFBfU0hPUlRO QU1FPQkke1VOSVFVRU5BTUV9ClhDT05UUk9MX1NDUklQVF9OQU1FPQkke0FQUF9TSE9SVE5BTUV9 Y3RsClhDT05UUk9MX1NDUklQVD0JJHtQUkVGSVh9L2Jpbi8ke0NPTlRST0xfU0NSSVBUX05BTUV9 ClhDT05UUk9MX1NDUklQVF9NQU5QQUdFX1RJVExFPQkke0NPTlRST0xfU0NSSVBUX05BTUU6VX0K WFNUQVJUVVBfU0NSSVBUX05BTUU9CSR7QVBQX1NIT1JUTkFNRX0uc2gKWFNUQVJUVVBfU0NSSVBU PQkke1BSRUZJWH0vZXRjL3JjLmQvJHtTVEFSVFVQX1NDUklQVF9OQU1FfQpYVVNFUj0JCXd3dwpY R1JPVVA9CQl3d3cKWFNURE9VVF9MT0c9CSR7TE9HX0RJUn0vc3Rkb3V0LmxvZwpYU1RERVJSX0xP Rz0JJHtMT0dfRElSfS9zdGRlcnIubG9nClhBVVRPX1NUQVJUPz0JTk8KWFNUT1BfVElNRU9VVD89 CTUKWFBJRF9GSUxFPQkvdmFyL3J1bi8ke0FQUF9TSE9SVE5BTUV9LnBpZApYSkFWQV9PUFRTPQpY SkFWQV9DUD0JYmluL3J1bi5qYXI6JHtKQVZBX0hPTUV9L2xpYi90b29scy5qYXIKWEpBVkFfTUFJ Tj0Jb3JnLmpib3NzLk1haW4KWE1BTjE9CQkke0NPTlRST0xfU0NSSVBUX05BTUV9LjEKWApYSkJP U1NPVVRQVVQ9CSR7V1JLU1JDfS9idWlsZC9vdXRwdXQvJHtQT1JUTkFNRX0tJHtQT1JUVkVSU0lP TjpSfS5CZXRhMQpYQVBQX0hPTUVfRklMRVM9CWJpbiBjbGllbnQgbGliIHNlcnZlcgpYClhQS0dN RVNTQUdFPQkke1dSS0RJUn0vcGtnLW1lc3NhZ2UKWApYUExJU1RfRklMRVM9CSR7Q09OVFJPTF9T Q1JJUFQ6UyxeJHtQUkVGSVh9LywsfSBcClgJCSR7U1RET1VUX0xPRzpTLF4ke1BSRUZJWH0vLCx9 IFwKWAkJJHtTVERFUlJfTE9HOlMsXiR7UFJFRklYfS8sLH0KWApYU1VCX0xJU1Q9CUFQUF9IT01F PSR7QVBQX0hPTUV9IFwKWAkJQVBQX1NIT1JUTkFNRT0ke0FQUF9TSE9SVE5BTUV9IFwKWAkJQVBQ X1RJVExFPSR7QVBQX1RJVExFfSBcClgJCUNPTlRST0xfU0NSSVBUPSR7Q09OVFJPTF9TQ1JJUFR9 IFwKWAkJQ09OVFJPTF9TQ1JJUFRfTUFOUEFHRV9USVRMRT0ke0NPTlRST0xfU0NSSVBUX01BTlBB R0VfVElUTEV9IFwKWAkJQ09OVFJPTF9TQ1JJUFRfTkFNRT0ke0NPTlRST0xfU0NSSVBUX05BTUV9 IFwKWAkJR1JPVVA9JHtHUk9VUH0gXApYCQlKQVZBPSR7SkFWQX0gXApYCQlKQVZBX0NQPSR7SkFW QV9DUH0gXApYCQlKQVZBX0hPTUU9JHtKQVZBX0hPTUV9IFwKWAkJSkFWQV9NQUlOPSR7SkFWQV9N QUlOfSBcClgJCUpBVkFfT1BUUz0ke0pBVkFfT1BUU30gXApYCQlKQVZBX1BPUlRfVkVSU0lPTj0k e0pBVkFfUE9SVF9WRVJTSU9OfSBcClgJCUpBVkFfUE9SVF9PU19ERVNDUklQVElPTj0ke0pBVkFf UE9SVF9PU19ERVNDUklQVElPTn0gXApYCQlKQVJfRklMRT0ke0pBUl9GSUxFfSBcClgJCUxPR19E SVI9JHtMT0dfRElSfSBcClgJCVBJRF9GSUxFPSR7UElEX0ZJTEV9IFwKWAkJUEtHTkFNRT0ke1BL R05BTUV9IFwKWAkJUE9SVE5BTUU9JHtQT1JUTkFNRX0gXApYCQlQT1JUVkVSU0lPTj0ke1BPUlRW RVJTSU9OfSBcClgJCVBSRUZJWD0ke1BSRUZJWH0gXApYCQlTVEFSVFVQX1NDUklQVD0ke1NUQVJU VVBfU0NSSVBUfSBcClgJCVNUREVSUl9MT0c9JHtTVERFUlJfTE9HfSBcClgJCVNURE9VVF9MT0c9 JHtTVERPVVRfTE9HfSBcClgJCVNUT1BfVElNRU9VVD0ke1NUT1BfVElNRU9VVH0gXApYCQlVU0VS PSR7VVNFUn0KWApYLmluY2x1ZGUgPGJzZC5wb3J0LnByZS5taz4KWApYcHJlLXBhdGNoOgpYCUAk e0VDSE9fTVNHfSAiSW5zdGFsbGF0aW9uIHNldHRpbmdzOiIKWAlAJHtFQ0hPX01TR30gIiAgIERl c3RpbmF0aW9uIGRpcmVjdG9yeTogICAgJHtBUFBfSE9NRX0iClgJQCR7RUNIT19NU0d9ICIgICBD b250cm9sIHByb2dyYW0gbG9jYXRpb246ICR7Q09OVFJPTF9TQ1JJUFR9IgpYCUAke0VDSE9fTVNH fSAiICAgU3RhcnR1cCBzY3JpcHQgbG9jYXRpb246ICAke1NUQVJUVVBfU0NSSVBUfSIKWAlAJHtF Q0hPX01TR30gIiAgIExvY2F0aW9uIG9mIEpESzogICAgICAgICAgJHtKQVZBX0hPTUV9IgpYCUAk e0VDSE9fTVNHfSAiICAgTG9jYXRpb24gb2YgSmF2YSBwb3J0OiAgICAke0pBVkFfUE9SVH0iClgJ QCR7RUNIT19NU0d9ICIgICBTdGFydHVwIEphdmEgT3B0aW9uczogICAgICR7SkFWQV9PUFRTfSIK WAlAJHtFQ0hPX01TR30gIiAgIFJ1bm5pbmcgYXMgKHVzZXIvZ3JvdXApOiAgJHtVU0VSfS8ke0dS T1VQfSIKWAlAJHtFQ0hPX01TR30gIiAgIExvZ2ZpbGUgc3Rkb3V0OiAgICAgICAgICAgJHtTVERP VVRfTE9HfSIKWAlAJHtFQ0hPX01TR30gIiAgIExvZ2ZpbGUgc3RkZXJyOiAgICAgICAgICAgJHtT VERFUlJfTE9HfSIKWAlAJHtFQ0hPX01TR30gIiAgIFN0YXJ0aW5nIGFmdGVyIGluc3RhbGw6ICAg JHtBVVRPX1NUQVJUfSIKWAlAJHtFQ0hPX01TR30gIiAgIFN0b3AgdGltZS1vdXQ6ICAgICAgICAg ICAgJHtTVE9QX1RJTUVPVVR9IHNlYy4iClgKWHByZS1pbnN0YWxsOgpYCUAke1NFVEVOVn0gUEtH X1BSRUZJWD0ke1BSRUZJWH0gJHtTSH0gJHtQS0dJTlNUQUxMfSAke1BLR05BTUV9IFBSRS1JTlNU QUxMClgKWGRvLWluc3RhbGw6ClgJY2QgJHtXUktESVJ9ICYmICR7Q0N9ICR7Q0ZMQUdTfSAtbyAk e0NPTlRST0xfU0NSSVBUX05BTUV9IGRhZW1vbmN0bC5jClgJJHtNS0RJUn0gJHtBUFBfSE9NRX0g JiYgJHtDSE9XTn0gJHtVU0VSfToke0dST1VQfSAke0FQUF9IT01FfQpYCSR7TUtESVJ9ICR7TE9H X0RJUn0gJiYgJHtDSE9XTn0gJHtVU0VSfToke0dST1VQfSAke0xPR19ESVJ9ClgJKGNkICR7SkJP U1NPVVRQVVR9ICYmICR7RklORH0gJHtBUFBfSE9NRV9GSUxFU30gfFwKWAkJJHtDUElPfSAtcGRt dSAtUiAke1VTRVJ9OiR7R1JPVVB9ICR7QVBQX0hPTUV9KQpYCSR7SU5TVEFMTH0gLW8gJHtVU0VS fSAtZyAke0dST1VQfSAtbSAwNjc1NFwKWAkJJHtXUktESVJ9LyR7Q09OVFJPTF9TQ1JJUFRfTkFN RX0gJHtDT05UUk9MX1NDUklQVH0KWAkke0lOU1RBTEx9IC1vICR7VVNFUn0gLWcgJHtHUk9VUH0g LW0gMDY0MCAvZGV2L251bGwgJHtTVERPVVRfTE9HfQpYCSR7SU5TVEFMTH0gLW8gJHtVU0VSfSAt ZyAke0dST1VQfSAtbSAwNjQwIC9kZXYvbnVsbCAke1NUREVSUl9MT0d9ClgJJHtJTlNUQUxMfSAt byAke1VTRVJ9IC1nICR7R1JPVVB9IC1tIDA2NDAgL2Rldi9udWxsICR7UElEX0ZJTEV9ClgJJHtJ TlNUQUxMX01BTn0gJHtXUktESVJ9L2RhZW1vbmN0bC4xICR7TUFOUFJFRklYfS9tYW4vbWFuMS8k e0NPTlRST0xfU0NSSVBUX05BTUV9LjEKWC5pZiAhZGVmaW5lZChOT1BPUlRET0NTKQpYCWNkICR7 SkJPU1NPVVRQVVR9L2RvY3MgXApYCQkmJiAke0ZJTkR9IC4gLXR5cGUgZCAtZXhlYyAke01LRElS fSAke0RPQ1NESVJ9L3t9IFw7IFwKWAkJJiYgJHtGSU5EfSAuIC10eXBlIGYgLWV4ZWMgJHtJTlNU QUxMX0RBVEF9IHt9ICR7RE9DU0RJUn0ve30gXDsKWC5lbmRpZgpYClhwb3N0LWluc3RhbGw6ClgJ QCR7RklORH0gLXMgJHtBUFBfSE9NRV9GSUxFUzpTLF4sJHtKQk9TU09VVFBVVH0vLH0gLW5vdCAt dHlwZSBkIHwgXApYCQkke1NFRH0gLW5lICdzLF4ke0pCT1NTT1VUUFVUfSwke0FQUF9IT01FOlMs JHtQUkVGSVh9LywsfSxwJyA+PiAke1RNUFBMSVNUfQpYCUAke0ZJTkR9IC1zIC1kICR7QVBQX0hP TUVfRklMRVM6UyxeLCR7SkJPU1NPVVRQVVR9Lyx9IC10eXBlIGQgfCBcClgJCSR7U0VEfSAtbmUg J3MsXiR7SkJPU1NPVVRQVVR9LEBkaXJybSAke0FQUF9IT01FOlMsJHtQUkVGSVh9LywsfSxwJyA+ PiAke1RNUFBMSVNUfQpYCUAke0VDSE9fQ01EfSAiQGRpcnJtICR7QVBQX0hPTUU6UyxeJHtQUkVG SVh9LywsfS9sb2ciID4+ICR7VE1QUExJU1R9ClgJQCR7RUNIT19DTUR9ICJAZGlycm0gJHtBUFBf SE9NRTpTLF4ke1BSRUZJWH0vLCx9IiA+PiAke1RNUFBMSVNUfQpYLmlmICR7QVVUT19TVEFSVH0g PT0gIllFUyIKWAlAJHtDT05UUk9MX1NDUklQVH0gc3RhcnQgfHwgdHJ1ZQpYLmVuZGlmClguaWYg IWRlZmluZWQoQkFUQ0gpClgJQCR7Q0FUfSAke1BLR01FU1NBR0V9ClguZW5kaWYKWApYLmluY2x1 ZGUgPGJzZC5wb3J0LnBvc3QubWs+CkVORC1vZi0vaG9tZS9saXV0b25nL2pib3NzNS9NYWtlZmls ZQplY2hvIHggLSAvaG9tZS9saXV0b25nL2pib3NzNS9kaXN0aW5mbwpzZWQgJ3MvXlgvLycgPi9o b21lL2xpdXRvbmcvamJvc3M1L2Rpc3RpbmZvIDw8ICdFTkQtb2YtL2hvbWUvbGl1dG9uZy9qYm9z czUvZGlzdGluZm8nClhNRDUgKGpib3NzLTUuMC4wLkJldGExLXNyYy50YXIuZ3opID0gOTIzNjVl ZDliYWZhZTkyNWMwNzFlMjNlNzIzMjE2YmUKWFNIQTI1NiAoamJvc3MtNS4wLjAuQmV0YTEtc3Jj LnRhci5neikgPSBmMDkxNmVkY2UzMDUzYTNjYzVlNjg5NTU5ODIyYjU1OWUwZDRiMDg1ODJlZWI2 MDZmMDIwOGNhNzYzNGVmMWU1ClhTSVpFIChqYm9zcy01LjAuMC5CZXRhMS1zcmMudGFyLmd6KSA9 IDExNDM0NzIzNQpFTkQtb2YtL2hvbWUvbGl1dG9uZy9qYm9zczUvZGlzdGluZm8KZWNobyB4IC0g L2hvbWUvbGl1dG9uZy9qYm9zczUvcGtnLWRlc2NyCnNlZCAncy9eWC8vJyA+L2hvbWUvbGl1dG9u Zy9qYm9zczUvcGtnLWRlc2NyIDw8ICdFTkQtb2YtL2hvbWUvbGl1dG9uZy9qYm9zczUvcGtnLWRl c2NyJwpYSkJvc3MgQVMgNSBHQSB3aWxsIGJlIEphdmEgRUUgNSBjZXJ0aWZpZWQgYW5kIHdpbGwg aW5jbHVkZSB0aGUgZm9sbG93aW5nIGNvcmUKWHRlY2hub2xvZ2llcy4KWApYICAgICogSkJvc3Mg TWljcm9jb250YWluZXIgLSBQT0pPIGJhc2VkIG1pY3JvY29udGFpbmVyIHJlbW92aW5nIHRoZSBk ZXBlbmRlbmN5ClggICAgICBvbiBKTVgKWCAgICAqIEVKQiAzLjAgLSBGdWxseSBjZXJ0aWZpZWQg YXMgcGFydCBvZiB0aGUgSmF2YSBFRSA1IGNvbXBsaWFudCBKQm9zcyBBUyA1ClggICAgKiBIaWJl cm5hdGUgMy4yIC0gSlBBIGNlcnRpZmllZApYICAgICogSkJvc3MgTWVzc2FnaW5nIDEuMiAtIHRo ZSBuZXh0IGdlbmVyYXRpb24gbWVzc2FnaW5nIHBsYXRmb3JtIGZyb20gSkJvc3MKWCAgICAgIHdp dGggSEEgZmVhdHVyZXMuClggICAgKiBKQm9zcyBXZWJTZXJ2aWNlcyAyLjAgLSBuZXcgY3VzdG9t IGJ1aWx0IEpBWC1XUyBjb21wbGlhbnQgV2ViU2VydmljZXMKWCAgICAgIHN0YWNrLgpYICAgICog SkJvc3MgU2VhbSAxLjEgLSBhIHBvd2VyZnVsIG5ldyBhcHBsaWNhdGlvbiBmcmFtZXdvcmsgdG8g YnVpbGQgbmV4dApYICAgICAgZ2VuZXJhdGlvbiBXZWIgMi4wIGFwcGxpY2F0aW9ucyBieSB1bmlm eWluZyBhbmQgaW50ZWdyYXRpbmcgcG9wdWxhcgpYICAgICAgc2VydmljZSBvcmllbnRlZCBhcmNo aXRlY3R1cmUgKFNPQSkgdGVjaG5vbG9naWVzClgKWFdXVzogaHR0cDovL3d3dy5qYm9zcy5vcmcv CkVORC1vZi0vaG9tZS9saXV0b25nL2pib3NzNS9wa2ctZGVzY3IKZXhpdAoK ------=_Part_225228_27186714.1174832547365--