We Build Ai
For Your Needs!
-
Ai Workflow Enhancement & Automation
-
Ai Scaled Marketing & Advertisement
-
Ai Phone and CRM Staff
-
Ai Training and Education
-
Ai Opportunity Scoping
-
Ai Workflow Enhancement & Automation
-
Ai Scaled Marketing & Advertisement
-
Ai Phone and CRM Staff
-
Ai Training and Education
-
Ai Opportunity Scoping
Lets Discuss Your Needs
Select a Date
Select a Time Slot
Enter Your Details
Select Time Zone
Pioneering an AI clinical copilot with Penda Health
PCEtLSBTdGFydCBvZiBJbnRlcmFjdGl2ZSBBbmFseXNpcyAtLT48ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1hbmFseXNpcy1jb250YWluZXIiIGlkPSJwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMiPjxzdHlsZT5AaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Sb2JvdG86d2dodEA0MDA7NzAwJmRpc3BsYXk9c3dhcCcpOyNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXN7Zm9udC1mYW1pbHk6J1JvYm90bycsc2Fucy1zZXJpZjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzAwMDtwYWRkaW5nOjQwcHg7bWFyZ2luOjAgYXV0bzttYXgtd2lkdGg6MTAwJTt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAuYW5hbHlzaXMtY29udGVudC13cmFwcGVye21heC13aWR0aDo5MDBweDttYXJnaW46MCBhdXRvO2JvcmRlcjoycHggc29saWQgIzAwMDtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjQwcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JveC1zaGFkb3c6MCA0cHggMTVweCByZ2JhKDAsMCwwLDAuMSk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NDBweDt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyBoMSwjcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIGgyLCNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgaDMsI3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyBoNHt0ZXh0LWFsaWduOmxlZnQ7bWFyZ2luOjAgMCAyMHB4IDA7bGluZS1oZWlnaHQ6MS4zO30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIGgxe2ZvbnQtc2l6ZTozMnB4O2ZvbnQtd2VpZ2h0OjcwMDtib3JkZXItYm90dG9tOjJweCBzb2xpZCAjMDAwO3BhZGRpbmctYm90dG9tOjE1cHg7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgaDJ7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NzAwO2JvcmRlci1ib3R0b206MnB4IHNvbGlkICM5OTk7cGFkZGluZy1ib3R0b206MTBweDt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyBoM3tmb250LXNpemU6MjBweDtmb250LXdlaWdodDo3MDA7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgcHtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxLjY7bWFyZ2luOjAgMCAxNXB4IDA7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLmludHJvLXBhcmFncmFwaHtmb250LXNpemU6MThweDtjb2xvcjojMzMzO30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC5jdGEtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQtY29sb3I6IzAwMDtjb2xvcjojZmZmO3BhZGRpbmc6MTJweCAyNHB4O2JvcmRlci1yYWRpdXM6OHB4O3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGVhc2UsYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLmN0YS1idXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMzMzO3RyYW5zZm9ybTpzY2FsZSgxLjA1KTt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAuc3VtbWFyeS10YWJsZXt3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTttYXJnaW4tdG9wOjIwcHg7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLnN1bW1hcnktdGFibGUgdGgsI3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAuc3VtbWFyeS10YWJsZSB0ZHtib3JkZXI6MXB4IHNvbGlkICNjY2M7cGFkZGluZzoxMnB4O3RleHQtYWxpZ246bGVmdDt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAuc3VtbWFyeS10YWJsZSB0aHtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY4Zjg7Zm9udC13ZWlnaHQ6NzAwO30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC5oaWdobGlnaHQtbWV0cmlje2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MjBweDtjb2xvcjojMDAwO30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC5kZXNpZ24tcHJpbmNpcGxlLWdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maXQsbWlubWF4KDI1MHB4LDFmcikpO2dhcDoyMHB4O21hcmdpbi10b3A6MjBweDt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAucHJpbmNpcGxlLWNhcmR7Ym9yZGVyOjJweCBzb2xpZCAjMDAwO2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6MjBweDtiYWNrZ3JvdW5kOiNmOWY5Zjk7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLnByaW5jaXBsZS1jYXJkIGg0e21hcmdpbi10b3A6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC5pY29uLXN2Z3t3aWR0aDoyNHB4O2hlaWdodDoyNHB4O2ZpbGw6bm9uZTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAudHJhZmZpYy1saWdodC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoyMHB4O3BhZGRpbmc6MjBweDtiYWNrZ3JvdW5kOiNlZWU7Ym9yZGVyLXJhZGl1czo4cHg7bWFyZ2luLXRvcDoyMHB4O30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC50cmFmZmljLWxpZ2h0e3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjJweCBzb2xpZCAjMDAwO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC50cmFmZmljLWxpZ2h0IC50b29sdGlwLXRleHR7dmlzaWJpbGl0eTpoaWRkZW47d2lkdGg6MjAwcHg7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzoxMHB4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTtib3R0b206MTI1JTtsZWZ0OjUwJTttYXJnaW4tbGVmdDotMTAwcHg7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzO30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC50cmFmZmljLWxpZ2h0OmhvdmVyIC50b29sdGlwLXRleHR7dmlzaWJpbGl0eTp2aXNpYmxlO29wYWNpdHk6MTt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAubGlnaHQtcmVke2JhY2tncm91bmQtY29sb3I6Izk5OTt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAubGlnaHQteWVsbG93e2JhY2tncm91bmQtY29sb3I6I2NjYzt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAubGlnaHQtZ3JlZW57YmFja2dyb3VuZC1jb2xvcjojZjBmMGYwO30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC5yb2ktY2FsY3VsYXRvcntib3JkZXI6MnB4IHNvbGlkICMwMDA7cGFkZGluZzoyMHB4O2JvcmRlci1yYWRpdXM6OHB4O21hcmdpbi10b3A6MjBweDtiYWNrZ3JvdW5kOiNmOGY4Zjg7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLnJvaS1jYWxjdWxhdG9yIC5mb3JtLWdyb3Vwe21hcmdpbi1ib3R0b206MTVweDt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAucm9pLWNhbGN1bGF0b3IgbGFiZWx7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjVweDtmb250LXdlaWdodDo3MDA7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLnJvaS1jYWxjdWxhdG9yIGlucHV0e3dpZHRoOjEwMCU7cGFkZGluZzoxMnB4O2JvcmRlcjoycHggc29saWQgIzAwMDtib3JkZXItcmFkaXVzOjhweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLnJvaS1jYWxjdWxhdG9yIC5yZXN1bHQtYXJlYXttYXJnaW4tdG9wOjIwcHg7cGFkZGluZzoyMHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MnB4IGRhc2hlZCAjMDAwO2JvcmRlci1yYWRpdXM6OHB4O3RleHQtYWxpZ246Y2VudGVyO30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC5yb2ktY2FsY3VsYXRvciBoNHttYXJnaW4tdG9wOjA7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgI3JvaS1vdXRwdXR7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NzAwO30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC50cmVuZC1jaGFydC1jb250YWluZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MzAwcHg7Ym9yZGVyOjJweCBzb2xpZCAjMDAwO2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6MjBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDoyMHB4O30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC5jaGFydC1iYXJ7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjQwcHg7d2lkdGg6MTVweDtiYWNrZ3JvdW5kLWNvbG9yOiMzMzM7dHJhbnNpdGlvbjpoZWlnaHQgMXMgZWFzZS1vdXQ7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLmNoYXJ0LWJhci5ub24tYWl7YmFja2dyb3VuZC1jb2xvcjojOTk5O30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC5jaGFydC1heGlze3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6I2NjYzt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAueC1heGlze3dpZHRoOjEwMCU7aGVpZ2h0OjJweDtib3R0b206MzhweDtsZWZ0OjA7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLnktYXhpc3t3aWR0aDoycHg7aGVpZ2h0OmNhbGMoMTAwJSAtIDQwcHgpO3RvcDowO2xlZnQ6MjBweDt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAueS1sYWJlbHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi01cHg7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b207Zm9udC1zaXplOjEycHg7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLngtbGFiZWx7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjEwcHg7Zm9udC1zaXplOjEycHg7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLmxlZ2VuZHtkaXNwbGF5OmZsZXg7Z2FwOjIwcHg7bWFyZ2luLXRvcDoxMHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLmxlZ2VuZC1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweDtmb250LXNpemU6MTRweDt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAubGVnZW5kLWNvbG9ye3dpZHRoOjE1cHg7aGVpZ2h0OjE1cHg7Ym9yZGVyOjFweCBzb2xpZCAjMDAwO30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC5hY2NvcmRpb24gLmFjY29yZGlvbi1pdGVte2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLmFjY29yZGlvbiAuYWNjb3JkaW9uLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiNmOGY4Zjg7Y29sb3I6IzAwMDtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjE4cHg7d2lkdGg6MTAwJTtib3JkZXI6bm9uZTt0ZXh0LWFsaWduOmxlZnQ7b3V0bGluZTpub25lO2ZvbnQtc2l6ZToxOHB4O2ZvbnQtd2VpZ2h0OjcwMDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC40cyBlYXNlO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLmFjY29yZGlvbiAuYWNjb3JkaW9uLWJ1dHRvbi5hY3RpdmUsI3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAuYWNjb3JkaW9uIC5hY2NvcmRpb24tYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U3ZTdlNzt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAuYWNjb3JkaW9uIC5hY2NvcmRpb24tY29udGVudHtwYWRkaW5nOjAgMThweDtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO21heC1oZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47dHJhbnNpdGlvbjptYXgtaGVpZ2h0IDAuM3MgZWFzZS1vdXQ7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLmFjY29yZGlvbiAuaWNvbi1wbHVzLW1pbnVze2ZvbnQtc2l6ZToyNHB4O3RyYW5zaXRpb246dHJhbnNmb3JtIDAuM3MgZWFzZTt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAuYWNjb3JkaW9uIC5hY2NvcmRpb24tYnV0dG9uLmFjdGl2ZSAuaWNvbi1wbHVzLW1pbnVze3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC5wb3dlcmVkLWJ5e3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6NDBweDtmb250LXNpemU6MTRweDtjb2xvcjojNjY2O30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC5wb3dlcmVkLWJ5IGF7Y29sb3I6IzAwMDtmb250LXdlaWdodDo3MDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpeyNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXN7cGFkZGluZzoyMHB4O30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIC5hbmFseXNpcy1jb250ZW50LXdyYXBwZXJ7cGFkZGluZzoyMHB4O30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIGgxe2ZvbnQtc2l6ZToyOHB4O30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIGgye2ZvbnQtc2l6ZToyMnB4O30jcGVuZGEtaGVhbHRoLWFpLWFuYWx5c2lzIHB7Zm9udC1zaXplOjE1cHg7fSNwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMgLnRyYWZmaWMtbGlnaHQtY29udGFpbmVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9I3BlbmRhLWhlYWx0aC1haS1hbmFseXNpcyAudHJhZmZpYy1saWdodCAudG9vbHRpcC10ZXh0e2xlZnQ6MDttYXJnaW4tbGVmdDowO3dpZHRoOjEwMCU7fX08L3N0eWxlPjxkaXYgY2xhc3M9ImFuYWx5c2lzLWNvbnRlbnQtd3JhcHBlciI+PGgxPkVudGVycHJpc2UgQUkgQW5hbHlzaXM6IFJlYWwtV29ybGQgQ2xpbmljYWwgQ29waWxvdHMgLSBBIERlZXAgRGl2ZSBpbnRvIHRoZSBQZW5kYSBIZWFsdGggU3R1ZHk8L2gxPjxwIGNsYXNzPSJpbnRyby1wYXJhZ3JhcGgiPlRoZSBjaGFzbSBiZXR3ZWVuIEFJJ3MgcG90ZW50aWFsIGluIGNvbnRyb2xsZWQgbGFiIGVudmlyb25tZW50cyBhbmQgaXRzIHRhbmdpYmxlIHZhbHVlIGluIHRoZSBtZXNzeSByZWFsaXR5IG9mIGVudGVycHJpc2Ugb3BlcmF0aW9ucyBpcyB0aGUgc2luZ2xlIGdyZWF0ZXN0IGNoYWxsZW5nZSBpbiBBSSBhZG9wdGlvbiB0b2RheS4gQSBncm91bmRicmVha2luZyBzdHVkeSwgIkFJLWJhc2VkIENsaW5pY2FsIERlY2lzaW9uIFN1cHBvcnQgZm9yIFByaW1hcnkgQ2FyZTogQSBSZWFsLVdvcmxkIFN0dWR5LCIgYnkgUm9iZXJ0IEtvcm9tLCBTYXJhaCBLaXB0aW5uZXNzLCBhbmQgY29sbGVhZ3VlcyBmcm9tIFBlbmRhIEhlYWx0aCwgTmFpcm9iaSBDb3VudHksIGFuZCBPcGVuQUksIHByb3ZpZGVzIGEgcG93ZXJmdWwgYmx1ZXByaW50IGZvciBicmlkZ2luZyB0aGlzIGdhcC4gVGhpcyBhbmFseXNpcyBmcm9tIE93bllvdXJBSS5jb20gZGVjb25zdHJ1Y3RzIHRoZWlyIGZpbmRpbmdzIHRvIG9mZmVyIGFjdGlvbmFibGUgc3RyYXRlZ2llcyBmb3IgYW55IGVudGVycHJpc2UgbG9va2luZyB0byBkZXBsb3kgZWZmZWN0aXZlLCBodW1hbi1jZW50cmljIEFJIGNvcGlsb3RzLjwvcD48ZGl2PjxhIGhyZWY9Imh0dHBzOi8vb3dueW91cmFpLmNvbS8jQ2FsZW5kYXIiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iY3RhLWJ1dHRvbiI+Qm9vayBhIE1lZXRpbmcgdG8gQ3VzdG9taXplIHRoZXNlIEFJIEluc2lnaHRzPC9hPjwvZGl2PjxoMj5FeGVjdXRpdmUgU3VtbWFyeTogRnJvbSBDbGluaWNhbCBDYXJlIHRvIEVudGVycHJpc2UgVmFsdWU8L2gyPjxwPlRoaXMgcmVzZWFyY2ggZXZhbHVhdGVzICJBSSBDb25zdWx0LCIgYW4gTExNLXBvd2VyZWQgdG9vbCBkZXNpZ25lZCB0byBhY3QgYXMgYSBzYWZldHkgbmV0IGZvciBjbGluaWNpYW5zIGF0IFBlbmRhIEhlYWx0aCwgYSBuZXR3b3JrIG9mIHByaW1hcnkgY2FyZSBjbGluaWNzIGluIEtlbnlhLiBJdCB3YXMgYSBwcmFnbWF0aWMgc3R1ZHkgb2YgbmVhcmx5IDQwLDAwMCBwYXRpZW50IHZpc2l0cywgY29tcGFyaW5nIG91dGNvbWVzIGZvciBjbGluaWNpYW5zIHdpdGggYW5kIHdpdGhvdXQgYWNjZXNzIHRvIHRoZSBBSS4gVGhlIHJlc3VsdHMgb2ZmZXIgYSBjb21wZWxsaW5nIGNhc2UgZm9yIHRoZSBlbnRlcnByaXNlIGFkb3B0aW9uIG9mIHNpbWlsYXIgQUkgImNvcGlsb3QiIHN5c3RlbXMsIGRlbW9uc3RyYXRpbmcgbm90IGp1c3QgdGhlb3JldGljYWwgcHJvbWlzZSBidXQgbWVhc3VyYWJsZSwgcmVhbC13b3JsZCBpbXBhY3Qgb24gcXVhbGl0eSBhbmQgcGVyZm9ybWFuY2UuPC9wPjxoMz5BdCBhIEdsYW5jZTogS2V5IFBlcmZvcm1hbmNlIE1ldHJpY3MgUmVidWlsdCBmb3IgRW50ZXJwcmlzZSBDb250ZXh0PC9oMz48dGFibGUgY2xhc3M9InN1bW1hcnktdGFibGUiIGFyaWEtbGFiZWw9IlN1bW1hcnkgb2YgS2V5IFBlcmZvcm1hbmNlIE1ldHJpY3MgZnJvbSB0aGUgUGVuZGEgSGVhbHRoIFN0dWR5Ij48dGhlYWQ+PHRyPjx0aD5QZXJmb3JtYW5jZSBBcmVhIChFbnRlcnByaXNlIEFuYWxvZ3kpPC90aD48dGg+S2V5IEZpbmRpbmcgZnJvbSBTdHVkeTwvdGg+PHRoPkVudGVycHJpc2UgUk9JIEltcGxpY2F0aW9uPC90aD48L3RyPjwvdGhlYWQ+PHRib2R5Pjx0cj48dGQ+PHN0cm9uZz5RdWFsaXR5ICZhbXA7IFJpc2sgUmVkdWN0aW9uIChSZWR1Y2VkIENyaXRpY2FsIEVycm9ycyk8L3N0cm9uZz48L3RkPjx0ZD48c3BhbiBjbGFzcz0iaGlnaGxpZ2h0LW1ldHJpYyI+MTMtMTYlPC9zcGFuPiByZWR1Y3Rpb24gaW4ga2V5IGRlY2lzaW9uLW1ha2luZyBlcnJvcnMgKHRyZWF0bWVudCAmYW1wOyBkaWFnbm9zaXMpLjwvdGQ+PHRkPkRpcmVjdGx5IHRyYW5zbGF0ZXMgdG8gbG93ZXIgb3BlcmF0aW9uYWwgcmlzaywgZmV3ZXIgY29tcGxpYW5jZSBicmVhY2hlcywgYW5kIHJlZHVjZWQgY29zdHMgYXNzb2NpYXRlZCB3aXRoIHJld29yayBvciBjcml0aWNhbCBmYWlsdXJlcy48L3RkPjwvdHI+PHRyPjx0ZD48c3Ryb25nPlByb2Nlc3MgQWRoZXJlbmNlICZhbXA7IERhdGEgSW50ZWdyaXR5IChJbXByb3ZlZCBJbmZvcm1hdGlvbiBHYXRoZXJpbmcpPC9zdHJvbmc+PC90ZD48dGQ+PHNwYW4gY2xhc3M9ImhpZ2hsaWdodC1tZXRyaWMiPjMyJTwvc3Bhbj4gcmVkdWN0aW9uIGluIGhpc3RvcnktdGFraW5nIGVycm9ycy48L3RkPjx0ZD5FbmhhbmNlZCBkYXRhIHF1YWxpdHkgYXQgdGhlIHNvdXJjZSwgbGVhZGluZyB0byBiZXR0ZXIgZG93bnN0cmVhbSBhbmFseXRpY3MsIG1vcmUgcmVsaWFibGUgYnVzaW5lc3MgaW50ZWxsaWdlbmNlLCBhbmQgbW9yZSBhY2N1cmF0ZSBBSSBtb2RlbHMuPC90ZD48L3RyPjx0cj48dGQ+PHN0cm9uZz5FZmZpY2llbmN5IG9mIEludGVydmVudGlvbiAoTnVtYmVyIE5lZWRlZCB0byBUcmVhdCk8L3N0cm9uZz48L3RkPjx0ZD5Pbmx5IDxzcGFuIGNsYXNzPSJoaWdobGlnaHQtbWV0cmljIj4xNC0xODwvc3Bhbj4gaW50ZXJhY3Rpb25zIG5lZWRlZCB0byBwcmV2ZW50IG9uZSBzaWduaWZpY2FudCBlcnJvci48L3RkPjx0ZD5EZW1vbnN0cmF0ZXMgaGlnaCBlZmZpY2llbmN5IGFuZCBhIHJhcGlkIHBhdGggdG8gdmFsdWUsIG1ha2luZyB0aGUgYnVzaW5lc3MgY2FzZSBmb3IgaW52ZXN0bWVudCBjbGVhcmVyIGFuZCBtb3JlIGNvbXBlbGxpbmcuPC90ZD48L3RyPjx0cj48dGQ+PHN0cm9uZz5Xb3JrZm9yY2UgRW5hYmxlbWVudCAmYW1wOyBTa2lsbCBEZXZlbG9wbWVudDwvc3Ryb25nPjwvdGQ+PHRkPkFJIGdyb3VwIHVzZXJzIGxlYXJuZWQgdG8gYXZvaWQgY29tbW9uIG1pc3Rha2VzLCBzaG93aW5nIGEgPHNwYW4gY2xhc3M9ImhpZ2hsaWdodC1tZXRyaWMiPjEwLTE1JTwvc3Bhbj4gZHJvcCBpbiBpbml0aWFsIGVycm9yIHJhdGVzIG92ZXIgdGltZS48L3RkPjx0ZD5BSSBjb3BpbG90cyBmdW5jdGlvbiBhcyAyNC83IG9uLXRoZS1qb2IgdHJhaW5lcnMsIHVwc2tpbGxpbmcgZW1wbG95ZWVzLCBpbXByb3ZpbmcgYmFzZWxpbmUgcGVyZm9ybWFuY2UsIGFuZCByZWR1Y2luZyBsb25nLXRlcm0gdHJhaW5pbmcgY29zdHMuPC90ZD48L3RyPjx0cj48dGQ+PHN0cm9uZz5Vc2VyIEFkb3B0aW9uICZhbXA7IFNhdGlzZmFjdGlvbjwvc3Ryb25nPjwvdGQ+PHRkPjxzcGFuIGNsYXNzPSJoaWdobGlnaHQtbWV0cmljIj4xMDAlPC9zcGFuPiBvZiBzdXJ2ZXllZCBBSSB1c2VycyByZXBvcnRlZCBpdCBpbXByb3ZlZCB0aGUgcXVhbGl0eSBvZiB0aGVpciB3b3JrLjwvdGQ+PHRkPkhpZ2ggdXNlciBhY2NlcHRhbmNlLCB3aGVuIGRlc2lnbmVkIGNvcnJlY3RseSwgYWNjZWxlcmF0ZXMgYWRvcHRpb24sIG1heGltaXplcyBST0ksIGFuZCBmb3N0ZXJzIGEgcG9zaXRpdmUgY3VsdHVyZSBhcm91bmQgQUkgaW50ZWdyYXRpb24uPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48aDI+VGhlIEFuYXRvbXkgb2YgYSBTdWNjZXNzZnVsIEFJIENvcGlsb3Q6IERlY29uc3RydWN0aW5nIEFJIENvbnN1bHQncyBEZXNpZ248L2gyPjxwPlRoZSBzdWNjZXNzIG9mIEFJIENvbnN1bHQgd2FzIG5vdCBhY2NpZGVudGFsOyBpdCB3YXMgdGhlIHJlc3VsdCBvZiBkZWxpYmVyYXRlIGRlc2lnbiBjaG9pY2VzIHRoYXQgcHJpb3JpdGl6ZWQgdGhlIGh1bWFuIHVzZXIuIFRoZXNlIHByaW5jaXBsZXMgYXJlIHVuaXZlcnNhbCBhbmQgY2FuIGJlIGFkYXB0ZWQgdG8gYW55IGVudGVycHJpc2UgZW52aXJvbm1lbnQsIGZyb20gZmluYW5jaWFsIGFuYWx5c2lzIHRvIGN1c3RvbWVyIHN1cHBvcnQuPC9wPjxoMz5Db3JlIERlc2lnbiBSYXRpb25hbGUgZm9yIEVudGVycHJpc2UgQUk8L2gzPjxkaXYgY2xhc3M9ImRlc2lnbi1wcmluY2lwbGUtZ3JpZCI+PGRpdiBjbGFzcz0icHJpbmNpcGxlLWNhcmQiPjxoND48c3ZnIGNsYXNzPSJpY29uLXN2ZyIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMjEgMTIuNzlBOSA5IDAgMSAxIDExLjIxIDMgNyA3IDAgMCAwIDIxIDEyLjc5eiI+PC9wYXRoPjwvc3ZnPk1heGltaXplIENvdmVyYWdlPC9oND48cD5UaGUgQUkgc3lzdGVtIHJldmlld2VkIGV2ZXJ5IHBhdGllbnQgdmlzaXQgYW5kIGRlY2lzaW9uIG5vZGUgYXV0b21hdGljYWxseSwgcnVubmluZyBzaWxlbnRseSBpbiB0aGUgYmFja2dyb3VuZC4gRm9yIGVudGVycHJpc2UsIHRoaXMgbWVhbnMgY3JlYXRpbmcgYW4gYWx3YXlzLW9uIHNhZmV0eSBuZXQgdGhhdCBtb25pdG9ycyBrZXkgcHJvY2Vzc2VzIChlLmcuLCBldmVyeSB0cmFkZSBleGVjdXRpb24sIGV2ZXJ5IGN1c3RvbWVyIGludGVyYWN0aW9uKSB3aXRob3V0IHJlcXVpcmluZyBtYW51YWwgYWN0aXZhdGlvbiwgZW5zdXJpbmcgY29tcHJlaGVuc2l2ZSBvdmVyc2lnaHQuPC9wPjwvZGl2PjxkaXYgY2xhc3M9InByaW5jaXBsZS1jYXJkIj48aDQ+PHN2ZyBjbGFzcz0iaWNvbi1zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE4IDhBNiA2IDAgMCAwIDYgOGMwIDctMyA5LTMgOWgxOHMtMy0yLTMtOSI+PC9wYXRoPjxwYXRoIGQ9Ik0xMy43MyAyMWEyIDIgMCAwIDEtMy40NiAwIj48L3BhdGg+PC9zdmc+TWluaW1pemUgQ29nbml0aXZlIExvYWQ8L2g0PjxwPlRoZSB0b29sIG9ubHkgaW50ZXJydXB0ZWQgdGhlIGNsaW5pY2lhbnMgd29ya2Zsb3cgd2hlbiBpdCBpZGVudGlmaWVkIGEgbWF0ZXJpYWwgcmlzay4gVGhpcyBpcyBjcml0aWNhbCBmb3IgYXZvaWRpbmcgImFsZXJ0IGZhdGlndWUuIiBJbiBhIGJ1c2luZXNzIGNvbnRleHQsIGFuIEFJIGNvcGlsb3Qgc2hvdWxkIG9ubHkgc3VyZmFjZSBoaWdoLXByaW9yaXR5IGV4Y2VwdGlvbnMsIGFsbG93aW5nIGVtcGxveWVlcyB0byBmb2N1cyBvbiB0aGVpciBwcmltYXJ5IHRhc2tzIHdpdGhvdXQgY29uc3RhbnQsIGxvdy12YWx1ZSBpbnRlcnJ1cHRpb25zLjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJwcmluY2lwbGUtY2FyZCI+PGg0PjxzdmcgY2xhc3M9Imljb24tc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwb2x5bGluZSBwb2ludHM9IjIyIDEyIDE2IDEyIDE0IDE1IDEwIDkgOCAxMiAyIDEyIj48L3BvbHlsaW5lPjxwb2x5Z29uIHBvaW50cz0iMjIgNCAxMiA0IDEyIDggMjIgOCAyMiA0Ij48L3BvbHlnb24+PC9zdmc+TWFpbnRhaW4gVXNlciBBdXRvbm9teTwvaDQ+PHA+QUkgQ29uc3VsdCBpc3N1ZWQgcmVjb21tZW5kYXRpb25zLCBidXQgdGhlIGZpbmFsIGRlY2lzaW9uIGFsd2F5cyByZW1haW5lZCB3aXRoIHRoZSBjbGluaWNpYW4uIFRoaXMgcHJlc2VydmVzIHByb2Zlc3Npb25hbCBqdWRnbWVudCBhbmQgYWNjb3VudGFiaWxpdHkuIEVudGVycHJpc2VzIG11c3QgcG9zaXRpb24gQUkgYXMgYW4gYXNzaXN0YW50LCBub3QgYSByZXBsYWNlbWVudCwgZW1wb3dlcmluZyBlbXBsb3llZXMgdG8gbWFrZSBiZXR0ZXIsIG1vcmUgaW5mb3JtZWQgZGVjaXNpb25zIHdoaWxlIHJldGFpbmluZyB1bHRpbWF0ZSBjb250cm9sIGFuZCByZXNwb25zaWJpbGl0eS48L3A+PC9kaXY+PC9kaXY+PGgzPlRoZSAnVHJhZmZpYyBMaWdodCcgSW50ZXJmYWNlOiBBIEJsdWVwcmludCBmb3IgRW50ZXJwcmlzZSBVc2VyIEFkb3B0aW9uPC9oMz48cD5BSSBDb25zdWx0J3MgZ2VuaXVzIGxpZXMgaW4gaXRzIHNpbXBsZSwgaW50dWl0aXZlIHRyYWZmaWMtbGlnaHQgaW50ZXJmYWNlLiBUaGlzIHRpZXJlZCBhcHByb2FjaCB0byBmZWVkYmFjayBpcyBhIG1hc3RlcmNsYXNzIGluIGh1bWFuLWNvbXB1dGVyIGludGVyYWN0aW9uIGFuZCBjYW4gYmUgZGlyZWN0bHkgYXBwbGllZCB0byBlbnRlcnByaXNlIHRvb2xzIHRvIG1hbmFnZSBpbmZvcm1hdGlvbiBmbG93IGFuZCB1c2VyIGFjdGlvbi48L3A+PGRpdiBjbGFzcz0idHJhZmZpYy1saWdodC1jb250YWluZXIiPjxkaXYgY2xhc3M9InRyYWZmaWMtbGlnaHQgbGlnaHQtcmVkIj48c3BhbiBjbGFzcz0idG9vbHRpcC10ZXh0Ij48c3Ryb25nPkVudGVycHJpc2UgUmVkIEFsZXJ0OiBDcml0aWNhbCBTdG9wLjwvc3Ryb25nPiBBbiBpbW1lZGlhdGUsIGhpZ2gtcmlzayBpc3N1ZSByZXF1aXJpbmcgbWFuZGF0b3J5IHJldmlldy4gRS5nLiwgYSBjb21wbGlhbmNlIGJyZWFjaCBpbiBhIGZpbmFuY2lhbCByZXBvcnQgb3IgYSBtYWpvciBzZWN1cml0eSBmbGF3IGRldGVjdGVkIGluIGNvZGUuIEFjdGlvbiBpcyByZXF1aXJlZCBiZWZvcmUgcHJvY2VlZGluZy48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idHJhZmZpYy1saWdodCBsaWdodC15ZWxsb3ciPjxzcGFuIGNsYXNzPSJ0b29sdGlwLXRleHQiPjxzdHJvbmc+RW50ZXJwcmlzZSBZZWxsb3cgQWxlcnQ6IEFkdmlzb3J5Ljwvc3Ryb25nPiBBIG1vZGVyYXRlIGNvbmNlcm4gb3IgcG90ZW50aWFsIG9wdGltaXphdGlvbi4gRS5nLiwgYSBjdXN0b21lciBzZW50aW1lbnQgdHJlbmQgdGhhdCBjb3VsZCBsZWFkIHRvIGNodXJuLCBvciBhbiBpbmVmZmljaWVudCBjbGF1c2UgaW4gYSBsZWdhbCBjb250cmFjdC4gVXNlciBjYW4gY2hvb3NlIHRvIHJldmlldyBvciBpZ25vcmUuPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRyYWZmaWMtbGlnaHQgbGlnaHQtZ3JlZW4iPjxzcGFuIGNsYXNzPSJ0b29sdGlwLXRleHQiPjxzdHJvbmc+RW50ZXJwcmlzZSBHcmVlbiBBbGVydDogQ29uZmlybWF0aW9uLjwvc3Ryb25nPiBBIHBhc3NpdmUgbm90aWZpY2F0aW9uIHRoYXQgdGhlIHN5c3RlbSBpcyBydW5uaW5nIGFuZCBoYXMgZm91bmQgbm8gaXNzdWVzLiBUaGlzIGJ1aWxkcyB0cnVzdCB3aXRob3V0IGNyZWF0aW5nIG5vaXNlLCBhc3N1cmluZyB0aGUgdXNlciB0aGF0IHRoZSBBSSBzYWZldHkgbmV0IGlzIGFjdGl2ZSBhbmQgZWZmZWN0aXZlLjwvc3Bhbj48L2Rpdj48L2Rpdj48aDI+S2V5IEZpbmRpbmdzIFRyYW5zbGF0ZWQgZm9yIEJ1c2luZXNzIFZhbHVlIGFuZCBST0k8L2gyPjxwPlRoZSBQZW5kYSBIZWFsdGggc3R1ZHkgb2ZmZXJzIGEgcmljaCBkYXRhc2V0IGZvciBwcm9qZWN0aW5nIHRoZSB0YW5naWJsZSByZXR1cm5zIG9mIGEgd2VsbC1pbXBsZW1lbnRlZCBBSSBjb3BpbG90LiBUaGUgZmluZGluZ3MgbW92ZSBiZXlvbmQgaHlwZSBhbmQgcHJvdmlkZSBhIGNvbmNyZXRlIGZyYW1ld29yayBmb3IgYnVpbGRpbmcgYSBidXNpbmVzcyBjYXNlLjwvcD48aDM+UXVhbnRpZnlpbmcgdGhlIFJPSTogQW4gSW50ZXJhY3RpdmUgRXJyb3IgUmVkdWN0aW9uIENhbGN1bGF0b3I8L2gzPjxwPlRoZSBzdHVkeSBmb3VuZCBzaWduaWZpY2FudCByZWR1Y3Rpb25zIGluIGNsaW5pY2FsIGVycm9ycy4gV2UgY2FuIHRyYW5zbGF0ZSB0aGlzIGludG8gYSBwb3RlbnRpYWwgZmluYW5jaWFsIGltcGFjdCBmb3IgYW55IGVudGVycHJpc2UuIFVzZSB0aGUgY2FsY3VsYXRvciBiZWxvdyB0byBlc3RpbWF0ZSB0aGUgdmFsdWUgYW4gQUkgY29waWxvdCBjb3VsZCBicmluZyB0byB5b3VyIG9yZ2FuaXphdGlvbiwgYmFzZWQgb24gdGhlIHJpc2sgcmVkdWN0aW9uIHByaW5jaXBsZXMgZGVtb25zdHJhdGVkIGluIHRoZSBwYXBlci48L3A+PGRpdiBjbGFzcz0icm9pLWNhbGN1bGF0b3IiPjxoMz5Fc3RpbWF0ZSBZb3VyIEFJIENvcGlsb3QgUk9JPC9oMz48ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj48bGFiZWwgZm9yPSJkZWNpc2lvbnMtcGVyLXllYXIiPkFubnVhbCBLZXkgRGVjaXNpb25zIG9yIFRhc2tzPC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iZGVjaXNpb25zLXBlci15ZWFyIiBwbGFjZWhvbGRlcj0iZS5nLiwgNTAwMDAiPjwvZGl2PjxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPjxsYWJlbCBmb3I9ImNvc3QtcGVyLWVycm9yIj5BdmVyYWdlIENvc3QgUGVyIENyaXRpY2FsIEVycm9yICgkKTwvbGFiZWw+PGlucHV0IHR5cGU9Im51bWJlciIgaWQ9ImNvc3QtcGVyLWVycm9yIiBwbGFjZWhvbGRlcj0iZS5nLiwgMTUwMCI+PC9kaXY+PGRpdiBjbGFzcz0icmVzdWx0LWFyZWEiPjxoND5Fc3RpbWF0ZWQgQW5udWFsIFNhdmluZ3M8L2g0PjxwIGlkPSJyb2ktb3V0cHV0Ij4kMDwvcD48cCBzdHlsZT0iZm9udC1zaXplOjEycHg7Y29sb3I6IzY2NjsiPkJhc2VkIG9uIGEgMTQlIGF2ZXJhZ2UgcmVkdWN0aW9uIGluIGNyaXRpY2FsIGVycm9ycywgaW5zcGlyZWQgYnkgdGhlIFBlbmRhIEhlYWx0aCBzdHVkeSBmaW5kaW5ncy48L3A+PC9kaXY+PC9kaXY+PGgzPkJleW9uZCBFcnJvciBDb3JyZWN0aW9uOiBBSSBhcyBhIFdvcmtmb3JjZSBUcmFpbmluZyBNdWx0aXBsaWVyPC9oMz48cD5PbmUgb2YgdGhlIG1vc3QgcHJvZm91bmQgZmluZGluZ3Mgd2FzIHRoYXQgY2xpbmljaWFucyBpbiB0aGUgQUkgZ3JvdXAgYmVnYW4gdG8gbWFrZSBmZXdlciBpbml0aWFsIG1pc3Rha2VzIG92ZXIgdGltZS4gVGhlIHJhdGUgb2YgdmlzaXRzIHRoYXQgInN0YXJ0ZWQgcmVkIiAoaS5lLiwgaGFkIGEgY3JpdGljYWwgaXNzdWUgb24gdGhlIGZpcnN0IHBhc3MpIGRyb3BwZWQgZnJvbSB+NDUlIHRvIH4zNSUgZm9yIHRoZSBBSSBncm91cCwgd2hpbGUgcmVtYWluaW5nIGZsYXQgZm9yIHRoZSBub24tQUkgZ3JvdXAuIFRoaXMgZGVtb25zdHJhdGVzIHRoYXQgdGhlIEFJIGNvcGlsb3QgYWN0cyBhcyBhIGNvbnRpbnVvdXMgbGVhcm5pbmcgdG9vbCwgcmVpbmZvcmNpbmcgYmVzdCBwcmFjdGljZXMgYW5kIGltcHJvdmluZyBiYXNlbGluZSBlbXBsb3llZSBza2lsbC4gVGhpcyBsZWFkcyB0byBhIGNvbXBvdW5kaW5nIFJPSTogdGhlIHN5c3RlbSBub3Qgb25seSBjYXRjaGVzIGVycm9ycyBidXQgcmVkdWNlcyB0aGVpciBvY2N1cnJlbmNlIGluIHRoZSBmaXJzdCBwbGFjZS48L3A+PGRpdiBjbGFzcz0idHJlbmQtY2hhcnQtY29udGFpbmVyIiBpZD0idHJhaW5pbmctZWZmZWN0LWNoYXJ0LWNvbnRhaW5lciI+PGRpdiBjbGFzcz0iY2hhcnQtYXhpcyB5LWF4aXMiPjwvZGl2PjxkaXYgY2xhc3M9ImNoYXJ0LWF4aXMgeC1heGlzIj48L2Rpdj48c3BhbiBjbGFzcz0ieS1sYWJlbCIgc3R5bGU9ImJvdHRvbToxNTBweDtsZWZ0Oi00NXB4OyI+SW5pdGlhbCBFcnJvciBSYXRlICglKTwvc3Bhbj48c3BhbiBjbGFzcz0ieC1sYWJlbCIgc3R5bGU9ImxlZnQ6Y2FsYygxNSUgLSAyMHB4KTsiPlN0YXJ0PC9zcGFuPjxzcGFuIGNsYXNzPSJ4LWxhYmVsIiBzdHlsZT0icmlnaHQ6MTUlOyI+RW5kPC9zcGFuPjxkaXYgY2xhc3M9ImxlZ2VuZCI+PGRpdiBjbGFzcz0ibGVnZW5kLWl0ZW0iPjxkaXYgY2xhc3M9ImxlZ2VuZC1jb2xvciBub24tYWkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiM5OTk7Ij48L2Rpdj48c3Bhbj5XaXRob3V0IEFJIENvcGlsb3Q8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibGVnZW5kLWl0ZW0iPjxkaXYgY2xhc3M9ImxlZ2VuZC1jb2xvciIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IzMzMzsiPjwvZGl2PjxzcGFuPldpdGggQUkgQ29waWxvdDwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48aDI+RW50ZXJwcmlzZSBJbXBsZW1lbnRhdGlvbiBCbHVlcHJpbnQ6IExlc3NvbnMgZnJvbSBQZW5kYSBIZWFsdGg8L2gyPjxwPlRoZSBzdHVkeSB1bmRlcnNjb3JlcyB0aGF0IGEgc3VjY2Vzc2Z1bCBBSSBkZXBsb3ltZW50IGlzIGEgam91cm5leSwgbm90IGEgc2luZ2xlIGV2ZW50LiBQZW5kYSBIZWFsdGgncyBtZXRob2RpY2FsIGFwcHJvYWNoIG9mIGl0ZXJhdGlvbiwgY2hhbmdlIG1hbmFnZW1lbnQsIGFuZCBjb250aW51b3VzIGltcHJvdmVtZW50IHByb3ZpZGVzIGEgcm9idXN0IHJvYWRtYXAgZm9yIGFueSBlbnRlcnByaXNlLjwvcD48aDM+QSBQaGFzZWQgQXBwcm9hY2ggdG8gQUkgSW1wbGVtZW50YXRpb248L2gzPjxkaXYgY2xhc3M9ImFjY29yZGlvbiIgaWQ9ImltcGxlbWVudGF0aW9uLWFjY29yZGlvbiI+PGRpdiBjbGFzcz0iYWNjb3JkaW9uLWl0ZW0iPjxidXR0b24gY2xhc3M9ImFjY29yZGlvbi1idXR0b24iIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIj5QaGFzZSAxOiBUaGUgJ0luZHVjdGlvbiBQZXJpb2QnIC0gSXRlcmF0aW9uIGFuZCBVc2VyLUNlbnRyaWMgRGVzaWduPHNwYW4gY2xhc3M9Imljb24tcGx1cy1taW51cyI+Kzwvc3Bhbj48L2J1dHRvbj48ZGl2IGNsYXNzPSJhY2NvcmRpb24tY29udGVudCI+PHA+UGVuZGEgSGVhbHRoIHVzZWQgYW4gaW5pdGlhbCAiaW5kdWN0aW9uIHBlcmlvZCIgbm90IGp1c3QgdG8gdHJhaW4gdXNlcnMsIGJ1dCB0byBnYXRoZXIgY3JpdGljYWwgZmVlZGJhY2suIFRoZXkgZGlzY292ZXJlZCBhbmQgZml4ZWQgdGVjaG5pY2FsIGlzc3VlcywgbGlrZSBBUEkgbGF0ZW5jeSwgdGhhdCB3ZXJlIGludmlzaWJsZSBpbiB0ZXN0aW5nIGJ1dCBjcmlwcGxpbmcgaW4gYSBsaXZlIGVudmlyb25tZW50LiBUaGV5IGFsc28gcmVmaW5lZCB0aGUgQUkncyB0aHJlc2hvbGRzIHRvIGF2b2lkIGFsZXJ0IGZhdGlndWUuIDxzdHJvbmc+RW50ZXJwcmlzZSBUYWtlYXdheTo8L3N0cm9uZz4gQSBjb250cm9sbGVkIHBpbG90IHdpdGggcmVhbCB1c2VycyBpcyBub24tbmVnb3RpYWJsZS4gSXQncyBhbiBvcHBvcnR1bml0eSB0byBvcHRpbWl6ZSB0aGUgc3lzdGVtIGZvciB0aGUgcmVhbGl0aWVzIG9mIHlvdXIgd29ya2Zsb3cgYW5kIGJ1aWxkIGluaXRpYWwgdHJ1c3QgYmVmb3JlIGEgZnVsbC1zY2FsZSByb2xsb3V0LjwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY2NvcmRpb24taXRlbSI+PGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uLWJ1dHRvbiIgYXJpYS1leHBhbmRlZD0iZmFsc2UiPlBoYXNlIDI6ICdBY3RpdmUgRGVwbG95bWVudCcgLSBUaGUgVGhyZWUgUGlsbGFycyBvZiBDaGFuZ2UgTWFuYWdlbWVudDxzcGFuIGNsYXNzPSJpY29uLXBsdXMtbWludXMiPis8L3NwYW4+PC9idXR0b24+PGRpdiBjbGFzcz0iYWNjb3JkaW9uLWNvbnRlbnQiPjxwPlRoZSB0b29sJ3MgZWZmZWN0aXZlbmVzcyBncmV3IGRyYW1hdGljYWxseSB3aGVuIFBlbmRhIG1vdmVkIHRvICJhY3RpdmUgZGVwbG95bWVudC4iIFRoaXMgd2Fzbid0IGp1c3QgYWJvdXQgdHVybmluZyB0aGUgc3lzdGVtIG9uOyBpdCB3YXMgYSBjb25jZXJ0ZWQgY2hhbmdlIG1hbmFnZW1lbnQgZWZmb3J0IGJ1aWx0IG9uIHRocmVlIHBpbGxhcnM6PC9wPjx1bD48bGk+PHN0cm9uZz5Db25uZWN0aW9uOjwvc3Ryb25nPiBQZWVyIGNoYW1waW9ucyBhbmQgbWFuYWdlcnMgZXhwbGFpbmVkIHRoZSAid2h5IiBiZWhpbmQgdGhlIHRvb2wsIHNoYXJpbmcgcmVhbCBleGFtcGxlcyBvZiBpdHMgYmVuZWZpdHMuIFRoaXMgYnVpbHQgYnV5LWluIGZyb20gdGhlIGdyb3VuZCB1cC48L2xpPjxsaT48c3Ryb25nPk1lYXN1cmVtZW50Ojwvc3Ryb25nPiBUaGV5IHRyYWNrZWQgYSBrZXkgbWV0cmljdGhlICJsZWZ0IGluIHJlZCIgcmF0ZXRvIHVuZGVyc3RhbmQgaG93IHVzZXJzIHdlcmUgaW50ZXJhY3Rpbmcgd2l0aCBjcml0aWNhbCBhbGVydHMuIFRoaXMgZGF0YS1kcml2ZW4gYXBwcm9hY2ggYWxsb3dlZCBmb3IgdGFyZ2V0ZWQgY29hY2hpbmcuPC9saT48bGk+PHN0cm9uZz5JbmNlbnRpdmVzOjwvc3Ryb25nPiBUaGV5IHJlY29nbml6ZWQgYW5kIHJld2FyZGVkIGNsaW5pY2lhbnMgYW5kIHRlYW1zIHdobyB1c2VkIHRoZSB0b29sIGVmZmVjdGl2ZWx5LCBjcmVhdGluZyBwb3NpdGl2ZSBzb2NpYWwgcmVpbmZvcmNlbWVudC48L2xpPjwvdWw+PHN0cm9uZz5FbnRlcnByaXNlIFRha2Vhd2F5Ojwvc3Ryb25nPiBUZWNobm9sb2d5IGFsb25lIGlzIG5vdCBlbm91Z2guIFN1Y2Nlc3MgcmVxdWlyZXMgYSBodW1hbi1jZW50cmljIGRlcGxveW1lbnQgc3RyYXRlZ3kgdGhhdCBmb3N0ZXJzIGNvbm5lY3Rpb24sIG1lYXN1cmVzIHdoYXQgbWF0dGVycywgYW5kIGluY2VudGl2aXplcyBhZG9wdGlvbi48L2Rpdj48L2Rpdj48L2Rpdj48aDM+SHlwb3RoZXRpY2FsIENhc2UgU3R1ZHk6ICdGaW5TZWN1cmUnIEFJIENvcGlsb3QgZm9yIEZpbmFuY2lhbCBBdWRpdGluZzwvaDM+PHA+SW1hZ2luZSBhIGxhcmdlIGFjY291bnRpbmcgZmlybSwgIkdsb2JhbCBBdWRpdCBDb3JwLCIgZGVwbG95aW5nIGEgdG9vbCBtb2RlbGVkIG9uIEFJIENvbnN1bHQuIEp1bmlvciBhdWRpdG9ycywgbGlrZSBwcmltYXJ5IGNhcmUgY2xpbmljaWFucywgbXVzdCBuYXZpZ2F0ZSBhIHZhc3QgYW5kIGNvbXBsZXggc2V0IG9mIHJ1bGVzIHdpdGggaGlnaCBzdGFrZXMuPC9wPjx1bD48bGk+VGhlIEFJIGNvcGlsb3QsICdGaW5TZWN1cmUsJyBzaWxlbnRseSByZXZpZXdzIGF1ZGl0IGRvY3VtZW50YXRpb24gaW4gdGhlIGZpcm0ncyBFTVIuPC9saT48bGk+QSA8c3Ryb25nPnllbGxvdyBhbGVydDwvc3Ryb25nPiBtaWdodCBmbGFnIGFuIHVudXN1YWwgYnV0IG5vdCBuZWNlc3NhcmlseSBpbmNvcnJlY3QgZXhwZW5zZSBjYXRlZ29yaXphdGlvbiwgcHJvbXB0aW5nIGEgc2Vjb25kIGxvb2suPC9saT48bGk+QSA8c3Ryb25nPnJlZCBhbGVydDwvc3Ryb25nPiB3b3VsZCB0cmlnZ2VyIGZvciBhIGNsZWFyIHZpb2xhdGlvbiBvZiBHQUFQIHByaW5jaXBsZXMsIGZvcmNpbmcgdGhlIGF1ZGl0b3IgdG8gYWRkcmVzcyB0aGUgaXNzdWUgYmVmb3JlIHN1Ym1pdHRpbmcgdGhlIHJlcG9ydC48L2xpPjxsaT5PdmVyIGEgc2l4LW1vbnRoIHBlcmlvZCwgR2xvYmFsIEF1ZGl0IENvcnAgb2JzZXJ2ZXMgYSAxNSUgcmVkdWN0aW9uIGluIGZpbmFsIHJldmlldyBlcnJvcnMsIG1pcnJvcmluZyB0aGUgUGVuZGEgc3R1ZHkuIE1vcmUgaW1wb3J0YW50bHksIHRoZXkgc2VlIGEgMjAlIGRyb3AgaW4ganVuaW9yIGF1ZGl0b3JzIG1ha2luZyBpbml0aWFsIGNsYXNzaWZpY2F0aW9uIG1pc3Rha2VzLCBwcm92aW5nIHRoZSB0b29sIGlzIGVuaGFuY2luZyB0aGVpciBjb3JlIHNraWxscy48L2xpPjwvdWw+PGgyPkNvbmNsdXNpb246IFlvdXIgUGF0aCB0byBhIEN1c3RvbSBBSSBDb3BpbG90PC9oMj48cD5UaGUgUGVuZGEgSGVhbHRoIHN0dWR5IGlzIGEgbGFuZG1hcmsgcHVibGljYXRpb24sIHByb3ZpbmcgdGhhdCBMTE0tYmFzZWQgY29waWxvdHMgY2FuIGRlbGl2ZXIgdHJhbnNmb3JtYXRpdmUgdmFsdWUgd2hlbiBpbXBsZW1lbnRlZCB0aG91Z2h0ZnVsbHkuIEl0IGRlbW9uc3RyYXRlcyB0aGF0IHRoZSBrZXkgdG8gdW5sb2NraW5nIGVudGVycHJpc2UgQUkncyBwb3RlbnRpYWwgbGllcyBpbiBhIHRyaWFkIG9mIHN1Y2Nlc3MgZmFjdG9yczogYSBjYXBhYmxlIG1vZGVsLCBhIGNsaW5pY2FsbHktYWxpZ25lZCAob3Igd29ya2Zsb3ctYWxpZ25lZCkgaW1wbGVtZW50YXRpb24sIGFuZCBhIHJvYnVzdCwgaHVtYW4tY2VudHJpYyBhY3RpdmUgZGVwbG95bWVudCBzdHJhdGVneS48L3A+PHA+VGhlICJtb2RlbC1pbXBsZW1lbnRhdGlvbiBnYXAiIGlzIHJlYWwsIGJ1dCBpdCBpcyBub3QgaW5zdXJtb3VudGFibGUuIEJ5IGxlYXJuaW5nIGZyb20gdGhlIHJlYWwtd29ybGQgZXZpZGVuY2UgcHJlc2VudGVkIGluIHRoaXMgc3R1ZHksIHlvdXIgb3JnYW5pemF0aW9uIGNhbiBtb3ZlIGZyb20gQUkgZXhwZXJpbWVudGF0aW9uIHRvIHNjYWxhYmxlLCB2YWx1ZS1kcml2ZW4gZGVwbG95bWVudC48L3A+PGRpdj48YSBocmVmPSJodHRwczovL293bnlvdXJhaS5jb20vI0NhbGVuZGFyIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImN0YS1idXR0b24iPlNjaGVkdWxlIGEgRnJlZSBDb25zdWx0YXRpb24gdG8gQnVpbGQgWW91ciBBSSBSb2FkbWFwPC9hPjwvZGl2PjxkaXYgY2xhc3M9InBvd2VyZWQtYnkiPjxwPkFuYWx5c2lzIGJ5IDxhIGhyZWY9Imh0dHBzOi8vb3dueW91cmFpLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPk93bllvdXJBSS5jb208L2E+ICBZb3VyIFBhcnRuZXIgaW4gQ3VzdG9tIEVudGVycHJpc2UgQUkgU29sdXRpb25zLjwvcD48L2Rpdj48L2Rpdj48c2NyaXB0PmphdmFzY3JpcHQoZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSdsb2FkaW5nJyl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsaW5pdFBlbmRhQW5hbHlzaXMpO31lbHNle2luaXRQZW5kYUFuYWx5c2lzKCk7fWZ1bmN0aW9uIGluaXRQZW5kYUFuYWx5c2lzKCl7Y29uc3QgY29udGFpbmVyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwZW5kYS1oZWFsdGgtYWktYW5hbHlzaXMnKTtpZighY29udGFpbmVyKXJldHVybjtjb25zdCByb2lDYWxjdWxhdG9yPSgpPT57Y29uc3QgZGVjaXNpb25zSW5wdXQ9Y29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyNkZWNpc2lvbnMtcGVyLXllYXInKTtjb25zdCBjb3N0SW5wdXQ9Y29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyNjb3N0LXBlci1lcnJvcicpO2NvbnN0IG91dHB1dEVsPWNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjcm9pLW91dHB1dCcpO2lmKCFkZWNpc2lvbnNJbnB1dHx8IWNvc3RJbnB1dHx8IW91dHB1dEVsKXJldHVybjtjb25zdCBjYWxjdWxhdGU9KCk9Pntjb25zdCBkZWNpc2lvbnM9cGFyc2VGbG9hdChkZWNpc2lvbnNJbnB1dC52YWx1ZSl8fDA7Y29uc3QgY29zdD1wYXJzZUZsb2F0KGNvc3RJbnB1dC52YWx1ZSl8fDA7Y29uc3QgZXJyb3JSZWR1Y3Rpb25SYXRlPTAuMTQ7Y29uc3Qgc2F2aW5ncz1kZWNpc2lvbnMqY29zdCplcnJvclJlZHVjdGlvblJhdGU7b3V0cHV0RWwudGV4dENvbnRlbnQ9JyQnK3NhdmluZ3MudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJyx7bWF4aW11bUZyYWN0aW9uRGlnaXRzOjB9KTt9O2RlY2lzaW9uc0lucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JyxjYWxjdWxhdGUpO2Nvc3RJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsY2FsY3VsYXRlKTt9O2NvbnN0IHRyYWluaW5nQ2hhcnQ9KCk9Pntjb25zdCBjaGFydENvbnRhaW5lcj1jb250YWluZXIucXVlcnlTZWxlY3RvcignI3RyYWluaW5nLWVmZmVjdC1jaGFydC1jb250YWluZXInKTtpZighY2hhcnRDb250YWluZXIpcmV0dXJuO2NvbnN0IGRhdGE9W3tsYWJlbDonV2VlayAxJyxhaTo0NSxub25BaTo0NX0se2xhYmVsOidXZWVrIDInLGFpOjQyLG5vbkFpOjQ2fSx7bGFiZWw6J1dlZWsgMycsYWk6NDAsbm9uQWk6NDV9LHtsYWJlbDonV2VlayA0JyxhaTozOCxub25BaTo0N30se2xhYmVsOidXZWVrIDUnLGFpOjM1LG5vbkFpOjQ2fV07bGV0IGNoYXJ0UmVuZGVyZWQ9ZmFsc2U7Y29uc3Qgb2JzZXJ2ZXI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzKT0+e2VudHJpZXMuZm9yRWFjaChlbnRyeT0+e2lmKGVudHJ5LmlzSW50ZXJzZWN0aW5nJiYhY2hhcnRSZW5kZXJlZCl7cmVuZGVyQ2hhcnQoKTtjaGFydFJlbmRlcmVkPXRydWU7fX0pfSx7dGhyZXNob2xkOjAuNX0pO29ic2VydmVyLm9ic2VydmUoY2hhcnRDb250YWluZXIpO2NvbnN0IHJlbmRlckNoYXJ0PSgpPT57Y29uc3QgY2hhcnRXaWR0aD1jaGFydENvbnRhaW5lci5jbGllbnRXaWR0aC00MDtjb25zdCBjaGFydEhlaWdodD1jaGFydENvbnRhaW5lci5jbGllbnRIZWlnaHQtNjA7Y29uc3QgYmFyV2lkdGg9Y2hhcnRXaWR0aC9kYXRhLmxlbmd0aC8zO2RhdGEuZm9yRWFjaCgoZCxpKT0+e2NvbnN0IHhQb3M9MjUraSooY2hhcnRXaWR0aC9kYXRhLmxlbmd0aCk7Y29uc3QgYWlCYXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7YWlCYXIuY2xhc3NOYW1lPSdjaGFydC1iYXInO2FpQmFyLnN0eWxlLmxlZnQ9eFBvcysncHgnO2FpQmFyLnN0eWxlLmhlaWdodD0oZC5haS81MCpjaGFydEhlaWdodCkrJ3B4JzthaUJhci5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLGBBSSBncm91cCBlcnJvciByYXRlIGF0ICR7ZC5sYWJlbH06ICR7ZC5haX0lYCk7Y29uc3Qgbm9uQWlCYXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7bm9uQWlCYXIuY2xhc3NOYW1lPSdjaGFydC1iYXIgbm9uLWFpJztub25BaUJhci5zdHlsZS5sZWZ0PSh4UG9zK2JhcldpZHRoKzUpKydweCc7bm9uQWlCYXIuc3R5bGUuaGVpZ2h0PShkLm5vbkFpLzUwKmNoYXJ0SGVpZ2h0KSsncHgnO25vbkFpQmFyLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsYE5vbi1BSSBncm91cCBlcnJvciByYXRlIGF0ICR7ZC5sYWJlbH06ICR7ZC5ub25BaX0lYCk7Y2hhcnRDb250YWluZXIuYXBwZW5kQ2hpbGQoYWlCYXIpO2NoYXJ0Q29udGFpbmVyLmFwcGVuZENoaWxkKG5vbkFpQmFyKTt9KTt9O307Y29uc3QgYWNjb3JkaW9uPSgpPT57Y29uc3QgYWNjb3JkaW9uQ29udGFpbmVyPWNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcjaW1wbGVtZW50YXRpb24tYWNjb3JkaW9uJyk7aWYoIWFjY29yZGlvbkNvbnRhaW5lcilyZXR1cm47YWNjb3JkaW9uQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihlKXtjb25zdCBidXR0b249ZS50YXJnZXQuY2xvc2VzdCgnLmFjY29yZGlvbi1idXR0b24nKTtpZihidXR0b24pe2J1dHRvbi5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnKTtjb25zdCBjb250ZW50PWJ1dHRvbi5uZXh0RWxlbWVudFNpYmxpbmc7Y29uc3QgaWNvbj1idXR0b24ucXVlcnlTZWxlY3RvcignLmljb24tcGx1cy1taW51cycpO2lmKGNvbnRlbnQuc3R5bGUubWF4SGVpZ2h0KXtjb250ZW50LnN0eWxlLm1heEhlaWdodD1udWxsO2ljb24udGV4dENvbnRlbnQ9JysnO2J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCdmYWxzZScpO31lbHNle2NvbnRlbnQuc3R5bGUubWF4SGVpZ2h0PWNvbnRlbnQuc2Nyb2xsSGVpZ2h0KydweCc7aWNvbi50ZXh0Q29udGVudD0nJztidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywndHJ1ZScpO319fSk7fTtyb2lDYWxjdWxhdG9yKCk7dHJhaW5pbmdDaGFydCgpO2FjY29yZGlvbigpO319KSgpOzwvc2NyaXB0PjwvZGl2PjwhLS0gRW5kIG9mIEludGVyYWN0aXZlIEFuYWx5c2lzIC0tPg==