Return-Path: Delivered-To: apmail-jakarta-ant-dev-archive@apache.org Received: (qmail 97388 invoked from network); 26 Feb 2002 21:52:44 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 26 Feb 2002 21:52:44 -0000 Received: (qmail 14401 invoked by uid 97); 26 Feb 2002 21:52:35 -0000 Delivered-To: qmlist-jakarta-archive-ant-dev@jakarta.apache.org Received: (qmail 14373 invoked by uid 97); 26 Feb 2002 21:52:35 -0000 Mailing-List: contact ant-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Ant Developers List" Reply-To: "Ant Developers List" Delivered-To: mailing list ant-dev@jakarta.apache.org Received: (qmail 14362 invoked from network); 26 Feb 2002 21:52:34 -0000 Message-Id: X-Mailer: Novell GroupWise Internet Agent 6.0.1 Date: Tue, 26 Feb 2002 14:52:23 -0700 From: "Jeff Tulley" To: Subject: NetWare To-Do's (was Re: Ant 1.5 To-Do list) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_99C4D4B2.8BEAA687" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N --=_99C4D4B2.8BEAA687 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Steve, Ok, so here is what WinCVS reports after updating everything to the latest version: 1) /build.xml - minor changes, simply adding in an include of antRun.pl, as well as some cleanup. Note that in the attached lines of the diff, instead we could replace the two lines for antRun.pl and runant.pl with *.pl There might be some other places in the build.xml that I have missed where antRun.pl needs to be dealt with to get it into the correct place and "cleaned up" (??) 2) org.apache.tools.ant.PathTokenizer - fairly major changes that I agonized over how to make, getting input from the group. I think in the end I got something created that works well on all platforms and maintains backwards compatibility. But, that largely depends on people's opinions of how platform independent that code SHOULD be. I made sure that the functionality on other platforms did not change, and on NetWare, I assumed that file paths with the colon character were multi-character volume names, not UNIX style path delimiters. I attached this submission, revised to be against the latest version of the code. Related to this was: 3) org.apache.tools.ant.types.PathTest - I refactored the tests, separating out each of the platform types so that it is easy to tell what platform's style paths your OS is not handling. I increased the number and types of test cases, and added in a set of NetWare tests. (before there was a if (isUnixStyle) {}else{}, now there is a else if (isNetWare). I've attached that diff as well. Reading and understanding this test is probably key to understanding how PathTokenizer currently is designed to work in a "cross-platform" way, and that was what made the solution to the PathTokenizer NetWare support clear in the end. 4) org.apache.tools.ant.util.FileUtils - There were assumptions that any drive name that came in as part of a path would only be one character in size, and that was how FileUtils decided that the drive name needed to be specially dealt with. NetWare has multiple-character drive or volume names, so the code had to be reworked to accept drive names of any size. This was in resolveFile and normalize. Looking at the code now, the only time that backwards compatibility might be broken is if the user passed in an invalid drive name on Windows (cd:\temp instead of c:\temp") On Windows, this would have generated a "cd:\temp is not an absolute path" message before but now it would pass, since that path could be valid on NetWare. So, this could be changed in a similar manner to PathTokenizer - to actually do a check if the OS we are RUNNING on is NetWare, and only in that case allow multiple-character drive names. 5) org.apache.tools.ant.util.FileUtilsTest - I added in some test cases for multiple-character volume/drive name support. If we change FileUtils to have an if Os.isFamily("netware") (or whatever it is), then this test can change also to have the same check and OS dependent behavior. 6) bin\runant.pl - I added some fixes in that are necessary on NetWare because of a limit on the size of the command line. Basically on NetWare I do not expand the system classpath, but rather let that be deferred to java itself. No biggie, and should only effect NetWare (via an OS detection "$^O" in Perl) Absolute files will never be handled perfectly in a platform independent way, since they are by nature platform dependent. Both of the major changes here deal with that fact, and PathTokenizer at least only tries to make sure that the platform-specific drive names are handled correctly. The actual problem that I was running into had to do with a build file that ONLY have relative paths, but eventually something somewhere resolved "." to "sys:\jakarta-ant\dist\bin" (or similar), and then sent that into PathTokenizer, which did not recognize sys: as a drive name, but rather thought the colon was a UNIX path delimiter. Everything blew up at that point. Sorry for the long email, but it is good to get the ball rolling again. Thanks, Jeff Tulley (jtulley@novell.com) (801)861-5322 Novell, Inc., the leading provider of Net business solutions http://www.novell.com >>> steve_l@iseran.com 2/26/02 12:52:20 PM >>> ----- Original Message ----- From: "Jeff Tulley" To: ; Sent: Tuesday, February 26, 2002 11:16 Subject: Re: Ant 1.5 To-Do list > Can I get Novell NetWare support on your list? I'll do all of the work, > of making sure that all my submissions work in a backwards-compatible > way, that the whole of the testsuite still runs on other platforms, > etc. > > I've submitted a whole chunk of things, but I think only the FileUtils > (maybe more, I'm not sure) patch did not get accepted and committed. can you list what is not in there; and lets see what obstacles there are to adding the remaining stuff > I have just a little breathing room here at work to get this finished > up, and we would really like to see a release go out that works with > NetWare. > > I probably ought to add some documentation also of some sort as to > exactly what should work on NetWare. I think there are some problems > still under JVM 1.1.7B due to JVM bugs, that are not going to get fixed > unfortunately. JVM 1.2.2 had a few problems that might be fixable yet, > and JVM 1.3 seemed to work fine. This probably ought to be spelled out > somewhere and fixed where possible. > Actually, a per-platform notes page may make sense for not just netware, but windows ("2s time granularity on NTFS; ...etc", Mac, Unix versions... -- To unsubscribe, e-mail: For additional commands, e-mail: --=_99C4D4B2.8BEAA687 Content-Type: application/octet-stream; name="PathTest.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="PathTest.patch" SW5kZXg6IFBhdGhUZXN0LmphdmENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9jdnNwdWJs aWMvamFrYXJ0YS1hbnQvc3JjL3Rlc3RjYXNlcy9vcmcvYXBhY2hlL3Rvb2xzL2FudC90eXBlcy9Q YXRoVGVzdC5qYXZhLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMQ0KZGlmZiAtdSAtcjEuMTEg UGF0aFRlc3QuamF2YQ0KLS0tIFBhdGhUZXN0LmphdmEJMzEgT2N0IDIwMDEgMTE6MDU6MDAgLTAw MDAJMS4xMQ0KKysrIFBhdGhUZXN0LmphdmEJOCBKYW4gMjAwMiAyMTo1NDo1OCAtMDAwMA0KQEAg LTg2LDcgKzg2LDcgQEANCiAgICAgfQ0KIA0KICAgICAvLyBhY3R1YWxseSB0ZXN0cyBjb25zdHJ1 Y3RvciBhcyB3ZWxsIGFzIHNldFBhdGgNCi0gICAgcHVibGljIHZvaWQgdGVzdENvbnN0cnVjdG9y KCkgew0KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q29uc3RydWN0b3JVbml4U3R5bGUoKSB7DQogICAg ICAgICBQYXRoIHAgPSBuZXcgUGF0aChwcm9qZWN0LCAiL2E6L2IiKTsNCiAgICAgICAgIFN0cmlu Z1tdIGwgPSBwLmxpc3QoKTsNCiAgICAgICAgIGFzc2VydEVxdWFscygidHdvIGl0ZW1zLCBVbml4 IHN0eWxlIiwgMiwgbC5sZW5ndGgpOw0KQEAgLTEwMCw5ICsxMDAsMTEgQEANCiAgICAgICAgICAg ICBhc3NlcnRFcXVhbHMoIjpcXGEiLCBsWzBdLnN1YnN0cmluZygxKSk7DQogICAgICAgICAgICAg YXNzZXJ0RXF1YWxzKCI6XFxiIiwgbFsxXS5zdWJzdHJpbmcoMSkpOw0KICAgICAgICAgfSAgICAg ICAgDQorICAgIH0NCiANCi0gICAgICAgIHAgPSBuZXcgUGF0aChwcm9qZWN0LCAiXFxhO1xcYiIp Ow0KLSAgICAgICAgbCA9IHAubGlzdCgpOw0KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q29uc3RydWN0 b3JXaW5kb3dzU3R5bGUoKSB7DQorICAgICAgICBQYXRoIHAgPSBuZXcgUGF0aChwcm9qZWN0LCAi XFxhO1xcYiIpOw0KKyAgICAgICAgU3RyaW5nW10gbCA9IHAubGlzdCgpOw0KICAgICAgICAgYXNz ZXJ0RXF1YWxzKCJ0d28gaXRlbXMsIERPUyBzdHlsZSIsIDIsIGwubGVuZ3RoKTsNCiAgICAgICAg IGlmIChpc1VuaXhTdHlsZSkgew0KICAgICAgICAgICAgIGFzc2VydEVxdWFscygiL2EiLCBsWzBd KTsNCkBAIC0xMTUsMjMgKzExNyw2IEBADQogICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCI6XFxi IiwgbFsxXS5zdWJzdHJpbmcoMSkpOw0KICAgICAgICAgfSAgICAgICAgDQogDQotICAgICAgICBw ID0gbmV3IFBhdGgocHJvamVjdCwgIlxcYTtcXGI6L2MiKTsNCi0gICAgICAgIGwgPSBwLmxpc3Qo KTsNCi0gICAgICAgIGFzc2VydEVxdWFscygidGhyZWUgaXRlbXMsIG1peGVkIHN0eWxlIiwgMywg bC5sZW5ndGgpOw0KLSAgICAgICAgaWYgKGlzVW5peFN0eWxlKSB7DQotICAgICAgICAgICAgYXNz ZXJ0RXF1YWxzKCIvYSIsIGxbMF0pOw0KLSAgICAgICAgICAgIGFzc2VydEVxdWFscygiL2IiLCBs WzFdKTsNCi0gICAgICAgICAgICBhc3NlcnRFcXVhbHMoIi9jIiwgbFsyXSk7DQotICAgICAgICB9 IGVsc2UgaWYgKGlzTmV0V2FyZSkgew0KLSAgICAgICAgICAgIGFzc2VydEVxdWFscygiXFxhIiwg bFswXSk7DQotICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJcXGIiLCBsWzFdKTsNCi0gICAgICAg ICAgICBhc3NlcnRFcXVhbHMoIlxcYyIsIGxbMl0pOw0KLSAgICAgICAgfSBlbHNlIHsNCi0gICAg ICAgICAgICBhc3NlcnRFcXVhbHMoIjpcXGEiLCBsWzBdLnN1YnN0cmluZygxKSk7DQotICAgICAg ICAgICAgYXNzZXJ0RXF1YWxzKCI6XFxiIiwgbFsxXS5zdWJzdHJpbmcoMSkpOw0KLSAgICAgICAg ICAgIGFzc2VydEVxdWFscygiOlxcYyIsIGxbMl0uc3Vic3RyaW5nKDEpKTsNCi0gICAgICAgIH0g ICAgICAgIA0KLQ0KICAgICAgICAgcCA9IG5ldyBQYXRoKHByb2plY3QsICJjOlxcdGVzdCIpOw0K ICAgICAgICAgbCA9IHAubGlzdCgpOw0KICAgICAgICAgaWYgKGlzVW5peFN0eWxlKSB7DQpAQCAt MTQ0LDcgKzEyOSwyNyBAQA0KICAgICAgICAgICAgIGFzc2VydEVxdWFscygiYzpcXHRlc3QiLCBs WzBdLnRvTG93ZXJDYXNlKExvY2FsZS5VUykpOw0KICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAg ICAgICBhc3NlcnRFcXVhbHMoImRyaXZlcyBvbiBET1MiLCAxLCBsLmxlbmd0aCk7DQorICAgICAg ICAgICAgYXNzZXJ0RXF1YWxzKCJjOlxcdGVzdCIsIGxbMF0udG9Mb3dlckNhc2UoKSk7DQorICAg ICAgICB9DQorDQorICAgICAgICBwID0gbmV3IFBhdGgocHJvamVjdCwgImM6XFx0ZXN0O2Q6XFxw cm9ncmFtcyIpOw0KKyAgICAgICAgbCA9IHAubGlzdCgpOw0KKyAgICAgICAgaWYgKGlzVW5peFN0 eWxlKSB7DQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJubyBkcml2ZXMgb24gVW5peCIsIDQs IGwubGVuZ3RoKTsNCisgICAgICAgICAgICBhc3NlcnRUcnVlKCJjIHJlc29sdmVkIHJlbGF0aXZl IHRvIHByb2plY3RcJ3MgYmFzZWRpciIsIA0KKyAgICAgICAgICAgICAgICAgICBsWzBdLmVuZHNX aXRoKCIvYyIpKTsNCisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIi90ZXN0IiwgbFsxXSk7DQor ICAgICAgICAgICAgYXNzZXJ0VHJ1ZSgiZCByZXNvbHZlZCByZWxhdGl2ZSB0byBwcm9qZWN0XCdz IGJhc2VkaXIiLCANCisgICAgICAgICAgICAgICAgICAgbFsyXS5lbmRzV2l0aCgiL2QiKSk7DQor ICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCIvcHJvZ3JhbXMiLCBsWzNdKTsNCisgICAgICAgIH0g ZWxzZSBpZiAoaXNOZXRXYXJlKSB7DQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJ2b2x1bWVz IG9uIE5ldFdhcmUiLCAyLCBsLmxlbmd0aCk7DQogICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJj OlxcdGVzdCIsIGxbMF0udG9Mb3dlckNhc2UoTG9jYWxlLlVTKSk7DQorICAgICAgICAgICAgYXNz ZXJ0RXF1YWxzKCJkOlxccHJvZ3JhbXMiLCBsWzFdLnRvTG93ZXJDYXNlKExvY2FsZS5VUykpOw0K KyAgICAgICAgfSBlbHNlIHsNCisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImRyaXZlcyBvbiBE T1MiLCAyLCBsLmxlbmd0aCk7DQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJjOlxcdGVzdCIs IGxbMF0udG9Mb3dlckNhc2UoKSk7DQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJkOlxccHJv Z3JhbXMiLCBsWzFdLnRvTG93ZXJDYXNlKCkpOw0KICAgICAgICAgfQ0KIA0KICAgICAgICAgcCA9 IG5ldyBQYXRoKHByb2plY3QsICJjOi90ZXN0Iik7DQpAQCAtMTU5LDggKzE2NCwxNDEgQEANCiAg ICAgICAgICAgICBhc3NlcnRFcXVhbHMoImM6XFx0ZXN0IiwgbFswXS50b0xvd2VyQ2FzZShMb2Nh bGUuVVMpKTsNCiAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJk cml2ZXMgb24gRE9TIiwgMSwgbC5sZW5ndGgpOw0KKyAgICAgICAgICAgIGFzc2VydEVxdWFscygi YzpcXHRlc3QiLCBsWzBdLnRvTG93ZXJDYXNlKCkpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAg cCA9IG5ldyBQYXRoKHByb2plY3QsICJjOi90ZXN0O2Q6L3Byb2dyYW1zIik7DQorICAgICAgICBs ID0gcC5saXN0KCk7DQorICAgICAgICBpZiAoaXNVbml4U3R5bGUpIHsNCisgICAgICAgICAgICBh c3NlcnRFcXVhbHMoIm5vIGRyaXZlcyBvbiBVbml4IiwgNCwgbC5sZW5ndGgpOw0KKyAgICAgICAg ICAgIGFzc2VydFRydWUoImMgcmVzb2x2ZWQgcmVsYXRpdmUgdG8gcHJvamVjdFwncyBiYXNlZGly IiwgDQorICAgICAgICAgICAgICAgICAgIGxbMF0uZW5kc1dpdGgoIi9jIikpOw0KKyAgICAgICAg ICAgIGFzc2VydEVxdWFscygiL3Rlc3QiLCBsWzFdKTsNCisgICAgICAgICAgICBhc3NlcnRUcnVl KCJkIHJlc29sdmVkIHJlbGF0aXZlIHRvIHByb2plY3RcJ3MgYmFzZWRpciIsIA0KKyAgICAgICAg ICAgICAgICAgICBsWzJdLmVuZHNXaXRoKCIvZCIpKTsNCisgICAgICAgICAgICBhc3NlcnRFcXVh bHMoIi9wcm9ncmFtcyIsIGxbM10pOw0KKyAgICAgICAgfSBlbHNlIGlmIChpc05ldFdhcmUpIHsN CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInZvbHVtZXMgb24gTmV0V2FyZSIsIDIsIGwubGVu Z3RoKTsNCiAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImM6XFx0ZXN0IiwgbFswXS50b0xvd2Vy Q2FzZShMb2NhbGUuVVMpKTsNCisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImQ6XFxwcm9ncmFt cyIsIGxbMV0udG9Mb3dlckNhc2UoTG9jYWxlLlVTKSk7DQorICAgICAgICB9IGVsc2Ugew0KKyAg ICAgICAgICAgIGFzc2VydEVxdWFscygiZHJpdmVzIG9uIERPUyIsIDIsIGwubGVuZ3RoKTsNCisg ICAgICAgICAgICBhc3NlcnRFcXVhbHMoImM6XFx0ZXN0IiwgbFswXS50b0xvd2VyQ2FzZSgpKTsN CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImQ6XFxwcm9ncmFtcyIsIGxbMV0udG9Mb3dlckNh c2UoKSk7DQorICAgICAgICB9DQorICAgIH0NCisNCisgICAgcHVibGljIHZvaWQgdGVzdENvbnN0 cnVjdG9yTmV0V2FyZVN0eWxlKCkgew0KKyAgICAgICAgLy8gdHJ5IGEgbmV0d2FyZS12b2x1bWUg bGVuZ3RoIHBhdGgsIHNlZSBob3cgaXQgaXMgaGFuZGxlZA0KKyAgICAgICAgUGF0aCBwID0gbmV3 IFBhdGgocHJvamVjdCwgInN5czpcXHRlc3QiKTsNCisgICAgICAgIFN0cmluZ1tdIGwgPSBwLmxp c3QoKTsNCisgICAgICAgIGlmIChpc1VuaXhTdHlsZSkgew0KKyAgICAgICAgICAgIGFzc2VydEVx dWFscygibm8gZHJpdmVzIG9uIFVuaXgiLCAyLCBsLmxlbmd0aCk7DQorICAgICAgICAgICAgYXNz ZXJ0VHJ1ZSgic3lzIHJlc29sdmVkIHJlbGF0aXZlIHRvIHByb2plY3RcJ3MgYmFzZWRpciIsIA0K KyAgICAgICAgICAgICAgICAgICBsWzBdLmVuZHNXaXRoKCIvc3lzIikpOw0KKyAgICAgICAgICAg IGFzc2VydEVxdWFscygiL3Rlc3QiLCBsWzFdKTsNCisgICAgICAgIH0gZWxzZSBpZiAoaXNOZXRX YXJlKSB7DQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJzeXM6XFx0ZXN0IiwgbFswXS50b0xv d2VyQ2FzZShMb2NhbGUuVVMpKTsNCisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInZvbHVtZXMg b24gTmV0V2FyZSIsIDEsIGwubGVuZ3RoKTsNCisgICAgICAgIH0gZWxzZSB7DQorICAgICAgICAg ICAgYXNzZXJ0RXF1YWxzKCJubyBtdWx0aXBsZSBjaGFyYWN0ZXItbGVuZ3RoIHZvbHVtZXMgb24g V2luZG93cyIsIDIsIGwubGVuZ3RoKTsNCisgICAgICAgICAgICBhc3NlcnRUcnVlKCJzeXMgcmVz b2x2ZWQgcmVsYXRpdmUgdG8gcHJvamVjdFwncyBiYXNlZGlyIiwgDQorICAgICAgICAgICAgICAg ICAgIGxbMF0uZW5kc1dpdGgoIlxcc3lzIikpOw0KKyAgICAgICAgICAgIGFzc2VydFRydWUoInRl c3QgcmVzb2x2ZWQgcmVsYXRpdmUgdG8gcHJvamVjdFwncyBiYXNlZGlyIiwgDQorICAgICAgICAg ICAgICAgICAgIGxbMV0uZW5kc1dpdGgoIlxcdGVzdCIpKTsNCisgICAgICAgIH0NCisNCisgICAg ICAgIC8vIHRyeSBhIG11bHRpLXBhcnQgbmV0d2FyZS12b2x1bWUgbGVuZ3RoIHBhdGgsIHNlZSBo b3cgaXQgaXMgaGFuZGxlZA0KKyAgICAgICAgcCA9IG5ldyBQYXRoKHByb2plY3QsICJzeXM6XFx0 ZXN0O2RldjpcXHRlbXAiKTsNCisgICAgICAgIGwgPSBwLmxpc3QoKTsNCisgICAgICAgIGlmIChp c1VuaXhTdHlsZSkgew0KKyAgICAgICAgICAgIGFzc2VydEVxdWFscygibm8gZHJpdmVzIG9uIFVu aXgiLCA0LCBsLmxlbmd0aCk7DQorICAgICAgICAgICAgYXNzZXJ0VHJ1ZSgic3lzIHJlc29sdmVk IHJlbGF0aXZlIHRvIHByb2plY3RcJ3MgYmFzZWRpciIsIA0KKyAgICAgICAgICAgICAgICAgICBs WzBdLmVuZHNXaXRoKCIvc3lzIikpOw0KKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiL3Rlc3Qi LCBsWzFdKTsNCisgICAgICAgICAgICBhc3NlcnRUcnVlKCJkZXYgcmVzb2x2ZWQgcmVsYXRpdmUg dG8gcHJvamVjdFwncyBiYXNlZGlyIiwgDQorICAgICAgICAgICAgICAgICAgIGxbMl0uZW5kc1dp dGgoIi9kZXYiKSk7DQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCIvdGVtcCIsIGxbM10pOw0K KyAgICAgICAgfSBlbHNlIGlmIChpc05ldFdhcmUpIHsNCisgICAgICAgICAgICBhc3NlcnRFcXVh bHMoInZvbHVtZXMgb24gTmV0V2FyZSIsIDIsIGwubGVuZ3RoKTsNCisgICAgICAgICAgICBhc3Nl cnRFcXVhbHMoInN5czpcXHRlc3QiLCBsWzBdLnRvTG93ZXJDYXNlKExvY2FsZS5VUykpOw0KKyAg ICAgICAgICAgIGFzc2VydEVxdWFscygiZGV2OlxcdGVtcCIsIGxbMV0udG9Mb3dlckNhc2UoTG9j YWxlLlVTKSk7DQorICAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAgIGFzc2VydEVxdWFscygi bm8gbXVsdGlwbGUgY2hhcmFjdGVyLWxlbmd0aCB2b2x1bWVzIG9uIFdpbmRvd3MiLCA0LCBsLmxl bmd0aCk7DQorICAgICAgICAgICAgYXNzZXJ0VHJ1ZSgic3lzIHJlc29sdmVkIHJlbGF0aXZlIHRv IHByb2plY3RcJ3MgYmFzZWRpciIsIA0KKyAgICAgICAgICAgICAgICAgICBsWzBdLmVuZHNXaXRo KCJcXHN5cyIpKTsNCisgICAgICAgICAgICBhc3NlcnRUcnVlKCJ0ZXN0IHJlc29sdmVkIHJlbGF0 aXZlIHRvIHByb2plY3RcJ3MgYmFzZWRpciIsIA0KKyAgICAgICAgICAgICAgICAgICBsWzFdLmVu ZHNXaXRoKCJcXHRlc3QiKSk7DQorICAgICAgICAgICAgYXNzZXJ0VHJ1ZSgiZGV2IHJlc29sdmVk IHJlbGF0aXZlIHRvIHByb2plY3RcJ3MgYmFzZWRpciIsIA0KKyAgICAgICAgICAgICAgICAgICBs WzJdLmVuZHNXaXRoKCJcXGRldiIpKTsNCisgICAgICAgICAgICBhc3NlcnRUcnVlKCJ0ZW1wIHJl c29sdmVkIHJlbGF0aXZlIHRvIHByb2plY3RcJ3MgYmFzZWRpciIsIA0KKyAgICAgICAgICAgICAg ICAgICBsWzNdLmVuZHNXaXRoKCJcXHRlbXAiKSk7DQorICAgICAgICB9DQorDQorICAgICAgICAv LyB0cnkgYSBuZXR3YXJlLXZvbHVtZSBsZW5ndGggcGF0aCB3L2ZvcndhcmQgc2xhc2gsIHNlZSBo b3cgaXQgaXMgaGFuZGxlZA0KKyAgICAgICAgcCA9IG5ldyBQYXRoKHByb2plY3QsICJzeXM6L3Rl c3QiKTsNCisgICAgICAgIGwgPSBwLmxpc3QoKTsNCisgICAgICAgIGlmIChpc1VuaXhTdHlsZSkg ew0KKyAgICAgICAgICAgIGFzc2VydEVxdWFscygibm8gZHJpdmVzIG9uIFVuaXgiLCAyLCBsLmxl bmd0aCk7DQorICAgICAgICAgICAgYXNzZXJ0VHJ1ZSgic3lzIHJlc29sdmVkIHJlbGF0aXZlIHRv IHByb2plY3RcJ3MgYmFzZWRpciIsIA0KKyAgICAgICAgICAgICAgICAgICBsWzBdLmVuZHNXaXRo KCIvc3lzIikpOw0KKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiL3Rlc3QiLCBsWzFdKTsNCisg ICAgICAgIH0gZWxzZSBpZiAoaXNOZXRXYXJlKSB7DQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxz KCJ2b2x1bWVzIG9uIE5ldFdhcmUiLCAxLCBsLmxlbmd0aCk7DQorICAgICAgICAgICAgYXNzZXJ0 RXF1YWxzKCJzeXM6XFx0ZXN0IiwgbFswXS50b0xvd2VyQ2FzZShMb2NhbGUuVVMpKTsNCisgICAg ICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJubyBtdWx0aXBsZSBjaGFy YWN0ZXItbGVuZ3RoIHZvbHVtZXMgb24gV2luZG93cyIsIDIsIGwubGVuZ3RoKTsNCisgICAgICAg ICAgICBhc3NlcnRUcnVlKCJzeXMgcmVzb2x2ZWQgcmVsYXRpdmUgdG8gcHJvamVjdFwncyBiYXNl ZGlyIiwgDQorICAgICAgICAgICAgICAgICAgIGxbMF0uZW5kc1dpdGgoIlxcc3lzIikpOw0KKyAg ICAgICAgICAgIGFzc2VydFRydWUoInRlc3QgcmVzb2x2ZWQgcmVsYXRpdmUgdG8gcHJvamVjdFwn cyBiYXNlZGlyIiwgDQorICAgICAgICAgICAgICAgICAgIGxbMV0uZW5kc1dpdGgoIlxcdGVzdCIp KTsNCisgICAgICAgIH0NCisNCisgICAgICAgIC8vIHRyeSBhIG11bHRpLXBhcnQgbmV0d2FyZS12 b2x1bWUgbGVuZ3RoIHBhdGggdy9mb3J3YXJkIHNsYXNoLCBzZWUgaG93IGl0IGlzIGhhbmRsZWQN CisgICAgICAgIHAgPSBuZXcgUGF0aChwcm9qZWN0LCAic3lzOi90ZXN0O2RldjovdGVtcCIpOw0K KyAgICAgICAgbCA9IHAubGlzdCgpOw0KKyAgICAgICAgaWYgKGlzVW5peFN0eWxlKSB7DQorICAg ICAgICAgICAgYXNzZXJ0RXF1YWxzKCJubyBkcml2ZXMgb24gVW5peCIsIDQsIGwubGVuZ3RoKTsN CisgICAgICAgICAgICBhc3NlcnRUcnVlKCJzeXMgcmVzb2x2ZWQgcmVsYXRpdmUgdG8gcHJvamVj dFwncyBiYXNlZGlyIiwgDQorICAgICAgICAgICAgICAgICAgIGxbMF0uZW5kc1dpdGgoIi9zeXMi KSk7DQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCIvdGVzdCIsIGxbMV0pOw0KKyAgICAgICAg ICAgIGFzc2VydFRydWUoImRldiByZXNvbHZlZCByZWxhdGl2ZSB0byBwcm9qZWN0XCdzIGJhc2Vk aXIiLCANCisgICAgICAgICAgICAgICAgICAgbFsyXS5lbmRzV2l0aCgiL2RldiIpKTsNCisgICAg ICAgICAgICBhc3NlcnRFcXVhbHMoIi90ZW1wIiwgbFszXSk7DQorICAgICAgICB9IGVsc2UgaWYg KGlzTmV0V2FyZSkgew0KKyAgICAgICAgICAgIGFzc2VydEVxdWFscygidm9sdW1lcyBvbiBOZXRX YXJlIiwgMiwgbC5sZW5ndGgpOw0KKyAgICAgICAgICAgIGFzc2VydEVxdWFscygic3lzOlxcdGVz dCIsIGxbMF0udG9Mb3dlckNhc2UoTG9jYWxlLlVTKSk7DQorICAgICAgICAgICAgYXNzZXJ0RXF1 YWxzKCJkZXY6XFx0ZW1wIiwgbFsxXS50b0xvd2VyQ2FzZShMb2NhbGUuVVMpKTsNCisgICAgICAg IH0gZWxzZSB7DQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJubyBtdWx0aXBsZSBjaGFyYWN0 ZXItbGVuZ3RoIHZvbHVtZXMgb24gV2luZG93cyIsIDQsIGwubGVuZ3RoKTsNCisgICAgICAgICAg ICBhc3NlcnRUcnVlKCJzeXMgcmVzb2x2ZWQgcmVsYXRpdmUgdG8gcHJvamVjdFwncyBiYXNlZGly IiwgDQorICAgICAgICAgICAgICAgICAgIGxbMF0uZW5kc1dpdGgoIlxcc3lzIikpOw0KKyAgICAg ICAgICAgIGFzc2VydFRydWUoInRlc3QgcmVzb2x2ZWQgcmVsYXRpdmUgdG8gcHJvamVjdFwncyBi YXNlZGlyIiwgDQorICAgICAgICAgICAgICAgICAgIGxbMV0uZW5kc1dpdGgoIlxcdGVzdCIpKTsN CisgICAgICAgICAgICBhc3NlcnRUcnVlKCJkZXYgcmVzb2x2ZWQgcmVsYXRpdmUgdG8gcHJvamVj dFwncyBiYXNlZGlyIiwgDQorICAgICAgICAgICAgICAgICAgIGxbMl0uZW5kc1dpdGgoIlxcZGV2 IikpOw0KKyAgICAgICAgICAgIGFzc2VydFRydWUoInRlbXAgcmVzb2x2ZWQgcmVsYXRpdmUgdG8g cHJvamVjdFwncyBiYXNlZGlyIiwgDQorICAgICAgICAgICAgICAgICAgIGxbM10uZW5kc1dpdGgo IlxcdGVtcCIpKTsNCiAgICAgICAgIH0NCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgdm9pZCB0ZXN0 Q29uc3RydWN0b3JNaXhlZFN0eWxlKCkgew0KKyAgICAgICAgUGF0aCBwID0gbmV3IFBhdGgocHJv amVjdCwgIlxcYTtcXGI6L2MiKTsNCisgICAgICAgIFN0cmluZ1tdIGwgPSBwLmxpc3QoKTsNCisg ICAgICAgIGFzc2VydEVxdWFscygidGhyZWUgaXRlbXMsIG1peGVkIHN0eWxlIiwgMywgbC5sZW5n dGgpOw0KKyAgICAgICAgaWYgKGlzVW5peFN0eWxlKSB7DQorICAgICAgICAgICAgYXNzZXJ0RXF1 YWxzKCIvYSIsIGxbMF0pOw0KKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiL2IiLCBsWzFdKTsN CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIi9jIiwgbFsyXSk7DQorICAgICAgICB9IGVsc2Ug aWYgKGlzTmV0V2FyZSkgew0KKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiXFxhIiwgbFswXSk7 DQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJcXGIiLCBsWzFdKTsNCisgICAgICAgICAgICBh c3NlcnRFcXVhbHMoIlxcYyIsIGxbMl0pOw0KKyAgICAgICAgfSBlbHNlIHsNCisgICAgICAgICAg ICBhc3NlcnRFcXVhbHMoIjpcXGEiLCBsWzBdLnN1YnN0cmluZygxKSk7DQorICAgICAgICAgICAg YXNzZXJ0RXF1YWxzKCI6XFxiIiwgbFsxXS5zdWJzdHJpbmcoMSkpOw0KKyAgICAgICAgICAgIGFz c2VydEVxdWFscygiOlxcYyIsIGxbMl0uc3Vic3RyaW5nKDEpKTsNCisgICAgICAgIH0gICAgICAg IA0KICAgICB9DQogDQogICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRMb2NhdGlvbigpIHsNCg0K --=_99C4D4B2.8BEAA687 Content-Type: application/octet-stream; name="PathTokenizer.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="PathTokenizer.patch" Y3ZzIGRpZmYgLXUgUGF0aFRva2VuaXplci5qYXZhDQoNCioqKioqQ1ZTIGV4aXRlZCBub3JtYWxs eSB3aXRoIGNvZGUgMSoqKioqDQoNCkluZGV4OiBQYXRoVG9rZW5pemVyLmphdmENCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NClJDUyBmaWxlOiAvaG9tZS9jdnNwdWJsaWMvamFrYXJ0YS1hbnQvc3JjL21haW4vb3JnL2Fw YWNoZS90b29scy9hbnQvUGF0aFRva2VuaXplci5qYXZhLHYNCnJldHJpZXZpbmcgcmV2aXNpb24g MS43DQpkaWZmIC11IC1yMS43IFBhdGhUb2tlbml6ZXIuamF2YQ0KLS0tIFBhdGhUb2tlbml6ZXIu amF2YQkyNCBGZWIgMjAwMiAwODo1NToyOCAtMDAwMAkxLjcNCisrKyBQYXRoVG9rZW5pemVyLmph dmEJMjYgRmViIDIwMDIgMjE6MjM6NTIgLTAwMDANCkBAIC01Myw2ICs1Myw4IEBADQogICovDQog cGFja2FnZSBvcmcuYXBhY2hlLnRvb2xzLmFudDsNCiANCitpbXBvcnQgb3JnLmFwYWNoZS50b29s cy5hbnQudGFza2RlZnMuY29uZGl0aW9uLk9zOw0KKw0KIGltcG9ydCBqYXZhLnV0aWwuTm9TdWNo RWxlbWVudEV4Y2VwdGlvbjsNCiBpbXBvcnQgamF2YS51dGlsLlN0cmluZ1Rva2VuaXplcjsNCiBp bXBvcnQgamF2YS5pby5GaWxlOw0KQEAgLTgwLDYgKzgyLDE4IEBADQogICAgIHByaXZhdGUgU3Ry aW5nIGxvb2thaGVhZCA9IG51bGw7DQogDQogICAgIC8qKg0KKyAgICAgKiBBIGJvb2xlYW4gdGhh dCBkZXRlcm1pbmVzIGlmIHdlIGFyZSBydW5uaW5nIG9uIE5vdmVsbCBOZXRXYXJlLCB3aGljaA0K KyAgICAgKiBleGhpYml0cyBzbGlnaHRseSBkaWZmZXJlbnQgcGF0aCBuYW1lIGNoYXJhY3Rlcmlz dGljcyAobXVsdGktY2hhcmFjdGVyDQorICAgICAqIHZvbHVtZSAvIGRyaXZlIG5hbWVzKQ0KKyAg ICAgKi8NCisgICAgcHJpdmF0ZSBib29sZWFuIG9uTmV0V2FyZSA9IGZhbHNlOw0KKw0KKyAgICAv KioNCisgICAgICogVGhpcyB3aWxsIGJlIHVzZWQgZm9yIFN0cmluZyBjb21wYXJpc29ucyBvZiB0 aGUgcGF0aCBTZXBhcmF0b3IgbGF0ZXINCisgICAgICovDQorICAgIHByaXZhdGUgU3RyaW5nIHBh dGhTZXBhcmF0b3JTdHIgPSBTdHJpbmcudmFsdWVPZihGaWxlLnBhdGhTZXBhcmF0b3JDaGFyKTsN CisNCisgICAgLyoqDQogICAgICAqIEZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciBvciBub3Qgd2Ug YXJlIHJ1bm5pbmcgb24gYSBwbGF0Zm9ybSB3aXRoIGENCiAgICAgICogRE9TIHN0eWxlIGZpbGVz eXN0ZW0NCiAgICAgICovDQpAQCAtOTEsOCArMTA1LDE4IEBADQogICAgICAqIEBwYXJhbSBwYXRo IFRoZSBwYXRoIHRvIHRva2VuaXplLiBNdXN0IG5vdCBiZSA8Y29kZT5udWxsPC9jb2RlPi4NCiAg ICAgICovDQogICAgIHB1YmxpYyBQYXRoVG9rZW5pemVyKFN0cmluZyBwYXRoKSB7DQotICAgICAg IHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIocGF0aCwgIjo7IiwgZmFsc2UpOw0KLSAg ICAgICBkb3NTdHlsZUZpbGVzeXN0ZW0gPSBGaWxlLnBhdGhTZXBhcmF0b3JDaGFyID09ICc7Jzsg DQorICAgICAgICBvbk5ldFdhcmUgPSBPcy5pc0ZhbWlseSgibmV0d2FyZSIpOw0KKyAgICAgICAg aWYgKG9uTmV0V2FyZSkgew0KKyAgICAgICAgICAgIC8vIEZvciBOZXRXYXJlLCB1c2UgdGhlIGJv b2xlYW49dHJ1ZSBtb2RlLCBzbyB3ZSBjYW4gdXNlIGRlbGltaXRlciANCisgICAgICAgICAgICAv LyBpbmZvcm1hdGlvbiB0byBtYWtlIGEgYmV0dGVyIGRlY2lzaW9uIGxhdGVyLg0KKyAgICAgICAg ICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIocGF0aCwgIjo7IiwgdHJ1ZSk7DQor ICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAvLyBvbiBXaW5kb3dzIGFu ZCBVbml4LCB3ZSBjYW4gaWdub3JlIGRlbGltaXRlcnMgYW5kIHN0aWxsIGhhdmUNCisgICAgICAg ICAgICAvLyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gdG9rZW5pemUgY29ycmVjdGx5Lg0KKyAgICAg ICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIocGF0aCwgIjo7IiwgZmFsc2Up Ow0KKyAgICAgICAgfQ0KKyAgICAgICAgZG9zU3R5bGVGaWxlc3lzdGVtID0gRmlsZS5wYXRoU2Vw YXJhdG9yQ2hhciA9PSAnOyc7IA0KICAgICB9DQogDQogICAgIC8qKg0KQEAgLTEyOSwyNCArMTUz LDYxIEBADQogICAgICAgICAgICAgdG9rZW4gPSB0b2tlbml6ZXIubmV4dFRva2VuKCkudHJpbSgp Ow0KICAgICAgICAgfSAgICAgICAgICAgIA0KICAgICAgICAgICAgIA0KLSAgICAgICAgaWYgKHRv a2VuLmxlbmd0aCgpID09IDEgJiYgQ2hhcmFjdGVyLmlzTGV0dGVyKHRva2VuLmNoYXJBdCgwKSkN Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGRvc1N0eWxlRmlsZXN5c3RlbQ0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdG9rZW5pemVyLmhhc01vcmVUb2tl bnMoKSkgew0KLSAgICAgICAgICAgIC8vIHdlIGFyZSBvbiBhIGRvcyBzdHlsZSBzeXN0ZW0gc28g dGhpcyBwYXRoIGNvdWxkIGJlIGEgZHJpdmUNCi0gICAgICAgICAgICAvLyBzcGVjLiBXZSBsb29r IGF0IHRoZSBuZXh0IHRva2VuDQotICAgICAgICAgICAgU3RyaW5nIG5leHRUb2tlbiA9IHRva2Vu aXplci5uZXh0VG9rZW4oKS50cmltKCk7DQotICAgICAgICAgICAgaWYgKG5leHRUb2tlbi5zdGFy dHNXaXRoKCJcXCIpIHx8IG5leHRUb2tlbi5zdGFydHNXaXRoKCIvIikpIHsNCi0gICAgICAgICAg ICAgICAgLy8gd2Uga25vdyB3ZSBhcmUgb24gYSBET1Mgc3R5bGUgcGxhdGZvcm0gYW5kIHRoZSBu ZXh0IHBhdGggc3RhcnRzIHdpdGggYQ0KLSAgICAgICAgICAgICAgICAvLyBzbGFzaCBvciBiYWNr c2xhc2gsIHNvIHdlIGtub3cgdGhpcyBpcyBhIGRyaXZlIHNwZWMNCi0gICAgICAgICAgICAgICAg dG9rZW4gKz0gIjoiICsgbmV4dFRva2VuOw0KKyAgICAgICAgaWYgKCFvbk5ldFdhcmUpIHsNCisg ICAgICAgICAgICBpZiAodG9rZW4ubGVuZ3RoKCkgPT0gMSAmJiBDaGFyYWN0ZXIuaXNMZXR0ZXIo dG9rZW4uY2hhckF0KDApKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYm IGRvc1N0eWxlRmlsZXN5c3RlbQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICYmIHRva2VuaXplci5oYXNNb3JlVG9rZW5zKCkpIHsNCisgICAgICAgICAgICAgICAgLy8gd2Ug YXJlIG9uIGEgZG9zIHN0eWxlIHN5c3RlbSBzbyB0aGlzIHBhdGggY291bGQgYmUgYSBkcml2ZQ0K KyAgICAgICAgICAgICAgICAvLyBzcGVjLiBXZSBsb29rIGF0IHRoZSBuZXh0IHRva2VuDQorICAg ICAgICAgICAgICAgIFN0cmluZyBuZXh0VG9rZW4gPSB0b2tlbml6ZXIubmV4dFRva2VuKCkudHJp bSgpOw0KKyAgICAgICAgICAgICAgICBpZiAobmV4dFRva2VuLnN0YXJ0c1dpdGgoIlxcIikgfHwg bmV4dFRva2VuLnN0YXJ0c1dpdGgoIi8iKSkgew0KKyAgICAgICAgICAgICAgICAgICAgLy8gd2Ug a25vdyB3ZSBhcmUgb24gYSBET1Mgc3R5bGUgcGxhdGZvcm0gYW5kIHRoZSBuZXh0IHBhdGgNCisg ICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0cyB3aXRoIGEgc2xhc2ggb3IgYmFja3NsYXNoLCBz byB3ZSBrbm93IHRoaXMgaXMgYSANCisgICAgICAgICAgICAgICAgICAgIC8vIGRyaXZlIHNwZWMN CisgICAgICAgICAgICAgICAgICAgIHRva2VuICs9ICI6IiArIG5leHRUb2tlbjsNCisgICAgICAg ICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgICAgICAg IC8vIHN0b3JlIHRoZSB0b2tlbiBqdXN0IHJlYWQgZm9yIG5leHQgdGltZQ0KKyAgICAgICAgICAg ICAgICAgICAgbG9va2FoZWFkID0gbmV4dFRva2VuOw0KKyAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgfQ0KLSAgICAgICAgICAgIGVsc2Ugew0KLSAgICAgICAgICAgICAgICAvLyBzdG9y ZSB0aGUgdG9rZW4ganVzdCByZWFkIGZvciBuZXh0IHRpbWUNCi0gICAgICAgICAgICAgICAgbG9v a2FoZWFkID0gbmV4dFRva2VuOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZSB7DQorICAgICAg ICAgICAgLy8gd2UgYXJlIG9uIE5ldFdhcmUsIHRva2VuaXppbmcgaXMgaGFuZGxlZCBhIGxpdHRs ZSBkaWZmZXJlbnRseSwNCisgICAgICAgICAgICAvLyBkdWUgdG8gdGhlIGZhY3QgdGhhdCBOZXRX YXJlIGhhcyBtdWx0aXBsZS1jaGFyYWN0ZXIgdm9sdW1lIG5hbWVzLg0KKyAgICAgICAgICAgIGlm ICh0b2tlbi5lcXVhbHMocGF0aFNlcGFyYXRvclN0cikpIHsNCisgICAgICAgICAgICAgICAgLy8g aWdub3JlICI7IiBhbmQgZ2V0IHRoZSBuZXh0IHRva2VuDQorICAgICAgICAgICAgICAgIHRva2Vu ID0gdG9rZW5pemVyLm5leHRUb2tlbigpLnRyaW0oKTsNCisgICAgICAgICAgICB9DQorICAgICAg ICAgICAgDQorICAgICAgICAgICAgaWYgKHRva2VuaXplci5oYXNNb3JlVG9rZW5zKCkpIHsNCisg ICAgICAgICAgICAgICAgLy8gdGhpcyBwYXRoIGNvdWxkIGJlIGEgZHJpdmUgc3BlYywgc28gbG9v ayBhdCB0aGUgbmV4dCB0b2tlbg0KKyAgICAgICAgICAgICAgICBTdHJpbmcgbmV4dFRva2VuID0g dG9rZW5pemVyLm5leHRUb2tlbigpLnRyaW0oKTsNCisNCisgICAgICAgICAgICAgICAgLy8gbWFr ZSBzdXJlIHdlIGFyZW4ndCBnb2luZyB0byBnZXQgdGhlIHBhdGggc2VwYXJhdG9yIG5leHQNCisg ICAgICAgICAgICAgICAgaWYgKCFuZXh0VG9rZW4uZXF1YWxzKHBhdGhTZXBhcmF0b3JTdHIpKSB7 DQorICAgICAgICAgICAgICAgICAgICBpZiAobmV4dFRva2VuLmVxdWFscygiOiIpKSB7DQorICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKCF0b2tlbi5zdGFydHNXaXRoKCIvIikgJiYgIXRva2Vu LnN0YXJ0c1dpdGgoIlxcIikpeyANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQg aW5kZWVkIGlzIGEgZHJpdmUgc3BlYywgZ2V0IHRoZSBuZXh0IGJpdA0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdHJpbmcgb25lTW9yZSA9IHRva2VuaXplci5uZXh0VG9rZW4oKS50cmlt KCk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb25lTW9yZS5lcXVhbHMocGF0 aFNlcGFyYXRvclN0cikpIHsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2Vu ICs9ICI6IiArIG9uZU1vcmU7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0b2tlbiArPSAiOiI7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCisg ICAgICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW1w bGljaXQgZWxzZTogaWdub3JlIHRoZSAnOicgc2luY2Ugd2UgaGF2ZSBlaXRoZXIgYQ0KKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFVOSVggb3IgYSByZWxhdGl2ZSBwYXRoDQorICAgICAgICAg ICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAg ICAgICAgICAgICAvLyBzdG9yZSB0aGUgdG9rZW4ganVzdCByZWFkIGZvciBuZXh0IHRpbWUNCisg ICAgICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWQgPSBuZXh0VG9rZW47DQorICAgICAgICAg ICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICB9DQogICAgICAg ICB9DQogICAgICAgICAgICANCiAgICAgICAgIHJldHVybiB0b2tlbjsNCiAgICAgfQ0KIH0NCg== --=_99C4D4B2.8BEAA687 Content-Type: application/octet-stream; name="FileUtilsforNW.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="FileUtilsforNW.patch" SW5kZXg6IEZpbGVVdGlscy5qYXZhDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUvY3ZzcHVi bGljL2pha2FydGEtYW50L3NyYy9tYWluL29yZy9hcGFjaGUvdG9vbHMvYW50L3V0aWwvRmlsZVV0 aWxzLmphdmEsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjE0DQpkaWZmIC11IC1yMS4xNCBGaWxl VXRpbHMuamF2YQ0KLS0tIEZpbGVVdGlscy5qYXZhCTI1IEZlYiAyMDAyIDExOjAzOjQwIC0wMDAw CTEuMTQNCisrKyBGaWxlVXRpbHMuamF2YQkyNiBGZWIgMjAwMiAyMToyNjo1NCAtMDAwMA0KQEAg LTM3NywxMiArMzc3LDEzIEBADQogICAgICAgICAgICAgLnJlcGxhY2UoJ1xcJywgRmlsZS5zZXBh cmF0b3JDaGFyKTsNCiANCiAgICAgICAgIC8vIGRlYWwgd2l0aCBhYnNvbHV0ZSBmaWxlcw0KLSAg ICAgICAgaWYgKGZpbGVuYW1lLnN0YXJ0c1dpdGgoRmlsZS5zZXBhcmF0b3IpIHx8DQotDQotICAg ICAgICAgICAgKGZpbGVuYW1lLmxlbmd0aCgpID49IDIgJiYNCi0gICAgICAgICAgICAgQ2hhcmFj dGVyLmlzTGV0dGVyKGZpbGVuYW1lLmNoYXJBdCgwKSkgJiYNCi0gICAgICAgICAgICAgZmlsZW5h bWUuY2hhckF0KDEpID09ICc6JykNCiANCisgICAgICAgIC8vIHRoZSBhc3N1bXB0aW9uIHRoYXQg dGhlIDogd2lsbCBhcHBlYXIgYXMgdGhlIHNlY29uZCBjaGFyYWN0ZXIgaW4NCisgICAgICAgIC8v IHRoZSBwYXRoIG5hbWUgYnJlYWtzIGRvd24gd2hlbiBOZXRXYXJlIGlzIGEgc3VwcG9ydGVkIHBs YXRmb3JtLg0KKyAgICAgICAgLy8gTmV0d2FyZSB2b2x1bWVzIGFyZSBvZiB0aGUgcGF0dGVybjog ImRhdGE6XCINCisgICAgICAgIGludCBjb2xvbiA9IGZpbGVuYW1lLmluZGV4T2YoIjoiKTsNCisg ICAgICAgIGlmIChmaWxlbmFtZS5zdGFydHNXaXRoKEZpbGUuc2VwYXJhdG9yKSB8fA0KKyAgICAg ICAgICAgIChjb2xvbiA+IC0xKQ0KICAgICAgICAgICAgICkgew0KICAgICAgICAgICAgIHJldHVy biBub3JtYWxpemUoZmlsZW5hbWUpOw0KICAgICAgICAgfQ0KQEAgLTQzNSw0NSArNDM2LDQyIEBA DQogICAgICAgICAgICAgLnJlcGxhY2UoJ1xcJywgRmlsZS5zZXBhcmF0b3JDaGFyKTsNCiANCiAg ICAgICAgIC8vIG1ha2Ugc3VyZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGFuIGFic29sdXRlIHBhdGgN CisgICAgICAgIGludCBjb2xvbiA9IHBhdGguaW5kZXhPZigiOiIpOw0KICAgICAgICAgaWYgKCFw YXRoLnN0YXJ0c1dpdGgoRmlsZS5zZXBhcmF0b3IpICYmDQotICAgICAgICAgICAgISAocGF0aC5s ZW5ndGgoKSA+PSAyICYmDQotICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzTGV0dGVyKHBhdGgu Y2hhckF0KDApKSAmJg0KLSAgICAgICAgICAgICAgIHBhdGguY2hhckF0KDEpID09ICc6JykNCi0g ICAgICAgICAgICApIHsgICAgICAgICAgICAgDQorICAgICAgICAgICAgKGNvbG9uID09IC0xKQ0K KyAgICAgICAgICAgICkgew0KICAgICAgICAgICAgIFN0cmluZyBtc2cgPSBwYXRoICsgIiBpcyBu b3QgYW4gYWJzb2x1dGUgcGF0aCI7DQogICAgICAgICAgICAgdGhyb3cgbmV3IEJ1aWxkRXhjZXB0 aW9uKG1zZyk7DQogICAgICAgICB9DQogICAgICAgICAgICAgDQogICAgICAgICBib29sZWFuIGRv c1dpdGhEcml2ZSA9IGZhbHNlOw0KICAgICAgICAgU3RyaW5nIHJvb3QgPSBudWxsOw0KLSAgICAg ICAgLy8gRWxpbWluYXRlIGNvbnNlY3V0aXZlIHNsYXNoZXMgYWZ0ZXIgdGhlIGRyaXZlIHNwZWMN Ci0gICAgICAgIGlmIChwYXRoLmxlbmd0aCgpID49IDIgJiYNCi0gICAgICAgICAgICBDaGFyYWN0 ZXIuaXNMZXR0ZXIocGF0aC5jaGFyQXQoMCkpICYmDQotICAgICAgICAgICAgcGF0aC5jaGFyQXQo MSkgPT0gJzonKSB7DQogDQorICAgICAgICBpZiAoY29sb24gPiAtMSkgew0KICAgICAgICAgICAg IGRvc1dpdGhEcml2ZSA9IHRydWU7DQogDQogICAgICAgICAgICAgY2hhcltdIGNhID0gcGF0aC5y ZXBsYWNlKCcvJywgJ1xcJykudG9DaGFyQXJyYXkoKTsNCi0gICAgICAgICAgICBTdHJpbmdCdWZm ZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7DQotICAgICAgICAgICAgc2IuYXBwZW5kKENoYXJh Y3Rlci50b1VwcGVyQ2FzZShjYVswXSkpLmFwcGVuZCgnOicpOw0KKyAgICAgICAgICAgIFN0cmlu Z0J1ZmZlciBzYlJvb3QgPSBuZXcgU3RyaW5nQnVmZmVyKCk7DQorICAgICAgICAgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBjb2xvbjsgaSsrKSB7DQorICAgICAgICAgICAgICAgIHNiUm9vdC5hcHBl bmQoQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGNhW2ldKSk7DQorICAgICAgICAgICAgfQ0KKyAgICAg ICAgICAgIHNiUm9vdC5hcHBlbmQoJzonKTsNCisgICAgICAgICAgICBpZiAoY29sb24gKyAxIDwg cGF0aC5sZW5ndGgoKSkgew0KKyAgICAgICAgICAgICAgICBzYlJvb3QuYXBwZW5kKEZpbGUuc2Vw YXJhdG9yQ2hhcik7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIHJvb3QgPSBzYlJvb3Qu dG9TdHJpbmcoKTsNCiANCi0gICAgICAgICAgICBmb3IgKGludCBpID0gMjsgaSA8IGNhLmxlbmd0 aDsgaSsrKSB7DQorICAgICAgICAgICAgLy8gRWxpbWluYXRlIGNvbnNlY3V0aXZlIHNsYXNoZXMg YWZ0ZXIgdGhlIGRyaXZlIHNwZWMNCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2JQYXRoID0g bmV3IFN0cmluZ0J1ZmZlcigpOw0KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBjb2xvbisxOyBp IDwgY2EubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgaWYgKChjYVtpXSAhPSAnXFwn KSB8fA0KICAgICAgICAgICAgICAgICAgICAgKGNhW2ldID09ICdcXCcgJiYgY2FbaSAtIDFdICE9 ICdcXCcpDQogICAgICAgICAgICAgICAgICAgICApIHsNCi0gICAgICAgICAgICAgICAgICAgIHNi LmFwcGVuZChjYVtpXSk7DQorICAgICAgICAgICAgICAgICAgICBzYlBhdGguYXBwZW5kKGNhW2ld KTsNCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIH0NCisgICAgICAgICAgICBwYXRo ID0gc2JQYXRoLnRvU3RyaW5nKCkucmVwbGFjZSgnXFwnLCBGaWxlLnNlcGFyYXRvckNoYXIpOw0K IA0KLSAgICAgICAgICAgIHBhdGggPSBzYi50b1N0cmluZygpLnJlcGxhY2UoJ1xcJywgRmlsZS5z ZXBhcmF0b3JDaGFyKTsNCi0gICAgICAgICAgICBpZiAocGF0aC5sZW5ndGgoKSA9PSAyKSB7DQot ICAgICAgICAgICAgICAgIHJvb3QgPSBwYXRoOw0KLSAgICAgICAgICAgICAgICBwYXRoID0gIiI7 DQotICAgICAgICAgICAgfSBlbHNlIHsNCi0gICAgICAgICAgICAgICAgcm9vdCA9IHBhdGguc3Vi c3RyaW5nKDAsIDMpOw0KLSAgICAgICAgICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMyk7 DQotICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgIA0KICAgICAgICAgfSBlbHNlIHsNCiAgICAg ICAgICAgICBpZiAocGF0aC5sZW5ndGgoKSA9PSAxKSB7DQogICAgICAgICAgICAgICAgIHJvb3Qg PSBGaWxlLnNlcGFyYXRvcjsNCg0K --=_99C4D4B2.8BEAA687 Content-Type: application/octet-stream; name="FileUtilsTestforNW.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="FileUtilsTestforNW.patch" PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL2N2c3B1YmxpYy9qYWthcnRhLWFudC9zcmMvdGVz dGNhc2VzL29yZy9hcGFjaGUvdG9vbHMvYW50L3V0aWwvRmlsZVV0aWxzVGVzdC5qYXZhLHYNCnJl dHJpZXZpbmcgcmV2aXNpb24gMS42DQpkaWZmIC11IC1yMS42IEZpbGVVdGlsc1Rlc3QuamF2YQ0K LS0tIEZpbGVVdGlsc1Rlc3QuamF2YQkxOSBOb3YgMjAwMSAxMzo1ODo1MiAtMDAwMAkxLjYNCisr KyBGaWxlVXRpbHNUZXN0LmphdmEJMjYgRmViIDIwMDIgMjE6MzY6MjUgLTAwMDANCkBAIC0xNjUs NiArMTY1LDI3IEBADQogICAgICAgICAgICAgICAgICAgICAgZnUucmVzb2x2ZUZpbGUobnVsbCwg ZHJpdmVTcGVjICsgIlxcXFxcXFxcXFxcXCIpLmdldFBhdGgoKSk7DQogDQogICAgICAgICAvKg0K KyAgICAgICAgICogdGhyb3cgaW4gTmV0V2FyZSB2b2x1bWUgbmFtZXMNCisgICAgICAgICAqLw0K KyAgICAgICAgZHJpdmVTcGVjID0gIlNZUzoiOw0KKyAgICAgICAgYXNzZXJ0RXF1YWxzKGRyaXZl U3BlYywgDQorICAgICAgICAgICAgICAgICAgICAgZnUucmVzb2x2ZUZpbGUobnVsbCwgZHJpdmVT cGVjICsgIi8iKS5nZXRQYXRoKCkpOw0KKyAgICAgICAgYXNzZXJ0RXF1YWxzKGRyaXZlU3BlYywg DQorICAgICAgICAgICAgICAgICAgICAgZnUucmVzb2x2ZUZpbGUobnVsbCwgZHJpdmVTcGVjICsg IlxcIikuZ2V0UGF0aCgpKTsNCisgICAgICAgIGRyaXZlU3BlY0xvd2VyID0gInN5czoiOw0KKyAg ICAgICAgYXNzZXJ0RXF1YWxzKGRyaXZlU3BlYywgDQorICAgICAgICAgICAgICAgICAgICAgZnUu cmVzb2x2ZUZpbGUobnVsbCwgZHJpdmVTcGVjTG93ZXIgKyAiLyIpLmdldFBhdGgoKSk7DQorICAg ICAgICBhc3NlcnRFcXVhbHMoZHJpdmVTcGVjLCANCisgICAgICAgICAgICAgICAgICAgICBmdS5y ZXNvbHZlRmlsZShudWxsLCBkcml2ZVNwZWNMb3dlciArICJcXCIpLmdldFBhdGgoKSk7DQorICAg ICAgICAvKg0KKyAgICAgICAgICogcHJvbWlzZWQgdG8gZWxpbWluYXRlIGNvbnNlY3V0aXZlIHNs YXNoZXMgYWZ0ZXIgZHJpdmUgbGV0dGVyLg0KKyAgICAgICAgICovDQorICAgICAgICBhc3NlcnRF cXVhbHMoZHJpdmVTcGVjLCANCisgICAgICAgICAgICAgICAgICAgICBmdS5yZXNvbHZlRmlsZShu dWxsLCBkcml2ZVNwZWMgKyAiLy8vLy8iKS5nZXRQYXRoKCkpOw0KKyAgICAgICAgYXNzZXJ0RXF1 YWxzKGRyaXZlU3BlYywgDQorICAgICAgICAgICAgICAgICAgICAgZnUucmVzb2x2ZUZpbGUobnVs bCwgZHJpdmVTcGVjICsgIlxcXFxcXFxcXFxcXCIpLmdldFBhdGgoKSk7DQorDQorICAgICAgICAv Kg0KICAgICAgICAgICogTm93IHRlc3Qgc29tZSByZWxhdGl2ZSBmaWxlIG5hbWUgbWFnaWMuDQog ICAgICAgICAgKi8NCiAgICAgICAgIGFzc2VydEVxdWFscyhsb2NhbGl6ZSgiLzEvMi8zLzQiKSwN CkBAIC0yMDYsNiArMjI3LDggQEANCiAgICAgICAgICAqIHRocm93IGluIGRyaXZlIGxldHRlcnMN CiAgICAgICAgICAqLw0KICAgICAgICAgU3RyaW5nIGRyaXZlU3BlYyA9ICJDOiI7DQorICAgICAg ICBhc3NlcnRFcXVhbHMoZHJpdmVTcGVjLCANCisgICAgICAgICAgICAgICAgICAgICBmdS5ub3Jt YWxpemUoZHJpdmVTcGVjKS5nZXRQYXRoKCkpOw0KICAgICAgICAgYXNzZXJ0RXF1YWxzKGRyaXZl U3BlYyArICJcXCIsIA0KICAgICAgICAgICAgICAgICAgICAgIGZ1Lm5vcm1hbGl6ZShkcml2ZVNw ZWMgKyAiLyIpLmdldFBhdGgoKSk7DQogICAgICAgICBhc3NlcnRFcXVhbHMoZHJpdmVTcGVjICsg IlxcIiwgDQpAQCAtMjIxLDYgKzI0NCwzMyBAQA0KICAgICAgICAgYXNzZXJ0RXF1YWxzKGRyaXZl U3BlYyArICJcXCIsIA0KICAgICAgICAgICAgICAgICAgICAgIGZ1Lm5vcm1hbGl6ZShkcml2ZVNw ZWMgKyAiLy8vLy8iKS5nZXRQYXRoKCkpOw0KICAgICAgICAgYXNzZXJ0RXF1YWxzKGRyaXZlU3Bl YyArICJcXCIsIA0KKyAgICAgICAgICAgICAgICAgICAgIGZ1Lm5vcm1hbGl6ZShkcml2ZVNwZWMg KyAiXFxcXFxcXFxcXFxcIikuZ2V0UGF0aCgpKTsNCisNCisgICAgICAgIC8qDQorICAgICAgICAg KiB0aHJvdyBpbiBOZXRXYXJlIHZvbHVtZSBuYW1lcyANCisgICAgICAgICAqLw0KKyAgICAgICAg ZHJpdmVTcGVjID0gIlNZUzoiOw0KKyAgICAgICAgYXNzZXJ0RXF1YWxzKGRyaXZlU3BlYywgDQor ICAgICAgICAgICAgICAgICAgICAgZnUubm9ybWFsaXplKGRyaXZlU3BlYykuZ2V0UGF0aCgpKTsN CisgICAgICAgIGFzc2VydEVxdWFscyhkcml2ZVNwZWMsIA0KKyAgICAgICAgICAgICAgICAgICAg IGZ1Lm5vcm1hbGl6ZShkcml2ZVNwZWMgKyAiLyIpLmdldFBhdGgoKSk7DQorICAgICAgICBhc3Nl cnRFcXVhbHMoZHJpdmVTcGVjLCANCisgICAgICAgICAgICAgICAgICAgICBmdS5ub3JtYWxpemUo ZHJpdmVTcGVjICsgIlxcIikuZ2V0UGF0aCgpKTsNCisgICAgICAgIGRyaXZlU3BlY0xvd2VyID0g InN5czoiOw0KKyAgICAgICAgYXNzZXJ0RXF1YWxzKGRyaXZlU3BlYywgDQorICAgICAgICAgICAg ICAgICAgICAgZnUubm9ybWFsaXplKGRyaXZlU3BlY0xvd2VyKS5nZXRQYXRoKCkpOw0KKyAgICAg ICAgYXNzZXJ0RXF1YWxzKGRyaXZlU3BlYywgDQorICAgICAgICAgICAgICAgICAgICAgZnUubm9y bWFsaXplKGRyaXZlU3BlY0xvd2VyICsgIi8iKS5nZXRQYXRoKCkpOw0KKyAgICAgICAgYXNzZXJ0 RXF1YWxzKGRyaXZlU3BlYywgDQorICAgICAgICAgICAgICAgICAgICAgZnUubm9ybWFsaXplKGRy aXZlU3BlY0xvd2VyICsgIlxcIikuZ2V0UGF0aCgpKTsNCisgICAgICAgIGFzc2VydEVxdWFscyhk cml2ZVNwZWMgKyAiXFxqdW5rIiwgDQorICAgICAgICAgICAgICAgICAgICAgZnUubm9ybWFsaXpl KGRyaXZlU3BlY0xvd2VyICsgIlxcanVuayIpLmdldFBhdGgoKSk7DQorICAgICAgICAvKg0KKyAg ICAgICAgICogcHJvbWlzZWQgdG8gZWxpbWluYXRlIGNvbnNlY3V0aXZlIHNsYXNoZXMgYWZ0ZXIg ZHJpdmUgbGV0dGVyLg0KKyAgICAgICAgICovDQorICAgICAgICBhc3NlcnRFcXVhbHMoZHJpdmVT cGVjLCANCisgICAgICAgICAgICAgICAgICAgICBmdS5ub3JtYWxpemUoZHJpdmVTcGVjICsgIi8v Ly8vIikuZ2V0UGF0aCgpKTsNCisgICAgICAgIGFzc2VydEVxdWFscyhkcml2ZVNwZWMsIA0KICAg ICAgICAgICAgICAgICAgICAgIGZ1Lm5vcm1hbGl6ZShkcml2ZVNwZWMgKyAiXFxcXFxcXFxcXFxc IikuZ2V0UGF0aCgpKTsNCiANCiAgICAgICAgIC8qDQoNCg== --=_99C4D4B2.8BEAA687 Content-Type: application/octet-stream; name="buildxml.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="buildxml.patch" SW5kZXg6IGJ1aWxkLnhtbA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL2N2c3B1YmxpYy9q YWthcnRhLWFudC9idWlsZC54bWwsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjI1NQ0KZGlmZiAt dSAtcjEuMjU1IGJ1aWxkLnhtbA0KLS0tIGJ1aWxkLnhtbAkyNiBGZWIgMjAwMiAxMDoyMzo0MCAt MDAwMAkxLjI1NQ0KKysrIGJ1aWxkLnhtbAkyNiBGZWIgMjAwMiAyMTo0OTo0NyAtMDAwMA0KQEAg LTcxNSw2ICs3MTUsNyBAQA0KICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL2FudCIgLz4NCiAg ICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi9hbnRSdW4iIC8+DQogICAgICAgICAgPGluY2x1ZGUg bmFtZT0iKiovcnVuYW50LnBsIiAvPg0KKyAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL2FudFJ1 bi5wbCIgLz4NCiAgICAgICAgPC9maWxlc2V0Pg0KICAgICA8L2NobW9kPg0KIA0KQEAgLTgxMSw2 ICs4MTIsNyBAQA0KICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL2FudCIgLz4NCiAgICAgICAg ICA8aW5jbHVkZSBuYW1lPSIqKi9hbnRSdW4iIC8+DQogICAgICAgICAgPGluY2x1ZGUgbmFtZT0i KiovcnVuYW50LnBsIiAvPg0KKyAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL2FudFJ1bi5wbCIg Lz4NCiAgICAgICAgPC9maWxlc2V0Pg0KICAgICA8L2NobW9kPg0KIA0KQEAgLTk3MSw2ICs5NzMs NyBAQA0KICAgICAgICAgICBkZXNjcmlwdGlvbj0iLS0+IGNsZWFucyB1cCBldmVyeXRoaW5nIj4N CiAgICAgPGRlbGV0ZSBmaWxlPSIke2Jvb3RzdHJhcC5kaXJ9L2Jpbi9hbnRSdW4iIC8+DQogICAg IDxkZWxldGUgZmlsZT0iJHtib290c3RyYXAuZGlyfS9iaW4vYW50UnVuLmJhdCIgLz4NCisgICAg PGRlbGV0ZSBmaWxlPSIke2Jvb3RzdHJhcC5kaXJ9L2Jpbi9hbnRSdW4ucGwiIC8+DQogICA8L3Rh cmdldD4NCiANCiAgIDwhLS0NCg== --=_99C4D4B2.8BEAA687 Content-Type: text/plain; charset=us-ascii -- To unsubscribe, e-mail: For additional commands, e-mail: --=_99C4D4B2.8BEAA687--