CkkgdHJ5IHRvIGNvbXBpbGUgdGhlIGFzc2VtYmxlciBleGFtcGxlIGZyb20gdGhlCgoiSEktVEVD SCBDwq4gZm9yIFBJQzEwLzEyLzE2IFVzZXLigJlzIEd1aWRlIiBwYWdlIDkxLgoKbXkgZmlsZSBt YWluLmMKCgoKLy8gZGVjbGFyZSB0aGUgYXNzZW1ibHkgcm91dGluZSBzbyBpdCBjYW4gYmUgY29y cmVjdGx5IGNhbGxlZApleHRlcm4gdW5zaWduZWQgaW50IGFkZCh1bnNpZ25lZCBhLCB1bnNpZ25l ZCBiKTsKCnZvaWQgbWFpbih2b2lkKSB7CglpbnQgYSwgcmVzdWx0OwoJYSA9IDg7CglyZXN1bHQg PSBhZGQoNSwgYSk7IC8vIGNhbGwgdGhlIGFzc2VtYmx5IHJvdXRpbmUKfQoKCmFzc2VtYmxlciBm aWxlIChBZGRWYWx1ZS5hcyk6CgojaW5jbHVkZSA8YXNwaWMuaD4KCglHTE9CQUwgX2FkZCw/X2Fk ZCA7IG1ha2UgX2FkZCBnbG9iYWxseSBhY2Nlc3NpYmxlCglTSUdOQVQgX2FkZCw4Mjk4IDsgdGVs bCB0aGUgbGlua2VyIGhvdyBpdCBzaG91bGQgYmUgY2FsbGVkCglGTlNJWkUgX2FkZCwwLDQgOyB0 aGlzIHJlcXVpcmVkIDQgYnl0ZXMgb2YgcGFyYW1zOyBubyBhdXRvcwoJCgk7IGV2ZXJ5dGhpbmcg Zm9sbG93aW5nIHdpbGwgYmUgcGxhY2VkIGludG8gdGhlIG15dGV4dCBwc2VjdAoJUFNFQ1QgbXl0 ZXh0LGxvY2FsLGNsYXNzPUNPREUsZGVsdGE9MgoJCgk7IG91ciByb3V0aW5lIHRvIGFkZCB0byBp bnRzIGFuZCByZXR1cm4gdGhlIHJlc3VsdApfYWRkOgoJOyBwYXJhbXMgYXJlIGxvYWRlZCBieSB0 aGUgY2FsbGluZyBmdW5jdGlvbjsKCTsgd2UgYWNjZXNzIHRoZW0gaGVyZSB1c2luZyB0aGUgc3Bl Y2lhbCBzeW1ib2wKCUJBTktTRUwgKD9fYWRkKSA7IHNlbGVjdCB0aGUgYmFuayBvZiB0aGlzIG9i amVjdAoJTU9WRiBCQU5LTUFTSyg/X2FkZCsyKSx3IDsgdGFrZSB0aGUgTFNCIG9mIHRoZSBzZWNv bmQgcGFyYW0KCUFERFdGIEJBTktNQVNLKD9fYWRkKSxmIDsgYWRkIHRvIHRoZSBMU0Igb2YgdGhl IGZpcnN0IHBhcmFtCglCVEZTQyBTVEFUVVMsMCA7IGNoZWNrIGZvciBjYXJyeQoJSU5DRiBCQU5L TUFTSyg/X2FkZCsxKSxmIDsgaGFuZGxlIGNhcnJ5CglNT1ZGIEJBTktNQVNLKD9fYWRkKzMpLHcg OyB0YWtlIHRoZSBNU0Igb2YgdGhlIHNlY29uZCBwYXJhbQoJQUREV0YgQkFOS01BU0soP19hZGQr MSksZiA7IGFkZCB0byB0aGUgTVNCIG9mIHRoZSBmaXJzdCBwYXJhbQoJOyB0aGUgcmVzdWx0IGlz IGFscmVhZHkgaW4gdGhlIHJlcXVpcmVkIGxvY2F0aW9uIHNvIHdlIGNhbgoJOyBqdXN0IHJldHVy bgoJUkVUVVJOCgoKSWYgSSBjb21waWxlIHRoaXMgd2l0aCB0aGUgTVBMQVAgSURFIFY4Ljg0IGZv ciB0aGUgUElDMTZGOTE2IEkgZ2V0IHRoZQplcnJvcjoKCkVycm9yICAgWzQ3NF0gOyAwLiBubyBw c2VjdCBzcGVjaWZpZWQgZm9yIGZ1bmN0aW9uIHZhcmlhYmxlL2FyZ3VtZW50CmFsbG9jYXRpb24K CklzIHNvbWV0aGluZyB3cm9uZyB3aXRoIHRoZSBkZWZpbml0aW9uIG9mIFBTRUNUIG9yIHdoYXQg ZWxzZSBkbyBJIGhhdmUgdG8KY2hhbmdlPwoKdGhhbmtzCgpBZHJpYW4KLS0gClZpZXcgdGhpcyBt ZXNzYWdlIGluIGNvbnRleHQ6IGh0dHA6Ly9vbGQubmFiYmxlLmNvbS9QSUMxNkY5MTYtLUVycm9y LS00NzQtLWNvbXBpbGluZy1hc3NlbWJsZXItZnVuY3Rpb24tdHAzMzU3OTUxMHAzMzU3OTUxMC5o dG1sClNlbnQgZnJvbSB0aGUgUElDIC0gW1BJQ10gbWFpbGluZyBsaXN0IGFyY2hpdmUgYXQgTmFi YmxlLmNvbS4KCgotLSAKaHR0cDovL3d3dy5waWNsaXN0LmNvbSBQSUMvU1ggRkFRICYgbGlzdCBh cmNoaXZlClZpZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cmh0dHA6Ly9tYWls bWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cg== .