{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDwhLS0gUHJpbWFyeSBNZXRhIFRhZ3MgLS0+CiAgICA8dGl0bGU+RHIuIEp1c3RpbmUgTmFtYW5kYSB8IEhlYWQgb2YgUmFkaW9sb2d5IHwgQ2FzZSBIb3NwaXRhbCBLYW1wYWxhIFVnYW5kYTwvdGl0bGU+CiAgICA8bWV0YSBuYW1lPSJ0aXRsZSIgY29udGVudD0iRHIuIEp1c3RpbmUgTmFtYW5kYSB8IEhlYWQgb2YgUmFkaW9sb2d5IHwgQ2FzZSBIb3NwaXRhbCBLYW1wYWxhIFVnYW5kYSI+CiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iQ29ubmVjdCB3aXRoIERyLiBKdXN0aW5lIE5hbWFuZGEg4oCTIERpYWdub3N0aWMgUmFkaW9sb2dpc3QgJiBIZWFkIG9mIFJhZGlvbG9neSBEZXBhcnRtZW50IGF0IENhc2UgSG9zcGl0YWwgVWdhbmRhLiBFeHBlcnQgaW4gQ1QsIE1SSSwgWC1SYXkgJiBVbHRyYXNvdW5kIGltYWdpbmcgZGlhZ25vc3RpY3MuIj4KICAgIDxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJEciBKdXN0aW5lIE5hbWFuZGEsIEhlYWQgb2YgUmFkaW9sb2d5LCBEaWFnbm9zdGljIFJhZGlvbG9naXN0LCBDYXNlIEhvc3BpdGFsLCBVZ2FuZGEsIE1lZGljYWwgSW1hZ2luZywgQ1QgU2NhbiwgTVJJLCBYLVJheSwgVWx0cmFzb3VuZCwgS2FtcGFsYSwgUmFkaW9sb2d5IERlcGFydG1lbnQiPgogICAgPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJpbmRleCwgZm9sbG93Ij4KICAgIAogICAgPCEtLSBPcGVuIEdyYXBoIC0tPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9InByb2ZpbGUiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iaHR0cHM6Ly9jYXNlY2xpbmljLm9yZy9oZWFkLXJhZGlvbG9neSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkRyLiBKdXN0aW5lIE5hbWFuZGEgfCBIZWFkIG9mIFJhZGlvbG9neSB8IENhc2UgSG9zcGl0YWwiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJEaWFnbm9zdGljIFJhZGlvbG9naXN0ICYgSGVhZCBvZiBSYWRpb2xvZ3kgRGVwYXJ0bWVudCBhdCBDYXNlIEhvc3BpdGFsIFVnYW5kYS4gQ29ubmVjdCBub3cuIj4KICAgIAogICAgPCEtLSBUd2l0dGVyIC0tPgogICAgPG1ldGEgcHJvcGVydHk9InR3aXR0ZXI6Y2FyZCIgY29udGVudD0ic3VtbWFyeV9sYXJnZV9pbWFnZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0idHdpdHRlcjp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vY2FzZWNsaW5pYy5vcmcvaGVhZC1yYWRpb2xvZ3kiPgogICAgPG1ldGEgcHJvcGVydHk9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IkRyLiBKdXN0aW5lIE5hbWFuZGEgfCBIZWFkIG9mIFJhZGlvbG9neSB8IENhc2UgSG9zcGl0YWwiPgogICAgCiAgICA8IS0tIFRoZW1lIENvbG9yIC0tPgogICAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9IiMwQTc1NDEiPgogICAgCiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20iPgogICAgPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9UGxheWZhaXIrRGlzcGxheTp3Z2h0QDQwMDs1MDA7NjAwOzcwMDs4MDAmZmFtaWx5PUludGVyOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgICAKICAgIDxzdHlsZT4KICAgICAgICA6cm9vdCB7CiAgICAgICAgICAgIC8qIENhc2UgQnJhbmQgQ29sb3JzICovCiAgICAgICAgICAgIC0tY2FzZS1ncmVlbjogIzBBNzU0MTsKICAgICAgICAgICAgLS1jYXNlLWdyZWVuLWRhcms6ICMwNTNEMjg7CiAgICAgICAgICAgIC0tY2FzZS1ncmVlbi1saWdodDogIzBEOTY1NDsKICAgICAgICAgICAgLS1jYXNlLXB1cnBsZTogIzRCMUQ3RDsKICAgICAgICAgICAgLS1jYXNlLXB1cnBsZS1saWdodDogIzhCNEZDRjsKICAgICAgICAgICAgLS1jYXNlLW9yYW5nZTogI0ZGNkIwMDsKICAgICAgICAgICAgLS1jYXNlLW9yYW5nZS1saWdodDogI0ZGOEMzMzsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8qIERlZXAgR3JlZW4gQmFja2dyb3VuZCAqLwogICAgICAgICAgICAtLWRlZXAtYmc6ICMwNDFBMEQ7CiAgICAgICAgICAgIC0tY2FyZC1iZzogIzBBMjQxNTsKICAgICAgICAgICAgLS1jYXJkLWJnLWxpZ2h0OiAjMEQyRTFBOwogICAgICAgICAgICAtLXdhcm0td2hpdGU6ICNGRkZFRjg7CiAgICAgICAgICAgIC0tdGV4dC1saWdodDogI0U4RjVFOTsKICAgICAgICAgICAgLS10ZXh0LW11dGVkOiAjQThDOUIwOwogICAgICAgIH0KCiAgICAgICAgKiB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgcGFkZGluZzogMDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CgogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0ludGVyJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgdmFyKC0tZGVlcC1iZykgMCUsICMwRDI4MTggNTAlLCB2YXIoLS1jYXNlLWdyZWVuLWRhcmspIDEwMCUpOwogICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtbGlnaHQpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIH0KCiAgICAgICAgLyogRmxvYXRpbmcgTWVkaWNhbCBDcm9zc2VzICovCiAgICAgICAgLmZsb2F0aW5nLWNyb3NzZXMgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAubWVkaWNhbC1jcm9zcyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgb3BhY2l0eTogMC4wNjsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmbG9hdENyb3NzIDIwcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIC5tZWRpY2FsLWNyb3NzOjpiZWZvcmUsCiAgICAgICAgLm1lZGljYWwtY3Jvc3M6OmFmdGVyIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2FzZS1ncmVlbik7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB9CgogICAgICAgIC5tZWRpY2FsLWNyb3NzOjpiZWZvcmUgewogICAgICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICAgICAgaGVpZ2h0OiAzNXB4OwogICAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB9CgogICAgICAgIC5tZWRpY2FsLWNyb3NzOjphZnRlciB7CiAgICAgICAgICAgIHdpZHRoOiAzNXB4OwogICAgICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIH0KCiAgICAgICAgLmNyb3NzLTEgeyB0b3A6IDEwJTsgbGVmdDogNSU7IGFuaW1hdGlvbi1kZWxheTogMHM7IH0KICAgICAgICAuY3Jvc3MtMiB7IHRvcDogMjUlOyByaWdodDogOCU7IGFuaW1hdGlvbi1kZWxheTogLTVzOyB9CiAgICAgICAgLmNyb3NzLTMgeyB0b3A6IDUwJTsgbGVmdDogMyU7IGFuaW1hdGlvbi1kZWxheTogLTEwczsgfQogICAgICAgIC5jcm9zcy00IHsgdG9wOiA3MCU7IHJpZ2h0OiA1JTsgYW5pbWF0aW9uLWRlbGF5OiAtMTVzOyB9CiAgICAgICAgLmNyb3NzLTUgeyB0b3A6IDg1JTsgbGVmdDogMTAlOyBhbmltYXRpb24tZGVsYXk6IC0zczsgfQogICAgICAgIC5jcm9zcy02IHsgdG9wOiA0MCU7IHJpZ2h0OiAzJTsgYW5pbWF0aW9uLWRlbGF5OiAtOHM7IH0KCiAgICAgICAgLmNyb3NzLXB1cnBsZTo6YmVmb3JlLAogICAgICAgIC5jcm9zcy1wdXJwbGU6OmFmdGVyIHsgYmFja2dyb3VuZDogdmFyKC0tY2FzZS1wdXJwbGUpOyB9CiAgICAgICAgCiAgICAgICAgLmNyb3NzLW9yYW5nZTo6YmVmb3JlLAogICAgICAgIC5jcm9zcy1vcmFuZ2U6OmFmdGVyIHsgYmFja2dyb3VuZDogdmFyKC0tY2FzZS1vcmFuZ2UpOyB9CgogICAgICAgIEBrZXlmcmFtZXMgZmxvYXRDcm9zcyB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgwZGVnKTsgb3BhY2l0eTogMC4wNDsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpIHJvdGF0ZSgxMGRlZyk7IG9wYWNpdHk6IDAuMDg7IH0KICAgICAgICB9CgogICAgICAgIC8qIENvbnRhaW5lciAqLwogICAgICAgIC5jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgcGFkZGluZzogMjVweCAyMHB4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5jb250YWluZXIgewogICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDM1cHggMzBweDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDkwMHB4KSB7CiAgICAgICAgICAgIC5jb250YWluZXIgewogICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA3MDBweDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8qIFByb2ZpbGUgQ2FyZCAqLwogICAgICAgIC5wcm9maWxlLWNhcmQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCB2YXIoLS1jYXJkLWJnKSwgdmFyKC0tY2FyZC1iZy1saWdodCkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAzNXB4IDI1cHg7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgMCAyNXB4IDgwcHggcmdiYSgwLCAwLCAwLCAwLjUpLAogICAgICAgICAgICAgICAgMCAwIDAgMXB4IHJnYmEoMTAsIDExNywgNjUsIDAuMik7CiAgICAgICAgICAgIGFuaW1hdGlvbjogY2FyZEZhZGVJbiAwLjZzIGVhc2Utb3V0OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5wcm9maWxlLWNhcmQgewogICAgICAgICAgICAgICAgcGFkZGluZzogNDVweCAzNXB4OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIGNhcmRGYWRlSW4gewogICAgICAgICAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpOyB9CiAgICAgICAgICAgIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9CiAgICAgICAgfQoKICAgICAgICAvKiBQcm9maWxlIEhlYWRlciAqLwogICAgICAgIC5wcm9maWxlLWhlYWRlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICB9CgogICAgICAgIC5wcm9maWxlLWltYWdlLWNvbnRhaW5lciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgd2lkdGg6IDE0MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDE0MHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byAyNXB4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5wcm9maWxlLWltYWdlLWNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICB3aWR0aDogMTYwcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2MHB4OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAucHJvZmlsZS1yaW5nIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IC01cHg7CiAgICAgICAgICAgIGxlZnQ6IC01cHg7CiAgICAgICAgICAgIHJpZ2h0OiAtNXB4OwogICAgICAgICAgICBib3R0b206IC01cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoCiAgICAgICAgICAgICAgICB2YXIoLS1jYXNlLWdyZWVuKSwKICAgICAgICAgICAgICAgIHZhcigtLWNhc2UtcHVycGxlKSwKICAgICAgICAgICAgICAgIHZhcigtLWNhc2Utb3JhbmdlKSwKICAgICAgICAgICAgICAgIHZhcigtLWNhc2UtZ3JlZW4pCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogcmluZ1JvdGF0ZSA4cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIHJpbmdSb3RhdGUgewogICAgICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQoKICAgICAgICAucHJvZmlsZS1pbWFnZSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWJnKTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHZhcigtLWNhcmQtYmcpOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLyogUmFkaW9sb2d5IEljb24gLSBDVC9NUkkgU2Nhbm5lciBTdHlsZSAqLwogICAgICAgIC5yYWRpb2xvZ3ktaWNvbiB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgd2lkdGg6IDcwcHg7CiAgICAgICAgICAgIGhlaWdodDogNzBweDsKICAgICAgICB9CgogICAgICAgIC5yYWRpb2xvZ3ktaWNvbiAuc2Nhbm5lci1yaW5nIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB3aWR0aDogNzBweDsKICAgICAgICAgICAgaGVpZ2h0OiA3MHB4OwogICAgICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB2YXIoLS1jYXNlLWdyZWVuKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgfQoKICAgICAgICAucmFkaW9sb2d5LWljb24gLnNjYW5uZXItaW5uZXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLWNhc2UtcHVycGxlKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB9CgogICAgICAgIC5yYWRpb2xvZ3ktaWNvbiAuc2Nhbm5lci1jZW50ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNhc2Utb3JhbmdlKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEpOyBvcGFjaXR5OiAxOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEuMik7IG9wYWNpdHk6IDAuNzsgfQogICAgICAgIH0KCiAgICAgICAgLnJhZGlvbG9neS1pY29uIC5iZWFtLTEsCiAgICAgICAgLnJhZGlvbG9neS1pY29uIC5iZWFtLTIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2FzZS1ncmVlbi1saWdodCk7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICB9CgogICAgICAgIC5iZWFtLTEgewogICAgICAgICAgICB0b3A6IC01cHg7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIH0KCiAgICAgICAgLmJlYW0tMiB7CiAgICAgICAgICAgIGJvdHRvbTogLTVweDsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgfQoKICAgICAgICAucHJvZmlsZS1uYW1lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXdhcm0td2hpdGUpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDJweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAucHJvZmlsZS1uYW1lIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi40cmVtOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAucHJvZmlsZS10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tY2FzZS1wdXJwbGUtbGlnaHQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLnByb2ZpbGUtdGl0bGUgewogICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAucHJvZmlsZS1jb21wYW55IHsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICAgICAgfQoKICAgICAgICAucHJvZmlsZS1zcGVjaWFsdHkgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDEwLCAxMTcsIDY1LCAwLjMpLCByZ2JhKDc1LCAyOSwgMTI1LCAwLjIpKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2FzZS1ncmVlbik7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWNhc2UtZ3JlZW4tbGlnaHQpOwogICAgICAgIH0KCiAgICAgICAgLyogRXhwZXJ0aXNlIFNlY3Rpb24gKi8KICAgICAgICAuZXhwZXJ0aXNlIHsKICAgICAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTAsIDExNywgNjUsIDAuMSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tY2FzZS1ncmVlbik7CiAgICAgICAgfQoKICAgICAgICAuZXhwZXJ0aXNlLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jYXNlLWdyZWVuLWxpZ2h0KTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICB9CgogICAgICAgIC5leHBlcnRpc2UtbGlzdCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIH0KCiAgICAgICAgLmV4cGVydGlzZS1iYWRnZSB7CiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxNHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc1LCAyOSwgMTI1LCAwLjIpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jYXNlLXB1cnBsZSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtbGlnaHQpOwogICAgICAgIH0KCiAgICAgICAgLyogSW1hZ2luZyBTZXJ2aWNlcyAqLwogICAgICAgIC5pbWFnaW5nLXNlcnZpY2VzIHsKICAgICAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxMDcsIDAsIDAuMDgpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWNhc2Utb3JhbmdlKTsKICAgICAgICB9CgogICAgICAgIC5pbWFnaW5nLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jYXNlLW9yYW5nZS1saWdodCk7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2luZy1ncmlkIHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIH0KCiAgICAgICAgLmltYWdpbmctaXRlbSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1saWdodCk7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2luZy1pdGVtIC5pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgICAgfQoKICAgICAgICAvKiBDb250YWN0IFNlY3Rpb24gKi8KICAgICAgICAuY29udGFjdC1zZWN0aW9uIHsKICAgICAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgfQoKICAgICAgICAuY29udGFjdC1pdGVtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEwLCAxMTcsIDY1LCAwLjIpOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRhY3QtaXRlbTpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTAsIDExNywgNjUsIDAuMTUpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTsKICAgICAgICB9CgogICAgICAgIC5jb250YWN0LWljb24gewogICAgICAgICAgICB3aWR0aDogNTBweDsKICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jYXNlLWdyZWVuKSwgdmFyKC0tY2FzZS1ncmVlbi1kYXJrKSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsKICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuY29udGFjdC1kZXRhaWxzIHsKICAgICAgICAgICAgZmxleDogMTsKICAgICAgICB9CgogICAgICAgIC5jb250YWN0LWxhYmVsIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CgogICAgICAgIC5jb250YWN0LXZhbHVlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLXdoaXRlKTsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuY29udGFjdC12YWx1ZSB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmNvbnRhY3QtdmFsdWUgYSB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13YXJtLXdoaXRlKTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLyogQWN0aW9uIEJ1dHRvbnMgKi8KICAgICAgICAuYWN0aW9uLWJ1dHRvbnMgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgfQoKICAgICAgICAuYWN0aW9uLWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmJ0bi1jYWxsIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY2FzZS1ncmVlbiksIHZhcigtLWNhc2UtZ3JlZW4tZGFyaykpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0td2FybS13aGl0ZSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI1cHggcmdiYSgxMCwgMTE3LCA2NSwgMC40KTsKICAgICAgICB9CgogICAgICAgIC5idG4tY2FsbDpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMnB4IDM1cHggcmdiYSgxMCwgMTE3LCA2NSwgMC41KTsKICAgICAgICB9CgogICAgICAgIC5idG4td2hhdHNhcHAgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjVEMzY2LCAjMTI4QzdFKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCAyNXB4IHJnYmEoMzcsIDIxMSwgMTAyLCAwLjMpOwogICAgICAgIH0KCiAgICAgICAgLmJ0bi13aGF0c2FwcDpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMnB4IDM1cHggcmdiYSgzNywgMjExLCAxMDIsIDAuNCk7CiAgICAgICAgfQoKICAgICAgICAvKiBTYXZlICYgU2hhcmUgU2VjdGlvbiAqLwogICAgICAgIC5zYXZlLXNoYXJlIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTVweDsKICAgICAgICAgICAgbWFyZ2luOiAyNXB4IDA7CiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4OwogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxMCwgMTE3LCA2NSwgMC4yKTsKICAgICAgICB9CgogICAgICAgIC5zYXZlLXNoYXJlLWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTAsIDExNywgNjUsIDAuMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWxpZ2h0KTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5zYXZlLXNoYXJlLWJ0bjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTAsIDExNywgNjUsIDAuMik7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICB9CgogICAgICAgIC5zYXZlLXNoYXJlLWJ0biAuaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICAgIH0KCiAgICAgICAgLyogTmV3cyBCYWRnZSAqLwogICAgICAgIC5uZXdzLWJhZGdlIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICAgICAgbWFyZ2luOiAyMHB4IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDEwNywgMCwgMC4xKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2FzZS1vcmFuZ2UpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4OwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAubmV3cy1iYWRnZTpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxMDcsIDAsIDAuMik7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICAgICAgICB9CgogICAgICAgIC5uZXdzLWJhZGdlIHNwYW4gewogICAgICAgICAgICBjb2xvcjogdmFyKC0tY2FzZS1vcmFuZ2UtbGlnaHQpOwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgfQoKICAgICAgICAvKiBGb290ZXIgKi8KICAgICAgICAuZm9vdGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAyNXB4OwogICAgICAgICAgICBwYWRkaW5nLXRvcDogMjBweDsKICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTAsIDExNywgNjUsIDAuMik7CiAgICAgICAgfQoKICAgICAgICAuZm9vdGVyLXBvd2VyZWQgewogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgICAgICB9CgogICAgICAgIC5mb290ZXItcG93ZXJlZCBhIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWNhc2UtZ3JlZW4tbGlnaHQpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuZm9vdGVyLWNvcHlyaWdodCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIH0KCiAgICAgICAgLyogQWNjZXNzaWJpbGl0eSAqLwogICAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAgICAgICAgIC5tZWRpY2FsLWNyb3NzLAogICAgICAgICAgICAucHJvZmlsZS1yaW5nLAogICAgICAgICAgICAucHJvZmlsZS1jYXJkLAogICAgICAgICAgICAuc2Nhbm5lci1jZW50ZXIgewogICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBub25lOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCiAgICA8IS0tIEZsb2F0aW5nIE1lZGljYWwgQ3Jvc3NlcyAtLT4KICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nLWNyb3NzZXMiPgogICAgICAgIDxkaXYgY2xhc3M9Im1lZGljYWwtY3Jvc3MgY3Jvc3MtMSI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWNhbC1jcm9zcyBjcm9zcy0yIGNyb3NzLXB1cnBsZSI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWNhbC1jcm9zcyBjcm9zcy0zIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpY2FsLWNyb3NzIGNyb3NzLTQgY3Jvc3Mtb3JhbmdlIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpY2FsLWNyb3NzIGNyb3NzLTUgY3Jvc3MtcHVycGxlIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpY2FsLWNyb3NzIGNyb3NzLTYiPjwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9maWxlLWNhcmQiPgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBQcm9maWxlIEhlYWRlciAtLT4KICAgICAgICAgICAgPGhlYWRlciBjbGFzcz0icHJvZmlsZS1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZmlsZS1pbWFnZS1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2ZpbGUtcmluZyI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZmlsZS1pbWFnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUmFkaW9sb2d5L1NjYW5uZXIgSWNvbiAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaW9sb2d5LWljb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nhbm5lci1yaW5nIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNjYW5uZXItaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Nhbm5lci1jZW50ZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmVhbS0xIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJlYW0tMiI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0icHJvZmlsZS1uYW1lIj5Eci4gSnVzdGluZSBOYW1hbmRhPC9oMT4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcm9maWxlLXRpdGxlIj5IZWFkIG9mIFJhZGlvbG9neSBEZXBhcnRtZW50PC9wPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InByb2ZpbGUtY29tcGFueSI+Q2FzZSBIb3NwaXRhbDwvcD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcm9maWxlLXNwZWNpYWx0eSI+8J+UrCBEaWFnbm9zdGljIFJhZGlvbG9naXN0PC9zcGFuPgogICAgICAgICAgICA8L2hlYWRlcj4KCiAgICAgICAgICAgIDwhLS0gRXhwZXJ0aXNlIC0tPgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iZXhwZXJ0aXNlIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iZXhwZXJ0aXNlLXRpdGxlIj7wn6m6IFNwZWNpYWxpemF0aW9uPC9oMz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cGVydGlzZS1saXN0Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXhwZXJ0aXNlLWJhZGdlIj5EaWFnbm9zdGljIFJhZGlvbG9neTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXhwZXJ0aXNlLWJhZGdlIj5NZWRpY2FsIEltYWdpbmc8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV4cGVydGlzZS1iYWRnZSI+SW1hZ2UgSW50ZXJwcmV0YXRpb248L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV4cGVydGlzZS1iYWRnZSI+RGVwYXJ0bWVudCBMZWFkZXJzaGlwPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICAgIDwhLS0gSW1hZ2luZyBTZXJ2aWNlcyAtLT4KICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImltYWdpbmctc2VydmljZXMiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJpbWFnaW5nLXRpdGxlIj7wn5OhIEltYWdpbmcgU2VydmljZXM8L2gzPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2luZy1ncmlkIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnaW5nLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiI+8J+Wpe+4jzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+Q1QgU2Nhbjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnaW5nLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiI+8J+nsjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+TVJJPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImltYWdpbmctaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj7imKLvuI88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlgtUmF5PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImltYWdpbmctaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj7wn5OKPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5VbHRyYXNvdW5kPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICAgIDwhLS0gQ29udGFjdCBTZWN0aW9uIC0tPgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iY29udGFjdC1zZWN0aW9uIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1pY29uIj7wn5OePC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1kZXRhaWxzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRhY3QtbGFiZWwiPlRvbGwgRnJlZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRhY3QtdmFsdWUiPjxhIGhyZWY9InRlbDowODAwMjExMDA1Ij4wODAwIDIxMSAwMDU8L2E+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1pY29uIj7wn5KsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1kZXRhaWxzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRhY3QtbGFiZWwiPldoYXRzQXBwPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29udGFjdC12YWx1ZSI+PGEgaHJlZj0iaHR0cHM6Ly93YS5tZS8yNTY3NjQyMDk4ODkiPisyNTYgNzY0IDIwOSA4ODk8L2E+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1pY29uIj7inInvuI88L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWRldGFpbHMiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29udGFjdC1sYWJlbCI+RW1haWw8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb250YWN0LXZhbHVlIj48YSBocmVmPSJtYWlsdG86cmFkaW9sb2d5QGNhc2VtZWRzZXJ2aWNlcy5vcmciPnJhZGlvbG9neUBjYXNlbWVkc2VydmljZXMub3JnPC9hPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaWNvbiI+8J+MkDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtZGV0YWlscyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb250YWN0LWxhYmVsIj5XZWJzaXRlPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29udGFjdC12YWx1ZSI+PGEgaHJlZj0iaHR0cHM6Ly9jYXNlbWVkc2VydmljZXMub3JnIiB0YXJnZXQ9Il9ibGFuayI+Y2FzZW1lZHNlcnZpY2VzLm9yZzwvYT48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICAgICAgPCEtLSBBY3Rpb24gQnV0dG9ucyAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uLWJ1dHRvbnMiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0idGVsOjA4MDAyMTEwMDUiIGNsYXNzPSJhY3Rpb24tYnRuIGJ0bi1jYWxsIj4KICAgICAgICAgICAgICAgICAgICDwn5OeIENhbGwgTm93CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3dhLm1lLzI1Njc2NDIwOTg4OSIgY2xhc3M9ImFjdGlvbi1idG4gYnRuLXdoYXRzYXBwIj4KICAgICAgICAgICAgICAgICAgICDwn5KsIFdoYXRzQXBwCiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPCEtLSBTYXZlICYgU2hhcmUgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNhdmUtc2hhcmUiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InNhdmUtc2hhcmUtYnRuIiBvbmNsaWNrPSJkb3dubG9hZFZDYXJkKCkiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj7wn5OlPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlNhdmUgQ29udGFjdDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJzYXZlLXNoYXJlLWJ0biIgb25jbGljaz0ic2hhcmVDYXJkKCkiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj7wn5OkPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlNoYXJlPC9zcGFuPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9xLTAuY28vZHItanVzdGluZS1uYW1hbmRhIiBjbGFzcz0ic2F2ZS1zaGFyZS1idG4iIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiI+8J+TsTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj5RUiBDb2RlPC9zcGFuPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gTmV3cyBCYWRnZSAtLT4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9jYXNlY2xpbmljLm5ld3MvZHItanVzdGluZS1uYW1hbmRhLWxlYWRpbmctcmFkaW9sb2d5LWV4Y2VsbGVuY2UtY2FzZS1ob3NwaXRhbCIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJuZXdzLWJhZGdlIj4KICAgICAgICAgICAgICAgIDxzcGFuPvCfk7A8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj5GZWF0dXJlZCBvbiBjYXNlY2xpbmljLm5ld3M8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KCiAgICAgICAgICAgIDwhLS0gRm9vdGVyIC0tPgogICAgICAgICAgICA8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci1wb3dlcmVkIj4KICAgICAgICAgICAgICAgICAgICBQb3dlcmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNoYWtlLmFmcmljYSIgdGFyZ2V0PSJfYmxhbmsiPkJyYW5kIEhhbmRzaGFrZSBBZnJpY2E8L2E+CiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLWNvcHlyaWdodCI+CiAgICAgICAgICAgICAgICAgICAgwqkgMjAyNiBDYXNlIE1lZGljYWwgU2VydmljZXMg4oCiIFVnYW5kYQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8L2Zvb3Rlcj4KCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8c2NyaXB0PgogICAgICAgIGZ1bmN0aW9uIGRvd25sb2FkVkNhcmQoKSB7CiAgICAgICAgICAgIGNvbnN0IHZjYXJkID0gYEJFR0lOOlZDQVJEClZFUlNJT046My4wCkZOOkRyLiBKdXN0aW5lIE5hbWFuZGEKT1JHOkNhc2UgSG9zcGl0YWwKVElUTEU6SGVhZCBvZiBSYWRpb2xvZ3kgRGVwYXJ0bWVudCAtIERpYWdub3N0aWMgUmFkaW9sb2dpc3QKVEVMO1RZUEU9V09SSzowODAwMjExMDA1ClRFTDtUWVBFPUNFTEw6KzI1Njc2NDIwOTg4OQpFTUFJTDpyYWRpb2xvZ3lAY2FzZW1lZHNlcnZpY2VzLm9yZwpVUkw6aHR0cHM6Ly9jYXNlbWVkc2VydmljZXMub3JnCk5PVEU6SGVhZCBvZiBSYWRpb2xvZ3kgRGVwYXJ0bWVudCAmIERpYWdub3N0aWMgUmFkaW9sb2dpc3QgYXQgQ2FzZSBIb3NwaXRhbCBVZ2FuZGEuIEV4cGVydCBpbiBDVCwgTVJJLCBYLVJheSAmIFVsdHJhc291bmQgaW1hZ2luZy4KRU5EOlZDQVJEYDsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbdmNhcmRdLCB7IHR5cGU6ICd0ZXh0L3ZjYXJkJyB9KTsKICAgICAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsKICAgICAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKICAgICAgICAgICAgYS5ocmVmID0gdXJsOwogICAgICAgICAgICBhLmRvd25sb2FkID0gJ0RyX0p1c3RpbmVfTmFtYW5kYS52Y2YnOwogICAgICAgICAgICBhLmNsaWNrKCk7CiAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gc2hhcmVDYXJkKCkgewogICAgICAgICAgICBpZiAobmF2aWdhdG9yLnNoYXJlKSB7CiAgICAgICAgICAgICAgICBuYXZpZ2F0b3Iuc2hhcmUoewogICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnRHIuIEp1c3RpbmUgTmFtYW5kYSAtIEhlYWQgb2YgUmFkaW9sb2d5JywKICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnQ29ubmVjdCB3aXRoIERyLiBKdXN0aW5lIE5hbWFuZGEsIEhlYWQgb2YgUmFkaW9sb2d5IERlcGFydG1lbnQgJiBEaWFnbm9zdGljIFJhZGlvbG9naXN0IGF0IENhc2UgSG9zcGl0YWwgVWdhbmRhJywKICAgICAgICAgICAgICAgICAgICB1cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKICAgICAgICAgICAgICAgIGFsZXJ0KCdMaW5rIGNvcGllZCB0byBjbGlwYm9hcmQhJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICA8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPg==","embed":""}
Dr. Justine Namanda
Head of Radiology Department
Case Hospital
🔬 Diagnostic Radiologist🩺 Specialization
Diagnostic Radiology
Medical Imaging
Image Interpretation
Department Leadership
📡 Imaging Services
🖥️
CT Scan
🧲
MRI
☢️
X-Ray
📊
Ultrasound
📞
Toll Free
0800 211 005
💬
WhatsApp
+256 764 209 889
✉️
🌐
Website
casemedservices.org