IyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCiMgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCiMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCiMgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQojICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKIwojIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgojICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQojIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQojIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKIyB1bmRlciB0aGUgTGljZW5zZS4KClZpZXdfSGllcmFyY2h5Vmlld19uYW1lPUhpZXJhcmNoaWUKClZpZXdfUHJvYmxlbXNWaWV3X25hbWU9UHJvYmxlbWUKClZpZXdfUHJvamVjdHNWaWV3X25hbWU9UHJvamVrdGUKClZpZXdfU2VhcmNoVmlld19uYW1lPVN1Y2hlCgpOZXdXaXphcmRfTmV3UHJvamVjdFdpemFyZF9uYW1lPU5ldWVzIFNjaGVtYSBQcm9qZWt0CgpOZXdXaXphcmRfTmV3U2NoZW1hV2l6YXJkX25hbWU9TmV1ZXMgU2NoZW1hCgpOZXdXaXphcmRfTmV3QXR0cmlidXRlVHlwZVdpemFyZF9uYW1lPU5ldWVyIEF0dHJpYnV0IFR5cAoKTmV3V2l6YXJkX05ld09iamVjdENsYXNzV2l6YXJkX25hbWU9TmV1ZSBPYmpla3RrbGFzc2UKCkVkaXRvcl9PYmplY3RDbGFzc0VkaXRvcl9uYW1lPU9iamVrdC1LbGFzc2VuIEVkaXRvcgoKRWRpdG9yX0F0dHJpYnV0ZVR5cGVFZGl0b3JfbmFtZT1BdHRyaWJ1dC1UeXAgRWRpdG9yCgpFeHBvcnRXaXphcmRfRXhwb3J0U2NoZW1hc0FzWG1sV2l6YXJkX25hbWU9U2NoZW1hcyBhbHMgWE1MIERhdGVpKGVuKQoKRXhwb3J0V2l6YXJkX0V4cG9ydFNjaGVtYXNBc09wZW5MZGFwV2l6YXJkX25hbWU9U2NoZW1hcyBhbHMgT3BlbkxEQVAgRGF0ZWllbgoKRXhwb3J0V2l6YXJkX0V4cG9ydFNjaGVtYXNGb3JBRFNXaXphcmRfbmFtZT1TY2hlbWFzIGZvciBBcGFjaGVEUwoKRXhwb3J0V2l6YXJkX0V4cG9ydFByb2plY3RzV2l6YXJkX25hbWU9U2NoZW1hIFByb2pla3RlCgpJbXBvcnRXaXphcmRfSW1wb3J0Q29yZVNjaGVtYXNXaXphcmRfbmFtZT1Db3JlIFNjaGVtYSBEYXRlaWVuCgpJbXBvcnRXaXphcmRfSW1wb3J0U2NoZW1hc0Zyb21YbWxXaXphcmRfbmFtZT1TY2hlbWFzIHZvbiBYTUwgRGF0ZWkoZW4pCgpJbXBvcnRXaXphcmRfSW1wb3J0U2NoZW1hc0Zyb21PcGVuTGRhcFdpemFyZF9uYW1lPVNjaGVtYXMgdm9uIE9wZW5MREFQIERhdGVpZW4KCkltcG9ydFdpemFyZF9JbXBvcnRQcm9qZWN0c1dpemFyZF9uYW1lPVNjaGVtYSBQcm9qZWt0ZQoKUHJlZlBhZ2VfSGllcmFyY2h5Vmlld19uYW1lPUhpZXJhcmNoaWUgQW5zaWNodAoKUHJlZlBhZ2VfU2NoZW1hVmlld19uYW1lPVNjaGVtYSBBbnNpY2h0CgpQcmVmUGFnZV9TZWFyY2hWaWV3X25hbWU9U3VjaGUgQW5zaWNodAoKRGVjb3JhdG9yX1NjaGVtYUVkaXRvclR5cGVEZWNvcmF0b3JfbGFiZWw9U2NoZW1hIEVkaXRvciBUeXBlIERlY29yYXRvcgpEZWNvcmF0b3JfU2NoZW1hRWRpdG9yVHlwZURlY29yYXRvcl9kZXNjcmlwdGlvbj1JY29ucyBtaXQgVHlwIEluZm9ybWF0aW9uIGltIFNjaGVtYSBFZGl0b3IgYW56ZWlnZW4KCkRlY29yYXRvcl9TY2hlbWFFZGl0b3JTY2hlbWFDaGVja2VyRGVjb3JhdG9yX2xhYmVsPUljb25zIG1pdCBTY2hlbWEtQ2hlY2tlciBJbmZvcm1hdGlvbiBpbSBTY2hlbWEgRWRpdG9yIGFuemVpZ2VuCkRlY29yYXRvcl9TY2hlbWFFZGl0b3JTY2hlbWFDaGVja2VyRGVjb3JhdG9yX2Rlc2NyaXB0aW9uPUljb25zIG1pdCBTY2hlbWEgQ2hlY2tlciBJbmZvcm1hdGlvbiBpbSBTY2hlbWEgRWRpdG9yIGFuemVpZ2VuCgpTZWFyY2hQYWdlX1NjaGVtYUVkaXRvclNlYXJjaF9sYWJlbD1TY2hlbWEgRWRpdG9yIFN1Y2hlCgpDdHhfUHJvamVjdHNWaWV3X25hbWU9SW4gUHJvamVrdCBBbnNpY2h0IGRlcyBTY2hlbWEgRWRpdG9ycwpDdHhfUHJvamVjdHNWaWV3X2Rlc2NyaXB0aW9uPUluIFByb2pla3QgQW5zaWNodCBkZXMgU2NoZW1hIEVkaXRvcnMKCkN0eF9TY2hlbWFWaWV3X25hbWU9SW4gU2NoZW1hIEFuc2ljaHQgZGVzIFNjaGVtYSBFZGl0b3JzCkN0eF9TY2hlbWFWaWV3X2Rlc2NyaXB0aW9uPUluIFNjaGVtYSBBbnNpY2h0IGRlcyBTY2hlbWEgRWRpdG9ycwoKQ21kX05ld1Byb2plY3RfbmFtZT1OZXVlcyBQcm9qZWt0CkNtZF9OZXdQcm9qZWN0X2Rlc2NyaXB0aW9uPUVyc3RlbGx0IGVpbiBuZXVlcyBQcm9qZWt0CgpDbWRfUmVuYW1lUHJvamVjdF9uYW1lPVByb2plY3QgdW1iZW5lbm5lbgpDbWRfUmVuYW1lUHJvamVjdF9kZXNjcmlwdGlvbj1CZW5lbm50IGVpbiBQcm9qZWt0IHVtCgpDbWRfRGVsZXRlUHJvamVjdF9uYW1lPVByb2pla3QgbPZzY2hlbgpDbWRfRGVsZXRlUHJvamVjdF9kZXNjcmlwdGlvbj1M9nNjaHQgZGFzIGF1c2dld+RobHRlIFByb2pla3QKCkNtZF9OZXdTY2hlbWFfbmFtZT1OZXVlcyBTY2hlbWEKQ21kX05ld1NjaGVtYV9kZXNjcmlwdGlvbj1FcnN0ZWxsdCBlaW4gbmV1ZXMgU2NoZW1hCgpDbWRfTmV3QXR0cmlidXRlVHlwZV9uYW1lPU5ldWVyIEF0dHJpYnV0IFR5cApDbWRfTmV3QXR0cmlidXRlVHlwZV9kZXNjcmlwdGlvbj1FcnN0ZWxsdCBlaW5lbiBuZXVlbiBBdHRyaWJ1dCBUeXAKCkNtZF9OZXdPYmplY3RDbGFzc19uYW1lPU5ldWUgT2JqZWt0a2xhc3NlCkNtZF9OZXdPYmplY3RDbGFzc19kZXNjcmlwdGlvbj1FcnN0ZWxsdCBlaW5lIG5ldWUgT2JqZWt0a2xhc3NlCgpDbWRfT3BlbkVsZW1lbnRfbmFtZT1FbGVtZW50IFx1MDBGNmZmbmVuCkNtZF9PcGVuRWxlbWVudF9kZXNjcmlwdGlvbj1cdTAwRDZmZm5ldCBkYXMgYXVzZ2V3XHUwMEU0aGx0ZSBFbGVtZW50CgpDbWRfT3BlblR5cGVIaWVyYXJjaHlfbmFtZT1UeXBlbiBIaWVyYXJjaGllIFx1MDBGNmZmbmVuCkNtZF9PcGVuVHlwZUhpZXJhcmNoeV9kZXNjcmlwdGlvbj1cdTAwRDZmZm5ldCBkYXMgYXVzZ2V3XHUwMEU0aGx0ZSBFbGVtZW50IGluIGRlciBUeXBlbiBIaWVyYXJjaGllCgpDbWRfRGVsZXRlU2NoZW1hRWxlbWVudF9uYW1lPVNjaGVtYSBFbGVtZW50IGxcdTAwRjZzY2hlbgpDbWRfRGVsZXRlU2NoZW1hRWxlbWVudF9kZXNjcmlwdGlvbj1MXHUwMEY2c2NodCBkYXMgYXVzZ2V3XHUwMEU0aGx0ZSBTY2hlbWEgRWxlbWVudAoKQ21kX1JlbmFtZVByb2plY3RfbmFtZT1TY2hlbWEgRWxlbWVudCB1bWJlbmVubmVuCkNtZF9SZW5hbWVQcm9qZWN0X2Rlc2NyaXB0aW9uPUJlbmVubnQgZGFzIGF1c2dld+RobHRlIFNjaGVtYS1FbGVtZW50IHVtCgpTY2hlbWFDb25uZWN0b3JfQXBhY2hlRFNfbmFtZT1BcGFjaGVEUyBTY2hlbWEgS29ubmVrdG9yClNjaGVtYUNvbm5lY3Rvcl9BcGFjaGVEU19kZXNjcmlwdGlvbj1EZXIgQXBhY2hlRFMgU2NoZW1hIEtvbm5la3RvciBpc3Qga29tcGF0aWJlbCBtaXQgQXBhY2hlRFMgKFZlcnNpb24gMS41IG9kZXIgaFx1MDBGNmhlcikKClNjaGVtYUNvbm5lY3Rvcl9HZW5lcmljX25hbWU9R2VuZXJpc2NoZXIgU2NoZW1hIEtvbm5la3RvcgpTY2hlbWFDb25uZWN0b3JfR2VuZXJpY19kZXNjcmlwdGlvbj1EZXIgZ2VuZXJpc2NoZSBTY2hlbWEgS29ubmVrdG9yIGlzdCBrb21wYXRpYmVsIG1pdCBuYWhlenUgamVkZW0gTERBUCBTZXJ2ZXIgKHdlbm4gZGFzIFNjaGVtYSBcdTAwRkNiZXIgZGFzIEF0dHJpYnV0ICdzdWJzY2hlbWFTdWJlbnRyeScgZGVzIFJvb3QgRFNFIHp1Z3JlaWZiYXIgaXN0KQo=