{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+V2VsY29tZSB0byBGNCBQYXJlbnQgSHViIC0gR3VpZGluZyBUb21vcnJvdydzIExlYWRlcnM8L3RpdGxlPgogICAgPHN0eWxlPgogICAgICAgIC8qIFJvb3QgVmFyaWFibGVzICovCiAgICAgICAgOnJvb3QgewogICAgICAgICAgICAtLXByaW1hcnktcHVycGxlOiAjNzIwOWI3OwogICAgICAgICAgICAtLXByaW1hcnktYmx1ZTogIzNhMGNhMzsKICAgICAgICAgICAgLS1hY2NlbnQteWVsbG93OiAjZmZiZTBiOwogICAgICAgICAgICAtLWFjY2VudC1jb3JhbDogI2ZmMDA2ZTsKICAgICAgICAgICAgLS1zdWNjZXNzLWdyZWVuOiAjMzhiMDAwOwogICAgICAgICAgICAtLW5ldXRyYWwtZGFyazogIzFhMWExYTsKICAgICAgICAgICAgLS1uZXV0cmFsLWxpZ2h0OiAjZjhmOWZmOwogICAgICAgIH0KCiAgICAgICAgLyogQ29yZSBBbmltYXRpb25zICovCiAgICAgICAgQGtleWZyYW1lcyBmbG9hdCB7CiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7IH0KICAgICAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsgfQogICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7IH0KICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgdHlwZXdyaXRlciB7CiAgICAgICAgICAgIGZyb20geyB3aWR0aDogMDsgfQogICAgICAgICAgICB0byB7IHdpZHRoOiAxMDAlOyB9CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJblVwIHsKICAgICAgICAgICAgZnJvbSB7IAogICAgICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0byB7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIHdpZ2dsZSB7CiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICAgICAgMjUlIHsgdHJhbnNmb3JtOiByb3RhdGUoNWRlZyk7IH0KICAgICAgICAgICAgNzUlIHsgdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpOyB9CiAgICAgICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBncmFkaWVudEZsb3cgewogICAgICAgICAgICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTsgfQogICAgICAgICAgICA1MCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTsgfQogICAgICAgICAgICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlOyB9CiAgICAgICAgfQoKICAgICAgICAvKiBCYXNlIFN0eWxlcyAqLwogICAgICAgIGJvZHkgewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQXJpYWwnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uZXV0cmFsLWxpZ2h0KTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5ldXRyYWwtZGFyayk7CiAgICAgICAgfQoKICAgICAgICBoMSwgaDIsIGgzLCBoNCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXByaW1hcnktcHVycGxlKSwgdmFyKC0tcHJpbWFyeS1ibHVlKSk7CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOwogICAgICAgIH0KCiAgICAgICAgLyogSGVybyBCYW5uZXIgKi8KICAgICAgICAuaGVyby1iYW5uZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCB2YXIoLS1wcmltYXJ5LXB1cnBsZSksIHZhcigtLXByaW1hcnktYmx1ZSksIHZhcigtLWFjY2VudC1jb3JhbCkpOwogICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQwMCUgNDAwJTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBncmFkaWVudEZsb3cgMTVzIGVhc2UgaW5maW5pdGU7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgcGFkZGluZzogNHJlbSAycmVtOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC5oZXJvLWJhbm5lciBoMSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMy41cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZS1vdXQ7CiAgICAgICAgICAgIHRleHQtc2hhZG93OiAycHggMnB4IDRweCByZ2JhKDAsMCwwLDAuMik7CiAgICAgICAgfQoKICAgICAgICAuaGVyby10ZXh0IHsKICAgICAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2Utb3V0IDAuNXMgZm9yd2FyZHM7CiAgICAgICAgfQoKICAgICAgICAvKiBOYXZpZ2F0aW9uICovCiAgICAgICAgLm5hdi1iYXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgICAgICAgcGFkZGluZzogMXJlbTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwwLDAsMC4xKTsKICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB2YXIoLS1wcmltYXJ5LXB1cnBsZSk7CiAgICAgICAgfQoKICAgICAgICAubmF2LWNvbnRhaW5lciB7CiAgICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAubmF2LWxpbmsgewogICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1wdXJwbGUpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHBhZGRpbmc6IDAuOHJlbSAxLjVyZW07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgfQoKICAgICAgICAubmF2LWxpbms6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDExNCwgOSwgMTgzLCAwLjEpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsMCwwLDAuMSk7CiAgICAgICAgfQoKICAgICAgICAvKiBDb250ZW50IFNlY3Rpb25zICovCiAgICAgICAgLmNvbnRlbnQtc2VjdGlvbiB7CiAgICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgICBtYXJnaW46IDRyZW0gYXV0bzsKICAgICAgICAgICAgcGFkZGluZzogMCAycmVtOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRlbnQtc2VjdGlvbiBoMiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07CiAgICAgICAgfQoKICAgICAgICAuY29udGVudC1zZWN0aW9uIGgyOjphZnRlciB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGJvdHRvbTogMDsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tcHJpbWFyeS1wdXJwbGUpLCB2YXIoLS1hY2NlbnQtY29yYWwpKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIH0KCiAgICAgICAgLyogRmVhdHVyZSBHcmlkICovCiAgICAgICAgLmZlYXR1cmUtZ3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpOwogICAgICAgICAgICBnYXA6IDJyZW07CiAgICAgICAgICAgIG1hcmdpbjogM3JlbSAwOwogICAgICAgIH0KCiAgICAgICAgLmZlYXR1cmUtY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgICBwYWRkaW5nOiAycmVtOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggcmdiYSgwLDAsMCwwLjEpOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1hY2NlbnQtY29yYWwpOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAuZmVhdHVyZS1jYXJkOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHJpZ2h0OiAwOwogICAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1wcmltYXJ5LXB1cnBsZSksIHZhcigtLWFjY2VudC1jb3JhbCkpOwogICAgICAgIH0KCiAgICAgICAgLmZlYXR1cmUtY2FyZDpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMTJweCByZ2JhKDAsMCwwLDAuMTUpOwogICAgICAgIH0KCiAgICAgICAgLmZlYXR1cmUtY2FyZCBoMyB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWJsdWUpOwogICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTsKICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWFjY2VudC15ZWxsb3cpOwogICAgICAgIH0KCiAgICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgICAgIHdpZHRoOiA2MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDYwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmxvYXQgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICAvKiBKb3VybmV5IFBhdGggKi8KICAgICAgICAuam91cm5leS1wYXRoIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgICAgICAgIHBhZGRpbmc6IDNyZW0gMnJlbTsKICAgICAgICAgICAgbWFyZ2luOiA0cmVtIDA7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsMCwwLDAuMSk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXByaW1hcnktcHVycGxlKTsKICAgICAgICB9CgogICAgICAgIC5wYXRoLXN0ZXAgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uZXV0cmFsLWxpZ2h0KTsKICAgICAgICAgICAgcGFkZGluZzogMnJlbTsKICAgICAgICAgICAgbWFyZ2luOiAycmVtIDA7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tYWNjZW50LWNvcmFsKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwwLDAsMC4wNSk7CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluVXAgMXMgZWFzZS1vdXQgZm9yd2FyZHM7CiAgICAgICAgfQoKICAgICAgICAucGF0aC1zdGVwOm50aC1jaGlsZCgyKSB7IGFuaW1hdGlvbi1kZWxheTogMC4yczsgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXByaW1hcnktcHVycGxlKTsgfQogICAgICAgIC5wYXRoLXN0ZXA6bnRoLWNoaWxkKDMpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjRzOyBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tYWNjZW50LXllbGxvdyk7IH0KICAgICAgICAucGF0aC1zdGVwOm50aC1jaGlsZCg0KSB7IGFuaW1hdGlvbi1kZWxheTogMC42czsgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3MtZ3JlZW4pOyB9CgogICAgICAgIC5wYXRoLXN0ZXAgaDMgewogICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1ibHVlKTsKICAgICAgICAgICAgbWFyZ2luOiAwIDAgMXJlbSAwOwogICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHVuc2V0OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IHVuc2V0OwogICAgICAgIH0KCiAgICAgICAgLnBhdGgtc3RlcCBwIHsKICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5ldXRyYWwtZGFyayk7CiAgICAgICAgfQoKICAgICAgICAvKiBTdWNjZXNzIFN0b3JpZXMgKi8KICAgICAgICAuc3VjY2Vzcy1zdG9yeSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgICBwYWRkaW5nOiAycmVtOwogICAgICAgICAgICBtYXJnaW46IDJyZW0gMDsKICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1zdWNjZXNzLWdyZWVuKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IHJnYmEoMCwwLDAsMC4xKTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5zdWNjZXNzLXN0b3J5OmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpOwogICAgICAgIH0KCiAgICAgICAgLyogQ1RBIFNlY3Rpb24gKi8KICAgICAgICAuY3RhLXNlY3Rpb24gewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmc6IDRyZW0gMnJlbTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC00NWRlZywgdmFyKC0tcHJpbWFyeS1wdXJwbGUpLCB2YXIoLS1wcmltYXJ5LWJsdWUpKTsKICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA0MDAlIDQwMCU7CiAgICAgICAgICAgIGFuaW1hdGlvbjogZ3JhZGllbnRGbG93IDE1cyBlYXNlIGluZmluaXRlOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRyZW07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgfQoKICAgICAgICAuY3RhLWJ1dHRvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgcGFkZGluZzogMXJlbSAycmVtOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQteWVsbG93KTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktcHVycGxlKTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4OwogICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgfQoKICAgICAgICAuY3RhLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLDAsMCwwLjIpOwogICAgICAgICAgICBib3JkZXItY29sb3I6IHdoaXRlOwogICAgICAgIH0KCiAgICAgICAgLyogRm9vdGVyICovCiAgICAgICAgLmZvb3RlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktYmx1ZSk7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgcGFkZGluZzogM3JlbSAycmVtOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRyZW07CiAgICAgICAgfQoKICAgICAgICAuZm9vdGVyLWxpbmtzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogMnJlbTsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTsKICAgICAgICB9CgogICAgICAgIC5mb290ZXItbGluayB7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICB9CgogICAgICAgIC5mb290ZXItbGluazpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KCiAgICAgICAgLyogUmVzcG9uc2l2ZSBEZXNpZ24gKi8KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgICAgLmhlcm8tYmFubmVyIGgxIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtOwogICAgICAgICAgICB9CgogICAgICAgICAgICAubmF2LWNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5uYXYtbGluayB7CiAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLmZlYXR1cmUtZ3JpZCB7CiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAgICA8IS0tIENvbnRlbnQgZnJvbSBwcmV2aW91cyB2ZXJzaW9uIHJlbWFpbnMgdGhlIHNhbWUgLS0+CiAgICA8IS0tIEhlcm8gQmFubmVyIC0tPgogICAgPGRpdiBjbGFzcz0iaGVyby1iYW5uZXIiPgogICAgICAgIDxoMT5XZWxjb21lIHRvIHRoZSBGNCBQYXJlbnQgSHViPC9oMT4KICAgICAgICA8cCBjbGFzcz0iaGVyby10ZXh0Ij5Kb2luIHVzIGluIG51cnR1cmluZyB0aGUgbmV4dCBnZW5lcmF0aW9uIG9mIGlubm92YXRpdmUgbGVhZGVycyB0aHJvdWdoIG1pbmRzZXQgZGV2ZWxvcG1lbnQsIGVudHJlcHJlbmV1cmlhbCB0aGlua2luZywgYW5kIHZlbnR1cmUgc2tpbGxzIGJ1aWxkaW5nLjwvcD4KICAgIDwvZGl2PgoKICAgIDwhLS0gTmF2aWdhdGlvbiAtLT4KICAgIDxuYXYgY2xhc3M9Im5hdi1iYXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jb250YWluZXIiPgogICAgICAgICAgICA8YSBocmVmPSIjYWJvdXQiIGNsYXNzPSJuYXYtbGluayI+QWJvdXQgRjQ8L2E+CiAgICAgICAgICAgIDxhIGhyZWY9IiNwcm9ncmFtcyIgY2xhc3M9Im5hdi1saW5rIj5PdXIgUHJvZ3JhbXM8L2E+CiAgICAgICAgICAgIDxhIGhyZWY9IiNqb3VybmV5IiBjbGFzcz0ibmF2LWxpbmsiPkxlYXJuaW5nIEpvdXJuZXk8L2E+CiAgICAgICAgICAgIDxhIGhyZWY9IiNyZXNvdXJjZXMiIGNsYXNzPSJuYXYtbGluayI+UmVzb3VyY2VzPC9hPgogICAgICAgICAgICA8YSBocmVmPSIjZmFxIiBjbGFzcz0ibmF2LWxpbmsiPkZBUTwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iI2xvZ2luIiBjbGFzcz0ibmF2LWxpbmsiPlBhcmVudCBQb3J0YWw8L2E+CiAgICAgICAgPC9kaXY+CiAgICA8L25hdj4KCiAgICA8IS0tIE1haW4gQ29udGVudCAtLT4KICAgIDxtYWluPgogICAgICAgIDwhLS0gQWJvdXQgU2VjdGlvbiAtLT4KICAgICAgICA8c2VjdGlvbiBpZD0iYWJvdXQiIGNsYXNzPSJjb250ZW50LXNlY3Rpb24iPgogICAgICAgICAgICA8aDI+RW1wb3dlcmluZyBBZnJpY2EncyBZb3V0aCAmIFlvdW5nIEFkdWx0czwvaDI+CiAgICAgICAgICAgIDxwIGNsYXNzPSJzZWN0aW9uLWludHJvIj5UaGUgRmluYW5jaWFsIEZpdG5lc3MgRm9ydHVuZXMgRm91bmRhdGlvbiAoRjQpIGJyaW5ncyB0b2dldGhlciBhIGR5bmFtaWMgdGVhbSBvZiBidXNpbmVzcyBvd25lcnMsIGVudHJlcHJlbmV1cnMsIENNT3MsIGFuZCBpbmR1c3RyeSBleHBlcnRzIHBhc3Npb25hdGUgYWJvdXQgZW1wb3dlcmluZyBBZnJpY2FuIHlvdXRoIGFuZCB5b3VuZyBhZHVsdHMgd2l0aCBlc3NlbnRpYWwgbGlmZSBza2lsbHMgZm9yIHN1Y2Nlc3MuPC9wPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ncmlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9hcGkvcGxhY2Vob2xkZXIvNjAvNjAiIGFsdD0iVmlzaW9uIEljb24iIGNsYXNzPSJmZWF0dXJlLWljb24iPgogICAgICAgICAgICAgICAgICAgIDxoMz5WaXNpb24gQm9hcmQgSm91cm5leTwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHA+U3RhcnQgd2l0aCBvdXIgZmxhZ3NoaXAgVmlzaW9uIEJvYXJkIHByb2dyYW0sIHdoZXJlIGRyZWFtcyB0cmFuc2Zvcm0gaW50byBhY3Rpb25hYmxlIGdvYWxzIHRocm91Z2ggY3JlYXRpdmUgdmlzdWFsaXphdGlvbiBhbmQgc3RyYXRlZ2ljIHBsYW5uaW5nLjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1jYXJkIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2FwaS9wbGFjZWhvbGRlci82MC82MCIgYWx0PSJTa2lsbHMgSWNvbiIgY2xhc3M9ImZlYXR1cmUtaWNvbiI+CiAgICAgICAgICAgICAgICAgICAgPGgzPlZlbnR1cmUgU2tpbGxzIEJ1aWxkaW5nPC9oMz4KICAgICAgICAgICAgICAgICAgICA8cD5EZXZlbG9wIGVzc2VudGlhbCBlbnRyZXByZW5ldXJpYWwgY29tcGV0ZW5jaWVzIHRocm91Z2ggaGFuZHMtb24gcHJvamVjdHMgYW5kIHJlYWwtd29ybGQgYXBwbGljYXRpb25zLjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1jYXJkIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2FwaS9wbGFjZWhvbGRlci82MC82MCIgYWx0PSJHcm93dGggSWNvbiIgY2xhc3M9ImZlYXR1cmUtaWNvbiI+CiAgICAgICAgICAgICAgICAgICAgPGgzPkdyb3d0aCBNaW5kc2V0PC9oMz4KICAgICAgICAgICAgICAgICAgICA8cD5Gb3N0ZXIgYSBtaW5kc2V0IG9mIGNvbnRpbnVvdXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBpbm5vdmF0aW9uIGluIHlvdXIgY2hpbGQncyBkZXZlbG9wbWVudCBqb3VybmV5LjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDwhLS0gUHJvZ3JhbXMgU2VjdGlvbiAtLT4KICAgICAgICA8c2VjdGlvbiBpZD0icHJvZ3JhbXMiIGNsYXNzPSJjb250ZW50LXNlY3Rpb24iPgogICAgICAgICAgICA8aDI+QWdlLUFwcHJvcHJpYXRlIExlYXJuaW5nIFBhdGhzPC9oMj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtZ3JpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWNhcmQiPgogICAgICAgICAgICAgICAgICAgIDxoMz5EcmVhbSBFeHBsb3JlcnMgKEFnZXMgNS04KTwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+SW50ZXJhY3RpdmUgc3Rvcnl0ZWxsaW5nIGFuZCBjcmVhdGl2ZSBhY3Rpdml0aWVzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkJhc2ljIGdvYWwtc2V0dGluZyB0aHJvdWdoIGZ1biBleGVyY2lzZXM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+RW5nYWdpbmcgbGVhcm5pbmcgZ2FtZXMgYW5kIGNoYWxsZW5nZXM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+UGFyZW50LWd1aWRlZCBleHBsb3JhdGlvbiBhbmQgZGlzY292ZXJ5PC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgPGgzPllvdW5nIERyZWFtZXJzIChBZ2VzIDktMTIpPC9oMz4KICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Qcm9qZWN0LWJhc2VkIGxlYXJuaW5nIGV4cGVyaWVuY2VzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNvbGxhYm9yYXRpdmUgdGVhbSBhY3Rpdml0aWVzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNyZWF0aXZlIHByb2JsZW0tc29sdmluZyBjaGFsbGVuZ2VzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkd1aWRlZCBlbnRyZXByZW5ldXJpYWwgdGhpbmtpbmc8L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1jYXJkIj4KICAgICAgICAgICAgICAgICAgICA8aDM+VGVlbiBJbm5vdmF0b3JzIChBZ2VzIDEzLTE3KTwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWR2YW5jZWQgbGVhZGVyc2hpcCBkZXZlbG9wbWVudDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5SZWFsLXdvcmxkIGVudHJlcHJlbmV1cmlhbCBwcm9qZWN0czwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5NZW50b3ItZ3VpZGVkIGV4cGVyaWVuY2VzPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNvbW11bml0eSBpbXBhY3QgaW5pdGlhdGl2ZXM8L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8IS0tIEpvdXJuZXkgUGF0aCAtLT4KICAgICAgICA8c2VjdGlvbiBpZD0iam91cm5leSIgY2xhc3M9ImpvdXJuZXktcGF0aCI+CiAgICAgICAgICAgIDxoMj5Zb3VyIENoaWxkJ3MgTGVhcm5pbmcgSm91cm5leTwvaDI+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXRoLXN0ZXAiPgogICAgICAgICAgICAgICAgPGgzPjEuIFZpc2lvbiBCb2FyZCBDcmVhdGlvbjwvaDM+CiAgICAgICAgICAgICAgICA8cD5CZWdpbiB3aXRoIG91ciBmb3VuZGF0aW9uYWwgVmlzaW9uIEJvYXJkIHByb2dyYW0sIHNldHRpbmcgY2xlYXIgZ29hbHMgYW5kIGFzcGlyYXRpb25zLiBUaGlzIGNyZWF0aXZlIHByb2Nlc3MgaGVscHMgY2hpbGRyZW4gdmlzdWFsaXplIHRoZWlyIGZ1dHVyZSBhbmQgZGV2ZWxvcCBhIHJvYWRtYXAgZm9yIHN1Y2Nlc3MuPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhdGgtc3RlcCI+CiAgICAgICAgICAgICAgICA8aDM+Mi4gU2tpbGwgRGV2ZWxvcG1lbnQ8L2gzPgogICAgICAgICAgICAgICAgPHA+UHJvZ3Jlc3MgdGhyb3VnaCBhZ2UtYXBwcm9wcmlhdGUgbW9kdWxlcyBkZXZlbG9waW5nIGVzc2VudGlhbCBsaWZlIGFuZCBidXNpbmVzcyBza2lsbHMuIEVhY2ggbGV2ZWwgYnVpbGRzIHVwb24gcHJldmlvdXMgbGVhcm5pbmcgd2hpbGUgaW50cm9kdWNpbmcgbmV3IGNvbmNlcHRzIGFuZCBjaGFsbGVuZ2VzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXRoLXN0ZXAiPgogICAgICAgICAgICAgICAgPGgzPjMuIFByb2plY3QgSW1wbGVtZW50YXRpb248L2gzPgogICAgICAgICAgICAgICAgPHA+QXBwbHkgbGVhcm5pbmcgdGhyb3VnaCBoYW5kcy1vbiBwcm9qZWN0cyBhbmQgcmVhbC13b3JsZCBjaGFsbGVuZ2VzLiBDaGlsZHJlbiBkZXZlbG9wIGNvbmZpZGVuY2UgYW5kIGNvbXBldGVuY2UgdGhyb3VnaCBwcmFjdGljYWwgYXBwbGljYXRpb24gb2YgdGhlaXIgc2tpbGxzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXRoLXN0ZXAiPgogICAgICAgICAgICAgICAgPGgzPjQuIENvbW11bml0eSBFbmdhZ2VtZW50PC9oMz4KICAgICAgICAgICAgICAgIDxwPkNvbm5lY3Qgd2l0aCBwZWVycywgbWVudG9ycywgYW5kIHRoZSBicm9hZGVyIEY0IGNvbW11bml0eS4gQnVpbGRpbmcgcmVsYXRpb25zaGlwcyBhbmQgbmV0d29ya2luZyBza2lsbHMgYXJlIGVzc2VudGlhbCBwYXJ0cyBvZiB0aGUgbGVhcm5pbmcgam91cm5leS48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPCEtLSBQYXJlbnQgUmVzb3VyY2VzIC0tPgogICAgICAgIDxzZWN0aW9uIGlkPSJyZXNvdXJjZXMiIGNsYXNzPSJjb250ZW50LXNlY3Rpb24iPgogICAgICAgICAgICA8aDI+UGFyZW50IFJlc291cmNlcyAmIFN1cHBvcnQ8L2gyPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ncmlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgPGgzPlByb2dyZXNzIFRyYWNraW5nPC9oMz4KICAgICAgICAgICAgICAgICAgICA8cD5Nb25pdG9yIHlvdXIgY2hpbGQncyBqb3VybmV5IHRocm91Z2ggb3VyIGludHVpdGl2ZSBkYXNoYm9hcmQuIFRyYWNrIGFjaGlldmVtZW50cywgaWRlbnRpZnkgYXJlYXMgZm9yIGdyb3d0aCwgYW5kIGNlbGVicmF0ZSBwcm9ncmVzcyB0b2dldGhlci48L3A+CiAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+UmVhbC10aW1lIGFjdGl2aXR5IG1vbml0b3Jpbmc8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+UHJvZ3Jlc3MgcmVwb3J0cyBhbmQgaW5zaWdodHM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWNoaWV2ZW1lbnQgY2VsZWJyYXRpb25zPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgPGgzPkxlYXJuaW5nIE1hdGVyaWFsczwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHA+QWNjZXNzIHN1cHBsZW1lbnRhcnkgcmVzb3VyY2VzIHRvIHN1cHBvcnQgeW91ciBjaGlsZCdzIGRldmVsb3BtZW50IGpvdXJuZXkuPC9wPgogICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkRvd25sb2FkYWJsZSBhY3Rpdml0eSBndWlkZXM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+UGFyZW50LWNoaWxkIHdvcmtzaGVldHM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+RWR1Y2F0aW9uYWwgY29udGVudCBsaWJyYXJ5PC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtY2FyZCI+CiAgICAgICAgICAgICAgICAgICAgPGgzPkNvbW11bml0eSBTdXBwb3J0PC9oMz4KICAgICAgICAgICAgICAgICAgICA8cD5Db25uZWN0IHdpdGggb3RoZXIgcGFyZW50cyBhbmQgc2hhcmUgZXhwZXJpZW5jZXMgaW4gb3VyIHN1cHBvcnRpdmUgY29tbXVuaXR5LjwvcD4KICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5QYXJlbnQgZGlzY3Vzc2lvbiBmb3J1bXM8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+RXhwZXJ0LWxlZCB3ZWJpbmFyczwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5TdWNjZXNzIHN0b3J5IHNoYXJpbmc8L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8IS0tIFN1Y2Nlc3MgU3RvcmllcyAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0iY29udGVudC1zZWN0aW9uIj4KICAgICAgICAgICAgPGgyPlN1Y2Nlc3MgU3RvcmllczwvaDI+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWNjZXNzLXN0b3J5Ij4KICAgICAgICAgICAgICAgIDxwPiJUaGUgRjQgcHJvZ3JhbSBoYXMgdHJhbnNmb3JtZWQgbXkgZGF1Z2h0ZXIncyBhcHByb2FjaCB0byBnb2FsLXNldHRpbmcgYW5kIHBlcnNvbmFsIGRldmVsb3BtZW50LiBTaGUncyBtb3JlIGNvbmZpZGVudCwgZm9jdXNlZCwgYW5kIGV4Y2l0ZWQgYWJvdXQgaGVyIGZ1dHVyZSB0aGFuIGV2ZXIgYmVmb3JlISI8L3A+CiAgICAgICAgICAgICAgICA8Y2l0ZT4tIFNhcmFoIE0uLCBQYXJlbnQgb2YgYSBZb3VuZyBEcmVhbWVyPC9jaXRlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Y2Nlc3Mtc3RvcnkiPgogICAgICAgICAgICAgICAgPHA+IldhdGNoaW5nIG15IHNvbiBkZXZlbG9wIGVudHJlcHJlbmV1cmlhbCBza2lsbHMgdGhyb3VnaCB0aGUgVGVlbiBJbm5vdmF0b3JzIHByb2dyYW0gaGFzIGJlZW4gaW5jcmVkaWJsZS4gVGhlIG1lbnRvcnNoaXAgYXNwZWN0IGlzIGludmFsdWFibGUsIGFuZCB0aGUgY29tbXVuaXR5IHN1cHBvcnQgaXMgb3V0c3RhbmRpbmcuIjwvcD4KICAgICAgICAgICAgICAgIDxjaXRlPi0gSmFtZXMgSy4sIFBhcmVudCBvZiBhIFRlZW4gSW5ub3ZhdG9yPC9jaXRlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDwhLS0gRkFRIFNlY3Rpb24gLS0+CiAgICAgICAgPHNlY3Rpb24gaWQ9ImZhcSIgY2xhc3M9ImNvbnRlbnQtc2VjdGlvbiI+CiAgICAgICAgICAgIDxoMj5GcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9uczwvaDI+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJxdW90ZS1jYXJkIj4KICAgICAgICAgICAgICAgIDxoMz5Ib3cgZG8gSSBnZXQgc3RhcnRlZD88L2gzPgogICAgICAgICAgICAgICAgPHA+R2V0dGluZyBzdGFydGVkIGlzIGVhc3khIFNpbXBseSByZWdpc3RlciBmb3IgYSBwYXJlbnQgYWNjb3VudCwgYWRkIHlvdXIgY2hpbGQncyBwcm9maWxlLCBhbmQgYmVnaW4gd2l0aCBvdXIgVmlzaW9uIEJvYXJkIHByb2dyYW0uIE91ciBzdGVwLWJ5LXN0ZXAgb25ib2FyZGluZyBwcm9jZXNzIHdpbGwgZ3VpZGUgeW91IHRocm91Z2ggZWFjaCBzdGFnZS48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVvdGUtY2FyZCI+CiAgICAgICAgICAgICAgICA8aDM+SG93IG11Y2ggdGltZSBzaG91bGQgbXkgY2hpbGQgc3BlbmQgb24gdGhlIHBsYXRmb3JtPzwvaDM+CiAgICAgICAgICAgICAgICA8cD5XZSByZWNvbW1lbmQgMi0zIGVuZ2FnaW5nIHNlc3Npb25zIHBlciB3ZWVrLCBlYWNoIGxhc3RpbmcgMzAtNDUgbWludXRlcywgZGVwZW5kaW5nIG9uIHlvdXIgY2hpbGQncyBhZ2UgYW5kIHByb2dyYW0gbGV2ZWwuIFF1YWxpdHkgZW5nYWdlbWVudCBpcyBtb3JlIGltcG9ydGFudCB0aGFuIHF1YW50aXR5LjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJxdW90ZS1jYXJkIj4KICAgICAgICAgICAgICAgIDxoMz5JcyBwYXJlbnQgaW52b2x2ZW1lbnQgcmVxdWlyZWQ/PC9oMz4KICAgICAgICAgICAgICAgIDxwPlllcyEgWW91ciBndWlkYW5jZSBlbmhhbmNlcyB0aGUgbGVhcm5pbmcgZXhwZXJpZW5jZS4gV2UgcHJvdmlkZSBjb21wcmVoZW5zaXZlIHRvb2xzIGFuZCByZXNvdXJjZXMgdG8gaGVscCB5b3Ugc3VwcG9ydCB5b3VyIGNoaWxkIGVmZmVjdGl2ZWx5LCBtYWtpbmcgdGhlIGpvdXJuZXkgZW5qb3lhYmxlIGZvciBib3RoIG9mIHlvdS48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0icXVvdGUtY2FyZCI+CiAgICAgICAgICAgICAgICA8aDM+SG93IGlzIHByb2dyZXNzIG1lYXN1cmVkPzwvaDM+CiAgICAgICAgICAgICAgICA8cD5Qcm9ncmVzcyBpcyB0cmFja2VkIHRocm91Z2ggdmFyaW91cyBtZXRyaWNzIGluY2x1ZGluZyBjb21wbGV0ZWQgYWN0aXZpdGllcywgc2tpbGwgZGV2ZWxvcG1lbnQgYXNzZXNzbWVudHMsIHByb2plY3Qgb3V0Y29tZXMsIGFuZCBjb21tdW5pdHkgZW5nYWdlbWVudC4gUmVndWxhciBwcm9ncmVzcyByZXBvcnRzIGhlbHAgeW91IHN0YXkgaW5mb3JtZWQgYWJvdXQgeW91ciBjaGlsZCdzIGdyb3d0aC48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgPCEtLSBDVEEgU2VjdGlvbiAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0iY3RhLXNlY3Rpb24iPgogICAgICAgICAgICA8aDI+UmVhZHkgdG8gQmVnaW4gWW91ciBDaGlsZCdzIEpvdXJuZXk/PC9oMj4KICAgICAgICAgICAgPHA+Sm9pbiB0aG91c2FuZHMgb2YgcGFyZW50cyBzdXBwb3J0aW5nIHRoZWlyIGNoaWxkcmVuJ3MgZ3Jvd3RoIGFuZCBkZXZlbG9wbWVudCB0aHJvdWdoIEY0J3MgaW5ub3ZhdGl2ZSBwcm9ncmFtcy48L3A+CiAgICAgICAgICAgIDxhIGhyZWY9IiNyZWdpc3RlciIgY2xhc3M9ImN0YS1idXR0b24iPkNyZWF0ZSBQYXJlbnQgQWNjb3VudDwvYT4KICAgICAgICA8L3NlY3Rpb24+CiAgICA8L21haW4+CgogICAgPCEtLSBGb290ZXIgLS0+CiAgICA8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPgogICAgICAgIDxwPkZpbmFuY2lhbCBGaXRuZXNzIEZvcnR1bmVzIEZvdW5kYXRpb248L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWxpbmtzIj4KICAgICAgICAgICAgPGEgaHJlZj0iI2Fib3V0LXVzIiBjbGFzcz0iZm9vdGVyLWxpbmsiPkFib3V0IFVzPC9hPgogICAgICAgICAgICA8YSBocmVmPSIjY29udGFjdCIgY2xhc3M9ImZvb3Rlci1saW5rIj5Db250YWN0PC9hPgogICAgICAgICAgICA8YSBocmVmPSIjcHJpdmFjeSIgY2xhc3M9ImZvb3Rlci1saW5rIj5Qcml2YWN5IFBvbGljeTwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iI3Rlcm1zIiBjbGFzcz0iZm9vdGVyLWxpbmsiPlRlcm1zIG9mIFNlcnZpY2U8L2E+CiAgICAgICAgICAgIDxhIGhyZWY9IiNzdXBwb3J0IiBjbGFzcz0iZm9vdGVyLWxpbmsiPlN1cHBvcnQ8L2E+CiAgICAgICAgPC9kaXY+CiAgICA8L2Zvb3Rlcj4KPC9ib2R5Pgo8L2h0bWw+","embed":""}
Welcome to F4 Parent Hub - Guiding Tomorrow's Leaders

Welcome to the F4 Parent Hub

Join us in nurturing the next generation of innovative leaders through mindset development, entrepreneurial thinking, and venture skills building.

About F4 Our Programs Learning Journey Resources FAQ Parent Portal

Empowering Africa's Youth & Young Adults

The Financial Fitness Fortunes Foundation (F4) brings together a dynamic team of business owners, entrepreneurs, CMOs, and industry experts passionate about empowering African youth and young adults with essential life skills for success.

Vision Icon

Vision Board Journey

Start with our flagship Vision Board program, where dreams transform into actionable goals through creative visualization and strategic planning.

Skills Icon

Venture Skills Building

Develop essential entrepreneurial competencies through hands-on projects and real-world applications.

Growth Icon

Growth Mindset

Foster a mindset of continuous learning, resilience, and innovation in your child's development journey.

Age-Appropriate Learning Paths

Dream Explorers (Ages 5-8)

  • Interactive storytelling and creative activities
  • Basic goal-setting through fun exercises
  • Engaging learning games and challenges
  • Parent-guided exploration and discovery

Young Dreamers (Ages 9-12)

  • Project-based learning experiences
  • Collaborative team activities
  • Creative problem-solving challenges
  • Guided entrepreneurial thinking

Teen Innovators (Ages 13-17)

  • Advanced leadership development
  • Real-world entrepreneurial projects
  • Mentor-guided experiences
  • Community impact initiatives

Your Child's Learning Journey

1. Vision Board Creation

Begin with our foundational Vision Board program, setting clear goals and aspirations. This creative process helps children visualize their future and develop a roadmap for success.

2. Skill Development

Progress through age-appropriate modules developing essential life and business skills. Each level builds upon previous learning while introducing new concepts and challenges.

3. Project Implementation

Apply learning through hands-on projects and real-world challenges. Children develop confidence and competence through practical application of their skills.

4. Community Engagement

Connect with peers, mentors, and the broader F4 community. Building relationships and networking skills are essential parts of the learning journey.

Parent Resources & Support

Progress Tracking

Monitor your child's journey through our intuitive dashboard. Track achievements, identify areas for growth, and celebrate progress together.

  • Real-time activity monitoring
  • Progress reports and insights
  • Achievement celebrations

Learning Materials

Access supplementary resources to support your child's development journey.

  • Downloadable activity guides
  • Parent-child worksheets
  • Educational content library

Community Support

Connect with other parents and share experiences in our supportive community.

  • Parent discussion forums
  • Expert-led webinars
  • Success story sharing

Success Stories

"The F4 program has transformed my daughter's approach to goal-setting and personal development. She's more confident, focused, and excited about her future than ever before!"

- Sarah M., Parent of a Young Dreamer

"Watching my son develop entrepreneurial skills through the Teen Innovators program has been incredible. The mentorship aspect is invaluable, and the community support is outstanding."

- James K., Parent of a Teen Innovator

Frequently Asked Questions

How do I get started?

Getting started is easy! Simply register for a parent account, add your child's profile, and begin with our Vision Board program. Our step-by-step onboarding process will guide you through each stage.

How much time should my child spend on the platform?

We recommend 2-3 engaging sessions per week, each lasting 30-45 minutes, depending on your child's age and program level. Quality engagement is more important than quantity.

Is parent involvement required?

Yes! Your guidance enhances the learning experience. We provide comprehensive tools and resources to help you support your child effectively, making the journey enjoyable for both of you.

How is progress measured?

Progress is tracked through various metrics including completed activities, skill development assessments, project outcomes, and community engagement. Regular progress reports help you stay informed about your child's growth.

Ready to Begin Your Child's Journey?

Join thousands of parents supporting their children's growth and development through F4's innovative programs.

Create Parent Account

Financial Fitness Fortunes Foundation

About Us Contact Privacy Policy Terms of Service Support
Image Gallery Grid
T
Please Check Your Email
We Will Be Following Up Shortly
*
*
*

warning