emailjs-imap-client
Version:
JavaScript IMAP client
55 lines (45 loc) • 19.5 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.checkSpecialUse = checkSpecialUse;
var _ramda = require("ramda");
const SPECIAL_USE_FLAGS = ['\\All', '\\Archive', '\\Drafts', '\\Flagged', '\\Junk', '\\Sent', '\\Trash'];
const SPECIAL_USE_BOXES = {
'\\Sent': ['aika', 'bidaliak', 'bidalita', 'dihantar', 'e rometsweng', 'e tindami', 'elküldött', 'elküldöttek', 'enviadas', 'enviadas', 'enviados', 'enviats', 'envoyés', 'ethunyelweyo', 'expediate', 'ezipuru', 'gesendete', 'gestuur', 'gönderilmiş öğeler', 'göndərilənlər', 'iberilen', 'inviati', 'išsiųstieji', 'kuthunyelwe', 'lasa', 'lähetetyt', 'messages envoyés', 'naipadala', 'nalefa', 'napadala', 'nosūtītās ziņas', 'odeslané', 'padala', 'poslane', 'poslano', 'poslano', 'poslané', 'poslato', 'saadetud', 'saadetud kirjad', 'sendt', 'sendt', 'sent', 'sent items', 'sent messages', 'sända poster', 'sänt', 'terkirim', 'ti fi ranṣẹ', 'të dërguara', 'verzonden', 'vilivyotumwa', 'wysłane', 'đã gửi', 'σταλθέντα', 'жиберилген', 'жіберілгендер', 'изпратени', 'илгээсэн', 'ирсол шуд', 'испратено', 'надіслані', 'отправленные', 'пасланыя', 'юборилган', 'ուղարկված', 'נשלחו', 'פריטים שנשלחו', 'المرسلة', 'بھیجے گئے', 'سوزمژہ', 'لېګل شوی', 'موارد ارسال شده', 'पाठविले', 'पाठविलेले', 'प्रेषित', 'भेजा गया', 'প্রেরিত', 'প্রেরিত', 'প্ৰেৰিত', 'ਭੇਜੇ', 'મોકલેલા', 'ପଠାଗଲା', 'அனுப்பியவை', 'పంపించబడింది', 'ಕಳುಹಿಸಲಾದ', 'അയച്ചു', 'යැවු පණිවුඩ', 'ส่งแล้ว', 'გაგზავნილი', 'የተላኩ', 'បានផ្ញើ', '寄件備份', '寄件備份', '已发信息', '送信済みメール', '발신 메시지', '보낸 편지함'],
'\\Trash': ['articole șterse', 'bin', 'borttagna objekt', 'deleted', 'deleted items', 'deleted messages', 'elementi eliminati', 'elementos borrados', 'elementos eliminados', 'gelöschte objekte', 'item dipadam', 'itens apagados', 'itens excluídos', 'mục đã xóa', 'odstraněné položky', 'pesan terhapus', 'poistetut', 'praht', 'prügikast', 'silinmiş öğeler', 'slettede beskeder', 'slettede elementer', 'trash', 'törölt elemek', 'usunięte wiadomości', 'verwijderde items', 'vymazané správy', 'éléments supprimés', 'видалені', 'жойылғандар', 'удаленные', 'פריטים שנמחקו', 'العناصر المحذوفة', 'موارد حذف شده', 'รายการที่ลบ', '已删除邮件', '已刪除項目', '已刪除項目'],
'\\Junk': ['bulk mail', 'correo no deseado', 'courrier indésirable', 'istenmeyen', 'istenmeyen e-posta', 'junk', 'levélszemét', 'nevyžiadaná pošta', 'nevyžádaná pošta', 'no deseado', 'posta indesiderata', 'pourriel', 'roskaposti', 'skräppost', 'spam', 'spam', 'spamowanie', 'søppelpost', 'thư rác', 'спам', 'דואר זבל', 'الرسائل العشوائية', 'هرزنامه', 'สแปม', '垃圾郵件', '垃圾邮件', '垃圾電郵'],
'\\Drafts': ['ba brouillon', 'borrador', 'borrador', 'borradores', 'bozze', 'brouillons', 'bản thảo', 'ciorne', 'concepten', 'draf', 'drafts', 'drög', 'entwürfe', 'esborranys', 'garalamalar', 'ihe edeturu', 'iidrafti', 'izinhlaka', 'juodraščiai', 'kladd', 'kladder', 'koncepty', 'koncepty', 'konsep', 'konsepte', 'kopie robocze', 'layihələr', 'luonnokset', 'melnraksti', 'meralo', 'mesazhe të padërguara', 'mga draft', 'mustandid', 'nacrti', 'nacrti', 'osnutki', 'piszkozatok', 'rascunhos', 'rasimu', 'skice', 'taslaklar', 'tsararrun saƙonni', 'utkast', 'vakiraoka', 'vázlatok', 'zirriborroak', 'àwọn àkọpamọ́', 'πρόχειρα', 'жобалар', 'нацрти', 'нооргууд', 'сиёҳнавис', 'хомаки хатлар', 'чарнавікі', 'чернетки', 'чернови', 'черновики', 'черновиктер', 'սևագրեր', 'טיוטות', 'مسودات', 'مسودات', 'موسودې', 'پیش نویسها', 'ڈرافٹ/', 'ड्राफ़्ट', 'प्रारूप', 'খসড়া', 'খসড়া', 'ড্ৰাফ্ট', 'ਡ੍ਰਾਫਟ', 'ડ્રાફ્ટસ', 'ଡ୍ରାଫ୍ଟ', 'வரைவுகள்', 'చిత్తు ప్రతులు', 'ಕರಡುಗಳು', 'കരടുകള്', 'කෙටුම් පත්', 'ฉบับร่าง', 'მონახაზები', 'ረቂቆች', 'សារព្រាង', '下書き', '草稿', '草稿', '草稿', '임시 보관함']
};
const SPECIAL_USE_BOX_FLAGS = Object.keys(SPECIAL_USE_BOXES);
/**
* Checks if a mailbox is for special use
*
* @param {Object} mailbox
* @return {String} Special use flag (if detected)
*/
function checkSpecialUse(mailbox) {
if (mailbox.flags) {
for (let i = 0; i < SPECIAL_USE_FLAGS.length; i++) {
const type = SPECIAL_USE_FLAGS[i];
if ((mailbox.flags || []).indexOf(type) >= 0) {
mailbox.specialUse = type;
mailbox.specialUseFlag = type;
return type;
}
}
}
return checkSpecialUseByName(mailbox);
}
function checkSpecialUseByName(mailbox) {
const name = (0, _ramda.propOr)('', 'name', mailbox).toLowerCase().trim();
for (let i = 0; i < SPECIAL_USE_BOX_FLAGS.length; i++) {
const type = SPECIAL_USE_BOX_FLAGS[i];
if (SPECIAL_USE_BOXES[type].indexOf(name) >= 0) {
mailbox.specialUse = type;
return type;
}
}
return false;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zcGVjaWFsLXVzZS5qcyJdLCJuYW1lcyI6WyJTUEVDSUFMX1VTRV9GTEFHUyIsIlNQRUNJQUxfVVNFX0JPWEVTIiwiU1BFQ0lBTF9VU0VfQk9YX0ZMQUdTIiwiT2JqZWN0Iiwia2V5cyIsImNoZWNrU3BlY2lhbFVzZSIsIm1haWxib3giLCJmbGFncyIsImkiLCJsZW5ndGgiLCJ0eXBlIiwiaW5kZXhPZiIsInNwZWNpYWxVc2UiLCJzcGVjaWFsVXNlRmxhZyIsImNoZWNrU3BlY2lhbFVzZUJ5TmFtZSIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsInRyaW0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxpQkFBaUIsR0FBRyxDQUFDLE9BQUQsRUFBVSxXQUFWLEVBQXVCLFVBQXZCLEVBQW1DLFdBQW5DLEVBQWdELFFBQWhELEVBQTBELFFBQTFELEVBQW9FLFNBQXBFLENBQTFCO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUc7QUFDeEIsWUFBVSxDQUNSLE1BRFEsRUFDQSxVQURBLEVBQ1ksVUFEWixFQUN3QixVQUR4QixFQUNvQyxjQURwQyxFQUNvRCxXQURwRCxFQUNpRSxXQURqRSxFQUM4RSxhQUQ5RSxFQUM2RixVQUQ3RixFQUVSLFVBRlEsRUFFSSxVQUZKLEVBRWdCLFNBRmhCLEVBRTJCLFNBRjNCLEVBRXNDLGNBRnRDLEVBRXNELFdBRnRELEVBRW1FLFNBRm5FLEVBRThFLFdBRjlFLEVBRTJGLFNBRjNGLEVBR1Isb0JBSFEsRUFHYyxlQUhkLEVBRytCLFVBSC9CLEVBRzJDLFNBSDNDLEVBR3NELGFBSHRELEVBR3FFLGFBSHJFLEVBR29GLE1BSHBGLEVBRzRGLFdBSDVGLEVBSVIsa0JBSlEsRUFJWSxXQUpaLEVBSXlCLFFBSnpCLEVBSW1DLFVBSm5DLEVBSStDLGlCQUovQyxFQUlrRSxVQUpsRSxFQUk4RSxRQUo5RSxFQUl3RixTQUp4RixFQUtSLFNBTFEsRUFLRyxTQUxILEVBS2MsU0FMZCxFQUt5QixTQUx6QixFQUtvQyxVQUxwQyxFQUtnRCxpQkFMaEQsRUFLbUUsT0FMbkUsRUFLNEUsT0FMNUUsRUFLcUYsTUFMckYsRUFLNkYsWUFMN0YsRUFNUixlQU5RLEVBTVMsY0FOVCxFQU15QixNQU56QixFQU1pQyxVQU5qQyxFQU02QyxhQU43QyxFQU00RCxhQU41RCxFQU0yRSxXQU4zRSxFQU13RixjQU54RixFQU9SLFNBUFEsRUFPRyxRQVBILEVBT2EsV0FQYixFQU8wQixZQVAxQixFQU93QyxlQVB4QyxFQU95RCxXQVB6RCxFQU9zRSxVQVB0RSxFQU9rRixXQVBsRixFQU8rRixXQVAvRixFQVFSLFdBUlEsRUFRSyxjQVJMLEVBUXFCLFVBUnJCLEVBUWlDLFdBUmpDLEVBUThDLFdBUjlDLEVBUTJELE9BUjNELEVBUW9FLGVBUnBFLEVBUXFGLFNBUnJGLEVBUWdHLFdBUmhHLEVBU1IsUUFUUSxFQVNFLFVBVEYsRUFTYyxpQkFUZCxFQVNpQyxTQVRqQyxFQVM0QyxXQVQ1QyxFQVN5RCxTQVR6RCxFQVNvRSxVQVRwRSxFQVNnRixTQVRoRixFQVMyRixTQVQzRixFQVNzRyxTQVR0RyxFQVNpSCxNQVRqSCxFQVN5SCxTQVR6SCxFQVVSLFFBVlEsRUFVRSxZQVZGLEVBVWdCLGNBVmhCLEVBVWdDLFdBVmhDLEVBVTZDLFFBVjdDLEVBVXVELGFBVnZELEVBVXNFLFNBVnRFLEVBVWlGLFlBVmpGLEVBVStGLE1BVi9GLEVBVXVHLFVBVnZHLEVBV1IsTUFYUSxFQVdBLE1BWEEsRUFXUSxNQVhSLEVBV2dCLFNBWGhCLEVBVzJCLFFBWDNCLEVBV3FDLFFBWHJDLENBRGM7QUFjeEIsYUFBVyxDQUNULGlCQURTLEVBQ1UsS0FEVixFQUNpQixrQkFEakIsRUFDcUMsU0FEckMsRUFDZ0QsZUFEaEQsRUFDaUUsa0JBRGpFLEVBQ3FGLG9CQURyRixFQUVULG9CQUZTLEVBRWEsc0JBRmIsRUFFcUMsbUJBRnJDLEVBRTBELGNBRjFELEVBRTBFLGdCQUYxRSxFQUU0RixpQkFGNUYsRUFHVCxZQUhTLEVBR0ssb0JBSEwsRUFHMkIsZ0JBSDNCLEVBRzZDLFdBSDdDLEVBRzBELE9BSDFELEVBR21FLFdBSG5FLEVBR2dGLGlCQUhoRixFQUlULG1CQUpTLEVBSVksb0JBSlosRUFJa0MsT0FKbEMsRUFJMkMsZUFKM0MsRUFJNEQscUJBSjVELEVBSW1GLG1CQUpuRixFQUtULGlCQUxTLEVBS1Usb0JBTFYsRUFLZ0MsVUFMaEMsRUFLNEMsYUFMNUMsRUFLMkQsV0FMM0QsRUFLd0UsZUFMeEUsRUFLeUYsa0JBTHpGLEVBTVQsZUFOUyxFQU1RLGFBTlIsRUFNdUIsT0FOdkIsRUFNZ0MsT0FOaEMsRUFNeUMsT0FOekMsQ0FkYTtBQXNCeEIsWUFBVSxDQUNSLFdBRFEsRUFDSyxtQkFETCxFQUMwQixzQkFEMUIsRUFDa0QsWUFEbEQsRUFDZ0Usb0JBRGhFLEVBQ3NGLE1BRHRGLEVBQzhGLGFBRDlGLEVBRVIsbUJBRlEsRUFFYSxrQkFGYixFQUVpQyxZQUZqQyxFQUUrQyxvQkFGL0MsRUFFcUUsVUFGckUsRUFFaUYsWUFGakYsRUFFK0YsV0FGL0YsRUFHUixNQUhRLEVBR0EsTUFIQSxFQUdRLFlBSFIsRUFHc0IsWUFIdEIsRUFHb0MsU0FIcEMsRUFHK0MsTUFIL0MsRUFHdUQsVUFIdkQsRUFHbUUsbUJBSG5FLEVBR3dGLFNBSHhGLEVBR21HLE1BSG5HLEVBSVIsT0FKUSxFQUlDLE1BSkQsRUFJUyxNQUpULENBdEJjO0FBNEJ4QixjQUFZLENBQ1YsY0FEVSxFQUNNLFVBRE4sRUFDa0IsVUFEbEIsRUFDOEIsWUFEOUIsRUFDNEMsT0FENUMsRUFDcUQsWUFEckQsRUFDbUUsVUFEbkUsRUFDK0UsUUFEL0UsRUFDeUYsV0FEekYsRUFDc0csTUFEdEcsRUFFVixRQUZVLEVBRUEsTUFGQSxFQUVRLFVBRlIsRUFFb0IsWUFGcEIsRUFFa0MsYUFGbEMsRUFFaUQsYUFGakQsRUFFZ0UsVUFGaEUsRUFFNEUsV0FGNUUsRUFFeUYsYUFGekYsRUFFd0csT0FGeEcsRUFHVixTQUhVLEVBR0MsVUFIRCxFQUdhLFVBSGIsRUFHeUIsUUFIekIsRUFHbUMsVUFIbkMsRUFHK0MsZUFIL0MsRUFHZ0UsV0FIaEUsRUFHNkUsWUFIN0UsRUFHMkYsWUFIM0YsRUFHeUcsUUFIekcsRUFJVix1QkFKVSxFQUllLFdBSmYsRUFJNEIsV0FKNUIsRUFJeUMsUUFKekMsRUFJbUQsUUFKbkQsRUFJNkQsU0FKN0QsRUFJd0UsYUFKeEUsRUFJdUYsV0FKdkYsRUFJb0csUUFKcEcsRUFLVixPQUxVLEVBS0QsV0FMQyxFQUtZLG1CQUxaLEVBS2lDLFFBTGpDLEVBSzJDLFdBTDNDLEVBS3dELFVBTHhELEVBS29FLGNBTHBFLEVBS29GLGVBTHBGLEVBS3FHLFVBTHJHLEVBTVYsU0FOVSxFQU1DLFFBTkQsRUFNVyxVQU5YLEVBTXVCLFdBTnZCLEVBTW9DLGVBTnBDLEVBTXFELFdBTnJELEVBTWtFLFVBTmxFLEVBTThFLFNBTjlFLEVBTXlGLFdBTnpGLEVBTXNHLGFBTnRHLEVBT1YsU0FQVSxFQU9DLFFBUEQsRUFPVyxRQVBYLEVBT3FCLFFBUHJCLEVBTytCLFFBUC9CLEVBT3lDLFlBUHpDLEVBT3VELFFBUHZELEVBT2lFLFNBUGpFLEVBTzRFLFNBUDVFLEVBT3VGLE1BUHZGLEVBTytGLE1BUC9GLEVBT3VHLFNBUHZHLEVBT2tILFFBUGxILEVBTzRILFVBUDVILEVBUVYsU0FSVSxFQVFDLFVBUkQsRUFRYSxnQkFSYixFQVErQixTQVIvQixFQVEwQyxVQVIxQyxFQVFzRCxZQVJ0RCxFQVFvRSxVQVJwRSxFQVFnRixZQVJoRixFQVE4RixNQVI5RixFQVFzRyxVQVJ0RyxFQVFrSCxLQVJsSCxFQVF5SCxJQVJ6SCxFQVNWLElBVFUsRUFTSixJQVRJLEVBU0UsUUFURjtBQTVCWSxDQUExQjtBQXdDQSxNQUFNQyxxQkFBcUIsR0FBR0MsTUFBTSxDQUFDQyxJQUFQLENBQVlILGlCQUFaLENBQTlCO0FBRUE7Ozs7Ozs7QUFNTyxTQUFTSSxlQUFULENBQTBCQyxPQUExQixFQUFtQztBQUN4QyxNQUFJQSxPQUFPLENBQUNDLEtBQVosRUFBbUI7QUFDakIsU0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHUixpQkFBaUIsQ0FBQ1MsTUFBdEMsRUFBOENELENBQUMsRUFBL0MsRUFBbUQ7QUFDakQsWUFBTUUsSUFBSSxHQUFHVixpQkFBaUIsQ0FBQ1EsQ0FBRCxDQUE5Qjs7QUFDQSxVQUFJLENBQUNGLE9BQU8sQ0FBQ0MsS0FBUixJQUFpQixFQUFsQixFQUFzQkksT0FBdEIsQ0FBOEJELElBQTlCLEtBQXVDLENBQTNDLEVBQThDO0FBQzVDSixRQUFBQSxPQUFPLENBQUNNLFVBQVIsR0FBcUJGLElBQXJCO0FBQ0FKLFFBQUFBLE9BQU8sQ0FBQ08sY0FBUixHQUF5QkgsSUFBekI7QUFDQSxlQUFPQSxJQUFQO0FBQ0Q7QUFDRjtBQUNGOztBQUVELFNBQU9JLHFCQUFxQixDQUFDUixPQUFELENBQTVCO0FBQ0Q7O0FBRUQsU0FBU1EscUJBQVQsQ0FBZ0NSLE9BQWhDLEVBQXlDO0FBQ3ZDLFFBQU1TLElBQUksR0FBRyxtQkFBTyxFQUFQLEVBQVcsTUFBWCxFQUFtQlQsT0FBbkIsRUFBNEJVLFdBQTVCLEdBQTBDQyxJQUExQyxFQUFiOztBQUVBLE9BQUssSUFBSVQsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR04scUJBQXFCLENBQUNPLE1BQTFDLEVBQWtERCxDQUFDLEVBQW5ELEVBQXVEO0FBQ3JELFVBQU1FLElBQUksR0FBR1IscUJBQXFCLENBQUNNLENBQUQsQ0FBbEM7O0FBQ0EsUUFBSVAsaUJBQWlCLENBQUNTLElBQUQsQ0FBakIsQ0FBd0JDLE9BQXhCLENBQWdDSSxJQUFoQyxLQUF5QyxDQUE3QyxFQUFnRDtBQUM5Q1QsTUFBQUEsT0FBTyxDQUFDTSxVQUFSLEdBQXFCRixJQUFyQjtBQUNBLGFBQU9BLElBQVA7QUFDRDtBQUNGOztBQUVELFNBQU8sS0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvcE9yIH0gZnJvbSAncmFtZGEnXG5cbmNvbnN0IFNQRUNJQUxfVVNFX0ZMQUdTID0gWydcXFxcQWxsJywgJ1xcXFxBcmNoaXZlJywgJ1xcXFxEcmFmdHMnLCAnXFxcXEZsYWdnZWQnLCAnXFxcXEp1bmsnLCAnXFxcXFNlbnQnLCAnXFxcXFRyYXNoJ11cbmNvbnN0IFNQRUNJQUxfVVNFX0JPWEVTID0ge1xuICAnXFxcXFNlbnQnOiBbXG4gICAgJ2Fpa2EnLCAnYmlkYWxpYWsnLCAnYmlkYWxpdGEnLCAnZGloYW50YXInLCAnZSByb21ldHN3ZW5nJywgJ2UgdGluZGFtaScsICdlbGvDvGxkw7Z0dCcsICdlbGvDvGxkw7Z0dGVrJywgJ2VudmlhZGFzJyxcbiAgICAnZW52aWFkYXMnLCAnZW52aWFkb3MnLCAnZW52aWF0cycsICdlbnZvecOpcycsICdldGh1bnllbHdleW8nLCAnZXhwZWRpYXRlJywgJ2V6aXB1cnUnLCAnZ2VzZW5kZXRlJywgJ2dlc3R1dXInLFxuICAgICdnw7ZuZGVyaWxtacWfIMO2xJ9lbGVyJywgJ2fDtm5kyZlyaWzJmW5syZlyJywgJ2liZXJpbGVuJywgJ2ludmlhdGknLCAnacWhc2nFs3N0aWVqaScsICdrdXRodW55ZWx3ZScsICdsYXNhJywgJ2zDpGhldGV0eXQnLFxuICAgICdtZXNzYWdlcyBlbnZvecOpcycsICduYWlwYWRhbGEnLCAnbmFsZWZhJywgJ25hcGFkYWxhJywgJ25vc8WrdMSrdMSBcyB6acWGYXMnLCAnb2Rlc2xhbsOpJywgJ3BhZGFsYScsICdwb3NsYW5lJyxcbiAgICAncG9zbGFubycsICdwb3NsYW5vJywgJ3Bvc2xhbsOpJywgJ3Bvc2xhdG8nLCAnc2FhZGV0dWQnLCAnc2FhZGV0dWQga2lyamFkJywgJ3NlbmR0JywgJ3NlbmR0JywgJ3NlbnQnLCAnc2VudCBpdGVtcycsXG4gICAgJ3NlbnQgbWVzc2FnZXMnLCAnc8OkbmRhIHBvc3RlcicsICdzw6RudCcsICd0ZXJraXJpbScsICd0aSBmaSByYW7huaPhurknLCAndMOrIGTDq3JndWFyYScsICd2ZXJ6b25kZW4nLCAndmlsaXZ5b3R1bXdhJyxcbiAgICAnd3lzxYJhbmUnLCAnxJHDoyBn4butaScsICfPg8+EzrHOu864zq3Ovc+EzrEnLCAn0LbQuNCx0LXRgNC40LvQs9C10L0nLCAn0LbRltCx0LXRgNGW0LvQs9C10L3QtNC10YAnLCAn0LjQt9C/0YDQsNGC0LXQvdC4JywgJ9C40LvQs9GN0Y3RgdGN0L0nLCAn0LjRgNGB0L7QuyDRiNGD0LQnLCAn0LjRgdC/0YDQsNGC0LXQvdC+JyxcbiAgICAn0L3QsNC00ZbRgdC70LDQvdGWJywgJ9C+0YLQv9GA0LDQstC70LXQvdC90YvQtScsICfQv9Cw0YHQu9Cw0L3Ri9GPJywgJ9GO0LHQvtGA0LjQu9Cz0LDQvScsICfVuNaC1bLVodaA1a/VvtWh1a4nLCAn16DXqdec15fXlScsICfXpNeo15nXmNeZ150g16nXoNep15zXl9eVJywgJ9in2YTZhdix2LPZhNipJywgJ9io2r7bjNis25Ig2q/YptuSJyxcbiAgICAn2LPZiNiy2YXamNuBJywgJ9mE25Daq9mEINi02YjbjCcsICfZhdmI2KfYsdivINin2LHYs9in2YQg2LTYr9mHJywgJ+CkquCkvuCkoOCkteCkv+CksuClhycsICfgpKrgpL7gpKDgpLXgpL/gpLLgpYfgpLLgpYcnLCAn4KSq4KWN4KSw4KWH4KS34KS/4KSkJywgJ+CkreClh+CknOCkviDgpJfgpK/gpL4nLCAn4Kaq4KeN4Kaw4KeH4Kaw4Ka/4KakJywgJ+CmquCnjeCmsOCnh+CmsOCmv+CmpCcsICfgpqrgp43gp7Dgp4fgp7Dgpr/gpqQnLCAn4Kit4KmH4Kic4KmHJywgJ+CqruCri+CqleCqsuCrh+CqsuCqvicsXG4gICAgJ+CsquCsoOCsvuCsl+CssuCsvicsICfgroXgrqngr4Hgrqrgr43grqrgrr/grq/grrXgr4gnLCAn4LCq4LCC4LCq4LC/4LCC4LCa4LCs4LCh4LC/4LCC4LCm4LC/JywgJ+CyleCys+CzgeCyueCyv+CyuOCysuCyvuCypicsICfgtIXgtK/gtJrgtY3gtJrgtYEnLCAn4La64LeQ4LeA4LeUIOC2tOC2q+C3kuC3gOC3lOC2qScsICfguKrguYjguIfguYHguKXguYnguKcnLCAn4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOY4YOa4YOYJywgJ+GLqOGJsOGIi+GKqScsICfhnpThnrbhnpPigIvhnpXhn5Lhnonhnr4nLFxuICAgICflr4Tku7blgpnku70nLCAn5a+E5Lu25YKZ5Lu9JywgJ+W3suWPkeS/oeaBrycsICfpgIHkv6HmuIjjgb/vvpLvvbDvvpknLCAn67Cc7IugIOuplOyLnOyngCcsICfrs7Trgrgg7Y647KeA7ZWoJ1xuICBdLFxuICAnXFxcXFRyYXNoJzogW1xuICAgICdhcnRpY29sZSDImXRlcnNlJywgJ2JpbicsICdib3J0dGFnbmEgb2JqZWt0JywgJ2RlbGV0ZWQnLCAnZGVsZXRlZCBpdGVtcycsICdkZWxldGVkIG1lc3NhZ2VzJywgJ2VsZW1lbnRpIGVsaW1pbmF0aScsXG4gICAgJ2VsZW1lbnRvcyBib3JyYWRvcycsICdlbGVtZW50b3MgZWxpbWluYWRvcycsICdnZWzDtnNjaHRlIG9iamVrdGUnLCAnaXRlbSBkaXBhZGFtJywgJ2l0ZW5zIGFwYWdhZG9zJywgJ2l0ZW5zIGV4Y2x1w61kb3MnLFxuICAgICdt4bulYyDEkcOjIHjDs2EnLCAnb2RzdHJhbsSbbsOpIHBvbG/Fvmt5JywgJ3Blc2FuIHRlcmhhcHVzJywgJ3BvaXN0ZXR1dCcsICdwcmFodCcsICdwcsO8Z2lrYXN0JywgJ3NpbGlubWnFnyDDtsSfZWxlcicsXG4gICAgJ3NsZXR0ZWRlIGJlc2tlZGVyJywgJ3NsZXR0ZWRlIGVsZW1lbnRlcicsICd0cmFzaCcsICd0w7Zyw7ZsdCBlbGVtZWsnLCAndXN1bmnEmXRlIHdpYWRvbW/Fm2NpJywgJ3ZlcndpamRlcmRlIGl0ZW1zJyxcbiAgICAndnltYXphbsOpIHNwcsOhdnknLCAnw6lsw6ltZW50cyBzdXBwcmltw6lzJywgJ9Cy0LjQtNCw0LvQtdC90ZYnLCAn0LbQvtC50YvQu9KT0LDQvdC00LDRgCcsICfRg9C00LDQu9C10L3QvdGL0LUnLCAn16TXqNeZ15jXmdedINep16DXnteX16fXlScsICfYp9mE2LnZhtin2LXYsSDYp9mE2YXYrdiw2YjZgdipJyxcbiAgICAn2YXZiNin2LHYryDYrdiw2YEg2LTYr9mHJywgJ+C4o+C4suC4ouC4geC4suC4o+C4l+C4teC5iOC4peC4micsICflt7LliKDpmaTpgq7ku7YnLCAn5bey5Yiq6Zmk6aCF55uuJywgJ+W3suWIqumZpOmgheebridcbiAgXSxcbiAgJ1xcXFxKdW5rJzogW1xuICAgICdidWxrIG1haWwnLCAnY29ycmVvIG5vIGRlc2VhZG8nLCAnY291cnJpZXIgaW5kw6lzaXJhYmxlJywgJ2lzdGVubWV5ZW4nLCAnaXN0ZW5tZXllbiBlLXBvc3RhJywgJ2p1bmsnLCAnbGV2w6lsc3plbcOpdCcsXG4gICAgJ25ldnnFvmlhZGFuw6EgcG/FoXRhJywgJ25ldnnFvsOhZGFuw6EgcG/FoXRhJywgJ25vIGRlc2VhZG8nLCAncG9zdGEgaW5kZXNpZGVyYXRhJywgJ3BvdXJyaWVsJywgJ3Jvc2thcG9zdGknLCAnc2tyw6RwcG9zdCcsXG4gICAgJ3NwYW0nLCAnc3BhbScsICdzcGFtb3dhbmllJywgJ3PDuHBwZWxwb3N0JywgJ3RoxrAgcsOhYycsICfRgdC/0LDQvCcsICfXk9eV15DXqCDXlteR15wnLCAn2KfZhNix2LPYp9im2YQg2KfZhNi52LTZiNin2KbZitipJywgJ9mH2LHYstmG2KfZhdmHJywgJ+C4quC5geC4m+C4oScsXG4gICAgJ+KAjuWeg+WcvumDteS7ticsICflnoPlnL7pgq7ku7YnLCAn5Z6D5Zy+6Zu76YO1J1xuICBdLFxuICAnXFxcXERyYWZ0cyc6IFtcbiAgICAnYmEgYnJvdWlsbG9uJywgJ2JvcnJhZG9yJywgJ2JvcnJhZG9yJywgJ2JvcnJhZG9yZXMnLCAnYm96emUnLCAnYnJvdWlsbG9ucycsICdi4bqjbiB0aOG6o28nLCAnY2lvcm5lJywgJ2NvbmNlcHRlbicsICdkcmFmJyxcbiAgICAnZHJhZnRzJywgJ2Ryw7ZnJywgJ2VudHfDvHJmZScsICdlc2JvcnJhbnlzJywgJ2dhcmFsYW1hbGFyJywgJ2loZSBlZGV0dXJ1JywgJ2lpZHJhZnRpJywgJ2l6aW5obGFrYScsICdqdW9kcmHFocSNaWFpJywgJ2tsYWRkJyxcbiAgICAna2xhZGRlcicsICdrb25jZXB0eScsICdrb25jZXB0eScsICdrb25zZXAnLCAna29uc2VwdGUnLCAna29waWUgcm9ib2N6ZScsICdsYXlpaMmZbMmZcicsICdsdW9ubm9rc2V0JywgJ21lbG5yYWtzdGknLCAnbWVyYWxvJyxcbiAgICAnbWVzYXpoZSB0w6sgcGFkw6tyZ3VhcmEnLCAnbWdhIGRyYWZ0JywgJ211c3RhbmRpZCcsICduYWNydGknLCAnbmFjcnRpJywgJ29zbnV0a2knLCAncGlzemtvemF0b2snLCAncmFzY3VuaG9zJywgJ3Jhc2ltdScsXG4gICAgJ3NraWNlJywgJ3Rhc2xha2xhcicsICd0c2FyYXJydW4gc2HGmW9ubmknLCAndXRrYXN0JywgJ3Zha2lyYW9rYScsICd2w6F6bGF0b2snLCAnemlycmlib3Jyb2FrJywgJ8Ogd+G7jW4gw6Br4buNcGFt4buNzIEnLCAnz4DPgc+Mz4fOtc65z4HOsScsXG4gICAgJ9C20L7QsdCw0LvQsNGAJywgJ9C90LDRhtGA0YLQuCcsICfQvdC+0L7RgNCz0YPRg9C0JywgJ9GB0LjRkdKz0L3QsNCy0LjRgScsICfRhdC+0LzQsNC60Lgg0YXQsNGC0LvQsNGAJywgJ9GH0LDRgNC90LDQstGW0LrRlicsICfRh9C10YDQvdC10YLQutC4JywgJ9GH0LXRgNC90L7QstC4JywgJ9GH0LXRgNC90L7QstC40LrQuCcsICfRh9C10YDQvdC+0LLQuNC60YLQtdGAJyxcbiAgICAn1b3Wh9Wh1aPWgNWl1oAnLCAn15jXmdeV15jXldeqJywgJ9mF2LPZiNiv2KfYqicsICfZhdiz2YjYr9in2KonLCAn2YXZiNiz2YjYr9uQJywgJ9m+24zYtCDZhtmI24zYs9mH2KcnLCAn2ojYsdin2YHZuS8nLCAn4KSh4KWN4KSw4KS+4KWe4KWN4KSfJywgJ+CkquCljeCksOCkvuCksOClguCkqicsICfgppbgprjgp5zgpr4nLCAn4KaW4Ka44Kec4Ka+JywgJ+CmoeCnjeCnsOCmvuCmq+CnjeCmnycsICfgqKHgqY3gqLDgqL7gqKvgqJ8nLCAn4Kqh4KuN4Kqw4Kq+4Kqr4KuN4Kqf4Kq4JyxcbiAgICAn4Kyh4K2N4Kyw4Ky+4Kyr4K2N4KyfJywgJ+CuteCusOCviOCuteCvgeCuleCus+CvjScsICfgsJrgsL/gsKTgsY3gsKTgsYEg4LCq4LGN4LCw4LCk4LGB4LCy4LGBJywgJ+CyleCysOCyoeCzgeCyl+Cys+CzgScsICfgtJXgtLDgtJ/gtYHgtJXgtLPgtY3igI0nLCAn4Laa4LeZ4Lan4LeU4La44LeKIOC2tOC2reC3iicsICfguInguJrguLHguJrguKPguYjguLLguIcnLCAn4YOb4YOd4YOc4YOQ4YOu4YOQ4YOW4YOU4YOR4YOYJywgJ+GIqOGJguGJhuGJvScsICfhnp/hnrbhnprhnpbhn5LhnprhnrbhnoQnLCAn5LiL5pu444GNJywgJ+iNieeovycsXG4gICAgJ+iNieeovycsICfojYnnqL8nLCAn7J6E7IucIOuztOq0gO2VqCdcbiAgXVxufVxuY29uc3QgU1BFQ0lBTF9VU0VfQk9YX0ZMQUdTID0gT2JqZWN0LmtleXMoU1BFQ0lBTF9VU0VfQk9YRVMpXG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgbWFpbGJveCBpcyBmb3Igc3BlY2lhbCB1c2VcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gbWFpbGJveFxuICogQHJldHVybiB7U3RyaW5nfSBTcGVjaWFsIHVzZSBmbGFnIChpZiBkZXRlY3RlZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrU3BlY2lhbFVzZSAobWFpbGJveCkge1xuICBpZiAobWFpbGJveC5mbGFncykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgU1BFQ0lBTF9VU0VfRkxBR1MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBTUEVDSUFMX1VTRV9GTEFHU1tpXVxuICAgICAgaWYgKChtYWlsYm94LmZsYWdzIHx8IFtdKS5pbmRleE9mKHR5cGUpID49IDApIHtcbiAgICAgICAgbWFpbGJveC5zcGVjaWFsVXNlID0gdHlwZVxuICAgICAgICBtYWlsYm94LnNwZWNpYWxVc2VGbGFnID0gdHlwZVxuICAgICAgICByZXR1cm4gdHlwZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGVja1NwZWNpYWxVc2VCeU5hbWUobWFpbGJveClcbn1cblxuZnVuY3Rpb24gY2hlY2tTcGVjaWFsVXNlQnlOYW1lIChtYWlsYm94KSB7XG4gIGNvbnN0IG5hbWUgPSBwcm9wT3IoJycsICduYW1lJywgbWFpbGJveCkudG9Mb3dlckNhc2UoKS50cmltKClcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IFNQRUNJQUxfVVNFX0JPWF9GTEFHUy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHR5cGUgPSBTUEVDSUFMX1VTRV9CT1hfRkxBR1NbaV1cbiAgICBpZiAoU1BFQ0lBTF9VU0VfQk9YRVNbdHlwZV0uaW5kZXhPZihuYW1lKSA+PSAwKSB7XG4gICAgICBtYWlsYm94LnNwZWNpYWxVc2UgPSB0eXBlXG4gICAgICByZXR1cm4gdHlwZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuIl19
;