IyEvdXNyL2Jpbi9lbnYgYmFzaAoKIyBJbnNwZWN0IHNuYXBzaG90CgojIKkgQ29weXJpZ2h0IDIwMDggQmVtYW4gRGF3ZXMKIyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCiMgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAoKIyBUaGlzIHNjcmlwdCB1c2VzIGZ0cCwgYW5kIHRodXMgYXNzdW1lcyB+Ly5uZXRyYyBjb250YWlucyBhIG1hY2hpbmUgLi4uIGVudHJ5CgpwdXNoZCBwb3NpeC90b29scy9pbnNwZWN0L2J1aWxkCmJqYW0KcG9wZAplY2hvIGluc3BlY3QuLi4KcHVzaGQgcG9zaXgKZGlzdC9iaW4vaW5zcGVjdCA+Li4vaW5zcGVjdC5odG1sCnBvcGQKCiMgY3JlYXRlIHRoZSBmdHAgc2NyaXB0CmVjaG8gY3JlYXRlIGZ0cCBzY3JpcHQuLi4KZWNobyAiZGlyIiA+aW5zcGVjdC5mdHAKZWNobyAiYmluYXJ5IiA+Pmluc3BlY3QuZnRwCmVjaG8gInB1dCBpbnNwZWN0Lmh0bWwiID4+aW5zcGVjdC5mdHAKZWNobyAiZGVsZXRlIGluc3BlY3Qtc25hcHNob3QuaHRtbCIgPj5pbnNwZWN0LmZ0cAplY2hvICJyZW5hbWUgaW5zcGVjdC5odG1sIGluc3BlY3Qtc25hcHNob3QuaHRtbCIgPj5pbnNwZWN0LmZ0cAplY2hvICJkaXIiID4+aW5zcGVjdC5mdHAKZWNobyAiYnllIiA+Pmluc3BlY3QuZnRwCiMgdXNlIGN5Z3dpbiBmdHAgcmF0aGVyIHRoYW4gV2luZG93cyBmdHAKZWNobyBmdHAuLi4KL3Vzci9iaW4vZnRwIC12IC1pIGJvb3N0LmNvd2ljLmRlIDxpbnNwZWN0LmZ0cAplY2hvIGluc3BlY3Quc2ggY29tcGxldGUK