Files
education/frontend/node_modules/.cache/babel-loader/0f094101beae9ba3c333b21b461b7184.json
T

1 line
27 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\\src\\utils\\generator\\html.js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\utils\\generator\\html.js","mtime":1787567871584},{"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:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmZvci1lYWNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5zb21lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7CmltcG9ydCB7IHRyaWdnZXIgfSBmcm9tICcuL2NvbmZpZyc7CnZhciBjb25mR2xvYmFsOwp2YXIgc29tZVNwYW5Jc05vdDI0OwpleHBvcnQgZnVuY3Rpb24gZGlhbG9nV3JhcHBlcihzdHIpIHsKICByZXR1cm4gIjxlbC1kaWFsb2cgdi1iaW5kPVwiJGF0dHJzXCIgdi1vbj1cIiRsaXN0ZW5lcnNcIiBAb3Blbj1cIm9uT3BlblwiIEBjbG9zZT1cIm9uQ2xvc2VcIiB0aXRsZT1cIkRpYWxvZyBUaXRsZVwiPlxuICAgICIuY29uY2F0KHN0ciwgIlxuICAgIDxkaXYgc2xvdD1cImZvb3RlclwiPlxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJjbG9zZVwiPlx1NTNENlx1NkQ4ODwvZWwtYnV0dG9uPlxuICAgICAgPGVsLWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIEBjbGljaz1cImhhbmRsZUNvbmZpcm1cIj5cdTc4NkVcdTVCOUE8L2VsLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9lbC1kaWFsb2c+Iik7Cn0KZXhwb3J0IGZ1bmN0aW9uIHZ1ZVRlbXBsYXRlKHN0cikgewogIHJldHVybiAiPHRlbXBsYXRlPlxuICAgIDxkaXY+XG4gICAgICAiLmNvbmNhdChzdHIsICJcbiAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT4iKTsKfQpleHBvcnQgZnVuY3Rpb24gdnVlU2NyaXB0KHN0cikgewogIHJldHVybiAiPHNjcmlwdD5cbiAgICAiLmNvbmNhdChzdHIsICJcbiAgPC9zY3JpcHQ+Iik7Cn0KZXhwb3J0IGZ1bmN0aW9uIGNzc1N0eWxlKGNzc1N0cikgewogIHJldHVybiAiPHN0eWxlPlxuICAgICIuY29uY2F0KGNzc1N0ciwgIlxuICA8L3N0eWxlPiIpOwp9CmZ1bmN0aW9uIGJ1aWxkRm9ybVRlbXBsYXRlKGNvbmYsIGNoaWxkLCB0eXBlKSB7CiAgdmFyIGxhYmVsUG9zaXRpb24gPSAnJzsKICBpZiAoY29uZi5sYWJlbFBvc2l0aW9uICE9PSAncmlnaHQnKSB7CiAgICBsYWJlbFBvc2l0aW9uID0gImxhYmVsLXBvc2l0aW9uPVwiIi5jb25jYXQoY29uZi5sYWJlbFBvc2l0aW9uLCAiXCIiKTsKICB9CiAgdmFyIGRpc2FibGVkID0gY29uZi5kaXNhYmxlZCA/ICI6ZGlzYWJsZWQ9XCIiLmNvbmNhdChjb25mLmRpc2FibGVkLCAiXCIiKSA6ICcnOwogIHZhciBzdHIgPSAiPGVsLWZvcm0gcmVmPVwiIi5jb25jYXQoY29uZi5mb3JtUmVmLCAiXCIgOm1vZGVsPVwiIikuY29uY2F0KGNvbmYuZm9ybU1vZGVsLCAiXCIgOnJ1bGVzPVwiIikuY29uY2F0KGNvbmYuZm9ybVJ1bGVzLCAiXCIgc2l6ZT1cIiIpLmNvbmNhdChjb25mLnNpemUsICJcIiAiKS5jb25jYXQoZGlzYWJsZWQsICIgbGFiZWwtd2lkdGg9XCIiKS5jb25jYXQoY29uZi5sYWJlbFdpZHRoLCAicHhcIiAiKS5jb25jYXQobGFiZWxQb3NpdGlvbiwgIj5cbiAgICAgICIpLmNvbmNhdChjaGlsZCwgIlxuICAgICAgIikuY29uY2F0KGJ1aWxkRnJvbUJ0bnMoY29uZiwgdHlwZSksICJcbiAgICA8L2VsLWZvcm0+Iik7CiAgaWYgKHNvbWVTcGFuSXNOb3QyNCkgewogICAgc3RyID0gIjxlbC1yb3cgOmd1dHRlcj1cIiIuY29uY2F0KGNvbmYuZ3V0dGVyLCAiXCI+XG4gICAgICAgICIpLmNvbmNhdChzdHIsICJcbiAgICAgIDwvZWwtcm93PiIpOwogIH0KICByZXR1cm4gc3RyOwp9CmZ1bmN0aW9uIGJ1aWxkRnJvbUJ0bnMoY29uZiwgdHlwZSkgewogIHZhciBzdHIgPSAnJzsKICBpZiAoY29uZi5mb3JtQnRucyAmJiB0eXBlID09PSAnZmlsZScpIHsKICAgIHN0ciA9ICI8ZWwtZm9ybS1pdGVtIHNpemU9XCJsYXJnZVwiPlxuICAgICAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJzdWJtaXRGb3JtXCI+XHU2M0QwXHU0RUE0PC9lbC1idXR0b24+XG4gICAgICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJyZXNldEZvcm1cIj5cdTkxQ0RcdTdGNkU8L2VsLWJ1dHRvbj5cbiAgICAgICAgPC9lbC1mb3JtLWl0ZW0+IjsKICAgIGlmIChzb21lU3BhbklzTm90MjQpIHsKICAgICAgc3RyID0gIjxlbC1jb2wgOnNwYW49XCIyNFwiPlxuICAgICAgICAgICIuY29uY2F0KHN0ciwgIlxuICAgICAgICA8L2VsLWNvbD4iKTsKICAgIH0KICB9CiAgcmV0dXJuIHN0cjsKfQoKLy8gc3BhbuS4jeS4ujI055qE55SoZWwtY29s5YyF6KO5CmZ1bmN0aW9uIGNvbFdyYXBwZXIoZWxlbWVudCwgc3RyKSB7CiAgaWYgKHNvbWVTcGFuSXNOb3QyNCB8fCBlbGVtZW50LnNwYW4gIT09IDI0KSB7CiAgICByZXR1cm4gIjxlbC1jb2wgOnNwYW49XCIiLmNvbmNhdChlbGVtZW50LnNwYW4sICJcIj5cbiAgICAgICIpLmNvbmNhdChzdHIsICJcbiAgICA8L2VsLWNvbD4iKTsKICB9CiAgcmV0dXJuIHN0cjsKfQp2YXIgbGF5b3V0cyA9IHsKICBjb2xGb3JtSXRlbTogZnVuY3Rpb24gY29sRm9ybUl0ZW0oZWxlbWVudCkgewogICAgdmFyIGxhYmVsV2lkdGggPSAnJzsKICAgIGlmIChlbGVtZW50LmxhYmVsV2lkdGggJiYgZWxlbWVudC5sYWJlbFdpZHRoICE9PSBjb25mR2xvYmFsLmxhYmVsV2lkdGgpIHsKICAgICAgbGFiZWxXaWR0aCA9ICJsYWJlbC13aWR0aD1cIiIuY29uY2F0KGVsZW1lbnQubGFiZWxXaWR0aCwgInB4XCIiKTsKICAgIH0KICAgIHZhciByZXF1aXJlZCA9ICF0cmlnZ2VyW2VsZW1lbnQudGFnXSAmJiBlbGVtZW50LnJlcXVpcmVkID8gJ3JlcXVpcmVkJyA6ICcnOwogICAgdmFyIHRhZ0RvbSA9IHRhZ3NbZWxlbWVudC50YWddID8gdGFnc1tlbGVtZW50LnRhZ10oZWxlbWVudCkgOiBudWxsOwogICAgdmFyIHN0ciA9ICI8ZWwtZm9ybS1pdGVtICIuY29uY2F0KGxhYmVsV2lkdGgsICIgbGFiZWw9XCIiKS5jb25jYXQoZWxlbWVudC5sYWJlbCwgIlwiIHByb3A9XCIiKS5jb25jYXQoZWxlbWVudC52TW9kZWwsICJcIiAiKS5jb25jYXQocmVxdWlyZWQsICI+XG4gICAgICAgICIpLmNvbmNhdCh0YWdEb20sICJcbiAgICAgIDwvZWwtZm9ybS1pdGVtPiIpOwogICAgc3RyID0gY29sV3JhcHBlcihlbGVtZW50LCBzdHIpOwogICAgcmV0dXJuIHN0cjsKICB9LAogIHJvd0Zvcm1JdGVtOiBmdW5jdGlvbiByb3dGb3JtSXRlbShlbGVtZW50KSB7CiAgICB2YXIgdHlwZSA9IGVsZW1lbnQudHlwZSA9PT0gJ2RlZmF1bHQnID8gJycgOiAidHlwZT1cIiIuY29uY2F0KGVsZW1lbnQudHlwZSwgIlwiIik7CiAgICB2YXIganVzdGlmeSA9IGVsZW1lbnQudHlwZSA9PT0gJ2RlZmF1bHQnID8gJycgOiAianVzdGlmeT1cIiIuY29uY2F0KGVsZW1lbnQuanVzdGlmeSwgIlwiIik7CiAgICB2YXIgYWxpZ24gPSBlbGVtZW50LnR5cGUgPT09ICdkZWZhdWx0JyA/ICcnIDogImFsaWduPVwiIi5jb25jYXQoZWxlbWVudC5hbGlnbiwgIlwiIik7CiAgICB2YXIgZ3V0dGVyID0gZWxlbWVudC5ndXR0ZXIgPyAiZ3V0dGVyPVwiIi5jb25jYXQoZWxlbWVudC5ndXR0ZXIsICJcIiIpIDogJyc7CiAgICB2YXIgY2hpbGRyZW4gPSBlbGVtZW50LmNoaWxkcmVuLm1hcChmdW5jdGlvbiAoZWwpIHsKICAgICAgcmV0dXJuIGxheW91dHNbZWwubGF5b3V0XShlbCk7CiAgICB9KTsKICAgIHZhciBzdHIgPSAiPGVsLXJvdyAiLmNvbmNhdCh0eXBlLCAiICIpLmNvbmNhdChqdXN0aWZ5LCAiICIpLmNvbmNhdChhbGlnbiwgIiAiKS5jb25jYXQoZ3V0dGVyLCAiPlxuICAgICAgIikuY29uY2F0KGNoaWxkcmVuLmpvaW4oJ1xuJyksICJcbiAgICA8L2VsLXJvdz4iKTsKICAgIHN0ciA9IGNvbFdyYXBwZXIoZWxlbWVudCwgc3RyKTsKICAgIHJldHVybiBzdHI7CiAgfQp9Owp2YXIgdGFncyA9IHsKICAnZWwtYnV0dG9uJzogZnVuY3Rpb24gZWxCdXR0b24oZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXIgPSBhdHRyQnVpbGRlcihlbCksCiAgICAgIHRhZyA9IF9hdHRyQnVpbGRlci50YWcsCiAgICAgIGRpc2FibGVkID0gX2F0dHJCdWlsZGVyLmRpc2FibGVkOwogICAgdmFyIHR5cGUgPSBlbC50eXBlID8gInR5cGU9XCIiLmNvbmNhdChlbC50eXBlLCAiXCIiKSA6ICcnOwogICAgdmFyIGljb24gPSBlbC5pY29uID8gImljb249XCIiLmNvbmNhdChlbC5pY29uLCAiXCIiKSA6ICcnOwogICAgdmFyIHNpemUgPSBlbC5zaXplID8gInNpemU9XCIiLmNvbmNhdChlbC5zaXplLCAiXCIiKSA6ICcnOwogICAgdmFyIGNoaWxkID0gYnVpbGRFbEJ1dHRvbkNoaWxkKGVsKTsKICAgIGlmIChjaGlsZCkgY2hpbGQgPSAiXG4iLmNvbmNhdChjaGlsZCwgIlxuIik7IC8vIOaNouihjAogICAgcmV0dXJuICI8Ii5jb25jYXQoZWwudGFnLCAiICIpLmNvbmNhdCh0eXBlLCAiICIpLmNvbmNhdChpY29uLCAiICIpLmNvbmNhdChzaXplLCAiICIpLmNvbmNhdChkaXNhYmxlZCwgIj4iKS5jb25jYXQoY2hpbGQsICI8LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtaW5wdXQnOiBmdW5jdGlvbiBlbElucHV0KGVsKSB7CiAgICB2YXIgX2F0dHJCdWlsZGVyMiA9IGF0dHJCdWlsZGVyKGVsKSwKICAgICAgZGlzYWJsZWQgPSBfYXR0ckJ1aWxkZXIyLmRpc2FibGVkLAogICAgICB2TW9kZWwgPSBfYXR0ckJ1aWxkZXIyLnZNb2RlbCwKICAgICAgY2xlYXJhYmxlID0gX2F0dHJCdWlsZGVyMi5jbGVhcmFibGUsCiAgICAgIHBsYWNlaG9sZGVyID0gX2F0dHJCdWlsZGVyMi5wbGFjZWhvbGRlciwKICAgICAgd2lkdGggPSBfYXR0ckJ1aWxkZXIyLndpZHRoOwogICAgdmFyIG1heGxlbmd0aCA9IGVsLm1heGxlbmd0aCA/ICI6bWF4bGVuZ3RoPVwiIi5jb25jYXQoZWwubWF4bGVuZ3RoLCAiXCIiKSA6ICcnOwogICAgdmFyIHNob3dXb3JkTGltaXQgPSBlbFsnc2hvdy13b3JkLWxpbWl0J10gPyAnc2hvdy13b3JkLWxpbWl0JyA6ICcnOwogICAgdmFyIHJlYWRvbmx5ID0gZWwucmVhZG9ubHkgPyAncmVhZG9ubHknIDogJyc7CiAgICB2YXIgcHJlZml4SWNvbiA9IGVsWydwcmVmaXgtaWNvbiddID8gInByZWZpeC1pY29uPSciLmNvbmNhdChlbFsncHJlZml4LWljb24nXSwgIiciKSA6ICcnOwogICAgdmFyIHN1ZmZpeEljb24gPSBlbFsnc3VmZml4LWljb24nXSA/ICJzdWZmaXgtaWNvbj0nIi5jb25jYXQoZWxbJ3N1ZmZpeC1pY29uJ10sICInIikgOiAnJzsKICAgIHZhciBzaG93UGFzc3dvcmQgPSBlbFsnc2hvdy1wYXNzd29yZCddID8gJ3Nob3ctcGFzc3dvcmQnIDogJyc7CiAgICB2YXIgdHlwZSA9IGVsLnR5cGUgPyAidHlwZT1cIiIuY29uY2F0KGVsLnR5cGUsICJcIiIpIDogJyc7CiAgICB2YXIgYXV0b3NpemUgPSBlbC5hdXRvc2l6ZSAmJiBlbC5hdXRvc2l6ZS5taW5Sb3dzID8gIjphdXRvc2l6ZT1cInttaW5Sb3dzOiAiLmNvbmNhdChlbC5hdXRvc2l6ZS5taW5Sb3dzLCAiLCBtYXhSb3dzOiAiKS5jb25jYXQoZWwuYXV0b3NpemUubWF4Um93cywgIn1cIiIpIDogJyc7CiAgICB2YXIgY2hpbGQgPSBidWlsZEVsSW5wdXRDaGlsZChlbCk7CiAgICBpZiAoY2hpbGQpIGNoaWxkID0gIlxuIi5jb25jYXQoY2hpbGQsICJcbiIpOyAvLyDmjaLooYwKICAgIHJldHVybiAiPCIuY29uY2F0KGVsLnRhZywgIiAiKS5jb25jYXQodk1vZGVsLCAiICIpLmNvbmNhdCh0eXBlLCAiICIpLmNvbmNhdChwbGFjZWhvbGRlciwgIiAiKS5jb25jYXQobWF4bGVuZ3RoLCAiICIpLmNvbmNhdChzaG93V29yZExpbWl0LCAiICIpLmNvbmNhdChyZWFkb25seSwgIiAiKS5jb25jYXQoZGlzYWJsZWQsICIgIikuY29uY2F0KGNsZWFyYWJsZSwgIiAiKS5jb25jYXQocHJlZml4SWNvbiwgIiAiKS5jb25jYXQoc3VmZml4SWNvbiwgIiAiKS5jb25jYXQoc2hvd1Bhc3N3b3JkLCAiICIpLmNvbmNhdChhdXRvc2l6ZSwgIiAiKS5jb25jYXQod2lkdGgsICI+IikuY29uY2F0KGNoaWxkLCAiPC8iKS5jb25jYXQoZWwudGFnLCAiPiIpOwogIH0sCiAgJ2VsLWlucHV0LW51bWJlcic6IGZ1bmN0aW9uIGVsSW5wdXROdW1iZXIoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXIzID0gYXR0ckJ1aWxkZXIoZWwpLAogICAgICBkaXNhYmxlZCA9IF9hdHRyQnVpbGRlcjMuZGlzYWJsZWQsCiAgICAgIHZNb2RlbCA9IF9hdHRyQnVpbGRlcjMudk1vZGVsLAogICAgICBwbGFjZWhvbGRlciA9IF9hdHRyQnVpbGRlcjMucGxhY2Vob2xkZXI7CiAgICB2YXIgY29udHJvbHNQb3NpdGlvbiA9IGVsWydjb250cm9scy1wb3NpdGlvbiddID8gImNvbnRyb2xzLXBvc2l0aW9uPSIuY29uY2F0KGVsWydjb250cm9scy1wb3NpdGlvbiddKSA6ICcnOwogICAgdmFyIG1pbiA9IGVsLm1pbiA/ICI6bWluPSciLmNvbmNhdChlbC5taW4sICInIikgOiAnJzsKICAgIHZhciBtYXggPSBlbC5tYXggPyAiOm1heD0nIi5jb25jYXQoZWwubWF4LCAiJyIpIDogJyc7CiAgICB2YXIgc3RlcCA9IGVsLnN0ZXAgPyAiOnN0ZXA9JyIuY29uY2F0KGVsLnN0ZXAsICInIikgOiAnJzsKICAgIHZhciBzdGVwU3RyaWN0bHkgPSBlbFsnc3RlcC1zdHJpY3RseSddID8gJ3N0ZXAtc3RyaWN0bHknIDogJyc7CiAgICB2YXIgcHJlY2lzaW9uID0gZWwucHJlY2lzaW9uID8gIjpwcmVjaXNpb249JyIuY29uY2F0KGVsLnByZWNpc2lvbiwgIiciKSA6ICcnOwogICAgcmV0dXJuICI8Ii5jb25jYXQoZWwudGFnLCAiICIpLmNvbmNhdCh2TW9kZWwsICIgIikuY29uY2F0KHBsYWNlaG9sZGVyLCAiICIpLmNvbmNhdChzdGVwLCAiICIpLmNvbmNhdChzdGVwU3RyaWN0bHksICIgIikuY29uY2F0KHByZWNpc2lvbiwgIiAiKS5jb25jYXQoY29udHJvbHNQb3NpdGlvbiwgIiAiKS5jb25jYXQobWluLCAiICIpLmNvbmNhdChtYXgsICIgIikuY29uY2F0KGRpc2FibGVkLCAiPjwvIikuY29uY2F0KGVsLnRhZywgIj4iKTsKICB9LAogICdlbC1zZWxlY3QnOiBmdW5jdGlvbiBlbFNlbGVjdChlbCkgewogICAgdmFyIF9hdHRyQnVpbGRlcjQgPSBhdHRyQnVpbGRlcihlbCksCiAgICAgIGRpc2FibGVkID0gX2F0dHJCdWlsZGVyNC5kaXNhYmxlZCwKICAgICAgdk1vZGVsID0gX2F0dHJCdWlsZGVyNC52TW9kZWwsCiAgICAgIGNsZWFyYWJsZSA9IF9hdHRyQnVpbGRlcjQuY2xlYXJhYmxlLAogICAgICBwbGFjZWhvbGRlciA9IF9hdHRyQnVpbGRlcjQucGxhY2Vob2xkZXIsCiAgICAgIHdpZHRoID0gX2F0dHJCdWlsZGVyNC53aWR0aDsKICAgIHZhciBmaWx0ZXJhYmxlID0gZWwuZmlsdGVyYWJsZSA/ICdmaWx0ZXJhYmxlJyA6ICcnOwogICAgdmFyIG11bHRpcGxlID0gZWwubXVsdGlwbGUgPyAnbXVsdGlwbGUnIDogJyc7CiAgICB2YXIgY2hpbGQgPSBidWlsZEVsU2VsZWN0Q2hpbGQoZWwpOwogICAgaWYgKGNoaWxkKSBjaGlsZCA9ICJcbiIuY29uY2F0KGNoaWxkLCAiXG4iKTsgLy8g5o2i6KGMCiAgICByZXR1cm4gIjwiLmNvbmNhdChlbC50YWcsICIgIikuY29uY2F0KHZNb2RlbCwgIiAiKS5jb25jYXQocGxhY2Vob2xkZXIsICIgIikuY29uY2F0KGRpc2FibGVkLCAiICIpLmNvbmNhdChtdWx0aXBsZSwgIiAiKS5jb25jYXQoZmlsdGVyYWJsZSwgIiAiKS5jb25jYXQoY2xlYXJhYmxlLCAiICIpLmNvbmNhdCh3aWR0aCwgIj4iKS5jb25jYXQoY2hpbGQsICI8LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtcmFkaW8tZ3JvdXAnOiBmdW5jdGlvbiBlbFJhZGlvR3JvdXAoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXI1ID0gYXR0ckJ1aWxkZXIoZWwpLAogICAgICBkaXNhYmxlZCA9IF9hdHRyQnVpbGRlcjUuZGlzYWJsZWQsCiAgICAgIHZNb2RlbCA9IF9hdHRyQnVpbGRlcjUudk1vZGVsOwogICAgdmFyIHNpemUgPSAic2l6ZT1cIiIuY29uY2F0KGVsLnNpemUsICJcIiIpOwogICAgdmFyIGNoaWxkID0gYnVpbGRFbFJhZGlvR3JvdXBDaGlsZChlbCk7CiAgICBpZiAoY2hpbGQpIGNoaWxkID0gIlxuIi5jb25jYXQoY2hpbGQsICJcbiIpOyAvLyDmjaLooYwKICAgIHJldHVybiAiPCIuY29uY2F0KGVsLnRhZywgIiAiKS5jb25jYXQodk1vZGVsLCAiICIpLmNvbmNhdChzaXplLCAiICIpLmNvbmNhdChkaXNhYmxlZCwgIj4iKS5jb25jYXQoY2hpbGQsICI8LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtY2hlY2tib3gtZ3JvdXAnOiBmdW5jdGlvbiBlbENoZWNrYm94R3JvdXAoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXI2ID0gYXR0ckJ1aWxkZXIoZWwpLAogICAgICBkaXNhYmxlZCA9IF9hdHRyQnVpbGRlcjYuZGlzYWJsZWQsCiAgICAgIHZNb2RlbCA9IF9hdHRyQnVpbGRlcjYudk1vZGVsOwogICAgdmFyIHNpemUgPSAic2l6ZT1cIiIuY29uY2F0KGVsLnNpemUsICJcIiIpOwogICAgdmFyIG1pbiA9IGVsLm1pbiA/ICI6bWluPVwiIi5jb25jYXQoZWwubWluLCAiXCIiKSA6ICcnOwogICAgdmFyIG1heCA9IGVsLm1heCA/ICI6bWF4PVwiIi5jb25jYXQoZWwubWF4LCAiXCIiKSA6ICcnOwogICAgdmFyIGNoaWxkID0gYnVpbGRFbENoZWNrYm94R3JvdXBDaGlsZChlbCk7CiAgICBpZiAoY2hpbGQpIGNoaWxkID0gIlxuIi5jb25jYXQoY2hpbGQsICJcbiIpOyAvLyDmjaLooYwKICAgIHJldHVybiAiPCIuY29uY2F0KGVsLnRhZywgIiAiKS5jb25jYXQodk1vZGVsLCAiICIpLmNvbmNhdChtaW4sICIgIikuY29uY2F0KG1heCwgIiAiKS5jb25jYXQoc2l6ZSwgIiAiKS5jb25jYXQoZGlzYWJsZWQsICI+IikuY29uY2F0KGNoaWxkLCAiPC8iKS5jb25jYXQoZWwudGFnLCAiPiIpOwogIH0sCiAgJ2VsLXN3aXRjaCc6IGZ1bmN0aW9uIGVsU3dpdGNoKGVsKSB7CiAgICB2YXIgX2F0dHJCdWlsZGVyNyA9IGF0dHJCdWlsZGVyKGVsKSwKICAgICAgZGlzYWJsZWQgPSBfYXR0ckJ1aWxkZXI3LmRpc2FibGVkLAogICAgICB2TW9kZWwgPSBfYXR0ckJ1aWxkZXI3LnZNb2RlbDsKICAgIHZhciBhY3RpdmVUZXh0ID0gZWxbJ2FjdGl2ZS10ZXh0J10gPyAiYWN0aXZlLXRleHQ9XCIiLmNvbmNhdChlbFsnYWN0aXZlLXRleHQnXSwgIlwiIikgOiAnJzsKICAgIHZhciBpbmFjdGl2ZVRleHQgPSBlbFsnaW5hY3RpdmUtdGV4dCddID8gImluYWN0aXZlLXRleHQ9XCIiLmNvbmNhdChlbFsnaW5hY3RpdmUtdGV4dCddLCAiXCIiKSA6ICcnOwogICAgdmFyIGFjdGl2ZUNvbG9yID0gZWxbJ2FjdGl2ZS1jb2xvciddID8gImFjdGl2ZS1jb2xvcj1cIiIuY29uY2F0KGVsWydhY3RpdmUtY29sb3InXSwgIlwiIikgOiAnJzsKICAgIHZhciBpbmFjdGl2ZUNvbG9yID0gZWxbJ2luYWN0aXZlLWNvbG9yJ10gPyAiaW5hY3RpdmUtY29sb3I9XCIiLmNvbmNhdChlbFsnaW5hY3RpdmUtY29sb3InXSwgIlwiIikgOiAnJzsKICAgIHZhciBhY3RpdmVWYWx1ZSA9IGVsWydhY3RpdmUtdmFsdWUnXSAhPT0gdHJ1ZSA/ICI6YWN0aXZlLXZhbHVlPSciLmNvbmNhdChKU09OLnN0cmluZ2lmeShlbFsnYWN0aXZlLXZhbHVlJ10pLCAiJyIpIDogJyc7CiAgICB2YXIgaW5hY3RpdmVWYWx1ZSA9IGVsWydpbmFjdGl2ZS12YWx1ZSddICE9PSBmYWxzZSA/ICI6aW5hY3RpdmUtdmFsdWU9JyIuY29uY2F0KEpTT04uc3RyaW5naWZ5KGVsWydpbmFjdGl2ZS12YWx1ZSddKSwgIiciKSA6ICcnOwogICAgcmV0dXJuICI8Ii5jb25jYXQoZWwudGFnLCAiICIpLmNvbmNhdCh2TW9kZWwsICIgIikuY29uY2F0KGFjdGl2ZVRleHQsICIgIikuY29uY2F0KGluYWN0aXZlVGV4dCwgIiAiKS5jb25jYXQoYWN0aXZlQ29sb3IsICIgIikuY29uY2F0KGluYWN0aXZlQ29sb3IsICIgIikuY29uY2F0KGFjdGl2ZVZhbHVlLCAiICIpLmNvbmNhdChpbmFjdGl2ZVZhbHVlLCAiICIpLmNvbmNhdChkaXNhYmxlZCwgIj48LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtY2FzY2FkZXInOiBmdW5jdGlvbiBlbENhc2NhZGVyKGVsKSB7CiAgICB2YXIgX2F0dHJCdWlsZGVyOCA9IGF0dHJCdWlsZGVyKGVsKSwKICAgICAgZGlzYWJsZWQgPSBfYXR0ckJ1aWxkZXI4LmRpc2FibGVkLAogICAgICB2TW9kZWwgPSBfYXR0ckJ1aWxkZXI4LnZNb2RlbCwKICAgICAgY2xlYXJhYmxlID0gX2F0dHJCdWlsZGVyOC5jbGVhcmFibGUsCiAgICAgIHBsYWNlaG9sZGVyID0gX2F0dHJCdWlsZGVyOC5wbGFjZWhvbGRlciwKICAgICAgd2lkdGggPSBfYXR0ckJ1aWxkZXI4LndpZHRoOwogICAgdmFyIG9wdGlvbnMgPSBlbC5vcHRpb25zID8gIjpvcHRpb25zPVwiIi5jb25jYXQoZWwudk1vZGVsLCAiT3B0aW9uc1wiIikgOiAnJzsKICAgIHZhciBwcm9wcyA9IGVsLnByb3BzID8gIjpwcm9wcz1cIiIuY29uY2F0KGVsLnZNb2RlbCwgIlByb3BzXCIiKSA6ICcnOwogICAgdmFyIHNob3dBbGxMZXZlbHMgPSBlbFsnc2hvdy1hbGwtbGV2ZWxzJ10gPyAnJyA6ICc6c2hvdy1hbGwtbGV2ZWxzPSJmYWxzZSInOwogICAgdmFyIGZpbHRlcmFibGUgPSBlbC5maWx0ZXJhYmxlID8gJ2ZpbHRlcmFibGUnIDogJyc7CiAgICB2YXIgc2VwYXJhdG9yID0gZWwuc2VwYXJhdG9yID09PSAnLycgPyAnJyA6ICJzZXBhcmF0b3I9XCIiLmNvbmNhdChlbC5zZXBhcmF0b3IsICJcIiIpOwogICAgcmV0dXJuICI8Ii5jb25jYXQoZWwudGFnLCAiICIpLmNvbmNhdCh2TW9kZWwsICIgIikuY29uY2F0KG9wdGlvbnMsICIgIikuY29uY2F0KHByb3BzLCAiICIpLmNvbmNhdCh3aWR0aCwgIiAiKS5jb25jYXQoc2hvd0FsbExldmVscywgIiAiKS5jb25jYXQocGxhY2Vob2xkZXIsICIgIikuY29uY2F0KHNlcGFyYXRvciwgIiAiKS5jb25jYXQoZmlsdGVyYWJsZSwgIiAiKS5jb25jYXQoY2xlYXJhYmxlLCAiICIpLmNvbmNhdChkaXNhYmxlZCwgIj48LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtc2xpZGVyJzogZnVuY3Rpb24gZWxTbGlkZXIoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXI5ID0gYXR0ckJ1aWxkZXIoZWwpLAogICAgICBkaXNhYmxlZCA9IF9hdHRyQnVpbGRlcjkuZGlzYWJsZWQsCiAgICAgIHZNb2RlbCA9IF9hdHRyQnVpbGRlcjkudk1vZGVsOwogICAgdmFyIG1pbiA9IGVsLm1pbiA/ICI6bWluPSciLmNvbmNhdChlbC5taW4sICInIikgOiAnJzsKICAgIHZhciBtYXggPSBlbC5tYXggPyAiOm1heD0nIi5jb25jYXQoZWwubWF4LCAiJyIpIDogJyc7CiAgICB2YXIgc3RlcCA9IGVsLnN0ZXAgPyAiOnN0ZXA9JyIuY29uY2F0KGVsLnN0ZXAsICInIikgOiAnJzsKICAgIHZhciByYW5nZSA9IGVsLnJhbmdlID8gJ3JhbmdlJyA6ICcnOwogICAgdmFyIHNob3dTdG9wcyA9IGVsWydzaG93LXN0b3BzJ10gPyAiOnNob3ctc3RvcHM9XCIiLmNvbmNhdChlbFsnc2hvdy1zdG9wcyddLCAiXCIiKSA6ICcnOwogICAgcmV0dXJuICI8Ii5jb25jYXQoZWwudGFnLCAiICIpLmNvbmNhdChtaW4sICIgIikuY29uY2F0KG1heCwgIiAiKS5jb25jYXQoc3RlcCwgIiAiKS5jb25jYXQodk1vZGVsLCAiICIpLmNvbmNhdChyYW5nZSwgIiAiKS5jb25jYXQoc2hvd1N0b3BzLCAiICIpLmNvbmNhdChkaXNhYmxlZCwgIj48LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtdGltZS1waWNrZXInOiBmdW5jdGlvbiBlbFRpbWVQaWNrZXIoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXIwID0gYXR0ckJ1aWxkZXIoZWwpLAogICAgICBkaXNhYmxlZCA9IF9hdHRyQnVpbGRlcjAuZGlzYWJsZWQsCiAgICAgIHZNb2RlbCA9IF9hdHRyQnVpbGRlcjAudk1vZGVsLAogICAgICBjbGVhcmFibGUgPSBfYXR0ckJ1aWxkZXIwLmNsZWFyYWJsZSwKICAgICAgcGxhY2Vob2xkZXIgPSBfYXR0ckJ1aWxkZXIwLnBsYWNlaG9sZGVyLAogICAgICB3aWR0aCA9IF9hdHRyQnVpbGRlcjAud2lkdGg7CiAgICB2YXIgc3RhcnRQbGFjZWhvbGRlciA9IGVsWydzdGFydC1wbGFjZWhvbGRlciddID8gInN0YXJ0LXBsYWNlaG9sZGVyPVwiIi5jb25jYXQoZWxbJ3N0YXJ0LXBsYWNlaG9sZGVyJ10sICJcIiIpIDogJyc7CiAgICB2YXIgZW5kUGxhY2Vob2xkZXIgPSBlbFsnZW5kLXBsYWNlaG9sZGVyJ10gPyAiZW5kLXBsYWNlaG9sZGVyPVwiIi5jb25jYXQoZWxbJ2VuZC1wbGFjZWhvbGRlciddLCAiXCIiKSA6ICcnOwogICAgdmFyIHJhbmdlU2VwYXJhdG9yID0gZWxbJ3JhbmdlLXNlcGFyYXRvciddID8gInJhbmdlLXNlcGFyYXRvcj1cIiIuY29uY2F0KGVsWydyYW5nZS1zZXBhcmF0b3InXSwgIlwiIikgOiAnJzsKICAgIHZhciBpc1JhbmdlID0gZWxbJ2lzLXJhbmdlJ10gPyAnaXMtcmFuZ2UnIDogJyc7CiAgICB2YXIgZm9ybWF0ID0gZWwuZm9ybWF0ID8gImZvcm1hdD1cIiIuY29uY2F0KGVsLmZvcm1hdCwgIlwiIikgOiAnJzsKICAgIHZhciB2YWx1ZUZvcm1hdCA9IGVsWyd2YWx1ZS1mb3JtYXQnXSA/ICJ2YWx1ZS1mb3JtYXQ9XCIiLmNvbmNhdChlbFsndmFsdWUtZm9ybWF0J10sICJcIiIpIDogJyc7CiAgICB2YXIgcGlja2VyT3B0aW9ucyA9IGVsWydwaWNrZXItb3B0aW9ucyddID8gIjpwaWNrZXItb3B0aW9ucz0nIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoZWxbJ3BpY2tlci1vcHRpb25zJ10pLCAiJyIpIDogJyc7CiAgICByZXR1cm4gIjwiLmNvbmNhdChlbC50YWcsICIgIikuY29uY2F0KHZNb2RlbCwgIiAiKS5jb25jYXQoaXNSYW5nZSwgIiAiKS5jb25jYXQoZm9ybWF0LCAiICIpLmNvbmNhdCh2YWx1ZUZvcm1hdCwgIiAiKS5jb25jYXQocGlja2VyT3B0aW9ucywgIiAiKS5jb25jYXQod2lkdGgsICIgIikuY29uY2F0KHBsYWNlaG9sZGVyLCAiICIpLmNvbmNhdChzdGFydFBsYWNlaG9sZGVyLCAiICIpLmNvbmNhdChlbmRQbGFjZWhvbGRlciwgIiAiKS5jb25jYXQocmFuZ2VTZXBhcmF0b3IsICIgIikuY29uY2F0KGNsZWFyYWJsZSwgIiAiKS5jb25jYXQoZGlzYWJsZWQsICI+PC8iKS5jb25jYXQoZWwudGFnLCAiPiIpOwogIH0sCiAgJ2VsLWRhdGUtcGlja2VyJzogZnVuY3Rpb24gZWxEYXRlUGlja2VyKGVsKSB7CiAgICB2YXIgX2F0dHJCdWlsZGVyMSA9IGF0dHJCdWlsZGVyKGVsKSwKICAgICAgZGlzYWJsZWQgPSBfYXR0ckJ1aWxkZXIxLmRpc2FibGVkLAogICAgICB2TW9kZWwgPSBfYXR0ckJ1aWxkZXIxLnZNb2RlbCwKICAgICAgY2xlYXJhYmxlID0gX2F0dHJCdWlsZGVyMS5jbGVhcmFibGUsCiAgICAgIHBsYWNlaG9sZGVyID0gX2F0dHJCdWlsZGVyMS5wbGFjZWhvbGRlciwKICAgICAgd2lkdGggPSBfYXR0ckJ1aWxkZXIxLndpZHRoOwogICAgdmFyIHN0YXJ0UGxhY2Vob2xkZXIgPSBlbFsnc3RhcnQtcGxhY2Vob2xkZXInXSA/ICJzdGFydC1wbGFjZWhvbGRlcj1cIiIuY29uY2F0KGVsWydzdGFydC1wbGFjZWhvbGRlciddLCAiXCIiKSA6ICcnOwogICAgdmFyIGVuZFBsYWNlaG9sZGVyID0gZWxbJ2VuZC1wbGFjZWhvbGRlciddID8gImVuZC1wbGFjZWhvbGRlcj1cIiIuY29uY2F0KGVsWydlbmQtcGxhY2Vob2xkZXInXSwgIlwiIikgOiAnJzsKICAgIHZhciByYW5nZVNlcGFyYXRvciA9IGVsWydyYW5nZS1zZXBhcmF0b3InXSA/ICJyYW5nZS1zZXBhcmF0b3I9XCIiLmNvbmNhdChlbFsncmFuZ2Utc2VwYXJhdG9yJ10sICJcIiIpIDogJyc7CiAgICB2YXIgZm9ybWF0ID0gZWwuZm9ybWF0ID8gImZvcm1hdD1cIiIuY29uY2F0KGVsLmZvcm1hdCwgIlwiIikgOiAnJzsKICAgIHZhciB2YWx1ZUZvcm1hdCA9IGVsWyd2YWx1ZS1mb3JtYXQnXSA/ICJ2YWx1ZS1mb3JtYXQ9XCIiLmNvbmNhdChlbFsndmFsdWUtZm9ybWF0J10sICJcIiIpIDogJyc7CiAgICB2YXIgdHlwZSA9IGVsLnR5cGUgPT09ICdkYXRlJyA/ICcnIDogInR5cGU9XCIiLmNvbmNhdChlbC50eXBlLCAiXCIiKTsKICAgIHZhciByZWFkb25seSA9IGVsLnJlYWRvbmx5ID8gJ3JlYWRvbmx5JyA6ICcnOwogICAgcmV0dXJuICI8Ii5jb25jYXQoZWwudGFnLCAiICIpLmNvbmNhdCh0eXBlLCAiICIpLmNvbmNhdCh2TW9kZWwsICIgIikuY29uY2F0KGZvcm1hdCwgIiAiKS5jb25jYXQodmFsdWVGb3JtYXQsICIgIikuY29uY2F0KHdpZHRoLCAiICIpLmNvbmNhdChwbGFjZWhvbGRlciwgIiAiKS5jb25jYXQoc3RhcnRQbGFjZWhvbGRlciwgIiAiKS5jb25jYXQoZW5kUGxhY2Vob2xkZXIsICIgIikuY29uY2F0KHJhbmdlU2VwYXJhdG9yLCAiICIpLmNvbmNhdChjbGVhcmFibGUsICIgIikuY29uY2F0KHJlYWRvbmx5LCAiICIpLmNvbmNhdChkaXNhYmxlZCwgIj48LyIpLmNvbmNhdChlbC50YWcsICI+Iik7CiAgfSwKICAnZWwtcmF0ZSc6IGZ1bmN0aW9uIGVsUmF0ZShlbCkgewogICAgdmFyIF9hdHRyQnVpbGRlcjEwID0gYXR0ckJ1aWxkZXIoZWwpLAogICAgICBkaXNhYmxlZCA9IF9hdHRyQnVpbGRlcjEwLmRpc2FibGVkLAogICAgICB2TW9kZWwgPSBfYXR0ckJ1aWxkZXIxMC52TW9kZWw7CiAgICB2YXIgbWF4ID0gZWwubWF4ID8gIjptYXg9JyIuY29uY2F0KGVsLm1heCwgIiciKSA6ICcnOwogICAgdmFyIGFsbG93SGFsZiA9IGVsWydhbGxvdy1oYWxmJ10gPyAnYWxsb3ctaGFsZicgOiAnJzsKICAgIHZhciBzaG93VGV4dCA9IGVsWydzaG93LXRleHQnXSA/ICdzaG93LXRleHQnIDogJyc7CiAgICB2YXIgc2hvd1Njb3JlID0gZWxbJ3Nob3ctc2NvcmUnXSA/ICdzaG93LXNjb3JlJyA6ICcnOwogICAgcmV0dXJuICI8Ii5jb25jYXQoZWwudGFnLCAiICIpLmNvbmNhdCh2TW9kZWwsICIgIikuY29uY2F0KGFsbG93SGFsZiwgIiAiKS5jb25jYXQoc2hvd1RleHQsICIgIikuY29uY2F0KHNob3dTY29yZSwgIiAiKS5jb25jYXQoZGlzYWJsZWQsICI+PC8iKS5jb25jYXQoZWwudGFnLCAiPiIpOwogIH0sCiAgJ2VsLWNvbG9yLXBpY2tlcic6IGZ1bmN0aW9uIGVsQ29sb3JQaWNrZXIoZWwpIHsKICAgIHZhciBfYXR0ckJ1aWxkZXIxMSA9IGF0dHJCdWlsZGVyKGVsKSwKICAgICAgZGlzYWJsZWQgPSBfYXR0ckJ1aWxkZXIxMS5kaXNhYmxlZCwKICAgICAgdk1vZGVsID0gX2F0dHJCdWlsZGVyMTEudk1vZGVsOwogICAgdmFyIHNpemUgPSAic2l6ZT1cIiIuY29uY2F0KGVsLnNpemUsICJcIiIpOwogICAgdmFyIHNob3dBbHBoYSA9IGVsWydzaG93LWFscGhhJ10gPyAnc2hvdy1hbHBoYScgOiAnJzsKICAgIHZhciBjb2xvckZvcm1hdCA9IGVsWydjb2xvci1mb3JtYXQnXSA/ICJjb2xvci1mb3JtYXQ9XCIiLmNvbmNhdChlbFsnY29sb3ItZm9ybWF0J10sICJcIiIpIDogJyc7CiAgICByZXR1cm4gIjwiLmNvbmNhdChlbC50YWcsICIgIikuY29uY2F0KHZNb2RlbCwgIiAiKS5jb25jYXQoc2l6ZSwgIiAiKS5jb25jYXQoc2hvd0FscGhhLCAiICIpLmNvbmNhdChjb2xvckZvcm1hdCwgIiAiKS5jb25jYXQoZGlzYWJsZWQsICI+PC8iKS5jb25jYXQoZWwudGFnLCAiPiIpOwogIH0sCiAgJ2VsLXVwbG9hZCc6IGZ1bmN0aW9uIGVsVXBsb2FkKGVsKSB7CiAgICB2YXIgZGlzYWJsZWQgPSBlbC5kaXNhYmxlZCA/ICc6ZGlzYWJsZWQ9XCd0cnVlXCcnIDogJyc7CiAgICB2YXIgYWN0aW9uID0gZWwuYWN0aW9uID8gIjphY3Rpb249XCIiLmNvbmNhdChlbC52TW9kZWwsICJBY3Rpb25cIiIpIDogJyc7CiAgICB2YXIgbXVsdGlwbGUgPSBlbC5tdWx0aXBsZSA/ICdtdWx0aXBsZScgOiAnJzsKICAgIHZhciBsaXN0VHlwZSA9IGVsWydsaXN0LXR5cGUnXSAhPT0gJ3RleHQnID8gImxpc3QtdHlwZT1cIiIuY29uY2F0KGVsWydsaXN0LXR5cGUnXSwgIlwiIikgOiAnJzsKICAgIHZhciBhY2NlcHQgPSBlbC5hY2NlcHQgPyAiYWNjZXB0PVwiIi5jb25jYXQoZWwuYWNjZXB0LCAiXCIiKSA6ICcnOwogICAgdmFyIG5hbWUgPSBlbC5uYW1lICE9PSAnZmlsZScgPyAibmFtZT1cIiIuY29uY2F0KGVsLm5hbWUsICJcIiIpIDogJyc7CiAgICB2YXIgYXV0b1VwbG9hZCA9IGVsWydhdXRvLXVwbG9hZCddID09PSBmYWxzZSA/ICc6YXV0by11cGxvYWQ9ImZhbHNlIicgOiAnJzsKICAgIHZhciBiZWZvcmVVcGxvYWQgPSAiOmJlZm9yZS11cGxvYWQ9XCIiLmNvbmNhdChlbC52TW9kZWwsICJCZWZvcmVVcGxvYWRcIiIpOwogICAgdmFyIGZpbGVMaXN0ID0gIjpmaWxlLWxpc3Q9XCIiLmNvbmNhdChlbC52TW9kZWwsICJmaWxlTGlzdFwiIik7CiAgICB2YXIgcmVmID0gInJlZj1cIiIuY29uY2F0KGVsLnZNb2RlbCwgIlwiIik7CiAgICB2YXIgY2hpbGQgPSBidWlsZEVsVXBsb2FkQ2hpbGQoZWwpOwogICAgaWYgKGNoaWxkKSBjaGlsZCA9ICJcbiIuY29uY2F0KGNoaWxkLCAiXG4iKTsgLy8g5o2i6KGMCiAgICByZXR1cm4gIjwiLmNvbmNhdChlbC50YWcsICIgIikuY29uY2F0KHJlZiwgIiAiKS5jb25jYXQoZmlsZUxpc3QsICIgIikuY29uY2F0KGFjdGlvbiwgIiAiKS5jb25jYXQoYXV0b1VwbG9hZCwgIiAiKS5jb25jYXQobXVsdGlwbGUsICIgIikuY29uY2F0KGJlZm9yZVVwbG9hZCwgIiAiKS5jb25jYXQobGlzdFR5cGUsICIgIikuY29uY2F0KGFjY2VwdCwgIiAiKS5jb25jYXQobmFtZSwgIiAiKS5jb25jYXQoZGlzYWJsZWQsICI+IikuY29uY2F0KGNoaWxkLCAiPC8iKS5jb25jYXQoZWwudGFnLCAiPiIpOwogIH0KfTsKZnVuY3Rpb24gYXR0ckJ1aWxkZXIoZWwpIHsKICByZXR1cm4gewogICAgdk1vZGVsOiAidi1tb2RlbD1cIiIuY29uY2F0KGNvbmZHbG9iYWwuZm9ybU1vZGVsLCAiLiIpLmNvbmNhdChlbC52TW9kZWwsICJcIiIpLAogICAgY2xlYXJhYmxlOiBlbC5jbGVhcmFibGUgPyAnY2xlYXJhYmxlJyA6ICcnLAogICAgcGxhY2Vob2xkZXI6IGVsLnBsYWNlaG9sZGVyID8gInBsYWNlaG9sZGVyPVwiIi5jb25jYXQoZWwucGxhY2Vob2xkZXIsICJcIiIpIDogJycsCiAgICB3aWR0aDogZWwuc3R5bGUgJiYgZWwuc3R5bGUud2lkdGggPyAnOnN0eWxlPSJ7d2lkdGg6IFwnMTAwJVwnfSInIDogJycsCiAgICBkaXNhYmxlZDogZWwuZGlzYWJsZWQgPyAnOmRpc2FibGVkPVwndHJ1ZVwnJyA6ICcnCiAgfTsKfQoKLy8gZWwtYnV0dGluIOWtkOe6pwpmdW5jdGlvbiBidWlsZEVsQnV0dG9uQ2hpbGQoY29uZikgewogIHZhciBjaGlsZHJlbiA9IFtdOwogIGlmIChjb25mLmRlZmF1bHQpIHsKICAgIGNoaWxkcmVuLnB1c2goY29uZi5kZWZhdWx0KTsKICB9CiAgcmV0dXJuIGNoaWxkcmVuLmpvaW4oJ1xuJyk7Cn0KCi8vIGVsLWlucHV0IGlubmVySFRNTApmdW5jdGlvbiBidWlsZEVsSW5wdXRDaGlsZChjb25mKSB7CiAgdmFyIGNoaWxkcmVuID0gW107CiAgaWYgKGNvbmYucHJlcGVuZCkgewogICAgY2hpbGRyZW4ucHVzaCgiPHRlbXBsYXRlIHNsb3Q9XCJwcmVwZW5kXCI+Ii5jb25jYXQoY29uZi5wcmVwZW5kLCAiPC90ZW1wbGF0ZT4iKSk7CiAgfQogIGlmIChjb25mLmFwcGVuZCkgewogICAgY2hpbGRyZW4ucHVzaCgiPHRlbXBsYXRlIHNsb3Q9XCJhcHBlbmRcIj4iLmNvbmNhdChjb25mLmFwcGVuZCwgIjwvdGVtcGxhdGU+IikpOwogIH0KICByZXR1cm4gY2hpbGRyZW4uam9pbignXG4nKTsKfQpmdW5jdGlvbiBidWlsZEVsU2VsZWN0Q2hpbGQoY29uZikgewogIHZhciBjaGlsZHJlbiA9IFtdOwogIGlmIChjb25mLm9wdGlvbnMgJiYgY29uZi5vcHRpb25zLmxlbmd0aCkgewogICAgY2hpbGRyZW4ucHVzaCgiPGVsLW9wdGlvbiB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gIi5jb25jYXQoY29uZi52TW9kZWwsICJPcHRpb25zXCIgOmtleT1cImluZGV4XCIgOmxhYmVsPVwiaXRlbS5sYWJlbFwiIDp2YWx1ZT1cIml0ZW0udmFsdWVcIiA6ZGlzYWJsZWQ9XCJpdGVtLmRpc2FibGVkXCI+PC9lbC1vcHRpb24+IikpOwogIH0KICByZXR1cm4gY2hpbGRyZW4uam9pbignXG4nKTsKfQpmdW5jdGlvbiBidWlsZEVsUmFkaW9Hcm91cENoaWxkKGNvbmYpIHsKICB2YXIgY2hpbGRyZW4gPSBbXTsKICBpZiAoY29uZi5vcHRpb25zICYmIGNvbmYub3B0aW9ucy5sZW5ndGgpIHsKICAgIHZhciB0YWcgPSBjb25mLm9wdGlvblR5cGUgPT09ICdidXR0b24nID8gJ2VsLXJhZGlvLWJ1dHRvbicgOiAnZWwtcmFkaW8nOwogICAgdmFyIGJvcmRlciA9IGNvbmYuYm9yZGVyID8gJ2JvcmRlcicgOiAnJzsKICAgIGNoaWxkcmVuLnB1c2goIjwiLmNvbmNhdCh0YWcsICIgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluICIpLmNvbmNhdChjb25mLnZNb2RlbCwgIk9wdGlvbnNcIiA6a2V5PVwiaW5kZXhcIiA6bGFiZWw9XCJpdGVtLnZhbHVlXCIgOmRpc2FibGVkPVwiaXRlbS5kaXNhYmxlZFwiICIpLmNvbmNhdChib3JkZXIsICI+e3tpdGVtLmxhYmVsfX08LyIpLmNvbmNhdCh0YWcsICI+IikpOwogIH0KICByZXR1cm4gY2hpbGRyZW4uam9pbignXG4nKTsKfQpmdW5jdGlvbiBidWlsZEVsQ2hlY2tib3hHcm91cENoaWxkKGNvbmYpIHsKICB2YXIgY2hpbGRyZW4gPSBbXTsKICBpZiAoY29uZi5vcHRpb25zICYmIGNvbmYub3B0aW9ucy5sZW5ndGgpIHsKICAgIHZhciB0YWcgPSBjb25mLm9wdGlvblR5cGUgPT09ICdidXR0b24nID8gJ2VsLWNoZWNrYm94LWJ1dHRvbicgOiAnZWwtY2hlY2tib3gnOwogICAgdmFyIGJvcmRlciA9IGNvbmYuYm9yZGVyID8gJ2JvcmRlcicgOiAnJzsKICAgIGNoaWxkcmVuLnB1c2goIjwiLmNvbmNhdCh0YWcsICIgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluICIpLmNvbmNhdChjb25mLnZNb2RlbCwgIk9wdGlvbnNcIiA6a2V5PVwiaW5kZXhcIiA6bGFiZWw9XCJpdGVtLnZhbHVlXCIgOmRpc2FibGVkPVwiaXRlbS5kaXNhYmxlZFwiICIpLmNvbmNhdChib3JkZXIsICI+e3tpdGVtLmxhYmVsfX08LyIpLmNvbmNhdCh0YWcsICI+IikpOwogIH0KICByZXR1cm4gY2hpbGRyZW4uam9pbignXG4nKTsKfQpmdW5jdGlvbiBidWlsZEVsVXBsb2FkQ2hpbGQoY29uZikgewogIHZhciBsaXN0ID0gW107CiAgaWYgKGNvbmZbJ2xpc3QtdHlwZSddID09PSAncGljdHVyZS1jYXJkJykgbGlzdC5wdXNoKCc8aSBjbGFzcz0iZWwtaWNvbi1wbHVzIj48L2k+Jyk7ZWxzZSBsaXN0LnB1c2goIjxlbC1idXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cInByaW1hcnlcIiBpY29uPVwiZWwtaWNvbi11cGxvYWRcIj4iLmNvbmNhdChjb25mLmJ1dHRvblRleHQsICI8L2VsLWJ1dHRvbj4iKSk7CiAgaWYgKGNvbmYuc2hvd1RpcCkgbGlzdC5wdXNoKCI8ZGl2IHNsb3Q9XCJ0aXBcIiBjbGFzcz1cImVsLXVwbG9hZF9fdGlwXCI+XHU1M0VBXHU4MEZEXHU0RTBBXHU0RjIwXHU0RTBEXHU4RDg1XHU4RkM3ICIuY29uY2F0KGNvbmYuZmlsZVNpemUpLmNvbmNhdChjb25mLnNpemVVbml0LCAiIFx1NzY4NCIpLmNvbmNhdChjb25mLmFjY2VwdCwgIlx1NjU4N1x1NEVGNjwvZGl2PiIpKTsKICByZXR1cm4gbGlzdC5qb2luKCdcbicpOwp9CmV4cG9ydCBmdW5jdGlvbiBtYWtlVXBIdG1sKGNvbmYsIHR5cGUpIHsKICB2YXIgaHRtbExpc3QgPSBbXTsKICBjb25mR2xvYmFsID0gY29uZjsKICBzb21lU3BhbklzTm90MjQgPSBjb25mLmZpZWxkcy5zb21lKGZ1bmN0aW9uIChpdGVtKSB7CiAgICByZXR1cm4gaXRlbS5zcGFuICE9PSAyNDsKICB9KTsKICBjb25mLmZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uIChlbCkgewogICAgaHRtbExpc3QucHVzaChsYXlvdXRzW2VsLmxheW91dF0oZWwpKTsKICB9KTsKICB2YXIgaHRtbFN0ciA9IGh0bWxMaXN0LmpvaW4oJ1xuJyk7CiAgdmFyIHRlbXAgPSBidWlsZEZvcm1UZW1wbGF0ZShjb25mLCBodG1sU3RyLCB0eXBlKTsKICBpZiAodHlwZSA9PT0gJ2RpYWxvZycpIHsKICAgIHRlbXAgPSBkaWFsb2dXcmFwcGVyKHRlbXApOwogIH0KICBjb25mR2xvYmFsID0gbnVsbDsKICByZXR1cm4gdGVtcDsKfQ=="},null]}