{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iMjAyNiBTSEUgRS1Cb3NzIFNvbHV0aW9uaXN0IExvdHRlcnkgLSBXaW4gZXhjbHVzaXZlIGFjY2VzcyB0byB0cmFuc2Zvcm1hdGl2ZSBleHBlcmllbmNlcyI+CiAgICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93Ij4KICAgIDx0aXRsZT7wn46wIDIwMjYgU292ZXJlaWduIExvdHRlcnkgfCBTSEUgRS1CT1NTIFNPTFVUSU9OSVNU4oSiPC90aXRsZT4KICAgIAogICAgPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KICAgIDxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUNpbnplbDp3Z2h0QDQwMDs1MDA7NjAwOzcwMCZmYW1pbHk9Q29ybW9yYW50K0dhcmFtb25kOml0YWwsd2dodEAwLDQwMDswLDUwMDswLDYwMDsxLDQwMCZmYW1pbHk9TW9udHNlcnJhdDp3Z2h0QDMwMDs0MDA7NTAwOzYwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgICAKICAgIDxzdHlsZT4KICAgICAgICA6cm9vdCB7CiAgICAgICAgICAgIC0tbWlkbmlnaHQ6ICMwYTBlMWE7CiAgICAgICAgICAgIC0tZGVlcC1uYXZ5OiAjMGQxYjJhOwogICAgICAgICAgICAtLXJveWFsLWJsdWU6ICMwZTZlYzU7CiAgICAgICAgICAgIC0tc292ZXJlaWduLWdvbGQ6ICNkNGEwM2M7CiAgICAgICAgICAgIC0tYnJpZ2h0LWdvbGQ6ICNmMWM0MGY7CiAgICAgICAgICAgIC0tcm9zZS1nb2xkOiAjYjc2ZTc5OwogICAgICAgICAgICAtLWNyaW1zb246ICNjYzAwMDA7CiAgICAgICAgICAgIC0tc29mdC1pdm9yeTogI2ZhZjhmNTsKICAgICAgICAgICAgLS1teXN0ZXJ5LXB1cnBsZTogIzZiMmQ1YzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgKiB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgcGFkZGluZzogMDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgYm9keSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW1pZG5pZ2h0KTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtaXZvcnkpOwogICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PSBFTkhBTkNFRCBTVEFSRklFTEQgPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAuc3RhcmZpZWxkIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICB6LWluZGV4OiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc3RhciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYnJpZ2h0LWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogdHdpbmtsZSAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnN0YXIuYmlnIHsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggdmFyKC0tYnJpZ2h0LWdvbGQpLCAwIDAgMjBweCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgdHdpbmtsZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC4zOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9CiAgICAgICAgICAgIDUwJSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMS4zKTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PSBGTE9BVElORyBFTEVNRU5UUyA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIC5mbG9hdGluZy1lbGVtZW50cyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZsb2F0aW5nLWNyb3duIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuMTU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXQtZHJpZnQgMTVzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZmxvYXRpbmctc3RhciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgZm9udC1zaXplOiAyNXB4OwogICAgICAgICAgICBvcGFjaXR5OiAwLjI7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXQtc3BpbiAyMHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZmxvYXRpbmctMjAyNiB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiA2MHB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBvcGFjaXR5OiAwLjA1OwogICAgICAgICAgICBhbmltYXRpb246IGZsb2F0LXB1bHNlIDEwcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZsb2F0aW5nLXNwYXJrbGUgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHdpZHRoOiA0cHg7CiAgICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1icmlnaHQtZ29sZCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGFya2xlLWZsb2F0IDhzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTBweCB2YXIoLS1icmlnaHQtZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgZmxvYXQtZHJpZnQgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IH0KICAgICAgICAgICAgMjUlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KSByb3RhdGUoMTBkZWcpOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgcm90YXRlKC01ZGVnKTsgfQogICAgICAgICAgICA3NSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpIHJvdGF0ZSg1ZGVnKTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0LXNwaW4gewogICAgICAgICAgICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IH0KICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCkgcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmbG9hdC1wdWxzZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyBvcGFjaXR5OiAwLjAzOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4xKSB0cmFuc2xhdGVZKC0yMHB4KTsgb3BhY2l0eTogMC4wODsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIHNwYXJrbGUtZmxvYXQgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsgb3BhY2l0eTogMC4zOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTBweCkgc2NhbGUoMS41KTsgb3BhY2l0eTogMC44OyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEdvbGRlbiBSaW5ncyAqLwogICAgICAgIC5nb2xkZW4tcmluZyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuMDg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXQtcm90YXRlIDIwcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5nb2xkZW4tcmluZzpudGgtY2hpbGQoMSkgewogICAgICAgICAgICB3aWR0aDogNTAwcHg7CiAgICAgICAgICAgIGhlaWdodDogNTAwcHg7CiAgICAgICAgICAgIHRvcDogLTE1MHB4OwogICAgICAgICAgICByaWdodDogLTE1MHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ29sZGVuLXJpbmc6bnRoLWNoaWxkKDIpIHsKICAgICAgICAgICAgd2lkdGg6IDQwMHB4OwogICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgICAgICBib3R0b206IDUlOwogICAgICAgICAgICBsZWZ0OiAtMTIwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogLTVzOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ29sZGVuLXJpbmc6bnRoLWNoaWxkKDMpIHsKICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgICAgICB0b3A6IDMwJTsKICAgICAgICAgICAgcmlnaHQ6IDUlOwogICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IC0xMHM7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5nb2xkZW4tcmluZzpudGgtY2hpbGQoNCkgewogICAgICAgICAgICB3aWR0aDogMjAwcHg7CiAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgICAgICAgIHRvcDogNjAlOwogICAgICAgICAgICBsZWZ0OiAxMCU7CiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogLTE1czsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmbG9hdC1yb3RhdGUgewogICAgICAgICAgICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGVZKC0zMHB4KTsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSB0cmFuc2xhdGVZKDApOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IE1BSU4gQ09OVEFJTkVSID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmxvdHRlcnktY29udGFpbmVyIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogSGVhZGVyIFNlY3Rpb24gKi8KICAgICAgICAubG90dGVyeS1oZWFkZXIgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluRG93biAxcyBlYXNlLW91dDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW5Eb3duIHsKICAgICAgICAgICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7IH0KICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNyb3duLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDcwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1nbG93IDJzIGVhc2UtaW4tb3V0IGluZmluaXRlLCBjcm93bi1mbG9hdCAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMzBweCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIHB1bHNlLWdsb3cgewogICAgICAgICAgICAwJSwgMTAwJSB7IGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDIwcHggdmFyKC0tc292ZXJlaWduLWdvbGQpKTsgfQogICAgICAgICAgICA1MCUgeyBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCA1MHB4IHZhcigtLWJyaWdodC1nb2xkKSk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBjcm93bi1mbG9hdCB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmxvdHRlcnktdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDV2dywgMy41cmVtKTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYnJpZ2h0LWdvbGQpLCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCksIHZhcigtLXJvc2UtZ29sZCksIHZhcigtLWJyaWdodC1nb2xkKSk7CiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzAwJSAzMDAlOwogICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgICAgICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc2hpbW1lciAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBzaGltbWVyIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MCU7IH0KICAgICAgICAgICAgNTAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmxvdHRlcnktc3VidGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuMXJlbSwgMi41dncsIDEuNHJlbSk7CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXJvc2UtZ29sZCk7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5sb3R0ZXJ5LXRhZ2xpbmUgewogICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjUwLCAyNDgsIDI0NSwgMC43KTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gQ0hPSUNFIFNFQ1RJT04gPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAuY2hvaWNlLXNlY3Rpb24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDQwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZS1vdXQgMC4zcyBib3RoOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJblVwIHsKICAgICAgICAgICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsgfQogICAgICAgICAgICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hvaWNlLWNhcmQgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHdpZHRoOiAzMjBweDsKICAgICAgICAgICAgcGFkZGluZzogNDBweCAzMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDEzLCAyNywgNDIsIDAuOSksIHJnYmEoMTAsIDE0LCAyNiwgMC45NSkpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNob2ljZS1jYXJkOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHJpZ2h0OiAwOwogICAgICAgICAgICBib3R0b206IDA7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc292ZXJlaWduLWdvbGQpLCB2YXIoLS1yb3NlLWdvbGQpLCB2YXIoLS1yb3lhbC1ibHVlKSk7CiAgICAgICAgICAgIC13ZWJraXQtbWFzazogbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKTsKICAgICAgICAgICAgbWFzazogbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKTsKICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWNvbXBvc2l0ZTogeG9yOwogICAgICAgICAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTsKICAgICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNob2ljZS1jYXJkOmhvdmVyOjpiZWZvcmUgewogICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hvaWNlLWNhcmQ6aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlKDEuMDIpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDMwcHggNjBweCByZ2JhKDIxMiwgMTYwLCA2MCwgMC4zKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNob2ljZS1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA3MHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNob2ljZS1jYXJkOmZpcnN0LWNoaWxkIC5jaG9pY2UtaWNvbiB7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi1zbG93IDhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBzcGluLXNsb3cgewogICAgICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jaG9pY2UtdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWJyaWdodC1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNob2ljZS1kZXNjcmlwdGlvbiB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTAsIDI0OCwgMjQ1LCAwLjgpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hvaWNlLWJhZGdlIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IC0xMHB4OwogICAgICAgICAgICByaWdodDogMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY3JpbXNvbiksICM4YjAwMDApOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNXB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBib3VuY2UtYmFkZ2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBrZXlmcmFtZXMgYm91bmNlLWJhZGdlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IFdIRUVMIFNFQ1RJT04gPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAud2hlZWwtc2VjdGlvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluU2NhbGUgMC41cyBlYXNlLW91dDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLndoZWVsLXNlY3Rpb24uYWN0aXZlIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7IH0KICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbC1jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHdpZHRoOiAzNTBweDsKICAgICAgICAgICAgaGVpZ2h0OiAzNTBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLndoZWVsIHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1cyBjdWJpYy1iZXppZXIoMC4xNywgMC42NywgMC4xMiwgMC45OSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDEycHggdmFyKC0tc292ZXJlaWduLWdvbGQpLAogICAgICAgICAgICAgICAgICAgICAgICAwIDAgMCAxOHB4IHZhcigtLWRlZXAtbmF2eSksCiAgICAgICAgICAgICAgICAgICAgICAgIDAgMCAwIDI0cHggdmFyKC0tcm9zZS1nb2xkKSwKICAgICAgICAgICAgICAgICAgICAgICAgMCAwIDgwcHggcmdiYSgyMTIsIDE2MCwgNjAsIDAuNik7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbmljLWdyYWRpZW50KAogICAgICAgICAgICAgICAgdmFyKC0tcm95YWwtYmx1ZSkgMGRlZyA5MGRlZywKICAgICAgICAgICAgICAgIHZhcigtLXNvdmVyZWlnbi1nb2xkKSA5MGRlZyAxODBkZWcsCiAgICAgICAgICAgICAgICB2YXIoLS1jcmltc29uKSAxODBkZWcgMjcwZGVnLAogICAgICAgICAgICAgICAgdmFyKC0tbXlzdGVyeS1wdXJwbGUpIDI3MGRlZyAzNjBkZWcKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLndoZWVsLWxhYmVsIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBmb250LXNpemU6IDQ1cHg7CiAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDEwcHggcmdiYSgyNTUsMjU1LDI1NSwwLjUpKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLndoZWVsLWxhYmVsOm50aC1jaGlsZCgxKSB7IHRvcDogMjIlOyBsZWZ0OiAyMiU7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9CiAgICAgICAgLndoZWVsLWxhYmVsOm50aC1jaGlsZCgyKSB7IHRvcDogMjIlOyByaWdodDogMjIlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC01MCUpOyB9CiAgICAgICAgLndoZWVsLWxhYmVsOm50aC1jaGlsZCgzKSB7IGJvdHRvbTogMjIlOyByaWdodDogMjIlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDUwJSk7IH0KICAgICAgICAud2hlZWwtbGFiZWw6bnRoLWNoaWxkKDQpIHsgYm90dG9tOiAyMiU7IGxlZnQ6IDIyJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgNTAlKTsgfQogICAgICAgIAogICAgICAgIC53aGVlbC1jZW50ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgICB3aWR0aDogOTBweDsKICAgICAgICAgICAgaGVpZ2h0OiA5MHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCksIHZhcigtLXJvc2UtZ29sZCkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBmb250LXNpemU6IDM1cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNDBweCByZ2JhKDIxMiwgMTYwLCA2MCwgMC42KTsKICAgICAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC53aGVlbC1wb2ludGVyIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IC0yNXB4OwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgICAgIGhlaWdodDogMDsKICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDI1cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMjVweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYm9yZGVyLXRvcDogNTBweCBzb2xpZCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCA4cHggMTVweCByZ2JhKDAsMCwwLDAuNikpOwogICAgICAgICAgICB6LWluZGV4OiAyMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNwaW4tYnRuIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggNTBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc292ZXJlaWduLWdvbGQpLCB2YXIoLS1yb3NlLWdvbGQpKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW1pZG5pZ2h0KTsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCA0MHB4IHJnYmEoMjEyLCAxNjAsIDYwLCAwLjUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc3Bpbi1idG46aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoMjEyLCAxNjAsIDYwLCAwLjcpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc3Bpbi1idG46ZGlzYWJsZWQgewogICAgICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gR0FMTEVSWSBTRUNUSU9OID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmdhbGxlcnktc2VjdGlvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjVzIGVhc2Utb3V0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ2FsbGVyeS1zZWN0aW9uLmFjdGl2ZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5nYWxsZXJ5LXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDaW56ZWwnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1icmlnaHQtZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmdhbGxlcnktc3VidGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTAsIDI0OCwgMjQ1LCAwLjYpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5teXN0ZXJ5LWdhbGxlcnkgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTsKICAgICAgICAgICAgZ2FwOiAzMHB4OwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubXlzdGVyeS1kb29yIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDEzLCAyNywgNDIsIDAuOTUpLCByZ2JhKDEwLCAxNCwgMjYsIDAuOTgpKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgcGFkZGluZzogNDBweCAyNXB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgICAgbWluLWhlaWdodDogMjgwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubXlzdGVyeS1kb29yOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHJpZ2h0OiAwOwogICAgICAgICAgICBib3R0b206IDA7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDNweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZG9vci1jb2xvcik7CiAgICAgICAgICAgIC13ZWJraXQtbWFzazogbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKTsKICAgICAgICAgICAgbWFzazogbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKTsKICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWNvbXBvc2l0ZTogeG9yOwogICAgICAgICAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTsKICAgICAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm15c3RlcnktZG9vcjpob3Zlcjo6YmVmb3JlIHsKICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm15c3RlcnktZG9vcjpudGgtY2hpbGQoMSkgeyAtLWRvb3ItY29sb3I6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXJveWFsLWJsdWUpLCAjMWE2YmIzKTsgfQogICAgICAgIC5teXN0ZXJ5LWRvb3I6bnRoLWNoaWxkKDIpIHsgLS1kb29yLWNvbG9yOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1zb3ZlcmVpZ24tZ29sZCksIHZhcigtLWJyaWdodC1nb2xkKSk7IH0KICAgICAgICAubXlzdGVyeS1kb29yOm50aC1jaGlsZCgzKSB7IC0tZG9vci1jb2xvcjogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY3JpbXNvbiksICNmZjQ0NDQpOyB9CiAgICAgICAgLm15c3RlcnktZG9vcjpudGgtY2hpbGQoNCkgeyAtLWRvb3ItY29sb3I6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLW15c3RlcnktcHVycGxlKSwgIzhiM2E3Yyk7IH0KICAgICAgICAKICAgICAgICAubXlzdGVyeS1kb29yOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KSBzY2FsZSgxLjAzKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzMHB4IDYwcHggcmdiYSgyMTIsIDE2MCwgNjAsIDAuMyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5teXN0ZXJ5LWRvb3I6aG92ZXIgLmRvb3ItaWNvbiB7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZG9vci1zaGFrZSAwLjVzIGVhc2UtaW4tb3V0OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGRvb3Itc2hha2UgewogICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHNjYWxlKDEpOyB9CiAgICAgICAgICAgIDI1JSB7IHRyYW5zZm9ybTogcm90YXRlKC0xNWRlZykgc2NhbGUoMS4xKTsgfQogICAgICAgICAgICA3NSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZykgc2NhbGUoMS4xKTsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZG9vci1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA2MHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OwogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMjBweCByZ2JhKDI1NSwyNTUsMjU1LDAuMykpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZG9vci1udW1iZXIgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWJyaWdodC1nb2xkKTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRvb3ItbXlzdGVyeSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1MCwgMjQ4LCAyNDUsIDAuOCk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5kb29yLWhpbnQgewogICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjUwLCAyNDgsIDI0NSwgMC40KTsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogQmFjayBCdXR0b24gKi8KICAgICAgICAuYmFjay1idG4gewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxMiwgMTYwLCA2MCwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXJvc2UtZ29sZCk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5iYWNrLWJ0bjpob3ZlciB7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PSBSRVNVTFQgTU9EQUwgPT09PT09PT09PT09PT09PT09PT0gKi8KICAgICAgICAucmVzdWx0LW1vZGFsIHsKICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTAsIDE0LCAyNiwgMC45Nyk7CiAgICAgICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtbW9kYWwuYWN0aXZlIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW4gewogICAgICAgICAgICBmcm9tIHsgb3BhY2l0eTogMDsgfQogICAgICAgICAgICB0byB7IG9wYWNpdHk6IDE7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC1jb250ZW50IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgdmFyKC0tZGVlcC1uYXZ5KSwgdmFyKC0tbWlkbmlnaHQpKTsKICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBwYWRkaW5nOiA1MHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1heC13aWR0aDogNTUwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMjBweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBwb3BJbiAwLjVzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwMHB4IHJnYmEoMjEyLCAxNjAsIDYwLCAwLjMpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIHBvcEluIHsKICAgICAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogc2NhbGUoMC41KTsgb3BhY2l0eTogMDsgfQogICAgICAgICAgICB0byB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA4MHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBhbmltYXRpb246IGJvdW5jZSAxcyBlYXNlIGluZmluaXRlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGJvdW5jZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9CiAgICAgICAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYnJpZ2h0LWdvbGQpLCB2YXIoLS1yb3NlLWdvbGQpKTsKICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucmVzdWx0LXJldmVhbCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjUwLCAyNDgsIDI0NSwgMC42KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC1wcml6ZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tYnJpZ2h0LWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucmVzdWx0LWRlc2NyaXB0aW9uIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjUwLCAyNDgsIDI0NSwgMC43KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC1idG4gewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggNDBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc292ZXJlaWduLWdvbGQpLCB2YXIoLS1yb3NlLWdvbGQpKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW1pZG5pZ2h0KTsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBtYXJnaW46IDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtYnRuOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDIxMiwgMTYwLCA2MCwgMC40KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC1idG4uc2Vjb25kYXJ5IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gTEVBRCBDQVBUVVJFIE1PREFMID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmNhcHR1cmUtbW9kYWwgewogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxMCwgMTQsIDI2LCAwLjk4KTsKICAgICAgICAgICAgei1pbmRleDogMjAwMDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNhcHR1cmUtbW9kYWwuYWN0aXZlIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNhcHR1cmUtY29udGVudCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHZhcigtLWRlZXAtbmF2eSksIHZhcigtLW1pZG5pZ2h0KSk7CiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDsKICAgICAgICAgICAgcGFkZGluZzogNTBweCA0MHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1heC13aWR0aDogNTAwcHg7CiAgICAgICAgICAgIHdpZHRoOiA5MCU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc2xpZGVVcCAwLjVzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwMHB4IHJnYmEoMjEyLCAxNjAsIDYwLCAwLjQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIHNsaWRlVXAgewogICAgICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpOyBvcGFjaXR5OiAwOyB9CiAgICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyBvcGFjaXR5OiAxOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jYXB0dXJlLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDYwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtZ2xvdyAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNhcHR1cmUtdGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWJyaWdodC1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNhcHR1cmUtc3VidGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTAsIDI0OCwgMjQ1LCAwLjcpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2FwdHVyZS1mb3JtIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ncm91cCB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLWdyb3VwIGxhYmVsIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXJvc2UtZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvcm0tZ3JvdXAgaW5wdXQgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogMTVweCAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDIxMiwgMTYwLCA2MCwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtaXZvcnkpOwogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLWdyb3VwIGlucHV0OmZvY3VzIHsKICAgICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMjEyLCAxNjAsIDYwLCAwLjIpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ncm91cCBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTAsIDI0OCwgMjQ1LCAwLjQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc3VibWl0LWJ0biB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDE4cHggNDBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc292ZXJlaWduLWdvbGQpLCB2YXIoLS1yb3NlLWdvbGQpKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW1pZG5pZ2h0KTsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0NpbnplbCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDIxMiwgMTYwLCA2MCwgMC40KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnN1Ym1pdC1idG46aG92ZXIgewogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTVweCA0MHB4IHJnYmEoMjEyLCAxNjAsIDYwLCAwLjYpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9ybS1ub3RlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTAsIDI0OCwgMjQ1LCAwLjQpOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBQaG9uZSBJbnB1dCBHcm91cCAqLwogICAgICAgIC5waG9uZS1pbnB1dC1ncm91cCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGdhcDogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvdW50cnktc2VsZWN0IHsKICAgICAgICAgICAgd2lkdGg6IDExMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDEwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjEyLCAxNjAsIDYwLCAwLjMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1pdm9yeSk7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb3VudHJ5LXNlbGVjdDpmb2N1cyB7CiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc292ZXJlaWduLWdvbGQpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY291bnRyeS1zZWxlY3Qgb3B0aW9uIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcC1uYXZ5KTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXNvZnQtaXZvcnkpOwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGhvbmUtaW5wdXQgewogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjEyLCAxNjAsIDYwLCAwLjMpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tc29mdC1pdm9yeSk7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBob25lLWlucHV0OmZvY3VzIHsKICAgICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMjEyLCAxNjAsIDYwLCAwLjIpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGhvbmUtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjUwLCAyNDgsIDI0NSwgMC40KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogTG9hZGluZyBPdmVybGF5ICovCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwLCAxNCwgMjYsIDAuOTUpOwogICAgICAgICAgICB6LWluZGV4OiAzMDAwOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheS5hY3RpdmUgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubG9hZGluZy1jb250ZW50IHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgICAgICAgIGhlaWdodDogNjBweDsKICAgICAgICAgICAgYm9yZGVyOiA0cHggc29saWQgcmdiYSgyMTIsIDE2MCwgNjAsIDAuMik7CiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXNvdmVyZWlnbi1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmxvYWRpbmctdGV4dCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zb3ZlcmVpZ24tZ29sZCk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBwdWxzZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC41OyB9CiAgICAgICAgICAgIDUwJSB7IG9wYWNpdHk6IDE7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnN1Ym1pdC1idG46ZGlzYWJsZWQgewogICAgICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gRk9PVEVSID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmxvdHRlcnktZm9vdGVyIHsKICAgICAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgICAgICAgcGFkZGluZy10b3A6IDYwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvb3Rlci1icmFuZCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ2luemVsJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tcm9zZS1nb2xkKTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZvb3Rlci10YWdsaW5lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1MCwgMjQ4LCAyNDUsIDAuNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09IENPTkZFVFRJID09PT09PT09PT09PT09PT09PT09ICovCiAgICAgICAgLmNvbmZldHRpIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMzAwMDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBjb25mZXR0aS1mYWxsIDRzIGVhc2Utb3V0IGZvcndhcmRzOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGNvbmZldHRpLWZhbGwgewogICAgICAgICAgICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwdmgpIHJvdGF0ZSgwZGVnKTsgb3BhY2l0eTogMTsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHZoKSByb3RhdGUoMTA4MGRlZyk7IG9wYWNpdHk6IDA7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT0gUkVTUE9OU0lWRSA9PT09PT09PT09PT09PT09PT09PSAqLwogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgICAuY2hvaWNlLXNlY3Rpb24gewogICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5jaG9pY2UtY2FyZCB7CiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzUwcHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC53aGVlbC1jb250YWluZXIgewogICAgICAgICAgICAgICAgd2lkdGg6IDI4MHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAyODBweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLm15c3RlcnktZ2FsbGVyeSB7CiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzUwcHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5yZXN1bHQtY29udGVudCwKICAgICAgICAgICAgLmNhcHR1cmUtY29udGVudCB7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDI1cHg7CiAgICAgICAgICAgICAgICBtYXJnaW46IDE1cHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC5jYXB0dXJlLXRpdGxlIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDwhLS0gU3RhcmZpZWxkIC0tPgogICAgPGRpdiBjbGFzcz0ic3RhcmZpZWxkIiBpZD0ic3RhcmZpZWxkIj48L2Rpdj4KICAgIAogICAgPCEtLSBGbG9hdGluZyBFbGVtZW50cyAtLT4KICAgIDxkaXYgY2xhc3M9ImZsb2F0aW5nLWVsZW1lbnRzIiBpZD0iZmxvYXRpbmdFbGVtZW50cyI+PC9kaXY+CiAgICAKICAgIDwhLS0gR29sZGVuIFJpbmdzIC0tPgogICAgPGRpdiBjbGFzcz0iZ29sZGVuLXJpbmciPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ29sZGVuLXJpbmciPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ29sZGVuLXJpbmciPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ29sZGVuLXJpbmciPjwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJsb3R0ZXJ5LWNvbnRhaW5lciI+CiAgICAgICAgPCEtLSBIZWFkZXIgLS0+CiAgICAgICAgPGhlYWRlciBjbGFzcz0ibG90dGVyeS1oZWFkZXIiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY3Jvd24taWNvbiI+8J+RkTwvc3Bhbj4KICAgICAgICAgICAgPGgxIGNsYXNzPSJsb3R0ZXJ5LXRpdGxlIj4yMDI2IFNPVkVSRUlHTiBMT1RURVJZPC9oMT4KICAgICAgICAgICAgPHAgY2xhc3M9ImxvdHRlcnktc3VidGl0bGUiPlNIRSBFLUJPU1MgU09MVVRJT05JU1TihKIgUHJlc2VudHM8L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJsb3R0ZXJ5LXRhZ2xpbmUiPkZvdXIgbXlzdGVyaWVzIGF3YWl0IH4gRXZlcnkgZG9vciBsZWFkcyB0byB0cmFuc2Zvcm1hdGlvbjwvcD4KICAgICAgICA8L2hlYWRlcj4KICAgICAgICAKICAgICAgICA8IS0tIENob2ljZSBTZWN0aW9uIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJjaG9pY2Utc2VjdGlvbiIgaWQ9ImNob2ljZVNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaG9pY2UtY2FyZCIgaWQ9ImNoYW5jZUNhcmQiIG9uY2xpY2s9InNlbGVjdFBhdGgoJ2NoYW5jZScpIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaG9pY2UtYmFkZ2UiPvCflKUgRXhjaXRpbmc8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hvaWNlLWljb24iPvCfjrA8L3NwYW4+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImNob2ljZS10aXRsZSI+VEFLRSBZT1VSIENIQU5DRVM8L2gyPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImNob2ljZS1kZXNjcmlwdGlvbiI+U3VycmVuZGVyIHRvIGZhdGUuIFNwaW4gdGhlIFNvdmVyZWlnbiBXaGVlbCBhbmQgbGV0IHRoZSB1bml2ZXJzZSByZXZlYWwgd2hhdCB0cmFuc2Zvcm1hdGlvbiBhd2FpdHMgeW91LjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaG9pY2UtY2FyZCIgaWQ9ImNoYXJnZUNhcmQiIG9uY2xpY2s9InNlbGVjdFBhdGgoJ2NoYXJnZScpIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaG9pY2UtaWNvbiI+8J+RkTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iY2hvaWNlLXRpdGxlIj5JJ00gSU4gQ0hBUkdFPC9oMj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjaG9pY2UtZGVzY3JpcHRpb24iPlRydXN0IHlvdXIgaW50dWl0aW9uLiBDaG9vc2UgdGhlIG15c3RlcnkgZG9vciB0aGF0IGNhbGxzIHRvIHlvdXIgc292ZXJlaWduIHNwaXJpdCB+IGJ1dCBvbmx5IGRlc3Rpbnkga25vd3Mgd2hhdCBsaWVzIGJlaGluZC48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAKICAgICAgICA8IS0tIFdoZWVsIFNlY3Rpb24gLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9IndoZWVsLXNlY3Rpb24iIGlkPSJ3aGVlbFNlY3Rpb24iPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJiYWNrLWJ0biIgb25jbGljaz0iZ29CYWNrKCkiPuKGkCBCYWNrIHRvIENob2ljZTwvYnV0dG9uPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoZWVsLXBvaW50ZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwiIGlkPSJ3aGVlbCI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndoZWVsLWxhYmVsIj7wn5SuPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3aGVlbC1sYWJlbCI+4pyoPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3aGVlbC1sYWJlbCI+8J+Mnzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id2hlZWwtbGFiZWwiPvCfkqs8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoZWVsLWNlbnRlciI+PzwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InNwaW4tYnRuIiBpZD0ic3BpbkJ0biIgb25jbGljaz0ic3BpbldoZWVsKCkiPgogICAgICAgICAgICAgICAg8J+OsCBTUElOIEZPUiBZT1VSIERFU1RJTlkKICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIAogICAgICAgIDwhLS0gR2FsbGVyeSBTZWN0aW9uIC0gTXlzdGVyeSBEb29ycyAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0iZ2FsbGVyeS1zZWN0aW9uIiBpZD0iZ2FsbGVyeVNlY3Rpb24iPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJiYWNrLWJ0biIgb25jbGljaz0iZ29CYWNrKCkiPuKGkCBCYWNrIHRvIENob2ljZTwvYnV0dG9uPgogICAgICAgICAgICAKICAgICAgICAgICAgPGgyIGNsYXNzPSJnYWxsZXJ5LXRpdGxlIj5DaG9vc2UgWW91ciBNeXN0ZXJ5IERvb3I8L2gyPgogICAgICAgICAgICA8cCBjbGFzcz0iZ2FsbGVyeS1zdWJ0aXRsZSI+RWFjaCBkb29yIGhvbGRzIGEgZGlmZmVyZW50IHBhdGggdG8gdHJhbnNmb3JtYXRpb24gfiB3aGljaCBjYWxscyB0byB5b3U/PC9wPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXlzdGVyeS1nYWxsZXJ5Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im15c3RlcnktZG9vciIgb25jbGljaz0ic2VsZWN0RG9vcigwKSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvb3ItaWNvbiI+8J+aqjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG9vci1udW1iZXIiPkRPT1IgT05FPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJkb29yLW15c3RlcnkiPiJXaGVyZSBzZWVkcyBiZWNvbWUgZm9yZXN0cyI8L3A+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvb3ItaGludCI+fiBncm93dGggYXdhaXRzIH48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXlzdGVyeS1kb29yIiBvbmNsaWNrPSJzZWxlY3REb29yKDEpIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG9vci1pY29uIj7wn5qqPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb29yLW51bWJlciI+RE9PUiBUV088L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImRvb3ItbXlzdGVyeSI+IldoZXJlIGxpb25zIGZpbmQgdGhlaXIgcm9hciI8L3A+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvb3ItaGludCI+fiBwb3dlciBhd2FpdHMgfjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJteXN0ZXJ5LWRvb3IiIG9uY2xpY2s9InNlbGVjdERvb3IoMikiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb29yLWljb24iPvCfmqo8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvb3ItbnVtYmVyIj5ET09SIFRIUkVFPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJkb29yLW15c3RlcnkiPiJXaGVyZSBlYWdsZXMgbGVhcm4gdG8gc29hciI8L3A+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvb3ItaGludCI+fiBlbGV2YXRpb24gYXdhaXRzIH48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXlzdGVyeS1kb29yIiBvbmNsaWNrPSJzZWxlY3REb29yKDMpIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG9vci1pY29uIj7wn5qqPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkb29yLW51bWJlciI+RE9PUiBGT1VSPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJkb29yLW15c3RlcnkiPiJXaGVyZSB2b3lhZ2VzIGJlZ2luIjwvcD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZG9vci1oaW50Ij5+IGRpc2NvdmVyeSBhd2FpdHMgfjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBGb290ZXIgLS0+CiAgICAgICAgPGZvb3RlciBjbGFzcz0ibG90dGVyeS1mb290ZXIiPgogICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLWJyYW5kIj5USEUgU0hFIEV+Qk9TUyBTT0xVVElPTklTVOKEoiB+IFNIRSBFVk9MVkVTPC9wPgogICAgICAgICAgICA8cCBjbGFzcz0iZm9vdGVyLXRhZ2xpbmUiPuKcqCAyMDI2IFNvdmVyZWlnbiBFZGl0aW9uIOKcqDwvcD4KICAgICAgICA8L2Zvb3Rlcj4KICAgIDwvZGl2PgogICAgCiAgICA8IS0tIFJlc3VsdCBNb2RhbCAtLT4KICAgIDxkaXYgY2xhc3M9InJlc3VsdC1tb2RhbCIgaWQ9InJlc3VsdE1vZGFsIj4KICAgICAgICA8ZGl2IGNsYXNzPSJyZXN1bHQtY29udGVudCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZXN1bHQtaWNvbiIgaWQ9InJlc3VsdEljb24iPvCfjok8L3NwYW4+CiAgICAgICAgICAgIDxoMiBjbGFzcz0icmVzdWx0LXRpdGxlIiBpZD0icmVzdWx0VGl0bGUiPlRIRSBET09SIE9QRU5TITwvaDI+CiAgICAgICAgICAgIDxwIGNsYXNzPSJyZXN1bHQtcmV2ZWFsIj5Zb3VyIGRlc3RpbnkgaGFzIGJlZW4gcmV2ZWFsZWQuLi48L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJyZXN1bHQtcHJpemUiIGlkPSJyZXN1bHRQcml6ZSI+UHJpemUgTmFtZTwvcD4KICAgICAgICAgICAgPHAgY2xhc3M9InJlc3VsdC1kZXNjcmlwdGlvbiIgaWQ9InJlc3VsdERlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvcD4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVzdWx0LWJ0biIgaWQ9ImNsYWltQnRuIiBvbmNsaWNrPSJvcGVuQ2FwdHVyZUZvcm0oKSI+8J+RkSBDTEFJTSBZT1VSIFBSSVpFPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InJlc3VsdC1idG4gc2Vjb25kYXJ5IiBvbmNsaWNrPSJjbG9zZVJlc3VsdE1vZGFsKCkiPlRSWSBBTk9USEVSIERPT1I8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8IS0tIExlYWQgQ2FwdHVyZSBNb2RhbCAtLT4KICAgIDxkaXYgY2xhc3M9ImNhcHR1cmUtbW9kYWwiIGlkPSJjYXB0dXJlTW9kYWwiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhcHR1cmUtY29udGVudCI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYXB0dXJlLWljb24iPvCfjoE8L3NwYW4+CiAgICAgICAgICAgIDxoMiBjbGFzcz0iY2FwdHVyZS10aXRsZSI+Q0xBSU0gWU9VUiBTT1ZFUkVJR04gUFJJWkU8L2gyPgogICAgICAgICAgICA8cCBjbGFzcz0iY2FwdHVyZS1zdWJ0aXRsZSI+RW50ZXIgeW91ciBkZXRhaWxzIHRvIHVubG9jayBpbnN0YW50IGFjY2VzcyB0byB5b3VyIHRyYW5zZm9ybWF0aW9uPC9wPgogICAgICAgICAgICAKICAgICAgICAgICAgPGZvcm0gY2xhc3M9ImNhcHR1cmUtZm9ybSIgaWQ9ImNhcHR1cmVGb3JtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5GVUxMIE5BTUUgKjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJmdWxsTmFtZSIgcGxhY2Vob2xkZXI9IkVudGVyIHlvdXIgZnVsbCBuYW1lIiByZXF1aXJlZD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+RU1BSUwgQUREUkVTUyAqPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIGlkPSJlbWFpbEFkZHJlc3MiIHBsYWNlaG9sZGVyPSJFbnRlciB5b3VyIGVtYWlsIGFkZHJlc3MiIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5QSE9ORSBOVU1CRVI8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lLWlucHV0LWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iY291bnRyeUNvZGUiIGNsYXNzPSJjb3VudHJ5LXNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMSI+8J+HuvCfh7ggKzE8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Iis0NCI+8J+HrPCfh6cgKzQ0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjU2IiBzZWxlY3RlZD7wn4e68J+HrCArMjU2PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjU0Ij7wn4ew8J+HqiArMjU0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjU1Ij7wn4e58J+HvyArMjU1PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjUwIj7wn4e38J+HvCArMjUwPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjQzIj7wn4eo8J+HqSArMjQzPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjUxIj7wn4eq8J+HuSArMjUxPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjM0Ij7wn4ez8J+HrCArMjM0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjMzIj7wn4es8J+HrSArMjMzPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrMjciPvCfh7/wn4emICsyNzwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iKzkxIj7wn4eu8J+HsyArOTE8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Iis5NzEiPvCfh6bwn4eqICs5NzE8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Iis2MSI+8J+HpvCfh7ogKzYxPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrNDkiPvCfh6nwn4eqICs0OTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iKzMzIj7wn4er8J+HtyArMzM8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiszOSI+8J+HrvCfh7kgKzM5PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrODYiPvCfh6jwn4ezICs4Njwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iKzgxIj7wn4ev8J+HtSArODE8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Iis1NSI+8J+Hp/Cfh7cgKzU1PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIrNTIiPvCfh7Lwn4e9ICs1Mjwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRlbCIgaWQ9InBob25lTnVtYmVyIiBwbGFjZWhvbGRlcj0iUGhvbmUgbnVtYmVyIChvcHRpb25hbCkiIGNsYXNzPSJwaG9uZS1pbnB1dCI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQtYnRuIiBpZD0ic3VibWl0QnRuIj7wn5qAIFVOTE9DSyBNWSBQUklaRTwvYnV0dG9uPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZm9ybS1ub3RlIj7wn5SSIFlvdXIgaW5mb3JtYXRpb24gaXMgc2VjdXJlIGFuZCB3aWxsIG5ldmVyIGJlIHNoYXJlZC4gQnkgc3VibWl0dGluZywgeW91IGFncmVlIHRvIHJlY2VpdmUgdXBkYXRlcyBmcm9tIFNIRSBFLUJvc3MgU29sdXRpb25pc3QuPC9wPgogICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPCEtLSBMb2FkaW5nIE92ZXJsYXkgLS0+CiAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkiIGlkPSJsb2FkaW5nT3ZlcmxheSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1jb250ZW50Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPHAgY2xhc3M9ImxvYWRpbmctdGV4dCI+VW5sb2NraW5nIHlvdXIgcHJpemUuLi48L3A+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICAvLyBNeXN0ZXJ5IFByaXplcyAtIDQgT1BUSU9OUwogICAgICAgIGNvbnN0IHByaXplcyA9IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmFtZTogIlNPVyBTRUVEUyBGT1IgU1VDQ0VTUyIsCiAgICAgICAgICAgICAgICBpY29uOiAi8J+MsSIsCiAgICAgICAgICAgICAgICB1cmw6ICJodHRwczovL3NoZWVib3Nzc29sdXRpb25pc3QuY29tL3Nvdy1zZWVkcy1mb3Itc3VjY2VzcyIsCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkEgdHJhbnNmb3JtYXRpdmUgd2ViaW5hciBzZXJpZXMgb24gTUlTU0lPTiwgTUlORFNFVCwgTU9USVZBVElPTiwgTU9NRU5UVU0gJiBNSUxFU1RPTkVTLiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmFtZTogIlNJTUJBIE1FVEhPRDogUGVyc29uYWwgQnJhbmQgTWFzdGVyeSIsCiAgICAgICAgICAgICAgICBpY29uOiAi8J+mgSIsCiAgICAgICAgICAgICAgICB1cmw6ICJodHRwczovL2R5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbS9zaW1iYS1tZXRob2QtcmVwbGF5IiwKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiRGlzY292ZXIgdGhlIHBvd2VyIG9mIHlvdXIgcGVyc29uYWwgYnJhbmQgYXZhdGFyIGFuZCB1bmxlYXNoIHlvdXIgYXV0aGVudGljIHByZXNlbmNlLiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmFtZTogIkNFTyBBSSBGTElHSFQgREVDSyIsCiAgICAgICAgICAgICAgICBpY29uOiAi4pyI77iPIiwKICAgICAgICAgICAgICAgIHVybDogImh0dHBzOi8vZHluYW1pY3BhcmFkaWdtc2FjYWRlbXkuY29tL25hdmlnYXRpbmctbWFya2V0aW5nLXR1cmJ1bGVuY2UiLAogICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJOYXZpZ2F0ZSAyMXN0IENlbnR1cnkgTWFya2V0aW5nIHdpdGggQUkgYXMgeW91ciBjby1waWxvdCB0byBuZXcgaGVpZ2h0cy4iCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5hbWU6ICJPTkxJTkUgVkVOVFVSRVMgRS1DT1VSU0UiLAogICAgICAgICAgICAgICAgaWNvbjogIvCfmoAiLAogICAgICAgICAgICAgICAgdXJsOiAiaHR0cHM6Ly9lYWNhZGVteS5tZW50b3JzaGlwc3VjY2Vzcy5jb20vY291cnNlcy9zdXJ2ZXktb25saW5lLXZlbnR1cmVzIiwKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQSBGUkVFIGUtbGVhcm5pbmcgam91cm5leSB0byBldmFsdWF0ZSBhbmQgZW1iYXJrIG9uIHlvdXIgb25saW5lIGVhcm5pbmcgdm95YWdlLiIKICAgICAgICAgICAgfQogICAgICAgIF07CiAgICAgICAgCiAgICAgICAgbGV0IGN1cnJlbnRQcml6ZSA9IG51bGw7CiAgICAgICAgCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0gQ1JFQVRFIFNUQVJGSUVMRCA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVN0YXJmaWVsZCgpIHsKICAgICAgICAgICAgY29uc3Qgc3RhcmZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXJmaWVsZCcpOwogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE1MDsgaSsrKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdGFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICBzdGFyLmNsYXNzTmFtZSA9ICdzdGFyJyArIChNYXRoLnJhbmRvbSgpID4gMC45ID8gJyBiaWcnIDogJycpOwogICAgICAgICAgICAgICAgc3Rhci5zdHlsZS5sZWZ0ID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgICAgIHN0YXIuc3R5bGUudG9wID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgICAgIHN0YXIuc3R5bGUud2lkdGggPSBNYXRoLnJhbmRvbSgpICogNCArIDEgKyAncHgnOwogICAgICAgICAgICAgICAgc3Rhci5zdHlsZS5oZWlnaHQgPSBzdGFyLnN0eWxlLndpZHRoOwogICAgICAgICAgICAgICAgc3Rhci5zdHlsZS5hbmltYXRpb25EZWxheSA9IE1hdGgucmFuZG9tKCkgKiAzICsgJ3MnOwogICAgICAgICAgICAgICAgc3Rhci5zdHlsZS5hbmltYXRpb25EdXJhdGlvbiA9IChNYXRoLnJhbmRvbSgpICogMiArIDIpICsgJ3MnOwogICAgICAgICAgICAgICAgc3RhcmZpZWxkLmFwcGVuZENoaWxkKHN0YXIpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IENSRUFURSBGTE9BVElORyBFTEVNRU5UUyA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUZsb2F0aW5nRWxlbWVudHMoKSB7CiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmbG9hdGluZ0VsZW1lbnRzJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBGbG9hdGluZyBDcm93bnMKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHsKICAgICAgICAgICAgICAgIGNvbnN0IGNyb3duID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICBjcm93bi5jbGFzc05hbWUgPSAnZmxvYXRpbmctY3Jvd24nOwogICAgICAgICAgICAgICAgY3Jvd24udGV4dENvbnRlbnQgPSAn8J+RkSc7CiAgICAgICAgICAgICAgICBjcm93bi5zdHlsZS5sZWZ0ID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgICAgIGNyb3duLnN0eWxlLnRvcCA9IE1hdGgucmFuZG9tKCkgKiAxMDAgKyAnJSc7CiAgICAgICAgICAgICAgICBjcm93bi5zdHlsZS5hbmltYXRpb25EZWxheSA9IE1hdGgucmFuZG9tKCkgKiAxMCArICdzJzsKICAgICAgICAgICAgICAgIGNyb3duLnN0eWxlLmFuaW1hdGlvbkR1cmF0aW9uID0gKE1hdGgucmFuZG9tKCkgKiAxMCArIDE1KSArICdzJzsKICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjcm93bik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEZsb2F0aW5nIFN0YXJzCiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTI7IGkrKykgewogICAgICAgICAgICAgICAgY29uc3Qgc3RhciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgc3Rhci5jbGFzc05hbWUgPSAnZmxvYXRpbmctc3Rhcic7CiAgICAgICAgICAgICAgICBzdGFyLnRleHRDb250ZW50ID0gWyfirZAnLCAn4pyoJywgJ/CfjJ8nLCAn8J+SqyddW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDQpXTsKICAgICAgICAgICAgICAgIHN0YXIuc3R5bGUubGVmdCA9IE1hdGgucmFuZG9tKCkgKiAxMDAgKyAnJSc7CiAgICAgICAgICAgICAgICBzdGFyLnN0eWxlLnRvcCA9IE1hdGgucmFuZG9tKCkgKiAxMDAgKyAnJSc7CiAgICAgICAgICAgICAgICBzdGFyLnN0eWxlLmFuaW1hdGlvbkRlbGF5ID0gTWF0aC5yYW5kb20oKSAqIDE1ICsgJ3MnOwogICAgICAgICAgICAgICAgc3Rhci5zdHlsZS5hbmltYXRpb25EdXJhdGlvbiA9IChNYXRoLnJhbmRvbSgpICogMTUgKyAyMCkgKyAncyc7CiAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoc3Rhcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEZsb2F0aW5nIDIwMjYKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0OyBpKyspIHsKICAgICAgICAgICAgICAgIGNvbnN0IHllYXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICAgIHllYXIuY2xhc3NOYW1lID0gJ2Zsb2F0aW5nLTIwMjYnOwogICAgICAgICAgICAgICAgeWVhci50ZXh0Q29udGVudCA9ICcyMDI2JzsKICAgICAgICAgICAgICAgIHllYXIuc3R5bGUubGVmdCA9IChpICogMjUgKyBNYXRoLnJhbmRvbSgpICogMjApICsgJyUnOwogICAgICAgICAgICAgICAgeWVhci5zdHlsZS50b3AgPSAoTWF0aC5yYW5kb20oKSAqIDgwICsgMTApICsgJyUnOwogICAgICAgICAgICAgICAgeWVhci5zdHlsZS5hbmltYXRpb25EZWxheSA9IE1hdGgucmFuZG9tKCkgKiA1ICsgJ3MnOwogICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHllYXIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBGbG9hdGluZyBTcGFya2xlcwogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDI1OyBpKyspIHsKICAgICAgICAgICAgICAgIGNvbnN0IHNwYXJrbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICAgIHNwYXJrbGUuY2xhc3NOYW1lID0gJ2Zsb2F0aW5nLXNwYXJrbGUnOwogICAgICAgICAgICAgICAgc3BhcmtsZS5zdHlsZS5sZWZ0ID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgICAgIHNwYXJrbGUuc3R5bGUudG9wID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgICAgIHNwYXJrbGUuc3R5bGUuYW5pbWF0aW9uRGVsYXkgPSBNYXRoLnJhbmRvbSgpICogOCArICdzJzsKICAgICAgICAgICAgICAgIHNwYXJrbGUuc3R5bGUuYW5pbWF0aW9uRHVyYXRpb24gPSAoTWF0aC5yYW5kb20oKSAqIDUgKyA1KSArICdzJzsKICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChzcGFya2xlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSBQQVRIIFNFTEVDVElPTiA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGZ1bmN0aW9uIHNlbGVjdFBhdGgocGF0aCkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hvaWNlU2VjdGlvbicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAocGF0aCA9PT0gJ2NoYW5jZScpIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aGVlbFNlY3Rpb24nKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnYWxsZXJ5U2VjdGlvbicpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIEdvIEJhY2sKICAgICAgICBmdW5jdGlvbiBnb0JhY2soKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aGVlbFNlY3Rpb24nKS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dhbGxlcnlTZWN0aW9uJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaG9pY2VTZWN0aW9uJykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0gU1BJTiBXSEVFTCA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGxldCBpc1NwaW5uaW5nID0gZmFsc2U7CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gc3BpbldoZWVsKCkgewogICAgICAgICAgICBpZiAoaXNTcGlubmluZykgcmV0dXJuOwogICAgICAgICAgICBpc1NwaW5uaW5nID0gdHJ1ZTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IHdoZWVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3doZWVsJyk7CiAgICAgICAgICAgIGNvbnN0IHNwaW5CdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BpbkJ0bicpOwogICAgICAgICAgICAKICAgICAgICAgICAgc3BpbkJ0bi5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIHNwaW5CdG4udGV4dENvbnRlbnQgPSAn4pyoIERFU1RJTlkgREVDSURJTkcuLi4nOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gUmFuZG9tIHJlc3VsdCAoMCwgMSwgMiwgb3IgMykKICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBDYWxjdWxhdGUgcm90YXRpb24KICAgICAgICAgICAgY29uc3QgYmFzZVJvdGF0aW9uID0gMjUyMDsgLy8gNyBmdWxsIHNwaW5zCiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRBbmdsZSA9IDkwOwogICAgICAgICAgICBjb25zdCByZXN1bHRBbmdsZSA9IHJlc3VsdCAqIHNlZ21lbnRBbmdsZSArIHNlZ21lbnRBbmdsZSAvIDI7CiAgICAgICAgICAgIGNvbnN0IHRvdGFsUm90YXRpb24gPSBiYXNlUm90YXRpb24gKyAoMzYwIC0gcmVzdWx0QW5nbGUpOwogICAgICAgICAgICAKICAgICAgICAgICAgd2hlZWwuc3R5bGUudHJhbnNmb3JtID0gYHJvdGF0ZSgke3RvdGFsUm90YXRpb259ZGVnKWA7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBTaG93IHJlc3VsdCBhZnRlciBzcGluCiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgc2hvd1Jlc3VsdChyZXN1bHQsIGZhbHNlKTsKICAgICAgICAgICAgICAgIGlzU3Bpbm5pbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHNwaW5CdG4uZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHNwaW5CdG4udGV4dENvbnRlbnQgPSAn8J+OsCBTUElOIEZPUiBZT1VSIERFU1RJTlknOwogICAgICAgICAgICB9LCA1NTAwKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0gU0VMRUNUIERPT1IgPT09PT09PT09PT09PT09PT09PT0KICAgICAgICBmdW5jdGlvbiBzZWxlY3REb29yKGluZGV4KSB7CiAgICAgICAgICAgIHNob3dSZXN1bHQoaW5kZXgsIHRydWUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSBTSE9XIFJFU1VMVCA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGZ1bmN0aW9uIHNob3dSZXN1bHQoaW5kZXgsIGZyb21Eb29yID0gZmFsc2UpIHsKICAgICAgICAgICAgY3VycmVudFByaXplID0gcHJpemVzW2luZGV4XTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRJY29uJykudGV4dENvbnRlbnQgPSBjdXJyZW50UHJpemUuaWNvbjsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdFRpdGxlJykudGV4dENvbnRlbnQgPSBmcm9tRG9vciA/ICdUSEUgRE9PUiBPUEVOUyEnIDogJ0RFU1RJTlkgUkVWRUFMRUQhJzsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdFByaXplJykudGV4dENvbnRlbnQgPSBjdXJyZW50UHJpemUubmFtZTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdERlc2NyaXB0aW9uJykudGV4dENvbnRlbnQgPSBjdXJyZW50UHJpemUuZGVzY3JpcHRpb247CiAgICAgICAgICAgIAogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0TW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENvbmZldHRpIQogICAgICAgICAgICBjcmVhdGVDb25mZXR0aSgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSBPUEVOIENBUFRVUkUgRk9STSA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGZ1bmN0aW9uIG9wZW5DYXB0dXJlRm9ybSgpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdE1vZGFsJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXB0dXJlTW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0gRk9STSBTVUJNSVNTSU9OID09PT09PT09PT09PT09PT09PT09CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhcHR1cmVGb3JtJykuYWRkRXZlbnRMaXN0ZW5lcignc3VibWl0JywgYXN5bmMgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIAogICAgICAgICAgICBjb25zdCBzdWJtaXRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VibWl0QnRuJyk7CiAgICAgICAgICAgIGNvbnN0IGZ1bGxOYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Z1bGxOYW1lJykudmFsdWUudHJpbSgpOwogICAgICAgICAgICBjb25zdCBlbWFpbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlbWFpbEFkZHJlc3MnKS52YWx1ZS50cmltKCk7CiAgICAgICAgICAgIGNvbnN0IGNvdW50cnlDb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvdW50cnlDb2RlJykudmFsdWU7CiAgICAgICAgICAgIGNvbnN0IHBob25lTnVtYmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bob25lTnVtYmVyJykudmFsdWUudHJpbSgpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gVmFsaWRhdGlvbgogICAgICAgICAgICBpZiAoIWZ1bGxOYW1lIHx8ICFlbWFpbCkgewogICAgICAgICAgICAgICAgYWxlcnQoJ1BsZWFzZSBmaWxsIGluIHlvdXIgbmFtZSBhbmQgZW1haWwgYWRkcmVzcy4nKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gRm9ybWF0IHBob25lIG51bWJlcgogICAgICAgICAgICBjb25zdCBmdWxsUGhvbmUgPSBwaG9uZU51bWJlciA/IGAke2NvdW50cnlDb2RlfSAke3Bob25lTnVtYmVyfWAgOiAnTm90IHByb3ZpZGVkJzsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIERpc2FibGUgYnV0dG9uIGFuZCBzaG93IGxvYWRpbmcKICAgICAgICAgICAgc3VibWl0QnRuLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAgICAgc3VibWl0QnRuLnRleHRDb250ZW50ID0gJ+KcqCBQcm9jZXNzaW5nLi4uJzsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvYWRpbmdPdmVybGF5JykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBQcmVwYXJlIGZvcm0gZGF0YSBmb3IgRm9ybVN1Ym1pdAogICAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpOwogICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ0Z1bGxfTmFtZScsIGZ1bGxOYW1lKTsKICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdFbWFpbCcsIGVtYWlsKTsKICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdQaG9uZScsIGZ1bGxQaG9uZSk7CiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnUHJpemVfV29uJywgY3VycmVudFByaXplLm5hbWUpOwogICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ1ByaXplX1VSTCcsIGN1cnJlbnRQcml6ZS51cmwpOwogICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ1N1Ym1pc3Npb25fRGF0ZScsIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7CiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnX3N1YmplY3QnLCAn8J+OsCBORVcgTE9UVEVSWSBXSU5ORVIgLSAyMDI2IFNvdmVyZWlnbiBMb3R0ZXJ5OiAnICsgY3VycmVudFByaXplLm5hbWUpOwogICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ19jYXB0Y2hhJywgJ2ZhbHNlJyk7CiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnX3RlbXBsYXRlJywgJ3RhYmxlJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgLy8gU3VibWl0IHRvIEZvcm1TdWJtaXQKICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJ2h0dHBzOi8vZm9ybXN1Ym1pdC5jby9hamF4L2R5bmFtaWNwYXJhZGlnbXNlYWNhZGVteUBnbWFpbC5jb20nLCB7CiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgICAgICAgICAgICAgYm9keTogZm9ybURhdGEKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uub2spIHsKICAgICAgICAgICAgICAgICAgICAvLyBTdWNjZXNzISBSZWRpcmVjdCB0byBwcml6ZQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sb2FkaW5nLXRleHQnKS50ZXh0Q29udGVudCA9ICfwn46JIFN1Y2Nlc3MhIFJlZGlyZWN0aW5nIHRvIHlvdXIgcHJpemUuLi4nOwogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGN1cnJlbnRQcml6ZS51cmw7CiAgICAgICAgICAgICAgICAgICAgfSwgMTUwMCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU3VibWlzc2lvbiBmYWlsZWQnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Zvcm0gc3VibWlzc2lvbiBlcnJvcjonLCBlcnJvcik7CiAgICAgICAgICAgICAgICAvLyBFdmVuIGlmIEZvcm1TdWJtaXQgZmFpbHMsIHN0aWxsIHJlZGlyZWN0IChkb24ndCBibG9jayB0aGUgdXNlcikKICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sb2FkaW5nLXRleHQnKS50ZXh0Q29udGVudCA9ICfwn46JIFJlZGlyZWN0aW5nIHRvIHlvdXIgcHJpemUuLi4nOwogICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBjdXJyZW50UHJpemUudXJsOwogICAgICAgICAgICAgICAgfSwgMTUwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICAKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSBDTE9TRSBNT0RBTFMgPT09PT09PT09PT09PT09PT09PT0KICAgICAgICBmdW5jdGlvbiBjbG9zZVJlc3VsdE1vZGFsKCkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0TW9kYWwnKS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFJlc2V0IHdoZWVsCiAgICAgICAgICAgIGNvbnN0IHdoZWVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3doZWVsJyk7CiAgICAgICAgICAgIHdoZWVsLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7CiAgICAgICAgICAgIHdoZWVsLnN0eWxlLnRyYW5zZm9ybSA9ICdyb3RhdGUoMGRlZyknOwogICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgIHdoZWVsLnN0eWxlLnRyYW5zaXRpb24gPSAndHJhbnNmb3JtIDVzIGN1YmljLWJlemllcigwLjE3LCAwLjY3LCAwLjEyLCAwLjk5KSc7CiAgICAgICAgICAgIH0sIDEwMCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IENSRUFURSBDT05GRVRUSSA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUNvbmZldHRpKCkgewogICAgICAgICAgICBjb25zdCBjb2xvcnMgPSBbJyNkNGEwM2MnLCAnI2YxYzQwZicsICcjYjc2ZTc5JywgJyNjYzAwMDAnLCAnIzBlNmVjNScsICcjNmIyZDVjJywgJyNmZmZmZmYnXTsKICAgICAgICAgICAgY29uc3Qgc2hhcGVzID0gWyfirZAnLCAn4pyoJywgJ/CfkZEnLCAn8J+MnycsICfwn5KrJywgJ/CfjoknLCAn8J+OiiddOwogICAgICAgICAgICAKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4MDsgaSsrKSB7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25mZXR0aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgICAgIGNvbmZldHRpLmNsYXNzTmFtZSA9ICdjb25mZXR0aSc7CiAgICAgICAgICAgICAgICAgICAgY29uZmV0dGkuc3R5bGUubGVmdCA9IE1hdGgucmFuZG9tKCkgKiAxMDAgKyAndncnOwogICAgICAgICAgICAgICAgICAgIGNvbmZldHRpLnN0eWxlLmZvbnRTaXplID0gTWF0aC5yYW5kb20oKSAqIDIwICsgMTUgKyAncHgnOwogICAgICAgICAgICAgICAgICAgIGNvbmZldHRpLnRleHRDb250ZW50ID0gc2hhcGVzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHNoYXBlcy5sZW5ndGgpXTsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbmZldHRpKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGNvbmZldHRpLnJlbW92ZSgpLCA0MDAwKTsKICAgICAgICAgICAgICAgIH0sIGkgKiAzMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0gSU5JVElBTElaRSA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIGNyZWF0ZVN0YXJmaWVsZCgpOwogICAgICAgIGNyZWF0ZUZsb2F0aW5nRWxlbWVudHMoKTsKICAgIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
2026 SOVEREIGN LOTTERY
SHE E-BOSS SOLUTIONIST™ Presents
Four mysteries await ~ Every door leads to transformation
🔥 Exciting
🎰
TAKE YOUR CHANCES
Surrender to fate. Spin the Sovereign Wheel and let the universe reveal what transformation awaits you.
👑
I'M IN CHARGE
Trust your intuition. Choose the mystery door that calls to your sovereign spirit ~ but only destiny knows what lies behind.
🔮
✨
🌟
💫
?
Choose Your Mystery Door
Each door holds a different path to transformation ~ which calls to you?
🚪
DOOR ONE
"Where seeds become forests"
~ growth awaits ~
🚪
DOOR TWO
"Where lions find their roar"
~ power awaits ~
🚪
DOOR THREE
"Where eagles learn to soar"
~ elevation awaits ~
🚪
DOOR FOUR
"Where voyages begin"
~ discovery awaits ~
🎉
THE DOOR OPENS!
Your destiny has been revealed...
Prize Name
Description
🎁
CLAIM YOUR SOVEREIGN PRIZE
Enter your details to unlock instant access to your transformation
Unlocking your prize...