您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds new features and builds fare purchase links for ITA Matrix
当前为
// ==UserScript== // @name ITA Matrix Powertools // @namespace https://github.com/adamhwang/ita-matrix-powertools // @description Adds new features and builds fare purchase links for ITA Matrix // @version 0.46.1 // @icon https://raw.githubusercontent.com/adamhwang/ita-matrix-powertools/master/icons/icon32.png // @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js // @grant GM.getValue // @grant GM_setValue // @grant GM.setValue // @grant GM_setValue // @include http*://matrix.itasoftware.com/* // @license GPL-2.0-only // ==/UserScript== /* Written by paul21, Steppo & Adam Hwang (IAkH) of FlyerTalk.com http://www.flyertalk.com/forum/members/paul21.html Includes contriutions by https://github.com/adamhwang/ita-matrix-powertools/blob/master/AUTHORS GNU General Public License v2.0 */ //------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool: // `npm run build` // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // </auto-generated> //------------------------------------------------------------------------------ /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 56); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCurrentSegs; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return currentItin; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return readItinerary; }); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // initialize local storage for current itin /** @type {{ cur?: string; price?: number; basefares?: number; taxes?: number; surcharges?: number; dist?: number; numPax?: number; carriers?: string[]; farebases?: string[]; itin?: { orig: string; dest: string; dist?: number; dep: { day: number; month: number; year: number; time: string; offset?: string; }; arr: { day: number; month: number; year: number; time: string; offset?: string; }; seg?: { carrier: string; orig: string; dest: string; dist?: number; dep: { day: number; month: number; year: number; time: string; time24: string; timeDisplay: string; offset?: string; }; arr: { day: number; month: number; year: number; time: string; time24: string; timeDisplay: string; offset?: string; }; fnr: string; duration: number; aircraft: string; cabin: number; bookingclass: string; codeshare: number; layoverduration: number; airportchange: number; farebase: string; farecarrier: string; }[]}[]}} */ let currentItin = new Object(); const matrixCurrencies = [ { p: /US\$/, c: "USD" }, { p: /\€/, c: "EUR" }, { p: /\£/, c: "GBP" }, { p: /CA\$/, c: "CAD" }, { p: /RS\./, c: "INR" } ]; function readItinerary() { // the magical part! :-) var itin = new Array(), carrieruarray = new Array(), farebases = new Array(), dirtyFare = new Array(); var itinCur = ""; var html = document.getElementById("contentwrapper").innerHTML; var re = /colspan\=\"5\"[^\(]+\(([\w]{3})[^\(]+\(([\w]{3})/g; var legs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re); // Got our outer legs now: for (i = 0; i < legs.length; i += 2) { var legobj = {}; // prepare all elements but fill later legobj.arr = {}; legobj.dep = {}; legobj.orig = legs[i]; legobj.dest = legs[i + 1]; legobj.seg = new Array(); itin.push(legobj); } // extract basefares var re = /Carrier\s([\w]{2})\s([\w]+).*?Covers\s([\w\(\)\s\-,]+)/g; var bfs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re); var bf = { c: "", f: "", l: new Array() }; for (i = 0; i < bfs.length; i += 3) { bf.c = bfs[i]; bf.f = bfs[i + 1]; farebases.push(bf.f); bf.l = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(bfs[i + 2], /(\w\w\w\-\w\w\w)/g); for (j = 0; j < bf.l.length; j++) { dirtyFare.push(bf.l[j] + "-" + bf.f + "-" + bf.c); } } var segs = new Array(); var re = /35px\/(\w{2}).png[^\(]+\(([A-Z]{3})[^\(]+\(([A-Z]{3})[^\,]*\,\s*([a-zA-Z]{3})\s*([0-9]{1,2}).*?gwt-Label.*?([0-9]*)\<.*?Dep:[^0-9]+(.*?)\<.*?Arr:[^0-9]+(.*?)\<.*?([0-9]{1,2})h\s([0-9]{1,2})m.*?gwt-Label.*?\>(.*?)\<.*?gwt-Label\"\>(\w).*?\((\w)\).*?\<.*?tr(.*?)(table|airline_logos)/g; segs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re); // used massive regex to get all our segment-info in one extraction var legnr = 0; var segnr = 0; for (i = 0; i < segs.length; i += 15) { const dep12 = return12htime(segs[i + 6]); const dep24 = (dep12.length == 4 ? "0" : "") + dep12; const arr12 = return12htime(segs[i + 7]); const arr24 = (arr12.length == 4 ? "0" : "") + arr12; const addinformations = parseAddInfo(segs[i + 13]); const day = parseInt(segs[i + 4]); const month = monthnameToNumber(segs[i + 3]); const year = getFlightYear(day, month); let seg = { carrier: segs[i], orig: segs[i + 1], dest: segs[i + 2], dep: { day, month, year, timeDisplay: segs[i + 6], time: dep12, time24: dep24 }, arr: { day: addinformations.arrDate ? addinformations.arrDate.day : day, month: addinformations.arrDate ? addinformations.arrDate.month : month, year: addinformations.arrDate ? addinformations.arrDate.year : year, timeDisplay: segs[i + 7], time: arr12, time24: arr24 }, fnr: segs[i + 5], duration: parseInt(segs[i + 8]) * 60 + parseInt(segs[i + 9]), aircraft: segs[i + 10], cabin: getcabincode(segs[i + 11]), bookingclass: segs[i + 12], codeshare: addinformations.codeshare, layoverduration: addinformations.layoverduration, airportchange: addinformations.airportchange, farebase: "", farecarrier: "" }; // find farecode for leg for (var j = 0; j < dirtyFare.length; j++) { if (dirtyFare[j].indexOf(seg.orig + "-" + seg.dest + "-") != -1) { //found farebase of this segment var tmp = dirtyFare[j].split("-"); seg.farebase = tmp[2]; seg.farecarrier = tmp[3]; dirtyFare[j] = seg.farebase; // avoid reuse j = dirtyFare.length; } } if (itin[legnr] === undefined) itin[legnr] = new Object(); if (itin[legnr].seg === undefined) itin[legnr].seg = new Array(); itin[legnr].seg.push(seg); // push carrier if (!carrieruarray.some(cxr => cxr === seg.carrier)) { carrieruarray.push(seg.carrier); } // push dates and times into leg-array if (segnr == 0) { if (itin[legnr].dep === undefined) itin[legnr].dep = new Object(); itin[legnr].dep.day = seg.dep.day; itin[legnr].dep.month = seg.dep.month; itin[legnr].dep.year = seg.dep.year; itin[legnr].dep.time = seg.dep.time; } if (itin[legnr].arr === undefined) itin[legnr].arr = new Object(); itin[legnr].arr.day = seg.arr.day; itin[legnr].arr.month = seg.arr.month; itin[legnr].arr.year = seg.arr.year; itin[legnr].arr.time = seg.arr.time; segnr++; // check for legchange if (segs[i + 14] == "table") { legnr++; segnr = 0; } } // We need to apply remaining fares (Not nonstop - but direct flights) for (var i = 0; i < dirtyFare.length; i++) { var curfare = dirtyFare[i].split("-"); if (curfare.length > 1) { var l = 0; //currently unused so walk through itin to find flights for (var legnr = 0; legnr < itin.length; legnr++) { for (var segnr = 0; segnr < itin[legnr].seg.length; segnr++) { if ( itin[legnr].seg[segnr].orig == curfare[0] && itin[legnr].seg[segnr].dest == curfare[1] && itin[legnr].seg[segnr].farebase == "" ) { // found seg for fare itin[legnr].seg[segnr].farebase = curfare[2]; itin[legnr].seg[segnr].farecarrier = curfare[3]; dirtyFare[i] = curfare[2]; segnr = itin[legnr].seg.length; l = 1; } else if ( itin[legnr].seg[segnr].orig == curfare[0] && itin[legnr].seg[segnr].dest != curfare[1] && itin[legnr].seg[segnr].farebase == "" ) { // found start but multiple segs -> find end for (var j = segnr + 1; j < itin[legnr].seg.length; j++) { if ( itin[legnr].seg[j].dest == curfare[1] && itin[legnr].seg[j].farebase == "" ) { //found end attach fares for (var k = segnr; k <= j; k++) { itin[legnr].seg[k].farebase = curfare[2]; itin[legnr].seg[k].farecarrier = curfare[3]; dirtyFare[i] = curfare[2]; } j = itin[legnr].seg.length; segnr = itin[legnr].seg.length; l = 1; } else if (itin[legnr].seg[segnr + j].farebase != "") { //farebase attached - skip j = itin[legnr].seg.length; } } } } if (l == 1) { legnr = itin.length; } } if (l == 0) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Unused fare:" + dirtyFare[i]); } } } // Combine technical stops into a single segment itin.forEach(itin => { if (itin.seg) itin.seg = combineTechnicalStops(itin.seg); }); // extract mileage paxcount and total price var milepaxprice = new Array(); var re = /Mileage.*?([0-9,]+)\stotal\smiles.*?Total\scost\sfor\s([0-9])\spassenger.*?<div.*?>(.*?([1-9][0-9,.]+)[^\<]*)/g; milepaxprice = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re); // detect currency for (i = 0; i < matrixCurrencies.length; i++) { if (matrixCurrencies[i].p.test(milepaxprice[2]) === true) { itinCur = matrixCurrencies[i].c; i = matrixCurrencies.length; } } currentItin = { itin: itin, price: Number(milepaxprice[3].replace(/\,/, "")), numPax: Number(milepaxprice[1]), carriers: carrieruarray, cur: itinCur, farebases: farebases, dist: Number(milepaxprice[0].replace(/\,/, "")) }; console.log("parsed itinerary: ", currentItin); } function parseAddInfo(info) { var ret = { codeshare: 0, layoverduration: 0, airportchange: 0, arrDate: null }; var re = /contains\s*airport\s*changes/g; if (re.test(info) === true) { ret.airportchange = 1; } var re = /OPERATED\s*BY/g; if (re.test(info) === true) { ret.codeshare = 1; } var temp = new Array(); var re = /\,\s*([a-zA-Z]{3})\s*([0-9]{1,2})/g; temp = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(info, re); if (temp.length == 2) { // Got datechange const month = monthnameToNumber(temp[0]); const day = parseInt(temp[1]); ret.arrDate = { month, day, year: getFlightYear(day, month) }; } var temp = new Array(); var re = /([0-9]{1,2})h\s([0-9]{1,2})m/g; temp = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(info, re); if (temp.length == 2) { // Got layover ret.layoverduration = parseInt(temp[0]) * 60 + parseInt(temp[1]); } return ret; } function getCurrentSegs() { return currentItin.itin .map(function(p) { return p.seg; }) .reduce(function(a, b) { return a.concat(b); }, []); } function combineTechnicalStops(allSegs) { if (allSegs.length <= 1) return allSegs; const segs = []; for (let i = 0; i < allSegs.length; i++) { const currSeg = allSegs[i]; const nextSeg = allSegs[i + 1]; if ( nextSeg && nextSeg.fnr === currSeg.fnr && nextSeg.orig === currSeg.dest ) { segs.push({ ...currSeg, dest: nextSeg.dest, arr: nextSeg.arr }); i++; } else { segs.push(currSeg); } } return segs; } /**************************************** General Functions *****************************************/ function getcabincode(cabin) { switch (cabin) { case "E": cabin = 0; break; case "P": cabin = 1; break; case "B": cabin = 2; break; case "F": cabin = 3; break; default: cabin = 0; } return cabin; } function monthnameToNumber(month) { var monthnames = [ "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" ]; return monthnames.indexOf(month.toUpperCase()) + 1; } function getFlightYear(day, month) { //Do date magic var d = new Date(); var cmonth = d.getMonth(); var cday = d.getDate(); var cyear = d.getFullYear(); // make sure to handle the 0-11 issue of getMonth() if (cmonth > month - 1 || (cmonth == month - 1 && day < cday)) { cyear += 1; // The flight is next year } return cyear; } function return12htime(match) { var regex = /([01]?\d)(:\d{2})(AM|PM|am|pm| AM| PM| am| pm)/g; match = regex.exec(match); var offset = 0; match[3] = trimStr(match[3]); if ((match[3] == "AM" || match[3] == "am") && match[1] == "12") { offset = -12; } else if ((match[3] == "PM" || match[3] == "pm") && match[1] != "12") { offset = 12; } return +match[1] + offset + match[2]; } function trimStr(x) { return x.replace(/^\s+|\s+$/gm, ""); } /***/ }), /* 1 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return findtarget; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return findtargets; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return hasClass; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return toggleVis; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return clearNotification; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return printNotification; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return exRE; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return to2digits; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return to4digits; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return to4digitTime; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return monthnumberToName; }); function findtarget(tclass, nth) { var elems = document.getElementsByTagName("*"), i; let j = 0; for (i in elems) { if ((" " + elems[i].className + " ").indexOf(" " + tclass + " ") > -1) { j++; if (j == nth) { return elems[i]; break; } } } } function findtargets(tclass) { var elems = document.getElementsByTagName("*"), i; var ret = new Array(); for (i in elems) { if ((" " + elems[i].className + " ").indexOf(" " + tclass + " ") > -1) { ret.push(elems[i]); } } return ret; } function hasClass(element, cls) { return (" " + element.className + " ").indexOf(" " + cls + " ") > -1; } function toggleVis(target, blockType = "block") { if (hasClass(target, "vis")) { target.setAttribute("class", "invis"); target.style.display = "none"; } else { target.setAttribute("class", "vis"); target.style.display = blockType; } } function clearNotification() { var target = document.getElementById("mtpNotification"); target.innerHTML = ""; } function printNotification(text) { // log the text to the browser's developer console: console.log(text); // display for user: var target = document.getElementById("mtpNotification"); if (target === null) { //alert("mtp Error: Notification container not Found"); console.log("mtp Error: Notification container not Found"); } else { //possibility to print multiple notifications var temp = document.createElement("div"); temp.appendChild(document.createTextNode(text)); target.appendChild(temp); } } //Parses all of the outputs of regexp matches into an array function exRE(str, re) { var ret = new Array(); var m; var i = 0; while ((m = re.exec(str)) != null) { if (m.index === re.lastIndex) { re.lastIndex++; } for (let k = 1; k < m.length; k++) { ret[i++] = m[k]; } } return ret; } function to2digits(str) { return ("00" + str).slice(-2); } function to4digits(str) { return ("0000" + str).slice(-4); } function to4digitTime(time) { return to4digits(time.replace(":", "")); } function monthnumberToName(month) { var monthnames = [ "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" ]; return monthnames[month - 1]; } /***/ }), /* 2 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return registeredSettings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return registerSetting; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return saveUserSettings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return loadUserSettings; }); /* harmony import */ var _appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); const defaultSettings = { timeformat: "12h", // replaces times on resultpage - valid: 12h / 24h language: "en", // replaces several items on resultpage - valid: en / de linkFontsize: 100, // fontsize of links - valid: 50-200 showAllAirlines: 0, // shows all airline links regardless of search results // booleans to toggle specific settings: enableDeviders: 1, // Print deviders in links after group (airlines/otas/other stuff) - valid: 0 / 1 enableInlineMode: 1, // enables inline mode - valid: 0 / 1 enableEditormode: 0, // prevents the script from automatically parsing the itinerary - valid: 0 / 1 enableIMGautoload: 0, // enables images to auto load - valid: 0 / 1 enableFarerules: 1, // enables fare rule opening in new window - valid: 0 / 1 enablePricebreakdown: 1, // enables price breakdown - valid: 0 / 1 enablePlanefinder: 1, // enables Planefinder - click on flight numbers to open Planefinder for this flight - valid: 0 / 1 enableSeatguru: 1, // enables Seatguru - click on plane type to open Seatguru for this flight - valid: 0 / 1 enableWheretocredit: 1, // enables Wheretocredit - click on booking class to open wheretocredit for this flight - valid: 0 / 1 enableAffiliates: 1 }; const registeredSettings = {}; /** * Registers a link * @param {string} name * @param {string} id * @param {{ name: string, value: string }[]} values * @param {string} defaultValue */ function registerSetting(name, id, values, defaultValue) { registeredSettings[id] = { name, values }; defaultSettings[id] = defaultValue; } async function saveUserSettings(settings = defaultSettings) { switch (_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].scriptEngine) { case 0: localStorage.setItem("mptUserSettings", JSON.stringify(settings)); break; case 1: await GM.setValue("mptUserSettings", JSON.stringify(settings)); break; } } async function loadUserSettings() { let gmSavedUserSettings; switch (_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].scriptEngine) { case 0: gmSavedUserSettings = localStorage.getItem("mptUserSettings"); break; case 1: gmSavedUserSettings = await GM.getValue("mptUserSettings"); break; } console.log("mptSavedUserSettings: " + gmSavedUserSettings); if (!gmSavedUserSettings || typeof gmSavedUserSettings !== "string") return; /** @type typeof defaultSettings */ const savedUserSettings = JSON.parse(gmSavedUserSettings); if (!savedUserSettings) return; Object.assign(defaultSettings, savedUserSettings); } /* harmony default export */ __webpack_exports__["a"] = (defaultSettings); /***/ }), /* 3 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "register", function() { return register; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "allCarriers", function() { return allCarriers; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "anyCarriers", function() { return anyCarriers; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validatePax", function() { return validatePax; }); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const req = __webpack_require__(13); req.keys().forEach(req); /** * Registers a link * @param {() => { url: string, title: string, img?: string, desc?: string, extra?: string, target?: string }} factory */ function register(type, factory) { Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "b"])(type, factory); } function allCarriers() { const args = Array.from(arguments); return ( _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers.every(cxr => args.some(arg => cxr === arg)) ); } function anyCarriers() { const args = Array.from(arguments); return ( _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers.some(cxr => args.some(arg => cxr === arg)) ); } function validatePax(config) { //{maxPaxcount:7, countInf:false, childAsAdult:12, sepInfSeat:false, childMinAge:2} var tmpChildren = new Array(); // push cur children for (var i = 0; i < _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].cAges.length; i++) { tmpChildren.push(_settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].cAges[i]); } var ret = { adults: _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].adults, children: new Array(), infLap: _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].infantsLap, infSeat: 0 }; if (config.sepInfSeat === true) { ret.infSeat = _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].infantsSeat; } else { for (var i = 0; i < _settings_paxSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].infantsSeat; i++) { tmpChildren.push(config.childMinAge); } } // process children for (var i = 0; i < tmpChildren.length; i++) { if (tmpChildren[i] < config.childAsAdult) { ret.children.push(tmpChildren[i]); } else { ret.adults++; } } // check Pax-Count if ( config.maxPaxcount <= ret.adults + (config.countInf && ret.infLap) + ret.infSeat + ret.children.length ) { console.log("Too many passengers"); return; } if (0 === ret.adults + ret.infSeat + ret.children.length) { console.log("No passengers"); return; } return ret; } /***/ }), /* 4 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return reset; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCabin; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getForcedCabin; }); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // General settings const appSettings = { scriptEngine: typeof GM === "undefined" || typeof GM.info === "undefined" ? 0 : 1, // 0 - console mode, 1 - tamper or grease mode itaLanguage: "en", version: "0.46.1", retrycount: 1, laststatus: "", scriptrunning: 1, cabin: "Auto" }; function reset() { // reset Notification due to pagechange Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* clearNotification */ "a"])(); // reset Editor Mode document.getElementById("mptStartparse").setAttribute("class", "invis"); document.getElementById("mptStartparse").style.display = "none"; appSettings.itaLanguage = "en"; appSettings.retrycount = 1; } function getCabin(autoCabin) { return appSettings.cabin === "Auto" ? autoCabin : getForcedCabin(); } function getForcedCabin() { switch (appSettings.cabin) { case "Y": return 0; case "Y+": return 1; case "C": return 2; case "F": return 3; default: return 0; } } /* harmony default export */ __webpack_exports__["a"] = (appSettings); /***/ }), /* 5 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return findTargetSetVersion; }); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // ITA Matrix CSS class definitions: const itaSettings = [ { startpage: { maindiv: "KIR33AB-w-d" //Container of main content. Unfortunately id "contentwrapper" is used twice }, resultpage: { itin: "KIR33AB-v-d", //Container with headline: "Itinerary" itinRow: "KIR33AB-j-i", // TR in itin with Orig, Dest and date milagecontainer: "KIR33AB-v-e", // TD-Container on the right rulescontainer: "KIR33AB-k-d", // First container before rulelinks (the one with Fare X:) htbContainer: "KIR33AB-k-k", // full "how to buy"-container inner div (td=>div=>div) htbLeft: "KIR33AB-k-g", // Left column in the "how to buy"-container htbRight: "KIR33AB-k-f", // Class for normal right column htbGreyBorder: "KIR33AB-k-l", // Class for right cell with light grey border (used for subtotal of passenger) //inline mcDiv: "KIR33AB-y-d", // Right menu sections class (3 divs surrounding entire Mileage, Emissions, and Airport Info) mcHeader: "KIR33AB-y-b", // Right menu header class ("Mileage", etc.) mcLinkList: "KIR33AB-y-c" // Right menu ul list class (immediately following header) } }, { startpage: { maindiv: "IR6M2QD-w-d" //Container of main content. Unfortunately id "contentwrapper" is used twice }, resultpage: { itin: "IR6M2QD-v-d", //Container with headline: "Itinerary" itinRow: "IR6M2QD-j-i", // TR in itin with Orig, Dest and date milagecontainer: "IR6M2QD-v-e", // TD-Container on the right rulescontainer: "IR6M2QD-k-d", // First container before rulelinks (the one with Fare X:) htbContainer: "IR6M2QD-k-k", // full "how to buy"-container inner div (td=>div=>div) htbLeft: "IR6M2QD-k-g", // Left column in the "how to buy"-container htbRight: "IR6M2QD-k-f", // Class for normal right column htbGreyBorder: "IR6M2QD-k-l", // Class for right cell with light grey border (used for subtotal of passenger) //inline mcDiv: "IR6M2QD-y-d", // Right menu sections class (3 divs surrounding entire Mileage, Emissions, and Airport Info) mcHeader: "IR6M2QD-y-b", // Right menu header class ("Mileage", etc.) mcLinkList: "IR6M2QD-y-c" // Right menu ul list class (immediately following header) } } ]; const classSettings = itaSettings[0]; function findTargetSetVersion(classSelector, nth) { for (let setting of itaSettings) { const className = classSelector(setting); const target = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* findtarget */ "c"])(className, nth); if (target) { console.log(`ITA Version detected: ${className}`); Object.assign(classSettings, setting); return target; } } } /* harmony default export */ __webpack_exports__["a"] = (classSettings); /***/ }), /* 6 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // initialize local storage for passenger details /* harmony default export */ __webpack_exports__["a"] = ({ adults: 1, infantsLap: 0, infantsSeat: 0, cAges: new Array() }); /***/ }), /* 7 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getAmadeusUrl; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getAmadeusPax; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getAmadeusTriptype; }); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0); // **** START AMADEUS **** function getAmadeusUrl(config) { config = config || { sepcabin: 1, detailed: 0, inctimes: 1, enablesegskip: 1, allowpremium: 1 }; config.sepcabin = config.sepcabin === undefined ? 1 : config.sepcabin; config.detailed = config.detailed === undefined ? 0 : config.detailed; config.inctimes = config.inctimes === undefined ? 1 : config.inctimes; config.enablesegskip = config.enablesegskip === undefined ? 1 : config.enablesegskip; config.allowpremium = config.allowpremium === undefined ? 1 : config.allowpremium; var curleg = 0; var lastcabin = 0; var curseg = 0; var lastdest = ""; var maxcabin = 0; var url = ""; var lastarrtime = ""; var cabins = ["E", "N", "B", "F"]; cabins[1] = config.allowpremium != 1 ? cabins[0] : cabins[1]; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length; i++) { curseg = 3; // need to toggle segskip on first leg lastcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[0].cabin; // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 || config.enablesegskip == 0 ) break; k++; } curseg++; if ( curseg > 3 || (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin != lastcabin && config.sepcabin == 1) ) { if (lastdest != "") { //close prior flight url += "&E_LOCATION_" + curleg + "=" + lastdest; url += "&E_DATE_" + curleg + "=" + lastarrtime; } curseg = 1; curleg++; url += "&B_LOCATION_" + curleg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&B_ANY_TIME_" + curleg + "=FALSE"; url += "&B_DATE_" + curleg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + (config.inctimes == 1 ? ( "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "") ).slice(-4) : "0000"); url += "&CABIN_" + curleg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin]; url += "&ALLOW_ALTERNATE_AVAILABILITY_" + curleg + "=FALSE"; url += "&DATE_RANGE_VALUE_" + curleg + "=0"; } lastarrtime = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) + (config.inctimes == 1 ? ( "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time.replace(":", "") ).slice(-4) : "0000"); if (config.detailed === 1) { url += "&B_LOCATION_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&B_LOCATION_CITY_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&B_DATE_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + (config.inctimes == 1 ? ( "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "") ).slice(-4) : "0000"); url += "&E_LOCATION_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&E_LOCATION_CITY_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&E_DATE_" + curleg + "_" + curseg + "=" + lastarrtime; } url += "&AIRLINE_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].carrier; url += "&FLIGHT_NUMBER_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&RBD_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; url += "&FARE_CLASS_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].farebase; lastdest = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest; lastcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin; if (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin > maxcabin) maxcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin; j += k; } } url += "&E_LOCATION_" + curleg + "=" + lastdest; // push final dest url += "&E_DATE_" + curleg + "=" + lastarrtime; // push arr time url += "&CABIN=" + cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? maxcabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()] + ""; // push cabin return url; } function getAmadeusPax(pax, config) { config = config || { allowinf: 1, youthage: 0 }; config.allowinf = config.allowinf === undefined ? 1 : config.allowinf; config.youthage = config.sepyouth === undefined ? 0 : config.sepyouth; var tmpPax = { c: 0, y: 0 }; var curPax = 1; var url = "&IS_PRIMARY_TRAVELLER_1=True"; for (let i = 0; i < pax.children.length; i++) { if (pax.children[i] >= config.youthage && config.youthage > 0) { tmpPax.y++; } else if (pax.children[i] >= 12) { pax.adults++; } else { tmpPax.c++; } } for (let i = 0; i < pax.adults; i++) { url += "&TRAVELLER_TYPE_" + curPax + "=ADT"; url += "&HAS_INFANT_" + curPax + "=" + (i < pax.infLap && config.allowinf == 1 ? "True" : "False"); url += "&IS_YOUTH_" + curPax + "=False"; curPax++; } for (let i = 0; i < tmpPax.y; i++) { url += "&TRAVELLER_TYPE_" + curPax + "=ADT"; url += "&HAS_INFANT_" + curPax + "=False"; url += "&IS_YOUTH_" + curPax + "=True"; curPax++; } for (let i = 0; i < tmpPax.c; i++) { url += "&TRAVELLER_TYPE_" + curPax + "=CHD"; url += "&HAS_INFANT_" + curPax + "=False"; url += "&IS_YOUTH_" + curPax + "=False"; curPax++; } return { url: url, adults: pax.adults, youth: tmpPax.y, children: tmpPax.c, infants: pax.infLap }; } function getAmadeusTriptype() { return _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length > 1 ? _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].orig ? "R" : "M" : "O"; } // **** END AMADEUS **** /***/ }), /* 8 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // Supported translations for the PowerTools interface: const de = { use: "Öffne ", resultpage: { "Dep:": "Abflug:", "Arr:": "Ankunft:", "Layover in": "Umst. in", " to ": " nach ", "Mon,": "Mo.,", "Tue,": "Di.,", "Wed,": "Mi.,", "Thu,": "Do.,", "Fri,": "Fr.,", "Sat,": "Sa.,", "Sun,": "So.,", " Jan ": " Januar ", " Feb ": " Februar ", " Mar ": " Mä,rz ", " Apr ": " April ", " May ": " Mai ", " Jun ": " Juni ", " Jul ": " Juli ", " Aug ": " August ", " Sep ": " September ", " Oct ": " Oktober ", " Nov ": " November ", " Dec ": " Dezember ", "OPERATED BY ": "Durchgefü,hrt von " } }; /* harmony default export */ __webpack_exports__["a"] = ({ de }); /***/ }), /* 9 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return registerLink; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return printLinksContainer; }); /* unused harmony export printImage */ /* unused harmony export getSidebarContainer */ /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5); /* harmony import */ var _settings_translations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1); /** @type {{ [key: string]: (() => { url: string, title: string, img?: string, desc?: string, extra?: string, target?: string })[]}} */ const links = {}; __webpack_require__(3); var skimlinks = document.createElement("script"); skimlinks.setAttribute( "src", "https://s.skimresources.com/js/122783X1611548.skimlinks.js" ); /** * Registers a link * @param {() => { url: string, title: string, img?: string, desc?: string, extra?: string, target?: string }} factory */ function registerLink(type, factory) { if (!links[type]) links[type] = []; links[type].push(factory); } function printLinksContainer() { // do nothing if editor mode is active if (Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* findtargets */ "d"])("editoritem").length > 0) { return false; } // empty outputcontainer const div = getSidebarContainer(); div.innerHTML = ""; // S&D powertool items const elems = Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* findtargets */ "d"])("powertoolsitem"); for (let i = elems.length - 1; i >= 1; i--) { elems[i].parentElement.removeChild(elems[i]); } const groups = Object.keys(links); groups.forEach((group, i) => { const groupLinks = links[group] .map(link => link()) .sort((a, b) => { return a.title.localeCompare(b.title); }); groupLinks.forEach(link => { if (!link) return; if (link.img) { printImage(link); } else if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1) { printUrlInline(link); } else { printUrl(link); } }); _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableDeviders == 1 && links[group].length && i != groups.length - 1 && printSeperator(); }); /*** attach JS events after building link container ***/ bindLinkClicks(); } function bindLinkClicks() { if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableAffiliates == 1) { skimlinks.parentNode && skimlinks.parentNode.removeChild(skimlinks); document.body.appendChild(skimlinks); } } // Inline Stuff function printUrlInline(link) { var item = `<li class="powertoolsitem">${printLink(link)}</li>`; const container = getSidebarContainer(); container.insertAdjacentHTML("beforeend", item); } function printImage(link) { const div = getSidebarContainer(); const imgLink = (link.url ? '<a href="' + link.url + '" target="_blank" class="powertoolsitem">' : "") + '<img src="' + link.img + '" style="margin-top:10px;"' + (!link.url ? ' class="powertoolsitem"' : "") + "/>" + (link.url ? "</a>" : ""); if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableIMGautoload == 1) { div.insertAdjacentHTML("beforeend", imgLink); } else { var id = Math.random().toString(); div.insertAdjacentHTML( "beforeend", `<div id="${id}" class="powertoolsitem" style="width:184px;height:100px;background-color:white;border:1px solid #808080;cursor:pointer;text-align:center;margin-top:10px;padding-top:84px;"><span>${link.title}</span></div>` ); document.getElementById(id).addEventListener("click", function() { this.outerHTML = imgLink; }); } } function getSidebarContainer() { if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1) { return ( document.getElementById("powertoolslinkinlinecontainer") || createUrlContainerInline() ); } else { return ( document.getElementById("powertoolslinkcontainer") || createUrlContainer() ); } } function createUrlContainerInline() { var newdiv = document.createElement("div"); newdiv.setAttribute("class", _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcDiv); newdiv.style.backgroundColor = "#f2f2f2"; newdiv.innerHTML = '<div class="' + _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcHeader + '">Powertools</div><ul id="powertoolslinkinlinecontainer" class="' + _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcLinkList + '"></ul>'; Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* findtarget */ "c"])(_settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcDiv, 1).parentElement.appendChild( newdiv ); return document.getElementById("powertoolslinkinlinecontainer"); } // Printing Stuff function printUrl(link) { var item = `<div class="powertoolsitem" style="margin:5px 0px 10px 0px">${printLink( link )}</div>`; const container = getSidebarContainer(); container.insertAdjacentHTML("beforeend", item); } function printLink(link) { let html = `<div><label style="font-size:${Number( _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].linkFontsize )}%;font-weight:600"> <a href="${link.url}" target=${link.target || "_blank"}>${(_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][ _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language ] && _settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language]["use"]) || "Use "} ${link.title}</a> </label>`; if (link.extra) html += link.extra; if (link.desc) html += `<br/><label style="font-size:${Number( _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].linkFontsize ) - 15}%">${link.desc}</label>`; html += "</div"; return html; } function createUrlContainer() { var newdiv = document.createElement("div"); newdiv.setAttribute("id", "powertoolslinkcontainer"); newdiv.setAttribute("style", "margin:15px 0px 0px 10px"); return Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* findtarget */ "c"])(_settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.milagecontainer, 1).appendChild( newdiv ); } function printSeperator() { var container = getSidebarContainer(); if (container) { container.insertAdjacentHTML( "beforeend", _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode ? '<hr class="powertoolsitem"/>' : "<hr/>" ); } } /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js ;(function (global, factory) { true ? module.exports = factory() : undefined }(this, (function () { 'use strict'; var hookCallback; function hooks () { return hookCallback.apply(null, arguments); } // This is done to register the method called with moment() // without creating circular dependencies. function setHookCallback (callback) { hookCallback = callback; } function isArray(input) { return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; } function isObject(input) { // IE8 will treat undefined and null as object if it wasn't for // input != null return input != null && Object.prototype.toString.call(input) === '[object Object]'; } function isObjectEmpty(obj) { if (Object.getOwnPropertyNames) { return (Object.getOwnPropertyNames(obj).length === 0); } else { var k; for (k in obj) { if (obj.hasOwnProperty(k)) { return false; } } return true; } } function isUndefined(input) { return input === void 0; } function isNumber(input) { return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; } function isDate(input) { return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; } function map(arr, fn) { var res = [], i; for (i = 0; i < arr.length; ++i) { res.push(fn(arr[i], i)); } return res; } function hasOwnProp(a, b) { return Object.prototype.hasOwnProperty.call(a, b); } function extend(a, b) { for (var i in b) { if (hasOwnProp(b, i)) { a[i] = b[i]; } } if (hasOwnProp(b, 'toString')) { a.toString = b.toString; } if (hasOwnProp(b, 'valueOf')) { a.valueOf = b.valueOf; } return a; } function createUTC (input, format, locale, strict) { return createLocalOrUTC(input, format, locale, strict, true).utc(); } function defaultParsingFlags() { // We need to deep clone this object. return { empty : false, unusedTokens : [], unusedInput : [], overflow : -2, charsLeftOver : 0, nullInput : false, invalidMonth : null, invalidFormat : false, userInvalidated : false, iso : false, parsedDateParts : [], meridiem : null, rfc2822 : false, weekdayMismatch : false }; } function getParsingFlags(m) { if (m._pf == null) { m._pf = defaultParsingFlags(); } return m._pf; } var some; if (Array.prototype.some) { some = Array.prototype.some; } else { some = function (fun) { var t = Object(this); var len = t.length >>> 0; for (var i = 0; i < len; i++) { if (i in t && fun.call(this, t[i], i, t)) { return true; } } return false; }; } function isValid(m) { if (m._isValid == null) { var flags = getParsingFlags(m); var parsedParts = some.call(flags.parsedDateParts, function (i) { return i != null; }); var isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || (flags.meridiem && parsedParts)); if (m._strict) { isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined; } if (Object.isFrozen == null || !Object.isFrozen(m)) { m._isValid = isNowValid; } else { return isNowValid; } } return m._isValid; } function createInvalid (flags) { var m = createUTC(NaN); if (flags != null) { extend(getParsingFlags(m), flags); } else { getParsingFlags(m).userInvalidated = true; } return m; } // Plugins that add properties should also add the key here (null value), // so we can properly clone ourselves. var momentProperties = hooks.momentProperties = []; function copyConfig(to, from) { var i, prop, val; if (!isUndefined(from._isAMomentObject)) { to._isAMomentObject = from._isAMomentObject; } if (!isUndefined(from._i)) { to._i = from._i; } if (!isUndefined(from._f)) { to._f = from._f; } if (!isUndefined(from._l)) { to._l = from._l; } if (!isUndefined(from._strict)) { to._strict = from._strict; } if (!isUndefined(from._tzm)) { to._tzm = from._tzm; } if (!isUndefined(from._isUTC)) { to._isUTC = from._isUTC; } if (!isUndefined(from._offset)) { to._offset = from._offset; } if (!isUndefined(from._pf)) { to._pf = getParsingFlags(from); } if (!isUndefined(from._locale)) { to._locale = from._locale; } if (momentProperties.length > 0) { for (i = 0; i < momentProperties.length; i++) { prop = momentProperties[i]; val = from[prop]; if (!isUndefined(val)) { to[prop] = val; } } } return to; } var updateInProgress = false; // Moment prototype object function Moment(config) { copyConfig(this, config); this._d = new Date(config._d != null ? config._d.getTime() : NaN); if (!this.isValid()) { this._d = new Date(NaN); } // Prevent infinite loop in case updateOffset creates new moment // objects. if (updateInProgress === false) { updateInProgress = true; hooks.updateOffset(this); updateInProgress = false; } } function isMoment (obj) { return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); } function absFloor (number) { if (number < 0) { // -0 -> 0 return Math.ceil(number) || 0; } else { return Math.floor(number); } } function toInt(argumentForCoercion) { var coercedNumber = +argumentForCoercion, value = 0; if (coercedNumber !== 0 && isFinite(coercedNumber)) { value = absFloor(coercedNumber); } return value; } // compare two arrays, return the number of differences function compareArrays(array1, array2, dontConvert) { var len = Math.min(array1.length, array2.length), lengthDiff = Math.abs(array1.length - array2.length), diffs = 0, i; for (i = 0; i < len; i++) { if ((dontConvert && array1[i] !== array2[i]) || (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { diffs++; } } return diffs + lengthDiff; } function warn(msg) { if (hooks.suppressDeprecationWarnings === false && (typeof console !== 'undefined') && console.warn) { console.warn('Deprecation warning: ' + msg); } } function deprecate(msg, fn) { var firstTime = true; return extend(function () { if (hooks.deprecationHandler != null) { hooks.deprecationHandler(null, msg); } if (firstTime) { var args = []; var arg; for (var i = 0; i < arguments.length; i++) { arg = ''; if (typeof arguments[i] === 'object') { arg += '\n[' + i + '] '; for (var key in arguments[0]) { arg += key + ': ' + arguments[0][key] + ', '; } arg = arg.slice(0, -2); // Remove trailing comma and space } else { arg = arguments[i]; } args.push(arg); } warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); firstTime = false; } return fn.apply(this, arguments); }, fn); } var deprecations = {}; function deprecateSimple(name, msg) { if (hooks.deprecationHandler != null) { hooks.deprecationHandler(name, msg); } if (!deprecations[name]) { warn(msg); deprecations[name] = true; } } hooks.suppressDeprecationWarnings = false; hooks.deprecationHandler = null; function isFunction(input) { return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; } function set (config) { var prop, i; for (i in config) { prop = config[i]; if (isFunction(prop)) { this[i] = prop; } else { this['_' + i] = prop; } } this._config = config; // Lenient ordinal parsing accepts just a number in addition to // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. // TODO: Remove "ordinalParse" fallback in next major release. this._dayOfMonthOrdinalParseLenient = new RegExp( (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + (/\d{1,2}/).source); } function mergeConfigs(parentConfig, childConfig) { var res = extend({}, parentConfig), prop; for (prop in childConfig) { if (hasOwnProp(childConfig, prop)) { if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { res[prop] = {}; extend(res[prop], parentConfig[prop]); extend(res[prop], childConfig[prop]); } else if (childConfig[prop] != null) { res[prop] = childConfig[prop]; } else { delete res[prop]; } } } for (prop in parentConfig) { if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) { // make sure changes to properties don't modify parent config res[prop] = extend({}, res[prop]); } } return res; } function Locale(config) { if (config != null) { this.set(config); } } var keys; if (Object.keys) { keys = Object.keys; } else { keys = function (obj) { var i, res = []; for (i in obj) { if (hasOwnProp(obj, i)) { res.push(i); } } return res; }; } var defaultCalendar = { sameDay : '[Today at] LT', nextDay : '[Tomorrow at] LT', nextWeek : 'dddd [at] LT', lastDay : '[Yesterday at] LT', lastWeek : '[Last] dddd [at] LT', sameElse : 'L' }; function calendar (key, mom, now) { var output = this._calendar[key] || this._calendar['sameElse']; return isFunction(output) ? output.call(mom, now) : output; } var defaultLongDateFormat = { LTS : 'h:mm:ss A', LT : 'h:mm A', L : 'MM/DD/YYYY', LL : 'MMMM D, YYYY', LLL : 'MMMM D, YYYY h:mm A', LLLL : 'dddd, MMMM D, YYYY h:mm A' }; function longDateFormat (key) { var format = this._longDateFormat[key], formatUpper = this._longDateFormat[key.toUpperCase()]; if (format || !formatUpper) { return format; } this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { return val.slice(1); }); return this._longDateFormat[key]; } var defaultInvalidDate = 'Invalid date'; function invalidDate () { return this._invalidDate; } var defaultOrdinal = '%d'; var defaultDayOfMonthOrdinalParse = /\d{1,2}/; function ordinal (number) { return this._ordinal.replace('%d', number); } var defaultRelativeTime = { future : 'in %s', past : '%s ago', s : 'a few seconds', ss : '%d seconds', m : 'a minute', mm : '%d minutes', h : 'an hour', hh : '%d hours', d : 'a day', dd : '%d days', M : 'a month', MM : '%d months', y : 'a year', yy : '%d years' }; function relativeTime (number, withoutSuffix, string, isFuture) { var output = this._relativeTime[string]; return (isFunction(output)) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number); } function pastFuture (diff, output) { var format = this._relativeTime[diff > 0 ? 'future' : 'past']; return isFunction(format) ? format(output) : format.replace(/%s/i, output); } var aliases = {}; function addUnitAlias (unit, shorthand) { var lowerCase = unit.toLowerCase(); aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; } function normalizeUnits(units) { return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; } function normalizeObjectUnits(inputObject) { var normalizedInput = {}, normalizedProp, prop; for (prop in inputObject) { if (hasOwnProp(inputObject, prop)) { normalizedProp = normalizeUnits(prop); if (normalizedProp) { normalizedInput[normalizedProp] = inputObject[prop]; } } } return normalizedInput; } var priorities = {}; function addUnitPriority(unit, priority) { priorities[unit] = priority; } function getPrioritizedUnits(unitsObj) { var units = []; for (var u in unitsObj) { units.push({unit: u, priority: priorities[u]}); } units.sort(function (a, b) { return a.priority - b.priority; }); return units; } function zeroFill(number, targetLength, forceSign) { var absNumber = '' + Math.abs(number), zerosToFill = targetLength - absNumber.length, sign = number >= 0; return (sign ? (forceSign ? '+' : '') : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; } var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; var formatFunctions = {}; var formatTokenFunctions = {}; // token: 'M' // padded: ['MM', 2] // ordinal: 'Mo' // callback: function () { this.month() + 1 } function addFormatToken (token, padded, ordinal, callback) { var func = callback; if (typeof callback === 'string') { func = function () { return this[callback](); }; } if (token) { formatTokenFunctions[token] = func; } if (padded) { formatTokenFunctions[padded[0]] = function () { return zeroFill(func.apply(this, arguments), padded[1], padded[2]); }; } if (ordinal) { formatTokenFunctions[ordinal] = function () { return this.localeData().ordinal(func.apply(this, arguments), token); }; } } function removeFormattingTokens(input) { if (input.match(/\[[\s\S]/)) { return input.replace(/^\[|\]$/g, ''); } return input.replace(/\\/g, ''); } function makeFormatFunction(format) { var array = format.match(formattingTokens), i, length; for (i = 0, length = array.length; i < length; i++) { if (formatTokenFunctions[array[i]]) { array[i] = formatTokenFunctions[array[i]]; } else { array[i] = removeFormattingTokens(array[i]); } } return function (mom) { var output = '', i; for (i = 0; i < length; i++) { output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; } return output; }; } // format date using native date object function formatMoment(m, format) { if (!m.isValid()) { return m.localeData().invalidDate(); } format = expandFormat(format, m.localeData()); formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); return formatFunctions[format](m); } function expandFormat(format, locale) { var i = 5; function replaceLongDateFormatTokens(input) { return locale.longDateFormat(input) || input; } localFormattingTokens.lastIndex = 0; while (i >= 0 && localFormattingTokens.test(format)) { format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); localFormattingTokens.lastIndex = 0; i -= 1; } return format; } var match1 = /\d/; // 0 - 9 var match2 = /\d\d/; // 00 - 99 var match3 = /\d{3}/; // 000 - 999 var match4 = /\d{4}/; // 0000 - 9999 var match6 = /[+-]?\d{6}/; // -999999 - 999999 var match1to2 = /\d\d?/; // 0 - 99 var match3to4 = /\d\d\d\d?/; // 999 - 9999 var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 var match1to3 = /\d{1,3}/; // 0 - 999 var match1to4 = /\d{1,4}/; // 0 - 9999 var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 var matchUnsigned = /\d+/; // 0 - inf var matchSigned = /[+-]?\d+/; // -inf - inf var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 // any word (or two) characters or numbers including two/three word month in arabic. // includes scottish gaelic two word and hyphenated months var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; var regexes = {}; function addRegexToken (token, regex, strictRegex) { regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { return (isStrict && strictRegex) ? strictRegex : regex; }; } function getParseRegexForToken (token, config) { if (!hasOwnProp(regexes, token)) { return new RegExp(unescapeFormat(token)); } return regexes[token](config._strict, config._locale); } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript function unescapeFormat(s) { return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { return p1 || p2 || p3 || p4; })); } function regexEscape(s) { return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); } var tokens = {}; function addParseToken (token, callback) { var i, func = callback; if (typeof token === 'string') { token = [token]; } if (isNumber(callback)) { func = function (input, array) { array[callback] = toInt(input); }; } for (i = 0; i < token.length; i++) { tokens[token[i]] = func; } } function addWeekParseToken (token, callback) { addParseToken(token, function (input, array, config, token) { config._w = config._w || {}; callback(input, config._w, config, token); }); } function addTimeToArrayFromToken(token, input, config) { if (input != null && hasOwnProp(tokens, token)) { tokens[token](input, config._a, config, token); } } var YEAR = 0; var MONTH = 1; var DATE = 2; var HOUR = 3; var MINUTE = 4; var SECOND = 5; var MILLISECOND = 6; var WEEK = 7; var WEEKDAY = 8; // FORMATTING addFormatToken('Y', 0, 0, function () { var y = this.year(); return y <= 9999 ? '' + y : '+' + y; }); addFormatToken(0, ['YY', 2], 0, function () { return this.year() % 100; }); addFormatToken(0, ['YYYY', 4], 0, 'year'); addFormatToken(0, ['YYYYY', 5], 0, 'year'); addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES addUnitAlias('year', 'y'); // PRIORITIES addUnitPriority('year', 1); // PARSING addRegexToken('Y', matchSigned); addRegexToken('YY', match1to2, match2); addRegexToken('YYYY', match1to4, match4); addRegexToken('YYYYY', match1to6, match6); addRegexToken('YYYYYY', match1to6, match6); addParseToken(['YYYYY', 'YYYYYY'], YEAR); addParseToken('YYYY', function (input, array) { array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); }); addParseToken('YY', function (input, array) { array[YEAR] = hooks.parseTwoDigitYear(input); }); addParseToken('Y', function (input, array) { array[YEAR] = parseInt(input, 10); }); // HELPERS function daysInYear(year) { return isLeapYear(year) ? 366 : 365; } function isLeapYear(year) { return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; } // HOOKS hooks.parseTwoDigitYear = function (input) { return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); }; // MOMENTS var getSetYear = makeGetSet('FullYear', true); function getIsLeapYear () { return isLeapYear(this.year()); } function makeGetSet (unit, keepTime) { return function (value) { if (value != null) { set$1(this, unit, value); hooks.updateOffset(this, keepTime); return this; } else { return get(this, unit); } }; } function get (mom, unit) { return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; } function set$1 (mom, unit, value) { if (mom.isValid() && !isNaN(value)) { if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) { mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month())); } else { mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); } } } // MOMENTS function stringGet (units) { units = normalizeUnits(units); if (isFunction(this[units])) { return this[units](); } return this; } function stringSet (units, value) { if (typeof units === 'object') { units = normalizeObjectUnits(units); var prioritized = getPrioritizedUnits(units); for (var i = 0; i < prioritized.length; i++) { this[prioritized[i].unit](units[prioritized[i].unit]); } } else { units = normalizeUnits(units); if (isFunction(this[units])) { return this[units](value); } } return this; } function mod(n, x) { return ((n % x) + x) % x; } var indexOf; if (Array.prototype.indexOf) { indexOf = Array.prototype.indexOf; } else { indexOf = function (o) { // I know var i; for (i = 0; i < this.length; ++i) { if (this[i] === o) { return i; } } return -1; }; } function daysInMonth(year, month) { if (isNaN(year) || isNaN(month)) { return NaN; } var modMonth = mod(month, 12); year += (month - modMonth) / 12; return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2); } // FORMATTING addFormatToken('M', ['MM', 2], 'Mo', function () { return this.month() + 1; }); addFormatToken('MMM', 0, 0, function (format) { return this.localeData().monthsShort(this, format); }); addFormatToken('MMMM', 0, 0, function (format) { return this.localeData().months(this, format); }); // ALIASES addUnitAlias('month', 'M'); // PRIORITY addUnitPriority('month', 8); // PARSING addRegexToken('M', match1to2); addRegexToken('MM', match1to2, match2); addRegexToken('MMM', function (isStrict, locale) { return locale.monthsShortRegex(isStrict); }); addRegexToken('MMMM', function (isStrict, locale) { return locale.monthsRegex(isStrict); }); addParseToken(['M', 'MM'], function (input, array) { array[MONTH] = toInt(input) - 1; }); addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid. if (month != null) { array[MONTH] = month; } else { getParsingFlags(config).invalidMonth = input; } }); // LOCALES var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); function localeMonths (m, format) { if (!m) { return isArray(this._months) ? this._months : this._months['standalone']; } return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; } var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); function localeMonthsShort (m, format) { if (!m) { return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone']; } return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; } function handleStrictParse(monthName, format, strict) { var i, ii, mom, llc = monthName.toLocaleLowerCase(); if (!this._monthsParse) { // this is not used this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = []; for (i = 0; i < 12; ++i) { mom = createUTC([2000, i]); this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); } } if (strict) { if (format === 'MMM') { ii = indexOf.call(this._shortMonthsParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._longMonthsParse, llc); return ii !== -1 ? ii : null; } } else { if (format === 'MMM') { ii = indexOf.call(this._shortMonthsParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._longMonthsParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._longMonthsParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortMonthsParse, llc); return ii !== -1 ? ii : null; } } } function localeMonthsParse (monthName, format, strict) { var i, mom, regex; if (this._monthsParseExact) { return handleStrictParse.call(this, monthName, format, strict); } if (!this._monthsParse) { this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = []; } // TODO: add sorting // Sorting makes sure if one month (or abbr) is a prefix of another // see sorting in computeMonthsParse for (i = 0; i < 12; i++) { // make the regex if we don't have it already mom = createUTC([2000, i]); if (strict && !this._longMonthsParse[i]) { this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); } if (!strict && !this._monthsParse[i]) { regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); } // test the regex if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { return i; } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { return i; } else if (!strict && this._monthsParse[i].test(monthName)) { return i; } } } // MOMENTS function setMonth (mom, value) { var dayOfMonth; if (!mom.isValid()) { // No op return mom; } if (typeof value === 'string') { if (/^\d+$/.test(value)) { value = toInt(value); } else { value = mom.localeData().monthsParse(value); // TODO: Another silent failure? if (!isNumber(value)) { return mom; } } } dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); return mom; } function getSetMonth (value) { if (value != null) { setMonth(this, value); hooks.updateOffset(this, true); return this; } else { return get(this, 'Month'); } } function getDaysInMonth () { return daysInMonth(this.year(), this.month()); } var defaultMonthsShortRegex = matchWord; function monthsShortRegex (isStrict) { if (this._monthsParseExact) { if (!hasOwnProp(this, '_monthsRegex')) { computeMonthsParse.call(this); } if (isStrict) { return this._monthsShortStrictRegex; } else { return this._monthsShortRegex; } } else { if (!hasOwnProp(this, '_monthsShortRegex')) { this._monthsShortRegex = defaultMonthsShortRegex; } return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex; } } var defaultMonthsRegex = matchWord; function monthsRegex (isStrict) { if (this._monthsParseExact) { if (!hasOwnProp(this, '_monthsRegex')) { computeMonthsParse.call(this); } if (isStrict) { return this._monthsStrictRegex; } else { return this._monthsRegex; } } else { if (!hasOwnProp(this, '_monthsRegex')) { this._monthsRegex = defaultMonthsRegex; } return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex; } } function computeMonthsParse () { function cmpLenRev(a, b) { return b.length - a.length; } var shortPieces = [], longPieces = [], mixedPieces = [], i, mom; for (i = 0; i < 12; i++) { // make the regex if we don't have it already mom = createUTC([2000, i]); shortPieces.push(this.monthsShort(mom, '')); longPieces.push(this.months(mom, '')); mixedPieces.push(this.months(mom, '')); mixedPieces.push(this.monthsShort(mom, '')); } // Sorting makes sure if one month (or abbr) is a prefix of another it // will match the longer piece. shortPieces.sort(cmpLenRev); longPieces.sort(cmpLenRev); mixedPieces.sort(cmpLenRev); for (i = 0; i < 12; i++) { shortPieces[i] = regexEscape(shortPieces[i]); longPieces[i] = regexEscape(longPieces[i]); } for (i = 0; i < 24; i++) { mixedPieces[i] = regexEscape(mixedPieces[i]); } this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); this._monthsShortRegex = this._monthsRegex; this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); } function createDate (y, m, d, h, M, s, ms) { // can't just apply() to create a date: // https://stackoverflow.com/q/181348 var date; // the date constructor remaps years 0-99 to 1900-1999 if (y < 100 && y >= 0) { // preserve leap years using a full 400 year cycle, then reset date = new Date(y + 400, m, d, h, M, s, ms); if (isFinite(date.getFullYear())) { date.setFullYear(y); } } else { date = new Date(y, m, d, h, M, s, ms); } return date; } function createUTCDate (y) { var date; // the Date.UTC function remaps years 0-99 to 1900-1999 if (y < 100 && y >= 0) { var args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset args[0] = y + 400; date = new Date(Date.UTC.apply(null, args)); if (isFinite(date.getUTCFullYear())) { date.setUTCFullYear(y); } } else { date = new Date(Date.UTC.apply(null, arguments)); } return date; } // start-of-first-week - start-of-year function firstWeekOffset(year, dow, doy) { var // first-week day -- which january is always in the first week (4 for iso, 1 for other) fwd = 7 + dow - doy, // first-week day local weekday -- which local weekday is fwd fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; return -fwdlw + fwd - 1; } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday function dayOfYearFromWeeks(year, week, weekday, dow, doy) { var localWeekday = (7 + weekday - dow) % 7, weekOffset = firstWeekOffset(year, dow, doy), dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, resYear, resDayOfYear; if (dayOfYear <= 0) { resYear = year - 1; resDayOfYear = daysInYear(resYear) + dayOfYear; } else if (dayOfYear > daysInYear(year)) { resYear = year + 1; resDayOfYear = dayOfYear - daysInYear(year); } else { resYear = year; resDayOfYear = dayOfYear; } return { year: resYear, dayOfYear: resDayOfYear }; } function weekOfYear(mom, dow, doy) { var weekOffset = firstWeekOffset(mom.year(), dow, doy), week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, resWeek, resYear; if (week < 1) { resYear = mom.year() - 1; resWeek = week + weeksInYear(resYear, dow, doy); } else if (week > weeksInYear(mom.year(), dow, doy)) { resWeek = week - weeksInYear(mom.year(), dow, doy); resYear = mom.year() + 1; } else { resYear = mom.year(); resWeek = week; } return { week: resWeek, year: resYear }; } function weeksInYear(year, dow, doy) { var weekOffset = firstWeekOffset(year, dow, doy), weekOffsetNext = firstWeekOffset(year + 1, dow, doy); return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; } // FORMATTING addFormatToken('w', ['ww', 2], 'wo', 'week'); addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES addUnitAlias('week', 'w'); addUnitAlias('isoWeek', 'W'); // PRIORITIES addUnitPriority('week', 5); addUnitPriority('isoWeek', 5); // PARSING addRegexToken('w', match1to2); addRegexToken('ww', match1to2, match2); addRegexToken('W', match1to2); addRegexToken('WW', match1to2, match2); addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { week[token.substr(0, 1)] = toInt(input); }); // HELPERS // LOCALES function localeWeek (mom) { return weekOfYear(mom, this._week.dow, this._week.doy).week; } var defaultLocaleWeek = { dow : 0, // Sunday is the first day of the week. doy : 6 // The week that contains Jan 6th is the first week of the year. }; function localeFirstDayOfWeek () { return this._week.dow; } function localeFirstDayOfYear () { return this._week.doy; } // MOMENTS function getSetWeek (input) { var week = this.localeData().week(this); return input == null ? week : this.add((input - week) * 7, 'd'); } function getSetISOWeek (input) { var week = weekOfYear(this, 1, 4).week; return input == null ? week : this.add((input - week) * 7, 'd'); } // FORMATTING addFormatToken('d', 0, 'do', 'day'); addFormatToken('dd', 0, 0, function (format) { return this.localeData().weekdaysMin(this, format); }); addFormatToken('ddd', 0, 0, function (format) { return this.localeData().weekdaysShort(this, format); }); addFormatToken('dddd', 0, 0, function (format) { return this.localeData().weekdays(this, format); }); addFormatToken('e', 0, 0, 'weekday'); addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES addUnitAlias('day', 'd'); addUnitAlias('weekday', 'e'); addUnitAlias('isoWeekday', 'E'); // PRIORITY addUnitPriority('day', 11); addUnitPriority('weekday', 11); addUnitPriority('isoWeekday', 11); // PARSING addRegexToken('d', match1to2); addRegexToken('e', match1to2); addRegexToken('E', match1to2); addRegexToken('dd', function (isStrict, locale) { return locale.weekdaysMinRegex(isStrict); }); addRegexToken('ddd', function (isStrict, locale) { return locale.weekdaysShortRegex(isStrict); }); addRegexToken('dddd', function (isStrict, locale) { return locale.weekdaysRegex(isStrict); }); addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid if (weekday != null) { week.d = weekday; } else { getParsingFlags(config).invalidWeekday = input; } }); addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { week[token] = toInt(input); }); // HELPERS function parseWeekday(input, locale) { if (typeof input !== 'string') { return input; } if (!isNaN(input)) { return parseInt(input, 10); } input = locale.weekdaysParse(input); if (typeof input === 'number') { return input; } return null; } function parseIsoWeekday(input, locale) { if (typeof input === 'string') { return locale.weekdaysParse(input) % 7 || 7; } return isNaN(input) ? null : input; } // LOCALES function shiftWeekdays (ws, n) { return ws.slice(n, 7).concat(ws.slice(0, n)); } var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); function localeWeekdays (m, format) { var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone']; return (m === true) ? shiftWeekdays(weekdays, this._week.dow) : (m) ? weekdays[m.day()] : weekdays; } var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); function localeWeekdaysShort (m) { return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow) : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; } var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); function localeWeekdaysMin (m) { return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow) : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; } function handleStrictParse$1(weekdayName, format, strict) { var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); if (!this._weekdaysParse) { this._weekdaysParse = []; this._shortWeekdaysParse = []; this._minWeekdaysParse = []; for (i = 0; i < 7; ++i) { mom = createUTC([2000, 1]).day(i); this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); } } if (strict) { if (format === 'dddd') { ii = indexOf.call(this._weekdaysParse, llc); return ii !== -1 ? ii : null; } else if (format === 'ddd') { ii = indexOf.call(this._shortWeekdaysParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } } else { if (format === 'dddd') { ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } else if (format === 'ddd') { ii = indexOf.call(this._shortWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._minWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortWeekdaysParse, llc); return ii !== -1 ? ii : null; } } } function localeWeekdaysParse (weekdayName, format, strict) { var i, mom, regex; if (this._weekdaysParseExact) { return handleStrictParse$1.call(this, weekdayName, format, strict); } if (!this._weekdaysParse) { this._weekdaysParse = []; this._minWeekdaysParse = []; this._shortWeekdaysParse = []; this._fullWeekdaysParse = []; } for (i = 0; i < 7; i++) { // make the regex if we don't have it already mom = createUTC([2000, 1]).day(i); if (strict && !this._fullWeekdaysParse[i]) { this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i'); this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i'); this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i'); } if (!this._weekdaysParse[i]) { regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); } // test the regex if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { return i; } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { return i; } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { return i; } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { return i; } } } // MOMENTS function getSetDayOfWeek (input) { if (!this.isValid()) { return input != null ? this : NaN; } var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); if (input != null) { input = parseWeekday(input, this.localeData()); return this.add(input - day, 'd'); } else { return day; } } function getSetLocaleDayOfWeek (input) { if (!this.isValid()) { return input != null ? this : NaN; } var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; return input == null ? weekday : this.add(input - weekday, 'd'); } function getSetISODayOfWeek (input) { if (!this.isValid()) { return input != null ? this : NaN; } // behaves the same as moment#day except // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) // as a setter, sunday should belong to the previous week. if (input != null) { var weekday = parseIsoWeekday(input, this.localeData()); return this.day(this.day() % 7 ? weekday : weekday - 7); } else { return this.day() || 7; } } var defaultWeekdaysRegex = matchWord; function weekdaysRegex (isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, '_weekdaysRegex')) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysStrictRegex; } else { return this._weekdaysRegex; } } else { if (!hasOwnProp(this, '_weekdaysRegex')) { this._weekdaysRegex = defaultWeekdaysRegex; } return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex; } } var defaultWeekdaysShortRegex = matchWord; function weekdaysShortRegex (isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, '_weekdaysRegex')) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysShortStrictRegex; } else { return this._weekdaysShortRegex; } } else { if (!hasOwnProp(this, '_weekdaysShortRegex')) { this._weekdaysShortRegex = defaultWeekdaysShortRegex; } return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex; } } var defaultWeekdaysMinRegex = matchWord; function weekdaysMinRegex (isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, '_weekdaysRegex')) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysMinStrictRegex; } else { return this._weekdaysMinRegex; } } else { if (!hasOwnProp(this, '_weekdaysMinRegex')) { this._weekdaysMinRegex = defaultWeekdaysMinRegex; } return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex; } } function computeWeekdaysParse () { function cmpLenRev(a, b) { return b.length - a.length; } var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], i, mom, minp, shortp, longp; for (i = 0; i < 7; i++) { // make the regex if we don't have it already mom = createUTC([2000, 1]).day(i); minp = this.weekdaysMin(mom, ''); shortp = this.weekdaysShort(mom, ''); longp = this.weekdays(mom, ''); minPieces.push(minp); shortPieces.push(shortp); longPieces.push(longp); mixedPieces.push(minp); mixedPieces.push(shortp); mixedPieces.push(longp); } // Sorting makes sure if one weekday (or abbr) is a prefix of another it // will match the longer piece. minPieces.sort(cmpLenRev); shortPieces.sort(cmpLenRev); longPieces.sort(cmpLenRev); mixedPieces.sort(cmpLenRev); for (i = 0; i < 7; i++) { shortPieces[i] = regexEscape(shortPieces[i]); longPieces[i] = regexEscape(longPieces[i]); mixedPieces[i] = regexEscape(mixedPieces[i]); } this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); this._weekdaysShortRegex = this._weekdaysRegex; this._weekdaysMinRegex = this._weekdaysRegex; this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); } // FORMATTING function hFormat() { return this.hours() % 12 || 12; } function kFormat() { return this.hours() || 24; } addFormatToken('H', ['HH', 2], 0, 'hour'); addFormatToken('h', ['hh', 2], 0, hFormat); addFormatToken('k', ['kk', 2], 0, kFormat); addFormatToken('hmm', 0, 0, function () { return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); }); addFormatToken('hmmss', 0, 0, function () { return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); }); addFormatToken('Hmm', 0, 0, function () { return '' + this.hours() + zeroFill(this.minutes(), 2); }); addFormatToken('Hmmss', 0, 0, function () { return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); }); function meridiem (token, lowercase) { addFormatToken(token, 0, 0, function () { return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); }); } meridiem('a', true); meridiem('A', false); // ALIASES addUnitAlias('hour', 'h'); // PRIORITY addUnitPriority('hour', 13); // PARSING function matchMeridiem (isStrict, locale) { return locale._meridiemParse; } addRegexToken('a', matchMeridiem); addRegexToken('A', matchMeridiem); addRegexToken('H', match1to2); addRegexToken('h', match1to2); addRegexToken('k', match1to2); addRegexToken('HH', match1to2, match2); addRegexToken('hh', match1to2, match2); addRegexToken('kk', match1to2, match2); addRegexToken('hmm', match3to4); addRegexToken('hmmss', match5to6); addRegexToken('Hmm', match3to4); addRegexToken('Hmmss', match5to6); addParseToken(['H', 'HH'], HOUR); addParseToken(['k', 'kk'], function (input, array, config) { var kInput = toInt(input); array[HOUR] = kInput === 24 ? 0 : kInput; }); addParseToken(['a', 'A'], function (input, array, config) { config._isPm = config._locale.isPM(input); config._meridiem = input; }); addParseToken(['h', 'hh'], function (input, array, config) { array[HOUR] = toInt(input); getParsingFlags(config).bigHour = true; }); addParseToken('hmm', function (input, array, config) { var pos = input.length - 2; array[HOUR] = toInt(input.substr(0, pos)); array[MINUTE] = toInt(input.substr(pos)); getParsingFlags(config).bigHour = true; }); addParseToken('hmmss', function (input, array, config) { var pos1 = input.length - 4; var pos2 = input.length - 2; array[HOUR] = toInt(input.substr(0, pos1)); array[MINUTE] = toInt(input.substr(pos1, 2)); array[SECOND] = toInt(input.substr(pos2)); getParsingFlags(config).bigHour = true; }); addParseToken('Hmm', function (input, array, config) { var pos = input.length - 2; array[HOUR] = toInt(input.substr(0, pos)); array[MINUTE] = toInt(input.substr(pos)); }); addParseToken('Hmmss', function (input, array, config) { var pos1 = input.length - 4; var pos2 = input.length - 2; array[HOUR] = toInt(input.substr(0, pos1)); array[MINUTE] = toInt(input.substr(pos1, 2)); array[SECOND] = toInt(input.substr(pos2)); }); // LOCALES function localeIsPM (input) { // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays // Using charAt should be more compatible. return ((input + '').toLowerCase().charAt(0) === 'p'); } var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; function localeMeridiem (hours, minutes, isLower) { if (hours > 11) { return isLower ? 'pm' : 'PM'; } else { return isLower ? 'am' : 'AM'; } } // MOMENTS // Setting the hour should keep the time, because the user explicitly // specified which hour they want. So trying to maintain the same hour (in // a new timezone) makes sense. Adding/subtracting hours does not follow // this rule. var getSetHour = makeGetSet('Hours', true); var baseConfig = { calendar: defaultCalendar, longDateFormat: defaultLongDateFormat, invalidDate: defaultInvalidDate, ordinal: defaultOrdinal, dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, relativeTime: defaultRelativeTime, months: defaultLocaleMonths, monthsShort: defaultLocaleMonthsShort, week: defaultLocaleWeek, weekdays: defaultLocaleWeekdays, weekdaysMin: defaultLocaleWeekdaysMin, weekdaysShort: defaultLocaleWeekdaysShort, meridiemParse: defaultLocaleMeridiemParse }; // internal storage for locale config files var locales = {}; var localeFamilies = {}; var globalLocale; function normalizeLocale(key) { return key ? key.toLowerCase().replace('_', '-') : key; } // pick the locale from the array // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root function chooseLocale(names) { var i = 0, j, next, locale, split; while (i < names.length) { split = normalizeLocale(names[i]).split('-'); j = split.length; next = normalizeLocale(names[i + 1]); next = next ? next.split('-') : null; while (j > 0) { locale = loadLocale(split.slice(0, j).join('-')); if (locale) { return locale; } if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { //the next array item is better than a shallower substring of this one break; } j--; } i++; } return globalLocale; } function loadLocale(name) { var oldLocale = null; // TODO: Find a better way to register and load all the locales in Node if (!locales[name] && (typeof module !== 'undefined') && module && module.exports) { try { oldLocale = globalLocale._abbr; var aliasedRequire = require; __webpack_require__(19)("./" + name); getSetGlobalLocale(oldLocale); } catch (e) {} } return locales[name]; } // This function will load locale and then set the global locale. If // no arguments are passed in, it will simply return the current global // locale key. function getSetGlobalLocale (key, values) { var data; if (key) { if (isUndefined(values)) { data = getLocale(key); } else { data = defineLocale(key, values); } if (data) { // moment.duration._locale = moment._locale = data; globalLocale = data; } else { if ((typeof console !== 'undefined') && console.warn) { //warn user if arguments are passed but the locale could not be set console.warn('Locale ' + key + ' not found. Did you forget to load it?'); } } } return globalLocale._abbr; } function defineLocale (name, config) { if (config !== null) { var locale, parentConfig = baseConfig; config.abbr = name; if (locales[name] != null) { deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); parentConfig = locales[name]._config; } else if (config.parentLocale != null) { if (locales[config.parentLocale] != null) { parentConfig = locales[config.parentLocale]._config; } else { locale = loadLocale(config.parentLocale); if (locale != null) { parentConfig = locale._config; } else { if (!localeFamilies[config.parentLocale]) { localeFamilies[config.parentLocale] = []; } localeFamilies[config.parentLocale].push({ name: name, config: config }); return null; } } } locales[name] = new Locale(mergeConfigs(parentConfig, config)); if (localeFamilies[name]) { localeFamilies[name].forEach(function (x) { defineLocale(x.name, x.config); }); } // backwards compat for now: also set the locale // make sure we set the locale AFTER all child locales have been // created, so we won't end up with the child locale set. getSetGlobalLocale(name); return locales[name]; } else { // useful for testing delete locales[name]; return null; } } function updateLocale(name, config) { if (config != null) { var locale, tmpLocale, parentConfig = baseConfig; // MERGE tmpLocale = loadLocale(name); if (tmpLocale != null) { parentConfig = tmpLocale._config; } config = mergeConfigs(parentConfig, config); locale = new Locale(config); locale.parentLocale = locales[name]; locales[name] = locale; // backwards compat for now: also set the locale getSetGlobalLocale(name); } else { // pass null for config to unupdate, useful for tests if (locales[name] != null) { if (locales[name].parentLocale != null) { locales[name] = locales[name].parentLocale; } else if (locales[name] != null) { delete locales[name]; } } } return locales[name]; } // returns locale data function getLocale (key) { var locale; if (key && key._locale && key._locale._abbr) { key = key._locale._abbr; } if (!key) { return globalLocale; } if (!isArray(key)) { //short-circuit everything else locale = loadLocale(key); if (locale) { return locale; } key = [key]; } return chooseLocale(key); } function listLocales() { return keys(locales); } function checkOverflow (m) { var overflow; var a = m._a; if (a && getParsingFlags(m).overflow === -2) { overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1; if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { overflow = DATE; } if (getParsingFlags(m)._overflowWeeks && overflow === -1) { overflow = WEEK; } if (getParsingFlags(m)._overflowWeekday && overflow === -1) { overflow = WEEKDAY; } getParsingFlags(m).overflow = overflow; } return m; } // Pick the first defined of two or three arguments. function defaults(a, b, c) { if (a != null) { return a; } if (b != null) { return b; } return c; } function currentDateArray(config) { // hooks is actually the exported moment object var nowValue = new Date(hooks.now()); if (config._useUTC) { return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; } return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; } // convert an array to a date. // the array should mirror the parameters below // note: all values past the year are optional and will default to the lowest possible value. // [year, month, day , hour, minute, second, millisecond] function configFromArray (config) { var i, date, input = [], currentDate, expectedWeekday, yearToUse; if (config._d) { return; } currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { dayOfYearFromWeekInfo(config); } //if the day of the year is set, figure out what it is if (config._dayOfYear != null) { yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { getParsingFlags(config)._overflowDayOfYear = true; } date = createUTCDate(yearToUse, 0, config._dayOfYear); config._a[MONTH] = date.getUTCMonth(); config._a[DATE] = date.getUTCDate(); } // Default to current date. // * if no year, month, day of month are given, default to today // * if day of month is given, default month and year // * if month is given, default only year // * if year is given, don't default anything for (i = 0; i < 3 && config._a[i] == null; ++i) { config._a[i] = input[i] = currentDate[i]; } // Zero out whatever was not defaulted, including time for (; i < 7; i++) { config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; } // Check for 24:00:00.000 if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) { config._nextDay = true; config._a[HOUR] = 0; } config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed // with parseZone. if (config._tzm != null) { config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); } if (config._nextDay) { config._a[HOUR] = 24; } // check for mismatching day of week if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) { getParsingFlags(config).weekdayMismatch = true; } } function dayOfYearFromWeekInfo(config) { var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; w = config._w; if (w.GG != null || w.W != null || w.E != null) { dow = 1; doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on // how we interpret now (local, utc, fixed offset). So create // a now version of current config (take local/utc/offset flags, and // create now). weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); week = defaults(w.W, 1); weekday = defaults(w.E, 1); if (weekday < 1 || weekday > 7) { weekdayOverflow = true; } } else { dow = config._locale._week.dow; doy = config._locale._week.doy; var curWeek = weekOfYear(createLocal(), dow, doy); weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week. week = defaults(w.w, curWeek.week); if (w.d != null) { // weekday -- low day numbers are considered next week weekday = w.d; if (weekday < 0 || weekday > 6) { weekdayOverflow = true; } } else if (w.e != null) { // local weekday -- counting starts from beginning of week weekday = w.e + dow; if (w.e < 0 || w.e > 6) { weekdayOverflow = true; } } else { // default to beginning of week weekday = dow; } } if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { getParsingFlags(config)._overflowWeeks = true; } else if (weekdayOverflow != null) { getParsingFlags(config)._overflowWeekday = true; } else { temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); config._a[YEAR] = temp.year; config._dayOfYear = temp.dayOfYear; } } // iso 8601 regex // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; var isoDates = [ ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], ['GGGG-[W]WW', /\d{4}-W\d\d/, false], ['YYYY-DDD', /\d{4}-\d{3}/], ['YYYY-MM', /\d{4}-\d\d/, false], ['YYYYYYMMDD', /[+-]\d{10}/], ['YYYYMMDD', /\d{8}/], // YYYYMM is NOT allowed by the standard ['GGGG[W]WWE', /\d{4}W\d{3}/], ['GGGG[W]WW', /\d{4}W\d{2}/, false], ['YYYYDDD', /\d{7}/] ]; // iso time formats and regexes var isoTimes = [ ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], ['HH:mm:ss', /\d\d:\d\d:\d\d/], ['HH:mm', /\d\d:\d\d/], ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], ['HHmmss', /\d\d\d\d\d\d/], ['HHmm', /\d\d\d\d/], ['HH', /\d\d/] ]; var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; // date from iso format function configFromISO(config) { var i, l, string = config._i, match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), allowTime, dateFormat, timeFormat, tzFormat; if (match) { getParsingFlags(config).iso = true; for (i = 0, l = isoDates.length; i < l; i++) { if (isoDates[i][1].exec(match[1])) { dateFormat = isoDates[i][0]; allowTime = isoDates[i][2] !== false; break; } } if (dateFormat == null) { config._isValid = false; return; } if (match[3]) { for (i = 0, l = isoTimes.length; i < l; i++) { if (isoTimes[i][1].exec(match[3])) { // match[2] should be 'T' or space timeFormat = (match[2] || ' ') + isoTimes[i][0]; break; } } if (timeFormat == null) { config._isValid = false; return; } } if (!allowTime && timeFormat != null) { config._isValid = false; return; } if (match[4]) { if (tzRegex.exec(match[4])) { tzFormat = 'Z'; } else { config._isValid = false; return; } } config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); configFromStringAndFormat(config); } else { config._isValid = false; } } // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/; function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { var result = [ untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10) ]; if (secondStr) { result.push(parseInt(secondStr, 10)); } return result; } function untruncateYear(yearStr) { var year = parseInt(yearStr, 10); if (year <= 49) { return 2000 + year; } else if (year <= 999) { return 1900 + year; } return year; } function preprocessRFC2822(s) { // Remove comments and folding whitespace and replace multiple-spaces with a single space return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, ''); } function checkWeekday(weekdayStr, parsedInput, config) { if (weekdayStr) { // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check. var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay(); if (weekdayProvided !== weekdayActual) { getParsingFlags(config).weekdayMismatch = true; config._isValid = false; return false; } } return true; } var obsOffsets = { UT: 0, GMT: 0, EDT: -4 * 60, EST: -5 * 60, CDT: -5 * 60, CST: -6 * 60, MDT: -6 * 60, MST: -7 * 60, PDT: -7 * 60, PST: -8 * 60 }; function calculateOffset(obsOffset, militaryOffset, numOffset) { if (obsOffset) { return obsOffsets[obsOffset]; } else if (militaryOffset) { // the only allowed military tz is Z return 0; } else { var hm = parseInt(numOffset, 10); var m = hm % 100, h = (hm - m) / 100; return h * 60 + m; } } // date and time from ref 2822 format function configFromRFC2822(config) { var match = rfc2822.exec(preprocessRFC2822(config._i)); if (match) { var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]); if (!checkWeekday(match[1], parsedArray, config)) { return; } config._a = parsedArray; config._tzm = calculateOffset(match[8], match[9], match[10]); config._d = createUTCDate.apply(null, config._a); config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); getParsingFlags(config).rfc2822 = true; } else { config._isValid = false; } } // date from iso format or fallback function configFromString(config) { var matched = aspNetJsonRegex.exec(config._i); if (matched !== null) { config._d = new Date(+matched[1]); return; } configFromISO(config); if (config._isValid === false) { delete config._isValid; } else { return; } configFromRFC2822(config); if (config._isValid === false) { delete config._isValid; } else { return; } // Final attempt, use Input Fallback hooks.createFromInputFallback(config); } hooks.createFromInputFallback = deprecate( 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged and will be removed in an upcoming major release. Please refer to ' + 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) { config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); } ); // constant that refers to the ISO standard hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form hooks.RFC_2822 = function () {}; // date from string and format string function configFromStringAndFormat(config) { // TODO: Move this to another part of the creation flow to prevent circular deps if (config._f === hooks.ISO_8601) { configFromISO(config); return; } if (config._f === hooks.RFC_2822) { configFromRFC2822(config); return; } config._a = []; getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC` var string = '' + config._i, i, parsedInput, tokens, token, skipped, stringLength = string.length, totalParsedInputLength = 0; tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; for (i = 0; i < tokens.length; i++) { token = tokens[i]; parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; // console.log('token', token, 'parsedInput', parsedInput, // 'regex', getParseRegexForToken(token, config)); if (parsedInput) { skipped = string.substr(0, string.indexOf(parsedInput)); if (skipped.length > 0) { getParsingFlags(config).unusedInput.push(skipped); } string = string.slice(string.indexOf(parsedInput) + parsedInput.length); totalParsedInputLength += parsedInput.length; } // don't parse if it's not a known token if (formatTokenFunctions[token]) { if (parsedInput) { getParsingFlags(config).empty = false; } else { getParsingFlags(config).unusedTokens.push(token); } addTimeToArrayFromToken(token, parsedInput, config); } else if (config._strict && !parsedInput) { getParsingFlags(config).unusedTokens.push(token); } } // add remaining unparsed input length to the string getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; if (string.length > 0) { getParsingFlags(config).unusedInput.push(string); } // clear _12h flag if hour is <= 12 if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) { getParsingFlags(config).bigHour = undefined; } getParsingFlags(config).parsedDateParts = config._a.slice(0); getParsingFlags(config).meridiem = config._meridiem; // handle meridiem config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); configFromArray(config); checkOverflow(config); } function meridiemFixWrap (locale, hour, meridiem) { var isPm; if (meridiem == null) { // nothing to do return hour; } if (locale.meridiemHour != null) { return locale.meridiemHour(hour, meridiem); } else if (locale.isPM != null) { // Fallback isPm = locale.isPM(meridiem); if (isPm && hour < 12) { hour += 12; } if (!isPm && hour === 12) { hour = 0; } return hour; } else { // this is not supposed to happen return hour; } } // date from string and array of format strings function configFromStringAndArray(config) { var tempConfig, bestMoment, scoreToBeat, i, currentScore; if (config._f.length === 0) { getParsingFlags(config).invalidFormat = true; config._d = new Date(NaN); return; } for (i = 0; i < config._f.length; i++) { currentScore = 0; tempConfig = copyConfig({}, config); if (config._useUTC != null) { tempConfig._useUTC = config._useUTC; } tempConfig._f = config._f[i]; configFromStringAndFormat(tempConfig); if (!isValid(tempConfig)) { continue; } // if there is any input that was not parsed add a penalty for that format currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; getParsingFlags(tempConfig).score = currentScore; if (scoreToBeat == null || currentScore < scoreToBeat) { scoreToBeat = currentScore; bestMoment = tempConfig; } } extend(config, bestMoment || tempConfig); } function configFromObject(config) { if (config._d) { return; } var i = normalizeObjectUnits(config._i); config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { return obj && parseInt(obj, 10); }); configFromArray(config); } function createFromConfig (config) { var res = new Moment(checkOverflow(prepareConfig(config))); if (res._nextDay) { // Adding is smart enough around DST res.add(1, 'd'); res._nextDay = undefined; } return res; } function prepareConfig (config) { var input = config._i, format = config._f; config._locale = config._locale || getLocale(config._l); if (input === null || (format === undefined && input === '')) { return createInvalid({nullInput: true}); } if (typeof input === 'string') { config._i = input = config._locale.preparse(input); } if (isMoment(input)) { return new Moment(checkOverflow(input)); } else if (isDate(input)) { config._d = input; } else if (isArray(format)) { configFromStringAndArray(config); } else if (format) { configFromStringAndFormat(config); } else { configFromInput(config); } if (!isValid(config)) { config._d = null; } return config; } function configFromInput(config) { var input = config._i; if (isUndefined(input)) { config._d = new Date(hooks.now()); } else if (isDate(input)) { config._d = new Date(input.valueOf()); } else if (typeof input === 'string') { configFromString(config); } else if (isArray(input)) { config._a = map(input.slice(0), function (obj) { return parseInt(obj, 10); }); configFromArray(config); } else if (isObject(input)) { configFromObject(config); } else if (isNumber(input)) { // from milliseconds config._d = new Date(input); } else { hooks.createFromInputFallback(config); } } function createLocalOrUTC (input, format, locale, strict, isUTC) { var c = {}; if (locale === true || locale === false) { strict = locale; locale = undefined; } if ((isObject(input) && isObjectEmpty(input)) || (isArray(input) && input.length === 0)) { input = undefined; } // object construction must be done this way. // https://github.com/moment/moment/issues/1423 c._isAMomentObject = true; c._useUTC = c._isUTC = isUTC; c._l = locale; c._i = input; c._f = format; c._strict = strict; return createFromConfig(c); } function createLocal (input, format, locale, strict) { return createLocalOrUTC(input, format, locale, strict, false); } var prototypeMin = deprecate( 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () { var other = createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { return other < this ? this : other; } else { return createInvalid(); } } ); var prototypeMax = deprecate( 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () { var other = createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { return other > this ? this : other; } else { return createInvalid(); } } ); // Pick a moment m from moments so that m[fn](other) is true for all // other. This relies on the function fn to be transitive. // // moments should either be an array of moment objects or an array, whose // first element is an array of moment objects. function pickBy(fn, moments) { var res, i; if (moments.length === 1 && isArray(moments[0])) { moments = moments[0]; } if (!moments.length) { return createLocal(); } res = moments[0]; for (i = 1; i < moments.length; ++i) { if (!moments[i].isValid() || moments[i][fn](res)) { res = moments[i]; } } return res; } // TODO: Use [].sort instead? function min () { var args = [].slice.call(arguments, 0); return pickBy('isBefore', args); } function max () { var args = [].slice.call(arguments, 0); return pickBy('isAfter', args); } var now = function () { return Date.now ? Date.now() : +(new Date()); }; var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; function isDurationValid(m) { for (var key in m) { if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { return false; } } var unitHasDecimal = false; for (var i = 0; i < ordering.length; ++i) { if (m[ordering[i]]) { if (unitHasDecimal) { return false; // only allow non-integers for smallest unit } if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { unitHasDecimal = true; } } } return true; } function isValid$1() { return this._isValid; } function createInvalid$1() { return createDuration(NaN); } function Duration (duration) { var normalizedInput = normalizeObjectUnits(duration), years = normalizedInput.year || 0, quarters = normalizedInput.quarter || 0, months = normalizedInput.month || 0, weeks = normalizedInput.week || normalizedInput.isoWeek || 0, days = normalizedInput.day || 0, hours = normalizedInput.hour || 0, minutes = normalizedInput.minute || 0, seconds = normalizedInput.second || 0, milliseconds = normalizedInput.millisecond || 0; this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove this._milliseconds = +milliseconds + seconds * 1e3 + // 1000 minutes * 6e4 + // 1000 * 60 hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 // Because of dateAddRemove treats 24 hours as different from a // day when working around DST, we need to store them separately this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing // which months you are are talking about, so we have to store // it separately. this._months = +months + quarters * 3 + years * 12; this._data = {}; this._locale = getLocale(); this._bubble(); } function isDuration (obj) { return obj instanceof Duration; } function absRound (number) { if (number < 0) { return Math.round(-1 * number) * -1; } else { return Math.round(number); } } // FORMATTING function offset (token, separator) { addFormatToken(token, 0, 0, function () { var offset = this.utcOffset(); var sign = '+'; if (offset < 0) { offset = -offset; sign = '-'; } return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); }); } offset('Z', ':'); offset('ZZ', ''); // PARSING addRegexToken('Z', matchShortOffset); addRegexToken('ZZ', matchShortOffset); addParseToken(['Z', 'ZZ'], function (input, array, config) { config._useUTC = true; config._tzm = offsetFromString(matchShortOffset, input); }); // HELPERS // timezone chunker // '+10:00' > ['10', '00'] // '-1530' > ['-15', '30'] var chunkOffset = /([\+\-]|\d\d)/gi; function offsetFromString(matcher, string) { var matches = (string || '').match(matcher); if (matches === null) { return null; } var chunk = matches[matches.length - 1] || []; var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; var minutes = +(parts[1] * 60) + toInt(parts[2]); return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; } // Return a moment from input, that is local/utc/zone equivalent to model. function cloneWithOffset(input, model) { var res, diff; if (model._isUTC) { res = model.clone(); diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api. res._d.setTime(res._d.valueOf() + diff); hooks.updateOffset(res, false); return res; } else { return createLocal(input).local(); } } function getDateOffset (m) { // On Firefox.24 Date#getTimezoneOffset returns a floating point. // https://github.com/moment/moment/pull/1871 return -Math.round(m._d.getTimezoneOffset() / 15) * 15; } // HOOKS // This function will be called whenever a moment is mutated. // It is intended to keep the offset in sync with the timezone. hooks.updateOffset = function () {}; // MOMENTS // keepLocalTime = true means only change the timezone, without // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset // +0200, so we adjust the time as needed, to be valid. // // Keeping the time actually adds/subtracts (one hour) // from the actual represented time. That is why we call updateOffset // a second time. In case it wants us to change the offset again // _changeInProgress == true case, then we have to adjust, because // there is no such time in the given timezone. function getSetOffset (input, keepLocalTime, keepMinutes) { var offset = this._offset || 0, localAdjust; if (!this.isValid()) { return input != null ? this : NaN; } if (input != null) { if (typeof input === 'string') { input = offsetFromString(matchShortOffset, input); if (input === null) { return this; } } else if (Math.abs(input) < 16 && !keepMinutes) { input = input * 60; } if (!this._isUTC && keepLocalTime) { localAdjust = getDateOffset(this); } this._offset = input; this._isUTC = true; if (localAdjust != null) { this.add(localAdjust, 'm'); } if (offset !== input) { if (!keepLocalTime || this._changeInProgress) { addSubtract(this, createDuration(input - offset, 'm'), 1, false); } else if (!this._changeInProgress) { this._changeInProgress = true; hooks.updateOffset(this, true); this._changeInProgress = null; } } return this; } else { return this._isUTC ? offset : getDateOffset(this); } } function getSetZone (input, keepLocalTime) { if (input != null) { if (typeof input !== 'string') { input = -input; } this.utcOffset(input, keepLocalTime); return this; } else { return -this.utcOffset(); } } function setOffsetToUTC (keepLocalTime) { return this.utcOffset(0, keepLocalTime); } function setOffsetToLocal (keepLocalTime) { if (this._isUTC) { this.utcOffset(0, keepLocalTime); this._isUTC = false; if (keepLocalTime) { this.subtract(getDateOffset(this), 'm'); } } return this; } function setOffsetToParsedOffset () { if (this._tzm != null) { this.utcOffset(this._tzm, false, true); } else if (typeof this._i === 'string') { var tZone = offsetFromString(matchOffset, this._i); if (tZone != null) { this.utcOffset(tZone); } else { this.utcOffset(0, true); } } return this; } function hasAlignedHourOffset (input) { if (!this.isValid()) { return false; } input = input ? createLocal(input).utcOffset() : 0; return (this.utcOffset() - input) % 60 === 0; } function isDaylightSavingTime () { return ( this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset() ); } function isDaylightSavingTimeShifted () { if (!isUndefined(this._isDSTShifted)) { return this._isDSTShifted; } var c = {}; copyConfig(c, this); c = prepareConfig(c); if (c._a) { var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0; } else { this._isDSTShifted = false; } return this._isDSTShifted; } function isLocal () { return this.isValid() ? !this._isUTC : false; } function isUtcOffset () { return this.isValid() ? this._isUTC : false; } function isUtc () { return this.isValid() ? this._isUTC && this._offset === 0 : false; } // ASP.NET json date format regex var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere // and further modified to allow for strings containing both week and day var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; function createDuration (input, key) { var duration = input, // matching against regexp is expensive, do it on demand match = null, sign, ret, diffRes; if (isDuration(input)) { duration = { ms : input._milliseconds, d : input._days, M : input._months }; } else if (isNumber(input)) { duration = {}; if (key) { duration[key] = input; } else { duration.milliseconds = input; } } else if (!!(match = aspNetRegex.exec(input))) { sign = (match[1] === '-') ? -1 : 1; duration = { y : 0, d : toInt(match[DATE]) * sign, h : toInt(match[HOUR]) * sign, m : toInt(match[MINUTE]) * sign, s : toInt(match[SECOND]) * sign, ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match }; } else if (!!(match = isoRegex.exec(input))) { sign = (match[1] === '-') ? -1 : 1; duration = { y : parseIso(match[2], sign), M : parseIso(match[3], sign), w : parseIso(match[4], sign), d : parseIso(match[5], sign), h : parseIso(match[6], sign), m : parseIso(match[7], sign), s : parseIso(match[8], sign) }; } else if (duration == null) {// checks for null or undefined duration = {}; } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); duration = {}; duration.ms = diffRes.milliseconds; duration.M = diffRes.months; } ret = new Duration(duration); if (isDuration(input) && hasOwnProp(input, '_locale')) { ret._locale = input._locale; } return ret; } createDuration.fn = Duration.prototype; createDuration.invalid = createInvalid$1; function parseIso (inp, sign) { // We'd normally use ~~inp for this, but unfortunately it also // converts floats to ints. // inp may be undefined, so careful calling replace on it. var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it return (isNaN(res) ? 0 : res) * sign; } function positiveMomentsDifference(base, other) { var res = {}; res.months = other.month() - base.month() + (other.year() - base.year()) * 12; if (base.clone().add(res.months, 'M').isAfter(other)) { --res.months; } res.milliseconds = +other - +(base.clone().add(res.months, 'M')); return res; } function momentsDifference(base, other) { var res; if (!(base.isValid() && other.isValid())) { return {milliseconds: 0, months: 0}; } other = cloneWithOffset(other, base); if (base.isBefore(other)) { res = positiveMomentsDifference(base, other); } else { res = positiveMomentsDifference(other, base); res.milliseconds = -res.milliseconds; res.months = -res.months; } return res; } // TODO: remove 'name' arg after deprecation is removed function createAdder(direction, name) { return function (val, period) { var dur, tmp; //invert the arguments, but complain about it if (period !== null && !isNaN(+period)) { deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); tmp = val; val = period; period = tmp; } val = typeof val === 'string' ? +val : val; dur = createDuration(val, period); addSubtract(this, dur, direction); return this; }; } function addSubtract (mom, duration, isAdding, updateOffset) { var milliseconds = duration._milliseconds, days = absRound(duration._days), months = absRound(duration._months); if (!mom.isValid()) { // No op return; } updateOffset = updateOffset == null ? true : updateOffset; if (months) { setMonth(mom, get(mom, 'Month') + months * isAdding); } if (days) { set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); } if (milliseconds) { mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); } if (updateOffset) { hooks.updateOffset(mom, days || months); } } var add = createAdder(1, 'add'); var subtract = createAdder(-1, 'subtract'); function getCalendarFormat(myMoment, now) { var diff = myMoment.diff(now, 'days', true); return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse'; } function calendar$1 (time, formats) { // We want to compare the start of today, vs this. // Getting start-of-today depends on whether we're local/utc/offset or not. var now = time || createLocal(), sod = cloneWithOffset(now, this).startOf('day'), format = hooks.calendarFormat(this, sod) || 'sameElse'; var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); return this.format(output || this.localeData().calendar(format, this, createLocal(now))); } function clone () { return new Moment(this); } function isAfter (input, units) { var localInput = isMoment(input) ? input : createLocal(input); if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units) || 'millisecond'; if (units === 'millisecond') { return this.valueOf() > localInput.valueOf(); } else { return localInput.valueOf() < this.clone().startOf(units).valueOf(); } } function isBefore (input, units) { var localInput = isMoment(input) ? input : createLocal(input); if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units) || 'millisecond'; if (units === 'millisecond') { return this.valueOf() < localInput.valueOf(); } else { return this.clone().endOf(units).valueOf() < localInput.valueOf(); } } function isBetween (from, to, units, inclusivity) { var localFrom = isMoment(from) ? from : createLocal(from), localTo = isMoment(to) ? to : createLocal(to); if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { return false; } inclusivity = inclusivity || '()'; return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units)); } function isSame (input, units) { var localInput = isMoment(input) ? input : createLocal(input), inputMs; if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units) || 'millisecond'; if (units === 'millisecond') { return this.valueOf() === localInput.valueOf(); } else { inputMs = localInput.valueOf(); return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); } } function isSameOrAfter (input, units) { return this.isSame(input, units) || this.isAfter(input, units); } function isSameOrBefore (input, units) { return this.isSame(input, units) || this.isBefore(input, units); } function diff (input, units, asFloat) { var that, zoneDelta, output; if (!this.isValid()) { return NaN; } that = cloneWithOffset(input, this); if (!that.isValid()) { return NaN; } zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; units = normalizeUnits(units); switch (units) { case 'year': output = monthDiff(this, that) / 12; break; case 'month': output = monthDiff(this, that); break; case 'quarter': output = monthDiff(this, that) / 3; break; case 'second': output = (this - that) / 1e3; break; // 1000 case 'minute': output = (this - that) / 6e4; break; // 1000 * 60 case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60 case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst default: output = this - that; } return asFloat ? output : absFloor(output); } function monthDiff (a, b) { // difference in months var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), // b is in (anchor - 1 month, anchor + 1 month) anchor = a.clone().add(wholeMonthDiff, 'months'), anchor2, adjust; if (b - anchor < 0) { anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month adjust = (b - anchor) / (anchor - anchor2); } else { anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month adjust = (b - anchor) / (anchor2 - anchor); } //check for negative zero, return zero if negative zero return -(wholeMonthDiff + adjust) || 0; } hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; function toString () { return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); } function toISOString(keepOffset) { if (!this.isValid()) { return null; } var utc = keepOffset !== true; var m = utc ? this.clone().utc() : this; if (m.year() < 0 || m.year() > 9999) { return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'); } if (isFunction(Date.prototype.toISOString)) { // native implementation is ~50x faster, use it when we can if (utc) { return this.toDate().toISOString(); } else { return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z')); } } return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'); } /** * Return a human readable representation of a moment that can * also be evaluated to get a new moment which is the same * * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects */ function inspect () { if (!this.isValid()) { return 'moment.invalid(/* ' + this._i + ' */)'; } var func = 'moment'; var zone = ''; if (!this.isLocal()) { func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; zone = 'Z'; } var prefix = '[' + func + '("]'; var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; var datetime = '-MM-DD[T]HH:mm:ss.SSS'; var suffix = zone + '[")]'; return this.format(prefix + year + datetime + suffix); } function format (inputString) { if (!inputString) { inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; } var output = formatMoment(this, inputString); return this.localeData().postformat(output); } function from (time, withoutSuffix) { if (this.isValid() && ((isMoment(time) && time.isValid()) || createLocal(time).isValid())) { return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); } else { return this.localeData().invalidDate(); } } function fromNow (withoutSuffix) { return this.from(createLocal(), withoutSuffix); } function to (time, withoutSuffix) { if (this.isValid() && ((isMoment(time) && time.isValid()) || createLocal(time).isValid())) { return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); } else { return this.localeData().invalidDate(); } } function toNow (withoutSuffix) { return this.to(createLocal(), withoutSuffix); } // If passed a locale key, it will set the locale for this // instance. Otherwise, it will return the locale configuration // variables for this instance. function locale (key) { var newLocaleData; if (key === undefined) { return this._locale._abbr; } else { newLocaleData = getLocale(key); if (newLocaleData != null) { this._locale = newLocaleData; } return this; } } var lang = deprecate( 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) { if (key === undefined) { return this.localeData(); } else { return this.locale(key); } } ); function localeData () { return this._locale; } var MS_PER_SECOND = 1000; var MS_PER_MINUTE = 60 * MS_PER_SECOND; var MS_PER_HOUR = 60 * MS_PER_MINUTE; var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970): function mod$1(dividend, divisor) { return (dividend % divisor + divisor) % divisor; } function localStartOfDate(y, m, d) { // the date constructor remaps years 0-99 to 1900-1999 if (y < 100 && y >= 0) { // preserve leap years using a full 400 year cycle, then reset return new Date(y + 400, m, d) - MS_PER_400_YEARS; } else { return new Date(y, m, d).valueOf(); } } function utcStartOfDate(y, m, d) { // Date.UTC remaps years 0-99 to 1900-1999 if (y < 100 && y >= 0) { // preserve leap years using a full 400 year cycle, then reset return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; } else { return Date.UTC(y, m, d); } } function startOf (units) { var time; units = normalizeUnits(units); if (units === undefined || units === 'millisecond' || !this.isValid()) { return this; } var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; switch (units) { case 'year': time = startOfDate(this.year(), 0, 1); break; case 'quarter': time = startOfDate(this.year(), this.month() - this.month() % 3, 1); break; case 'month': time = startOfDate(this.year(), this.month(), 1); break; case 'week': time = startOfDate(this.year(), this.month(), this.date() - this.weekday()); break; case 'isoWeek': time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); break; case 'day': case 'date': time = startOfDate(this.year(), this.month(), this.date()); break; case 'hour': time = this._d.valueOf(); time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR); break; case 'minute': time = this._d.valueOf(); time -= mod$1(time, MS_PER_MINUTE); break; case 'second': time = this._d.valueOf(); time -= mod$1(time, MS_PER_SECOND); break; } this._d.setTime(time); hooks.updateOffset(this, true); return this; } function endOf (units) { var time; units = normalizeUnits(units); if (units === undefined || units === 'millisecond' || !this.isValid()) { return this; } var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; switch (units) { case 'year': time = startOfDate(this.year() + 1, 0, 1) - 1; break; case 'quarter': time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; break; case 'month': time = startOfDate(this.year(), this.month() + 1, 1) - 1; break; case 'week': time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; break; case 'isoWeek': time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; break; case 'day': case 'date': time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; break; case 'hour': time = this._d.valueOf(); time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1; break; case 'minute': time = this._d.valueOf(); time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; break; case 'second': time = this._d.valueOf(); time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; break; } this._d.setTime(time); hooks.updateOffset(this, true); return this; } function valueOf () { return this._d.valueOf() - ((this._offset || 0) * 60000); } function unix () { return Math.floor(this.valueOf() / 1000); } function toDate () { return new Date(this.valueOf()); } function toArray () { var m = this; return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; } function toObject () { var m = this; return { years: m.year(), months: m.month(), date: m.date(), hours: m.hours(), minutes: m.minutes(), seconds: m.seconds(), milliseconds: m.milliseconds() }; } function toJSON () { // new Date(NaN).toJSON() === null return this.isValid() ? this.toISOString() : null; } function isValid$2 () { return isValid(this); } function parsingFlags () { return extend({}, getParsingFlags(this)); } function invalidAt () { return getParsingFlags(this).overflow; } function creationData() { return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict }; } // FORMATTING addFormatToken(0, ['gg', 2], 0, function () { return this.weekYear() % 100; }); addFormatToken(0, ['GG', 2], 0, function () { return this.isoWeekYear() % 100; }); function addWeekYearFormatToken (token, getter) { addFormatToken(0, [token, token.length], 0, getter); } addWeekYearFormatToken('gggg', 'weekYear'); addWeekYearFormatToken('ggggg', 'weekYear'); addWeekYearFormatToken('GGGG', 'isoWeekYear'); addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES addUnitAlias('weekYear', 'gg'); addUnitAlias('isoWeekYear', 'GG'); // PRIORITY addUnitPriority('weekYear', 1); addUnitPriority('isoWeekYear', 1); // PARSING addRegexToken('G', matchSigned); addRegexToken('g', matchSigned); addRegexToken('GG', match1to2, match2); addRegexToken('gg', match1to2, match2); addRegexToken('GGGG', match1to4, match4); addRegexToken('gggg', match1to4, match4); addRegexToken('GGGGG', match1to6, match6); addRegexToken('ggggg', match1to6, match6); addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { week[token.substr(0, 2)] = toInt(input); }); addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { week[token] = hooks.parseTwoDigitYear(input); }); // MOMENTS function getSetWeekYear (input) { return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy); } function getSetISOWeekYear (input) { return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4); } function getISOWeeksInYear () { return weeksInYear(this.year(), 1, 4); } function getWeeksInYear () { var weekInfo = this.localeData()._week; return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); } function getSetWeekYearHelper(input, week, weekday, dow, doy) { var weeksTarget; if (input == null) { return weekOfYear(this, dow, doy).year; } else { weeksTarget = weeksInYear(input, dow, doy); if (week > weeksTarget) { week = weeksTarget; } return setWeekAll.call(this, input, week, weekday, dow, doy); } } function setWeekAll(weekYear, week, weekday, dow, doy) { var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); this.year(date.getUTCFullYear()); this.month(date.getUTCMonth()); this.date(date.getUTCDate()); return this; } // FORMATTING addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES addUnitAlias('quarter', 'Q'); // PRIORITY addUnitPriority('quarter', 7); // PARSING addRegexToken('Q', match1); addParseToken('Q', function (input, array) { array[MONTH] = (toInt(input) - 1) * 3; }); // MOMENTS function getSetQuarter (input) { return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); } // FORMATTING addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES addUnitAlias('date', 'D'); // PRIORITY addUnitPriority('date', 9); // PARSING addRegexToken('D', match1to2); addRegexToken('DD', match1to2, match2); addRegexToken('Do', function (isStrict, locale) { // TODO: Remove "ordinalParse" fallback in next major release. return isStrict ? (locale._dayOfMonthOrdinalParse || locale._ordinalParse) : locale._dayOfMonthOrdinalParseLenient; }); addParseToken(['D', 'DD'], DATE); addParseToken('Do', function (input, array) { array[DATE] = toInt(input.match(match1to2)[0]); }); // MOMENTS var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES addUnitAlias('dayOfYear', 'DDD'); // PRIORITY addUnitPriority('dayOfYear', 4); // PARSING addRegexToken('DDD', match1to3); addRegexToken('DDDD', match3); addParseToken(['DDD', 'DDDD'], function (input, array, config) { config._dayOfYear = toInt(input); }); // HELPERS // MOMENTS function getSetDayOfYear (input) { var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); } // FORMATTING addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES addUnitAlias('minute', 'm'); // PRIORITY addUnitPriority('minute', 14); // PARSING addRegexToken('m', match1to2); addRegexToken('mm', match1to2, match2); addParseToken(['m', 'mm'], MINUTE); // MOMENTS var getSetMinute = makeGetSet('Minutes', false); // FORMATTING addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES addUnitAlias('second', 's'); // PRIORITY addUnitPriority('second', 15); // PARSING addRegexToken('s', match1to2); addRegexToken('ss', match1to2, match2); addParseToken(['s', 'ss'], SECOND); // MOMENTS var getSetSecond = makeGetSet('Seconds', false); // FORMATTING addFormatToken('S', 0, 0, function () { return ~~(this.millisecond() / 100); }); addFormatToken(0, ['SS', 2], 0, function () { return ~~(this.millisecond() / 10); }); addFormatToken(0, ['SSS', 3], 0, 'millisecond'); addFormatToken(0, ['SSSS', 4], 0, function () { return this.millisecond() * 10; }); addFormatToken(0, ['SSSSS', 5], 0, function () { return this.millisecond() * 100; }); addFormatToken(0, ['SSSSSS', 6], 0, function () { return this.millisecond() * 1000; }); addFormatToken(0, ['SSSSSSS', 7], 0, function () { return this.millisecond() * 10000; }); addFormatToken(0, ['SSSSSSSS', 8], 0, function () { return this.millisecond() * 100000; }); addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { return this.millisecond() * 1000000; }); // ALIASES addUnitAlias('millisecond', 'ms'); // PRIORITY addUnitPriority('millisecond', 16); // PARSING addRegexToken('S', match1to3, match1); addRegexToken('SS', match1to3, match2); addRegexToken('SSS', match1to3, match3); var token; for (token = 'SSSS'; token.length <= 9; token += 'S') { addRegexToken(token, matchUnsigned); } function parseMs(input, array) { array[MILLISECOND] = toInt(('0.' + input) * 1000); } for (token = 'S'; token.length <= 9; token += 'S') { addParseToken(token, parseMs); } // MOMENTS var getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING addFormatToken('z', 0, 0, 'zoneAbbr'); addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS function getZoneAbbr () { return this._isUTC ? 'UTC' : ''; } function getZoneName () { return this._isUTC ? 'Coordinated Universal Time' : ''; } var proto = Moment.prototype; proto.add = add; proto.calendar = calendar$1; proto.clone = clone; proto.diff = diff; proto.endOf = endOf; proto.format = format; proto.from = from; proto.fromNow = fromNow; proto.to = to; proto.toNow = toNow; proto.get = stringGet; proto.invalidAt = invalidAt; proto.isAfter = isAfter; proto.isBefore = isBefore; proto.isBetween = isBetween; proto.isSame = isSame; proto.isSameOrAfter = isSameOrAfter; proto.isSameOrBefore = isSameOrBefore; proto.isValid = isValid$2; proto.lang = lang; proto.locale = locale; proto.localeData = localeData; proto.max = prototypeMax; proto.min = prototypeMin; proto.parsingFlags = parsingFlags; proto.set = stringSet; proto.startOf = startOf; proto.subtract = subtract; proto.toArray = toArray; proto.toObject = toObject; proto.toDate = toDate; proto.toISOString = toISOString; proto.inspect = inspect; proto.toJSON = toJSON; proto.toString = toString; proto.unix = unix; proto.valueOf = valueOf; proto.creationData = creationData; proto.year = getSetYear; proto.isLeapYear = getIsLeapYear; proto.weekYear = getSetWeekYear; proto.isoWeekYear = getSetISOWeekYear; proto.quarter = proto.quarters = getSetQuarter; proto.month = getSetMonth; proto.daysInMonth = getDaysInMonth; proto.week = proto.weeks = getSetWeek; proto.isoWeek = proto.isoWeeks = getSetISOWeek; proto.weeksInYear = getWeeksInYear; proto.isoWeeksInYear = getISOWeeksInYear; proto.date = getSetDayOfMonth; proto.day = proto.days = getSetDayOfWeek; proto.weekday = getSetLocaleDayOfWeek; proto.isoWeekday = getSetISODayOfWeek; proto.dayOfYear = getSetDayOfYear; proto.hour = proto.hours = getSetHour; proto.minute = proto.minutes = getSetMinute; proto.second = proto.seconds = getSetSecond; proto.millisecond = proto.milliseconds = getSetMillisecond; proto.utcOffset = getSetOffset; proto.utc = setOffsetToUTC; proto.local = setOffsetToLocal; proto.parseZone = setOffsetToParsedOffset; proto.hasAlignedHourOffset = hasAlignedHourOffset; proto.isDST = isDaylightSavingTime; proto.isLocal = isLocal; proto.isUtcOffset = isUtcOffset; proto.isUtc = isUtc; proto.isUTC = isUtc; proto.zoneAbbr = getZoneAbbr; proto.zoneName = getZoneName; proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); function createUnix (input) { return createLocal(input * 1000); } function createInZone () { return createLocal.apply(null, arguments).parseZone(); } function preParsePostFormat (string) { return string; } var proto$1 = Locale.prototype; proto$1.calendar = calendar; proto$1.longDateFormat = longDateFormat; proto$1.invalidDate = invalidDate; proto$1.ordinal = ordinal; proto$1.preparse = preParsePostFormat; proto$1.postformat = preParsePostFormat; proto$1.relativeTime = relativeTime; proto$1.pastFuture = pastFuture; proto$1.set = set; proto$1.months = localeMonths; proto$1.monthsShort = localeMonthsShort; proto$1.monthsParse = localeMonthsParse; proto$1.monthsRegex = monthsRegex; proto$1.monthsShortRegex = monthsShortRegex; proto$1.week = localeWeek; proto$1.firstDayOfYear = localeFirstDayOfYear; proto$1.firstDayOfWeek = localeFirstDayOfWeek; proto$1.weekdays = localeWeekdays; proto$1.weekdaysMin = localeWeekdaysMin; proto$1.weekdaysShort = localeWeekdaysShort; proto$1.weekdaysParse = localeWeekdaysParse; proto$1.weekdaysRegex = weekdaysRegex; proto$1.weekdaysShortRegex = weekdaysShortRegex; proto$1.weekdaysMinRegex = weekdaysMinRegex; proto$1.isPM = localeIsPM; proto$1.meridiem = localeMeridiem; function get$1 (format, index, field, setter) { var locale = getLocale(); var utc = createUTC().set(setter, index); return locale[field](utc, format); } function listMonthsImpl (format, index, field) { if (isNumber(format)) { index = format; format = undefined; } format = format || ''; if (index != null) { return get$1(format, index, field, 'month'); } var i; var out = []; for (i = 0; i < 12; i++) { out[i] = get$1(format, i, field, 'month'); } return out; } // () // (5) // (fmt, 5) // (fmt) // (true) // (true, 5) // (true, fmt, 5) // (true, fmt) function listWeekdaysImpl (localeSorted, format, index, field) { if (typeof localeSorted === 'boolean') { if (isNumber(format)) { index = format; format = undefined; } format = format || ''; } else { format = localeSorted; index = format; localeSorted = false; if (isNumber(format)) { index = format; format = undefined; } format = format || ''; } var locale = getLocale(), shift = localeSorted ? locale._week.dow : 0; if (index != null) { return get$1(format, (index + shift) % 7, field, 'day'); } var i; var out = []; for (i = 0; i < 7; i++) { out[i] = get$1(format, (i + shift) % 7, field, 'day'); } return out; } function listMonths (format, index) { return listMonthsImpl(format, index, 'months'); } function listMonthsShort (format, index) { return listMonthsImpl(format, index, 'monthsShort'); } function listWeekdays (localeSorted, format, index) { return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); } function listWeekdaysShort (localeSorted, format, index) { return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); } function listWeekdaysMin (localeSorted, format, index) { return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); } getSetGlobalLocale('en', { dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal : function (number) { var b = number % 10, output = (toInt(number % 100 / 10) === 1) ? 'th' : (b === 1) ? 'st' : (b === 2) ? 'nd' : (b === 3) ? 'rd' : 'th'; return number + output; } }); // Side effect imports hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); var mathAbs = Math.abs; function abs () { var data = this._data; this._milliseconds = mathAbs(this._milliseconds); this._days = mathAbs(this._days); this._months = mathAbs(this._months); data.milliseconds = mathAbs(data.milliseconds); data.seconds = mathAbs(data.seconds); data.minutes = mathAbs(data.minutes); data.hours = mathAbs(data.hours); data.months = mathAbs(data.months); data.years = mathAbs(data.years); return this; } function addSubtract$1 (duration, input, value, direction) { var other = createDuration(input, value); duration._milliseconds += direction * other._milliseconds; duration._days += direction * other._days; duration._months += direction * other._months; return duration._bubble(); } // supports only 2.0-style add(1, 's') or add(duration) function add$1 (input, value) { return addSubtract$1(this, input, value, 1); } // supports only 2.0-style subtract(1, 's') or subtract(duration) function subtract$1 (input, value) { return addSubtract$1(this, input, value, -1); } function absCeil (number) { if (number < 0) { return Math.floor(number); } else { return Math.ceil(number); } } function bubble () { var milliseconds = this._milliseconds; var days = this._days; var months = this._months; var data = this._data; var seconds, minutes, hours, years, monthsFromDays; // if we have a mix of positive and negative values, bubble down first // check: https://github.com/moment/moment/issues/2166 if (!((milliseconds >= 0 && days >= 0 && months >= 0) || (milliseconds <= 0 && days <= 0 && months <= 0))) { milliseconds += absCeil(monthsToDays(months) + days) * 864e5; days = 0; months = 0; } // The following code bubbles up values, see the tests for // examples of what that means. data.milliseconds = milliseconds % 1000; seconds = absFloor(milliseconds / 1000); data.seconds = seconds % 60; minutes = absFloor(seconds / 60); data.minutes = minutes % 60; hours = absFloor(minutes / 60); data.hours = hours % 24; days += absFloor(hours / 24); // convert days to months monthsFromDays = absFloor(daysToMonths(days)); months += monthsFromDays; days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year years = absFloor(months / 12); months %= 12; data.days = days; data.months = months; data.years = years; return this; } function daysToMonths (days) { // 400 years have 146097 days (taking into account leap year rules) // 400 years have 12 months === 4800 return days * 4800 / 146097; } function monthsToDays (months) { // the reverse of daysToMonths return months * 146097 / 4800; } function as (units) { if (!this.isValid()) { return NaN; } var days; var months; var milliseconds = this._milliseconds; units = normalizeUnits(units); if (units === 'month' || units === 'quarter' || units === 'year') { days = this._days + milliseconds / 864e5; months = this._months + daysToMonths(days); switch (units) { case 'month': return months; case 'quarter': return months / 3; case 'year': return months / 12; } } else { // handle milliseconds separately because of floating point math errors (issue #1867) days = this._days + Math.round(monthsToDays(this._months)); switch (units) { case 'week' : return days / 7 + milliseconds / 6048e5; case 'day' : return days + milliseconds / 864e5; case 'hour' : return days * 24 + milliseconds / 36e5; case 'minute' : return days * 1440 + milliseconds / 6e4; case 'second' : return days * 86400 + milliseconds / 1000; // Math.floor prevents floating point math errors here case 'millisecond': return Math.floor(days * 864e5) + milliseconds; default: throw new Error('Unknown unit ' + units); } } } // TODO: Use this.as('ms')? function valueOf$1 () { if (!this.isValid()) { return NaN; } return ( this._milliseconds + this._days * 864e5 + (this._months % 12) * 2592e6 + toInt(this._months / 12) * 31536e6 ); } function makeAs (alias) { return function () { return this.as(alias); }; } var asMilliseconds = makeAs('ms'); var asSeconds = makeAs('s'); var asMinutes = makeAs('m'); var asHours = makeAs('h'); var asDays = makeAs('d'); var asWeeks = makeAs('w'); var asMonths = makeAs('M'); var asQuarters = makeAs('Q'); var asYears = makeAs('y'); function clone$1 () { return createDuration(this); } function get$2 (units) { units = normalizeUnits(units); return this.isValid() ? this[units + 's']() : NaN; } function makeGetter(name) { return function () { return this.isValid() ? this._data[name] : NaN; }; } var milliseconds = makeGetter('milliseconds'); var seconds = makeGetter('seconds'); var minutes = makeGetter('minutes'); var hours = makeGetter('hours'); var days = makeGetter('days'); var months = makeGetter('months'); var years = makeGetter('years'); function weeks () { return absFloor(this.days() / 7); } var round = Math.round; var thresholds = { ss: 44, // a few seconds to seconds s : 45, // seconds to minute m : 45, // minutes to hour h : 22, // hours to day d : 26, // days to month M : 11 // months to year }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); } function relativeTime$1 (posNegDuration, withoutSuffix, locale) { var duration = createDuration(posNegDuration).abs(); var seconds = round(duration.as('s')); var minutes = round(duration.as('m')); var hours = round(duration.as('h')); var days = round(duration.as('d')); var months = round(duration.as('M')); var years = round(duration.as('y')); var a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days] || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years]; a[2] = withoutSuffix; a[3] = +posNegDuration > 0; a[4] = locale; return substituteTimeAgo.apply(null, a); } // This function allows you to set the rounding function for relative time strings function getSetRelativeTimeRounding (roundingFunction) { if (roundingFunction === undefined) { return round; } if (typeof(roundingFunction) === 'function') { round = roundingFunction; return true; } return false; } // This function allows you to set a threshold for relative time strings function getSetRelativeTimeThreshold (threshold, limit) { if (thresholds[threshold] === undefined) { return false; } if (limit === undefined) { return thresholds[threshold]; } thresholds[threshold] = limit; if (threshold === 's') { thresholds.ss = limit - 1; } return true; } function humanize (withSuffix) { if (!this.isValid()) { return this.localeData().invalidDate(); } var locale = this.localeData(); var output = relativeTime$1(this, !withSuffix, locale); if (withSuffix) { output = locale.pastFuture(+this, output); } return locale.postformat(output); } var abs$1 = Math.abs; function sign(x) { return ((x > 0) - (x < 0)) || +x; } function toISOString$1() { // for ISO strings we do not use the normal bubbling rules: // * milliseconds bubble up until they become hours // * days do not bubble at all // * months bubble up until they become years // This is because there is no context-free conversion between hours and days // (think of clock changes) // and also not between days and months (28-31 days per month) if (!this.isValid()) { return this.localeData().invalidDate(); } var seconds = abs$1(this._milliseconds) / 1000; var days = abs$1(this._days); var months = abs$1(this._months); var minutes, hours, years; // 3600 seconds -> 60 minutes -> 1 hour minutes = absFloor(seconds / 60); hours = absFloor(minutes / 60); seconds %= 60; minutes %= 60; // 12 months -> 1 year years = absFloor(months / 12); months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js var Y = years; var M = months; var D = days; var h = hours; var m = minutes; var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; var total = this.asSeconds(); if (!total) { // this is the same as C#'s (Noda) and python (isodate)... // but not other JS (goog.date) return 'P0D'; } var totalSign = total < 0 ? '-' : ''; var ymSign = sign(this._months) !== sign(total) ? '-' : ''; var daysSign = sign(this._days) !== sign(total) ? '-' : ''; var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; return totalSign + 'P' + (Y ? ymSign + Y + 'Y' : '') + (M ? ymSign + M + 'M' : '') + (D ? daysSign + D + 'D' : '') + ((h || m || s) ? 'T' : '') + (h ? hmsSign + h + 'H' : '') + (m ? hmsSign + m + 'M' : '') + (s ? hmsSign + s + 'S' : ''); } var proto$2 = Duration.prototype; proto$2.isValid = isValid$1; proto$2.abs = abs; proto$2.add = add$1; proto$2.subtract = subtract$1; proto$2.as = as; proto$2.asMilliseconds = asMilliseconds; proto$2.asSeconds = asSeconds; proto$2.asMinutes = asMinutes; proto$2.asHours = asHours; proto$2.asDays = asDays; proto$2.asWeeks = asWeeks; proto$2.asMonths = asMonths; proto$2.asQuarters = asQuarters; proto$2.asYears = asYears; proto$2.valueOf = valueOf$1; proto$2._bubble = bubble; proto$2.clone = clone$1; proto$2.get = get$2; proto$2.milliseconds = milliseconds; proto$2.seconds = seconds; proto$2.minutes = minutes; proto$2.hours = hours; proto$2.days = days; proto$2.weeks = weeks; proto$2.months = months; proto$2.years = years; proto$2.humanize = humanize; proto$2.toISOString = toISOString$1; proto$2.toString = toISOString$1; proto$2.toJSON = toISOString$1; proto$2.locale = locale; proto$2.localeData = localeData; proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); proto$2.lang = lang; // Side effect imports // FORMATTING addFormatToken('X', 0, 0, 'unix'); addFormatToken('x', 0, 0, 'valueOf'); // PARSING addRegexToken('x', matchSigned); addRegexToken('X', matchTimestamp); addParseToken('X', function (input, array, config) { config._d = new Date(parseFloat(input, 10) * 1000); }); addParseToken('x', function (input, array, config) { config._d = new Date(toInt(input)); }); // Side effect imports hooks.version = '2.24.0'; setHookCallback(createLocal); hooks.fn = proto; hooks.min = min; hooks.max = max; hooks.now = now; hooks.utc = createUTC; hooks.unix = createUnix; hooks.months = listMonths; hooks.isDate = isDate; hooks.locale = getSetGlobalLocale; hooks.invalid = createInvalid; hooks.duration = createDuration; hooks.isMoment = isMoment; hooks.weekdays = listWeekdays; hooks.parseZone = createInZone; hooks.localeData = getLocale; hooks.isDuration = isDuration; hooks.monthsShort = listMonthsShort; hooks.weekdaysMin = listWeekdaysMin; hooks.defineLocale = defineLocale; hooks.updateLocale = updateLocale; hooks.locales = listLocales; hooks.weekdaysShort = listWeekdaysShort; hooks.normalizeUnits = normalizeUnits; hooks.relativeTimeRounding = getSetRelativeTimeRounding; hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; hooks.calendarFormat = getCalendarFormat; hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats hooks.HTML5_FMT = { DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" /> DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" /> DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" /> DATE: 'YYYY-MM-DD', // <input type="date" /> TIME: 'HH:mm', // <input type="time" /> TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" /> TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" /> WEEK: 'GGGG-[W]WW', // <input type="week" /> MONTH: 'YYYY-MM' // <input type="month" /> }; return hooks; }))); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(18)(module))) /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { //! moment.js locale configuration ;(function (global, factory) { true ? factory(__webpack_require__(10)) : undefined }(this, (function (moment) { 'use strict'; function processRelativeTime(number, withoutSuffix, key, isFuture) { var format = { 'm': ['eine Minute', 'einer Minute'], 'h': ['eine Stunde', 'einer Stunde'], 'd': ['ein Tag', 'einem Tag'], 'dd': [number + ' Tage', number + ' Tagen'], 'M': ['ein Monat', 'einem Monat'], 'MM': [number + ' Monate', number + ' Monaten'], 'y': ['ein Jahr', 'einem Jahr'], 'yy': [number + ' Jahre', number + ' Jahren'] }; return withoutSuffix ? format[key][0] : format[key][1]; } var de = moment.defineLocale('de', { months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), monthsParseExact : true, weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), weekdaysParseExact : true, longDateFormat : { LT: 'HH:mm', LTS: 'HH:mm:ss', L : 'DD.MM.YYYY', LL : 'D. MMMM YYYY', LLL : 'D. MMMM YYYY HH:mm', LLLL : 'dddd, D. MMMM YYYY HH:mm' }, calendar : { sameDay: '[heute um] LT [Uhr]', sameElse: 'L', nextDay: '[morgen um] LT [Uhr]', nextWeek: 'dddd [um] LT [Uhr]', lastDay: '[gestern um] LT [Uhr]', lastWeek: '[letzten] dddd [um] LT [Uhr]' }, relativeTime : { future : 'in %s', past : 'vor %s', s : 'ein paar Sekunden', ss : '%d Sekunden', m : processRelativeTime, mm : '%d Minuten', h : processRelativeTime, hh : '%d Stunden', d : processRelativeTime, dd : processRelativeTime, M : processRelativeTime, MM : processRelativeTime, y : processRelativeTime, yy : processRelativeTime }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal : '%d.', week : { dow : 1, // Monday is the first day of the week. doy : 4 // The week that contains Jan 4th is the first week of the year. } }); return de; }))); /***/ }), /* 12 */ /***/ (function(module) { module.exports = JSON.parse("{\"AAA\":\"Pacific/Tahiti\",\"AAB\":\"Australia/Brisbane\",\"AAC\":\"Africa/Cairo\",\"AAD\":\"Africa/Mogadishu\",\"AAE\":\"Africa/Algiers\",\"AAF\":\"America/New_York\",\"AAG\":\"America/Sao_Paulo\",\"AAH\":\"Europe/Berlin\",\"AAI\":\"America/Belem\",\"AAJ\":\"America/Paramaribo\",\"AAK\":\"Pacific/Tarawa\",\"AAL\":\"Europe/Copenhagen\",\"AAM\":\"Africa/Johannesburg\",\"AAN\":\"Asia/Dubai\",\"AAO\":\"America/Caracas\",\"AAP\":\"Asia/Makassar\",\"AAQ\":\"Europe/Moscow\",\"AAR\":\"Europe/Copenhagen\",\"AAS\":\"Asia/Jayapura\",\"AAT\":\"Asia/Shanghai\",\"AAU\":\"Pacific/Apia\",\"AAV\":\"Asia/Manila\",\"AAW\":\"Asia/Karachi\",\"AAX\":\"America/Sao_Paulo\",\"AAY\":\"Asia/Aden\",\"ABA\":\"Asia/Krasnoyarsk\",\"ABB\":\"Africa/Lagos\",\"ABC\":\"Europe/Madrid\",\"ABD\":\"Asia/Tehran\",\"ABE\":\"America/New_York\",\"ABF\":\"Pacific/Tarawa\",\"ABG\":\"Australia/Brisbane\",\"ABH\":\"Australia/Brisbane\",\"ABI\":\"America/Chicago\",\"ABJ\":\"Africa/Abidjan\",\"ABK\":\"Africa/Addis_Ababa\",\"ABL\":\"America/Anchorage\",\"ABM\":\"Australia/Brisbane\",\"ABN\":\"America/Paramaribo\",\"ABO\":\"Africa/Abidjan\",\"ABP\":\"Pacific/Port_Moresby\",\"ABQ\":\"America/Denver\",\"ABR\":\"America/Chicago\",\"ABS\":\"Africa/Cairo\",\"ABT\":\"Asia/Riyadh\",\"ABU\":\"Asia/Makassar\",\"ABV\":\"Africa/Lagos\",\"ABW\":\"Pacific/Port_Moresby\",\"ABX\":\"Australia/Sydney\",\"ABY\":\"America/New_York\",\"ABZ\":\"Europe/London\",\"ACA\":\"America/Mexico_City\",\"ACB\":\"America/New_York\",\"ACC\":\"Africa/Accra\",\"ACD\":\"America/Bogota\",\"ACE\":\"Atlantic/Canary\",\"ACH\":\"Europe/Zurich\",\"ACI\":\"Europe/London\",\"ACJ\":\"Asia/Colombo\",\"ACK\":\"America/New_York\",\"ACL\":\"America/Bogota\",\"ACM\":\"America/Bogota\",\"ACN\":\"America/Matamoros\",\"ACO\":\"Europe/Zurich\",\"ACP\":\"Asia/Tehran\",\"ACR\":\"America/Bogota\",\"ACS\":\"Asia/Krasnoyarsk\",\"ACT\":\"America/Chicago\",\"ACU\":\"America/Panama\",\"ACV\":\"America/Los_Angeles\",\"ACX\":\"Asia/Shanghai\",\"ACY\":\"America/New_York\",\"ACZ\":\"Asia/Tehran\",\"ADA\":\"Europe/Istanbul\",\"ADB\":\"Europe/Istanbul\",\"ADC\":\"Pacific/Port_Moresby\",\"ADD\":\"Africa/Addis_Ababa\",\"ADE\":\"Asia/Aden\",\"ADF\":\"Europe/Istanbul\",\"ADG\":\"America/New_York\",\"ADH\":\"Asia/Yakutsk\",\"ADI\":\"Africa/Windhoek\",\"ADJ\":\"Asia/Amman\",\"ADK\":\"America/Adak\",\"ADL\":\"Australia/Adelaide\",\"ADM\":\"America/Chicago\",\"ADN\":\"America/Bogota\",\"ADO\":\"Australia/Adelaide\",\"ADP\":\"Asia/Colombo\",\"ADQ\":\"America/Anchorage\",\"ADR\":\"America/New_York\",\"ADS\":\"America/Chicago\",\"ADT\":\"America/Chicago\",\"ADU\":\"Asia/Tehran\",\"ADV\":\"Africa/Khartoum\",\"ADW\":\"America/New_York\",\"ADX\":\"Europe/London\",\"ADY\":\"Africa/Johannesburg\",\"ADZ\":\"America/Bogota\",\"AEA\":\"Pacific/Tarawa\",\"AEB\":\"Asia/Shanghai\",\"AED\":\"America/Anchorage\",\"AEE\":\"Africa/Juba\",\"AEG\":\"Asia/Jakarta\",\"AEH\":\"Africa/Ndjamena\",\"AEI\":\"Europe/Madrid\",\"AEK\":\"Pacific/Port_Moresby\",\"AEL\":\"America/Chicago\",\"AEM\":\"Asia/Vladivostok\",\"AEO\":\"Africa/Nouakchott\",\"AEP\":\"America/Argentina/Buenos_Aires\",\"AEQ\":\"Asia/Shanghai\",\"AER\":\"Europe/Moscow\",\"AES\":\"Europe/Oslo\",\"AET\":\"America/Anchorage\",\"AEU\":\"Asia/Tehran\",\"AEX\":\"America/Chicago\",\"AEY\":\"Atlantic/Reykjavik\",\"AFA\":\"America/Argentina/Buenos_Aires\",\"AFD\":\"Africa/Johannesburg\",\"AFF\":\"America/Denver\",\"AFI\":\"America/Bogota\",\"AFL\":\"America/Campo_Grande\",\"AFN\":\"America/New_York\",\"AFO\":\"America/Denver\",\"AFR\":\"Pacific/Port_Moresby\",\"AFS\":\"Asia/Tashkent\",\"AFT\":\"Pacific/Guadalcanal\",\"AFW\":\"America/Chicago\",\"AFY\":\"Europe/Istanbul\",\"AFZ\":\"Asia/Tehran\",\"AGA\":\"Africa/Casablanca\",\"AGB\":\"Europe/Berlin\",\"AGC\":\"America/New_York\",\"AGD\":\"Asia/Jayapura\",\"AGE\":\"Europe/Berlin\",\"AGF\":\"Europe/Paris\",\"AGG\":\"Pacific/Port_Moresby\",\"AGH\":\"Europe/Stockholm\",\"AGI\":\"America/Paramaribo\",\"AGJ\":\"Asia/Tokyo\",\"AGK\":\"Pacific/Port_Moresby\",\"AGL\":\"Pacific/Port_Moresby\",\"AGM\":\"America/Godthab\",\"AGN\":\"America/Anchorage\",\"AGO\":\"America/Chicago\",\"AGP\":\"Europe/Madrid\",\"AGQ\":\"Europe/Athens\",\"AGR\":\"Asia/Kolkata\",\"AGS\":\"America/New_York\",\"AGT\":\"America/Asuncion\",\"AGU\":\"America/Mexico_City\",\"AGV\":\"America/Caracas\",\"AGW\":\"Australia/Brisbane\",\"AGX\":\"Asia/Kolkata\",\"AGY\":\"Australia/Perth\",\"AGZ\":\"Africa/Johannesburg\",\"AHA\":\"Asia/Tokyo\",\"AHB\":\"Asia/Riyadh\",\"AHC\":\"America/Los_Angeles\",\"AHD\":\"America/Chicago\",\"AHE\":\"Pacific/Tahiti\",\"AHF\":\"America/Chicago\",\"AHH\":\"America/Chicago\",\"AHI\":\"Asia/Jayapura\",\"AHJ\":\"Asia/Shanghai\",\"AHL\":\"America/Guyana\",\"AHN\":\"America/New_York\",\"AHO\":\"Europe/Rome\",\"AHS\":\"America/Tegucigalpa\",\"AHT\":\"America/Adak\",\"AHU\":\"Africa/Casablanca\",\"AHY\":\"Indian/Antananarivo\",\"AHZ\":\"Europe/Paris\",\"AIA\":\"America/Denver\",\"AIB\":\"America/Anchorage\",\"AIC\":\"Pacific/Majuro\",\"AID\":\"America/Indiana/Indianapolis\",\"AIE\":\"Pacific/Port_Moresby\",\"AIF\":\"America/Sao_Paulo\",\"AIG\":\"Africa/Bangui\",\"AIH\":\"Pacific/Port_Moresby\",\"AII\":\"Africa/Djibouti\",\"AIK\":\"America/New_York\",\"AIL\":\"America/Panama\",\"AIM\":\"Pacific/Majuro\",\"AIN\":\"America/Anchorage\",\"AIO\":\"America/Chicago\",\"AIP\":\"Asia/Kolkata\",\"AIR\":\"America/Campo_Grande\",\"AIS\":\"Pacific/Tarawa\",\"AIT\":\"Pacific/Rarotonga\",\"AIU\":\"Pacific/Rarotonga\",\"AIV\":\"America/Chicago\",\"AIW\":\"Africa/Windhoek\",\"AIY\":\"America/New_York\",\"AIZ\":\"America/Chicago\",\"AJA\":\"Europe/Paris\",\"AJF\":\"Asia/Riyadh\",\"AJI\":\"Europe/Istanbul\",\"AJJ\":\"Africa/Nouakchott\",\"AJK\":\"Asia/Tehran\",\"AJL\":\"Asia/Kolkata\",\"AJN\":\"Indian/Comoro\",\"AJO\":\"Asia/Aden\",\"AJR\":\"Europe/Stockholm\",\"AJS\":\"America/Tijuana\",\"AJU\":\"America/Belem\",\"AJY\":\"Africa/Niamey\",\"AKA\":\"Asia/Shanghai\",\"AKB\":\"America/Adak\",\"AKC\":\"America/New_York\",\"AKD\":\"Asia/Kolkata\",\"AKE\":\"Africa/Libreville\",\"AKF\":\"Africa/Tripoli\",\"AKG\":\"Pacific/Port_Moresby\",\"AKH\":\"Asia/Riyadh\",\"AKI\":\"America/Anchorage\",\"AKJ\":\"Asia/Tokyo\",\"AKK\":\"America/Anchorage\",\"AKL\":\"Pacific/Auckland\",\"AKM\":\"Africa/Ndjamena\",\"AKN\":\"America/Anchorage\",\"AKO\":\"America/Denver\",\"AKP\":\"America/Anchorage\",\"AKQ\":\"Asia/Jakarta\",\"AKR\":\"Africa/Lagos\",\"AKS\":\"Pacific/Guadalcanal\",\"AKT\":\"Asia/Nicosia\",\"AKU\":\"Asia/Shanghai\",\"AKV\":\"America/Toronto\",\"AKW\":\"Asia/Tehran\",\"AKX\":\"Asia/Aqtobe\",\"AKY\":\"Asia/Yangon\",\"ALA\":\"Asia/Almaty\",\"ALB\":\"America/New_York\",\"ALC\":\"Europe/Madrid\",\"ALD\":\"America/Lima\",\"ALE\":\"America/Chicago\",\"ALF\":\"Europe/Oslo\",\"ALG\":\"Africa/Algiers\",\"ALH\":\"Australia/Perth\",\"ALI\":\"America/Chicago\",\"ALJ\":\"Africa/Johannesburg\",\"ALK\":\"Africa/Addis_Ababa\",\"ALL\":\"Europe/Rome\",\"ALM\":\"America/Denver\",\"ALN\":\"America/Chicago\",\"ALO\":\"America/Chicago\",\"ALP\":\"Asia/Damascus\",\"ALQ\":\"America/Sao_Paulo\",\"ALR\":\"Pacific/Auckland\",\"ALS\":\"America/Denver\",\"ALT\":\"America/Porto_Velho\",\"ALU\":\"Africa/Mogadishu\",\"ALV\":\"Europe/Andorra\",\"ALW\":\"America/Los_Angeles\",\"ALX\":\"America/Chicago\",\"ALY\":\"Africa/Cairo\",\"ALZ\":\"America/Anchorage\",\"AMA\":\"America/Chicago\",\"AMB\":\"Indian/Antananarivo\",\"AMC\":\"Africa/Ndjamena\",\"AMD\":\"Asia/Kolkata\",\"AME\":\"Africa/Maputo\",\"AMF\":\"Pacific/Port_Moresby\",\"AMG\":\"Pacific/Port_Moresby\",\"AMH\":\"Africa/Addis_Ababa\",\"AMI\":\"Asia/Makassar\",\"AMJ\":\"America/Sao_Paulo\",\"AMK\":\"America/Denver\",\"AML\":\"America/Panama\",\"AMM\":\"Asia/Amman\",\"AMN\":\"America/New_York\",\"AMO\":\"Africa/Ndjamena\",\"AMP\":\"Indian/Antananarivo\",\"AMQ\":\"Asia/Jayapura\",\"AMR\":\"Europe/Madrid\",\"AMS\":\"Europe/Amsterdam\",\"AMT\":\"Australia/Darwin\",\"AMU\":\"Pacific/Port_Moresby\",\"AMV\":\"Europe/Moscow\",\"AMW\":\"America/Chicago\",\"AMX\":\"Australia/Darwin\",\"AMY\":\"Indian/Antananarivo\",\"AMZ\":\"Pacific/Auckland\",\"ANA\":\"Africa/Nairobi\",\"ANB\":\"America/Chicago\",\"ANC\":\"America/Anchorage\",\"AND\":\"America/New_York\",\"ANE\":\"Europe/Paris\",\"ANF\":\"America/Santiago\",\"ANG\":\"Europe/Paris\",\"ANH\":\"Pacific/Guadalcanal\",\"ANI\":\"America/Anchorage\",\"ANJ\":\"Africa/Brazzaville\",\"ANK\":\"Europe/Istanbul\",\"ANL\":\"Africa/Luanda\",\"ANM\":\"Indian/Antananarivo\",\"ANN\":\"America/Anchorage\",\"ANO\":\"Africa/Maputo\",\"ANP\":\"America/New_York\",\"ANQ\":\"America/Indiana/Indianapolis\",\"ANR\":\"Europe/Brussels\",\"ANS\":\"America/Lima\",\"ANT\":\"Europe/Vienna\",\"ANU\":\"America/Antigua\",\"ANV\":\"America/Anchorage\",\"ANW\":\"America/Chicago\",\"ANX\":\"Europe/Oslo\",\"ANY\":\"America/Chicago\",\"ANZ\":\"Australia/Darwin\",\"AOA\":\"Pacific/Port_Moresby\",\"AOB\":\"Pacific/Port_Moresby\",\"AOC\":\"Europe/Berlin\",\"AOD\":\"Africa/Ndjamena\",\"AOE\":\"Europe/Istanbul\",\"AOG\":\"Asia/Shanghai\",\"AOH\":\"America/New_York\",\"AOI\":\"Europe/Rome\",\"AOJ\":\"Asia/Tokyo\",\"AOK\":\"Europe/Athens\",\"AOL\":\"America/Argentina/Buenos_Aires\",\"AOM\":\"Asia/Muscat\",\"AON\":\"Pacific/Port_Moresby\",\"AOO\":\"America/New_York\",\"AOP\":\"America/Lima\",\"AOQ\":\"America/Godthab\",\"AOR\":\"Asia/Kuala_Lumpur\",\"AOS\":\"America/Anchorage\",\"AOT\":\"Europe/Rome\",\"AOU\":\"Asia/Vientiane\",\"AOY\":\"Asia/Tehran\",\"APA\":\"America/Denver\",\"APB\":\"America/La_Paz\",\"APC\":\"America/Los_Angeles\",\"APE\":\"America/Lima\",\"APF\":\"America/New_York\",\"APG\":\"America/New_York\",\"APH\":\"America/New_York\",\"API\":\"America/Bogota\",\"APK\":\"Pacific/Tahiti\",\"APL\":\"Africa/Maputo\",\"APN\":\"America/New_York\",\"APO\":\"America/Bogota\",\"APP\":\"Pacific/Port_Moresby\",\"APQ\":\"America/Belem\",\"APR\":\"Pacific/Port_Moresby\",\"APS\":\"America/Sao_Paulo\",\"APT\":\"America/Chicago\",\"APU\":\"America/Sao_Paulo\",\"APV\":\"America/Los_Angeles\",\"APW\":\"Pacific/Apia\",\"APX\":\"America/Sao_Paulo\",\"APY\":\"America/Belem\",\"APZ\":\"America/Argentina/Buenos_Aires\",\"AQA\":\"America/Sao_Paulo\",\"AQG\":\"Asia/Shanghai\",\"AQI\":\"Asia/Riyadh\",\"AQJ\":\"Asia/Amman\",\"AQM\":\"America/Porto_Velho\",\"AQP\":\"America/Lima\",\"AQS\":\"Pacific/Fiji\",\"AQY\":\"America/Anchorage\",\"ARA\":\"America/Chicago\",\"ARB\":\"America/New_York\",\"ARC\":\"America/Anchorage\",\"ARD\":\"Asia/Makassar\",\"ARE\":\"America/Puerto_Rico\",\"ARF\":\"America/Bogota\",\"ARG\":\"America/Chicago\",\"ARH\":\"Europe/Moscow\",\"ARI\":\"America/Santiago\",\"ARJ\":\"Asia/Jayapura\",\"ARK\":\"Africa/Dar_es_Salaam\",\"ARL\":\"Africa/Ouagadougou\",\"ARM\":\"Australia/Sydney\",\"ARN\":\"Europe/Stockholm\",\"ARO\":\"America/Bogota\",\"ARP\":\"Pacific/Port_Moresby\",\"ARQ\":\"America/Bogota\",\"ARR\":\"America/Argentina/Buenos_Aires\",\"ARS\":\"America/Sao_Paulo\",\"ART\":\"America/New_York\",\"ARU\":\"America/Sao_Paulo\",\"ARV\":\"America/Chicago\",\"ARW\":\"Europe/Bucharest\",\"ARX\":\"America/Belem\",\"ARY\":\"Australia/Sydney\",\"ARZ\":\"Africa/Luanda\",\"ASA\":\"Africa/Asmara\",\"ASB\":\"Asia/Ashgabat\",\"ASC\":\"America/La_Paz\",\"ASD\":\"America/Nassau\",\"ASE\":\"America/Denver\",\"ASF\":\"Europe/Samara\",\"ASG\":\"Pacific/Auckland\",\"ASH\":\"America/New_York\",\"ASI\":\"Atlantic/St_Helena\",\"ASJ\":\"Asia/Tokyo\",\"ASK\":\"Africa/Abidjan\",\"ASL\":\"America/Chicago\",\"ASM\":\"Africa/Asmara\",\"ASN\":\"America/Chicago\",\"ASO\":\"Africa/Addis_Ababa\",\"ASP\":\"Australia/Darwin\",\"ASQ\":\"America/Los_Angeles\",\"ASR\":\"Europe/Istanbul\",\"ASS\":\"Africa/Johannesburg\",\"AST\":\"America/Los_Angeles\",\"ASU\":\"America/Asuncion\",\"ASV\":\"Africa/Nairobi\",\"ASW\":\"Africa/Cairo\",\"ASX\":\"America/Chicago\",\"ASY\":\"America/Chicago\",\"ASZ\":\"Pacific/Port_Moresby\",\"ATA\":\"America/Lima\",\"ATB\":\"Africa/Khartoum\",\"ATC\":\"America/Nassau\",\"ATD\":\"Pacific/Guadalcanal\",\"ATE\":\"America/Chicago\",\"ATF\":\"America/Guayaquil\",\"ATG\":\"Asia/Karachi\",\"ATH\":\"Europe/Athens\",\"ATI\":\"America/Montevideo\",\"ATJ\":\"Indian/Antananarivo\",\"ATK\":\"America/Anchorage\",\"ATL\":\"America/New_York\",\"ATM\":\"America/Belem\",\"ATN\":\"Pacific/Port_Moresby\",\"ATO\":\"America/New_York\",\"ATP\":\"Pacific/Port_Moresby\",\"ATQ\":\"Asia/Kolkata\",\"ATR\":\"Africa/Nouakchott\",\"ATS\":\"America/Denver\",\"ATT\":\"America/Anchorage\",\"ATU\":\"America/Adak\",\"ATV\":\"Africa/Ndjamena\",\"ATW\":\"America/Chicago\",\"ATX\":\"Asia/Almaty\",\"ATY\":\"America/Chicago\",\"ATZ\":\"Africa/Cairo\",\"AUA\":\"America/Aruba\",\"AUB\":\"America/Campo_Grande\",\"AUC\":\"America/Bogota\",\"AUD\":\"Australia/Brisbane\",\"AUE\":\"Africa/Cairo\",\"AUF\":\"Europe/Paris\",\"AUG\":\"America/New_York\",\"AUH\":\"Asia/Dubai\",\"AUI\":\"Pacific/Port_Moresby\",\"AUJ\":\"Pacific/Port_Moresby\",\"AUK\":\"America/Anchorage\",\"AUL\":\"Pacific/Majuro\",\"AUM\":\"America/Chicago\",\"AUN\":\"America/Los_Angeles\",\"AUO\":\"America/Chicago\",\"AUP\":\"Pacific/Port_Moresby\",\"AUQ\":\"Pacific/Marquesas\",\"AUR\":\"Europe/Paris\",\"AUS\":\"America/Chicago\",\"AUT\":\"Asia/Jayapura\",\"AUU\":\"Australia/Brisbane\",\"AUV\":\"Pacific/Port_Moresby\",\"AUW\":\"America/Chicago\",\"AUX\":\"America/Belem\",\"AUY\":\"Pacific/Efate\",\"AUZ\":\"America/Chicago\",\"AVA\":\"Asia/Shanghai\",\"AVB\":\"Europe/Rome\",\"AVF\":\"Europe/Paris\",\"AVG\":\"Australia/Darwin\",\"AVI\":\"America/Havana\",\"AVK\":\"Asia/Ulaanbaatar\",\"AVL\":\"America/New_York\",\"AVN\":\"Europe/Paris\",\"AVO\":\"America/New_York\",\"AVP\":\"America/New_York\",\"AVR\":\"Europe/Lisbon\",\"AVU\":\"Pacific/Guadalcanal\",\"AVV\":\"Australia/Sydney\",\"AVW\":\"America/Phoenix\",\"AVX\":\"America/Los_Angeles\",\"AWA\":\"Africa/Addis_Ababa\",\"AWB\":\"Pacific/Port_Moresby\",\"AWD\":\"Pacific/Efate\",\"AWE\":\"Africa/Libreville\",\"AWH\":\"Africa/Addis_Ababa\",\"AWK\":\"Pacific/Wake\",\"AWM\":\"America/Chicago\",\"AWN\":\"Australia/Adelaide\",\"AWP\":\"Australia/Darwin\",\"AWR\":\"Pacific/Port_Moresby\",\"AWT\":\"Asia/Kolkata\",\"AWZ\":\"Asia/Tehran\",\"AXA\":\"America/Anguilla\",\"AXB\":\"America/New_York\",\"AXC\":\"Australia/Brisbane\",\"AXD\":\"Europe/Athens\",\"AXE\":\"America/Sao_Paulo\",\"AXF\":\"Asia/Shanghai\",\"AXG\":\"America/Chicago\",\"AXJ\":\"Asia/Tokyo\",\"AXK\":\"Asia/Aden\",\"AXL\":\"Australia/Darwin\",\"AXM\":\"America/Bogota\",\"AXN\":\"America/Chicago\",\"AXP\":\"America/Nassau\",\"AXR\":\"Pacific/Tahiti\",\"AXS\":\"America/Chicago\",\"AXT\":\"Asia/Tokyo\",\"AXU\":\"Africa/Addis_Ababa\",\"AXV\":\"America/New_York\",\"AXX\":\"America/Denver\",\"AYA\":\"America/Bogota\",\"AYC\":\"America/Bogota\",\"AYD\":\"Australia/Darwin\",\"AYE\":\"America/New_York\",\"AYG\":\"America/Bogota\",\"AYH\":\"Europe/London\",\"AYI\":\"America/Bogota\",\"AYK\":\"Asia/Qostanay\",\"AYL\":\"Australia/Darwin\",\"AYN\":\"Asia/Shanghai\",\"AYO\":\"America/Asuncion\",\"AYP\":\"America/Lima\",\"AYQ\":\"Australia/Darwin\",\"AYR\":\"Australia/Brisbane\",\"AYS\":\"America/New_York\",\"AYT\":\"Europe/Istanbul\",\"AYU\":\"Pacific/Port_Moresby\",\"AYW\":\"Asia/Jayapura\",\"AYX\":\"America/Lima\",\"AYZ\":\"America/New_York\",\"AZA\":\"America/Phoenix\",\"AZB\":\"Pacific/Port_Moresby\",\"AZD\":\"Asia/Tehran\",\"AZG\":\"America/Mexico_City\",\"AZI\":\"Asia/Dubai\",\"AZN\":\"Asia/Tashkent\",\"AZO\":\"America/New_York\",\"AZP\":\"America/Mexico_City\",\"AZR\":\"Africa/Algiers\",\"AZS\":\"America/Santo_Domingo\",\"AZT\":\"America/Bogota\",\"AZZ\":\"Africa/Luanda\",\"BAA\":\"Pacific/Port_Moresby\",\"BAB\":\"America/Los_Angeles\",\"BAC\":\"America/Bogota\",\"BAD\":\"America/Chicago\",\"BAE\":\"Europe/Paris\",\"BAF\":\"America/New_York\",\"BAG\":\"Asia/Manila\",\"BAH\":\"Asia/Bahrain\",\"BAI\":\"America/Costa_Rica\",\"BAJ\":\"Pacific/Port_Moresby\",\"BAK\":\"Asia/Baku\",\"BAL\":\"Europe/Istanbul\",\"BAM\":\"America/Los_Angeles\",\"BAN\":\"Africa/Lubumbashi\",\"BAP\":\"Pacific/Port_Moresby\",\"BAQ\":\"America/Bogota\",\"BAR\":\"Asia/Shanghai\",\"BAS\":\"Pacific/Guadalcanal\",\"BAT\":\"America/Sao_Paulo\",\"BAV\":\"Asia/Shanghai\",\"BAW\":\"Africa/Libreville\",\"BAX\":\"Asia/Krasnoyarsk\",\"BAY\":\"Europe/Bucharest\",\"BAZ\":\"America/Porto_Velho\",\"BBA\":\"America/Santiago\",\"BBB\":\"America/Chicago\",\"BBC\":\"America/Chicago\",\"BBD\":\"America/Chicago\",\"BBE\":\"Australia/Perth\",\"BBF\":\"America/New_York\",\"BBG\":\"Pacific/Tarawa\",\"BBH\":\"Europe/Berlin\",\"BBI\":\"Asia/Kolkata\",\"BBJ\":\"Europe/Berlin\",\"BBK\":\"Africa/Gaborone\",\"BBL\":\"Australia/Brisbane\",\"BBM\":\"Asia/Phnom_Penh\",\"BBN\":\"Asia/Kuala_Lumpur\",\"BBO\":\"Africa/Mogadishu\",\"BBP\":\"Europe/London\",\"BBQ\":\"America/Antigua\",\"BBR\":\"America/Guadeloupe\",\"BBS\":\"Europe/London\",\"BBT\":\"Africa/Bangui\",\"BBU\":\"Europe/Bucharest\",\"BBV\":\"Africa/Abidjan\",\"BBW\":\"America/Chicago\",\"BBX\":\"America/New_York\",\"BBY\":\"Africa/Bangui\",\"BBZ\":\"Africa/Lusaka\",\"BCA\":\"America/Havana\",\"BCB\":\"America/New_York\",\"BCC\":\"America/Anchorage\",\"BCD\":\"Asia/Manila\",\"BCE\":\"America/Denver\",\"BCF\":\"Africa/Bangui\",\"BCG\":\"America/Guyana\",\"BCH\":\"Asia/Jayapura\",\"BCI\":\"Australia/Brisbane\",\"BCJ\":\"America/Denver\",\"BCK\":\"Australia/Brisbane\",\"BCL\":\"America/Costa_Rica\",\"BCM\":\"Europe/Bucharest\",\"BCN\":\"Europe/Madrid\",\"BCO\":\"Africa/Addis_Ababa\",\"BCP\":\"Pacific/Port_Moresby\",\"BCQ\":\"Africa/Tripoli\",\"BCR\":\"America/Porto_Velho\",\"BCS\":\"America/Chicago\",\"BCT\":\"America/New_York\",\"BCU\":\"Africa/Lagos\",\"BCV\":\"America/Belize\",\"BCW\":\"Africa/Maputo\",\"BCX\":\"Asia/Yekaterinburg\",\"BCY\":\"Africa/Addis_Ababa\",\"BCZ\":\"Australia/Darwin\",\"BDA\":\"Atlantic/Bermuda\",\"BDB\":\"Australia/Brisbane\",\"BDC\":\"America/Belem\",\"BDD\":\"Australia/Brisbane\",\"BDE\":\"America/Chicago\",\"BDF\":\"America/Chicago\",\"BDG\":\"America/Denver\",\"BDH\":\"Asia/Tehran\",\"BDI\":\"Indian/Mahe\",\"BDJ\":\"Asia/Makassar\",\"BDK\":\"Africa/Abidjan\",\"BDL\":\"America/New_York\",\"BDM\":\"Europe/Istanbul\",\"BDN\":\"Asia/Karachi\",\"BDO\":\"Asia/Jakarta\",\"BDP\":\"Asia/Kathmandu\",\"BDQ\":\"Asia/Kolkata\",\"BDR\":\"America/New_York\",\"BDS\":\"Europe/Rome\",\"BDT\":\"Africa/Kinshasa\",\"BDU\":\"Europe/Oslo\",\"BDV\":\"Africa/Lubumbashi\",\"BDW\":\"Australia/Perth\",\"BDX\":\"America/Denver\",\"BDY\":\"America/Los_Angeles\",\"BDZ\":\"Pacific/Port_Moresby\",\"BEA\":\"Pacific/Port_Moresby\",\"BEB\":\"Europe/London\",\"BEC\":\"America/Chicago\",\"BED\":\"America/New_York\",\"BEE\":\"Australia/Perth\",\"BEF\":\"America/Managua\",\"BEG\":\"Europe/Belgrade\",\"BEH\":\"America/New_York\",\"BEI\":\"Africa/Addis_Ababa\",\"BEJ\":\"Asia/Makassar\",\"BEK\":\"Asia/Kolkata\",\"BEL\":\"America/Belem\",\"BEM\":\"Africa/Casablanca\",\"BEN\":\"Africa/Tripoli\",\"BEO\":\"Australia/Sydney\",\"BEP\":\"Asia/Kolkata\",\"BEQ\":\"Europe/London\",\"BES\":\"Europe/Paris\",\"BET\":\"America/Anchorage\",\"BEU\":\"Australia/Brisbane\",\"BEV\":\"Asia/Jerusalem\",\"BEW\":\"Africa/Maputo\",\"BEX\":\"Europe/London\",\"BEY\":\"Asia/Beirut\",\"BEZ\":\"Pacific/Tarawa\",\"BFA\":\"America/Asuncion\",\"BFB\":\"America/Anchorage\",\"BFC\":\"Australia/Brisbane\",\"BFD\":\"America/New_York\",\"BFE\":\"Europe/Berlin\",\"BFF\":\"America/Denver\",\"BFG\":\"America/Denver\",\"BFH\":\"America/Sao_Paulo\",\"BFI\":\"America/Los_Angeles\",\"BFJ\":\"Asia/Shanghai\",\"BFK\":\"America/Denver\",\"BFL\":\"America/Los_Angeles\",\"BFM\":\"America/Chicago\",\"BFN\":\"Africa/Johannesburg\",\"BFO\":\"Africa/Harare\",\"BFP\":\"America/New_York\",\"BFQ\":\"America/Panama\",\"BFR\":\"America/Indiana/Indianapolis\",\"BFS\":\"Europe/London\",\"BFT\":\"America/New_York\",\"BFU\":\"Asia/Shanghai\",\"BFV\":\"Asia/Bangkok\",\"BFW\":\"Africa/Algiers\",\"BFX\":\"Africa/Douala\",\"BGA\":\"America/Bogota\",\"BGB\":\"Africa/Libreville\",\"BGC\":\"Europe/Lisbon\",\"BGD\":\"America/Chicago\",\"BGE\":\"America/New_York\",\"BGF\":\"Africa/Bangui\",\"BGG\":\"Europe/Istanbul\",\"BGH\":\"Africa/Nouakchott\",\"BGI\":\"America/Barbados\",\"BGJ\":\"Atlantic/Reykjavik\",\"BGK\":\"America/Belize\",\"BGL\":\"Asia/Kathmandu\",\"BGM\":\"America/New_York\",\"BGN\":\"Asia/Magadan\",\"BGO\":\"Europe/Oslo\",\"BGP\":\"Africa/Libreville\",\"BGQ\":\"America/Anchorage\",\"BGR\":\"America/New_York\",\"BGS\":\"America/Chicago\",\"BGT\":\"America/Phoenix\",\"BGU\":\"Africa/Bangui\",\"BGV\":\"America/Sao_Paulo\",\"BGW\":\"Asia/Baghdad\",\"BGX\":\"America/Sao_Paulo\",\"BGY\":\"Europe/Rome\",\"BGZ\":\"Europe/Lisbon\",\"BHA\":\"America/Guayaquil\",\"BHB\":\"America/New_York\",\"BHC\":\"Asia/Karachi\",\"BHD\":\"Europe/London\",\"BHE\":\"Pacific/Auckland\",\"BHF\":\"America/Bogota\",\"BHG\":\"America/Tegucigalpa\",\"BHH\":\"Asia/Riyadh\",\"BHI\":\"America/Argentina/Buenos_Aires\",\"BHJ\":\"Asia/Kolkata\",\"BHK\":\"Asia/Tashkent\",\"BHL\":\"America/Tijuana\",\"BHM\":\"America/Chicago\",\"BHN\":\"Asia/Aden\",\"BHO\":\"Asia/Kolkata\",\"BHP\":\"Asia/Kathmandu\",\"BHQ\":\"Australia/Adelaide\",\"BHR\":\"Asia/Kathmandu\",\"BHS\":\"Australia/Sydney\",\"BHT\":\"Australia/Brisbane\",\"BHU\":\"Asia/Kolkata\",\"BHV\":\"Asia/Karachi\",\"BHW\":\"Asia/Karachi\",\"BHX\":\"Europe/London\",\"BHY\":\"Asia/Shanghai\",\"BIA\":\"Europe/Paris\",\"BIB\":\"Africa/Mogadishu\",\"BIC\":\"America/Anchorage\",\"BID\":\"America/New_York\",\"BIE\":\"America/Chicago\",\"BIF\":\"America/Denver\",\"BIG\":\"America/Anchorage\",\"BIH\":\"America/Los_Angeles\",\"BII\":\"Pacific/Majuro\",\"BIJ\":\"Pacific/Port_Moresby\",\"BIK\":\"Asia/Jayapura\",\"BIL\":\"America/Denver\",\"BIM\":\"America/Nassau\",\"BIN\":\"Asia/Kabul\",\"BIO\":\"Europe/Madrid\",\"BIP\":\"Australia/Brisbane\",\"BIQ\":\"Europe/Paris\",\"BIR\":\"Asia/Kathmandu\",\"BIS\":\"America/Chicago\",\"BIT\":\"Asia/Kathmandu\",\"BIU\":\"Atlantic/Reykjavik\",\"BIV\":\"Africa/Bangui\",\"BIW\":\"Australia/Perth\",\"BIX\":\"America/Chicago\",\"BIY\":\"Africa/Johannesburg\",\"BIZ\":\"Pacific/Port_Moresby\",\"BJA\":\"Africa/Algiers\",\"BJB\":\"Asia/Tehran\",\"BJC\":\"America/Denver\",\"BJD\":\"Atlantic/Reykjavik\",\"BJE\":\"Africa/Khartoum\",\"BJF\":\"Europe/Oslo\",\"BJG\":\"Asia/Makassar\",\"BJH\":\"Asia/Kathmandu\",\"BJI\":\"America/Chicago\",\"BJJ\":\"America/New_York\",\"BJK\":\"Asia/Jayapura\",\"BJL\":\"Africa/Banjul\",\"BJM\":\"Africa/Bujumbura\",\"BJN\":\"Africa/Maputo\",\"BJO\":\"America/La_Paz\",\"BJP\":\"America/Sao_Paulo\",\"BJQ\":\"Asia/Muscat\",\"BJR\":\"Africa/Addis_Ababa\",\"BJT\":\"Asia/Colombo\",\"BJU\":\"Asia/Kathmandu\",\"BJV\":\"Europe/Istanbul\",\"BJW\":\"Asia/Makassar\",\"BJX\":\"America/Mexico_City\",\"BJY\":\"Europe/Belgrade\",\"BJZ\":\"Europe/Madrid\",\"BKB\":\"Asia/Kolkata\",\"BKC\":\"America/Anchorage\",\"BKD\":\"America/Chicago\",\"BKE\":\"America/Los_Angeles\",\"BKF\":\"America/Anchorage\",\"BKG\":\"America/Chicago\",\"BKH\":\"Pacific/Honolulu\",\"BKI\":\"Asia/Kuala_Lumpur\",\"BKJ\":\"Africa/Conakry\",\"BKK\":\"Asia/Bangkok\",\"BKL\":\"America/New_York\",\"BKM\":\"Asia/Kuala_Lumpur\",\"BKN\":\"Asia/Ashgabat\",\"BKO\":\"Africa/Bamako\",\"BKP\":\"Australia/Brisbane\",\"BKQ\":\"Australia/Brisbane\",\"BKR\":\"Africa/Ndjamena\",\"BKS\":\"Asia/Jakarta\",\"BKT\":\"America/New_York\",\"BKU\":\"Indian/Antananarivo\",\"BKV\":\"Asia/Shanghai\",\"BKW\":\"America/New_York\",\"BKX\":\"America/Chicago\",\"BKY\":\"Africa/Lubumbashi\",\"BKZ\":\"Africa/Dar_es_Salaam\",\"BLA\":\"America/Caracas\",\"BLB\":\"America/Panama\",\"BLC\":\"Africa/Douala\",\"BLD\":\"America/Los_Angeles\",\"BLE\":\"Europe/Stockholm\",\"BLF\":\"America/New_York\",\"BLG\":\"Asia/Kuala_Lumpur\",\"BLH\":\"America/Los_Angeles\",\"BLI\":\"America/Los_Angeles\",\"BLJ\":\"Africa/Algiers\",\"BLK\":\"Europe/London\",\"BLL\":\"Europe/Copenhagen\",\"BLM\":\"America/New_York\",\"BLN\":\"Australia/Sydney\",\"BLO\":\"Atlantic/Reykjavik\",\"BLP\":\"America/Lima\",\"BLQ\":\"Europe/Rome\",\"BLR\":\"Asia/Kolkata\",\"BLS\":\"Australia/Brisbane\",\"BLT\":\"Australia/Brisbane\",\"BLU\":\"America/Los_Angeles\",\"BLV\":\"America/Chicago\",\"BLW\":\"Africa/Mogadishu\",\"BLX\":\"Europe/Rome\",\"BLY\":\"Europe/Dublin\",\"BLZ\":\"Africa/Blantyre\",\"BMA\":\"Europe/Stockholm\",\"BMB\":\"Africa/Kinshasa\",\"BMC\":\"America/Denver\",\"BMD\":\"Indian/Antananarivo\",\"BME\":\"Australia/Perth\",\"BMF\":\"Africa/Bangui\",\"BMG\":\"America/Indiana/Indianapolis\",\"BMH\":\"Pacific/Port_Moresby\",\"BMI\":\"America/Chicago\",\"BMJ\":\"America/Guyana\",\"BMK\":\"Europe/Berlin\",\"BML\":\"America/New_York\",\"BMM\":\"Africa/Libreville\",\"BMN\":\"Asia/Baghdad\",\"BMO\":\"Asia/Yangon\",\"BMP\":\"Australia/Brisbane\",\"BMQ\":\"Africa/Nairobi\",\"BMR\":\"Europe/Berlin\",\"BMS\":\"America/Belem\",\"BMT\":\"America/Chicago\",\"BMU\":\"Asia/Makassar\",\"BMV\":\"Asia/Ho_Chi_Minh\",\"BMW\":\"Africa/Algiers\",\"BMX\":\"America/Anchorage\",\"BMY\":\"Pacific/Noumea\",\"BMZ\":\"Pacific/Port_Moresby\",\"BNA\":\"America/Chicago\",\"BNB\":\"Africa/Kinshasa\",\"BNC\":\"Africa/Lubumbashi\",\"BND\":\"Asia/Tehran\",\"BNE\":\"Australia/Brisbane\",\"BNF\":\"America/Anchorage\",\"BNG\":\"America/Los_Angeles\",\"BNH\":\"America/New_York\",\"BNI\":\"Africa/Lagos\",\"BNK\":\"Australia/Sydney\",\"BNL\":\"America/New_York\",\"BNM\":\"Pacific/Port_Moresby\",\"BNN\":\"Europe/Oslo\",\"BNO\":\"America/Los_Angeles\",\"BNP\":\"Asia/Karachi\",\"BNQ\":\"Asia/Manila\",\"BNR\":\"Africa/Ouagadougou\",\"BNS\":\"America/Caracas\",\"BNT\":\"Pacific/Port_Moresby\",\"BNU\":\"America/Sao_Paulo\",\"BNV\":\"Pacific/Port_Moresby\",\"BNW\":\"America/Chicago\",\"BNX\":\"Europe/Sarajevo\",\"BNY\":\"Pacific/Guadalcanal\",\"BNZ\":\"Pacific/Port_Moresby\",\"BOA\":\"Africa/Kinshasa\",\"BOB\":\"Pacific/Tahiti\",\"BOC\":\"America/Panama\",\"BOD\":\"Europe/Paris\",\"BOE\":\"Africa/Brazzaville\",\"BOF\":\"America/New_York\",\"BOG\":\"America/Bogota\",\"BOH\":\"Europe/London\",\"BOI\":\"America/Denver\",\"BOJ\":\"Europe/Sofia\",\"BOK\":\"America/Los_Angeles\",\"BOL\":\"Europe/London\",\"BOM\":\"Asia/Kolkata\",\"BON\":\"America/Curacao\",\"BOO\":\"Europe/Oslo\",\"BOP\":\"Africa/Bangui\",\"BOQ\":\"Pacific/Port_Moresby\",\"BOR\":\"Europe/Paris\",\"BOS\":\"America/New_York\",\"BOT\":\"Pacific/Port_Moresby\",\"BOU\":\"Europe/Paris\",\"BOV\":\"Pacific/Port_Moresby\",\"BOW\":\"America/New_York\",\"BOX\":\"Australia/Darwin\",\"BOY\":\"Africa/Ouagadougou\",\"BOZ\":\"Africa/Bangui\",\"BPA\":\"America/New_York\",\"BPB\":\"Pacific/Port_Moresby\",\"BPC\":\"Africa/Douala\",\"BPD\":\"Pacific/Port_Moresby\",\"BPE\":\"Asia/Shanghai\",\"BPF\":\"Pacific/Guadalcanal\",\"BPG\":\"America/Campo_Grande\",\"BPH\":\"Asia/Manila\",\"BPI\":\"America/Denver\",\"BPK\":\"Pacific/Port_Moresby\",\"BPL\":\"Asia/Shanghai\",\"BPN\":\"Asia/Makassar\",\"BPS\":\"America/Belem\",\"BPT\":\"America/Chicago\",\"BPU\":\"Asia/Tokyo\",\"BPX\":\"Asia/Shanghai\",\"BPY\":\"Indian/Antananarivo\",\"BQA\":\"Asia/Manila\",\"BQB\":\"Australia/Perth\",\"BQE\":\"Africa/Bissau\",\"BQG\":\"Asia/Vladivostok\",\"BQH\":\"Europe/London\",\"BQI\":\"Africa/Windhoek\",\"BQJ\":\"Asia/Vladivostok\",\"BQK\":\"America/New_York\",\"BQL\":\"Australia/Brisbane\",\"BQN\":\"America/Puerto_Rico\",\"BQO\":\"Africa/Abidjan\",\"BQQ\":\"America/Belem\",\"BQS\":\"Asia/Yakutsk\",\"BQT\":\"Europe/Minsk\",\"BQU\":\"America/St_Vincent\",\"BQV\":\"America/Anchorage\",\"BQW\":\"Australia/Perth\",\"BRA\":\"America/Belem\",\"BRB\":\"America/Belem\",\"BRC\":\"America/Argentina/Buenos_Aires\",\"BRD\":\"America/Chicago\",\"BRE\":\"Europe/Berlin\",\"BRG\":\"America/New_York\",\"BRH\":\"Pacific/Port_Moresby\",\"BRI\":\"Europe/Rome\",\"BRJ\":\"Australia/Sydney\",\"BRK\":\"Australia/Sydney\",\"BRL\":\"America/Chicago\",\"BRM\":\"America/Caracas\",\"BRN\":\"Europe/Zurich\",\"BRO\":\"America/Chicago\",\"BRP\":\"Pacific/Port_Moresby\",\"BRQ\":\"Europe/Prague\",\"BRR\":\"Europe/London\",\"BRS\":\"Europe/London\",\"BRT\":\"Australia/Darwin\",\"BRU\":\"Europe/Brussels\",\"BRV\":\"Europe/Berlin\",\"BRW\":\"America/Anchorage\",\"BRX\":\"America/Santo_Domingo\",\"BRY\":\"America/New_York\",\"BSA\":\"Africa/Mogadishu\",\"BSB\":\"America/Sao_Paulo\",\"BSC\":\"America/Bogota\",\"BSD\":\"Asia/Shanghai\",\"BSE\":\"Asia/Kuala_Lumpur\",\"BSF\":\"Pacific/Honolulu\",\"BSG\":\"Africa/Malabo\",\"BSH\":\"Europe/London\",\"BSI\":\"Asia/Manila\",\"BSJ\":\"Australia/Sydney\",\"BSK\":\"Africa/Algiers\",\"BSL\":\"Europe/Paris\",\"BSM\":\"Asia/Tehran\",\"BSN\":\"Africa/Bangui\",\"BSO\":\"Asia/Manila\",\"BSP\":\"Pacific/Port_Moresby\",\"BSQ\":\"America/Phoenix\",\"BSR\":\"Asia/Baghdad\",\"BSS\":\"America/Belem\",\"BST\":\"Asia/Kabul\",\"BSU\":\"Africa/Kinshasa\",\"BSV\":\"Indian/Antananarivo\",\"BSW\":\"America/Anchorage\",\"BSX\":\"Asia/Yangon\",\"BSY\":\"Africa/Mogadishu\",\"BSZ\":\"America/Anchorage\",\"BTA\":\"Africa/Douala\",\"BTB\":\"Africa/Brazzaville\",\"BTC\":\"Asia/Colombo\",\"BTD\":\"Australia/Darwin\",\"BTE\":\"Africa/Freetown\",\"BTF\":\"America/Denver\",\"BTG\":\"Africa/Bangui\",\"BTH\":\"Asia/Jakarta\",\"BTI\":\"America/Anchorage\",\"BTJ\":\"Asia/Jakarta\",\"BTK\":\"Asia/Irkutsk\",\"BTL\":\"America/New_York\",\"BTM\":\"America/Denver\",\"BTN\":\"America/New_York\",\"BTO\":\"America/Paramaribo\",\"BTP\":\"America/New_York\",\"BTQ\":\"Africa/Kigali\",\"BTR\":\"America/Chicago\",\"BTS\":\"Europe/Bratislava\",\"BTT\":\"America/Anchorage\",\"BTU\":\"Asia/Kuala_Lumpur\",\"BTV\":\"America/New_York\",\"BTW\":\"Asia/Makassar\",\"BTX\":\"Australia/Brisbane\",\"BTY\":\"America/Los_Angeles\",\"BUA\":\"Pacific/Bougainville\",\"BUB\":\"America/Chicago\",\"BUC\":\"Australia/Brisbane\",\"BUD\":\"Europe/Budapest\",\"BUF\":\"America/New_York\",\"BUG\":\"Africa/Luanda\",\"BUI\":\"Asia/Jayapura\",\"BUJ\":\"Africa/Algiers\",\"BUK\":\"Asia/Aden\",\"BUL\":\"Pacific/Port_Moresby\",\"BUM\":\"America/Chicago\",\"BUN\":\"America/Bogota\",\"BUO\":\"Africa/Mogadishu\",\"BUP\":\"Asia/Kolkata\",\"BUQ\":\"Africa/Harare\",\"BUR\":\"America/Los_Angeles\",\"BUS\":\"Asia/Tbilisi\",\"BUT\":\"Asia/Thimphu\",\"BUU\":\"Asia/Jakarta\",\"BUV\":\"America/Montevideo\",\"BUW\":\"Asia/Makassar\",\"BUX\":\"Africa/Lubumbashi\",\"BUY\":\"Australia/Perth\",\"BUZ\":\"Asia/Tehran\",\"BVA\":\"Europe/Paris\",\"BVB\":\"America/Porto_Velho\",\"BVC\":\"Atlantic/Cape_Verde\",\"BVD\":\"America/Anchorage\",\"BVE\":\"Europe/Paris\",\"BVF\":\"Pacific/Fiji\",\"BVG\":\"Europe/Oslo\",\"BVH\":\"America/Porto_Velho\",\"BVI\":\"Australia/Brisbane\",\"BVJ\":\"Asia/Yekaterinburg\",\"BVK\":\"America/La_Paz\",\"BVL\":\"America/La_Paz\",\"BVM\":\"America/Belem\",\"BVO\":\"America/Chicago\",\"BVP\":\"Pacific/Port_Moresby\",\"BVR\":\"Atlantic/Cape_Verde\",\"BVS\":\"America/Belem\",\"BVU\":\"America/Anchorage\",\"BVV\":\"Asia/Magadan\",\"BVW\":\"Australia/Brisbane\",\"BVX\":\"America/Chicago\",\"BVY\":\"America/New_York\",\"BVZ\":\"Australia/Perth\",\"BWA\":\"Asia/Kathmandu\",\"BWB\":\"Australia/Perth\",\"BWC\":\"America/Los_Angeles\",\"BWD\":\"America/Chicago\",\"BWE\":\"Europe/Berlin\",\"BWF\":\"Europe/London\",\"BWG\":\"America/Chicago\",\"BWH\":\"Asia/Kuala_Lumpur\",\"BWI\":\"America/New_York\",\"BWJ\":\"Pacific/Port_Moresby\",\"BWK\":\"Europe/Zagreb\",\"BWL\":\"America/Chicago\",\"BWM\":\"America/Denver\",\"BWN\":\"Asia/Brunei\",\"BWO\":\"Europe/Saratov\",\"BWP\":\"Pacific/Port_Moresby\",\"BWQ\":\"Australia/Sydney\",\"BWS\":\"America/Los_Angeles\",\"BWT\":\"Australia/Hobart\",\"BWU\":\"Australia/Sydney\",\"BWX\":\"Asia/Jakarta\",\"BWY\":\"Europe/London\",\"BXA\":\"America/Chicago\",\"BXB\":\"Asia/Jayapura\",\"BXC\":\"America/New_York\",\"BXD\":\"Asia/Jayapura\",\"BXE\":\"Africa/Dakar\",\"BXF\":\"Australia/Perth\",\"BXG\":\"Australia/Sydney\",\"BXH\":\"Asia/Almaty\",\"BXI\":\"Africa/Abidjan\",\"BXJ\":\"Asia/Almaty\",\"BXK\":\"America/Phoenix\",\"BXL\":\"Pacific/Fiji\",\"BXM\":\"Asia/Jayapura\",\"BXN\":\"Europe/Istanbul\",\"BXO\":\"Europe/Zurich\",\"BXR\":\"Asia/Tehran\",\"BXS\":\"America/Los_Angeles\",\"BXT\":\"Asia/Makassar\",\"BXU\":\"Asia/Manila\",\"BXV\":\"Atlantic/Reykjavik\",\"BXX\":\"Africa/Mogadishu\",\"BXY\":\"Asia/Qyzylorda\",\"BXZ\":\"Pacific/Port_Moresby\",\"BYA\":\"America/Anchorage\",\"BYB\":\"Asia/Muscat\",\"BYC\":\"America/La_Paz\",\"BYD\":\"Asia/Aden\",\"BYF\":\"Europe/Paris\",\"BYG\":\"America/Denver\",\"BYH\":\"America/Chicago\",\"BYI\":\"America/Denver\",\"BYJ\":\"Europe/Lisbon\",\"BYK\":\"Africa/Abidjan\",\"BYL\":\"Africa/Monrovia\",\"BYM\":\"America/Havana\",\"BYN\":\"Asia/Ulaanbaatar\",\"BYO\":\"America/Campo_Grande\",\"BYP\":\"Australia/Perth\",\"BYQ\":\"Asia/Makassar\",\"BYR\":\"Europe/Copenhagen\",\"BYS\":\"America/Los_Angeles\",\"BYT\":\"Europe/Dublin\",\"BYU\":\"Europe/Berlin\",\"BYW\":\"America/Los_Angeles\",\"BYX\":\"Australia/Darwin\",\"BZA\":\"America/Managua\",\"BZB\":\"Africa/Maputo\",\"BZC\":\"America/Sao_Paulo\",\"BZD\":\"Australia/Sydney\",\"BZE\":\"America/Belize\",\"BZF\":\"America/Los_Angeles\",\"BZG\":\"Europe/Warsaw\",\"BZH\":\"Africa/Harare\",\"BZI\":\"Europe/Istanbul\",\"BZK\":\"Europe/Moscow\",\"BZL\":\"Asia/Dhaka\",\"BZM\":\"Indian/Antananarivo\",\"BZN\":\"America/Denver\",\"BZO\":\"Europe/Rome\",\"BZP\":\"Australia/Brisbane\",\"BZR\":\"Europe/Paris\",\"BZS\":\"America/New_York\",\"BZT\":\"America/Chicago\",\"BZU\":\"Africa/Lubumbashi\",\"BZV\":\"Africa/Brazzaville\",\"BZX\":\"Asia/Shanghai\",\"BZY\":\"Europe/Chisinau\",\"BZZ\":\"Europe/London\",\"CAA\":\"America/Tegucigalpa\",\"CAB\":\"Africa/Luanda\",\"CAC\":\"America/Sao_Paulo\",\"CAD\":\"America/New_York\",\"CAE\":\"America/New_York\",\"CAF\":\"America/Porto_Velho\",\"CAG\":\"Europe/Rome\",\"CAH\":\"Asia/Ho_Chi_Minh\",\"CAI\":\"Africa/Cairo\",\"CAJ\":\"America/Caracas\",\"CAK\":\"America/New_York\",\"CAL\":\"Europe/London\",\"CAM\":\"America/La_Paz\",\"CAN\":\"Asia/Shanghai\",\"CAO\":\"America/Denver\",\"CAP\":\"America/Port-au-Prince\",\"CAQ\":\"America/Bogota\",\"CAR\":\"America/New_York\",\"CAS\":\"Africa/Casablanca\",\"CAT\":\"Europe/Lisbon\",\"CAU\":\"America/Belem\",\"CAV\":\"Africa/Luanda\",\"CAW\":\"America/Sao_Paulo\",\"CAX\":\"Europe/London\",\"CAY\":\"America/Cayenne\",\"CAZ\":\"Australia/Sydney\",\"CBA\":\"America/Anchorage\",\"CBB\":\"America/La_Paz\",\"CBC\":\"Australia/Perth\",\"CBD\":\"Asia/Kolkata\",\"CBE\":\"America/New_York\",\"CBF\":\"America/Chicago\",\"CBG\":\"Europe/London\",\"CBH\":\"Africa/Algiers\",\"CBI\":\"Australia/Hobart\",\"CBJ\":\"America/Santo_Domingo\",\"CBK\":\"America/Chicago\",\"CBL\":\"America/Caracas\",\"CBM\":\"America/Chicago\",\"CBN\":\"Asia/Jakarta\",\"CBO\":\"Asia/Manila\",\"CBP\":\"Europe/Lisbon\",\"CBQ\":\"Africa/Lagos\",\"CBR\":\"Australia/Sydney\",\"CBS\":\"America/Caracas\",\"CBT\":\"Africa/Luanda\",\"CBU\":\"Europe/Berlin\",\"CBV\":\"America/Guatemala\",\"CBW\":\"America/Sao_Paulo\",\"CBX\":\"Australia/Sydney\",\"CBY\":\"Australia/Brisbane\",\"CBZ\":\"America/Anchorage\",\"CCA\":\"America/La_Paz\",\"CCB\":\"America/Los_Angeles\",\"CCC\":\"America/Havana\",\"CCD\":\"America/Los_Angeles\",\"CCE\":\"Africa/Cairo\",\"CCF\":\"Europe/Paris\",\"CCG\":\"America/Chicago\",\"CCH\":\"America/Santiago\",\"CCI\":\"America/Sao_Paulo\",\"CCJ\":\"Asia/Kolkata\",\"CCK\":\"Indian/Cocos\",\"CCL\":\"Australia/Brisbane\",\"CCM\":\"America/Sao_Paulo\",\"CCN\":\"Asia/Kabul\",\"CCO\":\"America/Bogota\",\"CCP\":\"America/Santiago\",\"CCQ\":\"America/Belem\",\"CCR\":\"America/Los_Angeles\",\"CCS\":\"America/Caracas\",\"CCT\":\"America/Argentina/Buenos_Aires\",\"CCU\":\"Asia/Kolkata\",\"CCV\":\"Pacific/Efate\",\"CCW\":\"Australia/Adelaide\",\"CCX\":\"America/Campo_Grande\",\"CCY\":\"America/Chicago\",\"CCZ\":\"America/Nassau\",\"CDA\":\"Australia/Darwin\",\"CDB\":\"America/Anchorage\",\"CDC\":\"America/Denver\",\"CDD\":\"America/Tegucigalpa\",\"CDE\":\"Asia/Shanghai\",\"CDF\":\"Europe/Rome\",\"CDG\":\"Europe/Paris\",\"CDH\":\"America/Chicago\",\"CDI\":\"America/Sao_Paulo\",\"CDJ\":\"America/Belem\",\"CDK\":\"America/New_York\",\"CDL\":\"America/Anchorage\",\"CDN\":\"America/New_York\",\"CDO\":\"Africa/Johannesburg\",\"CDP\":\"Asia/Kolkata\",\"CDQ\":\"Australia/Brisbane\",\"CDR\":\"America/Denver\",\"CDS\":\"America/Chicago\",\"CDT\":\"Europe/Madrid\",\"CDU\":\"Australia/Sydney\",\"CDV\":\"America/Anchorage\",\"CDW\":\"America/New_York\",\"CDY\":\"Asia/Manila\",\"CDZ\":\"Europe/Madrid\",\"CEA\":\"America/Chicago\",\"CEB\":\"Asia/Manila\",\"CEC\":\"America/Los_Angeles\",\"CED\":\"Australia/Adelaide\",\"CEE\":\"Europe/Moscow\",\"CEF\":\"America/New_York\",\"CEG\":\"Europe/London\",\"CEH\":\"Africa/Blantyre\",\"CEI\":\"Asia/Bangkok\",\"CEK\":\"Asia/Yekaterinburg\",\"CEM\":\"America/Anchorage\",\"CEN\":\"America/Hermosillo\",\"CEO\":\"Africa/Luanda\",\"CEP\":\"America/La_Paz\",\"CEQ\":\"Europe/Paris\",\"CER\":\"Europe/Paris\",\"CES\":\"Australia/Sydney\",\"CET\":\"Europe/Paris\",\"CEU\":\"America/New_York\",\"CEV\":\"America/Indiana/Indianapolis\",\"CEW\":\"America/New_York\",\"CEX\":\"America/Anchorage\",\"CEY\":\"America/Chicago\",\"CEZ\":\"America/Denver\",\"CFA\":\"America/Anchorage\",\"CFB\":\"America/Sao_Paulo\",\"CFC\":\"America/Sao_Paulo\",\"CFD\":\"America/Chicago\",\"CFE\":\"Europe/Paris\",\"CFF\":\"Africa/Luanda\",\"CFG\":\"America/Havana\",\"CFH\":\"Australia/Adelaide\",\"CFI\":\"Australia/Darwin\",\"CFK\":\"Africa/Algiers\",\"CFM\":\"America/Edmonton\",\"CFN\":\"Europe/Dublin\",\"CFO\":\"America/Campo_Grande\",\"CFP\":\"Australia/Brisbane\",\"CFQ\":\"America/Vancouver\",\"CFR\":\"Europe/Paris\",\"CFS\":\"Australia/Sydney\",\"CFT\":\"America/Phoenix\",\"CFU\":\"Europe/Athens\",\"CFV\":\"America/Chicago\",\"CGA\":\"America/Anchorage\",\"CGB\":\"America/Campo_Grande\",\"CGC\":\"Pacific/Port_Moresby\",\"CGD\":\"Asia/Shanghai\",\"CGE\":\"America/New_York\",\"CGF\":\"America/New_York\",\"CGG\":\"Asia/Manila\",\"CGH\":\"America/Sao_Paulo\",\"CGI\":\"America/Chicago\",\"CGJ\":\"Africa/Lusaka\",\"CGK\":\"Asia/Jakarta\",\"CGM\":\"Asia/Manila\",\"CGN\":\"Europe/Berlin\",\"CGO\":\"Asia/Shanghai\",\"CGP\":\"Asia/Dhaka\",\"CGQ\":\"Asia/Shanghai\",\"CGR\":\"America/Campo_Grande\",\"CGS\":\"America/New_York\",\"CGT\":\"Africa/Nouakchott\",\"CGV\":\"Australia/Perth\",\"CGY\":\"Asia/Manila\",\"CGZ\":\"America/Phoenix\",\"CHA\":\"America/New_York\",\"CHB\":\"Asia/Karachi\",\"CHC\":\"Pacific/Auckland\",\"CHE\":\"Europe/Tallinn\",\"CHF\":\"Asia/Seoul\",\"CHG\":\"Asia/Shanghai\",\"CHH\":\"America/Lima\",\"CHJ\":\"Africa/Harare\",\"CHK\":\"America/Chicago\",\"CHL\":\"America/Denver\",\"CHM\":\"America/Lima\",\"CHN\":\"Asia/Seoul\",\"CHO\":\"America/New_York\",\"CHP\":\"America/Anchorage\",\"CHQ\":\"Europe/Athens\",\"CHR\":\"Europe/Paris\",\"CHS\":\"America/New_York\",\"CHT\":\"Pacific/Chatham\",\"CHU\":\"America/Anchorage\",\"CHV\":\"Europe/Lisbon\",\"CHX\":\"America/Panama\",\"CHY\":\"Pacific/Guadalcanal\",\"CHZ\":\"America/Los_Angeles\",\"CIA\":\"Europe/Rome\",\"CIC\":\"America/Los_Angeles\",\"CID\":\"America/Chicago\",\"CIE\":\"Australia/Perth\",\"CIF\":\"Asia/Shanghai\",\"CIG\":\"America/Denver\",\"CIH\":\"Asia/Shanghai\",\"CIJ\":\"America/La_Paz\",\"CIK\":\"America/Anchorage\",\"CIL\":\"America/Anchorage\",\"CIM\":\"America/Bogota\",\"CIN\":\"America/Chicago\",\"CIO\":\"America/Asuncion\",\"CIP\":\"Africa/Lusaka\",\"CIQ\":\"America/Guatemala\",\"CIR\":\"America/Chicago\",\"CIS\":\"Pacific/Enderbury\",\"CIT\":\"Asia/Almaty\",\"CIU\":\"America/New_York\",\"CIV\":\"America/Anchorage\",\"CIW\":\"America/St_Vincent\",\"CIX\":\"America/Lima\",\"CIY\":\"Europe/Rome\",\"CIZ\":\"America/Porto_Velho\",\"CJA\":\"America/Lima\",\"CJB\":\"Asia/Kolkata\",\"CJC\":\"America/Santiago\",\"CJD\":\"America/Bogota\",\"CJF\":\"Australia/Perth\",\"CJH\":\"America/Vancouver\",\"CJJ\":\"Asia/Seoul\",\"CJL\":\"Asia/Karachi\",\"CJM\":\"Asia/Bangkok\",\"CJN\":\"Asia/Jakarta\",\"CJS\":\"America/Ojinaga\",\"CJT\":\"America/Mexico_City\",\"CJU\":\"Asia/Seoul\",\"CKA\":\"America/Chicago\",\"CKB\":\"America/New_York\",\"CKC\":\"Europe/Kiev\",\"CKD\":\"America/Anchorage\",\"CKE\":\"America/Los_Angeles\",\"CKG\":\"Asia/Shanghai\",\"CKH\":\"Asia/Magadan\",\"CKI\":\"Australia/Darwin\",\"CKK\":\"America/Chicago\",\"CKL\":\"Europe/Moscow\",\"CKM\":\"America/Chicago\",\"CKN\":\"America/Chicago\",\"CKO\":\"America/Sao_Paulo\",\"CKR\":\"America/Los_Angeles\",\"CKS\":\"America/Belem\",\"CKT\":\"Asia/Tehran\",\"CKU\":\"America/Anchorage\",\"CKV\":\"America/Chicago\",\"CKW\":\"Australia/Perth\",\"CKX\":\"America/Anchorage\",\"CKY\":\"Africa/Conakry\",\"CKZ\":\"Europe/Istanbul\",\"CLA\":\"Asia/Dhaka\",\"CLD\":\"America/Los_Angeles\",\"CLE\":\"America/New_York\",\"CLF\":\"Europe/London\",\"CLG\":\"America/Los_Angeles\",\"CLH\":\"Australia/Sydney\",\"CLI\":\"America/Chicago\",\"CLJ\":\"Europe/Bucharest\",\"CLK\":\"America/Chicago\",\"CLL\":\"America/Chicago\",\"CLM\":\"America/Los_Angeles\",\"CLN\":\"America/Belem\",\"CLO\":\"America/Bogota\",\"CLP\":\"America/Anchorage\",\"CLQ\":\"America/Mexico_City\",\"CLR\":\"America/Los_Angeles\",\"CLS\":\"America/Los_Angeles\",\"CLT\":\"America/New_York\",\"CLU\":\"America/Indiana/Indianapolis\",\"CLV\":\"America/Sao_Paulo\",\"CLW\":\"America/New_York\",\"CLX\":\"America/Argentina/Buenos_Aires\",\"CLY\":\"Europe/Paris\",\"CLZ\":\"America/Caracas\",\"CMA\":\"Australia/Brisbane\",\"CMB\":\"Asia/Colombo\",\"CMC\":\"America/Belem\",\"CMD\":\"Australia/Sydney\",\"CME\":\"America/Mexico_City\",\"CMF\":\"Europe/Paris\",\"CMG\":\"America/Campo_Grande\",\"CMH\":\"America/New_York\",\"CMI\":\"America/Chicago\",\"CMJ\":\"Asia/Taipei\",\"CMK\":\"Africa/Blantyre\",\"CML\":\"Australia/Brisbane\",\"CMM\":\"America/Guatemala\",\"CMN\":\"Africa/Casablanca\",\"CMO\":\"Africa/Mogadishu\",\"CMP\":\"America/Belem\",\"CMQ\":\"Australia/Brisbane\",\"CMR\":\"Europe/Paris\",\"CMS\":\"Africa/Mogadishu\",\"CMT\":\"America/Belem\",\"CMU\":\"Pacific/Port_Moresby\",\"CMV\":\"Pacific/Auckland\",\"CMW\":\"America/Havana\",\"CMX\":\"America/New_York\",\"CMY\":\"America/Chicago\",\"CMZ\":\"Africa/Maputo\",\"CNA\":\"America/Hermosillo\",\"CNB\":\"Australia/Sydney\",\"CNC\":\"Australia/Brisbane\",\"CND\":\"Europe/Bucharest\",\"CNE\":\"America/Denver\",\"CNF\":\"America/Sao_Paulo\",\"CNG\":\"Europe/Paris\",\"CNH\":\"America/New_York\",\"CNI\":\"Asia/Shanghai\",\"CNJ\":\"Australia/Brisbane\",\"CNK\":\"America/Chicago\",\"CNL\":\"Europe/Copenhagen\",\"CNM\":\"America/Denver\",\"CNN\":\"Asia/Kolkata\",\"CNO\":\"America/Los_Angeles\",\"CNP\":\"America/Scoresbysund\",\"CNQ\":\"America/Argentina/Buenos_Aires\",\"CNR\":\"America/Santiago\",\"CNS\":\"Australia/Brisbane\",\"CNT\":\"America/Argentina/Buenos_Aires\",\"CNU\":\"America/Chicago\",\"CNV\":\"America/Belem\",\"CNW\":\"America/Chicago\",\"CNX\":\"Asia/Bangkok\",\"CNY\":\"America/Denver\",\"CNZ\":\"Africa/Luanda\",\"COA\":\"America/Los_Angeles\",\"COB\":\"Australia/Darwin\",\"COC\":\"America/Argentina/Buenos_Aires\",\"COD\":\"America/Denver\",\"COE\":\"America/Los_Angeles\",\"COF\":\"America/New_York\",\"COG\":\"America/Bogota\",\"COH\":\"Asia/Kolkata\",\"COI\":\"America/New_York\",\"COJ\":\"Australia/Sydney\",\"COK\":\"Asia/Kolkata\",\"COL\":\"Europe/London\",\"COM\":\"America/Chicago\",\"CON\":\"America/New_York\",\"COO\":\"Africa/Porto-Novo\",\"COP\":\"America/New_York\",\"COQ\":\"Asia/Ulaanbaatar\",\"COR\":\"America/Argentina/Buenos_Aires\",\"COS\":\"America/Denver\",\"COT\":\"America/Chicago\",\"COU\":\"America/Chicago\",\"COV\":\"Europe/Lisbon\",\"COW\":\"America/Santiago\",\"COY\":\"Australia/Perth\",\"COZ\":\"America/Santo_Domingo\",\"CPA\":\"Africa/Monrovia\",\"CPB\":\"America/Bogota\",\"CPC\":\"America/Argentina/Buenos_Aires\",\"CPD\":\"Australia/Adelaide\",\"CPE\":\"America/Mexico_City\",\"CPF\":\"Asia/Jakarta\",\"CPG\":\"America/Argentina/Buenos_Aires\",\"CPH\":\"Europe/Copenhagen\",\"CPI\":\"Pacific/Port_Moresby\",\"CPL\":\"America/Bogota\",\"CPM\":\"America/Los_Angeles\",\"CPN\":\"Pacific/Port_Moresby\",\"CPO\":\"America/Santiago\",\"CPP\":\"America/Santiago\",\"CPQ\":\"America/Sao_Paulo\",\"CPR\":\"America/Denver\",\"CPS\":\"America/Chicago\",\"CPT\":\"Africa/Johannesburg\",\"CPU\":\"America/Belem\",\"CPV\":\"America/Belem\",\"CPX\":\"America/Puerto_Rico\",\"CQA\":\"America/Campo_Grande\",\"CQD\":\"Asia/Tehran\",\"CQF\":\"Europe/Paris\",\"CQP\":\"Australia/Brisbane\",\"CQS\":\"America/Porto_Velho\",\"CQT\":\"America/Bogota\",\"CQW\":\"Asia/Shanghai\",\"CRA\":\"Europe/Bucharest\",\"CRB\":\"Australia/Sydney\",\"CRC\":\"America/Bogota\",\"CRD\":\"America/Argentina/Buenos_Aires\",\"CRE\":\"America/New_York\",\"CRF\":\"Africa/Bangui\",\"CRG\":\"America/New_York\",\"CRH\":\"Australia/Brisbane\",\"CRI\":\"America/Nassau\",\"CRJ\":\"Australia/Adelaide\",\"CRK\":\"Asia/Manila\",\"CRL\":\"Europe/Brussels\",\"CRM\":\"Asia/Manila\",\"CRO\":\"America/Los_Angeles\",\"CRP\":\"America/Chicago\",\"CRQ\":\"America/Belem\",\"CRR\":\"America/Argentina/Buenos_Aires\",\"CRS\":\"America/Chicago\",\"CRT\":\"America/Chicago\",\"CRU\":\"America/Grenada\",\"CRV\":\"Europe/Rome\",\"CRW\":\"America/New_York\",\"CRX\":\"America/Chicago\",\"CRY\":\"Australia/Perth\",\"CRZ\":\"Asia/Ashgabat\",\"CSA\":\"Europe/London\",\"CSB\":\"Europe/Bucharest\",\"CSC\":\"America/Costa_Rica\",\"CSD\":\"Australia/Darwin\",\"CSE\":\"America/Denver\",\"CSF\":\"Europe/Paris\",\"CSG\":\"America/New_York\",\"CSH\":\"Europe/Moscow\",\"CSI\":\"Australia/Sydney\",\"CSJ\":\"Asia/Ho_Chi_Minh\",\"CSK\":\"Africa/Dakar\",\"CSM\":\"America/Chicago\",\"CSN\":\"America/Los_Angeles\",\"CSO\":\"Europe/Berlin\",\"CSP\":\"America/Anchorage\",\"CSQ\":\"America/Chicago\",\"CSR\":\"America/Bogota\",\"CSS\":\"America/Campo_Grande\",\"CST\":\"Pacific/Fiji\",\"CSU\":\"America/Sao_Paulo\",\"CSV\":\"America/Chicago\",\"CSW\":\"America/Porto_Velho\",\"CSX\":\"Asia/Shanghai\",\"CSY\":\"Europe/Moscow\",\"CSZ\":\"America/Argentina/Buenos_Aires\",\"CTA\":\"Europe/Rome\",\"CTB\":\"America/Denver\",\"CTC\":\"America/Argentina/Buenos_Aires\",\"CTD\":\"America/Panama\",\"CTE\":\"America/Panama\",\"CTF\":\"America/Guatemala\",\"CTG\":\"America/Bogota\",\"CTH\":\"America/New_York\",\"CTI\":\"Africa/Luanda\",\"CTK\":\"America/Chicago\",\"CTL\":\"Australia/Brisbane\",\"CTM\":\"America/Cancun\",\"CTN\":\"Australia/Brisbane\",\"CTO\":\"America/New_York\",\"CTP\":\"America/Belem\",\"CTQ\":\"America/Sao_Paulo\",\"CTR\":\"Australia/Darwin\",\"CTS\":\"Asia/Tokyo\",\"CTT\":\"Europe/Paris\",\"CTU\":\"Asia/Shanghai\",\"CTW\":\"America/Phoenix\",\"CTX\":\"America/New_York\",\"CTY\":\"America/New_York\",\"CTZ\":\"America/New_York\",\"CUA\":\"America/Mazatlan\",\"CUB\":\"America/New_York\",\"CUC\":\"America/Bogota\",\"CUD\":\"Australia/Brisbane\",\"CUE\":\"America/Guayaquil\",\"CUF\":\"Europe/Rome\",\"CUG\":\"Australia/Sydney\",\"CUH\":\"America/Chicago\",\"CUI\":\"America/Bogota\",\"CUJ\":\"Asia/Manila\",\"CUK\":\"America/Belize\",\"CUL\":\"America/Mazatlan\",\"CUM\":\"America/Caracas\",\"CUN\":\"America/Cancun\",\"CUO\":\"America/Bogota\",\"CUP\":\"America/Caracas\",\"CUQ\":\"Australia/Brisbane\",\"CUR\":\"America/Curacao\",\"CUS\":\"America/Denver\",\"CUT\":\"America/Argentina/Buenos_Aires\",\"CUU\":\"America/Mazatlan\",\"CUV\":\"America/Caracas\",\"CUW\":\"America/Anchorage\",\"CUX\":\"America/Chicago\",\"CUY\":\"Australia/Perth\",\"CUZ\":\"America/Lima\",\"CVA\":\"America/New_York\",\"CVB\":\"Pacific/Port_Moresby\",\"CVC\":\"Australia/Adelaide\",\"CVE\":\"America/Bogota\",\"CVF\":\"Europe/Paris\",\"CVG\":\"America/New_York\",\"CVH\":\"America/Argentina/Buenos_Aires\",\"CVI\":\"America/Argentina/Buenos_Aires\",\"CVJ\":\"America/Mexico_City\",\"CVL\":\"Pacific/Port_Moresby\",\"CVM\":\"America/Mexico_City\",\"CVN\":\"America/Denver\",\"CVO\":\"America/Los_Angeles\",\"CVQ\":\"Australia/Perth\",\"CVR\":\"America/Los_Angeles\",\"CVS\":\"America/Denver\",\"CVT\":\"Europe/London\",\"CVU\":\"Atlantic/Azores\",\"CWA\":\"America/Chicago\",\"CWB\":\"America/Sao_Paulo\",\"CWC\":\"Europe/Kiev\",\"CWF\":\"America/Chicago\",\"CWG\":\"America/New_York\",\"CWI\":\"America/Chicago\",\"CWJ\":\"Asia/Shanghai\",\"CWL\":\"Europe/London\",\"CWO\":\"America/Chicago\",\"CWP\":\"Asia/Karachi\",\"CWR\":\"Australia/Adelaide\",\"CWS\":\"America/Los_Angeles\",\"CWT\":\"Australia/Sydney\",\"CWW\":\"Australia/Sydney\",\"CXA\":\"America/Caracas\",\"CXB\":\"Asia/Dhaka\",\"CXC\":\"America/Anchorage\",\"CXF\":\"America/Anchorage\",\"CXH\":\"America/Vancouver\",\"CXI\":\"Pacific/Kiritimati\",\"CXJ\":\"America/Sao_Paulo\",\"CXL\":\"America/Los_Angeles\",\"CXN\":\"Africa/Mogadishu\",\"CXO\":\"America/Chicago\",\"CXP\":\"Asia/Jakarta\",\"CXQ\":\"Australia/Perth\",\"CXR\":\"Asia/Ho_Chi_Minh\",\"CXT\":\"Australia/Brisbane\",\"CXY\":\"America/Nassau\",\"CYA\":\"America/Port-au-Prince\",\"CYB\":\"America/Cayman\",\"CYC\":\"America/Belize\",\"CYD\":\"America/Belize\",\"CYE\":\"America/New_York\",\"CYF\":\"America/Anchorage\",\"CYG\":\"Australia/Sydney\",\"CYI\":\"Asia/Taipei\",\"CYL\":\"America/Tegucigalpa\",\"CYM\":\"America/Anchorage\",\"CYO\":\"America/Havana\",\"CYP\":\"Asia/Manila\",\"CYR\":\"America/Montevideo\",\"CYS\":\"America/Denver\",\"CYT\":\"America/Anchorage\",\"CYU\":\"Asia/Manila\",\"CYW\":\"America/Mexico_City\",\"CYX\":\"Asia/Magadan\",\"CYZ\":\"Asia/Manila\",\"CZA\":\"America/Mexico_City\",\"CZB\":\"America/Sao_Paulo\",\"CZC\":\"America/Anchorage\",\"CZE\":\"America/Caracas\",\"CZF\":\"America/Anchorage\",\"CZH\":\"America/Belize\",\"CZJ\":\"America/Panama\",\"CZK\":\"America/Los_Angeles\",\"CZL\":\"Africa/Algiers\",\"CZM\":\"America/Cancun\",\"CZN\":\"America/Anchorage\",\"CZO\":\"America/Anchorage\",\"CZP\":\"America/Anchorage\",\"CZS\":\"America/Rio_Branco\",\"CZT\":\"America/Chicago\",\"CZU\":\"America/Bogota\",\"CZW\":\"Europe/Warsaw\",\"CZX\":\"Asia/Shanghai\",\"CZY\":\"Australia/Brisbane\",\"CZZ\":\"America/Los_Angeles\",\"DAA\":\"America/New_York\",\"DAB\":\"America/New_York\",\"DAC\":\"Asia/Dhaka\",\"DAD\":\"Asia/Ho_Chi_Minh\",\"DAE\":\"Asia/Kolkata\",\"DAF\":\"Pacific/Port_Moresby\",\"DAG\":\"America/Los_Angeles\",\"DAH\":\"Asia/Aden\",\"DAI\":\"Asia/Kolkata\",\"DAJ\":\"Australia/Brisbane\",\"DAK\":\"Africa/Cairo\",\"DAL\":\"America/Chicago\",\"DAM\":\"Asia/Damascus\",\"DAN\":\"America/New_York\",\"DAO\":\"Pacific/Port_Moresby\",\"DAP\":\"Asia/Kathmandu\",\"DAR\":\"Africa/Dar_es_Salaam\",\"DAS\":\"America/Edmonton\",\"DAT\":\"Asia/Shanghai\",\"DAU\":\"Pacific/Port_Moresby\",\"DAV\":\"America/Panama\",\"DAX\":\"Asia/Shanghai\",\"DAY\":\"America/New_York\",\"DAZ\":\"Asia/Kabul\",\"DBA\":\"Asia/Karachi\",\"DBB\":\"Africa/Cairo\",\"DBC\":\"Asia/Shanghai\",\"DBD\":\"Asia/Kolkata\",\"DBM\":\"Africa/Addis_Ababa\",\"DBN\":\"America/New_York\",\"DBO\":\"Australia/Sydney\",\"DBP\":\"Pacific/Port_Moresby\",\"DBQ\":\"America/Chicago\",\"DBS\":\"America/Denver\",\"DBT\":\"Africa/Addis_Ababa\",\"DBU\":\"Asia/Colombo\",\"DBV\":\"Europe/Zagreb\",\"DBY\":\"Australia/Brisbane\",\"DCA\":\"America/New_York\",\"DCF\":\"America/Dominica\",\"DCI\":\"Europe/Rome\",\"DCK\":\"America/Anchorage\",\"DCM\":\"Europe/Paris\",\"DCN\":\"Australia/Perth\",\"DCR\":\"America/Indiana/Indianapolis\",\"DCT\":\"America/Nassau\",\"DCU\":\"America/Chicago\",\"DCY\":\"Asia/Shanghai\",\"DDC\":\"America/Chicago\",\"DDD\":\"Indian/Maldives\",\"DDG\":\"Asia/Shanghai\",\"DDI\":\"Australia/Brisbane\",\"DDM\":\"Pacific/Port_Moresby\",\"DDN\":\"Australia/Brisbane\",\"DDU\":\"Asia/Karachi\",\"DEA\":\"Asia/Karachi\",\"DEB\":\"Europe/Budapest\",\"DEC\":\"America/Chicago\",\"DED\":\"Asia/Kolkata\",\"DEE\":\"Asia/Magadan\",\"DEF\":\"Asia/Tehran\",\"DEH\":\"America/Chicago\",\"DEI\":\"Indian/Mahe\",\"DEL\":\"Asia/Kolkata\",\"DEM\":\"Africa/Addis_Ababa\",\"DEN\":\"America/Denver\",\"DEO\":\"America/New_York\",\"DEP\":\"Asia/Kolkata\",\"DEQ\":\"Asia/Shanghai\",\"DER\":\"Pacific/Port_Moresby\",\"DES\":\"Indian/Mahe\",\"DET\":\"America/New_York\",\"DEX\":\"Asia/Jayapura\",\"DEZ\":\"Asia/Damascus\",\"DFI\":\"America/New_York\",\"DFP\":\"Australia/Brisbane\",\"DFW\":\"America/Chicago\",\"DGA\":\"America/Belize\",\"DGB\":\"America/Anchorage\",\"DGC\":\"Africa/Addis_Ababa\",\"DGD\":\"Australia/Perth\",\"DGE\":\"Australia/Sydney\",\"DGF\":\"America/Vancouver\",\"DGL\":\"America/Phoenix\",\"DGM\":\"Asia/Colombo\",\"DGN\":\"America/New_York\",\"DGO\":\"America/Mexico_City\",\"DGP\":\"Europe/Riga\",\"DGR\":\"Pacific/Auckland\",\"DGT\":\"Asia/Manila\",\"DGU\":\"Africa/Ouagadougou\",\"DGW\":\"America/Denver\",\"DHA\":\"Asia/Riyadh\",\"DHB\":\"America/Los_Angeles\",\"DHD\":\"Australia/Brisbane\",\"DHF\":\"Asia/Dubai\",\"DHG\":\"Asia/Vladivostok\",\"DHI\":\"Asia/Kathmandu\",\"DHL\":\"Asia/Aden\",\"DHM\":\"Asia/Kolkata\",\"DHN\":\"America/Chicago\",\"DHR\":\"Europe/Amsterdam\",\"DHT\":\"America/Chicago\",\"DIB\":\"Asia/Kolkata\",\"DIC\":\"Africa/Lubumbashi\",\"DIE\":\"Indian/Antananarivo\",\"DIG\":\"Asia/Shanghai\",\"DIJ\":\"Europe/Paris\",\"DIK\":\"America/Denver\",\"DIL\":\"Asia/Dili\",\"DIM\":\"Africa/Abidjan\",\"DIN\":\"Asia/Ho_Chi_Minh\",\"DIO\":\"America/Anchorage\",\"DIP\":\"Africa/Ouagadougou\",\"DIQ\":\"America/Sao_Paulo\",\"DIR\":\"Africa/Addis_Ababa\",\"DIS\":\"Africa/Brazzaville\",\"DIU\":\"Asia/Kolkata\",\"DIV\":\"Africa/Abidjan\",\"DIW\":\"Asia/Colombo\",\"DIY\":\"Europe/Istanbul\",\"DJA\":\"Africa/Porto-Novo\",\"DJB\":\"Asia/Jakarta\",\"DJE\":\"Africa/Tunis\",\"DJG\":\"Africa/Algiers\",\"DJJ\":\"Asia/Jayapura\",\"DJM\":\"Africa/Brazzaville\",\"DJN\":\"America/Anchorage\",\"DJO\":\"Africa/Abidjan\",\"DJU\":\"Atlantic/Reykjavik\",\"DKA\":\"Africa/Lagos\",\"DKI\":\"Australia/Brisbane\",\"DKK\":\"America/New_York\",\"DKR\":\"Africa/Dakar\",\"DKS\":\"Asia/Krasnoyarsk\",\"DKV\":\"Australia/Darwin\",\"DLA\":\"Africa/Douala\",\"DLC\":\"Asia/Shanghai\",\"DLD\":\"Europe/Oslo\",\"DLE\":\"Europe/Paris\",\"DLF\":\"America/Chicago\",\"DLG\":\"America/Anchorage\",\"DLH\":\"America/Chicago\",\"DLI\":\"Asia/Ho_Chi_Minh\",\"DLK\":\"Australia/Adelaide\",\"DLL\":\"America/New_York\",\"DLM\":\"Europe/Istanbul\",\"DLN\":\"America/Denver\",\"DLO\":\"America/Anchorage\",\"DLP\":\"Europe/Paris\",\"DLR\":\"Asia/Vladivostok\",\"DLS\":\"America/Los_Angeles\",\"DLU\":\"Asia/Shanghai\",\"DLV\":\"Australia/Darwin\",\"DLY\":\"Pacific/Efate\",\"DLZ\":\"Asia/Ulaanbaatar\",\"DMA\":\"America/Phoenix\",\"DMB\":\"Asia/Almaty\",\"DMD\":\"Australia/Brisbane\",\"DME\":\"Europe/Moscow\",\"DMK\":\"Asia/Bangkok\",\"DMM\":\"Asia/Riyadh\",\"DMN\":\"America/Denver\",\"DMO\":\"America/Chicago\",\"DMR\":\"Asia/Aden\",\"DMT\":\"America/Campo_Grande\",\"DMU\":\"Asia/Kolkata\",\"DNA\":\"Asia/Tokyo\",\"DNB\":\"Australia/Brisbane\",\"DNC\":\"Africa/Abidjan\",\"DND\":\"Europe/London\",\"DNF\":\"Africa/Tripoli\",\"DNG\":\"Australia/Perth\",\"DNH\":\"Asia/Shanghai\",\"DNI\":\"Africa/Khartoum\",\"DNK\":\"Europe/Kiev\",\"DNL\":\"America/New_York\",\"DNM\":\"Australia/Perth\",\"DNN\":\"America/New_York\",\"DNO\":\"America/Belem\",\"DNP\":\"Asia/Kathmandu\",\"DNQ\":\"Australia/Sydney\",\"DNR\":\"Europe/Paris\",\"DNS\":\"America/Chicago\",\"DNU\":\"Pacific/Port_Moresby\",\"DNV\":\"America/Chicago\",\"DNX\":\"Africa/Khartoum\",\"DNZ\":\"Europe/Istanbul\",\"DOA\":\"Indian/Antananarivo\",\"DOB\":\"Asia/Jayapura\",\"DOC\":\"Europe/London\",\"DOD\":\"Africa/Dar_es_Salaam\",\"DOE\":\"America/Paramaribo\",\"DOF\":\"America/Anchorage\",\"DOG\":\"Africa/Khartoum\",\"DOH\":\"Asia/Qatar\",\"DOI\":\"Pacific/Port_Moresby\",\"DOL\":\"Europe/Paris\",\"DOM\":\"America/Dominica\",\"DON\":\"America/Guatemala\",\"DOO\":\"Pacific/Port_Moresby\",\"DOP\":\"Asia/Kathmandu\",\"DOR\":\"Africa/Ouagadougou\",\"DOS\":\"Pacific/Bougainville\",\"DOU\":\"America/Campo_Grande\",\"DOV\":\"America/New_York\",\"DOX\":\"Australia/Perth\",\"DOY\":\"Asia/Shanghai\",\"DPA\":\"America/Chicago\",\"DPB\":\"America/Argentina/Salta\",\"DPE\":\"Europe/Paris\",\"DPG\":\"America/Denver\",\"DPK\":\"America/New_York\",\"DPL\":\"Asia/Manila\",\"DPO\":\"Australia/Hobart\",\"DPS\":\"Asia/Makassar\",\"DPT\":\"Asia/Vladivostok\",\"DPU\":\"Pacific/Port_Moresby\",\"DQA\":\"Asia/Shanghai\",\"DQM\":\"Asia/Muscat\",\"DQO\":\"America/Chicago\",\"DRA\":\"America/Los_Angeles\",\"DRB\":\"Australia/Perth\",\"DRC\":\"Africa/Luanda\",\"DRD\":\"Australia/Brisbane\",\"DRE\":\"America/New_York\",\"DRF\":\"America/Anchorage\",\"DRG\":\"America/Anchorage\",\"DRH\":\"Asia/Jayapura\",\"DRI\":\"America/Chicago\",\"DRJ\":\"America/Paramaribo\",\"DRK\":\"America/Costa_Rica\",\"DRM\":\"Europe/Athens\",\"DRN\":\"Australia/Brisbane\",\"DRO\":\"America/Denver\",\"DRR\":\"Australia/Brisbane\",\"DRS\":\"Europe/Berlin\",\"DRT\":\"America/Chicago\",\"DRU\":\"America/Denver\",\"DRV\":\"Indian/Maldives\",\"DRW\":\"Australia/Darwin\",\"DRY\":\"Australia/Perth\",\"DSA\":\"Europe/London\",\"DSC\":\"Africa/Douala\",\"DSD\":\"America/Guadeloupe\",\"DSE\":\"Africa/Addis_Ababa\",\"DSG\":\"Asia/Manila\",\"DSI\":\"America/Chicago\",\"DSK\":\"Asia/Karachi\",\"DSL\":\"Africa/Freetown\",\"DSM\":\"America/Chicago\",\"DSN\":\"Asia/Shanghai\",\"DSS\":\"Africa/Dakar\",\"DSV\":\"America/New_York\",\"DSX\":\"Asia/Taipei\",\"DTA\":\"America/Denver\",\"DTB\":\"Asia/Jakarta\",\"DTD\":\"Asia/Makassar\",\"DTE\":\"Asia/Manila\",\"DTH\":\"America/Los_Angeles\",\"DTI\":\"America/Sao_Paulo\",\"DTL\":\"America/Chicago\",\"DTM\":\"Europe/Berlin\",\"DTN\":\"America/Chicago\",\"DTR\":\"America/Los_Angeles\",\"DTU\":\"Asia/Shanghai\",\"DTW\":\"America/New_York\",\"DUA\":\"America/Chicago\",\"DUB\":\"Europe/Dublin\",\"DUC\":\"America/Chicago\",\"DUD\":\"Pacific/Auckland\",\"DUE\":\"Africa/Luanda\",\"DUF\":\"America/New_York\",\"DUG\":\"America/Phoenix\",\"DUH\":\"Europe/Tirane\",\"DUJ\":\"America/New_York\",\"DUK\":\"Africa/Johannesburg\",\"DUM\":\"Asia/Jakarta\",\"DUN\":\"America/Godthab\",\"DUQ\":\"America/Vancouver\",\"DUR\":\"Africa/Johannesburg\",\"DUS\":\"Europe/Berlin\",\"DUT\":\"America/Anchorage\",\"DVA\":\"Europe/Bucharest\",\"DVD\":\"Indian/Antananarivo\",\"DVK\":\"America/Edmonton\",\"DVL\":\"America/Chicago\",\"DVN\":\"America/Chicago\",\"DVO\":\"Asia/Manila\",\"DVP\":\"Australia/Brisbane\",\"DVR\":\"Australia/Darwin\",\"DVT\":\"America/Phoenix\",\"DWA\":\"Africa/Blantyre\",\"DWB\":\"Indian/Antananarivo\",\"DWC\":\"Asia/Dubai\",\"DWD\":\"Asia/Riyadh\",\"DWF\":\"America/New_York\",\"DWH\":\"America/Chicago\",\"DWN\":\"America/Chicago\",\"DWO\":\"Asia/Colombo\",\"DWR\":\"Asia/Kabul\",\"DWS\":\"America/New_York\",\"DXA\":\"Europe/Paris\",\"DXB\":\"Asia/Dubai\",\"DXD\":\"Australia/Brisbane\",\"DXE\":\"America/Chicago\",\"DXR\":\"America/New_York\",\"DYA\":\"Australia/Brisbane\",\"DYG\":\"Asia/Shanghai\",\"DYL\":\"America/New_York\",\"DYM\":\"Australia/Brisbane\",\"DYR\":\"Asia/Anadyr\",\"DYS\":\"America/Chicago\",\"DYU\":\"Asia/Dushanbe\",\"DYW\":\"Australia/Darwin\",\"DZA\":\"Indian/Mayotte\",\"DZI\":\"America/Bogota\",\"DZN\":\"Asia/Almaty\",\"DZO\":\"America/Montevideo\",\"DZU\":\"Asia/Shanghai\",\"EAA\":\"America/Anchorage\",\"EAB\":\"Asia/Aden\",\"EAE\":\"Pacific/Efate\",\"EAL\":\"Pacific/Majuro\",\"EAM\":\"Asia/Riyadh\",\"EAN\":\"America/Denver\",\"EAR\":\"America/Chicago\",\"EAS\":\"Europe/Madrid\",\"EAT\":\"America/Los_Angeles\",\"EAU\":\"America/Chicago\",\"EBA\":\"Europe/Rome\",\"EBB\":\"Africa/Kampala\",\"EBD\":\"Africa/Khartoum\",\"EBG\":\"America/Bogota\",\"EBH\":\"Africa/Algiers\",\"EBJ\":\"Europe/Copenhagen\",\"EBL\":\"Asia/Baghdad\",\"EBM\":\"Africa/Tunis\",\"EBN\":\"Pacific/Majuro\",\"EBO\":\"Pacific/Majuro\",\"EBR\":\"America/Chicago\",\"EBS\":\"America/Chicago\",\"EBU\":\"Europe/Paris\",\"EBW\":\"Africa/Douala\",\"ECA\":\"America/New_York\",\"ECG\":\"America/New_York\",\"ECH\":\"Australia/Sydney\",\"ECI\":\"America/Managua\",\"ECN\":\"Asia/Famagusta\",\"ECO\":\"America/Bogota\",\"ECP\":\"America/Chicago\",\"ECR\":\"America/Bogota\",\"ECS\":\"America/Denver\",\"EDA\":\"America/Anchorage\",\"EDB\":\"Africa/Khartoum\",\"EDC\":\"America/Chicago\",\"EDD\":\"Australia/Darwin\",\"EDE\":\"America/New_York\",\"EDF\":\"America/Anchorage\",\"EDG\":\"America/New_York\",\"EDI\":\"Europe/London\",\"EDK\":\"America/Chicago\",\"EDL\":\"Africa/Nairobi\",\"EDM\":\"Europe/Paris\",\"EDN\":\"Asia/Vladivostok\",\"EDO\":\"Europe/Istanbul\",\"EDQ\":\"America/Tegucigalpa\",\"EDR\":\"Australia/Brisbane\",\"EDW\":\"America/Los_Angeles\",\"EED\":\"America/Los_Angeles\",\"EEK\":\"America/Anchorage\",\"EEN\":\"America/New_York\",\"EFB\":\"America/Anchorage\",\"EFD\":\"America/Chicago\",\"EFG\":\"Pacific/Port_Moresby\",\"EFK\":\"America/New_York\",\"EFL\":\"Europe/Athens\",\"EFW\":\"America/Chicago\",\"EGA\":\"Pacific/Port_Moresby\",\"EGC\":\"Europe/Paris\",\"EGE\":\"America/Denver\",\"EGI\":\"America/Chicago\",\"EGL\":\"Africa/Addis_Ababa\",\"EGM\":\"Pacific/Guadalcanal\",\"EGN\":\"Africa/Khartoum\",\"EGO\":\"Europe/Moscow\",\"EGP\":\"America/Chicago\",\"EGS\":\"Atlantic/Reykjavik\",\"EGV\":\"America/Chicago\",\"EGX\":\"America/Anchorage\",\"EHL\":\"America/Argentina/Buenos_Aires\",\"EHM\":\"America/Anchorage\",\"EIA\":\"Pacific/Port_Moresby\",\"EIB\":\"Europe/Berlin\",\"EIE\":\"Asia/Krasnoyarsk\",\"EIH\":\"Australia/Brisbane\",\"EIL\":\"America/Anchorage\",\"EIN\":\"Europe/Amsterdam\",\"EIS\":\"America/Tortola\",\"EIY\":\"Asia/Jerusalem\",\"EJA\":\"America/Bogota\",\"EJH\":\"Asia/Riyadh\",\"EJN\":\"Asia/Shanghai\",\"EJT\":\"Pacific/Majuro\",\"EKA\":\"America/Los_Angeles\",\"EKB\":\"Asia/Almaty\",\"EKD\":\"Australia/Darwin\",\"EKE\":\"America/Guyana\",\"EKI\":\"America/Indiana/Indianapolis\",\"EKN\":\"America/New_York\",\"EKO\":\"America/Los_Angeles\",\"EKS\":\"Asia/Magadan\",\"EKT\":\"Europe/Stockholm\",\"EKX\":\"America/New_York\",\"ELA\":\"America/Chicago\",\"ELB\":\"America/Bogota\",\"ELC\":\"Australia/Darwin\",\"ELD\":\"America/Chicago\",\"ELE\":\"America/Panama\",\"ELF\":\"Africa/Khartoum\",\"ELG\":\"Africa/Algiers\",\"ELH\":\"America/Nassau\",\"ELI\":\"America/Anchorage\",\"ELJ\":\"America/Bogota\",\"ELK\":\"America/Chicago\",\"ELL\":\"Africa/Johannesburg\",\"ELM\":\"America/New_York\",\"ELN\":\"America/Los_Angeles\",\"ELO\":\"America/Argentina/Buenos_Aires\",\"ELP\":\"America/Denver\",\"ELQ\":\"Asia/Riyadh\",\"ELR\":\"Asia/Jayapura\",\"ELS\":\"Africa/Johannesburg\",\"ELT\":\"Africa/Cairo\",\"ELU\":\"Africa/Algiers\",\"ELV\":\"America/Anchorage\",\"ELW\":\"America/Anchorage\",\"ELX\":\"America/Caracas\",\"ELY\":\"America/Los_Angeles\",\"ELZ\":\"America/New_York\",\"EMA\":\"Europe/London\",\"EMB\":\"America/Los_Angeles\",\"EMD\":\"Australia/Brisbane\",\"EME\":\"Europe/Berlin\",\"EMG\":\"Africa/Johannesburg\",\"EMI\":\"Pacific/Port_Moresby\",\"EMK\":\"America/Anchorage\",\"EML\":\"Europe/Zurich\",\"EMM\":\"America/Denver\",\"EMN\":\"Africa/Nouakchott\",\"EMO\":\"Pacific/Port_Moresby\",\"EMP\":\"America/Chicago\",\"EMR\":\"America/Guatemala\",\"EMS\":\"Pacific/Port_Moresby\",\"EMT\":\"America/Los_Angeles\",\"EMX\":\"America/Argentina/Buenos_Aires\",\"EMY\":\"Africa/Cairo\",\"ENA\":\"America/Anchorage\",\"ENB\":\"Australia/Perth\",\"ENC\":\"Europe/Paris\",\"END\":\"America/Chicago\",\"ENE\":\"Asia/Makassar\",\"ENF\":\"Europe/Helsinki\",\"ENH\":\"Asia/Shanghai\",\"ENI\":\"Asia/Manila\",\"ENJ\":\"America/Guatemala\",\"ENK\":\"Europe/London\",\"ENL\":\"America/Chicago\",\"ENN\":\"America/Anchorage\",\"ENO\":\"America/Asuncion\",\"ENQ\":\"America/Tegucigalpa\",\"ENS\":\"Europe/Amsterdam\",\"ENT\":\"Pacific/Majuro\",\"ENU\":\"Africa/Lagos\",\"ENV\":\"America/Denver\",\"ENW\":\"America/Chicago\",\"ENY\":\"Asia/Shanghai\",\"EOH\":\"America/Bogota\",\"EOI\":\"Europe/London\",\"EOK\":\"America/Chicago\",\"EOR\":\"America/Caracas\",\"EOS\":\"America/Chicago\",\"EOZ\":\"America/Caracas\",\"EPA\":\"America/Argentina/Buenos_Aires\",\"EPG\":\"America/Chicago\",\"EPH\":\"America/Los_Angeles\",\"EPI\":\"Pacific/Efate\",\"EPK\":\"Asia/Nicosia\",\"EPL\":\"Europe/Paris\",\"EPN\":\"Africa/Brazzaville\",\"EPR\":\"Australia/Perth\",\"EPS\":\"America/Santo_Domingo\",\"EPT\":\"Pacific/Port_Moresby\",\"EPU\":\"Europe/Tallinn\",\"EQS\":\"America/Argentina/Buenos_Aires\",\"ERA\":\"Africa/Mogadishu\",\"ERB\":\"Australia/Adelaide\",\"ERC\":\"Europe/Istanbul\",\"ERD\":\"Europe/Kiev\",\"ERE\":\"Pacific/Port_Moresby\",\"ERF\":\"Europe/Berlin\",\"ERG\":\"Asia/Irkutsk\",\"ERH\":\"Africa/Casablanca\",\"ERI\":\"America/New_York\",\"ERL\":\"Asia/Shanghai\",\"ERM\":\"America/Sao_Paulo\",\"ERN\":\"America/Eirunepe\",\"ERO\":\"America/Anchorage\",\"ERQ\":\"Australia/Brisbane\",\"ERR\":\"America/New_York\",\"ERS\":\"Africa/Windhoek\",\"ERT\":\"Asia/Ulaanbaatar\",\"ERU\":\"Pacific/Port_Moresby\",\"ERV\":\"America/Chicago\",\"ERZ\":\"Europe/Istanbul\",\"ESA\":\"Pacific/Port_Moresby\",\"ESB\":\"Europe/Istanbul\",\"ESC\":\"America/New_York\",\"ESD\":\"America/Los_Angeles\",\"ESE\":\"America/Tijuana\",\"ESF\":\"America/Chicago\",\"ESG\":\"America/Asuncion\",\"ESH\":\"Europe/London\",\"ESI\":\"America/Sao_Paulo\",\"ESK\":\"Europe/Istanbul\",\"ESL\":\"Europe/Moscow\",\"ESM\":\"America/Guayaquil\",\"ESN\":\"America/New_York\",\"ESO\":\"America/Denver\",\"ESP\":\"America/New_York\",\"ESR\":\"America/Santiago\",\"ESS\":\"Europe/Berlin\",\"EST\":\"America/Chicago\",\"ESU\":\"Africa/Casablanca\",\"ESW\":\"America/Los_Angeles\",\"ETB\":\"America/Chicago\",\"ETD\":\"Australia/Adelaide\",\"ETE\":\"Africa/Addis_Ababa\",\"ETH\":\"Asia/Jerusalem\",\"ETL\":\"Asia/Vladivostok\",\"ETM\":\"Asia/Jerusalem\",\"ETN\":\"America/Chicago\",\"ETR\":\"America/Guayaquil\",\"ETS\":\"America/Chicago\",\"ETZ\":\"Europe/Paris\",\"EUA\":\"Pacific/Tongatapu\",\"EUC\":\"Australia/Perth\",\"EUE\":\"America/Los_Angeles\",\"EUF\":\"America/Chicago\",\"EUG\":\"America/Los_Angeles\",\"EUM\":\"Europe/Berlin\",\"EUN\":\"Africa/Casablanca\",\"EUQ\":\"Asia/Manila\",\"EUX\":\"America/Curacao\",\"EVA\":\"America/Chicago\",\"EVD\":\"Australia/Darwin\",\"EVE\":\"Europe/Oslo\",\"EVG\":\"Europe/Stockholm\",\"EVH\":\"Australia/Sydney\",\"EVM\":\"America/Chicago\",\"EVN\":\"Asia/Yerevan\",\"EVV\":\"America/Chicago\",\"EVW\":\"America/Denver\",\"EVX\":\"Europe/Paris\",\"EWB\":\"America/New_York\",\"EWD\":\"America/Anchorage\",\"EWE\":\"Asia/Jayapura\",\"EWI\":\"Asia/Jayapura\",\"EWK\":\"America/Chicago\",\"EWN\":\"America/New_York\",\"EWO\":\"Africa/Brazzaville\",\"EWR\":\"America/New_York\",\"EWY\":\"Europe/London\",\"EXI\":\"America/Anchorage\",\"EXM\":\"Australia/Perth\",\"EXT\":\"Europe/London\",\"EYK\":\"Asia/Yekaterinburg\",\"EYL\":\"Africa/Bamako\",\"EYP\":\"America/Bogota\",\"EYR\":\"America/Los_Angeles\",\"EYS\":\"Africa/Nairobi\",\"EYW\":\"America/New_York\",\"EZE\":\"America/Argentina/Buenos_Aires\",\"EZS\":\"Europe/Istanbul\",\"EZV\":\"Asia/Yekaterinburg\",\"FAA\":\"Africa/Conakry\",\"FAB\":\"Europe/London\",\"FAC\":\"Pacific/Tahiti\",\"FAE\":\"Atlantic/Faroe\",\"FAF\":\"America/New_York\",\"FAG\":\"Atlantic/Reykjavik\",\"FAH\":\"Asia/Kabul\",\"FAI\":\"America/Anchorage\",\"FAJ\":\"America/Puerto_Rico\",\"FAK\":\"America/Anchorage\",\"FAL\":\"America/Chicago\",\"FAM\":\"America/Chicago\",\"FAN\":\"Europe/Oslo\",\"FAO\":\"Europe/Lisbon\",\"FAQ\":\"Pacific/Port_Moresby\",\"FAR\":\"America/Chicago\",\"FAS\":\"Atlantic/Reykjavik\",\"FAT\":\"America/Los_Angeles\",\"FAU\":\"Asia/Muscat\",\"FAV\":\"Pacific/Tahiti\",\"FAY\":\"America/New_York\",\"FAZ\":\"Asia/Tehran\",\"FBA\":\"America/Porto_Velho\",\"FBD\":\"Asia/Kabul\",\"FBE\":\"America/Sao_Paulo\",\"FBG\":\"America/New_York\",\"FBK\":\"America/Anchorage\",\"FBL\":\"America/Chicago\",\"FBM\":\"Africa/Lubumbashi\",\"FBR\":\"America/Denver\",\"FBS\":\"America/Los_Angeles\",\"FBY\":\"America/Chicago\",\"FCA\":\"America/Denver\",\"FCB\":\"Africa/Johannesburg\",\"FCH\":\"America/Los_Angeles\",\"FCM\":\"America/Chicago\",\"FCN\":\"Europe/Berlin\",\"FCO\":\"Europe/Rome\",\"FCS\":\"America/Denver\",\"FCT\":\"America/Los_Angeles\",\"FCY\":\"America/Chicago\",\"FDB\":\"America/Campo_Grande\",\"FDE\":\"Europe/Oslo\",\"FDF\":\"America/Martinique\",\"FDH\":\"Europe/Berlin\",\"FDK\":\"America/New_York\",\"FDR\":\"America/Chicago\",\"FDU\":\"Africa/Kinshasa\",\"FDY\":\"America/New_York\",\"FEA\":\"Europe/London\",\"FEB\":\"Asia/Kathmandu\",\"FEC\":\"America/Belem\",\"FEG\":\"Asia/Tashkent\",\"FEJ\":\"America/Rio_Branco\",\"FEK\":\"Africa/Abidjan\",\"FEL\":\"Europe/Berlin\",\"FEN\":\"America/Noronha\",\"FEP\":\"America/Chicago\",\"FES\":\"Europe/Madrid\",\"FET\":\"America/Chicago\",\"FEW\":\"America/Denver\",\"FEZ\":\"Africa/Casablanca\",\"FFA\":\"America/New_York\",\"FFD\":\"Europe/London\",\"FFL\":\"America/Chicago\",\"FFM\":\"America/Chicago\",\"FFO\":\"America/New_York\",\"FFT\":\"America/New_York\",\"FFU\":\"America/Santiago\",\"FGD\":\"Africa/Nouakchott\",\"FGI\":\"Pacific/Apia\",\"FGL\":\"Pacific/Auckland\",\"FGR\":\"Europe/Madrid\",\"FGU\":\"Pacific/Tahiti\",\"FHU\":\"America/Phoenix\",\"FHZ\":\"Pacific/Tahiti\",\"FIC\":\"America/Anchorage\",\"FID\":\"America/New_York\",\"FIE\":\"Europe/London\",\"FIG\":\"Africa/Conakry\",\"FIH\":\"Africa/Kinshasa\",\"FIK\":\"Australia/Darwin\",\"FIL\":\"America/Denver\",\"FIN\":\"Pacific/Port_Moresby\",\"FIV\":\"America/Anchorage\",\"FIZ\":\"Australia/Perth\",\"FJR\":\"Asia/Dubai\",\"FKB\":\"Europe/Berlin\",\"FKH\":\"Europe/London\",\"FKI\":\"Africa/Lubumbashi\",\"FKJ\":\"Asia/Tokyo\",\"FKL\":\"America/New_York\",\"FKN\":\"America/New_York\",\"FKQ\":\"Asia/Jayapura\",\"FKS\":\"Asia/Tokyo\",\"FLA\":\"America/Bogota\",\"FLB\":\"America/Belem\",\"FLC\":\"Australia/Sydney\",\"FLD\":\"America/Chicago\",\"FLF\":\"Europe/Berlin\",\"FLG\":\"America/Phoenix\",\"FLH\":\"Europe/London\",\"FLI\":\"Atlantic/Reykjavik\",\"FLJ\":\"America/Anchorage\",\"FLL\":\"America/New_York\",\"FLM\":\"America/Asuncion\",\"FLN\":\"America/Sao_Paulo\",\"FLO\":\"America/New_York\",\"FLP\":\"America/Chicago\",\"FLR\":\"Europe/Rome\",\"FLS\":\"Australia/Hobart\",\"FLT\":\"America/Anchorage\",\"FLV\":\"America/Chicago\",\"FLW\":\"Atlantic/Azores\",\"FLX\":\"America/Los_Angeles\",\"FLY\":\"Australia/Sydney\",\"FLZ\":\"Asia/Jakarta\",\"FMA\":\"America/Argentina/Buenos_Aires\",\"FMC\":\"America/Anchorage\",\"FME\":\"America/New_York\",\"FMG\":\"America/Costa_Rica\",\"FMH\":\"America/New_York\",\"FMI\":\"Africa/Lubumbashi\",\"FMM\":\"Europe/Berlin\",\"FMN\":\"America/Denver\",\"FMO\":\"Europe/Berlin\",\"FMS\":\"America/Chicago\",\"FMU\":\"America/Los_Angeles\",\"FMY\":\"America/New_York\",\"FNA\":\"Africa/Freetown\",\"FNB\":\"Europe/Berlin\",\"FNC\":\"Europe/Lisbon\",\"FND\":\"Indian/Maldives\",\"FNE\":\"Pacific/Port_Moresby\",\"FNG\":\"Africa/Ouagadougou\",\"FNH\":\"Africa/Addis_Ababa\",\"FNI\":\"Europe/Paris\",\"FNJ\":\"Asia/Pyongyang\",\"FNK\":\"America/Anchorage\",\"FNL\":\"America/Denver\",\"FNR\":\"America/Anchorage\",\"FNT\":\"America/New_York\",\"FOA\":\"Europe/London\",\"FOB\":\"America/Los_Angeles\",\"FOC\":\"Asia/Shanghai\",\"FOD\":\"America/Chicago\",\"FOE\":\"America/Chicago\",\"FOG\":\"Europe/Rome\",\"FOK\":\"America/New_York\",\"FOM\":\"Africa/Douala\",\"FON\":\"America/Costa_Rica\",\"FOO\":\"Asia/Jayapura\",\"FOP\":\"America/New_York\",\"FOR\":\"America/Belem\",\"FOS\":\"Australia/Perth\",\"FOT\":\"Australia/Sydney\",\"FOU\":\"Africa/Libreville\",\"FOX\":\"America/Anchorage\",\"FOY\":\"Africa/Monrovia\",\"FPO\":\"America/Nassau\",\"FPR\":\"America/New_York\",\"FPY\":\"America/New_York\",\"FRA\":\"Europe/Berlin\",\"FRB\":\"Australia/Sydney\",\"FRC\":\"America/Sao_Paulo\",\"FRD\":\"America/Los_Angeles\",\"FRE\":\"Pacific/Guadalcanal\",\"FRG\":\"America/New_York\",\"FRH\":\"America/Indiana/Indianapolis\",\"FRI\":\"America/Chicago\",\"FRJ\":\"Europe/Paris\",\"FRK\":\"Indian/Mahe\",\"FRL\":\"Europe/Rome\",\"FRM\":\"America/Chicago\",\"FRN\":\"America/Anchorage\",\"FRO\":\"Europe/Oslo\",\"FRP\":\"America/Anchorage\",\"FRQ\":\"Pacific/Port_Moresby\",\"FRR\":\"America/New_York\",\"FRS\":\"America/Guatemala\",\"FRT\":\"America/Santiago\",\"FRU\":\"Asia/Bishkek\",\"FRW\":\"Africa/Gaborone\",\"FRY\":\"America/New_York\",\"FRZ\":\"Europe/Berlin\",\"FSC\":\"Europe/Paris\",\"FSD\":\"America/Chicago\",\"FSI\":\"America/Chicago\",\"FSK\":\"America/Chicago\",\"FSL\":\"Australia/Perth\",\"FSM\":\"America/Chicago\",\"FSN\":\"America/Chicago\",\"FSP\":\"America/Miquelon\",\"FSS\":\"Europe/London\",\"FST\":\"America/Chicago\",\"FSU\":\"America/Denver\",\"FSZ\":\"Asia/Tokyo\",\"FTA\":\"Pacific/Efate\",\"FTE\":\"America/Argentina/Buenos_Aires\",\"FTI\":\"Pacific/Pago_Pago\",\"FTK\":\"America/Chicago\",\"FTL\":\"America/Anchorage\",\"FTU\":\"Indian/Antananarivo\",\"FTW\":\"America/Chicago\",\"FTX\":\"Africa/Brazzaville\",\"FTY\":\"America/New_York\",\"FUB\":\"Pacific/Port_Moresby\",\"FUD\":\"Asia/Shanghai\",\"FUE\":\"Atlantic/Canary\",\"FUG\":\"Asia/Shanghai\",\"FUJ\":\"Asia/Tokyo\",\"FUK\":\"Asia/Tokyo\",\"FUL\":\"America/Los_Angeles\",\"FUM\":\"Pacific/Port_Moresby\",\"FUN\":\"Pacific/Funafuti\",\"FUO\":\"Asia/Shanghai\",\"FUP\":\"Europe/Stockholm\",\"FUT\":\"Pacific/Wallis\",\"FVL\":\"Australia/Perth\",\"FVM\":\"Indian/Maldives\",\"FVR\":\"Australia/Perth\",\"FWA\":\"America/Indiana/Indianapolis\",\"FWH\":\"America/Chicago\",\"FWL\":\"America/Anchorage\",\"FWM\":\"Europe/London\",\"FXE\":\"America/New_York\",\"FXM\":\"America/Anchorage\",\"FXO\":\"Africa/Maputo\",\"FXY\":\"America/Chicago\",\"FYJ\":\"Asia/Shanghai\",\"FYM\":\"America/Chicago\",\"FYN\":\"Asia/Shanghai\",\"FYT\":\"Africa/Ndjamena\",\"FYU\":\"America/Anchorage\",\"FYV\":\"America/Chicago\",\"FZO\":\"Europe/London\",\"GAA\":\"America/Bogota\",\"GAB\":\"America/Los_Angeles\",\"GAC\":\"America/Tegucigalpa\",\"GAD\":\"America/Chicago\",\"GAE\":\"Africa/Tunis\",\"GAF\":\"Africa/Tunis\",\"GAG\":\"America/Chicago\",\"GAH\":\"Australia/Brisbane\",\"GAI\":\"America/New_York\",\"GAJ\":\"Asia/Tokyo\",\"GAK\":\"America/Anchorage\",\"GAL\":\"America/Anchorage\",\"GAM\":\"America/Anchorage\",\"GAN\":\"Indian/Maldives\",\"GAO\":\"America/Havana\",\"GAP\":\"Pacific/Port_Moresby\",\"GAQ\":\"Africa/Bamako\",\"GAR\":\"Pacific/Port_Moresby\",\"GAS\":\"Africa/Nairobi\",\"GAT\":\"Europe/Paris\",\"GAU\":\"Asia/Kolkata\",\"GAV\":\"Asia/Jayapura\",\"GAW\":\"Asia/Yangon\",\"GAX\":\"Africa/Libreville\",\"GAY\":\"Asia/Kolkata\",\"GAZ\":\"Pacific/Port_Moresby\",\"GBA\":\"Pacific/Efate\",\"GBB\":\"Asia/Baku\",\"GBC\":\"Pacific/Port_Moresby\",\"GBD\":\"America/Chicago\",\"GBE\":\"Africa/Gaborone\",\"GBF\":\"Pacific/Port_Moresby\",\"GBG\":\"America/Chicago\",\"GBH\":\"America/Anchorage\",\"GBI\":\"Asia/Kolkata\",\"GBJ\":\"America/Guadeloupe\",\"GBK\":\"Africa/Freetown\",\"GBL\":\"Australia/Darwin\",\"GBM\":\"Africa/Mogadishu\",\"GBO\":\"America/New_York\",\"GBP\":\"Australia/Brisbane\",\"GBR\":\"America/New_York\",\"GBS\":\"Pacific/Auckland\",\"GBT\":\"Asia/Tehran\",\"GBU\":\"Africa/Khartoum\",\"GBV\":\"Australia/Perth\",\"GBW\":\"Australia/Perth\",\"GBZ\":\"Pacific/Auckland\",\"GCA\":\"America/Bogota\",\"GCC\":\"America/Denver\",\"GCH\":\"Asia/Tehran\",\"GCI\":\"Europe/London\",\"GCJ\":\"Africa/Johannesburg\",\"GCK\":\"America/Chicago\",\"GCM\":\"America/Cayman\",\"GCN\":\"America/Phoenix\",\"GCT\":\"America/Phoenix\",\"GCV\":\"America/Sao_Paulo\",\"GCW\":\"America/Phoenix\",\"GCY\":\"America/Chicago\",\"GDA\":\"Africa/Bangui\",\"GDC\":\"America/New_York\",\"GDD\":\"Australia/Perth\",\"GDE\":\"Africa/Addis_Ababa\",\"GDG\":\"Asia/Yakutsk\",\"GDH\":\"America/Anchorage\",\"GDI\":\"Africa/Bangui\",\"GDJ\":\"Africa/Kinshasa\",\"GDL\":\"America/Mexico_City\",\"GDM\":\"America/New_York\",\"GDN\":\"Europe/Warsaw\",\"GDO\":\"America/Caracas\",\"GDP\":\"America/Belem\",\"GDQ\":\"Africa/Addis_Ababa\",\"GDT\":\"America/Grand_Turk\",\"GDV\":\"America/Denver\",\"GDW\":\"America/New_York\",\"GDX\":\"Asia/Magadan\",\"GDZ\":\"Europe/Moscow\",\"GEA\":\"Pacific/Noumea\",\"GEB\":\"Asia/Jayapura\",\"GEC\":\"Asia/Famagusta\",\"GED\":\"America/New_York\",\"GEE\":\"Australia/Hobart\",\"GEF\":\"Pacific/Guadalcanal\",\"GEG\":\"America/Los_Angeles\",\"GEI\":\"Pacific/Bougainville\",\"GEK\":\"America/Anchorage\",\"GEL\":\"America/Sao_Paulo\",\"GEM\":\"Africa/Lagos\",\"GEN\":\"Europe/Madrid\",\"GEO\":\"America/Guyana\",\"GER\":\"America/Havana\",\"GES\":\"Asia/Manila\",\"GET\":\"Australia/Perth\",\"GEV\":\"Europe/Stockholm\",\"GEW\":\"Pacific/Port_Moresby\",\"GEX\":\"Australia/Sydney\",\"GEY\":\"America/Denver\",\"GFA\":\"America/Denver\",\"GFB\":\"America/Anchorage\",\"GFD\":\"America/Indiana/Indianapolis\",\"GFE\":\"Australia/Sydney\",\"GFF\":\"Australia/Sydney\",\"GFK\":\"America/Chicago\",\"GFL\":\"America/New_York\",\"GFN\":\"Australia/Sydney\",\"GFO\":\"America/Guyana\",\"GFR\":\"Europe/Paris\",\"GFY\":\"Africa/Windhoek\",\"GGB\":\"America/Cuiaba\",\"GGC\":\"Africa/Luanda\",\"GGD\":\"Australia/Brisbane\",\"GGE\":\"America/New_York\",\"GGF\":\"America/Santarem\",\"GGG\":\"America/Chicago\",\"GGH\":\"America/Campo_Grande\",\"GGJ\":\"America/Sao_Paulo\",\"GGL\":\"America/Bogota\",\"GGM\":\"Africa/Nairobi\",\"GGN\":\"Africa/Abidjan\",\"GGO\":\"Africa/Abidjan\",\"GGR\":\"Africa/Mogadishu\",\"GGS\":\"America/Argentina/Buenos_Aires\",\"GGT\":\"America/Nassau\",\"GGW\":\"America/Denver\",\"GHA\":\"Africa/Algiers\",\"GHB\":\"America/Nassau\",\"GHC\":\"America/Nassau\",\"GHD\":\"Africa/Addis_Ababa\",\"GHE\":\"America/Panama\",\"GHF\":\"Europe/Berlin\",\"GHK\":\"Asia/Jerusalem\",\"GHM\":\"America/Chicago\",\"GHN\":\"Asia/Shanghai\",\"GHS\":\"Asia/Makassar\",\"GHT\":\"Africa/Tripoli\",\"GHU\":\"America/Argentina/Buenos_Aires\",\"GIB\":\"Europe/Gibraltar\",\"GIC\":\"Australia/Brisbane\",\"GID\":\"Africa/Bujumbura\",\"GIF\":\"America/New_York\",\"GIG\":\"America/Sao_Paulo\",\"GII\":\"Africa/Conakry\",\"GIL\":\"Asia/Karachi\",\"GIM\":\"Africa/Libreville\",\"GIR\":\"America/Bogota\",\"GIS\":\"Pacific/Auckland\",\"GIT\":\"Africa/Dar_es_Salaam\",\"GIU\":\"Asia/Colombo\",\"GIY\":\"Africa/Johannesburg\",\"GIZ\":\"Asia/Riyadh\",\"GJA\":\"America/Tegucigalpa\",\"GJL\":\"Africa/Algiers\",\"GJM\":\"America/Porto_Velho\",\"GJR\":\"Atlantic/Reykjavik\",\"GJT\":\"America/Denver\",\"GKA\":\"Pacific/Port_Moresby\",\"GKE\":\"Europe/Berlin\",\"GKH\":\"Asia/Kathmandu\",\"GKK\":\"Indian/Maldives\",\"GKL\":\"Australia/Brisbane\",\"GKN\":\"America/Anchorage\",\"GKO\":\"Africa/Libreville\",\"GKT\":\"America/New_York\",\"GLA\":\"Europe/London\",\"GLC\":\"Africa/Addis_Ababa\",\"GLD\":\"America/Denver\",\"GLE\":\"America/Chicago\",\"GLF\":\"America/Costa_Rica\",\"GLG\":\"Australia/Brisbane\",\"GLH\":\"America/Chicago\",\"GLI\":\"Australia/Sydney\",\"GLK\":\"Africa/Mogadishu\",\"GLL\":\"Europe/Oslo\",\"GLM\":\"Australia/Brisbane\",\"GLN\":\"Africa/Casablanca\",\"GLO\":\"Europe/London\",\"GLP\":\"Pacific/Port_Moresby\",\"GLQ\":\"America/Anchorage\",\"GLR\":\"America/New_York\",\"GLS\":\"America/Chicago\",\"GLT\":\"Australia/Brisbane\",\"GLU\":\"Asia/Thimphu\",\"GLV\":\"America/Anchorage\",\"GLW\":\"America/Chicago\",\"GLX\":\"Asia/Jayapura\",\"GLY\":\"Australia/Perth\",\"GLZ\":\"Europe/Amsterdam\",\"GMA\":\"Africa/Kinshasa\",\"GMB\":\"Africa/Addis_Ababa\",\"GMC\":\"America/Bogota\",\"GMD\":\"Africa/Casablanca\",\"GME\":\"Europe/Minsk\",\"GMI\":\"Pacific/Port_Moresby\",\"GMM\":\"Africa/Brazzaville\",\"GMN\":\"Pacific/Auckland\",\"GMO\":\"Africa/Lagos\",\"GMP\":\"Asia/Seoul\",\"GMQ\":\"Asia/Shanghai\",\"GMR\":\"Pacific/Gambier\",\"GMS\":\"America/Belem\",\"GMT\":\"America/Anchorage\",\"GMU\":\"America/New_York\",\"GMV\":\"America/Denver\",\"GMY\":\"Europe/Berlin\",\"GMZ\":\"Atlantic/Canary\",\"GNA\":\"Europe/Minsk\",\"GNB\":\"Europe/Paris\",\"GND\":\"America/Grenada\",\"GNE\":\"Europe/Brussels\",\"GNF\":\"America/Los_Angeles\",\"GNG\":\"America/Denver\",\"GNI\":\"Asia/Taipei\",\"GNM\":\"America/Belem\",\"GNN\":\"Africa/Addis_Ababa\",\"GNR\":\"America/Argentina/Buenos_Aires\",\"GNS\":\"Asia/Jakarta\",\"GNT\":\"America/Denver\",\"GNU\":\"America/Anchorage\",\"GNV\":\"America/New_York\",\"GNY\":\"Europe/Istanbul\",\"GNZ\":\"Africa/Gaborone\",\"GOA\":\"Europe/Rome\",\"GOB\":\"Africa/Addis_Ababa\",\"GOC\":\"Pacific/Port_Moresby\",\"GOE\":\"Pacific/Port_Moresby\",\"GOF\":\"America/Chicago\",\"GOG\":\"Africa/Windhoek\",\"GOH\":\"America/Godthab\",\"GOI\":\"Asia/Kolkata\",\"GOJ\":\"Europe/Moscow\",\"GOK\":\"America/Chicago\",\"GOL\":\"America/Los_Angeles\",\"GOM\":\"Africa/Lubumbashi\",\"GON\":\"America/New_York\",\"GOO\":\"Australia/Brisbane\",\"GOP\":\"Asia/Kolkata\",\"GOQ\":\"Asia/Shanghai\",\"GOR\":\"Africa/Addis_Ababa\",\"GOS\":\"Australia/Sydney\",\"GOT\":\"Europe/Stockholm\",\"GOU\":\"Africa/Douala\",\"GOV\":\"Australia/Darwin\",\"GOZ\":\"Europe/Sofia\",\"GPA\":\"Europe/Athens\",\"GPB\":\"America/Sao_Paulo\",\"GPD\":\"Australia/Brisbane\",\"GPI\":\"America/Bogota\",\"GPL\":\"America/Costa_Rica\",\"GPN\":\"Australia/Darwin\",\"GPO\":\"America/Argentina/Buenos_Aires\",\"GPS\":\"Pacific/Galapagos\",\"GPT\":\"America/Chicago\",\"GPZ\":\"America/Chicago\",\"GQJ\":\"Europe/London\",\"GQQ\":\"America/New_York\",\"GRA\":\"America/Bogota\",\"GRB\":\"America/Chicago\",\"GRC\":\"Africa/Monrovia\",\"GRD\":\"America/New_York\",\"GRE\":\"America/Chicago\",\"GRF\":\"America/Los_Angeles\",\"GRG\":\"Asia/Kabul\",\"GRH\":\"Pacific/Port_Moresby\",\"GRI\":\"America/Chicago\",\"GRJ\":\"Africa/Johannesburg\",\"GRK\":\"America/Chicago\",\"GRL\":\"Pacific/Port_Moresby\",\"GRM\":\"America/Chicago\",\"GRN\":\"America/Denver\",\"GRO\":\"Europe/Madrid\",\"GRP\":\"America/Belem\",\"GRQ\":\"Europe/Amsterdam\",\"GRR\":\"America/New_York\",\"GRS\":\"Europe/Rome\",\"GRT\":\"Asia/Karachi\",\"GRU\":\"America/Sao_Paulo\",\"GRV\":\"Europe/Moscow\",\"GRW\":\"Atlantic/Azores\",\"GRX\":\"Europe/Madrid\",\"GRY\":\"Atlantic/Reykjavik\",\"GRZ\":\"Europe/Vienna\",\"GSA\":\"Asia/Kuala_Lumpur\",\"GSB\":\"America/New_York\",\"GSC\":\"Australia/Perth\",\"GSE\":\"Europe/Stockholm\",\"GSH\":\"America/Indiana/Indianapolis\",\"GSI\":\"Pacific/Guadalcanal\",\"GSJ\":\"America/Guatemala\",\"GSL\":\"America/Edmonton\",\"GSM\":\"Asia/Tehran\",\"GSN\":\"Australia/Adelaide\",\"GSO\":\"America/New_York\",\"GSP\":\"America/New_York\",\"GSQ\":\"Africa/Cairo\",\"GSR\":\"Africa/Mogadishu\",\"GSS\":\"Africa/Johannesburg\",\"GST\":\"America/Anchorage\",\"GSU\":\"Africa/Khartoum\",\"GSV\":\"Europe/Saratov\",\"GSY\":\"Europe/London\",\"GTA\":\"Pacific/Guadalcanal\",\"GTB\":\"Asia/Kuala_Lumpur\",\"GTC\":\"America/Nassau\",\"GTE\":\"Australia/Darwin\",\"GTF\":\"America/Denver\",\"GTG\":\"America/Chicago\",\"GTI\":\"Europe/Berlin\",\"GTK\":\"Asia/Kuala_Lumpur\",\"GTN\":\"Pacific/Auckland\",\"GTO\":\"Asia/Makassar\",\"GTP\":\"America/Los_Angeles\",\"GTR\":\"America/Chicago\",\"GTS\":\"Australia/Darwin\",\"GTT\":\"Australia/Brisbane\",\"GTW\":\"Europe/Prague\",\"GTY\":\"America/New_York\",\"GTZ\":\"Africa/Dar_es_Salaam\",\"GUA\":\"America/Guatemala\",\"GUB\":\"America/Mazatlan\",\"GUC\":\"America/Denver\",\"GUD\":\"Africa/Bamako\",\"GUE\":\"Pacific/Port_Moresby\",\"GUF\":\"America/Chicago\",\"GUG\":\"Pacific/Port_Moresby\",\"GUH\":\"Australia/Sydney\",\"GUI\":\"America/Caracas\",\"GUJ\":\"America/Sao_Paulo\",\"GUL\":\"Australia/Sydney\",\"GUM\":\"Pacific/Guam\",\"GUO\":\"Africa/Mogadishu\",\"GUP\":\"America/Denver\",\"GUQ\":\"America/Caracas\",\"GUR\":\"Pacific/Port_Moresby\",\"GUS\":\"America/Indiana/Indianapolis\",\"GUT\":\"Europe/Berlin\",\"GUU\":\"Atlantic/Reykjavik\",\"GUV\":\"Pacific/Port_Moresby\",\"GUW\":\"Asia/Atyrau\",\"GUX\":\"Asia/Kolkata\",\"GUY\":\"America/Chicago\",\"GUZ\":\"America/Sao_Paulo\",\"GVA\":\"Europe/Zurich\",\"GVE\":\"America/New_York\",\"GVI\":\"Pacific/Port_Moresby\",\"GVL\":\"America/New_York\",\"GVP\":\"Australia/Brisbane\",\"GVR\":\"America/Sao_Paulo\",\"GVT\":\"America/Chicago\",\"GVW\":\"America/Chicago\",\"GVX\":\"Europe/Stockholm\",\"GWA\":\"Asia/Yangon\",\"GWD\":\"Asia/Karachi\",\"GWE\":\"Africa/Harare\",\"GWL\":\"Asia/Kolkata\",\"GWN\":\"Pacific/Port_Moresby\",\"GWO\":\"America/Chicago\",\"GWS\":\"America/Denver\",\"GWT\":\"Europe/Berlin\",\"GWV\":\"America/New_York\",\"GWW\":\"Europe/Berlin\",\"GWY\":\"Europe/Dublin\",\"GXA\":\"Asia/Jakarta\",\"GXF\":\"Asia/Aden\",\"GXG\":\"Africa/Luanda\",\"GXH\":\"Asia/Shanghai\",\"GXQ\":\"America/Santiago\",\"GXX\":\"Africa/Douala\",\"GXY\":\"America/Denver\",\"GYA\":\"America/La_Paz\",\"GYB\":\"Australia/Perth\",\"GYD\":\"Asia/Baku\",\"GYE\":\"America/Guayaquil\",\"GYG\":\"Asia/Yakutsk\",\"GYI\":\"Africa/Kigali\",\"GYL\":\"Australia/Perth\",\"GYM\":\"America/Hermosillo\",\"GYN\":\"America/Sao_Paulo\",\"GYP\":\"Australia/Brisbane\",\"GYR\":\"America/Phoenix\",\"GYS\":\"Asia/Shanghai\",\"GYU\":\"Asia/Shanghai\",\"GYZ\":\"Australia/Perth\",\"GZA\":\"Asia/Gaza\",\"GZG\":\"Asia/Shanghai\",\"GZI\":\"Asia/Kabul\",\"GZM\":\"Europe/Malta\",\"GZO\":\"Pacific/Guadalcanal\",\"GZP\":\"Europe/Istanbul\",\"GZT\":\"Europe/Istanbul\",\"GZW\":\"Asia/Tehran\",\"HAA\":\"Europe/Oslo\",\"HAB\":\"America/Chicago\",\"HAC\":\"Asia/Tokyo\",\"HAD\":\"Europe/Stockholm\",\"HAE\":\"America/Phoenix\",\"HAF\":\"America/Los_Angeles\",\"HAH\":\"Indian/Comoro\",\"HAI\":\"America/New_York\",\"HAJ\":\"Europe/Berlin\",\"HAK\":\"Asia/Shanghai\",\"HAL\":\"Africa/Windhoek\",\"HAM\":\"Europe/Berlin\",\"HAN\":\"Asia/Ho_Chi_Minh\",\"HAO\":\"America/New_York\",\"HAP\":\"Australia/Brisbane\",\"HAQ\":\"Indian/Maldives\",\"HAR\":\"America/New_York\",\"HAS\":\"Asia/Riyadh\",\"HAT\":\"Australia/Brisbane\",\"HAU\":\"Europe/Oslo\",\"HAV\":\"America/Havana\",\"HAW\":\"Europe/London\",\"HAX\":\"America/Chicago\",\"HAY\":\"America/Anchorage\",\"HAZ\":\"Pacific/Port_Moresby\",\"HBA\":\"Australia/Hobart\",\"HBB\":\"America/Denver\",\"HBC\":\"America/Anchorage\",\"HBD\":\"Pacific/Port_Moresby\",\"HBE\":\"Africa/Cairo\",\"HBG\":\"America/Chicago\",\"HBH\":\"America/Anchorage\",\"HBI\":\"America/Nassau\",\"HBK\":\"America/Phoenix\",\"HBN\":\"Asia/Ho_Chi_Minh\",\"HBO\":\"America/Chicago\",\"HBQ\":\"Asia/Shanghai\",\"HBR\":\"America/Chicago\",\"HBT\":\"Asia/Colombo\",\"HBU\":\"Asia/Ulaanbaatar\",\"HBX\":\"Asia/Kolkata\",\"HCA\":\"America/Chicago\",\"HCB\":\"America/Anchorage\",\"HCC\":\"America/New_York\",\"HCJ\":\"Asia/Shanghai\",\"HCM\":\"Africa/Mogadishu\",\"HCN\":\"Asia/Taipei\",\"HCQ\":\"Australia/Perth\",\"HCR\":\"America/Anchorage\",\"HCW\":\"America/New_York\",\"HDA\":\"America/Anchorage\",\"HDB\":\"Europe/Berlin\",\"HDD\":\"Asia/Karachi\",\"HDE\":\"America/Chicago\",\"HDF\":\"Europe/Berlin\",\"HDG\":\"Asia/Shanghai\",\"HDH\":\"Pacific/Honolulu\",\"HDK\":\"Indian/Maldives\",\"HDM\":\"Asia/Tehran\",\"HDN\":\"America/Denver\",\"HDR\":\"Asia/Tehran\",\"HDS\":\"Africa/Johannesburg\",\"HDY\":\"Asia/Bangkok\",\"HEA\":\"Asia/Kabul\",\"HEB\":\"Asia/Yangon\",\"HED\":\"America/Anchorage\",\"HEE\":\"America/Chicago\",\"HEH\":\"Asia/Yangon\",\"HEI\":\"Europe/Berlin\",\"HEK\":\"Asia/Shanghai\",\"HEL\":\"Europe/Helsinki\",\"HEM\":\"Europe/Helsinki\",\"HEO\":\"Pacific/Port_Moresby\",\"HER\":\"Europe/Athens\",\"HES\":\"America/Los_Angeles\",\"HET\":\"Asia/Shanghai\",\"HEV\":\"Europe/Madrid\",\"HEW\":\"Asia/Shanghai\",\"HEX\":\"America/Santo_Domingo\",\"HEY\":\"America/Chicago\",\"HEZ\":\"America/Chicago\",\"HFA\":\"Asia/Jerusalem\",\"HFD\":\"America/New_York\",\"HFE\":\"Asia/Shanghai\",\"HFF\":\"America/New_York\",\"HFN\":\"Atlantic/Reykjavik\",\"HFS\":\"Europe/Stockholm\",\"HFT\":\"Europe/Oslo\",\"HGA\":\"Africa/Mogadishu\",\"HGD\":\"Australia/Brisbane\",\"HGE\":\"America/Caracas\",\"HGH\":\"Asia/Shanghai\",\"HGL\":\"Europe/Berlin\",\"HGN\":\"Asia/Bangkok\",\"HGO\":\"Africa/Abidjan\",\"HGR\":\"America/New_York\",\"HGS\":\"Africa/Freetown\",\"HGT\":\"America/Los_Angeles\",\"HGU\":\"Pacific/Port_Moresby\",\"HGZ\":\"America/Anchorage\",\"HHE\":\"Asia/Tokyo\",\"HHH\":\"America/New_York\",\"HHI\":\"Pacific/Honolulu\",\"HHN\":\"Europe/Berlin\",\"HHP\":\"Asia/Hong_Kong\",\"HHQ\":\"Asia/Bangkok\",\"HHR\":\"America/Los_Angeles\",\"HHZ\":\"Pacific/Tahiti\",\"HIA\":\"Asia/Shanghai\",\"HIB\":\"America/Chicago\",\"HID\":\"Australia/Brisbane\",\"HIE\":\"America/New_York\",\"HIF\":\"America/Denver\",\"HIG\":\"Australia/Brisbane\",\"HIH\":\"Australia/Brisbane\",\"HII\":\"America/Phoenix\",\"HIJ\":\"Asia/Tokyo\",\"HIK\":\"Pacific/Honolulu\",\"HIL\":\"Africa/Addis_Ababa\",\"HIM\":\"Asia/Colombo\",\"HIN\":\"Asia/Seoul\",\"HIO\":\"America/Los_Angeles\",\"HIP\":\"Australia/Brisbane\",\"HIR\":\"Pacific/Guadalcanal\",\"HIS\":\"Australia/Brisbane\",\"HIT\":\"Pacific/Port_Moresby\",\"HIW\":\"Asia/Tokyo\",\"HJJ\":\"Asia/Shanghai\",\"HJR\":\"Asia/Kolkata\",\"HJT\":\"Asia/Ulaanbaatar\",\"HKA\":\"America/Chicago\",\"HKB\":\"America/Anchorage\",\"HKD\":\"Asia/Tokyo\",\"HKG\":\"Asia/Hong_Kong\",\"HKK\":\"Pacific/Auckland\",\"HKN\":\"Pacific/Port_Moresby\",\"HKR\":\"Africa/Nairobi\",\"HKS\":\"America/Chicago\",\"HKT\":\"Asia/Bangkok\",\"HKV\":\"Europe/Sofia\",\"HKY\":\"America/New_York\",\"HLA\":\"Africa/Johannesburg\",\"HLB\":\"America/Indiana/Indianapolis\",\"HLC\":\"America/Chicago\",\"HLD\":\"Asia/Shanghai\",\"HLE\":\"Atlantic/St_Helena\",\"HLF\":\"Europe/Stockholm\",\"HLG\":\"America/New_York\",\"HLH\":\"Asia/Shanghai\",\"HLI\":\"America/Los_Angeles\",\"HLL\":\"Australia/Perth\",\"HLM\":\"America/New_York\",\"HLN\":\"America/Denver\",\"HLP\":\"Asia/Jakarta\",\"HLR\":\"America/Chicago\",\"HLS\":\"Australia/Hobart\",\"HLT\":\"Australia/Sydney\",\"HLU\":\"Pacific/Noumea\",\"HLV\":\"Australia/Brisbane\",\"HLW\":\"Africa/Johannesburg\",\"HLY\":\"Europe/London\",\"HLZ\":\"Pacific/Auckland\",\"HMA\":\"Asia/Yekaterinburg\",\"HMB\":\"Africa/Cairo\",\"HME\":\"Africa/Algiers\",\"HMG\":\"Australia/Darwin\",\"HMI\":\"Asia/Shanghai\",\"HMJ\":\"Europe/Kiev\",\"HMN\":\"America/Denver\",\"HMO\":\"America/Hermosillo\",\"HMR\":\"Europe/Oslo\",\"HMS\":\"America/Anchorage\",\"HMT\":\"America/Los_Angeles\",\"HMV\":\"Europe/Stockholm\",\"HMY\":\"Asia/Seoul\",\"HNA\":\"Asia/Tokyo\",\"HNB\":\"America/Indiana/Indianapolis\",\"HNC\":\"America/New_York\",\"HND\":\"Asia/Tokyo\",\"HNE\":\"America/Anchorage\",\"HNG\":\"Pacific/Noumea\",\"HNH\":\"America/Anchorage\",\"HNI\":\"Pacific/Port_Moresby\",\"HNK\":\"Australia/Brisbane\",\"HNL\":\"Pacific/Honolulu\",\"HNM\":\"Pacific/Honolulu\",\"HNN\":\"Pacific/Port_Moresby\",\"HNS\":\"America/Anchorage\",\"HNX\":\"America/Denver\",\"HNY\":\"Asia/Shanghai\",\"HOA\":\"Africa/Nairobi\",\"HOB\":\"America/Denver\",\"HOC\":\"Pacific/Port_Moresby\",\"HOD\":\"Asia/Aden\",\"HOE\":\"Asia/Vientiane\",\"HOF\":\"Asia/Riyadh\",\"HOG\":\"America/Havana\",\"HOH\":\"Europe/Vienna\",\"HOI\":\"Pacific/Tahiti\",\"HOK\":\"Australia/Darwin\",\"HOL\":\"America/Anchorage\",\"HOM\":\"America/Anchorage\",\"HON\":\"America/Chicago\",\"HOO\":\"Asia/Ho_Chi_Minh\",\"HOP\":\"America/Chicago\",\"HOQ\":\"Europe/Berlin\",\"HOR\":\"Atlantic/Azores\",\"HOS\":\"America/Argentina/Buenos_Aires\",\"HOT\":\"America/Chicago\",\"HOU\":\"America/Chicago\",\"HOV\":\"Europe/Oslo\",\"HOX\":\"Asia/Yangon\",\"HOY\":\"Europe/London\",\"HPA\":\"Pacific/Tongatapu\",\"HPB\":\"America/Anchorage\",\"HPE\":\"Australia/Brisbane\",\"HPG\":\"Asia/Shanghai\",\"HPH\":\"Asia/Ho_Chi_Minh\",\"HPN\":\"America/New_York\",\"HPT\":\"America/Chicago\",\"HPV\":\"Pacific/Honolulu\",\"HPY\":\"America/Chicago\",\"HQM\":\"America/Los_Angeles\",\"HRA\":\"Asia/Karachi\",\"HRB\":\"Asia/Shanghai\",\"HRC\":\"Asia/Almaty\",\"HRE\":\"Africa/Harare\",\"HRG\":\"Africa/Cairo\",\"HRI\":\"Asia/Colombo\",\"HRK\":\"Europe/Kiev\",\"HRL\":\"America/Chicago\",\"HRM\":\"Africa/Algiers\",\"HRN\":\"Australia/Brisbane\",\"HRO\":\"America/Chicago\",\"HRR\":\"America/Bogota\",\"HRS\":\"Africa/Johannesburg\",\"HRT\":\"Europe/London\",\"HRY\":\"Australia/Darwin\",\"HRZ\":\"America/Sao_Paulo\",\"HSB\":\"America/Chicago\",\"HSC\":\"Asia/Shanghai\",\"HSG\":\"Asia/Tokyo\",\"HSH\":\"America/Los_Angeles\",\"HSI\":\"America/Chicago\",\"HSK\":\"Europe/Madrid\",\"HSL\":\"America/Anchorage\",\"HSM\":\"Australia/Sydney\",\"HSN\":\"Asia/Shanghai\",\"HSP\":\"America/New_York\",\"HSS\":\"Asia/Kolkata\",\"HST\":\"America/New_York\",\"HSV\":\"America/Chicago\",\"HSZ\":\"Asia/Taipei\",\"HTA\":\"Asia/Yakutsk\",\"HTB\":\"America/Guadeloupe\",\"HTF\":\"Europe/London\",\"HTG\":\"Asia/Krasnoyarsk\",\"HTH\":\"America/Los_Angeles\",\"HTI\":\"Australia/Brisbane\",\"HTL\":\"America/New_York\",\"HTM\":\"Asia/Ulaanbaatar\",\"HTN\":\"Asia/Shanghai\",\"HTO\":\"America/New_York\",\"HTR\":\"Asia/Tokyo\",\"HTS\":\"America/New_York\",\"HTT\":\"Asia/Shanghai\",\"HTU\":\"Australia/Sydney\",\"HTV\":\"America/Chicago\",\"HTW\":\"America/New_York\",\"HTY\":\"Europe/Istanbul\",\"HTZ\":\"America/Bogota\",\"HUA\":\"America/Chicago\",\"HUB\":\"Australia/Darwin\",\"HUC\":\"America/Puerto_Rico\",\"HUD\":\"America/Chicago\",\"HUE\":\"Africa/Addis_Ababa\",\"HUF\":\"America/Indiana/Indianapolis\",\"HUG\":\"America/Guatemala\",\"HUH\":\"Pacific/Tahiti\",\"HUI\":\"Asia/Ho_Chi_Minh\",\"HUJ\":\"America/Chicago\",\"HUK\":\"Africa/Gaborone\",\"HUL\":\"America/New_York\",\"HUM\":\"America/Chicago\",\"HUN\":\"Asia/Taipei\",\"HUO\":\"Asia/Shanghai\",\"HUQ\":\"Africa/Tripoli\",\"HUS\":\"America/Anchorage\",\"HUT\":\"America/Chicago\",\"HUU\":\"America/Lima\",\"HUV\":\"Europe/Stockholm\",\"HUW\":\"America/Porto_Velho\",\"HUX\":\"America/Mexico_City\",\"HUY\":\"Europe/London\",\"HUZ\":\"Asia/Shanghai\",\"HVA\":\"Indian/Antananarivo\",\"HVB\":\"Australia/Brisbane\",\"HVD\":\"Asia/Ulaanbaatar\",\"HVE\":\"America/Denver\",\"HVG\":\"Europe/Oslo\",\"HVK\":\"Atlantic/Reykjavik\",\"HVM\":\"Atlantic/Reykjavik\",\"HVN\":\"America/New_York\",\"HVR\":\"America/Denver\",\"HVS\":\"America/New_York\",\"HWA\":\"Pacific/Port_Moresby\",\"HWD\":\"America/Los_Angeles\",\"HWI\":\"America/Anchorage\",\"HWK\":\"Australia/Adelaide\",\"HWN\":\"Africa/Harare\",\"HWO\":\"America/New_York\",\"HXD\":\"Asia/Shanghai\",\"HXX\":\"Australia/Sydney\",\"HYA\":\"America/New_York\",\"HYC\":\"Europe/London\",\"HYD\":\"Asia/Kolkata\",\"HYF\":\"Pacific/Port_Moresby\",\"HYG\":\"America/Anchorage\",\"HYL\":\"America/Anchorage\",\"HYN\":\"Asia/Shanghai\",\"HYR\":\"America/Chicago\",\"HYS\":\"America/Chicago\",\"HYV\":\"Europe/Helsinki\",\"HZB\":\"Europe/Paris\",\"HZG\":\"Asia/Shanghai\",\"HZH\":\"Asia/Shanghai\",\"HZK\":\"Atlantic/Reykjavik\",\"HZL\":\"America/New_York\",\"HZP\":\"America/Edmonton\",\"HZV\":\"Africa/Johannesburg\",\"IAA\":\"Asia/Krasnoyarsk\",\"IAB\":\"America/Chicago\",\"IAD\":\"America/New_York\",\"IAG\":\"America/New_York\",\"IAH\":\"America/Chicago\",\"IAM\":\"Africa/Algiers\",\"IAN\":\"America/Anchorage\",\"IAO\":\"Asia/Manila\",\"IAQ\":\"Asia/Tehran\",\"IAR\":\"Europe/Moscow\",\"IAS\":\"Europe/Bucharest\",\"IAU\":\"Pacific/Port_Moresby\",\"IBA\":\"Africa/Lagos\",\"IBE\":\"America/Bogota\",\"IBI\":\"Pacific/Port_Moresby\",\"IBO\":\"Africa/Maputo\",\"IBP\":\"America/Lima\",\"IBR\":\"Asia/Tokyo\",\"IBZ\":\"Europe/Madrid\",\"ICA\":\"America/Caracas\",\"ICI\":\"Pacific/Fiji\",\"ICK\":\"America/Paramaribo\",\"ICL\":\"America/Chicago\",\"ICN\":\"Asia/Seoul\",\"ICO\":\"Asia/Manila\",\"ICR\":\"America/Havana\",\"ICT\":\"America/Chicago\",\"ICY\":\"America/Anchorage\",\"IDA\":\"America/Denver\",\"IDB\":\"Europe/Stockholm\",\"IDF\":\"Africa/Kinshasa\",\"IDG\":\"America/Chicago\",\"IDI\":\"America/New_York\",\"IDK\":\"Australia/Adelaide\",\"IDN\":\"Pacific/Port_Moresby\",\"IDO\":\"America/Belem\",\"IDP\":\"America/Chicago\",\"IDR\":\"Asia/Kolkata\",\"IDY\":\"Europe/Paris\",\"IEG\":\"Europe/Warsaw\",\"IEJ\":\"Asia/Tokyo\",\"IES\":\"Europe/Berlin\",\"IEV\":\"Europe/Kiev\",\"IFA\":\"America/Chicago\",\"IFF\":\"Australia/Brisbane\",\"IFH\":\"Asia/Tehran\",\"IFJ\":\"Atlantic/Reykjavik\",\"IFL\":\"Australia/Brisbane\",\"IFN\":\"Asia/Tehran\",\"IFO\":\"Europe/Kiev\",\"IFP\":\"America/Phoenix\",\"IFU\":\"Indian/Maldives\",\"IGA\":\"America/Nassau\",\"IGB\":\"America/Argentina/Buenos_Aires\",\"IGD\":\"Europe/Istanbul\",\"IGE\":\"Africa/Libreville\",\"IGG\":\"America/Anchorage\",\"IGH\":\"Australia/Brisbane\",\"IGL\":\"Europe/Istanbul\",\"IGM\":\"America/Phoenix\",\"IGN\":\"Asia/Manila\",\"IGO\":\"America/Bogota\",\"IGR\":\"America/Argentina/Buenos_Aires\",\"IGS\":\"Europe/Berlin\",\"IGT\":\"Europe/Moscow\",\"IGU\":\"America/Sao_Paulo\",\"IHA\":\"Asia/Tokyo\",\"IHC\":\"Africa/Maputo\",\"IHN\":\"Asia/Aden\",\"IHO\":\"Indian/Antananarivo\",\"IHR\":\"Asia/Tehran\",\"IHU\":\"Pacific/Port_Moresby\",\"IIA\":\"Europe/Dublin\",\"IIL\":\"Asia/Tehran\",\"IIN\":\"Asia/Tokyo\",\"IIS\":\"Pacific/Bougainville\",\"IJK\":\"Europe/Samara\",\"IJU\":\"America/Sao_Paulo\",\"IJX\":\"America/Chicago\",\"IKA\":\"Asia/Tehran\",\"IKB\":\"America/New_York\",\"IKE\":\"America/Godthab\",\"IKI\":\"Asia/Tokyo\",\"IKK\":\"America/Chicago\",\"IKL\":\"Africa/Kinshasa\",\"IKO\":\"America/Anchorage\",\"IKP\":\"Australia/Brisbane\",\"IKS\":\"Asia/Yakutsk\",\"IKT\":\"Asia/Irkutsk\",\"IKU\":\"Asia/Bishkek\",\"ILA\":\"Asia/Jayapura\",\"ILB\":\"America/Campo_Grande\",\"ILD\":\"Europe/Madrid\",\"ILE\":\"America/Chicago\",\"ILF\":\"America/Winnipeg\",\"ILG\":\"America/New_York\",\"ILH\":\"Europe/Berlin\",\"ILI\":\"America/Anchorage\",\"ILK\":\"Indian/Antananarivo\",\"ILL\":\"America/Chicago\",\"ILM\":\"America/New_York\",\"ILN\":\"America/New_York\",\"ILO\":\"Asia/Manila\",\"ILP\":\"Pacific/Noumea\",\"ILQ\":\"America/Lima\",\"ILR\":\"Africa/Lagos\",\"ILS\":\"America/El_Salvador\",\"ILU\":\"Africa/Nairobi\",\"ILY\":\"Europe/London\",\"ILZ\":\"Europe/Bratislava\",\"IMA\":\"Pacific/Port_Moresby\",\"IMB\":\"America/Guyana\",\"IMD\":\"Pacific/Port_Moresby\",\"IMF\":\"Asia/Kolkata\",\"IMG\":\"Africa/Maputo\",\"IMI\":\"Pacific/Majuro\",\"IMK\":\"Asia/Kathmandu\",\"IML\":\"America/Denver\",\"IMM\":\"America/New_York\",\"IMN\":\"Pacific/Port_Moresby\",\"IMO\":\"Africa/Bangui\",\"IMP\":\"America/Belem\",\"IMT\":\"America/Chicago\",\"IMZ\":\"Asia/Kabul\",\"INA\":\"Europe/Moscow\",\"INB\":\"America/Belize\",\"INC\":\"Asia/Shanghai\",\"IND\":\"America/Indiana/Indianapolis\",\"INE\":\"Africa/Maputo\",\"INF\":\"Africa/Algiers\",\"ING\":\"America/Argentina/Buenos_Aires\",\"INH\":\"Africa/Maputo\",\"INI\":\"Europe/Belgrade\",\"INJ\":\"Australia/Brisbane\",\"INK\":\"America/Chicago\",\"INL\":\"America/Chicago\",\"INM\":\"Australia/Adelaide\",\"INN\":\"Europe/Vienna\",\"INO\":\"Africa/Kinshasa\",\"INQ\":\"Europe/Dublin\",\"INS\":\"America/Los_Angeles\",\"INT\":\"America/New_York\",\"INU\":\"Pacific/Nauru\",\"INV\":\"Europe/London\",\"INW\":\"America/Phoenix\",\"INX\":\"Asia/Jayapura\",\"INY\":\"Africa/Johannesburg\",\"INZ\":\"Africa/Algiers\",\"IOA\":\"Europe/Athens\",\"IOK\":\"Pacific/Port_Moresby\",\"IOM\":\"Europe/London\",\"ION\":\"Africa/Brazzaville\",\"IOP\":\"Pacific/Port_Moresby\",\"IOQ\":\"America/Godthab\",\"IOR\":\"Europe/Dublin\",\"IOS\":\"America/Belem\",\"IOT\":\"America/Godthab\",\"IOU\":\"Pacific/Noumea\",\"IOW\":\"America/Chicago\",\"IPA\":\"Pacific/Efate\",\"IPC\":\"Pacific/Easter\",\"IPE\":\"Asia/Manila\",\"IPG\":\"America/Porto_Velho\",\"IPH\":\"Asia/Kuala_Lumpur\",\"IPI\":\"America/Bogota\",\"IPL\":\"America/Los_Angeles\",\"IPN\":\"America/Sao_Paulo\",\"IPT\":\"America/New_York\",\"IPU\":\"America/Belem\",\"IPW\":\"Europe/London\",\"IQA\":\"Asia/Baghdad\",\"IQM\":\"Asia/Shanghai\",\"IQN\":\"Asia/Shanghai\",\"IQQ\":\"America/Santiago\",\"IQT\":\"America/Lima\",\"IRA\":\"Pacific/Guadalcanal\",\"IRB\":\"America/Chicago\",\"IRC\":\"America/Anchorage\",\"IRD\":\"Asia/Dhaka\",\"IRE\":\"America/Belem\",\"IRG\":\"Australia/Brisbane\",\"IRI\":\"Africa/Dar_es_Salaam\",\"IRJ\":\"America/Argentina/Buenos_Aires\",\"IRK\":\"America/Chicago\",\"IRM\":\"Asia/Yekaterinburg\",\"IRN\":\"America/Tegucigalpa\",\"IRO\":\"Africa/Bangui\",\"IRP\":\"Africa/Lubumbashi\",\"IRS\":\"America/New_York\",\"IRZ\":\"America/Porto_Velho\",\"ISA\":\"Australia/Brisbane\",\"ISB\":\"Asia/Karachi\",\"ISC\":\"Europe/London\",\"ISD\":\"America/Bogota\",\"ISE\":\"Europe/Istanbul\",\"ISG\":\"Asia/Tokyo\",\"ISH\":\"Europe/Rome\",\"ISI\":\"Australia/Brisbane\",\"ISJ\":\"America/Mexico_City\",\"ISK\":\"Asia/Kolkata\",\"ISL\":\"Europe/Istanbul\",\"ISM\":\"America/New_York\",\"ISN\":\"America/Chicago\",\"ISO\":\"America/New_York\",\"ISP\":\"America/New_York\",\"ISQ\":\"America/New_York\",\"ISS\":\"America/New_York\",\"IST\":\"Europe/Istanbul\",\"ISU\":\"Asia/Baghdad\",\"ISW\":\"America/Chicago\",\"ITA\":\"America/Porto_Velho\",\"ITB\":\"America/Belem\",\"ITE\":\"America/Belem\",\"ITH\":\"America/New_York\",\"ITI\":\"America/Sao_Paulo\",\"ITK\":\"Pacific/Port_Moresby\",\"ITM\":\"Asia/Tokyo\",\"ITN\":\"America/Belem\",\"ITO\":\"Pacific/Honolulu\",\"ITP\":\"America/Sao_Paulo\",\"ITQ\":\"America/Sao_Paulo\",\"ITR\":\"America/Sao_Paulo\",\"ITU\":\"Asia/Magadan\",\"IUE\":\"Pacific/Niue\",\"IUI\":\"America/Godthab\",\"IUL\":\"Asia/Jayapura\",\"IUM\":\"America/Vancouver\",\"IUS\":\"Pacific/Bougainville\",\"IVA\":\"Indian/Antananarivo\",\"IVC\":\"Pacific/Auckland\",\"IVG\":\"Europe/Podgorica\",\"IVH\":\"America/Anchorage\",\"IVL\":\"Europe/Helsinki\",\"IVO\":\"America/Bogota\",\"IVR\":\"Australia/Sydney\",\"IVW\":\"Australia/Darwin\",\"IWA\":\"Europe/Moscow\",\"IWD\":\"America/Chicago\",\"IWJ\":\"Asia/Tokyo\",\"IWK\":\"Asia/Tokyo\",\"IWO\":\"Asia/Tokyo\",\"IWS\":\"America/Chicago\",\"IXA\":\"Asia/Kolkata\",\"IXB\":\"Asia/Kolkata\",\"IXC\":\"Asia/Kolkata\",\"IXD\":\"Asia/Kolkata\",\"IXE\":\"Asia/Kolkata\",\"IXG\":\"Asia/Kolkata\",\"IXH\":\"Asia/Kolkata\",\"IXI\":\"Asia/Kolkata\",\"IXJ\":\"Asia/Kolkata\",\"IXK\":\"Asia/Kolkata\",\"IXL\":\"Asia/Kolkata\",\"IXM\":\"Asia/Kolkata\",\"IXN\":\"Asia/Kolkata\",\"IXP\":\"Asia/Kolkata\",\"IXQ\":\"Asia/Kolkata\",\"IXR\":\"Asia/Kolkata\",\"IXS\":\"Asia/Kolkata\",\"IXT\":\"Asia/Kolkata\",\"IXU\":\"Asia/Kolkata\",\"IXV\":\"Asia/Kolkata\",\"IXW\":\"Asia/Kolkata\",\"IXY\":\"Asia/Kolkata\",\"IXZ\":\"Asia/Kolkata\",\"IYK\":\"America/Los_Angeles\",\"IZA\":\"America/Sao_Paulo\",\"IZO\":\"Asia/Tokyo\",\"IZT\":\"America/Mexico_City\",\"JAA\":\"Asia/Kabul\",\"JAB\":\"Australia/Darwin\",\"JAC\":\"America/Denver\",\"JAD\":\"Australia/Perth\",\"JAE\":\"America/Lima\",\"JAF\":\"Asia/Colombo\",\"JAG\":\"Asia/Karachi\",\"JAH\":\"Europe/Paris\",\"JAI\":\"Asia/Kolkata\",\"JAJ\":\"America/New_York\",\"JAK\":\"America/Port-au-Prince\",\"JAL\":\"America/Mexico_City\",\"JAM\":\"Europe/Sofia\",\"JAN\":\"America/Chicago\",\"JAO\":\"America/New_York\",\"JAP\":\"America/Costa_Rica\",\"JAQ\":\"Pacific/Port_Moresby\",\"JAR\":\"Asia/Tehran\",\"JAS\":\"America/Chicago\",\"JAT\":\"Pacific/Majuro\",\"JAU\":\"America/Lima\",\"JAV\":\"America/Godthab\",\"JAX\":\"America/New_York\",\"JBB\":\"Asia/Jakarta\",\"JBC\":\"America/New_York\",\"JBP\":\"America/Los_Angeles\",\"JBQ\":\"America/Santo_Domingo\",\"JBR\":\"America/Chicago\",\"JBS\":\"America/Sao_Paulo\",\"JBT\":\"America/Anchorage\",\"JCA\":\"Europe/Paris\",\"JCB\":\"America/Sao_Paulo\",\"JCC\":\"America/Los_Angeles\",\"JCD\":\"America/St_Thomas\",\"JCE\":\"America/Los_Angeles\",\"JCH\":\"America/Godthab\",\"JCI\":\"America/Chicago\",\"JCJ\":\"Asia/Seoul\",\"JCK\":\"Australia/Brisbane\",\"JCM\":\"America/Belem\",\"JCN\":\"Asia/Seoul\",\"JCO\":\"Europe/Malta\",\"JCR\":\"America/Porto_Velho\",\"JCT\":\"America/Chicago\",\"JCU\":\"Africa/Ceuta\",\"JCY\":\"America/Chicago\",\"JDA\":\"America/Los_Angeles\",\"JDB\":\"America/Chicago\",\"JDF\":\"America/Sao_Paulo\",\"JDH\":\"Asia/Kolkata\",\"JDM\":\"America/New_York\",\"JDN\":\"America/Denver\",\"JDO\":\"America/Belem\",\"JDP\":\"Europe/Paris\",\"JDR\":\"America/Sao_Paulo\",\"JDT\":\"America/Chicago\",\"JDX\":\"America/Chicago\",\"JDY\":\"America/Los_Angeles\",\"JDZ\":\"Asia/Shanghai\",\"JED\":\"Asia/Riyadh\",\"JEE\":\"America/Port-au-Prince\",\"JEF\":\"America/Chicago\",\"JEG\":\"America/Godthab\",\"JEJ\":\"Pacific/Majuro\",\"JEK\":\"Africa/Lusaka\",\"JEM\":\"America/Los_Angeles\",\"JEQ\":\"America/Belem\",\"JER\":\"Europe/London\",\"JEV\":\"Europe/Paris\",\"JFK\":\"America/New_York\",\"JFM\":\"Australia/Perth\",\"JFN\":\"America/New_York\",\"JFR\":\"America/Godthab\",\"JGA\":\"Asia/Kolkata\",\"JGB\":\"Asia/Kolkata\",\"JGC\":\"America/Phoenix\",\"JGD\":\"Asia/Shanghai\",\"JGE\":\"Asia/Seoul\",\"JGL\":\"America/New_York\",\"JGN\":\"Asia/Shanghai\",\"JGO\":\"America/Godthab\",\"JGP\":\"America/Chicago\",\"JGQ\":\"America/Chicago\",\"JGR\":\"America/Godthab\",\"JGS\":\"Asia/Shanghai\",\"JGX\":\"America/Los_Angeles\",\"JHB\":\"Asia/Kuala_Lumpur\",\"JHC\":\"America/New_York\",\"JHE\":\"Europe/Stockholm\",\"JHG\":\"Asia/Shanghai\",\"JHL\":\"America/Edmonton\",\"JHM\":\"Pacific/Honolulu\",\"JHQ\":\"Australia/Brisbane\",\"JHS\":\"America/Godthab\",\"JHW\":\"America/New_York\",\"JIA\":\"America/Campo_Grande\",\"JIB\":\"Africa/Djibouti\",\"JIC\":\"Asia/Shanghai\",\"JID\":\"America/Los_Angeles\",\"JIJ\":\"Africa/Addis_Ababa\",\"JIK\":\"Europe/Athens\",\"JIL\":\"Asia/Shanghai\",\"JIM\":\"Africa/Addis_Ababa\",\"JIN\":\"Africa/Kampala\",\"JIO\":\"Asia/Jayapura\",\"JIP\":\"America/Guayaquil\",\"JIQ\":\"Asia/Shanghai\",\"JIR\":\"Asia/Kathmandu\",\"JIU\":\"Asia/Shanghai\",\"JIW\":\"Asia/Karachi\",\"JJA\":\"Pacific/Guadalcanal\",\"JJD\":\"America/Belem\",\"JJG\":\"America/Sao_Paulo\",\"JJI\":\"America/Lima\",\"JJM\":\"Africa/Nairobi\",\"JJN\":\"Asia/Shanghai\",\"JJU\":\"America/Godthab\",\"JKG\":\"Europe/Stockholm\",\"JKH\":\"Europe/Athens\",\"JKL\":\"Europe/Athens\",\"JKR\":\"Asia/Kathmandu\",\"JKV\":\"America/Chicago\",\"JLA\":\"America/Anchorage\",\"JLB\":\"America/Los_Angeles\",\"JLD\":\"Europe/Stockholm\",\"JLH\":\"America/Chicago\",\"JLN\":\"America/Chicago\",\"JLO\":\"Europe/Rome\",\"JLP\":\"Europe/Paris\",\"JLR\":\"Asia/Kolkata\",\"JLS\":\"America/Sao_Paulo\",\"JLX\":\"America/Los_Angeles\",\"JMA\":\"America/Chicago\",\"JMB\":\"Africa/Luanda\",\"JMC\":\"America/Los_Angeles\",\"JMD\":\"America/Chicago\",\"JMH\":\"America/Chicago\",\"JMJ\":\"Asia/Shanghai\",\"JMK\":\"Europe/Athens\",\"JMM\":\"Europe/Stockholm\",\"JMN\":\"America/Chicago\",\"JMO\":\"Asia/Kathmandu\",\"JMS\":\"America/Chicago\",\"JMU\":\"Asia/Shanghai\",\"JMY\":\"Africa/Freetown\",\"JNA\":\"America/Sao_Paulo\",\"JNB\":\"Africa/Johannesburg\",\"JNG\":\"Asia/Shanghai\",\"JNH\":\"America/Chicago\",\"JNI\":\"America/Argentina/Buenos_Aires\",\"JNJ\":\"Asia/Muscat\",\"JNN\":\"America/Godthab\",\"JNP\":\"America/Los_Angeles\",\"JNS\":\"America/Godthab\",\"JNU\":\"America/Anchorage\",\"JNX\":\"Europe/Athens\",\"JNZ\":\"Asia/Shanghai\",\"JOC\":\"America/Los_Angeles\",\"JOE\":\"Europe/Helsinki\",\"JOG\":\"Asia/Jakarta\",\"JOH\":\"Africa/Johannesburg\",\"JOI\":\"America/Sao_Paulo\",\"JOK\":\"Europe/Moscow\",\"JOL\":\"Asia/Manila\",\"JOM\":\"Africa/Dar_es_Salaam\",\"JON\":\"Pacific/Honolulu\",\"JOP\":\"Pacific/Port_Moresby\",\"JOR\":\"America/Los_Angeles\",\"JOS\":\"Africa/Lagos\",\"JOT\":\"America/Chicago\",\"JPA\":\"America/Belem\",\"JPD\":\"America/Los_Angeles\",\"JPN\":\"America/New_York\",\"JPR\":\"America/Porto_Velho\",\"JPT\":\"America/Chicago\",\"JPU\":\"Europe/Paris\",\"JQA\":\"America/Godthab\",\"JQE\":\"America/Panama\",\"JRC\":\"America/Chicago\",\"JRD\":\"America/Los_Angeles\",\"JRE\":\"America/New_York\",\"JRF\":\"Pacific/Honolulu\",\"JRG\":\"Asia/Kolkata\",\"JRH\":\"Asia/Kolkata\",\"JRK\":\"America/Godthab\",\"JRN\":\"America/Campo_Grande\",\"JRO\":\"Africa/Dar_es_Salaam\",\"JRS\":\"Asia/Jerusalem\",\"JSA\":\"Asia/Kolkata\",\"JSD\":\"America/New_York\",\"JSG\":\"America/Los_Angeles\",\"JSH\":\"Europe/Athens\",\"JSI\":\"Europe/Athens\",\"JSJ\":\"Asia/Shanghai\",\"JSK\":\"Asia/Tehran\",\"JSL\":\"America/New_York\",\"JSM\":\"America/Argentina/Buenos_Aires\",\"JSN\":\"America/Los_Angeles\",\"JSO\":\"Europe/Stockholm\",\"JSP\":\"Asia/Seoul\",\"JSR\":\"Asia/Dhaka\",\"JSS\":\"Europe/Athens\",\"JST\":\"America/New_York\",\"JSU\":\"America/Godthab\",\"JSY\":\"Europe/Athens\",\"JTC\":\"America/Sao_Paulo\",\"JTI\":\"America/Sao_Paulo\",\"JTO\":\"America/Los_Angeles\",\"JTR\":\"Europe/Athens\",\"JTY\":\"Europe/Athens\",\"JUA\":\"America/Campo_Grande\",\"JUB\":\"Africa/Juba\",\"JUC\":\"America/Los_Angeles\",\"JUH\":\"Asia/Shanghai\",\"JUI\":\"Europe/Berlin\",\"JUJ\":\"America/Argentina/Buenos_Aires\",\"JUK\":\"America/Godthab\",\"JUL\":\"America/Lima\",\"JUM\":\"Asia/Kathmandu\",\"JUN\":\"Australia/Brisbane\",\"JUO\":\"America/Bogota\",\"JUP\":\"America/Los_Angeles\",\"JUR\":\"Australia/Perth\",\"JUT\":\"America/Tegucigalpa\",\"JUU\":\"America/Godthab\",\"JUV\":\"America/Godthab\",\"JUZ\":\"Asia/Shanghai\",\"JVA\":\"Indian/Antananarivo\",\"JVI\":\"America/New_York\",\"JVL\":\"America/Chicago\",\"JWA\":\"Africa/Gaborone\",\"JWC\":\"America/Los_Angeles\",\"JWH\":\"America/Chicago\",\"JWL\":\"America/Chicago\",\"JWN\":\"Asia/Tehran\",\"JXA\":\"Asia/Shanghai\",\"JXN\":\"America/New_York\",\"JYR\":\"Asia/Tehran\",\"JYV\":\"Europe/Helsinki\",\"JZH\":\"Asia/Shanghai\",\"KAA\":\"Africa/Lusaka\",\"KAB\":\"Africa/Harare\",\"KAC\":\"Asia/Damascus\",\"KAD\":\"Africa/Lagos\",\"KAE\":\"America/Anchorage\",\"KAF\":\"Pacific/Bougainville\",\"KAG\":\"Asia/Seoul\",\"KAH\":\"Australia/Sydney\",\"KAI\":\"America/Guyana\",\"KAJ\":\"Europe/Helsinki\",\"KAK\":\"Pacific/Port_Moresby\",\"KAL\":\"America/Anchorage\",\"KAM\":\"Asia/Aden\",\"KAN\":\"Africa/Lagos\",\"KAO\":\"Europe/Helsinki\",\"KAP\":\"Africa/Lubumbashi\",\"KAQ\":\"Pacific/Port_Moresby\",\"KAR\":\"America/Guyana\",\"KAS\":\"Africa/Windhoek\",\"KAT\":\"Pacific/Auckland\",\"KAU\":\"Europe/Helsinki\",\"KAV\":\"America/Caracas\",\"KAW\":\"Asia/Yangon\",\"KAX\":\"Australia/Perth\",\"KAY\":\"Pacific/Fiji\",\"KAZ\":\"Asia/Jayapura\",\"KBA\":\"Africa/Freetown\",\"KBB\":\"Australia/Darwin\",\"KBC\":\"America/Anchorage\",\"KBD\":\"Australia/Perth\",\"KBE\":\"America/Anchorage\",\"KBF\":\"Asia/Jayapura\",\"KBG\":\"Africa/Kampala\",\"KBH\":\"Africa/Dar_es_Salaam\",\"KBI\":\"Africa/Douala\",\"KBJ\":\"Australia/Darwin\",\"KBK\":\"America/Anchorage\",\"KBL\":\"Asia/Kabul\",\"KBM\":\"Pacific/Port_Moresby\",\"KBN\":\"Africa/Lubumbashi\",\"KBO\":\"Africa/Lubumbashi\",\"KBP\":\"Europe/Kiev\",\"KBQ\":\"Africa/Blantyre\",\"KBR\":\"Asia/Kuala_Lumpur\",\"KBS\":\"Africa/Freetown\",\"KBT\":\"Pacific/Majuro\",\"KBU\":\"Asia/Makassar\",\"KBV\":\"Asia/Bangkok\",\"KBW\":\"America/Anchorage\",\"KBX\":\"Asia/Jayapura\",\"KBY\":\"Australia/Adelaide\",\"KBZ\":\"Pacific/Auckland\",\"KCA\":\"Asia/Shanghai\",\"KCB\":\"America/Paramaribo\",\"KCC\":\"America/Anchorage\",\"KCD\":\"Asia/Jayapura\",\"KCE\":\"Australia/Brisbane\",\"KCF\":\"Asia/Karachi\",\"KCG\":\"America/Anchorage\",\"KCH\":\"Asia/Kuala_Lumpur\",\"KCI\":\"Asia/Jayapura\",\"KCJ\":\"Pacific/Port_Moresby\",\"KCK\":\"Asia/Irkutsk\",\"KCL\":\"America/Anchorage\",\"KCM\":\"Europe/Istanbul\",\"KCN\":\"America/Anchorage\",\"KCO\":\"Europe/Istanbul\",\"KCP\":\"Europe/Kiev\",\"KCQ\":\"America/Anchorage\",\"KCS\":\"Australia/Darwin\",\"KCT\":\"Asia/Colombo\",\"KCU\":\"Africa/Kampala\",\"KCZ\":\"Asia/Tokyo\",\"KDA\":\"Africa/Dakar\",\"KDB\":\"Australia/Perth\",\"KDC\":\"Africa/Porto-Novo\",\"KDD\":\"Asia/Karachi\",\"KDE\":\"Pacific/Port_Moresby\",\"KDF\":\"Africa/Algiers\",\"KDH\":\"Asia/Kabul\",\"KDI\":\"Asia/Makassar\",\"KDJ\":\"Africa/Libreville\",\"KDK\":\"America/Anchorage\",\"KDL\":\"Europe/Tallinn\",\"KDM\":\"Indian/Maldives\",\"KDN\":\"Africa/Libreville\",\"KDO\":\"Indian/Maldives\",\"KDP\":\"Pacific/Port_Moresby\",\"KDQ\":\"Pacific/Port_Moresby\",\"KDR\":\"Pacific/Port_Moresby\",\"KDS\":\"Australia/Brisbane\",\"KDT\":\"Asia/Bangkok\",\"KDU\":\"Asia/Karachi\",\"KDV\":\"Pacific/Fiji\",\"KDW\":\"Asia/Colombo\",\"KDX\":\"Africa/Khartoum\",\"KDY\":\"Asia/Yakutsk\",\"KDZ\":\"Asia/Colombo\",\"KEA\":\"Asia/Jayapura\",\"KEB\":\"America/Anchorage\",\"KEC\":\"Africa/Lubumbashi\",\"KED\":\"Africa/Nouakchott\",\"KEE\":\"Africa/Brazzaville\",\"KEF\":\"Atlantic/Reykjavik\",\"KEG\":\"Pacific/Port_Moresby\",\"KEH\":\"America/Los_Angeles\",\"KEI\":\"Asia/Jayapura\",\"KEJ\":\"Asia/Novokuznetsk\",\"KEK\":\"America/Anchorage\",\"KEL\":\"Europe/Berlin\",\"KEM\":\"Europe/Helsinki\",\"KEN\":\"Africa/Freetown\",\"KEO\":\"Africa/Abidjan\",\"KEP\":\"Asia/Kathmandu\",\"KEQ\":\"Asia/Jayapura\",\"KER\":\"Asia/Tehran\",\"KES\":\"America/Winnipeg\",\"KET\":\"Asia/Yangon\",\"KEU\":\"Africa/Nairobi\",\"KEV\":\"Europe/Helsinki\",\"KEW\":\"America/Winnipeg\",\"KEX\":\"Pacific/Port_Moresby\",\"KEY\":\"Africa/Nairobi\",\"KEZ\":\"Asia/Colombo\",\"KFA\":\"Africa/Nouakchott\",\"KFE\":\"Australia/Perth\",\"KFG\":\"Australia/Darwin\",\"KFM\":\"America/Edmonton\",\"KFP\":\"America/Anchorage\",\"KFS\":\"Europe/Istanbul\",\"KGA\":\"Africa/Lubumbashi\",\"KGB\":\"Pacific/Port_Moresby\",\"KGC\":\"Australia/Adelaide\",\"KGD\":\"Europe/Kaliningrad\",\"KGE\":\"Pacific/Guadalcanal\",\"KGF\":\"Asia/Almaty\",\"KGG\":\"Africa/Dakar\",\"KGH\":\"Pacific/Port_Moresby\",\"KGI\":\"Australia/Perth\",\"KGJ\":\"Africa/Blantyre\",\"KGK\":\"America/Anchorage\",\"KGL\":\"Africa/Kigali\",\"KGN\":\"Africa/Kinshasa\",\"KGO\":\"Europe/Kiev\",\"KGP\":\"Asia/Yekaterinburg\",\"KGQ\":\"America/Godthab\",\"KGR\":\"Australia/Darwin\",\"KGS\":\"Europe/Athens\",\"KGT\":\"Asia/Shanghai\",\"KGU\":\"Asia/Kuala_Lumpur\",\"KGW\":\"Pacific/Port_Moresby\",\"KGX\":\"America/Anchorage\",\"KGY\":\"Australia/Brisbane\",\"KGZ\":\"America/Anchorage\",\"KHA\":\"Asia/Tehran\",\"KHC\":\"Europe/Simferopol\",\"KHD\":\"Asia/Tehran\",\"KHE\":\"Europe/Kiev\",\"KHG\":\"Asia/Shanghai\",\"KHH\":\"Asia/Taipei\",\"KHI\":\"Asia/Karachi\",\"KHJ\":\"Europe/Helsinki\",\"KHK\":\"Asia/Tehran\",\"KHL\":\"Asia/Dhaka\",\"KHM\":\"Asia/Yangon\",\"KHN\":\"Asia/Shanghai\",\"KHO\":\"Africa/Johannesburg\",\"KHQ\":\"America/Godthab\",\"KHR\":\"Asia/Ulaanbaatar\",\"KHS\":\"Asia/Muscat\",\"KHT\":\"Asia/Kabul\",\"KHU\":\"Europe/Kiev\",\"KHV\":\"Asia/Vladivostok\",\"KHW\":\"Africa/Gaborone\",\"KHX\":\"Africa/Kampala\",\"KHY\":\"Asia/Tehran\",\"KHZ\":\"Pacific/Tahiti\",\"KIA\":\"Pacific/Port_Moresby\",\"KIB\":\"America/Anchorage\",\"KIC\":\"America/Los_Angeles\",\"KID\":\"Europe/Stockholm\",\"KIE\":\"Pacific/Bougainville\",\"KIF\":\"America/Winnipeg\",\"KIG\":\"Africa/Johannesburg\",\"KIH\":\"Asia/Tehran\",\"KII\":\"Pacific/Port_Moresby\",\"KIJ\":\"Asia/Tokyo\",\"KIK\":\"Asia/Baghdad\",\"KIL\":\"Africa/Kinshasa\",\"KIM\":\"Africa/Johannesburg\",\"KIN\":\"America/Jamaica\",\"KIO\":\"Pacific/Majuro\",\"KIP\":\"America/Chicago\",\"KIQ\":\"Pacific/Port_Moresby\",\"KIR\":\"Europe/Dublin\",\"KIS\":\"Africa/Nairobi\",\"KIT\":\"Europe/Athens\",\"KIU\":\"Africa/Nairobi\",\"KIV\":\"Europe/Chisinau\",\"KIW\":\"Africa/Lusaka\",\"KIX\":\"Asia/Tokyo\",\"KIY\":\"Africa/Dar_es_Salaam\",\"KIZ\":\"Pacific/Port_Moresby\",\"KJA\":\"Asia/Krasnoyarsk\",\"KJH\":\"Asia/Shanghai\",\"KJI\":\"Asia/Shanghai\",\"KJK\":\"Europe/Brussels\",\"KJP\":\"Asia/Tokyo\",\"KJT\":\"Asia/Jakarta\",\"KJU\":\"Pacific/Port_Moresby\",\"KKA\":\"America/Anchorage\",\"KKB\":\"America/Anchorage\",\"KKC\":\"Asia/Bangkok\",\"KKD\":\"Pacific/Port_Moresby\",\"KKE\":\"Pacific/Auckland\",\"KKF\":\"America/Anchorage\",\"KKG\":\"America/Guyana\",\"KKH\":\"America/Anchorage\",\"KKI\":\"America/Anchorage\",\"KKJ\":\"Asia/Tokyo\",\"KKK\":\"America/Anchorage\",\"KKL\":\"America/Anchorage\",\"KKM\":\"Asia/Bangkok\",\"KKN\":\"Europe/Oslo\",\"KKO\":\"Pacific/Auckland\",\"KKP\":\"Australia/Brisbane\",\"KKQ\":\"Asia/Yekaterinburg\",\"KKR\":\"Pacific/Tahiti\",\"KKS\":\"Asia/Tehran\",\"KKT\":\"America/Chicago\",\"KKU\":\"America/Anchorage\",\"KKW\":\"Africa/Kinshasa\",\"KKX\":\"Asia/Tokyo\",\"KKY\":\"Europe/Dublin\",\"KKZ\":\"Asia/Phnom_Penh\",\"KLB\":\"Africa/Lusaka\",\"KLC\":\"Africa/Dakar\",\"KLD\":\"Europe/Moscow\",\"KLE\":\"Africa/Douala\",\"KLF\":\"Europe/Moscow\",\"KLG\":\"America/Anchorage\",\"KLH\":\"Asia/Kolkata\",\"KLI\":\"Africa/Kinshasa\",\"KLJ\":\"Europe/Vilnius\",\"KLK\":\"Africa/Nairobi\",\"KLL\":\"America/Anchorage\",\"KLM\":\"Asia/Tehran\",\"KLN\":\"America/Anchorage\",\"KLO\":\"Asia/Manila\",\"KLP\":\"America/Anchorage\",\"KLQ\":\"Asia/Jakarta\",\"KLR\":\"Europe/Stockholm\",\"KLS\":\"America/Los_Angeles\",\"KLT\":\"Europe/Berlin\",\"KLU\":\"Europe/Vienna\",\"KLV\":\"Europe/Prague\",\"KLW\":\"America/Anchorage\",\"KLX\":\"Europe/Athens\",\"KLY\":\"Africa/Lubumbashi\",\"KLZ\":\"Africa/Johannesburg\",\"KMA\":\"Pacific/Port_Moresby\",\"KMB\":\"Pacific/Port_Moresby\",\"KMC\":\"Asia/Riyadh\",\"KMD\":\"Africa/Libreville\",\"KME\":\"Africa/Kigali\",\"KMF\":\"Pacific/Port_Moresby\",\"KMG\":\"Asia/Shanghai\",\"KMH\":\"Africa/Johannesburg\",\"KMI\":\"Asia/Tokyo\",\"KMJ\":\"Asia/Tokyo\",\"KMK\":\"Africa/Brazzaville\",\"KML\":\"Australia/Brisbane\",\"KMM\":\"Asia/Jayapura\",\"KMN\":\"Africa/Lubumbashi\",\"KMO\":\"America/Anchorage\",\"KMP\":\"Africa/Windhoek\",\"KMQ\":\"Asia/Tokyo\",\"KMR\":\"Pacific/Port_Moresby\",\"KMS\":\"Africa/Accra\",\"KMT\":\"Asia/Phnom_Penh\",\"KMU\":\"Africa/Mogadishu\",\"KMV\":\"Asia/Yangon\",\"KMW\":\"Europe/Moscow\",\"KMX\":\"Asia/Riyadh\",\"KMY\":\"America/Anchorage\",\"KMZ\":\"Africa/Lusaka\",\"KNA\":\"America/Santiago\",\"KNB\":\"America/Denver\",\"KNC\":\"Asia/Shanghai\",\"KND\":\"Africa/Lubumbashi\",\"KNE\":\"Pacific/Port_Moresby\",\"KNF\":\"Europe/London\",\"KNG\":\"Asia/Jayapura\",\"KNH\":\"Asia/Taipei\",\"KNI\":\"Australia/Perth\",\"KNJ\":\"Africa/Brazzaville\",\"KNK\":\"America/Anchorage\",\"KNL\":\"Pacific/Port_Moresby\",\"KNM\":\"Africa/Lubumbashi\",\"KNN\":\"Africa/Conakry\",\"KNO\":\"Asia/Jakarta\",\"KNP\":\"Africa/Luanda\",\"KNQ\":\"Pacific/Noumea\",\"KNR\":\"Asia/Tehran\",\"KNS\":\"Australia/Hobart\",\"KNT\":\"America/Chicago\",\"KNU\":\"Asia/Kolkata\",\"KNV\":\"America/Vancouver\",\"KNW\":\"America/Anchorage\",\"KNX\":\"Australia/Perth\",\"KNY\":\"America/Regina\",\"KNZ\":\"Africa/Bamako\",\"KOA\":\"Pacific/Honolulu\",\"KOB\":\"Africa/Douala\",\"KOC\":\"Pacific/Noumea\",\"KOD\":\"Asia/Makassar\",\"KOE\":\"Asia/Makassar\",\"KOF\":\"Africa/Johannesburg\",\"KOG\":\"Asia/Vientiane\",\"KOH\":\"Australia/Brisbane\",\"KOI\":\"Europe/London\",\"KOJ\":\"Asia/Tokyo\",\"KOK\":\"Europe/Helsinki\",\"KOL\":\"Africa/Bangui\",\"KOM\":\"Pacific/Port_Moresby\",\"KON\":\"Asia/Ho_Chi_Minh\",\"KOO\":\"Africa/Lubumbashi\",\"KOP\":\"Asia/Bangkok\",\"KOQ\":\"Europe/Berlin\",\"KOR\":\"Pacific/Port_Moresby\",\"KOS\":\"Asia/Phnom_Penh\",\"KOT\":\"America/Anchorage\",\"KOU\":\"Africa/Libreville\",\"KOV\":\"Asia/Almaty\",\"KOW\":\"Asia/Shanghai\",\"KOX\":\"Asia/Jayapura\",\"KOY\":\"America/Anchorage\",\"KOZ\":\"America/Anchorage\",\"KPA\":\"Pacific/Port_Moresby\",\"KPB\":\"America/Anchorage\",\"KPC\":\"America/Anchorage\",\"KPE\":\"Pacific/Port_Moresby\",\"KPF\":\"Pacific/Port_Moresby\",\"KPG\":\"America/Guyana\",\"KPH\":\"America/Anchorage\",\"KPI\":\"Asia/Kuala_Lumpur\",\"KPK\":\"America/Anchorage\",\"KPL\":\"Pacific/Port_Moresby\",\"KPM\":\"Pacific/Port_Moresby\",\"KPN\":\"America/Anchorage\",\"KPO\":\"Asia/Seoul\",\"KPP\":\"Australia/Brisbane\",\"KPR\":\"America/Anchorage\",\"KPS\":\"Australia/Sydney\",\"KPT\":\"America/Los_Angeles\",\"KPV\":\"America/Anchorage\",\"KPW\":\"Asia/Kamchatka\",\"KPY\":\"America/Anchorage\",\"KQA\":\"America/Anchorage\",\"KQB\":\"Australia/Adelaide\",\"KQH\":\"Asia/Kolkata\",\"KQL\":\"Pacific/Port_Moresby\",\"KQT\":\"Asia/Dushanbe\",\"KRA\":\"Australia/Sydney\",\"KRB\":\"Australia/Brisbane\",\"KRC\":\"Asia/Jakarta\",\"KRD\":\"Australia/Darwin\",\"KRE\":\"Africa/Bujumbura\",\"KRF\":\"Europe/Stockholm\",\"KRG\":\"America/Guyana\",\"KRH\":\"Europe/London\",\"KRI\":\"Pacific/Port_Moresby\",\"KRJ\":\"Pacific/Port_Moresby\",\"KRK\":\"Europe/Warsaw\",\"KRL\":\"Asia/Shanghai\",\"KRM\":\"America/Guyana\",\"KRN\":\"Europe/Stockholm\",\"KRO\":\"Asia/Yekaterinburg\",\"KRP\":\"Europe/Copenhagen\",\"KRQ\":\"Europe/Kiev\",\"KRR\":\"Europe/Moscow\",\"KRS\":\"Europe/Oslo\",\"KRT\":\"Africa/Khartoum\",\"KRU\":\"Pacific/Port_Moresby\",\"KRV\":\"Africa/Nairobi\",\"KRW\":\"Asia/Ashgabat\",\"KRX\":\"Pacific/Port_Moresby\",\"KRY\":\"Asia/Shanghai\",\"KRZ\":\"Africa/Kinshasa\",\"KSA\":\"Pacific/Pohnpei\",\"KSB\":\"Pacific/Port_Moresby\",\"KSC\":\"Europe/Bratislava\",\"KSD\":\"Europe/Stockholm\",\"KSE\":\"Africa/Kampala\",\"KSF\":\"Europe/Berlin\",\"KSG\":\"Pacific/Port_Moresby\",\"KSH\":\"Asia/Tehran\",\"KSI\":\"Africa/Conakry\",\"KSJ\":\"Europe/Athens\",\"KSK\":\"Europe/Stockholm\",\"KSL\":\"Africa/Khartoum\",\"KSM\":\"America/Anchorage\",\"KSN\":\"Asia/Qostanay\",\"KSO\":\"Europe/Athens\",\"KSP\":\"Pacific/Port_Moresby\",\"KSQ\":\"Asia/Tashkent\",\"KSR\":\"Asia/Makassar\",\"KSS\":\"Africa/Bamako\",\"KST\":\"Africa/Khartoum\",\"KSU\":\"Europe/Oslo\",\"KSV\":\"Australia/Brisbane\",\"KSW\":\"Asia/Jerusalem\",\"KSX\":\"Pacific/Port_Moresby\",\"KSY\":\"Europe/Istanbul\",\"KSZ\":\"Europe/Moscow\",\"KTA\":\"Australia/Perth\",\"KTB\":\"America/Anchorage\",\"KTC\":\"Africa/Abidjan\",\"KTD\":\"Asia/Tokyo\",\"KTE\":\"Asia/Kuala_Lumpur\",\"KTF\":\"Pacific/Auckland\",\"KTG\":\"Asia/Jakarta\",\"KTH\":\"America/Anchorage\",\"KTI\":\"Asia/Phnom_Penh\",\"KTJ\":\"Africa/Nairobi\",\"KTK\":\"Pacific/Bougainville\",\"KTL\":\"Africa/Nairobi\",\"KTM\":\"Asia/Kathmandu\",\"KTN\":\"America/Anchorage\",\"KTO\":\"America/Guyana\",\"KTP\":\"America/Jamaica\",\"KTQ\":\"Europe/Helsinki\",\"KTR\":\"Australia/Darwin\",\"KTS\":\"America/Anchorage\",\"KTT\":\"Europe/Helsinki\",\"KTU\":\"Asia/Kolkata\",\"KTV\":\"America/Caracas\",\"KTW\":\"Europe/Warsaw\",\"KTX\":\"Africa/Bamako\",\"KUA\":\"Asia/Kuala_Lumpur\",\"KUC\":\"Pacific/Tarawa\",\"KUD\":\"Asia/Kuala_Lumpur\",\"KUE\":\"Pacific/Guadalcanal\",\"KUF\":\"Europe/Samara\",\"KUG\":\"Australia/Brisbane\",\"KUH\":\"Asia/Tokyo\",\"KUI\":\"Pacific/Auckland\",\"KUJ\":\"Asia/Tokyo\",\"KUK\":\"America/Anchorage\",\"KUL\":\"Asia/Kuala_Lumpur\",\"KUM\":\"Asia/Tokyo\",\"KUN\":\"Europe/Vilnius\",\"KUO\":\"Europe/Helsinki\",\"KUP\":\"Pacific/Port_Moresby\",\"KUQ\":\"Pacific/Port_Moresby\",\"KUR\":\"Asia/Kabul\",\"KUS\":\"America/Godthab\",\"KUT\":\"Asia/Tbilisi\",\"KUU\":\"Asia/Kolkata\",\"KUV\":\"Asia/Seoul\",\"KUW\":\"America/Anchorage\",\"KUX\":\"Pacific/Port_Moresby\",\"KUY\":\"Pacific/Port_Moresby\",\"KUZ\":\"America/Godthab\",\"KVA\":\"Europe/Athens\",\"KVB\":\"Europe/Stockholm\",\"KVC\":\"America/Anchorage\",\"KVD\":\"Asia/Baku\",\"KVE\":\"Pacific/Port_Moresby\",\"KVG\":\"Pacific/Port_Moresby\",\"KVK\":\"Europe/Moscow\",\"KVL\":\"America/Anchorage\",\"KVO\":\"Europe/Belgrade\",\"KVR\":\"Asia/Vladivostok\",\"KVU\":\"Pacific/Fiji\",\"KVX\":\"Europe/Moscow\",\"KWA\":\"Pacific/Majuro\",\"KWB\":\"Asia/Jakarta\",\"KWE\":\"Asia/Shanghai\",\"KWF\":\"America/Anchorage\",\"KWG\":\"Europe/Kiev\",\"KWH\":\"Asia/Kabul\",\"KWI\":\"Asia/Kuwait\",\"KWJ\":\"Asia/Seoul\",\"KWK\":\"America/Anchorage\",\"KWL\":\"Asia/Shanghai\",\"KWM\":\"Australia/Brisbane\",\"KWN\":\"America/Anchorage\",\"KWO\":\"Pacific/Port_Moresby\",\"KWP\":\"America/Anchorage\",\"KWR\":\"Pacific/Guadalcanal\",\"KWS\":\"Pacific/Guadalcanal\",\"KWT\":\"America/Anchorage\",\"KWV\":\"Pacific/Bougainville\",\"KWX\":\"Pacific/Port_Moresby\",\"KWY\":\"Africa/Nairobi\",\"KWZ\":\"Africa/Lubumbashi\",\"KXA\":\"America/Anchorage\",\"KXE\":\"Africa/Johannesburg\",\"KXF\":\"Pacific/Fiji\",\"KXK\":\"Asia/Vladivostok\",\"KXR\":\"Pacific/Bougainville\",\"KXU\":\"Pacific/Tahiti\",\"KYA\":\"Europe/Istanbul\",\"KYD\":\"Asia/Taipei\",\"KYE\":\"Asia/Beirut\",\"KYF\":\"Australia/Perth\",\"KYI\":\"Australia/Adelaide\",\"KYK\":\"America/Anchorage\",\"KYL\":\"America/New_York\",\"KYN\":\"Europe/London\",\"KYO\":\"America/New_York\",\"KYP\":\"Asia/Yangon\",\"KYS\":\"Africa/Bamako\",\"KYT\":\"Asia/Yangon\",\"KYU\":\"America/Anchorage\",\"KYX\":\"Pacific/Port_Moresby\",\"KYZ\":\"Asia/Krasnoyarsk\",\"KZB\":\"America/Anchorage\",\"KZC\":\"Asia/Phnom_Penh\",\"KZD\":\"Asia/Phnom_Penh\",\"KZF\":\"Pacific/Port_Moresby\",\"KZG\":\"Europe/Berlin\",\"KZH\":\"America/Anchorage\",\"KZI\":\"Europe/Athens\",\"KZK\":\"Asia/Phnom_Penh\",\"KZN\":\"Europe/Moscow\",\"KZO\":\"Asia/Qyzylorda\",\"KZR\":\"Europe/Istanbul\",\"KZS\":\"Europe/Athens\",\"LAA\":\"America/Denver\",\"LAB\":\"Pacific/Port_Moresby\",\"LAC\":\"Asia/Kuala_Lumpur\",\"LAD\":\"Africa/Luanda\",\"LAE\":\"Pacific/Port_Moresby\",\"LAF\":\"America/Indiana/Indianapolis\",\"LAG\":\"America/Caracas\",\"LAH\":\"Asia/Jayapura\",\"LAI\":\"Europe/Paris\",\"LAJ\":\"America/Sao_Paulo\",\"LAK\":\"America/Edmonton\",\"LAL\":\"America/New_York\",\"LAM\":\"America/Denver\",\"LAN\":\"America/New_York\",\"LAO\":\"Asia/Manila\",\"LAP\":\"America/Mazatlan\",\"LAQ\":\"Africa/Tripoli\",\"LAR\":\"America/Denver\",\"LAS\":\"America/Los_Angeles\",\"LAU\":\"Africa/Nairobi\",\"LAV\":\"Pacific/Apia\",\"LAW\":\"America/Chicago\",\"LAX\":\"America/Los_Angeles\",\"LAY\":\"Africa/Johannesburg\",\"LAZ\":\"America/Belem\",\"LBA\":\"Europe/London\",\"LBB\":\"America/Chicago\",\"LBC\":\"Europe/Berlin\",\"LBD\":\"Asia/Dushanbe\",\"LBE\":\"America/New_York\",\"LBF\":\"America/Chicago\",\"LBG\":\"Europe/Paris\",\"LBH\":\"Australia/Sydney\",\"LBI\":\"Europe/Paris\",\"LBJ\":\"Asia/Makassar\",\"LBK\":\"Africa/Nairobi\",\"LBL\":\"America/Chicago\",\"LBM\":\"Africa/Maputo\",\"LBN\":\"Africa/Nairobi\",\"LBO\":\"Africa/Lubumbashi\",\"LBP\":\"Asia/Kuala_Lumpur\",\"LBQ\":\"Africa/Libreville\",\"LBR\":\"America/Porto_Velho\",\"LBS\":\"Pacific/Fiji\",\"LBT\":\"America/New_York\",\"LBU\":\"Asia/Kuala_Lumpur\",\"LBV\":\"Africa/Libreville\",\"LBW\":\"Asia/Makassar\",\"LBX\":\"Asia/Manila\",\"LBY\":\"Europe/Paris\",\"LBZ\":\"Africa/Luanda\",\"LCA\":\"Asia/Nicosia\",\"LCB\":\"America/Campo_Grande\",\"LCC\":\"Europe/Rome\",\"LCD\":\"Africa/Johannesburg\",\"LCE\":\"America/Tegucigalpa\",\"LCF\":\"America/Guatemala\",\"LCG\":\"Europe/Madrid\",\"LCH\":\"America/Chicago\",\"LCI\":\"America/New_York\",\"LCJ\":\"Europe/Warsaw\",\"LCK\":\"America/New_York\",\"LCL\":\"America/Havana\",\"LCM\":\"America/Argentina/Buenos_Aires\",\"LCN\":\"Australia/Adelaide\",\"LCO\":\"Africa/Brazzaville\",\"LCP\":\"America/Argentina/Buenos_Aires\",\"LCQ\":\"America/New_York\",\"LCR\":\"America/Bogota\",\"LCS\":\"America/Costa_Rica\",\"LCV\":\"Europe/Rome\",\"LCX\":\"Asia/Shanghai\",\"LCY\":\"Europe/London\",\"LDA\":\"Asia/Kolkata\",\"LDB\":\"America/Sao_Paulo\",\"LDC\":\"Australia/Brisbane\",\"LDE\":\"Europe/Paris\",\"LDG\":\"Europe/Moscow\",\"LDH\":\"Australia/Sydney\",\"LDI\":\"Africa/Dar_es_Salaam\",\"LDJ\":\"America/New_York\",\"LDK\":\"Europe/Stockholm\",\"LDM\":\"America/New_York\",\"LDN\":\"Asia/Kathmandu\",\"LDO\":\"America/Paramaribo\",\"LDR\":\"Asia/Aden\",\"LDS\":\"Asia/Shanghai\",\"LDU\":\"Asia/Kuala_Lumpur\",\"LDV\":\"Europe/Paris\",\"LDW\":\"Australia/Perth\",\"LDX\":\"America/Cayenne\",\"LDY\":\"Europe/London\",\"LDZ\":\"Africa/Johannesburg\",\"LEA\":\"Australia/Perth\",\"LEB\":\"America/New_York\",\"LEC\":\"America/Belem\",\"LED\":\"Europe/Moscow\",\"LEE\":\"America/New_York\",\"LEF\":\"Africa/Maseru\",\"LEG\":\"Africa/Nouakchott\",\"LEH\":\"Europe/Paris\",\"LEI\":\"Europe/Madrid\",\"LEJ\":\"Europe/Berlin\",\"LEK\":\"Africa/Conakry\",\"LEL\":\"Australia/Darwin\",\"LEM\":\"America/Denver\",\"LEN\":\"Europe/Madrid\",\"LEO\":\"Africa/Libreville\",\"LEP\":\"America/Sao_Paulo\",\"LEQ\":\"Europe/London\",\"LER\":\"Australia/Perth\",\"LES\":\"Africa/Maseru\",\"LET\":\"America/Bogota\",\"LEU\":\"Europe/Madrid\",\"LEV\":\"Pacific/Fiji\",\"LEW\":\"America/New_York\",\"LEX\":\"America/New_York\",\"LEY\":\"Europe/Amsterdam\",\"LEZ\":\"America/Tegucigalpa\",\"LFB\":\"Africa/Maputo\",\"LFI\":\"America/New_York\",\"LFK\":\"America/Chicago\",\"LFM\":\"Asia/Tehran\",\"LFN\":\"America/New_York\",\"LFO\":\"Africa/Addis_Ababa\",\"LFP\":\"Australia/Brisbane\",\"LFQ\":\"Asia/Shanghai\",\"LFR\":\"America/Caracas\",\"LFT\":\"America/Chicago\",\"LFW\":\"Africa/Lome\",\"LGA\":\"America/New_York\",\"LGB\":\"America/Los_Angeles\",\"LGC\":\"America/New_York\",\"LGD\":\"America/Los_Angeles\",\"LGE\":\"Australia/Perth\",\"LGF\":\"America/Phoenix\",\"LGG\":\"Europe/Brussels\",\"LGH\":\"Australia/Adelaide\",\"LGI\":\"America/Nassau\",\"LGK\":\"Asia/Kuala_Lumpur\",\"LGL\":\"Asia/Kuala_Lumpur\",\"LGM\":\"Pacific/Port_Moresby\",\"LGN\":\"Pacific/Port_Moresby\",\"LGO\":\"Europe/Berlin\",\"LGP\":\"Asia/Manila\",\"LGQ\":\"America/Guayaquil\",\"LGR\":\"America/Santiago\",\"LGS\":\"America/Argentina/Buenos_Aires\",\"LGT\":\"America/Bogota\",\"LGU\":\"America/Denver\",\"LGW\":\"Europe/London\",\"LGX\":\"Africa/Mogadishu\",\"LGY\":\"America/Caracas\",\"LHA\":\"Europe/Berlin\",\"LHB\":\"America/Anchorage\",\"LHE\":\"Asia/Karachi\",\"LHG\":\"Australia/Sydney\",\"LHI\":\"Asia/Jayapura\",\"LHK\":\"Asia/Shanghai\",\"LHN\":\"Asia/Taipei\",\"LHP\":\"Pacific/Bougainville\",\"LHR\":\"Europe/London\",\"LHS\":\"America/Argentina/Buenos_Aires\",\"LHU\":\"Africa/Windhoek\",\"LHV\":\"America/New_York\",\"LHW\":\"Asia/Shanghai\",\"LIA\":\"Asia/Shanghai\",\"LIB\":\"Australia/Darwin\",\"LIC\":\"America/Denver\",\"LID\":\"Europe/Amsterdam\",\"LIE\":\"Africa/Kinshasa\",\"LIF\":\"Pacific/Noumea\",\"LIG\":\"Europe/Paris\",\"LIH\":\"Pacific/Honolulu\",\"LII\":\"Asia/Jayapura\",\"LIJ\":\"America/Anchorage\",\"LIK\":\"Pacific/Majuro\",\"LIL\":\"Europe/Paris\",\"LIM\":\"America/Lima\",\"LIN\":\"Europe/Rome\",\"LIO\":\"America/Costa_Rica\",\"LIP\":\"America/Sao_Paulo\",\"LIQ\":\"Africa/Kinshasa\",\"LIR\":\"America/Costa_Rica\",\"LIS\":\"Europe/Lisbon\",\"LIT\":\"America/Chicago\",\"LIU\":\"Europe/Rome\",\"LIV\":\"America/Anchorage\",\"LIW\":\"Asia/Yangon\",\"LIX\":\"Africa/Blantyre\",\"LIY\":\"America/New_York\",\"LIZ\":\"America/New_York\",\"LJA\":\"Africa/Lubumbashi\",\"LJC\":\"America/New_York\",\"LJG\":\"Asia/Shanghai\",\"LJN\":\"America/Chicago\",\"LJU\":\"Europe/Ljubljana\",\"LKA\":\"Asia/Makassar\",\"LKB\":\"Pacific/Fiji\",\"LKC\":\"Africa/Brazzaville\",\"LKD\":\"Australia/Brisbane\",\"LKE\":\"America/Los_Angeles\",\"LKG\":\"Africa/Nairobi\",\"LKH\":\"Asia/Kuala_Lumpur\",\"LKI\":\"America/Chicago\",\"LKK\":\"America/Anchorage\",\"LKL\":\"Europe/Oslo\",\"LKN\":\"Europe/Oslo\",\"LKO\":\"Asia/Kolkata\",\"LKP\":\"America/New_York\",\"LKR\":\"Africa/Mogadishu\",\"LKS\":\"America/Chicago\",\"LKT\":\"Africa/Abidjan\",\"LKU\":\"Africa/Nairobi\",\"LKV\":\"America/Los_Angeles\",\"LKY\":\"Africa/Dar_es_Salaam\",\"LKZ\":\"Europe/London\",\"LLA\":\"Europe/Stockholm\",\"LLB\":\"Asia/Shanghai\",\"LLC\":\"Asia/Manila\",\"LLE\":\"Africa/Johannesburg\",\"LLF\":\"Asia/Shanghai\",\"LLG\":\"Australia/Brisbane\",\"LLH\":\"America/Tegucigalpa\",\"LLI\":\"Africa/Addis_Ababa\",\"LLJ\":\"Asia/Makassar\",\"LLK\":\"Asia/Baku\",\"LLL\":\"Australia/Perth\",\"LLM\":\"Pacific/Guadalcanal\",\"LLN\":\"Asia/Jayapura\",\"LLO\":\"Asia/Makassar\",\"LLP\":\"Australia/Brisbane\",\"LLS\":\"America/Argentina/Buenos_Aires\",\"LLU\":\"America/Godthab\",\"LLV\":\"Asia/Shanghai\",\"LLW\":\"Africa/Blantyre\",\"LLX\":\"America/New_York\",\"LLY\":\"America/New_York\",\"LMA\":\"America/Anchorage\",\"LMB\":\"Africa/Blantyre\",\"LMC\":\"America/Bogota\",\"LMD\":\"America/Argentina/Buenos_Aires\",\"LME\":\"Europe/Paris\",\"LMG\":\"Pacific/Port_Moresby\",\"LMH\":\"America/Tegucigalpa\",\"LMI\":\"Pacific/Port_Moresby\",\"LML\":\"Pacific/Majuro\",\"LMM\":\"America/Mazatlan\",\"LMN\":\"Asia/Kuala_Lumpur\",\"LMO\":\"Europe/London\",\"LMP\":\"Europe/Rome\",\"LMQ\":\"Africa/Tripoli\",\"LMR\":\"Africa/Johannesburg\",\"LMS\":\"America/Chicago\",\"LMT\":\"America/Los_Angeles\",\"LMU\":\"Asia/Jakarta\",\"LMX\":\"America/Bogota\",\"LMY\":\"Pacific/Port_Moresby\",\"LMZ\":\"Africa/Maputo\",\"LNA\":\"America/New_York\",\"LNB\":\"Pacific/Efate\",\"LNC\":\"Pacific/Port_Moresby\",\"LND\":\"America/Denver\",\"LNE\":\"Pacific/Efate\",\"LNF\":\"Pacific/Port_Moresby\",\"LNG\":\"Pacific/Port_Moresby\",\"LNH\":\"Australia/Darwin\",\"LNI\":\"America/Anchorage\",\"LNJ\":\"Asia/Shanghai\",\"LNK\":\"America/Chicago\",\"LNL\":\"Asia/Shanghai\",\"LNM\":\"Pacific/Port_Moresby\",\"LNN\":\"America/New_York\",\"LNO\":\"Australia/Perth\",\"LNP\":\"America/New_York\",\"LNQ\":\"Pacific/Port_Moresby\",\"LNR\":\"America/Chicago\",\"LNS\":\"America/New_York\",\"LNU\":\"Asia/Makassar\",\"LNV\":\"Pacific/Port_Moresby\",\"LNX\":\"Europe/Moscow\",\"LNY\":\"Pacific/Honolulu\",\"LNZ\":\"Europe/Vienna\",\"LOA\":\"Australia/Brisbane\",\"LOB\":\"America/Santiago\",\"LOC\":\"Australia/Adelaide\",\"LOD\":\"Pacific/Efate\",\"LOE\":\"Asia/Bangkok\",\"LOF\":\"Pacific/Majuro\",\"LOG\":\"America/Los_Angeles\",\"LOH\":\"America/Guayaquil\",\"LOI\":\"America/Sao_Paulo\",\"LOK\":\"Africa/Nairobi\",\"LOL\":\"America/Los_Angeles\",\"LOM\":\"America/Mexico_City\",\"LOO\":\"Africa/Algiers\",\"LOP\":\"Asia/Makassar\",\"LOQ\":\"Africa/Gaborone\",\"LOR\":\"America/Chicago\",\"LOS\":\"Africa/Lagos\",\"LOT\":\"America/Chicago\",\"LOU\":\"America/New_York\",\"LOV\":\"America/Mexico_City\",\"LOW\":\"America/New_York\",\"LOY\":\"Africa/Nairobi\",\"LOZ\":\"America/New_York\",\"LPA\":\"Atlantic/Canary\",\"LPB\":\"America/La_Paz\",\"LPC\":\"America/Los_Angeles\",\"LPD\":\"America/Bogota\",\"LPE\":\"America/Bogota\",\"LPF\":\"Asia/Shanghai\",\"LPG\":\"America/Argentina/Buenos_Aires\",\"LPH\":\"Europe/London\",\"LPI\":\"Europe/Stockholm\",\"LPJ\":\"America/Caracas\",\"LPK\":\"Europe/Moscow\",\"LPL\":\"Europe/London\",\"LPM\":\"Pacific/Efate\",\"LPO\":\"America/Chicago\",\"LPP\":\"Europe/Helsinki\",\"LPQ\":\"Asia/Vientiane\",\"LPS\":\"America/Los_Angeles\",\"LPT\":\"Asia/Bangkok\",\"LPU\":\"Asia/Makassar\",\"LPW\":\"America/Anchorage\",\"LPX\":\"Europe/Riga\",\"LPY\":\"Europe/Paris\",\"LQK\":\"America/New_York\",\"LQM\":\"America/Bogota\",\"LQN\":\"Asia/Kabul\",\"LRA\":\"Europe/Athens\",\"LRB\":\"Africa/Maseru\",\"LRD\":\"America/Chicago\",\"LRE\":\"Australia/Brisbane\",\"LRF\":\"America/Chicago\",\"LRG\":\"Asia/Karachi\",\"LRH\":\"Europe/Paris\",\"LRI\":\"America/Bogota\",\"LRJ\":\"America/Chicago\",\"LRL\":\"Africa/Lome\",\"LRM\":\"America/Santo_Domingo\",\"LRN\":\"America/Los_Angeles\",\"LRO\":\"America/Los_Angeles\",\"LRQ\":\"America/Winnipeg\",\"LRR\":\"Asia/Tehran\",\"LRS\":\"Europe/Athens\",\"LRT\":\"Europe/Paris\",\"LRU\":\"America/Denver\",\"LRV\":\"America/Caracas\",\"LSA\":\"Pacific/Port_Moresby\",\"LSB\":\"America/Denver\",\"LSC\":\"America/Santiago\",\"LSE\":\"America/Chicago\",\"LSF\":\"America/New_York\",\"LSH\":\"Asia/Yangon\",\"LSI\":\"Europe/London\",\"LSJ\":\"Pacific/Port_Moresby\",\"LSK\":\"America/Denver\",\"LSL\":\"America/Costa_Rica\",\"LSM\":\"Asia/Kuala_Lumpur\",\"LSN\":\"America/Los_Angeles\",\"LSO\":\"Europe/Paris\",\"LSP\":\"America/Caracas\",\"LSQ\":\"America/Santiago\",\"LSR\":\"America/Anchorage\",\"LSS\":\"America/Guadeloupe\",\"LST\":\"Australia/Hobart\",\"LSU\":\"Asia/Kuala_Lumpur\",\"LSV\":\"America/Los_Angeles\",\"LSW\":\"Asia/Jakarta\",\"LSX\":\"Asia/Jakarta\",\"LSY\":\"Australia/Sydney\",\"LSZ\":\"Europe/Zagreb\",\"LTA\":\"Africa/Johannesburg\",\"LTB\":\"Australia/Hobart\",\"LTC\":\"Africa/Ndjamena\",\"LTD\":\"Africa/Tripoli\",\"LTF\":\"Pacific/Port_Moresby\",\"LTG\":\"Asia/Kathmandu\",\"LTH\":\"America/Los_Angeles\",\"LTI\":\"Asia/Ulaanbaatar\",\"LTK\":\"Asia/Damascus\",\"LTL\":\"Africa/Libreville\",\"LTM\":\"America/Guyana\",\"LTN\":\"Europe/London\",\"LTO\":\"America/Mazatlan\",\"LTP\":\"Australia/Brisbane\",\"LTQ\":\"Europe/Paris\",\"LTR\":\"Europe/Dublin\",\"LTS\":\"America/Chicago\",\"LTT\":\"Europe/Paris\",\"LTU\":\"Asia/Kolkata\",\"LTV\":\"Australia/Brisbane\",\"LTW\":\"America/New_York\",\"LTX\":\"America/Guayaquil\",\"LUA\":\"Asia/Kathmandu\",\"LUB\":\"America/Guyana\",\"LUC\":\"Pacific/Fiji\",\"LUD\":\"Africa/Windhoek\",\"LUE\":\"Europe/Bratislava\",\"LUF\":\"America/Phoenix\",\"LUG\":\"Europe/Zurich\",\"LUH\":\"Asia/Kolkata\",\"LUI\":\"America/Tegucigalpa\",\"LUJ\":\"Africa/Johannesburg\",\"LUK\":\"America/New_York\",\"LUL\":\"America/Chicago\",\"LUM\":\"Asia/Shanghai\",\"LUN\":\"Africa/Lusaka\",\"LUO\":\"Africa/Luanda\",\"LUP\":\"Pacific/Honolulu\",\"LUQ\":\"America/Argentina/Buenos_Aires\",\"LUR\":\"America/Anchorage\",\"LUS\":\"Africa/Kinshasa\",\"LUT\":\"Australia/Brisbane\",\"LUU\":\"Australia/Brisbane\",\"LUV\":\"Asia/Jayapura\",\"LUW\":\"Asia/Makassar\",\"LUX\":\"Europe/Luxembourg\",\"LUZ\":\"Europe/Warsaw\",\"LVA\":\"Europe/Paris\",\"LVB\":\"America/Sao_Paulo\",\"LVD\":\"America/Anchorage\",\"LVI\":\"Africa/Lusaka\",\"LVK\":\"America/Los_Angeles\",\"LVL\":\"America/New_York\",\"LVM\":\"America/Denver\",\"LVO\":\"Australia/Perth\",\"LVP\":\"Asia/Tehran\",\"LVS\":\"America/Denver\",\"LWA\":\"Asia/Manila\",\"LWB\":\"America/New_York\",\"LWC\":\"America/Chicago\",\"LWE\":\"Asia/Makassar\",\"LWH\":\"Australia/Brisbane\",\"LWI\":\"Pacific/Port_Moresby\",\"LWK\":\"Europe/London\",\"LWL\":\"America/Los_Angeles\",\"LWM\":\"America/New_York\",\"LWN\":\"Asia/Yerevan\",\"LWO\":\"Europe/Kiev\",\"LWR\":\"Europe/Amsterdam\",\"LWS\":\"America/Los_Angeles\",\"LWT\":\"America/Denver\",\"LWV\":\"America/Chicago\",\"LWY\":\"Asia/Kuala_Lumpur\",\"LXA\":\"Asia/Shanghai\",\"LXG\":\"Asia/Vientiane\",\"LXI\":\"Asia/Shanghai\",\"LXN\":\"America/Chicago\",\"LXR\":\"Africa/Cairo\",\"LXS\":\"Europe/Athens\",\"LXU\":\"Africa/Lusaka\",\"LXV\":\"America/Denver\",\"LYA\":\"Asia/Shanghai\",\"LYB\":\"America/Cayman\",\"LYC\":\"Europe/Stockholm\",\"LYE\":\"Europe/London\",\"LYG\":\"Asia/Shanghai\",\"LYH\":\"America/New_York\",\"LYI\":\"Asia/Shanghai\",\"LYK\":\"Asia/Makassar\",\"LYN\":\"Europe/Paris\",\"LYO\":\"America/Chicago\",\"LYP\":\"Asia/Karachi\",\"LYR\":\"Arctic/Longyearbyen\",\"LYS\":\"Europe/Paris\",\"LYT\":\"Australia/Brisbane\",\"LYU\":\"America/Chicago\",\"LYX\":\"Europe/London\",\"LZA\":\"Africa/Kinshasa\",\"LZC\":\"America/Mexico_City\",\"LZD\":\"Asia/Shanghai\",\"LZH\":\"Asia/Shanghai\",\"LZI\":\"Africa/Kinshasa\",\"LZM\":\"Africa/Luanda\",\"LZN\":\"Asia/Shanghai\",\"LZO\":\"Asia/Shanghai\",\"LZR\":\"Australia/Brisbane\",\"LZY\":\"Asia/Shanghai\",\"MAA\":\"Asia/Kolkata\",\"MAB\":\"America/Belem\",\"MAC\":\"America/New_York\",\"MAD\":\"Europe/Madrid\",\"MAE\":\"America/Los_Angeles\",\"MAF\":\"America/Chicago\",\"MAG\":\"Pacific/Port_Moresby\",\"MAH\":\"Europe/Madrid\",\"MAI\":\"Africa/Blantyre\",\"MAJ\":\"Pacific/Majuro\",\"MAK\":\"Africa/Juba\",\"MAL\":\"Asia/Jayapura\",\"MAM\":\"America/Matamoros\",\"MAN\":\"Europe/London\",\"MAO\":\"America/Porto_Velho\",\"MAP\":\"Pacific/Port_Moresby\",\"MAQ\":\"Asia/Bangkok\",\"MAR\":\"America/Caracas\",\"MAS\":\"Pacific/Port_Moresby\",\"MAT\":\"Africa/Kinshasa\",\"MAU\":\"Pacific/Tahiti\",\"MAV\":\"Pacific/Majuro\",\"MAW\":\"America/Chicago\",\"MAX\":\"Africa/Dakar\",\"MAY\":\"America/Nassau\",\"MAZ\":\"America/Puerto_Rico\",\"MBA\":\"Africa/Nairobi\",\"MBB\":\"Australia/Perth\",\"MBC\":\"Africa/Libreville\",\"MBD\":\"Africa/Johannesburg\",\"MBE\":\"Asia/Tokyo\",\"MBF\":\"Australia/Sydney\",\"MBG\":\"America/Chicago\",\"MBH\":\"Australia/Brisbane\",\"MBI\":\"Africa/Dar_es_Salaam\",\"MBJ\":\"America/Jamaica\",\"MBK\":\"America/Campo_Grande\",\"MBL\":\"America/New_York\",\"MBM\":\"Africa/Johannesburg\",\"MBN\":\"Australia/Perth\",\"MBO\":\"Asia/Manila\",\"MBP\":\"America/Lima\",\"MBQ\":\"Africa/Kampala\",\"MBR\":\"Africa/Nouakchott\",\"MBS\":\"America/New_York\",\"MBT\":\"Asia/Manila\",\"MBU\":\"Pacific/Guadalcanal\",\"MBV\":\"Pacific/Port_Moresby\",\"MBW\":\"Australia/Sydney\",\"MBX\":\"Europe/Ljubljana\",\"MBY\":\"America/Chicago\",\"MBZ\":\"America/Porto_Velho\",\"MCA\":\"Africa/Conakry\",\"MCB\":\"America/Chicago\",\"MCC\":\"America/Los_Angeles\",\"MCD\":\"America/New_York\",\"MCE\":\"America/Los_Angeles\",\"MCF\":\"America/New_York\",\"MCG\":\"America/Anchorage\",\"MCH\":\"America/Guayaquil\",\"MCI\":\"America/Chicago\",\"MCJ\":\"America/Bogota\",\"MCK\":\"America/Chicago\",\"MCL\":\"America/Anchorage\",\"MCM\":\"Europe/Monaco\",\"MCN\":\"America/New_York\",\"MCO\":\"America/New_York\",\"MCP\":\"America/Belem\",\"MCQ\":\"Europe/Budapest\",\"MCR\":\"America/Guatemala\",\"MCS\":\"America/Argentina/Buenos_Aires\",\"MCT\":\"Asia/Muscat\",\"MCU\":\"Europe/Paris\",\"MCV\":\"Australia/Darwin\",\"MCW\":\"America/Chicago\",\"MCX\":\"Europe/Moscow\",\"MCY\":\"Australia/Brisbane\",\"MCZ\":\"America/Belem\",\"MDA\":\"America/Chicago\",\"MDB\":\"America/Belize\",\"MDC\":\"Asia/Makassar\",\"MDD\":\"America/Chicago\",\"MDE\":\"America/Bogota\",\"MDF\":\"America/Chicago\",\"MDG\":\"Asia/Shanghai\",\"MDH\":\"America/Chicago\",\"MDI\":\"Africa/Lagos\",\"MDJ\":\"America/Los_Angeles\",\"MDK\":\"Africa/Kinshasa\",\"MDL\":\"Asia/Yangon\",\"MDM\":\"Pacific/Port_Moresby\",\"MDN\":\"America/Indiana/Indianapolis\",\"MDO\":\"America/Anchorage\",\"MDP\":\"Asia/Jayapura\",\"MDQ\":\"America/Argentina/Buenos_Aires\",\"MDR\":\"Africa/Nairobi\",\"MDS\":\"America/Grand_Turk\",\"MDT\":\"America/New_York\",\"MDU\":\"Pacific/Port_Moresby\",\"MDV\":\"Africa/Libreville\",\"MDW\":\"America/Chicago\",\"MDX\":\"America/Argentina/Buenos_Aires\",\"MDY\":\"Pacific/Midway\",\"MDZ\":\"America/Argentina/Buenos_Aires\",\"MEA\":\"America/Sao_Paulo\",\"MEB\":\"Australia/Sydney\",\"MEC\":\"America/Guayaquil\",\"MED\":\"Asia/Riyadh\",\"MEE\":\"Pacific/Noumea\",\"MEF\":\"Africa/Ndjamena\",\"MEG\":\"Africa/Luanda\",\"MEH\":\"Europe/Oslo\",\"MEI\":\"America/Chicago\",\"MEJ\":\"America/New_York\",\"MEK\":\"Africa/Casablanca\",\"MEL\":\"Australia/Sydney\",\"MEM\":\"America/Chicago\",\"MEN\":\"Europe/Paris\",\"MEO\":\"America/New_York\",\"MEP\":\"Asia/Kuala_Lumpur\",\"MEQ\":\"Asia/Jakarta\",\"MER\":\"America/Los_Angeles\",\"MES\":\"Asia/Jakarta\",\"MET\":\"Australia/Brisbane\",\"MEU\":\"America/Belem\",\"MEV\":\"America/Los_Angeles\",\"MEW\":\"Africa/Lubumbashi\",\"MEX\":\"America/Mexico_City\",\"MEY\":\"Asia/Kathmandu\",\"MEZ\":\"Africa/Johannesburg\",\"MFA\":\"Africa/Dar_es_Salaam\",\"MFB\":\"America/Bogota\",\"MFC\":\"Africa/Maseru\",\"MFD\":\"America/New_York\",\"MFE\":\"America/Chicago\",\"MFF\":\"Africa/Libreville\",\"MFG\":\"Asia/Karachi\",\"MFH\":\"America/Los_Angeles\",\"MFI\":\"America/Chicago\",\"MFJ\":\"Pacific/Fiji\",\"MFK\":\"Asia/Taipei\",\"MFL\":\"Australia/Brisbane\",\"MFM\":\"Asia/Macau\",\"MFN\":\"Pacific/Auckland\",\"MFO\":\"Pacific/Port_Moresby\",\"MFP\":\"Australia/Darwin\",\"MFQ\":\"Africa/Niamey\",\"MFR\":\"America/Los_Angeles\",\"MFS\":\"America/Bogota\",\"MFT\":\"America/Lima\",\"MFU\":\"Africa/Lusaka\",\"MFV\":\"America/New_York\",\"MFW\":\"Africa/Maputo\",\"MFX\":\"Europe/Paris\",\"MFY\":\"Asia/Aden\",\"MFZ\":\"Pacific/Port_Moresby\",\"MGA\":\"America/Managua\",\"MGB\":\"Australia/Adelaide\",\"MGC\":\"America/Chicago\",\"MGD\":\"America/La_Paz\",\"MGE\":\"America/New_York\",\"MGF\":\"America/Sao_Paulo\",\"MGG\":\"Pacific/Port_Moresby\",\"MGH\":\"Africa/Johannesburg\",\"MGI\":\"America/Chicago\",\"MGJ\":\"America/New_York\",\"MGK\":\"Asia/Yangon\",\"MGL\":\"Europe/Berlin\",\"MGM\":\"America/Chicago\",\"MGN\":\"America/Bogota\",\"MGO\":\"Africa/Libreville\",\"MGP\":\"Pacific/Port_Moresby\",\"MGQ\":\"Africa/Mogadishu\",\"MGR\":\"America/New_York\",\"MGS\":\"Pacific/Rarotonga\",\"MGT\":\"Australia/Darwin\",\"MGU\":\"Asia/Yangon\",\"MGV\":\"Australia/Perth\",\"MGW\":\"America/New_York\",\"MGX\":\"Africa/Libreville\",\"MGY\":\"America/New_York\",\"MGZ\":\"Asia/Yangon\",\"MHA\":\"America/Guyana\",\"MHB\":\"Pacific/Auckland\",\"MHC\":\"America/Santiago\",\"MHD\":\"Asia/Tehran\",\"MHE\":\"America/Chicago\",\"MHF\":\"America/Bogota\",\"MHG\":\"Europe/Berlin\",\"MHH\":\"America/Nassau\",\"MHI\":\"Africa/Djibouti\",\"MHK\":\"America/Chicago\",\"MHL\":\"America/Chicago\",\"MHM\":\"Pacific/Guadalcanal\",\"MHN\":\"America/Denver\",\"MHO\":\"Australia/Perth\",\"MHP\":\"Europe/Minsk\",\"MHQ\":\"Europe/Helsinki\",\"MHR\":\"America/Los_Angeles\",\"MHS\":\"America/Los_Angeles\",\"MHT\":\"America/New_York\",\"MHU\":\"Australia/Sydney\",\"MHV\":\"America/Los_Angeles\",\"MHW\":\"America/La_Paz\",\"MHX\":\"Pacific/Rarotonga\",\"MHY\":\"Pacific/Port_Moresby\",\"MHZ\":\"Europe/London\",\"MIA\":\"America/New_York\",\"MIB\":\"America/Chicago\",\"MIC\":\"America/Chicago\",\"MID\":\"America/Mexico_City\",\"MIE\":\"America/Indiana/Indianapolis\",\"MIF\":\"America/Chicago\",\"MIG\":\"Asia/Shanghai\",\"MIH\":\"Australia/Perth\",\"MII\":\"America/Sao_Paulo\",\"MIJ\":\"Pacific/Majuro\",\"MIK\":\"Europe/Helsinki\",\"MIM\":\"Australia/Sydney\",\"MIN\":\"Australia/Adelaide\",\"MIO\":\"America/Chicago\",\"MIP\":\"Asia/Jerusalem\",\"MIQ\":\"America/Chicago\",\"MIR\":\"Africa/Tunis\",\"MIS\":\"Pacific/Port_Moresby\",\"MIT\":\"America/Los_Angeles\",\"MIU\":\"Africa/Lagos\",\"MIV\":\"America/New_York\",\"MIW\":\"America/Chicago\",\"MIX\":\"America/Bogota\",\"MIZ\":\"Australia/Darwin\",\"MJA\":\"Indian/Antananarivo\",\"MJB\":\"Pacific/Majuro\",\"MJC\":\"Africa/Abidjan\",\"MJD\":\"Asia/Karachi\",\"MJE\":\"Pacific/Majuro\",\"MJF\":\"Europe/Oslo\",\"MJG\":\"America/Havana\",\"MJH\":\"Asia/Riyadh\",\"MJI\":\"Africa/Tripoli\",\"MJJ\":\"Pacific/Port_Moresby\",\"MJK\":\"Australia/Perth\",\"MJL\":\"Africa/Libreville\",\"MJM\":\"Africa/Lubumbashi\",\"MJN\":\"Indian/Antananarivo\",\"MJO\":\"Africa/Windhoek\",\"MJP\":\"Australia/Perth\",\"MJQ\":\"America/Chicago\",\"MJR\":\"America/Argentina/Buenos_Aires\",\"MJT\":\"Europe/Athens\",\"MJU\":\"Asia/Makassar\",\"MJV\":\"Europe/Madrid\",\"MJW\":\"Africa/Harare\",\"MJX\":\"America/New_York\",\"MJY\":\"Asia/Jakarta\",\"MJZ\":\"Asia/Yakutsk\",\"MKA\":\"Europe/Prague\",\"MKB\":\"Africa/Libreville\",\"MKC\":\"America/Chicago\",\"MKD\":\"Africa/Addis_Ababa\",\"MKE\":\"America/Chicago\",\"MKF\":\"America/New_York\",\"MKG\":\"America/New_York\",\"MKH\":\"Africa/Maseru\",\"MKI\":\"Africa/Bangui\",\"MKJ\":\"Africa/Brazzaville\",\"MKK\":\"Pacific/Honolulu\",\"MKL\":\"America/Chicago\",\"MKM\":\"Asia/Kuala_Lumpur\",\"MKN\":\"Pacific/Port_Moresby\",\"MKO\":\"America/Chicago\",\"MKP\":\"Pacific/Tahiti\",\"MKQ\":\"Asia/Jayapura\",\"MKR\":\"Australia/Perth\",\"MKS\":\"Africa/Addis_Ababa\",\"MKT\":\"America/Chicago\",\"MKU\":\"Africa/Libreville\",\"MKV\":\"Australia/Darwin\",\"MKW\":\"Asia/Jayapura\",\"MKX\":\"Asia/Aden\",\"MKY\":\"Australia/Brisbane\",\"MKZ\":\"Asia/Kuala_Lumpur\",\"MLA\":\"Europe/Malta\",\"MLB\":\"America/New_York\",\"MLC\":\"America/Chicago\",\"MLD\":\"America/Denver\",\"MLE\":\"Indian/Maldives\",\"MLF\":\"America/Denver\",\"MLG\":\"Asia/Jakarta\",\"MLH\":\"Europe/Zurich\",\"MLI\":\"America/Chicago\",\"MLJ\":\"America/New_York\",\"MLK\":\"America/Denver\",\"MLL\":\"America/Anchorage\",\"MLM\":\"America/Mexico_City\",\"MLN\":\"Europe/Madrid\",\"MLO\":\"Europe/Athens\",\"MLP\":\"Asia/Manila\",\"MLQ\":\"Pacific/Port_Moresby\",\"MLR\":\"Australia/Adelaide\",\"MLS\":\"America/Denver\",\"MLT\":\"America/New_York\",\"MLU\":\"America/Chicago\",\"MLV\":\"Australia/Brisbane\",\"MLW\":\"Africa/Monrovia\",\"MLX\":\"Europe/Istanbul\",\"MLY\":\"America/Anchorage\",\"MLZ\":\"America/Montevideo\",\"MMB\":\"Asia/Tokyo\",\"MMC\":\"America/Mexico_City\",\"MMD\":\"Asia/Tokyo\",\"MME\":\"Europe/London\",\"MMF\":\"Africa/Douala\",\"MMG\":\"Australia/Perth\",\"MMH\":\"America/Los_Angeles\",\"MMI\":\"America/New_York\",\"MMJ\":\"Asia/Tokyo\",\"MMK\":\"Europe/Moscow\",\"MML\":\"America/Chicago\",\"MMM\":\"Australia/Brisbane\",\"MMN\":\"America/New_York\",\"MMO\":\"Atlantic/Cape_Verde\",\"MMP\":\"America/Bogota\",\"MMQ\":\"Africa/Lusaka\",\"MMR\":\"America/Chicago\",\"MMS\":\"America/Chicago\",\"MMT\":\"America/New_York\",\"MMU\":\"America/New_York\",\"MMW\":\"Africa/Maputo\",\"MMX\":\"Europe/Stockholm\",\"MMY\":\"Asia/Tokyo\",\"MMZ\":\"Asia/Kabul\",\"MNA\":\"Asia/Makassar\",\"MNB\":\"Africa/Kinshasa\",\"MNC\":\"Africa/Maputo\",\"MND\":\"America/Bogota\",\"MNE\":\"Australia/Adelaide\",\"MNF\":\"Pacific/Fiji\",\"MNG\":\"Australia/Darwin\",\"MNH\":\"Asia/Muscat\",\"MNI\":\"America/Montserrat\",\"MNJ\":\"Indian/Antananarivo\",\"MNK\":\"Pacific/Tarawa\",\"MNL\":\"Asia/Manila\",\"MNM\":\"America/Chicago\",\"MNN\":\"America/New_York\",\"MNO\":\"Africa/Lubumbashi\",\"MNQ\":\"Australia/Brisbane\",\"MNR\":\"Africa/Lusaka\",\"MNS\":\"Africa/Lusaka\",\"MNT\":\"America/Anchorage\",\"MNU\":\"Asia/Yangon\",\"MNV\":\"Australia/Darwin\",\"MNW\":\"Australia/Darwin\",\"MNX\":\"America/Porto_Velho\",\"MNY\":\"Pacific/Guadalcanal\",\"MNZ\":\"America/New_York\",\"MOA\":\"America/Havana\",\"MOB\":\"America/Chicago\",\"MOC\":\"America/Sao_Paulo\",\"MOD\":\"America/Los_Angeles\",\"MOE\":\"Asia/Yangon\",\"MOF\":\"Asia/Makassar\",\"MOG\":\"Asia/Yangon\",\"MOH\":\"Asia/Makassar\",\"MOI\":\"Pacific/Rarotonga\",\"MOJ\":\"America/Paramaribo\",\"MOK\":\"Africa/Abidjan\",\"MOL\":\"Europe/Oslo\",\"MOM\":\"Africa/Nouakchott\",\"MON\":\"Pacific/Auckland\",\"MOO\":\"Australia/Adelaide\",\"MOP\":\"America/New_York\",\"MOQ\":\"Indian/Antananarivo\",\"MOR\":\"America/New_York\",\"MOS\":\"America/Anchorage\",\"MOT\":\"America/Chicago\",\"MOU\":\"America/Anchorage\",\"MOV\":\"Australia/Brisbane\",\"MOX\":\"America/Chicago\",\"MOY\":\"America/Bogota\",\"MOZ\":\"Pacific/Tahiti\",\"MPA\":\"Africa/Windhoek\",\"MPB\":\"America/New_York\",\"MPC\":\"Asia/Jakarta\",\"MPD\":\"Asia/Karachi\",\"MPE\":\"America/New_York\",\"MPF\":\"Pacific/Port_Moresby\",\"MPG\":\"Pacific/Port_Moresby\",\"MPH\":\"Asia/Manila\",\"MPI\":\"America/Panama\",\"MPJ\":\"America/Chicago\",\"MPK\":\"Asia/Seoul\",\"MPL\":\"Europe/Paris\",\"MPM\":\"Africa/Maputo\",\"MPN\":\"Atlantic/Stanley\",\"MPO\":\"America/New_York\",\"MPP\":\"America/Panama\",\"MPQ\":\"Asia/Amman\",\"MPR\":\"America/Chicago\",\"MPS\":\"America/Chicago\",\"MPT\":\"Asia/Jayapura\",\"MPU\":\"Pacific/Port_Moresby\",\"MPV\":\"America/New_York\",\"MPX\":\"Pacific/Port_Moresby\",\"MPY\":\"America/Cayenne\",\"MPZ\":\"America/Chicago\",\"MQA\":\"Australia/Perth\",\"MQB\":\"America/Chicago\",\"MQC\":\"America/Miquelon\",\"MQD\":\"America/Argentina/Buenos_Aires\",\"MQE\":\"Australia/Darwin\",\"MQF\":\"Asia/Yekaterinburg\",\"MQG\":\"Africa/Windhoek\",\"MQH\":\"America/Sao_Paulo\",\"MQI\":\"America/New_York\",\"MQJ\":\"Asia/Magadan\",\"MQK\":\"America/La_Paz\",\"MQL\":\"Australia/Sydney\",\"MQM\":\"Europe/Istanbul\",\"MQN\":\"Europe/Oslo\",\"MQO\":\"Pacific/Port_Moresby\",\"MQP\":\"Africa/Johannesburg\",\"MQQ\":\"Africa/Ndjamena\",\"MQR\":\"America/Bogota\",\"MQS\":\"America/St_Vincent\",\"MQT\":\"America/New_York\",\"MQU\":\"America/Bogota\",\"MQV\":\"Africa/Algiers\",\"MQW\":\"America/New_York\",\"MQX\":\"Africa/Addis_Ababa\",\"MQY\":\"America/Chicago\",\"MQZ\":\"Australia/Perth\",\"MRA\":\"Africa/Tripoli\",\"MRB\":\"America/New_York\",\"MRC\":\"America/Chicago\",\"MRD\":\"America/Caracas\",\"MRE\":\"Africa/Nairobi\",\"MRF\":\"America/Chicago\",\"MRG\":\"Australia/Brisbane\",\"MRH\":\"Pacific/Port_Moresby\",\"MRI\":\"America/Anchorage\",\"MRJ\":\"America/Tegucigalpa\",\"MRK\":\"America/New_York\",\"MRL\":\"Australia/Brisbane\",\"MRM\":\"Pacific/Port_Moresby\",\"MRN\":\"America/New_York\",\"MRO\":\"Pacific/Auckland\",\"MRP\":\"Australia/Adelaide\",\"MRQ\":\"Asia/Manila\",\"MRR\":\"America/Guayaquil\",\"MRS\":\"Europe/Paris\",\"MRT\":\"Australia/Darwin\",\"MRU\":\"Indian/Mauritius\",\"MRV\":\"Europe/Moscow\",\"MRW\":\"Europe/Copenhagen\",\"MRX\":\"Asia/Tehran\",\"MRY\":\"America/Los_Angeles\",\"MRZ\":\"Australia/Sydney\",\"MSA\":\"America/Winnipeg\",\"MSC\":\"America/Phoenix\",\"MSD\":\"America/Denver\",\"MSE\":\"Europe/London\",\"MSF\":\"Australia/Darwin\",\"MSG\":\"Africa/Maseru\",\"MSH\":\"Asia/Muscat\",\"MSI\":\"Asia/Jakarta\",\"MSJ\":\"Asia/Tokyo\",\"MSK\":\"America/Nassau\",\"MSL\":\"America/Chicago\",\"MSM\":\"Africa/Kinshasa\",\"MSN\":\"America/Chicago\",\"MSO\":\"America/Denver\",\"MSP\":\"America/Chicago\",\"MSQ\":\"Europe/Minsk\",\"MSR\":\"Europe/Istanbul\",\"MSS\":\"America/New_York\",\"MST\":\"Europe/Amsterdam\",\"MSU\":\"Africa/Maseru\",\"MSV\":\"America/New_York\",\"MSW\":\"Africa/Asmara\",\"MSX\":\"Africa/Brazzaville\",\"MSY\":\"America/Chicago\",\"MSZ\":\"Africa/Luanda\",\"MTA\":\"Pacific/Auckland\",\"MTB\":\"America/Bogota\",\"MTC\":\"America/New_York\",\"MTD\":\"Australia/Darwin\",\"MTE\":\"America/Porto_Velho\",\"MTF\":\"Africa/Addis_Ababa\",\"MTG\":\"America/Campo_Grande\",\"MTH\":\"America/New_York\",\"MTI\":\"Atlantic/Cape_Verde\",\"MTJ\":\"America/Denver\",\"MTK\":\"Pacific/Tarawa\",\"MTL\":\"Australia/Sydney\",\"MTM\":\"America/Anchorage\",\"MTN\":\"America/New_York\",\"MTO\":\"America/Chicago\",\"MTP\":\"America/New_York\",\"MTQ\":\"Australia/Brisbane\",\"MTR\":\"America/Bogota\",\"MTS\":\"Africa/Mbabane\",\"MTT\":\"America/Mexico_City\",\"MTU\":\"Africa/Maputo\",\"MTV\":\"Pacific/Efate\",\"MTW\":\"America/Chicago\",\"MTX\":\"America/Anchorage\",\"MTY\":\"America/Mexico_City\",\"MTZ\":\"Asia/Jerusalem\",\"MUA\":\"Pacific/Guadalcanal\",\"MUB\":\"Africa/Gaborone\",\"MUC\":\"Europe/Berlin\",\"MUD\":\"Africa/Maputo\",\"MUE\":\"Pacific/Honolulu\",\"MUF\":\"Asia/Jayapura\",\"MUG\":\"America/Mazatlan\",\"MUH\":\"Africa/Cairo\",\"MUI\":\"America/New_York\",\"MUJ\":\"Africa/Addis_Ababa\",\"MUK\":\"Pacific/Rarotonga\",\"MUL\":\"America/New_York\",\"MUM\":\"Africa/Nairobi\",\"MUN\":\"America/Caracas\",\"MUO\":\"America/Denver\",\"MUP\":\"Australia/Darwin\",\"MUQ\":\"Australia/Perth\",\"MUR\":\"Asia/Kuala_Lumpur\",\"MUT\":\"America/Chicago\",\"MUU\":\"America/New_York\",\"MUV\":\"America/New_York\",\"MUW\":\"Africa/Algiers\",\"MUX\":\"Asia/Karachi\",\"MUY\":\"Africa/Brazzaville\",\"MUZ\":\"Africa/Dar_es_Salaam\",\"MVA\":\"Atlantic/Reykjavik\",\"MVB\":\"Africa/Libreville\",\"MVC\":\"America/Chicago\",\"MVD\":\"America/Montevideo\",\"MVE\":\"America/Chicago\",\"MVF\":\"America/Belem\",\"MVG\":\"Africa/Libreville\",\"MVH\":\"Australia/Sydney\",\"MVI\":\"Pacific/Bougainville\",\"MVJ\":\"America/Jamaica\",\"MVK\":\"Australia/Adelaide\",\"MVL\":\"America/New_York\",\"MVM\":\"America/Phoenix\",\"MVN\":\"America/Chicago\",\"MVO\":\"Africa/Ndjamena\",\"MVP\":\"America/Bogota\",\"MVQ\":\"Europe/Minsk\",\"MVR\":\"Africa/Douala\",\"MVS\":\"America/Belem\",\"MVT\":\"Pacific/Tahiti\",\"MVU\":\"Australia/Brisbane\",\"MVV\":\"Europe/Paris\",\"MVW\":\"America/Los_Angeles\",\"MVX\":\"Africa/Libreville\",\"MVY\":\"America/New_York\",\"MVZ\":\"Africa/Harare\",\"MWA\":\"America/Chicago\",\"MWB\":\"Australia/Perth\",\"MWC\":\"America/Chicago\",\"MWD\":\"Asia/Karachi\",\"MWE\":\"Africa/Khartoum\",\"MWF\":\"Pacific/Efate\",\"MWG\":\"Pacific/Port_Moresby\",\"MWH\":\"America/Los_Angeles\",\"MWI\":\"Pacific/Port_Moresby\",\"MWJ\":\"America/Guyana\",\"MWK\":\"Asia/Jakarta\",\"MWL\":\"America/Chicago\",\"MWM\":\"America/Chicago\",\"MWN\":\"Africa/Dar_es_Salaam\",\"MWO\":\"America/New_York\",\"MWP\":\"Asia/Kathmandu\",\"MWQ\":\"Asia/Yangon\",\"MWS\":\"America/Los_Angeles\",\"MWT\":\"Australia/Adelaide\",\"MWU\":\"Pacific/Port_Moresby\",\"MWV\":\"Asia/Phnom_Penh\",\"MWW\":\"Europe/Brussels\",\"MWX\":\"Asia/Seoul\",\"MWY\":\"Australia/Brisbane\",\"MWZ\":\"Africa/Dar_es_Salaam\",\"MXA\":\"America/Chicago\",\"MXB\":\"Asia/Jayapura\",\"MXC\":\"America/Denver\",\"MXD\":\"Australia/Brisbane\",\"MXE\":\"America/New_York\",\"MXF\":\"America/Chicago\",\"MXG\":\"America/New_York\",\"MXH\":\"Pacific/Port_Moresby\",\"MXI\":\"Asia/Manila\",\"MXJ\":\"Africa/Lagos\",\"MXK\":\"Pacific/Port_Moresby\",\"MXL\":\"America/Tijuana\",\"MXM\":\"Indian/Antananarivo\",\"MXN\":\"Europe/Paris\",\"MXO\":\"America/Chicago\",\"MXP\":\"Europe/Rome\",\"MXQ\":\"Australia/Brisbane\",\"MXR\":\"Europe/Kiev\",\"MXS\":\"Pacific/Apia\",\"MXT\":\"Indian/Antananarivo\",\"MXU\":\"Australia/Perth\",\"MXV\":\"Asia/Ulaanbaatar\",\"MXW\":\"Asia/Ulaanbaatar\",\"MXX\":\"Europe/Stockholm\",\"MXY\":\"America/Anchorage\",\"MXZ\":\"Asia/Shanghai\",\"MYA\":\"Australia/Sydney\",\"MYB\":\"Africa/Libreville\",\"MYC\":\"America/Caracas\",\"MYD\":\"Africa/Nairobi\",\"MYE\":\"Asia/Tokyo\",\"MYF\":\"America/Los_Angeles\",\"MYG\":\"America/Nassau\",\"MYH\":\"America/Phoenix\",\"MYI\":\"Australia/Brisbane\",\"MYJ\":\"Asia/Tokyo\",\"MYK\":\"America/Anchorage\",\"MYL\":\"America/Denver\",\"MYM\":\"America/Guyana\",\"MYN\":\"Asia/Aden\",\"MYO\":\"Australia/Perth\",\"MYP\":\"Asia/Ashgabat\",\"MYQ\":\"Asia/Kolkata\",\"MYR\":\"America/New_York\",\"MYS\":\"Africa/Addis_Ababa\",\"MYT\":\"Asia/Yangon\",\"MYU\":\"America/Anchorage\",\"MYV\":\"America/Los_Angeles\",\"MYW\":\"Africa/Dar_es_Salaam\",\"MYX\":\"Pacific/Port_Moresby\",\"MYY\":\"Asia/Kuala_Lumpur\",\"MYZ\":\"Africa/Blantyre\",\"MZA\":\"America/Lima\",\"MZB\":\"Africa/Maputo\",\"MZC\":\"Africa/Libreville\",\"MZD\":\"America/Guayaquil\",\"MZE\":\"America/Belize\",\"MZF\":\"Africa/Johannesburg\",\"MZG\":\"Asia/Taipei\",\"MZH\":\"Europe/Istanbul\",\"MZI\":\"Africa/Bamako\",\"MZJ\":\"America/Phoenix\",\"MZK\":\"Pacific/Tarawa\",\"MZL\":\"America/Bogota\",\"MZM\":\"Europe/Paris\",\"MZN\":\"Pacific/Port_Moresby\",\"MZO\":\"America/Havana\",\"MZP\":\"Pacific/Auckland\",\"MZQ\":\"Africa/Johannesburg\",\"MZR\":\"Asia/Kabul\",\"MZS\":\"Asia/Kuala_Lumpur\",\"MZT\":\"America/Mazatlan\",\"MZU\":\"Asia/Kolkata\",\"MZV\":\"Asia/Kuala_Lumpur\",\"MZW\":\"Africa/Algiers\",\"MZX\":\"Africa/Addis_Ababa\",\"MZY\":\"Africa/Johannesburg\",\"MZZ\":\"America/Indiana/Indianapolis\",\"NAA\":\"Australia/Sydney\",\"NAB\":\"America/New_York\",\"NAC\":\"Australia/Adelaide\",\"NAD\":\"America/Bogota\",\"NAE\":\"Africa/Porto-Novo\",\"NAF\":\"Asia/Makassar\",\"NAG\":\"Asia/Kolkata\",\"NAH\":\"Asia/Makassar\",\"NAI\":\"America/Guyana\",\"NAJ\":\"Asia/Baku\",\"NAK\":\"Asia/Bangkok\",\"NAL\":\"Europe/Moscow\",\"NAM\":\"Asia/Jayapura\",\"NAN\":\"Pacific/Fiji\",\"NAO\":\"Asia/Shanghai\",\"NAP\":\"Europe/Rome\",\"NAQ\":\"America/Godthab\",\"NAR\":\"America/Bogota\",\"NAS\":\"America/Nassau\",\"NAT\":\"America/Belem\",\"NAU\":\"Pacific/Tahiti\",\"NAV\":\"Europe/Istanbul\",\"NAW\":\"Asia/Bangkok\",\"NBA\":\"Pacific/Port_Moresby\",\"NBB\":\"America/Bogota\",\"NBC\":\"Europe/Moscow\",\"NBE\":\"Africa/Tunis\",\"NBG\":\"America/Chicago\",\"NBH\":\"Australia/Sydney\",\"NBL\":\"America/Panama\",\"NBN\":\"Africa/Lagos\",\"NBO\":\"Africa/Nairobi\",\"NBP\":\"America/New_York\",\"NBR\":\"Australia/Brisbane\",\"NBS\":\"Asia/Shanghai\",\"NBV\":\"America/Sao_Paulo\",\"NBW\":\"America/Havana\",\"NBX\":\"Asia/Jayapura\",\"NCA\":\"America/Grand_Turk\",\"NCE\":\"Europe/Paris\",\"NCG\":\"America/Mexico_City\",\"NCH\":\"Africa/Dar_es_Salaam\",\"NCI\":\"America/Bogota\",\"NCJ\":\"America/Argentina/Cordoba\",\"NCL\":\"Europe/London\",\"NCN\":\"America/Anchorage\",\"NCO\":\"America/New_York\",\"NCP\":\"Asia/Manila\",\"NCQ\":\"America/New_York\",\"NCR\":\"America/Managua\",\"NCS\":\"Africa/Johannesburg\",\"NCT\":\"America/Costa_Rica\",\"NCU\":\"Asia/Tashkent\",\"NCY\":\"Europe/Paris\",\"NDA\":\"Asia/Jayapura\",\"NDB\":\"Africa/Nouakchott\",\"NDC\":\"Asia/Kolkata\",\"NDD\":\"Africa/Luanda\",\"NDE\":\"Africa/Nairobi\",\"NDF\":\"Africa/Luanda\",\"NDG\":\"Asia/Shanghai\",\"NDI\":\"Pacific/Port_Moresby\",\"NDJ\":\"Africa/Ndjamena\",\"NDK\":\"Pacific/Majuro\",\"NDL\":\"Africa/Bangui\",\"NDM\":\"Africa/Addis_Ababa\",\"NDN\":\"Pacific/Port_Moresby\",\"NDO\":\"Europe/Madrid\",\"NDR\":\"Africa/Casablanca\",\"NDS\":\"Australia/Perth\",\"NDU\":\"Africa/Windhoek\",\"NDV\":\"America/New_York\",\"NDY\":\"Europe/London\",\"NDZ\":\"Europe/Berlin\",\"NEA\":\"America/New_York\",\"NEC\":\"America/Argentina/Buenos_Aires\",\"NEF\":\"Asia/Yekaterinburg\",\"NEG\":\"America/Jamaica\",\"NEI\":\"Asia/Vladivostok\",\"NEJ\":\"Africa/Addis_Ababa\",\"NEK\":\"Africa/Addis_Ababa\",\"NEL\":\"America/New_York\",\"NEN\":\"America/New_York\",\"NER\":\"Asia/Yakutsk\",\"NES\":\"America/New_York\",\"NEU\":\"Asia/Vientiane\",\"NEV\":\"America/St_Kitts\",\"NEW\":\"America/Chicago\",\"NFB\":\"America/New_York\",\"NFG\":\"Asia/Yekaterinburg\",\"NFL\":\"America/Los_Angeles\",\"NFO\":\"Pacific/Tongatapu\",\"NFR\":\"Africa/Tripoli\",\"NGA\":\"Australia/Sydney\",\"NGB\":\"Asia/Shanghai\",\"NGC\":\"America/Phoenix\",\"NGD\":\"America/Tortola\",\"NGE\":\"Africa/Douala\",\"NGF\":\"Pacific/Honolulu\",\"NGI\":\"Pacific/Fiji\",\"NGK\":\"Asia/Magadan\",\"NGL\":\"Africa/Johannesburg\",\"NGM\":\"Pacific/Guam\",\"NGN\":\"America/Panama\",\"NGO\":\"Asia/Tokyo\",\"NGP\":\"America/Chicago\",\"NGQ\":\"Asia/Shanghai\",\"NGR\":\"Pacific/Port_Moresby\",\"NGS\":\"Asia/Tokyo\",\"NGU\":\"America/New_York\",\"NGW\":\"America/Chicago\",\"NGX\":\"Asia/Kathmandu\",\"NGZ\":\"America/Los_Angeles\",\"NHA\":\"Asia/Ho_Chi_Minh\",\"NHD\":\"Asia/Dubai\",\"NHF\":\"Africa/Khartoum\",\"NHK\":\"America/New_York\",\"NHS\":\"Asia/Karachi\",\"NHT\":\"Europe/London\",\"NHV\":\"Pacific/Marquesas\",\"NHX\":\"America/Chicago\",\"NHZ\":\"America/New_York\",\"NIA\":\"Africa/Monrovia\",\"NIB\":\"America/Anchorage\",\"NIE\":\"America/Anchorage\",\"NIF\":\"Australia/Perth\",\"NIG\":\"Pacific/Tarawa\",\"NIK\":\"Africa/Dakar\",\"NIM\":\"Africa/Niamey\",\"NIN\":\"America/Anchorage\",\"NIO\":\"Africa/Kinshasa\",\"NIP\":\"America/New_York\",\"NIQ\":\"America/Godthab\",\"NIR\":\"America/Chicago\",\"NIS\":\"Pacific/Port_Moresby\",\"NIT\":\"Europe/Paris\",\"NIU\":\"Pacific/Tahiti\",\"NIX\":\"Africa/Bamako\",\"NJA\":\"Asia/Tokyo\",\"NJC\":\"Asia/Yekaterinburg\",\"NJF\":\"Asia/Baghdad\",\"NJJ\":\"Asia/Shanghai\",\"NJK\":\"America/Los_Angeles\",\"NKA\":\"Africa/Libreville\",\"NKB\":\"Australia/Perth\",\"NKC\":\"Africa/Nouakchott\",\"NKD\":\"Asia/Jayapura\",\"NKG\":\"Asia/Shanghai\",\"NKI\":\"America/Anchorage\",\"NKL\":\"Africa/Lubumbashi\",\"NKM\":\"Asia/Tokyo\",\"NKN\":\"Pacific/Port_Moresby\",\"NKO\":\"Indian/Antananarivo\",\"NKS\":\"Africa/Douala\",\"NKT\":\"Europe/Istanbul\",\"NKU\":\"Africa/Maseru\",\"NKX\":\"America/Los_Angeles\",\"NKY\":\"Africa/Brazzaville\",\"NLA\":\"Africa/Lusaka\",\"NLC\":\"America/Los_Angeles\",\"NLD\":\"America/Matamoros\",\"NLE\":\"America/New_York\",\"NLF\":\"Australia/Brisbane\",\"NLG\":\"America/Anchorage\",\"NLH\":\"Asia/Shanghai\",\"NLI\":\"Asia/Vladivostok\",\"NLK\":\"Pacific/Norfolk\",\"NLL\":\"Australia/Perth\",\"NLO\":\"Africa/Kinshasa\",\"NLP\":\"Africa/Johannesburg\",\"NLS\":\"Australia/Perth\",\"NLT\":\"Asia/Shanghai\",\"NLU\":\"America/Mexico_City\",\"NLV\":\"Europe/Kiev\",\"NMA\":\"Asia/Tashkent\",\"NMB\":\"Asia/Kolkata\",\"NMC\":\"America/Nassau\",\"NME\":\"America/Anchorage\",\"NMF\":\"Indian/Maldives\",\"NMG\":\"America/Panama\",\"NMN\":\"Pacific/Port_Moresby\",\"NMP\":\"Australia/Brisbane\",\"NMR\":\"Australia/Brisbane\",\"NMS\":\"Asia/Yangon\",\"NMT\":\"Asia/Yangon\",\"NMU\":\"Pacific/Majuro\",\"NNA\":\"Africa/Casablanca\",\"NNB\":\"Pacific/Guadalcanal\",\"NND\":\"Africa/Maputo\",\"NNG\":\"Asia/Shanghai\",\"NNI\":\"Africa/Windhoek\",\"NNK\":\"America/Anchorage\",\"NNL\":\"America/Anchorage\",\"NNM\":\"Europe/Moscow\",\"NNR\":\"Europe/Dublin\",\"NNT\":\"Asia/Bangkok\",\"NNU\":\"America/Sao_Paulo\",\"NNX\":\"Asia/Makassar\",\"NNY\":\"Asia/Shanghai\",\"NOA\":\"Australia/Sydney\",\"NOB\":\"America/Costa_Rica\",\"NOC\":\"Europe/Dublin\",\"NOD\":\"Europe/Berlin\",\"NOE\":\"Europe/Berlin\",\"NOG\":\"America/Hermosillo\",\"NOH\":\"America/Chicago\",\"NOI\":\"Europe/Moscow\",\"NOJ\":\"Asia/Yekaterinburg\",\"NOK\":\"America/Campo_Grande\",\"NOL\":\"America/Anchorage\",\"NOM\":\"Pacific/Port_Moresby\",\"NON\":\"Pacific/Tarawa\",\"NOO\":\"Pacific/Port_Moresby\",\"NOP\":\"Europe/Istanbul\",\"NOR\":\"Atlantic/Reykjavik\",\"NOS\":\"Indian/Antananarivo\",\"NOT\":\"America/Los_Angeles\",\"NOU\":\"Pacific/Noumea\",\"NOV\":\"Africa/Luanda\",\"NOZ\":\"Asia/Novokuznetsk\",\"NPA\":\"America/Chicago\",\"NPE\":\"Pacific/Auckland\",\"NPG\":\"Pacific/Port_Moresby\",\"NPH\":\"America/Denver\",\"NPL\":\"Pacific/Auckland\",\"NPO\":\"Asia/Makassar\",\"NPP\":\"Australia/Darwin\",\"NPT\":\"America/New_York\",\"NPU\":\"America/Bogota\",\"NPY\":\"Africa/Dar_es_Salaam\",\"NQA\":\"America/Chicago\",\"NQI\":\"America/Chicago\",\"NQL\":\"America/Sao_Paulo\",\"NQN\":\"America/Argentina/Buenos_Aires\",\"NQT\":\"Europe/London\",\"NQU\":\"America/Bogota\",\"NQX\":\"America/New_York\",\"NQY\":\"Europe/London\",\"NRA\":\"Australia/Sydney\",\"NRB\":\"America/New_York\",\"NRC\":\"America/Los_Angeles\",\"NRD\":\"Europe/Berlin\",\"NRE\":\"Asia/Jayapura\",\"NRG\":\"Australia/Perth\",\"NRI\":\"America/Chicago\",\"NRK\":\"Europe/Stockholm\",\"NRL\":\"Europe/London\",\"NRM\":\"Africa/Bamako\",\"NRN\":\"Europe/Berlin\",\"NRR\":\"America/Puerto_Rico\",\"NRS\":\"America/Los_Angeles\",\"NRT\":\"Asia/Tokyo\",\"NRV\":\"Pacific/Guam\",\"NRY\":\"Australia/Darwin\",\"NSB\":\"America/Nassau\",\"NSE\":\"America/New_York\",\"NSF\":\"America/New_York\",\"NSH\":\"Asia/Tehran\",\"NSI\":\"Africa/Douala\",\"NSK\":\"Asia/Krasnoyarsk\",\"NSL\":\"America/Chicago\",\"NSM\":\"Australia/Perth\",\"NSN\":\"Pacific/Auckland\",\"NSO\":\"Australia/Sydney\",\"NSQ\":\"America/Godthab\",\"NST\":\"Asia/Bangkok\",\"NSV\":\"Australia/Brisbane\",\"NSX\":\"America/Tortola\",\"NSY\":\"Europe/Rome\",\"NTA\":\"Pacific/Fiji\",\"NTB\":\"Europe/Oslo\",\"NTD\":\"America/Los_Angeles\",\"NTE\":\"Europe/Paris\",\"NTG\":\"Asia/Shanghai\",\"NTI\":\"Asia/Jayapura\",\"NTJ\":\"America/Denver\",\"NTL\":\"Australia/Sydney\",\"NTM\":\"America/Belem\",\"NTN\":\"Australia/Brisbane\",\"NTO\":\"Atlantic/Cape_Verde\",\"NTQ\":\"Asia/Tokyo\",\"NTR\":\"America/Mexico_City\",\"NTT\":\"Pacific/Tongatapu\",\"NTU\":\"America/New_York\",\"NTX\":\"Asia/Jakarta\",\"NTY\":\"Africa/Johannesburg\",\"NUA\":\"Asia/Colombo\",\"NUB\":\"Australia/Darwin\",\"NUD\":\"Africa/Khartoum\",\"NUE\":\"Europe/Berlin\",\"NUF\":\"Asia/Colombo\",\"NUG\":\"Pacific/Port_Moresby\",\"NUH\":\"America/Bogota\",\"NUI\":\"America/Anchorage\",\"NUJ\":\"Asia/Tehran\",\"NUK\":\"Pacific/Tahiti\",\"NUL\":\"America/Anchorage\",\"NUM\":\"Asia/Riyadh\",\"NUN\":\"America/Chicago\",\"NUP\":\"America/Anchorage\",\"NUQ\":\"America/Los_Angeles\",\"NUR\":\"Australia/Adelaide\",\"NUS\":\"Pacific/Efate\",\"NUT\":\"Pacific/Port_Moresby\",\"NUU\":\"Africa/Nairobi\",\"NUW\":\"America/Los_Angeles\",\"NUX\":\"Asia/Yekaterinburg\",\"NVA\":\"America/Bogota\",\"NVD\":\"America/Chicago\",\"NVG\":\"America/Managua\",\"NVI\":\"Asia/Tashkent\",\"NVK\":\"Europe/Oslo\",\"NVP\":\"America/Porto_Velho\",\"NVR\":\"Europe/Moscow\",\"NVS\":\"Europe/Paris\",\"NVT\":\"America/Sao_Paulo\",\"NVY\":\"Asia/Kolkata\",\"NWA\":\"Indian/Comoro\",\"NWH\":\"America/New_York\",\"NWI\":\"Europe/London\",\"NWP\":\"America/St_Johns\",\"NWS\":\"America/New_York\",\"NWT\":\"Pacific/Port_Moresby\",\"NWU\":\"Atlantic/Bermuda\",\"NXX\":\"America/New_York\",\"NYA\":\"Asia/Yekaterinburg\",\"NYE\":\"Africa/Nairobi\",\"NYG\":\"America/New_York\",\"NYI\":\"Africa/Accra\",\"NYK\":\"Africa/Nairobi\",\"NYM\":\"Asia/Yekaterinburg\",\"NYN\":\"Australia/Sydney\",\"NYO\":\"Europe/Stockholm\",\"NYR\":\"Asia/Yakutsk\",\"NYS\":\"America/New_York\",\"NYT\":\"Asia/Yangon\",\"NYU\":\"Asia/Yangon\",\"NYW\":\"Asia/Yangon\",\"NZA\":\"Africa/Luanda\",\"NZC\":\"America/Lima\",\"NZE\":\"Africa/Conakry\",\"NZH\":\"Asia/Shanghai\",\"NZL\":\"Asia/Shanghai\",\"NZO\":\"Africa/Nairobi\",\"NZW\":\"America/New_York\",\"NZY\":\"America/Los_Angeles\",\"OAA\":\"Asia/Kabul\",\"OAG\":\"Australia/Sydney\",\"OAH\":\"Asia/Kabul\",\"OAI\":\"Asia/Kabul\",\"OAJ\":\"America/New_York\",\"OAK\":\"America/Los_Angeles\",\"OAL\":\"America/Porto_Velho\",\"OAM\":\"Pacific/Auckland\",\"OAN\":\"America/Tegucigalpa\",\"OAR\":\"America/Los_Angeles\",\"OAS\":\"Asia/Kabul\",\"OAX\":\"America/Mexico_City\",\"OAZ\":\"Asia/Kabul\",\"OBA\":\"Australia/Brisbane\",\"OBC\":\"Africa/Djibouti\",\"OBD\":\"Asia/Jayapura\",\"OBE\":\"America/New_York\",\"OBF\":\"Europe/Berlin\",\"OBI\":\"America/Porto_Velho\",\"OBK\":\"America/Chicago\",\"OBL\":\"Europe/Brussels\",\"OBM\":\"Pacific/Port_Moresby\",\"OBN\":\"Europe/London\",\"OBO\":\"Asia/Tokyo\",\"OBS\":\"Europe/Paris\",\"OBU\":\"America/Anchorage\",\"OBX\":\"Pacific/Port_Moresby\",\"OBY\":\"America/Scoresbysund\",\"OCA\":\"America/New_York\",\"OCC\":\"America/Guayaquil\",\"OCE\":\"America/New_York\",\"OCF\":\"America/New_York\",\"OCH\":\"America/Chicago\",\"OCI\":\"America/Anchorage\",\"OCJ\":\"America/Jamaica\",\"OCM\":\"Australia/Perth\",\"OCN\":\"America/Los_Angeles\",\"OCV\":\"America/Bogota\",\"OCW\":\"America/New_York\",\"ODA\":\"Africa/Bangui\",\"ODB\":\"Europe/Madrid\",\"ODD\":\"Australia/Adelaide\",\"ODE\":\"Europe/Copenhagen\",\"ODH\":\"Europe/London\",\"ODJ\":\"Africa/Bangui\",\"ODL\":\"Australia/Adelaide\",\"ODM\":\"America/New_York\",\"ODN\":\"Asia/Kuala_Lumpur\",\"ODO\":\"Asia/Irkutsk\",\"ODR\":\"Australia/Perth\",\"ODS\":\"Europe/Kiev\",\"ODW\":\"America/Los_Angeles\",\"ODY\":\"Asia/Vientiane\",\"OEA\":\"America/Indiana/Indianapolis\",\"OEC\":\"Asia/Jayapura\",\"OEL\":\"Europe/Moscow\",\"OEM\":\"America/Paramaribo\",\"OEO\":\"America/Chicago\",\"OER\":\"Europe/Stockholm\",\"OES\":\"America/Argentina/Buenos_Aires\",\"OFF\":\"America/Chicago\",\"OFI\":\"Africa/Abidjan\",\"OFJ\":\"Atlantic/Reykjavik\",\"OFK\":\"America/Chicago\",\"OFU\":\"Pacific/Pago_Pago\",\"OGA\":\"America/Denver\",\"OGB\":\"America/New_York\",\"OGD\":\"America/Denver\",\"OGE\":\"Pacific/Port_Moresby\",\"OGG\":\"Pacific/Honolulu\",\"OGL\":\"America/Guyana\",\"OGM\":\"America/Panama\",\"OGN\":\"Asia/Tokyo\",\"OGO\":\"Africa/Abidjan\",\"OGR\":\"Africa/Ndjamena\",\"OGS\":\"America/New_York\",\"OGU\":\"Europe/Istanbul\",\"OGX\":\"Africa/Algiers\",\"OGZ\":\"Europe/Moscow\",\"OHA\":\"Pacific/Auckland\",\"OHC\":\"America/Anchorage\",\"OHD\":\"Europe/Skopje\",\"OHE\":\"Asia/Shanghai\",\"OHH\":\"Asia/Magadan\",\"OHI\":\"Africa/Windhoek\",\"OHO\":\"Asia/Vladivostok\",\"OHP\":\"Europe/London\",\"OHR\":\"Europe/Berlin\",\"OHS\":\"Asia/Muscat\",\"OHT\":\"Asia/Karachi\",\"OIA\":\"America/Belem\",\"OIC\":\"America/New_York\",\"OIL\":\"America/New_York\",\"OIM\":\"Asia/Tokyo\",\"OIR\":\"Asia/Tokyo\",\"OIT\":\"Asia/Tokyo\",\"OJC\":\"America/Chicago\",\"OJU\":\"Asia/Makassar\",\"OKA\":\"Asia/Tokyo\",\"OKB\":\"Australia/Brisbane\",\"OKC\":\"America/Chicago\",\"OKD\":\"Asia/Tokyo\",\"OKE\":\"Asia/Tokyo\",\"OKF\":\"Africa/Windhoek\",\"OKG\":\"Africa/Brazzaville\",\"OKH\":\"Europe/London\",\"OKI\":\"Asia/Tokyo\",\"OKJ\":\"Asia/Tokyo\",\"OKK\":\"America/Indiana/Indianapolis\",\"OKL\":\"Asia/Jayapura\",\"OKM\":\"America/Chicago\",\"OKN\":\"Africa/Libreville\",\"OKO\":\"Asia/Tokyo\",\"OKP\":\"Pacific/Port_Moresby\",\"OKQ\":\"Asia/Jayapura\",\"OKR\":\"Australia/Brisbane\",\"OKS\":\"America/Chicago\",\"OKT\":\"Asia/Yekaterinburg\",\"OKU\":\"Africa/Windhoek\",\"OKV\":\"Pacific/Port_Moresby\",\"OKY\":\"Australia/Brisbane\",\"OLA\":\"Europe/Oslo\",\"OLB\":\"Europe/Rome\",\"OLC\":\"America/Porto_Velho\",\"OLD\":\"America/New_York\",\"OLE\":\"America/New_York\",\"OLF\":\"America/Denver\",\"OLG\":\"Africa/Nairobi\",\"OLH\":\"America/Anchorage\",\"OLI\":\"Atlantic/Reykjavik\",\"OLJ\":\"Pacific/Efate\",\"OLK\":\"America/Asuncion\",\"OLL\":\"Africa/Brazzaville\",\"OLM\":\"America/Los_Angeles\",\"OLO\":\"Europe/Prague\",\"OLP\":\"Australia/Adelaide\",\"OLQ\":\"Pacific/Port_Moresby\",\"OLR\":\"Asia/Kabul\",\"OLS\":\"America/Phoenix\",\"OLU\":\"America/Chicago\",\"OLV\":\"America/Chicago\",\"OLX\":\"Africa/Nairobi\",\"OLY\":\"America/Chicago\",\"OLZ\":\"Asia/Yakutsk\",\"OMA\":\"America/Chicago\",\"OMB\":\"Africa/Libreville\",\"OMC\":\"Asia/Manila\",\"OMD\":\"Africa/Windhoek\",\"OME\":\"America/Anchorage\",\"OMF\":\"Asia/Amman\",\"OMG\":\"Africa/Windhoek\",\"OMH\":\"Asia/Tehran\",\"OMI\":\"Asia/Tehran\",\"OMJ\":\"Asia/Tokyo\",\"OMK\":\"America/Los_Angeles\",\"OML\":\"Pacific/Port_Moresby\",\"OMM\":\"Asia/Muscat\",\"OMN\":\"Asia/Kolkata\",\"OMO\":\"Europe/Sarajevo\",\"OMR\":\"Europe/Bucharest\",\"OMS\":\"Asia/Omsk\",\"OMY\":\"Asia/Phnom_Penh\",\"ONA\":\"America/Chicago\",\"ONB\":\"Pacific/Port_Moresby\",\"OND\":\"Africa/Windhoek\",\"ONE\":\"Pacific/Guadalcanal\",\"ONG\":\"Australia/Brisbane\",\"ONH\":\"America/New_York\",\"ONI\":\"Asia/Jayapura\",\"ONJ\":\"Asia/Tokyo\",\"ONK\":\"Asia/Yakutsk\",\"ONL\":\"America/Chicago\",\"ONM\":\"America/Denver\",\"ONN\":\"America/Anchorage\",\"ONO\":\"America/Los_Angeles\",\"ONP\":\"America/Los_Angeles\",\"ONQ\":\"Europe/Istanbul\",\"ONR\":\"Australia/Brisbane\",\"ONS\":\"Australia/Perth\",\"ONT\":\"America/Los_Angeles\",\"ONU\":\"Pacific/Fiji\",\"ONX\":\"America/Panama\",\"ONY\":\"America/Chicago\",\"OOA\":\"America/Chicago\",\"OOK\":\"America/Anchorage\",\"OOL\":\"Australia/Brisbane\",\"OOM\":\"Australia/Sydney\",\"OOR\":\"Australia/Brisbane\",\"OOT\":\"Pacific/Tarawa\",\"OPA\":\"Atlantic/Reykjavik\",\"OPB\":\"Pacific/Port_Moresby\",\"OPF\":\"America/New_York\",\"OPI\":\"Australia/Darwin\",\"OPL\":\"America/Chicago\",\"OPO\":\"Europe/Lisbon\",\"OPS\":\"America/Campo_Grande\",\"OPU\":\"Pacific/Port_Moresby\",\"OPW\":\"Africa/Windhoek\",\"ORA\":\"America/Argentina/Buenos_Aires\",\"ORB\":\"Europe/Stockholm\",\"ORC\":\"America/Bogota\",\"ORD\":\"America/Chicago\",\"ORE\":\"Europe/Paris\",\"ORF\":\"America/New_York\",\"ORG\":\"America/Paramaribo\",\"ORH\":\"America/New_York\",\"ORI\":\"America/Anchorage\",\"ORJ\":\"America/Guyana\",\"ORK\":\"Europe/Dublin\",\"ORL\":\"America/New_York\",\"ORM\":\"Europe/London\",\"ORN\":\"Africa/Algiers\",\"ORO\":\"America/Tegucigalpa\",\"ORP\":\"Africa/Gaborone\",\"ORQ\":\"America/New_York\",\"ORR\":\"Australia/Adelaide\",\"ORS\":\"Australia/Brisbane\",\"ORT\":\"America/Anchorage\",\"ORU\":\"America/La_Paz\",\"ORV\":\"America/Anchorage\",\"ORW\":\"Asia/Karachi\",\"ORX\":\"America/Porto_Velho\",\"ORY\":\"Europe/Paris\",\"ORZ\":\"America/Belize\",\"OSB\":\"America/Chicago\",\"OSC\":\"America/New_York\",\"OSD\":\"Europe/Stockholm\",\"OSE\":\"Pacific/Port_Moresby\",\"OSF\":\"Europe/Moscow\",\"OSG\":\"Pacific/Port_Moresby\",\"OSH\":\"America/Chicago\",\"OSI\":\"Europe/Zagreb\",\"OSJ\":\"Africa/Nairobi\",\"OSK\":\"Europe/Stockholm\",\"OSL\":\"Europe/Oslo\",\"OSM\":\"Asia/Baghdad\",\"OSN\":\"Asia/Seoul\",\"OSO\":\"Australia/Brisbane\",\"OSP\":\"Europe/Warsaw\",\"OSR\":\"Europe/Prague\",\"OSS\":\"Asia/Bishkek\",\"OST\":\"Europe/Brussels\",\"OSU\":\"America/New_York\",\"OSW\":\"Asia/Yekaterinburg\",\"OSX\":\"America/Chicago\",\"OSY\":\"Europe/Oslo\",\"OSZ\":\"Europe/Warsaw\",\"OTA\":\"Africa/Addis_Ababa\",\"OTC\":\"Africa/Ndjamena\",\"OTD\":\"America/Panama\",\"OTG\":\"America/Chicago\",\"OTH\":\"America/Los_Angeles\",\"OTI\":\"Asia/Jayapura\",\"OTJ\":\"Africa/Windhoek\",\"OTK\":\"America/Los_Angeles\",\"OTL\":\"Africa/Nouakchott\",\"OTM\":\"America/Chicago\",\"OTN\":\"America/Indiana/Indianapolis\",\"OTO\":\"America/Denver\",\"OTP\":\"Europe/Bucharest\",\"OTR\":\"America/Costa_Rica\",\"OTS\":\"America/Los_Angeles\",\"OTT\":\"America/Campo_Grande\",\"OTU\":\"America/Bogota\",\"OTV\":\"Pacific/Guadalcanal\",\"OTY\":\"Pacific/Bougainville\",\"OTZ\":\"America/Anchorage\",\"OUA\":\"Africa/Ouagadougou\",\"OUD\":\"Africa/Casablanca\",\"OUE\":\"Africa/Brazzaville\",\"OUG\":\"Africa/Ouagadougou\",\"OUH\":\"Africa/Johannesburg\",\"OUK\":\"Europe/London\",\"OUL\":\"Europe/Helsinki\",\"OUM\":\"Africa/Ndjamena\",\"OUN\":\"America/Chicago\",\"OUR\":\"Africa/Douala\",\"OUS\":\"America/Sao_Paulo\",\"OUT\":\"Africa/Ndjamena\",\"OUU\":\"Africa/Libreville\",\"OUZ\":\"Africa/Nouakchott\",\"OVA\":\"Indian/Antananarivo\",\"OVB\":\"Asia/Novosibirsk\",\"OVD\":\"Europe/Madrid\",\"OVE\":\"America/Los_Angeles\",\"OVG\":\"Africa/Johannesburg\",\"OVL\":\"America/Santiago\",\"OVR\":\"America/Argentina/Buenos_Aires\",\"OVS\":\"Asia/Yekaterinburg\",\"OWA\":\"America/Chicago\",\"OWB\":\"America/Chicago\",\"OWD\":\"America/New_York\",\"OWE\":\"Africa/Libreville\",\"OWK\":\"America/New_York\",\"OXB\":\"Africa/Bissau\",\"OXC\":\"America/New_York\",\"OXD\":\"America/New_York\",\"OXF\":\"Europe/London\",\"OXO\":\"Australia/Brisbane\",\"OXR\":\"America/Los_Angeles\",\"OXY\":\"Australia/Brisbane\",\"OYA\":\"America/Argentina/Buenos_Aires\",\"OYE\":\"Africa/Libreville\",\"OYG\":\"Africa/Kampala\",\"OYK\":\"America/Belem\",\"OYL\":\"Africa/Nairobi\",\"OYN\":\"Australia/Sydney\",\"OYO\":\"America/Argentina/Buenos_Aires\",\"OYP\":\"America/Cayenne\",\"OYS\":\"America/Los_Angeles\",\"OZA\":\"America/Chicago\",\"OZC\":\"Asia/Manila\",\"OZG\":\"Africa/Casablanca\",\"OZH\":\"Europe/Kiev\",\"OZI\":\"Europe/Madrid\",\"OZP\":\"Europe/Madrid\",\"OZR\":\"America/Chicago\",\"OZU\":\"Europe/Madrid\",\"OZZ\":\"Africa/Casablanca\",\"PAA\":\"Asia/Yangon\",\"PAB\":\"Asia/Kolkata\",\"PAC\":\"America/Panama\",\"PAD\":\"Europe/Berlin\",\"PAE\":\"America/Los_Angeles\",\"PAF\":\"Africa/Kampala\",\"PAG\":\"Asia/Manila\",\"PAH\":\"America/Chicago\",\"PAI\":\"Asia/Phnom_Penh\",\"PAJ\":\"Asia/Karachi\",\"PAK\":\"Pacific/Honolulu\",\"PAL\":\"America/Bogota\",\"PAM\":\"America/Chicago\",\"PAN\":\"Asia/Bangkok\",\"PAO\":\"America/Los_Angeles\",\"PAP\":\"America/Port-au-Prince\",\"PAQ\":\"America/Anchorage\",\"PAR\":\"Europe/Paris\",\"PAS\":\"Europe/Athens\",\"PAT\":\"Asia/Kolkata\",\"PAU\":\"Asia/Yangon\",\"PAV\":\"America/Belem\",\"PAW\":\"Pacific/Port_Moresby\",\"PAX\":\"America/Port-au-Prince\",\"PAY\":\"Asia/Kuala_Lumpur\",\"PAZ\":\"America/Mexico_City\",\"PBA\":\"America/Anchorage\",\"PBB\":\"America/Campo_Grande\",\"PBC\":\"America/Mexico_City\",\"PBD\":\"Asia/Kolkata\",\"PBE\":\"America/Bogota\",\"PBF\":\"America/Chicago\",\"PBG\":\"America/New_York\",\"PBH\":\"Asia/Thimphu\",\"PBI\":\"America/New_York\",\"PBJ\":\"Pacific/Efate\",\"PBK\":\"America/Anchorage\",\"PBL\":\"America/Caracas\",\"PBM\":\"America/Paramaribo\",\"PBN\":\"Africa/Luanda\",\"PBO\":\"Australia/Perth\",\"PBP\":\"America/Costa_Rica\",\"PBQ\":\"America/Porto_Velho\",\"PBR\":\"America/Guatemala\",\"PBS\":\"Asia/Bangkok\",\"PBT\":\"America/Asuncion\",\"PBU\":\"Asia/Yangon\",\"PBV\":\"America/Campo_Grande\",\"PBX\":\"America/Campo_Grande\",\"PBY\":\"Australia/Brisbane\",\"PBZ\":\"Africa/Johannesburg\",\"PCA\":\"America/Anchorage\",\"PCB\":\"Asia/Jakarta\",\"PCC\":\"America/Bogota\",\"PCD\":\"America/Chicago\",\"PCE\":\"America/Anchorage\",\"PCG\":\"America/Guatemala\",\"PCH\":\"America/Tegucigalpa\",\"PCJ\":\"America/Asuncion\",\"PCK\":\"America/Anchorage\",\"PCL\":\"America/Lima\",\"PCM\":\"America/Mexico_City\",\"PCN\":\"Pacific/Auckland\",\"PCO\":\"America/Mazatlan\",\"PCP\":\"Africa/Sao_Tome\",\"PCQ\":\"Asia/Vientiane\",\"PCR\":\"America/Bogota\",\"PCS\":\"America/Belem\",\"PCT\":\"America/New_York\",\"PCU\":\"America/Chicago\",\"PCV\":\"America/Tijuana\",\"PDA\":\"America/Bogota\",\"PDB\":\"America/Anchorage\",\"PDC\":\"Pacific/Noumea\",\"PDD\":\"Africa/Maputo\",\"PDE\":\"Australia/Adelaide\",\"PDF\":\"America/Belem\",\"PDG\":\"Asia/Jakarta\",\"PDI\":\"Pacific/Port_Moresby\",\"PDK\":\"America/New_York\",\"PDL\":\"Atlantic/Azores\",\"PDM\":\"America/Panama\",\"PDN\":\"Australia/Adelaide\",\"PDO\":\"Asia/Jakarta\",\"PDP\":\"America/Montevideo\",\"PDR\":\"America/Belem\",\"PDS\":\"America/Matamoros\",\"PDT\":\"America/Los_Angeles\",\"PDU\":\"America/Montevideo\",\"PDV\":\"Europe/Sofia\",\"PDX\":\"America/Los_Angeles\",\"PDZ\":\"America/Caracas\",\"PEA\":\"Australia/Adelaide\",\"PEB\":\"Africa/Maputo\",\"PEC\":\"America/Anchorage\",\"PED\":\"Europe/Prague\",\"PEE\":\"Asia/Yekaterinburg\",\"PEF\":\"Europe/Berlin\",\"PEG\":\"Europe/Rome\",\"PEH\":\"America/Argentina/Buenos_Aires\",\"PEI\":\"America/Bogota\",\"PEK\":\"Asia/Shanghai\",\"PEL\":\"Africa/Maseru\",\"PEM\":\"America/Lima\",\"PEN\":\"Asia/Kuala_Lumpur\",\"PEP\":\"Australia/Darwin\",\"PEQ\":\"America/Chicago\",\"PER\":\"Australia/Perth\",\"PES\":\"Europe/Moscow\",\"PET\":\"America/Sao_Paulo\",\"PEU\":\"America/Tegucigalpa\",\"PEV\":\"Europe/Budapest\",\"PEW\":\"Asia/Karachi\",\"PEX\":\"Europe/Moscow\",\"PEY\":\"Australia/Adelaide\",\"PEZ\":\"Europe/Moscow\",\"PFA\":\"America/Anchorage\",\"PFB\":\"America/Sao_Paulo\",\"PFC\":\"America/Los_Angeles\",\"PFD\":\"America/Anchorage\",\"PFJ\":\"Atlantic/Reykjavik\",\"PFO\":\"Asia/Nicosia\",\"PFQ\":\"Asia/Tehran\",\"PFR\":\"Africa/Lubumbashi\",\"PGA\":\"America/Phoenix\",\"PGB\":\"Pacific/Port_Moresby\",\"PGC\":\"America/New_York\",\"PGD\":\"America/New_York\",\"PGE\":\"Pacific/Port_Moresby\",\"PGF\":\"Europe/Paris\",\"PGG\":\"America/Belem\",\"PGH\":\"Asia/Kolkata\",\"PGI\":\"Africa/Luanda\",\"PGK\":\"Asia/Jakarta\",\"PGL\":\"America/Chicago\",\"PGM\":\"America/Anchorage\",\"PGN\":\"Pacific/Port_Moresby\",\"PGO\":\"America/Denver\",\"PGP\":\"Africa/Sao_Tome\",\"PGQ\":\"Asia/Makassar\",\"PGR\":\"America/Chicago\",\"PGS\":\"America/Phoenix\",\"PGU\":\"Asia/Tehran\",\"PGV\":\"America/New_York\",\"PGX\":\"Europe/Paris\",\"PGZ\":\"America/Sao_Paulo\",\"PHA\":\"Asia/Ho_Chi_Minh\",\"PHB\":\"America/Belem\",\"PHC\":\"Africa/Lagos\",\"PHD\":\"America/New_York\",\"PHE\":\"Australia/Perth\",\"PHF\":\"America/New_York\",\"PHG\":\"Africa/Lagos\",\"PHH\":\"Asia/Ho_Chi_Minh\",\"PHI\":\"America/Belem\",\"PHJ\":\"Australia/Sydney\",\"PHK\":\"America/New_York\",\"PHL\":\"America/New_York\",\"PHM\":\"Europe/Berlin\",\"PHN\":\"America/New_York\",\"PHO\":\"America/Anchorage\",\"PHP\":\"America/Chicago\",\"PHQ\":\"Australia/Brisbane\",\"PHR\":\"Pacific/Fiji\",\"PHS\":\"Asia/Bangkok\",\"PHT\":\"America/Chicago\",\"PHU\":\"Asia/Ho_Chi_Minh\",\"PHW\":\"Africa/Johannesburg\",\"PHX\":\"America/Phoenix\",\"PHY\":\"Asia/Bangkok\",\"PHZ\":\"Asia/Bangkok\",\"PIA\":\"America/Chicago\",\"PIB\":\"America/Chicago\",\"PIC\":\"America/Grand_Turk\",\"PID\":\"America/Nassau\",\"PIE\":\"America/New_York\",\"PIF\":\"Asia/Taipei\",\"PIG\":\"America/Porto_Velho\",\"PIH\":\"America/Denver\",\"PIK\":\"Europe/London\",\"PIL\":\"America/Asuncion\",\"PIM\":\"America/New_York\",\"PIN\":\"America/Porto_Velho\",\"PIO\":\"America/Lima\",\"PIP\":\"America/Anchorage\",\"PIQ\":\"America/Guyana\",\"PIR\":\"America/Chicago\",\"PIS\":\"Europe/Paris\",\"PIT\":\"America/New_York\",\"PIU\":\"America/Lima\",\"PIV\":\"America/Sao_Paulo\",\"PIW\":\"America/Winnipeg\",\"PIX\":\"Atlantic/Azores\",\"PIZ\":\"America/Anchorage\",\"PJA\":\"Europe/Stockholm\",\"PJB\":\"America/Phoenix\",\"PJC\":\"America/Asuncion\",\"PJG\":\"Asia/Karachi\",\"PJM\":\"America/Costa_Rica\",\"PJS\":\"America/Anchorage\",\"PKA\":\"America/Anchorage\",\"PKB\":\"America/New_York\",\"PKC\":\"Asia/Kamchatka\",\"PKD\":\"America/Chicago\",\"PKE\":\"Australia/Sydney\",\"PKF\":\"America/Chicago\",\"PKG\":\"Asia/Kuala_Lumpur\",\"PKH\":\"Europe/Athens\",\"PKJ\":\"America/Guatemala\",\"PKK\":\"Asia/Yangon\",\"PKL\":\"Pacific/Auckland\",\"PKM\":\"America/Guyana\",\"PKN\":\"Asia/Jakarta\",\"PKO\":\"Africa/Porto-Novo\",\"PKP\":\"Pacific/Tahiti\",\"PKR\":\"Asia/Kathmandu\",\"PKS\":\"Asia/Vientiane\",\"PKT\":\"Australia/Darwin\",\"PKU\":\"Asia/Jakarta\",\"PKV\":\"Europe/Moscow\",\"PKW\":\"Africa/Gaborone\",\"PKX\":\"Asia/Shanghai\",\"PKY\":\"Asia/Jakarta\",\"PKZ\":\"Asia/Vientiane\",\"PLA\":\"America/Bogota\",\"PLB\":\"America/New_York\",\"PLC\":\"America/Bogota\",\"PLD\":\"America/Costa_Rica\",\"PLE\":\"Pacific/Port_Moresby\",\"PLF\":\"Africa/Ndjamena\",\"PLH\":\"Europe/London\",\"PLI\":\"America/St_Vincent\",\"PLJ\":\"America/Belize\",\"PLK\":\"America/Chicago\",\"PLL\":\"America/Porto_Velho\",\"PLM\":\"Asia/Jakarta\",\"PLN\":\"America/New_York\",\"PLO\":\"Australia/Adelaide\",\"PLP\":\"America/Panama\",\"PLQ\":\"Europe/Vilnius\",\"PLR\":\"America/Chicago\",\"PLS\":\"America/Grand_Turk\",\"PLT\":\"America/Bogota\",\"PLU\":\"America/Sao_Paulo\",\"PLV\":\"Europe/Kiev\",\"PLW\":\"Asia/Makassar\",\"PLX\":\"Asia/Almaty\",\"PLY\":\"America/Indiana/Indianapolis\",\"PLZ\":\"Africa/Johannesburg\",\"PMA\":\"Africa/Dar_es_Salaam\",\"PMB\":\"America/Chicago\",\"PMC\":\"America/Santiago\",\"PMD\":\"America/Los_Angeles\",\"PME\":\"Europe/London\",\"PMF\":\"Europe/Rome\",\"PMG\":\"America/Campo_Grande\",\"PMH\":\"America/New_York\",\"PMI\":\"Europe/Madrid\",\"PMK\":\"Australia/Brisbane\",\"PML\":\"America/Anchorage\",\"PMM\":\"Asia/Bangkok\",\"PMN\":\"Pacific/Port_Moresby\",\"PMO\":\"Europe/Rome\",\"PMP\":\"Pacific/Port_Moresby\",\"PMQ\":\"America/Argentina/Buenos_Aires\",\"PMR\":\"Pacific/Auckland\",\"PMS\":\"Asia/Damascus\",\"PMT\":\"America/Guyana\",\"PMU\":\"America/Anchorage\",\"PMV\":\"America/Caracas\",\"PMW\":\"America/Belem\",\"PMX\":\"America/New_York\",\"PMY\":\"America/Argentina/Buenos_Aires\",\"PMZ\":\"America/Costa_Rica\",\"PNA\":\"Europe/Madrid\",\"PNB\":\"America/Belem\",\"PNC\":\"America/Chicago\",\"PND\":\"America/Belize\",\"PNE\":\"America/New_York\",\"PNF\":\"America/Anchorage\",\"PNG\":\"America/Sao_Paulo\",\"PNH\":\"Asia/Phnom_Penh\",\"PNI\":\"Pacific/Pohnpei\",\"PNJ\":\"Asia/Shanghai\",\"PNK\":\"Asia/Jakarta\",\"PNL\":\"Europe/Rome\",\"PNN\":\"America/New_York\",\"PNO\":\"America/Mexico_City\",\"PNP\":\"Pacific/Port_Moresby\",\"PNQ\":\"Asia/Kolkata\",\"PNR\":\"Africa/Brazzaville\",\"PNS\":\"America/Chicago\",\"PNT\":\"America/Santiago\",\"PNU\":\"America/Denver\",\"PNV\":\"Europe/Vilnius\",\"PNX\":\"America/Chicago\",\"PNY\":\"Asia/Kolkata\",\"PNZ\":\"America/Belem\",\"POA\":\"America/Sao_Paulo\",\"POB\":\"America/New_York\",\"POC\":\"America/Los_Angeles\",\"POD\":\"Africa/Dakar\",\"POE\":\"America/Chicago\",\"POF\":\"America/Chicago\",\"POG\":\"Africa/Libreville\",\"POH\":\"America/Chicago\",\"POI\":\"America/La_Paz\",\"POJ\":\"America/Sao_Paulo\",\"POL\":\"Africa/Maputo\",\"POM\":\"Pacific/Port_Moresby\",\"PON\":\"America/Guatemala\",\"POO\":\"America/Sao_Paulo\",\"POP\":\"America/Santo_Domingo\",\"POR\":\"Europe/Helsinki\",\"POS\":\"America/Port_of_Spain\",\"POT\":\"America/Jamaica\",\"POU\":\"America/New_York\",\"POV\":\"Europe/Bratislava\",\"POW\":\"Europe/Ljubljana\",\"POX\":\"Europe/Paris\",\"POY\":\"America/Denver\",\"POZ\":\"Europe/Warsaw\",\"PPA\":\"America/Chicago\",\"PPB\":\"America/Sao_Paulo\",\"PPC\":\"America/Anchorage\",\"PPD\":\"America/Puerto_Rico\",\"PPE\":\"America/Hermosillo\",\"PPF\":\"America/Chicago\",\"PPG\":\"Pacific/Pago_Pago\",\"PPH\":\"America/Caracas\",\"PPI\":\"Australia/Adelaide\",\"PPJ\":\"Asia/Jakarta\",\"PPK\":\"Asia/Almaty\",\"PPL\":\"Asia/Kathmandu\",\"PPM\":\"America/New_York\",\"PPN\":\"America/Bogota\",\"PPO\":\"America/Nassau\",\"PPP\":\"Australia/Brisbane\",\"PPQ\":\"Pacific/Auckland\",\"PPR\":\"Asia/Jakarta\",\"PPS\":\"Asia/Manila\",\"PPT\":\"Pacific/Tahiti\",\"PPU\":\"Asia/Yangon\",\"PPV\":\"America/Anchorage\",\"PPW\":\"Europe/London\",\"PPX\":\"Pacific/Port_Moresby\",\"PPY\":\"America/Sao_Paulo\",\"PPZ\":\"America/Caracas\",\"PQC\":\"Asia/Ho_Chi_Minh\",\"PQI\":\"America/New_York\",\"PQM\":\"America/Mexico_City\",\"PQQ\":\"Australia/Sydney\",\"PQS\":\"America/Anchorage\",\"PQT\":\"America/Godthab\",\"PRA\":\"America/Argentina/Buenos_Aires\",\"PRB\":\"America/Los_Angeles\",\"PRC\":\"America/Phoenix\",\"PRD\":\"Australia/Perth\",\"PRE\":\"America/Bogota\",\"PRF\":\"America/Anchorage\",\"PRG\":\"Europe/Prague\",\"PRH\":\"Asia/Bangkok\",\"PRI\":\"Indian/Mahe\",\"PRJ\":\"Europe/Rome\",\"PRK\":\"Africa/Johannesburg\",\"PRL\":\"America/Anchorage\",\"PRM\":\"Europe/Lisbon\",\"PRN\":\"Europe/Belgrade\",\"PRO\":\"America/Chicago\",\"PRP\":\"Europe/Paris\",\"PRQ\":\"America/Argentina/Buenos_Aires\",\"PRR\":\"America/Guyana\",\"PRS\":\"Pacific/Guadalcanal\",\"PRU\":\"Asia/Yangon\",\"PRV\":\"Europe/Prague\",\"PRW\":\"America/Chicago\",\"PRX\":\"America/Chicago\",\"PRY\":\"Africa/Johannesburg\",\"PRZ\":\"America/Los_Angeles\",\"PSA\":\"Europe/Rome\",\"PSB\":\"America/New_York\",\"PSC\":\"America/Los_Angeles\",\"PSD\":\"Africa/Cairo\",\"PSE\":\"America/Puerto_Rico\",\"PSF\":\"America/New_York\",\"PSG\":\"America/Anchorage\",\"PSH\":\"Europe/Berlin\",\"PSI\":\"Asia/Karachi\",\"PSJ\":\"Asia/Makassar\",\"PSK\":\"America/New_York\",\"PSL\":\"Europe/London\",\"PSM\":\"America/New_York\",\"PSN\":\"America/Chicago\",\"PSO\":\"America/Bogota\",\"PSP\":\"America/Los_Angeles\",\"PSQ\":\"America/New_York\",\"PSR\":\"Europe/Rome\",\"PSS\":\"America/Argentina/Buenos_Aires\",\"PST\":\"America/Havana\",\"PSU\":\"Asia/Jakarta\",\"PSV\":\"Europe/London\",\"PSW\":\"America/Sao_Paulo\",\"PSX\":\"America/Chicago\",\"PSY\":\"Atlantic/Stanley\",\"PSZ\":\"America/La_Paz\",\"PTA\":\"America/Anchorage\",\"PTB\":\"America/New_York\",\"PTC\":\"America/Anchorage\",\"PTD\":\"America/Anchorage\",\"PTF\":\"Pacific/Fiji\",\"PTG\":\"Africa/Johannesburg\",\"PTH\":\"America/Anchorage\",\"PTI\":\"Australia/Brisbane\",\"PTJ\":\"Australia/Sydney\",\"PTK\":\"America/New_York\",\"PTL\":\"America/Anchorage\",\"PTM\":\"America/Caracas\",\"PTN\":\"America/Chicago\",\"PTO\":\"America/Sao_Paulo\",\"PTP\":\"America/Guadeloupe\",\"PTQ\":\"America/Belem\",\"PTR\":\"America/Anchorage\",\"PTS\":\"America/Chicago\",\"PTT\":\"America/Chicago\",\"PTU\":\"America/Anchorage\",\"PTV\":\"America/Los_Angeles\",\"PTW\":\"America/New_York\",\"PTX\":\"America/Bogota\",\"PTY\":\"America/Panama\",\"PTZ\":\"America/Guayaquil\",\"PUA\":\"Pacific/Port_Moresby\",\"PUB\":\"America/Denver\",\"PUC\":\"America/Denver\",\"PUD\":\"America/Argentina/Buenos_Aires\",\"PUE\":\"America/Panama\",\"PUF\":\"Europe/Paris\",\"PUG\":\"Australia/Adelaide\",\"PUH\":\"America/Mexico_City\",\"PUI\":\"Pacific/Port_Moresby\",\"PUJ\":\"America/Santo_Domingo\",\"PUK\":\"Pacific/Tahiti\",\"PUL\":\"America/Los_Angeles\",\"PUM\":\"Asia/Makassar\",\"PUN\":\"Africa/Lubumbashi\",\"PUO\":\"America/Anchorage\",\"PUP\":\"Africa/Ouagadougou\",\"PUQ\":\"America/Santiago\",\"PUR\":\"America/La_Paz\",\"PUS\":\"Asia/Seoul\",\"PUT\":\"Asia/Kolkata\",\"PUU\":\"America/Bogota\",\"PUV\":\"Pacific/Noumea\",\"PUW\":\"America/Los_Angeles\",\"PUX\":\"America/Santiago\",\"PUY\":\"Europe/Zagreb\",\"PUZ\":\"America/Managua\",\"PVA\":\"America/Bogota\",\"PVC\":\"America/New_York\",\"PVD\":\"America/New_York\",\"PVE\":\"America/Panama\",\"PVF\":\"America/Los_Angeles\",\"PVG\":\"Asia/Shanghai\",\"PVH\":\"America/Porto_Velho\",\"PVI\":\"America/Sao_Paulo\",\"PVK\":\"Europe/Athens\",\"PVL\":\"America/New_York\",\"PVN\":\"Europe/Sofia\",\"PVO\":\"America/Guayaquil\",\"PVR\":\"America/Mexico_City\",\"PVS\":\"Asia/Kamchatka\",\"PVU\":\"America/Denver\",\"PVW\":\"America/Chicago\",\"PVY\":\"America/Anchorage\",\"PVZ\":\"America/New_York\",\"PWA\":\"America/Chicago\",\"PWD\":\"America/Denver\",\"PWE\":\"Asia/Anadyr\",\"PWI\":\"Africa/Addis_Ababa\",\"PWK\":\"America/Chicago\",\"PWL\":\"Asia/Jakarta\",\"PWM\":\"America/New_York\",\"PWN\":\"America/Nassau\",\"PWO\":\"Africa/Lubumbashi\",\"PWQ\":\"Asia/Almaty\",\"PWR\":\"America/Anchorage\",\"PWT\":\"America/Los_Angeles\",\"PWY\":\"America/Denver\",\"PXA\":\"Asia/Jakarta\",\"PXH\":\"Australia/Adelaide\",\"PXL\":\"America/Phoenix\",\"PXM\":\"America/Mexico_City\",\"PXO\":\"Europe/Lisbon\",\"PXR\":\"Asia/Bangkok\",\"PXS\":\"Europe/Madrid\",\"PXU\":\"Asia/Ho_Chi_Minh\",\"PYA\":\"America/Bogota\",\"PYB\":\"Asia/Kolkata\",\"PYC\":\"America/Panama\",\"PYE\":\"Pacific/Rarotonga\",\"PYG\":\"Asia/Kolkata\",\"PYH\":\"America/Caracas\",\"PYJ\":\"Asia/Yakutsk\",\"PYL\":\"America/Anchorage\",\"PYM\":\"America/New_York\",\"PYN\":\"America/Bogota\",\"PYO\":\"America/Guayaquil\",\"PYR\":\"Europe/Athens\",\"PYS\":\"America/Los_Angeles\",\"PYV\":\"America/Panama\",\"PYX\":\"Asia/Bangkok\",\"PYY\":\"Asia/Bangkok\",\"PZA\":\"America/Bogota\",\"PZB\":\"Africa/Johannesburg\",\"PZE\":\"Europe/London\",\"PZH\":\"Asia/Karachi\",\"PZI\":\"Asia/Shanghai\",\"PZK\":\"Pacific/Rarotonga\",\"PZL\":\"Africa/Johannesburg\",\"PZO\":\"America/Caracas\",\"PZU\":\"Africa/Khartoum\",\"PZY\":\"Europe/Bratislava\",\"QAC\":\"America/Sao_Paulo\",\"QAK\":\"America/Sao_Paulo\",\"QBC\":\"America/Vancouver\",\"QBX\":\"America/Belem\",\"QCJ\":\"America/Sao_Paulo\",\"QCN\":\"America/Sao_Paulo\",\"QCP\":\"America/Belem\",\"QCR\":\"America/Sao_Paulo\",\"QCU\":\"America/Godthab\",\"QDB\":\"America/Campo_Grande\",\"QDC\":\"America/Sao_Paulo\",\"QDF\":\"America/Sao_Paulo\",\"QDP\":\"America/Campo_Grande\",\"QDV\":\"America/Sao_Paulo\",\"QET\":\"Asia/Seoul\",\"QFG\":\"America/Godthab\",\"QFI\":\"America/Godthab\",\"QFK\":\"Europe/Oslo\",\"QFN\":\"America/Godthab\",\"QFQ\":\"Europe/Oslo\",\"QFT\":\"America/Godthab\",\"QFX\":\"America/Godthab\",\"QGC\":\"America/Sao_Paulo\",\"QGF\":\"America/Sao_Paulo\",\"QGP\":\"America/Sao_Paulo\",\"QGQ\":\"America/Godthab\",\"QGU\":\"Asia/Tokyo\",\"QHB\":\"America/Sao_Paulo\",\"QHN\":\"America/Sao_Paulo\",\"QHV\":\"America/Sao_Paulo\",\"QID\":\"America/Sao_Paulo\",\"QIG\":\"America/Belem\",\"QIQ\":\"America/Sao_Paulo\",\"QIT\":\"America/Sao_Paulo\",\"QJE\":\"America/Godthab\",\"QJH\":\"America/Godthab\",\"QJI\":\"America/Godthab\",\"QLA\":\"Europe/London\",\"QLR\":\"Europe/Lisbon\",\"QLX\":\"Europe/Vienna\",\"QMF\":\"America/Sao_Paulo\",\"QMK\":\"America/Godthab\",\"QMM\":\"Europe/Rome\",\"QMQ\":\"Africa/Tripoli\",\"QMV\":\"America/New_York\",\"QNS\":\"America/Sao_Paulo\",\"QNV\":\"America/Sao_Paulo\",\"QOA\":\"America/Sao_Paulo\",\"QOQ\":\"America/Godthab\",\"QOW\":\"Africa/Lagos\",\"QPG\":\"Asia/Singapore\",\"QPK\":\"Europe/Berlin\",\"QPW\":\"America/Godthab\",\"QRA\":\"Africa/Johannesburg\",\"QRC\":\"Pacific/Easter\",\"QRE\":\"America/Campo_Grande\",\"QRF\":\"America/Argentina/Buenos_Aires\",\"QRH\":\"Europe/Amsterdam\",\"QRM\":\"Australia/Brisbane\",\"QRO\":\"America/Mexico_City\",\"QRR\":\"Australia/Brisbane\",\"QRW\":\"Africa/Lagos\",\"QRY\":\"America/Godthab\",\"QSC\":\"America/Sao_Paulo\",\"QSF\":\"Africa/Algiers\",\"QSM\":\"Europe/Berlin\",\"QSR\":\"Europe/Rome\",\"QSZ\":\"Asia/Shanghai\",\"QTL\":\"America/Sao_Paulo\",\"QUB\":\"Africa/Tripoli\",\"QUF\":\"Europe/Tallinn\",\"QUG\":\"Europe/London\",\"QUN\":\"Asia/Seoul\",\"QUO\":\"Africa/Lagos\",\"QUP\":\"America/Godthab\",\"QUT\":\"Asia/Tokyo\",\"QUV\":\"America/Godthab\",\"QUW\":\"America/Godthab\",\"QVP\":\"America/Sao_Paulo\",\"QWG\":\"America/New_York\",\"QXC\":\"America/Belem\",\"QXD\":\"America/Sao_Paulo\",\"QYI\":\"Europe/Amsterdam\",\"QZN\":\"Africa/Algiers\",\"RAA\":\"Pacific/Port_Moresby\",\"RAB\":\"Pacific/Port_Moresby\",\"RAC\":\"America/Chicago\",\"RAD\":\"America/Tortola\",\"RAE\":\"Asia/Riyadh\",\"RAF\":\"Africa/Cairo\",\"RAG\":\"Pacific/Auckland\",\"RAH\":\"Asia/Riyadh\",\"RAI\":\"Atlantic/Cape_Verde\",\"RAJ\":\"Asia/Kolkata\",\"RAK\":\"Africa/Casablanca\",\"RAL\":\"America/Los_Angeles\",\"RAM\":\"Australia/Darwin\",\"RAN\":\"Europe/Rome\",\"RAO\":\"America/Sao_Paulo\",\"RAP\":\"America/Denver\",\"RAQ\":\"Asia/Makassar\",\"RAR\":\"Pacific/Rarotonga\",\"RAS\":\"Asia/Tehran\",\"RAT\":\"Asia/Yekaterinburg\",\"RAU\":\"Asia/Dhaka\",\"RAV\":\"America/Bogota\",\"RAW\":\"Pacific/Bougainville\",\"RAX\":\"Pacific/Port_Moresby\",\"RAY\":\"Europe/London\",\"RAZ\":\"Asia/Karachi\",\"RBA\":\"Africa/Casablanca\",\"RBB\":\"America/Porto_Velho\",\"RBC\":\"Australia/Sydney\",\"RBD\":\"America/Chicago\",\"RBE\":\"Asia/Phnom_Penh\",\"RBF\":\"America/Los_Angeles\",\"RBG\":\"America/Los_Angeles\",\"RBH\":\"America/Anchorage\",\"RBI\":\"Pacific/Fiji\",\"RBJ\":\"Asia/Tokyo\",\"RBK\":\"America/Los_Angeles\",\"RBL\":\"America/Los_Angeles\",\"RBM\":\"Europe/Berlin\",\"RBN\":\"America/New_York\",\"RBO\":\"America/La_Paz\",\"RBP\":\"Pacific/Port_Moresby\",\"RBQ\":\"America/La_Paz\",\"RBR\":\"America/Rio_Branco\",\"RBS\":\"Australia/Sydney\",\"RBT\":\"Africa/Nairobi\",\"RBU\":\"Australia/Perth\",\"RBV\":\"Pacific/Guadalcanal\",\"RBW\":\"America/New_York\",\"RBX\":\"Africa/Juba\",\"RBY\":\"America/Anchorage\",\"RCA\":\"America/Denver\",\"RCB\":\"Africa/Johannesburg\",\"RCE\":\"America/Los_Angeles\",\"RCH\":\"America/Bogota\",\"RCK\":\"America/Chicago\",\"RCL\":\"Pacific/Efate\",\"RCM\":\"Australia/Brisbane\",\"RCN\":\"Australia/Adelaide\",\"RCO\":\"Europe/Paris\",\"RCP\":\"America/Anchorage\",\"RCQ\":\"America/Argentina/Buenos_Aires\",\"RCR\":\"America/Indiana/Indianapolis\",\"RCS\":\"Europe/London\",\"RCT\":\"America/New_York\",\"RCU\":\"America/Argentina/Buenos_Aires\",\"RCY\":\"America/Nassau\",\"RDA\":\"Australia/Darwin\",\"RDB\":\"America/Anchorage\",\"RDC\":\"America/Belem\",\"RDD\":\"America/Los_Angeles\",\"RDE\":\"Asia/Jayapura\",\"RDG\":\"America/New_York\",\"RDM\":\"America/Los_Angeles\",\"RDN\":\"Asia/Kuala_Lumpur\",\"RDO\":\"Europe/Warsaw\",\"RDP\":\"Asia/Kolkata\",\"RDR\":\"America/Chicago\",\"RDS\":\"America/Argentina/Buenos_Aires\",\"RDT\":\"Africa/Dakar\",\"RDU\":\"America/New_York\",\"RDV\":\"America/Anchorage\",\"RDZ\":\"Europe/Paris\",\"REA\":\"Pacific/Tahiti\",\"REB\":\"Europe/Berlin\",\"REC\":\"America/Belem\",\"RED\":\"America/New_York\",\"REE\":\"America/Chicago\",\"REG\":\"Europe/Rome\",\"REH\":\"America/New_York\",\"REI\":\"America/Cayenne\",\"REL\":\"America/Argentina/Buenos_Aires\",\"REN\":\"Asia/Yekaterinburg\",\"REO\":\"America/Los_Angeles\",\"REP\":\"Asia/Phnom_Penh\",\"RER\":\"America/Guatemala\",\"RES\":\"America/Argentina/Buenos_Aires\",\"RET\":\"Europe/Oslo\",\"REU\":\"Europe/Madrid\",\"REW\":\"Asia/Kolkata\",\"REX\":\"America/Matamoros\",\"REY\":\"America/La_Paz\",\"REZ\":\"America/Sao_Paulo\",\"RFA\":\"Africa/Bangui\",\"RFD\":\"America/Chicago\",\"RFG\":\"America/Chicago\",\"RFK\":\"America/Chicago\",\"RFN\":\"Atlantic/Reykjavik\",\"RFP\":\"Pacific/Tahiti\",\"RFR\":\"America/Costa_Rica\",\"RFS\":\"America/Managua\",\"RGA\":\"America/Argentina/Buenos_Aires\",\"RGE\":\"Pacific/Port_Moresby\",\"RGH\":\"Asia/Kolkata\",\"RGI\":\"Pacific/Tahiti\",\"RGK\":\"Asia/Krasnoyarsk\",\"RGL\":\"America/Argentina/Buenos_Aires\",\"RGN\":\"Asia/Yangon\",\"RGR\":\"America/Chicago\",\"RGS\":\"Europe/Madrid\",\"RGT\":\"Asia/Jakarta\",\"RHA\":\"Atlantic/Reykjavik\",\"RHD\":\"America/Argentina/Buenos_Aires\",\"RHE\":\"Europe/Paris\",\"RHG\":\"Africa/Kigali\",\"RHI\":\"America/Chicago\",\"RHL\":\"Australia/Perth\",\"RHN\":\"Africa/Windhoek\",\"RHO\":\"Europe/Athens\",\"RHP\":\"Asia/Kathmandu\",\"RHT\":\"Asia/Shanghai\",\"RHV\":\"America/Los_Angeles\",\"RIA\":\"America/Sao_Paulo\",\"RIB\":\"America/La_Paz\",\"RIC\":\"America/New_York\",\"RID\":\"America/Indiana/Indianapolis\",\"RIE\":\"America/Chicago\",\"RIF\":\"America/Denver\",\"RIG\":\"America/Sao_Paulo\",\"RIH\":\"America/Panama\",\"RIJ\":\"America/Lima\",\"RIL\":\"America/Denver\",\"RIM\":\"America/Lima\",\"RIN\":\"Pacific/Guadalcanal\",\"RIR\":\"America/Los_Angeles\",\"RIS\":\"Asia/Tokyo\",\"RIT\":\"America/Panama\",\"RIV\":\"America/Los_Angeles\",\"RIW\":\"America/Denver\",\"RIX\":\"Europe/Riga\",\"RIY\":\"Asia/Aden\",\"RIZ\":\"Asia/Shanghai\",\"RJA\":\"Asia/Kolkata\",\"RJB\":\"Asia/Kathmandu\",\"RJH\":\"Asia/Dhaka\",\"RJI\":\"Asia/Kolkata\",\"RJK\":\"Europe/Zagreb\",\"RJL\":\"Europe/Madrid\",\"RJM\":\"Asia/Jayapura\",\"RJN\":\"Asia/Tehran\",\"RKA\":\"Pacific/Tahiti\",\"RKC\":\"America/Los_Angeles\",\"RKD\":\"America/New_York\",\"RKE\":\"Europe/Copenhagen\",\"RKH\":\"America/New_York\",\"RKI\":\"Asia/Jakarta\",\"RKO\":\"Asia/Jakarta\",\"RKP\":\"America/Chicago\",\"RKR\":\"America/Chicago\",\"RKS\":\"America/Denver\",\"RKT\":\"Asia/Dubai\",\"RKU\":\"Pacific/Port_Moresby\",\"RKV\":\"Atlantic/Reykjavik\",\"RKW\":\"America/New_York\",\"RKY\":\"Australia/Brisbane\",\"RKZ\":\"Asia/Shanghai\",\"RLA\":\"America/Chicago\",\"RLD\":\"America/Los_Angeles\",\"RLG\":\"Europe/Berlin\",\"RLI\":\"America/Chicago\",\"RLK\":\"Asia/Shanghai\",\"RLO\":\"America/Argentina/Buenos_Aires\",\"RLP\":\"Australia/Brisbane\",\"RLR\":\"Indian/Antananarivo\",\"RLT\":\"Africa/Niamey\",\"RLU\":\"America/Anchorage\",\"RMA\":\"Australia/Brisbane\",\"RMB\":\"Asia/Muscat\",\"RMC\":\"America/Chicago\",\"RMD\":\"Asia/Kolkata\",\"RME\":\"America/New_York\",\"RMF\":\"Africa/Cairo\",\"RMG\":\"America/New_York\",\"RMI\":\"Europe/Rome\",\"RMK\":\"Australia/Adelaide\",\"RML\":\"Asia/Colombo\",\"RMN\":\"Pacific/Port_Moresby\",\"RMP\":\"America/Anchorage\",\"RMQ\":\"Asia/Taipei\",\"RMS\":\"Europe/Berlin\",\"RMT\":\"Pacific/Gambier\",\"RMU\":\"Europe/Madrid\",\"RMY\":\"America/Los_Angeles\",\"RNA\":\"Pacific/Guadalcanal\",\"RNB\":\"Europe/Stockholm\",\"RNC\":\"America/Chicago\",\"RND\":\"America/Chicago\",\"RNE\":\"Europe/Paris\",\"RNG\":\"America/Denver\",\"RNH\":\"America/Chicago\",\"RNI\":\"America/Managua\",\"RNJ\":\"Asia/Tokyo\",\"RNL\":\"Pacific/Guadalcanal\",\"RNM\":\"Asia/Muscat\",\"RNN\":\"Europe/Copenhagen\",\"RNO\":\"America/Los_Angeles\",\"RNP\":\"Pacific/Majuro\",\"RNR\":\"Pacific/Port_Moresby\",\"RNS\":\"Europe/Paris\",\"RNT\":\"America/Los_Angeles\",\"RNU\":\"Asia/Kuala_Lumpur\",\"RNZ\":\"America/Indiana/Indianapolis\",\"ROA\":\"America/New_York\",\"ROB\":\"Africa/Monrovia\",\"ROC\":\"America/New_York\",\"ROD\":\"Africa/Johannesburg\",\"ROF\":\"America/Los_Angeles\",\"ROG\":\"America/Chicago\",\"ROH\":\"Australia/Brisbane\",\"ROI\":\"Asia/Bangkok\",\"ROK\":\"Australia/Brisbane\",\"ROL\":\"America/Denver\",\"RON\":\"America/Bogota\",\"ROO\":\"America/Campo_Grande\",\"ROP\":\"Pacific/Saipan\",\"ROR\":\"Pacific/Palau\",\"ROS\":\"America/Argentina/Buenos_Aires\",\"ROT\":\"Pacific/Auckland\",\"ROU\":\"Europe/Sofia\",\"ROV\":\"Europe/Moscow\",\"ROW\":\"America/Denver\",\"ROX\":\"America/Chicago\",\"ROY\":\"America/Argentina/Buenos_Aires\",\"ROZ\":\"Europe/Madrid\",\"RPA\":\"Asia/Kathmandu\",\"RPB\":\"Australia/Darwin\",\"RPM\":\"Australia/Darwin\",\"RPN\":\"Asia/Jerusalem\",\"RPR\":\"Asia/Kolkata\",\"RPV\":\"Australia/Darwin\",\"RPX\":\"America/Denver\",\"RQA\":\"Asia/Shanghai\",\"RRA\":\"Europe/Madrid\",\"RRE\":\"Australia/Adelaide\",\"RRG\":\"Indian/Mauritius\",\"RRI\":\"Pacific/Guadalcanal\",\"RRJ\":\"America/Sao_Paulo\",\"RRK\":\"Asia/Kolkata\",\"RRL\":\"America/Chicago\",\"RRM\":\"Africa/Maputo\",\"RRN\":\"America/Belem\",\"RRO\":\"Europe/Rome\",\"RRR\":\"Pacific/Tahiti\",\"RRS\":\"Europe/Oslo\",\"RRT\":\"America/Chicago\",\"RRV\":\"Australia/Darwin\",\"RSA\":\"America/Argentina/Buenos_Aires\",\"RSB\":\"Australia/Brisbane\",\"RSD\":\"America/Nassau\",\"RSE\":\"Australia/Sydney\",\"RSG\":\"America/Belem\",\"RSH\":\"America/Anchorage\",\"RSI\":\"America/Panama\",\"RSJ\":\"America/Los_Angeles\",\"RSK\":\"Asia/Jayapura\",\"RSL\":\"America/Chicago\",\"RSN\":\"America/Chicago\",\"RSP\":\"America/Anchorage\",\"RSS\":\"Africa/Khartoum\",\"RST\":\"America/Chicago\",\"RSU\":\"Asia/Seoul\",\"RSW\":\"America/New_York\",\"RSX\":\"America/New_York\",\"RTA\":\"Pacific/Fiji\",\"RTB\":\"America/Tegucigalpa\",\"RTC\":\"Asia/Kolkata\",\"RTD\":\"America/New_York\",\"RTE\":\"America/Anchorage\",\"RTG\":\"Asia/Makassar\",\"RTI\":\"Asia/Makassar\",\"RTL\":\"America/Chicago\",\"RTM\":\"Europe/Amsterdam\",\"RTN\":\"America/Denver\",\"RTP\":\"Australia/Brisbane\",\"RTS\":\"Australia/Perth\",\"RTW\":\"Europe/Saratov\",\"RTY\":\"Australia/Adelaide\",\"RUA\":\"Africa/Kampala\",\"RUD\":\"Asia/Tehran\",\"RUF\":\"Asia/Jayapura\",\"RUG\":\"Asia/Shanghai\",\"RUH\":\"Asia/Riyadh\",\"RUI\":\"America/Denver\",\"RUK\":\"Asia/Kathmandu\",\"RUL\":\"Indian/Maldives\",\"RUM\":\"Asia/Kathmandu\",\"RUN\":\"Indian/Reunion\",\"RUP\":\"Asia/Kolkata\",\"RUR\":\"Pacific/Tahiti\",\"RUS\":\"Pacific/Guadalcanal\",\"RUT\":\"America/New_York\",\"RUU\":\"Pacific/Port_Moresby\",\"RUV\":\"America/Guatemala\",\"RUY\":\"America/Tegucigalpa\",\"RVA\":\"Indian/Antananarivo\",\"RVC\":\"Africa/Monrovia\",\"RVD\":\"America/Sao_Paulo\",\"RVE\":\"America/Bogota\",\"RVH\":\"Europe/Moscow\",\"RVI\":\"Europe/Moscow\",\"RVK\":\"Europe/Oslo\",\"RVN\":\"Europe/Helsinki\",\"RVO\":\"Africa/Johannesburg\",\"RVR\":\"America/Denver\",\"RVS\":\"America/Chicago\",\"RVT\":\"Australia/Perth\",\"RVV\":\"Pacific/Tahiti\",\"RVY\":\"America/Montevideo\",\"RWB\":\"America/Anchorage\",\"RWF\":\"America/Chicago\",\"RWI\":\"America/New_York\",\"RWL\":\"America/Denver\",\"RWN\":\"Europe/Kiev\",\"RWS\":\"America/Sao_Paulo\",\"RXA\":\"Asia/Aden\",\"RXE\":\"America/Denver\",\"RXS\":\"Asia/Manila\",\"RYB\":\"Europe/Moscow\",\"RYG\":\"Europe/Oslo\",\"RYK\":\"Asia/Karachi\",\"RYL\":\"Africa/Lusaka\",\"RYN\":\"Europe/Paris\",\"RYO\":\"America/Argentina/Buenos_Aires\",\"RZA\":\"America/Argentina/Buenos_Aires\",\"RZE\":\"Europe/Warsaw\",\"RZH\":\"Asia/Vladivostok\",\"RZN\":\"Europe/Moscow\",\"RZP\":\"Asia/Manila\",\"RZR\":\"Asia/Tehran\",\"RZS\":\"Asia/Karachi\",\"RZZ\":\"America/New_York\",\"SAA\":\"America/Denver\",\"SAB\":\"America/Curacao\",\"SAC\":\"America/Los_Angeles\",\"SAD\":\"America/Phoenix\",\"SAE\":\"America/Godthab\",\"SAF\":\"America/Denver\",\"SAG\":\"Asia/Kolkata\",\"SAH\":\"Asia/Aden\",\"SAI\":\"Europe/San_Marino\",\"SAK\":\"Atlantic/Reykjavik\",\"SAL\":\"America/El_Salvador\",\"SAM\":\"Pacific/Port_Moresby\",\"SAN\":\"America/Los_Angeles\",\"SAP\":\"America/Tegucigalpa\",\"SAQ\":\"America/Nassau\",\"SAR\":\"America/Chicago\",\"SAS\":\"America/Los_Angeles\",\"SAT\":\"America/Chicago\",\"SAU\":\"Asia/Makassar\",\"SAV\":\"America/New_York\",\"SAW\":\"Europe/Istanbul\",\"SAX\":\"America/Panama\",\"SAY\":\"Europe/Rome\",\"SAZ\":\"Africa/Monrovia\",\"SBA\":\"America/Los_Angeles\",\"SBB\":\"America/Caracas\",\"SBC\":\"Pacific/Port_Moresby\",\"SBD\":\"America/Los_Angeles\",\"SBE\":\"Pacific/Port_Moresby\",\"SBF\":\"Asia/Kabul\",\"SBG\":\"Asia/Jakarta\",\"SBH\":\"America/Guadeloupe\",\"SBI\":\"Africa/Conakry\",\"SBJ\":\"America/Sao_Paulo\",\"SBK\":\"Europe/Paris\",\"SBL\":\"America/La_Paz\",\"SBM\":\"America/Chicago\",\"SBN\":\"America/Indiana/Indianapolis\",\"SBO\":\"America/Denver\",\"SBP\":\"America/Los_Angeles\",\"SBQ\":\"Asia/Karachi\",\"SBR\":\"Australia/Brisbane\",\"SBS\":\"America/Denver\",\"SBT\":\"Asia/Yekaterinburg\",\"SBU\":\"Africa/Johannesburg\",\"SBV\":\"Pacific/Bougainville\",\"SBW\":\"Asia/Kuala_Lumpur\",\"SBX\":\"America/Denver\",\"SBY\":\"America/New_York\",\"SBZ\":\"Europe/Bucharest\",\"SCA\":\"America/Bogota\",\"SCB\":\"America/Chicago\",\"SCC\":\"America/Anchorage\",\"SCD\":\"America/Tegucigalpa\",\"SCE\":\"America/New_York\",\"SCF\":\"America/Phoenix\",\"SCG\":\"Australia/Brisbane\",\"SCH\":\"America/New_York\",\"SCI\":\"America/Caracas\",\"SCJ\":\"America/Anchorage\",\"SCK\":\"America/Los_Angeles\",\"SCL\":\"America/Santiago\",\"SCM\":\"America/Anchorage\",\"SCN\":\"Europe/Berlin\",\"SCO\":\"Asia/Aqtau\",\"SCP\":\"Europe/Paris\",\"SCQ\":\"Europe/Madrid\",\"SCR\":\"Europe/Stockholm\",\"SCS\":\"Europe/London\",\"SCT\":\"Asia/Aden\",\"SCU\":\"America/Havana\",\"SCV\":\"Europe/Bucharest\",\"SCW\":\"Europe/Moscow\",\"SCX\":\"America/Mexico_City\",\"SCY\":\"Pacific/Galapagos\",\"SCZ\":\"Pacific/Guadalcanal\",\"SDB\":\"Africa/Johannesburg\",\"SDC\":\"America/Guyana\",\"SDD\":\"Africa/Luanda\",\"SDE\":\"America/Argentina/Buenos_Aires\",\"SDF\":\"America/New_York\",\"SDG\":\"Asia/Tehran\",\"SDH\":\"America/Tegucigalpa\",\"SDI\":\"Pacific/Port_Moresby\",\"SDJ\":\"Asia/Tokyo\",\"SDK\":\"Asia/Kuala_Lumpur\",\"SDL\":\"Europe/Stockholm\",\"SDM\":\"America/Los_Angeles\",\"SDN\":\"Europe/Oslo\",\"SDO\":\"Asia/Tokyo\",\"SDP\":\"America/Anchorage\",\"SDQ\":\"America/Santo_Domingo\",\"SDR\":\"Europe/Madrid\",\"SDS\":\"Asia/Tokyo\",\"SDT\":\"Asia/Karachi\",\"SDU\":\"America/Sao_Paulo\",\"SDV\":\"Asia/Jerusalem\",\"SDW\":\"Asia/Dhaka\",\"SDX\":\"America/Phoenix\",\"SDY\":\"America/Denver\",\"SEA\":\"America/Los_Angeles\",\"SEB\":\"Africa/Tripoli\",\"SEC\":\"Europe/Paris\",\"SED\":\"Asia/Jerusalem\",\"SEE\":\"America/Los_Angeles\",\"SEF\":\"America/New_York\",\"SEG\":\"America/New_York\",\"SEH\":\"Asia/Jayapura\",\"SEK\":\"Asia/Magadan\",\"SEM\":\"America/Chicago\",\"SEN\":\"Europe/London\",\"SEO\":\"Africa/Abidjan\",\"SEP\":\"America/Chicago\",\"SEQ\":\"Asia/Jakarta\",\"SER\":\"America/Indiana/Indianapolis\",\"SES\":\"America/Chicago\",\"SET\":\"America/Belem\",\"SEU\":\"Africa/Dar_es_Salaam\",\"SEV\":\"Europe/Kiev\",\"SEW\":\"Africa/Cairo\",\"SEX\":\"Europe/Berlin\",\"SEY\":\"Africa/Nouakchott\",\"SEZ\":\"Indian/Mahe\",\"SFA\":\"Africa/Tunis\",\"SFB\":\"America/New_York\",\"SFC\":\"America/Guadeloupe\",\"SFD\":\"America/Caracas\",\"SFE\":\"Asia/Manila\",\"SFF\":\"America/Los_Angeles\",\"SFG\":\"America/Marigot\",\"SFH\":\"America/Tijuana\",\"SFI\":\"Africa/Casablanca\",\"SFJ\":\"America/Godthab\",\"SFK\":\"America/Belem\",\"SFL\":\"Atlantic/Cape_Verde\",\"SFM\":\"America/New_York\",\"SFN\":\"America/Argentina/Buenos_Aires\",\"SFO\":\"America/Los_Angeles\",\"SFP\":\"Australia/Brisbane\",\"SFR\":\"America/Los_Angeles\",\"SFS\":\"Asia/Manila\",\"SFT\":\"Europe/Stockholm\",\"SFU\":\"Pacific/Port_Moresby\",\"SFV\":\"America/Sao_Paulo\",\"SFW\":\"America/Panama\",\"SFX\":\"America/Caracas\",\"SFZ\":\"America/New_York\",\"SGA\":\"Asia/Kabul\",\"SGB\":\"Pacific/Port_Moresby\",\"SGC\":\"Asia/Yekaterinburg\",\"SGD\":\"Europe/Copenhagen\",\"SGE\":\"Europe/Berlin\",\"SGF\":\"America/Chicago\",\"SGG\":\"America/Godthab\",\"SGH\":\"America/New_York\",\"SGI\":\"Asia/Karachi\",\"SGJ\":\"Pacific/Port_Moresby\",\"SGK\":\"Pacific/Port_Moresby\",\"SGL\":\"Asia/Manila\",\"SGM\":\"America/Mazatlan\",\"SGN\":\"Asia/Ho_Chi_Minh\",\"SGO\":\"Australia/Brisbane\",\"SGP\":\"Australia/Perth\",\"SGQ\":\"Asia/Makassar\",\"SGR\":\"America/Chicago\",\"SGT\":\"America/Chicago\",\"SGU\":\"America/Denver\",\"SGV\":\"America/Argentina/Buenos_Aires\",\"SGW\":\"America/Anchorage\",\"SGX\":\"Africa/Dar_es_Salaam\",\"SGY\":\"America/Anchorage\",\"SGZ\":\"Asia/Bangkok\",\"SHA\":\"Asia/Shanghai\",\"SHB\":\"Asia/Tokyo\",\"SHC\":\"Africa/Addis_Ababa\",\"SHD\":\"America/New_York\",\"SHE\":\"Asia/Shanghai\",\"SHF\":\"Asia/Shanghai\",\"SHG\":\"America/Anchorage\",\"SHH\":\"America/Anchorage\",\"SHI\":\"Asia/Tokyo\",\"SHJ\":\"Asia/Dubai\",\"SHK\":\"Africa/Maseru\",\"SHL\":\"Asia/Kolkata\",\"SHM\":\"Asia/Tokyo\",\"SHN\":\"America/Los_Angeles\",\"SHO\":\"Africa/Mbabane\",\"SHP\":\"Asia/Shanghai\",\"SHQ\":\"Australia/Brisbane\",\"SHR\":\"America/Denver\",\"SHS\":\"Asia/Shanghai\",\"SHT\":\"Australia/Sydney\",\"SHU\":\"Australia/Darwin\",\"SHV\":\"America/Chicago\",\"SHW\":\"Asia/Riyadh\",\"SHX\":\"America/Anchorage\",\"SHY\":\"Africa/Dar_es_Salaam\",\"SHZ\":\"Africa/Maseru\",\"SIA\":\"Asia/Shanghai\",\"SIB\":\"Africa/Brazzaville\",\"SIC\":\"America/Panama\",\"SID\":\"Atlantic/Cape_Verde\",\"SIE\":\"Europe/Lisbon\",\"SIF\":\"Asia/Kathmandu\",\"SIG\":\"America/Puerto_Rico\",\"SIH\":\"Asia/Kathmandu\",\"SII\":\"Africa/Casablanca\",\"SIJ\":\"Atlantic/Reykjavik\",\"SIK\":\"America/Chicago\",\"SIL\":\"Pacific/Port_Moresby\",\"SIM\":\"Pacific/Port_Moresby\",\"SIN\":\"Asia/Singapore\",\"SIO\":\"Australia/Hobart\",\"SIP\":\"Europe/Simferopol\",\"SIQ\":\"Asia/Jakarta\",\"SIR\":\"Europe/Zurich\",\"SIS\":\"Africa/Johannesburg\",\"SIT\":\"America/Anchorage\",\"SIU\":\"America/Managua\",\"SIV\":\"America/Indiana/Indianapolis\",\"SIX\":\"Australia/Sydney\",\"SIY\":\"America/Los_Angeles\",\"SIZ\":\"Pacific/Port_Moresby\",\"SJA\":\"America/Lima\",\"SJB\":\"America/La_Paz\",\"SJC\":\"America/Los_Angeles\",\"SJD\":\"America/Mazatlan\",\"SJE\":\"America/Bogota\",\"SJF\":\"America/St_Thomas\",\"SJG\":\"America/Bogota\",\"SJH\":\"America/Bogota\",\"SJI\":\"Asia/Manila\",\"SJJ\":\"Europe/Sarajevo\",\"SJK\":\"America/Sao_Paulo\",\"SJL\":\"America/Porto_Velho\",\"SJM\":\"America/Santo_Domingo\",\"SJN\":\"America/Phoenix\",\"SJO\":\"America/Costa_Rica\",\"SJP\":\"America/Sao_Paulo\",\"SJQ\":\"Africa/Lusaka\",\"SJR\":\"America/Bogota\",\"SJS\":\"America/La_Paz\",\"SJT\":\"America/Chicago\",\"SJU\":\"America/Puerto_Rico\",\"SJV\":\"America/La_Paz\",\"SJW\":\"Asia/Shanghai\",\"SJX\":\"America/Belize\",\"SJY\":\"Europe/Helsinki\",\"SJZ\":\"Atlantic/Azores\",\"SKA\":\"America/Los_Angeles\",\"SKB\":\"America/St_Kitts\",\"SKC\":\"Pacific/Port_Moresby\",\"SKD\":\"Asia/Tashkent\",\"SKE\":\"Europe/Oslo\",\"SKF\":\"America/Chicago\",\"SKG\":\"Europe/Athens\",\"SKH\":\"Asia/Kathmandu\",\"SKI\":\"Africa/Algiers\",\"SKJ\":\"America/Anchorage\",\"SKK\":\"America/Anchorage\",\"SKL\":\"Europe/London\",\"SKM\":\"America/Guyana\",\"SKN\":\"Europe/Oslo\",\"SKO\":\"Africa/Lagos\",\"SKP\":\"Europe/Skopje\",\"SKQ\":\"Africa/Maseru\",\"SKR\":\"Africa/Addis_Ababa\",\"SKS\":\"Europe/Copenhagen\",\"SKT\":\"Asia/Karachi\",\"SKU\":\"Europe/Athens\",\"SKV\":\"Africa/Cairo\",\"SKW\":\"America/Anchorage\",\"SKX\":\"Europe/Moscow\",\"SKY\":\"America/New_York\",\"SKZ\":\"Asia/Karachi\",\"SLA\":\"America/Argentina/Buenos_Aires\",\"SLB\":\"America/Chicago\",\"SLC\":\"America/Denver\",\"SLD\":\"Europe/Bratislava\",\"SLE\":\"America/Los_Angeles\",\"SLF\":\"Asia/Riyadh\",\"SLG\":\"America/Chicago\",\"SLH\":\"Pacific/Efate\",\"SLI\":\"Africa/Lusaka\",\"SLJ\":\"Australia/Perth\",\"SLK\":\"America/New_York\",\"SLL\":\"Asia/Muscat\",\"SLM\":\"Europe/Madrid\",\"SLN\":\"America/Chicago\",\"SLO\":\"America/Chicago\",\"SLP\":\"America/Mexico_City\",\"SLQ\":\"America/Anchorage\",\"SLR\":\"America/Chicago\",\"SLS\":\"Europe/Sofia\",\"SLT\":\"America/Denver\",\"SLU\":\"America/St_Lucia\",\"SLV\":\"Asia/Kolkata\",\"SLW\":\"America/Mexico_City\",\"SLX\":\"America/Grand_Turk\",\"SLY\":\"Asia/Yekaterinburg\",\"SLZ\":\"America/Belem\",\"SMA\":\"Atlantic/Azores\",\"SMB\":\"America/Santiago\",\"SMC\":\"America/Bogota\",\"SMD\":\"America/Indiana/Indianapolis\",\"SME\":\"America/New_York\",\"SMF\":\"America/Los_Angeles\",\"SMG\":\"America/Lima\",\"SMH\":\"Pacific/Port_Moresby\",\"SMI\":\"Europe/Athens\",\"SMJ\":\"Pacific/Port_Moresby\",\"SMK\":\"America/Anchorage\",\"SML\":\"America/Nassau\",\"SMM\":\"Asia/Kuala_Lumpur\",\"SMN\":\"America/Denver\",\"SMO\":\"America/Los_Angeles\",\"SMP\":\"Pacific/Port_Moresby\",\"SMQ\":\"Asia/Jakarta\",\"SMR\":\"America/Bogota\",\"SMS\":\"Indian/Antananarivo\",\"SMT\":\"America/Campo_Grande\",\"SMU\":\"America/Anchorage\",\"SMV\":\"Europe/Zurich\",\"SMW\":\"Africa/Casablanca\",\"SMX\":\"America/Los_Angeles\",\"SMY\":\"Africa/Dakar\",\"SMZ\":\"America/Paramaribo\",\"SNA\":\"America/Los_Angeles\",\"SNB\":\"Australia/Darwin\",\"SNC\":\"America/Guayaquil\",\"SND\":\"Asia/Vientiane\",\"SNE\":\"Atlantic/Cape_Verde\",\"SNF\":\"America/Caracas\",\"SNG\":\"America/La_Paz\",\"SNH\":\"Australia/Brisbane\",\"SNI\":\"Africa/Monrovia\",\"SNJ\":\"America/Havana\",\"SNK\":\"America/Chicago\",\"SNL\":\"America/Chicago\",\"SNM\":\"America/La_Paz\",\"SNN\":\"Europe/Dublin\",\"SNO\":\"Asia/Bangkok\",\"SNP\":\"America/Anchorage\",\"SNQ\":\"America/Tijuana\",\"SNR\":\"Europe/Paris\",\"SNS\":\"America/Los_Angeles\",\"SNT\":\"America/Bogota\",\"SNU\":\"America/Havana\",\"SNV\":\"America/Caracas\",\"SNW\":\"Asia/Yangon\",\"SNX\":\"Asia/Tehran\",\"SNY\":\"America/Denver\",\"SNZ\":\"America/Belem\",\"SOA\":\"Asia/Ho_Chi_Minh\",\"SOB\":\"Europe/Budapest\",\"SOC\":\"Asia/Jakarta\",\"SOD\":\"America/Sao_Paulo\",\"SOE\":\"Africa/Brazzaville\",\"SOF\":\"Europe/Sofia\",\"SOG\":\"Europe/Oslo\",\"SOH\":\"America/Bogota\",\"SOI\":\"Australia/Brisbane\",\"SOJ\":\"Europe/Oslo\",\"SOK\":\"Africa/Maseru\",\"SOL\":\"America/Anchorage\",\"SOM\":\"America/Caracas\",\"SON\":\"Pacific/Efate\",\"SOO\":\"Europe/Stockholm\",\"SOP\":\"America/New_York\",\"SOQ\":\"Asia/Jayapura\",\"SOR\":\"Asia/Damascus\",\"SOT\":\"Europe/Helsinki\",\"SOU\":\"Europe/London\",\"SOV\":\"America/Anchorage\",\"SOW\":\"America/Phoenix\",\"SOX\":\"America/Bogota\",\"SOY\":\"Europe/London\",\"SOZ\":\"Europe/Paris\",\"SPA\":\"America/New_York\",\"SPB\":\"America/St_Thomas\",\"SPC\":\"Atlantic/Canary\",\"SPD\":\"Asia/Dhaka\",\"SPE\":\"Asia/Kuala_Lumpur\",\"SPF\":\"America/Denver\",\"SPG\":\"America/New_York\",\"SPH\":\"Pacific/Port_Moresby\",\"SPI\":\"America/Chicago\",\"SPJ\":\"Europe/Athens\",\"SPM\":\"Europe/Berlin\",\"SPN\":\"Pacific/Saipan\",\"SPO\":\"Europe/Madrid\",\"SPP\":\"Africa/Luanda\",\"SPQ\":\"America/Los_Angeles\",\"SPR\":\"America/Belize\",\"SPS\":\"America/Chicago\",\"SPT\":\"Asia/Kuala_Lumpur\",\"SPU\":\"Europe/Zagreb\",\"SPV\":\"Pacific/Port_Moresby\",\"SPW\":\"America/Chicago\",\"SPX\":\"Africa/Cairo\",\"SPY\":\"Africa/Abidjan\",\"SPZ\":\"America/Chicago\",\"SQA\":\"America/Los_Angeles\",\"SQB\":\"America/Bogota\",\"SQC\":\"Australia/Perth\",\"SQD\":\"Asia/Shanghai\",\"SQE\":\"America/Bogota\",\"SQF\":\"America/Bogota\",\"SQG\":\"Asia/Jakarta\",\"SQH\":\"Asia/Ho_Chi_Minh\",\"SQI\":\"America/Chicago\",\"SQJ\":\"Asia/Shanghai\",\"SQK\":\"Africa/Cairo\",\"SQL\":\"America/Los_Angeles\",\"SQM\":\"America/Sao_Paulo\",\"SQN\":\"Asia/Jayapura\",\"SQO\":\"Europe/Stockholm\",\"SQP\":\"Australia/Brisbane\",\"SQQ\":\"Europe/Vilnius\",\"SQR\":\"Asia/Jayapura\",\"SQS\":\"America/Belize\",\"SQT\":\"Pacific/Port_Moresby\",\"SQU\":\"America/Lima\",\"SQV\":\"America/Los_Angeles\",\"SQW\":\"Europe/Copenhagen\",\"SQX\":\"America/Sao_Paulo\",\"SQY\":\"America/Sao_Paulo\",\"SQZ\":\"Europe/London\",\"SRA\":\"America/Sao_Paulo\",\"SRB\":\"America/La_Paz\",\"SRC\":\"America/Chicago\",\"SRD\":\"America/La_Paz\",\"SRE\":\"America/La_Paz\",\"SRF\":\"America/Los_Angeles\",\"SRG\":\"Asia/Jakarta\",\"SRH\":\"Africa/Ndjamena\",\"SRI\":\"Asia/Makassar\",\"SRJ\":\"America/La_Paz\",\"SRK\":\"America/Thule\",\"SRL\":\"America/Mazatlan\",\"SRM\":\"Australia/Brisbane\",\"SRN\":\"Australia/Hobart\",\"SRO\":\"America/Bogota\",\"SRP\":\"Europe/Oslo\",\"SRQ\":\"America/New_York\",\"SRS\":\"America/Bogota\",\"SRT\":\"Africa/Kampala\",\"SRU\":\"America/Los_Angeles\",\"SRV\":\"America/Anchorage\",\"SRW\":\"America/New_York\",\"SRX\":\"Africa/Tripoli\",\"SRY\":\"Asia/Tehran\",\"SRZ\":\"America/La_Paz\",\"SSA\":\"America/Belem\",\"SSB\":\"America/St_Thomas\",\"SSC\":\"America/New_York\",\"SSD\":\"America/Bogota\",\"SSE\":\"Asia/Kolkata\",\"SSF\":\"America/Chicago\",\"SSG\":\"Africa/Malabo\",\"SSH\":\"Africa/Cairo\",\"SSI\":\"America/New_York\",\"SSJ\":\"Europe/Oslo\",\"SSK\":\"Australia/Perth\",\"SSL\":\"America/Bogota\",\"SSM\":\"America/New_York\",\"SSN\":\"Asia/Seoul\",\"SSO\":\"America/Sao_Paulo\",\"SSP\":\"Australia/Brisbane\",\"SSQ\":\"America/Toronto\",\"SSR\":\"Pacific/Efate\",\"SSS\":\"Pacific/Port_Moresby\",\"SST\":\"America/Argentina/Buenos_Aires\",\"SSU\":\"America/New_York\",\"SSV\":\"Asia/Manila\",\"SSW\":\"America/Los_Angeles\",\"SSX\":\"Africa/Johannesburg\",\"SSY\":\"Africa/Luanda\",\"SSZ\":\"America/Sao_Paulo\",\"STA\":\"Europe/Copenhagen\",\"STB\":\"America/Caracas\",\"STC\":\"America/Chicago\",\"STD\":\"America/Caracas\",\"STE\":\"America/Chicago\",\"STF\":\"Australia/Brisbane\",\"STG\":\"America/Anchorage\",\"STH\":\"Australia/Brisbane\",\"STI\":\"America/Santo_Domingo\",\"STJ\":\"America/Chicago\",\"STK\":\"America/Denver\",\"STL\":\"America/Chicago\",\"STM\":\"America/Belem\",\"STN\":\"Europe/London\",\"STP\":\"America/Chicago\",\"STQ\":\"America/New_York\",\"STR\":\"Europe/Berlin\",\"STS\":\"America/Los_Angeles\",\"STT\":\"America/St_Thomas\",\"STV\":\"Asia/Kolkata\",\"STW\":\"Europe/Moscow\",\"STX\":\"America/St_Thomas\",\"STY\":\"America/Montevideo\",\"STZ\":\"America/Campo_Grande\",\"SUA\":\"America/New_York\",\"SUB\":\"Asia/Jakarta\",\"SUC\":\"America/Denver\",\"SUD\":\"America/Chicago\",\"SUE\":\"America/Chicago\",\"SUF\":\"Europe/Rome\",\"SUG\":\"Asia/Manila\",\"SUH\":\"Asia/Muscat\",\"SUI\":\"Asia/Tbilisi\",\"SUJ\":\"Europe/Bucharest\",\"SUK\":\"Asia/Vladivostok\",\"SUL\":\"Asia/Karachi\",\"SUM\":\"America/New_York\",\"SUN\":\"America/Denver\",\"SUO\":\"America/Los_Angeles\",\"SUP\":\"Asia/Jakarta\",\"SUQ\":\"America/Guayaquil\",\"SUR\":\"America/Toronto\",\"SUS\":\"America/Chicago\",\"SUT\":\"Africa/Dar_es_Salaam\",\"SUU\":\"America/Los_Angeles\",\"SUV\":\"Pacific/Fiji\",\"SUW\":\"America/Chicago\",\"SUX\":\"America/Chicago\",\"SUY\":\"Asia/Yakutsk\",\"SUZ\":\"Pacific/Port_Moresby\",\"SVA\":\"America/Anchorage\",\"SVB\":\"Indian/Antananarivo\",\"SVC\":\"America/Denver\",\"SVD\":\"America/St_Vincent\",\"SVE\":\"America/Los_Angeles\",\"SVF\":\"Africa/Porto-Novo\",\"SVG\":\"Europe/Oslo\",\"SVH\":\"America/New_York\",\"SVI\":\"America/Bogota\",\"SVJ\":\"Europe/Oslo\",\"SVK\":\"America/Belize\",\"SVL\":\"Europe/Helsinki\",\"SVM\":\"Australia/Brisbane\",\"SVN\":\"America/New_York\",\"SVO\":\"Europe/Moscow\",\"SVP\":\"Africa/Luanda\",\"SVQ\":\"Europe/Madrid\",\"SVR\":\"America/Thule\",\"SVS\":\"America/Anchorage\",\"SVT\":\"Africa/Gaborone\",\"SVU\":\"Pacific/Fiji\",\"SVV\":\"America/Caracas\",\"SVW\":\"America/Anchorage\",\"SVX\":\"Asia/Yekaterinburg\",\"SVY\":\"Pacific/Guadalcanal\",\"SVZ\":\"America/Caracas\",\"SWA\":\"Asia/Shanghai\",\"SWB\":\"Australia/Perth\",\"SWC\":\"Australia/Sydney\",\"SWD\":\"America/Anchorage\",\"SWE\":\"Pacific/Port_Moresby\",\"SWF\":\"America/New_York\",\"SWG\":\"Pacific/Port_Moresby\",\"SWH\":\"Australia/Sydney\",\"SWI\":\"Europe/London\",\"SWJ\":\"Pacific/Efate\",\"SWL\":\"Asia/Manila\",\"SWM\":\"America/Campo_Grande\",\"SWN\":\"Asia/Karachi\",\"SWO\":\"America/Chicago\",\"SWP\":\"Africa/Windhoek\",\"SWQ\":\"Asia/Makassar\",\"SWR\":\"Pacific/Port_Moresby\",\"SWS\":\"Europe/London\",\"SWT\":\"Asia/Omsk\",\"SWU\":\"Asia/Seoul\",\"SWV\":\"Asia/Magadan\",\"SWW\":\"America/Chicago\",\"SWX\":\"Africa/Gaborone\",\"SWY\":\"Asia/Kuala_Lumpur\",\"SWZ\":\"Australia/Sydney\",\"SXA\":\"Pacific/Port_Moresby\",\"SXB\":\"Europe/Paris\",\"SXD\":\"Europe/Paris\",\"SXE\":\"Australia/Sydney\",\"SXF\":\"Europe/Berlin\",\"SXG\":\"Africa/Lusaka\",\"SXH\":\"Pacific/Port_Moresby\",\"SXI\":\"Asia/Tehran\",\"SXJ\":\"Asia/Shanghai\",\"SXK\":\"Asia/Jayapura\",\"SXL\":\"Europe/Dublin\",\"SXM\":\"America/Curacao\",\"SXN\":\"Africa/Gaborone\",\"SXO\":\"America/Campo_Grande\",\"SXP\":\"America/Anchorage\",\"SXQ\":\"America/Anchorage\",\"SXR\":\"Asia/Kolkata\",\"SXS\":\"Asia/Kuala_Lumpur\",\"SXT\":\"Asia/Kuala_Lumpur\",\"SXU\":\"Africa/Addis_Ababa\",\"SXV\":\"Asia/Kolkata\",\"SXW\":\"Pacific/Port_Moresby\",\"SXX\":\"America/Belem\",\"SXY\":\"America/New_York\",\"SXZ\":\"Europe/Istanbul\",\"SYA\":\"America/Adak\",\"SYB\":\"America/Anchorage\",\"SYC\":\"America/Lima\",\"SYD\":\"Australia/Sydney\",\"SYE\":\"Asia/Aden\",\"SYF\":\"America/Vancouver\",\"SYG\":\"Europe/Oslo\",\"SYI\":\"America/Chicago\",\"SYJ\":\"Asia/Tehran\",\"SYK\":\"Atlantic/Reykjavik\",\"SYL\":\"America/Los_Angeles\",\"SYM\":\"Asia/Shanghai\",\"SYN\":\"America/Chicago\",\"SYO\":\"Asia/Tokyo\",\"SYP\":\"America/Panama\",\"SYQ\":\"America/Costa_Rica\",\"SYR\":\"America/New_York\",\"SYS\":\"Asia/Yakutsk\",\"SYT\":\"Europe/Paris\",\"SYU\":\"Australia/Brisbane\",\"SYV\":\"America/New_York\",\"SYW\":\"Asia/Karachi\",\"SYX\":\"Asia/Shanghai\",\"SYY\":\"Europe/London\",\"SYZ\":\"Asia/Tehran\",\"SZA\":\"Africa/Luanda\",\"SZB\":\"Asia/Kuala_Lumpur\",\"SZC\":\"America/Costa_Rica\",\"SZD\":\"Europe/London\",\"SZE\":\"Africa/Addis_Ababa\",\"SZF\":\"Europe/Istanbul\",\"SZG\":\"Europe/Vienna\",\"SZH\":\"Asia/Makassar\",\"SZI\":\"Asia/Almaty\",\"SZJ\":\"America/Havana\",\"SZK\":\"Africa/Johannesburg\",\"SZL\":\"America/Chicago\",\"SZM\":\"Africa/Windhoek\",\"SZN\":\"America/Los_Angeles\",\"SZO\":\"Asia/Shanghai\",\"SZP\":\"America/Los_Angeles\",\"SZQ\":\"America/Argentina/Buenos_Aires\",\"SZR\":\"Europe/Sofia\",\"SZS\":\"Pacific/Auckland\",\"SZT\":\"America/Mexico_City\",\"SZU\":\"Africa/Bamako\",\"SZV\":\"Asia/Shanghai\",\"SZW\":\"Europe/Berlin\",\"SZX\":\"Asia/Shanghai\",\"SZY\":\"Europe/Warsaw\",\"SZZ\":\"Europe/Warsaw\",\"TAA\":\"Pacific/Guadalcanal\",\"TAB\":\"America/Port_of_Spain\",\"TAC\":\"Asia/Manila\",\"TAD\":\"America/Denver\",\"TAE\":\"Asia/Seoul\",\"TAF\":\"Africa/Algiers\",\"TAG\":\"Asia/Manila\",\"TAH\":\"Pacific/Efate\",\"TAI\":\"Asia/Aden\",\"TAJ\":\"Pacific/Port_Moresby\",\"TAK\":\"Asia/Tokyo\",\"TAL\":\"America/Anchorage\",\"TAM\":\"America/Mexico_City\",\"TAN\":\"Australia/Brisbane\",\"TAO\":\"Asia/Shanghai\",\"TAP\":\"America/Mexico_City\",\"TAQ\":\"Australia/Adelaide\",\"TAR\":\"Europe/Rome\",\"TAS\":\"Asia/Tashkent\",\"TAT\":\"Europe/Bratislava\",\"TAU\":\"America/Bogota\",\"TAV\":\"Pacific/Pago_Pago\",\"TAW\":\"America/Montevideo\",\"TAX\":\"Asia/Jayapura\",\"TAY\":\"Europe/Tallinn\",\"TAZ\":\"Asia/Ashgabat\",\"TBA\":\"Pacific/Port_Moresby\",\"TBB\":\"Asia/Ho_Chi_Minh\",\"TBC\":\"America/Phoenix\",\"TBD\":\"America/Bogota\",\"TBE\":\"Pacific/Port_Moresby\",\"TBF\":\"Pacific/Tarawa\",\"TBG\":\"Pacific/Port_Moresby\",\"TBH\":\"Asia/Manila\",\"TBI\":\"America/Nassau\",\"TBJ\":\"Africa/Tunis\",\"TBK\":\"Australia/Darwin\",\"TBL\":\"Australia/Perth\",\"TBM\":\"Asia/Pontianak\",\"TBN\":\"America/Chicago\",\"TBO\":\"Africa/Dar_es_Salaam\",\"TBP\":\"America/Lima\",\"TBR\":\"America/New_York\",\"TBS\":\"Asia/Tbilisi\",\"TBT\":\"America/Rio_Branco\",\"TBU\":\"Pacific/Tongatapu\",\"TBV\":\"Pacific/Majuro\",\"TBW\":\"Europe/Moscow\",\"TBY\":\"Africa/Gaborone\",\"TBZ\":\"Asia/Tehran\",\"TCA\":\"Australia/Darwin\",\"TCB\":\"America/Nassau\",\"TCC\":\"America/Denver\",\"TCD\":\"America/Bogota\",\"TCE\":\"Europe/Bucharest\",\"TCF\":\"America/Tegucigalpa\",\"TCG\":\"Asia/Shanghai\",\"TCH\":\"Africa/Libreville\",\"TCJ\":\"Pacific/Port_Moresby\",\"TCK\":\"Pacific/Port_Moresby\",\"TCL\":\"America/Chicago\",\"TCM\":\"America/Los_Angeles\",\"TCN\":\"America/Mexico_City\",\"TCO\":\"America/Bogota\",\"TCP\":\"Africa/Cairo\",\"TCQ\":\"America/Lima\",\"TCR\":\"Asia/Kolkata\",\"TCS\":\"America/Denver\",\"TCT\":\"America/Anchorage\",\"TCU\":\"Africa/Johannesburg\",\"TCV\":\"Africa/Maputo\",\"TCW\":\"Australia/Sydney\",\"TCX\":\"Asia/Tehran\",\"TCY\":\"Africa/Windhoek\",\"TCZ\":\"Asia/Shanghai\",\"TDA\":\"America/Bogota\",\"TDB\":\"Pacific/Port_Moresby\",\"TDD\":\"America/La_Paz\",\"TDG\":\"Asia/Manila\",\"TDJ\":\"Africa/Djibouti\",\"TDK\":\"Asia/Almaty\",\"TDL\":\"America/Argentina/Buenos_Aires\",\"TDN\":\"Australia/Perth\",\"TDO\":\"America/Los_Angeles\",\"TDR\":\"Australia/Brisbane\",\"TDT\":\"Africa/Johannesburg\",\"TDV\":\"Indian/Antananarivo\",\"TDW\":\"America/Chicago\",\"TDX\":\"Asia/Bangkok\",\"TDZ\":\"America/New_York\",\"TEA\":\"America/Tegucigalpa\",\"TEB\":\"America/New_York\",\"TEC\":\"America/Sao_Paulo\",\"TED\":\"Europe/Copenhagen\",\"TEE\":\"Africa/Algiers\",\"TEF\":\"Australia/Perth\",\"TEG\":\"Africa/Ouagadougou\",\"TEH\":\"America/Anchorage\",\"TEI\":\"Asia/Kolkata\",\"TEK\":\"America/Anchorage\",\"TEL\":\"Asia/Kuala_Lumpur\",\"TEM\":\"Australia/Sydney\",\"TEN\":\"Asia/Shanghai\",\"TEO\":\"Pacific/Port_Moresby\",\"TEP\":\"Pacific/Port_Moresby\",\"TEQ\":\"Europe/Istanbul\",\"TER\":\"Atlantic/Azores\",\"TES\":\"Africa/Asmara\",\"TET\":\"Africa/Maputo\",\"TEU\":\"Pacific/Auckland\",\"TEV\":\"Europe/Madrid\",\"TEX\":\"America/Denver\",\"TEY\":\"Atlantic/Reykjavik\",\"TEZ\":\"Asia/Kolkata\",\"TFB\":\"Pacific/Port_Moresby\",\"TFF\":\"America/Porto_Velho\",\"TFI\":\"Pacific/Port_Moresby\",\"TFL\":\"America/Sao_Paulo\",\"TFM\":\"Pacific/Port_Moresby\",\"TFN\":\"Atlantic/Canary\",\"TFR\":\"Africa/Cairo\",\"TFS\":\"Atlantic/Canary\",\"TFT\":\"Asia/Karachi\",\"TFU\":\"Asia/Shanghai\",\"TFY\":\"Africa/Casablanca\",\"TGA\":\"Asia/Singapore\",\"TGB\":\"Asia/Manila\",\"TGC\":\"Asia/Kuala_Lumpur\",\"TGD\":\"Europe/Podgorica\",\"TGE\":\"America/Chicago\",\"TGF\":\"Europe/Paris\",\"TGG\":\"Asia/Kuala_Lumpur\",\"TGH\":\"Pacific/Efate\",\"TGI\":\"America/Lima\",\"TGJ\":\"Pacific/Noumea\",\"TGK\":\"Europe/Moscow\",\"TGL\":\"Pacific/Port_Moresby\",\"TGM\":\"Europe/Bucharest\",\"TGN\":\"Australia/Sydney\",\"TGO\":\"Asia/Shanghai\",\"TGP\":\"Asia/Krasnoyarsk\",\"TGQ\":\"America/Campo_Grande\",\"TGR\":\"Africa/Algiers\",\"TGS\":\"Africa/Maputo\",\"TGT\":\"Africa/Dar_es_Salaam\",\"TGU\":\"America/Tegucigalpa\",\"TGV\":\"Europe/Sofia\",\"TGZ\":\"America/Mexico_City\",\"THA\":\"America/Chicago\",\"THB\":\"Africa/Maseru\",\"THC\":\"Africa/Monrovia\",\"THD\":\"Asia/Ho_Chi_Minh\",\"THE\":\"America/Belem\",\"THG\":\"Australia/Brisbane\",\"THH\":\"Pacific/Auckland\",\"THI\":\"Africa/Nouakchott\",\"THK\":\"Asia/Vientiane\",\"THL\":\"Asia/Yangon\",\"THM\":\"America/Chicago\",\"THN\":\"Europe/Stockholm\",\"THO\":\"Atlantic/Reykjavik\",\"THP\":\"America/Denver\",\"THQ\":\"Asia/Shanghai\",\"THR\":\"Asia/Tehran\",\"THS\":\"Asia/Bangkok\",\"THT\":\"Africa/Nouakchott\",\"THU\":\"America/Thule\",\"THV\":\"America/New_York\",\"THW\":\"Asia/Colombo\",\"THX\":\"Asia/Krasnoyarsk\",\"THY\":\"Africa/Johannesburg\",\"THZ\":\"Africa/Niamey\",\"TIA\":\"Europe/Tirane\",\"TIB\":\"America/Bogota\",\"TIC\":\"Pacific/Majuro\",\"TID\":\"Africa/Algiers\",\"TIE\":\"Africa/Addis_Ababa\",\"TIF\":\"Asia/Riyadh\",\"TIG\":\"Pacific/Port_Moresby\",\"TIH\":\"Pacific/Tahiti\",\"TII\":\"Asia/Kabul\",\"TIJ\":\"America/Tijuana\",\"TIK\":\"America/Chicago\",\"TIM\":\"Asia/Jayapura\",\"TIN\":\"Africa/Algiers\",\"TIO\":\"Asia/Yangon\",\"TIP\":\"Africa/Tripoli\",\"TIQ\":\"Pacific/Saipan\",\"TIR\":\"Asia/Kolkata\",\"TIS\":\"Australia/Brisbane\",\"TIU\":\"Pacific/Auckland\",\"TIV\":\"Europe/Podgorica\",\"TIW\":\"America/Los_Angeles\",\"TIX\":\"America/New_York\",\"TIY\":\"Africa/Nouakchott\",\"TIZ\":\"Pacific/Port_Moresby\",\"TJA\":\"America/La_Paz\",\"TJB\":\"Asia/Jakarta\",\"TJC\":\"America/Panama\",\"TJG\":\"Asia/Makassar\",\"TJH\":\"Asia/Tokyo\",\"TJI\":\"America/Tegucigalpa\",\"TJK\":\"Europe/Istanbul\",\"TJL\":\"America/Campo_Grande\",\"TJM\":\"Asia/Yekaterinburg\",\"TJN\":\"Pacific/Tahiti\",\"TJQ\":\"Asia/Jakarta\",\"TJS\":\"Asia/Makassar\",\"TJU\":\"Asia/Dushanbe\",\"TJV\":\"Asia/Kolkata\",\"TKA\":\"America/Anchorage\",\"TKB\":\"Pacific/Port_Moresby\",\"TKC\":\"Africa/Douala\",\"TKD\":\"Africa/Accra\",\"TKE\":\"America/Anchorage\",\"TKF\":\"America/Los_Angeles\",\"TKG\":\"Asia/Jakarta\",\"TKH\":\"Asia/Bangkok\",\"TKI\":\"America/Anchorage\",\"TKJ\":\"America/Anchorage\",\"TKK\":\"Pacific/Chuuk\",\"TKL\":\"America/Anchorage\",\"TKM\":\"America/Guatemala\",\"TKN\":\"Asia/Tokyo\",\"TKO\":\"Africa/Maseru\",\"TKP\":\"Pacific/Tahiti\",\"TKQ\":\"Africa/Dar_es_Salaam\",\"TKR\":\"Asia/Dhaka\",\"TKS\":\"Asia/Tokyo\",\"TKT\":\"Asia/Bangkok\",\"TKU\":\"Europe/Helsinki\",\"TKV\":\"Pacific/Tahiti\",\"TKW\":\"Pacific/Port_Moresby\",\"TKX\":\"Pacific/Tahiti\",\"TKY\":\"Australia/Perth\",\"TKZ\":\"Pacific/Auckland\",\"TLA\":\"America/Anchorage\",\"TLB\":\"Asia/Karachi\",\"TLC\":\"America/Mexico_City\",\"TLD\":\"Africa/Gaborone\",\"TLE\":\"Indian/Antananarivo\",\"TLF\":\"America/Anchorage\",\"TLG\":\"Pacific/Guadalcanal\",\"TLH\":\"America/New_York\",\"TLI\":\"Asia/Makassar\",\"TLJ\":\"America/Anchorage\",\"TLK\":\"Asia/Yakutsk\",\"TLL\":\"Europe/Tallinn\",\"TLM\":\"Africa/Algiers\",\"TLN\":\"Europe/Paris\",\"TLO\":\"Pacific/Port_Moresby\",\"TLP\":\"Pacific/Port_Moresby\",\"TLQ\":\"Asia/Shanghai\",\"TLR\":\"America/Los_Angeles\",\"TLS\":\"Europe/Paris\",\"TLT\":\"America/Anchorage\",\"TLU\":\"America/Bogota\",\"TLV\":\"Asia/Jerusalem\",\"TLW\":\"Pacific/Port_Moresby\",\"TLX\":\"America/Santiago\",\"TLY\":\"Asia/Vladivostok\",\"TLZ\":\"America/Sao_Paulo\",\"TMA\":\"America/New_York\",\"TMB\":\"America/New_York\",\"TMC\":\"Asia/Makassar\",\"TMD\":\"Africa/Nouakchott\",\"TME\":\"America/Bogota\",\"TMF\":\"Indian/Maldives\",\"TMG\":\"Asia/Kuala_Lumpur\",\"TMH\":\"Asia/Jayapura\",\"TMI\":\"Asia/Kathmandu\",\"TMJ\":\"Asia/Tashkent\",\"TML\":\"Africa/Accra\",\"TMM\":\"Indian/Antananarivo\",\"TMN\":\"Pacific/Tarawa\",\"TMO\":\"America/Caracas\",\"TMP\":\"Europe/Helsinki\",\"TMQ\":\"Africa/Ouagadougou\",\"TMR\":\"Africa/Algiers\",\"TMS\":\"Africa/Sao_Tome\",\"TMT\":\"America/Belem\",\"TMU\":\"America/Costa_Rica\",\"TMW\":\"Australia/Sydney\",\"TMX\":\"Africa/Algiers\",\"TMY\":\"Asia/Jayapura\",\"TMZ\":\"Pacific/Auckland\",\"TNA\":\"Asia/Shanghai\",\"TNB\":\"Asia/Makassar\",\"TNC\":\"America/Anchorage\",\"TND\":\"America/Havana\",\"TNE\":\"Asia/Tokyo\",\"TNF\":\"Europe/Paris\",\"TNG\":\"Africa/Casablanca\",\"TNH\":\"Asia/Shanghai\",\"TNI\":\"Asia/Kolkata\",\"TNJ\":\"Asia/Jakarta\",\"TNK\":\"America/Anchorage\",\"TNL\":\"Europe/Kiev\",\"TNM\":\"Antarctica/Palmer\",\"TNN\":\"Asia/Taipei\",\"TNO\":\"America/Costa_Rica\",\"TNP\":\"America/Los_Angeles\",\"TNQ\":\"Pacific/Kiritimati\",\"TNR\":\"Indian/Antananarivo\",\"TNS\":\"America/Edmonton\",\"TNT\":\"America/New_York\",\"TNU\":\"America/Chicago\",\"TNV\":\"Pacific/Kiritimati\",\"TNW\":\"America/Guayaquil\",\"TNX\":\"Asia/Phnom_Penh\",\"TNZ\":\"Asia/Ulaanbaatar\",\"TOA\":\"America/Los_Angeles\",\"TOB\":\"Africa/Tripoli\",\"TOC\":\"America/New_York\",\"TOD\":\"Asia/Kuala_Lumpur\",\"TOE\":\"Africa/Tunis\",\"TOF\":\"Asia/Tomsk\",\"TOG\":\"America/Anchorage\",\"TOH\":\"Pacific/Efate\",\"TOI\":\"America/Chicago\",\"TOJ\":\"Europe/Madrid\",\"TOK\":\"Pacific/Bougainville\",\"TOL\":\"America/New_York\",\"TOM\":\"Africa/Bamako\",\"TON\":\"Pacific/Bougainville\",\"TOO\":\"America/Costa_Rica\",\"TOP\":\"America/Chicago\",\"TOQ\":\"America/Santiago\",\"TOR\":\"America/Denver\",\"TOS\":\"Europe/Oslo\",\"TOT\":\"America/Paramaribo\",\"TOU\":\"Pacific/Noumea\",\"TOV\":\"America/Tortola\",\"TOW\":\"America/Sao_Paulo\",\"TOX\":\"Asia/Yekaterinburg\",\"TOY\":\"Asia/Tokyo\",\"TOZ\":\"Africa/Abidjan\",\"TPA\":\"America/New_York\",\"TPC\":\"America/Guayaquil\",\"TPE\":\"Asia/Taipei\",\"TPF\":\"America/New_York\",\"TPG\":\"Asia/Kuala_Lumpur\",\"TPH\":\"America/Los_Angeles\",\"TPI\":\"Pacific/Port_Moresby\",\"TPJ\":\"Asia/Kathmandu\",\"TPK\":\"Asia/Jakarta\",\"TPL\":\"America/Chicago\",\"TPN\":\"America/Guayaquil\",\"TPO\":\"America/Anchorage\",\"TPP\":\"America/Lima\",\"TPQ\":\"America/Mazatlan\",\"TPR\":\"Australia/Perth\",\"TPS\":\"Europe/Rome\",\"TPT\":\"Africa/Monrovia\",\"TPU\":\"Asia/Kathmandu\",\"TPX\":\"Pacific/Tahiti\",\"TQA\":\"America/Godthab\",\"TQD\":\"Asia/Baghdad\",\"TQI\":\"America/Godthab\",\"TQL\":\"Asia/Yekaterinburg\",\"TQN\":\"Asia/Kabul\",\"TQP\":\"Australia/Brisbane\",\"TQQ\":\"Asia/Makassar\",\"TQR\":\"Europe/Rome\",\"TQS\":\"America/Bogota\",\"TRA\":\"Asia/Tokyo\",\"TRB\":\"America/Bogota\",\"TRC\":\"America/Mexico_City\",\"TRD\":\"Europe/Oslo\",\"TRE\":\"Europe/London\",\"TRF\":\"Europe/Oslo\",\"TRG\":\"Pacific/Auckland\",\"TRH\":\"America/Los_Angeles\",\"TRI\":\"America/New_York\",\"TRJ\":\"Pacific/Port_Moresby\",\"TRK\":\"Asia/Makassar\",\"TRL\":\"America/Chicago\",\"TRM\":\"America/Los_Angeles\",\"TRN\":\"Europe/Rome\",\"TRO\":\"Australia/Sydney\",\"TRQ\":\"America/Rio_Branco\",\"TRR\":\"Asia/Colombo\",\"TRS\":\"Europe/Rome\",\"TRT\":\"America/Denver\",\"TRU\":\"America/Lima\",\"TRV\":\"Asia/Kolkata\",\"TRW\":\"Pacific/Tarawa\",\"TRX\":\"America/Chicago\",\"TRY\":\"Africa/Kampala\",\"TRZ\":\"Asia/Kolkata\",\"TSA\":\"Asia/Taipei\",\"TSB\":\"Africa/Windhoek\",\"TSC\":\"America/Guayaquil\",\"TSD\":\"Africa/Johannesburg\",\"TSE\":\"Asia/Almaty\",\"TSF\":\"Europe/Rome\",\"TSG\":\"America/Anchorage\",\"TSH\":\"Africa/Lubumbashi\",\"TSI\":\"Pacific/Port_Moresby\",\"TSJ\":\"Asia/Tokyo\",\"TSK\":\"Pacific/Port_Moresby\",\"TSL\":\"America/Mexico_City\",\"TSM\":\"America/Denver\",\"TSN\":\"Asia/Shanghai\",\"TSO\":\"Europe/London\",\"TSP\":\"America/Los_Angeles\",\"TSQ\":\"America/Sao_Paulo\",\"TSR\":\"Europe/Bucharest\",\"TSS\":\"America/New_York\",\"TST\":\"Asia/Bangkok\",\"TSU\":\"Pacific/Tarawa\",\"TSV\":\"Australia/Brisbane\",\"TSW\":\"Pacific/Port_Moresby\",\"TSX\":\"Asia/Makassar\",\"TSY\":\"Asia/Jakarta\",\"TSZ\":\"Asia/Ulaanbaatar\",\"TTA\":\"Africa/Casablanca\",\"TTB\":\"Europe/Rome\",\"TTC\":\"America/Santiago\",\"TTD\":\"America/Los_Angeles\",\"TTE\":\"Asia/Jayapura\",\"TTG\":\"America/Argentina/Buenos_Aires\",\"TTH\":\"Asia/Muscat\",\"TTI\":\"Pacific/Tahiti\",\"TTJ\":\"Asia/Tokyo\",\"TTK\":\"Europe/London\",\"TTL\":\"Pacific/Fiji\",\"TTM\":\"America/Bogota\",\"TTN\":\"America/New_York\",\"TTO\":\"America/Chicago\",\"TTQ\":\"America/Costa_Rica\",\"TTR\":\"Asia/Makassar\",\"TTS\":\"Indian/Antananarivo\",\"TTT\":\"Asia/Taipei\",\"TTU\":\"Africa/Casablanca\",\"TUA\":\"America/Guayaquil\",\"TUB\":\"Pacific/Tahiti\",\"TUC\":\"America/Argentina/Buenos_Aires\",\"TUD\":\"Africa/Dakar\",\"TUE\":\"America/Panama\",\"TUF\":\"Europe/Paris\",\"TUG\":\"Asia/Manila\",\"TUH\":\"America/Chicago\",\"TUI\":\"Asia/Riyadh\",\"TUK\":\"Asia/Karachi\",\"TUL\":\"America/Chicago\",\"TUM\":\"Australia/Sydney\",\"TUN\":\"Africa/Tunis\",\"TUO\":\"Pacific/Auckland\",\"TUP\":\"America/Chicago\",\"TUQ\":\"Africa/Ouagadougou\",\"TUR\":\"America/Belem\",\"TUS\":\"America/Phoenix\",\"TUT\":\"Pacific/Port_Moresby\",\"TUU\":\"Asia/Riyadh\",\"TUV\":\"America/Caracas\",\"TUW\":\"America/Panama\",\"TUX\":\"America/Vancouver\",\"TUY\":\"America/Mexico_City\",\"TUZ\":\"America/Belem\",\"TVA\":\"Indian/Antananarivo\",\"TVC\":\"America/New_York\",\"TVF\":\"America/Chicago\",\"TVI\":\"America/New_York\",\"TVL\":\"America/Los_Angeles\",\"TVS\":\"Asia/Shanghai\",\"TVU\":\"Pacific/Fiji\",\"TVY\":\"Asia/Yangon\",\"TWA\":\"America/Anchorage\",\"TWB\":\"Australia/Brisbane\",\"TWC\":\"Asia/Shanghai\",\"TWD\":\"America/Los_Angeles\",\"TWE\":\"America/Anchorage\",\"TWF\":\"America/Denver\",\"TWH\":\"America/Los_Angeles\",\"TWN\":\"Australia/Brisbane\",\"TWP\":\"Australia/Brisbane\",\"TWT\":\"Asia/Manila\",\"TWU\":\"Asia/Kuala_Lumpur\",\"TWY\":\"Pacific/Port_Moresby\",\"TWZ\":\"Pacific/Auckland\",\"TXE\":\"Asia/Jakarta\",\"TXF\":\"America/Belem\",\"TXK\":\"America/Chicago\",\"TXL\":\"Europe/Berlin\",\"TXM\":\"Asia/Jayapura\",\"TXN\":\"Asia/Shanghai\",\"TXR\":\"Australia/Brisbane\",\"TXU\":\"Africa/Abidjan\",\"TYA\":\"Europe/Moscow\",\"TYB\":\"Australia/Sydney\",\"TYD\":\"Asia/Yakutsk\",\"TYE\":\"America/Anchorage\",\"TYF\":\"Europe/Stockholm\",\"TYG\":\"Australia/Brisbane\",\"TYL\":\"America/Lima\",\"TYM\":\"America/Nassau\",\"TYN\":\"Asia/Shanghai\",\"TYP\":\"Australia/Darwin\",\"TYR\":\"America/Chicago\",\"TYS\":\"America/New_York\",\"TYT\":\"America/Montevideo\",\"TYZ\":\"America/Phoenix\",\"TZA\":\"America/Belize\",\"TZL\":\"Europe/Sarajevo\",\"TZM\":\"America/Mexico_City\",\"TZN\":\"America/Nassau\",\"TZX\":\"Europe/Istanbul\",\"UAB\":\"Europe/Istanbul\",\"UAC\":\"America/Hermosillo\",\"UAE\":\"Pacific/Port_Moresby\",\"UAH\":\"Pacific/Marquesas\",\"UAI\":\"Asia/Dili\",\"UAK\":\"America/Godthab\",\"UAL\":\"Africa/Luanda\",\"UAM\":\"Pacific/Guam\",\"UAP\":\"Pacific/Marquesas\",\"UAQ\":\"America/Argentina/Buenos_Aires\",\"UAR\":\"Africa/Casablanca\",\"UAS\":\"Africa/Nairobi\",\"UAX\":\"America/Guatemala\",\"UBA\":\"America/Sao_Paulo\",\"UBB\":\"Australia/Brisbane\",\"UBI\":\"Pacific/Bougainville\",\"UBJ\":\"Asia/Tokyo\",\"UBN\":\"Asia/Ulaanbaatar\",\"UBP\":\"Asia/Bangkok\",\"UBR\":\"Asia/Jayapura\",\"UBS\":\"America/Chicago\",\"UBT\":\"America/Sao_Paulo\",\"UBU\":\"Australia/Perth\",\"UCA\":\"America/New_York\",\"UCB\":\"Asia/Shanghai\",\"UCC\":\"America/Los_Angeles\",\"UCE\":\"America/Chicago\",\"UCK\":\"Europe/Kiev\",\"UCN\":\"Africa/Monrovia\",\"UCT\":\"Europe/Moscow\",\"UCY\":\"America/Chicago\",\"UDA\":\"Australia/Brisbane\",\"UDD\":\"America/Los_Angeles\",\"UDE\":\"Europe/Amsterdam\",\"UDI\":\"America/Sao_Paulo\",\"UDJ\":\"Europe/Kiev\",\"UDN\":\"Europe/Rome\",\"UDO\":\"Asia/Vientiane\",\"UDR\":\"Asia/Kolkata\",\"UEE\":\"Australia/Hobart\",\"UEL\":\"Africa/Maputo\",\"UEO\":\"Asia/Tokyo\",\"UER\":\"Europe/Madrid\",\"UES\":\"America/Chicago\",\"UET\":\"Asia/Karachi\",\"UFA\":\"Asia/Yekaterinburg\",\"UGA\":\"Asia/Ulaanbaatar\",\"UGB\":\"America/Anchorage\",\"UGC\":\"Asia/Tashkent\",\"UGI\":\"America/Anchorage\",\"UGL\":\"Antarctica/Palmer\",\"UGN\":\"America/Chicago\",\"UGO\":\"Africa/Luanda\",\"UGS\":\"America/Anchorage\",\"UGT\":\"Asia/Ulaanbaatar\",\"UGU\":\"Asia/Jayapura\",\"UHE\":\"Europe/Prague\",\"UHF\":\"Europe/London\",\"UIB\":\"America/Bogota\",\"UIH\":\"Asia/Ho_Chi_Minh\",\"UII\":\"America/Tegucigalpa\",\"UIK\":\"Asia/Irkutsk\",\"UIL\":\"America/Los_Angeles\",\"UIN\":\"America/Chicago\",\"UIO\":\"America/Guayaquil\",\"UIP\":\"Europe/Paris\",\"UIQ\":\"Pacific/Efate\",\"UIR\":\"Australia/Sydney\",\"UIT\":\"Pacific/Majuro\",\"UIZ\":\"America/New_York\",\"UJE\":\"Pacific/Majuro\",\"UKA\":\"Africa/Nairobi\",\"UKB\":\"Asia/Tokyo\",\"UKG\":\"Asia/Vladivostok\",\"UKH\":\"Asia/Muscat\",\"UKI\":\"America/Los_Angeles\",\"UKK\":\"Asia/Almaty\",\"UKN\":\"America/Chicago\",\"UKR\":\"Asia/Aden\",\"UKS\":\"Europe/Simferopol\",\"UKT\":\"America/New_York\",\"UKU\":\"Pacific/Port_Moresby\",\"UKX\":\"Asia/Irkutsk\",\"ULA\":\"America/Argentina/Buenos_Aires\",\"ULB\":\"Pacific/Efate\",\"ULC\":\"America/Santiago\",\"ULD\":\"Africa/Johannesburg\",\"ULE\":\"Pacific/Port_Moresby\",\"ULG\":\"Asia/Ulaanbaatar\",\"ULH\":\"Asia/Riyadh\",\"ULI\":\"Pacific/Chuuk\",\"ULK\":\"Asia/Yakutsk\",\"ULL\":\"Europe/London\",\"ULM\":\"America/Chicago\",\"ULN\":\"Asia/Ulaanbaatar\",\"ULO\":\"Asia/Ulaanbaatar\",\"ULP\":\"Australia/Brisbane\",\"ULQ\":\"America/Bogota\",\"ULS\":\"America/Bogota\",\"ULU\":\"Africa/Kampala\",\"ULV\":\"Europe/Samara\",\"ULX\":\"Africa/Johannesburg\",\"ULY\":\"Europe/Samara\",\"ULZ\":\"Asia/Ulaanbaatar\",\"UMB\":\"America/Anchorage\",\"UMC\":\"Pacific/Port_Moresby\",\"UMD\":\"America/Godthab\",\"UME\":\"Europe/Stockholm\",\"UMI\":\"America/Lima\",\"UMM\":\"America/Anchorage\",\"UMR\":\"Australia/Adelaide\",\"UMS\":\"Asia/Yakutsk\",\"UMT\":\"America/Anchorage\",\"UMU\":\"America/Sao_Paulo\",\"UMY\":\"Europe/Kiev\",\"UMZ\":\"America/Chicago\",\"UNA\":\"America/Belem\",\"UNC\":\"America/Bogota\",\"UND\":\"Asia/Kabul\",\"UNE\":\"Africa/Maseru\",\"UNG\":\"Pacific/Port_Moresby\",\"UNI\":\"America/St_Vincent\",\"UNK\":\"America/Anchorage\",\"UNN\":\"Asia/Bangkok\",\"UNR\":\"Asia/Ulaanbaatar\",\"UNS\":\"America/Anchorage\",\"UNT\":\"Europe/London\",\"UNU\":\"America/Chicago\",\"UOL\":\"Asia/Makassar\",\"UON\":\"Asia/Vientiane\",\"UOS\":\"America/Chicago\",\"UOX\":\"America/Chicago\",\"UPA\":\"America/Havana\",\"UPB\":\"America/Havana\",\"UPC\":\"America/Caracas\",\"UPF\":\"Europe/Berlin\",\"UPG\":\"Asia/Makassar\",\"UPK\":\"America/Godthab\",\"UPL\":\"America/Costa_Rica\",\"UPN\":\"America/Mexico_City\",\"UPP\":\"Pacific/Honolulu\",\"UPR\":\"Pacific/Port_Moresby\",\"UPV\":\"Europe/London\",\"UQE\":\"America/Anchorage\",\"URA\":\"Asia/Oral\",\"URB\":\"America/Sao_Paulo\",\"URC\":\"Asia/Shanghai\",\"URD\":\"Europe/Berlin\",\"URE\":\"Europe/Tallinn\",\"URG\":\"America/Sao_Paulo\",\"URI\":\"America/Bogota\",\"URJ\":\"Asia/Yekaterinburg\",\"URM\":\"America/Caracas\",\"URN\":\"Asia/Kabul\",\"URO\":\"Europe/Paris\",\"URR\":\"America/Bogota\",\"URS\":\"Europe/Moscow\",\"URT\":\"Asia/Bangkok\",\"URU\":\"Pacific/Port_Moresby\",\"URY\":\"Asia/Riyadh\",\"URZ\":\"Asia/Kabul\",\"USA\":\"America/New_York\",\"USH\":\"America/Argentina/Buenos_Aires\",\"USI\":\"America/Guyana\",\"USJ\":\"Asia/Almaty\",\"USK\":\"Europe/Moscow\",\"USL\":\"Australia/Perth\",\"USM\":\"Asia/Bangkok\",\"USN\":\"Asia/Seoul\",\"USO\":\"Pacific/Port_Moresby\",\"USQ\":\"Europe/Istanbul\",\"USR\":\"Asia/Vladivostok\",\"USS\":\"America/Havana\",\"UST\":\"America/New_York\",\"USU\":\"Asia/Manila\",\"UTA\":\"Africa/Harare\",\"UTB\":\"Australia/Brisbane\",\"UTC\":\"Europe/Amsterdam\",\"UTD\":\"Australia/Darwin\",\"UTE\":\"Africa/Johannesburg\",\"UTG\":\"Africa/Maseru\",\"UTH\":\"Asia/Bangkok\",\"UTI\":\"Europe/Helsinki\",\"UTK\":\"Pacific/Majuro\",\"UTM\":\"America/Chicago\",\"UTN\":\"Africa/Johannesburg\",\"UTO\":\"America/Anchorage\",\"UTP\":\"Asia/Bangkok\",\"UTR\":\"Asia/Bangkok\",\"UTS\":\"Europe/Moscow\",\"UTT\":\"Africa/Johannesburg\",\"UTU\":\"America/Panama\",\"UTW\":\"Africa/Johannesburg\",\"UUA\":\"Europe/Moscow\",\"UUD\":\"Asia/Irkutsk\",\"UUK\":\"America/Anchorage\",\"UUN\":\"Asia/Ulaanbaatar\",\"UUS\":\"Asia/Sakhalin\",\"UUU\":\"Pacific/Port_Moresby\",\"UVA\":\"America/Chicago\",\"UVE\":\"Pacific/Noumea\",\"UVF\":\"America/St_Lucia\",\"UVI\":\"America/Sao_Paulo\",\"UVL\":\"Africa/Cairo\",\"UVO\":\"Pacific/Port_Moresby\",\"UWA\":\"America/New_York\",\"UYL\":\"Africa/Khartoum\",\"UYN\":\"Asia/Shanghai\",\"UYU\":\"America/La_Paz\",\"UZC\":\"Europe/Belgrade\",\"UZH\":\"Asia/Riyadh\",\"UZR\":\"Asia/Almaty\",\"UZU\":\"America/Argentina/Buenos_Aires\",\"VAA\":\"Europe/Helsinki\",\"VAB\":\"America/Bogota\",\"VAC\":\"Europe/Berlin\",\"VAD\":\"America/New_York\",\"VAF\":\"Europe/Paris\",\"VAG\":\"America/Sao_Paulo\",\"VAH\":\"America/La_Paz\",\"VAI\":\"Pacific/Port_Moresby\",\"VAK\":\"America/Anchorage\",\"VAL\":\"America/Belem\",\"VAM\":\"Indian/Maldives\",\"VAN\":\"Europe/Istanbul\",\"VAO\":\"Pacific/Guadalcanal\",\"VAP\":\"America/Santiago\",\"VAR\":\"Europe/Sofia\",\"VAS\":\"Europe/Istanbul\",\"VAT\":\"Indian/Antananarivo\",\"VAU\":\"Pacific/Fiji\",\"VAV\":\"Pacific/Tongatapu\",\"VAW\":\"Europe/Oslo\",\"VAZ\":\"Europe/Paris\",\"VBA\":\"Asia/Yangon\",\"VBC\":\"Asia/Yangon\",\"VBG\":\"America/Los_Angeles\",\"VBM\":\"America/Anchorage\",\"VBP\":\"Asia/Yangon\",\"VBS\":\"Europe/Rome\",\"VBV\":\"Pacific/Fiji\",\"VBY\":\"Europe/Stockholm\",\"VCA\":\"Asia/Ho_Chi_Minh\",\"VCB\":\"America/Anchorage\",\"VCC\":\"Africa/Douala\",\"VCD\":\"Australia/Darwin\",\"VCE\":\"Europe/Rome\",\"VCF\":\"America/Argentina/Buenos_Aires\",\"VCH\":\"America/Montevideo\",\"VCL\":\"Asia/Ho_Chi_Minh\",\"VCP\":\"America/Sao_Paulo\",\"VCR\":\"America/Caracas\",\"VCS\":\"Asia/Ho_Chi_Minh\",\"VCT\":\"America/Chicago\",\"VCV\":\"America/Los_Angeles\",\"VDA\":\"Asia/Jerusalem\",\"VDB\":\"Europe/Oslo\",\"VDC\":\"America/Belem\",\"VDE\":\"Atlantic/Canary\",\"VDF\":\"America/New_York\",\"VDH\":\"Asia/Ho_Chi_Minh\",\"VDI\":\"America/New_York\",\"VDM\":\"America/Argentina/Buenos_Aires\",\"VDO\":\"Asia/Ho_Chi_Minh\",\"VDP\":\"America/Caracas\",\"VDR\":\"America/Argentina/Buenos_Aires\",\"VDS\":\"Europe/Oslo\",\"VDU\":\"America/Chicago\",\"VDY\":\"Asia/Kolkata\",\"VDZ\":\"America/Anchorage\",\"VEE\":\"America/Anchorage\",\"VEG\":\"America/Guyana\",\"VEJ\":\"Europe/Copenhagen\",\"VEL\":\"America/Denver\",\"VER\":\"America/Mexico_City\",\"VEV\":\"Pacific/Guadalcanal\",\"VEX\":\"America/Chicago\",\"VEY\":\"Atlantic/Reykjavik\",\"VFA\":\"Africa/Harare\",\"VGA\":\"Asia/Kolkata\",\"VGD\":\"Europe/Moscow\",\"VGO\":\"Europe/Madrid\",\"VGS\":\"America/Argentina/Buenos_Aires\",\"VGT\":\"America/Los_Angeles\",\"VGZ\":\"America/Bogota\",\"VHC\":\"Africa/Luanda\",\"VHM\":\"Europe/Stockholm\",\"VHN\":\"America/Chicago\",\"VHO\":\"Africa/Maputo\",\"VHV\":\"Asia/Yakutsk\",\"VHY\":\"Europe/Paris\",\"VHZ\":\"Pacific/Tahiti\",\"VIA\":\"America/Sao_Paulo\",\"VIB\":\"America/Mazatlan\",\"VIC\":\"Europe/Rome\",\"VID\":\"Europe/Sofia\",\"VIE\":\"Europe/Vienna\",\"VIF\":\"Europe/Rome\",\"VIG\":\"America/Caracas\",\"VIH\":\"America/Chicago\",\"VII\":\"Asia/Ho_Chi_Minh\",\"VIJ\":\"America/Tortola\",\"VIL\":\"Africa/Casablanca\",\"VIN\":\"Europe/Kiev\",\"VIQ\":\"Asia/Jayapura\",\"VIR\":\"Africa/Johannesburg\",\"VIS\":\"America/Los_Angeles\",\"VIT\":\"Europe/Madrid\",\"VIU\":\"Pacific/Guadalcanal\",\"VIV\":\"Pacific/Port_Moresby\",\"VIX\":\"America/Sao_Paulo\",\"VIY\":\"Europe/Paris\",\"VJB\":\"Africa/Maputo\",\"VJI\":\"America/New_York\",\"VJQ\":\"Africa/Maputo\",\"VKG\":\"Asia/Ho_Chi_Minh\",\"VKO\":\"Europe/Moscow\",\"VKS\":\"America/Chicago\",\"VKT\":\"Europe/Moscow\",\"VKW\":\"America/Anchorage\",\"VLA\":\"America/Chicago\",\"VLC\":\"Europe/Madrid\",\"VLD\":\"America/New_York\",\"VLE\":\"America/Phoenix\",\"VLG\":\"America/Argentina/Buenos_Aires\",\"VLI\":\"Pacific/Efate\",\"VLK\":\"Europe/Moscow\",\"VLL\":\"Europe/Madrid\",\"VLM\":\"America/La_Paz\",\"VLN\":\"America/Caracas\",\"VLO\":\"America/Los_Angeles\",\"VLP\":\"America/Campo_Grande\",\"VLR\":\"America/Santiago\",\"VLS\":\"Pacific/Efate\",\"VLU\":\"Europe/Moscow\",\"VLV\":\"America/Caracas\",\"VLY\":\"Europe/London\",\"VME\":\"America/Argentina/Buenos_Aires\",\"VMI\":\"America/Asuncion\",\"VMU\":\"Pacific/Port_Moresby\",\"VNA\":\"Asia/Vientiane\",\"VNC\":\"America/New_York\",\"VND\":\"Indian/Antananarivo\",\"VNE\":\"Europe/Paris\",\"VNG\":\"Asia/Vientiane\",\"VNO\":\"Europe/Vilnius\",\"VNR\":\"Australia/Brisbane\",\"VNS\":\"Asia/Kolkata\",\"VNX\":\"Africa/Maputo\",\"VNY\":\"America/Los_Angeles\",\"VOG\":\"Europe/Samara\",\"VOH\":\"Indian/Antananarivo\",\"VOI\":\"Africa/Monrovia\",\"VOK\":\"America/Chicago\",\"VOL\":\"Europe/Athens\",\"VOT\":\"America/Sao_Paulo\",\"VOZ\":\"Europe/Moscow\",\"VPE\":\"Africa/Luanda\",\"VPG\":\"Africa/Nairobi\",\"VPN\":\"Atlantic/Reykjavik\",\"VPS\":\"America/Chicago\",\"VPY\":\"Africa/Maputo\",\"VPZ\":\"America/Chicago\",\"VQQ\":\"America/New_York\",\"VQS\":\"America/Puerto_Rico\",\"VRA\":\"America/Havana\",\"VRB\":\"America/New_York\",\"VRC\":\"Asia/Manila\",\"VRE\":\"Africa/Johannesburg\",\"VRK\":\"Europe/Helsinki\",\"VRL\":\"Europe/Lisbon\",\"VRN\":\"Europe/Rome\",\"VRO\":\"America/Havana\",\"VRS\":\"America/Chicago\",\"VRU\":\"Africa/Johannesburg\",\"VRY\":\"Europe/Oslo\",\"VSA\":\"America/Mexico_City\",\"VSE\":\"Europe/Lisbon\",\"VSF\":\"America/New_York\",\"VSO\":\"Asia/Ho_Chi_Minh\",\"VST\":\"Europe/Stockholm\",\"VTA\":\"America/Tegucigalpa\",\"VTB\":\"Europe/Minsk\",\"VTE\":\"Asia/Vientiane\",\"VTF\":\"Pacific/Fiji\",\"VTG\":\"Asia/Ho_Chi_Minh\",\"VTL\":\"Europe/Paris\",\"VTM\":\"Asia/Jerusalem\",\"VTN\":\"America/Chicago\",\"VTU\":\"America/Havana\",\"VTZ\":\"Asia/Kolkata\",\"VUP\":\"America/Bogota\",\"VUS\":\"Europe/Moscow\",\"VUU\":\"Africa/Blantyre\",\"VVB\":\"Indian/Antananarivo\",\"VVC\":\"America/Bogota\",\"VVI\":\"America/La_Paz\",\"VVK\":\"Europe/Stockholm\",\"VVN\":\"America/Lima\",\"VVO\":\"Asia/Vladivostok\",\"VVZ\":\"Africa/Algiers\",\"VXC\":\"Africa/Maputo\",\"VXE\":\"Atlantic/Cape_Verde\",\"VXO\":\"Europe/Stockholm\",\"VYD\":\"Africa/Johannesburg\",\"VYI\":\"Asia/Yakutsk\",\"VYS\":\"America/Chicago\",\"WAA\":\"America/Anchorage\",\"WAB\":\"Pacific/Port_Moresby\",\"WAC\":\"Africa/Addis_Ababa\",\"WAD\":\"Indian/Antananarivo\",\"WAE\":\"Asia/Riyadh\",\"WAF\":\"Asia/Karachi\",\"WAG\":\"Pacific/Auckland\",\"WAH\":\"America/Chicago\",\"WAI\":\"Indian/Antananarivo\",\"WAJ\":\"Pacific/Port_Moresby\",\"WAK\":\"Indian/Antananarivo\",\"WAL\":\"America/New_York\",\"WAM\":\"Indian/Antananarivo\",\"WAN\":\"Australia/Brisbane\",\"WAO\":\"Pacific/Port_Moresby\",\"WAP\":\"America/Santiago\",\"WAQ\":\"Indian/Antananarivo\",\"WAR\":\"Asia/Jayapura\",\"WAT\":\"Europe/Dublin\",\"WAU\":\"Australia/Sydney\",\"WAV\":\"Australia/Darwin\",\"WAW\":\"Europe/Warsaw\",\"WAX\":\"Africa/Tripoli\",\"WAY\":\"America/New_York\",\"WAZ\":\"Australia/Brisbane\",\"WBA\":\"Asia/Jayapura\",\"WBB\":\"America/Anchorage\",\"WBC\":\"Pacific/Port_Moresby\",\"WBD\":\"Indian/Antananarivo\",\"WBE\":\"Indian/Antananarivo\",\"WBG\":\"Europe/Berlin\",\"WBI\":\"America/Denver\",\"WBM\":\"Pacific/Port_Moresby\",\"WBN\":\"America/New_York\",\"WBO\":\"Indian/Antananarivo\",\"WBQ\":\"America/Anchorage\",\"WBR\":\"America/New_York\",\"WBU\":\"America/Denver\",\"WBW\":\"America/New_York\",\"WCA\":\"America/Santiago\",\"WCD\":\"Australia/Perth\",\"WCH\":\"America/Santiago\",\"WCR\":\"America/Anchorage\",\"WDA\":\"Asia/Aden\",\"WDB\":\"America/Anchorage\",\"WDG\":\"America/Chicago\",\"WDH\":\"Africa/Windhoek\",\"WDI\":\"Australia/Brisbane\",\"WDN\":\"America/Los_Angeles\",\"WDR\":\"America/New_York\",\"WDS\":\"Asia/Shanghai\",\"WDY\":\"America/Anchorage\",\"WEA\":\"America/Chicago\",\"WED\":\"Pacific/Port_Moresby\",\"WEF\":\"Asia/Shanghai\",\"WEH\":\"Asia/Shanghai\",\"WEI\":\"Australia/Brisbane\",\"WEL\":\"Africa/Johannesburg\",\"WEM\":\"Europe/London\",\"WEP\":\"Pacific/Port_Moresby\",\"WES\":\"Africa/Monrovia\",\"WET\":\"Asia/Jayapura\",\"WEW\":\"Australia/Sydney\",\"WEX\":\"Europe/Dublin\",\"WFB\":\"America/Anchorage\",\"WFD\":\"Europe/London\",\"WFI\":\"Indian/Antananarivo\",\"WFK\":\"America/New_York\",\"WGA\":\"Australia/Sydney\",\"WGB\":\"Asia/Karachi\",\"WGC\":\"Asia/Kolkata\",\"WGE\":\"Australia/Sydney\",\"WGL\":\"America/Guayaquil\",\"WGN\":\"Asia/Shanghai\",\"WGO\":\"America/New_York\",\"WGP\":\"Asia/Makassar\",\"WGT\":\"Australia/Sydney\",\"WGU\":\"Pacific/Port_Moresby\",\"WGY\":\"Africa/Libreville\",\"WHD\":\"America/Anchorage\",\"WHF\":\"Africa/Khartoum\",\"WHK\":\"Pacific/Auckland\",\"WHL\":\"Australia/Sydney\",\"WHO\":\"Pacific/Auckland\",\"WHP\":\"America/Los_Angeles\",\"WHS\":\"Europe/London\",\"WHT\":\"America/Chicago\",\"WHU\":\"Asia/Shanghai\",\"WIC\":\"Europe/London\",\"WID\":\"Europe/Berlin\",\"WIE\":\"Europe/Berlin\",\"WIK\":\"Pacific/Auckland\",\"WIL\":\"Africa/Nairobi\",\"WIN\":\"Australia/Brisbane\",\"WIO\":\"Australia/Sydney\",\"WIR\":\"Pacific/Auckland\",\"WIT\":\"Australia/Perth\",\"WIU\":\"Pacific/Port_Moresby\",\"WJA\":\"Pacific/Majuro\",\"WJF\":\"America/Los_Angeles\",\"WJR\":\"Africa/Nairobi\",\"WJU\":\"Asia/Seoul\",\"WKA\":\"Pacific/Auckland\",\"WKB\":\"Australia/Sydney\",\"WKF\":\"Africa/Johannesburg\",\"WKI\":\"Africa/Harare\",\"WKJ\":\"Asia/Tokyo\",\"WKK\":\"America/Anchorage\",\"WKL\":\"Pacific/Honolulu\",\"WKN\":\"Pacific/Bougainville\",\"WKR\":\"America/Nassau\",\"WLA\":\"Australia/Perth\",\"WLB\":\"America/Anchorage\",\"WLC\":\"Australia/Sydney\",\"WLD\":\"America/Chicago\",\"WLE\":\"Australia/Brisbane\",\"WLG\":\"Pacific/Auckland\",\"WLH\":\"Pacific/Efate\",\"WLK\":\"America/Anchorage\",\"WLL\":\"Australia/Brisbane\",\"WLM\":\"America/New_York\",\"WLN\":\"America/Anchorage\",\"WLO\":\"Australia/Darwin\",\"WLP\":\"Australia/Perth\",\"WLR\":\"America/Anchorage\",\"WLS\":\"Pacific/Wallis\",\"WLW\":\"America/Los_Angeles\",\"WMA\":\"Indian/Antananarivo\",\"WMB\":\"Australia/Sydney\",\"WMC\":\"America/Los_Angeles\",\"WMD\":\"Indian/Antananarivo\",\"WME\":\"Australia/Perth\",\"WMH\":\"America/Chicago\",\"WMI\":\"Europe/Warsaw\",\"WMK\":\"America/Anchorage\",\"WML\":\"Indian/Antananarivo\",\"WMN\":\"Indian/Antananarivo\",\"WMO\":\"America/Anchorage\",\"WMP\":\"Indian/Antananarivo\",\"WMR\":\"Indian/Antananarivo\",\"WMT\":\"Asia/Shanghai\",\"WMV\":\"Indian/Antananarivo\",\"WMX\":\"Asia/Jayapura\",\"WNA\":\"America/Anchorage\",\"WND\":\"Australia/Perth\",\"WNE\":\"Africa/Accra\",\"WNH\":\"Asia/Shanghai\",\"WNI\":\"Asia/Makassar\",\"WNN\":\"America/Winnipeg\",\"WNP\":\"Asia/Manila\",\"WNR\":\"Australia/Brisbane\",\"WNS\":\"Asia/Karachi\",\"WNU\":\"Pacific/Port_Moresby\",\"WNZ\":\"Asia/Shanghai\",\"WOA\":\"Pacific/Port_Moresby\",\"WOB\":\"Europe/London\",\"WOD\":\"America/Anchorage\",\"WOE\":\"Europe/Amsterdam\",\"WOG\":\"Australia/Darwin\",\"WOI\":\"Africa/Monrovia\",\"WOK\":\"America/Caracas\",\"WOL\":\"Australia/Sydney\",\"WON\":\"Australia/Brisbane\",\"WOO\":\"America/Anchorage\",\"WOR\":\"Indian/Antananarivo\",\"WOT\":\"Asia/Taipei\",\"WOW\":\"America/Anchorage\",\"WPA\":\"America/Santiago\",\"WPB\":\"Indian/Antananarivo\",\"WPC\":\"America/Edmonton\",\"WPK\":\"Australia/Brisbane\",\"WPL\":\"America/Vancouver\",\"WPM\":\"Pacific/Port_Moresby\",\"WPO\":\"America/Denver\",\"WPR\":\"America/Santiago\",\"WPU\":\"America/Santiago\",\"WRA\":\"Africa/Addis_Ababa\",\"WRB\":\"America/New_York\",\"WRE\":\"Pacific/Auckland\",\"WRG\":\"America/Anchorage\",\"WRH\":\"America/Anchorage\",\"WRI\":\"America/New_York\",\"WRL\":\"America/Denver\",\"WRN\":\"Australia/Perth\",\"WRO\":\"Europe/Warsaw\",\"WRW\":\"Australia/Perth\",\"WRY\":\"Europe/London\",\"WRZ\":\"Asia/Colombo\",\"WSA\":\"Pacific/Port_Moresby\",\"WSB\":\"America/Anchorage\",\"WSD\":\"America/Denver\",\"WSF\":\"America/Anchorage\",\"WSG\":\"America/New_York\",\"WSH\":\"America/New_York\",\"WSK\":\"Asia/Shanghai\",\"WSM\":\"America/Anchorage\",\"WSN\":\"America/Anchorage\",\"WSO\":\"America/Paramaribo\",\"WSP\":\"America/Managua\",\"WSR\":\"Asia/Jayapura\",\"WST\":\"America/New_York\",\"WSU\":\"Pacific/Port_Moresby\",\"WSX\":\"America/Los_Angeles\",\"WSY\":\"Australia/Brisbane\",\"WSZ\":\"Pacific/Auckland\",\"WTA\":\"Indian/Antananarivo\",\"WTB\":\"Australia/Brisbane\",\"WTD\":\"America/Nassau\",\"WTE\":\"Pacific/Majuro\",\"WTK\":\"America/Anchorage\",\"WTL\":\"America/Anchorage\",\"WTN\":\"Europe/London\",\"WTO\":\"Pacific/Majuro\",\"WTP\":\"Pacific/Port_Moresby\",\"WTR\":\"America/Phoenix\",\"WTS\":\"Indian/Antananarivo\",\"WTT\":\"Pacific/Port_Moresby\",\"WTZ\":\"Pacific/Auckland\",\"WUA\":\"Asia/Shanghai\",\"WUD\":\"Australia/Adelaide\",\"WUG\":\"Pacific/Port_Moresby\",\"WUH\":\"Asia/Shanghai\",\"WUI\":\"Australia/Perth\",\"WUM\":\"Pacific/Port_Moresby\",\"WUN\":\"Australia/Perth\",\"WUS\":\"Asia/Shanghai\",\"WUT\":\"Asia/Shanghai\",\"WUU\":\"Africa/Juba\",\"WUV\":\"Pacific/Port_Moresby\",\"WUX\":\"Asia/Shanghai\",\"WUZ\":\"Asia/Shanghai\",\"WVB\":\"Africa/Windhoek\",\"WVI\":\"America/Los_Angeles\",\"WVK\":\"Indian/Antananarivo\",\"WVL\":\"America/New_York\",\"WVN\":\"Europe/Berlin\",\"WWA\":\"America/Anchorage\",\"WWD\":\"America/New_York\",\"WWI\":\"Australia/Perth\",\"WWK\":\"Pacific/Port_Moresby\",\"WWP\":\"America/Anchorage\",\"WWR\":\"America/Chicago\",\"WWT\":\"America/Anchorage\",\"WWY\":\"Australia/Sydney\",\"WXN\":\"Asia/Shanghai\",\"WYA\":\"Australia/Adelaide\",\"WYB\":\"America/Anchorage\",\"WYE\":\"Africa/Freetown\",\"WYN\":\"Australia/Perth\",\"WYS\":\"America/Denver\",\"WZA\":\"Africa/Accra\",\"WZQ\":\"Asia/Shanghai\",\"WZY\":\"America/Nassau\",\"XAI\":\"Asia/Shanghai\",\"XAL\":\"America/Hermosillo\",\"XAP\":\"America/Sao_Paulo\",\"XAR\":\"Africa/Ouagadougou\",\"XAU\":\"America/Cayenne\",\"XAY\":\"Asia/Vientiane\",\"XBB\":\"America/Vancouver\",\"XBE\":\"America/Winnipeg\",\"XBG\":\"Africa/Ouagadougou\",\"XBJ\":\"Asia/Tehran\",\"XBL\":\"Africa/Addis_Ababa\",\"XBN\":\"Pacific/Port_Moresby\",\"XBO\":\"Africa/Ouagadougou\",\"XBR\":\"America/Toronto\",\"XCH\":\"Indian/Christmas\",\"XCL\":\"America/Regina\",\"XCM\":\"America/Toronto\",\"XCN\":\"Asia/Manila\",\"XCO\":\"Australia/Sydney\",\"XCR\":\"Europe/Paris\",\"XDE\":\"Africa/Ouagadougou\",\"XDJ\":\"Africa/Ouagadougou\",\"XEN\":\"Asia/Shanghai\",\"XEO\":\"America/Godthab\",\"XEQ\":\"America/Godthab\",\"XES\":\"America/Chicago\",\"XEX\":\"Europe/Paris\",\"XFN\":\"Asia/Shanghai\",\"XFW\":\"Europe/Berlin\",\"XGA\":\"Africa/Ouagadougou\",\"XGB\":\"Europe/Paris\",\"XGG\":\"Africa/Ouagadougou\",\"XGL\":\"America/Winnipeg\",\"XGN\":\"Africa/Luanda\",\"XGR\":\"America/Toronto\",\"XIC\":\"Asia/Shanghai\",\"XIE\":\"Asia/Vientiane\",\"XIG\":\"America/Belem\",\"XIJ\":\"Asia/Kuwait\",\"XIL\":\"Asia/Shanghai\",\"XIN\":\"Asia/Shanghai\",\"XIQ\":\"America/Godthab\",\"XIY\":\"Asia/Shanghai\",\"XJD\":\"Asia/Qatar\",\"XKA\":\"Africa/Ouagadougou\",\"XKH\":\"Asia/Vientiane\",\"XKO\":\"America/Vancouver\",\"XKS\":\"America/Winnipeg\",\"XKY\":\"Africa/Ouagadougou\",\"XLB\":\"America/Winnipeg\",\"XLF\":\"America/Toronto\",\"XLO\":\"Asia/Ho_Chi_Minh\",\"XLS\":\"Africa/Dakar\",\"XLU\":\"Africa/Ouagadougou\",\"XLW\":\"Europe/Berlin\",\"XMA\":\"Asia/Manila\",\"XMC\":\"Australia/Sydney\",\"XMD\":\"America/Chicago\",\"XMG\":\"Asia/Kathmandu\",\"XMH\":\"Pacific/Tahiti\",\"XMI\":\"Africa/Dar_es_Salaam\",\"XML\":\"Australia/Adelaide\",\"XMN\":\"Asia/Shanghai\",\"XMP\":\"America/Vancouver\",\"XMS\":\"America/Guayaquil\",\"XMY\":\"Australia/Brisbane\",\"XNA\":\"America/Chicago\",\"XNG\":\"Asia/Ho_Chi_Minh\",\"XNH\":\"Asia/Baghdad\",\"XNN\":\"Asia/Shanghai\",\"XNT\":\"Asia/Shanghai\",\"XNU\":\"Africa/Ouagadougou\",\"XPA\":\"Africa/Ouagadougou\",\"XPD\":\"America/Argentina/Buenos_Aires\",\"XPK\":\"America/Winnipeg\",\"XPL\":\"America/Tegucigalpa\",\"XPP\":\"America/Winnipeg\",\"XPR\":\"America/Denver\",\"XPU\":\"America/Anchorage\",\"XQC\":\"Asia/Baghdad\",\"XQP\":\"America/Costa_Rica\",\"XQU\":\"America/Vancouver\",\"XRH\":\"Australia/Sydney\",\"XRR\":\"America/Vancouver\",\"XRY\":\"Europe/Madrid\",\"XSB\":\"Asia/Dubai\",\"XSC\":\"America/Grand_Turk\",\"XSD\":\"America/Los_Angeles\",\"XSE\":\"Africa/Ouagadougou\",\"XSI\":\"America/Winnipeg\",\"XSM\":\"America/New_York\",\"XSO\":\"Asia/Manila\",\"XSP\":\"Asia/Singapore\",\"XTG\":\"Australia/Brisbane\",\"XTL\":\"America/Winnipeg\",\"XTO\":\"Australia/Brisbane\",\"XTR\":\"Australia/Brisbane\",\"XUZ\":\"Asia/Shanghai\",\"XVL\":\"Asia/Ho_Chi_Minh\",\"XWA\":\"America/Chicago\",\"XYA\":\"Pacific/Guadalcanal\",\"XYE\":\"Asia/Yangon\",\"XYR\":\"Pacific/Port_Moresby\",\"XYT\":\"Europe/Paris\",\"XZA\":\"Africa/Ouagadougou\",\"XZD\":\"Europe/Oslo\",\"YAA\":\"America/Vancouver\",\"YAB\":\"America/Iqaluit\",\"YAC\":\"America/Winnipeg\",\"YAD\":\"America/Winnipeg\",\"YAE\":\"America/Vancouver\",\"YAF\":\"America/Toronto\",\"YAG\":\"America/Winnipeg\",\"YAH\":\"America/Toronto\",\"YAI\":\"America/Santiago\",\"YAJ\":\"America/Vancouver\",\"YAK\":\"America/Anchorage\",\"YAL\":\"America/Vancouver\",\"YAM\":\"America/Toronto\",\"YAN\":\"Africa/Lubumbashi\",\"YAO\":\"Africa/Douala\",\"YAP\":\"Pacific/Chuuk\",\"YAQ\":\"America/Vancouver\",\"YAR\":\"America/Toronto\",\"YAS\":\"Pacific/Fiji\",\"YAT\":\"America/Toronto\",\"YAU\":\"America/Toronto\",\"YAV\":\"America/Vancouver\",\"YAW\":\"America/Halifax\",\"YAX\":\"America/Winnipeg\",\"YAY\":\"America/St_Johns\",\"YAZ\":\"America/Vancouver\",\"YBA\":\"America/Edmonton\",\"YBB\":\"America/Edmonton\",\"YBC\":\"America/Toronto\",\"YBD\":\"America/Vancouver\",\"YBE\":\"America/Regina\",\"YBF\":\"America/Vancouver\",\"YBG\":\"America/Toronto\",\"YBH\":\"America/Vancouver\",\"YBI\":\"America/Halifax\",\"YBJ\":\"America/Toronto\",\"YBK\":\"America/Winnipeg\",\"YBL\":\"America/Vancouver\",\"YBM\":\"America/Vancouver\",\"YBN\":\"America/Toronto\",\"YBO\":\"America/Vancouver\",\"YBP\":\"Asia/Shanghai\",\"YBQ\":\"America/Vancouver\",\"YBR\":\"America/Winnipeg\",\"YBS\":\"America/Toronto\",\"YBT\":\"America/Winnipeg\",\"YBV\":\"America/Winnipeg\",\"YBW\":\"America/Vancouver\",\"YBX\":\"America/Blanc-Sablon\",\"YBY\":\"America/Edmonton\",\"YCA\":\"America/Vancouver\",\"YCB\":\"America/Edmonton\",\"YCC\":\"America/Toronto\",\"YCD\":\"America/Vancouver\",\"YCE\":\"America/Toronto\",\"YCF\":\"America/Vancouver\",\"YCG\":\"America/Vancouver\",\"YCH\":\"America/Halifax\",\"YCI\":\"America/Toronto\",\"YCJ\":\"America/Vancouver\",\"YCK\":\"America/Edmonton\",\"YCL\":\"America/Halifax\",\"YCM\":\"America/Toronto\",\"YCN\":\"America/Toronto\",\"YCO\":\"America/Edmonton\",\"YCQ\":\"America/Dawson_Creek\",\"YCR\":\"America/Winnipeg\",\"YCS\":\"America/Winnipeg\",\"YCT\":\"America/Edmonton\",\"YCU\":\"Asia/Shanghai\",\"YCW\":\"America/Vancouver\",\"YCX\":\"America/Halifax\",\"YCY\":\"America/Toronto\",\"YCZ\":\"America/Edmonton\",\"YDA\":\"America/Vancouver\",\"YDB\":\"America/Vancouver\",\"YDC\":\"America/Edmonton\",\"YDE\":\"America/Halifax\",\"YDF\":\"America/St_Johns\",\"YDG\":\"America/Halifax\",\"YDH\":\"America/St_Johns\",\"YDI\":\"America/Halifax\",\"YDJ\":\"America/Regina\",\"YDK\":\"America/Toronto\",\"YDL\":\"America/Vancouver\",\"YDN\":\"America/Winnipeg\",\"YDO\":\"America/Toronto\",\"YDP\":\"America/Halifax\",\"YDQ\":\"America/Dawson_Creek\",\"YDR\":\"America/Regina\",\"YDS\":\"America/Vancouver\",\"YDT\":\"America/Vancouver\",\"YDU\":\"America/Winnipeg\",\"YDV\":\"America/Winnipeg\",\"YDW\":\"America/Winnipeg\",\"YDX\":\"America/Vancouver\",\"YEC\":\"Asia/Seoul\",\"YED\":\"America/Edmonton\",\"YEG\":\"America/Edmonton\",\"YEI\":\"Europe/Istanbul\",\"YEK\":\"America/Winnipeg\",\"YEL\":\"America/Toronto\",\"YEM\":\"America/Toronto\",\"YEN\":\"America/Regina\",\"YEO\":\"Europe/London\",\"YEP\":\"America/Vancouver\",\"YEQ\":\"Pacific/Port_Moresby\",\"YER\":\"America/Toronto\",\"YES\":\"Asia/Tehran\",\"YET\":\"America/Edmonton\",\"YEU\":\"America/Winnipeg\",\"YEV\":\"America/Edmonton\",\"YEY\":\"America/Toronto\",\"YFA\":\"America/Toronto\",\"YFB\":\"America/Toronto\",\"YFC\":\"America/Halifax\",\"YFE\":\"America/Toronto\",\"YFG\":\"America/Toronto\",\"YFH\":\"America/Toronto\",\"YFI\":\"America/Edmonton\",\"YFJ\":\"America/Edmonton\",\"YFL\":\"America/Vancouver\",\"YFO\":\"America/Winnipeg\",\"YFR\":\"America/Edmonton\",\"YFS\":\"America/Edmonton\",\"YFX\":\"America/St_Johns\",\"YGA\":\"America/Toronto\",\"YGB\":\"America/Vancouver\",\"YGC\":\"America/Edmonton\",\"YGE\":\"America/Vancouver\",\"YGG\":\"America/Vancouver\",\"YGH\":\"America/Edmonton\",\"YGJ\":\"Asia/Tokyo\",\"YGK\":\"America/Toronto\",\"YGL\":\"America/Toronto\",\"YGM\":\"America/Winnipeg\",\"YGN\":\"America/Vancouver\",\"YGO\":\"America/Winnipeg\",\"YGP\":\"America/Toronto\",\"YGQ\":\"America/Toronto\",\"YGR\":\"America/Halifax\",\"YGS\":\"America/Vancouver\",\"YGT\":\"America/Toronto\",\"YGV\":\"America/Toronto\",\"YGW\":\"America/Toronto\",\"YGX\":\"America/Winnipeg\",\"YGY\":\"America/Toronto\",\"YGZ\":\"America/Toronto\",\"YHA\":\"America/St_Johns\",\"YHB\":\"America/Regina\",\"YHC\":\"America/Vancouver\",\"YHD\":\"America/Winnipeg\",\"YHE\":\"America/Vancouver\",\"YHF\":\"America/Toronto\",\"YHG\":\"America/St_Johns\",\"YHH\":\"America/Vancouver\",\"YHI\":\"America/Edmonton\",\"YHK\":\"America/Edmonton\",\"YHM\":\"America/Toronto\",\"YHN\":\"America/Toronto\",\"YHO\":\"America/Halifax\",\"YHP\":\"America/Winnipeg\",\"YHR\":\"America/Blanc-Sablon\",\"YHS\":\"America/Vancouver\",\"YHT\":\"America/Vancouver\",\"YHU\":\"America/Toronto\",\"YHY\":\"America/Edmonton\",\"YHZ\":\"America/Halifax\",\"YIA\":\"Asia/Jakarta\",\"YIB\":\"America/Atikokan\",\"YIC\":\"Asia/Shanghai\",\"YIE\":\"Asia/Shanghai\",\"YIF\":\"America/Blanc-Sablon\",\"YIG\":\"America/Vancouver\",\"YIH\":\"Asia/Shanghai\",\"YIK\":\"America/Toronto\",\"YIN\":\"Asia/Shanghai\",\"YIO\":\"America/Toronto\",\"YIP\":\"America/New_York\",\"YIV\":\"America/Winnipeg\",\"YIW\":\"Asia/Shanghai\",\"YJA\":\"America/Edmonton\",\"YJF\":\"America/Edmonton\",\"YJN\":\"America/Toronto\",\"YJO\":\"America/Vancouver\",\"YJP\":\"America/Edmonton\",\"YJT\":\"America/St_Johns\",\"YKA\":\"America/Vancouver\",\"YKC\":\"America/Regina\",\"YKD\":\"America/Toronto\",\"YKE\":\"America/Winnipeg\",\"YKF\":\"America/Toronto\",\"YKG\":\"America/Toronto\",\"YKH\":\"Asia/Shanghai\",\"YKJ\":\"America/Regina\",\"YKK\":\"America/Vancouver\",\"YKL\":\"America/Toronto\",\"YKM\":\"America/Los_Angeles\",\"YKN\":\"America/Chicago\",\"YKO\":\"Europe/Istanbul\",\"YKQ\":\"America/Toronto\",\"YKS\":\"Asia/Yakutsk\",\"YKT\":\"America/Vancouver\",\"YKU\":\"America/Toronto\",\"YKX\":\"America/Toronto\",\"YKY\":\"America/Regina\",\"YKZ\":\"America/Toronto\",\"YLA\":\"America/Vancouver\",\"YLB\":\"America/Edmonton\",\"YLC\":\"America/Toronto\",\"YLD\":\"America/Toronto\",\"YLE\":\"America/Edmonton\",\"YLF\":\"America/Toronto\",\"YLG\":\"Australia/Perth\",\"YLH\":\"America/Toronto\",\"YLI\":\"Europe/Helsinki\",\"YLJ\":\"America/Regina\",\"YLL\":\"America/Edmonton\",\"YLM\":\"America/Vancouver\",\"YLN\":\"Asia/Shanghai\",\"YLO\":\"America/Winnipeg\",\"YLP\":\"America/Toronto\",\"YLQ\":\"America/Toronto\",\"YLR\":\"America/Winnipeg\",\"YLS\":\"America/Toronto\",\"YLT\":\"America/Winnipeg\",\"YLW\":\"America/Vancouver\",\"YLX\":\"Asia/Shanghai\",\"YLY\":\"America/Vancouver\",\"YMA\":\"America/Vancouver\",\"YMB\":\"America/Vancouver\",\"YMC\":\"America/Toronto\",\"YMD\":\"America/Edmonton\",\"YME\":\"America/Toronto\",\"YMF\":\"America/Vancouver\",\"YMG\":\"America/Toronto\",\"YMH\":\"America/St_Johns\",\"YMI\":\"America/Winnipeg\",\"YMJ\":\"America/Regina\",\"YMK\":\"Asia/Yekaterinburg\",\"YML\":\"America/Toronto\",\"YMM\":\"America/Edmonton\",\"YMN\":\"America/Halifax\",\"YMO\":\"America/Toronto\",\"YMP\":\"America/Vancouver\",\"YMR\":\"America/Vancouver\",\"YMS\":\"America/Lima\",\"YMT\":\"America/Toronto\",\"YMU\":\"America/Vancouver\",\"YMV\":\"America/Iqaluit\",\"YMW\":\"America/Toronto\",\"YMX\":\"America/Toronto\",\"YNA\":\"America/Toronto\",\"YNB\":\"Asia/Riyadh\",\"YNC\":\"America/Toronto\",\"YND\":\"America/Toronto\",\"YNE\":\"America/Winnipeg\",\"YNG\":\"America/New_York\",\"YNH\":\"America/Edmonton\",\"YNI\":\"America/Toronto\",\"YNJ\":\"Asia/Shanghai\",\"YNK\":\"America/Vancouver\",\"YNL\":\"America/Regina\",\"YNM\":\"America/Toronto\",\"YNN\":\"Australia/Perth\",\"YNO\":\"America/Winnipeg\",\"YNP\":\"America/Halifax\",\"YNR\":\"America/Winnipeg\",\"YNS\":\"America/Toronto\",\"YNT\":\"Asia/Shanghai\",\"YNY\":\"Asia/Seoul\",\"YNZ\":\"Asia/Shanghai\",\"YOA\":\"America/Edmonton\",\"YOC\":\"America/Vancouver\",\"YOD\":\"America/Edmonton\",\"YOE\":\"America/Edmonton\",\"YOG\":\"America/Toronto\",\"YOH\":\"America/Winnipeg\",\"YOJ\":\"America/Edmonton\",\"YOK\":\"Asia/Tokyo\",\"YOL\":\"Africa/Lagos\",\"YON\":\"Asia/Thimphu\",\"YOO\":\"America/Toronto\",\"YOP\":\"America/Edmonton\",\"YOS\":\"America/Toronto\",\"YOT\":\"Asia/Jerusalem\",\"YOW\":\"America/Toronto\",\"YOY\":\"America/Toronto\",\"YPA\":\"America/Regina\",\"YPB\":\"America/Vancouver\",\"YPC\":\"America/Edmonton\",\"YPD\":\"America/Toronto\",\"YPE\":\"America/Edmonton\",\"YPF\":\"America/Vancouver\",\"YPG\":\"America/Winnipeg\",\"YPH\":\"America/Toronto\",\"YPI\":\"America/Vancouver\",\"YPJ\":\"America/Toronto\",\"YPL\":\"America/Atikokan\",\"YPM\":\"America/Winnipeg\",\"YPN\":\"America/Toronto\",\"YPO\":\"America/Toronto\",\"YPP\":\"America/Edmonton\",\"YPQ\":\"America/Toronto\",\"YPR\":\"America/Vancouver\",\"YPS\":\"America/Halifax\",\"YPT\":\"America/Vancouver\",\"YPW\":\"America/Vancouver\",\"YPX\":\"America/Toronto\",\"YPY\":\"America/Edmonton\",\"YPZ\":\"America/Vancouver\",\"YQA\":\"America/Toronto\",\"YQB\":\"America/Toronto\",\"YQC\":\"America/Toronto\",\"YQD\":\"America/Winnipeg\",\"YQE\":\"America/Vancouver\",\"YQF\":\"America/Edmonton\",\"YQG\":\"America/Toronto\",\"YQH\":\"America/Vancouver\",\"YQI\":\"America/Halifax\",\"YQJ\":\"America/Vancouver\",\"YQK\":\"America/Winnipeg\",\"YQL\":\"America/Edmonton\",\"YQM\":\"America/Halifax\",\"YQN\":\"America/Toronto\",\"YQQ\":\"America/Vancouver\",\"YQR\":\"America/Regina\",\"YQS\":\"America/Toronto\",\"YQT\":\"America/Toronto\",\"YQU\":\"America/Edmonton\",\"YQV\":\"America/Regina\",\"YQW\":\"America/Regina\",\"YQX\":\"America/St_Johns\",\"YQY\":\"America/Halifax\",\"YQZ\":\"America/Vancouver\",\"YR6\":\"America/Vancouver\",\"YRA\":\"America/Edmonton\",\"YRB\":\"America/Winnipeg\",\"YRC\":\"America/Vancouver\",\"YRD\":\"America/Vancouver\",\"YRE\":\"America/Winnipeg\",\"YRF\":\"America/Halifax\",\"YRG\":\"America/Halifax\",\"YRI\":\"America/Toronto\",\"YRJ\":\"America/Toronto\",\"YRL\":\"America/Winnipeg\",\"YRM\":\"America/Edmonton\",\"YRN\":\"America/Vancouver\",\"YRO\":\"America/Toronto\",\"YRQ\":\"America/Toronto\",\"YRR\":\"America/Vancouver\",\"YRS\":\"America/Winnipeg\",\"YRT\":\"America/Winnipeg\",\"YRV\":\"America/Vancouver\",\"YSA\":\"America/Halifax\",\"YSB\":\"America/Toronto\",\"YSC\":\"America/Toronto\",\"YSD\":\"America/Edmonton\",\"YSE\":\"America/Vancouver\",\"YSF\":\"America/Regina\",\"YSG\":\"America/Edmonton\",\"YSH\":\"America/Toronto\",\"YSI\":\"America/Toronto\",\"YSJ\":\"America/Halifax\",\"YSK\":\"America/Toronto\",\"YSL\":\"America/Halifax\",\"YSM\":\"America/Edmonton\",\"YSN\":\"America/Vancouver\",\"YSO\":\"America/Halifax\",\"YSP\":\"America/Toronto\",\"YSQ\":\"Asia/Shanghai\",\"YSR\":\"America/Toronto\",\"YST\":\"America/Winnipeg\",\"YSU\":\"America/Halifax\",\"YSV\":\"America/Halifax\",\"YSX\":\"America/Vancouver\",\"YSY\":\"America/Edmonton\",\"YSZ\":\"America/Vancouver\",\"YTA\":\"America/Toronto\",\"YTB\":\"America/Vancouver\",\"YTC\":\"America/Vancouver\",\"YTD\":\"America/Winnipeg\",\"YTE\":\"America/Toronto\",\"YTF\":\"America/Toronto\",\"YTG\":\"America/Vancouver\",\"YTH\":\"America/Winnipeg\",\"YTJ\":\"America/Toronto\",\"YTK\":\"America/Toronto\",\"YTL\":\"America/Winnipeg\",\"YTM\":\"America/Toronto\",\"YTN\":\"America/Toronto\",\"YTP\":\"America/Vancouver\",\"YTQ\":\"America/Toronto\",\"YTR\":\"America/Toronto\",\"YTS\":\"America/Toronto\",\"YTT\":\"America/Regina\",\"YTU\":\"America/Vancouver\",\"YTX\":\"America/Vancouver\",\"YTY\":\"Asia/Shanghai\",\"YTZ\":\"America/Toronto\",\"YUA\":\"Asia/Shanghai\",\"YUB\":\"America/Edmonton\",\"YUD\":\"America/Toronto\",\"YUE\":\"Australia/Darwin\",\"YUF\":\"America/Edmonton\",\"YUL\":\"America/Toronto\",\"YUM\":\"America/Phoenix\",\"YUS\":\"Asia/Shanghai\",\"YUT\":\"America/Winnipeg\",\"YUX\":\"America/Toronto\",\"YUY\":\"America/Toronto\",\"YVB\":\"America/Toronto\",\"YVC\":\"America/Regina\",\"YVD\":\"Pacific/Port_Moresby\",\"YVE\":\"America/Vancouver\",\"YVG\":\"America/Edmonton\",\"YVM\":\"America/Toronto\",\"YVO\":\"America/Toronto\",\"YVP\":\"America/Toronto\",\"YVQ\":\"America/Edmonton\",\"YVR\":\"America/Vancouver\",\"YVT\":\"America/Regina\",\"YVV\":\"America/Toronto\",\"YVZ\":\"America/Winnipeg\",\"YWA\":\"America/Toronto\",\"YWB\":\"America/Toronto\",\"YWF\":\"America/Halifax\",\"YWG\":\"America/Winnipeg\",\"YWH\":\"America/Vancouver\",\"YWJ\":\"America/Edmonton\",\"YWK\":\"America/Halifax\",\"YWL\":\"America/Vancouver\",\"YWM\":\"America/St_Johns\",\"YWN\":\"America/Toronto\",\"YWO\":\"America/Edmonton\",\"YWP\":\"America/Toronto\",\"YWQ\":\"America/Toronto\",\"YWR\":\"America/Toronto\",\"YWS\":\"America/Vancouver\",\"YWY\":\"America/Edmonton\",\"YXC\":\"America/Edmonton\",\"YXE\":\"America/Regina\",\"YXF\":\"America/Vancouver\",\"YXH\":\"America/Edmonton\",\"YXI\":\"America/Toronto\",\"YXJ\":\"America/Dawson_Creek\",\"YXK\":\"America/Toronto\",\"YXL\":\"America/Winnipeg\",\"YXN\":\"America/Winnipeg\",\"YXP\":\"America/Toronto\",\"YXQ\":\"America/Vancouver\",\"YXR\":\"America/Toronto\",\"YXS\":\"America/Vancouver\",\"YXT\":\"America/Vancouver\",\"YXU\":\"America/Toronto\",\"YXX\":\"America/Vancouver\",\"YXY\":\"America/Vancouver\",\"YXZ\":\"America/Toronto\",\"YYA\":\"Asia/Shanghai\",\"YYB\":\"America/Toronto\",\"YYC\":\"America/Edmonton\",\"YYD\":\"America/Vancouver\",\"YYE\":\"America/Dawson_Creek\",\"YYF\":\"America/Vancouver\",\"YYG\":\"America/Halifax\",\"YYH\":\"America/Edmonton\",\"YYI\":\"America/Winnipeg\",\"YYJ\":\"America/Vancouver\",\"YYL\":\"America/Winnipeg\",\"YYM\":\"America/Edmonton\",\"YYN\":\"America/Regina\",\"YYQ\":\"America/Winnipeg\",\"YYR\":\"America/Halifax\",\"YYT\":\"America/St_Johns\",\"YYU\":\"America/Toronto\",\"YYW\":\"America/Toronto\",\"YYY\":\"America/Toronto\",\"YYZ\":\"America/Toronto\",\"YZA\":\"America/Vancouver\",\"YZC\":\"America/Vancouver\",\"YZE\":\"America/Toronto\",\"YZF\":\"America/Edmonton\",\"YZG\":\"America/Toronto\",\"YZH\":\"America/Edmonton\",\"YZM\":\"America/St_Johns\",\"YZP\":\"America/Vancouver\",\"YZR\":\"America/Toronto\",\"YZS\":\"America/Atikokan\",\"YZT\":\"America/Vancouver\",\"YZU\":\"America/Edmonton\",\"YZV\":\"America/Toronto\",\"YZW\":\"America/Vancouver\",\"YZX\":\"America/Halifax\",\"YZY\":\"Asia/Shanghai\",\"YZZ\":\"America/Vancouver\",\"ZAA\":\"America/Vancouver\",\"ZAC\":\"America/Winnipeg\",\"ZAD\":\"Europe/Zagreb\",\"ZAG\":\"Europe/Zagreb\",\"ZAH\":\"Asia/Tehran\",\"ZAJ\":\"Asia/Kabul\",\"ZAL\":\"America/Santiago\",\"ZAM\":\"Asia/Manila\",\"ZAO\":\"Europe/Paris\",\"ZAR\":\"Africa/Lagos\",\"ZAT\":\"Asia/Shanghai\",\"ZAZ\":\"Europe/Madrid\",\"ZBE\":\"Europe/Prague\",\"ZBF\":\"America/Halifax\",\"ZBK\":\"Europe/Podgorica\",\"ZBL\":\"Australia/Brisbane\",\"ZBM\":\"America/Toronto\",\"ZBO\":\"Australia/Brisbane\",\"ZBR\":\"Asia/Tehran\",\"ZBY\":\"Asia/Vientiane\",\"ZCL\":\"America/Mexico_City\",\"ZCO\":\"America/Santiago\",\"ZDY\":\"Asia/Dubai\",\"ZEC\":\"Africa/Johannesburg\",\"ZEG\":\"Asia/Jayapura\",\"ZEL\":\"America/Vancouver\",\"ZEM\":\"America/Toronto\",\"ZEN\":\"Pacific/Port_Moresby\",\"ZER\":\"Asia/Kolkata\",\"ZFA\":\"America/Vancouver\",\"ZFB\":\"America/Halifax\",\"ZFD\":\"America/Regina\",\"ZFL\":\"America/Winnipeg\",\"ZFM\":\"America/Edmonton\",\"ZFN\":\"America/Edmonton\",\"ZFW\":\"America/Edmonton\",\"ZGF\":\"America/Vancouver\",\"ZGI\":\"America/Winnipeg\",\"ZGL\":\"Australia/Brisbane\",\"ZGM\":\"Africa/Lusaka\",\"ZGR\":\"America/Winnipeg\",\"ZGS\":\"America/Blanc-Sablon\",\"ZGU\":\"Pacific/Efate\",\"ZHA\":\"Asia/Shanghai\",\"ZHM\":\"Asia/Dhaka\",\"ZHP\":\"America/Edmonton\",\"ZHY\":\"Asia/Shanghai\",\"ZIA\":\"Europe/Moscow\",\"ZIC\":\"America/Santiago\",\"ZIG\":\"Africa/Dakar\",\"ZIH\":\"America/Mexico_City\",\"ZIS\":\"Africa/Tripoli\",\"ZIX\":\"Asia/Yakutsk\",\"ZIZ\":\"Asia/Karachi\",\"ZJG\":\"America/Winnipeg\",\"ZJN\":\"America/Winnipeg\",\"ZKB\":\"Africa/Lusaka\",\"ZKE\":\"America/Toronto\",\"ZKG\":\"America/Blanc-Sablon\",\"ZKL\":\"Asia/Shanghai\",\"ZKM\":\"Africa/Libreville\",\"ZKP\":\"Asia/Magadan\",\"ZLO\":\"America/Mexico_City\",\"ZLT\":\"America/Blanc-Sablon\",\"ZLX\":\"Africa/Khartoum\",\"ZMD\":\"America/Rio_Branco\",\"ZMH\":\"America/Vancouver\",\"ZMM\":\"America/Mexico_City\",\"ZMT\":\"America/Vancouver\",\"ZNA\":\"America/Vancouver\",\"ZNC\":\"America/Anchorage\",\"ZND\":\"Africa/Niamey\",\"ZNE\":\"Australia/Perth\",\"ZNU\":\"America/Vancouver\",\"ZNZ\":\"Africa/Dar_es_Salaam\",\"ZOF\":\"America/Vancouver\",\"ZOS\":\"America/Santiago\",\"ZPB\":\"America/Winnipeg\",\"ZPC\":\"America/Santiago\",\"ZPH\":\"America/New_York\",\"ZPO\":\"America/Winnipeg\",\"ZQN\":\"Pacific/Auckland\",\"ZQS\":\"America/Vancouver\",\"ZQW\":\"Europe/Berlin\",\"ZQZ\":\"Asia/Shanghai\",\"ZRH\":\"Europe/Zurich\",\"ZRI\":\"Asia/Jayapura\",\"ZRJ\":\"America/Winnipeg\",\"ZRM\":\"Asia/Jayapura\",\"ZSA\":\"America/Nassau\",\"ZSE\":\"Indian/Reunion\",\"ZSJ\":\"America/Winnipeg\",\"ZSP\":\"America/Toronto\",\"ZSS\":\"Africa/Abidjan\",\"ZST\":\"America/Vancouver\",\"ZSW\":\"America/Vancouver\",\"ZTA\":\"Pacific/Tahiti\",\"ZTB\":\"America/Blanc-Sablon\",\"ZTH\":\"Europe/Athens\",\"ZTM\":\"America/Winnipeg\",\"ZTR\":\"Europe/Kiev\",\"ZTS\":\"America/Vancouver\",\"ZTU\":\"Asia/Baku\",\"ZUC\":\"America/Winnipeg\",\"ZUD\":\"America/Santiago\",\"ZUE\":\"Africa/Abidjan\",\"ZUH\":\"Asia/Shanghai\",\"ZUL\":\"Asia/Riyadh\",\"ZUM\":\"America/Halifax\",\"ZVA\":\"Indian/Antananarivo\",\"ZVG\":\"Australia/Perth\",\"ZVK\":\"Asia/Vientiane\",\"ZWA\":\"Indian/Antananarivo\",\"ZWL\":\"America/Regina\",\"ZWN\":\"Europe/Berlin\",\"ZXQ\":\"Europe/Oslo\",\"ZXT\":\"Asia/Baku\",\"ZYI\":\"Asia/Shanghai\",\"ZYL\":\"Asia/Dhaka\",\"ZZO\":\"Asia/Vladivostok\",\"ZZU\":\"Africa/Blantyre\",\"ZZV\":\"America/New_York\"}"); /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { var map = { "./airlines/aa.js": 14, "./airlines/aaSabre.js": 15, "./airlines/ac.js": 21, "./airlines/af.js": 22, "./airlines/as.js": 23, "./airlines/az.js": 24, "./airlines/ba.js": 25, "./airlines/cz.js": 26, "./airlines/dl.js": 27, "./airlines/ek.js": 28, "./airlines/ey.js": 29, "./airlines/ib.js": 30, "./airlines/kl.js": 31, "./airlines/la.js": 32, "./airlines/lh.js": 33, "./airlines/lx.js": 34, "./airlines/oa.js": 35, "./airlines/ps.js": 36, "./airlines/qf.js": 37, "./airlines/qr.js": 38, "./airlines/tk.js": 39, "./index.js": 3, "./meta/googleFlights.js": 40, "./meta/jetcost.js": 41, "./meta/kayak.js": 42, "./meta/momondo.js": 43, "./meta/skyscanner.js": 44, "./meta/tripadvisor.js": 45, "./otas/cheapoair.js": 46, "./otas/edreams.js": 47, "./otas/etraveli.js": 48, "./otas/expedia.js": 49, "./otas/flightnetwork.js": 50, "./otas/hop2.js": 51, "./otas/lucky2go.js": 52, "./otas/priceline.js": 53, "./other/gcm.js": 54, "./other/wheretocredit.js": 55 }; function webpackContext(req) { var id = webpackContextResolve(req); return __webpack_require__(id); } function webpackContextResolve(req) { if(!__webpack_require__.o(map, req)) { var e = new Error("Cannot find module '" + req + "'"); e.code = 'MODULE_NOT_FOUND'; throw e; } return map[req]; } webpackContext.keys = function webpackContextKeys() { return Object.keys(map); }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; webpackContext.id = 13; /***/ }), /* 14 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const aaEditions = [ { value: "en_AU", name: "Australia" }, { value: "en_BE", name: "Belgium" }, { value: "en_CN", name: "China" }, { value: "en_DK", name: "Denmark" }, { value: "en_FI", name: "Finland" }, { value: "en_FR", name: "France / English" }, { value: "fr_FR", name: "France / French" }, { value: "en_DE", name: "Germany / English" }, { value: "de_DE", name: "Germany / Deutsch" }, { value: "en_GR", name: "Greece" }, { value: "en_HK", name: "Hong Kong" }, { value: "en_IN", name: "India" }, { value: "en_IE", name: "Ireland" }, { value: "en_IL", name: "Israel" }, { value: "en_IT", name: "Italy" }, { value: "en_JP", name: "Japan" }, { value: "en_KR", name: "Korea" }, { value: "en_NL", name: "Netherlands" }, { value: "en_NZ", name: "New Zealand" }, { value: "en_NO", name: "Norway" }, { value: "en_PT", name: "Portugal" }, { value: "en_RU", name: "Russia" }, { value: "en_ES", name: "Spain / English" }, { value: "es_ES", name: "Spain / Spanish" }, { value: "en_SE", name: "Sweden" }, { value: "en_CH", name: "Switzerland" } ]; function printAA() { var createUrl = function(edition) { var url = "http://i11l-services.aa.com/xaa/mseGateway/entryPoint.php?PARAM="; var search = "1,,USD0.00," + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length + ","; var legs = new Array(); var leg = ""; var segs = new Array(); var seg = ""; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // walks each leg segs = new Array(); for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } seg = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) + "T" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time).slice(-5) + (typeof _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.offset == "undefined" ? "+00:00" : _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.offset) + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + "T" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time).slice(-5) + (typeof _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset == "undefined" ? "+00:00" : _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset) + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; // NO , here! segs.push(seg); j += k; } search += segs.length + "," + segs.join() + ","; //build leg structure leg = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.day).slice(-2) + ","; leg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest + ",,"; leg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig + ","; // USE , here! legs.push(leg); } search += "DIRECT,"; search += edition[0].toUpperCase() + ","; // Language search += "3,"; // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 7, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAA"); return; } search += pax.adults + ","; // ADT search += pax.children.length + ","; // Child search += pax.infLap + ","; // Inf search += "0,"; // Senior search += edition[1].toUpperCase() + ","; // Country // push outer search search += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length + "," + legs.join(); url += encodeURIComponent(search); return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].aaEdition.split("_"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error:Invalid AA-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += aaEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("_")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "American", desc: "Europe/Asia/Pacific", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printAA); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])( "American (Europe/Asia/Pacific)", "aaEdition", aaEditions, "en_DE" ); /***/ }), /* 15 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _json_timezones_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12); var _json_timezones_json__WEBPACK_IMPORTED_MODULE_4___namespace = /*#__PURE__*/__webpack_require__.t(12, 1); const aaSabreEditions = [ { value: "BS", name: "Bahamas (USD)" }, { value: "VG", name: "British Virgin Islands (USD)" }, { value: "CA", name: "Canada (CAD)" }, { value: "PR", name: "Puerto Rico (USD)" }, { value: "GB", name: "United Kingdom (GBP)" }, { value: "US", name: "United States (USD)" } ]; function printAaSabre() { let datetimeToEpoch = function(y, m, d, t, ap) { /** * This function converts a datetime from the local timezone of the * departing airport to its epoch value, while accounting for * daylight savings time (DST) differences in future months. * * This function accepts the IATA code for a given airport and * retrieves the timezone from a static array of known airport data * (sourced from https://openflights.org/data.html, reduced to * airports with IATA code, and converted to keyed json format). * We use that timezone and Moment Timezone to account for DST if * the future date and timezone fall in a known DST locale. * * Future TODO: The static airport data adds bloat and must be * manually updated. Moment Timezone also adds bloat. Consider * alternative implementations? * * @param y 4-digit year * @param m 2-digit month * @param d 2-digit day * @param t 24-hour formatted time (HH:MM) * @param y 4-digit year * @param ap IATA airport code * @returns Adjusted datetime string with offset in format YYYY-MM-DDTHH:MM:00+XX:00 */ let datetimeStr = y + "-" + ("0" + m).slice(-2) + "-" + ("0" + d).slice(-2) + "T" + t + ":00"; // use Moment Timezone to adjust for (if needed) DST of airport: // (data is filtered to only +2 years to reduce file size) let moment = __webpack_require__(16); let adjustedStr = moment.tz(datetimeStr, _json_timezones_json__WEBPACK_IMPORTED_MODULE_4__[ap]).format(); return Date.parse(adjustedStr); }; // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child var createUrl = function(edition) { var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 6, countInf: true, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAaSabre"); return false; } var url = "https://www.aa.com/goto/metasearch?ITEN=GOOGLE,0,"; url += (edition || "US") + ","; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === 1) { url += "oneWay"; } else { url += "multi"; } url += ",4,A" + pax.adults + "S0C" + pax.children.length + "I" + pax.infLap + "Y0L0,0,"; url += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig + ",0," + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest; url += ",0"; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length > 1) { for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { url += ",0,0"; } } else { url += ",0"; // for oneWay only } if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2) { // insert additional parameter zeros for roundtrips or 2-leg multi-city: url += ",0,0"; } else if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { // insert the departure time before the price for oneWay only: url += "," + datetimeToEpoch( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].seg[0].dep.year, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].seg[0].dep.month, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].seg[0].dep.day, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].seg[0].dep.time24, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].seg[0].orig ); } url += "," + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price + ",1,"; // this part for RT and multi-city only: if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length > 1) { var addon = ""; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { addon += "#" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig + "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest + "|0|0|"; addon += datetimeToEpoch( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.year, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.month, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.day, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.time24, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].orig ); } url += encodeURIComponent(addon) + ","; } var itinsegs = new Array(); // Build multi-city search based on legs: for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // outer loop traverses each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { // inner loop traverses each segment of the leg var k = 0; // skip this segment ONLY IF the flight number is the // same as the next segment and it is only a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !== _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } let itinseg = "#" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier + "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr + "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass + "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig + "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest + "|" + datetimeToEpoch( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time24, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig ); itinseg += "|" + i; itinsegs.push(itinseg); j += k; } } url += encodeURIComponent(itinsegs.join("")); return url; }; var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].aaSabreEdition.toUpperCase()); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += aaSabreEditions .map(function(edition, i) { return ( '<a href="' + createUrl(edition.value.toUpperCase()) + '" target="_blank">' + edition.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "American", desc: "America & UK", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printAaSabre); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])( "American (America & UK)", "aaSabreEdition", aaSabreEditions, "US" ); /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { var moment = module.exports = __webpack_require__(17); moment.tz.load(__webpack_require__(20)); /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;//! moment-timezone.js //! version : 0.5.28 //! Copyright (c) JS Foundation and other contributors //! license : MIT //! github.com/moment/moment-timezone (function (root, factory) { "use strict"; /*global define*/ if ( true && module.exports) { module.exports = factory(__webpack_require__(10)); // Node } else if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(10)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); // AMD } else {} }(this, function (moment) { "use strict"; // Do not load moment-timezone a second time. // if (moment.tz !== undefined) { // logError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion); // return moment; // } var VERSION = "0.5.28", zones = {}, links = {}, countries = {}, names = {}, guesses = {}, cachedGuess; if (!moment || typeof moment.version !== 'string') { logError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/'); } var momentVersion = moment.version.split('.'), major = +momentVersion[0], minor = +momentVersion[1]; // Moment.js version check if (major < 2 || (major === 2 && minor < 6)) { logError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com'); } /************************************ Unpacking ************************************/ function charCodeToInt(charCode) { if (charCode > 96) { return charCode - 87; } else if (charCode > 64) { return charCode - 29; } return charCode - 48; } function unpackBase60(string) { var i = 0, parts = string.split('.'), whole = parts[0], fractional = parts[1] || '', multiplier = 1, num, out = 0, sign = 1; // handle negative numbers if (string.charCodeAt(0) === 45) { i = 1; sign = -1; } // handle digits before the decimal for (i; i < whole.length; i++) { num = charCodeToInt(whole.charCodeAt(i)); out = 60 * out + num; } // handle digits after the decimal for (i = 0; i < fractional.length; i++) { multiplier = multiplier / 60; num = charCodeToInt(fractional.charCodeAt(i)); out += num * multiplier; } return out * sign; } function arrayToInt (array) { for (var i = 0; i < array.length; i++) { array[i] = unpackBase60(array[i]); } } function intToUntil (array, length) { for (var i = 0; i < length; i++) { array[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds } array[length - 1] = Infinity; } function mapIndices (source, indices) { var out = [], i; for (i = 0; i < indices.length; i++) { out[i] = source[indices[i]]; } return out; } function unpack (string) { var data = string.split('|'), offsets = data[2].split(' '), indices = data[3].split(''), untils = data[4].split(' '); arrayToInt(offsets); arrayToInt(indices); arrayToInt(untils); intToUntil(untils, indices.length); return { name : data[0], abbrs : mapIndices(data[1].split(' '), indices), offsets : mapIndices(offsets, indices), untils : untils, population : data[5] | 0 }; } /************************************ Zone object ************************************/ function Zone (packedString) { if (packedString) { this._set(unpack(packedString)); } } Zone.prototype = { _set : function (unpacked) { this.name = unpacked.name; this.abbrs = unpacked.abbrs; this.untils = unpacked.untils; this.offsets = unpacked.offsets; this.population = unpacked.population; }, _index : function (timestamp) { var target = +timestamp, untils = this.untils, i; for (i = 0; i < untils.length; i++) { if (target < untils[i]) { return i; } } }, countries : function () { var zone_name = this.name; return Object.keys(countries).filter(function (country_code) { return countries[country_code].zones.indexOf(zone_name) !== -1; }); }, parse : function (timestamp) { var target = +timestamp, offsets = this.offsets, untils = this.untils, max = untils.length - 1, offset, offsetNext, offsetPrev, i; for (i = 0; i < max; i++) { offset = offsets[i]; offsetNext = offsets[i + 1]; offsetPrev = offsets[i ? i - 1 : i]; if (offset < offsetNext && tz.moveAmbiguousForward) { offset = offsetNext; } else if (offset > offsetPrev && tz.moveInvalidForward) { offset = offsetPrev; } if (target < untils[i] - (offset * 60000)) { return offsets[i]; } } return offsets[max]; }, abbr : function (mom) { return this.abbrs[this._index(mom)]; }, offset : function (mom) { logError("zone.offset has been deprecated in favor of zone.utcOffset"); return this.offsets[this._index(mom)]; }, utcOffset : function (mom) { return this.offsets[this._index(mom)]; } }; /************************************ Country object ************************************/ function Country (country_name, zone_names) { this.name = country_name; this.zones = zone_names; } /************************************ Current Timezone ************************************/ function OffsetAt(at) { var timeString = at.toTimeString(); var abbr = timeString.match(/\([a-z ]+\)/i); if (abbr && abbr[0]) { // 17:56:31 GMT-0600 (CST) // 17:56:31 GMT-0600 (Central Standard Time) abbr = abbr[0].match(/[A-Z]/g); abbr = abbr ? abbr.join('') : undefined; } else { // 17:56:31 CST // 17:56:31 GMT+0800 (台北標準時間) abbr = timeString.match(/[A-Z]{3,5}/g); abbr = abbr ? abbr[0] : undefined; } if (abbr === 'GMT') { abbr = undefined; } this.at = +at; this.abbr = abbr; this.offset = at.getTimezoneOffset(); } function ZoneScore(zone) { this.zone = zone; this.offsetScore = 0; this.abbrScore = 0; } ZoneScore.prototype.scoreOffsetAt = function (offsetAt) { this.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset); if (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) { this.abbrScore++; } }; function findChange(low, high) { var mid, diff; while ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) { mid = new OffsetAt(new Date(low.at + diff)); if (mid.offset === low.offset) { low = mid; } else { high = mid; } } return low; } function userOffsets() { var startYear = new Date().getFullYear() - 2, last = new OffsetAt(new Date(startYear, 0, 1)), offsets = [last], change, next, i; for (i = 1; i < 48; i++) { next = new OffsetAt(new Date(startYear, i, 1)); if (next.offset !== last.offset) { change = findChange(last, next); offsets.push(change); offsets.push(new OffsetAt(new Date(change.at + 6e4))); } last = next; } for (i = 0; i < 4; i++) { offsets.push(new OffsetAt(new Date(startYear + i, 0, 1))); offsets.push(new OffsetAt(new Date(startYear + i, 6, 1))); } return offsets; } function sortZoneScores (a, b) { if (a.offsetScore !== b.offsetScore) { return a.offsetScore - b.offsetScore; } if (a.abbrScore !== b.abbrScore) { return a.abbrScore - b.abbrScore; } if (a.zone.population !== b.zone.population) { return b.zone.population - a.zone.population; } return b.zone.name.localeCompare(a.zone.name); } function addToGuesses (name, offsets) { var i, offset; arrayToInt(offsets); for (i = 0; i < offsets.length; i++) { offset = offsets[i]; guesses[offset] = guesses[offset] || {}; guesses[offset][name] = true; } } function guessesForUserOffsets (offsets) { var offsetsLength = offsets.length, filteredGuesses = {}, out = [], i, j, guessesOffset; for (i = 0; i < offsetsLength; i++) { guessesOffset = guesses[offsets[i].offset] || {}; for (j in guessesOffset) { if (guessesOffset.hasOwnProperty(j)) { filteredGuesses[j] = true; } } } for (i in filteredGuesses) { if (filteredGuesses.hasOwnProperty(i)) { out.push(names[i]); } } return out; } function rebuildGuess () { // use Intl API when available and returning valid time zone try { var intlName = Intl.DateTimeFormat().resolvedOptions().timeZone; if (intlName && intlName.length > 3) { var name = names[normalizeName(intlName)]; if (name) { return name; } logError("Moment Timezone found " + intlName + " from the Intl api, but did not have that data loaded."); } } catch (e) { // Intl unavailable, fall back to manual guessing. } var offsets = userOffsets(), offsetsLength = offsets.length, guesses = guessesForUserOffsets(offsets), zoneScores = [], zoneScore, i, j; for (i = 0; i < guesses.length; i++) { zoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength); for (j = 0; j < offsetsLength; j++) { zoneScore.scoreOffsetAt(offsets[j]); } zoneScores.push(zoneScore); } zoneScores.sort(sortZoneScores); return zoneScores.length > 0 ? zoneScores[0].zone.name : undefined; } function guess (ignoreCache) { if (!cachedGuess || ignoreCache) { cachedGuess = rebuildGuess(); } return cachedGuess; } /************************************ Global Methods ************************************/ function normalizeName (name) { return (name || '').toLowerCase().replace(/\//g, '_'); } function addZone (packed) { var i, name, split, normalized; if (typeof packed === "string") { packed = [packed]; } for (i = 0; i < packed.length; i++) { split = packed[i].split('|'); name = split[0]; normalized = normalizeName(name); zones[normalized] = packed[i]; names[normalized] = name; addToGuesses(normalized, split[2].split(' ')); } } function getZone (name, caller) { name = normalizeName(name); var zone = zones[name]; var link; if (zone instanceof Zone) { return zone; } if (typeof zone === 'string') { zone = new Zone(zone); zones[name] = zone; return zone; } // Pass getZone to prevent recursion more than 1 level deep if (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) { zone = zones[name] = new Zone(); zone._set(link); zone.name = names[name]; return zone; } return null; } function getNames () { var i, out = []; for (i in names) { if (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) { out.push(names[i]); } } return out.sort(); } function getCountryNames () { return Object.keys(countries); } function addLink (aliases) { var i, alias, normal0, normal1; if (typeof aliases === "string") { aliases = [aliases]; } for (i = 0; i < aliases.length; i++) { alias = aliases[i].split('|'); normal0 = normalizeName(alias[0]); normal1 = normalizeName(alias[1]); links[normal0] = normal1; names[normal0] = alias[0]; links[normal1] = normal0; names[normal1] = alias[1]; } } function addCountries (data) { var i, country_code, country_zones, split; if (!data || !data.length) return; for (i = 0; i < data.length; i++) { split = data[i].split('|'); country_code = split[0].toUpperCase(); country_zones = split[1].split(' '); countries[country_code] = new Country( country_code, country_zones ); } } function getCountry (name) { name = name.toUpperCase(); return countries[name] || null; } function zonesForCountry(country, with_offset) { country = getCountry(country); if (!country) return null; var zones = country.zones.sort(); if (with_offset) { return zones.map(function (zone_name) { var zone = getZone(zone_name); return { name: zone_name, offset: zone.utcOffset(new Date()) }; }); } return zones; } function loadData (data) { addZone(data.zones); addLink(data.links); addCountries(data.countries); tz.dataVersion = data.version; } function zoneExists (name) { if (!zoneExists.didShowError) { zoneExists.didShowError = true; logError("moment.tz.zoneExists('" + name + "') has been deprecated in favor of !moment.tz.zone('" + name + "')"); } return !!getZone(name); } function needsOffset (m) { var isUnixTimestamp = (m._f === 'X' || m._f === 'x'); return !!(m._a && (m._tzm === undefined) && !isUnixTimestamp); } function logError (message) { if (typeof console !== 'undefined' && typeof console.error === 'function') { console.error(message); } } /************************************ moment.tz namespace ************************************/ function tz (input) { var args = Array.prototype.slice.call(arguments, 0, -1), name = arguments[arguments.length - 1], zone = getZone(name), out = moment.utc.apply(null, args); if (zone && !moment.isMoment(input) && needsOffset(out)) { out.add(zone.parse(out), 'minutes'); } out.tz(name); return out; } tz.version = VERSION; tz.dataVersion = ''; tz._zones = zones; tz._links = links; tz._names = names; tz._countries = countries; tz.add = addZone; tz.link = addLink; tz.load = loadData; tz.zone = getZone; tz.zoneExists = zoneExists; // deprecated in 0.1.0 tz.guess = guess; tz.names = getNames; tz.Zone = Zone; tz.unpack = unpack; tz.unpackBase60 = unpackBase60; tz.needsOffset = needsOffset; tz.moveInvalidForward = true; tz.moveAmbiguousForward = false; tz.countries = getCountryNames; tz.zonesForCountry = zonesForCountry; /************************************ Interface with Moment.js ************************************/ var fn = moment.fn; moment.tz = tz; moment.defaultZone = null; moment.updateOffset = function (mom, keepTime) { var zone = moment.defaultZone, offset; if (mom._z === undefined) { if (zone && needsOffset(mom) && !mom._isUTC) { mom._d = moment.utc(mom._a)._d; mom.utc().add(zone.parse(mom), 'minutes'); } mom._z = zone; } if (mom._z) { offset = mom._z.utcOffset(mom); if (Math.abs(offset) < 16) { offset = offset / 60; } if (mom.utcOffset !== undefined) { var z = mom._z; mom.utcOffset(-offset, keepTime); mom._z = z; } else { mom.zone(offset, keepTime); } } }; fn.tz = function (name, keepTime) { if (name) { if (typeof name !== 'string') { throw new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']'); } this._z = getZone(name); if (this._z) { moment.updateOffset(this, keepTime); } else { logError("Moment Timezone has no data for " + name + ". See http://momentjs.com/timezone/docs/#/data-loading/."); } return this; } if (this._z) { return this._z.name; } }; function abbrWrap (old) { return function () { if (this._z) { return this._z.abbr(this); } return old.call(this); }; } function resetZoneWrap (old) { return function () { this._z = null; return old.apply(this, arguments); }; } function resetZoneWrap2 (old) { return function () { if (arguments.length > 0) this._z = null; return old.apply(this, arguments); }; } fn.zoneName = abbrWrap(fn.zoneName); fn.zoneAbbr = abbrWrap(fn.zoneAbbr); fn.utc = resetZoneWrap(fn.utc); fn.local = resetZoneWrap(fn.local); fn.utcOffset = resetZoneWrap2(fn.utcOffset); moment.tz.setDefault = function(name) { if (major < 2 || (major === 2 && minor < 9)) { logError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.'); } moment.defaultZone = name ? getZone(name) : null; return moment; }; // Cloning a moment should include the _z property. var momentProperties = moment.momentProperties; if (Object.prototype.toString.call(momentProperties) === '[object Array]') { // moment 2.8.1+ momentProperties.push('_z'); momentProperties.push('_a'); } else if (momentProperties) { // moment 2.7.0 momentProperties._z = null; } // INJECT DATA return moment; })); /***/ }), /* 18 */ /***/ (function(module, exports) { module.exports = function(module) { if (!module.webpackPolyfill) { module.deprecate = function() {}; module.paths = []; // module.parent = undefined by default if (!module.children) module.children = []; Object.defineProperty(module, "loaded", { enumerable: true, get: function() { return module.l; } }); Object.defineProperty(module, "id", { enumerable: true, get: function() { return module.i; } }); module.webpackPolyfill = 1; } return module; }; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { var map = { "./de": 11, "./de.js": 11 }; function webpackContext(req) { var id = webpackContextResolve(req); return __webpack_require__(id); } function webpackContextResolve(req) { if(!__webpack_require__.o(map, req)) { var e = new Error("Cannot find module '" + req + "'"); e.code = 'MODULE_NOT_FOUND'; throw e; } return map[req]; } webpackContext.keys = function webpackContextKeys() { return Object.keys(map); }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; webpackContext.id = 19; /***/ }), /* 20 */ /***/ (function(module) { module.exports = JSON.parse("{\"version\":\"2019c\",\"zones\":[\"Africa/Abidjan|GMT|0|0||48e5\",\"Africa/Nairobi|EAT|-30|0||47e5\",\"Africa/Algiers|CET|-10|0||26e5\",\"Africa/Lagos|WAT|-10|0||17e6\",\"Africa/Khartoum|CAT|-20|0||51e5\",\"Africa/Cairo|EET|-20|0||15e6\",\"Africa/Casablanca|+01 +00|-10 0|0101010|22sq0 e00 28M0 e00 2600 gM0|32e5\",\"Europe/Paris|CET CEST|-10 -20|0101010|22k10 1o00 11A0 1qM0 WM0 1qM0|11e6\",\"Africa/Johannesburg|SAST|-20|0||84e5\",\"America/Adak|HST HDT|a0 90|0101010|22bM0 1zb0 Rd0 1zb0 Op0 1zb0|326\",\"America/Anchorage|AKST AKDT|90 80|0101010|22bL0 1zb0 Rd0 1zb0 Op0 1zb0|30e4\",\"America/Santo_Domingo|AST|40|0||29e5\",\"America/Sao_Paulo|-03|30|0||20e6\",\"America/Asuncion|-03 -04|30 40|0101010|22hf0 1ip0 19X0 1fB0 19X0 1fB0|28e5\",\"America/Panama|EST|50|0||15e5\",\"America/Mexico_City|CST CDT|60 50|0101010|22mU0 1lb0 14p0 1nX0 11B0 1nX0|20e6\",\"America/Managua|CST|60|0||22e5\",\"America/Caracas|-04|40|0||29e5\",\"America/Lima|-05|50|0||11e6\",\"America/Denver|MST MDT|70 60|0101010|22bJ0 1zb0 Rd0 1zb0 Op0 1zb0|26e5\",\"America/Chicago|CST CDT|60 50|0101010|22bI0 1zb0 Rd0 1zb0 Op0 1zb0|92e5\",\"America/Chihuahua|MST MDT|70 60|0101010|22mV0 1lb0 14p0 1nX0 11B0 1nX0|81e4\",\"America/Phoenix|MST|70|0||42e5\",\"America/Los_Angeles|PST PDT|80 70|0101010|22bK0 1zb0 Rd0 1zb0 Op0 1zb0|15e6\",\"America/New_York|EST EDT|50 40|0101010|22bH0 1zb0 Rd0 1zb0 Op0 1zb0|21e6\",\"America/Halifax|AST ADT|40 30|0101010|22bG0 1zb0 Rd0 1zb0 Op0 1zb0|39e4\",\"America/Godthab|-03 -02|30 20|0101010|22k10 1o00 11A0 1qM0 WM0 1qM0|17e3\",\"America/Havana|CST CDT|50 40|0101010|22bF0 1zc0 Rc0 1zc0 Oo0 1zc0|21e5\",\"America/Miquelon|-03 -02|30 20|0101010|22bF0 1zb0 Rd0 1zb0 Op0 1zb0|61e2\",\"America/Noronha|-02|20|0||30e2\",\"America/Santiago|-03 -04|30 40|0101010|22mP0 11B0 1nX0 11B0 1nX0 11B0|62e5\",\"Atlantic/Azores|-01 +00|10 0|0101010|22k10 1o00 11A0 1qM0 WM0 1qM0|25e4\",\"America/St_Johns|NST NDT|3u 2u|0101010|22bFu 1zb0 Rd0 1zb0 Op0 1zb0|11e4\",\"Asia/Kuala_Lumpur|+08|-80|0||71e5\",\"Asia/Bangkok|+07|-70|0||15e6\",\"Asia/Vladivostok|+10|-a0|0||60e4\",\"Asia/Sakhalin|+11|-b0|0||58e4\",\"Asia/Tashkent|+05|-50|0||23e5\",\"Pacific/Auckland|NZDT NZST|-d0 -c0|0101010|22mC0 1a00 1fA0 1a00 1fA0 1a00|14e5\",\"Europe/Istanbul|+03|-30|0||13e6\",\"Antarctica/Troll|+00 +02|0 -20|0101010|22k10 1o00 11A0 1qM0 WM0 1qM0|40\",\"Asia/Dhaka|+06|-60|0||16e6\",\"Asia/Amman|EET EEST|-20 -30|0101010|22ja0 1qM0 WM0 1qM0 11A0 1o00|25e5\",\"Asia/Kamchatka|+12|-c0|0||18e4\",\"Asia/Dubai|+04|-40|0||39e5\",\"Asia/Beirut|EET EEST|-20 -30|0101010|22jW0 1nX0 11B0 1qL0 WN0 1qL0|22e5\",\"Asia/Kolkata|IST|-5u|0||15e6\",\"Asia/Chita|+09|-90|0||33e4\",\"Asia/Shanghai|CST|-80|0||23e6\",\"Asia/Colombo|+0530|-5u|0||22e5\",\"Asia/Damascus|EET EEST|-20 -30|0101010|22ja0 1qL0 WN0 1qL0 WN0 1qL0|26e5\",\"Europe/Athens|EET EEST|-20 -30|0101010|22k10 1o00 11A0 1qM0 WM0 1qM0|35e5\",\"Asia/Gaza|EET EEST|-20 -30|0101010|22ja0 1rc0 Wo0 1rc0 Wo0 1rc0|18e5\",\"Asia/Hong_Kong|HKT|-80|0||73e5\",\"Asia/Jakarta|WIB|-70|0||31e6\",\"Asia/Jayapura|WIT|-90|0||26e4\",\"Asia/Jerusalem|IST IDT|-20 -30|0101010|22jc0 1oL0 10N0 1rz0 W10 1rz0|81e4\",\"Asia/Kabul|+0430|-4u|0||46e5\",\"Asia/Karachi|PKT|-50|0||24e6\",\"Asia/Kathmandu|+0545|-5J|0||12e5\",\"Asia/Makassar|WITA|-80|0||15e5\",\"Asia/Manila|PST|-80|0||24e6\",\"Asia/Seoul|KST|-90|0||23e6\",\"Asia/Rangoon|+0630|-6u|0||48e5\",\"Asia/Tehran|+0330 +0430|-3u -4u|0101010|22gIu 1dz0 1cN0 1dz0 1cp0 1dz0|14e6\",\"Asia/Tokyo|JST|-90|0||38e6\",\"Europe/Lisbon|WET WEST|0 -10|0101010|22k10 1o00 11A0 1qM0 WM0 1qM0|27e5\",\"Atlantic/Cape_Verde|-01|10|0||50e4\",\"Australia/Sydney|AEDT AEST|-b0 -a0|0101010|22mE0 1cM0 1cM0 1cM0 1cM0 1cM0|40e5\",\"Australia/Adelaide|ACDT ACST|-au -9u|0101010|22mEu 1cM0 1cM0 1cM0 1cM0 1cM0|11e5\",\"Australia/Brisbane|AEST|-a0|0||20e5\",\"Australia/Darwin|ACST|-9u|0||12e4\",\"Australia/Eucla|+0845|-8J|0||368\",\"Australia/Lord_Howe|+11 +1030|-b0 -au|0101010|22mD0 1cMu 1cLu 1cMu 1cLu 1cMu|347\",\"Australia/Perth|AWST|-80|0||18e5\",\"Pacific/Easter|-05 -06|50 60|0101010|22mP0 11B0 1nX0 11B0 1nX0 11B0|30e2\",\"Europe/Dublin|GMT IST|0 -10|0101010|22k10 1o00 11A0 1qM0 WM0 1qM0|12e5\",\"Etc/GMT-1|+01|-10|0|\",\"Pacific/Tongatapu|+13|-d0|0||75e3\",\"Pacific/Kiritimati|+14|-e0|0||51e2\",\"Etc/GMT-2|+02|-20|0|\",\"Pacific/Tahiti|-10|a0|0||18e4\",\"Pacific/Niue|-11|b0|0||12e2\",\"Etc/GMT+12|-12|c0|0|\",\"Pacific/Galapagos|-06|60|0||25e3\",\"Etc/GMT+7|-07|70|0|\",\"Pacific/Pitcairn|-08|80|0||56\",\"Pacific/Gambier|-09|90|0||125\",\"Etc/UTC|UTC|0|0|\",\"Europe/London|GMT BST|0 -10|0101010|22k10 1o00 11A0 1qM0 WM0 1qM0|10e6\",\"Europe/Chisinau|EET EEST|-20 -30|0101010|22k00 1o00 11A0 1qM0 WM0 1qM0|67e4\",\"Europe/Moscow|MSK|-30|0||16e6\",\"Pacific/Honolulu|HST|a0|0||37e4\",\"MET|MET MEST|-10 -20|0101010|22k10 1o00 11A0 1qM0 WM0 1qM0\",\"Pacific/Chatham|+1345 +1245|-dJ -cJ|0101010|22mC0 1a00 1fA0 1a00 1fA0 1a00|600\",\"Pacific/Apia|+14 +13|-e0 -d0|0101010|22mC0 1a00 1fA0 1a00 1fA0 1a00|37e3\",\"Pacific/Fiji|+13 +12|-d0 -c0|0101010|21N20 20o0 s00 20o0 pc0 20o0|88e4\",\"Pacific/Guam|ChST|-a0|0||17e4\",\"Pacific/Marquesas|-0930|9u|0||86e2\",\"Pacific/Pago_Pago|SST|b0|0||37e2\",\"Pacific/Norfolk|+12 +11|-c0 -b0|0101010|22mD0 1cM0 1cM0 1cM0 1cM0 1cM0|25e4\"],\"links\":[\"Africa/Abidjan|Africa/Accra\",\"Africa/Abidjan|Africa/Bamako\",\"Africa/Abidjan|Africa/Banjul\",\"Africa/Abidjan|Africa/Bissau\",\"Africa/Abidjan|Africa/Conakry\",\"Africa/Abidjan|Africa/Dakar\",\"Africa/Abidjan|Africa/Freetown\",\"Africa/Abidjan|Africa/Lome\",\"Africa/Abidjan|Africa/Monrovia\",\"Africa/Abidjan|Africa/Nouakchott\",\"Africa/Abidjan|Africa/Ouagadougou\",\"Africa/Abidjan|Africa/Sao_Tome\",\"Africa/Abidjan|Africa/Timbuktu\",\"Africa/Abidjan|America/Danmarkshavn\",\"Africa/Abidjan|Atlantic/Reykjavik\",\"Africa/Abidjan|Atlantic/St_Helena\",\"Africa/Abidjan|Etc/GMT\",\"Africa/Abidjan|Etc/GMT+0\",\"Africa/Abidjan|Etc/GMT-0\",\"Africa/Abidjan|Etc/GMT0\",\"Africa/Abidjan|Etc/Greenwich\",\"Africa/Abidjan|GMT\",\"Africa/Abidjan|GMT+0\",\"Africa/Abidjan|GMT-0\",\"Africa/Abidjan|GMT0\",\"Africa/Abidjan|Greenwich\",\"Africa/Abidjan|Iceland\",\"Africa/Algiers|Africa/Tunis\",\"Africa/Cairo|Africa/Tripoli\",\"Africa/Cairo|Egypt\",\"Africa/Cairo|Europe/Kaliningrad\",\"Africa/Cairo|Libya\",\"Africa/Casablanca|Africa/El_Aaiun\",\"Africa/Johannesburg|Africa/Maseru\",\"Africa/Johannesburg|Africa/Mbabane\",\"Africa/Khartoum|Africa/Blantyre\",\"Africa/Khartoum|Africa/Bujumbura\",\"Africa/Khartoum|Africa/Gaborone\",\"Africa/Khartoum|Africa/Harare\",\"Africa/Khartoum|Africa/Kigali\",\"Africa/Khartoum|Africa/Lubumbashi\",\"Africa/Khartoum|Africa/Lusaka\",\"Africa/Khartoum|Africa/Maputo\",\"Africa/Khartoum|Africa/Windhoek\",\"Africa/Lagos|Africa/Bangui\",\"Africa/Lagos|Africa/Brazzaville\",\"Africa/Lagos|Africa/Douala\",\"Africa/Lagos|Africa/Kinshasa\",\"Africa/Lagos|Africa/Libreville\",\"Africa/Lagos|Africa/Luanda\",\"Africa/Lagos|Africa/Malabo\",\"Africa/Lagos|Africa/Ndjamena\",\"Africa/Lagos|Africa/Niamey\",\"Africa/Lagos|Africa/Porto-Novo\",\"Africa/Nairobi|Africa/Addis_Ababa\",\"Africa/Nairobi|Africa/Asmara\",\"Africa/Nairobi|Africa/Asmera\",\"Africa/Nairobi|Africa/Dar_es_Salaam\",\"Africa/Nairobi|Africa/Djibouti\",\"Africa/Nairobi|Africa/Juba\",\"Africa/Nairobi|Africa/Kampala\",\"Africa/Nairobi|Africa/Mogadishu\",\"Africa/Nairobi|Indian/Antananarivo\",\"Africa/Nairobi|Indian/Comoro\",\"Africa/Nairobi|Indian/Mayotte\",\"America/Adak|America/Atka\",\"America/Adak|US/Aleutian\",\"America/Anchorage|America/Juneau\",\"America/Anchorage|America/Metlakatla\",\"America/Anchorage|America/Nome\",\"America/Anchorage|America/Sitka\",\"America/Anchorage|America/Yakutat\",\"America/Anchorage|US/Alaska\",\"America/Caracas|America/Boa_Vista\",\"America/Caracas|America/Campo_Grande\",\"America/Caracas|America/Cuiaba\",\"America/Caracas|America/Guyana\",\"America/Caracas|America/La_Paz\",\"America/Caracas|America/Manaus\",\"America/Caracas|America/Porto_Velho\",\"America/Caracas|Brazil/West\",\"America/Caracas|Etc/GMT+4\",\"America/Chicago|America/Indiana/Knox\",\"America/Chicago|America/Indiana/Tell_City\",\"America/Chicago|America/Knox_IN\",\"America/Chicago|America/Matamoros\",\"America/Chicago|America/Menominee\",\"America/Chicago|America/North_Dakota/Beulah\",\"America/Chicago|America/North_Dakota/Center\",\"America/Chicago|America/North_Dakota/New_Salem\",\"America/Chicago|America/Rainy_River\",\"America/Chicago|America/Rankin_Inlet\",\"America/Chicago|America/Resolute\",\"America/Chicago|America/Winnipeg\",\"America/Chicago|CST6CDT\",\"America/Chicago|Canada/Central\",\"America/Chicago|US/Central\",\"America/Chicago|US/Indiana-Starke\",\"America/Chihuahua|America/Mazatlan\",\"America/Chihuahua|Mexico/BajaSur\",\"America/Denver|America/Boise\",\"America/Denver|America/Cambridge_Bay\",\"America/Denver|America/Edmonton\",\"America/Denver|America/Inuvik\",\"America/Denver|America/Ojinaga\",\"America/Denver|America/Shiprock\",\"America/Denver|America/Yellowknife\",\"America/Denver|Canada/Mountain\",\"America/Denver|MST7MDT\",\"America/Denver|Navajo\",\"America/Denver|US/Mountain\",\"America/Halifax|America/Glace_Bay\",\"America/Halifax|America/Goose_Bay\",\"America/Halifax|America/Moncton\",\"America/Halifax|America/Thule\",\"America/Halifax|Atlantic/Bermuda\",\"America/Halifax|Canada/Atlantic\",\"America/Havana|Cuba\",\"America/Lima|America/Bogota\",\"America/Lima|America/Eirunepe\",\"America/Lima|America/Guayaquil\",\"America/Lima|America/Porto_Acre\",\"America/Lima|America/Rio_Branco\",\"America/Lima|Brazil/Acre\",\"America/Lima|Etc/GMT+5\",\"America/Los_Angeles|America/Dawson\",\"America/Los_Angeles|America/Ensenada\",\"America/Los_Angeles|America/Santa_Isabel\",\"America/Los_Angeles|America/Tijuana\",\"America/Los_Angeles|America/Vancouver\",\"America/Los_Angeles|America/Whitehorse\",\"America/Los_Angeles|Canada/Pacific\",\"America/Los_Angeles|Canada/Yukon\",\"America/Los_Angeles|Mexico/BajaNorte\",\"America/Los_Angeles|PST8PDT\",\"America/Los_Angeles|US/Pacific\",\"America/Los_Angeles|US/Pacific-New\",\"America/Managua|America/Belize\",\"America/Managua|America/Costa_Rica\",\"America/Managua|America/El_Salvador\",\"America/Managua|America/Guatemala\",\"America/Managua|America/Regina\",\"America/Managua|America/Swift_Current\",\"America/Managua|America/Tegucigalpa\",\"America/Managua|Canada/Saskatchewan\",\"America/Mexico_City|America/Bahia_Banderas\",\"America/Mexico_City|America/Merida\",\"America/Mexico_City|America/Monterrey\",\"America/Mexico_City|Mexico/General\",\"America/New_York|America/Detroit\",\"America/New_York|America/Fort_Wayne\",\"America/New_York|America/Grand_Turk\",\"America/New_York|America/Indiana/Indianapolis\",\"America/New_York|America/Indiana/Marengo\",\"America/New_York|America/Indiana/Petersburg\",\"America/New_York|America/Indiana/Vevay\",\"America/New_York|America/Indiana/Vincennes\",\"America/New_York|America/Indiana/Winamac\",\"America/New_York|America/Indianapolis\",\"America/New_York|America/Iqaluit\",\"America/New_York|America/Kentucky/Louisville\",\"America/New_York|America/Kentucky/Monticello\",\"America/New_York|America/Louisville\",\"America/New_York|America/Montreal\",\"America/New_York|America/Nassau\",\"America/New_York|America/Nipigon\",\"America/New_York|America/Pangnirtung\",\"America/New_York|America/Port-au-Prince\",\"America/New_York|America/Thunder_Bay\",\"America/New_York|America/Toronto\",\"America/New_York|Canada/Eastern\",\"America/New_York|EST5EDT\",\"America/New_York|US/East-Indiana\",\"America/New_York|US/Eastern\",\"America/New_York|US/Michigan\",\"America/Noronha|Atlantic/South_Georgia\",\"America/Noronha|Brazil/DeNoronha\",\"America/Noronha|Etc/GMT+2\",\"America/Panama|America/Atikokan\",\"America/Panama|America/Cancun\",\"America/Panama|America/Cayman\",\"America/Panama|America/Coral_Harbour\",\"America/Panama|America/Jamaica\",\"America/Panama|EST\",\"America/Panama|Jamaica\",\"America/Phoenix|America/Creston\",\"America/Phoenix|America/Dawson_Creek\",\"America/Phoenix|America/Fort_Nelson\",\"America/Phoenix|America/Hermosillo\",\"America/Phoenix|MST\",\"America/Phoenix|US/Arizona\",\"America/Santiago|Chile/Continental\",\"America/Santo_Domingo|America/Anguilla\",\"America/Santo_Domingo|America/Antigua\",\"America/Santo_Domingo|America/Aruba\",\"America/Santo_Domingo|America/Barbados\",\"America/Santo_Domingo|America/Blanc-Sablon\",\"America/Santo_Domingo|America/Curacao\",\"America/Santo_Domingo|America/Dominica\",\"America/Santo_Domingo|America/Grenada\",\"America/Santo_Domingo|America/Guadeloupe\",\"America/Santo_Domingo|America/Kralendijk\",\"America/Santo_Domingo|America/Lower_Princes\",\"America/Santo_Domingo|America/Marigot\",\"America/Santo_Domingo|America/Martinique\",\"America/Santo_Domingo|America/Montserrat\",\"America/Santo_Domingo|America/Port_of_Spain\",\"America/Santo_Domingo|America/Puerto_Rico\",\"America/Santo_Domingo|America/St_Barthelemy\",\"America/Santo_Domingo|America/St_Kitts\",\"America/Santo_Domingo|America/St_Lucia\",\"America/Santo_Domingo|America/St_Thomas\",\"America/Santo_Domingo|America/St_Vincent\",\"America/Santo_Domingo|America/Tortola\",\"America/Santo_Domingo|America/Virgin\",\"America/Sao_Paulo|America/Araguaina\",\"America/Sao_Paulo|America/Argentina/Buenos_Aires\",\"America/Sao_Paulo|America/Argentina/Catamarca\",\"America/Sao_Paulo|America/Argentina/ComodRivadavia\",\"America/Sao_Paulo|America/Argentina/Cordoba\",\"America/Sao_Paulo|America/Argentina/Jujuy\",\"America/Sao_Paulo|America/Argentina/La_Rioja\",\"America/Sao_Paulo|America/Argentina/Mendoza\",\"America/Sao_Paulo|America/Argentina/Rio_Gallegos\",\"America/Sao_Paulo|America/Argentina/Salta\",\"America/Sao_Paulo|America/Argentina/San_Juan\",\"America/Sao_Paulo|America/Argentina/San_Luis\",\"America/Sao_Paulo|America/Argentina/Tucuman\",\"America/Sao_Paulo|America/Argentina/Ushuaia\",\"America/Sao_Paulo|America/Bahia\",\"America/Sao_Paulo|America/Belem\",\"America/Sao_Paulo|America/Buenos_Aires\",\"America/Sao_Paulo|America/Catamarca\",\"America/Sao_Paulo|America/Cayenne\",\"America/Sao_Paulo|America/Cordoba\",\"America/Sao_Paulo|America/Fortaleza\",\"America/Sao_Paulo|America/Jujuy\",\"America/Sao_Paulo|America/Maceio\",\"America/Sao_Paulo|America/Mendoza\",\"America/Sao_Paulo|America/Montevideo\",\"America/Sao_Paulo|America/Paramaribo\",\"America/Sao_Paulo|America/Punta_Arenas\",\"America/Sao_Paulo|America/Recife\",\"America/Sao_Paulo|America/Rosario\",\"America/Sao_Paulo|America/Santarem\",\"America/Sao_Paulo|Antarctica/Palmer\",\"America/Sao_Paulo|Antarctica/Rothera\",\"America/Sao_Paulo|Atlantic/Stanley\",\"America/Sao_Paulo|Brazil/East\",\"America/Sao_Paulo|Etc/GMT+3\",\"America/St_Johns|Canada/Newfoundland\",\"Asia/Bangkok|Antarctica/Davis\",\"Asia/Bangkok|Asia/Barnaul\",\"Asia/Bangkok|Asia/Ho_Chi_Minh\",\"Asia/Bangkok|Asia/Hovd\",\"Asia/Bangkok|Asia/Krasnoyarsk\",\"Asia/Bangkok|Asia/Novokuznetsk\",\"Asia/Bangkok|Asia/Novosibirsk\",\"Asia/Bangkok|Asia/Phnom_Penh\",\"Asia/Bangkok|Asia/Saigon\",\"Asia/Bangkok|Asia/Tomsk\",\"Asia/Bangkok|Asia/Vientiane\",\"Asia/Bangkok|Etc/GMT-7\",\"Asia/Bangkok|Indian/Christmas\",\"Asia/Chita|Asia/Dili\",\"Asia/Chita|Asia/Khandyga\",\"Asia/Chita|Asia/Yakutsk\",\"Asia/Chita|Etc/GMT-9\",\"Asia/Chita|Pacific/Palau\",\"Asia/Dhaka|Antarctica/Vostok\",\"Asia/Dhaka|Asia/Almaty\",\"Asia/Dhaka|Asia/Bishkek\",\"Asia/Dhaka|Asia/Dacca\",\"Asia/Dhaka|Asia/Kashgar\",\"Asia/Dhaka|Asia/Omsk\",\"Asia/Dhaka|Asia/Qostanay\",\"Asia/Dhaka|Asia/Thimbu\",\"Asia/Dhaka|Asia/Thimphu\",\"Asia/Dhaka|Asia/Urumqi\",\"Asia/Dhaka|Etc/GMT-6\",\"Asia/Dhaka|Indian/Chagos\",\"Asia/Dubai|Asia/Baku\",\"Asia/Dubai|Asia/Muscat\",\"Asia/Dubai|Asia/Tbilisi\",\"Asia/Dubai|Asia/Yerevan\",\"Asia/Dubai|Etc/GMT-4\",\"Asia/Dubai|Europe/Astrakhan\",\"Asia/Dubai|Europe/Samara\",\"Asia/Dubai|Europe/Saratov\",\"Asia/Dubai|Europe/Ulyanovsk\",\"Asia/Dubai|Europe/Volgograd\",\"Asia/Dubai|Indian/Mahe\",\"Asia/Dubai|Indian/Mauritius\",\"Asia/Dubai|Indian/Reunion\",\"Asia/Gaza|Asia/Hebron\",\"Asia/Hong_Kong|Hongkong\",\"Asia/Jakarta|Asia/Pontianak\",\"Asia/Jerusalem|Asia/Tel_Aviv\",\"Asia/Jerusalem|Israel\",\"Asia/Kamchatka|Asia/Anadyr\",\"Asia/Kamchatka|Etc/GMT-12\",\"Asia/Kamchatka|Kwajalein\",\"Asia/Kamchatka|Pacific/Funafuti\",\"Asia/Kamchatka|Pacific/Kwajalein\",\"Asia/Kamchatka|Pacific/Majuro\",\"Asia/Kamchatka|Pacific/Nauru\",\"Asia/Kamchatka|Pacific/Tarawa\",\"Asia/Kamchatka|Pacific/Wake\",\"Asia/Kamchatka|Pacific/Wallis\",\"Asia/Kathmandu|Asia/Katmandu\",\"Asia/Kolkata|Asia/Calcutta\",\"Asia/Kuala_Lumpur|Antarctica/Casey\",\"Asia/Kuala_Lumpur|Asia/Brunei\",\"Asia/Kuala_Lumpur|Asia/Choibalsan\",\"Asia/Kuala_Lumpur|Asia/Irkutsk\",\"Asia/Kuala_Lumpur|Asia/Kuching\",\"Asia/Kuala_Lumpur|Asia/Singapore\",\"Asia/Kuala_Lumpur|Asia/Ulaanbaatar\",\"Asia/Kuala_Lumpur|Asia/Ulan_Bator\",\"Asia/Kuala_Lumpur|Etc/GMT-8\",\"Asia/Kuala_Lumpur|Singapore\",\"Asia/Makassar|Asia/Ujung_Pandang\",\"Asia/Rangoon|Asia/Yangon\",\"Asia/Rangoon|Indian/Cocos\",\"Asia/Sakhalin|Antarctica/Macquarie\",\"Asia/Sakhalin|Asia/Magadan\",\"Asia/Sakhalin|Asia/Srednekolymsk\",\"Asia/Sakhalin|Etc/GMT-11\",\"Asia/Sakhalin|Pacific/Bougainville\",\"Asia/Sakhalin|Pacific/Efate\",\"Asia/Sakhalin|Pacific/Guadalcanal\",\"Asia/Sakhalin|Pacific/Kosrae\",\"Asia/Sakhalin|Pacific/Noumea\",\"Asia/Sakhalin|Pacific/Pohnpei\",\"Asia/Sakhalin|Pacific/Ponape\",\"Asia/Seoul|Asia/Pyongyang\",\"Asia/Seoul|ROK\",\"Asia/Shanghai|Asia/Chongqing\",\"Asia/Shanghai|Asia/Chungking\",\"Asia/Shanghai|Asia/Harbin\",\"Asia/Shanghai|Asia/Macao\",\"Asia/Shanghai|Asia/Macau\",\"Asia/Shanghai|Asia/Taipei\",\"Asia/Shanghai|PRC\",\"Asia/Shanghai|ROC\",\"Asia/Tashkent|Antarctica/Mawson\",\"Asia/Tashkent|Asia/Aqtau\",\"Asia/Tashkent|Asia/Aqtobe\",\"Asia/Tashkent|Asia/Ashgabat\",\"Asia/Tashkent|Asia/Ashkhabad\",\"Asia/Tashkent|Asia/Atyrau\",\"Asia/Tashkent|Asia/Dushanbe\",\"Asia/Tashkent|Asia/Oral\",\"Asia/Tashkent|Asia/Qyzylorda\",\"Asia/Tashkent|Asia/Samarkand\",\"Asia/Tashkent|Asia/Yekaterinburg\",\"Asia/Tashkent|Etc/GMT-5\",\"Asia/Tashkent|Indian/Kerguelen\",\"Asia/Tashkent|Indian/Maldives\",\"Asia/Tehran|Iran\",\"Asia/Tokyo|Japan\",\"Asia/Vladivostok|Antarctica/DumontDUrville\",\"Asia/Vladivostok|Asia/Ust-Nera\",\"Asia/Vladivostok|Etc/GMT-10\",\"Asia/Vladivostok|Pacific/Chuuk\",\"Asia/Vladivostok|Pacific/Port_Moresby\",\"Asia/Vladivostok|Pacific/Truk\",\"Asia/Vladivostok|Pacific/Yap\",\"Atlantic/Azores|America/Scoresbysund\",\"Atlantic/Cape_Verde|Etc/GMT+1\",\"Australia/Adelaide|Australia/Broken_Hill\",\"Australia/Adelaide|Australia/South\",\"Australia/Adelaide|Australia/Yancowinna\",\"Australia/Brisbane|Australia/Lindeman\",\"Australia/Brisbane|Australia/Queensland\",\"Australia/Darwin|Australia/North\",\"Australia/Lord_Howe|Australia/LHI\",\"Australia/Perth|Australia/West\",\"Australia/Sydney|Australia/ACT\",\"Australia/Sydney|Australia/Canberra\",\"Australia/Sydney|Australia/Currie\",\"Australia/Sydney|Australia/Hobart\",\"Australia/Sydney|Australia/Melbourne\",\"Australia/Sydney|Australia/NSW\",\"Australia/Sydney|Australia/Tasmania\",\"Australia/Sydney|Australia/Victoria\",\"Etc/UTC|Etc/UCT\",\"Etc/UTC|Etc/Universal\",\"Etc/UTC|Etc/Zulu\",\"Etc/UTC|UCT\",\"Etc/UTC|UTC\",\"Etc/UTC|Universal\",\"Etc/UTC|Zulu\",\"Europe/Athens|Asia/Famagusta\",\"Europe/Athens|Asia/Nicosia\",\"Europe/Athens|EET\",\"Europe/Athens|Europe/Bucharest\",\"Europe/Athens|Europe/Helsinki\",\"Europe/Athens|Europe/Kiev\",\"Europe/Athens|Europe/Mariehamn\",\"Europe/Athens|Europe/Nicosia\",\"Europe/Athens|Europe/Riga\",\"Europe/Athens|Europe/Sofia\",\"Europe/Athens|Europe/Tallinn\",\"Europe/Athens|Europe/Uzhgorod\",\"Europe/Athens|Europe/Vilnius\",\"Europe/Athens|Europe/Zaporozhye\",\"Europe/Chisinau|Europe/Tiraspol\",\"Europe/Dublin|Eire\",\"Europe/Istanbul|Antarctica/Syowa\",\"Europe/Istanbul|Asia/Aden\",\"Europe/Istanbul|Asia/Baghdad\",\"Europe/Istanbul|Asia/Bahrain\",\"Europe/Istanbul|Asia/Istanbul\",\"Europe/Istanbul|Asia/Kuwait\",\"Europe/Istanbul|Asia/Qatar\",\"Europe/Istanbul|Asia/Riyadh\",\"Europe/Istanbul|Etc/GMT-3\",\"Europe/Istanbul|Europe/Kirov\",\"Europe/Istanbul|Europe/Minsk\",\"Europe/Istanbul|Turkey\",\"Europe/Lisbon|Atlantic/Canary\",\"Europe/Lisbon|Atlantic/Faeroe\",\"Europe/Lisbon|Atlantic/Faroe\",\"Europe/Lisbon|Atlantic/Madeira\",\"Europe/Lisbon|Portugal\",\"Europe/Lisbon|WET\",\"Europe/London|Europe/Belfast\",\"Europe/London|Europe/Guernsey\",\"Europe/London|Europe/Isle_of_Man\",\"Europe/London|Europe/Jersey\",\"Europe/London|GB\",\"Europe/London|GB-Eire\",\"Europe/Moscow|Europe/Simferopol\",\"Europe/Moscow|W-SU\",\"Europe/Paris|Africa/Ceuta\",\"Europe/Paris|Arctic/Longyearbyen\",\"Europe/Paris|Atlantic/Jan_Mayen\",\"Europe/Paris|CET\",\"Europe/Paris|Europe/Amsterdam\",\"Europe/Paris|Europe/Andorra\",\"Europe/Paris|Europe/Belgrade\",\"Europe/Paris|Europe/Berlin\",\"Europe/Paris|Europe/Bratislava\",\"Europe/Paris|Europe/Brussels\",\"Europe/Paris|Europe/Budapest\",\"Europe/Paris|Europe/Busingen\",\"Europe/Paris|Europe/Copenhagen\",\"Europe/Paris|Europe/Gibraltar\",\"Europe/Paris|Europe/Ljubljana\",\"Europe/Paris|Europe/Luxembourg\",\"Europe/Paris|Europe/Madrid\",\"Europe/Paris|Europe/Malta\",\"Europe/Paris|Europe/Monaco\",\"Europe/Paris|Europe/Oslo\",\"Europe/Paris|Europe/Podgorica\",\"Europe/Paris|Europe/Prague\",\"Europe/Paris|Europe/Rome\",\"Europe/Paris|Europe/San_Marino\",\"Europe/Paris|Europe/Sarajevo\",\"Europe/Paris|Europe/Skopje\",\"Europe/Paris|Europe/Stockholm\",\"Europe/Paris|Europe/Tirane\",\"Europe/Paris|Europe/Vaduz\",\"Europe/Paris|Europe/Vatican\",\"Europe/Paris|Europe/Vienna\",\"Europe/Paris|Europe/Warsaw\",\"Europe/Paris|Europe/Zagreb\",\"Europe/Paris|Europe/Zurich\",\"Europe/Paris|Poland\",\"Pacific/Auckland|Antarctica/McMurdo\",\"Pacific/Auckland|Antarctica/South_Pole\",\"Pacific/Auckland|NZ\",\"Pacific/Chatham|NZ-CHAT\",\"Pacific/Easter|Chile/EasterIsland\",\"Pacific/Galapagos|Etc/GMT+6\",\"Pacific/Gambier|Etc/GMT+9\",\"Pacific/Guam|Pacific/Saipan\",\"Pacific/Honolulu|HST\",\"Pacific/Honolulu|Pacific/Johnston\",\"Pacific/Honolulu|US/Hawaii\",\"Pacific/Kiritimati|Etc/GMT-14\",\"Pacific/Niue|Etc/GMT+11\",\"Pacific/Pago_Pago|Pacific/Midway\",\"Pacific/Pago_Pago|Pacific/Samoa\",\"Pacific/Pago_Pago|US/Samoa\",\"Pacific/Pitcairn|Etc/GMT+8\",\"Pacific/Tahiti|Etc/GMT+10\",\"Pacific/Tahiti|Pacific/Rarotonga\",\"Pacific/Tongatapu|Etc/GMT-13\",\"Pacific/Tongatapu|Pacific/Enderbury\",\"Pacific/Tongatapu|Pacific/Fakaofo\"]}"); /***/ }), /* 21 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _settings_translations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(0); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7); const acEditions = [ { name: "Algeria", value: "dz" }, { name: "Antigua", value: "ag" }, { name: "Argentina", value: "ar" }, { name: "Australia", value: "au" }, { name: "Austria", value: "at" }, { name: "Bahamas", value: "bs" }, { name: "Bahrain", value: "bh" }, { name: "Barbados", value: "bb" }, { name: "Belgium", value: "be" }, { name: "Bermuda", value: "bm" }, { name: "Canada", value: "ca" }, { name: "Cayman Islands", value: "ky" }, { name: "Chile", value: "cl" }, { name: "China", value: "cn" }, { name: "Colombia", value: "co" }, { name: "Costa Rica", value: "cr" }, { name: "Croatia", value: "hr" }, { name: "Czech Republic", value: "cz" }, { name: "Denmark", value: "dk" }, { name: "Dominican Republic", value: "do" }, { name: "Egypt", value: "eg" }, { name: "Finland", value: "fi" }, { name: "France", value: "fr" }, { name: "Germany", value: "de" }, { name: "Greece", value: "gr" }, { name: "Haiti", value: "ht" }, { name: "Hong Kong SAR, China", value: "hk" }, { name: "Hungary", value: "hu" }, { name: "India", value: "in" }, { name: "Indonesia", value: "id" }, { name: "Ireland", value: "ie" }, { name: "Israel", value: "il" }, { name: "Italy", value: "it" }, { name: "Jamaica", value: "jm" }, { name: "Japan", value: "jp" }, { name: "Jordan", value: "jo" }, { name: "Kuwait", value: "kw" }, { name: "Malaysia", value: "my" }, { name: "Mexico", value: "mx" }, { name: "Morocco", value: "ma" }, { name: "Mozambique", value: "mz" }, { name: "Netherlands", value: "nl" }, { name: "New Zealand", value: "nz" }, { name: "Nigeria", value: "ng" }, { name: "Norway", value: "no" }, { name: "Panama", value: "pa" }, { name: "Peru", value: "pe" }, { name: "Poland", value: "pl" }, { name: "Portugal", value: "pt" }, { name: "Qatar", value: "qa" }, { name: "Russia", value: "ru" }, { name: "Romania", value: "ro" }, { name: "Saudi Arabia", value: "sa" }, { name: "Singapore", value: "sg" }, { name: "South Africa", value: "za" }, { name: "South Korea", value: "kr" }, { name: "Spain", value: "es" }, { name: "St. Lucia", value: "lc" }, { name: "Sweden", value: "se" }, { name: "Switzerland", value: "ch" }, { name: "Taiwan, China", value: "tw" }, { name: "Thailand", value: "th" }, { name: "Trinidad & Tobago", value: "tt" }, { name: "Turkey", value: "tr" }, { name: "Turks and Caicos Island", value: "tc" }, { name: "Ukraine", value: "ua" }, { name: "United Arab Emirates", value: "ae" }, { name: "United Kingdom", value: "gb" }, { name: "United States", value: "us" }, { name: "Venezuela", value: "ve" }, { name: "Vietnam", value: "vn" } ]; function printAC() { var createUrl = function(edition) { var acUrl = "https://book.aircanada.com/pl/AConline/en/RedirectionServlet?FareRequest=YES&PRICING_MODE=0&fromThirdParty=YES"; acUrl += "&country=" + edition + "&countryOfResidence=" + edition + (_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].itaLanguage == "de" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de" ? "&language=de" : "&language=en"); // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child var pax = Object(___WEBPACK_IMPORTED_MODULE_4__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 16, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAC"); return; } var paxConfig = { allowinf: 0, youthage: 12 }; // AC does not allow booking of infants for int. flights var amadeusConfig = { sepcabin: 1, detailed: 1, allowpremium: 1 }; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusPax */ "a"])(pax, paxConfig); acUrl += tmpPax.url; acUrl += "&numberOfAdults=" + tmpPax.adults; acUrl += "&numberOfInfants=" + tmpPax.infants; acUrl += "&numberOfYouth=" + tmpPax.youth; acUrl += "&numberOfChildren=" + tmpPax.children; acUrl += "&tripType=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusTriptype */ "b"])(); for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin.length; i++) { acUrl += "&departure" + (i + 1) + "=" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.day).slice(-2) + "/" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.year + "&org" + (i + 1) + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].orig + "&dest" + (i + 1) + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dest; } acUrl += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusUrl */ "c"])(amadeusConfig); return acUrl; }; var acUrl = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].acEdition.toUpperCase()); if (!acUrl) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += acEditions .map(function(edition, i) { return ( '<a href="' + createUrl(edition.value.toUpperCase()) + '" target="_blank">' + edition.name + "</a>" ); }) .join("<br/>"); extra += '<br/><a href="javascript:addACPromo();">Add Promo Code</a>'; extra += "</span></span>"; extra += addACPromoControls(acUrl); return { url: acUrl, title: "Air Canada", extra }; } function addACPromoControls(url) { var script = document.createElement("script"); script.appendChild(document.createTextNode("(" + addACPromo + ")();")); (document.body || document.head || document.documentElement).appendChild( script ); var label = "Open"; if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language] !== undefined) { if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language]["open"] !== undefined) { label = _settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language]["open"]; } } var extra = '<input type="input" id="ac-promo-input" size="8" style="display:none;margin:0 5px;"></input>'; extra += '<label style="font-size:' + Number(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].linkFontsize) + '%;">'; extra += '<a id="ac-promo-link" style="display:none" target="_blank" href="' + url + '">' + label + "</a></label>"; return extra; } function addACPromo() { window.addACPromo = function() { var input = document.getElementById("ac-promo-input"); input.style.display = "inline"; input.addEventListener("change", event => { var replacement = event.target.value != "" ? "&AUTHORIZATION_ID=" + event.target.value : ""; var link = document.getElementById("ac-promo-link"); var match = link.href.match(/(&AUTHORIZATION_ID=.*)/g); if (match == null) { link.href += replacement; } else { link.href = link.href.replace(match, replacement); } }); var link = document.getElementById("ac-promo-link"); link.style.display = "inline"; }; } Object(___WEBPACK_IMPORTED_MODULE_4__["register"])("airlines", printAC); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Air Canada", "acEdition", acEditions, "us"); /***/ }), /* 22 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const afEditions = [ { value: "DE/de", name: "Germany / Deutsch" }, { value: "DE/en", name: "Germany / English" }, { value: "FR/en", name: "France / English" }, { value: "FI/en", name: "Finland / English" }, { value: "FR/fr", name: "France / French" }, { value: "NL/en", name: "Netherlands / English" }, { value: "GB/en", name: "United Kingdom / English" }, { value: "US/en", name: "US / English" } ]; function printAF() { var createUrl = function(edition) { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].showAllAirlines && !( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin && _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[1].orig ) ) { return; } var cabins = ["Y", "W", "C", "F"]; var mincabin = 3; var afUrl = "https://www.airfrance.com/" + edition + "/local/process/standardbooking/DisplayUpsellAction.do?calendarSearch=1&subCabin=MCHER&typeTrip=2"; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { if (i == 0) { afUrl += "&from=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig; afUrl += "&to=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest; afUrl += "&outboundDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); afUrl += "&firstOutboundHour=" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.time).slice(-5); let flights = ""; for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { if (j > 0) flights += "|"; flights += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + ("000" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr).slice(-4); } afUrl += "&flightOutbound=" + flights; } else if (i == 1) { afUrl += "&inboundDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); afUrl += "&firstInboundHour=" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.time).slice(-5); let flights = ""; for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { if (j > 0) flights += "|"; flights += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + ("000" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr).slice(-4); if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } } afUrl += "&flightInbound=" + flights; } } afUrl += "&cabin=" + cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()]; var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 18, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAF"); return; } var tmpPax = { c: 0, y: 0 }; for (i = 0; i < pax.children.length; i++) { if (pax.children[i] > 11) { tmpPax.y++; } else { tmpPax.c++; } } var curPax = 0; afUrl += "&nbAdults=" + pax.adults; for (i = 0; i < pax.adults; i++) { afUrl += "&paxTypoList=ADT"; curPax++; } afUrl += "&nbEnfants=" + tmpPax.y; for (i = 0; i < tmpPax.y; i++) { afUrl += "&paxTypoList=YTH_MIN"; curPax++; } afUrl += "&nbChildren=" + tmpPax.c; for (i = 0; i < tmpPax.y; i++) { afUrl += "&paxTypoList=CHD"; curPax++; } afUrl += "&nbBebes=" + pax.infLap; for (i = 0; i < pax.infLap; i++) { afUrl += "&paxTypoList=INF"; curPax++; } afUrl += "&nbPassenger=" + curPax + "&nbPax=" + curPax; return afUrl; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].afEdition; var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += afEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Air France", extra }; } Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printAF); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Air France", "afEdition", afEditions, "US/en"); /***/ }), /* 23 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); function printAS() { if (!Object(___WEBPACK_IMPORTED_MODULE_1__["anyCarriers"])("AS")) { return; } // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child var createUrl = function() { var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 6, countInf: true, childAsAdult: 6, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAS"); return; } var url = "https://www.alaskaair.com/planbook/shoppingstart?"; url += "A=" + pax.adults + "&C=" + pax.children.length + "&FT="; if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 1) { url += "ow"; } else { url += "rt"; } var k = 0; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var itinseg = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].orig + "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dest; itinseg += "|" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "/" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); itinseg += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.year; itinseg += "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].fnr + "|"; itinseg += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].cabin ? "f" : "c"; url += "&F" + ++k + "=" + encodeURIComponent(itinseg); } } url += "&DEST=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].seg[_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].seg.length - 1].dest; url += "&FARE=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].price + "&frm=cart&META=GOO_CS"; return url; }; var url = createUrl(); if (!url) { return; } return { url, title: "Alaska" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("airlines", printAS); /***/ }), /* 24 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const azEditions = [ { value: "de_de", name: "Germany / Deutsch" }, { value: "at_de", name: "Austria / Deutsch" }, { value: "ch_de", name: "Switzerland / Deutsch" }, { value: "fr_fr", name: "France / French" }, { value: "nl_nl", name: "Netherlands / Dutch" }, { value: "it_it", name: "Italy / Italian" }, { value: "ca_en", name: "Canada / Englisch" }, { value: "us_en", name: "US / Englisch" }, { value: "gb_en", name: "GB / Englisch" }, { value: "en_en", name: "International / Englisch" } ]; function printAZ() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("AZ")) { return; } var createUrl = function(edition) { var azUrl = "https://www.alitalia.com/" + edition + "/home-page.metasearch.json?SearchType=BrandMetasearch"; var cabins = ["Economy", "Economy", "Business", "First"]; var seg = 0; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { azUrl += "&MetaSearchDestinations[" + seg + "].From=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; azUrl += "&MetaSearchDestinations[" + seg + "].To=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest; azUrl += "&MetaSearchDestinations[" + seg + "].DepartureDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + ":" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time).slice(-5); azUrl += "&MetaSearchDestinations[" + seg + "].ArrivalDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.day).slice(-2) + ":" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.time).slice(-5); azUrl += "&MetaSearchDestinations[" + seg + "].Flight=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr; azUrl += "&MetaSearchDestinations[" + seg + "].code=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].farebase; azUrl += "&MetaSearchDestinations[" + seg + "].MseType="; azUrl += "&MetaSearchDestinations[" + seg + "].bookingClass=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; azUrl += "&MetaSearchDestinations[" + seg + "].cabinClass=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin]; azUrl += "&MetaSearchDestinations[" + seg + "].slices=" + i; seg++; } } var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 7, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printAZ"); return false; } azUrl += "&children_number=" + pax.children.length + "&newborn_number=" + pax.infLap + "&adult_number=" + pax.adults; return azUrl; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].azEdition; var azUrl = createUrl(edition); if (!azUrl) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += azEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url: azUrl, title: "Alitalia", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printAZ); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Alitalia", "azEdition", azEditions, "us_en"); /***/ }), /* 25 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const baEditions = [ { value: "AF", name: "Afghanistan" }, { value: "AL", name: "Albania" }, { value: "DZ", name: "Algeria" }, { value: "AS", name: "American Samoa" }, { value: "AD", name: "Andorra" }, { value: "AO", name: "Angola" }, { value: "AI", name: "Anguilla" }, { value: "AG", name: "Antigua" }, { value: "AR", name: "Argentina" }, { value: "AM", name: "Armenia" }, { value: "AW", name: "Aruba" }, { value: "AU", name: "Australia" }, { value: "AT", name: "Austria" }, { value: "AZ", name: "Azerbaijan" }, { value: "BS", name: "Bahamas" }, { value: "BH", name: "Bahrain" }, { value: "BD", name: "Bangladesh" }, { value: "BB", name: "Barbados" }, { value: "BY", name: "Belarus" }, { value: "BE", name: "Belgium" }, { value: "BZ", name: "Belize" }, { value: "BJ", name: "Benin Republic" }, { value: "BM", name: "Bermuda" }, { value: "BT", name: "Bhutan" }, { value: "BO", name: "Bolivia" }, { value: "BA", name: "Bosnia-Herzegovina" }, { value: "BW", name: "Botswana" }, { value: "BR", name: "Brazil" }, { value: "VG", name: "British Virgin Islands" }, { value: "BN", name: "Brunei" }, { value: "BG", name: "Bulgaria" }, { value: "BF", name: "Burkina Faso" }, { value: "BI", name: "Burundi" }, { value: "KH", name: "Cambodia" }, { value: "CA", name: "Canada" }, { value: "CV", name: "Cape Verde" }, { value: "KY", name: "Cayman Islands" }, { value: "CF", name: "Central African Rep" }, { value: "TD", name: "Chad" }, { value: "CL", name: "Chile" }, { value: "CN", name: "China" }, { value: "CX", name: "Christmas Island" }, { value: "CC", name: "Cocos Islands" }, { value: "CO", name: "Colombia" }, { value: "CG", name: "Congo" }, { value: "CK", name: "Cook Islands" }, { value: "CR", name: "Costa Rica" }, { value: "HR", name: "Croatia" }, { value: "CU", name: "Cuba" }, { value: "CY", name: "Cyprus" }, { value: "CZ", name: "Czech Republic" }, { value: "DK", name: "Denmark" }, { value: "DJ", name: "Djibouti" }, { value: "DM", name: "Dominica" }, { value: "DO", name: "Dominican Rep" }, { value: "EC", name: "Ecuador" }, { value: "EG", name: "Egypt" }, { value: "SV", name: "El Salvador" }, { value: "GQ", name: "Equatorial Guinea" }, { value: "ER", name: "Eritrea" }, { value: "EE", name: "Estonia" }, { value: "ET", name: "Ethiopia" }, { value: "FO", name: "Faeroe Is" }, { value: "FK", name: "Falkland Is" }, { value: "FJ", name: "Fiji" }, { value: "FI", name: "Finland" }, { value: "FR", name: "France" }, { value: "GF", name: "French Guyana" }, { value: "PF", name: "French Polynesia" }, { value: "GA", name: "Gabon" }, { value: "GM", name: "Gambia" }, { value: "GE", name: "Georgia" }, { value: "DE", name: "Germany" }, { value: "GH", name: "Ghana" }, { value: "GI", name: "Gibraltar (UK)" }, { value: "GR", name: "Greece" }, { value: "GL", name: "Greenland" }, { value: "GD", name: "Grenada" }, { value: "GP", name: "Guadeloupe" }, { value: "GU", name: "Guam" }, { value: "GT", name: "Guatemala" }, { value: "GN", name: "Guinea" }, { value: "GW", name: "Guinea Bissau" }, { value: "GY", name: "Guyana" }, { value: "HT", name: "Haiti" }, { value: "HN", name: "Honduras" }, { value: "HK", name: "Hong Kong" }, { value: "HU", name: "Hungary" }, { value: "IS", name: "Iceland" }, { value: "IN", name: "India" }, { value: "ID", name: "Indonesia" }, { value: "IR", name: "Iran" }, { value: "IQ", name: "Iraq" }, { value: "IE", name: "Ireland" }, { value: "IL", name: "Israel" }, { value: "IT", name: "Italy" }, { value: "CI", name: "Ivory Coast" }, { value: "JM", name: "Jamaica" }, { value: "JP", name: "Japan" }, { value: "JO", name: "Jordan" }, { value: "KZ", name: "Kazakhstan" }, { value: "KE", name: "Kenya" }, { value: "KI", name: "Kiribati" }, { value: "XK", name: "Kosovo" }, { value: "KW", name: "Kuwait" }, { value: "KG", name: "Kyrgyzstan" }, { value: "LA", name: "Laos" }, { value: "LV", name: "Latvia" }, { value: "LB", name: "Lebanon" }, { value: "LS", name: "Lesotho" }, { value: "LR", name: "Liberia" }, { value: "LY", name: "Libya" }, { value: "LI", name: "Liechtenstein" }, { value: "LT", name: "Lithuania" }, { value: "LU", name: "Luxembourg" }, { value: "MO", name: "Macau" }, { value: "MK", name: "Macedonia" }, { value: "MG", name: "Madagascar" }, { value: "MW", name: "Malawi" }, { value: "MY", name: "Malaysia" }, { value: "MV", name: "Maldives" }, { value: "ML", name: "Mali" }, { value: "MT", name: "Malta" }, { value: "MP", name: "Mariana Islands" }, { value: "MH", name: "Marshall Islands" }, { value: "MQ", name: "Martinique" }, { value: "MR", name: "Mauritania" }, { value: "MU", name: "Mauritius" }, { value: "MX", name: "Mexico" }, { value: "FM", name: "Micronesia" }, { value: "UM", name: "Minor Island" }, { value: "MD", name: "Moldova" }, { value: "MC", name: "Monaco" }, { value: "ME", name: "Montenegro" }, { value: "MS", name: "Montserrat" }, { value: "MA", name: "Morocco" }, { value: "MZ", name: "Mozambique" }, { value: "MM", name: "Myanmar" }, { value: "NA", name: "Namibia" }, { value: "NR", name: "Nauru" }, { value: "NP", name: "Nepal" }, { value: "AN", name: "Netherland Antilles" }, { value: "NL", name: "Netherlands" }, { value: "NC", name: "New Caledonia" }, { value: "NZ", name: "New Zealand" }, { value: "NI", name: "Nicaragua" }, { value: "NE", name: "Niger" }, { value: "NG", name: "Nigeria" }, { value: "NU", name: "Niue" }, { value: "NF", name: "Norfolk Island" }, { value: "NO", name: "Norway" }, { value: "OM", name: "Oman" }, { value: "PK", name: "Pakistan" }, { value: "PA", name: "Panama" }, { value: "PG", name: "Papua New Guinea" }, { value: "PY", name: "Paraguay" }, { value: "KP", name: "Peoples Rep Korea" }, { value: "PE", name: "Peru" }, { value: "PH", name: "Philippines" }, { value: "PL", name: "Poland" }, { value: "PT", name: "Portugal" }, { value: "PR", name: "Puerto Rico" }, { value: "QA", name: "Qatar" }, { value: "CM", name: "Republic Cameroon" }, { value: "RE", name: "Reunion" }, { value: "RO", name: "Romania" }, { value: "RU", name: "Russia" }, { value: "RW", name: "Rwanda" }, { value: "SM", name: "San Marino" }, { value: "SA", name: "Saudi Arabia" }, { value: "SN", name: "Senegal" }, { value: "RS", name: "Serbia" }, { value: "SC", name: "Seychelles" }, { value: "SL", name: "Sierra Leone" }, { value: "SG", name: "Singapore" }, { value: "SK", name: "Slovakia" }, { value: "SI", name: "Slovenia" }, { value: "SB", name: "Solomon Island" }, { value: "SO", name: "Somalia" }, { value: "ZA", name: "South Africa" }, { value: "KR", name: "South Korea" }, { value: "ES", name: "Spain" }, { value: "LK", name: "Sri Lanka" }, { value: "KN", name: "St Kitts and Nevis" }, { value: "LC", name: "St Lucia" }, { value: "VC", name: "St Vincent" }, { value: "SD", name: "Sudan" }, { value: "SR", name: "Suriname" }, { value: "SZ", name: "Swaziland" }, { value: "SE", name: "Sweden" }, { value: "CH", name: "Switzerland" }, { value: "SY", name: "Syria" }, { value: "TW", name: "Taiwan" }, { value: "TJ", name: "Tajikistan" }, { value: "TZ", name: "Tanzania" }, { value: "TH", name: "Thailand" }, { value: "TL", name: "Timor - Leste" }, { value: "TG", name: "Togo" }, { value: "TO", name: "Tonga" }, { value: "TT", name: "Trinidad and Tobago" }, { value: "TN", name: "Tunisia" }, { value: "TR", name: "Turkey" }, { value: "TM", name: "Turkmenistan" }, { value: "TC", name: "Turks Caicos" }, { value: "TV", name: "Tuvalu" }, { value: "VI", name: "US Virgin Islands" }, { value: "US", name: "USA" }, { value: "UG", name: "Uganda" }, { value: "UA", name: "Ukraine" }, { value: "AE", name: "United Arab Emirates" }, { value: "GB", name: "United Kingdom" }, { value: "UY", name: "Uruguay" }, { value: "UZ", name: "Uzbekistan" }, { value: "VU", name: "Vanuatu" }, { value: "VE", name: "Venezuela" }, { value: "VN", name: "Vietnam" }, { value: "WS", name: "Western Samoa" }, { value: "YE", name: "Yemen Republic" }, { value: "ZM", name: "Zambia" }, { value: "ZW", name: "Zimbabwe" } ]; function printBA() { if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("IB", "BA")) { return; } var createUrl = function(edition, language) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["M", "W", "C", "F"]; var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 16, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printBA"); return false; } var tmpPax = { c: 0, y: 0 }; for (i = 0; i < pax.children.length; i++) { if (pax.children[i] > 11) { tmpPax.y++; } else { tmpPax.c++; } } var url = "https://www.britishairways.com/travel/fx/public/" + language + "_" + edition + "?eId=111054&data=F" + pax.adults + tmpPax.y + tmpPax.c + pax.infLap + "LF"; var mincabin = 3; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - fnr has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")).slice( -4 ); url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + ("000" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr).slice(-4); url += cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin]; url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].dest; if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length == 2 && i == 1) { url += "F"; } else { url += "T"; } if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } j += k; } } url += "&p=EUR6666.66&e=SL&c=" + cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()] + "&source=FareQuoteEmail&isEmailHBOFareQuote=false"; return url; }; // get edition var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baEdition, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baLanguage); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += baEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baLanguage) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "British Airways", extra }; } Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printBA); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("British Airways", "baEdition", baEditions, "US"); /***/ }), /* 26 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7); const czEditions = [ { value: "AR-GB", name: "Argentina / English" }, { value: "AU-GB", name: "Australia / English" }, { value: "AZ-GB", name: "Azerbaijan / English" }, { value: "BD-GB", name: "Bangladesh / English" }, { value: "BE-GB", name: "Belgium / English" }, { value: "BR-GB", name: "Brazil / English" }, { value: "KH-GB", name: "Cambodia / English" }, { value: "CA-GB", name: "Canada / English" }, { value: "CA-FR", name: "Canada / French" }, { value: "CN-GB", name: "China / English" }, { value: "DK-GB", name: "Denmark / English" }, { value: "FI-GB", name: "Finland / English" }, { value: "FR-GB", name: "France / English" }, { value: "FR-FR", name: "France / French" }, { value: "GE-GB", name: "Georgia / English" }, { value: "DE-GB", name: "Germany / English" }, { value: "DE-DE", name: "Germany / German" }, { value: "GR-GB", name: "Greece / English" }, { value: "HK-GB", name: "Hong Kong / English" }, { value: "IN-GB", name: "India / English" }, { value: "ID-GB", name: "Indonesia / English" }, { value: "IR-GB", name: "Iran / English" }, { value: "IE-GB", name: "Ireland / English" }, { value: "IT-GB", name: "Italy / English" }, { value: "JP-GB", name: "Japan / English" }, { value: "JO-GB", name: "Jordan / English" }, { value: "KZ-GB", name: "Kazakhstan / English" }, { value: "KE-GB", name: "Kenya / English" }, { value: "KG-GB", name: "Kyrgyzstan / English" }, { value: "MY-GB", name: "Malaysia / English" }, { value: "MV-GB", name: "Maldives / English" }, { value: "MO-GB", name: "Macau / English" }, { value: "MM-GB", name: "Myanmar / English" }, { value: "NP-GB", name: "Nepal / English" }, { value: "NL-GB", name: "Netherlands / English" }, { value: "NZ-GB", name: "New Zealand / English" }, { value: "NO-GB", name: "Norway / English" }, { value: "PK-GB", name: "Pakistan / English" }, { value: "PA-GB", name: "Panama / English" }, { value: "PE-GB", name: "Peru / English" }, { value: "PH-GB", name: "Philippines / English" }, { value: "PT-GB", name: "Portugal / English" }, { value: "RU-GB", name: "Russia / English" }, { value: "SA-GB", name: "Saudi Arabia / English" }, { value: "SG-GB", name: "Singapore / English" }, { value: "ZA-GB", name: "South Africa / English" }, { value: "KR-GB", name: "South Korea / English" }, { value: "ES-GB", name: "Spain / English" }, { value: "SE-GB", name: "Sweden / English" }, { value: "CH-GB", name: "Switzerland / English" }, { value: "TW-GB", name: "Taiwan / English" }, { value: "TJ-GB", name: "Tajikistan / English" }, { value: "TZ-GB", name: "Tanzania / English" }, { value: "TH-GB", name: "Thailand / English" }, { value: "TR-GB", name: "Turkey / English" }, { value: "TM-GB", name: "Turkmenistan / English" }, { value: "UA-GB", name: "Ukraine / English" }, { value: "GB-GB", name: "United Kingdom / English" }, { value: "AE-GB", name: "United Arab Emirates / English" }, { value: "UG-GB", name: "Uganda / English" }, { value: "US-GB", name: "United States / English" }, { value: "UZ-GB", name: "Uzbekistan / English" }, { value: "VE-GB", name: "Venezuela / English" }, { value: "VN-GB", name: "Vietnam / English" } ]; function printCZ() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("CZ")) { return; } var createUrl = function(edition) { var paxConfig = { allowinf: 1, youthage: 0 }; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printCZ"); return; } var amadeusConfig = { sepcabin: 0, detailed: 0, allowpremium: 0, inctimes: 0 }; var url = "http://global.csair.com/CZPortal/dyn/portal/doEnc?SITE=J00YJ00Y&BOOKING_FLOW=REVENUE&IS_FLEXIBLE=FALSE&LANGUAGE=" + edition[1] + "&PRICING_TYPE=O&COUNTRY_SITE=" + edition[0] + "&DISPLAY_TYPE=1"; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusPax */ "a"])(pax, paxConfig); url += tmpPax.url; url += "&NB_ADT=" + tmpPax.adults; url += "&NB_INF=" + tmpPax.infants; url += "&NB_CHD=" + tmpPax.children; url += "&TRIP_TYPE=M"; url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusUrl */ "c"])(amadeusConfig); return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].czEdition.split("-"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error:Invalid CZ-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += czEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("-")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "China Southern", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printCZ); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("China Southern", "czEdition", czEditions, "US-GB"); /***/ }), /* 27 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const dlEditions = [ { value: "de_de", name: "Germany" }, { value: "www_us", name: "US" } ]; function printDL() { /* Steppo: What about farebasis? * What about segmentskipping? */ var createUrl = function(edition) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First // Defaults for cabin identifiers for DL pricing engine; exceptions handled later var cabins = ["MAIN", "DPPS", "BU", "FIRST"]; var mincabin = 3; var farebases = new Array(); var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printDL"); return; } var deltaURL = "http://" + edition[0] + ".delta.com/air-shopping/priceTripAction.action?ftw_reroute=true&tripType=multiCity"; deltaURL += "¤cyCd=" + (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].cur == "EUR" ? "EUR" : "USD"); deltaURL += "&exitCountry=" + edition[1]; var segcounter = 0; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg deltaURL += "&itinSegment[" + segcounter.toString() + "]=" + i.toString() + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; deltaURL += ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr; deltaURL += ":" + Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* monthnumberToName */ "f"])(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.month) + ":" + (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day < 10 ? "0" : "") + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ":0"; farebases.push(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].farebase); if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } // Exceptions to cabin identifiers for pricing switch (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass) { // Basic Economy fares case "E": cabins[0] = "BASIC-ECONOMY"; break; // Comfort+ fares case "W": cabins[1] = "DCP"; break; default: } segcounter++; } } deltaURL += "&cabin=" + cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()]; deltaURL += "&fareBasis=" + farebases.join(":"); //deltaURL += "&price=0"; deltaURL += "&numOfSegments=" + segcounter.toString() + "&paxCount=" + (pax.adults + pax.children.length + pax.infLap); deltaURL += "&vendorRedirectFlag=true&vendorID=Google"; return deltaURL; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].dlEdition.split("_"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error:Invalid Delta-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += dlEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("_")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Delta", extra }; } Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printDL); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Delta", "dlEdition", dlEditions, "www_us"); /***/ }), /* 28 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4); const cabins = ["0", "0", "1", "2"]; const editions = [ { name: "Arabic (AE)", value: "/ae/arabic" }, { name: "Arabic (BH)", value: "/bh/arabic" }, { name: "Arabic (DZ)", value: "/dz/arabic" }, { name: "Arabic (EG)", value: "/eg/arabic" }, { name: "Arabic (IQ)", value: "/iq/arabic" }, { name: "Arabic (JO)", value: "/jo/arabic" }, { name: "Arabic (KW)", value: "/kw/arabic" }, { name: "Arabic (LB)", value: "/lb/arabic" }, { name: "Arabic (LY)", value: "/ly/arabic" }, { name: "Arabic (MA)", value: "/ma/arabic" }, { name: "Arabic (OM)", value: "/om/arabic" }, { name: "Arabic (QA)", value: "/qa/arabic" }, { name: "Arabic (SA)", value: "/sa/arabic" }, { name: "Arabic (SD)", value: "/sd/arabic" }, { name: "Arabic (SY)", value: "/sy/arabic" }, { name: "Arabic (YE)", value: "/ye/arabic" }, { name: "Chinese (CN)", value: "/cn/chinese" }, { name: "Chinese (HK)", value: "/hk/chinese" }, { name: "Chinese (TW)", value: "/tw/chinese" }, { name: "Czech (CZ)", value: "/cz/czech" }, { name: "Danish (DK)", value: "/dk/danish" }, { name: "Dutch (BE)", value: "/be/dutch" }, { name: "Dutch (NL)", value: "/nl/dutch" }, { name: "English (AF)", value: "/af/english" }, { name: "English (AU)", value: "/au/english" }, { name: "English (BD)", value: "/bd/english" }, { name: "English (BG)", value: "/bg/english" }, { name: "English (EE)", value: "/ee/english" }, { name: "English (ET)", value: "/et/english" }, { name: "English (FI)", value: "/fi/english" }, { name: "English (GH)", value: "/gh/english" }, { name: "English (Global)", value: "/global/english" }, { name: "English (HR)", value: "/hr/english" }, { name: "English (IE)", value: "/ie/english" }, { name: "English (IN)", value: "/in/english" }, { name: "English (IR)", value: "/ir/english" }, { name: "English (IS)", value: "/is/english" }, { name: "English (KE)", value: "/ke/english" }, { name: "English (KH)", value: "/kh/english" }, { name: "English (LK)", value: "/lk/english" }, { name: "English (LT)", value: "/lt/english" }, { name: "English (LV)", value: "/lv/english" }, { name: "English (MM)", value: "/mm/english" }, { name: "English (MT)", value: "/mt/english" }, { name: "English (MU)", value: "/mu/english" }, { name: "English (MV)", value: "/mv/english" }, { name: "English (MY)", value: "/my/english" }, { name: "English (NG)", value: "/ng/english" }, { name: "English (NZ)", value: "/nz/english" }, { name: "English (PH)", value: "/ph/english" }, { name: "English (PK)", value: "/pk/english" }, { name: "English (RO)", value: "/ro/english" }, { name: "English (SC)", value: "/sc/english" }, { name: "English (SG)", value: "/sg/english" }, { name: "English (TZ)", value: "/tz/english" }, { name: "English (UG)", value: "/ug/english" }, { name: "English (UK)", value: "/uk/english" }, { name: "English (US)", value: "/us/english" }, { name: "English (ZA)", value: "/za/english" }, { name: "English (ZM)", value: "/zm/english" }, { name: "English (ZW)", value: "/zw/english" }, { name: "French (CA)", value: "/ca/french" }, { name: "French (CI)", value: "/ci/french" }, { name: "French (FR)", value: "/fr/french" }, { name: "French (GN)", value: "/gn/french" }, { name: "French (SN)", value: "/sn/french" }, { name: "French (TN)", value: "/tn/french" }, { name: "German (AT)", value: "/at/german" }, { name: "German (DE)", value: "/de/german" }, { name: "Greek (CY)", value: "/cy/greek" }, { name: "Greek (GR)", value: "/gr/greek" }, { name: "Hungarian (HU)", value: "/hu/hungarian" }, { name: "Indonesian (ID)", value: "/id/indonesian" }, { name: "Italian (CH)", value: "/ch/italian" }, { name: "Italian (IT)", value: "/it/italian" }, { name: "Japanese (JP)", value: "/jp/japanese" }, { name: "Korean (KR)", value: "/kr/korean" }, { name: "Norwegian (NO)", value: "/no/norwegian" }, { name: "Polish (PL)", value: "/pl/polish" }, { name: "Portuguese (AO)", value: "/ao/portuguese" }, { name: "Portuguese (BR)", value: "/br/portuguese" }, { name: "Portuguese (PT)", value: "/pt/portuguese" }, { name: "Russian (RU)", value: "/ru/russian" }, { name: "Russian (UA)", value: "/ua/russian" }, { name: "Spanish (AR)", value: "/ar/spanish" }, { name: "Spanish (CL)", value: "/cl/spanish" }, { name: "Spanish (CO)", value: "/co/spanish" }, { name: "Spanish (EC)", value: "/ec/spanish" }, { name: "Spanish (ES)", value: "/es/spanish" }, { name: "Spanish (MX)", value: "/mx/spanish" }, { name: "Spanish (PA)", value: "/pa/spanish" }, { name: "Spanish (PE)", value: "/pe/spanish" }, { name: "Spanish (UY)", value: "/uy/spanish" }, { name: "Swedish (SE)", value: "/se/swedish" }, { name: "Thai (TH)", value: "/th/thai" }, { name: "Turkish (TR)", value: "/tr/turkish" }, { name: "Vietnamese (VN)", value: "/vn/vietnamese" } ]; function print() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("EK")) { return; } const pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printEK"); return; } let desc = ""; const createUrl = function(edition) { let url = `https://www.emirates.com/sessionhandler.aspx?pageurl=/IBE.aspx&pub=${edition}&j=f§ion=IBE&j=t&seldcity1=${ _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig }&selacity1=${_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest}&selddate1=${formatDate( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dep )}&seladults=${pax.adults}&selofw=0&selteenager=0&selchildren=${ pax.children.length }&selinfants=${pax.infLap}&selcabinclass=${ cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_4__[/* getCabin */ "b"])(Math.max(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))] }&selcabinclass1=${ cabins[ Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_4__[/* getCabin */ "b"])(Math.max(..._parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].seg.map(seg => seg.cabin))) ] }&showsearch=false&showTeenager=false&showOFW=false&chkFlexibleDates=false&resultby=0&multiCity=`; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { url += `&seladate1=&TID=OW`; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig ) { url += `&seladate1=${formatDate(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dep)}&TID=SB`; } else { // open-jaw and multi-city for mobile only (TID=AS) url = `https://mobile.emirates.com${edition}/CAB/IBE/searchResults.xhtml?cugoDisabledCabinClass=true&flexiDate=false&searchType=MC&classTypeRadioMulti=0&bookingType=Revenue&originInterlineFlag=false&destInterlineFlag=false&totalAdults=${pax.adults}&totalTeens=0&totalChildren=${pax.children.length}&totalInfants=${pax.infLap}&` + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin .map( itin => `fromCity=${itin.orig}&toCity=${itin.dest}&classType=${ cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_4__[/* getCabin */ "b"])(Math.max(...itin.seg.map(seg => seg.cabin)))] }&departDay=${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(itin.dep.day)}&departMonth=${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])( itin.dep.month )}&departYear=${ itin.dep.year }&returnDay=&returnMonth=&returnYear=` ) .join("&"); desc = "Mobile (or resize browser)"; } return url; }; const url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ekEdition); if (!url) { return; } let extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(edition, i) { return ( '<a href="' + createUrl(edition.value) + '" target="_blank">' + edition.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Emirates", desc, extra }; } function formatDate(date) { return `${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])(date.day)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* monthnumberToName */ "f"])(date.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* to2digits */ "h"])( date.year )}`; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", print); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Emirates", "ekEdition", editions, "/global/english"); /***/ }), /* 29 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3); const cabins = ["ECONOMY", "ECONOMY", "BUSINESS", "FIRST"]; function printEY() { if (!Object(___WEBPACK_IMPORTED_MODULE_4__["anyCarriers"])("EY")) { return; } var createUrl = function() { var pax = Object(___WEBPACK_IMPORTED_MODULE_4__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printEY"); return; } let url = "https://booking.etihad.com/SSW2010/EYEY/webqtrip.html?journeySpan=MC"; url += `&numAdults=${pax.adults}`; url += `&numChildren=${pax.children.length}`; url += `&numInfants=${pax.infLap}`; url += `&advertisedFare=${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].price}`; url += `¤cy=${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].cur || "USD"}`; let segnum = 0; _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.forEach((itin, legnum) => { itin.seg.forEach(seg => { url += `&ms[${segnum}].from=${seg.orig}`; url += `&ms[${segnum}].to=${seg.dest}`; url += `&ms[${segnum}].departure=${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])( seg.dep.month )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(seg.dep.day)}T${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to4digitTime */ "i"])(seg.dep.time24)}`; url += `&ms[${segnum}].arrival=${seg.arr.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])( seg.arr.month )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(seg.arr.day)}T${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to4digitTime */ "i"])(seg.arr.time24)}`; url += `&ms[${segnum}].leg=${legnum}`; url += `&ms[${segnum}].cbnClass=${cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(seg.cabin)]}`; segnum++; }); }); return url; }; var url = createUrl(); if (!url) { return; } return { url, title: "Etihad" }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* registerLink */ "b"])("airlines", printEY); /***/ }), /* 30 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const ibEditions = [ { value: "es-AO", name: "Angola - Español" }, { value: "pt-AO", name: "Angola - Português" }, { value: "es-DZ", name: "Argelia - Español" }, { value: "fr-DZ", name: "Algérie - Français" }, { value: "en-AR", name: "Argentina - English" }, { value: "es-AR", name: "Argentina - Español" }, { value: "en-BE", name: "Belgium - English" }, { value: "es-BE", name: "Bélgica - Español" }, { value: "fr-BE", name: "Belgique - Français" }, { value: "es-BR", name: "Brasil - Español" }, { value: "pt-BR", name: "Brasil - Português" }, { value: "en-CL", name: "Chile - English" }, { value: "es-CL", name: "Chile - Español" }, { value: "en-CO", name: "Colombia - English" }, { value: "es-CO", name: "Colombia - Español" }, { value: "en-CR", name: "Costa Rica - English" }, { value: "es-CR", name: "Costa Rica - Español" }, { value: "en-HR", name: "Croatia - English" }, { value: "es-HR", name: "Croacia - Español" }, { value: "it-HR", name: "Croazia - Italiano" }, { value: "en-CU", name: "Cuba - English" }, { value: "es-CU", name: "Cuba - Español" }, { value: "en-CZ", name: "Czech Republic - English" }, { value: "es-CZ", name: "República Checa - Español" }, { value: "en-DK", name: "Denmark - English" }, { value: "es-DK", name: "Dinamarca - Español" }, { value: "de-DE", name: "Deutschland - Deutsch" }, { value: "es-DE", name: "Alemania - Español" }, { value: "en-DO", name: "Dominican Republic - English" }, { value: "es-DO", name: "República Dominicana - Español" }, { value: "en-EC", name: "Ecuador - English" }, { value: "es-EC", name: "Ecuador - Español" }, { value: "en-SV", name: "El Salvador - English" }, { value: "es-SV", name: "El Salvador - Español" }, { value: "en-GQ", name: "Equatorial Guinea - English" }, { value: "es-GQ", name: "Guinea Ecuatorial - Español" }, { value: "ca-ES", name: "Espanya - Català" }, { value: "en-ES", name: "Spain - English" }, { value: "es-ES", name: "España - Español" }, { value: "es-FR", name: "Francia - Español" }, { value: "fr-FR", name: "France - Français" }, { value: "en-GH", name: "Ghana - English" }, { value: "es-GH", name: "Ghana - Español" }, { value: "en-GR", name: "Greece - English" }, { value: "es-GR", name: "Grecia - Español" }, { value: "en-GT", name: "Guatemala - English" }, { value: "es-GT", name: "Guatemala - Español" }, { value: "en-HN", name: "Honduras - English" }, { value: "es-HN", name: "Honduras - Español" }, { value: "en-IE", name: "Ireland - English" }, { value: "es-IE", name: "Irlanda - Español" }, { value: "en-IL", name: "Israel - English" }, { value: "es-IL", name: "Israel - Español" }, { value: "en-IT", name: "Italy - English" }, { value: "es-IT", name: "Italia - Español" }, { value: "it-IT", name: "Italia - Italiano" }, { value: "en-JP", name: "Japan - English" }, { value: "es-JP", name: "Japón - Español" }, { value: "ja-JP", name: "日本 - 日本語" }, { value: "en-MT", name: "Malta - English" }, { value: "es-MT", name: "Malta - Español" }, { value: "it-MT", name: "Malta - Italiano" }, { value: "es-MA", name: "Marruecos - Español" }, { value: "fr-MA", name: "Maroc - Français" }, { value: "es-MR", name: "Mauritania - Español" }, { value: "fr-MR", name: "Mauritanie - Français" }, { value: "en-MX", name: "Mexico - English" }, { value: "es-MX", name: "México - Español" }, { value: "en-NL", name: "Netherlands - English" }, { value: "es-NL", name: "Holanda - Español" }, { value: "nl-NL", name: "Nederland - Nederlands" }, { value: "en-NI", name: "Nicaragua - English" }, { value: "es-NI", name: "Nicaragua - Español" }, { value: "en-NG", name: "Nigeria - English" }, { value: "es-NG", name: "Nigeria - Español" }, { value: "en-PA", name: "Panama - English" }, { value: "es-PA", name: "Panamá - Español" }, { value: "en-PE", name: "Peru - English" }, { value: "es-PE", name: "Perú - Español" }, { value: "es-PT", name: "Portugal - Español" }, { value: "pt-PT", name: "Portugal - Português" }, { value: "en-PR", name: "Puerto Rico - English" }, { value: "es-PR", name: "Puerto Rico - Español" }, { value: "en-RU", name: "Russian Federation - English" }, { value: "es-RU", name: "Rusia - Español" }, { value: "ru-RU", name: "Rossiya - Русский" }, { value: "de-CH", name: "Schweiz - Deutsch" }, { value: "es-CH", name: "Suiza - Español" }, { value: "fr-CH", name: "Suisse - Français" }, { value: "es-SN", name: "Senegal - Español" }, { value: "fr-SN", name: "Sénégal - Français" }, { value: "en-ZA", name: "South Africa - English" }, { value: "es-ZA", name: "Sudáfrica - Español" }, { value: "en-SE", name: "Sweden - English" }, { value: "es-SE", name: "Suecia - Español" }, { value: "en-TR", name: "Turkey - English" }, { value: "es-TR", name: "Turquía - Español" }, { value: "en-US", name: "USA - English" }, { value: "es-US", name: "USA - Español" }, { value: "en-GB", name: "United Kingdom - English" }, { value: "es-GB", name: "Reino Unido - Español" }, { value: "en-UY", name: "Uruguay - English" }, { value: "es-UY", name: "Uruguay - Español" }, { value: "en-VE", name: "Venezuela - English" }, { value: "es-VE", name: "Venezuela - Español" } ]; function printIB() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("IB", "BA")) { return; } var createUrl = function(edition, currency) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["Economy", "Economy", "Business", "First"]; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printIB"); return; } var url = "http://www.iberia.com/web/partnerLink.do?Adult=" + pax.adults + "&Child=" + pax.children.length + "&Infant=0&InfantLap=" + pax.infLap + "&PointOfSaleCountry=" + edition[1] + "&UserCurrency=" + currency + "&UserLanguage=" + edition[0] + "&TripType="; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { url += "OneWay"; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig ) { url += "RoundTrip"; } else { url += "MultiCity"; } var seg = 0; var slice = 1; var slicestr = ""; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { seg++; //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier; url += "&DepartureDate" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin]; slicestr += (slicestr === "" ? "" : "%2C") + seg; j += k; } url += "&Slice" + slice + "=" + slicestr; slice++; slicestr = ""; } return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ibEdition.split("-"); var url = createUrl(edition, "USD"); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += ibEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("-"), "USD") + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Iberia", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printIB); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Iberia", "ibEdition", ibEditions, "en-US"); /***/ }), /* 31 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const klEditions = [ { value: "de_de", name: "Germany / Deutsch" }, { value: "de_en", name: "Germany / English" }, { value: "fr_en", name: "France / English" }, { value: "fr_fr", name: "France / French" }, { value: "nl_en", name: "Netherlands / English" }, { value: "gb_en", name: "United Kingdom / English" }, { value: "us_en", name: "US / English" } ]; const cabins = ["M", "W", "C", "F"]; function printKL() { if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("KL")) { return; } var createUrl = function(edition) { var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printKL"); return; } const segs = Object(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* getCurrentSegs */ "b"])(); let url = "https://www.klm.com/ams/search-web/api/metasearch?application=EBT7"; url += "&trip=" + segs .map( seg => `${seg.orig}:${seg.dep.year}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(seg.dep.month)}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])( seg.dep.day )}@${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digitTime */ "i"])(seg.dep.time)}:${seg.carrier}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digits */ "j"])( seg.fnr )}:${seg.bookingclass}>${seg.dest}` ) .join("-"); url += "&ref=MS,fb=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].farebases.join("."); url += "&numberOfAdults=" + pax.adults; url += "&numberOfChildren=" + pax.children.length; url += "&numberOfInfants=" + pax.infLap; url += "&cabinClass=" + cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...segs.map(seg => seg.cabin)))]; url += "&country=" + edition[0]; url += "&language=" + edition[1]; return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].klEdition.split("_"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error:Invalid KLM-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += klEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("_")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "KLM", extra }; } Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printKL); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("KLM", "klEdition", klEditions, "us_en"); /***/ }), /* 32 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const laEditions = [ { value: "es/ar", name: "Argentina / Spanish" }, { value: "pt/br", name: "Brasil / Portuguese" }, { value: "es/cl", name: "Chile / Spanish" }, { value: "es/co", name: "Colombia / Spanish" }, { value: "es/ec", name: "Ecuador / Spanish" }, { value: "es/pe", name: "Peru / Spanish" }, { value: "es/uy", name: "Uruguay / Spanish" }, { value: "en/us", name: "US / English" }, { value: "es/mx", name: "Mexico / Spanish" }, { value: "en/ca", name: "Canada / English" }, { value: "de/de", name: "Germany / German" }, { value: "es/es", name: "Spain / Spanish" }, { value: "fr/fr", name: "France / French" }, { value: "en/it", name: "Italy / English" }, { value: "en/uk", name: "UK / English" }, { value: "en/ue", name: "Rest of Europe / English" }, { value: "en/au", name: "Australia / English" }, { value: "en/nz", name: "New Zealand / English" }, { value: "es/un", name: "Other Countries / Spanish" }, { value: "en/un", name: "Other Countries / English" } ]; function printLA() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("LA")) { return; } // NOTE: currency will be determined by the locale; the deeplink does not support manually specifying the currency var createUrl = function(edition) { var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printLA"); return; } var laUrl = '"trip":{"flights":['; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // amount and currency required for each segment: laUrl += '{"amount":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price + '","currency":"' + "USD" + '","segments":['; var mincabin = 3; // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } laUrl += '{"departure_airport":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig + '","flight_number":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr + '","departure_date":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month.toString()).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day.toString()).slice(-2) + '","arrival_airport":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest + '","farebasis":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].farebase + '","marketing_airline":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier + '","class":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass + '","arrival_date":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.year.toString() + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.month.toString()).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.day.toString()).slice(-2) + '"},'; // check the minimum cabin: if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin; } j += k; } laUrl = laUrl.substring(0, laUrl.length - 1) + "]},"; } // Build passengers info: var laPassengers = '"passengers":{"numberAdults":"' + pax.adults + '","numberInfants":"' + pax.infLap + '","numberChildren":"' + pax.children.length + '"},'; // Compile the final URL (and encode it): laUrl = "https://ssl.lan.com/cgi-bin/compra/paso4.cgi?forced_home=" + edition + "&sessionParameters=%7B" + encodeURIComponent(laPassengers) + encodeURIComponent(laUrl.substring(0, laUrl.length - 1)) + "]}}&utm_medium=metasearch&utm_source=gfs&utm_campaign=US_deeplink_s4&gclsrc=gf"; return laUrl; }; var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].laEdition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += laEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "LATAM", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printLA); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("LATAM", "laEdition", laEditions, "en/us"); /***/ }), /* 33 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7); const lhEditions = [ { value: "AL-gb", name: "Albania / English" }, { value: "DZ-fr", name: "Algeria / Français" }, { value: "AO-gb", name: "Angola / English" }, { value: "AR-es", name: "Argentina / Español" }, { value: "AM-gb", name: "Armenia / English" }, { value: "AU-gb", name: "Australia / English" }, { value: "AT-de", name: "Austria / Deutsch" }, { value: "AT-gb", name: "Austria / English" }, { value: "AZ-gb", name: "Azerbaijan / English" }, { value: "BH-gb", name: "Bahrain / English" }, { value: "BY-gb", name: "Belarus / English" }, { value: "BE-gb", name: "Belgium / English" }, { value: "BA-gb", name: "Bosnia/Hercegovina / English" }, { value: "BR-pt", name: "Brazil / Português" }, { value: "BG-gb", name: "Bulgaria / English" }, { value: "CA-gb", name: "Canada / English" }, { value: "CA-fr", name: "Canada / Français" }, { value: "CL-es", name: "Chile / Español" }, { value: "CN-gb", name: "China / English" }, { value: "CO-es", name: "Colombia / Español" }, { value: "HR-gb", name: "Croatia / English" }, { value: "CY-gb", name: "Cyprus / English" }, { value: "CZ-gb", name: "Czech Republic / English" }, { value: "DK-gb", name: "Denmark / English" }, { value: "EG-gb", name: "Egypt / English" }, { value: "GQ-gb", name: "Equatorial Guinea / English" }, { value: "ER-gb", name: "Eritrea / English" }, { value: "EE-gb", name: "Estonia / English" }, { value: "ET-gb", name: "Ethiopia / English" }, { value: "FI-gb", name: "Finland / English" }, { value: "FR-gb", name: "France / English" }, { value: "FR-fr", name: "France / Français" }, { value: "GA-gb", name: "Gabon / English" }, { value: "GE-gb", name: "Georgia / English" }, { value: "DE-de", name: "Germany / Deutsch" }, { value: "DE-gb", name: "Germany / English" }, { value: "GH-gb", name: "Ghana / English" }, { value: "GR-gb", name: "Greece / English" }, { value: "HK-gb", name: "Hong Kong / English" }, { value: "HU-gb", name: "Hungary / English" }, { value: "IS-gb", name: "Iceland / English" }, { value: "IN-gb", name: "India / English" }, { value: "ID-gb", name: "Indonesia / English" }, { value: "IR-gb", name: "Iran / English" }, { value: "IQ-gb", name: "Iraq / English" }, { value: "IE-gb", name: "Ireland / English" }, { value: "IL-gb", name: "Israel / English" }, { value: "IT-it", name: "Italy / Italiano" }, { value: "IT-gb", name: "Italy / English" }, { value: "JP-gb", name: "Japan / English" }, { value: "JO-gb", name: "Jordan / English" }, { value: "KZ-gb", name: "Kazakhstan / English" }, { value: "KE-gb", name: "Kenya / English" }, { value: "KR-gb", name: "Republic of Korea / English" }, { value: "KW-gb", name: "Kuwait / English" }, { value: "LV-gb", name: "Latvia / English" }, { value: "LB-gb", name: "Lebanon / English" }, { value: "LY-gb", name: "Libya / English" }, { value: "LT-gb", name: "Lithuania / English" }, { value: "LU-gb", name: "Luxembourg / English" }, { value: "MY-gb", name: "Malaysia / English" }, { value: "MV-gb", name: "Maldives / English" }, { value: "MT-gb", name: "Malta / English" }, { value: "MU-gb", name: "Mauritius / English" }, { value: "MX-es", name: "Mexico / Español" }, { value: "MD-gb", name: "Moldova / English" }, { value: "MA-fr", name: "Morocco / Français" }, { value: "NL-gb", name: "Netherlands / English" }, { value: "NZ-gb", name: "New Zealand / English" }, { value: "NG-gb", name: "Nigeria / English" }, { value: "NO-gb", name: "Norway / English" }, { value: "OM-gb", name: "Oman / English" }, { value: "PK-gb", name: "Pakistan / English" }, { value: "PA-es", name: "Panama / Español" }, { value: "PH-gb", name: "Philippines / English" }, { value: "PL-gb", name: "Poland / English" }, { value: "PL-pl", name: "Poland / Polski" }, { value: "PT-gb", name: "Portugal / English" }, { value: "PT-pt", name: "Portugal / Português" }, { value: "QA-gb", name: "Qatar / English" }, { value: "CD-gb", name: "Republic of the Congo / English" }, { value: "RO-gb", name: "Romania / English" }, { value: "RU-gb", name: "Russia / English" }, { value: "RU-ru", name: "Russia / Русский" }, { value: "SA-gb", name: "Saudi Arabia / English" }, { value: "RS-gb", name: "Serbia / English" }, { value: "SG-gb", name: "Singapore / English" }, { value: "SK-gb", name: "Slovakia / English" }, { value: "SI-gb", name: "Slovenia / English" }, { value: "ZA-gb", name: "South Africa / English" }, { value: "ES-gb", name: "Spain / English" }, { value: "ES-es", name: "Spain / Español" }, { value: "SD-gb", name: "Sudan / English" }, { value: "SE-gb", name: "Sweden / English" }, { value: "CH-de", name: "Switzerland / Deutsch" }, { value: "CH-gb", name: "Switzerland / English" }, { value: "CH-fr", name: "Switzerland / Français" }, { value: "TW-gb", name: "Taiwan / English " }, { value: "TH-gb", name: "Thailand / English" }, { value: "TN-fr", name: "Tunisia / Français" }, { value: "TR-gb", name: "Turkey / English" }, { value: "TM-gb", name: "Turkmenistan / English" }, { value: "UA-gb", name: "Ukraine / English" }, { value: "AE-gb", name: "United Arab Emirates / English" }, { value: "UK-gb", name: "United Kingdom / English" }, { value: "US-gb", name: "United States / English" }, { value: "VE-es", name: "Venezuela / Español" }, { value: "VN-gb", name: "Vietnam / English" }, { value: "XX-gb", name: "Other countries / English" } ]; function printLH() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("LH", "OS")) { return; } var createUrl = function(edition) { var style = 0; // 0 is direct booking - 1 is pre selected var paxConfig = { allowinf: 1, youthage: 0 }; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printLH"); return false; } var amadeusConfig = { sepcabin: 0, detailed: 0, allowpremium: 1, inctimes: 0 }; if (style == 0) { var url = "https://book.lufthansa.com/lh/dyn/air-lh/revenue/availThenFare?"; url += "WDS_MSE_PRICE_CURRENCY=EUR&WDS_MSE_TOTAL_PRICE=1.00&"; } else { var url = "https://book.lufthansa.com/lh/dyn/air-lh/revenue/viewFlights?"; } url += "PORTAL=LH&COUNTRY_SITE=" + edition[0].toUpperCase() + "&POS=" + edition[0].toUpperCase() + "&LANGUAGE=" + edition[1].toUpperCase() + "&SECURE=TRUE&SITE=LUFTLUFT&SO_SITE_LH_FRONTEND_URL=www.lufthansa.com&WDS_WR_CHANNEL=LHCOM"; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusPax */ "a"])(pax, paxConfig); url += tmpPax.url; url += "&NB_ADT=" + tmpPax.adults; url += "&NB_INF=" + tmpPax.infants; url += "&NB_CHD=" + tmpPax.children; url += "&TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusTriptype */ "b"])(); url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusUrl */ "c"])(amadeusConfig); return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].lhEdition.split("-"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error:Invalid Lufthansa-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += lhEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("-")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Lufthansa", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printLH); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Lufthansa", "lhEdition", lhEditions, "US-gb"); /***/ }), /* 34 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const lxEditions = [ { value: "de_de", name: "Germany" }, { value: "us_en", name: "US" } ]; function printLX() { if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("LX")) { return; } // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["", "", "/class-business", "/class-first"]; var mincabin = 3; var createUrl = function(edition) { var url = "https://www.swiss.com/" + edition[0] + "/" + edition[1] + "/Book/Combined"; var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printLX"); return; } //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { // walks each leg url += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest + "/"; for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr + "-"; if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } j += k; } url = url.substring(0, url.length - 1); url += "/" + (i > 0 ? "to" : "from") + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); } url += "/adults-" + pax.adults + "/children-" + pax.children.length + "/infants-" + pax.infLap; url += cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()]; return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].lxEdition.split("_"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error:Invalid Swiss-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += lxEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("_")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Swiss", extra }; } Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printLX); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Swiss", "lxEdition", lxEditions, "us_en"); /***/ }), /* 35 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7); function printOA() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("OA", "A3")) { return; } var url = "https://e-ticket.olympicair.com/A3Responsive/dyn/air/booking/?BOOKING_FLOW=REVENUE&FLEXIBILITY=3&DISPLAY_TYPE=2&FORCE_OVERRIDE=TRUE&PRICING_TYPE=O"; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOA"); return; } var paxConfig = { allowinf: 1, youthage: 0 }; var amadeusConfig = { sepcabin: 0, detailed: 0, allowpremium: 1, inctimes: 1 }; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusPax */ "a"])(pax, paxConfig); url += "&TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusTriptype */ "b"])(); url += tmpPax.url; url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusUrl */ "c"])(amadeusConfig); url += "&SITE=E00KE00K&SKIN=skin_oa&SO_GL=%3CSO_GL%3E%09%3CGLOBAL_LIST%3E%09%09%3CNAME%3ESL_TRAVELLER_TYPE_LIST%3C%2FNAME%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EADT%3C%2FCODE%3E%3CLIST_VALUE%3EAdult%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EADT%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EB15%3C%2FCODE%3E%3CLIST_VALUE%3EYoung+adult%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EB15%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EC07%3C%2FCODE%3E%3CLIST_VALUE%3EYouth%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EC07%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EC03%3C%2FCODE%3E%3CLIST_VALUE%3EChild%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EC03%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EINF%3C%2FCODE%3E%3CLIST_VALUE%3EInfant%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EINF%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E++++++++%3CLIST_ELEMENT%3E%3CCODE%3EUNN%3C%2FCODE%3E%3CLIST_VALUE%3EUMNR%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EUNN%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%3C%2FGLOBAL_LIST%3E%3C%2FSO_GL%3E&SO_SITE_ETKT_Q_OFFICE_ID=ATHA308OA&SO_SITE_OFFICE_ID=ATHA308OA&SO_SITE_POINT_OF_SALE=ATH&SO_SITE_POINT_OF_TICKETING=ATH&SO_SITE_PREBOOK_DURATION=I180&SO_SITE_QUEUE_OFFICE_ID=ATHA308OA&SO_SITE_SP_QUEUE_OFFICE_ID=ATHA308OA"; url += "&LANGUAGE=" + (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "oa" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "de" ? _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language.toUpperCase() : "GB"); url += "&WDS_ADD_BOOK_NOW_BUTTON_EMAF=TRUE&WDS_ADVERTISING_PANEL_CONF_ACTIVATED=true&WDS_AFFILIATE_STATUS=C&WDS_AMOP_DISPLAY_PRIORITY=PAYPAL:SOFORT:KLARNA:EPS:IDEAL:BANCONTACT:ENTERCASH:ALIPAY:CUP&WDS_AMOP_FEE=PAYPAL:0;KLARNA:0;SOFORT:0;ENTERCASH:0;EPS:0;IDEAL:0;BANCONTACT:0;ALIPAY:0;CUP:0;&WDS_AMOP_FEE_APPLY=PER_TRANSACTION&WDS_AMOP_FEE_CALCULATION=PER&WDS_AMOP_LIST_ACTIVATED=PAYPAL;KLARNA;SOFORT;ENTERCASH;EPS;IDEAL;BANCONTACT;ALIPAY;CUP&WDS_AMOP_LIST_DEACTIVATED=&WDS_AMOP_TIME_LIMIT=PAYPAL:48;KLARNA:0;SOFORT:0;ENTERCASH:0;EPS:0;IDEAL:0;BANCONTACT:0;ALIPAY:24;CUP:24;&WDS_ANCILLARY_IN_MILES_ENABLED=TRUE&WDS_ASSISTANCE_REQUEST_ACTIVATED=TRUE&WDS_ATCOM_TIMEOUT=2000&WDS_AVAIL_PRICE_DISPLAY_TYPE=PER_ADT_WITH_TAX_NO_FEE&WDS_BAG_PLACEHOLDER_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_BAG_POLICY_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_BOOKING_LISTENER_URL=https://en.aegeanair.com/BookingListener.axd&WDS_BOUND_INDEX_EXPANDED=1&WDS_BUSINESS_MEAL_FARE_FAMILIES=BUSINESS:BUSINESTES:BUSINESSI&WDS_BUSINESS_MEAL_FREQUENT_FLYER_LEVELS=GOLD:SILVER&WDS_BUSINESS_MEAL_SUPPORTED=true&WDS_BUSINESS_ON_BOARD_DISPLAY_IN_LOGIN_PANEL=TRUE&WDS_BUSINESS_ON_BOARD_ENABLED=TRUE&WDS_BUSINESS_ON_BOARD_PAX_TYPE=ADT&WDS_CABIN_CLASS_DISPLAY=TRUE&WDS_CALENDAR_TO_UPSELL_FLEXIBLE_ACTIVATED=3&WDS_CALLCENTER_EMAIL=res1@aegeanair.com&WDS_CAR_ENABLED=FALSE&WDS_CAR_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_CC_FEE_CARD_TYPE=VI:0;CA:0;MA:0;AX:0;DC:0;TP:;&WDS_CC_FEE_NO_CARD=0&WDS_CC_FEE_ZERO_DISPLAYED=FALSE&WDS_CC_LIST=VI:CA:MA:AX:DC:TP&WDS_CFF_TOUSE=CFF01FEB14&WDS_CHANNEL=B2C&WDS_CLEAR_CONTENT_URL=https://en.aegeanair.com/PlainContent.axd&WDS_DEVICE_NAME=DESKTOP_UNKNOWN&WDS_DEVICE_OS=Windows_10&WDS_DEVICE_VIEWPORT=L&WDS_DISPLAY_EMAIL_IN_BROWSER_URL=https://en.aegeanair.com/ConfirmationEmail.axd&WDS_DISPLAY_FBA_AND_REFUNDABILITY_PER_BOUND_IN_SB=TRUE&WDS_DISPLAY_GREEK_RURAL_ID=FALSE&WDS_DISPLAY_RECEIPT=SHOW&WDS_DISPLAY_REGULATION_CONDITIONS_COUNTRY=FR&WDS_DISPLAY_REGULATION_CONDITIONS_LANG=FR&WDS_DONATION_PANEL_ACTIVATED=FALSE&WDS_DONATION_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_EMAF_BOOK_NOW_URL=https://en.aegeanair.com/PostHandler.axd&WDS_ENABLE_PARKING=FALSE&WDS_ENABLE_TOKEN=true&WDS_ENABLE_TOKEN_FOR_CAR=false&WDS_ENABLE_TOKEN_FOR_HOTEL=false&WDS_EPTS=unknown_call&WDS_EXTERNAL_CSS_URL=https://en.aegeanair.com/css/1A/responsive.css?v=10&WDS_EXTRAS_DEFAULT_PANEL_ORDER=BAGGAGE;MEALS;SPEQ;PETS;FASTTRACK;INSURANCE;PARKING;DONATION&WDS_FARE_COMPARISON_URL=https://en.aegeanair.com/FareFamilyComparison.axd&WDS_FARE_CONDITIONS_URL=https://en.aegeanair.com/ffc.axd&WDS_FASTTRACK_ELIGIBLE_AIRPORTS=LCA;ATH&WDS_FASTTRACK_ENABLED=TRUE&WDS_FASTTRACK_HANDLER_URL=https://en.aegeanair.com/FastTrackHandler.axd&WDS_FREQUENT_FLYER_PROGRAMS_OA_FLIGHTS=A3;AC;UA;MS;TK;NH;LH;SQ&WDS_GDPR_DISPLAY_PROMOS_CONFIRMATION_NO_CONSENT=FALSE&WDS_GDPR_HANDLER_URL=https://en.aegeanair.com/api/v1/members/checkgdpremailstatus&WDS_GO_TO_FINALIZE_URL=https://en.aegeanair.com/FinalizeRedirect.axd&WDS_GO_TO_MY_BOOKING_URL=https://en.aegeanair.com/MyBooking.axd&WDS_GO_TO_SEAT_SELECTION_URL=https://en.aegeanair.com/SeatRedirect.axd&WDS_HANDLE_SOS_AS_RM_FEE=TRUE&WDS_HOTEL_ENABLED=FALSE&WDS_HOTEL_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_HOTEL_POPUP_CONF_ACTIVATED=TRUE&WDS_HOTEL_POPUP_CONF_DELAY=10000&WDS_HOTEL_RECOMMENDATION_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_INSURANCE_ACTIVATED=TRUE&WDS_INSURANCE_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_INSURANCE_PRESELECT=NONE&WDS_LATE_LOGIN_ENABLED=TRUE&WDS_LATE_LOGIN_URL=https://en.aegeanair.com/api/v1/members/loyaltyauth&WDS_MEAL_FORBIDDEN_PAX_TYPE=INF&WDS_MEAL_HANDLER_URL=https://en.aegeanair.com/MealHandler.axd&WDS_MEAL_LIST_PROPOSED=BBML:BLML:CHML:DBML:FPML:GFML:KSML:LCML:LFML:NLML:LSML:MOML:HNML:SFML:VOML:VLML:AVML:VJML:VGML:RVML&WDS_MILES_EARNED_HANDLER_URL=https://en.aegeanair.com/AwardedMiles.axd&WDS_NEW_PROMOTION_TYPE=NONE&WDS_NEW_PROMOTION_WEBSERVICES_ENVIRONMENT=PRODUCTION&WDS_OBFEE_FROM_NEWPOLICY_ACTIVATED=TRUE&WDS_OLYMPIC_TRACKING=true&WDS_ONLY_DIRECT_REQUESTED=FALSE&WDS_PARKING_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_PETS_ENABLED=TRUE&WDS_PHONE_PRESELECT_COUNTRY_CODE=US&WDS_PLUSGRADE_ENABLED=false&WDS_PLUSGRADE_HANDLER_URL=https://en.aegeanair.com/PlusgradeHandler.axd&WDS_PROMO_SLOT_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_PROMOCODE_ROUTE_AUTHORIZED=FALSE&WDS_PROMOTION_RBD_LIST=P&WDS_REBOOKING_HIGHSEASON_DATE=&WDS_RESKIN=TRUE&WDS_SB_HOTEL_TIMEOUT=15000&WDS_SEAT_BANNER_URL=https://en.aegeanair.com/SeatBanner.axd&WDS_SEATMAP_ENABLED=TRUE&WDS_SMS_OPTION=SHOW&WDS_SMS_PROVIDER_EMAIL=aegean_bc@mpassltd.eu&WDS_SMS_SENDER_EMAIL=defineOA@amadeus.com&WDS_SPECIAL_MEAL_LIST=BBML:BLML:CHML:DBML:FPML:GFML:KSML:LCML:LFML:NLML:LSML:MOML:HNML:SFML:VOML:VLML:AVML:VJML:VGML:RVML&WDS_SPECIAL_MEAL_SUPPORTED=TRUE&WDS_SPEQ_ENABLED=TRUE&WDS_TAX_BREAKDOWN_REGULATION_ALLOW_LANG=FR&WDS_TEALEAF_ENABLED=TRUE&WDS_TTT_ENABLED=TRUE&WDS_TTT_PROMO_FARES_REG_EXP=^PR([0-9])+$&WDS_TTT_SELECTION_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_UMNR_ENTRY_OVERRIDE=WDS_HOTEL_ENABLED:FALSE;WDS_CAR_ENABLED:FALSE;WDS_TTT_ENABLED:false;WDS_FASTTRACK_ENABLED:false;WDS_ANCILLARY_IN_MILES:false;WDS_ENABLE_PARKING:false;WDS_ASSISTANCE_REQUEST_ACTIVATED:false;WDS_LATE_LOGIN_ENABLED:false;WDS_BUSINESS_ON_BOARD_ENABLED:false&WDS_URL_FACADE_ERROR=https://www.olympicair.com/en/Travel/Reservations/Tickets&WDS_URL_FACADE_NEWSEARCH=https://www.olympicair.com/en/Travel/Reservations/Tickets&WDS_URL_WAITING_CONTENT=https://en.aegeanair.com/WaitingPage.axd&WDS_USE_A3_SOS_INSURANCE_PANEL=TRUE&WDS_USEFUL_LINKS_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_VOUCHER_BANNER_ACTIVATED=TRUE&WDS_VOUCHER_BANNER_URL=https://en.aegeanair.com/PromoSlots.axd"; return { url, title: "Olympic Air" }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printOA); /***/ }), /* 36 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); function printPS() { if (!Object(___WEBPACK_IMPORTED_MODULE_1__["anyCarriers"])("PS")) { return; } var createUrl = function(edition, currency) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["Economy", "Economy", "Business", "First"]; var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printPS"); return false; } var url = "https://bookapi.flyuia.com/flights/metaSearchQuery?Adult=" + pax.adults + "&Child=" + pax.children.length + "&Infant=" + pax.infLap + "&PointOfSaleCountry=" + edition[1] + "&UserCurrency=" + currency + "&UserLanguage=" + edition[0] + "&TripType="; if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 1) { url += "OneWay"; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].orig ) { url += "RoundTrip"; } else { url += "MultiCity"; } var seg = 0; var slice = 1; var slicestr = ""; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) { seg++; //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].carrier; url += "&DepartureDate" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].cabin]; slicestr += (slicestr === "" ? "" : "%2C") + seg; j += k; } url += "&Slice" + slice + "=" + slicestr; slice++; slicestr = ""; } return url; }; var url = createUrl(["EN", "US"], "USD"); if (!url) { return; } return { url, title: "UIA" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("airlines", printPS); /***/ }), /* 37 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const qfEditions = [ { value: "EN_AU", name: "Australia" }, { value: "EN_NZ", name: "New Zealand" }, { value: "EN_US", name: "United States" } ]; const qfCurrencies = [ { value: "AUD", name: "AUD" }, { value: "NZD", name: "NZD" }, { value: "USD", name: "USD" } ]; function printQF() { if (!Object(___WEBPACK_IMPORTED_MODULE_3__["anyCarriers"])("QF", "JQ", "NZ")) { return; } /* Qantas partner deep-link */ var createUrl = function(edition, currency) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var travelClass = ["ECO", "PRM", "BUS", "FIR"]; // Start the minimum cabin at highest possible (it will drop as we check each leg): var mincabin = 3; // Validate the passenger totals first: var pax = Object(___WEBPACK_IMPORTED_MODULE_3__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 16, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printQF"); return false; } var nbrChildren = pax.children.length; if (!nbrChildren || typeof nbrChildren === "undefined") { // default to 0 children if undefined: nbrChildren = 0; } // Build search based on legs: console.log("printQF: begin leg traversal..."); var url = ""; var prefixFltNbr = "sdcFlightNumber"; var prefixSegRbd = "sdcSegmentRbd"; var depAirports = "&depAirports="; var destAirports = "&destAirports="; var segDepAirports = "&depAirports="; var segDestAirports = "&destAirports="; var tmpTravelDates = ""; var finalDest = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[0].seg[0].dest; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { // walks each parent "leg" of the itinerary (a leg can have multiple flight segments) // Record the travel date for each leg: if (tmpTravelDates === "" || !tmpTravelDates) { tmpTravelDates += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2).toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2).toString() + "0000"; } else { tmpTravelDates += "%2C" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2).toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2).toString() + "0000"; } // Grab the origin airport of each leg: if (segDepAirports.length > 13) segDepAirports += "%2C"; segDepAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig.toString(); // Grab the destination airport of each leg: if (segDestAirports.length > 14) segDestAirports += "%2C"; segDestAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest.toString(); for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { // walks each flight segment of the parent leg var k = 0; // Do we need to skip segments? fnr has to be the same and it must be just a layover: while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) { break; } k++; } // Construct URL for this leg: url += "&" + prefixFltNbr + (i + 1) + (j + 1) + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&" + prefixSegRbd + (i + 1) + (j + 1) + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; // record the departing and destination airports for this leg: // all departing airports: if (depAirports.length > 13) depAirports += "%2C"; depAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig.toString(); // all destination airports: if (destAirports.length > 14) destAirports += "%2C"; destAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest.toString(); if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } j += k; } } // Add airports: // url += depAirports + destAirports; url += segDepAirports + segDestAirports; // Add travel dates: url += "&travelDates=" + tmpTravelDates; // Add price info: url += "&sdcTripPriceAmount=0.00"; // Add device type: url += "&QFdeviceType=desktop"; // Begin final deeplink URL construction: var urlBase = "https://book.qantas.com/qf-booking/dyn/air/tripflow.redirect?APPLICATION_NAME=SDC"; // Add edition / locale: urlBase += "&USER_LANG=EN&USER_LOCALE=" + edition; // Add class(es) of service: urlBase += "&travelClass=" + travelClass[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()]; // Add passenger info: urlBase += "&numberOfAdults=" + pax.adults + "&numberOfChildren=" + nbrChildren.toString() + "&numberOfInfants=" + pax.infLap; // Add currency: urlBase += "&sdcPriceCurrency=" + currency; return urlBase + url; }; // get edition var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfEdition, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfCurrency); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += qfEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfCurrency) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Qantas", extra }; } Object(___WEBPACK_IMPORTED_MODULE_3__["register"])("airlines", printQF); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Qantas", "qfEdition", qfEditions, "EN_US"); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Qantas", "qfCurrency", qfCurrencies, "USD"); /***/ }), /* 38 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); var cabins = ["E", "E", "B", "F"]; function print() { if (!Object(___WEBPACK_IMPORTED_MODULE_1__["allCarriers"])("QR")) { return; } const pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printQR"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; const tripType = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 1 ? "M" : "O"; let url = `https://booking.qatarairways.com/nsp/views/showBooking.action?widget=MLC&selLang=${_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].itaLanguage}&tripType=${tripType}&bookingClass=${cabin}&adults=${pax.adults}&children=${pax.children.length}&infants=${pax.infLap}&isMetaSearch=true&`; url += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map((itin, i) => { let qs = `fromStation=${itin.orig}&toStation=${itin.dest}&departing=${ itin.dep.year }-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(itin.dep.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(itin.dep.day)}`; if (i <= 1) qs += `&${i === 0 ? "out" : "in"}boundFltNumber=${itin.seg .map(seg => seg.fnr) .join(",")}`; return qs; }) .join("&"); if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length <= 2) url += "&price=0"; return { url, title: "Qatar Airways" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("airlines", print); /***/ }), /* 39 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7); function printTK() { if (!Object(___WEBPACK_IMPORTED_MODULE_2__["anyCarriers"])("TK")) { return; } var url = "https://book.eu2.amadeus.com/plnext/turkishairlines/Override.action?"; var paxConfig = { allowinf: 1, youthage: 0 }; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printTK"); return; } var amadeusConfig = { sepcabin: 0, detailed: 0, allowpremium: 1, inctimes: 1 }; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusPax */ "a"])(pax, paxConfig); url += "TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusTriptype */ "b"])(); url += tmpPax.url; url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_3__[/* getAmadeusUrl */ "c"])(amadeusConfig); url += "&PORT_TSC=FALSE&SO_SITE_ALLOW_SERVICE_FEE=0&SO_SITE_SERVICE_FEE_MODE=AIR&SITE=BBAHBBAH"; url += "&LANGUAGE=" + (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "tk" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "de" ? _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language.toUpperCase() : "GB"); url += "&EMBEDDED_TRANSACTION=AirComplexAvailability&TRIPFLOW=YES"; url += "SO_LANG_TRIPFLOW_ENTRY_ADDRE=online.turkishairlines.com%2Finternet-booking%2Famadeus.tk&ARRANGE_BY=N&DIRECT_NON_STOP=false&REFRESH=0&SO_SITE_TAX_BREAKDOWN_DISP=TRUE&SO_LANG_DISABLE_X_XSS_PROTEC=TRUE&SO_SITE_REDIRECT_MODE=AUTOMATIC&SO_LANG_URL_AIR_NFS_SRCH=http%3A%2F%2Fonline.turkishairlines.com%2Finternet-booking%2Fstart.tk"; return { url, title: "Turkish" }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("airlines", printTK); /***/ }), /* 40 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); const cabins = ["", "p", "b", "f"]; function print() { var pax = Object(___WEBPACK_IMPORTED_MODULE_0__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: true, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])( "Error: Failed to validate Passengers in printGoogleFlights" ); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; const url = "https://www.google.com/flights/#flt=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin .map( itin => `${itin.orig}.${itin.dest}.${itin.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])( itin.dep.month )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(itin.dep.day)}.${itin.seg .map( (seg, j) => `${seg.orig}${seg.dest}${j}${seg.carrier}${seg.fnr}` ) .join("~")}` ) .join("*") + `;c:${_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].cur || "USD"};px:${pax.adults},${pax.children.length},${ pax.infLap },${pax.infSeat};sc:${cabin};tt:${ _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length === 1 ? "o" : "m" }`; return { url, title: "Google Flights" }; } Object(___WEBPACK_IMPORTED_MODULE_0__["register"])("meta", print); /***/ }), /* 41 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); const editions = [ { name: "Argentina", host: "https://ar.jetcost.com/vuelos/busqueda" }, { name: "Australia", host: "https://www.jetcost.com.au/flights/search" }, { name: "Bolivia", host: "https://www.jetcost.com.bo/vuelos/busqueda" }, { name: "Brasil", host: "https://www.jetcost.com.br/voos/pesquisa" }, { name: "Canada (en)", host: "https://ca.jetcost.com/en/flights/search" }, { name: "Canada (fr)", host: "https://ca.jetcost.com/fr/vols/recherche" }, { name: "Chile", host: "https://www.jetcost.cl/vuelos/busqueda" }, { name: "Colombia", host: "https://www.jetcost.com.co/vuelos/busqueda" }, { name: "Danmark", host: "https://www.jetcost.dk/flyrejser/sogning" }, { name: "Deutschland", host: "https://www.jetcost.de/fluge/suche" }, { name: "España", host: "https://www.jetcost.es/vuelos/busqueda" }, { name: "Estados Unidos (es)", host: "https://us.jetcost.com/es/vuelos/busqueda" }, { name: "France", host: "https://www.jetcost.com/vols/recherche" }, { name: "Hong Kong", host: "https://www.jetcost.hk/en/flights/search" }, { name: "India", host: "https://www.jetcost.co.in/en/flights/search" }, { name: "Indonesia", host: "https://www.jetcost.co.id/en/flights/search" }, { name: "Ireland", host: "https://www.jetcost.ie/flights/search" }, { name: "Italia", host: "https://www.jetcost.it/voli/ricerca" }, { name: "Magyarország", host: "https://www.jetcost.hu/jaratok/kereses" }, { name: "Malaysia", host: "https://www.jetcost.com.my/en/flights/search" }, { name: "México", host: "https://www.jetcost.com.mx/vuelos/busqueda" }, { name: "Nederland", host: "https://www.jetcost.nl/vluchten/zoeken" }, { name: "New Zealand", host: "https://www.jetcost.co.nz/flights/search" }, { name: "Norge", host: "https://www.jetcost.no/flyvninger/sok" }, { name: "Österreich", host: "https://www.jetcost.at/fluge/suche" }, { name: "Perú", host: "https://www.jetcost.com.pe/vuelos/busqueda" }, { name: "Philippines", host: "https://www.jetcost.com.ph/en/flights/search" }, { name: "Polska", host: "https://www.jetcost.pl/loty/wyszukiwanie" }, { name: "Portugal", host: "https://www.jetcost.pt/voos/pesquisar" }, { name: "România", host: "https://www.jetcost.ro/zboruri/cautare" }, { name: "Россия", host: "https://www.jetcost.ru/reysy/poisk" }, { name: "Singapore", host: "https://www.jetcost.com.sg/en/flights/search" }, { name: "South Africa", host: "https://www.jetcost.co.za/en/flights/search" }, { name: "Suomi", host: "https://www.jetcost.fi/lennot/hae" }, { name: "Sverige", host: "https://www.jetcost.se/flighter/sokning" }, { name: "Thailand", host: "https://www.jetcost.co.th/en/flights/search" }, { name: "United Kingdom", host: "https://www.jetcost.co.uk/flights/search" }, { name: "United States (en)", host: "https://us.jetcost.com/en/flights/search" }, { name: "Uruguay", host: "https://www.jetcost.com.uy/vuelos/busqueda" }, { name: "Venezuela", host: "https://www.jetcost.co.ve/vuelos/busqueda" }, { name: "한국", host: "https://www.jetcost.co.kr/flights/search" } ]; const cabins = [0, 0, 1, 2]; function print() { if (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length > 2) return; // no multi segments if ( _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length == 2 && !( _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].orig ) ) return; // no open jaws var pax = Object(___WEBPACK_IMPORTED_MODULE_0__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; var createUrl = function(host) { return `${host}?adults=${pax.adults}&children=${ pax.children.length }&infants=${pax.infLap}&cabin_class=${cabin}&${_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin .map( (seg, i) => `trips[${i}][date]=${formatDate(seg.dep)}&trips[${i}][from_iata]=${ seg.orig }&trips[${i}][to_iata]=${seg.dest}` ) .join("&")}`; }; var url = createUrl("https://us.jetcost.com/en/flights/search"); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Jetcost", extra }; } function formatDate(date) { return `${date.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(date.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "h"])(date.day)}`; } Object(___WEBPACK_IMPORTED_MODULE_0__["register"])("meta", print); /***/ }), /* 42 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1); const editions = [ { name: "Kayak.ae", host: "www.kayak.ae" }, { name: "Kayak.ar", host: "www.kayak.com.ar" }, { name: "Kayak.at", host: "www.kayak.cat" }, { name: "Kayak.au", host: "www.kayak.com.au" }, { name: "Kayak.br", host: "www.kayak.com.br" }, { name: "Kayak.ca", host: "www.ca.kayak.com" }, { name: "Kayak.ch", host: "www.kayak.ch" }, { name: "Kayak.cl", host: "www.kayak.cl" }, { name: "Kayak.cn", host: "www.cn.kayak.com" }, { name: "Kayak.co", host: "www.kayak.com.co" }, { name: "Kayak.com", host: "www.kayak.com" }, { name: "Kayak.de", host: "www.kayak.de" }, { name: "Kayak.dk", host: "www.kayak.dk" }, { name: "Kayak.es", host: "www.es.kayak.com" }, { name: "Kayak.es", host: "www.kayak.es" }, { name: "Kayak.fi", host: "www.fi.kayak.com" }, { name: "Kayak.fr", host: "www.kayak.fr" }, { name: "Kayak.gr", host: "www.gr.kayak.com" }, { name: "Kayak.hk", host: "www.kayak.com.hk" }, { name: "Kayak.id", host: "www.kayak.co.id" }, { name: "Kayak.ie", host: "www.kayak.ie" }, { name: "Kayak.in", host: "www.kayak.co.in" }, { name: "Kayak.it", host: "www.kayak.it" }, { name: "Kayak.jp", host: "www.kayak.co.jp" }, { name: "Kayak.kr", host: "www.kayak.co.kr" }, { name: "Kayak.mx", host: "www.kayak.com.mx" }, { name: "Kayak.my", host: "www.kayak.com.my" }, { name: "Kayak.nl", host: "www.kayak.nl" }, { name: "Kayak.no", host: "www.kayak.no" }, { name: "Kayak.nz", host: "www.nz.kayak.com" }, { name: "Kayak.pe", host: "www.kayak.com.pe" }, { name: "Kayak.pl", host: "www.kayak.pl" }, { name: "Kayak.pt", host: "www.kayak.pt" }, { name: "Kayak.ru", host: "www.kayak.ru" }, { name: "Kayak.se", host: "www.kayak.se" }, { name: "Kayak.sg", host: "www.kayak.sg" }, { name: "Kayak.th", host: "www.kayak.co.th" }, { name: "Kayak.tr", host: "www.kayak.com.tr" }, { name: "Kayak.tw", host: "www.tw.kayak.com" }, { name: "Kayak.uk", host: "www.kayak.co.uk" }, { name: "Kayak.vn", host: "www.vn.kayak.com" }, { name: "Kayak.za", host: "www.za.kayak.com" } ]; const cabins = ["economy", "premium", "business", "first"]; function print(method) { //example https://www.Kayak.ru/flights/MOW-CPH...OW/2016-05-20/ // method: 0 = based on leg; 1 = based on segment const segs = !method ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin : Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])(); if (method && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === segs.length) return; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: true, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; const createUrl = function(host) { let url = `https://${host}/flights/` + segs .map( seg => `${seg.orig}-${seg.dest}/${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])( seg.dep.month )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(seg.dep.day)}` ) .join("/"); if (pax.adults > 1 || pax.children.length || pax.infSeat || pax.infLap) { url += `/${_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].numPax}adults`; } if (pax.children.length || pax.infSeat || pax.infLap) { url += "/children"; for (let i = 0; i < pax.infSeat; i++) { url += "-1S"; } for (let i = 0; i < pax.infLap; i++) { url += "-1L"; } for (let i = 0; i < pax.children.length; i++) { url += "-11"; } } url += "/" + cabin; return url; }; var url = createUrl("kayak.com"); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Kayak", desc: _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de" ? `Benutze ${segs.length} Segment(e)` : `Based on ${segs.length} segment(s)`, extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(0)); Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(1)); /***/ }), /* 43 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1); const editions = [ { name: "Momondo.ar", host: "www.momondo.com.ar" }, { name: "Momondo.at", host: "www.momondo.at" }, { name: "Momondo.au", host: "www.momondo.com.au" }, { name: "Momondo.be", host: "www.momondo.be" }, { name: "Momondo.br", host: "www.momondo.com.br" }, { name: "Momondo.by", host: "www.momondo.by" }, { name: "Momondo.ca", host: "www.momondo.ca" }, { name: "Momondo.ch", host: "www.momondo.ch" }, { name: "Momondo.cl", host: "www.momondo.cl" }, { name: "Momondo.cn", host: "www.cn.momondo.com" }, { name: "Momondo.co", host: "www.momondo.com.co" }, { name: "Momondo.cz", host: "www.momondo.cz" }, { name: "Momondo.de", host: "www.momondo.de" }, { name: "Momondo.dk", host: "www.momondo.dk" }, { name: "Momondo.ee", host: "www.momondo.ee" }, { name: "Momondo.es", host: "www.momondo.es" }, { name: "Momondo.fi", host: "www.momondo.fi" }, { name: "Momondo.fr", host: "www.momondo.fr" }, { name: "Momondo.hk", host: "www.momondo.hk" }, { name: "Momondo.ie", host: "www.momondo.ie" }, { name: "Momondo.in", host: "www.momondo.in" }, { name: "Momondo.it", host: "www.momondo.it" }, { name: "Momondo.kz", host: "www.momondo.kz" }, { name: "Momondo.mx", host: "www.momondo.mx" }, { name: "Momondo.nl", host: "www.momondo.nl" }, { name: "Momondo.no", host: "www.momondo.no" }, { name: "Momondo.nz", host: "www.momondo.co.nz" }, { name: "Momondo.om", host: "www.momondo.com" }, { name: "Momondo.pe", host: "www.momondo.com.pe" }, { name: "Momondo.pl", host: "www.momondo.pl" }, { name: "Momondo.pt", host: "www.momondo.pt" }, { name: "Momondo.ro", host: "www.momondo.ro" }, { name: "Momondo.ru", host: "www.momondo.ru" }, { name: "Momondo.se", host: "www.momondo.se" }, { name: "Momondo.tr", host: "www.momondo.com.tr" }, { name: "Momondo.tw", host: "www.momondo.tw" }, { name: "Momondo.ua", host: "www.momondo.ua" }, { name: "Momondo.uk", host: "www.momondo.co.uk" }, { name: "Momondo.za", host: "www.momondo.co.za" } ]; var cabins = ["economy", "premium", "business", "first"]; function print(method) { //example https://www.Momondo.ru/flightsearch/?...false&NA=false //pax # &AD=2&CA=0,8 – not working with children (total amount of adults + kids goes to adult) // method: 0 = based on leg; 1 = based on segment const segs = !method ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin : Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])(); if (method && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === segs.length) return; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: true, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; var createUrl = function(host) { let url = `https://${host}/flight-search/` + segs .map( seg => `${seg.orig}-${seg.dest}/${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])( seg.dep.month )}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(seg.dep.day)}` ) .join("/"); if (pax.adults > 1 || pax.children.length || pax.infSeat || pax.infLap) { url += `/${_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].numPax}adults`; } if (pax.children.length || pax.infSeat || pax.infLap) { url += "/children"; for (let i = 0; i < pax.infSeat; i++) { url += "-1S"; } for (let i = 0; i < pax.infLap; i++) { url += "-1L"; } for (let i = 0; i < pax.children.length; i++) { url += "-11"; } } url += "/" + cabin; return url; }; var url = createUrl("www.momondo.com"); var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Momondo", desc: _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de" ? `Benutze ${segs.length} Segment(e)` : `Based on ${segs.length} segment(s)`, extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(0)); Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(1)); /***/ }), /* 44 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1); const editions = [ { name: "Skyscanner.com", market: "US" }, { name: "Skyscanner.de", market: "DE" }, { name: "Skyscanner.it", market: "IT" }, { name: "Skyscanner.es", market: "ES" }, { name: "Skyscanner.co.uk", market: "UK" }, { name: "Skyscanner.dk", market: "DK" }, { name: "Skyscanner.mx", market: "MX" }, { name: "Skyscanner.fi", market: "FI" }, { name: "Skyscanner.fr", market: "FR" }, { name: "Skyscanner.no", market: "NO" }, { name: "Skyscanner.nl", market: "NL" }, { name: "Skyscanner.pt", market: "PT" }, { name: "Skyscanner.se", market: "SE" }, { name: "Skyscanner.ru", market: "RU" } ]; var cabins = ["", "premiumeconomy", "business", "first"]; function print(method) { //example https://www.skyscanner.ru/transport/d/stoc/2017-09-02/akl/akl/2017-09-16/stoc/akl/2017-09-29/syd?adults=1&children=0&adultsv2=1&childrenv2=&infants=0&cabinclass=economy&ref=day-view#results // method: 0 = based on leg; 1 = based on segment const segs = !method ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin : Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])(); if (method && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === segs.length) return; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 8, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; var createUrl = function(market) { var url = "http://www.skyscanner.com/transport/d/"; // Add the segments: url += segs .map( seg => `${seg.orig}/${seg.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(seg.dep.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])( seg.dep.day )}/${seg.dest}` ) .join("/"); // Add passenger info: url += "?adults=" + pax.adults + "adultsv2=" + pax.adults; if (pax.children.length || pax.infLap) url += "&childrenv2=" + Array.apply(null, { length: pax.infLap }) .map(o => 0) .concat(pax.children) .join("|"); if (pax.infLap) url += "&infants=" + pax.infLap; // Add cabin / class of service: url += "&cabinclass=" + cabin; // Add locale ("market"): url += "&ref=day-view&market=" + market; return url; }; var url = createUrl("US"); var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.market) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Skyscanner", desc: _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de" ? `Benutze ${segs.length} Segment(e)` : `Based on ${segs.length} segment(s)`, extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(0)); Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(1)); /***/ }), /* 45 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1); const editions = [ { name: "Arabic", host: "ar.tripadvisor.com" }, { name: "Argentina", host: "www.tripadvisor.com.ar" }, { name: "Australia", host: "www.tripadvisor.com.au" }, { name: "Austria", host: "www.tripadvisor.at" }, { name: "Belgium", host: "fr.tripadvisor.be" }, { name: "Belgium", host: "www.tripadvisor.be" }, { name: "Brazil", host: "www.tripadvisor.com.br" }, { name: "Canada (English)", host: "www.tripadvisor.ca" }, { name: "Canada (French)", host: "fr.tripadvisor.ca" }, { name: "Chile", host: "www.tripadvisor.cl" }, { name: "China", host: "www.tripadvisor.cn" }, { name: "Chinese International", host: "cn.tripadvisor.com" }, { name: "Colombia", host: "www.tripadvisor.co" }, { name: "Czech Republic", host: "www.tripadvisor.cz" }, { name: "Denmark", host: "www.tripadvisor.dk" }, { name: "Egypt", host: "www.tripadvisor.com.eg" }, { name: "Finland", host: "www.tripadvisor.fi" }, { name: "France", host: "www.tripadvisor.fr" }, { name: "Germany", host: "www.tripadvisor.de" }, { name: "Greece", host: "www.tripadvisor.com.gr" }, { name: "Hong Kong", host: "en.tripadvisor.com.hk" }, { name: "Hong Kong", host: "www.tripadvisor.com.hk" }, { name: "Hungary", host: "www.tripadvisor.co.hu" }, { name: "India", host: "www.tripadvisor.in" }, { name: "Indonesia", host: "www.tripadvisor.co.id" }, { name: "Ireland", host: "www.tripadvisor.ie" }, { name: "Israel", host: "www.tripadvisor.co.il" }, { name: "Italy", host: "www.tripadvisor.it" }, { name: "Japan", host: "www.tripadvisor.jp" }, { name: "Malaysia", host: "www.tripadvisor.com.my" }, { name: "Mexico", host: "www.tripadvisor.com.mx" }, { name: "New Zealand", host: "www.tripadvisor.co.nz" }, { name: "Norway", host: "no.tripadvisor.com" }, { name: "Peru", host: "www.tripadvisor.com.pe" }, { name: "Philippines", host: "www.tripadvisor.com.ph" }, { name: "Poland", host: "pl.tripadvisor.com" }, { name: "Portugal", host: "www.tripadvisor.pt" }, { name: "Russia", host: "www.tripadvisor.ru" }, { name: "Serbia", host: "www.tripadvisor.rs" }, { name: "Singapore", host: "www.tripadvisor.com.sg" }, { name: "Slovakia", host: "www.tripadvisor.sk" }, { name: "South Africa", host: "www.tripadvisor.co.za" }, { name: "South Korea", host: "www.tripadvisor.co.kr" }, { name: "Spain", host: "www.tripadvisor.es" }, { name: "Sweden", host: "www.tripadvisor.se" }, { name: "Switzerland", host: "www.tripadvisor.ch" }, { name: "Switzerland", host: "fr.tripadvisor.ch" }, { name: "Switzerland", host: "it.tripadvisor.ch" }, { name: "Taiwan", host: "www.tripadvisor.com.tw" }, { name: "Thailand", host: "th.tripadvisor.com" }, { name: "The Netherlands", host: "www.tripadvisor.nl" }, { name: "Turkey", host: "www.tripadvisor.com.tr" }, { name: "United Kingdom", host: "www.tripadvisor.co.uk" }, { name: "United States", host: "www.tripadvisor.com" }, { name: "Venezuela", host: "www.tripadvisor.com.ve" }, { name: "Vietnam", host: "www.tripadvisor.com.vn" } ]; const cabins = ["0", "3", "1", "2"]; function print(method) { // method: 0 = based on leg; 1 = based on segment const segs = !method ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin : Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])(); if (method && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === segs.length) return; const pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 8, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printOvago"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; const nonstop = method ? "yes" : "no"; const createUrl = function(host) { let url = `https://${host}/CheapFlightsSearchResults?&cos=${cabin}&nonstop=${nonstop}`; let paxNum = 0; const addPax = age => (url += `&pax${paxNum++}=${age}`); Array.apply(null, { length: pax.adults }).forEach(o => addPax("a")); Array.apply(null, { length: pax.infLap }).forEach(o => addPax(0)); pax.children.forEach(age => addPax(age)); url += "&" + segs .map( (seg, i) => `date${i * 2}=${seg.dep.year}${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])(seg.dep.month)}${Object(_utils__WEBPACK_IMPORTED_MODULE_4__[/* to2digits */ "h"])( seg.dep.day )}&airport${i * 2}=${seg.orig}&nearby${i * 2}=no&airport${i * 2 + 1}=${seg.dest}&nearby${i * 2 + 1}=no` ) .join("&"); return url; }; const url = createUrl("www.tripadvisor.com"); let extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Tripadvisor", desc: _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de" ? `Benutze ${segs.length} Segment(e)` : `Based on ${segs.length} segment(s)`, extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(0)); Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("meta", () => print(1)); /***/ }), /* 46 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); function printCheapOair() { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["Economy", "PremiumEconomy", "Business", "First"]; var coaUrl = "http://www.cheapoair.com/default.aspx?tabid=1832&ulang=en"; var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 12, sepInfSeat: true, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printCheapOair"); return; } coaUrl += "&ad=" + pax.adults + "&ch=" + pax.children.length + "&sr=0&is=" + pax.infSeat + "&il=" + pax.infLap; coaUrl += "&pos=US"; coaUrl += "&dispr=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price; var seg = 0; var slices = {}; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { slices[i] = ""; for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { seg++; if (slices[i]) slices[i] += ","; slices[i] += seg; coaUrl += "&cbn" + seg + "=" + cabins[ _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])() ]; coaUrl += "&carr" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier; coaUrl += "&dd" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); coaUrl += "&og" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; coaUrl += "&dt" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest; coaUrl += "&fbc" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; coaUrl += "&fnum" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr; } coaUrl += "&Slice" + (i + 1) + "=" + slices[i]; } if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { coaUrl += "&tt=OneWay"; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig ) { coaUrl += "&tt=RoundTrip"; } else { coaUrl += "&tt=MultiCity"; } return { url: coaUrl, title: "CheapOair" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", printCheapOair); /***/ }), /* 47 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); const eDreams = [ { name: "eDreams.com", domain: "www.edreams.com" }, { name: "eDreams.au", domain: "www.edreams.com.au" }, { name: "eDreams.br", domain: "www.edreams.com.br" }, { name: "eDreams.ca", domain: "ca.edreams.com" }, { name: "eDreams.ch", domain: "www.edreams.ch" }, { name: "eDreams.cl", domain: "cl.edreams.com" }, { name: "eDreams.cn", domain: "cn.edreams.com" }, { name: "eDreams.co", domain: "co.edreams.com" }, { name: "eDreams.co.uk", domain: "www.edreams.co.uk" }, { name: "eDreams.com.ar", domain: "www.edreams.com.ar" }, { name: "eDreams.com.mx", domain: "www.edreams.com.mx" }, { name: "eDreams.com.ru", domain: "www.edreams.com.ru" }, { name: "eDreams.com.tr", domain: "www.edreams.com.tr" }, { name: "eDreams.de", domain: "www.edreams.de" }, { name: "eDreams.es", domain: "www.edreams.es" }, { name: "eDreams.fr", domain: "www.edreams.fr" }, { name: "eDreams.gr", domain: "www.edreams.gr" }, { name: "eDreams.hk", domain: "www.edreams.hk" }, { name: "eDreams.id", domain: "id.edreams.com" }, { name: "eDreams.in", domain: "www.edreams.in" }, { name: "eDreams.it", domain: "www.edreams.it" }, { name: "eDreams.jp", domain: "www.edreams.jp" }, { name: "eDreams.ma", domain: "www.edreams.ma" }, { name: "eDreams.net", domain: "www.edreams.net" }, { name: "eDreams.nl", domain: "nl.edreams.com" }, { name: "eDreams.nz", domain: "nz.edreams.com" }, { name: "eDreams.pe", domain: "www.edreams.pe" }, { name: "eDreams.ph", domain: "www.edreams.ph" }, { name: "eDreams.pt", domain: "www.edreams.pt" }, { name: "eDreams.sg", domain: "sg.edreams.com" }, { name: "eDreams.th", domain: "th.edreams.com" }, { name: "eDreams.za", domain: "za.edreams.com" } ]; const opodo = [ { name: "Opodo.com", domain: "www.opodo.com" }, { name: "Opodo.at", domain: "www.opodo.at" }, { name: "Opodo.be", domain: "www.opodo.be" }, { name: "Opodo.ch", domain: "www.opodo.ch" }, { name: "Opodo.co.uk", domain: "www.opodo.co.uk" }, { name: "Opodo.com.au", domain: "www.opodo.com.au" }, { name: "Opodo.de", domain: "www.opodo.de" }, { name: "Opodo.dk", domain: "www.opodo.dk" }, { name: "Opodo.es", domain: "www.opodo.es" }, { name: "Opodo.fi", domain: "www.opodo.fi" }, { name: "Opodo.fr", domain: "www.opodo.fr" }, { name: "Opodo.it", domain: "www.opodo.it" }, { name: "Opodo.nl", domain: "www.opodo.nl" }, { name: "Opodo.no", domain: "www.opodo.no" }, { name: "Opodo.pl", domain: "www.opodo.pl" }, { name: "Opodo.pt", domain: "www.opodo.pt" }, { name: "Opodo.se", domain: "www.opodo.se" } ]; const travellink = [ { name: "Travellink.com", domain: "www.travellink.com" }, { name: "Travellink.de", domain: "www.travellink.de" }, { name: "Travellink.dk", domain: "www.travellink.dk" }, { name: "Travellink.fi", domain: "www.travellink.fi" }, { name: "Travellink.is", domain: "www.travellink.is" }, { name: "Travellink.no", domain: "www.travellink.no" }, { name: "Travellink.se", domain: "www.travellink.se" } ]; const cabins = ["TOURIST", "PREMIUM_ECONOMY", "BUSINESS", "FIRST"]; function printEdreams(title, editions) { var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printEdreams"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; var createUrl = function(domain) { const deeplink = `/results/type=M;${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map( (itin, i) => `dep${i}=${itin.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(itin.dep.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])( itin.dep.day )};from${i}=${itin.orig};to${i}=${itin.dest}` ) .join(";")};class=${cabin};adults=${pax.adults};children=${ pax.children.length };infants=${ pax.infLap };collectionmethod=false;airlinescodes=false;internalSearch=true`; const segKeys = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map( (itin, i) => `segmentKey${i}=0,${itin.seg .map(seg => seg.carrier + seg.fnr) .join(",")}` ) .join("&"); return `https://${domain}/travel/?landingPageType=TEST_AB&searchId=${new Date().getTime()}&deeplink=${deeplink}&fareItineraryKey=0,1A&${segKeys}&searchMainProductTypeName=FLIGHT`; }; var url = createUrl(editions[0].domain); if (!url) return; var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.domain) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title, extra }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", () => printEdreams("eDreams", eDreams)); Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", () => printEdreams("Opodo", opodo)); Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", () => printEdreams("Travellink", travellink)); /***/ }), /* 48 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); const editions = [ { name: "Seat24.se", host: "www.seat24.se" }, { name: "Seat24.de", host: "www.seat24.de" }, { name: "Seat24.dk", host: "www.seat24.dk" }, { name: "Seat24.fi", host: "www.seat24.fi" }, { name: "Seat24.no", host: "www.seat24.no" }, { name: "Flygvaruhuset.se", host: "www.flygvaruhuset.se" }, { name: "Travelpartner.se", host: "www.travelpartner.se" }, { name: "Travelpartner.fi", host: "www.travelpartner.fi" }, { name: "Travelpartner.no", host: "www.travelpartner.no" }, { name: "Budjet.se", host: "www.budjet.se" }, { name: "Budjet.fi", host: "www.budjet.fi" }, { name: "Budjet.no", host: "www.budjet.no" }, { name: "Budjet.dk", host: "www.budjet.dk" }, { name: "Goleif.dk", host: "www.goleif.dk" }, { name: "Travelfinder.se", host: "www.travelfinder.se" }, { name: "Gotogate.no", host: "www.gotogate.no" }, { name: "Gotogate.at", host: "www.gotogate.at" }, { name: "Gotogate.be", host: "be.gotogate.com" }, { name: "Gotogate.bg", host: "bg.gotogate.com" }, { name: "Gotogate.ch", host: "www.gotogate.ch" }, { name: "Gotogate.cz", host: "cz.gotogate.com" }, { name: "Gotogate.es", host: "www.gotogate.es" }, { name: "Gotogate.fr", host: "www.gotogate.fr" }, { name: "Gotogate.gr", host: "www.gotogate.gr" }, { name: "Gotogate.hu", host: "hu.gotogate.com" }, { name: "Gotogate.ie", host: "ie.gotogate.com" }, { name: "Gotogate.it", host: "www.gotogate.it" }, { name: "Gotogate.pl", host: "www.gotogate.pl" }, { name: "Gotogate.pt", host: "www.gotogate.pt" }, { name: "Gotogate.ro", host: "ro.gotogate.com" }, { name: "Gotogate.sk", host: "www.gotogate.sk" }, { name: "Gotogate.tr", host: "tr.gotogate.com" }, { name: "Gotogate.com.ua", host: "www.gotogate.com.ua" }, { name: "Gotogate.co.uk", host: "www.gotogate.co.uk" }, { name: "Flybillet.dk", host: "www.flybillet.dk" }, { name: "Travelstart.se", host: "www.travelstart.se" }, { name: "Travelstart.de", host: "www.travelstart.de" }, { name: "Travelstart.dk", host: "www.travelstart.dk" }, { name: "Travelstart.fi", host: "www.travelstart.fi" }, { name: "Travelstart.no", host: "www.travelstart.no" }, { name: "Supersaver.se", host: "www.supersavertravel.se" }, { name: "Supersaver.dk", host: "www.supersaver.dk" }, { name: "Supersaver.fi", host: "www.supersaver.fi" }, { name: "Supersaver.nl", host: "www.supersaver.nl" }, { name: "Supersaver.no", host: "www.supersaver.no" }, { name: "Supersaver.ru", host: "www.supersaver.ru" } ]; function printEtraveli() { if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 2) return; // no multi segments if ( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 2 && !( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].orig ) ) return; // no open jaws var convertDate = function(date, withYear) { return ( ("0" + date.day).slice(-2) + Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* monthnumberToName */ "f"])(date.month) + (withYear ? date.year.toString().slice(-2) : "") ); }; var createUrl = function(host) { var ggUrl = "http://" + host + "/air/"; ggUrl += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest + convertDate(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dep, false); if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 1) ggUrl += convertDate(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dep, false); ggUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].numPax; ggUrl += "?selectionKey=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map(function(itin) { return itin.seg .map(function(seg) { return ( seg.carrier + seg.fnr + "-" + convertDate(seg.dep, true) + "-" + seg.bookingclass ); }) .join("_"); }) .join("_"); return ggUrl; }; // picked seat24 as main one, but could be any of them var ggUrl = createUrl("www.seat24.de"); var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url: ggUrl, title: "Seat24.de", extra }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", printEtraveli); /***/ }), /* 49 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const editions = [ { name: "expedia.com", host: "expedia.com" }, { name: "orbitz.com", host: "orbitz.com" }, { name: "expedia.ca", host: "expedia.ca" }, { name: "expedia.de", host: "expedia.de" }, { name: "expedia.it", host: "expedia.it" }, { name: "expedia.es", host: "expedia.es" }, { name: "expedia.co.uk", host: "expedia.co.uk" }, { name: "expedia.dk", host: "expedia.dk" }, { name: "expedia.mx", host: "expedia.mx" }, { name: "expedia.fi", host: "expedia.fi" }, { name: "expedia.fr", host: "expedia.fr" }, { name: "expedia.no", host: "expedia.no" }, { name: "expedia.nl", host: "expedia.nl" }, { name: "expedia.ch", host: "expedia.ch" }, { name: "expedia.se", host: "expedia.se" }, { name: "expedia.at", host: "expedia.at" }, { name: "expedia.co.jp", host: "expedia.co.jp" } ]; function printExpedia() { var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 18, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printExpedia"); return; } let expediaClasses = ["coach", "premium", "business", "first"]; let minCabin = 3; let ExpediaCreateUrl = function(expediaBase) { let segUrl = ""; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { segUrl += "&legs%5B" + i + "%5D.departureAirport=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig; segUrl += "&legs%5B" + i + "%5D.arrivalAirport=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest; segUrl += "&legs%5B" + i + "%5D.departureDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].arr.year.toString() + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { segUrl += ( "&legs%5B" + i + "%5D.segments%5B" + j + "%5D=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + "-" + expediaClasses[ _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? minCabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])() ] + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr ).toLowerCase(); // check the min cabin: if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin < minCabin) { minCabin = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin; } } } // Build the URL: let baseUrl = "https://www." + expediaBase + "/Flight-Search-Details?action=dl&trip=MultipleDestination"; // Add travel class to URL: baseUrl += "&cabinClass=" + expediaClasses[ _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? minCabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])() ]; // Add passenger info to URL: baseUrl += "&adults=" + pax.adults; return baseUrl + segUrl; }; var ExpediaUrl = ExpediaCreateUrl("expedia.com"); var container = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; container += editions .map(function(obj, i) { return ( '<a href="' + ExpediaCreateUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); container += "</span></span>"; return { url: ExpediaUrl, title: "Expedia", extra: container }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("otas", printExpedia); /***/ }), /* 50 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); const editions = [ { name: "English", url: "" }, { name: "Español", url: "es" }, { name: "Português", url: "pt" }, { name: "Deutsch", url: "de" }, { name: "Italiano", url: "it" }, { name: "Dansk", url: "da" }, { name: "Svenska", url: "sv" }, { name: "Norsk", url: "no" }, { name: "Nederlands", url: "nl" }, { name: "Finnish", url: "fi" }, { name: "Polish", url: "pl" }, { name: "Turkish", url: "tk" } ]; function printFN() { var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printFN"); return; } const createUrl = function(edition) { const tty = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length === 2 ? 1 : 0; let search = `cref=fnbwmint&tty=${tty}&curr=${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].cur || "USD"}&nativecurr=${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].cur || "USD"}&cls=0&adt=${ pax.adults }&chd=${pax.children.length}&inf=${ pax.infLap }&tot=0.00&tax=0.00&chdtot=0.00&chdtax=0.00&inftot=0.00&inftax=0.00&`; let segCount = 0; search += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map((leg, i) => { const key = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length === 2 && i === 1 ? "ib" : "ob"; const legNum = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 2 ? 0 : i; return leg.seg .map((seg, j) => { const segNum = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 2 ? segCount++ : j; return `${key}${legNum + 1}${segNum ? segNum : ""}=${seg.carrier}${ seg.fnr }${seg.bookingclass}!${formatDate(seg.dep)}!${seg.orig}${ seg.dest }!${formatDate(seg.arr)}`; }) .join("&"); }) .join("&"); return `https://www.flightnetwork.com/${edition.url}${ edition.url ? "/" : "" }flights/showflight?enc=${btoa(search)}`; }; var url = createUrl(editions[0]); if (!url) return; let extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "FlightNetwork", extra }; } function formatDate(date) { return ( "" + date.year + Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(date.month) + Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(date.day) + date.time24.replace(":", "") ); } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", printFN); /***/ }), /* 51 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); const editions = [ { title: "Ovago", host: "ovago.com" }, { title: "Wowfare", host: "wowfare.com" } ]; const cabins = ["Y", "S", "C", "F"]; function print() { var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printHop2"); return; } const cabin = cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_3__[/* getCabin */ "b"])(Math.min(...Object(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentSegs */ "b"])().map(seg => seg.cabin)))]; const segs = Object(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentSegs */ "b"])(); const search = `OSKDCR*${cabin}${pax.adults}${pax.children.length}${ pax.infSeat }0/${_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map( itin => itin.orig + itin.dest + `${itin.dep.year}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])(itin.dep.month)}-${Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* to2digits */ "h"])( itin.dep.day )}` ) .join("/")}*${segs[segs.length - 1].carrier}~#${segs .map(seg => seg.carrier + seg.fnr) .join("#")}`; const createUrl = function(host) { return `https://${host}/ms?key=1_${btoa(search)}`; }; var url = createUrl("hop2.com"); if (!url) return; let extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.title + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Hop2", extra }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", print); /***/ }), /* 52 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const editions = [ { lang: "pl", country: "PL" }, { lang: "bg", country: "BG" }, { lang: "ro", country: "RO" }, { lang: "cs", country: "CZ" }, { lang: "hu", country: "HU" }, { lang: "sk", country: "SK" }, { lang: "pt", country: "PT" }, { lang: "es", country: "ES" }, { lang: "en", country: "GB" }, { lang: "en", country: "IE" }, { lang: "en", country: "US" }, { lang: "it", country: "IT" }, { lang: "de", country: "DE" }, { lang: "fr", country: "FR" }, { lang: "el", country: "GR" } ]; function printLucky2go() { var createUrl = function(edition) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["Economy", "Economy", "Business", "First"]; var pax = Object(___WEBPACK_IMPORTED_MODULE_2__["validatePax"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "g"])( "Error: Failed to validate Passengers in printLucky2go" ); return; } var url = "https://secure.lucky2go.com/flights/options/?Adult=" + pax.adults + "&Child=" + pax.children.length + "&Infant=0&InfantLap=" + pax.infLap + "&PointOfSaleCountry=" + edition.country + "&UserCurrency=" + (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].cur || "USD") + "&DisplayedPrice=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price + "&DisplayedPriceCurrency=" + (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].cur || "USD") + "&UserLanguage=" + edition.lang + "&TripType="; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { url += "OneWay"; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig ) { url += "RoundTrip"; } else { url += "MultiCity"; } var seg = 0; var slice = 1; var slicestr = ""; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { seg++; //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier; url += "&DepartureDate" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin]; slicestr += (slicestr === "" ? "" : "%2C") + seg; j += k; } url += "&Slice" + slice + "=" + slicestr; slice++; slicestr = ""; } return url; }; // get edition var url = createUrl({ lang: "en", country: "US" }); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map( edition => `<a href="${createUrl(edition)}" target="_blank">${ edition.lang }‑${edition.country}</a>` ) .join("<br/>"); extra += "</span></span>"; return { url, title: "lucky2go", extra }; } Object(___WEBPACK_IMPORTED_MODULE_2__["register"])("otas", printLucky2go); /***/ }), /* 53 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); function printPriceline() { var pricelineurl = "https://www.priceline.com/m/fly/search"; var searchparam = "~"; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) { // walks each leg searchparam = searchparam.substring(0, searchparam.length - 1) + "-"; pricelineurl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].orig; pricelineurl += "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dest; pricelineurl += "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].arr.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].orig; searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")).slice(-4); searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].dest; searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time.replace(":", "")).slice( -4 ); searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].bookingclass + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].carrier + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].fnr; searchparam += "~"; j += k; } } searchparam = searchparam.substring(1, searchparam.length - 1); var pax = Object(___WEBPACK_IMPORTED_MODULE_1__["validatePax"])({ maxPaxcount: 9, countInf: true, childAsAdult: 18, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "g"])("Error: Failed to validate Passengers in printPriceline"); return; } pricelineurl += "/desktop/details/R_" + searchparam + "_" + (pax.adults + pax.children.length + pax.infLap) + "_USD0.00_1-1-1?num-adults=" + pax.adults + "&num-children=" + pax.children.length + "&num-infants=" + pax.infLap + "&num-youths=0"; return { url: pricelineurl, title: "Priceline" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("otas", printPriceline); /***/ }), /* 54 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); function printGCM() { let url = ""; // Build multi-city search based on segments // Keeping continous path as long as possible for (let i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin.length; i++) { for (let j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg.length; j++) { url += _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j].orig + "-"; if (j + 1 < _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg.length) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j].dest != _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j + 1].orig ) { url += _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j].dest + ";"; } } else { url += _parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* currentItin */ "a"].itin[i].seg[j].dest + ";"; } } } return { img: "http://www.gcmap.com/map?MR=900&MX=182x182&PM=*&P=" + url, url: "http://www.gcmap.com/mapui?P=" + url, title: "GCM" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("other", printGCM); /***/ }), /* 55 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); function printWheretocredit() { return { url: "https://www.wheretocredit.com/calculator#" + Object(_parse_itin__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentSegs */ "b"])() .map(seg => [seg.orig, seg.dest, seg.carrier, seg.bookingclass].join("-") ) .join("/"), title: "Where to Credit" }; } Object(___WEBPACK_IMPORTED_MODULE_1__["register"])("other", printWheretocredit); /***/ }), /* 56 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./src/settings/appSettings.js var appSettings = __webpack_require__(4); // EXTERNAL MODULE: ./src/settings/userSettings.js var userSettings = __webpack_require__(2); // EXTERNAL MODULE: ./src/settings/itaSettings.js var itaSettings = __webpack_require__(5); // EXTERNAL MODULE: ./src/utils.js var utils = __webpack_require__(1); // EXTERNAL MODULE: ./src/parse/itin.js var parse_itin = __webpack_require__(0); // EXTERNAL MODULE: ./src/settings/translations.js var translations = __webpack_require__(8); // EXTERNAL MODULE: ./src/print/links.js var links = __webpack_require__(9); // CONCATENATED MODULE: ./src/print/index.js function render() { // Editor mode? if ( userSettings["a" /* default */].enableEditormode == 1 && Object(utils["d" /* findtargets */])("editoritem").length === 0 ) { Object(utils["k" /* toggleVis */])(document.getElementById("mptStartparse"), "inline-block"); addEditor(); return; } else if (Object(utils["d" /* findtargets */])("editoritem").length > 0) { Object(utils["k" /* toggleVis */])(document.getElementById("mptStartparse")); removeEditor(); Object(parse_itin["c" /* readItinerary */])(); } bindPageLayout(); if (userSettings["a" /* default */].enableFarerules == 1) bindRulelinks(); if (userSettings["a" /* default */].timeformat == "24h") bind24HourTime(); if ( userSettings["a" /* default */].language !== "en" && translations["a" /* default */][userSettings["a" /* default */].language].resultpage !== undefined ) bindTranslations( "resultpage", userSettings["a" /* default */].language, Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1).nextElementSibling ); if (userSettings["a" /* default */].enablePricebreakdown == 1) bindPriceBreakdown(); if (userSettings["a" /* default */].enableInlineMode == 1) printCPM(); Object(links["a" /* printLinksContainer */])(); if (userSettings["a" /* default */].enableSeatguru == 1) bindSeatguru(); if (userSettings["a" /* default */].enablePlanefinder == 1) bindPlanefinder(); if (userSettings["a" /* default */].enableWheretocredit == 1) bindWheretocredit(); } function cleanUp() { // empty outputcontainer if (document.getElementById("powertoolslinkcontainer") != undefined) { var div = document.getElementById("powertoolslinkcontainer"); div.innerHTML = ""; } // S&D powertool items var elems = Object(utils["d" /* findtargets */])("powertoolsitem"); for (var i = elems.length - 1; i >= 0; i--) { elems[i].parentElement.removeChild(elems[i]); } // S&D price breakdown var pbd = Object(utils["c" /* findtarget */])("pricebreakdown", 1); if (pbd != undefined) pbd.parentElement.removeChild(pbd); } function addEditor() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { var target = findItinTarget(i + 1, j + 1, "cabin").firstElementChild; var tmp = target.innerHTML; var bc = tmp.substr(tmp.length - 2, 1); var cabin = tmp.substr(0, tmp.length - 4); var cabins = [ ["Economy", "Y"], ["Premium Economy", "Y+"], ["Business", "C"], ["First", "F"] ]; var str = '<select style="width:40px" class="editoritem">'; for (var k = 0; k < cabins.length; k++) { str += '<option value="' + cabins[k][0] + '"' + (cabins[k][0] === cabin ? ' selected="selected"' : "") + ">" + cabins[k][1] + "</option>"; } str += "</select>"; str += ' (<input type="text" class="editoritem" value="' + bc + '" style="width:20px;text-align:center">)'; target.innerHTML = str; } } } function removeEditor() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { var target = findItinTarget(i + 1, j + 1, "cabin").firstElementChild; var cabin = target.firstElementChild.options[target.firstElementChild.selectedIndex] .value; var bc = target.firstElementChild.nextElementSibling.value; var str = cabin + " (" + bc + ")"; target.innerHTML = str; } } } function bindPageLayout() { Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.milagecontainer, 1).setAttribute( "rowspan", "10" ); const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbContainer, 1) .parentElement.parentElement; target.setAttribute("valign", "top"); target.setAttribute("height", "100%"); } function bind24HourTime() { // lets do the time-replacement const segs = Object(parse_itin["b" /* getCurrentSegs */])(); if (segs.length > 0) { const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1) .nextElementSibling; for (let i = 0; i < segs.length; i++) { target.innerHTML = target.innerHTML.replace( new RegExp(segs[i].dep.timeDisplay, "g"), segs[i].dep.time24 ); target.innerHTML = target.innerHTML.replace( new RegExp(segs[i].arr.timeDisplay, "g"), segs[i].arr.time24 ); } } } function bindRulelinks() { var i = 0; var j = 0; var t = 1; let target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.rulescontainer, t); if (target != undefined) { do { var current = Number( target.firstElementChild.innerHTML.replace(/[^\d]/gi, "") ); if (i > current) { j++; i = 0; } target = target.nextElementSibling.nextElementSibling.nextElementSibling; var targeturl = window.location.href.replace(/view-details/, "view-rules") + ";fare-key=" + j + "/" + i; var newlink = document.createElement("a"); newlink.setAttribute("class", "gwt-Anchor"); newlink.setAttribute("href", targeturl); newlink.setAttribute("target", "_blank"); var linkText = document.createTextNode("rules"); newlink.appendChild(linkText); target.parentElement.replaceChild(newlink, target); i++; t++; target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.rulescontainer, t); } while (target != undefined); } } function bindPriceBreakdown() { var basefares = 0; var taxes = 0; var surcharges = 0; var basefound = 0; var cur = ""; // define searchpattern to detect carrier imposed surcharges var searchpatt = new RegExp("((YQ|YR))"); var t = 1; var target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbLeft, t); if (userSettings["a" /* default */].enableInlineMode == 0) { var output = ""; var count = 0; } if (target != undefined) { do { var type = target.firstChild.firstChild.nodeType; if (type == 1) { basefound = 1; //it's a basefare var price = Number( target.nextElementSibling.firstElementChild.innerHTML.replace( /[^\d]/gi, "" ) ); if (cur == "") cur = target.nextElementSibling.firstElementChild.innerHTML.replace( /[\d,.]/g, "" ); basefares += price; } else if (basefound == 1 && type == 3) { //its a pricenode var name = target.firstElementChild.innerHTML; var price = Number( target.nextElementSibling.firstElementChild.innerHTML.replace( /[^\d]/gi, "" ) ); if ( Object(utils["e" /* hasClass */])( target.nextElementSibling, itaSettings["a" /* default */].resultpage.htbGreyBorder ) ) { //we are done for this container var sum = basefares + taxes + surcharges; if (userSettings["a" /* default */].enableInlineMode == 1) { var newtr = document.createElement("tr"); newtr.innerHTML = '<td class="' + itaSettings["a" /* default */].resultpage.htbLeft + '"><div class="gwt-Label">Basefare per passenger (' + ((basefares / sum) * 100).toFixed(2).toString() + '%)</div></td><td class="' + itaSettings["a" /* default */].resultpage.htbGreyBorder + '"><div class="gwt-Label">' + cur + (basefares / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</div></td>"; target.parentElement.parentElement.insertBefore( newtr, target.parentElement ); var newtr = document.createElement("tr"); newtr.innerHTML = '<td class="' + itaSettings["a" /* default */].resultpage.htbLeft + '"><div class="gwt-Label">Taxes per passenger (' + ((taxes / sum) * 100).toFixed(2).toString() + '%)</div></td><td class="' + itaSettings["a" /* default */].resultpage.htbRight + '"><div class="gwt-Label">' + cur + (taxes / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</div></td>"; target.parentElement.parentElement.insertBefore( newtr, target.parentElement ); var newtr = document.createElement("tr"); newtr.innerHTML = '<td class="' + itaSettings["a" /* default */].resultpage.htbLeft + '"><div class="gwt-Label">Surcharges per passenger (' + ((surcharges / sum) * 100).toFixed(2).toString() + '%)</div></td><td class="' + itaSettings["a" /* default */].resultpage.htbRight + '"><div class="gwt-Label">' + cur + (surcharges / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</div></td>"; target.parentElement.parentElement.insertBefore( newtr, target.parentElement ); var newtr = document.createElement("tr"); newtr.innerHTML = '<td class="' + itaSettings["a" /* default */].resultpage.htbLeft + '"><div class="gwt-Label">Basefare + Taxes per passenger (' + (((basefares + taxes) / sum) * 100).toFixed(2).toString() + '%)</div></td><td class="' + itaSettings["a" /* default */].resultpage.htbGreyBorder + '"><div class="gwt-Label">' + cur + ((basefares + taxes) / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</div></td>"; target.parentElement.parentElement.insertBefore( newtr, target.parentElement ); } else { count++; output += '<table style="float:left; margin-right:15px;"><tbody>'; output += '<tr><td colspan=3 style="text-align:center;">Price breakdown ' + count + ": </td></tr>"; output += "<tr><td>" + cur + ' per mile</td><td colspan=2 style="text-align:center;">' + (sum / parse_itin["a" /* currentItin */].dist / 100).toFixed(4).toString() + "</td></tr>"; output += '<tr><td>Basefare</td><td style="padding:0px 3px;text-align:right;">' + ((basefares / sum) * 100).toFixed(1).toString() + '%</td><td style="text-align:right;">' + cur + (basefares / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</td></tr>"; output += '<tr><td>Tax</td><td style="padding:0px 3px;text-align:right;">' + ((taxes / sum) * 100).toFixed(1).toString() + '%</td><td style="text-align:right;">' + cur + (taxes / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</td></tr>"; output += '<tr><td>Surcharges</td><td style="padding:0px 3px;text-align:right;">' + ((surcharges / sum) * 100).toFixed(1).toString() + '%</td><td style="text-align:right;">' + cur + (surcharges / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</td></tr>"; output += '<tr><td style="border-top: 1px solid #878787;padding:2px 0">Bf+Tax</td><td style="border-top: 1px solid #878787;padding:2px 3px;text-align:right;">' + (((basefares + taxes) / sum) * 100).toFixed(1).toString() + '%</td><td style="border-top: 1px solid #878787;padding:2px 0; text-align:right;">' + cur + ((basefares + taxes) / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</td></tr>"; output += "</tbody></table>"; } parse_itin["a" /* currentItin */].basefares = +(basefares / 100).toFixed(2); parse_itin["a" /* currentItin */].taxes = +(taxes / 100).toFixed(2); parse_itin["a" /* currentItin */].surcharges = +(surcharges / 100).toFixed(2); // reset var basefound = 0; basefares = 0; taxes = 0; surcharges = 0; } else { //Carrier surcharge? if (searchpatt.test(name) === true) { surcharges += price; } else { taxes += price; } } } t++; target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbLeft, t); } while (target != undefined); } if (userSettings["a" /* default */].enableInlineMode == 0) { var printtarget = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbContainer, 1) .parentElement.parentElement.parentElement; var newtr = document.createElement("tr"); newtr.setAttribute("class", "pricebreakdown"); newtr.innerHTML = "<td><div>" + output + "</div></td>"; printtarget.parentElement.insertBefore(newtr, printtarget); } } function bindTranslations(page, lang, target) { if (translations["a" /* default */][lang] === undefined) { Object(utils["g" /* printNotification */])("Error: Translation " + lang + " not found"); return false; } if (translations["a" /* default */][lang][page] === undefined) { Object(utils["g" /* printNotification */])( "Error: Translation " + lang + " not found for page " + page ); return false; } for (let i in translations["a" /* default */][lang][page]) { const re = new RegExp(i, "g"); target.innerHTML = target.innerHTML.replace( re, translations["a" /* default */][lang][page][i] ); } } function printCPM() { document .querySelector(".KIR33AB-y-c:nth-of-type(1)") .insertAdjacentHTML( "beforeend", `<li class="powertoolsitem">${( Number(parse_itin["a" /* currentItin */].price) / Number(parse_itin["a" /* currentItin */].dist) ).toFixed(4)} cpm</li>` ); } function bindSeatguru() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { // walks each leg for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < parse_itin["a" /* currentItin */].itin[i].seg.length - 1) { if ( parse_itin["a" /* currentItin */].itin[i].seg[j + k].fnr != parse_itin["a" /* currentItin */].itin[i].seg[j + k + 1].fnr || parse_itin["a" /* currentItin */].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } // build the search to identify flight: var target = findItinTarget(i + 1, j + 1, "plane"); if (!target) { Object(utils["g" /* printNotification */])("Error: Could not find target in bindSeatguru"); return false; } else { var url = "http://www.seatguru.com/findseatmap/findseatmap.php?carrier=" + parse_itin["a" /* currentItin */].itin[i].seg[j].carrier + "&flightno=" + parse_itin["a" /* currentItin */].itin[i].seg[j].fnr + "&date=" + ("0" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.month).slice(-2) + "%2F" + ("0" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.day).slice(-2) + "%2F" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.year + "&to=&from=" + parse_itin["a" /* currentItin */].itin[i].seg[j].orig; target.children[0].innerHTML = '<a href="' + url + '" target="_blank" style="text-decoration:none;color:black">' + target.children[0].innerHTML + "</a>"; } j += k; } } } function bindPlanefinder() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { // walks each leg for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < parse_itin["a" /* currentItin */].itin[i].seg.length - 1) { if ( parse_itin["a" /* currentItin */].itin[i].seg[j + k].fnr != parse_itin["a" /* currentItin */].itin[i].seg[j + k + 1].fnr || parse_itin["a" /* currentItin */].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } // build the search to identify flight: var target = findItinTarget(i + 1, j + 1, "flight"); if (!target) { Object(utils["g" /* printNotification */])("Error: Could not find target in bindPlanefinder"); return false; } else { var url = "http://www.planefinder.net/data/flight/" + parse_itin["a" /* currentItin */].itin[i].seg[j].carrier + parse_itin["a" /* currentItin */].itin[i].seg[j].fnr; target.children[0].innerHTML = '<a href="' + url + '" target="_blank" style="text-decoration:none;color:black">' + target.children[0].innerHTML + "</a>"; } j += k; } } } function bindWheretocredit() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { // walks each leg for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { //walks each segment of leg var target = findItinTarget(i + 1, j + 1, "cabin"); if (!target) { Object(utils["g" /* printNotification */])("Error: Could not find target in bindWheretocredit"); return false; } else { var url = "http://www.wheretocredit.com/" + parse_itin["a" /* currentItin */].itin[i].seg[j].carrier.toLowerCase() + "/" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass.toLowerCase(); target.children[0].innerHTML = target.children[0].innerHTML .replace( /<a.*?\/a>/, "(" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")" ) .replace( "(" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")", '<a href="' + url + '" target="_blank" style="text-decoration:none;color:black">(' + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")</a>" ); } } } } function findItinTarget(leg, seg, tcell) { var target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1); if (!target) { Object(utils["g" /* printNotification */])("Error: Itin not found in findItinTarget-function"); return; } // go to leg var targetLeg = target.nextElementSibling.children[leg - 1]; if (targetLeg === undefined) { Object(utils["g" /* printNotification */])("Error: Leg not found in findItinTarget-function"); return; } // go to segments of leg var targetSeg = targetLeg.children[1].children; if (targetSeg.length >= 2) { // go to desired segment var index = 0; var j = 0; let i = 0; for (i = 0; i < targetSeg.length; i++) { if (Object(utils["e" /* hasClass */])(targetSeg[i], itaSettings["a" /* default */].resultpage.itinRow)) { j++; if (j >= seg) { index = i; //special handling for one-seg-legs here if (targetSeg.length === 2 || targetSeg.length === 3) { // 1. Headline 2. Flight-details 3. arrival next day.. index--; } break; } } } // end-for if (i == targetSeg.length) { //target not found Object(utils["g" /* printNotification */])( "Error: Call to unreachable Segment in Leg " + leg + " in findItinTarget-function" ); return; } var rowoffset = 0; var columnoffset = 0; switch (tcell) { case "headline": // special case here allways first row... even in one-seg-legs rowoffset = index * -1; columnoffset = 1; break; case "logo": rowoffset = 0; columnoffset = 0; break; case "airportsdate": rowoffset = 0; columnoffset = 1; break; case "flight": rowoffset = 1; columnoffset = 0; break; case "deptime": rowoffset = 1; columnoffset = 1; break; case "arrtime": rowoffset = 1; columnoffset = 2; break; case "duration": rowoffset = 1; columnoffset = 2; break; case "plane": rowoffset = 1; columnoffset = 4; break; case "cabin": rowoffset = 1; columnoffset = 5; break; default: Object(utils["g" /* printNotification */])("Error: Unknown Target in findItinTarget-function"); return; } return targetSeg[index + rowoffset].children[columnoffset]; } else { Object(utils["g" /* printNotification */])("Error: Unknown error in findItinTarget-function"); return; } } // EXTERNAL MODULE: ./src/settings/paxSettings.js var paxSettings = __webpack_require__(6); // CONCATENATED MODULE: ./src/print/settings.js /**************************************** Settings Stuff *****************************************/ function createUsersettings() { var str = ""; var settingscontainer = document.createElement("div"); settingscontainer.setAttribute("id", "mptSettingsContainer"); settingscontainer.setAttribute("style", "border-bottom: 1px dashed grey;"); settingscontainer.innerHTML = '<div style="display:inline-block;float:left;cursor:pointer;" id="passengerVisToggler">Passengers (<label id="mtpPaxCount">1a</label>)</div><div id="mptStartparse" class="invis" style="margin-left:20px;display:none;cursor:pointer">Editor-Mode:Parse!</div><div id="mtpNotification" style="margin-left:50px;display:inline-block;"></div><div style="display:inline-block;float:right;"><div id="settingsVisToggler" style="display:inline-block;cursor:pointer;">Settings</div> (v' + appSettings["a" /* default */].version + ') <div id="mptCabintoggler" style="display:inline-block;">(Cabin: <label id="mptCabinMode" style="width:30px;text-align:center;cursor:pointer;display:inline-block">Auto</label>)</div></div><div id="mptSettings" class="invis" style="display:none;border-top: 1px dotted grey;"></div><div id="mptPassengers" class="invis" style="display:none;border-top: 1px dotted grey;"></div>'; var target = document.getElementById("contentwrapper"); target.parentElement.insertBefore(settingscontainer, target); document.getElementById("settingsVisToggler").onclick = function() { Object(utils["k" /* toggleVis */])(document.getElementById("mptSettings")); }; document.getElementById("passengerVisToggler").onclick = function() { Object(utils["k" /* toggleVis */])(document.getElementById("mptPassengers")); }; // Build settings target = document.getElementById("mptSettings"); str = '<div id="mptrestoredefault" style="text-align:right;font-weight:bold;text-decoration:underline;">Restore Defaults</div>'; str += '<div style="text-align:center;font-weight:bold">**** Display Settings: ****</div>'; str += '<div style="margin:5px 0;"><div style="float:left;width:33%">'; str += '<div id="mpttimeformat">Time Format: <label style="cursor:pointer;">' + printSettingsvalue("timeformat") + "</label></div>"; str += '<div id="mptlanguage">Language: <label style="cursor:pointer;">' + printSettingsvalue("language") + "</label></div>"; str += '<div id="mptenableFarerules">Open rules in new window: <label style="cursor:pointer;">' + printSettingsvalue("enableFarerules") + "</label></div>"; str += '</div><div style="float:left;width:33%">'; str += '<div id="mptenableInlineMode">Inline Mode: <label style="cursor:pointer;">' + printSettingsvalue("enableInlineMode") + "</label></div>"; str += '<div id="mptenableIMGautoload">Images autoload: <label style="cursor:pointer;">' + printSettingsvalue("enableIMGautoload") + "</label></div>"; str += '<div id="mptenablePricebreakdown">Price breakdown: <label style="cursor:pointer;">' + printSettingsvalue("enablePricebreakdown") + "</label></div>"; str += '</div><div style="float:left;width:33%">'; str += '<div id="mptenableDeviders">Enable link dividers: <label style="cursor:pointer;">' + printSettingsvalue("enableDeviders") + "</label></div>"; str += '<div id="mptlinkFontsize">Link font size: <label style="cursor:pointer;">' + printSettingsvalue("linkFontsize") + "</label>%</div>"; str += '<div id="mptshowAllAirlines">Show all airline links: <label style="cursor:pointer;">' + printSettingsvalue("showAllAirlines") + "</label></div>"; str += '</div><div style="clear:both"></div></div>'; str += '<div style="text-align:center;font-weight:bold">**** Feature Settings: ****</div>'; str += '<div style="margin:5px 0"><div style="float:left;width:33%">'; str += '<div id="mptenableEditormode">Editor mode: <label style="cursor:pointer;">' + printSettingsvalue("enableEditormode") + "</label></div>"; str += '</div><div style="float:left;width:33%">'; str += '<div id="mptenableAffiliates" title="Enables affiliate links to support the development of ITA Matrix Powertools">Support this tool: <label style="cursor:pointer;">' + printSettingsvalue("enableAffiliates") + "</label></div>"; str += '</div><div style="float:left;width:33%">'; str += '<div id="mptenableWheretocredit">Enable WhereToCredit: <label style="cursor:pointer;">' + printSettingsvalue("enableWheretocredit") + "</label></div>"; str += '<div id="mptenablePlanefinder">Enable Planefinder: <label style="cursor:pointer;">' + printSettingsvalue("enablePlanefinder") + "</label></div>"; str += '<div id="mptenableSeatguru">Enable Seatguru: <label style="cursor:pointer;">' + printSettingsvalue("enableSeatguru") + "</label></div>"; str += '</div><div style="clear:both"></div></div>'; str += '<div style="text-align:center;font-weight:bold">**** Link Settings: ****</div>'; str += '<div style="margin:5px 0">'; Object.keys(userSettings["d" /* registeredSettings */]).forEach(setting => { str += `<div id="mpt${setting}" style="width:33%;float:left;">${ userSettings["d" /* registeredSettings */][setting].name }: <label style="cursor:pointer;">${printSettingsvalue( setting )}</label></div>`; }); str += '<div style="clear:both"></div></div>'; str += '<div style="text-align:center;font-weight:bold"><label id="configcloser" style="cursor:pointer;text-decoration:underline;">Close</label><div>'; target.innerHTML = str; // these onClick event handlers need only be added once: document.getElementById("mptrestoredefault").onclick = function() { restoreDefaultSettings(); }; document.getElementById("mpttimeformat").onclick = function() { toggleSettings("timeformat"); }; document.getElementById("mptlanguage").onclick = function() { toggleSettings("language"); }; document.getElementById("mptenableDeviders").onclick = function() { toggleSettings("enableDeviders"); }; document.getElementById("mptenableInlineMode").onclick = function() { toggleSettings("enableInlineMode"); }; document.getElementById("mptenableEditormode").onclick = function() { toggleSettings("enableEditormode"); }; document.getElementById("mptenableIMGautoload").onclick = function() { toggleSettings("enableIMGautoload"); }; document.getElementById("mptenableFarerules").onclick = function() { toggleSettings("enableFarerules"); }; document.getElementById("mptenablePricebreakdown").onclick = function() { toggleSettings("enablePricebreakdown"); }; document.getElementById("mptlinkFontsize").onclick = function() { toggleSettings("linkFontsize"); }; document.getElementById("mptshowAllAirlines").onclick = function() { toggleSettings("showAllAirlines"); }; document.getElementById("mptenablePlanefinder").onclick = function() { toggleSettings("enablePlanefinder"); }; document.getElementById("mptenableSeatguru").onclick = function() { toggleSettings("enableSeatguru"); }; document.getElementById("mptenableWheretocredit").onclick = function() { toggleSettings("enableWheretocredit"); }; document.getElementById("mptenableAffiliates").onclick = function() { toggleSettings("enableAffiliates"); }; document.getElementById("mptCabintoggler").onclick = function() { toggleSettings("cabin"); }; document.getElementById("configcloser").onclick = function() { Object(utils["k" /* toggleVis */])(document.getElementById("mptSettings")); }; document.getElementById("mptStartparse").onclick = function() { setTimeout(function() { render(); }, 50); }; Object.keys(userSettings["d" /* registeredSettings */]).forEach(setting => { document.getElementById("mpt" + setting).onclick = function() { toggleSettings(setting); }; }); // Build passengers target = document.getElementById("mptPassengers"); str = '<div style="float:left;width:25%">'; str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Adults: </label> <select name="numAdults" id="numAdults" style="width:50px">'; for (var i = 1; i <= 9; i++) { str += "<option>" + i + "</option>"; } str += "</select></div>"; str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Infants (Lap): </label> <select name="numInfantsLap" id="numInfantsLap" style="width:50px">'; for (var i = 0; i <= 9; i++) { str += "<option>" + i + "</option>"; } str += "</select></div>"; str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Infants (Seat): </label> <select name="numInfantsSeat" id="numInfantsSeat" style="width:50px">'; for (var i = 0; i <= 9; i++) { str += "<option>" + i + "</option>"; } str += "</select></div>"; str += '</div><div style="float:left;width:25%">'; for (var k = 1; k <= 3; k++) { str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' + k + ' - Age: </label> <select name="child' + k + 'age" id="child' + k + 'age" style="width:50px">'; str += '<option value="-1">-</option>'; for (var i = 2; i <= 17; i++) { str += '<option value="' + i + '">' + i + "</option>"; } str += "</select></div>"; } str += '</div><div style="float:left;width:25%">'; for (var k = 4; k <= 6; k++) { str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' + k + ' - Age: </label> <select name="child' + k + 'age" id="child' + k + 'age" style="width:50px">'; str += '<option value="-1">-</option>'; for (var i = 2; i <= 17; i++) { str += '<option value="' + i + '">' + i + "</option>"; } str += "</select></div>"; } str += '</div><div style="float:left;width:25%">'; for (var k = 7; k <= 8; k++) { str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' + k + ' - Age: </label> <select name="child' + k + 'age" id="child' + k + 'age" style="width:50px">'; str += '<option value="-1">-</option>'; for (var i = 2; i <= 17; i++) { str += '<option value="' + i + '">' + i + "</option>"; } str += "</select></div>"; } str += '<div style="width:150px;margin:2px 0"><div id="mtpConfirmPax" style="float:left;width:50%;text-align:center;cursor:pointer;font-weight:bold">Confirm</div><div id="mtpCancelPax" style="float:left;width:50%;text-align:center;cursor:pointer;font-weight:bold">Cancel</div></div>'; str += '</div><div style="clear:both;"></div>'; target.innerHTML = str; document.getElementById("mtpCancelPax").onclick = function() { Object(utils["k" /* toggleVis */])(document.getElementById("mptPassengers")); }; document.getElementById("mtpConfirmPax").onclick = function() { processPassengers(); }; } function restoreDefaultSettings() { // this function will remove any saved settings and restore default values if ( window.confirm( "Are you sure you want to reset any saved settings to the default values? The page will automatically reload to complete the reset." ) ) { (async () => { if (typeof GM === "undefined" || typeof GM.info != "undefined") { await Object(userSettings["e" /* saveUserSettings */])(null); } // Reload the current page: window.location.reload(); })(); // end async for GM4 } } function toggleSettings(target) { console.log("toggleSettings called. target=" + target); if (userSettings["d" /* registeredSettings */][target] && userSettings["d" /* registeredSettings */][target].values) { const pos = findPositionForValue( userSettings["a" /* default */][target], userSettings["d" /* registeredSettings */][target].values ); if (pos >= userSettings["d" /* registeredSettings */][target].values.length - 1 || pos === -1) { userSettings["a" /* default */][target] = userSettings["d" /* registeredSettings */][target].values[0].value; } else { userSettings["a" /* default */][target] = userSettings["d" /* registeredSettings */][target].values[pos + 1].value; } } else { switch (target) { case "timeformat": if (userSettings["a" /* default */].timeformat == "12h") { userSettings["a" /* default */].timeformat = "24h"; } else { userSettings["a" /* default */].timeformat = "12h"; } break; case "language": if (userSettings["a" /* default */].language == "de") { userSettings["a" /* default */].language = "en"; } else { userSettings["a" /* default */].language = "de"; } break; case "linkFontsize": if ( userSettings["a" /* default */].linkFontsize <= 190 && userSettings["a" /* default */].linkFontsize >= 50 ) { userSettings["a" /* default */].linkFontsize += 10; } else { userSettings["a" /* default */].linkFontsize = 50; } break; case "cabin": if (appSettings["a" /* default */].cabin === "Auto") { appSettings["a" /* default */].cabin = "Y"; } else if (appSettings["a" /* default */].cabin === "Y") { appSettings["a" /* default */].cabin = "Y+"; } else if (appSettings["a" /* default */].cabin === "Y+") { appSettings["a" /* default */].cabin = "C"; } else if (appSettings["a" /* default */].cabin === "C") { appSettings["a" /* default */].cabin = "F"; } else if (appSettings["a" /* default */].cabin === "F") { appSettings["a" /* default */].cabin = "Auto"; } document.getElementById("mptCabinMode").innerHTML = appSettings["a" /* default */].cabin; // refresh links Object(links["a" /* printLinksContainer */])(); break; default: if (userSettings["a" /* default */][target] == 1) { userSettings["a" /* default */][target] = 0; } else { userSettings["a" /* default */][target] = 1; } } } document.getElementById( "mpt" + target ).firstElementChild.innerHTML = printSettingsvalue(target); Object(userSettings["e" /* saveUserSettings */])(); } function processPassengers() { var paxText = ""; var e = document.getElementById("numAdults"); paxSettings["a" /* default */].adults = Number(e.options[e.selectedIndex].value); e = document.getElementById("numInfantsLap"); paxSettings["a" /* default */].infantsLap = Number(e.options[e.selectedIndex].value); e = document.getElementById("numInfantsSeat"); paxSettings["a" /* default */].infantsSeat = Number(e.options[e.selectedIndex].value); paxSettings["a" /* default */].cAges = new Array(); for (var i = 1; i <= 8; i++) { processChild("child" + i + "age"); } paxText = paxSettings["a" /* default */].adults + "a" + (paxSettings["a" /* default */].cAges.length > 0 ? " " + paxSettings["a" /* default */].cAges.length + "c" : "") + (paxSettings["a" /* default */].infantsLap + paxSettings["a" /* default */].infantsSeat > 0 ? " " + (paxSettings["a" /* default */].infantsLap + paxSettings["a" /* default */].infantsSeat) + "i" : ""); document.getElementById("mtpPaxCount").innerHTML = paxText; Object(utils["k" /* toggleVis */])(document.getElementById("mptPassengers")); // reload links Object(links["a" /* printLinksContainer */])(); } function processChild(target) { var e = document.getElementById(target); var tmp = 0; tmp = Number(e.options[e.selectedIndex].value); if (tmp >= 2) { paxSettings["a" /* default */].cAges.push(tmp); } } function printSettingsvalue(target) { if (userSettings["d" /* registeredSettings */][target]) { return findNameForValue( userSettings["a" /* default */][target], userSettings["d" /* registeredSettings */][target].values ); } switch (target) { case "timeformat": return userSettings["a" /* default */].timeformat; case "language": return userSettings["a" /* default */].language; case "linkFontsize": return userSettings["a" /* default */].linkFontsize.toString(); default: return boolToEnabled(userSettings["a" /* default */][target]); } } function findNameForValue(needle, haystack) { var ret = "Unknown"; for (var i in haystack) { if (haystack[i].value == needle) { return haystack[i].name; } } return ret; } function findPositionForValue(needle, haystack) { return haystack.findIndex(o => o.value == needle); } function boolToEnabled(value) { if (value == 1) { return "enabled"; } else { return "disabled"; } } // CONCATENATED MODULE: ./src/index.js /**************************************** Start Script *****************************************/ // *** DO NOT CHANGE BELOW THIS LINE***/ (async () => { await Object(userSettings["b" /* loadUserSettings */])(); createUsersettings(); injectCss(); if (window.top === window.self) { if (appSettings["a" /* default */].scriptEngine === 0) { startScript(); } else { // execute language detection and afterwards functions for current page if (typeof window.addEventListener !== "undefined") { window.addEventListener("load", () => startScript(), false); } else { window.onload = () => startScript(); } } } })(); // end async for GM4 function startScript() { if (window.location.href !== appSettings["a" /* default */].laststatus) { setTimeout(function() { Object(appSettings["d" /* reset */])(); cleanUp(); getPageLang(); }, 100); appSettings["a" /* default */].laststatus = window.location.href; } if (appSettings["a" /* default */].scriptrunning === 1) { setTimeout(function() { startScript(); }, 500); } } /**************************************** Get Language *****************************************/ function getPageLang() { if (window.location.href.indexOf("view-details") != -1) { setTimeout(function() { fePS(); }, 200); } else if ( window.location.href.indexOf("#search:") != -1 || window.location.href == "https://matrix.itasoftware.com/" || window.location.href == "https://matrix.itasoftware.com/" ) { setTimeout(function() { startPage(); }, 200); } } /********************************************* Start page *********************************************/ function startPage() { // try to get content if (!Object(itaSettings["b" /* findTargetSetVersion */])(settings => settings.startpage.maindiv, 1)) { Object(utils["g" /* printNotification */])("Error: Unable to find content on start page."); return false; } else { // apply style-fix const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].startpage.maindiv, 1); target.children[0].children[0].children[0].children[0].setAttribute( "valign", "top" ); } } /********************************************* Result page *********************************************/ //Primary function for extracting flight data from ITA/Matrix function fePS() { // try to get content const itin = Object(itaSettings["b" /* findTargetSetVersion */])(settings => settings.resultpage.itin, 1); if (!itin) { Object(utils["g" /* printNotification */])("Error: Unable to find Content on result page."); return false; } // retry if itin not loaded if (itin.parentElement.previousElementSibling.style.display != "none") { appSettings["a" /* default */].retrycount++; if (appSettings["a" /* default */].retrycount > 50) { Object(utils["g" /* printNotification */])( "Error: Timeout on result page. Content not found after 10s." ); return false; } setTimeout(function() { fePS(); }, 200); return false; } // do some self-testing to prevent crashing on class-changes for (let i in itaSettings["a" /* default */].resultpage) { if (Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage[i], 1) === undefined) { Object(utils["g" /* printNotification */])( "Error: Unable to find class " + itaSettings["a" /* default */].resultpage[i] + " for " + i + "." ); return false; } } Object(parse_itin["c" /* readItinerary */])(); render(); } function injectCss() { var css = "", head = document.head || document.getElementsByTagName("head")[0], style = document.createElement("style"); style.type = "text/css"; css += ".pt-hover-menu { position:absolute; padding: 8px; background-color: #FFF; border: 1px solid #808080; display:none; }"; css += ".pt-hover-container:hover .pt-hover-menu { display:inline; }"; style.appendChild(document.createTextNode(css)); head.appendChild(style); } /***/ }) /******/ ]);