{"remainingRequest":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Manage\\saftyDanger\\components\\CmgtSaftyDangerCheckrecordFormDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Manage\\saftyDanger\\components\\CmgtSaftyDangerCheckrecordFormDialog.vue","mtime":1731062409394},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgQ21ndFNhZnR5RGFuZ2VyQ2hlY2tyZWNvcmRBcGkgZnJvbSAnQC92aWV3cy9NYW5hZ2Uvc2FmdHlEYW5nZXIvYXBpL0NtZ3RTYWZ0eURhbmdlckNoZWNrcmVjb3JkQXBpJw0KaW1wb3J0IGRpY3RDb250cmFjdHMgZnJvbSAnQC9jb21wb25lbnRzL2RpY3QvRGljdFNlbGVjdFV0aWxzLmpzJw0KaW1wb3J0IENtZ3RTYWZ0eURhbmdlckNoZWNrcGxhbkFwaSBmcm9tICdAL3ZpZXdzL01hbmFnZS9zYWZ0eURhbmdlci9hcGkvQ21ndFNhZnR5RGFuZ2VyQ2hlY2twbGFuQXBpJw0KaW1wb3J0IHByb2dyYW1BcGkgZnJvbSAnQC92aWV3cy9NYW5hZ2Uvc2FmdHlEYW5nZXIvYXBpL3Byb2dyYW1BcGknDQppbXBvcnQgbmluZUxpdHRsZVBsYWNlQXBpIGZyb20gJ0Avdmlld3MvTWFuYWdlL3NhZnR5RGFuZ2VyL2FwaS9uaW5lTGl0dGxlUGxhY2VBcGknDQppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnDQoNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogJ0NtZ3RTYWZ0eURhbmdlckNoZWNrcmVjb3JkRm9ybURpYWxvZycsDQogIGNvbXBvbmVudHM6IHt9LA0KICBwcm9wczoge30sDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIGFjdGl2ZUNvbGxhcHNlRGlhOiAnMScsDQogICAgICByZWFkVHlwZTogZmFsc2UsDQogICAgICB0aXRsZTogJ+aWsOWinicsDQogICAgICBzaG93Rm9ybURpYTogZmFsc2UsDQogICAgICBkd2Rpc2FibGVkOiBmYWxzZSwNCiAgICAgIGFjdGl2ZUNvbGxhcHNlTmFtZXM6IFsnMScsICcyJywgJzMnXSwNCiAgICAgIHBhcmFtczogew0KICAgICAgICBjaGVja3NjaGVtZUlkOiBudWxsLA0KICAgICAgICBjaGVja1llYXJNb250aDogbnVsbCwNCiAgICAgICAgdW5pdFR5cGU6IG51bGwsDQogICAgICAgIHVuaXROYW1lOiBudWxsLA0KICAgICAgICB1bml0SWQ6IG51bGwsDQogICAgICAgIHVuaXRBZGRyZXNzOiBudWxsLA0KICAgICAgICByZWNvcmROYW1lOiBudWxsLA0KICAgICAgICB1bml0VXNlcnBob25lOiBudWxsLA0KICAgICAgICBoaWRkZW5EYW5nZXI6ICcyJywNCiAgICAgICAgY2hlY2tEYXRlOiBudWxsLA0KICAgICAgICBjaGVja0NvbnRlbnQ6IG51bGwsDQogICAgICAgIGxlYWRVc2VybmFtZTogbnVsbCwNCiAgICAgICAgY2hlY2tVc2VybmFtZTogbnVsbCwNCiAgICAgICAgLy8gc3RhdHVzOiBudWxsLA0KICAgICAgICByZWZvcm1Vc2VybmFtZTogbnVsbCwNCiAgICAgICAgcmVmb3JtVW5pdG5hbWU6IG51bGwsDQogICAgICAgIGxhdGVzdFRpbWVMaW1pdDogbnVsbCwNCiAgICAgICAgbGF0ZXN0UmV2aWV3RGF0ZTogbnVsbCwNCiAgICAgICAgY29tcGxldGVEYXRlOiBudWxsLA0KICAgICAgICByZWZvcm1SZXF1aXJlOiBudWxsLA0KICAgICAgICB1bml0VXNlcm5hbWU6IG51bGwsDQogICAgICAgIGNvbnRyb2xNZW1vOiBudWxsLA0KICAgICAgICAvLyByZWZvcm1Db250ZW50OiBudWxsLA0KICAgICAgICBkZXRhaWw6IFtdDQogICAgICB9LA0KICAgICAgcnVsZXM6IHsNCiAgICAgICAgY2hlY2tEYXRlOiBbDQogICAgICAgICAgew0KICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsDQogICAgICAgICAgICBtZXNzYWdlOiAn6ZqQ5oKj5o6S5p+l5Y+R546w5pe26Ze06IO95Li656m6JywNCiAgICAgICAgICAgIHRyaWdnZXI6ICdibHVyJw0KICAgICAgICAgIH0NCiAgICAgICAgXSwNCiAgICAgICAgbGF0ZXN0VGltZUxpbWl0OiBbDQogICAgICAgICAgew0KICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLA0KICAgICAgICAgICAgbWVzc2FnZTogJ+acgOi/n+aVtOaUueacn+mZkCjlpKkp5LiN6IO95Li656m6JywNCiAgICAgICAgICAgIHRyaWdnZXI6ICdibHVyJw0KICAgICAgICAgIH0NCiAgICAgICAgXQ0KICAgICAgfSwNCiAgICAgIHR5cGVzOiBbXSwNCiAgICAgIHVuaXRzOiBbXSwNCiAgICAgIHNjaGVtZUxpc3Q6IFtdLA0KICAgICAgaXNGYzogZmFsc2UsDQogICAgICBpc0FkZDogdHJ1ZSwNCiAgICAgIGRpc2FibGVkRmM6IGZhbHNlLA0KICAgICAgZGlhbG9nSW1hZ2VVcmw6ICcnLA0KICAgICAgZGlhbG9nVmlzaWJsZTogZmFsc2UsDQogICAgICBkaXNhYmxlZDogZmFsc2UsDQogICAgICB1cGxvYWRVcmw6IHdpbmRvdy5jb250ZXh0LnBvcnRhbCArICcvZmlsZS92MS91cGxvYWRGaWxlRm9yQ29uZmlnJywgLy8g5pyN5Yqh5Zmo5LiK5Lyg5Zyw5Z2ADQogICAgICBwcmV2aWV3VXJsOg0KICAgICAgICB3aW5kb3cuY29udGV4dC5wb3J0YWwgKw0KICAgICAgICAnL2ZpbGUvb25saW5lUHJldmlld0NvbnRyb2xsZXIvdjEvZ2V0RmlsZUJ5SWRfJywNCiAgICAgIHVuaXREYXRhOiBbXSwNCiAgICAgIHNjaGVtZUxpc3Q6IFtdLA0KICAgICAgYXF5aGx4TGlzdDogW10sDQogICAgICB5aHp0TGlzdDogW10sDQogICAgICBzaG93RGV0YWlsZUxpc3Q6IGZhbHNlLCAvLyDmmL7npLrlronlhajmo4Dmn6XorrDlvZXlvLnlsYINCiAgICAgIGRldGFpbExpc3RGcm9tOiB7DQogICAgICAgIGNoZWNrUmVjb3JkSWQ6IG51bGwsDQogICAgICAgIHVuaXRJZDogbnVsbCwNCiAgICAgICAgZ3JlYXREYW5nZXI6ICcyJywNCiAgICAgICAgZGFuZ2VyVHlwZTogbnVsbCwNCiAgICAgICAgcmVmb3JtSW1nVXJsQXJyYXk6IFtdLA0KICAgICAgICBpbWdVcmxBcnJheTogW10sDQogICAgICAgIGNoZWNrRGF0ZTogbnVsbCwNCiAgICAgICAgZGFuZ2VyQ29udGVudDogbnVsbCwNCiAgICAgICAgcmVmb3JtU3VnZ3Vlc3Q6IG51bGwsDQogICAgICAgIHJlZmVyZW5jZTogbnVsbCwNCiAgICAgICAgaWQ6IG51bGwNCiAgICAgIH0sDQogICAgICBkZXRhaWxUaXRsZTogJ+aWsOWinuWuieWFqOajgOafpeiusOW9lScsDQogICAgICBydWxlc0RldGFpbDogew0KICAgICAgICBkYW5nZXJUeXBlOiBbDQogICAgICAgICAgew0KICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsDQogICAgICAgICAgICBtZXNzYWdlOiAn6ZqQ5oKj57G75Z6L5LiN6IO95Li656m6JywNCiAgICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnDQogICAgICAgICAgfQ0KICAgICAgICBdLA0KICAgICAgICBncmVhdERhbmdlcjogWw0KICAgICAgICB7DQogICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwNCiAgICAgICAgICAgIG1lc3NhZ2U6ICfmmK/lkKbmmK/ph43lpKfpmpDmgqPkuI3og73kuLrnqbonLA0KICAgICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScNCiAgICAgICAgICB9DQogICAgICAgIF0sDQogICAgICAgIGRhbmdlckNvbnRlbnQ6IFsNCiAgICAgICAgICB7DQogICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwNCiAgICAgICAgICAgIG1lc3NhZ2U6ICfpmpDmgqPlhoXlrrnkuI3og73kuLrnqbonLA0KICAgICAgICAgICAgdHJpZ2dlcjogJ2JsdXInDQogICAgICAgICAgfQ0KICAgICAgICBdLA0KICAgICAgICByZWZvcm1TdWdndWVzdDogWw0KICAgICAgICAgIHsNCiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLA0KICAgICAgICAgICAgbWVzc2FnZTogJ+aVtOaUueaOquaWveW7uuiuruS4jeiDveS4uuepuicsDQogICAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicNCiAgICAgICAgICB9DQogICAgICAgIF0NCiAgICAgIH0sDQogICAgICBhY3RpdmVTdGVwOiAwLA0KICAgICAgaXNEYW5nZXI6IGZhbHNlDQogICAgfQ0KICB9LA0KICBjcmVhdGVkKCkgew0KICAgIHRoaXMuZ3JlYXREYW5nZXJMaXN0ID0gZGljdENvbnRyYWN0cy5nZXREaWN0SXRlbXNGcm9tQ2FjaGUoJ3R5LXNmJykNCiAgICB0aGlzLmFxeWhseExpc3QgPSBkaWN0Q29udHJhY3RzLmdldERpY3RJdGVtc0Zyb21DYWNoZSgnY21ndF9hcXlobHgnKQ0KICAgIHRoaXMuZHdseExpc3QgPSBkaWN0Q29udHJhY3RzLmdldERpY3RJdGVtc0Zyb21DYWNoZSgnemhnbC1kd2x4JykNCiAgICB0aGlzLnloenRMaXN0ID0gZGljdENvbnRyYWN0cy5nZXREaWN0SXRlbXNGcm9tQ2FjaGUoJ3loenQnKQ0KICAgIHRoaXMueWh6dExpc3Quc3BsaWNlKDQsIDEpDQogICAgdGhpcy5nZXRTY2hlbWUoKQ0KICAgIHRoaXMuZ2V0VW5pdCgpDQogICAgLy8gQ21ndFNhZnR5RGFuZ2VyQ2hlY2twbGFuQXBpLmxvYWRBbGxVbml0KHJlcyA9PiB7DQogICAgLy8gCXRoaXMudW5pdHMgPSByZXMNCiAgICAvLyB9KQ0KICB9LA0KICBjb21wdXRlZDogbWFwU3RhdGUoew0KICAgIGhlYWRlcjogc3RhdGUgPT4gew0KICAgICAgcmV0dXJuIHsNCiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3N0YXRlLmxvZ2luLmN1cnJlbnRVc2VyLnRva2VufWANCiAgICAgIH0NCiAgICB9DQogIH0pLA0KICBtZXRob2RzOiB7DQogICAgaGlkZGVuRGFuZ2VyQ2hhbmdlKGUpIHsNCiAgICAgIHRoaXMucGFyYW1zLmhpZGRlbkRhbmdlciA9IGUgPyAnMScgOiAnMicNCiAgICB9LA0KICAgIC8vIOWtl+WFuOi9rOS5iQ0KICAgIGRpY3RUcmFuc2xhdGlvbihkaWN0TGlzdCwgdmFsdWUsIGRpY3RWYWx1ZSwgZGljdExhYmVsKSB7DQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpY3RMaXN0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkaWN0TGlzdFtpXVtkaWN0VmFsdWVdID09PSB2YWx1ZSkgew0KICAgICAgICAgIHJldHVybiBkaWN0TGlzdFtpXVtkaWN0TGFiZWxdDQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9LA0KICAgIERhbmdlclVuaXRJZChpZCkgew0KICAgICAgQ21ndFNhZnR5RGFuZ2VyQ2hlY2tyZWNvcmRBcGkuY21ndFNhZnR5RGFuZ2VyVW5pdElkKGlkLCByZXMgPT4gew0KICAgICAgICBjb25zb2xlLmxvZyhyZXMpDQogICAgICAgIHRoaXMucGFyYW1zLnVuaXRBZGRyZXNzID0gcmVzLnVuaXRBZGRyZXNzDQogICAgICAgIHRoaXMucGFyYW1zLnVuaXRVc2VybmFtZSA9IHJlcy5uYW1lDQogICAgICAgIHRoaXMucGFyYW1zLnVuaXRVc2VycGhvbmUgPSByZXMucGhvbmUNCiAgICAgICAgdGhpcy5wYXJhbXMudW5pdFR5cGUgPSByZXMudHlwZQ0KICAgICAgfSkNCiAgICB9LA0KICAgIC8vDQogICAgdW5pdElkSW5wdXQodmFsKSB7DQogICAgICB0aGlzLkRhbmdlclVuaXRJZCh2YWwpDQogICAgfSwNCiAgICAvL+mAieaLqeajgOafpeaWueahiOWQjuiHquWKqOWhq+WFheWtl+auteajgOafpeW5tOW6pg0KICAgIENoZWNrc2NoZW1lSWQoaWQpIHsNCiAgICAgIC8vIGNvbnNvbGUubG9nKGlkKQ0KICAgICAgQ21ndFNhZnR5RGFuZ2VyQ2hlY2tyZWNvcmRBcGkuY21ndFNhZnR5RGFuZ2VyQ2hlY2tzY2hlbWVJZCgNCiAgICAgICAgaWQsDQogICAgICAgIHJlcyA9PiB7DQogICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzKQ0KICAgICAgICAgIHRoaXMucGFyYW1zLmNoZWNrWWVhck1vbnRoID0gcmVzLmNoZWNrWWVhck1vbnRoDQogICAgICAgIH0NCiAgICAgICkNCiAgICB9LA0KICAgIC8v6YCJ5oup5qOA5p+l5pa55qGI5ZCO6Ieq5Yqo5aGr5YWF5a2X5q615qOA5p+l5bm05bqmDQogICAgY2hlY2tzY2hlbWVJZElucHV0KHZhbCkgew0KICAgICAgdGhpcy5DaGVja3NjaGVtZUlkKHZhbCkNCiAgICB9LA0KICAgIC8v5pyA6L+f5pW05pS55pyf6ZmQDQogICAgbGF0ZXN0VGltZUlucHV0KCkgew0KICAgICAgaWYgKHRoaXMucGFyYW1zLmxhdGVzdFRpbWVMaW1pdCAmJiB0aGlzLnBhcmFtcy5jaGVja0RhdGUpIHsNCiAgICAgICAgdGhpcy5wYXJhbXMubGF0ZXN0UmV2aWV3RGF0ZSA9IHRoaXMuZGF5anModGhpcy5wYXJhbXMuY2hlY2tEYXRlKQ0KICAgICAgICAgIC5hZGQodGhpcy5wYXJhbXMubGF0ZXN0VGltZUxpbWl0LCAnZGF5JykNCiAgICAgICAgICAuZm9ybWF0KCdZWVlZLU1NLUREJykNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMucGFyYW1zLmxhdGVzdFJldmlld0RhdGUgPSBudWxsDQogICAgICB9DQogICAgfSwNCiAgICAvL+iOt+WPluWNleS9jQ0KICAgIGdldFVuaXQoKSB7DQogICAgICBuaW5lTGl0dGxlUGxhY2VBcGkubG9hZENtZ3RTYWZ0eURhbmdlclVuaXQoDQogICAgICAgIHsNCiAgICAgICAgICBwYWdlQmVhbjogew0KICAgICAgICAgICAgcGFnZVNpemU6IC0xLA0KICAgICAgICAgICAgcGFnZTogMQ0KICAgICAgICAgIH0NCiAgICAgICAgfSkudGhlbihyZXMgPT4gew0KICAgICAgICAgIHRoaXMudG90YWwgPSByZXMuZGF0YS50b3RhbA0KICAgICAgICAgIHRoaXMudW5pdERhdGEgPSByZXMuZGF0YS5yb3dzDQogICAgICAgIH0NCiAgICAgICAgKQ0KICAgIH0sDQogICAgZ2V0U2NoZW1lKCkgew0KICAgICAgcHJvZ3JhbUFwaS5sb2FkQ21ndFNhZnR5RGFuZ2VyVW5pdCgNCiAgICAgICAgew0KICAgICAgICAgIHBhZ2VCZWFuOiB7DQogICAgICAgICAgICBwYWdlU2l6ZTogLTEsDQogICAgICAgICAgICBwYWdlOiAxDQogICAgICAgICAgfQ0KICAgICAgICB9LA0KICAgICAgICByZXMgPT4gew0KICAgICAgICAgIHRoaXMudG90YWwgPSByZXMudG90YWwNCiAgICAgICAgICB0aGlzLnNjaGVtZUxpc3QgPSByZXMucm93cw0KICAgICAgICB9DQogICAgICApDQogICAgfSwNCiAgICBoYW5kbGVUYXJnZXQoaXRlbSkgew0KICAgICAgbGV0IGFyciA9IHRoaXMudW5pdERhdGEuZmlsdGVyKGUgPT4gZS5pZCA9PSBpdGVtKQ0KICAgICAgdGhpcy5wYXJhbXMudW5pdE5hbWUgPSBhcnJbMF0udW5pdE5hbWUNCiAgICB9LA0KICAgIGhhbmRsZUF2YXRhclN1Y2Nlc3MocmVzLCBmaWxlLCBmaWxlTGlzdCkgew0KICAgICAgaWYgKHJlcy5zdWNjZXNzKSB7DQogICAgICAgIGxldCBhcnIgPSBbXQ0KICAgICAgICBhcnIucHVzaChyZXMuZmlsZUlkKQ0KICAgICAgICB0aGlzLmRldGFpbExpc3RGcm9tLmltZ1VybEFycmF5ID0gdGhpcy5kZXRhaWxMaXN0RnJvbS5pbWdVcmxBcnJheS5jb25jYXQoDQogICAgICAgICAgYXJyDQogICAgICAgICkNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+S4iuS8oOaWh+S7tuWksei0pe+8gScpDQogICAgICB9DQogICAgfSwNCiAgICBoYW5kbGVBdmF0YXJTdWNjZXNzMShyZXMsIGZpbGUsIGZpbGVMaXN0KSB7DQogICAgICBpZiAocmVzLnN1Y2Nlc3MpIHsNCiAgICAgICAgbGV0IGFyciA9IFtdDQogICAgICAgIGFyci5wdXNoKHJlcy5maWxlSWQpDQogICAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20ucmVmb3JtSW1nVXJsQXJyYXkgPSB0aGlzLmRldGFpbExpc3RGcm9tLnJlZm9ybUltZ1VybEFycmF5LmNvbmNhdCgNCiAgICAgICAgICBhcnINCiAgICAgICAgKQ0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcign5LiK5Lyg5paH5Lu25aSx6LSl77yBJykNCiAgICAgIH0NCiAgICB9LA0KICAgIGJlZm9yZUF2YXRhclVwbG9hZChmaWxlKSB7DQogICAgICBjb25zb2xlLmxvZyhmaWxlKQ0KICAgICAgY29uc3QgaXNKUEcgPQ0KICAgICAgICBmaWxlLnR5cGUgPT09ICdpbWFnZS9qcGVnJyB8fA0KICAgICAgICBmaWxlLnR5cGUgPT09ICdpbWFnZS9wbmcnIHx8DQogICAgICAgIGZpbGUudHlwZSA9PT0gJ2ltYWdlL2pwZycNCiAgICAgIGNvbnN0IGlzTHQxTSA9IGZpbGUuc2l6ZSAvIDEwMjQgLyAxMDI0IDwgMTANCiAgICAgIGlmICghaXNKUEcpIHsNCiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcign5LiK5Lyg5Zu+54mH5Y+q6IO95pivIEpQRyDmoLzlvI8hJykNCiAgICAgIH0NCiAgICAgIGlmICghaXNMdDFNKSB7DQogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+S4iuS8oOWbvueJh+Wkp+Wwj+S4jeiDvei2hei/hyAxTUIhJykNCiAgICAgIH0NCiAgICAgIHJldHVybiBpc0pQRyAmJiBpc0x0MU0NCiAgICB9LA0KDQogICAgYWRkUmVjb3JkKHJvdywgZHcpIHsNCiAgICAgIHRoaXMucGFyYW1zLnJlY2lwaWVudCA9IHJvdy5yZWNpcGllbnQNCiAgICAgIHRoaXMucGFyYW1zLmxvY2F0aW9uID0gZHcuYWRkcmVzcw0KICAgICAgdGhpcy5wYXJhbXMuY2hlY2twbGFuSWQgPSByb3cuaWQNCiAgICAgIHRoaXMuZHdkaXNhYmxlZCA9IHRydWUNCg0KICAgICAgLy8gdGhpcy5wYXJhbXMuc3RhdHVzID0gJzEnIC8vIOaWsOWing0KICAgICAgdGhpcy5zaG93Rm9ybURpYSA9IHRydWUNCiAgICB9LA0KICAgIGFkZCgpIHsNCiAgICAgIHRoaXMucmVhZFR5cGUgPSBmYWxzZQ0KICAgICAgLy8gdGhpcy5wYXJhbXMuc3RhdHVzID0gJzEnIC8vIOaWsOWing0KICAgICAgdGhpcy5zaG93Rm9ybURpYSA9IHRydWUNCiAgICB9LA0KICAgIGFkZFRhYmxlKCkgew0KICAgICAgdGhpcy5kZXRhaWxMaXN0RnJvbS5jaGVja1JlY29yZElkID0gdGhpcy5wYXJhbXMuaWQNCiAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20udW5pdElkID0gdGhpcy5wYXJhbXMudW5pdElkDQogICAgICB0aGlzLiRzZXQodGhpcy5kZXRhaWxMaXN0RnJvbSwgJ2dyZWF0RGFuZ2VyJyAsICcyJykNCiAgICAgIHRoaXMuZGV0YWlsVGl0bGUgPSAn5paw5aKe5a6J5YWo5qOA5p+l6K6w5b2VJw0KICAgICAgdGhpcy5zaG93RGV0YWlsZUxpc3QgPSB0cnVlDQogICAgICB0aGlzLiRyZWZzLmRldGFpbEZvcm1JbmZvPy5jbGVhclZhbGlkYXRlKCkNCiAgICB9LA0KICAgIGRibGNsaWNrRGV0YWlsKHJvdykgew0KICAgICAgY29uc29sZS5sb2cocm93KTsNCiAgICAgIA0KICAgICAgdGhpcy5kZXRhaWxMaXN0RnJvbS5jaGVja1JlY29yZElkID0gcm93LmNoZWNrUmVjb3JkSWQNCiAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20udW5pdElkID0gcm93LnVuaXRJZA0KICAgICAgdGhpcy5kZXRhaWxMaXN0RnJvbS5pbWdVcmxBcnJheSA9IHJvdy5pbWdVcmxBcnJheQ0KICAgICAgICA/IHJvdy5pbWdVcmxBcnJheQ0KICAgICAgICA6IFtdDQogICAgICB0aGlzLmRldGFpbExpc3RGcm9tLnJlZm9ybUltZ1VybEFycmF5ID0gcm93LnJlZm9ybUltZ1VybEFycmF5DQogICAgICAgID8gcm93LnJlZm9ybUltZ1VybEFycmF5DQogICAgICAgIDogW10NCiAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20uY2hlY2tEYXRlID0gcm93LmNoZWNrRGF0ZQ0KICAgICAgdGhpcy5kZXRhaWxMaXN0RnJvbS5kYW5nZXJDb250ZW50ID0gcm93LmRhbmdlckNvbnRlbnQNCiAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20ucmVmb3JtU3VnZ3Vlc3QgPSByb3cucmVmb3JtU3VnZ3Vlc3QNCiAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20ucmVmZXJlbmNlID0gcm93LnJlZmVyZW5jZQ0KICAgICAgdGhpcy5kZXRhaWxMaXN0RnJvbS5pZCA9IHJvdy5pZA0KICAgICAgdGhpcy5kZXRhaWxMaXN0RnJvbS5kYW5nZXJUeXBlID0gcm93LmRhbmdlclR5cGUNCiAgICAgIHRoaXMuJHNldCh0aGlzLmRldGFpbExpc3RGcm9tLCAnZ3JlYXREYW5nZXInICwgcm93LmdyZWF0RGFuZ2VyKQ0KICAgICAgdGhpcy5kZXRhaWxUaXRsZSA9ICfkv67mlLnlronlhajmo4Dmn6XorrDlvZUnDQogICAgICB0aGlzLnNob3dEZXRhaWxlTGlzdCA9IHRydWUNCiAgICB9LA0KICAgIGRlbFRhYmxlKGluZGV4LCByb3cpIHsNCiAgICAgIC8vIHRoaXMucGFyYW1zLmRldGFpbC5zcGxpY2UoaW5kZXgsIDEpDQogICAgICBDbWd0U2FmdHlEYW5nZXJDaGVja3JlY29yZEFwaS5DU2FmdHlEYW5nZXJDaGVja3JlY29yZERldGFpbERlbGV0ZSgNCiAgICAgICAgW3Jvdy5pZF0sDQogICAgICAgIHJlcyA9PiB7DQogICAgICAgICAgdGhpcy4kbm90aWZ5KHsNCiAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywNCiAgICAgICAgICAgIG1lc3NhZ2U6ICfliKDpmaTmiJDlip8nLA0KICAgICAgICAgICAgZHVyYXRpb246IDIwMDANCiAgICAgICAgICB9KQ0KICAgICAgICAgIHRoaXMuZ2V0VGFibGVEYXRhKHsgaWQ6IHRoaXMucGFyYW1zLmlkIH0sICcnLCAn5a6J5YWo5L+u5pS5JykNCiAgICAgICAgfQ0KICAgICAgKQ0KICAgIH0sDQogICAgaGFuZGxlQ2xvc2UoKSB7DQogICAgICB0aGlzLnBhcmFtcyA9IHsNCiAgICAgICAgY2hlY2tzY2hlbWVJZDogbnVsbCwNCiAgICAgICAgY2hlY2tZZWFyTW9udGg6IG51bGwsDQogICAgICAgIHVuaXRUeXBlOiBudWxsLA0KICAgICAgICB1bml0TmFtZTogbnVsbCwNCiAgICAgICAgdW5pdElkOiBudWxsLA0KICAgICAgICB1bml0QWRkcmVzczogbnVsbCwNCiAgICAgICAgdW5pdFVzZXJwaG9uZTogbnVsbCwNCiAgICAgICAgaGlkZGVuRGFuZ2VyOiAnMicsDQogICAgICAgIGNoZWNrRGF0ZTogbnVsbCwNCiAgICAgICAgY2hlY2tDb250ZW50OiBudWxsLA0KICAgICAgICBsZWFkVXNlcm5hbWU6IG51bGwsDQogICAgICAgIHVuaXRVc2VybmFtZTogbnVsbCwNCiAgICAgICAgY2hlY2tVc2VybmFtZTogbnVsbCwNCiAgICAgICAgcmVjb3JkTmFtZTogbnVsbCwNCiAgICAgICAgLy8gc3RhdHVzOiBudWxsLA0KICAgICAgICByZWZvcm1Vc2VybmFtZTogbnVsbCwNCiAgICAgICAgcmVmb3JtVW5pdG5hbWU6IG51bGwsDQogICAgICAgIGxhdGVzdFRpbWVMaW1pdDogbnVsbCwNCiAgICAgICAgbGF0ZXN0UmV2aWV3RGF0ZTogbnVsbCwNCiAgICAgICAgY29tcGxldGVEYXRlOiBudWxsLA0KICAgICAgICByZWZvcm1SZXF1aXJlOiBudWxsLA0KICAgICAgICBjb250cm9sTWVtbzogbnVsbCwNCiAgICAgICAgLy8gcmVmb3JtQ29udGVudDogbnVsbCwNCiAgICAgICAgZGV0YWlsOiBbXQ0KICAgICAgfQ0KICAgICAgdGhpcy5pc0RhbmdlciA9IGZhbHNlDQogICAgICB0aGlzLnRpdGxlID0gJ+aWsOWinicNCiAgICAgIHRoaXMuc2hvd0Zvcm1EaWEgPSBmYWxzZQ0KICAgICAgdGhpcy4kZW1pdCgncmVmcmVzaExpc3QnKQ0KICAgIH0sDQogICAgaGFuZGVsQ2xvc2VEZXRhaWwoKSB7DQogICAgICB0aGlzLmRldGFpbExpc3RGcm9tID0gew0KICAgICAgICBjaGVja1JlY29yZElkOiBudWxsLA0KICAgICAgICB1bml0SWQ6IG51bGwsDQogICAgICAgIGltZ1VybEFycmF5OiBbXSwNCiAgICAgICAgZGFuZ2VyVHlwZTogJycsDQogICAgICAgIGdyZWF0RGFuZ2VyOiAnMicsDQogICAgICAgIHJlZm9ybUltZ1VybEFycmF5OiBbXSwNCiAgICAgICAgY2hlY2tEYXRlOiBudWxsLA0KICAgICAgICBkYW5nZXJDb250ZW50OiBudWxsLA0KICAgICAgICByZWZvcm1TdWdndWVzdDogbnVsbCwNCiAgICAgICAgcmVmZXJlbmNlOiBudWxsLA0KICAgICAgICBpZDogbnVsbA0KICAgICAgfQ0KICAgICAgdGhpcy5zaG93RGV0YWlsZUxpc3QgPSBmYWxzZQ0KICAgICAgdGhpcy4kcmVmcy5kZXRhaWxGb3JtSW5mbz8uY2xlYXJWYWxpZGF0ZSgpDQogICAgfSwNCiAgICBoYW5kbGVTYXZlKCkgew0KICAgICAgdGhpcy4kcmVmcy5mb3JtSW5mby52YWxpZGF0ZSh2YWxpZCA9PiB7DQogICAgICAgIGlmICh2YWxpZCkgew0KICAgICAgICAgIGxldCBtZXRob2QNCiAgICAgICAgICBpZiAoIXRoaXMucGFyYW1zLmlkKSB7DQogICAgICAgICAgICAvLyDmlrDlop4NCiAgICAgICAgICAgIG1ldGhvZCA9DQogICAgICAgICAgICAgIENtZ3RTYWZ0eURhbmdlckNoZWNrcmVjb3JkQXBpLmFkZENtZ3RTYWZ0eURhbmdlckNoZWNrcmVjb3JkDQogICAgICAgICAgfQ0KICAgICAgICAgIGlmICh0aGlzLnBhcmFtcy5pZCkgew0KICAgICAgICAgICAgLy8g5L+u5pS5DQogICAgICAgICAgICBtZXRob2QgPQ0KICAgICAgICAgICAgICBDbWd0U2FmdHlEYW5nZXJDaGVja3JlY29yZEFwaS5lZGl0Q21ndFNhZnR5RGFuZ2VyQ2hlY2tyZWNvcmQNCiAgICAgICAgICB9DQogICAgICAgICAgY29uc29sZS5sb2codGhpcy5wYXJhbXMpDQogICAgICAgICAgdGhpcy5wYXJhbXMuZGV0YWlsPy5mb3JFYWNoKGl0ZW0gPT4gew0KICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5yZWZvcm1JbWdVcmxBcnJheSkgJiYgaXRlbS5yZWZvcm1JbWdVcmxBcnJheS5sZW5ndGgpIHsNCiAgICAgICAgICAgICAgaXRlbS5yZWZvcm1TdGF0dXMgPSAyDQogICAgICAgICAgICB9DQogICAgICAgICAgfSkNCiAgICAgICAgICBtZXRob2QodGhpcy5wYXJhbXMsIHJlcyA9PiB7DQogICAgICAgICAgICBpZiAocmVzLnN0YXRlKSB7DQogICAgICAgICAgICAgIHRoaXMuJG5vdGlmeSh7DQogICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLA0KICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudGl0bGUgKyAn5oiQ5YqfJywNCiAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMA0KICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICB0aGlzLiRwYXJlbnQubG9hZERhdGEoKQ0KICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNsb3NlKCkNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZyhyZXMubWVzc2FnZSkNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9KQ0KICAgICAgICB9DQogICAgICB9KQ0KICAgIH0sDQogICAgVXBkYXRlKHJvdywgc3RhdHVzLCBhY3RpdmVJbmRleCkgew0KICAgICAgdGhpcy5yZWFkVHlwZSA9IGZhbHNlDQogICAgICB0aGlzLnRpdGxlID0gJ+S/ruaUuScNCiAgICAgIGlmIChhY3RpdmVJbmRleCkgew0KICAgICAgICB0aGlzLmFjdGl2ZVN0ZXAgPSBhY3RpdmVJbmRleA0KICAgICAgfQ0KICAgICAgdGhpcy5zaG93Rm9ybURpYSA9IHRydWUNCiAgICAgIENtZ3RTYWZ0eURhbmdlckNoZWNrcmVjb3JkQXBpLmdldEl0ZW1CeUlkKHJvdy5pZCwgcmVzID0+IHsNCiAgICAgICAgdGhpcy5wYXJhbXMuaWQgPSByZXMuaWQNCiAgICAgICAgdGhpcy5wYXJhbXMuY2hlY2tzY2hlbWVJZCA9IHJlcy5jaGVja3NjaGVtZUlkDQogICAgICAgIHRoaXMucGFyYW1zLmNoZWNrWWVhck1vbnRoID0gcmVzLmNoZWNrWWVhck1vbnRoDQogICAgICAgIHRoaXMucGFyYW1zLnVuaXRUeXBlID0gcmVzLnVuaXRUeXBlDQogICAgICAgIHRoaXMucGFyYW1zLnVuaXROYW1lID0gcmVzLnVuaXROYW1lDQogICAgICAgIHRoaXMucGFyYW1zLnVuaXRJZCA9IHJlcy51bml0SWQNCiAgICAgICAgdGhpcy5wYXJhbXMudW5pdEFkZHJlc3MgPSByZXMudW5pdEFkZHJlc3MNCiAgICAgICAgdGhpcy5wYXJhbXMudW5pdFVzZXJwaG9uZSA9IHJlcy51bml0VXNlcnBob25lDQogICAgICAgIHRoaXMucGFyYW1zLnVuaXRVc2VybmFtZSA9IHJlcy51bml0VXNlcm5hbWUNCiAgICAgICAgdGhpcy5wYXJhbXMuaGlkZGVuRGFuZ2VyID0gcmVzLmhpZGRlbkRhbmdlciB8fCAnMicNCiAgICAgICAgdGhpcy5pc0RhbmdlciA9IHRoaXMucGFyYW1zLmhpZGRlbkRhbmdlciA9PSAnMicgPyBmYWxzZSA6IHRydWUNCiAgICAgICAgdGhpcy5wYXJhbXMuY2hlY2tEYXRlID0gcmVzLmNoZWNrRGF0ZQ0KICAgICAgICB0aGlzLnBhcmFtcy5jaGVja0NvbnRlbnQgPSByZXMuY2hlY2tDb250ZW50DQogICAgICAgIHRoaXMucGFyYW1zLmxlYWRVc2VybmFtZSA9IHJlcy5sZWFkVXNlcm5hbWUNCiAgICAgICAgdGhpcy5wYXJhbXMuY2hlY2tVc2VybmFtZSA9IHJlcy5jaGVja1VzZXJuYW1lDQogICAgICAgIHRoaXMucGFyYW1zLnJlY29yZE5hbWUgPSByZXMucmVjb3JkTmFtZQ0KICAgICAgICB0aGlzLnBhcmFtcy5zdGF0dXMgPSByZXMuc3RhdHVzDQogICAgICAgIHRoaXMucGFyYW1zLnJlZm9ybVVzZXJuYW1lID0gcmVzLnJlZm9ybVVzZXJuYW1lDQogICAgICAgIHRoaXMucGFyYW1zLnJlZm9ybVVuaXRuYW1lID0gcmVzLnJlZm9ybVVuaXRuYW1lDQogICAgICAgIHRoaXMucGFyYW1zLmxhdGVzdFRpbWVMaW1pdCA9IHJlcy5sYXRlc3RUaW1lTGltaXQNCiAgICAgICAgdGhpcy5wYXJhbXMubGF0ZXN0UmV2aWV3RGF0ZSA9IHJlcy5sYXRlc3RSZXZpZXdEYXRlDQogICAgICAgIHRoaXMucGFyYW1zLmNvbXBsZXRlRGF0ZSA9IHJlcy5jb21wbGV0ZURhdGUNCiAgICAgICAgdGhpcy5wYXJhbXMucmVmb3JtUmVxdWlyZSA9IHJlcy5yZWZvcm1SZXF1aXJlDQogICAgICAgIHRoaXMucGFyYW1zLmNvbnRyb2xNZW1vID0gcmVzLmNvbnRyb2xNZW1vDQogICAgICAgIC8vIHRoaXMucGFyYW1zLnJlZm9ybUNvbnRlbnQgPSByZXMucmVmb3JtQ29udGVudA0KICAgICAgICB0aGlzLnBhcmFtcy5kZXRhaWwgPSByZXMuZGV0YWlsDQogICAgICB9KQ0KICAgIH0sDQogICAgYmVmb3JlQXZhdGFyVXBsb2FkKGZpbGUpIHsNCiAgICAgIGNvbnN0IGlzSlBHID0NCiAgICAgICAgZmlsZS50eXBlID09PSAnaW1hZ2UvanBlZycgfHwNCiAgICAgICAgZmlsZS50eXBlID09PSAnaW1hZ2UvcG5nJyB8fA0KICAgICAgICBmaWxlLnR5cGUgPT09ICdpbWFnZS9qcGcnDQogICAgICBjb25zdCBpc0x0MTBNID0gZmlsZS5zaXplIC8gMTAyNCAvIDEwMjQgPCAxMA0KICAgICAgaWYgKCFpc0pQRykgew0KICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfkuIrkvKDlm77niYflj6rog73mmK8gSlBHIOagvOW8jyEnKQ0KICAgICAgfQ0KICAgICAgaWYgKCFpc0x0MTBNKSB7DQogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+S4iuS8oOWbvueJh+Wkp+Wwj+S4jeiDvei2hei/hyAxME1CIScpDQogICAgICB9DQogICAgICByZXR1cm4gaXNKUEcgJiYgaXNMdDEwTQ0KICAgIH0sDQogICAgaGFuZGxlUmVtb3ZlKGZpbGUsIGZpbGVMaXN0KSB7DQogICAgICB0aGlzLmRldGFpbExpc3RGcm9tLmltZ1VybEFycmF5LmZvckVhY2goKGUsIGluZGV4KSA9PiB7DQogICAgICAgIGlmIChlID09IGZpbGUuaWQpIHsNCiAgICAgICAgICB0aGlzLmRldGFpbExpc3RGcm9tLmltZ1VybEFycmF5LnNwbGljZShpbmRleCwgMSkNCiAgICAgICAgfQ0KICAgICAgfSkNCiAgICB9LA0KICAgIGhhbmRsZVJlbW92ZTEoZmlsZSwgZmlsZUxpc3QpIHsNCiAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20ucmVmb3JtSW1nVXJsQXJyYXkuZm9yRWFjaCgoZSwgaW5kZXgpID0+IHsNCiAgICAgICAgaWYgKGUgPT0gZmlsZS5pZCkgew0KICAgICAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20ucmVmb3JtSW1nVXJsQXJyYXkuc3BsaWNlKGluZGV4LCAxKQ0KICAgICAgICB9DQogICAgICB9KQ0KICAgIH0sDQogICAgaGFuZGxlUGljdHVyZUNhcmRQcmV2aWV3KGZpbGUpIHsNCiAgICAgIC8vIHRoaXMuZGlhbG9nSW1hZ2VVcmwgPSBmaWxlLnVybA0KICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZQ0KICAgIH0sDQogICAgaGFuZGxlRG93bmxvYWQoZmlsZSkgew0KICAgICAgQ21ndFNhZnR5RGFuZ2VyQ2hlY2tyZWNvcmRBcGkuZG93bmxvYWRGaWxlKGZpbGUuZmlsZUlkKQ0KICAgIH0sDQogICAgLy8g5piv5ZCm56aB55So5Y+K5b+F5aGrDQogICAgYm9vbGVuU2hvdygpIHsNCiAgICAgIGlmICghdGhpcy5wYXJhbXMuaGlkZGVuRGFuZ2VyIHx8IHRoaXMucGFyYW1zLmhpZGRlbkRhbmdlciA9PT0gJzInKSB7DQogICAgICAgIHJldHVybiB0cnVlDQogICAgICB9IGVsc2Ugew0KICAgICAgICByZXR1cm4gZmFsc2UNCiAgICAgIH0NCiAgICB9LA0KICAgIC8vIOWIh+aNouaYr+WQpuWtmOWcqOmHjeWkp+makOaCow0KICAgIGNoYW5nZUdyZWF0RGFuZ2VyKHZhbCkgew0KICAgICAgY29uc29sZS5sb2codmFsKQ0KICAgICAgaWYgKHZhbCA9PT0gJzInKSB7DQogICAgICAgIHRoaXMucGFyYW1zLnJlZm9ybVVuaXRuYW1lID0gbnVsbA0KICAgICAgICB0aGlzLnBhcmFtcy5jaGVja0RhdGUgPSBudWxsDQogICAgICAgIHRoaXMucGFyYW1zLmxhdGVzdFRpbWVMaW1pdCA9IG51bGwNCiAgICAgICAgdGhpcy5wYXJhbXMubGF0ZXN0UmV2aWV3RGF0ZSA9IG51bGwNCiAgICAgICAgdGhpcy5wYXJhbXMubGVhZFVzZXJuYW1lID0gbnVsbA0KICAgICAgICB0aGlzLnBhcmFtcy5yZWZvcm1Vc2VybmFtZSA9IG51bGwNCiAgICAgICAgdGhpcy5wYXJhbXMuY2hlY2tVc2VybmFtZSA9IG51bGwNCiAgICAgICAgdGhpcy5wYXJhbXMuY2hlY2tDb250ZW50ID0gbnVsbA0KICAgICAgICB0aGlzLnBhcmFtcy5yZWZvcm1SZXF1aXJlID0gbnVsbA0KICAgICAgICB0aGlzLnBhcmFtcy5jb250cm9sTWVtbyA9IG51bGwNCiAgICAgICAgdGhpcy5ydWxlcy5jaGVja0RhdGVbMF0ucmVxdWlyZWQgPSBmYWxzZQ0KICAgICAgICB0aGlzLnJ1bGVzLmxhdGVzdFRpbWVMaW1pdFswXS5yZXF1aXJlZCA9IGZhbHNlDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLnJ1bGVzLmNoZWNrRGF0ZVswXS5yZXF1aXJlZCA9IHRydWUNCiAgICAgICAgdGhpcy5ydWxlcy5sYXRlc3RUaW1lTGltaXRbMF0ucmVxdWlyZWQgPSB0cnVlDQogICAgICB9DQogICAgfSwNCiAgICAvLyDmo4Dmn6XmmI7nu4bkv53lrZgNCiAgICBoYW5kbGVTYXZlRGV0YWlsTGlzdCgpIHsNCiAgICAgIHRoaXMuJHJlZnMuZGV0YWlsRm9ybUluZm8udmFsaWRhdGUodmFsaWQgPT4gew0KICAgICAgICBpZiAodmFsaWQpIHsNCiAgICAgICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kZXRhaWxMaXN0RnJvbSkpDQogICAgICAgICAgZGF0YS5yZWZvcm1TdGF0dXMgPSAyDQogICAgICAgICAgaWYgKHRoaXMuZGV0YWlsVGl0bGUgPT09ICfmlrDlop7lronlhajmo4Dmn6XorrDlvZUnKSB7DQogICAgICAgICAgICBDbWd0U2FmdHlEYW5nZXJDaGVja3JlY29yZEFwaS5DU2FmdHlEYW5nZXJDaGVja3JlY29yZERldGFpbENyZWF0ZSgNCiAgICAgICAgICAgICAgZGF0YSwNCiAgICAgICAgICAgICAgcmVzID0+IHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpDQogICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHsNCiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywNCiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICfmlrDlop7miJDlip8nLA0KICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDANCiAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgIHRoaXMuaGFuZGVsQ2xvc2VEZXRhaWwoKQ0KICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGFibGVEYXRhKHsgaWQ6IHRoaXMucGFyYW1zLmlkIH0pDQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICkNCiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGV0YWlsVGl0bGUgPT09ICfkv67mlLnlronlhajmo4Dmn6XorrDlvZUnKSB7DQogICAgICAgICAgICBDbWd0U2FmdHlEYW5nZXJDaGVja3JlY29yZEFwaS5DU2FmdHlEYW5nZXJDaGVja3JlY29yZERldGFpbFVwZGF0ZUJ5SWQoDQogICAgICAgICAgICAgIGRhdGEsDQogICAgICAgICAgICAgIHJlcyA9PiB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzKQ0KICAgICAgICAgICAgICAgIHRoaXMuJG5vdGlmeSh7DQogICAgICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsDQogICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5L+u5pS55oiQ5YqfJywNCiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAwDQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICB0aGlzLmhhbmRlbENsb3NlRGV0YWlsKCkNCiAgICAgICAgICAgICAgICB0aGlzLmdldFRhYmxlRGF0YSh7IGlkOiB0aGlzLnBhcmFtcy5pZCB9KQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICApDQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9KQ0KICAgIH0sDQogICAgZ2V0VGFibGVEYXRhKHJvdywgc3RhdHVzLCBhY3RpdmVJbmRleCkgew0KICAgICAgdGhpcy50aXRsZSA9ICfkv67mlLknDQogICAgICB0aGlzLnNob3dGb3JtRGlhID0gdHJ1ZQ0KICAgICAgY29uc29sZS5sb2coMTExMTExMTExMTExMTExMTEpOw0KICAgICAgDQogICAgICBDbWd0U2FmdHlEYW5nZXJDaGVja3JlY29yZEFwaS5nZXRJdGVtQnlJZChyb3cuaWQsIHJlcyA9PiB7DQogICAgICAgIHRoaXMucGFyYW1zLmRldGFpbCA9IHJlcy5kZXRhaWwNCiAgICAgIH0pDQogICAgfSwNCiAgICAvLyDlm77niYfovazmjaINCiAgICBjb252ZXJ0SW1nKGFycikgew0KICAgICAgbGV0IG5ld0FyciA9IFtdDQogICAgICBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSB7DQogICAgICAgIG5ld0FyciA9IGFyci5tYXAoaXQgPT4gew0KICAgICAgICAgIHJldHVybiB7IHVybDogdGhpcy5wcmV2aWV3VXJsICsgaXQsIGlkOiBpdCB9DQogICAgICAgIH0pDQogICAgICAgIHJldHVybiBuZXdBcnINCiAgICAgIH0NCiAgICB9DQogIH0NCn0NCg=="},null]}