Files
education/frontend/node_modules/.cache/babel-loader/8860354e64133ff792b8ac115ec01b53.json
T

1 line
16 KiB
JSON

{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\thread-loader\\dist\\cjs.js!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\quill\\themes\\base.js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\quill\\themes\\base.js","mtime":1787309793453},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\babel.config.js","mtime":1787567871334},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1787309791954},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF90eXBlb2YgZnJvbSAiQzovVXNlcnMvQWRtaW4vRGVza3RvcC9lZHVjYXRpb24vZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZi5qcyI7CmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAiQzovVXNlcnMvQWRtaW4vRGVza3RvcC9lZHVjYXRpb24vZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrLmpzIjsKaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tICJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MuanMiOwppbXBvcnQgX2NhbGxTdXBlciBmcm9tICJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2FsbFN1cGVyLmpzIjsKaW1wb3J0IF9zdXBlclByb3BHZXQgZnJvbSAiQzovVXNlcnMvQWRtaW4vRGVza3RvcC9lZHVjYXRpb24vZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3N1cGVyUHJvcEdldC5qcyI7CmltcG9ydCBfaW5oZXJpdHMgZnJvbSAiQzovVXNlcnMvQWRtaW4vRGVza3RvcC9lZHVjYXRpb24vZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZnJvbS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmpvaW4uanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5tYXRjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zcGxpdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zdGFydHMtd2l0aC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnOwppbXBvcnQgRW1pdHRlciBmcm9tICcuLi9jb3JlL2VtaXR0ZXIuanMnOwppbXBvcnQgVGhlbWUgZnJvbSAnLi4vY29yZS90aGVtZS5qcyc7CmltcG9ydCBDb2xvclBpY2tlciBmcm9tICcuLi91aS9jb2xvci1waWNrZXIuanMnOwppbXBvcnQgSWNvblBpY2tlciBmcm9tICcuLi91aS9pY29uLXBpY2tlci5qcyc7CmltcG9ydCBQaWNrZXIgZnJvbSAnLi4vdWkvcGlja2VyLmpzJzsKaW1wb3J0IFRvb2x0aXAgZnJvbSAnLi4vdWkvdG9vbHRpcC5qcyc7CnZhciBBTElHTlMgPSBbZmFsc2UsICdjZW50ZXInLCAncmlnaHQnLCAnanVzdGlmeSddOwp2YXIgQ09MT1JTID0gWycjMDAwMDAwJywgJyNlNjAwMDAnLCAnI2ZmOTkwMCcsICcjZmZmZjAwJywgJyMwMDhhMDAnLCAnIzAwNjZjYycsICcjOTkzM2ZmJywgJyNmZmZmZmYnLCAnI2ZhY2NjYycsICcjZmZlYmNjJywgJyNmZmZmY2MnLCAnI2NjZThjYycsICcjY2NlMGY1JywgJyNlYmQ2ZmYnLCAnI2JiYmJiYicsICcjZjA2NjY2JywgJyNmZmMyNjYnLCAnI2ZmZmY2NicsICcjNjZiOTY2JywgJyM2NmEzZTAnLCAnI2MyODVmZicsICcjODg4ODg4JywgJyNhMTAwMDAnLCAnI2IyNmIwMCcsICcjYjJiMjAwJywgJyMwMDYxMDAnLCAnIzAwNDdiMicsICcjNmIyNGIyJywgJyM0NDQ0NDQnLCAnIzVjMDAwMCcsICcjNjYzZDAwJywgJyM2NjY2MDAnLCAnIzAwMzcwMCcsICcjMDAyOTY2JywgJyMzZDE0NjYnXTsKdmFyIEZPTlRTID0gW2ZhbHNlLCAnc2VyaWYnLCAnbW9ub3NwYWNlJ107CnZhciBIRUFERVJTID0gWycxJywgJzInLCAnMycsIGZhbHNlXTsKdmFyIFNJWkVTID0gWydzbWFsbCcsIGZhbHNlLCAnbGFyZ2UnLCAnaHVnZSddOwp2YXIgQmFzZVRoZW1lID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfVGhlbWUpIHsKICBmdW5jdGlvbiBCYXNlVGhlbWUocXVpbGwsIG9wdGlvbnMpIHsKICAgIHZhciBfdGhpczsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBCYXNlVGhlbWUpOwogICAgX3RoaXMgPSBfY2FsbFN1cGVyKHRoaXMsIEJhc2VUaGVtZSwgW3F1aWxsLCBvcHRpb25zXSk7CiAgICB2YXIgX2xpc3RlbmVyID0gZnVuY3Rpb24gbGlzdGVuZXIoZSkgewogICAgICBpZiAoIWRvY3VtZW50LmJvZHkuY29udGFpbnMocXVpbGwucm9vdCkpIHsKICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgX2xpc3RlbmVyKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgaWYgKF90aGlzLnRvb2x0aXAgIT0gbnVsbCAmJgogICAgICAvLyBAdHMtZXhwZWN0LWVycm9yCiAgICAgICFfdGhpcy50b29sdGlwLnJvb3QuY29udGFpbnMoZS50YXJnZXQpICYmCiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IKICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gX3RoaXMudG9vbHRpcC50ZXh0Ym94ICYmICFfdGhpcy5xdWlsbC5oYXNGb2N1cygpKSB7CiAgICAgICAgX3RoaXMudG9vbHRpcC5oaWRlKCk7CiAgICAgIH0KICAgICAgaWYgKF90aGlzLnBpY2tlcnMgIT0gbnVsbCkgewogICAgICAgIF90aGlzLnBpY2tlcnMuZm9yRWFjaChmdW5jdGlvbiAocGlja2VyKSB7CiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yCiAgICAgICAgICBpZiAoIXBpY2tlci5jb250YWluZXIuY29udGFpbnMoZS50YXJnZXQpKSB7CiAgICAgICAgICAgIHBpY2tlci5jbG9zZSgpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9CiAgICB9OwogICAgcXVpbGwuZW1pdHRlci5saXN0ZW5ET00oJ2NsaWNrJywgZG9jdW1lbnQuYm9keSwgX2xpc3RlbmVyKTsKICAgIHJldHVybiBfdGhpczsKICB9CiAgX2luaGVyaXRzKEJhc2VUaGVtZSwgX1RoZW1lKTsKICByZXR1cm4gX2NyZWF0ZUNsYXNzKEJhc2VUaGVtZSwgW3sKICAgIGtleTogImFkZE1vZHVsZSIsCiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkTW9kdWxlKG5hbWUpIHsKICAgICAgdmFyIG1vZHVsZSA9IF9zdXBlclByb3BHZXQoQmFzZVRoZW1lLCAiYWRkTW9kdWxlIiwgdGhpcywgMykoW25hbWVdKTsKICAgICAgaWYgKG5hbWUgPT09ICd0b29sYmFyJykgewogICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IKICAgICAgICB0aGlzLmV4dGVuZFRvb2xiYXIobW9kdWxlKTsKICAgICAgfQogICAgICByZXR1cm4gbW9kdWxlOwogICAgfQogIH0sIHsKICAgIGtleTogImJ1aWxkQnV0dG9ucyIsCiAgICB2YWx1ZTogZnVuY3Rpb24gYnVpbGRCdXR0b25zKGJ1dHRvbnMsIGljb25zKSB7CiAgICAgIEFycmF5LmZyb20oYnV0dG9ucykuZm9yRWFjaChmdW5jdGlvbiAoYnV0dG9uKSB7CiAgICAgICAgdmFyIGNsYXNzTmFtZSA9IGJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgfHwgJyc7CiAgICAgICAgY2xhc3NOYW1lLnNwbGl0KC9ccysvKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7CiAgICAgICAgICBpZiAoIW5hbWUuc3RhcnRzV2l0aCgncWwtJykpIHJldHVybjsKICAgICAgICAgIG5hbWUgPSBuYW1lLnNsaWNlKCdxbC0nLmxlbmd0aCk7CiAgICAgICAgICBpZiAoaWNvbnNbbmFtZV0gPT0gbnVsbCkgcmV0dXJuOwogICAgICAgICAgaWYgKG5hbWUgPT09ICdkaXJlY3Rpb24nKSB7CiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IKICAgICAgICAgICAgYnV0dG9uLmlubmVySFRNTCA9IGljb25zW25hbWVdWycnXSArIGljb25zW25hbWVdLnJ0bDsKICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGljb25zW25hbWVdID09PSAnc3RyaW5nJykgewogICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yCiAgICAgICAgICAgIGJ1dHRvbi5pbm5lckhUTUwgPSBpY29uc1tuYW1lXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IKICAgICAgICAgICAgdmFyIHZhbHVlID0gYnV0dG9uLnZhbHVlIHx8ICcnOwogICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yCiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIGljb25zW25hbWVdW3ZhbHVlXSkgewogICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IKICAgICAgICAgICAgICBidXR0b24uaW5uZXJIVE1MID0gaWNvbnNbbmFtZV1bdmFsdWVdOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0sIHsKICAgIGtleTogImJ1aWxkUGlja2VycyIsCiAgICB2YWx1ZTogZnVuY3Rpb24gYnVpbGRQaWNrZXJzKHNlbGVjdHMsIGljb25zKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICB0aGlzLnBpY2tlcnMgPSBBcnJheS5mcm9tKHNlbGVjdHMpLm1hcChmdW5jdGlvbiAoc2VsZWN0KSB7CiAgICAgICAgaWYgKHNlbGVjdC5jbGFzc0xpc3QuY29udGFpbnMoJ3FsLWFsaWduJykpIHsKICAgICAgICAgIGlmIChzZWxlY3QucXVlcnlTZWxlY3Rvcignb3B0aW9uJykgPT0gbnVsbCkgewogICAgICAgICAgICBmaWxsU2VsZWN0KHNlbGVjdCwgQUxJR05TKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChfdHlwZW9mKGljb25zLmFsaWduKSA9PT0gJ29iamVjdCcpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBJY29uUGlja2VyKHNlbGVjdCwgaWNvbnMuYWxpZ24pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoc2VsZWN0LmNsYXNzTGlzdC5jb250YWlucygncWwtYmFja2dyb3VuZCcpIHx8IHNlbGVjdC5jbGFzc0xpc3QuY29udGFpbnMoJ3FsLWNvbG9yJykpIHsKICAgICAgICAgIHZhciBmb3JtYXQgPSBzZWxlY3QuY2xhc3NMaXN0LmNvbnRhaW5zKCdxbC1iYWNrZ3JvdW5kJykgPyAnYmFja2dyb3VuZCcgOiAnY29sb3InOwogICAgICAgICAgaWYgKHNlbGVjdC5xdWVyeVNlbGVjdG9yKCdvcHRpb24nKSA9PSBudWxsKSB7CiAgICAgICAgICAgIGZpbGxTZWxlY3Qoc2VsZWN0LCBDT0xPUlMsIGZvcm1hdCA9PT0gJ2JhY2tncm91bmQnID8gJyNmZmZmZmYnIDogJyMwMDAwMDAnKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBuZXcgQ29sb3JQaWNrZXIoc2VsZWN0LCBpY29uc1tmb3JtYXRdKTsKICAgICAgICB9CiAgICAgICAgaWYgKHNlbGVjdC5xdWVyeVNlbGVjdG9yKCdvcHRpb24nKSA9PSBudWxsKSB7CiAgICAgICAgICBpZiAoc2VsZWN0LmNsYXNzTGlzdC5jb250YWlucygncWwtZm9udCcpKSB7CiAgICAgICAgICAgIGZpbGxTZWxlY3Qoc2VsZWN0LCBGT05UUyk7CiAgICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdC5jbGFzc0xpc3QuY29udGFpbnMoJ3FsLWhlYWRlcicpKSB7CiAgICAgICAgICAgIGZpbGxTZWxlY3Qoc2VsZWN0LCBIRUFERVJTKTsKICAgICAgICAgIH0gZWxzZSBpZiAoc2VsZWN0LmNsYXNzTGlzdC5jb250YWlucygncWwtc2l6ZScpKSB7CiAgICAgICAgICAgIGZpbGxTZWxlY3Qoc2VsZWN0LCBTSVpFUyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgUGlja2VyKHNlbGVjdCk7CiAgICAgIH0pOwogICAgICB2YXIgdXBkYXRlID0gZnVuY3Rpb24gdXBkYXRlKCkgewogICAgICAgIF90aGlzMi5waWNrZXJzLmZvckVhY2goZnVuY3Rpb24gKHBpY2tlcikgewogICAgICAgICAgcGlja2VyLnVwZGF0ZSgpOwogICAgICAgIH0pOwogICAgICB9OwogICAgICB0aGlzLnF1aWxsLm9uKEVtaXR0ZXIuZXZlbnRzLkVESVRPUl9DSEFOR0UsIHVwZGF0ZSk7CiAgICB9CiAgfV0pOwp9KFRoZW1lKTsKQmFzZVRoZW1lLkRFRkFVTFRTID0gbWVyZ2Uoe30sIFRoZW1lLkRFRkFVTFRTLCB7CiAgbW9kdWxlczogewogICAgdG9vbGJhcjogewogICAgICBoYW5kbGVyczogewogICAgICAgIGZvcm11bGE6IGZ1bmN0aW9uIGZvcm11bGEoKSB7CiAgICAgICAgICB0aGlzLnF1aWxsLnRoZW1lLnRvb2x0aXAuZWRpdCgnZm9ybXVsYScpOwogICAgICAgIH0sCiAgICAgICAgaW1hZ2U6IGZ1bmN0aW9uIGltYWdlKCkgewogICAgICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgICAgICB2YXIgZmlsZUlucHV0ID0gdGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcignaW5wdXQucWwtaW1hZ2VbdHlwZT1maWxlXScpOwogICAgICAgICAgaWYgKGZpbGVJbnB1dCA9PSBudWxsKSB7CiAgICAgICAgICAgIGZpbGVJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICAgICAgICAgIGZpbGVJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnZmlsZScpOwogICAgICAgICAgICBmaWxlSW5wdXQuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCB0aGlzLnF1aWxsLnVwbG9hZGVyLm9wdGlvbnMubWltZXR5cGVzLmpvaW4oJywgJykpOwogICAgICAgICAgICBmaWxlSW5wdXQuY2xhc3NMaXN0LmFkZCgncWwtaW1hZ2UnKTsKICAgICAgICAgICAgZmlsZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB2YXIgcmFuZ2UgPSBfdGhpczMucXVpbGwuZ2V0U2VsZWN0aW9uKHRydWUpOwogICAgICAgICAgICAgIF90aGlzMy5xdWlsbC51cGxvYWRlci51cGxvYWQocmFuZ2UsIGZpbGVJbnB1dC5maWxlcyk7CiAgICAgICAgICAgICAgZmlsZUlucHV0LnZhbHVlID0gJyc7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChmaWxlSW5wdXQpOwogICAgICAgICAgfQogICAgICAgICAgZmlsZUlucHV0LmNsaWNrKCk7CiAgICAgICAgfSwKICAgICAgICB2aWRlbzogZnVuY3Rpb24gdmlkZW8oKSB7CiAgICAgICAgICB0aGlzLnF1aWxsLnRoZW1lLnRvb2x0aXAuZWRpdCgndmlkZW8nKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0pOwp2YXIgQmFzZVRvb2x0aXAgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Ub29sdGlwKSB7CiAgZnVuY3Rpb24gQmFzZVRvb2x0aXAocXVpbGwsIGJvdW5kc0NvbnRhaW5lcikgewogICAgdmFyIF90aGlzNDsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBCYXNlVG9vbHRpcCk7CiAgICBfdGhpczQgPSBfY2FsbFN1cGVyKHRoaXMsIEJhc2VUb29sdGlwLCBbcXVpbGwsIGJvdW5kc0NvbnRhaW5lcl0pOwogICAgX3RoaXM0LnRleHRib3ggPSBfdGhpczQucm9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPSJ0ZXh0Il0nKTsKICAgIF90aGlzNC5saXN0ZW4oKTsKICAgIHJldHVybiBfdGhpczQ7CiAgfQogIF9pbmhlcml0cyhCYXNlVG9vbHRpcCwgX1Rvb2x0aXApOwogIHJldHVybiBfY3JlYXRlQ2xhc3MoQmFzZVRvb2x0aXAsIFt7CiAgICBrZXk6ICJsaXN0ZW4iLAogICAgdmFsdWU6IGZ1bmN0aW9uIGxpc3RlbigpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgRml4IG1lIGxhdGVyCiAgICAgIHRoaXMudGV4dGJveC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykgewogICAgICAgICAgX3RoaXM1LnNhdmUoKTsKICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7CiAgICAgICAgICBfdGhpczUuY2FuY2VsKCk7CiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgfSwgewogICAga2V5OiAiY2FuY2VsIiwKICAgIHZhbHVlOiBmdW5jdGlvbiBjYW5jZWwoKSB7CiAgICAgIHRoaXMuaGlkZSgpOwogICAgICB0aGlzLnJlc3RvcmVGb2N1cygpOwogICAgfQogIH0sIHsKICAgIGtleTogImVkaXQiLAogICAgdmFsdWU6IGZ1bmN0aW9uIGVkaXQoKSB7CiAgICAgIHZhciBtb2RlID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAnbGluayc7CiAgICAgIHZhciBwcmV2aWV3ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBudWxsOwogICAgICB0aGlzLnJvb3QuY2xhc3NMaXN0LnJlbW92ZSgncWwtaGlkZGVuJyk7CiAgICAgIHRoaXMucm9vdC5jbGFzc0xpc3QuYWRkKCdxbC1lZGl0aW5nJyk7CiAgICAgIGlmICh0aGlzLnRleHRib3ggPT0gbnVsbCkgcmV0dXJuOwogICAgICBpZiAocHJldmlldyAhPSBudWxsKSB7CiAgICAgICAgdGhpcy50ZXh0Ym94LnZhbHVlID0gcHJldmlldzsKICAgICAgfSBlbHNlIGlmIChtb2RlICE9PSB0aGlzLnJvb3QuZ2V0QXR0cmlidXRlKCdkYXRhLW1vZGUnKSkgewogICAgICAgIHRoaXMudGV4dGJveC52YWx1ZSA9ICcnOwogICAgICB9CiAgICAgIHZhciBib3VuZHMgPSB0aGlzLnF1aWxsLmdldEJvdW5kcyh0aGlzLnF1aWxsLnNlbGVjdGlvbi5zYXZlZFJhbmdlKTsKICAgICAgaWYgKGJvdW5kcyAhPSBudWxsKSB7CiAgICAgICAgdGhpcy5wb3NpdGlvbihib3VuZHMpOwogICAgICB9CiAgICAgIHRoaXMudGV4dGJveC5zZWxlY3QoKTsKICAgICAgdGhpcy50ZXh0Ym94LnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB0aGlzLnRleHRib3guZ2V0QXR0cmlidXRlKCJkYXRhLSIuY29uY2F0KG1vZGUpKSB8fCAnJyk7CiAgICAgIHRoaXMucm9vdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbW9kZScsIG1vZGUpOwogICAgfQogIH0sIHsKICAgIGtleTogInJlc3RvcmVGb2N1cyIsCiAgICB2YWx1ZTogZnVuY3Rpb24gcmVzdG9yZUZvY3VzKCkgewogICAgICB0aGlzLnF1aWxsLmZvY3VzKHsKICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlCiAgICAgIH0pOwogICAgfQogIH0sIHsKICAgIGtleTogInNhdmUiLAogICAgdmFsdWU6IGZ1bmN0aW9uIHNhdmUoKSB7CiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgRml4IG1lIGxhdGVyCiAgICAgIHZhciB2YWx1ZSA9IHRoaXMudGV4dGJveC52YWx1ZTsKICAgICAgc3dpdGNoICh0aGlzLnJvb3QuZ2V0QXR0cmlidXRlKCdkYXRhLW1vZGUnKSkgewogICAgICAgIGNhc2UgJ2xpbmsnOgogICAgICAgICAgewogICAgICAgICAgICB2YXIgc2Nyb2xsVG9wID0gdGhpcy5xdWlsbC5yb290LnNjcm9sbFRvcDsKICAgICAgICAgICAgaWYgKHRoaXMubGlua1JhbmdlKSB7CiAgICAgICAgICAgICAgdGhpcy5xdWlsbC5mb3JtYXRUZXh0KHRoaXMubGlua1JhbmdlLCAnbGluaycsIHZhbHVlLCBFbWl0dGVyLnNvdXJjZXMuVVNFUik7CiAgICAgICAgICAgICAgZGVsZXRlIHRoaXMubGlua1JhbmdlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7CiAgICAgICAgICAgICAgdGhpcy5xdWlsbC5mb3JtYXQoJ2xpbmsnLCB2YWx1ZSwgRW1pdHRlci5zb3VyY2VzLlVTRVIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMucXVpbGwucm9vdC5zY3JvbGxUb3AgPSBzY3JvbGxUb3A7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIGNhc2UgJ3ZpZGVvJzoKICAgICAgICAgIHsKICAgICAgICAgICAgdmFsdWUgPSBleHRyYWN0VmlkZW9VcmwodmFsdWUpOwogICAgICAgICAgfQogICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaAogICAgICAgIGNhc2UgJ2Zvcm11bGEnOgogICAgICAgICAgewogICAgICAgICAgICBpZiAoIXZhbHVlKSBicmVhazsKICAgICAgICAgICAgdmFyIHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24odHJ1ZSk7CiAgICAgICAgICAgIGlmIChyYW5nZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgdmFyIGluZGV4ID0gcmFuZ2UuaW5kZXggKyByYW5nZS5sZW5ndGg7CiAgICAgICAgICAgICAgdGhpcy5xdWlsbC5pbnNlcnRFbWJlZChpbmRleCwKICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEZpeCBtZSBsYXRlcgogICAgICAgICAgICAgIHRoaXMucm9vdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbW9kZScpLCB2YWx1ZSwgRW1pdHRlci5zb3VyY2VzLlVTRVIpOwogICAgICAgICAgICAgIGlmICh0aGlzLnJvb3QuZ2V0QXR0cmlidXRlKCdkYXRhLW1vZGUnKSA9PT0gJ2Zvcm11bGEnKSB7CiAgICAgICAgICAgICAgICB0aGlzLnF1aWxsLmluc2VydFRleHQoaW5kZXggKyAxLCAnICcsIEVtaXR0ZXIuc291cmNlcy5VU0VSKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpcy5xdWlsbC5zZXRTZWxlY3Rpb24oaW5kZXggKyAyLCBFbWl0dGVyLnNvdXJjZXMuVVNFUik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgZGVmYXVsdDoKICAgICAgfQogICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEZpeCBtZSBsYXRlcgogICAgICB0aGlzLnRleHRib3gudmFsdWUgPSAnJzsKICAgICAgdGhpcy5oaWRlKCk7CiAgICB9CiAgfV0pOwp9KFRvb2x0aXApOwpmdW5jdGlvbiBleHRyYWN0VmlkZW9VcmwodXJsKSB7CiAgdmFyIG1hdGNoID0gdXJsLm1hdGNoKC9eKD86KGh0dHBzPyk6XC9cLyk/KD86KD86d3d3fG0pXC4pP3lvdXR1YmVcLmNvbVwvd2F0Y2guKnY9KFthLXpBLVowLTlfLV0rKS8pIHx8IHVybC5tYXRjaCgvXig/OihodHRwcz8pOlwvXC8pPyg/Oig/Ond3d3xtKVwuKT95b3V0dVwuYmVcLyhbYS16QS1aMC05Xy1dKykvKTsKICBpZiAobWF0Y2gpIHsKICAgIHJldHVybiAiIi5jb25jYXQobWF0Y2hbMV0gfHwgJ2h0dHBzJywgIjovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8iKS5jb25jYXQobWF0Y2hbMl0sICI/c2hvd2luZm89MCIpOwogIH0KICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uZC1hc3NpZ24KICBpZiAobWF0Y2ggPSB1cmwubWF0Y2goL14oPzooaHR0cHM/KTpcL1wvKT8oPzp3d3dcLik/dmltZW9cLmNvbVwvKFxkKykvKSkgewogICAgcmV0dXJuICIiLmNvbmNhdChtYXRjaFsxXSB8fCAnaHR0cHMnLCAiOi8vcGxheWVyLnZpbWVvLmNvbS92aWRlby8iKS5jb25jYXQobWF0Y2hbMl0sICIvIik7CiAgfQogIHJldHVybiB1cmw7Cn0KZnVuY3Rpb24gZmlsbFNlbGVjdChzZWxlY3QsIHZhbHVlcykgewogIHZhciBkZWZhdWx0VmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IGZhbHNlOwogIHZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkgewogICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgaWYgKHZhbHVlID09PSBkZWZhdWx0VmFsdWUpIHsKICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCAnc2VsZWN0ZWQnKTsKICAgIH0gZWxzZSB7CiAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgU3RyaW5nKHZhbHVlKSk7CiAgICB9CiAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICB9KTsKfQpleHBvcnQgeyBCYXNlVG9vbHRpcCwgQmFzZVRoZW1lIGFzIGRlZmF1bHQgfTs="},null]}