Return-Path: Delivered-To: apmail-xml-xalan-dev-archive@xml.apache.org Received: (qmail 15511 invoked by uid 500); 4 Jan 2002 07:44:14 -0000 Mailing-List: contact xalan-dev-help@xml.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: xalan-dev@xml.apache.org Delivered-To: mailing list xalan-dev@xml.apache.org Received: (qmail 15500 invoked from network); 4 Jan 2002 07:44:13 -0000 From: "Carsten Ziegeler" To: "Xalan-Dev" Subject: RE: DO NOT REPLY [Bug 5528] - DOMBuilder mixes DOM Level 1 and 2 Date: Fri, 4 Jan 2002 08:45:54 +0100 Message-ID: MIME-Version: 1.0 X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 In-Reply-To: <20020103203100.2810.qmail@nagoya.betaversion.org> Importance: Normal X-MIMETrack: Itemize by SMTP Server on PBSN1/Systeme und Netzwerke(Release 5.0.8 |June 18, 2001) at 04.01.2002 08:44:20, Serialize by Router on PBSN1/Systeme und Netzwerke(Release 5.0.8 |June 18, 2001) at 04.01.2002 08:44:21 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0009_01C194FC.384F8710" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N ------=_NextPart_000_0009_01C194FC.384F8710 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="iso-8859-1" Hi, I'm absolutely fine with only supporting DOM Level 2, but one thing is missing in the DOMBuilder: the support for namespaces. The namespaces (with their prefixes) are reported by the startPrefixMapping() event. The DOM however needs the namespaces as attributes at the element. So the attached patch records the namespaces with their prefixes whenever a startPrefixMapping() is called and appends the special xmlns attributes during startElement to the next incoming element. This patch is required as the parser might not add the namespace attributes to the element by itself. We had this problem in Cocoon with the Cocoon DOMBuilder and it took us some time to find out where the problem was. So this patch is actually from "borrowed" from Cocoon and should solve all the remaining problems. Regards, Carsten > -----Original Message----- > From: bugzilla@apache.org [mailto:bugzilla@apache.org] > Sent: Thursday, January 03, 2002 9:31 PM > To: cziegeler@apache.org > Subject: DO NOT REPLY [Bug 5528] - DOMBuilder mixes DOM Level 1 and 2 > > > DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG > RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT > . > ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND > INSERTED IN THE BUG DATABASE. > > http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5528 > > DOMBuilder mixes DOM Level 1 and 2 > > keshlam@us.ibm.com changed: > > What |Removed |Added > ------------------------------------------------------------------ > ---------- > Severity|Critical |Enhancement > > > > ------- Additional Comments From keshlam@us.ibm.com 2002-01-03 > 12:30 ------- > Checked in the simple fix (assume DOM Level 2). Adding DOM1 > support is, I think, > an Enhancement. ------=_NextPart_000_0009_01C194FC.384F8710 Content-Type: application/octet-stream; name="DOMBuilder.diff" Content-Disposition: attachment; filename="DOMBuilder.diff" Content-Transfer-Encoding: base64 SW5kZXg6IERPTUJ1aWxkZXIuamF2YQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL2N2c3B1 YmxpYy94bWwteGFsYW4vamF2YS9zcmMvb3JnL2FwYWNoZS94bWwvdXRpbHMvRE9NQnVpbGRlci5q YXZhLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMA0KZGlmZiAtdSAtcjEuMTAgRE9NQnVpbGRl ci5qYXZhDQotLS0gRE9NQnVpbGRlci5qYXZhCTMgSmFuIDIwMDIgMjA6MTI6MTkgLTAwMDAJMS4x MA0KKysrIERPTUJ1aWxkZXIuamF2YQk0IEphbiAyMDAyIDA3OjM5OjAxIC0wMDAwDQpAQCAtMiw3 ICsyLDcgQEANCiAgKiBUaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4xDQog ICoNCiAgKg0KLSAqIENvcHlyaWdodCAoYykgMTk5OSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5k YXRpb24uICBBbGwgcmlnaHRzIA0KKyAqIENvcHlyaWdodCAoYykgMTk5OSBUaGUgQXBhY2hlIFNv ZnR3YXJlIEZvdW5kYXRpb24uICBBbGwgcmlnaHRzDQogICogcmVzZXJ2ZWQuDQogICoNCiAgKiBS ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y IHdpdGhvdXQNCkBAIC0xMCw3ICsxMCw3IEBADQogICogYXJlIG1ldDoNCiAgKg0KICAqIDEuIFJl ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp Z2h0DQotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv d2luZyBkaXNjbGFpbWVyLiANCisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQogICoNCiAgKiAyLiBSZWRpc3RyaWJ1dGlv bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICAq ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz Y2xhaW1lciBpbg0KQEAgLTE4LDcgKzE4LDcgQEANCiAgKiAgICBkaXN0cmlidXRpb24uDQogICoN CiAgKiAzLiBUaGUgZW5kLXVzZXIgZG9jdW1lbnRhdGlvbiBpbmNsdWRlZCB3aXRoIHRoZSByZWRp c3RyaWJ1dGlvbiwNCi0gKiAgICBpZiBhbnksIG11c3QgaW5jbHVkZSB0aGUgZm9sbG93aW5nIGFj a25vd2xlZGdtZW50OiAgDQorICogICAgaWYgYW55LCBtdXN0IGluY2x1ZGUgdGhlIGZvbGxvd2lu ZyBhY2tub3dsZWRnbWVudDoNCiAgKiAgICAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3 YXJlIGRldmVsb3BlZCBieSB0aGUNCiAgKiAgICAgICAgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRp b24gKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy8pLiINCiAgKiAgICBBbHRlcm5hdGVseSwgdGhpcyBh Y2tub3dsZWRnbWVudCBtYXkgYXBwZWFyIGluIHRoZSBzb2Z0d2FyZSBpdHNlbGYsDQpAQCAtMjYs NyArMjYsNyBAQA0KICAqDQogICogNC4gVGhlIG5hbWVzICJYYWxhbiIgYW5kICJBcGFjaGUgU29m dHdhcmUgRm91bmRhdGlvbiIgbXVzdA0KICAqICAgIG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcw0KLSAqICAgIHNvZnR3YXJlIHdpdGhv dXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiBGb3Igd3JpdHRlbiANCisgKiAgICBzb2Z0d2Fy ZSB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHdyaXR0ZW4NCiAgKiAgICBw ZXJtaXNzaW9uLCBwbGVhc2UgY29udGFjdCBhcGFjaGVAYXBhY2hlLm9yZy4NCiAgKg0KICAqIDUu IFByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIG1heSBub3QgYmUgY2FsbGVkICJB cGFjaGUiLA0KQEAgLTYwLDYgKzYwLDcgQEANCiBpbXBvcnQgb3JnLmFwYWNoZS54cGF0aC5yZXMu WFBBVEhFcnJvclJlc291cmNlczsNCiBpbXBvcnQgb3JnLmFwYWNoZS54bWwudXRpbHMuTm9kZVZl Y3RvcjsNCiBpbXBvcnQgamF2YS51dGlsLlN0YWNrOw0KK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9y Ow0KIA0KIGltcG9ydCBvcmcueG1sLnNheC5leHQuTGV4aWNhbEhhbmRsZXI7DQogaW1wb3J0IG9y Zy54bWwuc2F4LkNvbnRlbnRIYW5kbGVyOw0KQEAgLTkwLDYgKzkxLDkgQEANCiAgIC8qKiBWZWN0 b3Igb2YgZWxlbWVudCBub2RlcyAgICAgICAgICAqLw0KICAgcHJvdGVjdGVkIFN0YWNrIG1fZWxl bVN0YWNrID0gbmV3IFN0YWNrKCk7DQogDQorICAvKiogVGhlIHZlY3RvciBvZiBuYW1lc3BhY2Vz IGRlY2xhcmF0aW9ucyB0byBpbmNsdWRlIGluIHRoZSBuZXh0IGVsZW1lbnQgKi8NCisgIHByaXZh dGUgVmVjdG9yIG1fdW5kZWNsID0gbmV3IFZlY3Rvcig1KTsNCisNCiAgIC8qKg0KICAgICogRE9N QnVpbGRlciBpbnN0YW5jZSBjb25zdHJ1Y3Rvci4uLiBpdCB3aWxsIGFkZCB0aGUgRE9NIG5vZGVz DQogICAgKiB0byB0aGUgZG9jdW1lbnQgZnJhZ21lbnQuDQpAQCAtMjg3LDcgKzI5MSw3IEBADQog ICAgKg0KICAgICoNCiAgICAqIEBwYXJhbSBucyBUaGUgbmFtZXNwYWNlIG9mIHRoZSBub2RlDQot ICAgKiBAcGFyYW0gbG9jYWxOYW1lIFRoZSBsb2NhbCBwYXJ0IG9mIHRoZSBxdWFsaWZpZWQgbmFt ZSANCisgICAqIEBwYXJhbSBsb2NhbE5hbWUgVGhlIGxvY2FsIHBhcnQgb2YgdGhlIHF1YWxpZmll ZCBuYW1lDQogICAgKiBAcGFyYW0gbmFtZSBUaGUgZWxlbWVudCBuYW1lLg0KICAgICogQHBhcmFt IGF0dHMgVGhlIGF0dHJpYnV0ZXMgYXR0YWNoZWQgdG8gdGhlIGVsZW1lbnQsIGlmIGFueS4NCiAg ICAqIEBzZWUgI2VuZEVsZW1lbnQNCkBAIC0zMDAsOCArMzA0LDggQEANCiANCiAgICAgRWxlbWVu dCBlbGVtOw0KIA0KLQkvLyBOb3RlIHRoYXQgdGhlIG5hbWVzcGFjZS1hd2FyZSBjYWxsIG11c3Qg YmUgdXNlZCB0byBjb3JyZWN0bHkNCi0JLy8gY29uc3RydWN0IGEgTGV2ZWwgMiBET00sIGV2ZW4g Zm9yIG5vbi1uYW1lc3BhY2VkIG5vZGVzLg0KKyAgICAvLyBOb3RlIHRoYXQgdGhlIG5hbWVzcGFj ZS1hd2FyZSBjYWxsIG11c3QgYmUgdXNlZCB0byBjb3JyZWN0bHkNCisgICAgLy8gY29uc3RydWN0 IGEgTGV2ZWwgMiBET00sIGV2ZW4gZm9yIG5vbi1uYW1lc3BhY2VkIG5vZGVzLg0KICAgICBpZiAo KG51bGwgPT0gbnMpIHx8IChucy5sZW5ndGgoKSA9PSAwKSkNCiAgICAgICBlbGVtID0gbV9kb2Mu Y3JlYXRlRWxlbWVudE5TKG51bGwsbmFtZSk7DQogICAgIGVsc2UNCkBAIC0zMTIsNDMgKzMxNiwz NyBAQA0KICAgICB0cnkNCiAgICAgew0KICAgICAgIGludCBuQXR0cyA9IGF0dHMuZ2V0TGVuZ3Ro KCk7DQotICANCisNCiAgICAgICBpZiAoMCAhPSBuQXR0cykNCiAgICAgICB7DQotICAgICAgICBm b3IgKGludCBpID0gMDsgaSA8IG5BdHRzOyBpKyspDQotICAgICAgICB7DQotICANCi0gICAgICAg ICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oInR5cGUgIiArIGF0dHMuZ2V0VHlwZShpKSArICIgbmFt ZSAiICsgYXR0cy5nZXRMb2NhbE5hbWUoaSkgKTsNCi0gICAgICAgICAgLy8gRmlyc3QgaGFuZGxl IGEgcG9zc2libGUgSUQgYXR0cmlidXRlDQotICAgICAgICAgIGlmIChhdHRzLmdldFR5cGUoaSku ZXF1YWxzSWdub3JlQ2FzZSgiSUQiKSkNCi0gICAgICAgICAgICBzZXRJREF0dHJpYnV0ZShhdHRz LmdldFZhbHVlKGkpLCBlbGVtKTsNCi0gIA0KLSAgICAgICAgICBTdHJpbmcgYXR0ck5TID0gYXR0 cy5nZXRVUkkoaSk7DQotICAgICAgICAgIA0KLSAgICAgICAgICBpZihhdHRyTlMgPT0gbnVsbCkN Ci0gICAgICAgICAgICBhdHRyTlMgPSAiIjsgLy8gZGVmZW5zaXZlLCBzaG91bGRuJ3QgaGF2ZSB0 byBkbyB0aGlzLg0KLSAgDQotICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiYXR0ck5T OiAiK2F0dHJOUysiLCBsb2NhbE5hbWU6ICIrYXR0cy5nZXRRTmFtZShpKQ0KLSAgICAgICAgICAv LyAgICAgICAgICAgICAgICAgICArIiwgcW5hbWU6ICIrYXR0cy5nZXRRTmFtZShpKSsiLCB2YWx1 ZTogIithdHRzLmdldFZhbHVlKGkpKTsNCi0gICAgICAgICAgLy8gQ3JpbXNvbiB3b24ndCBsZXQg dXMgc2V0IGFuIHhtbG5zOiBhdHRyaWJ1dGUgb24gdGhlIERPTS4NCi0gICAgICAgICAgU3RyaW5n IGF0dHJRTmFtZSA9IGF0dHMuZ2V0UU5hbWUoaSk7DQotICAgICAgICAgIGlmICgoYXR0ck5TLmxl bmd0aCgpID09IDApIC8qIHx8IGF0dHJRTmFtZS5zdGFydHNXaXRoKCJ4bWxuczoiKSB8fCBhdHRy UU5hbWUuZXF1YWxzKCJ4bWxucyIpICovKQ0KLSAgICAgICAgICAgIGVsZW0uc2V0QXR0cmlidXRl KGF0dHJRTmFtZSwgYXR0cy5nZXRWYWx1ZShpKSk7DQotICAgICAgICAgIGVsc2UNCi0gICAgICAg ICAgew0KLSAgDQotICAgICAgICAgICAgLy8gZWxlbS5zZXRBdHRyaWJ1dGVOUyhhdHRzLmdldFVS SShpKSwgYXR0cy5nZXRMb2NhbE5hbWUoaSksIGF0dHMuZ2V0VmFsdWUoaSkpOw0KLSAgICAgICAg ICAgIGVsZW0uc2V0QXR0cmlidXRlTlMoYXR0ck5TLCBhdHRyUU5hbWUsIGF0dHMuZ2V0VmFsdWUo aSkpOw0KLSAgICAgICAgICB9DQorICAgICAgLy8gUHJvY2VzcyBhbGwgYXR0cmlidXRlcywgbGVh dmUgb3V0IG5hbWVzcGFjZSBhdHRyaWJ1dGVzDQorICAgICAgZm9yICggaW50IHggPSAwOyB4IDwg YXR0cy5nZXRMZW5ndGgoKTsgeCsrICkgew0KKyAgICAgICAgU3RyaW5nIGF1cmkgPSBhdHRzLmdl dFVSSSggeCApOw0KKyAgICAgICAgU3RyaW5nIGFyYXcgPSBhdHRzLmdldFFOYW1lKCB4ICk7DQor ICAgICAgICBTdHJpbmcgYXZhbCA9IGF0dHMuZ2V0VmFsdWUoIHggKTsNCisgICAgICAgIGlmICgg YXJhdy5zdGFydHNXaXRoKCAieG1sbnM6IiApID09IGZhbHNlICYmIGFyYXcuZXF1YWxzKCAieG1s bnMiICkgPT0gZmFsc2UgKQ0KKw0KKyAgICAgICAgICBpZiAoYXVyaSAhPSBudWxsICYmIGF1cmku bGVuZ3RoKCkgPT0gMCkgYXVyaSA9IG51bGw7DQorICAgICAgICAgIGVsZW0uc2V0QXR0cmlidXRl TlMoYXVyaSwgYXJhdywgYXZhbCk7DQogICAgICAgICB9DQogICAgICAgfQ0KLSAgICAgIA0KKyAg ICAgIC8vIEFwcGVuZCB0aGUgeG1sbnMuLi4gYXR0cmlidXRlcw0KKyAgICAgIGlmICggbV91bmRl Y2wuc2l6ZSgpID4gMCApIHsNCisgICAgICAgIGZvciAoIGludCB4ID0gMDsgeCA8IG1fdW5kZWNs LnNpemUoKTsgeCsrICkgew0KKyAgICAgICAgICBTdHJpbmdbXSB2YWx1ZSA9IChTdHJpbmdbXSlt X3VuZGVjbC5nZXQoeCk7DQorICAgICAgICAgIFN0cmluZyBhbmFtZSA9ICJ4bWxucyI7DQorICAg ICAgICAgIGlmICggdmFsdWVbMF0ubGVuZ3RoKCkgPiAwICkgYW5hbWUgPSAieG1sbnM6IiArIHZh bHVlWzBdOw0KKyAgICAgICAgICBlbGVtLnNldEF0dHJpYnV0ZU5TKCAiaHR0cDovL3d3dy53My5v cmcvMjAwMC94bWxucy8iLCBhbmFtZSwgdmFsdWVbMV0gKTsNCisgICAgICAgIH0NCisgICAgICAg IG1fdW5kZWNsLmNsZWFyKCk7DQorICAgICAgfQ0KKw0KICAgICAgIC8vIGFwcGVuZChlbGVtKTsN Ci0gIA0KKw0KICAgICAgIG1fZWxlbVN0YWNrLnB1c2goZWxlbSk7DQotICANCisNCiAgICAgICBt X2N1cnJlbnROb2RlID0gZWxlbTsNCi0gICAgICANCisNCiAgICAgICAvLyBhcHBlbmQoZWxlbSk7 DQogICAgIH0NCiAgICAgY2F0Y2goamF2YS5sYW5nLkV4Y2VwdGlvbiBkZSkNCkBAIC0zNTYsNyAr MzU0LDcgQEANCiAgICAgICAvLyBkZS5wcmludFN0YWNrVHJhY2UoKTsNCiAgICAgICB0aHJvdyBu ZXcgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uKGRlKTsNCiAgICAgfQ0KLSAgICANCisNCiAgIH0N CiANCiAgIC8qKg0KQEAgLTQ0NCwxMiArNDQyLDEyIEBADQogICAgKg0KICAgICogQHBhcmFtIGNo IEFycmF5IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMNCiAgICAqIEBwYXJhbSBzdGFydCBJbmRl eCB0byBzdGFydCBvZiBjaGFyYWN0ZXJzIGluIHRoZSBhcnJheQ0KLSAgICogQHBhcmFtIGxlbmd0 aCBOdW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgYXJyYXkgDQorICAgKiBAcGFyYW0gbGVuZ3Ro IE51bWJlciBvZiBjaGFyYWN0ZXJzIGluIHRoZSBhcnJheQ0KICAgICovDQogICBwdWJsaWMgdm9p ZCBjaGFyYWN0ZXJzUmF3KGNoYXIgY2hbXSwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKQ0KICAgICAg ICAgICB0aHJvd3Mgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uDQogICB7DQotICAgIGlmKGlzT3V0 c2lkZURvY0VsZW0oKSAgDQorICAgIGlmKGlzT3V0c2lkZURvY0VsZW0oKQ0KICAgICAgICAmJiBv cmcuYXBhY2hlLnhtbC51dGlscy5YTUxDaGFyYWN0ZXJSZWNvZ25pemVyLmlzV2hpdGVTcGFjZShj aCwgc3RhcnQsIGxlbmd0aCkpDQogICAgICAgcmV0dXJuOyAgLy8gYXZvaWQgRE9NMDA2IEhpZXJh cmNoeSByZXF1ZXN0IGVycm9yDQogDQpAQCAtNTMyLDEwICs1MzAsMTAgQEANCiANCiAgICAgYXBw ZW5kKG1fZG9jLmNyZWF0ZVRleHROb2RlKHMpKTsNCiAgIH0NCi0gIA0KKw0KICAgLyoqDQogICAg KiBUZWxsIGlmIHRoZSBjdXJyZW50IG5vZGUgaXMgb3V0c2lkZSB0aGUgZG9jdW1lbnQgZWxlbWVu dC4NCi0gICAqIA0KKyAgICoNCiAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY3VycmVudCBub2Rl IGlzIG91dHNpZGUgdGhlIGRvY3VtZW50IGVsZW1lbnQuDQogICAgKi8NCiAgICBwcml2YXRlIGJv b2xlYW4gaXNPdXRzaWRlRG9jRWxlbSgpDQpAQCAtNjI4LDcgKzYyNiw3IEBADQogICAgKi8NCiAg IHB1YmxpYyB2b2lkIGNkYXRhKGNoYXIgY2hbXSwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKSB0aHJv d3Mgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uDQogICB7DQotICAgIGlmKGlzT3V0c2lkZURvY0Vs ZW0oKSAgDQorICAgIGlmKGlzT3V0c2lkZURvY0VsZW0oKQ0KICAgICAgICAmJiBvcmcuYXBhY2hl LnhtbC51dGlscy5YTUxDaGFyYWN0ZXJSZWNvZ25pemVyLmlzV2hpdGVTcGFjZShjaCwgc3RhcnQs IGxlbmd0aCkpDQogICAgICAgcmV0dXJuOyAgLy8gYXZvaWQgRE9NMDA2IEhpZXJhcmNoeSByZXF1 ZXN0IGVycm9yDQogDQpAQCAtNzAwLDI5ICs2OTgsOCBAQA0KICAgcHVibGljIHZvaWQgc3RhcnRQ cmVmaXhNYXBwaW5nKFN0cmluZyBwcmVmaXgsIFN0cmluZyB1cmkpDQogICAgICAgICAgIHRocm93 cyBvcmcueG1sLnNheC5TQVhFeGNlcHRpb24NCiAgIHsNCi0NCi0gICAgLyoNCi0gICAgLy8gTm90 IHN1cmUgaWYgdGhpcyBpcyBuZWVkZWQgb3Igd2FudGVkDQotICAgIC8vIEFsc28sIGl0IGZhaWxz IGluIHRoZSBzdHJlZS4NCi0gICAgaWYoKG51bGwgIT0gbV9jdXJyZW50Tm9kZSkNCi0gICAgICAg JiYgKG1fY3VycmVudE5vZGUuZ2V0Tm9kZVR5cGUoKSA9PSBOb2RlLkVMRU1FTlRfTk9ERSkpDQot ICAgIHsNCi0gICAgICBTdHJpbmcgcW5hbWU7DQotICAgICAgaWYoKChudWxsICE9IHByZWZpeCkg JiYgKHByZWZpeC5sZW5ndGgoKSA9PSAwKSkNCi0gICAgICAgICB8fCAobnVsbCA9PSBwcmVmaXgp KQ0KLSAgICAgICAgcW5hbWUgPSAieG1sbnMiOw0KLSAgICAgIGVsc2UNCi0gICAgICAgIHFuYW1l ID0gInhtbG5zOiIrcHJlZml4Ow0KLQ0KLSAgICAgIEVsZW1lbnQgZWxlbSA9IChFbGVtZW50KW1f Y3VycmVudE5vZGU7DQotICAgICAgU3RyaW5nIHZhbCA9IGVsZW0uZ2V0QXR0cmlidXRlKHFuYW1l KTsNCi0gICAgICBpZih2YWwgPT0gbnVsbCkNCi0gICAgICB7DQotICAgICAgICBlbGVtLnNldEF0 dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLA0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBxbmFtZSwgdXJpKTsNCi0gICAgICB9DQotICAgIH0NCi0g ICAgKi8NCisgICAgLy8gSW5zZXJ0IHRoaXMgbmFtZXNwYWNlIGluIHRhYmxlcyBhdm9pZGluZyBk dXBsaWNhdGVzDQorICAgIG1fdW5kZWNsLmFkZEVsZW1lbnQoIG5ldyBTdHJpbmdbXSB7cHJlZml4 LCB1cmkgfSApOw0KICAgfQ0KIA0KICAgLyoqDQpAQCAtNzM3LDcgKzcxNCwyMiBAQA0KICAgICog QHNlZSAjc3RhcnRQcmVmaXhNYXBwaW5nDQogICAgKiBAc2VlICNlbmRFbGVtZW50DQogICAgKi8N Ci0gIHB1YmxpYyB2b2lkIGVuZFByZWZpeE1hcHBpbmcoU3RyaW5nIHByZWZpeCkgdGhyb3dzIG9y Zy54bWwuc2F4LlNBWEV4Y2VwdGlvbnt9DQorICBwdWJsaWMgdm9pZCBlbmRQcmVmaXhNYXBwaW5n KFN0cmluZyBwcmVmaXgpDQorICB0aHJvd3Mgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uDQorICB7 DQorICAgIGludCBpID0gbV91bmRlY2wuc2l6ZSgpOw0KKyAgICBib29sZWFuIGZvdW5kID0gZmFs c2U7DQorICAgIHdoaWxlIChpID4gMCAmJiBmb3VuZCA9PSBmYWxzZSkNCisgICAgew0KKyAgICAg IGktLTsNCisgICAgICBTdHJpbmdbXSB2YWx1ZSA9IChTdHJpbmdbXSltX3VuZGVjbC5nZXQoaSk7 DQorICAgICAgaWYgKHZhbHVlWzBdLmVxdWFscyhwcmVmaXgpID09IHRydWUpDQorICAgICAgew0K KyAgICAgICAgbV91bmRlY2wucmVtb3ZlRWxlbWVudEF0KGkpOw0KKyAgICAgICAgZm91bmQgPSB0 cnVlOw0KKyAgICAgIH0NCisgICAgfQ0KKyAgfQ0KIA0KICAgLyoqDQogICAgKiBSZWNlaXZlIG5v dGlmaWNhdGlvbiBvZiBhIHNraXBwZWQgZW50aXR5Lg0K ------=_NextPart_000_0009_01C194FC.384F8710--