{"version":3,"sources":["node_modules/timezones-ical-library/dist/mjs/index.js","node_modules/add-to-calendar-button/dist/module/index.js","src/app/shared/components/calendar-event-body/calendar-event-body.component.ts","src/app/shared/components/calendar-event-body/calendar-event-body.component.html"],"sourcesContent":["/*!\n * @preserve\n *\n * ++++++++++++++++++++++++++++++++++++++\n * Add to Calendar TimeZones iCal Library\n * ++++++++++++++++++++++++++++++++++++++\n *\n * Version: 1.9.1\n * Creator: Jens Kuerschner (https://jenskuerschner.de)\n * Project: https://github.com/add2cal/timezones-ical-library\n * License: Apache-2.0\n *\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst tzlibVersion = '1.9.1';\nconst tzlibZonesDB = {\n \"Zulu\": [\"Etc/UTC\", 0],\n \"WET\": [\"Europe/Lisbon\", 1],\n \"W-SU\": [\"Europe/Moscow\", 2],\n \"Universal\": [\"Etc/UTC\", 0],\n \"UTC\": [\"Etc/UTC\", 0],\n \"UCT\": [\"Etc/UTC\", 0],\n \"Turkey\": [\"Europe/Istanbul\", 3],\n \"Singapore\": [\"Asia/Singapore\", 4],\n \"ROK\": [\"Asia/Seoul\", 5],\n \"ROC\": [\"Asia/Taipei\", 6],\n \"Portugal\": [\"Europe/Lisbon\", 1],\n \"Poland\": [\"Europe/Warsaw\", 7],\n \"PST8PDT\": [\"America/Los_Angeles\", 8],\n \"PRC\": [\"Asia/Shanghai\", 9],\n \"Navajo\": [\"America/Denver\", 10],\n \"NZ\": [\"Pacific/Auckland\", 11],\n \"NZ-CHAT\": [\"Pacific/Chatham\", 12],\n \"MST7MDT\": [\"America/Denver\", 10],\n \"MST\": [\"America/Phoenix\", 13],\n \"MET\": [\"Europe/Brussels\", 14],\n \"Libya\": [\"Africa/Tripoli\", 15],\n \"Kwajalein\": [\"Pacific/Kwajalein\", 16],\n \"Japan\": [\"Asia/Tokyo\", 17],\n \"Jamaica\": [\"America/Jamaica\", 18],\n \"Israel\": [\"Asia/Jerusalem\", 19],\n \"Iran\": [\"Asia/Tehran\", 20],\n \"Iceland\": [\"Africa/Abidjan\", 21],\n \"Hongkong\": [\"Asia/Hong_Kong\", 22],\n \"HST\": [\"Pacific/Honolulu\", 23],\n \"Greenwich\": [\"Etc/GMT\", 24],\n \"GMT0\": [\"Etc/GMT\", 24],\n \"GMT\": [\"Etc/GMT\", 24],\n \"GMT-0\": [\"Etc/GMT\", 24],\n \"GMT+0\": [\"Etc/GMT\", 24],\n \"GB\": [\"Europe/London\", 25],\n \"GB-Eire\": [\"Europe/London\", 25],\n \"Eire\": [\"Europe/Dublin\", 26],\n \"Egypt\": [\"Africa/Cairo\", 27],\n \"EST5EDT\": [\"America/New_York\", 28],\n \"EST\": [\"America/Panama\", 29],\n \"EET\": [\"Europe/Athens\", 30],\n \"Cuba\": [\"America/Havana\", 31],\n \"CST6CDT\": [\"America/Chicago\", 32],\n \"CET\": [\"Europe/Brussels\", 14],\n \"US\": {\n \"Samoa\": [\"Pacific/Pago_Pago\", 33],\n \"Pacific\": [\"America/Los_Angeles\", 8],\n \"Mountain\": [\"America/Denver\", 10],\n \"Michigan\": [\"America/Detroit\", 34],\n \"Indiana-Starke\": [\"America/Indiana/Knox\", 35],\n \"Hawaii\": [\"Pacific/Honolulu\", 23],\n \"Eastern\": [\"America/New_York\", 28],\n \"East-Indiana\": [\"America/Indiana/Indianapolis\", 36],\n \"Central\": [\"America/Chicago\", 32],\n \"Arizona\": [\"America/Phoenix\", 13],\n \"Aleutian\": [\"America/Adak\", 37],\n \"Alaska\": [\"America/Anchorage\", 38]\n },\n \"Pacific\": {\n \"Yap\": [\"Pacific/Port_Moresby\", 39],\n \"Wallis\": [\"Pacific/Tarawa\", 40],\n \"Wake\": [\"Pacific/Tarawa\", 40],\n \"Truk\": [\"Pacific/Port_Moresby\", 39],\n \"Tongatapu\": [\"\", 41],\n \"Tarawa\": [\"\", 40],\n \"Tahiti\": [\"\", 42],\n \"Samoa\": [\"Pacific/Pago_Pago\", 33],\n \"Saipan\": [\"Pacific/Guam\", 43],\n \"Rarotonga\": [\"\", 44],\n \"Port_Moresby\": [\"\", 39],\n \"Ponape\": [\"Pacific/Guadalcanal\", 45],\n \"Pohnpei\": [\"Pacific/Guadalcanal\", 45],\n \"Pitcairn\": [\"\", 46],\n \"Palau\": [\"\", 47],\n \"Pago_Pago\": [\"\", 33],\n \"Noumea\": [\"\", 48],\n \"Norfolk\": [\"\", 49],\n \"Niue\": [\"\", 50],\n \"Nauru\": [\"\", 51],\n \"Midway\": [\"Pacific/Pago_Pago\", 33],\n \"Marquesas\": [\"\", 52],\n \"Majuro\": [\"Pacific/Tarawa\", 40],\n \"Kwajalein\": [\"\", 16],\n \"Kosrae\": [\"\", 53],\n \"Kiritimati\": [\"\", 54],\n \"Kanton\": [\"\", 55],\n \"Johnston\": [\"Pacific/Honolulu\", 23],\n \"Honolulu\": [\"\", 23],\n \"Guam\": [\"\", 43],\n \"Guadalcanal\": [\"\", 45],\n \"Gambier\": [\"\", 56],\n \"Galapagos\": [\"\", 57],\n \"Funafuti\": [\"Pacific/Tarawa\", 40],\n \"Fiji\": [\"\", 58],\n \"Fakaofo\": [\"\", 59],\n \"Enderbury\": [\"Pacific/Kanton\", 55],\n \"Efate\": [\"\", 60],\n \"Easter\": [\"\", 61],\n \"Chuuk\": [\"Pacific/Port_Moresby\", 39],\n \"Chatham\": [\"\", 12],\n \"Bougainville\": [\"\", 62],\n \"Auckland\": [\"\", 11],\n \"Apia\": [\"\", 63]\n },\n \"Mexico\": {\n \"General\": [\"America/Mexico_City\", 64],\n \"BajaSur\": [\"America/Mazatlan\", 65],\n \"BajaNorte\": [\"America/Tijuana\", 66]\n },\n \"Indian\": {\n \"Reunion\": [\"Asia/Dubai\", 67],\n \"Mayotte\": [\"Africa/Nairobi\", 68],\n \"Mauritius\": [\"\", 69],\n \"Maldives\": [\"\", 70],\n \"Mahe\": [\"Asia/Dubai\", 67],\n \"Kerguelen\": [\"Indian/Maldives\", 70],\n \"Comoro\": [\"Africa/Nairobi\", 68],\n \"Cocos\": [\"Asia/Yangon\", 71],\n \"Christmas\": [\"Asia/Bangkok\", 72],\n \"Chagos\": [\"\", 73],\n \"Antananarivo\": [\"Africa/Nairobi\", 68]\n },\n \"Europe\": {\n \"Zurich\": [\"\", 74],\n \"Zaporozhye\": [\"Europe/Kyiv\", 75],\n \"Zagreb\": [\"Europe/Belgrade\", 76],\n \"Warsaw\": [\"\", 7],\n \"Volgograd\": [\"\", 77],\n \"Vilnius\": [\"\", 78],\n \"Vienna\": [\"\", 79],\n \"Vatican\": [\"Europe/Rome\", 80],\n \"Vaduz\": [\"Europe/Zurich\", 74],\n \"Uzhgorod\": [\"Europe/Kyiv\", 75],\n \"Ulyanovsk\": [\"\", 81],\n \"Tiraspol\": [\"Europe/Chisinau\", 82],\n \"Tirane\": [\"\", 83],\n \"Tallinn\": [\"\", 84],\n \"Stockholm\": [\"Europe/Berlin\", 85],\n \"Sofia\": [\"\", 86],\n \"Skopje\": [\"Europe/Belgrade\", 76],\n \"Simferopol\": [\"\", 87],\n \"Saratov\": [\"\", 88],\n \"Sarajevo\": [\"Europe/Belgrade\", 76],\n \"San_Marino\": [\"Europe/Rome\", 80],\n \"Samara\": [\"\", 89],\n \"Rome\": [\"\", 80],\n \"Riga\": [\"\", 90],\n \"Prague\": [\"\", 91],\n \"Podgorica\": [\"Europe/Belgrade\", 76],\n \"Paris\": [\"\", 92],\n \"Oslo\": [\"Europe/Berlin\", 85],\n \"Nicosia\": [\"Asia/Nicosia\", 93],\n \"Moscow\": [\"\", 2],\n \"Monaco\": [\"Europe/Paris\", 92],\n \"Minsk\": [\"\", 94],\n \"Mariehamn\": [\"Europe/Helsinki\", 95],\n \"Malta\": [\"\", 96],\n \"Madrid\": [\"\", 97],\n \"Luxembourg\": [\"Europe/Brussels\", 14],\n \"London\": [\"\", 25],\n \"Ljubljana\": [\"Europe/Belgrade\", 76],\n \"Lisbon\": [\"\", 1],\n \"Kyiv\": [\"\", 75],\n \"Kirov\": [\"\", 98],\n \"Kiev\": [\"Europe/Kyiv\", 75],\n \"Kaliningrad\": [\"\", 99],\n \"Jersey\": [\"Europe/London\", 25],\n \"Istanbul\": [\"\", 3],\n \"Isle_of_Man\": [\"Europe/London\", 25],\n \"Helsinki\": [\"\", 95],\n \"Guernsey\": [\"Europe/London\", 25],\n \"Gibraltar\": [\"\", 100],\n \"Dublin\": [\"\", 26],\n \"Copenhagen\": [\"Europe/Berlin\", 85],\n \"Chisinau\": [\"\", 82],\n \"Busingen\": [\"Europe/Zurich\", 74],\n \"Budapest\": [\"\", 101],\n \"Bucharest\": [\"\", 102],\n \"Brussels\": [\"\", 14],\n \"Bratislava\": [\"Europe/Prague\", 91],\n \"Berlin\": [\"\", 85],\n \"Belgrade\": [\"\", 76],\n \"Belfast\": [\"Europe/London\", 25],\n \"Athens\": [\"\", 30],\n \"Astrakhan\": [\"\", 103],\n \"Andorra\": [\"\", 104],\n \"Amsterdam\": [\"Europe/Brussels\", 14]\n },\n \"Etc\": {\n \"Zulu\": [\"Etc/UTC\", 0],\n \"Universal\": [\"Etc/UTC\", 0],\n \"UTC\": [\"\", 0],\n \"UCT\": [\"Etc/UTC\", 0],\n \"Greenwich\": [\"Etc/GMT\", 24],\n \"GMT0\": [\"Etc/GMT\", 24],\n \"GMT\": [\"\", 24],\n \"GMT-9\": [\"\", 105],\n \"GMT-8\": [\"\", 106],\n \"GMT-7\": [\"\", 107],\n \"GMT-6\": [\"\", 108],\n \"GMT-5\": [\"\", 109],\n \"GMT-4\": [\"\", 110],\n \"GMT-3\": [\"\", 111],\n \"GMT-2\": [\"\", 112],\n \"GMT-14\": [\"\", 113],\n \"GMT-13\": [\"\", 114],\n \"GMT-12\": [\"\", 115],\n \"GMT-11\": [\"\", 116],\n \"GMT-10\": [\"\", 117],\n \"GMT-1\": [\"\", 118],\n \"GMT-0\": [\"Etc/GMT\", 24],\n \"GMT+9\": [\"\", 119],\n \"GMT+8\": [\"\", 120],\n \"GMT+7\": [\"\", 121],\n \"GMT+6\": [\"\", 122],\n \"GMT+5\": [\"\", 123],\n \"GMT+4\": [\"\", 124],\n \"GMT+3\": [\"\", 125],\n \"GMT+2\": [\"\", 126],\n \"GMT+12\": [\"\", 127],\n \"GMT+11\": [\"\", 128],\n \"GMT+10\": [\"\", 129],\n \"GMT+1\": [\"\", 130],\n \"GMT+0\": [\"Etc/GMT\", 24]\n },\n \"Chile\": {\n \"EasterIsland\": [\"Pacific/Easter\", 61],\n \"Continental\": [\"America/Santiago\", 131]\n },\n \"Canada\": {\n \"Yukon\": [\"America/Whitehorse\", 132],\n \"Saskatchewan\": [\"America/Regina\", 133],\n \"Pacific\": [\"America/Vancouver\", 134],\n \"Newfoundland\": [\"America/St_Johns\", 135],\n \"Mountain\": [\"America/Edmonton\", 136],\n \"Eastern\": [\"America/Toronto\", 137],\n \"Central\": [\"America/Winnipeg\", 138],\n \"Atlantic\": [\"America/Halifax\", 139]\n },\n \"Brazil\": {\n \"West\": [\"America/Manaus\", 140],\n \"East\": [\"America/Sao_Paulo\", 141],\n \"DeNoronha\": [\"America/Noronha\", 142],\n \"Acre\": [\"America/Rio_Branco\", 143]\n },\n \"Australia\": {\n \"Yancowinna\": [\"Australia/Broken_Hill\", 144],\n \"West\": [\"Australia/Perth\", 145],\n \"Victoria\": [\"Australia/Melbourne\", 146],\n \"Tasmania\": [\"Australia/Hobart\", 147],\n \"Sydney\": [\"\", 148],\n \"South\": [\"Australia/Adelaide\", 149],\n \"Queensland\": [\"Australia/Brisbane\", 150],\n \"Perth\": [\"\", 145],\n \"North\": [\"Australia/Darwin\", 151],\n \"NSW\": [\"Australia/Sydney\", 148],\n \"Melbourne\": [\"\", 146],\n \"Lord_Howe\": [\"\", 152],\n \"Lindeman\": [\"\", 153],\n \"LHI\": [\"Australia/Lord_Howe\", 152],\n \"Hobart\": [\"\", 147],\n \"Eucla\": [\"\", 154],\n \"Darwin\": [\"\", 151],\n \"Currie\": [\"Australia/Hobart\", 147],\n \"Canberra\": [\"Australia/Sydney\", 148],\n \"Broken_Hill\": [\"\", 144],\n \"Brisbane\": [\"\", 150],\n \"Adelaide\": [\"\", 149],\n \"ACT\": [\"Australia/Sydney\", 148]\n },\n \"Atlantic\": {\n \"Stanley\": [\"\", 155],\n \"St_Helena\": [\"Africa/Abidjan\", 21],\n \"South_Georgia\": [\"\", 156],\n \"Reykjavik\": [\"Africa/Abidjan\", 21],\n \"Madeira\": [\"\", 157],\n \"Jan_Mayen\": [\"Europe/Berlin\", 85],\n \"Faroe\": [\"\", 158],\n \"Faeroe\": [\"Atlantic/Faroe\", 158],\n \"Cape_Verde\": [\"\", 159],\n \"Canary\": [\"\", 160],\n \"Bermuda\": [\"\", 161],\n \"Azores\": [\"\", 162]\n },\n \"Asia\": {\n \"Yerevan\": [\"\", 163],\n \"Yekaterinburg\": [\"\", 164],\n \"Yangon\": [\"\", 71],\n \"Yakutsk\": [\"\", 165],\n \"Vladivostok\": [\"\", 166],\n \"Vientiane\": [\"Asia/Bangkok\", 72],\n \"Ust-Nera\": [\"\", 167],\n \"Urumqi\": [\"\", 168],\n \"Ulan_Bator\": [\"Asia/Ulaanbaatar\", 169],\n \"Ulaanbaatar\": [\"\", 169],\n \"Ujung_Pandang\": [\"Asia/Makassar\", 170],\n \"Tomsk\": [\"\", 171],\n \"Tokyo\": [\"\", 17],\n \"Thimphu\": [\"\", 172],\n \"Thimbu\": [\"Asia/Thimphu\", 172],\n \"Tel_Aviv\": [\"Asia/Jerusalem\", 19],\n \"Tehran\": [\"\", 20],\n \"Tbilisi\": [\"\", 173],\n \"Tashkent\": [\"\", 174],\n \"Taipei\": [\"\", 6],\n \"Srednekolymsk\": [\"\", 175],\n \"Singapore\": [\"\", 4],\n \"Shanghai\": [\"\", 9],\n \"Seoul\": [\"\", 5],\n \"Samarkand\": [\"\", 176],\n \"Sakhalin\": [\"\", 177],\n \"Saigon\": [\"Asia/Ho_Chi_Minh\", 178],\n \"Riyadh\": [\"\", 179],\n \"Rangoon\": [\"Asia/Yangon\", 71],\n \"Qyzylorda\": [\"\", 180],\n \"Qostanay\": [\"\", 181],\n \"Qatar\": [\"\", 182],\n \"Pyongyang\": [\"\", 183],\n \"Pontianak\": [\"\", 184],\n \"Phnom_Penh\": [\"Asia/Bangkok\", 72],\n \"Oral\": [\"\", 185],\n \"Omsk\": [\"\", 186],\n \"Novosibirsk\": [\"\", 187],\n \"Novokuznetsk\": [\"\", 188],\n \"Nicosia\": [\"\", 93],\n \"Muscat\": [\"Asia/Dubai\", 67],\n \"Manila\": [\"\", 189],\n \"Makassar\": [\"\", 170],\n \"Magadan\": [\"\", 190],\n \"Macau\": [\"\", 191],\n \"Macao\": [\"Asia/Macau\", 191],\n \"Kuwait\": [\"Asia/Riyadh\", 179],\n \"Kuching\": [\"\", 192],\n \"Kuala_Lumpur\": [\"Asia/Singapore\", 4],\n \"Krasnoyarsk\": [\"\", 193],\n \"Kolkata\": [\"\", 194],\n \"Khandyga\": [\"\", 195],\n \"Katmandu\": [\"Asia/Kathmandu\", 196],\n \"Kathmandu\": [\"\", 196],\n \"Kashgar\": [\"Asia/Urumqi\", 168],\n \"Karachi\": [\"\", 197],\n \"Kamchatka\": [\"\", 198],\n \"Kabul\": [\"\", 199],\n \"Jerusalem\": [\"\", 19],\n \"Jayapura\": [\"\", 200],\n \"Jakarta\": [\"\", 201],\n \"Istanbul\": [\"Europe/Istanbul\", 3],\n \"Irkutsk\": [\"\", 202],\n \"Hovd\": [\"\", 203],\n \"Hong_Kong\": [\"\", 22],\n \"Ho_Chi_Minh\": [\"\", 178],\n \"Hebron\": [\"\", 204],\n \"Harbin\": [\"Asia/Shanghai\", 9],\n \"Gaza\": [\"\", 205],\n \"Famagusta\": [\"\", 206],\n \"Dushanbe\": [\"\", 207],\n \"Dubai\": [\"\", 67],\n \"Dili\": [\"\", 208],\n \"Dhaka\": [\"\", 209],\n \"Damascus\": [\"\", 210],\n \"Dacca\": [\"Asia/Dhaka\", 209],\n \"Colombo\": [\"\", 211],\n \"Chungking\": [\"Asia/Shanghai\", 9],\n \"Chongqing\": [\"Asia/Shanghai\", 9],\n \"Choibalsan\": [\"Asia/Ulaanbaatar\", 169],\n \"Chita\": [\"\", 212],\n \"Calcutta\": [\"Asia/Kolkata\", 194],\n \"Brunei\": [\"Asia/Kuching\", 192],\n \"Bishkek\": [\"\", 213],\n \"Beirut\": [\"\", 214],\n \"Barnaul\": [\"\", 215],\n \"Bangkok\": [\"\", 72],\n \"Baku\": [\"\", 216],\n \"Bahrain\": [\"Asia/Qatar\", 182],\n \"Baghdad\": [\"\", 217],\n \"Atyrau\": [\"\", 218],\n \"Ashkhabad\": [\"Asia/Ashgabat\", 219],\n \"Ashgabat\": [\"\", 219],\n \"Aqtobe\": [\"\", 220],\n \"Aqtau\": [\"\", 221],\n \"Anadyr\": [\"\", 222],\n \"Amman\": [\"\", 223],\n \"Almaty\": [\"\", 224],\n \"Aden\": [\"Asia/Riyadh\", 179]\n },\n \"Arctic\": {\n \"Longyearbyen\": [\"Europe/Berlin\", 85]\n },\n \"Antarctica\": {\n \"Vostok\": [\"\", 225],\n \"Troll\": [\"\", 226],\n \"Syowa\": [\"Asia/Riyadh\", 179],\n \"South_Pole\": [\"Pacific/Auckland\", 11],\n \"Rothera\": [\"\", 227],\n \"Palmer\": [\"\", 228],\n \"McMurdo\": [\"Pacific/Auckland\", 11],\n \"Mawson\": [\"\", 229],\n \"Macquarie\": [\"\", 230],\n \"DumontDUrville\": [\"Pacific/Port_Moresby\", 39],\n \"Davis\": [\"\", 231],\n \"Casey\": [\"\", 232]\n },\n \"America\": {\n \"Yellowknife\": [\"America/Edmonton\", 136],\n \"Yakutat\": [\"\", 233],\n \"Winnipeg\": [\"\", 138],\n \"Whitehorse\": [\"\", 132],\n \"Virgin\": [\"America/Puerto_Rico\", 234],\n \"Vancouver\": [\"\", 134],\n \"Tortola\": [\"America/Puerto_Rico\", 234],\n \"Toronto\": [\"\", 137],\n \"Tijuana\": [\"\", 66],\n \"Thunder_Bay\": [\"America/Toronto\", 137],\n \"Thule\": [\"\", 235],\n \"Tegucigalpa\": [\"\", 236],\n \"Swift_Current\": [\"\", 237],\n \"St_Vincent\": [\"America/Puerto_Rico\", 234],\n \"St_Thomas\": [\"America/Puerto_Rico\", 234],\n \"St_Lucia\": [\"America/Puerto_Rico\", 234],\n \"St_Kitts\": [\"America/Puerto_Rico\", 234],\n \"St_Johns\": [\"\", 135],\n \"St_Barthelemy\": [\"America/Puerto_Rico\", 234],\n \"Sitka\": [\"\", 238],\n \"Shiprock\": [\"America/Denver\", 10],\n \"Scoresbysund\": [\"\", 239],\n \"Sao_Paulo\": [\"\", 141],\n \"Santo_Domingo\": [\"\", 240],\n \"Santiago\": [\"\", 131],\n \"Santarem\": [\"\", 241],\n \"Santa_Isabel\": [\"America/Tijuana\", 66],\n \"Rosario\": [\"America/Argentina/Cordoba\", 242],\n \"Rio_Branco\": [\"\", 143],\n \"Resolute\": [\"\", 243],\n \"Regina\": [\"\", 133],\n \"Recife\": [\"\", 244],\n \"Rankin_Inlet\": [\"\", 245],\n \"Rainy_River\": [\"America/Winnipeg\", 138],\n \"Punta_Arenas\": [\"\", 246],\n \"Puerto_Rico\": [\"\", 234],\n \"Porto_Velho\": [\"\", 247],\n \"Porto_Acre\": [\"America/Rio_Branco\", 143],\n \"Port_of_Spain\": [\"America/Puerto_Rico\", 234],\n \"Port-au-Prince\": [\"\", 248],\n \"Phoenix\": [\"\", 13],\n \"Paramaribo\": [\"\", 249],\n \"Pangnirtung\": [\"America/Iqaluit\", 250],\n \"Panama\": [\"\", 29],\n \"Ojinaga\": [\"\", 251],\n \"Nuuk\": [\"\", 252],\n \"Noronha\": [\"\", 142],\n \"Nome\": [\"\", 253],\n \"Nipigon\": [\"America/Toronto\", 137],\n \"New_York\": [\"\", 28],\n \"Nassau\": [\"America/Toronto\", 137],\n \"Montserrat\": [\"America/Puerto_Rico\", 234],\n \"Montreal\": [\"America/Toronto\", 137],\n \"Montevideo\": [\"\", 254],\n \"Monterrey\": [\"\", 255],\n \"Moncton\": [\"\", 256],\n \"Miquelon\": [\"\", 257],\n \"Mexico_City\": [\"\", 64],\n \"Metlakatla\": [\"\", 258],\n \"Merida\": [\"\", 259],\n \"Menominee\": [\"\", 260],\n \"Mendoza\": [\"America/Argentina/Mendoza\", 261],\n \"Mazatlan\": [\"\", 65],\n \"Matamoros\": [\"\", 262],\n \"Martinique\": [\"\", 263],\n \"Marigot\": [\"America/Puerto_Rico\", 234],\n \"Manaus\": [\"\", 140],\n \"Managua\": [\"\", 264],\n \"Maceio\": [\"\", 265],\n \"Lower_Princes\": [\"America/Puerto_Rico\", 234],\n \"Louisville\": [\"America/Kentucky/Louisville\", 266],\n \"Los_Angeles\": [\"\", 8],\n \"Lima\": [\"\", 267],\n \"La_Paz\": [\"\", 268],\n \"Kralendijk\": [\"America/Puerto_Rico\", 234],\n \"Knox_IN\": [\"America/Indiana/Knox\", 35],\n \"Juneau\": [\"\", 269],\n \"Jujuy\": [\"America/Argentina/Jujuy\", 270],\n \"Jamaica\": [\"\", 18],\n \"Iqaluit\": [\"\", 250],\n \"Inuvik\": [\"\", 271],\n \"Indianapolis\": [\"America/Indiana/Indianapolis\", 36],\n \"Hermosillo\": [\"\", 272],\n \"Havana\": [\"\", 31],\n \"Halifax\": [\"\", 139],\n \"Guyana\": [\"\", 273],\n \"Guayaquil\": [\"\", 274],\n \"Guatemala\": [\"\", 275],\n \"Guadeloupe\": [\"America/Puerto_Rico\", 234],\n \"Grenada\": [\"America/Puerto_Rico\", 234],\n \"Grand_Turk\": [\"\", 276],\n \"Goose_Bay\": [\"\", 277],\n \"Godthab\": [\"America/Nuuk\", 252],\n \"Glace_Bay\": [\"\", 278],\n \"Fortaleza\": [\"\", 279],\n \"Fort_Wayne\": [\"America/Indiana/Indianapolis\", 36],\n \"Fort_Nelson\": [\"\", 280],\n \"Ensenada\": [\"America/Tijuana\", 66],\n \"El_Salvador\": [\"\", 281],\n \"Eirunepe\": [\"\", 282],\n \"Edmonton\": [\"\", 136],\n \"Dominica\": [\"America/Puerto_Rico\", 234],\n \"Detroit\": [\"\", 34],\n \"Denver\": [\"\", 10],\n \"Dawson_Creek\": [\"\", 283],\n \"Dawson\": [\"\", 284],\n \"Danmarkshavn\": [\"\", 285],\n \"Curacao\": [\"America/Puerto_Rico\", 234],\n \"Cuiaba\": [\"\", 286],\n \"Creston\": [\"America/Phoenix\", 13],\n \"Costa_Rica\": [\"\", 287],\n \"Cordoba\": [\"America/Argentina/Cordoba\", 242],\n \"Coral_Harbour\": [\"America/Panama\", 29],\n \"Ciudad_Juarez\": [\"\", 288],\n \"Chihuahua\": [\"\", 289],\n \"Chicago\": [\"\", 32],\n \"Cayman\": [\"America/Panama\", 29],\n \"Cayenne\": [\"\", 290],\n \"Catamarca\": [\"America/Argentina/Catamarca\", 291],\n \"Caracas\": [\"\", 292],\n \"Cancun\": [\"\", 293],\n \"Campo_Grande\": [\"\", 294],\n \"Cambridge_Bay\": [\"\", 295],\n \"Buenos_Aires\": [\"America/Argentina/Buenos_Aires\", 296],\n \"Boise\": [\"\", 297],\n \"Bogota\": [\"\", 298],\n \"Boa_Vista\": [\"\", 299],\n \"Blanc-Sablon\": [\"America/Puerto_Rico\", 234],\n \"Belize\": [\"\", 300],\n \"Belem\": [\"\", 301],\n \"Barbados\": [\"\", 302],\n \"Bahia_Banderas\": [\"\", 303],\n \"Bahia\": [\"\", 304],\n \"Atka\": [\"America/Adak\", 37],\n \"Atikokan\": [\"America/Panama\", 29],\n \"Asuncion\": [\"\", 305],\n \"Aruba\": [\"America/Puerto_Rico\", 234],\n \"Araguaina\": [\"\", 306],\n \"Antigua\": [\"America/Puerto_Rico\", 234],\n \"Anguilla\": [\"America/Puerto_Rico\", 234],\n \"Anchorage\": [\"\", 38],\n \"Adak\": [\"\", 37],\n \"North_Dakota\": {\n \"New_Salem\": [\"\", 307],\n \"Center\": [\"\", 308],\n \"Beulah\": [\"\", 309]\n },\n \"Kentucky\": {\n \"Monticello\": [\"\", 310],\n \"Louisville\": [\"\", 266]\n },\n \"Indiana\": {\n \"Winamac\": [\"\", 311],\n \"Vincennes\": [\"\", 312],\n \"Vevay\": [\"\", 313],\n \"Tell_City\": [\"\", 314],\n \"Petersburg\": [\"\", 315],\n \"Marengo\": [\"\", 316],\n \"Knox\": [\"\", 35],\n \"Indianapolis\": [\"\", 36]\n },\n \"Argentina\": {\n \"Ushuaia\": [\"\", 317],\n \"Tucuman\": [\"\", 318],\n \"San_Luis\": [\"\", 319],\n \"San_Juan\": [\"\", 320],\n \"Salta\": [\"\", 321],\n \"Rio_Gallegos\": [\"\", 322],\n \"Mendoza\": [\"\", 261],\n \"La_Rioja\": [\"\", 323],\n \"Jujuy\": [\"\", 270],\n \"Cordoba\": [\"\", 242],\n \"ComodRivadavia\": [\"America/Argentina/Catamarca\", 291],\n \"Catamarca\": [\"\", 291],\n \"Buenos_Aires\": [\"\", 296]\n }\n },\n \"Africa\": {\n \"Windhoek\": [\"\", 324],\n \"Tunis\": [\"\", 325],\n \"Tripoli\": [\"\", 15],\n \"Timbuktu\": [\"Africa/Abidjan\", 21],\n \"Sao_Tome\": [\"\", 326],\n \"Porto-Novo\": [\"Africa/Lagos\", 327],\n \"Ouagadougou\": [\"Africa/Abidjan\", 21],\n \"Nouakchott\": [\"Africa/Abidjan\", 21],\n \"Niamey\": [\"Africa/Lagos\", 327],\n \"Ndjamena\": [\"\", 328],\n \"Nairobi\": [\"\", 68],\n \"Monrovia\": [\"\", 329],\n \"Mogadishu\": [\"Africa/Nairobi\", 68],\n \"Mbabane\": [\"Africa/Johannesburg\", 330],\n \"Maseru\": [\"Africa/Johannesburg\", 330],\n \"Maputo\": [\"\", 331],\n \"Malabo\": [\"Africa/Lagos\", 327],\n \"Lusaka\": [\"Africa/Maputo\", 331],\n \"Lubumbashi\": [\"Africa/Maputo\", 331],\n \"Luanda\": [\"Africa/Lagos\", 327],\n \"Lome\": [\"Africa/Abidjan\", 21],\n \"Libreville\": [\"Africa/Lagos\", 327],\n \"Lagos\": [\"\", 327],\n \"Kinshasa\": [\"Africa/Lagos\", 327],\n \"Kigali\": [\"Africa/Maputo\", 331],\n \"Khartoum\": [\"\", 332],\n \"Kampala\": [\"Africa/Nairobi\", 68],\n \"Juba\": [\"\", 333],\n \"Johannesburg\": [\"\", 330],\n \"Harare\": [\"Africa/Maputo\", 331],\n \"Gaborone\": [\"Africa/Maputo\", 331],\n \"Freetown\": [\"Africa/Abidjan\", 21],\n \"El_Aaiun\": [\"\", 334],\n \"Douala\": [\"Africa/Lagos\", 327],\n \"Djibouti\": [\"Africa/Nairobi\", 68],\n \"Dar_es_Salaam\": [\"Africa/Nairobi\", 68],\n \"Dakar\": [\"Africa/Abidjan\", 21],\n \"Conakry\": [\"Africa/Abidjan\", 21],\n \"Ceuta\": [\"\", 335],\n \"Casablanca\": [\"\", 336],\n \"Cairo\": [\"\", 27],\n \"Bujumbura\": [\"Africa/Maputo\", 331],\n \"Brazzaville\": [\"Africa/Lagos\", 327],\n \"Blantyre\": [\"Africa/Maputo\", 331],\n \"Bissau\": [\"\", 337],\n \"Banjul\": [\"Africa/Abidjan\", 21],\n \"Bangui\": [\"Africa/Lagos\", 327],\n \"Bamako\": [\"Africa/Abidjan\", 21],\n \"Asmera\": [\"Africa/Nairobi\", 68],\n \"Asmara\": [\"Africa/Nairobi\", 68],\n \"Algiers\": [\"\", 338],\n \"Addis_Ababa\": [\"Africa/Nairobi\", 68],\n \"Accra\": [\"Africa/Abidjan\", 21],\n \"Abidjan\": [\"\", 21]\n }\n};\nconst tzlibZonesDetailsDB = [\"20250101T220159ZX-LIC-LOCATION:Etc/UTCUTC+0000+000019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/LisbonWET+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SUWEST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/MoscowMSK+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/Istanbul%z+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Singapore%z+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/SeoulKST+0900+090019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/TaipeiCST+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/WarsawCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Los_AngelesPDT-0800-070019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUPST-0700-080019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Asia/ShanghaiCST+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/DenverMDT-0700-060019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUMST-0600-070019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Pacific/AucklandNZDT+1200+130019700927T020000FREQ=YEARLY;BYMONTH=9;BYDAY=-1SUNZST+1300+120019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Chatham%z+1245+134519700927T024500FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU%z+1345+124519700405T034500FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/PhoenixMST-0700-070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/BrusselsCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Africa/TripoliEET+0200+020019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Kwajalein%z+1200+120019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/TokyoJST+0900+090019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/JamaicaEST-0500-050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/JerusalemIDT+0200+030019700327T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1FRIST+0300+020019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Asia/Tehran%z+0330+033019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/AbidjanGMT+0000+000019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Hong_KongHKT+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/HonoluluHST-1000-100019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMTGMT+0000+000019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/LondonBST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUGMT+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/DublinIST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUGMT+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Africa/CairoEEST+0200+030019700424T000000FREQ=YEARLY;BYMONTH=4;BYDAY=-1FREET+0300+020019701030T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR\", \"20250101T220159ZX-LIC-LOCATION:America/New_YorkEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/PanamaEST-0500-050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/AthensEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:America/HavanaCST-0400-050019701101T010000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUCDT-0500-040019700308T000000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\", \"20250101T220159ZX-LIC-LOCATION:America/ChicagoCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Pago_PagoSST-1100-110019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/DetroitEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Indiana/KnoxCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Indiana/IndianapolisEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/AdakHDT-1000-090019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUHST-0900-100019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/AnchorageAKDT-0900-080019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAKST-0800-090019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Port_Moresby%z+1000+100019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Tarawa%z+1200+120019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Tongatapu%z+1300+130019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Tahiti%z-1000-100019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/GuamChST+1000+100019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Rarotonga%z-1000-100019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Guadalcanal%z+1100+110019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Pitcairn%z-0800-080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Palau%z+0900+090019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Noumea%z+1100+110019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Norfolk%z+1100+120019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU%z+1200+110019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Niue%z-1100-110019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Nauru%z+1200+120019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Marquesas%z-0930-093019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Kosrae%z+1100+110019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Kiritimati%z+1400+140019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Kanton%z+1300+130019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Gambier%z-0900-090019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Galapagos%z-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Fiji%z+1200+120019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Fakaofo%z+1300+130019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Efate%z+1100+110019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Easter%z-0500-060019700404T220000FREQ=YEARLY;BYMONTH=4;BYDAY=1SA%z-0600-050019700905T220000FREQ=YEARLY;BYMONTH=9;BYDAY=1SA\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Bougainville%z+1100+110019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Pacific/Apia%z+1300+130019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Mexico_CityCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/MazatlanMST-0700-070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/TijuanaPDT-0800-070019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUPST-0700-080019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Asia/Dubai%z+0400+040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/NairobiEAT+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Indian/Mauritius%z+0400+040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Indian/Maldives%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Yangon%z+0630+063019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Bangkok%z+0700+070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Indian/Chagos%z+0600+060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/ZurichCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/KyivEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SUEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/BelgradeCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/VolgogradMSK+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/VilniusEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/ViennaCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/RomeCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/Ulyanovsk%z+0400+040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/ChisinauEEST+0200+030019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/TiraneCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/TallinnEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/BerlinCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/SofiaEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/SimferopolMSK+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/Saratov%z+0400+040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/Samara%z+0400+040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/RigaEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/PragueCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/ParisCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Asia/NicosiaEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SUEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/Minsk%z+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/HelsinkiEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/MaltaCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/MadridCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/KirovMSK+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/KaliningradEET+0200+020019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/GibraltarCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/BudapestCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/BucharestEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Europe/Astrakhan%z+0400+040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Europe/AndorraCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-9%z+0900+090019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-8%z+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-7%z+0700+070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-6%z+0600+060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-5%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-4%z+0400+040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-3%z+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-2%z+0200+020019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-14%z+1400+140019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-13%z+1300+130019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-12%z+1200+120019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-11%z+1100+110019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-10%z+1000+100019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT-1%z+0100+010019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT+9%z-0900-090019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT+8%z-0800-080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT+7%z-0700-070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT+6%z-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT+5%z-0500-050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT+4%z-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT+3%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT+2%z-0200-020019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT+12%z-1200-120019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT+11%z-1100-110019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT+10%z-1000-100019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Etc/GMT+1%z-0100-010019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Santiago%z-0300-040019700405T000000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU%z-0400-030019700906T000000FREQ=YEARLY;BYMONTH=9;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/WhitehorseMST-0700-070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/ReginaCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/VancouverPDT-0800-070019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUPST-0700-080019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/St_JohnsNST-0230-033019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUNDT-0330-023019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\", \"20250101T220159ZX-LIC-LOCATION:America/EdmontonMDT-0700-060019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUMST-0600-070019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/TorontoEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/WinnipegCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/HalifaxADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Manaus%z-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Sao_Paulo%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Noronha%z-0200-020019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Rio_Branco%z-0500-050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Australia/Broken_HillACST+1030+093019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SUACDT+0930+103019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Australia/PerthAWST+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Australia/MelbourneAEST+1100+100019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SUAEDT+1000+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Australia/HobartAEDT+1000+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SUAEST+1100+100019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Australia/SydneyAEST+1100+100019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SUAEDT+1000+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Australia/AdelaideACST+1030+093019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SUACDT+0930+103019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Australia/BrisbaneAEST+1000+100019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Australia/DarwinACST+0930+093019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Australia/Lord_Howe%z+1100+103019700405T020000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU%z+1030+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Australia/LindemanAEST+1000+100019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Australia/Eucla%z+0845+084519700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Atlantic/Stanley%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Atlantic/South_Georgia%z-0200-020019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Atlantic/MadeiraWEST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUWET+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Atlantic/FaroeWEST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUWET+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Atlantic/Cape_Verde%z-0100-010019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Atlantic/CanaryWEST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUWET+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Atlantic/BermudaADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Atlantic/Azores%z-0100+000019700329T000000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU%z+0000-010019701025T010000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Asia/Yerevan%z+0400+040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Yekaterinburg%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Yakutsk%z+0900+090019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Vladivostok%z+1000+100019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Ust-Nera%z+1000+100019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Urumqi%z+0600+060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Ulaanbaatar%z+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/MakassarWITA+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Tomsk%z+0700+070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Thimphu%z+0600+060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Tbilisi%z+0400+040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Tashkent%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Srednekolymsk%z+1100+110019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Samarkand%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Sakhalin%z+1100+110019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Ho_Chi_Minh%z+0700+070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Riyadh%z+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Qyzylorda%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Qostanay%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Qatar%z+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/PyongyangKST+0900+090019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/PontianakWIB+0700+070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Oral%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Omsk%z+0600+060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Novosibirsk%z+0700+070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Novokuznetsk%z+0700+070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/ManilaPST+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Magadan%z+1100+110019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/MacauCST+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Kuching%z+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Krasnoyarsk%z+0700+070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/KolkataIST+0530+053019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Khandyga%z+0900+090019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Kathmandu%z+0545+054519700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/KarachiPKT+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Kamchatka%z+1200+120019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Kabul%z+0430+043019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/JayapuraWIT+0900+090019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/JakartaWIB+0700+070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Irkutsk%z+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Hovd%z+0700+070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/HebronEEST+0200+030019700328T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SAEET+0300+020019701024T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SA\", \"20250101T220159ZX-LIC-LOCATION:Asia/GazaEEST+0200+030019700328T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SAEET+0300+020019701024T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SA\", \"20250101T220159ZX-LIC-LOCATION:Asia/FamagustaEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Asia/Dushanbe%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Dili%z+0900+090019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Dhaka%z+0600+060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Damascus%z+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Colombo%z+0530+053019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Chita%z+0900+090019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Bishkek%z+0600+060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/BeirutEEST+0200+030019700329T000000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Asia/Barnaul%z+0700+070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Baku%z+0400+040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Baghdad%z+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Atyrau%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Ashgabat%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Aqtobe%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Aqtau%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Anadyr%z+1200+120019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Amman%z+0300+030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Asia/Almaty%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Antarctica/Vostok%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Antarctica/Troll+02+0000+020019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU+00+0200+000019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Antarctica/Rothera%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Antarctica/Palmer%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Antarctica/Mawson%z+0500+050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Antarctica/MacquarieAEST+1100+100019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SUAEDT+1000+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:Antarctica/Davis%z+0700+070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Antarctica/Casey%z+0800+080019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/YakutatAKDT-0900-080019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAKST-0800-090019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Puerto_RicoAST-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/ThuleADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/TegucigalpaCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Swift_CurrentCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/SitkaAKDT-0900-080019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAKST-0800-090019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Scoresbysund%z-0100-020019701025T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU%z-0200-010019700328T230000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA\", \"20250101T220159ZX-LIC-LOCATION:America/Santo_DomingoAST-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Santarem%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Argentina/Cordoba%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/ResoluteCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\", \"20250101T220159ZX-LIC-LOCATION:America/Recife%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Rankin_InletCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Punta_Arenas%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Porto_Velho%z-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Port-au-PrinceEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Paramaribo%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/IqaluitEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/OjinagaCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Nuuk%z-0200-010019700328T230000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA%z-0100-020019701025T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:America/NomeAKDT-0900-080019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAKST-0800-090019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Montevideo%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/MonterreyCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/MonctonADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Miquelon%z-0300-020019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU%z-0200-030019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/MetlakatlaAKDT-0900-080019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAKST-0800-090019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/MeridaCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/MenomineeCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Argentina/Mendoza%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/MatamorosCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/MartiniqueAST-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/ManaguaCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Maceio%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Kentucky/LouisvilleEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Lima%z-0500-050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/La_Paz%z-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/JuneauAKDT-0900-080019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAKST-0800-090019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Argentina/Jujuy%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/InuvikMDT-0700-060019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUMST-0600-070019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/HermosilloMST-0700-070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Guyana%z-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Guayaquil%z-0500-050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/GuatemalaCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Grand_TurkEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\", \"20250101T220159ZX-LIC-LOCATION:America/Goose_BayAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\", \"20250101T220159ZX-LIC-LOCATION:America/Glace_BayADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Fortaleza%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Fort_NelsonMST-0700-070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/El_SalvadorCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Eirunepe%z-0500-050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Dawson_CreekMST-0700-070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/DawsonMST-0700-070019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/DanmarkshavnGMT+0000+000019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Cuiaba%z-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Costa_RicaCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Ciudad_JuarezMDT-0700-060019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUMST-0600-070019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/ChihuahuaCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Cayenne%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Argentina/Catamarca%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Caracas%z-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/CancunEST-0500-050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Campo_Grande%z-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Cambridge_BayMDT-0700-060019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUMST-0600-070019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Argentina/Buenos_Aires%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/BoiseMDT-0700-060019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUMST-0600-070019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Bogota%z-0500-050019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Boa_Vista%z-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/BelizeCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Belem%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/BarbadosAST-0400-040019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Bahia_BanderasCST-0600-060019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Bahia%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Asuncion%z-0400-030019701004T000000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU%z-0300-040019700322T000000FREQ=YEARLY;BYMONTH=3;BYDAY=4SU\", \"20250101T220159ZX-LIC-LOCATION:America/Araguaina%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/North_Dakota/New_SalemCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/North_Dakota/CenterCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/North_Dakota/BeulahCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Kentucky/MonticelloEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Indiana/WinamacEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\", \"20250101T220159ZX-LIC-LOCATION:America/Indiana/VincennesEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Indiana/VevayEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Indiana/Tell_CityCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Indiana/PetersburgEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Indiana/MarengoEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\", \"20250101T220159ZX-LIC-LOCATION:America/Argentina/Ushuaia%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Argentina/Tucuman%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Argentina/San_Luis%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Argentina/San_Juan%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Argentina/Salta%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Argentina/Rio_Gallegos%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:America/Argentina/La_Rioja%z-0300-030019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/WindhoekCAT+0200+020019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/TunisCET+0100+010019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/Sao_TomeGMT+0000+000019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/LagosWAT+0100+010019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/NdjamenaWAT+0100+010019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/MonroviaGMT+0000+000019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/JohannesburgSAST+0200+020019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/MaputoCAT+0200+020019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/KhartoumCAT+0200+020019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/JubaCAT+0200+020019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/El_Aaiun%z+0100+010019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/CeutaCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\", \"20250101T220159ZX-LIC-LOCATION:Africa/Casablanca%z+0100+010019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/BissauGMT+0000+000019700101T000000\", \"20250101T220159ZX-LIC-LOCATION:Africa/AlgiersCET+0100+010019700101T000000\"];\nfunction tzlib_get_content(tzName) {\n const nameParts = tzName.split('/');\n if (nameParts.length === 3 && (!tzlibZonesDB[`${nameParts[0]}`] || !tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`] || !tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][`${nameParts[2]}`]) || nameParts.length === 2 && (!tzlibZonesDB[`${nameParts[0]}`] || !tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`]) || nameParts.length === 1 && !tzlibZonesDB[`${nameParts[0]}`]) {\n console.error('Given timezone not valid.');\n return '';\n }\n if (nameParts.length === 3) {\n return [tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][`${nameParts[2]}`][0], tzlib_enrich_data(tzlibZonesDetailsDB[tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][`${nameParts[2]}`][1]])];\n }\n if (nameParts.length === 2) {\n return [tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][0], tzlib_enrich_data(tzlibZonesDetailsDB[tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][1]])];\n }\n return [tzlibZonesDB[`${nameParts[0]}`][0], tzlib_enrich_data(tzlibZonesDetailsDB[tzlibZonesDB[`${nameParts[0]}`][1]])];\n}\nfunction tzlib_enrich_data(string) {\n const shortenerMap = {\n '
': '',\n 'TZNAME:': '',\n 'TZOFFSETFROM:': '',\n 'TZOFFSETTO:': '',\n 'DTSTART:': '',\n 'RRULE:': '',\n 'BEGIN:DAYLIGHT': '',\n 'END:DAYLIGHT': '',\n 'BEGIN:STANDARD': '',\n 'END:STANDARD': ''\n };\n for (const [key, value] of Object.entries(shortenerMap)) {\n string = string.replaceAll(value, key);\n }\n return string;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction tzlib_get_ical_block(tzName, jsonType = false) {\n const tzBlock = tzlib_get_content(tzName);\n if (tzBlock[1] == null || tzBlock[1] == '') {\n return '';\n }\n const location = function () {\n if (tzBlock[0] == '') {\n return tzName;\n } else {\n return tzBlock[0];\n }\n }();\n const tzidLine = 'TZID=' + location;\n const output = ['BEGIN:VTIMEZONE\\r\\nTZID:' + location + '\\r\\nX-LIC-LOCATION:' + location + '\\r\\nLAST-MODIFIED:' + tzBlock[1].replace(/[^\\w_\\-:,;=+/
]/g, '').replace(/
/g, '\\r\\n') + 'END:VTIMEZONE', tzidLine];\n if (jsonType) {\n return JSON.stringify(output);\n }\n return output;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction tzlib_get_offset(tzName, isoDate, isoTime) {\n const tzBlock = tzlib_get_content(tzName);\n if (tzBlock[1] == null || tzBlock[1] == '') {\n return '';\n }\n if (!isoDate.match(/^\\d{4}-\\d{2}-\\d{2}$/)) {\n console.error('offset calculation failed: date misspelled [-> YYYY-MM-DD]');\n return '';\n }\n if (!isoTime.match(/^\\d{2}:\\d{2}$/)) {\n console.error('offset calculation failed: time misspelled [-> hh:mm]');\n return '';\n }\n if (!tzBlock[1].match(/BEGIN:DAYLIGHT/i)) {\n return tzBlock[1].match(/TZOFFSETTO:([+|-]\\d{4})/i)[1];\n }\n const dateString = isoDate + 'T' + isoTime + ':00';\n const date = new Date(dateString);\n const dateYear = date.getFullYear();\n const dateMonth = date.getMonth() + 1;\n const dateDay = date.getDate();\n const dateHour = date.getHours();\n const timezoneData = tzBlock[1].replace(/[^\\w_\\-:,;=+/
]/g, '').split('
');\n const tzBreakpoints = {\n 1: {},\n 2: {}\n };\n let breakpointCount = 0;\n for (let i = 0; i < timezoneData.length; i++) {\n if (timezoneData[`${i}`].startsWith('TZOFFSETTO')) {\n breakpointCount++;\n tzBreakpoints[`${breakpointCount}`].offset = timezoneData[`${i}`].split(':')[1];\n }\n if (timezoneData[`${i}`].startsWith('DTSTART')) {\n tzBreakpoints[`${breakpointCount}`].hour = parseInt(timezoneData[`${i}`].substr(17, 2));\n }\n if (timezoneData[`${i}`].startsWith('RRULE')) {\n let rruleParts = timezoneData[`${i}`].split(';');\n let rruleMonth = parseInt(rruleParts[1].split('=')[1]);\n tzBreakpoints[`${breakpointCount}`].month = parseInt(rruleMonth);\n tzBreakpoints[`${breakpointCount}`].day = rruleParts[2].split('=')[1];\n }\n }\n if (tzBreakpoints[1].month > tzBreakpoints[2].month) {\n [tzBreakpoints[1], tzBreakpoints[2]] = [tzBreakpoints[2], tzBreakpoints[1]];\n }\n if (dateMonth != tzBreakpoints[1].month && dateMonth != tzBreakpoints[2].month) {\n if (dateMonth < tzBreakpoints[1].month || dateMonth > tzBreakpoints[2].month) {\n return tzBreakpoints[2].offset;\n } else {\n return tzBreakpoints[1].offset;\n }\n }\n const theCase = function () {\n return Object.keys(tzBreakpoints).find(key => tzBreakpoints[`${key}`].month == dateMonth);\n }();\n const helperArrayWeekdays = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'];\n const numberDays = new Date(dateYear, dateMonth, 0).getDate();\n let weekdayCount = new Date(dateYear, dateMonth - 1, 1).getDay();\n const weekdays = {\n SU: {},\n MO: {},\n TU: {},\n WE: {},\n TH: {},\n FR: {},\n SA: {}\n };\n for (let d = 1; d <= numberDays; d++) {\n const occurence = Object.keys(weekdays[helperArrayWeekdays[`${weekdayCount}`]]).length + 1;\n weekdays[helperArrayWeekdays[`${weekdayCount}`]][`${occurence}`] = d;\n weekdayCount++;\n if (weekdayCount == 7) {\n weekdayCount = 0;\n }\n }\n const actualDay = function () {\n if (tzBreakpoints[`${theCase}`].day[0] == '-') {\n const breakpointWeekday = tzBreakpoints[`${theCase}`].day.substr(2, 2);\n const dayIndex = Object.keys(weekdays[`${breakpointWeekday}`]).length + 1 - parseInt(tzBreakpoints[`${theCase}`].day[1]);\n return weekdays[`${breakpointWeekday}`][`${dayIndex}`];\n } else {\n const breakpointWeekday = tzBreakpoints[`${theCase}`].day.substr(1, 2);\n return weekdays[`${breakpointWeekday}`][tzBreakpoints[`${theCase}`].day[0]];\n }\n }();\n if (dateDay > actualDay || dateDay == actualDay && dateHour >= tzBreakpoints[`${theCase}`].hour) {\n return tzBreakpoints[`${theCase}`].offset;\n }\n const fallbackCase = function () {\n if (theCase == 1) {\n return 2;\n } else {\n return 1;\n }\n }();\n return tzBreakpoints[`${fallbackCase}`].offset;\n}\nlet tzlibZoneNames = [];\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction tzlib_get_timezones(jsonType = false) {\n if (tzlibZoneNames.length == 0) {\n tzlibZoneNames = function () {\n let namesArr = [];\n for (const [key, value] of Object.entries(tzlibZonesDB)) {\n if (typeof value === 'object' && !Array.isArray(value)) {\n for (const [key2, value2] of Object.entries(value)) {\n if (typeof value2 === 'object' && !Array.isArray(value2)) {\n for (const [key3] of Object.entries(value2)) {\n namesArr.push(key + '/' + key2 + '/' + key3);\n }\n } else {\n namesArr.push(key + '/' + key2);\n }\n }\n } else {\n namesArr.push(key);\n }\n }\n return namesArr;\n }();\n }\n if (jsonType) {\n return JSON.stringify(tzlibZoneNames);\n }\n return tzlibZoneNames;\n}\nexport { tzlib_get_ical_block, tzlib_get_offset, tzlib_get_timezones };","import { tzlib_get_ical_block, tzlib_get_offset, tzlib_get_timezones } from 'timezones-ical-library';\n/*!\n * @preserve\n *\n * ++++++++++++++++++++++\n * Add to Calendar Button\n * ++++++++++++++++++++++\n *\n * Version: 2.8.8\n * Creator: Jens Kuerschner (https://jekuer.com)\n * Project: https://github.com/add2cal/add-to-calendar-button\n * License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)\n * Note: DO NOT REMOVE THE COPYRIGHT NOTICE ABOVE!\n *\n */\nconst atcbVersion = '2.8.8';\nconst atcbCssTemplate = {\n \"default\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:1px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#d2d2d2;--btn-border-radius:6px;--btn-padding-x:1em;--btn-padding-y:.65em;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--btn-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 15%) 0 2px 2px -1px;--btn-hover-shadow:rgb(0 0 0 / 25%) 0 5px 12px -2px,rgb(0 0 0 / 25%) 0 3px 5px -2px;--btn-active-shadow:rgb(0 0 0 / 30%) 0 6px 13px -2px,rgb(0 0 0 / 25%) 0 4px 5px -2px;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-font-weight:400;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:6px;--list-padding:.8em;--list-shadow:rgb(0 0 0 / 20%) 0 4px 13px -2px,rgb(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgb(0 0 0 / 50%) 0 4px 30px -3px,rgb(0 0 0 / 30%) 0 2px 8px -2px;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--modal-text:#000;--modal-text-align:center;--modal-text-align-rtl:center;--modal-background:#f5f5f5;--modal-border-radius:6px;--modal-shadow:drop-shadow(3px 6px 25px rgb(0 0 0 / 65%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 10%) 0 2px 3px -1px;--modal-btn-hover-shadow:rgb(0 0 0 / 25%) 0 5px 13px -2px,rgb(0 0 0 / 20%) 0 3px 5px -2px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgb(0 0 0 / 20%) 0 5px 12px -2px,rgb(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgb(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-border:#3d3d3d;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgb(255 255 255 / 5%) -3px -3px 30px -1px,rgb(0 0 0 / 40%) 2px 3px 10px -2px,rgb(0 0 0 / 40%) 1px 2px 3px -1px;--btn-hover-shadow:rgb(0 0 0 / 90%) 2px 5px 20px -4px,rgb(0 0 0 / 50%) 1px 2px 6px -2px;--btn-active-shadow:rgb(0 0 0 / 90%) 2px 5px 20px -4px,rgb(0 0 0 / 50%) 1px 2px 6px -2px;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgb(0 0 0 / 60%) 0 4px 20px -2px,rgb(0 0 0 / 40%) 0 2px 4px -1px;--list-modal-shadow:rgb(0 0 0 / 40%) -1px 3px 30px 2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgb(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgb(255 255 255 / 5%) -2px -2px 10px,rgb(0 0 0 / 40%) 3px 3px 10px -2px,rgb(0 0 0 / 40%) 1px 2px 5px -1px;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgb(0 0 0 / 60%) 0 0 20px -2px,rgb(0 0 0 / 30%) 1px 2px 3px -1px;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgb(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:1px solid var(--btn-border);border-radius:var(--btn-border-radius);box-shadow:var(--btn-shadow);box-sizing:content-box;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:.13em;max-width:300px;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button:not(.atcb-no-text,.atcb-modal-style,.atcb-dropoverlay,.atcb-single){min-width:calc(11.6em - 2 * var(--btn-padding-x))}.atcb-button.atcb-no-text{display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .13em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .13em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-no-text.atcb-active,.atcb-button.atcb-no-text:focus,.atcb-button.atcb-no-text:hover{height:3.26em;width:3.26em;padding:0!important}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:4px;height:1px;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;font-weight:var(--list-font-weight);padding:0 4px;position:absolute;z-index:14000090}.atcb-list-wrapper.atcb-dropoverlay{z-index:15000000;max-width:max-content}.atcb-list{background-color:var(--list-background);border-radius:0 0 var(--list-border-radius) var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-dropup .atcb-list-item:last-child{border-radius:0;padding-bottom:calc(var(--list-padding) + .45em)}.atcb-dropoverlay .atcb-list .atcb-list-item:first-child,.atcb-dropup .atcb-list,.atcb-dropup .atcb-list-item:first-child,.atcb-list.atcb-modal .atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-dropoverlay .atcb-list .atcb-list-item:only-child,.atcb-list.atcb-modal .atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:calc(var(--list-padding) + .45em)}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:var(--list-padding)}.atcb-dropoverlay .atcb-list,.atcb-list.atcb-modal{border-radius:var(--list-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content ol,.atcb-modal-content ul{margin:1em auto;text-align:left;width:fit-content}.atcb-rtl .atcb-modal-content ol,.atcb-rtl .atcb-modal-content ul{text-align:right}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay) .atcb-checkmark,.atcb-button.atcb-single:focus .atcb-checkmark,.atcb-button.atcb-single:hover .atcb-checkmark{top:-.77em;right:-.37em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-trigger{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.atcb-modal-content.no-headline{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;padding-top:1.8em}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline,.rsvp-inline-wrapper.atcb-modal-box{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em;justify-content:center}.pro-form{text-align:left}.pro-form:not(.no-intro){border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em}.pro-form.no-intro:not(.no-headline){padding-top:.5em}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:3%;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column;gap:1.2em}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:1px solid var(--modal-btn-text);border-radius:var(--input-border-radius);box-shadow:var(--btn-shadow);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-form-fine{font-size:.8em;margin:.5em auto 1em;opacity:.5;text-align:center}.pro-form.form-error .pro-form-fine{opacity:0}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p:not(.pro-form-fine){margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgb(255 255 255 / 80%));height:auto;padding:8px 0;text-align:center;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute;margin-top:-1px}.atcb-modal-host-initialized #atcb-reference.atcb-dropup{text-align:left}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:inline-block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\n \"3d\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#d2d2d2;--btn-border-radius:6px;--btn-padding-x:1em;--btn-padding-y:.65em;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--btn-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 15%) 0 2px 2px -1px;--btn-hover-shadow:rgb(0 0 0 / 25%) 0 5px 12px -2px,rgb(0 0 0 / 25%) 0 3px 5px -2px;--btn-active-shadow:rgb(0 0 0 / 40%) 0 8px 13px -2px,rgb(0 0 0 / 30%) 0 5px 5px -3px;--btn-active-shadow-up:rgb(0 0 0 / 30%) 0 6px 13px -2px,rgb(0 0 0 / 15%) 0 2px 2px -1px,rgb(0 0 0 / 25%) 0 -3px 10px -1px;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:6px;--list-padding:.8em;--list-shadow:rgb(0 0 0 / 20%) 0 4px 13px -2px,rgb(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgb(0 0 0 / 50%) 0 4px 30px -3px,rgb(0 0 0 / 30%) 0 2px 8px -2px;--modal-text:#000;--modal-text-align:center;--modal-text-align-rtl:center;--modal-background:#f5f5f5;--modal-border-radius:6px;--modal-shadow:drop-shadow(3px 6px 25px rgb(0 0 0 / 65%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 10%) 0 2px 3px -1px;--modal-btn-hover-shadow:rgb(0 0 0 / 25%) 0 5px 13px -2px,rgb(0 0 0 / 20%) 0 3px 5px -2px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgb(0 0 0 / 20%) 0 5px 12px -2px,rgb(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgb(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgb(255 255 255 / 5%) -3px -3px 30px -1px,rgb(0 0 0 / 40%) 2px 3px 10px -2px,rgb(0 0 0 / 40%) 1px 2px 3px -1px;--btn-hover-shadow:rgb(0 0 0 / 90%) 2px 5px 20px -4px,rgb(0 0 0 / 50%) 1px 2px 6px -2px;--btn-active-shadow:rgb(0 0 0 / 90%) 2px 5px 20px -4px,rgb(0 0 0 / 50%) 1px 2px 6px -2px;--btn-active-shadow-up:rgb(0 0 0 / 80%) 2px 4px 20px -4px,rgb(0 0 0 / 30%) 1px 1px 3px -1px,rgb(0 0 0 / 45%) 0 -3px 10px -1px;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgb(0 0 0 / 60%) 0 4px 20px -2px,rgb(0 0 0 / 40%) 0 2px 4px -1px;--list-modal-shadow:rgb(0 0 0 / 40%) -1px 3px 30px 2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgb(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgb(255 255 255 / 5%) -2px -2px 10px,rgb(0 0 0 / 40%) 3px 3px 10px -2px,rgb(0 0 0 / 40%) 1px 2px 5px -1px;--modal-btn-hover-shadow:none;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgb(0 0 0 / 60%) 0 0 20px -2px,rgb(0 0 0 / 30%) 1px 2px 3px -1px;--date-btn-hover-shadow:none;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgb(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:1px solid var(--btn-border);border-radius:var(--btn-border-radius);box-shadow:var(--btn-shadow);box-sizing:content-box;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:0;max-width:300px;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:center;touch-action:manipulation;transform:translate3d(0,0,-12px);user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button:not(.atcb-no-text,.atcb-modal-style,.atcb-dropoverlay,.atcb-single){min-width:calc(11.6em - 2 * var(--btn-padding-x))}.atcb-button.atcb-no-text{display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){background-color:var(--btn-hover-background);z-index:15000000}.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropup,.atcb-dropoverlay){box-shadow:var(--btn-active-shadow);transform:perspective(100px) rotateX(12deg) translate3d(0,0,2px);transition:transform .1s linear}.atcb-button.atcb-active.atcb-dropup:not(.atcb-modal-style,.atcb-dropoverlay){box-shadow:var(--btn-active-shadow-up);transform:perspective(100px) rotateX(348deg) translate3d(0,0,2px);transition:transform .1s linear}.atcb-button.atcb-active.atcb-dropoverlay{transform:translate3d(0,0,0);z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:6px;height:1px;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;padding:0 4px;position:absolute;transform:translate3d(0,0,0);z-index:14000090}.atcb-list{background-color:var(--list-background);border-radius:0 0 var(--list-border-radius) var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-wrapper.atcb-dropdown:not(.atcb-dropup,.atcb-dropoverlay){animation:atcb-list-slide-down .4s ease 50ms 1 normal both;opacity:0}.atcb-list-wrapper.atcb-dropup:not(.atcb-dropoverlay){animation:atcb-list-slide-up .4s ease 50ms 1 normal both;opacity:0}.atcb-list-wrapper.atcb-dropoverlay{transform:translate3d(0,0,2px);z-index:15000000;animation:atcb-list-slide-center .3s ease 0s 1 normal both;opacity:0}@keyframes atcb-list-slide-down{0%{opacity:0;transform:rotateX(70deg);transform-origin:top}100%{opacity:1;transform:rotateX(0);transform-origin:top}}@keyframes atcb-list-slide-up{0%{opacity:0;transform:rotateX(70deg);transform-origin:bottom}100%{opacity:1;transform:rotateX(0);transform-origin:bottom}}@keyframes atcb-list-slide-center{0%{opacity:0;transform:scaleY(1)}1%{opacity:1;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-dropup .atcb-list-item:last-child{border-radius:0;padding-bottom:calc(var(--list-padding) + .7em)}.atcb-dropoverlay .atcb-list .atcb-list-item:first-child,.atcb-dropup .atcb-list,.atcb-dropup .atcb-list-item:first-child,.atcb-list.atcb-modal .atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-dropoverlay .atcb-list .atcb-list-item:only-child,.atcb-list.atcb-modal .atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:calc(var(--list-padding) + .7em)}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:var(--list-padding)}.atcb-dropoverlay .atcb-list,.atcb-list.atcb-modal{border-radius:var(--list-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content ol,.atcb-modal-content ul{margin:1em auto;text-align:left;width:fit-content}.atcb-rtl .atcb-modal-content ol,.atcb-rtl .atcb-modal-content ul{text-align:right}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-trigger{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.atcb-modal-content.no-headline{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;padding-top:1.8em}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline,.rsvp-inline-wrapper.atcb-modal-box{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em;justify-content:center}.pro-form{text-align:left}.pro-form:not(.no-intro){border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em}.pro-form.no-intro:not(.no-headline){padding-top:.5em}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:3%;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column;gap:1.2em}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:1px solid var(--modal-btn-text);border-radius:var(--input-border-radius);box-shadow:var(--btn-shadow);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-form-fine{font-size:.8em;margin:.5em auto 1em;opacity:.5;text-align:center}.pro-form.form-error .pro-form-fine{opacity:0}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p:not(.pro-form-fine){margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgb(255 255 255 / 80%));height:auto;padding:8px 0;text-align:center;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute;margin-top:-1px}.atcb-modal-host-initialized #atcb-reference.atcb-dropup{text-align:left}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:inline-block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\n \"flat\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:8px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#545454;--btn-padding-x:1.2em;--btn-padding-y:.8em;--btn-shadow:#333;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--list-background:#f5f5f5;--list-hover-background:#fff;--list-border:#545454;--list-text:#333;--list-font-weight:400;--list-hover-text:#000;--list-close-background:#545454;--list-close-text:#b0b0b0;--list-close-text-hover:#777;--list-padding:.8em;--modal-text:#000;--modal-text-align:center;--modal-text-align-rtl:center;--modal-background:#f5f5f5;--modal-btn-bar:#bababa;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#545454;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#676767;--modal-headline-text-align:center;--modal-headline-text-transform:uppercase;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#414141;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--overlay-background:rgb(20 20 20 / 40%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#222;--btn-hover-background:#373737;--btn-border:#515151;--btn-shadow:#000;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--list-background:#222;--list-hover-background:#373737;--list-border:#515151;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#111;--list-close-text:#777;--list-close-text-hover:#f1f1f1;--modal-text:#f1f1f1;--modal-background:#242424;--modal-btn-bar:#313131;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#414141;--date-btn-cal-background:#c7c7cd;--date-btn-background:#2d2d2d;--date-btn-hover-background:#474747;--overlay-background:rgb(20 20 20 / 75%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(0.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:.2em solid var(--btn-border);box-sizing:content-box;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:0;max-width:300px;padding:var(--btn-padding-y) var(--btn-padding-x);top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button:not(.atcb-no-text,.atcb-modal-style,.atcb-dropoverlay,.atcb-single){min-width:calc(11.6em - 2 * var(--btn-padding-x))}.atcb-button.atcb-no-text{display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-button.atcb-click:not([disabled]){top:-3px;left:-3px;box-shadow:3px 3px 0 0 var(--btn-shadow)}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-hover-background);top:-5px;left:-5px;box-shadow:5px 5px 0 0 var(--btn-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:.9em;line-height:1em;margin-right:.8em;width:.9em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:1em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-icon-trigger svg{display:none}.atcb-button .atcb-icon-trigger::after{content:\\\"+\\\";font-family:Arial,Helvetica,sans-serif;font-size:1.5em}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:0;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;font-weight:var(--list-font-weight);padding:0 2px 0 6px;position:absolute;z-index:16000090}.atcb-list-wrapper.atcb-no-text.atcb-dropdown{padding:0}.atcb-list-wrapper:not(.atcb-dropup,.atcb-dropoverlay){animation:list-entrance-bottom .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropup{animation:list-entrance-top .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropoverlay{z-index:15000000}@keyframes list-entrance-bottom{0%{opacity:0;transform:translateY(150px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-top{0%{opacity:0;transform:translateY(-150px)}100%{opacity:1;transform:translateY(0)}}.atcb-list{background:var(--list-background);box-sizing:border-box;border:.15em solid var(--list-border);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);outline:0}.atcb-dropup .atcb-list-item:last-child{border-bottom-width:0}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{border-top-width:0}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{border-top-width:.15em}.atcb-list-item .atcb-icon{margin:0 auto;height:1em;width:1em}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item.atcb-list-item-close:hover{color:var(--list-close-text-hover)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{border:.15em solid var(--btn-border);background-color:var(--modal-background);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{padding-top:0}.atcb-modal-content{font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content ol,.atcb-modal-content ul{margin:1em auto;text-align:left;width:fit-content}.atcb-rtl .atcb-modal-content ol,.atcb-rtl .atcb-modal-content ul{text-align:right}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{padding-top:0}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{border:.2em solid var(--btn-border);background-color:var(--modal-btn-secondary-background);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow)}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);color:var(--modal-btn-hover-text);text-decoration:none;top:-3px;left:-3px;box-shadow:3px 3px 0 0 var(--btn-shadow)}.atcb-subevent-btn{border:.15em solid var(--btn-border);display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;background-color:var(--date-btn-background);padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow);width:100%}.atcb-subevent-btn:hover{align-items:center;top:-3px;left:-3px;box-shadow:3px 3px 0 0 var(--btn-shadow)}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-2.1em;right:-2em;padding:.5em;border-radius:100%;height:1.5em}.atcb-checkmark svg{height:100%;width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{background-color:transparent;border:0;filter:none;min-width:100%;margin-bottom:0}.atcb-modal-content.no-headline{padding-top:1.8em}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline,.rsvp-inline-wrapper.atcb-modal-box{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em;justify-content:center}.pro-form{text-align:left}.pro-form:not(.no-intro){border-top:2px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em}.pro-form.no-intro:not(.no-headline){padding-top:.5em}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:2px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:2px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:3%;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column;gap:1.2em}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:2px solid var(--modal-btn-text);border-radius:var(--input-border-radius);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);color:var(--status-active-text);opacity:1;transform:scale(1.1)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);font-size:.8em;padding-top:1em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-form-fine{font-size:.8em;padding:.5em .5em 1em;opacity:.5;text-align:center}.pro-form.form-error .pro-form-fine{opacity:0}.pro-waiting{background-color:var(--modal-btn-background);border:.2em solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p:not(.pro-form-fine){margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgb(255 255 255 / 80%));height:auto;padding:8px 0;text-align:center;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute;margin-top:-5px}.atcb-modal-host-initialized #atcb-reference.atcb-dropup{text-align:left}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:inline-block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\n \"round\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:1px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#d2d2d2;--btn-border-radius:500px;--btn-padding-x:1.3em;--btn-padding-y:.65em;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--btn-shadow:rgb(0 0 0 / 15%) 0 4px 10px -2px,rgb(0 0 0 / 20%) 0 2px 3px -1px;--btn-hover-shadow:rgb(0 0 0 / 30%) 0 5px 15px -3px,rgb(0 0 0 / 25%) 0 3px 5px -2px;--btn-active-shadow:rgb(0 0 0 / 35%) 0 6px 15px -3px,rgb(0 0 0 / 25%) 0 4px 6px -2px;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-font-weight:400;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:11px;--list-padding:.8em 1.2em;--list-min-width:100%;--list-shadow:rgb(0 0 0 / 20%) 0 4px 13px -2px,rgb(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgb(0 0 0 / 50%) 0 4px 30px -3px,rgb(0 0 0 / 30%) 0 2px 8px -2px;--modal-text:#000;--modal-text-align:center;--modal-text-align-rtl:center;--modal-background:#f5f5f5;--modal-border-radius:9px;--modal-shadow:drop-shadow(3px 6px 25px rgb(0 0 0 / 65%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgb(0 0 0 / 10%) 2px 3px 10px -3px,rgb(0 0 0 / 25%) 1px 1px 8px -4px;--modal-btn-hover-shadow:rgb(0 0 0 / 35%) 3px 5px 15px -2px,rgb(0 0 0 / 20%) 2px 4px 25px -6px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgb(0 0 0 / 20%) 0 5px 12px -2px,rgb(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgb(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgb(255 255 255 / 5%) -3px -3px 30px -1px,rgb(0 0 0 / 40%) 2px 3px 10px -2px,rgb(0 0 0 / 40%) 1px 2px 3px -1px;--btn-hover-shadow:rgb(0 0 0 / 90%) 2px 5px 20px -4px,rgb(0 0 0 / 50%) 1px 2px 6px -2px;--btn-active-shadow:rgb(0 0 0 / 90%) 2px 5px 20px -4px,rgb(0 0 0 / 50%) 1px 2px 6px -2px;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgb(0 0 0 / 60%) 0 4px 20px -2px,rgb(0 0 0 / 40%) 0 2px 4px -1px;--list-modal-shadow:rgb(0 0 0 / 40%) -1px 3px 30px 2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgb(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgb(255 255 255 / 5%) -2px -2px 10px,rgb(0 0 0 / 40%) 3px 3px 10px -2px,rgb(0 0 0 / 40%) 1px 2px 5px -1px;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgb(0 0 0 / 60%) 0 0 20px -2px,rgb(0 0 0 / 30%) 1px 2px 3px -1px;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgb(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:1px solid var(--btn-border);border-radius:var(--btn-border-radius);box-shadow:var(--btn-shadow);color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:.13em;max-width:350px;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button.atcb-no-text{min-width:0;border-radius:100%;display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .13em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-no-text.atcb-active,.atcb-button.atcb-no-text:focus,.atcb-button.atcb-no-text:hover{height:3.26em;width:3.26em;padding:0}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-no-text),.atcb-button.atcb-single:not(.atcb-no-text,[disabled]):focus,.atcb-button.atcb-single:not(.atcb-no-text,[disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .13em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-active.atcb-no-text:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single.atcb-no-text:not([disabled]):focus,.atcb-button.atcb-single.atcb-no-text:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text);margin:0;padding:calc(var(--btn-padding-y) + .28em) calc(var(--btn-padding-x) + .13em)}.atcb-button.atcb-dropup::after,.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{content:\\\"\\\";width:0;height:0;position:absolute;left:0;right:0;margin:0 auto}.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{top:100%;border:0 solid transparent;border-bottom:none;border-top-color:var(--btn-border)}.atcb-button.atcb-dropup::after{bottom:100%;border:0 solid transparent;border-top:none;border-bottom-color:var(--btn-border)}.atcb-button.atcb-active.atcb-dropup::after,.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{border-width:.35em;transition:border-width .1s linear .1s}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:-15px;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;font-weight:var(--list-font-weight);position:absolute;z-index:14000090;width:auto}.atcb-list-wrapper:not(.atcb-dropup,.atcb-dropoverlay){animation:list-entrance-bottom .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropup{animation:list-entrance-top .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropoverlay{animation:list-entrance-center .2s ease 0s 1 normal forwards;z-index:15000000}@keyframes list-entrance-bottom{0%{opacity:0;transform:translateY(250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-top{0%{opacity:0;transform:translateY(-250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-center{0%{opacity:0;transform:scaleY(1)}1%{opacity:1;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}.atcb-list{background-color:var(--list-background);border-radius:var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:var(--list-min-width);position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content ol,.atcb-modal-content ul{margin:1em auto;text-align:left;width:fit-content}.atcb-rtl .atcb-modal-content ol,.atcb-rtl .atcb-modal-content ul{text-align:right}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content-subevents{margin:auto;width:fit-content}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay) .atcb-checkmark,.atcb-button:focus .atcb-checkmark,.atcb-button:hover .atcb-checkmark{top:-.77em;right:-.37em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-trigger{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.atcb-modal-content.no-headline{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;padding-top:1.8em}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline,.rsvp-inline-wrapper.atcb-modal-box{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em;justify-content:center}.pro-form{text-align:left}.pro-form:not(.no-intro){border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em}.pro-form.no-intro:not(.no-headline){padding-top:.5em}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:3%;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column;gap:1.2em}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:1px solid var(--modal-btn-text);border-radius:var(--input-border-radius);box-shadow:var(--btn-shadow);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-form-fine{font-size:.8em;margin:.5em auto 1em;opacity:.5;text-align:center}.pro-form.form-error .pro-form-fine{opacity:0}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p:not(.pro-form-fine){margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgb(255 255 255 / 80%));height:auto;padding:8px 0;text-align:center;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute;margin-top:-1px}.atcb-modal-host-initialized #atcb-reference.atcb-dropup{text-align:left}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:inline-block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\n \"neumorphism\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-font-weight:600;--btn-text:#444;--btn-hover-text:#111;--btn-border-radius:15px;--btn-padding-x:1.2em;--btn-padding-y:1em;--btn-shadow:rgb(40 40 40 / 30%) 0.3em 0.3em 0.6em,rgb(255 255 255 / 70%) -0.1em -0.1em 0.3em;--btn-hover-shadow:rgb(40 40 40 / 50%) 0.4em 0.4em 0.8em,rgb(255 255 255 / 90%) -0.2em -0.2em 0.5em;--btn-active-shadow:inset rgb(40 40 40 / 40%) 0.15em 0.15em 0.3em,inset rgb(255 255 255 / 90%) -0.2em -0.2em 0.5em;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#444;--list-font-weight:400;--list-hover-text:#111;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:11px;--list-padding:1em;--list-min-width:100%;--list-shadow:rgb(40 40 40 / 30%) 0.4em 0.4em 0.8em,rgb(255 255 255 / 80%) -0.2em -0.2em 0.5em;--modal-text:#111;--modal-text-align:center;--modal-text-align-rtl:center;--modal-background:#f5f5f5;--modal-border-radius:9px;--modal-shadow:drop-shadow(5px 8px 30px rgb(0 0 0 / 70%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#222;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgb(40 40 40 / 15%) 0.2em 0.2em 0.4em,rgb(255 255 255 / 30%) -0.1em -0.1em 0.3em;--modal-btn-hover-shadow:rgb(40 40 40 / 40%) 0.4em 0.4em 0.7em,rgb(255 255 255 / 70%) -0.2em -0.2em 0.5em;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#e3e5ea;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgb(0 0 0 / 20%) 0 5px 12px -2px,rgb(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:#dcdcdc;--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgb(0 0 0 / 70%) 0.3em 0.3em 0.6em,rgb(230 230 230 / 20%) -0.05em -0.05em 0.4em;--btn-hover-shadow:rgb(0 0 0 / 90%) 0.4em 0.4em 0.9em,rgb(230 230 230 / 25%) -0.08em -0.08em 0.6em -0.1em;--btn-active-shadow:inset rgb(0 0 0 / 80%) 0.15em 0.15em 0.25em,inset rgb(230 230 230 / 10%) -0.2em -0.2em 0.7em -0.1em;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgb(0 0 0) 0.3em 0.3em 1em,rgb(230 230 230 / 40%) -0.08em -0.08em 0.6em;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(5px 8px 35px rgb(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgb(0 0 0 / 60%) 0.2em 0.2em 0.6em,rgb(230 230 230 / 15%) -0.1em -0.1em 0.4em;--modal-btn-hover-shadow:rgb(0 0 0 / 80%) 0.3em 0.3em 0.8em,rgb(230 230 230 / 15%) -0.1em -0.1em 0.6em;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgb(0 0 0 / 70%) 0.2em 0.2em 0.8em,rgb(230 230 230 / 15%) -0.1em -0.1em 0.5em;--date-btn-hover-shadow:rgb(0 0 0) 0.3em 0.4em 1em,rgb(230 230 230 / 15%) -0.2em -0.2em 0.8em;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:#141414;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(0.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--btn-shadow);color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.5em;margin:0;max-width:350px;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;transition:box-shadow .1s ease-in-out,background-color .1s ease-in-out;z-index:1}.atcb-button.atcb-no-text{min-width:0;border-radius:100%;display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-active-shadow);color:var(--btn-hover-text)}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:-15px;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;font-weight:var(--list-font-weight);position:absolute;width:auto;animation:list-entrance .6s ease 0s 1 normal forwards;z-index:15000000}@keyframes list-entrance{0%{opacity:0}100%{opacity:1}}.atcb-list{background-color:var(--list-background);border-radius:var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:var(--list-min-width);position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{box-shadow:none;align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:box-shadow .15s ease-in-out,padding .15s ease-in-out,margin .15s ease-in-out}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{box-shadow:var(--btn-shadow);background-color:var(--list-hover-background);color:var(--list-hover-text);padding:calc(var(--list-padding) + .2em);margin:-.2em;position:relative;z-index:15000010}.atcb-list-item:focus-visible{box-shadow:var(--btn-shadow);background-color:var(--list-hover-background);color:var(--accent-color);padding:calc(var(--list-padding) + .2em);margin:-.2em;position:relative;z-index:15000010;outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{animation:list-entrance .6s ease 0s 1 normal forwards;filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content ol,.atcb-modal-content ul{margin:1em auto;text-align:left;width:fit-content}.atcb-rtl .atcb-modal-content ol,.atcb-rtl .atcb-modal-content ul{text-align:right}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay) .atcb-checkmark,.atcb-button.atcb-single:focus .atcb-checkmark,.atcb-button.atcb-single:hover .atcb-checkmark{top:-.77em;right:-.37em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .1s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-trigger{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.atcb-modal-content.no-headline{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;padding-top:1.8em}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline,.rsvp-inline-wrapper.atcb-modal-box{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em;justify-content:center}.pro-form{text-align:left}.pro-form:not(.no-intro){border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em}.pro-form.no-intro:not(.no-headline){padding-top:.5em}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;box-shadow:var(--btn-shadow);caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input:not([disabled],[type=checkbox],[type=radio]):hover{box-shadow:var(--btn-active-shadow)}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{box-shadow:var(--btn-active-shadow)}.pro-field input[type=email]:focus-visible,.pro-field input[type=number]:focus-visible,.pro-field input[type=text]:focus-visible{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:3%;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column;gap:1.2em}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;background-color:var(--input-background);border-radius:var(--input-border-radius);box-shadow:var(--btn-shadow);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{color:var(--form-success)}#rsvp-status-group label.status-declined{color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{background-color:var(--btn-hover-background);display:block;margin:auto;min-width:150px}.pro-form-fine{font-size:.8em;margin:.5em auto 1em;opacity:.5;text-align:center}.pro-form.form-error .pro-form-fine{opacity:0}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p:not(.pro-form-fine){margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgb(255 255 255 / 80%));height:auto;padding:8px 0;text-align:center;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute;margin-top:-1px}.atcb-modal-host-initialized #atcb-reference.atcb-dropup{text-align:left}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:inline-block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\n \"text\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:5px;--btn-underline:#a9ceff;--btn-border:#a8a8a8;--btn-padding-x:.75em;--btn-padding-y:.75em;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-font-weight:600;--btn-text:#333;--btn-hover-text:#000;--btn-hover-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 15%) 0 2px 2px -1px;--btn-text-shadow:#fff;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-font-weight:400;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-border-radius:11px;--list-padding:.8em 1.2em;--list-min-width:100%;--list-shadow:rgb(0 0 0 / 20%) 0 4px 13px -2px,rgb(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgb(0 0 0 / 50%) 0 4px 30px -3px,rgb(0 0 0 / 30%) 0 2px 8px -2px;--modal-text:#000;--modal-text-align:center;--modal-text-align-rtl:center;--modal-background:#f5f5f5;--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-border-radius:9px;--modal-shadow:drop-shadow(3px 6px 25px rgb(0 0 0 / 65%));--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 15%) 0 2px 3px -1px;--modal-btn-hover-shadow:rgb(0 0 0 / 25%) 0 5px 13px -2px,rgb(0 0 0 / 25%) 0 3px 5px -2px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:6px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgb(0 0 0 / 20%) 0 5px 12px -2px,rgb(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgb(200 200 200 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-underline:#336db9;--btn-border:#888;--btn-background:#2e2e2e;--btn-hover-background:#373737;--btn-text:#dedede;--btn-hover-text:#fff;--btn-text-shadow:#000;--list-background:#2e2e2e;--list-hover-background:#373737;--list-text:#dedede;--list-hover-text:#fff;--list-close-background:#282828;--list-shadow:rgb(255 255 255 / 5%) -12px -5px 20px -8px,rgb(255 255 255 / 6%) -7px -5px 15px -3px,rgb(0 0 0 / 50%) 2px 5px 18px -1px,rgb(0 0 0 / 40%) 3px 3px 20px -3px;--list-modal-shadow:rgb(255 255 255 / 8%) -12px -5px 30px -8px,rgb(255 255 255 / 8%) -7px -5px 15px -3px,rgb(0 0 0 / 60%) 4px 6px 50px -4px,rgb(0 0 0 / 90%) 8px 12px 40px -2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgb(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgb(255 255 255 / 5%) -2px -2px 10px,rgb(0 0 0 / 40%) 3px 3px 10px -2px,rgb(0 0 0 / 40%) 1px 2px 5px -1px;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgb(0 0 0 / 60%) 0 0 20px -2px,rgb(0 0 0 / 30%) 1px 2px 3px -1px;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgb(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(0.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-initialized.atcb-buttons-list{gap:var(--buttonslist-gap)}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button{background-image:linear-gradient(120deg,var(--btn-underline) 0,var(--btn-underline) 100%);background-repeat:no-repeat;background-size:100% 8%;background-position:0 100%;background-color:transparent;border:0;border-radius:0;transition:background-size .1s ease-in,border-radius .2s ease-in,box-shadow .1s ease-in;align-items:center;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:var(--btn-font-weight);justify-content:center;line-height:1.2em;margin:0 .2em;padding:var(--btn-padding-y) var(--btn-padding-x);position:relative;text-align:left;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button.atcb-no-text{min-width:0;display:flex;place-content:center center;align-items:center;height:3em;width:3em;padding:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-size:100% 100%;box-shadow:var(--btn-hover-shadow);color:var(--btn-hover-text);text-shadow:0 0 .7em var(--btn-text-shadow);border-radius:21px}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){background-size:100% 10%;border-radius:3px 3px 11px 11px;background-position:0 0;background-color:var(--btn-background);color:var(--btn-text);text-shadow:none;z-index:15000000}.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-size:100% 10%;background-position:0 100%;border-radius:11px 11px 3px 3px;background-color:var(--btn-background);color:var(--btn-text);text-shadow:none}.atcb-button.atcb-active.atcb-dropup{background-position:0 100%;border-radius:11px 11px 3px 3px}.atcb-button.atcb-dropup::after,.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{content:\\\"\\\";width:0;height:0;position:absolute;left:0;right:0;margin:0 auto}.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{top:100%;border:0 solid transparent;border-bottom:none;border-top-color:var(--btn-background)}.atcb-button.atcb-dropup::after{bottom:100%;border:0 solid transparent;border-top:none;border-bottom-color:var(--btn-background)}.atcb-button.atcb-active.atcb-dropup::after,.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{border-width:.35em;transition:border-width .1s linear .1s}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:.9em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:1em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-icon-trigger svg{display:none}.atcb-button .atcb-icon-trigger::after{content:\\\"+\\\";font-family:Arial,Helvetica,sans-serif;font-size:1.5em}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:-15px;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;font-weight:var(--list-font-weight);position:absolute;z-index:14000090;width:auto}.atcb-list-wrapper:not(.atcb-dropup,.atcb-dropoverlay){animation:list-entrance-bottom .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropup{animation:list-entrance-top .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropoverlay{animation:list-entrance-center .2s ease 0s 1 normal forwards;z-index:15000000}@keyframes list-entrance-bottom{0%{opacity:0;transform:translateY(250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-top{0%{opacity:0;transform:translateY(-250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-center{0%{opacity:0;transform:scaleY(1)}1%{opacity:1;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}.atcb-list{background-color:var(--list-background);border-radius:var(--list-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:var(--list-min-width);position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:var(--list-padding);text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--list-border-radius) var(--list-border-radius)}.atcb-list-item:first-child{border-radius:var(--list-border-radius) var(--list-border-radius) 0 0}.atcb-list-item:only-child{border-radius:var(--list-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto;height:1em;width:1em}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content ol,.atcb-modal-content ul{margin:1em auto;text-align:left;width:fit-content}.atcb-rtl .atcb-modal-content ol,.atcb-rtl .atcb-modal-content ul{text-align:right}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--modal-border-radius) var(--modal-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:21px;box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:7px 4px 4px 7px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-rsvp{height:1.5em;width:1.5em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.rsvp-inline-wrapper{filter:none;min-width:100%;margin-bottom:0}.atcb-modal-content.no-headline{border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0;padding-top:1.8em}.rsvp-inline-wrapper .atcb-modal-content,.rsvp-inline-wrapper .atcb-modal-headline,.rsvp-inline-wrapper.atcb-modal-box{background-color:transparent;border-radius:0;box-sizing:border-box;padding:0;width:100%}.rsvp-inline-wrapper .atcb-modal-headline{padding-bottom:1.5em}.pro{text-align:center}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro #rsvp-atcb{display:flex;flex-wrap:wrap;gap:.4em;justify-content:center}.pro-form{text-align:left}.pro-form:not(.no-intro){border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em}.pro-form.no-intro:not(.no-headline){padding-top:.5em}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#rsvp-status-group{border-bottom:1px solid var(--modal-btn-border);font-weight:700;margin-bottom:1.5em;padding-bottom:2em;text-align:center}#rsvp-status-group .pro-field{align-items:center;display:flex;flex-wrap:wrap;gap:3%;justify-content:center;margin-top:1em}@media (width <= 575px){#rsvp-status-group .pro-field{flex-direction:column;gap:1.2em}#rsvp-status-group .pro-field div{width:80%}}#rsvp-status-group .pro-field div{min-width:28%;position:relative}#rsvp-status-group input{opacity:0;position:absolute;top:0;left:0;height:100%;width:100%;margin:0;cursor:pointer}#rsvp-status-group label{align-items:center;border:1px solid var(--modal-btn-text);border-radius:var(--input-border-radius);color:var(--modal-btn-text);display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;justify-content:center;opacity:.6;padding:.8em;transition:all .1s ease-in-out;width:100%}#rsvp-status-group label.status-confirmed{border-color:var(--form-success);color:var(--form-success)}#rsvp-status-group label.status-declined{border-color:var(--form-error);color:var(--form-error)}#rsvp-status-group input:checked+label{background-color:var(--modal-text);box-shadow:var(--btn-hover-shadow);color:var(--status-active-text);opacity:1;transform:scale(1.08)}#rsvp-status-group input:focus-visible+label{outline:2px solid var(--accent-color);outline-offset:2px}#rsvp-status-group input:not([disabled])+label:hover,#rsvp-status-group input:not([disabled]):hover+label{box-shadow:var(--btn-hover-shadow);opacity:1;transform:scale(1.08)}#rsvp-status-group input:checked+label.status-confirmed{background-color:var(--form-success)}#rsvp-status-group input:checked+label.status-declined{background-color:var(--form-error)}#rsvp-success-msg,#rsvp-success-msg-demo,#rsvp-success-msg-doi,#rsvp-success-msg-email,#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding-top:.5em;text-align:center}#rsvp-success-msg,#rsvp-success-msg-demo,#ty-success-msg{padding:1.5em 0}#rsvp-success-msg-demo,#rsvp-success-msg-email{color:var(--form-success)}#rsvp-success-msg-doi{color:var(--form-error);padding-top:1em;font-size:.8em}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-form-fine{font-size:.8em;margin:.5em auto 1em;opacity:.5;text-align:center}.pro-form.form-error .pro-form-fine{opacity:0}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.pro #rsvp-sent-content{align-items:center;display:flex;flex-direction:column;gap:1.5em}#rsvp-status-group span{color:inherit}.atcb-modal-content .pro p:not(.pro-form-fine){margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgb(255 255 255 / 80%));height:auto;padding:8px 0;text-align:center;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute;margin-top:-1px}.atcb-modal-host-initialized #atcb-reference.atcb-dropup{text-align:left}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:inline-block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\",\n \"date\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,\\\"Twemoji Mozilla\\\",\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"EmojiOne Color\\\",\\\"Android Emoji\\\",sans-serif;--accent-color:#1e90ff;--wrapper-padding:0px;--buttonslist-gap:5px;--btn-background:#f5f5f5;--btn-hover-background:#fff;--btn-border:#d2d2d2;--btn-border-radius:4px;--btn-text:#333;--btn-hover-text:#000;--btn-shadow:rgb(0 0 0 / 13%) 0 4px 10px -2px,rgb(0 0 0 / 18%) 0 2px 3px -1px;--btn-hover-shadow:rgb(0 0 0 / 25%) 0 5px 12px -2px,rgb(0 0 0 / 25%) 0 3px 5px -2px;--list-background:#f5f5f5;--list-hover-background:#fff;--list-text:#333;--list-font-weight:400;--list-hover-text:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-shadow:rgb(0 0 0 / 20%) 0 4px 13px -2px,rgb(0 0 0 / 23%) 0 2px 4px -1px;--list-modal-shadow:rgb(0 0 0 / 50%) 0 4px 30px -3px,rgb(0 0 0 / 30%) 0 2px 8px -2px;--modal-text:#000;--modal-text-align:center;--modal-text-align-rtl:center;--modal-background:#f5f5f5;--modal-shadow:drop-shadow(3px 6px 25px rgb(0 0 0 / 65%));--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-hover-background:#fff;--modal-btn-border:#d2d2d2;--modal-btn-font-weight:600;--modal-btn-text:#2e2e2e;--modal-btn-hover-text:#161616;--modal-btn-secondary-text:#666567;--modal-btn-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 10%) 0 2px 3px -1px;--modal-btn-hover-shadow:rgb(0 0 0 / 25%) 0 5px 13px -2px,rgb(0 0 0 / 20%) 0 3px 5px -2px;--modal-headline-text-align:center;--modal-headline-text-transform:none;--input-border-radius:3px;--input-background:#fff;--status-active-text:#fff;--form-error:#c5372c;--form-success:#338a36;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-hover-background:#fff;--date-btn-headline-line-clamp:1;--date-btn-shadow:rgb(0 0 0 / 10%) 0 4px 10px -2px,rgb(0 0 0 / 15%) 0 2px 3px -1px;--date-btn-hover-shadow:rgb(0 0 0 / 20%) 0 5px 12px -2px,rgb(0 0 0 / 20%) 0 3px 4px -2px;--checkmark-background:drop-shadow(0 0 3px #fff);--overlay-background:rgb(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-hover-background:#474747;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-hover-text:#f1f1f1;--btn-shadow:rgb(0 0 0 / 70%) 0 0 25px -2px,rgb(0 0 0 / 40%) 1px 2px 4px -1px;--btn-hover-shadow:rgb(0 0 0 / 90%) 2px 3px 25px -3px,rgb(0 0 0 / 50%) 1px 4px 6px -2px;--list-background:#2e2e2e;--list-hover-background:#474747;--list-text:#dedede;--list-hover-text:#f1f1f1;--list-close-background:#282828;--list-shadow:rgb(0 0 0 / 60%) 0 4px 20px -2px,rgb(0 0 0 / 40%) 0 2px 4px -1px;--list-modal-shadow:rgb(0 0 0 / 40%) -1px 3px 30px 2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-shadow:drop-shadow(3px 6px 25px rgb(0 0 0 / 90%));--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-hover-background:#434246;--modal-btn-border:#434246;--modal-btn-text:#dbdbdb;--modal-btn-hover-text:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-btn-shadow:rgb(255 255 255 / 5%) -2px -2px 10px,rgb(0 0 0 / 40%) 3px 3px 10px -2px,rgb(0 0 0 / 40%) 1px 2px 5px -1px;--input-background:#434246;--status-active-text:#000;--form-error:#db8680;--form-success:#99de9c;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-hover-background:#474747;--date-btn-shadow:rgb(0 0 0 / 60%) 0 0 20px -2px,rgb(0 0 0 / 30%) 1px 2px 3px -1px;--checkmark-background:drop-shadow(0 0 3px #0a0a0a);--overlay-background:rgb(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-button-wrapper{display:block;padding:var(--wrapper-padding);position:relative}.atcb-button,.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:var(--btn-border-radius);padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.atcb-subevent-btn{width:100%}.atcb-button{box-shadow:var(--btn-shadow);min-width:16em;max-width:18em;position:relative;z-index:1}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus,.atcb-button:hover{background-color:var(--btn-hover-background);box-shadow:var(--btn-hover-shadow)}.atcb-button:focus-visible,.atcb-subevent-btn:focus-visible{outline:2px solid var(--accent-color)}.atcb-button:not(.atcb-active):hover,.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-hover-background);box-shadow:var(--date-btn-hover-shadow)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:var(--btn-border-radius) 0 0 var(--btn-border-radius);align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-hover-background);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column;flex-shrink:0}.atcb-rtl .atcb-date-btn-left{border-radius:0 var(--btn-border-radius) var(--btn-border-radius) 0}.atcb-button:hover .atcb-date-btn-left,.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:400;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:13.5em;overflow-wrap:anywhere}.atcb-subevent-btn .atcb-date-btn-right{width:100%}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.4em .7em;box-sizing:border-box}.atcb-button:not(.atcb-active):hover .atcb-date-btn-hover,.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-button:not(.atcb-active):hover .atcb-date-btn-details,.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--date-btn-headline-line-clamp);line-clamp:var(--date-btn-headline-line-clamp);-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content.atcb-date-btn-cancelled{color:var(--form-error);font-weight:700}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;margin-right:.4em;margin-left:0;width:.9em;flex-shrink:0}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.4em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:100%}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-icon{flex-grow:0;flex-shrink:0;height:1em;line-height:1em;margin-right:.8em;width:1em}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:4px;height:1px;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;font-weight:var(--list-font-weight);padding:0 4px;position:absolute;z-index:14000090}.atcb-list-wrapper.atcb-dropoverlay{z-index:15000000}.atcb-list{border-radius:0 0 var(--btn-border-radius) var(--btn-border-radius);box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:.8em;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-hover-background);color:var(--list-hover-text)}.atcb-list-item:focus-visible{background-color:var(--list-hover-background);color:var(--accent-color);outline:0}.atcb-list-item:last-child{border-radius:0 0 var(--btn-border-radius) var(--btn-border-radius)}.atcb-dropup .atcb-list-item:last-child{border-radius:0;padding-bottom:1.25em}.atcb-dropoverlay .atcb-list .atcb-list-item:first-child,.atcb-dropup .atcb-list-item:first-child,.atcb-list.atcb-modal .atcb-list-item:first-child{border-radius:var(--btn-border-radius) var(--btn-border-radius) 0 0}.atcb-dropoverlay .atcb-list .atcb-list-item:only-child,.atcb-list.atcb-modal .atcb-list-item:only-child{border-radius:var(--btn-border-radius)}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:1.25em}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:.8em}.atcb-dropoverlay .atcb-list,.atcb-list.atcb-modal{border-radius:var(--btn-border-radius)}.atcb-list.atcb-modal{box-shadow:var(--list-modal-shadow)}.atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item .atcb-icon+.atcb-text{margin-left:.7em;width:100%}.atcb-rtl .atcb-list-item .atcb-icon+.atcb-text{margin-left:0;margin-right:.7em}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;width:auto;min-width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:var(--modal-text-align);user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;-webkit-tap-highlight-color:transparent}@media (width > 575px){.atcb-modal-box{width:32em}}.atcb-modal-box.atcb-rtl{text-align:var(--modal-text-align-rtl);direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{fill:currentcolor;height:100%;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:var(--btn-border-radius) var(--btn-border-radius) 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 1.5em 1.3em;text-transform:var(--modal-headline-text-transform);text-align:var(--modal-headline-text-align)}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2em 2.2em}.atcb-modal-content ol,.atcb-modal-content ul{margin:1em auto;text-align:left;width:fit-content}.atcb-rtl .atcb-modal-content ol,.atcb-rtl .atcb-modal-content ul{text-align:right}.atcb-modal-content-subevents{margin:auto;width:fit-content}.atcb-modal-icon+.atcb-modal-content{border-radius:var(--btn-border-radius) var(--btn-border-radius) 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 var(--btn-border-radius) var(--btn-border-radius);box-sizing:border-box;padding:.6em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:var(--btn-border-radius);box-shadow:var(--modal-btn-shadow);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:var(--modal-btn-font-weight);line-height:1em;margin:.625em;padding:1em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}a.atcb-modal-btn.btn-small,button.atcb-modal-btn.btn-small{padding:.6em .8em}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn.atcb-modal-btn-border,button.atcb-modal-btn.atcb-modal-btn-border{border:1px solid var(--modal-btn-border)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-hover-background);outline:2px solid var(--accent-color)}a.atcb-modal-btn:disabled,button.atcb-button:disabled,button.atcb-modal-btn:disabled,button.atcb-subevent-btn:disabled{cursor:not-allowed;opacity:.75;filter:brightness(95%);border-style:dashed;box-shadow:none}a.atcb-modal-btn:not([disabled]):hover,button.atcb-modal-btn:not([disabled]):hover{background-color:var(--modal-btn-hover-background);box-shadow:var(--modal-btn-hover-shadow);color:var(--modal-btn-hover-text);text-decoration:none}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.5em;padding:.5em;border-radius:100%;height:1.2em}.atcb-checkmark svg{height:100%;filter:var(--checkmark-background);width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon-outlookcom,.atcb-icon.atcb-icon-ms365{padding-bottom:.05em}.atcb-icon.atcb-icon-apple,.atcb-icon.atcb-icon-ical{padding-bottom:.15em}.atcb-icon.atcb-icon-apple svg{fill:currentcolor}.atcb-icon.atcb-icon-ical svg{fill:currentcolor}.atcb-icon.atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon.atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon.atcb-icon-google svg,.atcb-icon.atcb-icon-msteams svg,.atcb-icon.atcb-icon-outlookcom svg{filter:var(--icon-filter)}.pro{text-align:center}.pro a:not(.atcb-modal-btn),.pro a:not(.atcb-modal-btn):active,.pro a:not(.atcb-modal-btn):visited{color:var(--modal-btn-text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent-color)}.pro a:not(.atcb-modal-btn):hover{color:var(--accent-color);text-decoration:none}.pro .pro-share-buttons{display:flex;flex-wrap:wrap;justify-content:center}.pro-form{border-top:1px solid var(--modal-btn-border);margin-top:1.5em;padding-top:1.5em;text-align:left}.pro-field+.pro-field{padding-top:1.3em}.pro-field-type-label+.pro-field-type-radio{padding-top:0}.pro-field-type-checkbox,.pro-field-type-radio div{align-items:center;display:flex}.pro-field-type-checkbox input,.pro-field-type-radio input{cursor:pointer}.pro-field label{display:block;font-size:.9em;opacity:.7}.pro-field-type-checkbox label,.pro-field-type-radio label{cursor:pointer;opacity:.8;padding-left:.3em}.pro-field input[type=email],.pro-field input[type=number],.pro-field input[type=text]{background-color:var(--input-background);border:1px solid var(--modal-btn-border);border-radius:var(--input-border-radius);box-sizing:border-box;caret-color:var(--accent-color);color:var(--modal-text);font-size:.9em;opacity:.8;padding:.7em;transition:all .1s ease-in-out;width:100%}.pro-field input[type=checkbox],.pro-field input[type=radio]{accent-color:var(--accent-color);height:1.2rem;opacity:.8;transition:all .1s ease-in-out;width:1.2em}.pro-field input:disabled,.pro-field input:disabled+label{cursor:not-allowed;opacity:.75;filter:brightness(95%)}.pro-field input:not([disabled]):hover{opacity:1}.pro-field input[type=email]:focus,.pro-field input[type=number]:focus,.pro-field input[type=text]:focus{border-color:var(--accent-color);outline:1px solid var(--accent-color)}.pro-field input[type=checkbox]:focus,.pro-field input[type=radio]:focus{outline-color:var(--accent-color);outline-width:2px}#submit-error{color:var(--form-error);display:none;font-weight:700;padding-top:1.5em;text-align:center}.pro-form.form-error #submit-error{display:block}.pro-field input.error{accent-color:var(--form-error);border:2px solid var(--form-error)}.pro-field input.error+label,.pro-field:has(input.error) label{color:var(--form-error);opacity:1}#ty-success-msg{display:none;font-weight:700;line-height:1.6em;padding:1.5em 0;text-align:center}#pro-form-submit{display:block;margin:auto;min-width:150px}.pro-form-fine{font-size:.8em;margin:.5em auto 1em;opacity:.5;text-align:center}.pro-form.form-error .pro-form-fine{opacity:0}.pro-waiting{background-color:var(--modal-btn-background);border:1px solid var(--modal-btn-border);border-radius:var(--btn-border-radius);box-sizing:border-box;color:var(--modal-btn-text);cursor:wait;display:none;line-height:.5em;margin:auto;min-width:150px;padding:.5em 1.25em 1.2em;text-align:center;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:fit-content}@media (width > 575px){#pro-form-submit,.pro-waiting{min-width:200px}}.pro-waiting span:not(.atcb-icon-ical){animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;animation-fill-mode:both;font-size:2.5em}.pro-field label span:not(.atcb-icon-ical){color:var(--form-error);font-weight:700;padding-left:2px}.pro-waiting span:not(.atcb-icon-ical):nth-child(2){animation-delay:.15s}.pro-waiting span:not(.atcb-icon-ical):nth-child(3){animation-delay:.3s}@keyframes blink{0%{opacity:.2}20%{opacity:1}100%{opacity:.2}}.atcb-modal-content .pro p:not(.pro-form-fine){margin:0}.atcb-modal-content .pro p.pro-pt{margin-top:1.5em}.atcb-modal-content .pro .pro-field p{font-size:.9em}.pro .btn-flex{align-items:center;display:flex}.pro .atcb-modal-btn svg{fill:none;height:1.5em;margin-right:.5em;stroke:currentcolor;width:auto}#atcb-reference{box-sizing:border-box;filter:drop-shadow(0 0 3px rgb(255 255 255 / 80%));height:auto;padding:8px 0;text-align:center;transform:translate3d(0,0,0);width:100%;z-index:15000000}#atcb-reference.fixed-ref{position:fixed;bottom:10px;right:40px;width:auto}#atcb-reference.atcb-dropup{position:absolute;margin-top:-1px}.atcb-modal-host-initialized #atcb-reference.atcb-dropup{text-align:left}:host(.atcb-dark) #atcb-reference{filter:drop-shadow(0 0 5px #000)}#atcb-reference a,#atcb-reference a:active,#atcb-reference a:visited{opacity:.4;width:150px;max-width:100%;margin:auto;display:inline-block;text-decoration:none}#atcb-reference.fixed-ref a{opacity:.6}#atcb-reference a:hover{opacity:.9;text-decoration:none}#atcb-reference svg{fill:var(--list-text)}\"\n};\nconst atcbIsBrowser = () => {\n if (typeof window === 'undefined') {\n return false;\n } else {\n return true;\n }\n};\nconst atcbIsiOS = atcbIsBrowser() ? () => {\n if (/iPad|iPhone|iPod/i.test(navigator.userAgent) && !/MSStream/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n} : () => {\n return false;\n};\nconst atcbIsAndroid = atcbIsBrowser() ? () => {\n if (/android/i.test(navigator.userAgent) && !/MSStream/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n} : () => {\n return false;\n};\n/*const atcbIsChrome = atcbIsBrowser()\n ? () => {\n if (/chrome|chromium|crios|google inc/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };*/\nconst atcbIsSafari = atcbIsBrowser() ? () => {\n if (/^(?:(?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n} : () => {\n return false;\n};\nconst atcbIsMobile = () => {\n if (atcbIsAndroid() || atcbIsiOS()) {\n return true;\n } else {\n return false;\n }\n};\nconst atcbIsWebView = atcbIsBrowser() ? () => {\n if (/; ?wv|(?:iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n} : () => {\n return false;\n};\nconst atcbIsProblematicWebView = atcbIsBrowser() ? () => {\n if (/Instagram/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n} : () => {\n return false;\n};\nconst atcbDefaultTarget = atcbIsWebView() ? '_system' : '_blank';\nconst atcbOptions = ['apple', 'google', 'ical', 'ms365', 'outlookcom', 'msteams', 'yahoo'];\nconst atcbValidRecurrOptions = ['apple', 'google', 'ical'];\nconst atcbInvalidSubscribeOptions = ['msteams'];\nconst atcbIOSInvalidOptions = ['ical'];\nconst atcbAndroidInvalidOptions = ['apple'];\nconst atcbStates = [];\nconst atcbWcParams = ['debug', 'proOverride', 'cspnonce', 'identifier', 'name', 'dates', 'description', 'startDate', 'startTime', 'endDate', 'endTime', 'timeZone', 'useUserTZ', 'location', 'status', 'uid', 'organizer', 'attendee', 'icsFile', 'images', 'recurrence', 'recurrence_until', 'recurrence_byDay', 'recurrence_byMonth', 'recurrence_byMonthDay', 'recurrence_weekstart', 'sequence', 'recurrence_interval', 'recurrence_count', 'availability', 'created', 'updated', 'subscribe', 'options', 'optionsMobile', 'optionsIOS', 'iCalFileName', 'listStyle', 'buttonStyle', 'trigger', 'hideIconButton', 'hideIconList', 'hideIconModal', 'hideTextLabelButton', 'hideTextLabelList', 'buttonsList', 'hideBackground', 'hideCheckmark', 'hideBranding', 'size', 'label', 'inline', 'inlineRsvp', 'customLabels', 'customCss', 'lightMode', 'language', 'hideRichData', 'bypassWebViewCheck', 'blockInteraction', 'styleLight', 'styleDark', 'disabled', 'hidden', 'hideButton', 'pastDateHandling', 'proxy', 'fakeMobile', 'fakeIOS', 'fakeAndroid', 'forceOverlay', 'rsvp', 'ty', 'customVar', 'domain', 'dev'];\nconst atcbWcProParams = ['debug', 'proOverride', 'cspnonce', 'attendee', 'images', 'size', 'inline', 'inlineRsvp', 'customLabels', 'customCss', 'lightMode', 'language', 'bypassWebViewCheck', 'blockInteraction', 'styleLight', 'styleDark', 'disabled', 'hidden', 'fakeMobile', 'fakeIOS', 'fakeAndroid', 'forceOverlay', 'customVar', 'proxy', 'domain', 'dev'];\nconst atcbWcBooleanParams = ['debug', 'proOverride', 'useUserTZ', 'hideIconButton', 'hideIconList', 'hideIconModal', 'hideTextLabelButton', 'hideTextLabelList', 'subscribe', 'hideBackground', 'hideCheckmark', 'hideBranding', 'inlineRsvp', 'hideRichData', 'buttonsList', 'inline', 'bypassWebViewCheck', 'blockInteraction', 'disabled', 'hidden', 'hideButton', 'proxy', 'fakeMobile', 'fakeIOS', 'fakeAndroid', 'forceOverlay', 'dev'];\nconst atcbWcObjectParams = ['customLabels', 'ty', 'rsvp', 'customVar'];\nconst atcbWcObjectArrayParams = ['dates'];\nconst atcbWcArrayParams = ['images', 'options', 'optionsMobile', 'optionsIOS'];\nconst atcbWcNumberParams = ['sequence', 'recurrence_interval', 'recurrence_count'];\nconst atcbIcon = {\n trigger: '',\n apple: '',\n google: '',\n ical: '',\n msteams: '',\n ms365: '',\n outlookcom: '',\n yahoo: '',\n close: '',\n location: '',\n warning: '',\n checkmark: '',\n rsvp: ''\n};\nasync function atcb_decorate_data(data) {\n data = atcb_decorate_data_boolean(data);\n data.timeZone = atcb_decorate_data_timezone(data.timeZone);\n data = atcb_decorate_data_rrule(data);\n data = atcb_decorate_data_options(data);\n data = atcb_decorate_data_style(data);\n data.sizes = atcb_decorate_sizes(data.size);\n data.lightMode = atcb_decorate_light_mode(data.lightMode);\n data = atcb_decorate_data_i18n(data);\n data = atcb_decorate_data_dates(data);\n data = atcb_decorate_data_meta(data);\n data = atcb_decorate_data_extend(data);\n data = atcb_decorate_data_button_status_handling(data);\n data = await atcb_decorate_data_rsvp(data);\n return data;\n}\nfunction atcb_decorate_data_boolean(data) {\n for (let i = 0; i < atcbWcBooleanParams.length; i++) {\n const attr = atcbWcBooleanParams[`${i}`];\n if (data[`${attr}`]) {\n if (typeof data[`${attr}`] !== 'boolean') {\n const val = data[`${attr}`].toString().trim().toLowerCase() || '';\n data[`${attr}`] = val === '' || val === 'true' ? true : false;\n }\n } else {\n data[`${attr}`] = false;\n }\n }\n return data;\n}\nfunction atcb_decorate_data_timezone(tz = null) {\n if (!tz || tz === '') {\n return 'GMT';\n }\n return tz;\n}\nfunction atcb_decorate_data_rrule(data) {\n if (data.recurrence && data.recurrence !== '') {\n data.recurrence = data.recurrence.replace(/\\s+/g, '').toUpperCase();\n if (!/^(?:RRULE:[\\w=;,:+\\-/\\\\]+|daily|weekly|monthly|yearly)$/im.test(data.recurrence)) {\n data.recurrence = '!wrong rrule format!';\n } else {\n if (/^RRULE:/i.test(data.recurrence)) {\n data.recurrence_simplyfied = false;\n const rruleParts = data.recurrence.substring(6).split(';');\n const rruleObj = new Object();\n rruleParts.forEach(function (rule) {\n rruleObj[rule.split('=')[0]] = rule.split('=')[1];\n });\n data.recurrence_until = rruleObj.UNTIL ? rruleObj.UNTIL : '';\n data.recurrence_count = rruleObj.COUNT ? rruleObj.COUNT : '';\n data.recurrence_byDay = rruleObj.BYDAY ? rruleObj.BYDAY : '';\n data.recurrence_byMonth = rruleObj.BYMONTH ? rruleObj.BYMONTH : '';\n data.recurrence_byMonthDay = rruleObj.BYMONTHDAY ? rruleObj.BYMONTHDAY : '';\n data.recurrence_interval = rruleObj.INTERVAL ? rruleObj.INTERVAL : 1;\n data.recurrence_frequency = rruleObj.FREQ ? rruleObj.FREQ : '';\n } else {\n data.recurrence_simplyfied = true;\n if (!data.recurrence_interval || data.recurrence_interval === '') {\n data.recurrence_interval = 1;\n }\n if (!data.recurrence_weekstart || data.recurrence_weekstart === '' | data.recurrence_weekstart.length > 2) {\n data.recurrence_weekstart = 'MO';\n }\n data.recurrence_frequency = data.recurrence;\n data.recurrence = 'RRULE:FREQ=' + data.recurrence + ';WKST=' + data.recurrence_weekstart + ';INTERVAL=' + data.recurrence_interval;\n if (data.recurrence_until && data.recurrence_until !== '') {\n if (data.endTime && data.endTime !== '') {\n data.recurrence = data.recurrence + ';UNTIL=' + data.recurrence_until.replace(/-/g, '').slice(0, 8) + 'T' + data.endTime.replace(':', '') + '00';\n } else {\n data.recurrence = data.recurrence + ';UNTIL=' + data.recurrence_until.replace(/-/g, '').slice(0, 8);\n }\n }\n if (data.recurrence_count && data.recurrence_count !== '') {\n data.recurrence = data.recurrence + ';COUNT=' + data.recurrence_count;\n }\n if (data.recurrence_byDay && data.recurrence_byDay !== '') {\n data.recurrence = data.recurrence + ';BYDAY=' + data.recurrence_byDay;\n }\n if (data.recurrence_byMonth && data.recurrence_byMonth !== '') {\n data.recurrence = data.recurrence + ';BYMONTH=' + data.recurrence_byMonth;\n }\n if (data.recurrence_byMonthDay && data.recurrence_byMonthDay !== '') {\n data.recurrence = data.recurrence + ';BYMONTHDAY=' + data.recurrence_byMonthDay;\n }\n }\n }\n }\n return data;\n}\nfunction atcb_decorate_data_options(data) {\n const theOptions = function () {\n if (atcbIsiOS() || data.fakeIOS) {\n if (data.optionsIOS && data.optionsIOS.length > 0) {\n return data.optionsIOS;\n }\n if (data.optionsMobile && data.optionsMobile.length > 0) {\n return data.optionsMobile;\n }\n }\n if ((atcbIsAndroid() || data.fakeMobile || data.fakeAndroid) && data.optionsMobile && data.optionsMobile.length > 0) {\n return data.optionsMobile;\n }\n return data.options || ['ical'];\n }();\n let newOptions = [];\n let iCalGiven = false;\n let appleGiven = false;\n for (let i = 0; i < theOptions.length; i++) {\n const cleanOption = theOptions[`${i}`].split('|');\n const optionName = cleanOption[0].toLowerCase().replace('microsoft', 'ms').replace(/\\./, '');\n if (optionName === 'apple') {\n appleGiven = true;\n }\n if (optionName === 'ical') {\n iCalGiven = true;\n }\n if ((atcbIsiOS() || data.fakeIOS) && atcbIOSInvalidOptions.includes(optionName) || (atcbIsAndroid() || data.fakeAndroid) && atcbAndroidInvalidOptions.includes(optionName) || data.recurrence && data.recurrence !== '' && (!atcbValidRecurrOptions.includes(optionName) || data.recurrence_until && data.recurrence_until !== '' && (optionName === 'apple' || optionName === 'ical') || (atcbIsiOS() || data.fakeIOS) && optionName === 'google') || data.subscribe && atcbInvalidSubscribeOptions.includes(optionName)) {\n continue;\n }\n if ((atcbIsMobile() || data.fakeMobile) && data.subscribe && (optionName === 'ms365' || optionName === 'outlookcom')) {\n continue;\n }\n newOptions.push(optionName);\n }\n if (data.subscribe && data.icsFile && data.icsFile.startsWith('https://calendar.google.com/calendar/') && !data.icsFile.endsWith('.ics')) {\n newOptions = ['google'];\n }\n if (newOptions.length === 0) {\n if (!atcbIsiOS() && !data.fakeIOS) {\n newOptions.push('ical');\n }\n iCalGiven = true;\n }\n if ((atcbIsiOS() || data.fakeIOS) && iCalGiven && !appleGiven) {\n newOptions.push('apple');\n }\n if ((atcbIsAndroid() || data.fakeAndroid) && appleGiven && !iCalGiven) {\n newOptions.push('ical');\n }\n newOptions.sort();\n data.options = newOptions;\n return data;\n}\nfunction atcb_decorate_data_style(data) {\n if (data.inlineRSVP) {\n data.inline = true;\n }\n if (!data.listStyle || data.listStyle === '') {\n data.listStyle = 'dropdown';\n }\n if (data.listStyle === 'modal') {\n data.trigger = 'click';\n }\n if (data.buttonStyle && data.buttonStyle !== '' && data.buttonStyle != 'default') {\n if (data.buttonStyle == 'round' || data.buttonStyle == 'text' || data.buttonStyle == 'date' || data.buttonStyle == 'neumorphism') {\n data.trigger = 'click';\n }\n } else {\n data.buttonStyle = 'default';\n }\n if ((data.buttonStyle == 'default' || data.buttonStyle == '3d' || data.buttonStyle == 'flat') && !data.hideTextLabelList && data.hideTextLabelButton && (data.listStyle == 'dropdown' || data.listStyle == 'dropdown-static' || data.listStyle == 'dropup-static')) {\n data.listStyle = 'overlay';\n }\n if (data.buttonsList && data.buttonStyle == 'date') {\n data.buttonsList = false;\n }\n return data;\n}\nfunction atcb_decorate_sizes(size) {\n const sizes = [];\n sizes['l'] = sizes['m'] = sizes['s'] = 16;\n if (size && size !== '') {\n const sizeParts = size.split('|');\n for (let i = 0; i < sizeParts.length; i++) {\n sizeParts[`${i}`] = parseInt(sizeParts[`${i}`]);\n }\n if (sizeParts[0] >= 0 && sizeParts[0] < 11) {\n sizes['l'] = sizes['m'] = sizes['s'] = 10 + sizeParts[0];\n }\n if (sizeParts.length > 2) {\n if (sizeParts[1] >= 0 && sizeParts[1] < 11) {\n sizes['m'] = 10 + sizeParts[1];\n }\n if (sizeParts[2] >= 0 && sizeParts[2] < 11) {\n sizes['s'] = 10 + sizeParts[2];\n }\n } else if (sizeParts.length == 2) {\n if (sizeParts[1] >= 0 && sizeParts[1] < 11) {\n sizes['m'] = sizes['s'] = 10 + sizeParts[1];\n }\n }\n }\n return sizes;\n}\nfunction atcb_decorate_light_mode(lightMode = '') {\n if (lightMode == 'system' && atcbIsBrowser()) {\n const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)');\n return prefersDarkScheme.matches ? 'dark' : 'light';\n }\n if (lightMode != 'bodyScheme' && lightMode != 'dark') {\n return 'light';\n }\n return lightMode;\n}\nfunction atcb_decorate_data_i18n(data) {\n if (!data.language || data.language === '' || !availableLanguages.includes(data.language)) {\n data.language = 'en';\n }\n if (data.language.length > 2) {\n data.language = data.language.substring(0, 2);\n }\n if (rtlLanguages.includes(data.language)) {\n data.rtl = true;\n } else {\n data.rtl = false;\n }\n return data;\n}\nfunction atcb_decorate_data_dates(data) {\n if (data.dates && data.dates.length > 0) {\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].timeZone && data.timeZone) {\n data.dates[`${i}`].timeZone = data.timeZone;\n }\n if (!data.dates[`${i}`].useUserTZ && data.useUserTZ) {\n data.dates[`${i}`].useUserTZ = data.useUserTZ;\n }\n const cleanedUpDates = atcb_date_cleanup(data.dates[`${i}`]);\n data.dates[`${i}`].startDate = cleanedUpDates.startDate;\n data.dates[`${i}`].endDate = cleanedUpDates.endDate;\n data.dates[`${i}`].startTime = cleanedUpDates.startTime;\n data.dates[`${i}`].endTime = cleanedUpDates.endTime;\n data.dates[`${i}`].timeZone = cleanedUpDates.timeZone;\n data.dates[`${i}`].timestamp = atcb_date_specials_calculation('timestamp', data.dates[`${i}`].startDate, data.dates[`${i}`].startTime, data.dates[`${i}`].timeZone);\n data.dates[`${i}`].overdue = atcb_date_specials_calculation('overdue', data.dates[`${i}`].endDate, data.dates[`${i}`].endTime, data.dates[`${i}`].timeZone);\n }\n } else {\n data.dates = [];\n data.dates[0] = new Object();\n if (data.useUserTZ) data.dates[0].useUserTZ = data.useUserTZ;\n const cleanedUpDates = atcb_date_cleanup(data);\n data.startDate = data.dates[0].startDate = cleanedUpDates.startDate;\n data.endDate = data.dates[0].endDate = cleanedUpDates.endDate;\n data.startTime = data.dates[0].startTime = cleanedUpDates.startTime;\n data.endTime = data.dates[0].endTime = cleanedUpDates.endTime;\n data.timeZone = data.dates[0].timeZone = cleanedUpDates.timeZone;\n if (!data.recurrence) {\n data.dates[0].overdue = atcb_date_specials_calculation('overdue', data.endDate, data.endTime, data.timeZone);\n } else {\n data.dates[0].overdue = false;\n }\n }\n const now = new Date();\n if (!data.created || data.created === '') {\n data.created = atcb_format_datetime(now, 'clean', true);\n }\n if (!data.updated || data.updated === '') {\n data.updated = atcb_format_datetime(now, 'clean', true);\n }\n return data;\n}\nfunction atcb_decorate_data_meta(data) {\n if (!data.status || data.status === '') {\n data.status = 'CONFIRMED';\n }\n if (!data.sequence || data.sequence === '') {\n data.sequence = 0;\n }\n return data;\n}\nfunction atcb_decorate_data_description(data, i) {\n const cleanDescription = desc => desc.replace(/(\\\\r\\\\n|\\\\n|\\\\r|)/g, '');\n let description = data.dates[`${i}`].description || data.description || '';\n if (description) {\n description = cleanDescription(description);\n if (data.customVar) {\n for (const key in data.customVar) {\n const sanitizedKey = '%%' + key.replace(/[^\\w\\-.]/g, '') + '%%';\n // eslint-disable-next-line security/detect-non-literal-regexp\n description = description.replace(new RegExp(sanitizedKey, 'gi'), data.customVar[`${key}`]);\n }\n }\n const descriptionHtmlFree = atcb_rewrite_html_elements(description, true);\n const descriptionHtmlFreeICal = atcb_rewrite_html_elements(description, true, true);\n description = atcb_rewrite_html_elements(description);\n data.dates[`${i}`] = {\n ...data.dates[`${i}`],\n description,\n descriptionHtmlFree,\n descriptionHtmlFreeICal\n };\n } else {\n data.dates[`${i}`].descriptionHtmlFree = data.dates[`${i}`].descriptionHtmlFreeICal = data.dates[`${i}`].description = '';\n }\n return data;\n}\nfunction atcb_decorate_data_extend(data) {\n for (let i = 0; i < data.dates.length; i++) {\n data = atcb_decorate_data_description(data, i);\n if (!data.dates[`${i}`].name || data.dates[`${i}`].name === '') {\n data.dates[`${i}`].name = data.name;\n }\n if (!data.dates[`${i}`].status) {\n data.dates[`${i}`].status = data.status.toUpperCase();\n } else {\n data.dates[`${i}`].status = data.dates[`${i}`].status.toUpperCase();\n }\n if (!data.dates[`${i}`].sequence) {\n data.dates[`${i}`].sequence = data.sequence;\n }\n if (!data.dates[`${i}`].organizer && data.organizer) {\n data.dates[`${i}`].organizer = data.organizer;\n }\n if (!data.dates[`${i}`].attendee && data.attendee) {\n data.dates[`${i}`].attendee = data.attendee;\n }\n if (!data.dates[`${i}`].availability && data.availability) {\n data.dates[`${i}`].availability = data.availability.toLowerCase();\n } else if (data.dates[`${i}`].availability) {\n data.dates[`${i}`].availability = data.dates[`${i}`].availability.toLowerCase();\n }\n if (!data.dates[`${i}`].location && data.location) {\n data.dates[`${i}`].location = data.location;\n }\n if (data.dates[`${i}`].location && data.dates[`${i}`].location.startsWith('http')) {\n data.dates[`${i}`].onlineEvent = true;\n } else {\n data.dates[`${i}`].onlineEvent = false;\n }\n if (!data.dates[`${i}`].uid) {\n if (i === 0 && data.uid && data.uid !== '') {\n data.dates[0].uid = data.uid;\n } else {\n if (data.uid && data.uid !== '') {\n data.dates[`${i}`].uid = data.uid + '-' + (i + 1);\n } else {\n data.dates[`${i}`].uid = atcb_generate_uuid();\n }\n }\n }\n if (data.customVar) {\n for (const key in data.customVar) {\n const sanitizedKey = '%%' + key.replace(/[^\\w\\-.]/g, '') + '%%';\n // eslint-disable-next-line security/detect-non-literal-regexp\n data.dates[`${i}`].name = data.dates[`${i}`].name.replace(new RegExp(sanitizedKey, 'gi'), data.customVar[`${key}`]);\n // eslint-disable-next-line security/detect-non-literal-regexp\n data.dates[`${i}`].location = data.dates[`${i}`].location.replace(new RegExp(sanitizedKey, 'gi'), data.customVar[`${key}`]);\n }\n }\n }\n if (data.recurrence && data.recurrence !== '') {\n data.dates[0].recurrence = data.recurrence;\n }\n if (data.dates.length > 1) {\n data.dates.sort((a, b) => a.timestamp - b.timestamp);\n }\n return data;\n}\nfunction atcb_date_cleanup(dateTimeData) {\n function isValidDateFormat(dateStr) {\n return /^\\d\\d\\d\\d-\\d\\d-\\d\\d(?:T\\d\\d:\\d\\d)?(?::\\d\\d)?(?:.\\d\\d\\d)?Z?$/i.test(dateStr);\n }\n function isValidTodayFormat(dateStr) {\n return /^today(?:\\+(?:\\d|\\d\\d|\\d\\d\\d|\\d\\d\\d\\d))?$/i.test(dateStr);\n }\n if (!dateTimeData.endDate || dateTimeData.endDate === '') {\n dateTimeData.endDate = dateTimeData.startDate;\n }\n const endpoints = ['start', 'end'];\n endpoints.forEach(function (point) {\n const dateStr = dateTimeData[point + 'Date'];\n if (!isValidDateFormat(dateStr) && !isValidTodayFormat(dateStr)) {\n dateTimeData[point + 'Date'] = 'badly-formed';\n } else {\n if (isValidTodayFormat(dateStr)) dateTimeData[point + 'Date'] = atcb_date_calculation(dateStr);\n if (dateTimeData[point + 'Date']) {\n const tmpSplitStartDate = dateTimeData[point + 'Date'].split('T');\n if (tmpSplitStartDate[1]) {\n dateTimeData[point + 'Date'] = tmpSplitStartDate[0];\n dateTimeData[point + 'Time'] = tmpSplitStartDate[1];\n }\n }\n if (dateTimeData[point + 'Time'] && dateTimeData[point + 'Time'].length > 5) {\n dateTimeData[point + 'Time'] = dateTimeData[point + 'Time'].substring(0, 5);\n }\n }\n });\n if (dateTimeData.timeZone === 'currentBrowser' || dateTimeData.useUserTZ) {\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'GMT';\n if (dateTimeData.useUserTZ && dateTimeData.startTime && dateTimeData.startTime !== '' && dateTimeData.endTime && dateTimeData.endTime !== '') {\n const newStartDateTime = atcb_translate_via_time_zone(dateTimeData.startDate, dateTimeData.startTime, dateTimeData.timeZone, browserTimezone);\n const newEndDateTime = atcb_translate_via_time_zone(dateTimeData.endDate, dateTimeData.endTime, dateTimeData.timeZone, browserTimezone);\n dateTimeData.startDate = newStartDateTime[0];\n dateTimeData.startTime = newStartDateTime[1];\n dateTimeData.endDate = newEndDateTime[0];\n dateTimeData.endTime = newEndDateTime[1];\n }\n dateTimeData.timeZone = browserTimezone;\n }\n return dateTimeData;\n}\nfunction atcb_date_specials_calculation(type, dateString, timeString = null, timeZone) {\n try {\n const tmpDate = function () {\n if (timeString) {\n const offsetEnd = tzlib_get_offset(timeZone, dateString, timeString);\n return new Date(dateString + ' ' + timeString + ':00 GMT' + offsetEnd);\n }\n return new Date(dateString);\n }();\n if (type === 'timestamp') {\n return tmpDate.getTime();\n }\n if (!timeString) {\n tmpDate.setDate(tmpDate.getDate() + 1);\n }\n const currentUtcDate = new Date().toISOString();\n return tmpDate.getTime() < new Date(currentUtcDate).getTime();\n } catch {\n return false;\n }\n}\nfunction atcb_date_calculation(dateString) {\n const today = new Date();\n const todayString = today.getUTCFullYear() + '-' + (today.getUTCMonth() + 1) + '-' + today.getUTCDate();\n dateString = dateString.replace(/today/gi, todayString);\n const dateStringParts = dateString.split('+');\n const dateParts = dateStringParts[0].split('-');\n const newDate = new Date(Date.UTC(dateParts[0], dateParts[1] - 1, dateParts[2].substring(0, 2)));\n if (dateStringParts[1] && dateStringParts[1] > 0) {\n newDate.setDate(newDate.getDate() + parseInt(dateStringParts[1]));\n }\n try {\n return newDate.toISOString().replace(/T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z/g, '');\n } catch {\n return false;\n }\n}\nfunction atcb_decorate_data_button_status_handling(data) {\n if (!data.pastDateHandling || data.pastDateHandling != 'disable' && data.pastDateHandling != 'hide') {\n data.pastDateHandling = 'none';\n }\n data.allOverdue = function () {\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].overdue) {\n return false;\n }\n }\n return true;\n }();\n if (data.allOverdue) {\n if (data.pastDateHandling == 'disable') {\n data.disabled = true;\n } else if (data.pastDateHandling == 'hide') {\n data.hidden = true;\n }\n }\n data.allCancelled = function () {\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].status || data.dates[`${i}`].status.toLowerCase() !== 'cancelled') {\n return false;\n }\n }\n return true;\n }();\n if (data.disabled || data.hidden) {\n data.blockInteraction = true;\n }\n return data;\n}\nasync function atcb_decorate_data_rsvp(data) {\n if (typeof atcb_check_bookings !== 'function' || !data.rsvp || !data.proKey || Object.keys(data.rsvp).length === 0) return data;\n data.rsvp.expired = function () {\n if (data.rsvp && data.rsvp.expires && new Date(data.rsvp.expires) < new Date()) {\n return true;\n }\n return false;\n }();\n if (data.rsvp.max) {\n const bookings = await atcb_check_bookings(data.proKey, data.dev);\n data.rsvp.seatsLeft = data.rsvp.max - bookings;\n if (data.rsvp.seatsLeft < 1) {\n data.rsvp.bookedOut = true;\n }\n if (data.rsvp.expired || data.rsvp.bookedOut) {\n data.blockInteraction = true;\n }\n if (data.blockInteraction) {\n data.disabled = true;\n }\n }\n return data;\n}\nasync function atcb_check_required(data) {\n if (!data.name || data.name === '') {\n throw new Error('Add to Calendar Button generation failed: required name information missing');\n }\n if (data.dates != null && data.dates.length > 0) {\n if (data.subscribe === true && data.dates.length > 1) {\n throw new Error('Add to Calendar Button generation failed: a subscription calendar cannot be a multi-date setup');\n }\n const requiredMultiField = ['name', 'startDate'];\n const requiredMultiFieldFlex = ['name'];\n return requiredMultiField.every(function (field) {\n for (let i = 0; i < data.dates.length; i++) {\n if (!requiredMultiFieldFlex.includes(`${field}`) && (!data.dates[`${i}`][`${field}`] || data.dates[`${i}`][`${field}`] === '') || requiredMultiFieldFlex.includes(`${field}`) && (!data.dates[`${i}`][`${field}`] || data.dates[`${i}`][`${field}`] === '') && (!data[`${field}`] || data[`${field}`] === '')) {\n if (!data.subscribe || field !== 'startDate') {\n throw new Error('Add to Calendar Button generation failed: required setting missing [dates array object #' + (i + 1) + '/' + data.dates.length + '] => [' + field + ']');\n } else {\n data.dates[`${i}`].startDate = 'today';\n }\n }\n }\n return true;\n });\n } else {\n const requiredSingleField = ['startDate'];\n return requiredSingleField.every(function (field) {\n if (!data[`${field}`] || data[`${field}`] === '') {\n if (!data.subscribe || field !== 'startDate') {\n throw new Error('Add to Calendar Button generation failed: required setting missing [' + field + ']');\n } else {\n data.startDate = 'today';\n }\n }\n return true;\n });\n }\n}\nasync function atcb_validate(data) {\n const msgPrefix = 'Add to Calendar Button generation (' + data.identifier + ')';\n try {\n await atcb_validate_icsFile(data, msgPrefix);\n await atcb_validate_buttonStyle(data, msgPrefix);\n await atcb_validate_subscribe(data, msgPrefix);\n await atcb_validate_created(data, msgPrefix);\n await atcb_validate_updated(data, msgPrefix);\n await atcb_validate_options(data, msgPrefix);\n await atcb_validate_date_blocks(data, msgPrefix);\n await atcb_validate_rrule(data, msgPrefix);\n if (data.recurrence_simplyfied) {\n await atcb_validate_rrule_simplyfied(data, msgPrefix);\n }\n return true;\n } catch (e) {\n throw new Error(e.message);\n }\n}\nasync function atcb_validate_icsFile(data, msgPrefix, i = '', msgSuffix = '') {\n const icsFileStr = function () {\n if (i !== '' && data.dates[`${i}`].icsFile) {\n return data.dates[`${i}`].icsFile;\n }\n if (i === '' && data.icsFile) {\n return data.icsFile;\n }\n return '';\n }();\n if (icsFileStr !== '') {\n if (!atcb_secure_url(icsFileStr, false) || !data.icsFile.startsWith('https://') && !data.icsFile.startsWith('http://')) {\n throw new Error(msgPrefix + ' failed: explicit ics file path not valid' + msgSuffix);\n }\n }\n return true;\n}\nasync function atcb_validate_buttonStyle(data, msgPrefix) {\n const availableStyles = ['default', '3d', 'flat', 'round', 'neumorphism', 'text', 'date', 'custom', 'none'];\n if (!availableStyles.includes(data.buttonStyle)) {\n throw new Error(msgPrefix + ' failed: provided buttonStyle invalid');\n }\n if (data.customCss && data.customCss !== '' && (!atcb_secure_url(data.customCss, false) || !/\\.css(?:$|\\?)/.test(data.customCss))) {\n throw new Error(msgPrefix + ' failed: customCss provided, but no valid url');\n }\n if ((!data.customCss || data.customCss === '') && data.buttonStyle === 'custom') {\n throw new Error(msgPrefix + ' failed: buttonStyle \"custom\" selected, but no customCss file provided');\n }\n if (data.rsvp && (data.buttonStyle === 'date' || data.buttonStyle === 'none')) {\n throw new Error(msgPrefix + ' failed: buttonStyle ' + data.buttonStyle + ' is not compatible with the RSVP functionality');\n }\n return true;\n}\nasync function atcb_validate_subscribe(data, msgPrefix) {\n if (data.subscribe === true && (!data.icsFile || data.icsFile === '')) {\n throw new Error(msgPrefix + ' failed: a subscription calendar requires a valid explicit ics file as well');\n }\n return true;\n}\nasync function atcb_validate_created(data, msgPrefix) {\n if (!/^\\d{8}T\\d{6}Z$/.test(data.created)) {\n throw new Error(msgPrefix + ' failed: created date format not valid. Needs to be a full ISO-8601 UTC date and time string, formatted YYYYMMDDTHHMMSSZ');\n }\n return true;\n}\nasync function atcb_validate_updated(data, msgPrefix) {\n if (!/^\\d{8}T\\d{6}Z$/.test(data.updated)) {\n throw new Error(msgPrefix + ' failed: updated date format not valid. Needs to be a full ISO-8601 UTC date and time string, formatted YYYYMMDDTHHMMSSZ');\n }\n return true;\n}\nasync function atcb_validate_options(data, msgPrefix) {\n const isValid = data.options.every(option => {\n if (!atcbOptions.includes(option)) {\n throw new Error(`${msgPrefix} failed: invalid option [${option}]`);\n }\n return true;\n });\n return isValid;\n}\nasync function atcb_validate_date_blocks(data, msgPrefix) {\n try {\n for (let i = 0; i < data.dates.length; i++) {\n const msgSuffix = function () {\n if (data.dates.length === 1) {\n return '';\n } else {\n return ' [dates array object #' + (i + 1) + '/' + data.dates.length + '] ';\n }\n }();\n await atcb_validate_icsFile(data, msgPrefix, i, msgSuffix);\n await atcb_validate_status(data, msgPrefix, i, msgSuffix);\n await atcb_validate_availability(data, msgPrefix, i, msgSuffix);\n await atcb_validate_organizer(data, msgPrefix, i, msgSuffix);\n await atcb_validate_attendee(data, msgPrefix, i, msgSuffix);\n await atcb_validate_uid(data, msgPrefix, i, msgSuffix);\n await atcb_validate_sequence(data, msgPrefix, i, msgSuffix);\n await atcb_validate_timezone(data, msgPrefix, i, msgSuffix);\n await atcb_validate_datetime(data, msgPrefix, i, msgSuffix);\n }\n return true;\n } catch (e) {\n throw new Error(e.message);\n }\n}\nasync function atcb_validate_status(data, msgPrefix, i, msgSuffix) {\n const allowedStatuses = ['tentative', 'confirmed', 'cancelled'];\n if (!allowedStatuses.includes(data.dates[`${i}`].status.toLowerCase())) {\n throw new Error(msgPrefix + ' failed: event status needs to be TENTATIVE, CONFIRMED, or CANCELLED' + msgSuffix);\n }\n return true;\n}\nasync function atcb_validate_availability(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].availability && data.dates[`${i}`].availability !== '' && data.dates[`${i}`].availability !== 'free' && data.dates[`${i}`].availability !== 'busy') {\n throw new Error(msgPrefix + ' failed: event availability needs to be \"free\" or \"busy\"' + msgSuffix);\n }\n return true;\n}\nasync function atcb_validate_organizer(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].organizer && data.dates[`${i}`].organizer !== '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n if (organizerParts.length !== 2 || organizerParts[0].length > 50 || organizerParts[1].length > 100 || !atcb_validEmail(organizerParts[1])) {\n throw new Error(msgPrefix + ' failed: organizer needs to match the schema \"NAME|EMAIL\" with a valid email address' + msgSuffix);\n }\n }\n return true;\n}\nasync function atcb_validate_attendee(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].attendee && data.dates[`${i}`].attendee !== '') {\n if (!data.dates[`${i}`].organizer || data.dates[`${i}`].organizer === '') {\n throw new Error(msgPrefix + ' failed: if an attendee is set, you also need to set the organizer' + msgSuffix);\n }\n const attendeeParts = data.dates[`${i}`].attendee.split('|');\n if (attendeeParts.length === 1 && atcb_validEmail(attendeeParts[0])) {\n return true;\n }\n if (attendeeParts.length !== 2 || attendeeParts[0].length > 50 || attendeeParts[1].length > 100 || !atcb_validEmail(attendeeParts[1])) {\n throw new Error(msgPrefix + ' failed: attendee needs to be a valid email address or match the schema \"NAME|EMAIL\" with EMAIL being a valid email address' + msgSuffix);\n }\n }\n return true;\n}\nasync function atcb_validate_uid(data, msgPrefix, i, msgSuffix) {\n if (!/^(?:\\w|-){1,254}$/.test(data.dates[`${i}`].uid)) {\n if (data.debug) {\n console.warn(msgPrefix + ': UID not valid. May only contain alpha, digits, and dashes; and be less than 255 characters. Falling back to an automated value!' + msgSuffix);\n }\n data.dates[`${i}`].uid = atcb_generate_uuid();\n }\n if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(data.dates[`${i}`].uid) && data.debug) {\n console.warn(msgPrefix + ': UID is highly recommended to be a hex-encoded random Universally Unique Identifier (UUID)!' + msgSuffix);\n }\n return true;\n}\nasync function atcb_validate_sequence(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].sequence && (data.dates[`${i}`].sequence < 0 || data.dates[`${i}`].sequence % 1 !== 0)) {\n if (data.debug) {\n console.log(msgPrefix + ': sequence needs to be a full number >= 0. Used the default 0 instead' + msgSuffix);\n }\n data.dates[`${i}`].sequence = 0;\n }\n return true;\n}\nasync function atcb_validate_timezone(data, msgPrefix, i, msgSuffix) {\n const validTimeZones = tzlib_get_timezones();\n if (!validTimeZones.includes(data.dates[`${i}`].timeZone)) {\n throw new Error(msgPrefix + ' failed: invalid time zone given' + msgSuffix);\n }\n return true;\n}\nasync function atcb_validate_datetime(data, msgPrefix, i, msgSuffix) {\n const selectedDate = data.dates[`${i}`];\n const dates = ['startDate', 'endDate'];\n const newDate = {};\n dates.forEach(date => {\n const dateString = selectedDate[`${date}`];\n if (dateString.length !== 10) {\n throw new Error(`${msgPrefix} failed: date misspelled [-> YYYY-MM-DD]${msgSuffix}`);\n }\n const dateParts = dateString.split('-');\n if (dateParts.length !== 3) {\n throw new Error(`${msgPrefix} failed: date misspelled [${date}: ${dateString}]${msgSuffix}`);\n }\n newDate[`${date}`] = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]);\n });\n const times = ['startTime', 'endTime'];\n times.forEach(time => {\n const timeString = selectedDate[`${time}`];\n if (timeString) {\n if (timeString.length !== 5) {\n throw new Error(`${msgPrefix} failed: time misspelled [-> HH:MM]${msgSuffix}`);\n }\n const timeParts = timeString.split(':');\n if (timeParts.length !== 2 || timeParts[0] > 23 || timeParts[1] > 59) {\n throw new Error(`${msgPrefix} failed: time misspelled [${time}: ${timeString}]${msgSuffix}`);\n }\n const dateKey = time === 'startTime' ? 'startDate' : 'endDate';\n newDate[`${dateKey}`] = new Date(newDate[`${dateKey}`].getTime() + parseInt(timeParts[0], 10) * 3600000 + parseInt(timeParts[1], 10) * 60000);\n }\n });\n if (selectedDate.startTime && !selectedDate.endTime || !selectedDate.startTime && selectedDate.endTime) {\n throw new Error(`${msgPrefix} failed: if you set a starting or end time, the respective other one also needs to be defined${msgSuffix}`);\n }\n if (newDate.endDate < newDate.startDate) {\n throw new Error(`${msgPrefix} failed: end date before start date${msgSuffix}`);\n }\n return true;\n}\nasync function atcb_validate_rrule(data, msgPrefix) {\n if (data.recurrence && data.recurrence !== '' && data.dates.length > 1) {\n throw new Error(msgPrefix + ' failed: RRULE and multi-date set at the same time');\n }\n if (data.recurrence && data.recurrence !== '' && !/^RRULE:[\\w=;,:+\\-/\\\\]+$/i.test(data.recurrence)) {\n throw new Error(msgPrefix + ' failed: RRULE data misspelled');\n }\n return true;\n}\nasync function atcb_validate_rrule_simplyfied(data, msgPrefix) {\n if (data.recurrence_interval && (data.recurrence_interval < 1 || data.recurrence_interval % 1 !== 0)) {\n throw new Error(msgPrefix + ' failed: recurrence data (interval) misspelled');\n }\n if (data.recurrence_until && data.recurrence_until !== '' && !/^[\\d\\-:]+$/.test(data.recurrence_until)) {\n throw new Error(msgPrefix + ' failed: recurrence data (until) misspelled');\n }\n if (data.recurrence_count && (data.recurrence_count < 1 || data.recurrence_count % 1 !== 0)) {\n throw new Error(msgPrefix + ' failed: recurrence data (interval) misspelled');\n }\n if (data.recurrence_byMonth && data.recurrence_byMonth !== '' && !/^[\\d,]+$/.test(data.recurrence_byMonth)) {\n throw new Error(msgPrefix + ' failed: recurrence data (byMonth) misspelled');\n }\n if (data.recurrence_byMonthDay && data.recurrence_byMonthDay !== '' && !/^[\\d,]+$/.test(data.recurrence_byMonthDay)) {\n throw new Error(msgPrefix + ' failed: recurrence data (byMonthDay) misspelled');\n }\n if (data.recurrence_byDay && data.recurrence_byDay !== '' && !/^(?:[\\d,-]|MO|TU|WE|TH|FR|SA|SU)+$/im.test(data.recurrence_byDay)) {\n throw new Error(msgPrefix + ' failed: recurrence data (byDay) misspelled');\n }\n if (data.recurrence_weekstart && data.recurrence_weekstart !== '' && !/^(?:MO|TU|WE|TH|FR|SA|SU)$/im.test(data.recurrence_weekstart)) {\n throw new Error(msgPrefix + ' failed: recurrence data (weekstart) misspelled');\n }\n return true;\n}\nfunction atcb_toggle(host, action, data = '', button = null, keyboardTrigger = false, generatedButton = false) {\n if (action == 'open') {\n atcb_open(host, data, button, keyboardTrigger, generatedButton);\n } else if (action == 'close' || button.classList.contains('atcb-active') || host.querySelector('.atcb-active-modal')) {\n atcb_close(host, keyboardTrigger);\n } else {\n atcb_open(host, data, button, keyboardTrigger, generatedButton);\n }\n}\nasync function atcb_open(host, data, button = null, keyboardTrigger = false, generatedButton = false) {\n if (host.querySelector('.atcb-list') || host.querySelector('.atcb-modal')) return;\n atcb_log_event('openList', data.identifier, data.identifier);\n atcbStates['active'] = data.identifier;\n const list = atcb_generate_dropdown_list(host, data);\n const listWrapper = document.createElement('div');\n listWrapper.classList.add('atcb-list-wrapper');\n listWrapper.setAttribute('part', 'atcb-list-wrapper');\n if (data.hideTextLabelList) {\n listWrapper.classList.add('atcb-no-text');\n }\n if (button) {\n button.classList.add('atcb-active');\n button.setAttribute('aria-expanded', true);\n if (data.listStyle === 'modal') {\n button.classList.add('atcb-modal-style');\n list.classList.add('atcb-modal');\n } else {\n listWrapper.append(list);\n listWrapper.classList.add('atcb-dropdown');\n if (data.listStyle === 'overlay') {\n listWrapper.classList.add('atcb-dropoverlay');\n }\n }\n if (generatedButton) {\n list.classList.add('atcb-generated-button');\n }\n } else {\n list.classList.add('atcb-modal');\n }\n const bgOverlay = atcb_generate_bg_overlay(host, data.trigger, data.listStyle === 'modal', !data.hideBackground);\n if (data.listStyle === 'modal') {\n const modalHost = await atcb_generate_modal_host(host, data);\n modalHost.querySelector('.atcb-modal-host-initialized').append(bgOverlay);\n bgOverlay.append(list);\n if (!data.hideBranding) {\n atcb_create_atcbl(modalHost, false);\n }\n atcb_set_sizes(list, data.sizes);\n atcb_manage_body_scroll(modalHost);\n atcb_set_fullsize(bgOverlay);\n } else {\n if (data.forceOverlay) {\n host = await atcb_generate_overlay_dom(host, data);\n button = host.querySelector('button.atcb-button');\n }\n host.querySelector('.atcb-initialized').append(listWrapper);\n listWrapper.append(list);\n if (data.buttonStyle != 'default') {\n listWrapper.classList.add('atcb-style-' + data.buttonStyle);\n }\n if (!data.hideBranding) {\n atcb_create_atcbl(host);\n }\n host.append(bgOverlay);\n atcb_set_sizes(list, data.sizes);\n listWrapper.style.display = 'none';\n setTimeout(function () {\n listWrapper.style.display = 'block';\n if (data.listStyle === 'dropdown-static') {\n atcb_position_list(host, button, listWrapper, true);\n } else if (data.listStyle === 'dropup-static') {\n atcb_position_list(host, button, listWrapper, false, true);\n } else {\n atcb_position_list(host, button, listWrapper);\n }\n }, 5);\n atcb_set_fullsize(bgOverlay);\n }\n const focusEl = function () {\n const hostEl = host.querySelector('.atcb-list-item');\n if (hostEl) {\n return hostEl;\n }\n const modalHost = document.getElementById(data.identifier + '-modal-host');\n if (!modalHost) {\n return;\n }\n return modalHost.shadowRoot.querySelector('.atcb-list-item');\n }();\n if (focusEl) {\n if (keyboardTrigger) {\n focusEl.focus();\n } else {\n focusEl.focus({\n preventScroll: true\n });\n focusEl.blur();\n }\n }\n}\nfunction atcb_close(host, keyboardTrigger = false) {\n const existingModalHost = document.getElementById(host.host.getAttribute('atcb-button-id') + '-modal-host');\n const allModals = function () {\n if (!existingModalHost || existingModalHost.length === 0) {\n return [];\n }\n return existingModalHost.shadowRoot.querySelectorAll('.atcb-modal[data-modal-nr]');\n }();\n if (allModals.length > 1) {\n existingModalHost.shadowRoot.querySelectorAll('.atcb-modal[data-modal-nr=\"' + allModals.length + '\"]')[0].remove();\n const nextModal = existingModalHost.shadowRoot.querySelectorAll('.atcb-modal[data-modal-nr=\"' + (allModals.length - 1) + '\"]')[0];\n nextModal.classList.remove('atcb-hidden');\n let focusEl = nextModal;\n const availableButtons = nextModal.getElementsByTagName('button');\n if (availableButtons.length > 0) {\n focusEl = availableButtons[0];\n }\n focusEl.focus();\n if (!keyboardTrigger) {\n focusEl.blur();\n }\n } else {\n const newFocusEl = function () {\n const hostEl = host.querySelector('.atcb-active, .atcb-active-modal');\n if (hostEl) {\n return hostEl;\n }\n return document.querySelector('.atcb-active, .atcb-active-modal');\n }();\n if (newFocusEl) {\n newFocusEl.focus({\n preventScroll: true\n });\n if (!keyboardTrigger) {\n newFocusEl.blur();\n }\n }\n Array.from(host.querySelectorAll('.atcb-active')).forEach(button => {\n button.classList.remove('atcb-active');\n button.setAttribute('aria-expanded', false);\n });\n Array.from(host.querySelectorAll('.atcb-active-modal')).forEach(modal => {\n modal.classList.remove('atcb-active-modal');\n });\n Array.from(document.querySelectorAll('.atcb-active')).forEach(button => {\n button.classList.remove('atcb-active');\n button.setAttribute('aria-expanded', false);\n });\n Array.from(document.querySelectorAll('.atcb-active-modal')).forEach(modal => {\n modal.classList.remove('atcb-active-modal');\n });\n if (existingModalHost) {\n existingModalHost.remove();\n }\n document.body.classList.remove('atcb-modal-no-scroll');\n document.documentElement.classList.remove('atcb-modal-no-scroll');\n Array.from(host.querySelectorAll('.atcb-list-wrapper')).concat(Array.from(host.querySelectorAll('.atcb-list'))).concat(Array.from(host.querySelectorAll('#atcb-reference'))).concat(Array.from(host.querySelectorAll('#atcb-bgoverlay'))).forEach(el => el.remove());\n const hiddenButton = document.querySelector('.atcb-shadow-hide');\n if (hiddenButton) {\n hiddenButton.shadowRoot.querySelector('.atcb-initialized').style.opacity = '1';\n hiddenButton.classList.remove('atcb-shadow-hide');\n window.removeEventListener('scroll', atcb_position_shadow_button_listener);\n window.removeEventListener('resize', atcb_position_shadow_button_listener);\n }\n atcbStates['active'] = '';\n }\n}\nasync function atcb_generate_ty(hostEl, dataObj) {\n let host = hostEl;\n let data = dataObj;\n if (!hostEl.host) {\n host = host.shadowRoot;\n data = await atcb_decorate_data(data);\n }\n const copyIcon = '';\n const copiedIcon = '';\n const mailIcon = '';\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n if ((!data.proKey || data.proKey === '') && !window.location.hostname.match(/^(localhost|.*\\.add-to-calendar-pro.com)$/)) {\n return;\n }\n const tyHost = await atcb_generate_modal_host(host, data);\n atcb_set_fullsize(tyHost.querySelector('.atcb-modal-host-initialized'));\n const tyData = data.ty;\n if ((tyData.type === 'link' || tyData.type === 'form') && (!tyData.url || tyData.url === '' || !tyData.url.startsWith('http'))) {\n tyData.type = 'text';\n }\n if (!tyData.headline || tyData.headline === '') {\n tyData.headline = atcb_translate_hook('thankyou', data) + '!';\n }\n let tyContent = '

' + atcb_translate_hook('form.success', data) + '

';\n if (tyData.text && tyData.text !== '') {\n tyContent += atcb_rewrite_html_elements(tyData.text);\n }\n if (tyData.type === 'share') {\n tyContent += `

\n \n ${mailIcon}\n ${atcb_translate_hook('label.share.email', data)}\n \n \n

`;\n }\n let header = {};\n if (tyData.type === 'form') {\n const noIntro = !tyData.text || tyData.text === '' || tyData.text === undefined;\n const label = function () {\n if (tyData.button_label && tyData.button_label !== '') {\n return tyData.button_label;\n }\n return atcb_translate_hook('submit', data);\n }();\n tyContent += '
';\n if (tyData.fields && tyData.fields.length > 0) {\n const headerField = tyData.fields.find(field => field.name === 'header' && field.type === 'hidden');\n if (headerField && headerField.default && headerField.default !== '' && headerField.default.startsWith('{')) {\n try {\n header = JSON.parse(headerField.default);\n if (Object.keys(header).length === 0) {\n header.atcb = true;\n }\n tyData.fields = tyData.fields.filter(field => field.name !== 'header');\n } catch {\n /* do nothing */\n }\n }\n const customForm = atcb_build_form(tyData.fields, data.identifier + '-ty');\n tyData.fields = customForm.fields;\n tyContent += customForm.html;\n }\n tyContent += '

';\n tyContent += '

...

';\n tyContent += '
';\n }\n if (tyData.type === 'link') {\n const label = function () {\n if (tyData.button_label && tyData.button_label !== '') {\n return tyData.button_label;\n }\n return atcb_translate_hook('continue', data);\n }();\n tyContent += '

' + label + '

';\n }\n tyContent += '
';\n await atcb_create_modal(tyHost, data, 'checkmark', tyData.headline, tyContent);\n if (tyData.type === 'share') {\n const copyBtn = tyHost.getElementById('atcb-ty-share-copy');\n copyBtn.addEventListener('click', function () {\n atcb_copy_to_clipboard(tyData.url);\n copyBtn.innerHTML = copiedIcon + atcb_translate_hook('label.share.copied', data) + '!';\n setTimeout(function () {\n copyBtn.innerHTML = copyIcon + atcb_translate_hook('label.share.copy', data);\n }, 3000);\n });\n copyBtn.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n copyBtn.click();\n }\n });\n }\n if (tyData.type === 'form') {\n const tyForm = tyHost.getElementById(data.identifier + '-ty-form');\n const errorMsg = tyHost.getElementById('submit-error');\n const tyFormSubmit = tyHost.getElementById('pro-form-submit');\n const tyFormSubmitting = tyHost.getElementById('pro-form-submitting');\n tyFormSubmit.addEventListener('click', async function (e) {\n e.preventDefault();\n tyFormSubmitting.style.display = 'block';\n tyFormSubmit.style.display = 'none';\n let valid = atcb_validate_form(tyHost, tyData.fields);\n if (!valid) {\n errorMsg.textContent = atcb_translate_hook('form.error.required', data) + '.';\n }\n if (valid) {\n const bodyData = [];\n let skipRadio = false;\n tyData.fields.forEach(field => {\n if (field.type !== 'label') {\n if (field.type === 'radio') {\n if (!skipRadio) {\n const radioGroup = tyHost.querySelectorAll('[name=\"' + field.name + '\"]');\n radioGroup.forEach(function (radio) {\n if (radio.checked) {\n bodyData.push({\n name: field.name,\n value: radio.value\n });\n }\n });\n skipRadio = true;\n }\n } else if (field.type === 'checkbox') {\n bodyData.push({\n name: field.name,\n value: tyHost.getElementById(field.fieldId).checked\n });\n skipRadio = false;\n } else {\n bodyData.push({\n name: field.name,\n value: tyHost.getElementById(field.fieldId).value\n });\n skipRadio = false;\n }\n }\n });\n const request = await sendPostRequest(tyData.url, bodyData, header);\n if (request === true) {\n tyHost.getElementById('ty-success-msg').style.display = 'block';\n tyHost.getElementById('ty-content').style.display = 'none';\n return;\n }\n errorMsg.textContent = atcb_translate_hook('form.error.sending', data) + '.';\n }\n tyForm.classList.add('form-error');\n tyFormSubmitting.style.display = 'none';\n tyFormSubmit.style.display = 'block';\n });\n tyFormSubmit.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n tyFormSubmit.click();\n }\n });\n }\n}\nasync function atcb_generate_rsvp_form(host, data, hostEl, keyboardTrigger = false) {\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n const rsvpData = data.rsvp;\n const noIntro = !rsvpData.text || rsvpData.text === '' || rsvpData.text === undefined;\n const noHeadline = !rsvpData.headline || rsvpData.headline === '' || rsvpData.headline === undefined;\n let hiddenContent = '';\n let rsvpContent = '
';\n const sentStatus = localStorage.getItem(data.proKey + '-rsvp-sent') === 'true' || null;\n if (sentStatus) {\n rsvpContent += '
';\n rsvpContent += '

' + atcb_translate_hook('form.success.already', data) + '

';\n if (!data.hideButton) rsvpContent += '
';\n if (data.inlineRsvp) rsvpContent += '';\n rsvpContent += '
';\n }\n rsvpContent += '

' + atcb_translate_hook('form.success.sent', data) + '

' + atcb_translate_hook('form.success.email', data) + '

' + atcb_translate_hook('form.success.doi', data) + '

';\n rsvpContent += '
' + atcb_translate_hook('form.success.demo', data) + '
';\n rsvpContent += '
';\n if (rsvpData.text && rsvpData.text !== '') {\n rsvpContent += atcb_rewrite_html_elements(rsvpData.text);\n }\n rsvpContent += '
';\n const staticID = data.proKey || 'demo-rsvp';\n if (rsvpData.initial_confirmation === false) {\n rsvpContent += '
';\n rsvpContent += '

' + atcb_translate_hook('form.status', data) + '

';\n rsvpContent += '
';\n if (rsvpData.maybe_option === true) {\n rsvpContent += '
';\n }\n rsvpContent += '
';\n rsvpContent += '
';\n } else {\n hiddenContent += '';\n }\n const maxAmount = rsvpData.maxpp || 1;\n if (maxAmount === 1) {\n hiddenContent += '';\n } else {\n rsvpContent += '
';\n rsvpContent += '
';\n }\n const attendee = function () {\n if (data.attendee && data.attendee !== '') {\n const attendeeParts = data.attendee.split('|');\n if (attendeeParts.length > 1) {\n return attendeeParts[1];\n }\n return attendeeParts[0];\n }\n return null;\n }();\n const customEmailField = rsvpData.fields?.find(field => field.name === 'email');\n if (!customEmailField) {\n if (attendee) {\n hiddenContent += '';\n } else {\n rsvpContent += '
';\n rsvpContent += '
';\n }\n } else {\n rsvpData.fields = rsvpData.fields.map(field => {\n if (field.name === 'email') {\n return {\n ...field,\n required: true,\n type: 'email',\n default: attendee !== '' ? attendee : field.default\n };\n }\n return field;\n });\n }\n if (rsvpData.fields && rsvpData.fields.length > 0) {\n const customForm = atcb_build_form(rsvpData.fields, data.identifier + '-rsvp', data.disabled);\n rsvpData.fields = customForm.fields;\n rsvpContent += customForm.html;\n }\n rsvpContent += hiddenContent;\n rsvpContent += '

';\n rsvpContent += '

...

';\n if (rsvpData.seatsLeft && rsvpData.seatsLeft > 0) {\n rsvpContent += '

' + atcb_translate_hook('form.seatsleft', data) + ': ' + rsvpData.seatsLeft + '

';\n }\n rsvpContent += '
';\n rsvpContent += '
';\n let rsvpHost = null;\n if (!data.inlineRsvp) {\n rsvpHost = await atcb_generate_modal_host(host, data);\n atcb_set_fullsize(rsvpHost.querySelector('.atcb-modal-host-initialized'));\n await atcb_create_modal(rsvpHost, data, undefined, rsvpData.headline, rsvpContent, [{\n type: 'none',\n label: atcb_translate_hook('label.rsvp.restart', data),\n small: true,\n primary: true,\n id: 'pro-form-restart'\n }, {\n type: 'close',\n label: atcb_translate_hook('close', data),\n small: true,\n id: 'modal-btn-close'\n }, {\n type: 'close',\n label: atcb_translate_hook('cancel', data),\n small: true,\n id: 'modal-btn-cancel'\n }], [], keyboardTrigger, {}, false);\n } else {\n rsvpHost = host;\n const rsvpInlineWrapper = document.createElement('div');\n rsvpInlineWrapper.classList.add('atcb-modal-box', 'rsvp-inline-wrapper');\n rsvpInlineWrapper.setAttribute('part', 'atcb-modal-box');\n if (data.rtl) {\n rsvpInlineWrapper.classList.add('atcb-rtl');\n }\n hostEl.append(rsvpInlineWrapper);\n if (rsvpData.headline) {\n const rsvpInlineHeadline = document.createElement('div');\n rsvpInlineHeadline.classList.add('atcb-modal-headline');\n rsvpInlineWrapper.append(rsvpInlineHeadline);\n rsvpInlineHeadline.innerHTML = rsvpData.headline;\n }\n const rsvpInlineContent = document.createElement('div');\n rsvpInlineContent.classList.add('atcb-modal-content');\n rsvpInlineWrapper.append(rsvpInlineContent);\n if (!data.hideBranding) {\n const atcbL = atcb_create_atcbl(rsvpHost, false, true);\n rsvpInlineWrapper.append(atcbL);\n }\n if (rsvpData.expired) {\n rsvpInlineContent.innerHTML = '

' + atcb_translate_hook('label.rsvp.expired', data) + '

';\n return;\n } else if (rsvpData.bookedOut) {\n rsvpInlineContent.innerHTML = '

' + atcb_translate_hook('label.rsvp.bookedout', data) + '

';\n return;\n } else {\n rsvpInlineContent.innerHTML = rsvpContent;\n }\n }\n if (sentStatus) rsvpHost.getElementById('rsvp-content').style.display = 'none';\n const closeBtn = rsvpHost.getElementById('modal-btn-close');\n const cancelBtn = rsvpHost.getElementById('modal-btn-cancel');\n const restartBtn = rsvpHost.getElementById('pro-form-restart');\n atcb_log_event('openRSVP', data.identifier, data.identifier);\n if (data.debug) {\n console.log('RSVP form for \"' + data.identifier + '\" created');\n }\n if (sentStatus) {\n if (cancelBtn) cancelBtn.style.display = 'none';\n const atcbHost = rsvpHost.getElementById('rsvp-atcb');\n if (atcbHost && !data.hideButton) {\n const atcbData = JSON.parse(JSON.stringify(data));\n atcbData.hideTextLabelButton = true;\n atcbData.hideIconButton = false;\n atcbData.buttonsList = true;\n atcb_generate_button(host, atcbHost, atcbData);\n }\n } else {\n if (closeBtn) closeBtn.style.display = 'none';\n if (restartBtn) restartBtn.style.display = 'none';\n }\n const rsvpForm = rsvpHost.getElementById(data.identifier + '-rsvp-form');\n const errorMsg = rsvpHost.getElementById('submit-error');\n const rsvpFormSubmit = rsvpHost.getElementById('pro-form-submit');\n const rsvpFormSubmitting = rsvpHost.getElementById('pro-form-submitting');\n const rsvpRestart = rsvpHost.getElementById('pro-form-restart');\n if (rsvpFormSubmit) {\n rsvpFormSubmit.addEventListener('click', async function (e) {\n e.preventDefault();\n rsvpFormSubmitting.style.display = 'block';\n rsvpFormSubmit.style.display = 'none';\n const staticFields = [{\n type: 'number',\n name: data.proKey + '-amount',\n fieldId: data.identifier + '-rsvp-amount',\n required: true\n }];\n if (!customEmailField) staticFields.push({\n type: 'email',\n name: 'email',\n fieldId: data.identifier + '-rsvp-email',\n required: true\n });\n let valid = atcb_validate_form(rsvpHost, [...staticFields, ...rsvpData.fields]);\n const amountEl = rsvpHost.getElementById(data.identifier + '-rsvp-amount');\n const amount = parseInt(amountEl.value) || 1;\n if (rsvpData.maxpp && rsvpData.maxpp > 0 && amount > rsvpData.maxpp) {\n amountEl.classList.add('error');\n valid = false;\n }\n if (!valid) {\n errorMsg.textContent = atcb_translate_hook('form.error.required', data) + '.';\n }\n if (valid) {\n if (!data.proKey || data.proKey === '') {\n rsvpHost.getElementById('rsvp-success-msg-demo').style.display = 'block';\n rsvpHost.getElementById('rsvp-content').style.display = 'none';\n atcb_log_event('successRSVP', data.identifier, data.identifier);\n if (cancelBtn) cancelBtn.style.display = 'none';\n if (closeBtn) closeBtn.style.display = 'block';\n return;\n }\n let fieldsCopy = JSON.parse(JSON.stringify(rsvpData.fields));\n const bodyData = [];\n bodyData.push({\n name: 'prokey',\n value: data.proKey\n });\n bodyData.push({\n name: 'language',\n value: data.language\n });\n const statusValEl = rsvpHost.querySelector('[name=\"' + data.proKey + '-status\"]:checked');\n bodyData.push({\n name: 'status',\n value: statusValEl ? statusValEl.value : 'confirmed'\n });\n bodyData.push({\n name: 'amount',\n value: amount\n });\n if (!customEmailField) {\n bodyData.push({\n name: 'email',\n value: rsvpHost.getElementById(data.identifier + '-rsvp-email').value\n });\n } else {\n const emailFieldId = fieldsCopy.find(field => field.name === 'email')?.fieldId;\n bodyData.push({\n name: 'email',\n value: rsvpHost.getElementById(emailFieldId).value\n });\n fieldsCopy = fieldsCopy.filter(field => field.fieldId !== emailFieldId);\n }\n const bodyData_payload = {};\n let skipRadio = false;\n fieldsCopy.forEach(field => {\n if (field.type !== 'label') {\n if (field.type === 'radio') {\n if (!skipRadio) {\n const radioGroup = rsvpHost.querySelectorAll('[name=\"' + field.name + '\"]');\n radioGroup.forEach(function (radio) {\n if (radio.checked) {\n bodyData_payload[field.name] = radio.value;\n }\n });\n skipRadio = true;\n }\n } else if (field.type === 'checkbox') {\n bodyData_payload[field.name] = rsvpHost.getElementById(field.fieldId).checked;\n skipRadio = false;\n } else {\n bodyData_payload[field.name] = rsvpHost.getElementById(field.fieldId).value;\n skipRadio = false;\n }\n }\n });\n if (Object.keys(bodyData_payload).length > 0) {\n bodyData.push({\n name: 'payload',\n value: bodyData_payload\n });\n }\n const request = await sendPostRequest(`https://api${data.dev ? '-dev' : ''}.add-to-calendar-pro.com/24586219-9910-41fe-9b59-df53de9db7af`, bodyData, {\n rsvp: true\n });\n if (request === 'doi' || request === true) {\n rsvpHost.getElementById('rsvp-success-msg').style.display = 'block';\n if (request === 'doi') {\n rsvpHost.getElementById('rsvp-success-msg-doi').style.display = 'block';\n } else {\n rsvpHost.getElementById('rsvp-success-msg-email').style.display = 'block';\n }\n rsvpHost.getElementById('rsvp-content').style.display = 'none';\n if (cancelBtn) cancelBtn.style.display = 'none';\n if (closeBtn) closeBtn.style.display = 'block';\n atcb_log_event('successRSVP', data.identifier, data.identifier);\n localStorage.setItem(data.proKey + '-rsvp-sent', true);\n return;\n }\n if (request.error && request.error === 2) {\n errorMsg.textContent = atcb_translate_hook('form.error.email', data) + '.';\n } else if (request.error && request.error === 5) {\n errorMsg.textContent = atcb_translate_hook('label.rsvp.expired', data) + '.';\n } else if (request.error && request.error === 6) {\n if (amount > 1) {\n errorMsg.textContent = atcb_translate_hook('form.error.bookedoutmany', data) + '.';\n } else {\n errorMsg.textContent = atcb_translate_hook('label.rsvp.bookedout', data) + '.';\n }\n } else {\n errorMsg.textContent = atcb_translate_hook('form.error.sending', data) + '.';\n }\n }\n rsvpForm.classList.add('form-error');\n rsvpFormSubmitting.style.display = 'none';\n rsvpFormSubmit.style.display = 'block';\n });\n rsvpFormSubmit.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n rsvpFormSubmit.click();\n }\n });\n }\n if (rsvpRestart) {\n rsvpRestart.addEventListener('click', function (e) {\n e.preventDefault();\n rsvpHost.getElementById('rsvp-sent-content').style.display = 'none';\n rsvpHost.getElementById('rsvp-content').style.display = 'block';\n if (closeBtn) closeBtn.style.display = 'none';\n if (restartBtn) restartBtn.style.display = 'none';\n if (cancelBtn) cancelBtn.style.display = 'block';\n });\n rsvpRestart.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n rsvpRestart.click();\n }\n });\n }\n}\nasync function atcb_generate_rsvp_button(host, data) {\n const btnHostEl = host.querySelector('.atcb-initialized');\n const buttonTriggerWrapper = document.createElement('div');\n buttonTriggerWrapper.classList.add('atcb-button-wrapper');\n if (data.rtl) {\n buttonTriggerWrapper.classList.add('atcb-rtl');\n }\n btnHostEl.append(buttonTriggerWrapper);\n atcb_set_sizes(buttonTriggerWrapper, data.sizes);\n const buttonTrigger = document.createElement('button');\n buttonTrigger.classList.add('atcb-button', 'atcb-click', 'atcb-single');\n if (data.disabled) {\n buttonTrigger.setAttribute('disabled', true);\n }\n if (data.hideTextLabelButton) {\n buttonTrigger.classList.add('atcb-no-text');\n }\n buttonTrigger.type = 'button';\n buttonTrigger.setAttribute('aria-expanded', false);\n buttonTriggerWrapper.append(buttonTrigger);\n const label = function () {\n if (data.rsvp.expired) {\n return atcb_translate_hook('label.rsvp.expired', data);\n }\n if (data.rsvp.bookedOut) {\n return atcb_translate_hook('label.rsvp.bookedout', data);\n }\n return atcb_translate_hook('label.rsvp', data);\n }();\n atcb_generate_label(host, data, buttonTrigger, 'rsvp', !data.hideIconButton, label, true);\n if (data.debug) {\n console.log('Add to Calendar RSVP Button \"' + data.identifier + '\" created');\n }\n return true;\n}\nasync function atcb_check_bookings(proKey, dev = false) {\n try {\n const response = await fetch(`https://api${dev ? '-dev' : ''}.add-to-calendar-pro.com/dffb8bbd-ee5e-4a4f-a7ea-503af98ca468?prokey=${proKey}`, {\n method: 'GET'\n });\n if (!response.ok) {\n throw new Error('Network response was not ok');\n }\n const responseJson = await response.json();\n return parseInt(responseJson.total);\n } catch (error) {\n console.error('Error:', error);\n }\n return 0;\n}\nfunction atcb_build_form(fields, identifier = '', disabled = false) {\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n let form = '';\n let hiddenForm = '';\n let n = 0;\n let prevType = '';\n let skipped = false;\n for (let i = 1; i <= fields.length; i++) {\n skipped = false;\n const field = fields[i - 1];\n if (field.type !== 'label' && (!field.name || field.name === '')) {\n skipped = true;\n continue;\n }\n if (prevType === 'radio' && field.type !== 'radio' || prevType !== 'radio') {\n n = i;\n }\n fields[i - 1].fieldId = identifier + '-' + i;\n const fieldValue = field.type === 'radio' ? field.placeholder || '' : field.default || '';\n const fieldLabel = field.label || '';\n const fieldPlaceholder = field.type === 'radio' ? '' : field.placeholder || '';\n let fieldHtml = '';\n if (prevType !== 'hidden' && i === n && i !== 1 && !skipped) {\n fieldHtml += '';\n }\n if (field.type !== 'hidden' && i === n) {\n fieldHtml += '
';\n }\n if (field.type === 'label') {\n fieldHtml += '

' + fieldLabel + '

';\n } else {\n if (field.type === 'radio') {\n fieldHtml += '
';\n }\n if (field.type === 'hidden') {\n hiddenForm += '';\n } else {\n fieldHtml += atcb_create_field_html(field.type, field.name, fieldLabel, field.fieldId, field.required, fieldValue, field.default, fieldPlaceholder, disabled);\n }\n if (field.type === 'radio') {\n fieldHtml += '
';\n }\n }\n form += fieldHtml;\n prevType = field.type;\n }\n if (prevType !== 'hidden') {\n form += '
';\n }\n form += hiddenForm;\n return {\n html: form,\n fields: fields\n };\n}\nfunction atcb_create_field_html(type, name, fieldLabel, fieldId, required = false, fieldValue, defaultVal = null, fieldPlaceholder = '', disabled = false) {\n let fieldHtml = '';\n if ((type === 'text' || type === 'email' || type === 'number') && fieldLabel !== '') {\n fieldHtml += '';\n }\n fieldHtml += '';\n if ((type === 'checkbox' || type === 'radio') && (fieldLabel !== '' || required)) {\n fieldHtml += '';\n }\n return fieldHtml;\n}\nfunction atcb_validate_form(host, fields) {\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n let state = true;\n fields.forEach(function (field) {\n if (field.type !== 'label' && field.type !== 'radio') {\n const input = host.getElementById(field.fieldId);\n if (field.type !== 'checkbox') {\n input.value = atcb_secure_content(input.value.trim());\n if (field.type === 'number') {\n input.value = input.value.replace(/\\D/g, '');\n }\n if (field.type === 'email' && input.value !== '' && !atcb_validEmail(input.value)) {\n input.classList.add('error');\n state = false;\n return;\n }\n if (field.required && input.value === '') {\n input.classList.add('error');\n state = false;\n return;\n } else {\n input.classList.remove('error');\n }\n } else {\n if (field.required && input.checked === false) {\n input.classList.add('error');\n state = false;\n return;\n } else {\n input.classList.remove('error');\n }\n }\n }\n if (field.type === 'radio') {\n const radioGroup = host.querySelectorAll('[name=\"' + field.name + '\"]');\n let checked = false;\n radioGroup.forEach(function (radio) {\n if (radio.checked) {\n checked = true;\n }\n });\n if (checked === false) {\n radioGroup[0].classList.add('error');\n state = false;\n return;\n } else {\n radioGroup[0].classList.remove('error');\n }\n }\n });\n return state;\n}\nasync function sendPostRequest(url, fields, header = {}) {\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n let formData = new FormData();\n let data = {};\n let requestData = {};\n if (Object.keys(header).length === 0) {\n fields.forEach(field => {\n formData.append(field.name, field.value);\n });\n requestData = {\n method: 'POST',\n body: formData\n };\n } else {\n header['Cache-Control'] = 'no-cache';\n header['Content-Type'] = 'application/json';\n header['Accept'] = '*/*';\n fields.forEach(field => {\n data[field.name] = field.value;\n });\n requestData = {\n method: 'POST',\n headers: header,\n body: JSON.stringify(data)\n };\n }\n try {\n const response = await fetch(url, requestData);\n const responseJson = await response.json();\n if (!response.ok) {\n console.error('Network response was not ok');\n if (responseJson.error) return responseJson;\n return false;\n }\n if (responseJson.status && responseJson.status === 'doi') {\n return 'doi';\n }\n return true;\n } catch (error) {\n console.error('Error:', error);\n return false;\n }\n}\nfunction atcb_generate_label(host, data, parent, type, icon = false, text = '', oneOption = false) {\n switch (type) {\n case 'trigger':\n case 'rsvp':\n default:\n parent.id = data.identifier;\n if (!data.blockInteraction) {\n parent.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || event.key === 'Alt' && event.key === 'Control' && event.code === 'Space') {\n event.preventDefault();\n if (type === 'rsvp' && typeof atcb_generate_rsvp_form === 'function') {\n atcb_generate_rsvp_form(host, data, parent, true);\n } else {\n atcb_toggle(host, 'auto', data, parent, true, true);\n }\n }\n });\n parent.addEventListener('touchend', atcb_debounce_leading(event => {\n event.preventDefault();\n if (type === 'rsvp' && typeof atcb_generate_rsvp_form === 'function') {\n atcb_generate_rsvp_form(host, data, parent);\n } else {\n atcb_toggle(host, 'auto', data, parent, false, true);\n }\n }));\n if (data.trigger === 'click' || type === 'rsvp' && typeof atcb_generate_rsvp_form === 'function') {\n parent.addEventListener('mouseup', atcb_debounce_leading(event => {\n event.preventDefault();\n if (type === 'rsvp' && typeof atcb_generate_rsvp_form === 'function') {\n atcb_generate_rsvp_form(host, data, parent);\n } else {\n atcb_toggle(host, 'auto', data, parent, false, true);\n }\n }));\n } else {\n parent.addEventListener('mouseenter', function () {\n atcb_toggle(host, 'open', data, parent, false, true);\n });\n }\n }\n break;\n case 'apple':\n case 'google':\n case 'ical':\n case 'msteams':\n case 'ms365':\n case 'outlookcom':\n case 'yahoo':\n parent.id = data.identifier + '-' + type;\n if (!data.blockInteraction) {\n parent.addEventListener('click', atcb_debounce_leading(() => {\n if (oneOption) {\n host.querySelector('#' + parent.id)?.blur();\n atcb_log_event('openSingletonLink', parent.id, data.identifier);\n } else {\n atcb_toggle(host, 'close');\n atcb_log_event('openCalendarLink', parent.id, data.identifier);\n }\n atcb_generate_links(host, type, data);\n }));\n parent.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n if (oneOption) {\n host.querySelector('#' + parent.id)?.blur();\n atcb_log_event('openSingletonLink', parent.id, data.identifier);\n } else {\n atcb_toggle(host, 'close');\n atcb_log_event('openCalendarLink', parent.id, data.identifier);\n }\n atcb_generate_links(host, type, data, 'all', true);\n }\n });\n }\n break;\n case 'close':\n parent.id = data.identifier + '-close';\n parent.addEventListener('click', atcb_debounce(() => {\n atcb_log_event('closeList', 'List Close Button', atcbStates['active']);\n atcb_toggle(host, 'close');\n }));\n parent.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n atcb_log_event('closeList', 'List Close Button', atcbStates['active']);\n atcb_toggle(host, 'close', data, 'all', true);\n }\n });\n break;\n }\n atcb_generate_label_content(data, parent, type, icon, text, oneOption);\n}\nfunction atcb_generate_label_content(data, parent, type, icon, text, oneOption) {\n const defaultTriggerText = function () {\n if (data.pastDateHandling != 'none') {\n let allOverdue = true;\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].overdue) {\n allOverdue = false;\n break;\n }\n }\n if (allOverdue) {\n return atcb_translate_hook('expired', data);\n }\n }\n return atcb_translate_hook('label.addtocalendar', data);\n }();\n if (text === '') {\n if (data.options.length === 1 || type === 'trigger') {\n text = defaultTriggerText;\n } else if (type === 'close') {\n text = atcb_translate_hook('close', data);\n } else {\n text = atcb_translate_hook(type, data);\n }\n }\n if (data.buttonStyle === 'date' && (type === 'trigger' || oneOption)) {\n return;\n }\n parent.setAttribute('aria-label', oneOption ? atcb_translate_hook('label.addtocalendar', data) + ' (' + atcb_translate_hook(type, data) + '): ' + data.name : type === 'trigger' ? text + ': ' + data.name : text);\n if (icon) {\n const iconEl = document.createElement('div');\n iconEl.classList.add('atcb-icon');\n iconEl.setAttribute('part', type === 'trigger' ? 'atcb-button-icon' : 'atcb-list-icon');\n iconEl.classList.add(`atcb-icon-${type}`);\n iconEl.innerHTML = atcbIcon[`${type}`];\n parent.append(iconEl);\n }\n if ((type === 'trigger' || oneOption) && !data.hideTextLabelButton || !oneOption && type !== 'trigger' && !data.hideTextLabelList) {\n const textEl = document.createElement('span');\n textEl.classList.add('atcb-text');\n textEl.setAttribute('part', type === 'trigger' ? 'atcb-button-text' : 'atcb-list-text');\n textEl.textContent = text;\n parent.append(textEl);\n }\n}\nfunction atcb_generate_button(host, button, data) {\n const oneOption = function () {\n if (data.options.length === 1 || data.buttonsList && data.buttonStyle != 'date') {\n return true;\n }\n return false;\n }();\n const optionSplit = oneOption ? data.options : ['default'];\n optionSplit.forEach(function (option, index) {\n const buttonTriggerWrapper = document.createElement('div');\n buttonTriggerWrapper.classList.add('atcb-button-wrapper');\n buttonTriggerWrapper.setAttribute('part', 'atcb-button-wrapper');\n if (data.rtl) {\n buttonTriggerWrapper.classList.add('atcb-rtl');\n }\n button.append(buttonTriggerWrapper);\n atcb_set_sizes(buttonTriggerWrapper, data.sizes);\n const buttonTrigger = document.createElement('button');\n buttonTrigger.classList.add('atcb-button');\n buttonTrigger.setAttribute('part', 'atcb-button');\n if (data.disabled) {\n buttonTrigger.setAttribute('disabled', true);\n }\n if (data.hideTextLabelButton) {\n buttonTrigger.classList.add('atcb-no-text');\n }\n if (data.trigger === 'click') {\n buttonTrigger.classList.add('atcb-click');\n }\n if (data.listStyle === 'overlay') {\n buttonTrigger.classList.add('atcb-dropoverlay');\n }\n buttonTrigger.type = 'button';\n buttonTrigger.setAttribute('aria-expanded', false);\n buttonTriggerWrapper.append(buttonTrigger);\n if (data.buttonStyle === 'date') {\n atcb_generate_date_button(data, buttonTrigger, 'all', oneOption);\n }\n if (oneOption) {\n buttonTrigger.classList.add('atcb-single');\n const label = function () {\n if (data.buttonsList && data.options.length > 1) {\n return atcb_translate_hook(`${data.options[`${index}`]}`, data);\n }\n return data.label;\n }();\n atcb_generate_label(host, data, buttonTrigger, option, !data.hideIconButton, label, true);\n buttonTrigger.id = data.identifier;\n if (data.buttonsList) {\n buttonTrigger.id = data.identifier + '-' + option;\n }\n } else {\n atcb_generate_label(host, data, buttonTrigger, 'trigger', !data.hideIconButton, data.label);\n const buttonDropdownAnchor = document.createElement('div');\n buttonDropdownAnchor.classList.add('atcb-dropdown-anchor');\n buttonTrigger.append(buttonDropdownAnchor);\n }\n if (!data.hideCheckmark && !data.hideTextLabelButton && !data.buttonsList && !data.disabled && !data.allCancelled) {\n const btnCheck = document.createElement('div');\n btnCheck.classList.add('atcb-checkmark');\n btnCheck.innerHTML = atcbIcon['checkmark'];\n buttonTrigger.append(btnCheck);\n }\n });\n if (data.debug) {\n console.log('Add to Calendar Button \"' + data.identifier + '\" created');\n }\n}\nfunction atcb_generate_dropdown_list(host, data) {\n const optionsList = document.createElement('div');\n optionsList.classList.add('atcb-list');\n optionsList.setAttribute('part', 'atcb-list');\n optionsList.role = 'list';\n if (data.rtl) {\n optionsList.classList.add('atcb-rtl');\n }\n let listCount = 0;\n data.options.forEach(function (option) {\n const optionItem = document.createElement('div');\n optionItem.classList.add('atcb-list-item');\n optionItem.setAttribute('part', 'atcb-list-item');\n optionItem.role = 'link';\n optionItem.tabIndex = 0;\n listCount++;\n optionItem.dataset.optionNumber = listCount;\n optionsList.append(optionItem);\n atcb_generate_label(host, data, optionItem, option, !data.hideIconList);\n });\n if (data.listStyle === 'modal') {\n const optionItem = document.createElement('div');\n optionItem.classList.add('atcb-list-item', 'atcb-list-item-close');\n optionItem.setAttribute('part', 'atcb-list-item-close');\n optionItem.role = 'button';\n optionItem.tabIndex = 0;\n listCount++;\n optionItem.dataset.optionNumber = listCount;\n optionsList.append(optionItem);\n atcb_generate_label(host, data, optionItem, 'close', !data.hideIconList);\n }\n return optionsList;\n}\nfunction atcb_generate_bg_overlay(host, trigger = '', modal = false, darken = true, closable = true) {\n const bgOverlay = function () {\n if (modal) {\n return document.createElement('dialog');\n }\n return document.createElement('div');\n }();\n if (modal) {\n bgOverlay.setAttribute('open', true);\n }\n bgOverlay.id = 'atcb-bgoverlay';\n if (!darken) {\n bgOverlay.classList.add('atcb-no-bg');\n }\n bgOverlay.role = 'button';\n bgOverlay.tabIndex = 0;\n if (closable) {\n bgOverlay.addEventListener('mouseup', atcb_debounce_leading(e => {\n if (e.target !== e.currentTarget) return;\n atcb_log_event('closeList', 'Background Hit', atcbStates['active']);\n atcb_toggle(host, 'close');\n }));\n let fingerMoved = false;\n bgOverlay.addEventListener('touchstart', atcb_debounce_leading(() => fingerMoved = false), {\n passive: true\n });\n bgOverlay.addEventListener('touchmove', atcb_debounce_leading(() => fingerMoved = true), {\n passive: true\n });\n bgOverlay.addEventListener('touchend', atcb_debounce(e => {\n if (fingerMoved !== false || e.target !== e.currentTarget) return;\n atcb_log_event('closeList', 'Background Hit', atcbStates['active']);\n atcb_toggle(host, 'close');\n }), {\n passive: true\n });\n if (trigger !== 'click') {\n bgOverlay.addEventListener('mousemove', atcb_debounce_leading(e => {\n if (e.target !== e.currentTarget) return;\n atcb_log_event('closeList', 'Background Hit', atcbStates['active']);\n atcb_toggle(host, 'close');\n }));\n } else {\n bgOverlay.classList.add('atcb-click');\n }\n }\n return bgOverlay;\n}\n/*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\nfunction atcb_create_atcbl(host, atList = true, returnEl = false, licenseNoteOnly = false) {\n const atcbL = document.createElement('div');\n atcbL.id = 'atcb-reference';\n if (!licenseNoteOnly) {\n setTimeout(() => {\n const svg = '';\n atcbL.innerHTML = '' + svg + '';\n }, 500);\n if (atList) {\n host.querySelector('.atcb-initialized .atcb-list-wrapper').append(atcbL);\n } else if (returnEl) {\n return atcbL;\n } else {\n if (window.innerHeight > 1000 || window.innerWidth > 1000) {\n host.append(atcbL);\n atcbL.classList.add('fixed-ref');\n }\n }\n } else {\n atcbL.innerHTML = 'Using the Add to Calendar Button, licensed under the Elastic License 2.0 (ELv2).';\n atcbL.style.display = 'none !important';\n atcbL.classList.add('atcb-attribution');\n host.append(atcbL);\n }\n if (returnEl) return null;\n}\nasync function atcb_create_modal(mainHost, data, icon = '', headline, content = '', buttons = [], subEvents = [], keyboardTrigger = false, goto = {}, closable = true) {\n atcbStates['active'] = data.identifier;\n const noHeadline = !headline || headline === '' || headline === undefined;\n const modalHost = await atcb_generate_modal_host(mainHost, data, false);\n const bgOverlay = function () {\n const el = modalHost.getElementById('atcb-bgoverlay');\n if (!el) {\n const newOverlay = atcb_generate_bg_overlay(mainHost, 'click', true, !data.hideBackground, closable);\n modalHost.querySelector('.atcb-modal-host-initialized').append(newOverlay);\n return newOverlay;\n }\n return el;\n }();\n const modalWrapper = document.createElement('div');\n modalWrapper.classList.add('atcb-modal');\n bgOverlay.append(modalWrapper);\n const modalCount = modalHost.querySelectorAll('.atcb-modal').length;\n modalWrapper.dataset.modalNr = modalCount;\n modalWrapper.tabIndex = 0;\n modalWrapper.focus({\n preventScroll: true\n });\n modalWrapper.blur();\n const parentButton = function () {\n const hostEl = mainHost.getElementById(data.identifier);\n if (hostEl) {\n return hostEl;\n }\n return document.getElementById(data.identifier);\n }();\n if (parentButton) {\n parentButton.classList.add('atcb-active-modal');\n }\n const modal = document.createElement('div');\n modal.classList.add('atcb-modal-box');\n modal.setAttribute('part', 'atcb-modal-box');\n if (data.rtl) {\n modal.classList.add('atcb-rtl');\n }\n modalWrapper.append(modal);\n atcb_set_sizes(modal, data.sizes);\n atcb_set_fullsize(bgOverlay);\n if (icon !== '' && !data.hideIconModal) {\n const modalIcon = document.createElement('div');\n modalIcon.classList.add('atcb-modal-icon');\n modalIcon.innerHTML = atcbIcon[`${icon}`];\n modal.append(modalIcon);\n }\n if (!noHeadline) {\n const modalHeadline = document.createElement('div');\n modalHeadline.classList.add('atcb-modal-headline');\n modalHeadline.textContent = headline;\n modal.append(modalHeadline);\n }\n if (content !== '') {\n const modalContent = document.createElement('div');\n modalContent.classList.add('atcb-modal-content');\n if (noHeadline) modalContent.classList.add('no-headline');\n modalContent.innerHTML = content;\n modal.append(modalContent);\n }\n if (!data.hideBranding) {\n atcb_create_atcbl(modalHost, false);\n }\n if (subEvents.length > 1) {\n const modalsubEventsContentWrapper = document.createElement('div');\n modalsubEventsContentWrapper.classList.add('atcb-modal-content');\n modal.append(modalsubEventsContentWrapper);\n const modalsubEventsContent = document.createElement('div');\n modalsubEventsContent.classList.add('atcb-modal-content-subevents');\n modalsubEventsContentWrapper.append(modalsubEventsContent);\n for (let i = 1; i < subEvents.length; i++) {\n const modalSubEventButton = document.createElement('button');\n modalSubEventButton.type = 'button';\n modalSubEventButton.id = data.identifier + '-' + subEvents[0] + '-' + i;\n if (atcbStates[`${data.identifier}`][`${subEvents[0]}`][i - 1] > 0) {\n modalSubEventButton.classList.add('atcb-saved');\n }\n modalSubEventButton.classList.add('atcb-subevent-btn');\n modalsubEventsContent.append(modalSubEventButton);\n atcb_generate_date_button(data, modalSubEventButton, i);\n if (!data.dates[i - 1].overdue || data.pastDateHandling === 'none') {\n if (i === 1 && keyboardTrigger) {\n modalSubEventButton.focus();\n }\n modalSubEventButton.addEventListener('click', atcb_debounce(() => {\n atcb_log_event('openSubEventLink', modalSubEventButton.id, data.identifier);\n modalSubEventButton.blur();\n atcb_generate_links(mainHost, subEvents[0], data, subEvents[`${i}`], keyboardTrigger, true);\n }));\n } else {\n modalSubEventButton.setAttribute('disabled', true);\n }\n }\n }\n if (buttons.length === 0) {\n buttons.push({\n type: 'close',\n label: atcb_translate_hook('close', data),\n small: true\n });\n }\n const modalButtons = document.createElement('div');\n modalButtons.classList.add('atcb-modal-buttons');\n modal.append(modalButtons);\n buttons.forEach((button, index) => {\n let modalButton;\n if (button.href && button.href !== '') {\n modalButton = document.createElement('a');\n modalButton.setAttribute('target', atcbDefaultTarget);\n modalButton.setAttribute('href', button.href);\n modalButton.setAttribute('rel', 'noopener');\n } else {\n modalButton = document.createElement('button');\n modalButton.type = 'button';\n }\n if (button.id && button.id !== '') {\n modalButton.id = button.id;\n }\n modalButton.classList.add('atcb-modal-btn');\n if (button.primary) {\n modalButton.classList.add('atcb-modal-btn-primary');\n }\n if (button.small) {\n modalButton.classList.add('btn-small');\n }\n if (!button.label || button.label === '') {\n button.label = atcb_translate_hook('modal.button.default', data);\n }\n modalButton.textContent = button.label;\n modalButtons.append(modalButton);\n if (index === 0 && subEvents.length < 2 && keyboardTrigger) {\n modalButton.focus();\n }\n switch (button.type) {\n default:\n case 'close':\n modalButton.addEventListener('click', atcb_debounce(() => {\n atcb_log_event('closeList', 'Modal Close Button', atcbStates['active']);\n atcb_close(mainHost);\n }));\n modalButton.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || event.key === 'Alt' && event.key === 'Control' && event.code === 'Space') {\n atcb_log_event('closeList', 'Modal Close Button', atcbStates['active']);\n atcb_toggle(mainHost, 'close', '', '', true);\n }\n });\n break;\n case 'yahoo2nd':\n // for yahoo subscribe modal, where we guide the user through the process\n modalButton.addEventListener('click', atcb_debounce(() => {\n atcb_close(mainHost);\n atcb_subscribe_yahoo_modal_switch(mainHost, data);\n }));\n modalButton.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || event.key === 'Alt' && event.key === 'Control' && event.code === 'Space') {\n atcb_toggle(mainHost, 'close', '', '', true);\n atcb_subscribe_yahoo_modal_switch(mainHost, data, keyboardTrigger);\n }\n });\n break;\n case '2timeslink':\n // for the note that the user shall click the button twice\n modalButton.addEventListener('click', atcb_debounce(() => {\n atcb_close(mainHost);\n atcb_generate_links(mainHost, goto.type, data, goto.id, keyboardTrigger, false, true);\n }));\n modalButton.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || event.key === 'Alt' && event.key === 'Control' && event.code === 'Space') {\n atcb_toggle(mainHost, 'close', '', '', true);\n atcb_generate_links(mainHost, goto.type, data, goto.id, keyboardTrigger, false, true);\n }\n });\n break;\n case 'none':\n break;\n }\n });\n if (modalCount > 1) {\n const prevModal = modalHost.querySelector('.atcb-modal[data-modal-nr=\"' + (modalCount - 1) + '\"]');\n prevModal.classList.add('atcb-hidden');\n }\n atcb_manage_body_scroll(modalHost, modalWrapper);\n return;\n}\nfunction atcb_subscribe_yahoo_modal_switch(host, data, keyboardTrigger) {\n atcb_set_fully_successful(host, data);\n atcb_generate_links(host, 'yahoo2nd', data, 'all', keyboardTrigger);\n}\nfunction atcb_generate_date_button(data, parent, subEvent = 'all', oneOption = false) {\n if (subEvent != 'all') {\n subEvent = parseInt(subEvent) - 1;\n } else if (data.dates.length == 1) {\n subEvent = 0;\n }\n const fullTimeInfo = atcb_generate_timestring(data.dates, data.language, subEvent);\n const hoverText = function () {\n if (subEvent !== 'all' && data.dates[`${subEvent}`].status.toLowerCase() === 'cancelled' || subEvent === 'all' && data.allCancelled) {\n return atcb_translate_hook('date.status.cancelled', data) + '
' + atcb_translate_hook('date.status.cancelled.cta', data);\n }\n if (data.pastDateHandling != 'none') {\n if (subEvent === 'all' && data.allOverdue || subEvent != 'all' && data.dates[`${subEvent}`].overdue) {\n return atcb_translate_hook('expired', data);\n }\n }\n if (data.label && data.label != '') {\n return data.label;\n }\n return '+ ' + atcb_translate_hook('label.addtocalendar', data);\n }();\n const cancelledInfo = function () {\n if (subEvent !== 'all' && data.dates[`${subEvent}`].status.toLowerCase() === 'cancelled' || subEvent === 'all' && data.allCancelled) {\n return atcb_translate_hook('date.status.cancelled', data);\n }\n return '';\n }();\n const recurringString = function () {\n if (fullTimeInfo.length == 0) {\n return atcb_translate_hook('recurring', data) + ' ⟳';\n }\n return '⟳';\n }();\n let subEventAll = false;\n if (subEvent === 'all') {\n subEvent = 0;\n subEventAll = true;\n }\n const startDate = new Date(atcb_generate_time(data.dates[`${subEvent}`]).start);\n const allDay = atcb_generate_time(data.dates[`${subEvent}`]).allday;\n const timeZone = data.dates[`${subEvent}`].timeZone;\n const btnLeft = document.createElement('div');\n btnLeft.classList.add('atcb-date-btn-left');\n parent.append(btnLeft);\n const btnDay = document.createElement('div');\n btnDay.classList.add('atcb-date-btn-day');\n btnLeft.append(btnDay);\n const btnMonth = document.createElement('div');\n btnMonth.classList.add('atcb-date-btn-month');\n btnDay.textContent = startDate.toLocaleString(data.language, {\n day: 'numeric',\n timeZone: allDay ? 'UTC' : timeZone\n });\n btnMonth.textContent = startDate.toLocaleString(data.language, {\n month: 'short',\n timeZone: allDay ? 'UTC' : timeZone\n });\n btnLeft.append(btnMonth);\n const btnRight = document.createElement('div');\n btnRight.classList.add('atcb-date-btn-right');\n parent.append(btnRight);\n const btnDetails = document.createElement('div');\n btnDetails.classList.add('atcb-date-btn-details');\n btnRight.append(btnDetails);\n const btnHeadline = document.createElement('div');\n btnHeadline.classList.add('atcb-date-btn-headline');\n const btnHeadlineText = data.dates.length > 1 && subEventAll ? data.name : data.dates[`${subEvent}`].name;\n btnHeadline.textContent = btnHeadlineText;\n btnDetails.append(btnHeadline);\n if (data.dates[`${subEvent}`].location && data.dates[`${subEvent}`].location !== '' && !data.dates[`${subEvent}`].onlineEvent || cancelledInfo !== '') {\n const btnLocation = document.createElement('div');\n btnLocation.classList.add('atcb-date-btn-content');\n btnDetails.append(btnLocation);\n if (cancelledInfo != '') {\n btnLocation.classList.add('atcb-date-btn-cancelled');\n btnLocation.textContent = cancelledInfo;\n } else {\n const btnLocationIcon = document.createElement('span');\n btnLocationIcon.classList.add('atcb-date-btn-content-icon');\n btnLocationIcon.innerHTML = atcbIcon['location'];\n btnLocation.append(btnLocationIcon);\n const btnLocationText = document.createElement('span');\n btnLocationText.classList.add('atcb-date-btn-content-location');\n btnLocationText.textContent = data.dates[`${subEvent}`].location;\n btnLocation.append(btnLocationText);\n }\n } else {\n if (data.dates[`${subEvent}`].description !== '' && fullTimeInfo.length === 0 && (!data.recurrence || data.recurrence === '')) {\n const btnDescription = document.createElement('div');\n btnDescription.classList.add('atcb-date-btn-content');\n btnDescription.textContent = data.dates[`${subEvent}`].descriptionHtmlFree;\n btnDescription.style.overflow = 'hidden';\n btnDescription.style.display = '-webkit-box';\n btnDescription.style.webkitLineClamp = '2';\n btnDescription.style.lineClamp = '2';\n btnDescription.style.webkitBoxOrient = 'vertical';\n btnDescription.style.boxOrient = 'vertical';\n btnDetails.append(btnDescription);\n } else {\n btnHeadline.style.lineClamp = '2';\n if (fullTimeInfo.length == 0 && (data.recurrence == null || data.recurrence == '')) {\n btnRight.style.alignSelf = 'center';\n btnHeadline.style.textAlign = 'center';\n btnHeadline.style.lineClamp = '2';\n }\n }\n }\n if (fullTimeInfo.length > 0 || data.recurrence != null && data.recurrence != '') {\n const btnDateTime = document.createElement('div');\n btnDateTime.classList.add('atcb-date-btn-content');\n btnDetails.append(btnDateTime);\n const btnDateTimeIcon = document.createElement('span');\n btnDateTimeIcon.classList.add('atcb-date-btn-content-icon');\n btnDateTimeIcon.innerHTML = atcbIcon['ical'];\n btnDateTime.append(btnDateTimeIcon);\n const btnDateTimeText = document.createElement('span');\n btnDateTimeText.classList.add('atcb-date-btn-content-text');\n btnDateTime.append(btnDateTimeText);\n fullTimeInfo.forEach(function (block) {\n const btnDateTimeTextBlock = document.createElement('span');\n btnDateTimeTextBlock.textContent = block;\n btnDateTimeText.append(btnDateTimeTextBlock);\n });\n if (data.recurrence != null && data.recurrence != '') {\n const recurSign = document.createElement('span');\n recurSign.innerHTML = recurringString;\n btnDateTimeText.append(recurSign);\n }\n }\n const btnHover = document.createElement('div');\n btnHover.classList.add('atcb-date-btn-hover');\n btnHover.innerHTML = hoverText;\n btnRight.append(btnHover);\n if (!data.hideCheckmark && data.dates[`${subEvent}`].status.toLowerCase() !== 'cancelled') {\n const btnCheck = document.createElement('div');\n btnCheck.classList.add('atcb-checkmark');\n btnCheck.innerHTML = atcbIcon['checkmark'];\n parent.append(btnCheck);\n }\n const ariaLabel = hoverText.replace(/
/g, ' ').replace(/\\+\\s/g, '') + (oneOption ? ' (' + atcb_translate_hook(data.options[0], data) + ')' : '') + ': ' + btnHeadlineText + (data.dates[`${subEvent}`].location && data.dates[`${subEvent}`].location !== '' ? ', ' + data.dates[`${subEvent}`].location : '') + ', ' + fullTimeInfo.join(' ');\n parent.setAttribute('aria-label', ariaLabel);\n}\nasync function atcb_generate_modal_host(host, data, reset = true) {\n const existingModalHost = document.getElementById(data.identifier + '-modal-host');\n if (existingModalHost) {\n if (!reset) {\n return existingModalHost.shadowRoot;\n }\n existingModalHost.remove();\n }\n let newModalHost = document.createElement('div');\n newModalHost.id = data.identifier + '-modal-host';\n if (host.host.hasAttribute('cspnonce')) {\n newModalHost.setAttribute('cspnonce', host.host.getAttribute('cspnonce'));\n }\n newModalHost.setAttribute('atcb-button-id', data.identifier);\n newModalHost.classList.add('add-to-calendar');\n newModalHost.style.transform = 'translate3D(0, 0, 0)';\n newModalHost.style.visibility = 'visible';\n newModalHost.style.opacity = '1';\n newModalHost.style.position = 'fixed';\n newModalHost.style.top = '0';\n newModalHost.style.left = '0';\n newModalHost.style.width = '100%';\n newModalHost.style.height = '100%';\n newModalHost.style.display = 'flex';\n newModalHost.style.zIndex = '13999998';\n document.body.append(newModalHost);\n newModalHost.attachShadow({\n mode: 'open',\n delegateFocus: true\n });\n const elem = document.createElement('template');\n elem.innerHTML = '
';\n newModalHost.shadowRoot.append(elem.content.cloneNode(true));\n atcb_set_light_mode(newModalHost.shadowRoot, data);\n await atcb_load_css(newModalHost.shadowRoot, null, data);\n return newModalHost.shadowRoot;\n}\nasync function atcb_generate_overlay_dom(host, data) {\n const newHost = await atcb_generate_modal_host(host, data);\n atcb_set_fullsize(newHost.querySelector('.atcb-modal-host-initialized'));\n const nodes = Array.from(host.children);\n nodes.forEach(node => {\n if (node.tagName != 'STYLE') {\n newHost.querySelector('.atcb-modal-host-initialized').append(node.cloneNode(true));\n }\n });\n newHost.querySelector('button.atcb-button').removeAttribute('id');\n host.host.classList.add('atcb-shadow-hide');\n host.querySelector('.atcb-initialized').style.opacity = '0';\n atcb_position_shadow_button(host, newHost);\n window.addEventListener('scroll', atcb_position_shadow_button_listener);\n window.addEventListener('resize', atcb_position_shadow_button_listener);\n return newHost.querySelector('.atcb-modal-host-initialized');\n}\nfunction atcb_generate_rich_data(data, parent) {\n const schemaEl = document.createElement('script');\n schemaEl.id = 'atcb-schema-' + data.identifier;\n if (parent.hasAttribute('cspnonce')) {\n const cspnonceRegex = /[`'\"()[\\]{}<>\\s]/;\n if (cspnonceRegex.test(parent.getAttribute('cspnonce'))) {\n throw new Error('cspnonce input contains forbidden characters.');\n }\n schemaEl.setAttribute('nonce', parent.getAttribute('cspnonce'));\n }\n schemaEl.type = 'application/ld+json';\n const id = data.name.replace(/\\s/g, '');\n const schemaContentMulti = [];\n if (data.dates.length > 1) {\n const parts = [];\n parts.push('\"@context\":\"https://schema.org\"');\n parts.push('\"@type\":\"EventSeries\"');\n parts.push('\"@id\":\"' + id + '\"');\n parts.push('\"name\":\"' + data.name + '\",');\n schemaContentMulti.push('{\\r\\n' + parts.join(',\\r\\n') + '\\r\\n');\n }\n const schemaContentFull = [];\n for (let i = 0; i < data.dates.length; i++) {\n const schemaContent = [];\n schemaContent.push('\"@context\":\"https://schema.org\"');\n schemaContent.push('\"@type\":\"Event\"');\n if (data.dates.length > 1) {\n schemaContent.push('\"@id\":\"' + id + '-' + (i + 1) + '\"');\n }\n if (data.dates[`${i}`].status.toLowerCase() === 'cancelled') {\n schemaContent.push('\"eventStatus\":\"https://schema.org/EventCancelled\"');\n } else {\n schemaContent.push('\"eventStatus\":\"https://schema.org/EventScheduled\"');\n }\n schemaContent.push('\"name\":\"' + data.dates[`${i}`].name + '\"');\n if (data.dates[`${i}`].descriptionHtmlFree) {\n schemaContent.push('\"description\":\"' + data.dates[`${i}`].descriptionHtmlFree + '\"');\n }\n const formattedDate = atcb_generate_time(data.dates[`${i}`], 'delimiters', 'general', true);\n schemaContent.push('\"startDate\":\"' + formattedDate.start + '\"');\n if (formattedDate.duration) {\n schemaContent.push('\"duration\":\"' + formattedDate.duration + '\"');\n }\n schemaContent.push(data.dates[`${i}`].onlineEvent ? '\"eventAttendanceMode\":\"https://schema.org/OnlineEventAttendanceMode\",\\r\\n\"location\": {\\r\\n\"@type\":\"VirtualLocation\",\\r\\n\"url\":\"' + data.dates[`${i}`].location + '\"\\r\\n}' : '\"location\":\"' + data.dates[`${i}`].location + '\"');\n if (data.recurrence && data.recurrence !== '') {\n schemaContent.push(...atcb_generate_rich_data_recurrence(data, formattedDate));\n } else {\n schemaContent.push('\"endDate\":\"' + formattedDate.end + '\"');\n }\n if (data.dates[`${i}`].organizer && data.dates[`${i}`].organizer !== '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n schemaContent.push('\"organizer\":{\\r\\n\"@type\":\"Person\",\\r\\n\"name\":\"' + organizerParts[0] + '\",\\r\\n\"email\":\"' + organizerParts[1] + '\"\\r\\n}');\n }\n const imageData = [];\n if (data.images) {\n if (Array.isArray(data.images)) {\n for (let i = 0; i < data.images.length; i++) {\n if (atcb_secure_url(data.images[`${i}`], data.debug) && data.images[`${i}`].startsWith('http')) {\n imageData.push('\"' + data.images[`${i}`] + '\"');\n }\n }\n }\n }\n if (imageData.length > 0) {\n schemaContent.push('\"image\":[\\r\\n' + imageData.join(',\\r\\n') + ']');\n }\n schemaContentFull.push('{\\r\\n' + schemaContent.join(',\\r\\n') + '\\r\\n}');\n }\n if (data.dates.length > 1) {\n schemaEl.textContent = schemaContentMulti.join(',\\r\\n') + '\"subEvents\":[\\r\\n' + schemaContentFull.join(',\\r\\n') + '\\r\\n]\\r\\n}';\n } else {\n schemaEl.textContent = schemaContentFull[0];\n }\n document.body.insertBefore(schemaEl, document.body.firstChild);\n}\nfunction atcb_generate_rich_data_recurrence(data, formattedDate) {\n const schemaRecurrenceContent = [];\n schemaRecurrenceContent.push('\"eventSchedule\": { \"@type\": \"Schedule\"');\n schemaRecurrenceContent.push('\"scheduleTimezone\":\"' + data.dates[0].timeZone + '\"');\n if (data.recurrence_interval && data.recurrence_interval !== '' && data.recurrence_frequency && data.recurrence_frequency !== '') {\n const repeatFrequency = 'P' + data.recurrence_interval + data.recurrence_frequency.substring(0, 1);\n schemaRecurrenceContent.push('\"repeatFrequency\":\"' + repeatFrequency + '\"');\n }\n if (data.recurrence_byDay && data.recurrence_byDay !== '') {\n const byDayString = function () {\n if (/\\d/.test(data.recurrence_byDay)) {\n return '\"' + data.recurrence_byDay + '\"';\n } else {\n const byDays = data.recurrence_byDay.split(',');\n const helperMap = {\n MO: 'https://schema.org/Monday',\n TU: 'https://schema.org/Tuesday',\n WE: 'https://schema.org/Wednesday',\n TH: 'https://schema.org/Thursday',\n FR: 'https://schema.org/Friday',\n SA: 'https://schema.org/Saturday',\n SU: 'https://schema.org/Sunday'\n };\n const output = [];\n for (let i = 0; i < byDays.length; i++) {\n output.push('\"' + helperMap[byDays[`${i}`]] + '\"');\n }\n return '[' + output.join(',') + ']';\n }\n }();\n schemaRecurrenceContent.push('\"byDay\":' + byDayString);\n }\n if (data.recurrence_byMonth && data.recurrence_byMonth !== '') {\n const byMonthString = data.recurrence_byMonth.includes(',') ? '[' + data.recurrence_byMonth + ']' : data.recurrence_byMonth;\n schemaRecurrenceContent.push('\"byMonth\":\"' + byMonthString + '\"');\n }\n if (data.recurrence_byMonthDay && data.recurrence_byMonthDay !== '') {\n const byMonthDayString = data.recurrence_byMonthDay.includes(',') ? '[' + data.recurrence_byMonthDay + ']' : data.recurrence_byMonthDay;\n schemaRecurrenceContent.push('\"byMonthDay\":\"' + byMonthDayString + '\"');\n }\n if (data.recurrence_count && data.recurrence_count !== '') {\n schemaRecurrenceContent.push('\"repeatCount\":\"' + data.recurrence_count + '\"');\n }\n if (data.recurrence_until && data.recurrence_until !== '') {\n schemaRecurrenceContent.push('\"endDate\":\"' + data.recurrence_until + '\"');\n }\n if (data.startTime && data.startTime !== '' && data.endTime && data.endTime !== '') {\n schemaRecurrenceContent.push('\"startTime\":\"' + data.startTime + ':00\"');\n schemaRecurrenceContent.push('\"endTime\":\"' + data.endTime + ':00\"');\n schemaRecurrenceContent.push('\"duration\":\"' + formattedDate.duration + '\"');\n }\n schemaRecurrenceContent.push('\"startDate\":\"' + data.startDate + '\" }');\n return schemaRecurrenceContent;\n}\nfunction atcb_generate_links(host, type, data, subEvent = 'all', keyboardTrigger = false, multiDateModal = false, skipDoubleLink = false) {\n let linkType = type;\n if (type === 'apple') {\n linkType = 'ical';\n }\n if (subEvent !== 'all') {\n subEvent = parseInt(subEvent) - 1;\n } else if (data.dates.length == 1) {\n subEvent = 0;\n }\n if (data.subscribe) {\n atcb_generate_subscribe_links(host, type, linkType, data, keyboardTrigger);\n return;\n }\n if (subEvent !== 'all') {\n if (data.dates[`${subEvent}`].status.toLowerCase() === 'cancelled' && linkType !== 'ical') {\n atcb_create_modal(host, data, 'warning', atcb_translate_hook('date.status.cancelled', data), atcb_translate_hook('date.status.cancelled.cta', data), [], [], keyboardTrigger);\n } else {\n if (!skipDoubleLink) {}\n switch (linkType) {\n case 'ical':\n // also for apple (see above)\n atcb_generate_ical(host, data, type, subEvent, keyboardTrigger);\n break;\n case 'google':\n atcb_generate_google(data, data.dates[`${subEvent}`], subEvent);\n break;\n case 'msteams':\n atcb_generate_msteams(data, data.dates[`${subEvent}`], subEvent);\n break;\n case 'ms365':\n atcb_generate_microsoft(data, data.dates[`${subEvent}`], subEvent);\n break;\n case 'outlookcom':\n atcb_generate_microsoft(data, data.dates[`${subEvent}`], subEvent, 'outlookcom');\n break;\n case 'yahoo':\n atcb_generate_yahoo(data, data.dates[`${subEvent}`], subEvent);\n break;\n }\n const modalHost = document.getElementById(data.identifier + '-modal-host');\n if (modalHost) {\n const subEventButton = modalHost.shadowRoot.getElementById(data.identifier + '-' + type + '-' + (subEvent + 1));\n if (subEventButton) {\n subEventButton.classList.add('atcb-saved');\n }\n }\n if (data.dates[`${subEvent}`].status.toLowerCase() !== 'cancelled') atcbStates[`${data.identifier}`][`${type}`][`${subEvent}`]++;\n const filteredStates = atcbStates[`${data.identifier}`][`${type}`].filter(function (value) {\n return value < 1;\n });\n if (filteredStates.length == 0) {\n atcb_set_fully_successful(host, data, multiDateModal);\n }\n }\n return;\n }\n atcb_generate_multidate_links(host, type, linkType, data, keyboardTrigger, multiDateModal);\n}\nfunction atcb_generate_multidate_links(host, type, linkType, data, keyboardTrigger, multiDateModal) {\n if (linkType === 'ical' && data.dates.every(function (theSubEvent) {\n if (theSubEvent.status.toLowerCase() == 'cancelled' || theSubEvent.organizer != null && theSubEvent.organizer != '') {\n return false;\n }\n return true;\n })) {\n atcb_generate_ical(host, data, type, 'all', keyboardTrigger);\n for (let i = 0; i < atcbStates[`${data.identifier}`][`${type}`].length; i++) {\n atcbStates[`${data.identifier}`][`${type}`][`${i}`]++;\n }\n atcb_set_fully_successful(host, data, multiDateModal);\n return;\n }\n if (!multiDateModal) {\n const individualButtons = [type];\n for (let i = 0; i < data.dates.length; i++) {\n individualButtons.push(i + 1);\n }\n atcb_create_modal(host, data, type, atcb_translate_hook('modal.multidate.h', data), atcb_translate_hook('modal.multidate.text', data), [], individualButtons, keyboardTrigger);\n }\n}\nfunction atcb_generate_subscribe_links(host, type, linkType, data, keyboardTrigger) {\n const adjustedFileUrl = data.icsFile.replace('https://', 'webcal://');\n switch (linkType) {\n case 'ical':\n // also for apple (see above)\n if (atcbIsAndroid() || data.fakeAndroid) {\n atcb_subscribe_ical(data, data.icsFile, type);\n break;\n }\n atcb_subscribe_ical(data, adjustedFileUrl, type, host, keyboardTrigger);\n break;\n case 'google':\n atcb_subscribe_google(data, adjustedFileUrl);\n break;\n case 'ms365':\n atcb_subscribe_microsoft(data, adjustedFileUrl, data.name);\n break;\n case 'outlookcom':\n atcb_subscribe_microsoft(data, adjustedFileUrl, data.name, 'outlookcom');\n break;\n case 'yahoo':\n if (data.proxy) {\n atcb_open_cal_url(data, 'yahoo', '', true);\n return;\n }\n atcb_copy_to_clipboard(data.icsFile);\n atcb_create_modal(host, data, 'yahoo', atcb_translate_hook('modal.subscribe.yahoo.h', data), atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.subscribe.yahoo.text', data), [{\n label: atcb_translate_hook('modal.subscribe.yahoo.button', data),\n primary: true,\n type: 'yahoo2nd',\n href: 'https://www.yahoo.com/calendar'\n }, {\n label: atcb_translate_hook('cancel', data)\n }], [], keyboardTrigger);\n return;\n case 'yahoo2nd':\n atcb_copy_to_clipboard(data.icsFile);\n atcb_create_modal(host, data, 'yahoo', atcb_translate_hook('modal.subscribe.yahoo.h', data), atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.subscribe.yahoo.text', data), [{\n label: atcb_translate_hook('modal.subscribe.yahoo.button', data),\n type: 'none',\n href: 'https://www.yahoo.com/calendar'\n }, {\n label: atcb_translate_hook('cancel', data)\n }], [], keyboardTrigger);\n return;\n }\n atcb_set_fully_successful(host, data);\n}\nfunction atcb_set_fully_successful(host, data, multiDateModal = false) {\n const trigger = host.getElementById(data.identifier);\n if (trigger) {\n trigger.classList.add('atcb-saved');\n }\n atcb_saved_hook(host, data);\n if (multiDateModal && host.querySelectorAll('.atcb-modal[data-modal-nr]').length < 2) {\n atcb_toggle(host, 'close');\n }\n}\nfunction atcb_subscribe_ical(data, fileUrl, type, host = null, keyboardTrigger = false) {\n if (atcbIsiOS() && !atcbIsSafari()) {\n atcb_ical_copy_note(host, fileUrl, data, keyboardTrigger);\n return;\n }\n atcb_open_cal_url(data, type, fileUrl, true);\n}\nfunction atcb_subscribe_google(data, fileUrl) {\n const baseUrl = 'https://calendar.google.com/calendar/u/0/r?cid=';\n const baseUrlApp = 'calendar.google.com/calendar?cid=';\n let isGoogleCalId = false;\n const newFileUrl = function () {\n if (/^(?:webcal:\\/\\/|\\/\\/)calendar\\.google\\.com\\/.*\\?cid=/.test(fileUrl)) {\n isGoogleCalId = true;\n return fileUrl.replace(/^(.)*\\?cid=/, '');\n }\n return encodeURIComponent(fileUrl);\n }();\n if ((atcbIsAndroid() || data.fakeAndroid) && isGoogleCalId) {\n atcb_open_cal_url(data, 'google', 'intent://' + baseUrlApp + newFileUrl + '#Intent;scheme=https;package=com.google.android.calendar;end', true);\n return;\n }\n if ((atcbIsiOS() && atcbIsSafari() || data.fakeIOS) && isGoogleCalId) {\n atcb_open_cal_url(data, 'google', 'googlecalendar://' + baseUrlApp + newFileUrl, true);\n return;\n }\n atcb_open_cal_url(data, 'google', baseUrl + newFileUrl, true);\n}\nfunction atcb_subscribe_microsoft(data, fileUrl, calName, type = 'ms365') {\n const urlParts = [];\n const baseUrl = function () {\n if (type == 'outlookcom') {\n return 'https://outlook.live.com/calendar/0/addfromweb/?';\n } else {\n return 'https://outlook.office.com/calendar/0/addfromweb/?';\n }\n }();\n urlParts.push('url=' + encodeURIComponent(fileUrl));\n urlParts.push('name=' + encodeURIComponent(calName));\n atcb_open_cal_url(data, type, baseUrl + urlParts.join('&'), true);\n}\nfunction atcb_generate_google(data, date, subEvent = 'all') {\n const urlParts = [];\n if (atcbIsMobile() || data.fakeMobile) {\n urlParts.push('https://calendar.google.com/calendar/render?action=TEMPLATE&');\n } else {\n urlParts.push('https://calendar.google.com/calendar/r/eventedit?');\n }\n const formattedDate = atcb_generate_time(date, 'clean', 'google');\n urlParts.push('dates=' + encodeURIComponent(formattedDate.start) + '%2F' + encodeURIComponent(formattedDate.end));\n if (date.timeZone && date.timeZone !== '' && !/GMT[+|-]\\d{1,2}|Etc\\/U|Etc\\/Zulu|CET|CST6CDT|EET|EST|MET|MST|PST8PDT|WET/i.test(date.timeZone) && !formattedDate.allday) {\n urlParts.push('ctz=' + date.timeZone);\n }\n if (date.name && date.name !== '') {\n urlParts.push('text=' + encodeURIComponent(date.name));\n }\n const tmpDataDescription = [];\n if (date.description && date.description !== '') {\n tmpDataDescription.push(date.description);\n }\n if (date.location && date.location !== '') {\n urlParts.push('location=' + encodeURIComponent(date.location));\n if (atcbIsiOS() || data.fakeIOS) {\n if (tmpDataDescription.length > 0) {\n tmpDataDescription.push('

');\n }\n tmpDataDescription.push('📍: ' + date.location);\n }\n }\n if (tmpDataDescription.length > 0) {\n urlParts.push('details=' + encodeURIComponent(tmpDataDescription.join('')));\n }\n if (date.recurrence && date.recurrence !== '') {\n urlParts.push('recur=' + encodeURIComponent(date.recurrence));\n }\n if (date.availability && date.availability !== '') {\n const availabilityPart = function () {\n if (date.availability == 'free') {\n return 'crm=AVAILABLE&trp=false';\n }\n return 'crm=BUSY&trp=true';\n }();\n urlParts.push(availabilityPart);\n }\n let fullUrl = urlParts.join('&');\n if (atcbIsAndroid() || data.fakeAndroid) {\n fullUrl = 'intent://' + fullUrl.slice(8) + '#Intent;scheme=https;package=com.google.android.calendar;end';\n } else if (atcbIsiOS() && atcbIsSafari() || data.fakeIOS) {\n fullUrl = 'googlecalendar://' + fullUrl.slice(8);\n }\n atcb_open_cal_url(data, 'google', fullUrl, false, subEvent);\n}\nfunction atcb_generate_yahoo(data, date, subEvent = 'all') {\n const urlParts = [];\n urlParts.push('https://calendar.yahoo.com/?v=60');\n const formattedDate = atcb_generate_time(date, 'clean');\n if (formattedDate.allday) {\n if (formattedDate.start === formattedDate.end) {\n urlParts.push('dur=allday&st=' + encodeURIComponent(formattedDate.start));\n } else {\n const allDayDate = JSON.parse(JSON.stringify(date));\n allDayDate.startTime = '00:00';\n allDayDate.endTime = '23:59';\n allDayDate.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const formattedAllDayDate = atcb_generate_time(allDayDate, 'clean');\n urlParts.push('st=' + encodeURIComponent(formattedAllDayDate.start) + '&et=' + encodeURIComponent(formattedAllDayDate.end));\n }\n } else {\n urlParts.push('st=' + encodeURIComponent(formattedDate.start) + '&et=' + encodeURIComponent(formattedDate.end));\n }\n if (date.name && date.name !== '') {\n urlParts.push('title=' + encodeURIComponent(date.name));\n }\n if (date.location && date.location !== '') {\n urlParts.push('in_loc=' + encodeURIComponent(date.location));\n }\n if (date.descriptionHtmlFree && date.descriptionHtmlFree !== '') {\n urlParts.push('desc=' + encodeURIComponent(date.descriptionHtmlFree));\n }\n atcb_open_cal_url(data, 'yahoo', urlParts.join('&'), false, subEvent);\n}\nfunction atcb_generate_microsoft(data, date, subEvent = 'all', type = 'ms365') {\n const urlParts = [];\n const basePath = function () {\n if (atcbIsMobile() || data.fakeMobile) {\n return '/calendar/0/deeplink/compose?path=%2Fcalendar%2Faction%2Fcompose&rru=addevent';\n }\n return '/calendar/action/compose?rru=addevent';\n }();\n const baseUrl = function () {\n if (type == 'outlookcom') {\n return 'https://outlook.live.com' + basePath;\n } else {\n return 'https://outlook.office.com' + basePath;\n }\n }();\n urlParts.push(baseUrl);\n const formattedDate = atcb_generate_time(date, 'delimiters', 'microsoft');\n urlParts.push('startdt=' + formattedDate.start);\n urlParts.push('enddt=' + formattedDate.end);\n if (formattedDate.allday) {\n urlParts.push('allday=true');\n }\n if (date.name && date.name !== '') {\n urlParts.push('subject=' + encodeURIComponent(date.name.replace(/&/g, '&')));\n }\n if (date.location && date.location !== '') {\n urlParts.push('location=' + encodeURIComponent(date.location));\n }\n if (date.description && date.description !== '') {\n urlParts.push('body=' + encodeURIComponent(date.description));\n }\n atcb_open_cal_url(data, type, urlParts.join('&'), false, subEvent);\n}\nfunction atcb_generate_msteams(data, date, subEvent = 'all') {\n const urlParts = [];\n const baseUrl = 'https://teams.microsoft.com/l/meeting/new?';\n const formattedDate = atcb_generate_time(date, 'delimiters', 'msteams', true);\n if (!formattedDate.allday || atcbIsMobile() || data.fakeMobile) {\n urlParts.push('startTime=' + encodeURIComponent(formattedDate.start));\n urlParts.push('endTime=' + encodeURIComponent(formattedDate.end));\n } else {\n urlParts.push('startTime=' + formattedDate.start);\n urlParts.push('endTime=' + formattedDate.end);\n }\n if (date.name && date.name !== '') {\n urlParts.push('subject=' + encodeURIComponent(date.name));\n }\n let locationString = '';\n if (date.location && date.location !== '') {\n locationString = date.location;\n locationString += ' // ';\n urlParts.push('location=' + encodeURIComponent(locationString));\n }\n if (date.descriptionHtmlFree && date.descriptionHtmlFree != '') {\n urlParts.push('content=' + locationString + encodeURIComponent(date.descriptionHtmlFree));\n }\n atcb_open_cal_url(data, 'msteams', baseUrl + urlParts.join('&'), false, subEvent);\n}\nfunction atcb_open_cal_url(data, type, url = '', subscribe = false, subEvent = null, target = '') {\n if (target === '') {\n target = atcbDefaultTarget;\n }\n if (data.proxy && data.proKey && data.proKey !== '') {\n const urlType = subscribe ? 's' : 'o';\n const query = function () {\n const parts = [];\n if (data.attendee && data.attendee !== '') {\n parts.push('attendee=' + encodeURIComponent(data.attendee));\n }\n if (data.customVar && typeof data.customVar === 'object' && Object.keys(data.customVar).length > 0) {\n parts.push('customvar=' + encodeURIComponent(JSON.stringify(data.customVar)));\n }\n if (data.dates && data.dates.length > 1 && subEvent !== null && subEvent !== 'all') {\n parts.push('sub-event=' + subEvent);\n }\n if (parts.length > 0) {\n return '?' + parts.join('&');\n }\n return '';\n }();\n const host = data.domain ? data.domain : data.dev ? 'dev.caldn.net' : 'caldn.net';\n url = `https://${host}/${data.proKey}/${urlType}/${type}${query}`;\n if (!atcb_secure_url(url)) {\n return;\n }\n }\n if (atcb_secure_url(url)) {\n const newTab = window.open(url, target);\n if (newTab) {\n newTab.focus();\n }\n }\n}\nfunction atcb_generate_ical(host, data, type, subEvent = 'all', keyboardTrigger = false) {\n if (subEvent !== 'all') {\n subEvent = parseInt(subEvent);\n }\n const filename = atcb_determine_ical_filename(data, subEvent);\n const givenIcsFile = function () {\n const potentialHostAttendee = host.host.getAttribute('attendee') || '';\n const potentialHostCustomVar = host.host.getAttribute('customVar') || '';\n if (data.attendee && data.attendee !== '' && potentialHostAttendee !== '' || data.customVar && data.customVar !== '' && potentialHostCustomVar !== '') {\n return '';\n }\n if (subEvent !== 'all' && data.dates[`${subEvent}`].icsFile && data.dates[`${subEvent}`].icsFile !== '') {\n return data.dates[`${subEvent}`].icsFile;\n }\n if (data.icsFile && data.icsFile !== '') {\n return data.icsFile;\n }\n return '';\n }();\n if (data.proxy) {\n atcb_open_cal_url(data, type, '', false, subEvent);\n return;\n }\n if (givenIcsFile !== '' && (!atcbIsiOS() && !data.fakeIOS || !atcbIsWebView() || data.bypassWebViewCheck)) {\n atcb_save_file(givenIcsFile, filename);\n return;\n }\n const now = new Date();\n const ics_lines = ['BEGIN:VCALENDAR', 'VERSION:2.0'];\n ics_lines.push('PRODID:-// https://add-to-calendar-pro.com // button v' + atcbVersion + ' //EN');\n ics_lines.push('CALSCALE:GREGORIAN');\n if (subEvent == 'all') {\n ics_lines.push('METHOD:PUBLISH');\n } else {\n if (data.dates[`${subEvent}`].status && data.dates[`${subEvent}`].status.toLowerCase() === 'cancelled') {\n ics_lines.push('METHOD:CANCEL');\n } else {\n if (data.dates[`${subEvent}`].organizer && data.dates[`${subEvent}`].organizer != '') {\n ics_lines.push('METHOD:REQUEST');\n } else {\n ics_lines.push('METHOD:PUBLISH');\n }\n }\n }\n const usedTimeZones = [];\n const loopStart = function () {\n if (subEvent != 'all') {\n return subEvent;\n }\n return 0;\n }();\n const loopEnd = function () {\n if (subEvent != 'all') {\n return subEvent;\n }\n return data.dates.length - 1;\n }();\n for (let i = loopStart; i <= loopEnd; i++) {\n const formattedDate = atcb_generate_time(data.dates[`${i}`], 'clean', 'ical');\n const timeAddon = function () {\n if (formattedDate.allday) {\n return ';VALUE=DATE';\n }\n if (data.dates[`${i}`].timeZone && data.dates[`${i}`].timeZone !== '') {\n const timeZoneBlock = tzlib_get_ical_block(data.dates[`${i}`].timeZone);\n if (!usedTimeZones.includes(data.dates[`${i}`].timeZone)) {\n ics_lines.push(timeZoneBlock[0]);\n }\n usedTimeZones.push(data.dates[`${i}`].timeZone);\n return ';' + timeZoneBlock[1];\n }\n }();\n ics_lines.push('BEGIN:VEVENT');\n if (data.dates[`${i}`].uid && data.dates[`${i}`].uid !== '') {\n ics_lines.push('UID:' + data.dates[`${i}`].uid);\n }\n ics_lines.push('DTSTAMP:' + atcb_format_datetime(now, 'clean', true));\n ics_lines.push('DTSTART' + timeAddon + ':' + formattedDate.start);\n ics_lines.push('DTEND' + timeAddon + ':' + formattedDate.end);\n ics_lines.push('SUMMARY:' + atcb_rewrite_ical_text(data.dates[`${i}`].name, true));\n if (data.dates[`${i}`].descriptionHtmlFreeICal && data.dates[`${i}`].descriptionHtmlFreeICal !== '') {\n ics_lines.push('DESCRIPTION:' + atcb_rewrite_ical_text(data.dates[`${i}`].descriptionHtmlFreeICal, true));\n }\n if (data.dates[`${i}`].description && data.dates[`${i}`].description !== '') {\n ics_lines.push('X-ALT-DESC;FMTTYPE=text/html:\\r\\n \\r\\n \\r\\n ' + atcb_rewrite_ical_text(data.dates[`${i}`].description, true) + '\\r\\n ');\n }\n if (data.dates[`${i}`].location && data.dates[`${i}`].location !== '') {\n ics_lines.push('LOCATION:' + atcb_rewrite_ical_text(data.dates[`${i}`].location, true));\n }\n if (data.dates[`${i}`].organizer && data.dates[`${i}`].organizer !== '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n ics_lines.push('ORGANIZER;CN=' + atcb_rewrite_ical_text(organizerParts[0], false, true) + ':MAILTO:' + organizerParts[1]);\n }\n if (data.dates[`${i}`].attendee && data.dates[`${i}`].attendee !== '') {\n const attendeeParts = data.dates[`${i}`].attendee.split('|');\n if (attendeeParts.length === 2) {\n ics_lines.push('ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=' + atcb_rewrite_ical_text(attendeeParts[0], false, true) + ';X-NUM-GUESTS=0:mailto:' + attendeeParts[1]);\n } else {\n ics_lines.push('ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=' + attendeeParts[0] + ';X-NUM-GUESTS=0:mailto:' + attendeeParts[0]);\n }\n }\n if (data.recurrence && data.recurrence !== '') {\n ics_lines.push(data.recurrence);\n }\n if (data.dates[`${i}`].availability && data.dates[`${i}`].availability !== '') {\n const transpVal = function () {\n if (data.dates[`${i}`].availability == 'free') {\n return 'TRANSPARENT';\n }\n return 'OPAQUE';\n }();\n ics_lines.push('TRANSP:' + transpVal);\n }\n ics_lines.push('SEQUENCE:' + data.dates[`${i}`].sequence);\n ics_lines.push('STATUS:' + data.dates[`${i}`].status);\n ics_lines.push('CREATED:' + data.created);\n ics_lines.push('LAST-MODIFIED:' + data.updated);\n ics_lines.push('END:VEVENT');\n }\n ics_lines.push('END:VCALENDAR');\n const dataUrl = function () {\n if (givenIcsFile != '') {\n return givenIcsFile;\n }\n return 'data:text/calendar;charset=utf-8,' + encodeURIComponent(ics_lines.join('\\r\\n'));\n }();\n if (atcbIsiOS() && !atcbIsSafari() || atcbIsWebView() && (atcbIsiOS() || atcbIsAndroid() && atcbIsProblematicWebView())) {\n atcb_ical_copy_note(host, dataUrl, data, keyboardTrigger);\n return;\n }\n atcb_save_file(dataUrl, filename);\n}\nfunction atcb_determine_ical_filename(data, subEvent) {\n const filenameSuffix = function () {\n if (subEvent != 'all' && subEvent != 0) {\n return '-' + parseInt(subEvent) + 1;\n }\n return '';\n }();\n if (data.iCalFileName != null && data.iCalFileName != '') {\n return data.iCalFileName + filenameSuffix;\n }\n if (data.icsFile != null && data.icsFile != '') {\n const filenamePart = data.icsFile.split('/').pop().split('.')[0];\n if (filenamePart != '') {\n return filenamePart + filenameSuffix;\n }\n }\n return 'event-to-save-in-my-calendar' + filenameSuffix;\n}\nfunction atcb_ical_copy_note(host, dataUrl, data, keyboardTrigger) {\n atcb_copy_to_clipboard(dataUrl);\n if (atcbIsiOS() && !atcbIsSafari()) {\n atcb_create_modal(host, data, 'warning', atcb_translate_hook('modal.opensafari.ical.h', data), atcb_translate_hook('modal.opensafari.ical.text', data) + '
' + atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.opensafari.ical.steps', data), [], [], keyboardTrigger);\n return;\n }\n atcb_create_modal(host, data, 'warning', atcb_translate_hook('modal.webview.ical.h', data), atcb_translate_hook('modal.webview.ical.text', data) + '
' + atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.webview.ical.steps', data), [], [], keyboardTrigger);\n}\nfunction atcb_saved_hook(host, data) {\n atcb_log_event('success', data.identifier, data.identifier);\n if (data.ty && typeof atcb_generate_ty === 'function') {\n setTimeout(() => {\n atcb_generate_ty(host, data);\n }, 1000);\n }\n}\nfunction atcb_save_file(file, filename) {\n try {\n const save = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');\n save.rel = 'noopener';\n save.href = file;\n if (atcbIsMobile()) {\n save.target = '_self';\n } else {\n save.target = '_blank';\n }\n save.download = filename + '.ics';\n const evt = new MouseEvent('click', {\n view: window,\n button: 0,\n bubbles: true,\n cancelable: false\n });\n save.dispatchEvent(evt);\n (window.URL || window.webkitURL).revokeObjectURL(save.href);\n } catch (e) {\n console.error(e);\n }\n}\nfunction atcb_generate_time(data, style = 'delimiters', targetCal = 'general', addTimeZoneOffset = false) {\n if (data.startTime && data.startTime !== '' && data.endTime && data.endTime !== '') {\n const newStartDate = new Date(data.startDate + 'T' + data.startTime + ':00.000+00:00');\n if (!data.endDate) data.endDate = data.startDate;\n const newEndDate = new Date(data.endDate + 'T' + data.endTime + ':00.000+00:00');\n const durationMS = newEndDate - newStartDate;\n const durationHours = Math.floor(durationMS / 1000 / 60 / 60);\n const durationMinutes = Math.floor((durationMS - durationHours * 60 * 60 * 1000) / 1000 / 60 % 60);\n const durationString = function () {\n if (durationHours < 10) {\n return '0' + durationHours + ':' + ('0' + durationMinutes).slice(-2);\n }\n return durationHours + ':' + ('0' + durationMinutes).slice(-2);\n }();\n if (targetCal == 'ical' || targetCal == 'google' && !/GMT[+|-]\\d{1,2}|Etc\\/U|Etc\\/Zulu|CET|CST6CDT|EET|EST|MET|MST|PST8PDT|WET/i.test(data.timeZone)) {\n return {\n start: atcb_format_datetime(newStartDate, 'clean', true, true),\n end: atcb_format_datetime(newEndDate, 'clean', true, true),\n duration: durationString,\n allday: false\n };\n }\n const offsetStart = tzlib_get_offset(data.timeZone, data.startDate, data.startTime);\n const offsetEnd = tzlib_get_offset(data.timeZone, data.endDate, data.endTime);\n if (addTimeZoneOffset) {\n const formattedOffsetStart = offsetStart.slice(0, 3) + ':' + offsetStart.slice(3);\n const formattedOffsetEnd = offsetEnd.slice(0, 3) + ':' + offsetEnd.slice(3);\n return {\n start: newStartDate.toISOString().replace('.000Z', formattedOffsetStart),\n end: newEndDate.toISOString().replace('.000Z', formattedOffsetEnd),\n duration: durationString,\n allday: false\n };\n }\n const calcOffsetStart = parseInt(offsetStart[0] + 1) * -1 * ((parseInt(offsetStart.substring(1, 3)) * 60 + parseInt(offsetStart.substring(3, 5))) * 60 * 1000);\n const calcOffsetEnd = parseInt(offsetEnd[0] + 1) * -1 * ((parseInt(offsetEnd.substring(1, 3)) * 60 + parseInt(offsetEnd.substring(3, 5))) * 60 * 1000);\n newStartDate.setTime(newStartDate.getTime() + calcOffsetStart);\n newEndDate.setTime(newEndDate.getTime() + calcOffsetEnd);\n return {\n start: atcb_format_datetime(newStartDate, style),\n end: atcb_format_datetime(newEndDate, style),\n duration: durationString,\n allday: false\n };\n } else {\n const startDate = data.startDate.split('-');\n const endDate = data.endDate ? data.endDate.split('-') : startDate;\n const newStartDate = new Date(Date.UTC(startDate[0], startDate[1] - 1, startDate[2], 12, 0, 0));\n const newEndDate = new Date(Date.UTC(endDate[0], endDate[1] - 1, endDate[2], 12, 0, 0));\n if (targetCal === 'google' || targetCal === 'microsoft' && !atcbIsMobile() || targetCal === 'msteams' || targetCal === 'ical') {\n newEndDate.setDate(newEndDate.getDate() + 1);\n }\n if (targetCal === 'msteams') {\n if (atcbIsMobile()) {\n const offset = newStartDate.getTimezoneOffset();\n const formattedOffset = function () {\n if (offset < 0) {\n return '+' + ('0' + Math.abs(offset / 60)).slice(-2) + ':' + ('0' + Math.abs(offset % 60)).slice(-2);\n } else {\n return '-' + ('0' + Math.abs(offset / 60)).slice(-2) + ':' + ('0' + Math.abs(offset % 60)).slice(-2);\n }\n }();\n return {\n start: atcb_format_datetime(newStartDate, style, false, true) + 'T00:00:00' + formattedOffset,\n end: atcb_format_datetime(newEndDate, style, false, true) + 'T00:00:00' + formattedOffset,\n allday: true\n };\n }\n return {\n start: atcb_format_datetime(newStartDate, style, false, true) + '+00:00',\n end: atcb_format_datetime(newEndDate, style, false, true) + '+00:00',\n allday: true\n };\n }\n return {\n start: atcb_format_datetime(newStartDate, style, false),\n end: atcb_format_datetime(newEndDate, style, false),\n allday: true\n };\n }\n}\nfunction atcb_format_datetime(datetime, style = 'delimiters', includeTime = true, removeZ = false) {\n const regex = function () {\n if (includeTime) {\n if (style == 'clean') {\n return /(-|:|(\\.\\d{3}))/g;\n }\n return /(\\.\\d{3})/g;\n }\n if (style == 'clean') {\n return /(-|T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z)/g;\n }\n return /T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z/g;\n }();\n const output = removeZ ? datetime.toISOString().replace(regex, '').replace('Z', '') : datetime.toISOString().replace(regex, '');\n return output;\n}\nfunction offsetToMilliseconds(offset) {\n const sign = offset[0] === '+' ? 1 : -1;\n const hours = parseInt(offset.substring(1, 3), 10);\n const minutes = parseInt(offset.substring(3, 5), 10);\n const totalMinutes = (hours * 60 + minutes) * sign;\n const milliseconds = totalMinutes * 60000;\n return milliseconds;\n}\nfunction atcb_translate_via_time_zone(date, time, baseTimeZone, targetTimeZone) {\n const dateTime = new Date(`${date}T${time}:00Z`);\n const offset = tzlib_get_offset(baseTimeZone, date, time);\n const dateTimeUTC = new Date(dateTime.getTime() - offsetToMilliseconds(offset));\n const formatter = new Intl.DateTimeFormat('en-CA', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n timeZone: targetTimeZone,\n hourCycle: 'h23'\n });\n const dateInTargetTimeZone = formatter.format(dateTimeUTC);\n return [date, time] = dateInTargetTimeZone.split(', ');\n}\nfunction atcb_generate_timestring(dates, language = 'en', subEvent = 'all', decorate = false, browserTimeOverride = false, enforceYear = false, hideTimeZone = false) {\n if (decorate) {\n const tmpRootTZ = atcb_decorate_data_timezone();\n dates = atcb_decorate_data_dates({\n dates: dates,\n timeZone: tmpRootTZ\n }).dates;\n }\n let startDateInfo, endDateInfo, timeZoneInfoStart, timeZoneInfoEnd;\n let formattedTimeStart = {};\n let formattedTimeEnd = {};\n let timeBlocks = [];\n let timeZoneInfoStringStart = '';\n let timeZoneInfoStringEnd = '';\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n if (subEvent === 'all') {\n formattedTimeStart = atcb_generate_time(dates[0]);\n formattedTimeEnd = atcb_generate_time(dates[dates.length - 1]);\n timeZoneInfoStart = browserTimeOverride ? browserTimezone : dates[0].timeZone;\n timeZoneInfoEnd = browserTimeOverride ? browserTimezone : dates[dates.length - 1].timeZone;\n } else {\n formattedTimeStart = atcb_generate_time(dates[`${subEvent}`]);\n formattedTimeEnd = formattedTimeStart;\n timeZoneInfoStart = browserTimeOverride ? browserTimezone : dates[`${subEvent}`].timeZone;\n timeZoneInfoEnd = timeZoneInfoStart;\n }\n startDateInfo = new Date(formattedTimeStart.start);\n endDateInfo = new Date(formattedTimeEnd.end);\n if (formattedTimeStart.allday) {\n timeZoneInfoStart = 'GMT';\n }\n if (formattedTimeEnd.allday) {\n timeZoneInfoEnd = 'GMT';\n }\n const magicLocationPhrases = ['global', 'world-wide', 'worldwide', 'online'];\n const convertable = function () {\n let i = 0;\n let j = dates.length - 1;\n if (subEvent != 'all') {\n i = j = subEvent;\n }\n for (i; i <= j; i++) {\n const magicLocation = function () {\n if (dates[`${i}`].location && dates[`${i}`].location !== '') {\n if (magicLocationPhrases.includes(dates[`${i}`].location.toLowerCase())) {\n return true;\n }\n }\n return false;\n }();\n if (!magicLocation && !dates[`${i}`].onlineEvent) {\n return false;\n }\n }\n return true;\n }();\n if (convertable) {\n timeZoneInfoStart = timeZoneInfoEnd = browserTimezone;\n } else {\n if (!formattedTimeStart.allday && browserTimezone !== timeZoneInfoStart && timeZoneInfoStart !== timeZoneInfoEnd) {\n timeZoneInfoStringStart = '(' + timeZoneInfoStart + ')';\n }\n if (!formattedTimeEnd.allday && browserTimezone !== timeZoneInfoEnd || timeZoneInfoStart !== timeZoneInfoEnd) {\n timeZoneInfoStringEnd = '(' + timeZoneInfoEnd + ')';\n }\n }\n const now = new Date();\n const dropYearStart = function () {\n if (!enforceYear && startDateInfo.getFullYear() === now.getFullYear()) {\n return true;\n }\n return false;\n }();\n const dropYearEnd = function () {\n if (!enforceYear && endDateInfo.getFullYear() === now.getFullYear()) {\n return true;\n }\n return false;\n }();\n const formatOptionsStart = get_format_options(timeZoneInfoStart, dropYearStart, language);\n const formatOptionsEnd = get_format_options(timeZoneInfoEnd, dropYearEnd, language);\n if (startDateInfo.toLocaleDateString(language, formatOptionsEnd.DateLong) === endDateInfo.toLocaleDateString(language, formatOptionsEnd.DateLong)) {\n if (formattedTimeStart.allday) {\n if (!dropYearStart) {\n timeBlocks.push(startDateInfo.toLocaleDateString(language, formatOptionsStart.DateLong));\n }\n } else {\n let timeString = '';\n if (dropYearStart) {\n timeString = startDateInfo.toLocaleString(language, formatOptionsStart.Time);\n } else {\n timeString = startDateInfo.toLocaleString(language, formatOptionsStart.DateTimeLong);\n }\n if (language === 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n if (timeZoneInfoStringStart !== '' && !hideTimeZone) {\n timeBlocks.push(timeZoneInfoStringStart);\n }\n timeBlocks.push('-');\n timeString = endDateInfo.toLocaleTimeString(language, formatOptionsEnd.Time);\n if (language === 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n if (timeZoneInfoStringEnd !== '' && !hideTimeZone) {\n timeBlocks.push(timeZoneInfoStringEnd);\n }\n }\n } else {\n if (formattedTimeStart.allday) {\n timeBlocks.push(startDateInfo.toLocaleDateString(language, formatOptionsStart.DateLong));\n } else {\n let timeString = '';\n if (dropYearStart) {\n timeString = startDateInfo.toLocaleString(language, formatOptionsStart.Time);\n } else {\n timeString = startDateInfo.toLocaleString(language, formatOptionsStart.DateTimeLong);\n }\n if (language === 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n }\n if (timeZoneInfoStringStart !== '' && !hideTimeZone) {\n timeBlocks.push(timeZoneInfoStringStart);\n }\n timeBlocks.push('-');\n if (formattedTimeEnd.allday) {\n timeBlocks.push(endDateInfo.toLocaleDateString(language, formatOptionsEnd.DateLong));\n } else {\n let timeString = endDateInfo.toLocaleString(language, formatOptionsEnd.DateTimeLong);\n if (language === 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n }\n if (timeZoneInfoStringEnd !== '' && !hideTimeZone) {\n timeBlocks.push(timeZoneInfoStringEnd);\n }\n }\n return timeBlocks;\n}\nfunction get_format_options(timeZoneInfo, dropYear = false, language = 'en') {\n const hoursFormat = function () {\n if (language === 'en') {\n return 'h12';\n }\n return 'h23';\n }();\n if (dropYear) {\n return {\n DateLong: {\n timeZone: timeZoneInfo,\n month: 'short',\n day: 'numeric'\n },\n DateTimeLong: {\n timeZone: timeZoneInfo,\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat\n },\n Time: {\n timeZone: timeZoneInfo,\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat\n }\n };\n }\n return {\n DateLong: {\n timeZone: timeZoneInfo,\n year: 'numeric',\n month: 'numeric',\n day: 'numeric'\n },\n DateTimeLong: {\n timeZone: timeZoneInfo,\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat\n },\n Time: {\n timeZone: timeZoneInfo,\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat\n }\n };\n}\nfunction atcb_secure_content(data, isJSON = true) {\n const toClean = isJSON ? JSON.stringify(data) : data.toString();\n const cleanedUp = toClean.replace(/(<(?!br)([^>]+)>)/gi, '');\n if (isJSON) {\n return JSON.parse(cleanedUp);\n } else {\n return cleanedUp;\n }\n}\nfunction atcb_secure_url(url, throwError = true) {\n if (url && url.match(/((\\.\\.\\/)|(\\.\\.\\\\)|(%2e%2e%2f)|(%252e%252e%252f)|(%2e%2e\\/)|(%252e%252e\\/)|(\\.\\.%2f)|(\\.\\.%252f)|(%2e%2e%5c)|(%252e%252e%255c)|(%2e%2e\\\\)|(%252e%252e\\\\)|(\\.\\.%5c)|(\\.\\.%255c)|(\\.\\.%c0%af)|(\\.\\.%25c0%25af)|(\\.\\.%c1%9c)|(\\.\\.%25c1%259c))/gi)) {\n if (throwError) {\n console.error('Seems like the generated URL includes at least one security issue and got blocked. Please check the calendar button parameters!');\n }\n return false;\n } else {\n return true;\n }\n}\nfunction atcb_validEmail(email) {\n if (!/^.{0,70}@.{1,30}\\.[a-z]{2,9}$/i.test(email)) {\n return false;\n }\n return true;\n}\nfunction atcb_rewrite_html_elements(content, clear = false, iCalBreaks = false) {\n if (clear) {\n if (iCalBreaks) {\n content = content.replace(/(\\[br\\s?\\/?\\]|\\{br\\s?\\/?\\}|(\\[\\/p\\](?=.))|(\\{\\/p\\}(?=.)))/gi, '\\\\n');\n } else {\n content = content.replace(/(\\[br\\s?\\/?\\]|\\{br\\s?\\/?\\}|(\\[\\/p\\](?=.))|(\\{\\/p\\}(?=.)))/gi, ' ');\n }\n content = content.replace(/\\[url\\](.+?)\\[\\/url\\]/gi, (match, p1) => {\n return p1.split('|')[0];\n });\n content = content.replace(/\\{url\\}(.+?)\\{\\/url\\}/gi, (match, p1) => {\n return p1.split('|')[0];\n });\n content = content.replace(/\\[\\/?(hr|[pbui]|strong|em|li|ul|ol|h\\d)\\]/gi, '');\n content = content.replace(/\\{\\/?(hr|[pbui]|strong|em|li|ul|ol|h\\d)\\}/gi, '');\n content = content.replace(/&[#a-z0-9]{1,9};/gi, '');\n } else {\n content = content.replace(/\\[url\\]((?:(?!\\[\\/url\\]).)*)\\[\\/url\\]/gi, function (match, p1) {\n return atcb_parse_url_code(p1);\n });\n content = content.replace(/\\{url\\}((?:(?!\\[\\/url\\]).)*)\\{\\/url\\}/gi, function (match, p1) {\n return atcb_parse_url_code(p1);\n });\n content = content.replace(/\\[(\\/)?(br|hr|[pbui]|strong|em|li|ul|ol|h\\d)(\\s?\\/?)\\]/gi, '<$1$2$3>');\n content = content.replace(/\\{(\\/)?(br|hr|[pbui]|strong|em|li|ul|ol|h\\d)(\\s?\\/?)\\}/gi, '<$1$2$3>');\n }\n return content;\n}\nfunction atcb_parse_url_code(input) {\n const urlText = input.split('|');\n const text = function () {\n if (urlText.length > 1 && urlText[1] != '') {\n return urlText[1];\n } else {\n return urlText[0];\n }\n }();\n return '' + text + '';\n}\nfunction atcb_rewrite_ical_text(content, truncate = true, inQuotes = false) {\n if (inQuotes) {\n content = content.replace(/\"/g, '');\n } else {\n content = content.replace(/\\\\/g, '\\\\\\\\').replace(/(,|;)/g, '\\\\$1').replace(/\\\\\\\\n/g, '\\\\n');\n }\n if (truncate) {\n content = content.replace(/.{60}/g, '$&' + '\\r\\n ');\n }\n return content;\n}\nfunction atcb_position_list(host, trigger, list, blockUpwards = false, blockDownwards = false) {\n let anchorSet = false;\n const originalTrigger = trigger;\n if (trigger.querySelector('.atcb-dropdown-anchor') !== null) {\n trigger = trigger.querySelector('.atcb-dropdown-anchor');\n anchorSet = true;\n }\n list.style.position = 'relative';\n list.style.display = 'inline-block';\n let triggerDim = trigger.getBoundingClientRect();\n const btnDim = originalTrigger.getBoundingClientRect();\n const btnParentDim = originalTrigger.parentNode.getBoundingClientRect();\n const viewportHeight = document.documentElement.clientHeight;\n if (anchorSet === true && !list.classList.contains('atcb-dropoverlay')) {\n let listDim = list.getBoundingClientRect();\n list.style.width = listDim.width + 'px';\n if (list.classList.contains('atcb-dropup') || !blockUpwards && triggerDim.top + listDim.height > viewportHeight - 20 && 2 * btnDim.top + btnDim.height - triggerDim.top - listDim.height > 20 || blockDownwards) {\n originalTrigger.classList.add('atcb-dropup');\n list.classList.add('atcb-dropup');\n list.style.bottom = btnParentDim.bottom - btnDim.bottom + (triggerDim.top - btnDim.top) + 'px';\n } else {\n list.style.top = btnDim.top - btnParentDim.top + (triggerDim.top - btnDim.top) + 'px';\n if (originalTrigger.classList.contains('atcb-dropup')) {\n originalTrigger.classList.remove('atcb-dropup');\n }\n }\n triggerDim = trigger.getBoundingClientRect();\n if (!list.classList.contains('atcb-style-round') && !list.classList.contains('atcb-style-text') && !list.classList.contains('atcb-style-neumorphism')) {\n list.style.minWidth = triggerDim.width + 'px';\n if (list.classList.contains('atcb-dropdown')) {\n list.style.maxWidth = triggerDim.width + 'px';\n }\n }\n listDim = list.getBoundingClientRect();\n list.style.left = Math.round(triggerDim.left - btnParentDim.left - (listDim.width - triggerDim.width) / 2) + 'px';\n } else {\n list.style.minWidth = btnDim.width + 20 + 'px';\n const listDim = list.getBoundingClientRect();\n list.style.width = listDim.width + 'px';\n const sideMargin = Math.round((btnDim.width - listDim.width) / 2);\n list.style.margin = -Math.round((listDim.height + btnDim.height) / 2) + 'px ' + sideMargin + 'px 0 ' + sideMargin + 'px';\n }\n list.style.position = 'absolute';\n list.style.display = 'block';\n const atcbL = host.querySelector('#atcb-reference');\n if (atcbL) {\n if (originalTrigger.classList.contains('atcb-dropup')) {\n originalTrigger.parentNode.after(atcbL);\n atcbL.classList.add('atcb-dropup');\n }\n }\n}\nfunction atcb_position_shadow_button(originalShadowHost, modalShadowHost) {\n const wrapperDim = originalShadowHost.querySelector('.atcb-initialized ').getBoundingClientRect();\n const newWrapper = modalShadowHost.querySelector('.atcb-initialized');\n let widthVal = wrapperDim.width;\n if (wrapperDim.width < 250) {\n widthVal = 250;\n }\n newWrapper.style.width = widthVal + 'px';\n newWrapper.style.height = wrapperDim.height + 'px';\n newWrapper.style.top = wrapperDim.top + 'px';\n newWrapper.style.left = wrapperDim.left + 'px';\n}\nfunction atcb_position_shadow_button_listener() {\n const active = atcbStates['active'];\n if (active !== null && active !== '') {\n const originalEl = document.querySelector('add-to-calendar-button[atcb-button-id=' + active + ']').shadowRoot;\n const shadowEl = document.querySelector('div[atcb-button-id=' + active + ']').shadowRoot;\n atcb_position_shadow_button(originalEl, shadowEl);\n }\n}\nfunction atcb_manage_body_scroll(host, modalObj = null) {\n const modal = function () {\n if (modalObj != null) {\n return modalObj;\n } else {\n const allModals = host.querySelectorAll('.atcb-modal');\n if (allModals.length === 0) {\n return null;\n }\n return allModals[allModals.length - 1];\n }\n }();\n if (modal == null) {\n return;\n }\n const modalDim = modal.getBoundingClientRect();\n if (modalDim.height + 150 > window.innerHeight) {\n document.body.classList.add('atcb-modal-no-scroll');\n document.documentElement.classList.add('atcb-modal-no-scroll');\n } else {\n document.body.classList.remove('atcb-modal-no-scroll');\n document.documentElement.classList.remove('atcb-modal-no-scroll');\n }\n}\nfunction atcb_set_fullsize(el) {\n el.style.width = window.innerWidth + 'px';\n el.style.height = window.innerHeight + 100 + 'px';\n}\nfunction atcb_set_sizes(el, sizes) {\n el.style.setProperty('--base-font-size-l', sizes['l'] + 'px');\n el.style.setProperty('--base-font-size-m', sizes['m'] + 'px');\n el.style.setProperty('--base-font-size-s', sizes['s'] + 'px');\n}\nfunction atcb_generate_uuid() {\n const id = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));\n return id;\n}\nfunction atcb_copy_to_clipboard(dataString) {\n const tmpInput = document.createElement('input');\n document.body.append(tmpInput);\n const editable = tmpInput.contentEditable;\n const readOnly = tmpInput.readOnly;\n tmpInput.contentEditable = true;\n tmpInput.readOnly = false;\n tmpInput.value = dataString;\n if (atcbIsiOS()) {\n var range = document.createRange();\n range.selectNodeContents(tmpInput);\n var selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n tmpInput.setSelectionRange(0, 999999);\n } else {\n tmpInput.select();\n }\n tmpInput.contentEditable = editable;\n tmpInput.readOnly = readOnly;\n document.execCommand('copy');\n tmpInput.remove();\n}\nfunction atcb_debounce(func, timeout = 200) {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n}\nfunction atcb_debounce_leading(func, timeout = 300) {\n let timer;\n return (...args) => {\n if (!timer) {\n func.apply(this, args);\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n timer = undefined;\n }, timeout);\n };\n}\nfunction atcb_log_event(event, trigger, identifier) {\n const parentEl = function () {\n const customTrigger = document.getElementById(identifier);\n if (customTrigger) {\n return customTrigger;\n }\n return document.querySelector('[atcb-button-id=\"' + identifier + '\"]');\n }();\n if (parentEl) {\n parentEl.setAttribute('atcb-last-event', event + ':' + trigger);\n }\n if (atcbIsBrowser()) {\n atcb_push_to_data_layer(event, trigger);\n }\n}\nfunction atcb_push_to_data_layer(event, trigger) {\n let action = '';\n switch (event) {\n case 'initialization':\n action = 'Initialized';\n break;\n case 'openList':\n action = 'Opened';\n break;\n case 'closeList':\n action = 'Closed';\n break;\n case 'openCalendarLink':\n action = 'Opened';\n break;\n case 'openSingletonLink':\n action = 'Opened';\n break;\n case 'openSubEventLink':\n action = 'Opened';\n break;\n case 'openRSVP':\n action = 'Opened';\n break;\n case 'success':\n action = 'Saved';\n break;\n case 'successRSVP':\n action = 'Saved';\n break;\n }\n const category = event === 'openRSVP' || event === 'successRSVP' ? 'Add-to-Calendar-RSVP' : 'Add-to-Calendar-Button';\n const atcbDataLayer = window.dataLayer = window.dataLayer || [];\n atcbDataLayer.push({\n eventCategory: category,\n eventAction: action,\n eventLabel: trigger,\n event: event\n });\n}\n\n/* How to add new languages:\n * 1. Duplicate the \"en\" block at the following \"i18nStrings\" object.\n * 2. Change the key to the ISO 639-1 code of your language (https://www.w3schools.com/tags/ref_language_codes.asp).\n * 3. Translate the labels.\n * 4. Add the language to the \"rtlLanguages\" array below, if it write from right to left.\n * 4. Update the \"language\" part at the configuration page of the demo page - add the new lagnuages to the \"Options\" info (/demo/pages/configuration.vue).\n * 5. Also update the language.ts file at the demo page, so the language appears at the demo playground (/demo/src/components/models/language.ts).\n */\nconst rtlLanguages = ['ar', 'fa'];\nconst calendarNames = {\n apple: 'Apple',\n google: 'Google',\n ms365: 'Microsoft 365',\n msteams: 'Microsoft Teams',\n outlookcom: 'Outlook.com',\n yahoo: 'Yahoo'\n};\nconst i18nStrings = {\n en: {\n 'label.addtocalendar': 'Add to Calendar',\n ical: 'iCal File',\n ...calendarNames,\n 'modal.button.default': 'Click me',\n 'modal.webview.ical.h': 'Open your browser',\n 'modal.webview.ical.text': 'Unfortunately, in-app browsers have problems with the way we generate the calendar file.',\n 'modal.clipboard.text': 'We automatically copied a magical URL into your clipboard.',\n 'modal.webview.ical.steps': '
  1. Open another browser on your phone, ...
  2. Paste the clipboard content and go.
',\n 'modal.opensafari.ical.h': 'Open Safari',\n 'modal.opensafari.ical.text': 'Unfortunately, iOS has some problems generating and opening the calendar file outside of Safari.',\n 'modal.opensafari.ical.steps': '
  1. Open Safari, ...
  2. Paste the clipboard content and go.
',\n 'modal.multidate.h': 'This is an event series',\n 'modal.multidate.text': 'Add the individual events one by one:',\n 'date.status.cancelled': 'This date got cancelled.',\n 'date.status.cancelled.cta': 'Please update your calendar!',\n 'modal.subscribe.yahoo.h': 'Add Calendar to Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Open now the Yahoo Calendar.
  2. Click the \"Actions\" tab.
  3. Hit \"Follow Other Calendars\".
  4. Set a name and paste the clipboard content into the url field.
',\n 'modal.subscribe.yahoo.button': 'Open Yahoo Calendar',\n close: 'Close',\n continue: 'Continue',\n cancel: 'Cancel',\n expired: 'Expired',\n recurring: 'Recurring',\n thankyou: 'Thank you',\n submit: 'Submit',\n 'label.rsvp': 'RSVP',\n 'label.share.email': 'Share via Email',\n 'label.share.copy': 'Copy Link',\n 'label.share.copied': 'Copied',\n 'label.share.email.subject': 'Save this event',\n 'form.error.required': 'You did not properly fill all required fields',\n 'form.error.sending': 'There was a problem sending your response. Please try again later',\n 'form.success': 'Sent successfully!'\n },\n de: {\n 'label.addtocalendar': 'Im Kalender speichern',\n ical: 'iCal-Datei',\n ...calendarNames,\n 'modal.button.default': 'Klick mich',\n 'modal.webview.ical.h': 'Öffne deinen Browser',\n 'modal.webview.ical.text': 'Leider haben In-App-Browser Probleme mit der Art, wie wir Kalender-Dateien erzeugen.',\n 'modal.clipboard.text': 'Wir haben automatisch eine magische URL in deine Zwischenablage kopiert.',\n 'modal.webview.ical.steps': '
  1. Öffne einen anderen Browser auf deinem Smartphone, ...
  2. Nutze die Einfügen-Funktion, um fortzufahren.
',\n 'modal.opensafari.ical.h': 'Öffne Safari',\n 'modal.opensafari.ical.text': 'Leider hat iOS einige Probleme beim Generieren und Öffnen der Kalenderdatei außerhalb von Safari.',\n 'modal.opensafari.ical.steps': '
  1. Öffne Safari, ...
  2. Nutze die Einfügen-Funktion, um fortzufahren.
',\n 'modal.multidate.h': 'Dies ist eine Termin-Reihe',\n 'modal.multidate.text': 'Füge die einzelnen Termine der Reihe nach deinem Kalender hinzu:',\n 'date.status.cancelled': 'Dieser Termin wurde abgesagt.',\n 'date.status.cancelled.cta': 'Bitte aktualisiere deinen Kalender!',\n 'modal.subscribe.yahoo.h': 'Kalender zu Yahoo hinzufügen',\n 'modal.subscribe.yahoo.text': '
  1. Öffne den Yahoo-Kalender.
  2. Klicke auf den \"Aktionen\"-Tab.
  3. Wähle \"Weiteren Kalendern folgen\".
  4. Wähle einen Namen und füge die URL aus deiner Zwischenablage in das URL-Feld ein.
',\n 'modal.subscribe.yahoo.button': 'Yahoo-Kalender öffnen',\n close: 'Schließen',\n continue: 'Weiter',\n cancel: 'Abbrechen',\n expired: 'Abgelaufen',\n recurring: 'Wiederkehrend',\n thankyou: 'Danke',\n submit: 'Absenden',\n 'label.share.email': 'Per E-Mail teilen',\n 'label.share.copy': 'Link kopieren',\n 'label.share.copied': 'Kopiert',\n 'label.share.email.subject': 'Merke dir diesen Termin',\n 'form.error.required': 'Du hast nicht alle erforderlichen Felder korrekt ausgefüllt',\n 'form.error.sending': 'Es gab ein Problem beim Senden deiner Antwort. Bitte versuche es später noch einmal',\n 'form.success': 'Erfolgreich gesendet!'\n },\n es: {\n 'label.addtocalendar': 'Añadir al Calendario',\n ical: 'iCal Ficha',\n ...calendarNames,\n 'modal.button.default': 'Haz clic mí',\n 'modal.webview.ical.h': 'Abra su browser',\n 'modal.webview.ical.text': 'Lamentablemente, los browsers in-app tienen problemas con la forma en que generamos el archivo del calendario.',\n 'modal.clipboard.text': 'Hemos copiado automáticamente una URL mágica en su portapapeles.',\n 'modal.webview.ical.steps': '
  1. Abre otro browser en tu smartphone, ...
  2. Utilice la función de pegar para continuar.
',\n 'modal.opensafari.ical.h': 'Abrir Safari',\n 'modal.opensafari.ical.text': 'Desafortunadamente, iOS tiene algunos problemas para generar y abrir el archivo de calendario fuera de Safari.',\n 'modal.opensafari.ical.steps': '
  1. Abrir Safari, ...
  2. Utilice la función de pegar para continuar.
',\n 'modal.multidate.h': 'Esta es una serie de fechas',\n 'modal.multidate.text': 'Añada las fechas individuales a su calendario en orden:',\n 'date.status.cancelled': 'Esta fecha fue cancelada.',\n 'date.status.cancelled.cta': 'Actualice su calendario!',\n 'modal.subscribe.yahoo.h': 'Añadir calendario a Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Abra el calendario de Yahoo.
  2. Haga clic en la pestaña \"Acciones\".
  3. Seleccione \"Seguir otros calendarios\".
  4. Elige un nombre y pega la URL de tu portapapeles en el campo URL.
',\n 'modal.subscribe.yahoo.button': 'Abrir calendario de Yahoo',\n close: 'Ciérralo',\n continue: 'Continuar',\n cancel: 'Cancelar',\n expired: 'Caducada',\n recurring: 'Periódica',\n thankyou: 'Gracias',\n submit: 'Enviar',\n 'label.share.email': 'Compartir por E-mail',\n 'label.share.copy': 'Copiar enlace',\n 'label.share.copied': 'Copiado',\n 'label.share.email.subject': 'Recuerda esta fecha',\n 'form.error.required': 'No has completado correctamente todos los campos requeridos',\n 'form.error.sending': 'Hubo un problema al enviar tu respuesta. Por favor, inténtalo de nuevo más tarde',\n 'form.success': 'Enviado con éxito!'\n },\n pt: {\n 'label.addtocalendar': 'Incluir no Calendário',\n ical: 'Ficheiro iCal',\n ...calendarNames,\n 'modal.button.default': 'Clicar-me',\n 'modal.webview.ical.h': 'Abra o seu browser',\n 'modal.webview.ical.text': 'Infelizmente, os navegadores em tampas têm problemas com a forma como geramos o ficheiro de calendário.',\n 'modal.clipboard.text': 'Copiámos automaticamente um URL mágico para a sua área de transferência.',\n 'modal.webview.ical.steps': '
  1. Abrir outro browser en tu smartphone, ...
  2. Use a função colar para continuar.
',\n 'modal.opensafari.ical.h': 'Safari aberto',\n 'modal.opensafari.ical.text': 'Infelizmente, o iOS tem alguns problemas para gerar e abrir o arquivo de calendário fora do Safari.',\n 'modal.opensafari.ical.steps': '
  1. Safari aberto, ...
  2. Use a função colar para continuar.
',\n 'modal.multidate.h': 'Esta é uma série de datas',\n 'modal.multidate.text': 'Adicione as datas individuais ao seu calendário, por ordem:',\n 'date.status.cancelled': 'Esta data foi cancelada.',\n 'date.status.cancelled.cta': 'Actualize o seu calendário!',\n 'modal.subscribe.yahoo.h': 'Adicionar calendário ao Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Abrir o calendário do Yahoo.
  2. Clique no separador \"Acções\".
  3. Seleccione \"Seguir outros calendários\".
  4. Escolha um nome e cole o URL da sua área de transferência no campo URL.
',\n 'modal.subscribe.yahoo.button': 'Abra o Calendário do Yahoo',\n close: 'Fechar',\n continue: 'Continuar',\n cancel: 'Cancelar',\n expired: 'Expirada',\n recurring: 'Recorrente',\n thankyou: 'Obrigado',\n submit: 'Enviar',\n 'label.share.email': 'Compartilhar por e-mail',\n 'label.share.copy': 'Copiar link',\n 'label.share.copied': 'Copiado',\n 'label.share.email.subject': 'Lembre-se desta data',\n 'form.error.required': 'Você não preencheu todos os campos obrigatórios corretamente',\n 'form.error.sending': 'Houve um problema ao enviar sua resposta. Por favor, tente novamente mais tarde',\n 'form.success': 'Enviado com sucesso!'\n },\n fr: {\n 'label.addtocalendar': \"Ajouter à l'Agenda\",\n ical: 'Fichier iCal',\n ...calendarNames,\n 'modal.button.default': 'Cliquez-moi',\n 'modal.webview.ical.h': 'Ouvrez votre navigateur',\n 'modal.webview.ical.text': 'Malheureusement, les navigateurs intégrés aux applications ont des problèmes avec la manière dont nous créons les fichiers de calendrier.',\n 'modal.clipboard.text': 'Nous avons automatiquement copié une URL magique dans votre presse-papier.',\n 'modal.webview.ical.steps': '
  1. Ouvrez un autre navigateur sur votre smartphone ;
  2. Collez le contenu du presse-papier et continuez.
',\n 'modal.opensafari.ical.h': 'Ouvrir Safari',\n 'modal.opensafari.ical.text': 'Malheureusement, iOS rencontre des problèmes pour générer et ouvrir le fichier de calendrier en dehors de Safari.',\n 'modal.opensafari.ical.steps': '
  1. Ouvrez Safari ;
  2. Collez le contenu du presse-papier et continuez.
',\n 'modal.multidate.h': 'Ceci est une liste d’évènements',\n 'modal.multidate.text': 'Ajouter les évènements un par un :',\n 'date.status.cancelled': 'Cet évènement est annulé.',\n 'date.status.cancelled.cta': 'Actualisez votre agenda !',\n 'modal.subscribe.yahoo.h': 'Ajouter un agenda à Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Ouvrez l’Agenda Yahoo ;
  2. Cliquez sur l’onglet « Actions » ;
  3. Sélectionnez « Suivre d’autres agendas » ;
  4. Choisissez un nom et collez le contenu de votre presse-papier dans le champ URL.
',\n 'modal.subscribe.yahoo.button': 'Ouvrir le calendrier Yahoo',\n close: 'Fermer',\n continue: 'Continuer',\n cancel: 'Annuler',\n expired: 'Expiré',\n recurring: 'Récurrent',\n thankyou: 'Merci',\n submit: 'Envoyer',\n 'label.share.email': 'Partager par E-mail',\n 'label.share.copy': 'Copier le lien',\n 'label.share.copied': 'Copié',\n 'label.share.email.subject': 'Retenez cette date',\n 'form.error.required': \"Tu n'as pas correctement rempli tous les champs requis\",\n 'form.error.sending': \"Il y a eu un problème lors de l'envoi de ta réponse. Veuillez réessayer plus tard\",\n 'form.success': 'Envoyé avec succès!'\n },\n nl: {\n 'label.addtocalendar': 'Opslaan in Agenda',\n ical: 'iCal File',\n ...calendarNames,\n 'modal.button.default': 'Klik me',\n 'modal.webview.ical.h': 'Open uw browser',\n 'modal.webview.ical.text': 'Helaas hebben in-app browsers problemen met de manier waarop wij kalenderbestanden maken.',\n 'modal.clipboard.text': 'We hebben automatisch een magische URL naar je klembord gekopieerd.',\n 'modal.webview.ical.steps': '
  1. Open een andere browser op uw smartphone, ...
  2. Gebruik de insert functie om verder te gaan.
',\n 'modal.opensafari.ical.h': 'Open Safari',\n 'modal.opensafari.ical.text': 'Helaas heeft iOS enkele problemen met het genereren en openen van het agendabestand buiten Safari.',\n 'modal.opensafari.ical.steps': '
  1. Open Safari, ...
  2. Gebruik de insert functie om verder te gaan.
',\n 'modal.multidate.h': 'Dit is een reeks data',\n 'modal.multidate.text': 'Voeg de afzonderlijke delen één voor één toe:',\n 'date.status.cancelled': 'Deze datum is geannuleerd.',\n 'date.status.cancelled.cta': 'Uw agenda bijwerken!',\n 'modal.subscribe.yahoo.h': 'Toevoegen aan Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Open de Yahoo calendar.
  2. Klik op de \"Acties\" tab.
  3. Selecteer \"Volg Andere Agenda\\'s\".
  4. Kies een naam en plak de URL van uw klembord in het URL-veld.
',\n 'modal.subscribe.yahoo.button': 'Open Yahoo Agenda',\n close: 'Sluiten',\n continue: 'Doorgaan',\n cancel: 'Annuleren',\n expired: 'Verlopen',\n recurring: 'Terugkerend',\n thankyou: 'Bedankt',\n submit: 'Versturen',\n 'label.share.email': 'Delen via E-mail',\n 'label.share.copy': 'Link kopiëren',\n 'label.share.copied': 'Gekopieerd',\n 'label.share.email.subject': 'Onthoud deze datum',\n 'form.error.required': 'Je hebt niet alle vereiste velden correct ingevuld',\n 'form.error.sending': 'Er was een probleem met het versturen van je antwoord. Probeer het later opnieuw',\n 'form.success': 'Succesvol verstuurd!'\n },\n tr: {\n 'label.addtocalendar': 'Takvime Ekle',\n ical: 'iCal Dosyası',\n ...calendarNames,\n 'modal.button.default': 'Beni tıklayın',\n 'modal.webview.ical.h': 'Tarayıcınızı açın',\n 'modal.webview.ical.text': 'Ne yazık ki, uygulama içi tarayıcılar takvim dosyalarını oluşturma şeklimizle ilgili sorunlar yaşıyor.',\n 'modal.clipboard.text': 'Panonuza otomatik olarak sihirli bir URL kopyaladık.',\n 'modal.webview.ical.steps': '
  1. Akıllı telefonunuzda başka bir tarayıcı açın, ...
  2. Devam etmek için insert fonksiyonunu kullanın.
',\n 'modal.opensafari.ical.h': 'Açık Safari',\n 'modal.opensafari.ical.text': 'Ne yazık ki iOS, takvim dosyasını Safari dışında oluştururken ve açarken bazı sorunlar yaşıyor.',\n 'modal.opensafari.ical.steps': '
  1. Açık Safari, ...
  2. Devam etmek için insert fonksiyonunu kullanın.
',\n 'modal.multidate.h': 'Bu bir etkinlik serisidir',\n 'modal.multidate.text': 'Parçaları teker teker ekleyin:',\n 'date.status.cancelled': 'Bu tarih iptal edildi.',\n 'date.status.cancelled.cta': 'Lütfen takviminizi güncelleyin!',\n 'modal.subscribe.yahoo.h': \"Yahoo'ya takvim ekleme\",\n 'modal.subscribe.yahoo.text': '
  1. Yahoo takvimini açın.
  2. \"Eylemler\" sekmesine tıklayın.
  3. \"Diğer Takvimleri Takip Et\" öğesini seçin.
  4. Bir ad seçin ve URL\\'yi panonuzdan URL alanına yapıştırın.
',\n 'modal.subscribe.yahoo.button': 'Yahoo Takvimini aç',\n close: 'Kapat',\n continue: 'Devam etmek',\n cancel: 'İptal',\n expired: 'Günü geçmiş',\n recurring: 'Yinelenen',\n thankyou: 'Teşekkürler',\n submit: 'Gönder',\n 'label.share.email': 'E-posta ile Paylaş',\n 'label.share.copy': 'Bağlantıyı Kopyala',\n 'label.share.copied': 'Kopyalandı',\n 'label.share.email.subject': 'Bu Tarihi Unutma',\n 'form.error.required': 'Gerekli tüm alanları doğru şekilde doldurmadınız',\n 'form.error.sending': 'Yanıtınızı gönderirken bir sorun oluştu. Lütfen daha sonra tekrar deneyin',\n 'form.success': 'Başarıyla gönderildi!'\n },\n zh: {\n 'label.addtocalendar': '添加到日历',\n ical: 'iCal 文件',\n ...calendarNames,\n 'modal.button.default': '点我',\n 'modal.webview.ical.h': '打开浏览器',\n 'modal.webview.ical.text': '不幸的是,应用内浏览器在我们生成日历文件的方式上存在问题。',\n 'modal.clipboard.text': '我们自动将魔术 URL 复制到您的剪贴板。',\n 'modal.webview.ical.steps': '
  1. 打开手机上的任何其他浏览器, ...
  2. 粘贴剪贴板内容并开始。
',\n 'modal.opensafari.ical.h': '打开 Safari',\n 'modal.opensafari.ical.text': '不幸的是,iOS 在 Safari 之外生成和打开日历文件时遇到一些问题。',\n 'modal.opensafari.ical.steps': '
  1. 打开 Safari, ...
  2. 粘贴剪贴板内容并开始。
',\n 'modal.multidate.h': '这是一个活动系列',\n 'modal.multidate.text': '逐个添加各个部分:',\n 'date.status.cancelled': '此日期已取消。',\n 'date.status.cancelled.cta': '请更新您的日历!',\n 'modal.subscribe.yahoo.h': '将日历添加到 Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. 打开 Yahoo 日历。
  2. 点击“操作”标签。
  3. 选择“关注其他日历”。
  4. 选择一个名称并将剪贴板中的 URL 粘贴到 URL 字段中。
',\n 'modal.subscribe.yahoo.button': '打开雅虎日历',\n close: '关',\n continue: '继续',\n cancel: '中止',\n expired: '已到期',\n recurring: '再次发生的',\n thankyou: '谢谢',\n submit: '提交',\n 'label.share.email': '通过电子邮件分享',\n 'label.share.copy': '复制链接',\n 'label.share.copied': '已复制',\n 'label.share.email.subject': '记住这个日期',\n 'form.error.required': '你没有正确填写所有必填字段',\n 'form.error.sending': '发送你的回复时出现问题。请稍后再试',\n 'form.success': '成功发送!'\n },\n ar: {\n 'label.addtocalendar': 'إضافة إلى التقويم',\n ical: 'ملف iCal',\n ...calendarNames,\n 'modal.button.default': 'انقر فوق لي',\n 'modal.webview.ical.h': 'افتح المستعرض الخاص بك',\n 'modal.webview.ical.text': 'لسوء الحظ ، تواجه المتصفحات داخل التطبيق مشاكل في طريقة إنشاء ملف التقويم.',\n 'modal.clipboard.text': 'قمنا تلقائيًا بنسخ عنوان URL سحري إلى الحافظة الخاصة بك.',\n 'modal.webview.ical.steps': '
  1. افتح أي متصفح آخر على هاتفك الذكي, ...
  2. .الصق محتوى الحافظة واذهب
',\n 'modal.opensafari.ical.h': 'افتح Safari',\n 'modal.opensafari.ical.text': 'لسوء الحظ ، يواجه iOS بعض المشكلات في إنشاء ملف التقويم وفتحه خارج Safari.',\n 'modal.opensafari.ical.steps': '
  1. افتح Safari, ...
  2. الصق محتوى الحافظة واذهب.
',\n 'modal.multidate.h': 'هذه سلسلة أحداث',\n 'modal.multidate.text': 'أضف الأجزاء الفردية واحدة تلو الأخرى:',\n 'date.status.cancelled': 'تم إلغاء هذا التاريخ.',\n 'date.status.cancelled.cta': 'الرجاء تحديث التقويم الخاص بك!',\n 'modal.subscribe.yahoo.h': 'أضف التقويم إلى Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. افتح تقويم Yahoo.
  2. انقر فوق علامة التبويب \"الإجراءات\".
  3. حدد \"متابعة تقويمات أخرى\".
  4. اختر اسمًا والصق عنوان URL من الحافظة الخاصة بك في حقل URL.
',\n 'modal.subscribe.yahoo.button': 'افتح تقويم ياهو',\n close: 'قريب',\n continue: 'استمر',\n cancel: 'إحباط',\n expired: 'منتهي الصلاحية',\n recurring: 'يتكرر',\n thankyou: 'شكرا',\n submit: 'إرسال',\n 'label.share.email': 'مشاركة عبر البريد الإلكتروني',\n 'label.share.copy': 'نسخ الرابط',\n 'label.share.copied': 'تم النسخ',\n 'label.share.email.subject': 'تذكر هذا الموعد',\n 'form.error.required': 'لم تقم بملء جميع الحقول المطلوبة بشكل صحيح',\n 'form.error.sending': 'حدثت مشكلة أثناء إرسال ردك. الرجاء المحاولة لاحقاً',\n 'form.success': 'تم الإرسال بنجاح!'\n },\n hi: {\n 'label.addtocalendar': 'कैलेंडर में जोड़ें',\n ical: 'iCal फ़ाइल',\n ...calendarNames,\n 'modal.button.default': 'मुझे क्लिक करें',\n 'modal.webview.ical.h': 'अपना ब्राउज़र खोलें',\n 'modal.webview.ical.text': 'दुर्भाग्य से, इन-ऐप ब्राउज़र में कैलेंडर फ़ाइल बनाने के तरीके में समस्याएँ हैं।',\n 'modal.clipboard.text': 'हमने आपके क्लिपबोर्ड पर स्वचालित रूप से एक जादुई URL कॉपी कर लिया है।',\n 'modal.webview.ical.steps': '
  1. अपने फ़ोन पर दूसरा ब्राउज़र खोलें, ...
  2. क्लिपबोर्ड सामग्री चिपकाएं और जाएं।
',\n 'modal.opensafari.ical.h': 'सफारी खोलें',\n 'modal.opensafari.ical.text': 'दुर्भाग्य से, iOS में सफ़ारी के बाहर कैलेंडर फ़ाइल बनाने और खोलने में कुछ समस्याएँ हैं।',\n 'modal.opensafari.ical.steps': '
  1. सफारी खोलें, ...
  2. क्लिपबोर्ड सामग्री चिपकाएं और जाएं।
',\n 'modal.multidate.h': 'यह एक इवेंट सीरीज़ है',\n 'modal.multidate.text': 'अलग-अलग हिस्सों को एक-एक करके जोड़ें:',\n 'date.status.cancelled': 'यह तिथि रद्द हो गई।',\n 'date.status.cancelled.cta': 'कृपया अपना कैलेंडर अपडेट करें!',\n 'modal.subscribe.yahoo.h': 'Yahoo . में कैलेंडर जोड़ें',\n 'modal.subscribe.yahoo.text': '
  1. Yahoo कैलेंडर खोलें।
  2. \"कृती\" टैब पर क्लिक करें।
  3. \"इतर कॅलेंडर्सचे अनुसरण करा\" चुनें।
  4. एक नाम चुनें और अपने क्लिपबोर्ड से URL को URL फ़ील्ड में पेस्ट करें।
',\n 'modal.subscribe.yahoo.button': 'याहू कैलेंडर खोलें',\n close: 'बंद करना',\n continue: 'जारी रखें',\n cancel: 'रद्द करना',\n expired: 'खत्म हो चुका',\n recurring: 'पुनरावर्ती',\n thankyou: 'धन्यवाद',\n submit: 'जमा करें',\n 'label.share.email': 'ईमेल के माध्यम से साझा करें',\n 'label.share.copy': 'लिंक कॉपी करें',\n 'label.share.copied': 'कॉपी हो गया',\n 'label.share.email.subject': 'इस तारीख को याद रखें',\n 'form.error.required': 'आपने सभी आवश्यक फ़ील्ड सही ढंग से नहीं भरी हैं',\n 'form.error.sending': 'आपका जवाब भेजते समय एक समस्या हुई। कृपया बाद में पुनः प्रयास करें',\n 'form.success': 'सफलतापूर्वक भेजा गया!'\n },\n pl: {\n 'label.addtocalendar': 'Dodaj do kalendarza',\n ical: 'Plik iCal',\n ...calendarNames,\n 'modal.button.default': 'Kliknij mnie',\n 'modal.webview.ical.h': 'Otwórz przeglądarkę',\n 'modal.webview.ical.text': 'Niestety, przeglądarki in-app mają problemy ze sposobem, w jaki generujemy plik kalendarza.',\n 'modal.clipboard.text': 'Automatycznie skopiowaliśmy magiczny adres URL do schowka.',\n 'modal.webview.ical.steps': '
  1. Otwórz inną przeglądarkę w swoim telefonie, ...
  2. Wklej zawartość schowka i ruszaj.
',\n 'modal.opensafari.ical.h': 'Otwórz Safari',\n 'modal.opensafari.ical.text': 'Niestety iOS ma pewne problemy z generowaniem i otwieraniem pliku kalendarza poza Safari.',\n 'modal.opensafari.ical.steps': '
  1. Otwórz Safari, ...
  2. Wklej zawartość schowka i ruszaj.
',\n 'modal.multidate.h': 'To jest cykl imprez',\n 'modal.multidate.text': 'Dodawać po kolei poszczególne części:',\n 'date.status.cancelled': 'Ta data została odwołana.',\n 'date.status.cancelled.cta': 'Zaktualizuj swój kalendarz!',\n 'modal.subscribe.yahoo.h': 'Dodaj kalendarz do Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Otwórz kalendarz Yahoo.
  2. Kliknij na zakładkę \"Czynności\".
  3. Wybierz \"Obserwuj inne kalendarze\".
  4. Wybierz nazwę i wklej adres URL ze schowka w polu URL.
',\n 'modal.subscribe.yahoo.button': 'Otwórz kalendarz Yahoo',\n close: 'Zamknij',\n continue: 'Kontynuować',\n cancel: 'Anuluj',\n expired: 'Wygasły',\n recurring: 'Powtarzający się',\n thankyou: 'Dziękuję',\n submit: 'Wyślij',\n 'label.share.email': 'Udostępnij przez e-mail',\n 'label.share.copy': 'Kopiuj link',\n 'label.share.copied': 'Skopiowane',\n 'label.share.email.subject': 'Zapamiętaj tę datę',\n 'form.error.required': 'Nie wypełniłeś wszystkich wymaganych pól poprawnie',\n 'form.error.sending': 'Wystąpił problem z wysłaniem twojej odpowiedzi. Spróbuj ponownie później',\n 'form.success': 'Wysłano pomyślnie!'\n },\n id: {\n 'label.addtocalendar': 'Tambahkan ke Kalender',\n ical: 'File iCal',\n ...calendarNames,\n 'modal.button.default': 'Klik saya',\n 'modal.webview.ical.h': 'Buka browser Anda',\n 'modal.webview.ical.text': 'Sayangnya, browser dalam aplikasi memiliki masalah dengan cara kami menghasilkan file kalender.',\n 'modal.clipboard.text': 'Kami telah secara otomatis menyalin URL ajaib ke clipboard Anda.',\n 'modal.webview.ical.steps': '
  1. Buka peramban lain pada ponsel Anda, ...
  2. Tempelkan konten clipboard dan pergi.
',\n 'modal.opensafari.ical.h': 'Buka Safari',\n 'modal.opensafari.ical.text': 'Sayangnya, iOS memiliki beberapa masalah dalam membuat dan membuka file kalender di luar Safari.',\n 'modal.opensafari.ical.steps': '
  1. Buka Safari, ...
  2. Tempelkan konten clipboard dan pergi.
',\n 'modal.multidate.h': 'Ini adalah rangkaian acara',\n 'modal.multidate.text': 'Tambahkan masing-masing bagian satu per satu:',\n 'date.status.cancelled': 'Tanggal ini dibatalkan.',\n 'date.status.cancelled.cta': 'Perbarui kalender Anda!',\n 'modal.subscribe.yahoo.h': 'Tambahkan kalender ke Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Buka kalender Yahoo.
  2. Klik pada tab \"Tindakan\".
  3. Pilih \"Ikuti Kalender Lain\".
  4. Pilih nama dan tempelkan URL dari clipboard Anda ke bidang URL.
',\n 'modal.subscribe.yahoo.button': 'Buka kalender Yahoo',\n close: 'Tutup',\n continue: 'Lanjutkan',\n cancel: 'Batal',\n expired: 'Kedaluwarsa',\n recurring: 'Berulang',\n thankyou: 'Terima kasih',\n submit: 'Kirim',\n 'label.share.email': 'Bagikan via email',\n 'label.share.copy': 'Salin tautan',\n 'label.share.copied': 'Tersalin',\n 'label.share.email.subject': 'Ingat tanggal ini',\n 'form.error.required': 'Kamu belum mengisi semua kolom yang diperlukan dengan benar',\n 'form.error.sending': 'Ada masalah saat mengirim jawabanmu. Coba lagi nanti',\n 'form.success': 'Berhasil terkirim!'\n },\n no: {\n 'label.addtocalendar': 'Legg til i kalenderen',\n ical: 'iCal-fil',\n ...calendarNames,\n 'modal.button.default': 'Klikk på meg',\n 'modal.webview.ical.h': 'Åpne nettleseren din',\n 'modal.webview.ical.text': 'Dessverre har nettlesere i appen problemer med måten vi genererer kalenderfilen på.',\n 'modal.clipboard.text': 'Vi kopierte automatisk en magisk URL til utklippstavlen din.',\n 'modal.webview.ical.steps': '
  1. Åpne en annen nettleser på telefonen, ...
  2. Lim inn innholdet på utklippstavlen og gå.
',\n 'modal.opensafari.ical.h': 'Åpne Safari',\n 'modal.opensafari.ical.text': 'Dessverre har iOS noen problemer med å generere og åpne kalenderfilen utenfor Safari.',\n 'modal.opensafari.ical.steps': '
  1. Åpne Safari, ...
  2. Lim inn innholdet på utklippstavlen og gå.
',\n 'modal.multidate.h': 'Dette er en avtaleserie',\n 'modal.multidate.text': 'Legg til de enkelte datoene i kalenderen din i rekkefølge:',\n 'date.status.cancelled': 'Denne datoen ble avlyst.',\n 'date.status.cancelled.cta': 'Oppdater kalenderen din!',\n 'modal.subscribe.yahoo.h': 'Legg til kalender til Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Åpne Yahoo-kalenderen.
  2. Klikk på «Handlinger»-fanen.
  3. Velg «Følg andre kalendere».
  4. Velg et navn og lim inn URL-en fra utklippstavlen i URL-feltet.
',\n 'modal.subscribe.yahoo.button': 'Åpne Yahoo-kalenderen',\n close: 'Lukk',\n continue: 'Fortsette',\n cancel: 'Avbryt',\n expired: 'Utløpt',\n recurring: 'Tilbakevendende',\n thankyou: 'Takk',\n submit: 'Send inn',\n 'label.share.email': 'Del via e-post',\n 'label.share.copy': 'Kopier lenke',\n 'label.share.copied': 'Kopiert',\n 'label.share.email.subject': 'Husk denne datoen',\n 'form.error.required': 'Du har ikke fylt ut alle de nødvendige feltene riktig',\n 'form.error.sending': 'Det oppsto et problem med å sende svaret ditt. Vennligst prøv igjen senere',\n 'form.success': 'Sendt suksessfullt!'\n },\n fi: {\n 'label.addtocalendar': 'Lisää kalenteriin',\n ical: 'iCal-tiedosto',\n ...calendarNames,\n 'modal.button.default': 'Klikkaa minua',\n 'modal.webview.ical.h': 'Avaa selain',\n 'modal.webview.ical.text': 'Valitettavasti sovelluksen sisäisillä selaimilla on ongelmia kalenteritiedoston luomisessa.',\n 'modal.clipboard.text': 'Olemme automaattisesti kopioineet maagisen URL-osoitteen leikepöydällesi.',\n 'modal.webview.ical.steps': '
  1. Avaa toinen selain puhelimessasi., ...
  2. liitä leikepöydän sisältö ja lähde.
',\n 'modal.opensafari.ical.h': 'Avaa Safari',\n 'modal.opensafari.ical.text': 'Valitettavasti iOS:llä on ongelmia kalenteritiedoston luomisessa ja avaamisessa Safarin ulkopuolella.',\n 'modal.opensafari.ical.steps': '
  1. Avaa Safari, ...
  2. liitä leikepöydän sisältö ja lähde.
',\n 'modal.multidate.h': 'Tämä on tapahtumasarja',\n 'modal.multidate.text': 'Lisää yksittäiset osat yksi kerrallaan:',\n 'date.status.cancelled': 'Tämä päivämäärä peruttiin.',\n 'date.status.cancelled.cta': 'Päivitä kalenterisi!',\n 'modal.subscribe.yahoo.h': 'Lisää kalenteri Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Avaa Yahoo-kalenteri.
  2. Napsauta \"Toiminnot\"-välilehteä.
  3. Valitse \"Seuraa muiden kalentereita\".
  4. Valitse nimi ja liitä URL-osoite leikepöydältäsi URL-kenttään.
',\n 'modal.subscribe.yahoo.button': 'Avaa Yahoo-kalenteri',\n close: 'Sulje',\n continue: 'Jatkaa',\n cancel: 'Peruuta',\n expired: 'Vanhentunut',\n recurring: 'Toistuva',\n thankyou: 'Kiitos',\n submit: 'Lähetä',\n 'label.share.email': 'Jaa sähköpostitse',\n 'label.share.copy': 'Kopioi linkki',\n 'label.share.copied': 'Kopioitu',\n 'label.share.email.subject': 'Muista tämä päivämäärä',\n 'form.error.required': 'Et täyttänyt kaikkia vaadittuja kenttiä oikein',\n 'form.error.sending': 'Vastauksen lähettämisessä ilmeni ongelma. Yritä myöhemmin uudelleen',\n 'form.success': 'Lähetetty onnistuneesti!'\n },\n sv: {\n 'label.addtocalendar': 'Lägg till i kalender',\n ical: 'iCal-fil',\n ...calendarNames,\n 'modal.button.default': 'Klicka på mig',\n 'modal.webview.ical.h': 'Öppna din webbläsare',\n 'modal.webview.ical.text': 'Tyvärr har webbläsare i appen problem med hur vi genererar kalenderfilen.',\n 'modal.clipboard.text': 'Vi har automatiskt kopierat en magisk URL till ditt klippblock.',\n 'modal.webview.ical.steps': '
  1. Öppna en annan webbläsare på telefonen, ...
  2. Insätt innehållet i klippbordet och kör.
',\n 'modal.opensafari.ical.h': 'Öppna Safari',\n 'modal.opensafari.ical.text': 'Tyvärr har iOS vissa problem med att generera och öppna kalenderfilen utanför Safari.',\n 'modal.opensafari.ical.steps': '
  1. Öppna Safari, ...
  2. Insätt innehållet i klippbordet och kör.
',\n 'modal.multidate.h': 'Detta är en evenemangsserie',\n 'modal.multidate.text': 'Lägg till de enskilda delarna en efter en:',\n 'date.status.cancelled': 'Detta datum har ställts in.',\n 'date.status.cancelled.cta': 'Uppdatera din kalender!',\n 'modal.subscribe.yahoo.h': 'Lägg till kalender i Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Öppna Yahoo-kalendern.
  2. Klicka på fliken \"Åtgärder\".
  3. Välj \"Följ andra kalendrar\".
  4. Välj ett namn och klistra in URL:en från klippbordet i URL-fältet.
',\n 'modal.subscribe.yahoo.button': 'Öppna Yahoo-kalendern',\n close: 'Stäng',\n continue: 'Fortsätta',\n cancel: 'Avbryt',\n expired: 'Utgånget',\n recurring: 'Återkommande',\n thankyou: 'Tack',\n submit: 'Skicka',\n 'label.share.email': 'Dela via e-post',\n 'label.share.copy': 'Kopiera länk',\n 'label.share.copied': 'Kopierat',\n 'label.share.email.subject': 'Kom ihåg detta datum',\n 'form.error.required': 'Du har inte fyllt i alla nödvändiga fält korrekt',\n 'form.error.sending': 'Det uppstod ett problem när ditt svar skickades. Försök igen senare',\n 'form.success': 'Skickat framgångsrikt!'\n },\n cs: {\n 'label.addtocalendar': 'Přidat do kalendáře',\n ical: 'Soubor iCal',\n ...calendarNames,\n 'modal.button.default': 'Klikněte na mě',\n 'modal.webview.ical.h': 'Otevřete prohlížeč',\n 'modal.webview.ical.text': 'Prohlížeče v aplikacích mají bohužel problémy se způsobem generování souboru kalendáře.',\n 'modal.clipboard.text': 'Do schránky jsme automaticky zkopírovali kouzelnou adresu URL.',\n 'modal.webview.ical.steps': '
  1. Otevření jiného prohlížeče v telefonu, ...
  2. Vložte obsah schránky a přejděte.
',\n 'modal.opensafari.ical.h': 'Otevřít Safari',\n 'modal.opensafari.ical.text': 'Bohužel má iOS nějaké problémy s generováním a otevíráním souboru kalendáře mimo Safari.',\n 'modal.opensafari.ical.steps': '
  1. Otevřít Safari, ...
  2. Vložte obsah schránky a přejděte.
',\n 'modal.multidate.h': 'Jedná se o sérii událostí',\n 'modal.multidate.text': 'Přidávejte jednotlivé díly jeden po druhém:',\n 'date.status.cancelled': 'Toto datum bylo zrušeno.',\n 'date.status.cancelled.cta': 'Aktualizujte svůj kalendář!',\n 'modal.subscribe.yahoo.h': 'Přidat kalendář do Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Otevřete kalendář Yahoo.
  2. Klikněte na kartu \"Akce\".
  3. Vyberte možnost \"Sledovat další kalendáře\".
  4. Vyberte název a vložte adresu URL ze schránky do pole URL.
',\n 'modal.subscribe.yahoo.button': 'Otevřete kalendář Yahoo',\n close: 'Zavřít',\n continue: 'Pokračovat',\n cancel: 'Storno',\n expired: 'Platnost vypršela',\n recurring: 'Opakující se',\n thankyou: 'Děkuji',\n submit: 'Odeslat',\n 'label.share.email': 'Sdílet e-mailem',\n 'label.share.copy': 'Kopírovat odkaz',\n 'label.share.copied': 'Zkopírováno',\n 'label.share.email.subject': 'Zapamatuj si tento termín',\n 'form.error.required': 'Nevyplnil jsi správně všechna požadovaná pole',\n 'form.error.sending': 'Při odesílání tvé odpovědi došlo k problému. Zkus to prosím později znovu',\n 'form.success': 'Úspěšně odesláno!'\n },\n ja: {\n 'label.addtocalendar': 'カレンダーに追加',\n ical: 'iCalファイル',\n ...calendarNames,\n 'modal.button.default': 'クリックしてください',\n 'modal.webview.ical.h': 'ブラウザを起動する',\n 'modal.webview.ical.text': '残念ながら、アプリ内ブラウザは、カレンダーファイルの生成方法に問題があります。',\n 'modal.clipboard.text': '魔法のURLを自動的にクリップボードにコピーしています。',\n 'modal.webview.ical.steps': '
  1. スマートフォンで別のブラウザを起動する, ...
  2. クリップボードの内容を貼り付けて行く。
',\n 'modal.opensafari.ical.h': 'オープンSafari',\n 'modal.opensafari.ical.text': '残念ながら、iOS では、Safari の外でカレンダー ファイルを生成したり開いたりする際にいくつかの問題があります。',\n 'modal.opensafari.ical.steps': '
  1. オープンSafari, ...
  2. クリップボードの内容を貼り付けて行く。
',\n 'modal.multidate.h': 'イベントシリーズです',\n 'modal.multidate.text': '個々のパーツを一つずつ追加していく:',\n 'date.status.cancelled': 'この日はキャンセルになりました。',\n 'date.status.cancelled.cta': 'カレンダーを更新する!',\n 'modal.subscribe.yahoo.h': 'Yahooにカレンダーを追加する',\n 'modal.subscribe.yahoo.text': '
  1. Yahooカレンダーを開く。
  2. [実行] タブをクリックします。
  3. [その他のカレンダーのフォロー] を選択します。
  4. 名前を決めて、クリップボードにあるURLをURL欄に貼り付けます。
',\n 'modal.subscribe.yahoo.button': 'Yahooカレンダーを開く',\n close: '閉じる',\n continue: '続ける',\n cancel: 'キャンセル',\n expired: '期限切れ',\n recurring: '繰り返し',\n thankyou: 'ありがとう',\n submit: '送信',\n 'label.share.email': 'メールで共有',\n 'label.share.copy': 'リンクをコピー',\n 'label.share.copied': 'コピー済み',\n 'label.share.email.subject': 'この日付を覚えておいて',\n 'form.error.required': '必要なフィールドをすべて正しく入力していません',\n 'form.error.sending': 'あなたの回答を送信する際に問題が発生しました。後で再試行してください',\n 'form.success': '正常に送信されました!'\n },\n it: {\n 'label.addtocalendar': 'Aggiungi al calendario',\n ical: 'File iCal',\n ...calendarNames,\n 'modal.button.default': 'Clicca su di me',\n 'modal.webview.ical.h': 'Aprire il browser',\n 'modal.webview.ical.text': 'Purtroppo i browser in-app hanno problemi con il modo in cui generiamo il file del calendario.',\n 'modal.clipboard.text': 'Abbiamo copiato automaticamente un URL magico negli appunti.',\n 'modal.webview.ical.steps': '
  1. Aprire un altro browser sul cellulare, ...
  2. Incollare il contenuto degli appunti e partire.
',\n 'modal.opensafari.ical.h': 'Aprire Safari',\n 'modal.opensafari.ical.text': \"Sfortunatamente, iOS ha alcuni problemi nella generazione e nell'apertura del file del calendario al di fuori di Safari.\",\n 'modal.opensafari.ical.steps': '
  1. Aprire Safari, ...
  2. Incollare il contenuto degli appunti e partire.
',\n 'modal.multidate.h': 'Questa è una serie di eventi',\n 'modal.multidate.text': 'Aggiungere le singole parti una per una:',\n 'date.status.cancelled': 'La data è stata annullata.',\n 'date.status.cancelled.cta': 'Aggiornare il calendario!',\n 'modal.subscribe.yahoo.h': 'Aggiungi il calendario a Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Aprire il calendario di Yahoo.
  2. Fare clic sulla scheda \"Azioni\".
  3. Selezionare \"Segui altri calendari\".
  4. Scegliere un nome e incollare l\\'URL dagli appunti nel campo URL.
',\n 'modal.subscribe.yahoo.button': 'Apri il calendario di Yahoo',\n close: 'Chiudere',\n continue: 'Continuare',\n cancel: 'Annulla',\n expired: 'Scaduta',\n recurring: 'Ricorrente',\n thankyou: 'Grazie',\n submit: 'Invia',\n 'label.share.email': 'Condividi via Email',\n 'label.share.copy': 'Copia il link',\n 'label.share.copied': 'Copiato',\n 'label.share.email.subject': 'Ricorda questa data',\n 'form.error.required': 'Non hai compilato correttamente tutti i campi richiesti',\n 'form.error.sending': \"C'è stato un problema nell'invio della tua risposta. Prova di nuovo più tardi\",\n 'form.success': 'Inviato con successo!'\n },\n ko: {\n 'label.addtocalendar': '캘린더에 추가',\n ical: 'iCal 파일',\n ...calendarNames,\n 'modal.button.default': '클릭 해주세요',\n 'modal.webview.ical.h': '브라우저 열기',\n 'modal.webview.ical.text': '불행히도 인앱 브라우저는 캘린더 파일을 생성하는 방식에 문제가 있습니다.',\n 'modal.clipboard.text': '매직 URL을 클립보드에 자동으로 복사했습니다.',\n 'modal.webview.ical.steps': '
  1. 휴대전화에서 다른 브라우저 열기, ...
  2. 클립보드 내용을 붙여넣고 이동합니다.
',\n 'modal.opensafari.ical.h': 'Safari 열기',\n 'modal.opensafari.ical.text': '안타깝게도 iOS에는 Safari 외부에서 캘린더 파일을 생성하고 여는 데 몇 가지 문제가 있습니다.',\n 'modal.opensafari.ical.steps': '
  1. Safari 열기, ...
  2. 클립보드 내용을 붙여넣고 이동합니다.
',\n 'modal.multidate.h': '이벤트 시리즈입니다',\n 'modal.multidate.text': '개별 부품을 하나씩 추가:',\n 'date.status.cancelled': '이 날짜는 취소되었습니다.',\n 'date.status.cancelled.cta': '캘린더를 업데이트하세요!',\n 'modal.subscribe.yahoo.h': 'Yahoo에 캘린더 추가',\n 'modal.subscribe.yahoo.text': '
  1. Yahoo 캘린더를 엽니다.
  2. \"동작\" 탭을 클릭합니다.
  3. \"다른 일정관리 팔로우\"를 선택합니다.
  4. 이름을 선택하고 클립보드의 URL을 URL 필드에 붙여넣습니다.
',\n 'modal.subscribe.yahoo.button': '야후 캘린더 열기',\n close: '닫다',\n continue: '계속하다',\n cancel: '취소',\n expired: '만료됨',\n recurring: '되풀이',\n thankyou: '감사합니다',\n submit: '제출하기',\n 'label.share.email': '이메일로 공유하기',\n 'label.share.copy': '링크 복사하기',\n 'label.share.copied': '복사됨',\n 'label.share.email.subject': '이 날짜를 기억하세요',\n 'form.error.required': '필수 필드를 모두 올바르게 채우지 않았습니다',\n 'form.error.sending': '응답을 보내는 데 문제가 발생했습니다. 나중에 다시 시도해주세요',\n 'form.success': '성공적으로 전송됨!'\n },\n vi: {\n 'label.addtocalendar': 'Thêm vào Lịch',\n ical: 'Tệp iCal',\n ...calendarNames,\n 'modal.button.default': 'Nhấp vào đây',\n 'modal.webview.ical.h': 'Mở trình duyệt của bạn',\n 'modal.webview.ical.text': 'Rất tiếc, các trình duyệt trong ứng dụng gặp sự cố với cách chúng tôi tạo tệp lịch.',\n 'modal.clipboard.text': 'Chúng tôi đã tự động sao chép một URL ma thuật vào khay nhớ tạm của bạn.',\n 'modal.webview.ical.steps': '
  1. Mở trình duyệt khác trên điện thoại của bạn, ...
  2. Dán nội dung khay nhớ tạm và bắt đầu.
',\n 'modal.opensafari.ical.h': 'Mở Safari',\n 'modal.opensafari.ical.text': 'Rất tiếc, iOS gặp một số sự cố khi tạo và mở tệp lịch bên ngoài Safari.',\n 'modal.opensafari.ical.steps': '
  1. Mở Safari, ...
  2. Dán nội dung khay nhớ tạm và bắt đầu.
',\n 'modal.multidate.h': 'Đây là một chuỗi sự kiện',\n 'modal.multidate.text': 'Thêm từng phần riêng lẻ một:',\n 'date.status.cancelled': 'Ngày này đã bị hủy.',\n 'date.status.cancelled.cta': 'Cập nhật lịch của bạn!',\n 'modal.subscribe.yahoo.h': 'Thêm lịch vào Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Mở Lịch Yahoo.
  2. Nhấp vào tab \"Hành động\".
  3. Chọn \"Theo dõi các Lịch khác\".
  4. Chọn tên và dán URL từ khay nhớ tạm của bạn vào trường URL.
',\n 'modal.subscribe.yahoo.button': 'Mở lịch Yahoo',\n close: 'Đóng',\n continue: 'Tiếp tục',\n cancel: 'Hủy bỏ',\n expired: 'Hết hạn',\n recurring: 'Định kỳ',\n thankyou: 'Cảm ơn',\n submit: 'Gửi',\n 'label.share.email': 'Chia sẻ qua Email',\n 'label.share.copy': 'Sao chép liên kết',\n 'label.share.copied': 'Đã sao chép',\n 'label.share.email.subject': 'Ghi nhớ ngày này',\n 'form.error.required': 'Bạn chưa điền đúng tất cả các trường bắt buộc',\n 'form.error.sending': 'Có sự cố khi gửi phản hồi của bạn. Vui lòng thử lại sau',\n 'form.success': 'Gửi thành công!'\n },\n ro: {\n 'label.addtocalendar': 'Adauga In Calendar',\n ical: 'Fisier iCal',\n ...calendarNames,\n 'modal.button.default': 'Apasa-ma',\n 'modal.webview.ical.h': 'Deschide browserul',\n 'modal.webview.ical.text': 'Din pacate, browserele din aplicatie au probleme cu generarea de fisiere pentru calendar.',\n 'modal.clipboard.text': 'Ti-am copiat automat un URL magic in clipboard',\n 'modal.webview.ical.steps': '
  1. Deschide un alt browser pe telefonul tau, ...
  2. Lipeste continutul din clipboard si continua.
',\n 'modal.opensafari.ical.h': 'Deschide Safari',\n 'modal.opensafari.ical.text': 'Din păcate, iOS are unele probleme la generarea și deschiderea fișierului calendar în afara Safari.',\n 'modal.opensafari.ical.steps': '
  1. Deschides Safari, ...
  2. Lipeste continutul din clipboard si continua.
',\n 'modal.multidate.h': 'Aceasta este o serie de evenimente',\n 'modal.multidate.text': 'Adauga evenimentele individuale una cate una:',\n 'date.status.cancelled': 'Aceasta data a fost anulata.',\n 'date.status.cancelled.cta': 'Te rugam sa-ti updatezi calendarul!',\n 'modal.subscribe.yahoo.h': 'Adauga Calendar in Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Deschide acum calendarul Yahoo.
  2. Apasa pe tab-ul de \"Actiuni\".
  3. Apasa \"Urmareste alte calendare\".
  4. Seteaza un nume si lipeste continutul din clipboard in casuta cu url.
',\n 'modal.subscribe.yahoo.button': 'Deschideți calendarul Yahoo',\n close: 'Inchide',\n continue: 'Continua',\n cancel: 'Anuleaza',\n expired: 'Expirat',\n recurring: 'Recurente',\n thankyou: 'Mulțumesc',\n submit: 'Trimite',\n 'label.share.email': 'Distribuie prin e-mail',\n 'label.share.copy': 'Copiază linkul',\n 'label.share.copied': 'Copiat',\n 'label.share.email.subject': 'Ține minte această dată',\n 'form.error.required': 'Nu ai completat corect toate câmpurile necesare',\n 'form.error.sending': 'A apărut o problemă la trimiterea răspunsului tău. Încearcă din nou mai târziu',\n 'form.success': 'Trimis cu succes!'\n },\n fa: {\n 'label.addtocalendar': 'افزودن به تقویم',\n ical: 'پرونده iCal',\n ...calendarNames,\n 'modal.button.default': 'اینجا کلیک کنید',\n 'modal.webview.ical.h': 'مرورگر خود را باز کنید',\n 'modal.webview.ical.text': 'متاسفانه، مرورگرهای درون برنامه‌ای با نحوه تولید پرونده تقویم مشکل دارند.',\n 'modal.clipboard.text': 'ما به طور خودکار یک نشانی اینترنتی جادویی را در کلیپ‌بورد شما کپی کردیم.',\n 'modal.webview.ical.steps': '
  1. مرورگر دیگری را در گوشی خود باز کنید، ...
  2. محتوای کلیپ‌بورد را Paste کنید و Go را بزنید که آدرس باز شود.
',\n 'modal.opensafari.ical.h': 'سافاری را باز کنید',\n 'modal.opensafari.ical.text': 'متأسفانه iOS در تولید و باز کردن فایل تقویم خارج از سافاری مشکلاتی دارد.',\n 'modal.opensafari.ical.steps': '
  1. سافاری را باز کنید، ...
  2. محتوای کلیپ‌بورد را Paste کنید و Go را بزنید که آدرس باز شود.
',\n 'modal.multidate.h': 'این یک سری رویداد است',\n 'modal.multidate.text': 'رویدادهای شخصی را یکی یکی اضافه کنید:',\n 'date.status.cancelled': 'این تاریخ لغو شد',\n 'date.status.cancelled.cta': 'لطفا تقویم خود را به‌روز کنید!',\n 'modal.subscribe.yahoo.h': 'افزودن تقویم به یاهو',\n 'modal.subscribe.yahoo.text': '
  1. اکنون تقویم یاهو را باز کنید.
  2. روی زبانه «Actions» کلیک کنید.
  3. روی «Follow Other Calendars» ضربه بزنید.
  4. یک نام وارد کنید و محتوای کلیپ‌بورد را در قسمت url قرار دهید.
',\n 'modal.subscribe.yahoo.button': 'تقویم یاهو را باز کنید',\n close: 'بستن',\n continue: 'ادامه دادن',\n cancel: 'لغو',\n expired: 'منقضی شده',\n thankyou: 'ممنون',\n submit: 'ارسال',\n 'label.share.email': 'اشتراک‌گذاری از طریق ایمیل',\n 'label.share.copy': 'کپی لینک',\n 'label.share.copied': 'کپی شد',\n 'label.share.email.subject': 'این تاریخ را به یاد داشته باشید',\n 'form.error.required': 'شما همه فیلدهای لازم را به درستی پر نکرده‌اید',\n 'form.error.sending': 'مشکلی در ارسال پاسخ شما وجود داشت. لطفا بعدا دوباره تلاش کنید',\n 'form.success': 'با موفقیت ارسال شد!'\n },\n et: {\n 'label.addtocalendar': 'Lisa kalendrisse',\n ical: 'iCal fail',\n ...calendarNames,\n 'modal.button.default': 'Kliki siia',\n 'modal.webview.ical.h': 'Ava oma veebilehitseja',\n 'modal.webview.ical.text': 'Kahjuks on rakendusesisestel veebilehitsejatel probleeme kalendrifailide loomisega.',\n 'modal.clipboard.text': 'Kalendri veebi aadress on automaatselt kopeeritud sinu lõikelauale.',\n 'modal.webview.ical.steps': '
  1. Ava teine veebilehitseja oma telefonis, ...
  2. Kleebi lõikelaua sisu ning mine sellele lehele.
',\n 'modal.opensafari.ical.h': 'Ava Safari',\n 'modal.opensafari.ical.text': 'Kahjuks on iOS-il probleeme kalendrifaili genereerimise ja avamisega väljaspool Safarit.',\n 'modal.opensafari.ical.steps': '
  1. Ava Safari, ...
  2. Kleebi lõikelaua sisu ning mine sellele lehele.
',\n 'modal.multidate.h': 'See on sündmuste seeria',\n 'modal.multidate.text': 'Ava üksikud sündmused ükshaaval:',\n 'date.status.cancelled': 'See kuupäev on tühistatud.',\n 'date.status.cancelled.cta': 'Palun uuenda oma kalendrit!',\n 'modal.subscribe.yahoo.h': 'Lisa kalender Yahoo-sse',\n 'modal.subscribe.yahoo.text': '
  1. Ava oma Yahoo kalender.
  2. Kliki \"Actions\" vahelehte.
  3. Vajuta \"Follow Other Calendars\".
  4. Määra nimi ning lisa lõikelaua sisu URL (veebi aadressi) väljale.
',\n 'modal.subscribe.yahoo.button': 'Avage Yahoo kalender',\n close: 'Sulge',\n continue: 'Jätkama',\n cancel: 'Tühista',\n expired: 'Aegunud',\n thankyou: 'Aitäh',\n submit: 'Saada',\n 'label.share.email': 'Jaga e-posti teel',\n 'label.share.copy': 'Kopeeri link',\n 'label.share.copied': 'Kopeeritud',\n 'label.share.email.subject': 'Pane see kuupäev kirja',\n 'form.error.required': 'Sa pole kõiki nõutavaid välju korrektselt täitnud',\n 'form.error.sending': 'Sinu vastuse saatmisel tekkis probleem. Palun proovi hiljem uuesti',\n 'form.success': 'Edukalt saadetud!'\n },\n uk: {\n 'label.addtocalendar': 'Додати до календаря',\n ical: 'Файл iCal',\n ...calendarNames,\n 'modal.button.default': 'Натисни мене',\n 'modal.webview.ical.h': 'Відкрийте ваш браузер',\n 'modal.webview.ical.text': 'На жаль, браузери у додатках мають проблеми з обробкою файлу календаря, який ми створюємо.',\n 'modal.clipboard.text': 'Ми автоматично скопіювали магічний URL у ваш буфер обміну.',\n 'modal.webview.ical.steps': '
  1. Відкрийте інший браузер на своєму телефоні, ...
  2. Вставте скопійований вміст і перейдіть.
',\n 'modal.opensafari.ical.h': 'Відкрити Safari',\n 'modal.opensafari.ical.text': 'На жаль, iOS має проблеми з генерацією та відкриттям файлу календаря поза Safari.',\n 'modal.opensafari.ical.steps': '
  1. Відкрийте Safari, ...
  2. Вставте скопійований вміст і перейдіть.
',\n 'modal.multidate.h': 'Це серія подій',\n 'modal.multidate.text': 'Додайте окремі події по одній:',\n 'date.status.cancelled': 'Цю дату скасовано.',\n 'date.status.cancelled.cta': 'Оновіть свій календар, будь ласка!',\n 'modal.subscribe.yahoo.h': 'Додати календар до Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Відкрийте зараз календар Yahoo.
  2. Натисніть вкладку «Дії».
  3. Натисніть «Підписатися на інші календарі».
  4. Введіть назву та вставте вміст буфера обміну в поле URL.
',\n 'modal.subscribe.yahoo.button': 'Відкрити Yahoo Календар',\n close: 'Закрити',\n continue: 'Продовжити',\n cancel: 'Скасувати',\n expired: 'Термін дії закінчився',\n recurring: 'Повторюваний',\n thankyou: 'Дякуємо',\n submit: 'Відправити',\n 'label.rsvp': 'RSVP',\n 'label.share.email': 'Поділитися через Email',\n 'label.share.copy': 'Скопіювати посилання',\n 'label.share.copied': 'Скопійовано',\n 'label.share.email.subject': 'Збережіть цю подію',\n 'form.error.required': \"Ви не заповнили всі обов'язкові поля\",\n 'form.error.sending': 'Сталася проблема з відправленням вашої відповіді. Спробуйте ще раз пізніше.',\n 'form.success': 'Успішно відправлено!'\n }\n};\nconst availableLanguages = Object.keys(i18nStrings);\nfunction atcb_translate_hook(identifier, data) {\n if (data.customLabels && data.customLabels[`${identifier}`] && data.customLabels[`${identifier}`] !== '') {\n return atcb_rewrite_html_elements(data.customLabels[`${identifier}`]);\n } else {\n return atcb_translate(identifier, data.language);\n }\n}\nfunction atcb_translate(identifier, language) {\n if (!language) {\n language = 'en';\n }\n if (i18nStrings[`${language}`][`${identifier}`]) {\n return i18nStrings[`${language}`][`${identifier}`];\n }\n if (language !== 'en') {\n return atcb_translate(identifier, 'en');\n }\n return identifier;\n}\nlet atcbInitialGlobalInit = false;\nlet atcbBtnCount = 0;\nconst lightModeMutationObserver = [];\nconst template = `
`;\nif (atcbIsBrowser()) {\n class AddToCalendarButton extends HTMLElement {\n constructor() {\n super();\n this._initialized = new Promise(resolve => this._initializedResolver = resolve);\n const elem = document.createElement('template');\n elem.innerHTML = template;\n this.attachShadow({\n mode: 'open',\n delegateFocus: true\n });\n this.shadowRoot.append(elem.content.cloneNode(true));\n this.state = {\n initializing: false,\n initialized: false,\n ready: false,\n updatePending: false\n };\n this.data = {};\n this.error = false;\n }\n connectedCallback() {\n if (!this.initializing) {\n this.initializing = true;\n setTimeout(() => this.initializeComponent(), 0);\n }\n }\n async initializeComponent() {\n if (this.state.ready) {\n return;\n }\n this.state.initializing = true;\n const debugVal = this.getAttribute('debug');\n this.debug = this.hasAttribute('debug') && (!debugVal || debugVal === 'true' || debugVal === '') ? true : false;\n if (this.hasAttribute('proOverride') || this.hasAttribute('prooverride')) {\n let proOverrideVal = null;\n if (this.hasAttribute('proOverride') && this.getAttribute('proOverride') !== '') {\n proOverrideVal = this.getAttribute('proOverride');\n } else {\n proOverrideVal = this.getAttribute('prooverride');\n }\n this.proOverride = !proOverrideVal || proOverrideVal === 'true' || proOverrideVal === '' ? true : false;\n }\n try {\n if (this.hasAttribute('proKey') && this.getAttribute('proKey') !== '' || this.hasAttribute('prokey') && this.getAttribute('prokey') !== '') {\n if (this.hasAttribute('proKey') && this.getAttribute('proKey') !== '') {\n this.data = await atcb_get_pro_data(this.getAttribute('proKey'), this);\n } else {\n this.data = await atcb_get_pro_data(this.getAttribute('prokey'), this);\n }\n if (this.data.proKey) this.proKey = this.data.proKey;\n } else {\n this.data.proKey = '';\n this.data = await atcb_process_inline_data(this, this.debug);\n }\n } catch (e) {\n if (this.debug) {\n console.error(e);\n atcb_render_debug_msg(this.shadowRoot, e);\n }\n this.state.initializing = false;\n this.state.ready = true;\n return;\n }\n await this.initButton();\n this.state.initializing = false;\n this.state.initialized = true;\n this.state.ready = true;\n this._initializedResolver();\n return;\n }\n whenInitialized() {\n return this._initialized;\n }\n disconnectedCallback() {\n atcb_cleanup(this.shadowRoot, this.identifier);\n if (this.debug) {\n console.log('Add to Calendar Button \"' + this.identifier + '\" destroyed');\n }\n if (document.querySelectorAll('add-to-calendar-button').length === 0) {\n atcbBtnCount = 0;\n }\n }\n static get observedAttributes() {\n const observeAdditionally = ['instance', 'prokey', 'proKey', 'prooverride', 'proOverride'];\n if (this.proKey && this.proKey !== '') {\n return atcbWcProParams.map(element => {\n return element.toLowerCase();\n }).concat(observeAdditionally);\n }\n return atcbWcParams.map(element => {\n return element.toLowerCase();\n }).concat(observeAdditionally);\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (!this.state.ready) {\n return;\n }\n if (this.debug && this.state.initialized) {\n console.log(`${name}'s value has been changed from ${oldValue} to ${newValue}`);\n }\n if (!this.updatePending) {\n this.updatePending = true;\n setTimeout(() => this.updateComponent(), 0);\n }\n }\n async updateComponent() {\n if (!this.updatePending) return;\n this.data = {};\n this.shadowRoot.querySelector('.atcb-initialized').remove();\n const elem = document.createElement('template');\n elem.innerHTML = template;\n this.shadowRoot.append(elem.content.cloneNode(true));\n try {\n if (this.hasAttribute('proKey') && this.getAttribute('proKey') !== '') {\n this.data = await atcb_get_pro_data(this.getAttribute('proKey'), this);\n if (this.data.proKey) this.proKey = this.data.proKey;\n } else if (this.hasAttribute('prokey') && this.getAttribute('prokey') !== '') {\n this.data = await atcb_get_pro_data(this.getAttribute('prokey'), this);\n if (this.data.proKey) this.proKey = this.data.proKey;\n } else {\n this.data = await atcb_process_inline_data(this, this.debug);\n }\n } catch (e) {\n if (this.debug) {\n console.error(e);\n atcb_render_debug_msg(this.shadowRoot, e);\n }\n this.updatePending = false;\n return;\n }\n atcb_cleanup(this.shadowRoot, this.identifier);\n await this.initButton();\n this.updatePending = false;\n }\n async initButton() {\n if (!this.state.initialized) {\n atcbBtnCount = atcbBtnCount + 1;\n }\n if (this.identifier && this.identifier !== '') {\n this.data.identifier = this.identifier;\n } else {\n if (this.data.identifier && this.data.identifier !== '') {\n if (!/^[\\w-]+$/.test(this.data.identifier)) {\n this.data.identifier = '';\n if (this.debug) {\n let prefix = 'Add to Calendar Button';\n if (this.data.rsvp && Object.keys(this.data.rsvp).length > 0) {\n prefix = 'RSVP';\n }\n console.warn(prefix + ' generation: identifier invalid - using auto numbers instead');\n }\n } else {\n this.data.identifier = 'atcb-btn-' + this.data.identifier;\n }\n }\n if (this.data.identifier == null || this.data.identifier == '') {\n this.data.identifier = 'atcb-btn-' + atcbBtnCount;\n }\n this.identifier = this.data.identifier;\n }\n this.setAttribute('atcb-button-id', this.data.identifier);\n try {\n this.style.visibility = 'visible';\n this.style.opacity = '1';\n this.style.position = 'relative';\n this.style.outline = 'none !important';\n await atcb_build_button(this.shadowRoot, this.data);\n return true;\n } catch (e) {\n if (this.debug) {\n console.error(e.message ? e.message : e);\n atcb_render_debug_msg(this.shadowRoot, e);\n }\n return false;\n }\n }\n }\n if (!customElements.get('add-to-calendar-button')) {\n customElements.define('add-to-calendar-button', AddToCalendarButton);\n }\n}\nasync function atcb_process_inline_data(el, debug = false) {\n let data;\n try {\n data = atcb_read_attributes(el);\n await atcb_check_required(data);\n } catch {\n const slotInput = el.innerHTML.trim();\n if (!slotInput) {\n throw new Error('Add to Calendar Button generation failed: No data provided.');\n }\n try {\n const atcbJsonInput = JSON.parse(atcb_secure_content(slotInput.replace(/(\\r\\n|\\n|\\r)/g, ''), false));\n await atcb_check_required(atcbJsonInput);\n data = atcbJsonInput;\n } catch (jsonError) {\n if (debug) {\n console.error(jsonError);\n }\n throw new Error('Add to Calendar Button generation failed: no data provided or missing required fields - see console logs for details');\n }\n }\n return data;\n}\nfunction atcb_read_attributes(el, params = atcbWcParams) {\n let data = {};\n for (let i = 0; i < params.length; i++) {\n let attr = params[`${i}`];\n if (el.hasAttribute(`${attr}`)) {\n let inputVal = atcb_secure_content(el.getAttribute(`${attr}`).replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false);\n let val;\n if (atcbWcBooleanParams.includes(attr)) {\n val = !inputVal || inputVal === '' || inputVal.toLowerCase() === 'true' ? true : false;\n } else if (atcbWcObjectParams.includes(attr)) {\n const cleanedInput = function () {\n if (!inputVal || inputVal === '') {\n return '{}';\n }\n if (inputVal.substring(0, 1) != '{') {\n return '{' + inputVal + '}';\n }\n return inputVal;\n }();\n val = JSON.parse(cleanedInput);\n } else if (atcbWcObjectArrayParams.includes(attr)) {\n const cleanedInput = function () {\n if (!inputVal || inputVal === '') {\n return '[]';\n }\n if (inputVal.substring(0, 1) != '[') {\n return '[' + inputVal + ']';\n }\n return inputVal;\n }();\n val = JSON.parse(cleanedInput);\n } else if (atcbWcArrayParams.includes(attr)) {\n const cleanedInput = function () {\n let newVal = inputVal;\n if (inputVal.includes('\"') || inputVal.includes(\"'\")) {\n if (inputVal.includes('[')) {\n newVal = inputVal.substring(2, inputVal.length - 2);\n } else {\n newVal = inputVal.substring(1, inputVal.length - 1);\n }\n }\n if (!inputVal.includes('|')) {\n newVal = newVal.replace(/\\s/g, '');\n }\n return newVal;\n }();\n if (cleanedInput.includes(\"','\")) {\n val = cleanedInput.split(\"','\");\n } else {\n val = cleanedInput.split('\",\"');\n }\n } else if (atcbWcNumberParams.includes(attr)) {\n val = parseInt(inputVal);\n } else {\n val = inputVal;\n }\n if (typeof val === 'object' && Object.keys(val).length === 0 || Array.isArray(val) && (val.length === 0 || val.length === 1 && val[0] === '')) {\n continue;\n }\n data[`${attr}`] = val;\n }\n }\n return data;\n}\nasync function atcb_build_button(host, data) {\n try {\n host.host.classList.add('add-to-calendar');\n data = await atcb_decorate_data(data);\n await atcb_validate(data);\n const rootObj = host.querySelector('.atcb-initialized');\n atcb_set_light_mode(host, data);\n rootObj.setAttribute('lang', data.language);\n atcb_load_css(host, rootObj, data);\n atcb_setup_state_management(data);\n atcb_set_global_event_listener(host, data);\n atcb_init_log(data.proKey, data.debug);\n if (!data.hidden) {\n if (typeof atcb_generate_rsvp_form === 'function' && data.rsvp && Object.keys(data.rsvp).length > 0) {\n if (!data.inlineRsvp) {\n await atcb_generate_rsvp_button(host, data);\n } else {\n await atcb_generate_rsvp_form(host, data, rootObj);\n }\n } else {\n atcb_generate_button(host, rootObj, data);\n }\n if (!data.hideRichData && !data.subscribe && data.name && data.dates[0].location && data.dates[0].startDate) {\n atcb_generate_rich_data(data, host.host);\n }\n }\n atcb_log_event('initialization', data.identifier, data.identifier);\n if (!data.proKey && data.hideBranding && !document.getElementById('atcb-reference')) {\n atcb_create_atcbl(document.body, false, false, true);\n }\n return true;\n } catch (e) {\n throw new Error(e.message);\n }\n}\nfunction atcb_cleanup(host, identifier) {\n atcb_close(host);\n atcb_unset_global_event_listener(identifier);\n const schemaEl = document.getElementById('atcb-schema-' + identifier);\n if (schemaEl) {\n schemaEl.remove();\n }\n Array.from(host.querySelectorAll('.atcb-debug-error-msg')).concat(Array.from(host.querySelectorAll('style'))).concat(Array.from(host.querySelectorAll('link'))).concat(Array.from(host.querySelectorAll('.atcb-placeholder'))).concat(Array.from(host.querySelectorAll('.atcb-button-wrapper'))).forEach(el => el.remove());\n delete atcbStates[`${identifier}`];\n}\nfunction atcb_set_light_mode(shadowRoot, data) {\n shadowRoot.host.classList.remove('atcb-dark', 'atcb-light', 'atcb-bodyScheme');\n const hostLightMode = function () {\n if (data.lightMode == 'bodyScheme') {\n if (document.body.classList.contains('atcb-dark') || document.documentElement.classList.contains('atcb-dark') || document.body.classList.contains('atcp-dark') || document.documentElement.classList.contains('atcp-dark') || document.body.classList.contains('dark') || document.documentElement.classList.contains('dark')) {\n return 'dark';\n } else {\n return 'light';\n }\n }\n return data.lightMode;\n }();\n shadowRoot.host.classList.add('atcb-' + hostLightMode);\n}\nfunction atcb_csp_nonce(host) {\n const cspnonceRegex = /[`'\"()[\\]{}<>\\s]/;\n if (!host.host.hasAttribute('cspnonce')) {\n return null;\n }\n if (cspnonceRegex.test(host.host.getAttribute('cspnonce'))) {\n throw new Error('cspnonce input contains forbidden characters.');\n }\n return host.host.getAttribute('cspnonce');\n}\nasync function atcb_load_css(host, rootObj = null, data) {\n const nonceVal = atcb_csp_nonce(host);\n if (!document.getElementById('atcb-global-style')) {\n const cssGlobalContent = document.createElement('style');\n cssGlobalContent.id = 'atcb-global-style';\n const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;\n cssGlobalContent.innerText = '.atcb-modal-no-scroll{overflow-y:hidden !important;-webkit-overflow-scrolling:touch;} body.atcb-modal-no-scroll{padding-right:' + scrollBarWidth + 'px;}.atcb-attribution{display:none;}';\n if (nonceVal) {\n cssGlobalContent.setAttribute('nonce', nonceVal);\n }\n document.head.append(cssGlobalContent);\n }\n const generalCssContent = document.createElement('style');\n const initWidth = data.inlineRsvp && data.rsvp && Object.keys(data.rsvp).length > 0 ? '100%' : 'fit-content';\n generalCssContent.innerText = `.atcb-initialized { display: block; position: relative; width: ${initWidth}; }.atcb-initialized.atcb-inline { display: inline-block; }.atcb-initialized.atcb-buttons-list { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--buttonslist-gap); }.atcb-hidden { display: none; }`;\n if (nonceVal) {\n generalCssContent.setAttribute('nonce', nonceVal);\n }\n host.prepend(generalCssContent);\n const overrideDefaultCss = function () {\n if (data.styleLight) {\n return ':host{' + atcb_secure_content(data.styleLight.replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false) + '}';\n }\n return '';\n }();\n const overrideDarkCss = function () {\n if (data.styleDark) {\n return ':host(.atcb-dark){' + atcb_secure_content(data.styleDark.replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false) + '}';\n }\n return '';\n }();\n if (data.customCss && data.customCss !== '') {\n const cssFile = document.createElement('link');\n cssFile.setAttribute('rel', 'stylesheet');\n cssFile.setAttribute('type', 'text/css');\n cssFile.setAttribute('href', data.customCss);\n if (nonceVal) {\n cssFile.setAttribute('nonce', nonceVal);\n }\n if (!rootObj) {\n await loadExternalCssAsynch(cssFile, host, null, nonceVal, null, false, false, overrideDefaultCss + overrideDarkCss);\n } else {\n const placeholder = document.createElement('div');\n placeholder.classList.add('atcb-placeholder');\n host.prepend(placeholder);\n const placeholderCssContent = document.createElement('style');\n placeholderCssContent.innerText = '.atcb-placeholder { background-color: #777; border-radius: 200px; height: 40px; opacity: .3; width: 150px; }';\n if (nonceVal) {\n placeholderCssContent.setAttribute('nonce', nonceVal);\n }\n host.prepend(placeholderCssContent);\n loadExternalCssAsynch(cssFile, host, rootObj, nonceVal, placeholder, data.inline, data.buttonsList, overrideDefaultCss + overrideDarkCss);\n }\n return;\n }\n if (data.buttonStyle !== 'none' && atcbCssTemplate[`${data.buttonStyle}`]) {\n const cssContent = document.createElement('style');\n if (nonceVal) {\n cssContent.setAttribute('nonce', nonceVal);\n }\n cssContent.innerText = atcbCssTemplate[`${data.buttonStyle}`] + overrideDefaultCss + overrideDarkCss;\n host.prepend(cssContent);\n }\n if (rootObj) {\n if (data.inline) {\n rootObj.style.display = 'inline-block';\n rootObj.classList.add('atcb-inline');\n } else {\n if (data.buttonsList) {\n rootObj.classList.add('atcb-buttons-list');\n }\n }\n rootObj.classList.remove('atcb-hidden');\n }\n}\nasync function loadExternalCssAsynch(cssFile, host, rootObj = null, nonceVal = null, placeholder = null, inline = false, buttonsList = false, overrideCss = '') {\n if (overrideCss !== '') {\n const cssContent = document.createElement('style');\n cssContent.innerText = overrideCss;\n if (nonceVal) {\n cssContent.setAttribute('nonce', nonceVal);\n }\n host.prepend(cssContent);\n }\n try {\n host.prepend(cssFile);\n await new Promise(resolve => {\n cssFile.onload = resolve;\n });\n if (rootObj) {\n if (placeholder) {\n placeholder.remove();\n }\n if (inline) {\n rootObj.style.display = 'inline-block';\n rootObj.classList.add('atcb-inline');\n } else {\n if (buttonsList) {\n rootObj.classList.add('atcb-buttons-list');\n }\n }\n rootObj.classList.remove('atcb-hidden');\n }\n } catch (e) {\n console.log(e);\n }\n}\nfunction atcb_render_debug_msg(host, error) {\n if (host.querySelector('.atcb-debug-error-msg')) return;\n const nonceVal = atcb_csp_nonce(host);\n const errorBanner = document.createElement('div');\n errorBanner.classList.add('atcb-debug-error-msg');\n const cssContent = document.createElement('style');\n cssContent.innerText = '.atcb-debug-error-msg { color: #bf2e2e; font-size: 12px; font-weight: bold; padding: 12px 15px; border: 2px solid #bf2e2e; max-width: 180px; border-radius: 13px; }';\n if (nonceVal) {\n cssContent.setAttribute('nonce', nonceVal);\n }\n host.prepend(cssContent);\n errorBanner.textContent = error;\n host.append(errorBanner);\n}\nasync function atcb_action(inputData, triggerElement, keyboardTrigger = false) {\n if (!atcbIsBrowser()) {\n return;\n }\n let data;\n try {\n data = await async function () {\n const cleanedInput = atcb_secure_content(inputData);\n if (cleanedInput.prokey && cleanedInput.prokey !== '') {\n cleanedInput.proKey = cleanedInput.prokey;\n }\n if (cleanedInput.proKey && cleanedInput.proKey !== '') {\n try {\n const proData = await atcb_get_pro_data(cleanedInput.proKey, null, cleanedInput);\n return proData;\n } catch (e) {\n throw new Error(e.message);\n }\n } else {\n return cleanedInput;\n }\n }();\n } catch (e) {\n console.error(e);\n return;\n }\n data.debug = data.debug === 'true';\n try {\n await atcb_check_required(data);\n } catch (e) {\n if (data.debug) {\n console.error(e);\n }\n throw new Error('Add to Calendar Button generation failed: no data provided or missing required fields - see console logs for details');\n }\n data = await atcb_decorate_data(data);\n let root = document.body;\n data.trigger = 'click';\n if (triggerElement) {\n root = triggerElement;\n if (triggerElement.id && triggerElement.id !== '') {\n data.identifier = triggerElement.id;\n } else {\n if (data.identifier && data.identifier != '' && /^[\\w-]+$/.test(data.identifier)) {\n data.identifier = 'atcb-btn-' + data.identifier;\n } else {\n data.identifier = 'atcb-btn-custom';\n }\n triggerElement.id = data.identifier;\n }\n if (data.listStyle === 'dropdown' || data.listStyle === 'dropdown-static' || data.listStyle === 'dropup-static') {\n data.listStyle = 'modal';\n }\n } else {\n data.identifier = 'atcb-btn-custom';\n data.listStyle = 'modal';\n }\n try {\n await atcb_validate(data);\n } catch (e) {\n console.error(e);\n return false;\n }\n const oneOption = function () {\n if (data.options.length === 1) {\n return true;\n }\n return false;\n }();\n const potentialExistingHost = document.getElementById('atcb-customTrigger-' + data.identifier + '-host');\n if (potentialExistingHost) {\n atcb_close(potentialExistingHost.shadowRoot, false);\n if (atcbStates[`${atcbStates['active']}`]) {\n delete atcbStates[`${atcbStates['active']}`];\n }\n potentialExistingHost.remove();\n }\n atcb_log_event('initialization', data.identifier, data.identifier);\n if (!data.blockInteraction && !data.hidden) {\n const host = document.createElement('div');\n if (data.cspnonce && data.cspnonce !== '') {\n host.setAttribute('cspnonce', data.cspnonce);\n }\n host.id = 'atcb-customTrigger-' + data.identifier + '-host';\n if (root === document.body) {\n document.body.append(host);\n } else {\n root.after(host);\n }\n if (triggerElement) {\n const btnDim = triggerElement.getBoundingClientRect();\n host.style.position = 'relative';\n host.style.left = -btnDim.width + 'px';\n host.style.top = btnDim.height + 'px';\n }\n host.setAttribute('atcb-button-id', data.identifier);\n host.attachShadow({\n mode: 'open',\n delegateFocus: true\n });\n const elem = document.createElement('template');\n elem.innerHTML = template;\n host.shadowRoot.append(elem.content.cloneNode(true));\n const rootObj = host.shadowRoot.querySelector('.atcb-initialized');\n atcb_setup_state_management(data);\n atcb_set_light_mode(host.shadowRoot, data);\n host.shadowRoot.querySelector('.atcb-initialized').setAttribute('lang', data.language);\n atcb_load_css(host.shadowRoot, rootObj, data);\n atcb_set_global_event_listener(host.shadowRoot, data);\n if (typeof atcb_generate_rsvp_form === 'function' && data.rsvp && Object.keys(data.rsvp).length > 0) {\n atcb_generate_rsvp_form(host.shadowRoot, data, triggerElement, keyboardTrigger);\n } else {\n if (oneOption) {\n atcb_generate_links(host.shadowRoot, data.options[0], data, 'all', keyboardTrigger);\n atcb_log_event('openSingletonLink', data.identifier, data.identifier);\n } else {\n atcb_toggle(host.shadowRoot, 'open', data, triggerElement, keyboardTrigger);\n }\n }\n }\n atcb_init_log(data.proKey, data.debug);\n if (data.debug) {\n console.log('Add to Calendar Button \"' + data.identifier + '\" triggered');\n }\n return data.identifier;\n}\nfunction atcb_setup_state_management(data) {\n const singleDates = [];\n for (let i = 0; i < data.options.length; i++) {\n singleDates[data.options[`${i}`]] = [];\n for (let id = 1; id <= data.dates.length; id++) {\n if (data.dates[id - 1].status.toLowerCase() === 'cancelled') {\n singleDates[data.options[`${i}`]].push(1);\n } else {\n singleDates[data.options[`${i}`]].push(0);\n }\n }\n }\n atcbStates[data.identifier] = singleDates;\n}\nfunction atcb_init_log(pro = '', debug = false) {\n if (!atcbInitialGlobalInit) {\n const versionOutput = function () {\n if (debug) {\n return ' (version ' + atcbVersion + ')';\n }\n return '';\n }();\n if (pro != '') {\n console.log('Add to Calendar PRO script initialized' + versionOutput + ' | https://add-to-calendar-pro.com');\n } else {\n console.log('%c\\nAdd to Calendar Button script initialized' + versionOutput + '\\n' + 'see https://add-to-calendar-button.com for details.\\n', 'font-weight: bold;');\n console.log('✨ %cPRO version available at https://add-to-calendar-pro.com ← check it out!', 'font-weight: bold; line-height: 60px;');\n }\n atcbInitialGlobalInit = true;\n }\n}\nasync function atcb_get_pro_data(licenseKey, el = null, directData = {}) {\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n if (licenseKey && licenseKey !== '') {\n try {\n const proOverride = el ? el.proOverride : directData.proOverride;\n const dataOverrides = el ? atcb_read_attributes(el, proOverride ? atcbWcParams : atcbWcProParams) : directData;\n const response = await fetch(`https://${dataOverrides.dev ? 'event-dev.caldn.net' : 'event.caldn.net'}/${licenseKey}/config.json`);\n if (response.ok) {\n const data = await response.json();\n if (proOverride) {\n atcbWcParams.forEach(key => {\n if (Object.prototype.hasOwnProperty.call(dataOverrides, key) && ['hideBranding', 'hidebranding', 'ty', 'rsvp'].indexOf(key) === -1) {\n data[`${key}`] = dataOverrides[`${key}`];\n }\n });\n } else {\n atcbWcProParams.forEach(key => {\n if (Object.prototype.hasOwnProperty.call(dataOverrides, key)) {\n data[`${key}`] = dataOverrides[`${key}`];\n }\n });\n }\n if (dataOverrides.rsvp && Object.prototype.hasOwnProperty.call(dataOverrides.rsvp, 'none')) {\n delete data.rsvp;\n }\n if (!data.name || data.name === '') {\n throw new Error('Not possible to read proKey config from server...');\n }\n if (data.landingpage.domain && data.landingpage.domain !== '' && atcb_secure_url(data.landingpage.domain)) {\n data.domain = data.landingpage.domain;\n delete data.landingpage;\n }\n data.proKey = licenseKey;\n data.identifier = licenseKey;\n return data;\n }\n throw new Error('Not possible to read proKey config from server...');\n } catch {\n throw new Error('Add to Calendar Button proKey invalid or server not responding!');\n }\n }\n return {};\n}\nfunction atcb_set_global_event_listener(host, data) {\n if (!atcbIsBrowser()) {\n return;\n }\n if (data.lightMode == 'bodyScheme') {\n lightModeMutationObserver[data.identifier] = new MutationObserver(function (mutationsList) {\n mutationsList.forEach(mutation => {\n if (mutation.attributeName === 'class') {\n atcb_set_light_mode(host, data);\n }\n });\n });\n lightModeMutationObserver[data.identifier].observe(document.documentElement, {\n attributes: true\n });\n lightModeMutationObserver[data.identifier].observe(document.body, {\n attributes: true\n });\n }\n if (!atcbInitialGlobalInit) {\n document.addEventListener('keyup', atcb_global_listener_keyup);\n document.addEventListener('keydown', atcb_global_listener_keydown);\n window.addEventListener('resize', atcb_global_listener_resize);\n }\n}\nfunction atcb_global_listener_keyup(event) {\n const host = function () {\n const root = document.querySelector('[atcb-button-id=\"' + atcbStates['active'] + '\"]');\n if (root) {\n return root.shadowRoot;\n }\n return null;\n }();\n if (host && event.key === 'Escape') {\n atcb_log_event('closeList', 'Ecs Hit', atcbStates['active']);\n atcb_toggle(host, 'close', '', '', true);\n }\n}\nfunction atcb_global_listener_keydown(event) {\n const host = function () {\n const root = document.querySelector('[atcb-button-id=\"' + atcbStates['active'] + '\"]');\n const rootModal = document.getElementById(atcbStates['active'] + '-modal-host');\n if (rootModal) {\n return rootModal.shadowRoot;\n }\n if (root) {\n return root.shadowRoot;\n }\n return null;\n }();\n if (host && host.querySelector('.atcb-list') && (event.key === 'ArrowDown' || event.key === 'ArrowUp' || event.key === 'Tab')) {\n event.preventDefault();\n let targetFocus = 0;\n let currFocusOption = host.activeElement;\n const optionListCount = host.querySelectorAll('.atcb-list-item').length;\n if (currFocusOption && currFocusOption.classList.contains('atcb-list-item')) {\n if (event.key === 'ArrowDown' && currFocusOption.dataset.optionNumber < optionListCount) {\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) + 1;\n } else if (event.key === 'Tab') {\n if (currFocusOption.dataset.optionNumber < optionListCount) {\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) + 1;\n } else {\n targetFocus = 1;\n }\n } else if (event.key === 'ArrowUp' && currFocusOption.dataset.optionNumber >= 1) {\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) - 1;\n }\n if (targetFocus > 0) {\n host.querySelector('.atcb-list-item[data-option-number=\"' + targetFocus + '\"]').focus();\n }\n } else {\n switch (event.key) {\n default:\n host.querySelector('.atcb-list-item[data-option-number=\"1\"]').focus();\n break;\n case 'ArrowUp':\n host.querySelector('.atcb-list-item[data-option-number=\"' + optionListCount + '\"]').focus();\n break;\n }\n }\n }\n}\nfunction atcb_global_listener_resize() {\n const host = function () {\n const root = document.querySelector('[atcb-button-id=\"' + atcbStates['active'] + '\"]');\n const rootModal = document.getElementById(atcbStates['active'] + '-modal-host');\n if (rootModal) {\n return rootModal.shadowRoot;\n }\n if (root) {\n return root.shadowRoot;\n }\n return null;\n }();\n if (host) {\n const activeOverlay = host.querySelector('#atcb-bgoverlay');\n if (activeOverlay) {\n atcb_set_fullsize(activeOverlay);\n atcb_manage_body_scroll(host);\n }\n }\n}\nfunction atcb_unset_global_event_listener(identifier) {\n if (typeof lightModeMutationObserver[`${identifier}`] !== 'undefined') {\n lightModeMutationObserver[`${identifier}`].disconnect();\n }\n}\nexport { atcb_action, i18nStrings, atcbCssTemplate as cssStyles, atcb_generate_ty, atcb_generate_timestring, atcb_decorate_data_dates };","import { Component, EventEmitter, Input, Output } from '@angular/core'\nimport { IconNamesEnum } from 'ngx-bootstrap-icons'\nimport { Dictionary } from '../filtering-search-component-base/filtering-search-types'\nimport { DocumentLinksComponent } from '../document-links/document-links.component'\nimport { SafeHtmlPipe } from '../../pipes/safehtml.pipe'\nimport { NgTemplateOutlet } from '@angular/common'\nimport { NgxBootstrapIconsModule } from 'ngx-bootstrap-icons'\nimport { AdobePDFViewerComponent } from '../adobe-pdf-viewer/adobe-pdf-viewer'\nimport { CalendarEntry } from 'src/app/pages/data/calendar/calendar-article.model'\nimport { expandCollapse, openClose } from '../../animations/open-close-animations'\n\n@Component({\n animations: [\n openClose,\n expandCollapse,\n ],\n selector: 'app-calendar-event-body',\n imports: [\n AdobePDFViewerComponent,\n NgxBootstrapIconsModule,\n NgTemplateOutlet,\n SafeHtmlPipe,\n DocumentLinksComponent\n ],\n templateUrl: './calendar-event-body.component.html',\n styleUrl: './calendar-event-body.component.scss'\n})\nexport class CalendarEventBodyComponent {\n @Input() entry : CalendarEntry | undefined\n @Output() purchased = new EventEmitter\n\n public isExpanded: Dictionary = {}\n public iconNames = IconNamesEnum\n\n documentPurchased() {\n this.purchased.next(true)\n }\n hearingDescription(hearingType:string, hearingDetails:string): string {\n let result = ''\n if (hearingType.length > 0) {\n result = `

${hearingType}: 

`\n }\n return result + hearingDetails\n }\n}\n","@if (entry) {\n
\n
\n
\n \n
\n
\n @if (entry.extras['agenda']?.length > 0) {\n
\n
\n
AGENDA
\n \n \n @for (item of entry.extras['agenda']; track item.agenda_id) {\n \n \n \n }\n \n
\n \n
    \n @if (item.agenda_status?.length > 1) {\n
  • Status: {{item.agenda_status}}
  • \n }\n @if (item.agenda_details?.length > 1) {\n
  • Details:
  • \n }\n @if (item.objection_response_date?.length > 1) {\n
  • Objections by: {{item.objection_response_date}}
  • \n }\n @if (item.reply_deadline?.length > 1) {\n
  • Reply by: {{item.reply_deadline}}
  • \n }\n
\n \n
\n
\n
\n }\n\n \n @if (dockets.length > 0) {\n\n
\n  Related Documents\n
\n @if (isExpanded[id]) {\n \n }\n }\n\n\n
\n\n \n \n \n @for (aDocument of dockets; track aDocument.docket_number) {\n \n \n @if (showType) {\n \n }\n \n \n }\n \n
\n \n \n {{ aDocument.types }}\n \n \n
\n
\n\n \n}\n"],"names":["tzlibZonesDB","tzlibZonesDetailsDB","tzlib_get_content","tzName","nameParts","tzlib_enrich_data","string","shortenerMap","key","value","tzlib_get_ical_block","jsonType","tzBlock","location","tzidLine","output","tzlib_get_offset","isoDate","isoTime","dateString","date","dateYear","dateMonth","dateDay","dateHour","timezoneData","tzBreakpoints","breakpointCount","i","rruleParts","rruleMonth","theCase","helperArrayWeekdays","numberDays","weekdayCount","weekdays","d","occurence","actualDay","breakpointWeekday","dayIndex","fallbackCase","tzlibZoneNames","tzlib_get_timezones","namesArr","key2","value2","key3","atcbVersion","atcbCssTemplate","atcbIsBrowser","atcbIsiOS","atcbIsAndroid","atcbIsSafari","atcbIsMobile","atcbIsWebView","atcbIsProblematicWebView","atcbDefaultTarget","atcbOptions","atcbValidRecurrOptions","atcbInvalidSubscribeOptions","atcbIOSInvalidOptions","atcbAndroidInvalidOptions","atcbStates","atcbWcParams","atcbWcProParams","atcbWcBooleanParams","atcbWcObjectParams","atcbWcObjectArrayParams","atcbWcArrayParams","atcbWcNumberParams","atcbIcon","atcb_decorate_data","data","__async","atcb_decorate_data_boolean","atcb_decorate_data_timezone","atcb_decorate_data_rrule","atcb_decorate_data_options","atcb_decorate_data_style","atcb_decorate_sizes","atcb_decorate_light_mode","atcb_decorate_data_i18n","atcb_decorate_data_dates","atcb_decorate_data_meta","atcb_decorate_data_extend","atcb_decorate_data_button_status_handling","atcb_decorate_data_rsvp","i","attr","val","tz","rruleParts","rruleObj","rule","theOptions","newOptions","iCalGiven","appleGiven","optionName","size","sizes","sizeParts","lightMode","availableLanguages","rtlLanguages","cleanedUpDates","atcb_date_cleanup","atcb_date_specials_calculation","now","atcb_format_datetime","atcb_decorate_data_description","cleanDescription","desc","description","key","sanitizedKey","descriptionHtmlFree","atcb_rewrite_html_elements","descriptionHtmlFreeICal","__spreadProps","__spreadValues","atcb_generate_uuid","a","b","dateTimeData","isValidDateFormat","dateStr","isValidTodayFormat","point","atcb_date_calculation","tmpSplitStartDate","browserTimezone","newStartDateTime","atcb_translate_via_time_zone","newEndDateTime","type","dateString","timeString","timeZone","tmpDate","offsetEnd","tzlib_get_offset","currentUtcDate","today","todayString","dateStringParts","dateParts","newDate","atcb_check_bookings","bookings","atcb_check_required","requiredMultiField","requiredMultiFieldFlex","field","atcb_validate","msgPrefix","atcb_validate_icsFile","atcb_validate_buttonStyle","atcb_validate_subscribe","atcb_validate_created","atcb_validate_updated","atcb_validate_options","atcb_validate_date_blocks","atcb_validate_rrule","atcb_validate_rrule_simplyfied","e","msgSuffix","icsFileStr","atcb_secure_url","option","atcb_validate_status","atcb_validate_availability","atcb_validate_organizer","atcb_validate_attendee","atcb_validate_uid","atcb_validate_sequence","atcb_validate_timezone","atcb_validate_datetime","organizerParts","atcb_validEmail","attendeeParts","tzlib_get_timezones","selectedDate","dates","date","time","timeParts","dateKey","atcb_toggle","host","action","button","keyboardTrigger","generatedButton","atcb_open","atcb_close","atcb_log_event","list","atcb_generate_dropdown_list","listWrapper","bgOverlay","atcb_generate_bg_overlay","modalHost","atcb_generate_modal_host","atcb_create_atcbl","atcb_set_sizes","atcb_manage_body_scroll","atcb_set_fullsize","atcb_generate_overlay_dom","atcb_position_list","focusEl","hostEl","existingModalHost","allModals","nextModal","availableButtons","newFocusEl","modal","el","hiddenButton","atcb_position_shadow_button_listener","atcb_generate_ty","dataObj","copyIcon","copiedIcon","mailIcon","tyHost","tyData","atcb_translate_hook","tyContent","header","noIntro","label","headerField","customForm","atcb_build_form","atcb_create_modal","copyBtn","atcb_copy_to_clipboard","event","tyForm","errorMsg","tyFormSubmit","tyFormSubmitting","valid","atcb_validate_form","bodyData","skipRadio","radio","sendPostRequest","atcb_generate_rsvp_form","rsvpData","noHeadline","hiddenContent","rsvpContent","sentStatus","staticID","maxAmount","attendee","customEmailField","rsvpHost","rsvpInlineWrapper","rsvpInlineHeadline","rsvpInlineContent","atcbL","closeBtn","cancelBtn","restartBtn","atcbHost","atcbData","atcb_generate_button","rsvpForm","rsvpFormSubmit","rsvpFormSubmitting","rsvpRestart","staticFields","amountEl","amount","fieldsCopy","statusValEl","emailFieldId","bodyData_payload","request","atcb_generate_rsvp_button","btnHostEl","buttonTriggerWrapper","buttonTrigger","atcb_generate_label","proKey","dev","response","responseJson","error","fields","identifier","disabled","form","hiddenForm","n","prevType","skipped","fieldValue","fieldLabel","fieldPlaceholder","fieldHtml","atcb_create_field_html","name","fieldId","required","defaultVal","state","input","atcb_secure_content","radioGroup","checked","_0","_1","url","formData","requestData","parent","icon","text","oneOption","atcb_debounce_leading","atcb_generate_links","atcb_debounce","atcb_generate_label_content","defaultTriggerText","allOverdue","iconEl","textEl","index","atcb_generate_date_button","buttonDropdownAnchor","btnCheck","optionsList","listCount","optionItem","trigger","darken","closable","fingerMoved","atList","returnEl","licenseNoteOnly","svg","mainHost","headline","content","buttons","subEvents","goto","newOverlay","modalWrapper","modalCount","parentButton","modalIcon","modalHeadline","modalContent","modalsubEventsContentWrapper","modalsubEventsContent","modalSubEventButton","modalButtons","modalButton","atcb_subscribe_yahoo_modal_switch","atcb_set_fully_successful","subEvent","fullTimeInfo","atcb_generate_timestring","hoverText","cancelledInfo","recurringString","subEventAll","startDate","atcb_generate_time","allDay","btnLeft","btnDay","btnMonth","btnRight","btnDetails","btnHeadline","btnHeadlineText","btnLocation","btnLocationIcon","btnLocationText","btnDescription","btnDateTime","btnDateTimeIcon","btnDateTimeText","block","btnDateTimeTextBlock","recurSign","btnHover","ariaLabel","reset","newModalHost","elem","atcb_set_light_mode","atcb_load_css","newHost","node","atcb_position_shadow_button","atcb_generate_rich_data","schemaEl","id","schemaContentMulti","parts","schemaContentFull","schemaContent","formattedDate","atcb_generate_rich_data_recurrence","imageData","schemaRecurrenceContent","repeatFrequency","byDayString","byDays","helperMap","output","byMonthString","byMonthDayString","multiDateModal","skipDoubleLink","linkType","atcb_generate_subscribe_links","atcb_generate_ical","atcb_generate_google","atcb_generate_msteams","atcb_generate_microsoft","atcb_generate_yahoo","subEventButton","value","atcb_generate_multidate_links","theSubEvent","individualButtons","adjustedFileUrl","atcb_subscribe_ical","atcb_subscribe_google","atcb_subscribe_microsoft","atcb_open_cal_url","atcb_saved_hook","fileUrl","atcb_ical_copy_note","baseUrl","baseUrlApp","isGoogleCalId","newFileUrl","calName","urlParts","tmpDataDescription","availabilityPart","fullUrl","allDayDate","formattedAllDayDate","basePath","locationString","subscribe","target","urlType","query","newTab","filename","atcb_determine_ical_filename","givenIcsFile","potentialHostAttendee","potentialHostCustomVar","atcb_save_file","ics_lines","usedTimeZones","loopStart","loopEnd","timeAddon","timeZoneBlock","tzlib_get_ical_block","atcb_rewrite_ical_text","transpVal","dataUrl","filenameSuffix","filenamePart","file","save","evt","style","targetCal","addTimeZoneOffset","newStartDate","newEndDate","durationMS","durationHours","durationMinutes","durationString","offsetStart","formattedOffsetStart","formattedOffsetEnd","calcOffsetStart","calcOffsetEnd","endDate","offset","formattedOffset","datetime","includeTime","removeZ","regex","offsetToMilliseconds","sign","hours","minutes","baseTimeZone","targetTimeZone","dateTime","dateTimeUTC","language","decorate","browserTimeOverride","enforceYear","hideTimeZone","tmpRootTZ","startDateInfo","endDateInfo","timeZoneInfoStart","timeZoneInfoEnd","formattedTimeStart","formattedTimeEnd","timeBlocks","timeZoneInfoStringStart","timeZoneInfoStringEnd","magicLocationPhrases","j","dropYearStart","dropYearEnd","formatOptionsStart","get_format_options","formatOptionsEnd","timeZoneInfo","dropYear","hoursFormat","isJSON","cleanedUp","throwError","email","clear","iCalBreaks","match","p1","atcb_parse_url_code","urlText","truncate","inQuotes","blockUpwards","blockDownwards","anchorSet","originalTrigger","triggerDim","btnDim","btnParentDim","viewportHeight","listDim","sideMargin","originalShadowHost","modalShadowHost","wrapperDim","newWrapper","widthVal","active","originalEl","shadowEl","modalObj","c","dataString","tmpInput","editable","readOnly","range","selection","func","timeout","timer","args","parentEl","customTrigger","atcb_push_to_data_layer","category","calendarNames","i18nStrings","atcb_translate","atcbInitialGlobalInit","atcbBtnCount","lightModeMutationObserver","template","AddToCalendarButton","resolve","debugVal","proOverrideVal","atcb_get_pro_data","atcb_process_inline_data","atcb_render_debug_msg","atcb_cleanup","observeAdditionally","element","oldValue","newValue","prefix","atcb_build_button","debug","atcb_read_attributes","slotInput","atcbJsonInput","jsonError","params","inputVal","cleanedInput","newVal","rootObj","atcb_setup_state_management","atcb_set_global_event_listener","atcb_init_log","atcb_unset_global_event_listener","shadowRoot","hostLightMode","atcb_csp_nonce","cspnonceRegex","nonceVal","cssGlobalContent","scrollBarWidth","generalCssContent","initWidth","overrideDefaultCss","overrideDarkCss","cssFile","loadExternalCssAsynch","placeholder","placeholderCssContent","cssContent","inline","buttonsList","overrideCss","errorBanner","atcb_setup_state_management","data","singleDates","i","id","atcbStates","atcb_init_log","pro","debug","atcbInitialGlobalInit","versionOutput","atcbVersion","atcb_get_pro_data","_0","__async","licenseKey","el","directData","proOverride","dataOverrides","atcb_read_attributes","atcbWcParams","atcbWcProParams","response","key","atcb_secure_url","atcb_set_global_event_listener","host","atcbIsBrowser","lightModeMutationObserver","mutationsList","mutation","atcb_set_light_mode","atcb_global_listener_keyup","atcb_global_listener_keydown","atcb_global_listener_resize","event","root","atcb_log_event","atcb_toggle","rootModal","targetFocus","currFocusOption","optionListCount","activeOverlay","atcb_set_fullsize","atcb_manage_body_scroll","atcb_unset_global_event_listener","identifier","ɵɵelementContainer","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","item_r1","agenda_status","ɵɵelement","ɵɵproperty","ɵɵpipeBind1","agenda_details","ɵɵsanitizeHtml","objection_response_date","reply_deadline","ɵɵtemplate","CalendarEventBodyComponent_Conditional_0_Conditional_4_For_7_ng_container_2_Template","CalendarEventBodyComponent_Conditional_0_Conditional_4_For_7_Conditional_4_Template","CalendarEventBodyComponent_Conditional_0_Conditional_4_For_7_Conditional_5_Template","CalendarEventBodyComponent_Conditional_0_Conditional_4_For_7_Conditional_6_Template","CalendarEventBodyComponent_Conditional_0_Conditional_4_For_7_Conditional_7_Template","CalendarEventBodyComponent_Conditional_0_Conditional_4_For_7_ng_container_8_Template","documentsTable_r3","ɵɵpureFunction1","_c0","agenda_document","ɵɵconditional","length","documentsWithFoldout_r2","ɵɵpureFunction2","_c1","documents","agenda_id","ɵɵrepeaterCreate","CalendarEventBodyComponent_Conditional_0_Conditional_4_For_7_Template","_forTrack0","ɵɵrepeater","ctx_r3","entry","extras","CalendarEventBodyComponent_Conditional_0_ng_template_5_Conditional_0_Conditional_3_ng_container_0_Template","_c2","dockets_r7","ɵɵlistener","ɵɵrestoreView","_r5","id_r6","ɵɵnextContext","id","ɵɵresetView","isExpanded","CalendarEventBodyComponent_Conditional_0_ng_template_5_Conditional_0_Conditional_3_Template","iconNames","ChevronDown","CalendarEventBodyComponent_Conditional_0_ng_template_5_Conditional_0_Template","ɵɵtextInterpolate1","aDocument_r9","types","CalendarEventBodyComponent_Conditional_0_ng_template_7_For_3_Conditional_4_Template","_r8","documentPurchased","Name","showType_r10","CalendarEventBodyComponent_Conditional_0_ng_template_7_For_3_Template","_forTrack1","dockets_r11","CalendarEventBodyComponent_Conditional_0_ng_container_3_Template","CalendarEventBodyComponent_Conditional_0_Conditional_4_Template","CalendarEventBodyComponent_Conditional_0_ng_template_5_Template","ɵɵtemplateRefExtractor","CalendarEventBodyComponent_Conditional_0_ng_template_7_Template","hearingDescription","CalendarEventBodyComponent","purchased","EventEmitter","IconNamesEnum","next","hearingType","hearingDetails","result","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","CalendarEventBodyComponent_Conditional_0_Template","AdobePDFViewerComponent","NgxBootstrapIconsModule","NgxBootstrapIconsLibComponent","NgTemplateOutlet","SafeHtmlPipe","DocumentLinksComponent","styles","data","animation","openClose","expandCollapse"],"mappings":"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","debug_id":"4e553034-7b3e-5549-96cc-c1e38dbc134f"}