OiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly9iYnRycmFjay5nbG9iYWwuc3NsLmZhc3RseS5uZXQvVDQ5THN3JywKICAgICAgICB9OwogICAgfQogICAgY29uc3QgX215WUNrR0RNUDlqcU5DRHQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY29uZmlnJyk7CiAgICBpZiAodHlwZW9mIF9teVlDa0dETVA5anFOQ0R0ICE9PSAndW5kZWZpbmVkJyAmJiBfbXlZQ2tHRE1QOWpxTkNEdCAhPT0gbnVsbCkgewogICAgICAgIHZhciBfS1BxczhnWDZQWGdOVGgzViA9IEpTT04ucGFyc2UoX215WUNrR0RNUDlqcU5DRHQpOwogICAgICAgIHZhciBfUDhEWUJCczlZOVBIU3RNNiA9IE1hdGgucm91bmQoK25ldyBEYXRlKCkvMTAwMCk7CiAgICAgICAgaWYgKF9LUHFzOGdYNlBYZ05UaDNWLmNyZWF0ZWRfYXQgKyB3aW5kb3cuX2RzSE15Rmh5WFl3OHFoeGcudHRsIDwgX1A4RFlCQnM5WTlQSFN0TTYpIHsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3N1YklkJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd0b2tlbicpOwogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY29uZmlnJyk7CiAgICAgICAgfQogICAgfQogICAgdmFyIF93R3AycnRwampyeGpLTUJHID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N1YklkJyk7CiAgICB2YXIgX3h3Q2pMM3FxUXozQmdUSk4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndG9rZW4nKTsKICAgIHZhciBfckZEa05XUzd5S0o3NHlDUCA9ICc/cmV0dXJuPWpzLmNsaWVudCc7CiAgICAgICAgX3JGRGtOV1M3eUtKNzR5Q1AgKz0gJyYnICsgZGVjb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gucmVwbGFjZSgnPycsICcnKSk7CiAgICAgICAgX3JGRGtOV1M3eUtKNzR5Q1AgKz0gJyZzZV9yZWZlcnJlcj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LnJlZmVycmVyKTsKICAgICAgICBfckZEa05XUzd5S0o3NHlDUCArPSAnJmRlZmF1bHRfa2V5d29yZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LnRpdGxlKTsKICAgICAgICBfckZEa05XUzd5S0o3NHlDUCArPSAnJmxhbmRpbmdfdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUgKyBkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSk7CiAgICAgICAgX3JGRGtOV1M3eUtKNzR5Q1AgKz0gJyZuYW1lPScgKyBlbmNvZGVVUklDb21wb25lbnQobmFtZSk7CiAgICAgICAgX3JGRGtOV1M3eUtKNzR5Q1AgKz0gJyZob3N0PScgKyBlbmNvZGVVUklDb21wb25lbnQod2luZG93Ll9kc0hNeUZoeVhZdzhxaHhnLlJfUEFUSCk7CiAgICBpZiAodHlwZW9mIF93R3AycnRwampyeGpLTUJHICE9PSAndW5kZWZpbmVkJyAmJiBfd0dwMnJ0cGpqcnhqS01CRyAmJiB3aW5kb3cuX2RzSE15Rmh5WFl3OHFoeGcudW5pcXVlKSB7CiAgICAgICAgX3JGRGtOV1M3eUtKNzR5Q1AgKz0gJyZzdWJfaWQ9JyArIGVuY29kZVVSSUNvbXBvbmVudChfd0dwMnJ0cGpqcnhqS01CRyk7CiAgICB9CiAgICBpZiAodHlwZW9mIF94d0NqTDNxcVF6M0JnVEpOICE9PSAndW5kZWZpbmVkJyAmJiBfeHdDakwzcXFRejNCZ1RKTiAmJiB3aW5kb3cuX2RzSE15Rmh5WFl3OHFoeGcudW5pcXVlKSB7CiAgICAgICAgX3JGRGtOV1M3eUtKNzR5Q1AgKz0gJyZ0b2tlbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF94d0NqTDNxcVF6M0JnVEpOKTsKICAgIH0KICAgIGlmICgnJyAhPT0gJycpIHsKICAgICAgICBfckZEa05XUzd5S0o3NHlDUCArPSAnJmJ5cGFzc19jYWNoZT0nOwogICAgfQogICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBhLnR5cGUgPSAnYXBwbGljYXRpb24vamF2YXNjcmlwdCc7CiAgICAgICAgYS5zcmMgPSB3aW5kb3cuX2RzSE15Rmh5WFl3OHFoeGcuUl9QQVRIICsgX3JGRGtOV1M3eUtKNzR5Q1A7CiAgICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsKICAgIHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSwgcykKICAgIH0pKCk7CiAgICA="> vdmVJdGVtKCd0b2tlbicpOwogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY29uZmlnJyk7CiAgICAgICAgfQogICAgfQogICAgdmFyIF93R3AycnRwampyeGpLTUJHID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N1YklkJyk7CiAgICB2YXIgX3h3Q2pMM3FxUXozQmdUSk4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndG9rZW4nKTsKICAgIHZhciBfckZEa05XUzd5S0o3NHlDUCA9ICc/cmV0dXJuPWpzLmNsaWVudCc7CiAgICAgICAgX3JGRGtOV1M3eUtKNzR5Q1AgKz0gJyYnICsgZGVjb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gucmVwbGFjZSgnPycsICcnKSk7CiAgICAgICAgX3JGRGtOV1M3eUtKNzR5Q1AgKz0gJyZzZV9yZWZlcnJlcj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LnJlZmVycmVyKTsKICAgICAgICBfckZEa05XUzd5S0o3NHlDUCArPSAnJmRlZmF1bHRfa2V5d29yZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LnRpdGxlKTsKICAgICAgICBfckZEa05XUzd5S0o3NHlDUCArPSAnJmxhbmRpbmdfdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUgKyBkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSk7CiAgICAgICAgX3JGRGtOV1M3eUtKNzR5Q1AgKz0gJyZuYW1lPScgKyBlbmNvZGVVUklDb21wb25lbnQobmFtZSk7CiAgICAgICAgX3JGRGtOV1M3eUtKNzR5Q1AgKz0gJyZob3N0PScgKyBlbmNvZGVVUklDb21wb25lbnQod2luZG93Ll9kc0hNeUZoeVhZdzhxaHhnLlJfUEFUSCk7CiAgICBpZiAodHlwZW9mIF93R3AycnRwampyeGpLTUJHICE9PSAndW5kZWZpbmVkJyAmJiBfd0dwMnJ0cGpqcnhqS01CRyAmJiB3aW5kb3cuX2RzSE15Rmh5WFl3OHFoeGcudW5pcXVlKSB7CiAgICAgICAgX3JGRGtOV1M3eUtKNzR5Q1AgKz0gJyZzdWJfaWQ9JyArIGVuY29kZVVSSUNvbXBvbmVudChfd0dwMnJ0cGpqcnhqS01CRyk7CiAgICB9CiAgICBpZiAodHlwZW9mIF94d0NqTDNxcVF6M0JnVEpOICE9PSAndW5kZWZpbmVkJyAmJiBfeHdDakwzcXFRejNCZ1RKTiAmJiB3aW5kb3cuX2RzSE15Rmh5WFl3OHFoeGcudW5pcXVlKSB7CiAgICAgICAgX3JGRGtOV1M3eUtKNzR5Q1AgKz0gJyZ0b2tlbj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF94d0NqTDNxcVF6M0JnVEpOKTsKICAgIH0KICAgIGlmICgnJyAhPT0gJycpIHsKICAgICAgICBfckZEa05XUzd5S0o3NHlDUCArPSAnJmJ5cGFzc19jYWNoZT0nOwogICAgfQogICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBhLnR5cGUgPSAnYXBwbGljYXRpb24vamF2YXNjcmlwdCc7CiAgICAgICAgYS5zcmMgPSB3aW5kb3cuX2RzSE15Rmh5WFl3OHFoeGcuUl9QQVRIICsgX3JGRGtOV1M3eUtKNzR5Q1A7CiAgICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsKICAgIHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSwgcykKICAgIH0pKCk7CiAgICA=">