You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
315 lines
29 KiB
JavaScript
315 lines
29 KiB
JavaScript
var __defProp = Object.defineProperty;
|
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
var import_chai = require("chai");
|
|
var import_conversation = require("../../../../models/conversation");
|
|
var import_conversations2 = require("../../../../state/selectors/conversations");
|
|
describe("state/selectors/conversations", () => {
|
|
describe("#getSortedConversationsList", () => {
|
|
it("sorts conversations based on timestamp then by intl-friendly title", () => {
|
|
const i18n = /* @__PURE__ */ __name((key) => key, "i18n");
|
|
const data = {
|
|
id1: {
|
|
id: "id1",
|
|
activeAt: 0,
|
|
name: "No timestamp",
|
|
type: import_conversation.ConversationTypeEnum.PRIVATE,
|
|
isMe: false,
|
|
unreadCount: 1,
|
|
mentionedUs: false,
|
|
isSelected: false,
|
|
isTyping: false,
|
|
isBlocked: false,
|
|
isKickedFromGroup: false,
|
|
left: false,
|
|
hasNickname: false,
|
|
isPublic: false,
|
|
subscriberCount: 0,
|
|
currentNotificationSetting: "all",
|
|
weAreAdmin: false,
|
|
isGroup: false,
|
|
isPrivate: false,
|
|
avatarPath: "",
|
|
groupAdmins: [],
|
|
lastMessage: void 0,
|
|
members: [],
|
|
profileName: "df",
|
|
expireTimer: 0,
|
|
isPinned: false
|
|
},
|
|
id2: {
|
|
id: "id2",
|
|
activeAt: 20,
|
|
name: "B",
|
|
type: import_conversation.ConversationTypeEnum.PRIVATE,
|
|
isMe: false,
|
|
unreadCount: 1,
|
|
mentionedUs: false,
|
|
isSelected: false,
|
|
isTyping: false,
|
|
isBlocked: false,
|
|
isKickedFromGroup: false,
|
|
left: false,
|
|
hasNickname: false,
|
|
isPublic: false,
|
|
subscriberCount: 0,
|
|
currentNotificationSetting: "all",
|
|
weAreAdmin: false,
|
|
isGroup: false,
|
|
isPrivate: false,
|
|
avatarPath: "",
|
|
groupAdmins: [],
|
|
lastMessage: void 0,
|
|
members: [],
|
|
profileName: "df",
|
|
expireTimer: 0,
|
|
isPinned: false
|
|
},
|
|
id3: {
|
|
id: "id3",
|
|
activeAt: 20,
|
|
name: "C",
|
|
type: import_conversation.ConversationTypeEnum.PRIVATE,
|
|
isMe: false,
|
|
unreadCount: 1,
|
|
mentionedUs: false,
|
|
isSelected: false,
|
|
isTyping: false,
|
|
isBlocked: false,
|
|
isKickedFromGroup: false,
|
|
left: false,
|
|
hasNickname: false,
|
|
isPublic: false,
|
|
subscriberCount: 0,
|
|
currentNotificationSetting: "all",
|
|
weAreAdmin: false,
|
|
isGroup: false,
|
|
isPrivate: false,
|
|
avatarPath: "",
|
|
groupAdmins: [],
|
|
lastMessage: void 0,
|
|
members: [],
|
|
profileName: "df",
|
|
expireTimer: 0,
|
|
isPinned: false
|
|
},
|
|
id4: {
|
|
id: "id4",
|
|
activeAt: 20,
|
|
name: "\xC1",
|
|
type: import_conversation.ConversationTypeEnum.PRIVATE,
|
|
isMe: false,
|
|
unreadCount: 1,
|
|
mentionedUs: false,
|
|
isSelected: false,
|
|
isTyping: false,
|
|
isBlocked: false,
|
|
isKickedFromGroup: false,
|
|
left: false,
|
|
hasNickname: false,
|
|
isPublic: false,
|
|
subscriberCount: 0,
|
|
currentNotificationSetting: "all",
|
|
weAreAdmin: false,
|
|
isGroup: false,
|
|
isPrivate: false,
|
|
avatarPath: "",
|
|
groupAdmins: [],
|
|
expireTimer: 0,
|
|
lastMessage: void 0,
|
|
members: [],
|
|
profileName: "df",
|
|
isPinned: false
|
|
},
|
|
id5: {
|
|
id: "id5",
|
|
activeAt: 30,
|
|
name: "First!",
|
|
type: import_conversation.ConversationTypeEnum.PRIVATE,
|
|
isMe: false,
|
|
unreadCount: 1,
|
|
mentionedUs: false,
|
|
isSelected: false,
|
|
isTyping: false,
|
|
isBlocked: false,
|
|
isKickedFromGroup: false,
|
|
left: false,
|
|
hasNickname: false,
|
|
isPublic: false,
|
|
subscriberCount: 0,
|
|
expireTimer: 0,
|
|
currentNotificationSetting: "all",
|
|
weAreAdmin: false,
|
|
isGroup: false,
|
|
isPrivate: false,
|
|
avatarPath: "",
|
|
groupAdmins: [],
|
|
lastMessage: void 0,
|
|
members: [],
|
|
profileName: "df",
|
|
isPinned: false
|
|
}
|
|
};
|
|
const comparator = (0, import_conversations2._getConversationComparator)(i18n);
|
|
const conversations = (0, import_conversations2._getSortedConversations)(data, comparator);
|
|
import_chai.assert.strictEqual(conversations[0].name, "First!");
|
|
import_chai.assert.strictEqual(conversations[1].name, "\xC1");
|
|
import_chai.assert.strictEqual(conversations[2].name, "B");
|
|
import_chai.assert.strictEqual(conversations[3].name, "C");
|
|
});
|
|
});
|
|
describe("#getSortedConversationsWithPinned", () => {
|
|
it("sorts conversations based on pin, timestamp then by intl-friendly title", () => {
|
|
const i18n = /* @__PURE__ */ __name((key) => key, "i18n");
|
|
const data = {
|
|
id1: {
|
|
id: "id1",
|
|
activeAt: 0,
|
|
name: "No timestamp",
|
|
type: import_conversation.ConversationTypeEnum.PRIVATE,
|
|
isMe: false,
|
|
unreadCount: 1,
|
|
mentionedUs: false,
|
|
isSelected: false,
|
|
isTyping: false,
|
|
isBlocked: false,
|
|
isKickedFromGroup: false,
|
|
left: false,
|
|
subscriberCount: 0,
|
|
expireTimer: 0,
|
|
currentNotificationSetting: "all",
|
|
weAreAdmin: false,
|
|
isGroup: false,
|
|
isPrivate: false,
|
|
avatarPath: "",
|
|
groupAdmins: [],
|
|
lastMessage: void 0,
|
|
members: [],
|
|
profileName: "df",
|
|
isPinned: false,
|
|
hasNickname: false,
|
|
isPublic: false
|
|
},
|
|
id2: {
|
|
id: "id2",
|
|
activeAt: 20,
|
|
name: "B",
|
|
type: import_conversation.ConversationTypeEnum.PRIVATE,
|
|
isMe: false,
|
|
unreadCount: 1,
|
|
mentionedUs: false,
|
|
isSelected: false,
|
|
isTyping: false,
|
|
isBlocked: false,
|
|
isKickedFromGroup: false,
|
|
left: false,
|
|
subscriberCount: 0,
|
|
expireTimer: 0,
|
|
currentNotificationSetting: "all",
|
|
weAreAdmin: false,
|
|
isGroup: false,
|
|
isPrivate: false,
|
|
avatarPath: "",
|
|
groupAdmins: [],
|
|
lastMessage: void 0,
|
|
members: [],
|
|
profileName: "df",
|
|
isPinned: false,
|
|
hasNickname: false,
|
|
isPublic: false
|
|
},
|
|
id3: {
|
|
id: "id3",
|
|
activeAt: 20,
|
|
name: "C",
|
|
type: import_conversation.ConversationTypeEnum.PRIVATE,
|
|
isMe: false,
|
|
unreadCount: 1,
|
|
mentionedUs: false,
|
|
isSelected: false,
|
|
isTyping: false,
|
|
isBlocked: false,
|
|
isKickedFromGroup: false,
|
|
left: false,
|
|
subscriberCount: 0,
|
|
expireTimer: 0,
|
|
currentNotificationSetting: "all",
|
|
weAreAdmin: false,
|
|
isGroup: false,
|
|
isPrivate: false,
|
|
avatarPath: "",
|
|
groupAdmins: [],
|
|
lastMessage: void 0,
|
|
members: [],
|
|
profileName: "df",
|
|
isPinned: true,
|
|
hasNickname: false,
|
|
isPublic: false
|
|
},
|
|
id4: {
|
|
id: "id4",
|
|
activeAt: 20,
|
|
name: "\xC1",
|
|
type: import_conversation.ConversationTypeEnum.PRIVATE,
|
|
isMe: false,
|
|
unreadCount: 1,
|
|
mentionedUs: false,
|
|
isSelected: false,
|
|
isTyping: false,
|
|
isBlocked: false,
|
|
isKickedFromGroup: false,
|
|
left: false,
|
|
subscriberCount: 0,
|
|
expireTimer: 0,
|
|
currentNotificationSetting: "all",
|
|
weAreAdmin: false,
|
|
isGroup: false,
|
|
isPrivate: false,
|
|
avatarPath: "",
|
|
groupAdmins: [],
|
|
lastMessage: void 0,
|
|
members: [],
|
|
profileName: "df",
|
|
isPinned: true,
|
|
hasNickname: false,
|
|
isPublic: false
|
|
},
|
|
id5: {
|
|
id: "id5",
|
|
activeAt: 30,
|
|
name: "First!",
|
|
type: import_conversation.ConversationTypeEnum.PRIVATE,
|
|
isMe: false,
|
|
unreadCount: 1,
|
|
mentionedUs: false,
|
|
isSelected: false,
|
|
isTyping: false,
|
|
isBlocked: false,
|
|
isKickedFromGroup: false,
|
|
left: false,
|
|
subscriberCount: 0,
|
|
expireTimer: 0,
|
|
currentNotificationSetting: "all",
|
|
weAreAdmin: false,
|
|
isGroup: false,
|
|
isPrivate: false,
|
|
avatarPath: "",
|
|
groupAdmins: [],
|
|
lastMessage: void 0,
|
|
members: [],
|
|
profileName: "df",
|
|
isPinned: false,
|
|
hasNickname: false,
|
|
isPublic: false
|
|
}
|
|
};
|
|
const comparator = (0, import_conversations2._getConversationComparator)(i18n);
|
|
const conversations = (0, import_conversations2._getSortedConversations)(data, comparator);
|
|
import_chai.assert.strictEqual(conversations[0].name, "\xC1");
|
|
import_chai.assert.strictEqual(conversations[1].name, "C");
|
|
import_chai.assert.strictEqual(conversations[2].name, "First!");
|
|
import_chai.assert.strictEqual(conversations[3].name, "B");
|
|
});
|
|
});
|
|
});
|
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vdHMvdGVzdC9zZXNzaW9uL3VuaXQvc2VsZWN0b3JzL2NvbnZlcnNhdGlvbnNfdGVzdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnY2hhaSc7XG5pbXBvcnQgeyBDb252ZXJzYXRpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9jb252ZXJzYXRpb24nO1xuXG5pbXBvcnQgeyBDb252ZXJzYXRpb25Mb29rdXBUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RhdGUvZHVja3MvY29udmVyc2F0aW9ucyc7XG5pbXBvcnQge1xuICBfZ2V0Q29udmVyc2F0aW9uQ29tcGFyYXRvcixcbiAgX2dldFNvcnRlZENvbnZlcnNhdGlvbnMsXG59IGZyb20gJy4uLy4uLy4uLy4uL3N0YXRlL3NlbGVjdG9ycy9jb252ZXJzYXRpb25zJztcblxuZGVzY3JpYmUoJ3N0YXRlL3NlbGVjdG9ycy9jb252ZXJzYXRpb25zJywgKCkgPT4ge1xuICBkZXNjcmliZSgnI2dldFNvcnRlZENvbnZlcnNhdGlvbnNMaXN0JywgKCkgPT4ge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWZ1bmMtYm9keS1sZW5ndGhcbiAgICBpdCgnc29ydHMgY29udmVyc2F0aW9ucyBiYXNlZCBvbiB0aW1lc3RhbXAgdGhlbiBieSBpbnRsLWZyaWVuZGx5IHRpdGxlJywgKCkgPT4ge1xuICAgICAgY29uc3QgaTE4biA9IChrZXk6IHN0cmluZykgPT4ga2V5O1xuICAgICAgY29uc3QgZGF0YTogQ29udmVyc2F0aW9uTG9va3VwVHlwZSA9IHtcbiAgICAgICAgaWQxOiB7XG4gICAgICAgICAgaWQ6ICdpZDEnLFxuICAgICAgICAgIGFjdGl2ZUF0OiAwLFxuICAgICAgICAgIG5hbWU6ICdObyB0aW1lc3RhbXAnLFxuICAgICAgICAgIHR5cGU6IENvbnZlcnNhdGlvblR5cGVFbnVtLlBSSVZBVEUsXG4gICAgICAgICAgaXNNZTogZmFsc2UsXG4gICAgICAgICAgdW5yZWFkQ291bnQ6IDEsXG4gICAgICAgICAgbWVudGlvbmVkVXM6IGZhbHNlLFxuICAgICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgIGlzVHlwaW5nOiBmYWxzZSxcbiAgICAgICAgICBpc0Jsb2NrZWQ6IGZhbHNlLFxuICAgICAgICAgIGlzS2lja2VkRnJvbUdyb3VwOiBmYWxzZSxcbiAgICAgICAgICBsZWZ0OiBmYWxzZSxcbiAgICAgICAgICBoYXNOaWNrbmFtZTogZmFsc2UsXG4gICAgICAgICAgaXNQdWJsaWM6IGZhbHNlLFxuICAgICAgICAgIHN1YnNjcmliZXJDb3VudDogMCxcbiAgICAgICAgICBjdXJyZW50Tm90aWZpY2F0aW9uU2V0dGluZzogJ2FsbCcsXG4gICAgICAgICAgd2VBcmVBZG1pbjogZmFsc2UsXG4gICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgaXNQcml2YXRlOiBmYWxzZSxcblxuICAgICAgICAgIGF2YXRhclBhdGg6ICcnLFxuICAgICAgICAgIGdyb3VwQWRtaW5zOiBbXSxcbiAgICAgICAgICBsYXN0TWVzc2FnZTogdW5kZWZpbmVkLFxuICAgICAgICAgIG1lbWJlcnM6IFtdLFxuICAgICAgICAgIHByb2ZpbGVOYW1lOiAnZGYnLFxuICAgICAgICAgIGV4cGlyZVRpbWVyOiAwLFxuICAgICAgICAgIGlzUGlubmVkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgaWQyOiB7XG4gICAgICAgICAgaWQ6ICdpZDInLFxuICAgICAgICAgIGFjdGl2ZUF0OiAyMCxcbiAgICAgICAgICBuYW1lOiAnQicsXG4gICAgICAgICAgdHlwZTogQ29udmVyc2F0aW9uVHlwZUVudW0uUFJJVkFURSxcbiAgICAgICAgICBpc01lOiBmYWxzZSxcbiAgICAgICAgICB1bnJlYWRDb3VudDogMSxcbiAgICAgICAgICBtZW50aW9uZWRVczogZmFsc2UsXG4gICAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgaXNUeXBpbmc6IGZhbHNlLFxuICAgICAgICAgIGlzQmxvY2tlZDogZmFsc2UsXG4gICAgICAgICAgaXNLaWNrZWRGcm9tR3JvdXA6IGZhbHNlLFxuICAgICAgICAgIGxlZnQ6IGZhbHNlLFxuICAgICAgICAgIGhhc05pY2tuYW1lOiBmYWxzZSxcbiAgICAgICAgICBpc1B1YmxpYzogZmFsc2UsXG4gICAgICAgICAgc3Vic2NyaWJlckNvdW50OiAwLFxuICAgICAgICAgIGN1cnJlbnROb3RpZmljYXRpb25TZXR0aW5nOiAnYWxsJyxcbiAgICAgICAgICB3ZUFyZUFkbWluOiBmYWxzZSxcbiAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICBpc1ByaXZhdGU6IGZhbHNlLFxuXG4gICAgICAgICAgYXZhdGFyUGF0aDogJycsXG4gICAgICAgICAgZ3JvdXBBZG1pbnM6IFtdLFxuICAgICAgICAgIGxhc3RNZXNzYWdlOiB1bmRlZmluZWQsXG4gICAgICAgICAgbWVtYmVyczogW10sXG4gICAgICAgICAgcHJvZmlsZU5hbWU6ICdkZicsXG4gICAgICAgICAgZXhwaXJlVGltZXI6IDAsXG4gICAgICAgICAgaXNQaW5uZWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBpZDM6IHtcbiAgICAgICAgICBpZDogJ2lkMycsXG4gICAgICAgICAgYWN0aXZlQXQ6IDIwLFxuICAgICAgICAgIG5hbWU6ICdDJyxcbiAgICAgICAgICB0eXBlOiBDb252ZXJzYXRpb25UeXBlRW51bS5QUklWQVRFLFxuICAgICAgICAgIGlzTWU6IGZhbHNlLFxuICAgICAgICAgIHVucmVhZENvdW50OiAxLFxuICAgICAgICAgIG1lbnRpb25lZFVzOiBmYWxzZSxcbiAgICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICBpc1R5cGluZzogZmFsc2UsXG4gICAgICAgICAgaXNCbG9ja2VkOiBmYWxzZSxcbiAgICAgICAgICBpc0tpY2tlZEZyb21Hcm91cDogZmFsc2UsXG4gICAgICAgICAgbGVmdDogZmFsc2UsXG4gICAgICAgICAgaGFzTmlja25hbWU6IGZhbHNlLFxuICAgICAgICAgIGlzUHVibGljOiBmYWxzZSxcbiAgICAgICAgICBzdWJzY3JpYmVyQ291bnQ6IDAsXG4gICAgICAgICAgY3VycmVudE5vdGlmaWNhdGlvblNldHRpbmc6ICdhbGwnLFxuICAgICAgICAgIHdlQXJlQWRtaW46IGZhbHNlLFxuICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgIGlzUHJpdmF0ZTogZmFsc2UsXG5cbiAgICAgICAgICBhdmF0YXJQYXRoOiAnJyxcbiAgICAgICAgICBncm91cEFkbWluczogW10sXG4gICAgICAgICAgbGFzdE1lc3NhZ2U6IHVuZGVmaW5lZCxcbiAgICAgICAgICBtZW1iZXJzOiBbXSxcbiAgICAgICAgICBwcm9maWxlTmFtZTogJ2RmJyxcbiAgICAgICAgICBleHBpcmVUaW1lcjogMCxcbiAgICAgICAgICBpc1Bpbm5lZDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIGlkNDoge1xuICAgICAgICAgIGlkOiAnaWQ0JyxcbiAgICAgICAgICBhY3RpdmVBdDogMjAsXG4gICAgICAgICAgbmFtZTogJ1x1MDBDMScsXG4gICAgICAgICAgdHlwZTogQ29udmVyc2F0aW9uVHlwZUVudW0uUFJJVkFURSxcbiAgICAgICAgICBpc01lOiBmYWxzZSxcbiAgICAgICAgICB1bnJlYWRDb3VudDogMSxcbiAgICAgICAgICBtZW50aW9uZWRVczogZmFsc2UsXG4gICAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgaXNUeXBpbmc6IGZhbHNlLFxuICAgICAgICAgIGlzQmxvY2tlZDogZmFsc2UsXG4gICAgICAgICAgaXNLaWNrZWRGcm9tR3JvdXA6IGZhbHNlLFxuICAgICAgICAgIGxlZnQ6IGZhbHNlLFxuICAgICAgICAgIGhhc05pY2tuYW1lOiBmYWxzZSxcbiAgICAgICAgICBpc1B1YmxpYzogZmFsc2UsXG4gICAgICAgICAgc3Vic2NyaWJlckNvdW50OiAwLFxuICAgICAgICAgIGN1cnJlbnROb3RpZmljYXRpb25TZXR0aW5nOiAnYWxsJyxcbiAgICAgICAgICB3ZUFyZUFkbWluOiBmYWxzZSxcbiAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICBpc1ByaXZhdGU6IGZhbHNlLFxuXG4gICAgICAgICAgYXZhdGFyUGF0aDogJycsXG4gICAgICAgICAgZ3JvdXBBZG1pbnM6IFtdLFxuICAgICAgICAgIGV4cGlyZVRpbWVyOiAwLFxuICAgICAgICAgIGxhc3RNZXNzYWdlOiB1bmRlZmluZWQsXG4gICAgICAgICAgbWVtYmVyczogW10sXG4gICAgICAgICAgcHJvZmlsZU5hbWU6ICdkZicsXG4gICAgICAgICAgaXNQaW5uZWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBpZDU6IHtcbiAgICAgICAgICBpZDogJ2lkNScsXG4gICAgICAgICAgYWN0aXZlQXQ6IDMwLFxuICAgICAgICAgIG5hbWU6ICdGaXJzdCEnLFxuICAgICAgICAgIHR5cGU6IENvbnZlcnNhdGlvblR5cGVFbnVtLlBSSVZBVEUsXG4gICAgICAgICAgaXNNZTogZmFsc2UsXG4gICAgICAgICAgdW5yZWFkQ291bnQ6IDEsXG4gICAgICAgICAgbWVudGlvbmVkVXM6IGZhbHNlLFxuICAgICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgIGlzVHlwaW5nOiBmYWxzZSxcbiAgICAgICAgICBpc0Jsb2NrZWQ6IGZhbHNlLFxuICAgICAgICAgIGlzS2lja2VkRnJvbUdyb3VwOiBmYWxzZSxcbiAgICAgICAgICBsZWZ0OiBmYWxzZSxcbiAgICAgICAgICBoYXNOaWNrbmFtZTogZmFsc2UsXG4gICAgICAgICAgaXNQdWJsaWM6IGZhbHNlLFxuICAgICAgICAgIHN1YnNjcmliZXJDb3VudDogMCxcbiAgICAgICAgICBleHBpcmVUaW1lcjogMCxcbiAgICAgICAgICBjdXJyZW50Tm90aWZpY2F0aW9uU2V0dGluZzogJ2FsbCcsXG4gICAgICAgICAgd2VBcmVBZG1pbjogZmFsc2UsXG4gICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgaXNQcml2YXRlOiBmYWxzZSxcblxuICAgICAgICAgIGF2YXRhclBhdGg6ICcnLFxuICAgICAgICAgIGdyb3VwQWRtaW5zOiBbXSxcbiAgICAgICAgICBsYXN0TWVzc2FnZTogdW5kZWZpbmVkLFxuICAgICAgICAgIG1lbWJlcnM6IFtdLFxuICAgICAgICAgIHByb2ZpbGVOYW1lOiAnZGYnLFxuICAgICAgICAgIGlzUGlubmVkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBjb21wYXJhdG9yID0gX2dldENvbnZlcnNhdGlvbkNvbXBhcmF0b3IoaTE4bik7XG4gICAgICBjb25zdCBjb252ZXJzYXRpb25zID0gX2dldFNvcnRlZENvbnZlcnNhdGlvbnMoZGF0YSwgY29tcGFyYXRvcik7XG5cbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb252ZXJzYXRpb25zWzBdLm5hbWUsICdGaXJzdCEnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb252ZXJzYXRpb25zWzFdLm5hbWUsICdcdTAwQzEnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb252ZXJzYXRpb25zWzJdLm5hbWUsICdCJyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29udmVyc2F0aW9uc1szXS5uYW1lLCAnQycpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnI2dldFNvcnRlZENvbnZlcnNhdGlvbnNXaXRoUGlubmVkJywgKCkgPT4ge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWZ1bmMtYm9keS1sZW5ndGhcbiAgICBpdCgnc29ydHMgY29udmVyc2F0aW9ucyBiYXNlZCBvbiBwaW4sIHRpbWVzdGFtcCB0aGVuIGJ5IGludGwtZnJpZW5kbHkgdGl0bGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBpMThuID0gKGtleTogc3RyaW5nKSA9PiBrZXk7XG4gICAgICBjb25zdCBkYXRhOiBDb252ZXJzYXRpb25Mb29rdXBUeXBlID0ge1xuICAgICAgICBpZDE6IHtcbiAgICAgICAgICBpZDogJ2lkMScsXG4gICAgICAgICAgYWN0aXZlQXQ6IDAsXG4gICAgICAgICAgbmFtZTogJ05vIHRpbWVzdGFtcCcsXG5cbiAgICAgICAgICB0eXBlOiBDb252ZXJzYXRpb25UeXBlRW51bS5QUklWQVRFLFxuICAgICAgICAgIGlzTWU6IGZhbHNlLFxuICAgICAgICAgIHVucmVhZENvdW50OiAxLFxuICAgICAgICAgIG1lbnRpb25lZFVzOiBmYWxzZSxcbiAgICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICBpc1R5cGluZzogZmFsc2UsXG4gICAgICAgICAgaXNCbG9ja2VkOiBmYWxzZSxcbiAgICAgICAgICBpc0tpY2tlZEZyb21Hcm91cDogZmFsc2UsXG4gICAgICAgICAgbGVmdDogZmFsc2UsXG4gICAgICAgICAgc3Vic2NyaWJlckNvdW50OiAwLFxuICAgICAgICAgIGV4cGlyZVRpbWVyOiAwLFxuICAgICAgICAgIGN1cnJlbnROb3RpZmljYXRpb25TZXR0aW5nOiAnYWxsJyxcbiAgICAgICAgICB3ZUFyZUFkbWluOiBmYWxzZSxcbiAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICBpc1ByaXZhdGU6IGZhbHNlLFxuXG4gICAgICAgICAgYXZhdGFyUGF0aDogJycsXG4gICAgICAgICAgZ3JvdXBBZG1pbnM6IFtdLFxuICAgICAgICAgIGxhc3RNZXNzYWdlOiB1bmRlZmluZWQsXG4gICAgICAgICAgbWVtYmVyczogW10sXG4gICAgICAgICAgcHJvZmlsZU5hbWU6ICdkZicsXG4gICAgICAgICAgaXNQaW5uZWQ6IGZhbHNlLFxuICAgICAgICAgIGhhc05pY2tuYW1lOiBmYWxzZSxcbiAgICAgICAgICBpc1B1YmxpYzogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIGlkMjoge1xuICAgICAgICAgIGlkOiAnaWQyJyxcbiAgICAgICAgICBhY3RpdmVBdDogMjAsXG4gICAgICAgICAgbmFtZTogJ0InLFxuXG4gICAgICAgICAgdHlwZTogQ29udmVyc2F0aW9uVHlwZUVudW0uUFJJVkFURSxcbiAgICAgICAgICBpc01lOiBmYWxzZSxcbiAgICAgICAgICB1bnJlYWRDb3VudDogMSxcbiAgICAgICAgICBtZW50aW9uZWRVczogZmFsc2UsXG4gICAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgaXNUeXBpbmc6IGZhbHNlLFxuICAgICAgICAgIGlzQmxvY2tlZDogZmFsc2UsXG4gICAgICAgICAgaXNLaWNrZWRGcm9tR3JvdXA6IGZhbHNlLFxuICAgICAgICAgIGxlZnQ6IGZhbHNlLFxuICAgICAgICAgIHN1YnNjcmliZXJDb3VudDogMCxcbiAgICAgICAgICBleHBpcmVUaW1lcjogMCxcbiAgICAgICAgICBjdXJyZW50Tm90aWZpY2F0aW9uU2V0dGluZzogJ2FsbCcsXG4gICAgICAgICAgd2VBcmVBZG1pbjogZmFsc2UsXG4gICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgaXNQcml2YXRlOiBmYWxzZSxcblxuICAgICAgICAgIGF2YXRhclBhdGg6ICcnLFxuICAgICAgICAgIGdyb3VwQWRtaW5zOiBbXSxcbiAgICAgICAgICBsYXN0TWVzc2FnZTogdW5kZWZpbmVkLFxuICAgICAgICAgIG1lbWJlcnM6IFtdLFxuICAgICAgICAgIHByb2ZpbGVOYW1lOiAnZGYnLFxuICAgICAgICAgIGlzUGlubmVkOiBmYWxzZSxcbiAgICAgICAgICBoYXNOaWNrbmFtZTogZmFsc2UsXG4gICAgICAgICAgaXNQdWJsaWM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBpZDM6IHtcbiAgICAgICAgICBpZDogJ2lkMycsXG4gICAgICAgICAgYWN0aXZlQXQ6IDIwLFxuICAgICAgICAgIG5hbWU6ICdDJyxcblxuICAgICAgICAgIHR5cGU6IENvbnZlcnNhdGlvblR5cGVFbnVtLlBSSVZBVEUsXG4gICAgICAgICAgaXNNZTogZmFsc2UsXG4gICAgICAgICAgdW5yZWFkQ291bnQ6IDEsXG4gICAgICAgICAgbWVudGlvbmVkVXM6IGZhbHNlLFxuICAgICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgIGlzVHlwaW5nOiBmYWxzZSxcbiAgICAgICAgICBpc0Jsb2NrZWQ6IGZhbHNlLFxuICAgICAgICAgIGlzS2lja2VkRnJvbUdyb3VwOiBmYWxzZSxcbiAgICAgICAgICBsZWZ0OiBmYWxzZSxcbiAgICAgICAgICBzdWJzY3JpYmVyQ291bnQ6IDAsXG4gICAgICAgICAgZXhwaXJlVGltZXI6IDAsXG4gICAgICAgICAgY3VycmVudE5vdGlmaWNhdGlvblNldHRpbmc6ICdhbGwnLFxuICAgICAgICAgIHdlQXJlQWRtaW46IGZhbHNlLFxuICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgIGlzUHJpdmF0ZTogZmFsc2UsXG5cbiAgICAgICAgICBhdmF0YXJQYXRoOiAnJyxcbiAgICAgICAgICBncm91cEFkbWluczogW10sXG4gICAgICAgICAgbGFzdE1lc3NhZ2U6IHVuZGVmaW5lZCxcbiAgICAgICAgICBtZW1iZXJzOiBbXSxcbiAgICAgICAgICBwcm9maWxlTmFtZTogJ2RmJyxcbiAgICAgICAgICBpc1Bpbm5lZDogdHJ1ZSxcbiAgICAgICAgICBoYXNOaWNrbmFtZTogZmFsc2UsXG4gICAgICAgICAgaXNQdWJsaWM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBpZDQ6IHtcbiAgICAgICAgICBpZDogJ2lkNCcsXG4gICAgICAgICAgYWN0aXZlQXQ6IDIwLFxuICAgICAgICAgIG5hbWU6ICdcdTAwQzEnLFxuICAgICAgICAgIHR5cGU6IENvbnZlcnNhdGlvblR5cGVFbnVtLlBSSVZBVEUsXG4gICAgICAgICAgaXNNZTogZmFsc2UsXG4gICAgICAgICAgdW5yZWFkQ291bnQ6IDEsXG4gICAgICAgICAgbWVudGlvbmVkVXM6IGZhbHNlLFxuICAgICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgIGlzVHlwaW5nOiBmYWxzZSxcbiAgICAgICAgICBpc0Jsb2NrZWQ6IGZhbHNlLFxuICAgICAgICAgIGlzS2lja2VkRnJvbUdyb3VwOiBmYWxzZSxcbiAgICAgICAgICBsZWZ0OiBmYWxzZSxcbiAgICAgICAgICBzdWJzY3JpYmVyQ291bnQ6IDAsXG4gICAgICAgICAgZXhwaXJlVGltZXI6IDAsXG4gICAgICAgICAgY3VycmVudE5vdGlmaWNhdGlvblNldHRpbmc6ICdhbGwnLFxuICAgICAgICAgIHdlQXJlQWRtaW46IGZhbHNlLFxuICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgIGlzUHJpdmF0ZTogZmFsc2UsXG5cbiAgICAgICAgICBhdmF0YXJQYXRoOiAnJyxcbiAgICAgICAgICBncm91cEFkbWluczogW10sXG4gICAgICAgICAgbGFzdE1lc3NhZ2U6IHVuZGVmaW5lZCxcbiAgICAgICAgICBtZW1iZXJzOiBbXSxcbiAgICAgICAgICBwcm9maWxlTmFtZTogJ2RmJyxcbiAgICAgICAgICBpc1Bpbm5lZDogdHJ1ZSxcbiAgICAgICAgICBoYXNOaWNrbmFtZTogZmFsc2UsXG4gICAgICAgICAgaXNQdWJsaWM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBpZDU6IHtcbiAgICAgICAgICBpZDogJ2lkNScsXG4gICAgICAgICAgYWN0aXZlQXQ6IDMwLFxuICAgICAgICAgIG5hbWU6ICdGaXJzdCEnLFxuICAgICAgICAgIHR5cGU6IENvbnZlcnNhdGlvblR5cGVFbnVtLlBSSVZBVEUsXG4gICAgICAgICAgaXNNZTogZmFsc2UsXG4gICAgICAgICAgdW5yZWFkQ291bnQ6IDEsXG4gICAgICAgICAgbWVudGlvbmVkVXM6IGZhbHNlLFxuICAgICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgIGlzVHlwaW5nOiBmYWxzZSxcbiAgICAgICAgICBpc0Jsb2NrZWQ6IGZhbHNlLFxuICAgICAgICAgIGlzS2lja2VkRnJvbUdyb3VwOiBmYWxzZSxcbiAgICAgICAgICBsZWZ0OiBmYWxzZSxcblxuICAgICAgICAgIHN1YnNjcmliZXJDb3VudDogMCxcbiAgICAgICAgICBleHBpcmVUaW1lcjogMCxcbiAgICAgICAgICBjdXJyZW50Tm90aWZpY2F0aW9uU2V0dGluZzogJ2FsbCcsXG4gICAgICAgICAgd2VBcmVBZG1pbjogZmFsc2UsXG4gICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgaXNQcml2YXRlOiBmYWxzZSxcblxuICAgICAgICAgIGF2YXRhclBhdGg6ICcnLFxuICAgICAgICAgIGdyb3VwQWRtaW5zOiBbXSxcbiAgICAgICAgICBsYXN0TWVzc2FnZTogdW5kZWZpbmVkLFxuICAgICAgICAgIG1lbWJlcnM6IFtdLFxuICAgICAgICAgIHByb2ZpbGVOYW1lOiAnZGYnLFxuICAgICAgICAgIGlzUGlubmVkOiBmYWxzZSxcbiAgICAgICAgICBoYXNOaWNrbmFtZTogZmFsc2UsXG4gICAgICAgICAgaXNQdWJsaWM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGNvbXBhcmF0b3IgPSBfZ2V0Q29udmVyc2F0aW9uQ29tcGFyYXRvcihpMThuKTtcbiAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbnMgPSBfZ2V0U29ydGVkQ29udmVyc2F0aW9ucyhkYXRhLCBjb21wYXJhdG9yKTtcblxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnZlcnNhdGlvbnNbMF0ubmFtZSwgJ1x1MDBDMScpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbnZlcnNhdGlvbnNbMV0ubmFtZSwgJ0MnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb252ZXJzYXRpb25zWzJdLm5hbWUsICdGaXJzdCEnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb252ZXJzYXRpb25zWzNdLm5hbWUsICdCJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwKICAibWFwcGluZ3MiOiAiOztBQUFBLGtCQUF1QjtBQUN2Qiww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
|