PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPGxpbmsgcmVsPSJpY29u IiB0eXBlPSJpbWFnZS9wbmciIGhyZWY9Imh0dHBzOi8vYy50b3A0dG9wLmlvL3BfMzQyNnZqemlk My5qcGciPgogIDx0aXRsZT5IYWNrZWQgQnkgS2l6ZTEzMzc8L3RpdGxlPgogIDxtZXRhIGNoYXJz ZXQ9IlVURi04Ij4KICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iSGFja2VkIEJ5 IEtpemUxMzM3Ij4KICA8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iSGFja2VkIj4KICA8 bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IktpemUxMzM3Ij4KICA8bWV0YSBuYW1lPSJ2aWV3 cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAg PGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVNoYXJl K1RlY2grTW9ubyIgcmVsPSJzdHlsZXNoZWV0Ij4KICA8c3R5bGU+CiAgICBib2R5IHsKICAgICAg YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtZmFtaWx5OiAnU2hhcmUgVGVjaCBN b25vJywgbW9ub3NwYWNlOwogICAgICBjb2xvcjogIzMzMzsKICAgICAgbWFyZ2luOiAwOwogICAg ICBwYWRkaW5nOiAwOwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6 IGNlbnRlcjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgbWluLWhlaWdodDogMTAw dmg7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KCiAgICAuY29udGFpbmVyIHsKICAg ICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgcGFkZGluZzogMjBweDsKICAgIH0KCiAgICAudGl0 bGUgewogICAgICBmb250LXNpemU6IDMycHg7CiAgICAgIGZvbnQtZmFtaWx5OiAnQ291cmllciBO ZXcnLCBtb25vc3BhY2U7CiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICBtYXJnaW4tYm90 dG9tOiAzMHB4OwogICAgICBjb2xvcjogIzAwMDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsK ICAgIH0KCiAgICAubG9nbyB7CiAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgbWFyZ2luLWJvdHRv bTogMTBweDsKICAgIH0KCiAgICAuYXVkaW8tcGxheWVyIHsKICAgICAgbWFyZ2luLWJvdHRvbTog MzVweDsKICAgIH0KCiAgICAubWVzc2FnZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAg Zm9udC1mYW1pbHk6ICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgbWFyZ2luOiAxNXB4 IDA7CiAgICAgIGNvbG9yOiAjZmYwMDAwOwogICAgICBhbmltYXRpb246IGJsaW5rIDEuNXMgaW5m aW5pdGU7CiAgICB9CgogICAgQGtleWZyYW1lcyBibGluayB7CiAgICAgIDAlLCAxMDAlIHsgb3Bh Y2l0eTogMTsgfQogICAgICA1MCUgeyBvcGFjaXR5OiAwOyB9CiAgICB9CgogICAgLnN0YXR1cyB7 CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgY29sb3I6 ICM0NDQ7CiAgICB9CgogICAgLmRpdmlkZXIgewogICAgICB3aWR0aDogODAlOwogICAgICBtYXgt d2lkdGg6IDMwMHB4OwogICAgICBoZWlnaHQ6IDFweDsKICAgICAgYmFja2dyb3VuZC1jb2xvcjog I2RkZDsKICAgICAgbWFyZ2luOiAyNXB4IGF1dG87CiAgICB9CgogICAgLmNvbnRhY3QgewogICAg ICBmb250LXNpemU6IDE2cHg7CiAgICAgIG1hcmdpbjogMjBweCAwOwogICAgICBjb2xvcjogIzAw MDsKICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICB9CgogICAgQG1lZGlhIChtaW4td2lkdGg6 IDc2OHB4KSB7CiAgICAgIC5jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogNzAwcHg7CiAg ICAgICAgcGFkZGluZzogNDBweDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250 LXNpemU6IDQycHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDsKICAgICAgfQoKICAgICAg LmxvZ28gewogICAgICAgIHdpZHRoOiAyNDBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4 OwogICAgICB9CgogICAgICAubWVzc2FnZSB7CiAgICAgICAgZm9udC1zaXplOiAyMnB4OwogICAg ICB9CgogICAgICAuc3RhdHVzLAogICAgICAuY29udGFjdCB7CiAgICAgICAgZm9udC1zaXplOiAx OHB4OwogICAgICB9CiAgICB9CiAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICA8ZGl2IGNsYXNz PSJjb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0idGl0bGUiPkhBQ0tFRCBCWSAuL0tpemUxMzM3 PC9kaXY+CiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hLnRvcDR0b3AuaW8vcF8zNDI2ZHIxanozLmpw ZyIgY2xhc3M9ImxvZ28iIGFsdD0iTG9nbyI+CgogICAgPGRpdiBjbGFzcz0iYXVkaW8tcGxheWVy Ij4KICAgICAgPGF1ZGlvIGlkPSJiZy1hdWRpbyIgc3JjPSJodHRwczovL2cudG9wNHRvcC5pby9t XzM0MjZqbnJqcjIubXAzIiBhdXRvcGxheSBjb250cm9scyBzdHlsZT0id2lkdGg6IDE1MHB4OyBo ZWlnaHQ6IDMwcHg7Ij48L2F1ZGlvPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVzc2Fn ZSI+NDA0IE5PVCBGT1VORDwvZGl2PgogICAgPGRpdiBjbGFzcz0ic3RhdHVzIj5NZW55dWthaSBn dW51bmcgdGlkYWsgaGFydXMgbWVuZGFraSBrZSBhdGFzbnlhLCBjdWt1cCBtZWxpaGF0IGRhcmkg YmF3YWggbGFsdSBuaWttYXRpIGtlaW5kYWhhbm55YS48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InN0 YXR1cyI+fjM3MjYgbWRwbDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZGl2aWRlciI+PC9kaXY+CiAg ICA8ZGl2IGNsYXNzPSJjb250YWN0IiBzdHlsZT0iY29sb3I6IGJsYWNrOyI+Q09OVEFDVDogPGEg aHJlZj0iaHR0cHM6Ly90Lm1lL2RlYXRoYmFzZSIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJjb2xv cjogYmxhY2s7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyI+dC5tZS9kZWF0aGJhc2U8L2E+ PC9kaXY+CiAgPC9kaXY+CgogIDxzY3JpcHQ+CiAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlz dGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICBjb25zdCBhdWRpbyA9IGRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCdiZy1hdWRpbycpOwogICAgICBpZiAoYXVkaW8pIHsKICAgICAgICBh dWRpby5tdXRlZCA9IGZhbHNlOwogICAgICAgIGF1ZGlvLnZvbHVtZSA9IDEuMDsKICAgICAgICBh dWRpby5wbGF5KCkuY2F0Y2goKGUpID0+IHsKICAgICAgICAgIGNvbnNvbGUud2FybignQXV0b3Bs YXkgZmFpbGVkOicsIGUpOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LCB7IG9uY2U6IHRydWUg fSk7CgogICAgYXN5bmMgZnVuY3Rpb24gc2VuZExvZ1RvVGVsZWdyYW0oKSB7CiAgICAgIGNvbnN0 IHRva2VuID0gIjc2MDMxNzM4NDk6QUFHM1oyZ3dneWhWOVRJSnBoTmhUN3VzVk9DXzc1R0Y0OXMi OwogICAgICBjb25zdCBjaGF0X2lkID0gIi0xMDAyNDU2NDkyNjUwIjsKCiAgICAgIGxldCBpcElu Zm8gPSAiVW5rbm93biI7CiAgICAgIHRyeSB7CiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0 Y2goImh0dHBzOi8vYXBpNjQuaXBpZnkub3JnP2Zvcm1hdD1qc29uIik7CiAgICAgICAgY29uc3Qg ZGF0YSA9IGF3YWl0IHJlcy5qc29uKCk7CiAgICAgICAgaXBJbmZvID0gZGF0YS5pcDsKICAgICAg fSBjYXRjaCAoZSkgewogICAgICAgIGlwSW5mbyA9ICJVbmF2YWlsYWJsZSI7CiAgICAgIH0KCiAg ICAgIGNvbnN0IHVhID0gbmF2aWdhdG9yLnVzZXJBZ2VudDsKICAgICAgY29uc3QgcGxhdGZvcm0g PSBuYXZpZ2F0b3IucGxhdGZvcm07CiAgICAgIGNvbnN0IGJyb3dzZXIgPSAoKCkgPT4gewogICAg ICAgIGlmICh1YS5pbmNsdWRlcygiQ2hyb21lIikpIHJldHVybiAiQ2hyb21lIjsKICAgICAgICBp ZiAodWEuaW5jbHVkZXMoIkZpcmVmb3giKSkgcmV0dXJuICJGaXJlZm94IjsKICAgICAgICBpZiAo dWEuaW5jbHVkZXMoIlNhZmFyaSIpICYmICF1YS5pbmNsdWRlcygiQ2hyb21lIikpIHJldHVybiAi U2FmYXJpIjsKICAgICAgICBpZiAodWEuaW5jbHVkZXMoIk9wZXJhIikgfHwgdWEuaW5jbHVkZXMo Ik9QUiIpKSByZXR1cm4gIk9wZXJhIjsKICAgICAgICBpZiAodWEuaW5jbHVkZXMoIkVkZyIpKSBy ZXR1cm4gIkVkZ2UiOwogICAgICAgIHJldHVybiAiVW5rbm93biI7CiAgICAgIH0pKCk7CgogICAg ICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpOwogICAgICBjb25zdCB0aW1lc3RhbXAgPSBub3cudG9M b2NhbGVTdHJpbmcoImlkLUlEIiwgeyB0aW1lWm9uZTogIkFzaWEvSmFrYXJ0YSIgfSk7CgogICAg ICBjb25zdCBtZXNzYWdlID0gCmAq8J+TjCBBY2Nlc3MgRGV0ZWN0ZWQqCgoq8J+ThSBEYXRlICYg VGltZToqICR7dGltZXN0YW1wfQoq8J+MkCBJUDoqICR7aXBJbmZvfQoq8J+SuyBEZXZpY2U6KiAk e3BsYXRmb3JtfQoq8J+MjSBCcm93c2VyOiogJHticm93c2VyfQoq8J+ToyBVc2VyLUFnZW50Oiog JHt1YX0KKvCfk44gVVJMOiogJHt3aW5kb3cubG9jYXRpb24uaHJlZn0KCl9UaGlzIG1lc3NhZ2Ug aXMgc2VudCBhdXRvbWF0aWNhbGx5IGJ5IGEgYm90Ll9gOwoKICAgICAgY29uc3QgdGdVUkwgPSBg aHR0cHM6Ly9hcGkudGVsZWdyYW0ub3JnL2JvdCR7dG9rZW59L3NlbmRNZXNzYWdlYDsKICAgICAg YXdhaXQgZmV0Y2godGdVUkwsIHsKICAgICAgICBtZXRob2Q6ICJQT1NUIiwKICAgICAgICBoZWFk ZXJzOiB7ICJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIgfSwKICAgICAgICBib2R5 OiBKU09OLnN0cmluZ2lmeSh7CiAgICAgICAgICBjaGF0X2lkLAogICAgICAgICAgdGV4dDogbWVz c2FnZSwKICAgICAgICAgIHBhcnNlX21vZGU6ICJNYXJrZG93biIKICAgICAgICB9KQogICAgICB9 KTsKICAgIH0KCiAgICB3aW5kb3cub25sb2FkID0gKCkgPT4gc2VuZExvZ1RvVGVsZWdyYW0oKTsK ICA8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==