{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\commandDispatch\\RoadNetworkReport\\components\\TablePage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\commandDispatch\\RoadNetworkReport\\components\\TablePage\\index.vue","mtime":1755547700473},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\babel.config.js","mtime":1741314102158},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5yZWR1Y2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5qc29uLnN0cmluZ2lmeS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnOwppbXBvcnQgU2VhcmNoQ29tbW9uIGZyb20gJ0AvY29tcG9uZW50cy9TZWFyY2hDb21tb24vaW5kZXgudnVlJzsgLy8g5byV5YWl5pCc57Si57uE5Lu2CmltcG9ydCBQdWJTdWIgZnJvbSAncHVic3ViLWpzJzsgLy8g5byV5YWl5LqL5Lu25Y+R5biDLeiuoumYheW6kwppbXBvcnQgeyBUYWJsZU1peGluIH0gZnJvbSAnQC9taXhpbnMvdGFibGVNaXhpbic7IC8vIOW8leWFpeihqOagvOa3t+WFpQppbXBvcnQgeyByZWZpbmVSZXF1ZXN0Qm9keSB9IGZyb20gJ0AvdXRpbHMvcmVxdWVzdFdyYXBwZXJzJzsgLy8g5byV5YWl6K+35rGC5aSE55CG5bel5YW35Ye95pWwCmltcG9ydCB7IGRpY3Rpb25hcnlFc2NhcGUgfSBmcm9tICdAL3V0aWxzL2RpY3Rpb25hcnknOyAvLyDlvJXlhaXlrZflhbjlpITnkIblt6Xlhbflh73mlbAKaW1wb3J0IGxlZnRMc2l0IGZyb20gJy4uL0xlZnRMaXN0JzsgLy8g5byV5YWl5bem5L6n5YiX6KGo57uE5Lu2CmltcG9ydCB7IGNsYXNzaWZ5RGF0YUluSnMgfSBmcm9tICcuLi8uLi9jbGFzc2lmeURhdGEnOyAvLyDlvJXlhaXliIbnsbvmlbDmja7lkozooajmoLzliJfphY3nva4KaW1wb3J0IHsgZXhwb3J0RGF5UmVwb3J0LCBleHBvcnRNb250aFJlcG9ydCwgZ2V0VHJlZSwgdGhlUm9hZE5ldHdvcmtJc09wZXJhdGluZ0RheSwgdGhlUm9hZE5ldHdvcmtJc09wZXJhdGluZ01vbnRoIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2NvbW1hbmREaXNwYXRjaC9yb2FkTmV0d29ya1JlcG9ydCc7CmltcG9ydCBwYWdpbmF0aW9uIGZyb20gJ0AvY29tcG9uZW50cy9TdXBlclBhZ2luYXRpb24vaW5kZXgudnVlJzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdUYWJsZVBhZ2UnLAogIGNvbXBvbmVudHM6IHsKICAgIHBhZ2luYXRpb246IHBhZ2luYXRpb24sCiAgICBTZWFyY2hDb21tb246IFNlYXJjaENvbW1vbiwKICAgIGxlZnRMc2l0OiBsZWZ0THNpdAogIH0sCiAgbWl4aW5zOiBbVGFibGVNaXhpbl0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHRpbWVWYWx1ZTogW10sCiAgICAgIHR5cGVTaG93OiAnMScsCiAgICAgIGRvd25sb2FkTG9hZGluZzogZmFsc2UsCiAgICAgIHB1YlN1YjogbnVsbCwKICAgICAgdGFibGVNYXhIZWlnaHQ6ICc2MDBweCcsCiAgICAgIHRhYmxlTG9hZGluZzogdHJ1ZSwKICAgICAgYnRuTG9hZGluZzogZmFsc2UsCiAgICAgIHRhYmxlRGF0YTogW10sCiAgICAgIG9wdGlvbkxpc3Q6IFt7CiAgICAgICAgdGl0bGU6ICfmiYDlsZ7ot6/mrrUnLAogICAgICAgIHByb3A6ICdlaS5yb2FkX2lkXycsCiAgICAgICAgdHlwZTogJ3NlbGVjdCcsCiAgICAgICAgb3B0aW9uOiBbXSwKICAgICAgICBkZWZhdWx0OiB0cnVlCiAgICAgIH1dLAogICAgICBwYXJhbXM6IHsKICAgICAgICBwYWdlQmVhbjogewogICAgICAgICAgcGFnZVNpemU6IDIwLAogICAgICAgICAgcGFnZTogMSwKICAgICAgICAgIHRvdGFsOiAwCiAgICAgICAgfSwKICAgICAgICBxdWVyeXM6IFt7CiAgICAgICAgICBvcGVyYXRpb246ICdCRVRXRUVOJywKICAgICAgICAgIHByb3BlcnR5OiAnZWkuZXZlbnRfdGltZV8nLAogICAgICAgICAgdmFsdWU6IFtdCiAgICAgICAgfSwgewogICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgcHJvcGVydHk6ICdlaS5yb2FkX2lkXycKICAgICAgICB9XSwKICAgICAgICBzb3J0ZXI6IFtdCiAgICAgIH0sCiAgICAgIHN0YXRzQ2xhc3NpZnk6IFtdLAogICAgICB0YWJsZUNvbHVtbjogW10sCiAgICAgIGFnZ3JlZ2F0ZToge30KICAgIH07CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgdmFyIF90aGlzJCRyZWZzJGNsYXNzaWZ5TDsKICAgICAgdmFyIHN0YXJ0T2ZNb250aCA9IG1vbWVudCgpLnN0YXJ0T2YoJ21vbnRoJykuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyk7CiAgICAgIHZhciBlbmRPZk1vbnRoID0gbW9tZW50KCkuZW5kT2YoJ21vbnRoJykuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyk7CiAgICAgIF90aGlzLnBhcmFtcy5xdWVyeXNbMF0udmFsdWUgPSBbc3RhcnRPZk1vbnRoLCBlbmRPZk1vbnRoXTsKICAgICAgX3RoaXMuZ2V0T3JnVHJlZURhdGEoKTsKICAgICAgX3RoaXMuc3RhdHNDbGFzc2lmeSA9IGNsYXNzaWZ5RGF0YUluSnMoKTsgLy8g5Yid5aeL5YyW5YiG57G75pWw5o2uCiAgICAgIF90aGlzLnR5cGVTaG93ID0gX3RoaXMuc3RhdHNDbGFzc2lmeVswXS50eXBlOwogICAgICAoX3RoaXMkJHJlZnMkY2xhc3NpZnlMID0gX3RoaXMuJHJlZnMuY2xhc3NpZnlMaXN0KSA9PT0gbnVsbCB8fCBfdGhpcyQkcmVmcyRjbGFzc2lmeUwgPT09IHZvaWQgMCB8fCBfdGhpcyQkcmVmcyRjbGFzc2lmeUwuY2xhc3NpZnlDaGFuZ2UoX3RoaXMuc3RhdHNDbGFzc2lmeVswXSk7IC8vIOinpuWPkeWIhuexu+WPmOabtOS6i+S7tgogICAgfSk7CiAgfSwKICAvLyDnu4Tku7bmjILovb3ml7bnmoTpkqnlrZDlh73mlbAKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICB0aGlzLnB1YlN1YiA9IFB1YlN1Yi5zdWJzY3JpYmUoJ1RhYmxlUGFnZScsIGZ1bmN0aW9uIChfLCBkYXRhKSB7CiAgICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7CiAgICAgICAgY2FzZSAnYWRkJzoKICAgICAgICAgIF90aGlzMi5oYW5kbGVDdXJyZW50Q2hhbmdlKDEpOyAvLyDmt7vliqDmlbDmja7lkI7liLfmlrDnrKzkuIDpobUKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2VkaXQnOgogICAgICAgICAgX3RoaXMyLmxvYWREYXRhKCk7IC8vIOe8lui+keaVsOaNruWQjuWIt+aWsOihqOagvAogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0pOwogIH0sCiAgLy8g57uE5Lu25pu05paw5YmN55qE6ZKp5a2Q5Ye95pWwCiAgYmVmb3JlVXBkYXRlOiBmdW5jdGlvbiBiZWZvcmVVcGRhdGUoKSB7CiAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgX3RoaXMzLiRyZWZzWydtdWx0aXBsZVNlbGVjdGlvbiddLmRvTGF5b3V0KCk7CiAgICB9KTsKICB9LAogIG1ldGhvZHM6IHsKICAgIC8v5a2X5YW4CiAgICBkaWN0aW9uYXJ5RXNjYXBlOiBkaWN0aW9uYXJ5RXNjYXBlLAogICAgZXhwb3J0RGF0YTogZnVuY3Rpb24gZXhwb3J0RGF0YSgpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfdGhpczQuZG93bmxvYWRMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMTsKICAgICAgICAgICAgICBpZiAoIShfdGhpczQudHlwZVNob3cgPT09ICd0aGVSb2FkTmV0d29ya0lzT3BlcmF0aW5nRGF5JykpIHsKICAgICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA3OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA1OwogICAgICAgICAgICAgIHJldHVybiBleHBvcnREYXlSZXBvcnQoX3RoaXM0LnBhcmFtcyk7CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gOTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA5OwogICAgICAgICAgICAgIHJldHVybiBleHBvcnRNb250aFJlcG9ydChfdGhpczQucGFyYW1zKTsKICAgICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICAgIF90aGlzNC4kbWVzc2FnZS5zdWNjZXNzKCJcdTY1NzBcdTYzNkVcdTVCRkNcdTUxRkFcdTYyMTBcdTUyOUYiKTsKICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMTA7CiAgICAgICAgICAgICAgX3RoaXM0LmRvd25sb2FkTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5maW5pc2goMTApOwogICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZSwgbnVsbCwgW1sxLCwgMTAsIDEzXV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDojrflj5bot6/mrrUKICAgIGdldE9yZ1RyZWVEYXRhOiBmdW5jdGlvbiBnZXRPcmdUcmVlRGF0YSgpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIF95aWVsZCRnZXRUcmVlLCB2YWx1ZSwgYXJyYXk7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gZ2V0VHJlZSgpOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX3lpZWxkJGdldFRyZWUgPSBfY29udGV4dDIuc2VudDsKICAgICAgICAgICAgICB2YWx1ZSA9IF95aWVsZCRnZXRUcmVlLnZhbHVlOwogICAgICAgICAgICAgIGFycmF5ID0gdmFsdWUucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGl0ZW0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBhY2MuY29uY2F0KGl0ZW0ucm9hZExpc3QpOwogICAgICAgICAgICAgIH0sIFtdKTsKICAgICAgICAgICAgICBfdGhpczUub3B0aW9uTGlzdFswXS5vcHRpb24gPSBhcnJheS5tYXAoZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gX29iamVjdFNwcmVhZCh7CiAgICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLmlkCiAgICAgICAgICAgICAgICB9LCBpdGVtKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgdGltZUNoYW5nZTogZnVuY3Rpb24gdGltZUNoYW5nZSgpIHsKICAgICAgdGhpcy5sb2FkRGF0YSgpOwogICAgfSwKICAgIC8vIOWIhuexu+WPmOabtOWkhOeQhuaWueazlQogICAgY2xhc3NpZnlDaGFuZ2U6IGZ1bmN0aW9uIGNsYXNzaWZ5Q2hhbmdlKGl0ZW0pIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHRoaXMucGFyYW1zLnBhZ2VCZWFuLnBhZ2UgPSAxOwogICAgICB0aGlzLnBhcmFtcy5wYWdlQmVhbi5wYWdlU2l6ZSA9IDIwOwogICAgICB0aGlzLnBhcmFtcy5wYWdlQmVhbi50b3RhbCA9IDA7CiAgICAgIHRoaXMudHlwZVNob3cgPSBpdGVtLnR5cGU7CiAgICAgIHRoaXMubG9hZERhdGEoKTsKICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNi4kcmVmc1snbXVsdGlwbGVTZWxlY3Rpb24nXS5kb0xheW91dCgpOwogICAgICB9KTsKICAgIH0sCiAgICBjaGVja1Jvd0luZGV4OiBmdW5jdGlvbiBjaGVja1Jvd0luZGV4KF9yZWYpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHZhciByb3cgPSBfcmVmLnJvdywKICAgICAgICByb3dJbmRleCA9IF9yZWYucm93SW5kZXg7CiAgICAgIC8vIOebkeWQrOihjOe0ouW8le+8jOaJi+WKqOWkhOeQhuWQiOW5tgogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2ZpeFJvd0luZGV4VGFibGUnKTsKICAgICAgICBpZiAodGFibGUgJiYgcm93SW5kZXggPT09IF90aGlzNy50YWJsZURhdGEubGVuZ3RoIC0gMSkgewogICAgICAgICAgdmFyIGxhc3RSb3cgPSB0YWJsZS5xdWVyeVNlbGVjdG9yKCcuZWwtdGFibGVfX2Zvb3Rlci13cmFwcGVyIHRyJyk7CiAgICAgICAgICBpZiAobGFzdFJvdykgewogICAgICAgICAgICBsYXN0Um93LmNlbGxzWzBdLmNvbFNwYW4gPSAzOwogICAgICAgICAgICBsYXN0Um93LmNlbGxzWzFdLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgIGxhc3RSb3cuY2VsbHNbMl0uc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGdldFN1bW1hcmllczogZnVuY3Rpb24gZ2V0U3VtbWFyaWVzKHBhcmFtKSB7CiAgICAgIGlmICh0aGlzLmFnZ3JlZ2F0ZSAmJiBKU09OLnN0cmluZ2lmeSh0aGlzLmFnZ3JlZ2F0ZSkgIT09ICd7fScpIHsKICAgICAgICB2YXIgX3RoaXMkYWdncmVnYXRlID0gdGhpcy5hZ2dyZWdhdGUsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkb3V0VHUgPSBfdGhpcyRhZ2dyZWdhdGUub3V0VHVubmVsTnVtLAogICAgICAgICAgb3V0VHVubmVsTnVtID0gX3RoaXMkYWdncmVnYXRlJG91dFR1ID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkb3V0VHUsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkb3V0VHUyID0gX3RoaXMkYWdncmVnYXRlLm91dFR1bm5lbEhhbmRUaW1lLAogICAgICAgICAgb3V0VHVubmVsSGFuZFRpbWUgPSBfdGhpcyRhZ2dyZWdhdGUkb3V0VHUyID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkb3V0VHUyLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJGluVHVuID0gX3RoaXMkYWdncmVnYXRlLmluVHVubmVsTnVtLAogICAgICAgICAgaW5UdW5uZWxOdW0gPSBfdGhpcyRhZ2dyZWdhdGUkaW5UdW4gPT09IHZvaWQgMCA/ICctJyA6IF90aGlzJGFnZ3JlZ2F0ZSRpblR1biwKICAgICAgICAgIF90aGlzJGFnZ3JlZ2F0ZSRpblR1bjIgPSBfdGhpcyRhZ2dyZWdhdGUuaW5UdW5uZWxIYW5kVGltZSwKICAgICAgICAgIGluVHVubmVsSGFuZFRpbWUgPSBfdGhpcyRhZ2dyZWdhdGUkaW5UdW4yID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkaW5UdW4yLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJHRmQ3JrID0gX3RoaXMkYWdncmVnYXRlLnRmQ3JrZmJOdW0sCiAgICAgICAgICB0ZkNya2ZiTnVtID0gX3RoaXMkYWdncmVnYXRlJHRmQ3JrID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkdGZDcmssCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkamh4Q3IgPSBfdGhpcyRhZ2dyZWdhdGUuamh4Q3JrZmJOdW0sCiAgICAgICAgICBqaHhDcmtmYk51bSA9IF90aGlzJGFnZ3JlZ2F0ZSRqaHhDciA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJGpoeENyLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJHNtb290ID0gX3RoaXMkYWdncmVnYXRlLnNtb290aFJhdGUsCiAgICAgICAgICBzbW9vdGhSYXRlID0gX3RoaXMkYWdncmVnYXRlJHNtb290ID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkc21vb3QsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkbWVhc3UgPSBfdGhpcyRhZ2dyZWdhdGUubWVhc3VyZU1pbGVhZ2UsCiAgICAgICAgICBtZWFzdXJlTWlsZWFnZSA9IF90aGlzJGFnZ3JlZ2F0ZSRtZWFzdSA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJG1lYXN1LAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJGZvZ051ID0gX3RoaXMkYWdncmVnYXRlLmZvZ051bSwKICAgICAgICAgIGZvZ051bSA9IF90aGlzJGFnZ3JlZ2F0ZSRmb2dOdSA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJGZvZ051LAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJHJhaW5OID0gX3RoaXMkYWdncmVnYXRlLnJhaW5OdW0sCiAgICAgICAgICByYWluTnVtID0gX3RoaXMkYWdncmVnYXRlJHJhaW5OID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkcmFpbk4sCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkc25vd04gPSBfdGhpcyRhZ2dyZWdhdGUuc25vd051bSwKICAgICAgICAgIHNub3dOdW0gPSBfdGhpcyRhZ2dyZWdhdGUkc25vd04gPT09IHZvaWQgMCA/ICctJyA6IF90aGlzJGFnZ3JlZ2F0ZSRzbm93TiwKICAgICAgICAgIF90aGlzJGFnZ3JlZ2F0ZSRpY2luZyA9IF90aGlzJGFnZ3JlZ2F0ZS5pY2luZ051bSwKICAgICAgICAgIGljaW5nTnVtID0gX3RoaXMkYWdncmVnYXRlJGljaW5nID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkaWNpbmcsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkb3RSb2EgPSBfdGhpcyRhZ2dyZWdhdGUub3RSb2FkTnVtLAogICAgICAgICAgb3RSb2FkTnVtID0gX3RoaXMkYWdncmVnYXRlJG90Um9hID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkb3RSb2EsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkdHJhZmYgPSBfdGhpcyRhZ2dyZWdhdGUudHJhZmZpY051bSwKICAgICAgICAgIHRyYWZmaWNOdW0gPSBfdGhpcyRhZ2dyZWdhdGUkdHJhZmYgPT09IHZvaWQgMCA/ICctJyA6IF90aGlzJGFnZ3JlZ2F0ZSR0cmFmZiwKICAgICAgICAgIF90aGlzJGFnZ3JlZ2F0ZSRhZGRyZSA9IF90aGlzJGFnZ3JlZ2F0ZS5hZGRyZXNzRGlzYXN0ZXJOdW0sCiAgICAgICAgICBhZGRyZXNzRGlzYXN0ZXJOdW0gPSBfdGhpcyRhZ2dyZWdhdGUkYWRkcmUgPT09IHZvaWQgMCA/ICctJyA6IF90aGlzJGFnZ3JlZ2F0ZSRhZGRyZSwKICAgICAgICAgIF90aGlzJGFnZ3JlZ2F0ZSRwb3dlciA9IF90aGlzJGFnZ3JlZ2F0ZS5wb3dlck51bSwKICAgICAgICAgIHBvd2VyTnVtID0gX3RoaXMkYWdncmVnYXRlJHBvd2VyID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkcG93ZXIsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkdGZPdGggPSBfdGhpcyRhZ2dyZWdhdGUudGZPdGhlck51bSwKICAgICAgICAgIHRmT3RoZXJOdW0gPSBfdGhpcyRhZ2dyZWdhdGUkdGZPdGggPT09IHZvaWQgMCA/ICctJyA6IF90aGlzJGFnZ3JlZ2F0ZSR0Zk90aCwKICAgICAgICAgIF90aGlzJGFnZ3JlZ2F0ZSR0ZlpkTiA9IF90aGlzJGFnZ3JlZ2F0ZS50ZlpkTnVtLAogICAgICAgICAgdGZaZE51bSA9IF90aGlzJGFnZ3JlZ2F0ZSR0ZlpkTiA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJHRmWmROLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJHRmRGRzID0gX3RoaXMkYWdncmVnYXRlLnRmRGRzdE51bSwKICAgICAgICAgIHRmRGRzdE51bSA9IF90aGlzJGFnZ3JlZ2F0ZSR0ZkRkcyA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJHRmRGRzLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJHRmQmZmID0gX3RoaXMkYWdncmVnYXRlLnRmQmZmYk51bSwKICAgICAgICAgIHRmQmZmYk51bSA9IF90aGlzJGFnZ3JlZ2F0ZSR0ZkJmZiA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJHRmQmZmLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJHRmUWZmID0gX3RoaXMkYWdncmVnYXRlLnRmUWZmYk51bSwKICAgICAgICAgIHRmUWZmYk51bSA9IF90aGlzJGFnZ3JlZ2F0ZSR0ZlFmZiA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJHRmUWZmLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJHRmUmtmID0gX3RoaXMkYWdncmVnYXRlLnRmUmtmYk51bSwKICAgICAgICAgIHRmUmtmYk51bSA9IF90aGlzJGFnZ3JlZ2F0ZSR0ZlJrZiA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJHRmUmtmLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJHRmUmtjID0gX3RoaXMkYWdncmVnYXRlLnRmUmtjZGZiTnVtLAogICAgICAgICAgdGZSa2NkZmJOdW0gPSBfdGhpcyRhZ2dyZWdhdGUkdGZSa2MgPT09IHZvaWQgMCA/ICctJyA6IF90aGlzJGFnZ3JlZ2F0ZSR0ZlJrYywKICAgICAgICAgIF90aGlzJGFnZ3JlZ2F0ZSR0ZlJrYzIgPSBfdGhpcyRhZ2dyZWdhdGUudGZSa2NkeGxOdW0sCiAgICAgICAgICB0ZlJrY2R4bE51bSA9IF90aGlzJGFnZ3JlZ2F0ZSR0ZlJrYzIgPT09IHZvaWQgMCA/ICctJyA6IF90aGlzJGFnZ3JlZ2F0ZSR0ZlJrYzIsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkdGZDa2YgPSBfdGhpcyRhZ2dyZWdhdGUudGZDa2ZiTnVtLAogICAgICAgICAgdGZDa2ZiTnVtID0gX3RoaXMkYWdncmVnYXRlJHRmQ2tmID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkdGZDa2YsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkdGZDa2MgPSBfdGhpcyRhZ2dyZWdhdGUudGZDa2NkZmJOdW0sCiAgICAgICAgICB0ZkNrY2RmYk51bSA9IF90aGlzJGFnZ3JlZ2F0ZSR0ZkNrYyA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJHRmQ2tjLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJHRmQ2tjMiA9IF90aGlzJGFnZ3JlZ2F0ZS50ZkNrY2R4bE51bSwKICAgICAgICAgIHRmQ2tjZHhsTnVtID0gX3RoaXMkYWdncmVnYXRlJHRmQ2tjMiA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJHRmQ2tjMiwKICAgICAgICAgIF90aGlzJGFnZ3JlZ2F0ZSRkdXR5QyA9IF90aGlzJGFnZ3JlZ2F0ZS5kdXR5Q29udHJvbE51bSwKICAgICAgICAgIGR1dHlDb250cm9sTnVtID0gX3RoaXMkYWdncmVnYXRlJGR1dHlDID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkZHV0eUMsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkY29uc3QgPSBfdGhpcyRhZ2dyZWdhdGUuY29uc3RydWN0aW9uTnVtLAogICAgICAgICAgY29uc3RydWN0aW9uTnVtID0gX3RoaXMkYWdncmVnYXRlJGNvbnN0ID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkY29uc3QsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkamh4T3QgPSBfdGhpcyRhZ2dyZWdhdGUuamh4T3RoZXJOdW0sCiAgICAgICAgICBqaHhPdGhlck51bSA9IF90aGlzJGFnZ3JlZ2F0ZSRqaHhPdCA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJGpoeE90LAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJGpoeFpkID0gX3RoaXMkYWdncmVnYXRlLmpoeFpkTnVtLAogICAgICAgICAgamh4WmROdW0gPSBfdGhpcyRhZ2dyZWdhdGUkamh4WmQgPT09IHZvaWQgMCA/ICctJyA6IF90aGlzJGFnZ3JlZ2F0ZSRqaHhaZCwKICAgICAgICAgIF90aGlzJGFnZ3JlZ2F0ZSRqaHhEZCA9IF90aGlzJGFnZ3JlZ2F0ZS5qaHhEZHN0TnVtLAogICAgICAgICAgamh4RGRzdE51bSA9IF90aGlzJGFnZ3JlZ2F0ZSRqaHhEZCA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJGpoeERkLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJGpoeEJmID0gX3RoaXMkYWdncmVnYXRlLmpoeEJmZmJOdW0sCiAgICAgICAgICBqaHhCZmZiTnVtID0gX3RoaXMkYWdncmVnYXRlJGpoeEJmID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkamh4QmYsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkamh4UWYgPSBfdGhpcyRhZ2dyZWdhdGUuamh4UWZmYk51bSwKICAgICAgICAgIGpoeFFmZmJOdW0gPSBfdGhpcyRhZ2dyZWdhdGUkamh4UWYgPT09IHZvaWQgMCA/ICctJyA6IF90aGlzJGFnZ3JlZ2F0ZSRqaHhRZiwKICAgICAgICAgIF90aGlzJGFnZ3JlZ2F0ZSRqaHhSayA9IF90aGlzJGFnZ3JlZ2F0ZS5qaHhSa2ZiTnVtLAogICAgICAgICAgamh4UmtmYk51bSA9IF90aGlzJGFnZ3JlZ2F0ZSRqaHhSayA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJGpoeFJrLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJGpoeFJrMiA9IF90aGlzJGFnZ3JlZ2F0ZS5qaHhSa2NkZmJOdW0sCiAgICAgICAgICBqaHhSa2NkZmJOdW0gPSBfdGhpcyRhZ2dyZWdhdGUkamh4UmsyID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkamh4UmsyLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJGpoeFJrMyA9IF90aGlzJGFnZ3JlZ2F0ZS5qaHhSa2NkeGxOdW0sCiAgICAgICAgICBqaHhSa2NkeGxOdW0gPSBfdGhpcyRhZ2dyZWdhdGUkamh4UmszID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkamh4UmszLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJGpoeENrID0gX3RoaXMkYWdncmVnYXRlLmpoeENrZmJOdW0sCiAgICAgICAgICBqaHhDa2ZiTnVtID0gX3RoaXMkYWdncmVnYXRlJGpoeENrID09PSB2b2lkIDAgPyAnLScgOiBfdGhpcyRhZ2dyZWdhdGUkamh4Q2ssCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkamh4Q2syID0gX3RoaXMkYWdncmVnYXRlLmpoeENrY2RmYk51bSwKICAgICAgICAgIGpoeENrY2RmYk51bSA9IF90aGlzJGFnZ3JlZ2F0ZSRqaHhDazIgPT09IHZvaWQgMCA/ICctJyA6IF90aGlzJGFnZ3JlZ2F0ZSRqaHhDazIsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkamh4Q2szID0gX3RoaXMkYWdncmVnYXRlLmpoeENrY2R4bE51bSwKICAgICAgICAgIGpoeENrY2R4bE51bSA9IF90aGlzJGFnZ3JlZ2F0ZSRqaHhDazMgPT09IHZvaWQgMCA/ICctJyA6IF90aGlzJGFnZ3JlZ2F0ZSRqaHhDazMsCiAgICAgICAgICBfdGhpcyRhZ2dyZWdhdGUkaHVydFUgPSBfdGhpcyRhZ2dyZWdhdGUuaHVydFVzZXJOdW0sCiAgICAgICAgICBodXJ0VXNlck51bSA9IF90aGlzJGFnZ3JlZ2F0ZSRodXJ0VSA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJGh1cnRVLAogICAgICAgICAgX3RoaXMkYWdncmVnYXRlJGRlYWRVID0gX3RoaXMkYWdncmVnYXRlLmRlYWRVc2VyTnVtLAogICAgICAgICAgZGVhZFVzZXJOdW0gPSBfdGhpcyRhZ2dyZWdhdGUkZGVhZFUgPT09IHZvaWQgMCA/ICctJyA6IF90aGlzJGFnZ3JlZ2F0ZSRkZWFkVSwKICAgICAgICAgIF90aGlzJGFnZ3JlZ2F0ZSRtZWFzdTIgPSBfdGhpcyRhZ2dyZWdhdGUubWVhc3VyZVF6LAogICAgICAgICAgbWVhc3VyZVF6ID0gX3RoaXMkYWdncmVnYXRlJG1lYXN1MiA9PT0gdm9pZCAwID8gJy0nIDogX3RoaXMkYWdncmVnYXRlJG1lYXN1MjsKICAgICAgICByZXR1cm4gWyflkIjorqEnLCAnJywgJycsIG1lYXN1cmVNaWxlYWdlLCAnLScsIGZvZ051bSwgcmFpbk51bSwgc25vd051bSwgaWNpbmdOdW0sIG91dFR1bm5lbE51bSwgb3V0VHVubmVsSGFuZFRpbWUsIGluVHVubmVsTnVtLCBpblR1bm5lbEhhbmRUaW1lLCBvdFJvYWROdW0sIHRyYWZmaWNOdW0sIGFkZHJlc3NEaXNhc3Rlck51bSwgcG93ZXJOdW0sIHRmT3RoZXJOdW0sIHRmWmROdW0sIHRmRGRzdE51bSwgdGZCZmZiTnVtLCB0ZlFmZmJOdW0sIHRmUmtmYk51bSwgdGZSa2NkZmJOdW0sIHRmUmtjZHhsTnVtLCB0ZkNrZmJOdW0sIHRmQ2tjZGZiTnVtLCB0ZkNrY2R4bE51bSwgdGZDcmtmYk51bSwgZHV0eUNvbnRyb2xOdW0sIGNvbnN0cnVjdGlvbk51bSwgamh4T3RoZXJOdW0sIGpoeFpkTnVtLCBqaHhEZHN0TnVtLCBqaHhCZmZiTnVtLCBqaHhRZmZiTnVtLCBqaHhSa2ZiTnVtLCBqaHhSa2NkZmJOdW0sIGpoeFJrY2R4bE51bSwgamh4Q2tmYk51bSwgamh4Q2tjZGZiTnVtLCBqaHhDa2NkeGxOdW0sIGpoeENya2ZiTnVtLCBtZWFzdXJlUXosIHNtb290aFJhdGUsIGh1cnRVc2VyTnVtLCBkZWFkVXNlck51bV07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9CiAgICB9LAogICAgLy/ojrflj5bmlbDmja4KICAgIGxvYWREYXRhOiBmdW5jdGlvbiBsb2FkRGF0YSgpIHsKICAgICAgdmFyIF90aGlzOCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTMoKSB7CiAgICAgICAgdmFyIF95aWVsZCR0aGVSb2FkTmV0d29yaywgX3lpZWxkJHRoZVJvYWROZXR3b3JrMiwgcm93cywgdG90YWwsIHBhZ2VTaXplLCBfeWllbGQkdGhlUm9hZE5ldHdvcmszLCBfeWllbGQkdGhlUm9hZE5ldHdvcms0LCB2YWx1ZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMkKF9jb250ZXh0MykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQzLnByZXYgPSBfY29udGV4dDMubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX3RoaXM4LnRhYmxlRGF0YSA9IFtdOwogICAgICAgICAgICAgIF9jb250ZXh0My5wcmV2ID0gMTsKICAgICAgICAgICAgICBfdGhpczgudGFibGVMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICBpZiAoIShfdGhpczgudHlwZVNob3cgPT09ICd0aGVSb2FkTmV0d29ya0lzT3BlcmF0aW5nRGF5JykpIHsKICAgICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMTY7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSA2OwogICAgICAgICAgICAgIHJldHVybiB0aGVSb2FkTmV0d29ya0lzT3BlcmF0aW5nRGF5KHJlZmluZVJlcXVlc3RCb2R5KF90aGlzOC5wYXJhbXMpKTsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgIF95aWVsZCR0aGVSb2FkTmV0d29yayA9IF9jb250ZXh0My5zZW50OwogICAgICAgICAgICAgIF95aWVsZCR0aGVSb2FkTmV0d29yazIgPSBfeWllbGQkdGhlUm9hZE5ldHdvcmsucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHRoZVJvYWROZXR3b3JrMiA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkdGhlUm9hZE5ldHdvcmsyOwogICAgICAgICAgICAgIHRvdGFsID0gX3lpZWxkJHRoZVJvYWROZXR3b3JrLnRvdGFsOwogICAgICAgICAgICAgIHBhZ2VTaXplID0gX3lpZWxkJHRoZVJvYWROZXR3b3JrLnBhZ2VTaXplOwogICAgICAgICAgICAgIF90aGlzOC5wYXJhbXMucGFnZUJlYW4udG90YWwgPSB0b3RhbDsKICAgICAgICAgICAgICBfdGhpczgucGFyYW1zLnBhZ2VCZWFuLnBhZ2VTaXplID0gcGFnZVNpemU7CiAgICAgICAgICAgICAgX3RoaXM4LnRhYmxlRGF0YSA9IHJvd3M7CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSAyNTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDE4OwogICAgICAgICAgICAgIHJldHVybiB0aGVSb2FkTmV0d29ya0lzT3BlcmF0aW5nTW9udGgocmVmaW5lUmVxdWVzdEJvZHkoX3RoaXM4LnBhcmFtcykpOwogICAgICAgICAgICBjYXNlIDE4OgogICAgICAgICAgICAgIF95aWVsZCR0aGVSb2FkTmV0d29yazMgPSBfY29udGV4dDMuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkdGhlUm9hZE5ldHdvcms0ID0gX3lpZWxkJHRoZVJvYWROZXR3b3JrMy52YWx1ZTsKICAgICAgICAgICAgICB2YWx1ZSA9IF95aWVsZCR0aGVSb2FkTmV0d29yazQgPT09IHZvaWQgMCA/IHt9IDogX3lpZWxkJHRoZVJvYWROZXR3b3JrNDsKICAgICAgICAgICAgICBfdGhpczgucGFyYW1zLnBhZ2VCZWFuLnRvdGFsID0gdmFsdWUuZGF0YS50b3RhbDsKICAgICAgICAgICAgICBfdGhpczgucGFyYW1zLnBhZ2VCZWFuLnBhZ2VTaXplID0gdmFsdWUuZGF0YS5wYWdlU2l6ZTsKICAgICAgICAgICAgICBfdGhpczgudGFibGVEYXRhID0gdmFsdWUuZGF0YS5yb3dzOwogICAgICAgICAgICAgIF90aGlzOC5hZ2dyZWdhdGUgPSB2YWx1ZS50b3RhbDsKICAgICAgICAgICAgY2FzZSAyNToKICAgICAgICAgICAgICBfY29udGV4dDMucHJldiA9IDI1OwogICAgICAgICAgICAgIF90aGlzOC50YWJsZUxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLmZpbmlzaCgyNSk7CiAgICAgICAgICAgIGNhc2UgMjg6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTMsIG51bGwsIFtbMSwsIDI1LCAyOF1dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgaGFuZGxlU2l6ZUNoYW5nZUN1c3RvbTogZnVuY3Rpb24gaGFuZGxlU2l6ZUNoYW5nZUN1c3RvbSh2YWwpIHsKICAgICAgdGhpcy5wYXJhbXMucGFnZUJlYW4ucGFnZSA9IDE7CiAgICAgIHRoaXMucGFyYW1zLnBhZ2VCZWFuLnBhZ2VTaXplID0gdmFsOwogICAgICB0aGlzLmxvYWREYXRhKCk7CiAgICB9LAogICAgaGFuZGxlQ3VycmVudENoYW5nZUN1c3RvbTogZnVuY3Rpb24gaGFuZGxlQ3VycmVudENoYW5nZUN1c3RvbSh2YWwpIHsKICAgICAgdGhpcy5wYXJhbXMucGFnZUJlYW4ucGFnZSA9IHZhbDsKICAgICAgdGhpcy5sb2FkRGF0YSgpOwogICAgfSwKICAgIC8vIOaUueWPmOmhtemdogogICAgY2hhbmdlUGFnZTogZnVuY3Rpb24gY2hhbmdlUGFnZSgpIHsKICAgICAgdmFyIHBhZ2VOYW1lID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAnJzsKICAgICAgdmFyIHJvdyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307CiAgICAgIGlmICghcGFnZU5hbWUpIHJldHVybjsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlUGFnZScsIHBhZ2VOYW1lLCBmdW5jdGlvbiAoXykgewogICAgICAgIC8vIOWPkeW4g+S6i+S7tgogICAgICAgIFB1YlN1Yi5wdWJsaXNoKHBhZ2VOYW1lLCByb3cpOwogICAgICB9LCByb3cuaWQgPyAn57yW6L6RJyA6ICfmt7vliqAnKTsKICAgIH0KICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7CiAgICAvLyDlnKjnu4Tku7bplIDmr4HkuYvliY0g5riF6Zmk6K6i6ZiF5raI5oGvCiAgICBQdWJTdWIudW5zdWJzY3JpYmUodGhpcy5wdWJTdWIpOwogIH0KfTs="},null]}