ngx-histaff-alpha 1.8.8 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -71,6 +71,8 @@ export var EnumCoreButtonVNSCode;
71
71
  EnumCoreButtonVNSCode["HEADER_UPERMISSION_DELETE"] = "HEADER_UPERMISSION_DELETE";
72
72
  EnumCoreButtonVNSCode["HEADER_LIQUIDATE_CONTRACT"] = "HEADER_LIQUIDATE_CONTRACT";
73
73
  EnumCoreButtonVNSCode["HEADER_INFORMATION"] = "HEADER_INFORMATION";
74
+ EnumCoreButtonVNSCode["HEADER_CHANGE_MANAGER"] = "HEADER_CHANGE_MANAGER";
75
+ EnumCoreButtonVNSCode["HEADER_VACANCY_FILTER"] = "HEADER_VACANCY_FILTER";
74
76
  /*
75
77
  CÁC NÚT CỦA PHẦN FORM - KHÔNG LIÊN QUAN TỚI PHÂN QUYỀN
76
78
  // NONE_HEADER_ category
@@ -90,4 +92,4 @@ export var EnumCoreButtonVNSCode;
90
92
  EnumCoreButtonVNSCode["NONE_HEADER_REVERT"] = "NONE_HEADER_REVERT";
91
93
  EnumCoreButtonVNSCode["NONE_HEADER_RECRUIT"] = "NONE_HEADER_RECRUIT";
92
94
  })(EnumCoreButtonVNSCode || (EnumCoreButtonVNSCode = {}));
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW51bUNvcmVCdXR0b25WTlNDb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvRW51bUNvcmVCdXR0b25WTlNDb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHFCQStGWDtBQS9GRCxXQUFZLHFCQUFxQjtJQUU3Qjs7TUFFRTtJQUVGLHNDQUFhLENBQUE7SUFDYiwwQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBYSxDQUFBO0lBQ2IsMENBQWlCLENBQUE7SUFDakIsc0RBQTZCLENBQUE7SUFDN0IsOENBQXFCLENBQUE7SUFDckIsc0RBQTZCLENBQUE7SUFDN0IsMERBQWlDLENBQUE7SUFDakMsNENBQW1CLENBQUE7SUFDbkIsMENBQWlCLENBQUE7SUFDakIsOENBQXFCLENBQUE7SUFDckIsd0NBQWUsQ0FBQTtJQUNmLDBDQUFpQixDQUFBO0lBQ2pCLDBDQUFpQixDQUFBO0lBQ2pCLDBDQUFpQixDQUFBO0lBQ2pCLGtEQUF5QixDQUFBO0lBQ3pCLHNDQUFhLENBQUE7SUFDYiw0REFBbUMsQ0FBQTtJQUNuQyxnRUFBdUMsQ0FBQTtJQUN2Qyx3REFBK0IsQ0FBQTtJQUMvQixzQ0FBYSxDQUFBO0lBRWI7OztNQUdFO0lBQ0Ysc0VBQTZDLENBQUE7SUFDN0Msb0RBQTJCLENBQUE7SUFDM0Isd0RBQStCLENBQUE7SUFDL0Isb0RBQTJCLENBQUE7SUFDM0Isb0RBQTJCLENBQUE7SUFDM0Isd0RBQStCLENBQUE7SUFDL0Isb0RBQTJCLENBQUE7SUFDM0Isd0RBQStCLENBQUE7SUFDL0IsNERBQW1DLENBQUE7SUFDbkMsb0VBQTJDLENBQUE7SUFDM0MsZ0VBQXVDLENBQUE7SUFDdkMsd0VBQStDLENBQUE7SUFDL0MsMERBQWlDLENBQUE7SUFDakMsd0RBQStCLENBQUE7SUFDL0IsNERBQW1DLENBQUE7SUFDbkMsd0VBQStDLENBQUE7SUFDL0MsNEVBQW1ELENBQUE7SUFDbkQsNEVBQW1ELENBQUE7SUFDbkQsNEVBQW1ELENBQUE7SUFDbkQsc0RBQTZCLENBQUE7SUFDN0Isd0VBQStDLENBQUE7SUFDL0Msa0VBQXlDLENBQUE7SUFDekMsNERBQW1DLENBQUE7SUFDbkMsc0VBQTZDLENBQUE7SUFDN0Msd0RBQStCLENBQUE7SUFDL0IsZ0VBQXVDLENBQUE7SUFDdkMsb0RBQTJCLENBQUE7SUFDM0IsMEVBQWlELENBQUE7SUFDakQsOEVBQXFELENBQUE7SUFDckQsb0RBQTJCLENBQUE7SUFDM0Isd0RBQStCLENBQUE7SUFDL0IsMEVBQWlELENBQUE7SUFDakQsd0RBQStCLENBQUE7SUFDL0Isc0RBQTZCLENBQUE7SUFDN0Isa0VBQXlDLENBQUE7SUFDekMsOERBQXFDLENBQUE7SUFDckMsOERBQXFDLENBQUE7SUFDckMsMERBQWlDLENBQUE7SUFDakMsOERBQXFDLENBQUE7SUFDckMsd0RBQStCLENBQUE7SUFDL0IsZ0ZBQXVELENBQUE7SUFDdkQsZ0ZBQXVELENBQUE7SUFDdkQsa0VBQXlDLENBQUE7SUFFekM7OztNQUdFO0lBQ0Ysa0VBQXlDLENBQUE7SUFDekMsOERBQXFDLENBQUE7SUFDckMsa0VBQXlDLENBQUE7SUFDekMsa0VBQXlDLENBQUE7SUFDekMsa0VBQXlDLENBQUE7SUFDekMsb0VBQTJDLENBQUE7SUFDM0MsZ0ZBQXVELENBQUE7SUFDdkQsMEZBQWlFLENBQUE7SUFDakUsa0VBQXlDLENBQUE7SUFDekMsc0VBQTZDLENBQUE7SUFDN0Msb0VBQTJDLENBQUE7SUFDM0Msa0dBQXlFLENBQUE7SUFDekUsa0VBQXlDLENBQUE7SUFDekMsb0VBQTJDLENBQUE7QUFFL0MsQ0FBQyxFQS9GVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBK0ZoQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEVudW1Db3JlQnV0dG9uVk5TQ29kZSB7XHJcblxyXG4gICAgLyogQ8OhYyBuw7p0IGtow7RuZyB4w6FjIMSR4buLbmggbMOgIGPhu6dhIEhFQURFUiBoYXkgTk9ORV9IRURBRVJcclxuICAgIEtIw5RORyBEw5lORyBO4buuQVxyXG4gICAgKi9cclxuXHJcbiAgICBTQVZFID0gJ1NBVkUnLFxyXG4gICAgQ1JFQVRFID0gJ0NSRUFURScsXHJcbiAgICBFRElUID0gJ0VESVQnLFxyXG4gICAgREVMRVRFID0gJ0RFTEVURScsXHJcbiAgICBPTkZPUk1ERUxFVEUgPSAnT05GT1JNREVMRVRFJyxcclxuICAgIEFDVElWQVRFID0gJ0FDVElWQVRFJyxcclxuICAgIEFDVElWQVRFX0FMTCA9ICdBQ1RJVkFURV9BTEwnLFxyXG4gICAgSU5BQ1RJVkFURV9BTEwgPSAnSU5BQ1RJVkFURV9BTEwnLFxyXG4gICAgQVBQUk9WRSA9ICdBUFBST1ZFJyxcclxuICAgIFJFSkVDVCA9ICdSRUpFQ1QnLFxyXG4gICAgRE9XTkxPQUQgPSAnRE9XTkxPQUQnLFxyXG4gICAgUFJJTlQgPSAnUFJJTlQnLFxyXG4gICAgVVBMT0FEID0gJ1VQTE9BRCcsXHJcbiAgICBDQU5DRUwgPSAnQ0FOQ0VMJyxcclxuICAgIFNFQVJDSCA9ICdTRUFSQ0gnLFxyXG4gICAgRVhQT1JURVhFTCA9ICdFWFBPUlRFWEVMJyxcclxuICAgIERST1AgPSAnRFJPUCcsXHJcbiAgICBHRVRTSElGVERFRkFVTFQgPSAnR0VUU0hJRlRERUZBVUxUJyxcclxuICAgIERFQ0xBUkVJTlNBUklTSU5HID0gJ0RFQ0xBUkVJTlNBUklTSU5HJyxcclxuICAgIFNBVkVfUEFTU1dPUkQgPSAnU0FWRV9QQVNTV09SRCcsXHJcbiAgICBTRU5EID0gJ1NFTkQnLFxyXG5cclxuICAgIC8qXHJcbiAgICBDw4FDIE7DmlQgQ+G7pkEgUEjhuqZOIEhFQURFUiAtIExJw4pOIFFVQU4gVOG7mkkgUEjDgk4gUVVZ4buATlxyXG4gICAgLy8gSEVBREVSXyBjYXRlZ29yeVxyXG4gICAgKi9cclxuICAgIEhFQURFUl9WSUVXX0FCU1RSQUNUID0gJ0hFQURFUl9WSUVXX0FCU1RSQUNUJyxcclxuICAgIEhFQURFUl9TQVZFID0gJ0hFQURFUl9TQVZFJyxcclxuICAgIEhFQURFUl9DQU5DRUwgPSAnSEVBREVSX0NBTkNFTCcsXHJcbiAgICBIRUFERVJfQ09QWSA9ICdIRUFERVJfQ09QWScsXHJcbiAgICBIRUFERVJfU1dBUCA9ICdIRUFERVJfU1dBUCcsXHJcbiAgICBIRUFERVJfQ1JFQVRFID0gJ0hFQURFUl9DUkVBVEUnLFxyXG4gICAgSEVBREVSX0VESVQgPSAnSEVBREVSX0VESVQnLFxyXG4gICAgSEVBREVSX0RFTEVURSA9ICdIRUFERVJfREVMRVRFJyxcclxuICAgIEhFQURFUl9BQ1RJVkFURSA9ICdIRUFERVJfQUNUSVZBVEUnLFxyXG4gICAgSEVBREVSX0FDVElWQVRFX0FMTCA9ICdIRUFERVJfQUNUSVZBVEVfQUxMJyxcclxuICAgIEhFQURFUl9JTkFDVElWQVRFID0gJ0hFQURFUl9JTkFDVElWQVRFJyxcclxuICAgIEhFQURFUl9JTkFDVElWQVRFX0FMTCA9ICdIRUFERVJfSU5BQ1RJVkFURV9BTEwnLFxyXG4gICAgSEVBREVSX0FQUFJPVkUgPSAnSEVBREVSX0FQUFJPVkUnLFxyXG4gICAgSEVBREVSX1JFSkVDVCA9ICdIRUFERVJfUkVKRUNUJyxcclxuICAgIEhFQURFUl9ET1dOTE9BRCA9ICdIRUFERVJfRE9XTkxPQUQnLFxyXG4gICAgSEVBREVSX0RST1BET1dOX1BSSU5UID0gJ0hFQURFUl9EUk9QRE9XTl9QUklOVCcsXHJcbiAgICBIRUFERVJfRFJPUERPV05fQ1VTVE9NMSA9ICdIRUFERVJfRFJPUERPV05fQ1VTVE9NMScsXHJcbiAgICBIRUFERVJfRFJPUERPV05fQ1VTVE9NMiA9ICdIRUFERVJfRFJPUERPV05fQ1VTVE9NMicsXHJcbiAgICBIRUFERVJfRFJPUERPV05fQ1VTVE9NMyA9ICdIRUFERVJfRFJPUERPV05fQ1VTVE9NMycsXHJcbiAgICBIRUFERVJfUFJJTlQgPSAnSEVBREVSX1BSSU5UJyxcclxuICAgIEhFQURFUl9QUklOVF9EUk9QRE9XTiA9ICdIRUFERVJfUFJJTlRfRFJPUERPV04nLFxyXG4gICAgSEVBREVSX1BSSU5UXzJDXzk4ID0gJ0hFQURFUl9QUklOVF8yQ185OCcsXHJcbiAgICBIRUFERVJfUFJJTlRfMkMgPSAnSEVBREVSX1BSSU5UXzJDJyxcclxuICAgIEhFQURFUl9QUklOVF8yQ18yMDA4ID0gJ0hFQURFUl9QUklOVF8yQ18yMDA4JyxcclxuICAgIEhFQURFUl9VUExPQUQgPSAnSEVBREVSX1VQTE9BRCcsXHJcbiAgICBIRUFERVJfRVhQT1JURVhFTCA9ICdIRUFERVJfRVhQT1JURVhFTCcsXHJcbiAgICBIRUFERVJfRFJPUCA9ICdIRUFERVJfRFJPUCcsXHJcbiAgICBIRUFERVJfR0VUU0hJRlRERUZBVUxUID0gJ0hFQURFUl9HRVRTSElGVERFRkFVTFQnLFxyXG4gICAgSEVBREVSX0RFQ0xBUkVJTlNBUklTSU5HID0gJ0hFQURFUl9ERUNMQVJFSU5TQVJJU0lORycsXHJcbiAgICBIRUFERVJfTE9DSyA9ICdIRUFERVJfTE9DSycsXHJcbiAgICBIRUFERVJfVU5MT0NLID0gJ0hFQURFUl9VTkxPQ0snLFxyXG4gICAgSEVBREVSX1BFTkRJTkdfQVBQUk9WRSA9ICdIRUFERVJfUEVORElOR19BUFBST1ZFJyxcclxuICAgIEhFQURFUl9IQU5ETEUgPSAnSEVBREVSX0hBTkRMRScsXHJcbiAgICBIRUFERVJfUkVTRVQgPSAnSEVBREVSX1JFU0VUJyxcclxuICAgIEhFQURFUl9TWU5DSFJPTk9VUyA9ICdIRUFERVJfU1lOQ0hST05PVVMnLFxyXG4gICAgSEVBREVSX1VOQVBQUk9WRSA9ICdIRUFERVJfVU5BUFBST1ZFJyxcclxuICAgIEhFQURFUl9DQUxDVUxBVEUgPSAnSEVBREVSX0NBTENVTEFURScsXHJcbiAgICBIRUFERVJfQ09ORklSTSA9ICdIRUFERVJfQ09ORklSTScsXHJcbiAgICBIRUFERVJfVU5DT05GSVJNID0gJ0hFQURFUl9VTkNPTkZJUk0nLFxyXG4gICAgSEVBREVSX1VQREFURSA9ICdIRUFERVJfVVBEQVRFJyxcclxuICAgIEhFQURFUl9VUEVSTUlTU0lPTl9ERUxFVEUgPSAnSEVBREVSX1VQRVJNSVNTSU9OX0RFTEVURScsXHJcbiAgICBIRUFERVJfTElRVUlEQVRFX0NPTlRSQUNUID0gXCJIRUFERVJfTElRVUlEQVRFX0NPTlRSQUNUXCIsXHJcbiAgICBIRUFERVJfSU5GT1JNQVRJT04gPSBcIkhFQURFUl9JTkZPUk1BVElPTlwiLFxyXG5cclxuICAgIC8qXHJcbiAgICBDw4FDIE7DmlQgQ+G7pkEgUEjhuqZOIEZPUk0gLSBLSMOUTkcgTEnDik4gUVVBTiBU4buaSSBQSMOCTiBRVVnhu4BOXHJcbiAgICAvLyBOT05FX0hFQURFUl8gY2F0ZWdvcnlcclxuICAgICovXHJcbiAgICBOT05FX0hFQURFUl9IQU5ETEUgPSAnTk9ORV9IRUFERVJfSEFORExFJyxcclxuICAgIE5PTkVfSEVBREVSX1NBVkUgPSAnTk9ORV9IRUFERVJfU0FWRScsXHJcbiAgICBOT05FX0hFQURFUl9ERUxFVEUgPSAnTk9ORV9IRUFERVJfREVMRVRFJyxcclxuICAgIE5PTkVfSEVBREVSX0NBTkNFTCA9ICdOT05FX0hFQURFUl9DQU5DRUwnLFxyXG4gICAgTk9ORV9IRUFERVJfU0VBUkNIID0gJ05PTkVfSEVBREVSX1NFQVJDSCcsXHJcbiAgICBOT05FX0hFQURFUl9DT05GSVJNID0gJ05PTkVfSEVBREVSX0NPTkZJUk0nLFxyXG4gICAgTk9ORV9IRUFERVJfSU1QT1JUX09QVElPTiA9ICdOT05FX0hFQURFUl9JTVBPUlRfT1BUSU9OJyxcclxuICAgIE5PTkVfSEVBREVSX0xJUVVJREFURV9DT05UUkFDVCA9IFwiTk9ORV9IRUFERVJfTElRVUlEQVRFX0NPTlRSQUNUXCIsXHJcbiAgICBOT05FX0hFQURFUl9VUERBVEUgPSAnTk9ORV9IRUFERVJfVVBEQVRFJyxcclxuICAgIE5PTkVfSEVBREVSX1RSQU5TRkVSID0gJ05PTkVfSEVBREVSX1RSQU5TRkVSJyxcclxuICAgIE5PTkVfSEVBREVSX0NMT05JTkcgPSAnTk9ORV9IRUFERVJfQ0xPTklORycsXHJcbiAgICBOT05FX0hFQURFUl9QT1NJVElPTl9UUkFOU0ZFUl9TQVZFID0gJ05PTkVfSEVBREVSX1BPU0lUSU9OX1RSQU5TRkVSX1NBVkUnLFxyXG4gICAgTk9ORV9IRUFERVJfUkVWRVJUID0gJ05PTkVfSEVBREVSX1JFVkVSVCcsXHJcbiAgICBOT05FX0hFQURFUl9SRUNSVUlUID0gJ05PTkVfSEVBREVSX1JFQ1JVSVQnLFxyXG5cclxufVxyXG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW51bUNvcmVCdXR0b25WTlNDb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvRW51bUNvcmVCdXR0b25WTlNDb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHFCQWlHWDtBQWpHRCxXQUFZLHFCQUFxQjtJQUU3Qjs7TUFFRTtJQUVGLHNDQUFhLENBQUE7SUFDYiwwQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBYSxDQUFBO0lBQ2IsMENBQWlCLENBQUE7SUFDakIsc0RBQTZCLENBQUE7SUFDN0IsOENBQXFCLENBQUE7SUFDckIsc0RBQTZCLENBQUE7SUFDN0IsMERBQWlDLENBQUE7SUFDakMsNENBQW1CLENBQUE7SUFDbkIsMENBQWlCLENBQUE7SUFDakIsOENBQXFCLENBQUE7SUFDckIsd0NBQWUsQ0FBQTtJQUNmLDBDQUFpQixDQUFBO0lBQ2pCLDBDQUFpQixDQUFBO0lBQ2pCLDBDQUFpQixDQUFBO0lBQ2pCLGtEQUF5QixDQUFBO0lBQ3pCLHNDQUFhLENBQUE7SUFDYiw0REFBbUMsQ0FBQTtJQUNuQyxnRUFBdUMsQ0FBQTtJQUN2Qyx3REFBK0IsQ0FBQTtJQUMvQixzQ0FBYSxDQUFBO0lBRWI7OztNQUdFO0lBQ0Ysc0VBQTZDLENBQUE7SUFDN0Msb0RBQTJCLENBQUE7SUFDM0Isd0RBQStCLENBQUE7SUFDL0Isb0RBQTJCLENBQUE7SUFDM0Isb0RBQTJCLENBQUE7SUFDM0Isd0RBQStCLENBQUE7SUFDL0Isb0RBQTJCLENBQUE7SUFDM0Isd0RBQStCLENBQUE7SUFDL0IsNERBQW1DLENBQUE7SUFDbkMsb0VBQTJDLENBQUE7SUFDM0MsZ0VBQXVDLENBQUE7SUFDdkMsd0VBQStDLENBQUE7SUFDL0MsMERBQWlDLENBQUE7SUFDakMsd0RBQStCLENBQUE7SUFDL0IsNERBQW1DLENBQUE7SUFDbkMsd0VBQStDLENBQUE7SUFDL0MsNEVBQW1ELENBQUE7SUFDbkQsNEVBQW1ELENBQUE7SUFDbkQsNEVBQW1ELENBQUE7SUFDbkQsc0RBQTZCLENBQUE7SUFDN0Isd0VBQStDLENBQUE7SUFDL0Msa0VBQXlDLENBQUE7SUFDekMsNERBQW1DLENBQUE7SUFDbkMsc0VBQTZDLENBQUE7SUFDN0Msd0RBQStCLENBQUE7SUFDL0IsZ0VBQXVDLENBQUE7SUFDdkMsb0RBQTJCLENBQUE7SUFDM0IsMEVBQWlELENBQUE7SUFDakQsOEVBQXFELENBQUE7SUFDckQsb0RBQTJCLENBQUE7SUFDM0Isd0RBQStCLENBQUE7SUFDL0IsMEVBQWlELENBQUE7SUFDakQsd0RBQStCLENBQUE7SUFDL0Isc0RBQTZCLENBQUE7SUFDN0Isa0VBQXlDLENBQUE7SUFDekMsOERBQXFDLENBQUE7SUFDckMsOERBQXFDLENBQUE7SUFDckMsMERBQWlDLENBQUE7SUFDakMsOERBQXFDLENBQUE7SUFDckMsd0RBQStCLENBQUE7SUFDL0IsZ0ZBQXVELENBQUE7SUFDdkQsZ0ZBQXVELENBQUE7SUFDdkQsa0VBQXlDLENBQUE7SUFDekMsd0VBQStDLENBQUE7SUFDL0Msd0VBQStDLENBQUE7SUFFL0M7OztNQUdFO0lBQ0Ysa0VBQXlDLENBQUE7SUFDekMsOERBQXFDLENBQUE7SUFDckMsa0VBQXlDLENBQUE7SUFDekMsa0VBQXlDLENBQUE7SUFDekMsa0VBQXlDLENBQUE7SUFDekMsb0VBQTJDLENBQUE7SUFDM0MsZ0ZBQXVELENBQUE7SUFDdkQsMEZBQWlFLENBQUE7SUFDakUsa0VBQXlDLENBQUE7SUFDekMsc0VBQTZDLENBQUE7SUFDN0Msb0VBQTJDLENBQUE7SUFDM0Msa0dBQXlFLENBQUE7SUFDekUsa0VBQXlDLENBQUE7SUFDekMsb0VBQTJDLENBQUE7QUFFL0MsQ0FBQyxFQWpHVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBaUdoQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEVudW1Db3JlQnV0dG9uVk5TQ29kZSB7XHJcblxyXG4gICAgLyogQ8OhYyBuw7p0IGtow7RuZyB4w6FjIMSR4buLbmggbMOgIGPhu6dhIEhFQURFUiBoYXkgTk9ORV9IRURBRVJcclxuICAgIEtIw5RORyBEw5lORyBO4buuQVxyXG4gICAgKi9cclxuXHJcbiAgICBTQVZFID0gJ1NBVkUnLFxyXG4gICAgQ1JFQVRFID0gJ0NSRUFURScsXHJcbiAgICBFRElUID0gJ0VESVQnLFxyXG4gICAgREVMRVRFID0gJ0RFTEVURScsXHJcbiAgICBPTkZPUk1ERUxFVEUgPSAnT05GT1JNREVMRVRFJyxcclxuICAgIEFDVElWQVRFID0gJ0FDVElWQVRFJyxcclxuICAgIEFDVElWQVRFX0FMTCA9ICdBQ1RJVkFURV9BTEwnLFxyXG4gICAgSU5BQ1RJVkFURV9BTEwgPSAnSU5BQ1RJVkFURV9BTEwnLFxyXG4gICAgQVBQUk9WRSA9ICdBUFBST1ZFJyxcclxuICAgIFJFSkVDVCA9ICdSRUpFQ1QnLFxyXG4gICAgRE9XTkxPQUQgPSAnRE9XTkxPQUQnLFxyXG4gICAgUFJJTlQgPSAnUFJJTlQnLFxyXG4gICAgVVBMT0FEID0gJ1VQTE9BRCcsXHJcbiAgICBDQU5DRUwgPSAnQ0FOQ0VMJyxcclxuICAgIFNFQVJDSCA9ICdTRUFSQ0gnLFxyXG4gICAgRVhQT1JURVhFTCA9ICdFWFBPUlRFWEVMJyxcclxuICAgIERST1AgPSAnRFJPUCcsXHJcbiAgICBHRVRTSElGVERFRkFVTFQgPSAnR0VUU0hJRlRERUZBVUxUJyxcclxuICAgIERFQ0xBUkVJTlNBUklTSU5HID0gJ0RFQ0xBUkVJTlNBUklTSU5HJyxcclxuICAgIFNBVkVfUEFTU1dPUkQgPSAnU0FWRV9QQVNTV09SRCcsXHJcbiAgICBTRU5EID0gJ1NFTkQnLFxyXG5cclxuICAgIC8qXHJcbiAgICBDw4FDIE7DmlQgQ+G7pkEgUEjhuqZOIEhFQURFUiAtIExJw4pOIFFVQU4gVOG7mkkgUEjDgk4gUVVZ4buATlxyXG4gICAgLy8gSEVBREVSXyBjYXRlZ29yeVxyXG4gICAgKi9cclxuICAgIEhFQURFUl9WSUVXX0FCU1RSQUNUID0gJ0hFQURFUl9WSUVXX0FCU1RSQUNUJyxcclxuICAgIEhFQURFUl9TQVZFID0gJ0hFQURFUl9TQVZFJyxcclxuICAgIEhFQURFUl9DQU5DRUwgPSAnSEVBREVSX0NBTkNFTCcsXHJcbiAgICBIRUFERVJfQ09QWSA9ICdIRUFERVJfQ09QWScsXHJcbiAgICBIRUFERVJfU1dBUCA9ICdIRUFERVJfU1dBUCcsXHJcbiAgICBIRUFERVJfQ1JFQVRFID0gJ0hFQURFUl9DUkVBVEUnLFxyXG4gICAgSEVBREVSX0VESVQgPSAnSEVBREVSX0VESVQnLFxyXG4gICAgSEVBREVSX0RFTEVURSA9ICdIRUFERVJfREVMRVRFJyxcclxuICAgIEhFQURFUl9BQ1RJVkFURSA9ICdIRUFERVJfQUNUSVZBVEUnLFxyXG4gICAgSEVBREVSX0FDVElWQVRFX0FMTCA9ICdIRUFERVJfQUNUSVZBVEVfQUxMJyxcclxuICAgIEhFQURFUl9JTkFDVElWQVRFID0gJ0hFQURFUl9JTkFDVElWQVRFJyxcclxuICAgIEhFQURFUl9JTkFDVElWQVRFX0FMTCA9ICdIRUFERVJfSU5BQ1RJVkFURV9BTEwnLFxyXG4gICAgSEVBREVSX0FQUFJPVkUgPSAnSEVBREVSX0FQUFJPVkUnLFxyXG4gICAgSEVBREVSX1JFSkVDVCA9ICdIRUFERVJfUkVKRUNUJyxcclxuICAgIEhFQURFUl9ET1dOTE9BRCA9ICdIRUFERVJfRE9XTkxPQUQnLFxyXG4gICAgSEVBREVSX0RST1BET1dOX1BSSU5UID0gJ0hFQURFUl9EUk9QRE9XTl9QUklOVCcsXHJcbiAgICBIRUFERVJfRFJPUERPV05fQ1VTVE9NMSA9ICdIRUFERVJfRFJPUERPV05fQ1VTVE9NMScsXHJcbiAgICBIRUFERVJfRFJPUERPV05fQ1VTVE9NMiA9ICdIRUFERVJfRFJPUERPV05fQ1VTVE9NMicsXHJcbiAgICBIRUFERVJfRFJPUERPV05fQ1VTVE9NMyA9ICdIRUFERVJfRFJPUERPV05fQ1VTVE9NMycsXHJcbiAgICBIRUFERVJfUFJJTlQgPSAnSEVBREVSX1BSSU5UJyxcclxuICAgIEhFQURFUl9QUklOVF9EUk9QRE9XTiA9ICdIRUFERVJfUFJJTlRfRFJPUERPV04nLFxyXG4gICAgSEVBREVSX1BSSU5UXzJDXzk4ID0gJ0hFQURFUl9QUklOVF8yQ185OCcsXHJcbiAgICBIRUFERVJfUFJJTlRfMkMgPSAnSEVBREVSX1BSSU5UXzJDJyxcclxuICAgIEhFQURFUl9QUklOVF8yQ18yMDA4ID0gJ0hFQURFUl9QUklOVF8yQ18yMDA4JyxcclxuICAgIEhFQURFUl9VUExPQUQgPSAnSEVBREVSX1VQTE9BRCcsXHJcbiAgICBIRUFERVJfRVhQT1JURVhFTCA9ICdIRUFERVJfRVhQT1JURVhFTCcsXHJcbiAgICBIRUFERVJfRFJPUCA9ICdIRUFERVJfRFJPUCcsXHJcbiAgICBIRUFERVJfR0VUU0hJRlRERUZBVUxUID0gJ0hFQURFUl9HRVRTSElGVERFRkFVTFQnLFxyXG4gICAgSEVBREVSX0RFQ0xBUkVJTlNBUklTSU5HID0gJ0hFQURFUl9ERUNMQVJFSU5TQVJJU0lORycsXHJcbiAgICBIRUFERVJfTE9DSyA9ICdIRUFERVJfTE9DSycsXHJcbiAgICBIRUFERVJfVU5MT0NLID0gJ0hFQURFUl9VTkxPQ0snLFxyXG4gICAgSEVBREVSX1BFTkRJTkdfQVBQUk9WRSA9ICdIRUFERVJfUEVORElOR19BUFBST1ZFJyxcclxuICAgIEhFQURFUl9IQU5ETEUgPSAnSEVBREVSX0hBTkRMRScsXHJcbiAgICBIRUFERVJfUkVTRVQgPSAnSEVBREVSX1JFU0VUJyxcclxuICAgIEhFQURFUl9TWU5DSFJPTk9VUyA9ICdIRUFERVJfU1lOQ0hST05PVVMnLFxyXG4gICAgSEVBREVSX1VOQVBQUk9WRSA9ICdIRUFERVJfVU5BUFBST1ZFJyxcclxuICAgIEhFQURFUl9DQUxDVUxBVEUgPSAnSEVBREVSX0NBTENVTEFURScsXHJcbiAgICBIRUFERVJfQ09ORklSTSA9ICdIRUFERVJfQ09ORklSTScsXHJcbiAgICBIRUFERVJfVU5DT05GSVJNID0gJ0hFQURFUl9VTkNPTkZJUk0nLFxyXG4gICAgSEVBREVSX1VQREFURSA9ICdIRUFERVJfVVBEQVRFJyxcclxuICAgIEhFQURFUl9VUEVSTUlTU0lPTl9ERUxFVEUgPSAnSEVBREVSX1VQRVJNSVNTSU9OX0RFTEVURScsXHJcbiAgICBIRUFERVJfTElRVUlEQVRFX0NPTlRSQUNUID0gXCJIRUFERVJfTElRVUlEQVRFX0NPTlRSQUNUXCIsXHJcbiAgICBIRUFERVJfSU5GT1JNQVRJT04gPSBcIkhFQURFUl9JTkZPUk1BVElPTlwiLFxyXG4gICAgSEVBREVSX0NIQU5HRV9NQU5BR0VSID0gJ0hFQURFUl9DSEFOR0VfTUFOQUdFUicsXHJcbiAgICBIRUFERVJfVkFDQU5DWV9GSUxURVIgPSAnSEVBREVSX1ZBQ0FOQ1lfRklMVEVSJyxcclxuXHJcbiAgICAvKlxyXG4gICAgQ8OBQyBOw5pUIEPhu6ZBIFBI4bqmTiBGT1JNIC0gS0jDlE5HIExJw4pOIFFVQU4gVOG7mkkgUEjDgk4gUVVZ4buATlxyXG4gICAgLy8gTk9ORV9IRUFERVJfIGNhdGVnb3J5XHJcbiAgICAqL1xyXG4gICAgTk9ORV9IRUFERVJfSEFORExFID0gJ05PTkVfSEVBREVSX0hBTkRMRScsXHJcbiAgICBOT05FX0hFQURFUl9TQVZFID0gJ05PTkVfSEVBREVSX1NBVkUnLFxyXG4gICAgTk9ORV9IRUFERVJfREVMRVRFID0gJ05PTkVfSEVBREVSX0RFTEVURScsXHJcbiAgICBOT05FX0hFQURFUl9DQU5DRUwgPSAnTk9ORV9IRUFERVJfQ0FOQ0VMJyxcclxuICAgIE5PTkVfSEVBREVSX1NFQVJDSCA9ICdOT05FX0hFQURFUl9TRUFSQ0gnLFxyXG4gICAgTk9ORV9IRUFERVJfQ09ORklSTSA9ICdOT05FX0hFQURFUl9DT05GSVJNJyxcclxuICAgIE5PTkVfSEVBREVSX0lNUE9SVF9PUFRJT04gPSAnTk9ORV9IRUFERVJfSU1QT1JUX09QVElPTicsXHJcbiAgICBOT05FX0hFQURFUl9MSVFVSURBVEVfQ09OVFJBQ1QgPSBcIk5PTkVfSEVBREVSX0xJUVVJREFURV9DT05UUkFDVFwiLFxyXG4gICAgTk9ORV9IRUFERVJfVVBEQVRFID0gJ05PTkVfSEVBREVSX1VQREFURScsXHJcbiAgICBOT05FX0hFQURFUl9UUkFOU0ZFUiA9ICdOT05FX0hFQURFUl9UUkFOU0ZFUicsXHJcbiAgICBOT05FX0hFQURFUl9DTE9OSU5HID0gJ05PTkVfSEVBREVSX0NMT05JTkcnLFxyXG4gICAgTk9ORV9IRUFERVJfUE9TSVRJT05fVFJBTlNGRVJfU0FWRSA9ICdOT05FX0hFQURFUl9QT1NJVElPTl9UUkFOU0ZFUl9TQVZFJyxcclxuICAgIE5PTkVfSEVBREVSX1JFVkVSVCA9ICdOT05FX0hFQURFUl9SRVZFUlQnLFxyXG4gICAgTk9ORV9IRUFERVJfUkVDUlVJVCA9ICdOT05FX0hFQURFUl9SRUNSVUlUJyxcclxuXHJcbn1cclxuIl19
@@ -358,7 +358,7 @@ export class CoreDatePickerComponent extends CoreFormControlBaseComponent {
358
358
  multi: true,
359
359
  useExisting: CoreDatePickerComponent
360
360
  }
361
- ], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "backward", first: true, predicate: ["backward"], descendants: true }, { propertyName: "calendarBody", first: true, predicate: ["calendarBody"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-date-picker-container\">\r\n <input type=\"checkbox\" [(ngModel)]=\"openState\">\r\n <input type=\"checkbox\" [(ngModel)]=\"monthPickerActive\">\r\n <input type=\"checkbox\" [(ngModel)]=\"yearPickerActive\">\r\n <input #backward type=\"checkbox\" class=\"tl-datepicker-direction\">\r\n <input #input type=\"text\" class=\"form-control\" [placeholder]=\"showPlaceholder ? 'dd/mm/yyyy' : ''\"\r\n maxlength=\"10\" [(ngModel)]=\"textValue\" [class.form-control-disabled]=\"disabled\" [disabled]=\"disabled\"><label class=\"icon\" (click)=\"toggleOpen()\"></label>\r\n <div class=\"tl-date-picker-popup\" [class.open]=\"openState\">\r\n <div class=\"date-picker-session\" [class.d-none]=\"monthPickerActive || yearPickerActive\">\r\n <div class=\"navigator\">\r\n <label class=\"month-dropdown\" (click)=\"toggleMonthPickerActive()\">{{ currentMonthText }} {{\r\n currentMonthObject$.value.year }}</label>\r\n <div class=\"arrows\">\r\n <div class=\"go-up\" (click)=\"goBackward()\"></div>\r\n <div class=\"go-down\" (click)=\"goForeward()\"></div>\r\n </div>\r\n </div>\r\n <div class=\"weekday-header\">\r\n <ul>\r\n <li *ngFor=\"let day of headerWeekdays; let i = index\" [class.t7]=\"i===5\" [class.cn]=\"i===6\">\r\n <div>{{ day }}</div>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"calendar-body-container\">\r\n <div #calendarBody class=\"calendar-body\" [class.slide-up]=\"direction===1\"\r\n [class.slide-down]=\"direction===-1\">\r\n <ul *ngFor=\"let week of data\">\r\n <li *ngFor=\"let item of week.items; let i = index\">\r\n <div [class.out-of-month]=\"!!!item.currentMonth\" [class.t7]=\"i===5\" [class.cn]=\"i===6\"\r\n [class.out-of-range]=\"!!rangeLimit && !!!((item.dateValue>=rangeLimit.minDate) && (rangeLimit.maxDate>=item.dateValue))\"\r\n [class.active]=\"item.dateValue.getFullYear()===pendingYear && item.dateValue.getMonth()===pendingMonthIndex && item.dateValue.getDate()===pendingDay\"\r\n (click)=\"onItemClick(item.dateValue)\">\r\n {{ item.date }}</div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"month-picker-session\" [class.active]=\"monthPickerActive\">\r\n <core-month-picker [lang]=\"lang\" [monthObject$]=\"currentMonthObject$\" (onChange)=\"onMonthObjectChange($event)\" (onYearClick)=\"onMonthPickerYearClick($event)\"></core-month-picker>\r\n </div>\r\n <div class=\"year-picker-session\" [class.active]=\"yearPickerActive\">\r\n <core-year-picker [lang]=\"lang\" (onChange)=\"onYearPicked($event)\"></core-year-picker>\r\n </div>\r\n <div class=\"footer-wrapper\">\r\n <div class=\"cdp-footer\">\r\n <div class=\"clear\" [class.opacity-0]=\"!!!textValue\" (click)=\"clear()\">{{ 'UI.CORE_DATE_PICKER_CLEAR' | translate: lang }}</div>\r\n <div class=\"digi-watch\"></div>\r\n <div class=\"today\" (click)=\"goToday()\">{{ 'UI.CORE_DATE_PICKER_TODAY' | translate: lang }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".core-date-picker-container{--indicator-height: 39px;--popup-z-index: 99999999;--popup-width: 300px;--popup-height: 400px;--popup-bg-color: white;--popup-x-padding: 12px;--cell-size: 0px;--arrow-font-size: 28px;--font-size: 13px;--font-bold: 700;--font-light: 400;--hover-bg-color: #358ccb;--active-bg-color: cadetblue;--scroll-distance: calc(var(--cell-size) * 6);position:relative;font-weight:var(--font-light);font-size:var(--font-size)}.core-date-picker-container input[type=checkbox]{display:none}.core-date-picker-container label.icon{position:absolute;top:3px;right:3px}.core-date-picker-container label.icon:before{content:\"\";display:inline-block;aspect-ratio:1/1;width:var(--indicator-height);height:var(--indicator-height);border-radius:3px;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzkiIGhlaWdodD0iMzkiIHZpZXdCb3g9IjAgMCAzOSAzOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjM5IiBoZWlnaHQ9IjM5IiBmaWxsPSIjRjVGNUY1Ii8+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8wXzEpIj4KPHJlY3Qgd2lkdGg9IjE5MjAiIGhlaWdodD0iMTM5NyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEyNjggLTg0MikiIGZpbGw9IiNGMUYxRjEiLz4KPHJlY3QgeD0iLTEyNjgiIHk9Ii04NDIiIHdpZHRoPSIxOTIwIiBoZWlnaHQ9IjEzOTciIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuMyIvPgo8cmVjdCB4PSItNjgyIiB5PSItNjU4IiB3aWR0aD0iNzUwIiBoZWlnaHQ9Ijk5OSIgcng9IjEwIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCB4PSItMjkwLjUiIHk9Ii0yLjUiIHdpZHRoPSIzMzIiIGhlaWdodD0iNDQiIHJ4PSI0LjUiIGZpbGw9IndoaXRlIiBzdHJva2U9IiNEMUQxRDEiLz4KPHJlY3Qgd2lkdGg9IjM5IiBoZWlnaHQ9IjM5IiByeD0iMyIgZmlsbD0iI0U5RTlFOSIvPgo8cGF0aCBkPSJNMjYuOTAwMSAxMS4wOTkxSDEyLjE5OTdDMTEuMDM5OCAxMS4wOTkxIDEwLjA5OTYgMTIuMDM5MyAxMC4wOTk2IDEzLjE5OTJWMjcuODk5NkMxMC4wOTk2IDI5LjA1OTQgMTEuMDM5OCAyOS45OTk2IDEyLjE5OTcgMjkuOTk5NkgyNi45MDAxQzI4LjA1OTkgMjkuOTk5NiAyOS4wMDAxIDI5LjA1OTQgMjkuMDAwMSAyNy44OTk2VjEzLjE5OTJDMjkuMDAwMSAxMi4wMzkzIDI4LjA1OTkgMTEuMDk5MSAyNi45MDAxIDExLjA5OTFaIiBzdHJva2U9IiM4NDg0ODQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0yMy43NTA1IDguOTk5NTFWMTMuMTk5NiIgc3Ryb2tlPSIjODQ4NDg0IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTUuMzQ5NiA4Ljk5OTUxVjEzLjE5OTYiIHN0cm9rZT0iIzg0ODQ4NCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTEwLjA5OTYgMTcuMzk5NEgyOS4wMDAxIiBzdHJva2U9IiM4NDg0ODQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMF8xIj4KPHJlY3Qgd2lkdGg9IjE5MjAiIGhlaWdodD0iMTM5NyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMjY4IC04NDIpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) 0px 50% no-repeat;background-size:cover;cursor:pointer}.core-date-picker-container .tl-date-picker-popup{position:absolute;right:0;overflow:hidden;z-index:var(--popup-z-index);width:var(--popup-width);height:var(--popup-height);background-color:var(--popup-bg-color);box-shadow:var(--decoration-box-shadow);border-radius:3px;padding:0 12px;display:none}.core-date-picker-container .tl-date-picker-popup.open{display:block}.core-date-picker-container .month-picker-session,.core-date-picker-container .year-picker-session{display:none}.core-date-picker-container .month-picker-session.active,.core-date-picker-container .year-picker-session.active{display:block}.core-date-picker-container .date-picker-session.d-none{display:none}.core-date-picker-container .navigator{width:100%;display:flex;align-items:center;justify-content:space-between}.core-date-picker-container .month-dropdown{font-weight:var(--font-bold);cursor:pointer}.core-date-picker-container .arrows{display:flex;align-items:center;justify-content:flex-end}.core-date-picker-container .arrows>div{margin:0 2px}.core-date-picker-container .arrows>div:before{font-family:feather;font-size:var(--arrow-font-size);cursor:pointer}.core-date-picker-container .arrows>div:hover:before{background-color:var(--hover-bg-color)}.core-date-picker-container .go-up:before{content:\"\\e914\"}.core-date-picker-container .go-down:before{content:\"\\e90c\"}.core-date-picker-container ul{padding:0;margin:0}.core-date-picker-container ul{height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7)}.core-date-picker-container ul>li{user-select:none;-webkit-user-select:none;position:relative;display:inline-block;width:var(--cell-size);height:var(--cell-size);cursor:pointer}.core-date-picker-container .calendar-body-container{width:100%;height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7 * 6);position:absolute;z-index:1;background-color:var(--popup-bg-color);overflow:hidden}.core-date-picker-container .calendar-body>ul>li>div:hover{background-color:var(--hover-bg-color)}.core-date-picker-container .calendar-body>ul>li>div.active{background-color:var(--active-bg-color)}.core-date-picker-container .calendar-body>ul>li>div.out-of-month{color:#d3d3d3}.core-date-picker-container .calendar-body>ul>li>div.out-of-range{-webkit-user-select:none;user-select:none;cursor:default;opacity:.2!important}.core-date-picker-container .calendar-body>ul>li>div.out-of-range:hover{background-color:var(--popup-bg-color)}.core-date-picker-container ul>li>div{width:100%;height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7);display:flex;align-items:center;justify-content:center;border-radius:5px}.core-date-picker-container .t7{color:#07b7ee}.core-date-picker-container .cn{color:#ef2b58}.core-date-picker-container .weekday-header{font-weight:var(--font-bold)}.core-date-picker-container .calendar-body{position:absolute;bottom:0}.core-date-picker-container .tl-datepicker-direction:checked~.tl-date-picker-popup>.calendar-body-container>.calendar-body{top:0}.core-date-picker-container .slide-up{animation:slide-up .25s linear}.core-date-picker-container .slide-down{animation:slide-down .25s linear}.core-date-picker-container .footer-wrapper{width:calc(var(--popup-width) - var(--popup-x-padding) * 2);position:absolute;bottom:var(--popup-x-padding);left:var(--popup-x-padding);background-color:var(--popup-bg-color)!important}.core-date-picker-container .cdp-footer{width:100%;display:flex;align-items:center;justify-content:space-between}.core-date-picker-container .today,.core-date-picker-container .clear{width:30%;height:var(--cell-size);border-radius:calc(var(--cell-size) / 2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.core-date-picker-container .today{background-color:#f37540}.core-date-picker-container .clear{background-color:brown}@keyframes slide-down{0%{top:calc(var(--scroll-distance) * -1)}to{top:0}}@keyframes slide-up{0%{top:0}to{top:calc(var(--scroll-distance) * -1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreYearPickerComponent, selector: "core-year-picker", inputs: ["id", "default"], outputs: ["onChange"] }, { kind: "component", type: CoreMonthPickerComponent, selector: "core-month-picker", inputs: ["id", "lang", "monthObject$"], outputs: ["onChange", "onYearClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
361
+ ], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "backward", first: true, predicate: ["backward"], descendants: true }, { propertyName: "calendarBody", first: true, predicate: ["calendarBody"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-date-picker-container\">\r\n <input type=\"checkbox\" [(ngModel)]=\"openState\">\r\n <input type=\"checkbox\" [(ngModel)]=\"monthPickerActive\">\r\n <input type=\"checkbox\" [(ngModel)]=\"yearPickerActive\">\r\n <input #backward type=\"checkbox\" class=\"tl-datepicker-direction\">\r\n <input #input type=\"text\" class=\"form-control\" [placeholder]=\"showPlaceholder ? 'dd/mm/yyyy' : ''\"\r\n maxlength=\"10\" [(ngModel)]=\"textValue\" [class.form-control-disabled]=\"disabled\" [disabled]=\"disabled\"><label class=\"icon\" (click)=\"toggleOpen()\"></label>\r\n <div class=\"tl-date-picker-popup\" [class.open]=\"openState\">\r\n <div class=\"date-picker-session\" [class.d-none]=\"monthPickerActive || yearPickerActive\">\r\n <div class=\"navigator\">\r\n <label class=\"month-dropdown\" (click)=\"toggleMonthPickerActive()\">{{ currentMonthText }} {{\r\n currentMonthObject$.value.year }}</label>\r\n <div class=\"arrows\">\r\n <div class=\"go-up\" (click)=\"goBackward()\"></div>\r\n <div class=\"go-down\" (click)=\"goForeward()\"></div>\r\n </div>\r\n </div>\r\n <div class=\"weekday-header\">\r\n <ul>\r\n <li *ngFor=\"let day of headerWeekdays; let i = index\" [class.t7]=\"i===5\" [class.cn]=\"i===6\">\r\n <div>{{ day }}</div>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"calendar-body-container\">\r\n <div #calendarBody class=\"calendar-body\" [class.slide-up]=\"direction===1\"\r\n [class.slide-down]=\"direction===-1\">\r\n <ul *ngFor=\"let week of data\">\r\n <li *ngFor=\"let item of week.items; let i = index\">\r\n <div [class.out-of-month]=\"!!!item.currentMonth\" [class.t7]=\"i===5\" [class.cn]=\"i===6\"\r\n [class.out-of-range]=\"!!rangeLimit && !!!((item.dateValue>=rangeLimit.minDate) && (rangeLimit.maxDate>=item.dateValue))\"\r\n [class.active]=\"item.dateValue.getFullYear()===pendingYear && item.dateValue.getMonth()===pendingMonthIndex && item.dateValue.getDate()===pendingDay\"\r\n (click)=\"onItemClick(item.dateValue)\">\r\n {{ item.date }}</div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"month-picker-session\" [class.active]=\"monthPickerActive\">\r\n <core-month-picker [lang]=\"lang\" [monthObject$]=\"currentMonthObject$\" (onChange)=\"onMonthObjectChange($event)\" (onYearClick)=\"onMonthPickerYearClick($event)\"></core-month-picker>\r\n </div>\r\n <div class=\"year-picker-session\" [class.active]=\"yearPickerActive\">\r\n <core-year-picker [lang]=\"lang\" (onChange)=\"onYearPicked($event)\"></core-year-picker>\r\n </div>\r\n <div class=\"footer-wrapper\">\r\n <div class=\"cdp-footer\">\r\n <div class=\"clear\" [class.opacity-0]=\"!!!textValue\" (click)=\"clear()\">{{ 'UI.CORE_DATE_PICKER_CLEAR' | translate: lang }}</div>\r\n <div class=\"digi-watch\"></div>\r\n <div class=\"today\" (click)=\"goToday()\">{{ 'UI.CORE_DATE_PICKER_TODAY' | translate: lang }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".core-date-picker-container{--indicator-height: 39px;--popup-z-index: 99999999;--popup-width: 300px;--popup-height: 400px;--popup-bg-color: white;--popup-x-padding: 12px;--cell-size: 0px;--arrow-font-size: 28px;--font-size: 13px;--font-bold: 700;--font-light: 400;--hover-bg-color: #358ccb;--active-bg-color: cadetblue;--scroll-distance: calc(var(--cell-size) * 6);position:relative;font-weight:var(--font-light);font-size:var(--font-size)}.core-date-picker-container input[type=checkbox]{display:none}.core-date-picker-container label.icon{position:absolute;top:3px;right:3px}.core-date-picker-container label.icon:before{content:\"\";display:inline-block;aspect-ratio:1/1;width:var(--indicator-height);height:var(--indicator-height);border-radius:3px;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzkiIGhlaWdodD0iMzkiIHZpZXdCb3g9IjAgMCAzOSAzOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjM5IiBoZWlnaHQ9IjM5IiBmaWxsPSIjRjVGNUY1Ii8+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8wXzEpIj4KPHJlY3Qgd2lkdGg9IjE5MjAiIGhlaWdodD0iMTM5NyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEyNjggLTg0MikiIGZpbGw9IiNGMUYxRjEiLz4KPHJlY3QgeD0iLTEyNjgiIHk9Ii04NDIiIHdpZHRoPSIxOTIwIiBoZWlnaHQ9IjEzOTciIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuMyIvPgo8cmVjdCB4PSItNjgyIiB5PSItNjU4IiB3aWR0aD0iNzUwIiBoZWlnaHQ9Ijk5OSIgcng9IjEwIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCB4PSItMjkwLjUiIHk9Ii0yLjUiIHdpZHRoPSIzMzIiIGhlaWdodD0iNDQiIHJ4PSI0LjUiIGZpbGw9IndoaXRlIiBzdHJva2U9IiNEMUQxRDEiLz4KPHJlY3Qgd2lkdGg9IjM5IiBoZWlnaHQ9IjM5IiByeD0iMyIgZmlsbD0iI0U5RTlFOSIvPgo8cGF0aCBkPSJNMjYuOTAwMSAxMS4wOTkxSDEyLjE5OTdDMTEuMDM5OCAxMS4wOTkxIDEwLjA5OTYgMTIuMDM5MyAxMC4wOTk2IDEzLjE5OTJWMjcuODk5NkMxMC4wOTk2IDI5LjA1OTQgMTEuMDM5OCAyOS45OTk2IDEyLjE5OTcgMjkuOTk5NkgyNi45MDAxQzI4LjA1OTkgMjkuOTk5NiAyOS4wMDAxIDI5LjA1OTQgMjkuMDAwMSAyNy44OTk2VjEzLjE5OTJDMjkuMDAwMSAxMi4wMzkzIDI4LjA1OTkgMTEuMDk5MSAyNi45MDAxIDExLjA5OTFaIiBzdHJva2U9IiM4NDg0ODQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0yMy43NTA1IDguOTk5NTFWMTMuMTk5NiIgc3Ryb2tlPSIjODQ4NDg0IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTUuMzQ5NiA4Ljk5OTUxVjEzLjE5OTYiIHN0cm9rZT0iIzg0ODQ4NCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTEwLjA5OTYgMTcuMzk5NEgyOS4wMDAxIiBzdHJva2U9IiM4NDg0ODQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMF8xIj4KPHJlY3Qgd2lkdGg9IjE5MjAiIGhlaWdodD0iMTM5NyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMjY4IC04NDIpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) 0px 50% no-repeat;background-size:cover;cursor:pointer}.core-date-picker-container .tl-date-picker-popup{position:absolute;right:0;overflow:hidden;z-index:var(--popup-z-index);width:var(--popup-width);height:var(--popup-height);background-color:var(--popup-bg-color);box-shadow:var(--decoration-box-shadow);border-radius:3px;padding:0 12px;display:none}.core-date-picker-container .tl-date-picker-popup.open{display:block}.core-date-picker-container .month-picker-session,.core-date-picker-container .year-picker-session{display:none}.core-date-picker-container .month-picker-session.active,.core-date-picker-container .year-picker-session.active{display:block}.core-date-picker-container .date-picker-session.d-none{display:none}.core-date-picker-container .navigator{width:100%;display:flex;align-items:center;justify-content:space-between}.core-date-picker-container .month-dropdown{font-weight:var(--font-bold);cursor:pointer}.core-date-picker-container .arrows{display:flex;align-items:center;justify-content:flex-end}.core-date-picker-container .arrows>div{margin:0 2px}.core-date-picker-container .arrows>div:before{font-family:feather;font-size:var(--arrow-font-size);cursor:pointer}.core-date-picker-container .arrows>div:hover:before{background-color:var(--hover-bg-color)}.core-date-picker-container .go-up:before{content:\"\\e914\"}.core-date-picker-container .go-down:before{content:\"\\e90c\"}.core-date-picker-container ul{padding:0;margin:0}.core-date-picker-container ul{height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7)}.core-date-picker-container ul>li{user-select:none;-webkit-user-select:none;position:relative;display:inline-block!important;width:var(--cell-size);height:var(--cell-size);cursor:pointer}.core-date-picker-container .calendar-body-container{width:100%;height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7 * 6);position:absolute;z-index:1;background-color:var(--popup-bg-color);overflow:hidden}.core-date-picker-container .calendar-body>ul>li>div:hover{background-color:var(--hover-bg-color)}.core-date-picker-container .calendar-body>ul>li>div.active{background-color:var(--active-bg-color)}.core-date-picker-container .calendar-body>ul>li>div.out-of-month{color:#d3d3d3}.core-date-picker-container .calendar-body>ul>li>div.out-of-range{-webkit-user-select:none;user-select:none;cursor:default;opacity:.2!important}.core-date-picker-container .calendar-body>ul>li>div.out-of-range:hover{background-color:var(--popup-bg-color)}.core-date-picker-container ul>li>div{width:100%;height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7);display:flex;align-items:center;justify-content:center;border-radius:5px}.core-date-picker-container .t7{color:#07b7ee}.core-date-picker-container .cn{color:#ef2b58}.core-date-picker-container .weekday-header{font-weight:var(--font-bold)}.core-date-picker-container .calendar-body{position:absolute;bottom:0}.core-date-picker-container .tl-datepicker-direction:checked~.tl-date-picker-popup>.calendar-body-container>.calendar-body{top:0}.core-date-picker-container .slide-up{animation:slide-up .25s linear}.core-date-picker-container .slide-down{animation:slide-down .25s linear}.core-date-picker-container .footer-wrapper{width:calc(var(--popup-width) - var(--popup-x-padding) * 2);position:absolute;bottom:var(--popup-x-padding);left:var(--popup-x-padding);background-color:var(--popup-bg-color)!important}.core-date-picker-container .cdp-footer{width:100%;display:flex;align-items:center;justify-content:space-between}.core-date-picker-container .today,.core-date-picker-container .clear{width:30%;height:var(--cell-size);border-radius:calc(var(--cell-size) / 2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.core-date-picker-container .today{background-color:#f37540}.core-date-picker-container .clear{background-color:brown}@keyframes slide-down{0%{top:calc(var(--scroll-distance) * -1)}to{top:0}}@keyframes slide-up{0%{top:0}to{top:calc(var(--scroll-distance) * -1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreYearPickerComponent, selector: "core-year-picker", inputs: ["id", "default"], outputs: ["onChange"] }, { kind: "component", type: CoreMonthPickerComponent, selector: "core-month-picker", inputs: ["id", "lang", "monthObject$"], outputs: ["onChange", "onYearClick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
362
362
  }
363
363
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreDatePickerComponent, decorators: [{
364
364
  type: Component,
@@ -374,7 +374,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
374
374
  multi: true,
375
375
  useExisting: CoreDatePickerComponent
376
376
  }
377
- ], template: "<div #container class=\"core-date-picker-container\">\r\n <input type=\"checkbox\" [(ngModel)]=\"openState\">\r\n <input type=\"checkbox\" [(ngModel)]=\"monthPickerActive\">\r\n <input type=\"checkbox\" [(ngModel)]=\"yearPickerActive\">\r\n <input #backward type=\"checkbox\" class=\"tl-datepicker-direction\">\r\n <input #input type=\"text\" class=\"form-control\" [placeholder]=\"showPlaceholder ? 'dd/mm/yyyy' : ''\"\r\n maxlength=\"10\" [(ngModel)]=\"textValue\" [class.form-control-disabled]=\"disabled\" [disabled]=\"disabled\"><label class=\"icon\" (click)=\"toggleOpen()\"></label>\r\n <div class=\"tl-date-picker-popup\" [class.open]=\"openState\">\r\n <div class=\"date-picker-session\" [class.d-none]=\"monthPickerActive || yearPickerActive\">\r\n <div class=\"navigator\">\r\n <label class=\"month-dropdown\" (click)=\"toggleMonthPickerActive()\">{{ currentMonthText }} {{\r\n currentMonthObject$.value.year }}</label>\r\n <div class=\"arrows\">\r\n <div class=\"go-up\" (click)=\"goBackward()\"></div>\r\n <div class=\"go-down\" (click)=\"goForeward()\"></div>\r\n </div>\r\n </div>\r\n <div class=\"weekday-header\">\r\n <ul>\r\n <li *ngFor=\"let day of headerWeekdays; let i = index\" [class.t7]=\"i===5\" [class.cn]=\"i===6\">\r\n <div>{{ day }}</div>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"calendar-body-container\">\r\n <div #calendarBody class=\"calendar-body\" [class.slide-up]=\"direction===1\"\r\n [class.slide-down]=\"direction===-1\">\r\n <ul *ngFor=\"let week of data\">\r\n <li *ngFor=\"let item of week.items; let i = index\">\r\n <div [class.out-of-month]=\"!!!item.currentMonth\" [class.t7]=\"i===5\" [class.cn]=\"i===6\"\r\n [class.out-of-range]=\"!!rangeLimit && !!!((item.dateValue>=rangeLimit.minDate) && (rangeLimit.maxDate>=item.dateValue))\"\r\n [class.active]=\"item.dateValue.getFullYear()===pendingYear && item.dateValue.getMonth()===pendingMonthIndex && item.dateValue.getDate()===pendingDay\"\r\n (click)=\"onItemClick(item.dateValue)\">\r\n {{ item.date }}</div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"month-picker-session\" [class.active]=\"monthPickerActive\">\r\n <core-month-picker [lang]=\"lang\" [monthObject$]=\"currentMonthObject$\" (onChange)=\"onMonthObjectChange($event)\" (onYearClick)=\"onMonthPickerYearClick($event)\"></core-month-picker>\r\n </div>\r\n <div class=\"year-picker-session\" [class.active]=\"yearPickerActive\">\r\n <core-year-picker [lang]=\"lang\" (onChange)=\"onYearPicked($event)\"></core-year-picker>\r\n </div>\r\n <div class=\"footer-wrapper\">\r\n <div class=\"cdp-footer\">\r\n <div class=\"clear\" [class.opacity-0]=\"!!!textValue\" (click)=\"clear()\">{{ 'UI.CORE_DATE_PICKER_CLEAR' | translate: lang }}</div>\r\n <div class=\"digi-watch\"></div>\r\n <div class=\"today\" (click)=\"goToday()\">{{ 'UI.CORE_DATE_PICKER_TODAY' | translate: lang }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".core-date-picker-container{--indicator-height: 39px;--popup-z-index: 99999999;--popup-width: 300px;--popup-height: 400px;--popup-bg-color: white;--popup-x-padding: 12px;--cell-size: 0px;--arrow-font-size: 28px;--font-size: 13px;--font-bold: 700;--font-light: 400;--hover-bg-color: #358ccb;--active-bg-color: cadetblue;--scroll-distance: calc(var(--cell-size) * 6);position:relative;font-weight:var(--font-light);font-size:var(--font-size)}.core-date-picker-container input[type=checkbox]{display:none}.core-date-picker-container label.icon{position:absolute;top:3px;right:3px}.core-date-picker-container label.icon:before{content:\"\";display:inline-block;aspect-ratio:1/1;width:var(--indicator-height);height:var(--indicator-height);border-radius:3px;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzkiIGhlaWdodD0iMzkiIHZpZXdCb3g9IjAgMCAzOSAzOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjM5IiBoZWlnaHQ9IjM5IiBmaWxsPSIjRjVGNUY1Ii8+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8wXzEpIj4KPHJlY3Qgd2lkdGg9IjE5MjAiIGhlaWdodD0iMTM5NyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEyNjggLTg0MikiIGZpbGw9IiNGMUYxRjEiLz4KPHJlY3QgeD0iLTEyNjgiIHk9Ii04NDIiIHdpZHRoPSIxOTIwIiBoZWlnaHQ9IjEzOTciIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuMyIvPgo8cmVjdCB4PSItNjgyIiB5PSItNjU4IiB3aWR0aD0iNzUwIiBoZWlnaHQ9Ijk5OSIgcng9IjEwIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCB4PSItMjkwLjUiIHk9Ii0yLjUiIHdpZHRoPSIzMzIiIGhlaWdodD0iNDQiIHJ4PSI0LjUiIGZpbGw9IndoaXRlIiBzdHJva2U9IiNEMUQxRDEiLz4KPHJlY3Qgd2lkdGg9IjM5IiBoZWlnaHQ9IjM5IiByeD0iMyIgZmlsbD0iI0U5RTlFOSIvPgo8cGF0aCBkPSJNMjYuOTAwMSAxMS4wOTkxSDEyLjE5OTdDMTEuMDM5OCAxMS4wOTkxIDEwLjA5OTYgMTIuMDM5MyAxMC4wOTk2IDEzLjE5OTJWMjcuODk5NkMxMC4wOTk2IDI5LjA1OTQgMTEuMDM5OCAyOS45OTk2IDEyLjE5OTcgMjkuOTk5NkgyNi45MDAxQzI4LjA1OTkgMjkuOTk5NiAyOS4wMDAxIDI5LjA1OTQgMjkuMDAwMSAyNy44OTk2VjEzLjE5OTJDMjkuMDAwMSAxMi4wMzkzIDI4LjA1OTkgMTEuMDk5MSAyNi45MDAxIDExLjA5OTFaIiBzdHJva2U9IiM4NDg0ODQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0yMy43NTA1IDguOTk5NTFWMTMuMTk5NiIgc3Ryb2tlPSIjODQ4NDg0IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTUuMzQ5NiA4Ljk5OTUxVjEzLjE5OTYiIHN0cm9rZT0iIzg0ODQ4NCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTEwLjA5OTYgMTcuMzk5NEgyOS4wMDAxIiBzdHJva2U9IiM4NDg0ODQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMF8xIj4KPHJlY3Qgd2lkdGg9IjE5MjAiIGhlaWdodD0iMTM5NyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMjY4IC04NDIpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) 0px 50% no-repeat;background-size:cover;cursor:pointer}.core-date-picker-container .tl-date-picker-popup{position:absolute;right:0;overflow:hidden;z-index:var(--popup-z-index);width:var(--popup-width);height:var(--popup-height);background-color:var(--popup-bg-color);box-shadow:var(--decoration-box-shadow);border-radius:3px;padding:0 12px;display:none}.core-date-picker-container .tl-date-picker-popup.open{display:block}.core-date-picker-container .month-picker-session,.core-date-picker-container .year-picker-session{display:none}.core-date-picker-container .month-picker-session.active,.core-date-picker-container .year-picker-session.active{display:block}.core-date-picker-container .date-picker-session.d-none{display:none}.core-date-picker-container .navigator{width:100%;display:flex;align-items:center;justify-content:space-between}.core-date-picker-container .month-dropdown{font-weight:var(--font-bold);cursor:pointer}.core-date-picker-container .arrows{display:flex;align-items:center;justify-content:flex-end}.core-date-picker-container .arrows>div{margin:0 2px}.core-date-picker-container .arrows>div:before{font-family:feather;font-size:var(--arrow-font-size);cursor:pointer}.core-date-picker-container .arrows>div:hover:before{background-color:var(--hover-bg-color)}.core-date-picker-container .go-up:before{content:\"\\e914\"}.core-date-picker-container .go-down:before{content:\"\\e90c\"}.core-date-picker-container ul{padding:0;margin:0}.core-date-picker-container ul{height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7)}.core-date-picker-container ul>li{user-select:none;-webkit-user-select:none;position:relative;display:inline-block;width:var(--cell-size);height:var(--cell-size);cursor:pointer}.core-date-picker-container .calendar-body-container{width:100%;height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7 * 6);position:absolute;z-index:1;background-color:var(--popup-bg-color);overflow:hidden}.core-date-picker-container .calendar-body>ul>li>div:hover{background-color:var(--hover-bg-color)}.core-date-picker-container .calendar-body>ul>li>div.active{background-color:var(--active-bg-color)}.core-date-picker-container .calendar-body>ul>li>div.out-of-month{color:#d3d3d3}.core-date-picker-container .calendar-body>ul>li>div.out-of-range{-webkit-user-select:none;user-select:none;cursor:default;opacity:.2!important}.core-date-picker-container .calendar-body>ul>li>div.out-of-range:hover{background-color:var(--popup-bg-color)}.core-date-picker-container ul>li>div{width:100%;height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7);display:flex;align-items:center;justify-content:center;border-radius:5px}.core-date-picker-container .t7{color:#07b7ee}.core-date-picker-container .cn{color:#ef2b58}.core-date-picker-container .weekday-header{font-weight:var(--font-bold)}.core-date-picker-container .calendar-body{position:absolute;bottom:0}.core-date-picker-container .tl-datepicker-direction:checked~.tl-date-picker-popup>.calendar-body-container>.calendar-body{top:0}.core-date-picker-container .slide-up{animation:slide-up .25s linear}.core-date-picker-container .slide-down{animation:slide-down .25s linear}.core-date-picker-container .footer-wrapper{width:calc(var(--popup-width) - var(--popup-x-padding) * 2);position:absolute;bottom:var(--popup-x-padding);left:var(--popup-x-padding);background-color:var(--popup-bg-color)!important}.core-date-picker-container .cdp-footer{width:100%;display:flex;align-items:center;justify-content:space-between}.core-date-picker-container .today,.core-date-picker-container .clear{width:30%;height:var(--cell-size);border-radius:calc(var(--cell-size) / 2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.core-date-picker-container .today{background-color:#f37540}.core-date-picker-container .clear{background-color:brown}@keyframes slide-down{0%{top:calc(var(--scroll-distance) * -1)}to{top:0}}@keyframes slide-up{0%{top:0}to{top:calc(var(--scroll-distance) * -1)}}\n"] }]
377
+ ], template: "<div #container class=\"core-date-picker-container\">\r\n <input type=\"checkbox\" [(ngModel)]=\"openState\">\r\n <input type=\"checkbox\" [(ngModel)]=\"monthPickerActive\">\r\n <input type=\"checkbox\" [(ngModel)]=\"yearPickerActive\">\r\n <input #backward type=\"checkbox\" class=\"tl-datepicker-direction\">\r\n <input #input type=\"text\" class=\"form-control\" [placeholder]=\"showPlaceholder ? 'dd/mm/yyyy' : ''\"\r\n maxlength=\"10\" [(ngModel)]=\"textValue\" [class.form-control-disabled]=\"disabled\" [disabled]=\"disabled\"><label class=\"icon\" (click)=\"toggleOpen()\"></label>\r\n <div class=\"tl-date-picker-popup\" [class.open]=\"openState\">\r\n <div class=\"date-picker-session\" [class.d-none]=\"monthPickerActive || yearPickerActive\">\r\n <div class=\"navigator\">\r\n <label class=\"month-dropdown\" (click)=\"toggleMonthPickerActive()\">{{ currentMonthText }} {{\r\n currentMonthObject$.value.year }}</label>\r\n <div class=\"arrows\">\r\n <div class=\"go-up\" (click)=\"goBackward()\"></div>\r\n <div class=\"go-down\" (click)=\"goForeward()\"></div>\r\n </div>\r\n </div>\r\n <div class=\"weekday-header\">\r\n <ul>\r\n <li *ngFor=\"let day of headerWeekdays; let i = index\" [class.t7]=\"i===5\" [class.cn]=\"i===6\">\r\n <div>{{ day }}</div>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"calendar-body-container\">\r\n <div #calendarBody class=\"calendar-body\" [class.slide-up]=\"direction===1\"\r\n [class.slide-down]=\"direction===-1\">\r\n <ul *ngFor=\"let week of data\">\r\n <li *ngFor=\"let item of week.items; let i = index\">\r\n <div [class.out-of-month]=\"!!!item.currentMonth\" [class.t7]=\"i===5\" [class.cn]=\"i===6\"\r\n [class.out-of-range]=\"!!rangeLimit && !!!((item.dateValue>=rangeLimit.minDate) && (rangeLimit.maxDate>=item.dateValue))\"\r\n [class.active]=\"item.dateValue.getFullYear()===pendingYear && item.dateValue.getMonth()===pendingMonthIndex && item.dateValue.getDate()===pendingDay\"\r\n (click)=\"onItemClick(item.dateValue)\">\r\n {{ item.date }}</div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"month-picker-session\" [class.active]=\"monthPickerActive\">\r\n <core-month-picker [lang]=\"lang\" [monthObject$]=\"currentMonthObject$\" (onChange)=\"onMonthObjectChange($event)\" (onYearClick)=\"onMonthPickerYearClick($event)\"></core-month-picker>\r\n </div>\r\n <div class=\"year-picker-session\" [class.active]=\"yearPickerActive\">\r\n <core-year-picker [lang]=\"lang\" (onChange)=\"onYearPicked($event)\"></core-year-picker>\r\n </div>\r\n <div class=\"footer-wrapper\">\r\n <div class=\"cdp-footer\">\r\n <div class=\"clear\" [class.opacity-0]=\"!!!textValue\" (click)=\"clear()\">{{ 'UI.CORE_DATE_PICKER_CLEAR' | translate: lang }}</div>\r\n <div class=\"digi-watch\"></div>\r\n <div class=\"today\" (click)=\"goToday()\">{{ 'UI.CORE_DATE_PICKER_TODAY' | translate: lang }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".core-date-picker-container{--indicator-height: 39px;--popup-z-index: 99999999;--popup-width: 300px;--popup-height: 400px;--popup-bg-color: white;--popup-x-padding: 12px;--cell-size: 0px;--arrow-font-size: 28px;--font-size: 13px;--font-bold: 700;--font-light: 400;--hover-bg-color: #358ccb;--active-bg-color: cadetblue;--scroll-distance: calc(var(--cell-size) * 6);position:relative;font-weight:var(--font-light);font-size:var(--font-size)}.core-date-picker-container input[type=checkbox]{display:none}.core-date-picker-container label.icon{position:absolute;top:3px;right:3px}.core-date-picker-container label.icon:before{content:\"\";display:inline-block;aspect-ratio:1/1;width:var(--indicator-height);height:var(--indicator-height);border-radius:3px;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzkiIGhlaWdodD0iMzkiIHZpZXdCb3g9IjAgMCAzOSAzOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjM5IiBoZWlnaHQ9IjM5IiBmaWxsPSIjRjVGNUY1Ii8+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8wXzEpIj4KPHJlY3Qgd2lkdGg9IjE5MjAiIGhlaWdodD0iMTM5NyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEyNjggLTg0MikiIGZpbGw9IiNGMUYxRjEiLz4KPHJlY3QgeD0iLTEyNjgiIHk9Ii04NDIiIHdpZHRoPSIxOTIwIiBoZWlnaHQ9IjEzOTciIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuMyIvPgo8cmVjdCB4PSItNjgyIiB5PSItNjU4IiB3aWR0aD0iNzUwIiBoZWlnaHQ9Ijk5OSIgcng9IjEwIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCB4PSItMjkwLjUiIHk9Ii0yLjUiIHdpZHRoPSIzMzIiIGhlaWdodD0iNDQiIHJ4PSI0LjUiIGZpbGw9IndoaXRlIiBzdHJva2U9IiNEMUQxRDEiLz4KPHJlY3Qgd2lkdGg9IjM5IiBoZWlnaHQ9IjM5IiByeD0iMyIgZmlsbD0iI0U5RTlFOSIvPgo8cGF0aCBkPSJNMjYuOTAwMSAxMS4wOTkxSDEyLjE5OTdDMTEuMDM5OCAxMS4wOTkxIDEwLjA5OTYgMTIuMDM5MyAxMC4wOTk2IDEzLjE5OTJWMjcuODk5NkMxMC4wOTk2IDI5LjA1OTQgMTEuMDM5OCAyOS45OTk2IDEyLjE5OTcgMjkuOTk5NkgyNi45MDAxQzI4LjA1OTkgMjkuOTk5NiAyOS4wMDAxIDI5LjA1OTQgMjkuMDAwMSAyNy44OTk2VjEzLjE5OTJDMjkuMDAwMSAxMi4wMzkzIDI4LjA1OTkgMTEuMDk5MSAyNi45MDAxIDExLjA5OTFaIiBzdHJva2U9IiM4NDg0ODQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0yMy43NTA1IDguOTk5NTFWMTMuMTk5NiIgc3Ryb2tlPSIjODQ4NDg0IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTUuMzQ5NiA4Ljk5OTUxVjEzLjE5OTYiIHN0cm9rZT0iIzg0ODQ4NCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTEwLjA5OTYgMTcuMzk5NEgyOS4wMDAxIiBzdHJva2U9IiM4NDg0ODQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMF8xIj4KPHJlY3Qgd2lkdGg9IjE5MjAiIGhlaWdodD0iMTM5NyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMjY4IC04NDIpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) 0px 50% no-repeat;background-size:cover;cursor:pointer}.core-date-picker-container .tl-date-picker-popup{position:absolute;right:0;overflow:hidden;z-index:var(--popup-z-index);width:var(--popup-width);height:var(--popup-height);background-color:var(--popup-bg-color);box-shadow:var(--decoration-box-shadow);border-radius:3px;padding:0 12px;display:none}.core-date-picker-container .tl-date-picker-popup.open{display:block}.core-date-picker-container .month-picker-session,.core-date-picker-container .year-picker-session{display:none}.core-date-picker-container .month-picker-session.active,.core-date-picker-container .year-picker-session.active{display:block}.core-date-picker-container .date-picker-session.d-none{display:none}.core-date-picker-container .navigator{width:100%;display:flex;align-items:center;justify-content:space-between}.core-date-picker-container .month-dropdown{font-weight:var(--font-bold);cursor:pointer}.core-date-picker-container .arrows{display:flex;align-items:center;justify-content:flex-end}.core-date-picker-container .arrows>div{margin:0 2px}.core-date-picker-container .arrows>div:before{font-family:feather;font-size:var(--arrow-font-size);cursor:pointer}.core-date-picker-container .arrows>div:hover:before{background-color:var(--hover-bg-color)}.core-date-picker-container .go-up:before{content:\"\\e914\"}.core-date-picker-container .go-down:before{content:\"\\e90c\"}.core-date-picker-container ul{padding:0;margin:0}.core-date-picker-container ul{height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7)}.core-date-picker-container ul>li{user-select:none;-webkit-user-select:none;position:relative;display:inline-block!important;width:var(--cell-size);height:var(--cell-size);cursor:pointer}.core-date-picker-container .calendar-body-container{width:100%;height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7 * 6);position:absolute;z-index:1;background-color:var(--popup-bg-color);overflow:hidden}.core-date-picker-container .calendar-body>ul>li>div:hover{background-color:var(--hover-bg-color)}.core-date-picker-container .calendar-body>ul>li>div.active{background-color:var(--active-bg-color)}.core-date-picker-container .calendar-body>ul>li>div.out-of-month{color:#d3d3d3}.core-date-picker-container .calendar-body>ul>li>div.out-of-range{-webkit-user-select:none;user-select:none;cursor:default;opacity:.2!important}.core-date-picker-container .calendar-body>ul>li>div.out-of-range:hover{background-color:var(--popup-bg-color)}.core-date-picker-container ul>li>div{width:100%;height:calc((var(--popup-width) - var(--popup-x-padding) * 2) / 7);display:flex;align-items:center;justify-content:center;border-radius:5px}.core-date-picker-container .t7{color:#07b7ee}.core-date-picker-container .cn{color:#ef2b58}.core-date-picker-container .weekday-header{font-weight:var(--font-bold)}.core-date-picker-container .calendar-body{position:absolute;bottom:0}.core-date-picker-container .tl-datepicker-direction:checked~.tl-date-picker-popup>.calendar-body-container>.calendar-body{top:0}.core-date-picker-container .slide-up{animation:slide-up .25s linear}.core-date-picker-container .slide-down{animation:slide-down .25s linear}.core-date-picker-container .footer-wrapper{width:calc(var(--popup-width) - var(--popup-x-padding) * 2);position:absolute;bottom:var(--popup-x-padding);left:var(--popup-x-padding);background-color:var(--popup-bg-color)!important}.core-date-picker-container .cdp-footer{width:100%;display:flex;align-items:center;justify-content:space-between}.core-date-picker-container .today,.core-date-picker-container .clear{width:30%;height:var(--cell-size);border-radius:calc(var(--cell-size) / 2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.core-date-picker-container .today{background-color:#f37540}.core-date-picker-container .clear{background-color:brown}@keyframes slide-down{0%{top:calc(var(--scroll-distance) * -1)}to{top:0}}@keyframes slide-up{0%{top:0}to{top:calc(var(--scroll-distance) * -1)}}\n"] }]
378
378
  }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i1.DomService }, { type: i2.CoreDatetimeService }, { type: i3.MultiLanguageService }, { type: i4.AlertService }], propDecorators: { enableTimeZoneConverter: [{
379
379
  type: Input
380
380
  }], showPlaceholder: [{
@@ -402,4 +402,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
402
402
  type: ViewChild,
403
403
  args: ['calendarBody']
404
404
  }] } });
405
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1kYXRlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1kYXRlLXBpY2tlci9jb3JlLWRhdGUtcGlja2VyL2NvcmUtZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtZGF0ZS1waWNrZXIvY29yZS1kYXRlLXBpY2tlci9jb3JlLWRhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdELFNBQVMsRUFBRSxLQUFLLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUE0QixvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFHN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQzs7Ozs7Ozs7QUE2QmpIOzs7Ozs7Ozs7O0VBVUU7QUFDRixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsNEJBQTRCO0lBaUR2RSxZQUNtQixRQUFtQixFQUNuQixVQUFzQixFQUN0QixtQkFBd0MsRUFDakQsR0FB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U0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCx1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsYUFBYTtxQkFDZCxhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcseUJBQXlCO3lCQUNyQztxQkFDRjt1TUFlUSx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDWSxRQUFRO3NCQUF6QixLQUFLO2dCQUNZLFFBQVE7c0JBQXpCLEtBQUs7Z0JBaUNrQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0YsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNLLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDTSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQsIElucHV0LCBSZW5kZXJlcjIsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XHJcbmltcG9ydCB7IENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1iYXNlL2NvcmUtZm9ybS1jb250cm9sLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZURhdGV0aW1lU2VydmljZSwgSURhdGFSb3csIElNb250aElkZW50aXR5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29yZS1kYXRldGltZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29yZVllYXJQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXllYXItcGlja2VyL2NvcmUteWVhci1waWNrZXIvY29yZS15ZWFyLXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgQ29yZU1vbnRoUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1tb250aC1waWNrZXIvY29yZS1tb250aC1waWNrZXIvY29yZS1tb250aC1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29yZURhdGVQaWNrZXJSYW5nZSB7XHJcbiAgbWluRGF0ZTogRGF0ZTtcclxuICBtYXhEYXRlOiBEYXRlO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtZGF0ZS1waWNrZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlWWVhclBpY2tlckNvbXBvbmVudCxcclxuICAgIENvcmVNb250aFBpY2tlckNvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDb3JlRGF0ZVBpY2tlckNvbXBvbmVudFxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuLypcclxuICB0aGlzIGNvbXBvbmVudCByZW5kZXJzIGl0cyBtYWluIHBhcnQgYW5kIHBvcHVwIHBhcnRcclxuICB0aGUgbWFpbiBwYXJ0IGRlYWxzIHdpdGggdXNlciBpbnB1dCBmcm9tIHBoeXNpY2FsIGtleWJvYXJkIG9yIHRvdWNoIGtleWJvYXJkXHJcbiAgdGhlIHBvcHVwIHBhcnQgY29uc2lzdHMgb2YgMSkgbmF2aWdhdG9yIDIpIGhlYWRlciAzKSBjYWxlbmRhciBib2R5IGNvbnRhaW5lciA0KSBjYWxlbmRhciBib2R5XHJcbiAgdGhlIG1vc3QgaW1wb3J0YW50IHBhcnQgb2YgdGhlbSBpczpcclxuICAgIDQpIGNhbGVuZGFyIGJvZHk6XHJcbiAgICAgIGR1ZSB2YXJpYXRpb25zIHRoZSBjYWxlbmRhciBib2R5IG1heSByZWFjaCB0byA2IHJvd3Mgb2Ygd2VlayBkYXkgc3ViLWFycmF5XHJcbiAgICAtIGZvciB2aXN1YWwsIGxvZ2ljIGFuZCBjb2Rpbmcgc2ltcGxpY2l0eSBJIHdpbGwgYWx3YXlzIHJlbmRlciBhbGwgdGhlIDYgcm93c1xyXG4gICAgc28gY2FsZW5kYXIgYm9keSBkaW1lbnNpb24gc3RheXMgdW5jaGFuZ2VkXHJcbiAgXHJcbiovXHJcbmV4cG9ydCBjbGFzcyBDb3JlRGF0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIGVuYWJsZVRpbWVab25lQ29udmVydGVyITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzaG93UGxhY2Vob2xkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwb3B1cFdpZHRoOiBudW1iZXIgPSAzMDA7XHJcbiAgQElucHV0KCkgcG9wdXBYUGFkZGluZzogbnVtYmVyID0gMTI7XHJcbiAgQElucHV0KCkgcmFuZ2VMaW1pdCE6IElDb3JlRGF0ZVBpY2tlclJhbmdlO1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlIHJlYWRvbmx5ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBvdmVycmlkZSBkaXNhYmxlZCE6IGJvb2xlYW47XHJcblxyXG5cclxuICBsaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuXHJcbiAgbGFuZyE6IHN0cmluZztcclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIG9wZW5TdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1vbnRoUGlja2VyQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgeWVhclBpY2tlckFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjZWxsU2l6ZTogbnVtYmVyID0gKHRoaXMucG9wdXBXaWR0aCAtIHRoaXMucG9wdXBYUGFkZGluZyAqIDIpIC8gNztcclxuXHJcbiAgb3ZlcnJpZGUgdmFsdWUhOiBEYXRlIHwgbnVsbDtcclxuICBwZW5kaW5nWWVhciE6IG51bWJlcjtcclxuICBwZW5kaW5nTW9udGhJbmRleCE6IG51bWJlcjtcclxuICBwZW5kaW5nRGF5OiBudW1iZXIgPSB0aGlzLnZhbHVlPy5nZXREYXRlKCkhO1xyXG5cclxuICBjdXJyZW50TW9udGhPYmplY3QkITogQmVoYXZpb3JTdWJqZWN0PElNb250aElkZW50aXR5PjtcclxuICBuZXdEYXRlITogRGF0ZTtcclxuXHJcbiAgY3VycmVudE1vbnRoVGV4dCE6IHN0cmluZztcclxuICBjdXJyZW50SG91cnMhOiBudW1iZXI7XHJcbiAgY3VycmVudE1pbnV0ZXMhOiBudW1iZXI7XHJcbiAgY3VycmVudFNlY29uZHMhOiBudW1iZXI7XHJcbiAgY3VycmVudE1pbGxpc2Vjb25kcyE6IG51bWJlcjtcclxuXHJcbiAgZGF0YSE6IElEYXRhUm93W107XHJcbiAgaGVhZGVyV2Vla2RheXMhOiBzdHJpbmdbXTtcclxuICBkaXJlY3Rpb246IG51bWJlciA9IDE7IC8vIHN0YXJ0dXAgZGlyZWN0aW9uIDEgfCAtMVxyXG5cclxuICB0ZXh0VmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXIhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2JhY2t3YXJkJykgYmFja3dhcmQhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NhbGVuZGFyQm9keScpIGNhbGVuZGFyQm9keSE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGlucHV0U3RyZWFtJCE6IE9ic2VydmFibGU8YW55PjtcclxuICBsYXN0VGV4dCE6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvbVNlcnZpY2U6IERvbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvcmVEYXRldGltZVNlcnZpY2U6IENvcmVEYXRldGltZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5uZXdEYXRlID0gISF0aGlzLnJhbmdlTGltaXQgPyB0aGlzLnJhbmdlTGltaXQubWluRGF0ZSA6IG5ldyBEYXRlKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRNb250aE9iamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElNb250aElkZW50aXR5Pih7XHJcbiAgICAgIHllYXI6IHRoaXMudmFsdWU/LmdldEZ1bGxZZWFyKCkgfHwgdGhpcy5uZXdEYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIG1vbnRoSW5kZXg6IHRoaXMudmFsdWU/LmdldE1vbnRoKCkgfHwgdGhpcy5uZXdEYXRlLmdldE1vbnRoKClcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICghIXRoaXMuZGlzYWJsZWQpIHRoaXMucmVhZG9ubHkgPSB0cnVlO1xyXG5cclxuICAgIGlmICghISF0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm5ld0RhdGU7XHJcbiAgICAgIHRoaXMubGFzdFRleHQgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZGF0ZVRvVm5TdHJpbmcodGhpcy52YWx1ZSlcclxuICAgIH1cclxuICAgICAgXHJcbiAgICB0aGlzLnBlbmRpbmdZZWFyID0gdGhpcy52YWx1ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgdGhpcy5wZW5kaW5nTW9udGhJbmRleCA9IHRoaXMudmFsdWUuZ2V0TW9udGgoKTtcclxuICAgIHRoaXMucGVuZGluZ0RheSA9IHRoaXMudmFsdWUuZ2V0RGF0ZSgpO1xyXG4gICAgdGhpcy5jdXJyZW50SG91cnMgPSB0aGlzLnZhbHVlLmdldEhvdXJzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRNaW51dGVzID0gdGhpcy52YWx1ZS5nZXRNaW51dGVzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRTZWNvbmRzID0gdGhpcy52YWx1ZS5nZXRTZWNvbmRzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRNaWxsaXNlY29uZHMgPSB0aGlzLnZhbHVlLmdldE1pbGxpc2Vjb25kcygpO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxhbmcgPSB4KVxyXG4gICAgKVxyXG5cclxuICAgIC8qXHJcbiAgICBpZiAoISEhdGhpcy5pZCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGBcclxuICAgICAgd2l0aGluIGEgcGFnZSwgdGFubGVpY2EtZGF0ZS1waWNrZXIgbmVlZHMgYW4gdW5pcXVlIHByb3BlcnR5IGlkIHZhbHVlIHRvIHdvcmsgY29ycmVjdGx5XHJcbiAgICAgIGZvciBleGFtcGxlOiA8dGFubGVpY2EtZGF0ZS1waWNrZXIgaWQ9XCJzdGFydERhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJzdGFydERhdGVcIj48L3RhbmxlaWNhLWRhdGUtcGlja2VyPlxyXG4gICAgICBgKVxyXG4gICAgfVxyXG4gICAgKi9cclxuICAgIHRoaXMuaGVhZGVyV2Vla2RheXMgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZ2V0U2hvcnRXZWVrZGF5cyh0aGlzLmxhbmcpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgIHRyaWdnZXIgYW5pbWF0aW9uIGJ5IHJlZmxvdyB0aGUgRE9NXHJcbiAgKi9cclxuICB0cmlnZ2VyUmVmbG93KCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLmNhbGVuZGFyQm9keS5uYXRpdmVFbGVtZW50O1xyXG4gICAgLy9ET00gbWFuaXB1bGF0aW9uXHJcbiAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09IDEpIHtcclxuICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShcInNsaWRlLXVwXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShcInNsaWRlLWRvd25cIik7XHJcbiAgICB9XHJcbiAgICBlbC5vZmZzZXRIZWlnaHQ7ICAvKiB0cmlnZ2VyIHJlZmxvdyAoYWx0ZXJuYXRpdmU6IGVsLm9mZnNldFdpZHRoKSAqL1xyXG4gICAgaWYgKHRoaXMuZGlyZWN0aW9uID09PSAxKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWwuY2xhc3NMaXN0LmFkZChcInNsaWRlLXVwXCIpLCAwKTsgLy8gcGFzcyB0aGUgY2FsbGJhY2sgdG8gQ2FsbGJhY2sgcXVldWUgdGhyb3VnaCBXZWJBUElzLCBzbyBpdCB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIERPTSBtYW5pcHVsYXRpb24gZW5kc1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiBlbC5jbGFzc0xpc3QuYWRkKFwic2xpZGUtZG93blwiKSwgMCk7IC8vIHBhc3MgdGhlIGNhbGxiYWNrIHRvIENhbGxiYWNrIHF1ZXVlIHRocm91Z2ggV2ViQVBJcywgc28gaXQgd2lsbCBiZSBleGVjdXRlZCBhZnRlciBET00gbWFuaXB1bGF0aW9uIGVuZHNcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICAvKlxyXG4gICAgICBUaGlzIGV2ZW50cyBnZXQgY2FsbGVkIGJ5IGFsbCBjbGlja3Mgb24gdGhlIHBhZ2VcclxuICAgICovXHJcbiAgICB0aGlzLmxpc3RlbmVyRm4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XHJcbiAgICAgIC8qXHJcbiAgICAgICAgaGFuZGxlIGNsaWNrIG91dHNpZGVcclxuICAgICAgKi9cclxuICAgICAgaWYgKHRoaXMuY29udGFpbmVyICYmICEhIXRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpKSB7XHJcbiAgICAgICAgdGhpcy5vcGVuU3RhdGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICBjb25zdCBtYXhaSW5kZXggPSB0aGlzLmRvbVNlcnZpY2UuZ2V0TWF4WkluZGV4KCk7XHJcblxyXG4gICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmRpY2F0b3ItaGVpZ2h0JywgKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgLSA2KSArICdweCcpXHJcbiAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXBvcHVwLXotaW5kZXgnLCBtYXhaSW5kZXgpO1xyXG4gICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1jZWxsLXNpemUnLCB0aGlzLmNlbGxTaXplICsgJ3B4JylcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRNb250aE9iamVjdCQucGlwZShcclxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxyXG4gICAgKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRNb250aFRleHQgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZ2V0TW9udGhUZXh0KHRoaXMubGFuZywgdmFsdWUubW9udGhJbmRleCk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJSZWJ1aWxkaW5nLi4uLlwiKVxyXG4gICAgICAgIHRoaXMuYnVpbGRCb2R5KHZhbHVlLnllYXIsIHZhbHVlLm1vbnRoSW5kZXgpO1xyXG4gICAgICAgIHRoaXMudHJpZ2dlclJlZmxvdygpO1xyXG4gICAgICB9LCAwKVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmlucHV0U3RyZWFtJCA9IGZyb21FdmVudCh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpO1xyXG4gICAgdGhpcy5pbnB1dFN0cmVhbSQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuXHJcbiAgICAgIGlmICggZXZlbnQuaW5wdXRUeXBlICE9PSAnZGVsZXRlQ29udGVudEJhY2t3YXJkJyBcclxuICAgICAgICAmJiAnIzAjMSMyIzMjNCM1IzYjNyM4IzkjQmFja3NwYWNlI0RlbGV0ZScuaW5kZXhPZignIycgKyBldmVudC5kYXRhKSA8IDApIFxyXG4gICAgICB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdGhpcy5sYXN0VGV4dDtcclxuICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxhc3RUZXh0ID0gZXZlbnQudGFyZ2V0LnZhbHVlXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHZhciB2ID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgICBpZiAodi5tYXRjaCgvXlxcZHsyfSQvKSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHYgKyAnLyc7XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB2ICsgJy8nO1xyXG4gICAgICB9IGVsc2UgaWYgKHYubWF0Y2goL15cXGR7Mn1cXC9cXGR7Mn0kLykgIT09IG51bGwpIHtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSB2ICsgJy8nO1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdiArICcvJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHY7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnRleHRWYWx1ZS5sZW5ndGggPT09IDEwKSB7XHJcbiAgICAgICAgY29uc3QgZGlnaXRzID0gdGhpcy50ZXh0VmFsdWUuc3BsaXQoJy8nKTtcclxuICAgICAgICBjb25zdCB5ID0gTnVtYmVyKGRpZ2l0c1syXSk7XHJcbiAgICAgICAgY29uc3QgbSA9IE51bWJlcihkaWdpdHNbMV0pIC0gMTtcclxuICAgICAgICBjb25zdCBkID0gTnVtYmVyKGRpZ2l0c1swXSk7XHJcblxyXG4gICAgICAgIGlmICh5IDw9IDAgfHwgbSA8IDAgfHwgbSA+IDExIHx8IGQgPCAxIHx8IGQgPiAzMSkge1xyXG4gICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgICAgICBjb25zdCBociA9IG5vdy5nZXRIb3VycygpO1xyXG4gICAgICAgIGNvbnN0IG1uID0gbm93LmdldE1pbnV0ZXMoKTtcclxuICAgICAgICBjb25zdCBzZCA9IG5vdy5nZXRTZWNvbmRzKCk7XHJcbiAgICAgICAgY29uc3QgbXMgPSBub3cuZ2V0TWlsbGlzZWNvbmRzKCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShOdW1iZXIoZGlnaXRzWzJdKSwgTnVtYmVyKGRpZ2l0c1sxXSkgLSAxLCBOdW1iZXIoZGlnaXRzWzBdKSwgaHIsIG1uLCBzZCwgbXMpO1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHRoaXMuY29yZURhdGV0aW1lU2VydmljZS5kYXRlVG9WblN0cmluZyhkYXRlKTtcclxuICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKGRhdGUpO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKG9iajogRGF0ZSB8IG51bGwpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFwiVVRDIERhdGUgXCIsIG9iaik7XHJcblxyXG4gICAgY29uc3QgdXBkYXRlUHJvcGVydGllcyA9ICh2YWx1ZTogRGF0ZSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkFmdGVyIGNvbnZlcnQgdG8gTG9jYWwgRGF0ZSBcIiwgdmFsdWUpO1xyXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMubGFzdFRleHQgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZGF0ZVRvVm5TdHJpbmcodmFsdWUpXHJcbiAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmRhdGVUb1ZuU3RyaW5nKHZhbHVlKTtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLm5leHQoe1xyXG4gICAgICAgIHllYXI6IHZhbHVlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgbW9udGhJbmRleDogdmFsdWUuZ2V0TW9udGgoKVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmN1cnJlbnRIb3VycyA9IHZhbHVlLmdldEhvdXJzKCk7XHJcbiAgICAgIHRoaXMuY3VycmVudE1pbnV0ZXMgPSB2YWx1ZS5nZXRNaW51dGVzKCk7XHJcbiAgICAgIHRoaXMuY3VycmVudFNlY29uZHMgPSB2YWx1ZS5nZXRTZWNvbmRzKCk7XHJcbiAgICAgIHRoaXMuY3VycmVudE1pbGxpc2Vjb25kcyA9IHZhbHVlLmdldE1pbGxpc2Vjb25kcygpO1xyXG5cclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhUZXh0ID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmdldE1vbnRoVGV4dCh0aGlzLmxhbmcsIHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC52YWx1ZS5tb250aEluZGV4KTtcclxuICAgICAgdGhpcy5wZW5kaW5nWWVhciA9IHZhbHVlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgIHRoaXMucGVuZGluZ01vbnRoSW5kZXggPSB2YWx1ZS5nZXRNb250aCgpO1xyXG4gICAgICB0aGlzLnBlbmRpbmdEYXkgPSB2YWx1ZS5nZXREYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTtcclxuICAgICAgaWYgKCEhdGhpcy5yYW5nZUxpbWl0KSB7XHJcbiAgICAgICAgbm93ID0gdGhpcy5yYW5nZUxpbWl0Lm1pbkRhdGU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLm5leHQoe1xyXG4gICAgICAgIHllYXI6IG5vdy5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIG1vbnRoSW5kZXg6IG5vdy5nZXRNb250aCgpXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuY3VycmVudEhvdXJzID0gbm93LmdldEhvdXJzKCk7XHJcbiAgICAgIHRoaXMuY3VycmVudE1pbnV0ZXMgPSBub3cuZ2V0TWludXRlcygpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRTZWNvbmRzID0gbm93LmdldFNlY29uZHMoKTtcclxuICAgICAgdGhpcy5jdXJyZW50TWlsbGlzZWNvbmRzID0gbm93LmdldE1pbGxpc2Vjb25kcygpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRNb250aFRleHQgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZ2V0TW9udGhUZXh0KHRoaXMubGFuZywgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLnZhbHVlLm1vbnRoSW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLyogQ29udmVydCBVVEMgZGF0ZSB0byBsb2NhbCBkYXRlICovXHJcbiAgICAgIGNvbnN0IG9yaWdpbmFsRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKG9iaik7XHJcbiAgICAgIGNvbnN0IG9mZnNldCA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lem9uZU9mZnNldCgpO1xyXG4gICAgICBjb25zdCBkYXRlVmFsdWUgPSBuZXcgRGF0ZShvcmlnaW5hbERhdGUuZ2V0VGltZSgpIC0gb2Zmc2V0ICogNjAwMDApO1xyXG4gICAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICAgICAgaWYgKHR5cGVvZiBvYmohLmdldEZ1bGxZZWFyID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgdXBkYXRlUHJvcGVydGllcyhkYXRlVmFsdWUpO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29uc3QgaXNEYXRlID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmlzRGF0ZVN0cmluZyhvYmopO1xyXG4gICAgICAgIGlmIChpc0RhdGUpIHtcclxuICAgICAgICAgIC8vY29uc3QgX29iaiA9IG5ldyBEYXRlKG9iaik7IC8vIGNvbnZlcnQgc3RyaW5nIHRvIGRhdGUgXHJcbiAgICAgICAgICB1cGRhdGVQcm9wZXJ0aWVzKGRhdGVWYWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJJbnZhbGlkIGRhdGUgaW5wdXQ6IFwiLCBvYmopO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkludmFsaWQgZGF0ZSBpbnB1dDogXCIsIG9iaik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSXRlbUNsaWNrKGRhdGU6IERhdGUpIHtcclxuXHJcbiAgICBpZiAodGhpcy5yZWFkb25seSkgcmV0dXJuO1xyXG5cclxuICAgIGlmICghIXRoaXMucmFuZ2VMaW1pdCkge1xyXG4gICAgICBpZiAoZGF0ZSA8IHRoaXMucmFuZ2VMaW1pdC5taW5EYXRlIHx8IGRhdGUgPiB0aGlzLnJhbmdlTGltaXQubWF4RGF0ZSkgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBoID0gbm93LmdldEhvdXJzKCk7XHJcbiAgICBjb25zdCBtID0gbm93LmdldE1pbnV0ZXMoKTtcclxuICAgIGNvbnN0IHMgPSBub3cuZ2V0U2Vjb25kcygpO1xyXG4gICAgY29uc3QgbXMgPSBub3cuZ2V0TWlsbGlzZWNvbmRzKCk7XHJcbiAgICBkYXRlLnNldEhvdXJzKGgpO1xyXG4gICAgZGF0ZS5zZXRNaW51dGVzKG0pO1xyXG4gICAgZGF0ZS5zZXRTZWNvbmRzKHMpO1xyXG4gICAgZGF0ZS5zZXRNaWxsaXNlY29uZHMobXMpO1xyXG4gICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZGF0ZVRvVm5TdHJpbmcoZGF0ZSk7XHJcblxyXG4gICAgdGhpcy5wZW5kaW5nWWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIHRoaXMucGVuZGluZ01vbnRoSW5kZXggPSBkYXRlLmdldE1vbnRoKCk7XHJcbiAgICB0aGlzLnBlbmRpbmdEYXkgPSBkYXRlLmdldERhdGUoKTtcclxuXHJcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIFxyXG4gICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcclxuICAgIHRoaXMub3BlblN0YXRlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnb1RvZGF5KCkge1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKCEhdGhpcy5yYW5nZUxpbWl0KSB7XHJcbiAgICAgIGlmICh0b2RheSA8IHRoaXMucmFuZ2VMaW1pdC5taW5EYXRlIHx8IHRvZGF5ID4gdGhpcy5yYW5nZUxpbWl0Lm1heERhdGUpIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmRhdGVUb1ZuU3RyaW5nKHRvZGF5KTtcclxuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0b2RheSk7XHJcbiAgICB0aGlzLm9wZW5TdGF0ZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnRleHRWYWx1ZSA9ICcnO1xyXG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLmxhc3RUZXh0ID0gJyc7XHJcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XHJcbiAgICB0aGlzLm9wZW5TdGF0ZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ29CYWNrd2FyZCgpIHtcclxuICAgIHRoaXMuZGlyZWN0aW9uID0gLTE7XHJcbiAgICB0aGlzLmJhY2t3YXJkLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50TW9udGhPYmplY3QkLnZhbHVlLm1vbnRoSW5kZXggPT09IDApIHtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLm5leHQoe1xyXG4gICAgICAgIHllYXI6IHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC52YWx1ZS55ZWFyIC0gMSxcclxuICAgICAgICBtb250aEluZGV4OiAxMVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhUZXh0ID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmdldE1vbnRoVGV4dCh0aGlzLmxhbmcsIDExKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC5uZXh0KHtcclxuICAgICAgICB5ZWFyOiB0aGlzLmN1cnJlbnRNb250aE9iamVjdCQudmFsdWUueWVhcixcclxuICAgICAgICBtb250aEluZGV4OiB0aGlzLmN1cnJlbnRNb250aE9iamVjdCQudmFsdWUubW9udGhJbmRleCAtIDFcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmN1cnJlbnRNb250aFRleHQgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZ2V0TW9udGhUZXh0KHRoaXMubGFuZywgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLnZhbHVlLm1vbnRoSW5kZXgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Gb3Jld2FyZCgpIHtcclxuICAgIHRoaXMuZGlyZWN0aW9uID0gMTtcclxuICAgIHRoaXMuYmFja3dhcmQubmF0aXZlRWxlbWVudC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICB0aGlzXHJcbiAgICBpZiAodGhpcy5jdXJyZW50TW9udGhPYmplY3QkLnZhbHVlLm1vbnRoSW5kZXggPT09IDExKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC5uZXh0KHtcclxuICAgICAgICB5ZWFyOiB0aGlzLmN1cnJlbnRNb250aE9iamVjdCQudmFsdWUueWVhciArIDEsXHJcbiAgICAgICAgbW9udGhJbmRleDogMFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhUZXh0ID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmdldE1vbnRoVGV4dCh0aGlzLmxhbmcsIDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLm5leHQoe1xyXG4gICAgICAgIHllYXI6IHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC52YWx1ZS55ZWFyLFxyXG4gICAgICAgIG1vbnRoSW5kZXg6IHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC52YWx1ZS5tb250aEluZGV4ICsgMVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhUZXh0ID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmdldE1vbnRoVGV4dCh0aGlzLmxhbmcsIHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC52YWx1ZS5tb250aEluZGV4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIFByb2JhYmx5IHRoZSBtb3N0IGltcG9ydGFudCBmdW5jdGlvbiAqL1xyXG4gIGJ1aWxkQm9keSh5ZWFyOiBudW1iZXIsIG1vbnRoSW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgYm9keSA9IHRoaXMuY29yZURhdGV0aW1lU2VydmljZS5nZXRDYWxlbmRhckJvZHkoeWVhciwgbW9udGhJbmRleCwgdGhpcy5kaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5kYXRhID0gYm9keS5yb3dzO1xyXG4gICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zY3JvbGwtZGlzdGFuY2UnLCAoYm9keS5yb3dzLmxlbmd0aCAtIDYpICogdGhpcy5jZWxsU2l6ZSArICdweCcpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5saXN0ZW5lckZuKSB0aGlzLmxpc3RlbmVyRm4oKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB4Py51bnN1YnNjcmliZSgpKVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlT3BlbigpIHtcclxuICAgIGlmICghIXRoaXMucmVhZG9ubHkpIHJldHVyblxyXG4gICAgaWYgKCEhdGhpcy5kaXNhYmxlZCkgcmV0dXJuXHJcbiAgICB0aGlzLm9wZW5TdGF0ZSA9ICF0aGlzLm9wZW5TdGF0ZTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZU1vbnRoUGlja2VyQWN0aXZlKCkge1xyXG4gICAgdGhpcy5tb250aFBpY2tlckFjdGl2ZSA9ICF0aGlzLm1vbnRoUGlja2VyQWN0aXZlO1xyXG4gIH1cclxuXHJcbiAgb25Nb250aE9iamVjdENoYW5nZShhcmdzOiBJTW9udGhJZGVudGl0eSkge1xyXG4gICAgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLm5leHQoe1xyXG4gICAgICB5ZWFyOiBhcmdzLnllYXIsXHJcbiAgICAgIG1vbnRoSW5kZXg6IGFyZ3MubW9udGhJbmRleFxyXG4gICAgfSlcclxuICAgIHRoaXMubW9udGhQaWNrZXJBY3RpdmUgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uTW9udGhQaWNrZXJZZWFyQ2xpY2soZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1vbnRoUGlja2VyQWN0aXZlID0gZmFsc2U7XHJcbiAgICB0aGlzLnllYXJQaWNrZXJBY3RpdmUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25ZZWFyUGlja2VkKGU6IG51bWJlcikge1xyXG4gICAgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLm5leHQoe1xyXG4gICAgICB5ZWFyOiBlLFxyXG4gICAgICBtb250aEluZGV4OiB0aGlzLmN1cnJlbnRNb250aE9iamVjdCQudmFsdWUubW9udGhJbmRleFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnllYXJQaWNrZXJBY3RpdmUgPSBmYWxzZTtcclxuICAgIHRoaXMubW9udGhQaWNrZXJBY3RpdmUgPSB0cnVlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLWRhdGUtcGlja2VyLWNvbnRhaW5lclwiPlxyXG4gICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwib3BlblN0YXRlXCI+XHJcbiAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJtb250aFBpY2tlckFjdGl2ZVwiPlxyXG4gICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwieWVhclBpY2tlckFjdGl2ZVwiPlxyXG4gICAgPGlucHV0ICNiYWNrd2FyZCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cInRsLWRhdGVwaWNrZXItZGlyZWN0aW9uXCI+XHJcbiAgICA8aW5wdXQgI2lucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbcGxhY2Vob2xkZXJdPVwic2hvd1BsYWNlaG9sZGVyID8gJ2RkL21tL3l5eXknIDogJydcIlxyXG4gICAgICAgIG1heGxlbmd0aD1cIjEwXCIgWyhuZ01vZGVsKV09XCJ0ZXh0VmFsdWVcIiBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+PGxhYmVsIGNsYXNzPVwiaWNvblwiIChjbGljayk9XCJ0b2dnbGVPcGVuKClcIj48L2xhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cInRsLWRhdGUtcGlja2VyLXBvcHVwXCIgW2NsYXNzLm9wZW5dPVwib3BlblN0YXRlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLXNlc3Npb25cIiBbY2xhc3MuZC1ub25lXT1cIm1vbnRoUGlja2VyQWN0aXZlIHx8IHllYXJQaWNrZXJBY3RpdmVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdmlnYXRvclwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibW9udGgtZHJvcGRvd25cIiAoY2xpY2spPVwidG9nZ2xlTW9udGhQaWNrZXJBY3RpdmUoKVwiPnt7IGN1cnJlbnRNb250aFRleHQgfX0ge3tcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9udGhPYmplY3QkLnZhbHVlLnllYXIgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFycm93c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnby11cFwiIChjbGljayk9XCJnb0JhY2t3YXJkKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ28tZG93blwiIChjbGljayk9XCJnb0ZvcmV3YXJkKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXktaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBkYXkgb2YgaGVhZGVyV2Vla2RheXM7IGxldCBpID0gaW5kZXhcIiBbY2xhc3MudDddPVwiaT09PTVcIiBbY2xhc3MuY25dPVwiaT09PTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57eyBkYXkgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ib2R5LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAjY2FsZW5kYXJCb2R5IGNsYXNzPVwiY2FsZW5kYXItYm9keVwiIFtjbGFzcy5zbGlkZS11cF09XCJkaXJlY3Rpb249PT0xXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2xpZGUtZG93bl09XCJkaXJlY3Rpb249PT0tMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgd2VlayBvZiBkYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiB3ZWVrLml0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzcy5vdXQtb2YtbW9udGhdPVwiISEhaXRlbS5jdXJyZW50TW9udGhcIiBbY2xhc3MudDddPVwiaT09PTVcIiBbY2xhc3MuY25dPVwiaT09PTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5vdXQtb2YtcmFuZ2VdPVwiISFyYW5nZUxpbWl0ICYmICEhISgoaXRlbS5kYXRlVmFsdWU+PXJhbmdlTGltaXQubWluRGF0ZSkgJiYgKHJhbmdlTGltaXQubWF4RGF0ZT49aXRlbS5kYXRlVmFsdWUpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLmRhdGVWYWx1ZS5nZXRGdWxsWWVhcigpPT09cGVuZGluZ1llYXIgJiYgaXRlbS5kYXRlVmFsdWUuZ2V0TW9udGgoKT09PXBlbmRpbmdNb250aEluZGV4ICYmIGl0ZW0uZGF0ZVZhbHVlLmdldERhdGUoKT09PXBlbmRpbmdEYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhpdGVtLmRhdGVWYWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRhdGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC1waWNrZXItc2Vzc2lvblwiIFtjbGFzcy5hY3RpdmVdPVwibW9udGhQaWNrZXJBY3RpdmVcIj5cclxuICAgICAgICAgICAgPGNvcmUtbW9udGgtcGlja2VyIFtsYW5nXT1cImxhbmdcIiBbbW9udGhPYmplY3QkXT1cImN1cnJlbnRNb250aE9iamVjdCRcIiAob25DaGFuZ2UpPVwib25Nb250aE9iamVjdENoYW5nZSgkZXZlbnQpXCIgKG9uWWVhckNsaWNrKT1cIm9uTW9udGhQaWNrZXJZZWFyQ2xpY2soJGV2ZW50KVwiPjwvY29yZS1tb250aC1waWNrZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInllYXItcGlja2VyLXNlc3Npb25cIiBbY2xhc3MuYWN0aXZlXT1cInllYXJQaWNrZXJBY3RpdmVcIj5cclxuICAgICAgICAgICAgPGNvcmUteWVhci1waWNrZXIgW2xhbmddPVwibGFuZ1wiIChvbkNoYW5nZSk9XCJvblllYXJQaWNrZWQoJGV2ZW50KVwiPjwvY29yZS15ZWFyLXBpY2tlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNkcC1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhclwiIFtjbGFzcy5vcGFjaXR5LTBdPVwiISEhdGV4dFZhbHVlXCIgKGNsaWNrKT1cImNsZWFyKClcIj57eyAnVUkuQ09SRV9EQVRFX1BJQ0tFUl9DTEVBUicgfCB0cmFuc2xhdGU6IGxhbmcgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaWdpLXdhdGNoXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9kYXlcIiAoY2xpY2spPVwiZ29Ub2RheSgpXCI+e3sgJ1VJLkNPUkVfREFURV9QSUNLRVJfVE9EQVknIHwgdHJhbnNsYXRlOiBsYW5nIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
405
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1kYXRlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1kYXRlLXBpY2tlci9jb3JlLWRhdGUtcGlja2VyL2NvcmUtZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtZGF0ZS1waWNrZXIvY29yZS1kYXRlLXBpY2tlci9jb3JlLWRhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdELFNBQVMsRUFBRSxLQUFLLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUE0QixvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFHN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQzs7Ozs7Ozs7QUE2QmpIOzs7Ozs7Ozs7O0VBVUU7QUFDRixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsNEJBQTRCO0lBaUR2RSxZQUNtQixRQUFtQixFQUNuQixVQUFzQixFQUN0QixtQkFBd0MsRUFDakQsR0FB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U0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCx1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsYUFBYTtxQkFDZCxhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcseUJBQXlCO3lCQUNyQztxQkFDRjt1TUFlUSx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDWSxRQUFRO3NCQUF6QixLQUFLO2dCQUNZLFFBQVE7c0JBQXpCLEtBQUs7Z0JBaUNrQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0YsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNLLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDTSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQsIElucHV0LCBSZW5kZXJlcjIsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XHJcbmltcG9ydCB7IENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1iYXNlL2NvcmUtZm9ybS1jb250cm9sLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZURhdGV0aW1lU2VydmljZSwgSURhdGFSb3csIElNb250aElkZW50aXR5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29yZS1kYXRldGltZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29yZVllYXJQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXllYXItcGlja2VyL2NvcmUteWVhci1waWNrZXIvY29yZS15ZWFyLXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgQ29yZU1vbnRoUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1tb250aC1waWNrZXIvY29yZS1tb250aC1waWNrZXIvY29yZS1tb250aC1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29yZURhdGVQaWNrZXJSYW5nZSB7XHJcbiAgbWluRGF0ZTogRGF0ZTtcclxuICBtYXhEYXRlOiBEYXRlO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtZGF0ZS1waWNrZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlWWVhclBpY2tlckNvbXBvbmVudCxcclxuICAgIENvcmVNb250aFBpY2tlckNvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDb3JlRGF0ZVBpY2tlckNvbXBvbmVudFxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuLypcclxuICB0aGlzIGNvbXBvbmVudCByZW5kZXJzIGl0cyBtYWluIHBhcnQgYW5kIHBvcHVwIHBhcnRcclxuICB0aGUgbWFpbiBwYXJ0IGRlYWxzIHdpdGggdXNlciBpbnB1dCBmcm9tIHBoeXNpY2FsIGtleWJvYXJkIG9yIHRvdWNoIGtleWJvYXJkXHJcbiAgdGhlIHBvcHVwIHBhcnQgY29uc2lzdHMgb2YgMSkgbmF2aWdhdG9yIDIpIGhlYWRlciAzKSBjYWxlbmRhciBib2R5IGNvbnRhaW5lciA0KSBjYWxlbmRhciBib2R5XHJcbiAgdGhlIG1vc3QgaW1wb3J0YW50IHBhcnQgb2YgdGhlbSBpczpcclxuICAgIDQpIGNhbGVuZGFyIGJvZHk6XHJcbiAgICAgIGR1ZSB2YXJpYXRpb25zIHRoZSBjYWxlbmRhciBib2R5IG1heSByZWFjaCB0byA2IHJvd3Mgb2Ygd2VlayBkYXkgc3ViLWFycmF5XHJcbiAgICAtIGZvciB2aXN1YWwsIGxvZ2ljIGFuZCBjb2Rpbmcgc2ltcGxpY2l0eSBJIHdpbGwgYWx3YXlzIHJlbmRlciBhbGwgdGhlIDYgcm93c1xyXG4gICAgc28gY2FsZW5kYXIgYm9keSBkaW1lbnNpb24gc3RheXMgdW5jaGFuZ2VkXHJcbiAgXHJcbiovXHJcbmV4cG9ydCBjbGFzcyBDb3JlRGF0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIGVuYWJsZVRpbWVab25lQ29udmVydGVyITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzaG93UGxhY2Vob2xkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwb3B1cFdpZHRoOiBudW1iZXIgPSAzMDA7XHJcbiAgQElucHV0KCkgcG9wdXBYUGFkZGluZzogbnVtYmVyID0gMTI7XHJcbiAgQElucHV0KCkgcmFuZ2VMaW1pdCE6IElDb3JlRGF0ZVBpY2tlclJhbmdlO1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlIHJlYWRvbmx5ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBvdmVycmlkZSBkaXNhYmxlZCE6IGJvb2xlYW47XHJcblxyXG5cclxuICBsaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuXHJcbiAgbGFuZyE6IHN0cmluZztcclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIG9wZW5TdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1vbnRoUGlja2VyQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgeWVhclBpY2tlckFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjZWxsU2l6ZTogbnVtYmVyID0gKHRoaXMucG9wdXBXaWR0aCAtIHRoaXMucG9wdXBYUGFkZGluZyAqIDIpIC8gNztcclxuXHJcbiAgb3ZlcnJpZGUgdmFsdWUhOiBEYXRlIHwgbnVsbDtcclxuICBwZW5kaW5nWWVhciE6IG51bWJlcjtcclxuICBwZW5kaW5nTW9udGhJbmRleCE6IG51bWJlcjtcclxuICBwZW5kaW5nRGF5OiBudW1iZXIgPSB0aGlzLnZhbHVlPy5nZXREYXRlKCkhO1xyXG5cclxuICBjdXJyZW50TW9udGhPYmplY3QkITogQmVoYXZpb3JTdWJqZWN0PElNb250aElkZW50aXR5PjtcclxuICBuZXdEYXRlITogRGF0ZTtcclxuXHJcbiAgY3VycmVudE1vbnRoVGV4dCE6IHN0cmluZztcclxuICBjdXJyZW50SG91cnMhOiBudW1iZXI7XHJcbiAgY3VycmVudE1pbnV0ZXMhOiBudW1iZXI7XHJcbiAgY3VycmVudFNlY29uZHMhOiBudW1iZXI7XHJcbiAgY3VycmVudE1pbGxpc2Vjb25kcyE6IG51bWJlcjtcclxuXHJcbiAgZGF0YSE6IElEYXRhUm93W107XHJcbiAgaGVhZGVyV2Vla2RheXMhOiBzdHJpbmdbXTtcclxuICBkaXJlY3Rpb246IG51bWJlciA9IDE7IC8vIHN0YXJ0dXAgZGlyZWN0aW9uIDEgfCAtMVxyXG5cclxuICB0ZXh0VmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXIhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2JhY2t3YXJkJykgYmFja3dhcmQhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NhbGVuZGFyQm9keScpIGNhbGVuZGFyQm9keSE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGlucHV0U3RyZWFtJCE6IE9ic2VydmFibGU8YW55PjtcclxuICBsYXN0VGV4dCE6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvbVNlcnZpY2U6IERvbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvcmVEYXRldGltZVNlcnZpY2U6IENvcmVEYXRldGltZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5uZXdEYXRlID0gISF0aGlzLnJhbmdlTGltaXQgPyB0aGlzLnJhbmdlTGltaXQubWluRGF0ZSA6IG5ldyBEYXRlKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRNb250aE9iamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElNb250aElkZW50aXR5Pih7XHJcbiAgICAgIHllYXI6IHRoaXMudmFsdWU/LmdldEZ1bGxZZWFyKCkgfHwgdGhpcy5uZXdEYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIG1vbnRoSW5kZXg6IHRoaXMudmFsdWU/LmdldE1vbnRoKCkgfHwgdGhpcy5uZXdEYXRlLmdldE1vbnRoKClcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICghIXRoaXMuZGlzYWJsZWQpIHRoaXMucmVhZG9ubHkgPSB0cnVlO1xyXG5cclxuICAgIGlmICghISF0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm5ld0RhdGU7XHJcbiAgICAgIHRoaXMubGFzdFRleHQgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZGF0ZVRvVm5TdHJpbmcodGhpcy52YWx1ZSlcclxuICAgIH1cclxuICAgICAgXHJcbiAgICB0aGlzLnBlbmRpbmdZZWFyID0gdGhpcy52YWx1ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgdGhpcy5wZW5kaW5nTW9udGhJbmRleCA9IHRoaXMudmFsdWUuZ2V0TW9udGgoKTtcclxuICAgIHRoaXMucGVuZGluZ0RheSA9IHRoaXMudmFsdWUuZ2V0RGF0ZSgpO1xyXG4gICAgdGhpcy5jdXJyZW50SG91cnMgPSB0aGlzLnZhbHVlLmdldEhvdXJzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRNaW51dGVzID0gdGhpcy52YWx1ZS5nZXRNaW51dGVzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRTZWNvbmRzID0gdGhpcy52YWx1ZS5nZXRTZWNvbmRzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRNaWxsaXNlY29uZHMgPSB0aGlzLnZhbHVlLmdldE1pbGxpc2Vjb25kcygpO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxhbmcgPSB4KVxyXG4gICAgKVxyXG5cclxuICAgIC8qXHJcbiAgICBpZiAoISEhdGhpcy5pZCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGBcclxuICAgICAgd2l0aGluIGEgcGFnZSwgdGFubGVpY2EtZGF0ZS1waWNrZXIgbmVlZHMgYW4gdW5pcXVlIHByb3BlcnR5IGlkIHZhbHVlIHRvIHdvcmsgY29ycmVjdGx5XHJcbiAgICAgIGZvciBleGFtcGxlOiA8dGFubGVpY2EtZGF0ZS1waWNrZXIgaWQ9XCJzdGFydERhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJzdGFydERhdGVcIj48L3RhbmxlaWNhLWRhdGUtcGlja2VyPlxyXG4gICAgICBgKVxyXG4gICAgfVxyXG4gICAgKi9cclxuICAgIHRoaXMuaGVhZGVyV2Vla2RheXMgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZ2V0U2hvcnRXZWVrZGF5cyh0aGlzLmxhbmcpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgIHRyaWdnZXIgYW5pbWF0aW9uIGJ5IHJlZmxvdyB0aGUgRE9NXHJcbiAgKi9cclxuICB0cmlnZ2VyUmVmbG93KCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLmNhbGVuZGFyQm9keS5uYXRpdmVFbGVtZW50O1xyXG4gICAgLy9ET00gbWFuaXB1bGF0aW9uXHJcbiAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09IDEpIHtcclxuICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShcInNsaWRlLXVwXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShcInNsaWRlLWRvd25cIik7XHJcbiAgICB9XHJcbiAgICBlbC5vZmZzZXRIZWlnaHQ7ICAvKiB0cmlnZ2VyIHJlZmxvdyAoYWx0ZXJuYXRpdmU6IGVsLm9mZnNldFdpZHRoKSAqL1xyXG4gICAgaWYgKHRoaXMuZGlyZWN0aW9uID09PSAxKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWwuY2xhc3NMaXN0LmFkZChcInNsaWRlLXVwXCIpLCAwKTsgLy8gcGFzcyB0aGUgY2FsbGJhY2sgdG8gQ2FsbGJhY2sgcXVldWUgdGhyb3VnaCBXZWJBUElzLCBzbyBpdCB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIERPTSBtYW5pcHVsYXRpb24gZW5kc1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiBlbC5jbGFzc0xpc3QuYWRkKFwic2xpZGUtZG93blwiKSwgMCk7IC8vIHBhc3MgdGhlIGNhbGxiYWNrIHRvIENhbGxiYWNrIHF1ZXVlIHRocm91Z2ggV2ViQVBJcywgc28gaXQgd2lsbCBiZSBleGVjdXRlZCBhZnRlciBET00gbWFuaXB1bGF0aW9uIGVuZHNcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICAvKlxyXG4gICAgICBUaGlzIGV2ZW50cyBnZXQgY2FsbGVkIGJ5IGFsbCBjbGlja3Mgb24gdGhlIHBhZ2VcclxuICAgICovXHJcbiAgICB0aGlzLmxpc3RlbmVyRm4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XHJcbiAgICAgIC8qXHJcbiAgICAgICAgaGFuZGxlIGNsaWNrIG91dHNpZGVcclxuICAgICAgKi9cclxuICAgICAgaWYgKHRoaXMuY29udGFpbmVyICYmICEhIXRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpKSB7XHJcbiAgICAgICAgdGhpcy5vcGVuU3RhdGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICBjb25zdCBtYXhaSW5kZXggPSB0aGlzLmRvbVNlcnZpY2UuZ2V0TWF4WkluZGV4KCk7XHJcblxyXG4gICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmRpY2F0b3ItaGVpZ2h0JywgKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgLSA2KSArICdweCcpXHJcbiAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXBvcHVwLXotaW5kZXgnLCBtYXhaSW5kZXgpO1xyXG4gICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1jZWxsLXNpemUnLCB0aGlzLmNlbGxTaXplICsgJ3B4JylcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRNb250aE9iamVjdCQucGlwZShcclxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxyXG4gICAgKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRNb250aFRleHQgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZ2V0TW9udGhUZXh0KHRoaXMubGFuZywgdmFsdWUubW9udGhJbmRleCk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJSZWJ1aWxkaW5nLi4uLlwiKVxyXG4gICAgICAgIHRoaXMuYnVpbGRCb2R5KHZhbHVlLnllYXIsIHZhbHVlLm1vbnRoSW5kZXgpO1xyXG4gICAgICAgIHRoaXMudHJpZ2dlclJlZmxvdygpO1xyXG4gICAgICB9LCAwKVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmlucHV0U3RyZWFtJCA9IGZyb21FdmVudCh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpO1xyXG4gICAgdGhpcy5pbnB1dFN0cmVhbSQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuXHJcbiAgICAgIGlmICggZXZlbnQuaW5wdXRUeXBlICE9PSAnZGVsZXRlQ29udGVudEJhY2t3YXJkJyBcclxuICAgICAgICAmJiAnIzAjMSMyIzMjNCM1IzYjNyM4IzkjQmFja3NwYWNlI0RlbGV0ZScuaW5kZXhPZignIycgKyBldmVudC5kYXRhKSA8IDApIFxyXG4gICAgICB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdGhpcy5sYXN0VGV4dDtcclxuICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxhc3RUZXh0ID0gZXZlbnQudGFyZ2V0LnZhbHVlXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHZhciB2ID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgICBpZiAodi5tYXRjaCgvXlxcZHsyfSQvKSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHYgKyAnLyc7XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB2ICsgJy8nO1xyXG4gICAgICB9IGVsc2UgaWYgKHYubWF0Y2goL15cXGR7Mn1cXC9cXGR7Mn0kLykgIT09IG51bGwpIHtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSB2ICsgJy8nO1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdiArICcvJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHY7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnRleHRWYWx1ZS5sZW5ndGggPT09IDEwKSB7XHJcbiAgICAgICAgY29uc3QgZGlnaXRzID0gdGhpcy50ZXh0VmFsdWUuc3BsaXQoJy8nKTtcclxuICAgICAgICBjb25zdCB5ID0gTnVtYmVyKGRpZ2l0c1syXSk7XHJcbiAgICAgICAgY29uc3QgbSA9IE51bWJlcihkaWdpdHNbMV0pIC0gMTtcclxuICAgICAgICBjb25zdCBkID0gTnVtYmVyKGRpZ2l0c1swXSk7XHJcblxyXG4gICAgICAgIGlmICh5IDw9IDAgfHwgbSA8IDAgfHwgbSA+IDExIHx8IGQgPCAxIHx8IGQgPiAzMSkge1xyXG4gICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgICAgICBjb25zdCBociA9IG5vdy5nZXRIb3VycygpO1xyXG4gICAgICAgIGNvbnN0IG1uID0gbm93LmdldE1pbnV0ZXMoKTtcclxuICAgICAgICBjb25zdCBzZCA9IG5vdy5nZXRTZWNvbmRzKCk7XHJcbiAgICAgICAgY29uc3QgbXMgPSBub3cuZ2V0TWlsbGlzZWNvbmRzKCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShOdW1iZXIoZGlnaXRzWzJdKSwgTnVtYmVyKGRpZ2l0c1sxXSkgLSAxLCBOdW1iZXIoZGlnaXRzWzBdKSwgaHIsIG1uLCBzZCwgbXMpO1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHRoaXMuY29yZURhdGV0aW1lU2VydmljZS5kYXRlVG9WblN0cmluZyhkYXRlKTtcclxuICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKGRhdGUpO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKG9iajogRGF0ZSB8IG51bGwpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFwiVVRDIERhdGUgXCIsIG9iaik7XHJcblxyXG4gICAgY29uc3QgdXBkYXRlUHJvcGVydGllcyA9ICh2YWx1ZTogRGF0ZSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkFmdGVyIGNvbnZlcnQgdG8gTG9jYWwgRGF0ZSBcIiwgdmFsdWUpO1xyXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMubGFzdFRleHQgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZGF0ZVRvVm5TdHJpbmcodmFsdWUpXHJcbiAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmRhdGVUb1ZuU3RyaW5nKHZhbHVlKTtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLm5leHQoe1xyXG4gICAgICAgIHllYXI6IHZhbHVlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgbW9udGhJbmRleDogdmFsdWUuZ2V0TW9udGgoKVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmN1cnJlbnRIb3VycyA9IHZhbHVlLmdldEhvdXJzKCk7XHJcbiAgICAgIHRoaXMuY3VycmVudE1pbnV0ZXMgPSB2YWx1ZS5nZXRNaW51dGVzKCk7XHJcbiAgICAgIHRoaXMuY3VycmVudFNlY29uZHMgPSB2YWx1ZS5nZXRTZWNvbmRzKCk7XHJcbiAgICAgIHRoaXMuY3VycmVudE1pbGxpc2Vjb25kcyA9IHZhbHVlLmdldE1pbGxpc2Vjb25kcygpO1xyXG5cclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhUZXh0ID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmdldE1vbnRoVGV4dCh0aGlzLmxhbmcsIHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC52YWx1ZS5tb250aEluZGV4KTtcclxuICAgICAgdGhpcy5wZW5kaW5nWWVhciA9IHZhbHVlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgIHRoaXMucGVuZGluZ01vbnRoSW5kZXggPSB2YWx1ZS5nZXRNb250aCgpO1xyXG4gICAgICB0aGlzLnBlbmRpbmdEYXkgPSB2YWx1ZS5nZXREYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTtcclxuICAgICAgaWYgKCEhdGhpcy5yYW5nZUxpbWl0KSB7XHJcbiAgICAgICAgbm93ID0gdGhpcy5yYW5nZUxpbWl0Lm1pbkRhdGU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLm5leHQoe1xyXG4gICAgICAgIHllYXI6IG5vdy5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIG1vbnRoSW5kZXg6IG5vdy5nZXRNb250aCgpXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuY3VycmVudEhvdXJzID0gbm93LmdldEhvdXJzKCk7XHJcbiAgICAgIHRoaXMuY3VycmVudE1pbnV0ZXMgPSBub3cuZ2V0TWludXRlcygpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRTZWNvbmRzID0gbm93LmdldFNlY29uZHMoKTtcclxuICAgICAgdGhpcy5jdXJyZW50TWlsbGlzZWNvbmRzID0gbm93LmdldE1pbGxpc2Vjb25kcygpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRNb250aFRleHQgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZ2V0TW9udGhUZXh0KHRoaXMubGFuZywgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLnZhbHVlLm1vbnRoSW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLyogQ29udmVydCBVVEMgZGF0ZSB0byBsb2NhbCBkYXRlICovXHJcbiAgICAgIGNvbnN0IG9yaWdpbmFsRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKG9iaik7XHJcbiAgICAgIGNvbnN0IG9mZnNldCA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lem9uZU9mZnNldCgpO1xyXG4gICAgICBjb25zdCBkYXRlVmFsdWUgPSBuZXcgRGF0ZShvcmlnaW5hbERhdGUuZ2V0VGltZSgpIC0gb2Zmc2V0ICogNjAwMDApO1xyXG4gICAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICAgICAgaWYgKHR5cGVvZiBvYmohLmdldEZ1bGxZZWFyID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgdXBkYXRlUHJvcGVydGllcyhkYXRlVmFsdWUpO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29uc3QgaXNEYXRlID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmlzRGF0ZVN0cmluZyhvYmopO1xyXG4gICAgICAgIGlmIChpc0RhdGUpIHtcclxuICAgICAgICAgIC8vY29uc3QgX29iaiA9IG5ldyBEYXRlKG9iaik7IC8vIGNvbnZlcnQgc3RyaW5nIHRvIGRhdGUgXHJcbiAgICAgICAgICB1cGRhdGVQcm9wZXJ0aWVzKGRhdGVWYWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJJbnZhbGlkIGRhdGUgaW5wdXQ6IFwiLCBvYmopO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkludmFsaWQgZGF0ZSBpbnB1dDogXCIsIG9iaik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSXRlbUNsaWNrKGRhdGU6IERhdGUpIHtcclxuXHJcbiAgICBpZiAodGhpcy5yZWFkb25seSkgcmV0dXJuO1xyXG5cclxuICAgIGlmICghIXRoaXMucmFuZ2VMaW1pdCkge1xyXG4gICAgICBpZiAoZGF0ZSA8IHRoaXMucmFuZ2VMaW1pdC5taW5EYXRlIHx8IGRhdGUgPiB0aGlzLnJhbmdlTGltaXQubWF4RGF0ZSkgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBoID0gbm93LmdldEhvdXJzKCk7XHJcbiAgICBjb25zdCBtID0gbm93LmdldE1pbnV0ZXMoKTtcclxuICAgIGNvbnN0IHMgPSBub3cuZ2V0U2Vjb25kcygpO1xyXG4gICAgY29uc3QgbXMgPSBub3cuZ2V0TWlsbGlzZWNvbmRzKCk7XHJcbiAgICBkYXRlLnNldEhvdXJzKGgpO1xyXG4gICAgZGF0ZS5zZXRNaW51dGVzKG0pO1xyXG4gICAgZGF0ZS5zZXRTZWNvbmRzKHMpO1xyXG4gICAgZGF0ZS5zZXRNaWxsaXNlY29uZHMobXMpO1xyXG4gICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZGF0ZVRvVm5TdHJpbmcoZGF0ZSk7XHJcblxyXG4gICAgdGhpcy5wZW5kaW5nWWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIHRoaXMucGVuZGluZ01vbnRoSW5kZXggPSBkYXRlLmdldE1vbnRoKCk7XHJcbiAgICB0aGlzLnBlbmRpbmdEYXkgPSBkYXRlLmdldERhdGUoKTtcclxuXHJcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIFxyXG4gICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcclxuICAgIHRoaXMub3BlblN0YXRlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnb1RvZGF5KCkge1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKCEhdGhpcy5yYW5nZUxpbWl0KSB7XHJcbiAgICAgIGlmICh0b2RheSA8IHRoaXMucmFuZ2VMaW1pdC5taW5EYXRlIHx8IHRvZGF5ID4gdGhpcy5yYW5nZUxpbWl0Lm1heERhdGUpIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmRhdGVUb1ZuU3RyaW5nKHRvZGF5KTtcclxuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0b2RheSk7XHJcbiAgICB0aGlzLm9wZW5TdGF0ZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnRleHRWYWx1ZSA9ICcnO1xyXG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLmxhc3RUZXh0ID0gJyc7XHJcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XHJcbiAgICB0aGlzLm9wZW5TdGF0ZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ29CYWNrd2FyZCgpIHtcclxuICAgIHRoaXMuZGlyZWN0aW9uID0gLTE7XHJcbiAgICB0aGlzLmJhY2t3YXJkLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50TW9udGhPYmplY3QkLnZhbHVlLm1vbnRoSW5kZXggPT09IDApIHtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLm5leHQoe1xyXG4gICAgICAgIHllYXI6IHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC52YWx1ZS55ZWFyIC0gMSxcclxuICAgICAgICBtb250aEluZGV4OiAxMVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhUZXh0ID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmdldE1vbnRoVGV4dCh0aGlzLmxhbmcsIDExKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC5uZXh0KHtcclxuICAgICAgICB5ZWFyOiB0aGlzLmN1cnJlbnRNb250aE9iamVjdCQudmFsdWUueWVhcixcclxuICAgICAgICBtb250aEluZGV4OiB0aGlzLmN1cnJlbnRNb250aE9iamVjdCQudmFsdWUubW9udGhJbmRleCAtIDFcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmN1cnJlbnRNb250aFRleHQgPSB0aGlzLmNvcmVEYXRldGltZVNlcnZpY2UuZ2V0TW9udGhUZXh0KHRoaXMubGFuZywgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLnZhbHVlLm1vbnRoSW5kZXgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Gb3Jld2FyZCgpIHtcclxuICAgIHRoaXMuZGlyZWN0aW9uID0gMTtcclxuICAgIHRoaXMuYmFja3dhcmQubmF0aXZlRWxlbWVudC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICB0aGlzXHJcbiAgICBpZiAodGhpcy5jdXJyZW50TW9udGhPYmplY3QkLnZhbHVlLm1vbnRoSW5kZXggPT09IDExKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC5uZXh0KHtcclxuICAgICAgICB5ZWFyOiB0aGlzLmN1cnJlbnRNb250aE9iamVjdCQudmFsdWUueWVhciArIDEsXHJcbiAgICAgICAgbW9udGhJbmRleDogMFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhUZXh0ID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmdldE1vbnRoVGV4dCh0aGlzLmxhbmcsIDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLm5leHQoe1xyXG4gICAgICAgIHllYXI6IHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC52YWx1ZS55ZWFyLFxyXG4gICAgICAgIG1vbnRoSW5kZXg6IHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC52YWx1ZS5tb250aEluZGV4ICsgMVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5jdXJyZW50TW9udGhUZXh0ID0gdGhpcy5jb3JlRGF0ZXRpbWVTZXJ2aWNlLmdldE1vbnRoVGV4dCh0aGlzLmxhbmcsIHRoaXMuY3VycmVudE1vbnRoT2JqZWN0JC52YWx1ZS5tb250aEluZGV4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIFByb2JhYmx5IHRoZSBtb3N0IGltcG9ydGFudCBmdW5jdGlvbiAqL1xyXG4gIGJ1aWxkQm9keSh5ZWFyOiBudW1iZXIsIG1vbnRoSW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgYm9keSA9IHRoaXMuY29yZURhdGV0aW1lU2VydmljZS5nZXRDYWxlbmRhckJvZHkoeWVhciwgbW9udGhJbmRleCwgdGhpcy5kaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5kYXRhID0gYm9keS5yb3dzO1xyXG4gICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zY3JvbGwtZGlzdGFuY2UnLCAoYm9keS5yb3dzLmxlbmd0aCAtIDYpICogdGhpcy5jZWxsU2l6ZSArICdweCcpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5saXN0ZW5lckZuKSB0aGlzLmxpc3RlbmVyRm4oKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB4Py51bnN1YnNjcmliZSgpKVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlT3BlbigpIHtcclxuICAgIGlmICghIXRoaXMucmVhZG9ubHkpIHJldHVyblxyXG4gICAgaWYgKCEhdGhpcy5kaXNhYmxlZCkgcmV0dXJuXHJcbiAgICB0aGlzLm9wZW5TdGF0ZSA9ICF0aGlzLm9wZW5TdGF0ZTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZU1vbnRoUGlja2VyQWN0aXZlKCkge1xyXG4gICAgdGhpcy5tb250aFBpY2tlckFjdGl2ZSA9ICF0aGlzLm1vbnRoUGlja2VyQWN0aXZlO1xyXG4gIH1cclxuXHJcbiAgb25Nb250aE9iamVjdENoYW5nZShhcmdzOiBJTW9udGhJZGVudGl0eSkge1xyXG4gICAgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLm5leHQoe1xyXG4gICAgICB5ZWFyOiBhcmdzLnllYXIsXHJcbiAgICAgIG1vbnRoSW5kZXg6IGFyZ3MubW9udGhJbmRleFxyXG4gICAgfSlcclxuICAgIHRoaXMubW9udGhQaWNrZXJBY3RpdmUgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uTW9udGhQaWNrZXJZZWFyQ2xpY2soZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1vbnRoUGlja2VyQWN0aXZlID0gZmFsc2U7XHJcbiAgICB0aGlzLnllYXJQaWNrZXJBY3RpdmUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25ZZWFyUGlja2VkKGU6IG51bWJlcikge1xyXG4gICAgdGhpcy5jdXJyZW50TW9udGhPYmplY3QkLm5leHQoe1xyXG4gICAgICB5ZWFyOiBlLFxyXG4gICAgICBtb250aEluZGV4OiB0aGlzLmN1cnJlbnRNb250aE9iamVjdCQudmFsdWUubW9udGhJbmRleFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnllYXJQaWNrZXJBY3RpdmUgPSBmYWxzZTtcclxuICAgIHRoaXMubW9udGhQaWNrZXJBY3RpdmUgPSB0cnVlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLWRhdGUtcGlja2VyLWNvbnRhaW5lclwiPlxyXG4gICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwib3BlblN0YXRlXCI+XHJcbiAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJtb250aFBpY2tlckFjdGl2ZVwiPlxyXG4gICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwieWVhclBpY2tlckFjdGl2ZVwiPlxyXG4gICAgPGlucHV0ICNiYWNrd2FyZCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cInRsLWRhdGVwaWNrZXItZGlyZWN0aW9uXCI+XHJcbiAgICA8aW5wdXQgI2lucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbcGxhY2Vob2xkZXJdPVwic2hvd1BsYWNlaG9sZGVyID8gJ2RkL21tL3l5eXknIDogJydcIlxyXG4gICAgICAgIG1heGxlbmd0aD1cIjEwXCIgWyhuZ01vZGVsKV09XCJ0ZXh0VmFsdWVcIiBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+PGxhYmVsIGNsYXNzPVwiaWNvblwiIChjbGljayk9XCJ0b2dnbGVPcGVuKClcIj48L2xhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cInRsLWRhdGUtcGlja2VyLXBvcHVwXCIgW2NsYXNzLm9wZW5dPVwib3BlblN0YXRlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLXNlc3Npb25cIiBbY2xhc3MuZC1ub25lXT1cIm1vbnRoUGlja2VyQWN0aXZlIHx8IHllYXJQaWNrZXJBY3RpdmVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdmlnYXRvclwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibW9udGgtZHJvcGRvd25cIiAoY2xpY2spPVwidG9nZ2xlTW9udGhQaWNrZXJBY3RpdmUoKVwiPnt7IGN1cnJlbnRNb250aFRleHQgfX0ge3tcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9udGhPYmplY3QkLnZhbHVlLnllYXIgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFycm93c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnby11cFwiIChjbGljayk9XCJnb0JhY2t3YXJkKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ28tZG93blwiIChjbGljayk9XCJnb0ZvcmV3YXJkKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXktaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBkYXkgb2YgaGVhZGVyV2Vla2RheXM7IGxldCBpID0gaW5kZXhcIiBbY2xhc3MudDddPVwiaT09PTVcIiBbY2xhc3MuY25dPVwiaT09PTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57eyBkYXkgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ib2R5LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAjY2FsZW5kYXJCb2R5IGNsYXNzPVwiY2FsZW5kYXItYm9keVwiIFtjbGFzcy5zbGlkZS11cF09XCJkaXJlY3Rpb249PT0xXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2xpZGUtZG93bl09XCJkaXJlY3Rpb249PT0tMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgd2VlayBvZiBkYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiB3ZWVrLml0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzcy5vdXQtb2YtbW9udGhdPVwiISEhaXRlbS5jdXJyZW50TW9udGhcIiBbY2xhc3MudDddPVwiaT09PTVcIiBbY2xhc3MuY25dPVwiaT09PTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5vdXQtb2YtcmFuZ2VdPVwiISFyYW5nZUxpbWl0ICYmICEhISgoaXRlbS5kYXRlVmFsdWU+PXJhbmdlTGltaXQubWluRGF0ZSkgJiYgKHJhbmdlTGltaXQubWF4RGF0ZT49aXRlbS5kYXRlVmFsdWUpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLmRhdGVWYWx1ZS5nZXRGdWxsWWVhcigpPT09cGVuZGluZ1llYXIgJiYgaXRlbS5kYXRlVmFsdWUuZ2V0TW9udGgoKT09PXBlbmRpbmdNb250aEluZGV4ICYmIGl0ZW0uZGF0ZVZhbHVlLmdldERhdGUoKT09PXBlbmRpbmdEYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhpdGVtLmRhdGVWYWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRhdGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC1waWNrZXItc2Vzc2lvblwiIFtjbGFzcy5hY3RpdmVdPVwibW9udGhQaWNrZXJBY3RpdmVcIj5cclxuICAgICAgICAgICAgPGNvcmUtbW9udGgtcGlja2VyIFtsYW5nXT1cImxhbmdcIiBbbW9udGhPYmplY3QkXT1cImN1cnJlbnRNb250aE9iamVjdCRcIiAob25DaGFuZ2UpPVwib25Nb250aE9iamVjdENoYW5nZSgkZXZlbnQpXCIgKG9uWWVhckNsaWNrKT1cIm9uTW9udGhQaWNrZXJZZWFyQ2xpY2soJGV2ZW50KVwiPjwvY29yZS1tb250aC1waWNrZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInllYXItcGlja2VyLXNlc3Npb25cIiBbY2xhc3MuYWN0aXZlXT1cInllYXJQaWNrZXJBY3RpdmVcIj5cclxuICAgICAgICAgICAgPGNvcmUteWVhci1waWNrZXIgW2xhbmddPVwibGFuZ1wiIChvbkNoYW5nZSk9XCJvblllYXJQaWNrZWQoJGV2ZW50KVwiPjwvY29yZS15ZWFyLXBpY2tlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNkcC1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhclwiIFtjbGFzcy5vcGFjaXR5LTBdPVwiISEhdGV4dFZhbHVlXCIgKGNsaWNrKT1cImNsZWFyKClcIj57eyAnVUkuQ09SRV9EQVRFX1BJQ0tFUl9DTEVBUicgfCB0cmFuc2xhdGU6IGxhbmcgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaWdpLXdhdGNoXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9kYXlcIiAoY2xpY2spPVwiZ29Ub2RheSgpXCI+e3sgJ1VJLkNPUkVfREFURV9QSUNLRVJfVE9EQVknIHwgdHJhbnNsYXRlOiBsYW5nIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==