LyogIENvcHlyaWdodCAxOTk2LDE5OTcsMTk5OSwyMDAxLDIwMDIsMjAwOCwyMDA5IEFsYWluIEtuYWZmLgogKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgbXRvb2xzLgogKgogKiAgTXRvb2xzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgogKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogIE10b29scyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogKiAgYWxvbmcgd2l0aCBNdG9vbHMuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAqCiAqLwojaW5jbHVkZSAiY29uZmlnLmgiCgojaWZuZGVmIEhBVkVfSUNPTlZfSAojaW5jbHVkZSAiY29kZXBhZ2UuaCIKCkNvZGVwYWdlX3QgY29kZXBhZ2VzW109IHsKCXsgNDM3LAoJICAix/zp4uTg5efq6+jv7uzExSIKCSAgIsnmxvT28vv5/9bcoqOlUGYiCgkgICLh7fP68dGqur9yrL28oau7IgoJICAiX19fX19fX19fX19fX19frCIKCSAgIl9fX19fX19fX19fX19fX18iCgkgICJfX19fX19fX19fX19fX19fIgoJICAiYWJncFNztXRmdG9k+NhfTiIKCSAgIj2xPD58fPd+sLe3Vm6yX18iCgl9LAoKCXsgODE5LAoJICAiX19fX19fX19fX19fX19fXyIKCSAgIl9fX19fX19fX19fX19fX18iCgkgICKgoaKjpKWmp6ipqqusra6vIgoJICAisLGys7S1tre4ubq7vL2+vyIKCSAgIsDBwsPExcbHyMnKy8zNzs8iCgkgICLQ0dLT1NXW19jZ2tvc3d7fIgoJICAi4OHi4+Tl5ufo6err7O3u7yIKCSAgIvDx8vP09fb3+Pn6+/z9/v8iCgl9LAoKCXsgODUwLAoJICAix/zp4uTg5efq6+jv7uzExSIKCSAgIsnmxvT28vv5/9bc+KPY118iCgkgICLh7fP68dGqur+urL28oau7IgoJICAiX19fX1/BwsCpX19fX6KlrCIKCSAgIl9fX19fX+PDX19fX19fX6QiCgkgICLw0MnLyGnNzs9fX19ffElfIgoJICAi09/U0vXVtf7e2tn93d6vtCIKCSAgIq2xX762p/e4sKi3ubOyX18iCgl9LAoKCXsgODUyLAoJICAix/zp4uR1Y+ds69X17lrEQyIKCSAgIslMbPT2TGxTc9bcVHRM12MiCgkgICLh7fP6QWFaekVlIHpDc6u7IgoJICAiX19fX1/BwkVTX19fX1p6rCIKCSAgIl9fX19fX0FhX19fX19fX6QiCgkgICLw0ETLZNHNzmVfcl9fVFVfIgoJICAi09/UTm7xU3NS2nJV/d10tCIKCSAgIq1+Ln5+p/e4sKi3uXVScl8iCgl9LAoKCXsgODYwLAoJICAix/zp4uPg5efq6+jN9ezDwiIKCSAgIsnAyPT18tr5zNXcoqPZUNMiCgkgICLh7fP68dGqur/SrL28oau7IgoJICAiX19fX19fX19fX19fX19frCIKCSAgIl9fX19fX19fX19fX19fX18iCgkgICJfX19fX19fX19fX19fX19fIgoJICAiYWJncFNztXRmdG9k+NhfTiIKCSAgIj2xPD58fPd+sLe3Vm6yX18iCgl9LAoKCXsgODYzLAoJICAix/zp4sLgtufq6+jv7l/ApyIKCSAgIsnIyvTLz/v5pNTcoqPZ22YiCgkgICJ8tPP6qCCzr85yrL28vqu7IgoJICAiX19fX19fX19fX19fX19frCIKCSAgIl9fX19fX19fX19fX19fX18iCgkgICJfX19fX19fX19fX19fX19fIgoJICAiYWJncFNztXRmdG9k+NhfTiIKCSAgIj2xPD58fPd+sLe3Vm6yX18iCgl9LAoKCXsgODY1LAoJICAix/zp4uTg5efq6+jv7uzExSIKCSAgIsnmxvT28vv5/9bc+KPYUGYiCgkgICLh7fP68dGqur9yrL28oaukIgoJICAiX19fX19fX19fX19fX19frCIKCSAgIl9fX19fX19fX19fX19fX18iCgkgICJfX19fX19fX19fX19fX19fIgoJICAiYWJncFNztXRmdG9k+NhfTiIKCSAgIj2xPD58fPd+sLe3Vm6yX18iLAoJfSwKCgkvKiBUYWl3YW5lc2UgKENoaW5lc2UgQ29tcGxleCBDaGFyYWN0ZXIpIHN1cHBvcnQgKi8KCXsgOTUwLAoJICKAgYKDhIWGh4iJiouMjY6PIgoJICKQkZKTlJWWl5iZmpucnZ6fIgoJICKgoaKjpKWmp6ipqqusra6vIgoJICKwsbKztLW2t7i5uru8vb6/IgoJICLAwcLDxMXGx8jJysvMzc7PIgoJICLQ0dLT1NXW19jZ2tvc3d7fIgoJICLg4eLj5OXm5+jp6uvs7e7vIgoJICLw8fLz9PX29/j5+vv8/f7/IiwKCX0sCgoKCXsgMCB9Cn07CiNlbHNlCi8qIFNob3VsZCBkb3duICBJU08gQyBmb3JiaWRzIGFuIGVtcHR5IHRyYW5zbGF0aW9uIHVuaXQgd2FybmluZyBbLVdwZWRhbnRpY106ICovCnR5cGVkZWYgaW50IG1ha2VfaXNvX2NvbXBpbGVyc19oYXBweTsKI2VuZGlmCg==