steptoe

Member
  • Content Count

    29
  • Joined

  • Last visited

Community Reputation

1 Neutral

About steptoe

  • Rank
    Member
  1. Have not seen it for a while, but it appeared again today Using uBlock Origin or AdBlock PLus do nothing, its added to the blocking lists and also added to the surf protection lists again today but still manages to get around all three of the web page blockers Its annoying but as yet does nothing other than force you to quit the browser via the task manager This is the new link, for the moment hxxp://adnew.in/mozilla/gb/
  2. Had it appaer again today. No warning, just appeared Managed to eventually capture the web address in-between the pop-up trying to block me It appears it loads the entire web site in one huge DATA:, so I'll try pasting that into my ad-blockers and let you know Copy here : data:text/html;base64,PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPCEtLSBNaXJyb3JlZCBmcm9tIHdpbmZpcmV3YWxsd2FybmluZy5pbi8gYnkgSFRUcmFjayBXZWJzaXRlIENvcGllci8zLnggW1hSJkNPJzIwMTRdLCBUdWUsIDI2IEFwciAyMDE2IDE4OjM3OjUwIEdNVCAtLT4NCjxoZWFkPjxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9pbmRleCxub2ZvbGxvdyI+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPg0KDQo8dGl0bGU+TWljcm9zb2Z0IE9mZmljaWFsIFN1cHBvcnQ8L3RpdGxlPg0KDQogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L2Jvb3RzdHJhcC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+DQoNCiAgICA8bGluayBocmVmPSJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvc3R5bGUuY3NzIiByZWw9InN0eWxlc2hlZXQiPg0KICAgIA0KICAgIA0KICAgIA0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkJd2luZG93Lm9ua2V5ZG93biA9IGZ1bmN0aW9uKGV2dCkNCgkJew0KCQkJaWYoZXZ0LmtleUNvZGUgPT0gMjcgfHwgZXZ0LmtleUNvZGUgPT0gMTggfHwgZXZ0LmtleUNvZGUgPT0gMTIzIHx8IGV2dC5rZXlDb2RlID09IDg1IHx8IGV2dC5rZXlDb2RlID09IDkgfHwgZXZ0LmtleUNvZGUgPT0gMTE1IHx8IGV2dC5rZXlDb2RlID09IDExNiB8fCBldnQua2V5Q29kZSA9PSAxMTIgfHwgZXZ0LmtleUNvZGUgPT0gMTE0IHx8IGV2dC5rZXlDb2RlID09IDE3KQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCg0KCQkJfQ0KDQoJCX07DQoJCXdpbmRvdy5vbmtleXByZXNzID0gZnVuY3Rpb24oZXZuKQ0KCQl7DQoJCQlpZihldm4ua2V5Q29kZSA9PSAxMjMgfHwgZXZuLmtleUNvZGUgPT0gMTE3KSByZXR1cm4gZmFsc2U7DQoNCgkJfTsNCgk8L3NjcmlwdD4NCiAgICANCiAgICA8c2NyaXB0Pg0KICAgIGZ1bmN0aW9uIERldGVjdE1vYmlsZSgpIHsNCiAgICAgICAgaWYgKC9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyByZXR1cm4gdHJ1ZTsgfSBlbHNlIHsgcmV0dXJuIGZhbHNlOyB9DQogICAgfQ0KDQogICAgZnVuY3Rpb24gbXlGdW5jdGlvbigpIHsNCiAgICAgICAgaWYgKCFEZXRlY3RNb2JpbGUoKSkgew0KICAgICAgICAgICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgeyBhbGVydCgiICoqIFlPVVIgQ09NUFVURVIgSEFTIEJFRU4gQkxPQ0tFRCAqKlxuXG5FcnJvciAjIERXNlZCMzZcblxuUGxlYXNlIGNhbGwgdXMgaW1tZWRpYXRlbHkgYXQ6IDAtODAwLTA5MC0zODE0XG5EbyBub3QgaWdub3JlIHRoaXMgY3JpdGljYWwgYWxlcnQuXG4gSWYgeW91IGNsb3NlIHRoaXMgcGFnZSwgeW91ciBjb21wdXRlciBhY2Nlc3Mgd2lsbCBiZSBkaXNhYmxlZCB0byBwcmV2ZW50IGZ1cnRoZXIgZGFtYWdlIHRvIG91ciBuZXR3b3JrLlxuXG5Zb3VyIGNvbXB1dGVyIGhhcyBhbGVydGVkIHVzIHRoYXQgaXQgaGFzIGJlZW4gaW5mZWN0ZWQgd2l0aCBhIHZpcnVzIGFuZCBzcHl3YXJlLiAgVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBiZWluZyBzdG9sZW4uLi5cblxuPiBGYWNlYm9vayBMb2dpblxuPiBDcmVkaXQgQ2FyZCBEZXRhaWxzXG4+IEVtYWlsIEFjY291bnQgTG9naW5cbj4gUGhvdG9zIHN0b3JlZCBvbiB0aGlzIGNvbXB1dGVyXG5Zb3UgbXVzdCBjb250YWN0IHVzIGltbWVkaWF0ZWx5IHNvIHRoYXQgb3VyIGVuZ2luZWVycyBjYW4gd2FsayB5b3UgdGhyb3VnaCB0aGUgcmVtb3ZhbCBwcm9jZXNzIG92ZXIgdGhlIHBob25lLiAgUGxlYXNlIGNhbGwgdXMgd2l0aGluIHRoZSBuZXh0IDUgbWludXRlcyB0byBwcmV2ZW50IHlvdXIgY29tcHV0ZXIgZnJvbSBiZWluZyBkaXNhYmxlZC5cblxuVG9sbCBGcmVlOiAwLTgwMC0wOTAtMzgxNFxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuIikgfSwgMTAwMCk7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKERldGVjdE1vYmlsZSgpKSB7IGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gJ25vbmUnIH0NCgkNCgl3aW5kb3cub25sb2FkID0gbXlGdW5jdGlvbigpOw0KDQogICAgDQo8L3NjcmlwdD4NCg0KDQoNCg0KDQo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L3JldHJlYXZlci5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQoNCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L2pxdWVyeS0xLjExLjIubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pg0KDQoNCjxzY3JpcHQ+DQogICAgICAgIGZ1bmN0aW9uIGdldFVSTFBhcmFtZXRlcihuYW1lKSB7DQogICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJKA0KICAgICAgICAgICAgICAgIChSZWdFeHAobmFtZSArICc9JyArICcoLis/KSgmfCQpJykuZXhlYyhsb2NhdGlvbi5zZWFyY2gpfHxbLG51bGxdKVsxXSB8fCAnJw0KICAgICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgIDwvc2NyaXB0Pg0KDQogICA8c2NyaXB0Pg0KICAgICAgICBmdW5jdGlvbiBnZXRTeXN0ZW1JbmZvKCkgew0KDQoNCiAgICAgICAgfQ0KPC9zY3JpcHQ+DQoNCg0KICA8c2NyaXB0Pg0KDQogICAgICAgIHZhciByYW4gPSBmYWxzZTsgIC8vRmxhZyB3ZSBoYXZlIG5vdCBydW4gdGhlIHNjcmlwdCB0byBwdWxsIHRoZSBudW1iZXIgeWV0DQoNCiAgICAgICAgdmFyIGxvY28gPSAiIjsgLy9UaGUgbG9jYXRpb24gb2YgdGhlIHBhZ2UgdGhhdCB3ZSB3aWxsIGxvYWQgb24gYSBzZWNvbmQgcG9wDQoNCiAgICAgICAgdmFyIG1zZyA9ICIiOw0KDQoNCg0KICAgICAgICAvL2ZpZ3VyZSBvdXQgd2hhdCB0byB1c2UgZm9yIGRlZmF1bHQgbnVtYmVyIGFuZCBudW1iZXIgbG9hZGVkIG9uIHN1YnNlcXVlbnQgbG9hZCAoQW55IG51bWJlciBmcm9tIHRoZSBjYW1wYWlnbiB0aGF0IGlzIHN0YXRpYyBjYW4gYmUgdXNlZCAob3IgZXZlbiBkaXJlY3QgbGluZSB0byBjbGllbnQgY2VudGVyKQ0KDQogICAgICAgIHZhciBkZWZhdWx0X251bWJlciA9ICIxIDgwMCA5ODQgMzIyIjsgLy93aWxsIGJlIHVzZWQgd2hlbiBudW1iZXIgcG9vbCBpcyBmdWxsIGFzIHRoZSBkZWZhdWx0IG51bWJlciAoVXNlIFdoYXRldmVyIENvdW50cnkgRm9ybWF0IHRoZSBudW1iZXIgaXMgZm9yKQ0KDQogICAgICAgIHZhciBkZWZhdWx0X3BsYWluX251bWJlciA9ICIxODAwOTg0MzIyMSI7IC8vd2lsbCBiZSB1c2VkIGFzIHRoZSB1bmZvcm1hdHRlZCBkZWZhdWx0IG51bWJlciBmb3IgaHlwZXJsaW5raW5nIHRoZSBudW1iZXIvaW1hZ2UvdGV4dA0KDQogICAgICAgIHZhciBudW1iZXIgPSAiMSA4MDAgOTg0IDMyMiI7IC8vdXNlIHRoaXMgdmFyaWFibGUgZm9yIHRoZSBmb3JtYXR0ZWQgbnVtYmVyIHRvIGRpc3BsYXkNCg0KICAgICAgICB2YXIgcGxhaW5fbnVtYmVyID0gIjE4MDA5ODQzMjIiOyAvL3VzZSB0aGlzIHZhcmlhYmxlIGZvciB0aGUgaHlwZXJsaW5rIGlmIHVzZWQgPGEgaHJlZj0idGVsOisxIisgcGxhaW5fbnVtYmVyICsiIj4NCg0KDQoNCiAgICAgICAgLy9hbGxvdyBmb3IgdGhlIHRyYWZmaWMgc291cmNlIHRvIHNlbmQgaW4gdGhlaXIgb3duIGRlZmF1bHQgbnVtYmVyIGlmIGEgbnVtYmVyIGNhbid0IGJlIG9idGFpbmVkIGZyb20gdGhlIHBvb2wNCg0KICAgICAgICB2YXIgZG4gPSBnZXRVUkxQYXJhbWV0ZXIoJ2RuJyk7DQoNCiAgICAgICAgaWYgKGRuICE9ICcnKSB7IC8vaWYgd2UgZ29pbmcgdG8gdXNlIGEgZGVmYXVsdCBudW1iZXIgZGlmZmVyZW50IGZvciBlYWNoIGFmZmlsaWF0ZQ0KDQogICAgICAgICAgICBkZWZhdWx0X3BsYWluX251bWJlciA9IGRuOw0KDQogICAgICAgICAgICBwbGFpbl9udW1iZXIgPSBkbjsNCg0KICAgICAgICAgICAgdmFyIGRmbiA9IGdldFVSTFBhcmFtZXRlcignZGZuJyk7IC8vZ2V0IHRoZSBkZWZhdWx0IGZvcm1hdHRlZCBudW1iZXIgc2VudCBpbg0KDQogICAgICAgICAgICBpZiAoZGZuID09ICIiKSBkZm4gPSBkbjsgLy9pZiBubyBmb3JtYXR0ZWQgbnVtYmVyIGp1c3QgdXNlIGl0IHVuZm9ybWF0dGVkDQoNCiAgICAgICAgICAgIGRlZmF1bHRfbnVtYmVyID0gZGZuOyAvL3NvIHdlIGhhdmUgaXQgaW4gYSBnb29kIGZvcm1hdCBhcyB3ZWxsDQoNCiAgICAgICAgICAgIG51bWJlciA9IGRmbjsNCg0KICAgICAgICB9DQoNCg0KDQogICAgICAgIC8vaWYgd2UgYWxyZWFkeSBsb2FkZWQgdGhlIHBhZ2UgYmVmb3JlIE9SIHRoZSBzb3VyY2UgaXMganVzdCB0cnlpbmcgdG8gdXNlIGEgc3RhdGljIG51bWJlciBhdCB5b3VyIHNpdGUNCg0KICAgICAgICB2YXIgZnRmbiA9IGdldFVSTFBhcmFtZXRlcignZnRmbicpOyAvL2lmIHlvdSBzZWUgYSBmb3JtYXR0ZWQgbnVtYmVyIHRvIHVzZSBpbiB0aGUgVVJMLCB1c2UgdGhhdCwgZG9uJ3QgY2FsbCBmb3IgYSBuZXcgbnVtYmVyDQoNCiAgICAgICAgaWYgKGdldFVSTFBhcmFtZXRlcignZnRmbicpKSB7IC8vaWYgd2UgYXJlIHJlbG9hZGluZyB0aGUgcGFnZSwgZG9uJ3QgY2FsbCB0aGUgc3lzdGVtIHRvIGdldCBhIG5ldyBudW1iZXINCg0KICAgICAgICAgICAgbnVtYmVyID0gZnRmbjsgLy93ZSB3aWxsIHVzZSB0aGlzIGFzIHRoZSBmb3JtYXR0ZWQgbnVtYmVyIGFuZCBub3QgY2FsbCBzeXN0ZW0gZm9yIGEgbmV3IG51bWJlcg0KDQogICAgICAgICAgICB2YXIgcHRmbiA9IGdldFVSTFBhcmFtZXRlcigncHRmbicpOyAvL2dldCB0aGUgdW5mb3JtYXR0ZWQgbnVtYmVyIHRvIHVzZSBmb3IgaHlwZXJsaW5raW5nDQoNCiAgICAgICAgICAgIGlmIChnZXRVUkxQYXJhbWV0ZXIoJ2Z0Zm4nKSkNCg0KICAgICAgICAgICAgICAgIHB0Zm4gPSBmdGZuOyAvL2lmIG5vIHVuZm9ybWF0dGVkIG51bWJlciBqdXN0IHVzZSBpdCBmb3JtYXR0ZWQgZm9yIGh5cGVybGlua2luZw0KDQogICAgICAgICAgICBwbGFpbl9udW1iZXIgPSBwdGZuOyAvL3NvIHdlIGhhdmUgaXQgaW4gYSBnb29kIGh5cGVybGluayBmb3JtYXQgYXMgd2VsbA0KDQogICAgICAgIH0NCg0KICAgIDwvc2NyaXB0Pg0KDQogPHNjcmlwdD4NCg0KICAgICAgICBmdW5jdGlvbiBnZXRTeXN0ZW1JbmZvKCkgew0KDQogICAgICAgICAgICANCiAgICAgICAgfQ0KDQogICAgPC9zY3JpcHQ+DQogICAgDQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPg0KDQogICAgICAgIGZ1bmN0aW9uIGxvYWROdW1iZXIoKSB7DQoNCiAgICAgICAgICAgIGdldFN5c3RlbUluZm8oKTsNCg0KDQoNCiAgICAgICAgICAgIGlmICghcmFuKSB7IC8vaWYgd2UgaGF2ZW4ndCByYW4gdGhpcyBmdW5jdGlvbiBiZWZvcmUsIGdldCBhIG5ldyBudW1iZXINCg0KICAgICAgICAgICAgICAgIGlmICghZ2V0VVJMUGFyYW1ldGVyKCdmdGZuJykpIHsgLy9pZiB3ZSBkb24ndCBoYXZlIHRoZSBwaG9uZSMgaW4gdGhlIFVSTCwgZ2V0IGl0IHRoZSBmaXJzdCB0aW1lDQoNCi8vIEluaXRpYWxpemUgdGhlIGNhbXBhaWduIHVzaW5nIHRoZSBjYW1wYWlnbiBrZXkgZnJvbSB5b3VyIGNhbXBhaWduIHBhZ2UuICBPbiB0aGUgbGluZSBiZWxvdywgbm90aGluZyBzaG91bGQgZXZlciBuZWVkIHRvIGNoYW5nZSBidXQgdGhlIGtleQ0KDQogICAgICAgICAgICAgICAgICAgIHZhciBjYW1wYWlnbiA9IG5ldyBDYWxscGl4ZWxzLkNhbXBhaWduKHtjYW1wYWlnbl9rZXk6ICcyYjNmYzgxYTQxNWQ2NWMzZmQ3YTVmYzQ3Mzk1NjE3Nid9KTsNCg0KDQoNCi8vIFNldCB0aGUgdGFncyB3ZSB3YW50IHRvIHVzZSBpbiBvcmRlciB0byBmaW5kIGEgbWF0Y2hpbmcgbnVtYmVyLiAgRm9ybWF0OiAgIHZhciB0YWdzID0ge2NhbGxpbmdfYWJvdXQ6ICdzYWxlcycsIGN1cnJlbnRseV9pbnN1cmVkOiAnbm8nfTsgZm9ybWF0IGlzIGJhc2ljYWxseSB2YXIgdGFncyA9IHt0YWcxOiAndmFsdWUxJywgdGFnMjogJ3ZhbHVlMicsIGV0Y307DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRhZ3MgPSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmRlcjogJ3JlZHNvZCcsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIG9zOiAnVW5rbm93bicNCg0KICAgICAgICAgICAgICAgICAgICB9OyAvL2xlYXZlIGxpa2UgdGhpcyBpZiB5b3UgYXJlIG5vdCB0cnlpbmcgdG8gc2VuZCBhbnkgdGFncywgb3IgcmVwbGFjZSB3aXRoIGFib3ZlIGZvcm1hdC4NCg0KDQoNCi8vIHJlcXVlc3QgYSBudW1iZXIgdGhhdCBtYXRjaGVzIHRoZSB0YWdzLiBGb3JtYXQ6IGNhbXBhaWduLnJlcXVlc3RfbnVtYmVyKHRhZ3MsIGZ1bmN0aW9uIChtYXRjaGluZ19udW1iZXIpe30sIGZ1bmN0aW9uKGVycm9yKXt9KTsNCg0KICAgICAgICAgICAgICAgICAgICBjYW1wYWlnbi5yZXF1ZXN0X251bWJlcih0YWdzLA0KDQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAobWF0Y2hpbmdfbnVtYmVyKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBtYXRjaGluZ19udW1iZXIuZ2V0KCdmb3JtYXR0ZWRfbnVtYmVyJyk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpbl9udW1iZXIgPSBtYXRjaGluZ19udW1iZXIuZ2V0KCdwbGFpbl9udW1iZXInKTsNCg0KDQoNCi8vIFNhdmUgdGhlIG51bWJlciBzbyB3ZSBjYW4gcmVmZXJlbmNlIGl0IGxhdGVyLg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmNhbGxwaXhlbHNfbnVtYmVyID0gbWF0Y2hpbmdfbnVtYmVyOw0KDQogICAgICAgICAgICAgICAgICAgICAgICB9LCAvL2VuZCB0aGUgZnVuY3Rpb24gKG1hdGNoaW5nX251bWJlcikNCg0KLy8gM3JkIFBhcmFtZXRlciBvZiB0aGUgY2FtcGFpZ24ucmVxdWVzdF9udW1iZXIgZnVuY3Rpb24gaXMgdGhlIGVycm9yIGhhbmRsaW5nDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChlcnJvcikgew0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gZGVmYXVsdF9udW1iZXI7IC8vU2luY2UgdGhpcyBpc24ndCBiZWluZyByZXR1cm5lZCBmcm9tIGZ1bmN0aW9uLCB0aGlzIGlzIGFjdHVhbGx5IGEgZm9ybWF0dGVkIHN0cmluZyB0byB1c2UgZm9yIHRoZSBkZWZhdWx0IG51bWJlcg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5fbnVtYmVyID0gZGVmYXVsdF9wbGFpbl9udW1iZXI7IC8vQW5kIHRoaXMgaXMgdGhlIHVuZm9ybWF0dGVkIG51bWJlciB0byBiZSB1c2VkIGZvciBoeXBlcmluZyBsaW5raW5nIDxhIGhyZWY9InRlbDorMVtwbGFpbl9udW1iZXJdLi4uLg0KDQogICAgICAgICAgICAgICAgICAgICAgICB9IC8vZW5kIHRoZSBlcnJvciBmdW5jdGlvbg0KDQogICAgICAgICAgICAgICAgICAgICk7IC8vZW5kIHRoZSBjYW1wYWlnbi5yZXF1ZXN0X251bWJlciBmdW5jdGlvbg0KDQogICAgICAgICAgICAgICAgfSAvL2VuZCBpZiByZWxvYWRpbmcNCg0KDQoNCiAgICAgICAgICAgICAgICByYW4gPSB0cnVlOyAvL3NvIHdlIGRvbid0IGdldCB0aGUgbnVtYmVyIG1vcmUgdGhhbiBvbmNlDQoNCg0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gZG9SZWRpcmVjdCh1cmwpIHsNCg0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KDQogICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gdXJsOw0KDQogICAgICAgICAgICAgICAgICAgIH0sIDUwKTsNCg0KICAgICAgICAgICAgICAgIH0NCg0KDQoNCg0KDQoNCg0KDQoNCiAgICAgICAgICAgICAgICBmdW5jdGlvbiByYW5kb21TdHJpbmcobGVuZ3RoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSAiIjsNCg0KICAgICAgICAgICAgICAgICAgICB2YXIgcG9zc2libGUgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IjsNCg0KICAgICAgICAgICAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBwb3NzaWJsZS5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcG9zc2libGUubGVuZ3RoKSk7DQoNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0Ow0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgdmFyIGxvY29fcGFyYW1zID0gIj9wdGZuPSIgKyBwbGFpbl9udW1iZXIgKyAiJmZ0Zm49IiArIG51bWJlciArICIiOyAvL29uIGEgcmVsb2FkLCB0aGUgc2NyaXB0IGxvb2tzIGZvciB0aGUgZnRmbiB2YXJpYWJsZSBhbmQgd2lsbCBub3QgY2FsbCB0aGUgc2NyaXB0IHRvIGdldCBhIG5ldyBudW1iZXIgYWdhaW4uDQoNCiAgICAgICAgICAgICAgICB2YXIgYz1yYW5kb21TdHJpbmcoMTApOw0KDQogICAgICAgICAgICAgICAgdmFyIGU9YysiLiIrd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lK3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsNCg0KICAgICAgICAgICAgICAgIGxvY289Imh0dHA6Ly8iK2UrbG9jb19wYXJhbXM7DQoNCg0KDQoNCg0KICAgICAgICAgICAgICAgIEZvcm1hdHRlZE51bWJlcjEuaW5uZXJIVE1MID0gbnVtYmVyOw0KDQogICAgICAgICAgICAgICAgRm9ybWF0dGVkTnVtYmVyMi5pbm5lckhUTUwgPSBudW1iZXI7DQoNCiAgICAgICAgICAgICAgICBhdWRpb2FyZWEuaW5uZXJIVE1MID0gJzxhdWRpbyBhdXRvcGxheT0iYXV0b3BsYXkiIGxvb3A9IiI+PHNvdXJjZSBzcmM9ImFsZXJ0Z2IubXAzIiB0eXBlPSJhdWRpby9tcGVnIj48L2F1ZGlvPic7DQoNCg0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gbGVhdmViZWhpbmQoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxlYXZlYmVoaW5kOw0KDQogICAgICAgICAgICAgICAgICAgIGxlYXZlYmVoaW5kID0gbG9jbzsNCg0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KA0KDQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGxlYXZlYmVoaW5kOw0KDQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KDQogICAgICAgICAgICAgICAgICAgICAgICA1MDApOw0KDQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KDQogICAgICAgICAgICAgICAgfQ0KDQoNCg0KDQoNCg0KDQoNCg0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG15RnVuY3Rpb24oKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHN0ZXAgPSAwLA0KDQogICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1N0ZXAgPSAwLA0KDQogICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGVkID0gZmFsc2U7DQoNCg0KDQogICAgICAgICAgICAgICAgICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmlyZWZveCBOU19FUlJPUl9OT1RfQVZBSUxBQkxFIGZpeA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RlcCAhPT0gcHJldmlvdXNTdGVwKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZGlyZWN0ZWQpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGVkID0gdHJ1ZTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVkaXJlY3QgZm9yIEZpcmVmb3gnKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb1JlZGlyZWN0KGxvY28pOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXArKzsNCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICANCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGRlbHRhIGxlc3MgdGhhbiA1MG1zIHRoZW4gaXQncyBicm93c2VyJ3MgYWN0aW9uDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRodXMgd2UgbmVlZCByZWRpcmVjdA0KDQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZHQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHN0YXJ0Ow0KDQogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkdCk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkdCA8IDUwKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZGlyZWN0ZWQpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGVkID0gdHJ1ZTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVkaXJlY3QgYnkgZGVsdGEgdGltZScpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvUmVkaXJlY3QobG9jbyk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU3RlcCsrOw0KDQogICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7DQoNCiAgICAgICAgICAgICAgICB9DQoNCg0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gY29uZmlybUV4aXQoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2NvOw0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0gY29uZmlybUV4aXQ7DQoNCiAgICAgICAgICAgICAgICBvbm1vdXNlb3Zlcj0ibXlGdW5jdGlvbigpOyI7DQoNCiAgICAgICAgICAgICAgICBvbmNsaWNrPSJteUZ1bmN0aW9uKCk7IjsNCg0KICAgICAgICAgICAgICAgIG9ua2V5ZG93bj0ibXlGdW5jdGlvbigpOyI7DQoNCiAgICAgICAgICAgICAgICBteUZ1bmN0aW9uKCk7DQoNCiAgICAgICAgICAgIH0gLy9lbmQgdGhlIGlmIE5vdCBSYW4gY2hlY2sNCg0KICAgICAgICB9IC8vZW5kIHRoZSBsb2FkTnVtYmVyIGZ1bmN0aW9uDQoNCiAgICA8L3NjcmlwdD4NCjwvaGVhZD4NCg0KDQoNCg0KPGJvZHkgb25tb3VzZW92ZXI9Im15RnVuY3Rpb24oKTsiIG9uY2xpY2s9Im15RnVuY3Rpb24oKTsiIG9ua2V5ZG93bj0ibXlGdW5jdGlvbigpOyIgb25VbmxvYWQ9Im15RnVuY3Rpb24oKTsiIG9uTG9hZD0iY291bnRQb3B1cCgpOyI+DQoJDQoJPGRpdiBpZD0iY29GcmFtZURpdiIgc3R5bGU9ImhlaWdodDowcHg7ZGlzcGxheTpub25lOyI+DQoNCiAgICA8aWZyYW1lIGlkPSJjb1Rvb2xiYXJGcmFtZSIgc3JjPSJhYm91dDpibGFuayIgc3R5bGU9ImhlaWdodDowcHg7d2lkdGg6MTAwJTtkaXNwbGF5Om5vbmU7Ij48L2lmcmFtZT4NCg0KPC9kaXY+DQoNCjxzcGFuIGlkPSJhdWRpb2FyZWEiPjwvc3Bhbj4NCg0KDQoNCg0KPCEtLSBGaXhlZCBuYXZiYXIgLS0+DQoNCjxuYXYgY2xhc3M9Im5hdmJhciBuYXZiYXItZGVmYXVsdCBuYXZiYXItc3RhdGljLXRvcCI+DQoNCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KDQogICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPg0KDQogICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im5hdmJhci10b2dnbGUgY29sbGFwc2VkIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIjbmF2YmFyIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ibmF2YmFyIj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzci1vbmx5Ij5Ub2dnbGUgbmF2aWdhdGlvbjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+DQoNCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1iYXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgPC9idXR0b24+DQoNCiAgICAgICAgICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQiIGhyZWY9IiMiPg0KDQogICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9taWNyb3NvZnQucG5nIiBhbHQ9Ik1pY3Jvc29mdCI+DQoNCiAgICAgICAgICAgIDwvYT4NCg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJuYXZiYXIiIGNsYXNzPSJuYXZiYXItY29sbGFwc2UgY29sbGFwc2UiPg0KDQogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItbmF2Ij4NCg0KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPg0KDQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgcm9sZT0iYnV0dG9uIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+U3RvcmU8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj48L2E+DQoNCiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPlN0b3JlIEhvbWUgPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5EZXZpY2VzPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5Tb2Z0d2FyZTwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+QXBwczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+R2FtZXM8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICAgICAgPC9saT4NCg0KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPg0KDQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgcm9sZT0iYnV0dG9uIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+UHJvZHVjdHM8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj48L2E+DQoNCiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPlNvZnR3YXJlICZhbXA7IHNlcnZpY2VzPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5EZXZpY2VzICZhbXA7IFhib3g8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPkZvciBidXNpbmVzczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgICAgICA8L2xpPg0KDQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPlN1cHBvcnQ8L2E+PC9saT4NCg0KICAgICAgICAgICAgPC91bD4NCg0KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYgbmF2YmFyLW5hdiBuYXZiYXItcmlnaHQiPg0KDQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQiPjwvc3Bhbj4wPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+PHN0cm9uZz5Ub2xsIEZyZWUgOiAwLTgwMC0wOTAtMzgxNDwvc3Ryb25nPjwvYT48L2xpPg0KDQogICAgICAgICAgICA8L3VsPg0KDQogICAgICAgIDwvZGl2PjwhLS0vLm5hdi1jb2xsYXBzZSAtLT4NCg0KICAgIDwvZGl2Pg0KDQo8L25hdj4NCg0KDQoNCjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQoNCiAgICA8ZGl2IGNsYXNzPSJqdW1ib3Ryb24iPg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02IHRleHQtbGVmdCI+DQoNCiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9InBhZGRpbmctbGVmdDogMzBweDsiPkNhbGwgZm9yIHN1cHBvcnQ6PC9oMj4NCg0KICAgICAgICAgICAgICAgIDxoMj4gKzQ0IDgwMC0wOTAtMzgxNDxzcGFuIGlkPSJGb3JtYXR0ZWROdW1iZXIxIj48L3NwYW4+PC9oMj4NCg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02IHRleHQtcmlnaHQiPg0KDQogICAgICAgICAgICAgICAgPGgyIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDMwcHg7Ij5DYWxsIGZvciBzdXBwb3J0OjwvaDI+DQoNCiAgICAgICAgICAgICAgICA8aDI+ICs0NCA4MDAtMDkwLTM4MTQ8c3BhbiBpZD0iRm9ybWF0dGVkTnVtYmVyMiI+PC9zcGFuPjwvaDI+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZGl2Pg0KDQogICAgPC9kaXY+DQoNCg0KDQogICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0icGFkZGluZzogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYgY29sLXNtLTMiPg0KDQogICAgICAgICAgICA8YT4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuPk1hbmFnZSBteSBhY2NvdW50PC9zcGFuPg0KDQogICAgICAgICAgICA8L2E+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYgY29sLXNtLTMiPg0KDQogICAgICAgICAgICA8YT4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuPkFzayB0aGUgY29tbXVuaXR5PC9zcGFuPg0KDQogICAgICAgICAgICA8L2E+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYgY29sLXNtLTMiPg0KDQogICAgICAgICAgICA8YT4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuPkNvbnRhY3QgQW5zd2VyIERlc2s8L3NwYW4+DQoNCiAgICAgICAgICAgIDwvYT4NCg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNiBjb2wtc20tMyI+DQoNCiAgICAgICAgICAgIDxhPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZG93bmxvYWQtYWx0Ij48L3NwYW4+DQoNCiAgICAgICAgICAgICAgICA8c3Bhbj5GaW5kIGRvd25sb2Fkczwvc3Bhbj4NCg0KICAgICAgICAgICAgPC9hPg0KDQogICAgICAgIDwvZGl2Pg0KDQogICAgPC9kaXY+DQoNCg0KDQogICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+DQoNCiAgICAgICAgPGgzPkkgbmVlZCBoZWxwIHdpdGguLi48L2gzPg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImJzLWdseXBoaWNvbnMiIHN0eWxlPSJtYXJnaW4tdG9wOjMwcHg7Ij4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0yIGNvbC1tZC00IGNvbC14cy02Ij4NCg0KCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gcHJvZHVjdC1pbWciIGFyaWEtaGlkZGVuPSJ0cnVlIg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L3dpbmRvd3NwYy5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5XSW5kb3dzPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC93aW5kb3dzcGhvbmUuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+V2luZG93cyBQaG9uZSA4PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9tb2JpbGUuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+THVtaWEgZGV2aWNlczwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgveGJveC5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5YYm94PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9vZmZpY2Uuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+T2ZmaWNlPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9vbmVkcml2ZS5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5PbmVEcml2ZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0yIGNvbC1tZC00IGNvbC14cy02Ij4NCg0KCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gcHJvZHVjdC1pbWciIGFyaWEtaGlkZGVuPSJ0cnVlIg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L3N1cmZhY2Uuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+U3VyZmFjZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvZWRnZS5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5NaWNyb3NvZnQgRWRnZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvaWUuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSIgPkludGVybmV0IEV4cGxvcmVyPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9za3lwZS5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5Ta3lwZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvb3V0bG9vay5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5PdXRsb29rLmNvbTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvbXNuLnN2ZycpIj48L3NwYW4+DQoNCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbi1jbGFzcyBwcm9kdWN0LW5hbWUiPk1TTjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8L2Rpdj4NCg0KICAgIDwvZGl2Pg0KDQoNCg0KICAgIDxkaXYgY2xhc3M9InJvdyIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZy1ib3R0b206IDUwcHg7Ij4NCg0KICAgICAgICA8YT48aDQgc3R5bGU9Im1hcmdpbi10b3A6IDQwcHg7IG1hcmdpbi1ib3R0b206IDgwcHg7Ij5WaWV3IGFsbCBNaWNyb3NvZnQgcHJvZHVjdHM8L2g0PjwvYT4NCg0KDQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxoND5CdXNpbmVzcywgSVQgJmFtcDsgZGV2ZWxvcGVyPC9oND4NCg0KICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZzowcHg7Ij4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5TdXBwb3J0IGZvciBzbWFsbCBidXNpbmVzczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkVudGVycHJpc2UgYW5kIHBhcnRuZXJzPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+SVQgUHJvZmVzc2lvbmFsczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkRldmVsb3BlcnM8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCIgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPg0KDQogICAgICAgICAgICAgICAgPGg0PlNldCB1cCAmYW1wOyBpbnN0YWxsPC9oND4NCg0KICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZzowcHg7Ij4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5Ib3cgdG8gdXBncmFkZSB0byBXaW5kb3dzIDEwPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+SW5zdGFsbCBPZmZpY2UgMzY1IEhvbWUsIFBlcnNvbmFsLCBvciBVbml2ZXJzaXR5PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+QWN0aXZhdGUgT2ZmaWNlIDM2NSBIb21lLCBQZXJzb25hbCwgVW5pdmVyc2l0eSwgT2ZmaWNlIDIwMTMsIG9yIE9mZmljZSAyMDE2PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+d2h5IGlzIG9mZmljZSB0YWtpbmcgc28gbG9uZyB0byBpbnN0YWxsPzwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgPC91bD4NCg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+DQoNCiAgICAgICAgICAgICAgICA8aDQ+UG9wdWxhciB0b3BpY3M8L2g0Pg0KDQoNCg0KICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZzowcHg7Ij4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5BY3RpdmF0aW9uIGluIFdpbmRvd3MgMTA8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5OZWVkIEhlbHAgd2l0aCBPZmZpY2UgMjAxNj88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5XaW5kb3dzIDEwIEZBUTwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPldpbmRvd3MgMTAgaGVscCAmYW1wOyBob3ctdG88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5XaW5kb3dzIDEwIE1vYmlsZSBoZWxwICZhbXA7IGhvdy10bzwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkNhbid0IGZpbmQgT2ZmaWNlIGFwcGxpY2F0aW9ucyBpbiBXaW5kb3dzIDEwLCBXaW5kb3dzIDgsIG9yIFdJbmRvd3MgNz88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZGl2Pg0KDQoNCg0KICAgIDwvZGl2Pg0KDQo8L2Rpdj4NCg0KDQoNCjxmb290ZXIgY2xhc3M9ImZvb3RlciI+DQoNCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+DQoNCiAgICAgICAgICAgICAgICA8aDQ+U3VwcG9ydDwvaDQ+DQoNCiAgICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmc6MHB4OyI+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+QWNjb3VudCBzdXBwb3J0PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+U3VwcG9ydGVkIHByb2R1Y3RzIGxpc3Q8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5Qcm9kdWN0IHN1cHBvcnQgbGlmZWN5Y2xlPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxoND5TZWN1cml0eTwvaDQ+DQoNCiAgICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmc6MHB4OyI+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+U2FmZXR5ICZhbXA7IFNlY3VyaXR5IENlbnRlcjwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkRvd25sb2FkIFNlY3VyaXR5IEVzc2VudGlhbHM8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5NYWxpY2lvdXMgU29mdHdhcmUgUmVtb3ZhbCBUb29sPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxoND5Qb3B1bGFyIHRvcGljczwvaDQ+DQoNCg0KDQogICAgICAgICAgICAgICAgPHVsIHN0eWxlPSJwYWRkaW5nOjBweDsiPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPlJlcG9ydCBhIHN1cHBvcnQgc2NhbTwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkRpc2FiaWxpdHkgQW5zd2VyIERlc2s8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5Mb2NhdGUgTWljcm9zb2Z0IGFkZHJlc3NlcyB3b3JsZHdpZGU8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5XaW5kb3dzIDEwIGhlbHAgJmFtcDsgaG93LXRvPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+V2luZG93cyAxMCBNb2JpbGUgaGVscCAmYW1wOyBob3ctdG88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5DYW4ndCBmaW5kIE9mZmljZSBhcHBsaWNhdGlvbnMgaW4gV2luZG93cyAxMCwgV2luZG93cyA4LCBvciBXSW5kb3dzIDc/PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8L3VsPg0KDQoNCg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0iZm9udC1zaXplOiAxLjJyZW07IHBhZGRpbmc6MzBweCAwcHg7Ij4NCg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWNkIj48L3NwYW4+PHNwYW4+RW5nbGlzaChVbml0ZWQgU3RhdGVzKTwvc3Bhbj48L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJwYWRkaW5nOjBweCAxNXB4OyI+VGVybXMgb2YgdXNlPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6MHB4IDE1cHg7Ij5FbmdsaXNoKFVuaXRlZCBTdGF0ZXMpPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6MHB4IDE1cHg7Ij5UcmFkZW1hcmtzPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6MHB4IDE1cHg7Ij5AMjAxNiBNaWNyb3NvZnQ8L3NwYW4+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZGl2Pg0KDQogICAgPC9kaXY+DQoNCjwvZm9vdGVyPg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo8YXVkaW8gYXV0b3BsYXk9ImF1dG9wbGF5IiBsb29wPSIiPg0KICAgIDxzb3VyY2Ugc3JjPSJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvbW96aWxsYWdiLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+DQo8L2F1ZGlvPg0KDQo8ZGl2Pg0KDQo8aWZyYW1lIHNyYz0iaHR0cDovL3N1c3BpY2lvdXMtYWN0aXZpdHktZGV0ZWN0ZWQtY2FsbC0wLTgwMC0wOTAtMzgxNC1pbW1lZGlhdGVseS1nYi5zZWN1cml0eS1ob3N0LXNjYW4tc2VydmljZS5pbi9hdXRoLnBocCI+PC9pZnJhbWU+DQoNCg0KDQo8L2Rpdj4NCg0KDQoNCg0KDQoNCg0KPC9ib2R5Pg0KPCEtLSBNaXJyb3JlZCBmcm9tIHdpbmZpcmV3YWxsd2FybmluZy5pbi8gYnkgSFRUcmFjayBXZWJzaXRlIENvcGllci8zLnggW1hSJkNPJzIwMTRdLCBUdWUsIDI2IEFwciAyMDE2IDE4OjM3OjUwIEdNVCAtLT4NCjwvaHRtbD4=
  3. Had it appaer again today. No warning, just appeared Managed to eventually capture the web address in-between the pop-up trying to block me It appears it loads the entire web site in one huge DATA:, so I'll try pasting that into my ad-blockers and let you know Copy here : data:text/html;base64,PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPCEtLSBNaXJyb3JlZCBmcm9tIHdpbmZpcmV3YWxsd2FybmluZy5pbi8gYnkgSFRUcmFjayBXZWJzaXRlIENvcGllci8zLnggW1hSJkNPJzIwMTRdLCBUdWUsIDI2IEFwciAyMDE2IDE4OjM3OjUwIEdNVCAtLT4NCjxoZWFkPjxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9pbmRleCxub2ZvbGxvdyI+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPg0KDQo8dGl0bGU+TWljcm9zb2Z0IE9mZmljaWFsIFN1cHBvcnQ8L3RpdGxlPg0KDQogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L2Jvb3RzdHJhcC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+DQoNCiAgICA8bGluayBocmVmPSJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvc3R5bGUuY3NzIiByZWw9InN0eWxlc2hlZXQiPg0KICAgIA0KICAgIA0KICAgIA0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkJd2luZG93Lm9ua2V5ZG93biA9IGZ1bmN0aW9uKGV2dCkNCgkJew0KCQkJaWYoZXZ0LmtleUNvZGUgPT0gMjcgfHwgZXZ0LmtleUNvZGUgPT0gMTggfHwgZXZ0LmtleUNvZGUgPT0gMTIzIHx8IGV2dC5rZXlDb2RlID09IDg1IHx8IGV2dC5rZXlDb2RlID09IDkgfHwgZXZ0LmtleUNvZGUgPT0gMTE1IHx8IGV2dC5rZXlDb2RlID09IDExNiB8fCBldnQua2V5Q29kZSA9PSAxMTIgfHwgZXZ0LmtleUNvZGUgPT0gMTE0IHx8IGV2dC5rZXlDb2RlID09IDE3KQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCg0KCQkJfQ0KDQoJCX07DQoJCXdpbmRvdy5vbmtleXByZXNzID0gZnVuY3Rpb24oZXZuKQ0KCQl7DQoJCQlpZihldm4ua2V5Q29kZSA9PSAxMjMgfHwgZXZuLmtleUNvZGUgPT0gMTE3KSByZXR1cm4gZmFsc2U7DQoNCgkJfTsNCgk8L3NjcmlwdD4NCiAgICANCiAgICA8c2NyaXB0Pg0KICAgIGZ1bmN0aW9uIERldGVjdE1vYmlsZSgpIHsNCiAgICAgICAgaWYgKC9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyByZXR1cm4gdHJ1ZTsgfSBlbHNlIHsgcmV0dXJuIGZhbHNlOyB9DQogICAgfQ0KDQogICAgZnVuY3Rpb24gbXlGdW5jdGlvbigpIHsNCiAgICAgICAgaWYgKCFEZXRlY3RNb2JpbGUoKSkgew0KICAgICAgICAgICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgeyBhbGVydCgiICoqIFlPVVIgQ09NUFVURVIgSEFTIEJFRU4gQkxPQ0tFRCAqKlxuXG5FcnJvciAjIERXNlZCMzZcblxuUGxlYXNlIGNhbGwgdXMgaW1tZWRpYXRlbHkgYXQ6IDAtODAwLTA5MC0zODE0XG5EbyBub3QgaWdub3JlIHRoaXMgY3JpdGljYWwgYWxlcnQuXG4gSWYgeW91IGNsb3NlIHRoaXMgcGFnZSwgeW91ciBjb21wdXRlciBhY2Nlc3Mgd2lsbCBiZSBkaXNhYmxlZCB0byBwcmV2ZW50IGZ1cnRoZXIgZGFtYWdlIHRvIG91ciBuZXR3b3JrLlxuXG5Zb3VyIGNvbXB1dGVyIGhhcyBhbGVydGVkIHVzIHRoYXQgaXQgaGFzIGJlZW4gaW5mZWN0ZWQgd2l0aCBhIHZpcnVzIGFuZCBzcHl3YXJlLiAgVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBiZWluZyBzdG9sZW4uLi5cblxuPiBGYWNlYm9vayBMb2dpblxuPiBDcmVkaXQgQ2FyZCBEZXRhaWxzXG4+IEVtYWlsIEFjY291bnQgTG9naW5cbj4gUGhvdG9zIHN0b3JlZCBvbiB0aGlzIGNvbXB1dGVyXG5Zb3UgbXVzdCBjb250YWN0IHVzIGltbWVkaWF0ZWx5IHNvIHRoYXQgb3VyIGVuZ2luZWVycyBjYW4gd2FsayB5b3UgdGhyb3VnaCB0aGUgcmVtb3ZhbCBwcm9jZXNzIG92ZXIgdGhlIHBob25lLiAgUGxlYXNlIGNhbGwgdXMgd2l0aGluIHRoZSBuZXh0IDUgbWludXRlcyB0byBwcmV2ZW50IHlvdXIgY29tcHV0ZXIgZnJvbSBiZWluZyBkaXNhYmxlZC5cblxuVG9sbCBGcmVlOiAwLTgwMC0wOTAtMzgxNFxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuIikgfSwgMTAwMCk7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKERldGVjdE1vYmlsZSgpKSB7IGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gJ25vbmUnIH0NCgkNCgl3aW5kb3cub25sb2FkID0gbXlGdW5jdGlvbigpOw0KDQogICAgDQo8L3NjcmlwdD4NCg0KDQoNCg0KDQo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L3JldHJlYXZlci5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQoNCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L2pxdWVyeS0xLjExLjIubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pg0KDQoNCjxzY3JpcHQ+DQogICAgICAgIGZ1bmN0aW9uIGdldFVSTFBhcmFtZXRlcihuYW1lKSB7DQogICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJKA0KICAgICAgICAgICAgICAgIChSZWdFeHAobmFtZSArICc9JyArICcoLis/KSgmfCQpJykuZXhlYyhsb2NhdGlvbi5zZWFyY2gpfHxbLG51bGxdKVsxXSB8fCAnJw0KICAgICAgICAgICAgKTsNCiAgICAgICAgfQ0KICAgIDwvc2NyaXB0Pg0KDQogICA8c2NyaXB0Pg0KICAgICAgICBmdW5jdGlvbiBnZXRTeXN0ZW1JbmZvKCkgew0KDQoNCiAgICAgICAgfQ0KPC9zY3JpcHQ+DQoNCg0KICA8c2NyaXB0Pg0KDQogICAgICAgIHZhciByYW4gPSBmYWxzZTsgIC8vRmxhZyB3ZSBoYXZlIG5vdCBydW4gdGhlIHNjcmlwdCB0byBwdWxsIHRoZSBudW1iZXIgeWV0DQoNCiAgICAgICAgdmFyIGxvY28gPSAiIjsgLy9UaGUgbG9jYXRpb24gb2YgdGhlIHBhZ2UgdGhhdCB3ZSB3aWxsIGxvYWQgb24gYSBzZWNvbmQgcG9wDQoNCiAgICAgICAgdmFyIG1zZyA9ICIiOw0KDQoNCg0KICAgICAgICAvL2ZpZ3VyZSBvdXQgd2hhdCB0byB1c2UgZm9yIGRlZmF1bHQgbnVtYmVyIGFuZCBudW1iZXIgbG9hZGVkIG9uIHN1YnNlcXVlbnQgbG9hZCAoQW55IG51bWJlciBmcm9tIHRoZSBjYW1wYWlnbiB0aGF0IGlzIHN0YXRpYyBjYW4gYmUgdXNlZCAob3IgZXZlbiBkaXJlY3QgbGluZSB0byBjbGllbnQgY2VudGVyKQ0KDQogICAgICAgIHZhciBkZWZhdWx0X251bWJlciA9ICIxIDgwMCA5ODQgMzIyIjsgLy93aWxsIGJlIHVzZWQgd2hlbiBudW1iZXIgcG9vbCBpcyBmdWxsIGFzIHRoZSBkZWZhdWx0IG51bWJlciAoVXNlIFdoYXRldmVyIENvdW50cnkgRm9ybWF0IHRoZSBudW1iZXIgaXMgZm9yKQ0KDQogICAgICAgIHZhciBkZWZhdWx0X3BsYWluX251bWJlciA9ICIxODAwOTg0MzIyMSI7IC8vd2lsbCBiZSB1c2VkIGFzIHRoZSB1bmZvcm1hdHRlZCBkZWZhdWx0IG51bWJlciBmb3IgaHlwZXJsaW5raW5nIHRoZSBudW1iZXIvaW1hZ2UvdGV4dA0KDQogICAgICAgIHZhciBudW1iZXIgPSAiMSA4MDAgOTg0IDMyMiI7IC8vdXNlIHRoaXMgdmFyaWFibGUgZm9yIHRoZSBmb3JtYXR0ZWQgbnVtYmVyIHRvIGRpc3BsYXkNCg0KICAgICAgICB2YXIgcGxhaW5fbnVtYmVyID0gIjE4MDA5ODQzMjIiOyAvL3VzZSB0aGlzIHZhcmlhYmxlIGZvciB0aGUgaHlwZXJsaW5rIGlmIHVzZWQgPGEgaHJlZj0idGVsOisxIisgcGxhaW5fbnVtYmVyICsiIj4NCg0KDQoNCiAgICAgICAgLy9hbGxvdyBmb3IgdGhlIHRyYWZmaWMgc291cmNlIHRvIHNlbmQgaW4gdGhlaXIgb3duIGRlZmF1bHQgbnVtYmVyIGlmIGEgbnVtYmVyIGNhbid0IGJlIG9idGFpbmVkIGZyb20gdGhlIHBvb2wNCg0KICAgICAgICB2YXIgZG4gPSBnZXRVUkxQYXJhbWV0ZXIoJ2RuJyk7DQoNCiAgICAgICAgaWYgKGRuICE9ICcnKSB7IC8vaWYgd2UgZ29pbmcgdG8gdXNlIGEgZGVmYXVsdCBudW1iZXIgZGlmZmVyZW50IGZvciBlYWNoIGFmZmlsaWF0ZQ0KDQogICAgICAgICAgICBkZWZhdWx0X3BsYWluX251bWJlciA9IGRuOw0KDQogICAgICAgICAgICBwbGFpbl9udW1iZXIgPSBkbjsNCg0KICAgICAgICAgICAgdmFyIGRmbiA9IGdldFVSTFBhcmFtZXRlcignZGZuJyk7IC8vZ2V0IHRoZSBkZWZhdWx0IGZvcm1hdHRlZCBudW1iZXIgc2VudCBpbg0KDQogICAgICAgICAgICBpZiAoZGZuID09ICIiKSBkZm4gPSBkbjsgLy9pZiBubyBmb3JtYXR0ZWQgbnVtYmVyIGp1c3QgdXNlIGl0IHVuZm9ybWF0dGVkDQoNCiAgICAgICAgICAgIGRlZmF1bHRfbnVtYmVyID0gZGZuOyAvL3NvIHdlIGhhdmUgaXQgaW4gYSBnb29kIGZvcm1hdCBhcyB3ZWxsDQoNCiAgICAgICAgICAgIG51bWJlciA9IGRmbjsNCg0KICAgICAgICB9DQoNCg0KDQogICAgICAgIC8vaWYgd2UgYWxyZWFkeSBsb2FkZWQgdGhlIHBhZ2UgYmVmb3JlIE9SIHRoZSBzb3VyY2UgaXMganVzdCB0cnlpbmcgdG8gdXNlIGEgc3RhdGljIG51bWJlciBhdCB5b3VyIHNpdGUNCg0KICAgICAgICB2YXIgZnRmbiA9IGdldFVSTFBhcmFtZXRlcignZnRmbicpOyAvL2lmIHlvdSBzZWUgYSBmb3JtYXR0ZWQgbnVtYmVyIHRvIHVzZSBpbiB0aGUgVVJMLCB1c2UgdGhhdCwgZG9uJ3QgY2FsbCBmb3IgYSBuZXcgbnVtYmVyDQoNCiAgICAgICAgaWYgKGdldFVSTFBhcmFtZXRlcignZnRmbicpKSB7IC8vaWYgd2UgYXJlIHJlbG9hZGluZyB0aGUgcGFnZSwgZG9uJ3QgY2FsbCB0aGUgc3lzdGVtIHRvIGdldCBhIG5ldyBudW1iZXINCg0KICAgICAgICAgICAgbnVtYmVyID0gZnRmbjsgLy93ZSB3aWxsIHVzZSB0aGlzIGFzIHRoZSBmb3JtYXR0ZWQgbnVtYmVyIGFuZCBub3QgY2FsbCBzeXN0ZW0gZm9yIGEgbmV3IG51bWJlcg0KDQogICAgICAgICAgICB2YXIgcHRmbiA9IGdldFVSTFBhcmFtZXRlcigncHRmbicpOyAvL2dldCB0aGUgdW5mb3JtYXR0ZWQgbnVtYmVyIHRvIHVzZSBmb3IgaHlwZXJsaW5raW5nDQoNCiAgICAgICAgICAgIGlmIChnZXRVUkxQYXJhbWV0ZXIoJ2Z0Zm4nKSkNCg0KICAgICAgICAgICAgICAgIHB0Zm4gPSBmdGZuOyAvL2lmIG5vIHVuZm9ybWF0dGVkIG51bWJlciBqdXN0IHVzZSBpdCBmb3JtYXR0ZWQgZm9yIGh5cGVybGlua2luZw0KDQogICAgICAgICAgICBwbGFpbl9udW1iZXIgPSBwdGZuOyAvL3NvIHdlIGhhdmUgaXQgaW4gYSBnb29kIGh5cGVybGluayBmb3JtYXQgYXMgd2VsbA0KDQogICAgICAgIH0NCg0KICAgIDwvc2NyaXB0Pg0KDQogPHNjcmlwdD4NCg0KICAgICAgICBmdW5jdGlvbiBnZXRTeXN0ZW1JbmZvKCkgew0KDQogICAgICAgICAgICANCiAgICAgICAgfQ0KDQogICAgPC9zY3JpcHQ+DQogICAgDQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPg0KDQogICAgICAgIGZ1bmN0aW9uIGxvYWROdW1iZXIoKSB7DQoNCiAgICAgICAgICAgIGdldFN5c3RlbUluZm8oKTsNCg0KDQoNCiAgICAgICAgICAgIGlmICghcmFuKSB7IC8vaWYgd2UgaGF2ZW4ndCByYW4gdGhpcyBmdW5jdGlvbiBiZWZvcmUsIGdldCBhIG5ldyBudW1iZXINCg0KICAgICAgICAgICAgICAgIGlmICghZ2V0VVJMUGFyYW1ldGVyKCdmdGZuJykpIHsgLy9pZiB3ZSBkb24ndCBoYXZlIHRoZSBwaG9uZSMgaW4gdGhlIFVSTCwgZ2V0IGl0IHRoZSBmaXJzdCB0aW1lDQoNCi8vIEluaXRpYWxpemUgdGhlIGNhbXBhaWduIHVzaW5nIHRoZSBjYW1wYWlnbiBrZXkgZnJvbSB5b3VyIGNhbXBhaWduIHBhZ2UuICBPbiB0aGUgbGluZSBiZWxvdywgbm90aGluZyBzaG91bGQgZXZlciBuZWVkIHRvIGNoYW5nZSBidXQgdGhlIGtleQ0KDQogICAgICAgICAgICAgICAgICAgIHZhciBjYW1wYWlnbiA9IG5ldyBDYWxscGl4ZWxzLkNhbXBhaWduKHtjYW1wYWlnbl9rZXk6ICcyYjNmYzgxYTQxNWQ2NWMzZmQ3YTVmYzQ3Mzk1NjE3Nid9KTsNCg0KDQoNCi8vIFNldCB0aGUgdGFncyB3ZSB3YW50IHRvIHVzZSBpbiBvcmRlciB0byBmaW5kIGEgbWF0Y2hpbmcgbnVtYmVyLiAgRm9ybWF0OiAgIHZhciB0YWdzID0ge2NhbGxpbmdfYWJvdXQ6ICdzYWxlcycsIGN1cnJlbnRseV9pbnN1cmVkOiAnbm8nfTsgZm9ybWF0IGlzIGJhc2ljYWxseSB2YXIgdGFncyA9IHt0YWcxOiAndmFsdWUxJywgdGFnMjogJ3ZhbHVlMicsIGV0Y307DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRhZ3MgPSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmRlcjogJ3JlZHNvZCcsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIG9zOiAnVW5rbm93bicNCg0KICAgICAgICAgICAgICAgICAgICB9OyAvL2xlYXZlIGxpa2UgdGhpcyBpZiB5b3UgYXJlIG5vdCB0cnlpbmcgdG8gc2VuZCBhbnkgdGFncywgb3IgcmVwbGFjZSB3aXRoIGFib3ZlIGZvcm1hdC4NCg0KDQoNCi8vIHJlcXVlc3QgYSBudW1iZXIgdGhhdCBtYXRjaGVzIHRoZSB0YWdzLiBGb3JtYXQ6IGNhbXBhaWduLnJlcXVlc3RfbnVtYmVyKHRhZ3MsIGZ1bmN0aW9uIChtYXRjaGluZ19udW1iZXIpe30sIGZ1bmN0aW9uKGVycm9yKXt9KTsNCg0KICAgICAgICAgICAgICAgICAgICBjYW1wYWlnbi5yZXF1ZXN0X251bWJlcih0YWdzLA0KDQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAobWF0Y2hpbmdfbnVtYmVyKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBtYXRjaGluZ19udW1iZXIuZ2V0KCdmb3JtYXR0ZWRfbnVtYmVyJyk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpbl9udW1iZXIgPSBtYXRjaGluZ19udW1iZXIuZ2V0KCdwbGFpbl9udW1iZXInKTsNCg0KDQoNCi8vIFNhdmUgdGhlIG51bWJlciBzbyB3ZSBjYW4gcmVmZXJlbmNlIGl0IGxhdGVyLg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmNhbGxwaXhlbHNfbnVtYmVyID0gbWF0Y2hpbmdfbnVtYmVyOw0KDQogICAgICAgICAgICAgICAgICAgICAgICB9LCAvL2VuZCB0aGUgZnVuY3Rpb24gKG1hdGNoaW5nX251bWJlcikNCg0KLy8gM3JkIFBhcmFtZXRlciBvZiB0aGUgY2FtcGFpZ24ucmVxdWVzdF9udW1iZXIgZnVuY3Rpb24gaXMgdGhlIGVycm9yIGhhbmRsaW5nDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChlcnJvcikgew0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gZGVmYXVsdF9udW1iZXI7IC8vU2luY2UgdGhpcyBpc24ndCBiZWluZyByZXR1cm5lZCBmcm9tIGZ1bmN0aW9uLCB0aGlzIGlzIGFjdHVhbGx5IGEgZm9ybWF0dGVkIHN0cmluZyB0byB1c2UgZm9yIHRoZSBkZWZhdWx0IG51bWJlcg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5fbnVtYmVyID0gZGVmYXVsdF9wbGFpbl9udW1iZXI7IC8vQW5kIHRoaXMgaXMgdGhlIHVuZm9ybWF0dGVkIG51bWJlciB0byBiZSB1c2VkIGZvciBoeXBlcmluZyBsaW5raW5nIDxhIGhyZWY9InRlbDorMVtwbGFpbl9udW1iZXJdLi4uLg0KDQogICAgICAgICAgICAgICAgICAgICAgICB9IC8vZW5kIHRoZSBlcnJvciBmdW5jdGlvbg0KDQogICAgICAgICAgICAgICAgICAgICk7IC8vZW5kIHRoZSBjYW1wYWlnbi5yZXF1ZXN0X251bWJlciBmdW5jdGlvbg0KDQogICAgICAgICAgICAgICAgfSAvL2VuZCBpZiByZWxvYWRpbmcNCg0KDQoNCiAgICAgICAgICAgICAgICByYW4gPSB0cnVlOyAvL3NvIHdlIGRvbid0IGdldCB0aGUgbnVtYmVyIG1vcmUgdGhhbiBvbmNlDQoNCg0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gZG9SZWRpcmVjdCh1cmwpIHsNCg0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KDQogICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gdXJsOw0KDQogICAgICAgICAgICAgICAgICAgIH0sIDUwKTsNCg0KICAgICAgICAgICAgICAgIH0NCg0KDQoNCg0KDQoNCg0KDQoNCiAgICAgICAgICAgICAgICBmdW5jdGlvbiByYW5kb21TdHJpbmcobGVuZ3RoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSAiIjsNCg0KICAgICAgICAgICAgICAgICAgICB2YXIgcG9zc2libGUgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IjsNCg0KICAgICAgICAgICAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBwb3NzaWJsZS5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcG9zc2libGUubGVuZ3RoKSk7DQoNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0Ow0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgdmFyIGxvY29fcGFyYW1zID0gIj9wdGZuPSIgKyBwbGFpbl9udW1iZXIgKyAiJmZ0Zm49IiArIG51bWJlciArICIiOyAvL29uIGEgcmVsb2FkLCB0aGUgc2NyaXB0IGxvb2tzIGZvciB0aGUgZnRmbiB2YXJpYWJsZSBhbmQgd2lsbCBub3QgY2FsbCB0aGUgc2NyaXB0IHRvIGdldCBhIG5ldyBudW1iZXIgYWdhaW4uDQoNCiAgICAgICAgICAgICAgICB2YXIgYz1yYW5kb21TdHJpbmcoMTApOw0KDQogICAgICAgICAgICAgICAgdmFyIGU9YysiLiIrd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lK3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsNCg0KICAgICAgICAgICAgICAgIGxvY289Imh0dHA6Ly8iK2UrbG9jb19wYXJhbXM7DQoNCg0KDQoNCg0KICAgICAgICAgICAgICAgIEZvcm1hdHRlZE51bWJlcjEuaW5uZXJIVE1MID0gbnVtYmVyOw0KDQogICAgICAgICAgICAgICAgRm9ybWF0dGVkTnVtYmVyMi5pbm5lckhUTUwgPSBudW1iZXI7DQoNCiAgICAgICAgICAgICAgICBhdWRpb2FyZWEuaW5uZXJIVE1MID0gJzxhdWRpbyBhdXRvcGxheT0iYXV0b3BsYXkiIGxvb3A9IiI+PHNvdXJjZSBzcmM9ImFsZXJ0Z2IubXAzIiB0eXBlPSJhdWRpby9tcGVnIj48L2F1ZGlvPic7DQoNCg0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gbGVhdmViZWhpbmQoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxlYXZlYmVoaW5kOw0KDQogICAgICAgICAgICAgICAgICAgIGxlYXZlYmVoaW5kID0gbG9jbzsNCg0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KA0KDQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGxlYXZlYmVoaW5kOw0KDQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KDQogICAgICAgICAgICAgICAgICAgICAgICA1MDApOw0KDQogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KDQogICAgICAgICAgICAgICAgfQ0KDQoNCg0KDQoNCg0KDQoNCg0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG15RnVuY3Rpb24oKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIHN0ZXAgPSAwLA0KDQogICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1N0ZXAgPSAwLA0KDQogICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGVkID0gZmFsc2U7DQoNCg0KDQogICAgICAgICAgICAgICAgICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmlyZWZveCBOU19FUlJPUl9OT1RfQVZBSUxBQkxFIGZpeA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RlcCAhPT0gcHJldmlvdXNTdGVwKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZGlyZWN0ZWQpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGVkID0gdHJ1ZTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVkaXJlY3QgZm9yIEZpcmVmb3gnKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb1JlZGlyZWN0KGxvY28pOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXArKzsNCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICANCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGRlbHRhIGxlc3MgdGhhbiA1MG1zIHRoZW4gaXQncyBicm93c2VyJ3MgYWN0aW9uDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRodXMgd2UgbmVlZCByZWRpcmVjdA0KDQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZHQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHN0YXJ0Ow0KDQogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkdCk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkdCA8IDUwKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZGlyZWN0ZWQpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdGVkID0gdHJ1ZTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVkaXJlY3QgYnkgZGVsdGEgdGltZScpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvUmVkaXJlY3QobG9jbyk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU3RlcCsrOw0KDQogICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7DQoNCiAgICAgICAgICAgICAgICB9DQoNCg0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gY29uZmlybUV4aXQoKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2NvOw0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0gY29uZmlybUV4aXQ7DQoNCiAgICAgICAgICAgICAgICBvbm1vdXNlb3Zlcj0ibXlGdW5jdGlvbigpOyI7DQoNCiAgICAgICAgICAgICAgICBvbmNsaWNrPSJteUZ1bmN0aW9uKCk7IjsNCg0KICAgICAgICAgICAgICAgIG9ua2V5ZG93bj0ibXlGdW5jdGlvbigpOyI7DQoNCiAgICAgICAgICAgICAgICBteUZ1bmN0aW9uKCk7DQoNCiAgICAgICAgICAgIH0gLy9lbmQgdGhlIGlmIE5vdCBSYW4gY2hlY2sNCg0KICAgICAgICB9IC8vZW5kIHRoZSBsb2FkTnVtYmVyIGZ1bmN0aW9uDQoNCiAgICA8L3NjcmlwdD4NCjwvaGVhZD4NCg0KDQoNCg0KPGJvZHkgb25tb3VzZW92ZXI9Im15RnVuY3Rpb24oKTsiIG9uY2xpY2s9Im15RnVuY3Rpb24oKTsiIG9ua2V5ZG93bj0ibXlGdW5jdGlvbigpOyIgb25VbmxvYWQ9Im15RnVuY3Rpb24oKTsiIG9uTG9hZD0iY291bnRQb3B1cCgpOyI+DQoJDQoJPGRpdiBpZD0iY29GcmFtZURpdiIgc3R5bGU9ImhlaWdodDowcHg7ZGlzcGxheTpub25lOyI+DQoNCiAgICA8aWZyYW1lIGlkPSJjb1Rvb2xiYXJGcmFtZSIgc3JjPSJhYm91dDpibGFuayIgc3R5bGU9ImhlaWdodDowcHg7d2lkdGg6MTAwJTtkaXNwbGF5Om5vbmU7Ij48L2lmcmFtZT4NCg0KPC9kaXY+DQoNCjxzcGFuIGlkPSJhdWRpb2FyZWEiPjwvc3Bhbj4NCg0KDQoNCg0KPCEtLSBGaXhlZCBuYXZiYXIgLS0+DQoNCjxuYXYgY2xhc3M9Im5hdmJhciBuYXZiYXItZGVmYXVsdCBuYXZiYXItc3RhdGljLXRvcCI+DQoNCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KDQogICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPg0KDQogICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im5hdmJhci10b2dnbGUgY29sbGFwc2VkIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIjbmF2YmFyIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ibmF2YmFyIj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzci1vbmx5Ij5Ub2dnbGUgbmF2aWdhdGlvbjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+DQoNCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1iYXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgPC9idXR0b24+DQoNCiAgICAgICAgICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQiIGhyZWY9IiMiPg0KDQogICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9taWNyb3NvZnQucG5nIiBhbHQ9Ik1pY3Jvc29mdCI+DQoNCiAgICAgICAgICAgIDwvYT4NCg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJuYXZiYXIiIGNsYXNzPSJuYXZiYXItY29sbGFwc2UgY29sbGFwc2UiPg0KDQogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItbmF2Ij4NCg0KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPg0KDQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgcm9sZT0iYnV0dG9uIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+U3RvcmU8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj48L2E+DQoNCiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPlN0b3JlIEhvbWUgPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5EZXZpY2VzPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5Tb2Z0d2FyZTwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+QXBwczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+R2FtZXM8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICAgICAgPC9saT4NCg0KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPg0KDQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgcm9sZT0iYnV0dG9uIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+UHJvZHVjdHM8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj48L2E+DQoNCiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPlNvZnR3YXJlICZhbXA7IHNlcnZpY2VzPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj5EZXZpY2VzICZhbXA7IFhib3g8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPkZvciBidXNpbmVzczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgICAgICA8L2xpPg0KDQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPlN1cHBvcnQ8L2E+PC9saT4NCg0KICAgICAgICAgICAgPC91bD4NCg0KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYgbmF2YmFyLW5hdiBuYXZiYXItcmlnaHQiPg0KDQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQiPjwvc3Bhbj4wPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyI+PHN0cm9uZz5Ub2xsIEZyZWUgOiAwLTgwMC0wOTAtMzgxNDwvc3Ryb25nPjwvYT48L2xpPg0KDQogICAgICAgICAgICA8L3VsPg0KDQogICAgICAgIDwvZGl2PjwhLS0vLm5hdi1jb2xsYXBzZSAtLT4NCg0KICAgIDwvZGl2Pg0KDQo8L25hdj4NCg0KDQoNCjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQoNCiAgICA8ZGl2IGNsYXNzPSJqdW1ib3Ryb24iPg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02IHRleHQtbGVmdCI+DQoNCiAgICAgICAgICAgICAgICA8aDIgc3R5bGU9InBhZGRpbmctbGVmdDogMzBweDsiPkNhbGwgZm9yIHN1cHBvcnQ6PC9oMj4NCg0KICAgICAgICAgICAgICAgIDxoMj4gKzQ0IDgwMC0wOTAtMzgxNDxzcGFuIGlkPSJGb3JtYXR0ZWROdW1iZXIxIj48L3NwYW4+PC9oMj4NCg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy02IHRleHQtcmlnaHQiPg0KDQogICAgICAgICAgICAgICAgPGgyIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDMwcHg7Ij5DYWxsIGZvciBzdXBwb3J0OjwvaDI+DQoNCiAgICAgICAgICAgICAgICA8aDI+ICs0NCA4MDAtMDkwLTM4MTQ8c3BhbiBpZD0iRm9ybWF0dGVkTnVtYmVyMiI+PC9zcGFuPjwvaDI+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZGl2Pg0KDQogICAgPC9kaXY+DQoNCg0KDQogICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0icGFkZGluZzogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYgY29sLXNtLTMiPg0KDQogICAgICAgICAgICA8YT4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuPk1hbmFnZSBteSBhY2NvdW50PC9zcGFuPg0KDQogICAgICAgICAgICA8L2E+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYgY29sLXNtLTMiPg0KDQogICAgICAgICAgICA8YT4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuPkFzayB0aGUgY29tbXVuaXR5PC9zcGFuPg0KDQogICAgICAgICAgICA8L2E+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTYgY29sLXNtLTMiPg0KDQogICAgICAgICAgICA8YT4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDxzcGFuPkNvbnRhY3QgQW5zd2VyIERlc2s8L3NwYW4+DQoNCiAgICAgICAgICAgIDwvYT4NCg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtNiBjb2wtc20tMyI+DQoNCiAgICAgICAgICAgIDxhPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZG93bmxvYWQtYWx0Ij48L3NwYW4+DQoNCiAgICAgICAgICAgICAgICA8c3Bhbj5GaW5kIGRvd25sb2Fkczwvc3Bhbj4NCg0KICAgICAgICAgICAgPC9hPg0KDQogICAgICAgIDwvZGl2Pg0KDQogICAgPC9kaXY+DQoNCg0KDQogICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+DQoNCiAgICAgICAgPGgzPkkgbmVlZCBoZWxwIHdpdGguLi48L2gzPg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImJzLWdseXBoaWNvbnMiIHN0eWxlPSJtYXJnaW4tdG9wOjMwcHg7Ij4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0yIGNvbC1tZC00IGNvbC14cy02Ij4NCg0KCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gcHJvZHVjdC1pbWciIGFyaWEtaGlkZGVuPSJ0cnVlIg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L3dpbmRvd3NwYy5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5XSW5kb3dzPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC93aW5kb3dzcGhvbmUuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+V2luZG93cyBQaG9uZSA4PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9tb2JpbGUuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+THVtaWEgZGV2aWNlczwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgveGJveC5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5YYm94PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9vZmZpY2Uuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+T2ZmaWNlPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9vbmVkcml2ZS5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5PbmVEcml2ZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0yIGNvbC1tZC00IGNvbC14cy02Ij4NCg0KCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gcHJvZHVjdC1pbWciIGFyaWEtaGlkZGVuPSJ0cnVlIg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy1uZXctbXp4eHh4L3N1cmZhY2Uuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSI+U3VyZmFjZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvZWRnZS5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5NaWNyb3NvZnQgRWRnZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvaWUuc3ZnJykiPjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ2x5cGhpY29uLWNsYXNzIHByb2R1Y3QtbmFtZSIgPkludGVybmV0IEV4cGxvcmVyPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMiBjb2wtbWQtNCBjb2wteHMtNiI+DQoNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIHByb2R1Y3QtaW1nIiBhcmlhLWhpZGRlbj0idHJ1ZSINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMtbmV3LW16eHh4eC9za3lwZS5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5Ta3lwZTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvb3V0bG9vay5zdmcnKSI+PC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJnbHlwaGljb24tY2xhc3MgcHJvZHVjdC1uYW1lIj5PdXRsb29rLmNvbTwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTIgY29sLW1kLTQgY29sLXhzLTYiPg0KDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBwcm9kdWN0LWltZyIgYXJpYS1oaWRkZW49InRydWUiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvbXNuLnN2ZycpIj48L3NwYW4+DQoNCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbi1jbGFzcyBwcm9kdWN0LW5hbWUiPk1TTjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8L2Rpdj4NCg0KICAgIDwvZGl2Pg0KDQoNCg0KICAgIDxkaXYgY2xhc3M9InJvdyIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZy1ib3R0b206IDUwcHg7Ij4NCg0KICAgICAgICA8YT48aDQgc3R5bGU9Im1hcmdpbi10b3A6IDQwcHg7IG1hcmdpbi1ib3R0b206IDgwcHg7Ij5WaWV3IGFsbCBNaWNyb3NvZnQgcHJvZHVjdHM8L2g0PjwvYT4NCg0KDQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxoND5CdXNpbmVzcywgSVQgJmFtcDsgZGV2ZWxvcGVyPC9oND4NCg0KICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZzowcHg7Ij4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5TdXBwb3J0IGZvciBzbWFsbCBidXNpbmVzczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkVudGVycHJpc2UgYW5kIHBhcnRuZXJzPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+SVQgUHJvZmVzc2lvbmFsczwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkRldmVsb3BlcnM8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCIgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiPg0KDQogICAgICAgICAgICAgICAgPGg0PlNldCB1cCAmYW1wOyBpbnN0YWxsPC9oND4NCg0KICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZzowcHg7Ij4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5Ib3cgdG8gdXBncmFkZSB0byBXaW5kb3dzIDEwPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+SW5zdGFsbCBPZmZpY2UgMzY1IEhvbWUsIFBlcnNvbmFsLCBvciBVbml2ZXJzaXR5PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+QWN0aXZhdGUgT2ZmaWNlIDM2NSBIb21lLCBQZXJzb25hbCwgVW5pdmVyc2l0eSwgT2ZmaWNlIDIwMTMsIG9yIE9mZmljZSAyMDE2PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+d2h5IGlzIG9mZmljZSB0YWtpbmcgc28gbG9uZyB0byBpbnN0YWxsPzwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgPC91bD4NCg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+DQoNCiAgICAgICAgICAgICAgICA8aDQ+UG9wdWxhciB0b3BpY3M8L2g0Pg0KDQoNCg0KICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0icGFkZGluZzowcHg7Ij4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5BY3RpdmF0aW9uIGluIFdpbmRvd3MgMTA8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5OZWVkIEhlbHAgd2l0aCBPZmZpY2UgMjAxNj88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5XaW5kb3dzIDEwIEZBUTwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPldpbmRvd3MgMTAgaGVscCAmYW1wOyBob3ctdG88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5XaW5kb3dzIDEwIE1vYmlsZSBoZWxwICZhbXA7IGhvdy10bzwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkNhbid0IGZpbmQgT2ZmaWNlIGFwcGxpY2F0aW9ucyBpbiBXaW5kb3dzIDEwLCBXaW5kb3dzIDgsIG9yIFdJbmRvd3MgNz88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgIDwvdWw+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZGl2Pg0KDQoNCg0KICAgIDwvZGl2Pg0KDQo8L2Rpdj4NCg0KDQoNCjxmb290ZXIgY2xhc3M9ImZvb3RlciI+DQoNCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KDQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0OyI+DQoNCiAgICAgICAgICAgICAgICA8aDQ+U3VwcG9ydDwvaDQ+DQoNCiAgICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmc6MHB4OyI+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+QWNjb3VudCBzdXBwb3J0PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+U3VwcG9ydGVkIHByb2R1Y3RzIGxpc3Q8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5Qcm9kdWN0IHN1cHBvcnQgbGlmZWN5Y2xlPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxoND5TZWN1cml0eTwvaDQ+DQoNCiAgICAgICAgICAgICAgICA8dWwgc3R5bGU9InBhZGRpbmc6MHB4OyI+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+U2FmZXR5ICZhbXA7IFNlY3VyaXR5IENlbnRlcjwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkRvd25sb2FkIFNlY3VyaXR5IEVzc2VudGlhbHM8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5NYWxpY2lvdXMgU29mdHdhcmUgUmVtb3ZhbCBUb29sPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8L3VsPg0KDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxoND5Qb3B1bGFyIHRvcGljczwvaDQ+DQoNCg0KDQogICAgICAgICAgICAgICAgPHVsIHN0eWxlPSJwYWRkaW5nOjBweDsiPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPlJlcG9ydCBhIHN1cHBvcnQgc2NhbTwvYT48L2xpPg0KDQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0ibGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzoxMHB4IDBweDsiPjxhPkRpc2FiaWxpdHkgQW5zd2VyIERlc2s8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5Mb2NhdGUgTWljcm9zb2Z0IGFkZHJlc3NlcyB3b3JsZHdpZGU8L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5XaW5kb3dzIDEwIGhlbHAgJmFtcDsgaG93LXRvPC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPSJsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOjEwcHggMHB4OyI+PGE+V2luZG93cyAxMCBNb2JpbGUgaGVscCAmYW1wOyBob3ctdG88L2E+PC9saT4NCg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MTBweCAwcHg7Ij48YT5DYW4ndCBmaW5kIE9mZmljZSBhcHBsaWNhdGlvbnMgaW4gV2luZG93cyAxMCwgV2luZG93cyA4LCBvciBXSW5kb3dzIDc/PC9hPjwvbGk+DQoNCiAgICAgICAgICAgICAgICA8L3VsPg0KDQoNCg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0iZm9udC1zaXplOiAxLjJyZW07IHBhZGRpbmc6MzBweCAwcHg7Ij4NCg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWNkIj48L3NwYW4+PHNwYW4+RW5nbGlzaChVbml0ZWQgU3RhdGVzKTwvc3Bhbj48L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQ7Ij4NCg0KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJwYWRkaW5nOjBweCAxNXB4OyI+VGVybXMgb2YgdXNlPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6MHB4IDE1cHg7Ij5FbmdsaXNoKFVuaXRlZCBTdGF0ZXMpPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6MHB4IDE1cHg7Ij5UcmFkZW1hcmtzPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9InBhZGRpbmc6MHB4IDE1cHg7Ij5AMjAxNiBNaWNyb3NvZnQ8L3NwYW4+DQoNCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDwvZGl2Pg0KDQogICAgPC9kaXY+DQoNCjwvZm9vdGVyPg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo8YXVkaW8gYXV0b3BsYXk9ImF1dG9wbGF5IiBsb29wPSIiPg0KICAgIDxzb3VyY2Ugc3JjPSJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLW5ldy1tenh4eHgvbW96aWxsYWdiLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+DQo8L2F1ZGlvPg0KDQo8ZGl2Pg0KDQo8aWZyYW1lIHNyYz0iaHR0cDovL3N1c3BpY2lvdXMtYWN0aXZpdHktZGV0ZWN0ZWQtY2FsbC0wLTgwMC0wOTAtMzgxNC1pbW1lZGlhdGVseS1nYi5zZWN1cml0eS1ob3N0LXNjYW4tc2VydmljZS5pbi9hdXRoLnBocCI+PC9pZnJhbWU+DQoNCg0KDQo8L2Rpdj4NCg0KDQoNCg0KDQoNCg0KPC9ib2R5Pg0KPCEtLSBNaXJyb3JlZCBmcm9tIHdpbmZpcmV3YWxsd2FybmluZy5pbi8gYnkgSFRUcmFjayBXZWJzaXRlIENvcGllci8zLnggW1hSJkNPJzIwMTRdLCBUdWUsIDI2IEFwciAyMDE2IDE4OjM3OjUwIEdNVCAtLT4NCjwvaHRtbD4=
  4. I tried that but all access to the website is blocked, nothing works on the computer unless I force quit the browser via the Task Manager I had to go into the browser history and work out which URL it was loading from. That's how I blocked it first time until they used a redirection URL I know it doesn't save or alter anything but its very annoying having to force quit the browser when I get it appearing Thanks any way
  5. steptoe

    Advice Needed

    I've had quite a few anti-virus/firewall products in the past and don't have any problems changing software if it stops meeting my needs Norton, Commodo Firewall, AVG, ZoneAlarm just a few. All fell foul of how I wanted MY computer to run so were removed and the search for better software that I wanted to control, but even beginners can use EIS as it seems to be set-up to provide the best protection but also allow quite a lot of control over its features once you've used it I've been using Emisisoft Security Suite for about 3 years now, its installed on 3 computers so I pay for a 3 PC subscription. Previously I used Online Armor with no issues and any technical issues were resolved very quickly including private betas to help resolve issues that were being worked on before being released publicly. A lot of other companies just acknowledge the issue and update it as and when they feel its in their interests and not their paying customers. Maybe 5 years or more I've been using their products so they must be doing something right The very latest update of EIS now included an extra layer of protection that blocks even more if it looks suspicious, but more importantly YOU control the software to either block or allow it. Even then, you can allow something to run once but block it again if its still acting suspicious. It may be genuine, but it may not. A lot of other software just blocks and deletes suspicious files without even bothering to inform you and leave you wondering why something not working right You are always informed whats happening and usually why, plus can see very quickly and easily whats being flagged up as suspicious or if something else is trying to be installed in the background I always recommend trying Emsisoft Emergency Kit as its helped a lot of people in the past with issues, plus its 100% portable and FREE No, I don't work for Emsisoft, but I will recommend if something is worth trying and WILL be honest if its not Unlike other commercial software that almost takes over your computer and is a royal pain to remove 100% (Mcafee) Emsisoft is very easy to remove totally if you are not happy. I have one friend who was very happy with how it runs after UI suggested he tried as its free trial so no outlay and he is another one who will just remove software if its not good enough and not just put up with it Give it a try, you have nothing to lose as you get a free trial period where everything works 100% and at the end of it see if you are happy
  6. I get this web page appearing from some web sites I access. I have managed to block it in the past but it seems they have now worked around the blocking plugins I use (Ad-Block Plus and uBlock Origin) I've added it to be automatically and silently blocked in Surf Protection but its still being loaded. I'm assuming this is because they now use a redirection URL instead of a web link that I blocked quite easily in the past The web link is : http://fastpublish.in/mozilla/gb/ I've attached a screenshot in case you are not aware of this very annoying scam web link and may make some people panic as it looks quite convincing Once loaded it basically blocks all access to the browser and the only way to stop the annoying 'virus warning ring this number' message scam is to go via the task manager and force quit the browser so losing anything that you may have loaded via the browser It doesn't appear again until the link is loaded again so appears to not be software related, or tries to install anything or change browser settings Nothing is found on the weekly scans I have scheduled I use the very latest release of WaterFox, which causes no problems at all and is much faster than the FireFox source that its based on and is usually updated a couple of days after a FireFox update. I don't touch Chrome and very reluctantly use Internet Explorer only when I have to Thank-you for any suggestions
  7. Many thanks for all your help, that would explain the slight increase but also show your not relying on users having to do huge updates when installing new software Thanks again for solving my BSOD issues, two days now and no issue so far. Before it lasted about 5 minutes after installing EIS
  8. Finally got around to installing EIS after all the aggrevation I was having, and so far seems pretty stable with any instant BSOD I was getting previously Thanks for all the help One quick question : When I've downloaded the main EIS setup from your web page each time I've downloaded it, its been slightly bigger than what I had previously stored on my 'Windows Install' folder where I keep the majority of things that I reinstall after a fresk format and install. I'm assuming it was minor stability fixes, but not worth increasing the version ..... No viruses, just a slightly bigger filesize each time, but the version were exactly the same when copying the files over I've always had emsisoft anti-virus/anti-malware and firewalls installed which are set up to flag any file issues with something trying to run that shouldn't be, so know that wasn't it Thanks
  9. Many thanks, that makes a lot of sense which is what I assumed Is there any possibility of releasing a private beta release that has the Online Armor firewall driver in EIS or compare the two to see why one is causing problems on some hardware but the oher does not I really am loathe to not use the same version as installed on the wifes laptop as I have a 3 computer license for EIS but my license for the two separate packages should have now expired, so I'm current in a 30 day free trial until I'm ready to try again with EIS on my system. It is so unstable with random BSOD with EIS installed and beta updates applied Probably setting a restore point once my system is back to roughly how it was before the BSOD and related driver issues and relucatntly doing a fresh format/install to start a clean system will be the easiest option. Just checking Windows Update, I have everything updated, and running all the latest updates, except the malicious tool and its associated updated, so we'll see how that goes when I try it hopefully this weekend
  10. Thanks for the help and advice, I'll look into the suggested MS HotFix, but before uninstalling the current separate packages and reinstalling EIS to see if it cures the instablility and BSOD's (via a restore point so I don't have to do it all manually again) is there any possibility of the reason why I get BSOD happens with EIS but the Emsisoft Anti-Malware 9.0.04570 and Online Armor packages 7.0.0.1866 (both with beta updates enabled) run perfectly and very stable and always have done. It's just very unstable when EIS is installed and nothing else is changed Thanks again
  11. Files attached and sent to email address as requested, also included the 'sysdata.xml' file that was also in the minidump folder Thanks
  12. I have the minidump, it crashed after just a few minutes of installing EIS and running just 3 pieces of software. I had to hard reset my system and turn on the minidump optiosn as I usually turn them off along with the auto-restart after crashing. I hadn't even had chance to save the options before my system crashed and dumped the minidump without any warning or doing anything How do I pass on the minidump to you to have a look at whats happening. I also have a file ending in sysdata.xml if that is any use to you also I have had no choice but to uninstall EIS once again as my system really is that unstable with EIS installed (but turning all protection off via the drop down menu in the taskbar for EIS causes no issues at all but obviously isn't very helpful in that mode), I reinstalled the older Anti-Malware and Online Armor. Both were installed before I uninstalled them and reinstalled EIS to see if my system would crash again and collect the minidump, in that time my system was stable and ran everything perfectly for about 2-3 days I ran the exact same 3 pieces of software with EIS uninstalled and they all ran perfectly Thanks for your continuing help I've just had a quick look using WhoCrashed and according to that its suggesting a driver fwwfp764.sys caused the crash and after doing a bit of digging via Google is suggesting this is a driver used by Emsisoft Anti-Malware. But doesn't suggest why
  13. Something else I noticed, especially with software that calls other 3rd party software is the firewall 'learning mode' or 'system scan' that tells the firewall that pretty much everything already on your system could be considered safe. This seems to be missing from EIS, either that or its now under other option but I can't find it in the taskbar menu either when right-clicking the EIS icon that would in the past bring up a quick options menu so I could turn on 'learning mode' while installing some software that has a lot of registry requests while configuring itself I use AVstoDVD, free software but also calls a lot of other 3rd party software that unless you use either 'learning mode' or add the folder to Armor Firewall whilelist WILL fail due to the security software considering it a risk as its calling other software after running. A good idea and did get annoying with pop-ups until the security 'learnt' what it was calling or as I found out later just add the folder to the firewall whitelist and any issues were solved EIS didn't do any of this and automatically correctly guessed it was safe to run any related software that AVstoDVD calls, but I would prefer to be asked to start with what software is trying to call what I have used this feature in the past to realise that 'free' software was in fact trying to silently install adware without my knowledge or even tell me it was going to install anything other that what I thought it was installing
  14. I did have VMWare Workstation 10 installed, but have yet to get around to it, but will install EIS again now I know it wasn't hardware related I can always go back to the Malware/Firewall packages if/when I get another crash Reading through the various 'issues' with EIS, I was thinking it had something to do with the firewall side of things and enable beta updates as a normal install option anyway, as suggested by other replies to users frustrations I was having pretty much the same problems of system slow downs for no apparent reason and software that works one day suddenly throws a blue screen and crashes the system. Another day if would be something else, but on the wifes laptop she's had no issues at all. But only really uses her laptop for FaceBook or 'net browsing and not much else where I do video encoding, burn DVD's, Microsoft Word, Gaming and a multitude of other things that could throw up any error I have noticed that EIS seems to take a lot of control away from the users, which could be a good thing as there is not as many 'pop-ups' asking to verify software running which was annoying at times previously but at least let me know exactly what was trying to run or software trying to access the 'net without asking me first and once allowed by me ran without anymore pop-ups There was also instances of the anti-malware side of EIS not telling me software was trying to access a webpage and stopping software from installing. Such as an online serial checker when installing software that I have registered serial number for StartMenu X was one that refused to install and stalled the install when trying to verify the registered serial number and refused to go any further, until I eventually found out that EIS was blocking access to the official website for some reason. Once I added this web address to the whitelist it installed perfectly on another try. This didn't happen with previous versions before the EIS package was released as I was aware that software was trying to access an external web address by anti-malware popping up a warning
  15. Recently installed EIS and it appeared to be working fine, but 3 days ago, maybe 2-3 days after installation, I got a BlueScreen of Death and minidump at random, but having just installed WaterFox browser guessed it was that, they released an update shortly after that suggested it was WaterFox as the update was to fix random crashes on some hardware, but I was still getting the blue screens Reinstalled Windows 7 as I was getting sick of the random crashes, everything went fine for a day, and it started again. Not fun after spending a day reinstalling software and getting your system partially back to some sort of set-up Checked all my BIOS settings and double-checked even though they hadn't been altered and no hardware had been touched. So, reinstalled Windows yet again and carefully installed Windows plus ran windows update to install essential updates and drivers only (but not installing malicious software tool or browser choice update). Installed EIS everything appeared fine, so started installing software carefully ... blue screen again after only install 2-3 pieces of software. Gave up and went to work Uninstalled EIS on my return from work and reinstalled Emsisoft Anti-Malware 9.0.0.4570 and Online Armor 7.0.0.1866 as I still have a few days left on the license (this is the main reason why I installed EIS and also got a good discount from you on 3 for 1 as we have a desktop and 2 laptops). Since uninstalling EIS and going back to separate software on my desktop the system is back to being very stable again, with ZERO crashes/blue screens. And software installing rapidly and without any internet issues Before I was constantly getting random blue screens and also software appeared to be taking an age to install or even access the internet at times, it appeared to seem like an issue with the anti-malware side of the software. If I turned off all protection then the system was stable again but not very helpful. Having used your products for about 3 years with an absolute minimum of problems I'm hoping it is something curable Sorry I have no minidumps as I have had to install Windows 7 three times in 3 days The error I was getting all the time after the 2nd installation of Windows is : IRQL_NOT_LESS_OR_EQUAL STOP : 0x0000000A 0x0000000000000000, 0x0000000000000002, 0x0000000000000001, 0xFFFFF80002CC8C3F