{"remainingRequest":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\boman-framwork\\ruoyi-ui\\src\\views\\system\\permissions\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\boman-framwork\\ruoyi-ui\\src\\views\\system\\permissions\\index.vue","mtime":1620872102995},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IGxpc3RSb2xlLCBnZXRSb2xlLCBkZWxSb2xlLCBhZGRSb2xlLCB1cGRhdGVSb2xlLCBleHBvcnRSb2xlLCBkYXRhU2NvcGUsIGNoYW5nZVJvbGVTdGF0dXMgfSBmcm9tICJAL2FwaS9zeXN0ZW0vcm9sZSI7CmltcG9ydCB7IHRyZWVzZWxlY3QgYXMgbWVudVRyZWVzZWxlY3QsIHJvbGVNZW51VHJlZXNlbGVjdCB9IGZyb20gIkAvYXBpL3N5c3RlbS9tZW51IjsKaW1wb3J0IHsgdHJlZXNlbGVjdCBhcyBkZXB0VHJlZXNlbGVjdCwgcm9sZURlcHRUcmVlc2VsZWN0IH0gZnJvbSAiQC9hcGkvc3lzdGVtL2RlcHQiOwppbXBvcnQgeyBsaXN0UG9zdHBvcmVuLCBhZGRsaXN0UG9zdHBvcmVuLCBnZXRSb2xlcixkZWxlbGlzdFBvc3Rwb3JlbixwaXV0Um9sZXIgfSBmcm9tICJAL2FwaS9zeXN0ZW0vcGVybWlzc3MuanMiOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIlJvbGUiLAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBzZWFySW5kZXg6ICcnLAogICAgICBkZWZhdWx0UHJvcHM6IHsKICAgICAgICBjaGlsZHJlbjogJ2NoaWxkcmVuJywKICAgICAgICBsYWJlbDogJ2xhYmVsJwogICAgICB9LAogICAgICBpbmRleHM6IDMsCiAgICAgIC8vIOmBrue9qeWxggogICAgICBsb2FkaW5nOiB0cnVlLAogICAgICAvLyDpgInkuK3mlbDnu4QKICAgICAgaWRzOiBbXSwKICAgICAgLy8g6Z2e5Y2V5Liq56aB55SoCiAgICAgIHNpbmdsZTogdHJ1ZSwKICAgICAgLy8g6Z2e5aSa5Liq56aB55SoCiAgICAgIG11bHRpcGxlOiB0cnVlLAogICAgICAvLyDmmL7npLrmkJzntKLmnaHku7YKICAgICAgc2hvd1NlYXJjaDogdHJ1ZSwKICAgICAgLy8g5oC75p2h5pWwCiAgICAgIHRvdGFsOiAwLAogICAgICB0b3RhbGU6MCwKICAgICAgLy8g6KeS6Imy6KGo5qC85pWw5o2uCiAgICAgIHJvbGVMaXN0OiBbXSwKICAgICAgLy8g5by55Ye65bGC5qCH6aKYCiAgICAgIHRpdGxlOiAiIiwKICAgICAgLy8g5piv5ZCm5pi+56S65by55Ye65bGCCiAgICAgIG9wZW46IGZhbHNlLAogICAgICAvLyDmmK/lkKbmmL7npLrlvLnlh7rlsYLvvIjmlbDmja7mnYPpmZDvvIkKICAgICAgb3BlbkRhdGFTY29wZTogZmFsc2UsCiAgICAgIG1lbnVFeHBhbmQ6IGZhbHNlLAogICAgICBtZW51Tm9kZUFsbDogZmFsc2UsCiAgICAgIGRlcHRFeHBhbmQ6IHRydWUsCiAgICAgIGRlcHROb2RlQWxsOiBmYWxzZSwKICAgICAgLy8g5pel5pyf6IyD5Zu0CiAgICAgIGRhdGVSYW5nZTogW10sCiAgICAgIC8vIOeKtuaAgeaVsOaNruWtl+WFuAogICAgICBzdGF0dXNPcHRpb25zOiBbXSwKICAgICAgLy8g5pWw5o2u6IyD5Zu06YCJ6aG5CiAgICAgIC8vIOiPnOWNleWIl+ihqAogICAgICBtZW51T3B0aW9uczogW10sCiAgICAgIC8vIOmDqOmXqOWIl+ihqAogICAgICBkZXB0T3B0aW9uczogW10sCiAgICAgIC8vIOafpeivouWPguaVsAogICAgICBxdWVyeVBhcmFtczogewogICAgICAgIHJvbGVOYW1lOiB1bmRlZmluZWQsCiAgICAgICAgcm9sZUlkOiB1bmRlZmluZWQsCiAgICAgICAgc3RhdHVzOiB1bmRlZmluZWQsCiAgICAgICAgcGFnZU51bTogMSwKICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgIH0sCiAgICAgIHF1ZXJ5UGFyYW1zdHI6ewogICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgcGFnZVNpemU6IDEwLAogICAgICAgIHJvbGVJZDogdW5kZWZpbmVkLAogICAgICB9LAogICAgICAvLyDooajljZXlj4LmlbAKICAgICAgZm9ybToge30sCiAgICAgIC8vIOihqOWNleagoemqjAogICAgICBydWxlczogewogICAgICAgIHJvbGVOYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6KeS6Imy5ZCN56ew5LiN6IO95Li656m6IiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIHJvbGVLZXk6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLmnYPpmZDlrZfnrKbkuI3og73kuLrnqboiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgcm9sZVNvcnQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLop5LoibLpobrluo/kuI3og73kuLrnqboiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgY2xvdW1uczpbXSwKICAgICAgcmVsYXRpb25UeXBlOiBbXSwKICAgICAgLy8g6KGo5qC855qE6auY5bqmCiAgICAgIHRhYmxlSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gMjQ1ICsgInB4IiwKICAgICAgaWpldWRpZDotMSwKICAgICAgaW5kZXhkdzotMSwKICAgICAgIGlzSW5kZXRlcm1pbmF0ZTogdHJ1ZSwKICAgICAgIGNoZWNrQWxsOiBmYWxzZSwKICAgICAgIGtpZWpmdXI6W10KICAgIH07CiAgfSwKCiAgY3JlYXRlZCgpIHsKICAgIHRoaXMuZ2V0RGljdHMoInJvbGVfZGF0YSIpLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICB0aGlzLnN0YXR1c09wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgICB0aGlzLnJlbGF0aW9uVHlwZSA9IHJlc3BvbnNlLmRhdGEKICAgICAgdGhpcy5nZXREZXB0VHJlZXNlbGVjdCgpCiAgICB9KTsKICAgIHRoaXMuZ2V0TGlzdCgpOwoKICB9LAogIGZpbHRlcnM6IHsKICAgIHJlbGF0aW9uVHlwZUZuKGRhdGEpIHsKICAgICAgdmFyIF90aGlzID0gdGhpcwogICAgICBsZXQgaXMgPSAnJwogICAgICBmb3IgKGxldCBpdGVtIG9mIHRoYXQucmVsYXRpb25UeXBlKSB7CiAgICAgICAgaWYgKGl0ZW0uZGljdFZhbHVlID09IGRhdGEpIHsKICAgICAgICAgIGlzID0gaXRlbS5kaWN0TGFiZWwKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGlzCiAgICB9LAogIH0sCiAgbWV0aG9kczogewogICAgaGFuZGxlTm9kZUNsaWNrKCkgewogICAgfSwKICAgIC8qKiDmn6Xor6Lop5LoibLliJfooaggKi8KICAgIGdldExpc3QoKSB7CiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgIHRoaXMucm9sZUxpc3QgPSBbXQogICAgICBsaXN0Um9sZSh0aGlzLmFkZERhdGVSYW5nZSh0aGlzLnF1ZXJ5UGFyYW1zLCB0aGlzLmRhdGVSYW5nZSkpLnRoZW4oCiAgICAgICAgcmVzcG9uc2UgPT4gewogICAgICAgICAgaWYocmVzcG9uc2Uucm93cy5sZW5ndGggIT09MCl7CiAgICAgICAgICAgIHRoaXMucm9sZUxpc3QgPSByZXNwb25zZS5yb3dzOwogICAgICAgICAgICB0aGlzLnRvdGFsZSA9IHJlc3BvbnNlLnRvdGFsOwogICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIHRoaXMucm9sZUxpc3QucHVzaCh7cm9sZU5hbWU6J+aaguaXoOaVsOaNrid9KQogICAgICAgICAgfQoKICAgICAgICAgIC8vIHRoaXMudG90YWwgPSByZXNwb25zZS50b3RhbDsKICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICAgIH0KICAgICAgKTsKICAgIH0sCiAgICAvKiog5p+l6K+i6I+c5Y2V5qCR57uT5p6EICovCiAgICBnZXRNZW51VHJlZXNlbGVjdCgpIHsKICAgICAgbWVudVRyZWVzZWxlY3QoKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLm1lbnVPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgICAgfSk7CiAgICB9LAogICAgLyoqIOafpeivouWIl+ihqOaVsOaNriovCiAgICBnZXREZXB0VHJlZXNlbGVjdCgpIHsKICAgICAgbGlzdFBvc3Rwb3Jlbih0aGlzLnF1ZXJ5UGFyYW1zdHIpLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgIHRoaXMuY2xvdW1ucyA9IHJlc3BvbnNlLnJvd3M7CiAgICAgICAgdGhpcy50b3RhbCA9IHJlc3BvbnNlLnRvdGFsCiAgICAgICAgLy8gdGhpcy5jbG91bW5zLgogICAgICAgIHRoaXMuY2xvdW1ucy5maWx0ZXIocm91dGUgPT4gewogICAgICAgICAgICBmb3IodmFyIGl0ZW0gaW4gcm91dGUpewogICAgICAgICAgICAgIGlmKGl0ZW0gPT0gJ2RhdGFTY29wZScpewogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocm91dGVbaXRlbV0pCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnJlbGF0aW9uVHlwZSkKICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpb25UeXBlLmZpbHRlcihyb3V0ZXIgPT57CiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJvdXRlcikKICAgICAgICAgICAgICAgICAgaWYocm91dGVyLmRpY3RWYWx1ZSA9PSByb3V0ZVtpdGVtXSl7CiAgICAgICAgICAgICAgICAgICAgcm91dGVbaXRlbV0gPSByb3V0ZXIuZGljdExhYmVsCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgfSk7CiAgICB9LAogICAgLyoqIOagueaNruinkuiJsklE5p+l6K+i6I+c5Y2V5qCR57uT5p6EICovCiAgICBnZXRSb2xlTWVudVRyZWVzZWxlY3QoaWQpIHsKICAgICAgcmV0dXJuIHJvbGVNZW51VHJlZXNlbGVjdChpZCkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgdGhpcy5tZW51T3B0aW9ucyA9IHJlc3BvbnNlLm1lbnVzOwogICAgICAgIHJldHVybiByZXNwb25zZTsKICAgICAgfSk7CiAgICB9LAogICAgLyoqIOagueaNruinkuiJsklE5p+l6K+i6YOo6Zeo5qCR57uT5p6EICovCiAgICBnZXRSb2xlRGVwdFRyZWVzZWxlY3QoaWQpIHsKICAgICAgcmV0dXJuIHJvbGVEZXB0VHJlZXNlbGVjdChpZCkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgdGhpcy5kZXB0T3B0aW9ucyA9IHJlc3BvbnNlLmRlcHRzOwogICAgICAgIHJldHVybiByZXNwb25zZTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6KeS6Imy54q25oCB5L+u5pS5CiAgICBoYW5kbGVTdGF0dXNDaGFuZ2Uocm93KSB7CiAgICAgIGxldCB0ZXh0ID0gcm93LnN0YXR1cyA9PT0gIjAiID8gIuWQr+eUqCIgOiAi5YGc55SoIjsKICAgICAgdGhpcy4kY29uZmlybSgn56Gu6K6k6KaBIicgKyB0ZXh0ICsgJyIiJyArIHJvdy5yb2xlTmFtZSArICci6KeS6Imy5ZCXPycsICLorablkYoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBjaGFuZ2VSb2xlU3RhdHVzKHJvdy5pZCwgcm93LnN0YXR1cyk7CiAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgIHRoaXMubXNnU3VjY2Vzcyh0ZXh0ICsgIuaIkOWKnyIpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbigpIHsKICAgICAgICByb3cuc3RhdHVzID0gcm93LnN0YXR1cyA9PT0gIjAiID8gIjEiIDogIjAiOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDlj5bmtojmjInpkq4KICAgIGNhbmNlbCgpIHsKICAgICAgdGhpcy5vcGVuID0gZmFsc2U7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgIH0sCiAgICAvLyDlj5bmtojmjInpkq7vvIjmlbDmja7mnYPpmZDvvIkKICAgIGNhbmNlbERhdGFTY29wZSgpIHsKICAgICAgdGhpcy5vcGVuRGF0YVNjb3BlID0gZmFsc2U7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgIH0sCiAgICAvLyDooajljZXph43nva4KICAgIHJlc2V0KCkgewoKICAgICAgICB0aGlzLmZvcm0gPSB7CiAgICAgICAgfTsKICAgICAgdGhpcy5yZXNldEZvcm0oImZvcm0iKTsKICAgIH0sCiAgICAvKiog5pCc57Si5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVRdWVyeSgpIHsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wYWdlTnVtID0gMTsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICB9LAogICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqLwogICAgcmVzZXRRdWVyeSgpIHsKICAgICAgdGhpcy5kYXRlUmFuZ2UgPSBbXTsKICAgICAgdGhpcy5yZXNldEZvcm0oInF1ZXJ5Rm9ybSIpOwogICAgICB0aGlzLmhhbmRsZVF1ZXJ5KCk7CiAgICB9LAogICAgLy8g5aSa6YCJ5qGG6YCJ5Lit5pWw5o2uCiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0aW9uKSB7CiAgICAgIHRoaXMuaWRzID0gc2VsZWN0aW9uLm1hcChpdGVtID0+IGl0ZW0uaWQpCiAgICAgIHRoaXMuc2luZ2xlID0gc2VsZWN0aW9uLmxlbmd0aCAhPSAxCiAgICAgIHRoaXMubXVsdGlwbGUgPSAhc2VsZWN0aW9uLmxlbmd0aAogICAgfSwKICAgIC8qKiDmlrDlop7mjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUFkZCgpIHsKICAgICAgdGhpcy5yZXNldCgpOwogICAgICAvLyB0aGlzLmdldE1lbnVUcmVlc2VsZWN0KCk7CiAgICAgIHRoaXMub3BlbiA9IHRydWU7CiAgICAgIHRoaXMudGl0bGUgPSAi5re75Yqg5pWw5o2u5p2D6ZmQIjsKICAgIH0sCiAgICAvKiog5L+u5pS55oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVVcGRhdGUocm93KSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgY29uc3QgaWQgPSByb3cuaWQgfHwgdGhpcy5pZHMKICAgICAgLy8gY29uc3Qgcm9sZU1lbnUgPSB0aGlzLmdldFJvbGVNZW51VHJlZXNlbGVjdChpZCk7CiAgICAgIGdldFJvbGVyKGlkKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLmZvcm0gPSByZXNwb25zZS5kYXRhOwogICAgICAgIHRoaXMub3BlbiA9IHRydWU7CiAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgICAgcm9sZU1lbnUudGhlbihyZXMgPT4gewogICAgICAgICAgICBsZXQgY2hlY2tlZEtleXMgPSByZXMuY2hlY2tlZEtleXMKICAgICAgICAgICAgY2hlY2tlZEtleXMuZm9yRWFjaCgodikgPT4gewogICAgICAgICAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsKICAgICAgICAgICAgICAgIHRoaXMuJHJlZnMubWVudS5zZXRDaGVja2VkKHYsIHRydWUsIGZhbHNlKTsKICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9KQogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy50aXRsZSA9ICLkv67mlLnmlbDmja7mnYPpmZAiOwogICAgICB9KTsKICAgIH0sCiAgICAvKiog6YCJ5oup6KeS6Imy5p2D6ZmQ6IyD5Zu06Kem5Y+RICovCiAgICBkYXRhU2NvcGVTZWxlY3RDaGFuZ2UodmFsdWUpIHsKICAgICAgaWYgKHZhbHVlICE9PSAnMicpIHsKICAgICAgICB0aGlzLiRyZWZzLmRlcHQuc2V0Q2hlY2tlZEtleXMoW10pOwogICAgICB9CiAgICB9LAogICAgLyoqIOWIhumFjeaVsOaNruadg+mZkOaTjeS9nCAqLwogICAgaGFuZGxlRGF0YVNjb3BlKHJvdykgewogICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIGNvbnN0IHJvbGVEZXB0VHJlZXNlbGVjdCA9IHRoaXMuZ2V0Um9sZURlcHRUcmVlc2VsZWN0KHJvdy5pZCk7CiAgICAgIGdldFJvbGUocm93LmlkKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLmZvcm0gPSByZXNwb25zZS5kYXRhOwogICAgICAgIHRoaXMub3BlbkRhdGFTY29wZSA9IHRydWU7CiAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgICAgcm9sZURlcHRUcmVlc2VsZWN0LnRoZW4ocmVzID0+IHsKICAgICAgICAgICAgdGhpcy4kcmVmcy5kZXB0LnNldENoZWNrZWRLZXlzKHJlcy5jaGVja2VkS2V5cyk7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLnRpdGxlID0gIuWIhumFjeaVsOaNruadg+mZkCI7CiAgICAgIH0pOwogICAgfSwKICAgIC8qKiDmj5DkuqTmjInpkq4gKi8KICAgIHN1Ym1pdEZvcm06IGZ1bmN0aW9uKCkgewogICAgICB0aGlzLiRyZWZzWyJmb3JtIl0udmFsaWRhdGUodmFsaWQgPT4gewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgaWYgKHRoaXMuZm9ybS5pZCAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgLy8gdGhpcy5mb3JtLm1lbnVJZHMgPSB0aGlzLmdldE1lbnVBbGxDaGVja2VkS2V5cygpOwogICAgICAgICAgICBwaXV0Um9sZXIodGhpcy5mb3JtKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgICAgICB0aGlzLm1zZ1N1Y2Nlc3MoIuS/ruaUueaIkOWKnyIpOwogICAgICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlOwogICAgICAgICAgICAgIHRoaXMuZ2V0RGVwdFRyZWVzZWxlY3QoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyB0aGlzLmZvcm0ubWVudUlkcyA9IHRoaXMuZ2V0TWVudUFsbENoZWNrZWRLZXlzKCk7CiAgICAgICAgICAgIHRoaXMuZm9ybS5yb2xlSWQgPSB0aGlzLmlqZXVkaWQKICAgICAgICAgICAgaWYodGhpcy5mb3JtLnJvbGVJZCAhPT0gLTEpewogICAgICAgICAgICAgIGFkZGxpc3RQb3N0cG9yZW4odGhpcy5mb3JtKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgICAgICAgIHRoaXMubXNnU3VjY2Vzcygi5paw5aKe5oiQ5YqfIik7CiAgICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKICAgICAgICAgICAgICAgIHRoaXMuZ2V0RGVwdFRyZWVzZWxlY3QoKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLor7flhYjpgInmi6nop5LoibLlnKjmt7vliqAiKTsKICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvKiog5o+Q5Lqk5oyJ6ZKu77yI5pWw5o2u5p2D6ZmQ77yJICovCiAgICBzdWJtaXREYXRhU2NvcGU6IGZ1bmN0aW9uKCkgewogICAgICBpZiAodGhpcy5mb3JtLmlkICE9IHVuZGVmaW5lZCkgewogICAgICAgIHRoaXMuZm9ybS5kZXB0SWRzID0gdGhpcy5nZXREZXB0QWxsQ2hlY2tlZEtleXMoKTsKICAgICAgICBkYXRhU2NvcGUodGhpcy5mb3JtKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgIHRoaXMubXNnU3VjY2Vzcygi5L+u5pS55oiQ5YqfIik7CiAgICAgICAgICB0aGlzLm9wZW5EYXRhU2NvcGUgPSBmYWxzZTsKICAgICAgICAgIC8vIHRoaXMuZ2V0RGVwdFRyZWVzZWxlY3QoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIC8qKiDliKDpmaTmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZURlbGV0ZShyb3cpIHsKICAgICAgY29uc3QgaWRzID0gcm93LmlkIHx8IHRoaXMuaWRzOwogICAgICB0aGlzLiRjb25maXJtKCfmmK/lkKbnoa7orqTliKDpmaTop5LoibLnvJblj7fkuLoiJyArIGlkcyArICci55qE5pWw5o2u6aG5PycsICLorablkYoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBkZWxlbGlzdFBvc3Rwb3JlbihpZHMpOwogICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICB0aGlzLmdldERlcHRUcmVlc2VsZWN0KCk7CiAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLliKDpmaTmiJDlip8iKTsKICAgICAgfSkKICAgIH0sCiAgICAvKiog5a+85Ye65oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVFeHBvcnQoKSB7CiAgICAgIHRoaXMuZG93bmxvYWQoJ3N5c3RlbS9yb2xlL2V4cG9ydCcsIHsKICAgICAgICAuLi50aGlzLnF1ZXJ5UGFyYW1zCiAgICAgIH0sIGByb2xlXyR7bmV3IERhdGUoKS5nZXRUaW1lKCl9Lnhsc3hgKQogICAgfSwKICAgIC8vIOafpeivogogICAgcXVyZWd1KCl7CiAgICAgIHRoaXMuZ2V0TGlzdCgpCiAgICB9LAogICAgLy8g5Yi35pawCiAgICBlZnJlc2goKXsKICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnJvbGVOYW1lID0gdW5kZWZpbmVkCiAgICAgdGhpcy5nZXRMaXN0KCkKICAgICB0aGlzLnF1ZXJ5UGFyYW1zdHIucm9sZUlkID0gdW5kZWZpbmVkCiAgICAgdGhpcy5nZXREZXB0VHJlZXNlbGVjdCgpCiAgICB9LAogICAgLy8g54K55Ye76KeS6ImyaWQKICAgIGppZWVzZShpZCxpbmRleCl7CiAgICAgIHRoaXMuaW5kZXhkdyA9IGluZGV4CiAgICAgIHRoaXMuaWpldWRpZCA9IGlkCiAgICAgIHRoaXMucXVlcnlQYXJhbXN0ci5yb2xlSWQgPSBpZAogICAgICB0aGlzLmdldERlcHRUcmVlc2VsZWN0KCkKICAgIH0sCiAgICBoYW5kbGVDaGVja0FsbENoYW5nZSh2YWwpIHsKICAgICAgICAgICAgaWYodmFsID09IHRydWUpewogICAgICAgICAgICAgIHRoaXMuY2xvdW1ucy5maWx0ZXIocm91dGVyID0+ewogICAgICAgICAgICAgICAgcm91dGVyLmlzVXNlID0gJ1knCiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgdGhpcy5jbG91bW5zLmZpbHRlcihyb3V0ZXIgPT57CiAgICAgICAgICAgICAgICByb3V0ZXIuaXNVc2UgPSAnTicKICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gZmFsc2U7CiAgICB9LAogICAgIGhhbmRsZUNoZWNrZWRDaXRpZXNDaGFuZ2UodmFsdWUpIHsKICAgICB9CiAgfQp9Owo="},null]}