UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDM1IH0KQXV0aG9yaXR5S2V5SWRlbnRpZmllciA6Oj0gU0VRVUVOQ0UgewogICAgICBrZmluZWRBdHRyaWJ1dGUgOjo9IFNFUVVFTkNFIHsKICAgdHlwZSBQcmludGFibGVTdHJpbmcgKFNJWkUKICAgICAgICAgICAgICAgICAgICAgICAgKDEuLnViLWRvbWFpbi1kZWZpbmVkLWF0dHJpYnV0ZS10eXBlLWxlbmd0aCkpLAogICB2YWx1ZSBQcmludGFibGVTdHJpbmcgKFNJWkUKICAgICAgICAgICAgICAgICAgICAgICAgKDEuLnViLWRvbWFpbi1kZWZpbmVkLWF0dHJpYnV0ZS12YWx1ZS1sZW5ndGgpKX0KRXh0ZW5zaW9uQXR0cmluaXphdGlvbi1uYW1lIElOVEVHRVIgOjo9IDMKVGVsZXRleE9yZ2FuaXphdGlvbk5hbWUgOjo9CiAgICAgICAgICAgICAgICBUZWxldGV4U3RyaW5nIChTSVpFICgxLi51Yi1vcmdhbml6YXRpb24tbmFtZS1sZW5ndGgpKQp0ZWxldGV4LXBlcnNvbmFsLW5hbWUgSU5URUdFUiA6Oj0gNApUZWxldGV4UGVyc29uYWxOYW1lIDo6PSBTRVQgewogICBzdXJuYW1lIFswXSBFWFBMSUNJVCBUZWxldGV4U3RyaW5nIChTSVpFICgxLi51Yi1zdXJuYW1lLWxlbmd0aCkpLAogICBnaXZlbi1uYW1lIFsxXSBFWFBMSUNJVCBUZWxldGV4U3RyaW5nCiAgICAgICAgICAgICAgICAoU0laRSAoMS4udWItZ2l2ZW4tbmFtZS1sZW5ndGgpKSBPUFRJT05BTCwKICAgaW5pdGlhbHMgWzJdIEVYUExJQ0lUIFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLnViLWluaXRpYWxzLWxlbmd0aCkpIE9QVElPTkFMLAogICBnZW5lcmF0aW9uLXF1YWxpZmllciBbM10gRVhQTElDSVQgVGVsZXRleFN0cmluZyAoU0laRQogICAgICAgICAgICDn39/fKDEuLnViLWdlbmVyYXRpb24tcXVhbGlmaWVyLWxlbmd0aCkpIE9QVElPTkFMIH0KdGVsZXRleC1vcmdhbml6YXRpb25hbC11bml0LW5hbWVzIElOVEVHRVIgOjo9IDUKVGVsZXRleE9yZ2FuaXphdGlvbmFsVW5pdE5hbWVzIDo6PSBTRVFVRU5DRSBTSVpFCiAgICAgICAgKDEuLnViLW9yZ2FuaXphdGlvbmFsLXVuaXRzKSA0MCkgeDlhbGdvcml0aG0oNCkgMyB9CkRzcy1TaWctVmFsdWUgOjo9IFNFUVVFTkNFIHsKICAgcm1zICA6Oj0gIFNFUVVFTkNFICB7CiAgICAgcCAgICAgICAgICAgICBJTlRFR0VSLAogICAgIHEgICAgICAgICAgICAgSU5URUdFUiwKICAgICBnICAgICAgICAgICAgIElOVEVHRVIgIH0KT1JBZGRyZXNzIDo6PSBTRVFVRU5DRSB7CiAgIGJ1aWx0LWluLXN0YW5kYXJkLWF0dHJpYnVndGgpKX0KRXh0ZW5zaW9uQXR0cmlidXRlcyA6Oj0gU0VUIFNJWkUgKDEuLnViLWV4dGVuc2lvbi1hdHRyaWJ1dGVzKSBPRgogICAgICAgICAgICAgICAgICAgICAgICBFeHRlbnNpb25BdHRyaWJ1dGUKRXh0ZW5zaW9uQXR0cmlidXRlIDo6PSAgU0VRVUVOQ0UgewogICBleHRlbnNpb24tYXR0cmlidXRlLXR5cGUgWzBdIEVYUExJQ0lUIElOVEVHRVIgKDAuLnViLWV4dGVuc2lvbi1hdHRyaWJ1dGVzKSwKICAgZXh0ZW5zaW9uLWF0dHJpYnV0ZS12YWx1ZSApKSwKICAgZ2l2ZW4tbmFtZSBbMV0gUHJpbnRhYmxlU3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgIChTSVpFICgxLi51Yi1naXZlbi1uYW1lLWxlbmd0aCkpIE9QVElPTkFMLAogICBpbml0aWFscyBbMl0gUHJpbnRhYmxlU3RyaW5nIChTSVpFICgxLi51Yi1pbml0aWFscy1sZW5ndGgpKSBPUFRJT05BTCwKICAgZ2VuZXJhdGlvbi1xdWFsaWZpZXIgWzNdIFByaW50YWJsZVN0cmluZwogICAgICAgICAgICAgICAgKFNJWkUgKDEuLnViLWdlbmVyYXRpb24tcXVhbGlmaWVyLWxlbmd0aCkpIE9QVElPTkFMIH0KT3JnYW5pemF0aW9uYWxVbml0TmFtZXMgOjo9IFNFUVVFTkNFIFNJWkUgKDEuLnViLW9yZ2FuaXphdGlvbmFsLXVuaXRzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0YgT3JnYW5pemF0aW9uYWxVbml0TmFtZQpPcmdhbml6YXRpb25hbFVuaXROYW1lIDo6PSAgNDApIHg5YWxnb3JpdGhtKDQpIDMgfQpEc3MtU2lnLVZhbHVlIDo6PSBTRVFVRU5DRSB7CiAgIHJtcyAgOjo9ICBTRVFVRU5DRSAgewogICAgIHAgICAgICAgICAgICAgSU5URUdFUiwKICAgICBxICAgICAgICAgICAgIElOVEVHRVIsCiAgICAgZyAgICAgICAgICAgICBJTlRFR0VSICB9Ck9SQWRkcmVzcyA6Oj0gU0VRVUVOQ0UgewogICBidWlsdC1pbi1zdGFuZGFyZC1hdHRyaWJ1Z3RoKSl9CkV4dGVuc2lvbkF0dHJpYnV0ZXMgOjo9IFNFVCBTSVpFICgxLi51Yi1leHRlbnNpb24tYXR0cmlidXRlcykgT0YKICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZW5zaW9uQXR0cmlidXRlCkV4dGVuc2lvbkF0dHJpYnV0ZSA6Oj0gIFNFUVVFTkNFIHsKICAgZXh0ZW5zaW9uLWF0dHJpYnV0ZS10eXBlIFswXSBFWFBMSUNJVCBJTlRFR0VSICgwLi51Yi1leHRlbnNpb24tYXR0cmlidXRlcyksCiAgIGV4dGVuc2lvbi1hdHRyaWJ1dGUtdmFsdWUgKSksCiAgIGdpdmVuLW5hbWUgWzFdIFByaW50YWJsZVN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAoU0laRSAoMS4udWItZ2l2ZW4tbmFtZS1sZW5ndGgpKSBPUFRJT05BTCwKICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVuc2lvbkF0dHJpYnV0ZQpFeHRlbnNpb25BdHRyaWJ1dJ0gOjo9ICBTRVFVRU5DRSB7CiAgIGV4dGVuc2lvbi1hdHRyaWJ1dGUtdHlwZSBbMF0gRVhQTElDSVQgSU5URUdFUiAoMC4udWItZXh0ZW5zaW9uLWF0dHJpYnV0ZXMpLAogICBleHRlbnNpb24tYXR0cmlidXRlLXZhbHVlIFsxXSBFWFBMSUNJVAogICAgICAgICAgICAgICAgICAgICAgICBBTlkgREVGSU5FRCBCWSBleHRlbnNpb24tYXR0cmlidXRlLXR5cGUgfQpjb21tb24tbmFtZSBJTlRFR0VSIDo6PSAxCkNvbW1vbk5hbWUgOjo9IFByaW50YWJsZVN0cmluZyAoU0laRSAoMS4udWItY29tbW9uLW5hbWUtbGVuZ3RoKSkKdGVsZXRleC1jb21tb24tbmFtZSBJTlRFR0VSIDo6PSAyClRlbGV0ZXhDb21tb25OYW1lIDo6PSBUZWxldGV4U3RyaW5nIChTSVpFICgxLi51Yi1jb21tb24tbmFtZS1sZW5ndGgpKQp0ZWxldGV4LW9yZ2FuaXphdGlvbi1uYW1lIElOVEVHRVIgOjo9IDMKVGVsZXRleE9yZ2FuaXphdGlvbk5hbWUgOjo9CiAgICAgICAgICAgICAgICBUZWxldGV4U3RyaW5nIChTSVpFICgxLi51Yi1vcmdhbml6YXRpb24tbmFtZS1sZW5ndGgpKQp0ZWxldGV4LXBlcnNvbmFsLW5hbWUgSU5URUdFUiA6Oj0gNApUZWxldGV4UGVyc29uYWxOYW1lIDo6PSBTRVQgewogICBzdXJuYW1lIFswXSBFWFBMSUNJVCBUZWxldGV4U3RyaW5nIChTSVpFICgxLi51Yi1zdXJuYW1lLWxlbmd0aCkpLAogICBnaXZlbi1uYW1lIFsxXSBFWFBMSUNJVCBUZWxldGV4U3RyaW5nCiAgICAgICAgICAgICAgICAoU0laRSAoMS4udWItZ2l2ZW4tbmFtZS1sZW5ndGgpKSBPUFRJT05BTCwKICAgaW5pdGlhbHMgWzJdIEVYUExJQ0lUIFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLnViLWluaXRpYWxzLWxlbmd0aCkpIE9QVElPTkFMLAogICBnZW5lcmF0aW9uLXF1YWxpZmllciBbM10gRVhQTElDSVQgVGVsZXRleFN0cmluZyAoU0laRQogICAgICAgICAgICAg4N/f187R0Y9iLWdlbmVyXWF0aW9uLXF1YWxpZmllci1sZW5ndGgpKSBPUFRJT05BTCB9CnRlbGV0ZXgtb3JnYW5pemF0aW9uYWwtdW5pdC1uYW1lcyBJTlRFR0VSIDo6PSA1ClRlbGV0ZXhPcmdhbml6YXRpb25hbFVuaXROYW1lcyA6Oj0gU0VRVUVOQ0UgU0laRQogICAgICAgICgxLi51Yi1vcmdhbml6YXRpb25hbC11bml0cykgT0YgVGVsZXRleE9yZ2FuaXphdGlvbmFsVW5pdE5hbWUKVGVsZXRleE8=