IyBUaGlzIHNldCBvZiB0ZXN0cyBjaGVja3MgbG9jYWwtc3BlY2lmaWMgZmVhdHVyZXMsIHVzaW5nIHRoZSAiZnJfRlIiIGxvY2FsZS4gCiMgSXQgaXMgbm90IFBlcmwtY29tcGF0aWJsZS4gV2hlbiBydW4gdmlhIFJ1blRlc3QsIHRoZSBsb2NhbGUgaXMgZWRpdGVkIHRvCiMgYmUgd2hpY2hldmVyIG9mICJmcl9GUiIsICJmcmVuY2giLCBvciAiZnIiIGlzIGZvdW5kIHRvIGV4aXN0LiBUaGVyZSBpcwojIGRpZmZlcmVudCB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBjYWxsZWQgd2ludGVzdGlucHV0MyBmb3IgdXNlIG9uIFdpbmRvd3MsCiMgd2hlcmUgdGhlIGxvY2FsZSBpcyBjYWxsZWQgImZyZW5jaCIgYW5kIHRoZSB0ZXN0cyBhcmUgcnVuIHVzaW5nCiMgUnVuVGVzdC5iYXQuIAoKI2ZvcmJpZF91dGYKCi9eW1x3XSsvCiAgICAqKiogRmFpbGVycwogICAgyWNvbGUKCi9eW1x3XSsvbG9jYWxlPWZyZW5jaAogICAgyWNvbGUKCi9eW1x3XSsvCiAgICAqKiogRmFpbGVycwogICAgyWNvbGUKCi9eW1xXXSsvCiAgICDJY29sZQoKL15bXFddKy9sb2NhbGU9ZnJlbmNoCiAgICAqKiogRmFpbGVycwogICAgyWNvbGUKCi9bXGJdLwogICAgXGIKICAgICoqKiBGYWlsZXJzCiAgICBhCgovW1xiXS9sb2NhbGU9ZnJlbmNoCiAgICBcYgogICAgKioqIEZhaWxlcnMKICAgIGEKCi9eXHcrLwogICAgKioqIEZhaWxlcnMKICAgIMljb2xlCgovXlx3Ky9sb2NhbGU9ZnJlbmNoCiAgICDJY29sZQoKLyguKylcYiguKykvCiAgICDJY29sZQoKLyguKylcYiguKykvbG9jYWxlPWZyZW5jaAogICAgKioqIEZhaWxlcnMKICAgIMljb2xlCgovyWNvbGUvaQogICAgyWNvbGUKICAgICoqKiBGYWlsZXJzCiAgICDpY29sZQoKL8ljb2xlL2ksbG9jYWxlPWZyZW5jaAogICAgyWNvbGUKICAgIOljb2xlCgovXHcvSQoKL1x3L0ksbG9jYWxlPWZyZW5jaAoKIyBBbGwgcmVtYWluaW5nIHRlc3RzIGFyZSBpbiB0aGUgZnJlbmNoIGxvY2FsZSwgc28gc2V0IHRoZSBkZWZhdWx0LgoKI3BhdHRlcm4gbG9jYWxlPWZyZW5jaAoKL15bXHhjOC1ceGM5XS9pCiAgICDJY29sZQogICAg6WNvbGUKCi9eW1x4YzgtXHhjOV0vCiAgICDJY29sZQogICAgKioqIEZhaWxlcnMgCiAgICDpY29sZQoKL1xXKy8KICAgID4+Plx4YWE8PDwKICAgID4+Plx4YmE8PDwgCgovW1xXXSsvCiAgICA+Pj5ceGFhPDw8CiAgICA+Pj5ceGJhPDw8IAoKL1teWzphbHBoYTpdXSsvCiAgICA+Pj5ceGFhPDw8CiAgICA+Pj5ceGJhPDw8IAoKL1x3Ky8KICAgID4+Plx4YWE8PDwKICAgID4+Plx4YmE8PDwgCgovW1x3XSsvCiAgICA+Pj5ceGFhPDw8CiAgICA+Pj5ceGJhPDw8IAoKL1tbOmFscGhhOl1dKy8KICAgID4+Plx4YWE8PDwKICAgID4+Plx4YmE8PDwgCiAgICAKL1tbOmFscGhhOl1dW1s6bG93ZXI6XV1bWzp1cHBlcjpdXS9JQgoKIyBFbmQgb2YgdGVzdGlucHV0MyAK