Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@syncfusion/ej2-ng-base

Package Overview
Dependencies
Maintainers
2
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@syncfusion/ej2-ng-base - npm Package Compare versions

Comparing version 1.0.14 to 1.0.16

10

dist/ej2-ng-base.umd.js
/*!
* filename: ej2-ng-base.umd.js
* version : 1.0.14
* version : 1.0.16
* Copyright Syncfusion Inc. 2001 - 2017. All rights reserved.

@@ -241,3 +241,5 @@ * Use of this code is subject to the terms of our license.

var rt = _c[_b];
rt.destroy();
if (!rt.destroyed) {
rt.destroy();
}
}

@@ -419,3 +421,3 @@ delete _this.registeredTemplate[registeredTemplate];

if (this.propagateChange !== undefined) {
this.propagateChange(e.value);
this.propagateChange(e.checked || e.value);
}

@@ -514,2 +516,2 @@ };

;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCA4OGFmY2Q2Nzc5ZWIyYmM0MmYxOCIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBsZXgtYXJyYXktYmFzZS5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiIiwid2VicGFjazovLy8uL3NyYy91dGlsLmpzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnQtYmFzZS5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJAYW5ndWxhci9jb3JlXCIiLCJ3ZWJwYWNrOi8vLy4vc3JjL2Zvcm0tYmFzZS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvdGVtcGxhdGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNWQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7O2lFQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQWtELGNBQWM7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUM7Ozs7Ozs7aUVDWEQ7QUFDQTtBQUNBLG1EQUFrRCxjQUFjO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE0QyxnQkFBZ0I7QUFDNUQ7QUFDQTtBQUNBO0FBQ0EsMkNBQTBDLG1DQUFtQztBQUM3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Es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aUVDQUE7QUFDQTtBQUNBLG1EQUFrRCxjQUFjO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0EsRUFBQzs7Ozs7OztpRUNwQ0Q7QUFDQTtBQUNBLG1EQUFrRCxjQUFjO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQWtDLG1CQUFtQjtBQUNyRCxFQUFDIiwiZmlsZSI6ImVqMi1uZy1iYXNlLnVtZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcIkBzeW5jZnVzaW9uL2VqMi1iYXNlXCIpLCByZXF1aXJlKFwiQGFuZ3VsYXIvY29yZVwiKSk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiLCBcIkBhbmd1bGFyL2NvcmVcIl0sIGZhY3RvcnkpO1xuXHRlbHNlIHtcblx0XHR2YXIgYSA9IHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyA/IGZhY3RvcnkocmVxdWlyZShcIkBzeW5jZnVzaW9uL2VqMi1iYXNlXCIpLCByZXF1aXJlKFwiQGFuZ3VsYXIvY29yZVwiKSkgOiBmYWN0b3J5KHJvb3RbXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiXSwgcm9vdFtcIkBhbmd1bGFyL2NvcmVcIl0pO1xuXHRcdGZvcih2YXIgaSBpbiBhKSAodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnID8gZXhwb3J0cyA6IHJvb3QpW2ldID0gYVtpXTtcblx0fVxufSkodGhpcywgZnVuY3Rpb24oX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV8yX18sIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfNV9fKSB7XG5yZXR1cm4gXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRleHBvcnRzOiB7fSxcbiBcdFx0XHRpZDogbW9kdWxlSWQsXG4gXHRcdFx0bG9hZGVkOiBmYWxzZVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIDg4YWZjZDY3NzllYjJiYzQyZjE4IiwiZGVmaW5lKFtcInJlcXVpcmVcIiwgXCJleHBvcnRzXCIsIFwiLi9jb21wbGV4LWFycmF5LWJhc2VcIiwgXCIuL2NvbXBvbmVudC1iYXNlXCIsIFwiLi9mb3JtLWJhc2VcIiwgXCIuL3V0aWxcIiwgXCIuL3RlbXBsYXRlXCJdLCBmdW5jdGlvbiAocmVxdWlyZSwgZXhwb3J0cywgY29tcGxleF9hcnJheV9iYXNlXzEsIGNvbXBvbmVudF9iYXNlXzEsIGZvcm1fYmFzZV8xLCB1dGlsXzEsIHRlbXBsYXRlXzEpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBmdW5jdGlvbiBfX2V4cG9ydChtKSB7XG4gICAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKCFleHBvcnRzLmhhc093blByb3BlcnR5KHApKSBleHBvcnRzW3BdID0gbVtwXTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIF9fZXhwb3J0KGNvbXBsZXhfYXJyYXlfYmFzZV8xKTtcbiAgICBfX2V4cG9ydChjb21wb25lbnRfYmFzZV8xKTtcbiAgICBfX2V4cG9ydChmb3JtX2Jhc2VfMSk7XG4gICAgX19leHBvcnQodXRpbF8xKTtcbiAgICBfX2V4cG9ydCh0ZW1wbGF0ZV8xKTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiZGVmaW5lKFtcInJlcXVpcmVcIiwgXCJleHBvcnRzXCIsIFwiQHN5bmNmdXNpb24vZWoyLWJhc2VcIiwgXCIuL3V0aWxcIl0sIGZ1bmN0aW9uIChyZXF1aXJlLCBleHBvcnRzLCBlajJfYmFzZV8xLCB1dGlsXzEpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdmFyIENvbXBsZXhCYXNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZnVuY3Rpb24gQ29tcGxleEJhc2UoKSB7XG4gICAgICAgICAgICB0aGlzLmhhc0NoYW5nZXMgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMucHJvcENvbGxlY3Rpb24gPSB7fTtcbiAgICAgICAgICAgIHRoaXMudGFncyA9IFtdO1xuICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgQ29tcGxleEJhc2UucHJvdG90eXBlLm5nT25Jbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlcmVkVGVtcGxhdGUgPSB7fTtcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLnRhZ3M7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRhZyA9IF9hW19pXTtcbiAgICAgICAgICAgICAgICB2YXIgb2JqSW5zdGFuY2UgPSBlajJfYmFzZV8xLmdldFZhbHVlKCdjaGlsZCcgKyB0YWcuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB0YWcuc3Vic3RyaW5nKDEpLCB0aGlzKTtcbiAgICAgICAgICAgICAgICBpZiAob2JqSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzLnB1c2goeyBpbnN0YW5jZTogb2JqSW5zdGFuY2UsIG5hbWU6IHRhZyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdGVtcGxhdGVQcm9wZXJ0aWVzID0gT2JqZWN0LmtleXModGhpcyk7XG4gICAgICAgICAgICB0ZW1wbGF0ZVByb3BlcnRpZXMgPSB0ZW1wbGF0ZVByb3BlcnRpZXMuZmlsdGVyKGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gL1JlZiQvaS50ZXN0KHZhbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZvciAodmFyIF9iID0gMCwgdGVtcGxhdGVQcm9wZXJ0aWVzXzEgPSB0ZW1wbGF0ZVByb3BlcnRpZXM7IF9iIDwgdGVtcGxhdGVQcm9wZXJ0aWVzXzEubGVuZ3RoOyBfYisrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRlbXBOYW1lID0gdGVtcGxhdGVQcm9wZXJ0aWVzXzFbX2JdO1xuICAgICAgICAgICAgICAgIHZhciBwcm9wTmFtZSA9IHRlbXBOYW1lLnJlcGxhY2UoJ1JlZicsICcnKTtcbiAgICAgICAgICAgICAgICBlajJfYmFzZV8xLnNldFZhbHVlKHByb3BOYW1lLnJlcGxhY2UoJ18nLCAnLicpLCBlajJfYmFzZV8xLmdldFZhbHVlKHByb3BOYW1lLCB0aGlzKSwgdGhpcy5wcm9wQ29sbGVjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIENvbXBsZXhCYXNlLnByb3RvdHlwZS5uZ09uQ2hhbmdlcyA9IGZ1bmN0aW9uIChjaGFuZ2VzKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gT2JqZWN0LmtleXMoY2hhbmdlcyk7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHByb3BOYW1lID0gX2FbX2ldO1xuICAgICAgICAgICAgICAgIHZhciBjaGFuZ2VkVmFsID0gY2hhbmdlc1twcm9wTmFtZV07XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wQ29sbGVjdGlvbltwcm9wTmFtZV0gPSBjaGFuZ2VkVmFsLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaGFzQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIENvbXBsZXhCYXNlLnByb3RvdHlwZS5jbGVhclRlbXBsYXRlID0gZnVuY3Rpb24gKHRlbXBsYXRlTmFtZXMpIHtcbiAgICAgICAgICAgIHV0aWxfMS5jbGVhclRlbXBsYXRlKHRoaXMsIHRlbXBsYXRlTmFtZXMpO1xuICAgICAgICB9O1xuICAgICAgICA7XG4gICAgICAgIENvbXBsZXhCYXNlLnByb3RvdHlwZS5nZXRQcm9wZXJ0aWVzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBfYSA9IHRoaXMudGFnT2JqZWN0czsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFnT2JqZWN0ID0gX2FbX2ldO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcENvbGxlY3Rpb25bdGFnT2JqZWN0Lm5hbWVdID0gdGFnT2JqZWN0Lmluc3RhbmNlLmdldFByb3BlcnRpZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb3BDb2xsZWN0aW9uO1xuICAgICAgICB9O1xuICAgICAgICBDb21wbGV4QmFzZS5wcm90b3R5cGUuaXNDaGFuZ2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuaGFzQ2hhbmdlcztcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLnRhZ09iamVjdHM7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSBfYVtfaV07XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0IHx8IGl0ZW0uaW5zdGFuY2UuaGFzQ2hhbmdlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH07XG4gICAgICAgIENvbXBsZXhCYXNlLnByb3RvdHlwZS5uZ0FmdGVyQ29udGVudENoZWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLmhhc0NoYW5nZXMgPSB0aGlzLmlzQ2hhbmdlZCgpO1xuICAgICAgICAgICAgdmFyIHRlbXBsYXRlUHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHRoaXMpO1xuICAgICAgICAgICAgdGVtcGxhdGVQcm9wZXJ0aWVzID0gdGVtcGxhdGVQcm9wZXJ0aWVzLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIC9SZWYkL2kudGVzdCh2YWwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIENvbXBsZXhCYXNlLnByb3RvdHlwZS5uZ0FmdGVyVmlld0NoZWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLmhhc0NoYW5nZXMgPSBmYWxzZTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIENvbXBsZXhCYXNlO1xuICAgIH0oKSk7XG4gICAgZXhwb3J0cy5Db21wbGV4QmFzZSA9IENvbXBsZXhCYXNlO1xuICAgIHZhciBBcnJheUJhc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICBmdW5jdGlvbiBBcnJheUJhc2UocHJvcGVydHlOYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3QgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuaGFzQ2hhbmdlcyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgQXJyYXlCYXNlLnByb3RvdHlwZS5uZ09uSW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuaXNJbml0Q2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIEFycmF5QmFzZS5wcm90b3R5cGUubmdBZnRlckNvbnRlbnRJbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgICAgIHZhciBpbmRleCA9IDA7XG4gICAgICAgICAgICB0aGlzLmxpc3QgPSB0aGlzLmNoaWxkcmVuLm1hcChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBjaGlsZC5pbmRleCA9IGluZGV4Kys7XG4gICAgICAgICAgICAgICAgY2hpbGQucHJvcGVydHkgPSBfdGhpcy5wcm9wZXJ0eU5hbWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmhhc0NoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICBBcnJheUJhc2UucHJvdG90eXBlLmdldFByb3BlcnRpZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgb25seVByb3AgPSBbXTtcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLmxpc3Q7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSBfYVtfaV07XG4gICAgICAgICAgICAgICAgb25seVByb3AucHVzaChpdGVtLmdldFByb3BlcnRpZXMoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb25seVByb3A7XG4gICAgICAgIH07XG4gICAgICAgIEFycmF5QmFzZS5wcm90b3R5cGUuaXNDaGFuZ2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBfYSA9IHRoaXMubGlzdDsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IF9hW19pXTtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgfHwgaXRlbS5oYXNDaGFuZ2VzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICEhdGhpcy5saXN0Lmxlbmd0aCAmJiByZXN1bHQ7XG4gICAgICAgIH07XG4gICAgICAgIEFycmF5QmFzZS5wcm90b3R5cGUuY2xlYXJUZW1wbGF0ZSA9IGZ1bmN0aW9uICh0ZW1wbGF0ZU5hbWVzKSB7XG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBfYSA9IHRoaXMubGlzdDsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IF9hW19pXTtcbiAgICAgICAgICAgICAgICBpdGVtLmNsZWFyVGVtcGxhdGUodGVtcGxhdGVOYW1lcyAmJiB0ZW1wbGF0ZU5hbWVzLm1hcChmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKF90aGlzLnByb3BlcnR5TmFtZSkudGVzdCh2YWwpID8gdmFsLnJlcGxhY2UoX3RoaXMucHJvcGVydHlOYW1lICsgJy4nLCAnJykgOiB2YWw7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBBcnJheUJhc2UucHJvdG90eXBlLm5nQWZ0ZXJDb250ZW50Q2hlY2tlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzQ2hhbmdlcyA9IHRoaXMuaXNDaGFuZ2VkKCk7XG4gICAgICAgIH07XG4gICAgICAgIEFycmF5QmFzZS5wcm90b3R5cGUubmdBZnRlclZpZXdJbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5pc0luaXRDaGFuZ2VzID0gZmFsc2U7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBBcnJheUJhc2U7XG4gICAgfSgpKTtcbiAgICBleHBvcnRzLkFycmF5QmFzZSA9IEFycmF5QmFzZTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvY29tcGxleC1hcnJheS1iYXNlLmpzXG4vLyBtb2R1bGUgaWQgPSAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV8yX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiXG4vLyBtb2R1bGUgaWQgPSAyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImRlZmluZShbXCJyZXF1aXJlXCIsIFwiZXhwb3J0c1wiXSwgZnVuY3Rpb24gKHJlcXVpcmUsIGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgZnVuY3Rpb24gYXBwbHlNaXhpbnMoZGVyaXZlZENsYXNzLCBiYXNlQ2xhc3MpIHtcbiAgICAgICAgYmFzZUNsYXNzLmZvckVhY2goZnVuY3Rpb24gKGJhc2VDbGFzcykge1xuICAgICAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYmFzZUNsYXNzLnByb3RvdHlwZSkuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgICAgICAgIGRlcml2ZWRDbGFzcy5wcm90b3R5cGVbbmFtZV0gPSBiYXNlQ2xhc3MucHJvdG90eXBlW25hbWVdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBleHBvcnRzLmFwcGx5TWl4aW5zID0gYXBwbHlNaXhpbnM7XG4gICAgZnVuY3Rpb24gY2xlYXJUZW1wbGF0ZShfdGhpcywgdGVtcGxhdGVOYW1lcykge1xuICAgICAgICB2YXIgcmVnVGVtcGxhdGVzID0gT2JqZWN0LmtleXMoX3RoaXMucmVnaXN0ZXJlZFRlbXBsYXRlKTtcbiAgICAgICAgaWYgKHJlZ1RlbXBsYXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciByZWdQcm9wZXJ0aWVzID0gdGVtcGxhdGVOYW1lcyAmJiB0ZW1wbGF0ZU5hbWVzLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgvXFwuL2cudGVzdCh2YWwpID8gZmFsc2UgOiB0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBfYSA9IChyZWdQcm9wZXJ0aWVzICYmIHJlZ1Byb3BlcnRpZXMgfHwgcmVnVGVtcGxhdGVzKTsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVnaXN0ZXJlZFRlbXBsYXRlID0gX2FbX2ldO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIF9iID0gMCwgX2MgPSBfdGhpcy5yZWdpc3RlcmVkVGVtcGxhdGVbcmVnaXN0ZXJlZFRlbXBsYXRlXTsgX2IgPCBfYy5sZW5ndGg7IF9iKyspIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJ0ID0gX2NbX2JdO1xuICAgICAgICAgICAgICAgICAgICBydC5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlbGV0ZSBfdGhpcy5yZWdpc3RlcmVkVGVtcGxhdGVbcmVnaXN0ZXJlZFRlbXBsYXRlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uICh0YWdPYmplY3QpIHtcbiAgICAgICAgICAgIGlmICh0YWdPYmplY3QuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICB0YWdPYmplY3QuaW5zdGFuY2UuY2xlYXJUZW1wbGF0ZSgodGVtcGxhdGVOYW1lcyAmJiB0ZW1wbGF0ZU5hbWVzLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAobmV3IFJlZ0V4cCh0YWdPYmplY3QubmFtZSkudGVzdCh2YWwpID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9KSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBmb3IgKHZhciBfZCA9IDAsIF9lID0gX3RoaXMudGFnT2JqZWN0czsgX2QgPCBfZS5sZW5ndGg7IF9kKyspIHtcbiAgICAgICAgICAgIHZhciB0YWdPYmplY3QgPSBfZVtfZF07XG4gICAgICAgICAgICBfbG9vcF8xKHRhZ09iamVjdCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXhwb3J0cy5jbGVhclRlbXBsYXRlID0gY2xlYXJUZW1wbGF0ZTtcbiAgICBmdW5jdGlvbiBzZXRWYWx1ZShuYW1lU3BhY2UsIHZhbHVlLCBvYmplY3QpIHtcbiAgICAgICAgdmFyIGtleXMgPSBuYW1lU3BhY2Uuc3BsaXQoJy4nKTtcbiAgICAgICAgdmFyIGZyb21PYmogPSBvYmplY3QgfHwge307XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgICAgICAgICBpZiAoaSArIDEgPT09IGtleXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZnJvbU9ialtrZXldID0gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHt9IDogdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChmcm9tT2JqW2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGZyb21PYmpba2V5XSA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnJvbU9iaiA9IGZyb21PYmpba2V5XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnJvbU9iajtcbiAgICB9XG4gICAgZXhwb3J0cy5zZXRWYWx1ZSA9IHNldFZhbHVlO1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy91dGlsLmpzXG4vLyBtb2R1bGUgaWQgPSAzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImRlZmluZShbXCJyZXF1aXJlXCIsIFwiZXhwb3J0c1wiLCBcIkBzeW5jZnVzaW9uL2VqMi1iYXNlXCIsIFwiQGFuZ3VsYXIvY29yZVwiLCBcIi4vdXRpbFwiXSwgZnVuY3Rpb24gKHJlcXVpcmUsIGV4cG9ydHMsIGVqMl9iYXNlXzEsIGNvcmVfMSwgdXRpbF8xKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHZhciBDb21wb25lbnRCYXNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZnVuY3Rpb24gQ29tcG9uZW50QmFzZSgpIHtcbiAgICAgICAgfVxuICAgICAgICBDb21wb25lbnRCYXNlLnByb3RvdHlwZS5uZ09uSW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlID0ge307XG4gICAgICAgICAgICB0aGlzLnRhZ3MgPSB0aGlzLnRhZ3MgfHwgW107XG4gICAgICAgICAgICB0aGlzLmNvbXBsZXhUZW1wbGF0ZSA9IHRoaXMuY29tcGxleFRlbXBsYXRlIHx8IFtdO1xuICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzID0gW107XG4gICAgICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gdGhpcy50YWdzOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgIHZhciB0YWcgPSBfYVtfaV07XG4gICAgICAgICAgICAgICAgdmFyIHRhZ09iamVjdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2U6IGVqMl9iYXNlXzEuZ2V0VmFsdWUoJ2NoaWxkJyArIHRhZy5zdWJzdHJpbmcoMCwgMSkudG9VcHBlckNhc2UoKSArIHRhZy5zdWJzdHJpbmcoMSksIHRoaXMpLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiB0YWdcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0cy5wdXNoKHRhZ09iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgY29tcGxleFRlbXBsYXRlcyA9IE9iamVjdC5rZXlzKHRoaXMpO1xuICAgICAgICAgICAgY29tcGxleFRlbXBsYXRlcyA9IGNvbXBsZXhUZW1wbGF0ZXMuZmlsdGVyKGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gL1JlZiQvaS50ZXN0KHZhbCkgJiYgL1xcXy9pLnRlc3QodmFsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm9yICh2YXIgX2IgPSAwLCBjb21wbGV4VGVtcGxhdGVzXzEgPSBjb21wbGV4VGVtcGxhdGVzOyBfYiA8IGNvbXBsZXhUZW1wbGF0ZXNfMS5sZW5ndGg7IF9iKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgdGVtcE5hbWUgPSBjb21wbGV4VGVtcGxhdGVzXzFbX2JdO1xuICAgICAgICAgICAgICAgIHZhciBwcm9wTmFtZSA9IHRlbXBOYW1lLnJlcGxhY2UoJ1JlZicsICcnKTtcbiAgICAgICAgICAgICAgICB2YXIgdmFsID0ge307XG4gICAgICAgICAgICAgICAgZWoyX2Jhc2VfMS5zZXRWYWx1ZShwcm9wTmFtZS5yZXBsYWNlKCdfJywgJy4nKSwgZWoyX2Jhc2VfMS5nZXRWYWx1ZShwcm9wTmFtZSwgdGhpcyksIHZhbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9wZXJ0aWVzKHZhbCwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIENvbXBvbmVudEJhc2UucHJvdG90eXBlLm5nQWZ0ZXJWaWV3SW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5hcHBlbmRUbyhfdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBDb21wb25lbnRCYXNlLnByb3RvdHlwZS5uZ09uRGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jbGVhclRlbXBsYXRlKG51bGwpO1xuICAgICAgICB9O1xuICAgICAgICBDb21wb25lbnRCYXNlLnByb3RvdHlwZS5jbGVhclRlbXBsYXRlID0gZnVuY3Rpb24gKHRlbXBsYXRlTmFtZXMpIHtcbiAgICAgICAgICAgIHV0aWxfMS5jbGVhclRlbXBsYXRlKHRoaXMsIHRlbXBsYXRlTmFtZXMpO1xuICAgICAgICB9O1xuICAgICAgICA7XG4gICAgICAgIENvbXBvbmVudEJhc2UucHJvdG90eXBlLm5nQWZ0ZXJDb250ZW50Q2hlY2tlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLnRhZ09iamVjdHM7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRhZ09iamVjdCA9IF9hW19pXTtcbiAgICAgICAgICAgICAgICBpZiAoIWVqMl9iYXNlXzEuaXNVbmRlZmluZWQodGFnT2JqZWN0Lmluc3RhbmNlKSAmJiB0YWdPYmplY3QuaW5zdGFuY2UuaGFzQ2hhbmdlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGFnT2JqZWN0Lmluc3RhbmNlLmlzSW5pdENoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcm9wT2JqID0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wT2JqW3RhZ09iamVjdC5uYW1lXSA9IHRhZ09iamVjdC5pbnN0YW5jZS5nZXRQcm9wZXJ0aWVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFByb3BlcnRpZXMocHJvcE9iaiwgdGFnT2JqZWN0Lmluc3RhbmNlLmlzSW5pdENoYW5nZXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgX2IgPSAwLCBfYyA9IHRhZ09iamVjdC5pbnN0YW5jZS5saXN0OyBfYiA8IF9jLmxlbmd0aDsgX2IrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gX2NbX2JdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0Lmhhc0NoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGN1ckluZGV4ID0gdGFnT2JqZWN0Lmluc3RhbmNlLmxpc3QuaW5kZXhPZihsaXN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWoyX2Jhc2VfMS5nZXRWYWx1ZSh0YWdPYmplY3QubmFtZSwgdGhpcylbY3VySW5kZXhdLnNldFByb3BlcnRpZXMobGlzdC5nZXRQcm9wZXJ0aWVzKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgQ29tcG9uZW50QmFzZS5wcm90b3R5cGUucmVnaXN0ZXJFdmVudHMgPSBmdW5jdGlvbiAoZXZlbnRMaXN0KSB7XG4gICAgICAgICAgICB2YXIgbmdFdmVudHNFbWl0dGVyID0ge307XG4gICAgICAgICAgICBpZiAoZXZlbnRMaXN0ICYmIGV2ZW50TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBfaSA9IDAsIGV2ZW50TGlzdF8xID0gZXZlbnRMaXN0OyBfaSA8IGV2ZW50TGlzdF8xLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZXZlbnRfMSA9IGV2ZW50TGlzdF8xW19pXTtcbiAgICAgICAgICAgICAgICAgICAgbmdFdmVudHNFbWl0dGVyW2V2ZW50XzFdID0gbmV3IGNvcmVfMS5FdmVudEVtaXR0ZXIoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNldFByb3BlcnRpZXMobmdFdmVudHNFbWl0dGVyLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgQ29tcG9uZW50QmFzZS5wcm90b3R5cGUuYWRkVHdvV2F5ID0gZnVuY3Rpb24gKHByb3BMaXN0KSB7XG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICAgICAgdmFyIF9sb29wXzEgPSBmdW5jdGlvbiAocHJvcCkge1xuICAgICAgICAgICAgICAgIGVqMl9iYXNlXzEuZ2V0VmFsdWUocHJvcCwgdGhpc18xKTtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpc18xLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVqMl9iYXNlXzEuZ2V0VmFsdWUocHJvcCwgX3RoaXMucHJvcGVydGllcyk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKG5ld1ZhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9sZFZhbCA9IGVqMl9iYXNlXzEuZ2V0VmFsdWUocHJvcCwgX3RoaXMucHJvcGVydGllcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob2xkVmFsID09PSBuZXdWYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5zYXZlQ2hhbmdlcyhwcm9wLCBuZXdWYWwsIG9sZFZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlajJfYmFzZV8xLnNldFZhbHVlKHByb3AsIChlajJfYmFzZV8xLmlzTnVsbE9yVW5kZWZpbmVkKG5ld1ZhbCkgPyBudWxsIDogbmV3VmFsKSwgX3RoaXMucHJvcGVydGllcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlajJfYmFzZV8xLmdldFZhbHVlKHByb3AgKyAnQ2hhbmdlJywgX3RoaXMpLmVtaXQobmV3VmFsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGVqMl9iYXNlXzEuc2V0VmFsdWUocHJvcCArICdDaGFuZ2UnLCBuZXcgY29yZV8xLkV2ZW50RW1pdHRlcigpLCB0aGlzXzEpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciB0aGlzXzEgPSB0aGlzO1xuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBwcm9wTGlzdF8xID0gcHJvcExpc3Q7IF9pIDwgcHJvcExpc3RfMS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgcHJvcCA9IHByb3BMaXN0XzFbX2ldO1xuICAgICAgICAgICAgICAgIF9sb29wXzEocHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIENvbXBvbmVudEJhc2UucHJvdG90eXBlLnRyaWdnZXIgPSBmdW5jdGlvbiAoZXZlbnROYW1lLCBldmVudEFyZ3MpIHtcbiAgICAgICAgICAgIHZhciBldmVudE9iaiA9IGVqMl9iYXNlXzEuZ2V0VmFsdWUoZXZlbnROYW1lLCB0aGlzKTtcbiAgICAgICAgICAgIGlmICghZWoyX2Jhc2VfMS5pc1VuZGVmaW5lZChldmVudE9iaikpIHtcbiAgICAgICAgICAgICAgICBldmVudE9iai5uZXh0KGV2ZW50QXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgbG9jYWxFdmVudE9iaiA9IGVqMl9iYXNlXzEuZ2V0VmFsdWUoJ2xvY2FsJyArIGV2ZW50TmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGV2ZW50TmFtZS5zbGljZSgxKSwgdGhpcyk7XG4gICAgICAgICAgICBpZiAoIWVqMl9iYXNlXzEuaXNVbmRlZmluZWQobG9jYWxFdmVudE9iaikpIHtcbiAgICAgICAgICAgICAgICBsb2NhbEV2ZW50T2JqLmNhbGwodGhpcywgZXZlbnRBcmdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIENvbXBvbmVudEJhc2U7XG4gICAgfSgpKTtcbiAgICBleHBvcnRzLkNvbXBvbmVudEJhc2UgPSBDb21wb25lbnRCYXNlO1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9jb21wb25lbnQtYmFzZS5qc1xuLy8gbW9kdWxlIGlkID0gNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfNV9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiQGFuZ3VsYXIvY29yZVwiXG4vLyBtb2R1bGUgaWQgPSA1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImRlZmluZShbXCJyZXF1aXJlXCIsIFwiZXhwb3J0c1wiXSwgZnVuY3Rpb24gKHJlcXVpcmUsIGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdmFyIEZvcm1CYXNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZnVuY3Rpb24gRm9ybUJhc2UoKSB7XG4gICAgICAgIH1cbiAgICAgICAgRm9ybUJhc2UucHJvdG90eXBlLmxvY2FsQ2hhbmdlID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BhZ2F0ZUNoYW5nZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoZS52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIEZvcm1CYXNlLnByb3RvdHlwZS5yZWdpc3Rlck9uQ2hhbmdlID0gZnVuY3Rpb24gKHJlZ2lzdGVyRnVuY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gcmVnaXN0ZXJGdW5jdGlvbjtcbiAgICAgICAgfTtcbiAgICAgICAgRm9ybUJhc2UucHJvdG90eXBlLnJlZ2lzdGVyT25Ub3VjaGVkID0gZnVuY3Rpb24gKHJlZ2lzdGVyRnVuY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2ggPSByZWdpc3RlckZ1bmN0aW9uO1xuICAgICAgICB9O1xuICAgICAgICBGb3JtQmFzZS5wcm90b3R5cGUubmdBZnRlclZpZXdJbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKHRoaXMubmdFbGUubmF0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAnaW5wdXQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgdGhpcy5uZ09uRm9jdXMuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCB0aGlzLm5nT25CbHVyLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBGb3JtQmFzZS5wcm90b3R5cGUud3JpdGVWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9O1xuICAgICAgICBGb3JtQmFzZS5wcm90b3R5cGUubmdPbkZvY3VzID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMuZW1pdChlKTtcbiAgICAgICAgfTtcbiAgICAgICAgRm9ybUJhc2UucHJvdG90eXBlLm5nT25CbHVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHRoaXMuYmx1ci5lbWl0KGUpO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gRm9ybUJhc2U7XG4gICAgfSgpKTtcbiAgICBleHBvcnRzLkZvcm1CYXNlID0gRm9ybUJhc2U7XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2Zvcm0tYmFzZS5qc1xuLy8gbW9kdWxlIGlkID0gNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJkZWZpbmUoW1wicmVxdWlyZVwiLCBcImV4cG9ydHNcIiwgXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiLCBcIkBzeW5jZnVzaW9uL2VqMi1iYXNlXCJdLCBmdW5jdGlvbiAocmVxdWlyZSwgZXhwb3J0cywgZWoyX2Jhc2VfMSwgZWoyX2Jhc2VfMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB2YXIgc3RyaW5nQ29tcGlsZXIgPSBlajJfYmFzZV8xLmdldFRlbXBsYXRlRW5naW5lKCk7XG4gICAgZnVuY3Rpb24gY29tcGlsZSh0ZW1wbGF0ZUVsZSwgaGVscGVyKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGVtcGxhdGVFbGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nQ29tcGlsZXIodGVtcGxhdGVFbGUsIGhlbHBlcik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgY29udFJlZl8xID0gdGVtcGxhdGVFbGUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Ll92aWV3Q29udGFpbmVyUmVmO1xuICAgICAgICAgICAgdmFyIHByb3BOYW1lXzEgPSB0ZW1wbGF0ZUVsZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucHJvcE5hbWU7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICAgICAgICB2YXIgY29udGV4dCA9IHsgJGltcGxpY2l0OiBkYXRhIH07XG4gICAgICAgICAgICAgICAgdmFyIHZpZXdSZWYgPSBjb250UmVmXzEuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlRWxlLCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICB2YXIgdmlld0NvbGxlY3Rpb24gPSBlajJfYmFzZV8yLmdldFZhbHVlKCdjdXJyZW50SW5zdGFuY2UucmVnaXN0ZXJlZFRlbXBsYXRlJywgY29udFJlZl8xKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZpZXdDb2xsZWN0aW9uW3Byb3BOYW1lXzFdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICB2aWV3Q29sbGVjdGlvbltwcm9wTmFtZV8xXSA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2aWV3Q29sbGVjdGlvbltwcm9wTmFtZV8xXS5wdXNoKHZpZXdSZWYpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2aWV3UmVmLnJvb3ROb2RlcztcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXhwb3J0cy5jb21waWxlID0gY29tcGlsZTtcbiAgICBmdW5jdGlvbiBUZW1wbGF0ZShkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkge1xuICAgICAgICAgICAgdmFyIHByb3BlcnR5RGVzY3JpcHRvciA9IHtcbiAgICAgICAgICAgICAgICBzZXQ6IHNldHRlcihrZXkpLFxuICAgICAgICAgICAgICAgIGdldDogZ2V0dGVyKGtleSwgZGVmYXVsdFZhbHVlKSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgcHJvcGVydHlEZXNjcmlwdG9yKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZXhwb3J0cy5UZW1wbGF0ZSA9IFRlbXBsYXRlO1xuICAgIGZ1bmN0aW9uIHNldHRlcihrZXkpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgICAgICAgIGlmICh2YWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuX3ZpZXdDb250YWluZXJSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWY7XG4gICAgICAgICAgICB2YWwuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnByb3BOYW1lID0ga2V5O1xuICAgICAgICAgICAgZWoyX2Jhc2VfMi5zZXRWYWx1ZShrZXkgKyAnUmVmJywgdmFsLCB0aGlzKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0dGVyKGtleSwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gZWoyX2Jhc2VfMi5nZXRWYWx1ZShrZXkgKyAnUmVmJywgdGhpcykgfHwgZGVmYXVsdFZhbHVlO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBlajJfYmFzZV8xLnNldFRlbXBsYXRlRW5naW5lKHsgY29tcGlsZTogY29tcGlsZSB9KTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdGVtcGxhdGUuanNcbi8vIG1vZHVsZSBpZCA9IDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCA5NGY5ZmE1NDhkMGRiOWEzNDJhMyIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBsZXgtYXJyYXktYmFzZS5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiIiwid2VicGFjazovLy8uL3NyYy91dGlsLmpzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnQtYmFzZS5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJAYW5ndWxhci9jb3JlXCIiLCJ3ZWJwYWNrOi8vLy4vc3JjL2Zvcm0tYmFzZS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvdGVtcGxhdGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNWQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7O2lFQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQWtELGNBQWM7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUM7Ozs7Ozs7aUVDWEQ7QUFDQTtBQUNBLG1EQUFrRCxjQUFjO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE0QyxnQkFBZ0I7QUFDNUQ7QUFDQTtBQUNBO0FBQ0EsMkNBQTBDLG1DQUFtQztBQUM3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Es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RCxnRDs7Ozs7O2lFQ0FBO0FBQ0E7QUFDQSxtREFBa0QsY0FBYztBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBLEVBQUM7Ozs7Ozs7aUVDcENEO0FBQ0E7QUFDQSxtREFBa0QsY0FBYztBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFrQyxtQkFBbUI7QUFDckQsRUFBQyIsImZpbGUiOiJlajItbmctYmFzZS51bWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiKSwgcmVxdWlyZShcIkBhbmd1bGFyL2NvcmVcIikpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW1wiQHN5bmNmdXNpb24vZWoyLWJhc2VcIiwgXCJAYW5ndWxhci9jb3JlXCJdLCBmYWN0b3J5KTtcblx0ZWxzZSB7XG5cdFx0dmFyIGEgPSB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBmYWN0b3J5KHJlcXVpcmUoXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiKSwgcmVxdWlyZShcIkBhbmd1bGFyL2NvcmVcIikpIDogZmFjdG9yeShyb290W1wiQHN5bmNmdXNpb24vZWoyLWJhc2VcIl0sIHJvb3RbXCJAYW5ndWxhci9jb3JlXCJdKTtcblx0XHRmb3IodmFyIGkgaW4gYSkgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyA/IGV4cG9ydHMgOiByb290KVtpXSA9IGFbaV07XG5cdH1cbn0pKHRoaXMsIGZ1bmN0aW9uKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMl9fLCBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFXzVfXykge1xucmV0dXJuIFxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcblxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0ZXhwb3J0czoge30sXG4gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuIFx0XHRcdGxvYWRlZDogZmFsc2VcbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCA5NGY5ZmE1NDhkMGRiOWEzNDJhMyIsImRlZmluZShbXCJyZXF1aXJlXCIsIFwiZXhwb3J0c1wiLCBcIi4vY29tcGxleC1hcnJheS1iYXNlXCIsIFwiLi9jb21wb25lbnQtYmFzZVwiLCBcIi4vZm9ybS1iYXNlXCIsIFwiLi91dGlsXCIsIFwiLi90ZW1wbGF0ZVwiXSwgZnVuY3Rpb24gKHJlcXVpcmUsIGV4cG9ydHMsIGNvbXBsZXhfYXJyYXlfYmFzZV8xLCBjb21wb25lbnRfYmFzZV8xLCBmb3JtX2Jhc2VfMSwgdXRpbF8xLCB0ZW1wbGF0ZV8xKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgZnVuY3Rpb24gX19leHBvcnQobSkge1xuICAgICAgICBmb3IgKHZhciBwIGluIG0pIGlmICghZXhwb3J0cy5oYXNPd25Qcm9wZXJ0eShwKSkgZXhwb3J0c1twXSA9IG1bcF07XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBfX2V4cG9ydChjb21wbGV4X2FycmF5X2Jhc2VfMSk7XG4gICAgX19leHBvcnQoY29tcG9uZW50X2Jhc2VfMSk7XG4gICAgX19leHBvcnQoZm9ybV9iYXNlXzEpO1xuICAgIF9fZXhwb3J0KHV0aWxfMSk7XG4gICAgX19leHBvcnQodGVtcGxhdGVfMSk7XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSAwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImRlZmluZShbXCJyZXF1aXJlXCIsIFwiZXhwb3J0c1wiLCBcIkBzeW5jZnVzaW9uL2VqMi1iYXNlXCIsIFwiLi91dGlsXCJdLCBmdW5jdGlvbiAocmVxdWlyZSwgZXhwb3J0cywgZWoyX2Jhc2VfMSwgdXRpbF8xKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHZhciBDb21wbGV4QmFzZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZ1bmN0aW9uIENvbXBsZXhCYXNlKCkge1xuICAgICAgICAgICAgdGhpcy5oYXNDaGFuZ2VzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnByb3BDb2xsZWN0aW9uID0ge307XG4gICAgICAgICAgICB0aGlzLnRhZ3MgPSBbXTtcbiAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0cyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIENvbXBsZXhCYXNlLnByb3RvdHlwZS5uZ09uSW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJlZFRlbXBsYXRlID0ge307XG4gICAgICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gdGhpcy50YWdzOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgIHZhciB0YWcgPSBfYVtfaV07XG4gICAgICAgICAgICAgICAgdmFyIG9iakluc3RhbmNlID0gZWoyX2Jhc2VfMS5nZXRWYWx1ZSgnY2hpbGQnICsgdGFnLnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpICsgdGFnLnN1YnN0cmluZygxKSwgdGhpcyk7XG4gICAgICAgICAgICAgICAgaWYgKG9iakluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0cy5wdXNoKHsgaW5zdGFuY2U6IG9iakluc3RhbmNlLCBuYW1lOiB0YWcgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHRlbXBsYXRlUHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHRoaXMpO1xuICAgICAgICAgICAgdGVtcGxhdGVQcm9wZXJ0aWVzID0gdGVtcGxhdGVQcm9wZXJ0aWVzLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIC9SZWYkL2kudGVzdCh2YWwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmb3IgKHZhciBfYiA9IDAsIHRlbXBsYXRlUHJvcGVydGllc18xID0gdGVtcGxhdGVQcm9wZXJ0aWVzOyBfYiA8IHRlbXBsYXRlUHJvcGVydGllc18xLmxlbmd0aDsgX2IrKykge1xuICAgICAgICAgICAgICAgIHZhciB0ZW1wTmFtZSA9IHRlbXBsYXRlUHJvcGVydGllc18xW19iXTtcbiAgICAgICAgICAgICAgICB2YXIgcHJvcE5hbWUgPSB0ZW1wTmFtZS5yZXBsYWNlKCdSZWYnLCAnJyk7XG4gICAgICAgICAgICAgICAgZWoyX2Jhc2VfMS5zZXRWYWx1ZShwcm9wTmFtZS5yZXBsYWNlKCdfJywgJy4nKSwgZWoyX2Jhc2VfMS5nZXRWYWx1ZShwcm9wTmFtZSwgdGhpcyksIHRoaXMucHJvcENvbGxlY3Rpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBDb21wbGV4QmFzZS5wcm90b3R5cGUubmdPbkNoYW5nZXMgPSBmdW5jdGlvbiAoY2hhbmdlcykge1xuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBfYSA9IE9iamVjdC5rZXlzKGNoYW5nZXMpOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgIHZhciBwcm9wTmFtZSA9IF9hW19pXTtcbiAgICAgICAgICAgICAgICB2YXIgY2hhbmdlZFZhbCA9IGNoYW5nZXNbcHJvcE5hbWVdO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcENvbGxlY3Rpb25bcHJvcE5hbWVdID0gY2hhbmdlZFZhbC5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhhc0NoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICBDb21wbGV4QmFzZS5wcm90b3R5cGUuY2xlYXJUZW1wbGF0ZSA9IGZ1bmN0aW9uICh0ZW1wbGF0ZU5hbWVzKSB7XG4gICAgICAgICAgICB1dGlsXzEuY2xlYXJUZW1wbGF0ZSh0aGlzLCB0ZW1wbGF0ZU5hbWVzKTtcbiAgICAgICAgfTtcbiAgICAgICAgO1xuICAgICAgICBDb21wbGV4QmFzZS5wcm90b3R5cGUuZ2V0UHJvcGVydGllcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLnRhZ09iamVjdHM7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRhZ09iamVjdCA9IF9hW19pXTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BDb2xsZWN0aW9uW3RhZ09iamVjdC5uYW1lXSA9IHRhZ09iamVjdC5pbnN0YW5jZS5nZXRQcm9wZXJ0aWVzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9wQ29sbGVjdGlvbjtcbiAgICAgICAgfTtcbiAgICAgICAgQ29tcGxleEJhc2UucHJvdG90eXBlLmlzQ2hhbmdlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLmhhc0NoYW5nZXM7XG4gICAgICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gdGhpcy50YWdPYmplY3RzOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgIHZhciBpdGVtID0gX2FbX2ldO1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCB8fCBpdGVtLmluc3RhbmNlLmhhc0NoYW5nZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9O1xuICAgICAgICBDb21wbGV4QmFzZS5wcm90b3R5cGUubmdBZnRlckNvbnRlbnRDaGVja2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5oYXNDaGFuZ2VzID0gdGhpcy5pc0NoYW5nZWQoKTtcbiAgICAgICAgICAgIHZhciB0ZW1wbGF0ZVByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyh0aGlzKTtcbiAgICAgICAgICAgIHRlbXBsYXRlUHJvcGVydGllcyA9IHRlbXBsYXRlUHJvcGVydGllcy5maWx0ZXIoZnVuY3Rpb24gKHZhbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAvUmVmJC9pLnRlc3QodmFsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBDb21wbGV4QmFzZS5wcm90b3R5cGUubmdBZnRlclZpZXdDaGVja2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5oYXNDaGFuZ2VzID0gZmFsc2U7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBDb21wbGV4QmFzZTtcbiAgICB9KCkpO1xuICAgIGV4cG9ydHMuQ29tcGxleEJhc2UgPSBDb21wbGV4QmFzZTtcbiAgICB2YXIgQXJyYXlCYXNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZnVuY3Rpb24gQXJyYXlCYXNlKHByb3BlcnR5TmFtZSkge1xuICAgICAgICAgICAgdGhpcy5saXN0ID0gW107XG4gICAgICAgICAgICB0aGlzLmhhc0NoYW5nZXMgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xuICAgICAgICB9XG4gICAgICAgIEFycmF5QmFzZS5wcm90b3R5cGUubmdPbkluaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLmlzSW5pdENoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICBBcnJheUJhc2UucHJvdG90eXBlLm5nQWZ0ZXJDb250ZW50SW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSAwO1xuICAgICAgICAgICAgdGhpcy5saXN0ID0gdGhpcy5jaGlsZHJlbi5tYXAoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQuaW5kZXggPSBpbmRleCsrO1xuICAgICAgICAgICAgICAgIGNoaWxkLnByb3BlcnR5ID0gX3RoaXMucHJvcGVydHlOYW1lO1xuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5oYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgQXJyYXlCYXNlLnByb3RvdHlwZS5nZXRQcm9wZXJ0aWVzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG9ubHlQcm9wID0gW107XG4gICAgICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gdGhpcy5saXN0OyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgIHZhciBpdGVtID0gX2FbX2ldO1xuICAgICAgICAgICAgICAgIG9ubHlQcm9wLnB1c2goaXRlbS5nZXRQcm9wZXJ0aWVzKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9ubHlQcm9wO1xuICAgICAgICB9O1xuICAgICAgICBBcnJheUJhc2UucHJvdG90eXBlLmlzQ2hhbmdlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLmxpc3Q7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSBfYVtfaV07XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0IHx8IGl0ZW0uaGFzQ2hhbmdlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMubGlzdC5sZW5ndGggJiYgcmVzdWx0O1xuICAgICAgICB9O1xuICAgICAgICBBcnJheUJhc2UucHJvdG90eXBlLmNsZWFyVGVtcGxhdGUgPSBmdW5jdGlvbiAodGVtcGxhdGVOYW1lcykge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLmxpc3Q7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSBfYVtfaV07XG4gICAgICAgICAgICAgICAgaXRlbS5jbGVhclRlbXBsYXRlKHRlbXBsYXRlTmFtZXMgJiYgdGVtcGxhdGVOYW1lcy5tYXAoZnVuY3Rpb24gKHZhbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChfdGhpcy5wcm9wZXJ0eU5hbWUpLnRlc3QodmFsKSA/IHZhbC5yZXBsYWNlKF90aGlzLnByb3BlcnR5TmFtZSArICcuJywgJycpIDogdmFsO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgQXJyYXlCYXNlLnByb3RvdHlwZS5uZ0FmdGVyQ29udGVudENoZWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLmhhc0NoYW5nZXMgPSB0aGlzLmlzQ2hhbmdlZCgpO1xuICAgICAgICB9O1xuICAgICAgICBBcnJheUJhc2UucHJvdG90eXBlLm5nQWZ0ZXJWaWV3SW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuaXNJbml0Q2hhbmdlcyA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gQXJyYXlCYXNlO1xuICAgIH0oKSk7XG4gICAgZXhwb3J0cy5BcnJheUJhc2UgPSBBcnJheUJhc2U7XG59KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2NvbXBsZXgtYXJyYXktYmFzZS5qc1xuLy8gbW9kdWxlIGlkID0gMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMl9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiQHN5bmNmdXNpb24vZWoyLWJhc2VcIlxuLy8gbW9kdWxlIGlkID0gMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJkZWZpbmUoW1wicmVxdWlyZVwiLCBcImV4cG9ydHNcIl0sIGZ1bmN0aW9uIChyZXF1aXJlLCBleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIGZ1bmN0aW9uIGFwcGx5TWl4aW5zKGRlcml2ZWRDbGFzcywgYmFzZUNsYXNzKSB7XG4gICAgICAgIGJhc2VDbGFzcy5mb3JFYWNoKGZ1bmN0aW9uIChiYXNlQ2xhc3MpIHtcbiAgICAgICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGJhc2VDbGFzcy5wcm90b3R5cGUpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgICAgICBkZXJpdmVkQ2xhc3MucHJvdG90eXBlW25hbWVdID0gYmFzZUNsYXNzLnByb3RvdHlwZVtuYW1lXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZXhwb3J0cy5hcHBseU1peGlucyA9IGFwcGx5TWl4aW5zO1xuICAgIGZ1bmN0aW9uIGNsZWFyVGVtcGxhdGUoX3RoaXMsIHRlbXBsYXRlTmFtZXMpIHtcbiAgICAgICAgdmFyIHJlZ1RlbXBsYXRlcyA9IE9iamVjdC5rZXlzKF90aGlzLnJlZ2lzdGVyZWRUZW1wbGF0ZSk7XG4gICAgICAgIGlmIChyZWdUZW1wbGF0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgcmVnUHJvcGVydGllcyA9IHRlbXBsYXRlTmFtZXMgJiYgdGVtcGxhdGVOYW1lcy5maWx0ZXIoZnVuY3Rpb24gKHZhbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoL1xcLi9nLnRlc3QodmFsKSA/IGZhbHNlIDogdHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSAocmVnUHJvcGVydGllcyAmJiByZWdQcm9wZXJ0aWVzIHx8IHJlZ1RlbXBsYXRlcyk7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlZ2lzdGVyZWRUZW1wbGF0ZSA9IF9hW19pXTtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBfYiA9IDAsIF9jID0gX3RoaXMucmVnaXN0ZXJlZFRlbXBsYXRlW3JlZ2lzdGVyZWRUZW1wbGF0ZV07IF9iIDwgX2MubGVuZ3RoOyBfYisrKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBydCA9IF9jW19iXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFydC5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJ0LmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWxldGUgX3RoaXMucmVnaXN0ZXJlZFRlbXBsYXRlW3JlZ2lzdGVyZWRUZW1wbGF0ZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9sb29wXzEgPSBmdW5jdGlvbiAodGFnT2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAodGFnT2JqZWN0Lmluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgdGFnT2JqZWN0Lmluc3RhbmNlLmNsZWFyVGVtcGxhdGUoKHRlbXBsYXRlTmFtZXMgJiYgdGVtcGxhdGVOYW1lcy5maWx0ZXIoZnVuY3Rpb24gKHZhbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKG5ldyBSZWdFeHAodGFnT2JqZWN0Lm5hbWUpLnRlc3QodmFsKSA/IHRydWUgOiBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgZm9yICh2YXIgX2QgPSAwLCBfZSA9IF90aGlzLnRhZ09iamVjdHM7IF9kIDwgX2UubGVuZ3RoOyBfZCsrKSB7XG4gICAgICAgICAgICB2YXIgdGFnT2JqZWN0ID0gX2VbX2RdO1xuICAgICAgICAgICAgX2xvb3BfMSh0YWdPYmplY3QpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGV4cG9ydHMuY2xlYXJUZW1wbGF0ZSA9IGNsZWFyVGVtcGxhdGU7XG4gICAgZnVuY3Rpb24gc2V0VmFsdWUobmFtZVNwYWNlLCB2YWx1ZSwgb2JqZWN0KSB7XG4gICAgICAgIHZhciBrZXlzID0gbmFtZVNwYWNlLnNwbGl0KCcuJyk7XG4gICAgICAgIHZhciBmcm9tT2JqID0gb2JqZWN0IHx8IHt9O1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgICAgaWYgKGkgKyAxID09PSBrZXlzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGZyb21PYmpba2V5XSA9IHZhbHVlID09PSB1bmRlZmluZWQgPyB7fSA6IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZnJvbU9ialtrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBmcm9tT2JqW2tleV0gPSB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZyb21PYmogPSBmcm9tT2JqW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZyb21PYmo7XG4gICAgfVxuICAgIGV4cG9ydHMuc2V0VmFsdWUgPSBzZXRWYWx1ZTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvdXRpbC5qc1xuLy8gbW9kdWxlIGlkID0gM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJkZWZpbmUoW1wicmVxdWlyZVwiLCBcImV4cG9ydHNcIiwgXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiLCBcIkBhbmd1bGFyL2NvcmVcIiwgXCIuL3V0aWxcIl0sIGZ1bmN0aW9uIChyZXF1aXJlLCBleHBvcnRzLCBlajJfYmFzZV8xLCBjb3JlXzEsIHV0aWxfMSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB2YXIgQ29tcG9uZW50QmFzZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZ1bmN0aW9uIENvbXBvbmVudEJhc2UoKSB7XG4gICAgICAgIH1cbiAgICAgICAgQ29tcG9uZW50QmFzZS5wcm90b3R5cGUubmdPbkluaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyZWRUZW1wbGF0ZSA9IHt9O1xuICAgICAgICAgICAgdGhpcy50YWdzID0gdGhpcy50YWdzIHx8IFtdO1xuICAgICAgICAgICAgdGhpcy5jb21wbGV4VGVtcGxhdGUgPSB0aGlzLmNvbXBsZXhUZW1wbGF0ZSB8fCBbXTtcbiAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0cyA9IFtdO1xuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBfYSA9IHRoaXMudGFnczsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFnID0gX2FbX2ldO1xuICAgICAgICAgICAgICAgIHZhciB0YWdPYmplY3QgPSB7XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlOiBlajJfYmFzZV8xLmdldFZhbHVlKCdjaGlsZCcgKyB0YWcuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB0YWcuc3Vic3RyaW5nKDEpLCB0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGFnXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhZ09iamVjdHMucHVzaCh0YWdPYmplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGNvbXBsZXhUZW1wbGF0ZXMgPSBPYmplY3Qua2V5cyh0aGlzKTtcbiAgICAgICAgICAgIGNvbXBsZXhUZW1wbGF0ZXMgPSBjb21wbGV4VGVtcGxhdGVzLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIC9SZWYkL2kudGVzdCh2YWwpICYmIC9cXF8vaS50ZXN0KHZhbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZvciAodmFyIF9iID0gMCwgY29tcGxleFRlbXBsYXRlc18xID0gY29tcGxleFRlbXBsYXRlczsgX2IgPCBjb21wbGV4VGVtcGxhdGVzXzEubGVuZ3RoOyBfYisrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRlbXBOYW1lID0gY29tcGxleFRlbXBsYXRlc18xW19iXTtcbiAgICAgICAgICAgICAgICB2YXIgcHJvcE5hbWUgPSB0ZW1wTmFtZS5yZXBsYWNlKCdSZWYnLCAnJyk7XG4gICAgICAgICAgICAgICAgdmFyIHZhbCA9IHt9O1xuICAgICAgICAgICAgICAgIGVqMl9iYXNlXzEuc2V0VmFsdWUocHJvcE5hbWUucmVwbGFjZSgnXycsICcuJyksIGVqMl9iYXNlXzEuZ2V0VmFsdWUocHJvcE5hbWUsIHRoaXMpLCB2YWwpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJvcGVydGllcyh2YWwsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBDb21wb25lbnRCYXNlLnByb3RvdHlwZS5uZ0FmdGVyVmlld0luaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuYXBwZW5kVG8oX3RoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgQ29tcG9uZW50QmFzZS5wcm90b3R5cGUubmdPbkRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJUZW1wbGF0ZShudWxsKTtcbiAgICAgICAgfTtcbiAgICAgICAgQ29tcG9uZW50QmFzZS5wcm90b3R5cGUuY2xlYXJUZW1wbGF0ZSA9IGZ1bmN0aW9uICh0ZW1wbGF0ZU5hbWVzKSB7XG4gICAgICAgICAgICB1dGlsXzEuY2xlYXJUZW1wbGF0ZSh0aGlzLCB0ZW1wbGF0ZU5hbWVzKTtcbiAgICAgICAgfTtcbiAgICAgICAgO1xuICAgICAgICBDb21wb25lbnRCYXNlLnByb3RvdHlwZS5uZ0FmdGVyQ29udGVudENoZWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gdGhpcy50YWdPYmplY3RzOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgIHZhciB0YWdPYmplY3QgPSBfYVtfaV07XG4gICAgICAgICAgICAgICAgaWYgKCFlajJfYmFzZV8xLmlzVW5kZWZpbmVkKHRhZ09iamVjdC5pbnN0YW5jZSkgJiYgdGFnT2JqZWN0Lmluc3RhbmNlLmhhc0NoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhZ09iamVjdC5pbnN0YW5jZS5pc0luaXRDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcE9iaiA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcE9ialt0YWdPYmplY3QubmFtZV0gPSB0YWdPYmplY3QuaW5zdGFuY2UuZ2V0UHJvcGVydGllcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9wZXJ0aWVzKHByb3BPYmosIHRhZ09iamVjdC5pbnN0YW5jZS5pc0luaXRDaGFuZ2VzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIF9iID0gMCwgX2MgPSB0YWdPYmplY3QuaW5zdGFuY2UubGlzdDsgX2IgPCBfYy5sZW5ndGg7IF9iKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IF9jW19iXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdC5oYXNDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJJbmRleCA9IHRhZ09iamVjdC5pbnN0YW5jZS5saXN0LmluZGV4T2YobGlzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVqMl9iYXNlXzEuZ2V0VmFsdWUodGFnT2JqZWN0Lm5hbWUsIHRoaXMpW2N1ckluZGV4XS5zZXRQcm9wZXJ0aWVzKGxpc3QuZ2V0UHJvcGVydGllcygpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIENvbXBvbmVudEJhc2UucHJvdG90eXBlLnJlZ2lzdGVyRXZlbnRzID0gZnVuY3Rpb24gKGV2ZW50TGlzdCkge1xuICAgICAgICAgICAgdmFyIG5nRXZlbnRzRW1pdHRlciA9IHt9O1xuICAgICAgICAgICAgaWYgKGV2ZW50TGlzdCAmJiBldmVudExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBldmVudExpc3RfMSA9IGV2ZW50TGlzdDsgX2kgPCBldmVudExpc3RfMS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGV2ZW50XzEgPSBldmVudExpc3RfMVtfaV07XG4gICAgICAgICAgICAgICAgICAgIG5nRXZlbnRzRW1pdHRlcltldmVudF8xXSA9IG5ldyBjb3JlXzEuRXZlbnRFbWl0dGVyKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9wZXJ0aWVzKG5nRXZlbnRzRW1pdHRlciwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIENvbXBvbmVudEJhc2UucHJvdG90eXBlLmFkZFR3b1dheSA9IGZ1bmN0aW9uIChwcm9wTGlzdCkge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgICAgICAgICAgICBlajJfYmFzZV8xLmdldFZhbHVlKHByb3AsIHRoaXNfMSk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXNfMSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlajJfYmFzZV8xLmdldFZhbHVlKHByb3AsIF90aGlzLnByb3BlcnRpZXMpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uIChuZXdWYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvbGRWYWwgPSBlajJfYmFzZV8xLmdldFZhbHVlKHByb3AsIF90aGlzLnByb3BlcnRpZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9sZFZhbCA9PT0gbmV3VmFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuc2F2ZUNoYW5nZXMocHJvcCwgbmV3VmFsLCBvbGRWYWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWoyX2Jhc2VfMS5zZXRWYWx1ZShwcm9wLCAoZWoyX2Jhc2VfMS5pc051bGxPclVuZGVmaW5lZChuZXdWYWwpID8gbnVsbCA6IG5ld1ZhbCksIF90aGlzLnByb3BlcnRpZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWoyX2Jhc2VfMS5nZXRWYWx1ZShwcm9wICsgJ0NoYW5nZScsIF90aGlzKS5lbWl0KG5ld1ZhbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBlajJfYmFzZV8xLnNldFZhbHVlKHByb3AgKyAnQ2hhbmdlJywgbmV3IGNvcmVfMS5FdmVudEVtaXR0ZXIoKSwgdGhpc18xKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2YXIgdGhpc18xID0gdGhpcztcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgcHJvcExpc3RfMSA9IHByb3BMaXN0OyBfaSA8IHByb3BMaXN0XzEubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHByb3AgPSBwcm9wTGlzdF8xW19pXTtcbiAgICAgICAgICAgICAgICBfbG9vcF8xKHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBDb21wb25lbnRCYXNlLnByb3RvdHlwZS50cmlnZ2VyID0gZnVuY3Rpb24gKGV2ZW50TmFtZSwgZXZlbnRBcmdzKSB7XG4gICAgICAgICAgICB2YXIgZXZlbnRPYmogPSBlajJfYmFzZV8xLmdldFZhbHVlKGV2ZW50TmFtZSwgdGhpcyk7XG4gICAgICAgICAgICBpZiAoIWVqMl9iYXNlXzEuaXNVbmRlZmluZWQoZXZlbnRPYmopKSB7XG4gICAgICAgICAgICAgICAgZXZlbnRPYmoubmV4dChldmVudEFyZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGxvY2FsRXZlbnRPYmogPSBlajJfYmFzZV8xLmdldFZhbHVlKCdsb2NhbCcgKyBldmVudE5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBldmVudE5hbWUuc2xpY2UoMSksIHRoaXMpO1xuICAgICAgICAgICAgaWYgKCFlajJfYmFzZV8xLmlzVW5kZWZpbmVkKGxvY2FsRXZlbnRPYmopKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxFdmVudE9iai5jYWxsKHRoaXMsIGV2ZW50QXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBDb21wb25lbnRCYXNlO1xuICAgIH0oKSk7XG4gICAgZXhwb3J0cy5Db21wb25lbnRCYXNlID0gQ29tcG9uZW50QmFzZTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvY29tcG9uZW50LWJhc2UuanNcbi8vIG1vZHVsZSBpZCA9IDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFXzVfXztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcIkBhbmd1bGFyL2NvcmVcIlxuLy8gbW9kdWxlIGlkID0gNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJkZWZpbmUoW1wicmVxdWlyZVwiLCBcImV4cG9ydHNcIl0sIGZ1bmN0aW9uIChyZXF1aXJlLCBleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHZhciBGb3JtQmFzZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZ1bmN0aW9uIEZvcm1CYXNlKCkge1xuICAgICAgICB9XG4gICAgICAgIEZvcm1CYXNlLnByb3RvdHlwZS5sb2NhbENoYW5nZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wYWdhdGVDaGFuZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKGUuY2hlY2tlZCB8fCBlLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgRm9ybUJhc2UucHJvdG90eXBlLnJlZ2lzdGVyT25DaGFuZ2UgPSBmdW5jdGlvbiAocmVnaXN0ZXJGdW5jdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSByZWdpc3RlckZ1bmN0aW9uO1xuICAgICAgICB9O1xuICAgICAgICBGb3JtQmFzZS5wcm90b3R5cGUucmVnaXN0ZXJPblRvdWNoZWQgPSBmdW5jdGlvbiAocmVnaXN0ZXJGdW5jdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaCA9IHJlZ2lzdGVyRnVuY3Rpb247XG4gICAgICAgIH07XG4gICAgICAgIEZvcm1CYXNlLnByb3RvdHlwZS5uZ0FmdGVyVmlld0luaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGVuZFRvKHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAodGhpcy5uZ0VsZS5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICdpbnB1dCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLm5nT25Gb2N1cy5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMubmdPbkJsdXIuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIEZvcm1CYXNlLnByb3RvdHlwZS53cml0ZVZhbHVlID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH07XG4gICAgICAgIEZvcm1CYXNlLnByb3RvdHlwZS5uZ09uRm9jdXMgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1cy5lbWl0KGUpO1xuICAgICAgICB9O1xuICAgICAgICBGb3JtQmFzZS5wcm90b3R5cGUubmdPbkJsdXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdGhpcy5ibHVyLmVtaXQoZSk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBGb3JtQmFzZTtcbiAgICB9KCkpO1xuICAgIGV4cG9ydHMuRm9ybUJhc2UgPSBGb3JtQmFzZTtcbn0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvZm9ybS1iYXNlLmpzXG4vLyBtb2R1bGUgaWQgPSA2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImRlZmluZShbXCJyZXF1aXJlXCIsIFwiZXhwb3J0c1wiLCBcIkBzeW5jZnVzaW9uL2VqMi1iYXNlXCIsIFwiQHN5bmNmdXNpb24vZWoyLWJhc2VcIl0sIGZ1bmN0aW9uIChyZXF1aXJlLCBleHBvcnRzLCBlajJfYmFzZV8xLCBlajJfYmFzZV8yKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHZhciBzdHJpbmdDb21waWxlciA9IGVqMl9iYXNlXzEuZ2V0VGVtcGxhdGVFbmdpbmUoKTtcbiAgICBmdW5jdGlvbiBjb21waWxlKHRlbXBsYXRlRWxlLCBoZWxwZXIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0ZW1wbGF0ZUVsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdDb21waWxlcih0ZW1wbGF0ZUVsZSwgaGVscGVyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBjb250UmVmXzEgPSB0ZW1wbGF0ZUVsZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuX3ZpZXdDb250YWluZXJSZWY7XG4gICAgICAgICAgICB2YXIgcHJvcE5hbWVfMSA9IHRlbXBsYXRlRWxlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wcm9wTmFtZTtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIHZhciBjb250ZXh0ID0geyAkaW1wbGljaXQ6IGRhdGEgfTtcbiAgICAgICAgICAgICAgICB2YXIgdmlld1JlZiA9IGNvbnRSZWZfMS5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGVFbGUsIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgIHZhciB2aWV3Q29sbGVjdGlvbiA9IGVqMl9iYXNlXzIuZ2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZS5yZWdpc3RlcmVkVGVtcGxhdGUnLCBjb250UmVmXzEpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygdmlld0NvbGxlY3Rpb25bcHJvcE5hbWVfMV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXdDb2xsZWN0aW9uW3Byb3BOYW1lXzFdID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZpZXdDb2xsZWN0aW9uW3Byb3BOYW1lXzFdLnB1c2godmlld1JlZik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZpZXdSZWYucm9vdE5vZGVzO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBleHBvcnRzLmNvbXBpbGUgPSBjb21waWxlO1xuICAgIGZ1bmN0aW9uIFRlbXBsYXRlKGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7XG4gICAgICAgICAgICB2YXIgcHJvcGVydHlEZXNjcmlwdG9yID0ge1xuICAgICAgICAgICAgICAgIHNldDogc2V0dGVyKGtleSksXG4gICAgICAgICAgICAgICAgZ2V0OiBnZXR0ZXIoa2V5LCBkZWZhdWx0VmFsdWUpLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBwcm9wZXJ0eURlc2NyaXB0b3IpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBleHBvcnRzLlRlbXBsYXRlID0gVGVtcGxhdGU7XG4gICAgZnVuY3Rpb24gc2V0dGVyKGtleSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbCkge1xuICAgICAgICAgICAgaWYgKHZhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFsLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5fdmlld0NvbnRhaW5lclJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZjtcbiAgICAgICAgICAgIHZhbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucHJvcE5hbWUgPSBrZXk7XG4gICAgICAgICAgICBlajJfYmFzZV8yLnNldFZhbHVlKGtleSArICdSZWYnLCB2YWwsIHRoaXMpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXR0ZXIoa2V5LCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBlajJfYmFzZV8yLmdldFZhbHVlKGtleSArICdSZWYnLCB0aGlzKSB8fCBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH07XG4gICAgfVxuICAgIGVqMl9iYXNlXzEuc2V0VGVtcGxhdGVFbmdpbmUoeyBjb21waWxlOiBjb21waWxlIH0pO1xufSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy90ZW1wbGF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9

4

dist/ej2-ng-base.umd.min.js
/*!
* filename: ej2-ng-base.umd.min.js
* version : 1.0.14
* version : 1.0.16
* Copyright Syncfusion Inc. 2001 - 2017. All rights reserved.

@@ -11,2 +11,2 @@ * Use of this code is subject to the terms of our license.

!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@syncfusion/ej2-base"),require("@angular/core"));else if("function"==typeof define&&define.amd)define(["@syncfusion/ej2-base","@angular/core"],t);else{var n="object"==typeof exports?t(require("@syncfusion/ej2-base"),require("@angular/core")):t(e["@syncfusion/ej2-base"],e["@angular/core"]);for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){var r,i;r=[n,t,n(1),n(4),n(6),n(3),n(7)],void 0!==(i=function(e,t,n,r,i,o,s){"use strict";function a(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,"__esModule",{value:!0}),a(n),a(r),a(i),a(o),a(s)}.apply(t,r))&&(e.exports=i)},function(e,t,n){var r,i;r=[n,t,n(2),n(3)],void 0!==(i=function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this.hasChanges=!1,this.propCollection={},this.tags=[],this.tagObjects=[]}return e.prototype.ngOnInit=function(){this.registeredTemplate={};for(var e=0,t=this.tags;e<t.length;e++){var r=t[e],i=n.getValue("child"+r.substring(0,1).toUpperCase()+r.substring(1),this);i&&this.tagObjects.push({instance:i,name:r})}var o=Object.keys(this);o=o.filter(function(e){return/Ref$/i.test(e)});for(var s=0,a=o;s<a.length;s++){var p=a[s],u=p.replace("Ref","");n.setValue(u.replace("_","."),n.getValue(u,this),this.propCollection)}},e.prototype.ngOnChanges=function(e){for(var t=0,n=Object.keys(e);t<n.length;t++){var r=n[t],i=e[r];this.propCollection[r]=i.currentValue}this.hasChanges=!0},e.prototype.clearTemplate=function(e){r.clearTemplate(this,e)},e.prototype.getProperties=function(){for(var e=0,t=this.tagObjects;e<t.length;e++){var n=t[e];this.propCollection[n.name]=n.instance.getProperties()}return this.propCollection},e.prototype.isChanged=function(){for(var e=this.hasChanges,t=0,n=this.tagObjects;t<n.length;t++){var r=n[t];e=e||r.instance.hasChanges}return e},e.prototype.ngAfterContentChecked=function(){this.hasChanges=this.isChanged();var e=Object.keys(this);e=e.filter(function(e){return/Ref$/i.test(e)})},e.prototype.ngAfterViewChecked=function(){this.hasChanges=!1},e}();t.ComplexBase=i;var o=function(){function e(e){this.list=[],this.hasChanges=!1,this.propertyName=e}return e.prototype.ngOnInit=function(){this.isInitChanges=!0},e.prototype.ngAfterContentInit=function(){var e=this,t=0;this.list=this.children.map(function(n){return n.index=t++,n.property=e.propertyName,n}),this.hasChanges=!0},e.prototype.getProperties=function(){for(var e=[],t=0,n=this.list;t<n.length;t++){var r=n[t];e.push(r.getProperties())}return e},e.prototype.isChanged=function(){for(var e=!1,t=0,n=this.list;t<n.length;t++){var r=n[t];e=e||r.hasChanges}return!!this.list.length&&e},e.prototype.clearTemplate=function(e){for(var t=this,n=0,r=this.list;n<r.length;n++){r[n].clearTemplate(e&&e.map(function(e){return new RegExp(t.propertyName).test(e)?e.replace(t.propertyName+".",""):e}))}},e.prototype.ngAfterContentChecked=function(){this.hasChanges=this.isChanged()},e.prototype.ngAfterViewInit=function(){this.isInitChanges=!1},e}();t.ArrayBase=o}.apply(t,r))&&(e.exports=i)},function(t,n){t.exports=e},function(e,t,n){var r,i;r=[n,t],void 0!==(i=function(e,t){"use strict";function n(e,t){t.forEach(function(t){Object.getOwnPropertyNames(t.prototype).forEach(function(n){e.prototype[n]=t.prototype[n]})})}function r(e,t){var n=Object.keys(e.registeredTemplate);if(n.length)for(var r=t&&t.filter(function(e){return!/\./g.test(e)}),i=0,o=r&&r||n;i<o.length;i++){for(var s=o[i],a=0,p=e.registeredTemplate[s];a<p.length;a++){var u=p[a];u.destroy()}delete e.registeredTemplate[s]}for(var c=0,l=e.tagObjects;c<l.length;c++){var f=l[c];!function(e){e.instance&&e.instance.clearTemplate(t&&t.filter(function(t){return!!new RegExp(e.name).test(t)}))}(f)}}function i(e,t,n){for(var r=e.split("."),i=n||{},o=0;o<r.length;o++){var s=r[o];o+1===r.length?i[s]=void 0===t?{}:t:void 0===i[s]&&(i[s]={}),i=i[s]}return i}Object.defineProperty(t,"__esModule",{value:!0}),t.applyMixins=n,t.clearTemplate=r,t.setValue=i}.apply(t,r))&&(e.exports=i)},function(e,t,n){var r,i;r=[n,t,n(2),n(5),n(3)],void 0!==(i=function(e,t,n,r,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(){}return e.prototype.ngOnInit=function(){this.registeredTemplate={},this.tags=this.tags||[],this.complexTemplate=this.complexTemplate||[],this.tagObjects=[];for(var e=0,t=this.tags;e<t.length;e++){var r=t[e],i={instance:n.getValue("child"+r.substring(0,1).toUpperCase()+r.substring(1),this),name:r};this.tagObjects.push(i)}var o=Object.keys(this);o=o.filter(function(e){return/Ref$/i.test(e)&&/\_/i.test(e)});for(var s=0,a=o;s<a.length;s++){var p=a[s],u=p.replace("Ref",""),c={};n.setValue(u.replace("_","."),n.getValue(u,this),c),this.setProperties(c,!0)}},e.prototype.ngAfterViewInit=function(){var e=this;setTimeout(function(){e.appendTo(e.element)})},e.prototype.ngOnDestroy=function(){this.destroy(),this.clearTemplate(null)},e.prototype.clearTemplate=function(e){i.clearTemplate(this,e)},e.prototype.ngAfterContentChecked=function(){for(var e=0,t=this.tagObjects;e<t.length;e++){var r=t[e];if(!n.isUndefined(r.instance)&&r.instance.hasChanges)if(r.instance.isInitChanges){var i={};i[r.name]=r.instance.getProperties(),this.setProperties(i,r.instance.isInitChanges)}else for(var o=0,s=r.instance.list;o<s.length;o++){var a=s[o];if(a.hasChanges){var p=r.instance.list.indexOf(a);n.getValue(r.name,this)[p].setProperties(a.getProperties())}}}},e.prototype.registerEvents=function(e){var t={};if(e&&e.length){for(var n=0,i=e;n<i.length;n++){t[i[n]]=new r.EventEmitter(!1)}this.setProperties(t,!0)}},e.prototype.addTwoWay=function(e){for(var t=this,i=this,o=0,s=e;o<s.length;o++){var a=s[o];!function(e){n.getValue(e,i),Object.defineProperty(i,e,{get:function(){return n.getValue(e,t.properties)},set:function(r){var i=n.getValue(e,t.properties);i!==r&&(t.saveChanges(e,r,i),n.setValue(e,n.isNullOrUndefined(r)?null:r,t.properties),n.getValue(e+"Change",t).emit(r))}}),n.setValue(e+"Change",new r.EventEmitter,i)}(a)}},e.prototype.trigger=function(e,t){var r=n.getValue(e,this);n.isUndefined(r)||r.next(t);var i=n.getValue("local"+e.charAt(0).toUpperCase()+e.slice(1),this);n.isUndefined(i)||i.call(this,t)},e}();t.ComponentBase=o}.apply(t,r))&&(e.exports=i)},function(e,n){e.exports=t},function(e,t,n){var r,i;r=[n,t],void 0!==(i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(){}return e.prototype.localChange=function(e){void 0!==this.propagateChange&&this.propagateChange(e.value)},e.prototype.registerOnChange=function(e){this.propagateChange=e},e.prototype.registerOnTouched=function(e){this.propagateTouch=e},e.prototype.ngAfterViewInit=function(){this.appendTo(this.element),"input"!==this.ngEle.nativeElement.nodeName.toLowerCase()&&(this.element.addEventListener("focus",this.ngOnFocus.bind(this)),this.element.addEventListener("blur",this.ngOnBlur.bind(this)))},e.prototype.writeValue=function(e){this.value=e},e.prototype.ngOnFocus=function(e){this.focus.emit(e)},e.prototype.ngOnBlur=function(e){this.blur.emit(e)},e}();t.FormBase=n}.apply(t,r))&&(e.exports=i)},function(e,t,n){var r,i;r=[n,t,n(2),n(2)],void 0!==(i=function(e,t,n,r){"use strict";function i(e,t){if("string"==typeof e)return p(e,t);var n=e.elementRef.nativeElement._viewContainerRef,i=e.elementRef.nativeElement.propName;return function(t){var o={$implicit:t},s=n.createEmbeddedView(e,o),a=r.getValue("currentInstance.registeredTemplate",n);return void 0===a[i]&&(a[i]=[]),a[i].push(s),s.rootNodes}}function o(e){return function(t,n){var r={set:s(n),get:a(n,e),enumerable:!0,configurable:!0};Object.defineProperty(t,n,r)}}function s(e){return function(t){void 0!==t&&(t.elementRef.nativeElement._viewContainerRef=this.viewContainerRef,t.elementRef.nativeElement.propName=e,r.setValue(e+"Ref",t,this))}}function a(e,t){return function(){return r.getValue(e+"Ref",this)||t}}Object.defineProperty(t,"__esModule",{value:!0});var p=n.getTemplateEngine();t.compile=i,t.Template=o,n.setTemplateEngine({compile:i})}.apply(t,r))&&(e.exports=i)}])});
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@syncfusion/ej2-base"),require("@angular/core"));else if("function"==typeof define&&define.amd)define(["@syncfusion/ej2-base","@angular/core"],t);else{var n="object"==typeof exports?t(require("@syncfusion/ej2-base"),require("@angular/core")):t(e["@syncfusion/ej2-base"],e["@angular/core"]);for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){var r,i;r=[n,t,n(1),n(4),n(6),n(3),n(7)],void 0!==(i=function(e,t,n,r,i,o,s){"use strict";function a(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,"__esModule",{value:!0}),a(n),a(r),a(i),a(o),a(s)}.apply(t,r))&&(e.exports=i)},function(e,t,n){var r,i;r=[n,t,n(2),n(3)],void 0!==(i=function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this.hasChanges=!1,this.propCollection={},this.tags=[],this.tagObjects=[]}return e.prototype.ngOnInit=function(){this.registeredTemplate={};for(var e=0,t=this.tags;e<t.length;e++){var r=t[e],i=n.getValue("child"+r.substring(0,1).toUpperCase()+r.substring(1),this);i&&this.tagObjects.push({instance:i,name:r})}var o=Object.keys(this);o=o.filter(function(e){return/Ref$/i.test(e)});for(var s=0,a=o;s<a.length;s++){var p=a[s],u=p.replace("Ref","");n.setValue(u.replace("_","."),n.getValue(u,this),this.propCollection)}},e.prototype.ngOnChanges=function(e){for(var t=0,n=Object.keys(e);t<n.length;t++){var r=n[t],i=e[r];this.propCollection[r]=i.currentValue}this.hasChanges=!0},e.prototype.clearTemplate=function(e){r.clearTemplate(this,e)},e.prototype.getProperties=function(){for(var e=0,t=this.tagObjects;e<t.length;e++){var n=t[e];this.propCollection[n.name]=n.instance.getProperties()}return this.propCollection},e.prototype.isChanged=function(){for(var e=this.hasChanges,t=0,n=this.tagObjects;t<n.length;t++){var r=n[t];e=e||r.instance.hasChanges}return e},e.prototype.ngAfterContentChecked=function(){this.hasChanges=this.isChanged();var e=Object.keys(this);e=e.filter(function(e){return/Ref$/i.test(e)})},e.prototype.ngAfterViewChecked=function(){this.hasChanges=!1},e}();t.ComplexBase=i;var o=function(){function e(e){this.list=[],this.hasChanges=!1,this.propertyName=e}return e.prototype.ngOnInit=function(){this.isInitChanges=!0},e.prototype.ngAfterContentInit=function(){var e=this,t=0;this.list=this.children.map(function(n){return n.index=t++,n.property=e.propertyName,n}),this.hasChanges=!0},e.prototype.getProperties=function(){for(var e=[],t=0,n=this.list;t<n.length;t++){var r=n[t];e.push(r.getProperties())}return e},e.prototype.isChanged=function(){for(var e=!1,t=0,n=this.list;t<n.length;t++){var r=n[t];e=e||r.hasChanges}return!!this.list.length&&e},e.prototype.clearTemplate=function(e){for(var t=this,n=0,r=this.list;n<r.length;n++){r[n].clearTemplate(e&&e.map(function(e){return new RegExp(t.propertyName).test(e)?e.replace(t.propertyName+".",""):e}))}},e.prototype.ngAfterContentChecked=function(){this.hasChanges=this.isChanged()},e.prototype.ngAfterViewInit=function(){this.isInitChanges=!1},e}();t.ArrayBase=o}.apply(t,r))&&(e.exports=i)},function(t,n){t.exports=e},function(e,t,n){var r,i;r=[n,t],void 0!==(i=function(e,t){"use strict";function n(e,t){t.forEach(function(t){Object.getOwnPropertyNames(t.prototype).forEach(function(n){e.prototype[n]=t.prototype[n]})})}function r(e,t){var n=Object.keys(e.registeredTemplate);if(n.length)for(var r=t&&t.filter(function(e){return!/\./g.test(e)}),i=0,o=r&&r||n;i<o.length;i++){for(var s=o[i],a=0,p=e.registeredTemplate[s];a<p.length;a++){var u=p[a];u.destroyed||u.destroy()}delete e.registeredTemplate[s]}for(var c=0,l=e.tagObjects;c<l.length;c++){var f=l[c];!function(e){e.instance&&e.instance.clearTemplate(t&&t.filter(function(t){return!!new RegExp(e.name).test(t)}))}(f)}}function i(e,t,n){for(var r=e.split("."),i=n||{},o=0;o<r.length;o++){var s=r[o];o+1===r.length?i[s]=void 0===t?{}:t:void 0===i[s]&&(i[s]={}),i=i[s]}return i}Object.defineProperty(t,"__esModule",{value:!0}),t.applyMixins=n,t.clearTemplate=r,t.setValue=i}.apply(t,r))&&(e.exports=i)},function(e,t,n){var r,i;r=[n,t,n(2),n(5),n(3)],void 0!==(i=function(e,t,n,r,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(){}return e.prototype.ngOnInit=function(){this.registeredTemplate={},this.tags=this.tags||[],this.complexTemplate=this.complexTemplate||[],this.tagObjects=[];for(var e=0,t=this.tags;e<t.length;e++){var r=t[e],i={instance:n.getValue("child"+r.substring(0,1).toUpperCase()+r.substring(1),this),name:r};this.tagObjects.push(i)}var o=Object.keys(this);o=o.filter(function(e){return/Ref$/i.test(e)&&/\_/i.test(e)});for(var s=0,a=o;s<a.length;s++){var p=a[s],u=p.replace("Ref",""),c={};n.setValue(u.replace("_","."),n.getValue(u,this),c),this.setProperties(c,!0)}},e.prototype.ngAfterViewInit=function(){var e=this;setTimeout(function(){e.appendTo(e.element)})},e.prototype.ngOnDestroy=function(){this.destroy(),this.clearTemplate(null)},e.prototype.clearTemplate=function(e){i.clearTemplate(this,e)},e.prototype.ngAfterContentChecked=function(){for(var e=0,t=this.tagObjects;e<t.length;e++){var r=t[e];if(!n.isUndefined(r.instance)&&r.instance.hasChanges)if(r.instance.isInitChanges){var i={};i[r.name]=r.instance.getProperties(),this.setProperties(i,r.instance.isInitChanges)}else for(var o=0,s=r.instance.list;o<s.length;o++){var a=s[o];if(a.hasChanges){var p=r.instance.list.indexOf(a);n.getValue(r.name,this)[p].setProperties(a.getProperties())}}}},e.prototype.registerEvents=function(e){var t={};if(e&&e.length){for(var n=0,i=e;n<i.length;n++){t[i[n]]=new r.EventEmitter(!1)}this.setProperties(t,!0)}},e.prototype.addTwoWay=function(e){for(var t=this,i=this,o=0,s=e;o<s.length;o++){var a=s[o];!function(e){n.getValue(e,i),Object.defineProperty(i,e,{get:function(){return n.getValue(e,t.properties)},set:function(r){var i=n.getValue(e,t.properties);i!==r&&(t.saveChanges(e,r,i),n.setValue(e,n.isNullOrUndefined(r)?null:r,t.properties),n.getValue(e+"Change",t).emit(r))}}),n.setValue(e+"Change",new r.EventEmitter,i)}(a)}},e.prototype.trigger=function(e,t){var r=n.getValue(e,this);n.isUndefined(r)||r.next(t);var i=n.getValue("local"+e.charAt(0).toUpperCase()+e.slice(1),this);n.isUndefined(i)||i.call(this,t)},e}();t.ComponentBase=o}.apply(t,r))&&(e.exports=i)},function(e,n){e.exports=t},function(e,t,n){var r,i;r=[n,t],void 0!==(i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(){}return e.prototype.localChange=function(e){void 0!==this.propagateChange&&this.propagateChange(e.checked||e.value)},e.prototype.registerOnChange=function(e){this.propagateChange=e},e.prototype.registerOnTouched=function(e){this.propagateTouch=e},e.prototype.ngAfterViewInit=function(){this.appendTo(this.element),"input"!==this.ngEle.nativeElement.nodeName.toLowerCase()&&(this.element.addEventListener("focus",this.ngOnFocus.bind(this)),this.element.addEventListener("blur",this.ngOnBlur.bind(this)))},e.prototype.writeValue=function(e){this.value=e},e.prototype.ngOnFocus=function(e){this.focus.emit(e)},e.prototype.ngOnBlur=function(e){this.blur.emit(e)},e}();t.FormBase=n}.apply(t,r))&&(e.exports=i)},function(e,t,n){var r,i;r=[n,t,n(2),n(2)],void 0!==(i=function(e,t,n,r){"use strict";function i(e,t){if("string"==typeof e)return p(e,t);var n=e.elementRef.nativeElement._viewContainerRef,i=e.elementRef.nativeElement.propName;return function(t){var o={$implicit:t},s=n.createEmbeddedView(e,o),a=r.getValue("currentInstance.registeredTemplate",n);return void 0===a[i]&&(a[i]=[]),a[i].push(s),s.rootNodes}}function o(e){return function(t,n){var r={set:s(n),get:a(n,e),enumerable:!0,configurable:!0};Object.defineProperty(t,n,r)}}function s(e){return function(t){void 0!==t&&(t.elementRef.nativeElement._viewContainerRef=this.viewContainerRef,t.elementRef.nativeElement.propName=e,r.setValue(e+"Ref",t,this))}}function a(e,t){return function(){return r.getValue(e+"Ref",this)||t}}Object.defineProperty(t,"__esModule",{value:!0});var p=n.getTemplateEngine();t.compile=i,t.Template=o,n.setTemplateEngine({compile:i})}.apply(t,r))&&(e.exports=i)}])});

@@ -6,3 +6,3 @@ var FormBase = (function () {

if (this.propagateChange !== undefined) {
this.propagateChange(e.value);
this.propagateChange(e.checked || e.value);
}

@@ -9,0 +9,0 @@ };

@@ -18,3 +18,5 @@ export function applyMixins(derivedClass, baseClass) {

var rt = _c[_b];
rt.destroy();
if (!rt.destroyed) {
rt.destroy();
}
}

@@ -21,0 +23,0 @@ delete _this.registeredTemplate[registeredTemplate];

{
"name": "@syncfusion/ej2-ng-base",
"version": "1.0.14",
"version": "1.0.16",
"description": "Essential JS 2 Angular Base",

@@ -16,3 +16,3 @@ "author": "Syncfusion Inc.",

"@angular/router": "2.2.1 - 4.10.0",
"@syncfusion/ej2-base": "^1.0.14",
"@syncfusion/ej2-base": "^1.0.16",
"zone.js": "^0.7.2",

@@ -19,0 +19,0 @@ "core-js": "^2.4.1",

@@ -16,3 +16,4 @@ import { EventEmitter } from '@angular/core';

localChange(e: {
value: T;
value?: T;
checked?: T;
}): void;

@@ -19,0 +20,0 @@ registerOnChange(registerFunction: (_: T) => void): void;

@@ -9,3 +9,3 @@ define(["require", "exports"], function (require, exports) {

if (this.propagateChange !== undefined) {
this.propagateChange(e.value);
this.propagateChange(e.checked || e.value);
}

@@ -12,0 +12,0 @@ };

@@ -22,3 +22,5 @@ define(["require", "exports"], function (require, exports) {

var rt = _c[_b];
rt.destroy();
if (!rt.destroyed) {
rt.destroy();
}
}

@@ -25,0 +27,0 @@ delete _this.registeredTemplate[registeredTemplate];

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc