From: Robert K. <Rob...@pl...> - 2005-06-03 16:50:23
|
PGh0bWw+DQoNCjxoZWFkPjxsaW5rIHR5cGU9InRleHQvY3NzIiBocmVmPSJodHRwOi8vcm9ja2Zv cmQuZGV2bmV0LnBsdW10cmVlLmNvbS9pbWFnZXNlcnZlci9wbHVtdHJlZS9jb21tb24vcHVibGlj L2Nzcy9tYWluc3R5bGUtZW4uY3NzIiByZWw9IlN0eWxlU2hlZXQiIGxhbmc9ImVuIj48L2xpbms+ PHRpdGxlPkxvZyBJbjwvdGl0bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KDQoJ aWYoIXdpbmRvdy5QVEluY2x1ZGVyKSB7DQoJCXdpbmRvdy5QVEluY2x1ZGVyID0ge307DQoJCVBU SW5jbHVkZXIuZ2V0SlNDb21wb25lbnQgPSBmdW5jdGlvbihjb21wb25lbnQsIHZlcnNpb24pIA0K CQl7DQoJCQlpZih2ZXJzaW9uLnRvTG93ZXJDYXNlKSB7IHZlcnNpb24gPSB2ZXJzaW9uLnRvTG93 ZXJDYXNlKCk7IH0NCgkJCXJldHVybiB3aW5kb3dbY29tcG9uZW50ICsgJ18nICsgdmVyc2lvbl07 DQoJCX0NCg0KCQlQVEluY2x1ZGVyLmFkZENTU0xpbmsgPSBmdW5jdGlvbihpbmNsdWRlX3BhdGgp DQoJCXsNCgkJCXZhciBpbmNsdWRlX2xpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5r Jyk7DQoJCQlpbmNsdWRlX2xpbmsucmVsID0gJ3N0eWxlc2hlZXQnOw0KCQkJaW5jbHVkZV9saW5r LnR5cGUgPSAndGV4dC9jc3MnOw0KCQkJaW5jbHVkZV9saW5rLmhyZWYgPSBpbmNsdWRlX3BhdGg7 DQoJCQl2YXIgaW5jbHVkZV9oZWFkcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdo ZWFkJyk7DQoJCQlpZihpbmNsdWRlX2hlYWRzLmxlbmd0aCA+IDApIHsNCgkJCQlpbmNsdWRlX2hl YWRzWzBdLmFwcGVuZENoaWxkKGluY2x1ZGVfbGluayk7DQoJCQl9DQoJCX0NCgkJUFRJbmNsdWRl ci5hZGRKU1NjcmlwdCA9IGZ1bmN0aW9uKGluY2x1ZGVfcGF0aCkNCgkJew0KCQkJZG9jdW1lbnQu d3JpdGUoJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IicgKyBpbmNsdWRlX3Bh dGggKyAnIj48L3NjcicgKyAnaXB0PicpOw0KCQl9DQoJfQ0KCVBUSW5jbHVkZXIuSW1hZ2VTZXJ2 ZXJVUkwgPSAnaHR0cDovL3JvY2tmb3JkLmRldm5ldC5wbHVtdHJlZS5jb20vaW1hZ2VzZXJ2ZXIv JzsNCglQVEluY2x1ZGVyLkJhc2VQYXRoID0gJ3BsdW10cmVlL3BvcnRhbC9wcml2YXRlL2pzLyc7 DQoJUFRJbmNsdWRlci5MYW5nID0gJ2VuJzsNCglQVEluY2x1ZGVyLkNvdW50cnkgPSAnVVMnOw0K CVBUSW5jbHVkZXIuRGVidWcgPSAnJzsNCglQVEluY2x1ZGVyLkxhdGVzdCA9IGZhbHNlOw0KCWRv Y3VtZW50LndyaXRlKCc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInICsgUFRJ bmNsdWRlci5JbWFnZVNlcnZlclVSTCArIFBUSW5jbHVkZXIuQmFzZVBhdGggKyAnanNwb3J0bGV0 LzE4MTgxOS9QVENvbXBvbmVudC5qcyI+PC9zY3InICsgJ2lwdD4nKTsNCg0KPC9zY3JpcHQ+PHNj cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmZ1bmN0aW9uIGV4ZWN1dGVWaWFFbnRlcihldnQp DQp7DQoJZXZ0ID0gKGV2dCkgPyBldnQgOiBldmVudDsNCgl2YXIgY2hhckNvZGUgPSAoZXZ0LmNo YXJDb2RlKSA/IGV2dC5jaGFyQ29kZSA6ICgoZXZ0LndoaWNoKSA/IGV2dC53aGljaCA6IGV2dC5r ZXlDb2RlKTsNCglpZiAoY2hhckNvZGUgPT0gMTMgfHwgY2hhckNvZGUgPT0gMykNCgl7DQoJCXJl dHVybiBkb0xvZ2luKCk7DQoJfQ0KCXJldHVybiB0cnVlOw0KfQ0KDQppZiAoZG9jdW1lbnQubGF5 ZXJzKQ0Kew0KCWRvY3VtZW50LmNhcHR1cmVFdmVudHMoRXZlbnQuS0VZUFJFU1MpDQoJZG9jdW1l bnQub25rZXlwcmVzcz1leGVjdXRlVmlhRW50ZXI7DQp9DQoNCg0KZnVuY3Rpb24gZG9PbkxvYWQo KQ0Kew0KICAgIHJlc3RvcmVMb2dpbkluZm8oKTsNCn0NCg0KZnVuY3Rpb24gZ2V0VXNlclRleHRi b3goKQ0Kew0KICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHQtbG9naW4tdXNl cm5hbWUtdGV4dGJveCcpOw0KfQ0KDQpmdW5jdGlvbiBnZXRQYXNzd29yZEZpZWxkKCkNCnsNCiAg ICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3B0LWxvZ2luLXBhc3N3b3JkLWZpZWxk Jyk7DQp9DQoNCmZ1bmN0aW9uIGdldEF1dG9Tb3VyY2VTZWxlY3QoKQ0Kew0KICAgIHJldHVybiBk b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHQtbG9naW4tYXV0aC1zZWxlY3QnKTsNCn0NCmZ1bmN0 aW9uIGdldFJlbWVtYmVyQ2hlY2tib3goKQ0Kew0KICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgncHQtbG9naW4tcmVtZW1iZXItY2hlY2tib3gnKTsNCn0NCg0KZnVuY3Rpb24gZG9M b2dpbigpDQp7DQogICAgdmFyIHBlcnNpc3RJbmZvID0gdHJ1ZTsNCiAgICB2YXIgY2IgPSBnZXRS ZW1lbWJlckNoZWNrYm94KCk7DQogICAgaWYgKCFwZXJzaXN0SW5mbyB8fCAhY2IgfHwgIWNiLmNo ZWNrZWQpDQogICAgew0KICAgICAgICBkZWxldGVMb2dpbkluZm8oKTsNCiAgICB9DQogICAgZWxz ZQ0KICAgIHsNCiAgICAgICAgdmFyIHVzZXJOYW1lID0gJyc7DQogICAgICAgIHZhciB1c3IgPSBn ZXRVc2VyVGV4dGJveCgpOw0KICAgICAgICBpZiAodXNyKSB7IHVzZXJOYW1lID0gdXNyLnZhbHVl OyB9DQogICAgICAgIHZhciBhdXRoU291cmNlID0gMDsNCiAgICAgICAgdmFyIHNlbCA9IGdldEF1 dG9Tb3VyY2VTZWxlY3QoKTsNCiAgICAgICAgaWYgKHNlbCkgeyBhdXRoU291cmNlID0gc2VsLnNl bGVjdGVkSW5kZXg7IH0NCiAgICAgICAgc3RvcmVMb2dpbkluZm8odXNlck5hbWUsYXV0aFNvdXJj ZSk7DQogICAgfQ0KICAgIHZhciBsb2dpbkZvcm0gPSBkb2N1bWVudC5sZm9ybTsNCiAgICB2YXIg aGlkZGVuTG9naW4gPSBsb2dpbkZvcm0uaW5faGlfZG9sb2dpbjsNCiAgICBoaWRkZW5Mb2dpbi52 YWx1ZSA9ICd0cnVlJzsNCiAgICBsb2dpbkZvcm0uc3VibWl0KCk7DQp9DQoNCmZ1bmN0aW9uIGRl bGV0ZUxvZ2luSW5mbygpDQp7DQogICAgd3JpdGVMb2dpbkNvb2tpZSgnJywnJyk7DQp9DQoNCmZ1 bmN0aW9uIHN0b3JlTG9naW5JbmZvKHVzZXJOYW1lLGF1dGhTb3VyY2UpDQp7DQogICAgdmFyIHZh bHVlID0gJ3VzZXJcdCcgKyB1c2VyTmFtZSArICdcbmF1dGhcdCcgKyBhdXRoU291cmNlOw0KICAg IHZhciBleHBpcmVzID0ganNwb3J0bGV0XzE4MTgxOS5QVENvb2tpZS5kYXlzQXdheSg2MCk7DQog ICAgd3JpdGVMb2dpbkNvb2tpZSh2YWx1ZSxleHBpcmVzKTsNCn0NCg0KZnVuY3Rpb24gcmVzdG9y ZUxvZ2luSW5mbygpDQp7DQogICAgdmFyIGNvb2tpZSA9IGpzcG9ydGxldF8xODE4MTkuUFRDb29r aWUuZ2V0KCdwdExhc3RMb2dpbkF1dGhTb3VyY2UnKTsNCiAgICBpZiAoY29va2llKQ0KICAgIHsN CiAgICAgICAgdmFyIG52UGFpcnMgPSBjb29raWUuc3BsaXQoJ1xuJyk7DQogICAgICAgIGlmIChu dlBhaXJzICYmIG52UGFpcnMubGVuZ3RoKQ0KICAgICAgICB7DQogICAgICAgICAgICB2YXIgZm91 bmRVc2VyID0gZmFsc2U7DQogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG52UGFpcnMu bGVuZ3RoOyBpKyspDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdmFyIHBhaXIgPSBu dlBhaXJzW2ldOw0KICAgICAgICAgICAgICAgIGlmICghcGFpcikgeyBjb250aW51ZTsgfQ0KICAg ICAgICAgICAgICAgIHZhciB2YWxzID0gcGFpci5zcGxpdCgnXHQnKTsNCiAgICAgICAgICAgICAg ICB2YXIga2V5ID0gdmFsc1swXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsID0gdmFsc1sxXTsN CiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICd1c2VyJykNCiAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICAgIHZhciB1c3IgPSBnZXRVc2VyVGV4dGJveCgpOw0KICAgICAgICAg ICAgICAgICAgICBpZiAodXNyKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgICAgICB1c3IudmFsdWUgPSB2YWw7DQogICAgICAgICAgICAgICAgICAgICAgICBmb3Vu ZFVzZXIgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAnYXV0aCcpDQogICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsID0gZ2V0QXV0b1NvdXJjZVNlbGVjdCgpOw0K ICAgICAgICAgICAgICAgICAgICB2YXIgc3JjID0gcGFyc2VJbnQodmFsKTsNCiAgICAgICAgICAg ICAgICAgICAgaWYgKHNlbCAmJiAhaXNOYU4oc3JjKSkgeyBzZWwuc2VsZWN0ZWRJbmRleCA9IHNy YzsgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBj YiA9IGdldFJlbWVtYmVyQ2hlY2tib3goKTsNCiAgICAgICAgICAgIGlmIChjYikgeyBjYi5jaGVj a2VkID0gdHJ1ZTsgfQ0KICAgICAgICAgICAgKGZvdW5kVXNlcikgPyBmb2N1c1Bhc3N3b3JkRmll bGQoKSA6IGZvY3VzVXNlclRleHRib3goKTsNCiAgICAgICAgfSBlbHNlIHsgZm9jdXNVc2VyVGV4 dGJveCgpOyB9DQogICAgfSBlbHNlIHsgZm9jdXNVc2VyVGV4dGJveCgpOyB9DQp9DQoNCmZ1bmN0 aW9uIGZvY3VzVXNlclRleHRib3goKQ0Kew0KICAgIHZhciB1c3IgPSBnZXRVc2VyVGV4dGJveCgp Ow0KICAgIGlmICh1c3IpIHsgdXNyLmZvY3VzKCk7IH0NCn0NCg0KZnVuY3Rpb24gZm9jdXNQYXNz d29yZEZpZWxkKCkNCnsNCiAgICB2YXIgcHcgPSBnZXRQYXNzd29yZEZpZWxkKCk7DQogICAgaWYg KHB3KSB7IHB3LmZvY3VzKCk7IH0NCn0NCg0KZnVuY3Rpb24gd3JpdGVMb2dpbkNvb2tpZSh2YWx1 ZSxleHBpcmVzKQ0Kew0KICAgIGpzcG9ydGxldF8xODE4MTkuUFRDb29raWUuc2V0KCdwdExhc3RM b2dpbkF1dGhTb3VyY2UnLHZhbHVlLGV4cGlyZXMpOw0KfQ0KDQpkb2N1bWVudC5QQ0MuUmVnaXN0 ZXJGb3JXaW5kb3dFdmVudCgnb25sb2FkJyxyZXN0b3JlTG9naW5JbmZvKTsNCg0KPC9zY3JpcHQ+ PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnZhciBnX1BUSW1nU3ZySW1nc1VSTCA9ICJo dHRwOi8vcm9ja2ZvcmQuZGV2bmV0LnBsdW10cmVlLmNvbS9pbWFnZXNlcnZlci9wbHVtdHJlZS9w b3J0YWwvcHJpdmF0ZS9pbWcvIjsNCnZhciBnX1NoYXJlZEltZ1N2ckltZ3NVUkwgPSAiaHR0cDov L3JvY2tmb3JkLmRldm5ldC5wbHVtdHJlZS5jb20vaW1hZ2VzZXJ2ZXIvcGx1bXRyZWUvcG9ydGFs L3B1YmxpYy9pbWcvIjt2YXIgZ19IZWxwU3ZyQmFzZVVSTCA9ICJodHRwOi8vcm9ja2ZvcmQuZGV2 bmV0LnBsdW10cmVlLmNvbS9pbWFnZXNlcnZlci9wbHVtdHJlZS8iOw0KPC9zY3JpcHQ+PHNjcmlw dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCWlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQg fHwgIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdQVFJvYm9IZWxwLWpzJykpIHsNCgkJZG9jdW1l bnQud3JpdGUoJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBpZD0iUFRSb2JvSGVscC1q cyIgc3JjPSJodHRwOi8vcm9ja2ZvcmQuZGV2bmV0LnBsdW10cmVlLmNvbS9pbWFnZXNlcnZlci9w bHVtdHJlZS9jb21tb24vcHJpdmF0ZS9qcy9qc3JvYm9oZWxwLzE0Njk0MC9QVFJvYm9IZWxwLmpz Ij48L3NjcicgKyAnaXB0PicpOw0KCX0NCjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph dmFzY3JpcHQiPg0KZnVuY3Rpb24gT3BlbmVyQVNfR2V0QXBwbGljYXRpb25CYXNlVVJMKCkNCnsN CglyZXR1cm4gImh0dHA6Ly9yb2NrZm9yZC9wb3J0YWwvc2VydmVyLnB0PyI7DQp9DQpmdW5jdGlv biBPcGVuZXJBU19HZXRDdXJyZW50VXNlcklEKCkNCnsNCglyZXR1cm4gIjIiOw0KfQ0KZnVuY3Rp b24gT3BlbmVyQVNfR2V0UGFyZW50U3BhY2VOYW1lKCkNCnsNCglyZXR1cm4gIiI7DQp9DQpmdW5j dGlvbiBPcGVuZXJBU19HZXRQYXJlbnRTcGFjZUlEKCkNCnsNCglyZXR1cm4gIiI7DQp9DQo8L3Nj cmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ZnVuY3Rpb24gZ2V0SlNVdGlsVmVy c2lvbk9iamVjdCgpIHsgcmV0dXJuICdqc3BvcnRsZXRfMTgxODE5Jzt9PC9zY3JpcHQ+PHNjcmlw dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL3JvY2tmb3JkLmRldm5ldC5wbHVt dHJlZS5jb20vaW1hZ2VzZXJ2ZXIvcGx1bXRyZWUvcG9ydGFsL3ByaXZhdGUvanMvcHRjb21tb25v cGVuZXIuanMiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vKiogVGhl IG9iamVjdCB0aGF0IGhvbGRzIHRoZSBzYWZlIHZhcmlhYmxlcy4gU3RvcmUgdGhlIHZhcnMgYXMg cHJvcGVydGllcyBvbiB0aGUgb2JqZWN0LCBsaWtlIGEgaGFzaHRhYmxlLiAqKi8NCnZhciBnU2Fm ZUpTVmFyQ29udGFpbmVyID0gbmV3IE9iamVjdCgpOw0KLyoqIERlZmluZSBhIG5ldyBzYWZlIHZh cmlhYmxlLCBwYXNzIHRoZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHZhbHVlLlJldHVybnMgdHJ1ZSBp ZiBzdWNjZXNzZnVsLCBtZXRob2QgY2FsbCB3aWxsIGZhaWwgaWYgdGhlIHZhbHVlIGlzIGludmFs aWQuICoqLw0KZnVuY3Rpb24gYWRkU2FmZVZhcihzdHJOYW1lLCBvVmFsdWUpIHsNCglnU2FmZUpT VmFyQ29udGFpbmVyW3N0ck5hbWVdID0gb1ZhbHVlOw0KCXJldHVybiB0cnVlOw0KfQ0KLyoqIFJl dHJpZXZlIGEgc2FmZSB2YXIuIFJldHVybnMgZmFsc2UgaWYgdGhlIHZhcmlhYmxlIGlzIHVuZGVm aW5lZCAgb3IgaWYgdGhlIHZhbHVlIGlzIGFjdHVhbGx5IGZhbHNlLCBidXQgc2FmZSB2YXJzIHNo b3VsZG4ndCBiZSB1c2VkdG8gc3RvcmUgc2ltcGxlIGJvb2xlYW4gdmFsdWVzIGFueXdheS4gKiov DQpmdW5jdGlvbiBnZXRTYWZlVmFyKHN0ck5hbWUpIHsNCgl2YXIgdGVtcCA9IGdTYWZlSlNWYXJD b250YWluZXJbc3RyTmFtZV07DQoJaWYgKHRlbXApIHsgcmV0dXJuIHRlbXA7IH0NCgllbHNlIHsg cmV0dXJuIGZhbHNlO30NCn0NCi8qKiBSZXRyaWV2ZSBhIHNhZmUgdmFyLCBpZiB0aGUgdmFyaWFi bGUgaXMgdW5kZWZpbmVkIGFuIGFsZXJ0IHdpbGwgc2hvd3dpdGggdGhlIG5hbWUgb2YgdGhlIHZh cmlhYmxlLiBVc2UgdGhpcyBtZXRob2QgdG8gcmV0cmlldmUgY3JpdGljYWx2YXJpYWJsZXMuICoq Lw0KZnVuY3Rpb24gZ2V0U2FmZVZhcldhcm4oc3RyTmFtZSkgew0KCXZhciB0ZW1wID0gZ1NhZmVK U1ZhckNvbnRhaW5lcltzdHJOYW1lXTsNCglpZiAodGVtcCkgeyByZXR1cm4gdGVtcDsgfQ0KCWVs c2UgeyBhbGVydCgnU2FmZSBWYXJpYWJsZTogJytzdHJOYW1lKycgaXMgbm90IGRlZmluZWQhJyk7 IH0NCn0NCjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhU2NyaXB0Ij4JZnVuY3Rpb24g YnVpbGRVUkxGcm9tVGVtcGxhdGUoc3RySUQpDQoJew0KCQl2YXIgYXJBcmdzID0gc3RySUQuc3Bs aXQoJywnKTsNCglpZighYXJBcmdzKXsNCgkgIGFsZXJ0KCdJbnZhbGlkIG1lbnUgSUQnKTsNCgkg IHJldHVybiBudWxsOyB9DQoJaWYoYXJBcmdzWzBdID09ICdDJyl7DQoJIHZhciBzdHJDb21tVVJM ID0gUFRDb21tb25PcGVuZXIuZ2V0T3BlbmVyVVJMT3Blbk9iaklEKDUxMiwgYXJBcmdzWzFdLCAn JlBhZ2VJRD0nK2FyQXJnc1syXSsnJywgMikNCgkgaWYgKCBhckFyZ3MubGVuZ3RoID4gMykgeyBz dHJDb21tVVJMICs9ICcmUHJvZmlsZUlEPScrYXJBcmdzWzNdOyB9DQoJICByZXR1cm4gc3RyQ29t bVVSTDsNCgl9IGVsc2UgaWYgKGFyQXJnc1swXSA9PSAnTScpIHsNCgkgcmV0dXJuIFBUQ29tbW9u T3BlbmVyLmdldE9wZW5lclVSTE9wZW5PYmpJRCg1MTgsIDIsICcmUGFnZUlEPScrYXJBcmdzWzFd KycnLCAyKQ0KCX0gZWxzZSBpZiAoYXJBcmdzWzBdID09ICdTTScpIHsNCgkgIHJldHVybiAnaHR0 cDovL3JvY2tmb3JkL3BvcnRhbC9zZXJ2ZXIucHQ/b3Blbj1zcGFjZSZuYW1lPVNpdGVNYXAmcHNu YW1lPUxvZ2luJnBzaWQ9MCZjYWNoZWQ9dHJ1ZSZpbl9oaV91c2VyaWQ9MiZjb250cm9sPVNldFNp dGVNYXAmQ29tbXVuaXR5SUQ9JythckFyZ3NbMV0rJyZNb2RlPScrYXJBcmdzWzJdKyhldmFsKGFy QXJnc1szXSkgPyAnJlByZXZpZXc9JyA6ICcnKTsNCgl9IGVsc2UgaWYgKGFyQXJnc1swXSA9PSAn UycpIHsNCgkgIHJldHVybiBudWxsOw0KCX0gZWxzZSBpZiAoYXJBcmdzWzBdID09ICdFJykgew0K CSAgICB2YXIgcGFyYW1zID0gJyc7DQoJICAgIGlmICggYXJBcmdzLmxlbmd0aCA+IDEgKSB7DQoJ ICAgICAgZm9yICggdmFyIGkgPSAyOyBpIDwgYXJBcmdzLmxlbmd0aDsgaSsrICkgew0KCSAgICAg ICAgcGFyYW1zICs9ICcmJyArIGFyQXJnc1tpXTsNCgkgICAgICB9IH0NCgkgIHJldHVybiAnaHR0 cDovL3JvY2tmb3JkL3BvcnRhbC9zZXJ2ZXIucHQ/b3Blbj1zcGFjZSZuYW1lPScrYXJBcmdzWzFd KycmcHNuYW1lPUxvZ2luJnBzaWQ9MCZjYWNoZWQ9dHJ1ZSZpbl9oaV91c2VyaWQ9MicgKyBwYXJh bXM7DQoJfSBlbHNlIGlmIChhckFyZ3NbMF0gPT0gJ0QnKSB7DQoJIHJldHVybiBQVENvbW1vbk9w ZW5lci5nZXRPcGVuZXJVUkxPcGVuT2JqSUQoMTcsIGFyQXJnc1syXSwgJyZEaXJNb2RlPScrYXJB cmdzWzFdKycnLCAyKQ0KCX0gZWxzZSBpZiAoYXJBcmdzWzBdID09ICdHMScpIHsNCgkgICAgdmFy IHBhcmFtcyA9ICcnOw0KCSAgICBpZiAoIGFyQXJncy5sZW5ndGggPiAxICkgew0KCSAgICAgIGZv ciAoIHZhciBpID0gMjsgaSA8IGFyQXJncy5sZW5ndGg7IGkrKyApIHsNCgkgICAgICAgIHBhcmFt cyArPSAnJicgKyBhckFyZ3NbaV07DQoJICAgICAgfSB9DQoJICByZXR1cm4gJ2h0dHA6Ly9yb2Nr Zm9yZC9wb3J0YWwvc2VydmVyLnB0P29wZW49c3BhY2UmbmFtZT0nK2FyQXJnc1sxXSsnJnBzbmFt ZT1Mb2dpbiZwc2lkPTAmY2FjaGVkPXRydWUmaW5faGlfdXNlcmlkPTInICsgcGFyYW1zOw0KCX0g ZWxzZSB7DQoJICAgIGFsZXJ0KCdVUkwgVHlwZSBpcyBub3QgZGVmaW5lZCcpOw0KCSAgICByZXR1 cm4gbnVsbDsgfQ0KCX0NCglmdW5jdGlvbiB0ZW1wbGF0ZVVSTFJlZGlyZWN0KHRlbXBsYXRlVVJM KSB7DQoJICBpZiAodGVtcGxhdGVVUkwgPT0gbnVsbCkgeyByZXR1cm4gbnVsbDsgfQ0KCSAgdmFy IGFyQXJncyA9IHRlbXBsYXRlVVJMLnNwbGl0KCcsJyk7DQoJIGlmIChhckFyZ3NbMF0gPT0gJ1VQ Jykgew0KCVBUQ29tbW9uT3BlbmVyLm9wZW5JblNhbWVXaW5kb3coUFRDb21tb25PcGVuZXIuZ2V0 T3BlbmVyVVJMT3Blbk9iaklEKDEsIGFyQXJnc1sxXSwgJ251bGwnLCAyKSk7DQoJfSBlbHNlIGlm IChhckFyZ3NbMF0gPT0gJ0RPJykgew0KCVBUQ29tbW9uT3BlbmVyLm9wZW5JblNhbWVXaW5kb3co UFRDb21tb25PcGVuZXIuZ2V0T3BlbmVyVVJMT3Blbk9iaklEKDE4LCBhckFyZ3NbMV0sICdudWxs JywgMikpOw0KCX0gZWxzZSBpZiAoYXJBcmdzWzBdID09ICdGJykgew0KCSAgd2luZG93LmxvY2F0 aW9uID0gYXJBcmdzWzFdOw0KCSB9IGVsc2Ugew0KCSAgIHdpbmRvdy5sb2NhdGlvbiA9IGJ1aWxk VVJMRnJvbVRlbXBsYXRlKHRlbXBsYXRlVVJMKTsNCgkgfQ0KCSANCgl9DQo8L3NjcmlwdD48c2Ny aXB0IHR5cGU9InRleHQvamF2YVNjcmlwdCIgc3JjPSJodHRwOi8vcm9ja2ZvcmQuZGV2bmV0LnBs dW10cmVlLmNvbS9pbWFnZXNlcnZlci9wbHVtdHJlZS9wb3J0YWwvcHJpdmF0ZS9qcy9uYXZqc3Bv cnRhbG1lbnVmdW5jcy5qcyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFTY3JpcHQi IHNyYz0iaHR0cDovL3JvY2tmb3JkLmRldm5ldC5wbHVtdHJlZS5jb20vaW1hZ2VzZXJ2ZXIvcGx1 bXRyZWUvcG9ydGFsL3ByaXZhdGUvanMvbmF2dGFic2VjdGlvbnMuanMiPjwvc2NyaXB0PjxzY3Jp cHQgdHlwZT0idGV4dC9qYXZhU2NyaXB0IiBzcmM9Imh0dHA6Ly9yb2NrZm9yZC5kZXZuZXQucGx1 bXRyZWUuY29tL2ltYWdlc2VydmVyL3BsdW10cmVlL3BvcnRhbC9wcml2YXRlL2pzL25hdmpzcG9y dGFsbWVudWNvbW1vbi5qcyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi PiAvLyBPdmVycmlkaW5nIGRlZmF1bHQgdmFsdWUgd2l0aCBOYXZpZ2F0aW9uU2V0dGluZ3MueG1s IHZhbHVlDQoJZ01lbnVDZWxsV2lkdGggPSAxODg7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0 L2phdmFzY3JpcHQiPiAvLyBPdmVycmlkaW5nIGRlZmF1bHQgdmFsdWUgd2l0aCBOYXZpZ2F0aW9u U2V0dGluZ3MueG1sIHZhbHVlDQoJZ0hvcml6b250YWxUYWJXaWR0aCA9IDE1MDs8L3NjcmlwdD48 c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIGdOYXZUYWJEb3duQXJyb3dJbWFnZUFs dCA9ICdFeHBhbmQgTWVudSc7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi PmRvY3VtZW50LlBDQy5SZWdpc3RlckZvcldpbmRvd0V2ZW50KCJvbmZvY3VzIiwgQ2hlY2tGb3JQ YWdlUmVsb2FkKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIHdp bmRvd09ubG9hZEZ1bmN0aW9uID0gKHdpbmRvdy5vbmxvYWQpID8gd2luZG93Lm9ubG9hZCA6IG5l dyBGdW5jdGlvbjsNCmRvY3VtZW50LlBDQy5SZWdpc3RlckZvcldpbmRvd0V2ZW50KCJvbmxvYWQi LCB3aW5kb3dPbmxvYWRGdW5jdGlvbik7DQp2YXIgd2luZG93T25CbHVyRnVuY3Rpb24gPSAod2lu ZG93Lm9uYmx1cikgPyB3aW5kb3cub25ibHVyIDogbmV3IEZ1bmN0aW9uOw0KZG9jdW1lbnQuUEND LlJlZ2lzdGVyRm9yV2luZG93RXZlbnQoIm9uYmx1ciIsIHdpbmRvd09uQmx1ckZ1bmN0aW9uKTsN CnZhciB3aW5kb3dPbkZvY3VzRnVuY3Rpb24gPSAod2luZG93Lm9uZm9jdXMpID8gd2luZG93Lm9u Zm9jdXMgOiBuZXcgRnVuY3Rpb247DQpkb2N1bWVudC5QQ0MuUmVnaXN0ZXJGb3JXaW5kb3dFdmVu dCgib25mb2N1cyIsIHdpbmRvd09uRm9jdXNGdW5jdGlvbik7DQo8L3NjcmlwdD4NCjwvaGVhZD4N Cg0KDQoNCjxib2R5IG9uYWN0aXZhdGU9ImRvY3VtZW50LlBDQy5SYWlzZVdpbmRvd0V2ZW50KGV2 ZW50KTsiIG9uYWZ0ZXJwcmludD0iZG9jdW1lbnQuUENDLlJhaXNlV2luZG93RXZlbnQoZXZlbnQp OyIgb25iZWZvcmVhY3RpdmF0ZT0iZG9jdW1lbnQuUENDLlJhaXNlV2luZG93RXZlbnQoZXZlbnQp OyIgb25iZWZvcmV1bmxvYWQ9ImRvY3VtZW50LlBDQy5SYWlzZVdpbmRvd0V2ZW50KGV2ZW50KTsi IG9uYmx1cj0iZG9jdW1lbnQuUENDLlJhaXNlV2luZG93RXZlbnQoZXZlbnQpOyIgb25jb250cm9s c2V0PSJkb2N1bWVudC5QQ0MuUmFpc2VXaW5kb3dFdmVudChldmVudCk7IiBvbmRlYWN0aXZhdGU9 ImRvY3VtZW50LlBDQy5SYWlzZVdpbmRvd0V2ZW50KGV2ZW50KTsiIG9uZXJyb3I9ImRvY3VtZW50 LlBDQy5SYWlzZVdpbmRvd0V2ZW50KGV2ZW50KTsiIG9uZm9jdXM9ImRvY3VtZW50LlBDQy5SYWlz ZVdpbmRvd0V2ZW50KGV2ZW50KTsiIG9uaGVscD0iZG9jdW1lbnQuUENDLlJhaXNlV2luZG93RXZl bnQoZXZlbnQpOyIgb25sb2FkPSJkb2N1bWVudC5QQ0MuUmFpc2VXaW5kb3dFdmVudChldmVudCk7 IiBvbnJlc2l6ZT0iZG9jdW1lbnQuUENDLlJhaXNlV2luZG93RXZlbnQoZXZlbnQpOyIgb25yZXNp emVlbmQ9ImRvY3VtZW50LlBDQy5SYWlzZVdpbmRvd0V2ZW50KGV2ZW50KTsiIG9ucmVzaXplc3Rh cnQ9ImRvY3VtZW50LlBDQy5SYWlzZVdpbmRvd0V2ZW50KGV2ZW50KTsiIG9udW5sb2FkPSJkb2N1 bWVudC5QQ0MuUmFpc2VXaW5kb3dFdmVudChldmVudCk7IiBtYXJnaW53aWR0aD0iMCIgbWFyZ2lu aGVpZ2h0PSIwIiBsZWZ0bWFyZ2luPSIwIiB0b3BtYXJnaW49IjAiIGNsYXNzPSJwdFBhZ2VVc2Vy LWd1ZXN0Ij48ZGl2IGNsYXNzPSJwb3J0YWxDb250ZW50Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAi IGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjbGFzcz0iYmFuVG9wYmFy QmciIGlkPSJwdC10b3BiYXIiPjx0cj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0ibWlkZGxlIiBu b3dyYXA9Im5vd3JhcCI+DQoNCjxzcGFuIGNsYXNzPSJiYW5HcmVldGluZ1RleHQgYmFuVGV4dCIg aWQ9InB0LXVzZXItbmF2Ij4NCg0KPHNwYW4gaWQ9InB0LXdlbGNvbWUtdGV4dCI+V2VsY29tZSwg R3Vlc3Q8L3NwYW4+DQoNCjxzcGFuIGNsYXNzPSJzcGFjZXIiIHN0eWxlPSJwYWRkaW5nLWxlZnQ6 OHB4OyI+PC9zcGFuPg0KDQoNCg0KPHNwYW4gY2xhc3M9InNwYWNlciIgc3R5bGU9InBhZGRpbmct bGVmdDo4cHg7Ij48L3NwYW4+DQoNCjxzcGFuIGlkPSJwdC1sb2dpbi1saW5rIj48YSBocmVmPSJo dHRwOi8vcm9ja2ZvcmQvcG9ydGFsL3NlcnZlci5wdD9vcGVuPXNwYWNlJm5hbWU9TG9naW4maWQ9 Y2FjaGVkJnBzbmFtZT1Mb2dpbiZwc2lkPTAmaW5faGlfdXNlcmlkPTImY2FjaGVkPXRydWUmY29u dHJvbD1Mb2dpbiZsb2dpbj0iIHRpdGxlPSJMb2cgSW4iPkxvZyBJbjwvYT48L3NwYW4+DQoNCjwv c3Bhbj48L3RkPg0KPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJtaWRkbGUiIG5vd3JhcD0ibm93 cmFwIj4NCg0KPHNwYW4gY2xhc3M9ImJhbkhlbHBUZXh0IiBpZD0icHQtaGVscC1idXR0b24iPjxh IGhyZWY9IiMiIHRpdGxlPSJHbyB0byBIZWxwIFNlY3Rpb24iIG9uY2xpY2s9IlBUUm9ib0hlbHAu bGF1bmNoSGVscCggJ3B0X2xvZ2luLmh0bScsICdodHRwOi8vcm9ja2ZvcmQuZGV2bmV0LnBsdW10 cmVlLmNvbS9pbWFnZXNlcnZlci9wbHVtdHJlZS9wb3J0YWwvcHJpdmF0ZS9oZWxwL3N0ZC9lbi9w b3J0YWxoZWxwLmh0bScsICc2MDAnLCAnNjAwJyApOyByZXR1cm4gZmFsc2U7Ij48aW1nIHNyYz0i aHR0cDovL3JvY2tmb3JkLmRldm5ldC5wbHVtdHJlZS5jb20vaW1hZ2VzZXJ2ZXIvcGx1bXRyZWUv cG9ydGFsL3B1YmxpYy9pbWcvaWNvbl9oZWxwLmdpZiIgYWx0PSJHbyB0byBIZWxwIFNlY3Rpb24i IGJvcmRlcj0iMCIgYWxpZ249ImFic21pZGRsZSIgaGVpZ2h0PSIxNiIgd2lkdGg9IjE2Ii8+SGVs cDwvYT4NCg0KPC9zcGFuPjxpbWcgc3JjPSJodHRwOi8vcm9ja2ZvcmQuZGV2bmV0LnBsdW10cmVl LmNvbS9pbWFnZXNlcnZlci9wbHVtdHJlZS9wb3J0YWwvcHVibGljL2ltZy9zcC5naWYiIGFsdD0i IiBib3JkZXI9IjAiIGFsaWduPSJhYnNtaWRkbGUiIGhlaWdodD0iMTAwJSIgd2lkdGg9IjEiIGNs YXNzPSJiZ0RhcmsiLz48c3BhbiBjbGFzcz0iYmFuR3JlZXRpbmdUZXh0IiBpZD0icHQtc2VhcmNo LWNvbnRyb2xzIj48Zm9ybSBtZXRob2Q9ImdldCIgYWN0aW9uPSJodHRwOi8vcm9ja2ZvcmQvcG9y dGFsL3NlcnZlci5wdD8iIG9uc3VibWl0PSJyZXR1cm4gY2hlY2tTZWFyY2hwdGJhbm5lcigpOyIg bmFtZT0icHRiYW5uZXIiIGlkPSJwdGJhbm5lciI+PGlucHV0IHR5cGU9ImhpZGRlbiIgYWx0PSIi IG5hbWU9ImluX2hpX3NwYWNlIiBpZD0iaW5faGlfc3BhY2UiIHZhbHVlPSJTZWFyY2hSZXN1bHQi PjwvaW5wdXQ+PGlucHV0IHR5cGU9ImhpZGRlbiIgYWx0PSIiIG5hbWU9ImluX2hpX2NvbnRyb2wi IGlkPSJpbl9oaV9jb250cm9sIiB2YWx1ZT0iYmFubmVyc3RhcnQiPjwvaW5wdXQ+PGlucHV0IHR5 cGU9ImhpZGRlbiIgYWx0PSIiIG5hbWU9ImluX2hpX3VzZXJpZCIgaWQ9ImluX2hpX3VzZXJpZCIg dmFsdWU9IjIiPjwvaW5wdXQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFTY3JpcHQiPmZ1bmN0aW9u IGNoZWNrU2VhcmNocHRiYW5uZXIoKQ0Kew0KICB2YXIgc2VhcmNoRm9ybSA9IGRvY3VtZW50LnB0 YmFubmVyOw0KICBmb3IgKHZhciBpID0gMDsgaSA8IHNlYXJjaEZvcm0uZWxlbWVudHMubGVuZ3Ro OyBpKyspIHsNCiAgICBpZiAoc2VhcmNoRm9ybS5lbGVtZW50c1tpXS5uYW1lID09ICJpbl90eF9x dWVyeSIpIHsNCiAgICAgaWYgKHNlYXJjaEZvcm0uZWxlbWVudHNbaV0udmFsdWUgPT0gIiIpIHsN CiAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgfQ0KICAgIHJldHVybiB0cnVlOw0KICAgIH0NCiAg fQ0KICByZXR1cm4gZmFsc2U7DQp9DQpmdW5jdGlvbiBzdWJtaXRTZWFyY2hwdGJhbm5lcigpIHsN CiAgaWYgKGNoZWNrU2VhcmNocHRiYW5uZXIoKSkgew0KICAgIHZhciBzZWFyY2hGb3JtID0gZG9j dW1lbnQucHRiYW5uZXI7DQogICAgc2VhcmNoRm9ybS5zdWJtaXQoKTsNCiAgfSBlbHNlIHsNCiAg ICBhbGVydCgnWW91ciBzZWFyY2ggYm94IHdhcyBlbXB0eS4gUGxlYXNlIGVudGVyIHNvbWUgdGV4 dCBpbiB0aGUgc2VhcmNoIGJveC4nKTsNCiAgfQ0KfQ0KZnVuY3Rpb24gaGFuZGxlS2V5RG93bnB0 YmFubmVyKGV2dCkgew0KIGV2dCA9IChldnQpID8gZXZ0IDogKChldmVudCkgPyBldmVudCA6IG51 bGwpOw0KIGlmIChldnQua2V5Q29kZSA9PSAxMyl7DQoJICBpZiAoY2hlY2tTZWFyY2hwdGJhbm5l cigpKSB7DQoJCSAgIHJldHVybiB0cnVlOw0KCSAgfSBlbHNlIHsNCgkgICAgICAgYWxlcnQoJ1lv dXIgc2VhcmNoIGJveCB3YXMgZW1wdHkuIFBsZWFzZSBlbnRlciBzb21lIHRleHQgaW4gdGhlIHNl YXJjaCBib3guJyk7DQoJICAgICAgIHJldHVybiBmYWxzZTsNCgkgIH0NCiB9DQogcmV0dXJuIHRy dWU7DQp9DQo8L3NjcmlwdD5TZWFyY2g6IDxzcGFuIGNsYXNzPSJzcGFjZXIiIHN0eWxlPSJwYWRk aW5nLWxlZnQ6NnB4OyI+PC9zcGFuPiZuYnNwOzxpbnB1dCB0eXBlPSJ0ZXh0IiBhbHQ9IlNlYXJj aCIgb25rZXlkb3duPSJyZXR1cm4gaGFuZGxlS2V5RG93bnB0YmFubmVyKGV2ZW50KTsiIHNpemU9 IjIwIiBtYXhsZW5ndGg9IjIwMCIgY2xhc3M9ImZvcm1UZXh0Ym94VGV4dCIgbmFtZT0iaW5fdHhf cXVlcnkiIHRpdGxlPSJTZWFyY2giIGlkPSJpbnB1dDU0IiB2YWx1ZT0iIj48L2lucHV0PiZuYnNw OzxzcGFuIGlkPSJwdC1zZWFyY2gtc3VibWl0LWJ1dHRvbiI+PGEgaHJlZj0iIyIgdGl0bGU9IlNl YXJjaCIgb25jbGljaz0ic3VibWl0U2VhcmNocHRiYW5uZXIoKTsgcmV0dXJuIGZhbHNlOyI+PGlt ZyBzcmM9Imh0dHA6Ly9yb2NrZm9yZC5kZXZuZXQucGx1bXRyZWUuY29tL2ltYWdlc2VydmVyL3Bs dW10cmVlL3BvcnRhbC9wdWJsaWMvaW1nL2FjdGlvbl9zZWFyY2hfYnV0dG9uLmdpZiIgYWx0PSJT ZWFyY2giIGJvcmRlcj0iMCIgYWxpZ249ImFic21pZGRsZSIgaGVpZ2h0PSIyMCIgd2lkdGg9IjMw Ii8+PC9hPjwvc3Bhbj4mbmJzcDs8c3BhbiBpZD0icHQtYWR2YW5jZWQtc2VhcmNoLWJ1dHRvbiI+ PGEgaHJlZj0iaHR0cDovL3JvY2tmb3JkL3BvcnRhbC9zZXJ2ZXIucHQ/b3Blbj1zcGFjZSZuYW1l PUFkdmFuY2VkU2VhcmNoJnBzbmFtZT1Mb2dpbiZwc2lkPTAmY2FjaGVkPXRydWUmaW5faGlfdXNl cmlkPTImY29udHJvbD1FZGl0b3JTdGFydCZlZGl0b3JUeXBlPTEwIiB0aXRsZT0iQWR2YW5jZWQg U2VhcmNoIj48aW1nIHNyYz0iaHR0cDovL3JvY2tmb3JkLmRldm5ldC5wbHVtdHJlZS5jb20vaW1h Z2VzZXJ2ZXIvcGx1bXRyZWUvcG9ydGFsL3ByaXZhdGUvaW1nL2FjdGlvbl9zZWFyY2hfYnV0dG9u X2FkdmFuY2VkLmdpZiIgYWx0PSJBZHZhbmNlZCBTZWFyY2giIGJvcmRlcj0iMCIgYWxpZ249ImFi c21pZGRsZSIgaGVpZ2h0PSIyMCIgd2lkdGg9IjIwIi8+PC9hPjwvc3Bhbj4mbmJzcDs8c3BhbiBp ZD0icHQtZmVkZXJhdGVkLXNlYXJjaC1idXR0b24iPjxhIGhyZWY9Imh0dHA6Ly9yb2NrZm9yZC9w b3J0YWwvc2VydmVyLnB0P29wZW49c3BhY2UmbmFtZT1OZXR3b3JrU2VhcmNoJnBzbmFtZT1Mb2dp biZwc2lkPTAmY2FjaGVkPXRydWUmaW5faGlfdXNlcmlkPTImY29udHJvbD1OZXR3b3JrU2VhcmNo IiB0aXRsZT0iRmVkZXJhdGVkIFNlYXJjaCI+PGltZyBzcmM9Imh0dHA6Ly9yb2NrZm9yZC5kZXZu ZXQucGx1bXRyZWUuY29tL2ltYWdlc2VydmVyL3BsdW10cmVlL3BvcnRhbC9wcml2YXRlL2ltZy9h Y3Rpb25fc2VhcmNoX2J1dHRvbl9uZXR3b3JrLmdpZiIgYWx0PSJGZWRlcmF0ZWQgU2VhcmNoIiBi b3JkZXI9IjAiIGFsaWduPSJhYnNtaWRkbGUiIGhlaWdodD0iMjAiIHdpZHRoPSIyMCIvPjwvYT48 L3NwYW4+PC9mb3JtPg0KPC9zcGFuPjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjxzY3JpcHQgdHlw ZT0idGV4dC9qYXZhc2NyaXB0Ij4NCmFkZFNhZmVWYXIoJ0RhdGFBUm15cGFnZScsIFtbJ2h0dHA6 Ly9yb2NrZm9yZC5kZXZuZXQucGx1bXRyZWUuY29tL2ltYWdlc2VydmVyL3BsdW10cmVlL3BvcnRh bC9wdWJsaWMvaW1nL2ljb25fbXlwYWdlX21lbnUuZ2lmJywgJzIwJywnPHNwYW4+SG9tZSBQYWdl PC9zcGFuPicsIk0sMTAxIl0JCV0NCik7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz Y3JpcHQiPg0KYWRkU2FmZVZhcignRGF0YUFSY29tbXMnLCBbCQldDQopOzwvc2NyaXB0PjxzY3Jp cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCmFkZFNhZmVWYXIoJ0RhdGFBUmRvY3MnLCBbWydo dHRwOi8vcm9ja2ZvcmQuZGV2bmV0LnBsdW10cmVlLmNvbS9pbWFnZXNlcnZlci9wbHVtdHJlZS9w b3J0YWwvcHVibGljL2ltZy9pY29uX2Jyb3dzZV9tZW51LmdpZicsICcyMCcsJzxzcGFuPkJyb3dz ZSBEaXJlY3Rvcnk8L3NwYW4+JywiRCwxLC0xIl0JCV0NCik7PC9zY3JpcHQ+PHNjcmlwdCB0eXBl PSJ0ZXh0L2phdmFzY3JpcHQiPg0KYWRkU2FmZVZhcignbWFuZFRhYnNBcnJheScsIFsNCgkJXQ0K KTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQphZGRTYWZlVmFyKCdk ZFRhYnNBcnJheScsIFsgWyJNeSBQYWdlcyIsIm15cGFnZSIsIm51bGwiXQ0KLFsiRGlyZWN0b3J5 IiwiZG9jcyIsIm51bGwiXQ0KXSk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiPglmdW5jdGlvbiB3cml0ZVN0YXJ0VGFibGUoKSB7IGRvY3VtZW50LndyaXRlKCc8dGFibGUg Y2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIj48 dHIgY2xhc3M9Im5hdk1pZHRhYkJnIj4nKTsgfQ0KCWZ1bmN0aW9uIHdyaXRlRW5kT2ZUYWJsZSgp IHsgZG9jdW1lbnQud3JpdGUoJzx0ZCB3aWR0aD0iMTAwJSIgY2xhc3M9ImJhbkhlYWRlckJnIj4m bmJzcDs8L3RkPjwvdHI+PC90YWJsZT4nKTsgfQ0KCWZ1bmN0aW9uIHdyaXRlU3BhY2VyVGFibGUo KSB7IGRvY3VtZW50LndyaXRlKCc8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIw IiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIj48dHIgY2xhc3M9ImJhbkhlYWRlckJnIj48dGQgY29s c3Bhbj0iMSIgY2xhc3M9Im5hdk1pZHRhYlNwYWNlckJnIj48aW1nIHNyYz0iaHR0cDovL3JvY2tm b3JkLmRldm5ldC5wbHVtdHJlZS5jb20vaW1hZ2VzZXJ2ZXIvcGx1bXRyZWUvcG9ydGFsL3B1Ymxp Yy9pbWcvc3AuZ2lmIiBhbHQ9IiIgYm9yZGVyPSIwIiBoZWlnaHQ9IjQiIHdpZHRoPSIxIi8+PC90 ZD48L3RyPjwvdGFibGU+Jyk7IH0NCglmdW5jdGlvbiB3cml0ZVNwYWNlckNlbGwoKSB7IGRvY3Vt ZW50LndyaXRlKCc8dGQgY29sc3Bhbj0iMSIgY2xhc3M9Im5hdk1pZHRhYlNwYWNlckJnIj48aW1n IHNyYz0iaHR0cDovL3JvY2tmb3JkLmRldm5ldC5wbHVtdHJlZS5jb20vaW1hZ2VzZXJ2ZXIvcGx1 bXRyZWUvcG9ydGFsL3B1YmxpYy9pbWcvc3AuZ2lmIiBhbHQ9IiIgYm9yZGVyPSIwIiBoZWlnaHQ9 IjEiIHdpZHRoPSI0Ii8+PC90ZD4nKTsgfQ0KPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2ph dmFTY3JpcHQiPjwvc2NyaXB0PjwhLS0gc3RhcnQgTkFWIERIVE1MIE1JREJBUiAtLT48c2NyaXB0 IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCB8 fCAhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1N0cmluZ3MtUFRVLURhdGUtZW4tanMnKSkgew0K CQlkb2N1bWVudC53cml0ZSgnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGlkPSJTdHJp bmdzLVBUVS1EYXRlLWVuLWpzIiBzcmM9Imh0dHA6Ly9yb2NrZm9yZC5kZXZuZXQucGx1bXRyZWUu Y29tL2ltYWdlc2VydmVyL3BsdW10cmVlL2NvbW1vbi9wcml2YXRlL2pzL2pzdXRpbC8xNzA5NzIv U3RyaW5ncy9QVFUtRGF0ZS1lbi5qcyI+PC9zY3InICsgJ2lwdD4nKTsNCgl9DQo8L3NjcmlwdD4N CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCglpZiAoIWRvY3VtZW50LmdldEVsZW1l bnRCeUlkIHx8ICFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnU3RyaW5ncy1QVFUtTnVtYmVyLWVu LWpzJykpIHsNCgkJZG9jdW1lbnQud3JpdGUoJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0 IiBpZD0iU3RyaW5ncy1QVFUtTnVtYmVyLWVuLWpzIiBzcmM9Imh0dHA6Ly9yb2NrZm9yZC5kZXZu ZXQucGx1bXRyZWUuY29tL2ltYWdlc2VydmVyL3BsdW10cmVlL2NvbW1vbi9wcml2YXRlL2pzL2pz dXRpbC8xNzA5NzIvU3RyaW5ncy9QVFUtTnVtYmVyLWVuLmpzIj48L3NjcicgKyAnaXB0PicpOw0K CX0NCjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCWlmICghZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQgfHwgIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdQVFV0aWwt anMnKSkgew0KCQlkb2N1bWVudC53cml0ZSgnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi IGlkPSJQVFV0aWwtanMiIHNyYz0iaHR0cDovL3JvY2tmb3JkLmRldm5ldC5wbHVtdHJlZS5jb20v aW1hZ2VzZXJ2ZXIvcGx1bXRyZWUvY29tbW9uL3ByaXZhdGUvanMvanN1dGlsLzE3MDk3Mi9QVFV0 aWwuanMiPjwvc2NyJyArICdpcHQ+Jyk7DQoJfQ0KPC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRl eHQvamF2YXNjcmlwdCI+DQoJaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCB8fCAhZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoJ1BURGF0ZUZvcm1hdHMtanMnKSkgew0KCQlkb2N1bWVudC53cml0 ZSgnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGlkPSJQVERhdGVGb3JtYXRzLWpzIiBz cmM9Imh0dHA6Ly9yb2NrZm9yZC5kZXZuZXQucGx1bXRyZWUuY29tL2ltYWdlc2VydmVyL3BsdW10 cmVlL2NvbW1vbi9wcml2YXRlL2pzL2pzdXRpbC8xNzA5NzIvUFREYXRlRm9ybWF0cy5qcyI+PC9z Y3InICsgJ2lwdD4nKTsNCgl9DQo8L3NjcmlwdD4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlw ZT0idGV4dC9jc3MiIGhyZWY9Imh0dHA6Ly9yb2NrZm9yZC5kZXZuZXQucGx1bXRyZWUuY29tL2lt YWdlc2VydmVyL3BsdW10cmVlL2NvbW1vbi9wcml2YXRlL2pzL2pzcG9ydGFsbWVudXMvMTUxMTUx L3N0eWxlcy9jc3MvUFRQTU1lbnUuY3NzIiAvPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiPg0KCWlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQgfHwgIWRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCdQVFBvcnRhbE1lbnVzLWpzJykpIHsNCgkJZG9jdW1lbnQud3JpdGUoJzxzY3JpcHQg dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBpZD0iUFRQb3J0YWxNZW51cy1qcyIgc3JjPSJodHRwOi8v cm9ja2ZvcmQuZGV2bmV0LnBsdW10cmVlLmNvbS9pbWFnZXNlcnZlci9wbHVtdHJlZS9jb21tb24v cHJpdmF0ZS9qcy9qc3BvcnRhbG1lbnVzLzE1MTE1MS9QVFBvcnRhbE1lbnVzLmpzIj48L3Njcicg KyAnaXB0PicpOw0KCX0NCjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFTY3JpcHQi PndyaXRlUG9ydGFsTWVudURpdnMoZ2V0U2FmZVZhcldhcm4oJ2RkVGFic0FycmF5JykpOw0KaW5p dEREYW5kTWFuVGFic1Jvd3MoZ2V0U2FmZVZhcldhcm4oJ2RkVGFic0FycmF5JyksZ2V0U2FmZVZh cldhcm4oJ21hbmRUYWJzQXJyYXknKSwnaHR0cDovL3JvY2tmb3JkLmRldm5ldC5wbHVtdHJlZS5j b20vaW1hZ2VzZXJ2ZXIvcGx1bXRyZWUvY29tbW9uL3ByaXZhdGUvanMvanNwb3J0YWxtZW51cy8x NTExNTEvc3R5bGVzL2Nzcy9QVFBNTWVudS5jc3MnKTtkb2N1bWVudC5QQ0MuUmVnaXN0ZXJGb3JX aW5kb3dFdmVudCgib25sb2FkIiwgImdiUGFnZUxvYWRlZCA9IHRydWU7IiApOzwvc2NyaXB0Pjwh LS0gZW5kIE5BViBESFRNTCBNSURCQVIgLS0+PHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3Bh Y2luZz0iMCIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgaWQ9InB0LWhlYWRlciI+PHRyIHZhbGln bj0idG9wIiBjbGFzcz0iYmFuSGVhZGVyQmciPjx0ZCBhbGlnbj0ibGVmdCIgY29sc3Bhbj0iMSIg aWQ9InB0LWhlYWRlci1sZWZ0Ij48aW1nIHNyYz0iaHR0cDovL3JvY2tmb3JkLmRldm5ldC5wbHVt dHJlZS5jb20vaW1hZ2VzZXJ2ZXIvcGx1bXRyZWUvcG9ydGFsL3B1YmxpYy9pbWcvUFRfbG9nb19z bV93aHQuZ2lmIiBhbHQ9IlBsdW10cmVlIExvZ28iIGJvcmRlcj0iMCIgYWxpZ249ImFic21pZGRs ZSIgaGVpZ2h0PSI1MCIgd2lkdGg9IjEyNSIvPjwvdGQ+DQo8dGQgYWxpZ249InJpZ2h0IiBub3dy YXA9Im5vd3JhcCIgY29sc3Bhbj0iMSIgaWQ9InB0LWhlYWRlci1yaWdodCI+PGgxIGNsYXNzPSJi YW5IZWFkZXIiPkxvZyBJbjwvaDE+PGgyIGNsYXNzPSJiYW5TdWJoZWFkIj48L2gyPjwvdGQ+DQo8 L3RyPg0KPC90YWJsZT4NCjxzcGFuIGlkPSJiYW5uZXJlbmQiPjwvc3Bhbj48bGF5ZXIgaWQ9Im5z YmFubmVyZW5kIj48L2xheWVyPjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjEw IiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIj48dHI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRv cCIgY29sc3Bhbj0iMSI+PHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgd2lk dGg9IjEwMCUiIGJvcmRlcj0iMCI+PHRyPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGNv bHNwYW49IjEiPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJodHRwOi8vcm9ja2ZvcmQvcG9y dGFsL3NlcnZlci5wdD8iIG5hbWU9Imxmb3JtIiBpZD0ibG9naW5Gb3JtSUQiPjx0YWJsZSBhbGln bj0iY2VudGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSI0MDAiPjx0 cj48dGQgY29sc3Bhbj0iMSIgY2xhc3M9ImxvZ2luVGl0bGUiPldlbGNvbWUgdG8geW91ciBQb3J0 YWwuPC90ZD4NCjwvdHI+DQo8dHI+PHRkIGNvbHNwYW49IjEiIGNsYXNzPSJsb2dpblRleHQiPkxv ZyBpbiB0byB5b3VyIHBlcnNvbmFsaXplZCBQb3J0YWwgYWNjb3VudC48YnIvPjxici8+SWYgeW91 IGhhdmUgYW4gZXhpc3RpbmcgYWNjb3VudCwgZW50ZXIgeW91ciBVc2VybmFtZSBhbmQgUGFzc3dv cmQuIElmIG5lY2Vzc2FyeSwgc2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBBdXRoZW50aWNhdGlvbiBT b3VyY2UuIElmIHlvdSB3YW50IHRvIGxvZyBpbiB0byB0aGUgUG9ydGFsIGF1dG9tYXRpY2FsbHks IGNoZWNrIDxiPlJlbWVtYmVyIG15IFBhc3N3b3JkPC9iPiwgYW5kIHRoZW4gY2xpY2sgPGI+TG9n IEluPC9iPi48YnIvPjxici8+VG8gY3JlYXRlIGEgUG9ydGFsIGFjY291bnQsIGNsaWNrIDxiPkNy ZWF0ZSBhbiBhY2NvdW50PC9iPi48L3RkPg0KPC90cj4NCjwvdGFibGU+DQo8aW5wdXQgdHlwZT0i aGlkZGVuIiBhbHQ9IlRoaXMgaXMgYW4gaW5wdXQiIG5hbWU9ImluX2hpX3NwYWNlIiBpZD0iaW5f aGlfc3BhY2UiIHZhbHVlPSJMb2dpbiI+PC9pbnB1dD48aW5wdXQgdHlwZT0iaGlkZGVuIiBhbHQ9 IlRoaXMgaXMgYW4gaW5wdXQiIG5hbWU9ImluX2hpX3NwYWNlSUQiIGlkPSJpbl9oaV9zcGFjZUlE IiB2YWx1ZT0iMCI+PC9pbnB1dD48aW5wdXQgdHlwZT0iaGlkZGVuIiBhbHQ9IlRoaXMgaXMgYW4g aW5wdXQiIG5hbWU9ImluX2hpX2NvbnRyb2wiIGlkPSJpbl9oaV9jb250cm9sIiB2YWx1ZT0iTG9n aW4iPjwvaW5wdXQ+PGlucHV0IHR5cGU9ImhpZGRlbiIgYWx0PSJUaGlzIGlzIGFuIGlucHV0IiBu YW1lPSJpbl9oaV9kb2xvZ2luIiBpZD0iaW5faGlfZG9sb2dpbiIgdmFsdWU9ImZhbHNlICI+PC9p bnB1dD48dGFibGUgYWxpZ249ImNlbnRlciIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIw IiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibG9naW5UZXh0Ij48L3Rk Pg0KPC90cj4NCjx0cj48IS0tVXNlcm5hbWU6LS0+PHRkIGFsaWduPSJyaWdodCIgd2lkdGg9IjQw JSIgY29sc3Bhbj0iMSIgY2xhc3M9ImxvZ2luU3VidGl0bGUiPlVzZXJuYW1lOjwvdGQ+DQo8dGQg YWxpZ249ImxlZnQiIHdpZHRoPSI2MCUiIGNvbHNwYW49IjEiIGNsYXNzPSJsb2dpblN1YnRpdGxl Ij48aW5wdXQgdHlwZT0idGV4dCIgYWx0PSJVc2VybmFtZToiIHNpemU9IjMwIiBjbGFzcz0iZm9y bUlucHV0Qm94VGV4dCIgbmFtZT0iaW5fdHhfdXNlcm5hbWUiIGlkPSJwdC1sb2dpbi11c2VybmFt ZS10ZXh0Ym94IiBvbmtleXByZXNzPSJyZXR1cm4gZXhlY3V0ZVZpYUVudGVyKGV2ZW50KTsiIHZh bHVlPSIiPjwvaW5wdXQ+PC90ZD4NCjwvdHI+DQo8dHI+PCEtLVBhc3N3b3JkOi0tPjx0ZCBhbGln bj0icmlnaHQiIHdpZHRoPSI0MCUiIGNvbHNwYW49IjEiIGNsYXNzPSJsb2dpblN1YnRpdGxlIj5Q YXNzd29yZDo8L3RkPg0KPCEtLVBhc3N3b3JkIElucHV0LS0+PHRkIGFsaWduPSJsZWZ0IiB3aWR0 aD0iNjAlIiBjb2xzcGFuPSIxIiBjbGFzcz0ibG9naW5UZXh0Ij48aW5wdXQgdHlwZT0icGFzc3dv cmQiIGFsdD0iUGFzc3dvcmQ6IiBzaXplPSIzMCIgY2xhc3M9ImZvcm1JbnB1dEJveFRleHQiIG5h bWU9ImluX3B3X3VzZXJwYXNzIiBpZD0icHQtbG9naW4tcGFzc3dvcmQtZmllbGQiIG9ua2V5cHJl c3M9InJldHVybiBleGVjdXRlVmlhRW50ZXIoZXZlbnQpOyIgdmFsdWU9IiI+PC9pbnB1dD48L3Rk Pg0KPC90cj4NCjx0cj48dGQgYWxpZ249InJpZ2h0IiB3aWR0aD0iNDAlIiBjb2xzcGFuPSIxIiBj bGFzcz0ibG9naW5TdWJ0aXRsZSI+QXV0aGVudGljYXRpb24gU291cmNlOjwvdGQ+DQo8dGQgYWxp Z249ImxlZnQiIHdpZHRoPSI0MCUiIGNvbHNwYW49IjEiIGNsYXNzPSJsb2dpblRleHQiPjxzZWxl Y3QgY2xhc3M9ImZvcm1QdWxsZG93blRleHQiIG5hbWU9ImluX3NlX2F1dGhzb3VyY2UiIGlkPSJw dC1sb2dpbi1hdXRoLXNlbGVjdCIgbGFuZz0iZW4iIG9ua2V5cHJlc3M9InJldHVybiBleGVjdXRl VmlhRW50ZXIoZXZlbnQpOyI+PG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD5QbHVtdHJlZSBVc2Vy IERhdGFiYXNlPC9vcHRpb24+PC9zZWxlY3Q+PC90ZD4NCjwvdHI+DQo8dHI+PHRkIGNvbHNwYW49 IjEiIGNsYXNzPSJsb2dpblRleHQiPiZuYnNwOzwvdGQ+DQo8IS0tUmVtZW1iZXIgbXkgUGFzc3dv cmQtLT48dGQgYWxpZ249ImxlZnQiIGNvbHNwYW49IjEiIGNsYXNzPSJsb2dpblRleHQiPjxpbnB1 dCB0eXBlPSJjaGVja2JveCIgYWx0PSJSZW1lbWJlciBteSBQYXNzd29yZCIgY2xhc3M9ImZvcm1D aGVja2JveFRleHQiIG5hbWU9ImluX2NiX3JlbWVtYmVyIiBpZD0icHQtbG9naW4tcmVtZW1iZXIt Y2hlY2tib3giIHZhbHVlPSIiPjwvaW5wdXQ+UmVtZW1iZXIgbXkgUGFzc3dvcmQ8L3RkPg0KPC90 cj4NCjx0cj48dGQgY29sc3Bhbj0iMSI+PC90ZD4NCjx0ZCBhbGlnbj0ibGVmdCIgY29sc3Bhbj0i MSIgY2xhc3M9ImxvZ2luVGV4dCI+PGlucHV0IHR5cGU9ImJ1dHRvbiIgYWx0PSJMb2cgSW4iIG9u Y2xpY2s9ImRvTG9naW4oKTsgcmV0dXJuIGZhbHNlOyIgY2xhc3M9ImZvcm1CdG5UZXh0IiBuYW1l PSJpbl9idV9Mb2dpbiIgdGl0bGU9IkxvZyBJbiIgaWQ9ImlucHV0NTYiIHZhbHVlPSJMb2cgSW4i PjwvaW5wdXQ+Jm5ic3A7PGEgaHJlZj0iaHR0cDovL3JvY2tmb3JkL3BvcnRhbC9zZXJ2ZXIucHQ/ b3Blbj1zcGFjZSZuYW1lPUNyZWF0ZUFjY291bnRBUyZpZD1jYWNoZWQmcHNuYW1lPUxvZ2luJnBz aWQ9MCZpbl9oaV91c2VyaWQ9MiZjYWNoZWQ9dHJ1ZSZjb250cm9sPUNyZWF0ZUFjY291bnRDb250 cm9sIiB0aXRsZT0iQ3JlYXRlIEFuIEFjY291bnQiPkNyZWF0ZSBhbiBhY2NvdW50PC9hPiZuYnNw OzwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5k b09uTG9hZCgpOw0KPC9zY3JpcHQ+PC9mb3JtPg0KPC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KPC90 ZD4NCjwvdHI+DQo8L3RhYmxlPg0KPHRhYmxlIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0i MCIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgaWQ9InB0LWZvb3RlciI+PHRyPjx0ZCBhbGlnbj0i Y2VudGVyIiB2YWxpZ249Im1pZGRsZSIgY29sc3Bhbj0iMSIgY2xhc3M9ImZvb3RIZWFkZXJCZyBm b290VGV4dCI+PHNwYW4gY2xhc3M9ImZvb3RTdWJ0aXRsZSI+UGx1bXRyZWUgU29mdHdhcmUsIElu Yy48L3NwYW4+Jm5ic3A7NTAwIFNhbnNvbWUgU3RyZWV0LCBTYW4gRnJhbmNpc2NvLCBDYWxpZm9y bmlhIDk0MTExICBQaG9uZTogKDQxNSkgMzk5LTcwNTAgRmF4OiAoNDE1KSAyNjMtODk5MTwvdGQ+ DQo8L3RyPg0KPC90YWJsZT4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5Jbml0aWFs aXplRXZlbnRzKCk7PC9zY3JpcHQ+PC9kaXY+PGRpdiBjbGFzcz0iZXh0ZXJuYWxDb250ZW50Ij48 L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD48IS0tSG9zdG5hbWU6IHJvY2tmb3JkLS0+PCEtLVRvdGFs IFJlcXVlc3QgVGltZTogMTU3DQpDb250cm9sIFRpbWU6IDANClBhZ2UgQ29uc3RydWN0aW9uIFRp bWU6IDEyNQ0KUGFnZSBEaXNwbGF5IFRpbWU6IDANCi0tPjwhLS1Qb3J0YWwgVmVyc2lvbjogNi4w LjAuMTg2NTIzLCBDaGFuZ2VsaXN0OiAxODY1MjMsIEJ1aWxkIERhdGU6IDA2LzAzLzIwMDUgYXQg MDk6MTEgQU0tLT4= |