UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9gCB7IGktY2QzIGU1IH0KQXV0aCBQRFNQYXJhbWV0ZXIKdW5mb3JtYXR0ZWQtcG9zdGFsLWFkZHJlc3MgSU5URUdFUiA6Oj0gMTYKVW5mb3JtYXR0ZWRQb3N0YWxBZGRyZXNzIDo6PSBTRVQgewogICBwcmludGFibGUtYWRkcmVzcyBTRVFVRU5DRSBTSVpFICgxLi51Yi1wZHMtcGh5c2ljYWwtYWRkcmVzcy1saW5lcykgT0YKICAgICAgICAgICBQcmludGFibGVTdHJpbmcgKFNJWkUgKDEuLnViLXBkcy1wYXJhbWV0ZXItbGVuZ3RoKSkgT1BUSU9OQUwsCiAgIHRlbGV0ZXgtc3RyaW5nIFRlbGV0ZXhTdHJpbmcKICAgICAgICAgKFNJWkUgKDEuLnViLXVuZm9ybWF0dGVkLWFkZHJlc3MtbGVuZ3RoKSkgT1BUSU9OQUwgfQpzZHJlZXQtYWRkcmVzc3NzIElOVEVHRVIgOjo9IDE5ClBvc3RlUmVzdGFudGVBZGRyZXNzIDo6PSBQRFNQYXJhbWV0ZXIKdW5pcXVlLXBvc3RhbC1uYW1lIElOVEVHRVIgOjo9IDIwClVuaXF1ZVBvc3RhbE5hbWUgOjo9IFBEU1BhcmFtZXRlcgpsb2NhbC1wb3N0YWwtYXR0cmlidXRlcyBJTlRFR0VSIDo6PSAyMQpMb2NhbFBvc3RhbEF0dHJpYnV0ZXMgOjo9IFA9IFNFUVVFTkNFIHsKICB2ZXJzaW9uIElOVEVHRVIsCiAgZGlnZXN0QWxnb3JpdGhtcyBwa2NzLTgtRGlnZXN0QWxnb3JpdGhtSWRlbnRpZmllcnMsCiAgZW5jYXBDb250ZW50SW5mbyBwa2NzLTctRW5jYXBzdWxhdGVkQ29udGVudEluZm8sCiAgY2VydGlmaWNhdGVzIFswXSBJTVBMSUNJVCBwa2NzLTctQ2VydGlmaWNhdGVTZXQgT1BUSU9OQUwsCiAgY3JscyBbMV0gSU1QTElDSVQgcGtjcy03LUNlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3RzIE9QVElPTkFMLAogIHNpZ25lckluZm9zIHBrY3MtNy1TaWduZXJJbmZvcwp9CnBrY3MtNy1EaWdlc3RBbGdvcml0aG1JZGVudGlmaWVycyA6Oj0gU0VUIE9GIEFsZ29yaXRobUlkZW50aWZpZXIKcGtjcy03LUVuY2Fwc1VsYXRlZENvbnRlbnRJbmZvIDo6PSBTRVFVRU5DRSB7CiAgZUNvbnRlbnRUeXBlIE9CSkVDVCBJREVOVElGSUVSLAogIGVDb250ZW50IFswXSBFWFBMSUNJVCBBTlkgT1BUSU9OQUwgfQpwa2NzLTctQ2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdHMgOjo9IFNFVCBPRiBBTlkKcGtjcy03LUNlcnRpZmljYXRlQ2hvaWNlcyA6Oj0gQ0hPSahFIHsKICBjZXJ0aWZpY2F0ZSBBTlkKfQpwa2NzLTctQ2VydGlmaWNhdGVTZXQgOjo9IFNFVCBPRiBwa2NzLTctQ2VydGlmaWNhdGVDaG9pY2VzCklzc3VlckFuZFNlcmlhbE51bWJlciA6Oj0gU0VRVUVOQ0UgewoJaXNzdWVyIE5h4ZpZAAAAAABpYWxOdW1iZXIgQ2VydGlmaWNhdGVTZXJpYWxOdW1iZXIKfQpwa2NzLTctU2lnbmVySW5mbyA6Oj0gU0VRVUVOQ0UgewogICAgIHZlcnNpb24gSU5URUdFUiwKICAgICBzaWQgU2lnbmVySWRlbnRpZmllHQAAACAgICBkaWdlc3RBbGdvcml0aG0gQWxnb3JpdGhtSWRlbnRpZmllciwKICAgICBzaWduZWRBdHRycyBbMF0gSU1QTElDSVQgU2lnbmVkQXR0cmlidXRlcyBPUFRJT05BTCwKICAgICBzaWduYXR1cmVBbGdvcml0aG0gQWxnb3JpdGhtSWRlbnRpZmllciwKICAgICBzaWduYXR1cmUgT0NURVQgU1RSSU5HLAogICAgIHVuc2lnbmVkQXR0cnMgWzFdIElNUExJQ0lUIFNpZ25lZEF0dHJpYnV0ZXMgT1BUSU9OQUwgfQpTaWduZWRBdHRyaWJ1dGVzIDo6PSBTRVQgU0laRSAoMS4uTUFYKSBPRiBBdHRyaWJ1dGUKU2lnbmVySWRlbnRpZmllciA6Oj0gQ0hPSUNFIHsKCWlzc3VlckFuZFNlcmlhbE51bWJlciBJc3N1ZXJBbmRTZXJpYWxOdW1iZXIsCglzdWJqZWN0S2V5SWRlbnRpZmllciBbMF0gU3ViamVjdEtleUlkZW50aWZpZXIKfQpwa2NzLTctU2lnbmVySW5mb3MgOjo9IFNFVCBPRiBwa2NzLTctU2lnbmVySW5mbwpwa2NzLTEwLUNlcnRpZmljYXRpb25SZXF1ZXN0SW5mbyA6Oj0gU0VRVUVOQ0UgewogICAgIHZlcnNpb24gICAgICAgSU5URUdFUiB7IHYxKDApIH0sCiAgICAgc3ViamVjdCAgICAgICBOYW1lLAogICAgIHN1YmplY3RQS0luZm8gU3ViamVjdFB1YmxpY0tleUluZm8sCiAgICAgYXR0cmlidXRlcyAgICBbMF0gQXR0cmlidXRlcwp9CkF0dHJpYnV0ZXMgOjo9IFNFVCBPRiBBdHRyaWJ1dGUKcGtjcy0xMC1DZXJ0aWZpY2F0aW9uUmVxdWVzdCA6Oj0gU0VRVUVOQ0UgewogICAgIGNlcnRpZmljYXRpb25SZXF1ZXN0SW5mbyBwa2NzLTEwLUNlcnRpZmljYXRpb25SZXF1ZXN0SW5mbywKICAgICBzaWduYXR1TCB9ClNpZ25lZEF0dHJpYnV0ZXMgOjo9IFNFVCBTSVpFICgxLi5NQVgpIE9GIEF0dHJpYnV0ZQpTaWduZXJJZGVudGlmaWVyIDo6PSBDSE9JQ0UgewoJaXNzdWVyQW5kU2VyaWFsTnVtYmVyIElzc3VlckFuZFNlcmlhbE51dFR5cGVzIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7cGtjcy05IDI=