{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDwhLS0gUHJpbWFyeSBNZXRhIFRhZ3MgLS0+CiAgICA8dGl0bGU+RHIuIEEuSy4gU2ViYmFhbGUgfCBDb25zdWx0YW50IFN1cmdlb24gJiBIZWFsdGhjYXJlIFBpb25lZXIgfCBVZ2FuZGE8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0idGl0bGUiIGNvbnRlbnQ9IkRyLiBBLksuIFNlYmJhYWxlIHwgQ29uc3VsdGFudCBTdXJnZW9uICYgSGVhbHRoY2FyZSBQaW9uZWVyIHwgVWdhbmRhIj4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJGb3VuZGVyIG9mIENhc2UgSG9zcGl0YWwuIENvbnN1bHRhbnQgUGh5c2ljaWFuLCBMYXBhcm9zY29waWMgU3VyZ2VvbiwgR2FzdHJvZW50ZXJvbG9naXN0LiBGZWxsb3cgQ09TRUNTQSwgSUNTICYgV0FMUy4gMzAgeWVhcnMgZmx1ZW50IGluIGhlYWx0aGNhcmUuIEJvb2sgYXBwb2ludG1lbnQgdG9kYXkuIj4KICAgIDxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJEciBTZWJiYWFsZSBLYXRvLCBEciBBSyBTZWJiYWFsZSwgQ2FzZSBIb3NwaXRhbCBVZ2FuZGEsIENhc2UgTWVkaWNhbCBTZXJ2aWNlcywgbGFwYXJvc2NvcGljIHN1cmdlb24gVWdhbmRhLCBnYXN0cm9lbnRlcm9sb2dpc3QgS2FtcGFsYSwgQ09TRUNTQSBmZWxsb3csIGhlYWx0aGNhcmUgcGlvbmVlciBVZ2FuZGEsIENhdGggTGFiIFVnYW5kYSI+CiAgICA8bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IkRyLiBBLksuIFNlYmJhYWxlIj4KICAgIDxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0iaW5kZXgsIGZvbGxvdyI+CiAgICAKICAgIDwhLS0gT3BlbiBHcmFwaCAvIEZhY2Vib29rIC0tPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9InByb2ZpbGUiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iaHR0cHM6Ly9jYXNlY2xpbmljLm9yZy9mb3VuZGVyLWNlbyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkRyLiBTZWJiYWFsZSBLYXRvIHwgQ29uc3VsdGFudCBTdXJnZW9uIHwgQ2FzZSBIb3NwaXRhbCI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlBpb25lZXIgTGFwYXJvc2NvcGljIFN1cmdlb24uIEZlbGxvdyBDT1NFQ1NBLCBJQ1MgJiBXQUxTLiBCb29rIHlvdXIgY29uc3VsdGF0aW9uIHRvZGF5LiI+CiAgICAKICAgIDwhLS0gVHdpdHRlciAtLT4KICAgIDxtZXRhIHByb3BlcnR5PSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiPgogICAgPG1ldGEgcHJvcGVydHk9InR3aXR0ZXI6dXJsIiBjb250ZW50PSJodHRwczovL2Nhc2VjbGluaWMub3JnL2ZvdW5kZXItY2VvIj4KICAgIDxtZXRhIHByb3BlcnR5PSJ0d2l0dGVyOnRpdGxlIiBjb250ZW50PSJEci4gU2ViYmFhbGUgS2F0byB8IENvbnN1bHRhbnQgU3VyZ2VvbiB8IENhc2UgSG9zcGl0YWwiPgogICAgPG1ldGEgcHJvcGVydHk9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlBpb25lZXIgTGFwYXJvc2NvcGljIFN1cmdlb24uIEZlbGxvdyBDT1NFQ1NBLCBJQ1MgJiBXQUxTLiBCb29rIHlvdXIgY29uc3VsdGF0aW9uIHRvZGF5LiI+CiAgICAKICAgIDwhLS0gVGhlbWUgQ29sb3IgLS0+CiAgICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iI0ZGRkZGRiI+CiAgICAKICAgIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20iIGNyb3Nzb3JpZ2luPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1QbGF5ZmFpcitEaXNwbGF5OndnaHRANDAwOzUwMDs2MDA7NzAwOzgwMCZmYW1pbHk9SW50ZXI6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIAogICAgPHN0eWxlPgogICAgICAgIDpyb290IHsKICAgICAgICAgICAgLyogQ2FzZSBCcmFuZCBDb2xvcnMgKi8KICAgICAgICAgICAgLS1jYXNlLWdyZWVuOiAjMEE3NTQxOwogICAgICAgICAgICAtLWNhc2UtZ3JlZW4tZGFyazogIzA2NTQzMDsKICAgICAgICAgICAgLS1jYXNlLWdyZWVuLWxpZ2h0OiAjMEQ5NjU0OwogICAgICAgICAgICAtLWNhc2UtcHVycGxlOiAjNEIxRDdEOwogICAgICAgICAgICAtLWNhc2UtcHVycGxlLWxpZ2h0OiAjNkIyRkE4OwogICAgICAgICAgICAtLWNhc2Utb3JhbmdlOiAjRkY2QjAwOwogICAgICAgICAgICAtLWNhc2Utb3JhbmdlLWxpZ2h0OiAjRkY4QzMzOwogICAgICAgICAgICAtLWNhc2Utb3JhbmdlLWJvbGQ6ICNGRjU1MDA7CiAgICAgICAgICAgIC0tY2FzZS1tYXJvb246ICM4QjIzNDY7CiAgICAgICAgICAgIC0tY2FzZS10ZWFsOiAjMUE4QzhDOwogICAgICAgICAgICAKICAgICAgICAgICAgLyogVjIgV0hJVEUgVEhFTUUgKi8KICAgICAgICAgICAgLS1iZy13aGl0ZTogI0ZGRkZGRjsKICAgICAgICAgICAgLS1iZy1saWdodDogI0Y4RkFGOTsKICAgICAgICAgICAgLS1iZy1jYXJkOiAjRkZGRkZGOwogICAgICAgICAgICAtLXRleHQtZGFyazogIzFBMkIyMzsKICAgICAgICAgICAgLS10ZXh0LW1lZGl1bTogIzNENTE0NzsKICAgICAgICAgICAgLS10ZXh0LW11dGVkOiAjNkI3RDczOwogICAgICAgICAgICAtLWJvcmRlci1saWdodDogI0UwRThFMzsKICAgICAgICB9CgogICAgICAgICogewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHZhcigtLWJnLXdoaXRlKSAwJSwgdmFyKC0tYmctbGlnaHQpIDEwMCUpOwogICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQoKICAgICAgICAvKiBGbG9hdGluZyBNZWRpY2FsIENyb3NzZXMgQmFja2dyb3VuZCAtIFN1YnRsZSAqLwogICAgICAgIC5mbG9hdGluZy1jcm9zc2VzIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLm1lZGljYWwtY3Jvc3MgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuMDU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXRDcm9zcyAyNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICAubWVkaWNhbC1jcm9zczo6YmVmb3JlLAogICAgICAgIC5tZWRpY2FsLWNyb3NzOjphZnRlciB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNhc2UtZ3JlZW4pOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAubWVkaWNhbC1jcm9zczo6YmVmb3JlIHsKICAgICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgfQoKICAgICAgICAubWVkaWNhbC1jcm9zczo6YWZ0ZXIgewogICAgICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB9CgogICAgICAgIC5jcm9zcy0xIHsgdG9wOiA1JTsgbGVmdDogNSU7IGFuaW1hdGlvbi1kZWxheTogMHM7IH0KICAgICAgICAuY3Jvc3MtMiB7IHRvcDogMTUlOyByaWdodDogOCU7IGFuaW1hdGlvbi1kZWxheTogLTVzOyB9CiAgICAgICAgLmNyb3NzLTMgeyB0b3A6IDQwJTsgbGVmdDogMyU7IGFuaW1hdGlvbi1kZWxheTogLTEwczsgfQogICAgICAgIC5jcm9zcy00IHsgdG9wOiA2NSU7IHJpZ2h0OiA1JTsgYW5pbWF0aW9uLWRlbGF5OiAtMTVzOyB9CiAgICAgICAgLmNyb3NzLTUgeyB0b3A6IDg1JTsgbGVmdDogMTAlOyBhbmltYXRpb24tZGVsYXk6IC0zczsgfQoKICAgICAgICAuY3Jvc3MtcHVycGxlOjpiZWZvcmUsCiAgICAgICAgLmNyb3NzLXB1cnBsZTo6YWZ0ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXNlLXB1cnBsZSk7CiAgICAgICAgfQoKICAgICAgICAuY3Jvc3Mtb3JhbmdlOjpiZWZvcmUsCiAgICAgICAgLmNyb3NzLW9yYW5nZTo6YWZ0ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXNlLW9yYW5nZSk7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0Q3Jvc3MgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IG9wYWNpdHk6IDAuMDQ7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KSByb3RhdGUoNWRlZyk7IG9wYWNpdHk6IDAuMDc7IH0KICAgICAgICB9CgogICAgICAgIC8qIENvbnRhaW5lciAqLwogICAgICAgIC5jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICBtYXgtd2lkdGg6IDUyMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgcGFkZGluZzogMjVweDsKICAgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLmNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDcyMHB4OwogICAgICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDkwMHB4KSB7CiAgICAgICAgICAgIC5jb250YWluZXIgewogICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDUwcHg7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8qIEhlYWRlciBTZWN0aW9uICovCiAgICAgICAgLmhlYWRlciB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMzVweCAwIDMwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDFzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOyB9CiAgICAgICAgICAgIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9CiAgICAgICAgfQoKICAgICAgICAvKiBQcm9maWxlIFBob3RvIENvbnRhaW5lciAqLwogICAgICAgIC5wcm9maWxlLWNvbnRhaW5lciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgd2lkdGg6IDE2MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDE2MHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byAyNXB4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5wcm9maWxlLWNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAucHJvZmlsZS1yaW5nIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IC0xMHB4OwogICAgICAgICAgICBsZWZ0OiAtMTBweDsKICAgICAgICAgICAgd2lkdGg6IDE4MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDE4MHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbmljLWdyYWRpZW50KHZhcigtLWNhc2UtZ3JlZW4pLCB2YXIoLS1jYXNlLXB1cnBsZSksIHZhcigtLWNhc2Utb3JhbmdlKSwgdmFyKC0tY2FzZS1ncmVlbikpOwogICAgICAgICAgICBhbmltYXRpb246IHJpbmdSb3RhdGUgOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5wcm9maWxlLXJpbmcgewogICAgICAgICAgICAgICAgd2lkdGg6IDIyMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAyMjBweDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyByaW5nUm90YXRlIHsKICAgICAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgLnByb2ZpbGUtcGhvdG8gewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHdpZHRoOiAxNjBweDsKICAgICAgICAgICAgaGVpZ2h0OiAxNjBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jYXNlLWdyZWVuKSwgdmFyKC0tY2FzZS1ncmVlbi1kYXJrKSk7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBib3JkZXI6IDZweCBzb2xpZCB2YXIoLS1iZy13aGl0ZSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTVweCA1MHB4IHJnYmEoMTAsIDExNywgNjUsIDAuMjUpOwogICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAucHJvZmlsZS1waG90byB7CiAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvKiBDYXNlIEhvc3BpdGFsIENyb3NzIExvZ28gaW4gUHJvZmlsZSAqLwogICAgICAgIC5wcm9maWxlLWNhc2UtbG9nbyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgd2lkdGg6IDcwcHg7CiAgICAgICAgICAgIGhlaWdodDogNzBweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAucHJvZmlsZS1jYXNlLWxvZ28gewogICAgICAgICAgICAgICAgd2lkdGg6IDkwcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDkwcHg7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC5wcm9maWxlLWNyb3NzLXZlcnRpY2FsIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy13aGl0ZSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAucHJvZmlsZS1jcm9zcy12ZXJ0aWNhbCB7CiAgICAgICAgICAgICAgICB3aWR0aDogMzBweDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLnByb2ZpbGUtY3Jvc3MtaG9yaXpvbnRhbCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmctd2hpdGUpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLnByb2ZpbGUtY3Jvc3MtaG9yaXpvbnRhbCB7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC5wcm9maWxlLWNyb3NzLWNlbnRlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNhc2UtcHVycGxlKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5wcm9maWxlLWNyb3NzLWNlbnRlciB7CiAgICAgICAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMThweDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyogTmFtZSAqLwogICAgICAgIC5uYW1lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi42cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tY2FzZS1ncmVlbi1kYXJrKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5uYW1lIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMy4ycmVtOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTAwcHgpIHsKICAgICAgICAgICAgLm5hbWUgewogICAgICAgICAgICAgICAgZm9udC1zaXplOiAzLjhyZW07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC5jcmVkZW50aWFscyB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tY2FzZS1vcmFuZ2UpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5jcmVkZW50aWFscyB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLnRpdGxlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjE1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1tZWRpdW0pOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLnRpdGxlIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAuY29tcGFueSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tY2FzZS1ncmVlbik7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuY29tcGFueSB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC5sb2NhdGlvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLmxvY2F0aW9uIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xNXJlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyogU2VjdGlvbiBTdHlsaW5nICovCiAgICAgICAgLnNlY3Rpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgcGFkZGluZzogMzBweCAyNXB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBib3gtc2hhZG93OiAKICAgICAgICAgICAgICAgIDAgMTBweCA0MHB4IHJnYmEoMTAsIDExNywgNjUsIDAuMDgpLAogICAgICAgICAgICAgICAgMCAwIDAgMnB4IHZhcigtLWNhc2UtZ3JlZW4pLAogICAgICAgICAgICAgICAgMCAwIDAgNHB4IHZhcigtLWNhc2UtcHVycGxlKSwKICAgICAgICAgICAgICAgIDAgMCAwIDZweCB2YXIoLS1jYXNlLW9yYW5nZSk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc2VjdGlvbkZhZGUgMC44cyBlYXNlIGZvcndhcmRzOwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLnNlY3Rpb24gewogICAgICAgICAgICAgICAgcGFkZGluZzogNDBweCAzNXB4OwogICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLnNlY3Rpb246bnRoLWNoaWxkKDEpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjFzOyB9CiAgICAgICAgLnNlY3Rpb246bnRoLWNoaWxkKDIpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjJzOyB9CiAgICAgICAgLnNlY3Rpb246bnRoLWNoaWxkKDMpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjNzOyB9CiAgICAgICAgLnNlY3Rpb246bnRoLWNoaWxkKDQpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjRzOyB9CiAgICAgICAgLnNlY3Rpb246bnRoLWNoaWxkKDUpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjVzOyB9CgogICAgICAgIEBrZXlmcmFtZXMgc2VjdGlvbkZhZGUgewogICAgICAgICAgICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgIH0KCiAgICAgICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CgogICAgICAgIC5zZWN0aW9uLWhlYWRlciBoMyB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWNhc2UtZ3JlZW4tZGFyayk7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuc2VjdGlvbi1oZWFkZXIgaDMgewogICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC5zZWN0aW9uLWxpbmUgewogICAgICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1jYXNlLWdyZWVuKSwgdmFyKC0tY2FzZS1wdXJwbGUpLCB2YXIoLS1jYXNlLW9yYW5nZSkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgfQoKICAgICAgICAvKiBWaWRlbyBTZWN0aW9uICovCiAgICAgICAgLnZpZGVvLWNvbnRhaW5lciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJnLWxpZ2h0KSwgdmFyKC0tYm9yZGVyLWxpZ2h0KSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDMwcHggcmdiYSgxMCwgMTE3LCA2NSwgMC4xKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgICAgICB9CgogICAgICAgIC52aWRlby1jb250YWluZXIgaWZyYW1lIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICB9CgogICAgICAgIC52aWRlby1wbGFjZWhvbGRlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICB9CgogICAgICAgIC52aWRlby1wbGFjZWhvbGRlci1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICBhbmltYXRpb246IHBsYXlQdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgcGxheVB1bHNlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAwLjg7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyBvcGFjaXR5OiAxOyB9CiAgICAgICAgfQoKICAgICAgICAvKiBDcmVkZW50aWFscyBHcmlkICovCiAgICAgICAgLmNyZWRlbnRpYWxzLWdyaWQgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLmNyZWRlbnRpYWxzLWdyaWQgewogICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsKICAgICAgICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmNyZWRlbnRpYWwtaXRlbSB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMjBweCAxNXB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwLCAxMTcsIDY1LCAwLjA2KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxMCwgMTE3LCA2NSwgMC4xNSk7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQoKICAgICAgICAuY3JlZGVudGlhbC1pdGVtOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNhc2UtZ3JlZW4pOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDEwLCAxMTcsIDY1LCAwLjE1KTsKICAgICAgICB9CgogICAgICAgIC5jcmVkZW50aWFsLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBpY29uRmxvYXQgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLmNyZWRlbnRpYWwtaWNvbiB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDNyZW07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgaWNvbkZsb2F0IHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpOyB9CiAgICAgICAgfQoKICAgICAgICAuY3JlZGVudGlhbC10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtZGFyayk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuY3JlZGVudGlhbC10aXRsZSB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmNyZWRlbnRpYWwtc3VidGl0bGUgewogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuY3JlZGVudGlhbC1zdWJ0aXRsZSB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8qIEZlbGxvd3NoaXBzICovCiAgICAgICAgLmZlbGxvd3NoaXBzLWxpc3QgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuZmVsbG93c2hpcC1iYWRnZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDc1LCAyOSwgMTI1LCAwLjEpLCByZ2JhKDEwLCAxMTcsIDY1LCAwLjA4KSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNhc2UtcHVycGxlKTsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tY2FzZS1wdXJwbGUpOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5mZWxsb3dzaGlwLWJhZGdlIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICAgICAgcGFkZGluZzogMTVweCAyNXB4OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAuZmVsbG93c2hpcC1iYWRnZTpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMjVweCByZ2JhKDc1LCAyOSwgMTI1LCAwLjIpOwogICAgICAgIH0KCiAgICAgICAgLyogQ29udGFjdCBJdGVtcyAqLwogICAgICAgIC5jb250YWN0LWl0ZW0gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDE4cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTAsIDExNywgNjUsIDAuMDQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIH0KCiAgICAgICAgLmNvbnRhY3QtaXRlbTpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTAsIDExNywgNjUsIDAuMSk7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2FzZS1ncmVlbik7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRhY3QtaWNvbiB7CiAgICAgICAgICAgIHdpZHRoOiA2NXB4OwogICAgICAgICAgICBoZWlnaHQ6IDY1cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY2FzZS1ncmVlbiksIHZhcigtLWNhc2UtZ3JlZW4tZGFyaykpOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5jb250YWN0LWljb24gewogICAgICAgICAgICAgICAgd2lkdGg6IDc1cHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDc1cHg7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmNvbnRhY3QtZGV0YWlscyB7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICB9CgogICAgICAgIC5jb250YWN0LWxhYmVsIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuY29udGFjdC1sYWJlbCB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMDVyZW07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC5jb250YWN0LXZhbHVlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjE1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1kYXJrKTsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuY29udGFjdC12YWx1ZSB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmNvbnRhY3QtYXJyb3cgewogICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWNhc2UtZ3JlZW4pOwogICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRhY3QtaXRlbTpob3ZlciAuY29udGFjdC1hcnJvdyB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpOwogICAgICAgIH0KCiAgICAgICAgLyogQWN0aW9uIEJ1dHRvbnMgKi8KICAgICAgICAuYWN0aW9uLWJ1dHRvbnMgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDI1cHg7CiAgICAgICAgfQoKICAgICAgICAuYWN0aW9uLWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDE4cHggMjBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuYWN0aW9uLWJ0biB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIycHggMjVweDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmJ0bi1wcmltYXJ5IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY2FzZS1ncmVlbiksIHZhcigtLWNhc2UtZ3JlZW4tZGFyaykpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tYmctd2hpdGUpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCAzMHB4IHJnYmEoMTAsIDExNywgNjUsIDAuMyk7CiAgICAgICAgfQoKICAgICAgICAuYnRuLXByaW1hcnk6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTJweCA0MHB4IHJnYmEoMTAsIDExNywgNjUsIDAuNCk7CiAgICAgICAgfQoKICAgICAgICAuYnRuLXNlY29uZGFyeSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNhc2UtcHVycGxlKSwgdmFyKC0tY2FzZS1wdXJwbGUtbGlnaHQpKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWJnLXdoaXRlKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMzBweCByZ2JhKDc1LCAyOSwgMTI1LCAwLjMpOwogICAgICAgIH0KCiAgICAgICAgLmJ0bi1zZWNvbmRhcnk6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTJweCA0MHB4IHJnYmEoNzUsIDI5LCAxMjUsIDAuNCk7CiAgICAgICAgfQoKICAgICAgICAvKiBFY29zeXN0ZW0gQ1RBICovCiAgICAgICAgLmVjb3N5c3RlbS1jdGEgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiAyNXB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI1NSwgMTA3LCAwLCAwLjA4KSwgcmdiYSgxMCwgMTE3LCA2NSwgMC4wNSkpOwogICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1jYXNlLW9yYW5nZSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgICB9CgogICAgICAgIC5lY29zeXN0ZW0tY3RhOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNTUsIDEwNywgMCwgMC4xNSksIHJnYmEoMTAsIDExNywgNjUsIDAuMSkpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTVweCA1MHB4IHJnYmEoMjU1LCAxMDcsIDAsIDAuMik7CiAgICAgICAgfQoKICAgICAgICAuZWNvc3lzdGVtLWN0YS10ZXh0IHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jYXNlLW9yYW5nZSk7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLmVjb3N5c3RlbS1jdGEtdGV4dCB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmVjb3N5c3RlbS1jdGEtc3VidGV4dCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLmVjb3N5c3RlbS1jdGEtc3VidGV4dCB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyogU2F2ZSAmIFNoYXJlICovCiAgICAgICAgLmNhcmQtYWN0aW9ucyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgICAgIGdhcDogMTVweDsKICAgICAgICB9CgogICAgICAgIC5jYXJkLWFjdGlvbi1idG4gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMCwgMTE3LCA2NSwgMC4wNCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgfQoKICAgICAgICAuY2FyZC1hY3Rpb24tYnRuOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMCwgMTE3LCA2NSwgMC4xKTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jYXNlLWdyZWVuKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICAgIH0KCiAgICAgICAgLmNhcmQtYWN0aW9uLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuY2FyZC1hY3Rpb24taWNvbiB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmNhcmQtYWN0aW9uLXRleHQgewogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWRhcmspOwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5jYXJkLWFjdGlvbi10ZXh0IHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAucXItbGluayB7CiAgICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNTUsIDEwNywgMCwgMC4wOCksIHJnYmEoMTAsIDExNywgNjUsIDAuMDQpKTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY2FzZS1vcmFuZ2UpOwogICAgICAgIH0KCiAgICAgICAgLnFyLWxpbms6aG92ZXIgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNhc2Utb3JhbmdlLWxpZ2h0KTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNTUsIDEwNywgMCwgMC4xNSksIHJnYmEoMTAsIDExNywgNjUsIDAuMDgpKTsKICAgICAgICB9CgogICAgICAgIC5xci1saW5rIC5jYXJkLWFjdGlvbi1pY29uIHsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgICAgICAgIGhlaWdodDogNjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY2FzZS1vcmFuZ2UpLCB2YXIoLS1jYXNlLW9yYW5nZS1saWdodCkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbTsKICAgICAgICB9CgogICAgICAgIC5xci1saW5rLWNvbnRlbnQgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIH0KCiAgICAgICAgLnFyLWxpbmstY29udGVudCAuY2FyZC1hY3Rpb24tc3VidGV4dCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAvKiBGb290ZXIgKi8KICAgICAgICAuZm9vdGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiAzNXB4IDI1cHggMjVweDsKICAgICAgICB9CgogICAgICAgIC5uZXdzLWJhZGdlIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDI1cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxMDcsIDAsIDAuMDgpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jYXNlLW9yYW5nZSk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jYXNlLW9yYW5nZSk7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLm5ld3MtYmFkZ2U6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTA3LCAwLCAwLjE1KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCAyNXB4IHJnYmEoMjU1LCAxMDcsIDAsIDAuMik7CiAgICAgICAgfQoKICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLm5ld3MtYmFkZ2UgewogICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC5mb290ZXItY29tcGFueSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWNhc2UtZ3JlZW4tZGFyayk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuZm9vdGVyLWNvbXBhbnkgewogICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC5mb290ZXItdGFnbGluZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWNhc2UtZ3JlZW4pOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5mb290ZXItdGFnbGluZSB7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmZvb3Rlci1wb3dlcmVkIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICAgICAgfQoKICAgICAgICAuZm9vdGVyLXBvd2VyZWQgYSB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jYXNlLWdyZWVuKTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIH0KCiAgICAgICAgLmZvb3Rlci1wb3dlcmVkIGE6aG92ZXIgewogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICB9CgogICAgICAgIC5mb290ZXItY29weXJpZ2h0IHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB9CgogICAgICAgIC8qIEFjY2Vzc2liaWxpdHkgLSBSZWR1Y2VkIE1vdGlvbiAqLwogICAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAgICAgICAgIC5tZWRpY2FsLWNyb3NzLAogICAgICAgICAgICAucHJvZmlsZS1yaW5nLAogICAgICAgICAgICAuY3JlZGVudGlhbC1pY29uLAogICAgICAgICAgICAudmlkZW8tcGxhY2Vob2xkZXItaWNvbiwKICAgICAgICAgICAgLnNlY3Rpb24gewogICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBub25lOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAuc2VjdGlvbiB7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCiAgICA8IS0tIEZsb2F0aW5nIE1lZGljYWwgQ3Jvc3NlcyBCYWNrZ3JvdW5kIC0tPgogICAgPGRpdiBjbGFzcz0iZmxvYXRpbmctY3Jvc3NlcyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWNhbC1jcm9zcyBjcm9zcy0xIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpY2FsLWNyb3NzIGNyb3NzLTIgY3Jvc3MtcHVycGxlIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpY2FsLWNyb3NzIGNyb3NzLTMiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lZGljYWwtY3Jvc3MgY3Jvc3MtNCBjcm9zcy1vcmFuZ2UiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lZGljYWwtY3Jvc3MgY3Jvc3MtNSBjcm9zcy1wdXJwbGUiPjwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAKICAgICAgICA8IS0tIEhlYWRlciAtLT4KICAgICAgICA8aGVhZGVyIGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9maWxlLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9maWxlLXJpbmciPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZmlsZS1waG90byI+CiAgICAgICAgICAgICAgICAgICAgPCEtLSBDYXNlIEhvc3BpdGFsIENyb3NzIExvZ28gLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZmlsZS1jYXNlLWxvZ28iPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9maWxlLWNyb3NzLXZlcnRpY2FsIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZmlsZS1jcm9zcy1ob3Jpem9udGFsIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZmlsZS1jcm9zcy1jZW50ZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGgxIGNsYXNzPSJuYW1lIj5Eci4gQS5LLiBTZWJiYWFsZTwvaDE+CiAgICAgICAgICAgIDxwIGNsYXNzPSJjcmVkZW50aWFscyI+Q0VPICYgRk9VTkRFUjwvcD4KICAgICAgICAgICAgPHAgY2xhc3M9InRpdGxlIj5Db25zdWx0YW50IFBoeXNpY2lhbiDigKIgUGlvbmVlciBMYXBhcm9zY29waWMgU3VyZ2Vvbjxicj5HYXN0cm9lbnRlcm9sb2dpc3Qg4oCiIFNlbmlvciBMZWN0dXJlcjwvcD4KICAgICAgICAgICAgPHAgY2xhc3M9ImNvbXBhbnkiPkNhc2UgTWVkaWNhbCBTZXJ2aWNlczwvcD4KICAgICAgICAgICAgPHAgY2xhc3M9ImxvY2F0aW9uIj7wn5ONIEthbXBhbGEsIFVnYW5kYTwvcD4KICAgICAgICA8L2hlYWRlcj4KCiAgICAgICAgPCEtLSBWaWRlbyBTZWN0aW9uIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBzdHlsZT0iYW5pbWF0aW9uLWRlbGF5OiAwLjFzOyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMz7wn46sIE1lZXQgRHIuIFNlYmJhYWxlPC9oMz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGluZSI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWRlby1jb250YWluZXIiPgogICAgICAgICAgICAgICAgPGlmcmFtZSAKICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL0RzajlLaURwUTlnIiAKICAgICAgICAgICAgICAgICAgICB0aXRsZT0iQ2FzZSBNZWRpY2FsIFNlcnZpY2VzIC0gRHIuIEEuSy4gU2ViYmFhbGUiCiAgICAgICAgICAgICAgICAgICAgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmUiIAogICAgICAgICAgICAgICAgICAgIGFsbG93ZnVsbHNjcmVlbj4KICAgICAgICAgICAgICAgIDwvaWZyYW1lPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDwhLS0gTWVkaWNhbCBDcmVkZW50aWFscyAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgc3R5bGU9ImFuaW1hdGlvbi1kZWxheTogMC4yczsiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDM+8J+puiBNZWRpY2FsIEV4cGVydGlzZTwvaDM+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxpbmUiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGVudGlhbHMtZ3JpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkZW50aWFsLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRlbnRpYWwtaWNvbiI+8J+PpTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRlbnRpYWwtdGl0bGUiPkNvbnN1bHRhbnQgUGh5c2ljaWFuPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGVudGlhbC1zdWJ0aXRsZSI+MzArIFllYXJzIEV4cGVyaWVuY2U8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGVudGlhbC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkZW50aWFsLWljb24iPvCflKw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkZW50aWFsLXRpdGxlIj5MYXBhcm9zY29waWMgU3VyZ2VvbjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRlbnRpYWwtc3VidGl0bGUiPlBpb25lZXIgaW4gVWdhbmRhPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRlbnRpYWwtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGVudGlhbC1pY29uIj7wn6uAPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGVudGlhbC10aXRsZSI+R2FzdHJvZW50ZXJvbG9naXN0PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JlZGVudGlhbC1zdWJ0aXRsZSI+R0kgU3BlY2lhbGlzdDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcmVkZW50aWFsLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRlbnRpYWwtaWNvbiI+8J+OkzwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRlbnRpYWwtdGl0bGUiPlNlbmlvciBMZWN0dXJlcjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyZWRlbnRpYWwtc3VidGl0bGUiPk1ha2VyZXJlIFVuaXZlcnNpdHk8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDwhLS0gRmVsbG93c2hpcHMgLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIHN0eWxlPSJhbmltYXRpb24tZGVsYXk6IDAuM3M7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGgzPvCfj4YgUHJlc3RpZ2lvdXMgRmVsbG93c2hpcHM8L2gzPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1saW5lIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlbGxvd3NoaXBzLWxpc3QiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlbGxvd3NoaXAtYmFkZ2UiPvCfjpbvuI8gQ09TRUNTQSBGZWxsb3c8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVsbG93c2hpcC1iYWRnZSI+8J+Olu+4jyBJQ1MgRmVsbG93PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlbGxvd3NoaXAtYmFkZ2UiPvCfjpbvuI8gV0FMUyBGZWxsb3c8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVsbG93c2hpcC1iYWRnZSI+8J+Olu+4jyBBc3BlbiBHbG9iYWwgTmV0d29yazwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8IS0tIENvbnRhY3QgU2VjdGlvbiAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiIgc3R5bGU9ImFuaW1hdGlvbi1kZWxheTogMC40czsiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDM+8J+TsSBDb25uZWN0PC9oMz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGluZSI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGEgaHJlZj0idGVsOjA4MDAyMTEwMDUiIGNsYXNzPSJjb250YWN0LWl0ZW0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1pY29uIj7wn5OePC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWRldGFpbHMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtbGFiZWwiPlRvbGwgRnJlZTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtdmFsdWUiPjA4MDAgMjExIDAwNTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29udGFjdC1hcnJvdyI+4oaSPC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIAogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3dhLm1lLzI1Njc2NDIwOTg4OSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjb250YWN0LWl0ZW0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1pY29uIj7wn5KsPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWRldGFpbHMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtbGFiZWwiPldoYXRzQXBwPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC12YWx1ZSI+KzI1NiA3NjQgMjA5IDg4OTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29udGFjdC1hcnJvdyI+4oaSPC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIAogICAgICAgICAgICA8YSBocmVmPSJtYWlsdG86ZHJha3NlYmJhYWxlQGNhc2VtZWRzZXJ2aWNlcy5vcmciIGNsYXNzPSJjb250YWN0LWl0ZW0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1pY29uIj7inInvuI88L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtZGV0YWlscyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1sYWJlbCI+RW1haWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LXZhbHVlIj5kcmFrc2ViYmFhbGVAY2FzZW1lZHNlcnZpY2VzLm9yZzwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29udGFjdC1hcnJvdyI+4oaSPC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIAogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2Nhc2VtZWRzZXJ2aWNlcy5vcmciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iY29udGFjdC1pdGVtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QtaWNvbiI+8J+MkDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1kZXRhaWxzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWN0LWxhYmVsIj5XZWJzaXRlPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC12YWx1ZSI+Y2FzZW1lZHNlcnZpY2VzLm9yZzwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29udGFjdC1hcnJvdyI+4oaSPC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb24tYnV0dG9ucyI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJ0ZWw6MDgwMDIxMTAwNSIgY2xhc3M9ImFjdGlvbi1idG4gYnRuLXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAgIPCfk54gQ2FsbCBOb3cKICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd2EubWUvMjU2NzY0MjA5ODg5IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImFjdGlvbi1idG4gYnRuLXNlY29uZGFyeSI+CiAgICAgICAgICAgICAgICAgICAg8J+SrCBXaGF0c0FwcAogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gRWNvc3lzdGVtIENUQSAtLT4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9jYXNlY2xpbmljLm9yZy9mb3VuZGVyLWVjb3N5c3RlbSIgY2xhc3M9ImVjb3N5c3RlbS1jdGEiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVjb3N5c3RlbS1jdGEtdGV4dCI+8J+PpSBWaWV3IENhc2UgTWVkaWNhbCBFY29zeXN0ZW0g4oaSPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVjb3N5c3RlbS1jdGEtc3VidGV4dCI+SG9zcGl0YWwg4oCiIEluc3VyYW5jZSDigKIgUGhhcm1hY3kg4oCiIERpYWdub3N0aWNzIOKAoiBNb3JlPC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8IS0tIFNhdmUgJiBTaGFyZSBTZWN0aW9uIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBzdHlsZT0iYW5pbWF0aW9uLWRlbGF5OiAwLjVzOyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMz7wn5OyIFNhdmUgJiBTaGFyZTwvaDM+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWxpbmUiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1hY3Rpb25zIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJjYXJkLWFjdGlvbi1idG4iIG9uY2xpY2s9ImFsZXJ0KCdEb3dubG9hZCBjb250YWN0IGZlYXR1cmUgY29taW5nIHNvb24hJykiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYWN0aW9uLWljb24iPuKsh++4jzwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLWFjdGlvbi10ZXh0Ij5Eb3dubG9hZCBDYXJkPC9zcGFuPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImNhcmQtYWN0aW9uLWJ0biIgb25jbGljaz0ibmF2aWdhdG9yLnNoYXJlID8gbmF2aWdhdG9yLnNoYXJlKHt0aXRsZTogJ0RyLiBBLksuIFNlYmJhYWxlIHwgQ2FzZSBNZWRpY2FsIFNlcnZpY2VzJywgdGV4dDogJ0Nvbm5lY3Qgd2l0aCBVZ2FuZGFcJ3MgSGVhbHRoY2FyZSBQaW9uZWVyJywgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZn0pIDogYWxlcnQoJ1NoYXJlIHRoaXMgbGluazogJyArIHdpbmRvdy5sb2NhdGlvbi5ocmVmKSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1hY3Rpb24taWNvbiI+8J+TpDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXJkLWFjdGlvbi10ZXh0Ij5TaGFyZSBDYXJkPC9zcGFuPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9xLTAuY28vZHJzZWJiYWFsZWthdG8iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iY2FyZC1hY3Rpb24tYnRuIHFyLWxpbmsiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYWN0aW9uLWljb24iPvCfk7E8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJxci1saW5rLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC1hY3Rpb24tdGV4dCI+VGFwIGZvciBRUiBDb2RlPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZC1hY3Rpb24tc3VidGV4dCI+U2NhbiB0byBzYXZlIGNvbnRhY3QgaW5zdGFudGx5PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDwhLS0gRm9vdGVyIC0tPgogICAgICAgIDxmb290ZXIgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vY2FzZWNsaW5pYy5uZXdzIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Im5ld3MtYmFkZ2UiPvCfk7AgY2FzZWNsaW5pYy5uZXdzPC9hPgogICAgICAgICAgICAKICAgICAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci1jb21wYW55Ij5DYXNlIE1lZGljYWwgU2VydmljZXM8L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJmb290ZXItdGFnbGluZSI+Rmx1ZW50IGluIEhlYWx0aGNhcmUgZm9yIDMwIFllYXJzICYgQ291bnRpbmc8L3A+CiAgICAgICAgICAgIAogICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLXBvd2VyZWQiPgogICAgICAgICAgICAgICAgUG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL2hhbmRzaGFrZS5hZnJpY2EiIHRhcmdldD0iX2JsYW5rIj5CcmFuZCBIYW5kc2hha2UgQWZyaWNhPC9hPgogICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJmb290ZXItY29weXJpZ2h0Ij4KICAgICAgICAgICAgICAgIMKpIDIwMjYgRHIuIEEuSy4gU2ViYmFhbGUg4oCiIENhc2UgSG9zcGl0YWwgVWdhbmRhCiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Zvb3Rlcj4KICAgICAgICAKICAgIDwvZGl2PgoKPC9ib2R5Pgo8L2h0bWw+","embed":""}
Dr. A.K. Sebbaale
CEO & FOUNDER
Consultant Physician • Pioneer Laparoscopic Surgeon
Gastroenterologist • Senior Lecturer
Case Medical Services
📍 Kampala, Uganda
🎬 Meet Dr. Sebbaale
🩺 Medical Expertise
🏥
Consultant Physician
30+ Years Experience
🔬
Laparoscopic Surgeon
Pioneer in Uganda
🫀
Gastroenterologist
GI Specialist
🎓
Senior Lecturer
Makerere University
🏆 Prestigious Fellowships
🎖️ COSECSA Fellow
🎖️ ICS Fellow
🎖️ WALS Fellow
🎖️ Aspen Global Network
📱 Connect
📞
Toll Free
0800 211 005
💬
WhatsApp
+256 764 209 889
✉️
Email
draksebbaale@casemedservices.org
🌐
Website
casemedservices.org