{"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\\operationalMonitoring\\complaintLedgerManagement\\components\\TablePage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\operationalMonitoring\\complaintLedgerManagement\\components\\TablePage\\index.vue","mtime":1752055336202},{"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:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5yZWR1Y2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLnJlZHVjZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLnNvbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudGVzdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zZWFyY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IHJlZmluZVJlcXVlc3RCb2R5LCBzZXRRdWVyeVZhbHVlIH0gZnJvbSAnQC91dGlscy9yZXF1ZXN0V3JhcHBlcnMnOwppbXBvcnQgcGFnaW5hdGlvbiBmcm9tICdAL2NvbXBvbmVudHMvU3VwZXJQYWdpbmF0aW9uL2luZGV4LnZ1ZSc7CmltcG9ydCB7IFRhYmxlTWl4aW4gfSBmcm9tICdAL21peGlucy90YWJsZU1peGluJzsKaW1wb3J0IHRyZWVTaWRlIGZyb20gJ0AvY29tcG9uZW50cy90cmVlU2lkZS9pbmRleC52dWUnOwppbXBvcnQgU2VhcmNoQ29tbW9uIGZyb20gJ0AvY29tcG9uZW50cy9TZWFyY2hDb21tb24vaW5kZXgudnVlJzsKaW1wb3J0IHsgY29tcGxhaW50VGVtcGxhdGVEb3dubG9hZCwgdGFibGVEYXRhLCB0YWJsZURlbGV0ZSB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9vcGVyYXRpb25hbE1vbml0b3JpbmcvY29tcGxhaW50TGVkZ2VyTWFuYWdlbWVudCc7CmltcG9ydCBQdWJTdWIgZnJvbSAncHVic3ViLWpzJzsKaW1wb3J0IHsgZGljdGlvbmFyeUVzY2FwZSwgZ2V0RGljdGlvbmFyeUJ5Q29kZSB9IGZyb20gJ0AvdXRpbHMvZGljdGlvbmFyeSc7CmltcG9ydCB7IG1hcFN0YXRlIH0gZnJvbSAndnVleCc7CmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JzsKaW1wb3J0IHsgZ2V0VHJlZSB9IGZyb20gJ0AvYXBpL3RyZWUnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ1RhYmxlUGFnZScsCiAgY29tcG9uZW50czogewogICAgcGFnaW5hdGlvbjogcGFnaW5hdGlvbiwKICAgIHRyZWVTaWRlOiB0cmVlU2lkZSwKICAgIFNlYXJjaENvbW1vbjogU2VhcmNoQ29tbW9uCiAgfSwKICBtaXhpbnM6IFtUYWJsZU1peGluXSwKICBjb21wdXRlZDogX29iamVjdFNwcmVhZCh7CiAgICBhY3Rpb246IGZ1bmN0aW9uIGFjdGlvbigpIHsKICAgICAgcmV0dXJuICIiLmNvbmNhdCh3aW5kb3cuY29udGV4dC5wb3J0YWwsICIvbW9uaXRvci9iaXpFYXJseVdhcm5pbmdNYW5hZ2VtZW50L3YxL2ltcG9ydERhdGEiKTsKICAgIH0KICB9LCBtYXBTdGF0ZSh7CiAgICBoZWFkZXJzOiBmdW5jdGlvbiBoZWFkZXJzKHN0YXRlKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiLmNvbmNhdChzdGF0ZS5sb2dpbi5jdXJyZW50VXNlci50b2tlbikKICAgICAgfTsKICAgIH0KICB9KSksCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGlzQWRkU2hvdzogZmFsc2UsCiAgICAgIHB1YlN1YjogbnVsbCwKICAgICAgdGFibGVNYXhIZWlnaHQ6ICc2MDBweCcsCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICB0cmVlTG9hZGluZzogdHJ1ZSwKICAgICAgdGFibGVMb2FkaW5nOiBmYWxzZSwKICAgICAgdHJlZURhdGE6IFtdLAogICAgICAvL+W3pui+ueagkQogICAgICBkZWZhdWx0UHJvcHM6IHsKICAgICAgICBjaGlsZHJlbjogJ2NoaWxkcmVuJywKICAgICAgICBsYWJlbDogJ25hbWUnCiAgICAgIH0sCiAgICAgIHRhYmxlRGF0YTogW10sCiAgICAgIGN1cnJlbnREYXRhRGVsOiBbXSwKICAgICAgb3B0aW9uTGlzdDogWwogICAgICAvLyB7dGl0bGU6ICfmipXor4not6/mrrUnLCBwcm9wOiAncm9hZE5hbWUnLCB0eXBlOiAnaW5wdXQnLCBkZWZhdWx0OiB0cnVlfSwKICAgICAgewogICAgICAgIHRpdGxlOiAn5oqV6K+J57G75YirJywKICAgICAgICBwcm9wOiAnY29tcGxhaW50Q2F0ZWdvcnknLAogICAgICAgIHR5cGU6ICdzZWxlY3QnLAogICAgICAgIG9wdGlvbjogZ2V0RGljdGlvbmFyeUJ5Q29kZSgneXhqYy10c2xiJyksCiAgICAgICAgbXVsdGlwbGU6IHRydWUsCiAgICAgICAgZGVmYXVsdDogdHJ1ZQogICAgICB9LCB7CiAgICAgICAgdGl0bGU6ICfmipXor4nmnaXmupAnLAogICAgICAgIHByb3A6ICdjb21wbGFpbnRTb3VyY2UnLAogICAgICAgIHR5cGU6ICdzZWxlY3QnLAogICAgICAgIG9wdGlvbjogZ2V0RGljdGlvbmFyeUJ5Q29kZSgneXhqYy10c2x5JyksCiAgICAgICAgbXVsdGlwbGU6IHRydWUKICAgICAgfSwgewogICAgICAgIHRpdGxlOiAn5YW35L2T5p2l5rqQJywKICAgICAgICBwcm9wOiAnc3BlY2lmaWNTb3VyY2UnLAogICAgICAgIHR5cGU6ICdzZWxlY3QnLAogICAgICAgIG9wdGlvbjogZ2V0RGljdGlvbmFyeUJ5Q29kZSgneXhqYy1qdGx5JyksCiAgICAgICAgbXVsdGlwbGU6IHRydWUKICAgICAgfSwgewogICAgICAgIHRpdGxlOiAn5oqV6K+J5a+56LGhJywKICAgICAgICBwcm9wOiAnY29tcGxhaW50T2JqZWN0JywKICAgICAgICB0eXBlOiAnc2VsZWN0JywKICAgICAgICBvcHRpb246IGdldERpY3Rpb25hcnlCeUNvZGUoJ3l4amMtdHNkeCcpLAogICAgICAgIG11bHRpcGxlOiB0cnVlCiAgICAgIH1dLAogICAgICBwYXJhbXM6IHsKICAgICAgICBwYWdlQmVhbjogewogICAgICAgICAgcGFnZVNpemU6IDIwLAogICAgICAgICAgcGFnZTogMSwKICAgICAgICAgIHRvdGFsOiAwCiAgICAgICAgfSwKICAgICAgICBxdWVyeXM6IFt7CiAgICAgICAgICBvcGVyYXRpb246ICdJTicsCiAgICAgICAgICBwcm9wZXJ0eTogJ3JvYWRJZCcKICAgICAgICB9LAogICAgICAgIC8vIHtncm91cDogJ3F1aWNrJywgb3BlcmF0aW9uOiAnTElLRScsIHJlbGF0aW9uOiAnT1InLCBwcm9wZXJ0eTogJ3JvYWROYW1lJ30sCiAgICAgICAgewogICAgICAgICAgZ3JvdXA6ICdxdWljaycsCiAgICAgICAgICBvcGVyYXRpb246ICdJTicsCiAgICAgICAgICByZWxhdGlvbjogJ0FORCcsCiAgICAgICAgICBwcm9wZXJ0eTogJ2NvbXBsYWludENhdGVnb3J5JwogICAgICAgIH0sIHsKICAgICAgICAgIGdyb3VwOiAncXVpY2snLAogICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgcmVsYXRpb246ICdBTkQnLAogICAgICAgICAgcHJvcGVydHk6ICdjb21wbGFpbnRTb3VyY2UnCiAgICAgICAgfSwgewogICAgICAgICAgZ3JvdXA6ICdxdWljaycsCiAgICAgICAgICBvcGVyYXRpb246ICdJTicsCiAgICAgICAgICByZWxhdGlvbjogJ0FORCcsCiAgICAgICAgICBwcm9wZXJ0eTogJ3NwZWNpZmljU291cmNlJwogICAgICAgIH0sIHsKICAgICAgICAgIGdyb3VwOiAncXVpY2snLAogICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgcmVsYXRpb246ICdBTkQnLAogICAgICAgICAgcHJvcGVydHk6ICdjb21wbGFpbnRPYmplY3QnCiAgICAgICAgfSwgewogICAgICAgICAgb3BlcmF0aW9uOiAnQkVUV0VFTicsCiAgICAgICAgICBwcm9wZXJ0eTogJ2NvbXBsYWludF90aW1lXycsCiAgICAgICAgICB2YWx1ZTogW21vbWVudCgpLnN1YnRyYWN0KDEsICdtb250aCcpLnN0YXJ0T2YoJ21vbnRoJykuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyksIG1vbWVudCgpLmVuZE9mKCdtb250aCcpLmZvcm1hdCgnWVlZWS1NTS1ERCBISDptbTpzcycpXQogICAgICAgIH1dLAogICAgICAgIHNvcnRlcjogW10KICAgICAgfSwKICAgICAgdHJlZURpYWxvZzogZmFsc2UsCiAgICAgIC8vIOenkeebruS/oeaBr+W8ueWxggogICAgICB0cmVlSXRlbUlkOiAnJywKICAgICAgLy8g5qCR5b2i55uu5b2VaWQKICAgICAgdHJlZUl0ZW06IHt9LAogICAgICAvLyDmoJHlvaLoioLngrnpgInkuK3lr7nosaEKICAgICAgYnRuTG9hZGluZzogZmFsc2UKICAgIH07CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIC8vIOiOt+WPluagkeW9ouebruW9lS0KICAgIHRoaXMuZ2V0T3JnVHJlZURhdGEoZnVuY3Rpb24gKHRyZWVEYXRhKSB7CiAgICAgIC8vIOWbnuiwg+S4rem7mOiupOmAieS4reesrOS4gOmhueW5tuWwhuWFtmlk5L2c5Li65Y+C5pWw6K+35rGC6KGo5qC8CiAgICAgIF90aGlzLnRyZWVJdGVtID0gdHJlZURhdGFbMF0gfHwge307CiAgICAgIHZhciBhcnJheSA9IFtdOwogICAgICBpZiAoX3RoaXMudHJlZUl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkgewogICAgICAgIGFycmF5ID0gX3RoaXMuZXh0cmFjdElkcyhfdGhpcy50cmVlSXRlbSk7CiAgICAgIH0KICAgICAgX3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgdmFyIF90aGlzJCRyZWZzJHRyZWVTaWRlLCBfdHJlZURhdGEkLCBfdGhpcyQkcmVmcyR0cmVlU2lkZTI7CiAgICAgICAgKF90aGlzJCRyZWZzJHRyZWVTaWRlID0gX3RoaXMuJHJlZnMudHJlZVNpZGUpID09PSBudWxsIHx8IF90aGlzJCRyZWZzJHRyZWVTaWRlID09PSB2b2lkIDAgfHwgX3RoaXMkJHJlZnMkdHJlZVNpZGUuc2V0Q3VycmVudEtleSgoX3RyZWVEYXRhJCA9IHRyZWVEYXRhWzBdKSA9PT0gbnVsbCB8fCBfdHJlZURhdGEkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdHJlZURhdGEkLmlkKTsgLy/pgJrov4cgJHJlZnMg6I635Y+WdHJlZVNpZGXnu4Tku7blvJXnlKjvvIzlubbosIPnlKggc2V0Q3VycmVudEtleeaWueazleiuvue9ruW9k+WJjemAieS4reeahOagkeiKgueCueOAggogICAgICAgIChfdGhpcyQkcmVmcyR0cmVlU2lkZTIgPSBfdGhpcy4kcmVmcy50cmVlU2lkZSkgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdHJlZVNpZGUyID09PSB2b2lkIDAgfHwgX3RoaXMkJHJlZnMkdHJlZVNpZGUyLmV4cGFuZEhhbmRsZSh0cnVlLCAyKTsKICAgICAgfSk7CiAgICAgIHNldFF1ZXJ5VmFsdWUoX3RoaXMucGFyYW1zLCAncm9hZElkJywgYXJyYXkpOwogICAgICBfdGhpcy5sb2FkRGF0YSgpOyAvL+WKoOi9veihqOagvOaVsOaNrgogICAgfSk7CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICB0aGlzLnB1YlN1YiA9IFB1YlN1Yi5zdWJzY3JpYmUoJ1RhYmxlUGFnZScsIGZ1bmN0aW9uIChfLCBkYXRhKSB7CiAgICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7CiAgICAgICAgY2FzZSAnYWRkJzoKICAgICAgICAgIF90aGlzMi5wYXJhbXMucGFnZUJlYW4ucGFnZSA9IDE7CiAgICAgICAgICBfdGhpczIubG9hZERhdGEoKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2VkaXQnOgogICAgICAgICAgX3RoaXMyLmxvYWREYXRhKCk7CiAgICAgICAgICBicmVhazsKICAgICAgfQogICAgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBkaWN0aW9uYXJ5RXNjYXBlOiBkaWN0aW9uYXJ5RXNjYXBlLAogICAgZXh0cmFjdElkczogZnVuY3Rpb24gZXh0cmFjdElkcyhub2RlKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICB2YXIgaWRzID0gW107CiAgICAgIC8vIOWmguaenOW9k+WJjeiKgueCueaciSBjaGlsZHJlbu+8jOWImemAkuW9kuaPkOWPlgogICAgICBpZiAobm9kZS5jaGlsZHJlbikgewogICAgICAgIGlkcyA9IG5vZGUuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChjaGlsZCkgewogICAgICAgICAgcmV0dXJuIGNoaWxkLmlkOwogICAgICAgIH0pOyAvLyDmj5Dlj5blvZPliY3oioLngrnnmoQgaWQKICAgICAgICAvLyDpgJLlvZLmj5Dlj5blrZDoioLngrnnmoQgaWQKICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7CiAgICAgICAgICBpZHMgPSBpZHMuY29uY2F0KF90aGlzMy5leHRyYWN0SWRzKGNoaWxkKSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGlkczsKICAgIH0sCiAgICAvLyDml7bpl7TojIPlm7TliIfmjaIKICAgIGRhdGVQaWNrZXJDaGFuZ2U6IGZ1bmN0aW9uIGRhdGVQaWNrZXJDaGFuZ2UodmFsKSB7CiAgICAgIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICdjb21wbGFpbnRfdGltZV8nLCB2YWwpOwogICAgICB0aGlzLnBhcmFtcy5wYWdlQmVhbi5wYWdlID0gMTsKICAgICAgdGhpcy5sb2FkRGF0YSgpOwogICAgfSwKICAgIC8vIOiOt+WPluWFrOWPuOagkS3lvILmraXmlrnms5XvvIznlKjkuo7ku47lkI7nq6/ojrflj5bmoJHlvaLmlbDmja4KICAgIGdldE9yZ1RyZWVEYXRhOiBmdW5jdGlvbiBnZXRPcmdUcmVlRGF0YShjYWxsYmFjaykgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkgewogICAgICAgIHZhciBfeWllbGQkZ2V0VHJlZSwgdmFsdWU7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDA7CiAgICAgICAgICAgICAgX3RoaXM0LnRyZWVMb2FkaW5nID0gdHJ1ZTsgLy/lvIDlp4vliqDovb3ml7bmmL7npLrliqDovb3nirbmgIEKICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gNDsKICAgICAgICAgICAgICByZXR1cm4gZ2V0VHJlZSgpOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgX3lpZWxkJGdldFRyZWUgPSBfY29udGV4dC5zZW50OwogICAgICAgICAgICAgIHZhbHVlID0gX3lpZWxkJGdldFRyZWUudmFsdWU7CiAgICAgICAgICAgICAgLy8g6LCD55SoIEFQSSDojrflj5bmoJHlvaLmlbDmja4KICAgICAgICAgICAgICBfdGhpczQudHJlZURhdGEgPSBbdmFsdWVdOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDc7CiAgICAgICAgICAgICAgX3RoaXM0LnRyZWVMb2FkaW5nID0gZmFsc2U7IC8vIOaXoOiuuuaIkOWKn+aIluWksei0pe+8jOmDveWFs+mXreWKoOi9veeKtuaAgQogICAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKF90aGlzNC50cmVlRGF0YSk7IC8vIOWmguaenOaPkOS+m+S6huWbnuiwg+WHveaVsO+8jOWImeiwg+eUqOWug+W5tuS8oOWFpeagkeW9ouaVsOaNrgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5maW5pc2goNyk7CiAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzAsLCA3LCAxMV1dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgdHJhbnNmb3JtVHJlZURhdGE6IGZ1bmN0aW9uIHRyYW5zZm9ybVRyZWVEYXRhKGRhdGEpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBuYW1lOiBkYXRhLm5hbWUsCiAgICAgICAgaWQ6IGRhdGEuaWQsCiAgICAgICAgY2hpbGRyZW46IGRhdGEuY2hpbGRyZW4ucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGNoaWxkKSB7CiAgICAgICAgICBhY2MucHVzaCh7CiAgICAgICAgICAgIGlkOiBjaGlsZC5pZCwKICAgICAgICAgICAgbmFtZTogY2hpbGQubmFtZSwKICAgICAgICAgICAgcGF0aDogY2hpbGQucGF0aCwKICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkLnJvYWRMaXN0Lm1hcChmdW5jdGlvbiAocm9hZCkgewogICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBpZDogcm9hZC5pZCwKICAgICAgICAgICAgICAgIG5hbWU6IHJvYWQubmFtZSwKICAgICAgICAgICAgICAgIHBhdGg6IHJvYWQucGF0aAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pCiAgICAgICAgICB9KTsKICAgICAgICAgIHJldHVybiBhY2M7CiAgICAgICAgfSwgW10pCiAgICAgIH07CiAgICB9LAogICAgLy/lt6bovrnmoJHoioLngrkKICAgIGN1cnJlbnRDaGFuZ2U6IGZ1bmN0aW9uIGN1cnJlbnRDaGFuZ2Uobm9kZUl0ZW0pIHsKICAgICAgaWYgKG5vZGVJdGVtLmlkID09PSAnMTc2NjAxNzQ2ODQ0NDQ1MDgxNicpIHsKICAgICAgICB0aGlzLmlzQWRkU2hvdyA9IGZhbHNlOwogICAgICAgIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICdyb2FkSWQgJywgdGhpcy5leHRyYWN0SWRzKG5vZGVJdGVtKSk7CiAgICAgIH0gZWxzZSBpZiAobm9kZUl0ZW0uY2hpbGRyZW4gJiYgbm9kZUl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkgewogICAgICAgIHRoaXMuaXNBZGRTaG93ID0gZmFsc2U7CiAgICAgICAgdmFyIGFycmF5ID0gbm9kZUl0ZW0uY2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICByZXR1cm4gaXRlbS5pZDsKICAgICAgICB9KTsKICAgICAgICBzZXRRdWVyeVZhbHVlKHRoaXMucGFyYW1zLCAncm9hZElkICcsIGFycmF5KTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmlzQWRkU2hvdyA9IHRydWU7CiAgICAgICAgc2V0UXVlcnlWYWx1ZSh0aGlzLnBhcmFtcywgJ3JvYWRJZCAnLCBbbm9kZUl0ZW0gPT09IG51bGwgfHwgbm9kZUl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5vZGVJdGVtLmlkXSB8fCBbXSk7CiAgICAgIH0KCiAgICAgIC8vIOWIpOaWreaYr+WQpuaYr+S4gOe6p+ebruW9le+8iOaciSBjaGlsZHJlbiDlsZ7mgKfvvIkKICAgICAgLy8gaWYgKG5vZGVJdGVtLmNoaWxkcmVuICYmIG5vZGVJdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHsKICAgICAgLy8gICB0aGlzLmlzQWRkU2hvdyA9IGZhbHNlCiAgICAgIC8vICAgY29uc3QgYXJyYXkgPSBub2RlSXRlbS5jaGlsZHJlbi5tYXAoaXRlbSA9PiBpdGVtLmlkKQogICAgICAvLyAgIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICdyb2FkSWQgJywgYXJyYXkpCiAgICAgIC8vIH0gZWxzZSB7CiAgICAgIC8vICAgdGhpcy5pc0FkZFNob3cgPSB0cnVlCiAgICAgIC8vICAgc2V0UXVlcnlWYWx1ZSh0aGlzLnBhcmFtcywgJ3JvYWRJZCAnLCBbbm9kZUl0ZW0/LmlkXSB8fCBbXSkKICAgICAgLy8gfQogICAgICAvLyBzZXRRdWVyeVZhbHVlKHRoaXMucGFyYW1zLCAncm9hZElkJywgbm9kZUl0ZW0/LmlkIHx8ICcnKQogICAgICB0aGlzLnRyZWVJdGVtID0gbm9kZUl0ZW0gfHwge307CiAgICAgIHRoaXMuY2FsY1RhYmxlSGVpZ2h0KDUwMCk7CiAgICAgIFB1YlN1Yi5wdWJsaXNoKCdUcmVlSXRlbVNlbGVjdGVkJywgewogICAgICAgIGlkOiAobm9kZUl0ZW0gPT09IG51bGwgfHwgbm9kZUl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5vZGVJdGVtLmlkKSB8fCAnJywKICAgICAgICBuYW1lOiAobm9kZUl0ZW0gPT09IG51bGwgfHwgbm9kZUl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5vZGVJdGVtLm5hbWUpIHx8ICcnLAogICAgICAgIHBhdGg6IChub2RlSXRlbSA9PT0gbnVsbCB8fCBub2RlSXRlbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbm9kZUl0ZW0ucGF0aCkgfHwgJycKICAgICAgfSk7CiAgICAgIHRoaXMucGFyYW1zLnBhZ2VCZWFuLnBhZ2UgPSAxOwogICAgICB0aGlzLmxvYWREYXRhKCk7CiAgICB9LAogICAgLy/ojrflj5bmlbDmja4KICAgIGxvYWREYXRhOiBmdW5jdGlvbiBsb2FkRGF0YSgpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIF95aWVsZCR0YWJsZURhdGEsIF95aWVsZCR0YWJsZURhdGEkdG90YSwgdG90YWwsIF95aWVsZCR0YWJsZURhdGEkcm93cywgcm93czsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0MikgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX3RoaXM1LnRhYmxlTG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAzOwogICAgICAgICAgICAgIHJldHVybiB0YWJsZURhdGEocmVmaW5lUmVxdWVzdEJvZHkoX3RoaXM1LnBhcmFtcykpOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX3lpZWxkJHRhYmxlRGF0YSA9IF9jb250ZXh0Mi5zZW50OwogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURhdGEkdG90YSA9IF95aWVsZCR0YWJsZURhdGEudG90YWw7CiAgICAgICAgICAgICAgdG90YWwgPSBfeWllbGQkdGFibGVEYXRhJHRvdGEgPT09IHZvaWQgMCA/IDAgOiBfeWllbGQkdGFibGVEYXRhJHRvdGE7CiAgICAgICAgICAgICAgX3lpZWxkJHRhYmxlRGF0YSRyb3dzID0gX3lpZWxkJHRhYmxlRGF0YS5yb3dzOwogICAgICAgICAgICAgIHJvd3MgPSBfeWllbGQkdGFibGVEYXRhJHJvd3MgPT09IHZvaWQgMCA/IFtdIDogX3lpZWxkJHRhYmxlRGF0YSRyb3dzOwogICAgICAgICAgICAgIF90aGlzNS5wYXJhbXMucGFnZUJlYW4udG90YWwgPSB0b3RhbDsKICAgICAgICAgICAgICBfdGhpczUudGFibGVEYXRhID0gcm93cy5tYXAoZnVuY3Rpb24gKHJvdykgewogICAgICAgICAgICAgICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcm93KSwge30sIHsKICAgICAgICAgICAgICAgICAgcm9hZE5hbWU6IHJvdy5yb2FkTmFtZSB8fCBfdGhpczUudHJlZUl0ZW0ubmFtZQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgX3RoaXM1LnRhYmxlTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5Yig6ZmkCiAgICBoYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShyb3cpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHRoaXMuY2xpY2tUaW1lciA9IHRydWU7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuWIoOmZpOmAieS4reaKleivieWPsOi0puWQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7orqQnLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKC8qI19fUFVSRV9fKi9fYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTMoKSB7CiAgICAgICAgdmFyIGlkcywgX3lpZWxkJHRhYmxlRGVsZXRlLCBzdGF0ZSwgbWVzc2FnZSwgX3RoaXM2JHBhcmFtcyRwYWdlQmVhLCBwYWdlLCBwYWdlU2l6ZSwgdG90YWwsIHRvdGFsUGFnZXM7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzJChfY29udGV4dDMpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5wcmV2ID0gX2NvbnRleHQzLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIGlkcyA9IHJvdyA/IHJvdy5pZCA6IF90aGlzNi5jdXJyZW50RGF0YURlbC5qb2luKCk7CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSAzOwogICAgICAgICAgICAgIHJldHVybiB0YWJsZURlbGV0ZShpZHMpOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX3lpZWxkJHRhYmxlRGVsZXRlID0gX2NvbnRleHQzLnNlbnQ7CiAgICAgICAgICAgICAgc3RhdGUgPSBfeWllbGQkdGFibGVEZWxldGUuc3RhdGU7CiAgICAgICAgICAgICAgbWVzc2FnZSA9IF95aWVsZCR0YWJsZURlbGV0ZS5tZXNzYWdlOwogICAgICAgICAgICAgIGlmICghc3RhdGUpIHsKICAgICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMTU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX3RoaXM2LiRtZXNzYWdlLnN1Y2Nlc3MoIlx1NTIyMFx1OTY2NFx1NjIxMFx1NTI5RiIpOwogICAgICAgICAgICAgIF90aGlzNiRwYXJhbXMkcGFnZUJlYSA9IF90aGlzNi5wYXJhbXMucGFnZUJlYW4sIHBhZ2UgPSBfdGhpczYkcGFyYW1zJHBhZ2VCZWEucGFnZSwgcGFnZVNpemUgPSBfdGhpczYkcGFyYW1zJHBhZ2VCZWEucGFnZVNpemUsIHRvdGFsID0gX3RoaXM2JHBhcmFtcyRwYWdlQmVhLnRvdGFsOwogICAgICAgICAgICAgIHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodG90YWwgLyBwYWdlU2l6ZSk7IC8vIOiuoeeul+aAu+mhteaVsAogICAgICAgICAgICAgIGlmICh0b3RhbFBhZ2VzID4gMSAmJiBwYWdlID09PSB0b3RhbFBhZ2VzKSB7CiAgICAgICAgICAgICAgICBpZiAoX3RoaXM2LnRhYmxlRGF0YS5sZW5ndGggPT09IDEpIHsKICAgICAgICAgICAgICAgICAgLy8g5b2T5YmN6aG15Y+q5pyJ5LiA5p2h5pWw5o2uCiAgICAgICAgICAgICAgICAgIF90aGlzNi5wYXJhbXMucGFnZUJlYW4ucGFnZSAtPSAxOyAvLyDov5Tlm57liY3kuIDpobUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSAxMzsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXM2LmxvYWREYXRhKCk7CiAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSAxNjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgICBfdGhpczYuJG1lc3NhZ2UuZXJyb3IobWVzc2FnZSk7CiAgICAgICAgICAgIGNhc2UgMTY6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTMpOwogICAgICB9KSkpLmNhdGNoKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgcmV0dXJuIF87CiAgICAgIH0pOwogICAgfSwKICAgIC8v5L+u5pS5CiAgICBoYW5kbGVEYkNsaWNrOiBmdW5jdGlvbiBoYW5kbGVEYkNsaWNrKHJvdykgewogICAgICBpZiAodGhpcy5jbGlja1RpbWVyKSByZXR1cm4gdGhpcy5jbGlja1RpbWVyID0gZmFsc2U7CiAgICAgIHZhciBwYXlsb2FkID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCByb3cpLCB7fSwgewogICAgICAgIHJvYWROYW1lOiByb3cucm9hZE5hbWUgfHwgdGhpcy50cmVlSXRlbS5uYW1lCiAgICAgIH0pOwogICAgICB0aGlzLmNoYW5nZVBhZ2UoJ0VkaXRBZGRQYWdlJywgcGF5bG9hZCk7CiAgICB9LAogICAgLy8g5qih5Z2X5LiL6L29CiAgICB0ZW1wbGF0ZURvd25sb2FkOiBmdW5jdGlvbiB0ZW1wbGF0ZURvd25sb2FkKCkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNCgpIHsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQkKF9jb250ZXh0NCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0LnByZXYgPSBfY29udGV4dDQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX3RoaXM3LmJ0bkxvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgIF9jb250ZXh0NC5wcmV2ID0gMTsKICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDQ7CiAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsYWludFRlbXBsYXRlRG93bmxvYWQoKTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF9jb250ZXh0NC5wcmV2ID0gNDsKICAgICAgICAgICAgICBfdGhpczcuYnRuTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuZmluaXNoKDQpOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTQsIG51bGwsIFtbMSwsIDQsIDddXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOWvvOWHuuaVsOaNrgogICAgZXhwb3J0RGF0YTogZnVuY3Rpb24gZXhwb3J0RGF0YSgpIHsKICAgICAgdmFyIF90aGlzOCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTUoKSB7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1JChfY29udGV4dDUpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NS5wcmV2ID0gX2NvbnRleHQ1Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF90aGlzOC5idG5Mb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgLy8gYXdhaXQgZXhwb3J0RmlsZSh7IC4uLnRoaXMuc2VhcmNoRnJvbSwgZGVwdElkOiB0aGlzLnRyZWVOb2RlLmlkIH0pOwogICAgICAgICAgICAgICAgLy8gdGhpcy4kbWVzc2FnZS5zdWNjZXNzKGDmlbDmja7lr7zlh7rmiJDlip9gKTsKICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgX3RoaXM4LmJ0bkxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vICDlr7zlhaXmlofku7bkuIrkvKDliY0KICAgIGJlZm9yZVVwbG9hZDogZnVuY3Rpb24gYmVmb3JlVXBsb2FkKGZpbGUpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgX3RoaXM5LnVwbG9hZExvYWRpbmcgPSBfdGhpczkuJGxvYWRpbmcoewogICAgICAgICAgbG9jazogdHJ1ZSwKICAgICAgICAgIHRleHQ6ICflr7zlhaXmlofku7bkuK0nLAogICAgICAgICAgc3Bpbm5lcjogJ2VsLWljb24tbG9hZGluZycsCiAgICAgICAgICBiYWNrZ3JvdW5kOiAncmdiYSgwLCAwLCAwLCAwLjcpJwogICAgICAgIH0pOwogICAgICAgIHZhciBzaXplID0gZmlsZS5zaXplLAogICAgICAgICAgbmFtZSA9IGZpbGUubmFtZTsKICAgICAgICBfdGhpczkuJGNvbmZpcm0oIlx1OEJGN1x1Nzg2RVx1OEJBNFx1NjYyRlx1NTQyNlx1NEUwQVx1NEYyMCBcdTIwMUMiLmNvbmNhdChuYW1lLCAiXHUyMDFEIFx1NEUzQVx1OTY0NFx1NEVGNlx1RkYxRiIpLCAn5o+Q56S6JywgewogICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7orqQnLAogICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgICB2YXIgbWF4U2l6ZSA9IDUwMCAqIDEwMjQgKiAxMDI0OyAvLyA1MDBNQgogICAgICAgICAgdmFyIHR5cGVSZWd1bGFyID0gL1wuKHhsc3x4bHN4KSQvaTsKICAgICAgICAgIHZhciB2ZXJpZmljYXRpb24gPSBbewogICAgICAgICAgICBjb25kaXRpb246ICF0eXBlUmVndWxhci50ZXN0KG5hbWUpLAogICAgICAgICAgICByZXN1bHQ6IGZ1bmN0aW9uIHJlc3VsdCgpIHsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXM5LiRtZXNzYWdlLmVycm9yKCflj6rog73kuIrkvKB4bHPmiJZ4bHN45paH5Lu257G75Z6LJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIC8vIHsKICAgICAgICAgIC8vICAgY29uZGl0aW9uOiBzaXplID4gbWF4U2l6ZSwKICAgICAgICAgIC8vICAgcmVzdWx0OiAoKSA9PiB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIumZhOS7tuWkp+Wwj+S4jeiDvei2hei/hzUwME1CIiksCiAgICAgICAgICAvLyB9LAogICAgICAgICAgXTsKICAgICAgICAgIC8vIOaYr+WQpumAmui/h+mqjOivgQogICAgICAgICAgdmFyIHBhc3NlZE9yTm90ID0gIXZlcmlmaWNhdGlvbi5zb21lKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgIGlmIChpdGVtLmNvbmRpdGlvbikgewogICAgICAgICAgICAgIHZhciBfdGhpczkkdXBsb2FkTG9hZGluZzsKICAgICAgICAgICAgICAoX3RoaXM5JHVwbG9hZExvYWRpbmcgPSBfdGhpczkudXBsb2FkTG9hZGluZykgPT09IG51bGwgfHwgX3RoaXM5JHVwbG9hZExvYWRpbmcgPT09IHZvaWQgMCB8fCBfdGhpczkkdXBsb2FkTG9hZGluZy5jbG9zZSgpOwogICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ucmVzdWx0KCk7CiAgICAgICAgICAgICAgfSwgMCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGl0ZW0uY29uZGl0aW9uOwogICAgICAgICAgfSk7CiAgICAgICAgICBwYXNzZWRPck5vdCA/IHJlc29sdmUoKSA6IHJlamVjdCgpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgICB2YXIgX3RoaXM5JHVwbG9hZExvYWRpbmcyOwogICAgICAgICAgcmVqZWN0KCk7CiAgICAgICAgICAoX3RoaXM5JHVwbG9hZExvYWRpbmcyID0gX3RoaXM5LnVwbG9hZExvYWRpbmcpID09PSBudWxsIHx8IF90aGlzOSR1cGxvYWRMb2FkaW5nMiA9PT0gdm9pZCAwIHx8IF90aGlzOSR1cGxvYWRMb2FkaW5nMi5jbG9zZSgpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDlr7zlhaXmlofku7bkuIrkvKDmiJDlip8KICAgIGhhbmRsZVN1Y2Nlc3M6IGZ1bmN0aW9uIGhhbmRsZVN1Y2Nlc3MoKSB7CiAgICAgIHZhciBfYXJndW1lbnRzID0gYXJndW1lbnRzLAogICAgICAgIF90aGlzMTAgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU2KCkgewogICAgICAgIHZhciBfdGhpczEwJHVwbG9hZExvYWRpbmc7CiAgICAgICAgdmFyIHJlcywgX3JlcyRjb2RlLCBjb2RlOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlNiQoX2NvbnRleHQ2KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDYucHJldiA9IF9jb250ZXh0Ni5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICByZXMgPSBfYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgX2FyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gX2FyZ3VtZW50c1swXSA6IHt9OwogICAgICAgICAgICAgIF9yZXMkY29kZSA9IHJlcy5jb2RlLCBjb2RlID0gX3JlcyRjb2RlID09PSB2b2lkIDAgPyAyMDAgOiBfcmVzJGNvZGU7CiAgICAgICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkgewogICAgICAgICAgICAgICAgX3RoaXMxMC5zZWFyY2goKTsKICAgICAgICAgICAgICAgIF90aGlzMTAuJG1lc3NhZ2Uuc3VjY2VzcygiXHU2NTg3XHU0RUY2XHU0RTBBXHU0RjIwXHU2MjEwXHU1MjlGIik7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIF90aGlzMTAuJG1lc3NhZ2UuZXJyb3IoJ+aWh+S7tuS4iuS8oOWksei0pe+8jOivt+mHjeivlS4uJyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIChfdGhpczEwJHVwbG9hZExvYWRpbmcgPSBfdGhpczEwLnVwbG9hZExvYWRpbmcpID09PSBudWxsIHx8IF90aGlzMTAkdXBsb2FkTG9hZGluZyA9PT0gdm9pZCAwIHx8IF90aGlzMTAkdXBsb2FkTG9hZGluZy5jbG9zZSgpOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ni5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTYpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDlr7zlhaXmlofku7bkuIrkvKDlpLHotKUKICAgIGhhbmRsZUVycm9yOiBmdW5jdGlvbiBoYW5kbGVFcnJvcigpIHsKICAgICAgdmFyIF90aGlzJHVwbG9hZExvYWRpbmc7CiAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+aWh+S7tuS4iuS8oOWksei0pe+8jOivt+mHjeivlS4uJyk7CiAgICAgIChfdGhpcyR1cGxvYWRMb2FkaW5nID0gdGhpcy51cGxvYWRMb2FkaW5nKSA9PT0gbnVsbCB8fCBfdGhpcyR1cGxvYWRMb2FkaW5nID09PSB2b2lkIDAgfHwgX3RoaXMkdXBsb2FkTG9hZGluZy5jbG9zZSgpOwogICAgfSwKICAgIC8vIOaUueWPmOmhtemdogogICAgY2hhbmdlUGFnZTogZnVuY3Rpb24gY2hhbmdlUGFnZSgpIHsKICAgICAgdmFyIHBhZ2VOYW1lID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAnJzsKICAgICAgdmFyIHJvdyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307CiAgICAgIGlmICghcGFnZU5hbWUpIHJldHVybjsKICAgICAgdmFyIHBheWxvYWQgPSByb3cuaWQgPyByb3cgOiB7CiAgICAgICAgY2F0YWxvZ0lkOiB0aGlzLnRyZWVJdGVtLmlkLAogICAgICAgIHJvYWROYW1lOiB0aGlzLnRyZWVJdGVtLm5hbWUsCiAgICAgICAgcGF0aDogdGhpcy50cmVlSXRlbS5wYXRoCiAgICAgIH07CiAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZVBhZ2UnLCBwYWdlTmFtZSwgZnVuY3Rpb24gKF8pIHsKICAgICAgICBQdWJTdWIucHVibGlzaChwYWdlTmFtZSwgcGF5bG9hZCk7CiAgICAgIH0sIHJvdy5pZCA/ICfnvJbovpEnIDogJ+a3u+WKoCcpOwogICAgfQogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIC8vIOWcqOe7hOS7tumUgOavgeS5i+WJjSDmuIXpmaTorqLpmIXmtojmga8KICAgIFB1YlN1Yi51bnN1YnNjcmliZSh0aGlzLnB1YlN1Yik7CiAgfQp9Ow=="},null]}