cropper

TASN HANDSHAKE AFRICA 2026

  • TASN 2026
  • Birthday Lottery
  • TASN CARDS
    • TASN Verify
    • Verify Receipt
  • Flourishing Fund
    • Flourishing Gallery
    • Flourishing Badge
    • Funds Waitlist
  • Nominated Gallery
    • Sister Nomination
    • Nomination Thanks
  • TASN Thanks
{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgICBVUkw6IHRhc24uYnJhbmRoYW5kc2hha2UuY29tL3doZWVsCiAgICAgICAgIFBVUlBPU0U6IFRBU04gTWVtYmVyc2hpcCBXaGVlbCBvZiBGYWJ1bG91cyBGb3J0dW5lcyAtIFBheSBJdCBGb3J3YXJkCiAgICAgICAgIFVQREFURUQ6IEphbiAyMDI2IC0gRmlyZXdvcmtzLCB0eXBld3JpdGVyLCBuZXdzbGV0dGVyIGZvY3VzLCBlYXN0ZXIgZWdncwogICAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+VEFTTiAyMDI2IFdoZWVsIG9mIEZ1dHVyaXN0aWNhbGx5IEZydWl0ZnVsIEZvcnR1bmVzIHwgUGF5IEl0IEZvcndhcmQgfCBIYW5kc2hha2UgQWZyaWNhPC90aXRsZT4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJFeGNsdXNpdmUgZm9yIFRBU04gbWVtYmVycyEgU3BpbiB0aGUgV2hlZWwgb2YgRnV0dXJpc3RpY2FsbHkgRnJ1aXRmdWwgRm9ydHVuZXMgYW5kIHdpbiBwcml6ZXMgd29ydGggdXAgdG8gJDM5OSshIERpZ2l0YWwgY2FyZHMsIGZlYXR1cmUgYXJ0aWNsZXMsIGRpcmVjdG9yeSBsaXN0aW5ncywgYm9vayBmZWF0dXJlcyAmIG1vcmUuIEV2ZXJ5b25lIHdpbnMgc29tZXRoaW5nISI+CiAgICA8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly90YXNuLmJyYW5kaGFuZHNoYWtlLmNvbS93aGVlbCI+CiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6d2dodEA0MDA7NTAwOzYwMDs3MDA7ODAwOzkwMCZmYW1pbHk9Q29ybW9yYW50K0dhcmFtb25kOml0YWwsd2dodEAwLDQwMDswLDUwMDswLDYwMDswLDcwMDsxLDQwMDsxLDUwMCZmYW1pbHk9TnVuaXRvOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMDs4MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgogICAgPHN0eWxlPgogICAgICAgIDpyb290IHsKICAgICAgICAgICAgLS1mdXNjaGlhOiAjRTkxRThCOwogICAgICAgICAgICAtLWZ1c2NoaWEtZGFyazogI0M0MTc3QTsKICAgICAgICAgICAgLS1mdXNjaGlhLWxpZ2h0OiAjRkY2QkIzOwogICAgICAgICAgICAtLW9yYW5nZTogI0ZGNkIzNTsKICAgICAgICAgICAgLS1vcmFuZ2UtZGFyazogI0U1NUEyQjsKICAgICAgICAgICAgLS1vcmFuZ2UtbGlnaHQ6ICNGRjhGNjY7CiAgICAgICAgICAgIC0tbWludDogIzNFQjQ4OTsKICAgICAgICAgICAgLS1taW50LWRhcms6ICMyRDlFNzY7CiAgICAgICAgICAgIC0tbWludC1saWdodDogIzZGQ0FBNjsKICAgICAgICAgICAgLS1nb2xkOiAjRDRBRjM3OwogICAgICAgICAgICAtLWl2b3J5OiAjRkZGOUY1OwogICAgICAgICAgICAtLWNoYXJjb2FsOiAjMWExYTJlOwogICAgICAgICAgICAtLW5hdnk6ICMxNjIxM2U7CiAgICAgICAgICAgIC0tZGVlcDogIzBmMGYyMzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQogICAgICAgIGh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgZm9udC1zaXplOiAxOHB4OyB9CiAgICAgICAgCiAgICAgICAgYm9keSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTnVuaXRvJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcCk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEJBQ0tHUk9VTkQgKi8KICAgICAgICAuYmctbWFzdGVyIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB6LWluZGV4OiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDIwJSAxMCUsIHJnYmEoMjMzLCAzMCwgMTM5LCAwLjE1KSAwJSwgdHJhbnNwYXJlbnQgNTAlKSwKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDgwJSAzMCUsIHJnYmEoMjU1LCAxMDcsIDUzLCAwLjEyKSAwJSwgdHJhbnNwYXJlbnQgNDAlKSwKICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDUwJSA3MCUsIHJnYmEoNjIsIDE4MCwgMTM3LCAwLjEpIDAlLCB0cmFuc3BhcmVudCA1MCUpLAogICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tZGVlcCkgMCUsIHZhcigtLW5hdnkpIDUwJSwgdmFyKC0tY2hhcmNvYWwpIDEwMCUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBGTE9BVElORyBPUkJTICovCiAgICAgICAgLm9yYiB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgICBmaWx0ZXI6IGJsdXIoMTAwcHgpOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmbG9hdE9yYiAyNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIC5vcmItMSB7IHdpZHRoOiA1MDBweDsgaGVpZ2h0OiA1MDBweDsgYmFja2dyb3VuZDogcmdiYSgyMzMsIDMwLCAxMzksIDAuMik7IHRvcDogLTEwJTsgbGVmdDogLTE1JTsgfQogICAgICAgIC5vcmItMiB7IHdpZHRoOiA0MDBweDsgaGVpZ2h0OiA0MDBweDsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDEwNywgNTMsIDAuMTUpOyB0b3A6IDQwJTsgcmlnaHQ6IC0xNSU7IGFuaW1hdGlvbi1kZWxheTogOHM7IH0KICAgICAgICAub3JiLTMgeyB3aWR0aDogNDUwcHg7IGhlaWdodDogNDUwcHg7IGJhY2tncm91bmQ6IHJnYmEoNjIsIDE4MCwgMTM3LCAwLjE1KTsgYm90dG9tOiAtMTAlOyBsZWZ0OiAzMCU7IGFuaW1hdGlvbi1kZWxheTogMTZzOyB9CiAgICAgICAgQGtleWZyYW1lcyBmbG9hdE9yYiB7CiAgICAgICAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgc2NhbGUoMSk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTQwcHgsIDQwcHgpIHNjYWxlKDAuOSk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRklSRVdPUktTICovCiAgICAgICAgLmZpcmV3b3Jrcy1jb250YWluZXIgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgIHotaW5kZXg6IDM7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIC5maXJld29yayB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBmaXJld29ya0J1cnN0IDJzIGVhc2Utb3V0IGZvcndhcmRzOwogICAgICAgIH0KICAgICAgICBAa2V5ZnJhbWVzIGZpcmV3b3JrQnVyc3QgewogICAgICAgICAgICAwJSB7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApOwogICAgICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgICAgIDAgMCAwIDAgY3VycmVudENvbG9yLAogICAgICAgICAgICAgICAgICAgIDAgLTMwcHggMCAwIGN1cnJlbnRDb2xvciwKICAgICAgICAgICAgICAgICAgICAwIDMwcHggMCAwIGN1cnJlbnRDb2xvciwKICAgICAgICAgICAgICAgICAgICAzMHB4IDAgMCAwIGN1cnJlbnRDb2xvciwKICAgICAgICAgICAgICAgICAgICAtMzBweCAwIDAgMCBjdXJyZW50Q29sb3IsCiAgICAgICAgICAgICAgICAgICAgMjFweCAtMjFweCAwIDAgY3VycmVudENvbG9yLAogICAgICAgICAgICAgICAgICAgIDIxcHggMjFweCAwIDAgY3VycmVudENvbG9yLAogICAgICAgICAgICAgICAgICAgIC0yMXB4IC0yMXB4IDAgMCBjdXJyZW50Q29sb3IsCiAgICAgICAgICAgICAgICAgICAgLTIxcHggMjFweCAwIDAgY3VycmVudENvbG9yOwogICAgICAgICAgICB9CiAgICAgICAgICAgIDUwJSB7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgICAgIDAgMCAyMHB4IDEwcHggY3VycmVudENvbG9yLAogICAgICAgICAgICAgICAgICAgIDAgLTgwcHggMCAwIGN1cnJlbnRDb2xvciwKICAgICAgICAgICAgICAgICAgICAwIDgwcHggMCAwIGN1cnJlbnRDb2xvciwKICAgICAgICAgICAgICAgICAgICA4MHB4IDAgMCAwIGN1cnJlbnRDb2xvciwKICAgICAgICAgICAgICAgICAgICAtODBweCAwIDAgMCBjdXJyZW50Q29sb3IsCiAgICAgICAgICAgICAgICAgICAgNTZweCAtNTZweCAwIDAgY3VycmVudENvbG9yLAogICAgICAgICAgICAgICAgICAgIDU2cHggNTZweCAwIDAgY3VycmVudENvbG9yLAogICAgICAgICAgICAgICAgICAgIC01NnB4IC01NnB4IDAgMCBjdXJyZW50Q29sb3IsCiAgICAgICAgICAgICAgICAgICAgLTU2cHggNTZweCAwIDAgY3VycmVudENvbG9yOwogICAgICAgICAgICB9CiAgICAgICAgICAgIDEwMCUgewogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOwogICAgICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IAogICAgICAgICAgICAgICAgICAgIDAgMCA0MHB4IDIwcHggdHJhbnNwYXJlbnQsCiAgICAgICAgICAgICAgICAgICAgMCAtMTIwcHggMCAtM3B4IGN1cnJlbnRDb2xvciwKICAgICAgICAgICAgICAgICAgICAwIDEyMHB4IDAgLTNweCBjdXJyZW50Q29sb3IsCiAgICAgICAgICAgICAgICAgICAgMTIwcHggMCAwIC0zcHggY3VycmVudENvbG9yLAogICAgICAgICAgICAgICAgICAgIC0xMjBweCAwIDAgLTNweCBjdXJyZW50Q29sb3IsCiAgICAgICAgICAgICAgICAgICAgODRweCAtODRweCAwIC0zcHggY3VycmVudENvbG9yLAogICAgICAgICAgICAgICAgICAgIDg0cHggODRweCAwIC0zcHggY3VycmVudENvbG9yLAogICAgICAgICAgICAgICAgICAgIC04NHB4IC04NHB4IDAgLTNweCBjdXJyZW50Q29sb3IsCiAgICAgICAgICAgICAgICAgICAgLTg0cHggODRweCAwIC0zcHggY3VycmVudENvbG9yOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEZMT0FUSU5HIFNQQVJLTEVTICovCiAgICAgICAgLmZsb2F0aWVzLWNvbnRhaW5lciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMjsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgLmZsb2F0eSB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgZm9udC1zaXplOiAycmVtOwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICBhbmltYXRpb246IGZsb2F0eVJpc2UgOHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgZmxvYXR5UmlzZSB7CiAgICAgICAgICAgIDAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHZoKSByb3RhdGUoMGRlZykgc2NhbGUoMC41KTsgfQogICAgICAgICAgICAxMCUgeyBvcGFjaXR5OiAwLjg7IH0KICAgICAgICAgICAgOTAlIHsgb3BhY2l0eTogMC44OyB9CiAgICAgICAgICAgIDEwMCUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwdmgpIHJvdGF0ZSgzNjBkZWcpIHNjYWxlKDEuMik7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRlbnQtd3JhcHBlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEhFQURFUiAqLwogICAgICAgIC5oZWFkZXIgewogICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDI1cHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgICBnYXA6IDIwcHg7CiAgICAgICAgfQogICAgICAgIC5sb2dvIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIH0KICAgICAgICAubG9nby1oYW5kc2hha2UgeyBjb2xvcjogdmFyKC0tZnVzY2hpYSk7IH0KICAgICAgICAubG9nby1kaXZpZGVyIHsgY29sb3I6IHZhcigtLWdvbGQpOyBtYXJnaW46IDAgNXB4OyB9CiAgICAgICAgLmxvZ28tdGFzbiB7IGNvbG9yOiB2YXIoLS1taW50KTsgfQogICAgICAgIAogICAgICAgIC8qIFRZUEVXUklURVIgRUZGRUNUICovCiAgICAgICAgLnR5cGV3cml0ZXIgewogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgICAgYW5pbWF0aW9uOiB0eXBpbmcgNHMgc3RlcHMoNDAsIGVuZCksIGJsaW5rIDAuNzVzIHN0ZXAtZW5kIGluZmluaXRlOwogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgdHlwaW5nIHsKICAgICAgICAgICAgZnJvbSB7IHdpZHRoOiAwOyB9CiAgICAgICAgICAgIHRvIHsgd2lkdGg6IDEwMCU7IH0KICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBibGluayB7CiAgICAgICAgICAgIGZyb20sIHRvIHsgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfQogICAgICAgICAgICA1MCUgeyBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOyB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEhFUk8gKi8KICAgICAgICAuaGVybyB7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMjVweCA2MHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIC5oZXJvLWJhZGdlIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1mdXNjaGlhKSwgdmFyKC0tb3JhbmdlKSk7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgcGFkZGluZzogMTRweCA0MHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgICAgICAgIGFuaW1hdGlvbjogYmFkZ2VQdWxzZSAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBiYWRnZVB1bHNlIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDEwcHggNDBweCByZ2JhKDIzMywgMzAsIDEzOSwgMC40KTsgfQogICAgICAgICAgICA1MCUgeyBib3gtc2hhZG93OiAwIDE1cHggNjBweCByZ2JhKDIzMywgMzAsIDEzOSwgMC42KTsgfQogICAgICAgIH0KICAgICAgICAuaGVyby10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuOHJlbSwgNXZ3LCAyLjhyZW0pOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgIH0KICAgICAgICAuaGVyby1tYWluLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMi41cmVtLCA4dncsIDVyZW0pOwogICAgICAgICAgICBmb250LXdlaWdodDogOTAwOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1mdXNjaGlhKSwgdmFyKC0tb3JhbmdlKSwgdmFyKC0tZ29sZCksIHZhcigtLW1pbnQpKTsKICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAzMDAlIGF1dG87CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc2hpbW1lclRpdGxlIDVzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyBzaGltbWVyVGl0bGUgewogICAgICAgICAgICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIGNlbnRlcjsgfQogICAgICAgICAgICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMzAwJSBjZW50ZXI7IH0KICAgICAgICB9CiAgICAgICAgLmhlcm8tc3VidGl0bGUgewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1heC13aWR0aDogNzAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDMwcHg7CiAgICAgICAgfQogICAgICAgIC5oZXJvLWRlc2MgewogICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNDksIDI0NSwgMC44NSk7CiAgICAgICAgICAgIG1heC13aWR0aDogNjUwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS45OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBDT1VOVERPV04gKi8KICAgICAgICAuY291bnRkb3duLXNlY3Rpb24gewogICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDI1cHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgLmNvdW50ZG93bi1sYWJlbCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWZ1c2NoaWEpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OwogICAgICAgIH0KICAgICAgICAuY291bnRkb3duLXdyYXBwZXIgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIC5jb3VudGRvd24tYm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQpOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1mdXNjaGlhKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgcGFkZGluZzogMjVweCAyMHB4OwogICAgICAgICAgICBtaW4td2lkdGg6IDEwMHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIC5jb3VudGRvd24tbnVtYmVyIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB9CiAgICAgICAgLmNvdW50ZG93bi11bml0IHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjQ5LCAyNDUsIDAuNik7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogV0hFRUwgKi8KICAgICAgICAud2hlZWwtc2VjdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDYwcHggMjVweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAud2hlZWwtY29udGFpbmVyIHsKICAgICAgICAgICAgd2lkdGg6IDMyMHB4OwogICAgICAgICAgICBoZWlnaHQ6IDMyMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byA0MHB4OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQogICAgICAgIC53aGVlbCB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNXMgY3ViaWMtYmV6aWVyKDAuMTcsIDAuNjcsIDAuMTIsIDAuOTkpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNjBweCByZ2JhKDIzMywgMzAsIDEzOSwgMC40KSwgMCAwIDEwMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpOwogICAgICAgIH0KICAgICAgICAud2hlZWwtc2VnbWVudCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgd2lkdGg6IDUwJTsKICAgICAgICAgICAgaGVpZ2h0OiA1MCU7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlOwogICAgICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMTAwJSwgMTAwJSA1MCUsIDAlIDAlKTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAycmVtOwogICAgICAgIH0KICAgICAgICAud2hlZWwtY2VudGVyIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICAgICAgd2lkdGg6IDgwcHg7CiAgICAgICAgICAgIGhlaWdodDogODBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLW9yYW5nZSkpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBmb250LXNpemU6IDJyZW07CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAzMHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjYpOwogICAgICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICB9CiAgICAgICAgLndoZWVsLXBvaW50ZXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogLTIwcHg7CiAgICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTsKICAgICAgICAgICAgei1pbmRleDogMjA7CiAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuNSkpOwogICAgICAgIH0KICAgICAgICAuc3Bpbi1idG4gewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIHBhZGRpbmc6IDIycHggNTVweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZnVzY2hpYSksIHZhcigtLW9yYW5nZSkpOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTnVuaXRvJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggNTBweCByZ2JhKDIzMywgMzAsIDEzOSwgMC40KTsKICAgICAgICB9CiAgICAgICAgLnNwaW4tYnRuOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpIHNjYWxlKDEuMDUpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDI1cHggNzBweCByZ2JhKDIzMywgMzAsIDEzOSwgMC41KTsKICAgICAgICB9CiAgICAgICAgLnNwaW4tYnRuOmRpc2FibGVkIHsKICAgICAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIH0KICAgICAgICAuc3BpbnMtbGVmdCB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI0OSwgMjQ1LCAwLjcpOwogICAgICAgIH0KICAgICAgICAuc3BpbnMtbGVmdCBzcGFuIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBSRVNVTFQgTU9EQUwgKi8KICAgICAgICAucmVzdWx0LW1vZGFsIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsKICAgICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICB9CiAgICAgICAgLnJlc3VsdC1tb2RhbC5zaG93IHsKICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgICAgICB9CiAgICAgICAgLnJlc3VsdC1ib3ggewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCB2YXIoLS1uYXZ5KSwgdmFyKC0tY2hhcmNvYWwpKTsKICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDUwcHggNDBweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7CiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5yZXN1bHQtbW9kYWwuc2hvdyAucmVzdWx0LWJveCB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgfQogICAgICAgIC5yZXN1bHQtaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogNXJlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CiAgICAgICAgLnJlc3VsdC10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDJyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgICAgICB9CiAgICAgICAgLnJlc3VsdC1tZXNzYWdlIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjQ5LCAyNDUsIDAuOSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICAgICAgfQogICAgICAgIC5yZXN1bHQtYnRuIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBwYWRkaW5nOiAxOHB4IDQ1cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLW1pbnQpLCB2YXIoLS1taW50LWRhcmspKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAucmVzdWx0LWJ0bjpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxNXB4IDQwcHggcmdiYSg2MiwgMTgwLCAxMzcsIDAuNCk7CiAgICAgICAgfQogICAgICAgIC5jbG9zZS1tb2RhbCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAyMHB4OwogICAgICAgICAgICByaWdodDogMjVweDsKICAgICAgICAgICAgZm9udC1zaXplOiAycmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTsKICAgICAgICB9CiAgICAgICAgLmNsb3NlLW1vZGFsOmhvdmVyIHsgY29sb3I6IHdoaXRlOyB9CiAgICAgICAgCiAgICAgICAgLyogUFJJWkVTIENBUk9VU0VMICovCiAgICAgICAgLnByaXplcy1zZWN0aW9uIHsKICAgICAgICAgICAgcGFkZGluZzogNjBweCAyNXB4OwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAucHJpemVzLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgICAgICB9CiAgICAgICAgLmNhcm91c2VsLWNvbnRhaW5lciB7CiAgICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KICAgICAgICAuY2Fyb3VzZWwtdHJhY2sgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlOwogICAgICAgIH0KICAgICAgICAucHJpemUtY2FyZCB7CiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4OwogICAgICAgIH0KICAgICAgICAucHJpemUtaW5uZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4OwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDMwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIC5wcml6ZS1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAucHJpemUtbmFtZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWZ1c2NoaWEpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgIH0KICAgICAgICAucHJpemUtdmFsdWUgewogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KICAgICAgICAucHJpemUtZGVzYyB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI0OSwgMjQ1LCAwLjgpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS43OwogICAgICAgIH0KICAgICAgICAuY2Fyb3VzZWwtbmF2IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweDsKICAgICAgICB9CiAgICAgICAgLmNhcm91c2VsLWJ0biB7CiAgICAgICAgICAgIHdpZHRoOiA1MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5jYXJvdXNlbC1idG46aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWNoYXJjb2FsKTsKICAgICAgICB9CiAgICAgICAgLmNhcm91c2VsLWRvdHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgfQogICAgICAgIC5jYXJvdXNlbC1kb3QgewogICAgICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIC5jYXJvdXNlbC1kb3QuYWN0aXZlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogVFJFQVNVUkUgVFJPVkUgKi8KICAgICAgICAudHJlYXN1cmUtc2VjdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDcwcHggMjVweDsKICAgICAgICB9CiAgICAgICAgLnRyZWFzdXJlLWludHJvIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXgtd2lkdGg6IDcwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byAyMHB4OwogICAgICAgIH0KICAgICAgICAudHJlYXN1cmUtcXVlc3Rpb24gewogICAgICAgICAgICBmb250LWZhbWlseTogJ0Nvcm1vcmFudCBHYXJhbW9uZCcsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI0OSwgMjQ1LCAwLjY1KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgLnRyZWFzdXJlLWRpc2NvdmVyIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbWludCk7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQogICAgICAgIC50cmVhc3VyZS10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQogICAgICAgIC50cmVhc3VyZS1zdWJ0aXRsZSB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNDksIDI0NSwgMC44KTsKICAgICAgICAgICAgbWF4LXdpZHRoOiA2NTBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gNDVweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjE1cmVtOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS43OwogICAgICAgIH0KICAgICAgICAudHJlYXN1cmUtZ3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTYwcHgsIDFmcikpOwogICAgICAgICAgICBnYXA6IDIycHg7CiAgICAgICAgICAgIG1heC13aWR0aDogMTAwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgLnRyZWFzdXJlLXRpbGUgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMnB4OwogICAgICAgICAgICBwYWRkaW5nOiAyOHB4IDE4cHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAudHJlYXN1cmUtdGlsZTpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgICAgfQogICAgICAgIC50cmVhc3VyZS10aWxlLmZ1c2NoaWEgeyBib3JkZXItY29sb3I6IHZhcigtLWZ1c2NoaWEpOyB9CiAgICAgICAgLnRyZWFzdXJlLXRpbGUuZnVzY2hpYTpob3ZlciB7IGJveC1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoMjMzLCAzMCwgMTM5LCAwLjM1KTsgfQogICAgICAgIC50cmVhc3VyZS10aWxlLm9yYW5nZSB7IGJvcmRlci1jb2xvcjogdmFyKC0tb3JhbmdlKTsgfQogICAgICAgIC50cmVhc3VyZS10aWxlLm9yYW5nZTpob3ZlciB7IGJveC1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoMjU1LCAxMDcsIDUzLCAwLjM1KTsgfQogICAgICAgIC50cmVhc3VyZS10aWxlLm1pbnQgeyBib3JkZXItY29sb3I6IHZhcigtLW1pbnQpOyB9CiAgICAgICAgLnRyZWFzdXJlLXRpbGUubWludDpob3ZlciB7IGJveC1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoNjIsIDE4MCwgMTM3LCAwLjM1KTsgfQogICAgICAgIC50cmVhc3VyZS10aWxlLmdvbGQgeyBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOyB9CiAgICAgICAgLnRyZWFzdXJlLXRpbGUuZ29sZDpob3ZlciB7IGJveC1zaGFkb3c6IDAgMjBweCA1MHB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjM1KTsgfQogICAgICAgIC50aWxlLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDIuOHJlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICB9CiAgICAgICAgLnRpbGUtbmFtZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICB9CiAgICAgICAgLnRpbGUtc3ViIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI0OSwgMjQ1LCAwLjU1KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogTkVXU0xFVFRFUiBTRUNUSU9OICovCiAgICAgICAgLm5ld3NsZXR0ZXItc2VjdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDUwcHggMjVweCA3MHB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIC5uZXdzbGV0dGVyLWJveCB7CiAgICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKSwgcmdiYSgwLCAwLCAwLCAwLjM1KSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBwYWRkaW5nOiA1MHB4IDQwcHg7CiAgICAgICAgfQogICAgICAgIC5uZXdzbGV0dGVyLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDNyZW07CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIC5uZXdzbGV0dGVyLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQogICAgICAgIC5uZXdzbGV0dGVyLWRlc2MgewogICAgICAgICAgICBmb250LXNpemU6IDEuMTVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjQ5LCAyNDUsIDAuOCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7CiAgICAgICAgfQogICAgICAgIC5uZXdzbGV0dGVyLWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgcGFkZGluZzogMThweCA1MHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgI0Y3RTdDRSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kZWVwKTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjE1cmVtOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTVweCA0NXB4IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjM1KTsKICAgICAgICB9CiAgICAgICAgLm5ld3NsZXR0ZXItYnRuOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDI1cHggNjBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC41KTsKICAgICAgICB9CiAgICAgICAgLmxpYnJhcnktc2VjdGlvbiB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHg7CiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyNXB4OwogICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMik7CiAgICAgICAgfQogICAgICAgIC5saWJyYXJ5LWludHJvIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI0OSwgMjQ1LCAwLjYpOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgfQogICAgICAgIC5saWJyYXJ5LWxpbmsgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4wNXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW1pbnQpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMjVweDsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWludCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgICAgfQogICAgICAgIC5saWJyYXJ5LWxpbms6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1taW50KTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBGT09URVIgKi8KICAgICAgICBmb290ZXIgewogICAgICAgICAgICBwYWRkaW5nOiA2MHB4IDI1cHggNDBweDsKICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjE1KTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAuZm9vdGVyLWJhZGdlIHsKICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1mdXNjaGlhKSwgdmFyKC0tb3JhbmdlKSk7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAzNXB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItYnJhbmQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICB9CiAgICAgICAgLmZvb3Rlci10YWdsaW5lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNDksIDI0NSwgMC42NSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItbGlua3MgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAzMHB4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgfQogICAgICAgIC5mb290ZXItbGlua3MgYSB7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjQ5LCAyNDUsIDAuNTUpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAuZm9vdGVyLWxpbmtzIGE6aG92ZXIgeyBjb2xvcjogdmFyKC0tZ29sZCk7IH0KICAgICAgICAuY29weXJpZ2h0IHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjQ5LCAyNDUsIDAuMzUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBSRVNQT05TSVZFICovCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAgIGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KICAgICAgICAgICAgLmhlcm8geyBwYWRkaW5nOiAzMHB4IDIwcHggNTBweDsgfQogICAgICAgICAgICAud2hlZWwtY29udGFpbmVyIHsgd2lkdGg6IDI4MHB4OyBoZWlnaHQ6IDI4MHB4OyB9CiAgICAgICAgICAgIC5jb3VudGRvd24tYm94IHsgbWluLXdpZHRoOiA4NXB4OyBwYWRkaW5nOiAyMnB4IDE4cHg7IH0KICAgICAgICAgICAgLmNvdW50ZG93bi1udW1iZXIgeyBmb250LXNpemU6IDIuNXJlbTsgfQogICAgICAgICAgICAudHJlYXN1cmUtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IGdhcDogMThweDsgfQogICAgICAgICAgICAubmV3c2xldHRlci1ib3ggeyBwYWRkaW5nOiA0MHB4IDMwcHg7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7CiAgICAgICAgICAgIC53aGVlbC1jb250YWluZXIgeyB3aWR0aDogMjYwcHg7IGhlaWdodDogMjYwcHg7IH0KICAgICAgICAgICAgLnNwaW4tYnRuIHsgcGFkZGluZzogMThweCA0MHB4OyBmb250LXNpemU6IDEuMnJlbTsgfQogICAgICAgICAgICAudHJlYXN1cmUtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IH0KICAgICAgICB9CiAgICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPGRpdiBjbGFzcz0iYmctbWFzdGVyIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im9yYiBvcmItMSI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJvcmIgb3JiLTIiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ib3JiIG9yYi0zIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZpcmV3b3Jrcy1jb250YWluZXIiIGlkPSJmaXJld29ya3MiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZmxvYXRpZXMtY29udGFpbmVyIiBpZD0iZmxvYXRpZXMiPjwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJjb250ZW50LXdyYXBwZXIiPgogICAgICAgIDwhLS0gSEVBREVSIC0tPgogICAgICAgIDxoZWFkZXIgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ28iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxvZ28taGFuZHNoYWtlIj7wn6SdIEhhbmRzaGFrZSBBZnJpY2E8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibG9nby1kaXZpZGVyIj7inKY8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibG9nby10YXNuIj5UQVNOPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2hlYWRlcj4KICAgICAgICAKICAgICAgICA8IS0tIEhFUk8gLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9Imhlcm8iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZXJvLWJhZGdlIj7inKggRXhjbHVzaXZlIGZvciBUQVNOIE1lbWJlcnMg4pyoPC9kaXY+CiAgICAgICAgICAgIDxoMiBjbGFzcz0iaGVyby10aXRsZSI+V2VsY29tZSB0byB0aGU8L2gyPgogICAgICAgICAgICA8aDEgY2xhc3M9Imhlcm8tbWFpbi10aXRsZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idHlwZXdyaXRlciIgaWQ9Imhlcm9UeXBld3JpdGVyIj48L3NwYW4+CiAgICAgICAgICAgIDwvaDE+CiAgICAgICAgICAgIDxwIGNsYXNzPSJoZXJvLXN1YnRpdGxlIj4iUGF5IEl0IEZvcndhcmQiIH4gU0hFIEV+Qm9zcyBTb2x1dGlvbmlzdDwvcD4KICAgICAgICAgICAgPHAgY2xhc3M9Imhlcm8tZGVzYyI+RXZlcnkgc3BpbiBpcyBhIGNlbGVicmF0aW9uIG9mIFlPVVIgam91cm5leS4gV2luIHByaXplcyB3b3J0aCB1cCB0byA8c3Ryb25nIHN0eWxlPSJjb2xvcjogdmFyKC0tZ29sZCk7Ij4kMzk5Kzwvc3Ryb25nPiB+IGRpZ2l0YWwgY2FyZHMsIGZlYXR1cmUgYXJ0aWNsZXMsIGRpcmVjdG9yeSBsaXN0aW5ncywgYm9vayBmZWF0dXJlcyAmIG1vcmUuIDxlbSBzdHlsZT0iY29sb3I6IHZhcigtLWZ1c2NoaWEpOyI+RXZlcnlvbmUgd2lucyBzb21ldGhpbmchPC9lbT48L3A+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIAogICAgICAgIDwhLS0gQ09VTlRET1dOIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJjb3VudGRvd24tc2VjdGlvbiI+CiAgICAgICAgICAgIDxoMiBjbGFzcz0iY291bnRkb3duLWxhYmVsIj7ij7AgQ2VsZWJyYXRpb24gRW5kcyBJbi4uLjwvaDI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvdW50ZG93bi13cmFwcGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvdW50ZG93bi1ib3giPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvdW50ZG93bi1udW1iZXIiIGlkPSJkYXlzIj4xNTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvdW50ZG93bi11bml0Ij5EYXlzPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvdW50ZG93bi1ib3giPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvdW50ZG93bi1udW1iZXIiIGlkPSJob3VycyI+MDA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb3VudGRvd24tdW5pdCI+SG91cnM8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY291bnRkb3duLWJveCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY291bnRkb3duLW51bWJlciIgaWQ9Im1pbnV0ZXMiPjAwPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY291bnRkb3duLXVuaXQiPk1pbnV0ZXM8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY291bnRkb3duLWJveCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY291bnRkb3duLW51bWJlciIgaWQ9InNlY29uZHMiPjAwPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY291bnRkb3duLXVuaXQiPlNlY29uZHM8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBXSEVFTCAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0id2hlZWwtc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoZWVsLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aGVlbC1wb2ludGVyIj7wn5ONPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aGVlbCIgaWQ9IndoZWVsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aGVlbC1zZWdtZW50IiBzdHlsZT0iYmFja2dyb3VuZDogdmFyKC0tZnVzY2hpYSk7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyI+8J+PhjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoZWVsLXNlZ21lbnQiIHN0eWxlPSJiYWNrZ3JvdW5kOiB2YXIoLS1vcmFuZ2UpOyB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7Ij7wn5OwPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwtc2VnbWVudCIgc3R5bGU9ImJhY2tncm91bmQ6IHZhcigtLW1pbnQpOyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7Ij7wn5OaPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwtc2VnbWVudCIgc3R5bGU9ImJhY2tncm91bmQ6IHZhcigtLWdvbGQpOyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpOyI+8J+OqDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoZWVsLXNlZ21lbnQiIHN0eWxlPSJiYWNrZ3JvdW5kOiB2YXIoLS1mdXNjaGlhLWRhcmspOyB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+8J+MjTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoZWVsLXNlZ21lbnQiIHN0eWxlPSJiYWNrZ3JvdW5kOiB2YXIoLS1vcmFuZ2UtZGFyayk7IHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7Ij7wn46CPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwtc2VnbWVudCIgc3R5bGU9ImJhY2tncm91bmQ6IHZhcigtLW1pbnQtZGFyayk7IHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7Ij7wn5OsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwtc2VnbWVudCIgc3R5bGU9ImJhY2tncm91bmQ6ICNCODk3MkU7IHRyYW5zZm9ybTogcm90YXRlKDMxNWRlZyk7Ij7wn461PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndoZWVsLWNlbnRlciI+8J+RkTwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InNwaW4tYnRuIiBpZD0ic3BpbkJ0biIgb25jbGljaz0ic3BpbldoZWVsKCkiPvCfjqEgU3BpbiBUaGUgV2hlZWwhPC9idXR0b24+CiAgICAgICAgICAgIDxwIGNsYXNzPSJzcGlucy1sZWZ0Ij5TcGlucyByZW1haW5pbmcgdGhpcyBtb250aDogPHNwYW4gaWQ9InNwaW5zTGVmdCI+Mzwvc3Bhbj48L3A+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIAogICAgICAgIDwhLS0gUkVTVUxUIE1PREFMIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InJlc3VsdC1tb2RhbCIgaWQ9InJlc3VsdE1vZGFsIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNsb3NlLW1vZGFsIiBvbmNsaWNrPSJjbG9zZU1vZGFsKCkiPuKclTwvc3Bhbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVzdWx0LWJveCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXN1bHQtaWNvbiIgaWQ9InJlc3VsdEljb24iPvCfjok8L2Rpdj4KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0icmVzdWx0LXRpdGxlIiBpZD0icmVzdWx0VGl0bGUiPkNvbmdyYXR1bGF0aW9ucyE8L2gyPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InJlc3VsdC1tZXNzYWdlIiBpZD0icmVzdWx0TWVzc2FnZSI+WW91J3ZlIHdvbiBzb21ldGhpbmcgYW1hemluZyE8L3A+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0icmVzdWx0LWJ0biIgaWQ9InJlc3VsdEJ0biI+Q2xhaW0gWW91ciBQcml6ZSDihpI8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDwhLS0gUFJJWkVTIENBUk9VU0VMIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJwcml6ZXMtc2VjdGlvbiI+CiAgICAgICAgICAgIDxoMiBjbGFzcz0icHJpemVzLXRpdGxlIj7wn4+GIFdoYXQgWW91IENvdWxkIFdpbjwvaDI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcm91c2VsLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJvdXNlbC10cmFjayIgaWQ9ImNhcm91c2VsVHJhY2siPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWNhcmQiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pY29uIj7wn4+GPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1uYW1lIj5HUkFORCBQUklaRTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtdmFsdWUiPiQxMDAgVmFsdWUhPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1kZXNjIj5GUkVFIFByZW1pdW0gRGlnaXRhbCBCdXNpbmVzcyBDYXJkIHdpdGggdmlkZW8sIHVwIHRvIDEwIGxpbmtzLCBhbmQgVklQIHRyZWF0bWVudCE8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWljb24iPvCfk7A8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLW5hbWUiPkZlYXR1cmUgQXJ0aWNsZTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtdmFsdWUiPiQyNTAgVmFsdWUhPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1kZXNjIj5Zb3VyIHN0b3J5IGZlYXR1cmVkIG9uIFNIRSBFVk9MVkVTIEFmcmljYSBvciBBZnJpY2EgRnJvbnRsaW5lIE5leHVzIE5ld3MhPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWNhcmQiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1pY29uIj7wn5OaPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1uYW1lIj5Cb29rIEZlYXR1cmU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLXZhbHVlIj4kMTk5IFZhbHVlITwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtZGVzYyI+WW91ciBib29rIGZlYXR1cmVkIGFjcm9zcyBvdXIgbmV3cyBjaGFubmVscyBhbmQgYmxvZyEgUGVyZmVjdCBmb3IgYXV0aG9ycy48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWljb24iPvCfjqg8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLW5hbWUiPkJhbm5lciBBZDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtdmFsdWUiPiQxOTkgVmFsdWUhPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1kZXNjIj5GUkVFIEJhbm5lciBBZCBhY3Jvc3Mgb3VyIHNvY2lhbCBtZWRpYSBwcm9maWxlcyBmb3Igb25lIG1vbnRoITwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1jYXJkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaWNvbiI+8J+MjTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtbmFtZSI+RGlyZWN0b3J5IExpc3Rpbmc8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLXZhbHVlIj4kMTQ5IFZhbHVlITwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtZGVzYyI+RlJFRSBMaWZldGltZSBMaXN0aW5nIG9uIFRvcCBBZnJpY2EgRGlyZWN0b3J5ISBCZSBmb3VuZCBieSBjbGllbnRzLjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1jYXJkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaWNvbiI+8J+TkzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtbmFtZSI+U3RyYXRlZ3kgSm91cm5hbDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtdmFsdWUiPiQ0NyBWYWx1ZSE8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWRlc2MiPk91ciBleGNsdXNpdmUgU3RyYXRlZ3kgJiBTdWNjZXNzIEpvdXJuYWwhIFBsYW4gYW5kIG1hbmlmZXN0IHlvdXIgMjAyNi48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLWljb24iPvCfjoI8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLW5hbWUiPkJpcnRoZGF5IENsdWIgVklQPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS12YWx1ZSI+JDU2NCBQb3RlbnRpYWwhPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1kZXNjIj5PbiB5b3VyIGJpcnRoZGF5IG1vbnRoLCBzcGluIGZvciBhIEZSRUUgMS1ZZWFyIEhlYXJ0aCBNZW1iZXJzaGlwITwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcml6ZS1jYXJkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtaWNvbiI+8J+TrDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtbmFtZSI+TmV3c2xldHRlciBWSVA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaXplLXZhbHVlIj5Cb251cyBFbnRyaWVzITwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpemUtZGVzYyI+RXhjbHVzaXZlIGluc2lkZXIgYWNjZXNzIFBMVVMgYm9udXMgZW50cmllcyBpbiBhbGwgZnV0dXJlIGRyYXdpbmdzLjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2Fyb3VzZWwtbmF2Ij4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjYXJvdXNlbC1idG4iIG9uY2xpY2s9Im1vdmVDYXJvdXNlbCgtMSkiPuKGkDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcm91c2VsLWRvdHMiIGlkPSJjYXJvdXNlbERvdHMiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNhcm91c2VsLWJ0biIgb25jbGljaz0ibW92ZUNhcm91c2VsKDEpIj7ihpI8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBUUkVBU1VSRSBUUk9WRSAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0idHJlYXN1cmUtc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyZWFzdXJlLWludHJvIj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0cmVhc3VyZS1xdWVzdGlvbiI+V29uZGVyaW5nIHdobyB3ZSBhcmU/IFdoeSB5b3U/IFdoeSBub3c/PC9wPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InRyZWFzdXJlLWRpc2NvdmVyIj7ihpMgRGlzY292ZXIg4oaTPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxoMiBjbGFzcz0idHJlYXN1cmUtdGl0bGUiPuKcqCBUaGUgVHJlYXN1cmUgVHJvdmUg4pyoPC9oMj4KICAgICAgICAgICAgPHAgY2xhc3M9InRyZWFzdXJlLXN1YnRpdGxlIj5BIHBlZWsgaW50byBhIHNtYWxsIHNlbGVjdGlvbiBvZiBvdXIgZnVsbCBzcGVjdHJ1bSBvZiByZXNvdXJjZXMgfiBhbiBlY29zeXN0ZW0gb2YgbWVkaWEgY2hhbm5lbHMsIHZpcnR1YWwgYWNhZGVtaWVzLCBTaG9wIExvY2FsIGRpcmVjdG9yaWVzLCBhbmQgaHVicyAmIGhpdmVzLi4uPC9wPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJlYXN1cmUtZ3JpZCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3NoZWV2b2x2ZXMuYWZyaWNhL25ld3MiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0idHJlYXN1cmUtdGlsZSBmdXNjaGlhIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWljb24iPvCfk7o8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW5hbWUiIHN0eWxlPSJjb2xvcjogdmFyKC0tZnVzY2hpYSk7Ij5TSEUgRVZPTFZFUzwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtc3ViIj5OZXdzIENoYW5uZWw8L2Rpdj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9hZnJpY2Fmcm9udGxpbmVuZXh1cy5uZXdzIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRyZWFzdXJlLXRpbGUgb3JhbmdlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWljb24iPvCfk7A8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW5hbWUiIHN0eWxlPSJjb2xvcjogdmFyKC0tb3JhbmdlKTsiPkZST05UTElORSBORVhVUzwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtc3ViIj5OZXdzPC9kaXY+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vYWlhZnJpY2FuZXdzLmNvbSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0cmVhc3VyZS10aWxlIG1pbnQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtaWNvbiI+8J+kljwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbmFtZSIgc3R5bGU9ImNvbG9yOiB2YXIoLS1taW50KTsiPkFJIEFGUklDQSBORVdTPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1zdWIiPlRlY2ggTmV3czwvZGl2PgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2Vhc3RhZnJpY2F0b3BkaXJlY3RvcnkuY29tIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRyZWFzdXJlLXRpbGUgZ29sZCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1pY29uIj7wn4yNPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1uYW1lIiBzdHlsZT0iY29sb3I6IHZhcigtLWdvbGQpOyI+VE9QIEFGUklDQSBESVJFQ1RPUlk8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXN1YiI+R2V0IExpc3RlZDwvZGl2PgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL21hamVzdGljbWVudG9yc2hpcHN1Y2Nlc3MuY29tIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRyZWFzdXJlLXRpbGUgZnVzY2hpYSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1pY29uIj7wn46TPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1uYW1lIiBzdHlsZT0iY29sb3I6IHZhcigtLWZ1c2NoaWEpOyI+TUVOVE9SU0hJUCBBQ0FERU1ZPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1zdWIiPlRyYWluaW5nPC9kaXY+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaGVyd29tYW5pdHkuY29tL2hlYXJ0aCIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0cmVhc3VyZS10aWxlIG9yYW5nZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1pY29uIj7wn4+gPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1uYW1lIiBzdHlsZT0iY29sb3I6IHZhcigtLW9yYW5nZSk7Ij5USEUgSEVBUlRIPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1zdWIiPk1lbWJlcnNoaXA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9hY2NlbGVyYXRlYWN0aW9uLm5ld3MvZHJ1bWJlYXQiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0idHJlYXN1cmUtdGlsZSBtaW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWljb24iPvCfpYE8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW5hbWUiIHN0eWxlPSJjb2xvcjogdmFyKC0tbWludCk7Ij5BQ0NFTEVSQVRFIEFDVElPTjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtc3ViIj5EcnVtYmVhdDwvZGl2PgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2ZvdW5kZXJzZm91bmRyeS5hZnJpY2EiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0idHJlYXN1cmUtdGlsZSBnb2xkIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWljb24iPvCfkZE8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW5hbWUiIHN0eWxlPSJjb2xvcjogdmFyKC0tZ29sZCk7Ij5MRUFERVJTSElQIEFDQURFTVk8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXN1YiI+Rm91bmRlcnMgRm91bmRyeTwvZGl2PgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBORVdTTEVUVEVSIFNFQ1RJT04gLS0+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9Im5ld3NsZXR0ZXItc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3NsZXR0ZXItYm94Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5ld3NsZXR0ZXItaWNvbiI+8J+TrDwvZGl2PgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJuZXdzbGV0dGVyLXRpdGxlIj5XaHkgTm90IExlYXJuIEFib3V0IFVzIE9uIFlvdXIgT3duIFRlcm1zPzwvaDM+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibmV3c2xldHRlci1kZXNjIj5HZXQgdG8ga25vdyB1cyBhdCB5b3VyIG93biBwYWNlLiBTdG9yaWVzLCBpbnNpZ2h0cywgYW5kIGluc3BpcmF0aW9uIGRlbGl2ZXJlZCBzdHJhaWdodCB0byB5b3VyIGluYm94IH4gbm8gcHJlc3N1cmUsIGp1c3QgdmFsdWUuPC9wPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9tZW50b3JzaGlwc3VjY2Vzcy5jb20vbmV3c2xldHRlciIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJuZXdzbGV0dGVyLWJ0biI+Sm9pbiBPdXIgTmV3c2xldHRlciDihpI8L2E+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpYnJhcnktc2VjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImxpYnJhcnktaW50cm8iPldlJ3JlIGZlcnZlbnQgc3VwcG9ydGVycyBvZiB3b21lbiBBTkQgZXF1YWxseSBhbGx+aW4gb24gbGlmZWxvbmcgcmVhZGluZy4gRXhwbG9yZSBvdXIgY3VyYXRlZCBjb2xsZWN0aW9uOjwvcD4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL21hamVzdGljbWVkaWFzb2x1dGlvbnMuY29tL2VudHJlcHJlbmV1ci1saWJyYXJ5IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImxpYnJhcnktbGluayI+8J+TmiBCcm93c2UgdGhlIEVudHJlcHJlbmV1ciBMaWJyYXJ5PC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAKICAgICAgICA8IS0tIEZPT1RFUiAtLT4KICAgICAgICA8Zm9vdGVyPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItYmFkZ2UiPlNIRSBFLUJvc3MgU29sdXRpb25pc3Q8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWJyYW5kIj7wn6SdIEhhbmRzaGFrZSBBZnJpY2E8L2Rpdj4KICAgICAgICAgICAgPHAgY2xhc3M9ImZvb3Rlci10YWdsaW5lIj4iUGF5aW5nIEl0IEZvcndhcmQsIE9uZSBEaWdpdGFsIEhhbmRzaGFrZSBhdCBhIFRpbWUiPC9wPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWxpbmtzIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdGFzbi5oYW5kc2hha2UuYWZyaWNhL2JpcnRoZGF5Ij7wn46CIEJpcnRoZGF5IENsdWI8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3Rhc24uaGFuZHNoYWtlLmFmcmljYS9mbG91cmlzaGluZyI+8J+MuCBGbG91cmlzaGluZyBGdW5kPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9oYW5kc2hha2UuYWZyaWNhIj5IYW5kc2hha2UgQWZyaWNhPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9hZnJpY2Fmcm9udGxpbmVtZWRpYS5jb20iPkJyYW5kSGFuZHNoYWtlPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9tZW50b3JzaGlwc3VjY2Vzcy5jb20vZm91bmRlci12aXJ0dWFsLWNhcmQiPkNvbm5lY3QgV2l0aCBNZTwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8cCBjbGFzcz0iY29weXJpZ2h0Ij7CqSAyMDI2IER5bmFtaWMgUGFyYWRpZ21zICYgTWVudG9yc2hpcCBTdWNjZXNzIEFjYWRlbWllcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC48L3A+CiAgICAgICAgPC9mb290ZXI+CiAgICA8L2Rpdj4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICAvLyBUWVBFV1JJVEVSIEVGRkVDVAogICAgICAgIGNvbnN0IHR5cGV3cml0ZXJUZXh0ID0gIldoZWVsIG9mIEZ1dHVyaXN0aWNhbGx5IEZydWl0ZnVsIEZvcnR1bmVzIjsKICAgICAgICBjb25zdCB0eXBld3JpdGVyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaGVyb1R5cGV3cml0ZXInKTsKICAgICAgICBsZXQgY2hhckluZGV4ID0gMDsKICAgICAgICAKICAgICAgICBmdW5jdGlvbiB0eXBlV3JpdGVyKCkgewogICAgICAgICAgICBpZiAoY2hhckluZGV4IDwgdHlwZXdyaXRlclRleHQubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICB0eXBld3JpdGVyRWwudGV4dENvbnRlbnQgKz0gdHlwZXdyaXRlclRleHQuY2hhckF0KGNoYXJJbmRleCk7CiAgICAgICAgICAgICAgICBjaGFySW5kZXgrKzsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodHlwZVdyaXRlciwgODApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHNldFRpbWVvdXQodHlwZVdyaXRlciwgNTAwKTsKICAgICAgICAKICAgICAgICAvLyBGSVJFV09SS1MKICAgICAgICBjb25zdCBmaXJld29ya3NDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyZXdvcmtzJyk7CiAgICAgICAgY29uc3QgZmlyZXdvcmtDb2xvcnMgPSBbJyNFOTFFOEInLCAnI0ZGNkIzNScsICcjM0VCNDg5JywgJyNENEFGMzcnLCAnI0ZGNkJCMycsICcjRkZENzAwJ107CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gY3JlYXRlRmlyZXdvcmsoKSB7CiAgICAgICAgICAgIGNvbnN0IGZpcmV3b3JrID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgIGZpcmV3b3JrLmNsYXNzTmFtZSA9ICdmaXJld29yayc7CiAgICAgICAgICAgIGZpcmV3b3JrLnN0eWxlLmxlZnQgPSBNYXRoLnJhbmRvbSgpICogMTAwICsgJyUnOwogICAgICAgICAgICBmaXJld29yay5zdHlsZS50b3AgPSBNYXRoLnJhbmRvbSgpICogNjAgKyAnJSc7CiAgICAgICAgICAgIGZpcmV3b3JrLnN0eWxlLmNvbG9yID0gZmlyZXdvcmtDb2xvcnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZmlyZXdvcmtDb2xvcnMubGVuZ3RoKV07CiAgICAgICAgICAgIGZpcmV3b3JrLnN0eWxlLmJhY2tncm91bmQgPSBmaXJld29yay5zdHlsZS5jb2xvcjsKICAgICAgICAgICAgZmlyZXdvcmtzQ29udGFpbmVyLmFwcGVuZENoaWxkKGZpcmV3b3JrKTsKICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmaXJld29yay5yZW1vdmUoKSwgMjAwMCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHNldEludGVydmFsKGNyZWF0ZUZpcmV3b3JrLCAxNTAwKTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDM7IGkrKykgewogICAgICAgICAgICBzZXRUaW1lb3V0KGNyZWF0ZUZpcmV3b3JrLCBpICogMzAwKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gRkxPQVRJTkcgRUxFTUVOVFMKICAgICAgICBjb25zdCBmbG9hdGllc0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmbG9hdGllcycpOwogICAgICAgIGNvbnN0IGZsb2F0eUVtb2ppcyA9IFsn4pyoJywgJ+KtkCcsICfwn5KrJywgJ/CfjJ8nLCAn8J+SlScsICfwn5GRJywgJ/CfjoEnLCAn8J+PhicsICfwn5KOJywgJ/CfjLgnLCAn8J+OhicsICfwn46HJ107CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyNTsgaSsrKSB7CiAgICAgICAgICAgIGNvbnN0IGZsb2F0eSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICBmbG9hdHkuY2xhc3NOYW1lID0gJ2Zsb2F0eSc7CiAgICAgICAgICAgIGZsb2F0eS50ZXh0Q29udGVudCA9IGZsb2F0eUVtb2ppc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBmbG9hdHlFbW9qaXMubGVuZ3RoKV07CiAgICAgICAgICAgIGZsb2F0eS5zdHlsZS5sZWZ0ID0gTWF0aC5yYW5kb20oKSAqIDEwMCArICclJzsKICAgICAgICAgICAgZmxvYXR5LnN0eWxlLmFuaW1hdGlvbkRlbGF5ID0gTWF0aC5yYW5kb20oKSAqIDggKyAncyc7CiAgICAgICAgICAgIGZsb2F0eS5zdHlsZS5hbmltYXRpb25EdXJhdGlvbiA9ICg2ICsgTWF0aC5yYW5kb20oKSAqIDQpICsgJ3MnOwogICAgICAgICAgICBmbG9hdGllc0NvbnRhaW5lci5hcHBlbmRDaGlsZChmbG9hdHkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBDT1VOVERPV04gVElNRVIgLSAxNSBkYXlzCiAgICAgICAgZnVuY3Rpb24gdXBkYXRlQ291bnRkb3duKCkgewogICAgICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICBsZXQgc3RvcmVkRW5kID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Rhc25fY291bnRkb3duX2VuZF92MicpOwogICAgICAgICAgICBsZXQgdGFyZ2V0RGF0ZTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChzdG9yZWRFbmQpIHsKICAgICAgICAgICAgICAgIHRhcmdldERhdGUgPSBuZXcgRGF0ZShzdG9yZWRFbmQpOwogICAgICAgICAgICAgICAgaWYgKHRhcmdldERhdGUgPCBub3cpIHsKICAgICAgICAgICAgICAgICAgICB0YXJnZXREYXRlID0gbmV3IERhdGUobm93LmdldFRpbWUoKSArICgxNSAqIDI0ICogNjAgKiA2MCAqIDEwMDApKTsKICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGFzbl9jb3VudGRvd25fZW5kX3YyJywgdGFyZ2V0RGF0ZS50b0lTT1N0cmluZygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRhcmdldERhdGUgPSBuZXcgRGF0ZShub3cuZ2V0VGltZSgpICsgKDE1ICogMjQgKiA2MCAqIDYwICogMTAwMCkpOwogICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Rhc25fY291bnRkb3duX2VuZF92MicsIHRhcmdldERhdGUudG9JU09TdHJpbmcoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gdGFyZ2V0RGF0ZS5nZXRUaW1lKCkgLSBub3cuZ2V0VGltZSgpOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKGRpc3RhbmNlID4gMCkgewogICAgICAgICAgICAgICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IoZGlzdGFuY2UgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpOwogICAgICAgICAgICAgICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKChkaXN0YW5jZSAlICgxMDAwICogNjAgKiA2MCAqIDI0KSkgLyAoMTAwMCAqIDYwICogNjApKTsKICAgICAgICAgICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKChkaXN0YW5jZSAlICgxMDAwICogNjAgKiA2MCkpIC8gKDEwMDAgKiA2MCkpOwogICAgICAgICAgICAgICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoKGRpc3RhbmNlICUgKDEwMDAgKiA2MCkpIC8gMTAwMCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXlzJykudGV4dENvbnRlbnQgPSBTdHJpbmcoZGF5cykucGFkU3RhcnQoMiwgJzAnKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3VycycpLnRleHRDb250ZW50ID0gU3RyaW5nKGhvdXJzKS5wYWRTdGFydCgyLCAnMCcpOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pbnV0ZXMnKS50ZXh0Q29udGVudCA9IFN0cmluZyhtaW51dGVzKS5wYWRTdGFydCgyLCAnMCcpOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlY29uZHMnKS50ZXh0Q29udGVudCA9IFN0cmluZyhzZWNvbmRzKS5wYWRTdGFydCgyLCAnMCcpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHNldEludGVydmFsKHVwZGF0ZUNvdW50ZG93biwgMTAwMCk7CiAgICAgICAgdXBkYXRlQ291bnRkb3duKCk7CiAgICAgICAgCiAgICAgICAgLy8gV0hFRUwgT0YgRk9SVFVORQogICAgICAgIGNvbnN0IHByaXplcyA9IFsKICAgICAgICAgICAgeyBpY29uOiAn8J+PhicsIHRpdGxlOiAnR1JBTkQgUFJJWkUhJywgbWVzc2FnZTogJ1lvdVwndmUgd29uIGEgRlJFRSAkMTAwIFByZW1pdW0gRGlnaXRhbCBCdXNpbmVzcyBDYXJkIHdpdGggdmlkZW8gYW5kIHVwIHRvIDEwIGxpbmtzIScsIGlzV2lubmVyOiB0cnVlIH0sCiAgICAgICAgICAgIHsgaWNvbjogJ/Cfk7AnLCB0aXRsZTogJ0ZFQVRVUkUgQVJUSUNMRSEnLCBtZXNzYWdlOiAnWW91XCd2ZSB3b24gYSBGUkVFIEZlYXR1cmUgQXJ0aWNsZSBvbiBvdXIgbmV3cyBjaGFubmVscyEnLCBpc1dpbm5lcjogdHJ1ZSB9LAogICAgICAgICAgICB7IGljb246ICfwn5OaJywgdGl0bGU6ICdCT09LIEZFQVRVUkUhJywgbWVzc2FnZTogJ1lvdXIgYm9vayB3aWxsIGJlIGZlYXR1cmVkIG9uIG91ciBuZXdzIGNoYW5uZWxzIScsIGlzV2lubmVyOiB0cnVlIH0sCiAgICAgICAgICAgIHsgaWNvbjogJ/CfjqgnLCB0aXRsZTogJ0ZSRUUgQkFOTkVSIEFEIScsIG1lc3NhZ2U6ICdZb3VcJ3ZlIHdvbiBhIEZSRUUgQmFubmVyIEFkIGZvciBvbmUgbW9udGghJywgaXNXaW5uZXI6IHRydWUgfSwKICAgICAgICAgICAgeyBpY29uOiAn8J+MjScsIHRpdGxlOiAnRElSRUNUT1JZIExJU1RJTkchJywgbWVzc2FnZTogJ0ZSRUUgTGlmZXRpbWUgTGlzdGluZyBvbiBUb3AgQWZyaWNhIERpcmVjdG9yeSEnLCBpc1dpbm5lcjogdHJ1ZSwgbGluazogJ2h0dHBzOi8vZWFzdGFmcmljYXRvcGRpcmVjdG9yeS5jb20vY29udGFjdC0yJyB9LAogICAgICAgICAgICB7IGljb246ICfwn5OTJywgdGl0bGU6ICdGUkVFIEpPVVJOQUwhJywgbWVzc2FnZTogJ1lvdVwndmUgd29uIG91ciBleGNsdXNpdmUgU3RyYXRlZ3kgJiBTdWNjZXNzIEpvdXJuYWwhJywgaXNXaW5uZXI6IHRydWUgfSwKICAgICAgICAgICAgeyBpY29uOiAn8J+OgicsIHRpdGxlOiAnQklSVEhEQVkgQ0xVQiBWSVAhJywgbWVzc2FnZTogJ1lvdVwncmUgZW50ZXJlZCBpbnRvIG91ciBCaXJ0aGRheSBDbHViIScsIGlzV2lubmVyOiB0cnVlIH0sCiAgICAgICAgICAgIHsgaWNvbjogJ/Cfk6wnLCB0aXRsZTogJ05FV1NMRVRURVIgVklQIScsIG1lc3NhZ2U6ICdXZWxjb21lIHRvIG91ciBleGNsdXNpdmUgbmV3c2xldHRlciEnLCBpc1dpbm5lcjogdHJ1ZSB9LAogICAgICAgICAgICB7IGljb246ICfwn461JywgdGl0bGU6ICdUdW5lIEludG8gU3VjY2VzcyEnLCBtZXNzYWdlOiAnVmlzaXQgU2FuY3R1YXJ5IEFmcmljYSBNdXNpYyEgSm9pbiBuZXdzbGV0dGVyIGZvciBib251cyBlbnRyaWVzIScsIGlzV2lubmVyOiBmYWxzZSwgbGluazogJ2h0dHBzOi8vc2FuY3R1YXJ5LmFmcmljYS9tdXNpYycgfSwKICAgICAgICAgICAgeyBpY29uOiAn4pyoJywgdGl0bGU6ICdLbm93bGVkZ2UgaXMgUG93ZXIhJywgbWVzc2FnZTogJ0pvaW4gbmV3c2xldHRlciBmb3IgYm9udXMgZW50cmllcyBuZXh0IG1vbnRoIScsIGlzV2lubmVyOiBmYWxzZSB9LAogICAgICAgICAgICB7IGljb246ICfwn5KVJywgdGl0bGU6ICdZb3VyIFRpbWUgaXMgQ29taW5nIScsIG1lc3NhZ2U6ICdKb2luIG91ciBuZXdzbGV0dGVyIGZvciBCT05VUyBlbnRyaWVzIScsIGlzV2lubmVyOiBmYWxzZSB9CiAgICAgICAgXTsKICAgICAgICAKICAgICAgICBsZXQgaXNTcGlubmluZyA9IGZhbHNlOwogICAgICAgIGxldCBzcGluc0xlZnQgPSAzOwogICAgICAgIGNvbnN0IFNUT1JBR0VfS0VZID0gJ3Rhc25fd2hlZWxfc3BpbnMnOwogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIGNoZWNrU3BpbnMoKSB7CiAgICAgICAgICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKTsKICAgICAgICAgICAgaWYgKHN0b3JlZCkgewogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2Uoc3RvcmVkKTsKICAgICAgICAgICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7CiAgICAgICAgICAgICAgICBjb25zdCBzdG9yZWREYXRlID0gbmV3IERhdGUoZGF0YS5kYXRlKTsKICAgICAgICAgICAgICAgIGlmIChub3cuZ2V0TW9udGgoKSAhPT0gc3RvcmVkRGF0ZS5nZXRNb250aCgpIHx8IG5vdy5nZXRGdWxsWWVhcigpICE9PSBzdG9yZWREYXRlLmdldEZ1bGxZZWFyKCkpIHsKICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShTVE9SQUdFX0tFWSk7CiAgICAgICAgICAgICAgICAgICAgc3BpbnNMZWZ0ID0gMzsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgc3BpbnNMZWZ0ID0gZGF0YS5zcGluc0xlZnQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwaW5zTGVmdCcpLnRleHRDb250ZW50ID0gc3BpbnNMZWZ0OwogICAgICAgICAgICBpZiAoc3BpbnNMZWZ0IDw9IDApIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcGluQnRuJykuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwaW5CdG4nKS50ZXh0Q29udGVudCA9ICdObyBTcGlucyBMZWZ0IFRoaXMgTW9udGgnOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNoZWNrU3BpbnMoKTsKICAgICAgICAKICAgICAgICBmdW5jdGlvbiBzYXZlU3BpbnMoKSB7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeSh7CiAgICAgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksCiAgICAgICAgICAgICAgICBzcGluc0xlZnQ6IHNwaW5zTGVmdAogICAgICAgICAgICB9KSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIHNwaW5XaGVlbCgpIHsKICAgICAgICAgICAgaWYgKGlzU3Bpbm5pbmcgfHwgc3BpbnNMZWZ0IDw9IDApIHJldHVybjsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlzU3Bpbm5pbmcgPSB0cnVlOwogICAgICAgICAgICBzcGluc0xlZnQtLTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwaW5zTGVmdCcpLnRleHRDb250ZW50ID0gc3BpbnNMZWZ0OwogICAgICAgICAgICBzYXZlU3BpbnMoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IHdoZWVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3doZWVsJyk7CiAgICAgICAgICAgIGNvbnN0IHNwaW5CdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BpbkJ0bicpOwogICAgICAgICAgICAKICAgICAgICAgICAgc3BpbkJ0bi5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIHNwaW5CdG4udGV4dENvbnRlbnQgPSAn8J+OoSBTcGlubmluZy4uLic7CiAgICAgICAgICAgIAogICAgICAgICAgICBjb25zdCByYW5kID0gTWF0aC5yYW5kb20oKSAqIDEwMDsKICAgICAgICAgICAgbGV0IHByaXplSW5kZXg7CiAgICAgICAgICAgIGlmIChyYW5kIDwgNSkgcHJpemVJbmRleCA9IDA7CiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmQgPCAxNSkgcHJpemVJbmRleCA9IDE7CiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmQgPCAyNSkgcHJpemVJbmRleCA9IDI7CiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmQgPCAzNSkgcHJpemVJbmRleCA9IDM7CiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmQgPCA1MCkgcHJpemVJbmRleCA9IDQ7CiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmQgPCA2NSkgcHJpemVJbmRleCA9IDU7CiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmQgPCA4MCkgcHJpemVJbmRleCA9IDY7CiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmQgPCA5MCkgcHJpemVJbmRleCA9IDc7CiAgICAgICAgICAgIGVsc2UgcHJpemVJbmRleCA9IDggKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAzKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IHNwaW5zID0gNSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDMpOwogICAgICAgICAgICBjb25zdCBmaW5hbFJvdGF0aW9uID0gc3BpbnMgKiAzNjAgKyBNYXRoLnJhbmRvbSgpICogMzYwOwogICAgICAgICAgICAKICAgICAgICAgICAgd2hlZWwuc3R5bGUudHJhbnNmb3JtID0gYHJvdGF0ZSgke2ZpbmFsUm90YXRpb259ZGVnKWA7CiAgICAgICAgICAgIAogICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgIHNob3dSZXN1bHQocHJpemVzW3ByaXplSW5kZXhdKTsKICAgICAgICAgICAgICAgIGlzU3Bpbm5pbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHNwaW5CdG4uZGlzYWJsZWQgPSBzcGluc0xlZnQgPD0gMDsKICAgICAgICAgICAgICAgIHNwaW5CdG4udGV4dENvbnRlbnQgPSBzcGluc0xlZnQgPiAwID8gJ/CfjqEgU3BpbiBBZ2FpbiEnIDogJ05vIFNwaW5zIExlZnQgVGhpcyBNb250aCc7CiAgICAgICAgICAgIH0sIDU1MDApOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBmdW5jdGlvbiBzaG93UmVzdWx0KHByaXplKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRJY29uJykudGV4dENvbnRlbnQgPSBwcml6ZS5pY29uOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0VGl0bGUnKS50ZXh0Q29udGVudCA9IHByaXplLnRpdGxlOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0TWVzc2FnZScpLnRleHRDb250ZW50ID0gcHJpemUubWVzc2FnZTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IHJlc3VsdEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRCdG4nKTsKICAgICAgICAgICAgaWYgKHByaXplLmxpbmspIHsKICAgICAgICAgICAgICAgIHJlc3VsdEJ0bi5ocmVmID0gcHJpemUubGluazsKICAgICAgICAgICAgICAgIHJlc3VsdEJ0bi50ZXh0Q29udGVudCA9ICdDbGFpbSBZb3VyIFByaXplIOKGkic7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXN1bHRCdG4uaHJlZiA9ICdodHRwczovL3Rhc24uaGFuZHNoYWtlLmFmcmljYS92ZXJpZnknOwogICAgICAgICAgICAgICAgcmVzdWx0QnRuLnRleHRDb250ZW50ID0gcHJpemUuaXNXaW5uZXIgPyAnQ2xhaW0gWW91ciBQcml6ZSDihpInIDogJ0pvaW4gTmV3c2xldHRlciDihpInOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc3VsdEJ0bi50YXJnZXQgPSAnX2JsYW5rJzsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRNb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChwcml6ZS5pc1dpbm5lcikgY3JlYXRlQ29uZmV0dGkoKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gY2xvc2VNb2RhbCgpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdE1vZGFsJykuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBmdW5jdGlvbiBjcmVhdGVDb25mZXR0aSgpIHsKICAgICAgICAgICAgY29uc3QgY29sb3JzID0gWycjRTkxRThCJywgJyNGRjZCMzUnLCAnIzNFQjQ4OScsICcjRDRBRjM3JywgJyNmZmYnXTsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4MDsgaSsrKSB7CiAgICAgICAgICAgICAgICBjb25zdCBjb25mZXR0aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgY29uZmV0dGkuc3R5bGUuY3NzVGV4dCA9IGAKICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y29sb3JzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNvbG9ycy5sZW5ndGgpXX07CiAgICAgICAgICAgICAgICAgICAgbGVmdDogJHtNYXRoLnJhbmRvbSgpICogMTAwfXZ3OwogICAgICAgICAgICAgICAgICAgIHRvcDogLTEwcHg7CiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHtNYXRoLnJhbmRvbSgpID4gMC41ID8gJzUwJScgOiAnMCd9OwogICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDIwMDA7CiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBjb25mZXR0aUZhbGwgJHsyICsgTWF0aC5yYW5kb20oKSAqIDJ9cyBsaW5lYXIgZm9yd2FyZHM7CiAgICAgICAgICAgICAgICBgOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb25mZXR0aSk7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGNvbmZldHRpLnJlbW92ZSgpLCA0MDAwKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBjb25zdCBjb25mZXR0aVN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKICAgICAgICBjb25mZXR0aVN0eWxlLnRleHRDb250ZW50ID0gYEBrZXlmcmFtZXMgY29uZmV0dGlGYWxsIHsgdG8geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwdmgpIHJvdGF0ZSg3MjBkZWcpOyBvcGFjaXR5OiAwOyB9IH1gOwogICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoY29uZmV0dGlTdHlsZSk7CiAgICAgICAgCiAgICAgICAgLy8gQ0FST1VTRUwKICAgICAgICBsZXQgY3VycmVudFNsaWRlID0gMDsKICAgICAgICBjb25zdCB0b3RhbFNsaWRlcyA9IDg7CiAgICAgICAgCiAgICAgICAgY29uc3QgZG90c0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXJvdXNlbERvdHMnKTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRvdGFsU2xpZGVzOyBpKyspIHsKICAgICAgICAgICAgY29uc3QgZG90ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgIGRvdC5jbGFzc05hbWUgPSAnY2Fyb3VzZWwtZG90JyArIChpID09PSAwID8gJyBhY3RpdmUnIDogJycpOwogICAgICAgICAgICBkb3Qub25jbGljayA9ICgpID0+IGdvVG9TbGlkZShpKTsKICAgICAgICAgICAgZG90c0NvbnRhaW5lci5hcHBlbmRDaGlsZChkb3QpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBmdW5jdGlvbiBtb3ZlQ2Fyb3VzZWwoZGlyZWN0aW9uKSB7CiAgICAgICAgICAgIGN1cnJlbnRTbGlkZSA9IChjdXJyZW50U2xpZGUgKyBkaXJlY3Rpb24gKyB0b3RhbFNsaWRlcykgJSB0b3RhbFNsaWRlczsKICAgICAgICAgICAgdXBkYXRlQ2Fyb3VzZWwoKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24gZ29Ub1NsaWRlKGluZGV4KSB7CiAgICAgICAgICAgIGN1cnJlbnRTbGlkZSA9IGluZGV4OwogICAgICAgICAgICB1cGRhdGVDYXJvdXNlbCgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBmdW5jdGlvbiB1cGRhdGVDYXJvdXNlbCgpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nhcm91c2VsVHJhY2snKS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWCgtJHtjdXJyZW50U2xpZGUgKiAxMDB9JSlgOwogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY2Fyb3VzZWwtZG90JykuZm9yRWFjaCgoZG90LCBpKSA9PiB7CiAgICAgICAgICAgICAgICBkb3QuY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJywgaSA9PT0gY3VycmVudFNsaWRlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHNldEludGVydmFsKCgpID0+IG1vdmVDYXJvdXNlbCgxKSwgNTAwMCk7CiAgICA8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+","embed":""}
TASN 2026 Wheel of Futuristically Fruitful Fortunes | Pay It Forward | Handshake Africa
🤝 Handshake Africa ✦ TASN
✨ Exclusive for TASN Members ✨

Welcome to the

"Pay It Forward" ~ SHE E~Boss Solutionist

Every spin is a celebration of YOUR journey. Win prizes worth up to $399+ ~ digital cards, feature articles, directory listings, book features & more. Everyone wins something!

⏰ Celebration Ends In...

15
Days
00
Hours
00
Minutes
00
Seconds
📍
🏆
📰
📚
🎨
🌍
🎂
📬
🎵
👑

Spins remaining this month: 3

✕
🎉

Congratulations!

You've won something amazing!

Claim Your Prize →

🏆 What You Could Win

🏆
GRAND PRIZE
$100 Value!
FREE Premium Digital Business Card with video, up to 10 links, and VIP treatment!
📰
Feature Article
$250 Value!
Your story featured on SHE EVOLVES Africa or Africa Frontline Nexus News!
📚
Book Feature
$199 Value!
Your book featured across our news channels and blog! Perfect for authors.
🎨
Banner Ad
$199 Value!
FREE Banner Ad across our social media profiles for one month!
🌍
Directory Listing
$149 Value!
FREE Lifetime Listing on Top Africa Directory! Be found by clients.
📓
Strategy Journal
$47 Value!
Our exclusive Strategy & Success Journal! Plan and manifest your 2026.
🎂
Birthday Club VIP
$564 Potential!
On your birthday month, spin for a FREE 1-Year Hearth Membership!
📬
Newsletter VIP
Bonus Entries!
Exclusive insider access PLUS bonus entries in all future drawings.

Wondering who we are? Why you? Why now?

↓ Discover ↓

✨ The Treasure Trove ✨

A peek into a small selection of our full spectrum of resources ~ an ecosystem of media channels, virtual academies, Shop Local directories, and hubs & hives...

📺
SHE EVOLVES
News Channel
📰
FRONTLINE NEXUS
News
🤖
AI AFRICA NEWS
Tech News
🌍
TOP AFRICA DIRECTORY
Get Listed
🎓
MENTORSHIP ACADEMY
Training
🏠
THE HEARTH
Membership
🥁
ACCELERATE ACTION
Drumbeat
👑
LEADERSHIP ACADEMY
Founders Foundry
📬

Why Not Learn About Us On Your Own Terms?

Get to know us at your own pace. Stories, insights, and inspiration delivered straight to your inbox ~ no pressure, just value.

Join Our Newsletter →

We're fervent supporters of women AND equally all~in on lifelong reading. Explore our curated collection:

📚 Browse the Entrepreneur Library
SHE E-Boss Solutionist
🤝 Handshake Africa

"Paying It Forward, One Digital Handshake at a Time"

🎂 Birthday Club 🌸 Flourishing Fund Handshake Africa BrandHandshake Connect With Me

© 2026 Dynamic Paradigms & Mentorship Success Academies. All Rights Reserved.

Image Gallery Grid

T
Please Check Your Email
We Will Be Following Up Shortly
*
*
*

warning