{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+WW91ciBTb3ZlcmVpZ24gUG9ydHJhaXQgfiBUaGUgU3VtbWl0IH4gU2hlIEV2b2x2ZXMgQWZyaWNhPC90aXRsZT4KPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IllvdXIgTUUgQk9TUyBTZWFzb24gYW5kIERpZ2l0YWwgQWx0aXR1ZGUgcmV2ZWFsZWQuIFlvdXIgY3VyYXRlZCBwYXRoIGZvcndhcmQgfiBieSBTaGUgRXZvbHZlcyBBZnJpY2EuIj4KPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJub2luZGV4LCBub2ZvbGxvdyI+CjxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjMEQyMjQ3Ij4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Db3Jtb3JhbnQrR2FyYW1vbmQ6aXRhbCx3Z2h0QDAsMzAwOzAsNDAwOzAsNjAwOzAsNzAwOzEsMzAwOzEsNDAwOzEsNjAwJmZhbWlseT1PdXRmaXQ6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KPHN0eWxlPgoqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgYm94LXNpemluZzpib3JkZXItYm94OyB9Cmh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6c21vb3RoOyB9Cjpyb290IHsKICAtLW5hdnk6IzFCM0E2QjsgLS1uYXZ5LWRlZXA6IzBEMjI0NzsgLS1uYXZ5LW1pZDojMkM1MjgyOwogIC0tZ29sZDojQzk5NTFBOyAtLWdvbGQyOiNFOEI0MzI7IC0tdGVhbDojMkM3QTdCOwogIC0td2hpdGU6I0ZGRkZGRjsgLS1ncmV5LW1pZDojNzE4MDk2OyAtLWRhcms6IzA3MEQxQTsKICAvKiBTZWFzb24gKi8KICAtLXNlZWQ6IzRBOEM2RjsgLS1yb290czojMkM3QTdCOyAtLXRydW5rOiMyQjZDQjA7IC0tYmxvb206IzZCNDZDMTsgLS1zb3ZlcmVpZ246I0M5OTUxQTsKICAvKiBBbHRpdHVkZSAqLwogIC0taW52aXNpYmxlOiM3MTgwOTY7IC0tZW1lcmdpbmc6IzJDN0E3QjsgLS12aXNpYmxlOiMyQjZDQjA7IC0taW5mbHVlbnRpYWw6IzZCNDZDMTsgLS1hbHQtc292ZXJlaWduOiNDOTk1MUE7Cn0KYm9keSB7IGZvbnQtZmFtaWx5OidPdXRmaXQnLHNhbnMtc2VyaWY7IGJhY2tncm91bmQ6dmFyKC0tZGFyayk7IGNvbG9yOnZhcigtLXdoaXRlKTsgb3ZlcmZsb3cteDpoaWRkZW47IG1pbi1oZWlnaHQ6MTAwdmg7IH0KLmJnIHsKICBwb3NpdGlvbjpmaXhlZDsgaW5zZXQ6MDsgei1pbmRleDowOyBwb2ludGVyLWV2ZW50czpub25lOwogIGJhY2tncm91bmQ6CiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCAxMiUgOCUsIHJnYmEoMjcsNTgsMTA3LC45KSAwJSwgdHJhbnNwYXJlbnQgNTIlKSwKICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDg4JSA5MiUsIHJnYmEoMjAxLDE0OSwyNiwuMTUpIDAlLCB0cmFuc3BhcmVudCA0OCUpLAogICAgIzA3MEQxQTsKfQouZmxvYXRpZXMgeyBwb3NpdGlvbjpmaXhlZDsgaW5zZXQ6MDsgcG9pbnRlci1ldmVudHM6bm9uZTsgei1pbmRleDoxOyBvdmVyZmxvdzpoaWRkZW47IH0KLmZsb2F0aWUgIHsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTotNDBweDsgYW5pbWF0aW9uOmZsb2F0VXAgbGluZWFyIGluZmluaXRlOyBvcGFjaXR5OjA7IH0KQGtleWZyYW1lcyBmbG9hdFVwIHsKICAwJSAgeyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSByb3RhdGUoLTNkZWcpOyBvcGFjaXR5OjA7IH0KICA4JSAgeyBvcGFjaXR5Oi4yOyB9IDkyJXsgb3BhY2l0eTouMDc7IH0KICAxMDAleyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTEwdmgpIHJvdGF0ZSg4ZGVnKTsgb3BhY2l0eTowOyB9Cn0KCi53cmFwIHsKICBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDoxMDsKICBtaW4taGVpZ2h0OjEwMHZoOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6Y2VudGVyOwogIHBhZGRpbmc6MCAxcmVtIDRyZW07Cn0KCi8qIFRPUCBCQVIgKi8KLnRvcC1iYXIgewogIHdpZHRoOjEwMCU7IG1heC13aWR0aDo3MDBweDsKICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47CiAgcGFkZGluZzoxLjJyZW0gMCAxcmVtOwp9Ci50Yi1icmFuZCB7IGZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlmOyBmb250LXNpemU6Ljk1cmVtOyBmb250LXdlaWdodDo3MDA7IGNvbG9yOnZhcigtLWdvbGQyKTsgbGV0dGVyLXNwYWNpbmc6LjA2ZW07IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6LjRyZW07IH0KLnRiLWV2ZW50IHsgZm9udC1zaXplOi42cmVtOyBmb250LXdlaWdodDo2MDA7IGxldHRlci1zcGFjaW5nOi4xNGVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGNvbG9yOnZhcigtLWdyZXktbWlkKTsgdGV4dC1hbGlnbjpyaWdodDsgfQoudGItZXZlbnQgc3BhbiB7IGRpc3BsYXk6YmxvY2s7IGNvbG9yOnZhcigtLXRlYWwpOyB9CgovKiBIRVJPICovCi5oZXJvIHsKICB3aWR0aDoxMDAlOyBtYXgtd2lkdGg6NzAwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEuNXJlbSAwIDJyZW07CiAgYW5pbWF0aW9uOmZhZGVVcCAuNnMgZWFzZSBmb3J3YXJkczsgb3BhY2l0eTowOwp9CkBrZXlmcmFtZXMgZmFkZVVwIHsgZnJvbXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTRweCl9IHRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0gfQouaGVyby1leWVicm93IHsKICBkaXNwbGF5OmlubGluZS1mbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDouNXJlbTsgcGFkZGluZzouM3JlbSAxcmVtOwogIGJvcmRlci1yYWRpdXM6MjBweDsgYmFja2dyb3VuZDpyZ2JhKDIwMSwxNDksMjYsLjEpOyBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjAxLDE0OSwyNiwuMjgpOwogIGZvbnQtc2l6ZTouNnJlbTsgZm9udC13ZWlnaHQ6NzAwOyBsZXR0ZXItc3BhY2luZzouMThlbTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogIGNvbG9yOnZhcigtLWdvbGQyKTsgbWFyZ2luLWJvdHRvbToxcmVtOwp9Ci5oZXJvIGgxIHsgZm9udC1mYW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2VyaWY7IGZvbnQtc2l6ZTpjbGFtcCgycmVtLDV2dywzcmVtKTsgZm9udC13ZWlnaHQ6NzAwOyBjb2xvcjp2YXIoLS13aGl0ZSk7IGxpbmUtaGVpZ2h0OjEuMTsgbWFyZ2luLWJvdHRvbTouNXJlbTsgfQouaGVybyBoMSBlbSB7IGNvbG9yOnZhcigtLWdvbGQyKTsgZm9udC1zdHlsZTppdGFsaWM7IH0KLmhlcm8gcCB7IGZvbnQtc2l6ZTouODVyZW07IGNvbG9yOnZhcigtLWdyZXktbWlkKTsgbGluZS1oZWlnaHQ6MS43NTsgbWF4LXdpZHRoOjUwMHB4OyBtYXJnaW46MCBhdXRvOyB9CgovKiBOTyBQQVJBTVMgU1RBVEUgKi8KLm5vLXBhcmFtcyB7CiAgd2lkdGg6MTAwJTsgbWF4LXdpZHRoOjYwMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsKICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcscmdiYSgyNyw1OCwxMDcsLjQpLHJnYmEoMTMsMzQsNzEsLjg1KSk7CiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDIwMSwxNDksMjYsLjI1KTsgYm9yZGVyLXJhZGl1czoxOHB4OwogIHBhZGRpbmc6Mi41cmVtIDJyZW07IG1hcmdpbjoxcmVtIDA7Cn0KLm5vLXBhcmFtcyBoMiB7IGZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlmOyBmb250LXNpemU6MS42cmVtOyBmb250LXdlaWdodDo3MDA7IGNvbG9yOnZhcigtLXdoaXRlKTsgbWFyZ2luLWJvdHRvbTouNnJlbTsgfQoubm8tcGFyYW1zIHAgIHsgZm9udC1zaXplOi44MnJlbTsgY29sb3I6dmFyKC0tZ3JleS1taWQpOyBsaW5lLWhlaWdodDoxLjc7IG1hcmdpbi1ib3R0b206MS40cmVtOyB9Ci5ucC1idG4gewogIGRpc3BsYXk6aW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgZ2FwOi41cmVtOwogIHBhZGRpbmc6Ljg1cmVtIDEuOHJlbTsgYm9yZGVyLXJhZGl1czoxMXB4OwogIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1nb2xkKSwjQTg3QTEyKTsgY29sb3I6dmFyKC0tZGFyayk7CiAgYm9yZGVyOm5vbmU7IGZvbnQtZmFtaWx5OidPdXRmaXQnLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTouODhyZW07CiAgZm9udC13ZWlnaHQ6NzAwOyBjdXJzb3I6cG9pbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7CiAgbGV0dGVyLXNwYWNpbmc6LjA0ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICBib3gtc2hhZG93OjAgNHB4IDIwcHggcmdiYSgyMDEsMTQ5LDI2LC4zNSk7IHRyYW5zaXRpb246YWxsIC4yczsKfQoubnAtYnRuOmhvdmVyIHsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7IH0KCi8qIERVQUwgUkVTVUxUUyAqLwouZHVhbC1yZXN1bHRzIHsKICB3aWR0aDoxMDAlOyBtYXgtd2lkdGg6NzAwcHg7IGRpc3BsYXk6bm9uZTsKICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGdhcDoxcmVtOyBtYXJnaW4tYm90dG9tOjEuNXJlbTsKfQoKLyogcmVzdWx0IGNhcmQgKi8KLnJlc3VsdC1jYXJkIHsKICBib3JkZXItcmFkaXVzOjE2cHg7IHBhZGRpbmc6MS42cmVtIDEuNXJlbTsKICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjEpOyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOwp9Ci5yZXN1bHQtY2FyZDo6YmVmb3JlIHsKICBjb250ZW50OicnOyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6MDsgcG9pbnRlci1ldmVudHM6bm9uZTsKICBiYWNrZ3JvdW5kLWltYWdlOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLHRyYW5zcGFyZW50LHRyYW5zcGFyZW50IDIwcHgscmdiYSgyNTUsMjU1LDI1NSwuMDE1KSAyMHB4LHJnYmEoMjU1LDI1NSwyNTUsLjAxNSkgMjFweCk7Cn0KLnJjLXRvcCB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MXJlbTsgbWFyZ2luLWJvdHRvbToxcmVtOyB9Ci5yYy1pY29uIHsgZm9udC1zaXplOjIuNHJlbTsgZmxleC1zaHJpbms6MDsgfQoucmMtbWV0YSB7IGZsZXg6MTsgfQoucmMtdHlwZSB7IGZvbnQtc2l6ZTouNThyZW07IGZvbnQtd2VpZ2h0OjcwMDsgbGV0dGVyLXNwYWNpbmc6LjE4ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZGlzcGxheTpibG9jazsgbWFyZ2luLWJvdHRvbTouMnJlbTsgb3BhY2l0eTouNzsgfQoucmMtbmFtZSB7IGZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlmOyBmb250LXNpemU6MS42cmVtOyBmb250LXdlaWdodDo3MDA7IGxpbmUtaGVpZ2h0OjEuMTsgfQoucmMtYmFkZ2UgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzouMjVyZW0gLjc1cmVtOyBib3JkZXItcmFkaXVzOjIwcHg7IGZvbnQtc2l6ZTouNThyZW07IGZvbnQtd2VpZ2h0OjcwMDsgbGV0dGVyLXNwYWNpbmc6LjE1ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgbWFyZ2luLXRvcDouM3JlbTsgfQoucmMtdGFnbGluZSB7IGZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlmOyBmb250LXNpemU6Ljk1cmVtOyBmb250LXN0eWxlOml0YWxpYzsgY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNik7IGxpbmUtaGVpZ2h0OjEuNjsgbWFyZ2luLWJvdHRvbTouOHJlbTsgfQoucmMtaW5zaWdodCAgeyBmb250LXNpemU6LjhyZW07IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjc1KTsgbGluZS1oZWlnaHQ6MS43OyB9CgovKiBjb25uZWN0aW9uIGJyaWRnZSAqLwouY29ubmVjdGlvbi1icmlkZ2UgewogIHdpZHRoOjEwMCU7IG1heC13aWR0aDo3MDBweDsKICBwYWRkaW5nOjEuMnJlbSAxLjVyZW07IHRleHQtYWxpZ246Y2VudGVyOwogIGJhY2tncm91bmQ6cmdiYSgyMDEsMTQ5LDI2LC4wNik7IGJvcmRlcjoxcHggc29saWQgcmdiYSgyMDEsMTQ5LDI2LC4xOCk7CiAgYm9yZGVyLXJhZGl1czoxNHB4OyBtYXJnaW4tYm90dG9tOjEuNXJlbTsgZGlzcGxheTpub25lOwp9Ci5jYi1jcm93biB7IGZvbnQtc2l6ZToxLjZyZW07IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1ib3R0b206LjVyZW07IGZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMTJweCByZ2JhKDIwMSwxNDksMjYsLjYpKTsgfQouY2ItdGl0bGUgeyBmb250LWZhbWlseTonQ29ybW9yYW50IEdhcmFtb25kJyxzZXJpZjsgZm9udC1zaXplOjEuM3JlbTsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjp2YXIoLS1nb2xkMik7IG1hcmdpbi1ib3R0b206LjRyZW07IH0KLmNiLXRleHQgIHsgZm9udC1zaXplOi44cmVtOyBjb2xvcjp2YXIoLS1ncmV5LW1pZCk7IGxpbmUtaGVpZ2h0OjEuNzU7IG1heC13aWR0aDo0ODBweDsgbWFyZ2luOjAgYXV0bzsgfQoKLyogQ1RBICovCi5jdGEtd3JhcCB7CiAgd2lkdGg6MTAwJTsgbWF4LXdpZHRoOjU2MHB4OyBkaXNwbGF5Om5vbmU7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgZ2FwOi43cmVtOyBtYXJnaW4tYm90dG9tOjJyZW07Cn0KLnByaW1hcnktY3RhIHsKICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgZ2FwOi42cmVtOwogIHBhZGRpbmc6MXJlbSAxLjVyZW07IGJvcmRlci1yYWRpdXM6MTJweDsKICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tZ29sZCksI0E4N0ExMik7IGNvbG9yOnZhcigtLWRhcmspOwogIGJvcmRlcjpub25lOyBmb250LWZhbWlseTonT3V0Zml0JyxzYW5zLXNlcmlmOyBmb250LXNpemU6LjkycmVtOyBmb250LXdlaWdodDo3MDA7CiAgY3Vyc29yOnBvaW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBsZXR0ZXItc3BhY2luZzouMDRlbTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogIGJveC1zaGFkb3c6MCA1cHggMjRweCByZ2JhKDIwMSwxNDksMjYsLjQpOyB0cmFuc2l0aW9uOmFsbCAuMjJzOwp9Ci5wcmltYXJ5LWN0YTpob3ZlciB7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpOyBib3gtc2hhZG93OjAgOXB4IDMycHggcmdiYSgyMDEsMTQ5LDI2LC41NSk7IH0KLnNlY29uZGFyeS1jdGEgewogIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBnYXA6LjVyZW07CiAgcGFkZGluZzouODVyZW0gMS41cmVtOyBib3JkZXItcmFkaXVzOjExcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOwogIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7IGJvcmRlcjoxcHggc29saWQgcmdiYSgyMDEsMTQ5LDI2LC4yOCk7IGNvbG9yOnZhcigtLWdvbGQyKTsKICBmb250LWZhbWlseTonT3V0Zml0JyxzYW5zLXNlcmlmOyBmb250LXNpemU6Ljg1cmVtOyBmb250LXdlaWdodDo2MDA7IHRyYW5zaXRpb246YWxsIC4yczsKfQouc2Vjb25kYXJ5LWN0YTpob3ZlciB7IGJhY2tncm91bmQ6cmdiYSgyMDEsMTQ5LDI2LC4wOCk7IGJvcmRlci1jb2xvcjp2YXIoLS1nb2xkKTsgfQouZ2hvc3QtY3RhIHsKICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgZ2FwOi41cmVtOwogIHBhZGRpbmc6LjhyZW0gMS41cmVtOyBib3JkZXItcmFkaXVzOjExcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOwogIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7IGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMSk7IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpOwogIGZvbnQtZmFtaWx5OidPdXRmaXQnLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTouODJyZW07IGZvbnQtd2VpZ2h0OjUwMDsgdHJhbnNpdGlvbjphbGwgLjJzOwp9Ci5naG9zdC1jdGE6aG92ZXIgeyBib3JkZXItY29sb3I6cmdiYSgyMDEsMTQ5LDI2LC4yNSk7IGNvbG9yOnZhcigtLWdvbGQyKTsgfQoKLyogc2hhcmUgKi8KLnNoYXJlLXN0cmlwIHsKICB3aWR0aDoxMDAlOyBtYXgtd2lkdGg6NzAwcHg7CiAgZGlzcGxheTpub25lOyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDouN3JlbTsKICBwYWRkaW5nOi44cmVtIDFyZW07IGJhY2tncm91bmQ6cmdiYSgyNyw1OCwxMDcsLjMpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyMDEsMTQ5LDI2LC4xNCk7IGJvcmRlci1yYWRpdXM6MTBweDsgbWFyZ2luLWJvdHRvbToxcmVtOwp9Ci5zcy10ZXh0IHsgZmxleDoxOyB9Ci5zcy10ZXh0IHN0cm9uZyB7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTouNzJyZW07IGNvbG9yOnZhcigtLWdvbGQyKTsgbWFyZ2luLWJvdHRvbTouMXJlbTsgfQouc3MtdGV4dCBwIHsgZm9udC1zaXplOi42N3JlbTsgY29sb3I6dmFyKC0tZ3JleS1taWQpOyBsaW5lLWhlaWdodDoxLjQ7IH0KLnNzLWJ0biB7CiAgcGFkZGluZzouNDJyZW0gLjg4cmVtOyBiYWNrZ3JvdW5kOnZhcigtLW5hdnkpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWdvbGQpOwogIGJvcmRlci1yYWRpdXM6N3B4OyBjb2xvcjp2YXIoLS1nb2xkKTsgZm9udC1zaXplOi42N3JlbTsgZm9udC13ZWlnaHQ6NjAwOwogIGN1cnNvcjpwb2ludGVyOyBsZXR0ZXItc3BhY2luZzouMDhlbTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB3aGl0ZS1zcGFjZTpub3dyYXA7IHRyYW5zaXRpb246YWxsIC4yczsKfQouc3MtYnRuOmhvdmVyIHsgYmFja2dyb3VuZDpyZ2JhKDIwMSwxNDksMjYsLjE0KTsgfQoKLyogcXVvdGUgKi8KLmJvdHRvbS1xdW90ZSB7CiAgd2lkdGg6MTAwJTsgbWF4LXdpZHRoOjcwMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsKICBwYWRkaW5nOjEuMnJlbSAxcmVtOyBib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDIwMSwxNDksMjYsLjEpOyBtYXJnaW4tdG9wOjFyZW07Cn0KLmJvdHRvbS1xdW90ZSBwIHsgZm9udC1mYW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2VyaWY7IGZvbnQtc2l6ZTouOTVyZW07IGZvbnQtc3R5bGU6aXRhbGljOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4yOCk7IGxpbmUtaGVpZ2h0OjEuNzsgfQouYm90dG9tLXF1b3RlIHNwYW4geyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6LjU4cmVtOyBmb250LXN0eWxlOm5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6LjEyZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgY29sb3I6cmdiYSgyMDEsMTQ5LDI2LC4zNSk7IG1hcmdpbi10b3A6LjNyZW07IH0KCi5wYWdlLWZvb3RlciB7IHdpZHRoOjEwMCU7IG1heC13aWR0aDo3MDBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MXJlbSAwIC41cmVtOyB9Ci5wYWdlLWZvb3RlciBwIHsgZm9udC1zaXplOi41OHJlbTsgY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSk7IGxldHRlci1zcGFjaW5nOi4xZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKPCEtLSBOQVYgQkFDSyAtLT4KPGRpdiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyMDt3aWR0aDoxMDAlO21heC13aWR0aDo3MDBweDttYXJnaW46MCBhdXRvO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzouOXJlbSAxLjJyZW0gLjRyZW07Ij4KICA8YSBocmVmPSJodHRwczovL3RoZXN1bW1pdC5zb3ZlcmVpZ25tb21lbnR1bS5jb20vdm9ydGV4IiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOi40cmVtO2ZvbnQtc2l6ZTouNjhyZW07Y29sb3I6IzcxODA5Njt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LWZhbWlseTpPdXRmaXQsc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzouMDhlbTsiPuKGkCBCYWNrIHRvIFZvcnRleDwvYT4KICA8c3BhbiBzdHlsZT0iZm9udC1zaXplOi42cmVtO2xldHRlci1zcGFjaW5nOi4xNmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjojMkM3QTdCO2ZvbnQtZmFtaWx5Ok91dGZpdCxzYW5zLXNlcmlmOyI+dGhlc3VtbWl0LnNvdmVyZWlnbm1vbWVudHVtLmNvbTwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9ImJnIj48L2Rpdj4KPGRpdiBjbGFzcz0iZmxvYXRpZXMiIGlkPSJmbG9hdGllcyI+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJ3cmFwIj4KCiAgPCEtLSBUT1AgQkFSIC0tPgogIDxkaXYgY2xhc3M9InRvcC1iYXIiPgogICAgPGRpdiBjbGFzcz0idGItYnJhbmQiPvCfkZEgU2hlIEV2b2x2ZXMgQWZyaWNhPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ0Yi1ldmVudCI+VGhlIFN1bW1pdCB+IFNoZSBFdm9sdmVzIEFmcmljYTxzcGFuPnRoZXN1bW1pdC5zb3ZlcmVpZ25tb21lbnR1bS5jb208L3NwYW4+PC9kaXY+CiAgPC9kaXY+CgogIDwhLS0gSEVSTyAtLT4KICA8ZGl2IGNsYXNzPSJoZXJvIj4KICAgIDxkaXYgY2xhc3M9Imhlcm8tZXllYnJvdyI+4pymIFlvdXIgU292ZXJlaWduIEpvdXJuZXkg4pymPC9kaXY+CiAgICA8aDE+WW91ciBTb3ZlcmVpZ248YnI+PGVtPlBvcnRyYWl0LjwvZW0+PC9oMT4KICAgIDxwPllvdXIgTUUgQk9TUyBTZWFzb24gYW5kIHlvdXIgRGlnaXRhbCBBbHRpdHVkZSB+IHRvZ2V0aGVyIGluIG9uZSBzb3ZlcmVpZ24gcG9ydHJhaXQuIFRoaXMgaXMgd2hvIHlvdSBhcmUgYW5kIHdoZXJlIHlvdSBzdGFuZC4gWW91ciBjdXJhdGVkIHBhdGggZm9yd2FyZCBzdGFydHMgaGVyZS48L3A+CiAgPC9kaXY+CgogIDwhLS0gTk8gUEFSQU1TIH4gc2hvd24gaWYgcGFnZSBsb2FkZWQgd2l0aG91dCBVUkwgcGFyYW1ldGVycyAtLT4KICA8ZGl2IGNsYXNzPSJuby1wYXJhbXMiIGlkPSJub1BhcmFtcyI+CiAgICA8aDI+WW91ciByZXN1bHRzIGFyZSB3YWl0aW5nIPCfkZE8L2gyPgogICAgPHA+VGhpcyBwYWdlIGRpc3BsYXlzIHlvdXIgTUUgQk9TUyBTZWFzb24gYW5kIFZvcnRleCBBbHRpdHVkZSB0b2dldGhlciB+IGFmdGVyIHlvdSBoYXZlIGNvbXBsZXRlZCBib3RoIGFzc2Vzc21lbnRzLiBTdGFydCB3aXRoIHRoZSBNRSBCT1NTIEFzc2Vzc21lbnQgYmVsb3cuPC9wPgogICAgPGEgaHJlZj0iaHR0cHM6Ly90aGVzdW1taXQuc292ZXJlaWdubW9tZW50dW0uY29tL21lLWJvc3MiIGNsYXNzPSJucC1idG4iPvCfkZEgQmVnaW4gdGhlIE1FIEJPU1MgQXNzZXNzbWVudDwvYT4KICA8L2Rpdj4KCiAgPCEtLSBEVUFMIFJFU1VMVFMgLS0+CiAgPGRpdiBjbGFzcz0iZHVhbC1yZXN1bHRzIiBpZD0iZHVhbFJlc3VsdHMiPgoKICAgIDwhLS0gTUUgQk9TUyBTRUFTT04gQ0FSRCAtLT4KICAgIDxkaXYgY2xhc3M9InJlc3VsdC1jYXJkIiBpZD0ic2Vhc29uQ2FyZCI+CiAgICAgIDxkaXYgY2xhc3M9InJjLXRvcCI+CiAgICAgICAgPHNwYW4gY2xhc3M9InJjLWljb24iIGlkPSJzZWFzb25JY29uIj7wn5GRPC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9InJjLW1ldGEiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InJjLXR5cGUiIGlkPSJzZWFzb25UeXBlIj5Zb3VyIE1FIEJPU1MgU2Vhc29uPC9zcGFuPgogICAgICAgICAgPGRpdiBjbGFzcz0icmMtbmFtZSIgaWQ9InNlYXNvbk5hbWUiPkxvYWRpbmcuLi48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InJjLWJhZGdlIiBpZD0ic2Vhc29uQmFkZ2UiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9InJjLXRhZ2xpbmUiIGlkPSJzZWFzb25UYWdsaW5lIj48L3A+CiAgICAgIDxwIGNsYXNzPSJyYy1pbnNpZ2h0IiBpZD0ic2Vhc29uSW5zaWdodCI+PC9wPgogICAgPC9kaXY+CgogICAgPCEtLSBWT1JURVggQUxUSVRVREUgQ0FSRCAtLT4KICAgIDxkaXYgY2xhc3M9InJlc3VsdC1jYXJkIiBpZD0iYWx0Q2FyZCI+CiAgICAgIDxkaXYgY2xhc3M9InJjLXRvcCI+CiAgICAgICAgPHNwYW4gY2xhc3M9InJjLWljb24iIGlkPSJhbHRJY29uIj7wn4yAPC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9InJjLW1ldGEiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InJjLXR5cGUiIGlkPSJhbHRUeXBlIj5Zb3VyIERpZ2l0YWwgQWx0aXR1ZGU8L3NwYW4+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJyYy1uYW1lIiBpZD0iYWx0TmFtZSI+TG9hZGluZy4uLjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icmMtYmFkZ2UiIGlkPSJhbHRCYWRnZSI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0icmMtdGFnbGluZSIgaWQ9ImFsdFRhZ2xpbmUiPjwvcD4KICAgICAgPHAgY2xhc3M9InJjLWluc2lnaHQiIGlkPSJhbHRJbnNpZ2h0Ij48L3A+CiAgICA8L2Rpdj4KCiAgPC9kaXY+CgogIDwhLS0gQ09OTkVDVElPTiBCUklER0UgLS0+CiAgPGRpdiBjbGFzcz0iY29ubmVjdGlvbi1icmlkZ2UiIGlkPSJjb25uZWN0aW9uQnJpZGdlIj4KICAgIDxzcGFuIGNsYXNzPSJjYi1jcm93biI+8J+RkTwvc3Bhbj4KICAgIDxkaXYgY2xhc3M9ImNiLXRpdGxlIiBpZD0iYnJpZGdlVGl0bGUiPllvdSBrbm93IHdobyB5b3UgYXJlLiBOb3cgbGV0IHVzIG1ha2Ugc3VyZSB0aGUgd29ybGQgY2FuIGZpbmQgaGVyLjwvZGl2PgogICAgPHAgY2xhc3M9ImNiLXRleHQiIGlkPSJicmlkZ2VUZXh0Ij48L3A+CiAgPC9kaXY+CgogIDwhLS0gQ1RBIC0tPgogIDxkaXYgY2xhc3M9ImN0YS13cmFwIiBpZD0iY3RhV3JhcCI+CiAgICA8YSBocmVmPSIjIiBjbGFzcz0icHJpbWFyeS1jdGEiIGlkPSJwcmltYXJ5Q3RhIj7wn5GRIFNlZSBZb3VyIEN1cmF0ZWQgUGF0aCBGb3J3YXJkPC9hPgogICAgPGEgaHJlZj0iaHR0cHM6Ly90aGVzdW1taXQuc292ZXJlaWdubW9tZW50dW0uY29tL2ludml0YXRpb24iIGNsYXNzPSJzZWNvbmRhcnktY3RhIj5Kb2luIHRoZSBTaGUgRXZvbHZlcyBBZnJpY2EgQ29tbXVuaXR5PC9hPgogICAgPGEgaHJlZj0iaHR0cHM6Ly90aGVzdW1taXQuc292ZXJlaWdubW9tZW50dW0uY29tL2ludml0YXRpb24iIGNsYXNzPSJnaG9zdC1jdGEiPkV4cGxvcmUgU2hlIEV2b2x2ZXMgQWZyaWNhIE5ld3Mg4oaXPC9hPgogIDwvZGl2PgoKICA8IS0tIFNIQVJFIC0tPgogIDxkaXYgY2xhc3M9InNoYXJlLXN0cmlwIiBpZD0ic2hhcmVTdHJpcCI+CiAgICA8ZGl2IGNsYXNzPSJzcy10ZXh0Ij4KICAgICAgPHN0cm9uZz5TaGFyZSB5b3VyIGpvdXJuZXkg8J+RkTwvc3Ryb25nPgogICAgICA8cD5JbnZpdGUgYW5vdGhlciB3b21hbiB0byBkaXNjb3ZlciBoZXIgU2Vhc29uIGFuZCBoZXIgQWx0aXR1ZGU8L3A+CiAgICA8L2Rpdj4KICAgIDxidXR0b24gY2xhc3M9InNzLWJ0biIgb25jbGljaz0iY29weVNoYXJlKCkiPkNvcHkgUmVzdWx0czwvYnV0dG9uPgogIDwvZGl2PgoKICA8IS0tIEJPVFRPTSBRVU9URSAtLT4KICA8ZGl2IGNsYXNzPSJib3R0b20tcXVvdGUiPgogICAgPHA+IllvdSBoYXZlIGNvbnF1ZXJlZCBzdW1taXRzIGJlZm9yZS4gWW91IGFyZSBjb25xdWVyaW5nIHRoaXMgb25lIHJpZ2h0IG5vdy4gV2VsY29tZSB0byBUaGUgU3VtbWl0LiI8L3A+CiAgICA8c3Bhbj5+IFRoZSBTSEUgRS1Cb3NzIFNvbHV0aW9uaXN0PC9zcGFuPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlLWZvb3RlciI+CiAgICA8cD7wn5GRIFNoZSBFdm9sdmVzIEFmcmljYSB+IFdoYXQgV29tZW4gV2FudCBTdW1taXQgNC4wIH4gdGhlc3VtbWl0LnNvdmVyZWlnbm1vbWVudHVtLmNvbTwvcD4KICA8L2Rpdj4KCjwvZGl2PgoKPHNjcmlwdD4KLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgIERBVEEgTUFQUwrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KY29uc3QgU0VBU09OUyA9IHsKICBzZWVkOiAgICAgICB7IGljb246J/CfjLEnLCBuYW1lOidUaGUgU2VlZCcsICAgICAgIGNvbG9yOicjNEE4QzZGJywgdGFnbGluZTonIkV2ZXJ5IHNvdmVyZWlnbiB0cmVlIHdhcyBvbmNlIGEgc2VlZCB0aGF0IGhhZCBub3QgeWV0IGRlY2lkZWQgdG8gZ3Jvdy4gWW91IGFyZSBkZWNpZGluZyByaWdodCBub3cuIicsIGluc2lnaHQ6J1lvdSBhcmUgYXQgdGhlIGJlZ2lubmluZyBvZiB5b3VyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdXJzZWxmIH4gYW5kIHRoYXQgaXMgdGhlIG1vc3Qgc2FjcmVkIHBsYWNlIHRvIGJlZ2luLiBFdmVyeXRoaW5nIHlvdSBuZWVkIGlzIGFscmVhZHkgaW5zaWRlIHlvdS4gVGhlIHdvcmsgaXMgZXhjYXZhdGlvbiwgbm90IGNvbnN0cnVjdGlvbi4nIH0sCiAgcm9vdHM6ICAgICAgeyBpY29uOifwn4y/JywgbmFtZTonVGhlIFJvb3RzJywgICAgICBjb2xvcjonIzJDN0E3QicsIHRhZ2xpbmU6JyJZb3Uga25vdyB3aG8geW91IGFyZS4gVGhlIHdvcmxkIGtlZXBzIGNhbGxpbmcgeW91IGF3YXkuIFRoZSB3b3JrIG5vdyBpcyB0byBidWlsZCB0aGUgd2FsbHMgdGhhdCBwcm90ZWN0IHdoYXQgeW91IGtub3cuIicsIGluc2lnaHQ6J1lvdSBoYXZlIGEgc3Ryb25nIHNlbnNlIG9mIHNlbGYgYnV0IGxpZmUga2VlcHMgcHVsbGluZyB5b3UgZnJvbSBpdC4gWW91IGhhdmUgdGhlIGF3YXJlbmVzcyB+IG5vdyB5b3UgbmVlZCB0aGUgc3lzdGVtcyB0byBwcm90ZWN0IGFuZCBzdXN0YWluIHRoZSByZXR1cm4uJyB9LAogIHRydW5rOiAgICAgIHsgaWNvbjon8J+MsycsIG5hbWU6J1RoZSBUcnVuaycsICAgICAgY29sb3I6JyMyQjZDQjAnLCB0YWdsaW5lOiciWW91IGJlbmQgaW4gdGhlIHN0b3JtIGJ1dCB5b3UgZG8gbm90IGJyZWFrLiBOb3cgbGV0IHVzIG1ha2UgdGhlIHJvb3Qgc3lzdGVtIGFzIHN0cm9uZyBhcyB0aGUgdHJlZS4iJywgaW5zaWdodDonWW91IGhhdmUgYSBzdHJvbmcgY2VudHJlLiBZb3Uga25vdyB3aG8geW91IGFyZSBhbmQgaG9ub3VyIHlvdXIgdmFsdWVzIG1vc3Qgb2YgdGhlIHRpbWUuIFRoZSBnYXBzIHRoYXQgcmVtYWluIGFyZSBzcGVjaWZpYyBhbmQgY2xvc2FibGUgd2l0aCB0aGUgcmlnaHQgdG9vbHMuJyB9LAogIGJsb29tOiAgICAgIHsgaWNvbjon8J+MuicsIG5hbWU6J1RoZSBCbG9vbScsICAgICAgY29sb3I6JyM2QjQ2QzEnLCB0YWdsaW5lOiciVGhlIE1FIEJPU1MgYW5kIHRoZSBTSEUgRS1Cb3NzIGNvZXhpc3QgaW4geW91IHdpdGggZ3JhY2UuIFlvdSBoYXZlIGRvbmUgd2hhdCBtb3N0IG5ldmVyIGRvLiInLCBpbnNpZ2h0OidZb3UgbGl2ZSB5b3VyIGR1YWxpdHkgd2l0aCBncmFjZS4gVGhlIGxpbmUgaXMgZHJhd24gYW5kIHlvdSBwcm90ZWN0IGl0LiBZb3UgZ28gaG9tZSB0byB5b3Vyc2VsZiB+IGFuZCByZXR1cm4gdG8geW91ciB3b3JrIHdpdGggYSBwbGFuLiBOb3cgbWFrZSBpdCBzdHJ1Y3R1cmFsIGFuZCBsZWdhY3ktcmVhZHkuJyB9LAogIHNvdmVyZWlnbjogIHsgaWNvbjon8J+RkScsIG5hbWU6J1RoZSBTb3ZlcmVpZ24nLCAgY29sb3I6JyNDOTk1MUEnLCB0YWdsaW5lOiciWW91IGJ1aWx0IHRoZSBlbXBpcmUgYW5kIGtlcHQgeW91ciBzb3VsLiBUaGF0IGlzIG5vdCBhIGNvbnRyYWRpY3Rpb24gfiB0aGF0IGlzIHRoZSB3aG9sZSBwb2ludC4iJywgaW5zaWdodDonWW91IGFyZSBob21lIGluIHlvdXJzZWxmLiBUaGUgbWlycm9yIGlzIGFsd2F5cyB0aGVyZS4gVGhlIHJldHVybiBpcyBub3Qgc29tZXRoaW5nIHlvdSByZW1lbWJlciB0byBkbyB+IGl0IGlzIHdobyB5b3UgYXJlLiBMZWdhY3kgaXMgeW91ciBwcmltYXJ5IHdvcmsgbm93LicgfSwKfTsKCmNvbnN0IEFMVElUVURFUyA9IHsKICBpbnZpc2libGU6ICAgeyBpY29uOifwn4yr77iPJywgbmFtZTonSW52aXNpYmxlJywgICAgY29sb3I6JyM3MTgwOTYnLCB0YWdsaW5lOiciRXZlcnkgc292ZXJlaWduIHByZXNlbmNlIHN0YXJ0ZWQgc29tZXdoZXJlLiBZb3VyIHN0b3J5IGlzIHJlYWwgfiB0aGUgZGlnaXRhbCB3b3JsZCBzaW1wbHkgZG9lcyBub3Qga25vdyBpdCB5ZXQuIicsIGluc2lnaHQ6J1lvdXIgZXhwZXJ0aXNlIGV4aXN0cyBhbmQgbWF0dGVycy4gVGhlIGZvdW5kYXRpb25hbCBkaWdpdGFsIGluZnJhc3RydWN0dXJlIHRoYXQgd291bGQgbWFrZSB5b3UgZmluZGFibGUgaGFzIG5vdCB5ZXQgYmVlbiBidWlsdCB+IGJ1dCB5b3Ugbm93IGtub3cgdGhhdC4gQW5kIGtub3dpbmcgaXMgd2hlcmUgc292ZXJlaWdudHkgYmVnaW5zLicgfSwKICBlbWVyZ2luZzogICAgeyBpY29uOifwn4yxJywgbmFtZTonRW1lcmdpbmcnLCAgICAgIGNvbG9yOicjMkM3QTdCJywgdGFnbGluZTonIllvdXIgZGlnaXRhbCByb290cyBhcmUgZ3Jvd2luZy4gV2hhdCB5b3UgbmVlZCBub3cgaXMgbm90IG1vcmUgY29udGVudCB+IGl0IGlzIHN0cnVjdHVyZSBhbmQgdGhlIHJpZ2h0IGZpcnN0IHN0ZXBzLiInLCBpbnNpZ2h0OidZb3UgaGF2ZSBzdGFydGVkIHRoZSBkaWdpdGFsIGpvdXJuZXkuIFNvbWUgcHJlc2VuY2UgZXhpc3RzLiBUaGUgZm91bmRhdGlvbnMgYXJlIGZyYWdpbGUgfiBidWlsdCBvbiBwbGF0Zm9ybXMgeW91IGRvIG5vdCBvd24uIFRoZSBuZXh0IHN0ZXBzIGFyZSBjbGVhciBhbmQgdGhlIG1vbWVudHVtIGlzIHlvdXJzIHRvIGJ1aWxkLicgfSwKICB2aXNpYmxlOiAgICAgeyBpY29uOifwn5KhJywgbmFtZTonVmlzaWJsZScsICAgICAgIGNvbG9yOicjMkI2Q0IwJywgdGFnbGluZTonIllvdSBoYXZlIHByZXNlbmNlLiBOb3cgaXQgaXMgdGltZSB0byBidWlsZCBhdXRob3JpdHkgfiB0aGUga2luZCB0aGF0IG1ha2VzIHlvdSBpbXBvc3NpYmxlIHRvIG92ZXJsb29rLiInLCBpbnNpZ2h0OidQZW9wbGUgY2FuIGZpbmQgeW91LiBCdXQgeW91ciBhdXRob3JpdHkgaXMgbm90IHlldCBmdWxseSBlc3RhYmxpc2hlZCBhbmQgeW91ciBjb250ZW50IGlzIG5vdCBjb25zaXN0ZW50bHkgZHJpdmluZyBpbmJvdW5kIG9wcG9ydHVuaXR5LiBPbmUgY2xlYXIgc3RyYXRlZ3kgYWNjZWxlcmF0ZXMgZXZlcnl0aGluZyBmcm9tIGhlcmUuJyB9LAogIGluZmx1ZW50aWFsOiB7IGljb246J+KaoScsIG5hbWU6J0luZmx1ZW50aWFsJywgICBjb2xvcjonIzZCNDZDMScsIHRhZ2xpbmU6JyJZb3UgaGF2ZSBidWlsdCBhdXRob3JpdHkuIFdoYXQgc2VwYXJhdGVzIEluZmx1ZW50aWFsIGZyb20gU292ZXJlaWduIGlzIGluZnJhc3RydWN0dXJlIH4gb3duaW5nIHRoZSBlY29zeXN0ZW0sIG5vdCBqdXN0IG9jY3VweWluZyBpdC4iJywgaW5zaWdodDonWW91ciBleHBlcnRpc2UgaXMgcmVjb2duaXNlZCBhbmQgcGVvcGxlIHNlZWsgeW91IG91dC4gVGhlIGdhcHMgYXJlIHNwZWNpZmljIH4gY29uc2lzdGVuY3ksIG93bmVkIHBsYXRmb3JtcywgZG9jdW1lbnRlZCBhdXRob3JpdHkuIFRoZSBNYXN0ZXJtaW5kIGlzIHlvdXIgbmV4dCBlbnZpcm9ubWVudC4nIH0sCiAgc292ZXJlaWduOiAgIHsgaWNvbjon8J+RkScsIG5hbWU6J1NvdmVyZWlnbicsICAgICBjb2xvcjonI0M5OTUxQScsIHRhZ2xpbmU6JyJZb3UgaGF2ZSBkb25lIHRoZSB3b3JrLiBZb3Ugb3duIHlvdXIgZGlnaXRhbCBlc3RhdGUuIFRoZSBxdWVzdGlvbiBub3cgaXMgaG93IHRvIG1ha2UgeW91ciBpbXBhY3QgcGVybWFuZW50LiInLCBpbnNpZ2h0OidZb3UgYXJlIGF0IHRoZSBkaWdpdGFsIHBpbm5hY2xlLiBQcmVzZW5jZSBlc3RhYmxpc2hlZC4gQXV0aG9yaXR5IHJlY29nbmlzZWQuIFN5c3RlbXMgd29ya2luZy4gWW91ciBwcmltYXJ5IHdvcmsgbm93IGlzIGxlZ2FjeSB+IG1ha2luZyB3aGF0IHlvdSBoYXZlIGJ1aWx0IHBlcm1hbmVudCBhbmQgZG9jdW1lbnRlZC4nIH0sCn07Cgpjb25zdCBIVUJfQU5DSE9SUyA9IHsKICBpbnZpc2libGU6JyNpbnZpc2libGUnLCBlbWVyZ2luZzonI2VtZXJnaW5nJywgdmlzaWJsZTonI3Zpc2libGUnLAogIGluZmx1ZW50aWFsOicjaW5mbHVlbnRpYWwnLCBzb3ZlcmVpZ246JyNzb3ZlcmVpZ24nCn07Cgpjb25zdCBCUklER0VfTUVTU0FHRVMgPSB7CiAgc2VlZF9pbnZpc2libGU6ICAgJ1lvdSBhcmUgYXQgdGhlIGJlZ2lubmluZyBvZiBib3RoIGpvdXJuZXlzIH4gc2VsZiBhbmQgZGlnaXRhbC4gVGhhdCBpcyBub3QgYSBkaXNhZHZhbnRhZ2UuIFRoYXQgaXMgYSBjb21wbGV0ZWx5IG9wZW4gY2FudmFzLiBUaGUgU2VlZCBzZWFzb24gYW5kIEludmlzaWJsZSBhbHRpdHVkZSB0b2dldGhlciBtZWFuIHlvdSBhcmUgZnJlZSB0byBidWlsZCBldmVyeXRoaW5nIGZyb20gdGhlIGZvdW5kYXRpb24gdXAgfiB3aXRoIGZ1bGwgc292ZXJlaWdudHkgZnJvbSB0aGUgdmVyeSBmaXJzdCBicmljay4nLAogIHNlZWRfZW1lcmdpbmc6ICAgICdZb3UgYXJlIGJlZ2lubmluZyB0byBrbm93IHlvdXJzZWxmIGRlZXBseSB3aGlsZSBidWlsZGluZyB5b3VyIGZpcnN0IGRpZ2l0YWwgZm91bmRhdGlvbnMuIFRoZSBNRSBCT1NTIHdvcmsgeW91IGFyZSBkb2luZyBub3cgd2lsbCBtYWtlIGV2ZXJ5IGRpZ2l0YWwgc3RlcCBtb3JlIGludGVudGlvbmFsIGFuZCBtb3JlIHN1c3RhaW5hYmxlLiBZb3UgYXJlIGJ1aWxkaW5nIGZyb20gdGhlIGluc2lkZSBvdXQgfiB0aGUgb25seSB3YXkgdGhhdCBsYXN0cy4nLAogIHJvb3RzX2ludmlzaWJsZTogICdZb3Uga25vdyB3aG8geW91IGFyZSBidXQgdGhlIHdvcmxkIGNhbm5vdCBmaW5kIHlvdSB5ZXQuIFRoYXQgZ2FwIGlzIG5vdCBwZXJtYW5lbnQgfiBpdCBpcyBzaW1wbHkgdGhlIG5leHQgZnJvbnRpZXIuIFlvdXIgc3Ryb25nIHNlbnNlIG9mIHNlbGYgaXMgYWN0dWFsbHkgeW91ciBncmVhdGVzdCBkaWdpdGFsIGFzc2V0LiBUaGUgd29tYW4gd2hvIGtub3dzIGhlcnNlbGYgYnVpbGRzIGEgZGlnaXRhbCBwcmVzZW5jZSB0aGF0IGlzIGNvaGVyZW50LCBjb25zaXN0ZW50IGFuZCBzb3ZlcmVpZ24uJywKICByb290c19lbWVyZ2luZzogICAnWW91IGhhdmUgcm9vdHMgaW4geW91ciBzZWxmLWtub3dsZWRnZSBhbmQgZWFybHkgcm9vdHMgaW4geW91ciBkaWdpdGFsIHdvcmxkLiBUaGUgd29yayBvZiBib3RoIHNlYXNvbnMgcnVucyBpbiBwYXJhbGxlbCB+IHByb3RlY3Rpbmcgd2hvIHlvdSBhcmUgd2hpbGUgYnVpbGRpbmcgd2hlcmUgeW91IGFyZSBmaW5kYWJsZS4gWW91IGFyZSBpbiBleGFjdGx5IHRoZSByaWdodCBwbGFjZSB0byBkbyBib3RoIHNpbXVsdGFuZW91c2x5LicsCiAgdHJ1bmtfdmlzaWJsZTogICAgJ1lvdSBhcmUgVGhlIFRydW5rIHNlYXNvbiBtZWV0aW5nIFZpc2libGUgYWx0aXR1ZGUgfiBhbmQgdGhhdCBjb21iaW5hdGlvbiBpcyBwb3dlcmZ1bC4gWW91ciBzdHJvbmcgY2VudHJlIGdpdmVzIHlvdSB0aGUgc3RhYmlsaXR5IHRvIGJ1aWxkIGF1dGhvcml0eSBjb25zaXN0ZW50bHkuIFlvdXIgZGlnaXRhbCB2aXNpYmlsaXR5IGlzIHJlYWwgfiBub3cgaXQgbmVlZHMgdG8gYmUgZGVlcGVuZWQsIHN5c3RlbWF0aXNlZCBhbmQgbWFkZSBwZXJtYW5lbnQuJywKICB0cnVua19pbmZsdWVudGlhbDonWW91IGhhdmUgYnVpbHQgcmVhbCBzZWxmLWtub3dsZWRnZSBhbmQgcmVhbCBkaWdpdGFsIGF1dGhvcml0eS4gVGhlIFRydW5rIHNlYXNvbiBnaXZlcyB5b3UgdGhlIHJlc2lsaWVuY2UgdGhlIEluZmx1ZW50aWFsIGFsdGl0dWRlIGRlbWFuZHMuIFlvdSBhcmUgcG9zaXRpb25lZCB0byBjbG9zZSB0aGUgZ2FwcyB0aGF0IHNlcGFyYXRlIEluZmx1ZW50aWFsIGZyb20gU292ZXJlaWduIHdpdGggZm9jdXNlZCwgaW50ZW50aW9uYWwgd29yay4nLAogIGJsb29tX2luZmx1ZW50aWFsOidZb3UgbGl2ZSB5b3VyIHBlcnNvbmFsIGR1YWxpdHkgd2l0aCBncmFjZSBhbmQgeW91ciBkaWdpdGFsIGF1dGhvcml0eSBpcyBlc3RhYmxpc2hlZC4gVGhlIEJsb29tIHNlYXNvbiBhbmQgSW5mbHVlbnRpYWwgYWx0aXR1ZGUgdG9nZXRoZXIgcmVwcmVzZW50IGEgd29tYW4gd2hvIGhhcyBkb25lIGV4dHJhb3JkaW5hcnkgd29yayBpbiBib3RoIGhlciBpbm5lciBhbmQgb3V0ZXIgd29ybGRzLiBUaGUgU292ZXJlaWduIGluIGJvdGggZGltZW5zaW9ucyBpcyB3aXRoaW4gY2xlYXIgcmVhY2guJywKICBibG9vbV9zb3ZlcmVpZ246ICAnWW91IGFyZSBCbG9vbSBtZWV0aW5nIFNvdmVyZWlnbiB+IHRoZSBjb21wbGV0ZSBkdWFsaXR5IGluIG1vdGlvbi4gWW91IHByb3RlY3QgeW91ciBwcml2YXRlIHNlbGYgd2hpbGUgYnVpbGRpbmcgYSBzb3ZlcmVpZ24gZGlnaXRhbCBlbXBpcmUuIFRoaXMgY29tYmluYXRpb24gaXMgZXhhY3RseSB3aGF0IFNoZSBFdm9sdmVzIEFmcmljYSBkb2N1bWVudHMgYW5kIGNlbGVicmF0ZXMuIFlvdXIgc3RvcnkgYmVsb25ncyBpbiB0aGUgYXJjaGl2ZS4nLAogIHNvdmVyZWlnbl9zb3ZlcmVpZ246J1lvdSBhcmUgU292ZXJlaWduIGluIGJvdGggZGltZW5zaW9ucyB+IHRoZSB3b21hbiB3aG8ga2VwdCBoZXIgc291bCB3aGlsZSBidWlsZGluZyB0aGUgZW1waXJlLiBUaGlzIGlzIHRoZSBNRSBCT1NTIHBoaWxvc29waHkgbGl2ZWQgY29tcGxldGVseS4gWW91ciBzdG9yeSBpcyB0aGUgcHJvb2YgdGhlIG5leHQgZ2VuZXJhdGlvbiBuZWVkcy4gSXQgYmVsb25ncyBpbiB0aGUgU2hlIEV2b2x2ZXMgQWZyaWNhIGFyY2hpdmUuIFBlcm1hbmVudGx5LicsCn07CgpmdW5jdGlvbiBnZXRCcmlkZ2VNZXNzYWdlKHNlYXNvbiwgYWx0aXR1ZGUpewogIGNvbnN0IGtleSA9IGAke3NlYXNvbn1fJHthbHRpdHVkZX1gOwogIGlmKEJSSURHRV9NRVNTQUdFU1trZXldKSByZXR1cm4gQlJJREdFX01FU1NBR0VTW2tleV07CiAgLy8gZmFsbGJhY2sgZ2VuZXJpYwogIHJldHVybiBgWW91IGFyZSAke1NFQVNPTlNbc2Vhc29uXT8ubmFtZSB8fCAnaW4geW91ciBzZWFzb24nfSBtZWV0aW5nICR7QUxUSVRVREVTW2FsdGl0dWRlXT8ubmFtZSB8fCAneW91ciBhbHRpdHVkZSd9LiBUd28gcG9ydHJhaXRzIH4gb25lIGNvbXBsZXRlIHBpY3R1cmUuIFlvdXIgc292ZXJlaWduIHBhdGggZm9yd2FyZCBpcyBjdXJhdGVkIGFuZCB3YWl0aW5nIGZvciB5b3UgaW4gdGhlIFNvdmVyZWlnbiBNb21lbnR1bSBIdWIuYDsKfQoKLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCiAgIElOSVQgfiBSZWFkIFVSTCBQYXJhbWV0ZXJzCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwovLyBVUkwgZm9ybWF0OiA/c2Vhc29uPXRydW5rJmFsdGl0dWRlPXZpc2libGUKLy8gUGFzcyB0aGVzZSBmcm9tIHRoZSBNRSBCT1NTIHJlc3VsdCBwYWdlIHJlZGlyZWN0Ci8vIGFuZCBmcm9tIHRoZSBWb3J0ZXggcmVzdWx0IHBhZ2UgcmVkaXJlY3QKCihmdW5jdGlvbiBpbml0KCl7CiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTsKICBjb25zdCBzZWFzb24gICA9IHBhcmFtcy5nZXQoJ3NlYXNvbicpICAgfHwgbnVsbDsKICBjb25zdCBhbHRpdHVkZSA9IHBhcmFtcy5nZXQoJ2FsdGl0dWRlJykgfHwgbnVsbDsKCiAgaWYoIXNlYXNvbiAmJiAhYWx0aXR1ZGUpewogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vUGFyYW1zJykuc3R5bGUuZGlzcGxheT0nYmxvY2snOwogICAgcmV0dXJuOwogIH0KCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vUGFyYW1zJykuc3R5bGUuZGlzcGxheT0nbm9uZSc7CgogIC8vIHBvcHVsYXRlIHNlYXNvbiBjYXJkCiAgaWYoc2Vhc29uICYmIFNFQVNPTlNbc2Vhc29uXSl7CiAgICBjb25zdCBzID0gU0VBU09OU1tzZWFzb25dOwogICAgY29uc3Qgc2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vhc29uQ2FyZCcpOwogICAgc2Muc3R5bGUuYmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCAke3MuY29sb3J9MjIgMCUsIHJnYmEoMTMsMzQsNzEsLjg4KSAxMDAlKWA7CiAgICBzYy5zdHlsZS5ib3JkZXJDb2xvciA9IGAke3MuY29sb3J9NDRgOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXNvbkljb24nKS50ZXh0Q29udGVudCAgICA9IHMuaWNvbjsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFzb25OYW1lJykudGV4dENvbnRlbnQgICAgPSBzLm5hbWU7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vhc29uTmFtZScpLnN0eWxlLmNvbG9yICAgID0gcy5jb2xvcjsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFzb25UeXBlJykuc3R5bGUuY29sb3IgICAgPSBzLmNvbG9yOwogICAgY29uc3QgYmFkZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vhc29uQmFkZ2UnKTsKICAgIGJhZGdlLnRleHRDb250ZW50ID0gJ01FIEJPU1MgU0VBU09OJzsKICAgIGJhZGdlLnN0eWxlLmJhY2tncm91bmQgPSBgJHtzLmNvbG9yfTIyYDsKICAgIGJhZGdlLnN0eWxlLmJvcmRlciA9IGAxcHggc29saWQgJHtzLmNvbG9yfTU1YDsKICAgIGJhZGdlLnN0eWxlLmNvbG9yICA9IHMuY29sb3I7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vhc29uVGFnbGluZScpLnRleHRDb250ZW50ID0gcy50YWdsaW5lOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXNvbkluc2lnaHQnKS50ZXh0Q29udGVudCA9IHMuaW5zaWdodDsKICB9CgogIC8vIHBvcHVsYXRlIGFsdGl0dWRlIGNhcmQKICBpZihhbHRpdHVkZSAmJiBBTFRJVFVERVNbYWx0aXR1ZGVdKXsKICAgIGNvbnN0IGEgPSBBTFRJVFVERVNbYWx0aXR1ZGVdOwogICAgY29uc3QgYWMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWx0Q2FyZCcpOwogICAgYWMuc3R5bGUuYmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCAke2EuY29sb3J9MjIgMCUsIHJnYmEoMTMsMzQsNzEsLjg4KSAxMDAlKWA7CiAgICBhYy5zdHlsZS5ib3JkZXJDb2xvciA9IGAke2EuY29sb3J9NDRgOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsdEljb24nKS50ZXh0Q29udGVudCAgID0gYS5pY29uOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsdE5hbWUnKS50ZXh0Q29udGVudCAgID0gYS5uYW1lOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsdE5hbWUnKS5zdHlsZS5jb2xvciAgID0gYS5jb2xvcjsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbHRUeXBlJykuc3R5bGUuY29sb3IgICA9IGEuY29sb3I7CiAgICBjb25zdCBhbHRCYWRnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbHRCYWRnZScpOwogICAgYWx0QmFkZ2UudGV4dENvbnRlbnQgPSAnRElHSVRBTCBBTFRJVFVERSc7CiAgICBhbHRCYWRnZS5zdHlsZS5iYWNrZ3JvdW5kID0gYCR7YS5jb2xvcn0yMmA7CiAgICBhbHRCYWRnZS5zdHlsZS5ib3JkZXIgPSBgMXB4IHNvbGlkICR7YS5jb2xvcn01NWA7CiAgICBhbHRCYWRnZS5zdHlsZS5jb2xvciAgPSBhLmNvbG9yOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsdFRhZ2xpbmUnKS50ZXh0Q29udGVudCA9IGEudGFnbGluZTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbHRJbnNpZ2h0JykudGV4dENvbnRlbnQgPSBhLmluc2lnaHQ7CiAgfQoKICAvLyBzaG93IGR1YWwgcmVzdWx0cwogIGNvbnN0IGRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1YWxSZXN1bHRzJyk7CiAgZHIuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsKCiAgLy8gYnJpZGdlIG1lc3NhZ2UKICBpZihzZWFzb24gJiYgYWx0aXR1ZGUpewogICAgY29uc3QgYnJpZGdlVGV4dCA9IGdldEJyaWRnZU1lc3NhZ2Uoc2Vhc29uLCBhbHRpdHVkZSk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnJpZGdlVGV4dCcpLnRleHRDb250ZW50ID0gYnJpZGdlVGV4dDsKICAgIGNvbnN0IGFsdERhdGEgPSBBTFRJVFVERVNbYWx0aXR1ZGVdOwogICAgaWYoYWx0RGF0YSl7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdicmlkZ2VUaXRsZScpLnN0eWxlLmNvbG9yID0gYWx0RGF0YS5jb2xvcjsKICAgIH0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25uZWN0aW9uQnJpZGdlJykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgfQoKICAvLyBwcmltYXJ5IENUQSB+IHJvdXRlIHRvIGh1YiBhbmNob3IKICBjb25zdCBodWJVcmwgPSBhbHRpdHVkZQogICAgPyBgaHR0cHM6Ly90aGVzdW1taXQuc292ZXJlaWdubW9tZW50dW0uY29tL2d1aWRlc2AKICAgIDogJ2h0dHBzOi8vdGhlc3VtbWl0LnNvdmVyZWlnbm1vbWVudHVtLmNvbS9ndWlkZXMnOwogIGNvbnN0IHByaW1hcnlCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpbWFyeUN0YScpOwogIHByaW1hcnlCdG4uaHJlZiA9ICdodHRwczovL3RoZXN1bW1pdC5zb3ZlcmVpZ25tb21lbnR1bS5jb20vZ3VpZGVzJzsKICBpZihhbHRpdHVkZSAmJiBBTFRJVFVERVNbYWx0aXR1ZGVdKXsKICAgIHByaW1hcnlCdG4uc3R5bGUuYmFja2dyb3VuZCA9IGBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAke0FMVElUVURFU1thbHRpdHVkZV0uY29sb3J9LCAke0FMVElUVURFU1thbHRpdHVkZV0uY29sb3J9OTkpYDsKICB9CgogIC8vIHNob3cgY3RhICsgc2hhcmUKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3RhV3JhcCcpLnN0eWxlLmRpc3BsYXkgICA9ICdmbGV4JzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hhcmVTdHJpcCcpLnN0eWxlLmRpc3BsYXk9ICdmbGV4JzsKfSkoKTsKCi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICBTSEFSRQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KZnVuY3Rpb24gY29weVNoYXJlKCl7CiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTsKICBjb25zdCBzZWFzb24gICA9IHBhcmFtcy5nZXQoJ3NlYXNvbicpICAgfHwgJ3NvdmVyZWlnbic7CiAgY29uc3QgYWx0aXR1ZGUgPSBwYXJhbXMuZ2V0KCdhbHRpdHVkZScpIHx8ICdzb3ZlcmVpZ24nOwogIGNvbnN0IHNOYW1lID0gU0VBU09OU1tzZWFzb25dPy5uYW1lICAgIHx8IHNlYXNvbjsKICBjb25zdCBhTmFtZSA9IEFMVElUVURFU1thbHRpdHVkZV0/Lm5hbWUgfHwgYWx0aXR1ZGU7CiAgY29uc3QgdGV4dCA9IGBJIGp1c3QgY29tcGxldGVkIHRoZSBTaGUgRXZvbHZlcyBBZnJpY2EgU292ZXJlaWduIEpvdXJuZXkgYXQgdGhlIFdoYXQgV29tZW4gV2FudCBTdW1taXQgNC4wLlxuXG5NeSBNRSBCT1NTIFNlYXNvbjogJHtTRUFTT05TW3NlYXNvbl0/Lmljb259ICR7c05hbWV9XG5NeSBEaWdpdGFsIEFsdGl0dWRlOiAke0FMVElUVURFU1thbHRpdHVkZV0/Lmljb259ICR7YU5hbWV9XG5cbkRpc2NvdmVyIHlvdXJzIH4gU2hlIEV2b2x2ZXMgQWZyaWNhOlxuc2hlZWJvc3Nzb2x1dGlvbmlzdC5jb20vbWUtYm9zc1xudGhlc3VtbWl0LnNvdmVyZWlnbm1vbWVudHVtLmNvbS92b3J0ZXhcblxu8J+RkSBBZnJpY2FuIHdvbWVuIHdlcmUgYWx3YXlzIHdvcnRoIGZpbmRpbmcuYDsKICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KS50aGVuKCgpPT57CiAgICBjb25zdCBidG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNzLWJ0bicpOwogICAgYnRuLnRleHRDb250ZW50PSdDb3BpZWQhIOKckyc7CiAgICBzZXRUaW1lb3V0KCgpPT5idG4udGV4dENvbnRlbnQ9J0NvcHkgUmVzdWx0cycsMjUwMCk7CiAgfSk7Cn0KCi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICBGTE9BVElFUwrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KKGZ1bmN0aW9uKCl7CiAgY29uc3Qgd3JhcD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmxvYXRpZXMnKTsKICBjb25zdCBzeW1zPVsn8J+RkScsJ+KcpicsJ+KXhicsJ+KZpiddOwogIGZvcihsZXQgaT0wO2k8MTY7aSsrKXsKICAgIGNvbnN0IGVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBlbC5jbGFzc05hbWU9J2Zsb2F0aWUnOwogICAgZWwudGV4dENvbnRlbnQ9c3ltc1tpJXN5bXMubGVuZ3RoXTsKICAgIGNvbnN0IHM9OCtNYXRoLnJhbmRvbSgpKjEzOwogICAgZWwuc3R5bGUuY3NzVGV4dD1gbGVmdDoke01hdGgucmFuZG9tKCkqMTAwfSU7Zm9udC1zaXplOiR7c31weDthbmltYXRpb24tZHVyYXRpb246JHsxOCtNYXRoLnJhbmRvbSgpKjI2fXM7YW5pbWF0aW9uLWRlbGF5OiR7TWF0aC5yYW5kb20oKSoyNX1zO2NvbG9yOnJnYmEoMjAxLDE0OSwyNiwkey4wNytNYXRoLnJhbmRvbSgpKjAuMTZ9KTtgOwogICAgd3JhcC5hcHBlbmRDaGlsZChlbCk7CiAgfQp9KSgpOwo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+","embed":""}
ā Back to Vortex
thesummit.sovereignmomentum.com
š She Evolves Africa
The Summit ~ She Evolves Africathesummit.sovereignmomentum.com
⦠Your Sovereign Journey ā¦
Your Sovereign
Portrait.
Your ME BOSS Season and your Digital Altitude ~ together in one sovereign portrait. This is who you are and where you stand. Your curated path forward starts here.
Your results are waiting š
This page displays your ME BOSS Season and Vortex Altitude together ~ after you have completed both assessments. Start with the ME BOSS Assessment below.
š Begin the ME BOSS Assessment
š
Your ME BOSS Season
Loading...
š
Your Digital Altitude
Loading...
š
You know who you are. Now let us make sure the world can find her.
š See Your Curated Path Forward
Join the She Evolves Africa Community
Explore She Evolves Africa News ā
Share your journey š
Invite another woman to discover her Season and her Altitude
"You have conquered summits before. You are conquering this one right now. Welcome to The Summit."
~ The SHE E-Boss Solutionistš She Evolves Africa ~ What Women Want Summit 4.0 ~ thesummit.sovereignmomentum.com