IyBCcmF6aWxpYW4gUG9ydHVndWVzZSBUcmFuc2xhdGlvbiAocHRfQlIpLgojIENvcHlyaWdodCCpIDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIGJpc29uLXJ1bnRpbWUgcGFja2FnZS4KIyBMZXNsaWUgSGFybGxleSBXYXR0ZXIgPGxlc2xpZUB3YXR0ZXIub3JnPiwgMjAwNy4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogYmlzb24tcnVudGltZSAyLjNhXG4iCiJSZXBvcnQtTXNnaWQtQnVncy1UbzogYnVnLWJpc29uQGdudS5vcmdcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEyLTEyLTEyIDE2OjA5KzAxMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDctMDUtMDMgMjI6MzktMDMwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBMZXNsaWUgSGFybGxleSBXYXR0ZXIgPGxlc2xpZUB3YXR0ZXIub3JnPlxuIgoiTGFuZ3VhZ2UtVGVhbTogQnJhemlsaWFuIFBvcnR1Z3Vlc2UgPGxkcC1ickBiYXphci5jb25lY3RpdmEuY29tLmJyPlxuIgoiTGFuZ3VhZ2U6IHB0X0JSXG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKCiM6IGRhdGEvZ2xyLmM6ODU1IGRhdGEveWFjYy5jOjc3Ngptc2dpZCAic3ludGF4IGVycm9yOiBjYW5ub3QgYmFjayB1cCIKbXNnc3RyICJlcnJvIGRlIHNpbnRheGU6IG7jbyDpIHBvc3PtdmVsIHZvbHRhciIKCiM6IGRhdGEvZ2xyLmM6MTcyOQptc2dpZCAic3ludGF4IGlzIGFtYmlndW91cyIKbXNnc3RyICJhIHNpbnRheGUg6SBhbWLtZ3VhIgoKIzogZGF0YS9nbHIuYzoyMDE0IGRhdGEvZ2xyLmM6MjA5NCBkYXRhL2dsci5jOjIxMzQgZGF0YS9nbHIuYzoyMzk5CiM6IGRhdGEvbGFscjEuY2M6OTQ3IGRhdGEvbGFscjEuY2M6OTY3IGRhdGEveWFjYy5jOjEzNTEgZGF0YS95YWNjLmM6MTg1NgojOiBkYXRhL3lhY2MuYzoxODYyCm1zZ2lkICJzeW50YXggZXJyb3IiCm1zZ3N0ciAiZXJybyBkZSBzaW50YXhlIgoKIzogZGF0YS9nbHIuYzoyMDk1IGRhdGEvbGFscjEuY2M6OTQ4IGRhdGEveWFjYy5jOjEzNTIKIywgYy1mb3JtYXQKbXNnaWQgInN5bnRheCBlcnJvciwgdW5leHBlY3RlZCAlcyIKbXNnc3RyICJlcnJvIGRlIHNpbnRheGUsICVzIG7jbyBlc3BlcmFkbyIKCiM6IGRhdGEvZ2xyLmM6MjA5NiBkYXRhL2xhbHIxLmNjOjk0OSBkYXRhL3lhY2MuYzoxMzUzCiMsIGMtZm9ybWF0Cm1zZ2lkICJzeW50YXggZXJyb3IsIHVuZXhwZWN0ZWQgJXMsIGV4cGVjdGluZyAlcyIKbXNnc3RyICJlcnJvIGRlIHNpbnRheGUsICVzIG7jbyBlc3BlcmFkbywgZXNwZXJhbmRvICVzIgoKIzogZGF0YS9nbHIuYzoyMDk3IGRhdGEvbGFscjEuY2M6OTUwIGRhdGEveWFjYy5jOjEzNTQKIywgYy1mb3JtYXQKbXNnaWQgInN5bnRheCBlcnJvciwgdW5leHBlY3RlZCAlcywgZXhwZWN0aW5nICVzIG9yICVzIgptc2dzdHIgImVycm8gZGUgc2ludGF4ZSwgJXMgbuNvIGVzcGVyYWRvLCBlc3BlcmFuZG8gJXMgb3UgJXMiCgojOiBkYXRhL2dsci5jOjIwOTggZGF0YS9sYWxyMS5jYzo5NTEgZGF0YS95YWNjLmM6MTM1NQojLCBjLWZvcm1hdAptc2dpZCAic3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBleHBlY3RpbmcgJXMgb3IgJXMgb3IgJXMiCm1zZ3N0ciAiZXJybyBkZSBzaW50YXhlLCAlcyBu428gZXNwZXJhZG8sIGVzcGVyYW5kbyAlcyBvdSAlcyBvdSAlcyIKCiM6IGRhdGEvZ2xyLmM6MjA5OSBkYXRhL2xhbHIxLmNjOjk1MiBkYXRhL3lhY2MuYzoxMzU2CiMsIGMtZm9ybWF0Cm1zZ2lkICJzeW50YXggZXJyb3IsIHVuZXhwZWN0ZWQgJXMsIGV4cGVjdGluZyAlcyBvciAlcyBvciAlcyBvciAlcyIKbXNnc3RyICJlcnJvIGRlIHNpbnRheGUsICVzIG7jbyBlc3BlcmFkbywgZXNwZXJhbmRvICVzIG91ICVzIG91ICVzIG91ICVzIgoKIzogZGF0YS9nbHIuYzoyNDU5IGRhdGEveWFjYy5jOjE0MzYgZGF0YS95YWNjLmM6MTQzOCBkYXRhL3lhY2MuYzoxNjE2CiM6IGRhdGEveWFjYy5jOjIwMTMKbXNnaWQgIm1lbW9yeSBleGhhdXN0ZWQiCm1zZ3N0ciAiZmFsdGEgZGUgbWVt83JpYSIK