IyAgIFRhcmdldDogICAgIGFudGxyUFBDDQojICAgU291cmNlczogICAgOjpzdXBwb3J0OnNldDpzZXQuYw0KIyAgICAgICAgICAgICAgIGFudGxyLmMNCiMgICAgICAgICAgICAgICBiaXRzLmMNCiMgICAgICAgICAgICAgICBidWlsZC5jDQojICAgICAgICAgICAgICAgZWdtYW4uYw0KIyAgICAgICAgICAgICAgIGVyci5jDQojICAgICAgICAgICAgICAgZmNhY2hlLmMNCiMgICAgICAgICAgICAgICBmc2V0Mi5jDQojICAgICAgICAgICAgICAgZnNldC5jDQojICAgICAgICAgICAgICAgZ2VuLmMNCiMgICAgICAgICAgICAgICBnbG9iYWxzLmMNCiMgICAgICAgICAgICAgICBoYXNoLmMNCiMgICAgICAgICAgICAgICBsZXguYw0KIyAgICAgICAgICAgICAgIG1haW4uYw0KIyAgICAgICAgICAgICAgIG1pc2MuYw0KIyAgICAgICAgICAgICAgIG1yaG9pc3QuYw0KIyAgICAgICAgICAgICAgIHByZWQuYw0KIyAgICAgICAgICAgICAgIHNjYW4uYw0KIyAgIENyZWF0ZWQ6ICAgIFN1bmRheSwgTWF5IDE3LCAxOTk4IDEwOjI0OjUzIFBNDQojCUF1dGhvcjoJCUtlbmppIFRhbmFrYQ0KTUFLRUZJTEUgICAgID0gYW50bHJQUEMubWFrZQ0KpU1vbmRvQnVpbGSlID0ge01BS0VGSUxFfSAgIyBNYWtlIGJsYW5rIHRvIGF2b2lkIHJlYnVpbGRzIHdoZW4gbWFrZWZpbGUgaXMgbW9kaWZpZWQNCkluY2x1ZGVzICAgICA9ILYNCgkJLWkgIjo6aDoiILYNCgkJLWkgIjo6c3VwcG9ydDpzZXQ6Ig0KU3ltpVBQQyAgICAgID0gDQpPYmpEaXKlUFBDICAgPSA6T2JqOg0KUFBDQ09wdGlvbnMgID0ge0luY2x1ZGVzfSB7U3ltpVBQQ30gLXcgb2ZmIC1kIE1QVyAtZCBfX1NURENfXz0xIC1kIFVTRVJfWlpTWU4NCk9iamVjdHOlUFBDICA9ILYNCgkJIntPYmpEaXKlUFBDfXNldC5jLngiILYNCgkJIntPYmpEaXKlUFBDfWFudGxyLmMueCIgtg0KCQkie09iakRpcqVQUEN9Yml0cy5jLngiILYNCgkJIntPYmpEaXKlUFBDfWJ1aWxkLmMueCIgtg0KCQkie09iakRpcqVQUEN9ZWdtYW4uYy54IiC2DQoJCSJ7T2JqRGlypVBQQ31lcnIuYy54IiC2DQoJCSJ7T2JqRGlypVBQQ31mY2FjaGUuYy54IiC2DQoJCSJ7T2JqRGlypVBQQ31mc2V0Mi5jLngiILYNCgkJIntPYmpEaXKlUFBDfWZzZXQuYy54IiC2DQoJCSJ7T2JqRGlypVBQQ31nZW4uYy54IiC2DQoJCSJ7T2JqRGlypVBQQ31nbG9iYWxzLmMueCIgtg0KCQkie09iakRpcqVQUEN9aGFzaC5jLngiILYNCgkJIntPYmpEaXKlUFBDfWxleC5jLngiILYNCgkJIntPYmpEaXKlUFBDfW1haW4uYy54IiC2DQoJCSJ7T2JqRGlypVBQQ31taXNjLmMueCIgtg0KCQkie09iakRpcqVQUEN9bXJob2lzdC5jLngiILYNCgkJIntPYmpEaXKlUFBDfXByZWQuYy54IiC2DQoJCSJ7T2JqRGlypVBQQ31zY2FuLmMueCINCmFudGxyUFBDIMTEIHulTW9uZG9CdWlsZKV9IHtPYmplY3RzpVBQQ30NCglQUENMaW5rILYNCgkJLW8ge1Rhcmd9IHtTeW2lUFBDfSC2DQoJCXtPYmplY3RzpVBQQ30gtg0KCQktdCAnTVBTVCcgtg0KCQktYyAnTVBTICcgtg0KCQkie1NoYXJlZExpYnJhcmllc31JbnRlcmZhY2VMaWIiILYNCgkJIntTaGFyZWRMaWJyYXJpZXN9U3RkQ0xpYiIgtg0KCQkjIntTaGFyZWRMaWJyYXJpZXN9TWF0aExpYiIgtg0KCQkie1BQQ0xpYnJhcmllc31TdGRDUnVudGltZS5vIiC2DQoJCSJ7UFBDTGlicmFyaWVzfVBQQ0NSdW50aW1lLm8iILYNCgkJIntQUENMaWJyYXJpZXN9UFBDVG9vbExpYnMubyINCiJ7T2JqRGlypVBQQ31zZXQuYy54IiDEIHulTW9uZG9CdWlsZKV9ICI6OnN1cHBvcnQ6c2V0OnNldC5jIg0KCXtQUENDfSAiOjpzdXBwb3J0OnNldDpzZXQuYyIgLW8ge1Rhcmd9IHtQUENDT3B0aW9uc30NCiJ7T2JqRGlypVBQQ31hbnRsci5jLngiIMQge6VNb25kb0J1aWxkpX0gYW50bHIuYw0KCXtQUENDfSBhbnRsci5jIC1vIHtUYXJnfSB7UFBDQ09wdGlvbnN9DQoie09iakRpcqVQUEN9Yml0cy5jLngiIMQge6VNb25kb0J1aWxkpX0gYml0cy5jDQoJe1BQQ0N9IGJpdHMuYyAtbyB7VGFyZ30ge1BQQ0NPcHRpb25zfQ0KIntPYmpEaXKlUFBDfWJ1aWxkLmMueCIgxCB7pU1vbmRvQnVpbGSlfSBidWlsZC5jDQoJe1BQQ0N9IGJ1aWxkLmMgLW8ge1Rhcmd9IHtQUENDT3B0aW9uc30NCiJ7T2JqRGlypVBQQ31lZ21hbi5jLngiIMQge6VNb25kb0J1aWxkpX0gZWdtYW4uYw0KCXtQUENDfSBlZ21hbi5jIC1vIHtUYXJnfSB7UFBDQ09wdGlvbnN9DQoie09iakRpcqVQUEN9ZXJyLmMueCIgxCB7pU1vbmRvQnVpbGSlfSBlcnIuYw0KCXtQUENDfSBlcnIuYyAtbyB7VGFyZ30ge1BQQ0NPcHRpb25zfQ0KIntPYmpEaXKlUFBDfWZjYWNoZS5jLngiIMQge6VNb25kb0J1aWxkpX0gZmNhY2hlLmMNCgl7UFBDQ30gZmNhY2hlLmMgLW8ge1Rhcmd9IHtQUENDT3B0aW9uc30NCiJ7T2JqRGlypVBQQ31mc2V0Mi5jLngiIMQge6VNb25kb0J1aWxkpX0gZnNldDIuYw0KCXtQUENDfSBmc2V0Mi5jIC1vIHtUYXJnfSB7UFBDQ09wdGlvbnN9DQoie09iakRpcqVQUEN9ZnNldC5jLngiIMQge6VNb25kb0J1aWxkpX0gZnNldC5jDQoJe1BQQ0N9IGZzZXQuYyAtbyB7VGFyZ30ge1BQQ0NPcHRpb25zfQ0KIntPYmpEaXKlUFBDfWdlbi5jLngiIMQge6VNb25kb0J1aWxkpX0gZ2VuLmMNCgl7UFBDQ30gZ2VuLmMgLW8ge1Rhcmd9IHtQUENDT3B0aW9uc30NCiJ7T2JqRGlypVBQQ31nbG9iYWxzLmMueCIgxCB7pU1vbmRvQnVpbGSlfSBnbG9iYWxzLmMNCgl7UFBDQ30gZ2xvYmFscy5jIC1vIHtUYXJnfSB7UFBDQ09wdGlvbnN9DQoie09iakRpcqVQUEN9aGFzaC5jLngiIMQge6VNb25kb0J1aWxkpX0gaGFzaC5jDQoJe1BQQ0N9IGhhc2guYyAtbyB7VGFyZ30ge1BQQ0NPcHRpb25zfQ0KIntPYmpEaXKlUFBDfWxleC5jLngiIMQge6VNb25kb0J1aWxkpX0gbGV4LmMNCgl7UFBDQ30gbGV4LmMgLW8ge1Rhcmd9IHtQUENDT3B0aW9uc30NCiJ7T2JqRGlypVBQQ31tYWluLmMueCIgxCB7pU1vbmRvQnVpbGSlfSBtYWluLmMNCgl7UFBDQ30gbWFpbi5jIC1vIHtUYXJnfSB7UFBDQ09wdGlvbnN9DQoie09iakRpcqVQUEN9bWlzYy5jLngiIMQge6VNb25kb0J1aWxkpX0gbWlzYy5jDQoJe1BQQ0N9IG1pc2MuYyAtbyB7VGFyZ30ge1BQQ0NPcHRpb25zfQ0KIntPYmpEaXKlUFBDfW1yaG9pc3QuYy54IiDEIHulTW9uZG9CdWlsZKV9IG1yaG9pc3QuYw0KCXtQUENDfSBtcmhvaXN0LmMgLW8ge1Rhcmd9IHtQUENDT3B0aW9uc30NCiJ7T2JqRGlypVBQQ31wcmVkLmMueCIgxCB7pU1vbmRvQnVpbGSlfSBwcmVkLmMNCgl7UFBDQ30gcHJlZC5jIC1vIHtUYXJnfSB7UFBDQ09wdGlvbnN9DQoie09iakRpcqVQUEN9c2Nhbi5jLngiIMQge6VNb25kb0J1aWxkpX0gc2Nhbi5jDQoJe1BQQ0N9IHNjYW4uYyAtbyB7VGFyZ30ge1BQQ0NPcHRpb25zfQ0KDQphbnRsclBQQyDExCBhbnRsci5yDQoJUmV6IGFudGxyLnIgLW8gYW50bHJQUEMgLWENCkluc3RhbGwgIMQgYW50bHJQUEMNCglEdXBsaWNhdGUgLXkgYW50bHJQUEMgIntNUFd9IlRvb2xzOmFudGxyDQo=