[javagroups-users] Re: [Javagroups-development] Re: question about message.
Brought to you by:
belaban
From: Steve <li...@bo...> - 2002-12-06 08:00:55
|
SGksIEJlbGEgLCANCkkgc2VuZCB5b3UgcGdtIGFuZCBwcm90b2NvbCBzdGFjay4gIE5vdGljZSwg d2hlbiBhIGNoYW5uZWwgY29ubmVjdGVkLCBwZ20gd2lsbCBjYWxsIGdldFN0YXRlKG51bGwsNTAw MCksICBhbmQgb25jZSBNZXJnZVZpZXcgaGFwcGVucywgIHRoZSBuZXcgZ3JvdXAgY29vcmRpbmF0 b3Igd2lsbCBnZXRTdGF0ZSgpIGZyb20gYW4gb2xkIENvb3JkaW5hdG9yICh3aGljaCBtdXN0IGJl IG5vdCBuZXcgY29vcmRpbmF0b3IgaGltc2VsZikgLiANClBscyBzdGFydHVwIHBnbSAyIHRpbWVz IHNpbXVsdGFuZW91c2x5LCBhbmQgc2VlIGlmIE1lcmdlVmlldyBoYXBwZW4gaW4gc3lzdGVtIG91 dCwgZ2VuZXJhbGx5LCBpZiBuZXcgY29vcmRpYW50b3IgZ2V0U3RhdGUoKSBhbmQgc2V0U3RhdGUo KSBzdWNjZXNzZnVsbHksIGl0IGNhbid0IHJlY2VpdmUgbWVzc2FnZSBhZ2Fpbi4gKFRoaXMgdGlt ZSBJIGNhbiBzdXJlIG15IHBjIGhhdmVuJ3QgZmlyZXdhbGwpDQoNCkFuZCBJIGFsc28gbm90aWNl LCBpZiBJIGNvbW1lbnQgZmlyc3QgZ2V0U3RhdGUobnVsbCkgaW4gaW5pdENoYW5uZWwoKSwgSkcg c2VlbXMgdG8gd29yayB3ZWxsLg0KDQoNCj09PT09PT09PT09PT09PT09PT09PT09PT1Qcm9wZXJ0 aWVzIGluIHByb3RvY29sZGVmLnByb3BlcnRpZXMgZmlsZSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQpQcm90b2NvbC5TdGFjayA9IFVEUChtY2FzdF9hZGRyPTIyOC44LjguODttY2FzdF9w b3J0PTQ1NTY2O2lwX3R0bD0zMjtcDQogICAgIG1jYXN0X3NlbmRfYnVmX3NpemU9MTUwMDAwO21j YXN0X3JlY3ZfYnVmX3NpemU9ODAwMDApOlwNCiAgICAgUElORyh0aW1lb3V0PTIwMDA7bnVtX2lu aXRpYWxfbWVtYmVycz0zKTpcDQogICAgIE1FUkdFMihtaW5faW50ZXJ2YWw9NTAwMDttYXhfaW50 ZXJ2YWw9MTAwMDApOlwNCiAgICAgRkRfU09DSzpcDQogICAgIFZFUklGWV9TVVNQRUNUKHRpbWVv dXQ9MTUwMCk6XA0KICAgICBwYmNhc3QuU1RBQkxFOlwNCiAgICAgcGJjYXN0Lk5BS0FDSyhnY19s YWc9NTA7cmV0cmFuc21pdF90aW1lb3V0PTMwMCw2MDAsMTIwMCwyNDAwLDQ4MDApOlwNCiAgICAg VU5JQ0FTVCh0aW1lb3V0PTEyMDApOlwNCiAgICAgRlJBRzpcDQogICAgIHBiY2FzdC5HTVMocHJp bnRfbG9jYWxfYWRkcj10cnVlKTpcDQogICAgIHBiY2FzdC5TVEFURV9UUkFOU0ZFUg0KDQo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09UHJvZ3JhbT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCnBhY2thZ2UgY29tLmVkZ2VuaXVzLmRlYnVnOw0KDQppbXBvcnQgamF2YS5h d3QuQnV0dG9uOw0KaW1wb3J0IGphdmEuYXd0LkNvbG9yOw0KaW1wb3J0IGphdmEuYXd0LkZyYW1l Ow0KaW1wb3J0IGphdmEuYXd0Lkxpc3Q7DQppbXBvcnQgamF2YS5hd3QuUGFuZWw7DQppbXBvcnQg amF2YS5hd3QuUmVjdGFuZ2xlOw0KaW1wb3J0IGphdmEuYXd0LlRleHRBcmVhOw0KaW1wb3J0IGph dmEuYXd0LmV2ZW50Lk1vdXNlQWRhcHRlcjsNCmltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2 ZW50Ow0KaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7DQppbXBvcnQgamF2YS5h d3QuZXZlbnQuV2luZG93RXZlbnQ7DQppbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOw0KaW1w b3J0IGphdmEudXRpbC5IYXNodGFibGU7DQppbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxl Ow0KaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7DQoNCmltcG9ydCBvcmcuamF2YWdyb3Vwcy5BZGRy ZXNzOw0KaW1wb3J0IG9yZy5qYXZhZ3JvdXBzLkNoYW5uZWxDbG9zZWRFeGNlcHRpb247DQppbXBv cnQgb3JnLmphdmFncm91cHMuQ2hhbm5lbEV4Y2VwdGlvbjsNCmltcG9ydCBvcmcuamF2YWdyb3Vw cy5KQ2hhbm5lbDsNCmltcG9ydCBvcmcuamF2YWdyb3Vwcy5NZW1iZXJzaGlwTGlzdGVuZXI7DQpp bXBvcnQgb3JnLmphdmFncm91cHMuTWVyZ2VWaWV3Ow0KaW1wb3J0IG9yZy5qYXZhZ3JvdXBzLk1l c3NhZ2U7DQppbXBvcnQgb3JnLmphdmFncm91cHMuTWVzc2FnZUxpc3RlbmVyOw0KaW1wb3J0IG9y Zy5qYXZhZ3JvdXBzLlZpZXc7DQppbXBvcnQgb3JnLmphdmFncm91cHMuYmxvY2tzLlB1bGxQdXNo QWRhcHRlcjsNCmltcG9ydCBvcmcuamF2YWdyb3Vwcy51dGlsLlV0aWw7DQoNCi8qKg0KICogQGF1 dGhvciBTdGV2ZU5pDQogKg0KICovDQpwdWJsaWMgY2xhc3MgSkdBV1RUZXN0IGltcGxlbWVudHMg TWVzc2FnZUxpc3RlbmVyLCBNZW1iZXJzaGlwTGlzdGVuZXIgew0KIHByaXZhdGUgSkNoYW5uZWwg Y2hhbm5lbDsNCg0KIEZyYW1lIGZyYW1lOw0KICAgIHByaXZhdGUgTGlzdCBtZW1iZXIgPSBuZXcg TGlzdCgpOw0KICAgIHByaXZhdGUgQnV0dG9uIHNlbmRCdXR0ID0gbmV3IEJ1dHRvbigpOw0KICAg IHByaXZhdGUgVGV4dEFyZWEgIHJlY0NvbnRlbnQgPSBuZXcgVGV4dEFyZWEoIiIsMCwwLFRleHRB cmVhLlNDUk9MTEJBUlNfSE9SSVpPTlRBTF9PTkxZKTsNCiAgICBwcml2YXRlIFRleHRBcmVhIGNv bnRlbnQgPSBuZXcgVGV4dEFyZWEoIiIsMCwwLFRleHRBcmVhLlNDUk9MTEJBUlNfTk9ORSk7DQog IHByaXZhdGUgSGFzaHRhYmxlIHN0YXRlSHQgPSBuZXcgSGFzaHRhYmxlKCk7DQogLyoqDQogICog Q29uc3RydWN0b3IgZm9yIEpHQVdUVGVzdC4NCiAgKi8NCiBwdWJsaWMgSkdBV1RUZXN0KCkgew0K ICBzdXBlcigpOw0KIH0NCiBwcml2YXRlIEpDaGFubmVsIGluaXRDaGFubmVsKFN0cmluZyBuYW1l KSB0aHJvd3MgQ2hhbm5lbEV4Y2VwdGlvbiB7DQogIC8vaW5pdCBjaGFubmVsIHByb3BlcnRpZXMN CiAgU3RyaW5nIHByb3BlcnRpZXMgPVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZSgicHJvdG9jb2xk ZWYiKS5nZXRTdHJpbmcoIlByb3RvY29sLlN0YWNrIik7DQoNCiAgLy93aWxsIGdldCBDaGFubmVs DQogIEpDaGFubmVsIGNoYW5uZWw7DQogIGNoYW5uZWwgPSBuZXcgSkNoYW5uZWwocHJvcGVydGll cyk7DQogIHRyeSB7DQogICAvL29ubHkgQ29udHJvbCBDaGFubmVsIHdpbGwgaGFzIEdFVF9TVEFU RV9FVkVOVFMNCiAgIGNoYW5uZWwuY29ubmVjdChuYW1lKTsNCiAgIGNoYW5uZWwuc2V0T3B0KEpD aGFubmVsLkdFVF9TVEFURV9FVkVOVFMsIG5ldyBCb29sZWFuKHRydWUpKTsNCiAgIGNoYW5uZWwu Z2V0U3RhdGUobnVsbCw1MDAwKTsNCiAgfSBjYXRjaCAoQ2hhbm5lbENsb3NlZEV4Y2VwdGlvbiBl KSB7DQogICB0aHJvdyBuZXcgQ2hhbm5lbEV4Y2VwdGlvbigiQ2hhbm5lbCBpcyBjbG9zZWQiKTsN CiAgfQ0KICBQdWxsUHVzaEFkYXB0ZXIgcHVsbCA9IG5ldyBQdWxsUHVzaEFkYXB0ZXIoY2hhbm5l bCwgdGhpcywgdGhpcyk7DQogIC8vICAgICBEZWJ1Z2dlciBkZWJ1Z2dlcj1uZXcgRGVidWdnZXIo Y2hhbm5lbCwgdHJ1ZSk7DQogIC8vICAgICBkZWJ1Z2dlci5zdGFydCgpOw0KDQogIHJldHVybiBj aGFubmVsOw0KDQogfQ0KIC8qKg0KICAqIEBzZWUgb3JnLmphdmFncm91cHMuTWVzc2FnZUxpc3Rl bmVyI2dldFN0YXRlKCkNCiAgKi8NCiBwdWJsaWMgYnl0ZVtdIGdldFN0YXRlKCkgew0KICBPYmpl Y3Qga2V5LCB2YWw7DQogIEhhc2h0YWJsZSBjb3B5ID0gbmV3IEhhc2h0YWJsZSgpOw0KICBmb3Ig KEVudW1lcmF0aW9uIGUgPSBzdGF0ZUh0LmtleXMoKTsgZS5oYXNNb3JlRWxlbWVudHMoKTspIHsN CiAgIGtleSA9IGUubmV4dEVsZW1lbnQoKTsNCiAgIHZhbCA9IHN0YXRlSHQuZ2V0KGtleSk7DQog ICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0YXRlIGdldCBmcm9tIDoiICsga2V5ICsgIiB2YWx1ZSA6 ICIgKyB2YWwpOw0KICAgY29weS5wdXQoa2V5LCB2YWwpOw0KICB9DQogIFN5c3RlbS5vdXQucHJp bnRsbigiU3RhdGUgZ2V0IGZyb20gY29tcGxldGUiKTsNCg0KICB0cnkgew0KICAgcmV0dXJuIFV0 aWwub2JqZWN0VG9CeXRlQnVmZmVyKGNvcHkpOw0KICB9DQogIGNhdGNoKEV4Y2VwdGlvbiBleCkg ew0KICAgU3lzdGVtLm91dC5wcmludGxuKCJleGNlcHRpb24gbWFyc2hhbGxpbmcgc3RhdGU6ICIg KyBleCk7DQogICByZXR1cm4gbnVsbDsNCiAgfQ0KIH0NCg0KIC8qKg0KICAqIEBzZWUgb3JnLmph dmFncm91cHMuTWVzc2FnZUxpc3RlbmVyI3JlY2VpdmUoTWVzc2FnZSkNCiAgKi8NCiBwdWJsaWMg dm9pZCByZWNlaXZlKE1lc3NhZ2UgbXNnKSB7DQogIFN0cmluZyBzdHIgPSBtc2cuZ2V0T2JqZWN0 KCkudG9TdHJpbmcoKTsNCiAgcmVmcmVzaFJlY2VpdmUoc3RyKTsNCiAgDQogfQ0KDQoNCiAvKioN CiAgKiBAc2VlIG9yZy5qYXZhZ3JvdXBzLk1lc3NhZ2VMaXN0ZW5lciNzZXRTdGF0ZShieXRlW10p DQogICovDQogcHVibGljIHZvaWQgc2V0U3RhdGUoYnl0ZVtdIHN0YXRlKSB7DQogIEhhc2h0YWJs ZSBjb3B5Ow0KICB0cnkgew0KICAgY29weSA9IChIYXNodGFibGUpIFV0aWwub2JqZWN0RnJvbUJ5 dGVCdWZmZXIoc3RhdGUpOw0KICB9IGNhdGNoIChUaHJvd2FibGUgZSkgew0KICAgZS5wcmludFN0 YWNrVHJhY2UoKTsNCiAgIHJldHVybjsNCiAgfQ0KDQogIE9iamVjdCBrZXk7DQogIGlmIChjb3B5 ID09IG51bGwpDQogICByZXR1cm47DQoNCiAgc3RhdGVIdC5jbGVhcigpOyAvLyByZW1vdmUgYWxs IGVsZW1lbnRzDQogIGZvciAoRW51bWVyYXRpb24gZSA9IGNvcHkua2V5cygpOyBlLmhhc01vcmVF bGVtZW50cygpOykgew0KICAga2V5ID0gZS5uZXh0RWxlbWVudCgpOw0KICAgc3RhdGVIdC5wdXQo a2V5LCBjb3B5LmdldChrZXkpKTsNCiAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RhdGUgc2V0OiIg KyBrZXkgKyAiIHZhbHVlIDogIiArIGNvcHkuZ2V0KGtleSkpOw0KICB9DQogIFN5c3RlbS5vdXQu cHJpbnRsbigiU3RhdGUgc2V0IGNvbXBsZXRlIik7ICANCiB9DQoNCiAvKioNCiAgKiBAc2VlIG9y Zy5qYXZhZ3JvdXBzLk1lbWJlcnNoaXBMaXN0ZW5lciNibG9jaygpDQogICovDQogcHVibGljIHZv aWQgYmxvY2soKSB7DQogfQ0KDQogLyoqDQogICogQHNlZSBvcmcuamF2YWdyb3Vwcy5NZW1iZXJz aGlwTGlzdGVuZXIjc3VzcGVjdChBZGRyZXNzKQ0KICAqLw0KIHB1YmxpYyB2b2lkIHN1c3BlY3Qo QWRkcmVzcyBzdXNwZWN0ZWRfbWJyKSB7DQogfQ0KDQogLyoqDQogICogQHNlZSBvcmcuamF2YWdy b3Vwcy5NZW1iZXJzaGlwTGlzdGVuZXIjdmlld0FjY2VwdGVkKFZpZXcpDQogICovDQogcHVibGlj IHZvaWQgdmlld0FjY2VwdGVkKFZpZXcgbmV3Vmlldykgew0KICBTeXN0ZW0ub3V0LnByaW50bG4o ImVudGVyIHZpZXdBY2NlcHRlZDtNZW1iZXJzIDoiICsgbmV3Vmlldy5zaXplKCkpOw0KICANCiAg VmVjdG9yIG5ld01icnMgPSBuZXdWaWV3LmdldE1lbWJlcnMoKTsNCiAgaWYobmV3VmlldyBpbnN0 YW5jZW9mIE1lcmdlVmlldyl7DQogICBpZihuZXdWaWV3LmdldE1lbWJlcnMoKS5maXJzdEVsZW1l bnQoKS5lcXVhbHMoY2hhbm5lbC5nZXRMb2NhbEFkZHJlc3MoKSkpew0KICAgIFN5c3RlbS5vdXQu cHJpbnRsbigiTWVyZ2UgdmlldyBldmVudCBoYXBwZW4sIHRyeSB0byBzeW5jIFN0YXRlcyIpOw0K ICAgIE1lcmdlVmlldyBtVmlldyA9IChNZXJnZVZpZXcpIG5ld1ZpZXc7DQogICAgVmVjdG9yIHN1 YkdycCA9IG1WaWV3LmdldFN1Ymdyb3VwcygpOw0KICAgIGZvcihpbnQgaT0wO2k8IHN1YkdycC5z aXplKCk7aSsrKXsNCiAgICAgVmVjdG9yIGdyb3VwID0gKChWaWV3KSBzdWJHcnAuZWxlbWVudEF0 KGkpKS5nZXRNZW1iZXJzKCk7DQogICAgIGlmKGdyb3VwLmNvbnRhaW5zKGNoYW5uZWwuZ2V0TG9j YWxBZGRyZXNzKCkpKQ0KICAgICAgY29udGludWU7DQogICAgIGNoYW5uZWwuZ2V0U3RhdGUoKEFk ZHJlc3MpZ3JvdXAuZmlyc3RFbGVtZW50KCksNTAwMCk7DQogICAgIFN5c3RlbS5vdXQucHJpbnRs bihjaGFubmVsLmdldExvY2FsQWRkcmVzcygpICsiIGdldCBzdGF0ZSBmcm9tICIgKyBuZXdNYnJz LmVsZW1lbnRBdChpKS50b1N0cmluZygpKTsNCiAgICB9DQogICB9DQogIH0NCiAgICANCiAgRW51 bWVyYXRpb24gZW51bSA9IG5ld1ZpZXcuZ2V0TWVtYmVycygpLmVsZW1lbnRzKCk7DQogIFN0cmlu Z1tdIGl0ZW1zID0gbmV3IFN0cmluZ1tuZXdWaWV3LmdldE1lbWJlcnMoKS5zaXplKCldOw0KICBm b3IgKGludCBpID0gMDsgZW51bS5oYXNNb3JlRWxlbWVudHMoKTsgaSsrKQ0KICAgaXRlbXNbaV0g PSAoKEFkZHJlc3MpIGVudW0ubmV4dEVsZW1lbnQoKSkudG9TdHJpbmcoKTsNCg0KICByZWZyZXNo TGlzdChpdGVtcyk7DQogIHRyeSB7DQogICBjaGFubmVsLnNlbmQoDQogICAgbmV3IE1lc3NhZ2Uo DQogICAgIG51bGwsDQogICAgIGNoYW5uZWwuZ2V0TG9jYWxBZGRyZXNzKCksDQogICAgIFV0aWwu b2JqZWN0VG9CeXRlQnVmZmVyKA0KICAgICAgIklOSVQiICsgY2hhbm5lbC5nZXRMb2NhbEFkZHJl c3MoKSkpKTsNCiAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgew0KICAgZXhwLnByaW50U3RhY2tU cmFjZSgpOw0KICB9DQogIA0KIH0NCg0KIC8qKg0KICAqIE1ldGhvZCByZWZyZXNoTGlzdC4NCiAg KiBAcGFyYW0gaXRlbXMNCiAgKi8NCiBwcml2YXRlIHZvaWQgcmVmcmVzaExpc3QoU3RyaW5nW10g aXRlbXMpIHsNCiAgbWVtYmVyLnJlbW92ZUFsbCgpOw0KICBmb3IoaW50IGk9MDtpPGl0ZW1zLmxl bmd0aDtpKyspDQogICBtZW1iZXIuYWRkKGl0ZW1zW2ldKTsNCiB9DQogLyoqDQogICogTWV0aG9k IHJlZnJlc2hSZWNlaXZlLg0KICAqIEBwYXJhbSBzdHINCiAgKi8NCiBwcml2YXRlIHZvaWQgcmVm cmVzaFJlY2VpdmUoU3RyaW5nIHN0cikgew0KICByZWNDb250ZW50LnNldFRleHQocmVjQ29udGVu dC5nZXRUZXh0KCkgKyAiXHJcbiIgKyBzdHIpOyAgDQogfQ0KDQoNCiBwdWJsaWMgc3RhdGljIHZv aWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7DQogIEpHQVdUVGVzdCBqZ3QgPSBuZXcgSkdBV1RUZXN0 KCk7DQogIGpndC5pbml0KCk7DQogfQ0KIC8qKg0KICAqIE1ldGhvZCBpbml0Lg0KICAqLw0KIHB1 YmxpYyB2b2lkIGluaXQoKSB7DQogIHRyeSB7DQogICBjaGFubmVsID0gaW5pdENoYW5uZWwoIk5l d0dyb3VwTmFtZSIpOw0KICB9IGNhdGNoIChDaGFubmVsRXhjZXB0aW9uIGUpIHsNCiAgIGUucHJp bnRTdGFja1RyYWNlKCk7DQogIH0NCiAgDQogIGZyYW1lID0gbmV3IEZyYW1lKCJKR0FXVFRlc3Qi KTsNCiAgICAgICAgZnJhbWUuc2V0TGF5b3V0KG51bGwpOw0KICAgICAgICBmcmFtZS5zZXRCYWNr Z3JvdW5kKENvbG9yLmdyYXkpOw0KICAgICAgICBQYW5lbCBwYW5lbCA9IG5ldyBQYW5lbCgpOw0K ICBwYW5lbC5zZXRCb3VuZHMoMCwyNSw1MDAsNTUwKTsNCiAgcGFuZWwuc2V0TGF5b3V0KG51bGwp Ow0KICBwYW5lbC5zZXRCYWNrZ3JvdW5kKENvbG9yLmdyYXkpOw0KICANCiAgICAgICAgbWVtYmVy LnNldEJvdW5kcyhuZXcgUmVjdGFuZ2xlKDIsIDEsIDE5OSwgMzExKSk7DQogICAgICAgIA0KICAg ICAgICByZWNDb250ZW50LnNldEJvdW5kcyhuZXcgUmVjdGFuZ2xlKDIxMCwgNiwgMjk5LCAyNTcp KTsNCiAgICAgICAgDQogICAgICAgIGNvbnRlbnQuc2V0Qm91bmRzKG5ldyBSZWN0YW5nbGUoMjE2 LCAyODAsIDI5MywgMzApKTsNCiAgICAgICAgY29udGVudC5zZXRUZXh0KCJTZW5kQ29udGVudCIp Ow0KICAgICAgICANCiAgICAgICAgc2VuZEJ1dHQuc2V0TGFiZWwoImJ1dHRvbjIiKTsNCiAgICAg ICAgc2VuZEJ1dHQuc2V0Qm91bmRzKG5ldyBSZWN0YW5nbGUoMjg3LCAzNDMsIDc1LCAyOSkpOw0K ICBzZW5kQnV0dC5hZGRNb3VzZUxpc3RlbmVyKG5ldyBNb3VzZUFkYXB0ZXIoKXsNCiAgIHB1Ymxp YyB2b2lkIG1vdXNlUHJlc3NlZChNb3VzZUV2ZW50IGUpIHsNCiAgICB0cnkgew0KICAgICBjaGFu bmVsLnNlbmQoDQogICAgICBuZXcgTWVzc2FnZSgNCiAgICAgICBudWxsLA0KICAgICAgIGNoYW5u ZWwuZ2V0TG9jYWxBZGRyZXNzKCksDQogICAgICAgVXRpbC5vYmplY3RUb0J5dGVCdWZmZXIoY29u dGVudC5nZXRUZXh0KCkrY2hhbm5lbC5nZXRMb2NhbEFkZHJlc3MoKSkpKTsNCiAgICB9IGNhdGNo IChFeGNlcHRpb24gZXhwKSB7DQogICAgIGV4cC5wcmludFN0YWNrVHJhY2UoKTsNCiAgICB9DQog ICB9DQogIH0pOw0KICANCiAgICAgICAgcGFuZWwuYWRkKG1lbWJlciwgbnVsbCk7DQogICAgICAg IHBhbmVsLmFkZChyZWNDb250ZW50LCBudWxsKTsNCiAgICAgICAgcGFuZWwuYWRkKGNvbnRlbnQs IG51bGwpOw0KICAgICAgICBwYW5lbC5hZGQoc2VuZEJ1dHQsIG51bGwpOyANCiAgICAgICAgZnJh bWUuYWRkKHBhbmVsKTsNCg0KICBmcmFtZS5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRh cHRlcigpew0KICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKXsNCiAg ICBmcmFtZS5kaXNwb3NlKCk7DQogICAgU3lzdGVtLm91dC5wcmludGxuKCJkaXNwb3NlIik7DQog ICAgU3lzdGVtLmV4aXQoMCk7DQogICB9DQogIH0pOw0KICBmcmFtZS5zZXRTaXplKDUyMCw1NTAp Ow0KICBmcmFtZS5zaG93KCk7ICAgICAgICANCiAgICAgICAgIA0KIH0NCiANCn0NCg0K |