PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIGh0bWwKICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjwhLS0gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAogKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAogKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAogKiAKICogQ29udHJpYnV0b3JzOgogKiAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAtLT4KPGh0bWw+CjxoZWFkPgo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9vcmcuZWNsaXBzZS53c3QuZG9jLnVzZXIvY29tbW9uLmNzcyIgLz4KPHRpdGxlPkVkaXRpbmcgYW4gZWxlbWVudCdzIGNvbnRlbnQgbW9kZWw8L3RpdGxlPgo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4KICAgIGZ1bmN0aW9uIHBvcHVwX3dpbmRvdyggdXJsLCBpZCwgd2lkdGgsIGhlaWdodCApCiAgICB7CiAgICAgIHBvcHVwID0gd2luZG93Lm9wZW4oIHVybCwgaWQsICd0b29sYmFyPW5vLHNjcm9sbGJhcnM9bm8sbG9jYXRpb249bm8sc3RhdHVzYmFyPW5vLG1lbnViYXI9bm8scmVzaXphYmxlPW5vLHdpZHRoPScgKyB3aWR0aCArICcsaGVpZ2h0PScgKyBoZWlnaHQgKyAnLGxlZnQ9LHRvcD0nICk7CiAgICAgIHBvcHVwLmZvY3VzKCk7CiAgICB9Cjwvc2NyaXB0PjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHNyYz0iaGVscC9saXZlSGVscC5qcyI+PC9zY3JpcHQ+PC9oZWFkPgo8Ym9keSBpZD0idGNoZ2VsbSI+PGEgbmFtZT0idGNoZ2VsbSI+PCEtLSAtLT48L2E+Cgo8aDEgY2xhc3M9InRvcGljdGl0bGUxIj5FZGl0aW5nIGFuIGVsZW1lbnQncyBjb250ZW50IG1vZGVsPC9oMT4KPGRpdj48cD5BbiBlbGVtZW50J3MgY29udGVudCBtb2RlbCByZXByZXNlbnRzIGFueSBkYXRhIHRoYXQgY2FuIGJlIGNvbnRhaW5lZAppbnNpZGUgb3Igd2l0aGluIHRoZSBjb250ZW50IG9mIGFuIGVsZW1lbnQgKHRoYXQgaXMsIGJldHdlZW4gdGhlIHN0YXJ0IGFuZAplbmQgdGFncyBvZiBhbiBlbGVtZW50IGluIGFuIFhNTCBmaWxlKS4gRWRpdGluZyBhbiBlbGVtZW50J3MgY29udGVudCBtb2RlbAplbmFibGVzIHlvdSB0byBkZXRlcm1pbmUgZXhhY3RseSB3aGF0IHRoZSBlbGVtZW50IGNhbiAoYW5kIGNhbm5vdCkgY29udGFpbi48L3A+PGRpdiBjbGFzcz0ic2tpcHNwYWNlIj48cD5UaGVyZSBhcmUgZm91ciBraW5kcyBvZiBjb250ZW50IG1vZGVsczogPGk+ZWxlbWVudCBjb250ZW50PC9pPiwKIDxpPm1peGVkIGNvbnRlbnQ8L2k+LCA8aT5FTVBUWSBjb250ZW50PC9pPiBhbmQgPGk+QU5ZIGNvbnRlbnQ8L2k+PC9wPgo8cD5Jbgp0aGUgPGk+ZWxlbWVudCBjb250ZW50PC9pPiBjb250ZW50IG1vZGVsIGFuIGVsZW1lbnQgY2FuIG9ubHkgY29udGFpbiBvdGhlcgpjaGlsZCBlbGVtZW50cy4gSW4gdGhlIDxpPm1peGVkIGNvbnRlbnQ8L2k+IGNvbnRlbnQgbW9kZWwsIGFuIGVsZW1lbnQgY2FuCmNvbnRhaW4gYm90aCBjaGFyYWN0ZXIgZGF0YSAodGV4dCB0aGF0IGlzIG5vdCBwYXJzZWQgYnkgdGhlIFhNTCBwYXJzZXIpIGFuZApvdGhlciBjaGlsZCBlbGVtZW50cy4gSW4gdGhlIDxpPkVNUFRZIGNvbnRlbnQ8L2k+IGNvbnRlbnQgbW9kZWwsIGFuIGVsZW1lbnQKY2Fubm90IGNvbnRhaW4gYW55IG90aGVyIGVsZW1lbnRzIG9yIHRleHQuIEluIHRoZSA8aT5BTlkgY29udGVudDwvaT4gY29udGVudAptb2RlbCwgdGhlIGVsZW1lbnQgY2FuIGxpdGVyYWxseSBjb250YWluIGFueXRoaW5nIC0gb3RoZXIgZWxlbWVudHMsIGluIGFueQpudW1iZXIsIGFuZCB0ZXh0LjwvcD4KPHA+SW4gdGhlIERURCBlZGl0b3IsIHlvdSBjYW4gY3JlYXRlIGVsZW1lbnRzIHdpdGggYW55Cm9mIHRoZXNlIGNvbnRlbnQgbW9kZWxzLiBXaGVuIHlvdSBjcmVhdGUgYW4gZWxlbWVudCBpbiB0aGUgRFREIGVkaXRvciwgYSBjaGlsZAplbGVtZW50IHdpdGggYW4gRU1QVFkgY29udGVudCBtb2RlbCBpcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQuPC9wPgo8cD5UaGUgZm9sbG93aW5nCmluc3RydWN0aW9ucyB3ZXJlIHdyaXR0ZW4gZm9yIHRoZSBSZXNvdXJjZSBwZXJzcGVjdGl2ZSwgYnV0IHRoZXkgd2lsbCBhbHNvCndvcmsgaW4gbWFueSBvdGhlciBwZXJzcGVjdGl2ZXMuoDwvcD4KPHA+VG8gZWRpdCBhbiBlbGVtZW50J3MgY29udGVudAptb2RlbCwgZm9sbG93IHRoZXNlIHN0ZXBzOjwvcD4KPC9kaXY+CjxvbD48bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+T3BlbiB5b3VyIERURCBpbiB0aGUgRFREIGVkaXRvci48L3NwYW4+PC9saT4KPGxpIGNsYXNzPSJza2lwc3BhY2UiPjxzcGFuPkluIHRoZSBPdXRsaW5lIHZpZXcsIGV4cGFuZCB0aGUgcGFyZW50IGVsZW1lbnQgeW91IHdhbnQgdG8gd29yawp3aXRoLjwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+U2VsZWN0IHRoZSBmaXJzdCBjaGlsZCBvZiB0aGUgZXhwYW5kZWQgcGFyZW50IGVsZW1lbnQuPC9zcGFuPiBUaGlzCmlzIHRoZSBlbGVtZW50J3MgY29udGVudCBtb2RlbC48L2xpPgo8bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+SW4gdGhlIERlc2lnbiB2aWV3LCB5b3UgY2hhbmdlIGl0cyA8c3BhbiBjbGFzcz0idWljb250cm9sIj5Db250ZW50IHR5cGU8L3NwYW4+IHRvPC9zcGFuPjx1bD48bGk+PHNwYW4gY2xhc3M9InVpY29udHJvbCI+QU5ZPC9zcGFuPjwvbGk+CjxsaT4oI1BDREFUQSk8L2xpPgo8bGk+QW5vdGhlciBlbGVtZW50PC9saT4KPGxpPjxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkNoaWxkcmVuIENvbnRlbnQ8L3NwYW4+IG9yICA8c3BhbiBjbGFzcz0idWljb250cm9sIj5NaXhlZCBDb250ZW50PC9zcGFuPi48L2xpPgo8L3VsPgogT25jZSB5b3Ugc2VsZWN0IGVpdGhlciA8c3BhbiBjbGFzcz0idWljb250cm9sIj5DaGlsZHJlbiBDb250ZW50PC9zcGFuPiBvciAgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+TWl4ZWQKQ29udGVudDwvc3Bhbj4geW91IHdpbGwgaGF2ZSBhIGdyb3VwIChyZXByZXNlbnRlZCBieSBhIGdyb3VwIG5vZGUgLSA8aW1nIHNyYz0iLi4vaW1hZ2VzL1hTRFNlcXVlbmNlLmdpZiIgLz4gaWYgeW91IHNlbGVjdCAgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+Q2hpbGRyZW4gQ29udGVudDwvc3Bhbj4gYW5kIDxpbWcgc3JjPSIuLi9pbWFnZXMvWFNEQ2hvaWNlLmdpZiIgLz4gaWYgeW91IHNlbGVjdCAgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+TWl4ZWQgQ29udGVudDwvc3Bhbj4pLAp3aGljaCB5b3UgY2FuIHVzZSB0byBjcmVhdGUgYSBncm91cCBvZiBjaGlsZCBlbGVtZW50cyB1bmRlciB0aGUgcGFyZW50oGVsZW1lbnQuCkEgY2hpbGQgZWxlbWVudCB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY3JlYXRlZCB1bmRlciB0aGUgZ3JvdXAgbm9kZS4gRm9yIGluZm9ybWF0aW9uCm9uIGVkaXRpbmcgYSBncm91cCwgcmVmZXIgdG8gdGhlIHJlbGF0ZWQgaW5mb3JtYXRpb24uPHA+PGI+Tm90ZTwvYj46IElmIHlvdQppbnRlbmQgdG8gaGF2ZSBtaXhlZCBjb250ZW50LCB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4geW91ciBncm91cAptdXN0IGJlICgjUENEQVRBKSAoY29uc2VxdWVudGx5LCBpZiB5b3Ugc2VsZWN0IDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPk1peGVkIENvbnRlbnQ8L3NwYW4+LAp0d28gY2hpbGQgZWxlbWVudHMgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNyZWF0ZWQsIHRoZSBmaXJzdCBvbmUgaGF2aW5nIGEgdmFsdWUKb2YgKCNQQ0RBVEEpLjwvcD4KICA8L2xpPgo8bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+SWYgeW91IGRvIG5vdCB3YW50IHRoZSBwYXJlbnQgZWxlbWVudCB0byBjb250YWluIGFueXRoaW5nLCBsZWF2ZQppdHMgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+Q29udGVudCB0eXBlPC9zcGFuPiBhcyA8c3BhbiBjbGFzcz0idWljb250cm9sIj5FTVBUWTwvc3Bhbj4uPC9zcGFuPjwvbGk+CjxsaSBjbGFzcz0ic2tpcHNwYWNlIj48c3Bhbj5TZWxlY3QgdGhlIGFwcHJvcHJpYXRlIDxiPk9jY3VycmVuY2U8L2I+IG9wdGlvbiB0byBpbmRpY2F0ZSBob3cKb2Z0ZW4gdGhlIGVsZW1lbnQgY2FuIG9jY3VyIGluIGFuIFhNTCBmaWxlLjwvc3Bhbj4gVGhpcyBvcHRpb24gaXMgbm90CmF2YWlsYWJsZSBpZiB5b3Ugc2VsZWN0IEFOWSwgKCNQQ0RBVEEpLCBFTVBUWSwgb3IgYW5vdGhlciBlbGVtZW50LjwvbGk+CjxsaSBjbGFzcz0ic2tpcHNwYWNlIj48c3Bhbj5UbyBhZGQgYW5vdGhlciBleGlzdGluZyBlbGVtZW50IHRvIGEgZ3JvdXAgYXMgYSBjaGlsZCwgcmlnaHQtY2xpY2sKdGhlIGdyb3VwIG5vZGUsIGNsaWNrIDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkFkZCBFbGVtZW50IHRvIENvbnRlbnQgTW9kZWw8L3NwYW4+IGFuZApzcGVjaWZ5IGl0cyBuYW1lLjwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+VG8gYWRkIGEgZ3JvdXAgdG8gdGhlIGNvbnRlbnQgbW9kZWwsIHJpZ2h0LWNsaWNrIHRoZSBncm91cCBub2RlCmFuZCBjbGljayA8c3BhbiBjbGFzcz0idWljb250cm9sIj5BZGQgR3JvdXAgdG8gQ29udGVudCBNb2RlbDwvc3Bhbj4uPC9zcGFuPiBGb3IKaW5mb3JtYXRpb24gb24gZWRpdGluZyBhIGdyb3VwLCByZWZlciB0byB0aGUgbGluayBiZWxvdy48L2xpPgo8L29sPgo8ZGl2IGNsYXNzPSJza2lwc3BhY2UiPjwvZGl2Pgo8L2Rpdj4KCjxkaXY+CjxibG9ja3F1b3RlPgo8ZGl2IGNsYXNzPSJ1bGNoaWxkbGluayI+PGI+PGEgaHJlZj0iLi4vdG9waWNzL3RlZHRnbmRlLmh0bWwiPkVkaXRpbmcgYSBncm91cCBub2RlPC9hPjwvYj48YnIgLz4KSWYgeW91ciBlbGVtZW50IGhhcyBlaXRoZXIgZWxlbWVudCBjb250ZW50IG9yIG1peGVkIGNvbnRlbnQsIGl0cyBjb250ZW50IG1vZGVsIGlzIHJlcHJlc2VudGVkIGJ5IGEgZ3JvdXAgbm9kZS4gWW91IGNhbiBhZGQgY2hpbGRyZW4gZWxlbWVudHMgb3IgYW5vdGhlciBncm91cCB0byBhIGdyb3VwIG5vZGUsIGFuZCBzcGVjaWZ5IGhvdyBvZnRlbiwgYW5kIGluIHdoYXQgbWFubmVyIGEgZ3JvdXAgb2YgZWxlbWVudHMgd2lsbCBiZSBhdmFpbGFibGUgaW4gYW4gWE1MIGZpbGUgYXNzb2NpYXRlZCB3aXRoIHlvdXIgRFRELjwvZGl2Pgo8L2Jsb2NrcXVvdGU+Cgo8cD4KPGIgY2xhc3M9InBhcmVudGxpbmsiPlBhcmVudCB0b3BpYzo8L2I+IDxhIGhyZWY9Ii4uL3RvcGljcy90Y3JldGVsbS5odG1sIiB0aXRsZT0iWW91IGNhbiB1c2UgZWxlbWVudCBkZWNsYXJhdGlvbnMgaW4gRFREcyB0byBkZWZpbmUgdGhlIGVsZW1lbnRzIHRoYXQgbWF5IG9jY3VyIGluIGFuIFhNTCBkb2N1bWVudC4gRWxlbWVudCBkZWNsYXJhdGlvbnMgY2FuIHNwZWNpZnkgdGhhdCBhbiBlbGVtZW50IGNhbiBjb250YWluIG90aGVyIGVsZW1lbnRzLCB0aGF0IGl0IGNhbiBjb250YWluIGFueXRoaW5nIGF0IGFsbCwgb3IgdGhhdCBpdCBtdXN0IGJlIGVtcHR5LiI+Q3JlYXRpbmcgZWxlbWVudHM8L2E+PGJyIC8+CjwvcD4KPC9kaXY+CgkJPHA+CgkJKEMpIENvcHlyaWdodCBJQk0gQ29ycG9yYXRpb24gMjAwMCwgMjAwNS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KCQk8L3A+IAo8L2JvZHk+CjwvaHRtbD4=