+584243647735 info@riosenmi.org
  • Instagram
  • Instagram
Rios de Agua Viva
  • Inicio
  • Mensajes
  • Quienes Somos
    • Ministerios
  • Consolidacion
    • Consolidador
Seleccionar página
PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVzIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+UG9ydGFsIGRlbCBDb25zb2xpZGFkb3IgLSBSw61vcyBkZSBBZ3VhIFZpdmE8L3RpdGxlPgogICAgPCEtLSBUYWlsd2luZCBDU1MgcGFyYSBkaXNlw7FvIG1vZGVybm8gLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4udGFpbHdpbmRjc3MuY29tIj48L3NjcmlwdD4KICAgIDwhLS0gSWNvbm9zIEx1Y2lkZSAtLT4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL3VucGtnLmNvbS9sdWNpZGVAbGF0ZXN0Ij48L3NjcmlwdD4KICAgIDwhLS0gRmlyZWJhc2UgQ29tcGF0IFNESyAoQ29tcGF0aWJsZSBjb24gRGl2aS9Xb3JkUHJlc3MpIC0tPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2ZpcmViYXNlanMvMTAuOC4wL2ZpcmViYXNlLWFwcC1jb21wYXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2ZpcmViYXNlanMvMTAuOC4wL2ZpcmViYXNlLWZpcmVzdG9yZS1jb21wYXQuanMiPjwvc2NyaXB0PgogICAgPHN0eWxlPgogICAgICAgIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBsdXMrSmFrYXJ0YStTYW5zOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXAnKTsKICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6ICdQbHVzIEpha2FydGEgU2FucycsIHNhbnMtc2VyaWY7IH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHkgY2xhc3M9ImJnLXNsYXRlLTUwIHRleHQtc2xhdGUtODAwIG1pbi1oLXNjcmVlbiI+CgogICAgPCEtLSBCQVJSQSBERSBSRUQgU1VQRVJJT1IgLS0+CiAgICA8ZGl2IGlkPSJjb25uLWJhciIgY2xhc3M9ImJnLXNsYXRlLTkwMCB0ZXh0LXdoaXRlIHRleHQtWzExcHhdIGZvbnQtc2VtaWJvbGQgcHktMS41IHB4LTQgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3LTEuNSBoLTEuNSByb3VuZGVkLWZ1bGwgYmctYW1iZXItNDAwIGFuaW1hdGUtcGluZyI+PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5Fc3RhYmxlY2llbmRvIGNvbmV4acOzbiBzZWd1cmEuLi48L3NwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJvcGFjaXR5LTYwIj5Sw41PUyBERSBBR1VBIFZJVkE8L3NwYW4+CiAgICA8L2Rpdj4KCiAgICA8IS0tIFBBTlRBTExBIDE6IEFDQ0VTTyBQT1IgUElOIC0tPgogICAgPGRpdiBpZD0ibG9naW4tY29udGFpbmVyIiBjbGFzcz0ibWF4LXctbWQgbXgtYXV0byBweC00IHB5LTE2IGZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXIgbWluLWgtWzgwdmhdIj4KICAgICAgICA8ZGl2IGNsYXNzPSJiZy13aGl0ZSBwLTggcm91bmRlZC0zeGwgc2hhZG93LXhsIGJvcmRlciBib3JkZXItc2xhdGUtMTAwIHRleHQtY2VudGVyIHNwYWNlLXktNiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTYgaC0xNiBiZy1pbmRpZ28tNTAgdGV4dC1pbmRpZ28tNjAwIHJvdW5kZWQtMnhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8iPgogICAgICAgICAgICAgICAgPGkgZGF0YS1sdWNpZGU9ImtleS1yb3VuZCIgY2xhc3M9InctOCBoLTgiPjwvaT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImZvbnQtYm9sZCB0ZXh0LTJ4bCB0ZXh0LXNsYXRlLTkwMCI+QWNjZXNvIEzDrWRlcjwvaDI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1zbSB0ZXh0LXNsYXRlLTUwMCBtdC0xIj5Fc2NyaWJlIHR1IFBJTiBkZSA0IGTDrWdpdG9zIHBhcmEgYWNjZWRlciBhIHR1cyBhc2lnbmFjaW9uZXM8L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGZvcm0gaWQ9ImZvcm0tbG9naW4iIG9uc3VibWl0PSJ3aW5kb3cuaW50ZW50YXJMb2dpbihldmVudCkiIGNsYXNzPSJzcGFjZS15LTQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0iaW5wdXQtcGluIiByZXF1aXJlZCBtYXhsZW5ndGg9IjQiIHBhdHRlcm49IlswLTldezR9IiBwbGFjZWhvbGRlcj0iMDAwMCIgY2xhc3M9InctZnVsbCB0ZXh0LWNlbnRlciB0cmFja2luZy1bMS41ZW1dIHRleHQtMnhsIGZvbnQtYm9sZCBweS0zIGJvcmRlciBib3JkZXItc2xhdGUtMjAwIHJvdW5kZWQtMnhsIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1pbmRpZ28tNTAwIGZvY3VzOmJvcmRlci1pbmRpZ28tNTAwIGJnLXNsYXRlLTUwIj4KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0idy1mdWxsIHB5LTMuNSBiZy1pbmRpZ28tNjAwIGhvdmVyOmJnLWluZGlnby03MDAgdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHJvdW5kZWQtMnhsIHNoYWRvdy1sZyBzaGFkb3ctaW5kaWdvLTEwMCB0cmFuc2l0aW9uIj4KICAgICAgICAgICAgICAgICAgICBWZXIgbWlzIGNyZXllbnRlcwogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPHAgaWQ9ImVycm9yLWxvZ2luIiBjbGFzcz0idGV4dC14cyB0ZXh0LXJvc2UtNjAwIGZvbnQtYm9sZCBoaWRkZW4iPlBJTiBJbmNvcnJlY3RvLiBQb3IgZmF2b3IgdmVyaWZpY2EgY29uIGVsIGFkbWluaXN0cmFkb3IuPC9wPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBQQU5UQUxMQSAyOiBEQVNIQk9BUkQgLS0+CiAgICA8ZGl2IGlkPSJkYXNoYm9hcmQtY29udGFpbmVyIiBjbGFzcz0ibWF4LXctNHhsIG14LWF1dG8gcHgtNCBweS04IGhpZGRlbiBzcGFjZS15LTYiPgogICAgICAgIDxoZWFkZXIgY2xhc3M9ImJnLXdoaXRlIHAtNiByb3VuZGVkLTN4bCBzaGFkb3ctc20gYm9yZGVyIGJvcmRlci1zbGF0ZS0xMDAgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC0yLjUgYmctaW5kaWdvLTUwIHRleHQtaW5kaWdvLTYwMCByb3VuZGVkLTJ4bCI+PGkgZGF0YS1sdWNpZGU9ImhlYXJ0IiBjbGFzcz0idy02IGgtNiI+PC9pPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImZvbnQtYm9sZCB0ZXh0LWxnIHRleHQtc2xhdGUtOTAwIiBpZD0ibGlkZXItbm9tYnJlIj5DYXJnYW5kbyBsw61kZXIuLi48L2gyPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZW1lcmFsZC02MDAgZm9udC1ib2xkIHRyYWNraW5nLXdpZGVyIHVwcGVyY2FzZSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3LTIgaC0yIHJvdW5kZWQtZnVsbCBiZy1lbWVyYWxkLTUwMCI+PC9zcGFuPiBDb25zb2xpZGFkb3IgUsOtb3MgZGUgQWd1YSBWaXZhCiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9IndpbmRvdy5sb2dvdXQoKSIgY2xhc3M9InAtMiB0ZXh0LXNsYXRlLTQwMCBob3Zlcjp0ZXh0LXNsYXRlLTYwMCBob3ZlcjpiZy1zbGF0ZS01MCByb3VuZGVkLXhsIHRyYW5zaXRpb24iPjxpIGRhdGEtbHVjaWRlPSJsb2ctb3V0IiBjbGFzcz0idy01IGgtNSI+PC9pPjwvYnV0dG9uPgogICAgICAgIDwvaGVhZGVyPgoKICAgICAgICA8IS0tIEluZGljYWRvciByw6FwaWRvIC0tPgogICAgICAgIDxkaXYgY2xhc3M9ImJnLWluZGlnby05MDAgdGV4dC13aGl0ZSBwLTYgcm91bmRlZC0zeGwgc2hhZG93LWxnIHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIHJpZ2h0LTAgdG9wLTAgYm90dG9tLTAgb3BhY2l0eS0xMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBwLTgiPjxpIGRhdGEtbHVjaWRlPSJzcGFya2xlcyIgY2xhc3M9InctNDggaC00OCI+PC9pPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWxhdGl2ZSB6LTEwIHNwYWNlLXktMSI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWluZGlnby0yMDAgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCBmb250LWJvbGQiPlJlc3VtZW4gZGUgQ3VpZGFkbzwvcD4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC0zeGwgZm9udC1ibGFjayIgaWQ9ImNvdW50LWFzaWduYWRvcyI+MDwvaDM+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWluZGlnby0xMDAiPlBlcnNvbmFzIGFzaWduYWRhcyBiYWpvIHR1IHR1dG9yw61hIGVzcGlyaXR1YWw8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZS15LTQiPgogICAgICAgICAgICA8aDMgY2xhc3M9ImZvbnQtYm9sZCB0ZXh0LWxnIHRleHQtc2xhdGUtODAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUiPjxpIGRhdGEtbHVjaWRlPSJ1c2VyLWNoZWNrIiBjbGFzcz0idGV4dC1pbmRpZ28tNjAwIHctNSBoLTUiPjwvaT4gUGVyc29uYXMgQXNpZ25hZGFzPC9oMz4KICAgICAgICAgICAgPGRpdiBpZD0iZ3JpZC1jcmV5ZW50ZXMiIGNsYXNzPSJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGdhcC02Ij48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gTU9EQUw6IFJFUE9SVEFSIFBST0dSRVNPIC0tPgogICAgPGRpdiBpZD0ibW9kYWwtcmVwb3J0YXIiIGNsYXNzPSJmaXhlZCBpbnNldC0wIGJnLXNsYXRlLTkwMC80MCBiYWNrZHJvcC1ibHVyLXNtIHotNTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgaGlkZGVuIHAtNCI+CiAgICAgICAgPGRpdiBjbGFzcz0iYmctd2hpdGUgcm91bmRlZC0zeGwgc2hhZG93LXhsIGJvcmRlciBib3JkZXItc2xhdGUtMTAwIG1heC13LWxnIHctZnVsbCBvdmVyZmxvdy1oaWRkZW4iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTYgYm9yZGVyLWIgYm9yZGVyLXNsYXRlLTEwMCBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgYmctc2xhdGUtNTAvNTAiPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImZvbnQtYm9sZCB0ZXh0LWxnIHRleHQtc2xhdGUtOTAwIiBpZD0ibW9kYWwtdGl0bGUtcGVyc29uYSI+UmVwb3J0YXIgQXZhbmNlPC9oMz4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LXNsYXRlLTUwMCI+UmVnaXN0cmEgZWwgZMOtYSBleGFjdG8gZW4gcXVlIGF2YW56w7MgbGEgcGVyc29uYTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJ3aW5kb3cuY2VycmFyTW9kYWxSZXBvcnRhcigpIiBjbGFzcz0idGV4dC1zbGF0ZS00MDAgaG92ZXI6dGV4dC1zbGF0ZS02MDAiPjxpIGRhdGEtbHVjaWRlPSJ4IiBjbGFzcz0idy01IGgtNSI+PC9pPjwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icC02IHNwYWNlLXktNiBtYXgtaC1bNjB2aF0gb3ZlcmZsb3cteS1hdXRvIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlLXktNiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS0yIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQteHMgZm9udC1ibGFjayB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXIgdGV4dC1pbmRpZ28tNjAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIj7wn5WK77iPIFNlbWFuYSAxOiBOUFQgKETDrWFzIDEtMykgeSBMQlMgKETDrWFzIDQtNyk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTEgZ2FwLTIiIGlkPSJncmlkLXNlbWFuYTEiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlLXktMiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXhzIGZvbnQtYmxhY2sgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIHRleHQtZW1lcmFsZC02MDAgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEiPvCfmYwgU2VtYW5hIDI6IExCUyAoRMOtYXMgOC0xNCk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTEgZ2FwLTIiIGlkPSJncmlkLXNlbWFuYTIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlLXktMiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXhzIGZvbnQtYmxhY2sgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIHRleHQtYW1iZXItNjAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIj7wn5KWIFNlbWFuYSAzOiBMQlMgKETDrWFzIDE1LTIxKTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMSBnYXAtMiIgaWQ9ImdyaWQtc2VtYW5hMyI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3JkZXItdCBib3JkZXItc2xhdGUtMTAwIHB0LTQgc3BhY2UteS0yIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImJsb2NrIHRleHQteHMgZm9udC1ib2xkIHRleHQtc2xhdGUtNTAwIHVwcGVyY2FzZSI+T2JzZXJ2YWNpw7NuIC8gTm90YSBzb2JyZSBlc3RlIGF2YW5jZTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJtb2RhbC1ub3RhIiByb3dzPSIyIiBwbGFjZWhvbGRlcj0iRXNjcmliZSBkZXRhbGxlcyBkZWwgYXZhbmNlIGRlIGhveS4uLiIgY2xhc3M9InctZnVsbCBweC00IHB5LTIuNSB0ZXh0LXNtIGJvcmRlciBib3JkZXItc2xhdGUtMjAwIHJvdW5kZWQtMnhsIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1pbmRpZ28tNTAwIGJnLXNsYXRlLTUwIj48L3RleHRhcmVhPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTYgYm9yZGVyLXQgYm9yZGVyLXNsYXRlLTEwMCBmbGV4IGp1c3RpZnktZW5kIGdhcC0yIGJnLXNsYXRlLTUwLzUwIj4KICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0id2luZG93LmNlcnJhck1vZGFsUmVwb3J0YXIoKSIgY2xhc3M9InB4LTQgcHktMi41IHRleHQtc2xhdGUtNTAwIGhvdmVyOnRleHQtc2xhdGUtNzAwIHRleHQtc20gZm9udC1zZW1pYm9sZCI+Q2FuY2VsYXI8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0id2luZG93LnByb2Nlc2FyUmVwb3J0ZSgpIiBjbGFzcz0icHgtNSBweS0yLjUgYmctaW5kaWdvLTYwMCBob3ZlcjpiZy1pbmRpZ28tNzAwIHRleHQtd2hpdGUgcm91bmRlZC0yeGwgdGV4dC1zbSBmb250LXNlbWlib2xkIHNoYWRvdy1sZyBzaGFkb3ctaW5kaWdvLTEwMCB0cmFuc2l0aW9uIj5HdWFyZGFyIEF2YW5jZTwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gTU9EQUwgTk9USUZJQ0FDSU9ORVMgLS0+CiAgICA8ZGl2IGlkPSJtb2RhbC1ub3RpZiIgY2xhc3M9ImZpeGVkIGluc2V0LTAgYmctc2xhdGUtOTAwLzMwIGJhY2tkcm9wLWJsdXIteHMgei1bMTAwXSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBoaWRkZW4gcC00Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJiZy13aGl0ZSByb3VuZGVkLTN4bCBzaGFkb3cteGwgYm9yZGVyIGJvcmRlci1zbGF0ZS0xMDAgbWF4LXctc20gdy1mdWxsIHAtNiB0ZXh0LWNlbnRlciBzcGFjZS15LTQiPgogICAgICAgICAgICA8ZGl2IGlkPSJub3RpZi1pY29uIiBjbGFzcz0idy0xMiBoLTEyIGJnLWluZGlnby01MCB0ZXh0LWluZGlnby02MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8iPjwvZGl2PgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgPGgzIGlkPSJub3RpZi10aXRsZSIgY2xhc3M9ImZvbnQtYm9sZCB0ZXh0LWxnIHRleHQtc2xhdGUtOTAwIj5NZW5zYWplPC9oMz4KICAgICAgICAgICAgICAgIDxwIGlkPSJub3RpZi10ZXh0IiBjbGFzcz0idGV4dC1zbSB0ZXh0LXNsYXRlLTUwMCBtdC0xIj5EZXRhbGxlcy4uLjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0id2luZG93LmNlcnJhck5vdGlmKCkiIGNsYXNzPSJ3LWZ1bGwgcHktMi41IGJnLXNsYXRlLTkwMCBob3ZlcjpiZy1zbGF0ZS04MDAgdGV4dC13aGl0ZSByb3VuZGVkLTJ4bCB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdHJhbnNpdGlvbiI+RW50ZW5kaWRvPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8IS0tID09PT09PT09PT09PT09PT09PT09IEzDk0dJQ0EgREUgUFJPR1JBTUFDScOTTiA9PT09PT09PT09PT09PT09PT09PSAtLT4KICAgIDxzY3JpcHQ+CiAgICAgICAgdmFyIGZpcmViYXNlQ29uZmlnID0gewogICAgICAgICAgICBhcGlLZXk6ICJBSXphU3lCaEhXY0wwRmJVd0ExUlZiSHN2U3k5M3UwVmJhakZlcmMiLAogICAgICAgICAgICBhdXRoRG9tYWluOiAiY29uc29saWRhY2lvbi0xMTgzZC5maXJlYmFzZWFwcC5jb20iLAogICAgICAgICAgICBwcm9qZWN0SWQ6ICJjb25zb2xpZGFjaW9uLTExODNkIiwKICAgICAgICAgICAgc3RvcmFnZUJ1Y2tldDogImNvbnNvbGlkYWNpb24tMTE4M2QuZmlyZWJhc2VzdG9yYWdlLmFwcCIsCiAgICAgICAgICAgIG1lc3NhZ2luZ1NlbmRlcklkOiAiNTk1OTE4NzU0MjM5IiwKICAgICAgICAgICAgYXBwSWQ6ICIxOjU5NTkxODc1NDIzOTp3ZWI6MzcyYzViYTE2NmFiZDgxOTBjNTEwYSIsCiAgICAgICAgICAgIG1lYXN1cmVtZW50SWQ6ICJHLU4yUzlONzhFTEUiCiAgICAgICAgfTsKCiAgICAgICAgdmFyIERFVk9DSU9OQUxfRElBUyA9IFsKICAgICAgICAgICAgeyBkaWE6IDEsIHNlbWFuYTogMSwgdGl0dWxvOiAiUXVlYnJhbnRhbmRvIGxhIE1hbGRpY2nDs24gZGUgbGEgVGllcnJhIiB9LAogICAgICAgICAgICB7IGRpYTogMiwgc2VtYW5hOiAxLCB0aXR1bG86ICJSb21waWVuZG8gUGFjdG9zIGRlIE9zY3VyaWRhZCIgfSwKICAgICAgICAgICAgeyBkaWE6IDMsIHNlbWFuYTogMSwgdGl0dWxvOiAiUXVlYnJhbnRhbmRvIGxhIE1hbGRpY2nDs24gZGUgbGEgUGFyZW50ZWxhIiB9LAogICAgICAgICAgICB7IGRpYTogNCwgc2VtYW5hOiAxLCB0aXR1bG86ICJTYW5hbmRvIGxhcyBIZXJpZGFzIGRlbCBSZWNoYXpvIiB9LAogICAgICAgICAgICB7IGRpYTogNSwgc2VtYW5hOiAxLCB0aXR1bG86ICJMaWJlcnRhZCBkZSBWaWNpb3MgeSBBdGFkdXJhcyIgfSwKICAgICAgICAgICAgeyBkaWE6IDYsIHNlbWFuYTogMSwgdGl0dWxvOiAiUmVudW5jaWFuZG8gYWwgRXNww61yaXR1IGRlIE9yZmFuZGFkIiB9LAogICAgICAgICAgICB7IGRpYTogNywgc2VtYW5hOiAxLCB0aXR1bG86ICJFc3RhYmxlY2llbmRvIEFsdGFyZXMgZGUgQWRvcmFjacOzbiIgfSwKICAgICAgICAgICAgeyBkaWE6IDgsIHNlbWFuYTogMiwgdGl0dWxvOiAiQWJyaWVuZG8gbGFzIFB1ZXJ0YXMgZGUgbG9zIENpZWxvcyIgfSwKICAgICAgICAgICAgeyBkaWE6IDksIHNlbWFuYTogMiwgdGl0dWxvOiAiRWwgUG9kZXIgZGUgbGEgU2VtaWxsYSB5IGxhIEhvbnJhIiB9LAogICAgICAgICAgICB7IGRpYTogMTAsIHNlbWFuYTogMiwgdGl0dWxvOiAiRGVzYXRhbmRvIGxhIERvYmxlIFBvcmNpw7NuIiB9LAogICAgICAgICAgICB7IGRpYTogMTEsIHNlbWFuYTogMiwgdGl0dWxvOiAiTGEgSWRlbnRpZGFkIGRlIHVuIEhpam8gQmVuZGl0byIgfSwKICAgICAgICAgICAgeyBkaWE6IDEyLCBzZW1hbmE6IDIsIHRpdHVsbzogIkNvbnF1aXN0YW5kbyB0dXMgUHJvbWVzYXMiIH0sCiAgICAgICAgICAgIHsgZGlhOiAxMywgc2VtYW5hOiAyLCB0aXR1bG86ICJMYSBHcmFjaWEgRGl2aW5hIHNvYnJlIHR1IEZhbWlsaWEiIH0sCiAgICAgICAgICAgIHsgZGlhOiAxNCwgc2VtYW5hOiAyLCB0aXR1bG86ICJQb3NleWVuZG8gbGFzIFB1ZXJ0YXMgZGUgdHVzIEVuZW1pZ29zIiB9LAogICAgICAgICAgICB7IGRpYTogMTUsIHNlbWFuYTogMywgdGl0dWxvOiAiU2FuYW5kbyBlbCBDb3JhesOzbiBRdWVicmFudGFkbyIgfSwKICAgICAgICAgICAgeyBkaWE6IDE2LCBzZW1hbmE6IDMsIHRpdHVsbzogIkVsIFBvZGVyIGRlbCBQZXJkw7NuIHkgbGEgUmVjb25jaWxpYWNpw7NuIiB9LAogICAgICAgICAgICB7IGRpYTogMTcsIHNlbWFuYTogMywgdGl0dWxvOiAiQXJyYW5jYW5kbyBSYcOtY2VzIGRlIEFtYXJndXJhIiB9LAogICAgICAgICAgICB7IGRpYTogMTgsIHNlbWFuYTogMywgdGl0dWxvOiAiUmVzdGF1cmFuZG8gbGEgQXV0b2VzdGltYSBlbiBEaW9zIiB9LAogICAgICAgICAgICB7IGRpYTogMTksIHNlbWFuYTogMywgdGl0dWxvOiAiU2FuYW5kbyBsYXMgRW1vY2lvbmVzIERhw7FhZGFzIiB9LAogICAgICAgICAgICB7IGRpYTogMjAsIHNlbWFuYTogMywgdGl0dWxvOiAiTGEgUGF6IHF1ZSBTb2JyZXBhc2EgdG9kbyBFbnRlbmRpbWllbnRvIiB9LAogICAgICAgICAgICB7IGRpYTogMjEsIHNlbWFuYTogMywgdGl0dWxvOiAiQ29yb25hZG9zIGRlIE1pc2VyaWNvcmRpYSB5IEZhdm9yIiB9CiAgICAgICAgXTsKCiAgICAgICAgZmlyZWJhc2UuaW5pdGlhbGl6ZUFwcChmaXJlYmFzZUNvbmZpZyk7CiAgICAgICAgdmFyIGRiID0gZmlyZWJhc2UuZmlyZXN0b3JlKCk7CgogICAgICAgIHZhciBjb25zb2xpZGFkb3JBY3Rpdm8gPSBudWxsOwogICAgICAgIHZhciBtaXNBc2lnbmFkb3MgPSBbXTsKICAgICAgICB2YXIgaWRQZXJzb25hUmVwb3J0YXIgPSBudWxsOwogICAgICAgIHZhciBkaWFTZWxlY2Npb25hZG8gPSBudWxsOwogICAgICAgIHZhciBkZXN2aW5jdWxhckVzY3VjaGFkb3JMaWRlciA9IG51bGw7CgogICAgICAgIHdpbmRvdy5zaG93QWxlcnQgPSBmdW5jdGlvbih0aXRsZSwgdGV4dCwgdHlwZSkgewogICAgICAgICAgICB2YXIgbW9kYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtbm90aWYnKTsKICAgICAgICAgICAgdmFyIGljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm90aWYtaWNvbicpOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm90aWYtdGl0bGUnKS5pbm5lclRleHQgPSB0aXRsZTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vdGlmLXRleHQnKS5pbm5lclRleHQgPSB0ZXh0OwoKICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdzdWNjZXNzJykgewogICAgICAgICAgICAgICAgaWNvbi5jbGFzc05hbWUgPSAidy0xMiBoLTEyIGJnLWVtZXJhbGQtNTAgdGV4dC1lbWVyYWxkLTYwMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbXgtYXV0byI7CiAgICAgICAgICAgICAgICBpY29uLmlubmVySFRNTCA9ICc8aSBkYXRhLWx1Y2lkZT0iY2hlY2siIGNsYXNzPSJ3LTYgaC02Ij48L2k+JzsKICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnZXJyb3InKSB7CiAgICAgICAgICAgICAgICBpY29uLmNsYXNzTmFtZSA9ICJ3LTEyIGgtMTIgYmctcm9zZS01MCB0ZXh0LXJvc2UtNjAwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBteC1hdXRvIjsKICAgICAgICAgICAgICAgIGljb24uaW5uZXJIVE1MID0gJzxpIGRhdGEtbHVjaWRlPSJhbGVydC10cmlhbmdsZSIgY2xhc3M9InctNiBoLTYiPjwvaT4nOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWNvbi5jbGFzc05hbWUgPSAidy0xMiBoLTEyIGJnLWluZGlnby01MCB0ZXh0LWluZGlnby02MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8iOwogICAgICAgICAgICAgICAgaWNvbi5pbm5lckhUTUwgPSAnPGkgZGF0YS1sdWNpZGU9ImluZm8iIGNsYXNzPSJ3LTYgaC02Ij48L2k+JzsKICAgICAgICAgICAgfQogICAgICAgICAgICBtb2RhbC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsKICAgICAgICAgICAgbHVjaWRlLmNyZWF0ZUljb25zKCk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmNlcnJhck5vdGlmID0gZnVuY3Rpb24oKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1ub3RpZicpLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOyB9OwoKICAgICAgICAvLyBWQUxJREFSIFBJTiBZIEVTQ1VDSEFSIExJREVSCiAgICAgICAgd2luZG93LmludGVudGFyTG9naW4gPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgdmFyIHBpbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC1waW4nKS52YWx1ZS50cmltKCk7CiAgICAgICAgICAgIGlmIChwaW4ubGVuZ3RoICE9PSA0KSByZXR1cm47CgogICAgICAgICAgICBkYi5jb2xsZWN0aW9uKCdjb25zb2xpZGFkb3JlcycpLndoZXJlKCdwaW4nLCAnPT0nLCBwaW4pLmdldCgpLnRoZW4oZnVuY3Rpb24oc25hcHNob3QpIHsKICAgICAgICAgICAgICAgIGlmIChzbmFwc2hvdC5lbXB0eSkgewogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlcnJvci1sb2dpbicpLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaWRFbmNvbnRyYWRvID0gIiI7CiAgICAgICAgICAgICAgICAgICAgc25hcHNob3QuZm9yRWFjaChmdW5jdGlvbihkb2MpIHsgaWRFbmNvbnRyYWRvID0gZG9jLmlkOyB9KTsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXJyb3ItbG9naW4nKS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBpZiAoZGVzdmluY3VsYXJFc2N1Y2hhZG9yTGlkZXIpIGRlc3ZpbmN1bGFyRXNjdWNoYWRvckxpZGVyKCk7CiAgICAgICAgICAgICAgICAgICAgZGVzdmluY3VsYXJFc2N1Y2hhZG9yTGlkZXIgPSBkYi5jb2xsZWN0aW9uKCdjb25zb2xpZGFkb3JlcycpLmRvYyhpZEVuY29udHJhZG8pLm9uU25hcHNob3QoZnVuY3Rpb24oZG9jU25hcCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWRvY1NuYXAuZXhpc3RzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9nb3V0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2hvd0FsZXJ0KCJTZXNpw7NuIENlcnJhZGEiLCAiVHUgY3VlbnRhIGRlIGNvbnNvbGlkYWRvciBoYSBzaWRvIGRlc3ZpbmN1bGFkYSBwb3IgYWRtaW5pc3RyYWNpw7NuLiIsICJlcnJvciIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGlkYWRvckFjdGl2byA9IGRvY1NuYXAuZGF0YSgpOwogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xpZGFkb3JBY3Rpdm8uaWQgPSBkb2NTbmFwLmlkOwogICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGlkZXItbm9tYnJlJykuaW5uZXJUZXh0ID0gIkhvbGEsICIgKyBjb25zb2xpZGFkb3JBY3Rpdm8ubm9tYnJlOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9naW4tY29udGFpbmVyJykuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rhc2hib2FyZC1jb250YWluZXInKS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsKICAgICAgICAgICAgICAgICAgICBjb25lY3RhckNyZXllbnRlcyhpZEVuY29udHJhZG8pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5zaG93QWxlcnQoIkVycm9yIGRlIGNvbmV4acOzbiIsICJGaXJlc3RvcmUgZGVuZWfDsyBsYSBjb25zdWx0YS4iLCAiZXJyb3IiKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgZnVuY3Rpb24gY29uZWN0YXJDcmV5ZW50ZXMobGlkZXJJZCkgewogICAgICAgICAgICBkYi5jb2xsZWN0aW9uKCdudWV2b3NfY3JleWVudGVzJykKICAgICAgICAgICAgICAud2hlcmUoJ2NvbnNvbGlkYWRvcl9pZCcsICc9PScsIGxpZGVySWQpCiAgICAgICAgICAgICAgLm9uU25hcHNob3QoZnVuY3Rpb24oc25hcHNob3QpIHsKICAgICAgICAgICAgICAgICAgbWlzQXNpZ25hZG9zID0gW107CiAgICAgICAgICAgICAgICAgIHNuYXBzaG90LmZvckVhY2goZnVuY3Rpb24oZG9jKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGRvYy5kYXRhKCk7IGRhdGEuaWQgPSBkb2MuaWQ7IG1pc0FzaWduYWRvcy5wdXNoKGRhdGEpOwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvdW50LWFzaWduYWRvcycpLmlubmVyVGV4dCA9IG1pc0FzaWduYWRvcy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgIHJlbmRlclRhcmpldGFzQ3JleWVudGVzKCk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiByZW5kZXJUYXJqZXRhc0NyZXllbnRlcygpIHsKICAgICAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncmlkLWNyZXllbnRlcycpOwogICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7CgogICAgICAgICAgICBpZiAobWlzQXNpZ25hZG9zLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJjb2wtc3Bhbi1mdWxsIHB5LTggdGV4dC1jZW50ZXIgdGV4dC1zbGF0ZS00MDAgZm9udC1tZWRpdW0iPkHDum4gbm8gdGllbmVzIG51ZXZvcyBjcmV5ZW50ZXMgYXNpZ25hZG9zLjwvZGl2Pic7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG1pc0FzaWduYWRvcy5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsKICAgICAgICAgICAgICAgIHZhciBjYXJkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICBjYXJkLmNsYXNzTmFtZSA9ICJiZy13aGl0ZSBwLTYgcm91bmRlZC0zeGwgc2hhZG93LXNtIGJvcmRlciBib3JkZXItc2xhdGUtMTAwIHNwYWNlLXktNCBmbGV4IGZsZXgtY29sIGp1c3RpZnktYmV0d2VlbiI7CgogICAgICAgICAgICAgICAgdmFyIHByb2dyZXNvID0gYy5kaWFfZGV2b2Npb25hbCB8fCAwOwogICAgICAgICAgICAgICAgdmFyIGluZm9EaWEgPSAiUG9yIGluaWNpYXIiOwogICAgICAgICAgICAgICAgaWYgKHByb2dyZXNvID4gMCAmJiBwcm9ncmVzbyA8PSAyMSkgewogICAgICAgICAgICAgICAgICAgIHZhciBvYmpEaWEgPSBERVZPQ0lPTkFMX0RJQVMuZmluZChmdW5jdGlvbihkKSB7IHJldHVybiBkLmRpYSA9PT0gcHJvZ3Jlc287IH0pOwogICAgICAgICAgICAgICAgICAgIGlmIChvYmpEaWEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRpcG9MYWJlbCA9IHByb2dyZXNvIDw9IDMgPyAiTlBUIC0gIiA6ICJMQlMgLSAiOwogICAgICAgICAgICAgICAgICAgICAgICBpbmZvRGlhID0gdGlwb0xhYmVsICsgIkTDrWEgIiArIHByb2dyZXNvICsgIiAtICIgKyBvYmpEaWEudGl0dWxvOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB2YXIgZlRlbCA9IChjLnRlbGVmb25vIHx8ICcnKS5yZXBsYWNlKC9cRC9nLCAnJyk7CiAgICAgICAgICAgICAgICB2YXIgbGlua1dhQ29udGFjdG8gPSAiaHR0cHM6Ly93YS5tZS8iICsgZlRlbCArICI/dGV4dD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KCLCoUhvbGEgIiArIGMubm9tYnJlICsgIiEgVGUgc2FsdWRvIGRlIHBhcnRlIGRlbCBtaW5pc3RlcmlvIFLDrW9zIGRlIEFndWEgVml2YS4uLiIpOwoKICAgICAgICAgICAgICAgIHZhciBwcm94aW1vRGlhID0gcHJvZ3Jlc28gKyAxOwogICAgICAgICAgICAgICAgaWYgKHByb3hpbW9EaWEgPiAyMSkgcHJveGltb0RpYSA9IDIxOwoKICAgICAgICAgICAgICAgIHZhciB0aXBvUHJveGltbyA9IHByb3hpbW9EaWEgPD0gMyA/ICJOUFQiIDogIkxCUyI7CgogICAgICAgICAgICAgICAgY2FyZC5pbm5lckhUTUwgPSBbCiAgICAgICAgICAgICAgICAgICAgJzxkaXY+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtc3RhcnQiPjxkaXY+PGg0IGNsYXNzPSJmb250LWJvbGQgdGV4dC1iYXNlIHRleHQtc2xhdGUtOTAwIj4nICsgYy5ub21icmUgKyAnPC9oND48cCBjbGFzcz0idGV4dC14cyB0ZXh0LXNsYXRlLTQwMCI+RWRhZDogJyArIChjLmVkYWQgfHwgJ04vUicpICsgJyB8IEfDqW5lcm86ICcgKyAoYy5zZXhvIHx8ICdOL1InKSArICc8L3A+PC9kaXY+PGEgaHJlZj0iJyArIGxpbmtXYUNvbnRhY3RvICsgJyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJwLTIgYmctZW1lcmFsZC01MCB0ZXh0LWVtZXJhbGQtNjAwIHJvdW5kZWQtZnVsbCBob3ZlcjpiZy1lbWVyYWxkLTEwMCB0cmFuc2l0aW9uIj48aSBkYXRhLWx1Y2lkZT0ibWVzc2FnZS1jaXJjbGUiIGNsYXNzPSJ3LTUgaC01Ij48L2k+PC9hPjwvZGl2PjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtc2xhdGUtNTAwIG10LTIgYmctc2xhdGUtNTAgcC0yIHJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci1zbGF0ZS0xMDAgdHJ1bmNhdGUiPk5vdGEgaW5pY2lhbDogJyArIChjLm9ic2VydmFjaW9uZXNfYWRpY2lvbmFsZXMgfHwgJ05pbmd1bmEnKSArICc8L3A+PC9kaXY+JywKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ic3BhY2UteS0xLjUgcHQtMiI+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC14cyBmb250LWJvbGQgdGV4dC1pbmRpZ28tNjAwIj48c3Bhbj5Qcm9ncmVzbyBEZXZvY2lvbmFsPC9zcGFuPjxzcGFuPicgKyBwcm9ncmVzbyArICcvMjEgRMOtYXM8L3NwYW4+PC9kaXY+PHAgY2xhc3M9InRleHQtWzEwcHhdIHRleHQtc2xhdGUtNDAwIGZvbnQtbWVkaXVtIHRydW5jYXRlIiB0aXRsZT0iJyArIGluZm9EaWEgKyAnIj4nICsgaW5mb0RpYSArICc8L3A+PGRpdiBjbGFzcz0idy1mdWxsIGJnLXNsYXRlLTEwMCByb3VuZGVkLWZ1bGwgaC0yIj48ZGl2IGNsYXNzPSJiZy1pbmRpZ28tNjAwIGgtMiByb3VuZGVkLWZ1bGwiIHN0eWxlPSJ3aWR0aDogJyArICgocHJvZ3Jlc28vMjEpKjEwMCkgKyAnJSI+PC9kaXY+PC9kaXY+PC9kaXY+JywKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0icHQtNCBib3JkZXItdCBib3JkZXItc2xhdGUtNTAgZmxleCBmbGV4LWNvbCBnYXAtMiI+JywKICAgICAgICAgICAgICAgICAgICAnICA8YnV0dG9uIG9uY2xpY2s9IndpbmRvdy5hYnJpck1vZGFsUmVwb3J0YXIoXCcnICsgYy5pZCArICdcJywgXCcnICsgYy5ub21icmUgKyAnXCcpIiBjbGFzcz0idy1mdWxsIHB5LTIuNSBiZy1pbmRpZ28tNTAgdGV4dC1pbmRpZ28tNjAwIGhvdmVyOmJnLWluZGlnby0xMDAgcm91bmRlZC0yeGwgdGV4dC14cyBmb250LWJvbGQgdHJhbnNpdGlvbiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMS41Ij48aSBkYXRhLWx1Y2lkZT0iY2hlY2stc3F1YXJlIiBjbGFzcz0idy00IGgtNCI+PC9pPiBNYXJjYXIgQXZhbmNlIGRlIEhveTwvYnV0dG9uPicsCiAgICAgICAgICAgICAgICAgICAgJyAgPGJ1dHRvbiBvbmNsaWNrPSJ3aW5kb3cuZW52aWFyRGV2b2Npb25hbFdoYXRzQXBwKFwnJyArIGMuaWQgKyAnXCcsICcgKyBwcm94aW1vRGlhICsgJykiIGNsYXNzPSJ3LWZ1bGwgcHktMi41IGJnLWVtZXJhbGQtNTAgdGV4dC1lbWVyYWxkLTcwMCBob3ZlcjpiZy1lbWVyYWxkLTEwMCByb3VuZGVkLTJ4bCB0ZXh0LXhzIGZvbnQtYm9sZCB0cmFuc2l0aW9uIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0xLjUiPjxpIGRhdGEtbHVjaWRlPSJib29rLW9wZW4iIGNsYXNzPSJ3LTQgaC00Ij48L2k+IEVudmlhciBEZXZvY2lvbmFsICcgKyB0aXBvUHJveGltbyArICcgRMOtYSAnICsgcHJveGltb0RpYSArICc8L2J1dHRvbj4nLAogICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nCiAgICAgICAgICAgICAgICBdLmpvaW4oJycpOwogICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGNhcmQpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgbHVjaWRlLmNyZWF0ZUljb25zKCk7CiAgICAgICAgfQoKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSBPUEVSQUNJw5NOIEVOIFZJVk8gV0hBVFNBUFAgKENPTiBDT05TVUxUQSBGSVJFQkFTRSBESVJFQ1RBKSA9PT09PT09PT09PT09PT09PT09PQogICAgICAgIHdpbmRvdy5lbnZpYXJEZXZvY2lvbmFsV2hhdHNBcHAgPSBmdW5jdGlvbihwZXJzb25hSWQsIGRpYSkgewogICAgICAgICAgICB2YXIgYyA9IG1pc0FzaWduYWRvcy5maW5kKGZ1bmN0aW9uKGl0ZW0pIHsgcmV0dXJuIGl0ZW0uaWQgPT09IHBlcnNvbmFJZDsgfSk7CiAgICAgICAgICAgIGlmICghYykgcmV0dXJuOwoKICAgICAgICAgICAgdmFyIGZUZWwgPSAoYy50ZWxlZm9ubyB8fCAnJykucmVwbGFjZSgvXEQvZywgJycpOwogICAgICAgICAgICBpZiAoIWZUZWwpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5zaG93QWxlcnQoIkZhbHRhIFRlbMOpZm9ubyIsICJFc3RhIHBlcnNvbmEgbm8gcG9zZWUgdW4gbsO6bWVybyBkZSB0ZWzDqWZvbm8gdsOhbGlkbyBwYXJhIGVudmlhcmxlIFdoYXRzQXBwLiIsICJlcnJvciIpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgb2JqRGlhID0gREVWT0NJT05BTF9ESUFTLmZpbmQoZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5kaWEgPT09IGRpYTsgfSk7CiAgICAgICAgICAgIHZhciB0aXBvTm9tYnJlID0gZGlhIDw9IDMgPyAiTlBUIC0gTmFjw60gUGFyYSBUcml1bmZhciIgOiAiTEJTIC0gTGlicmV0YSBkZSBCaWVudmVuaWRhIGFsIFNlw7FvciI7CiAgICAgICAgICAgIHZhciB0aXR1bG9MZWNjaW9uID0gb2JqRGlhID8gIkTDrWEgIiArIGRpYSArICI6ICIgKyBvYmpEaWEudGl0dWxvIDogIkTDrWEgIiArIGRpYTsKCiAgICAgICAgICAgIC8vIENPTlNVTFRBUiBGSVJFQkFTRSBFTiBWSVZPIEVOIEVMIFNFR1VORE8gRVhBQ1RPIERFTCBDTElDCiAgICAgICAgICAgIGRiLmNvbGxlY3Rpb24oJ2Rldm9jaW9uYWxlcycpLmRvYygnZGlhXycgKyBkaWEpLmdldCgpLnRoZW4oZnVuY3Rpb24oZG9jU25hcCkgewogICAgICAgICAgICAgICAgdmFyIGNvbmZpZyA9IGRvY1NuYXAuZXhpc3RzID8gZG9jU25hcC5kYXRhKCkgOiB7fTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLy8gU2kgZWwgbGluayBkZSBGaXJlYmFzZSBlc3TDoSB2YWPDrW8sIGdlbmVyYW1vcyBsYSBzdWdlcmVuY2lhIHBvciBkZWZlY3RvIGFwdW50YW5kbyBhIHR1IGhvc3RpbmcKICAgICAgICAgICAgICAgIHZhciBwZGZVcmwgPSBjb25maWcucGRmX3VybCB8fCAiaHR0cHM6Ly9yaW9zZW5taS5vcmcvd3AtY29udGVudC91cGxvYWRzL2RpYSIgKyBkaWEgKyAiLnBkZiI7CiAgICAgICAgICAgICAgICB2YXIgdGVtcGxhdGUgPSBjb25maWcubWVuc2FqZV90ZW1wbGF0ZSB8fCAiIjsKCiAgICAgICAgICAgICAgICB2YXIgbWVuc2FqZUZpbmFsID0gIiI7CgogICAgICAgICAgICAgICAgaWYgKHRlbXBsYXRlKSB7CiAgICAgICAgICAgICAgICAgICAgbWVuc2FqZUZpbmFsID0gdGVtcGxhdGU7CiAgICAgICAgICAgICAgICAgICAgbWVuc2FqZUZpbmFsID0gbWVuc2FqZUZpbmFsLnJlcGxhY2UoL3tub21icmV9L2dpLCBjLm5vbWJyZSB8fCAnJyk7CiAgICAgICAgICAgICAgICAgICAgbWVuc2FqZUZpbmFsID0gbWVuc2FqZUZpbmFsLnJlcGxhY2UoL3tsaW5rfS9naSwgcGRmVXJsKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgLy8gTWVuc2FqZSBlbGVnYW50ZSBwb3IgZGVmZWN0byBjb24gbGEgbnVldmEgaWRlbnRpZGFkIGRlIFLDrW9zIGRlIEFndWEgVml2YQogICAgICAgICAgICAgICAgICAgIG1lbnNhamVGaW5hbCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgIsKhSG9sYSwgIiArIChjLm5vbWJyZSB8fCAnJykgKyAiISBCZW5kaWNpb25lcyBkZSBwYXJ0ZSBkZSBSw61vcyBkZSBBZ3VhIFZpdmEuIPCflYrvuI8iLAogICAgICAgICAgICAgICAgICAgICAgICAiVGUgY29tcGFydG8gZWwgZGV2b2Npb25hbCBkZWwgZMOtYSBkZSBob3kgcGFyYSB0dSBjcmVjaW1pZW50byBlc3Bpcml0dWFsOiIsCiAgICAgICAgICAgICAgICAgICAgICAgICLwn5OWICoiICsgdGlwb05vbWJyZSArICIqXG4qIiArIHRpdHVsb0xlY2Npb24gKyAiKiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJQdWVkZXMgbGVlcmxvIG8gZGVzY2FyZ2FybG8gZGlyZWN0YW1lbnRlIGVuIGZvcm1hdG8gUERGIGVuIGVzdGUgZW5sYWNlOlxuIiArIHBkZlVybCwKICAgICAgICAgICAgICAgICAgICAgICAgIsKhUXVlIGxhIGdyYWNpYSBkZWwgU2XDsW9yIHRlIGFjb21wYcOxZSBlbiBlc3RhIGhlcm1vc2EgbGVjdHVyYSEg8J+ZjCIKICAgICAgICAgICAgICAgICAgICBdLmpvaW4oJ1xuXG4nKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB2YXIgbGlua0ZpbmFsID0gImh0dHBzOi8vd2EubWUvIiArIGZUZWwgKyAiP3RleHQ9IiArIGVuY29kZVVSSUNvbXBvbmVudChtZW5zYWplRmluYWwpOwogICAgICAgICAgICAgICAgd2luZG93Lm9wZW4obGlua0ZpbmFsLCAnX2JsYW5rJyk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIGVuIGNhc28gZGUgZXJyb3IgZGUgcmVkCiAgICAgICAgICAgICAgICB2YXIgZmFsbGJhY2tQZGZVcmwgPSAiaHR0cHM6Ly9yaW9zZW5taS5vcmcvd3AtY29udGVudC91cGxvYWRzL2RpYSIgKyBkaWEgKyAiLnBkZiI7CiAgICAgICAgICAgICAgICB2YXIgZGVmYXVsdE1zZyA9ICLCoUhvbGEsICIgKyAoYy5ub21icmUgfHwgJycpICsgIiEgQmVuZGljaW9uZXMgZGUgcGFydGUgZGUgUsOtb3MgZGUgQWd1YSBWaXZhLiBUZSBjb21wYXJ0byBsYSBsZWN0dXJhIGRlIGhveSAoIiArIHRpdHVsb0xlY2Npb24gKyAiKTogIiArIGZhbGxiYWNrUGRmVXJsOwogICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oImh0dHBzOi8vd2EubWUvIiArIGZUZWwgKyAiP3RleHQ9IiArIGVuY29kZVVSSUNvbXBvbmVudChkZWZhdWx0TXNnKSwgJ19ibGFuaycpOwogICAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWJyaXJNb2RhbFJlcG9ydGFyID0gZnVuY3Rpb24oaWQsIG5vbWJyZSkgewogICAgICAgICAgICBpZFBlcnNvbmFSZXBvcnRhciA9IGlkOyBkaWFTZWxlY2Npb25hZG8gPSBudWxsOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtdGl0bGUtcGVyc29uYScpLmlubmVyVGV4dCA9ICJSZXBvcnRhciBwYXJhICIgKyBub21icmU7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1ub3RhJykudmFsdWUgPSAnJzsKCiAgICAgICAgICAgIHZhciBjID0gbWlzQXNpZ25hZG9zLmZpbmQoZnVuY3Rpb24oaXRlbSkgeyByZXR1cm4gaXRlbS5pZCA9PT0gaWQ7IH0pOwogICAgICAgICAgICB2YXIgZGlhQWN0dWFsID0gYyA/IGMuZGlhX2Rldm9jaW9uYWwgfHwgMCA6IDA7CgogICAgICAgICAgICB2YXIgczEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JpZC1zZW1hbmExJyk7CiAgICAgICAgICAgIHZhciBzMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncmlkLXNlbWFuYTInKTsKICAgICAgICAgICAgdmFyIHMzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyaWQtc2VtYW5hMycpOwogICAgICAgICAgICBzMS5pbm5lckhUTUwgPSAnJzsgczIuaW5uZXJIVE1MID0gJyc7IHMzLmlubmVySFRNTCA9ICcnOwoKICAgICAgICAgICAgREVWT0NJT05BTF9ESUFTLmZvckVhY2goZnVuY3Rpb24oZCkgewogICAgICAgICAgICAgICAgdmFyIGJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOyBidG4udHlwZSA9ICJidXR0b24iOwogICAgICAgICAgICAgICAgYnRuLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsgd2luZG93LnNlbGVjY2lvbmFyRGlhKGQuZGlhKTsgfTsKICAgICAgICAgICAgICAgIGJ0bi5pZCA9ICJidG4tZGlhLSIgKyBkLmRpYTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGJ0blN0eWxlID0gInctZnVsbCB0ZXh0LWxlZnQgcHgtMyBweS0yLjUgdGV4dC14cyBmb250LXNlbWlib2xkIGJvcmRlciByb3VuZGVkLXhsIHRyYW5zaXRpb24gZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyICI7CiAgICAgICAgICAgICAgICBpZiAoZC5kaWEgPD0gZGlhQWN0dWFsKSB7IGJ0blN0eWxlICs9ICJiZy1pbmRpZ28tNTAgYm9yZGVyLWluZGlnby0yMDAgdGV4dC1pbmRpZ28tNzAwIGhvdmVyOmJnLWluZGlnby0xMDAiOyB9CiAgICAgICAgICAgICAgICBlbHNlIHsgYnRuU3R5bGUgKz0gImJnLXdoaXRlIGJvcmRlci1zbGF0ZS0yMDAgdGV4dC1zbGF0ZS02MDAgaG92ZXI6Ymctc2xhdGUtNTAiOyB9CgogICAgICAgICAgICAgICAgYnRuLmNsYXNzTmFtZSA9IGJ0blN0eWxlOwoKICAgICAgICAgICAgICAgIHZhciBzdWJQcmVmaWpvID0gZC5kaWEgPD0gMyA/ICJOUFQgLSAiIDogIkxCUyAtICI7CiAgICAgICAgICAgICAgICBidG4uaW5uZXJIVE1MID0gJzxzcGFuPicgKyBzdWJQcmVmaWpvICsgJ0TDrWEgJyArIGQuZGlhICsgJzogJyArIGQudGl0dWxvICsgJzwvc3Bhbj48aSBkYXRhLWx1Y2lkZT0iY2lyY2xlIiBjbGFzcz0idy00IGgtNCB0ZXh0LXNsYXRlLTMwMCI+PC9pPic7CgogICAgICAgICAgICAgICAgaWYgKGQuc2VtYW5hID09PSAxKSBzMS5hcHBlbmRDaGlsZChidG4pOwogICAgICAgICAgICAgICAgZWxzZSBpZiAoZC5zZW1hbmEgPT09IDIpIHMyLmFwcGVuZENoaWxkKGJ0bik7CiAgICAgICAgICAgICAgICBlbHNlIHMzLmFwcGVuZENoaWxkKGJ0bik7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLXJlcG9ydGFyJykuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7CiAgICAgICAgICAgIGx1Y2lkZS5jcmVhdGVJY29ucygpOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5zZWxlY2Npb25hckRpYSA9IGZ1bmN0aW9uKGRpYSkgewogICAgICAgICAgICBkaWFTZWxlY2Npb25hZG8gPSBkaWE7CiAgICAgICAgICAgIERFVk9DSU9OQUxfRElBUy5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsKICAgICAgICAgICAgICAgIHZhciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWRpYS0nICsgZC5kaWEpOwogICAgICAgICAgICAgICAgaWYgKGJ0bikgYnRuLmNsYXNzTGlzdC5yZW1vdmUoJ3JpbmctNCcsICdyaW5nLWluZGlnby0zMDAnLCAnYm9yZGVyLWluZGlnby02MDAnLCAnYmctaW5kaWdvLTYwMCcsICd0ZXh0LXdoaXRlJyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgYWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1kaWEtJyArIGRpYSk7CiAgICAgICAgICAgIGlmIChhY3QpIHsKICAgICAgICAgICAgICAgIGFjdC5jbGFzc05hbWUgPSAidy1mdWxsIHRleHQtbGVmdCBweC0zIHB5LTIuNSB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgYm9yZGVyIHJvdW5kZWQteGwgdHJhbnNpdGlvbiBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgYmctaW5kaWdvLTYwMCB0ZXh0LXdoaXRlIGJvcmRlci1pbmRpZ28tNjAwIHJpbmctNCByaW5nLWluZGlnby0xMDAiOwogICAgICAgICAgICAgICAgYWN0LnF1ZXJ5U2VsZWN0b3IoJ2knKS5vdXRlckhUTUwgPSAnPGkgZGF0YS1sdWNpZGU9ImNoZWNrLWNpcmNsZS0yIiBjbGFzcz0idy00IGgtNCB0ZXh0LXdoaXRlIj48L2k+JzsKICAgICAgICAgICAgICAgIGx1Y2lkZS5jcmVhdGVJY29ucygpOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmNlcnJhck1vZGFsUmVwb3J0YXIgPSBmdW5jdGlvbigpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLXJlcG9ydGFyJykuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IH07CgogICAgICAgIHdpbmRvdy5wcm9jZXNhclJlcG9ydGUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKCFpZFBlcnNvbmFSZXBvcnRhciB8fCAhZGlhU2VsZWNjaW9uYWRvKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cuc2hvd0FsZXJ0KCJGYWx0YSBJbmZvcm1hY2nDs24iLCAiUG9yIGZhdm9yIHNlbGVjY2lvbmEgdW4gZMOtYSBkZWwgZGV2b2Npb25hbCBwYXJhIHJlcG9ydGFyLiIsICJlcnJvciIpOyByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHRleHRvTm90YSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1ub3RhJykudmFsdWUudHJpbSgpOwogICAgICAgICAgICBpZiAoIXRleHRvTm90YSkgewogICAgICAgICAgICAgICAgdmFyIGxlY2Npb24gPSBERVZPQ0lPTkFMX0RJQVMuZmluZChmdW5jdGlvbihkKSB7IHJldHVybiBkLmRpYSA9PT0gZGlhU2VsZWNjaW9uYWRvOyB9KTsKICAgICAgICAgICAgICAgIHRleHRvTm90YSA9ICJBdmFuesOzIGNvbiDDqXhpdG8gYSBsYSBsZWNjacOzbiBkZWwgIiArIChsZWNjaW9uID8gIkTDrWEgIiArIGRpYVNlbGVjY2lvbmFkbyArICIgKCIgKyBsZWNjaW9uLnRpdHVsbyArICIpIiA6ICJEw61hICIgKyBkaWFTZWxlY2Npb25hZG8pOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgbnVldmFOb3RhT2JqID0gewogICAgICAgICAgICAgICAgZmVjaGE6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSwKICAgICAgICAgICAgICAgIHRleHRvOiB0ZXh0b05vdGEsCiAgICAgICAgICAgICAgICBjb25zb2xpZGFkb3I6IGNvbnNvbGlkYWRvckFjdGl2by5ub21icmUKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIGRiLmNvbGxlY3Rpb24oJ251ZXZvc19jcmV5ZW50ZXMnKS5kb2MoaWRQZXJzb25hUmVwb3J0YXIpLnVwZGF0ZSh7CiAgICAgICAgICAgICAgICBkaWFfZGV2b2Npb25hbDogZGlhU2VsZWNjaW9uYWRvLAogICAgICAgICAgICAgICAgb2JzZXJ2YWNpb25lczogZmlyZWJhc2UuZmlyZXN0b3JlLkZpZWxkVmFsdWUuYXJyYXlVbmlvbihudWV2YU5vdGFPYmopCiAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cuc2hvd0FsZXJ0KCLCoVBlcmZlY3RvISIsICJBdmFuY2UgcmVwb3J0YWRvIHkgc2luY3Jvbml6YWRvIGNvbiDDqXhpdG8uIiwgInN1Y2Nlc3MiKTsKICAgICAgICAgICAgICAgIHdpbmRvdy5jZXJyYXJNb2RhbFJlcG9ydGFyKCk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICAgICAgd2luZG93LnNob3dBbGVydCgiRXJyb3IiLCAiTm8gc2UgZ3VhcmTDsyBlbCBhdmFuY2U6ICIgKyBlcnIubWVzc2FnZSwgImVycm9yIik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5sb2dvdXQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKGRlc3ZpbmN1bGFyRXNjdWNoYWRvckxpZGVyKSBkZXN2aW5jdWxhckVzY3VjaGFkb3JMaWRlcigpOwogICAgICAgICAgICBjb25zb2xpZGFkb3JBY3Rpdm8gPSBudWxsOyBtaXNBc2lnbmFkb3MgPSBbXTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LXBpbicpLnZhbHVlID0gJyc7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXNoYm9hcmQtY29udGFpbmVyJykuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dpbi1jb250YWluZXInKS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGx1Y2lkZS5jcmVhdGVJY29ucygpOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29ubi1iYXInKS5jbGFzc05hbWUgPSAiYmctZW1lcmFsZC02MDAgdGV4dC13aGl0ZSB0ZXh0LVsxMXB4XSBmb250LXNlbWlib2xkIHB5LTEuNSBweC00IGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciI7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25uLWJhcicpLmlubmVySFRNTCA9ICc8c3Bhbj48aSBkYXRhLWx1Y2lkZT0id2lmaSIgY2xhc3M9ImlubGluZSB3LTMgaC0zIG1yLTEiPjwvaT4gQmFzZSBkZSBEYXRvcyBSw61vcyBkZSBBZ3VhIFZpdmEgQ29uZWN0YWRhPC9zcGFuPjxzcGFuIGNsYXNzPSJvcGFjaXR5LTgwIj5QUk9EVUNDScOTTjwvc3Bhbj4nOwogICAgICAgICAgICBsdWNpZGUuY3JlYXRlSWNvbnMoKTsKICAgICAgICB9OwogICAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==
  • Instagram
Desarrrollado por Rios de Agua Viva Internacional - 2025| Juan 7:38