IwojICAgUGFydHMgb2YgdGhlIGRldmVsb3BtZW50IGVmZm9ydCBmb3IgdGhpcyBwcm9qZWN0IGhhdmUgYmVlbgojICAgc3BvbnNvcmVkIGJ5IFNJRU1FTlMgQUcsIEF1c3RyaWEuIFRoYW5rcyB0byBTSUVNRU5TIGZvcgojICAgc3VwcG9ydGluZyBhbiBPcGVuIFNvdXJjZSBwcm9qZWN0IQojCiMKIyAgIFRoaXMgaXMgYXQgbGVhc3QgYSBwYXJ0aWFsIGNyZWRpdHMtZmlsZSBvZiBpbmRpdmlkdWFsIHBlb3BsZSB0aGF0CiMgICBoYXZlIGNvbnRyaWJ1dGVkIHRvIHRoZSBVLUJvb3QgcHJvamVjdC4gSXQgaXMgc29ydGVkIGJ5IG5hbWUgYW5kCiMgICBmb3JtYXR0ZWQgdG8gYWxsb3cgZWFzeSBncmVwcGluZyBhbmQgYmVhdXRpZmljYXRpb24gYnkgc2NyaXB0cy4KIyAgIFRoZSBmaWVsZHMgYXJlOiBuYW1lIChOKSwgZW1haWwgKEUpLCB3ZWItYWRkcmVzcyAoVyksIFBHUCBrZXkgSUQKIyAgIGFuZCBmaW5nZXJwcmludCAoUCksIGRlc2NyaXB0aW9uIChEKSwgYW5kIHNuYWlsLW1haWwgYWRkcmVzcyAoUykuCiMgICBUaGFua3MsCiMKIyAgICAgICAgICAgICAgICAgICAgICAgV29sZmdhbmcgRGVuawojLS0tLS0tLS0tLQoKTjogRHIuIEJydW5vIEFjaGF1ZXIKRTogYnJ1bm9AZXhldC1hZy5kZQpEOiBTdXBwb3J0IGZvciBOZXRCU0QgKGJvdGggYXMgaG9zdCBhbmQgdGFyZ2V0IHN5c3RlbSkKCk46IEd1aWxsYXVtZSBBbGV4YW5kcmUKRTogZ3VpbGxhdW1lLmFsZXhhbmRyZUBnZXNwYWMuY2gKRDogQWRkIFBDSVBQQzYgY29uZmlndXJhdGlvbgoKTjogU3dlbiBBbmRlcnNvbgpFOiBzYW5kQHBlcHBlcmNvbi5kZQpEOiBFUklDIFN1cHBvcnQKCk46IFBhbnRlbGlzIEFudG9uaW91CkU6IHBhbnRvQGludHJhY29tLmdyCkQ6IE5FVFZJQSAmIE5FVFBIT05FIGJvYXJkIHN1cHBvcnQsIEFSVE9TIHN1cHBvcnQuCgpOOiBQaWVycmUgQXViZXJ0CkU6IDxwLmF1YmVydEBzdGF1YmxpLmNvbT4KRDogU3VwcG9ydCBmb3IgUlBYQ2xhc3NpYyBib2FyZAoKTjogWXVsaSBCYXJjb2hlbgpFOiB5dWxpQGFyYWJlbGxhc3cuY29tCkQ6IFVuaWZpZWQgc3VwcG9ydCBmb3IgTW90b3JvbGEgTVBDODI2eEFEUy9NUEM4MjcyQURTL1BRMkZBRFMgYm9hcmRzLgpEOiBTdXBwb3J0IGZvciBaZXBoeXIgRW5naW5lZXJpbmcgWlBDLjE5MDAgYm9hcmQuCkQ6IFN1cHBvcnQgZm9yIEludGVycGhhc2UgaVNQQU4gYm9hcmRzLgpEOiBTdXBwb3J0IGZvciBBbmFsb2d1ZSZNaWNybyBBZGRlciBib2FyZHMuClc6IGh0dHA6Ly93d3cuYXJhYmVsbGFzdy5jb20KCk46IEplcnJ5IHZhbiBCYXJlbgpFOiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRDogQmVkQnVnIHBvcnQgdG8gNjAzZSBjb3JlIChNUEM4Mnh4KS4gQ29kZSBmb3IgZW5oYW5jZWQgbWVtb3J5IHRlc3QuCgpOOiBQYXZlbCBCYXJ0dXNlawpFOiA8cGJhQHN5c2dvLmNvbT4KRDogUmVpc2VyZnMgc3VwcG9ydApXOiBodHRwOi8vd3d3LmVsaW5vcy5jb20KCk46IEFuZHJlIEJlYXVkaW4KRTogPGFuZHJlLmJlYXVkaW5AY29sdWJyaXMuY29tPgpEOiBQQ01DSUEsIEV0aGVybmV0LCBURlRQCgpOOiBKb24gQmVuZWRpa3Rzc29uCkU6IGpvbmJAbWFyZWwuaXMKRDogU3VwcG9ydCBmb3IgTWFyZWwgVjM3IGJvYXJkCgpOOiBSYXBoYWVsIEJvc3NlawpFOiByYXBoYWVsLmJvc3Nla0Bzb2x1dGlvbnM0bGludXguZGUKRDogOHh4cm9tLTAuMy4wCgpOOiBSaWNrIEJyb25zb24KRTogcmlja0BlZm4ub3JnCkQ6IEF0bWVsIEFUOTFSTTkyMDBESyBhbmQgTkFORCBzdXBwb3J0CgpOOiBEYXZpZCBCcm93bgpFOiBEQnJvd24wM0BoYXJyaXMuY29tCkQ6IEV4dGVuc2lvbnMgdG8gOHh4cm9tLTAuMy4wCgpOOiBPbGl2ZXIgQnJvd24KRTogb2Jyb3duQGFkdmVudG5ldHdvcmtzLmNvbQpEOiBQb3J0IHRvIHRoZSBndzgyNjAgYm9hcmQKCk46IEN1cnQgQnJ1bmUKRTogY3VydEBjdWN5LmNvbQpEOiBBZGRlZCBzdXBwb3J0IGZvciBTYW1zdW5nIFMzQzQ1MTBCIENQVSAoQVJNN3RkbWkgYmFzZWQgU29DKQpEOiBBZGRlZCBzdXBwb3J0IGZvciBFU1BELUluYy4gRVZCNDUxMCBCb2FyZApXOiBodHRwOi8vd3d3LmN1Y3kuY29tCgpOOiBKb25hdGhhbiBEZSBCcnV5bmUKRTogam9uYXRoYW4uZGVicnV5bmVAc2llbWVucy5hdGVhLmJlCkQ6IFBvcnQgdG8gU2llbWVucyBJQUQyMTAgYm9hcmQKCk46IEtlbiBDaG91CkU6IGtjaG91QGllZWUub3JnCkQ6IFN1cHBvcnQgZm9yIEEzMDAwIFNCQyBib2FyZAoKTjogQ29ubiBDbGFyawpFOiBjbGFya0Blc3RlZW0uY29tCkQ6IEVTVEVFTTE5MkUgc3VwcG9ydAoKTjogTWFnbnVzIERhbW0KRTogZGFtbUBvcGVuc291cmNlLnNlCkQ6IDh4eHJvbQoKTjogR2VvcmdlIEcuIERhdmlzCkU6IGdkYXZpc0BtdmlzdGEuY29tCkQ6IEJvYXJkIHBvcnRzIGZvciBBRFMgR3JhcGhpY3NDbGllbnQrIGFuZCBJbnRlbCBBc3NhYmV0CgpOOiBBcnVuIERoYXJhbmthcgpFOiBBRGhhcmFua2FyQEFUVEJJLkNvbQpEOiB0aHJlYWRzIC8gc2NoZWR1bGVyIGV4YW1wbGUgY29kZQoKTjogS+FyaSBEYXbt8HNzb24KRToga2RAZmxhZ2EuaXMKRDogRkxBR0EgRE0gU3VwcG9ydAoKTjogV29sZmdhbmcgRGVuawpFOiB3ZEBkZW54LmRlCkQ6IFUtQm9vdCBpbml0aWFsIHZlcnNpb24sIGNvbnRpbnVpbmcgbWFpbnRlbmFuY2UsIEFSTUJvb3QgbWVyZ2UKVzogaHR0cDovL3d3dy5kZW54LmRlCgpOOiBEYW4gQS4gRGlja2V5CkU6IGRkaWNrZXlAY2hhcnRlci5uZXQKRDogRkFEUyBTdXBwb3J0CgpOOiBKYW1lcyBGLiBEb3VnaGVydHkKRTogamZkQEdpZ2FiaXROZXR3b3Jrcy5DT00KRDogUG9ydCB0byB0aGUgTU9VU1NFIGJvYXJkCgpOOiBEYXZlIEVsbGlzCkU6IERHRUBzaXhuZXRpby5jb20KRDogRUVQUk9NIFNwZWVkdXAsIFNYTkk4NTVUIHBvcnQKCk46IFRob21hcyBFbHN0ZQpFOiBpbmZvQGVsc3RlLm9yZwpEOiBQb3J0IGZvciB0aGUgTW9kTkVUNTAgQm9hcmQsIE5FVCs1MCBDUFUgUG9ydApXOiBodHRwOi8vd3d3LmltbXMuZGUKCk46IERhbmllbCBFbmdzdHL2bQpFOiBkYW5pZWxAb21pY3Jvbi5zZQpEOiB4ODYgcG9ydCwgU3VwcG9ydCBmb3Igc2M1MjBfY2RwIGJvYXJkCgpOOiBEci4gV29sZmdhbmcgR3JhbmRlZ2dlcgpFOiB3Z0BkZW54LmRlCkQ6IFN1cHBvcnQgZm9yIEludGVycGhhc2UgNDUzOSBUMS9FMS9KMSBQTUMsIFBONjIsIENDTSwgU0NNIGJvYXJkcwpXOiB3d3cuZGVueC5kZQoKTjogUGV0ZXIgRmlndWxpCkU6IHBlcG9zaEBldGMuc2sKRDogU3VwcG9ydCBmb3IgV0VQIEVQMjUwIChQWEEpIGJvYXJkCgpOOiBUaG9tYXMgRnJpZWRlbgpFOiBUaG9tYXNGQGh5cGVyaW9uLWVudGVydGFpbm1lbnQuY29tCkQ6IFN1cHBvcnQgZm9yIEFtaWdhT25lCgpOOiBGcmFuayBHb3R0c2NobGluZwpFOiBmZ290dHNjaGxpbmdAZWx0ZWMuZGUKRDogU3VwcG9ydCBmb3IgRUxURUMgTUhQQy9CQUI3eHgvRUxQUEMgYm9hcmRzLCBjZmItY29uc29sZSwgaTgwNDIsIFNNSSBMeW54RU0KVzogd3d3LmVsdGVjLmRlCgpOOiBNYXJpdXMgR3JvZWdlcgpFOiBtZ3JvZWdlckBzeXNnby5kZQpEOiBNQlggU3VwcG9ydCwgYm9hcmQgc3BlY2lmaWMgZnVuY3Rpb24gaW50ZXJmYWNlLCBFU1QgU0JDODI2MCBzdXBwb3J0OyBpbml0aWFsIHN1cHBvcnQgZm9yIFN0cm9uZ0FSTSAoTEFSVCksIEFSTTcyMFRETUkgKGltcGxlbWVudGEgQTcpClc6IHd3dy5lbGlub3MuY29tCgpOOiBLaXJrIEhhZGVybGllCkU6IGtoYWRlcmxpZUB2aXZpZGltYWdlLmNvbQpEOiBBZGRlZCBURlRQIHRvIDh4eHJvbSAoLT4gMC4zLjEpCgpOOiBDaHJpcyBIYWxsaW5hbgpFOiBjbGhAbmV0MXBsdXMuY29tCkQ6IERIQ1AgU3VwcG9ydAoKTjogQW5uZS1Tb3BoaWUgSGFybm9pcwpFOiBBbm5lLVNvcGhpZS5IYXJub2lzQG5leHRyZWFtLmZyCkQ6IFBvcnQgdG8gV2FsbnV0NDA1IGJvYXJkCgpOOiBBbmRyZWFzIEhlcHBlbApFOiBhaGVwcGVsQHN5c2dvLmRlCkQ6IENQVSBTdXBwb3J0IGZvciBNUEMgNzV4OyBib2FyZCBzdXBwb3J0IGZvciBFbHRlYyBCQUI3NTAgW29ic29sZXRlIV0KCk46IEF1Z3VzdCBIb2VyYWVuZGwKRTogYXVndXN0LmhvZXJhbmRsQGdteC5hdApEOiBTdXBwb3J0IGZvciB0aGUgbG9nb2RsIGJvYXJkIChQWEEyeHgpCgpOOiBKb3NoIEh1YmVyCkU6IGh1YmVyQGFsdW0ud3BpLmVkdQpEOiBQb3J0IHRvIHRoZSBHYWxpbGVvIEV2YWx1YXRpb24gQm9hcmQsIGFuZCB0aGUgTVBDNzR4eCBjcHUgc2VyaWVzLgpXOiBodHRwOi8vd3d3Lm1jbHguY29tLwoKSDogU3R1YXJ0IEh1Z2hlcwpFOiBzdHVhcnRoQGxpbmVvLmNvbQpEOiBQb3J0IHRvIE1QQzgyNjBBRFMgYm9hcmQKCkg6IFJpY2ggSXJlbGFuZApFOiByLmlyZWxhbmRAY29tcHV0ZXIub3JnCkQ6IEZQR0EgZGV2aWNlIGNvbmZpZ3VyYXRpb24gZHJpdmVyCgpOOiBHYXJ5IEplbm5lam9obgpFOiBnYXJ5akBqZW5uZWpvaG4ub3JnLCBnakBkZW54LmRlCkQ6IFN1cHBvcnQgZm9yIFNhbXN1bmcgQVJNOTIwVCBTM0MyNDAwWCwgQVJNOTIwVCAiVFJBQiIKVzogd3d3LmRlbnguZGUKCk46IE11cnJheSBKZW5zZW4KRTogTXVycmF5LkplbnNlbkBjbXN0LmNzaXJvLmF1CkQ6IEluaXRpYWwgODI2MCBzdXBwb3J0OyBHREIgc3VwcG9ydApEOiBQb3J0IHRvIENvZ2VudCtIeW1vZCBib2FyZHM7IEh5bW9kIEJvYXJkIERhdGFiYXNlClc6IGh0dHA6Ly93d3cubXNhLmNtc3QuY3Npcm8uYXUvb3Vyc3RhZmYvTXVycmF5SmVuc2VuL21qai5odG1sCgpOOiBZb28uIEpvbmdob29uCkU6IHlvb3RoQGlwb25lLmNvLmtyCkQ6IEFkZGVkIHBvcnQgdG8gdGhlIFJQWGxpdGUgYm9hcmQKCk46IE1hcmsgSm9uYXMKRTogbWFyay5qb25hc0BmcmVlc2NhbGUuY29tCkQ6IFN1cHBvcnQgZm9yIEZyZWVzY2FsZSBUb3RhbDUyMDAgcGxhdGZvcm0KVzogaHR0cDovL3d3dy5tb2JpbGVndC5jb20vCgpOOiBTYW0gU29uZwpFOiBzYW1zb25nc2h1QHlhaG9vLmNvbS5jbgpEOiBQb3J0IHRvIHRoZSBSUFhsaXRlX0RXIGJvYXJkCgpOOiBCcmFkIEtlbXAKRTogQnJhZC5LZW1wQHNlcmFub2EuY29tCkQ6IFBvcnQgdG8gV2luZHJpdmVyIHBwbWM4MjYwIGJvYXJkCgpOOiBTYW5nbW9vbiBLaW0KRTogZG9nb2lsQGV0aW5zeXMuY29tCkQ6IFN1cHBvcnQgZm9yIGRlYnJpcyBib2FyZAoKTjogRnJlZGVyaWNrIFcuIEtsYXR0CkU6IGZyZWQua2xhdHRAd2luZHJpdmVyLmNvbQpEOiBTdXBwb3J0IGZvciBXaW5kIFJpdmVyIFNCQzg1NDAvU0JDODU2MCBib2FyZHMKCk46IFRob21hcyBLb2VsbGVyCkU6IHRrb2VsbGVyQGdteC5uZXQKRDogUG9ydCB0byBNb3Rvcm9sYSBTYW5kcG9pbnQgMyAoTVBDODI0MCkKCk46IFJhZ2h1IEtyaXNobmFwcmFzYWQKRTogUmFnaHUuS3Jpc2huYXByYXNhZEBmY2kuY29tCkQ6IFN1cHBvcnQgZm9yIEFkZGVyLUlJIE1QQzg1MlQgZXZhbHVhdGlvbiBib2FyZApXOiBodHRwOi8vd3d3LmZvcmNlY29tcHV0ZXJzLmNvbQoKTjogQmVybmhhcmQgS3VobgpFOiBia3VobkBtZXRyb3dlcmtzLmNvbQpEIFN1cHBvcnQgZm9yIENvbGRmaXJlIENQVTsgU3VwcG9ydCBmb3IgTW90b3JvbGEgTTUyNzJDMyBhbmQgTTUyODJFVkIgYm9hcmRzCgpOOiBQcmFrYXNoIEt1bWFyCkU6IHByYWthc2hAZW1iZWR4LmNvbQpEICBTdXBwb3J0IGZvciBJbnRyaW5zeWMgQ0VSRiBQWEEyNTAgYm9hcmQuCgpOOiBUaG9tYXMgTGFuZ2UKRTogdGhvbWFzQGNvcmVsYXR1cy5zZQpEOiBTdXBwb3J0IGZvciBHVEggYW5kIGRiYXUxeDAwIGJvYXJkczsgbG90cyBvZiBQQ01DSUEgZml4ZXMKCk46IFRoZSBMRU9YIHRlYW0KRTogdGVhbUBsZW94Lm9yZwpEOiBTdXBwb3J0IGZvciBMRU9YIGJvYXJkcywgRFMxNjR4IFJUQwpXOiBodHRwOi8vd3d3Lmxlb3gub3JnCgpOOiBTdGVwaGFuIExpbnoKRTogbGluekBsaS1wcm8ubmV0CkQ6IFN1cHBvcnQgZm9yIE5pb3MgU3RyYXRpeCBEZXZlbG9wbWVudCBLaXQgKERLLTFTMTApCkQ6IFN1cHBvcnQgZm9yIFNTViBBRE5QL0VTQzEgKE5pb3MgQ3ljbG9uZSkKVzogaHR0cDovL3d3dy5saS1wcm8ubmV0CgpOOiBSYXltb25kIExvCkU6IGxvQHJvdXRlZnJlZS5jb20KRDogU3VwcG9ydCBmb3IgRE9TIHBhcnRpdGlvbnMKCk46IERhbiBNYWxlawpFOiBkYW5AbmV0eDQuY29tCkQ6IEZBRFNST00sIHRoZSBncmFuZGZhdGhlciBvZiBhbGwgb2YgdGhpcwoKTjogQW5kcmVhICJsbGFuZHJlIiBNYXJzb24KRTogYW5kcmVhLm1hcnNvbkBkYXZlLXRlY2guaXQKRDogUG9ydCB0byBQUENoYW1lbGVvbkVWQiBib2FyZApXOiB3d3cuZGF2ZS10ZWNoLml0CgpOOiBSZWluaGFyZCBNZXllcgpFOiByLm1leWVyQGVtay1lbGVrdHJvbmlrLmRlCkQ6IFBvcnQgdG8gRU1LIFRPUDg2MCBNb2R1bGUKCk46IEpheSBNb25rbWFuCkU6IGp0bUBzbW9vdGhzbW9vdGhpZS5jb20KRDogRVNUIFNCQzgyNjAgc3VwcG9ydAoKTjogRnJhbmsgTW9yYXVmCkU6IGZyYW5rLm1vcmF1ZkBzYWx6YnJlbm5lci5jb20KRDogU3VwcG9ydCBmb3IgRW1iZWRkZWQgUGxhbmV0IFJQWCBTdXBlciBCb2FyZAoKTjogRGF2aWQgTfxsbGVyCkU6IGQubXVlbGxlckBlbHNvZnQuY2gKRDogU3VwcG9ydCBmb3IgU2Ftc3VuZyBBUk05MjBUIFNNREsyNDEwIGV2YWwgYm9hcmQKCk46IFNjb3R0IE1jTnV0dApFOiBzbWNudXR0QHBzeWVudC5jb20KRDogU3VwcG9ydCBmb3IgQWx0ZXJhIE5pb3MtMzIgQ1BVCkQ6IFN1cHBvcnQgZm9yIEFsdGVyYSBOaW9zLUlJIENQVQpEOiBTdXBwb3J0IGZvciBOaW9zIEN5Y2xvbmUgRGV2ZWxvcG1lbnQgS2l0IChESy0xQzIwKQpXOiBodHRwOi8vd3d3LnBzeWVudC5jb20KCk46IFJvbGYgT2ZmZXJtYW5ucwpFOiByb2ZAc3lzZ28uZGUKRDogSW5pdGlhbCBzdXBwb3J0IGZvciBTU1YtRE5QMTExMCwgU01DOTExMTEgZHJpdmVyClc6IHd3dy5lbGlub3MuY29tCgpOOiBUb2x1bmF5IE9ya3VuCkU6IHRvcmt1bkBuZXh0aW8uY29tCkQ6IFN1cHBvcnQgZm9yIENvZ2VudCBDU0IyNzIgJiBDU0I0NzIgYm9hcmRzCgpOOiBLZWl0aCBPdXR3YXRlcgpFOiBrZWl0aF9vdXR3YXRlckBtdmlzLmNvbQpEOiBTdXBwb3J0IGZvciBnZW5lcmljL2N1c3RvbSBNUEM4NjBUIGJvYXJkcyAoR0VOODYwVCwgR0VOODYwVF9TQykKCk46IEZyYW5rIFBhbm5vCkU6IGZwYW5ub0BkZWxwaGludGVjaC5jb20KRDogU3VwcG9ydCBmb3IgRW1iZWRkZWQgUGxhbmV0IEVQODI2MCBCb2FyZAoKTjogRGVuaXMgUGV0ZXIKRTogZC5wZXRlckBtcGwuY2gKRDogU3VwcG9ydCBmb3IgNHh4IFNDU0ksIGZsb3BweSwgQ0RST00sIENUNjkwMDAgdmlkZW8sIC4uLgpEOiBTdXBwb3J0IGZvciBQSVA0MDUgYm9hcmQKRDogU3VwcG9ydCBmb3IgTUlQNDA1IGJvYXJkCgpOOiBEYXZlIFBldmVybGV5CkU6IGRwZXZlcmxleUBtcGMtZGF0YS5jby51awpXOiBodHRwOi8vd3d3Lm1wYy1kYXRhLmNvLnVrCkQ6IE9NQVA3MzAgUDIgYm9hcmQgc3VwcG9ydAoKTjogQmlsbCBQaXR0cwpFOiB3bHBAbWluZHNwcmluZy5jb20KRDogQmVkQnVnIGVtYmVkZGVkIGRlYnVnZ2VyIGNvZGUKCk46IERhbmllbCBQb2lyb3QKRTogZGFuLnBvaXJvdEB3aW5kcml2ZXIuY29tCkQ6IFN1cHBvcnQgZm9yIHRoZSBzYmM4MjQwIGJvYXJkClc6IGh0dHA6Ly93d3cud2luZHJpdmVyLmNvbQoKTjogU3RlZmFuIFJvZXNlCkU6IHN0ZWZhbi5yb2VzZUBlc2QtZWxlY3Ryb25pY3MuY29tCkQ6IElCTSBQUEM0MDEvNDAzLzQwNUdQIFN1cHBvcnQ7IFdpbmRvd3MgZW52aXJvbm1lbnQgc3VwcG9ydAoKTjogRXJ3aW4gUm9sCkU6IGVyd2luQG11ZmZpbi5vcmcKRDogYm9vdCBzdXBwb3J0IGZvciBSVEVNUwoKTjogUGF1bCBSdWhsYW5kCkU6IHBydWhsYW5kQHJvY2hlc3Rlci5yci5jb20KRDogUG9ydCB0byBMb2dpYyBab29tIExIN0E0MHggU0RLIGJvYXJkKHMpCgpOOiBOZWlsIFJ1c3NlbGwKRTogY2FyZXRAYy1zaWRlLmNvbQpEOiBBdXRob3Igb2YgTGlNb24tMS40LjIsIHdoaWNoIGNvbnRyaWJ1dGVkIHNvbWUgaWRlYXMKCk46IFRyYXZpcyBCLiBTYXd5ZXIKRTogdHJhdmlzLnNhd3llckBzYW5kYnVyc3QuY29tCkQ6IFN1cHBvcnQgZm9yIElCTSBQUEM0NDBHWCwgWEVTIFhQZWRpdGUxMDAwIDQ0MEdYIFByUE1DIGJvYXJkLiAgSUJNIDQ0MGd4IFJlZiBQbGF0Zm9ybSAoT2NvdGVhKQoKTjogUGFvbG8gU2NhZmZhcmRpCkU6IGFyc2VuaW9AdGluLml0CkQ6IEZBRFM4MjMgY29uZmlndXJhdGlvbiwgTVBDODIzIHZpZGVvIHN1cHBvcnQsIEkyQywgd2lyZWxlc3Mga2V5Ym9hcmQsIGxvdHMgbW9yZQoKTjogUm9iZXJ0IFNjaHdlYmVsCkU6IHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGUKRDogU3VwcG9ydCBmb3IgY3NiMjI2LCBsb2dvZGwgYW5kIGlubm9rb20gYm9hcmRzIChQWEEyeHgpCgpOOiBZYXN1c2hpIFNob2ppCkU6IHlhc2hpQGF0bWFyay10ZWNobm8uY29tCkQ6IFN1cHBvcnQgZm9yIFhpbGlueCBNaWNyb0JsYXplLCBmb3IgQXRtYXJrIFRlY2hubyBTVVpBS1UgRlBHQSBib2FyZAoKTjogS3VydCBTdHJlbWVyY2gKRToga3VydEBleHlzLmJlCkQ6IFN1cHBvcnQgZm9yIEV4eXMgWFNFbmdpbmUgYm9hcmQKCk46IEFuZHJlYSBTY2lhbgpFOiBhbmRyZWEuc2NpYW5AZGF2ZS10ZWNoLml0CkQ6IFBvcnQgdG8gQjIgYm9hcmQKVzogd3d3LmRhdmUtdGVjaC5pdAoKTjogUm9iIFRheWxvcgpFOiByb2J0QGZseWluZ3BpZy5jb20KRDogUG9ydCB0byBNQlg4NjBUIGFuZCBTYW5kcG9pbnQ4MjQwCgpOOiBFcmlrIFRoZWlzZW4KRTogZXRoZWlzZW5AbWluZHNwcmluZy5jb20KRDogTUJYOHh4IGFuZCBtYW55IG90aGVyIHBhdGNoZXMKCk46IEppbSBUaG9tcHNvbgpFOiBqaW1AbXVzZW5raS5jb20KRDogU3VwcG9ydCBmb3IgTVVTRU5LSSBib2FyZAoKTjogUnVuZSBUb3JnZXJzZW4KRTogPHJ1bmV0QGlubm92c3lzLmNvbT4KRDogU3VwcG9ydCBmb3IgTW90b3JvbGEgTVBDODI2NkFEUyBib2FyZAoKTjogRGF2aWQgVXBkZWdyYWZmCkU6IGRhdmVAY3JheS5jb20KRDogUG9ydCB0byBDcmF5IEwxIGJvYXJkOyBESENQIHZlbmRvciBleHRlbnNpb25zCgpOOiBDaHJpc3RpYW4gVmVqbGJvCkU6IGNocmlzdGlhbi52ZWpsYm9AdGVsbGFicy5jb20KRDogRkFEUzg2MFQgZXRoZXJuZXQgc3VwcG9ydAoKTjogTWFydGluIFdpbmlzdG9lcmZlcgpFOiBtYXJ0aW53aW5pc3RvZXJmZXJAZ214LmNoCkQ6IFBvcnQgdG8gTVBDNTU1LzU1NiBtaWNyb2NvbnRyb2xsZXJzIGFuZCBzdXBwb3J0IGZvciBjbWkgYm9hcmQKCk46IE1pbmctTGVuIFd1CkU6IG1pbmdsZW5fd3VAdGVjaHdhcmUuY29tLnR3CkQ6IE1vdG9yb2xhIE1YMUFEUyBib2FyZCBzdXBwb3J0Clc6IGh0dHA6Ly93d3cudGVjaHdhcmUuY29tLnR3LwoKTjogWGlhbmdodWEgWGlhbwpFOiB4LnhpYW9AbW90b3JvbGEuY29tCkQ6IFN1cHBvcnQgZm9yIE1vdG9yb2xhIDg1eHgoUG93ZXJRVUlDQyBJSUkpIGNoaXAsIE1QQzg1NDBBRFMgYW5kIE1QQzg1NjBBRFMgYm9hcmRzLgoKTjogSm9obiBaaGFuCkU6IHpoYW56QHNpbm92ZWUuY29tCkQ6IFN1cHBvcnQgZm9yIFNpbm9WZWUgTWljcm9zeXN0ZW1zIFNDOHh4IFNCQwoKTjogQWxleCBadWVwa2UKRTogYXp1QHN5c2dvLmRlCkQ6IE92ZXJhbGwgaW1wcm92ZW1lbnRzIG9uIFN0cm9uZ0FSTSwgQVJNNzIwVERNSTsgU3VwcG9ydCBmb3IgVHV4c2NyZWVuOyBpbml0aWFsIFBDTUNJQSBzdXBwb3J0IGZvciBBUk0KVzogd3d3LmVsaW5vcy5jb20K