{"remainingRequest":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\deviceManage\\components\\modle\\EquipmentInfoDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\deviceManage\\components\\modle\\EquipmentInfoDialog.vue","mtime":1731062408831},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\babel.config.js","mtime":1725536844935},{"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:aW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkQ6L2plbmtpbnMvd29ya3NwYWNlL2J6emdqLWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanMiOwppbXBvcnQgX3R5cGVvZiBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9ienpnai1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YuanMiOwppbXBvcnQgInJlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmluY2x1ZGVzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLmluY2x1ZGVzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgbGF0aXR1ZGUgZnJvbSAnQC9taXhpbnMvbGF0aXR1ZGUnOwppbXBvcnQgdXNlck1hbmFnZSBmcm9tICdAL2FwaS9kZXZpY2UvdXNlck1hbmFnZS5qcyc7CmltcG9ydCByZXNvdXJjZU1hbmFnZSBmcm9tICdAL2FwaS9kZXZpY2UvcmVzb3VyY2VNYW5hZ2UuanMnOwppbXBvcnQgeyBFeHRlbmRQYXJhbXNNaXhpbiB9IGZyb20gJ0AvbWl4aW5zL2RldmljZUV4dGVuZC5qcyc7CmltcG9ydCBTcGFyZUNvbXBhbnkgZnJvbSAnQC9hcGkvZGV2aWNlL1NwYXJlTWFuYWdlLmpzJzsKaW1wb3J0IHV0aWxzIGZyb20gJ0AvaG90ZW50LXVpLXV0aWwuanMnOwppbXBvcnQgZXF1aXBtZW50TWFuYWdlIGZyb20gJ0AvYXBpL2RldmljZS9lcXVpcG1lbnRNYW5hZ2UuanMnOwppbXBvcnQgZGljdFV0aWxzIGZyb20gJ0AvY29tcG9uZW50cy9kaWN0L0RpY3RTZWxlY3RVdGlscy5qcyc7CmltcG9ydCBDaG9vc2VNYXBQb2ludFZ1ZSBmcm9tICcuLi9DaG9vc2VNYXBQb2ludC52dWUnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ0VxdWlwbWVudEluZm9Nb2RhbCcsCiAgY29tcG9uZW50czogewogICAgQ2hvb3NlTWFwUG9pbnRWdWU6IENob29zZU1hcFBvaW50VnVlCiAgfSwKICBtaXhpbnM6IFtFeHRlbmRQYXJhbXNNaXhpbl0sCiAgcHJvcHM6IHsKICAgIHBhcmFtZXRlcjogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkgewogICAgICAgIHJldHVybiB7fTsKICAgICAgfQogICAgfQogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGltcG9ydGFudERhdGE6IFt7CiAgICAgICAgbmFtZTogJ+S4gOiIrOiuvuWkhycsCiAgICAgICAgdmFsdWU6ICcwJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+mHjeeCueiuvuWkhycsCiAgICAgICAgdmFsdWU6ICcxJwogICAgICB9XSwKICAgICAgdmlzaWJsZTogZmFsc2UsCiAgICAgIHRpdGxlOiAn5L+u5pS5JywKICAgICAgaXNTYXZlZDogZmFsc2UsCiAgICAgIGFjdGl2ZUNvbGxhcHNlMTogWycxJywgJzInLCAnMyddLAogICAgICBhcmVhTmFtZTogJycsCiAgICAgIHBhcmFtczoge30sCiAgICAgIGNvbnN0cnVjdGlvblVuaXROYW1lT3B0OiBbewogICAgICAgIG5hbWU6ICfmlL/lupzpg6jpl6gnLAogICAgICAgIHZhbHVlOiAn5pS/5bqc6YOo6ZeoJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WbveacieS8geS4micsCiAgICAgICAgdmFsdWU6ICflm73mnInkvIHkuJonCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5rCR6JCl5LyB5LiaJywKICAgICAgICB2YWx1ZTogJ+awkeiQpeS8geS4micKICAgICAgfSwgewogICAgICAgIG5hbWU6ICfnpL7kvJrlhazlhbEnLAogICAgICAgIHZhbHVlOiAn56S+5Lya5YWs5YWxJwogICAgICB9XSwKICAgICAgYXBwbGljYXRpb25BcmVhT3B0OiBbewogICAgICAgIG5hbWU6ICfkuqTpgJrnrqHnkIYnLAogICAgICAgIHZhbHVlOiAn5Lqk6YCa566h55CGJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+aVmeiCsuihjOS4micsCiAgICAgICAgdmFsdWU6ICfmlZnogrLooYzkuJonCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn6YeR6J6N6KGM5LiaJywKICAgICAgICB2YWx1ZTogJ+mHkeiejeihjOS4micKICAgICAgfSwgewogICAgICAgIG5hbWU6ICfljavnlJ/lgaXlurcnLAogICAgICAgIHZhbHVlOiAn5Y2r55Sf5YGl5bq3JwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WfjuW4gueuoeeQhicsCiAgICAgICAgdmFsdWU6ICfln47luILnrqHnkIYnCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5L2P5oi/5Z+O5LmhJywKICAgICAgICB2YWx1ZTogJ+S9j+aIv+WfjuS5oScKICAgICAgfSwgewogICAgICAgIG5hbWU6ICfoh6rnhLbotYTmupAnLAogICAgICAgIHZhbHVlOiAn6Ieq54S26LWE5rqQJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WVhuS4muacjeWKoScsCiAgICAgICAgdmFsdWU6ICfllYbkuJrmnI3liqEnCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5paH5YyW5peF5ri4JywKICAgICAgICB2YWx1ZTogJ+aWh+WMluaXhea4uCcKICAgICAgfSwgewogICAgICAgIG5hbWU6ICflupTmgKXnrqHnkIYnLAogICAgICAgIHZhbHVlOiAn5bqU5oCl566h55CGJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+W4guWcuuebkeeuoScsCiAgICAgICAgdmFsdWU6ICfluILlnLrnm5HnrqEnCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn57uP5rWO5L+h5oGvJywKICAgICAgICB2YWx1ZTogJ+e7j+a1juS/oeaBrycKICAgICAgfSwgewogICAgICAgIG5hbWU6ICfmsJHmlL/mnI3liqEnLAogICAgICAgIHZhbHVlOiAn5rCR5pS/5pyN5YqhJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+mCruaUv+eJqea1gScsCiAgICAgICAgdmFsdWU6ICfpgq7mlL/nianmtYEnCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5L2T6IKy6KGM5LiaJywKICAgICAgICB2YWx1ZTogJ+S9k+iCsuihjOS4micKICAgICAgfSwgewogICAgICAgIG5hbWU6ICfmsJHml4/lrpfmlZknLAogICAgICAgIHZhbHVlOiAn5rCR5peP5a6X5pWZJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WPuOazleeuoeeQhicsCiAgICAgICAgdmFsdWU6ICflj7jms5XnrqHnkIYnCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5Yac5Lia5rC05YipJywKICAgICAgICB2YWx1ZTogJ+WGnOS4muawtOWIqScKICAgICAgfSwgewogICAgICAgIG5hbWU6ICfmnLrmnoTnu4Tnu4cnLAogICAgICAgIHZhbHVlOiAn5py65p6E57uE57uHJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+eUn+aAgeeOr+S/nScsCiAgICAgICAgdmFsdWU6ICfnlJ/mgIHnjq/kv50nCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5YW25LuW6KGM5LiaJywKICAgICAgICB2YWx1ZTogJ+WFtuS7luihjOS4micKICAgICAgfV0sCiAgICAgIGRldmljZVN0YXR1c09wdGlvbnM6IFt7CiAgICAgICAgbmFtZTogJ+WPr+eUqCcsCiAgICAgICAgdmFsdWU6ICflj6/nlKgnCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5LiN5Y+v55SoJywKICAgICAgICB2YWx1ZTogJ+S4jeWPr+eUqCcKICAgICAgfV0sCiAgICAgIG5ldHdvcmtUeXBlT3B0OiBbewogICAgICAgIG5hbWU6ICfpg6jpl6jkuJPnvZEnLAogICAgICAgIHZhbHVlOiAn6YOo6Zeo5LiT572RJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WFrOWuieS4k+e9kScsCiAgICAgICAgdmFsdWU6ICflhazlronkuJPnvZEnCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5pS/5Yqh5aSW572RJywKICAgICAgICB2YWx1ZTogJ+aUv+WKoeWklue9kScKICAgICAgfSwgewogICAgICAgIG5hbWU6ICfkupLogZTnvZEnLAogICAgICAgIHZhbHVlOiAn5LqS6IGU572RJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+enu+WKqOe9ke+8iDRH44CBNUfvvIknLAogICAgICAgIHZhbHVlOiAn56e75Yqo572R77yINEfjgIE1R++8iScKICAgICAgfSwgewogICAgICAgIG5hbWU6ICfml6DnvZHnu5wnLAogICAgICAgIHZhbHVlOiAn5peg572R57ucJwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+WFtuS7lue9kee7nCcsCiAgICAgICAgdmFsdWU6ICflhbbku5bnvZHnu5wnCiAgICAgIH1dLAogICAgICBydWxlczogewogICAgICAgIG5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXorr7lpIflkI3np7AnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICBjb2RlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6K6+5aSH57yW56CBJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgb3V0Q29kZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpVNO56CBJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgc3RhdHVzOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6K6+5aSH54q25oCBJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgcHJvZHVjdElkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5omA5bGe5Lqn5ZOBJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgbGV2ZWw6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6norr7lpIfmnYPpmZDnuqfliKsnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICAvLyBsaWZlOiBbCiAgICAgICAgLy8gICB7CiAgICAgICAgLy8gICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgIC8vICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5L2/55So5bm06ZmQJywKICAgICAgICAvLyAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICAvLyAgIH0KICAgICAgICAvLyBdLAogICAgICAgIGFyZWFJZDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeaJgOWxnuWMuuWfnycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIGNvbnN0cnVjdGlvblByb2plY3ROYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5bu66K6+6aG555uu5ZCN56ew5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgY29uc3RydWN0aW9uVW5pdE5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICflu7rorr7ljZXkvY3nsbvlnovkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICB0ZXJtaW5hbEJlbG9uZ1RvRGVwdDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+e7iOerr+aJgOWxnumDqOmXqOS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIGFwcGxpY2F0aW9uQXJlYTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+W6lOeUqOmihuWfn+S4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIGluc3RhbGxUaW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5a6J6KOF5pe26Ze05LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgcmVnaW9uOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5omA5bGe5Yy65LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgc3RyZWV0OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5omA5bGe6KGX6YGT5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgY29tbXVuaXR5OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5omA5bGe56S+5Yy65LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgZGV2aWNlU3RhdHVzOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5Y+v55So54q25oCB5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgc2Vuc2l0aXZlRXF1aXBtZW50OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5piv5ZCm5Li65pWP5oSf6K6+5aSH5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgbmV0d29ya1R5cGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfnvZHnu5znsbvlnovkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICBlcXVpcG1lbnRNYW51ZmFjdHVyZXI6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICforr7lpIfljoLllYbkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICBvcGVyYXRpb25Vbml0OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6L+Q57u05Y2V5L2N5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgb3BlcmF0aW9uVW5pdFBob25lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6L+Q57u05Y2V5L2N6IGU57O755S16K+d5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfSwgewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBwYXR0ZXJuOiAvXlsxXVszLDQsNSw3LDgsOV1bMC05XXs5fSQvLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeato+ehrueahOaJi+acuuWPt+eggScsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBzaGFyZVByb3BlcnR5OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5YWx5Lqr5bGe5oCn5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgdHlwZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+iuvuWkh+exu+Wei+S4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIG1lYXN1cmVtZW50QWNjdXJhY3k6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmtYvph4/nsr7luqbkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICBhcHBsaWNhdGlvblNjZW5hcmlvczogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+W6lOeUqOWcuuaZr+S4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIFBlcm1pc3Npb25MZXZlTGlzdDogW10sCiAgICAgIC8v5p2D6ZmQ57qn5YirCiAgICAgIGRldmljZVN0YXR1czogW10sCiAgICAgIC8vIOiuvuWkh+eKtuaAgQogICAgICBVSVR5cGU6IFtdLAogICAgICAvLyDmianlsZXlj4LmlbDmjqfku7bnsbvlnosKICAgICAgc3VwcGxpZXJEYXRhOiBbXSwKICAgICAgLy8g5L6b5bqU5ZWG5pWw5o2uCiAgICAgIHByb2R1Y3REYXRhOiBbXSwKICAgICAgLy8g5Lqn5ZOB5pWw5o2uCiAgICAgIGFyZWFPcHRpb25zOiBbXSwKICAgICAgLy8g5Yy65Z+f5pWw5o2uCiAgICAgIGFkZHZjZE9wdGlvbnM6IFtdLAogICAgICAvLyDooYzmlL/ljLrliJLmlbDmja4KICAgICAgYWRkcmVzc1R5cGVMaXN0OiBbXSwKICAgICAgLy/lronoo4XlnLDngrnnsbvlnovlrZfmrrXliJfooagKICAgICAgZmxvb3JMaXN0OiBbXSwKICAgICAgLy/lronoo4XmpbzlsYLlrZfmrrXliJfooagKICAgICAgbWFuYWdlclVzZXJEYXRhOiBbXSwKICAgICAgLy/nrqHnkIbkurrlkZjmlbDmja4KICAgICAgcmVwYWlyVXNlckRhdGE6IFtdLAogICAgICAvL+e7tOaKpOS6uuWRmOaVsOaNrgogICAgICBwYXJhbXNWYWx1ZUxpc3Q6IFtdLAogICAgICBkZXZpY2VEYXRhOiB7fSwKICAgICAgZGV2aWNlSWQ6ICcnCiAgICB9OwogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIHRoaXMuZGV2aWNlU3RhdHVzID0gZGljdFV0aWxzLmdldERpY3RJdGVtc0Zyb21DYWNoZSgnc2J6dCcpOwogICAgdGhpcy5hZGRyZXNzVHlwZUxpc3QgPSBkaWN0VXRpbHMuZ2V0RGljdEl0ZW1zRnJvbUNhY2hlKCdhemRkbHgnKTsKICAgIHRoaXMuZmxvb3JMaXN0ID0gZGljdFV0aWxzLmdldERpY3RJdGVtc0Zyb21DYWNoZSgnYXpsYycpOwogICAgdGhpcy5VSVR5cGUgPSBkaWN0VXRpbHMuZ2V0RGljdEl0ZW1zRnJvbUNhY2hlKCdramx4Jyk7CiAgICB0aGlzLlBlcm1pc3Npb25MZXZlTGlzdCA9IGRpY3RVdGlscy5nZXREaWN0SXRlbXNGcm9tQ2FjaGUoJ3NicXhqYicpOwogICAgLy8gdGhpcy5wYXJhbWV0ZXIgPSB0aGlzLiRyb3V0ZS5xdWVyeQogICAgdGhpcy5sb2FkU3VwcGxpZXIoKTsKICAgIHRoaXMubG9hZEFyZWEoKTsKICAgIHRoaXMubG9hZEFkZHZjZCgpOwogICAgdGhpcy5sb2FkUHJvZHVjdCgpOwogICAgdGhpcy5sb2FkTWFpbnRhaW5Vc2VyKCk7CiAgICB0aGlzLmxvYWRVc2VyKCk7CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdGhpcy5nZXRFeHRlbmRQYXJhbXModGhpcy5wYXJhbWV0ZXIuaWQpOwogICAgdGhpcy5nZXRQcm9kdWN0UGFyYW1zKHRoaXMucGFyYW1ldGVyLnByb2R1Y3RJZCk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBzZXRQb3NpdGlvbjogZnVuY3Rpb24gc2V0UG9zaXRpb24oKSB7CiAgICAgIHRoaXMuJHJlZnMubWFwRGlhbG9nLmhhbmRsZU9wZW4odGhpcy5wYXJhbWV0ZXIpOwogICAgfSwKICAgIGdldFBvc2l0aW9uOiBmdW5jdGlvbiBnZXRQb3NpdGlvbihkYXRhKSB7CiAgICAgIHRoaXMucGFyYW1ldGVyLmxndGQgPSBkYXRhLmxndGQgKyAnJzsKICAgICAgdGhpcy5wYXJhbWV0ZXIubHR0ZCA9IGRhdGEubHR0ZCArICcnOwogICAgICB0aGlzLnBhcmFtZXRlci5hcmVhSWQgPSBkYXRhLmFyZWFDb2RlOwogICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpOwogICAgfSwKICAgIGZvcm1hdE51bWJlcjogZnVuY3Rpb24gZm9ybWF0TnVtYmVyKGtleSkgewogICAgICB0aGlzLnBhcmFtZXRlcltrZXldID0gbGF0aXR1ZGUuVHJlZUZvdXIodGhpcy5wYXJhbWV0ZXJba2V5XSk7CiAgICB9LAogICAgLy8g6I635Y+W5Lqn5ZOB5YiX6KGoCiAgICBsb2FkUHJvZHVjdDogZnVuY3Rpb24gbG9hZFByb2R1Y3QoKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIHJlc291cmNlTWFuYWdlLmxvYWRQcm9kdWN0KHt9LCBmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKF90eXBlb2YocmVzKSA9PSAnb2JqZWN0JyAmJiByZXMpIHsKICAgICAgICAgIF90aGlzLnByb2R1Y3REYXRhID0gcmVzOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLy8g6I635Y+W566h55CG5Y2V5L2NCiAgICBsb2FkVXNlcjogZnVuY3Rpb24gbG9hZFVzZXIoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICB2YXIgZGF0YSA9IHsKICAgICAgICBjb21wYW55VHlwZTogJzEnCiAgICAgIH07CiAgICAgIHRoaXMubWFuYWdlclVzZXJEYXRhID0gW107CiAgICAgIHVzZXJNYW5hZ2UuQ29tcGFueVVzZXIoZGF0YSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMyLm1hbmFnZXJVc2VyRGF0YSA9IHJlczsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6I635Y+W6L+Q57u05Y2V5L2NCiAgICBsb2FkTWFpbnRhaW5Vc2VyOiBmdW5jdGlvbiBsb2FkTWFpbnRhaW5Vc2VyKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgdmFyIGRhdGEgPSB7CiAgICAgICAgY29tcGFueVR5cGU6ICczJwogICAgICB9OwogICAgICB0aGlzLnJlcGFpclVzZXJEYXRhID0gW107CiAgICAgIHVzZXJNYW5hZ2UuQ29tcGFueVVzZXIoZGF0YSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMzLnJlcGFpclVzZXJEYXRhID0gcmVzOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bkvpvlupTllYYKICAgIGxvYWRTdXBwbGllcjogZnVuY3Rpb24gbG9hZFN1cHBsaWVyKCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgdmFyIHBhcmFtcyA9IHt9OwogICAgICBTcGFyZUNvbXBhbnkuZmluZENvbXBhbnlMaXN0KHBhcmFtcywgZnVuY3Rpb24gKHJlcykgewogICAgICAgIHZhciBkYXRhID0gW107CiAgICAgICAgX3RoaXM0LnN1cHBsaWVyRGF0YSA9IFtdOwogICAgICAgIGRhdGEgPSByZXM7CiAgICAgICAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICBpZiAoaXRlbS5jb21wYW55VHlwZS5pbmNsdWRlcygnNCcpKSB7CiAgICAgICAgICAgIF90aGlzNC5zdXBwbGllckRhdGEucHVzaChpdGVtKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6I635Y+W5omA5bGe5Yy65Z+fCiAgICBsb2FkQXJlYTogZnVuY3Rpb24gbG9hZEFyZWEoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB0aGlzLmFyZWFPcHRpb25zID0gW107CiAgICAgIHJlc291cmNlTWFuYWdlLmxvYWRBcmVhVHJlZSh7CiAgICAgICAgaWQ6ICcwJwogICAgICB9LCBmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM1LmFyZWFPcHRpb25zID0gcmVzLnZhbHVlOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bmiYDlsZ7ooYzmlL/ljLrliJIKICAgIGxvYWRBZGR2Y2Q6IGZ1bmN0aW9uIGxvYWRBZGR2Y2QoKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICB0aGlzLmFkZHZjZE9wdGlvbnMgPSBbXTsKICAgICAgcmVzb3VyY2VNYW5hZ2UubG9hZEFkbWluQXJlYVRyZWUoe30sIGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAvLyBjb25zb2xlLmxvZyhyZXMsICdyZXMnKQogICAgICAgIF90aGlzNi5hZGR2Y2RPcHRpb25zID0gcmVzLnZhbHVlOwogICAgICB9KTsKICAgIH0sCiAgICBoYW5kbGVDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZUNoYW5nZSh0eXBlKSB7CiAgICAgIGlmICh0eXBlID09ICdyZXBhaXJVc2VySWQnKSB7CiAgICAgICAgdmFyIG5vZGVzID0gdGhpcy4kcmVmcy5jYXNjYWRlclJlcGFpci5nZXRDaGVja2VkTm9kZXMoKTsKICAgICAgICBpZiAobm9kZXMgJiYgbm9kZXMubGVuZ3RoID4gMCkgewogICAgICAgICAgdGhpcy5wYXJhbXMucmVwYWlyVXNlcklkID0gbm9kZXNbMF0uZGF0YS5pZDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kcmVmcy5jYXNjYWRlclJlcGFpci4kcmVmcy5wYW5lbC5jbGVhckNoZWNrZWROb2RlcygpOwogICAgICAgICAgdGhpcy4kcmVmcy5jYXNjYWRlclJlcGFpci4kcmVmcy5wYW5lbC5jaGVja2VkVmFsdWUgPSAnJzsgLy8g5riF56m66YCJ5Lit5YC8CiAgICAgICAgICB0aGlzLiRyZWZzLmNhc2NhZGVyUmVwYWlyLiRyZWZzLnBhbmVsLmFjdGl2ZVBhdGggPSAnJzsgLy8g5riF6Zmk6auY5LquCiAgICAgICAgICB0aGlzLiRyZWZzLmNhc2NhZGVyUmVwYWlyLiRyZWZzLnBhbmVsLnN5bmNBY3RpdmVQYXRoKCk7IC8vIOWIneWni+WMlu+8iOWPquWxleekuuS4gOe6p+iKgueCue+8iQogICAgICAgICAgdGhpcy5wYXJhbXMucmVwYWlyVXNlcklkID0gJyc7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmICh0eXBlID09ICdtYW5hZ2VyVXNlcklkJykgewogICAgICAgIHZhciBfbm9kZXMgPSB0aGlzLiRyZWZzLmNhc2NhZGVyTWFuYWdlci5nZXRDaGVja2VkTm9kZXMoKTsKICAgICAgICBpZiAoX25vZGVzICYmIF9ub2Rlcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICB0aGlzLnBhcmFtcy5tYW5hZ2VyVXNlcklkID0gX25vZGVzWzBdLmRhdGEuaWQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJHJlZnMuY2FzY2FkZXJNYW5hZ2VyLiRyZWZzLnBhbmVsLmNsZWFyQ2hlY2tlZE5vZGVzKCk7CiAgICAgICAgICB0aGlzLiRyZWZzLmNhc2NhZGVyTWFuYWdlci4kcmVmcy5wYW5lbC5jaGVja2VkVmFsdWUgPSAnJzsgLy8g5riF56m66YCJ5Lit5YC8CiAgICAgICAgICB0aGlzLiRyZWZzLmNhc2NhZGVyTWFuYWdlci4kcmVmcy5wYW5lbC5hY3RpdmVQYXRoID0gJyc7IC8vIOa4hemZpOmrmOS6rgogICAgICAgICAgdGhpcy4kcmVmcy5jYXNjYWRlck1hbmFnZXIuJHJlZnMucGFuZWwuc3luY0FjdGl2ZVBhdGgoKTsgLy8g5Yid5aeL5YyW77yI5Y+q5bGV56S65LiA57qn6IqC54K577yJCiAgICAgICAgICB0aGlzLnBhcmFtcy5tYW5hZ2VyVXNlcklkID0gJyc7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmICh0eXBlID09ICdhcmVhSWQnKSB7CiAgICAgICAgdmFyIF9ub2RlczIgPSB0aGlzLiRyZWZzLmNhc2NhZGVyQXJlYS5nZXRDaGVja2VkTm9kZXMoKTsKICAgICAgICBpZiAoX25vZGVzMiAmJiBfbm9kZXMyLmxlbmd0aCA+IDApIHsKICAgICAgICAgIHRoaXMucGFyYW1zLmFyZWFJZCA9IF9ub2RlczJbMF0uZGF0YS5pZDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kcmVmcy5jYXNjYWRlckFyZWEuJHJlZnMucGFuZWwuY2xlYXJDaGVja2VkTm9kZXMoKTsKICAgICAgICAgIHRoaXMuJHJlZnMuY2FzY2FkZXJBcmVhLiRyZWZzLnBhbmVsLmNoZWNrZWRWYWx1ZSA9ICcnOyAvLyDmuIXnqbrpgInkuK3lgLwKICAgICAgICAgIHRoaXMuJHJlZnMuY2FzY2FkZXJBcmVhLiRyZWZzLnBhbmVsLmFjdGl2ZVBhdGggPSAnJzsgLy8g5riF6Zmk6auY5LquCiAgICAgICAgICB0aGlzLiRyZWZzLmNhc2NhZGVyQXJlYS4kcmVmcy5wYW5lbC5zeW5jQWN0aXZlUGF0aCgpOyAvLyDliJ3lp4vljJbvvIjlj6rlsZXnpLrkuIDnuqfoioLngrnvvIkKICAgICAgICAgIHRoaXMucGFyYW1zLmFyZWFJZCA9ICcnOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAodHlwZSA9PSAnYWRkdmNkJykgewogICAgICAgIHZhciBfbm9kZXMzID0gdGhpcy4kcmVmcy5jYXNjYWRlckFkZHZjZC5nZXRDaGVja2VkTm9kZXMoKTsKICAgICAgICBpZiAoX25vZGVzMyAmJiBfbm9kZXMzLmxlbmd0aCA+IDApIHsKICAgICAgICAgIHRoaXMucGFyYW1zLmFkZHZjZCA9IF9ub2RlczNbMF0uZGF0YS5pZDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kcmVmcy5jYXNjYWRlckFkZHZjZC4kcmVmcy5wYW5lbC5jbGVhckNoZWNrZWROb2RlcygpOwogICAgICAgICAgdGhpcy4kcmVmcy5jYXNjYWRlckFkZHZjZC4kcmVmcy5wYW5lbC5jaGVja2VkVmFsdWUgPSAnJzsgLy8g5riF56m66YCJ5Lit5YC8CiAgICAgICAgICB0aGlzLiRyZWZzLmNhc2NhZGVyQWRkdmNkLiRyZWZzLnBhbmVsLmFjdGl2ZVBhdGggPSAnJzsgLy8g5riF6Zmk6auY5LquCiAgICAgICAgICB0aGlzLiRyZWZzLmNhc2NhZGVyQWRkdmNkLiRyZWZzLnBhbmVsLnN5bmNBY3RpdmVQYXRoKCk7IC8vIOWIneWni+WMlu+8iOWPquWxleekuuS4gOe6p+iKgueCue+8iQogICAgICAgICAgdGhpcy5wYXJhbXMuYWRkdmNkID0gJyc7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgYWRkOiBmdW5jdGlvbiBhZGQoKSB7CiAgICAgIHZhciBfdGhpczcgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL3JlZ2VuZXJhdG9yUnVudGltZS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIGxldmVsOwogICAgICAgIHJldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF90aGlzNy52aXNpYmxlID0gdHJ1ZTsKICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXM3LmdldFByb2R1Y3RQYXJhbXMoX3RoaXM3LnBhcmFtZXRlci5wcm9kdWN0SWQpOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDU7CiAgICAgICAgICAgICAgcmV0dXJuIF90aGlzNy5nZXRFeHRlbmRQYXJhbXNEYXRhKF90aGlzNy5wYXJhbWV0ZXIuaWQpOwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgLy8g5omp5bGV5a2X5q615re35YWl5Yiw6KGo5Y2V57uR5a6a5pWw5o2u5LitCiAgICAgICAgICAgICAgX3RoaXM3LmhhbmRsZUV4dGVuZFBhcmFtc01peGluKCk7CiAgICAgICAgICAgICAgX3RoaXM3LnBhcmFtcyA9IHV0aWxzLmRlZXBDbG9uZShfdGhpczcucGFyYW1zKTsKICAgICAgICAgICAgICBsZXZlbCA9IF90aGlzNy5wYXJhbWV0ZXIubGV2ZWwgPyBfdGhpczcucGFyYW1ldGVyLmxldmVsICsgJycgOiAnJzsKICAgICAgICAgICAgICBfdGhpczcuJHNldChfdGhpczcucGFyYW1ldGVyLCAnbGV2ZWwnLCBsZXZlbCk7CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBjaGFuZ2VFeHRlbmQ6IGZ1bmN0aW9uIGNoYW5nZUV4dGVuZCh2YWwpIHsKICAgICAgdmFyIF90aGlzOCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgcmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXM4LmdldFByb2R1Y3RQYXJhbXModmFsKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF90aGlzOC5oYW5kbGVFeHRlbmRQYXJhbXNNaXhpbigpOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBoYW5kbGVDbG9zZTogZnVuY3Rpb24gaGFuZGxlQ2xvc2UoKSB7CiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlOwogICAgICB0aGlzLmFjdGl2ZUNvbGxhcHNlMSA9IFsnMScsICcyJywgJzMnXTsKICAgICAgdGhpcy4kcGFyZW50LmxvYWREYXRhKDEpOwogICAgfSwKICAgIGhhbmRsZVNhdmU6IGZ1bmN0aW9uIGhhbmRsZVNhdmUoKSB7CiAgICAgIHZhciBfdGhpczkgPSB0aGlzOwogICAgICB0aGlzLmlzU2F2ZWQgPSB0cnVlOwogICAgICB0aGlzLiRyZWZzLmZvcm1JbmZvLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgT2JqZWN0LmFzc2lnbihfdGhpczkucGFyYW1ldGVyLCBfdGhpczkucGFyYW1zKTsKICAgICAgICAgIHZhciB0ZW1wRGF0YSA9IHV0aWxzLmRlZXBDbG9uZShfdGhpczkucGFyYW1ldGVyKTsKICAgICAgICAgIHRlbXBEYXRhID0gX3RoaXM5LmhhbmRsZUV4dGVuZFBhcmFtc1NhdmUodGVtcERhdGEpOwogICAgICAgICAgcmVzb3VyY2VNYW5hZ2UuZWRpdERldmljZSh0ZW1wRGF0YSwgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0ZSkgewogICAgICAgICAgICAgIF90aGlzOS4kbm90aWZ5KHsKICAgICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywKICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICfkv67mlLnmiJDlip8nLAogICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDAKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBfdGhpczkuaGFuZGxlQ2xvc2UoKTsKICAgICAgICAgICAgICBfdGhpczkuJHBhcmVudC5sb2FkRGF0YSgxKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBfdGhpczkuJG1lc3NhZ2Uud2FybmluZyhyZXNwb25zZS5tZXNzYWdlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICB9Cn07"},null]}