PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiCnhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIKeG1sbnM6cD0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6cG93ZXJwb2ludCIKeG1sbnM6b2E9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOmFjdGl2YXRpb24iCnhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KCjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KPG1ldGEgbmFtZT1Qcm9nSWQgY29udGVudD1Qb3dlclBvaW50LlNsaWRlPgo8bWV0YSBuYW1lPUdlbmVyYXRvciBjb250ZW50PSJNaWNyb3NvZnQgUG93ZXJQb2ludCAxMCI+CjxsaW5rIHJlbD1GaWxlLUxpc3QgaHJlZj0iRWNsaXBzZUNvbjIwMDZfU2hvcnRUYWxrX2ZpbGVzL2ZpbGVsaXN0LnhtbCI+CjxsaW5rIHJlbD1QcmV2aWV3IGhyZWY9IkVjbGlwc2VDb24yMDA2X1Nob3J0VGFsa19maWxlcy9wcmV2aWV3LndtZiI+CjxsaW5rIHJlbD1FZGl0LVRpbWUtRGF0YSBocmVmPSJFY2xpcHNlQ29uMjAwNl9TaG9ydFRhbGtfZmlsZXMvZWRpdGRhdGEubXNvIj4KPHRpdGxlPldoYXQncyBOZXcgaW4gVU1MMj88L3RpdGxlPgo8IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4KIDxvOkRvY3VtZW50UHJvcGVydGllcz4KICA8bzpTdWJqZWN0PlNob3J0IFRhbGs8L286U3ViamVjdD4KICA8bzpBdXRob3I+S2VubiBIdXNzZXk8L286QXV0aG9yPgogIDxvOkxhc3RBdXRob3I+a2h1c3NleTwvbzpMYXN0QXV0aG9yPgogIDxvOlJldmlzaW9uPjM2NzwvbzpSZXZpc2lvbj4KICA8bzpUb3RhbFRpbWU+MTU1NTQ8L286VG90YWxUaW1lPgogIDxvOkNyZWF0ZWQ+MjAwMi0wOC0yM1QxNToyNjowOFo8L286Q3JlYXRlZD4KICA8bzpMYXN0U2F2ZWQ+MjAwNi0wNC0xN1QxOToxMzozMlo8L286TGFzdFNhdmVkPgogIDxvOldvcmRzPjQ4NjwvbzpXb3Jkcz4KICA8bzpQcmVzZW50YXRpb25Gb3JtYXQ+T24tc2NyZWVuIFNob3c8L286UHJlc2VudGF0aW9uRm9ybWF0PgogIDxvOkNvbXBhbnk+SUJNIFJhdGlvbmFsIFNvZnR3YXJlPC9vOkNvbXBhbnk+CiAgPG86Qnl0ZXM+OTMyMTI8L286Qnl0ZXM+CiAgPG86UGFyYWdyYXBocz4xMjI8L286UGFyYWdyYXBocz4KICA8bzpTbGlkZXM+MTQ8L286U2xpZGVzPgogIDxvOk5vdGVzPjE8L286Tm90ZXM+CiAgPG86VmVyc2lvbj4xMC42NzM1PC9vOlZlcnNpb24+CiA8L286RG9jdW1lbnRQcm9wZXJ0aWVzPgogPG86T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4KICA8bzpTaG93UmV2aWV3aW5nVG9vbGJhci8+CiAgPG86UGl4ZWxzUGVySW5jaD44MDwvbzpQaXhlbHNQZXJJbmNoPgogPC9vOk9mZmljZURvY3VtZW50U2V0dGluZ3M+CjwveG1sPjwhW2VuZGlmXS0tPgo8bGluayByZWw9UHJlc2VudGF0aW9uLVhNTCBocmVmPSJFY2xpcHNlQ29uMjAwNl9TaG9ydFRhbGtfZmlsZXMvcHJlcy54bWwiPgo8bWV0YSBuYW1lPURlc2NyaXB0aW9uIGNvbnRlbnQ9IjQvMTcvMjAwNjogV2hhdJJzIE5ldyBpbiBVTUwyPyI+CjxtZXRhIGh0dHAtZXF1aXY9ZXhwaXJlcyBjb250ZW50PTA+CjwhW2lmICFwcHRdPjxzY3JpcHQ+CjwhLS0KCXZhciB2ZXIgPSAwLCBhcHBWZXIgPSBuYXZpZ2F0b3IuYXBwVmVyc2lvbiwgbXNpZSA9IGFwcFZlci5pbmRleE9mKCAiTVNJRSAiICkKCXZhciBtc2llV2luMzEgPSAoYXBwVmVyLmluZGV4T2YoICJXaW5kb3dzIDMuMSIgKSA+PSAwKSwgaXNNYWMgPSAoYXBwVmVyLmluZGV4T2YoIk1hY2ludG9zaCIpID49IDApCglpZiggbXNpZSA+PSAwICkKCQl2ZXIgPSBwYXJzZUZsb2F0KCBhcHBWZXIuc3Vic3RyaW5nKCBtc2llKzUsIGFwcFZlci5pbmRleE9mICggIjsiLCBtc2llICkgKSApCgllbHNlCgkJdmVyID0gcGFyc2VJbnQoIGFwcFZlciApCglicm93c2VyU3VwcG9ydGVkPTAKCWlmKCAhaXNNYWMgJiYgdmVyID49IDQgJiYgbXNpZSA+PSAwICkgewoJCWJyb3dzZXJTdXBwb3J0ZWQ9MQoJCXdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKCAnRWNsaXBzZUNvbjIwMDZfU2hvcnRUYWxrX2ZpbGVzL2ZyYW1lLmh0bWwnK2RvY3VtZW50LmxvY2F0aW9uLmhhc2ggKQoJfQovLy0tPgo8L3NjcmlwdD4KPCFbZW5kaWZdPgo8L2hlYWQ+Cgo8Ym9keT4KPHNjcmlwdD48IS0tCgppZiggYnJvd3NlclN1cHBvcnRlZCApCglkb2N1bWVudC53cml0ZWxuKCc8ZGl2IHN0eWxlPSJ2aXNpYmlsaXR5OmhpZGRlbiI+Jyk7CgovLy0tPjwvc2NyaXB0Pjxmb250IGZhY2U9QXJpYWwgc2l6ZT0yPjxiPgoKPHA+VGhpcyBwcmVzZW50YXRpb24gY29udGFpbnMgY29udGVudCB0aGF0IHlvdXIgYnJvd3NlciBtYXkgbm90IGJlIGFibGUgdG8gc2hvdwpwcm9wZXJseS4gVGhpcyBwcmVzZW50YXRpb24gd2FzIG9wdGltaXplZCBmb3IgbW9yZSByZWNlbnQgdmVyc2lvbnMgb2YgTWljcm9zb2Z0CkludGVybmV0IEV4cGxvcmVyLjwvcD4KCjxwPklmIHlvdSB3b3VsZCBsaWtlIHRvIHByb2NlZWQgYW55d2F5LCBjbGljayA8YQpocmVmPSJFY2xpcHNlQ29uMjAwNl9TaG9ydFRhbGtfZmlsZXMvZnJhbWUuaHRtbCI+aGVyZTwvYT4uPC9wPgoKPC9iPjwvZm9udD48c2NyaXB0PjwhLS0KCmlmKCBicm93c2VyU3VwcG9ydGVkICkKCWRvY3VtZW50LndyaXRlbG4oJzwvZGl2PicpOwoKLy8tLT48L3NjcmlwdD4KPC9ib2R5PgoKPC9odG1sPgo=