{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICA8dGl0bGU+UHJpY2luZyAtIENob29zZSBZb3VyIFBlcmZlY3QgQ2FyZCB8IEhhbmRzaGFrZS5hZnJpY2E8L3RpdGxlPgogIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJBZmZvcmRhYmxlIGRpZ2l0YWwgYnVzaW5lc3MgY2FyZHMgZm9yIEFmcmljYW4gZW50cmVwcmVuZXVycy4gRnJvbSAkOTcveWVhci4gQ2hvb3NlIHlvdXIgdGllciBhbmQgc3RhcnQgc3RhbmRpbmcgb3V0IHRvZGF5LiI+CiAgPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJub2luZGV4LCBub2ZvbGxvdyI+CiAgCiAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1JbnRlcjp3Z2h0QDMwMDs0MDA7NjAwOzcwMDs4MDA7OTAwJmZhbWlseT1QbGF5ZmFpcitEaXNwbGF5OndnaHRANzAwOzkwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgCiAgPHN0eWxlPgogICAgOnJvb3QgewogICAgICAtLW5hdnk6ICMwMDFGM0Y7CiAgICAgIC0tcm95YWwtYmx1ZTogIzAwNDdBQjsKICAgICAgLS1nb2xkOiAjRkZENzAwOwogICAgICAtLWdvbGQtd2FybTogI0ZGQzEwNzsKICAgICAgLS13aGl0ZTogI0ZGRkZGRjsKICAgICAgLS1saWdodC1iZzogI0Y3RjlGQzsKICAgICAgLS1ncmF5OiAjNkI3MjgwOwogICAgICAtLXRlYWw6ICMwMEM5QTc7CiAgICAgIC0tb3JhbmdlOiAjRkY2QjM1OwogICAgICAtLXB1cnBsZTogIzdCNjhFRTsKICAgICAgLS1ibHVlOiAjNEE5MEUyOwogICAgfQogICAgCiAgICAqIHsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgfQogICAgCiAgICBib2R5IHsKICAgICAgZm9udC1mYW1pbHk6ICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1saWdodC1iZyk7CiAgICB9CiAgICAKICAgIGgxLCBoMiwgaDMgewogICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgZm9udC13ZWlnaHQ6IDkwMDsKICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIH0KICAgIAogICAgLyogTkFWSUdBVElPTiAqLwogICAgLm5hdiB7CiAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgdG9wOiAwOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAzMSwgNjMsIDAuOTUpOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7CiAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIHBhZGRpbmc6IDFyZW0gMnJlbTsKICAgICAgYm94LXNoYWRvdzogMCAycHggMjBweCByZ2JhKDAsMCwwLDAuMSk7CiAgICB9CiAgICAKICAgIC5uYXYtY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB9CiAgICAKICAgIC5sb2dvIHsKICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgIH0KICAgIAogICAgLm5hdi1saW5rcyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMnJlbTsKICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgIH0KICAgIAogICAgLm5hdi1saW5rcyBhIHsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7CiAgICB9CiAgICAKICAgIC5uYXYtbGlua3MgYTpob3ZlciwKICAgIC5uYXYtbGlua3MgYS5hY3RpdmUgewogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICB9CiAgICAKICAgIC5tb2JpbGUtbWVudSB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KICAgIAogICAgLyogSEVSTyAqLwogICAgLmhlcm8gewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1uYXZ5KSAwJSwgdmFyKC0tcm95YWwtYmx1ZSkgMTAwJSk7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIHBhZGRpbmc6IDE0MHB4IDJyZW0gODBweDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogICAgCiAgICAuaGVybzo6YmVmb3JlIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAtNTAlOwogICAgICBsZWZ0OiAtNTAlOwogICAgICB3aWR0aDogMjAwJTsKICAgICAgaGVpZ2h0OiAyMDAlOwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50IDMwJSwgcmdiYSgyNTUsIDIxNSwgMCwgMC4wNSkgNTAlLCB0cmFuc3BhcmVudCA3MCUpOwogICAgICBhbmltYXRpb246IHJvdGF0ZSAyMHMgbGluZWFyIGluZmluaXRlOwogICAgfQogICAgCiAgICBAa2V5ZnJhbWVzIHJvdGF0ZSB7CiAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgIH0KICAgIAogICAgLmhlcm8tY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHotaW5kZXg6IDI7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KICAgIAogICAgLmhlcm8gaDEgewogICAgICBmb250LXNpemU6IGNsYW1wKDIuNXJlbSwgNnZ3LCA0cmVtKTsKICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgIH0KICAgIAogICAgLmhlcm8tc3VidGl0bGUgewogICAgICBmb250LXNpemU6IGNsYW1wKDEuMXJlbSwgMi41dncsIDEuNHJlbSk7CiAgICAgIG9wYWNpdHk6IDAuOTU7CiAgICAgIG1heC13aWR0aDogNzAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAvKiBQQUdFIE5BVklHQVRJT04gKi8KICAgIC5wYWdlLW5hdiB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgIG1hcmdpbjogMnJlbSBhdXRvOwogICAgICBwYWRkaW5nOiAwIDJyZW07CiAgICB9CiAgICAKICAgIC5uYXYtYXJyb3cgewogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAwLjVyZW07CiAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMS41cmVtOwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjE1LCAwLCAwLjEpOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1nb2xkKTsKICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgfQogICAgCiAgICAubmF2LWFycm93OmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgfQogICAgCiAgICAvKiBQUklDSU5HIENBUkRTIFNFQ1RJT04gKi8KICAgIC5wcmljaW5nLXNlY3Rpb24gewogICAgICBwYWRkaW5nOiA4MHB4IDJyZW07CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0LWJnKTsKICAgIH0KICAgIAogICAgLnByaWNpbmctY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1oZWFkZXIgewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLWhlYWRlciBoMiB7CiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNXZ3LCAzLjVyZW0pOwogICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1zdWJ0aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICBjb2xvcjogdmFyKC0tZ3JheSk7CiAgICAgIG1heC13aWR0aDogNzAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvIDFyZW07CiAgICB9CiAgICAKICAgIC51cmwtZXhwbGFpbmVyIHsKICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDIxNSwgMCwgMC4xKTsKICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7CiAgICAgIHBhZGRpbmc6IDEuNXJlbTsKICAgICAgbWFyZ2luOiAycmVtIGF1dG8gNHJlbTsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIH0KICAgIAogICAgLnVybC1leHBsYWluZXIgaDMgewogICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgfQogICAgCiAgICAudXJsLWV4YW1wbGVzIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAwLjc1cmVtOwogICAgfQogICAgCiAgICAudXJsLWV4YW1wbGUgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDFyZW07CiAgICAgIHBhZGRpbmc6IDAuNzVyZW07CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgfQogICAgCiAgICAudXJsLWxhYmVsIHsKICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgfQogICAgCiAgICAudXJsLXZhbHVlIHsKICAgICAgZm9udC1mYW1pbHk6ICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgY29sb3I6IHZhcigtLXJveWFsLWJsdWUpOwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgCiAgICAvKiBQUklDSU5HIEdSSUQgKi8KICAgIC5wcmljaW5nLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMyMHB4LCAxZnIpKTsKICAgICAgZ2FwOiAyLjVyZW07CiAgICAgIG1hcmdpbi1ib3R0b206IDRyZW07CiAgICB9CiAgICAKICAgIC5wcmljaW5nLWNhcmQgewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS13aGl0ZSk7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgIHBhZGRpbmc6IDNyZW0gMi41cmVtOwogICAgICBib3gtc2hhZG93OiAwIDEwcHggNDBweCByZ2JhKDAsMCwwLDAuMDgpOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTsKICAgICAgYm9yZGVyOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICB9CiAgICAKICAgIC5wcmljaW5nLWNhcmQ6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpOwogICAgICBib3gtc2hhZG93OiAwIDI1cHggNzBweCByZ2JhKDAsMCwwLDAuMTUpOwogICAgfQogICAgCiAgICAvKiBUaWVyLXNwZWNpZmljIGNvbG9ycyAqLwogICAgLnByaWNpbmctY2FyZC5lc3NlbnRpYWwgewogICAgICBib3JkZXItY29sb3I6IHZhcigtLWJsdWUpOwogICAgfQogICAgCiAgICAucHJpY2luZy1jYXJkLnByb2Zlc3Npb25hbCB7CiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGVhbCk7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmZmZmYgMCUsICNmMGZkZjQgMTAwJSk7CiAgICB9CiAgICAKICAgIC5wcmljaW5nLWNhcmQucHJlbWl1bSB7CiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHVycGxlKTsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmZmZmZiAwJSwgI2YzZjBmZiAxMDAlKTsKICAgIH0KICAgIAogICAgLyogUG9wdWxhciBiYWRnZSAqLwogICAgLnBvcHVsYXItYmFkZ2UgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogLTE1cHg7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS10ZWFsKSAwJSwgIzAwQjg5NCAxMDAlKTsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgcGFkZGluZzogMC41cmVtIDJyZW07CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgICAgYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDIwMSwgMTY3LCAwLjQpOwogICAgfQogICAgCiAgICAuYmVzdC12YWx1ZS1iYWRnZSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAtMTVweDsKICAgICAgbGVmdDogNTAlOwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXB1cnBsZSkgMCUsICM2QzVDRTcgMTAwJSk7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtOwogICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICBmb250LXdlaWdodDogODAwOwogICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxMjMsIDEwNCwgMjM4LCAwLjQpOwogICAgfQogICAgCiAgICAudGllci1uYW1lIHsKICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgfQogICAgCiAgICAudGllci10YWdsaW5lIHsKICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICBjb2xvcjogdmFyKC0tZ3JheSk7CiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICAgIH0KICAgIAogICAgLnByaWNlLWRpc3BsYXkgewogICAgICBtYXJnaW4tYm90dG9tOiAycmVtOwogICAgfQogICAgCiAgICAucHJpY2UtYW1vdW50IHsKICAgICAgZm9udC1zaXplOiAzLjVyZW07CiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7CiAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgfQogICAgCiAgICAucHJpY2UtcGVyaW9kIHsKICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgIGNvbG9yOiB2YXIoLS1ncmF5KTsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KICAgIAogICAgLnVybC1kaXNwbGF5IHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tbGlnaHQtYmcpOwogICAgICBwYWRkaW5nOiAxcmVtOwogICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICBtYXJnaW4tYm90dG9tOiAycmVtOwogICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgfQogICAgCiAgICAudXJsLWxhYmVsLXNtYWxsIHsKICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICBmb250LXdlaWdodDogNzAwOwogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsKICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgfQogICAgCiAgICAudXJsLXZhbHVlLWRpc3BsYXkgewogICAgICBmb250LWZhbWlseTogJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgY29sb3I6IHZhcigtLXJveWFsLWJsdWUpOwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICB9CiAgICAKICAgIC5mZWF0dXJlcy1saXN0IHsKICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsKICAgIH0KICAgIAogICAgLmZlYXR1cmVzLWxpc3QgbGkgewogICAgICBwYWRkaW5nOiAwLjc1cmVtIDA7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICBnYXA6IDAuNzVyZW07CiAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4wNSk7CiAgICB9CiAgICAKICAgIC5mZWF0dXJlcy1saXN0IGxpOmxhc3QtY2hpbGQgewogICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgfQogICAgCiAgICAuZmVhdHVyZXMtbGlzdCBsaTo6YmVmb3JlIHsKICAgICAgY29udGVudDogJ+Kckyc7CiAgICAgIGNvbG9yOiB2YXIoLS10ZWFsKTsKICAgICAgZm9udC13ZWlnaHQ6IDkwMDsKICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQogICAgCiAgICAuZmVhdHVyZXMtbGlzdCBsaS5ub3QtaW5jbHVkZWQgewogICAgICBvcGFjaXR5OiAwLjQ7CiAgICB9CiAgICAKICAgIC5mZWF0dXJlcy1saXN0IGxpLm5vdC1pbmNsdWRlZDo6YmVmb3JlIHsKICAgICAgY29udGVudDogJ8OXJzsKICAgICAgY29sb3I6IHZhcigtLWdyYXkpOwogICAgfQogICAgCiAgICAvKiBDVEEgQnV0dG9ucyAqLwogICAgLnByaWNpbmctY3RhIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIHBhZGRpbmc6IDEuMnJlbTsKICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7CiAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CiAgICAKICAgIC5wcmljaW5nLWN0YTo6YmVmb3JlIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiA1MCU7CiAgICAgIGxlZnQ6IDUwJTsKICAgICAgd2lkdGg6IDA7CiAgICAgIGhlaWdodDogMDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMyk7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzLCBoZWlnaHQgMC42czsKICAgIH0KICAgIAogICAgLnByaWNpbmctY3RhOmhvdmVyOjpiZWZvcmUgewogICAgICB3aWR0aDogNDAwcHg7CiAgICAgIGhlaWdodDogNDAwcHg7CiAgICB9CiAgICAKICAgIC5wcmljaW5nLWN0YSBzcGFuIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB6LWluZGV4OiAxOwogICAgfQogICAgCiAgICAuY3RhLWVzc2VudGlhbCB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJsdWUpIDAlLCAjMzU3QUJEIDEwMCUpOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgfQogICAgCiAgICAuY3RhLWVzc2VudGlhbDpob3ZlciB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgYm94LXNoYWRvdzogMCAxNXB4IDQwcHggcmdiYSg3NCwgMTQ0LCAyMjYsIDAuNCk7CiAgICB9CiAgICAKICAgIC5jdGEtcHJvZmVzc2lvbmFsIHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tdGVhbCkgMCUsICMwMEI4OTQgMTAwJSk7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICB9CiAgICAKICAgIC5jdGEtcHJvZmVzc2lvbmFsOmhvdmVyIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDAsIDIwMSwgMTY3LCAwLjQpOwogICAgfQogICAgCiAgICAuY3RhLXByZW1pdW0gewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1wdXJwbGUpIDAlLCAjNkM1Q0U3IDEwMCUpOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgfQogICAgCiAgICAuY3RhLXByZW1pdW06aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7CiAgICAgIGJveC1zaGFkb3c6IDAgMTVweCA0MHB4IHJnYmEoMTIzLCAxMDQsIDIzOCwgMC40KTsKICAgIH0KICAgIAogICAgLyogQ09NUEFSSVNPTiBUQUJMRSAqLwogICAgLmNvbXBhcmlzb24tc2VjdGlvbiB7CiAgICAgIHBhZGRpbmc6IDgwcHggMnJlbTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpOwogICAgfQogICAgCiAgICAuY29tcGFyaXNvbi1jb250YWluZXIgewogICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5jb21wYXJpc29uLXRhYmxlIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDQwcHggcmdiYSgwLDAsMCwwLjA4KTsKICAgIH0KICAgIAogICAgLmNvbXBhcmlzb24tdGFibGUgdGgsCiAgICAuY29tcGFyaXNvbi10YWJsZSB0ZCB7CiAgICAgIHBhZGRpbmc6IDEuNXJlbSAxcmVtOwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saWdodC1iZyk7CiAgICB9CiAgICAKICAgIC5jb21wYXJpc29uLXRhYmxlIHRoIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tbmF2eSk7CiAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICB9CiAgICAKICAgIC5jb21wYXJpc29uLXRhYmxlIHRkOmZpcnN0LWNoaWxkIHsKICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgfQogICAgCiAgICAuY29tcGFyaXNvbi10YWJsZSAuY2hlY2sgewogICAgICBjb2xvcjogdmFyKC0tdGVhbCk7CiAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICBmb250LXdlaWdodDogOTAwOwogICAgfQogICAgCiAgICAuY29tcGFyaXNvbi10YWJsZSAuY3Jvc3MgewogICAgICBjb2xvcjogdmFyKC0tZ3JheSk7CiAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICB9CiAgICAKICAgIC8qIEJVTkRMRVMgU0VDVElPTiAqLwogICAgLmJ1bmRsZXMtc2VjdGlvbiB7CiAgICAgIHBhZGRpbmc6IDgwcHggMnJlbTsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCkgMCUsIHZhcigtLWdvbGQtd2FybSkgMTAwJSk7CiAgICB9CiAgICAKICAgIC5idW5kbGVzLWNvbnRhaW5lciB7CiAgICAgIG1heC13aWR0aDogMTQwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLmJ1bmRsZXMtc2VjdGlvbiBoMiB7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogICAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDV2dywgM3JlbSk7CiAgICB9CiAgICAKICAgIC5idW5kbGVzLXN1YnRpdGxlIHsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgZm9udC1zaXplOiAxLjJyZW07CiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07CiAgICB9CiAgICAKICAgIC5idW5kbGVzLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTsKICAgICAgZ2FwOiAyLjVyZW07CiAgICB9CiAgICAKICAgIC5idW5kbGUtY2FyZCB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgcGFkZGluZzogMi41cmVtOwogICAgICBib3gtc2hhZG93OiAwIDE1cHggNTBweCByZ2JhKDAsMCwwLDAuMTUpOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zczsKICAgIH0KICAgIAogICAgLmJ1bmRsZS1jYXJkOmhvdmVyIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgYm94LXNoYWRvdzogMCAyNXB4IDcwcHggcmdiYSgwLDAsMCwwLjIpOwogICAgfQogICAgCiAgICAuYnVuZGxlLW5hbWUgewogICAgICBmb250LXNpemU6IDEuOHJlbTsKICAgICAgZm9udC13ZWlnaHQ6IDkwMDsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07CiAgICB9CiAgICAKICAgIC5idW5kbGUtcHJpY2UgewogICAgICBmb250LXNpemU6IDIuNXJlbTsKICAgICAgZm9udC13ZWlnaHQ6IDkwMDsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOwogICAgfQogICAgCiAgICAuYnVuZGxlLXNhdmluZ3MgewogICAgICBjb2xvcjogdmFyKC0tdGVhbCk7CiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOwogICAgfQogICAgCiAgICAuYnVuZGxlLWluY2x1ZGVzIHsKICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsKICAgIH0KICAgIAogICAgLmJ1bmRsZS1pbmNsdWRlcyBsaSB7CiAgICAgIHBhZGRpbmc6IDAuNXJlbSAwOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgZ2FwOiAwLjc1cmVtOwogICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICB9CiAgICAKICAgIC5idW5kbGUtaW5jbHVkZXMgbGk6OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICfinJMnOwogICAgICBjb2xvcjogdmFyKC0tdGVhbCk7CiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7CiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgfQogICAgCiAgICAuYnVuZGxlLWN0YSB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBwYWRkaW5nOiAxcmVtOwogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXZ5KTsKICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zczsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQogICAgCiAgICAuYnVuZGxlLWN0YTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXJveWFsLWJsdWUpOwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgICB9CiAgICAKICAgIC8qIEZBUSBTRUNUSU9OICovCiAgICAuZmFxLXNlY3Rpb24gewogICAgICBwYWRkaW5nOiA4MHB4IDJyZW07CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0LWJnKTsKICAgIH0KICAgIAogICAgLmZhcS1jb250YWluZXIgewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLmZhcS1zZWN0aW9uIGgyIHsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBtYXJnaW4tYm90dG9tOiAzcmVtOwogICAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDV2dywgM3JlbSk7CiAgICB9CiAgICAKICAgIC5mYXEtaXRlbSB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsKICAgICAgcGFkZGluZzogMnJlbTsKICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOwogICAgICBib3gtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMCwwLDAsMC4wNSk7CiAgICB9CiAgICAKICAgIC5mYXEtcXVlc3Rpb24gewogICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogICAgfQogICAgCiAgICAuZmFxLWFuc3dlciB7CiAgICAgIGNvbG9yOiB2YXIoLS1ncmF5KTsKICAgICAgbGluZS1oZWlnaHQ6IDEuNzsKICAgIH0KICAgIAogICAgLyogRklOQUwgQ1RBICovCiAgICAuZmluYWwtY3RhIHsKICAgICAgcGFkZGluZzogMTAwcHggMnJlbTsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbmF2eSkgMCUsIHZhcigtLXJveWFsLWJsdWUpIDEwMCUpOwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICB9CiAgICAKICAgIC5maW5hbC1jdGEtY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5maW5hbC1jdGEgaDIgewogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNXZ3LCAzLjVyZW0pOwogICAgfQogICAgCiAgICAuZmluYWwtY3RhIHAgewogICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgb3BhY2l0eTogMC45NTsKICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOwogICAgfQogICAgCiAgICAuZmluYWwtY3RhLWJ1dHRvbiB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcGFkZGluZzogMS4zcmVtIDMuNXJlbTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7CiAgICB9CiAgICAKICAgIC5maW5hbC1jdGEtYnV0dG9uOmhvdmVyIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICBib3gtc2hhZG93OiAwIDIwcHggNTBweCByZ2JhKDI1NSwyMTUsMCwwLjQpOwogICAgfQogICAgCiAgICAvKiBGT09URVIgKi8KICAgIC5mb290ZXIgewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXZ5KTsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgcGFkZGluZzogNjBweCAycmVtIDIwcHg7CiAgICB9CiAgICAKICAgIC5mb290ZXItY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAuZm9vdGVyLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgZ2FwOiAzcmVtOwogICAgICBtYXJnaW4tYm90dG9tOiAzcmVtOwogICAgfQogICAgCiAgICAuZm9vdGVyLWNvbHVtbiBoNCB7CiAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgIH0KICAgIAogICAgLmZvb3Rlci1jb2x1bW4gdWwgewogICAgICBsaXN0LXN0eWxlOiBub25lOwogICAgfQogICAgCiAgICAuZm9vdGVyLWNvbHVtbiB1bCBsaSB7CiAgICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07CiAgICB9CiAgICAKICAgIC5mb290ZXItY29sdW1uIGEgewogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7CiAgICB9CiAgICAKICAgIC5mb290ZXItY29sdW1uIGE6aG92ZXIgewogICAgICBvcGFjaXR5OiAxOwogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICB9CiAgICAKICAgIC5mb290ZXItYm90dG9tIHsKICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LDIxNSwwLDAuMyk7CiAgICAgIHBhZGRpbmctdG9wOiAycmVtOwogICAgICBtYXJnaW4tdG9wOiAycmVtOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgZ2FwOiAxcmVtOwogICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgb3BhY2l0eTogMC44OwogICAgfQogICAgCiAgICAuZm9vdGVyLWJvdHRvbSBhIHsKICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICB9CiAgICAKICAgIC8qIFJFU1BPTlNJVkUgKi8KICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAubmF2LWxpbmtzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbmF2eSk7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiAycmVtOwogICAgICAgIGdhcDogMXJlbTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7CiAgICAgIH0KICAgICAgCiAgICAgIC5uYXYtbGlua3MuYWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICB9CiAgICAgIAogICAgICAubW9iaWxlLW1lbnUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIAogICAgICAucHJpY2luZy1ncmlkLAogICAgICAuYnVuZGxlcy1ncmlkIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgfQogICAgICAKICAgICAgLmNvbXBhcmlzb24tdGFibGUgewogICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgfQogICAgICAKICAgICAgLmNvbXBhcmlzb24tdGFibGUgdGgsCiAgICAgIC5jb21wYXJpc29uLXRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTsKICAgICAgfQogICAgICAKICAgICAgLnBhZ2UtbmF2IHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMXJlbTsKICAgICAgfQogICAgICAKICAgICAgLm5hdi1hcnJvdyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KICAgICAgCiAgICAgIC51cmwtZXhwbGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAxcmVtOwogICAgICB9CiAgICAgIAogICAgICAudXJsLWV4YW1wbGUgewogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KICAgIH0KICAgIAogICAgLyogQU5JTUFUSU9OUyAqLwogICAgLmZhZGUtaW4gewogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjZzIGVhc2Utb3V0OwogICAgfQogICAgCiAgICAuZmFkZS1pbi52aXNpYmxlIHsKICAgICAgb3BhY2l0eTogMTsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgfQogICAgCiAgICAvKiBTRUNVUklUWSAqLwogICAgKiB7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgfQogIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CgogIDwhLS0gTkFWSUdBVElPTiAtLT4KICA8bmF2IGNsYXNzPSJuYXYiPgogICAgPGRpdiBjbGFzcz0ibmF2LWNvbnRhaW5lciI+CiAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJsb2dvIj5IYW5kc2hha2UuYWZyaWNhPC9hPgogICAgICA8YnV0dG9uIGNsYXNzPSJtb2JpbGUtbWVudSIgb25jbGljaz0idG9nZ2xlTWVudSgpIj7imLA8L2J1dHRvbj4KICAgICAgPHVsIGNsYXNzPSJuYXYtbGlua3MiIGlkPSJuYXZMaW5rcyI+CiAgICAgICAgPGxpPjxhIGhyZWY9Ii9nYWxsZXJ5Ij5HYWxsZXJ5PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9Ii9wcmljaW5nIiBjbGFzcz0iYWN0aXZlIj5QcmljaW5nPC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9Ii9hYm91dCI+QWJvdXQ8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iL2NvbnRhY3QiPkNvbnRhY3Q8L2E+PC9saT4KICAgICAgPC91bD4KICAgIDwvZGl2PgogIDwvbmF2PgoKICA8IS0tIEhFUk8gLS0+CiAgPHNlY3Rpb24gY2xhc3M9Imhlcm8iPgogICAgPGRpdiBjbGFzcz0iaGVyby1jb250YWluZXIiPgogICAgICA8aDE+Q2hvb3NlIFlvdXIgUGVyZmVjdCBDYXJkPC9oMT4KICAgICAgPHAgY2xhc3M9Imhlcm8tc3VidGl0bGUiPgogICAgICAgIEZyb20gZXNzZW50aWFsIHByZXNlbmNlIHRvIHByZW1pdW0gYXV0aG9yaXR5LiBBZmZvcmRhYmxlIGV4Y2VsbGVuY2UgYnVpbHQgZm9yIEFmcmljYW4gZW50cmVwcmVuZXVycy4KICAgICAgPC9wPgogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8IS0tIFBBR0UgTkFWSUdBVElPTiAtLT4KICA8ZGl2IGNsYXNzPSJwYWdlLW5hdiI+CiAgICA8YSBocmVmPSIvZ2FsbGVyeSIgY2xhc3M9Im5hdi1hcnJvdyI+4oaQIFNlZSBFeGFtcGxlczwvYT4KICAgIDxhIGhyZWY9Ii9jb250YWN0IiBjbGFzcz0ibmF2LWFycm93Ij5RdWVzdGlvbnM/IENvbnRhY3QgVXMg4oaSPC9hPgogIDwvZGl2PgoKICA8IS0tIFBSSUNJTkcgU0VDVElPTiAtLT4KICA8c2VjdGlvbiBjbGFzcz0icHJpY2luZy1zZWN0aW9uIj4KICAgIDxkaXYgY2xhc3M9InByaWNpbmctY29udGFpbmVyIj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICA8aDI+VGhyZWUgVGllcnMuIE9uZSBHb2FsOiBNYWtlIFlvdSBVbmZvcmdldHRhYmxlLjwvaDI+CiAgICAgICAgPHAgY2xhc3M9InNlY3Rpb24tc3VidGl0bGUiPgogICAgICAgICAgQWxsIGNhcmRzIGFyZSBtb2JpbGUtb3B0aW1pemVkLCB0cmFja2FibGUsIGFuZCB1cGRhdGFibGUuIFRoZSBkaWZmZXJlbmNlPyBIb3cgbXVjaCBZT1UgeW91IHdhbnQgdG8gc2hvdy4KICAgICAgICA8L3A+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPCEtLSBVUkwgRVhQTEFJTkVSIC0tPgogICAgICA8ZGl2IGNsYXNzPSJ1cmwtZXhwbGFpbmVyIGZhZGUtaW4iPgogICAgICAgIDxoMz7wn5ONIFVuZGVyc3RhbmRpbmcgWW91ciBDYXJkIFVSTDwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idXJsLWV4YW1wbGVzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InVybC1leGFtcGxlIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVybC1sYWJlbCI+RXNzZW50aWFsOjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVybC12YWx1ZSI+bXkuaGFuZHNoYWtlLmFmcmljYS95b3VybmFtZTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idXJsLWV4YW1wbGUiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idXJsLWxhYmVsIj5Qcm9mZXNzaW9uYWw6PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idXJsLXZhbHVlIj5jb2FjaC5oYW5kc2hha2UuYWZyaWNhL3lvdXJuYW1lPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cmwtZXhhbXBsZSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ1cmwtbGFiZWwiPlByZW1pdW06PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idXJsLXZhbHVlIj55b3VybmFtZS5oYW5kc2hha2UuYWZyaWNhPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBQUklDSU5HIENBUkRTIC0tPgogICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nLWdyaWQiPgogICAgICAgIAogICAgICAgIDwhLS0gRVNTRU5USUFMIFRJRVIgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1jYXJkIGVzc2VudGlhbCBmYWRlLWluIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpZXItbmFtZSI+RXNzZW50aWFsPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWVyLXRhZ2xpbmUiPlBlcmZlY3QgZm9yIGdldHRpbmcgc3RhcnRlZDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljZS1kaXNwbGF5Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWFtb3VudCI+JDk3PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtcGVyaW9kIj4veWVhcjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cmwtZGlzcGxheSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVybC1sYWJlbC1zbWFsbCI+WW91ciBVUkw6PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVybC12YWx1ZS1kaXNwbGF5Ij5teS5oYW5kc2hha2UuYWZyaWNhL3lvdXJuYW1lPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPHVsIGNsYXNzPSJmZWF0dXJlcy1saXN0Ij4KICAgICAgICAgICAgPGxpPlByb2Zlc3Npb25hbCBkaWdpdGFsIGNhcmQ8L2xpPgogICAgICAgICAgICA8bGk+Q2hvb3NlIHlvdXIgYnJhbmQgY29sb3JzPC9saT4KICAgICAgICAgICAgPGxpPlBob3RvLCBuYW1lLCB0aXRsZSwgYmlvICgxNTAgd29yZHMpPC9saT4KICAgICAgICAgICAgPGxpPjUgc29jaWFsIG1lZGlhIGxpbmtzPC9saT4KICAgICAgICAgICAgPGxpPkNhbGwsIEVtYWlsLCBXaGF0c0FwcCBidXR0b25zPC9saT4KICAgICAgICAgICAgPGxpPlNoYXJlICYgZG93bmxvYWQgdkNhcmQ8L2xpPgogICAgICAgICAgICA8bGk+Q3VzdG9tIFFSIGNvZGUgKHN0YW5kYXJkIGRlc2lnbik8L2xpPgogICAgICAgICAgICA8bGk+QmFzaWMgdmlldyBhbmFseXRpY3M8L2xpPgogICAgICAgICAgICA8bGk+MSBtYWpvciB1cGRhdGUgcGVyIHllYXI8L2xpPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5vdC1pbmNsdWRlZCI+VmlkZW8gaW50cm9kdWN0aW9uPC9saT4KICAgICAgICAgICAgPGxpIGNsYXNzPSJub3QtaW5jbHVkZWQiPkFwcG9pbnRtZW50IGJvb2tpbmc8L2xpPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5vdC1pbmNsdWRlZCI+TGVhZCBjYXB0dXJlIGZvcm08L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICAgIAogICAgICAgICAgPGEgaHJlZj0iL29yZGVyLWVzc2VudGlhbCIgY2xhc3M9InByaWNpbmctY3RhIGN0YS1lc3NlbnRpYWwiPgogICAgICAgICAgICA8c3Bhbj5DaG9vc2UgRXNzZW50aWFsIOKGkjwvc3Bhbj4KICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIFBST0ZFU1NJT05BTCBUSUVSIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmctY2FyZCBwcm9mZXNzaW9uYWwgZmFkZS1pbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwb3B1bGFyLWJhZGdlIj7irZAgTW9zdCBQb3B1bGFyPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWVyLW5hbWUiPlByb2Zlc3Npb25hbDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idGllci10YWdsaW5lIj5Gb3Igc2VyaW91cyBuZXR3b3JrZXJzPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNlLWRpc3BsYXkiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtYW1vdW50Ij4kMjk3PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtcGVyaW9kIj4veWVhcjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cmwtZGlzcGxheSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVybC1sYWJlbC1zbWFsbCI+WW91ciBVUkw6PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVybC12YWx1ZS1kaXNwbGF5Ij5jb2FjaC5oYW5kc2hha2UuYWZyaWNhL3lvdXJuYW1lPC9kaXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMC44NXJlbTsgbWFyZ2luLXRvcDogMC41cmVtOyBjb2xvcjogdmFyKC0tZ3JheSk7Ij4KICAgICAgICAgICAgICBDaG9vc2U6IGNvYWNoIHwgZm91bmRlciB8IG1lbnRvciB8IGNlbyB8IGV4cGVydCB8IGNyZWF0b3IKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPHVsIGNsYXNzPSJmZWF0dXJlcy1saXN0Ij4KICAgICAgICAgICAgPGxpPjxzdHJvbmc+RXZlcnl0aGluZyBpbiBFc3NlbnRpYWwgUExVUzo8L3N0cm9uZz48L2xpPgogICAgICAgICAgICA8bGk+Q2F0ZWdvcnkgc3ViZG9tYWluIChhdXRob3JpdHkgcG9zaXRpb25pbmcpPC9saT4KICAgICAgICAgICAgPGxpPlZpZGVvIGludHJvZHVjdGlvbiAoMzAtNjAgc2Vjb25kcyk8L2xpPgogICAgICAgICAgICA8bGk+QXBwb2ludG1lbnQgYm9va2luZyBpbnRlZ3JhdGlvbjwvbGk+CiAgICAgICAgICAgIDxsaT44IHNvY2lhbCBtZWRpYSBsaW5rczwvbGk+CiAgICAgICAgICAgIDxsaT5DdXN0b20gUVIgY29kZSAoMyBwcmVtaXVtIGRlc2lnbnMpPC9saT4KICAgICAgICAgICAgPGxpPkVuaGFuY2VkIGFuYWx5dGljcyAodHJhZmZpYyBzb3VyY2VzKTwvbGk+CiAgICAgICAgICAgIDxsaT5Qcmlvcml0eSAyNC1ob3VyIGRlbGl2ZXJ5PC9saT4KICAgICAgICAgICAgPGxpPkVtYWlsIHN1cHBvcnQ8L2xpPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5vdC1pbmNsdWRlZCI+UGVyc29uYWwgc3ViZG9tYWluPC9saT4KICAgICAgICAgICAgPGxpIGNsYXNzPSJub3QtaW5jbHVkZWQiPkxlYWQgY2FwdHVyZSBmb3JtPC9saT4KICAgICAgICAgICAgPGxpIGNsYXNzPSJub3QtaW5jbHVkZWQiPkRpcmVjdG9yeSBmZWF0dXJlPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgICAKICAgICAgICAgIDxhIGhyZWY9Ii9vcmRlci1wcm9mZXNzaW9uYWwiIGNsYXNzPSJwcmljaW5nLWN0YSBjdGEtcHJvZmVzc2lvbmFsIj4KICAgICAgICAgICAgPHNwYW4+Q2hvb3NlIFByb2Zlc3Npb25hbCDihpI8L3NwYW4+CiAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPCEtLSBQUkVNSVVNIFRJRVIgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJpY2luZy1jYXJkIHByZW1pdW0gZmFkZS1pbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJiZXN0LXZhbHVlLWJhZGdlIj7wn5KOIEJlc3QgVmFsdWU8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRpZXItbmFtZSI+UHJlbWl1bTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idGllci10YWdsaW5lIj5Zb3VyIGNvbXBsZXRlIGRpZ2l0YWwgYnJhbmQ8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2UtZGlzcGxheSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1hbW91bnQiPiQ2OTc8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1wZXJpb2QiPi95ZWFyPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InVybC1kaXNwbGF5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXJsLWxhYmVsLXNtYWxsIj5Zb3VyIFVSTDo8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXJsLXZhbHVlLWRpc3BsYXkiPnlvdXJuYW1lLmhhbmRzaGFrZS5hZnJpY2E8L2Rpdj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAwLjg1cmVtOyBtYXJnaW4tdG9wOiAwLjVyZW07IGNvbG9yOiB2YXIoLS1ncmF5KTsiPgogICAgICAgICAgICAgIFlvdXIgb3duIHBlcnNvbmFsIHN1YmRvbWFpbiArIGN1c3RvbSBkb21haW4gb3B0aW9uCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZXMtbGlzdCI+CiAgICAgICAgICAgIDxsaT48c3Ryb25nPkV2ZXJ5dGhpbmcgaW4gUHJvZmVzc2lvbmFsIFBMVVM6PC9zdHJvbmc+PC9saT4KICAgICAgICAgICAgPGxpPlBlcnNvbmFsIHN1YmRvbWFpbiAobWF4aW11bSBhdXRob3JpdHkpPC9saT4KICAgICAgICAgICAgPGxpPkN1c3RvbSBicmFuZGVkIGRlc2lnbiAobGlrZSBvdXIgc2hvd2Nhc2VzKTwvbGk+CiAgICAgICAgICAgIDxsaT5NdWx0aXBsZSBzZWN0aW9ucyAoQWJvdXQsIFNlcnZpY2VzLCBQb3J0Zm9saW8pPC9saT4KICAgICAgICAgICAgPGxpPlZpZGVvICsgYWRkaXRpb25hbCBtZWRpYSBlbWJlZHM8L2xpPgogICAgICAgICAgICA8bGk+TGVhZCBjYXB0dXJlIGZvcm0gKGdyb3cgeW91ciBsaXN0KTwvbGk+CiAgICAgICAgICAgIDxsaT5VbmxpbWl0ZWQgc29jaWFsIGxpbmtzPC9saT4KICAgICAgICAgICAgPGxpPlByZW1pdW0gYnJhbmRlZCBRUiBjb2RlPC9saT4KICAgICAgICAgICAgPGxpPkZlYXR1cmVkIGluIGhhbmRzaGFrZS5hZnJpY2EgZGlyZWN0b3J5PC9saT4KICAgICAgICAgICAgPGxpPjIgbWFqb3IgdXBkYXRlcyBwZXIgeWVhcjwvbGk+CiAgICAgICAgICAgIDxsaT5Qcmlvcml0eSBzdXBwb3J0PC9saT4KICAgICAgICAgICAgPGxpPkN1c3RvbSBkb21haW4gY29ubmVjdGlvbiBhdmFpbGFibGU8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICAgIAogICAgICAgICAgPGEgaHJlZj0iL29yZGVyLXByZW1pdW0iIGNsYXNzPSJwcmljaW5nLWN0YSBjdGEtcHJlbWl1bSI+CiAgICAgICAgICAgIDxzcGFuPkNob29zZSBQcmVtaXVtIOKGkjwvc3Bhbj4KICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgPC9kaXY+CiAgICAgIAogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8IS0tIENPTVBBUklTT04gVEFCTEUgLS0+CiAgPHNlY3Rpb24gY2xhc3M9ImNvbXBhcmlzb24tc2VjdGlvbiI+CiAgICA8ZGl2IGNsYXNzPSJjb21wYXJpc29uLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24taGVhZGVyIj4KICAgICAgICA8aDI+Q29tcGFyZSBBbGwgRmVhdHVyZXM8L2gyPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDx0YWJsZSBjbGFzcz0iY29tcGFyaXNvbi10YWJsZSBmYWRlLWluIj4KICAgICAgICA8dGhlYWQ+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0aD5GZWF0dXJlPC90aD4KICAgICAgICAgICAgPHRoPkVzc2VudGlhbDxicj4kOTcveXI8L3RoPgogICAgICAgICAgICA8dGg+UHJvZmVzc2lvbmFsPGJyPiQyOTcveXI8L3RoPgogICAgICAgICAgICA8dGg+UHJlbWl1bTxicj4kNjk3L3lyPC90aD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90aGVhZD4KICAgICAgICA8dGJvZHk+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5Qcm9mZXNzaW9uYWwgZGlnaXRhbCBjYXJkPC90ZD4KICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyTPC9zcGFuPjwvdGQ+CiAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0iY2hlY2siPuKckzwvc3Bhbj48L3RkPgogICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJM8L3NwYW4+PC90ZD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5DdXN0b20gYnJhbmQgY29sb3JzPC90ZD4KICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyTPC9zcGFuPjwvdGQ+CiAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0iY2hlY2siPuKckzwvc3Bhbj48L3RkPgogICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJM8L3NwYW4+PC90ZD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5QaG90bywgYmlvLCBjb250YWN0IGluZm88L3RkPgogICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJM8L3NwYW4+PC90ZD4KICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyTPC9zcGFuPjwvdGQ+CiAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0iY2hlY2siPuKckzwvc3Bhbj48L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlNvY2lhbCBtZWRpYSBsaW5rczwvdGQ+CiAgICAgICAgICAgIDx0ZD41IGxpbmtzPC90ZD4KICAgICAgICAgICAgPHRkPjggbGlua3M8L3RkPgogICAgICAgICAgICA8dGQ+VW5saW1pdGVkPC90ZD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5DdXN0b20gUVIgY29kZTwvdGQ+CiAgICAgICAgICAgIDx0ZD5TdGFuZGFyZDwvdGQ+CiAgICAgICAgICAgIDx0ZD5QcmVtaXVtICgzKTwvdGQ+CiAgICAgICAgICAgIDx0ZD5GdWxseSBjdXN0b208L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlZpZGVvIGludHJvZHVjdGlvbjwvdGQ+CiAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0iY3Jvc3MiPsOXPC9zcGFuPjwvdGQ+CiAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0iY2hlY2siPuKckzwvc3Bhbj48L3RkPgogICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJPinJM8L3NwYW4+PC90ZD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5BcHBvaW50bWVudCBib29raW5nPC90ZD4KICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJjcm9zcyI+w5c8L3NwYW4+PC90ZD4KICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyTPC9zcGFuPjwvdGQ+CiAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0iY2hlY2siPuKckzwvc3Bhbj48L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkxlYWQgY2FwdHVyZSBmb3JtPC90ZD4KICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJjcm9zcyI+w5c8L3NwYW4+PC90ZD4KICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJjcm9zcyI+w5c8L3NwYW4+PC90ZD4KICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJjaGVjayI+4pyTPC9zcGFuPjwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+Q3VzdG9tIHN1YmRvbWFpbjwvdGQ+CiAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0iY3Jvc3MiPsOXPC9zcGFuPjwvdGQ+CiAgICAgICAgICAgIDx0ZD5DYXRlZ29yeTwvdGQ+CiAgICAgICAgICAgIDx0ZD5QZXJzb25hbDwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+Q3VzdG9tIGRvbWFpbiBvcHRpb248L3RkPgogICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9ImNyb3NzIj7Dlzwvc3Bhbj48L3RkPgogICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9ImNyb3NzIj7Dlzwvc3Bhbj48L3RkPgogICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9ImNoZWNrIj7inJM8L3NwYW4+PC90ZD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5BbmFseXRpY3M8L3RkPgogICAgICAgICAgICA8dGQ+QmFzaWM8L3RkPgogICAgICAgICAgICA8dGQ+RW5oYW5jZWQ8L3RkPgogICAgICAgICAgICA8dGQ+QWR2YW5jZWQ8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPlVwZGF0ZXMgaW5jbHVkZWQveWVhcjwvdGQ+CiAgICAgICAgICAgIDx0ZD4xPC90ZD4KICAgICAgICAgICAgPHRkPjE8L3RkPgogICAgICAgICAgICA8dGQ+MjwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+RGlyZWN0b3J5IGxpc3Rpbmc8L3RkPgogICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9ImNyb3NzIj7Dlzwvc3Bhbj48L3RkPgogICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9ImNyb3NzIj7Dlzwvc3Bhbj48L3RkPgogICAgICAgICAgICA8dGQ+RmVhdHVyZWQ8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPkRlbGl2ZXJ5IHRpbWU8L3RkPgogICAgICAgICAgICA8dGQ+NDggaG91cnM8L3RkPgogICAgICAgICAgICA8dGQ+MjQgaG91cnM8L3RkPgogICAgICAgICAgICA8dGQ+MjQgaG91cnM8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICA8L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgICAKICAgIDwvZGl2PgogIDwvc2VjdGlvbj4KCiAgPCEtLSBCVU5ETEVTIFNFQ1RJT04gLS0+CiAgPHNlY3Rpb24gY2xhc3M9ImJ1bmRsZXMtc2VjdGlvbiI+CiAgICA8ZGl2IGNsYXNzPSJidW5kbGVzLWNvbnRhaW5lciI+CiAgICAgIDxoMj5TYXZlIE1vcmUgd2l0aCBCdW5kbGVzPC9oMj4KICAgICAgPHAgY2xhc3M9ImJ1bmRsZXMtc3VidGl0bGUiPkNhcmQgKyBhdXRob3JpdHkgYnVpbGRpbmcgKyBtYXJrZXRpbmcgYXNzZXRzID0gY29tcGxldGUgcHJvZmVzc2lvbmFsIHByZXNlbmNlPC9wPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iYnVuZGxlcy1ncmlkIj4KICAgICAgICAKICAgICAgICA8IS0tIFNUQVJURVIgQlVORExFIC0tPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1bmRsZS1jYXJkIGZhZGUtaW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0iYnVuZGxlLW5hbWUiPlN0YXJ0ZXIgQnVuZGxlPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJidW5kbGUtcHJpY2UiPiQxOTc8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1bmRsZS1zYXZpbmdzIj5TYXZlICQzNyDigKIgRmlyc3QgWWVhcjwvZGl2PgogICAgICAgICAgPHVsIGNsYXNzPSJidW5kbGUtaW5jbHVkZXMiPgogICAgICAgICAgICA8bGk+UHJvZmVzc2lvbmFsIENhcmQgKCQ5Nyk8L2xpPgogICAgICAgICAgICA8bGk+RGlyZWN0b3J5IExpc3RpbmcgKCQ5Nyk8L2xpPgogICAgICAgICAgICA8bGk+Q3VzdG9tIFFSIHZhcmlhdGlvbjwvbGk+CiAgICAgICAgICAgIDxsaT5Tb2NpYWwgbWVkaWEgYmFubmVyIHNldDwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgICAgPGEgaHJlZj0iL29yZGVyLXN0YXJ0ZXItYnVuZGxlIiBjbGFzcz0iYnVuZGxlLWN0YSI+Q2hvb3NlIFN0YXJ0ZXIgQnVuZGxlPC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDwhLS0gQVVUSE9SSVRZIEJVTkRMRSAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJidW5kbGUtY2FyZCBmYWRlLWluIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1bmRsZS1uYW1lIj5BdXRob3JpdHkgQnVuZGxlPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJidW5kbGUtcHJpY2UiPiQ2OTc8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImJ1bmRsZS1zYXZpbmdzIj5TYXZlICQxOTcg4oCiIEZpcnN0IFllYXI8L2Rpdj4KICAgICAgICAgIDx1bCBjbGFzcz0iYnVuZGxlLWluY2x1ZGVzIj4KICAgICAgICAgICAgPGxpPlByZW1pdW0gQ2FyZCAoJDE5Nyk8L2xpPgogICAgICAgICAgICA8bGk+UGVybWFuZW50IERpcmVjdG9yeSAoJDE5Nyk8L2xpPgogICAgICAgICAgICA8bGk+MSBQdWJsaXNoZWQgQXJ0aWNsZSAoJDI5Nyk8L2xpPgogICAgICAgICAgICA8bGk+Q3VzdG9tIGRvbWFpbiBzZXR1cDwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgICAgPGEgaHJlZj0iL29yZGVyLWF1dGhvcml0eS1idW5kbGUiIGNsYXNzPSJidW5kbGUtY3RhIj5DaG9vc2UgQXV0aG9yaXR5IEJ1bmRsZTwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8IS0tIFBSRU1JVU0gQlVORExFIC0tPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1bmRsZS1jYXJkIGZhZGUtaW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0iYnVuZGxlLW5hbWUiPlByZW1pdW0gQXV0aG9yaXR5PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJidW5kbGUtcHJpY2UiPiQxLDQ5NzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYnVuZGxlLXNhdmluZ3MiPlNhdmUgJDM5NCDigKIgRmlyc3QgWWVhcjwvZGl2PgogICAgICAgICAgPHVsIGNsYXNzPSJidW5kbGUtaW5jbHVkZXMiPgogICAgICAgICAgICA8bGk+UHJlbWl1bSBDYXJkICgkMTk3KTwvbGk+CiAgICAgICAgICAgIDxsaT5QZXJtYW5lbnQgRGlyZWN0b3J5ICgkMTk3KTwvbGk+CiAgICAgICAgICAgIDxsaT5GZWF0dXJlZCBOZXdzIEFydGljbGUgKCQ5OTcpPC9saT4KICAgICAgICAgICAgPGxpPlByb2Zlc3Npb25hbCBsb2dvICgkMjk3KTwvbGk+CiAgICAgICAgICAgIDxsaT5RdWFydGVybHkgdXBkYXRlczwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgICAgPGEgaHJlZj0iL29yZGVyLXByZW1pdW0tYnVuZGxlIiBjbGFzcz0iYnVuZGxlLWN0YSI+Q2hvb3NlIFByZW1pdW0gQnVuZGxlPC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDogM3JlbTsiPgogICAgICAgIDxhIGhyZWY9Ii9idW5kbGVzIiBzdHlsZT0iY29sb3I6IHZhcigtLW5hdnkpOyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDEuMXJlbTsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij4KICAgICAgICAgIFNlZSBBbGwgQnVuZGxlIE9wdGlvbnMg4oaSCiAgICAgICAgPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvc2VjdGlvbj4KCiAgPCEtLSBGQVEgU0VDVElPTiAtLT4KICA8c2VjdGlvbiBjbGFzcz0iZmFxLXNlY3Rpb24iPgogICAgPGRpdiBjbGFzcz0iZmFxLWNvbnRhaW5lciI+CiAgICAgIDxoMj5GcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9uczwvaDI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJmYXEtaXRlbSBmYWRlLWluIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmYXEtcXVlc3Rpb24iPkhvdyBkbyBJIHNoYXJlIG15IGRpZ2l0YWwgY2FyZD88L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmYXEtYW5zd2VyIj4KICAgICAgICAgIE11bHRpcGxlIHdheXMhIFByaW50IHlvdXIgUVIgY29kZSBvbiBwaHlzaWNhbCBjYXJkcy9zdGlja2VycywgYWRkIGl0IHRvIHlvdXIgZW1haWwgc2lnbmF0dXJlLCBzaGFyZSB0aGUgbGluayBvbiBzb2NpYWwgbWVkaWEsIGluY2x1ZGUgaXQgaW4gV2hhdHNBcHAgbWVzc2FnZXMsIHBvc3QgaXQgb24gTGlua2VkSW4gLSBhbnl3aGVyZSB5b3Ugd2FudCBwZW9wbGUgdG8gY29ubmVjdCB3aXRoIHlvdS4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJmYXEtaXRlbSBmYWRlLWluIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmYXEtcXVlc3Rpb24iPkNhbiBJIHVzZSBteSBvd24gZG9tYWluIG5hbWU/PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmFxLWFuc3dlciI+CiAgICAgICAgICBZZXMhIFdpdGggUHJlbWl1bSB0aWVyIG9yIGFzIGFuIGFkZC1vbiwgeW91IGNhbiBwdXJjaGFzZSBhIGN1c3RvbSBkb21haW4gdGhyb3VnaCB1cyAoJDI1L3llYXIgKyAkNTAgc2V0dXApLiBZb3VyIGRvbWFpbiB3aWxsIHBvaW50IHRvIHlvdXIgaGFuZHNoYWtlIGNhcmQuIFRoaXMga2VlcHMgZXZlcnl0aGluZyB3b3JraW5nIHNtb290aGx5IHdpdGhvdXQgdGVjaG5pY2FsIGhlYWRhY2hlcy4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJmYXEtaXRlbSBmYWRlLWluIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmYXEtcXVlc3Rpb24iPldoYXQgaWYgSSBuZWVkIHRvIHVwZGF0ZSBteSBpbmZvcm1hdGlvbj88L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmYXEtYW5zd2VyIj4KICAgICAgICAgIE9uZSBtYWpvciB1cGRhdGUgcGVyIHllYXIgaXMgaW5jbHVkZWQgaW4gYWxsIHRpZXJzIChQcmVtaXVtIGluY2x1ZGVzIDIpLiBVcGRhdGVzIGdvIGxpdmUgaW1tZWRpYXRlbHkuIE5lZWQgbW9yZSB1cGRhdGVzPyBQdXJjaGFzZSBxdWFydGVybHkgdXBkYXRlIHBhY2thZ2VzICgkMTQ3L3llYXIgZm9yIDQgdXBkYXRlcykgb3IgdXBncmFkZSB0byBQcmVtaXVtLgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImZhcS1pdGVtIGZhZGUtaW4iPgogICAgICAgIDxkaXYgY2xhc3M9ImZhcS1xdWVzdGlvbiI+SG93IGxvbmcgZG9lcyBpdCB0YWtlIHRvIGdldCBteSBjYXJkPzwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZhcS1hbnN3ZXIiPgogICAgICAgICAgRXNzZW50aWFsIHRpZXI6IDQ4IGhvdXJzLiBQcm9mZXNzaW9uYWwgJiBQcmVtaXVtOiAyNCBob3Vycy4gUnVzaCBkZWxpdmVyeSBhdmFpbGFibGUgZm9yIHVyZ2VudCBuZWVkcy4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJmYXEtaXRlbSBmYWRlLWluIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmYXEtcXVlc3Rpb24iPkNhbiBJIGNhbmNlbCBhbnl0aW1lPzwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZhcS1hbnN3ZXIiPgogICAgICAgICAgWWVzLiBBbm51YWwgc3Vic2NyaXB0aW9ucy4gSWYgeW91IGRvbid0IHJlbmV3LCB5b3VyIGNhcmQgc3RheXMgbGl2ZSBmb3IgMzAgZGF5cyBhZnRlciBleHBpcmF0aW9uLCB0aGVuIGdvZXMgb2ZmbGluZS4gWW91IGNhbiByZWFjdGl2YXRlIGFueXRpbWUgYnkgcmVuZXdpbmcuCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZmFxLWl0ZW0gZmFkZS1pbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmFxLXF1ZXN0aW9uIj5Ib3cgZG8gSSBwYXk/IEkgZG9uJ3QgaGF2ZSBhIGNyZWRpdCBjYXJkLjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZhcS1hbnN3ZXIiPgogICAgICAgICAgV2UgYWNjZXB0IG11bHRpcGxlIHBheW1lbnQgbWV0aG9kcyBpbmNsdWRpbmcgbW9iaWxlIG1vbmV5IChNLVBlc2EsIEFpcnRlbCBNb25leSksIGJhbmsgdHJhbnNmZXIsIGFuZCBpbnRlcm5hdGlvbmFsIGNhcmRzLiBDb250YWN0IHVzIGZvciBsb2NhbCBwYXltZW50IG9wdGlvbnMuCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZmFxLWl0ZW0gZmFkZS1pbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmFxLXF1ZXN0aW9uIj5EbyB5b3Ugb2ZmZXIgcmVmdW5kcz88L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmYXEtYW5zd2VyIj4KICAgICAgICAgIDMwLWRheSBzYXRpc2ZhY3Rpb24gZ3VhcmFudGVlLiBJZiB5b3UncmUgbm90IGhhcHB5IHdpdGggeW91ciBjYXJkIHdpdGhpbiB0aGUgZmlyc3QgMzAgZGF5cywgd2UnbGwgcmVmdW5kIHlvdXIgbW9uZXkuIEFmdGVyIDMwIGRheXMsIG5vIHJlZnVuZHMgYnV0IHlvdSBjYW4gY2FuY2VsIHJlbmV3YWwuCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZmFxLWl0ZW0gZmFkZS1pbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmFxLXF1ZXN0aW9uIj5DYW4gSSB1cGdyYWRlIGxhdGVyPzwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZhcS1hbnN3ZXIiPgogICAgICAgICAgQWJzb2x1dGVseSEgVXBncmFkZSBhbnl0aW1lLiBXZSdsbCBwcm9yYXRlIHRoZSBkaWZmZXJlbmNlIGFuZCBhcHBseSBpdCB0byB5b3VyIG5ldyB0aWVyLgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICA8L2Rpdj4KICA8L3NlY3Rpb24+CgogIDwhLS0gRklOQUwgQ1RBIC0tPgogIDxzZWN0aW9uIGNsYXNzPSJmaW5hbC1jdGEiPgogICAgPGRpdiBjbGFzcz0iZmluYWwtY3RhLWNvbnRhaW5lciI+CiAgICAgIDxoMj5Zb3VyIFByb2Zlc3Npb25hbCBJZGVudGl0eSBEZXNlcnZlcyBUaGlzPC9oMj4KICAgICAgPHA+Sm9pbiBodW5kcmVkcyBvZiBBZnJpY2FuIGVudHJlcHJlbmV1cnMgd2hvJ3ZlIHN0b3BwZWQgaGFuZGluZyBvdXQgcGFwZXIgYW5kIHN0YXJ0ZWQgc3RhbmRpbmcgb3V0LjwvcD4KICAgICAgPGEgaHJlZj0iI3ByaWNpbmctc2VjdGlvbiIgY2xhc3M9ImZpbmFsLWN0YS1idXR0b24iIG9uY2xpY2s9ImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wcmljaW5nLXNlY3Rpb24nKS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6ICdzbW9vdGgnfSk7IHJldHVybiBmYWxzZTsiPgogICAgICAgIENob29zZSBZb3VyIENhcmQgTm93IOKGkgogICAgICA8L2E+CiAgICA8L2Rpdj4KICA8L3NlY3Rpb24+CgogIDwhLS0gRk9PVEVSIC0tPgogIDxmb290ZXIgY2xhc3M9ImZvb3RlciI+CiAgICA8ZGl2IGNsYXNzPSJmb290ZXItY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb2x1bW4iPgogICAgICAgICAgPGg0PkhhbmRzaGFrZS5hZnJpY2E8L2g0PgogICAgICAgICAgPHAgc3R5bGU9Im9wYWNpdHk6IDAuOTsiPlByb2Zlc3Npb25hbCBkaWdpdGFsIGNhcmRzIGZvciBBZnJpY2FuIGVudHJlcHJlbmV1cnMuPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb2x1bW4iPgogICAgICAgICAgPGg0PlF1aWNrIExpbmtzPC9oND4KICAgICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkhvbWU8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9kaXNjb3ZlciI+RGlzY292ZXI8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9nYWxsZXJ5Ij5HYWxsZXJ5PC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSIvcHJpY2luZyI+UHJpY2luZzwvYT48L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItY29sdW1uIj4KICAgICAgICAgIDxoND5SZXNvdXJjZXM8L2g0PgogICAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2J1bmRsZXMiPkJ1bmRsZXM8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9ncm91cC1wcmljaW5nIj5Hcm91cCBQcmljaW5nPC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSIvYWJvdXQiPkFib3V0PC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSIvY29udGFjdCI+Q29udGFjdDwvYT48L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItY29sdW1uIj4KICAgICAgICAgIDxoND5HZXQgSW4gVG91Y2g8L2g0PgogICAgICAgICAgPHAgc3R5bGU9Im9wYWNpdHk6IDAuOTsiPvCfk6cgaGVsbG9AaGFuZHNoYWtlLmFmcmljYTwvcD4KICAgICAgICAgIDxwIHN0eWxlPSJvcGFjaXR5OiAwLjk7Ij7wn5OxIFdoYXRzQXBwPC9wPgogICAgICAgICAgPHAgc3R5bGU9Im9wYWNpdHk6IDAuOTsiPvCflZIgTW9uLUZyaSwgOUFNLTVQTSBFQVQ8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmb290ZXItYm90dG9tIj4KICAgICAgICA8cD7CqSAyMDI1IEhhbmRzaGFrZS5hZnJpY2Eg4oCiIEFsbCBSaWdodHMgUmVzZXJ2ZWQ8L3A+CiAgICAgICAgPHA+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXMuaW8iPkR5bmFtaWMgUGFyYWRpZ21zPC9hPjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Zvb3Rlcj4KCiAgPCEtLSBTQ1JJUFRTIC0tPgogIDxzY3JpcHQ+CiAgICAvLyBTZWN1cml0eQogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBlID0+IGUucHJldmVudERlZmF1bHQoKSk7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICBpZiAoZS5rZXlDb2RlID09PSAxMjMgfHwgKGUuY3RybEtleSAmJiBlLnNoaWZ0S2V5ICYmIGUua2V5Q29kZSA9PT0gNzMpKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICB9CiAgICB9KTsKICAgIAogICAgLy8gTW9iaWxlIG1lbnUKICAgIGZ1bmN0aW9uIHRvZ2dsZU1lbnUoKSB7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZMaW5rcycpLmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScpOwogICAgfQogICAgCiAgICAvLyBTY3JvbGwgYW5pbWF0aW9ucwogICAgY29uc3Qgb2JzZXJ2ZXJPcHRpb25zID0gewogICAgICB0aHJlc2hvbGQ6IDAuMSwKICAgICAgcm9vdE1hcmdpbjogJzBweCAwcHggLTEwMHB4IDBweCcKICAgIH07CiAgICAKICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpIHsKICAgICAgZW50cmllcy5mb3JFYWNoKGVudHJ5ID0+IHsKICAgICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcpIHsKICAgICAgICAgIGVudHJ5LnRhcmdldC5jbGFzc0xpc3QuYWRkKCd2aXNpYmxlJyk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sIG9ic2VydmVyT3B0aW9ucyk7CiAgICAKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5mYWRlLWluJykuZm9yRWFjaChlbCA9PiBvYnNlcnZlci5vYnNlcnZlKGVsKSk7CiAgPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
Choose Your Perfect Card
From essential presence to premium authority. Affordable excellence built for African entrepreneurs.
Three Tiers. One Goal: Make You Unforgettable.
All cards are mobile-optimized, trackable, and updatable. The difference? How much YOU you want to show.
📍 Understanding Your Card URL
Essential:
my.handshake.africa/yourname
Professional:
coach.handshake.africa/yourname
Premium:
yourname.handshake.africa
Essential
Perfect for getting started
$97
/year
Your URL:
my.handshake.africa/yourname
- Professional digital card
- Choose your brand colors
- Photo, name, title, bio (150 words)
- 5 social media links
- Call, Email, WhatsApp buttons
- Share & download vCard
- Custom QR code (standard design)
- Basic view analytics
- 1 major update per year
- Video introduction
- Appointment booking
- Lead capture form
⭐ Most Popular
Professional
For serious networkers
$297
/year
Your URL:
coach.handshake.africa/yourname
Choose: coach | founder | mentor | ceo | expert | creator
- Everything in Essential PLUS:
- Category subdomain (authority positioning)
- Video introduction (30-60 seconds)
- Appointment booking integration
- 8 social media links
- Custom QR code (3 premium designs)
- Enhanced analytics (traffic sources)
- Priority 24-hour delivery
- Email support
- Personal subdomain
- Lead capture form
- Directory feature
💎 Best Value
Premium
Your complete digital brand
$697
/year
Your URL:
yourname.handshake.africa
Your own personal subdomain + custom domain option
- Everything in Professional PLUS:
- Personal subdomain (maximum authority)
- Custom branded design (like our showcases)
- Multiple sections (About, Services, Portfolio)
- Video + additional media embeds
- Lead capture form (grow your list)
- Unlimited social links
- Premium branded QR code
- Featured in handshake.africa directory
- 2 major updates per year
- Priority support
- Custom domain connection available
Compare All Features
| Feature | Essential $97/yr |
Professional $297/yr |
Premium $697/yr |
|---|---|---|---|
| Professional digital card | ✓ | ✓ | ✓ |
| Custom brand colors | ✓ | ✓ | ✓ |
| Photo, bio, contact info | ✓ | ✓ | ✓ |
| Social media links | 5 links | 8 links | Unlimited |
| Custom QR code | Standard | Premium (3) | Fully custom |
| Video introduction | × | ✓ | ✓✓ |
| Appointment booking | × | ✓ | ✓ |
| Lead capture form | × | × | ✓ |
| Custom subdomain | × | Category | Personal |
| Custom domain option | × | × | ✓ |
| Analytics | Basic | Enhanced | Advanced |
| Updates included/year | 1 | 1 | 2 |
| Directory listing | × | × | Featured |
| Delivery time | 48 hours | 24 hours | 24 hours |
Save More with Bundles
Card + authority building + marketing assets = complete professional presence
Starter Bundle
$197
Save $37 • First Year
- Professional Card ($97)
- Directory Listing ($97)
- Custom QR variation
- Social media banner set
Authority Bundle
$697
Save $197 • First Year
- Premium Card ($197)
- Permanent Directory ($197)
- 1 Published Article ($297)
- Custom domain setup
Premium Authority
$1,497
Save $394 • First Year
- Premium Card ($197)
- Permanent Directory ($197)
- Featured News Article ($997)
- Professional logo ($297)
- Quarterly updates
Frequently Asked Questions
How do I share my digital card?
Multiple ways! Print your QR code on physical cards/stickers, add it to your email signature, share the link on social media, include it in WhatsApp messages, post it on LinkedIn - anywhere you want people to connect with you.
Can I use my own domain name?
Yes! With Premium tier or as an add-on, you can purchase a custom domain through us ($25/year + $50 setup). Your domain will point to your handshake card. This keeps everything working smoothly without technical headaches.
What if I need to update my information?
One major update per year is included in all tiers (Premium includes 2). Updates go live immediately. Need more updates? Purchase quarterly update packages ($147/year for 4 updates) or upgrade to Premium.
How long does it take to get my card?
Essential tier: 48 hours. Professional & Premium: 24 hours. Rush delivery available for urgent needs.
Can I cancel anytime?
Yes. Annual subscriptions. If you don't renew, your card stays live for 30 days after expiration, then goes offline. You can reactivate anytime by renewing.
How do I pay? I don't have a credit card.
We accept multiple payment methods including mobile money (M-Pesa, Airtel Money), bank transfer, and international cards. Contact us for local payment options.
Do you offer refunds?
30-day satisfaction guarantee. If you're not happy with your card within the first 30 days, we'll refund your money. After 30 days, no refunds but you can cancel renewal.
Can I upgrade later?
Absolutely! Upgrade anytime. We'll prorate the difference and apply it to your new tier.
Your Professional Identity Deserves This
Join hundreds of African entrepreneurs who've stopped handing out paper and started standing out.
Choose Your Card Now →