UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDM1IH0KQXV0aG9yaXR5S2V5SWRlbnRpZmllciA6Oj0gU0VRVUVOQ0UgewogICAgICBrZmluZWRBdHRyaWJ1dGUgOjo9IFNFUVVFTkNFIHsKICAgdHlwZSBQcmludGFibGVTdHJpbmcgKFNJWkUKICAgICAgICAgICAgICAgICAgICAgKDEgIC4gLnViLWRvbWFpbi1kZWZpbmVkLWF0dHJpYnV0ZS10eXBlLWxlbmd0aCkpLAogICB2YWx1ZSBQcmludGFibGVTdHJpbmcgKFNJWkUKICAgICAgICAgICAgICAgICAgICAgICAgKDEuLnViLWRvbWFpbi1kZWZpbmVkLWF0dHJpYnV0ZS12YWx1ZS1sZW5ndGgpKX0KRXh0ZW5zaW9uQXR0cmlidXRlcyA6Oj0gU0VUIFNJWkUgKDAuLnViLWV4dGVuc2lvbi1hdHRyaWJ1dGVzKSBPRgogICAgICAgICAgICAgICAgICAgICAgICBFeHRlbnNpb25BdHRyaWJ1dGUKRXh0ZW5zaW9uQXR0cmlidXRlIDo6PSAgU0VRVUVOQ0UgewogICBleHRlbnNpb24tYXR0cmlidXRlLXR5cGUgWzBdIEVYUExJQ0lUIElOVEVHRVIgKDAuLnViLWV4dGVuc2lvbi1hdHRyaWJ1dGVzKSwKICAgZXh0ZW5zaW9uLWF0dHJpYnV0ZS12YWx1ZSBdWExQRTFbIElDSVQKICAgICAgICAgICAgICAgICAgICAgICAgQU5ZIERFRklORUQgQlkgZXh0ZW5zaW9uLWF0dHJpYnV0ZS10eXBlIH0KY29tbW9uLW5hbWUgSU5URUdFUiA6Oj0gMQpDb21tb25OYW1lIDo6PSBQcmludGFibGVTdHJpbmcgKFNJWkUgKDEuLnViLWNvbW1vbi1uYW1lLWxlbmd0aCkpCnRlbGV0ZXgtY29tbW9uLW5hbWUgSU5URUdFUiA6Oj0gMgpUZWxldGV4Q29tbW9uTmFtZSA6Oj0gVGVsZXRleFN0cmluZyAoU0laRSAoMS4udWItY29tbW9uLW5hbWUtbGxlU3RyaW5nIChTSVpFCiAgICAgICAgICAgICAgICAgICAgICgxICAuIC51Yi1kb21haW4tZGVmaW5lZC1hdHRyaWJ1dGUtdHlwZS1sZW5ndGgpKYEsCiAgIHZhbHVlIFByaW50YWJsZVN0cmluZyAoU0laRQogICAgICAgICAgICAgICAgICAgICAgICAoMS4udWItZG9tYWluLWRlZmluZWQtYXR0cmlidXRlLXZhbHVlLWxlbmd0aCkpfQpFeHRlbnNpb25BdHRyaWJ1dGVzIDo6PSBTRVQgU0laRSAoMC4udWItZXh0ZW5zaW9uLWF0dHJpYnV0ZXMpIE9GCiAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVuc2lvbkF0dHJpYnV0ZQpFeHRlbnNpb25BdHRyaWJ1dGUgOjo9ICBTRVFVRU5DRSB7CiAgIGV4dGVuc2lvbi1hdHRyaWJ1dGUtdHlwZSBbMF0gRVhQTElDSVQgSU5URUdFUiAoMC4udWItZXh0ZW5zaW9uLWF0dHJpYnV0ZXMpLAogICBleHRlbnNpb24tYXR0cmlidXRlLXZhbHVlIF1YTFBFMVsgSUNJVAogICAgICAgICAgICAgICAgICAgICAgICBBTlkgREVGSU5FRCBCWSBleHRlbnNpb24tYXR0cmlidXRlLXR5cGUgfQpjb21tb24tbmFtZSBJTlRFR0VSIDo6PSAxCkNvbW1vbk5hbWUgOjo9IFByaW50YWJsZVN0cmluZyAoU0laRSAoMS4udWItY29tbW9uLW5hbWUtbGVuZ3RoKSkKdGVsZXRleC1jb21tb24tbmFtZSBJTlRFR0VSIDo6PSAyClRlbGV0ZXhDb21tb25OYW1lIDo6PSBUZWxldGV4U3RyaW5nIChTSVpFICgxLi51Yi1jb21tb24tbmFtZS1sZW5ndGgpKQp0ZWxldGV4LW9yZ2FuaXphdGlvbi1uYW1lIElOVEVHRVIgOjo9IDMKVGVsZXRleE9yZ2FuaXphdGlvbk5hbWUgOjo9CiAgICAgICAgICAgICAgICBUZWxldGV4U3RyaW5nIChTSVpFICgxLi51Yi1vcmdhbml6YXRpb24tbmFtZS1sZW5ndGgpKQp0ZWxldGV4LXBlcnNvbmFsLW5hbWUgSU5URUdFUiA6Oj0gNApUZWxldGV4UGVyc29uYWxOYW1lIDo6PSBTRVQgewogICBzdXJuYW1lIFswXSBFWFBMSUNJVCBUZWxldGV4U3RyaW5nIChTSVpFICgxLi51Yi1zdXJuYW1lLWxlbmd0aCkpLAogICBnaXZlbi1uYW1lIFsxXSBFWFBMSUNJVCBUZWxldGV4U3RyaW5nCiAgICAgICAgICAgICAgICAoU0laRSAoMS4udWItZ2l2ZW4tbmFtZS1sZW5ndGgpKSBPUFRJT05BTCwKICAgaW5pdGlhbHMgWzJdIEVYUExJQ0lUIFRlbGV0ZXhTdHJpbmcgKFNJWkUpKDEuLnViLWluaXRpYWxzLWxlbmd0aCkpIE9QVElPTkFMLAogICBnZW5lcmF0aW9uLXF1YWxpZmllciBbM10gRVhQTElDSVQgVGVsZXRleFN0cmluZyAoU0laRQogICAgICAgICAgICAgICAgKDEuLnViLWdlbmVyYXRpb24tcXVhbGlmaWVyLWxlbmd0aGAge0IgKSkgT1BUSU9OQUwgfQp0ZWxldGV4LW9yZ2FuaXphdGlvbmFsLXVuaXQtbmFtZXMgSU5URUdFUiA6Oj0gNQpUZWxldGV4T3JnYW5pemF0aW9uYWxVbml0TmFtZXMgOjo9IFNFUVVFTkNFIFNJWkUKICAgICAgICAoMS4udWItb3JnYW5pemF0aW9uYWwtdW5pdHMpIDQwKSB4OWFsZ29yaXRobSg0KSAzIH0KRHNzLVNpZy1WYWx1ZSA6Oj0gU0VRVUVOQ0UgewogICAgIHIgICAgICAgSU5URUdFUiwKICAgICBzICAgICAgIElOVEVHRVIKfQpkaHB1YmxpY251bWJlciBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gewogICAgIGlzbygxKSBtZW1iZXItYm9keSgyKSB1cyg4NDApIGFuc2kteDk0MigxMDA0NikgbnVtYmVyLXR5cGUoMikgMSB9CkRvbWFpblBhcmFtZXRlcnMgOjo9IFNFUVVFTkNFIHsKICAgICBwICAgICAgIElOVEVHRVIsIC0tIG9kZCBwcmltZSwgcD1qcSArMQogICAgIGcgICAgICAgSU5URUdFUiwgLS0gZ2VuZXJhdG9yLCBnCiAgICAgcSAgICAgICBJTlRFR0VSLCAtLSBmYWN0b3Igb2YgcC0xCiAgICAgaiAgICAgICBJTlRFR0VSIE9QVElPTkFMLCAtLSBzdWJncm91cCBmYWN0b3IsIGo+PSAyCiAgICAgdmFsaWRhdGlvblBhcm1zICBWYWxpZGF0aW9uUGFybXMgT1BUSU9OQUwgfQpWYWxpZGF0aW9uUGFybXMgOjo9IFNFUVVFTkNFIHtCCiAgICAgc2VlZCAgICAgICAgICAgICBCSVQgU1RSSU5HLAogICAgIHBnZW5Db3VudGVyICAgICAgSU5URUdFUiB9CmlkLWRzYSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gewogICAgIGlzbygxKSBtZW1iZXItYm9keSgyKSB1cyg4NDApIHg5LTU3KDEwMDQwKSB4OWFsZ29yaXRobSg0KSAxIH0KRHNzLVBhcm1zICA6Oj0gIFNFUVVFTkNFIFswXSBFWFBMSUNJVCBJTlRFR0VSICgwLi51Yi1leHRlbnNpb24tYXR0cmlidXRlcyksCiAgIGV4dGVuc2lvbi1hdHRyaWJ1dGUtdmFsdWUgXVhMUEUxWyBJQ0lUCiAgICAgICAgICAgICAgICAgICAgICAgIEFOWSBERUZJTkVEIEJZIGV4dGVuc2lvbi1hdHRyaWJ1dGUtdHlwZSB9CmNvbW1vbi1uYW1lIElOVEVHRVIgOjo9IDEKQ29tbW9uTmFtZSA6Oj0gUHJpbnRhYmxlU3RyaW5nIChTSVpFICgxLi51Yi1jb21tb24tbmFtZUVHRVIgKDAuLnViLWV4dGVuc2lvbi1hdHRyaWJ1dGVzKSwKICAgZXh0ZW5zaW9uLWF0dHJpYnV0ZS12YWx1ZSBdWExQRTFbIElDSVQKICAgICAgICAgICAgICAgICAgICAgICAgQU5ZIERFRklORUQgQlkgZXh0ZW5zaW9uLWF0dHJpYnV0ZS10eXBlIH0KY29tbW9uLW5hbWUgSU5URUdFUiA6Oj0gMQpDb21tb25OYW1lIDotbGVuZ3RoKSkKdGVsZXRleC1jb21tbyBuLW5hbWUgSU5URUdFUiA6Oj0gMgpUZWxldGV4Q29tbW9uTmFtZSA6Oj0gVGVsZXRleFN0cmluZyAoU0laRSAoMS4udWItY29tbW9uLW5hbWUtbGVuZ3RoKSkKdGVsZXRleC1vcmdhbml6YXRpb24tbmFtZSBJTlRFR0VSIDo6PSAzClRlbGV0ZXhPcmdhbml6YXRpb25OYW1lIDo6PQogICAgICAgICAgICAgICAgVGVsZXRleFN0cmluZyAoU0laRSAoMS4udWItb3JnYW5pemF0aW9uLW5hbWUtbGVuZ3RoKSkKdGVsZXRleC1wZXJzb25hbC1uYW1lIElOVEVHRVIgOjo9IDQKVGVsZXRleFBlcnNvbmFsTmFtZSA6Oj0gU0VUIHsKICAgc3VybmFtZSBbMF0gRVhQTElDSVQgVGVsZXRleFN0cmluZyAoU0laRSAoMS4udWItc3VybmFtZS1sZW5ndGgpKSwKICAgZ2l2ZW4tbmFtZSBbMV0gRVhQTElDSVQgVGVsZXRleFN0cmluZwogICAgICAgICAgICAgICAgKFNJWkUgKDEuLnViLWdpdmVu