779c47892673f0bc79adbe4636628e67.json 33 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\thread-loader\\dist\\cjs.js!D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js!D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\order\\orderList\\components\\tableList.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\order\\orderList\\components\\tableList.vue","mtime":1761614939044},{"path":"D:\\front\\item\\zyAdmin\\babel.config.js","mtime":1761614925168},{"path":"D:\\front\\item\\zyAdmin\\.babelrc","mtime":1761614925165},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1761614937017},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJEOi9mcm9udC9pdGVtL3p5QWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvciBmcm9tICJEOi9mcm9udC9pdGVtL3p5QWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkQ6L2Zyb250L2l0ZW0venlBZG1pbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gIkQ6L2Zyb250L2l0ZW0venlBZG1pbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmVycm9yLmNhdXNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmluZC1pbmRleC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5pcy1pbnRlZ2VyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudGVzdC5qcyI7CmltcG9ydCBleHBhbmRSb3cgZnJvbSAnLi90YWJsZUV4cGFuZC52dWUnOwppbXBvcnQgcHJpbnRKUyBmcm9tICdwcmludC1qcyc7CmltcG9ydCB7IG9yZGVyTGlzdCwgZ2V0T3JkZURhdGFzLCBnZXREYXRhSW5mbywgZ2V0UmVmdW5kRnJvbSwgZ2V0bm9SZWZ1bmQsIHJlZnVuZEludGVncmFsLCBnZXREaXN0cmlidXRpb24sIHdyaXRlVXBkYXRlLCBzaGlwbWVudENhbmNlbE9yZGVyLCBwdXRXcml0ZSwgaW1wb3J0RXhwcmVzcyB9IGZyb20gJ0AvYXBpL29yZGVyJzsKaW1wb3J0IHsgbWFwU3RhdGUsIG1hcE11dGF0aW9ucyB9IGZyb20gJ3Z1ZXgnOwppbXBvcnQgZWRpdEZyb20gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9mcm9tL2Zyb20nOwppbXBvcnQgZGV0YWlsc0Zyb20gZnJvbSAnLi4vaGFuZGxlL29yZGVyRGV0YWlscyc7CmltcG9ydCBvcmRlclJlbWFyayBmcm9tICcuLi9oYW5kbGUvb3JkZXJSZW1hcmsnOwppbXBvcnQgb3JkZXJTZW5kIGZyb20gJy4uL2hhbmRsZS9vcmRlclNlbmQnOwppbXBvcnQgb3JkZXJSZWZ1bmQgZnJvbSAnLi4vaGFuZGxlL29yZGVyUmVmdW5kJzsKaW1wb3J0IG9yZGVyU2hpcG1lbnQgZnJvbSAnLi4vaGFuZGxlL29yZGVyU2hpcG1lbnQnOwppbXBvcnQgeyBleHBvcnRPcmRlckxpc3QsIGV4cG9ydE9yZGVyRGVsaXZlcnlMaXN0IH0gZnJvbSAnQGFwaS9leHBvcnQnOwppbXBvcnQgU2V0dGluZyBmcm9tICdAL3NldHRpbmcnOwppbXBvcnQgeyBnZXRDb29raWVzIH0gZnJvbSAnQC9saWJzL3V0aWwnOwppbXBvcnQgY3JlYXRlV29ya0Jvb2sgZnJvbSAnQC92ZW5kb3IvbmV3VG9FeGNlbC5qcyc7CmltcG9ydCB7IGlzRmlsZVVwbG9hZCB9IGZyb20gJ0AvdXRpbHMnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ3RhYmxlX2xpc3QnLAogIGNvbXBvbmVudHM6IHsKICAgIGV4cGFuZFJvdzogZXhwYW5kUm93LAogICAgZWRpdEZyb206IGVkaXRGcm9tLAogICAgZGV0YWlsc0Zyb206IGRldGFpbHNGcm9tLAogICAgb3JkZXJSZW1hcms6IG9yZGVyUmVtYXJrLAogICAgb3JkZXJTZW5kOiBvcmRlclNlbmQsCiAgICBvcmRlclNoaXBtZW50OiBvcmRlclNoaXBtZW50LAogICAgb3JkZXJSZWZ1bmQ6IG9yZGVyUmVmdW5kCiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgdmFyIGNvZGVOdW0gPSBmdW5jdGlvbiBjb2RlTnVtKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgewogICAgICBpZiAoIXZhbHVlKSB7CiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcign6K+35aGr5YaZ5qC46ZSA56CBJykpOwogICAgICB9CiAgICAgIC8vIOaooeaLn+W8guatpemqjOivgeaViOaenAogICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIodmFsdWUpKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfor7floavlhpkxMuS9jeaVsOWtlycpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgcmVnID0gL1xiXGR7MTJ9XGIvOwogICAgICAgIGlmICghcmVnLnRlc3QodmFsdWUpKSB7CiAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ+ivt+Whq+WGmTEy5L2N5pWw5a2XJykpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIHJldHVybiB7CiAgICAgIGJhdGNoU2hpcG1lbnRNb2RhbDogZmFsc2UsCiAgICAgIGV4cHJlc3NVcmw6IFNldHRpbmcuYXBpQmFzZVVSTCArICcvZmlsZS91cGxvYWQvMScsCiAgICAgIGhlYWRlcjoge30sCiAgICAgIGRlbGZyb21EYXRhOiB7fSwKICAgICAgbW9kYWw6IGZhbHNlLAogICAgICBvcmRlckxpc3Q6IFtdLAogICAgICBvcmRlckNhcmRzOiBbXSwKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIG9yZGVySWQ6IDAsCiAgICAgIHRvdGFsX251bTogMCwKICAgICAgdmlydHVhbF90eXBlOiAwLAogICAgICBzdGF0dXM6IDAsCiAgICAgIHBheV90eXBlOiAnJywKICAgICAgdG90YWw6IDAsCiAgICAgIC8vIOaAu+adoeaVsAogICAgICBwYWdlOiB7CiAgICAgICAgcGFnZTogMSwKICAgICAgICAvLyDlvZPliY3pobUKICAgICAgICBsaW1pdDogMTUgLy8g5q+P6aG15pi+56S65p2h5pWwCiAgICAgIH0sCiAgICAgIGRhdGE6IFtdLAogICAgICBGcm9tRGF0YTogbnVsbCwKICAgICAgb3JkZXJEYXRhbGlzdDogbnVsbCwKICAgICAgLy8gbW9kYWxUaXRsZVNzOiAnJywKICAgICAgc2VsZWN0ZWRJZHM6IFtdLAogICAgICAvL+mAieS4reWQiOW5tumhueeahGlkCiAgICAgIGN1cnJlbnRUYWI6ICdudWxsJywKICAgICAgc3BpblNob3c6IGZhbHNlLAogICAgICB0YWJsaXN0czogewogICAgICAgIGFsbDogJzAnLAogICAgICAgIGdlbmVyYWw6ICcwJywKICAgICAgICBwaW5rOiAnMCcsCiAgICAgICAgc2Vja2lsbDogJzAnLAogICAgICAgIGJhcmdhaW46ICcwJywKICAgICAgICBhZHZhbmNlOiAnMCcKICAgICAgfSwKICAgICAgd3JpdGVPZmZSdWxlczogewogICAgICAgIGNvZGU6IFt7CiAgICAgICAgICB2YWxpZGF0b3I6IGNvZGVOdW0sCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicsCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIHdyaXRlT2ZmRnJvbTogewogICAgICAgIGNvZGU6ICcnLAogICAgICAgIGNvbmZpcm06IDAKICAgICAgfSwKICAgICAgbW9kYWxzMjogZmFsc2UKICAgIH07CiAgfSwKICBjb21wdXRlZDogX29iamVjdFNwcmVhZCh7fSwgbWFwU3RhdGUoJ29yZGVyJywgWydvcmRlclBheVR5cGUnLCAnb3JkZXJTdGF0dXMnLCAnb3JkZXJUaW1lJywgJ3JlYWxfbmFtZScsICdmaWVsZEtleScsICdvcmRlclR5cGUnLCAnZGVsSWRMaXN0JywgJ2lzRGVscycsICdvcmRlckNoYXJ0VHlwZSddKSksCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHt9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB0aGlzLmdldFRhYnMoKTsKICAgIHRoaXMub25DaGFuZ2VUYWJzKCcnKTsKICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgdGhpcy5nZXRUb2tlbigpOwogIH0sCiAgd2F0Y2g6IHsKICAgIG9yZGVyVHlwZTogZnVuY3Rpb24gb3JkZXJUeXBlKCkgewogICAgICB0aGlzLnBhZ2UucGFnZSA9IDE7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgfQogIH0sCiAgbWV0aG9kczogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBtYXBNdXRhdGlvbnMoJ29yZGVyJywgWydnZXRPcmRlclN0YXR1cycsICdvbkNoYW5nZVRhYnMnLCAnZ2V0SXNEZWwnLCAnZ2V0aXNEZWxJZExpc3RsJ10pKSwge30sIHsKICAgIGJhdGNoU2hpcG1lbnQ6IGZ1bmN0aW9uIGJhdGNoU2hpcG1lbnQoKSB7fSwKICAgIGJlZm9yZVVwbG9hZDogZnVuY3Rpb24gYmVmb3JlVXBsb2FkKGZpbGUpIHsKICAgICAgcmV0dXJuIGlzRmlsZVVwbG9hZChmaWxlKTsKICAgIH0sCiAgICAvLyDmk43kvZwKICAgIGNoYW5nZU1lbnU6IGZ1bmN0aW9uIGNoYW5nZU1lbnUocm93LCBuYW1lKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIHRoaXMub3JkZXJJZCA9IHJvdy5pZDsKICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgY2FzZSAnMSc6CiAgICAgICAgICB0aGlzLmRlbGZyb21EYXRhID0gewogICAgICAgICAgICB0aXRsZTogJ+S/ruaUueiuouWNleS4uuW3suaUr+S7mCcsCiAgICAgICAgICAgIHVybDogIi9vcmRlci9wYXlfb2ZmbGluZS8iLmNvbmNhdChyb3cuaWQpLAogICAgICAgICAgICBtZXRob2Q6ICdwb3N0JywKICAgICAgICAgICAgaWRzOiAnJwogICAgICAgICAgfTsKICAgICAgICAgIHRoaXMuJG1vZGFsU3VyZSh0aGlzLmRlbGZyb21EYXRhKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgX3RoaXMuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICAgICAgX3RoaXMuJGVtaXQoJ2NoYW5nZUdldFRhYnMnKTsKICAgICAgICAgICAgX3RoaXMuZ2V0TGlzdCgpOwogICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICBfdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICAgIH0pOwogICAgICAgICAgLy8gdGhpcy5tb2RhbFRpdGxlU3MgPSAn5L+u5pS556uL5Y2z5pSv5LuYJzsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJzInOgogICAgICAgICAgdGhpcy5nZXREYXRhKHJvdy5pZCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICc0JzoKICAgICAgICAgIHRoaXMuJHJlZnMucmVtYXJrcy5tb2RhbHMgPSB0cnVlOwogICAgICAgICAgdGhpcy4kcmVmcy5yZW1hcmtzLmZvcm1WYWxpZGF0ZS5yZW1hcmsgPSByb3cucmVtYXJrOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnNSc6CiAgICAgICAgICAvLyB0aGlzLmdldFJlZnVuZERhdGEocm93LmlkKTsKICAgICAgICAgIHRoaXMuJHJlZnMucmVmdW5kLnRvdGFsX251bSA9IHJvdy50b3RhbF9udW07CiAgICAgICAgICB0aGlzLiRyZWZzLnJlZnVuZC5vcmRlcl9pZCA9IHJvdy5vcmRlcl9pZDsKICAgICAgICAgIHRoaXMuJHJlZnMucmVmdW5kLmZvcm1JdGVtLnJlZnVuZF9wcmljZSA9IHJvdy5wYXlfcHJpY2U7CiAgICAgICAgICB0aGlzLnZpcnR1YWxfdHlwZSA9IHJvdy52aXJ0dWFsX3R5cGU7CiAgICAgICAgICB0aGlzLiRyZWZzLnJlZnVuZC5tb2RhbHMgPSB0cnVlOwogICAgICAgICAgdGhpcy5vcmRlcklkID0gcm93LmlkOwogICAgICAgICAgdGhpcy5zdGF0dXMgPSByb3cuX3N0YXR1czsKICAgICAgICAgIHRoaXMucGF5X3R5cGUgPSByb3cucGF5X3R5cGU7CiAgICAgICAgICBicmVhazsKICAgICAgICAvLyBjYXNlICc2JzoKICAgICAgICAvLyAgIHRoaXMuZ2V0UmVmdW5kSW50ZWdyYWwocm93LmlkKTsKICAgICAgICAvLyAgIGJyZWFrOwogICAgICAgIC8vIGNhc2UgJzcnOgogICAgICAgIC8vICAgdGhpcy5nZXROb1JlZnVuZERhdGEocm93LmlkKTsKICAgICAgICAvLyAgIGJyZWFrOwogICAgICAgIGNhc2UgJzgnOgogICAgICAgICAgdGhpcy5kZWxmcm9tRGF0YSA9IHsKICAgICAgICAgICAgdGl0bGU6ICfkv67mlLnnoa7orqTmlLbotKcnLAogICAgICAgICAgICB1cmw6ICIvb3JkZXIvdGFrZS8iLmNvbmNhdChyb3cuaWQpLAogICAgICAgICAgICBtZXRob2Q6ICdwdXQnLAogICAgICAgICAgICBpZHM6ICcnCiAgICAgICAgICB9OwogICAgICAgICAgdGhpcy4kbW9kYWxTdXJlKHRoaXMuZGVsZnJvbURhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICBfdGhpcy4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwogICAgICAgICAgICBfdGhpcy5nZXRMaXN0KCk7CiAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgIF90aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICAgICAgfSk7CiAgICAgICAgICAvLyB0aGlzLm1vZGFsVGl0bGVTcyA9ICfkv67mlLnnoa7orqTmlLbotKcnOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnMTAnOgogICAgICAgICAgdGhpcy5kZWxmcm9tRGF0YSA9IHsKICAgICAgICAgICAgdGl0bGU6ICfnq4vljbPmiZPljbDorqLljZUnLAogICAgICAgICAgICB1cmw6ICIvb3JkZXIvcHJpbnQvIi5jb25jYXQocm93LmlkKSwKICAgICAgICAgICAgbWV0aG9kOiAnZ2V0JywKICAgICAgICAgICAgaWRzOiAnJwogICAgICAgICAgfTsKICAgICAgICAgIHRoaXMuJG1vZGFsU3VyZSh0aGlzLmRlbGZyb21EYXRhKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgX3RoaXMuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICAgICAgX3RoaXMuJGVtaXQoJ2NoYW5nZUdldFRhYnMnKTsKICAgICAgICAgICAgX3RoaXMuZ2V0TGlzdCgpOwogICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICBfdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICAgIH0pOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnMTEnOgogICAgICAgICAgdGhpcy5kZWxmcm9tRGF0YSA9IHsKICAgICAgICAgICAgdGl0bGU6ICfnq4vljbPmiZPljbDnlLXlrZDpnaLljZUnLAogICAgICAgICAgICBpbmZvOiAn5oKo56Gu6K6k5omT5Y2w5q2k55S15a2Q6Z2i5Y2V5ZCXPycsCiAgICAgICAgICAgIHVybDogIi9vcmRlci9vcmRlcl9kdW1wLyIuY29uY2F0KHJvdy5pZCksCiAgICAgICAgICAgIG1ldGhvZDogJ2dldCcsCiAgICAgICAgICAgIGlkczogJycKICAgICAgICAgIH07CiAgICAgICAgICB0aGlzLiRtb2RhbFN1cmUodGhpcy5kZWxmcm9tRGF0YSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgIF90aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CiAgICAgICAgICAgIF90aGlzLmdldExpc3QoKTsKICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgX3RoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgICAgICB9KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJzEyJzoKICAgICAgICAgIHRoaXMucHJpbnRJbWcocm93Lmt1YWlkaV9sYWJlbCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICcxMyc6CiAgICAgICAgICB2YXIgcGF0aEluZm8gPSB0aGlzLiRyb3V0ZXIucmVzb2x2ZSh7CiAgICAgICAgICAgIHBhdGg6IFNldHRpbmcucm91dGVQcmUgKyAnL29yZGVyL3ByaW50JywKICAgICAgICAgICAgcXVlcnk6IHsKICAgICAgICAgICAgICBpZDogcm93Lm9yZGVyX2lkCiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgd2luZG93Lm9wZW4ocGF0aEluZm8uaHJlZiwgJ19ibGFuaycpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIHRoaXMuZGVsZnJvbURhdGEgPSB7CiAgICAgICAgICAgIHRpdGxlOiAn5Yig6Zmk6K6i5Y2VJywKICAgICAgICAgICAgdXJsOiAiL29yZGVyL2RlbC8iLmNvbmNhdChyb3cuaWQpLAogICAgICAgICAgICBtZXRob2Q6ICdERUxFVEUnLAogICAgICAgICAgICBpZHM6ICcnCiAgICAgICAgICB9OwogICAgICAgICAgLy8gdGhpcy5tb2RhbFRpdGxlU3MgPSAn5Yig6Zmk6K6i5Y2VJzsKICAgICAgICAgIHRoaXMuZGVsT3JkZXIocm93LCB0aGlzLmRlbGZyb21EYXRhKTsKICAgICAgfQogICAgfSwKICAgIHNoaXBtZW50Q2xlYXI6IGZ1bmN0aW9uIHNoaXBtZW50Q2xlYXIocm93KSB7CiAgICAgIHRoaXMub3JkZXJJZCA9IHJvdy5pZDsKICAgICAgdGhpcy4kcmVmcy5zaGlwbWVudC5tb2RhbHMgPSB0cnVlOwogICAgfSwKICAgIHByaW50SW1nOiBmdW5jdGlvbiBwcmludEltZyh1cmwpIHsKICAgICAgcHJpbnRKUyh7CiAgICAgICAgcHJpbnRhYmxlOiB1cmwsCiAgICAgICAgdHlwZTogJ2ltYWdlJywKICAgICAgICBkb2N1bWVudFRpdGxlOiAn5b+r6YCS5L+h5oGvJywKICAgICAgICBzdHlsZTogImltZ3tcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDQ3NnB4O1xuICAgICAgICB9IgogICAgICB9KTsKICAgIH0sCiAgICAvLyDnq4vljbPmlK/ku5ggL+ehruiupOaUtui0py8v5Yig6Zmk5Y2V5p2h6K6i5Y2VCiAgICBzdWJtaXRNb2RlbDogZnVuY3Rpb24gc3VibWl0TW9kZWwoKSB7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgfSwKICAgIC8vIOiuouWNleWIl+ihqAogICAgZ2V0TGlzdDogZnVuY3Rpb24gZ2V0TGlzdChyZXMpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICAgIHRoaXMucGFnZS5wYWdlID0gcmVzID09PSAxID8gMSA6IHRoaXMucGFnZS5wYWdlOwogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICBvcmRlckxpc3QoewogICAgICAgIHBhZ2U6IHRoaXMucGFnZS5wYWdlLAogICAgICAgIGxpbWl0OiB0aGlzLnBhZ2UubGltaXQsCiAgICAgICAgc3RhdHVzOiB0aGlzLm9yZGVyU3RhdHVzLAogICAgICAgIHBheV90eXBlOiB0aGlzLm9yZGVyUGF5VHlwZSwKICAgICAgICBkYXRhOiB0aGlzLm9yZGVyVGltZSwKICAgICAgICByZWFsX25hbWU6IHRoaXMucmVhbF9uYW1lLAogICAgICAgIGZpZWxkX2tleTogdGhpcy5maWVsZEtleSwKICAgICAgICB0eXBlOiB0aGlzLm9yZGVyVHlwZSA9PT0gMCA/ICcnIDogdGhpcy5vcmRlclR5cGUKICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZShyZXMpIHsKICAgICAgICAgIHZhciBkYXRhOwogICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvcigpLncoZnVuY3Rpb24gKF9jb250ZXh0KSB7CiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Lm4pIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBkYXRhID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICBfdGhpczIub3JkZXJMaXN0ID0gZGF0YS5kYXRhOwogICAgICAgICAgICAgICAgX3RoaXMyLm9yZGVyQ2FyZHMgPSBkYXRhLnN0YXQ7CiAgICAgICAgICAgICAgICBfdGhpczIudG90YWwgPSBkYXRhLmNvdW50OwogICAgICAgICAgICAgICAgX3RoaXMyLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIC8v56Gu5L+dZG9t5Yqg6L295a6M5q+VCiAgICAgICAgICAgICAgICAgIF90aGlzMi5zZXRDaGVja2VkKCk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIF90aGlzMi4kZW1pdCgnb24tY2hhbmdlQ2FyZHMnLCBkYXRhLnN0YXQpOwogICAgICAgICAgICAgICAgX3RoaXMyLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYSgyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZSk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gpIHsKICAgICAgICAgIHJldHVybiBfcmVmLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMyLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICBfdGhpczIuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZVNlbGVjdFJvdzogZnVuY3Rpb24gaGFuZGxlU2VsZWN0Um93KHNlbGVjdGlvbikgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgdmFyIGlkcyA9IFtdOwogICAgICBzZWxlY3Rpb24ubWFwKGZ1bmN0aW9uIChlKSB7CiAgICAgICAgaWRzLnB1c2goZS5pZCk7CiAgICAgIH0pOwogICAgICB0aGlzLnNlbGVjdGVkSWRzID0gaWRzOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgLy/noa7kv51kb23liqDovb3lrozmr5UKICAgICAgICBfdGhpczMuc2V0Q2hlY2tlZCgpOwogICAgICB9KTsKICAgIH0sCiAgICBzZXRDaGVja2VkOiBmdW5jdGlvbiBzZXRDaGVja2VkKCkgewogICAgICAvL+Wwhm5ldyBTZXQoKei9rOWMluS4uuaVsOe7hAogICAgICB2YXIgaWRzID0gX3RvQ29uc3VtYWJsZUFycmF5KHRoaXMuc2VsZWN0ZWRJZHMpOwogICAgICB0aGlzLmdldGlzRGVsSWRMaXN0bChpZHMpOwogICAgICAvLyDmib7liLDnu5HlrprnmoR0YWJsZeeahHJlZuWvueW6lOeahGRvbe+8jOaJvuWIsHRhYmxl55qEb2JqRGF0YeWvueixoe+8jG9iakRhdGHkv53lrZjnmoTmmK/lvZPliY3pobXnmoTmlbDmja4KICAgICAgdmFyIG9iakRhdGEgPSB0aGlzLiRyZWZzLnRhYmxlLm9iakRhdGE7CiAgICAgIGZvciAodmFyIGluZGV4IGluIG9iakRhdGEpIHsKICAgICAgICBpZiAodGhpcy5zZWxlY3RlZElkcy5oYXMob2JqRGF0YVtpbmRleF0uaWQpKSB7CiAgICAgICAgICBvYmpEYXRhW2luZGV4XS5faXNDaGVja2VkID0gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICBpc0RlbDogZnVuY3Rpb24gaXNEZWwoc2VsZWN0aW9uKSB7CiAgICAgIGlmIChzZWxlY3Rpb24uZmluZEluZGV4KGZ1bmN0aW9uICh0YXJnZXQpIHsKICAgICAgICByZXR1cm4gdGFyZ2V0LmlzX2RlbCA9PT0gMDsKICAgICAgfSkgPT0gLTEpIHsKICAgICAgICB0aGlzLmdldElzRGVsKDEpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuZ2V0SXNEZWwoMCk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDnvJbovpEKICAgIGVkaXQ6IGZ1bmN0aW9uIGVkaXQocm93KSB7CiAgICAgIHRoaXMuZ2V0T3JkZXJEYXRhKHJvdy5pZCk7CiAgICB9LAogICAgLy8g5Yig6Zmk5Y2V5p2h6K6i5Y2VCiAgICBkZWxPcmRlcjogZnVuY3Rpb24gZGVsT3JkZXIocm93LCBkYXRhKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICBpZiAocm93LmlzX2RlbCA9PT0gMSkgewogICAgICAgIHRoaXMuJG1vZGFsU3VyZShkYXRhKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzNC4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwogICAgICAgICAgX3RoaXM0LmdldExpc3QoKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBfdGhpczQuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcign5oKo6YCJ5oup55qE55qE6K6i5Y2V5a2Y5Zyo55So5oi35pyq5Yig6Zmk55qE6K6i5Y2V77yM5peg5rOV5Yig6Zmk55So5oi35pyq5Yig6Zmk55qE6K6i5Y2V77yBJyk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDojrflj5bnvJbovpHooajljZXmlbDmja4KICAgIGdldE9yZGVyRGF0YTogZnVuY3Rpb24gZ2V0T3JkZXJEYXRhKGlkKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICBnZXRPcmRlRGF0YXMoaWQpLnRoZW4oLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX3JlZjIgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yKCkubShmdW5jdGlvbiBfY2FsbGVlMihyZXMpIHsKICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDIpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLm4pIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBfdGhpczUuRnJvbURhdGEgPSByZXMuZGF0YTsKICAgICAgICAgICAgICAgIF90aGlzNS4kcmVmcy5lZGl0cy5tb2RhbHMgPSB0cnVlOwogICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYSgyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94MikgewogICAgICAgICAgcmV0dXJuIF9yZWYyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM1LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bor6bmg4XooajljZXmlbDmja4KICAgIGdldERhdGE6IGZ1bmN0aW9uIGdldERhdGEoaWQpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIGdldERhdGFJbmZvKGlkKS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWYzID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTMocmVzKSB7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQzKSB7CiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5uKSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgX3RoaXM2LiRyZWZzLmRldGFpbHMubW9kYWxzID0gdHJ1ZTsKICAgICAgICAgICAgICAgIF90aGlzNi5vcmRlckRhdGFsaXN0ID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICBpZiAoX3RoaXM2Lm9yZGVyRGF0YWxpc3Qub3JkZXJJbmZvLnJlZnVuZF9yZWFzb25fd2FwX2ltZykgewogICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIF90aGlzNi5vcmRlckRhdGFsaXN0Lm9yZGVySW5mby5yZWZ1bmRfcmVhc29uX3dhcF9pbWcgPSBKU09OLnBhcnNlKF90aGlzNi5vcmRlckRhdGFsaXN0Lm9yZGVySW5mby5yZWZ1bmRfcmVhc29uX3dhcF9pbWcpOwogICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgX3RoaXM2Lm9yZGVyRGF0YWxpc3Qub3JkZXJJbmZvLnJlZnVuZF9yZWFzb25fd2FwX2ltZyA9IFtdOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5hKDIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlMyk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gzKSB7CiAgICAgICAgICByZXR1cm4gX3JlZjMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczYuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOS/ruaUueaIkOWKnwogICAgc3VibWl0RmFpbDogZnVuY3Rpb24gc3VibWl0RmFpbCgpIHsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZUdldFRhYnMnKTsKICAgIH0sCiAgICAvLyDojrflj5bpgIDmrL7ooajljZXmlbDmja4KICAgIGdldFJlZnVuZERhdGE6IGZ1bmN0aW9uIGdldFJlZnVuZERhdGEoaWQpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHRoaXMuJG1vZGFsRm9ybShnZXRSZWZ1bmRGcm9tKGlkKSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXM3LmdldExpc3QoKTsKICAgICAgICBfdGhpczcuJGVtaXQoJ2NoYW5nZUdldFRhYnMnKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6I635Y+W6YCA56ev5YiG6KGo5Y2V5pWw5o2uCiAgICBnZXRSZWZ1bmRJbnRlZ3JhbDogZnVuY3Rpb24gZ2V0UmVmdW5kSW50ZWdyYWwoaWQpIHsKICAgICAgdmFyIF90aGlzOCA9IHRoaXM7CiAgICAgIHJlZnVuZEludGVncmFsKGlkKS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWY0ID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTQocmVzKSB7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQ0KSB7CiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5uKSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgX3RoaXM4LkZyb21EYXRhID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICBfdGhpczguJHJlZnMuZWRpdHMubW9kYWxzID0gdHJ1ZTsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LmEoMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIF9jYWxsZWU0KTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDQpIHsKICAgICAgICAgIHJldHVybiBfcmVmNC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzOC4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5LiN6YCA5qy+6KGo5Y2V5pWw5o2uCiAgICBnZXROb1JlZnVuZERhdGE6IGZ1bmN0aW9uIGdldE5vUmVmdW5kRGF0YShpZCkgewogICAgICB2YXIgX3RoaXM5ID0gdGhpczsKICAgICAgdGhpcy4kbW9kYWxGb3JtKGdldG5vUmVmdW5kKGlkKSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXM5LmdldExpc3QoKTsKICAgICAgICBfdGhpczkuJGVtaXQoJ2NoYW5nZUdldFRhYnMnKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5Y+R6YCB6LSnCiAgICBzZW5kT3JkZXI6IGZ1bmN0aW9uIHNlbmRPcmRlcihyb3cpIHsKICAgICAgdmFyIF90aGlzMCA9IHRoaXM7CiAgICAgIGlmIChyb3cudXNlcl9hZGRyZXNzKSB7CiAgICAgICAgdGhpcy4kcmVmcy5zZW5kLnVzZXJTZW5kbXNnID0gewogICAgICAgICAgcmVhbF9uYW1lOiByb3cucmVhbF9uYW1lLAogICAgICAgICAgdXNlcl9hZGRyZXNzOiByb3cudXNlcl9hZGRyZXNzLAogICAgICAgICAgdXNlcl9waG9uZTogcm93LnVzZXJfcGhvbmUKICAgICAgICB9OwogICAgICB9CiAgICAgIHRoaXMuJHJlZnMuc2VuZC50b3RhbF9udW0gPSByb3cudG90YWxfbnVtOwogICAgICB0aGlzLnZpcnR1YWxfdHlwZSA9IHJvdy52aXJ0dWFsX3R5cGU7CiAgICAgIHRoaXMuJHJlZnMuc2VuZC5tb2RhbHMgPSB0cnVlOwogICAgICB0aGlzLm9yZGVySWQgPSByb3cuaWQ7CiAgICAgIHRoaXMuc3RhdHVzID0gcm93Ll9zdGF0dXM7CiAgICAgIHRoaXMucGF5X3R5cGUgPSByb3cucGF5X3R5cGU7CiAgICAgIHRoaXMuJHJlZnMuc2VuZC5nZXRMaXN0KCk7CiAgICAgIHRoaXMuJHJlZnMuc2VuZC5nZXREZWxpdmVyeUxpc3QoKTsKICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKGUpIHsKICAgICAgICBfdGhpczAuJHJlZnMuc2VuZC5nZXRDYXJ0SW5mbyhyb3cuX3N0YXR1cywgcm93LmlkKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6YWN6YCB5L+h5oGv6KGo5Y2V5pWw5o2uCiAgICBkZWxpdmVyeTogZnVuY3Rpb24gZGVsaXZlcnkocm93KSB7CiAgICAgIHZhciBfdGhpczEgPSB0aGlzOwogICAgICBnZXREaXN0cmlidXRpb24ocm93LmlkKS50aGVuKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWY1ID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTUocmVzKSB7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQ1KSB7CiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NS5uKSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgX3RoaXMxLkZyb21EYXRhID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICBfdGhpczEuJHJlZnMuZWRpdHMubW9kYWxzID0gdHJ1ZTsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1LmEoMik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIF9jYWxsZWU1KTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDUpIHsKICAgICAgICAgIHJldHVybiBfcmVmNS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMS4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5qC46ZSA6K6i5Y2VCiAgICBiaW5kV3JpdGU6IGZ1bmN0aW9uIGJpbmRXcml0ZShyb3cpIHsKICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICB0aGlzLiRtc2dib3goewogICAgICAgIHRpdGxlOiAn5o+Q56S6JywKICAgICAgICBtZXNzYWdlOiAn56Gu5a6a6KaB5qC46ZSA6K+l6K6i5Y2V5ZCX77yfJywKICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgICBpY29uQ2xhc3M6ICdlbC1pY29uLXdhcm5pbmcnLAogICAgICAgIGNvbmZpcm1CdXR0b25DbGFzczogJ2J0bi1jdXN0b20tY2FuY2VsJwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICB3cml0ZVVwZGF0ZShyb3cub3JkZXJfaWQpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgc2VsZi4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwogICAgICAgICAgc2VsZi5nZXRMaXN0KCk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgc2VsZi4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICB9KTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgfSwKICAgIC8vIOiuouWNleexu+WeiyAgQG9uLWNoYW5nZVRhYnM9ImdldENoYW5nZVRhYnMiCiAgICBnZXRUYWJzOiBmdW5jdGlvbiBnZXRUYWJzKCkgewogICAgICB2YXIgX3RoaXMxMCA9IHRoaXM7CiAgICAgIHRoaXMuc3BpblNob3cgPSB0cnVlOwogICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgnb3JkZXIvZ2V0T3JkZXJUYWJzJywgewogICAgICAgIGRhdGE6ICcnCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMTAudGFibGlzdHMgPSByZXMuZGF0YTsKICAgICAgICAvLyB0aGlzLm9uQ2hhbmdlQ2hhcnQodGhpcy50YWJsaXN0cykKICAgICAgICBfdGhpczEwLnNwaW5TaG93ID0gZmFsc2U7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczEwLnNwaW5TaG93ID0gZmFsc2U7CiAgICAgICAgX3RoaXMxMC4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgb25DbGlja1RhYjogZnVuY3Rpb24gb25DbGlja1RhYigpIHsKICAgICAgdGhpcy5nZXRPcmRlclN0YXR1cyh0aGlzLmN1cnJlbnRUYWIgPT0gJ251bGwnID8gJycgOiB0aGlzLmN1cnJlbnRUYWIpOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICAvLyDmibnph4/liKDpmaQKICAgIGRlbEFsbDogZnVuY3Rpb24gZGVsQWxsKCkgewogICAgICB2YXIgX3RoaXMxMSA9IHRoaXM7CiAgICAgIGlmICh0aGlzLmRlbElkTGlzdC5sZW5ndGggPT09IDApIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7flhYjpgInmi6nliKDpmaTnmoTorqLljZXvvIEnKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAodGhpcy5pc0RlbHMpIHsKICAgICAgICAgIHZhciBpZHNzID0gewogICAgICAgICAgICBpZHM6IHRoaXMuZGVsSWRMaXN0CiAgICAgICAgICB9OwogICAgICAgICAgdmFyIGRlbGZyb21EYXRhID0gewogICAgICAgICAgICB0aXRsZTogJ+WIoOmZpOiuouWNlScsCiAgICAgICAgICAgIHVybDogIi9vcmRlci9kZWxzIiwKICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsCiAgICAgICAgICAgIGlkczogaWRzcwogICAgICAgICAgfTsKICAgICAgICAgIHRoaXMuJG1vZGFsU3VyZShkZWxmcm9tRGF0YSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgIF90aGlzMTEuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICAgICAgX3RoaXMxMS5nZXRMaXN0KCk7CiAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgIF90aGlzMTEuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcign5oKo6YCJ5oup55qE55qE6K6i5Y2V5a2Y5Zyo55So5oi35pyq5Yig6Zmk55qE6K6i5Y2V77yM5peg5rOV5Yig6Zmk55So5oi35pyq5Yig6Zmk55qE6K6i5Y2V77yBJyk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLy8g5LiL6L295om56YeP5Y+R6LSn5qih54mICiAgICBleHBvcnREZWxpdmVyeUxpc3Q6IGZ1bmN0aW9uIGV4cG9ydERlbGl2ZXJ5TGlzdCgpIHsKICAgICAgdmFyIF90aGlzMTIgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTYoKSB7CiAgICAgICAgdmFyIHRoLCBmaWxla2V5LCBkYXRhLCBmaWxlTmFtZSwgZGVsaXZlcnlEYXRhLCBpLCBleHByZXNzRGF0YTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQ2KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDYubikgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgdGggPSBbXSwgZmlsZWtleSA9IFtdLCBkYXRhID0gW10sIGZpbGVOYW1lID0gJyc7CiAgICAgICAgICAgICAgZGVsaXZlcnlEYXRhID0gewogICAgICAgICAgICAgICAgcGFnZTogMSwKICAgICAgICAgICAgICAgIGxpbWl0OiAyMDAKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGkgPSAwOwogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgaWYgKCEoaSA8IGRlbGl2ZXJ5RGF0YS5wYWdlICsgMSkpIHsKICAgICAgICAgICAgICAgIF9jb250ZXh0Ni5uID0gNTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY29udGV4dDYubiA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIF90aGlzMTIuZ2V0RGVsaXZlcnlEYXRhKGRlbGl2ZXJ5RGF0YSk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBleHByZXNzRGF0YSA9IF9jb250ZXh0Ni52OwogICAgICAgICAgICAgIGlmICghZmlsZU5hbWUpIGZpbGVOYW1lID0gZXhwcmVzc0RhdGEuZmlsZW5hbWU7CiAgICAgICAgICAgICAgaWYgKCFmaWxla2V5Lmxlbmd0aCkgewogICAgICAgICAgICAgICAgZmlsZWtleSA9IGV4cHJlc3NEYXRhLmZpbGVLZXk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICghdGgubGVuZ3RoKSB0aCA9IGV4cHJlc3NEYXRhLmhlYWRlcjsKICAgICAgICAgICAgICBpZiAoIWV4cHJlc3NEYXRhLmV4cG9ydC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIF9jb250ZXh0Ni5uID0gMzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBkYXRhID0gZGF0YS5jb25jYXQoZXhwcmVzc0RhdGEuZXhwb3J0KTsKICAgICAgICAgICAgICBkZWxpdmVyeURhdGEucGFnZSsrOwogICAgICAgICAgICAgIF9jb250ZXh0Ni5uID0gNDsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF90aGlzMTIuJGV4cG9ydEV4Y2VsKHRoLCBmaWxla2V5LCBmaWxlTmFtZSwgZGF0YSk7CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ni5hKDIpOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICAgIF9jb250ZXh0Ni5uID0gMTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDYuYSgyKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNik7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIGdldERlbGl2ZXJ5RGF0YTogZnVuY3Rpb24gZ2V0RGVsaXZlcnlEYXRhKGRlbGl2ZXJ5RGF0YSkgewogICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGV4cG9ydE9yZGVyRGVsaXZlcnlMaXN0KGRlbGl2ZXJ5RGF0YSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICByZXNvbHZlKHJlcy5kYXRhKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5LiK5Lyg5aS06YOodG9rZW4KICAgIGdldFRva2VuOiBmdW5jdGlvbiBnZXRUb2tlbigpIHsKICAgICAgdGhpcy5oZWFkZXJbJ0F1dGhvcmktemF0aW9uJ10gPSAnQmVhcmVyICcgKyBnZXRDb29raWVzKCd0b2tlbicpOwogICAgfSwKICAgIHVwRXhwcmVzczogZnVuY3Rpb24gdXBFeHByZXNzKGRhdGEpIHsKICAgICAgdmFyIF90aGlzMTMgPSB0aGlzOwogICAgICBpbXBvcnRFeHByZXNzKHsKICAgICAgICBmaWxlOiBkYXRhLmRhdGEuc3JjCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMTMuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKICAgICAgICBfdGhpczEzLmdldExpc3QoKTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMTMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWvvOWHugogICAgZXhwb3J0TGlzdDogZnVuY3Rpb24gZXhwb3J0TGlzdCgpIHsKICAgICAgdmFyIF90aGlzMTQgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTcoKSB7CiAgICAgICAgdmFyIGV4Y2VsRGF0YSwgZGF0YSwgbGViRGF0YSwgaTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yKCkudyhmdW5jdGlvbiAoX2NvbnRleHQ3KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDcubikgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgZXhjZWxEYXRhID0gewogICAgICAgICAgICAgICAgcGFnZTogMSwKICAgICAgICAgICAgICAgIGxpbWl0OiAxMDAsCiAgICAgICAgICAgICAgICBzdGF0dXM6IF90aGlzMTQub3JkZXJTdGF0dXMsCiAgICAgICAgICAgICAgICBwYXlfdHlwZTogX3RoaXMxNC5vcmRlclBheVR5cGUsCiAgICAgICAgICAgICAgICBkYXRhOiBfdGhpczE0Lm9yZGVyVGltZSwKICAgICAgICAgICAgICAgIHJlYWxfbmFtZTogX3RoaXMxNC5yZWFsX25hbWUsCiAgICAgICAgICAgICAgICBmaWVsZF9rZXk6IF90aGlzMTQuZmllbGRLZXksCiAgICAgICAgICAgICAgICB0eXBlOiBfdGhpczE0Lm9yZGVyVHlwZSA9PT0gMCA/ICcnIDogX3RoaXMxNC5vcmRlclR5cGUsCiAgICAgICAgICAgICAgICBpZHM6IF90aGlzMTQuZGVsSWRMaXN0CiAgICAgICAgICAgICAgfSwgZGF0YSA9IFtdLCBsZWJEYXRhID0ge307CiAgICAgICAgICAgICAgaSA9IDE7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICBpZiAoIShpIDwgZXhjZWxEYXRhLnBhZ2UgKyAxKSkgewogICAgICAgICAgICAgICAgX2NvbnRleHQ3Lm4gPSA0OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb250ZXh0Ny5uID0gMjsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXMxNC5nZXRFeGNlbERhdGEoZXhjZWxEYXRhKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIGxlYkRhdGEgPSBfY29udGV4dDcudjsKICAgICAgICAgICAgICBpZiAobGViRGF0YS5leHBvcnQubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBkYXRhID0gZGF0YS5jb25jYXQobGViRGF0YS5leHBvcnQpOwogICAgICAgICAgICAgICAgaWYgKGxlYkRhdGEuZXhwb3J0Lmxlbmd0aCA9PSBleGNlbERhdGEubGltaXQpIGV4Y2VsRGF0YS5wYWdlKys7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICAgIF9jb250ZXh0Ny5uID0gMTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIGNyZWF0ZVdvcmtCb29rKGxlYkRhdGEuaGVhZGVyLCBsZWJEYXRhLmZpbGVuYW1lLCBkYXRhLCAnJywgbGViRGF0YS5maWxlbmFtZSk7CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ3LmEoMik7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTcpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBnZXRFeGNlbERhdGE6IGZ1bmN0aW9uIGdldEV4Y2VsRGF0YShleGNlbERhdGEpIHsKICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICBleHBvcnRPcmRlckxpc3QoZXhjZWxEYXRhKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIHJlc29sdmUocmVzLmRhdGEpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDorqLljZXmoLjplIAKICAgIHdyaXRlT2ZmOiBmdW5jdGlvbiB3cml0ZU9mZigpIHsKICAgICAgdGhpcy5tb2RhbHMyID0gdHJ1ZTsKICAgIH0sCiAgICAvLyDorqLljZXmoLjplIAKICAgIG9rOiBmdW5jdGlvbiBvayhuYW1lKSB7CiAgICAgIHZhciBfdGhpczE1ID0gdGhpczsKICAgICAgaWYgKCF0aGlzLndyaXRlT2ZmRnJvbS5jb2RlKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfor7flhYjpqozor4HorqLljZXvvIEnKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLndyaXRlT2ZmRnJvbS5jb25maXJtID0gMTsKICAgICAgICBwdXRXcml0ZSh0aGlzLndyaXRlT2ZmRnJvbSkudGhlbigvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIF9yZWY2ID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvcigpLm0oZnVuY3Rpb24gX2NhbGxlZTgocmVzKSB7CiAgICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dDgpIHsKICAgICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDgubikgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICAgICAgX3RoaXMxNS4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwogICAgICAgICAgICAgICAgICAgIF90aGlzMTUubW9kYWxzMiA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIF90aGlzMTUuJHJlZnNbbmFtZV0ucmVzZXRGaWVsZHMoKTsKICAgICAgICAgICAgICAgICAgICBfdGhpczE1LmdldExpc3QoKTsKICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBfdGhpczE1LiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDguYSgyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIF9jYWxsZWU4KTsKICAgICAgICAgIH0pKTsKICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3g2KSB7CiAgICAgICAgICAgIHJldHVybiBfcmVmNi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgICAgfTsKICAgICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzMTUuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICBkZWw6IGZ1bmN0aW9uIGRlbChuYW1lKSB7CiAgICAgIHRoaXMubW9kYWxzMiA9IGZhbHNlOwogICAgICB0aGlzLndyaXRlT2ZmRnJvbS5jb2RlID0gJyc7CiAgICAgIHRoaXMuJHJlZnNbbmFtZV0ucmVzZXRGaWVsZHMoKTsKICAgIH0sCiAgICBjaGFuZ2VNb2RhbDogZnVuY3Rpb24gY2hhbmdlTW9kYWwoKSB7CiAgICAgIHRoaXMud3JpdGVPZmZGcm9tLmNvZGUgPSAnJzsKICAgIH0KICB9KQp9Ow=="},null]}