PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj48dGl0bGU+QWJzdHJhY3QgU3ludGF4IFRyZWU8L3RpdGxlPgoKPGxpbmsgaHJlZj0iYXJ0aWNsZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43MS4xIiBuYW1lPSJnZW5lcmF0b3IiPgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iVGhlIEFic3RyYWN0IFN5bnRheCBUcmVlIGlzIHRoZSBiYXNlIGZyYW1ld29yayBmb3IgbWFueSBwb3dlcmZ1bCB0b29scyBvZiB0aGUgRWNsaXBzZSBJREUsIGluY2x1ZGluZyByZWZhY3RvcmluZywgUXVpY2sgRml4IGFuZCBRdWljayBBc3Npc3QuIFRoZSBBYnN0cmFjdCBTeW50YXggVHJlZSBtYXBzIHBsYWluIFBIUCBzb3VyY2UgY29kZSBpbiBhIHRyZWUgZm9ybS4gVGhpcyB0cmVlIGlzIG1vcmUgY29udmVuaWVudCBhbmQgcmVsaWFibGUgdG8gYW5hbHlzZSBhbmQgbW9kaWZ5IHByb2dyYW1tYXRpY2FsbHkgdGhhbiB0ZXh0LWJhc2VkIHNvdXJjZS4gVGhpcyBhcnRpY2xlIHNob3dzIGhvdyB5b3UgY2FuIHVzZSB0aGUgQWJzdHJhY3QgU3ludGF4IFRyZWUgZm9yIHlvdXIgb3duIGFwcGxpY2F0aW9ucy4iPgo8L2hlYWQ+Cjxib2R5IHN0eWxlPSJjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyIgYWxpbms9IiMwMDAwZmYiIGxpbms9IiMwMDAwZmYiIHZsaW5rPSIjODQwMDg0Ij4KPGRpdiBjbGFzcz0iYXJ0aWNsZSIgbGFuZz0iZW4iPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgo8ZGl2Pgo8aDEgYWxpZ249ImNlbnRlciI+QWJzdHJhY3QgU3ludGF4IFRyZWUgLSZuYnNwO1BIUApEZXZlbG9wbWVudCBUb29sczwvaDE+CjxkaXYgY2xhc3M9InN1bW1hcnkiPgo8aDI+U3VtbWFyeTwvaDI+CjxwPlRoZSBBYnN0cmFjdCBTeW50YXggVHJlZSAoQVNUKSBpcyB0aGUgYmFzZSBmcmFtZXdvcmsgZm9yIG1hbnkKcG93ZXJmdWwgdG9vbHMgb2YgdGhlCkVjbGlwc2UgSURFLCBpbmNsdWRpbmcgU2VtYW50aWMgaGlnaGxpZ2h0aW5nLCBSZWZhY3RvcmluZywgUXVpY2sgRml4CmFuZCBRdWljayBBc3Npc3QuIFRoZSBBYnN0cmFjdCBTeW50YXgKVHJlZSBtYXBzIHBsYWluIFBIUCBzb3VyY2UgY29kZSBpbiBhIHRyZWUgZm9ybS4gVGhpcyB0cmVlIGlzIG1vcmUKY29udmVuaWVudCBhbmQKcmVsaWFibGUgdG8gYW5hbHl6ZSBhbmQgbW9kaWZ5IHByb2dyYW1tYXRpY2FsbHkgdGhhbiB0ZXh0LWJhc2VkIHNvdXJjZS4KVGhpcwpwYXJ0IG9mIHRoZSBhcnRpY2xlIHNob3dzIGhvdyB5b3UgY2FuIHVzZSB0aGUgQWJzdHJhY3QgU3ludGF4IFRyZWUgZm9yCmV4dGVuZGluZyBFY2xpcHNlIFBIUCBEZXZlbG9wbWVudCBUb29scyAoUERUKSBmb3IgeW91cgphcHBsaWNhdGlvbnMuIFRoaXMgYXJ0aWNsZSBpcyBiYXNlZCBvbiB0aGUgIjxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYXJ0aWNsZXMvYXJ0aWNsZS5waHA/ZmlsZT1BcnRpY2xlLUphdmFDb2RlTWFuaXB1bGF0aW9uX0FTVC9pbmRleC5odG1sIj5BYnN0cmFjdApTeW50YXggVHJlZTwvYT4iIChKRFQpIEJ5IFRob21hcyZuYnNwO0t1aG4KYW5kJm5ic3A7T2xpdmllciZuYnNwO1Rob21hbm4uPC9wPgo8ZGl2IGNsYXNzPSJjb3B5cmlnaHQiPkJ5CgpDb3B5cmlnaHQgqTIwMDgmbmJzcDsuIE1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBFUEwgdjEuMCA8L2Rpdj4KPGRpdiBjbGFzcz0iZGF0ZSI+PHNwYW4gY2xhc3M9ImRhdGUiPk1heSwgMjAwODxicj4KPC9zcGFuPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjxocj48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgo8ZGl2Pgo8ZGl2Pgo8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48YSBuYW1lPSJzZWMtaW50cm9kdWN0aW9uIj48L2E+SW50cm9kdWN0aW9uPC9oMj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPHA+VGhlIEFTVCBpcyBjb21wYXJhYmxlIHRvIHRoZSBET00KdHJlZSBtb2RlbCBvZiBhbiBYTUwgZmlsZS4gSnVzdCBsaWtlIHdpdGggRE9NLCB0aGUgQVNUIGFsbG93cyB5b3UgdG8KbW9kaWZ5IHRoZSB0cmVlIG1vZGVsIGFuZApyZWZsZWN0cyB0aGVzZSBtb2RpZmljYXRpb25zIGluIHRoZSBQSFAgc291cmNlIGNvZGUuPC9wPgo8cD5UaGlzIHBhcnQgb2YgdGhlIGFydGljbGUgcmVmZXJzIHRvIGFuIGV4YW1wbGUgYXBwbGljYXRpb24Kd2hpY2ggY292ZXJzIG1vc3Qgb2YgdGhlCmludGVyZXN0aW5nIEFTVC1yZWxhdGVkIHRvcGljcy4gTGV0IHVzIGhhdmUgYSBsb29rIGF0IHRoZSBhcHBsaWNhdGlvbgp0aGF0IHdhcyBidWlsdCB0bwppbGx1c3RyYXRlIHRoaXMgYXJ0aWNsZTogPC9wPgo8ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CjxkaXY+CjxkaXY+CjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9InNlYy1leGFtcGxlLWFwcGxpY2F0aW9uIj48L2E+RXhhbXBsZQpBcHBsaWNhdGlvbjwvaDM+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxwPkFjY29yZGluZyB0byBQSFAgUHJhY3RpY2VzIFs8YSBocmVmPSIjYmliLWphdmEtcHJhY3RpY2VzIj40PC9hPl0sCnlvdQpzaG91bGQgbm90IGRlY2xhcmUgbG9jYWwgdmFyaWFibGVzIGJlZm9yZSB1c2luZyB0aGVtLiBUaGUgZ29hbCBvZiBvdXIKYXBwbGljYXRpb24Kd2lsbCBiZSB0byBkZXRlY3QgY29udHJhZGljdGluZyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgYW5kIHRvIG1vdmUgdGhlbQp0byB0aGVpcgpjb3JyZWN0IHBsYWNlLiBUaGVyZSBhcmUgdGhyZWUgY2FzZXMgb3VyIGFwcGxpY2F0aW9uIGhhcyB0byBkZWFsIHdpdGg6CjwvcD4KPGRpdiBjbGFzcz0ib3JkZXJlZGxpc3QiPgo8b2wgdHlwZT0iMSI+CjxsaT4KPHA+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+UmVtb3ZhbCBvZgp1bm5lY2Vzc2FyeSBkZWNsYXJhdGlvbi48L2VtPjwvc3Bhbj4gSWYgYQp2YXJpYWJsZSBpcyBkZWNsYXJlZCBhbmQgaW5pdGlhbGl6ZWQsIG9ubHkgdG8gYmUgb3ZlcnJpZGRlbiBieSBhbm90aGVyCmFzc2lnbm1lbnQgbGF0ZXIgb24sIHRoZSBmaXJzdCBkZWNsYXJhdGlvbiBvZiB0aGUgdmFyaWFibGUgaXMgYW4KPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+dW5uZWNlc3NhcnkKZGVjbGFyYXRpb248L2VtPjwvc3Bhbj4uPC9wPgo8L2xpPgo8bGk+CjxwPjxhIG5hbWU9Iml0ZW0tbW92ZS1vZi1kZWNsYXJhdGlvbiI+PC9hPjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPk1vdmUgb2YgZGVjbGFyYXRpb24uPC9lbT48L3NwYW4+CklmIGEgdmFyaWFibGUgaXMgZGVjbGFyZWQsCmFuZCBub3QgaW1tZWRpYXRlbHkgcmVmZXJlbmNlZCB3aXRoaW4gdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQsIHRoaXMKdmFyaWFibGUKZGVjbGFyYXRpb24gaGFzIHRvIGJlIG1vdmVkLiBUaGUgY29ycmVjdCBwbGFjZSBmb3IgdGhlIGRlY2xhcmF0aW9uIGlzCnRoZSBsaW5lCmJlZm9yZSBpdCBpcyBmaXJzdCByZWZlcmVuY2VkLjwvcD4KPC9saT4KPGxpPgo8cD48c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5Nb3ZlIG9mCmRlY2xhcmF0aW9uIG9mIGEgdmFyaWFibGUgdGhhdCBpcyByZWZlcnJlZCB0byBmcm9tIHdpdGhpbgpkaWZmZXJlbnQgYmxvY2tzLjwvZW0+PC9zcGFuPiBUaGlzIGlzIGEgc3ViY2FzZSBvZiBjYXNlIDxhIGhyZWY9IiNpdGVtLW1vdmUtb2YtZGVjbGFyYXRpb24iPjI8L2E+LiBJbWFnaW5lIHRoYXQgYQp2YXJpYWJsZSBpcyB1c2VkCmluIGJvdGggYSB0cnktIGFuZCBhIGNhdGNoIGNsYXVzZS4gSGVyZSB0aGUgZGVjbGFyYXRpb24gY2Fubm90IGJlIG1vdmVkCnJpZ2h0CmJlZm9yZSB0aGUgZmlyc3QgcmVmZXJlbmNlIGluIHRoZSB0cnktY2xhdXNlLCBzaW5jZSB0aGVuIGl0IHdvdWxkIG5vdApiZQpkZWNsYXJlZCBpbiB0aGUgY2F0Y2gtY2xhdXNlLiBPdXIgYXBwbGljYXRpb24gaGFzIHRvIGRlYWwgd2l0aCB0aGF0IGFuZApoYXMgdG8KbW92ZSB0aGUgZGVjbGFyYXRpb24gdG8gdGhlIGJlc3QgcG9zc2libGUgcGxhY2UsIHdoaWNoIHdvdWxkIGJlIGhlcmUKb25lIGxpbmUKYWJvdmUgdGhlIHRyeS1jbGF1c2UuPC9wPgo8L2xpPgo8L29sPgo8L2Rpdj4KSW4gPGEgaHJlZj0iI2FwcC1jb2RlLWZyYWdtZW50cy1leGFtcGxlIiB0aXRsZT0iQS4mbmJzcDtDb2RlIEZyYWdtZW50cyBmb3IgRXhhbXBsZSBBcHBsaWNhdGlvbiBDYXNlcyI+QXBwZW5kaXgmbmJzcDtBLAo8aT5Db2RlIEZyYWdtZW50cyBmb3IgRXhhbXBsZSBBcHBsaWNhdGlvbiBDYXNlczwvaT48L2E+CmNvZGUgc25pcHBldHMKdG8gZWFjaCBvZiB0aGVzZSBjYXNlcyBhcmUgcHJvdmlkZWQuCjxwPllvdSBjYW4gaW1wb3J0IHRoZSBleGFtcGxlIGFwcGxpY2F0aW9uIGludG8geW91ciB3b3Jrc3BhY2UgWzxhIGhyZWY9IiNiaWItZXhhbXBsZS1wcm9qZWN0Ij4xPC9hPl0gb3IgaW5zdGFsbCB0aGUKcGx1Zy1pbiB1c2luZyB0aGUgRWNsaXBzZSBVcGRhdGUKTWFuYWdlciBbPGEgaHJlZj0iI2JpYi1leGFtcGxlLXVwZGF0ZSI+MjwvYT5dLjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KPGRpdj4KPGRpdj4KPGgzIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0ic2VjLXdvcmtmbG93Ij48L2E+V29ya2Zsb3c8L2gzPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8cD4gQSB0eXBpY2FsIHdvcmtmbG93IG9mIGFuIGFwcGxpY2F0aW9uIHVzaW5nIEFTVCBsb29rcyBsaWtlCnRoaXM6CjwvcD4KPGRpdiBjbGFzcz0iZmlndXJlIj48YSBuYW1lPSJmaWctd29ya2Zsb3ciPjwvYT4KPHAgY2xhc3M9InRpdGxlIj48Yj5GaWd1cmUmbmJzcDsxLiZuYnNwO0FTVApXb3JrZmxvdzwvYj48L3A+CjxkaXYgY2xhc3M9ImZpZ3VyZS1jb250ZW50cyI+CjxkaXYgY2xhc3M9Im1lZGlhb2JqZWN0Ij48aW1nIHNyYz0iaW1hZ2VzL3dvcmtmbG93LnBuZyIgYWx0PSJBU1QgV29ya2Zsb3ciPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxiciBjbGFzcz0iZmlndXJlLWJyZWFrIj4KPGRpdiBjbGFzcz0ib3JkZXJlZGxpc3QiPgo8b2wgdHlwZT0iMSI+CjxsaT48YSBuYW1lPSJ3b3JrZmxvdy1sZWdlbmQtMSI+PC9hPjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPlBIUCBzb3VyY2U8L2VtPjwvc3Bhbj46ClRvIHN0YXJ0IG9mZiwgeW91IHByb3ZpZGUKc29tZSBzb3VyY2UgY29kZSB0byBwYXJzZS4gVGhpcyBzb3VyY2UgY29kZSBjYW4gYmUgc3VwcGxpZWQgYXMgYSBQSFAKZmlsZSBpbiB5b3VyIHByb2plY3Qgb3IgZGlyZWN0bHkgYXMgYQo8Y29kZSBjbGFzcz0iY29kZSI+Y2hhcltdPC9jb2RlPiB0aGF0IGNvbnRhaW5zClBIUCBzb3VyY2U8L2xpPgo8bGk+PGEgbmFtZT0id29ya2Zsb3ctbGVnZW5kLTIiPjwvYT48c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5QYXJzZTwvZW0+PC9zcGFuPjoKVGhlIHNvdXJjZSBjb2RlIGRlc2NyaWJlZCBhdAo8YSBocmVmPSIjd29ya2Zsb3ctbGVnZW5kLTEiPjE8L2E+IGlzIHBhcnNlZC4KQWxsCnlvdSBuZWVkIGZvciB0aGlzIHN0ZXAgaXMgcHJvdmlkZWQgYnkgdGhlIGNsYXNzCjxjb2RlIGNsYXNzPSJjb2RlIj5vcmcuZWNsaXBzZS5qZHQuY29yZS5kb20uQVNUUGFyc2VyPC9jb2RlPi4KU2VlIDxhIGhyZWY9IiNzZWMtcGFyc2luZy1hLXNvdXJjZS1maWxlIiB0aXRsZT0iUGFyc2luZyBzb3VyY2UgY29kZSI+dGhlIHNlY3Rpb24gY2FsbGVkICYjODIyMDtQYXJzaW5nCnNvdXJjZSBjb2RlJiM4MjIxOzwvYT4uPC9saT4KPGxpPjxhIG5hbWU9IndvcmtmbG93LWxlZ2VuZC0zIj48L2E+VGhlIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPkFic3RyYWN0IFN5bnRheCBUcmVlPC9lbT48L3NwYW4+CmlzIHRoZSByZXN1bHQgb2Ygc3RlcAo8YSBocmVmPSIjd29ya2Zsb3ctbGVnZW5kLTIiPjI8L2E+LiBJdCBpcyBhIHRyZWUKbW9kZWwgdGhhdCBlbnRpcmVseQpyZXByZXNlbnRzIHRoZSBzb3VyY2UgeW91IHByb3ZpZGVkIGluIHN0ZXAgPGEgaHJlZj0iI3dvcmtmbG93LWxlZ2VuZC0xIj4xPC9hPi4gSWYgcmVxdWVzdGVkLCB0aGUKcGFyc2VyIGFsc28gY29tcHV0ZXMKYW5kIGluY2x1ZGVzIGFkZGl0aW9uYWwgc3ltYm9sIHJlc29sdmVkIGluZm9ybWF0aW9uIGNhbGxlZCAiPGEgaHJlZj0iI3NlYy1iaW5kaW5ncyIgdGl0bGU9IkJpbmRpbmdzIj5iaW5kaW5nczwvYT4iLjwvbGk+CjxsaT4KPHA+PGEgbmFtZT0id29ya2Zsb3ctbGVnZW5kLTQiPjwvYT48c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5NYW5pcHVsYXRpbmcgdGhlIEFTVDwvZW0+PC9zcGFuPjoKSWYgdGhlIEFTVCBvZiBwb2ludCA8YSBocmVmPSIjd29ya2Zsb3ctbGVnZW5kLTMiPjM8L2E+Cm5lZWRzIHRvIGJlIGNoYW5nZWQsIHRoaXMgY2FuIGJlIGRvbmUgaW4gdHdvCndheXM6CjwvcD4KPGRpdiBjbGFzcz0ib3JkZXJlZGxpc3QiPgo8b2wgdHlwZT0iYSI+CjxsaT5CeSBkaXJlY3RseSBtb2RpZnlpbmcgdGhlIEFTVC48L2xpPgo8bGk+Qnkgbm90aW5nIHRoZSBtb2RpZmljYXRpb25zIGluIGEgc2VwYXJhdGUgcHJvdG9jb2wuClRoaXMKcHJvdG9jb2wgaXMgaGFuZGxlZCBieSBhbiBpbnN0YW5jZSBvZgo8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5BU1RSZXdyaXRlPC9jb2RlPi48L2xpPgo8L29sPgo8L2Rpdj4KU2VlIG1vcmUgaW4gPGEgaHJlZj0iI3NlYy1ob3ctdG8tYXBwbHktY2hhbmdlcyIgdGl0bGU9IkhvdyB0byBBcHBseSBDaGFuZ2VzIj50aGUgc2VjdGlvbiBjYWxsZWQgJiM4MjIwO0hvdyB0bwpBcHBseSBDaGFuZ2VzJiM4MjIxOzwvYT4uCjwvbGk+CjxsaT48YSBuYW1lPSJ3b3JrZmxvdy1sZWdlbmQtNSI+PC9hPjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPldyaXRpbmcgY2hhbmdlcyBiYWNrPC9lbT48L3NwYW4+OgpJZiBjaGFuZ2VzIGhhdmUgYmVlbgptYWRlLCB0aGV5IG5lZWQgdG8gYmUgYXBwbGllZCB0byB0aGUgc291cmNlIGNvZGUgdGhhdCB3YXMgcHJvdmlkZWQgYnkgPGEgaHJlZj0iI3dvcmtmbG93LWxlZ2VuZC0xIj4xPC9hPi4gVGhpcyBpcyBkZXNjcmliZWQgaW4KZGV0YWlsIGluIDxhIGhyZWY9IiNzZWMtd3JpdGUtaXQtZG93biIgdGl0bGU9IldyaXRlIGl0IGRvd24iPnRoZQpzZWN0aW9uIGNhbGxlZCAmIzgyMjA7V3JpdGUgaXQgZG93biYjODIyMTs8L2E+LjwvbGk+CjxsaT48YSBuYW1lPSJ3b3JrZmxvdy1sZWdlbmQtNiI+PC9hPjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPjxjb2RlIGNsYXNzPSJjb2RlIj5JRG9jdW1lbnQ8L2NvZGU+PC9lbT48L3NwYW4+OgpJcyBhIHdyYXBwZXIgZm9yIHRoZSBzb3VyY2UgY29kZSBvZiBzdGVwCjxhIGhyZWY9IiN3b3JrZmxvdy1sZWdlbmQtMSI+MTwvYT4gYW5kIGlzIG5lZWRlZAphdCBwb2ludCA8YSBocmVmPSIjd29ya2Zsb3ctbGVnZW5kLTUiPjU8L2E+PC9saT4KPC9vbD4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgo8ZGl2Pgo8ZGl2Pgo8aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48YSBuYW1lPSJzZWMtYXN0Ij48L2E+VGhlIEFic3RyYWN0IFN5bnRheCBUcmVlIChBU1QpPC9oMj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPHA+IEFzIG1lbnRpb25lZCwgdGhlIEFic3RyYWN0IFN5bnRheCBUcmVlIGlzIHRoZSB3YXkgdGhhdApFY2xpcHNlIGxvb2tzIGF0IHlvdXIgc291cmNlCmNvZGU6IGV2ZXJ5IFBIUCBzb3VyY2UgZmlsZSBpcyBlbnRpcmVseSByZXByZXNlbnRlZCBhcyB0cmVlIG9mIEFTVApub2Rlcy4gVGhlc2Ugbm9kZXMKYXJlIGFsbCBzdWJjbGFzc2VzIG9mIDxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPkFTVE5vZGU8L2NvZGU+LgpFdmVyeSBzdWJjbGFzcyBpcwpzcGVjaWFsaXplZCBmb3IgYW4gZWxlbWVudCBvZiB0aGUgUEhQIFByb2dyYW1taW5nIExhbmd1YWdlLiBFLmcuIHRoZXJlCmFyZSBub2RlcyBmb3IKbWV0aG9kIGRlY2xhcmF0aW9ucyAoIDxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPk1ldGhvZERlY2xhcmF0aW9uPC9jb2RlPiksJm5ic3A7Y2xhc3MKZGVjbGFyYXRpb24gKDxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPkNsYXNzRGVjbGFyYXRpb248L2NvZGU+KSwKYXNzaWdubWVudHMgYW5kIHNvIG9uLiBPbmUgdmVyeSBmcmVxdWVudGx5IHVzZWQgbm9kZSBpcyZuYnNwOzxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPklkZW50aWZpZXI8L2NvZGU+LiBBbiZuYnNwOzxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPklkZW50aWZpZXI8L2NvZGU+IGlzIGFueQpzdHJpbmcgb2YgUEhQIHNvdXJjZSB0aGF0IGlzIG5vdCBhIGtleXdvcmQgb3IgYSBzY2FsYXImbmJzcDs8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5TY2FsYXImbmJzcDs8L2NvZGU+Rm9yIGV4YW1wbGUsCmluCjxjb2RlIGNsYXNzPSJjb2RlIj4kaSA9IDYgKyAkajs8L2NvZGU+LAo8Y29kZSBjbGFzcz0iY29kZSI+JGk8L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0iY29kZSI+JGo8L2NvZGU+IGFyZSByZXByZXNlbnRlZCBieSA8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5JPC9jb2RlPjxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPmRlbnRpZmllcjwvY29kZT4uJm5ic3A7CjwvcD4KPHA+IEFsbCBBU1QtcmVsZXZhbnQgY2xhc3NlcyBhcmUgbG9jYXRlZCBpbiB0aGUgcGFja2FnZQo8Y29kZSBjbGFzcz0iY29kZSI+b3JnLmVjbGlwc2UucGhwLmNvcmUuZG9tPC9jb2RlPgpvZiB0aGUKPGNvZGUgY2xhc3M9ImNvZGUiPm9yZy5lY2xpcHNlLnBocC5jb3JlPC9jb2RlPgpwbHVnLWluLjwvcD4KPHA+IFRvIGRpc2NvdmVyIGhvdyBjb2RlIGlzIHJlcHJlc2VudGVkIGFzIEFTVCwgdGhlIEFTVCBWaWV3ZXIKcGx1Zy1pbiBbPGEgaHJlZj0iI2JpYi1hc3Qtdmlld2VyIj40PC9hPl0gaXMgYSBiaWcKaGVscDogT25jZSBpbnN0YWxsZWQgeW91IGNhbiBzaW1wbHkgbWFyayBzb3VyY2UKY29kZSBpbiB0aGUgZWRpdG9yIGFuZCBsZXQgaXQgYmUgZGlzcGxheWVkIGluIGEgdHJlZSBmb3JtIGluIHRoZSBBU1QKVmlld2VyIHZpZXcuIDwvcD4KPGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgo8ZGl2Pgo8ZGl2Pgo8aDMgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJzZWMtcGFyc2luZy1hLXNvdXJjZS1maWxlIj48L2E+UGFyc2luZwpzb3VyY2UgY29kZTwvaDM+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxwPk1vc3Qgb2YgdGhlIHRpbWUsIGFuIEFTVCBpcyBub3QgY3JlYXRlZCBmcm9tIHNjcmF0Y2gsIGJ1dApyYXRoZXIgcGFyc2VkIGZyb20KZXhpc3RpbmcgUEhQIGNvZGUuIFRoaXMgaXMgZG9uZSB1c2luZyB0aGUgPGNvZGUgY2xhc3M9ImNsYXNzbmFtZSI+QVNUUGFyc2VyPC9jb2RlPi4KSXQKcHJvY2Vzc2VzIHdob2xlIFBIUCBmaWxlcyBhcyB3ZWxsIGFzIHBvcnRpb25zIG9mIFBIUCBjb2RlLiBJbiB0aGUKZXhhbXBsZQphcHBsaWNhdGlvbiB0aGUgbWV0aG9kJm5ic3A7PGNvZGUgY2xhc3M9Im1ldGhvZG5hbWUiPlByb2dyYW0KcGFyc2UoSVNvdXJjZU1vZHVsZSBsd1VuaXQpPC9jb2RlPm9mIHRoZSBjbGFzcyA8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5BYnN0cmFjdEFTVEFydGljbGU8L2NvZGU+IHBhcnNlcyB0aGUKc291cmNlIGNvZGUKc3RvcmVkIGluIHRoZSBmaWxlIHRoYXQmbmJzcDs8Y29kZSBjbGFzcz0ibWV0aG9kbmFtZSI+bHdVbml0PC9jb2RlPgpwb2ludHMgdG86CjwvcD4KPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnByb3RlY3RlZCBQcm9ncmFtIHBhcnNlKElDb21waWxhdGlvblVuaXQgdW5pdCkgezxicj4JQVNUUGFyc2VyIHBhcnNlciA9IEFTVFBhcnNlci5uZXdQYXJzZXIoQVNUUGFyc2VyLlZFUlNJT05fUEhQNSwgbHdVbml0KTs8YnI+CXRyeSB7PGJyPglyZXR1cm4gKFByb2dyYW0pIHBhcnNlci5jcmVhdGVBU1QobnVsbCAvKiBJUHJvZ3Jlc3NNb25pdG9yICovKTsgPGJyPgl9IGNhdGNoIChFeGNlcHRpb24gZSkgezxicj4JcmV0dXJuIG51bGw7PGJyPgl9IDxicj59PC9wcmU+CjxwPldpdGgKPGNvZGUgY2xhc3M9ImNvZGUiPkFTVFBhcnNlci5uZXdQYXJzZXIoQVNUUGFyc2VyLlZFUlNJT05fUEhQNSwKbHdVbml0KTwvY29kZT4sIHdlIGFkdmlzZQp0aGUgcGFyc2VyIHRvIHBhcnNlIHRoZSBjb2RlIGZvbGxvd2luZyB0byB0aGUgUEhQIExhbmd1YWdlClNwZWNpZmljYXRpb24sIGluY2x1ZGVzIGFsbCBQSFAgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbnMgdXAgdG8gdGhlIG5ldwpzeW50YXgKaW50cm9kdWNlZCBpbiBQSFAgNS4mbmJzcDs8Y29kZSBjbGFzcz0iY29kZSI+PC9jb2RlPkFuCjxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPklTb3VyY2VNb2R1bGU8L2NvZGU+IGlzIGEKcG9pbnRlciB0byBhIFBIUCBmaWxlLCBhbmQgd2lsbCBiZSB1c2VkIHRvIHJlb2x2ZSBiaW5kaW5nIGluZm9pcm1hdGlvbgpvZiB0aGlzIHNjcmlwdC4gVGhlIHBhcnNlcgpzdXBwb3J0cyBmaXZlIGtpbmRzIG9mIGlucHV0OiA8L3A+CjxwPjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPkVudGlyZSBzb3VyY2UKZmlsZTwvZW0+PC9zcGFuPjogVGhlIHBhcnNlciBleHBlY3RzIHRoZSBzb3VyY2UKZWl0aGVyIGFzIGEgcG9pbnRlciB0byBhIFBIUCBmaWxlICh3aGljaCBtZWFucyBhcyBhbgo8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5JU291cmNlTW9kdWxlPC9jb2RlPiwgc2VlIDxhIGhyZWY9IiNzZWMtamF2YS1tb2RlbCIgdGl0bGU9IkphdmEgTW9kZWwiPnRoZSBzZWN0aW9uCmNhbGxlZCAmIzgyMjA7UEhQIE1vZGVsJiM4MjIxOzwvYT4pIG9yIGFzCjxjb2RlIGNsYXNzPSJjb2RlIj5jaGFyW108L2NvZGU+Lgo8L3A+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KPGRpdj4KPGRpdj4KPGg0IGNsYXNzPSJ0aXRsZSI+UEhQIE1vZGVsPC9oND4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPHA+VGhlIFBIUCBNb2RlbCBpcyBhIHdob2xlIGRpZmZlcmVudCBzdG9yeS4gSXQgaXMgb3V0IG9mIHNjb3BlCm9mIHRoaXMKYXJ0aWNsZSB0byBkaXZlIGRlZXAgaW50byBpdHMgZGV0YWlscyB3aXRoaW4uIFRoZSBwYXJ0cyBsb29rZWQgYXQgd2lsbApiZSB0aGUgb25lcyB3aGljaCBpbnRlcnNlY3Qgd2l0aCB0aGUgQVNULiBUaGUgbW90aXZhdGlvbiB0byBkaXNjdXNzIGl0CmhlcmUgaXMsIHRvIHVzZSBpdCBhcyBhbiBlbnRyeSBwb2ludCB0byBidWlsZCBhbiBBYnN0cmFjdCBTeW50YXggVHJlZQpvZiBhIHNvdXJjZSBmaWxlLiBSZW1lbWJlciwgdGhlCjxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPklDb21waWxhdGlvblVuaXQ8L2NvZGU+IGlzCm9uZSBvZiB0aGUgcG9zc2libGUgcGFyYW1ldGVycyBmb3IKdGhlIEFTVCBwYXJzZXIuPC9wPgo8cD5UaGUgUEhQIE1vZGVsIHJlcHJlc2VudHMgYSBQSFAgUHJvamVjdCBpbiBhIHRyZWUgc3RydWN0dXJlLAp3aGljaCBpcwp2aXN1YWxpemVkIGJ5IHRoZSB3ZWxsIGtub3duICJQYWNrYWdlIEV4cGxvcmVyIiB2aWV3OjwvcD4KPGRpdiBjbGFzcz0iZmlndXJlIj48YSBuYW1lPSJmaWctamF2YS1tb2RlbC1vdmVydmlldyI+PC9hPgo8cCBjbGFzcz0idGl0bGUiPjxiPkZpZ3VyZSZuYnNwOzIuIFBIUCBNb2RlbApPdmVydmlldzwvYj48L3A+CjxkaXYgY2xhc3M9ImZpZ3VyZS1jb250ZW50cyI+CjxkaXYgY2xhc3M9Im1lZGlhb2JqZWN0Ij48aW1nIHNyYz0iaW1hZ2VzL3BocC1tb2RlbC1vdmVydmlldy5wbmciIGFsdD0iUEhQIE1vZGVsIE92ZXJ2aWV3Ij48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8YnIgY2xhc3M9ImZpZ3VyZS1icmVhayI+CjxwPlRoZSBub2RlcyBvZiB0aGUgUEhQIE1vZGVsIGltcGxlbWVudCBvbmUgb2YgdGhlIGZvbGxvd2luZwppbnRlcmZhY2VzOgo8L3A+CjxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+Cjx1bCB0eXBlPSJkaXNjIj4KPGxpPjxjb2RlIGNsYXNzPSJjb2RlIj5JU2NyaXB0UHJvamVjdDwvY29kZT46CklzIHRoZSBub2RlIG9mIHRoZSBQSFAgTW9kZWwgYW5kIHJlcHJlc2VudHMgYSBQSFAgUHJvamVjdC4gSXQgY29udGFpbnMKPGNvZGUgY2xhc3M9ImNvZGUiPklQcm9qZWN0RnJhZ21lbnQ8L2NvZGU+IGFzCmNoaWxkIG5vZGVzLjwvbGk+CjxsaT48Y29kZSBjbGFzcz0iY29kZSI+SVByb2plY3RGcmFnbWVudDwvY29kZT46ClJlcHJlc2VudHMgYSBwcm9qZWN0IGZyYWdtZW50LCBhbmQgbWFwcyB0aGUgY29udGVudHMgdG8gYW4KdW5kZXJseWluZyByZXNvdXJjZSB3aGljaCBpcyBlaXRoZXIgYSBmb2xkZXIsIEpBUiwgb3IgWklQIGZpbGUuPC9saT4KPGxpPjxjb2RlIGNsYXNzPSJjb2RlIj5JU2NyaXB0Rm9sZGVyPC9jb2RlPjombmJzcDtSZXByZXNlbnRzCmEgZm9sZGVyIGNvbnRhaW5pbmcgc2NyaXB0IGZpbGVzIGluc2lkZTxjb2RlIGNsYXNzPSJjb2RlIj48L2NvZGU+LjwvbGk+CjxsaT48Y29kZSBjbGFzcz0iY29kZSI+SVNvdXJjZU1vZHVsZTwvY29kZT46ClJlcHJlc2VudHMgYSBQSFAgc291cmNlIGZpbGUuPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ij48L3NwYW4+PC9saT4KPGxpPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogbW9ub3NwYWNlOyI+PC9zcGFuPjxjb2RlIGNsYXNzPSJjb2RlIj48L2NvZGU+IDxjb2RlIGNsYXNzPSJjb2RlIj5JVHlwZTwvY29kZT46ClJlcHJlc2VudHMgYSBjbGFzcyBvciBpbnRlcmZhY2UgaW4gYSBzb3VyY2UgZmlsZS48L2xpPgo8bGk+PGNvZGUgY2xhc3M9ImNvZGUiPklGaWVsZDwvY29kZT46ClJlcHJlc2VudHMgYSBmaWVsZCBvciBjb25zdGFudCZuYnNwO2luIGFuIDxjb2RlIGNsYXNzPSJjb2RlIj5JVHlwZTwvY29kZT48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsiPjwvc3Bhbj48L2xpPgo8bGk+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ij48L3NwYW4+PGNvZGUgY2xhc3M9ImNvZGUiPklNZXRob2Q8L2NvZGU+OiBSZXByZXNlbnRzIGFmdW5jdGlvbiBpbgpvZiBzb3VyY2UgZmlsZSBvciBhJm5ic3A7bWV0aG9kJm5ic3A7aW4gYSBjbGFzcyBvciBpbnRlcmZhY2U8L2xpPgo8L3VsPgo8L2Rpdj4KPHA+SW4gY29udHJhc3QgdG8gdGhlIEFTVCwgdGhlc2Ugbm9kZXMgYXJlIGxpZ2h0d2VpZ2h0IGhhbmRsZXMuCkl0IGNvc3RzIG11Y2ggbGVzcwp0byByZWJ1aWxkIGEgcG9ydGlvbiBvZiB0aGUgUEhQIE1vZGVsIHRoYW4gdG8gcmVidWlsZCBhbiBBU1QuIFRoYXQgaXMKYWxzbyBvbmUgcmVhc29uCndoeSB0aGUgUEhQIE1vZGVsIGlzIG5vdCBvbmx5IGRlZmluZWQgZG93biB0byB0aGUgbGV2ZWwgb2YKPGNvZGUgY2xhc3M9ImNsYXNzbmFtZSI+SVNvdXJjZU1vZHVsZTwvY29kZT4uIFRoZXJlCmFyZSBtYW55IGNhc2VzIHdoZXJlIGNvbXBsZXRlCmluZm9ybWF0aW9uLCBsaWtlIHRoYXQgcHJvdmlkZWQgYnkgdGhlIEFTVCwgaXMgbm90IG5lZWRlZC4gT25lIGV4YW1wbGUKaXMgdGhlIE91dGxpbmUKdmlldzogdGhpcyB2aWV3IGRvZXMgbm90IG5lZWQgdG8ga25vdyB0aGUgY29udGVudHMgb2YgYSBtZXRob2QgYm9keS4gSXQKaXMgbW9yZQppbXBvcnRhbnQgdGhhdCBpdCBjYW4gYmUgcmVidWlsdCBmYXN0LCB0byBrZWVwIGluIHN5bmMgd2l0aCBpdHMgc291cmNlCmNvZGUuPC9wPgo8cD5UaGVyZSBhcmUgZGlmZmVyZW50IHdheXMgdG8gZ2V0IGFuCjxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPklTb3VyY2VNb2R1bGU8L2NvZGU+LiBUaGUKZXhhbXBsZSBhcHBsaWNhdGlvbnMgYXJlCmxhdW5jaGVkIGFzIGFjdGlvbnMgZnJvbSB0aGUgcGFja2FnZSB0cmVlIHZpZXcuIFRoaXMgaXMgcXVpdGUKY29udmVuaWVudDogb25seSBhZGQKYW4KPGNvZGUgY2xhc3M9ImNvZGUiPm9iamVjdENvbnRyaWJ1dGlvbjwvY29kZT4KZXh0ZW5zaW9uIHRvIHRoZSBwb2ludAo8Y29kZSBjbGFzcz0iY29kZSI+b3JnLmVjbGlwc2UudWkucG9wdXBNZW51czwvY29kZT4uCkJ5IGNob29zaW5nPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ij4mbmJzcDs8L3NwYW4+PGNvZGUgY2xhc3M9ImNvZGUiPm9yZy5lY2xpcHNlLmRsdGsuY29yZS5JU291cmNlTW9kdWxlJm5ic3A7PC9jb2RlPmFzCjxjb2RlIGNsYXNzPSJjb2RlIj5vYmplY3RDbGFzczwvY29kZT4sIHRoZSBhY3Rpb24Kd2lsbCBiZSBvbmx5IGRpc3BsYXllZCBpbiB0aGUgY29udGV4dCBtZW51Cm9mIGEgY29tcGlsYXRpb24gdW5pdC4gSGF2ZSBhIGxvb2sgYXQgdGhlIGV4YW1wbGUgYXBwbGljYXRpb24ncwo8Y29kZSBjbGFzcz0iY29kZSI+cGx1Z2luLnhtbDwvY29kZT4uIFRoZQpjb21waWxhdGlvbiB1bml0IHRoZW4gY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZQo8Y29kZSBjbGFzcz0iaW50ZXJmYWNlbmFtZSI+SVNlbGVjdGlvbjwvY29kZT4sIHRoYXQKaXMgcGFzc2VkIHRvIHRoZQphY3Rpb24ncyBkZWxlZ2F0ZSAoaW4gdGhlIGV4YW1wbGUsIHRoaXMgaXMKPGNvZGUgY2xhc3M9ImNsYXNzbmFtZSI+QVNUQXJ0aWNsZUFjdGlvbkRlbGVnYXRlPC9jb2RlPikuPC9wPgo8cD5Bbm90aGVyLCBwcm9ncmFtbWF0aWMsIGFwcHJvYWNoIGlzIHRvIGdldCB0aGUgcHJvamVjdCBoYW5kbGUKZnJvbSB0aGUgSURFIGFuZCB0bwpsb29rIGZvciB0aGUgY29tcGlsYXRpb24gdW5pdC4gVGhpcyBjYW4gYmUgZG9uZSBieSBlaXRoZXIgc3RlcCBkb3duIHRoZQpQSFAgTW9kZWwKdHJlZSB0byBjb2xsZWN0IHRoZSBkZXNpcmVkIDxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPklTb3VyY2VNb2R1bGU8L2NvZGU+cy4KT3IsIGJ5IGNhbGxpbmcgdGhlCjxjb2RlIGNsYXNzPSJtZXRob2RuYW1lIj5maW5kVHlwZSgpPC9jb2RlPiBvZiB0aGUKUEhQIHByb2plY3Q6CjwvcD4KPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPklXb3Jrc3BhY2VSb290IHJvb3QgPSBSZXNvdXJjZXNQbHVnaW4uZ2V0V29ya3NwYWNlKCkuZ2V0Um9vdCgpOzxicj5JUHJvamVjdCBwcm9qZWN0ID0gcm9vdC5nZXRQcm9qZWN0KCJzb21lUEhQUHJvamVjdCIpOzxicj5wcm9qZWN0Lm9wZW4obnVsbCAvKiBJUHJvZ3Jlc3NNb25pdG9yICovKTs8YnI+SVNjcmlwdFByb2plY3QgUEhQUHJvamVjdCA9IERMVEtDb3JlLmNyZWF0ZShwcm9qZWN0KTs8YnI+SVR5cGUgbHdUeXBlID0gUEhQUHJvamVjdC5maW5kVHlwZSgiTXlDbGFzcyIpOzxicj5JU291cmNlTW9kdWxlIGx3U291cmNlTW9kdWxlID0gbHdUeXBlLmdldFNvdXJjZU1vZHVsZSgpOzwvcHJlPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KPGRpdj4KPGRpdj4KPGgzIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0ic2VjLWhvdy10by1maW5kLWFuLWFzdC1ub2RlIj48L2E+SG93CnRvIGZpbmQgYW4gQVNUIE5vZGU8L2gzPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8cD5FdmVuIGEgc2ltcGxlICJIZWxsbyB3b3JsZCIgcHJvZ3JhbSByZXN1bHRzIGluIGEgcXVpdGUgY29tcGxleAp0cmVlLgpIb3cgZG9lcyBvbmUgZ2V0IHRoZSZuYnNwOzxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPkZ1bmN0aW9uSW52b2NhdGlvbjwvY29kZT4Kb2YgdGhhdAo8Y29kZSBjbGFzcz0iY29kZSI+cHJpbnRsbigiSGVsbG8gV29ybGQiKTwvY29kZT4/ClNjYW5uaW5nIGFsbCB0aGUgbGV2ZWxzIGlzIGEKcG9zc2libGUsIGJ1dCBub3QgdmVyeSBjb252ZW5pZW50LjwvcD4KPHA+IFRoZXJlIGlzIGEgYmV0dGVyIHNvbHV0aW9uOiBldmVyeQo8Y29kZSBjbGFzcz0iY29kZSI+QVNUTm9kZTwvY29kZT4gYWxsb3dzIHF1ZXJ5aW5nCmZvciBhIGNoaWxkIG5vZGUgYnkgdXNpbmcgYSB2aXNpdG9yICh2aXNpdG9yCnBhdHRlcm4gWzxhIGhyZWY9IiNiaWItdmlzaXRvci1wYXR0ZXJuIj41PC9hPl0pLgpIYXZlIGEgbG9vayBhdAo8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5BYnN0cmFjdFZpc2l0b3I8L2NvZGU+LgpUaGVyZSB5b3UnbGwgZmluZCBmb3IgZXZlcnkgc3ViY2xhc3Mgb2YKPGNvZGUgY2xhc3M9ImNsYXNzbmFtZSI+QVNUTm9kZTwvY29kZT4gdHdvIG1ldGhvZHMsCm9uZSBjYWxsZWQKPGNvZGUgY2xhc3M9Im1ldGhvZG5hbWUiPnZpc2l0KCk8L2NvZGU+LCB0aGUgb3RoZXIKY2FsbGVkCjxjb2RlIGNsYXNzPSJtZXRob2RuYW1lIj5lbmRWaXNpdCgpPC9jb2RlPi4gRnVydGhlciwKdGhlCjxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPkFTVFZpc2l0b3I8L2NvZGU+IGRlY2xhcmVzCnRoZXNlIHR3byBtZXRob2RzOgo8Y29kZSBjbGFzcz0ibWV0aG9kbmFtZSI+cHJlVmlzaXQoQVNUTm9kZSBub2RlKTwvY29kZT4KYW5kCjxjb2RlIGNsYXNzPSJtZXRob2RuYW1lIj5wb3N0VmlzaXQoQVNUTm9kZSBub2RlKTwvY29kZT4uPC9wPgo8cD5UaGUgc3ViY2xhc3Mgb2YgPGNvZGUgY2xhc3M9ImNsYXNzbmFtZSI+QWJzdHJhY3RWaXNpdG9yPC9jb2RlPgppcyBwYXNzZWQgdG8gYW55IG5vZGUgb2YgdGhlCkFTVC4gVGhlIEFTVCB3aWxsIHJlY3Vyc2l2ZWx5IHN0ZXAgdGhyb3VnaCB0aGUgdHJlZSwgY2FsbGluZyB0aGUKbWVudGlvbmVkIG1ldGhvZHMgb2YKdGhlIHZpc2l0b3IgZm9yIGV2ZXJ5IEFTVCBub2RlIGluIHRoaXMgb3JkZXIgKGZvciB0aGUgZXhhbXBsZSBvZiBhCjxjb2RlIGNsYXNzPSJjb2RlIj5NZXRob2RJbnZvY2F0aW9uPC9jb2RlPik6CjwvcD4KPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij4KPHVsIHR5cGU9ImRpc2MiPgo8bGk+PGNvZGUgY2xhc3M9Im1ldGhvZG5hbWUiPnByZVZpc2l0KEFTVE5vZGUgbm9kZSk8L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJtZXRob2RuYW1lIj52aXNpdChNZXRob2RJbnZvY2F0aW9uCm5vZGUpPC9jb2RlPgo8L2xpPgo8bGk+Li4uIG5vdyB0aGUgY2hpbGRyZW4gb2YgdGhlIG1ldGhvZCBpbnZvY2F0aW9uIGFyZQpyZWN1cnNpdmVseQpwcm9jZXNzZWQgaWYgdmlzaXQgcmV0dXJucyB0cnVlPC9saT4KPGxpPjxjb2RlIGNsYXNzPSJtZXRob2RuYW1lIj5lbmRWaXNpdChNZXRob2RJbnZvY2F0aW9uCm5vZGUpPC9jb2RlPgo8L2xpPgo8bGk+PGNvZGUgY2xhc3M9Im1ldGhvZG5hbWUiPnBvc3RWaXNpdChBU1ROb2RlCm5vZGUpPC9jb2RlPjwvbGk+CjwvdWw+CjwvZGl2Pgo8cD4vLyBUT0RPIDogY2hlY2sgaGVyZSBhIHNhbXBsZSBmb3IgdmlzaXRvcjwvcD4KPHA+SW4gb3VyIGV4YW1wbGUgYXBwbGljYXRpb24sIHRoZQo8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5Mb2NhbFZhcmlhYmxlRGV0ZWN0b3I8L2NvZGU+CmlzIGEgc3ViY2xhc3Mgb2YKPGNvZGUgY2xhc3M9ImNsYXNzbmFtZSI+QWJzdHJhY3RWaXNpdG9yPC9jb2RlPi4gSXQKaXMgdXNlZCwgYW1vbmdzdCBvdGhlciB0aGluZ3MsIHRvIGNvbGxlY3QKYWxsIGxvY2FsIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBvZiBhIGNvbXBpbGF0aW9uIHVuaXQ6CjwvcD4KPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnB1YmxpYyBib29sZWFuIHZpc2l0KFZhcmlhYmxlRGVjbGFyYXRpb25TdGF0ZW1lbnQgbm9kZSkgezxicj4JZm9yIChJdGVyYXRvciBpdGVyID0gbm9kZS5mcmFnbWVudHMoKS5pdGVyYXRvcigpOyBpdGVyLmhhc05leHQoKTspIHs8YnI+CVZhcmlhYmxlRGVjbGFyYXRpb25GcmFnbWVudCBmcmFnbWVudCA9IChWYXJpYWJsZURlY2xhcmF0aW9uRnJhZ21lbnQpIGl0ZXIubmV4dCgpOzxicj4JLy8gLi4uIHN0b3JlIHRoZXNlIGZyYWdtZW50cyBzb21ld2hlcmU8YnI+CX08YnI+CXJldHVybiBmYWxzZTsgLy8gcHJldmVudCB0aGF0IFNpbXBsZU5hbWUgaXMgaW50ZXJwcmV0ZWQgYXMgcmVmZXJlbmNlPGJyPn08L3ByZT4KPHA+SWYKPGNvZGUgY2xhc3M9ImNvZGUiPmZhbHNlPC9jb2RlPiBpcyByZXR1cm5lZCBmcm9tIDxjb2RlIGNsYXNzPSJtZXRob2RuYW1lIj52aXNpdCgpPC9jb2RlPiwgdGhlCnN1YnRyZWUgb2YgdGhlIHZpc2l0ZWQgbm9kZSB3aWxsIG5vdCBiZSBjb25zaWRlcmVkLiBUaGlzIGlzIHRvIGlnbm9yZQpwYXJ0cyBvZgp0aGUgQVNULjwvcD4KPHA+SW4gdGhlIGV4YW1wbGUsIDxjb2RlIGNsYXNzPSJtZXRob2RuYW1lIj5wcm9jZXNzKFByb2dyYW0mbmJzcDtwcm9ncmFtKTwvY29kZT4KaXMKY2FsbGVkIGZyb20gdGhlIG91dHNpZGUgdG8gc3RhcnQgdmlzaXRpbmcgdGhlIHByb2dyYW0uIFRoZSBmdW5jdGlvbiBpcwpmYWlybHkKc2ltcGxlOgo8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5wdWJsaWMgdm9pZCBwcm9jZXNzKFByb2dyYW0gcHJvZ3JhbSkgezxicj4JcHJvZ3JhbS5hY2NlcHQodGhpcyk7PGJyPn08L3ByZT4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KPGRpdj4KPGRpdj4KPGgzIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0ic2VjLW9idGFpbmluZy1pbmZvcm1hdGlvbi1mcm9tLWFuLWFzdC1ub2RlIj48L2E+T2J0YWluaW5nCkluZm9ybWF0aW9uIGZyb20gYW4gQVNUIE5vZGU8L2gzPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8cD5FdmVyeSBzdWJjbGFzcyBvZgo8Y29kZSBjbGFzcz0iY29kZSI+QVNUTm9kZTwvY29kZT4gY29udGFpbnMgc3BlY2lmaWMKaW5mb3JtYXRpb24gZm9yIHRoZSBQSFAgZWxlbWVudCBpdApyZXByZXNlbnRzLiBFLmcuIGEmbmJzcDs8Y29kZSBjbGFzcz0iY29kZSI+RnVuY3Rpb25EZWNsYXJhdGlvbjwvY29kZT4Kd2lsbCBjb250YWluIGluZm9ybWF0aW9uIGFib3V0IHRoZSBuYW1lLCByZXR1cm4KdHlwZSwgcGFyYW1ldGVycywgZXRjLiBUaGUgaW5mb3JtYXRpb24gb2YgYSBub2RlIGlzIHJlZmVycmVkIGFzCjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnN0cnVjdHVyYWwgcHJvcGVydGllczwvZW0+PC9zcGFuPi4KTGV0IHVzIGhhdmUgYSBjbG9zZXIgbG9vayBhdCB0aGUKY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBzdHJ1Y3R1cmFsIHByb3BlcnRpZXMuIEJlbmVhdGggeW91IHNlZSB0aGUKcHJvcGVydGllcyBvZgp0aGlzIGZ1bmN0aW9uIGRlY2xhcmF0aW9uOgo8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5mdW5jdGlvbiBwcmludGxuKCRjb250ZW50KSB7PGJyPgllY2hvICRjb250ZW50IC4gJyZsdDtCUi8mZ3Q7JyA7PGJyPn08L3ByZT4KPGRpdiBjbGFzcz0iZmlndXJlIj48YSBuYW1lPSJmaWctcHJvcGVydGllcy1vZi1tZXRob2QtZGVjbGFyYXRpb24iPjwvYT4KPHAgY2xhc3M9InRpdGxlIj48Yj5GaWd1cmUmbmJzcDszLiZuYnNwO1N0cnVjdHVyYWwKcHJvcGVydGllcyBvZiBhIG1ldGhvZCBkZWNsYXJhdGlvbjwvYj48L3A+CjxkaXYgY2xhc3M9ImZpZ3VyZS1jb250ZW50cyI+CjxkaXYgY2xhc3M9Im1lZGlhb2JqZWN0Ij48aW1nIHNyYz0iaW1hZ2VzL21kLWFzdHZpZXcucG5nIiBhbHQ9IlN0cnVjdHVyYWwgcHJvcGVydGllcyBvZiBhIG1ldGhvZCBkZWNsYXJhdGlvbiI+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGJyIGNsYXNzPSJmaWd1cmUtYnJlYWsiPgo8cD5BY2Nlc3MgdG8gdGhlIHZhbHVlcyBvZiBhIG5vZGUncyBzdHJ1Y3R1cmFsIHByb3BlcnRpZXMgY2FuIGJlCm1hZGUgdXNpbmcgc3RhdGljIG9yCmdlbmVyaWMgbWV0aG9kczoKPC9wPgo8ZGl2IGNsYXNzPSJvcmRlcmVkbGlzdCI+CjxvbCB0eXBlPSIxIj4KPGxpPgo8cD48c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5zdGF0aWMKbWV0aG9kczwvZW0+PC9zcGFuPjogZXZlcnkgbm9kZSBvZmZlcnMgbWV0aG9kcyB0bwphY2Nlc3MgaXRzIHByb3BlcnRpZXM6IGUuZy4KPGNvZGUgY2xhc3M9ImNvZGUiPmdldE5hbWUoKTwvY29kZT4sIGV0Yy48L3A+CjwvbGk+CjxsaT4KPHA+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+Z2VuZXJpYwptZXRob2Q8L2VtPjwvc3Bhbj46IGFzayBmb3IgYSBwcm9wZXJ0eSB2YWx1ZSB1c2luZwp0aGUgPGNvZGUgY2xhc3M9Im1ldGhvZG5hbWUiPmdldFN0cnVjdHVyYWxQcm9wZXJ0eShTdHJ1Y3R1cmFsUHJvcGVydHlEZXNjcmlwdG9yCnByb3BlcnR5KTwvY29kZT4gbWV0aG9kLiBFdmVyeSBBU1Qgc3ViY2xhc3MgZGVmaW5lcyBhIHNldCBvZgo8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5TdHJ1Y3R1cmFsUHJvcGVydHlEZXNjcmlwdG9yPC9jb2RlPnMsCm9uZSBmb3IgZXZlcnkKc3RydWN0dXJhbCBwcm9wZXJ0eS4gVGhlCjxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPlN0cnVjdHVyYWxQcm9wZXJ0eURlc2NyaXB0b3I8L2NvZGU+CmNhbiBiZSBhY2Nlc3NlZApkaXJlY3RseSBvbiB0aGUgY2xhc3MgdG8gd2hpY2ggdGhleSBiZWxvbmc6IGUuZy4mbmJzcDs8Y29kZSBjbGFzcz0iY29kZSI+RnVuY3Rpb25EZWNsYXJhdGlvbi5OQU1FX1BST1BFUlRZPC9jb2RlPi4KQSBsaXN0IG9mIGFsbCBhdmFpbGFibGUKPGNvZGUgY2xhc3M9ImNvZGUiPlN0cnVjdHVyYWxQcm9wZXJ0eURlc2NyaXB0b3I8L2NvZGU+cwpvZiBhIG5vZGUgY2FuIGJlIHJldHJpZXZlZCBieQpjYWxsaW5nIHRoZSBtZXRob2QKPGNvZGUgY2xhc3M9ImNvZGUiPnN0cnVjdHVyYWxQcm9wZXJ0aWVzRm9yVHlwZSgpPC9jb2RlPgpvbiBhbnkgaW5zdGFuY2Ugb2YKPGNvZGUgY2xhc3M9ImNvZGUiPkFTVE5vZGU8L2NvZGU+LjwvcD4KPC9saT4KPC9vbD4KPC9kaXY+CjxwPlRoZSBzdHJ1Y3R1cmFsIHByb3BlcnRpZXMgYXJlIGdyb3VwZWQgaW50byB0aHJlZSBkaWZmZXJlbnQKa2luZHM6IHByb3BlcnRpZXMKdGhhdCBob2xkIHNpbXBsZSB2YWx1ZXMsIHByb3BlcnRpZXMgd2hpY2ggY29udGFpbiBhIHNpbmdsZSBjaGlsZCBBU1QKbm9kZSBhbmQKcHJvcGVydGllcyB3aGljaCBjb250YWluIGEgbGlzdCBvZiBjaGlsZCBBU1Qgbm9kZXMuCjwvcD4KPGRpdiBjbGFzcz0iZmlndXJlIj48YSBuYW1lPSJmaWctc3BkLXN1YmNsYXNzZXMiPjwvYT4KPHAgY2xhc3M9InRpdGxlIj48Yj5GaWd1cmUmbmJzcDs0LiZuYnNwO1N0cnVjdHVyYWxQcm9wZXJ0eURlc2NyaXB0b3IKYW5kIHN1YmNsYXNzZXM8L2I+PC9wPgo8ZGl2IGNsYXNzPSJmaWd1cmUtY29udGVudHMiPgo8ZGl2IGNsYXNzPSJtZWRpYW9iamVjdCI+PGltZyBzcmM9ImltYWdlcy9TdHJ1Y3R1cmFsUHJvcGVydHlEZXNjcmlwdG9yLUNELXMucG5nIiBhbHQ9IlN0cnVjdHVyYWxQcm9wZXJ0eURlc2NyaXB0b3IgYW5kIHN1YmNsYXNzZXMiPjwvZGl2Pgo8YSBocmVmPSJpbWFnZXMvU3RydWN0dXJhbFByb3BlcnR5RGVzY3JpcHRvci1DRC5wbmciIHRhcmdldD0iX25ldyI+dmlldyBmdWxsIHNpemU8L2E+PC9kaXY+CjwvZGl2Pgo8YnIgY2xhc3M9ImZpZ3VyZS1icmVhayI+CjxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+Cjx1bCB0eXBlPSJkaXNjIj4KPGxpPgo8cD48Y29kZSBjbGFzcz0iY29kZSI+U2ltcGxlUHJvcGVydHlEZXNjcmlwdG9yPC9jb2RlPjoKVGhlIHZhbHVlIHdpbGwgYmUgYQo8Y29kZSBjbGFzcz0iY29kZSI+U3RyaW5nPC9jb2RlPiwgYSBwcmltaXRpdmUKdmFsdWUgd3JhcHBlciBmb3IgZWl0aGVyCjxjb2RlIGNsYXNzPSJjb2RlIj5JbnRlZ2VyPC9jb2RlPiBvcgo8Y29kZSBjbGFzcz0iY29kZSI+Qm9vbGVhbjwvY29kZT4gb3IgYSBiYXNpYyBBU1QKY29uc3RhbnQuIEZvciBhIGxpc3Qgb2YgYWxsIHBvc3NpYmxlIHZhbHVlCmNsYXNzZXMgb2YgYSBzaW1wbGUgcHJvcGVydHksIHNlZSA8YSBocmVmPSIjYXBwLXNpbXBsZS1wcm9wZXJ0eS12YWx1ZS1jbGFzc2VzIiB0aXRsZT0iQy4mbmJzcDtTaW1wbGUgcHJvcGVydGllcyB2YWx1ZSBjbGFzc2VzIj5BcHBlbmRpeCZuYnNwO0MsCjxpPlNpbXBsZSBwcm9wZXJ0aWVzIHZhbHVlIGNsYXNzZXM8L2k+PC9hPjwvcD4KPC9saT4KPGxpPgo8cD48Y29kZSBjbGFzcz0iY29kZSI+Q2hpbGRQcm9wZXJ0eURlc2NyaXB0b3I8L2NvZGU+OgpUaGUgdmFsdWUgd2lsbCBiZSBhIG5vZGUsIGFuCmluc3RhbmNlIG9mIGFuCjxjb2RlIGNsYXNzPSJjb2RlIj5BU1ROb2RlPC9jb2RlPiBzdWJjbGFzczwvcD4KPC9saT4KPGxpPgo8cD48Y29kZSBjbGFzcz0iY29kZSI+Q2hpbGRMaXN0UHJvcGVydHlEZXNjcmlwdG9yPC9jb2RlPjoKVGhlIHZhbHVlIHdpbGwgYmUgYQo8Y29kZSBjbGFzcz0iY29kZSI+TGlzdDwvY29kZT4gb2YgQVNUIG5vZGVzPC9wPgo8L2xpPgo8L3VsPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CjxkaXY+CjxkaXY+CjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aDsiPjxhIG5hbWU9InNlYy1iaW5kaW5ncyI+PC9hPkJpbmRpbmdzPC9oMj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPHA+VGhlIEFTVCwgYXMgZmFyIGFzIHdlIGtub3cgaXQsIGlzIGp1c3QgYSB0cmVlLWZvcm0KcmVwcmVzZW50YXRpb24gb2Ygc291cmNlIGNvZGUuCkV2ZXJ5IGVsZW1lbnQgb2YgdGhlIHNvdXJjZSBjb2RlIGlzIG1hcHBlZCB0byBhIG5vZGUgb3IgYSBzdWJ0cmVlLgpMb29raW5nIGF0IGEgcmVmZXJlbmNlIHRvIGEKdmFyaWFibGUsIGxldCdzIHNheQo8Y29kZSBjbGFzcz0iY29kZSI+JGk8L2NvZGU+LCBpcyByZXByZXNlbnRlZCBieSBhbgppbnN0YW5jZSBvZiZuYnNwOzxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPklkZW50aWZpZXI8L2NvZGU+CndpdGggImkiIGFzCjxjb2RlIGNsYXNzPSJjb2RlIj5JREVOVElGSUVSPC9jb2RlPiBwcm9wZXJ0eS12YWx1ZS4KQmluZGluZ3MgZ28gb25lIHN0ZXAgZnVydGhlcjogdGhleSBwcm92aWRlCmV4dGVuZGVkIHJlc29sdmVkIGluZm9ybWF0aW9uIGZvciBzZXZlcmFsIGVsZW1lbnRzIG9mIHRoZSBBU1QuIEFib3V0CnRoZSZuYnNwOzxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPklkZW50aWZpZXI8L2NvZGU+CmFib3ZlIHRoZXkgdGVsbCB1cyB0aGF0IGl0IGlzIGEgcmVmZXJlbmNlIHRvIGEgbG9jYWwKdmFyaWFibGUgb2YgdHlwZSBpbnQuPC9wPgo8cD5WYXJpb3VzIHN1YmNsYXNzZXMgb2YgPGNvZGUgY2xhc3M9ImNsYXNzbmFtZSI+QVNUTm9kZTwvY29kZT4KaGF2ZSBiaW5kaW5nCmluZm9ybWF0aW9uLiBJdCBpcyByZXRyaWV2ZWQgYnkgY2FsbGluZwo8Y29kZSBjbGFzcz0ibWV0aG9kbmFtZSI+cmVzb2x2ZUJpbmRpbmcoKTwvY29kZT4gb24KdGhlc2UgY2xhc3Nlcy4gVGhlcmUgYXJlIGNhc2VzIHdoZXJlCm1vcmUgdGhhbiBvbmUgYmluZGluZyBpcyBhdmFpbGFibGU6IGUuZy4gdGhlIGNsYXNzCjxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPk1ldGhvZEludm9jYXRpb248L2NvZGU+CnJldHVybnMgYSBiaW5kaW5nIHRvIHRoZSBtZXRob2QgdGhhdCBpcwppbnZva2VkICg8Y29kZSBjbGFzcz0ibWV0aG9kbmFtZSI+cmVzb2x2ZU1ldGhvZEJpbmRpbmcoKTwvY29kZT4pLgpGdXJ0aGVybW9yZSBhCmJpbmRpbmcgdG8gdGhlIHJldHVybiB0eXBlIG9mIHRoZSBtZXRob2QKKDxjb2RlIGNsYXNzPSJtZXRob2RuYW1lIj5yZXNvbHZlVHlwZUJpbmRpbmcoKTwvY29kZT4pLiZuYnNwOwo8L3A+CjxwPlNpbmNlIGV2YWx1YXRpbmcgYmluZGluZ3MgaXMgY29zdGx5LCB0aGUgYmluZGluZyBzZXJ2aWNlIGhhcwp0byBiZSBleHBsaWNpdGx5CnJlcXVlc3RlZCBhdCBwYXJzZSB0aW1lLiBUaGlzIGlzIGRvbmUgYnkgcGFzc2luZyB0aGUgcmVsZXZhbnQgJm5ic3A7PGNvZGUgY2xhc3M9ImNvZGUiPklTb3VyY2VNb2R1bGUmbmJzcDs8L2NvZGU+dG8gdGhlCm1ldGhvZAo8Y29kZSBjbGFzcz0iY29kZSI+QVNUUGFyc2VyLmNyZWF0ZVBhcnNlcigpPC9jb2RlPgpiZWZvcmUgdGhlIHNvdXJjZSBpcyBiZWluZyBwYXJzZWQuCjwvcD4KPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiRpID0gNzs8YnI+ZWNobyAnSGVsbG8hJzs8YnI+JHggPSAkaSAqIDI7PC9wcmU+CnRoZSByZWZlcmVuY2Ugb2YgdGhlIHZhcmlhYmxlCjxjb2RlIGNsYXNzPSJjb2RlIj5pPC9jb2RlPiBpcyByZXByZXNlbnRlZCBieQphJm5ic3A7PGNvZGUgY2xhc3M9ImNvZGUiPklkZW50aWZpZXI8L2NvZGU+LgpXaXRob3V0IGJpbmRpbmdzIHlvdSB3b3VsZCBub3Qga25vdyBub3RoaW5nIG1vcmUgdGhhbiB0aGlzOgo8ZGl2IGNsYXNzPSJzY3JlZW5zaG90Ij4KPGRpdiBjbGFzcz0ibWVkaWFvYmplY3QiPjxpbWcgc3JjPSJpbWFnZXMvc24tc2NyZWVuc2hvdC5wbmciPjwvZGl2Pgo8L2Rpdj4KPHA+IEJpbmRpbmdzIHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbjoKPC9wPgo8ZGl2IGNsYXNzPSJzY3JlZW5zaG90Ij4KPGRpdiBjbGFzcz0ibWVkaWFvYmplY3QiPjxpbWcgc3JjPSJpbWFnZXMvc24tYmluZGluZ3Mtc2NyZWVuc2hvdC5wbmciPjwvZGl2Pgo8L2Rpdj4KPHA+QmluZGluZ3MgYWxsb3cgeW91IHRvIGNvbWZvcnRhYmx5IGZpbmQgb3V0IHRvIHdoaWNoCmRlY2xhcmF0aW9uIGEgcmVmZXJlbmNlCmJlbG9uZ3MsIGFzIHdlbGwgYXMgdG8gZGV0ZWN0IHdoZXRoZXIgdHdvIGVsZW1lbnRzIGFyZSByZWZlcmVuY2VzIHRvCnRoZSBzYW1lIGVsZW1lbnQ6IGlmCnRoZXkgYXJlLCB0aGUgYmluZGluZ3MgcmV0dXJuZWQgYnkgcmVmZXJlbmNlLW5vZGVzIGFuZApkZWNsYXJhdGlvbi1ub2RlcyBhcmUKaWRlbnRpY2FsLiBGb3IgZXhhbXBsZSwgYWxsJm5ic3A7PGNvZGUgY2xhc3M9ImNsYXNzbmFtZSI+SWRlbnRpZmllcnM8L2NvZGU+CnRoYXQgcmVwcmVzZW50IGEKcmVmZXJlbmNlIHRvIGEgbG9jYWwgdmFyaWFibGUKPGNvZGUgY2xhc3M9ImNvZGUiPmk8L2NvZGU+IHJldHVybiB0aGUgc2FtZSBpbnN0YW5jZQpvZgo8Y29kZSBjbGFzcz0iY29kZSI+SVZhcmlhYmxlQmluZGluZzwvY29kZT4gZnJvbSA8Y29kZSBjbGFzcz0iY29kZSI+SWRlbnRpZmllci5yZXNvbHZlQmluZGluZ3MoKTwvY29kZT4uIFRoZQpkZWNsYXJhdGlvbiBub2RlLCZuYnNwOzxjb2RlIGNsYXNzPSJjb2RlIj5JZGVudGlmaWVyLnJlc29sdmVCaW5kaW5nKCk8L2NvZGU+LApyZXR1cm5zIHRoZSBzYW1lCmluc3RhbmNlIG9mCjxjb2RlIGNsYXNzPSJjb2RlIj5JVmFyaWFibGVCaW5kaW5nPC9jb2RlPiwgdG9vLiBJZgp0aGVyZSBpcyBhbm90aGVyIHVzYWdlIG9mIGEgbG9jYWwKdmFyaWFibGUKPGNvZGUgY2xhc3M9ImNvZGUiPmk8L2NvZGU+ICh3aXRoaW4gYW5vdGhlciBtZXRob2QKb3IgYmxvY2spLCBhbm90aGVyIGluc3RhbmNlIG9mCjxjb2RlIGNsYXNzPSJjb2RlIj5JVmFyaWFibGVCaW5kaW5nPC9jb2RlPiBpcwpyZXR1cm5lZC4gQ29uZnVzaW9ucyBjYXVzZWQgYnkgZXF1YWxseSBuYW1lZAplbGVtZW50cyBhcmUgYXZvaWRlZCBpZiBiaW5kaW5ncyBhcmUgdXNlZCB0byBpZGVudGlmeSBhbiBlbGVtZW50Cih2YXJpYWJsZSwgbWV0aG9kLAp0eXBlLCBldGMuKS48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+CjxkaXY+CjxkaXY+CjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aDsiPkhvdyB0byBBcHBseQpDaGFuZ2VzPC9oMj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPgo8cD5UaGlzIHNlY3Rpb24gd2lsbCBzaG93IGhvdyB0byBtb2RpZnkgYW4gQVNUIGFuZCBob3cgdG8gc3RvcmUKdGhlc2UgbW9kaWZpY2F0aW9ucyBiYWNrCmludG8gUEhQIHNvdXJjZSBjb2RlLjwvcD4KPHA+TmV3IEFTVCBub2RlcyBtYXkgaGF2ZSB0byBiZSBjcmVhdGVkLiBOZXcgbm9kZXMgYXJlIGNyZWF0ZWQgYnkKdXNpbmcgdGhlIGNsYXNzCjxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPm9yZy5lY2xpcHNlLnBocC5jb3JlLmRvbS5BU1Q8L2NvZGU+CihoZXJlIDxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPkFTVDwvY29kZT4gaXQgaXMgdGhlCm5hbWUgb2YgYW4KYWN0dWFsIGNsYXNzLiBEbyBub3QgY29uZnVzZSB3aXRoIHRoZSBhYmJyZXZpYXRpb24gIkFTVCIgdXNlZCB3aXRoaW4KdGhpcwphcnRpY2xlKS4gSGF2ZSBhIGxvb2sgYXQgdGhpcyBjbGFzczogaXQgb2ZmZXJzIG1ldGhvZHMgdG8gY3JlYXRlIGV2ZXJ5CkFTVCBub2RlIHR5cGUuIEFuCmluc3RhbmNlIG9mIDxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPkFTVDwvY29kZT4gaXMKY3JlYXRlZCB3aGVuIHNvdXJjZSBjb2RlIGlzIHBhcnNlZC4gVGhpcwppbnN0YW5jZSBjYW4gYmUgb2J0YWluZWQgZnJvbSBldmVyeSBub2RlIG9mIHRoZSB0cmVlIGJ5IGNhbGxpbmcgdGhlCm1ldGhvZAo8Y29kZSBjbGFzcz0ibWV0aG9kbmFtZSI+Z2V0QVNUKCk8L2NvZGU+LiBUaGUgbmV3bHkKY3JlYXRlZCBub2RlcyBjYW4gb25seSBiZSBhZGRlZCB0byB0aGUKdHJlZSB0aGF0IGNsYXNzIDxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPkFTVDwvY29kZT4Kd2FzIHJldHJpZXZlZCBmcm9tLjwvcD4KPHA+T2Z0ZW4gaXQgaXMgY29udmVuaWVudCB0byByZXVzZSBhbiBleGlzdGluZyBzdWJ0cmVlIG9mIGFuIEFTVAphbmQgbWF5YmUganVzdCBjaGFuZ2UKc29tZSBkZXRhaWxzLiBBU1Qgbm9kZXMgY2Fubm90IGJlIHJlLXBhcmVudGVkLCBvbmNlIGNvbm5lY3RlZCB0byBhbgpBU1QsIHRoZXkKY2Fubm90IGJlIGF0dGFjaGVkIHRvIGEgZGlmZmVyZW50IHBsYWNlIG9mIHRoZSB0cmVlLiBUaG91Z2ggaXQgaXMgZWFzeQp0byBjcmVhdGUgYSBjb3B5IGZyb20KYSBzdWJ0cmVlOgo8Y29kZSBjbGFzcz0iY29kZSI+KEV4cHJlc3Npb24pIEFTVE5vZGUuY29weVN1YnRyZWUoYXN0LApub2RlKTwvY29kZT4KLiBUaGUgcGFyYW1ldGVyCjxjb2RlIGNsYXNzPSJjb2RlIj5hc3Q8L2NvZGU+IGlzIHRoZSB0YXJnZXQgPGNvZGUgY2xhc3M9ImNsYXNzbmFtZSI+QVNUPC9jb2RlPi4gVGhpcyBpbnN0YW5jZSB3aWxsIGJlCnVzZWQgdG8gY3JlYXRlIHRoZSBuZXcgbm9kZXMuIFRoYXQgYWxsb3dzIGNvcHlpbmcgbm9kZXMgZnJvbSBhbm90aGVyCjxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPkFTVDwvY29kZT4gKGVzdGFibGlzaGVkIGJ5CmFub3RoZXIgcGFyc2VyIHJ1bikgaW50byB0aGUgY3VycmVudAo8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5BU1Q8L2NvZGU+IGRvbWFpbi4gPC9wPgo8cD5UaGVyZSBhcmUgdHdvIEFQSXMgdG8gdHJhY2sgbW9kaWZpY2F0aW9ucyBvbiBhbiBBU1Q6IGVpdGhlcgp5b3UgY2FuIGRpcmVjdGx5IG1vZGlmeQp0aGUgdHJlZSBvciB5b3UgY2FuIG1ha2UgdXNlIG9mIGEgc2VwYXJhdGUgcHJvdG9jb2wsIG1hbmFnZWQgYnkgYW4KaW5zdGFuY2Ugb2YKPGNvZGUgY2xhc3M9ImNvZGUiPkFTVFJld3JpdGU8L2NvZGU+LiBUaGUgbGF0dGVyLAp1c2luZyB0aGUKPGNvZGUgY2xhc3M9ImNvZGUiPkFTVFJld3JpdGU8L2NvZGU+LCBpcyB0aGUgbW9yZQpzb3BoaXN0aWNhdGVkIGFuZCBwcmVmZXJhYmxlIHdheS4gVGhlIGNoYW5nZXMKYXJlIG5vdGVkIGJ5IGFuIGluc3RhbmNlIG9mCjxjb2RlIGNsYXNzPSJjb2RlIj5BU1RSZXdyaXRlPC9jb2RlPiwgdGhlIG9yaWdpbmFsCkFTVCBpcyBsZWZ0IHVudG91Y2hlZC4gSXQgaXMgcG9zc2libGUgdG8gY3JlYXRlCm1vcmUgdGhhbiBvbmUgaW5zdGFuY2Ugb2YKPGNvZGUgY2xhc3M9ImNvZGUiPkFTVFJld3JpdGU8L2NvZGU+IGZvciB0aGUgc2FtZQpBU1QsIHdoaWNoIG1lYW5zIHRoYXQgZGlmZmVyZW50IGNoYW5nZSBsb2dzIGNhbgpiZSBzZXQgdXAuICJRdWljayBGaXgiIG1ha2VzIHVzZSBvZiB0aGlzIEFQSTogdGhpcyBpcyBob3cgZm9yIGV2ZXJ5ClF1aWNrIEZpeApwcm9wb3NhbCBhIHByZXZpZXcgaXMgY3JlYXRlZC4KPC9wPgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48YSBuYW1lPSJleC1hZGRpbmctYS1zdGF0ZW1lbnQtYXN0LXJld3JpdGUiPjwvYT4KPHAgY2xhc3M9InRpdGxlIj48Yj5FeGFtcGxlJm5ic3A7MS4mbmJzcDtQcm90b2NvbGxpbmcKY2hhbmdlcyB0byBhIEFTVCBieSB1c2luZyA8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5BU1RSZXdyaXRlPC9jb2RlPgouPC9iPjwvcD4KPGRpdiBjbGFzcz0iZXhhbXBsZS1jb250ZW50cyI+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YnI+TWV0aG9kRGVjbGFyYXRpb24gbWQgPSBhc3QubmV3TWV0aG9kRGVjbGFyYXRpb24oKTs8YnI+bWQuc2V0TmFtZShhc3QubmV3TmFtZSgiZm9vIikpOzxicj5BU1RSZXdyaXRlIHJld3JpdGVyID0gQVNUUmV3cml0ZS5jcmVhdGUoYXN0KTs8YnI+Q2xhc3NEZWNsYXJhdGlvbiB0ZCA9IChDbGFzc0RlY2xhcmF0aW9uKSBjdS5zdGF0ZW1lbnRzKCkuZ2V0KDApOzxicj5JVHJhY2tlZE5vZGVQb3NpdGlvbiB0ZExvY2F0aW9uID0gcmV3cml0ZXIudHJhY2sodGQpOzxicj5MaXN0UmV3cml0ZSBscncgPSByZXdyaXRlci5nZXRMaXN0UmV3cml0ZShjdSwgUHJvZ3JhbS5NRVRIT0RTX1BST1BFUlRZKTs8YnI+bHJ3Lmluc2VydExhc3QobWQsIG51bGwpOzxicj48L3ByZT4KPC9kaXY+CjwvZGl2Pgo8YnIgY2xhc3M9ImV4YW1wbGUtYnJlYWsiPgpUaGUgZXhhbXBsZSBzaG93cywgaG93IGEgY2hpbGQgaXMgYWRkZWQgdG8gYSBjaGlsZCBsaXN0IHByb3BlcnR5IHZhbHVlLgpJZiBhCnNpbmdsZS1jaGlsZCBwcm9wZXJ0eSBpcyBzZXQsIG5vIGxpc3QgcmV3cml0ZSBpcyBuZWNlc3NhcnkuIEZvcgpleGFtcGxlLCB0byBzZXQgdGhlIG5hbWUKb2YgYSA8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5NZXRob2RJbnZvY2F0aW9uPC9jb2RlPiwKdGhlIGNvZGUgd291bGQgbG9vayBsaWtlIHRoaXM6CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5yZXdyaXRlLnNldChtZXRob2RJbnZvY2F0aW9uLCBNZXRob2RJbnZvY2F0aW9uLk5BTUVfUFJPUEVSVFksIG5ld05hbWUsIG51bGwpOzwvcHJlPgpvcgo8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+cmV3cml0ZS5yZXBsYWNlKG1ldGhvZEludm9jYXRpb24uZ2V0TmFtZSgpIC8qIG9sZCBuYW1lIG5vZGUqLywgbmV3TmFtZSwgbnVsbCk8L3ByZT4KVG8gc2V0IGEgc2ltcGxlIHByb3BlcnR5IHZhbHVlLCBjYWxsIDxjb2RlIGNsYXNzPSJtZXRob2RuYW1lIj5zZXQoKTwvY29kZT4KbGlrZSBzaG93bgphYm92ZS4KPHA+TGV0IHVzIGhhdmUgYSBsb29rIGF0IHRoZSBzZWNvbmQgd2F5IHRvIGNoYW5nZSBhbiBBU1QuIEluc3RlYWQKb2YgdHJhY2tpbmcgdGhlCm1vZGlmaWNhdGlvbnMgaW4gc2VwYXJhdGUgcHJvdG9jb2xzLCB3ZSBkaXJlY3RseSBtb2RpZnkgdGhlIEFTVC4gVGhlCm9ubHkgdGhpbmcgdGhhdApoYXMgdG8gZG9uZSBiZWZvcmUgbW9kaWZ5aW5nIHRoZSBmaXJzdCBub2RlIGlzIHRvIHR1cm4gb24gdGhlIGNoYW5nZQpyZWNvcmRpbmcgYnkgY2FsbGluZwo8Y29kZSBjbGFzcz0iY29kZSI+cmVjb3JkTW9kaWZpY2F0aW9ucygpPC9jb2RlPiBvbgp0aGUgcm9vdCBvZiB0aGUgQVNULCB0aGUKPGNvZGUgY2xhc3M9ImNvZGUiPkNvbXBpbGF0aW9uVW5pdDwvY29kZT4uCkludGVybmFsbHkgY2hhbmdlcyBhcmUgbG9nZ2VkIHRvIGFuCjxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPkFTVFJld3JpdGU8L2NvZGU+IGFzIHdlbGwsCmJ1dCB0aGlzIGhhcHBlbnMgaGlkZGVuIHRvIHlvdS4KPC9wPgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48YSBuYW1lPSJleC1hZGRpbmctYS1zdGF0ZW1lbnQtZGlyZWN0Ij48L2E+CjxwIGNsYXNzPSJ0aXRsZSI+PGI+RXhhbXBsZSZuYnNwOzIuJm5ic3A7TW9kaWZ5aW5nCmFuIEFTVCBkaXJlY3RseS48L2I+PC9wPgo8ZGl2IGNsYXNzPSJleGFtcGxlLWNvbnRlbnRzIj4KPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiBwcm9ncmFtLnJlY29yZE1vZGlmaWNhdGlvbnMoKTs8YnI+IEFTVCBhc3QgPSBwcm9ncmFtLmdldEFTVCgpOzxicj4gRWNob1N0YXRlbWVudCBlY2hvID0gYXN0Lm5ld0VjaG9TdGF0ZW1lbnQoKTs8YnI+IGVjaG8uc2V0RXhwcmVzc2lvbihhc3QubmV3U2NhbGFyKCYjODIyMDtIZWxsbyBXb3JsZCYjODIyMDspOzxicj4gcHJvZ3JhbS5zdGF0ZW1lbnRzKCkuYWRkKGVjaG8pOzxicj48L3ByZT4KPC9kaXY+CjwvZGl2Pgo8cD5UaGUgbmV4dCBzZWN0aW9uIHdpbGwgdGVsbCBob3cgdG8gd3JpdGUgdGhlIG1vZGlmaWNhdGlvbnMgYmFjawppbnRvIFBIUCBzb3VyY2UKY29kZS48L3A+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KPGRpdj4KPGRpdj4KPGgzIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0ic2VjLXdyaXRlLWl0LWRvd24iPjwvYT5Xcml0ZQppdCBkb3duPC9oMz4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPHA+T25jZSB5b3UgaGF2ZSB0cmFja2VkIGNoYW5nZXMsIGVpdGhlciBieSB1c2luZyA8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5BU1RSZXdyaXRlPC9jb2RlPgpvciBieSBtb2RpZnlpbmcgdGhlIHRyZWUgbm9kZXMgZGlyZWN0bHksIHRoZXNlIGNoYW5nZXMgY2FuIGJlIHdyaXR0ZW4KYmFjayBpbnRvIFBIUApzb3VyY2UgY29kZS4gVGhlcmVmb3JlIGEgPGNvZGUgY2xhc3M9ImNsYXNzbmFtZSI+VGV4dEVkaXQ8L2NvZGU+Cm9iamVjdCBoYXMgdG8gYmUKY3JlYXRlZC4gSGVyZSB3ZSBsZWF2ZSB0aGUgY29kZSByZWxhdGVkIGFyZWEgb2YgdGhlIEFTVCwgYW5kIGVudGVyIGEKdGV4dCBiYXNlZAplbnZpcm9ubWVudC4gVGhlIDxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPlRleHRFZGl0PC9jb2RlPgpvYmplY3QgY29udGFpbnMgY2hhcmFjdGVyCmJhc2VkIG1vZGlmaWNhdGlvbiBpbmZvcm1hdGlvbi4gSXQgaXMgcGFydCBvZiB0aGUKPGNvZGUgY2xhc3M9ImNvZGUiPm9yZy5lY2xpcHNlLnRleHQ8L2NvZGU+IHBsdWctaW4uPC9wPgo8cD4gSG93IHRvIG9idGFpbiB0aGUKPGNvZGUgY2xhc3M9ImNvZGUiPlRleHRFZGl0PC9jb2RlPiBvYmplY3QgZGlmZmVycwpmb3IgdGhlIHR3byBtZW50aW9uZWQgd2F5cyBvbmx5IHNsaWdodGx5Ogo8L3A+CjxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+Cjx1bCB0eXBlPSJkaXNjIj4KPGxpPgo8cD5JZiB5b3UgdXNlZAo8Y29kZSBjbGFzcz0iY29kZSI+QVNUUmV3cml0ZTwvY29kZT4sIGFzayB0aGUKPGNvZGUgY2xhc3M9ImNvZGUiPkFTVFJld3JpdGU8L2NvZGU+IGluc3RhbmNlCmZvciB0aGUgZGVzaXJlZAo8Y29kZSBjbGFzcz0iY29kZSI+VGV4dEVkaXQ8L2NvZGU+IG9iamVjdCBieQpjYWxsaW5nCjxjb2RlIGNsYXNzPSJjb2RlIj5yZXdyaXRlQVNUKElEb2N1bWVudCwgTWFwKTwvY29kZT4uPC9wPgo8L2xpPgo8bGk+CjxwPklmIHlvdSBjaGFuZ2VkIHRoZSB0cmVlIG5vZGVzIGRpcmVjdGx5LCB0aGUKPGNvZGUgY2xhc3M9ImNvZGUiPlRleHRFZGl0PC9jb2RlPiBvYmplY3QgaXMKY3JlYXRlZCBieSBjYWxsaW5nCjxjb2RlIGNsYXNzPSJjb2RlIj5yZXdyaXRlKElEb2N1bWVudCBkb2N1bWVudCwgTWFwCm9wdGlvbnMpPC9jb2RlPiBvbgo8Y29kZSBjbGFzcz0iY2xhc3NuYW1lIj5Db21waWxhdGlvblVuaXQ8L2NvZGU+LjwvcD4KPC9saT4KPC91bD4KPC9kaXY+CjxwPlRoZSBmaXJzdCBwYXJhbWV0ZXIsCjxjb2RlIGNsYXNzPSJjb2RlIj5kb2N1bWVudDwvY29kZT4sIGNvbnRhaW5zIHRoZQpzb3VyY2UgY29kZSB0aGF0IHdpbGwgYmUgbW9kaWZpZWQuIFRoZSBjb250ZW50IG9mCnRoaXMgY29udGFpbmVyIGlzIHRoZSBzYW1lIGNvZGUgdGhhdCB5b3UgZmVkIGludG8gdGhlCjxjb2RlIGNsYXNzPSJjbGFzc25hbWUiPkFTVFBhcnNlcjwvY29kZT4uIFRoZSBzZWNvbmQKcGFyYW1ldGVyIGlzIGEgbWFwIG9mIG9wdGlvbnMgZm9yIHRoZQpzb3VyY2UgY29kZSBmb3JtYXR0ZXIuIFRvIHVzZSB0aGUgZGVmYXVsdCBvcHRpb25zLCBwYXNzCjxjb2RlIGNsYXNzPSJjb2RlIj5udWxsPC9jb2RlPi48L3A+CjxwPiBPYnRhaW5pbmcgYW4KPGNvZGUgY2xhc3M9ImNvZGUiPklEb2N1bWVudDwvY29kZT4gaWYgeW91IHBhcnNlZApzb3VyY2UgY29kZSBmcm9tIGEKPGNvZGUgY2xhc3M9ImNvZGUiPlN0cmluZzwvY29kZT4gaXMgZWFzeTogY3JlYXRlIGFuCm9iamVjdCBvZiB0aGUgY2xhc3MKPGNvZGUgY2xhc3M9ImNvZGUiPm9yZy5lY2xpcHNlLmpmYWNlLnRleHQuRG9jdW1lbnQ8L2NvZGU+CmFuZCBwYXNzIHRoZSBjb2RlIHN0cmluZyBhcwpjb25zdHJ1Y3RvciBwYXJhbWV0ZXIuPC9wPgo8cD5JZiB5b3UgaW5pdGlhbGx5IHBhcnNlZCBhbiBleGlzdGluZyBQSFAgc291cmNlIGZpbGUgYW5kIHdvdWxkCmxpa2UgdG8gc3RvcmUgdGhlCmNoYW5nZXMgYmFjayBpbnRvIHRoaXMgZmlsZSwgdGhpbmdzIGdldCBhIGxpdHRsZSBiaXQgbW9yZSB0cmlja3kuIFlvdQpzaG91bGQgbm90CmRpcmVjdGx5IHdyaXRlIGludG8gdGhpcyBmaWxlLCBzaW5jZSB5b3UgbWlnaHQgbm90IGJlIHRoZSBvbmx5IGVkaXRvcgp0aGF0IGlzCm1hbmlwdWxhdGluZyB0aGlzIHNvdXJjZSBmaWxlLiBXaXRoaW4gRWNsaXBzZSwgUEhQIGVkaXRvcnMgZG8gbm90IHdyaXRlCmRpcmVjdGx5IG9uCmEgZmlsZSByZXNvdXJjZSwgYnV0IG9uIGEgc2hhcmVkIHdvcmtpbmcgY29weSBpbnN0ZWFkLgo8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5JVGV4dEZpbGVCdWZmZXJNYW5hZ2VyIGJ1ZmZlck1hbmFnZXIgPSBGaWxlQnVmZmVycy5nZXRUZXh0RmlsZUJ1ZmZlck1hbmFnZXIoKTsgLy8gZ2V0IHRoZSBidWZmZXIgbWFuYWdlcjxicj5JUGF0aCBwYXRoID0gdW5pdC5nZXRQSFBFbGVtZW50KCkuZ2V0UGF0aCgpOyAvLyB1bml0OiBpbnN0YW5jZSBvZiBDb21waWxhdGlvblVuaXQ8YnI+dHJ5IHs8YnI+CWJ1ZmZlck1hbmFnZXIuY29ubmVjdChwYXRoLCBudWxsKTsgLy8gKDEpPGJyPglJVGV4dEZpbGVCdWZmZXIgdGV4dEZpbGVCdWZmZXIgPSBidWZmZXJNYW5hZ2VyLmdldFRleHRGaWxlQnVmZmVyKHBhdGgpOzxicj4JLy8gcmV0cmlldmUgdGhlIGJ1ZmZlcjxicj4JSURvY3VtZW50IGRvY3VtZW50ID0gdGV4dEZpbGVCdWZmZXIuZ2V0RG9jdW1lbnQoKTsgKDIpPGJyPgkvLyAuLi4gZWRpdCB0aGUgZG9jdW1lbnQgaGVyZSAuLi48YnI+CS8vIGNvbW1pdCBjaGFuZ2VzIHRvIHVuZGVybHlpbmcgZmlsZTxicj4JdGV4dEZpbGVCdWZmZXIuY29tbWl0KG51bGwgLyogUHJvZ3Jlc3NNb25pdG9yICovLCBmYWxzZSAvKiBPdmVyd3JpdGUgKi8pOyAvLyAoMyk8YnI+fSBmaW5hbGx5IHs8YnI+CWJ1ZmZlck1hbmFnZXIuZGlzY29ubmVjdChwYXRoLCBudWxsKTsgLy8gKDQpPGJyPn08L3ByZT4KPGRpdiBjbGFzcz0ib3JkZXJlZGxpc3QiPgo8b2wgdHlwZT0iMSI+CjxsaT5Db25uZWN0IGEgcGF0aCB0byB0aGUgYnVmZmVyIG1hbmFnZXIuIEFmdGVyIHRoYXQgY2FsbCwgdGhlCmRvY3VtZW50IGZvcgp0aGUgZmlsZSBkZXNjcmliZWQgYnkKPGNvZGUgY2xhc3M9ImNvZGUiPnBhdGg8L2NvZGU+IGNhbiBiZSBvYnRhaW5lZC48L2xpPgo8bGk+QXNrIHRoZSBidWZmZXIgZm9yIHRoZSB3b3JraW5nIGNvcHkgYnkgY2FsbGluZwo8Y29kZSBjbGFzcz0iY29kZSI+Z2V0VGV4dEZpbGVCdWZmZXI8L2NvZGU+LgpGcm9tIHRoZQo8Y29kZSBjbGFzcz0iY29kZSI+SVRleHRGaWxlQnVmZmVyPC9jb2RlPiB3ZSBnZXQKdGhlCjxjb2RlIGNsYXNzPSJjb2RlIj5JRG9jdW1lbnQ8L2NvZGU+IGluc3RhbmNlIHdlCm5lZWQuPC9saT4KPGxpPlN0b3JlIGNoYW5nZXMgdG8gdGhlIHVuZGVybHlpbmcgZmlsZS48L2xpPgo8bGk+RGlzY29ubmVjdCB0aGUgcGF0aC4gRG8gbm90IG1vZGlmeSB0aGUgZG9jdW1lbnQgYWZ0ZXIgdGhpcwpjYWxsLjwvbGk+Cjwvb2w+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KPGRpdj4KPGRpdj4KPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoOyI+PGEgbmFtZT0ic2VjLW1hbmFnaW5nLWNvbW1lbnRzIj48L2E+TWFuYWdpbmcgQ29tbWVudHM8L2gyPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8cD5PbmUgb2YgdGhlIG1vc3QgZnJ1c3RyYXRpbmcgcGFydCBvZiBtb2RpZnlpbmcgYW4gQVNUIGlzIHRoZQpjb21tZW50IGhhbmRsaW5nLiBUaGUgbWV0aG9kCjxjb2RlIGNsYXNzPSJjb2RlIj5Db21waWxhdGlvblVuaXQjZ2V0Q29tbWVudExpc3QoKTwvY29kZT4KaXMgdXNlZCB0byByZXR1cm4gdGhlIGxpc3Qgb2YgY29tbWVudHMKbG9jYXRlZCBpbiB0aGUgY29tcGlsYXRpb24gdW5pdCBpbiB0aGUgYXNjZW5kYW50IG9yZGVyLiBVbmZvcnR1bmF0ZWx5LAp0aGlzIGxpc3QgY2Fubm90IGJlCm1vZGlmaWVkLiBUaGlzIG1lYW5zIHRoYXQgZXZlbiBpZiB0aGUgQVNUIFJld3JpdGVyIGlzIHVzZWQgdG8gYWRkIGEKY29tbWVudCBpbnNpZGUgYQpjb21waWxhdGlvbiB1bml0LCB0aGUgbmV3IGNvbW1lbnQgd291bGQgbm90IGFwcGVhciBpbnNpZGUgdGhlIGNvbW1lbnRzJwpsaXN0LjwvcD4KPHA+SW4gb3JkZXIgdG8gYWRkIGEgY29tbWVudCB0aGUgZm9sbG93aW5nIGNvZGUgc25pcHBldCBjYW4gYmUKdXNlZDoKPC9wPgo8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+UHJvZ3JhbSBhc3RSb290PSAuLi4gOyAvLyBnZXQgdGhlIGN1cnJlbnQgcHJvZ3JhbTxicj5BU1RSZXdyaXRlIHJld3JpdGU9IEFTVFJld3JpdGUuY3JlYXRlKGFzdFJvb3QuZ2V0QVNUKCkpOzxicj5CbG9jayBibG9jaz0gKFR5cGVEZWNsYXJhdGlvbikgYXN0Um9vdC5zdGF0ZW1lbnRzKCkuZ2V0KDApLmdldEJvZHkoKTs8YnI+TGlzdFJld3JpdGUgbGlzdFJld3JpdGU9IHJld3JpdGUuZ2V0TGlzdFJld3JpdGUoYmxvY2ssIEJsb2NrLlNUQVRFTUVOVFNfUFJPUEVSVFkpOzxicj5TdGF0ZW1lbnQgcGxhY2VIb2xkZXI9IHJld3JpdGUuY3JlYXRlU3RyaW5nUGxhY2Vob2xkZXIoIi8vbXljb21tZW50IiwgQVNUTm9kZS5FTVBUWV9TVEFURU1FTlQpOzxicj5saXN0UmV3cml0ZS5pbnNlcnRGaXJzdChwbGFjZUhvbGRlciwgbnVsbCk7PGJyPnRleHRFZGl0cz0gcmV3cml0ZS5yZXdyaXRlQVNUKGRvY3VtZW50LCBudWxsKTs8YnI+dGV4dEVkaXRzLmFwcGx5KGRvY3VtZW50KTs8YnI+PC9wcmU+CjxwPlRoZSBtZXRob2RzIDxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogbW9ub3NwYWNlOyI+UHJvZ3JhbTwvc3Bhbj48Y29kZSBjbGFzcz0iY29kZSI+I2dldEV4dGVuZGVkTGVuZ3RoKEFTVE5vZGUpPC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9ImNvZGUiPlByb2dyYW0jZ2V0RXh0ZW5kZWRTdGFydFBvc2l0aW9uKEFTVE5vZGUpPC9jb2RlPgpjYW4gYmUgdXNlZCB0byByZXRyaWV2ZSB0aGUgcmFuZ2Ugb2YgYSBub2RlIHRoYXQgd291bGQKY29udGFpbnMgcHJlY2VkaW5nIGFuZCB0cmFpbGluZyBjb21tZW50cyBhbmQgd2hpdGVzcGFjZXMuCjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KPGRpdj4KPGRpdj4KPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoOyI+Jm5ic3A7Q29uY2x1c2lvbnMKPC9oMj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPHA+VGhpcyBhcnRpY2xlIGhhcyBzaG93biBob3cgdG8gdXNlIHRoZSBFY2xpcHNlIEFTVCBmb3Igc3RhdGljCmNvZGUgYW5hbHlzaXMgYW5kIGNvZGUKbWFuaXB1bGF0aW9uIGlzc3Vlcy4gSXQgdG91Y2hlZCB0aGUgUEhQIE1vZGVsLCBleHBsYWluZWQgQmluZGluZ3MgYW5kCnNob3dlZCBob3cgdG8Kc3RvcmUgY2hhbmdlcyBtYWRlIHRvIHRoZSBBU1QgYmFjayBpbnRvIFBIUCBzb3VyY2UgY29kZS48L3A+CjxwPkZvciByZW1hcmtzLCBxdWVzdGlvbnMsIGV0Yy4gZW50ZXIgYSBjb21tZW50IGluIHRoZSBidWd6aWxsYQplbnRyeSBvZiB0aGlzIGFydGljbGUKWzxhIGhyZWY9IiNiaWItYXJ0aWNsZS1idWd6aWxsYSI+NjwvYT5dLjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9ImJpYmxpb2dyYXBoeSI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+CjxkaXY+CjxkaXY+CjxoMiBjbGFzcz0idGl0bGUiPjxhIG5hbWU9ImJpbi1yZXNvdXJjZXMiPjwvYT5SZXNvdXJjZXM8L2gyPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJiaWJsaW9lbnRyeSI+PGEgbmFtZT0iYmliLWV4YW1wbGUtcHJvamVjdCI+PC9hPgo8cD5bMV0gPHNwYW4gY2xhc3M9ImJpYmxpb3NvdXJjZSI+RG93bmxvYWQgdGhlIDxhIGhyZWY9Imh0dHA6Ly9lYXJ0aWNsZWFzdC5zb3VyY2Vmb3JnZS5uZXQvbmV0LnNvdXJjZWZvcmdlLmVhcnRpY2xlYXN0LmFwcF8xLjAuMC56aXAiIHRhcmdldD0iX25ldyI+ClBhY2tlZCBFeGFtcGxlIFByb2plY3Q8L2E+LiBVc2UgdGhlIG9wdGlvbiAiRXhpc3RpbmcgUHJvamVjdHMKaW50byBXb3Jrc3BhY2UiIGZyb20gdGhlICJJbXBvcnQiIFdpemFyZCB0byBhZGQgaXQKdG8geW91ciB3b3Jrc3BhY2UuIDwvc3Bhbj48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJiaWJsaW9lbnRyeSI+PGEgbmFtZT0iYmliLWV4YW1wbGUtdXBkYXRlIj48L2E+CjxwPlsyXSA8c3BhbiBjbGFzcz0iYmlibGlvc291cmNlIj5UbyBpbnN0YWxsIHRoZQpwbHVnLWluLCBvYnRhaW4gdXNpbmcgdGhlIEVjbGlwc2UgVXBkYXRlIE1hbmFnZXIuIFVwZGF0ZQpTaXRlOiBodHRwOi8vZWFydGljbGVhc3Quc291cmNlZm9yZ2UubmV0L3VwZGF0ZS4gPC9zcGFuPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9ImJpYmxpb2VudHJ5Ij48YSBuYW1lPSJiaWItanRzIj48L2E+CjxwPlszXSA8c3BhbiBjbGFzcz0iYmlibGlvc291cmNlIj48YSBocmVmPSJodHRwOi8vZWNsaXBzZWNvbi5vcmcvMjAwNS9wcmVzZW50YXRpb25zL0VjbGlwc2VDT04yMDA1X1R1dG9yaWFsMjkucGRmIiB0YXJnZXQ9Il9uZXciPlBIUCBUb29sIFNtaXRoaW5nLCBFeHRlbmRpbmcgdGhlIEVjbGlwc2UgUEhQCkRldmVsb3BtZW50IFRvb2xzIDwvYT4KLiA8L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iYmlibGlvZW50cnkiPjxhIG5hbWU9ImJpYi1qYXZhLXByYWN0aWNlcyI+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJiaWJsaW9lbnRyeSI+PGEgbmFtZT0iYmliLWFzdC12aWV3ZXIiPjwvYT4KPHA+WzRdJm5ic3A7PHNwYW4gY2xhc3M9ImJpYmxpb3NvdXJjZSI+PGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9wZHQvYXN0dmlldy9hc3R2aWV3LnBocCIgdGFyZ2V0PSJfbmV3Ij5BU1QgVmlld2VyIFBsdWctaW4gPC9hPgouIDwvc3Bhbj48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJiaWJsaW9lbnRyeSI+PGEgbmFtZT0iYmliLXZpc2l0b3ItcGF0dGVybiI+PC9hPgo8cD5bNV0mbmJzcDs8c3BhbiBjbGFzcz0iYmlibGlvc291cmNlIj48YSBocmVmPSJodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1Zpc2l0b3JfcGF0dGVybiIgdGFyZ2V0PSJfbmV3Ij5XaWtpcGVkaWE6IFZpc2l0b3IgUGF0dGVybiA8L2E+Ci4gPC9zcGFuPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9ImJpYmxpb2VudHJ5Ij48YSBuYW1lPSJiaWItYXJ0aWNsZS1idWd6aWxsYSI+PC9hPgo8cD5bNl0mbmJzcDs8c3BhbiBjbGFzcz0iYmlibGlvc291cmNlIj48YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjA3NjgwIiB0YXJnZXQ9Il9uZXciPkFTVCBBcnRpY2xlIGJ1Z3ppbGxhIGVudHJ5PC9hPgouIDwvc3Bhbj48L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iYXBwZW5kaXgiIGxhbmc9ImVuIj4KPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoOyI+PGEgbmFtZT0iYXBwLWNvZGUtZnJhZ21lbnRzLWV4YW1wbGUiPjwvYT5BLiZuYnNwO0NvZGUKRnJhZ21lbnRzIGZvciBFeGFtcGxlIEFwcGxpY2F0aW9uIENhc2VzPC9oMj4KPHA+SW4gdGhlIGludHJvZHVjdGlvbiwgdGhyZWUgdHlwaWNhbCBjYXNlcyBmb3Igb3VyIGV4YW1wbGUKYXBwbGljYXRpb24gaGF2ZSBiZWVuCnByZXNlbnRlZCAoc2VlIDxhIGhyZWY9IiNzZWMtZXhhbXBsZS1hcHBsaWNhdGlvbiIgdGl0bGU9IkV4YW1wbGUgQXBwbGljYXRpb24iPnRoZSBzZWN0aW9uIGNhbGxlZCAmIzgyMjA7RXhhbXBsZQpBcHBsaWNhdGlvbiYjODIyMTs8L2E+KS4gQ2xhcmlmeWluZyBjb2RlIGJlZm9yZSAvIGFmdGVyIGNvZGUgc25pcHBldHMKZm9sbG93IHRvIGZ1cnRoZXIgY2xhcmlmeSB0aGVzZSBjYXNlcy48L3A+CjxkaXYgY2xhc3M9Im9yZGVyZWRsaXN0Ij4KPG9sIHR5cGU9IjEiPgo8bGk+CjxwPiA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5SZW1vdmFsIG9mCnVubmVjZXNzYXJ5IGRlY2xhcmF0aW9uLjwvZW0+PC9zcGFuPiA8L3A+CjxwPkJlZm9yZToKPC9wPgo8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50IHggPSAwOzxicj4uLi48YnI+eCA9IDIgKiAzOzwvcHJlPgo8cD5BZnRlcjoKPC9wPgo8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Li4uPGJyPmludCB4ID0gMiAqIDM7PC9wcmU+CjwvbGk+CjxsaT4KPHA+IDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPk1vdmUgb2YKZGVjbGFyYXRpb24uPC9lbT48L3NwYW4+IDwvcD4KPHA+QmVmb3JlOgo8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQgeCA9IDA7PGJyPi4uLjxicj5TeXN0ZW0ub3V0LnByaW50bG4oeCk7PGJyPi4uLjxicj54ID0gMiAqIDM7PC9wcmU+CjxwPkFmdGVyOgo8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4uLi48YnI+aW50IHggPSAwOzxicj5TeXN0ZW0ub3V0LnByaW50bG4oeCk7PGJyPi4uLjxicj54ID0gMiAqIDM7PC9wcmU+CjwvbGk+CjxsaT4KPHA+IDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPk1vdmUgb2YgYQpkZWNsYXJhdGlvbiBvZiBhIHZhcmlhYmxlLCB0aGF0IGlzIHVzZWQgd2l0aGluIGRpZmZlcmVudApibG9ja3MuPC9lbT48L3NwYW4+IDwvcD4KPHA+QmVmb3JlOgo8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj5pbnQgeCA9IDA7PGJyPi4uLjxicj50cnkgezxicj54ID0gMiAqIDM7PGJyPn0gY2F0Y2ggKC4uLikgezxicj5TeXN0ZW0ub3V0LnByaW50bG4oeCk7PGJyPn08YnI+PC9wcmU+CjxwPkFmdGVyOgo8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4uLi48YnI+aW50IHggPSAwOzxicj50cnkgezxicj54ID0gMiAqIDM7PGJyPn0gY2F0Y2ggKC4uLikgezxicj5TeXN0ZW0ub3V0LnByaW50bG4oeCk7PGJyPn08YnI+PC9wcmU+CjwvbGk+Cjwvb2w+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iYXBwZW5kaXgiIGxhbmc9ImVuIj4KPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoOyI+PGEgbmFtZT0iYXBwLWJpbmRpbmdzIj48L2E+Qi4mbmJzcDtDb21wbGV0ZSBsaXN0IG9mCmJpbmRpbmdzPC9oMj4KPHA+PC9wPgo8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPgo8dWwgdHlwZT0iZGlzYyI+CjxsaT48Y29kZSBjbGFzcz0iaW50ZXJmYWNlbmFtZSI+SUFubm90YXRpb25CaW5kaW5nPC9jb2RlPjwvbGk+CjxsaT48Y29kZSBjbGFzcz0iaW50ZXJmYWNlbmFtZSI+SU1lbWJlclZhbHVlUGFpckJpbmRpbmc8L2NvZGU+CjwvbGk+CjxsaT48Y29kZSBjbGFzcz0iaW50ZXJmYWNlbmFtZSI+SU1ldGhvZEJpbmRpbmc8L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJpbnRlcmZhY2VuYW1lIj5JUGFja2FnZUJpbmRpbmc8L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJpbnRlcmZhY2VuYW1lIj5JVHlwZUJpbmRpbmc8L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJpbnRlcmZhY2VuYW1lIj5JVmFyaWFibGVCaW5kaW5nPC9jb2RlPjwvbGk+CjwvdWw+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iYXBwZW5kaXgiIGxhbmc9ImVuIj4KPGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoOyI+PGEgbmFtZT0iYXBwLXNpbXBsZS1wcm9wZXJ0eS12YWx1ZS1jbGFzc2VzIj48L2E+Qy4mbmJzcDtTaW1wbGUKcHJvcGVydGllcyB2YWx1ZSBjbGFzc2VzPC9oMj4KPHA+IEJlbG93IHRoZSBsaXN0IG9mIGFsbCBjbGFzc2VzIG9mIHdoaWNoIHNpbXBsZSBwcm9wZXJ0eSB2YWx1ZXMKY2FuIGJlIGluc3RhbmNlIG9mIChpbgpFY2xpcHNlIHZlcnNpb24gMy4yKS4KPC9wPgo8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPgo8dWwgdHlwZT0iZGlzYyI+CjxsaT48Y29kZSBjbGFzcz0iY29kZSI+Ym9vbGVhbjwvY29kZT48L2xpPgo8bGk+PGNvZGUgY2xhc3M9ImNvZGUiPmludDwvY29kZT48L2xpPgo8bGk+PGNvZGUgY2xhc3M9ImNvZGUiPlN0cmluZzwvY29kZT48L2xpPgo8bGk+PGNvZGUgY2xhc3M9ImNvZGUiPk1vZGlmaWVyLk1vZGlmaWVyS2V5d29yZDwvY29kZT48L2xpPgo8bGk+PGNvZGUgY2xhc3M9ImNvZGUiPkFzc2lnbm1lbnQuT3BlcmF0b3I8L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJjb2RlIj5JbmZpeEV4cHJlc3Npb24uT3BlcmF0b3I8L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJjb2RlIj5Qb3N0Zml4RXhwcmVzc2lvbi5PcGVyYXRvcjwvY29kZT48L2xpPgo8bGk+PGNvZGUgY2xhc3M9ImNvZGUiPlByZWZpeEV4cHJlc3Npb24uT3BlcmF0b3I8L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJjb2RlIj5QcmltaXRpdmVUeXBlLkNvZGU8L2NvZGU+PC9saT4KPC91bD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJub3RpY2VzIj48YnI+CjwvZGl2Pgo8L2Rpdj4KPC9ib2R5PjwvaHRtbD4=