{"remainingRequest":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/thread-loader/dist/cjs.js!/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/babel-loader/lib/index.js!/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/cache-loader/dist/cjs.js??ref--0-0!/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/src/ui/voip/Single.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/src/ui/voip/Single.vue","mtime":1702016964389},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/cache-loader/dist/cjs.js","mtime":1702017034107},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/thread-loader/dist/cjs.js","mtime":1702017030024},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/babel-loader/lib/index.js","mtime":1702017034360},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/cache-loader/dist/cjs.js","mtime":1702017034107},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/vue-loader/lib/index.js","mtime":1702017029242}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5kZXgtb2YiOwppbXBvcnQgX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIgZnJvbSAiL2RhdGEvamVua2lucy93b3Jrc3BhY2UvYmFkcC1iY3hpbi13ZWItNS54LXZ1ZWNoYXQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiOwppbXBvcnQgX3RvQ29uc3VtYWJsZUFycmF5IGZyb20gIi9kYXRhL2plbmtpbnMvd29ya3NwYWNlL2JhZHAtYmN4aW4td2ViLTUueC12dWVjaGF0L25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheSI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCmltcG9ydCBhdmVuZ2luZWtpdCBmcm9tICIuLi8uLi93ZmMvYXYvaW50ZXJuYWwvZW5naW5lLm1pbiI7CmltcG9ydCBDYWxsU2Vzc2lvbkNhbGxiYWNrIGZyb20gIi4uLy4uL3dmYy9hdi9lbmdpbmUvY2FsbFNlc3Npb25DYWxsYmFjayI7CmltcG9ydCBDYWxsU3RhdGUgZnJvbSAiLi4vLi4vd2ZjL2F2L2VuZ2luZS9jYWxsU3RhdGUiOwppbXBvcnQgeyBpc0VsZWN0cm9uIH0gZnJvbSAiLi4vLi4vcGxhdGZvcm0iOwppbXBvcnQgU2NyZWVuT3JXaW5kb3dQaWNrZXIgZnJvbSAiLi9TY3JlZW5PcldpbmRvd1BpY2tlciI7CmltcG9ydCBWaWRlb1R5cGUgZnJvbSAiLi4vLi4vd2ZjL2F2L2VuZ2luZS92aWRlb1R5cGUiOwppbXBvcnQgYXZlbmdpbmVraXRwcm94eSBmcm9tICIuLi8uLi93ZmMvYXYvZW5naW5lL2F2ZW5naW5la2l0cHJveHkiOwppbXBvcnQgQ29uZmlnIGZyb20gIi4uLy4uL2NvbmZpZyI7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnU2luZ2xlJywKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgc2Vzc2lvbjogbnVsbCwKICAgICAgYXVkaW9Pbmx5OiBmYWxzZSwKICAgICAgcGFydGljaXBhbnRVc2VySW5mb3M6IFtdLAogICAgICBtdXRlZDogZmFsc2UsCiAgICAgIHN0YXR1czogNCwKICAgICAgc3RhcnRUaW1lc3RhbXA6IDAsCiAgICAgIGN1cnJlbnRUaW1lc3RhbXA6IDAsCiAgICAgIGxvY2FsU3RyZWFtOiBudWxsLAogICAgICByZW1vdGVTdHJlYW06IG51bGwsCiAgICAgIHZpZGVvSW5wdXREZXZpY2VJbmRleDogMCwKICAgICAgYXV0b1BsYXlJbnRlcnZhbDogMCwKICAgICAgc2hvd1dlYnJ0Y1RpcDogZmFsc2UsCiAgICAgIHJpbmdBdWRpbzogbnVsbAogICAgfTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGF1dG9QbGF5OiBmdW5jdGlvbiBhdXRvUGxheSgpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKCiAgICAgIGlmIChpc0VsZWN0cm9uKCkpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGNvbnNvbGUubG9nKCdjYW4gcGxheScpOwoKICAgICAgaWYgKCF0aGlzLmF1dG9QbGF5SW50ZXJ2YWwpIHsKICAgICAgICB0aGlzLmF1dG9QbGF5SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAoX3RoaXMuJHJlZnMubG9jYWxWaWRlbyAmJiBfdGhpcy4kcmVmcy5sb2NhbFZpZGVvLnBhdXNlZCkgewogICAgICAgICAgICAgIF90aGlzLiRyZWZzLmxvY2FsVmlkZW8ucGxheSgpOwoKICAgICAgICAgICAgICBjb25zb2xlLmxvZygnY2FuIHBsYXkgbG9jYWwnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKF90aGlzLiRyZWZzLnJlbW90ZVZpZGVvICYmIF90aGlzLiRyZWZzLnJlbW90ZVZpZGVvLnBhdXNlZCkgewogICAgICAgICAgICAgIF90aGlzLiRyZWZzLnJlbW90ZVZpZGVvLnBsYXkoKTsKCiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhbiBwbGF5IHJlbW90ZScpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGNhdGNoIChlKSB7Ly8gZG8gbm90aGluZwogICAgICAgICAgfQoKICAgICAgICAgIGlmIChfdGhpcy4kcmVmcy5sb2NhbFZpZGVvICYmICFfdGhpcy4kcmVmcy5sb2NhbFZpZGVvLnBhdXNlZCAmJiBfdGhpcy4kcmVmcy5yZW1vdGVWaWRlbyAmJiAhX3RoaXMuJHJlZnMucmVtb3RlVmlkZW8ucGF1c2VkKSB7CiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoX3RoaXMuYXV0b1BsYXlJbnRlcnZhbCk7CiAgICAgICAgICAgIF90aGlzLmF1dG9QbGF5SW50ZXJ2YWwgPSAwOwogICAgICAgICAgfQogICAgICAgIH0sIDEwMCk7CiAgICAgIH0KICAgIH0sCiAgICBzd2l0Y2hWaWRlb1R5cGU6IGZ1bmN0aW9uIHN3aXRjaFZpZGVvVHlwZSgpIHsKICAgICAgaWYgKCF0aGlzLnNlc3Npb24pIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHZhciB1c2VySWQgPSB0aGlzLnNlc3Npb24uZ2V0UGFydGljaXBhbnRJZHMoKVswXTsKICAgICAgdmFyIHN1YnNjcmliZXIgPSB0aGlzLnNlc3Npb24uZ2V0U3Vic2NyaWJlcih1c2VySWQsIGZhbHNlKTsKCiAgICAgIGlmIChzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGN1cnJlbnRWaWRlb1R5cGUgPSBzdWJzY3JpYmVyLmN1cnJlbnRWaWRlb1R5cGU7CiAgICAgICAgdmFyIHZpZGVvVHlwZSA9IFZpZGVvVHlwZS5OT05FOwoKICAgICAgICBpZiAoY3VycmVudFZpZGVvVHlwZSA9PT0gVmlkZW9UeXBlLk5PTkUpIHsKICAgICAgICAgIHZpZGVvVHlwZSA9IFZpZGVvVHlwZS5CSUdfU1RSRUFNOwogICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFZpZGVvVHlwZSA9PT0gVmlkZW9UeXBlLkJJR19TVFJFQU0pIHsKICAgICAgICAgIHZpZGVvVHlwZSA9IFZpZGVvVHlwZS5TTUFMTF9TVFJFQU07CiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50VmlkZW9UeXBlID09PSBWaWRlb1R5cGUuU01BTExfU1RSRUFNKSB7CiAgICAgICAgICB2aWRlb1R5cGUgPSBWaWRlb1R5cGUuTk9ORTsKICAgICAgICB9CgogICAgICAgIGNvbnNvbGUubG9nKCdzZXRQYXJ0aWNpcGFudFZpZGVvVHlwZScsIHVzZXJJZCwgdmlkZW9UeXBlKTsKICAgICAgICB0aGlzLnNlc3Npb24uc2V0UGFydGljaXBhbnRWaWRlb1R5cGUodXNlcklkLCBmYWxzZSwgdmlkZW9UeXBlKTsKICAgICAgfQogICAgfSwKICAgIHNldHVwU2Vzc2lvbkNhbGxiYWNrOiBmdW5jdGlvbiBzZXR1cFNlc3Npb25DYWxsYmFjaygpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgICB2YXIgc2Vzc2lvbkNhbGxiYWNrID0gbmV3IENhbGxTZXNzaW9uQ2FsbGJhY2soKTsgLy8g5Y+v6IO95Zue6LCD5aSa5qyhCgogICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkQ2hhbmdlU3RhdGUgPSBmdW5jdGlvbiAoc3RhdGUpIHsKICAgICAgICAvLyDlk43pk4PnpLrkvovku6PnoIEKICAgICAgICBpZiAoc3RhdGUgPT09IENhbGxTdGF0ZS5TVEFUVVNfT1VUR09JTkcpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKCdzdGFydCBvdXRnb2luZyByaW5nJyk7CiAgICAgICAgICBfdGhpczIucmluZ0F1ZGlvID0gbmV3IEF1ZGlvKHJlcXVpcmUoIkAvYXNzZXRzL2F1ZGlvcy9pbmNvbWluZ19jYWxsX3JpbmcubXAzIikpOwogICAgICAgICAgX3RoaXMyLnJpbmdBdWRpby5sb29wID0gdHJ1ZTsKCiAgICAgICAgICBfdGhpczIucmluZ0F1ZGlvLnBsYXkoKTsKICAgICAgICB9IGVsc2UgaWYgKHN0YXRlID09PSBDYWxsU3RhdGUuU1RBVFVTX0lOQ09NSU5HKSB7Ly8g55Sx5LqO5rWP6KeI5Zmo55qE6ZmQ5Yi277yMd2ViIOerr++8jOWPr+iDveS4jeiDveiHquWKqOaSreaUvu+8ge+8gSEKICAgICAgICAgIC8vIOWPpuWklu+8jOW+ruS/oeaUtuWIsOmfs+inhumikemAmuivnemCgOivt+aXtu+8jOS5n+ayoeacieWjsOmfswogICAgICAgICAgLy8gdGhpcy5yaW5nQXVkaW8gPSBuZXcgQXVkaW8ocmVxdWlyZSgiQC9hc3NldHMvYXVkaW9zL2luY29taW5nX2NhbGxfcmluZy5tcDMiKSkKICAgICAgICAgIC8vIHRoaXMucmluZ0F1ZGlvLmxvb3AgPSB0cnVlOwogICAgICAgICAgLy8gdGhpcy5yaW5nQXVkaW8ucGxheSgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoX3RoaXMyLnJpbmdBdWRpbykgewogICAgICAgICAgICBfdGhpczIucmluZ0F1ZGlvLnBhdXNlKCk7CgogICAgICAgICAgICBfdGhpczIucmluZ0F1ZGlvID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIF90aGlzMi5zdGF0dXMgPSBzdGF0ZTsKICAgICAgICBjb25zb2xlLmxvZygnZGlkQ2hhbmdlU3RhdGUnLCBzdGF0ZSk7CgogICAgICAgIGlmIChzdGF0ZSA9PT0gQ2FsbFN0YXRlLlNUQVRVU19DT05ORUNURUQpIHsKICAgICAgICAgIGlmIChfdGhpczIuc3RhcnRUaW1lc3RhbXAgPT09IDApIHsKICAgICAgICAgICAgX3RoaXMyLnN0YXJ0VGltZXN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICAgICAgICAgIF90aGlzMi50aW1lciA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICBfdGhpczIuY3VycmVudFRpbWVzdGFtcCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgICAgICB9LCAxMDAwKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKHN0YXRlID09PSBDYWxsU3RhdGUuU1RBVFVTX0lETEUpIHsKICAgICAgICAgIGlmIChfdGhpczIudGltZXIpIHsKICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChfdGhpczIudGltZXIpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgY29uc29sZS5sb2coJ3N0YXR1cyBjaGFuZ2UnLCBzdGF0ZSk7CiAgICAgIH07CgogICAgICBzZXNzaW9uQ2FsbGJhY2sub25Jbml0aWFsID0gZnVuY3Rpb24gKHNlc3Npb24sIHNlbGZVc2VySW5mbywgaW5pdGlhdG9yVXNlckluZm8sIHBhcnRpY2lwYW50VXNlckluZm9zKSB7CiAgICAgICAgY29uc29sZS5sb2coJ29uSW5pdGlhbCcpOwogICAgICAgIF90aGlzMi5zZXNzaW9uID0gc2Vzc2lvbjsKICAgICAgICBfdGhpczIuYXVkaW9Pbmx5ID0gc2Vzc2lvbi5hdWRpb09ubHk7CiAgICAgICAgX3RoaXMyLnBhcnRpY2lwYW50VXNlckluZm9zID0gX3RvQ29uc3VtYWJsZUFycmF5KHBhcnRpY2lwYW50VXNlckluZm9zKTsKICAgICAgfTsKCiAgICAgIHNlc3Npb25DYWxsYmFjay5kaWRDaGFuZ2VNb2RlID0gZnVuY3Rpb24gKGF1ZGlvT25seSkgewogICAgICAgIF90aGlzMi5hdWRpb09ubHkgPSBhdWRpb09ubHk7CiAgICAgIH07CgogICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkQ3JlYXRlTG9jYWxWaWRlb1RyYWNrID0gZnVuY3Rpb24gKHN0cmVhbSkgewogICAgICAgIF90aGlzMi5sb2NhbFN0cmVhbSA9IHN0cmVhbTsKCiAgICAgICAgX3RoaXMyLmF1dG9QbGF5KCk7CiAgICAgIH07CgogICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkUmVjZWl2ZVJlbW90ZVZpZGVvVHJhY2sgPSBmdW5jdGlvbiAodXNlcklkLCBzdHJlYW0pIHsKICAgICAgICBfdGhpczIucmVtb3RlU3RyZWFtID0gc3RyZWFtOwoKICAgICAgICBfdGhpczIuYXV0b1BsYXkoKTsKICAgICAgfTsKCiAgICAgIHNlc3Npb25DYWxsYmFjay5kaWRDYWxsRW5kV2l0aFJlYXNvbiA9IGZ1bmN0aW9uIChyZWFzb24pIHsKICAgICAgICBjb25zb2xlLmxvZygnY2FsbEVuZFdpdGhSZWFzb24nLCByZWFzb24pOwoKICAgICAgICBfdGhpczIuc2Vzc2lvbi5jbG9zZVZvaXBXaW5kb3coKTsKCiAgICAgICAgX3RoaXMyLnNlc3Npb24gPSBudWxsOwogICAgICB9OwoKICAgICAgc2Vzc2lvbkNhbGxiYWNrLmRpZFZpZGVvTXV0ZWQgPSBmdW5jdGlvbiAodXNlcklkLCBtdXRlZCkgewogICAgICAgIGNvbnNvbGUubG9nKCdkaWRWaWRlb011dGVkJywgdXNlcklkLCBtdXRlZCk7CiAgICAgICAgX3RoaXMyLm11dGVkID0gbXV0ZWQ7CiAgICAgIH07CgogICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkTWVkaWFMb3N0UGFja2V0ID0gZnVuY3Rpb24gKG1lZGlhLCBsb3N0UGFja2V0KSB7CiAgICAgICAgaWYgKGxvc3RQYWNrZXQgPiA2KSB7CiAgICAgICAgICBjb25zb2xlLmxvZygn5oKo55qE572R57uc5LiN5aW9Jyk7CiAgICAgICAgfQogICAgICB9OwoKICAgICAgc2Vzc2lvbkNhbGxiYWNrLmRpZFVzZXJNZWRpYUxvc3RQYWNrZXQgPSBmdW5jdGlvbiAodXNlcklkLCBtZWRpYSwgbG9zdFBhY2tldCwgdXBsaW5rKSB7CiAgICAgICAgLy/lpoLmnpx1cGxpbmsgdHVyZeWvueaWuee9kee7nOS4jeWlve+8jGZhbHNl5oKo55qE572R57uc5LiN5aW9CiAgICAgICAgLy/mjqXmlLbmlrnkuKLljIXotoXov4cxMOS4uue9kee7nOS4jeWlvQogICAgICAgIGlmIChsb3N0UGFja2V0ID4gMTApIHsKICAgICAgICAgIGlmICh1cGxpbmspIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ+WvueaWuee9kee7nOS4jeWlvScpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ+aCqOeahOe9kee7nOS4jeWlvScpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKCiAgICAgIHNlc3Npb25DYWxsYmFjay5kaWRQYXJ0aWNpcGFudENvbm5lY3RlZCA9IGZ1bmN0aW9uICh1c2VySWQpIHsKICAgICAgICBjb25zb2xlLmxvZygnZGlkUGFydGljaXBhbnRDb25uZWN0ZWQnLCB1c2VySWQpOwogICAgICB9OwoKICAgICAgc2Vzc2lvbkNhbGxiYWNrLmRpZFJlcG9ydEF1ZGlvVm9sdW1lID0gZnVuY3Rpb24gKHVzZXJJZCwgdm9sdW1lKSB7Ly8gY29uc29sZS5sb2coJ2RpZFJlcG9ydEF1ZGlvVm9sdW1lJywgdXNlcklkLCB2b2x1bWUpCiAgICAgIH07CgogICAgICBhdmVuZ2luZWtpdC5zZXNzaW9uQ2FsbGJhY2sgPSBzZXNzaW9uQ2FsbGJhY2s7CiAgICB9LAogICAgYW5zd2VyOiBmdW5jdGlvbiBhbnN3ZXIoKSB7CiAgICAgIHRoaXMuc2Vzc2lvbi5jYWxsKCk7CiAgICB9LAogICAgaGFuZ3VwOiBmdW5jdGlvbiBoYW5ndXAoKSB7CiAgICAgIHRoaXMuc2Vzc2lvbi5oYW5ndXAoKTsKICAgIH0sCiAgICBzd2l0Y2hDYW1lcmE6IGZ1bmN0aW9uIHN3aXRjaENhbWVyYSgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CgogICAgICBpZiAoIXRoaXMuc2Vzc2lvbiB8fCB0aGlzLnNlc3Npb24uaXNTY3JlZW5TaGFyaW5nKCkpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0gLy8gVGhlIG9yZGVyIGlzIHNpZ25pZmljYW50IC0gdGhlIGRlZmF1bHQgY2FwdHVyZSBkZXZpY2VzIHdpbGwgYmUgbGlzdGVkIGZpcnN0LgogICAgICAvLyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKQoKCiAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpLnRoZW4oZnVuY3Rpb24gKGRldmljZXMpIHsKICAgICAgICBkZXZpY2VzID0gZGV2aWNlcy5maWx0ZXIoZnVuY3Rpb24gKGQpIHsKICAgICAgICAgIHJldHVybiBkLmtpbmQgPT09ICd2aWRlb2lucHV0JzsKICAgICAgICB9KTsKCiAgICAgICAgaWYgKGRldmljZXMubGVuZ3RoIDwgMikgewogICAgICAgICAgY29uc29sZS5sb2coJ3N3aXRjaENhbWVyYSBlcnJvciwgbm8gbW9yZSB2aWRlbyBpbnB1dCBkZXZpY2UnKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIF90aGlzMy52aWRlb0lucHV0RGV2aWNlSW5kZXgrKzsKCiAgICAgICAgaWYgKF90aGlzMy52aWRlb0lucHV0RGV2aWNlSW5kZXggPj0gZGV2aWNlcy5sZW5ndGgpIHsKICAgICAgICAgIF90aGlzMy52aWRlb0lucHV0RGV2aWNlSW5kZXggPSAwOwogICAgICAgIH0KCiAgICAgICAgX3RoaXMzLnNlc3Npb24uc2V0VmlkZW9JbnB1dERldmljZUlkKGRldmljZXNbX3RoaXMzLnZpZGVvSW5wdXREZXZpY2VJbmRleF0uZGV2aWNlSWQpOwoKICAgICAgICBjb25zb2xlLmxvZygnc2V0VmlkZW9JbnB1dERldmljZUlkJywgZGV2aWNlc1tfdGhpczMudmlkZW9JbnB1dERldmljZUluZGV4XSk7CiAgICAgIH0pOwogICAgfSwKICAgIG11dGU6IGZ1bmN0aW9uIG11dGUoKSB7CiAgICAgIHZhciBlbmFibGUgPSB0aGlzLnNlc3Npb24uYXVkaW9NdXRlZCA/IHRydWUgOiBmYWxzZTsKICAgICAgdGhpcy5zZXNzaW9uLnNlbGZVc2VySW5mby5faXNBdWRpb011dGVkID0gIWVuYWJsZTsKICAgICAgdGhpcy5zZXNzaW9uLnNldEF1ZGlvRW5hYmxlZChlbmFibGUpOwogICAgfSwKICAgIGRvd24ydm9pY2U6IGZ1bmN0aW9uIGRvd24ydm9pY2UoKSB7CiAgICAgIHRoaXMuc2Vzc2lvbi5kb3duZ3JhZGUyVm9pY2UoKTsKICAgIH0sCiAgICBzY3JlZW5TaGFyZTogZnVuY3Rpb24gc2NyZWVuU2hhcmUoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwoKICAgICAgaWYgKHRoaXMuc2Vzc2lvbi5pc1NjcmVlblNoYXJpbmcoKSkgewogICAgICAgIHRoaXMuc2Vzc2lvbi5zdG9wU2NyZWVuU2hhcmUoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoaXNFbGVjdHJvbigpKSB7CiAgICAgICAgICB2YXIgYmVmb3JlQ2xvc2UgPSBmdW5jdGlvbiBiZWZvcmVDbG9zZShldmVudCkgewogICAgICAgICAgICAvLyBXaGF0IGEgZ2FtYmxlLi4uIDUwJSBjaGFuY2UgdG8gY2FuY2VsIGNsb3NpbmcKICAgICAgICAgICAgaWYgKCFldmVudC5wYXJhbXMpIHsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChldmVudC5wYXJhbXMuc291cmNlKSB7CiAgICAgICAgICAgICAgdmFyIHNvdXJjZSA9IGV2ZW50LnBhcmFtcy5zb3VyY2U7CiAgICAgICAgICAgICAgdmFyIGRlc2t0b3BTaGFyZU9wdGlvbnMgPSB7CiAgICAgICAgICAgICAgICBzb3VyY2VJZDogc291cmNlLmlkIC8vIG1pbldpZHRoOiAxMjgwLAogICAgICAgICAgICAgICAgLy8gbWF4V2lkdGg6IDEyODAsCiAgICAgICAgICAgICAgICAvLyBtaW5IZWlnaHQ6IDcyMCwKICAgICAgICAgICAgICAgIC8vIG1heEhlaWdodDogNzIwCgogICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgIF90aGlzNC5zZXNzaW9uLnN0YXJ0U2NyZWVuU2hhcmUoZGVza3RvcFNoYXJlT3B0aW9ucyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH07CgogICAgICAgICAgdGhpcy4kbW9kYWwuc2hvdyhTY3JlZW5PcldpbmRvd1BpY2tlciwge30sIHsKICAgICAgICAgICAgd2lkdGg6IDM2MCwKICAgICAgICAgICAgaGVpZ2h0OiA2MjAsCiAgICAgICAgICAgIG5hbWU6ICdzY3JlZW4td2luZG93LXBpY2tlci1tb2RhbCcsCiAgICAgICAgICAgIGNsaWNrVG9DbG9zZTogZmFsc2UKICAgICAgICAgIH0sIHsKICAgICAgICAgICAgLy8gJ2JlZm9yZS1vcGVuJzogYmVmb3JlT3BlbiwKICAgICAgICAgICAgJ2JlZm9yZS1jbG9zZSc6IGJlZm9yZUNsb3NlIC8vICdjbG9zZWQnOiBjbG9zZWQsCgogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuc2Vzc2lvbi5zdGFydFNjcmVlblNoYXJlKCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgdGltZXN0YW1wRm9ybWF0OiBmdW5jdGlvbiB0aW1lc3RhbXBGb3JtYXQodGltZXN0YW1wKSB7CiAgICAgIHRpbWVzdGFtcCA9IH5+KHRpbWVzdGFtcCAvIDEwMDApOwogICAgICB2YXIgc3RyID0gJyc7CiAgICAgIHZhciBob3VyID0gfn4odGltZXN0YW1wIC8gMzYwMCk7CiAgICAgIHN0ciA9IGhvdXIgPiAwID8gKGhvdXIgPCAxMCA/ICIwIiA6ICIiKSArIGhvdXIgKyAnOicgOiAnJzsKICAgICAgdmFyIG1pbiA9IH5+KHRpbWVzdGFtcCAlIDM2MDAgLyA2MCk7CiAgICAgIHN0ciArPSAobWluIDwgMTAgPyAiMCIgOiAiIikgKyBtaW4gKyAnOic7CiAgICAgIHZhciBzZWMgPSB+fih0aW1lc3RhbXAgJSA2MCk7CiAgICAgIHN0ciArPSAoc2VjIDwgMTAgPyAiMCIgOiAiIikgKyBzZWM7CiAgICAgIHJldHVybiBzdHI7CiAgICB9CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzNSA9IHRoaXM7CgogICAgY29uc29sZS5sb2coJ3NpbmdsZSBtb3VudGVkJyk7CiAgICB2YXIgc3VwcG9ydENvbmZlcmVuY2UgPSBhdmVuZ2luZWtpdC5zdGFydENvbmZlcmVuY2UgIT09IHVuZGVmaW5lZDsKCiAgICBpZiAoIXN1cHBvcnRDb25mZXJlbmNlKSB7CiAgICAgIHZhciBob3N0ID0gd2luZG93LmxvY2F0aW9uLmhvc3Q7CgogICAgICBpZiAoaG9zdC5pbmRleE9mKCd3aWxkZmlyZWNoYXQuY24nKSA9PT0gLTEgJiYgaG9zdC5pbmRleE9mKCdsb2NhbGhvc3QnKSA9PT0gLTEpIHsKICAgICAgICB2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIoQ29uZmlnLklDRV9TRVJWRVJTKSwKICAgICAgICAgICAgX3N0ZXA7CgogICAgICAgIHRyeSB7CiAgICAgICAgICBmb3IgKF9pdGVyYXRvci5zKCk7ICEoX3N0ZXAgPSBfaXRlcmF0b3IubigpKS5kb25lOykgewogICAgICAgICAgICB2YXIgaWNlID0gX3N0ZXAudmFsdWU7CgogICAgICAgICAgICBpZiAoaWNlWzBdLmluZGV4T2YoJ3R1cm4ud2lsZGZpcmVjaGF0Lm5ldCcpID49IDApIHsKICAgICAgICAgICAgICAvLyDmmL7npLroh6rooYzpg6jnvbIgdHVybiDmj5DnpLoKICAgICAgICAgICAgICB0aGlzLnNob3dXZWJydGNUaXAgPSB0cnVlOwogICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgX3RoaXM1LnNob3dXZWJydGNUaXAgPSBmYWxzZTsKICAgICAgICAgICAgICB9LCAxMCAqIDEwMDApOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICBfaXRlcmF0b3IuZShlcnIpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBfaXRlcmF0b3IuZigpOwogICAgICAgIH0KICAgICAgfQogICAgfSAvLyDlv4XpobsKCgogICAgaWYgKGlzRWxlY3Ryb24oKSkgewogICAgICBhdmVuZ2luZWtpdC5zZXR1cCgpOwogICAgfQoKICAgIHRoaXMuc2V0dXBTZXNzaW9uQ2FsbGJhY2soKTsKICB9LAogIGNvbXB1dGVkOiB7CiAgICBwYXJ0aWNpcGFudFVzZXJJbmZvOiBmdW5jdGlvbiBwYXJ0aWNpcGFudFVzZXJJbmZvKCkgewogICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLnBhcnRpY2lwYW50VXNlckluZm9zWzBdOwogICAgfSwKICAgIGR1cmF0aW9uOiBmdW5jdGlvbiBkdXJhdGlvbigpIHsKICAgICAgaWYgKHRoaXMuY3VycmVudFRpbWVzdGFtcCA8PSAwKSB7CiAgICAgICAgcmV0dXJuICcwMDowMCc7CiAgICAgIH0KCiAgICAgIHZhciBlc2NhcGVNaWxsaXMgPSB0aGlzLmN1cnJlbnRUaW1lc3RhbXAgLSB0aGlzLnN0YXJ0VGltZXN0YW1wOwogICAgICByZXR1cm4gdGhpcy50aW1lc3RhbXBGb3JtYXQoZXNjYXBlTWlsbGlzKTsKICAgIH0KICB9Cn07"},null]}