NwYW4oIkxJU1RfQ09MIiwgJGh0bV9saXN0X3JvdywgJGh0bV9pdGVtX2RldGFpbHMpOwoKJGh0bSA9IGdldF9zdHJfc3BhbigiUFJFVl9QQUdFX0xJTksiLCAkaHRtLCAkaHRtX3ByZXZfcGFnZV9saW5rKTsKCiRodG0gPSBnZXRfc3RyX3NwYW4oIk5FWFRfUEFHRV9MSU5LIiwgJGh0bSwgJGh0bV9uZXh0X3BhZ2VfbGluayk7CgokaHRtID0gZ2V0X3N0cl9zcGFuKCJQUkVWX1BBR0VfTElOSzIiLCAkaHRtLCAkaHRtX3ByZXZfcGFnZV9saW5rMik7CgokaHRtID0gZ2V0X3N0cl9zcGFuKCJORVhUX1BBR0VfTElOSzIiLCAkaHRtLCAkaHRtX25leHRfcGFnZV9saW5rMik7CgokaHRtID0gc3RyX3JlcGxhY2UoIntwYWdlX3RpdGxlfSIsICRxLCAkaHRtKTsKCiRodG0gPSBzdHJfcmVwbGFjZSgie2N1cnJlbnRfcGFnZX0iLCAkcGFnZSwgJGh0bSk7CiRodG0gPSBzdHJfcmVwbGFjZSgie2N1cnJlbnRfcGFnZV9mfSIsIG51bWJlcl9mb3JtYXQoJHBhZ2UpLCAkaHRtKTsKCiRodG0gPSBzdHJfcmVwbGFjZSgie3RvdGFsX3BhZ2VzfSIsICR0b3RhbF9wYWdlcywgJGh0bSk7CiRodG0gPSBzdHJfcmVwbGFjZSgie3RvdGFsX3BhZ2VzX2Z9IiwgbnVtYmVyX2Zvcm1hdCgkdG90YWxfcGFnZXMpLCAkaHRtKTsKCiRodG0gPSBzdHJfcmVwbGFjZSgie3RvdGFsX3Jlc3VsdHN9IiwgJHRvdGFsX3Jlc3VsdHMsICRodG0pOwokaHRtID0gc3RyX3JlcGxhY2UoInt0b3RhbF9yZXN1bHRzX2Z9IiwgbnVtYmVyX2Zvcm1hdCgkdG90YWxfcmVzdWx0cyksICRodG0pOwoKJGh0bSA9IHN0cl9yZXBsYWNlKCJ7cHViX2RhdGV9IiwgZ2V0X2RhdGVfc3RyaW5nKCksICRodG0pOwoKJGh0bSA9IHJlcGxhY2VfbGluaygkaHRtKTsKCmlmICgkcGFnZSA+IDEpIHsKCWlmICgkcGFnZSA9PSAyKSB7CgkJJGh0bV9wcmV2X3BhZ2VfbGluayA9IHN0cl9yZXBsYWNlKCJ7cHJldl9wYWdlfSIsICRlcSAuICIuaHRtbCIsICRodG1fcHJldl9wYWdlX2xpbmspOwoJCSRodG1fcHJldl9wYWdlX2xpbmsyID0gc3RyX3JlcGxhY2UoIntwcmV2X3BhZ2V9IiwgJGVxIC4gIi5odG1sIiwgJGh0bV9wcmV2X3BhZ2VfbGluazIpOwoJfSBlbHNlIHsKCQkkaHRtX3ByZXZfcGFnZV9saW5rID0gc3RyX3JlcGxhY2UoIntwcmV2X3BhZ2V9IiwgJGVxIC4gIl8iIC4gc3RydmFsKCRwYWdlIC0gMSkgLiAiLmh0bWwiLCAkaHRtX3ByZXZfcGFnZV9saW5rKTsKCQkkaHRtX3ByZXZfcGFnZV9saW5rMiA9IHN0cl9yZXBsYWNlKCJ7cHJldl9wYWdlfSIsICRlcSAuICJfIiAuIHN0cnZhbCgkcGFnZSAtIDEpIC4gIi5odG1sIiwgJGh0bV9wcmV2X3BhZ2VfbGluazIpOwoJfQoJJGh0bSA9IHN0cl9yZXBsYWNlKCJ7UFJFVl9QQUdFX0xJTkt9IiwgJGh0bV9wcmV2X3BhZ2VfbGluaywgJGh0bSk7CgkkaHRtID0gc3RyX3JlcGxhY2UoIntQUkVWX1BBR0VfTElOSzJ9IiwgJGh0bV9wcmV2X3BhZ2VfbGluazIsICRodG0pOwp9IGVsc2UgewoJJGh0bSA9IHN0cl9yZXBsYWNlKCJ7UFJFVl9QQUdFX0xJTkt9IiwgIiIsICRodG0pOwoJJGh0bSA9IHN0cl9yZXBsYWNlKCJ7UFJFVl9QQUdFX0xJTksyfSIsICIiLCAkaHRtKTsKfQoKaWYgKGludHZhbCgkcGFnZSkgPCAkdG90YWxfcGFnZXMpIHsKCSRodG1fbmV4dF9wYWdlX2xpbmsgPSBzdHJfcmVwbGFjZSgie25leHRfcGFnZX0iLCAkZXEgLiAiXyIgLiBzdHJ2YWwoJHBhZ2UgKyAxKSAuICIuaHRtbCIsICRodG1fbmV4dF9wYWdlX2xpbmspOwoJJGh0bV9uZXh0X3BhZ2VfbGluazIgPSBzdHJfcmVwbGFjZSgie25leHRfcGFnZX0iLCAkZXEgLiAiXyIgLiBzdHJ2YWwoJHBhZ2UgKyAxKSAuICIuaHRtbCIsICRodG1fbmV4dF9wYWdlX2xpbmsyKTsKCSRodG0gPSBzdHJfcmVwbGFjZSgie05FWFRfUEFHRV9MSU5LfSIsICRodG1fbmV4dF9wYWdlX2xpbmssICRodG0pOwoJJGh0bSA9IHN0cl9yZXBsYWNlKCJ7TkVYVF9QQUdFX0xJTksyfSIsICRodG1fbmV4dF9wYWdlX2xpbmsyLCAkaHRtKTsKfSBlbHNlIHsKCSRodG0gPSBzdHJfcmVwbGFjZSgie05FWFRfUEFHRV9MSU5LfSIsICIiLCAkaHRtKTsKCSRodG0gPSBzdHJfcmVwbGFjZSgie05FWFRfUEFHRV9MSU5LMn0iLCAiIiwgJGh0bSk7Cn0KCiRuYW1lcyA9IGFycmF5KAoJInRpdGxlIiwKCSJkZXRhaWxfcGFnZV91cmwiLAoJImltZ191cmwiLAoJImltZ19zX3VybCIsCgkiaW1nX21fdXJsIiwKCSJpbWdfbF91cmwiLAoJInByaWNlIiwKCSJkZXRhaWxzIiwKCSJoYW5iYWltb3RvIiwKCSJyYXRpbmciLAoJInB1Yl9kYXRlIiwKCSJhZmZpbGlhdGVfdXJsIgopOwoKJGh0bV9pdGVtcyA9ICIiOwppZiAoY291bnQoJEl0ZW1zKSAhPSAwKSB7Cglmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkSXRlbXMpOyAkaSs9JGNvbHMpIHsKCQkkaHRtX2l0ZW1fZGV0YWlsc19hbGwgPSAiIjsKCQlmb3IgKCRqID0gMDsgJGogPCAkY29sczsgJGorKykgewoJCQlpZiAoY291bnQoJEl0ZW1zKSA+ICRpICsgJGopIHsKCQkJCSRpdGVtID0gJEl0ZW1zWyRpICsgJGpdOwoJCQkJaWYgKCRhc3AgPT0gInJha3V0ZW4iKSB7CgkJCQkJJHRpdGxlID0gZ2V0X25vZGUoJGl0ZW0sICJpdGVtTmFtZSIpOwoJCQkJCSRpdGVtQ29kZSA9IGdldF9ub2RlKCRpdGVtLCAiaXRlbUNvZGUiKTsKCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gIi4uL2RldGFpbHMvIiAuICRpdGVtQ29kZSAuICIuaHRtbCI7CgkJCQkJaWYgKHN0cmxlbigkY2F0ZWdvcnkpICE9IDApIHsKCQkJCQkJJGRldGFpbF9wYWdlX3VybCA9ICIuLi8iIC4gJGRldGFpbF9wYWdlX3VybDsKCQkJCQl9CgkJCQkJJGRldGFpbF9wYWdlX3VybCA9IGdldF9mdWxsX3VybCgkZGV0YWlsX3BhZ2VfdXJsKTsKCQkJCQkkaW1nX3VybCA9IGdldF9ub2RlKCRpdGVtLCAibWVkaXVtSW1hZ2VVcmwiKTsKCQkJCQkkaW1nX3NfdXJsID0gZ2V0X25vZGUoJGl0ZW0sICJzbWFsbEltYWdlVXJsIik7CgkJCQkJJGltZ19tX3VybCA9ICRpbWdfdXJsOwoJCQkJCSRpbWdfbF91cmwgPSAkaW1nX3VybDsKCQkJCQkkZGV0YWlscyA9IGdldF9ub2RlKCRpdGVtLCAiaXRlbUNhcHRpb24iKTsKCQkJCQkkZGV0YWlscyA9IGh0bWxfdG9fdGV4dCgkZGV0YWlscyk7CgkJCQkJaWYgKG1iX3N0cmxlbigkZGV0YWlscykgPiAkaXRlbV90ZXh0X2xlbikgewoJCQkJCQkkZGV0YWlscyA9IG1iX3N1YnN0cigkZGV0YWlscywgMCwgJGl0ZW1fdGV4dF9sZW4pIC4gIi4uLiI7CgkJCQkJfQoJCQkJCSRwcmljZSA9IG51bWJlcl9mb3JtYXQoZ2V0X25vZGUoJGl0ZW0sICJpdGVtUHJpY2UiKSkgLiAisd8iOwoJCQkJCSRoYW5iYWltb3RvID0gZ2V0X25vZGUoJGl0ZW0sICJzaG9wTmFtZSIpOwoJCQkJCSRyYXRpbmcgPSBnZXRfbm9kZSgkaXRlbSwgInJldmlld0F2ZXJhZ2UiKTsKCQkJCQkkYWZmaWxpYXRlX3VybCA9IGdldF9ub2RlKCRpdGVtLCAiYWZmaWxpYXRlVXJsIik7CgkJCQl9IGVsc2VpZiAoJGFzcCA9PSAicmFrdXRlbl90cmF2ZWwiKSB7CgkJCQkJJHRhZ3MgPSBhcnJheSgiaG90ZWxOYW1lIiwgImhvdGVsTm8iLCAiYXJlYVN1bSIsICJob3RlbFNwZWNpYWxTdW0iKTsKCQkJCQlmb3JlYWNoICgkdGFncyBhcyAkdGFnKSB7CgkJCQkJCWV2YWwoIlwkJHt0YWd9ID0gZ2V0X25vZGUoXCRpdGVtLCAnJHt0YWd9Jyk7Iik7CgkJCQkJCWV2YWwoIlwkJHt0YWd9ID0gaHRtbHVuZXNjYXBlKFwkJHt0YWd9KTsiKTsKCQkJCQkJJG5hbWVzW10gPSAkdGFnOwoJCQkJCX0KCQkJCQkkdGl0bGUgPSAkaG90ZWxOYW1lOwoJCQkJCSRpdGVtQ29kZSA9ICRob3RlbE5vOwoJCQkJCSRkZXRhaWxfcGFnZV91cmwgPSAiLi4vZGV0YWlscy8iIC4gJGl0ZW1Db2RlIC4gIi5odG1sIjsKCQkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gIi4uLyIgLiAkZGV0YWlsX3BhZ2VfdXJsOwoJCQkJCX0KCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gZ2V0X2Z1bGxfdXJsKCRkZXRhaWxfcGFnZV91cmwpOwoJCQkJCSRpbWdfdXJsID0gIiI7CgkJCQkJJGltZ19zX3VybCA9ICIiOwoJCQkJCSRpbWdfbV91cmwgPSAiIjsKCQkJCQkkaW1nX2xfdXJsID0gIiI7CgkJCQkJJGRldGFpbHMgPSBodG1sX3RvX3RleHQoJGhvdGVsU3BlY2lhbFN1bSk7CgkJCQkJaWYgKG1iX3N0cmxlbigkZGV0YWlscykgPiAkaXRlbV90ZXh0X2xlbikgewoJCQkJCQkkZGV0YWlscyA9IG1iX3N1YnN0cigkZGV0YWlscywgMCwgJGl0ZW1fdGV4dF9sZW4pIC4gIi4uLiI7CgkJCQkJfQoJCQkJCSRwcmljZSA9ICIiOwoJCQkJCSRoYW5iYWltb3RvID0gIiI7CgkJCQkJJHJhdGluZyA9ICIiOwoJCQkJCSRhZmZpbGlhdGVfdXJsID0gZ2V0X25vZGUoJGl0ZW0sICJob3RlbEFmZmlsaWF0ZVVybCIpOwoJCQkJfSBlbHNlaWYgKCRhc3AgPT0gImFtYXpvbiIpIHsKCQkJCQkkdGl0bGUgPSBnZXRfbm9kZSgkaXRlbSwgIlRpdGxlIik7CgkJCQkJJEFTSU4gPSBnZXRfbm9kZSgkaXRlbSwgIkFTSU4iKTsKCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gIi4uL2RldGFpbHMvIiAuICRBU0lOIC4gIi5odG1sIjsKCQkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gIi4uLyIgLiAkZGV0YWlsX3BhZ2VfdXJsOwoJCQkJCX0KCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gZ2V0X2Z1bGxfdXJsKCRkZXRhaWxfcGFnZV91cmwpOwoJCQkJCSRpbWdfdXJsID0gZ2V0X25vZGUoZ2V0X25vZGUoJGl0ZW0sICJNZWRpdW1JbWFnZSIpLCAiVVJMIik7CgkJCQkJaWYgKHN0cmxlbigkaW1nX3VybCkgPT0gMCkgewoJCQkJCQkkaW1nX3VybCA9ICIuLi8uLi9pbWcvbm9pbWFnZV9tLmpwZyI7CgkJCQkJCWlmIChzdHJsZW4oJGNhdGVnb3J5KSAhPSAwKSB7CgkJCQkJCQkkaW1nX3VybCA9ICIuLi8iIC4gJGltZ191cmw7CgkJCQkJCX0KCQkJCQl9CgkJCQkJJGltZ19zX3VybCA9IGdldF9ub2RlKGdldF9ub2RlKCRpdGVtLCAiU21hbGxJbWFnZSIpLCAiVVJMIik7CgkJCQkJaWYgKHN0cmxlbigkaW1nX3NfdXJsKSA9PSAwKSB7CgkJCQkJCSRpbWdfc191cmwgPSAiLi4vLi4vaW1nL25vaW1hZ2Vfcy5qcGciOwoJCQkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCQkJJGltZ19zX3VybCA9ICIuLi8iIC4gJGltZ19zX3VybDsKCQkJCQkJfQoJCQkJCX0KCQkJCQkkaW1nX21fdXJsID0gJGltZ191cmw7CgkJCQkJJGltZ19sX3VybCA9IGdldF9ub2RlKGdldF9ub2RlKCRpdGVtLCAiTGFyZ2VJbWFnZSIpLCAiVVJMIik7CgkJCQkJaWYgKHN0cmxlbigkaW1nX2xfdXJsKSA9PSAwKSB7CgkJCQkJCSRpbWdfbF91cmwgPSAiLi4vLi4vaW1nL25vaW1hZ2VfbC5qcGciOwoJCQkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCQkJJGltZ19sX3VybCA9ICIuLi8iIC4gJGltZ19sX3VybDsKCQkJCQkJfQoJCQkJCX0KCQkJCQkkZGV0YWlscyA9IGdldF9ub2RlKGdldF9ub2RlKCRpdGVtLCAiRWRpdG9yaWFsUmV2aWV3IiksICJDb250ZW50Iik7CgkJCQkJaWYgKHN0cmxlbigkZGV0YWlscykgPT0gMCkgewoJCQkJCQkkZmVhdHVyZXMgPSBnZXRfbm9kZXMoJGl0ZW0sICJGZWF0dXJlIik7CgkJCQkJCWZvciAoJHogPSAwOyAkeiA8IGNvdW50KCRmZWF0dXJlcyk7ICR6KyspIHsKCQkJCQkJCSRkZXRhaWxzIC49ICRmZWF0dXJlc1skaV0gLiAiXG4iOwoJCQkJCQl9CgkJCQkJfQoJCQkJCSRkZXRhaWxzID0gaHRtbF90b190ZXh0KCRkZXRhaWxzKTsKCQkJCQlpZiAobWJfc3RybGVuKCRkZXRhaWxzKSA+ICRpdGVtX3RleHRfbGVuKSB7CgkJCQkJCSRkZXRhaWxzID0gbWJfc3Vic3RyKCRkZXRhaWxzLCAwLCAkaXRlbV90ZXh0X2xlbikgLiAiLi4uIjsKCQkJCQl9CgkJCQkJJGRldGFpbHMgPSBzdHJfcmVwbGFjZSgiXG4iLCAiPGJyPiIsICRkZXRhaWxzKTsKCQkJCQkkcHJpY2UgPSBnZXRfbm9kZShnZXRfbm9kZSgkaXRlbSwgIkxpc3RQcmljZSIpLCAiQW1vdW50Iik7CgkJCQkJaWYgKHN0cmxlbigkcHJpY2UpID09IDApIHsKCQkJCQkJJHByaWNlID0gIqWqobyl16Xzpdel6aWkpbkiOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSRwcmljZSA9IG51bWJlcl9mb3JtYXQoJHByaWNlKSAuICKx3yI7CgkJCQkJfQoJCQkJCSRoYW5iYWltb3RvID0gZ2V0X25vZGUoJGl0ZW0sICJQdWJsaXNoZXIiKTsKCQkJCQkkcmF0aW5nID0gZ2V0X25vZGUoZ2V0X25vZGUoJGl0ZW0sICJDdXN0b21lclJldmlld3MiKSwgIkF2ZXJhZ2VSYXRpbmciKTsKCQkJCQkkYWZmaWxpYXRlX3VybCA9IGdldF9ub2RlKCRpdGVtLCAiRGV0YWlsUGFnZVVSTCIpOwoJCQkJfSBlbHNlaWYgKCRhc3AgPT0gImRlbm5vIikgewoJCQkJCSR0aXRsZSA9IGdldF9ub2RlKCRpdGVtLCAiUHJvZHVjdE5hbWUiKTsKCQkJCQkkcHJvZHVjdF9waHAgPSBnZXRfbm9kZSgkZG9jLCAiUHJvZHVjdFBIUCIpOwoJCQkJCSRpdGVtX2lkID0gZ2V0X25vZGUoJGl0ZW0sICJJdGVtSUQiKTsKCQkJCQkkb3JpZCA9IGdldF9ub2RlKCRpdGVtLCAiT1JJRCIpOwoJCQkJCSRkZXRhaWxfcGFnZV91cmwgPSAiLi4vZGV0YWlscy8iIC4gJGNhdGVnb3J5IC4gIl8iIC4gJGVxIC4gIl8iICAgICAuIHN0cnZhbCgkcGFnZXNbJGkgKyAkal0pIC4gIl8iIC4gc3RydmFsKCRwYWdlX2luZGV4ZXNbJGkgKyAkal0pIC4gIi5odG1sIjsKCQkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gIi4uLyIgLiAkZGV0YWlsX3BhZ2VfdXJsOwoJCQkJCX0KCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gZ2V0X2Z1bGxfdXJsKCRkZXRhaWxfcGFnZV91cmwpOwoJCQkJCSRhZmZpbGlhdGVfdXJsID0gJHByb2R1Y3RfcGhwIC4gIj9waWQ9IiAuICRpdGVtX2lkIC4gIiZvaWQ9IiAuICRvcmlkOwoJCQkJCWlmIChzdHJsZW4oJGhpZCkgIT0gMCkgewoJCQkJCQkkYWZmaWxpYXRlX3VybCAuPSAiJmhpZD0iIC4gJGhpZDsKCQkJCQl9CgkJCQkJJGltZ191cmwgPSBnZXRfbm9kZSgkaXRlbSwgIkltYWdlVXJsTWVkaXVtIik7CgkJCQkJJGltZ19zX3VybCA9IGdldF9ub2RlKCRpdGVtLCAiSW1hZ2VVcmxTbWFsbCIpOwoJCQkJCSRpbWdfbV91cmwgPSAkaW1nX3VyOwoJCQkJCSRpbWdfbF91cmwgPSBnZXRfbm9kZSgkaXRlbSwgIkltYWdlVXJsTGFyZ2UiKTsKCQkJCQkkZGV0YWlscyA9IGdldF9ub2RlKCRpdGVtLCAiSXRlbURldGFpbCIpOwoJCQkJCSRkZXRhaWxzID0gaHRtbF90b190ZXh0KCRkZXRhaWxzKTsKCQkJCQlpZiAobWJfc3RybGVuKCRkZXRhaWxzKSA+ICRpdGVtX3RleHRfbGVuKSB7CgkJCQkJCSRkZXRhaWxzID0gbWJfc3Vic3RyKCRkZXRhaWxzLCAwLCAkaXRlbV90ZXh0X2xlbikgLiAiLi4uIjsKCQkJCQl9CgkJCQkJJHByaWNlID0gbnVtYmVyX2Zvcm1hdChnZXRfbm9kZSgkaXRlbSwgIlByaWNlIikpIC4gIrHfIjsKCQkJCQkkaGFuYmFpbW90byA9IGdldF9ub2RlKCRpdGVtLCAiTWFudWZhY3R1cmVyIik7CgkJCQkJJHJhdGluZyA9ICIiOwoJCQkJfQoJCQkJJHRpdGxlID0gaHRtbHVuZXNjYXBlKCR0aXRsZSk7CgkJCX0gZWxzZSB7CgkJCQkkdGl0bGUgPSAiIjsKCQkJCSRkZXRhaWxfcGFnZV91cmwgPSAiIjsKCQkJCSRpbWdfdXJsID0gIi4uLy4uL2ltZy9ub2ltYWdlX20uanBnIjsKCQkJCWlmIChzdHJsZW4oJGNhdGVnb3J5KSAhPSAwKSB7CgkJCQkJJGltZ191cmwgPSAiLi4vIiAuICRpbWdfdXJsOwoJCQkJfQoJCQkJJGltZ19zX3VybCA9ICIuLi8uLi9pbWcvbm9pbWFnZV9zLmpwZyI7CgkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCSRpbWdfc191cmwgPSAiLi4vIiAuICRpbWdfc191cmw7CgkJCQl9CgkJCQkkaW1nX21fdXJsID0gJGltZ191cmw7CgkJCQkkaW1nX2xfdXJsID0gIi4uLy4uL2ltZy9ub2ltYWdlX2wuanBnIjsKCQkJCWlmIChzdHJsZW4oJGNhdGVnb3J5KSAhPSAwKSB7CgkJCQkJJGltZ19sX3VybCA9ICIuLi8iIC4gJGltZ19sX3VybDsKCQkJCX0KCQkJCSRwcmljZSA9ICIiOwoJCQkJJGRldGFpbHMgPSAiIjsKCQkJCSRoYW5iYWltb3RvID0gIiI7CgkJCQkkcmF0aW5nID0gIiI7CgkJCQkkaG90ZWxObyA9ICIiOwoJCQkJJGhvdGVsTmFtZSA9ICIiOwoJCQkJJGFyZWFTdW0gPSAiIjsKCQkJCSRob3RlbFNwZWNpYWxTdW0gPSAiIjsKCQkJCSRhZmZpbGlhdGVfdXJsID0gIiI7CgkJCX0KCQkJaWYgKCRpdGVtX3RpdGxlX2xlbiAhPSAwICYmIG1iX3N0cmxlbigkdGl0bGUpID4gJGl0ZW1fdGl0bGVfbGVuKSB7CgkJCQkkdGl0bGUgPSBtYl9zdWJzdHIoJHRpdGxlLCAwLCAkaXRlbV90aXRsZV9sZW4pIC4gIi4uLiI7CgkJCX0KCQkJJG91dCA9ICRodG1faXRlbV9kZXRhaWxzOwoJCQlmb3JlYWNoICgkbmFtZXMgYXMgJG5hbWUpIHsKCQkJCWV2YWwoIlwkdmFsdWUgPSBcJCR7bmFtZX07Iik7CgkJCQlpZiAoJG5hbWUgPT0gImRldGFpbHMiICYmICRzdWZmaXggPT0gInhtbCIpIHsKCQkJCQkkdmFsdWUgPSBnZXRfY2RhdGEoJHZhbHVlKTsKCQkJCX0KCQkJCSRvdXQgPSBzdHJfcmVwbGFjZSgieyIgLiAkbmFtZSAuICJ9IiwgJHZhbHVlLCAkb3V0KTsKCQkJfQoJCQkkaHRtX2l0ZW1fZGV0YWlsc19hbGwgLj0gJG91dDsKCQl9CgkJJG91dCA9ICRodG1fbGlzdF9yb3c7CgkJJG91dCA9IHN0cl9yZXBsYWNlKCJ7TElTVF9DT0x9IiwgJGh0bV9pdGVtX2RldGFpbHNfYWxsLCAkb3V0KTsKCQkkaHRtX2l0ZW1zIC49ICRvdXQ7Cgl9Cn0KCiRodG0gPSBzdHJfcmVwbGFjZSgie0xJU1RfUk9XfSIsICRodG1faXRlbXMsICRodG0pOwoKaWYgKCRhc3AgIT0gInJha3V0ZW4iKSB7CgkkaHRtID0gcmVtb3ZlX3N0cl9zcGFuKCRodG0sICJSQUtVVEVOIik7Cn0KaWYgKCRhc3AgIT0gInJha3V0ZW5fdHJhdmVsIikgewoJJGh0bSA9IHJlbW92ZV9zdHJfc3BhbigkaHRtLCAiUkFLVVRFTl9UUkFWRUwiKTsKfQppZiAoJGFzcCAhPSAiYW1hem9uIikgewoJJGh0bSA9IHJlbW92ZV9zdHJfc3BhbigkaHRtLCAiQU1BWk9OIik7Cn0KaWYgKCRhc3AgIT0gImRlbm5vIikgewoJJGh0bSA9IHJlbW92ZV9zdHJfc3BhbigkaHRtLCAiREVOTk8iKTsKfQoKaWYgKCRzdWZmaXggPT0gInhtbCIpIHsKCWhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L3htbDsgY2hhcnNldD1VVEYtOCIpOwp9CgpwcmludCBtYl9jb252ZXJ0X2VuY29kaW5nKCRodG0sICRvdXRfZW5jb2RpbmcpOwo="));?>