Li4gTWFjcm9zL0NvbmZpZ3VyYXRpb24vL0JPT1NUX01QTF9MSU1JVF9TVFJJTkdfU0laRSB8NjUKCkJPT1NUX01QTF9MSU1JVF9TVFJJTkdfU0laRQo9PT09PT09PT09PT09PT09PT09PT09PT09PT0KClN5bm9wc2lzCi0tLS0tLS0tCgouLiBwYXJzZWQtbGl0ZXJhbDo6CgogICAgI2lmICFkZWZpbmVkKEJPT1NUX01QTF9MSU1JVF9TVFJJTkdfU0laRSkKICAgICMgICBkZWZpbmUgQk9PU1RfTVBMX0xJTUlUX1NUUklOR19TSVpFIFxcCiAgICAgICAgICAgIHxpZGljfCBcXAogICAgL1wqXCovCiAgICAjZW5kaWYKCgpEZXNjcmlwdGlvbgotLS0tLS0tLS0tLQoKYGBCT09TVF9NUExfTElNSVRfU1RSSU5HX1NJWkVgYCBpcyBhbiBvdmVycmlkYWJsZSBjb25maWd1cmF0aW9uIG1hY3JvIHJlZ3VsYXRpbmcKdGhlIG1heGltdW0gYXJpdHkgb2YgdGhlIGBgc3RyaW5nYGBcICdzIHx2YXJpYWRpYyBmb3Jtc3wuIEluIHRoaXMgCmltcGxlbWVudGF0aW9uIG9mIHRoZSBsaWJyYXJ5LCBgYEJPT1NUX01QTF9MSU1JVF9TVFJJTkdfU0laRWBgIGhhcyBhIGRlZmF1bHQgdmFsdWUKb2YgMzIuIFRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGxpbWl0LCBkZWZpbmUgYGBCT09TVF9NUExfTElNSVRfU1RSSU5HX1NJWkVgYCB0bwp0aGUgZGVzaXJlZCBtYXhpbXVtIGFyaXR5IGJlZm9yZSBpbmNsdWRpbmcgYW55IGxpYnJhcnkgaGVhZGVyLgoKCkV4YW1wbGUKLS0tLS0tLQoKLi4gcGFyc2VkLWxpdGVyYWw6OgoKICAgICNkZWZpbmUgQk9PU1RfTVBMX0xJTUlUX1NUUklOR19TSVpFIDgKICAgIGBgI2BgXCBpbmNsdWRlIDxib29zdC9tcGwvc3RyaW5nLmhwcD4KICAgIAogICAgdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjptcGw7CgogICAgdHlwZWRlZiBzdHJpbmc8J2EnPiBzXzE7CiAgICB0eXBlZGVmIHN0cmluZzwnYWJjZCcsJ2VmZ2gnPiBzXzg7CiAgICAvLyB0eXBlZGVmIHN0cmluZzwnYWJjZCcsJ2VmZ2gnLCdpJz4gc185OyAvLyBlcnJvciEKCgpTZWUgYWxzbwotLS0tLS0tLQoKfENvbmZpZ3VyYXRpb258LCB8Qk9PU1RfTVBMX0xJTUlUX1ZFQ1RPUl9TSVpFfAoKCi4uIGNvcHlyaWdodDo6IENvcHlyaWdodCCpICAyMDA5IEVyaWMgTmllYmxlcgogICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCiAgIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQo=