PD8NCiRnNFt0aXRsZV0gPSAkd3Jfc3ViamVjdCAuICKx28DUt8IiOw0KaW5jbHVkZV9vbmNlKCIuL19jb21tb24ucGhwIik7DQoNCi8vIDA5MDcxMA0KaWYgKHN1YnN0cl9jb3VudCgkd3JfY29udGVudCwgIiYjIikgPiA1MCkgew0KICAgIGFsZXJ0KCKzu7/rv6Egv8O52bijwfYgvsrAuiDE2rXlsKEgtNm89iDG98fUtce+7iDA1r3AtM+02S4iKTsNCiAgICBleGl0Ow0KfQ0KDQpAaW5jbHVkZV9vbmNlKCIkYm9hcmRfc2tpbl9wYXRoL3dyaXRlX3VwZGF0ZS5oZWFkLnNraW4ucGhwIik7DQoNCmluY2x1ZGVfb25jZSgiJGc0W3BhdGhdL2xpYi90cmFja2JhY2subGliLnBocCIpOw0KDQovKg0KJGZpbHRlcnMgPSBleHBsb2RlKCIsIiwgJGNvbmZpZ1tjZl9maWx0ZXJdKTsNCmZvciAoJGk9MDsgJGk8Y291bnQoJGZpbHRlcnMpOyAkaSsrKSB7DQogICAgJHMgPSB0cmltKCRmaWx0ZXJzWyRpXSk7IC8vIMfKxc203L7uwMcgvtW12iCw+LnpwLsgvvi+2g0KICAgIGlmIChzdHJpc3RyKCR3cl9zdWJqZWN0LCAkcykpIHsNCiAgICAgICAgYWxlcnQoIsGmuPG/oSCx3cH2tNy+7ihcJ3skc31cJymwoSDG98fUtce+7iDA1r3AtM+02S4iKTsNCiAgICAgICAgZXhpdDsNCiAgICB9DQogICAgaWYgKHN0cmlzdHIoJHdyX2NvbnRlbnQsICRzKSkgew0KICAgICAgICBhbGVydCgis7u/67+hILHdwfa03L7uKFwneyRzfVwnKbChIMb3x9S1x77uIMDWvcC0z7TZLiIpOw0KICAgICAgICBleGl0Ow0KICAgIH0NCn0NCiovDQoNCiR1cGxvYWRfbWF4X2ZpbGVzaXplID0gaW5pX2dldCgndXBsb2FkX21heF9maWxlc2l6ZScpOw0KDQppZiAoZW1wdHkoJF9QT1NUKSkNCiAgICBhbGVydCgixsTAzyC2x7TCILHbs7u/68DHIMWpseKwoSC8rbn2v6G8rSC8s8Gkx9EgsKrAuyCz0b7uIL/At/mwoSC537v9x8+/tL3AtM+02S5cXG5cXG5wb3N0X21heF9zaXplPSIuaW5pX2dldCgncG9zdF9tYXhfc2l6ZScpLiIgLCB1cGxvYWRfbWF4X2ZpbGVzaXplPSR1cGxvYWRfbWF4X2ZpbGVzaXplXFxuXFxusNS9w8bHsPy4rsDaILbHtMIgvK259rD8uK7A2r+hsNQgua7AxyC52bb4tM+02S4iKTsNCg0KLy8guK7G27evIMO8xakNCi8vcmVmZXJlcl9jaGVjaygpOw0KDQokdyA9ICRfUE9TVFsidyJdOw0KDQokbm90aWNlX2FycmF5ID0gZXhwbG9kZSgiXG4iLCB0cmltKCRib2FyZFtib19ub3RpY2VdKSk7DQoNCmlmICgkdyA9PSAidSIgfHwgJHcgPT0gInIiKSB7DQogICAgJHdyID0gZ2V0X3dyaXRlKCR3cml0ZV90YWJsZSwgJHdyX2lkKTsNCiAgICBpZiAoISR3clt3cl9pZF0pDQogICAgICAgIGFsZXJ0KCKx28DMIMG4wOfHz8H2IL7KvcC0z7TZLlxcblxcbrHbwMwgu+jBprXHvvqwxbOqIMDMtb/Hz7+0wLsgvPYgwNa9wLTPtNkuIik7IA0KfQ0KDQovLyC/3LrOv6G8rSCx28C7ILXut8/H0iC89iDA1rTCILn2sdewoSDBuMDnx8+5x7fOILrxudCx28C6ILvnv+vAzyCw5r/sv6G4uCCwobTJx9i+3yDH1A0KaWYgKCEkaXNfYWRtaW4gJiYgISRib2FyZFtib191c2Vfc2VjcmV0XSAmJiAkc2VjcmV0KQ0KCWFsZXJ0KCK68bnQsdsgucy757/rILDUvcPGxyDAzLnHt84guvG50LHbt84gte63z8fSILz2IL74vcC0z7TZLiIpOw0KDQppZiAoJHcgPT0gIiIgfHwgJHcgPT0gInUiKSB7DQogICAgLy8gsei8sb/rIDEuMDAgOiCx276yseIgscfH0bD6ILz2waTAuiC6sLW1t84gw7O4rrXHvu6+3yDH1A0KICAgIGlmKCR3ID09InUiICYmICRtZW1iZXJbJ21iX2lkJ10gJiYgJHdyWydtYl9pZCddID09ICRtZW1iZXJbJ21iX2lkJ10pDQogICAgICAgIDsNCiAgICBlbHNlIGlmICgkbWVtYmVyW21iX2xldmVsXSA8ICRib2FyZFtib193cml0ZV9sZXZlbF0pIA0KICAgICAgICBhbGVydCgisdvAuyC+tSCxx8fRwMwgvvi9wLTPtNkuIik7DQoNCgkvLyC/3LrOv6G8rSCx28C7ILXut8/H0iC89iDA1rTCILn2sdewoSDBuMDnx8+5x7fOILD4wfa0wiCw/LiuwNq4uCC17rfPwMwgsKG0ycfYvt8gx9QNCglpZiAoISRpc19hZG1pbiAmJiAkbm90aWNlKQ0KCQlhbGVydCgisPy4rsDauLggsPjB9sfSILz2IMDWvcC0z7TZLiIpOw0KfSANCmVsc2UgaWYgKCR3ID09ICJyIikgDQp7DQogICAgaWYgKGluX2FycmF5KChpbnQpJHdyX2lkLCAkbm90aWNlX2FycmF5KSkNCiAgICAgICAgYWxlcnQoIrD4wfa/obTCILTkuq8gx9IgvPYgvvi9wLTPtNkuIik7DQoNCiAgICBpZiAoJG1lbWJlclttYl9sZXZlbF0gPCAkYm9hcmRbYm9fcmVwbHlfbGV2ZWxdKSANCiAgICAgICAgYWxlcnQoIrHbwLsgtOS6r8fSILHHx9HAzCC++L3AtM+02S4iKTsNCg0KICAgIC8vILDUvcOx2yC56L+tIML8wbYNCiAgICAkcmVwbHlfYXJyYXkgPSAmJHdyOw0KDQogICAgLy8gw9a06yC05LqvwLogxdfAzLrtv6EgwOK+xrP1wLogd3JfcmVwbHkgu+fAzMHuuLjFrbi4ILChtMnH1bTPtNkuDQogICAgaWYgKHN0cmxlbigkcmVwbHlfYXJyYXlbd3JfcmVwbHldKSA9PSAxMCkNCiAgICAgICAgYWxlcnQoIrT1IMDMu/MgtOS6r8fPvccgvPYgvvi9wLTPtNkuXFxuXFxutOS6r8C6IDEwtNyw6CCx7sH2uLggsKG0ycfVtM+02S4iKTsNCg0KICAgICRyZXBseV9sZW4gPSBzdHJsZW4oJHJlcGx5X2FycmF5W3dyX3JlcGx5XSkgKyAxOw0KICAgIGlmICgkYm9hcmRbYm9fcmVwbHlfb3JkZXJdKSB7DQogICAgICAgICRiZWdpbl9yZXBseV9jaGFyID0gIkEiOw0KICAgICAgICAkZW5kX3JlcGx5X2NoYXIgPSAiWiI7DQogICAgICAgICRyZXBseV9udW1iZXIgPSArMTsNCiAgICAgICAgJHNxbCA9ICIgc2VsZWN0IE1BWChTVUJTVFJJTkcod3JfcmVwbHksICRyZXBseV9sZW4sIDEpKSBhcyByZXBseSBmcm9tICR3cml0ZV90YWJsZSB3aGVyZSB3cl9udW0gPSAnJHJlcGx5X2FycmF5W3dyX251bV0nIGFuZCBTVUJTVFJJTkcod3JfcmVwbHksICRyZXBseV9sZW4sIDEpIDw+ICcnICI7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJGJlZ2luX3JlcGx5X2NoYXIgPSAiWiI7DQogICAgICAgICRlbmRfcmVwbHlfY2hhciA9ICJBIjsNCiAgICAgICAgJHJlcGx5X251bWJlciA9IC0xOw0KICAgICAgICAkc3FsID0gIiBzZWxlY3QgTUlOKFNVQlNUUklORyh3cl9yZXBseSwgJHJlcGx5X2xlbiwgMSkpIGFzIHJlcGx5IGZyb20gJHdyaXRlX3RhYmxlIHdoZXJlIHdyX251bSA9ICckcmVwbHlfYXJyYXlbd3JfbnVtXScgYW5kIFNVQlNUUklORyh3cl9yZXBseSwgJHJlcGx5X2xlbiwgMSkgPD4gJycgIjsNCiAgICB9DQogICAgaWYgKCRyZXBseV9hcnJheVt3cl9yZXBseV0pICRzcWwgLj0gIiBhbmQgd3JfcmVwbHkgbGlrZSAnJHJlcGx5X2FycmF5W3dyX3JlcGx5XSUnICI7DQogICAgJHJvdyA9IHNxbF9mZXRjaCgkc3FsKTsNCg0KICAgIGlmICghJHJvd1tyZXBseV0pDQogICAgICAgICRyZXBseV9jaGFyID0gJGJlZ2luX3JlcGx5X2NoYXI7DQogICAgZWxzZSBpZiAoJHJvd1tyZXBseV0gPT0gJGVuZF9yZXBseV9jaGFyKSAvLyBBflrAuiAyNiDA1LTPtNkuDQogICAgICAgIGFsZXJ0KCK09SDAzLvzILTkuq/Hz73HILz2IL74vcC0z7TZLlxcblxcbrTkuq/AuiAyNrCzILHuwfa4uCCwobTJx9W0z7TZLiIpOw0KICAgIGVsc2UNCiAgICAgICAgJHJlcGx5X2NoYXIgPSBjaHIob3JkKCRyb3dbcmVwbHldKSArICRyZXBseV9udW1iZXIpOw0KDQogICAgJHJlcGx5ID0gJHJlcGx5X2FycmF5W3dyX3JlcGx5XSAuICRyZXBseV9jaGFyOw0KfSBlbHNlIA0KICAgIGFsZXJ0KCJ3ILCqwMwgwaa067fOILPRvu6/wMH2IL7KvtK9wLTPtNkuIik7IA0KDQoNCmlmICgkdyA9PSAiIiB8fCAkdyA9PSAiciIpIA0Kew0KICAgIGlmICgkX1NFU1NJT05bInNzX2RhdGV0aW1lIl0gPj0gKCRnNFtzZXJ2ZXJfdGltZV0gLSAkY29uZmlnW2NmX2RlbGF5X3NlY10pICYmICEkaXNfYWRtaW4pIA0KICAgICAgICBhbGVydCgis8q5qyC6/LilIL3DsKOzu7+hILDUvcO5sMC7IL+svNPH2LytIL/DuLEgvPYgvvi9wLTPtNkuIik7DQoNCiAgICBzZXRfc2Vzc2lvbigic3NfZGF0ZXRpbWUiLCAkZzRbc2VydmVyX3RpbWVdKTsNCg0KICAgIC8vILW/wM+zu7/rIL+svNMgte63zyC60rChDQogICAgJHJvdyA9IHNxbF9mZXRjaCgiIHNlbGVjdCBNRDUoQ09OQ0FUKHdyX2lwLCB3cl9zdWJqZWN0LCB3cl9jb250ZW50KSkgYXMgcHJldl9tZDUgZnJvbSAkd3JpdGVfdGFibGUgb3JkZXIgYnkgd3JfaWQgZGVzYyBsaW1pdCAxICIpOw0KICAgICRjdXJyX21kNSA9IG1kNSgkX1NFUlZFUltSRU1PVEVfQUREUl0uJHdyX3N1YmplY3QuJHdyX2NvbnRlbnQpOw0KICAgIGlmICgkcm93W3ByZXZfbWQ1XSA9PSAkY3Vycl9tZDUgJiYgISRpc19hZG1pbikNCiAgICAgICAgYWxlcnQoIrW/wM/H0SCzu7/rwLsgv6y808fYvK0gte63z8fSILz2IL74vcC0z7TZLiIpOw0KfSANCg0KLy8gwNq1v7Xut8+55sH2ILDLu+cNCi8vaW5jbHVkZV9vbmNlICgiLi9ub3JvYm90X2NoZWNrLmluYy5waHAiKTsNCg0KaWYgKCEkaXNfbWVtYmVyKSB7DQogICAgaWYgKCR3PT0nJyB8fCAkdz09J3InKSB7DQogICAgICAgICRrZXkgPSBnZXRfc2Vzc2lvbigiY2FwdGNoYV9rZXlzdHJpbmciKTsNCiAgICAgICAgaWYgKCEoJGtleSAmJiAka2V5ID09ICRfUE9TVFt3cl9rZXldKSkgew0KICAgICAgICAgICAgc2Vzc2lvbl91bnJlZ2lzdGVyKCJjYXB0Y2hhX2tleXN0cmluZyIpOw0KICAgICAgICAgICAgYWxlcnQoIsGku/PA+8DOIMGisdnAzCC+xrTRsM0gsLC9wLTPtNkuIik7DQogICAgICAgIH0NCiAgICB9DQp9DQoNCmlmICghaXNzZXQoJF9QT1NUW3dyX3N1YmplY3RdKSB8fCAhdHJpbSgkX1BPU1Rbd3Jfc3ViamVjdF0pKSANCiAgICBhbGVydCgiwaa48cC7IMDUt8LHz7+pIMHWvcq9w7/ALiIpOyANCg0KLy8gtfC3usXkuK6woSC++LTZuOkgu/28usfVtM+02S4gKMbbucy8x7W1ILqvsObHz7G4v+QuKQ0KQG1rZGlyKCIkZzRbcGF0aF0vZGF0YS9maWxlLyRib190YWJsZSIsIDA3MDcpOw0KQGNobW9kKCIkZzRbcGF0aF0vZGF0YS9maWxlLyRib190YWJsZSIsIDA3MDcpOw0KDQovLyAiwM7FzbPdv8m8xyA+ILq4vsggPiC757/rwNrBpMDHvPbB2CA+IL26xam4s8bDID4gQWN0aW9uIL26xam4s8bDID4gu+e/6yC+yCDH1CIgwM8gsOa/7MDHIL/At/kgw7O4rg0KLy8gwMwgv8m8x8C7ILvnv+sgvsggx9TAuLfOILyzwaTH0iCw5r/sIL7utrIgvbrFqbizxq61tSC9x8fgILXHwfYgvsq9wLTPtNkuDQovL2lmICghJF9QT1NUW3dyX2NvbnRlbnRdKSBkaWUgKCKzu7/rwLsgwNS3wsfPv6kgwda9yr3Dv8AuIik7DQoNCiRjaGFyc19hcnJheSA9IGFycmF5X21lcmdlKHJhbmdlKDAsOSksIHJhbmdlKCdhJywneicpLCByYW5nZSgnQScsJ1onKSk7DQovL3ByaW50X3IyKCRjaGFyc19hcnJheSk7IGV4aXQ7DQoNCi8vILChuq8gxsTAzyC+97fOteUNCiRmaWxlX3VwbG9hZF9tc2cgPSAiIjsNCiR1cGxvYWQgPSBhcnJheSgpOw0KZm9yICgkaT0wOyAkaTxjb3VudCgkX0ZJTEVTW2JmX2ZpbGVdW25hbWVdKTsgJGkrKykgDQp7DQogICAgLy8gu+jBpr+hIMO8xamwoSC1x77uwNa02bjpIMbEwM/AuyC76MGmx9W0z7TZLg0KICAgIGlmICgkX1BPU1RbYmZfZmlsZV9kZWxdWyRpXSkgDQogICAgew0KICAgICAgICAkdXBsb2FkWyRpXVtkZWxfY2hlY2tdID0gdHJ1ZTsNCg0KICAgICAgICAkcm93ID0gc3FsX2ZldGNoKCIgc2VsZWN0IGJmX2ZpbGUgZnJvbSAkZzRbYm9hcmRfZmlsZV90YWJsZV0gd2hlcmUgYm9fdGFibGUgPSAnJGJvX3RhYmxlJyBhbmQgd3JfaWQgPSAnJHdyX2lkJyBhbmQgYmZfbm8gPSAnJGknICIpOw0KICAgICAgICBAdW5saW5rKCIkZzRbcGF0aF0vZGF0YS9maWxlLyRib190YWJsZS8kcm93W2JmX2ZpbGVdIik7DQogICAgfQ0KICAgIGVsc2UNCiAgICAgICAgJHVwbG9hZFskaV1bZGVsX2NoZWNrXSA9IGZhbHNlOw0KDQogICAgJHRtcF9maWxlICA9ICRfRklMRVNbYmZfZmlsZV1bdG1wX25hbWVdWyRpXTsNCiAgICAkZmlsZW5hbWUgID0gJF9GSUxFU1tiZl9maWxlXVtuYW1lXVskaV07DQogICAgJGZpbGVzaXplICA9ICRfRklMRVNbYmZfZmlsZV1bc2l6ZV1bJGldOw0KDQogICAgLy8gvK259r+hILyzwaS1yCCwqrq4tNkgxavGxMDPwLsgvve3zrXlIMfRtNm46Q0KICAgIGlmICgkZmlsZW5hbWUpDQogICAgew0KICAgICAgICBpZiAoJF9GSUxFU1tiZl9maWxlXVtlcnJvcl1bJGldID09IDEpDQogICAgICAgIHsNCiAgICAgICAgICAgICRmaWxlX3VwbG9hZF9tc2cgLj0gIlwneyRmaWxlbmFtZX1cJyDGxMDPwMcgv+u3rsDMILytufa/oSC8s8GkKCR1cGxvYWRfbWF4X2ZpbGVzaXplKbXIILCquri02SDFqbnHt84gvve3zrXlIMfSILz2IL74vcC0z7TZLlxcbiI7DQogICAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmICgkX0ZJTEVTW2JmX2ZpbGVdW2Vycm9yXVskaV0gIT0gMCkNCiAgICAgICAgew0KICAgICAgICAgICAgJGZpbGVfdXBsb2FkX21zZyAuPSAiXCd7JGZpbGVuYW1lfVwnIMbEwM/AzCDBpLvzwPvAuLfOIL73t8615SC1x8H2IL7KvtK9wLTPtNkuXFxuIjsNCiAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgaWYgKGlzX3VwbG9hZGVkX2ZpbGUoJHRtcF9maWxlKSkgDQogICAgew0KICAgICAgICAvLyCw/LiuwNqwoSC+xrTPuOm8rSC8s8Gkx9Egvve3zrXlILvnwMzB7rq4tNkgxam02bjpILDHs8q23A0KICAgICAgICBpZiAoISRpc19hZG1pbiAmJiAkZmlsZXNpemUgPiAkYm9hcmRbYm9fdXBsb2FkX3NpemVdKSANCiAgICAgICAgew0KICAgICAgICAgICAgJGZpbGVfdXBsb2FkX21zZyAuPSAiXCd7JGZpbGVuYW1lfVwnIMbEwM/AxyC/67euKCIubnVtYmVyX2Zvcm1hdCgkZmlsZXNpemUpLiIgudnAzMauKcDMILDUvcPGx7+hILyzwaQoIi5udW1iZXJfZm9ybWF0KCRib2FyZFtib191cGxvYWRfc2l6ZV0pLiIgudnAzMauKbXIILCquri02SDFqbnHt84gvve3zrXlIMfPwfYgvsq9wLTPtNkuXFxuIjsNCiAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVwNCiAgICAgICAgLy8gMDkwNzE0DQogICAgICAgIC8vIMDMuczB9rOqIMfDt6G9wyDGxMDPv6Egvse8usTateW4piC9yb7uIL73t8615SDHz7TCILDmv+y4piC55sH2DQogICAgICAgIC8vIL+ht6+43ry8wfa0wiDD4rfCx8/B9iC+yrTCtNkuDQogICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgJHRpbWcgPSBAZ2V0aW1hZ2VzaXplKCR0bXBfZmlsZSk7DQogICAgICAgIC8vIGltYWdlIHR5cGUNCiAgICAgICAgaWYgKCBwcmVnX21hdGNoKCIvXC4oJGNvbmZpZ1tjZl9pbWFnZV9leHRlbnNpb25dKSQvaSIsICRmaWxlbmFtZSkgfHwNCiAgICAgICAgICAgICBwcmVnX21hdGNoKCIvXC4oJGNvbmZpZ1tjZl9mbGFzaF9leHRlbnNpb25dKSQvaSIsICRmaWxlbmFtZSkgKSANCiAgICAgICAgew0KICAgICAgICAgICAgaWYgKCR0aW1nWzJdIDwgMSB8fCAkdGltZ1syXSA+IDE2KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vJGZpbGVfdXBsb2FkX21zZyAuPSAiXCd7JGZpbGVuYW1lfVwnIMbEwM/AzCDAzLnMwfazqiDHw7ehvcMgxsTAz8DMIL7GtNW0z7TZLlxcbiI7DQogICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQogICAgICAgICR1cGxvYWRbJGldW2ltYWdlXSA9ICR0aW1nOw0KDQogICAgICAgIC8vIDQuMDAuMTEgLSCx27Tkuq+/obytIMbEwM8gvve3zrXlvcMgv/ix28DHIMbEwM/AzCC76MGmtce0wiC/wLf5uKYgvPbBpA0KICAgICAgICBpZiAoJHcgPT0gJ3UnKQ0KICAgICAgICB7DQogICAgICAgICAgICAvLyDBuMDnx8+0wiDGxMDPwMwgwNa02bjpILvowabH1bTPtNkuDQogICAgICAgICAgICAkcm93ID0gc3FsX2ZldGNoKCIgc2VsZWN0IGJmX2ZpbGUgZnJvbSAkZzRbYm9hcmRfZmlsZV90YWJsZV0gd2hlcmUgYm9fdGFibGUgPSAnJGJvX3RhYmxlJyBhbmQgd3JfaWQgPSAnJHdyX2lkJyBhbmQgYmZfbm8gPSAnJGknICIpOw0KICAgICAgICAgICAgQHVubGluaygiJGc0W3BhdGhdL2RhdGEvZmlsZS8kYm9fdGFibGUvJHJvd1tiZl9maWxlXSIpOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gx8G3zrHXt6Ugv/i3oSDGxMDPuO0NCiAgICAgICAgJHVwbG9hZFskaV1bc291cmNlXSA9ICRmaWxlbmFtZTsNCiAgICAgICAgJHVwbG9hZFskaV1bZmlsZXNpemVdID0gJGZpbGVzaXplOw0KDQoJCWlmKCBlcmVnaSgiKHBocHxwaHRtfGh0bXxjZ2l8cGx8ZXhlfGpzcHxhc3B8aW5jfGpzKSIsJGZpbGVuYW1lLCRvdXQpICkgew0KCQkJYWxlcnQoJG91dFswXS4iIMfYtOcgua6xuLChILXpvu7A1rTCIMbEwM/AuiC/w7ixILz2IL74vcC0z7TZLiIpOw0KCQkJZXhpdDsNCgkJfQ0KDQogICAgICAgIC8vIL7Gt6HAxyC5rsDav63AzCC16b7usKMgxsTAz8C6IC14ILimILrZv6m8rSDApbDmt864piC+y7T1tvO1tSC9x8fgwLsgx8/B9iC4+MfPtbW3zyDH1A0KICAgICAgICAkZmlsZW5hbWUgPSBwcmVnX3JlcGxhY2UoIi9cLihwaHB8cGh0bXxodG18Y2dpfHBsfGV4ZXxqc3B8YXNwfGluYykvaSIsICIkMC14IiwgJGZpbGVuYW1lKTsNCg0KICAgICAgICAvLyDBornMu+e4piC62cDOIMbEwM+47Q0KICAgICAgICAvLyR1cGxvYWRbJGldW2ZpbGVdID0gYWJzKGlwMmxvbmcoJF9TRVJWRVJbUkVNT1RFX0FERFJdKSkuJ18nLnN1YnN0cihtZDUodW5pcWlkKCRnNFtzZXJ2ZXJfdGltZV0pKSwwLDgpLidfJy51cmxlbmNvZGUoJGZpbGVuYW1lKTsNCiAgICAgICAgLy8gtN66+7/CtbW01CC89sGkIDogx9Gx28bEwM/AuiB1cmxlbmNvZGUoJGZpbGVuYW1lKSDDs7iuuKYgx9Kw5r/sICclJ7imILrZv6nB1rDUILXHtMK1pSAnJSfHpb3DtMIgucy18L7ux8O3ucDMvu6woSDAzr3EwLsguPjHz7HiILanua6/oSDA57v9wMwgvsi1y7TPtNkuILHXt6G8rSC6r7Dmx9EgxsTAz7jtv6G8rSAnJSe6zrrQwLsgu6nB1rjpIMfYsOG1y7TPtNkuIA0KICAgICAgICAvLyR1cGxvYWRbJGldW2ZpbGVdID0gYWJzKGlwMmxvbmcoJF9TRVJWRVJbUkVNT1RFX0FERFJdKSkuJ18nLnN1YnN0cihtZDUodW5pcWlkKCRnNFtzZXJ2ZXJfdGltZV0pKSwwLDgpLidfJy5zdHJfcmVwbGFjZSgnJScsICcnLCB1cmxlbmNvZGUoJGZpbGVuYW1lKSk7IA0KICAgICAgICBzaHVmZmxlKCRjaGFyc19hcnJheSk7DQogICAgICAgICRzaHVmZmxlID0gaW1wbG9kZSgiIiwgJGNoYXJzX2FycmF5KTsNCg0KICAgICAgICAvLyDDt7rOxsTAzyDDt7rOvcMgw7e6zsbEwM+47b+hILD4uenAzCDG98fUtce+7iDA1sC4uOkgwM+6ziBQQ7+hvK0gurjAzMH2IL7KsMWzqiC02b/ut8615SC1x8H2IL7KtMIgx/a788DMIMDWvcC0z7TZLiAosea787+pwMcgtNQgMDkwOTI1KQ0KICAgICAgICAvLyR1cGxvYWRbJGldW2ZpbGVdID0gYWJzKGlwMmxvbmcoJF9TRVJWRVJbUkVNT1RFX0FERFJdKSkuJ18nLnN1YnN0cigkc2h1ZmZsZSwwLDgpLidfJy5zdHJfcmVwbGFjZSgnJScsICcnLCB1cmxlbmNvZGUoJGZpbGVuYW1lKSk7IA0KICAgICAgICAkdXBsb2FkWyRpXVtmaWxlXSA9IGFicyhpcDJsb25nKCRfU0VSVkVSW1JFTU9URV9BRERSXSkpLidfJy5zdWJzdHIoJHNodWZmbGUsMCw4KS4nXycuc3RyX3JlcGxhY2UoJyUnLCAnJywgdXJsZW5jb2RlKHN0cl9yZXBsYWNlKCcgJywgJ18nLCAkZmlsZW5hbWUpKSk7IA0KDQogICAgICAgICRkZXN0X2ZpbGUgPSAiJGc0W3BhdGhdL2RhdGEvZmlsZS8kYm9fdGFibGUvIiAuICR1cGxvYWRbJGldW2ZpbGVdOw0KDQogICAgICAgIC8vIL73t8615bChIL7Itci02bjpIL+ht6+43ry8wfYgw+K3wsfPsO0gwde+7rn2uLO0z7TZLg0KICAgICAgICAkZXJyb3JfY29kZSA9IG1vdmVfdXBsb2FkZWRfZmlsZSgkdG1wX2ZpbGUsICRkZXN0X2ZpbGUpIG9yIGRpZSgkX0ZJTEVTW2JmX2ZpbGVdW2Vycm9yXVskaV0pOw0KDQogICAgICAgIC8vIL/DtvOwoyDGxMDPwMcgxtu5zLzHwLsguq+w5sfVtM+02S4NCiAgICAgICAgY2htb2QoJGRlc3RfZmlsZSwgMDYwNik7DQoNCiAgICAgICAgLy8kdXBsb2FkWyRpXVtpbWFnZV0gPSBAZ2V0aW1hZ2VzaXplKCRkZXN0X2ZpbGUpOw0KDQogICAgfQ0KfQ0KDQppZiAoJHcgPT0gIiIgfHwgJHcgPT0gInIiKSANCnsNCiAgICBpZiAoJG1lbWJlclttYl9pZF0pIA0KICAgIHsNCiAgICAgICAgJG1iX2lkID0gJG1lbWJlclttYl9pZF07DQogICAgICAgICR3cl9uYW1lID0gJGJvYXJkW2JvX3VzZV9uYW1lXSA/ICRtZW1iZXJbbWJfbmFtZV0gOiAkbWVtYmVyW21iX25pY2tdOw0KICAgICAgICAkd3JfcGFzc3dvcmQgPSAkbWVtYmVyW21iX3Bhc3N3b3JkXTsNCiAgICAgICAgJHdyX2VtYWlsID0gJG1lbWJlclttYl9lbWFpbF07DQogICAgICAgICR3cl9ob21lcGFnZSA9ICRtZW1iZXJbbWJfaG9tZXBhZ2VdOw0KICAgIH0gDQogICAgZWxzZSANCiAgICB7DQogICAgICAgICRtYl9pZCA9ICIiOw0KICAgICAgICAvLyC68ci4v/jAxyCw5r/sIMDMuKfAzCC0qbb0tce0wiCw5r/ssKEgwNbAvQ0KICAgICAgICBpZiAoIXRyaW0oJHdyX25hbWUpKQ0KICAgICAgICAgICAgYWxlcnQoIsDMuKfAuiDHysj3IMDUt8LHz7zFvt8gx9W0z7TZLiIpOw0KICAgICAgICAkd3JfcGFzc3dvcmQgPSBzcWxfcGFzc3dvcmQoJHdyX3Bhc3N3b3JkKTsNCiAgICB9DQoNCiAgICBpZiAoJHcgPT0gInIiKSANCiAgICB7DQogICAgICAgIC8vILTkuq/AxyC/+LHbwMwguvG50LHbwMy287jpIMbQvbq/9rXltMIgv/ix27D6ILW/wM/Hz7DUILPWtMK02S4NCiAgICAgICAgaWYgKCRzZWNyZXQpIA0KICAgICAgICAgICAgJHdyX3Bhc3N3b3JkID0gJHdyW3dyX3Bhc3N3b3JkXTsNCg0KICAgICAgICAkd3JfaWQgPSAkd3JfaWQgLiAkcmVwbHk7DQogICAgICAgICR3cl9udW0gPSAkd3JpdGVbd3JfbnVtXTsNCiAgICAgICAgJHdyX3JlcGx5ID0gJHJlcGx5Ow0KICAgIH0gDQogICAgZWxzZSANCiAgICB7DQogICAgICAgICR3cl9udW0gPSBnZXRfbmV4dF9udW0oJHdyaXRlX3RhYmxlKTsNCiAgICAgICAgJHdyX3JlcGx5ID0gIiI7DQogICAgfQ0KDQogICAgJHNxbCA9ICIgaW5zZXJ0IGludG8gJHdyaXRlX3RhYmxlDQogICAgICAgICAgICAgICAgc2V0IHdyX251bSA9ICckd3JfbnVtJywNCiAgICAgICAgICAgICAgICAgICAgd3JfcmVwbHkgPSAnJHdyX3JlcGx5JywNCiAgICAgICAgICAgICAgICAgICAgd3JfY29tbWVudCA9IDAsDQogICAgICAgICAgICAgICAgICAgIGNhX25hbWUgPSAnJGNhX25hbWUnLA0KICAgICAgICAgICAgICAgICAgICB3cl9vcHRpb24gPSAnJGh0bWwsJHNlY3JldCwkbWFpbCcsDQogICAgICAgICAgICAgICAgICAgIHdyX3N1YmplY3QgPSAnJHdyX3N1YmplY3QnLA0KICAgICAgICAgICAgICAgICAgICB3cl9jb250ZW50ID0gJyR3cl9jb250ZW50JywNCiAgICAgICAgICAgICAgICAgICAgd3JfbGluazEgPSAnJHdyX2xpbmsxJywNCiAgICAgICAgICAgICAgICAgICAgd3JfbGluazIgPSAnJHdyX2xpbmsyJywNCiAgICAgICAgICAgICAgICAgICAgd3JfbGluazFfaGl0ID0gMCwNCiAgICAgICAgICAgICAgICAgICAgd3JfbGluazJfaGl0ID0gMCwNCiAgICAgICAgICAgICAgICAgICAgd3JfdHJhY2tiYWNrID0gJyR3cl90cmFja2JhY2snLA0KICAgICAgICAgICAgICAgICAgICB3cl9oaXQgPSAwLA0KICAgICAgICAgICAgICAgICAgICB3cl9nb29kID0gMCwNCiAgICAgICAgICAgICAgICAgICAgd3Jfbm9nb29kID0gMCwNCiAgICAgICAgICAgICAgICAgICAgbWJfaWQgPSAnJG1lbWJlclttYl9pZF0nLA0KICAgICAgICAgICAgICAgICAgICB3cl9wYXNzd29yZCA9ICckd3JfcGFzc3dvcmQnLA0KICAgICAgICAgICAgICAgICAgICB3cl9uYW1lID0gJyR3cl9uYW1lJywNCiAgICAgICAgICAgICAgICAgICAgd3JfZW1haWwgPSAnJHdyX2VtYWlsJywNCiAgICAgICAgICAgICAgICAgICAgd3JfaG9tZXBhZ2UgPSAnJHdyX2hvbWVwYWdlJywNCiAgICAgICAgICAgICAgICAgICAgd3JfZGF0ZXRpbWUgPSAnJGc0W3RpbWVfeW1kaGlzXScsDQogICAgICAgICAgICAgICAgICAgIHdyX2xhc3QgPSAnJGc0W3RpbWVfeW1kaGlzXScsDQogICAgICAgICAgICAgICAgICAgIHdyX2lwID0gJyRfU0VSVkVSW1JFTU9URV9BRERSXScsDQogICAgICAgICAgICAgICAgICAgIHdyXzEgPSAnJHdyXzEnLA0KICAgICAgICAgICAgICAgICAgICB3cl8yID0gJyR3cl8yJywNCiAgICAgICAgICAgICAgICAgICAgd3JfMyA9ICckd3JfMycsDQogICAgICAgICAgICAgICAgICAgIHdyXzQgPSAnJHdyXzQnLA0KICAgICAgICAgICAgICAgICAgICB3cl81ID0gJyR3cl81JywNCiAgICAgICAgICAgICAgICAgICAgd3JfNiA9ICckd3JfNicsDQogICAgICAgICAgICAgICAgICAgIHdyXzcgPSAnJHdyXzcnLA0KICAgICAgICAgICAgICAgICAgICB3cl84ID0gJyR3cl84JywNCiAgICAgICAgICAgICAgICAgICAgd3JfOSA9ICckd3JfOScsDQogICAgICAgICAgICAgICAgICAgIHdyXzEwID0gJyR3cl8xMCcgIjsNCiAgICBzcWxfcXVlcnkoJHNxbCk7DQoNCiAgICAkd3JfaWQgPSBteXNxbF9pbnNlcnRfaWQoKTsNCg0KICAgIC8vILrOuPAgvsbAzLXwv6EgVVBEQVRFDQogICAgc3FsX3F1ZXJ5KCIgdXBkYXRlICR3cml0ZV90YWJsZSBzZXQgd3JfcGFyZW50ID0gJyR3cl9pZCcgd2hlcmUgd3JfaWQgPSAnJHdyX2lkJyAiKTsNCg0KICAgIC8vILv1sdsgSU5TRVJUDQogICAgLy9zcWxfcXVlcnkoIiBpbnNlcnQgaW50byAkZzRbYm9hcmRfbmV3X3RhYmxlXSAoIGJvX3RhYmxlLCB3cl9pZCwgd3JfcGFyZW50LCBibl9kYXRldGltZSApIHZhbHVlcyAoICckYm9fdGFibGUnLCAnJHdyX2lkJywgJyR3cl9pZCcsICckZzRbdGltZV95bWRoaXNdJyApICIpOw0KICAgIHNxbF9xdWVyeSgiIGluc2VydCBpbnRvICRnNFtib2FyZF9uZXdfdGFibGVdICggYm9fdGFibGUsIHdyX2lkLCB3cl9wYXJlbnQsIGJuX2RhdGV0aW1lLCBtYl9pZCApIHZhbHVlcyAoICckYm9fdGFibGUnLCAnJHdyX2lkJywgJyR3cl9pZCcsICckZzRbdGltZV95bWRoaXNdJywgJyRtZW1iZXJbbWJfaWRdJyApICIpOw0KDQogICAgLy8gsNS9w7HbIDEgwfWwoQ0KICAgIHNxbF9xdWVyeSgidXBkYXRlICRnNFtib2FyZF90YWJsZV0gc2V0IGJvX2NvdW50X3dyaXRlID0gYm9fY291bnRfd3JpdGUgKyAxIHdoZXJlIGJvX3RhYmxlID0gJyRib190YWJsZSciKTsNCg0KICAgIC8vIL6yseIgxvfAzsauILrOv6kNCiAgICBpZiAoJHcgPT0gJycpIA0KICAgIHsNCiAgICAgICAgaWYgKCRub3RpY2UpDQogICAgICAgIHsNCiAgICAgICAgICAgICRib19ub3RpY2UgPSAkd3JfaWQgLiAiXG4iIC4gJGJvYXJkW2JvX25vdGljZV07DQogICAgICAgICAgICBzcWxfcXVlcnkoIiB1cGRhdGUgJGc0W2JvYXJkX3RhYmxlXSBzZXQgYm9fbm90aWNlID0gJyRib19ub3RpY2UnIHdoZXJlIGJvX3RhYmxlID0gJyRib190YWJsZScgIik7DQogICAgICAgIH0NCg0KICAgICAgICBpbnNlcnRfcG9pbnQoJG1lbWJlclttYl9pZF0sICRib2FyZFtib193cml0ZV9wb2ludF0sICIkYm9hcmRbYm9fc3ViamVjdF0gJHdyX2lkILHbvrKx4iIsICRib190YWJsZSwgJHdyX2lkLCAnvrKx4icpOw0KICAgIH0NCiAgICBlbHNlIA0KICAgIHsNCiAgICAgICAgLy8gtOS6r8C6IMTauODGriDG98DOxq64piC6zr+px9QNCiAgICAgICAgLy8gtOS6ryDG98DOxq6woSC4ucC6ILDmv+wgxNq44MauILTrvcUgtOS6r8C7IMfPtMIgsOa/7LChILi5wL0NCiAgICAgICAgaW5zZXJ0X3BvaW50KCRtZW1iZXJbbWJfaWRdLCAkYm9hcmRbYm9fY29tbWVudF9wb2ludF0sICIkYm9hcmRbYm9fc3ViamVjdF0gJHdyX2lkILHbtOS6ryIsICRib190YWJsZSwgJHdyX2lkLCAnvrKx4icpOw0KICAgIH0NCn0gDQplbHNlIGlmICgkdyA9PSAidSIpIA0Kew0KICAgIGlmICgkbWVtYmVyW21iX2lkXSkgDQogICAgew0KICAgICAgICAvLyDA2r3FwMcgsdvAzLbzuOkNCiAgICAgICAgaWYgKCRtZW1iZXJbbWJfaWRdID09ICR3clttYl9pZF0pIA0KICAgICAgICB7DQogICAgICAgICAgICAkbWJfaWQgPSAkbWVtYmVyW21iX2lkXTsNCiAgICAgICAgICAgICR3cl9uYW1lID0gJGJvYXJkW2JvX3VzZV9uYW1lXSA/ICRtZW1iZXJbbWJfbmFtZV0gOiAkbWVtYmVyW21iX25pY2tdOw0KICAgICAgICAgICAgJHdyX2VtYWlsID0gJG1lbWJlclttYl9lbWFpbF07DQogICAgICAgICAgICAkd3JfaG9tZXBhZ2UgPSAkbWVtYmVyW21iX2hvbWVwYWdlXTsNCiAgICAgICAgfSANCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICAkbWJfaWQgPSAkd3JbbWJfaWRdOw0KICAgICAgICAgICAgJHdyX25hbWUgPSAkd3Jbd3JfbmFtZV07DQogICAgICAgICAgICAkd3JfZW1haWwgPSAkd3Jbd3JfZW1haWxdOw0KICAgICAgICAgICAgJHdyX2hvbWVwYWdlID0gJHdyW3dyX2hvbWVwYWdlXTsNCiAgICAgICAgfQ0KICAgIH0gDQogICAgZWxzZSANCiAgICB7DQogICAgICAgICRtYl9pZCA9ICIiOw0KICAgICAgICAvLyC68ci4v/jAxyCw5r/sIMDMuKfAzCC0qbb0tce0wiCw5r/ssKEgwNbAvQ0KICAgICAgICAvL2lmICghdHJpbSgkd3JfbmFtZSkpIGFsZXJ0KCLAzLinwLogx8rI9yDA1LfCx8+8xb7fIMfVtM+02S4iKTsNCiAgICB9DQoNCiAgICAkc3FsX3Bhc3N3b3JkID0gJHdyX3Bhc3N3b3JkID8gIiAsIHdyX3Bhc3N3b3JkID0gJyIuc3FsX3Bhc3N3b3JkKCR3cl9wYXNzd29yZCkuIicgIiA6ICIiOw0KDQogICAgJHNxbF9pcCA9ICIiOw0KICAgIGlmICghJGlzX2FkbWluKQ0KICAgICAgICAkc3FsX2lwID0gIiAsIHdyX2lwID0gJyRfU0VSVkVSW1JFTU9URV9BRERSXScgIjsNCg0KICAgICRzcWwgPSAiIHVwZGF0ZSAkd3JpdGVfdGFibGUNCiAgICAgICAgICAgICAgICBzZXQgY2FfbmFtZSA9ICckY2FfbmFtZScsDQogICAgICAgICAgICAgICAgICAgIHdyX29wdGlvbiA9ICckaHRtbCwkc2VjcmV0LCRtYWlsJywNCiAgICAgICAgICAgICAgICAgICAgd3Jfc3ViamVjdCA9ICckd3Jfc3ViamVjdCcsDQogICAgICAgICAgICAgICAgICAgIHdyX2NvbnRlbnQgPSAnJHdyX2NvbnRlbnQnLA0KICAgICAgICAgICAgICAgICAgICB3cl9saW5rMSA9ICckd3JfbGluazEnLA0KICAgICAgICAgICAgICAgICAgICB3cl9saW5rMiA9ICckd3JfbGluazInLA0KICAgICAgICAgICAgICAgICAgICBtYl9pZCA9ICckbWJfaWQnLA0KICAgICAgICAgICAgICAgICAgICB3cl9uYW1lID0gJyR3cl9uYW1lJywNCiAgICAgICAgICAgICAgICAgICAgd3JfZW1haWwgPSAnJHdyX2VtYWlsJywNCiAgICAgICAgICAgICAgICAgICAgd3JfaG9tZXBhZ2UgPSAnJHdyX2hvbWVwYWdlJywNCiAgICAgICAgICAgICAgICAgICAgd3JfMSA9ICckd3JfMScsDQogICAgICAgICAgICAgICAgICAgIHdyXzIgPSAnJHdyXzInLA0KICAgICAgICAgICAgICAgICAgICB3cl8zID0gJyR3cl8zJywNCiAgICAgICAgICAgICAgICAgICAgd3JfNCA9ICckd3JfNCcsDQogICAgICAgICAgICAgICAgICAgIHdyXzUgPSAnJHdyXzUnLA0KICAgICAgICAgICAgICAgICAgICB3cl82ID0gJyR3cl82JywNCiAgICAgICAgICAgICAgICAgICAgd3JfNyA9ICckd3JfNycsDQogICAgICAgICAgICAgICAgICAgIHdyXzggPSAnJHdyXzgnLA0KICAgICAgICAgICAgICAgICAgICB3cl85ID0gJyR3cl85JywNCiAgICAgICAgICAgICAgICAgICAgd3JfMTA9ICckd3JfMTAnDQogICAgICAgICAgICAgICAgICAgICRzcWxfaXANCiAgICAgICAgICAgICAgICAgICAgJHNxbF9wYXNzd29yZA0KICAgICAgICAgICAgICB3aGVyZSB3cl9pZCA9ICckd3Jbd3JfaWRdJyAiOw0KICAgIHNxbF9xdWVyeSgkc3FsKTsNCg0KICAgIC8vILrQt/mwoSC89sGktce0wiCw5r/sIMfYtOe1x7TCIMTauODGrsDHILrQt/m47bW1ILjwtc4gvPbBpMfUDQogICAgLy8gxNq44MauwMcgutC3+bimILz2waTHz8H2IL7KwLi46SCwy7v2wMwgwaa067fOILXHwfYgvsrAvQ0KICAgICRzcWwgPSAiIHVwZGF0ZSAkd3JpdGVfdGFibGUgc2V0IGNhX25hbWUgPSAnJGNhX25hbWUnIHdoZXJlIHdyX3BhcmVudCA9ICckd3Jbd3JfaWRdJyAiOw0KICAgIHNxbF9xdWVyeSgkc3FsKTsNCg0KICAgIGlmICgkbm90aWNlKSANCiAgICB7DQogICAgICAgIC8vaWYgKCFwcmVnX21hdGNoKCIvW14wLTldezAsMX17JHdyX2lkfVtccl17MCwxfS8iLCRib2FyZFtib19ub3RpY2VdKSkgDQogICAgICAgIGlmICghaW5fYXJyYXkoKGludCkkd3JfaWQsICRub3RpY2VfYXJyYXkpKQ0KICAgICAgICB7DQogICAgICAgICAgICAkYm9fbm90aWNlID0gJHdyX2lkIC4gJ1xuJyAuICRib2FyZFtib19ub3RpY2VdOw0KICAgICAgICAgICAgc3FsX3F1ZXJ5KCIgdXBkYXRlICRnNFtib2FyZF90YWJsZV0gc2V0IGJvX25vdGljZSA9ICckYm9fbm90aWNlJyB3aGVyZSBib190YWJsZSA9ICckYm9fdGFibGUnICIpOw0KICAgICAgICB9DQogICAgfSANCiAgICBlbHNlIA0KICAgIHsNCiAgICAgICAgJGJvX25vdGljZSA9ICcnOw0KICAgICAgICBmb3IgKCRpPTA7ICRpPGNvdW50KCRub3RpY2VfYXJyYXkpOyAkaSsrKQ0KICAgICAgICAgICAgaWYgKChpbnQpJHdyX2lkICE9IChpbnQpJG5vdGljZV9hcnJheVskaV0pDQogICAgICAgICAgICAgICAgJGJvX25vdGljZSAuPSAkbm90aWNlX2FycmF5WyRpXSAuICdcbic7DQogICAgICAgICRib19ub3RpY2UgPSB0cmltKCRib19ub3RpY2UpOw0KICAgICAgICAvLyRib19ub3RpY2UgPSBwcmVnX3JlcGxhY2UoIi9eIi4kd3JfaWQuIltcbl0/JC9tIiwgIiIsICRib2FyZFtib19ub3RpY2VdKTsNCiAgICAgICAgc3FsX3F1ZXJ5KCIgdXBkYXRlICRnNFtib2FyZF90YWJsZV0gc2V0IGJvX25vdGljZSA9ICckYm9fbm90aWNlJyB3aGVyZSBib190YWJsZSA9ICckYm9fdGFibGUnICIpOw0KICAgIH0NCn0NCg0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gsKG6ryDGxMDPIL73t8615Q0KLy8gs6rB37+hIMXXwMy67b+hIMD6wOXHz7TCIMDMwK+0wiAkd3JfaWQgsKrAuyDA+sDlx9i+3yDHz7HiILanua7A1LTPtNkuDQpmb3IgKCRpPTA7ICRpPGNvdW50KCR1cGxvYWQpOyAkaSsrKSANCnsNCiAgICAkcm93ID0gc3FsX2ZldGNoKCIgc2VsZWN0IGNvdW50KCopIGFzIGNudCBmcm9tICRnNFtib2FyZF9maWxlX3RhYmxlXSB3aGVyZSBib190YWJsZSA9ICckYm9fdGFibGUnIGFuZCB3cl9pZCA9ICckd3JfaWQnIGFuZCBiZl9ubyA9ICckaScgIik7DQogICAgaWYgKCRyb3dbY250XSkgDQogICAgew0KICAgICAgICAvLyC76MGmv6Egw7zFqbChIMDWsMWzqiDGxMDPwMwgwNa02bjpIL73taXAzMauuKYgx9W0z7TZLg0KICAgICAgICAvLyCx17e4wfYgvsq02bjpILO7v+u4uCC+97WlwMzGriDH1bTPtNkuDQogICAgICAgIGlmICgkdXBsb2FkWyRpXVtkZWxfY2hlY2tdIHx8ICR1cGxvYWRbJGldW2ZpbGVdKSANCiAgICAgICAgew0KICAgICAgICAgICAgJHNxbCA9ICIgdXBkYXRlICRnNFtib2FyZF9maWxlX3RhYmxlXQ0KICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGJmX3NvdXJjZSA9ICd7JHVwbG9hZFskaV1bc291cmNlXX0nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmX2ZpbGUgPSAneyR1cGxvYWRbJGldW2ZpbGVdfScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZfY29udGVudCA9ICd7JGJmX2NvbnRlbnRbJGldfScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZfZmlsZXNpemUgPSAneyR1cGxvYWRbJGldW2ZpbGVzaXplXX0nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmX3dpZHRoID0gJ3skdXBsb2FkWyRpXVtpbWFnZV1bMF19JywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZl9oZWlnaHQgPSAneyR1cGxvYWRbJGldW2ltYWdlXVsxXX0nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmX3R5cGUgPSAneyR1cGxvYWRbJGldW2ltYWdlXVsyXX0nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmX2RhdGV0aW1lID0gJyRnNFt0aW1lX3ltZGhpc10nDQogICAgICAgICAgICAgICAgICAgICAgd2hlcmUgYm9fdGFibGUgPSAnJGJvX3RhYmxlJw0KICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHdyX2lkID0gJyR3cl9pZCcNCiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBiZl9ubyA9ICckaScgIjsNCiAgICAgICAgICAgIHNxbF9xdWVyeSgkc3FsKTsNCiAgICAgICAgfSANCiAgICAgICAgZWxzZSANCiAgICAgICAgew0KICAgICAgICAgICAgJHNxbCA9ICIgdXBkYXRlICRnNFtib2FyZF9maWxlX3RhYmxlXQ0KICAgICAgICAgICAgICAgICAgICAgICAgc2V0IGJmX2NvbnRlbnQgPSAneyRiZl9jb250ZW50WyRpXX0nIA0KICAgICAgICAgICAgICAgICAgICAgIHdoZXJlIGJvX3RhYmxlID0gJyRib190YWJsZScNCiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB3cl9pZCA9ICckd3JfaWQnDQogICAgICAgICAgICAgICAgICAgICAgICBhbmQgYmZfbm8gPSAnJGknICI7DQogICAgICAgICAgICBzcWxfcXVlcnkoJHNxbCk7DQogICAgICAgIH0NCiAgICB9IA0KICAgIGVsc2UgDQogICAgew0KICAgICAgICAkc3FsID0gIiBpbnNlcnQgaW50byAkZzRbYm9hcmRfZmlsZV90YWJsZV0NCiAgICAgICAgICAgICAgICAgICAgc2V0IGJvX3RhYmxlID0gJyRib190YWJsZScsDQogICAgICAgICAgICAgICAgICAgICAgICB3cl9pZCA9ICckd3JfaWQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgYmZfbm8gPSAnJGknLA0KICAgICAgICAgICAgICAgICAgICAgICAgYmZfc291cmNlID0gJ3skdXBsb2FkWyRpXVtzb3VyY2VdfScsDQogICAgICAgICAgICAgICAgICAgICAgICBiZl9maWxlID0gJ3skdXBsb2FkWyRpXVtmaWxlXX0nLA0KICAgICAgICAgICAgICAgICAgICAgICAgYmZfY29udGVudCA9ICd7JGJmX2NvbnRlbnRbJGldfScsDQogICAgICAgICAgICAgICAgICAgICAgICBiZl9kb3dubG9hZCA9IDAsDQogICAgICAgICAgICAgICAgICAgICAgICBiZl9maWxlc2l6ZSA9ICd7JHVwbG9hZFskaV1bZmlsZXNpemVdfScsDQogICAgICAgICAgICAgICAgICAgICAgICBiZl93aWR0aCA9ICd7JHVwbG9hZFskaV1baW1hZ2VdWzBdfScsDQogICAgICAgICAgICAgICAgICAgICAgICBiZl9oZWlnaHQgPSAneyR1cGxvYWRbJGldW2ltYWdlXVsxXX0nLA0KICAgICAgICAgICAgICAgICAgICAgICAgYmZfdHlwZSA9ICd7JHVwbG9hZFskaV1baW1hZ2VdWzJdfScsDQogICAgICAgICAgICAgICAgICAgICAgICBiZl9kYXRldGltZSA9ICckZzRbdGltZV95bWRoaXNdJyAiOw0KICAgICAgICBzcWxfcXVlcnkoJHNxbCk7DQogICAgfQ0KfQ0KDQovLyC+97fOteW1yCDGxMDPILO7v+u/obytILChwOUgxasgufjIo7imIL7yvu4gsMWy2bfOIMiuwM7H2CCwobjpvK0NCi8vIMbEwM8gwaS6uLChIL74tNm46SDF18DMuu3AxyCzu7/rwLsgu+jBpsfVtM+02S4NCiRyb3cgPSBzcWxfZmV0Y2goIiBzZWxlY3QgbWF4KGJmX25vKSBhcyBtYXhfYmZfbm8gZnJvbSAkZzRbYm9hcmRfZmlsZV90YWJsZV0gd2hlcmUgYm9fdGFibGUgPSAnJGJvX3RhYmxlJyBhbmQgd3JfaWQgPSAnJHdyX2lkJyAiKTsNCmZvciAoJGk9KGludCkkcm93W21heF9iZl9ub107ICRpPj0wOyAkaS0tKSANCnsNCiAgICAkcm93MiA9IHNxbF9mZXRjaCgiIHNlbGVjdCBiZl9maWxlIGZyb20gJGc0W2JvYXJkX2ZpbGVfdGFibGVdIHdoZXJlIGJvX3RhYmxlID0gJyRib190YWJsZScgYW5kIHdyX2lkID0gJyR3cl9pZCcgYW5kIGJmX25vID0gJyRpJyAiKTsNCg0KICAgIC8vIMGkuriwoSDA1rTZuOkguvzB/bTPtNkuDQogICAgaWYgKCRyb3cyW2JmX2ZpbGVdKSBicmVhazsNCg0KICAgIC8vILHXt7jB9iC+yrTZuOkgwaS6uLimILvowabH1bTPtNkuDQogICAgc3FsX3F1ZXJ5KCIgZGVsZXRlIGZyb20gJGc0W2JvYXJkX2ZpbGVfdGFibGVdIHdoZXJlIGJvX3RhYmxlID0gJyRib190YWJsZScgYW5kIHdyX2lkID0gJyR3cl9pZCcgYW5kIGJmX25vID0gJyRpJyAiKTsNCn0NCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vILrxudCx28DMtvO46SC8vLzHv6EguvG50LHbwMcgvsbAzLXwuKYgwPrA5cfRtNkuIMDavcXAxyCx28C6ILTZvcMgxtC9ur/2teW4piC5r8H2IL7KseIgwKfH1A0KaWYgKCRzZWNyZXQpIA0KICAgIHNldF9zZXNzaW9uKCJzc19zZWNyZXRfeyRib190YWJsZX1feyR3cl9udW19IiwgVFJVRSk7DQoNCi8vILjewM+537zbILvnv+sgKLz2waSx28C6ILnfvNvHz8H2IL7KwL0pDQppZiAoISgkdyA9PSAidSIgfHwgJHcgPT0gImN1IikgJiYgJGNvbmZpZ1tjZl9lbWFpbF91c2VdICYmICRib2FyZFtib191c2VfZW1haWxdKSANCnsNCiAgICAvLyCw/LiuwNrAxyDBpLq4uKYgvvKw7Q0KICAgICRzdXBlcl9hZG1pbiA9IGdldF9hZG1pbigic3VwZXIiKTsNCiAgICAkZ3JvdXBfYWRtaW4gPSBnZXRfYWRtaW4oImdyb3VwIik7DQogICAgJGJvYXJkX2FkbWluID0gZ2V0X2FkbWluKCJib2FyZCIpOw0KDQogICAgJHdyX3N1YmplY3QgPSBnZXRfdGV4dChzdHJpcHNsYXNoZXMoJHdyX3N1YmplY3QpKTsNCg0KICAgICR0bXBfaHRtbCA9IDA7DQogICAgaWYgKHN0cnN0cigkaHRtbCwgImh0bWwxIikpDQogICAgICAgICR0bXBfaHRtbCA9IDE7DQogICAgZWxzZSBpZiAoc3Ryc3RyKCRodG1sLCAiaHRtbDIiKSkNCiAgICAgICAgJHRtcF9odG1sID0gMjsNCg0KICAgICR3cl9jb250ZW50ID0gY29udl9jb250ZW50KHN0cmlwc2xhc2hlcygkd3JfY29udGVudCksICR0bXBfaHRtbCk7DQoNCiAgICAkd2FyciA9IGFycmF5KCAiIj0+IsDUt8IiLCAidSI9PiK89sGkIiwgInIiPT4itOS6ryIsICJjIj0+IsTauODGriIsICJjdSI9PiLE2rjgxq4gvPbBpCIgKTsNCiAgICAkc3RyID0gJHdhcnJbJHddOw0KDQogICAgJHN1YmplY3QgPSAiJ3skYm9hcmRbYm9fc3ViamVjdF19JyCw1L3Dxse/oSB7JHN0cn2x28DMIL/DtvO/1L3AtM+02S4iOw0KICAgICRsaW5rX3VybCA9ICIkZzRbdXJsXS8kZzRbYmJzXS9ib2FyZC5waHA/Ym9fdGFibGU9JGJvX3RhYmxlJndyX2lkPSR3cl9pZCYkcXN0ciI7DQoNCiAgICBpbmNsdWRlX29uY2UoIiRnNFtwYXRoXS9saWIvbWFpbGVyLmxpYi5waHAiKTsNCg0KICAgIG9iX3N0YXJ0KCk7DQogICAgaW5jbHVkZV9vbmNlICgiLi93cml0ZV91cGRhdGVfbWFpbC5waHAiKTsNCiAgICAkY29udGVudCA9IG9iX2dldF9jb250ZW50cygpOw0KICAgIG9iX2VuZF9jbGVhbigpOw0KDQogICAgLy8gsNS9w8bHsPy4rsDav6Gw1CC6uLO7tMIguN7Azw0KICAgIGlmICgkY29uZmlnW2NmX2VtYWlsX3dyX2JvYXJkX2FkbWluXSkNCiAgICAgICAgbWFpbGVyKCR3cl9uYW1lLCAkd3JfZW1haWwsICRib2FyZF9hZG1pblttYl9lbWFpbF0sICRzdWJqZWN0LCAkY29udGVudCwgMSk7DQoNCiAgICAvLyCx17fssPy4rsDav6Gw1CC6uLO7tMIguN7Azw0KICAgIGlmICgkZ3JvdXBfYWRtaW5bbWJfZW1haWxdICE9ICRib2FyZF9hZG1pblttYl9lbWFpbF0pDQogICAgew0KICAgICAgICBpZiAoJGNvbmZpZ1tjZl9lbWFpbF93cl9ncm91cF9hZG1pbl0pDQogICAgICAgICAgICBtYWlsZXIoJHdyX25hbWUsICR3cl9lbWFpbCwgJGdyb3VwX2FkbWluW21iX2VtYWlsXSwgJHN1YmplY3QsICRjb250ZW50LCAxKTsNCiAgICB9DQoNCiAgICAvLyDD1rDtsPy4rsDav6Gw1CC6uLO7tMIguN7Azw0KICAgIGlmICgkc3VwZXJfYWRtaW5bbWJfZW1haWxdICE9ICRib2FyZF9hZG1pblttYl9lbWFpbF0pDQogICAgew0KICAgICAgICBpZiAoJGNvbmZpZ1tjZl9lbWFpbF93cl9zdXBlcl9hZG1pbl0pDQogICAgICAgICAgICBtYWlsZXIoJHdyX25hbWUsICR3cl9lbWFpbCwgJHN1cGVyX2FkbWluW21iX2VtYWlsXSwgJHN1YmplY3QsICRjb250ZW50LCAxKTsNCiAgICB9DQoNCiAgICAvLyC05LqvILjewM+53rHiICi/+LDUvcPA2r+hsNQgurizu7TCILjewM8pDQogICAgaWYgKHN0cnN0cigkd3Jbd3Jfb3B0aW9uXSwgIm1haWwiKSAmJiAkd3Jbd3JfZW1haWxdICYmICR3clt3cl9lbWFpbF0gIT0gJGFkbWluW21iX2VtYWlsXSkgDQogICAgew0KICAgICAgICBpZiAoJGNvbmZpZ1tjZl9lbWFpbF93cl93cml0ZV0pDQogICAgICAgICAgICBtYWlsZXIoJHdyX25hbWUsICR3cl9lbWFpbCwgJHdyW3dyX2VtYWlsXSwgJHN1YmplY3QsICRjb250ZW50LCAxKTsNCg0KICAgICAgICAvLyDE2rjgxq4gvrQguPC158DMv6Gw1CC43sDPILnfvNsNCiAgICAgICAgaWYgKCRjb25maWdbY2ZfZW1haWxfd3JfY29tbWVudF9hbGxdKSANCiAgICAgICAgew0KICAgICAgICAgICAgJHNxbCA9ICIgc2VsZWN0IGRpc3RpbmN0IHdyX2VtYWlsIGZyb20gJHdyaXRlX3RhYmxlDQogICAgICAgICAgICAgICAgICAgICAgd2hlcmUgd3JfZW1haWwgbm90IGluICggJyR3clt3cl9lbWFpbF0nLCAnJyApDQogICAgICAgICAgICAgICAgICAgICAgICBhbmQgd3JfcGFyZW50ID0gJyR3cl9pZCcgIjsNCiAgICAgICAgICAgICRyZXN1bHQgPSBzcWxfcXVlcnkoJHNxbCk7DQogICAgICAgICAgICB3aGlsZSAoJHJvdz1zcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkpDQogICAgICAgICAgICAgICAgbWFpbGVyKCR3cl9uYW1lLCAkd3JfZW1haWwsICRyb3dbd3JfZW1haWxdLCAkc3ViamVjdCwgJGNvbnRlbnQsIDEpOw0KICAgICAgICB9DQogICAgfQ0KfQ0KDQovLyC757/rwNogxNq15SC9x8fgDQpAaW5jbHVkZV9vbmNlICgiJGJvYXJkX3NraW5fcGF0aC93cml0ZV91cGRhdGUuc2tpbi5waHAiKTsNCg0KLy8gxq63ornpIMHWvNKwoSDA1rTZuOkNCmlmICgoJHcgIT0gInUiICYmICR3cl90cmFja2JhY2spIHx8ICgkdz09InUiICYmICR3cl90cmFja2JhY2sgJiYgJHJlX3RyYWNrYmFjaykpIA0Kew0KICAgICR0cmFja2JhY2tfdXJsID0gIiRnNFt1cmxdLyRnNFtiYnNdL3RiLnBocC8kYm9fdGFibGUvJHdyX2lkIjsNCiAgICAkbXNnID0gIiI7DQogICAgJG1zZyA9IHNlbmRfdHJhY2tiYWNrKCR3cl90cmFja2JhY2ssICR0cmFja2JhY2tfdXJsLCAkd3Jfc3ViamVjdCwgJGJvYXJkW2JvX3N1YmplY3RdLCAkX1BPU1Rbd3JfY29udGVudF0pOw0KICAgIGlmICgkbXNnKSANCiAgICAgICAgZWNobyAiPHNjcmlwdCBsYW5ndWFnZT0nSmF2YVNjcmlwdCc+YWxlcnQoJyRtc2cgJHdyX3RyYWNrYmFjaycpOzwvc2NyaXB0PiI7DQp9DQoNCkBpbmNsdWRlX29uY2UoIiRib2FyZF9za2luX3BhdGgvd3JpdGVfdXBkYXRlLnRhaWwuc2tpbi5waHAiKTsNCg0KaWYgKCRnNFtodHRwc191cmxdKQ0KICAgICRodHRwc191cmwgPSAiJGc0W3VybF0vJGc0W2Jic10iOw0KZWxzZQ0KICAgICRodHRwc191cmwgPSAiLiI7DQoNCmlmICgkZmlsZV91cGxvYWRfbXNnKQ0KICAgIGFsZXJ0KCRmaWxlX3VwbG9hZF9tc2csICJ7JGh0dHBzX3VybH0vYm9hcmQucGhwP2JvX3RhYmxlPSRib190YWJsZSZ3cl9pZD0kd3JfaWQmcGFnZT0kcGFnZSIgLiAkcXN0cik7DQplbHNlDQogICAgZ290b191cmwoInskaHR0cHNfdXJsfS9ib2FyZC5waHA/Ym9fdGFibGU9JGJvX3RhYmxlJndyX2lkPSR3cl9pZCZwYWdlPSRwYWdlIiAuICRxc3RyKTsNCj8+
 
작성일 : 17-10-18 08:34
동부저축 상품금리 변경
조회 : 62,885  
안녕하세요?

2017년 10/18(월)부터 동부저축은행 스탁론상품 금리변경안내입니다.

많은 이용 부탁드립니다.

감사합니다.


[동부저축, 증권사 상품]

가. 상품명 : 키워드림론, 우리해피론, 부자네S론, 하나부자론, 대우해피론, 해피스탁론

나. 금리 :

■ 취급수수료 2%
- 연5.0% (연장시 5.7%) : 6개증권사(키움/SK/동부/NH/하나/대우)
■ 취급수수료 무료
- ■ 연6.9%(6개월)-7.9%(6개월) (이후 6.9%) : 5개 증권사 (동부/SK/NH/하나금융투자/대우)

다. 대출 기간 : 5년 (6개월단위 연장)

라. 연장수수료 : 無(없음)

마. 대출 금액 : 3억원


▒▒▒ 키워드림론(키움증권) 바로가기 ▒▒▒

▒▒▒ 우리해피론(NH투자증권) 바로가기 ▒▒▒

▒▒▒ 부자네S론(SK증권) 바로가기 ▒▒▒

▒▒▒ 하나부자론(하나대투증권) 바로가기 ▒▒▒

▒▒▒ 대우해피론(대우증권) 바로가기 ▒▒▒

▒▒▒ 해피스탁론(동부증권) 바로가기 ▒▒▒