1 |
- {"remainingRequest":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\boman-framwork\\ruoyi-ui\\src\\components\\MutipleSelectPop\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\boman-framwork\\ruoyi-ui\\src\\components\\MutipleSelectPop\\index.vue","mtime":1620609644454},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJFOi9ib21hbi1mcmFtd29yay9ydW95aS11aS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQiKS5kZWZhdWx0OwoKT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgewogIHZhbHVlOiB0cnVlCn0pOwpleHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7Cgp2YXIgX3RvQ29uc3VtYWJsZUFycmF5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiRTovYm9tYW4tZnJhbXdvcmsvcnVveWktdWkvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdG9Db25zdW1hYmxlQXJyYXkiKSk7Cgp2YXIgX3R5cGVvZjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoIkU6L2JvbWFuLWZyYW13b3JrL3J1b3lpLXVpL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZiIpKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zZWFyY2guanMiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zcGxpdC5qcyIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maW5kLWluZGV4LmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZnJvbS5qcyIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvci5qcyIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnNldC5qcyIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaW5jbHVkZXMuanMiKTsKCnZhciBfZGVmaW5pdGlvbiA9IHJlcXVpcmUoIkAvYXBpL2FjdGl2aXRpL2RlZmluaXRpb24iKTsKCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCnZhciBfZGVmYXVsdDIgPSB7CiAgbmFtZTogIk11dGlwbGUiLAogIHByb3BzOiB7CiAgICAvLyB0cmVlZGF0YTogewogICAgLy8gICB0eXBlOiBBcnJheSwKICAgIC8vICAgZGVmYXVsdCgpIHsKICAgIC8vICAgICByZXR1cm4gW107CiAgICAvLyAgIH0KICAgIC8vIH0sCiAgICAvLyBjb21wb25lbnREYXRhOiB7CiAgICAvLyAgIHR5cGU6IEFycmF5LAogICAgLy8gICBkZWZhdWx0KCkgewogICAgLy8gICAgIHJldHVybiBbXTsKICAgIC8vICAgfQogICAgLy8gfSwKICAgIHJlc3VsdERhdGE6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4ge307CiAgICAgIH0KICAgIH0sCiAgICBsb2FkaW5nOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgLy8gdHJlZUxvYWRpbmc6IHsKICAgIC8vICAgdHlwZTogQm9vbGVhbiwKICAgIC8vICAgZGVmYXVsdDogZmFsc2UKICAgIC8vIH0sCiAgICAvLyB0YWJsZUxvYWRpbmc6IHsKICAgIC8vICAgdHlwZTogQm9vbGVhbiwKICAgIC8vICAgZGVmYXVsdDogZmFsc2UKICAgIC8vIH0sCiAgICBvcGVuOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgaWNvbl9kZWxlY3Q6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiaWNvbmZvbnQgIGljb24tYmpfZGVsZXRlIgogICAgfSwKICAgIGNoZWNrZWRMaXN0OiB7CiAgICAgIHR5cGU6IEFycmF5LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4gW107CiAgICAgIH0KICAgIH0sCiAgICAvLyB0YWJsZVNlYXJjaDogewogICAgLy8gICB0eXBlOiBTdHJpbmcsCiAgICAvLyAgIGRlZmF1bHQ6ICIiCiAgICAvLyB9LAogICAgaXNVc2U6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogdHJ1ZQogICAgfSwKICAgIGlzTXV0aXBsZTogewogICAgICAvL+aYr+WQpuWkmumAiQogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9LAogICAgLy8gaXNSZXN1bHRTaG93OiB7CiAgICAvLyAgIC8vcmVzdWx0Lmxpc3TmmK/lkKblj43mmL4KICAgIC8vICAgdHlwZTogQm9vbGVhbiwKICAgIC8vICAgZGVmYXVsdDogdHJ1ZQogICAgLy8gfSwKICAgIGlzQ2FsbEludGVyZmFjZTogewogICAgICAvL+eUqOadpeaOp+WItuiwg+eUqOaOpeWPo+aLv+WIsOaVsOaNriAvL+S5n+WPr+S7peeQhuino+S4uuW8ueahhuWFs+mXreeKtuaAgQogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfQogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHRhYmxlTG9hZGluZzogZmFsc2UsCiAgICAgIHRyZWVMb2FkaW5nOiBmYWxzZSwKICAgICAgdHJlZTogewogICAgICAgIHBsYWNlaG9sZGVyOiAi5Y+v5pCc57Si5bqX5LuTL+mDqOmXqCIsCiAgICAgICAgc2VhcmNoOiAiIgogICAgICB9LAogICAgICB0YWJsZTogewogICAgICAgIC8v6KGo5qC85pi+56S66YOo5YiG5pCc57SiCiAgICAgICAgcGxhY2Vob2xkZXI6ICLnm7TmjqXovpPlhaXkurrlkZjlp5PlkI3mkJzntKIiLAogICAgICAgIHNlYXJjaDogIiIKICAgICAgfSwKICAgICAgY29sdW1uczogW10sCiAgICAgIHRyZWVOZXdEYXRhOiBbXSwKICAgICAgc2hvd1RyZWU6IHRoaXMub3BlbiwKICAgICAgY29tcG9uZW50dDogW3sKICAgICAgICB0YWI6ICLnrZvpgInnu5PmnpwiLAogICAgICAgIGNvbHVtbnM6IFt7CiAgICAgICAgICBrZXk6ICJOQU1FIiwKICAgICAgICAgIHRpdGxlOiAi55So5oi35ZCNIgogICAgICAgIH0sIHsKICAgICAgICAgIGtleTogIkVOQU1FIiwKICAgICAgICAgIHRpdGxlOiAi55So5oi35aeT5ZCNIgogICAgICAgIH1dLAogICAgICAgIGxpc3Q6IFtdLAogICAgICAgIHRvdGFsOiAwLAogICAgICAgIHBhZ2VTaXplOiAxMCwKICAgICAgICBwYWdlTnVtOiAxLAogICAgICAgIC8v5b2T5YmN6aG156CBCiAgICAgICAgcGFnZU9wdGlvbnM6IFsxMCwgMjAsIDUwLCAxMDBdLAogICAgICAgIGhlaWdodDogMzQwCiAgICAgIH1dLAogICAgICByZXN1bHRSaWdodERhdGE6IHsKICAgICAgICB0b3RhbDogMCwKICAgICAgICBsaXN0OiBbXQogICAgICB9LAogICAgICB0ZW1wbGF0ZU5hbWU6ICIiLAogICAgICBpbmRleDogMCwKICAgICAgcXVlcnlTdHlsZTogewogICAgICAgIGNvbG9yOiAiI2ZkNjQ0MiIKICAgICAgfSwKICAgICAgc2VsZWN0Um93OiBbXSwKICAgICAgLy/ooajmoLzpgInkuK3nmoTmlbDmja4KICAgICAgc2VsZWN0RGF0YXM6IHt9LAogICAgICAvL+WNleihjOmAieS4rQogICAgICBvYmo6IHt9IC8vCgogICAgfTsKICB9LAogIGNvbXB1dGVkOiB7CiAgICB0cmVlTGlzdHM6IGZ1bmN0aW9uIHRyZWVMaXN0cygpIHsKICAgICAgLy8gdGhpcy50cmVlTmV3RGF0YSA9IHRoaXMudHJlZWRhdGE7CiAgICAgIHJldHVybiB0aGlzLnRyZWVOZXdEYXRhOwogICAgfSwKICAgIFRhYlBhbmVEYXRhOiBmdW5jdGlvbiBUYWJQYW5lRGF0YSgpIHsKICAgICAgLy8gbGV0IGRhdGEgPSBPYmplY3QuYXNzaWduKHRoaXMuY29tcG9uZW50LCB0aGlzLmNvbXBvbmVudERhdGEpOwogICAgICAvLyByZXR1cm4gZGF0YTsKICAgICAgaWYgKHRoaXMuaXNNdXRpcGxlKSB7Ly8gdGhpcy5jb21wb25lbnR0WzBdLmNvbHVtbnMudW5zaGlmdCh7CiAgICAgICAgLy8gICB0eXBlOiAic2VsZWN0aW9uIiwKICAgICAgICAvLyAgIGFsaWduOiAiY2VudGVyIiwKICAgICAgICAvLyAgIGZpeGVkOiAibGVmdCIsCiAgICAgICAgLy8gICB3aWR0aDogMzAKICAgICAgICAvLyB9KTsKICAgICAgfQoKICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50dDsKICAgIH0sCiAgICByZXN1bHRNZXNzYWdlOiBmdW5jdGlvbiByZXN1bHRNZXNzYWdlKCkgewogICAgICAvLyBsZXQgZGF0YSA9IE9iamVjdC5hc3NpZ24odGhpcy5yZXN1bHRSaWdodERhdGEsIHRoaXMucmVzdWx0RGF0YSk7CiAgICAgIHJldHVybiB0aGlzLnJlc3VsdFJpZ2h0RGF0YTsKICAgIH0KICB9LAogIHdhdGNoOiB7CiAgICBpc0NhbGxJbnRlcmZhY2U6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihuZXdWYWx1ZSwgb2xkVmFsdWUpIHsKICAgICAgICBpZiAobmV3VmFsdWUpIHsKICAgICAgICAgIC8v5omn6KGM6K+35rGCCiAgICAgICAgICB0aGlzLmNvbXBvbmVudHRbMF0ucGFnZU51bSA9IDE7CiAgICAgICAgICB0aGlzLmdldFRyZWVEYXRhKCk7CgogICAgICAgICAgaWYgKHRoaXMucmVzdWx0RGF0YS5saXN0KSB7CiAgICAgICAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhID0gdGhpcy5kZWVwQ29weSh0aGlzLnJlc3VsdERhdGEpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAodGhpcy5zZWxlY3RSb3cubGVuZ3RoID4gMCkgewogICAgICAgICAgICB0aGlzLnNlbGVjdFJvdyA9IFtdOwogICAgICAgICAgfQoKICAgICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLnNlbGVjdERhdGFzKS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHRoaXMuc2VsZWN0RGF0YXMgPSB7fTsKICAgICAgICAgIH0KCiAgICAgICAgICBpZiAodGhpcy50YWJsZS5zZWFyY2gpIHsKICAgICAgICAgICAgdGhpcy50YWJsZS5zZWFyY2ggPSAiIjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9LAogIG1ldGhvZHM6IHsKICAgIGRlZXBDb3B5OiBmdW5jdGlvbiBkZWVwQ29weShvYmopIHsKICAgICAgLy/lhZHnjrDmt7Hmi7fotJ0KICAgICAgdmFyIHJlc3VsdCA9IEFycmF5LmlzQXJyYXkob2JqKSA/IFtdIDoge307CgogICAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7CiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7CiAgICAgICAgICBpZiAoKDAsIF90eXBlb2YyLmRlZmF1bHQpKG9ialtrZXldKSA9PT0gIm9iamVjdCIgJiYgb2JqW2tleV0gIT09IG51bGwpIHsKICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB0aGlzLmRlZXBDb3B5KG9ialtrZXldKTsgLy/pgJLlvZLlpI3liLYKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gb2JqW2tleV07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CgogICAgICByZXR1cm4gcmVzdWx0OwogICAgfSwKICAgIGdldFNlbGVjdGVkTm9kZXM6IGZ1bmN0aW9uIGdldFNlbGVjdGVkTm9kZXModmFsKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CgogICAgICAvLyBpZiAodGhpcy5pc011dGlwbGUpIHsKICAgICAgaWYgKHZhbC5sZW5ndGggPiAwKSB7CiAgICAgICAgdGhpcy5vYmogPSB7fTsKICAgICAgICB0aGlzLnNhdmVPYmogPSB2YWxbMF07CiAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAgIHZhciB2YWxJRCA9ICIiOwoKICAgICAgICBpZiAodmFsWzBdLklELmluZGV4T2YoIi4iKSAhPT0gLTEpIHsKICAgICAgICAgIHZhbElEID0gdmFsWzBdLklELnNwbGl0KCIuIilbMV07CiAgICAgICAgICB2YWxJRCA9IHBhcnNlSW50KHZhbElEKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFsSUQgPSBwYXJzZUludCh2YWxbMF0uSUQpOwogICAgICAgIH0KCiAgICAgICAgaWYgKHZhbFswXS5DUF9DX09SR1VQX0lEID09PSBudWxsKSB7CiAgICAgICAgICAvL+agueiKgueCuQogICAgICAgICAgdGhpcy5maW5kVXNlcih7fSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8v5b2TaXRlbeeahFRZUEXkuLrlupfku5Pml7YKICAgICAgICAgIGlmICh2YWxbMF0uVFlQRSA9PT0gIkNQX0NfU1RPUkVfSUQiKSB7CiAgICAgICAgICAgIHRoaXMub2JqLkNQX0NfU1RPUkVfSUQgPSAiaW4oIiArIHZhbElEICsgIikiOwogICAgICAgICAgICBzZWxmLmZpbmRVc2VyKHNlbGYub2JqKTsKICAgICAgICAgIH0gLy/lvZNpdGVt55qEVFlQReS4uuS+m+W6lOWVhuaXtgogICAgICAgICAgLy8gIOW9k2l0ZW3nmoRUWVBF5Li657uE57uH5pe2CgoKICAgICAgICAgIGlmICh2YWxbMF0uVFlQRSA9PT0gIkNQX0NfSFJPUkdfSUQiKSB7CiAgICAgICAgICAgICgwLCBfZGVmaW5pdGlvbi5hZGRHZW5tdXRpcG9yKSh7CiAgICAgICAgICAgICAgQ1BfQ19PUkdVUF9JRDogdmFsSUQKICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLnJlc3VsdENvZGUgPT09IDApIHsKICAgICAgICAgICAgICAgIHZhciBIUk9SRyA9ICJpbiAoIjsgLy/lgqjlrZjplK7lkI3kuLpDUF9DX0hST1JHX0lE5a+56LGh55qESUQKCiAgICAgICAgICAgICAgICB2YXIgU1RPUkUgPSAiaW4gKCI7IC8v5YKo5a2Y6ZSu5ZCN5Li6Q1BfQ19TVE9SRV9JROWvueixoeeahElECgogICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmRhdGEuQ1BfQ19IUk9SRyAmJiByZXMuZGF0YS5kYXRhLkNQX0NfSFJPUkcubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgICByZXMuZGF0YS5kYXRhLkNQX0NfSFJPUkcuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICAgIEhST1JHICs9IGl0ZW0uSUQgKyAiLCI7IC8vIGluIDEsMiwzLDUsNiw4Nyw4LDYKICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuZGF0YS5DUF9DX0hST1JHLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICBzZWxmLm9iai5DUF9DX0hST1JHX0lEID0gSFJPUkcuc3Vic3RyaW5nKDAsIEhST1JHLmxlbmd0aCAtIDEpICsgIikiOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmRhdGEuQ1BfQ19TVE9SRSAmJiByZXMuZGF0YS5kYXRhLkNQX0NfU1RPUkUubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgICByZXMuZGF0YS5kYXRhLkNQX0NfU1RPUkUuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICAgIFNUT1JFICs9IGl0ZW0uSUQgKyAiLCI7CiAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmRhdGEuQ1BfQ19TVE9SRS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgc2VsZi5vYmouQ1BfQ19TVE9SRV9JRCA9IFNUT1JFLnN1YnN0cmluZygwLCBTVE9SRS5sZW5ndGggLSAxKSArICIpIjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHNlbGYuZmluZFVzZXIoc2VsZi5vYmopOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBfdGhpcy4kTW9kYWwuZmNFcnJvcih7CiAgICAgICAgICAgICAgICAgIHRpdGxlOiAi6ZSZ6K+v5o+Q56S6IiwKICAgICAgICAgICAgICAgICAgY29udGVudDogcmVzLmRhdGEucmVzdWx0TXNnCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSAvLyBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgLy8gICBzZWxmLmZpbmRVc2VyKHNlbGYub2JqKTsKICAgICAgICAgIC8vIH0pOwoKICAgICAgICB9CiAgICAgIH0gLy8gfQoKCiAgICAgIHRoaXMuJGVtaXQoIm9uLXNlbGVjdC10cmVlIiwgdmFsLCB0aGlzKTsKICAgIH0sCiAgICBnZXRDaGVja2VkTm9kZXM6IGZ1bmN0aW9uIGdldENoZWNrZWROb2RlcyhvYmopIHsKICAgICAgdGhpcy4kZW1pdCgib24tY2hhbmdlLXRyZWUiLCBvYmosIHRoaXMpOwogICAgfSwKICAgIHRhYkNsaWNrOiBmdW5jdGlvbiB0YWJDbGljayhpbmRleCkgewogICAgICB0aGlzLmluZGV4ID0gaW5kZXg7CiAgICAgIHRoaXMuJGVtaXQoIm9uLWNsaWNrLXRhYiIsIGluZGV4LCB0aGlzKTsKICAgIH0sCiAgICBwYWdlQ2hhbmdlOiBmdW5jdGlvbiBwYWdlQ2hhbmdlKGluZGV4KSB7CiAgICAgIHRoaXMuJGVtaXQoIm9uLWNoYW5nZS1wYWdlIiwgaW5kZXgsIHRoaXMpOwogICAgICB0aGlzLmNvbXBvbmVudHRbMF0ucGFnZU51bSA9IGluZGV4OwogICAgICB2YXIgcGFyYW0gPSBPYmplY3QuYXNzaWduKHRoaXMub2JqLCB7CiAgICAgICAgcGFnZTogaW5kZXgsCiAgICAgICAgcGFnZVNpemU6IDEwCiAgICAgIH0pOwoKICAgICAgaWYgKHRoaXMudGFibGUuc2VhcmNoICE9PSAiIikgewogICAgICAgIHBhcmFtLkVOQU1FID0gdGhpcy50YWJsZS5zZWFyY2g7CiAgICAgIH0KCiAgICAgIHRoaXMuZmluZFVzZXIocGFyYW0pOwogICAgfSwKICAgIHBhZ2VDaGFuZ2VTaXplOiBmdW5jdGlvbiBwYWdlQ2hhbmdlU2l6ZShpbmRleCkgewogICAgICB0aGlzLiRlbWl0KCJvbi1jaGFuZ2UtcGFnZVNpemUiLCBpbmRleCwgdGhpcyk7CiAgICAgIHRoaXMuY29tcG9uZW50dFswXS5wYWdlU2l6ZSA9IGluZGV4OwogICAgICB2YXIgcGFyYW0gPSBPYmplY3QuYXNzaWduKHRoaXMub2JqLCB7CiAgICAgICAgcGFnZTogMSwKICAgICAgICBwYWdlU2l6ZTogaW5kZXgKICAgICAgfSk7CgogICAgICBpZiAodGhpcy50YWJsZS5zZWFyY2ggIT09ICIiKSB7CiAgICAgICAgcGFyYW0uRU5BTUUgPSB0aGlzLnRhYmxlLnNlYXJjaDsKICAgICAgfQoKICAgICAgdGhpcy5maW5kVXNlcihwYXJhbSk7CiAgICB9LAogICAgcm93ZGJDbGljazogZnVuY3Rpb24gcm93ZGJDbGljayhyb3csIGluZGV4KSB7CiAgICAgIHZhciBzZWxlY3RPYmogPSBPYmplY3QuYXNzaWduKHt9LCByb3cpOwoKICAgICAgaWYgKCF0aGlzLmlzTXV0aXBsZSkgewogICAgICAgIHNlbGVjdE9iai5zdHJpbmcgPSBzZWxlY3RPYmouRU5BTUU7CgogICAgICAgIGlmICh0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0KSB7CiAgICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0ID0gW107CiAgICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0LnB1c2goc2VsZWN0T2JqKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kc2V0KHRoaXMucmVzdWx0UmlnaHREYXRhLCAibGlzdCIsIFtzZWxlY3RPYmpdKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIF9zZWxlY3RPYmogPSBPYmplY3QuYXNzaWduKHsKICAgICAgICAgIGFwcHJvdmVfdHlwZTogNAogICAgICAgIH0sIHJvdyk7CgogICAgICAgIF9zZWxlY3RPYmouc3RyaW5nID0gX3NlbGVjdE9iai5FTkFNRTsKCiAgICAgICAgaWYgKHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QgJiYgdGhpcy5yZXN1bHRSaWdodERhdGEubGlzdC5sZW5ndGggPiAwKSB7CiAgICAgICAgICB2YXIgZmxhZ0luZGV4ID0gdGhpcy5yZXN1bHRSaWdodERhdGEubGlzdC5maW5kSW5kZXgoZnVuY3Rpb24gKGlubmVyKSB7CiAgICAgICAgICAgIHJldHVybiBfc2VsZWN0T2JqLklEID09PSBpbm5lci5JRCB8fCBfc2VsZWN0T2JqLklEID09PSBOdW1iZXIoaW5uZXIuYXBwcm92ZV92YWx1ZSk7CiAgICAgICAgICB9KTsKCiAgICAgICAgICBpZiAoZmxhZ0luZGV4ID09PSAtMSkgewogICAgICAgICAgICAvL+ayoeacieaJvuWIsOebuOWQjOeahOWwseWKoOWFpQogICAgICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0LnB1c2goX3NlbGVjdE9iaik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICBtZXNzYWdlOiBfc2VsZWN0T2JqLkVOQU1FICsgIuW3sue7j+mAieaLqei/h+S6hizor7fkuI3opoHph43lpI3pgInmi6nvvIEiLAogICAgICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kc2V0KHRoaXMucmVzdWx0UmlnaHREYXRhLCAibGlzdCIsIFtfc2VsZWN0T2JqXSk7CiAgICAgICAgfQogICAgICB9CgogICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS50b3RhbCA/IHRoaXMucmVzdWx0UmlnaHREYXRhLnRvdGFsID0gdGhpcy5yZXN1bHRSaWdodERhdGEubGlzdC5sZW5ndGggOiB0aGlzLiRzZXQodGhpcy5yZXN1bHRSaWdodERhdGEsICJ0b3RhbCIsIHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QubGVuZ3RoKTsKICAgICAgdGhpcy4kZW1pdCgiZ2V0UmVzdWx0IiwgdGhpcy5yZXN1bHRSaWdodERhdGEpOwogICAgICB0aGlzLiRyZWZzLlRhYmxlWzBdLmNsZWFyQ3VycmVudFJvdygpOwogICAgICB0aGlzLiRlbWl0KCJvbi1yb3ctZGJsY2xpY2siLCByb3csIGluZGV4LCB0aGlzKTsKICAgIH0sCiAgICByb3dDbGljazogZnVuY3Rpb24gcm93Q2xpY2socm93LCBpbmRleCkgewogICAgICBpZiAoIXRoaXMuaXNNdXRpcGxlKSB7CiAgICAgICAgdGhpcy5zZWxlY3REYXRhcyA9IE9iamVjdC5hc3NpZ24odGhpcy5zZWxlY3REYXRhcywgcm93KTsKICAgICAgfQoKICAgICAgdGhpcy4kZW1pdCgib24tcm93LWNsaWNrIiwgcm93LCBpbmRleCwgdGhpcyk7CiAgICB9LAogICAgT25zZWxlY3Q6IGZ1bmN0aW9uIE9uc2VsZWN0KHNlbGVjdGlvbiwgcm93KSB7CiAgICAgIGlmICh0aGlzLmlzTXV0aXBsZSkgewogICAgICAgIHRoaXMuY29tcG9uZW50dFswXS5saXN0Lm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgaWYgKHJvdy5JRCA9PT0gaXRlbS5JRCkgewogICAgICAgICAgICBpdGVtLl9jaGVja2VkID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICB0aGlzLnNlbGVjdFJvdyA9IFtdOwogICAgICAgIHRoaXMuc2VsZWN0Um93ID0gc2VsZWN0aW9uOwogICAgICB9CgogICAgICB0aGlzLiRlbWl0KCJvbi1zZWxlY3QiLCBzZWxlY3Rpb24sIHJvdyk7CiAgICB9LAogICAgb25TZWxlY3RDYW5jZWw6IGZ1bmN0aW9uIG9uU2VsZWN0Q2FuY2VsKHNlbGVjdGlvbiwgcm93KSB7CiAgICAgIHRoaXMuY29tcG9uZW50dFswXS5saXN0Lm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIGlmIChyb3cuSUQgPT09IGl0ZW0uSUQpIHsKICAgICAgICAgIGl0ZW0uX2NoZWNrZWQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICB0aGlzLnNlbGVjdFJvdyA9IFtdOwogICAgICB0aGlzLnNlbGVjdFJvdyA9IHNlbGVjdGlvbjsKICAgICAgdGhpcy4kZW1pdCgib24tc2VsZWN0LWNhbmNlbCIsIHNlbGVjdGlvbiwgcm93KTsKICAgIH0sCiAgICBvblNlbGVjdEFsbDogZnVuY3Rpb24gb25TZWxlY3RBbGwoc2VsZWN0aW9uKSB7CiAgICAgIHRoaXMuc2VsZWN0Um93ID0gW107CiAgICAgIHRoaXMuY29tcG9uZW50dFswXS5saXN0Lm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIGl0ZW0uX2NoZWNrZWQgPSB0cnVlOwogICAgICB9KTsKICAgICAgdGhpcy5zZWxlY3RSb3cgPSBzZWxlY3Rpb247CiAgICAgIHRoaXMuJGVtaXQoIm9uLXNlbGVjdC1hbGwiLCBzZWxlY3Rpb24pOwogICAgfSwKICAgIG9uU2VsZWN0QWxsQ2FuY2VsOiBmdW5jdGlvbiBvblNlbGVjdEFsbENhbmNlbChzZWxlY3Rpb24pIHsKICAgICAgdGhpcy5jb21wb25lbnR0WzBdLmxpc3QubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgaXRlbS5fY2hlY2tlZCA9IGZhbHNlOwogICAgICB9KTsKICAgICAgdGhpcy5zZWxlY3RSb3cgPSBbXTsKICAgICAgdGhpcy4kZW1pdCgib24tc2VsZWN0LWFsbC1jYW5jZWwiLCBzZWxlY3Rpb24pOwogICAgfSwKICAgIG9uU2VsZWN0Q2hhbmdlOiBmdW5jdGlvbiBvblNlbGVjdENoYW5nZShzZWxlY3Rpb24pIHsKICAgICAgdGhpcy4kZW1pdCgib24tc2VsZWN0LWNoYW5nZSIsIHNlbGVjdGlvbik7CiAgICB9LAogICAgaW5wdXRjaGFuZ2U6IGZ1bmN0aW9uIGlucHV0Y2hhbmdlKGV2ZW50KSB7CiAgICAgIC8vIGlmKCF0aGlzLmlzVXNlJiYhdGhpcy5pc011dGlwbGUpewogICAgICB0aGlzLnRhYmxlLnNlYXJjaCA9IGV2ZW50LnRhcmdldC52YWx1ZTsgLy8gfQoKICAgICAgdGhpcy4kZW1pdCgib24tY2hhbmdlIiwgZXZlbnQsIHRoaXMpOwogICAgfSwKICAgIGlucHV0a2V5ZG93bjogZnVuY3Rpb24gaW5wdXRrZXlkb3duKGV2ZW50KSB7CiAgICAgIHRoaXMuJGVtaXQoIm9uLWtleWRvd24iLCBldmVudCwgdGhpcyk7CiAgICB9LAogICAgaW5wdXRzZWFyY2g6IGZ1bmN0aW9uIGlucHV0c2VhcmNoKGV2ZW50KSB7CiAgICAgIHZhciBwYXJhbSA9IE9iamVjdC5hc3NpZ24odGhpcy5vYmosIHsKICAgICAgICBwYWdlOiAxLAogICAgICAgIHBhZ2VTaXplOiAxMCwKICAgICAgICBFTkFNRTogZXZlbnQKICAgICAgfSk7CiAgICAgIHRoaXMuZmluZFVzZXIocGFyYW0pOwogICAgICB0aGlzLiRlbWl0KCJvbi1zZWFyY2giLCBldmVudCwgdGhpcyk7CiAgICB9LAogICAgb3BlcmF0aW9uVHdvOiBmdW5jdGlvbiBvcGVyYXRpb25Ud28oKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwoKICAgICAgdmFyIHNlbGVjdE5vZGUgPSB0aGlzLiRyZWZzLlRyZWUuZ2V0Q2hlY2tlZE5vZGVzKCk7CiAgICAgIHNlbGVjdE5vZGUgPSBzZWxlY3ROb2RlLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLnRpdGxlICE9PSAn5YWo6YOoJzsKICAgICAgfSk7CgogICAgICBpZiAodGhpcy5pc011dGlwbGUpIHsKICAgICAgICBpZiAoc2VsZWN0Tm9kZS5sZW5ndGggPiAwKSB7CiAgICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS50b3RhbCA/IHRoaXMuJHNldCh0aGlzLnJlc3VsdFJpZ2h0RGF0YSwgInRvdGFsIiwgdGhpcy5yZXN1bHREYXRhLnRvdGFsICsgc2VsZWN0Tm9kZS5sZW5ndGgpIDogdGhpcy4kc2V0KHRoaXMucmVzdWx0UmlnaHREYXRhLCAidG90YWwiLCBzZWxlY3ROb2RlLmxlbmd0aCk7CiAgICAgICAgICBzZWxlY3ROb2RlLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICB2YXIgc2VsZWN0T2JqID0gT2JqZWN0LmFzc2lnbih7CiAgICAgICAgICAgICAgYXBwcm92ZV90eXBlOiAyCiAgICAgICAgICAgIH0sIGl0ZW0pOwogICAgICAgICAgICBzZWxlY3RPYmouc3RyaW5nID0gaXRlbS5FTkFNRTsKCiAgICAgICAgICAgIGlmIChfdGhpczIucmVzdWx0UmlnaHREYXRhLmxpc3QgJiYgX3RoaXMyLnJlc3VsdFJpZ2h0RGF0YS5saXN0Lmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICB2YXIgZmxhZ0luZGV4ID0gX3RoaXMyLnJlc3VsdFJpZ2h0RGF0YS5saXN0LmZpbmRJbmRleChmdW5jdGlvbiAoaW5uZXIpIHsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLklEID09PSBpbm5lci5JRCB8fCBpdGVtLklEID09PSBOdW1iZXIoaW5uZXIuYXBwcm92ZV92YWx1ZSk7CiAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgIGlmIChmbGFnSW5kZXggPT09IC0xKSB7CiAgICAgICAgICAgICAgICAvL+ayoeacieaJvuWIsOebuOWQjOeahOWwseWKoOWFpQogICAgICAgICAgICAgICAgX3RoaXMyLnJlc3VsdFJpZ2h0RGF0YS5saXN0LnB1c2goc2VsZWN0T2JqKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgX3RoaXMyLiRtZXNzYWdlKHsKICAgICAgICAgICAgICAgICAgbWVzc2FnZTogaXRlbS5FTkFNRSArICLlt7Lnu4/pgInmi6nov4fkuoYs6K+35LiN6KaB6YeN5aSN6YCJ5oup77yBIiwKICAgICAgICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgX3RoaXMyLiRzZXQoX3RoaXMyLnJlc3VsdFJpZ2h0RGF0YSwgImxpc3QiLCBbc2VsZWN0T2JqXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICBtZXNzYWdlOiAi6K+36YCJ5oup6YOo6Zeo77yBIiwKICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgICAgICB9KTsgLy8gdGhpcy4kTWVzc2FnZS53YXJuaW5nKCLor7fpgInmi6npg6jpl6giKTsKICAgICAgICB9CgogICAgICAgIHRoaXMuZ2V0VHJlZURhdGEoKTsKICAgICAgfQoKICAgICAgaWYgKHRoaXMuc2VsZWN0Um93Lmxlbmd0aCA+IDApIHsKICAgICAgICAvL+mAieS4reeKtuaAgeeahOa4hemZpAogICAgICAgIHRoaXMuc2VsZWN0Um93ID0gW107CiAgICAgIH0KCiAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLnNlbGVjdERhdGFzKS5sZW5ndGggPiAwKSB7CiAgICAgICAgdGhpcy5zZWxlY3REYXRhcyA9IHt9OwogICAgICB9CgogICAgICB0aGlzLiRlbWl0KCJnZXRSZXN1bHQiLCB0aGlzLnJlc3VsdFJpZ2h0RGF0YSk7CiAgICAgIHRoaXMuJGVtaXQoIm9uLXRyYW5zZmVyLXR3byIsIHNlbGVjdE5vZGUsIHRoaXMpOwogICAgfSwKICAgIG9wZXJhdGlvbjogZnVuY3Rpb24gb3BlcmF0aW9uKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKCiAgICAgIGlmICghdGhpcy5pc011dGlwbGUpIHsKICAgICAgICAvL+WNlemAiemAu+i+kQogICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLnNlbGVjdERhdGFzKS5sZW5ndGggPT09IDApIHsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5Lq65ZGYJywKICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgICAgICB9KTsgLy8gdGhpcy4kTWVzc2FnZS53YXJuaW5nKCLor7fpgInmi6nkurrlkZgiKTsKCiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS50b3RhbCA/IHRoaXMucmVzdWx0UmlnaHREYXRhLnRvdGFsID0gMSA6IHRoaXMuJHNldCh0aGlzLnJlc3VsdFJpZ2h0RGF0YSwgInRvdGFsIiwgMSk7CiAgICAgICAgdmFyIHNlbGVjdE9iaiA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc2VsZWN0RGF0YXMpOwogICAgICAgIHNlbGVjdE9iai5zdHJpbmcgPSBzZWxlY3RPYmouRU5BTUU7CgogICAgICAgIGlmICh0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0KSB7CiAgICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0ID0gW107CiAgICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS5saXN0LnB1c2goc2VsZWN0T2JqKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kc2V0KHRoaXMucmVzdWx0UmlnaHREYXRhLCAibGlzdCIsIFtzZWxlY3RPYmpdKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy/lpJrpgInpgLvovpEKICAgICAgICBpZiAodGhpcy5zZWxlY3RSb3cubGVuZ3RoID4gMCkgewogICAgICAgICAgdGhpcy5zZWxlY3RSb3cubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgIHZhciBzZWxlY3RPYmogPSBPYmplY3QuYXNzaWduKHsKICAgICAgICAgICAgICBhcHByb3ZlX3R5cGU6IDQKICAgICAgICAgICAgfSwgaXRlbSk7CiAgICAgICAgICAgIHNlbGVjdE9iai5zdHJpbmcgPSBpdGVtLkVOQU1FOwoKICAgICAgICAgICAgaWYgKF90aGlzMy5yZXN1bHRSaWdodERhdGEubGlzdCAmJiBfdGhpczMucmVzdWx0UmlnaHREYXRhLmxpc3QubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgIHZhciBmbGFnSW5kZXggPSBfdGhpczMucmVzdWx0UmlnaHREYXRhLmxpc3QuZmluZEluZGV4KGZ1bmN0aW9uIChpbm5lcikgewogICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uSUQgPT09IGlubmVyLklEIHx8IGl0ZW0uSUQgPT09IE51bWJlcihpbm5lci5hcHByb3ZlX3ZhbHVlKTsKICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgaWYgKGZsYWdJbmRleCA9PT0gLTEpIHsKICAgICAgICAgICAgICAgIC8v5rKh5pyJ5om+5Yiw55u45ZCM55qE5bCx5Yqg5YWlCiAgICAgICAgICAgICAgICBfdGhpczMucmVzdWx0UmlnaHREYXRhLmxpc3QucHVzaChzZWxlY3RPYmopOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBfdGhpczMuJG1lc3NhZ2UoewogICAgICAgICAgICAgICAgICBtZXNzYWdlOiBpdGVtLkVOQU1FICsgIuW3sue7j+mAieaLqei/h+S6hizor7fkuI3opoHph43lpI3pgInmi6nvvIEiLAogICAgICAgICAgICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgICAgICAgICAgIH0pOyAvLyB0aGlzLiRNZXNzYWdlLndhcm5pbmcoCiAgICAgICAgICAgICAgICAvLyAgIGl0ZW0uRU5BTUUgKyAi5bey57uP6YCJ5oup6L+H5LqGLOivt+S4jeimgemHjeWkjemAieaLqe+8gSIKICAgICAgICAgICAgICAgIC8vICk7CgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBfdGhpczMuJHNldChfdGhpczMucmVzdWx0UmlnaHREYXRhLCAibGlzdCIsIFtzZWxlY3RPYmpdKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS50b3RhbCA/IHRoaXMucmVzdWx0UmlnaHREYXRhLnRvdGFsID0gdGhpcy5yZXN1bHRSaWdodERhdGEubGlzdC5sZW5ndGggOiB0aGlzLiRzZXQodGhpcy5yZXN1bHRSaWdodERhdGEsICJ0b3RhbCIsIHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QubGVuZ3RoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nkurrlkZgnLAogICAgICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgICAgIH0pOyAvLyB0aGlzLiRNZXNzYWdlLndhcm5pbmcoIuivt+mAieaLqeS6uuWRmCIpOwogICAgICAgIH0KICAgICAgfSAvL+WIt+aWsOihqOagvOaVsOaNrgoKCiAgICAgIHRoaXMuY29tcG9uZW50dFswXS5saXN0Lm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIGl0ZW0uX2NoZWNrZWQgPSBmYWxzZTsKICAgICAgfSk7CiAgICAgIHRoaXMuY29tcG9uZW50dFswXS5saXN0ID0gdGhpcy5jb21wb25lbnR0WzBdLmxpc3QuY29uY2F0KFtdKTsKCiAgICAgIGlmICh0aGlzLnNlbGVjdFJvdy5sZW5ndGggPiAwKSB7CiAgICAgICAgLy/pgInkuK3nirbmgIHnmoTmuIXpmaQKICAgICAgICB0aGlzLnNlbGVjdFJvdyA9IFtdOwogICAgICB9CgogICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5zZWxlY3REYXRhcykubGVuZ3RoID4gMCkgewogICAgICAgIHRoaXMuc2VsZWN0RGF0YXMgPSB7fTsKICAgICAgfQoKICAgICAgdGhpcy4kZW1pdCgiZ2V0UmVzdWx0IiwgdGhpcy5yZXN1bHRSaWdodERhdGEpOwogICAgICB0aGlzLiRlbWl0KCJvbi10cmFuc2ZlciIsIHRoaXMpOwogICAgfSwKICAgIGRlbGV0ZUxpOiBmdW5jdGlvbiBkZWxldGVMaShpbmRleCwgdGVtKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwoKICAgICAgdmFyIHNlbGVjdE5vZGUgPSB0aGlzLiRyZWZzLlRyZWUuZ2V0Q2hlY2tlZE5vZGVzKCk7CgogICAgICBpZiAoc2VsZWN0Tm9kZSAmJiBzZWxlY3ROb2RlLmxlbmd0aCA+IDApIHsKICAgICAgICBzZWxlY3ROb2RlLm1hcChmdW5jdGlvbiAoaW5JdGVtKSB7CiAgICAgICAgICBpZiAoaW5JdGVtLklEID09PSB0ZW0uSUQpIHsKICAgICAgICAgICAgX3RoaXM0LiRyZWZzLlRyZWUuaGFuZGxlQ2hlY2soewogICAgICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLAogICAgICAgICAgICAgIG5vZGVLZXk6IGluSXRlbS5ub2RlS2V5CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9CgogICAgICB2YXIgc2VsZWN0cm93ID0gdGhpcy5UYWJQYW5lRGF0YVswXS5saXN0OyAvL+ihqOagvOaVsOaNrgoKICAgICAgc2VsZWN0cm93Lm1hcChmdW5jdGlvbiAocm93LCBJbmRleCkgewogICAgICAgIGlmIChyb3cuSUQgPT09IHRlbS5JRCkgewogICAgICAgICAgcm93Ll9jaGVja2VkID0gZmFsc2U7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgdGhpcy5yZXN1bHRSaWdodERhdGEubGlzdC5zcGxpY2UoaW5kZXgsIDEpOwogICAgICB0aGlzLnJlc3VsdFJpZ2h0RGF0YS50b3RhbCA9IHRoaXMucmVzdWx0UmlnaHREYXRhLmxpc3QubGVuZ3RoOwogICAgICB0aGlzLiRlbWl0KCJnZXRSZXN1bHQiLCB0aGlzLnJlc3VsdFJpZ2h0RGF0YSk7CiAgICAgIHRoaXMuJGVtaXQoIm9uLWRlbGVjdGxpIiwgaW5kZXgsIHRlbSwgdGhpcyk7CiAgICB9LAogICAgdHJlZU9wZW46IGZ1bmN0aW9uIHRyZWVPcGVuKGNoZWNrZWQpIHsKICAgICAgdGhpcy5zaG93VHJlZSA9ICFjaGVja2VkOwogICAgICB0aGlzLnRyZWVOZXdEYXRhLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICBpdGVtLmV4cGFuZCA9ICFpdGVtLmV4cGFuZDsKICAgICAgfSk7CiAgICB9LAogICAgZGVsZWNGdW46IGZ1bmN0aW9uIGRlbGVjRnVuKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKCiAgICAgIHZhciBzZWxlY3ROb2RlID0gdGhpcy4kcmVmcy5UcmVlLmdldENoZWNrZWROb2RlcygpOwoKICAgICAgaWYgKHNlbGVjdE5vZGUgJiYgc2VsZWN0Tm9kZS5sZW5ndGggPiAwKSB7CiAgICAgICAgc2VsZWN0Tm9kZS5tYXAoZnVuY3Rpb24gKGluSXRlbSkgewogICAgICAgICAgX3RoaXM1LiRyZWZzLlRyZWUuaGFuZGxlQ2hlY2soewogICAgICAgICAgICBjaGVja2VkOiBmYWxzZSwKICAgICAgICAgICAgbm9kZUtleTogaW5JdGVtLm5vZGVLZXkKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9CgogICAgICB2YXIgc2VsZWN0cm93ID0gdGhpcy5UYWJQYW5lRGF0YVswXS5saXN0OyAvL+ihqOagvOaVsOaNrgoKICAgICAgaWYgKHNlbGVjdHJvdyAmJiBzZWxlY3Ryb3cubGVuZ3RoID4gMCkgewogICAgICAgIHNlbGVjdHJvdy5tYXAoZnVuY3Rpb24gKHJvdywgSW5kZXgpIHsKICAgICAgICAgIHJvdy5fY2hlY2tlZCA9IGZhbHNlOwogICAgICAgIH0pOwogICAgICB9CgogICAgICB0aGlzLiRlbWl0KCJvbi1kZWxlQnRuIiwgdGhpcyk7CiAgICAgIHRoaXMucmVzdWx0UmlnaHREYXRhLnRvdGFsID0gMDsKICAgICAgdGhpcy5yZXN1bHRSaWdodERhdGEubGlzdCA9IFtdOwogICAgICB0aGlzLmNvbXBvbmVudHRbMF0ubGlzdC5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICBpdGVtLl9jaGVja2VkID0gZmFsc2U7CiAgICAgIH0pOwogICAgICB0aGlzLmNvbXBvbmVudHRbMF0ubGlzdCA9IHRoaXMuY29tcG9uZW50dFswXS5saXN0LmNvbmNhdChbXSk7CiAgICAgIHRoaXMuJGVtaXQoImdldFJlc3VsdCIsIHRoaXMucmVzdWx0UmlnaHREYXRhKTsKICAgIH0sCiAgICAvL+afpeaJvueUqOaIt+S/oeaBrwogICAgZmluZFVzZXI6IGZ1bmN0aW9uIGZpbmRVc2VyKHBhcmFtKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwoKICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSB0cnVlOwogICAgICAoMCwgX2RlZmluaXRpb24uYWRkR2VubXV0aXBvcnVkZXIpKHBhcmFtKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczYudGFibGVMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgdmFyIGRhdGEgPSByZXM7CgogICAgICAgIGlmIChyZXMuY29kZSA9PT0gMCkgewogICAgICAgICAgaWYgKGRhdGEuZGF0YSkgewogICAgICAgICAgICBfdGhpczYudHJhbnNmZXJUYm9keShkYXRhLmRhdGEpOwogICAgICAgICAgfQoKICAgICAgICAgIGlmIChkYXRhLmRhdGFzKSB7CiAgICAgICAgICAgIF90aGlzNi50cmFuc2ZlclRib2R5KGRhdGEuZGF0YXMpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLy/ooajmoLzkvZPmlbDmja7ovazljJYKICAgIHRyYW5zZmVyVGJvZHk6IGZ1bmN0aW9uIHRyYW5zZmVyVGJvZHkoZGF0YSkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKCiAgICAgIHRoaXMuY29tcG9uZW50dFswXS50b3RhbCA9IGRhdGEudG90YWxSb3dDb3VudDsKICAgICAgdGhpcy5jb21wb25lbnR0WzBdLnBhZ2VPcHRpb25zID0gZGF0YS5zZWxlY3RyYW5nZTsKICAgICAgdGhpcy5jb21wb25lbnR0WzBdLmxpc3QgPSBbXTsKICAgICAgZGF0YS5yb3cubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgdmFyIHRlbSA9IHt9OwogICAgICAgIHZhciB0ZW12YWwgPSB7fTsKICAgICAgICBPYmplY3Qua2V5cyhpdGVtKS5tYXAoZnVuY3Rpb24gKGlubmVyKSB7CiAgICAgICAgICB0ZW1baW5uZXJdID0gaXRlbVtpbm5lcl0udmFsOwogICAgICAgIH0pOwogICAgICAgIHRlbXZhbCA9IE9iamVjdC5hc3NpZ24oe30sIHRlbSk7CgogICAgICAgIF90aGlzNy5jb21wb25lbnR0WzBdLmxpc3QucHVzaCh0ZW0pOwogICAgICB9KTsKICAgIH0sCiAgICAvL+iOt+WPluagkeaVsOaNrgogICAgZ2V0VHJlZURhdGE6IGZ1bmN0aW9uIGdldFRyZWVEYXRhKCkgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKCiAgICAgIHRoaXMudHJlZV9sb2FkaW5nID0gdHJ1ZTsKICAgICAgKDAsIF9kZWZpbml0aW9uLmFkZEdlbm11dGlwb3J0cmVlKSgpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzOC50cmVlX2xvYWRpbmcgPSBmYWxzZTsKCiAgICAgICAgaWYgKHJlcy5yZXN1bHRDb2RlID09PSAwKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygzNDU2NzgpOwogICAgICAgICAgX3RoaXM4LnRyZWVOZXdEYXRhID0gW107CiAgICAgICAgICB2YXIgbmV3QXJyID0gW107CiAgICAgICAgICB2YXIgcm9vdCA9IHt9OwoKICAgICAgICAgIGlmIChyZXMuZGF0YS5yZWNvcmRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgY29uc29sZS5sb2coMzQ1Njc4OCk7CiAgICAgICAgICAgIHJlcy5kYXRhLnJlY29yZHMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgIHZhciB0ZW0gPSBPYmplY3QuYXNzaWduKGl0ZW0pOwogICAgICAgICAgICAgIG5ld0Fyci5wdXNoKHRlbSk7CgogICAgICAgICAgICAgIGlmIChpdGVtWyJDUF9DX09SR1VQX0lEIl0gPT09IG51bGwgfHwgaXRlbVsiQ1BfQ19PUkdVUF9JRCJdID09PSAiIikgewogICAgICAgICAgICAgICAgcm9vdCA9IE9iamVjdC5hc3NpZ24oe30sIGl0ZW0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIF90aGlzOC50cmVlTmV3RGF0YSA9IF90aGlzOC5hcnJheVRyYW5zVHJlZShuZXdBcnIsICJDUF9DX09SR1VQX0lEIik7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKF90aGlzOC50cmVlTmV3RGF0YSk7CiAgICAgICAgICB9CgogICAgICAgICAgX3RoaXM4LmZpbmRVc2VyKHt9KTsgLy/mmL7npLrmiYDmnInnmoTnlKjmiLcKCiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvL+aUuemAoOagkeaVsOaNrueahOe7k+aehAogICAgYXJyYXlUcmFuc1RyZWU6IGZ1bmN0aW9uIGFycmF5VHJhbnNUcmVlKGxpc3QsIGtleSkgewogICAgICB2YXIgcGFyZW50ID0gW107CiAgICAgIHZhciBjaGlsZHJlbiA9IFtdOwogICAgICBsaXN0Lm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIGl0ZW0uZXhwYW5kID0gZmFsc2U7CiAgICAgICAgaXRlbS50aXRsZSA9IGl0ZW0uRU5BTUU7CgogICAgICAgIGlmICghaXRlbVtrZXldIHx8IGl0ZW1ba2V5XS5pbmRleE9mKCcuJykgIT09IC0xICYmICFpdGVtW2tleV0uc3BsaXQoIi4iKVsxXSkgewogICAgICAgICAgLy/moLnoioLngrkKICAgICAgICAgIHBhcmVudC5wdXNoKGl0ZW0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvL+acieeItuiKgueCueeahAogICAgICAgICAgY2hpbGRyZW4ucHVzaChpdGVtKTsKICAgICAgICB9CiAgICAgIH0pOwoKICAgICAgaWYgKHBhcmVudC5sZW5ndGggPCAxKSB7CiAgICAgICAgLy/msqHmnInmoLnoioLngrkKICAgICAgICB2YXIgbmV3UGFyZW50ID0gdGhpcy5maW5kVHJlZVJvb3RGaXJzdENoaWxkKGxpc3QsIGtleSk7IC8v5ou/5Yiw5LiA57qn6IqC54K5CgogICAgICAgIHZhciByb290QXJyID0gbmV3UGFyZW50Lm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgcmV0dXJuIGl0ZW1ba2V5XTsKICAgICAgICB9KTsKICAgICAgICB2YXIgcm9vdFRlbSA9IEFycmF5LmZyb20obmV3IFNldCgoMCwgX3RvQ29uc3VtYWJsZUFycmF5Mi5kZWZhdWx0KShyb290QXJyKSkpOwoKICAgICAgICBpZiAocm9vdFRlbS5sZW5ndGggPT09IDEpIHsKICAgICAgICAgIHBhcmVudCA9IFt7CiAgICAgICAgICAgIENQX0NfT1JHVVBfSUQ6IG51bGwsCiAgICAgICAgICAgIEVDT0RFOiAiMDAwMDAiLAogICAgICAgICAgICBFTkFNRTogIuWFqOmDqCIsCiAgICAgICAgICAgIElEOiByb290VGVtWzBdLAogICAgICAgICAgICBNSVhOQU1FOiAiWzAwMDAwXeWFqOmDqCIsCiAgICAgICAgICAgIE9SR1RZUEU6ICJJTiIsCiAgICAgICAgICAgIFRZUEU6ICJDUF9DX0hST1JHX0lEIiwKICAgICAgICAgICAgdGl0bGU6ICflhajpg6gnCiAgICAgICAgICB9XTsKICAgICAgICAgIHRoaXMudHJhbnNsYXRvcihwYXJlbnQsIGNoaWxkcmVuLCBrZXkpOwogICAgICAgICAgcmV0dXJuIHBhcmVudDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgIG1lc3NhZ2U6ICfmlbDmja7mnInpl67popjvvIzor7fmo4Dmn6UuLi4nLAogICAgICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgICAgIH0pOyAvLyB0aGlzLiRNZXNzYWdlLndhcm5pbmcoIuaVsOaNruaciemXrumimO+8jOivt+ajgOafpS4uLiIpOwoKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy50cmFuc2xhdG9yKHBhcmVudCwgY2hpbGRyZW4sIGtleSk7CiAgICAgICAgcmV0dXJuIHBhcmVudDsKICAgICAgfQogICAgfSwKICAgIHRyYW5zbGF0b3I6IGZ1bmN0aW9uIHRyYW5zbGF0b3IocGFyZW50cywgY2hpbGRyZW4sIGtleSkgewogICAgICB2YXIgX3RoaXM5ID0gdGhpczsKCiAgICAgIHZhciB0ZW1wID0gW107CiAgICAgIGNoaWxkcmVuLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIC8v5a+55a2Q6IqC54K55pWw5o2u6L+b6KGM5rex5aSN5Yi277yM6L+Z6YeM5Y+q5pSv5oyB6YOo5YiG57G75Z6L55qE5pWw5o2u5rex5aSN5Yi2CiAgICAgICAgdmFyIHRlbUl0ZW0gPSBPYmplY3QuYXNzaWduKHt9LCBpdGVtKTsKICAgICAgICB0ZW1wLnB1c2godGVtSXRlbSk7CiAgICAgIH0pOyAvL+mBjeWOhueItuiKgueCueaVsOaNrgoKICAgICAgcGFyZW50cy5tYXAoZnVuY3Rpb24gKHBhcmVudCkgewogICAgICAgIC8v6YGN5Y6G5a2Q6IqC54K55pWw5o2uCiAgICAgICAgY2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChjdXJyZW50LCBpbmRleCkgewogICAgICAgICAgLy/mraTml7bmib7liLDniLboioLngrnlr7nlupTnmoTkuIDkuKrlrZDoioLngrkKICAgICAgICAgIGlmIChjdXJyZW50W2tleV0gPT09IHBhcmVudC5JRCkgewogICAgICAgICAgICAvL+iuqeW9k+WJjeWtkOiKgueCueS7jnRlbXDkuK3np7vpmaTvvIx0ZW1w5L2c5Li65paw55qE5a2Q6IqC54K55pWw5o2u77yM6L+Z6YeM5piv5Li65LqG6K6p6YCS5b2S5pe277yM5a2Q6IqC54K555qE6YGN5Y6G5qyh5pWw5pu05bCR77yM5aaC5p6c54i25a2Q5YWz57O755qE5bGC57qn6LaK5aSa77yM6LaK5pyJ5YipCiAgICAgICAgICAgIHRlbXAuc3BsaWNlKGluZGV4LCAxKTsgLy/orqnlvZPliY3lrZDoioLngrnkvZzkuLrllK/kuIDnmoTniLboioLngrnvvIzljrvpgJLlvZLmn6Xmib7lhbblr7nlupTnmoTlrZDoioLngrkKCiAgICAgICAgICAgIF90aGlzOS50cmFuc2xhdG9yKFtjdXJyZW50XSwgdGVtcCwga2V5KTsgLy/miormib7liLDlrZDoioLngrnmlL7lhaXniLboioLngrnnmoRjaGlsZHJlbuWxnuaAp+S4rQoKCiAgICAgICAgICAgIHBhcmVudC5jaGlsZHJlbiA/IHBhcmVudC5jaGlsZHJlbi5wdXNoKGN1cnJlbnQpIDogcGFyZW50LmNoaWxkcmVuID0gW2N1cnJlbnRdOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICB0cmVlVHJhbnNBcnJheTogZnVuY3Rpb24gdHJlZVRyYW5zQXJyYXkodHJlZSwga2V5KSB7CiAgICAgIHJldHVybiB0cmVlLnJlZHVjZShmdW5jdGlvbiBpdGVyYXRpb24oY29uLCBpdGVtKSB7CiAgICAgICAgY29uLnB1c2goaXRlbSk7CiAgICAgICAgaWYgKGl0ZW1ba2V5XSAmJiBpdGVtW2tleV0ubGVuZ3RoID4gMCkgaXRlbVtrZXldLnJlZHVjZShpdGVyYXRpb24sIGNvbik7CiAgICAgICAgcmV0dXJuIGNvbjsKICAgICAgfSwgW10pLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIGl0ZW1ba2V5XSA9IFtdOwogICAgICAgIHJldHVybiBpdGVtOwogICAgICB9KTsKICAgIH0sCiAgICBmaW5kVHJlZVJvb3RGaXJzdENoaWxkOiBmdW5jdGlvbiBmaW5kVHJlZVJvb3RGaXJzdENoaWxkKEFyciwga2V5KSB7CiAgICAgIHZhciBpZEFyciA9IFtdOwogICAgICB2YXIgcmVzdWx0ID0gW107CiAgICAgIGlkQXJyID0gQXJyLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtWyJJRCJdOwogICAgICB9KTsKICAgICAgQXJyLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIGlmICghaWRBcnIuaW5jbHVkZXMoaXRlbVtrZXldKSkgewogICAgICAgICAgLy/kuIDnuqfoioLngrnnmoTnibnngrnmmK/lrZjlnKjniLboioLngrkg5L2G5piv5bey54i26IqC54K55Li6SUTnmoToioLngrnmmK/kuI3lrZjlnKjnmoQKICAgICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9LAogICAgaGFuZGxlQ2hlY2tDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZUNoZWNrQ2hhbmdlKCkge30KICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7Ly8gaWYodGhpcy5pc0NhbGxJbnRlcmZhY2UpewogICAgLy8gICB0aGlzLmdldFRyZWVEYXRhKCk7CiAgICAvLyAgIGlmICh0aGlzLnJlc3VsdERhdGEubGlzdCkgewogICAgLy8gICAgIHRoaXMucmVzdWx0UmlnaHREYXRhID0gdGhpcy5kZWVwQ29weSh0aGlzLnJlc3VsdERhdGEpOwogICAgLy8gICB9CiAgICAvLyB9ZWxzZXsKICAgIC8vICAgIGlmICh0aGlzLnNlbGVjdFJvdy5sZW5ndGggPiAwKSB7CiAgICAvLyAgICAgICB0aGlzLnNlbGVjdFJvdyA9IFtdOwogICAgLy8gICAgIH0KICAgIC8vICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5zZWxlY3REYXRhcykubGVuZ3RoID4gMCkgewogICAgLy8gICAgICAgdGhpcy5zZWxlY3REYXRhcyA9IHt9OwogICAgLy8gICAgIH0KICAgIC8vICAgICBpZiAodGhpcy50YWJsZS5zZWFyY2gpIHsKICAgIC8vICAgICAgIHRoaXMudGFibGUuc2VhcmNoID0gIiI7CiAgICAvLyAgICAgfQogICAgLy8gfQogIH0sCiAgZGVzdHJveWVkOiBmdW5jdGlvbiBkZXN0cm95ZWQoKSB7CiAgICBpZiAodGhpcy5zZWxlY3RSb3cubGVuZ3RoID4gMCkgewogICAgICB0aGlzLnNlbGVjdFJvdyA9IFtdOwogICAgfQoKICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLnNlbGVjdERhdGFzKS5sZW5ndGggPiAwKSB7CiAgICAgIHRoaXMuc2VsZWN0RGF0YXMgPSB7fTsKICAgIH0KCiAgICBpZiAodGhpcy50YWJsZS5zZWFyY2gpIHsKICAgICAgdGhpcy50YWJsZS5zZWFyY2ggPSAiIjsKICAgIH0KICB9Cn07CmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0Mjs="},{"version":3,"sources":["index.vue"],"names":[],"mappings":"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","sourcesContent":["<template>\r\n <div class=\"MutipleSelectPop\">\r\n <div class=\"dialog_left\">\r\n <div class=\"left_top\">\r\n <Input\r\n @on-change=\"inputchange\"\r\n @on-keydown=\"inputkeydown\"\r\n search\r\n @on-search=\"inputsearch\"\r\n :placeholder=\"tree.placeholder\"\r\n v-model=\"tree.search\"\r\n ></Input>\r\n </div>\r\n <div class=\"left_center\">\r\n <div class=\"complex-spin-fix\" v-if=\"treeLoading\">\r\n <Spin fix>\r\n <Icon type=\"ios-loading\" size=\"30\" class=\"demo-spin-icon-load\"></Icon>\r\n </Spin>\r\n </div>\r\n <Tree\r\n :data=\"treeLists\"\r\n show-checkbox\r\n ref=\"Tree\"\r\n :query=\"tree.search\"\r\n :queryStyle=\"queryStyle\"\r\n @on-select-change=\"getSelectedNodes\"\r\n @on-check-change=\"getCheckedNodes\"\r\n ></Tree>\r\n <!-- <el-tree\r\n :props=\"treeLists\"\r\n show-checkbox\r\n @check-change=\"handleCheckChange\">\r\n </el-tree> -->\r\n </div>\r\n </div>\r\n <div class=\"dialog_center\">\r\n <div class=\"complex-spin-fix\" v-if=\"tableLoading\">\r\n <Spin fix>\r\n <Icon type=\"ios-loading\" size=\"30\" class=\"demo-spin-icon-load\"></Icon>\r\n </Spin>\r\n </div>\r\n <div class=\"dialog_center_top\">\r\n <div class=\"dialog_center_top_fix\">\r\n <Input\r\n @on-change=\"inputchange\"\r\n @on-keydown=\"inputkeydown\"\r\n search\r\n @on-search=\"inputsearch\"\r\n :placeholder=\"table.placeholder\"\r\n v-model=\"table.search\"\r\n ></Input>\r\n </div>\r\n </div>\r\n <div>\r\n <Tabs size=\"small\" @on-click=\"tabClick\" :animated=\"false\">\r\n <TabPane v-for=\"(item,key) in TabPaneData\" :key=\"key\" :label=\"item.tab\">\r\n <div class=\"dialog_center_page\">\r\n <div>\r\n <Table\r\n border\r\n :columns=\"item.columns\"\r\n ref=\"Table\"\r\n :highlight-row=\"true\"\r\n :clickTimerTask=\"300\"\r\n :height=\"item.height\"\r\n @on-select=\"Onselect\"\r\n @on-select-cancel=\"onSelectCancel\"\r\n @on-select-all=\"onSelectAll\"\r\n @on-select-all-cancel=\"onSelectAllCancel\"\r\n @on-selection-change=\"onSelectChange\"\r\n @on-row-dblclick=\"rowdbClick\"\r\n @on-row-click=\"rowClick\"\r\n :data=\"item.list\"\r\n ></Table>\r\n </div>\r\n <div class=\"dialog_p10\">\r\n <Page\r\n :total=\"item.total\"\r\n :page-size=\"item.pageSize\"\r\n :current=\"item.pageNum\"\r\n @on-change=\"pageChange\"\r\n :page-size-opts=\"item.pageOptions\"\r\n show-total\r\n size=\"small\"\r\n />\r\n </div>\r\n </div>\r\n </TabPane>\r\n </Tabs>\r\n </div>\r\n </div>\r\n <div class=\"dialog-operation\" v-if=\"index === 0\">\r\n <div>\r\n <Button v-if=\"isUse\" class=\"operatebtn\" type=\"primary\" ghost @click=\"operationTwo\">选择部门</Button>\r\n <Button class=\"operatebtn\" type=\"primary\" ghost @click=\"operation\">选择人员</Button>\r\n </div>\r\n </div>\r\n <div class=\"dialog_right\">\r\n <div class=\"left_top right_top\">\r\n <div>已选中({{resultMessage.total || 0 }})</div>\r\n <div>\r\n <i class=\"el-icon-delete\" @click=\"delecFun\"></i>\r\n </div>\r\n </div>\r\n <div class=\"right_center\">\r\n <ul v-if=\"resultMessage.list.length>0\">\r\n <li v-for=\"(item,index) in resultMessage.list\" :key=\"index\">\r\n <p>{{item.string}}</p>\r\n <i class=\"iconfont iconbj_delete2\" @click=\"deleteLi(index,item)\"></i>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\n import {\r\n addGenmutipor,\r\n addGenmutiporuder,\r\n addGenmutiportree\r\n } from \"@/api/activiti/definition\";\r\nexport default {\r\n name: \"Mutiple\",\r\n props: {\r\n // treedata: {\r\n // type: Array,\r\n // default() {\r\n // return [];\r\n // }\r\n // },\r\n // componentData: {\r\n // type: Array,\r\n // default() {\r\n // return [];\r\n // }\r\n // },\r\n resultData: {\r\n type: Object,\r\n default() {\r\n return {};\r\n }\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false\r\n },\r\n // treeLoading: {\r\n // type: Boolean,\r\n // default: false\r\n // },\r\n // tableLoading: {\r\n // type: Boolean,\r\n // default: false\r\n // },\r\n open: {\r\n type: Boolean,\r\n default: false\r\n },\r\n icon_delect: {\r\n type: String,\r\n default: \"iconfont icon-bj_delete\"\r\n },\r\n checkedList: {\r\n type: Array,\r\n default() {\r\n return [];\r\n }\r\n },\r\n // tableSearch: {\r\n // type: String,\r\n // default: \"\"\r\n // },\r\n isUse: {\r\n type: Boolean,\r\n default: true\r\n },\r\n isMutiple: {\r\n //是否多选\r\n type: Boolean,\r\n default: true\r\n },\r\n // isResultShow: {\r\n // //result.list是否反显\r\n // type: Boolean,\r\n // default: true\r\n // },\r\n isCallInterface: {\r\n //用来控制调用接口拿到数据 //也可以理解为弹框关闭状态\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data() {\r\n return {\r\n tableLoading: false,\r\n treeLoading: false,\r\n tree: {\r\n placeholder: \"可搜索店仓/部门\",\r\n search: \"\"\r\n },\r\n table: {\r\n //表格显示部分搜索\r\n placeholder: \"直接输入人员姓名搜索\",\r\n search: \"\"\r\n },\r\n columns: [],\r\n treeNewData: [],\r\n showTree: this.open,\r\n componentt: [\r\n {\r\n tab: \"筛选结果\",\r\n columns: [\r\n { key: \"NAME\", title: \"用户名\" },\r\n { key: \"ENAME\", title: \"用户姓名\" }\r\n ],\r\n list: [],\r\n total: 0,\r\n pageSize: 10,\r\n pageNum: 1, //当前页码\r\n pageOptions: [10, 20, 50, 100],\r\n height: 340\r\n }\r\n ],\r\n resultRightData: {\r\n total: 0,\r\n list: []\r\n },\r\n templateName: \"\",\r\n index: 0,\r\n queryStyle: {\r\n color: \"#fd6442\"\r\n },\r\n selectRow: [], //表格选中的数据\r\n selectDatas: {}, //单行选中\r\n obj: {} //\r\n };\r\n },\r\n computed: {\r\n treeLists() {\r\n // this.treeNewData = this.treedata;\r\n return this.treeNewData;\r\n },\r\n TabPaneData() {\r\n // let data = Object.assign(this.component, this.componentData);\r\n // return data;\r\n if (this.isMutiple) {\r\n // this.componentt[0].columns.unshift({\r\n // type: \"selection\",\r\n // align: \"center\",\r\n // fixed: \"left\",\r\n // width: 30\r\n // });\r\n }\r\n return this.componentt;\r\n },\r\n resultMessage() {\r\n // let data = Object.assign(this.resultRightData, this.resultData);\r\n return this.resultRightData;\r\n }\r\n },\r\n watch: {\r\n isCallInterface: {\r\n handler(newValue, oldValue) {\r\n if (newValue) {\r\n //执行请求\r\n this.componentt[0].pageNum = 1\r\n this.getTreeData();\r\n if (this.resultData.list) {\r\n this.resultRightData = this.deepCopy(this.resultData);\r\n }\r\n } else {\r\n if (this.selectRow.length > 0) {\r\n this.selectRow = [];\r\n }\r\n if (Object.keys(this.selectDatas).length > 0) {\r\n this.selectDatas = {};\r\n }\r\n if (this.table.search) {\r\n this.table.search = \"\";\r\n }\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n deepCopy(obj) {\r\n //兑现深拷贝\r\n var result = Array.isArray(obj) ? [] : {};\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n if (typeof obj[key] === \"object\" && obj[key] !== null) {\r\n result[key] = this.deepCopy(obj[key]); //递归复制\r\n } else {\r\n result[key] = obj[key];\r\n }\r\n }\r\n }\r\n return result;\r\n },\r\n getSelectedNodes(val) {\r\n // if (this.isMutiple) {\r\n if (val.length > 0) {\r\n this.obj = {};\r\n this.saveObj = val[0];\r\n let self = this;\r\n let valID = \"\";\r\n if (val[0].ID.indexOf(\".\") !== -1) {\r\n valID = val[0].ID.split(\".\")[1];\r\n valID = parseInt(valID);\r\n } else {\r\n valID = parseInt(val[0].ID);\r\n }\r\n\r\n if (val[0].CP_C_ORGUP_ID === null) {\r\n //根节点\r\n this.findUser({});\r\n } else {\r\n //当item的TYPE为店仓时\r\n if (val[0].TYPE === \"CP_C_STORE_ID\") {\r\n this.obj.CP_C_STORE_ID = \"in(\" + valID + \")\";\r\n self.findUser(self.obj);\r\n }\r\n //当item的TYPE为供应商时\r\n // 当item的TYPE为组织时\r\n if (val[0].TYPE === \"CP_C_HRORG_ID\") {\r\n addGenmutipor({ CP_C_ORGUP_ID: valID })\r\n .then(res => {\r\n if (res.data.resultCode === 0) {\r\n let HRORG = \"in (\"; //储存键名为CP_C_HRORG_ID对象的ID\r\n let STORE = \"in (\"; //储存键名为CP_C_STORE_ID对象的ID\r\n\r\n if (\r\n res.data.data.CP_C_HRORG &&\r\n res.data.data.CP_C_HRORG.length > 0\r\n ) {\r\n res.data.data.CP_C_HRORG.forEach(item => {\r\n HRORG += item.ID + \",\"; // in 1,2,3,5,6,87,8,6\r\n });\r\n if (res.data.data.CP_C_HRORG.length > 0) {\r\n self.obj.CP_C_HRORG_ID =\r\n HRORG.substring(0, HRORG.length - 1) + \")\";\r\n }\r\n }\r\n if (\r\n res.data.data.CP_C_STORE &&\r\n res.data.data.CP_C_STORE.length > 0\r\n ) {\r\n res.data.data.CP_C_STORE.forEach(item => {\r\n STORE += item.ID + \",\";\r\n });\r\n if (res.data.data.CP_C_STORE.length > 0) {\r\n self.obj.CP_C_STORE_ID =\r\n STORE.substring(0, STORE.length - 1) + \")\";\r\n }\r\n }\r\n self.findUser(self.obj);\r\n } else {\r\n this.$Modal.fcError({\r\n title: \"错误提示\",\r\n content: res.data.resultMsg\r\n });\r\n }\r\n });\r\n }\r\n // setTimeout(function() {\r\n // self.findUser(self.obj);\r\n // });\r\n }\r\n }\r\n // }\r\n this.$emit(\"on-select-tree\", val, this);\r\n },\r\n getCheckedNodes(obj) {\r\n this.$emit(\"on-change-tree\", obj, this);\r\n },\r\n tabClick(index) {\r\n this.index = index;\r\n this.$emit(\"on-click-tab\", index, this);\r\n },\r\n pageChange(index) {\r\n this.$emit(\"on-change-page\", index, this);\r\n this.componentt[0].pageNum = index;\r\n let param = Object.assign(this.obj, { page: index, pageSize: 10 });\r\n if (this.table.search !== \"\") {\r\n param.ENAME = this.table.search;\r\n }\r\n this.findUser(param);\r\n },\r\n pageChangeSize(index) {\r\n this.$emit(\"on-change-pageSize\", index, this);\r\n this.componentt[0].pageSize = index;\r\n let param = Object.assign(this.obj, { page: 1, pageSize: index });\r\n if (this.table.search !== \"\") {\r\n param.ENAME = this.table.search;\r\n }\r\n this.findUser(param);\r\n },\r\n rowdbClick(row, index) {\r\n let selectObj = Object.assign({}, row);\r\n if (!this.isMutiple) {\r\n selectObj.string = selectObj.ENAME;\r\n if (this.resultRightData.list) {\r\n this.resultRightData.list = [];\r\n this.resultRightData.list.push(selectObj);\r\n } else {\r\n this.$set(this.resultRightData, \"list\", [selectObj]);\r\n }\r\n } else {\r\n let selectObj = Object.assign({ approve_type: 4 }, row);\r\n selectObj.string = selectObj.ENAME;\r\n if (this.resultRightData.list && this.resultRightData.list.length > 0) {\r\n let flagIndex = this.resultRightData.list.findIndex(inner => {\r\n return (\r\n selectObj.ID === inner.ID || selectObj.ID === Number(inner.approve_value)\r\n );\r\n });\r\n if (flagIndex === -1) {\r\n //没有找到相同的就加入\r\n this.resultRightData.list.push(selectObj);\r\n } else {\r\n this.$message({\r\n message: selectObj.ENAME + \"已经选择过了,请不要重复选择!\",\r\n type: 'warning'\r\n });\r\n\r\n }\r\n } else {\r\n this.$set(this.resultRightData, \"list\", [selectObj]);\r\n }\r\n }\r\n this.resultRightData.total\r\n ? (this.resultRightData.total = this.resultRightData.list.length)\r\n : this.$set(\r\n this.resultRightData,\r\n \"total\",\r\n this.resultRightData.list.length\r\n );\r\n this.$emit(\"getResult\", this.resultRightData);\r\n this.$refs.Table[0].clearCurrentRow();\r\n this.$emit(\"on-row-dblclick\", row, index, this);\r\n },\r\n rowClick(row, index) {\r\n if (!this.isMutiple) {\r\n this.selectDatas = Object.assign(this.selectDatas, row);\r\n }\r\n this.$emit(\"on-row-click\", row, index, this);\r\n },\r\n Onselect(selection, row) {\r\n if (this.isMutiple) {\r\n this.componentt[0].list.map(item => {\r\n if (row.ID === item.ID) {\r\n item._checked = true;\r\n }\r\n });\r\n this.selectRow = [];\r\n this.selectRow = selection;\r\n }\r\n\r\n this.$emit(\"on-select\", selection, row);\r\n },\r\n onSelectCancel(selection, row) {\r\n this.componentt[0].list.map(item => {\r\n if (row.ID === item.ID) {\r\n item._checked = false;\r\n }\r\n });\r\n this.selectRow = [];\r\n this.selectRow = selection;\r\n this.$emit(\"on-select-cancel\", selection, row);\r\n },\r\n onSelectAll(selection) {\r\n this.selectRow = [];\r\n this.componentt[0].list.map(item => {\r\n item._checked = true;\r\n });\r\n this.selectRow = selection;\r\n this.$emit(\"on-select-all\", selection);\r\n },\r\n onSelectAllCancel(selection) {\r\n this.componentt[0].list.map(item => {\r\n item._checked = false;\r\n });\r\n this.selectRow = [];\r\n this.$emit(\"on-select-all-cancel\", selection);\r\n },\r\n onSelectChange(selection) {\r\n this.$emit(\"on-select-change\", selection);\r\n },\r\n inputchange(event) {\r\n // if(!this.isUse&&!this.isMutiple){\r\n this.table.search = event.target.value;\r\n // }\r\n this.$emit(\"on-change\", event, this);\r\n },\r\n inputkeydown(event) {\r\n this.$emit(\"on-keydown\", event, this);\r\n },\r\n inputsearch(event) {\r\n let param = Object.assign(this.obj, {\r\n page: 1,\r\n pageSize: 10,\r\n ENAME: event\r\n });\r\n this.findUser(param);\r\n this.$emit(\"on-search\", event, this);\r\n },\r\n operationTwo() {\r\n let selectNode = this.$refs.Tree.getCheckedNodes();\r\n selectNode = selectNode.filter(item => item.title !=='全部')\r\n if (this.isMutiple) {\r\n if (selectNode.length > 0) {\r\n this.resultRightData.total\r\n ? this.$set(this.resultRightData, \"total\", this.resultData.total + selectNode.length)\r\n : this.$set(this.resultRightData, \"total\", selectNode.length);\r\n selectNode.map(item => {\r\n let selectObj = Object.assign({ approve_type: 2 }, item);\r\n selectObj.string = item.ENAME;\r\n if (\r\n this.resultRightData.list &&\r\n this.resultRightData.list.length > 0\r\n ) {\r\n let flagIndex = this.resultRightData.list.findIndex(inner => {\r\n return item.ID === inner.ID || item.ID === Number(inner.approve_value);\r\n });\r\n if (flagIndex === -1) {\r\n //没有找到相同的就加入\r\n this.resultRightData.list.push(selectObj);\r\n } else {\r\n this.$message({\r\n message: item.ENAME + \"已经选择过了,请不要重复选择!\",\r\n type: 'warning'\r\n });\r\n\r\n }\r\n } else {\r\n this.$set(this.resultRightData, \"list\", [selectObj]);\r\n }\r\n });\r\n } else {\r\n his.$message({\r\n message:\"请选择部门!\",\r\n type: 'warning'\r\n });\r\n // this.$Message.warning(\"请选择部门\");\r\n }\r\n this.getTreeData();\r\n }\r\n if (this.selectRow.length > 0) {\r\n //选中状态的清除\r\n this.selectRow = [];\r\n }\r\n if (Object.keys(this.selectDatas).length > 0) {\r\n this.selectDatas = {};\r\n }\r\n this.$emit(\"getResult\", this.resultRightData);\r\n this.$emit(\"on-transfer-two\", selectNode, this);\r\n },\r\n operation() {\r\n if (!this.isMutiple) {\r\n //单选逻辑\r\n if (Object.keys(this.selectDatas).length === 0) {\r\n this.$message({\r\n message: '请选择人员',\r\n type: 'warning'\r\n });\r\n // this.$Message.warning(\"请选择人员\");\r\n return;\r\n }\r\n this.resultRightData.total\r\n ? (this.resultRightData.total = 1)\r\n : this.$set(this.resultRightData, \"total\", 1);\r\n let selectObj = Object.assign({}, this.selectDatas);\r\n selectObj.string = selectObj.ENAME;\r\n if (this.resultRightData.list) {\r\n this.resultRightData.list = [];\r\n this.resultRightData.list.push(selectObj);\r\n } else {\r\n this.$set(this.resultRightData, \"list\", [selectObj]);\r\n }\r\n } else {\r\n //多选逻辑\r\n if (this.selectRow.length > 0) {\r\n this.selectRow.map(item => {\r\n let selectObj = Object.assign({ approve_type: 4 }, item);\r\n selectObj.string = item.ENAME;\r\n if (\r\n this.resultRightData.list &&\r\n this.resultRightData.list.length > 0\r\n ) {\r\n let flagIndex = this.resultRightData.list.findIndex(inner => {\r\n return item.ID === inner.ID || item.ID === Number(inner.approve_value);\r\n });\r\n if (flagIndex === -1) {\r\n //没有找到相同的就加入\r\n this.resultRightData.list.push(selectObj);\r\n } else {\r\n this.$message({\r\n message: item.ENAME + \"已经选择过了,请不要重复选择!\",\r\n type: 'warning'\r\n });\r\n // this.$Message.warning(\r\n // item.ENAME + \"已经选择过了,请不要重复选择!\"\r\n // );\r\n }\r\n } else {\r\n this.$set(this.resultRightData, \"list\", [selectObj]);\r\n }\r\n });\r\n this.resultRightData.total\r\n ? (this.resultRightData.total = this.resultRightData.list.length)\r\n : this.$set(\r\n this.resultRightData,\r\n \"total\",\r\n this.resultRightData.list.length\r\n );\r\n } else {\r\n this.$message({\r\n message: '请选择人员',\r\n type: 'warning'\r\n });\r\n // this.$Message.warning(\"请选择人员\");\r\n }\r\n }\r\n //刷新表格数据\r\n this.componentt[0].list.map(item => {\r\n item._checked = false;\r\n });\r\n this.componentt[0].list = this.componentt[0].list.concat([]);\r\n if (this.selectRow.length > 0) {\r\n //选中状态的清除\r\n this.selectRow = [];\r\n }\r\n if (Object.keys(this.selectDatas).length > 0) {\r\n this.selectDatas = {};\r\n }\r\n this.$emit(\"getResult\", this.resultRightData);\r\n this.$emit(\"on-transfer\", this);\r\n },\r\n deleteLi(index, tem) {\r\n let selectNode = this.$refs.Tree.getCheckedNodes();\r\n if (selectNode && selectNode.length > 0) {\r\n selectNode.map(inItem => {\r\n if (inItem.ID === tem.ID) {\r\n this.$refs.Tree.handleCheck({\r\n checked: false,\r\n nodeKey: inItem.nodeKey\r\n });\r\n }\r\n });\r\n }\r\n let selectrow = this.TabPaneData[0].list; //表格数据\r\n selectrow.map((row, Index) => {\r\n if (row.ID === tem.ID) {\r\n row._checked = false;\r\n }\r\n });\r\n this.resultRightData.list.splice(index, 1);\r\n this.resultRightData.total = this.resultRightData.list.length;\r\n this.$emit(\"getResult\", this.resultRightData);\r\n this.$emit(\"on-delectli\", index, tem, this);\r\n },\r\n treeOpen(checked) {\r\n this.showTree = !checked;\r\n this.treeNewData.forEach(item => {\r\n item.expand = !item.expand;\r\n });\r\n },\r\n delecFun() {\r\n let selectNode = this.$refs.Tree.getCheckedNodes();\r\n if (selectNode && selectNode.length > 0) {\r\n selectNode.map(inItem => {\r\n this.$refs.Tree.handleCheck({\r\n checked: false,\r\n nodeKey: inItem.nodeKey\r\n });\r\n });\r\n }\r\n let selectrow = this.TabPaneData[0].list; //表格数据\r\n if (selectrow && selectrow.length > 0) {\r\n selectrow.map((row, Index) => {\r\n row._checked = false;\r\n });\r\n }\r\n this.$emit(\"on-deleBtn\", this);\r\n this.resultRightData.total = 0;\r\n this.resultRightData.list = [];\r\n this.componentt[0].list.map(item => {\r\n item._checked = false;\r\n });\r\n this.componentt[0].list = this.componentt[0].list.concat([]);\r\n this.$emit(\"getResult\", this.resultRightData);\r\n },\r\n //查找用户信息\r\n findUser(param) {\r\n this.tableLoading = true;\r\n addGenmutiporuder( param).then(res => {\r\n this.tableLoading = false;\r\n let data = res;\r\n if (res.code === 0) {\r\n if (data.data) {\r\n this.transferTbody(data.data);\r\n }\r\n if (data.datas) {\r\n this.transferTbody(data.datas);\r\n }\r\n }\r\n });\r\n },\r\n //表格体数据转化\r\n transferTbody(data) {\r\n this.componentt[0].total = data.totalRowCount;\r\n this.componentt[0].pageOptions = data.selectrange;\r\n this.componentt[0].list = [];\r\n data.row.map(item => {\r\n let tem = {};\r\n let temval = {};\r\n Object.keys(item).map(inner => {\r\n tem[inner] = item[inner].val;\r\n });\r\n temval = Object.assign({}, tem);\r\n this.componentt[0].list.push(tem);\r\n });\r\n },\r\n //获取树数据\r\n getTreeData() {\r\n this.tree_loading = true;\r\n addGenmutiportree().then(res => {\r\n this.tree_loading = false;\r\n if (res.resultCode === 0) {\r\n console.log(345678)\r\n this.treeNewData = [];\r\n let newArr = [];\r\n let root = {};\r\n if (res.data.records.length > 0) {\r\n console.log(3456788)\r\n res.data.records.forEach(item => {\r\n let tem = Object.assign(item);\r\n newArr.push(tem);\r\n if (\r\n item[\"CP_C_ORGUP_ID\"] === null ||\r\n item[\"CP_C_ORGUP_ID\"] === \"\"\r\n ) {\r\n root = Object.assign({}, item);\r\n }\r\n });\r\n this.treeNewData = this.arrayTransTree(newArr, \"CP_C_ORGUP_ID\");\r\n console.log(this.treeNewData)\r\n }\r\n this.findUser({}); //显示所有的用户\r\n }\r\n });\r\n },\r\n\r\n //改造树数据的结构\r\n arrayTransTree(list, key) {\r\n let parent = [];\r\n let children = [];\r\n list.map(item => {\r\n item.expand = false;\r\n item.title = item.ENAME;\r\n if (\r\n !item[key]||\r\n (item[key].indexOf('.')!==-1&&!item[key].split(\".\")[1])\r\n ) {\r\n //根节点\r\n parent.push(item);\r\n } else {\r\n //有父节点的\r\n children.push(item);\r\n }\r\n });\r\n if (parent.length < 1) {\r\n //没有根节点\r\n let newParent = this.findTreeRootFirstChild(list, key); //拿到一级节点\r\n let rootArr = newParent.map(item => {\r\n return item[key];\r\n });\r\n let rootTem = Array.from(new Set([...rootArr]));\r\n if (rootTem.length === 1) {\r\n parent = [\r\n {\r\n CP_C_ORGUP_ID: null,\r\n ECODE: \"00000\",\r\n ENAME: \"全部\",\r\n ID: rootTem[0],\r\n MIXNAME: \"[00000]全部\",\r\n ORGTYPE: \"IN\",\r\n TYPE: \"CP_C_HRORG_ID\",\r\n title:'全部'\r\n }\r\n ];\r\n this.translator(parent, children, key);\r\n return parent;\r\n } else {\r\n this.$message({\r\n message: '数据有问题,请检查...',\r\n type: 'warning'\r\n });\r\n // this.$Message.warning(\"数据有问题,请检查...\");\r\n return;\r\n }\r\n } else {\r\n this.translator(parent, children, key);\r\n\r\n return parent;\r\n }\r\n },\r\n translator(parents, children, key) {\r\n let temp = [];\r\n children.map(item => {\r\n //对子节点数据进行深复制,这里只支持部分类型的数据深复制\r\n let temItem = Object.assign({}, item);\r\n temp.push(temItem);\r\n });\r\n //遍历父节点数据\r\n parents.map(parent => {\r\n //遍历子节点数据\r\n children.map((current, index) => {\r\n //此时找到父节点对应的一个子节点\r\n if (current[key] === parent.ID) {\r\n //让当前子节点从temp中移除,temp作为新的子节点数据,这里是为了让递归时,子节点的遍历次数更少,如果父子关系的层级越多,越有利\r\n temp.splice(index, 1);\r\n //让当前子节点作为唯一的父节点,去递归查找其对应的子节点\r\n this.translator([current], temp, key);\r\n //把找到子节点放入父节点的children属性中\r\n parent.children\r\n ? parent.children.push(current)\r\n : (parent.children = [current]);\r\n }\r\n });\r\n });\r\n },\r\n treeTransArray(tree, key) {\r\n return tree\r\n .reduce(function iteration(con, item) {\r\n con.push(item);\r\n if (item[key] && item[key].length > 0)\r\n item[key].reduce(iteration, con);\r\n return con;\r\n }, [])\r\n .map(function(item) {\r\n item[key] = [];\r\n return item;\r\n });\r\n },\r\n findTreeRootFirstChild(Arr, key) {\r\n let idArr = [];\r\n let result = [];\r\n idArr = Arr.map(item => {\r\n return item[\"ID\"];\r\n });\r\n Arr.map(item => {\r\n if (!idArr.includes(item[key])) {\r\n //一级节点的特点是存在父节点 但是已父节点为ID的节点是不存在的\r\n result.push(item);\r\n }\r\n });\r\n return result;\r\n },\r\n handleCheckChange(){\r\n \r\n }\r\n },\r\n mounted() {\r\n // if(this.isCallInterface){\r\n // this.getTreeData();\r\n // if (this.resultData.list) {\r\n // this.resultRightData = this.deepCopy(this.resultData);\r\n // }\r\n // }else{\r\n // if (this.selectRow.length > 0) {\r\n // this.selectRow = [];\r\n // }\r\n // if (Object.keys(this.selectDatas).length > 0) {\r\n // this.selectDatas = {};\r\n // }\r\n // if (this.table.search) {\r\n // this.table.search = \"\";\r\n // }\r\n // }\r\n\r\n },\r\n destroyed() {\r\n if (this.selectRow.length > 0) {\r\n this.selectRow = [];\r\n }\r\n if (Object.keys(this.selectDatas).length > 0) {\r\n this.selectDatas = {};\r\n }\r\n if (this.table.search) {\r\n this.table.search = \"\";\r\n }\r\n }\r\n};\r\n</script>\r\n<style lang=\"scss\">\r\n.MutipleSelectPop {\r\n width: 800px;\r\n display: flex;\r\n height: 484px;\r\n position: relative;\r\n .demo-spin-icon-load {\r\n animation: ani-demo-spin 1s linear infinite;\r\n }\r\n .complex-spin-fix {\r\n z-index: 20;\r\n }\r\n @keyframes ani-demo-spin {\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n 50% {\r\n transform: rotate(180deg);\r\n }\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n overflow: hidden;\r\n .dialog_left {\r\n width: 170px;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n padding: 10px;\r\n border: 1px solid #dcdee2;\r\n border-right: none;\r\n .left_top {\r\n height: 32px;\r\n line-height: 32px;\r\n box-sizing: border-box;\r\n border-bottom: 1px solid #e8eaec;\r\n font-size: 12px;\r\n color: #575757;\r\n display: flex;\r\n input {\r\n line-height: 32px;\r\n height: 32px;\r\n }\r\n\r\n div:first-child {\r\n flex: 1;\r\n }\r\n i {\r\n margin-right: 10px;\r\n }\r\n }\r\n .left_center {\r\n flex: 1;\r\n padding-top: 10px;\r\n position: relative;\r\n height: 390px;\r\n padding-bottom: 10px;\r\n width: 156px;\r\n overflow-y: auto;\r\n }\r\n }\r\n .dialog_center {\r\n width: 400px;\r\n position: relative;\r\n height: 484px;\r\n border: 1px solid #dcdee2;\r\n border-right: none;\r\n //box-shadow: 2px -2px 9px @shadow-color;\r\n padding: 10px;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n .dialog_p10 {\r\n padding: 10px 0;\r\n }\r\n .dialog_center_top {\r\n display: flex;\r\n line-height: 32px;\r\n vertical-align: middle;\r\n box-sizing: border-box;\r\n .dialog_center_top_fix {\r\n width: 270px;\r\n box-sizing: border-box;\r\n padding-right: 20px;\r\n input {\r\n line-height: 32px;\r\n height: 32px;\r\n }\r\n }\r\n }\r\n }\r\n .dialog-operation {\r\n width: 92px;\r\n padding: 0px;\r\n border-left: 1px solid #dcdee2;\r\n background-color: #fff;\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n div {\r\n text-align: center;\r\n .operatebtn {\r\n margin-bottom: 10px;\r\n padding: 8px 12px;\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n }\r\n }\r\n }\r\n .dialog_right {\r\n width: 220px;\r\n padding: 10px;\r\n border: 1px solid #dcdee2;\r\n box-sizing: border-box;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n .left_top {\r\n height: 30px;\r\n line-height: 30px;\r\n box-sizing: border-box;\r\n border-bottom: 1px solid #e8eaec;\r\n font-size: 12px;\r\n color: #575757;\r\n display: flex;\r\n div:first-child {\r\n flex: 1;\r\n }\r\n i {\r\n margin-right: 10px;\r\n }\r\n }\r\n ul {\r\n height: 390px;\r\n overflow: auto;\r\n li {\r\n margin-bottom: 4px;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n background-color: #f8f8f8;\r\n border-radius: 2px;\r\n font-size: 12px;\r\n p {\r\n flex: 1;\r\n line-height: 18px;\r\n margin-left: 4px;\r\n box-sizing: border-box;\r\n border-radius: 4px;\r\n padding: 4px 6px;\r\n color: #0f8ee9;\r\n word-wrap: break-word;\r\n word-break: break-all;\r\n }\r\n }\r\n }\r\n }\r\n .right_center {\r\n flex: 1;\r\n padding-top: 10px;\r\n }\r\n}\r\n</style>\r\n"],"sourceRoot":"src/components/MutipleSelectPop"}]}
|