{"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\\infoMgmtPatrolsRescues\\PatrolAndRescueVehicleMgmt\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\infoMgmtPatrolsRescues\\PatrolAndRescueVehicleMgmt\\components\\EditAddPage\\index.vue","mtime":1743451742321},{"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:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS94Y2p5LWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKdmFyIF9leGNsdWRlZCA9IFsicG9saWN5RmlsZXMiLCAicm9hZElkIl07CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgUHViU3ViIGZyb20gJ3B1YnN1Yi1qcyc7CmltcG9ydCB7IHJlZmluZVJlcXVlc3RCb2R5IH0gZnJvbSAnQC91dGlscy9yZXF1ZXN0V3JhcHBlcnMnOwppbXBvcnQgeyB0YWJsZUFkZCwgdGFibGVEZXRhaWwsIHRhYmxlRWRpdCwgdmVyaWZ5Q2FyTnVtYmVyIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcGF0cm9sQW5kUmVzY3VlVmVoaWNsZU1nbXQnOwppbXBvcnQgeyBnZXREaWN0aW9uYXJ5QnlDb2RlIH0gZnJvbSAnQC91dGlscy9kaWN0aW9uYXJ5JzsKaW1wb3J0IHsgb3JnVHJlZSB9IGZyb20gJ0AvYXBpL3N5c3RlbUludGVyZmFjZSc7CgovLyDlm77niYfkuIrkvKAKaW1wb3J0IGltZ0RpYWxvZyBmcm9tICcuL2NvbXBvbmVudHMvaW1nRGlhbG9nJzsKaW1wb3J0IHsgdGFibGVEYXRhIGFzIHJvYWRTZWN0aW9uSW5mb0ludGVyIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcm9hZFNlY3Rpb25JbmZvJzsKaW1wb3J0IHsgdGFibGVEYXRhIGFzIHRlYW1EYXRhIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcGF0cm9sQW5kUmVzY3VlVGVhbXNNZ210JzsKLy8gaW1wb3J0IHt0YWJsZURhdGEgYXMgcmVzY3VlUG9pbnREYXRhfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvaW5mb01nbXRQYXRyb2xzUmVzY3Vlcy9yZXNjdWVTaXRlTWdtdCcKCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnRWRpdEFkZFBhZ2UnLAogIGNvbXBvbmVudHM6IHsKICAgIGltZ0RpYWxvZzogaW1nRGlhbG9nCiAgfSwKICBwcm9wczogewogICAgY29tcG9uZW50TmFtZTogewogICAgICBkZWZhdWx0OiAnVGFibGVQYWdlJywKICAgICAgdHlwZTogU3RyaW5nCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgY2FyQ29sb3VyTGlzdDogW3sKICAgICAgICB2YWx1ZTogJzEnLAogICAgICAgIG5hbWU6ICfpu5HoibInCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogJzInLAogICAgICAgIG5hbWU6ICfnmb3oibInCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogJzMnLAogICAgICAgIG5hbWU6ICfpu4ToibInCiAgICAgIH1dLAogICAgICBpc0FsYXJtTGlzdDogW3sKICAgICAgICB2YWx1ZTogMSwKICAgICAgICBuYW1lOiAn5pivJwogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDAsCiAgICAgICAgbmFtZTogJ+WQpicKICAgICAgfV0sCiAgICAgIGlzRmlsaW5nTGlzdDogW3sKICAgICAgICB2YWx1ZTogMSwKICAgICAgICBuYW1lOiAn5pivJwogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDAsCiAgICAgICAgbmFtZTogJ+WQpicKICAgICAgfV0sCiAgICAgIGlzT3duZWRMaXN0OiBbewogICAgICAgIHZhbHVlOiAxLAogICAgICAgIG5hbWU6ICfmmK8nCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMCwKICAgICAgICBuYW1lOiAn5ZCmJwogICAgICB9XSwKICAgICAgLy8gMi80LjUKICAgICAgc2VhdHNOdW1iZXJMaXN0OiBbewogICAgICAgIHZhbHVlOiAwLAogICAgICAgIG5hbWU6ICcyJwogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDEsCiAgICAgICAgbmFtZTogJzQnCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMiwKICAgICAgICBuYW1lOiAnNScKICAgICAgfV0sCiAgICAgIGFkZEVkaXRGb3JtOiB7CiAgICAgICAgY2FyQ29sb3VyOiAnMScsCiAgICAgICAgc2VhdHNOdW1iZXI6IDAsCiAgICAgICAgb3BlcmF0b3JzOiAnMScsCiAgICAgICAgaXNBbGFybTogMSwKICAgICAgICBpc0ZpbGluZzogMSwKICAgICAgICBpc093bmVkOiAxLAogICAgICAgIHVzZVR5cGU6IDEsCiAgICAgICAgY2FyQ2xhc3M6IDEsCiAgICAgICAgc3VpdGFiaWxpdHlDYXI6ICcxJywKICAgICAgICBzdWl0YWJpbGl0eVRydWNrOiAnMScsCiAgICAgICAgcm9hZDoge30sCiAgICAgICAgcmVzY3VlOiB7fSwKICAgICAgICByb2FkTmFtZTogJycKICAgICAgfSwKICAgICAgYWRkRWRpdFJ1bGVzOiB7CiAgICAgICAgY2FyTnVtYmVyOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6L2m54mM5Y+3JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGNhckNsYXNzOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup6L2m6L6G57G75YirJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgdXNlVHlwZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqei9pui+hueUqOmAlCcsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIHNhdmVMb2FkaW5nOiBmYWxzZSwKICAgICAgLy8g5LiK5LygbG9hZGluZwogICAgICBpZDogJycsCiAgICAgIC8vIGlk5qCH6K+G56ymCiAgICAgIHB1YlN1YjogbnVsbCwKICAgICAgcm9hZE9wdGlvbnM6IFtdLAogICAgICByZXNjdWVQb2ludE9wdGlvbnM6IFtdLAogICAgICAvLyDovabniYzlj7fmmK/lkKblrZjlnKgKICAgICAgaXNDYXJOYW1iZXI6IGZhbHNlLAogICAgICByb2FkQ2hvaWNlRGlhbG9nOiBmYWxzZSwKICAgICAgLy8g5piv5ZCm5bGV56S66YCJ5oup6Lev5q615by55bGCCiAgICAgIHJlc2N1ZVBvaW50Q2hvaWNlRGlhbG9nOiBmYWxzZSwKICAgICAgYWNjZXB0OiAnLnBuZywgLmpwZywgLmpwZWcnLAogICAgICBpZk9wdGlvbnM6IFt7CiAgICAgICAgbGFiZWw6ICfmmK8nLAogICAgICAgIHZhbHVlOiAxCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+WQpicsCiAgICAgICAgdmFsdWU6IDAKICAgICAgfV0sCiAgICAgIHRyZWVEYXRhOiBbXSwKICAgICAgdGVhbU9wdGlvbnM6IFtdCiAgICAgIC8vIHJlc2N1ZVBvaW50T3B0aW9uczogW10KICAgIH07CiAgfSwKICB3YXRjaDogewogICAgY29tcG9uZW50TmFtZTogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKG5ld1ZhbCkgewogICAgICAgIGlmIChuZXdWYWwgPT09IHRoaXMuJG9wdGlvbnMubmFtZSkgewogICAgICAgICAgdGhpcy5vcGVuUGFnZSgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmNsb3NlUGFnZSgpOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIHRoaXMuZ2V0T3JnVHJlZURhdGEoKTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgLy8gdGhpcy5wdWJTdWIgPSBQdWJTdWIuc3Vic2NyaWJlKCdUcmVlSXRlbVNlbGVjdGVkJywgKF8sIG5vZGVJdGVtKSA9PiB7CiAgICAvLyAgIHRoaXMuYWRkRWRpdEZvcm0ucm9hZE5hbWUgPSBub2RlSXRlbT8ubmFtZSB8fCAnJwogICAgLy8gICB0aGlzLmFkZEVkaXRGb3JtLnJvYWRJZCA9IG5vZGVJdGVtPy5pZCB8fCAnJwogICAgLy8gICB0aGlzLmFkZEVkaXRGb3JtLnJvYWRGdWxsSWQgPSBub2RlSXRlbT8ucGF0aCB8fCAnJwogICAgLy8gfSkKICAgIHRoaXMucHViU3ViID0gUHViU3ViLnN1YnNjcmliZSgnRWRpdEFkZFBhZ2UnLCBmdW5jdGlvbiAoXywgZGF0YSkgewogICAgICBjb25zb2xlLmxvZyhkYXRhLCAnNTU1NTU1NTU1NTU1NTUnKTsKICAgICAgY29uc29sZS5sb2coZGF0YS5yb2FkTmFtZSwgJy8vLy8vLy8vLy8vLy8vLy8vLy8vLycpOwogICAgICBpZiAoZGF0YS5yb2FkTmFtZSAhPT0gJycpIHsKICAgICAgICBfdGhpcy5hZGRFZGl0Rm9ybS5yb2FkTmFtZSA9IChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEucm9hZE5hbWUpIHx8ICcnOwogICAgICAgIF90aGlzLmFkZEVkaXRGb3JtLnJvYWRJZCA9IChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEuY2F0YWxvZ0lkKSB8fCAnJzsKICAgICAgICBfdGhpcy5hZGRFZGl0Rm9ybS5yb2FkRnVsbElkID0gKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5wYXRoKSB8fCAnJzsKICAgICAgfQogICAgICBjb25zb2xlLmxvZyhfdGhpcy5hZGRFZGl0Rm9ybS5yb2FkTmFtZSwgJ2Nhc2Nhc2Nhc2MnKTsKICAgICAgY29uc29sZS5sb2coX3RoaXMuYWRkRWRpdEZvcm0ucm9hZElkLCAnY2FzY2FzY2FzYzExMScpOwogICAgICBpZiAoZGF0YS5pZCkgewogICAgICAgIF90aGlzLmlkID0gZGF0YS5pZDsKICAgICAgICBfdGhpcy5nZXREZXRhaWwoZGF0YS5pZCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8gdGhpcy5hZGRFZGl0Rm9ybSA9IHsKICAgICAgICAvLyAgIG9wZXJhdG9yczogMSwKICAgICAgICAvLyAgIGlzQWxhcm06IDEsCiAgICAgICAgLy8gICBpc0ZpbGluZzogMSwKICAgICAgICAvLyAgIGlzT3duZWQ6IDEsCiAgICAgICAgLy8gICB1c2VUeXBlOiAxLAogICAgICAgIC8vICAgY2FyQ2xhc3M6IDEsCiAgICAgICAgLy8gICBzdWl0YWJpbGl0eUNhcjogMSwKICAgICAgICAvLyAgIHN1aXRhYmlsaXR5VHJ1Y2s6IDEsCiAgICAgICAgLy8gICByb2FkOiB7fSwKICAgICAgICAvLyAgIHJlc2N1ZToge30KICAgICAgICAvLyB9CiAgICAgICAgX3RoaXMuZ2V0Um9hZERhdGEoKTsKICAgICAgfQogICAgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICAvL+iOt+WPluaJgOWcqOi3r+auteWIl+ihqOaVsOaNrgogICAgZ2V0Um9hZERhdGE6IGZ1bmN0aW9uIGdldFJvYWREYXRhKHZhbHVlKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF95aWVsZCRyb2FkU2VjdGlvbkluZiwgX3lpZWxkJHJvYWRTZWN0aW9uSW5mMiwgcm93czsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gcm9hZFNlY3Rpb25JbmZvSW50ZXIoewogICAgICAgICAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgICAgICAgICAgcGFnZVNpemU6IC0xCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfeWllbGQkcm9hZFNlY3Rpb25JbmYgPSBfY29udGV4dC5zZW50OwogICAgICAgICAgICAgIF95aWVsZCRyb2FkU2VjdGlvbkluZjIgPSBfeWllbGQkcm9hZFNlY3Rpb25JbmYucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHJvYWRTZWN0aW9uSW5mMiA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkcm9hZFNlY3Rpb25JbmYyOwogICAgICAgICAgICAgIF90aGlzMi5yb2FkT3B0aW9ucyA9IHJvd3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICBpdGVtLnJvYWROYW1lID0gaXRlbS5uYW1lICsgJyAnICsgaXRlbS5jb2RlOwogICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgaWYgKCFfdGhpczIuaWQpIHsKICAgICAgICAgICAgICAgIC8vIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAncm9hZElkJywgdGhpcy5yb2FkT3B0aW9uc1swXS5pZCkKICAgICAgICAgICAgICAgIF90aGlzMi5yb2FkQ2hhbmdlKF90aGlzMi5yb2FkT3B0aW9uc1swXS5pZCk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIF90aGlzMi5yb2FkQ2hhbmdlKHZhbHVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICByb2FkQ2hhbmdlOiBmdW5jdGlvbiByb2FkQ2hhbmdlKHZhbHVlKSB7CiAgICAgIHRoaXMuZ2V0VGVhbURhdGEodmFsdWUpOwogICAgICB0aGlzLmdldFJlc2N1ZVBvaW50RGF0YSh2YWx1ZSk7CiAgICB9LAogICAgLy8g6YCa6L+H6Lev5q615L+h5oGv6I635Y+W5beh5p+l5pWR5o+06Zif5LyN5L+h5oGvCiAgICBnZXRUZWFtRGF0YTogZnVuY3Rpb24gZ2V0VGVhbURhdGEodmFsdWUpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIF95aWVsZCR0ZWFtRGF0YSwgX3lpZWxkJHRlYW1EYXRhJHJvd3MsIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF90aGlzMy5hZGRFZGl0Rm9ybS50ZWFtSWQgPSAnJzsKICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIHRlYW1EYXRhKHJlZmluZVJlcXVlc3RCb2R5KHsKICAgICAgICAgICAgICAgIHF1ZXJ5czogW3sKICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3IuaWRfJywKICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlCiAgICAgICAgICAgICAgICB9XQogICAgICAgICAgICAgIH0pLCAnYWRkRWRpdCcpOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX3lpZWxkJHRlYW1EYXRhID0gX2NvbnRleHQyLnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJHRlYW1EYXRhJHJvd3MgPSBfeWllbGQkdGVhbURhdGEucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHRlYW1EYXRhJHJvd3MgPT09IHZvaWQgMCA/IFtdIDogX3lpZWxkJHRlYW1EYXRhJHJvd3M7CiAgICAgICAgICAgICAgX3RoaXMzLnRlYW1PcHRpb25zID0gcm93czsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5qC55o2u6Lev5q615p+l6K+i5pWR5o+054K5CiAgICBnZXRSZXNjdWVQb2ludERhdGE6IGZ1bmN0aW9uIGdldFJlc2N1ZVBvaW50RGF0YSh2YWx1ZSkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMygpIHsKICAgICAgICB2YXIgX3lpZWxkJHJlc2N1ZVBvaW50RGF0LCBfeWllbGQkcmVzY3VlUG9pbnREYXQyLCByb3dzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMyQoX2NvbnRleHQzKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMucHJldiA9IF9jb250ZXh0My5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIHJlc2N1ZVBvaW50RGF0YShyZWZpbmVSZXF1ZXN0Qm9keSh7CiAgICAgICAgICAgICAgICBxdWVyeXM6IFt7CiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywKICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdyb2FkX2lkXycsCiAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZQogICAgICAgICAgICAgICAgfV0KICAgICAgICAgICAgICB9KSwgJ2FkZEVkaXQnKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF95aWVsZCRyZXNjdWVQb2ludERhdCA9IF9jb250ZXh0My5zZW50OwogICAgICAgICAgICAgIF95aWVsZCRyZXNjdWVQb2ludERhdDIgPSBfeWllbGQkcmVzY3VlUG9pbnREYXQucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHJlc2N1ZVBvaW50RGF0MiA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkcmVzY3VlUG9pbnREYXQyOwogICAgICAgICAgICAgIF90aGlzNC5yZXNjdWVQb2ludE9wdGlvbnMgPSByb3dzOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTMpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICB0ZWFtSWRDaGFuZ2U6IGZ1bmN0aW9uIHRlYW1JZENoYW5nZSgpIHsKICAgICAgdmFyIF90aGlzJCRyZWZzJGNhc2NhZGVyLCBfdGhpcyQkcmVmcyRjYXNjYWRlcjI7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0udGVhbUZ1bGxJZCA9ICgoX3RoaXMkJHJlZnMkY2FzY2FkZXIgPSB0aGlzLiRyZWZzLmNhc2NhZGVyKSA9PT0gbnVsbCB8fCBfdGhpcyQkcmVmcyRjYXNjYWRlciA9PT0gdm9pZCAwIHx8IChfdGhpcyQkcmVmcyRjYXNjYWRlciA9IF90aGlzJCRyZWZzJGNhc2NhZGVyLmdldENoZWNrZWROb2RlcygpWzBdKSA9PT0gbnVsbCB8fCBfdGhpcyQkcmVmcyRjYXNjYWRlciA9PT0gdm9pZCAwIHx8IChfdGhpcyQkcmVmcyRjYXNjYWRlciA9IF90aGlzJCRyZWZzJGNhc2NhZGVyLmRhdGEpID09PSBudWxsIHx8IF90aGlzJCRyZWZzJGNhc2NhZGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpcyQkcmVmcyRjYXNjYWRlci5wYXRoKSB8fCAnJzsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS50ZWFtSWQgPSAoKF90aGlzJCRyZWZzJGNhc2NhZGVyMiA9IHRoaXMuJHJlZnMuY2FzY2FkZXIpID09PSBudWxsIHx8IF90aGlzJCRyZWZzJGNhc2NhZGVyMiA9PT0gdm9pZCAwIHx8IChfdGhpcyQkcmVmcyRjYXNjYWRlcjIgPSBfdGhpcyQkcmVmcyRjYXNjYWRlcjIuZ2V0Q2hlY2tlZE5vZGVzKClbMF0pID09PSBudWxsIHx8IF90aGlzJCRyZWZzJGNhc2NhZGVyMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkJHJlZnMkY2FzY2FkZXIyLnZhbHVlKSB8fCAnJzsKICAgIH0sCiAgICAvLyDojrflj5blhazlj7jmoJEKICAgIGdldE9yZ1RyZWVEYXRhOiBmdW5jdGlvbiBnZXRPcmdUcmVlRGF0YSgpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQoKSB7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gb3JnVHJlZSgpOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX3RoaXM1LnRyZWVEYXRhID0gX2NvbnRleHQ0LnNlbnQ7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNCk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIGJsdXJDaGVja291dDogZnVuY3Rpb24gYmx1ckNoZWNrb3V0KGUpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTUoKSB7CiAgICAgICAgdmFyIGlkLCBfeWllbGQkdmVyaWZ5Q2FyTnVtYmUsIHN0YXRlOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlNSQoX2NvbnRleHQ1KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDUucHJldiA9IF9jb250ZXh0NS5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBpZCA9IF90aGlzNi5hZGRFZGl0Rm9ybS5pZCB8fCAnJzsKICAgICAgICAgICAgICBfY29udGV4dDUubmV4dCA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIHZlcmlmeUNhck51bWJlcih7CiAgICAgICAgICAgICAgICBpZDogaWQsCiAgICAgICAgICAgICAgICBjYXJOdW1iZXI6IGUudGFyZ2V0LnZhbHVlCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICBfeWllbGQkdmVyaWZ5Q2FyTnVtYmUgPSBfY29udGV4dDUuc2VudDsKICAgICAgICAgICAgICBzdGF0ZSA9IF95aWVsZCR2ZXJpZnlDYXJOdW1iZS5zdGF0ZTsKICAgICAgICAgICAgICBfdGhpczYuaXNDYXJOYW1iZXIgPSAhc3RhdGU7CiAgICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIHVwZGF0ZUZpbGU6IGZ1bmN0aW9uIHVwZGF0ZUZpbGUodXJsLCB0eXBlKSB7CiAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCB0eXBlLCB1cmwpOwogICAgfSwKICAgIGdldERpY3Rpb25hcnlCeUNvZGU6IGdldERpY3Rpb25hcnlCeUNvZGUsCiAgICAvLyDmiZPlvIDpobXpnaLmiafooYwKICAgIG9wZW5QYWdlOiBmdW5jdGlvbiBvcGVuUGFnZSgpIHt9LAogICAgLy8g5YWz6Zet6aG16Z2i5omn6KGMCiAgICBjbG9zZVBhZ2U6IGZ1bmN0aW9uIGNsb3NlUGFnZSgpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHZhciByb2FkT3B0aW9ucyA9IHRoaXMucm9hZE9wdGlvbnM7CiAgICAgIC8vIOmHjee9rue7hOS7tuaVsOaNrgogICAgICBPYmplY3QuYXNzaWduKHRoaXMuJGRhdGEsIHRoaXMuJG9wdGlvbnMuZGF0YS5jYWxsKHRoaXMpLCB7CiAgICAgICAgcHViU3ViOiB0aGlzLnB1YlN1YiwKICAgICAgICByb2FkT3B0aW9uczogcm9hZE9wdGlvbnMKICAgICAgfSk7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgdmFyIF90aGlzNyQkcmVmcyR1cGxvYWQ7CiAgICAgICAgX3RoaXM3LiRyZWZzLmFkZEVkaXRGb3JtLiRlbC5zY3JvbGxUb3AgPSAwOwogICAgICAgIF90aGlzNy4kcmVmcy5hZGRFZGl0Rm9ybS5jbGVhclZhbGlkYXRlKCk7CiAgICAgICAgKF90aGlzNyQkcmVmcyR1cGxvYWQgPSBfdGhpczcuJHJlZnMudXBsb2FkKSA9PT0gbnVsbCB8fCBfdGhpczckJHJlZnMkdXBsb2FkID09PSB2b2lkIDAgfHwgX3RoaXM3JCRyZWZzJHVwbG9hZC5jbGVhckZpbGVzKCk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOiOt+WPluivpuaDhQogICAgZ2V0RGV0YWlsOiBmdW5jdGlvbiBnZXREZXRhaWwoaWQpIHsKICAgICAgdmFyIF90aGlzOCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTYoKSB7CiAgICAgICAgdmFyIF95aWVsZCR0YWJsZURldGFpbCwgX3lpZWxkJHRhYmxlRGV0YWlsJHBvLCBwb2xpY3lGaWxlcywgX3lpZWxkJHRhYmxlRGV0YWlsJHJvLCByb2FkSWQsIGFkZEVkaXRGb3JtOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlNiQoX2NvbnRleHQ2KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDYucHJldiA9IF9jb250ZXh0Ni5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlRGV0YWlsKGlkKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURldGFpbCA9IF9jb250ZXh0Ni5zZW50OwogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURldGFpbCRwbyA9IF95aWVsZCR0YWJsZURldGFpbC5wb2xpY3lGaWxlczsKICAgICAgICAgICAgICBwb2xpY3lGaWxlcyA9IF95aWVsZCR0YWJsZURldGFpbCRwbyA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkdGFibGVEZXRhaWwkcG87CiAgICAgICAgICAgICAgX3lpZWxkJHRhYmxlRGV0YWlsJHJvID0gX3lpZWxkJHRhYmxlRGV0YWlsLnJvYWRJZDsKICAgICAgICAgICAgICByb2FkSWQgPSBfeWllbGQkdGFibGVEZXRhaWwkcm8gPT09IHZvaWQgMCA/ICcnIDogX3lpZWxkJHRhYmxlRGV0YWlsJHJvOwogICAgICAgICAgICAgIGFkZEVkaXRGb3JtID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF95aWVsZCR0YWJsZURldGFpbCwgX2V4Y2x1ZGVkKTsKICAgICAgICAgICAgICBfdGhpczguYWRkRWRpdEZvcm0gPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGFkZEVkaXRGb3JtKSwge30sIHsKICAgICAgICAgICAgICAgIHJvYWRJZDogcm9hZElkLAogICAgICAgICAgICAgICAgcG9saWN5RmlsZXM6IHBvbGljeUZpbGVzLAogICAgICAgICAgICAgICAgcm9hZE5hbWU6IGFkZEVkaXRGb3JtLnJvYWROYW1lIHx8IF90aGlzOC5hZGRFZGl0Rm9ybS5yb2FkTmFtZSwKICAgICAgICAgICAgICAgIC8vIOWmguaenOaOpeWPo+i/lOWbnueahCBvcmdOYW1lIOS4uuepuu+8jOS9v+eUqOW9k+WJjeihqOWNleeahCBvcmdOYW1l77yMCiAgICAgICAgICAgICAgICBwb2xpY3lGaWxlc0FycjogcG9saWN5RmlsZXMubWFwKGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGkpLCB7fSwgewogICAgICAgICAgICAgICAgICAgIG5hbWU6IGkuZmlsZU5hbWUKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIGlmIChfdGhpczgucm9hZE9wdGlvbnMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBfdGhpczgucm9hZENoYW5nZShyb2FkSWQpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBfdGhpczguZ2V0Um9hZERhdGEocm9hZElkKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgMTA6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ni5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTYpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDkv53lrZgKICAgIGhhbmRsZVNhdmU6IGZ1bmN0aW9uIGhhbmRsZVNhdmUoKSB7CiAgICAgIHZhciBfdGhpczkgPSB0aGlzOwogICAgICB0aGlzLiRyZWZzLmFkZEVkaXRGb3JtLnZhbGlkYXRlKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWYgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTcodmFsaWQsIG9iamVjdCkgewogICAgICAgICAgdmFyIG15SW50ZXJGYWNlLCByZXNwb25zZSwgc3RhdGUsIG1lc3NhZ2UsIGFjdGlvbjsKICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlNyQoX2NvbnRleHQ3KSB7CiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Ny5wcmV2ID0gX2NvbnRleHQ3Lm5leHQpIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSA0OwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF90aGlzOS4kbWVzc2FnZS53YXJuaW5nKCJcdTY3MDkiLmNvbmNhdChPYmplY3Qua2V5cyhvYmplY3QpLmxlbmd0aCwgIlx1NEUyQVx1NUI1N1x1NkJCNVx1NjcyQVx1OTAxQVx1OEZDN1x1NjgyMVx1OUE4Q1x1RkYwQ1x1OEJGN1x1NkI2M1x1Nzg2RVx1NTg2Qlx1NTE5OVx1ODg2OFx1NTM1NVx1NTE4NVx1NUJCOVx1MzAwMiIpKTsKICAgICAgICAgICAgICAgIF9jb250ZXh0Ny5uZXh0ID0gMjA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICBpZiAoX3RoaXM5LmlzQ2FyTmFtYmVyKSB7CiAgICAgICAgICAgICAgICAgIF9jb250ZXh0Ny5uZXh0ID0gMTk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgX3RoaXM5LnNhdmVMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgIG15SW50ZXJGYWNlID0gX3RoaXM5LmlkID8gdGFibGVFZGl0IDogdGFibGVBZGQ7CiAgICAgICAgICAgICAgICBfY29udGV4dDcucHJldiA9IDc7CiAgICAgICAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDEwOwogICAgICAgICAgICAgICAgcmV0dXJuIG15SW50ZXJGYWNlKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXM5LmFkZEVkaXRGb3JtKSwge30sIHsKICAgICAgICAgICAgICAgICAgcm9hZElkOiBfdGhpczkuYWRkRWRpdEZvcm0ucm9hZElkLAogICAgICAgICAgICAgICAgICAvLyDkvKDpgJIgb3JnSWQKICAgICAgICAgICAgICAgICAgcm9hZE5hbWU6IF90aGlzOS5hZGRFZGl0Rm9ybS5yb2FkTmFtZSwKICAgICAgICAgICAgICAgICAgLy8g5Lyg6YCSIG9yZ05hbWUKICAgICAgICAgICAgICAgICAgcm9hZEZ1bGxJZDogX3RoaXM5LmFkZEVkaXRGb3JtLnJvYWRGdWxsSWQsCiAgICAgICAgICAgICAgICAgIC8vIOS8oOmAkiByb2FkRnVsbElkCiAgICAgICAgICAgICAgICAgIHR5cGU6IF90aGlzOS5hZGRFZGl0Rm9ybS50eXBlLAogICAgICAgICAgICAgICAgICAvLyDkvKDpgJLpmJ/kvI3nsbvlnovnmoQgdmFsdWUKICAgICAgICAgICAgICAgICAgdXNlVHlwZTogTnVtYmVyKF90aGlzOS5hZGRFZGl0Rm9ybS51c2VUeXBlKSwKICAgICAgICAgICAgICAgICAgY2FyQ2xhc3M6IE51bWJlcihfdGhpczkuYWRkRWRpdEZvcm0uY2FyQ2xhc3MpCiAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gX2NvbnRleHQ3LnNlbnQ7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhfdGhpczkuYWRkRWRpdEZvcm0ucm9hZElkLCAnMTExMTIyMjIyMTExMScpOwogICAgICAgICAgICAgICAgc3RhdGUgPSByZXNwb25zZS5zdGF0ZSwgbWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2U7CiAgICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgICAgYWN0aW9uID0gX3RoaXM5LmlkID8gJ+e8lui+kScgOiAn5paw5aKeJzsKICAgICAgICAgICAgICAgICAgX3RoaXM5LiRtZXNzYWdlLnN1Y2Nlc3MoIiIuY29uY2F0KGFjdGlvbiwgIlx1NjIxMFx1NTI5RiIpKTsKICAgICAgICAgICAgICAgICAgUHViU3ViLnB1Ymxpc2goJ1RhYmxlUGFnZScsIHsKICAgICAgICAgICAgICAgICAgICB0eXBlOiBfdGhpczkuaWQgPyAnZWRpdCcgOiAnYWRkJwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgLy8g6LCD55SoIGNoYW5nZVBhZ2Ug5pa55rOV77yM5Lyg6YCS5q2j56Gu55qE5Y+C5pWwCiAgICAgICAgICAgICAgICAgIF90aGlzOS5jaGFuZ2VQYWdlKCdUYWJsZVBhZ2UnLCBfdGhpczkuaWQgPyAnZWRpdCcgOiAnYWRkJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2FzZSAxNDoKICAgICAgICAgICAgICAgIF9jb250ZXh0Ny5wcmV2ID0gMTQ7CiAgICAgICAgICAgICAgICBfdGhpczkuc2F2ZUxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDcuZmluaXNoKDE0KTsKICAgICAgICAgICAgICBjYXNlIDE3OgogICAgICAgICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAyMDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMTk6CiAgICAgICAgICAgICAgICBfdGhpczkuJG1lc3NhZ2UuZXJyb3IoJ+i9pueJjOWPt+W3suWtmOWcqO+8jOivt+mHjeaWsOW9leWFpScpOwogICAgICAgICAgICAgIGNhc2UgMjA6CiAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDcuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlNywgbnVsbCwgW1s3LCwgMTQsIDE3XV0pOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94LCBfeDIpIHsKICAgICAgICAgIHJldHVybiBfcmVmLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKTsKICAgIH0sCiAgICAvLyDlsZXnpLrlvLnlsYIKICAgIHNob3dEaWFsb2c6IGZ1bmN0aW9uIHNob3dEaWFsb2coZGlhbG9nTmFtZSkgewogICAgICBpZiAoIWRpYWxvZ05hbWUpIHJldHVybjsKICAgICAgdGhpc1tkaWFsb2dOYW1lICsgJ0RpYWxvZyddID0gdHJ1ZTsKICAgIH0sCiAgICAvLyDmlLnlj5jpobXpnaIKICAgIGNoYW5nZVBhZ2U6IGZ1bmN0aW9uIGNoYW5nZVBhZ2UoKSB7CiAgICAgIHZhciBwYWdlTmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogJyc7CiAgICAgIHZhciB0eXBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAnJzsKICAgICAgaWYgKCFwYWdlTmFtZSkgcmV0dXJuOwogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2VQYWdlJywgcGFnZU5hbWUsIGZ1bmN0aW9uIChfKSB7CiAgICAgICAgUHViU3ViLnB1Ymxpc2gocGFnZU5hbWUsIHsKICAgICAgICAgIHR5cGU6IHR5cGUKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgLy8g5Zyo57uE5Lu26ZSA5q+B5LmL5YmNIOa4hemZpOiuoumYhea2iOaBrwogICAgUHViU3ViLnVuc3Vic2NyaWJlKHRoaXMucHViU3ViKTsKICB9Cn07"},null]}