142f8c537f6f47210e2fd37989e8ca96PCEtLTU1ZjdVZkpnVXFlSGhHWEtDQXFUNW9aMmdCL21jNUNadE1hMHJBVHBnbTloRUJ1eHFvK3UweEJNMU5OMVk1Z0IwQWRTWjNNUThSck1Pa24xNGFaRHhmdmZnTE1ZdmQ2dlhQWkoxTkdRMHJSTTMzbGQ2VG5DdXowRE9lWVk1SW5YY1plTWhUMnByZ3R3K3BKalhaWlFqVTVTKzFYN05qWU1ieXRxK1NHWlZnUGhWcFZqVHc1bEtnRFJuMGVNbzhpaW1nK0NoZ2xMVk4vZ05KVS0tPjxmaC1mdW5jdGlvbj4NCm15c3FsaV9xdWVyeSgkY29ubiwgInVwZGF0ZSBzbF9wcm9kdWN0IHNldCBQX3ZpZXc9UF92aWV3KzEgd2hlcmUgUF9pZD0iLiRpZCk7DQokc3FsPSJzZWxlY3QgKiBmcm9tIHNsX3Byb2R1Y3Qsc2xfcHNvcnQgd2hlcmUgUF9zb3J0PVNfaWQgYW5kIFBfaWQ9Ii4kaWQ7DQogICRyZXN1bHQgPSBteXNxbGlfcXVlcnkoJGNvbm4sICRzcWwpOw0KICAkcm93ID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHQpOw0KICBpZiAobXlzcWxpX251bV9yb3dzKCRyZXN1bHQpID4gMCkgew0KICAgICRTX2lkPSRyb3dbIlNfaWQiXTsNCiAgICAkUF9pZD0kcm93WyJQX2lkIl07DQogICAgJFBfcGljPSRyb3dbIlBfcGljIl07DQogICAgJFBfdGFnPSRyb3dbIlBfdGFnIl07DQogICAgJFBfbWlkPSRyb3dbIlBfbWlkIl07DQoNCiAgICBzd2l0Y2ggKCRyb3dbIlBfc2VsbHR5cGUiXSkgew0KICAgIGNhc2UgMDoNCiAgICAkUF9yZXN0PTE7DQogICAgYnJlYWs7DQoNCiAgICBjYXNlIDE6DQoNCiAgICAkUF9yZXN0PWdldHJzKCJzZWxlY3QgY291bnQoQ19pZCkgYXMgQ19jb3VudCBmcm9tIHNsX2NhcmQgd2hlcmUgQ19zb3J0PSIuaW50dmFsKCRyb3dbIlBfc2VsbCJdKS4iIGFuZCBDX3VzZT0wIiwiQ19jb3VudCIpOw0KICAgIGJyZWFrOw0KDQogICAgY2FzZSAyOg0KICAgICRQX3Jlc3Q9JHJvd1siUF9yZXN0Il07DQogICAgYnJlYWs7DQogIH0NCiAgfQ0KPC9maC1mdW5jdGlvbj4NCjwhRE9DVFlQRSBodG1sPiANCjxodG1sPiANCjxoZWFkPiANCjxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPiANCjx0aXRsZT5bUF90aXRsZV0gLSDmgqjnmoTnvZHnq5nlkI3np7A8L3RpdGxlPg0KPGxpbmsgaHJlZj0ibWVkaWEvMjAxOTEyMDgxMTMwMzVlTS5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz4NCjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJbUF9kZXNjcmlwdGlvbl0iIC8+DQo8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iW1Bfa2V5d29yZHNdIiAvPg0KDQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlbXBsYXRlL3QxNC9zdGF0aWMvY29tbW9uL2Nzcy9jb21tb24yMDIxMDExNC5jc3MiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlbXBsYXRlL3QxNC9zdGF0aWMvY29tbW9uL2Nzcy9jb21tb25zbWFsbDIwMjAwNTEyLmNzcyIgLz4NCiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZW1wbGF0ZS90MTQvc3RhdGljL3BuZy9jc3MvcG5nMjAyMDA0MTgtMS5jc3MiIC8+IA0KICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZW1wbGF0ZS90MTQvc3RhdGljL2RldGFpbC9jc3Mvc2hvdzIwMjAwNDA4LTEuY3NzIiAvPg0KPHN0eWxlPg0KI2J1eSAuYWRkew0KICBoZWlnaHQ6MjVweDsgd2lkdGg6MjVweDsgbWFyZ2luOjAgNXB4IDAgNXB4O2xpbmUtaGVpZ2h0OjEwMCU7DQogIGJvcmRlcjogaGlkZGVuOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YWZmOw0KICBjb2xvcjogI0ZGRkZGRjsNCiAgZm9udC1zaXplOiAxNXB4Ow0KICBsaW5lLWhlaWdodDogMTAwJTsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBib3JkZXItcmFkaXVzOjNweDsNCn0NCg0KI2J1eSAuYWRkOmhvdmVyIHsNCiAgYm9yZGVyOiAjZjMyMTk2IHNvbGlkIDFweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsNCiAgY29sb3I6ICNmMzIxOTY7DQp9DQoNCiNhbW91bnR7DQogIGJvcmRlci10b3A6MXB4IHNvbGlkICNBQkFEQjM7DQogIGJvcmRlci1sZWZ0OjFweCBzb2xpZCAjQUJBREIzOw0KICBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkZGQ7DQogIGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7DQogIGhlaWdodDoyNHB4Ow0KICB3aWR0aDo1MHB4Ow0KICBwYWRkaW5nOjAgNXB4Ow0KICBsaW5lLWhlaWdodDoxMDAlOw0KfQ0KDQouYnV5X2J0bntiYWNrZ3JvdW5kOiAjMDA3YWZmO2NvbG9yOiAjZmZmZmZmO2JvcmRlcjogc29saWQgMXB4ICNmMzIxOTY7Ym9yZGVyLXJhZGl1czogMTBweDtwYWRkaW5nOiAxMHB4O21hcmdpbi1yaWdodDogMTBweDtmb250LXNpemU6IDE1cHg7bWFyZ2luLXRvcDogMTBweDt2ZXJ0aWNhbC1hbGlnbjp0b3A7Y3Vyc29yOnBvaW50ZXJ9DQouYnV5X2J0bjpob3ZlcntiYWNrZ3JvdW5kOiAjZmZmZmZmO2NvbG9yOiMwMDdhZmY7IH0NCjwvc3R5bGU+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgICB2YXIgbm93PW5ldyBEYXRlKCk7DQogICAgICB2YXIgc3RhcnRUaW1lPW5vdy5nZXRUaW1lKCk7DQogICAgICB2YXIgaXNMb2dpbiA9ICBmYWxzZTs7IA0KICAgICAgdmFyIGlzdmlwICA9IDA7DQogICAgICB2YXIgY29kZSA9ICI0IjsNCiAgICAgICAgICAgIHZhciBleGV0aW1lID0gIjAuMTcxIjsNCiAgICAgICAgICAgIHZhciBpc3R1aXNvbmcgPSAxOw0KICAgICAgdmFyIGtpZCA9IDE7DQogICAgICB2YXIgbG9hZHRpbWUgPSAwOw0KICAgICAgdmFyIHVpZCA9IDA7DQogICAgICB2YXIgY2xpY2tfbnVtID0gMDsNCiAgICAgIHZhciBpc3BheSA9IDA7ICAgIDwvc2NyaXB0Pg0KPC9oZWFkPiANCjxib2R5PiANCiAgICAgDQogICAgICAgIDxkaXYgY2xhc3M9J2hlYWRlcmNhdGFnZSc+DQogICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2cyB3bGltaXQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJsb2dvIiBhbHQ9IuaCqOeahOe9keermeWQjeensCIgaHJlZj0iLi8iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz0nbG9nb2ltZycgc3JjPSJtZWRpYS8yMDIxMDIwMTA4MDg0OE94LnBuZyIgYWx0PSLmgqjnmoTnvZHnq5nlkI3np7AiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbGxmZW5sIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4vIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Imt1YWkiPummlumhtTwvYT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ia3VhaSI+5YiG57G7DQogICAgICAgICAgICAgICAgICAgICAgICA8ZW0+PC9lbT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZoLWZ1bmN0aW9uPg0KDQogICRzcWw9InNlbGVjdCAqIGZyb20gc2xfcHNvcnQgd2hlcmUgU19zdWI9MCBhbmQgU19kZWw9MCBvcmRlciBieSBTX29yZGVyLFNfaWQgZGVzYyI7DQoNCiAgICAgICAgICAgICAgICBzW1sNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8bGk+PGEgaHJlZj1cIj90eXBlPXByb2R1Y3QmaWQ9Ii4kcm93WyJTX2lkIl0uIlwiIHRhcmdldD1cIl9ibGFua1wiPiIuJHJvd1siU190aXRsZSJdLiI8L2E+PC9saT4iOw0KICAgICAgICAgICAgICAgICAgICBdXQ0KICAgICAgICA8L2ZoLWZ1bmN0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzZWFyY2hkaXYiID4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoIGMtc2VhcmNoIiBpZD0iY2Qtc2VhcmNoLWZsb2F0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImtleXdvcmQtZmxvYXQiIGlzZm9udD0iMCIgdHlwZT0idGV4dCIga2V5LXR5cGU9IjAiICBhdXRvY29tcGxldGU9Im9mZiIgbmFtZT0ic2VhcmNoIiBjbGFzcz0naS1zZWFyY2gnICAgcGxhY2Vob2xkZXI9IuaQnOe0ouWFqOmDqCIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ncy1uaXUgc2VhcmNoLWJ0bicgaHJlZj0iamF2YXNjcmlwdDo7IiBrZXktdHlwZT0iMCI+PGVtPjwvZW0+PC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZHJvcGRvd24tYm94LWZsb2F0IiBjbGFzcz0iaG90LXNlYXJjaCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbiI+DQogICAgICAgICAgICAgICAgPCEtLSDmnKrnmbvlvZUgLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZoLWZ1bmN0aW9uPg0KICAgICAgaWYoJF9TRVNTSU9OWyJNX2xvZ2luIl09PSIiKXsNCiAgICAgICAgJGFwaT0iPHNwYW4gbmFtZT1cIuazqOWGjFwiIGNsYXNzPVwicmVnaXN0XCI+5rOo5YaMPC9zcGFuPiA8c3BhbiBuYW1lPVwi55m75b2VXCIgY2xhc3M9XCJyZWdpc3QtbGdcIj7nmbvlvZU8L3NwYW4+IjsNCiAgICAgIH1lbHNlew0KICAgICAgICAkYXBpPSI8YSBocmVmPVwibWVtYmVyXCIgY2xhc3M9XCJyZWdpc3RcIj4iLiRfU0VTU0lPTlsiTV9sb2dpbiJdLiI8L2E+IDxhIGhyZWY9XCJtZW1iZXIvbG9naW4ucGhwP2FjdGlvbj11bmxvZ2luXCIgY2xhc3M9XCJyZWdpc3QtbGdcIj7pgIDlh7o8L2E+IjsNCiAgICAgIH0NCiAgICA8L2ZoLWZ1bmN0aW9uPg0KDQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgDQogICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KICAgIA0KDQogICAgPCEtLeS4remDqOeahOS4nOilvy0tPg0KICAgIA0KDQo8ZGl2IGNsYXNzPSdoZWFkZXIgZmxvYXQtaGVhZGVyJz4NCiAgPGRpdiBjbGFzcz0nbmF2cyB3bGltaXQnPg0KICAgICAgICAgICAgIDxhIGNsYXNzPSJsb2dvIiBhbHQ9IuaCqOeahOe9keermeWQjeensCIgaHJlZj0iLi8iPg0KICAgICAgICAgICAgIDxpbWcgY2xhc3M9J2xvZ29pbWcnIHNyYz0ibWVkaWEvMjAyMTAyMDEwODA4NDhPeC5wbmciIGFsdD0i5oKo55qE572R56uZ5ZCN56ewIj4NCg0KICAgICAgICA8L2E+DQoNCiAgICANCiAgICA8c3BhbiBjbGFzcz0idGl0bGVmbG9hdCAiIHN0eWxlPSJtYXJnaW4tbGVmdDogNTBweDsiPltQX3RpdGxlXTwvc3Bhbj4NCg0KDQogICAgICA8L2Rpdj4NCjwvZGl2Pg0KDQoNCg0KPGRpdiBjbGFzcz0nZC1kYW9oJyBpc19tZT0iMiIga2lkPSIxIiBzY2VuZV9pZD0iMSIgc3R5bGVfaWQ9IjkiPg0KICAgIDxkaXYgY2xhc3M9J3dsaW1pdCc+DQogICAgICAgIDxhIGhyZWY9Ii4vIj7pppbpobU8L2E+DQogICAgICAgICAgICAgICAgPiA8YSBocmVmPSc/dHlwZT1wcm9kdWN0JmlkPVtTX3N1YmlkXSc+W1Nfc3VidGl0bGVdPC9hPg0KICAgICAgICAgICAgICAgICAgICAgICA+IDxhIGhyZWY9Jz90eXBlPXByb2R1Y3QmaWQ9W1NfaWRdJz5bU190aXRsZV08L2E+DQogICAgICAgICAgICAgICAgICAgICAgPiA8c3Bhbj5bUF90aXRsZV08L3NwYW4+DQogICAgPC9kaXY+DQo8L2Rpdj4NCg0KDQo8ZGl2IGNsYXNzPSdtaWRkbGUgd2xpbWl0Jz4NCiAgICAgICAgPGRpdiBjbGFzcz0nbS1sJyBzd2YgPSAiMSIgIGhlaWdodD0iNDAwMiI+DQoNCiAgICAgICAgICA8ZGl2IGNsYXNzPSdiYW5xdWFuJz4NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgPGgxIGNsYXNzPSd0aXRsZSc+W1BfdGl0bGVdPC9oMT4NCiAgICAgICAgICAgIDxlbSBjbGFzcz0nYmotY29sbGVjdCc+PGRpdiBpZD0iY29sbGVjdGlvbl9wcm9kdWN0IiBwaWQ9IltQX2lkXSI+PC9kaXY+PC9lbT4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+DQpbUF9jb250ZW50XQ0KICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtLWFib3V0IiBzdHlsZT0icGFkZGluZy10b3A6IDIwcHg7bWFyZ2luLXRvcDogMzBweDsiPg0KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icGFnZXIgcGFnZXItcm91bmQiPg0KICAgICAgICAgICAgPGxpIGNsYXNzPSJwcmV2aW91cyAiPiA8YSBocmVmPSdbUF9QdXJsXSc+5LiK5LiA5Liq77yaW1BfUHRpdGxlXTwvYT4gIDwvbGk+DQogICAgICAgICAgICA8bGkgY2xhc3M9Im5leHQgIj4gPGEgaHJlZj0nW1BfTnVybF0nPuS4i+S4gOS4qu+8mltQX050aXRsZV08L2E+ICA8L2xpPg0KICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQoNCiAgICAgICAgPGRpdiBjbGFzcz0nbS1yJz4NCiAgICAgICAgICAgIDwhLS3kuIvovb3nm7jlhbPmqKHlnZctLT4NCg0KPGRpdiBjbGFzcz0nd29yay1pbmZvJyA+DQogIDxpbWcgc3JjPSJbUF9waWNdIiBzdHlsZT0id2lkdGg6IDEwMCUiPg0KPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9J3dvcmstZG93bicgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Zm9udC1zaXplOiAxMnB4OyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMjVweDttYXJnaW46IDIwcHggMDsiPuS7t+agvO+8mu+/pTxzcGFuIHN0eWxlPSJjb2xvcjogI2ZmMDAwMDtmb250LXdlaWdodDogYm9sZDsiIGlkPSJwcmljZSI+W1BfcHJpY2VdPC9zcGFuPltQX3ZpcF08L2Rpdj4NCiAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAtMTBweDsiPltQX3F1YW5dPC9kaXY+DQogICAgICAgICAgPGZvcm0gaWQ9ImJ1eSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249ImJ1eS5waHA/dHlwZT1wcm9kdWN0aW5mbyZpZD1bUF9pZF0iPg0KICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxMHB4Ij48Yj7otK3kubDmlbDph4/vvJo8L2I+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdidXR0b24nIGNsYXNzPSdhZGQnIHZhbHVlPSctJyBvbkNsaWNrPSdqYXZhc2NyaXB0OmlmKHRoaXMuZm9ybS5hbW91bnQudmFsdWU+PTIpe3RoaXMuZm9ybS5hbW91bnQudmFsdWUtLTt9Jz4NCiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J25vJyB2YWx1ZT0nMScgaWQ9J2Ftb3VudCc+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdidXR0b24nIGNsYXNzPSdhZGQnIHZhbHVlPScrJyBpZD0ncGx1cycgb25DbGljaz0namF2YXNjcmlwdDppZih0aGlzLmZvcm0uYW1vdW50LnZhbHVlPFtQX3Jlc3RdKXt0aGlzLmZvcm0uYW1vdW50LnZhbHVlKys7fSc+DQogICAgICAgICAgICAgIO+8iOW6k+WtmO+8mjxzcGFuIGlkPSJnZ19yZXN0Ij5bUF9yZXN0dGl0bGVdPC9zcGFuPu+8iTwvcD4NCiAgICAgICAgICAgICAgW1BfZ2ddDQogIDxidXR0b24gdHlwZT0ic3VibWl0IiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyO2JvcmRlcjpub25lO2Rpc3BsYXk6IGJsb2NrOw0KICAgIG1hcmdpbjogMThweCBhdXRvOw0KICAgIHdpZHRoOiAzMDBweDsNCiAgICBoZWlnaHQ6IDU1cHg7DQogICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7DQogICAgLW1vei1ib3JkZXItcmFkaXVzOiAycHg7DQogICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAgIGJhY2tncm91bmQ6ICMwMDdhZmY7DQogICAgY29sb3I6ICNmZmY7DQogICAgZm9udC1zaXplOiAxcGM7DQogICAgbGluZS1oZWlnaHQ6IDU1cHg7DQogICAgY3Vyc29yOiBwb2ludGVyOyI+PGkgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICBtYXJnaW4tbGVmdDogLTFwYzsNCiAgICB3aWR0aDogNDdweDsNCiAgICBoZWlnaHQ6IDQwcHg7DQogICAgYmFja2dyb3VuZDogdXJsKHRlbXBsYXRlL3QxNC9zdGF0aWMvY29tbW9uL2ltYWdlL2NvbW1vbl9uZXcucG5nKSAwIC00NDZweCBuby1yZXBlYXQ7DQogICAgdmVydGljYWwtYWxpZ246IC04cHg7Ij48L2k+56uL5Y2z5LiL6L29PC9idXR0b24+DQoNCjxmaC1mdW5jdGlvbj4NCg0KDQokYXBpPSRhcGkuIjxzcGFuIHN0eWxlPVwiZGlzcGxheTpub25lXCI+Ii51bmxvZ2luX3Byb2R1Y3QoImJ0biBidG4tbGcgYnRuLXNxdWFyZWQgYnRuLXByaW1hcnkgbWFyZ2luLXJpZ2h0LTEwIiwkaWQpLiI8L3NwYW4+IjsNCiAgICAgICAgICAgICAgPC9maC1mdW5jdGlvbj4NCiAgICAgICAgICAgICAgPC9mb3JtPg0KICAgICAgICAgICAgICAgICAgDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdkLW1zZyAnID4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J2QtdmlldycgdGl0bGU9IueCuei1niI+PGkgcGlkPSJ5cXJ4bnp4cSIgY2xhc3M9J2Rvd24tbnVtIGRpYW56YW4gJz48L2k+PHNwYW4gY2xhc3M9J2R6cyc+MTEzOTwvc3Bhbj48c3BhbiBjbGFzcz0namlheWknPisxPC9zcGFuPjwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J2QtdmlldycgdGl0bGU9Iua1j+iniCI+PGkgY2xhc3M9J3ZpZXctbnVtJz48L2k+W1Bfdmlld108L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdkLXZpZXcnIHRpdGxlPSLmlLbol48iPjxpIGNsYXNzPSdjb2xsLW51bSc+PC9pPltQX2NvbGxlY3Rpb25dPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgIDwvZGl2Pg0KDQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSd3b3JrLWluZm8nID4NCiAgICAgICAgICAgICAgICAgICAgPHVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgPGxpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0nbS1sMic+5Lu35qC8PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdtLXIyJz7vv6VbUF9wcmljZV08L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J20tbDInPuWIhuexuzwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0nbS1yMic+ICBbU190aXRsZV08L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdtLWwyJz7mtY/op4ggPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdtLXIyJz5bUF92aWV3XeasoTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J20tbDInPuagh+etviA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J20tcjInIHN0eWxlPSJ3aWR0aDogMjIwcHg7dGV4dC1hbGlnbjogcmlnaHQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaC1mdW5jdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFBfdGFnPT0iIil7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXBpPSLml6AiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGFnPWV4cGxvZGUoIiAiLCRQX3RhZyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IoJGk9MDskaTxjb3VudCgkdGFnKTskaSsrKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhcGk9JGFwaS4iPGEgaHJlZj1cIj90eXBlPXByb2R1Y3QmdGFnPSIuJHRhZ1skaV0uIlwiPiIuJHRhZ1skaV0uIjwvYT4gIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmgtZnVuY3Rpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgDQoNCg0KDQoNCg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzdXBwb3J0Jz4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ncmVjb21tZW5kJz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5pyA5paw55u45YWz5L2c5ZOBICAgICAgICAgICAgICAgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Ij90eXBlPXByb2R1Y3QmaWQ9W1NfaWRdIj7mm7TlpJogPiA8L2E+DQogICAgICAgICAgICAgICANCg0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmgtZnVuY3Rpb24+DQogICAgJGk9MTsNCiAgICBmb3JlYWNoKGdldGxpc3QoInNlbGVjdCAqIGZyb20gc2xfcHJvZHVjdCB3aGVyZSBQX3NvcnQ9JFNfaWQgIG9yZGVyIGJ5IHJhbmQoKSBkZXNjIGxpbWl0IDMiKSBhcyAkcCl7ICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgc3dpdGNoKCRpKXsNCiAgICAgIGNhc2UgMToNCiAgICAgICRpY29uPSJvbmUiOw0KICAgICAgYnJlYWs7DQogICAgICBjYXNlIDI6DQogICAgICAkaWNvbj0idHdvIjsNCiAgICAgIGJyZWFrOw0KICAgICAgY2FzZSAzOg0KICAgICAgJGljb249InRocmVlIjsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgICAkYXBpPSRhcGkuIjxhIGhyZWY9XCI/dHlwZT1wcm9kdWN0aW5mbyZpZD0iLiRwWyJQX2lkIl0uIlwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiaW1nXCI+DQogICAgICAgICAgICAgICAgPGkgY2xhc3M9XCIiLiRpY29uLiJcIj48L2k+DQogICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImxhenlcIiBhbHQ9XCIiLiRwWyJQX3RpdGxlIl0uIlwiIGRhdGEtb3JpZ2luYWw9XCIiLnBpYyhzcGxpdHgoJHBbIlBfcGljIl0sInwiLDApKS4iXCIgc3JjPVwiIi5waWMoc3BsaXR4KCRwWyJQX3BpYyJdLCJ8IiwwKSkuIlwiIHN0eWxlPVwid2lkdGg6IDkwcHg7XCI+DQogICAgICAgICAgICAgIDwvYT4iOw0KICAgICRpKz0xOw0KICAgIH0NCjwvZmgtZnVuY3Rpb24+DQoNCg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICANCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQoNCg0KPGRpdiBjbGFzcz0neW91LWxpa2UnPg0KICAgIDxkaXYgY2xhc3M9J3dsaW1pdCc+DQogICAgICAgIDxkaXYgY2xhc3M9J3ktdGl0bGUnPuaCqOWPr+iDveS8muWWnOasoueahOWFtuS7luaooeadvzwvZGl2Pg0KDQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSd0LWJveCB3bGltaXQgbGlzdCc+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvbmVzIHBuZ29uZXMiPg0KDQo8ZmgtZnVuY3Rpb24+DQoNCiAgICBmb3JlYWNoKGdldGxpc3QoInNlbGVjdCAqIGZyb20gc2xfcHJvZHVjdCAgb3JkZXIgYnkgcmFuZCgpIGRlc2MgbGltaXQgOCIpIGFzICRwKXsgICAgICAgICAgICAgICAgICAgICAgICANCg0KDQogICAgJFBfY29sbGVjdGlvbj1nZXRycygic2VsZWN0IGNvdW50KENfaWQpIGFzIENfY291bnQgZnJvbSBzbF9jb2xsZXRpb24gd2hlcmUgQ19jaWQ9Ii4kcFsiUF9pZCJdLiIgYW5kIENfdHlwZT0wIiwiQ19jb3VudCIpOw0KICAgICRhcGk9JGFwaS4iPGRsIGNsYXNzPVwiYm94IHR3byBncmlkLXYgY2JveFwiIGRhdGEtaWQ9XCJhZWJiZ3JhalwiPg0KICAgIDxkZD4gDQogICAgICAgIDxhIGNsYXNzPVwiaW1nIGltZy15c1wiIHN0eWxlPVwiaGVpZ2h0OjI2MHB4O2xpbmUtaGVpZ2h0OjI2MHB4O292ZXJmbG93OmhpZGRlblwiIGhyZWY9XCI/dHlwZT1wcm9kdWN0aW5mbyZpZD0iLiRwWyJQX2lkIl0uIlwiID4NCg0KICAgICAgICA8aW1nIHRpdGxlPVwiIi4kcFsiUF90aXRsZSJdLiJcIiBjbGFzcz1cImxhenlcIiAgZGF0YS1vcmlnaW5hbD1cIiIucGljKHNwbGl0eCgkcFsiUF9waWMiXSwifCIsMCkpLiJcIiBzdHlsZT1cIndpZHRoOiAyNjBweFwiPg0KICAgICAgICA8ZGl2IGNsYXNzPVwibWFya1wiPjwvZGl2Pg0KICAgICAgICA8L2E+DQogICAgPC9kZD4NCg0KICAgIDxkdD4NCiAgICAgICA8YSBocmVmPVwiP3R5cGU9cHJvZHVjdGluZm8maWQ9Ii4kcFsiUF9pZCJdLiJcIiAgY2xhc3M9XCJidGl0bGVcIj4NCiAgICAgICAgIi4kcFsiUF90aXRsZSJdLiIgICAgICAgPC9hPg0KICAgIDwvZHQ+DQoNCiAgICA8ZGQ+DQogICAgICAgIDxzcGFuIHBpZD1cImFlYmJncmFqXCIgdHlwZT1cIjFcIiBjbGFzcz1cImNsaWNrLWRvd24gZG93biB5YmMgZG93bnBuZ1wiPjxpPjwvaT7kuIvovb08L3NwYW4+DQogICAgICAgIDxzcGFuIGNsYXNzPVwiZG93bmNvXCI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz1cImR4XCI+PGk+PC9pPiIuJHBbIlBfdmlldyJdLiI8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbGxlY3RudW1cIj48aT48L2k+Ii4kUF9jb2xsZWN0aW9uLiI8L3NwYW4+DQogICAgICAgIDwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFucXVhblwiPjwvZGl2Pg0KICAgICAgICAgICAgICAgIA0KICAgIDwvZGQ+DQoNCiAgICA8L2RsPiI7DQoNCg0KICAgIH0NCjwvZmgtZnVuY3Rpb24+DQoNCg0KICAgIA0KICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgDQogICAgICAgICAgPC9kaXY+DQoNCjwvZGl2Pg0KDQoNCjxzY3JpcHQgc3JjPSJ0ZW1wbGF0ZS90MTQvc3RhdGljLyEhaW5kZXgvanMvanF1ZXJ5LTEuNy4xLm1pbi5qcyxsaWIvc3RvcmUubGVnYWN5Lm1pbi5qcyxjb21tb24vanMvbGF6eWxvYWQubWluLmpzLGNvbW1vbi9qcy9jb21tb24yMDIxMDExNC5qcyI+PC9zY3JpcHQ+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlbXBsYXRlL3QxNC9zdGF0aWMvY3JlZGl0L2Nzcy9zaWduLWFsZXJ0LmNzcyI+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ0ZW1wbGF0ZS90MTQvc3RhdGljL2NyZWRpdC9qcy9zaWduMjAyMDA2MTguanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCBzcmM9InRlbXBsYXRlL3QxNC9zdGF0aWMvZGV0YWlsL2pzL3Nob3cyMDE5MDUyMi5qcyI+PC9zY3JpcHQ+DQoNCjxkaXYgaWQ9Im1lbmdjaGVuZyI+PC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImxvZ2luIj4NCjxkaXYgY2xhc3M9ImNsb3NlIGxvZ2luY29sc2UiPjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYXN0b25lIj4NCiAgICA8ZGl2IGNsYXNzPSJsLWxvZ28iID4NCiAgICA8aW1nIHNyYz0ibWVkaWEvMjAyMTAyMDEwODA4NDhPeC5wbmciIGFsdD0i55So5oi355m76ZmGbG9nbyIgc3R5bGU9ImhlaWdodDogIDgwcHgiPg0KICA8L2Rpdj4NCg0KPGZoLWZ1bmN0aW9uPg0KJGM9Z2V0cnMoInNlbGVjdCAqIGZyb20gc2xfY29uZmlnIik7DQppZigkY1siQ19xcW9uIl09PTEpew0KICAkYXBpPSRhcGkuIjxhIGhyZWY9XCJxcS9xcWxvZ2luLnBocD9mcm9tPSIudXJsZW5jb2RlKGdldGh0dHAoKS4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uJF9TRVJWRVJbJ1BIUF9TRUxGJ10uJz8nLiRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSkuIlwiICBjbGFzcz1cImwtcXFcIj48aT48L2k+UVE8c3BhbiBjbGFzcz1cImxvZ2lubmFtZSBcIj7nmbvlvZU8L3NwYW4+PC9hPiI7DQp9DQppZigkY1siQ193eG9uIl09PTEpew0KICAkYXBpPSRhcGkuIjxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiBvbmNsaWNrPVwib3BlbkxvZ2luKCd3ZWNoYXQnKVwiIGNsYXNzPVwibC13eFwiPjxpPjwvaT7lvq7kv6E8c3BhbiBjbGFzcz1cImxvZ2lubmFtZSBcIj7nmbvlvZU8L3NwYW4+PC9hPiI7DQp9DQo8L2ZoLWZ1bmN0aW9uPg0KDQogIDxhIGhyZWY9ImphdmFzY3JpcHQ6OyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsLWRlYWwgZGl5aWdlIj7ms6jlhozmiJbngrnlh7vnmbvlvZXku6PooajmgqjlkIzmhI/jgIrnlKjmiLfljY/orq7jgIs8L2E+DQogIDxkaXYgY2xhc3M9ImRpZmYtbG9naW4iPg0KDQo8ZmgtZnVuY3Rpb24+DQoNCg0KaWYoJGNbIkNfZHhvbiJdPT0xKXsNCiAgJGFwaT0kYXBpLiI8YSBocmVmPVwibWVtYmVyL21vYmlsZV9sb2dpbi5waHA/ZnJvbT0iLnVybGVuY29kZShnZXRodHRwKCkuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiRfU0VSVkVSWydQSFBfU0VMRiddLic/Jy4kX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pLiJcIiBjbGFzcz1cInBob25lLWxvbmdpblwiIHR5cGU9XCIxXCI+5omL5py6PHNwYW4gc3R5bGU9XCJjb2xvcjojOGE4YThhXCIgY2xhc3M9XCJsb2dpbm5hbWVcIj7nmbvlvZU8L3NwYW4+PC9hPiAiOw0KfQ0KaWYoJGNbIkNfcmVnb24iXT09MSl7DQogICRhcGk9JGFwaS4iPGEgaHJlZj1cIm1lbWJlci9sb2dpbi5waHA/ZnJvbT0iLnVybGVuY29kZShnZXRodHRwKCkuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiRfU0VSVkVSWydQSFBfU0VMRiddLic/Jy4kX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pLiJcIiBjbGFzcz1cInBob25lLWxvbmdpblwiIHR5cGU9XCIxXCI+6YKu566xPHNwYW4gc3R5bGU9XCJjb2xvcjojOGE4YThhXCIgY2xhc3M9XCJsb2dpbm5hbWVcIj7nmbvlvZU8L3NwYW4+PC9hPiI7DQp9DQoNCjwvZmgtZnVuY3Rpb24+DQoNCiAgICAgIDxhIGhyZWY9Im1lbWJlci9yZWcucGhwP2Zyb209PGZoLWZ1bmN0aW9uPiRhcGk9dXJsZW5jb2RlKGdldGh0dHAoKS4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uJF9TRVJWRVJbJ1BIUF9TRUxGJ10uJz8nLiRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSk7PC9maC1mdW5jdGlvbj4iIGNsYXNzPSJsLWRlYWwgaXNyZWciIHR5cGU9IjEiPuayoeaciei0puWPtyAgPHNwYW4+56uL5Y2z5rOo5YaMPC9zcGFuPjwvYT4NCiAgPC9kaXY+ICANCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJsLWxlZnQiPg0KICAgIDxkaXYgY2xhc3M9InRpdGxlIj7mgqjnmoTnvZHnq5nlkI3np7A8L2Rpdj4NCiAgICA8dWw+DQogICAgICAgIDxsaT48aSBjbGFzcz0iaTEiPjwvaT7mtbfph4/liJvmhI/mqKHmnb/vvIzmu6HotrPmgqjnmoTpnIDmsYI8L2xpPg0KICAgICAgICA8bGk+PGkgY2xhc3M9ImkyIj48L2k+5a6e55So5piT5L+u5pS577yM5o+Q5Y2H5oKo55qE5pWI546HPC9saT4NCiAgICAgICAgPGxpPjxpIGNsYXNzPSJpMyI+PC9pPumrmOi0qOmHj+eyvuWTgeeDreeCueWGheWuueavj+aXpeabtOaWsDwvbGk+DQogICAgICAgIDxsaT48aSBjbGFzcz0iaTQiPjwvaT7kuJPkuJrlrqLmnI3mjqXlvoXvvIzlj4rml7bop6PlhrPpl67popg8L2xpPg0KICAgIDwvdWw+DQo8L2Rpdj4NCjwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0iZm9vdGVyIj4NCiAgICAgPGRpdiBjbGFzcz0iZm9vdGVyMSI+DQogICAgICAgIDxkaXYgY2xhc3M9InVzZXItc2F5Ij4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJib3giPjxpIGNsYXNzPSJpLTEiPjwvaT7ku7fmoLzkvJjmg6A8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYm94Ij48aSBjbGFzcz0iaS0yIj48L2k+6Ie06Ie757K+5ZOBPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJveCI+PGkgY2xhc3M9ImktMyI+PC9pPumrmOi0qOWUruWQjjwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJib3giPjxpIGNsYXNzPSJpLTQiPjwvaT4xMDAl5ruh5oSPPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJveDEiPjxpIGNsYXNzPSJpLTUiPjwvaT7mj5DljYfmlYjnjoc8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9ImZvb3RlcjIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ3bGltaXQiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWxvZ28iID4NCiAgICAgICAgICAgICAgPGltZyBzcmM9Im1lZGlhLzIwMTkxMTI2MjI0MzUyV2YuanBnIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDttYXJnaW4tdG9wOiAxMHB4OyI+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbXBhbnktc2F5Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0ZW1lbnRzIj4NCjxmaC1mdW5jdGlvbj4NCg0KZm9yZWFjaChnZXRsaXN0KCJzZWxlY3QgKiBmcm9tIHNsX3RleHQgb3JkZXIgYnkgVF9pZCBkZXNjIikgYXMgJHQpew0KICAgICRhcGk9JGFwaS4iPGEgcmVsPVwibm9mb2xsb3dcIiBocmVmPVwiP3R5cGU9dGV4dCZpZD0iLiR0WyJUX2lkIl0uIlwiIHRhcmdldD1cIl9ibGFua1wiPiIuJHRbIlRfdGl0bGUiXS4iPC9hPjxzcGFuPnw8L3NwYW4+ICI7DQp9DQokYXBpPSBzdWJzdHIoJGFwaSwwLHN0cmxlbigkYXBpKS0xNSk7DQo8L2ZoLWZ1bmN0aW9uPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29weXJpZ2h0cyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vYmVpYW4ubWlpdC5nb3YuY24vIiB0YXJnZXQ9Il9ibGFuayI+5LqsSUNQ5aSHMDAwMDAwMDDlj7c8L2E+DQoNCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InR1a3VwcHQtcmlnaHQiIHN0eWxlPSJ3aWR0aDo1MDBweCI+Q29weXJpZ2h0IMKpIDIwMTUtMjAyMCDmgqjnmoTlhazlj7jlkI3np7Ag54mI5p2D5omA5pyJPC9zcGFuPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQo8bGluayBocmVmPSdjc3MvbGFucmVuemhpamlhLmNzcycgcmVsPSdzdHlsZXNoZWV0JyB0eXBlPSd0ZXh0L2NzcycgLz48c2NyaXB0IHNyYz0nanMvanF1ZXJ5LktpblNsaWRlc2hvdy0xLjIuMS5taW4uanMnIHR5cGU9J3RleHQvamF2YXNjcmlwdCc+PC9zY3JpcHQ+PGRpdiBpZD0nb25saW5lX3FxX2xheWVyJyBzdHlsZT0nei1pbmRleDoyMDAwOyc+PGRpdiBpZD0nb25saW5lX3FxX3RhYic+PGRpdiBjbGFzcz0nb25saW5lX2ljb24nPjxhIGlkPSdmbG9hdFNob3cnIHN0eWxlPSdkaXNwbGF5OmJsb2NrOycgaHJlZj0namF2YXNjcmlwdDp2b2lkKDApOyc+Jm5ic3A7PC9hPjxhICBpZD0nZmxvYXRIaWRlJyBzdHlsZT0nZGlzcGxheTpub25lOycgaHJlZj0namF2YXNjcmlwdDp2b2lkKDApOyc+Jm5ic3A7PC9hPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J29ubGluZVNlcnZpY2UnIHN0eWxlPSdkaXNwbGF5Om5vbmUnPjxkaXYgY2xhc3M9J29ubGluZV93aW5kb3dzIG92ZXJ6Jz48ZGl2IGNsYXNzPSdvbmxpbmVfd190b3AnPjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV93X2Mgb3ZlcnonPjxkaXYgY2xhc3M9J29ubGluZV9iYXIgZXhwYW5kJyBpZD0nb25saW5lU29ydDEnPjxoMj48YSBvbmNsaWNrPSdjaGFuZ2VPbmxpbmUoMSknPuWcqOe6v+WuouacjTwvYT48L2gyPjxkaXYgY2xhc3M9J29ubGluZV9jb250ZW50IG92ZXJ6JyBpZD0nb25saW5lVHlwZTEnPjx1bCBjbGFzcz0nb3ZlcnonPjxsaT48YSB0aXRsZT0n54K55Ye76L+Z6YeM57uZ5oiR5Y+R5raI5oGvJyBocmVmPSdodHRwOi8vd3BhLnFxLmNvbS9tc2dyZD92PTMmdWluPTEyMzEyMzEyMyZzaXRlPXFxJm1lbnU9eWVzJyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3FxX2ljb24nPuWUruWJjeWSqOivojwvYT48L2xpPjxsaT48YSB0aXRsZT0n54K55Ye76L+Z6YeM57uZ5oiR5Y+R5raI5oGvJyBocmVmPSdodHRwOi8vd3d3LnRhb2Jhby5jb20vd2Vid3cvd3cucGhwP3Zlcj0zJnRvdWlkPXRhb2JhbyZzaXRlaWQ9Y250YW9iYW8mc3RhdHVzPTEmY2hhcnNldD11dGYtOCcgdGFyZ2V0PSdfYmxhbmsnIGNsYXNzPSd3d19pY29uJz7llK7lkI7mnI3liqE8L2E+PC9saT48L3VsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV9iYXIgY29sbGFwc2UyJyBpZD0nb25saW5lU29ydDInPjxoMj48YSBvbmNsaWNrPSdjaGFuZ2VPbmxpbmUoMiknPueUteivneWuouacjTwvYT48L2gyPjxkaXYgY2xhc3M9J29ubGluZV9jb250ZW50IG92ZXJ6JyBpZD0nb25saW5lVHlwZTInPjx1bCBjbGFzcz0nb3ZlcnonPjxsaT4wMTAtMTAwODY8L2xpPjwvdWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nb25saW5lX2JhciBjb2xsYXBzZTInIGlkPSdvbmxpbmVTb3J0Myc+PGgyPjxhIG9uY2xpY2s9J2NoYW5nZU9ubGluZSgzKSc+572R56uZ5LqM57u056CBPC9hPjwvaDI+PGRpdiBjbGFzcz0nb25saW5lX2NvbnRlbnQgb3ZlcnonIGlkPSdvbmxpbmVUeXBlMyc+PHVsIGNsYXNzPSdvdmVyeic+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nanMvcXJjb2RlLm1pbi5qcyc+PC9zY3JpcHQ+PGRpdiBpZD0ncXJjb2RlJyBzdHlsZT0nbWFyZ2luOjAgMCAxMHB4IDEwcHg7Jz48L2Rpdj48c2NyaXB0PnZhciBxcmNvZGUgPSBuZXcgUVJDb2RlKCdxcmNvZGUnLCB7d2lkdGg6IDExMCxoZWlnaHQ6IDExMCxjb2xvckRhcms6ICcjMDAwMDAwJyxjb2xvckxpZ2h0OiAnI2ZmZmZmZicsY29ycmVjdExldmVsOiBRUkNvZGUuQ29ycmVjdExldmVsLkh9KTtxcmNvZGUubWFrZUNvZGUoJ2h0dHA6Ly9maGRlbW8ucy1jbXMuY24nKTs8L3NjcmlwdD48L3VsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV9iYXIgY29sbGFwc2UyJyBpZD0nb25saW5lU29ydDQnPjxoMj48YSBvbmNsaWNrPSdjaGFuZ2VPbmxpbmUoNCknPuW+ruS/oeWFrOS8l+WPtzwvYT48L2gyPjxkaXYgY2xhc3M9J29ubGluZV9jb250ZW50IG92ZXJ6JyBpZD0nb25saW5lVHlwZTQnPjx1bCBjbGFzcz0nb3ZlcnonPjxpbWcgc3JjPSdtZWRpYS8yMDE5MTEyNjIyNDM1MldmLmpwZycgd2lkdGg9JzEyMCcgLz48L3VsPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV93X2JvdHRvbSc+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+DQo8c2NyaXB0PgoJCWZ1bmN0aW9uIGFkZGNhcnQoKXsKCQkgICQuYWpheCh7CgkJICAgICAgICB0eXBlOiAiUE9TVCIsCgkJICAgICAgICB1cmw6ICJhZGRjYXJ0LnBocD90eXBlPWFkZGNhcnQmaWQ9W1BfaWRdIiwKCQkgICAgICAgIGRhdGE6ICQoIiNidXkiKS5zZXJpYWxpemUoKSwKCQkgICAgICAgIHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7CgkJICAgICAgICAgICAgaWYoZD09InN1Y2Nlc3MiKXsKCQkgICAgICAgICAgICAgIGFsZXJ0KCLliqDlhaXotK3nianovabmiJDlip8iKTsKCQkgICAgICAgICAgICB9ZWxzZXsKCQkgICAgICAgICAgICAgIGFsZXJ0KGQpOwoJCSAgICAgICAgICAgIH0KCQkgICAgICAgfQoJCSAgICAgfSk7CgkJfQoJCTwvc2NyaXB0PgoJCTwvYm9keT4gDQo8L2h0bWw+IA==