UNPKG

ontimize-web-ngx

Version:
126 lines 20.9 kB
export class Codes { static isDoubleClickMode(value) { return Codes.DETAIL_MODE_DBLCLICK_VALUES.indexOf(value) !== -1; } static isValidRowHeight(value) { return Codes.AVAILABLE_ROW_HEIGHTS_VALUES.indexOf(value) !== -1; } static getIsDetailObject() { const res = {}; res[Codes.IS_DETAIL] = 'true'; return res; } static formatString(format) { return (format === Codes.TWENTY_FOUR_HOUR_FORMAT ? Codes.HourFormat.TWENTY_FOUR : Codes.HourFormat.TWELVE); } static isHourInputAllowed(e) { if ([46, 8, 9, 27, 13].some(n => n === e.keyCode) || (e.key === ':') || (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) || (e.keyCode === 67 && (e.ctrlKey === true || e.metaKey === true)) || (e.keyCode === 88 && (e.ctrlKey === true || e.metaKey === true)) || (e.keyCode >= 35 && e.keyCode <= 40)) { return true; } return !((e.keyCode < 48 || e.keyCode > 57) && (e.keyCode < 96 || e.keyCode > 105)); } static isValidEditionMode(editionMode) { return Codes.AVAILABLE_MODES.indexOf(editionMode) !== -1; } static isValidDetailMode(detailMode) { return Codes.AVAILABLE_DETAIL_MODES.indexOf(detailMode) !== -1; } } Codes.PAGINATED_QUERY_METHOD = 'advancedQuery'; Codes.DELETE_METHOD = 'delete'; Codes.INSERT_METHOD = 'insert'; Codes.UPDATE_METHOD = 'update'; Codes.QUERY_METHOD = 'query'; Codes.DEFAULT_QUERY_ROWS = 10; Codes.PAGE_SIZE_OPTIONS = [10, 25, 50, 100]; Codes.DETAIL_ICON = 'chevron_right'; Codes.EDIT_ICON = 'mode_edit'; Codes.DEFAULT_ROW_HEIGHT = 'medium'; Codes.AVAILABLE_ROW_HEIGHTS_VALUES = ['small', 'medium', 'large']; Codes.DETAIL_MODE_NONE = 'none'; Codes.DETAIL_MODE_CLICK = 'click'; Codes.DETAIL_MODE_DBLCLICK_VALUES = ['dblclick', 'doubleclick']; Codes.AVAILABLE_DETAIL_MODES = [Codes.DETAIL_MODE_NONE, Codes.DETAIL_MODE_CLICK, ...Codes.DETAIL_MODE_DBLCLICK_VALUES]; Codes.EDITION_MODE_NONE = 'none'; Codes.EDITION_MODE_CLICK = 'click'; Codes.EDITION_MODE_DBLCLICK_VALUES = ['dblclick', 'doubleclick']; Codes.AVAILABLE_MODES = [Codes.EDITION_MODE_NONE, Codes.EDITION_MODE_CLICK, ...Codes.EDITION_MODE_DBLCLICK_VALUES]; Codes.SELECTION_MODE_NONE = 'none'; Codes.SELECTION_MODE_SINGLE = 'single'; Codes.SELECTION_MODE_MULTIPLE = 'multiple'; Codes.EXPORT_MODE_VISIBLE = 'visible'; Codes.EXPORT_MODE_LOCAL = 'local'; Codes.EXPORT_MODE_ALL = 'all'; Codes.HYPHEN_SEPARATOR = '-'; Codes.SPACE_SEPARATOR = ' '; Codes.COLUMNS_ALIAS_SEPARATOR = ':'; Codes.ARRAY_INPUT_SEPARATOR = ';'; Codes.TYPE_SEPARATOR = ':'; Codes.VALUES_SEPARATOR = '='; Codes.ASC_SORT = 'asc'; Codes.DESC_SORT = 'desc'; Codes.TYPE_INT = 'int'; Codes.ROUTE_SEPARATOR = '/'; Codes.ROUTE_VARIABLE_CHAR = ':'; Codes.PARENT_KEYS_KEY = 'pk'; Codes.QUERY_PARAMS = 'queryParams'; Codes.IS_DETAIL = 'isdetail'; Codes.LANGUAGE_KEY = 'lang'; Codes.SESSION_KEY = 'session'; Codes.SESSION_EXPIRED_KEY = 'session-expired'; Codes.LOGIN_ROUTE = '/login'; Codes.FORBIDDEN_ROUTE = '403'; Codes.DEFAULT_EDIT_ROUTE = 'edit'; Codes.DEFAULT_DETAIL_ROUTE = undefined; Codes.DEFAULT_INSERT_ROUTE = 'new'; Codes.IGNORE_CAN_DEACTIVATE = 'ignore_can_deactivate'; Codes.INSERTION_MODE = 'insertionMode'; Codes.ONTIMIZE_SUCCESSFUL_CODE = 0; Codes.ONTIMIZE_FAILED_CODE = 1; Codes.ONTIMIZE_UNAUTHORIZED_CODE = 3; Codes.ICON_POSITION_LEFT = 'left'; Codes.ICON_POSITION_RIGHT = 'right'; Codes.COLUMN_TITLE_ALIGN_START = 'start'; Codes.COLUMN_TITLE_ALIGN_CENTER = 'center'; Codes.COLUMN_TITLE_ALIGN_END = 'end'; Codes.COLUMN_TITLE_ALIGN_AUTO = 'auto'; Codes.AVAILABLE_COLUMN_TITLE_ALIGNS = [Codes.COLUMN_TITLE_ALIGN_START, Codes.COLUMN_TITLE_ALIGN_CENTER, Codes.COLUMN_TITLE_ALIGN_END, Codes.COLUMN_TITLE_ALIGN_AUTO]; Codes.O_MAT_ERROR_STANDARD = 'standard'; Codes.O_MAT_ERROR_LITE = 'lite'; Codes.O_INPUTS_OPTIONS_COLOR_ACCENT = 'accent'; Codes.HourFormat = { TWELVE: 'hh:mm a', TWENTY_FOUR: 'HH:mm a', }; Codes.CLOSE_DETAIL_ACTION = 'CLOSE'; Codes.BACK_ACTION = 'BACK'; Codes.RELOAD_ACTION = 'RELOAD'; Codes.GO_EDIT_ACTION = 'GO_EDIT'; Codes.EDIT_ACTION = 'EDIT'; Codes.INSERT_ACTION = 'INSERT'; Codes.GO_INSERT_ACTION = 'GO_INSERT'; Codes.DELETE_ACTION = 'DELETE'; Codes.UNDO_LAST_CHANGE_ACTION = 'UNDO_LAST_CHANGE'; Codes.DEFAULT_COLUMN_MIN_WIDTH = 80; Codes.NAME_COLUMN_SELECT = 'select'; Codes.NAME_COLUMN_EXPANDABLE = 'expandable'; Codes.SUFFIX_COLUMN_INSERTABLE = '_insertable'; Codes.LIMIT_SCROLLVIRTUAL = 50; Codes.TWENTY_FOUR_HOUR_FORMAT = 24; Codes.TWELVE_FOUR_HOUR_FORMAT = 12; Codes.OAppLayoutModes = ['mobile', 'desktop']; Codes.OSidenavModes = ['over', 'push', 'side']; Codes.OAppLayoutMode = ['mobile', 'desktop']; Codes.OSidenavMode = ['over', 'push', 'side']; Codes.APP_LAYOUT_MODE_DESKTOP = 'desktop'; Codes.APP_LAYOUT_MODE_MOBILE = 'mobile'; Codes.VISIBLE_EXPORT_BUTTONS = ['xlsx', 'pdf', 'html']; Codes.VISIBLE_EXPORT_BUTTONS3X = ['xlsx', 'pdf', 'csv']; Codes.DEFAULT_CHANGE_EVENT = 'onValueChange'; Codes.TYPES_DATE_GROUPS = ["YEAR", "MONTH", "YEAR_MONTH", "YEAR_MONTH_DAY"]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9jb2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLE9BQU8sS0FBSztJQTZIaEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxLQUFLLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBYTtRQUNuQyxPQUFPLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUI7UUFDdEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDOUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjO1FBQ2hDLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQWdCO1FBRXhDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFL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LEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRXhDLDZCQUF1QixHQUFtQixTQUFTLENBQUM7QUFDcEQsNEJBQXNCLEdBQW1CLFFBQVEsQ0FBQztBQUNsRCw0QkFBc0IsR0FBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDM0QsOEJBQXdCLEdBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRTVELDBCQUFvQixHQUFrQixlQUFlLENBQUM7QUFDdEQsdUJBQWlCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT0FwcExheW91dE1vZGUgPSAnbW9iaWxlJyB8ICdkZXNrdG9wJztcbmV4cG9ydCB0eXBlIE9TaWRlbmF2TW9kZSA9ICdvdmVyJyB8ICdwdXNoJyB8ICdzaWRlJztcbmV4cG9ydCB0eXBlIENIQU5HRV9FVkVOVFMgPSAnb25WYWx1ZUNoYW5nZScgfCAnb25DaGFuZ2UnO1xuXG5leHBvcnQgdHlwZSBPUm93SGVpZ2h0ID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcbmV4cG9ydCB0eXBlIE9UYWJsZUVkaXRpb25Nb2RlID0gJ25vbmUnIHwgJ2NsaWNrJyB8ICdkYmxjbGljaycgfCAnZG91YmxlY2xpY2snO1xuZXhwb3J0IHR5cGUgT1RhYmxlRGV0YWlsTW9kZSA9ICdub25lJyB8ICdjbGljaycgfCAnZGJsY2xpY2snIHwgJ2RvdWJsZWNsaWNrJztcbmV4cG9ydCBjbGFzcyBDb2RlcyB7XG5cbiAgcHVibGljIHN0YXRpYyBQQUdJTkFURURfUVVFUllfTUVUSE9EID0gJ2FkdmFuY2VkUXVlcnknO1xuICBwdWJsaWMgc3RhdGljIERFTEVURV9NRVRIT0QgPSAnZGVsZXRlJztcbiAgcHVibGljIHN0YXRpYyBJTlNFUlRfTUVUSE9EID0gJ2luc2VydCc7XG4gIHB1YmxpYyBzdGF0aWMgVVBEQVRFX01FVEhPRCA9ICd1cGRhdGUnO1xuICBwdWJsaWMgc3RhdGljIFFVRVJZX01FVEhPRCA9ICdxdWVyeSc7XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1FVRVJZX1JPV1MgPSAxMDtcbiAgcHVibGljIHN0YXRpYyBQQUdFX1NJWkVfT1BUSU9OUyA9IFsxMCwgMjUsIDUwLCAxMDBdO1xuXG4gIHB1YmxpYyBzdGF0aWMgREVUQUlMX0lDT04gPSAnY2hldnJvbl9yaWdodCc7XG4gIHB1YmxpYyBzdGF0aWMgRURJVF9JQ09OID0gJ21vZGVfZWRpdCc7XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1JPV19IRUlHSFQgPSAnbWVkaXVtJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkFJTEFCTEVfUk9XX0hFSUdIVFNfVkFMVUVTID0gWydzbWFsbCcsICdtZWRpdW0nLCAnbGFyZ2UnXTtcblxuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgREVUQUlMX01PREVfQ0xJQ0sgPSAnY2xpY2snO1xuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX0RCTENMSUNLX1ZBTFVFUyA9IFsnZGJsY2xpY2snLCAnZG91YmxlY2xpY2snXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkFJTEFCTEVfREVUQUlMX01PREVTID0gW0NvZGVzLkRFVEFJTF9NT0RFX05PTkUsIENvZGVzLkRFVEFJTF9NT0RFX0NMSUNLLCAuLi5Db2Rlcy5ERVRBSUxfTU9ERV9EQkxDTElDS19WQUxVRVNdO1xuXG4gIHB1YmxpYyBzdGF0aWMgRURJVElPTl9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgRURJVElPTl9NT0RFX0NMSUNLID0gJ2NsaWNrJztcbiAgcHVibGljIHN0YXRpYyBFRElUSU9OX01PREVfREJMQ0xJQ0tfVkFMVUVTID0gWydkYmxjbGljaycsICdkb3VibGVjbGljayddO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWQUlMQUJMRV9NT0RFUyA9IFtDb2Rlcy5FRElUSU9OX01PREVfTk9ORSwgQ29kZXMuRURJVElPTl9NT0RFX0NMSUNLLCAuLi5Db2Rlcy5FRElUSU9OX01PREVfREJMQ0xJQ0tfVkFMVUVTXTtcblxuICBwdWJsaWMgc3RhdGljIFNFTEVDVElPTl9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgU0VMRUNUSU9OX01PREVfU0lOR0xFID0gJ3NpbmdsZSc7XG4gIHB1YmxpYyBzdGF0aWMgU0VMRUNUSU9OX01PREVfTVVMVElQTEUgPSAnbXVsdGlwbGUnO1xuXG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfVklTSUJMRSA9ICd2aXNpYmxlJztcbiAgcHVibGljIHN0YXRpYyBFWFBPUlRfTU9ERV9MT0NBTCA9ICdsb2NhbCc7XG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfQUxMID0gJ2FsbCc7XG5cbiAgcHVibGljIHN0YXRpYyBIWVBIRU5fU0VQQVJBVE9SID0gJy0nO1xuICBwdWJsaWMgc3RhdGljIFNQQUNFX1NFUEFSQVRPUiA9ICcgJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5TX0FMSUFTX1NFUEFSQVRPUiA9ICc6JztcbiAgcHVibGljIHN0YXRpYyBBUlJBWV9JTlBVVF9TRVBBUkFUT1IgPSAnOyc7XG4gIHB1YmxpYyBzdGF0aWMgVFlQRV9TRVBBUkFUT1IgPSAnOic7XG4gIHB1YmxpYyBzdGF0aWMgVkFMVUVTX1NFUEFSQVRPUiA9ICc9JztcbiAgcHVibGljIHN0YXRpYyBBU0NfU09SVCA9ICdhc2MnO1xuICBwdWJsaWMgc3RhdGljIERFU0NfU09SVCA9ICdkZXNjJztcblxuICBwdWJsaWMgc3RhdGljIFRZUEVfSU5UID0gJ2ludCc7XG5cbiAgcHVibGljIHN0YXRpYyBST1VURV9TRVBBUkFUT1IgPSAnLyc7XG4gIHB1YmxpYyBzdGF0aWMgUk9VVEVfVkFSSUFCTEVfQ0hBUiA9ICc6JztcblxuICBwdWJsaWMgc3RhdGljIFBBUkVOVF9LRVlTX0tFWSA9ICdwayc7XG4gIHB1YmxpYyBzdGF0aWMgUVVFUllfUEFSQU1TID0gJ3F1ZXJ5UGFyYW1zJztcbiAgcHVibGljIHN0YXRpYyBJU19ERVRBSUwgPSAnaXNkZXRhaWwnO1xuXG4gIHB1YmxpYyBzdGF0aWMgTEFOR1VBR0VfS0VZID0gJ2xhbmcnO1xuICBwdWJsaWMgc3RhdGljIFNFU1NJT05fS0VZID0gJ3Nlc3Npb24nO1xuICBwdWJsaWMgc3RhdGljIFNFU1NJT05fRVhQSVJFRF9LRVkgPSAnc2Vzc2lvbi1leHBpcmVkJztcblxuICBwdWJsaWMgc3RhdGljIExPR0lOX1JPVVRFID0gJy9sb2dpbic7XG4gIHB1YmxpYyBzdGF0aWMgRk9SQklEREVOX1JPVVRFID0gJzQwMyc7XG4gIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9FRElUX1JPVVRFID0gJ2VkaXQnO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfREVUQUlMX1JPVVRFID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfSU5TRVJUX1JPVVRFID0gJ25ldyc7XG5cbiAgcHVibGljIHN0YXRpYyBJR05PUkVfQ0FOX0RFQUNUSVZBVEUgPSAnaWdub3JlX2Nhbl9kZWFjdGl2YXRlJztcbiAgcHVibGljIHN0YXRpYyBJTlNFUlRJT05fTU9ERSA9ICdpbnNlcnRpb25Nb2RlJztcblxuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX1NVQ0NFU1NGVUxfQ09ERSA9IDA7XG4gIHB1YmxpYyBzdGF0aWMgT05USU1JWkVfRkFJTEVEX0NPREUgPSAxO1xuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX1VOQVVUSE9SSVpFRF9DT0RFID0gMztcblxuICBwdWJsaWMgc3RhdGljIElDT05fUE9TSVRJT05fTEVGVCA9ICdsZWZ0JztcbiAgcHVibGljIHN0YXRpYyBJQ09OX1BPU0lUSU9OX1JJR0hUID0gJ3JpZ2h0JztcblxuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9TVEFSVCA9ICdzdGFydCc7XG4gIHB1YmxpYyBzdGF0aWMgQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUiA9ICdjZW50ZXInO1xuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9FTkQgPSAnZW5kJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5fVElUTEVfQUxJR05fQVVUTyA9ICdhdXRvJztcbiAgcHVibGljIHN0YXRpYyBBVkFJTEFCTEVfQ09MVU1OX1RJVExFX0FMSUdOUyA9XG4gICAgW0NvZGVzLkNPTFVNTl9USVRMRV9BTElHTl9TVEFSVCwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUiwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0VORCwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0FVVE9dO1xuXG4gIHB1YmxpYyBzdGF0aWMgT19NQVRfRVJST1JfU1RBTkRBUkQgPSAnc3RhbmRhcmQnO1xuICBwdWJsaWMgc3RhdGljIE9fTUFUX0VSUk9SX0xJVEUgPSAnbGl0ZSc7XG5cbiAgcHVibGljIHN0YXRpYyBPX0lOUFVUU19PUFRJT05TX0NPTE9SX0FDQ0VOVCA9ICdhY2NlbnQnO1xuICBwdWJsaWMgc3RhdGljIEhvdXJGb3JtYXQgPSB7XG4gICAgVFdFTFZFOiAnaGg6bW0gYScsXG4gICAgVFdFTlRZX0ZPVVI6ICdISDptbSBhJyxcbiAgfTtcblxuICAvLyBPRm9ybUNvbXBvbmVudFxuICBwdWJsaWMgc3RhdGljIENMT1NFX0RFVEFJTF9BQ1RJT046IHN0cmluZyA9ICdDTE9TRSc7XG4gIHB1YmxpYyBzdGF0aWMgQkFDS19BQ1RJT046IHN0cmluZyA9ICdCQUNLJztcbiAgcHVibGljIHN0YXRpYyBSRUxPQURfQUNUSU9OOiBzdHJpbmcgPSAnUkVMT0FEJztcbiAgcHVibGljIHN0YXRpYyBHT19FRElUX0FDVElPTjogc3RyaW5nID0gJ0dPX0VESVQnO1xuICBwdWJsaWMgc3RhdGljIEVESVRfQUNUSU9OOiBzdHJpbmcgPSAnRURJVCc7XG4gIHB1YmxpYyBzdGF0aWMgSU5TRVJUX0FDVElPTjogc3RyaW5nID0gJ0lOU0VSVCc7XG4gIHB1YmxpYyBzdGF0aWMgR09fSU5TRVJUX0FDVElPTjogc3RyaW5nID0gJ0dPX0lOU0VSVCc7XG4gIHB1YmxpYyBzdGF0aWMgREVMRVRFX0FDVElPTjogc3RyaW5nID0gJ0RFTEVURSc7XG4gIHB1YmxpYyBzdGF0aWMgVU5ET19MQVNUX0NIQU5HRV9BQ1RJT046IHN0cmluZyA9ICdVTkRPX0xBU1RfQ0hBTkdFJztcblxuICAvLyBPVGFibGVDb21wb25lbnRcbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX0NPTFVNTl9NSU5fV0lEVEggPSA4MDtcbiAgcHVibGljIHN0YXRpYyBOQU1FX0NPTFVNTl9TRUxFQ1QgPSAnc2VsZWN0JztcbiAgcHVibGljIHN0YXRpYyBOQU1FX0NPTFVNTl9FWFBBTkRBQkxFID0gJ2V4cGFuZGFibGUnO1xuICBwdWJsaWMgc3RhdGljIFNVRkZJWF9DT0xVTU5fSU5TRVJUQUJMRSA9ICdfaW5zZXJ0YWJsZSc7XG4gIHB1YmxpYyBzdGF0aWMgTElNSVRfU0NST0xMVklSVFVBTCA9IDUwO1xuXG4gIHB1YmxpYyBzdGF0aWMgVFdFTlRZX0ZPVVJfSE9VUl9GT1JNQVQgPSAyNDtcbiAgcHVibGljIHN0YXRpYyBUV0VMVkVfRk9VUl9IT1VSX0ZPUk1BVCA9IDEyO1xuXG4gIHB1YmxpYyBzdGF0aWMgT0FwcExheW91dE1vZGVzOiBPQXBwTGF5b3V0TW9kZVtdID0gWydtb2JpbGUnLCAnZGVza3RvcCddO1xuICBwdWJsaWMgc3RhdGljIE9TaWRlbmF2TW9kZXM6IE9TaWRlbmF2TW9kZVtdID0gWydvdmVyJywgJ3B1c2gnLCAnc2lkZSddO1xuXG4gIHB1YmxpYyBzdGF0aWMgT0FwcExheW91dE1vZGUgPSBbJ21vYmlsZScsICdkZXNrdG9wJ107XG4gIHB1YmxpYyBzdGF0aWMgT1NpZGVuYXZNb2RlID0gWydvdmVyJywgJ3B1c2gnLCAnc2lkZSddO1xuXG4gIHB1YmxpYyBzdGF0aWMgQVBQX0xBWU9VVF9NT0RFX0RFU0tUT1A6IE9BcHBMYXlvdXRNb2RlID0gJ2Rlc2t0b3AnO1xuICBwdWJsaWMgc3RhdGljIEFQUF9MQVlPVVRfTU9ERV9NT0JJTEU6IE9BcHBMYXlvdXRNb2RlID0gJ21vYmlsZSc7XG4gIHB1YmxpYyBzdGF0aWMgVklTSUJMRV9FWFBPUlRfQlVUVE9OUzogc3RyaW5nW10gPSBbJ3hsc3gnLCAncGRmJywgJ2h0bWwnXTtcbiAgcHVibGljIHN0YXRpYyBWSVNJQkxFX0VYUE9SVF9CVVRUT05TM1g6IHN0cmluZ1tdID0gWyd4bHN4JywgJ3BkZicsICdjc3YnXTtcblxuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfQ0hBTkdFX0VWRU5UOiBDSEFOR0VfRVZFTlRTID0gJ29uVmFsdWVDaGFuZ2UnO1xuICBwdWJsaWMgc3RhdGljIFRZUEVTX0RBVEVfR1JPVVBTID0gW1wiWUVBUlwiLCBcIk1PTlRIXCIsIFwiWUVBUl9NT05USFwiLCBcIllFQVJfTU9OVEhfREFZXCJdO1xuXG5cbiAgc3RhdGljIGlzRG91YmxlQ2xpY2tNb2RlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ29kZXMuREVUQUlMX01PREVfREJMQ0xJQ0tfVkFMVUVTLmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkUm93SGVpZ2h0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ29kZXMuQVZBSUxBQkxFX1JPV19IRUlHSFRTX1ZBTFVFUy5pbmRleE9mKHZhbHVlKSAhPT0gLTE7XG4gIH1cblxuICBzdGF0aWMgZ2V0SXNEZXRhaWxPYmplY3QoKTogYW55IHtcbiAgICBjb25zdCByZXMgPSB7fTtcbiAgICByZXNbQ29kZXMuSVNfREVUQUlMXSA9ICd0cnVlJztcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdFN0cmluZyhmb3JtYXQ6IG51bWJlcikge1xuICAgIHJldHVybiAoZm9ybWF0ID09PSBDb2Rlcy5UV0VOVFlfRk9VUl9IT1VSX0ZPUk1BVCA/IENvZGVzLkhvdXJGb3JtYXQuVFdFTlRZX0ZPVVIgOiBDb2Rlcy5Ib3VyRm9ybWF0LlRXRUxWRSk7XG4gIH1cblxuICBzdGF0aWMgaXNIb3VySW5wdXRBbGxvd2VkKGU6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAvLyBBbGxvdzogYmFja3NwYWNlLCBkZWxldGUsIHRhYiwgZXNjYXBlLCBlbnRlclxuICAgIGlmIChbNDYsIDgsIDksIDI3LCAxM10uc29tZShuID0+IG4gPT09IGUua2V5Q29kZSkgfHxcbiAgICAgIChlLmtleSA9PT0gJzonKSB8fFxuICAgICAgLy8gQWxsb3c6IEN0cmwvY21kK0FcbiAgICAgIChlLmtleUNvZGUgPT09IDY1ICYmIChlLmN0cmxLZXkgPT09IHRydWUgfHwgZS5tZXRhS2V5ID09PSB0cnVlKSkgfHxcbiAgICAgIC8vIEFsbG93OiBDdHJsL2NtZCtDXG4gICAgICAoZS5rZXlDb2RlID09PSA2NyAmJiAoZS5jdHJsS2V5ID09PSB0cnVlIHx8IGUubWV0YUtleSA9PT0gdHJ1ZSkpIHx8XG4gICAgICAvLyBBbGxvdzogQ3RybC9jbWQrWFxuICAgICAgKGUua2V5Q29kZSA9PT0gODggJiYgKGUuY3RybEtleSA9PT0gdHJ1ZSB8fCBlLm1ldGFLZXkgPT09IHRydWUpKSB8fFxuICAgICAgLy8gQWxsb3c6IGhvbWUsIGVuZCwgbGVmdCwgcmlnaHQsIHVwLCBkb3duXG4gICAgICAoZS5rZXlDb2RlID49IDM1ICYmIGUua2V5Q29kZSA8PSA0MCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gISgoZS5rZXlDb2RlIDwgNDggfHwgZS5rZXlDb2RlID4gNTcpICYmIChlLmtleUNvZGUgPCA5NiB8fCBlLmtleUNvZGUgPiAxMDUpKTtcbiAgfVxuICBzdGF0aWMgaXNWYWxpZEVkaXRpb25Nb2RlKGVkaXRpb25Nb2RlOiBPVGFibGVFZGl0aW9uTW9kZSkge1xuICAgIHJldHVybiBDb2Rlcy5BVkFJTEFCTEVfTU9ERVMuaW5kZXhPZihlZGl0aW9uTW9kZSkgIT09IC0xO1xuICB9XG4gIHN0YXRpYyBpc1ZhbGlkRGV0YWlsTW9kZShkZXRhaWxNb2RlOiBPVGFibGVEZXRhaWxNb2RlKTogYW55IHtcbiAgICByZXR1cm4gQ29kZXMuQVZBSUxBQkxFX0RFVEFJTF9NT0RFUy5pbmRleE9mKGRldGFpbE1vZGUpICE9PSAtMTtcbiAgfVxuXG59XG4iXX0=