--=_2bed89859607297d6c97ac4136220549 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit
I know that it is possible, Novell GroupWise webmail (which I use for work) has this feature. I do not know any javascript beyond the very basics but I did grab the code and strip it down as much as possible. Maybe someone else can look at it and find something useful.
I have attached the shamelessly copied code.
On Tue, 31 Jan 2006 9:17:29 -0500, Charles McNulty charles@charlesmcnulty.com wrote:
What would *really* be sweet is if the separator between the folders and the message list could be adjustable, as if it were a frame (and believe me, I'm not advocating for frames). I don't even know if this is possible. I know that I looked into making the column widths of the message list adjustable and I couldn't find any possibility. Any Javascript wizards wanna weigh in on the feasability of making the widths adjustable without frames?
-Charles
On Tue, 31 Jan 2006 9:56:11 +0100, Pierre HAEGELI pierre@haegeli.net wrote:
In order to have the width of the folders list tab fitting with
different
translations or folders names,
it would be great if the width of the tab could be resizable or fixed in the preferences screen with a new field where you can enter a size in pixels.
Do you think this feature could be added to Roundcube ?
Thanx.
P.
--=_2bed89859607297d6c97ac4136220549 Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pane_resize.html"
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs Ly9FTiI+DQo8aHRtbCBkaXI9Imx0ciI+DQo8aGVhZD4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+ DQpkaXYuZm9sZGVycyB7DQoJd2lkdGg6IDIwJTsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJbGVm dDogMHB4Ow0KCWJhY2tncm91bmQtY29sb3I6ICNmZjAwMDA7DQp9DQoNCmRpdi5tc2dsaXN0IHsN Cgl3aWR0aDogNzglOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglsZWZ0OiAyMSU7DQoJYm9yZGVy LWxlZnQ6IDFweCBzb2xpZCAjMDAwMDAwOw0KCWJhY2tncm91bmQtY29sb3I6ICMwMGZmMDA7DQp9 DQpkaXYjcmVzaXplLWxpbmUgew0KCXBvc2l0aW9uOmFic29sdXRlOw0KCXRvcDowcHg7DQoJbGVm dDoyMSU7DQoJd2lkdGg6NHB4Ow0KCWhlaWdodDoxMDAlOw0KCWN1cnNvcjplLXJlc2l6ZTsNCn0N Cjwvc3R5bGU+DQo8bWV0YSBIVFRQLUVRVUlWPSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv aHRtbDsgY2hhcnNldD11dGYtOCI+DQo8dGl0bGU+PC90aXRsZT4NCg0KPHNjcmlwdCB0eXBlPSJ0 ZXh0L2phdmFzY3JpcHQiPg0KPCEtLQ0KDQoJdmFyIGlzU3RyZCA9IChkb2N1bWVudC5nZXRFbGVt ZW50QnlJZCAmJiAhZG9jdW1lbnQuYWxsKSA/IHRydWUgOiBmYWxzZTsNCgl2YXIgaXNJRSA9IChk b2N1bWVudC5hbGwpID8gdHJ1ZSA6IGZhbHNlOw0KCQ0KCXZhciBpc2RyYWc9ZmFsc2U7DQoJdmFy IHN0YXJ0WCxzdGFydFksY3VycmVudFgsY3VycmVudFksY2xpY2tYb2Zmc2V0LGNsaWNrWW9mZnNl dDsNCgl2YXIgZHJhZ0l0ZW1zID0gbnVsbDsNCgl2YXIgZHJhZ0VsbXQgPSBudWxsOw0KCXZhciBm b2xkZXJzID0gbnVsbDsNCgl2YXIgc2VsZWN0RmxkciA9IG51bGw7DQoJdmFyIG9sZE1vdXNlTW92 ZSA9IGRvY3VtZW50Lm9ubW91c2VvdmVyOw0KCXZhciByZXNpemVMaW5lID0gbnVsbDsNCgl2YXIg aXNSZXNpemUgPSBmYWxzZTsNCgl2YXIgcmVzaXplU3RhcnRYID0gbnVsbDsNCgl2YXIgcmVzaXpl WCA9IDA7DQoNCg0KDQoJDQoJZnVuY3Rpb24gb25DbGlja0l0ZW0oZSkgew0KCQlpZihpc1N0cmQg fHwgaXNJRSkgew0KCQkNCgkJCWlmKGlzU3RyZCkgew0KCQkJCXRhcmdldE9iaiA9IGUudGFyZ2V0 Ow0KCQkJCWNsY2tCdG4gPSBlLndoaWNoOw0KCQkJCWN1cnJlbnRYID0gZS5wYWdlWDsNCgkJCQlj dXJyZW50WSA9IGUucGFnZVk7DQoJCQl9DQoJCQllbHNlIHsNCgkJCQl0YXJnZXRPYmogPSB3aW5k b3cuZXZlbnQuc3JjRWxlbWVudDsNCgkJCQljbGNrQnRuID0gd2luZG93LmV2ZW50LmJ1dHRvbjsN CgkJCQljdXJyZW50WCA9IHdpbmRvdy5ldmVudC5jbGllbnRYOw0KCQkJCWN1cnJlbnRZID0gd2lu ZG93LmV2ZW50LmNsaWVudFkgKyBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsNCgkJCX0NCg0KCQkJ aWYodGFyZ2V0T2JqLmlkID09ICJyZXNpemUtbGluZSIpIHsNCgkJCQlyZXNpemVTdGFydFggPSBn ZXRPYmpYWShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3ctbXNnbGlzdCIpKVswXTsNCgkJCQlk b2N1bWVudC5vbm1vdXNlbW92ZSA9IGRvUmVzaXplOw0KCQkJCWlzUmVzaXplID0gdHJ1ZTsNCgkJ CQlyZXNpemVMaW5lLnN0eWxlLmJvcmRlckxlZnQgPSAiMXB4IGRvdHRlZCAjMDAwIjsNCgkJCQly ZXR1cm4gZmFsc2U7DQoJCQl9DQoNCgkJCS8vIGZpbHRlciBsZWZ0IG1vdXNlIGNsaWNrLCBub3Qg Y2hlY2tib3gsIGFuZCBub24tZHJhZ2FibGUgY29sdW1ucw0KCQkJaWYoY2xja0J0biAhPSAxIHx8 IHRhcmdldE9iai5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09ICJpbnB1dCIpIHJldHVybjsNCg0K CQkJdmFyIGlzRHJhZ2FibGVDb2x1bW4gPSBpc0RyYWdDb2x1bW4odGFyZ2V0T2JqLmNsYXNzTmFt ZSk7DQoJCQkvLyBnZXQgdGhlIHJvdyBvamVjdCBmb3IgdGhlIGNsaWNrZWQgbG9jYXRpb24NCgkJ CXdoaWxlKHRhcmdldE9iai50YWdOYW1lICE9ICJIVE1MIiAmJiB0YXJnZXRPYmoudGFnTmFtZSAh PSAiQk9EWSIgJiYgdGFyZ2V0T2JqLmNsYXNzTmFtZS5pbmRleE9mKCJ1bnJlYWQiKSA8IDAgJiYg dGFyZ2V0T2JqLmNsYXNzTmFtZS5pbmRleE9mKCJyZWFkIikgPCAwKSB7DQoJCQkJdGFyZ2V0T2Jq ID0gKCFkb2N1bWVudC5hbGwpID8gdGFyZ2V0T2JqLnBhcmVudE5vZGUgOiB0YXJnZXRPYmoucGFy ZW50RWxlbWVudDsNCgkJCQlpZihpc0RyYWdhYmxlQ29sdW1uID09IGZhbHNlKSBpc0RyYWdhYmxl Q29sdW1uID0gaXNEcmFnQ29sdW1uKHRhcmdldE9iai5jbGFzc05hbWUpOw0KCQkJfQ0KCQkJaWYo IWlzRHJhZ2FibGVDb2x1bW4pIHJldHVybjsNCg0KCQkJaWYodGFyZ2V0T2JqLmNsYXNzTmFtZS5p bmRleE9mKCJ1bnJlYWQiKSA+PSAwIHx8IHRhcmdldE9iai5jbGFzc05hbWUuaW5kZXhPZigicmVh ZCIpID49IDApIHsNCg0KCQkJCWluaXRGb2xkZXJzKCk7DQoJCQkJaXNkcmFnID0gdHJ1ZTsNCg0K CQkJCS8vIGlmIGl0ZW1zIGFyZSBjaGVja2VkLCBkcmFnIHRoZSBjaGVja2VkIGl0ZW1zLCBvdGhl cndpc2UgZHJhZyB0aGUgaXRlbSBhdCB0aGUgbW91c2UgbG9jYXRpb24NCgkJCQlkcmFnSXRlbXMg PSBuZXcgQXJyYXkoKTsNCgkJCQl2YXIgY2hlY2tlZE1haWwgPSBkb2N1bWVudC5mb3Jtc1siTWVz c2FnZUxpc3QiXS5lbGVtZW50c1siSXRlbS5kcm4iXTsNCgkJCQl2YXIgaXNPblRhcmdldCA9IGZh bHNlOw0KCQkJCWZvcih2YXIgaSA9IGNoZWNrZWRNYWlsLmxlbmd0aC0xOyBpID4gLTE7IGktLSkg ew0KCQkJCQlpZihjaGVja2VkTWFpbFtpXS5jaGVja2VkID09IHRydWUpIHsNCgkJCQkJCXZhciBj aGVja2VkTWFpbFJvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNoZWNrZWRNYWlsW2ldLnZh bHVlKTsNCgkJCQkJCXZhciByb3dQb3MgPSBnZXRPYmpYWShjaGVja2VkTWFpbFJvdyk7DQoJCQkJ CQljaGVja2VkTWFpbFJvdy55cG9zID0gcm93UG9zWzFdOw0KCQkJCQkJZHJhZ0l0ZW1zW2RyYWdJ dGVtcy5sZW5ndGhdID0gY2hlY2tlZE1haWxSb3c7DQoJCQkJCQlpZih0YXJnZXRPYmouaWQgPT0g Y2hlY2tlZE1haWxSb3cuaWQpIGlzT25UYXJnZXQgPSB0cnVlOw0KCQkJCQl9DQoJCQkJfQ0KCQkJ CWlmKGRyYWdJdGVtcy5sZW5ndGggPT0gMCkgZHJhZ0l0ZW1zW2RyYWdJdGVtcy5sZW5ndGhdID0g dGFyZ2V0T2JqOw0KCQkJCWVsc2UgaWYoIWlzT25UYXJnZXQpIHsNCgkJCQkJZG9jdW1lbnQub25t b3VzZW1vdmUgPSByZXR1cm5GYWxzZTsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCg0KCQkJ CXZhciBzdGFydFBvcyA9IGdldE9ialhZKGRyYWdJdGVtc1tkcmFnSXRlbXMubGVuZ3RoLTFdLmdl dEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZCIpWzFdKTsNCgkJCQlzdGFydFggPSBzdGFydFBvc1swXTsN CgkJCQlzdGFydFkgPSBzdGFydFBvc1sxXSAtIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YWJs ZUNvbnRhaW5lciIpLnNjcm9sbFRvcDsNCgkJCQljbGlja1hvZmZzZXQgPSBjdXJyZW50WCAtIHN0 YXJ0WDsNCgkJCQljbGlja1lvZmZzZXQgPSBjdXJyZW50WSAtIHN0YXJ0WTsNCg0KCQkJCS8vIGNy ZWF0ZSBmbG9hdGluZyBsYXllcg0KCQkJCWlmKGRyYWdFbG10ID09IG51bGwpIHsNCgkJCQkJZHJh Z0VsbXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCgkJCQkJZHJhZ0VsbXQuaWQg PSAiZHJhZy1sYXllciI7DQoJCQkJCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZHJhZ0VsbXQp Ow0KCQkJCX0NCg0KCQkJCWFkZFNlbGVjdGVkVG9EcmFnKGRyYWdJdGVtcyk7DQoJCQkJDQoJCQkJ d2l0aChkcmFnRWxtdC5zdHlsZSkgew0KCQkJCQl0b3AgPSAoc3RhcnRZKSArICJweCI7DQoJCQkJ CWxlZnQgPSAoc3RhcnRYKSArICJweCI7DQoJCQkJfQ0KDQoJCQkJZG9jdW1lbnQub25tb3VzZW1v dmUgPSBvbkRyYWc7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJZnVuY3Rp b24gb25SZWxlYXNlKGUpIHsNCgkJaWYoaXNSZXNpemUpIHsNCgkJCXJlc2l6ZUxpbmUuc3R5bGUu Ym9yZGVyTGVmdCA9ICIwcHggZG90dGVkICMwMDAiOw0KCQkJcmVzaXplQ29scygpOw0KCQkJaXNS ZXNpemUgPSBmYWxzZTsNCgkJCXJlc2l6ZVN0YXJ0WCA9IG51bGw7DQoJCQlkb2N1bWVudC5vbm1v dXNlbW92ZSA9IG9sZE1vdXNlTW92ZTsNCgkJfQ0KCQlpZihpc2RyYWcpIHsNCg0KCQkJdmFyIHJl bGVhc2VYID0gKGlzU3RyZCkgPyBlLnBhZ2VYIDogd2luZG93LmV2ZW50LmNsaWVudFg7DQoJCQl2 YXIgcmVsZWFzZVkgPSAoaXNTdHJkKSA/IGUucGFnZVkgOiB3aW5kb3cuZXZlbnQuY2xpZW50WTsN Cg0KCQkJdmFyIGZsZHJPdnIgPSBnZXRGb2xkZXJPdmVyKCk7DQoJCQlpZihmbGRyT3ZyICE9IG51 bGwpIHsNCgkJCQl2YXIgbWFpbE1vdmVMaXN0ID0gIiI7DQoJCQkJZm9yKHZhciBpID0gZHJhZ0l0 ZW1zLmxlbmd0aC0xOyBpID4tMTsgaS0tKSBtYWlsTW92ZUxpc3QgKz0gIiZJdGVtLmRybj0iICsg ZHJhZ0l0ZW1zW2ldLmlkOw0KCQkJCWlmKG1haWxNb3ZlTGlzdCAhPSAiIikgd2luZG93LmxvY2F0 aW9uLmhyZWYgPSAiL2d3L3dlYmFjYz9hY3Rpb249SXRlbS5BY3Rpb24mSXRlbS5Nb3ZlPSZGb2xk ZXIuTGlzdC5jc3M9JlVzZXIuY29udGV4dD1vbTZvb2JNYmJ1dmNmZzdMaTkmRm9sZGVyLk1vdmUu aWQ9IiArIGZsZHJPdnIuaWQuc3Vic3RyaW5nKDEpICsgbWFpbE1vdmVMaXN0ICsgIiZtZXJnZT1m bGRybXNnbGlzdCZJdGVtLlVwZGF0ZUxpc3Q9IjsNCgkJCQlkcmFnRWxtdC5zdHlsZS5kaXNwbGF5 ID0gIm5vbmUiOw0KCQkJfQ0KCQkJZWxzZSByZXNldERyYWcocmVsZWFzZVgtY2xpY2tYb2Zmc2V0 LCByZWxlYXNlWS1jbGlja1lvZmZzZXQsIHN0YXJ0WCwgc3RhcnRZKTsNCg0KCQkJLy8gcmVzZXQN CgkJCWlzZHJhZyA9IGZhbHNlOw0KCQkJZG9jdW1lbnQub25tb3VzZW1vdmUgPSBvbGRNb3VzZU1v dmU7DQoJCQlmb2xkZXJzID0gbnVsbDsNCgkJCWRyYWdJdGVtcyA9IG51bGw7DQoJCQlpZihzZWxl Y3RGbGRyICE9IG51bGwpIHsNCgkJCQlzZWxlY3RGbGRyLnN0eWxlLmZvbnRXZWlnaHQgPSAibm9y bWFsIjsNCgkJCQlzZWxlY3RGbGRyLmNsYXNzTmFtZSA9IHNlbGVjdEZsZHIuY2xhc3NOYW1lLnJl cGxhY2UoImZvbGRlci1kcmFnLW92ZXIiLCIgIik7DQoJCQkJc2VsZWN0RmxkciA9IG51bGw7DQoJ CQl9DQoJCQkNCgkJfQ0KCX0NCglmdW5jdGlvbiByZXNldERyYWcoZW5kWCwgZW5kWSwgb3JpZ1gs IG9yaWdZKSB7DQoJCWlmKE1hdGguYWJzKGVuZFggLSBvcmlnWCkgPiAyIHx8IE1hdGguYWJzKGVu ZFkgLSBvcmlnWSkgPiAyKSB7IC8vIDIgcGl4ZWwgYnVmZmVyIGluIGNhc2UgdXNlciBkcmFncyBt b3VzZSBzbGlnaHRseSBvbiBjbGljaw0KCQkJY3VycmVudFggPSBlbmRYOw0KCQkJY3VycmVudFkg PSBlbmRZOw0KCQkJZHJhZ0VsbXQub25jbGljayA9IG5ldyBGdW5jdGlvbigicmV0dXJuIGZhbHNl Iik7DQoJCQlyZXR1cm5JbnRlcnZhbCA9IDA7DQoJCQlyZXR1cm5UaW1lciA9IHNldEludGVydmFs KCJyZXR1cm5EcmFnKCkiLCAxMCk7DQoJCX0NCgkJZWxzZSBpZihkcmFnRWxtdCAhPSBudWxsKSBk cmFnRWxtdC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KCX0NCgkNCglmdW5jdGlvbiByZXR1cm5G YWxzZSgpIHsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCWZ1bmN0aW9uIHJldHVybkRyYWcoKSB7 DQoJCXZhciBpbnRlcnZhbHMgPSAxNTsNCgkJcmV0dXJuSW50ZXJ2YWwrKzsNCg0KCQl2YXIgbXVs dGkgPSAocmV0dXJuSW50ZXJ2YWwgPT0gMSkgPyAwIDogKDEgLSBNYXRoLnBvdygwLjksIHJldHVy bkludGVydmFsIC0gMSkpIC8gKDEgLSBNYXRoLnBvdygwLjksIGludGVydmFscyAtIDEpKTsNCgkJ dmFyIHJldHVyblggPSBjdXJyZW50WCArIChzdGFydFggLSBjdXJyZW50WCkgKiBtdWx0aTsNCgkJ dmFyIHJldHVyblkgPSBjdXJyZW50WSArIChzdGFydFkgLSBjdXJyZW50WSkgKiBtdWx0aTsNCg0K CQlpZihpc1N0cmQpIHsNCgkJCWRyYWdFbG10LnN0eWxlLmxlZnQgPSByZXR1cm5YICsgInB4IjsN CgkJCWRyYWdFbG10LnN0eWxlLnRvcCA9IHJldHVyblkgKyAicHgiOw0KCQl9DQoJCWVsc2Ugew0K CQkJZHJhZ0VsbXQuc3R5bGUucGl4ZWxMZWZ0ID0gcmV0dXJuWDsNCgkJCWRyYWdFbG10LnN0eWxl LnBpeGVsVG9wID0gcmV0dXJuWTsNCgkJfQ0KDQoJCWlmKHJldHVybkludGVydmFsID09IGludGVy dmFscykgew0KCQkJY2xlYXJJbnRlcnZhbChyZXR1cm5UaW1lcik7DQoJCQlkcmFnRWxtdC5zdHls ZS5kaXNwbGF5ID0gIm5vbmUiOw0KCQl9DQoJfQ0KDQoNCg0KCWZ1bmN0aW9uIGdldE9ialhZKG9i aikgew0KCQl2YXIgaW50WCA9IDA7DQoJCXZhciBpbnRZID0gMDsNCgkJZG8geyAvLyBXYWxrIHVw IG91ciBkb2N1bWVudCB0cmVlIHVudGlsIHdlIGZpbmQgdGhlIGJvZHkgYW5kIGFkZCB0aGUgZGlz dGFuY2UgZnJvbSB0aGUgcGFyZW50IHRvIG91ciBjb3VudGVyLg0KCQkJaW50WCArPSBvYmoub2Zm c2V0TGVmdDsNCgkJCWludFkgKz0gb2JqLm9mZnNldFRvcDsNCgkJCW9iaiA9IG9iai5vZmZzZXRQ YXJlbnQ7DQoJCX0gd2hpbGUob2JqLnRhZ05hbWUgIT0gIkJPRFkiICYmIG9iai50YWdOYW1lICE9 ICJIVE1MIikNCgkJaWYoaXNTdHJkKSByZXR1cm4gbmV3IEFycmF5KGludFgrZG9jdW1lbnQuYm9k eS5zY3JvbGxMZWZ0LGludFkrZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApOw0KCQllbHNlIHJldHVy biBuZXcgQXJyYXkoaW50WCxpbnRZKTsNCgl9DQoNCglmdW5jdGlvbiBpbml0RE5EQW5kUmVzaXpl KCkgew0KCQlpZihpc1N0cmQgfHwgaXNJRSkgew0KCQkJLy8gaW5pdGlhbGl6ZSBkcmFnIGFuZCBk cm9wIGZ1bmN0aW9uYWxpdHkNCgkJCWRvY3VtZW50Lm9ubW91c2Vkb3duID0gb25DbGlja0l0ZW07 DQoJCQlkb2N1bWVudC5vbm1vdXNldXAgPSBvblJlbGVhc2U7DQoJCQkNCgkJCS8vIGNyZWF0ZSBm bG9hdGluZyBsaW5lIGxheWVyIGZvciByZXNpemUgZWZmZWN0DQoJCQl2YXIgbWFpbENvbHVtbiA9 IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJndy1tc2dsaXN0Iik7DQoJCQlyZXNpemVMaW5lID0g ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQoJCQlyZXNpemVMaW5lLmlkID0gInJlc2l6 ZS1saW5lIjsNCgkJCWlmKG1haWxDb2x1bW4uc3R5bGUubGVmdC5sZW5ndGggPiAwKSByZXNpemVM aW5lLnN0eWxlLmxlZnQgPSBtYWlsQ29sdW1uLnN0eWxlLmxlZnQ7DQoJCQlkb2N1bWVudC5ib2R5 LmFwcGVuZENoaWxkKHJlc2l6ZUxpbmUpOw0KCQl9DQoJfQ0KDQoJZnVuY3Rpb24gcmVhZENvb2tp ZShuYW1lKSB7DQoJCXZhciBja3MgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTsNCgkJZm9y KHZhciBpPTA7IGkgPCBja3MubGVuZ3RoOyBpKyspIHsNCgkJCXZhciBjID0gY2tzW2ldOw0KCQkJ d2hpbGUoYy5jaGFyQXQoMCk9PScgJykgYyA9IGMuc3Vic3RyaW5nKDEsYy5sZW5ndGgpOw0KCQkJ aWYoYy5pbmRleE9mKG5hbWUrIj0iKT09MCkgcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWUubGVuZ3Ro KzEsYy5sZW5ndGgpOw0KCQl9DQoJCXJldHVybiBudWxsOw0KCX0NCg0KCWZ1bmN0aW9uIGRvUmVz aXplKGUpIHsNCgkJaWYoaXNSZXNpemUpIHsNCgkJCXJlc2l6ZVggPSAoaXNTdHJkKSA/IGUucGFn ZVggOiB3aW5kb3cuZXZlbnQuY2xpZW50WDsNCgkJCXJlc2l6ZUxpbmUuc3R5bGUudmlzaWJpbGl0 eSA9ICJ2aXNpYmxlIjsNCgkJCXJlc2l6ZUxpbmUuc3R5bGUubGVmdCA9IHJlc2l6ZVggKyAicHgi Ow0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCglmdW5jdGlvbiByZXNpemVDb2xzKHByZXNl dFdpZHRoKSB7DQoJCXZhciBmbGRyQ29sdW1uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImd3 LWZvbGRlcnMiKTsNCgkJdmFyIG1haWxDb2x1bW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi Z3ctbXNnbGlzdCIpOw0KDQoJCS8vIGNhbGN1bGF0ZSByZXNpemUgd2lkdGggb2YgbWFpbCBjb2x1 bW4NCgkJaWYocHJlc2V0V2lkdGgpIHsNCgkJCXZhciBuZXdNYWlsV2lkdGggPSBwcmVzZXRXaWR0 aDsNCgkJfQ0KCQllbHNlIHsNCgkJCXZhciBzY3JlZW5XaWR0aCA9IGRvY3VtZW50LmJvZHkub2Zm c2V0V2lkdGg7DQoJCQl2YXIgbmV3TWFpbFdpZHRoID0gTWF0aC5mbG9vcigoKG1haWxDb2x1bW4u b2Zmc2V0V2lkdGgtKHJlc2l6ZVggLSByZXNpemVTdGFydFgpKS9zY3JlZW5XaWR0aCkqMTAwKTsN CgkJfQ0KDQoJCS8vIGNoYW5nZSB3aWR0aHMgb2YgbWFpbCBhbmQgZm9sZGVyIGNvbHVtbnMNCgkJ bWFpbENvbHVtbi5zdHlsZS5sZWZ0ID0gKDk5IC0gbmV3TWFpbFdpZHRoKSArICIlIjsNCgkJbWFp bENvbHVtbi5zdHlsZS53aWR0aCA9IG5ld01haWxXaWR0aCArICIlIjsNCgkJZmxkckNvbHVtbi5z dHlsZS53aWR0aCA9ICg5OCAtIG5ld01haWxXaWR0aCkgKyAiJSI7DQoJCWlmKHJlc2l6ZUxpbmUp IHJlc2l6ZUxpbmUuc3R5bGUubGVmdCA9IG1haWxDb2x1bW4uc3R5bGUubGVmdDsNCgkJDQoJCS8v IHN0b3JlIHJlc2l6ZSBjaGFuZ2VzIGluIGNvb2tpZSAoZXhwaXJhdGlvbiB0aW1lID0gMTIgbW9u dGhzID0gMTIqMzAqMjQqNjAqNjAqMTAwMCA9IDMxMTA0MDAwMDAwIG1pbGxpc2Vjb25kcw0KCQlk b2N1bWVudC5jb29raWUgPSAid2ViYWNjLWNvbHNpemU9IituZXdNYWlsV2lkdGgrIjtleHBpcmVz PSIrKG5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0VGltZSgpKzMxMTA0MDAwMDAwKSkudG9HTVRTdHJp bmcoKSsiO3BhdGg9LzsiOw0KCX0NCgkNCjwvc2NyaXB0Pg0KDQo8c2NyaXB0IGxhbmd1YWdlPSJq YXZhc2NyaXB0Ij4NCgkJCQkNCmZ1bmN0aW9uIGZpeENvbnRlbnRIZWlnaHQoZSkNCnsNCnZhciBk aXZGb2xkZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICdndy1mb2xkZXJzJyApOw0KdmFy IGRpdk1zZ2xpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ2d3LW1zZ2xpc3QnICk7DQp2 YXIgdGJsQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICd0YWJsZUNvbnRhaW5l cicgKTsNCnZhciBidG5EaXNwbGF5TmV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnaWRE aXNwbGF5TmV4dCcgKTsNCmlmICggZGl2Rm9sZGVycyAhPSBudWxsKQ0Kew0KZGl2Rm9sZGVycy5z dHlsZS5oZWlnaHQgPSAoIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0IC0gZGl2Rm9sZGVycy5v ZmZzZXRUb3AgKSArICJweCI7DQp9DQppZiAoIGRpdk1zZ2xpc3QgIT0gbnVsbCkNCnsNCmRpdk1z Z2xpc3Quc3R5bGUuaGVpZ2h0ID0gKCBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCAtIGRpdk1z Z2xpc3Qub2Zmc2V0VG9wICkgKyAicHgiOw0KfQ0KaWYgKCB0YmxDb250YWluZXIgIT0gbnVsbCkN CnsNCnZhciBoZWlnaHQgPSAoIGRpdk1zZ2xpc3Qub2Zmc2V0SGVpZ2h0IC0gdGJsQ29udGFpbmVy Lm9mZnNldFRvcCAgKTsNCmlmKCBidG5EaXNwbGF5TmV4dCAhPSBudWxsICkNCnsNCnRibENvbnRh aW5lci5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgLSBidG5EaXNwbGF5TmV4dC5vZmZzZXRIZWlnaHQg KyAicHgiOw0KYnRuRGlzcGxheU5leHQuc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsNCn0N CmVsc2UNCnsNCnRibENvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAicHgiOw0KfQ0K dGJsQ29udGFpbmVyLnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7DQp9DQp9DQo8L3Njcmlw dD4NCjwvaGVhZD4NCjxib2R5IG9ubG9hZD0iZml4Q29udGVudEhlaWdodChldmVudCk7aW5pdERO REFuZFJlc2l6ZSgpOyIgb25yZXNpemU9ImZpeENvbnRlbnRIZWlnaHQoZXZlbnQpOyIgb25jbGlj az0icmV0dXJuIGNsb3NlUG9wdXBNZW51cyhldmVudCk7ICIgc3R5bGU9ImhlaWdodDogOTglOyB3 aWR0aDogMTAwJTsgcGFkZGluZzogMDsgbWFyZ2luOiAwOyBvdmVyZmxvdzogYXV0bzsgYmFja2dy b3VuZC1jb2xvcjogI2ZmZmZmZjsiPg0KPGRpdiBpZD0iZ3ctZm9sZGVycyIgY2xhc3M9ImZvbGRl cnMiPg0KPC9kaXY+DQo8ZGl2IGlkPSJndy1tc2dsaXN0IiBjbGFzcz0ibXNnbGlzdCI+DQo8L2Rp dj4NCjwvYm9keT4NCjwvaHRtbD4= --=_2bed89859607297d6c97ac4136220549--