{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8IS0tCiAgICDilZTilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZcKICAgIOKVkSAgVklSVFVBTCBIQU5EU0hBS0UgQUZSSUNBIC0gRlJPTlQgRE9PUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWjCiAgICDilZEgIFVSTDogdmlydHVhbC5oYW5kc2hha2UuYWZyaWNhL3ZpcnR1YWwtaW52aXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVkSAgUFVSUE9TRTogRW50cnkgcG9pbnQgd2l0aCA0IEVWRU4gcGF0aCBvcHRpb25zIGZvciBzZWdtZW50YXRpb24gICAgICAgICAgICAgIOKVkQogICAg4pWRICBWRVJTSU9OOiBWLTIgT0ZGSUNJQUwgLSBTWU1NRVRSSUNBTCBMQVlPVVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilZEgIExBU1QgVVBEQVRFRDogSmFudWFyeSAyMDI2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVoOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVowogICAg4pWRICBQQVRIUzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilZEgIDEuIFJlYWR5IHRvIFNoaW5lIOKGkiAvZGlnaXRhbC1jYXJkcyAocHJpY2luZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWRICAyLiBUYWtlIE15IENoYW5jZXMg4oaSIC92YXVsdCAoc3BpbiB3aGVlbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEKICAgIOKVkSAgMy4gT3duIFlvdXIgRG9tYWluIOKGkiAvZG9tYWlucyAocHJlbWl1bSBkb21haW5zKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilZEgIDQuIEpvaW4gYSBOZXR3b3JrIOKGkiAvbmV0d29ya3MgKGdyb3VwcyAmIGNvbGxlY3RpdmVzKSAgICAgICAgICAgICAgICAgICAgICAgIOKVkQogICAg4pWg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWjCiAgICDilZEgIMKpIDIwMjYgTXVrYXNhIFZlbnR1cmUgUGFydG5lcnMgTExDLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAg4pWRCiAgICDilZrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZ0KICAgIC0tPgogICAgCiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDx0aXRsZT5WaXJ0dWFsIEhhbmRzaGFrZSBBZnJpY2EgfCBZb3VyIERpZ2l0YWwgUHJlc2VuY2UgQXdhaXRzPC90aXRsZT4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJQcmVtaXVtIGRpZ2l0YWwgYnVzaW5lc3MgY2FyZHMgZm9yIEFmcmljYSBhbmQgdGhlIERpYXNwb3JhLiBPd24geW91ciBkaWdpdGFsIHByZXNlbmNlIHdpdGggU1NMLXNlY3VyZWQsIG1vYmlsZS1mcmllbmRseSBjYXJkcy4gQ2hvb3NlIHlvdXIgcGF0aCB0byBkaWdpdGFsIHNvdmVyZWlnbnR5LiI+CiAgICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9ImluZGV4LCBmb2xsb3ciPgogICAgPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vdmlydHVhbC5oYW5kc2hha2UuYWZyaWNhL3ZpcnR1YWwtaW52aXRlIj4KICAgIAogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1QbGF5ZmFpcitEaXNwbGF5OndnaHRANDAwOzUwMDs2MDA7NzAwOzgwMCZmYW1pbHk9Q29ybW9yYW50K0dhcmFtb25kOml0YWwsd2dodEAwLDQwMDswLDUwMDswLDYwMDsxLDQwMCZmYW1pbHk9TnVuaXRvOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMDs4MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgogICAgCiAgICA8c3R5bGU+CiAgICAgICAgOnJvb3QgewogICAgICAgICAgICAtLW5hdnk6ICMwRDFCMkE7CiAgICAgICAgICAgIC0taW5kaWdvOiAjMUMxRjRBOwogICAgICAgICAgICAtLWdvbGQ6ICNENEFGMzc7CiAgICAgICAgICAgIC0tZ29sZC1saWdodDogI0U4QzU0NzsKICAgICAgICAgICAgLS1kZWVwZ29sZDogI0I4OTcyRTsKICAgICAgICAgICAgLS1pdm9yeTogI0Y4RjRFQzsKICAgICAgICAgICAgLS1jaGFyY29hbDogIzBhMGExMjsKICAgICAgICAgICAgLS1ncmVlbjogIzEwYjk4MTsKICAgICAgICAgICAgLS1wdXJwbGU6ICM4YjVjZjY7CiAgICAgICAgICAgIC0tY3lhbjogIzA2YjZkNDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQogICAgICAgIAogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ051bml0bycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXJjb2FsKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PSBBTklNQVRFRCBCQUNLR1JPVU5EID09PT09PT09PT0gKi8KICAgICAgICAuYmctbWFzdGVyIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB6LWluZGV4OiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDIwJSAxMCUsIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjE1KSAwJSwgdHJhbnNwYXJlbnQgNTAlKSwKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDgwJSA5MCUsIHJnYmEoMTk3LCAxNTUsIDExOCwgMC4xMikgMCUsIHRyYW5zcGFyZW50IDQwJSksCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA1MCUgNTAlLCByZ2JhKDI4LCAzMSwgNzQsIDAuNCkgMCUsIHRyYW5zcGFyZW50IDYwJSksCiAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1jaGFyY29hbCkgMCUsIHZhcigtLW5hdnkpIDUwJSwgdmFyKC0taW5kaWdvKSAxMDAlKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PSBGTE9BVElORyBPUkJTID09PT09PT09PT0gKi8KICAgICAgICAub3JiIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGZpbHRlcjogYmx1cig4MHB4KTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXRPcmIgMjBzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICAub3JiLTEgeyB3aWR0aDogNDAwcHg7IGhlaWdodDogNDAwcHg7IGJhY2tncm91bmQ6IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjE1KTsgdG9wOiA1JTsgbGVmdDogLTEwJTsgYW5pbWF0aW9uLWRlbGF5OiAwczsgfQogICAgICAgIC5vcmItMiB7IHdpZHRoOiAzNTBweDsgaGVpZ2h0OiAzNTBweDsgYmFja2dyb3VuZDogcmdiYSgxOTcsIDE1NSwgMTE4LCAwLjEyKTsgdG9wOiA1MCU7IHJpZ2h0OiAtMTAlOyBhbmltYXRpb24tZGVsYXk6IDdzOyB9CiAgICAgICAgLm9yYi0zIHsgd2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4OyBiYWNrZ3JvdW5kOiByZ2JhKDEzOSwgOTIsIDI0NiwgMC4xKTsgYm90dG9tOiAxMCU7IGxlZnQ6IDIwJTsgYW5pbWF0aW9uLWRlbGF5OiAxNHM7IH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0T3JiIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgxKTsgb3BhY2l0eTogMC42OyB9CiAgICAgICAgICAgIDI1JSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDQwcHgsIC00MHB4KSBzY2FsZSgxLjEpOyBvcGFjaXR5OiAwLjg7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTMwcHgsIDMwcHgpIHNjYWxlKDAuOSk7IG9wYWNpdHk6IDAuNTsgfQogICAgICAgICAgICA3NSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzMHB4LCA0MHB4KSBzY2FsZSgxLjA1KTsgb3BhY2l0eTogMC43OyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT0gRkxPQVRJTkcgU1RBUlMgPT09PT09PT09PSAqLwogICAgICAgIC5zdGFycy1jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIC5zdGFyIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbTsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgYW5pbWF0aW9uOiB0d2lua2xlIDRzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIHR3aW5rbGUgewogICAgICAgICAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMC41KSByb3RhdGUoMGRlZyk7IH0KICAgICAgICAgICAgNTAlIHsgb3BhY2l0eTogMC44OyB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSgxODBkZWcpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT0gU1BBUktMRSBQQVJUSUNMRVMgPT09PT09PT09PSAqLwogICAgICAgIC5zcGFya2xlIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB3aWR0aDogNHB4OwogICAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc3BhcmtsZVB1bHNlIDNzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIHNwYXJrbGVQdWxzZSB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiBzY2FsZSgwKTsgfQogICAgICAgICAgICA1MCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBib3gtc2hhZG93OiAwIDAgMTBweCB2YXIoLS1nb2xkKSwgMCAwIDIwcHggdmFyKC0tZ29sZCk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PSBTSE9PVElORyBTVEFSUyA9PT09PT09PT09ICovCiAgICAgICAgLnNob290aW5nLXN0YXIgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHdpZHRoOiAxMjBweDsKICAgICAgICAgICAgaGVpZ2h0OiAycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tZ29sZCksIHRyYW5zcGFyZW50KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMjsKICAgICAgICB9CiAgICAgICAgLnNob290aW5nLXN0YXI6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgICAgIGhlaWdodDogOHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTBweCB2YXIoLS1nb2xkKSwgMCAwIDIwcHggdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICB9CiAgICAgICAgLnNob290aW5nLXN0YXI6bnRoLWNoaWxkKDEpIHsgdG9wOiAxNSU7IGFuaW1hdGlvbjogc2hvb3RpbmdTdGFyIDZzIGxpbmVhciBpbmZpbml0ZSAxczsgfQogICAgICAgIC5zaG9vdGluZy1zdGFyOm50aC1jaGlsZCgyKSB7IHRvcDogMzUlOyBhbmltYXRpb246IHNob290aW5nU3RhciA3cyBsaW5lYXIgaW5maW5pdGUgM3M7IH0KICAgICAgICAuc2hvb3Rpbmctc3RhcjpudGgtY2hpbGQoMykgeyB0b3A6IDU1JTsgYW5pbWF0aW9uOiBzaG9vdGluZ1N0YXIgNXMgbGluZWFyIGluZmluaXRlIDVzOyB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBzaG9vdGluZ1N0YXIgewogICAgICAgICAgICAwJSB7IGxlZnQ6IC0xNTBweDsgb3BhY2l0eTogMDsgfQogICAgICAgICAgICA1JSB7IG9wYWNpdHk6IDE7IH0KICAgICAgICAgICAgNjAlIHsgb3BhY2l0eTogMTsgfQogICAgICAgICAgICAxMDAlIHsgbGVmdDogMTEwJTsgb3BhY2l0eTogMDsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiA9PT09PT09PT09IE1BSU4gQ09OVEFJTkVSID09PT09PT09PT0gKi8KICAgICAgICAubWFpbi1jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMjBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PSBMT0dPID09PT09PT09PT0gKi8KICAgICAgICAubG9nbyB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAzMHB4OwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAubG9nby10ZXh0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgfQogICAgICAgIC5sb2dvLXRleHQgc3BhbiB7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT0gSEVSTyBDT05URU5UID09PT09PT09PT0gKi8KICAgICAgICAuaGVyby1jb250ZW50IHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXgtd2lkdGg6IDcwMHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaGVyby1iYWRnZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAzMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluRG93biAwLjhzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5oZXJvLWJhZGdlIHNwYW4gewogICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubWFpbi1oZWFkbGluZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDIuMnJlbSwgN3Z3LCA0cmVtKTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5VcCAwLjhzIGVhc2UgMC4ycyBib3RoOwogICAgICAgIH0KICAgICAgICAubWFpbi1oZWFkbGluZSAubGluZTEgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICB9CiAgICAgICAgLm1haW4taGVhZGxpbmUgLmxpbmUyIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1nb2xkLWxpZ2h0KSwgdmFyKC0tZ29sZCkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgYXV0bzsKICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICBhbmltYXRpb246IHNoaW1tZXIgNHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIHNoaW1tZXIgewogICAgICAgICAgICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIGNlbnRlcjsgfQogICAgICAgICAgICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSBjZW50ZXI7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnN1Yi1oZWFkbGluZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMXJlbSwgMi41dncsIDEuM3JlbSk7CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC43KTsKICAgICAgICAgICAgbWF4LXdpZHRoOiA1NTBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMC44cyBlYXNlIDAuNHMgYm90aDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW5Eb3duIHsKICAgICAgICAgICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7IH0KICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW5VcCB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7IH0KICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PSBQQVRIIENBUkRTIC0gMngyIEVWRU4gR1JJRCA9PT09PT09PT09ICovCiAgICAgICAgLnBhdGhzLWdyaWQgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgICAgICAgICBnYXA6IDIwcHg7CiAgICAgICAgICAgIG1heC13aWR0aDogNzAwcHg7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDAuOHMgZWFzZSAwLjZzIGJvdGg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYXRoLWNhcmQgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4yKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgcGFkZGluZzogMzVweCAyNXB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGF0aC1jYXJkOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOwogICAgICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgdmFyKC0tZ29sZCksIHRyYW5zcGFyZW50KTsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYXRoLWNhcmQ6OmFmdGVyIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAwJSwgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSkgMCUsIHRyYW5zcGFyZW50IDYwJSk7CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBhdGgtY2FyZDpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSBzY2FsZSgxLjAyKTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAyNXB4IDYwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMik7CiAgICAgICAgfQogICAgICAgIC5wYXRoLWNhcmQ6aG92ZXI6OmJlZm9yZSB7IG9wYWNpdHk6IDE7IH0KICAgICAgICAucGF0aC1jYXJkOmhvdmVyOjphZnRlciB7IG9wYWNpdHk6IDE7IH0KICAgICAgICAKICAgICAgICAvKiBDYXJkIGNvbG9yIHZhcmlhdGlvbnMgKi8KICAgICAgICAucGF0aC1jYXJkLnNoaW5lIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSksIHJnYmEoMCwgMCwgMCwgMC40KSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYXRoLWNhcmQubHVja3kgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4xNSksIHJnYmEoMCwgMCwgMCwgMC40KSk7CiAgICAgICAgfQogICAgICAgIC5wYXRoLWNhcmQubHVja3k6aG92ZXIgewogICAgICAgICAgICBib3gtc2hhZG93OiAwIDI1cHggNjBweCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4yNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYXRoLWNhcmQuZG9tYWluIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg2LCAxODIsIDIxMiwgMC4xMiksIHJnYmEoMCwgMCwgMCwgMC40KSk7CiAgICAgICAgfQogICAgICAgIC5wYXRoLWNhcmQuZG9tYWluOmhvdmVyIHsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAyNXB4IDYwcHggcmdiYSg2LCAxODIsIDIxMiwgMC4yKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBhdGgtY2FyZC5uZXR3b3JrIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxNiwgMTg1LCAxMjksIDAuMTIpLCByZ2JhKDAsIDAsIDAsIDAuNCkpOwogICAgICAgIH0KICAgICAgICAucGF0aC1jYXJkLm5ldHdvcms6aG92ZXIgewogICAgICAgICAgICBib3gtc2hhZG93OiAwIDI1cHggNjBweCByZ2JhKDE2LCAxODUsIDEyOSwgMC4yKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBhdGgtaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5wYXRoLWNhcmQ6aG92ZXIgLnBhdGgtaWNvbiB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSkgcm90YXRlKDVkZWcpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGF0aC10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAucGF0aC1jYXJkOmhvdmVyIC5wYXRoLXRpdGxlIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGF0aC1kZXNjIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNjUpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGF0aC1hcnJvdyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAucGF0aC1jYXJkOmhvdmVyIC5wYXRoLWFycm93IHsKICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT0gQk9UVE9NIFRBR0xJTkUgPT09PT09PT09PSAqLwogICAgICAgIC5ib3R0b20tdGFnbGluZSB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDQwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5VcCAwLjhzIGVhc2UgMC44cyBib3RoOwogICAgICAgIH0KICAgICAgICAuYm90dG9tLXRhZ2xpbmUgcCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjQpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIH0KICAgICAgICAuYm90dG9tLXRhZ2xpbmUgLmdvbGQgewogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qID09PT09PT09PT0gRk9PVEVSID09PT09PT09PT0gKi8KICAgICAgICAuZm9vdGVyLWxpbmtzIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICBib3R0b206IDI1cHg7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDI1cHg7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItbGlua3MgYSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjQ4LCAyNDQsIDIzNiwgMC40KTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItbGlua3MgYTpob3ZlciB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogPT09PT09PT09PSBSRVNQT05TSVZFID09PT09PT09PT0gKi8KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLnBhdGhzLWdyaWQgewogICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDMyMHB4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5wYXRoLWNhcmQgewogICAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiBhdXRvOwogICAgICAgICAgICAgICAgcGFkZGluZzogMzBweCAyMHB4OwogICAgICAgICAgICAgICAgbWluLWhlaWdodDogMTgwcHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLm1haW4taGVhZGxpbmUgewogICAgICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjhyZW0sIDh2dywgMi41cmVtKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAuZm9vdGVyLWxpbmtzIHsKICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5oZXJvLWNvbnRlbnQgewogICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAgICA8IS0tIEJhY2tncm91bmQgRWxlbWVudHMgLS0+CiAgICA8ZGl2IGNsYXNzPSJiZy1tYXN0ZXIiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ib3JiIG9yYi0xIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im9yYiBvcmItMiI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJvcmIgb3JiLTMiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ic3RhcnMtY29udGFpbmVyIiBpZD0ic3RhcnMiPjwvZGl2PgogICAgCiAgICA8IS0tIFNob290aW5nIFN0YXJzIC0tPgogICAgPGRpdiBjbGFzcz0ic2hvb3Rpbmctc3RhciI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJzaG9vdGluZy1zdGFyIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InNob290aW5nLXN0YXIiPjwvZGl2PgogICAgCiAgICA8IS0tIE1haW4gQ29udGFpbmVyIC0tPgogICAgPGRpdiBjbGFzcz0ibWFpbi1jb250YWluZXIiPgogICAgICAgIDwhLS0gTG9nbyAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9nby10ZXh0Ij7wn6SdIFZpcnR1YWwgSGFuZHNoYWtlIDxzcGFuPkFmcmljYTwvc3Bhbj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIEhlcm8gQ29udGVudCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJoZXJvLWNvbnRlbnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZXJvLWJhZGdlIj4KICAgICAgICAgICAgICAgIDxzcGFuPuKcqCBZb3VyIERpZ2l0YWwgSm91cm5leSBCZWdpbnM8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGgxIGNsYXNzPSJtYWluLWhlYWRsaW5lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaW5lMSI+T3duIFlvdXIgRGlnaXRhbDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsaW5lMiI+UHJlc2VuY2UuPC9zcGFuPgogICAgICAgICAgICA8L2gxPgogICAgICAgICAgICAKICAgICAgICAgICAgPHAgY2xhc3M9InN1Yi1oZWFkbGluZSI+CiAgICAgICAgICAgICAgICBQcmVtaXVtIGRpZ2l0YWwgYnVzaW5lc3MgY2FyZHMgZm9yIEFmcmljYSBhbmQgdGhlIERpYXNwb3JhLiAKICAgICAgICAgICAgICAgIFNoYXJlIHdobyB5b3UgYXJlLCBhbnl3aGVyZSwgYW55dGltZS4KICAgICAgICAgICAgPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDwhLS0gUGF0aCBDYXJkcyAtIDJ4MiBFdmVuIEdyaWQgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0icGF0aHMtZ3JpZCI+CiAgICAgICAgICAgIDwhLS0gUmVhZHkgdG8gU2hpbmUgLS0+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdmlydHVhbC5oYW5kc2hha2UuYWZyaWNhL2RpZ2l0YWwtY2FyZHMiIGNsYXNzPSJwYXRoLWNhcmQgc2hpbmUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhdGgtaWNvbiI+4pyoPC9zcGFuPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwYXRoLXRpdGxlIj5SZWFkeSB0byBTaGluZTwvaDM+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGF0aC1kZXNjIj5HZXQgeW91ciBwcmVtaXVtIGRpZ2l0YWwgY2FyZCBub3cuIFN0YXJ0aW5nIGF0ICQxMC48L3A+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGF0aC1hcnJvdyI+4oaSPC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIAogICAgICAgICAgICA8IS0tIFRha2UgTXkgQ2hhbmNlcyAtLT4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly92aXJ0dWFsLmhhbmRzaGFrZS5hZnJpY2EvdmF1bHQiIGNsYXNzPSJwYXRoLWNhcmQgbHVja3kiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhdGgtaWNvbiI+8J+Osjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icGF0aC10aXRsZSI+VGFrZSBNeSBDaGFuY2VzPC9oMz4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYXRoLWRlc2MiPlNwaW4gdGhlIHdoZWVsIGZvciBleGNsdXNpdmUgZGlzY291bnRzIGFuZCBwcml6ZXMuPC9wPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhdGgtYXJyb3ciPuKGkjwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBPd24gWW91ciBEb21haW4gLS0+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdmlydHVhbC5oYW5kc2hha2UuYWZyaWNhL2RvbWFpbnMiIGNsYXNzPSJwYXRoLWNhcmQgZG9tYWluIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXRoLWljb24iPvCfjJA8L3NwYW4+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InBhdGgtdGl0bGUiPk93biBZb3VyIERvbWFpbjwvaDM+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGF0aC1kZXNjIj5HZXQgYSB1bmlxdWUgLmFmcmljYSBkb21haW4gb3IgcHJlbWl1bSBzdWJkb21haW4uPC9wPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhdGgtYXJyb3ciPuKGkjwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBKb2luIGEgTmV0d29yayAtLT4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly92aXJ0dWFsLmhhbmRzaGFrZS5hZnJpY2EvbmV0d29ya3MiIGNsYXNzPSJwYXRoLWNhcmQgbmV0d29yayI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGF0aC1pY29uIj7wn5GlPC9zcGFuPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwYXRoLXRpdGxlIj5Kb2luIGEgTmV0d29yazwvaDM+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGF0aC1kZXNjIj5Db25uZWN0IHdpdGggcHJvZmVzc2lvbmFsIGdyb3VwcyBhY3Jvc3MgQWZyaWNhLjwvcD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYXRoLWFycm93Ij7ihpI8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIEJvdHRvbSBUYWdsaW5lIC0tPgogICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbS10YWdsaW5lIj4KICAgICAgICAgICAgPHA+QnVpbGRpbmcgPHNwYW4gY2xhc3M9ImdvbGQiPkRpZ2l0YWwgU292ZXJlaWdudHk8L3NwYW4+IEFjcm9zcyBBZnJpY2EgJiBUaGUgRGlhc3BvcmE8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPCEtLSBGb290ZXIgTGlua3MgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWxpbmtzIj4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9oYW5kc2hha2UuYWZyaWNhIj5IYW5kc2hha2UuQWZyaWNhPC9hPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2JyYW5kaGFuZHNoYWtlLmNvbSI+QnJhbmRIYW5kc2hha2U8L2E+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdmlydHVhbC5oYW5kc2hha2UuYWZyaWNhL3Jld2FyZHMiPlJld2FyZHM8L2E+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICAvLyBDcmVhdGUgZmxvYXRpbmcgc3RhcnMKICAgICAgICBjb25zdCBzdGFyc0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGFycycpOwogICAgICAgIGNvbnN0IHN0YXJFbW9qaXMgPSBbJ+KcqCcsICfirZAnLCAn8J+SqycsICfwn4yfJ107CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7CiAgICAgICAgICAgIGNvbnN0IHN0YXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgc3Rhci5jbGFzc05hbWUgPSAnc3Rhcic7CiAgICAgICAgICAgIHN0YXIudGV4dENvbnRlbnQgPSBzdGFyRW1vamlzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHN0YXJFbW9qaXMubGVuZ3RoKV07CiAgICAgICAgICAgIHN0YXIuc3R5bGUubGVmdCA9IE1hdGgucmFuZG9tKCkgKiAxMDAgKyAnJSc7CiAgICAgICAgICAgIHN0YXIuc3R5bGUudG9wID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgc3Rhci5zdHlsZS5hbmltYXRpb25EZWxheSA9IE1hdGgucmFuZG9tKCkgKiA0ICsgJ3MnOwogICAgICAgICAgICBzdGFyLnN0eWxlLmFuaW1hdGlvbkR1cmF0aW9uID0gKDMgKyBNYXRoLnJhbmRvbSgpICogMikgKyAncyc7CiAgICAgICAgICAgIHN0YXJzQ29udGFpbmVyLmFwcGVuZENoaWxkKHN0YXIpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBDcmVhdGUgc3BhcmtsZXMKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE1OyBpKyspIHsKICAgICAgICAgICAgY29uc3Qgc3BhcmtsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICBzcGFya2xlLmNsYXNzTmFtZSA9ICdzcGFya2xlJzsKICAgICAgICAgICAgc3BhcmtsZS5zdHlsZS5sZWZ0ID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgc3BhcmtsZS5zdHlsZS50b3AgPSBNYXRoLnJhbmRvbSgpICogMTAwICsgJyUnOwogICAgICAgICAgICBzcGFya2xlLnN0eWxlLmFuaW1hdGlvbkRlbGF5ID0gTWF0aC5yYW5kb20oKSAqIDMgKyAncyc7CiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc3BhcmtsZSk7CiAgICAgICAgfQogICAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==","embed":""}
🤝 Virtual Handshake Africa
✨ Your Digital Journey Begins
Own Your Digital Presence.
Premium digital business cards for Africa and the Diaspora. Share who you are, anywhere, anytime.
✨
Ready to Shine
Get your premium digital card now. Starting at $10.
→ 🎲Take My Chances
Spin the wheel for exclusive discounts and prizes.
→ 🌐Own Your Domain
Get a unique .africa domain or premium subdomain.
→ 👥Join a Network
Connect with professional groups across Africa.
→Building Digital Sovereignty Across Africa & The Diaspora