{"remainingRequest":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\featuresArithmetic\\referDataManager\\areaReferDataManager\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\featuresArithmetic\\referDataManager\\areaReferDataManager\\index.vue","mtime":1738954563567},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\babel.config.js","mtime":1733906004399},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UvZGF0YVNoYXJlLWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yUnVudGltZS5qcyI7CmltcG9ydCBfYXN5bmNUb0dlbmVyYXRvciBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9kYXRhU2hhcmUtZnZ1ZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gIkQ6L2plbmtpbnMvd29ya3NwYWNlL2RhdGFTaGFyZS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZXJyb3IuY2F1c2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5qb2luLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB1dGlscyBmcm9tICdAL3V0aWxzJzsKaW1wb3J0IHsgZ2V0RGljdGlvbmFyeUJ5Q29kZSB9IGZyb20gJ0AvdXRpbHMvZGljdGlvbmFyeS5qcyc7CmltcG9ydCB0YWJsZU1peGluIGZyb20gJ0AvbWl4aW5zL3RhYmxlLmpzJzsgLy8g5YiX6KGobWl4aW5zCmltcG9ydCBhcmVhRGlhbG9nIGZyb20gJy4vYXJlYURpYWxvZy52dWUnOwppbXBvcnQgQVBJIGZyb20gJ0AvYXBpL2J1c2luZXNzL2FyZWEuanMnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ0RhdGFEaW1lbnNpb24nLAogIGNvbXBvbmVudHM6IHsKICAgIGFyZWFEaWFsb2c6IGFyZWFEaWFsb2cKICB9LAogIG1peGluczogW3RhYmxlTWl4aW5dLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICB2YXIgY2hlY2tMZyA9IGZ1bmN0aW9uIGNoZWNrTGcocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSB7CiAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9IGVsc2UgewogICAgICAgIHZhciBudW1UZW1wID0gdmFsdWU7CiAgICAgICAgdmFyIG51bSA9IHBhcnNlRmxvYXQobnVtVGVtcCk7CiAgICAgICAgaWYgKG51bSA8IDAgfHwgbnVtID4gMTgwKSB7CiAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ+e7j+W6puWcqDAtMTgw5LmL6Ze0LOivt+agueaNruaPkOekuuWhq+WGmSEnKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgfQogICAgICB9CiAgICB9OwogICAgdmFyIGNoZWNrbHQgPSBmdW5jdGlvbiBjaGVja2x0KHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgewogICAgICBpZiAoIXZhbHVlKSB7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgbnVtVGVtcCA9IHZhbHVlOwogICAgICAgIHZhciBudW0gPSBwYXJzZUZsb2F0KG51bVRlbXApOwogICAgICAgIGlmIChudW0gPCAwIHx8IG51bSA+IDkwKSB7CiAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ+e7j+W6puWcqDAtOTDkuYvpl7Qs6K+35qC55o2u5o+Q56S65aGr5YaZIScpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICB2YXIgVFJFRV9DT05GSUcgPSB7CiAgICAgIHRyZWVQcm9wczogewogICAgICAgIGNoaWxkcmVuOiAnY2hpbGRyZW4nLAogICAgICAgIGxhYmVsOiAnbmFtZScsCiAgICAgICAgaXNMZWFmOiAnaXNMZWFmJwogICAgICB9LAogICAgICBleHBhbmRBbGw6IGZhbHNlLAogICAgICBkZWZhdWx0RXhwYW5kZWRLZXlzOiBbXSwKICAgICAgZGVmYXVsdERhdGE6IHsKICAgICAgICBuYW1lOiAnJywKICAgICAgICBjb2RlOiAnJywKICAgICAgICBsb25naXR1ZGU6ICcnLAogICAgICAgIGxhdGl0dWRlOiAnJwogICAgICB9LAogICAgICAvLyDlvZPliY3pgInmi6noioLngrkKICAgICAgY3VyRGF0YTogewogICAgICAgIGlkOiAncm9vdCcsCiAgICAgICAgbmFtZTogJ+S4reWbvScKICAgICAgfSwKICAgICAgY3VyTm9kZToge30sCiAgICAgIGFjdGlvblR5cGU6ICcnLAogICAgICBmb3JtUnVsZXM6IHsKICAgICAgICBuYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5ZCN56ew5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgY29kZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+e8lueggeS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH0sIHsKICAgICAgICAgIHBhdHRlcm46ICdeWzAtOV0rJCcsCiAgICAgICAgICBtZXNzYWdlOiAn57yW56CB5Li6IDEyIOWIsCAxNSDkvY3mlbDlrZcs6K+35qC55o2u5o+Q56S65aGr5YaZJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfSwgewogICAgICAgICAgbWluOiAxMiwKICAgICAgICAgIG1heDogMTUsCiAgICAgICAgICBtZXNzYWdlOiAn57yW56CB5Li6IDEyIOWIsCAxNSDkvY3mlbDlrZcs6K+35qC55o2u5o+Q56S65aGr5YaZJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgbG9uZ2l0dWRlOiBbewogICAgICAgICAgdmFsaWRhdG9yOiBjaGVja0xnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfSwgewogICAgICAgICAgcGF0dGVybjogJ15bMC05XSsoLlswLTldezEsNn0pPyQnLAogICAgICAgICAgbWVzc2FnZTogJ+agvOW8j+mUmeivryzor7fmoLnmja7mj5DnpLrloavlhpknLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICBsYXRpdHVkZTogW3sKICAgICAgICAgIHZhbGlkYXRvcjogY2hlY2tsdCwKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH0sIHsKICAgICAgICAgIHBhdHRlcm46ICdeWzAtOV0rKC5bMC05XXsxLDZ9KT8kJywKICAgICAgICAgIG1lc3NhZ2U6ICfmoLzlvI/plJnor68s6K+35qC55o2u5o+Q56S65aGr5YaZJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0KICAgICAgfQogICAgfTsKICAgIHZhciBUQUJMRV9DT05GSUcgPSB7CiAgICAgIC8vIOWIl+ihqOihqOWktAogICAgICBjb2x1bW5zOiBbewogICAgICAgIGxhYmVsOiAn6KGM5pS/5Yy65YiS5ZCN56ewJywKICAgICAgICBwcm9wOiAnbmFtZScsCiAgICAgICAgYWxpZ246ICdjZW50ZXInCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+ihjOaUv+WMuuWIkue8lueggScsCiAgICAgICAgcHJvcDogJ2NvZGUnLAogICAgICAgIGFsaWduOiAnY2VudGVyJwogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICfnu4/luqYnLAogICAgICAgIHByb3A6ICdrZXknLAogICAgICAgIGFsaWduOiAnY2VudGVyJwogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICfnuqzluqYnLAogICAgICAgIHByb3A6ICdrZXknLAogICAgICAgIGFsaWduOiAnY2VudGVyJwogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICfmjpLluo/lj7cnLAogICAgICAgIHByb3A6ICdzbicsCiAgICAgICAgZGF0YVR5cGU6ICdzbG90JywKICAgICAgICBzbG90OiAnc24nLAogICAgICAgIGFsaWduOiAnY2VudGVyJwogICAgICB9XSwKICAgICAgZGVmYXVsdEZpbHRlcjogW3sKICAgICAgICBvcGVyYXRpb246ICdFUVVBTCcsCiAgICAgICAgcHJvcGVydHk6ICdwYXJlbnRJZCcsCiAgICAgICAgcmVsYXRpb246ICdBTkQnLAogICAgICAgIHZhbHVlOiAnJwogICAgICB9XSwKICAgICAgcm93RGF0YToge30sCiAgICAgIHNlbGVjdGlvbnM6IFtdLAogICAgICBzZXF1ZW5jZToge30KICAgIH07CiAgICB2YXIgRElBTE9HX0NPTkZJRyA9IHsKICAgICAgZGlhbG9nVmlzaWJsZTogZmFsc2UsCiAgICAgIGRpYWxvZ1RpdGxlOiAn5paw5aKeJywKICAgICAgZmllbGREaWFsb2dWaXNpYmxlOiBmYWxzZSwKICAgICAgZGlhbG9nZERhdGE6IHt9LAogICAgICBkcmF3ZXJWaXNpYmxlOiBmYWxzZSwKICAgICAgZHJhd2VyVGl0bGU6ICcnLAogICAgICBwYXJlbnRSb3c6IHt9CiAgICB9OwogICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoewogICAgICB0cmVlRGF0YTogW10KICAgIH0sIFRSRUVfQ09ORklHKSwgVEFCTEVfQ09ORklHKSwgRElBTE9HX0NPTkZJRyksIHt9LCB7CiAgICAgIHVwbG9hZFZpc2libGU6IGZhbHNlLAogICAgICB1cGxvYWRMb2FkaW5nOiBmYWxzZSwKICAgICAgc29ydGVyOiBbewogICAgICAgIGRpcmVjdGlvbjogJ0FTQycsCiAgICAgICAgcHJvcGVydHk6ICdzbl8nCiAgICAgIH1dCiAgICB9KTsKICB9LAogIGNvbXB1dGVkOiB7CiAgICAvLyDphY3nva7liJfooajmjqXlj6Pmlrnms5XvvJrlj6rmnInphY3nva7kuobor6XorqHnrpflsZ7mgKcg5omN5Lya5omn6KGMIHRhYmxlIG1peGluc+S4reeahGdldERhdGHmlrnms5UKICAgIGRhdGFNZXRob2Q6IGZ1bmN0aW9uIGRhdGFNZXRob2QoKSB7CiAgICAgIHJldHVybiBBUEkuZ2V0QXJlYUxpc3Q7CiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICBnZXREaWN0aW9uYXJ5QnlDb2RlOiBnZXREaWN0aW9uYXJ5QnlDb2RlLAogICAgZ2V0VHJlZU5vZGVzOiBmdW5jdGlvbiBnZXRUcmVlTm9kZXMobm9kZSwgcmVzb2x2ZSkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIHBhcmFtczsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBpZiAoIShub2RlLmxldmVsID09PSAwKSkgewogICAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDQ7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmFicnVwdCgicmV0dXJuIiwgcmVzb2x2ZShbewogICAgICAgICAgICAgICAgY29kZTogJ0NoaW5hJywKICAgICAgICAgICAgICAgIGZ1bGxJZDogJy9yb290JywKICAgICAgICAgICAgICAgIGZ1bGxOYW1lOiAnL0NoaW5hJywKICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSwKICAgICAgICAgICAgICAgIGhhc0NoaWxkcmVuOiAwLAogICAgICAgICAgICAgICAgaXNMZWFmOiBmYWxzZSwKICAgICAgICAgICAgICAgIGlkOiAncm9vdCcsCiAgICAgICAgICAgICAgICBsYXRpdHVkZTogMCwKICAgICAgICAgICAgICAgIGxldmVsQ29kZTogJ0NPVU5UUlknLAogICAgICAgICAgICAgICAgbG9uZ2l0dWRlOiAwLAogICAgICAgICAgICAgICAgbmFtZTogJ+S4reWbvScsCiAgICAgICAgICAgICAgICBwYXJlbnRJZDogbnVsbCwKICAgICAgICAgICAgICAgIHBrVmFsOiAnJywKICAgICAgICAgICAgICAgIHNuOiAwCiAgICAgICAgICAgICAgfV0pKTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIGlmIChub2RlLmRhdGEuaWQpIHsKICAgICAgICAgICAgICAgIHBhcmFtcyA9IF90aGlzLnFzLnN0cmluZ2lmeSh7CiAgICAgICAgICAgICAgICAgIHBhcmVudElkOiBub2RlLmRhdGEuaWQKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgQVBJLnF1ZXJ5QXJlYUJ5UGFyZW50SWQocGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICAgICAgdmFyIHRyZWVEYXRhID0gcmVzLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICAgIGl0ZW0uaXNMZWFmID0gaXRlbS5oYXNDaGlsZHJlbiA9PT0gMCA/IHRydWUgOiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHRyZWVEYXRhKTsKICAgICAgICAgICAgICAgIH0pLmZpbmFsbHkoZnVuY3Rpb24gKCkge30pOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXNvbHZlKHt9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBmb3JtYXRBcmVhVHJlZTogZnVuY3Rpb24gZm9ybWF0QXJlYVRyZWUodmFsdWUpIHsKICAgICAgcmV0dXJuIFtdOwogICAgfSwKICAgIHJlbG9hZFRyZWU6IGZ1bmN0aW9uIHJlbG9hZFRyZWUoKSB7CiAgICAgIHRoaXMuJHJlZnMuYXBwQXN5bmNUcmVlLmdldFRyZWVEYXRhKCk7CiAgICB9LAogICAgLyoqDQogICAgICogQGRlc2NyaXB0aW9uOiB0cmVlQWN0aW9uc+aUr+aMgeWHveaVsOS5n+aUr+aMgeaVsOe7hO+8jOeUseS6juWunumZheWcuuaZr+W9k+S4rSDlj6/og73kvJrliqjmgIHorr7nva7mjInpkq7vvIzmlYXku6Xlh73mlbDnpLrkvovmnaXlsZXnpLoNCiAgICAgKiBAcGFyYW0geyp9IGRhdGEg5b2T5YmN54K55Ye76IqC54K55pWw5o2uDQogICAgICogQHJldHVybiB7Kn0g5b2T5YmN6IqC54K55bGV56S655qE5pON5L2c6aG55pWw57uEDQogICAgICovCiAgICB0cmVlQWN0aW9uczogZnVuY3Rpb24gdHJlZUFjdGlvbnMoZGF0YSkgewogICAgICAvLyDmoLnoioLngrnliKTmlq3mlrnlvI/ku6XkuJrliqHkuLrlh4bvvIzmraTlpITku4XkuLrnpLrkvosKICAgICAgcmV0dXJuIFt7CiAgICAgICAgbGFiZWw6ICfmt7vliqAnLAogICAgICAgIHR5cGU6ICdhZGQnLAogICAgICAgIG1ldGhvZDogdGhpcy5hZGROb2RlCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+e8lui+kScsCiAgICAgICAgdHlwZTogJ2VkaXQnLAogICAgICAgIG1ldGhvZDogdGhpcy5lZGl0Tm9kZSwKICAgICAgICBzaG93SGlkZTogZnVuY3Rpb24gc2hvd0hpZGUocm93KSB7CiAgICAgICAgICByZXR1cm4gcm93LmlkICE9PSAncm9vdCc7CiAgICAgICAgfQogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICfliKDpmaQnLAogICAgICAgIHR5cGU6ICdkZWxldGUnLAogICAgICAgIG1ldGhvZDogdGhpcy5kZWxOb2RlLAogICAgICAgIHNob3dIaWRlOiBmdW5jdGlvbiBzaG93SGlkZShyb3cpIHsKICAgICAgICAgIHJldHVybiByb3cuaWQgIT09ICdyb290JzsKICAgICAgICB9LAogICAgICAgIHRpcHM6ICflj4rlhbblrZDoioLngrknCiAgICAgIH1dOwogICAgfSwKICAgIG9uVHJlZU5vZGVDbGljazogZnVuY3Rpb24gb25UcmVlTm9kZUNsaWNrKGRhdGEpIHsKICAgICAgdmFyIF90aGlzJGN1ckRhdGE7CiAgICAgIGlmIChkYXRhLmlkID09PSAoKF90aGlzJGN1ckRhdGEgPSB0aGlzLmN1ckRhdGEpID09PSBudWxsIHx8IF90aGlzJGN1ckRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJGN1ckRhdGEuaWQpKSByZXR1cm47CiAgICAgIHRoaXMuY3VyRGF0YSA9IF9vYmplY3RTcHJlYWQoe30sIGRhdGEpOwogICAgICB0aGlzLmdldERhdGEoKTsKICAgIH0sCiAgICBnZXRMZXZlbmxDb2RlOiBmdW5jdGlvbiBnZXRMZXZlbmxDb2RlKHBsZXZlbGNvZGUpIHsKICAgICAgdmFyIGxldmVsQ29kZSA9ICcnOwogICAgICBzd2l0Y2ggKHBsZXZlbGNvZGUpIHsKICAgICAgICBjYXNlICdDT1VOVFJZJzoKICAgICAgICAgIGxldmVsQ29kZSA9ICdwcm92aW5jZSc7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdwcm92aW5jZSc6CiAgICAgICAgICAvL+ecgQogICAgICAgICAgbGV2ZWxDb2RlID0gJ2NpdHknOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY2l0eSc6CiAgICAgICAgICAvL+W4ggogICAgICAgICAgbGV2ZWxDb2RlID0gJ2NvdW50cnknOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY291bnRyeSc6CiAgICAgICAgICAvL+WMuuWOvwogICAgICAgICAgbGV2ZWxDb2RlID0gJ3Rvd24nOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAndG93bic6CiAgICAgICAgICAvL+S5oemVhwogICAgICAgICAgbGV2ZWxDb2RlID0gJ3ZpbGxhZ2UnOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAndmlsbGFnZSc6CiAgICAgICAgICAvL+adkQogICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIGxldmVsQ29kZSA9ICcnOwogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgcmV0dXJuIGxldmVsQ29kZTsKICAgIH0sCiAgICBiZWZvcmVBY3Rpb25zQ2xpY2s6IGZ1bmN0aW9uIGJlZm9yZUFjdGlvbnNDbGljayhhY3Rpb24pIHsKICAgICAgdmFyIF9ub2RlJHBhcmVudDsKICAgICAgdmFyIGRhdGEgPSBhY3Rpb24uZGF0YSwKICAgICAgICBub2RlID0gYWN0aW9uLm5vZGUsCiAgICAgICAgdHlwZSA9IGFjdGlvbi50eXBlOwogICAgICB2YXIgcGFyZW50TmFtZSA9IChub2RlID09PSBudWxsIHx8IG5vZGUgPT09IHZvaWQgMCB8fCAoX25vZGUkcGFyZW50ID0gbm9kZS5wYXJlbnQpID09PSBudWxsIHx8IF9ub2RlJHBhcmVudCA9PT0gdm9pZCAwIHx8IChfbm9kZSRwYXJlbnQgPSBfbm9kZSRwYXJlbnQuZGF0YSkgPT09IG51bGwgfHwgX25vZGUkcGFyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfbm9kZSRwYXJlbnQubmFtZSkgfHwgJyc7CiAgICAgIHRoaXMuY3VyRGF0YSA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZGF0YSksIHt9LCB7CiAgICAgICAgcGFyZW50TmFtZTogcGFyZW50TmFtZQogICAgICB9KTsKICAgICAgdGhpcy5hY3Rpb25UeXBlID0gdHlwZTsKICAgIH0sCiAgICBhZGROb2RlOiBmdW5jdGlvbiBhZGROb2RlKHBhcmFtcywgbm9kZSkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMigpIHsKICAgICAgICB2YXIgY29kZSwgbmFtZSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgaWQsIFBsZXZlbENvZGUsIHBuYW1lLCBuZXdOb2RlLCBfeWllbGQkQVBJJHNhdmVBcmVhLCBzdGF0ZSwgbWVzc2FnZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0MikgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgY29kZSA9IHBhcmFtcy5jb2RlLCBuYW1lID0gcGFyYW1zLm5hbWUsIGxhdGl0dWRlID0gcGFyYW1zLmxhdGl0dWRlLCBsb25naXR1ZGUgPSBwYXJhbXMubG9uZ2l0dWRlOwogICAgICAgICAgICAgIGlkID0gbm9kZS5pZCwgUGxldmVsQ29kZSA9IG5vZGUuUGxldmVsQ29kZSwgcG5hbWUgPSBub2RlLnBuYW1lOwogICAgICAgICAgICAgIG5ld05vZGUgPSB7CiAgICAgICAgICAgICAgICBwYXJlbnRJZDogaWQsCiAgICAgICAgICAgICAgICBjb2RlOiBjb2RlLAogICAgICAgICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgICAgICAgIGxhdGl0dWRlOiBsYXRpdHVkZSwKICAgICAgICAgICAgICAgIGxvbmdpdHVkZTogbG9uZ2l0dWRlLAogICAgICAgICAgICAgICAgbGV2ZWxDb2RlOiBfdGhpczIuZ2V0TGV2ZW5sQ29kZShQbGV2ZWxDb2RlKQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgX2NvbnRleHQyLnByZXYgPSAzOwogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gNjsKICAgICAgICAgICAgICByZXR1cm4gQVBJLnNhdmVBcmVhKG5ld05vZGUpOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgX3lpZWxkJEFQSSRzYXZlQXJlYSA9IF9jb250ZXh0Mi5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJEFQSSRzYXZlQXJlYS5zdGF0ZTsKICAgICAgICAgICAgICBtZXNzYWdlID0gX3lpZWxkJEFQSSRzYXZlQXJlYS5tZXNzYWdlOwogICAgICAgICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgICAgICAgX3RoaXMyLnJlZnJlc2hUcmVlTm9kZSgpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBfdGhpczIuJG1lc3NhZ2Uud2FybmluZyhtZXNzYWdlIHx8ICfmt7vliqDljLrliJLlpLHotKXvvIEnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAxNTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAxMjoKICAgICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDEyOwogICAgICAgICAgICAgIF9jb250ZXh0Mi50MCA9IF9jb250ZXh0MlsiY2F0Y2giXSgzKTsKICAgICAgICAgICAgICBfdGhpczIuJG1lc3NhZ2Uud2FybmluZyhfY29udGV4dDIudDAgfHwgJ+a3u+WKoOWMuuWIkuWksei0pe+8gScpOwogICAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyLCBudWxsLCBbWzMsIDEyXV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBlZGl0Tm9kZTogZnVuY3Rpb24gZWRpdE5vZGUocGFyYW1zKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzKCkgewogICAgICAgIHZhciBuZXdOb2RlLCBfeWllbGQkQVBJJHNhdmVBcmVhMiwgc3RhdGUsIG1lc3NhZ2U7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzJChfY29udGV4dDMpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5wcmV2ID0gX2NvbnRleHQzLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIG5ld05vZGUgPSBfb2JqZWN0U3ByZWFkKHt9LCBwYXJhbXMpOwogICAgICAgICAgICAgIF9jb250ZXh0My5wcmV2ID0gMTsKICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDQ7CiAgICAgICAgICAgICAgcmV0dXJuIEFQSS5zYXZlQXJlYShuZXdOb2RlKTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF95aWVsZCRBUEkkc2F2ZUFyZWEyID0gX2NvbnRleHQzLnNlbnQ7CiAgICAgICAgICAgICAgc3RhdGUgPSBfeWllbGQkQVBJJHNhdmVBcmVhMi5zdGF0ZTsKICAgICAgICAgICAgICBtZXNzYWdlID0gX3lpZWxkJEFQSSRzYXZlQXJlYTIubWVzc2FnZTsKICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgIF90aGlzMy5yZWZyZXNoVHJlZU5vZGUodHJ1ZSk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIF90aGlzMy4kbWVzc2FnZS53YXJuaW5nKG1lc3NhZ2UgfHwgJ+e8lui+keWMuuWIkuWksei0pe+8gScpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDEzOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgIF9jb250ZXh0My5wcmV2ID0gMTA7CiAgICAgICAgICAgICAgX2NvbnRleHQzLnQwID0gX2NvbnRleHQzWyJjYXRjaCJdKDEpOwogICAgICAgICAgICAgIF90aGlzMy4kbWVzc2FnZS53YXJuaW5nKF9jb250ZXh0My50MCB8fCAn57yW6L6R5Yy65YiS5aSx6LSl77yBJyk7CiAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTMsIG51bGwsIFtbMSwgMTBdXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIGRlbE5vZGU6IGZ1bmN0aW9uIGRlbE5vZGUocGFyYW1zLCBkYXRhKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU0KCkgewogICAgICAgIHZhciBxdWVyeVBhcmFtcywgX3lpZWxkJEFQSSRkZWxldGVBcmVhLCBzdGF0ZSwgbWVzc2FnZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQkKF9jb250ZXh0NCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0LnByZXYgPSBfY29udGV4dDQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgcXVlcnlQYXJhbXMgPSAnaWRzPScgKyBkYXRhLmlkOwogICAgICAgICAgICAgIF9jb250ZXh0NC5wcmV2ID0gMTsKICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDQ7CiAgICAgICAgICAgICAgcmV0dXJuIEFQSS5kZWxldGVBcmVhKHF1ZXJ5UGFyYW1zKTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF95aWVsZCRBUEkkZGVsZXRlQXJlYSA9IF9jb250ZXh0NC5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJEFQSSRkZWxldGVBcmVhLnN0YXRlOwogICAgICAgICAgICAgIG1lc3NhZ2UgPSBfeWllbGQkQVBJJGRlbGV0ZUFyZWEubWVzc2FnZTsKICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgIF90aGlzNC5yZWZyZXNoVHJlZU5vZGUodHJ1ZSk7CiAgICAgICAgICAgICAgICBfdGhpczQuJG1lc3NhZ2Uuc3VjY2Vzcygn5Yig6Zmk5Yy65YiS5oiQ5Yqf77yBJyk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIF90aGlzNC4kbWVzc2FnZS53YXJuaW5nKG1lc3NhZ2UgfHwgJ+WIoOmZpOWMuuWIkuWksei0pe+8gScpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDEzOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgIF9jb250ZXh0NC5wcmV2ID0gMTA7CiAgICAgICAgICAgICAgX2NvbnRleHQ0LnQwID0gX2NvbnRleHQ0WyJjYXRjaCJdKDEpOwogICAgICAgICAgICAgIF90aGlzNC4kbWVzc2FnZS53YXJuaW5nKF9jb250ZXh0NC50MCB8fCAn5Yig6Zmk5Yy65YiS5aSx6LSl77yBJyk7CiAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTQsIG51bGwsIFtbMSwgMTBdXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOWIl+ihqCAtLS0tLS0tLS0tLS0tLS0tLQogICAgb25CZWZvcmVHZXREYXRhOiBmdW5jdGlvbiBvbkJlZm9yZUdldERhdGEocXVlcnlQYXJhbXMsIGZvcm1EYXRhKSB7CiAgICAgIHRoaXMuc2V0RmlsdGVyVmFsdWUodGhpcy5xdWVyeVBhcmFtcywgdGhpcy5kZWZhdWx0RmlsdGVyLCAncGFyZW50SWQnLCB0aGlzLmN1ckRhdGEuaWQpOwogICAgfSwKICAgIGhhbmRsZVNlbGVjdHNDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVNlbGVjdHNDaGFuZ2UoYXJyKSB7CiAgICAgIHRoaXMuc2VsZWN0aW9ucyA9IGFycjsKICAgIH0sCiAgICBhZGRTdWJOb2RlOiBmdW5jdGlvbiBhZGRTdWJOb2RlKCkgewogICAgICB0aGlzLmRpYWxvZ1RpdGxlID0gJ+aWsOWinuWMuuWIkic7CiAgICAgIHRoaXMuY3VycmVudFJvdyA9IHsKICAgICAgICBjb2RlOiAnJywKICAgICAgICBuYW1lOiAnJywKICAgICAgICBwYXJlbnRJZDogdGhpcy5jdXJEYXRhLmlkLAogICAgICAgIGxvbmdpdHVkZTogJycsCiAgICAgICAgbGF0aXR1ZGU6ICcnCiAgICAgIH07CiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7CiAgICB9LAogICAgZWRpdFN1Yk5vZGU6IGZ1bmN0aW9uIGVkaXRTdWJOb2RlKHJvdykgewogICAgICB0aGlzLmRpYWxvZ1RpdGxlID0gIlx1N0YxNlx1OEY5MSAtICIuY29uY2F0KHJvdy5uYW1lKTsKICAgICAgdGhpcy5jdXJyZW50Um93ID0gcm93OwogICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlOwogICAgfSwKICAgIGRlbGV0ZVN1Yk5vZGU6IGZ1bmN0aW9uIGRlbGV0ZVN1Yk5vZGUoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB0aGlzLiRjb25maXJtKCJcdTZCNjRcdTY0Q0RcdTRGNUNcdTVDMDZcdTUyMjBcdTk2NjRcdTkwMDlcdTRFMkRcdTUzM0FcdTUyMTIsIFx1NjYyRlx1NTQyNlx1N0VFN1x1N0VFRD8iLCAn5o+Q56S6JywgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1KCkgewogICAgICAgIHZhciBpZHMsIGRhdGEsIF95aWVsZCRBUEkkZGVsZXRlQXJlYTIsIHN0YXRlLCBtZXNzYWdlOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlNSQoX2NvbnRleHQ1KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDUucHJldiA9IF9jb250ZXh0NS5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBpZHMgPSBfdGhpczUuc2VsZWN0aW9ucy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIGRhdGEgPSAnaWRzPScgKyBpZHMuam9pbignLCcpOwogICAgICAgICAgICAgIF9jb250ZXh0NS5wcmV2ID0gMjsKICAgICAgICAgICAgICBfY29udGV4dDUubmV4dCA9IDU7CiAgICAgICAgICAgICAgcmV0dXJuIEFQSS5kZWxldGVBcmVhKGRhdGEpOwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgX3lpZWxkJEFQSSRkZWxldGVBcmVhMiA9IF9jb250ZXh0NS5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJEFQSSRkZWxldGVBcmVhMi5zdGF0ZTsKICAgICAgICAgICAgICBtZXNzYWdlID0gX3lpZWxkJEFQSSRkZWxldGVBcmVhMi5tZXNzYWdlOwogICAgICAgICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgICAgICAgX3RoaXM1LmdldERhdGEoKTsKICAgICAgICAgICAgICAgIF90aGlzNS5yZWZyZXNoVHJlZU5vZGUoKTsKICAgICAgICAgICAgICAgIF90aGlzNS4kbWVzc2FnZS5zdWNjZXNzKCfliKDpmaTljLrliJLmiJDlip/vvIEnKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgX3RoaXM1LiRtZXNzYWdlLndhcm5pbmcobWVzc2FnZSB8fCAn5Yig6Zmk5Yy65YiS5aSx6LSl77yBJyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gMTQ7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgX2NvbnRleHQ1LnByZXYgPSAxMTsKICAgICAgICAgICAgICBfY29udGV4dDUudDAgPSBfY29udGV4dDVbImNhdGNoIl0oMik7CiAgICAgICAgICAgICAgX3RoaXM1LiRtZXNzYWdlLndhcm5pbmcoX2NvbnRleHQ1LnQwIHx8ICfliKDpmaTljLrliJLlpLHotKXvvIEnKTsKICAgICAgICAgICAgY2FzZSAxNDoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNSwgbnVsbCwgW1syLCAxMV1dKTsKICAgICAgfSkpKS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAogICAgdXBkYXRlU2VxdWVuY2U6IGZ1bmN0aW9uIHVwZGF0ZVNlcXVlbmNlKCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuc2VxdWVuY2UpLmxlbmd0aCkgewogICAgICAgIEFQSS51cGRhdGVTZXF1ZW5jZSh0aGlzLnNlcXVlbmNlKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIGlmIChyZXMuc3RhdGUpIHsKICAgICAgICAgICAgX3RoaXM2LmdldERhdGEoKTsKICAgICAgICAgICAgX3RoaXM2LiRtZXNzYWdlKHsKICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsCiAgICAgICAgICAgICAgbWVzc2FnZTogcmVzLm1lc3NhZ2UKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAnd2FybmluZycsCiAgICAgICAgICBtZXNzYWdlOiAn5L+d5a2Y5Y+35pyq5L+u5pS5JwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgaGFuZGxlQ2hhbmdlU2VxdTogZnVuY3Rpb24gaGFuZGxlQ2hhbmdlU2VxdShyb3cpIHsKICAgICAgdGhpcy5zZXF1ZW5jZVtyb3cuaWRdID0gcm93LnNuOwogICAgfSwKICAgIG9uRGlhbG9nQ29uZmlybTogZnVuY3Rpb24gb25EaWFsb2dDb25maXJtKCkgewogICAgICB0aGlzLmdldERhdGEoKTsKICAgICAgdGhpcy5yZWZyZXNoVHJlZU5vZGUoKTsKICAgIH0sCiAgICByZWZyZXNoVHJlZU5vZGU6IGZ1bmN0aW9uIHJlZnJlc2hUcmVlTm9kZSgpIHsKICAgICAgdmFyIGlzUGFyZW50ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBmYWxzZTsKICAgICAgdmFyIHRyZWUgPSB0aGlzLiRyZWZzLmFwcEFzeW5jVHJlZS5nZXRFbFRyZWUoKTsKICAgICAgdmFyIG5vZGUgPSBpc1BhcmVudCA/IHRyZWUuZ2V0Tm9kZSh0aGlzLmN1ckRhdGEucGFyZW50SWQpIDogdHJlZS5nZXROb2RlKHRoaXMuY3VyRGF0YS5pZCk7CiAgICAgIGlmIChub2RlKSB7CiAgICAgICAgbm9kZS5sb2FkZWQgPSBmYWxzZTsKICAgICAgICBub2RlLmV4cGFuZCgpOyAvLyDkuLvliqjosIPnlKjlsZXlvIDoioLngrnmlrnms5XvvIzph43mlrDmn6Xor6Lor6XoioLngrnkuIvnmoTmiYDmnInlrZDoioLngrkKICAgICAgfQogICAgfQogIH0KfTs="},null]}