23 lines
134 KiB
JavaScript
23 lines
134 KiB
JavaScript
import{U as Tt,r as R,p as z,o as v,b as C,j as G,Y as bt,$ as ve,c as ce,q as Oe,t as K,x as qe,a0 as Ut,m as He,V as Ze,W as Ct,k as me,J as vt,w as q,u as D,_ as yt,d as we,S as Yt,e as fe,g as pe,a1 as ze,f as E,l as We,a9 as Ot,F as Je,v as $e,a3 as wt,ab as Nt,ac as Mt,R as xt,a as It,N as Qe,h as kt}from"./TrashCanOutline-Das_T9Qh.chunk.mjs";import{G as Bt,H as Pt,I as Lt,l as zt,t as Vt,B as Rt,b as St,C as jt,_ as Ht,N as Fe,e as Ve,s as Ne,g as Wt,P as Ft,J as Gt,a as Kt}from"./Plus-ClaUDINn.chunk.mjs";import{l as F}from"./logger-BA9HJKeR.chunk.mjs";import{a as qt,l as Zt}from"./index-C5gME6tY.chunk.mjs";const Jt=8,Xe=32,$t={name:"NcListItemIcon",components:{NcAvatar:zt,NcHighlight:Lt,NcIconSvgWrapper:Pt},mixins:[Bt],props:{name:{type:String,required:!0},subname:{type:String,default:""},icon:{type:String,default:""},iconSvg:{type:String,default:""},iconName:{type:String,default:""},search:{type:String,default:""},avatarSize:{type:Number,default:Xe},noMargin:{type:Boolean,default:!1},displayName:{type:String,default:null},isNoUser:{type:Boolean,default:!1},id:{type:String,default:null}},setup(){return{margin:Jt,defaultSize:Xe}},computed:{hasIcon(){return this.icon!==""},hasIconSvg(){return this.iconSvg!==""},isValidSubname(){return this.subname?.trim?.()!==""},isSizeBigEnough(){return this.avatarSize>=26},cssVars(){const a=this.noMargin?0:this.margin;return{"--height":this.avatarSize+2*a+"px","--margin":this.margin+"px"}},searchParts(){const a=/^([^<]*)<([^>]+)>?$/,e=this.search.match(a);return this.isNoUser||!e?[this.search,this.search]:[e[1].trim(),e[2]]}},beforeMount(){!this.isNoUser&&!this.subname&&this.fetchUserStatus(this.user)}},Qt=["id"],Xt={class:"option__details"},e0={key:1},t0=["aria-label"];function s0(a,e,t,s,i,r){const o=R("NcAvatar"),n=R("NcHighlight"),l=R("NcIconSvgWrapper");return v(),z("span",{id:t.id,class:qe(["option",{"option--compact":t.avatarSize<s.defaultSize}]),style:Ut(r.cssVars)},[C(o,ve(a.$attrs,{"disable-menu":!0,"disable-tooltip":!0,"display-name":t.displayName||t.name,"is-no-user":t.isNoUser,size:t.avatarSize,class:"option__avatar"}),null,16,["display-name","is-no-user","size"]),G("div",Xt,[C(n,{class:"option__lineone",text:t.name,search:r.searchParts[0]},null,8,["text","search"]),r.isValidSubname&&r.isSizeBigEnough?(v(),ce(n,{key:0,class:"option__linetwo",text:t.subname,search:r.searchParts[1]},null,8,["text","search"])):a.hasStatus?(v(),z("span",e0,[G("span",null,K(a.userStatus.icon),1),G("span",null,K(a.userStatus.message),1)])):Oe("",!0)]),bt(a.$slots,"default",{},()=>[r.hasIconSvg?(v(),ce(l,{key:0,class:"option__icon",svg:t.iconSvg,name:t.iconName},null,8,["svg","name"])):r.hasIcon?(v(),z("span",{key:1,class:qe(["icon option__icon",t.icon]),"aria-label":t.iconName},null,10,t0)):Oe("",!0)],!0)],14,Qt)}const et=Tt($t,[["render",s0],["__scopeId","data-v-60a83836"]]),a0=He({__name:"NcSelectUsers",props:Ze({ariaLabelClearSelected:{},ariaLabelListbox:{},ariaLabelDeselectOption:{type:Function},disabled:{type:Boolean},inputId:{},inputLabel:{},labelOutside:{type:Boolean},keepOpen:{type:Boolean},loading:{type:Boolean},multiple:{type:Boolean},noWrap:{type:Boolean},options:{},placeholder:{},required:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:Ze(["search"],["update:modelValue"]),setup(a,{emit:e}){const t=Ct(a,"modelValue"),s=e,i=me("");vt(i,()=>s("search",i.value));const r=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),o=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline")),n=r-2*o;function l(u,c,d){const m=/[^<]*<([^>]+)/,p=d.match(m),y=u.subname?.toLocaleLowerCase()??"";return p&&y.indexOf(p[1].toLocaleLowerCase())>-1||`${c} ${u.subname}`.toLocaleLowerCase().indexOf(d.toLocaleLowerCase())>-1}return(u,c)=>(v(),ce(D(Vt),ve({modelValue:t.value,"onUpdate:modelValue":c[0]||(c[0]=d=>t.value=d),class:"nc-select-users"},u.$props,{"filter-by":l,label:"displayName",onSearch:c[1]||(c[1]=d=>i.value=d)}),{option:q(d=>[C(D(et),ve(d,{"avatar-size":32,name:d.displayName,search:i.value}),null,16,["name","search"])]),"selected-option":q(d=>[C(D(et),ve(d,{"avatar-size":n,name:d.displayName,"no-margin":"",search:i.value}),null,16,["name","search"])]),_:1},16,["modelValue"]))}}),i0=Tt(a0,[["__scopeId","data-v-4fbb6472"]]);var Re;(function(a){a[a.User=0]="User",a[a.Group=1]="Group",a[a.Link=3]="Link",a[a.Email=4]="Email",a[a.Remote=6]="Remote",a[a.Team=7]="Team",a[a.Guest=8]="Guest",a[a.RemoteGroup=9]="RemoteGroup",a[a.Room=10]="Room",a[a.Deck=12]="Deck",a[a.FederatedGroup=14]="FederatedGroup",a[a.ScienceMesh=15]="ScienceMesh"})(Re||(Re={}));function tt(a){const e=a.getFullYear(),t=(a.getMonth()+1).toString().padStart(2,"0"),s=a.getDate().toString().padStart(2,"0");return`${e}-${t}-${s}`}const r0={name:"AbsenceForm",components:{NcButton:Fe,NcTextField:Ht,NcTextArea:jt,NcDateTimePickerNative:St,NcSelectUsers:i0},setup(){return{t:E}},data(){const{firstDay:a,lastDay:e,status:t,message:s,replacementUserId:i,replacementUserDisplayName:r}=We("dav","absence",{});return{loading:!1,status:t??"",message:s??"",firstDay:a?new Date(a):new Date,lastDay:e?new Date(e):null,replacementUserId:i,replacementUser:i?{user:i,displayName:r}:null,searchLoading:!1,options:[]}},computed:{valid(){const a=new Date(this.firstDay?.getTime()),e=new Date(this.lastDay?.getTime());return a?.setHours(0,0,0,0),e?.setHours(0,0,0,0),!!this.firstDay&&!!this.lastDay&&!!this.status&&!!this.message&&e>=a}},methods:{resetForm(){this.status="",this.message="",this.firstDay=new Date,this.lastDay=null},formatForMultiselect(a){return{user:a.uuid||a.value.shareWith,displayName:a.name||a.label,subtitle:a.dsc|""}},async asyncFind(a){this.searchLoading=!0,await this.debounceGetSuggestions(a.trim())},async getSuggestions(a){const e=[Re.User];let t=null;try{t=await fe.get(pe("apps/files_sharing/api/v1/sharees"),{params:{format:"json",itemType:"file",search:a,shareType:e}})}catch(d){F.error("Error fetching suggestions",{error:d});return}const s=t.data.ocs.data,i=t.data.ocs.data.exact;s.exact=[];const r=i.users,o=s.users;F.info("AbsenceForm raw suggestions",{rawExactSuggestions:r,rawSuggestions:o});const n=r.map(d=>this.formatForMultiselect(d)),l=o.map(d=>this.formatForMultiselect(d)),u=n.concat(l),c=u.reduce((d,m)=>(m.displayName&&(d[m.displayName]||(d[m.displayName]=0),d[m.displayName]++),d),{});this.options=u.map(d=>c[d.displayName]>1&&!d.desc?{...d,desc:d.shareWithDisplayNameUnique}:d),this.searchLoading=!1,F.info("AbsenseForm suggestions",{options:this.options})},debounceGetSuggestions:Rt(function(...a){this.getSuggestions(...a)},300),async saveForm(){if(this.valid){this.loading=!0;try{await fe.post(pe("/apps/dav/api/v1/outOfOffice/{userId}",{userId:ze().uid}),{firstDay:tt(this.firstDay),lastDay:tt(this.lastDay),status:this.status,message:this.message,replacementUserId:this.replacementUser?.user??null}),Ve(E("dav","Absence saved"))}catch(a){Ne(E("dav","Failed to save your absence settings")),F.error("Could not save absence",{error:a})}finally{this.loading=!1}}},async clearAbsence(){this.loading=!0;try{await fe.delete(pe("/apps/dav/api/v1/outOfOffice/{userId}",{userId:ze().uid})),this.resetForm(),Ve(E("dav","Absence cleared"))}catch(a){Ne(E("dav","Failed to clear your absence settings")),F.error("Could not clear absence",{error:a})}finally{this.loading=!1}}}},n0={class:"absence__dates"},o0={for:"replacement-search-input"},l0={class:"absence__buttons"};function u0(a,e,t,s,i,r){const o=R("NcDateTimePickerNative"),n=R("NcSelectUsers"),l=R("NcTextField"),u=R("NcTextArea"),c=R("NcButton");return v(),z("form",{class:"absence",onSubmit:e[5]||(e[5]=Yt((...d)=>r.saveForm&&r.saveForm(...d),["prevent"]))},[G("div",n0,[C(o,{id:"absence-first-day",modelValue:i.firstDay,"onUpdate:modelValue":e[0]||(e[0]=d=>i.firstDay=d),label:s.t("dav","First day"),class:"absence__dates__picker",required:!0},null,8,["modelValue","label"]),C(o,{id:"absence-last-day",modelValue:i.lastDay,"onUpdate:modelValue":e[1]||(e[1]=d=>i.lastDay=d),label:s.t("dav","Last day (inclusive)"),class:"absence__dates__picker",required:!0},null,8,["modelValue","label"])]),G("label",o0,K(s.t("dav","Out of office replacement (optional)")),1),C(n,{modelValue:i.replacementUser,"onUpdate:modelValue":e[2]||(e[2]=d=>i.replacementUser=d),"input-id":"replacement-search-input",loading:i.searchLoading,placeholder:s.t("dav","Name of the replacement"),options:i.options,onSearch:r.asyncFind},null,8,["modelValue","loading","placeholder","options","onSearch"]),C(l,{modelValue:i.status,"onUpdate:modelValue":e[3]||(e[3]=d=>i.status=d),label:s.t("dav","Short absence status"),required:!0},null,8,["modelValue","label"]),C(u,{modelValue:i.message,"onUpdate:modelValue":e[4]||(e[4]=d=>i.message=d),label:s.t("dav","Long absence Message"),required:!0},null,8,["modelValue","label"]),G("div",l0,[C(c,{disabled:i.loading||!r.valid,variant:"primary",type:"submit"},{default:q(()=>[we(K(s.t("dav","Save")),1)]),_:1},8,["disabled"]),C(c,{disabled:i.loading||!r.valid,variant:"error",onClick:r.clearAbsence},{default:q(()=>[we(K(s.t("dav","Disable absence")),1)]),_:1},8,["disabled","onClick"])])],32)}const d0=yt(r0,[["render",u0],["__scopeId","data-v-2db4c3c8"]]);var ie={},de={},st;function c0(){return st||(st=1,Object.defineProperty(de,"__esModule",{value:!0}),de.zonesMap=de.defaultStart=void 0,de.defaultStart="19700101T000000",de.zonesMap=new Map([["Africa/Abidjan",{s:{f:"+0000",n:"GMT"}}],["Africa/Accra",{s:{f:"+0000",n:"GMT"}}],["Africa/Addis_Ababa",{s:{f:"+0300",n:"EAT"}}],["Africa/Algiers",{s:{f:"+0100",n:"CET"}}],["Africa/Asmara",{s:{f:"+0300",n:"EAT"}}],["Africa/Bamako",{s:{f:"+0000",n:"GMT"}}],["Africa/Bangui",{s:{f:"+0100",n:"WAT"}}],["Africa/Banjul",{s:{f:"+0000",n:"GMT"}}],["Africa/Bissau",{s:{f:"+0000",n:"GMT"}}],["Africa/Blantyre",{s:{f:"+0200",n:"CAT"}}],["Africa/Brazzaville",{s:{f:"+0100",n:"WAT"}}],["Africa/Bujumbura",{s:{f:"+0200",n:"CAT"}}],["Africa/Cairo",{s:{f:"+0200",n:"EET"}}],["Africa/Casablanca",{s:{f:"+0100",n:"+01"}}],["Africa/Ceuta",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Africa/Conakry",{s:{f:"+0000",n:"GMT"}}],["Africa/Dakar",{s:{f:"+0000",n:"GMT"}}],["Africa/Dar_es_Salaam",{s:{f:"+0300",n:"EAT"}}],["Africa/Djibouti",{s:{f:"+0300",n:"EAT"}}],["Africa/Douala",{s:{f:"+0100",n:"WAT"}}],["Africa/El_Aaiun",{s:{f:"+0100",n:"+01"}}],["Africa/Freetown",{s:{f:"+0000",n:"GMT"}}],["Africa/Gaborone",{s:{f:"+0200",n:"CAT"}}],["Africa/Harare",{s:{f:"+0200",n:"CAT"}}],["Africa/Johannesburg",{s:{f:"+0200",n:"SAST"}}],["Africa/Juba",{s:{f:"+0300",n:"EAT"}}],["Africa/Kampala",{s:{f:"+0300",n:"EAT"}}],["Africa/Khartoum",{s:{f:"+0200",n:"CAT"}}],["Africa/Kigali",{s:{f:"+0200",n:"CAT"}}],["Africa/Kinshasa",{s:{f:"+0100",n:"WAT"}}],["Africa/Lagos",{s:{f:"+0100",n:"WAT"}}],["Africa/Libreville",{s:{f:"+0100",n:"WAT"}}],["Africa/Lome",{s:{f:"+0000",n:"GMT"}}],["Africa/Luanda",{s:{f:"+0100",n:"WAT"}}],["Africa/Lubumbashi",{s:{f:"+0200",n:"CAT"}}],["Africa/Lusaka",{s:{f:"+0200",n:"CAT"}}],["Africa/Malabo",{s:{f:"+0100",n:"WAT"}}],["Africa/Maputo",{s:{f:"+0200",n:"CAT"}}],["Africa/Maseru",{s:{f:"+0200",n:"SAST"}}],["Africa/Mbabane",{s:{f:"+0200",n:"SAST"}}],["Africa/Mogadishu",{s:{f:"+0300",n:"EAT"}}],["Africa/Monrovia",{s:{f:"+0000",n:"GMT"}}],["Africa/Nairobi",{s:{f:"+0300",n:"EAT"}}],["Africa/Ndjamena",{s:{f:"+0100",n:"WAT"}}],["Africa/Niamey",{s:{f:"+0100",n:"WAT"}}],["Africa/Nouakchott",{s:{f:"+0000",n:"GMT"}}],["Africa/Ouagadougou",{s:{f:"+0000",n:"GMT"}}],["Africa/Porto-Novo",{s:{f:"+0100",n:"WAT"}}],["Africa/Sao_Tome",{s:{f:"+0100",n:"WAT"}}],["Africa/Tripoli",{s:{f:"+0200",n:"EET"}}],["Africa/Tunis",{s:{f:"+0100",n:"CET"}}],["Africa/Windhoek",{s:{f:"+0200",n:"CAT"}}],["America/Adak",{s:{f:"-0900",t:"-1000",n:"HST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-1000",t:"-0900",n:"HDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Anchorage",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Anguilla",{s:{f:"-0400",n:"AST"}}],["America/Antigua",{s:{f:"-0400",n:"AST"}}],["America/Araguaina",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Buenos_Aires",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Catamarca",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Cordoba",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Jujuy",{s:{f:"-0300",n:"-03"}}],["America/Argentina/La_Rioja",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Mendoza",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Rio_Gallegos",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Salta",{s:{f:"-0300",n:"-03"}}],["America/Argentina/San_Juan",{s:{f:"-0300",n:"-03"}}],["America/Argentina/San_Luis",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Tucuman",{s:{f:"-0300",n:"-03"}}],["America/Argentina/Ushuaia",{s:{f:"-0300",n:"-03"}}],["America/Aruba",{s:{f:"-0400",n:"AST"}}],["America/Asuncion",{s:{f:"-0300",t:"-0400",n:"-04",s:"19700322T000000",r:{m:3,d:"4SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701004T000000",r:{m:10,d:"1SU"}}}],["America/Atikokan",{s:{f:"-0500",n:"EST"}}],["America/Bahia_Banderas",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Bahia",{s:{f:"-0300",n:"-03"}}],["America/Barbados",{s:{f:"-0400",n:"AST"}}],["America/Belem",{s:{f:"-0300",n:"-03"}}],["America/Belize",{s:{f:"-0600",n:"CST"}}],["America/Blanc-Sablon",{s:{f:"-0400",n:"AST"}}],["America/Boa_Vista",{s:{f:"-0400",n:"-04"}}],["America/Bogota",{s:{f:"-0500",n:"-05"}}],["America/Boise",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Cambridge_Bay",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Campo_Grande",{s:{f:"-0400",n:"-04",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Cancun",{s:{f:"-0500",n:"EST"}}],["America/Caracas",{s:{f:"-0400",n:"-04"}}],["America/Cayenne",{s:{f:"-0300",n:"-03"}}],["America/Cayman",{s:{f:"-0500",n:"EST"}}],["America/Chicago",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Chihuahua",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Costa_Rica",{s:{f:"-0600",n:"CST"}}],["America/Creston",{s:{f:"-0700",n:"MST"}}],["America/Cuiaba",{s:{f:"-0400",n:"-04",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Curacao",{s:{f:"-0400",n:"AST"}}],["America/Danmarkshavn",{s:{f:"+0000",n:"GMT"}}],["America/Dawson_Creek",{s:{f:"-0700",n:"MST"}}],["America/Dawson",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Denver",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Detroit",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Dominica",{s:{f:"-0400",n:"AST"}}],["America/Edmonton",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Eirunepe",{s:{f:"-0500",n:"-05"}}],["America/El_Salvador",{s:{f:"-0600",n:"CST"}}],["America/Fort_Nelson",{s:{f:"-0700",n:"MST"}}],["America/Fortaleza",{s:{f:"-0300",n:"-03"}}],["America/Glace_Bay",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Godthab",{s:{f:"-0200",t:"-0300",n:"-03",s:"19701024T230000",r:{m:10,d:"-1SA"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19700328T220000",r:{m:3,d:"-1SA"}}}],["America/Goose_Bay",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Grand_Turk",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Grenada",{s:{f:"-0400",n:"AST"}}],["America/Guadeloupe",{s:{f:"-0400",n:"AST"}}],["America/Guatemala",{s:{f:"-0600",n:"CST"}}],["America/Guayaquil",{s:{f:"-0500",n:"-05"}}],["America/Guyana",{s:{f:"-0400",n:"-04"}}],["America/Halifax",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Havana",{s:{f:"-0400",t:"-0500",n:"CST",s:"19701101T010000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"CDT",s:"19700308T000000",r:{m:3,d:"2SU"}}}],["America/Hermosillo",{s:{f:"-0700",n:"MST"}}],["America/Indiana/Indianapolis",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Knox",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Marengo",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Petersburg",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Tell_City",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Vevay",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Vincennes",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Indiana/Winamac",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Inuvik",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Iqaluit",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Jamaica",{s:{f:"-0500",n:"EST"}}],["America/Juneau",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kentucky/Louisville",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kentucky/Monticello",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Kralendijk",{s:{f:"-0400",n:"AST"}}],["America/La_Paz",{s:{f:"-0400",n:"-04"}}],["America/Lima",{s:{f:"-0500",n:"-05"}}],["America/Los_Angeles",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Lower_Princes",{s:{f:"-0400",n:"AST"}}],["America/Maceio",{s:{f:"-0300",n:"-03"}}],["America/Managua",{s:{f:"-0600",n:"CST"}}],["America/Manaus",{s:{f:"-0400",n:"-04"}}],["America/Marigot",{s:{f:"-0400",n:"AST"}}],["America/Martinique",{s:{f:"-0400",n:"AST"}}],["America/Matamoros",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Mazatlan",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Menominee",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Merida",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Metlakatla",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Mexico_City",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Miquelon",{s:{f:"-0200",t:"-0300",n:"-03",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Moncton",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Monterrey",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700405T020000",r:{m:4,d:"1SU"}}}],["America/Montevideo",{s:{f:"-0300",n:"-03"}}],["America/Montserrat",{s:{f:"-0400",n:"AST"}}],["America/Nassau",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/New_York",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Nipigon",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Nome",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Noronha",{s:{f:"-0200",n:"-02"}}],["America/North_Dakota/Beulah",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/North_Dakota/Center",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/North_Dakota/New_Salem",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Ojinaga",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Panama",{s:{f:"-0500",n:"EST"}}],["America/Pangnirtung",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Paramaribo",{s:{f:"-0300",n:"-03"}}],["America/Phoenix",{s:{f:"-0700",n:"MST"}}],["America/Port_of_Spain",{s:{f:"-0400",n:"AST"}}],["America/Port-au-Prince",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Porto_Velho",{s:{f:"-0400",n:"-04"}}],["America/Puerto_Rico",{s:{f:"-0400",n:"AST"}}],["America/Punta_Arenas",{s:{f:"-0300",n:"-03"}}],["America/Rainy_River",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Rankin_Inlet",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Recife",{s:{f:"-0300",n:"-03"}}],["America/Regina",{s:{f:"-0600",n:"CST"}}],["America/Resolute",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Rio_Branco",{s:{f:"-0500",n:"-05"}}],["America/Santarem",{s:{f:"-0300",n:"-03"}}],["America/Santiago",{s:{f:"-0300",t:"-0400",n:"-04",s:"19700405T000000",r:{m:4,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"-03",s:"19700906T000000",r:{m:9,d:"1SU"}}}],["America/Santo_Domingo",{s:{f:"-0400",n:"AST"}}],["America/Sao_Paulo",{s:{f:"-0300",n:"-03",s:"19700215T000000",r:{m:2,d:"3SU"}},d:{f:"-0300",t:"-0200",n:"-02",s:"19701101T000000",r:{m:11,d:"1SU"}}}],["America/Scoresbysund",{s:{f:"+0000",t:"-0100",n:"-01",s:"19701025T010000",r:{m:10,d:"-1SU"}},d:{f:"-0100",t:"+0000",n:"+00",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["America/Sitka",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/St_Barthelemy",{s:{f:"-0400",n:"AST"}}],["America/St_Johns",{s:{f:"-0230",t:"-0330",n:"NST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0330",t:"-0230",n:"NDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/St_Kitts",{s:{f:"-0400",n:"AST"}}],["America/St_Lucia",{s:{f:"-0400",n:"AST"}}],["America/St_Thomas",{s:{f:"-0400",n:"AST"}}],["America/St_Vincent",{s:{f:"-0400",n:"AST"}}],["America/Swift_Current",{s:{f:"-0600",n:"CST"}}],["America/Tegucigalpa",{s:{f:"-0600",n:"CST"}}],["America/Thule",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Thunder_Bay",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Tijuana",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Toronto",{s:{f:"-0400",t:"-0500",n:"EST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0500",t:"-0400",n:"EDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Tortola",{s:{f:"-0400",n:"AST"}}],["America/Vancouver",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Whitehorse",{s:{f:"-0700",t:"-0800",n:"PST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0800",t:"-0700",n:"PDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Winnipeg",{s:{f:"-0500",t:"-0600",n:"CST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0600",t:"-0500",n:"CDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Yakutat",{s:{f:"-0800",t:"-0900",n:"AKST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0900",t:"-0800",n:"AKDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["America/Yellowknife",{s:{f:"-0600",t:"-0700",n:"MST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0700",t:"-0600",n:"MDT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["Antarctica/Casey",{s:{f:"+0800",n:"+08"}}],["Antarctica/Davis",{s:{f:"+0700",n:"+07"}}],["Antarctica/DumontDUrville",{s:{f:"+1000",n:"+10"}}],["Antarctica/Macquarie",{s:{f:"+1100",n:"+11"}}],["Antarctica/Mawson",{s:{f:"+0500",n:"+05"}}],["Antarctica/McMurdo",{s:{f:"+1300",t:"+1200",n:"NZST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1200",t:"+1300",n:"NZDT",s:"19700927T020000",r:{m:9,d:"-1SU"}}}],["Antarctica/Palmer",{s:{f:"-0300",n:"-03"}}],["Antarctica/Rothera",{s:{f:"-0300",n:"-03"}}],["Antarctica/Syowa",{s:{f:"+0300",n:"+03"}}],["Antarctica/Troll",{s:{f:"+0200",t:"+0000",n:"+00",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0200",n:"+02",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Antarctica/Vostok",{s:{f:"+0600",n:"+06"}}],["Arctic/Longyearbyen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Asia/Aden",{s:{f:"+0300",n:"+03"}}],["Asia/Almaty",{s:{f:"+0600",n:"+06"}}],["Asia/Amman",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701030T010000",r:{m:10,d:"-1FR"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700326T235959",r:{m:3,d:"-1TH"}}}],["Asia/Anadyr",{s:{f:"+1200",n:"+12"}}],["Asia/Aqtau",{s:{f:"+0500",n:"+05"}}],["Asia/Aqtobe",{s:{f:"+0500",n:"+05"}}],["Asia/Ashgabat",{s:{f:"+0500",n:"+05"}}],["Asia/Atyrau",{s:{f:"+0500",n:"+05"}}],["Asia/Baghdad",{s:{f:"+0300",n:"+03"}}],["Asia/Bahrain",{s:{f:"+0300",n:"+03"}}],["Asia/Baku",{s:{f:"+0400",n:"+04"}}],["Asia/Bangkok",{s:{f:"+0700",n:"+07"}}],["Asia/Barnaul",{s:{f:"+0700",n:"+07"}}],["Asia/Beirut",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T000000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["Asia/Bishkek",{s:{f:"+0600",n:"+06"}}],["Asia/Brunei",{s:{f:"+0800",n:"+08"}}],["Asia/Chita",{s:{f:"+0900",n:"+09"}}],["Asia/Choibalsan",{s:{f:"+0800",n:"+08"}}],["Asia/Colombo",{s:{f:"+0530",n:"+0530"}}],["Asia/Damascus",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701030T000000",r:{m:10,d:"-1FR"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700327T000000",r:{m:3,d:"-1FR"}}}],["Asia/Dhaka",{s:{f:"+0600",n:"+06"}}],["Asia/Dili",{s:{f:"+0900",n:"+09"}}],["Asia/Dubai",{s:{f:"+0400",n:"+04"}}],["Asia/Dushanbe",{s:{f:"+0500",n:"+05"}}],["Asia/Famagusta",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Asia/Gaza",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701031T010000",r:{m:10,d:"-1SA"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700328T010000",r:{m:3,d:"4SA"}}}],["Asia/Hebron",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701031T010000",r:{m:10,d:"-1SA"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700328T010000",r:{m:3,d:"4SA"}}}],["Asia/Ho_Chi_Minh",{s:{f:"+0700",n:"+07"}}],["Asia/Hong_Kong",{s:{f:"+0800",n:"HKT"}}],["Asia/Hovd",{s:{f:"+0700",n:"+07"}}],["Asia/Irkutsk",{s:{f:"+0800",n:"+08"}}],["Asia/Istanbul",{s:{f:"+0300",n:"+03"}}],["Asia/Jakarta",{s:{f:"+0700",n:"WIB"}}],["Asia/Jayapura",{s:{f:"+0900",n:"WIT"}}],["Asia/Jerusalem",{s:{f:"+0300",t:"+0200",n:"IST",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"IDT",s:"19700327T020000",r:{m:3,d:"-1FR"}}}],["Asia/Kabul",{s:{f:"+0430",n:"+0430"}}],["Asia/Kamchatka",{s:{f:"+1200",n:"+12"}}],["Asia/Karachi",{s:{f:"+0500",n:"PKT"}}],["Asia/Kathmandu",{s:{f:"+0545",n:"+0545"}}],["Asia/Khandyga",{s:{f:"+0900",n:"+09"}}],["Asia/Kolkata",{s:{f:"+0530",n:"IST"}}],["Asia/Krasnoyarsk",{s:{f:"+0700",n:"+07"}}],["Asia/Kuala_Lumpur",{s:{f:"+0800",n:"+08"}}],["Asia/Kuching",{s:{f:"+0800",n:"+08"}}],["Asia/Kuwait",{s:{f:"+0300",n:"+03"}}],["Asia/Macau",{s:{f:"+0800",n:"CST"}}],["Asia/Magadan",{s:{f:"+1100",n:"+11"}}],["Asia/Makassar",{s:{f:"+0800",n:"WITA"}}],["Asia/Manila",{s:{f:"+0800",n:"PST"}}],["Asia/Muscat",{s:{f:"+0400",n:"+04"}}],["Asia/Nicosia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Asia/Novokuznetsk",{s:{f:"+0700",n:"+07"}}],["Asia/Novosibirsk",{s:{f:"+0700",n:"+07"}}],["Asia/Omsk",{s:{f:"+0600",n:"+06"}}],["Asia/Oral",{s:{f:"+0500",n:"+05"}}],["Asia/Phnom_Penh",{s:{f:"+0700",n:"+07"}}],["Asia/Pontianak",{s:{f:"+0700",n:"WIB"}}],["Asia/Pyongyang",{s:{f:"+0900",n:"KST"}}],["Asia/Qatar",{s:{f:"+0300",n:"+03"}}],["Asia/Qyzylorda",{s:{f:"+0600",n:"+06"}}],["Asia/Riyadh",{s:{f:"+0300",n:"+03"}}],["Asia/Sakhalin",{s:{f:"+1100",n:"+11"}}],["Asia/Samarkand",{s:{f:"+0500",n:"+05"}}],["Asia/Seoul",{s:{f:"+0900",n:"KST"}}],["Asia/Shanghai",{s:{f:"+0800",n:"CST"}}],["Asia/Singapore",{s:{f:"+0800",n:"+08"}}],["Asia/Srednekolymsk",{s:{f:"+1100",n:"+11"}}],["Asia/Taipei",{s:{f:"+0800",n:"CST"}}],["Asia/Tashkent",{s:{f:"+0500",n:"+05"}}],["Asia/Tbilisi",{s:{f:"+0400",n:"+04"}}],["Asia/Tehran",{s:{f:"+0430",t:"+0330",n:"+0330",s:"19700921T000000",r:{m:9,d:"3SU"}},d:{f:"+0330",t:"+0430",n:"+0430",s:"19700321T000000",r:{m:3,d:"3SU"}}}],["Asia/Thimphu",{s:{f:"+0600",n:"+06"}}],["Asia/Tokyo",{s:{f:"+0900",n:"JST"}}],["Asia/Tomsk",{s:{f:"+0700",n:"+07"}}],["Asia/Ulaanbaatar",{s:{f:"+0800",n:"+08"}}],["Asia/Urumqi",{s:{f:"+0600",n:"+06"}}],["Asia/Ust-Nera",{s:{f:"+1000",n:"+10"}}],["Asia/Vientiane",{s:{f:"+0700",n:"+07"}}],["Asia/Vladivostok",{s:{f:"+1000",n:"+10"}}],["Asia/Yakutsk",{s:{f:"+0900",n:"+09"}}],["Asia/Yangon",{s:{f:"+0630",n:"+0630"}}],["Asia/Yekaterinburg",{s:{f:"+0500",n:"+05"}}],["Asia/Yerevan",{s:{f:"+0400",n:"+04"}}],["Atlantic/Azores",{s:{f:"+0000",t:"-0100",n:"-01",s:"19701025T010000",r:{m:10,d:"-1SU"}},d:{f:"-0100",t:"+0000",n:"+00",s:"19700329T000000",r:{m:3,d:"-1SU"}}}],["Atlantic/Bermuda",{s:{f:"-0300",t:"-0400",n:"AST",s:"19701101T020000",r:{m:11,d:"1SU"}},d:{f:"-0400",t:"-0300",n:"ADT",s:"19700308T020000",r:{m:3,d:"2SU"}}}],["Atlantic/Canary",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Cape_Verde",{s:{f:"-0100",n:"-01"}}],["Atlantic/Faroe",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Madeira",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Atlantic/Reykjavik",{s:{f:"+0000",n:"GMT"}}],["Atlantic/South_Georgia",{s:{f:"-0200",n:"-02"}}],["Atlantic/St_Helena",{s:{f:"+0000",n:"GMT"}}],["Atlantic/Stanley",{s:{f:"-0300",n:"-03"}}],["Australia/Adelaide",{s:{f:"+1030",t:"+0930",n:"ACST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+0930",t:"+1030",n:"ACDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Brisbane",{s:{f:"+1000",n:"AEST"}}],["Australia/Broken_Hill",{s:{f:"+1030",t:"+0930",n:"ACST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+0930",t:"+1030",n:"ACDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Currie",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Darwin",{s:{f:"+0930",n:"ACST"}}],["Australia/Eucla",{s:{f:"+0845",n:"+0845"}}],["Australia/Hobart",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Lindeman",{s:{f:"+1000",n:"AEST"}}],["Australia/Lord_Howe",{s:{f:"+1100",t:"+1030",n:"+1030",s:"19700405T020000",r:{m:4,d:"1SU"}},d:{f:"+1030",t:"+1100",n:"+11",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Melbourne",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Australia/Perth",{s:{f:"+0800",n:"AWST"}}],["Australia/Sydney",{s:{f:"+1100",t:"+1000",n:"AEST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1000",t:"+1100",n:"AEDT",s:"19701004T020000",r:{m:10,d:"1SU"}}}],["Etc/GMT-0",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT-1",{s:{f:"-0100",n:"-01"}}],["Etc/GMT-10",{s:{f:"-1000",n:"-10"}}],["Etc/GMT-11",{s:{f:"-1100",n:"-11"}}],["Etc/GMT-12",{s:{f:"-1200",n:"-12"}}],["Etc/GMT-2",{s:{f:"-0200",n:"-02"}}],["Etc/GMT-3",{s:{f:"-0300",n:"-03"}}],["Etc/GMT-4",{s:{f:"-0400",n:"-04"}}],["Etc/GMT-5",{s:{f:"-0500",n:"-05"}}],["Etc/GMT-6",{s:{f:"-0600",n:"-06"}}],["Etc/GMT-7",{s:{f:"-0700",n:"-07"}}],["Etc/GMT-8",{s:{f:"-0800",n:"-08"}}],["Etc/GMT-9",{s:{f:"-0900",n:"-09"}}],["Etc/GMT",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT+0",{s:{f:"+0000",n:"GMT"}}],["Etc/GMT+1",{s:{f:"+0100",n:"+01"}}],["Etc/GMT+10",{s:{f:"+1000",n:"+10"}}],["Etc/GMT+11",{s:{f:"+1100",n:"+11"}}],["Etc/GMT+12",{s:{f:"+1200",n:"+12"}}],["Etc/GMT+13",{s:{f:"+1300",n:"+13"}}],["Etc/GMT+14",{s:{f:"+1400",n:"+14"}}],["Etc/GMT+2",{s:{f:"+0200",n:"+02"}}],["Etc/GMT+3",{s:{f:"+0300",n:"+03"}}],["Etc/GMT+4",{s:{f:"+0400",n:"+04"}}],["Etc/GMT+5",{s:{f:"+0500",n:"+05"}}],["Etc/GMT+6",{s:{f:"+0600",n:"+06"}}],["Etc/GMT+7",{s:{f:"+0700",n:"+07"}}],["Etc/GMT+8",{s:{f:"+0800",n:"+08"}}],["Etc/GMT+9",{s:{f:"+0900",n:"+09"}}],["Etc/GMT0",{s:{f:"+0000",n:"GMT"}}],["Etc/Greenwich",{s:{f:"+0000",n:"GMT"}}],["Etc/UCT",{s:{f:"+0000",n:"UCT"}}],["Etc/Universal",{s:{f:"+0000",n:"UTC"}}],["Etc/UTC",{s:{f:"+0000",n:"UTC"}}],["Etc/Zulu",{s:{f:"+0000",n:"UTC"}}],["Europe/Amsterdam",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Andorra",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Astrakhan",{s:{f:"+0400",n:"+04"}}],["Europe/Athens",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Belgrade",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Berlin",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Bratislava",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Brussels",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Bucharest",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Budapest",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Busingen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Chisinau",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Copenhagen",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Dublin",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"IST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Gibraltar",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Guernsey",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Helsinki",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Isle_of_Man",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Istanbul",{s:{f:"+0300",n:"+03"}}],["Europe/Jersey",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Kaliningrad",{s:{f:"+0200",n:"EET"}}],["Europe/Kiev",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Kirov",{s:{f:"+0300",n:"+03"}}],["Europe/Lisbon",{s:{f:"+0100",t:"+0000",n:"WET",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"WEST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Ljubljana",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/London",{s:{f:"+0100",t:"+0000",n:"GMT",s:"19701025T020000",r:{m:10,d:"-1SU"}},d:{f:"+0000",t:"+0100",n:"BST",s:"19700329T010000",r:{m:3,d:"-1SU"}}}],["Europe/Luxembourg",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Madrid",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Malta",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Mariehamn",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Minsk",{s:{f:"+0300",n:"+03"}}],["Europe/Monaco",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Moscow",{s:{f:"+0300",n:"MSK"}}],["Europe/Nicosia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Oslo",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Paris",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Podgorica",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Prague",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Riga",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Rome",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Samara",{s:{f:"+0400",n:"+04"}}],["Europe/San_Marino",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Sarajevo",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Saratov",{s:{f:"+0400",n:"+04"}}],["Europe/Simferopol",{s:{f:"+0300",n:"MSK"}}],["Europe/Skopje",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Sofia",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Stockholm",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Tallinn",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Tirane",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Ulyanovsk",{s:{f:"+0400",n:"+04"}}],["Europe/Uzhgorod",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Vaduz",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vatican",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vienna",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Vilnius",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Volgograd",{s:{f:"+0400",n:"+04"}}],["Europe/Warsaw",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Zagreb",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Europe/Zaporozhye",{s:{f:"+0300",t:"+0200",n:"EET",s:"19701025T040000",r:{m:10,d:"-1SU"}},d:{f:"+0200",t:"+0300",n:"EEST",s:"19700329T030000",r:{m:3,d:"-1SU"}}}],["Europe/Zurich",{s:{f:"+0200",t:"+0100",n:"CET",s:"19701025T030000",r:{m:10,d:"-1SU"}},d:{f:"+0100",t:"+0200",n:"CEST",s:"19700329T020000",r:{m:3,d:"-1SU"}}}],["Indian/Antananarivo",{s:{f:"+0300",n:"EAT"}}],["Indian/Chagos",{s:{f:"+0600",n:"+06"}}],["Indian/Christmas",{s:{f:"+0700",n:"+07"}}],["Indian/Cocos",{s:{f:"+0630",n:"+0630"}}],["Indian/Comoro",{s:{f:"+0300",n:"EAT"}}],["Indian/Kerguelen",{s:{f:"+0500",n:"+05"}}],["Indian/Mahe",{s:{f:"+0400",n:"+04"}}],["Indian/Maldives",{s:{f:"+0500",n:"+05"}}],["Indian/Mauritius",{s:{f:"+0400",n:"+04"}}],["Indian/Mayotte",{s:{f:"+0300",n:"EAT"}}],["Indian/Reunion",{s:{f:"+0400",n:"+04"}}],["Pacific/Apia",{s:{f:"+1400",t:"+1300",n:"+13",s:"19700405T040000",r:{m:4,d:"1SU"}},d:{f:"+1300",t:"+1400",n:"+14",s:"19700927T030000",r:{m:9,d:"-1SU"}}}],["Pacific/Auckland",{s:{f:"+1300",t:"+1200",n:"NZST",s:"19700405T030000",r:{m:4,d:"1SU"}},d:{f:"+1200",t:"+1300",n:"NZDT",s:"19700927T020000",r:{m:9,d:"-1SU"}}}],["Pacific/Bougainville",{s:{f:"+1100",n:"+11"}}],["Pacific/Chatham",{s:{f:"+1345",t:"+1245",n:"+1245",s:"19700405T034500",r:{m:4,d:"1SU"}},d:{f:"+1245",t:"+1345",n:"+1345",s:"19700927T024500",r:{m:9,d:"-1SU"}}}],["Pacific/Chuuk",{s:{f:"+1000",n:"+10"}}],["Pacific/Easter",{s:{f:"-0500",t:"-0600",n:"-06",s:"19700404T220000",r:{m:4,d:"1SA"}},d:{f:"-0600",t:"-0500",n:"-05",s:"19700905T220000",r:{m:9,d:"1SA"}}}],["Pacific/Efate",{s:{f:"+1100",n:"+11"}}],["Pacific/Enderbury",{s:{f:"+1300",n:"+13"}}],["Pacific/Fakaofo",{s:{f:"+1300",n:"+13"}}],["Pacific/Fiji",{s:{f:"+1300",t:"+1200",n:"+12",s:"19700118T030000",r:{m:1,d:"-2SU"}},d:{f:"+1200",t:"+1300",n:"+13",s:"19701101T020000",r:{m:11,d:"1SU"}}}],["Pacific/Funafuti",{s:{f:"+1200",n:"+12"}}],["Pacific/Galapagos",{s:{f:"-0600",n:"-06"}}],["Pacific/Gambier",{s:{f:"-0900",n:"-09"}}],["Pacific/Guadalcanal",{s:{f:"+1100",n:"+11"}}],["Pacific/Guam",{s:{f:"+1000",n:"ChST"}}],["Pacific/Honolulu",{s:{f:"-1000",n:"HST"}}],["Pacific/Kiritimati",{s:{f:"+1400",n:"+14"}}],["Pacific/Kosrae",{s:{f:"+1100",n:"+11"}}],["Pacific/Kwajalein",{s:{f:"+1200",n:"+12"}}],["Pacific/Majuro",{s:{f:"+1200",n:"+12"}}],["Pacific/Marquesas",{s:{f:"-0930",n:"-0930"}}],["Pacific/Midway",{s:{f:"-1100",n:"SST"}}],["Pacific/Nauru",{s:{f:"+1200",n:"+12"}}],["Pacific/Niue",{s:{f:"-1100",n:"-11"}}],["Pacific/Norfolk",{s:{f:"+1100",n:"+11"}}],["Pacific/Noumea",{s:{f:"+1100",n:"+11"}}],["Pacific/Pago_Pago",{s:{f:"-1100",n:"SST"}}],["Pacific/Palau",{s:{f:"+0900",n:"+09"}}],["Pacific/Pitcairn",{s:{f:"-0800",n:"-08"}}],["Pacific/Pohnpei",{s:{f:"+1100",n:"+11"}}],["Pacific/Port_Moresby",{s:{f:"+1000",n:"+10"}}],["Pacific/Rarotonga",{s:{f:"-1000",n:"-10"}}],["Pacific/Saipan",{s:{f:"+1000",n:"ChST"}}],["Pacific/Tahiti",{s:{f:"-1000",n:"-10"}}],["Pacific/Tarawa",{s:{f:"+1200",n:"+12"}}],["Pacific/Tongatapu",{s:{f:"+1300",n:"+13"}}],["Pacific/Wake",{s:{f:"+1200",n:"+12"}}],["Pacific/Wallis",{s:{f:"+1200",n:"+12"}}]])),de}var at;function h0(){if(at)return ie;at=1,Object.defineProperty(ie,"__esModule",{value:!0}),ie.getZoneString=ie.getZoneLines=void 0;const a=c0();function e(i){const{n:r,f:o,t:n,r:l,s:u}=i;return[`TZNAME:${r}`,`TZOFFSETFROM:${o}`,`TZOFFSETTO:${n||o}`,`DTSTART:${u||a.defaultStart}`,...l?[`RRULE:FREQ=${l.f||"YEARLY"};BYMONTH=${l.m};BYDAY=${l.d}`]:[]]}function t(i,r=!0){const o=a.zonesMap.get(i);if(o){const{s:n,d:l}=o;return[...r?["BEGIN:VTIMEZONE"]:[],`TZID:${i}`,"BEGIN:STANDARD",...e(n),"END:STANDARD",...l?["BEGIN:DAYLIGHT",...e(l),"END:DAYLIGHT"]:[],...r?["END:VTIMEZONE"]:[]]}}ie.getZoneLines=t;function s(i,r=!0){return t(i,r)?.join(`\r
|
|
`)}return ie.getZoneString=s,ie}var m0=h0();class Ie{static fromString(e){return new Ie(e)}constructor(e){this.value=e}icaltype="binary";decodeValue(){return this._b64_decode(this.value)}setEncodedValue(e){this.value=this._b64_encode(e)}_b64_encode(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s,i,r,o,n,l,u,c,d=0,m=0,p="",y=[];if(!e)return e;do s=e.charCodeAt(d++),i=e.charCodeAt(d++),r=e.charCodeAt(d++),c=s<<16|i<<8|r,o=c>>18&63,n=c>>12&63,l=c>>6&63,u=c&63,y[m++]=t.charAt(o)+t.charAt(n)+t.charAt(l)+t.charAt(u);while(d<e.length);p=y.join("");let f=e.length%3;return(f?p.slice(0,f-3):p)+"===".slice(f||3)}_b64_decode(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s,i,r,o,n,l,u,c,d=0,m=0,p="",y=[];if(!e)return e;e+="";do o=t.indexOf(e.charAt(d++)),n=t.indexOf(e.charAt(d++)),l=t.indexOf(e.charAt(d++)),u=t.indexOf(e.charAt(d++)),c=o<<18|n<<12|l<<6|u,s=c>>16&255,i=c>>8&255,r=c&255,l==64?y[m++]=String.fromCharCode(s):u==64?y[m++]=String.fromCharCode(s,i):y[m++]=String.fromCharCode(s,i,r);while(d<e.length);return p=y.join(""),p}toString(){return this.value}}const f0=/([PDWHMTS]{1,1})/,p0=["weeks","days","hours","minutes","seconds","isNegative"];class M{static fromSeconds(e){return new M().fromSeconds(e)}static isValueString(e){return e[0]==="P"||e[1]==="P"}static fromString(e){let t=0,s=Object.create(null),i=0;for(;(t=e.search(f0))!==-1;){let r=e[t],o=e.slice(0,Math.max(0,t));e=e.slice(t+1),i+=T0(r,o,s)}if(i<2)throw new Error('invalid duration value: Not enough duration components in "'+e+'"');return new M(s)}static fromData(e){return new M(e)}constructor(e){this.wrappedJSObject=this,this.fromData(e)}weeks=0;days=0;hours=0;minutes=0;seconds=0;isNegative=!1;icalclass="icalduration";icaltype="duration";clone(){return M.fromData(this)}toSeconds(){let e=this.seconds+60*this.minutes+3600*this.hours+86400*this.days+604800*this.weeks;return this.isNegative?-e:e}fromSeconds(e){let t=Math.abs(e);return this.isNegative=e<0,this.days=Y(t/86400),this.days%7==0?(this.weeks=this.days/7,this.days=0):this.weeks=0,t-=(this.days+7*this.weeks)*86400,this.hours=Y(t/3600),t-=this.hours*3600,this.minutes=Y(t/60),t-=this.minutes*60,this.seconds=t,this}fromData(e){for(let t of p0)e&&t in e?this[t]=e[t]:this[t]=0}reset(){this.isNegative=!1,this.weeks=0,this.days=0,this.hours=0,this.minutes=0,this.seconds=0}compare(e){let t=this.toSeconds(),s=e.toSeconds();return(t>s)-(t<s)}normalize(){this.fromSeconds(this.toSeconds())}toString(){if(this.toSeconds()==0)return"PT0S";{let e="";this.isNegative&&(e+="-"),e+="P";let t=!1;return this.weeks?this.days||this.hours||this.minutes||this.seconds?e+=this.weeks*7+this.days+"D":(e+=this.weeks+"W",t=!0):this.days&&(e+=this.days+"D"),t||(this.hours||this.minutes||this.seconds)&&(e+="T",this.hours&&(e+=this.hours+"H"),this.minutes&&(e+=this.minutes+"M"),this.seconds&&(e+=this.seconds+"S")),e}}toICALString(){return this.toString()}}function T0(a,e,t){let s;switch(a){case"P":e&&e==="-"?t.isNegative=!0:t.isNegative=!1;break;case"D":s="days";break;case"W":s="weeks";break;case"H":s="hours";break;case"M":s="minutes";break;case"S":s="seconds";break;default:return 0}if(s){if(!e&&e!==0)throw new Error('invalid duration value: Missing number before "'+a+'"');let i=parseInt(e,10);if(Te(i))throw new Error('invalid duration value: Invalid number "'+e+'" before "'+a+'"');t[s]=i}return 1}class J{static fromString(e,t){let s=e.split("/");if(s.length!==2)throw new Error('Invalid string value: "'+e+'" must contain a "/" char.');let i={start:h.fromDateTimeString(s[0],t)},r=s[1];return M.isValueString(r)?i.duration=M.fromString(r):i.end=h.fromDateTimeString(r,t),new J(i)}static fromData(e){return new J(e)}static fromJSON(e,t,s){function i(r,o){return s?h.fromString(r,o):h.fromDateTimeString(r,o)}return M.isValueString(e[1])?J.fromData({start:i(e[0],t),duration:M.fromString(e[1])}):J.fromData({start:i(e[0],t),end:i(e[1],t)})}constructor(e){if(this.wrappedJSObject=this,e&&"start"in e){if(e.start&&!(e.start instanceof h))throw new TypeError(".start must be an instance of ICAL.Time");this.start=e.start}if(e&&e.end&&e.duration)throw new Error("cannot accept both end and duration");if(e&&"end"in e){if(e.end&&!(e.end instanceof h))throw new TypeError(".end must be an instance of ICAL.Time");this.end=e.end}if(e&&"duration"in e){if(e.duration&&!(e.duration instanceof M))throw new TypeError(".duration must be an instance of ICAL.Duration");this.duration=e.duration}}start=null;end=null;duration=null;icalclass="icalperiod";icaltype="period";clone(){return J.fromData({start:this.start?this.start.clone():null,end:this.end?this.end.clone():null,duration:this.duration?this.duration.clone():null})}getDuration(){return this.duration?this.duration:this.end.subtractDate(this.start)}getEnd(){if(this.end)return this.end;{let e=this.start.clone();return e.addDuration(this.duration),e}}compare(e){return e.compare(this.start)<0?1:e.compare(this.getEnd())>0?-1:0}toString(){return this.start+"/"+(this.end||this.duration)}toJSON(){return[this.start.toString(),(this.end||this.duration).toString()]}toICALString(){return this.start.toICALString()+"/"+(this.end||this.duration).toICALString()}}class h{static _dowCache={};static _wnCache={};static daysInMonth(e,t){let s=[0,31,28,31,30,31,30,31,31,30,31,30,31],i=30;return e<1||e>12||(i=s[e],e==2&&(i+=h.isLeapYear(t))),i}static isLeapYear(e){return e<=1752?e%4==0:e%4==0&&e%100!=0||e%400==0}static fromDayOfYear(e,t){let s=t,i=e,r=new h;r.auto_normalize=!1;let o=h.isLeapYear(s)?1:0;if(i<1)return s--,o=h.isLeapYear(s)?1:0,i+=h.daysInYearPassedMonth[o][12],h.fromDayOfYear(i,s);if(i>h.daysInYearPassedMonth[o][12])return o=h.isLeapYear(s)?1:0,i-=h.daysInYearPassedMonth[o][12],s++,h.fromDayOfYear(i,s);r.year=s,r.isDate=!0;for(let n=11;n>=0;n--)if(i>h.daysInYearPassedMonth[o][n]){r.month=n+1,r.day=i-h.daysInYearPassedMonth[o][n];break}return r.auto_normalize=!0,r}static fromStringv2(e){return new h({year:parseInt(e.slice(0,4),10),month:parseInt(e.slice(5,7),10),day:parseInt(e.slice(8,10),10),isDate:!0})}static fromDateString(e){return new h({year:w(e.slice(0,4)),month:w(e.slice(5,7)),day:w(e.slice(8,10)),isDate:!0})}static fromDateTimeString(e,t){if(e.length<19)throw new Error('invalid date-time value: "'+e+'"');let s,i;e.slice(-1)==="Z"?s=T.utcTimezone:t&&(i=t.getParameter("tzid"),t.parent&&(t.parent.name==="standard"||t.parent.name==="daylight"?s=T.localTimezone:i&&(s=t.parent.getTimeZoneByID(i))));const r={year:w(e.slice(0,4)),month:w(e.slice(5,7)),day:w(e.slice(8,10)),hour:w(e.slice(11,13)),minute:w(e.slice(14,16)),second:w(e.slice(17,19))};return i&&!s&&(r.timezone=i),new h(r,s)}static fromString(e,t){return e.length>10?h.fromDateTimeString(e,t):h.fromDateString(e)}static fromJSDate(e,t){return new h().fromJSDate(e,t)}static fromData=function(e,t){return new h().fromData(e,t)};static now(){return h.fromJSDate(new Date,!1)}static weekOneStarts(e,t){let s=h.fromData({year:e,month:1,day:1,isDate:!0}),i=s.dayOfWeek(),r=t||h.DEFAULT_WEEK_START;return i>h.THURSDAY&&(s.day+=7),r>h.THURSDAY&&(s.day-=7),s.day-=i-r,s}static getDominicalLetter(e){let t="GFEDCBA",s=(e+(e/4|0)+(e/400|0)-(e/100|0)-1)%7;return h.isLeapYear(e)?t[(s+6)%7]+t[s]:t[s]}static#e=null;static get epochTime(){return this.#e||(this.#e=h.fromData({year:1970,month:1,day:1,hour:0,minute:0,second:0,isDate:!1,timezone:"Z"})),this.#e}static _cmp_attr(e,t,s){return e[s]>t[s]?1:e[s]<t[s]?-1:0}static daysInYearPassedMonth=[[0,31,59,90,120,151,181,212,243,273,304,334,365],[0,31,60,91,121,152,182,213,244,274,305,335,366]];static SUNDAY=1;static MONDAY=2;static TUESDAY=3;static WEDNESDAY=4;static THURSDAY=5;static FRIDAY=6;static SATURDAY=7;static DEFAULT_WEEK_START=2;constructor(e,t){this.wrappedJSObject=this,this._time=Object.create(null),this._time.year=0,this._time.month=1,this._time.day=1,this._time.hour=0,this._time.minute=0,this._time.second=0,this._time.isDate=!1,this.fromData(e,t)}icalclass="icaltime";_cachedUnixTime=null;get icaltype(){return this.isDate?"date":"date-time"}zone=null;_pendingNormalization=!1;get year(){return this._getTimeAttr("year")}set year(e){this._setTimeAttr("year",e)}get month(){return this._getTimeAttr("month")}set month(e){this._setTimeAttr("month",e)}get day(){return this._getTimeAttr("day")}set day(e){this._setTimeAttr("day",e)}get hour(){return this._getTimeAttr("hour")}set hour(e){this._setTimeAttr("hour",e)}get minute(){return this._getTimeAttr("minute")}set minute(e){this._setTimeAttr("minute",e)}get second(){return this._getTimeAttr("second")}set second(e){this._setTimeAttr("second",e)}get isDate(){return this._getTimeAttr("isDate")}set isDate(e){this._setTimeAttr("isDate",e)}_getTimeAttr(e){return this._pendingNormalization&&(this._normalize(),this._pendingNormalization=!1),this._time[e]}_setTimeAttr(e,t){e==="isDate"&&t&&!this._time.isDate&&this.adjust(0,0,0,0),this._cachedUnixTime=null,this._pendingNormalization=!0,this._time[e]=t}clone(){return new h(this._time,this.zone)}reset(){this.fromData(h.epochTime),this.zone=T.utcTimezone}resetTo(e,t,s,i,r,o,n){this.fromData({year:e,month:t,day:s,hour:i,minute:r,second:o,zone:n})}fromJSDate(e,t){return e?t?(this.zone=T.utcTimezone,this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()):(this.zone=T.localTimezone,this.year=e.getFullYear(),this.month=e.getMonth()+1,this.day=e.getDate(),this.hour=e.getHours(),this.minute=e.getMinutes(),this.second=e.getSeconds()):this.reset(),this._cachedUnixTime=null,this}fromData(e,t){if(e)for(let[s,i]of Object.entries(e))s!=="icaltype"&&(this[s]=i);if(t&&(this.zone=t),e&&!("isDate"in e)?this.isDate=!("hour"in e):e&&"isDate"in e&&(this.isDate=e.isDate),e&&"timezone"in e){let s=Me.get(e.timezone);this.zone=s||T.localTimezone}return e&&"zone"in e&&(this.zone=e.zone),this.zone||(this.zone=T.localTimezone),this._cachedUnixTime=null,this}dayOfWeek(e){let t=e||h.SUNDAY,s=(this.year<<12)+(this.month<<8)+(this.day<<3)+t;if(s in h._dowCache)return h._dowCache[s];let i=this.day,r=this.month+(this.month<3?12:0),o=this.year-(this.month<3?1:0),n=i+o+Y((r+1)*26/10)+Y(o/4);return n+=Y(o/100)*6+Y(o/400),n=(n+7-t)%7+1,h._dowCache[s]=n,n}dayOfYear(){let e=h.isLeapYear(this.year)?1:0;return h.daysInYearPassedMonth[e][this.month-1]+this.day}startOfWeek(e){let t=e||h.SUNDAY,s=this.clone();return s.day-=(this.dayOfWeek()+7-t)%7,s.isDate=!0,s.hour=0,s.minute=0,s.second=0,s}endOfWeek(e){let t=e||h.SUNDAY,s=this.clone();return s.day+=(7-this.dayOfWeek()+t-h.SUNDAY)%7,s.isDate=!0,s.hour=0,s.minute=0,s.second=0,s}startOfMonth(){let e=this.clone();return e.day=1,e.isDate=!0,e.hour=0,e.minute=0,e.second=0,e}endOfMonth(){let e=this.clone();return e.day=h.daysInMonth(e.month,e.year),e.isDate=!0,e.hour=0,e.minute=0,e.second=0,e}startOfYear(){let e=this.clone();return e.day=1,e.month=1,e.isDate=!0,e.hour=0,e.minute=0,e.second=0,e}endOfYear(){let e=this.clone();return e.day=31,e.month=12,e.isDate=!0,e.hour=0,e.minute=0,e.second=0,e}startDoyWeek(e){let t=e||h.SUNDAY,s=this.dayOfWeek()-t;return s<0&&(s+=7),this.dayOfYear()-s}getDominicalLetter(){return h.getDominicalLetter(this.year)}nthWeekDay(e,t){let s=h.daysInMonth(this.month,this.year),i,r=t,o=0,n=this.clone();if(r>=0){n.day=1,r!=0&&r--,o=n.day;let l=n.dayOfWeek(),u=e-l;u<0&&(u+=7),o+=u,o-=e,i=e}else{n.day=s;let l=n.dayOfWeek();r++,i=l-e,i<0&&(i+=7),i=s-i}return i+=r*7,o+i}isNthWeekDay(e,t){let s=this.dayOfWeek();return t===0&&s===e||this.nthWeekDay(e,t)===this.day}weekNumber(e){let t=(this.year<<12)+(this.month<<8)+(this.day<<3)+e;if(t in h._wnCache)return h._wnCache[t];let s,i=this.clone();i.isDate=!0;let r=this.year;i.month==12&&i.day>25?(s=h.weekOneStarts(r+1,e),i.compare(s)<0?s=h.weekOneStarts(r,e):r++):(s=h.weekOneStarts(r,e),i.compare(s)<0&&(s=h.weekOneStarts(--r,e)));let o=i.subtractDate(s).toSeconds()/86400,n=Y(o/7)+1;return h._wnCache[t]=n,n}addDuration(e){let t=e.isNegative?-1:1,s=this.second,i=this.minute,r=this.hour,o=this.day;s+=t*e.seconds,i+=t*e.minutes,r+=t*e.hours,o+=t*e.days,o+=t*7*e.weeks,this.second=s,this.minute=i,this.hour=r,this.day=o,this._cachedUnixTime=null}subtractDate(e){let t=this.toUnixTime()+this.utcOffset(),s=e.toUnixTime()+e.utcOffset();return M.fromSeconds(t-s)}subtractDateTz(e){let t=this.toUnixTime(),s=e.toUnixTime();return M.fromSeconds(t-s)}compare(e){if(e instanceof J)return-1*e.compare(this);{let t=this.toUnixTime(),s=e.toUnixTime();return t>s?1:s>t?-1:0}}compareDateOnlyTz(e,t){let s=this.convertToZone(t),i=e.convertToZone(t),r=0;return(r=h._cmp_attr(s,i,"year"))!=0||(r=h._cmp_attr(s,i,"month"))!=0||(r=h._cmp_attr(s,i,"day"))!=0,r}convertToZone(e){let t=this.clone(),s=this.zone.tzid==e.tzid;return!this.isDate&&!s&&T.convert_time(t,this.zone,e),t.zone=e,t}utcOffset(){return this.zone==T.localTimezone||this.zone==T.utcTimezone?0:this.zone.utcOffset(this)}toICALString(){let e=this.toString();return e.length>10?b.icalendar.value["date-time"].toICAL(e):b.icalendar.value.date.toICAL(e)}toString(){let e=this.year+"-"+B(this.month)+"-"+B(this.day);return this.isDate||(e+="T"+B(this.hour)+":"+B(this.minute)+":"+B(this.second),this.zone===T.utcTimezone&&(e+="Z")),e}toJSDate(){return this.zone==T.localTimezone?this.isDate?new Date(this.year,this.month-1,this.day):new Date(this.year,this.month-1,this.day,this.hour,this.minute,this.second,0):new Date(this.toUnixTime()*1e3)}_normalize(){return this._time.isDate&&(this._time.hour=0,this._time.minute=0,this._time.second=0),this.adjust(0,0,0,0),this}adjust(e,t,s,i,r){let o,n,l=0,u=0,c,d,m,p,y,f=r||this._time;if(f.isDate||(c=f.second+i,f.second=c%60,o=Y(c/60),f.second<0&&(f.second+=60,o--),d=f.minute+s+o,f.minute=d%60,n=Y(d/60),f.minute<0&&(f.minute+=60,n--),m=f.hour+t+n,f.hour=m%24,l=Y(m/24),f.hour<0&&(f.hour+=24,l--)),f.month>12?u=Y((f.month-1)/12):f.month<1&&(u=Y(f.month/12)-1),f.year+=u,f.month-=12*u,p=f.day+e+l,p>0)for(;y=h.daysInMonth(f.month,f.year),!(p<=y);)f.month++,f.month>12&&(f.year++,f.month=1),p-=y;else for(;p<=0;)f.month==1?(f.year--,f.month=12):f.month--,p+=h.daysInMonth(f.month,f.year);return f.day=p,this._cachedUnixTime=null,this}fromUnixTime(e){this.zone=T.utcTimezone;let t=new Date(e*1e3);this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this._time.isDate?(this.hour=0,this.minute=0,this.second=0):(this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()),this._cachedUnixTime=null}toUnixTime(){if(this._cachedUnixTime!==null)return this._cachedUnixTime;let e=this.utcOffset(),t=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second-e);return this._cachedUnixTime=t/1e3,this._cachedUnixTime}toJSON(){let e=["year","month","day","hour","minute","second","isDate"],t=Object.create(null),s=0,i=e.length,r;for(;s<i;s++)r=e[s],t[r]=this[r];return this.zone&&(t.timezone=this.zone.tzid),t}}const y0=/[^ \t]/,Ae=":",ke=";",S0="=",A0="unknown",g0="text",D0={"^'":'"',"^n":`
|
|
`,"^^":"^"};function g(a){let e={},t=e.component=[];if(e.stack=[t],g._eachLine(a,function(s,i){g._handleContentLine(i,e)}),e.stack.length>1)throw new re("invalid ical body. component began but did not end");return e=null,t.length==1?t[0]:t}g.property=function(a,e){let t={component:[[],[]],designSet:e||b.defaultSet};return g._handleContentLine(a,t),t.component[1][0]},g.component=function(a){return g(a)};class re extends Error{name=this.constructor.name}g.ParserError=re,g._handleContentLine=function(a,e){let t=a.indexOf(Ae),s=a.indexOf(ke),i,r,o,n,l={};s!==-1&&t!==-1&&s>t&&(s=-1);let u;if(s!==-1){if(o=a.slice(0,Math.max(0,s)).toLowerCase(),u=g._parseParameters(a.slice(Math.max(0,s)),0,e.designSet),u[2]==-1)throw new re("Invalid parameters in '"+a+"'");l=u[0];let U;if(typeof u[1]=="string"?U=u[1].length:U=u[1].reduce((he,ae)=>he+ae.length,0),i=U+u[2]+s,(r=a.slice(Math.max(0,i)).indexOf(Ae))!==-1)n=a.slice(Math.max(0,i+r+1));else throw new re("Missing parameter value in '"+a+"'")}else if(t!==-1){if(o=a.slice(0,Math.max(0,t)).toLowerCase(),n=a.slice(Math.max(0,t+1)),o==="begin"){let U=[n.toLowerCase(),[],[]];e.stack.length===1?e.component.push(U):e.component[2].push(U),e.stack.push(e.component),e.component=U,e.designSet||(e.designSet=b.getDesignSet(e.component[0]));return}else if(o==="end"){e.component=e.stack.pop();return}}else throw new re('invalid line (no token ";" or ":") "'+a+'"');let c,d=!1,m=!1,p,y,f;e.designSet.propertyGroups&&o.indexOf(".")!==-1?(y=o.split("."),l.group=y[0],f=y[1]):f=o,f in e.designSet.property&&(p=e.designSet.property[f],"multiValue"in p&&(d=p.multiValue),"structuredValue"in p&&(m=p.structuredValue),n&&"detectType"in p&&(c=p.detectType(n))),c||("value"in l?c=l.value.toLowerCase():p?c=p.defaultType:c=A0),delete l.value;let A;d&&m?(n=g._parseMultiValue(n,m,c,[],d,e.designSet,m),A=[f,l,c,n]):d?(A=[f,l,c],g._parseMultiValue(n,d,c,A,null,e.designSet,!1)):m?(n=g._parseMultiValue(n,m,c,[],null,e.designSet,m),A=[f,l,c,n]):(n=g._parseValue(n,c,e.designSet,!1),A=[f,l,c,n]),e.component[0]==="vcard"&&e.component[1].length===0&&!(o==="version"&&n==="4.0")&&(e.designSet=b.getDesignSet("vcard3")),e.component[1].push(A)},g._parseValue=function(a,e,t,s){return e in t.value&&"fromICAL"in t.value[e]?t.value[e].fromICAL(a,s):a},g._parseParameters=function(a,e,t){let s=e,i=0,r=S0,o={},n,l,u,c=-1,d,m,p;for(;i!==!1&&(i=a.indexOf(r,i+1))!==-1;){if(n=a.slice(s+1,i),n.length==0)throw new re("Empty parameter name in '"+a+"'");if(l=n.toLowerCase(),p=!1,m=!1,l in t.param&&t.param[l].valueType?d=t.param[l].valueType:d=g0,l in t.param&&(m=t.param[l].multiValue,t.param[l].multiValueSeparateDQuote&&(p=g._rfc6868Escape('"'+m+'"'))),a[i+1]==='"'){if(c=i+2,i=a.indexOf('"',c),m&&i!=-1){let A=!0;for(;A;)a[i+1]==m&&a[i+2]=='"'?i=a.indexOf('"',i+3):A=!1}if(i===-1)throw new re('invalid line (no matching double quote) "'+a+'"');u=a.slice(c,i),s=a.indexOf(ke,i);let f=a.indexOf(Ae,i);(s===-1||f!==-1&&s>f)&&(i=!1)}else{c=i+1;let f=a.indexOf(ke,c),A=a.indexOf(Ae,c);A!==-1&&f>A?(f=A,i=!1):f===-1?(A===-1?f=a.length:f=A,i=!1):(s=f,i=f),u=a.slice(c,f)}const y=u.length;if(u=g._rfc6868Escape(u),c+=y-u.length,m){let f=p||m;u=g._parseMultiValue(u,f,d,[],null,t)}else u=g._parseValue(u,d,t);m&&l in o?Array.isArray(o[l])?o[l].push(u):o[l]=[o[l],u]:o[l]=u}return[o,u,c]},g._rfc6868Escape=function(a){return a.replace(/\^['n^]/g,function(e){return D0[e]})},g._parseMultiValue=function(a,e,t,s,i,r,o){let n=0,l=0,u;if(e.length===0)return a;for(;(n=At(a,e,l))!==-1;)u=a.slice(l,n),i?u=g._parseMultiValue(u,i,t,[],null,r,o):u=g._parseValue(u,t,r,o),s.push(u),l=n+e.length;return u=a.slice(l),i?u=g._parseMultiValue(u,i,t,[],null,r,o):u=g._parseValue(u,t,r,o),s.push(u),s.length==1?s[0]:s},g._eachLine=function(a,e){let t=a.length,s=a.search(y0),i=s,r,o,n;do i=a.indexOf(`
|
|
`,s)+1,i>1&&a[i-2]==="\r"?n=2:n=1,i===0&&(i=t,n=0),o=a[s],o===" "||o===" "?r+=a.slice(s+1,i-n):(r&&e(null,r),r=a.slice(s,i-n)),s=i;while(i!==t);r=r.trim(),r.length&&e(null,r)};const E0=["tzid","location","tznames","latitude","longitude"];class T{static _compare_change_fn(e,t){return e.year<t.year?-1:e.year>t.year?1:e.month<t.month?-1:e.month>t.month?1:e.day<t.day?-1:e.day>t.day?1:e.hour<t.hour?-1:e.hour>t.hour?1:e.minute<t.minute?-1:e.minute>t.minute?1:e.second<t.second?-1:e.second>t.second?1:0}static convert_time(e,t,s){if(e.isDate||t.tzid==s.tzid||t==T.localTimezone||s==T.localTimezone)return e.zone=s,e;let i=t.utcOffset(e);return e.adjust(0,0,0,-i),i=s.utcOffset(e),e.adjust(0,0,0,i),null}static fromData(e){return new T().fromData(e)}static#e=null;static get utcTimezone(){return this.#e||(this.#e=T.fromData({tzid:"UTC"})),this.#e}static#t=null;static get localTimezone(){return this.#t||(this.#t=T.fromData({tzid:"floating"})),this.#t}static adjust_change(e,t,s,i,r){return h.prototype.adjust.call(e,t,s,i,r,e)}static _minimumExpansionYear=-1;static EXTRA_COVERAGE=5;constructor(e){this.wrappedJSObject=this,this.fromData(e)}tzid="";location="";tznames="";latitude=0;longitude=0;component=null;expandedUntilYear=0;icalclass="icaltimezone";fromData(e){if(this.expandedUntilYear=0,this.changes=[],e instanceof V)this.component=e;else{if(e&&"component"in e)if(typeof e.component=="string"){let t=g(e.component);this.component=new V(t)}else e.component instanceof V?this.component=e.component:this.component=null;for(let t of E0)e&&t in e&&(this[t]=e[t])}return this.component instanceof V&&!this.tzid&&(this.tzid=this.component.getFirstPropertyValue("tzid")),this}utcOffset(e){if(this==T.utcTimezone||this==T.localTimezone||(this._ensureCoverage(e.year),!this.changes.length))return 0;let t={year:e.year,month:e.month,day:e.day,hour:e.hour,minute:e.minute,second:e.second},s=this._findNearbyChange(t),i=-1,r=1;for(;;){let n=le(this.changes[s],!0);if(n.utcOffset<n.prevUtcOffset?T.adjust_change(n,0,0,0,n.utcOffset):T.adjust_change(n,0,0,0,n.prevUtcOffset),T._compare_change_fn(t,n)>=0?i=s:r=-1,r==-1&&i!=-1)break;if(s+=r,s<0)return 0;if(s>=this.changes.length)break}let o=this.changes[i];if(o.utcOffset-o.prevUtcOffset<0&&i>0){let n=le(o,!0);if(T.adjust_change(n,0,0,0,n.prevUtcOffset),T._compare_change_fn(t,n)<0){let l=this.changes[i-1],u=!1;o.is_daylight!=u&&l.is_daylight==u&&(o=l)}}return o.utcOffset}_findNearbyChange(e){let t=ne(this.changes,e,T._compare_change_fn);return t>=this.changes.length?this.changes.length-1:t}_ensureCoverage(e){if(T._minimumExpansionYear==-1){let s=h.now();T._minimumExpansionYear=s.year}let t=e;if(t<T._minimumExpansionYear&&(t=T._minimumExpansionYear),t+=T.EXTRA_COVERAGE,!this.changes.length||this.expandedUntilYear<e){let s=this.component.getAllSubcomponents(),i=s.length,r=0;for(;r<i;r++)this._expandComponent(s[r],t,this.changes);this.changes.sort(T._compare_change_fn),this.expandedUntilYear=t}}_expandComponent(e,t,s){if(!e.hasProperty("dtstart")||!e.hasProperty("tzoffsetto")||!e.hasProperty("tzoffsetfrom"))return null;let i=e.getFirstProperty("dtstart").getFirstValue(),r;function o(l){return l.factor*(l.hours*3600+l.minutes*60)}function n(){let l={};return l.is_daylight=e.name=="daylight",l.utcOffset=o(e.getFirstProperty("tzoffsetto").getFirstValue()),l.prevUtcOffset=o(e.getFirstProperty("tzoffsetfrom").getFirstValue()),l}if(!e.hasProperty("rrule")&&!e.hasProperty("rdate"))r=n(),r.year=i.year,r.month=i.month,r.day=i.day,r.hour=i.hour,r.minute=i.minute,r.second=i.second,T.adjust_change(r,0,0,0,-r.prevUtcOffset),s.push(r);else{let l=e.getAllProperties("rdate");for(let c of l){let d=c.getFirstValue();r=n(),r.year=d.year,r.month=d.month,r.day=d.day,d.isDate?(r.hour=i.hour,r.minute=i.minute,r.second=i.second,i.zone!=T.utcTimezone&&T.adjust_change(r,0,0,0,-r.prevUtcOffset)):(r.hour=d.hour,r.minute=d.minute,r.second=d.second,d.zone!=T.utcTimezone&&T.adjust_change(r,0,0,0,-r.prevUtcOffset)),s.push(r)}let u=e.getFirstProperty("rrule");if(u){u=u.getFirstValue(),r=n(),u.until&&u.until.zone==T.utcTimezone&&(u.until.adjust(0,0,0,r.prevUtcOffset),u.until.zone=T.localTimezone);let c=u.iterator(i),d;for(;(d=c.next())&&(r=n(),!(d.year>t||!d));)r.year=d.year,r.month=d.month,r.day=d.day,r.hour=d.hour,r.minute=d.minute,r.second=d.second,r.isDate=d.isDate,T.adjust_change(r,0,0,0,-r.prevUtcOffset),s.push(r)}}return s}toString(){return this.tznames?this.tznames:this.tzid}}let x=null;const Me={get count(){return x===null?0:Object.keys(x).length},reset:function(){x=Object.create(null);let a=T.utcTimezone;x.Z=a,x.UTC=a,x.GMT=a},_hard_reset:function(){x=null},has:function(a){return x===null?!1:!!x[a]},get:function(a){return x===null&&this.reset(),x[a]},register:function(a,e){if(x===null&&this.reset(),typeof a=="string"&&e instanceof T&&([a,e]=[e,a]),e||(a instanceof T?e=a.tzid:a.name==="vtimezone"&&(a=new T(a),e=a.tzid)),!e)throw new TypeError("Neither a timezone nor a name was passed");if(a instanceof T)x[e]=a;else throw new TypeError("timezone must be ICAL.Timezone or ICAL.Component")},remove:function(a){return x===null?null:delete x[a]}};function _0(a){let e,t,s,i,r;if(!a||a.name!=="vcalendar")return a;for(e=a.getAllSubcomponents(),t=[],s={},r=0;r<e.length;r++)if(e[r].name==="vtimezone"){let o=e[r].getFirstProperty("tzid").getFirstValue();s[o]=e[r]}else t=t.concat(e[r].getAllProperties());for(i={},r=0;r<t.length;r++){let o=t[r].getParameter("tzid");o&&(i[o]=!0)}for(let[o,n]of Object.entries(s))i[o]||a.removeSubcomponent(n);for(let o of Object.keys(i))!s[o]&&Me.has(o)&&a.addSubcomponent(Me.get(o).component);return a}function Te(a){return typeof a=="number"&&isNaN(a)}function w(a){let e=parseInt(a,10);if(Te(e))throw new Error('Could not extract integer from "'+a+'"');return e}function $(a,e){if(!(typeof a>"u"))return a instanceof e?a:new e(a)}function At(a,e,t){for(;(t=a.indexOf(e,t))!==-1;)if(t>0&&a[t-1]==="\\")t+=1;else return t;return-1}function ne(a,e,t){if(!a.length)return 0;let s=0,i=a.length-1,r,o;for(;s<=i;)if(r=s+Math.floor((i-s)/2),o=t(e,a[r]),o<0)i=r-1;else if(o>0)s=r+1;else break;return o<0?r:o>0?r+1:r}function le(a,e){if(!a||typeof a!="object")return a;if(a instanceof Date)return new Date(a.getTime());if("clone"in a)return a.clone();if(Array.isArray(a)){let t=[];for(let s=0;s<a.length;s++)t.push(e?le(a[s],!0):a[s]);return t}else{let t={};for(let[s,i]of Object.entries(a))e?t[s]=le(i,!0):t[s]=i;return t}}function gt(a){let e="",t=a||"",s=0,i=0;for(;t.length;){let r=t.codePointAt(s);r<128?++i:r<2048?i+=2:r<65536?i+=3:i+=4,i<L.foldLength+1?s+=r>65535?2:1:(e+=L.newLineChar+" "+t.slice(0,Math.max(0,s)),t=t.slice(Math.max(0,s)),s=i=0)}return e.slice(L.newLineChar.length+1)}function B(a){switch(typeof a!="string"&&(typeof a=="number"&&(a=parseInt(a)),a=String(a)),a.length){case 0:return"00";case 1:return"0"+a;default:return a}}function Y(a){return a<0?Math.ceil(a):Math.floor(a)}function ue(a,e){for(let t in a){let s=Object.getOwnPropertyDescriptor(a,t);s&&!Object.getOwnPropertyDescriptor(e,t)&&Object.defineProperty(e,t,s)}return e}var b0=Object.freeze({__proto__:null,binsearchInsert:ne,clone:le,extend:ue,foldline:gt,formatClassType:$,isStrictlyNaN:Te,pad2:B,strictParseInt:w,trunc:Y,unescapedIndexOf:At,updateTimezones:_0});class j{static fromString(e){let t={};return t.factor=e[0]==="+"?1:-1,t.hours=w(e.slice(1,3)),t.minutes=w(e.slice(4,6)),new j(t)}static fromSeconds(e){let t=new j;return t.fromSeconds(e),t}constructor(e){this.fromData(e)}hours=0;minutes=0;factor=1;icaltype="utc-offset";clone(){return j.fromSeconds(this.toSeconds())}fromData(e){if(e)for(let[t,s]of Object.entries(e))this[t]=s;this._normalize()}fromSeconds(e){let t=Math.abs(e);return this.factor=e<0?-1:1,this.hours=Y(t/3600),t-=this.hours*3600,this.minutes=Y(t/60),this}toSeconds(){return this.factor*(60*this.minutes+3600*this.hours)}compare(e){let t=this.toSeconds(),s=e.toSeconds();return(t>s)-(s>t)}_normalize(){let e=this.toSeconds(),t=this.factor;for(;e<-43200;)e+=97200;for(;e>50400;)e-=97200;this.fromSeconds(e),e==0&&(this.factor=t)}toICALString(){return b.icalendar.value["utc-offset"].toICAL(this.toString())}toString(){return(this.factor==1?"+":"-")+B(this.hours)+":"+B(this.minutes)}}class se extends h{static fromDateAndOrTimeString(e,t){function s(f,A,U){return f?w(f.slice(A,A+U)):null}let i=e.split("T"),r=i[0],o=i[1],n=o?b.vcard.value.time._splitZone(o):[],l=n[0],u=n[1],c=r?r.length:0,d=u?u.length:0,m=r&&r[0]=="-"&&r[1]=="-",p=u&&u[0]=="-",y={year:m?null:s(r,0,4),month:m&&(c==4||c==7)?s(r,2,2):c==7||c==10?s(r,5,2):null,day:c==5?s(r,3,2):c==7&&m?s(r,5,2):c==10?s(r,8,2):null,hour:p?null:s(u,0,2),minute:p&&d==3?s(u,1,2):d>4?p?s(u,1,2):s(u,3,2):null,second:d==4?s(u,2,2):d==6?s(u,4,2):d==8?s(u,6,2):null};return l=="Z"?l=T.utcTimezone:l&&l[3]==":"?l=j.fromString(l):l=null,new se(y,l,t)}constructor(e,t,s){super(e,t),this.icaltype=s||"date-and-or-time"}icalclass="vcardtime";icaltype="date-and-or-time";clone(){return new se(this._time,this.zone,this.icaltype)}_normalize(){return this}utcOffset(){return this.zone instanceof j?this.zone.toSeconds():h.prototype.utcOffset.apply(this,arguments)}toICALString(){return b.vcard.value[this.icaltype].toICAL(this.toString())}toString(){let e=this.year,t=this.month,s=this.day,i=this.hour,r=this.minute,o=this.second,n=e!==null,l=t!==null,u=s!==null,c=i!==null,d=r!==null,m=o!==null,p=(n?B(e)+(l||u?"-":""):l||u?"--":"")+(l?B(t):"")+(u?"-"+B(s):""),y=(c?B(i):"-")+(c&&d?":":"")+(d?B(r):"")+(!c&&!d?"-":"")+(d&&m?":":"")+(m?B(o):""),f;switch(this.zone===T.utcTimezone?f="Z":this.zone instanceof j?f=this.zone.toString():this.zone===T.localTimezone?f="":this.zone instanceof T?f=j.fromSeconds(this.zone.utcOffset(this)).toString():f="",this.icaltype){case"time":return y+f;case"date-and-or-time":case"date-time":return p+(y=="--"?"":"T"+y+f);case"date":return p}return null}}class W{static _indexMap={BYSECOND:0,BYMINUTE:1,BYHOUR:2,BYDAY:3,BYMONTHDAY:4,BYYEARDAY:5,BYWEEKNO:6,BYMONTH:7,BYSETPOS:8};static _expandMap={SECONDLY:[1,1,1,1,1,1,1,1],MINUTELY:[2,1,1,1,1,1,1,1],HOURLY:[2,2,1,1,1,1,1,1],DAILY:[2,2,2,1,1,1,1,1],WEEKLY:[2,2,2,2,3,3,1,1],MONTHLY:[2,2,2,2,2,3,3,1],YEARLY:[2,2,2,2,2,2,2,2]};static UNKNOWN=0;static CONTRACT=1;static EXPAND=2;static ILLEGAL=3;constructor(e){this.fromData(e)}completed=!1;rule=null;dtstart=null;last=null;occurrence_number=0;by_indices=null;initialized=!1;by_data=null;days=null;days_index=0;fromData(e){if(this.rule=$(e.rule,N),!this.rule)throw new Error("iterator requires a (ICAL.Recur) rule");if(this.dtstart=$(e.dtstart,h),!this.dtstart)throw new Error("iterator requires a (ICAL.Time) dtstart");if(e.by_data?this.by_data=e.by_data:this.by_data=le(this.rule.parts,!0),e.occurrence_number&&(this.occurrence_number=e.occurrence_number),this.days=e.days||[],e.last&&(this.last=$(e.last,h)),this.by_indices=e.by_indices,this.by_indices||(this.by_indices={BYSECOND:0,BYMINUTE:0,BYHOUR:0,BYDAY:0,BYMONTH:0,BYWEEKNO:0,BYMONTHDAY:0}),this.initialized=e.initialized||!1,!this.initialized)try{this.init()}catch(t){if(t instanceof ge)this.completed=!0;else throw t}}init(){this.initialized=!0,this.last=this.dtstart.clone();let e=this.by_data;if("BYDAY"in e&&this.sort_byday_rules(e.BYDAY),"BYYEARDAY"in e&&("BYMONTH"in e||"BYWEEKNO"in e||"BYMONTHDAY"in e))throw new Error("Invalid BYYEARDAY rule");if("BYWEEKNO"in e&&"BYMONTHDAY"in e)throw new Error("BYWEEKNO does not fit to BYMONTHDAY");if(this.rule.freq=="MONTHLY"&&("BYYEARDAY"in e||"BYWEEKNO"in e))throw new Error("For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear");if(this.rule.freq=="WEEKLY"&&("BYYEARDAY"in e||"BYMONTHDAY"in e))throw new Error("For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear");if(this.rule.freq!="YEARLY"&&"BYYEARDAY"in e)throw new Error("BYYEARDAY may only appear in YEARLY rules");if(this.last.second=this.setup_defaults("BYSECOND","SECONDLY",this.dtstart.second),this.last.minute=this.setup_defaults("BYMINUTE","MINUTELY",this.dtstart.minute),this.last.hour=this.setup_defaults("BYHOUR","HOURLY",this.dtstart.hour),this.last.day=this.setup_defaults("BYMONTHDAY","DAILY",this.dtstart.day),this.last.month=this.setup_defaults("BYMONTH","MONTHLY",this.dtstart.month),this.rule.freq=="WEEKLY")if("BYDAY"in e){let[,t]=this.ruleDayOfWeek(e.BYDAY[0],this.rule.wkst),s=t-this.last.dayOfWeek(this.rule.wkst);(this.last.dayOfWeek(this.rule.wkst)<t&&s>=0||s<0)&&(this.last.day+=s)}else{let t=N.numericDayToIcalDay(this.dtstart.dayOfWeek());e.BYDAY=[t]}if(this.rule.freq=="YEARLY"){const t=this.rule.until?this.rule.until.year:2e4;for(;this.last.year<=t&&(this.expand_year_days(this.last.year),!(this.days.length>0));)this.increment_year(this.rule.interval);if(this.days.length==0)throw new ge;if(!this._nextByYearDay()&&!this.next_year()&&!this.next_year()&&!this.next_year())throw new ge}if(this.rule.freq=="MONTHLY"){if(this.has_by_data("BYDAY")){let t=null,s=this.last.clone(),i=h.daysInMonth(this.last.month,this.last.year);for(let r of this.by_data.BYDAY){this.last=s.clone();let[o,n]=this.ruleDayOfWeek(r),l=this.last.nthWeekDay(n,o);if(o>=6||o<=-6)throw new Error("Malformed values in BYDAY part");if(l>i||l<=0){if(t&&t.month==s.month)continue;for(;l>i||l<=0;)this.increment_month(),i=h.daysInMonth(this.last.month,this.last.year),l=this.last.nthWeekDay(n,o)}this.last.day=l,(!t||this.last.compare(t)<0)&&(t=this.last.clone())}if(this.last=t.clone(),this.has_by_data("BYMONTHDAY")&&this._byDayAndMonthDay(!0),this.last.day>i||this.last.day==0)throw new Error("Malformed values in BYDAY part")}else if(this.has_by_data("BYMONTHDAY")){this.last.day=1;let t=this.normalizeByMonthDayRules(this.last.year,this.last.month,this.rule.parts.BYMONTHDAY).filter(s=>s>=this.last.day);if(t.length)this.last.day=t[0],this.by_data.BYMONTHDAY=t;else if(!this.next_month()&&!this.next_month()&&!this.next_month())throw new ge}}}next(e=!1){let t=this.last?this.last.clone():null;if((this.rule.count&&this.occurrence_number>=this.rule.count||this.rule.until&&this.last.compare(this.rule.until)>0)&&(this.completed=!0),this.completed)return null;if(this.occurrence_number==0&&this.last.compare(this.dtstart)>=0)return this.occurrence_number++,this.last;let s,i=0;do switch(s=1,this.rule.freq){case"SECONDLY":this.next_second();break;case"MINUTELY":this.next_minute();break;case"HOURLY":this.next_hour();break;case"DAILY":this.next_day();break;case"WEEKLY":this.next_week();break;case"MONTHLY":if(s=this.next_month(),s)i=0;else if(++i==336)return this.completed=!0,null;break;case"YEARLY":if(s=this.next_year(),s)i=0;else if(++i==28)return this.completed=!0,null;break;default:return null}while(!this.check_contracting_rules()||this.last.compare(this.dtstart)<0||!s);if(this.last.compare(t)==0){if(e)throw new Error("Same occurrence found twice, protecting you from death by recursion");this.next(!0)}return this.rule.until&&this.last.compare(this.rule.until)>0?(this.completed=!0,null):(this.occurrence_number++,this.last)}next_second(){return this.next_generic("BYSECOND","SECONDLY","second","minute")}increment_second(e){return this.increment_generic(e,"second",60,"minute")}next_minute(){return this.next_generic("BYMINUTE","MINUTELY","minute","hour","next_second")}increment_minute(e){return this.increment_generic(e,"minute",60,"hour")}next_hour(){return this.next_generic("BYHOUR","HOURLY","hour","monthday","next_minute")}increment_hour(e){this.increment_generic(e,"hour",24,"monthday")}next_day(){let e=this.rule.freq=="DAILY";return this.next_hour()==0||(e?this.increment_monthday(this.rule.interval):this.increment_monthday(1)),0}next_week(){let e=0;if(this.next_weekday_by_week()==0)return e;if(this.has_by_data("BYWEEKNO")){this.by_indices.BYWEEKNO++,this.by_indices.BYWEEKNO==this.by_data.BYWEEKNO.length&&(this.by_indices.BYWEEKNO=0,e=1),this.last.month=1,this.last.day=1;let t=this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];this.last.day+=7*t,e&&this.increment_year(1)}else this.increment_monthday(7*this.rule.interval);return e}normalizeByMonthDayRules(e,t,s){let i=h.daysInMonth(t,e),r=[],o=0,n=s.length,l;for(;o<n;o++){if(l=parseInt(s[o],10),isNaN(l))throw new Error("Invalid BYMONTHDAY value");if(!(Math.abs(l)>i)){if(l<0)l=i+(l+1);else if(l===0)continue;r.indexOf(l)===-1&&r.push(l)}}return r.sort(function(u,c){return u-c})}_byDayAndMonthDay(e){let t,s=this.by_data.BYDAY,i,r=0,o,n=s.length,l=0,u,c=this,d=this.last.day;function m(){for(u=h.daysInMonth(c.last.month,c.last.year),t=c.normalizeByMonthDayRules(c.last.year,c.last.month,c.by_data.BYMONTHDAY),o=t.length;t[r]<=d&&!(e&&t[r]==d)&&r<o-1;)r++}function p(){d=0,c.increment_month(),r=0,m()}m(),e&&(d-=1);let y=48;for(;!l&&y;){if(y--,i=d+1,i>u){p();continue}let f=t[r++];if(f>=i)d=f;else{p();continue}for(let A=0;A<n;A++){let U=this.ruleDayOfWeek(s[A]),he=U[0],ae=U[1];if(this.last.day=d,this.last.isNthWeekDay(ae,he)){l=1;break}}if(!l&&r===o){p();continue}}if(y<=0)throw new Error("Malformed values in BYDAY combined with BYMONTHDAY parts");return l}next_month(){let e=1;if(this.next_hour()==0)return e;if(this.has_by_data("BYDAY")&&this.has_by_data("BYMONTHDAY"))e=this._byDayAndMonthDay();else if(this.has_by_data("BYDAY")){let t=h.daysInMonth(this.last.month,this.last.year),s=0,i=0;if(this.has_by_data("BYSETPOS")){let o=this.last.day;for(let n=1;n<=t;n++)this.last.day=n,this.is_day_in_byday(this.last)&&(i++,n<=o&&s++);this.last.day=o}e=0;let r;for(r=this.last.day+1;r<=t;r++)if(this.last.day=r,this.is_day_in_byday(this.last)&&(!this.has_by_data("BYSETPOS")||this.check_set_position(++s)||this.check_set_position(s-i-1))){e=1;break}r>t&&(this.last.day=1,this.increment_month(),this.is_day_in_byday(this.last)?(!this.has_by_data("BYSETPOS")||this.check_set_position(1))&&(e=1):e=0)}else if(this.has_by_data("BYMONTHDAY")){if(this.by_indices.BYMONTHDAY++,this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length&&(this.by_indices.BYMONTHDAY=0,this.increment_month(),this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length))return 0;let t=h.daysInMonth(this.last.month,this.last.year),s=this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];s<0&&(s=t+s+1),s>t?(this.last.day=1,e=this.is_day_in_byday(this.last)):this.last.day=s}else{this.increment_month();let t=h.daysInMonth(this.last.month,this.last.year);this.by_data.BYMONTHDAY[0]>t?e=0:this.last.day=this.by_data.BYMONTHDAY[0]}return e}next_weekday_by_week(){let e=0;if(this.next_hour()==0)return e;if(!this.has_by_data("BYDAY"))return 1;for(;;){let t=new h;this.by_indices.BYDAY++,this.by_indices.BYDAY==Object.keys(this.by_data.BYDAY).length&&(this.by_indices.BYDAY=0,e=1);let s=this.by_data.BYDAY[this.by_indices.BYDAY],i=this.ruleDayOfWeek(s)[1];i-=this.rule.wkst,i<0&&(i+=7),t.year=this.last.year,t.month=this.last.month,t.day=this.last.day;let r=t.startDoyWeek(this.rule.wkst);if(i+r<1&&!e)continue;let o=h.fromDayOfYear(r+i,this.last.year);return this.last.year=o.year,this.last.month=o.month,this.last.day=o.day,e}}next_year(){return this.next_hour()==0||(this.days.length==0||++this.days_index==this.days.length)&&(this.days_index=0,this.increment_year(this.rule.interval),this.has_by_data("BYMONTHDAY")&&(this.by_data.BYMONTHDAY=this.normalizeByMonthDayRules(this.last.year,this.last.month,this.rule.parts.BYMONTHDAY)),this.expand_year_days(this.last.year),this.days.length==0)?0:this._nextByYearDay()}_nextByYearDay(){let e=this.days[this.days_index],t=this.last.year;if(Math.abs(e)==366&&!h.isLeapYear(this.last.year))return 0;e<1&&(e+=1,t+=1);let s=h.fromDayOfYear(e,t);return this.last.day=s.day,this.last.month=s.month,1}ruleDayOfWeek(e,t){let s=e.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);if(s){let i=parseInt(s[1]||0,10);return e=N.icalDayToNumericDay(s[2],t),[i,e]}else return[0,0]}next_generic(e,t,s,i,r){let o=e in this.by_data,n=this.rule.freq==t,l=0;if(r&&this[r]()==0)return l;if(o){this.by_indices[e]++;let u=this.by_data[e];this.by_indices[e]==u.length&&(this.by_indices[e]=0,l=1),this.last[s]=u[this.by_indices[e]]}else n&&this["increment_"+s](this.rule.interval);return o&&l&&n&&this["increment_"+i](1),l}increment_monthday(e){for(let t=0;t<e;t++){let s=h.daysInMonth(this.last.month,this.last.year);this.last.day++,this.last.day>s&&(this.last.day-=s,this.increment_month())}}increment_month(){if(this.last.day=1,this.has_by_data("BYMONTH"))this.by_indices.BYMONTH++,this.by_indices.BYMONTH==this.by_data.BYMONTH.length&&(this.by_indices.BYMONTH=0,this.increment_year(1)),this.last.month=this.by_data.BYMONTH[this.by_indices.BYMONTH];else{this.rule.freq=="MONTHLY"?this.last.month+=this.rule.interval:this.last.month++,this.last.month--;let e=Y(this.last.month/12);this.last.month%=12,this.last.month++,e!=0&&this.increment_year(e)}this.has_by_data("BYMONTHDAY")&&(this.by_data.BYMONTHDAY=this.normalizeByMonthDayRules(this.last.year,this.last.month,this.rule.parts.BYMONTHDAY))}increment_year(e){this.last.day=1,this.last.year+=e}increment_generic(e,t,s,i){this.last[t]+=e;let r=Y(this.last[t]/s);this.last[t]%=s,r!=0&&this["increment_"+i](r)}has_by_data(e){return e in this.rule.parts}expand_year_days(e){let t=new h;this.days=[];let s={},i=["BYDAY","BYWEEKNO","BYMONTHDAY","BYMONTH","BYYEARDAY"];for(let n of i)n in this.rule.parts&&(s[n]=this.rule.parts[n]);if("BYMONTH"in s&&"BYWEEKNO"in s){let n=1,l={};t.year=e,t.isDate=!0;for(let u=0;u<this.by_data.BYMONTH.length;u++){let c=this.by_data.BYMONTH[u];t.month=c,t.day=1;let d=t.weekNumber(this.rule.wkst);t.day=h.daysInMonth(c,e);let m=t.weekNumber(this.rule.wkst);for(u=d;u<m;u++)l[u]=1}for(let u=0;u<this.by_data.BYWEEKNO.length&&n;u++)this.by_data.BYWEEKNO[u]<52?n&=l[u]:n=0;n?delete s.BYMONTH:delete s.BYWEEKNO}let r=Object.keys(s).length;if(r==0){let n=this.dtstart.clone();n.year=this.last.year,this.days.push(n.dayOfYear())}else if(r==1&&"BYMONTH"in s)for(let n of this.by_data.BYMONTH){let l=this.dtstart.clone();l.year=e,l.month=n,l.isDate=!0,this.days.push(l.dayOfYear())}else if(r==1&&"BYMONTHDAY"in s)for(let n of this.by_data.BYMONTHDAY){let l=this.dtstart.clone();if(n<0){let u=h.daysInMonth(l.month,e);n=n+u+1}l.day=n,l.year=e,l.isDate=!0,this.days.push(l.dayOfYear())}else if(r==2&&"BYMONTHDAY"in s&&"BYMONTH"in s)for(let n of this.by_data.BYMONTH){let l=h.daysInMonth(n,e);for(let u of this.by_data.BYMONTHDAY)u<0&&(u=u+l+1),t.day=u,t.month=n,t.year=e,t.isDate=!0,this.days.push(t.dayOfYear())}else if(!(r==1&&"BYWEEKNO"in s)&&!(r==2&&"BYWEEKNO"in s&&"BYMONTHDAY"in s)){if(r==1&&"BYDAY"in s)this.days=this.days.concat(this.expand_by_day(e));else if(r==2&&"BYDAY"in s&&"BYMONTH"in s){for(let n of this.by_data.BYMONTH){let l=h.daysInMonth(n,e);t.year=e,t.month=n,t.day=1,t.isDate=!0;let u=t.dayOfWeek(),c=t.dayOfYear()-1;t.day=l;let d=t.dayOfWeek();if(this.has_by_data("BYSETPOS")){let m=[];for(let p=1;p<=l;p++)t.day=p,this.is_day_in_byday(t)&&m.push(p);for(let p=0;p<m.length;p++)(this.check_set_position(p+1)||this.check_set_position(p-m.length))&&this.days.push(c+m[p])}else for(let m of this.by_data.BYDAY){let p=this.ruleDayOfWeek(m),y=p[0],f=p[1],A,U=(f+7-u)%7+1,he=l-(d+7-f)%7;if(y==0)for(let ae=U;ae<=l;ae+=7)this.days.push(c+ae);else y>0?(A=U+(y-1)*7,A<=l&&this.days.push(c+A)):(A=he+(y+1)*7,A>0&&this.days.push(c+A))}}this.days.sort(function(n,l){return n-l})}else if(r==2&&"BYDAY"in s&&"BYMONTHDAY"in s){let n=this.expand_by_day(e);for(let l of n){let u=h.fromDayOfYear(l,e);this.by_data.BYMONTHDAY.indexOf(u.day)>=0&&this.days.push(l)}}else if(r==3&&"BYDAY"in s&&"BYMONTHDAY"in s&&"BYMONTH"in s){let n=this.expand_by_day(e);for(let l of n){let u=h.fromDayOfYear(l,e);this.by_data.BYMONTH.indexOf(u.month)>=0&&this.by_data.BYMONTHDAY.indexOf(u.day)>=0&&this.days.push(l)}}else if(r==2&&"BYDAY"in s&&"BYWEEKNO"in s){let n=this.expand_by_day(e);for(let l of n){let u=h.fromDayOfYear(l,e).weekNumber(this.rule.wkst);this.by_data.BYWEEKNO.indexOf(u)&&this.days.push(l)}}else if(!(r==3&&"BYDAY"in s&&"BYWEEKNO"in s&&"BYMONTHDAY"in s))if(r==1&&"BYYEARDAY"in s)this.days=this.days.concat(this.by_data.BYYEARDAY);else if(r==2&&"BYYEARDAY"in s&&"BYDAY"in s){let n=h.isLeapYear(e)?366:365,l=new Set(this.expand_by_day(e));for(let u of this.by_data.BYYEARDAY)u<0&&(u+=n+1),l.has(u)&&this.days.push(u)}else this.days=[]}let o=h.isLeapYear(e)?366:365;return this.days.sort((n,l)=>(n<0&&(n+=o+1),l<0&&(l+=o+1),n-l)),0}expand_by_day(e){let t=[],s=this.last.clone();s.year=e,s.month=1,s.day=1,s.isDate=!0;let i=s.dayOfWeek();s.month=12,s.day=31,s.isDate=!0;let r=s.dayOfWeek(),o=s.dayOfYear();for(let n of this.by_data.BYDAY){let l=this.ruleDayOfWeek(n),u=l[0],c=l[1];if(u==0){let d=(c+7-i)%7+1;for(let m=d;m<=o;m+=7)t.push(m)}else if(u>0){let d;c>=i?d=c-i+1:d=c-i+8,t.push(d+(u-1)*7)}else{let d;u=-u,c<=r?d=o-r+c:d=o-r+c-7,t.push(d-(u-1)*7)}}return t}is_day_in_byday(e){if(this.by_data.BYDAY)for(let t of this.by_data.BYDAY){let s=this.ruleDayOfWeek(t),i=s[0],r=s[1],o=e.dayOfWeek();if(i==0&&r==o||e.nthWeekDay(r,i)==e.day)return 1}return 0}check_set_position(e){return this.has_by_data("BYSETPOS")?this.by_data.BYSETPOS.indexOf(e)!==-1:!1}sort_byday_rules(e){for(let t=0;t<e.length;t++)for(let s=0;s<t;s++){let i=this.ruleDayOfWeek(e[s],this.rule.wkst)[1],r=this.ruleDayOfWeek(e[t],this.rule.wkst)[1];if(i>r){let o=e[t];e[t]=e[s],e[s]=o}}}check_contract_restriction(e,t){let s=W._indexMap[e],i=W._expandMap[this.rule.freq][s],r=!1;if(e in this.by_data&&i==W.CONTRACT){let o=this.by_data[e];for(let n of o)if(n==t){r=!0;break}}else r=!0;return r}check_contracting_rules(){let e=this.last.dayOfWeek(),t=this.last.weekNumber(this.rule.wkst),s=this.last.dayOfYear();return this.check_contract_restriction("BYSECOND",this.last.second)&&this.check_contract_restriction("BYMINUTE",this.last.minute)&&this.check_contract_restriction("BYHOUR",this.last.hour)&&this.check_contract_restriction("BYDAY",N.numericDayToIcalDay(e))&&this.check_contract_restriction("BYWEEKNO",t)&&this.check_contract_restriction("BYMONTHDAY",this.last.day)&&this.check_contract_restriction("BYMONTH",this.last.month)&&this.check_contract_restriction("BYYEARDAY",s)}setup_defaults(e,t,s){let i=W._indexMap[e];return W._expandMap[this.rule.freq][i]!=W.CONTRACT&&(e in this.by_data||(this.by_data[e]=[s]),this.rule.freq!=t)?this.by_data[e][0]:s}toJSON(){let e=Object.create(null);return e.initialized=this.initialized,e.rule=this.rule.toJSON(),e.dtstart=this.dtstart.toJSON(),e.by_data=this.by_data,e.days=this.days,e.last=this.last.toJSON(),e.by_indices=this.by_indices,e.occurrence_number=this.occurrence_number,e}}class ge extends Error{constructor(){super("Recurrence rule has no valid occurrences")}}const U0=/^(SU|MO|TU|WE|TH|FR|SA)$/,C0=/^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/,Dt={SU:h.SUNDAY,MO:h.MONDAY,TU:h.TUESDAY,WE:h.WEDNESDAY,TH:h.THURSDAY,FR:h.FRIDAY,SA:h.SATURDAY},v0=Object.fromEntries(Object.entries(Dt).map(a=>a.reverse())),it=["SECONDLY","MINUTELY","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY"];class N{static fromString(e){let t=this._stringToData(e,!1);return new N(t)}static fromData(e){return new N(e)}static _stringToData(e,t){let s=Object.create(null),i=e.split(";"),r=i.length;for(let o=0;o<r;o++){let n=i[o].split("="),l=n[0].toUpperCase(),u=n[0].toLowerCase(),c=t?u:l,d=n[1];if(l in Pe){let m=d.split(","),p=new Set;for(let y of m)p.add(Pe[l](y));m=[...p],s[c]=m.length==1?m[0]:m}else l in Be?Be[l](d,s,t):s[u]=d}return s}static icalDayToNumericDay(e,t){let s=t||h.SUNDAY;return(Dt[e]-s+7)%7+1}static numericDayToIcalDay(e,t){let s=t||h.SUNDAY,i=e+s-h.SUNDAY;return i>7&&(i-=7),v0[i]}constructor(e){this.wrappedJSObject=this,this.parts={},e&&typeof e=="object"&&this.fromData(e)}parts=null;interval=1;wkst=h.MONDAY;until=null;count=null;freq=null;icalclass="icalrecur";icaltype="recur";iterator(e){return new W({rule:this,dtstart:e})}clone(){return new N(this.toJSON())}isFinite(){return!!(this.count||this.until)}isByCount(){return!!(this.count&&!this.until)}addComponent(e,t){let s=e.toUpperCase();s in this.parts?this.parts[s].push(t):this.parts[s]=[t]}setComponent(e,t){this.parts[e.toUpperCase()]=t.slice()}getComponent(e){let t=e.toUpperCase();return t in this.parts?this.parts[t].slice():[]}getNextOccurrence(e,t){let s=this.iterator(e),i;do i=s.next();while(i&&i.compare(t)<=0);return i&&t.zone&&(i.zone=t.zone),i}fromData(e){for(let t in e){let s=t.toUpperCase();s in Pe?Array.isArray(e[t])?this.parts[s]=e[t]:this.parts[s]=[e[t]]:this[t]=e[t]}this.interval&&typeof this.interval!="number"&&Be.INTERVAL(this.interval,this),this.wkst&&typeof this.wkst!="number"&&(this.wkst=N.icalDayToNumericDay(this.wkst)),this.until&&!(this.until instanceof h)&&(this.until=h.fromString(this.until))}toJSON(){let e=Object.create(null);e.freq=this.freq,this.count&&(e.count=this.count),this.interval>1&&(e.interval=this.interval);for(let[t,s]of Object.entries(this.parts))Array.isArray(s)&&s.length==1?e[t.toLowerCase()]=s[0]:e[t.toLowerCase()]=le(s);return this.until&&(e.until=this.until.toString()),"wkst"in this&&this.wkst!==h.DEFAULT_WEEK_START&&(e.wkst=N.numericDayToIcalDay(this.wkst)),e}toString(){let e="FREQ="+this.freq;this.count&&(e+=";COUNT="+this.count),this.interval>1&&(e+=";INTERVAL="+this.interval);for(let[t,s]of Object.entries(this.parts))e+=";"+t+"="+s;return this.until&&(e+=";UNTIL="+this.until.toICALString()),"wkst"in this&&this.wkst!==h.DEFAULT_WEEK_START&&(e+=";WKST="+N.numericDayToIcalDay(this.wkst)),e}}function Q(a,e,t,s){let i=s;if(s[0]==="+"&&(i=s.slice(1)),i=w(i),e!==void 0&&s<e)throw new Error(a+': invalid value "'+s+'" must be > '+e);if(t!==void 0&&s>t)throw new Error(a+': invalid value "'+s+'" must be < '+e);return i}const Be={FREQ:function(a,e,t){if(it.indexOf(a)!==-1)e.freq=a;else throw new Error('invalid frequency "'+a+'" expected: "'+it.join(", ")+'"')},COUNT:function(a,e,t){e.count=w(a)},INTERVAL:function(a,e,t){e.interval=w(a),e.interval<1&&(e.interval=1)},UNTIL:function(a,e,t){a.length>10?e.until=b.icalendar.value["date-time"].fromICAL(a):e.until=b.icalendar.value.date.fromICAL(a),t||(e.until=h.fromString(e.until))},WKST:function(a,e,t){if(U0.test(a))e.wkst=N.icalDayToNumericDay(a);else throw new Error('invalid WKST value "'+a+'"')}},Pe={BYSECOND:Q.bind(void 0,"BYSECOND",0,60),BYMINUTE:Q.bind(void 0,"BYMINUTE",0,59),BYHOUR:Q.bind(void 0,"BYHOUR",0,23),BYDAY:function(a){if(C0.test(a))return a;throw new Error('invalid BYDAY value "'+a+'"')},BYMONTHDAY:Q.bind(void 0,"BYMONTHDAY",-31,31),BYYEARDAY:Q.bind(void 0,"BYYEARDAY",-366,366),BYWEEKNO:Q.bind(void 0,"BYWEEKNO",-53,53),BYMONTH:Q.bind(void 0,"BYMONTH",1,12),BYSETPOS:Q.bind(void 0,"BYSETPOS",-366,366)},Y0=/\\\\|\\;|\\,|\\[Nn]/g,O0=/\\|;|,|\n/g,rt=/\\\\|\\,|\\[Nn]/g,nt=/\\|,|\n/g;function je(a,e){return{matches:/.*/,fromICAL:function(t,s){return N0(t,a,s)},toICAL:function(t,s){let i=e;return s&&(i=new RegExp(i.source+"|"+s,i.flags)),t.replace(i,function(r){switch(r){case"\\":return"\\\\";case";":return"\\;";case",":return"\\,";case`
|
|
`:return"\\n";default:return r}})}}}const S={defaultType:"text"},ye={defaultType:"text",multiValue:","},xe={defaultType:"text",structuredValue:";"},De={defaultType:"integer"},Ee={defaultType:"date-time",allowedTypes:["date-time","date"]},_e={defaultType:"date-time"},k={defaultType:"uri"},ot={defaultType:"utc-offset"},lt={defaultType:"recur"},ut={defaultType:"date-and-or-time",allowedTypes:["date-time","date","text"]};function w0(a){switch(a){case"\\\\":return"\\";case"\\;":return";";case"\\,":return",";case"\\n":case"\\N":return`
|
|
`;default:return a}}function N0(a,e,t){return a.indexOf("\\")===-1?a:(t&&(e=new RegExp(e.source+"|\\\\"+t,e.flags)),a.replace(e,w0))}let Ge={categories:ye,url:k,version:S,uid:S},Ke={boolean:{values:["TRUE","FALSE"],fromICAL:function(a){switch(a){case"TRUE":return!0;case"FALSE":return!1;default:return!1}},toICAL:function(a){return a?"TRUE":"FALSE"}},float:{matches:/^[+-]?\d+\.\d+$/,fromICAL:function(a){let e=parseFloat(a);return Te(e)?0:e},toICAL:function(a){return String(a)}},integer:{fromICAL:function(a){let e=parseInt(a);return Te(e)?0:e},toICAL:function(a){return String(a)}},"utc-offset":{toICAL:function(a){return a.length<7?a.slice(0,3)+a.slice(4,6):a.slice(0,3)+a.slice(4,6)+a.slice(7,9)},fromICAL:function(a){return a.length<6?a.slice(0,3)+":"+a.slice(3,5):a.slice(0,3)+":"+a.slice(3,5)+":"+a.slice(5,7)},decorate:function(a){return j.fromString(a)},undecorate:function(a){return a.toString()}}},M0={cutype:{values:["INDIVIDUAL","GROUP","RESOURCE","ROOM","UNKNOWN"],allowXName:!0,allowIanaToken:!0},"delegated-from":{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},"delegated-to":{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},encoding:{values:["8BIT","BASE64"]},fbtype:{values:["FREE","BUSY","BUSY-UNAVAILABLE","BUSY-TENTATIVE"],allowXName:!0,allowIanaToken:!0},member:{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},partstat:{values:["NEEDS-ACTION","ACCEPTED","DECLINED","TENTATIVE","DELEGATED","COMPLETED","IN-PROCESS"],allowXName:!0,allowIanaToken:!0},range:{values:["THISANDFUTURE"]},related:{values:["START","END"]},reltype:{values:["PARENT","CHILD","SIBLING"],allowXName:!0,allowIanaToken:!0},role:{values:["REQ-PARTICIPANT","CHAIR","OPT-PARTICIPANT","NON-PARTICIPANT"],allowXName:!0,allowIanaToken:!0},rsvp:{values:["TRUE","FALSE"]},"sent-by":{valueType:"cal-address"},tzid:{matches:/^\//},value:{values:["binary","boolean","cal-address","date","date-time","duration","float","integer","period","recur","text","time","uri","utc-offset"],allowXName:!0,allowIanaToken:!0}};const I=ue(Ke,{text:je(Y0,O0),uri:{},binary:{decorate:function(a){return Ie.fromString(a)},undecorate:function(a){return a.toString()}},"cal-address":{},date:{decorate:function(a,e){return h.fromDateString(a,e)},undecorate:function(a){return a.toString()},fromICAL:function(a){return a.slice(0,4)+"-"+a.slice(4,6)+"-"+a.slice(6,8)},toICAL:function(a){let e=a.length;return e==10?a.slice(0,4)+a.slice(5,7)+a.slice(8,10):e>=19?I["date-time"].toICAL(a):a}},"date-time":{fromICAL:function(a){{let e=a.slice(0,4)+"-"+a.slice(4,6)+"-"+a.slice(6,8)+"T"+a.slice(9,11)+":"+a.slice(11,13)+":"+a.slice(13,15);return a[15]&&a[15]==="Z"&&(e+="Z"),e}},toICAL:function(a){if(a.length>=19){let e=a.slice(0,4)+a.slice(5,7)+a.slice(8,13)+a.slice(14,16)+a.slice(17,19);return a[19]&&a[19]==="Z"&&(e+="Z"),e}else return a},decorate:function(a,e){return h.fromDateTimeString(a,e)},undecorate:function(a){return a.toString()}},duration:{decorate:function(a){return M.fromString(a)},undecorate:function(a){return a.toString()}},period:{fromICAL:function(a){let e=a.split("/");return e[0]=I["date-time"].fromICAL(e[0]),M.isValueString(e[1])||(e[1]=I["date-time"].fromICAL(e[1])),e},toICAL:function(a){return a=a.slice(),a[0]=I["date-time"].toICAL(a[0]),M.isValueString(a[1])||(a[1]=I["date-time"].toICAL(a[1])),a.join("/")},decorate:function(a,e){return J.fromJSON(a,e,!1)},undecorate:function(a){return a.toJSON()}},recur:{fromICAL:function(a){return N._stringToData(a,!0)},toICAL:function(a){let e="";for(let[t,s]of Object.entries(a))t=="until"?s.length>10?s=I["date-time"].toICAL(s):s=I.date.toICAL(s):t=="wkst"?typeof s=="number"&&(s=N.numericDayToIcalDay(s)):Array.isArray(s)&&(s=s.join(",")),e+=t.toUpperCase()+"="+s+";";return e.slice(0,Math.max(0,e.length-1))},decorate:function(a){return N.fromData(a)},undecorate:function(a){return a.toJSON()}},time:{fromICAL:function(a){if(a.length<6)return a;let e=a.slice(0,2)+":"+a.slice(2,4)+":"+a.slice(4,6);return a[6]==="Z"&&(e+="Z"),e},toICAL:function(a){if(a.length<8)return a;let e=a.slice(0,2)+a.slice(3,5)+a.slice(6,8);return a[8]==="Z"&&(e+="Z"),e}}});let x0=ue(Ge,{action:S,attach:{defaultType:"uri"},attendee:{defaultType:"cal-address"},calscale:S,class:S,comment:S,completed:_e,contact:S,created:_e,description:S,dtend:Ee,dtstamp:_e,dtstart:Ee,due:Ee,duration:{defaultType:"duration"},exdate:{defaultType:"date-time",allowedTypes:["date-time","date"],multiValue:","},exrule:lt,freebusy:{defaultType:"period",multiValue:","},geo:{defaultType:"float",structuredValue:";"},"last-modified":_e,location:S,method:S,organizer:{defaultType:"cal-address"},"percent-complete":De,priority:De,prodid:S,"related-to":S,repeat:De,rdate:{defaultType:"date-time",allowedTypes:["date-time","date","period"],multiValue:",",detectType:function(a){return a.indexOf("/")!==-1?"period":a.indexOf("T")===-1?"date":"date-time"}},"recurrence-id":Ee,resources:ye,"request-status":xe,rrule:lt,sequence:De,status:S,summary:S,transp:S,trigger:{defaultType:"duration",allowedTypes:["duration","date-time"]},tzoffsetfrom:ot,tzoffsetto:ot,tzurl:k,tzid:S,tzname:S});const P=ue(Ke,{text:je(rt,nt),uri:je(rt,nt),date:{decorate:function(a){return se.fromDateAndOrTimeString(a,"date")},undecorate:function(a){return a.toString()},fromICAL:function(a){return a.length==8?I.date.fromICAL(a):a[0]=="-"&&a.length==6?a.slice(0,4)+"-"+a.slice(4):a},toICAL:function(a){return a.length==10?I.date.toICAL(a):a[0]=="-"&&a.length==7?a.slice(0,4)+a.slice(5):a}},time:{decorate:function(a){return se.fromDateAndOrTimeString("T"+a,"time")},undecorate:function(a){return a.toString()},fromICAL:function(a){let e=P.time._splitZone(a,!0),t=e[0],s=e[1];return s.length==6?s=s.slice(0,2)+":"+s.slice(2,4)+":"+s.slice(4,6):s.length==4&&s[0]!="-"?s=s.slice(0,2)+":"+s.slice(2,4):s.length==5&&(s=s.slice(0,3)+":"+s.slice(3,5)),t.length==5&&(t[0]=="-"||t[0]=="+")&&(t=t.slice(0,3)+":"+t.slice(3)),s+t},toICAL:function(a){let e=P.time._splitZone(a),t=e[0],s=e[1];return s.length==8?s=s.slice(0,2)+s.slice(3,5)+s.slice(6,8):s.length==5&&s[0]!="-"?s=s.slice(0,2)+s.slice(3,5):s.length==6&&(s=s.slice(0,3)+s.slice(4,6)),t.length==6&&(t[0]=="-"||t[0]=="+")&&(t=t.slice(0,3)+t.slice(4)),s+t},_splitZone:function(a,e){let t=a.length-1,s=a.length-(e?5:6),i=a[s],r,o;return a[t]=="Z"?(r=a[t],o=a.slice(0,Math.max(0,t))):a.length>6&&(i=="-"||i=="+")?(r=a.slice(s),o=a.slice(0,Math.max(0,s))):(r="",o=a),[r,o]}},"date-time":{decorate:function(a){return se.fromDateAndOrTimeString(a,"date-time")},undecorate:function(a){return a.toString()},fromICAL:function(a){return P["date-and-or-time"].fromICAL(a)},toICAL:function(a){return P["date-and-or-time"].toICAL(a)}},"date-and-or-time":{decorate:function(a){return se.fromDateAndOrTimeString(a,"date-and-or-time")},undecorate:function(a){return a.toString()},fromICAL:function(a){let e=a.split("T");return(e[0]?P.date.fromICAL(e[0]):"")+(e[1]?"T"+P.time.fromICAL(e[1]):"")},toICAL:function(a){let e=a.split("T");return P.date.toICAL(e[0])+(e[1]?"T"+P.time.toICAL(e[1]):"")}},timestamp:I["date-time"],"language-tag":{matches:/^[a-zA-Z0-9-]+$/},"phone-number":{fromICAL:function(a){return Array.from(a).filter(function(e){return e==="\\"?void 0:e}).join("")},toICAL:function(a){return Array.from(a).map(function(e){return e===","||e===";"?"\\"+e:e}).join("")}}});let I0={type:{valueType:"text",multiValue:","},value:{values:["text","uri","date","time","date-time","date-and-or-time","timestamp","boolean","integer","float","utc-offset","language-tag"],allowXName:!0,allowIanaToken:!0}},k0=ue(Ge,{adr:{defaultType:"text",structuredValue:";",multiValue:","},anniversary:ut,bday:ut,caladruri:k,caluri:k,clientpidmap:xe,email:S,fburl:k,fn:S,gender:xe,geo:k,impp:k,key:k,kind:S,lang:{defaultType:"language-tag"},logo:k,member:k,n:{defaultType:"text",structuredValue:";",multiValue:","},nickname:ye,note:S,org:{defaultType:"text",structuredValue:";"},photo:k,related:k,rev:{defaultType:"timestamp"},role:S,sound:k,source:k,tel:{defaultType:"uri",allowedTypes:["uri","text"]},title:S,tz:{defaultType:"text",allowedTypes:["text","utc-offset","uri"]},xml:S}),B0=ue(Ke,{binary:I.binary,date:P.date,"date-time":P["date-time"],"phone-number":P["phone-number"],uri:I.uri,text:P.text,time:I.time,vcard:I.text,"utc-offset":{toICAL:function(a){return a.slice(0,7)},fromICAL:function(a){return a.slice(0,7)},decorate:function(a){return j.fromString(a)},undecorate:function(a){return a.toString()}}}),P0={type:{valueType:"text",multiValue:","},value:{values:["text","uri","date","date-time","phone-number","time","boolean","integer","float","utc-offset","vcard","binary"],allowXName:!0,allowIanaToken:!0}},L0=ue(Ge,{fn:S,n:{defaultType:"text",structuredValue:";",multiValue:","},nickname:ye,photo:{defaultType:"binary",allowedTypes:["binary","uri"]},bday:{defaultType:"date-time",allowedTypes:["date-time","date"],detectType:function(a){return a.indexOf("T")===-1?"date":"date-time"}},adr:{defaultType:"text",structuredValue:";",multiValue:","},label:S,tel:{defaultType:"phone-number"},email:S,mailer:S,tz:{defaultType:"utc-offset",allowedTypes:["utc-offset","text"]},geo:{defaultType:"float",structuredValue:";"},title:S,role:S,logo:{defaultType:"binary",allowedTypes:["binary","uri"]},agent:{defaultType:"vcard",allowedTypes:["vcard","text","uri"]},org:xe,note:ye,prodid:S,rev:{defaultType:"date-time",allowedTypes:["date-time","date"],detectType:function(a){return a.indexOf("T")===-1?"date":"date-time"}},"sort-string":S,sound:{defaultType:"binary",allowedTypes:["binary","uri"]},class:S,key:{defaultType:"binary",allowedTypes:["binary","text"]}}),Z={name:"ical",value:I,param:M0,property:x0,propertyGroups:!1},dt={name:"vcard4",value:P,param:I0,property:k0,propertyGroups:!0},ct={name:"vcard3",value:B0,param:P0,property:L0,propertyGroups:!0};const b={strict:!0,defaultSet:Z,defaultType:"unknown",components:{vcard:dt,vcard3:ct,vevent:Z,vtodo:Z,vjournal:Z,valarm:Z,vtimezone:Z,daylight:Z,standard:Z},icalendar:Z,vcard:dt,vcard3:ct,getDesignSet:function(a){return a&&a in b.components?b.components[a]:b.defaultSet}},Ye=`\r
|
|
`,ht="unknown",z0={'"':"^'","\n":"^n","^":"^^"};function _(a){typeof a[0]=="string"&&(a=[a]);let e=0,t=a.length,s="";for(;e<t;e++)s+=_.component(a[e])+Ye;return s}_.component=function(a,e){let t=a[0].toUpperCase(),s="BEGIN:"+t+Ye,i=a[1],r=0,o=i.length,n=a[0];for(n==="vcard"&&a[1].length>0&&!(a[1][0][0]==="version"&&a[1][0][3]==="4.0")&&(n="vcard3"),e=e||b.getDesignSet(n);r<o;r++)s+=_.property(i[r],e)+Ye;let l=a[2]||[],u=0,c=l.length;for(;u<c;u++)s+=_.component(l[u],e)+Ye;return s+="END:"+t,s},_.property=function(a,e,t){let s=a[0].toUpperCase(),i=a[0],r=a[1];e||(e=b.defaultSet);let o=r.group,n;e.propertyGroups&&o?n=o.toUpperCase()+"."+s:n=s;for(let[p,y]of Object.entries(r)){if(e.propertyGroups&&p=="group")continue;let f=e.param[p],A=f&&f.multiValue;A&&Array.isArray(y)?(y=y.map(function(U){return U=_._rfc6868Unescape(U),U=_.paramPropertyValue(U,f.multiValueSeparateDQuote),U}),y=_.multiValue(y,A,"unknown",null,e)):(y=_._rfc6868Unescape(y),y=_.paramPropertyValue(y)),n+=";"+p.toUpperCase()+"="+y}if(a.length===3)return n+":";let l=a[2],u,c=!1,d=!1,m=!1;return i in e.property?(u=e.property[i],"multiValue"in u&&(c=u.multiValue),"structuredValue"in u&&Array.isArray(a[3])&&(d=u.structuredValue),"defaultType"in u?l===u.defaultType&&(m=!0):l===ht&&(m=!0)):l===ht&&(m=!0),m||(n+=";VALUE="+l.toUpperCase()),n+=":",c&&d?n+=_.multiValue(a[3],d,l,c,e,d):c?n+=_.multiValue(a.slice(3),c,l,null,e,!1):d?n+=_.multiValue(a[3],d,l,null,e,d):n+=_.value(a[3],l,e,!1),t?n:gt(n)},_.paramPropertyValue=function(a,e){return!e&&a.indexOf(",")===-1&&a.indexOf(":")===-1&&a.indexOf(";")===-1?a:'"'+a+'"'},_.multiValue=function(a,e,t,s,i,r){let o="",n=a.length,l=0;for(;l<n;l++)s&&Array.isArray(a[l])?o+=_.multiValue(a[l],s,t,null,i,r):o+=_.value(a[l],t,i,r),l!==n-1&&(o+=e);return o},_.value=function(a,e,t,s){return e in t.value&&"toICAL"in t.value[e]?t.value[e].toICAL(a,s):a},_._rfc6868Unescape=function(a){return a.replace(/[\n^"]/g,function(e){return z0[e]})};const mt=0,be=1,Ue=2,X=3;class oe{static fromString(e,t){return new oe(g.property(e,t))}constructor(e,t){this._parent=t||null,typeof e=="string"?(this.jCal=[e,{},b.defaultType],this.jCal[Ue]=this.getDefaultType()):this.jCal=e,this._updateType()}get type(){return this.jCal[Ue]}get name(){return this.jCal[mt]}get parent(){return this._parent}set parent(e){let t=!this._parent||e&&e._designSet!=this._parent._designSet;this._parent=e,this.type==b.defaultType&&t&&(this.jCal[Ue]=this.getDefaultType(),this._updateType())}get _designSet(){return this.parent?this.parent._designSet:b.defaultSet}_updateType(){let e=this._designSet;this.type in e.value&&("decorate"in e.value[this.type]?this.isDecorated=!0:this.isDecorated=!1,this.name in e.property&&(this.isMultiValue="multiValue"in e.property[this.name],this.isStructuredValue="structuredValue"in e.property[this.name]))}_hydrateValue(e){return this._values&&this._values[e]?this._values[e]:this.jCal.length<=X+e?null:this.isDecorated?(this._values||(this._values=[]),this._values[e]=this._decorate(this.jCal[X+e])):this.jCal[X+e]}_decorate(e){return this._designSet.value[this.type].decorate(e,this)}_undecorate(e){return this._designSet.value[this.type].undecorate(e,this)}_setDecoratedValue(e,t){this._values||(this._values=[]),typeof e=="object"&&"icaltype"in e?(this.jCal[X+t]=this._undecorate(e),this._values[t]=e):(this.jCal[X+t]=e,this._values[t]=this._decorate(e))}getParameter(e){if(e in this.jCal[be])return this.jCal[be][e]}getFirstParameter(e){let t=this.getParameter(e);return Array.isArray(t)?t[0]:t}setParameter(e,t){let s=e.toLowerCase();typeof t=="string"&&s in this._designSet.param&&"multiValue"in this._designSet.param[s]&&(t=[t]),this.jCal[be][e]=t}removeParameter(e){delete this.jCal[be][e]}getDefaultType(){let e=this.jCal[mt],t=this._designSet;if(e in t.property){let s=t.property[e];if("defaultType"in s)return s.defaultType}return b.defaultType}resetType(e){this.removeAllValues(),this.jCal[Ue]=e,this._updateType()}getFirstValue(){return this._hydrateValue(0)}getValues(){let e=this.jCal.length-X;if(e<1)return[];let t=0,s=[];for(;t<e;t++)s[t]=this._hydrateValue(t);return s}removeAllValues(){this._values&&(this._values.length=0),this.jCal.length=3}setValues(e){if(!this.isMultiValue)throw new Error(this.name+`: does not not support mulitValue.
|
|
override isMultiValue`);let t=e.length,s=0;if(this.removeAllValues(),t>0&&typeof e[0]=="object"&&"icaltype"in e[0]&&this.resetType(e[0].icaltype),this.isDecorated)for(;s<t;s++)this._setDecoratedValue(e[s],s);else for(;s<t;s++)this.jCal[X+s]=e[s]}setValue(e){this.removeAllValues(),typeof e=="object"&&"icaltype"in e&&this.resetType(e.icaltype),this.isDecorated?this._setDecoratedValue(e,0):this.jCal[X]=e}toJSON(){return this.jCal}toICALString(){return _.property(this.jCal,this._designSet,!0)}}const ee=0,H=1,te=2,V0=0,R0=3;class V{static fromString(e){return new V(g.component(e))}constructor(e,t){typeof e=="string"&&(e=[e,[],[]]),this.jCal=e,this.parent=t||null,!this.parent&&this.name==="vcalendar"&&(this._timezoneCache=new Map)}_hydratedPropertyCount=0;_hydratedComponentCount=0;_timezoneCache=null;_components=null;_properties=null;get name(){return this.jCal[ee]}get _designSet(){let e=this.parent&&this.parent._designSet;if(!e&&this.name=="vcard"){let t=this.jCal[H]?.[0];if(t&&t[V0]=="version"&&t[R0]=="3.0")return b.getDesignSet("vcard3")}return e||b.getDesignSet(this.name)}_hydrateComponent(e){if(this._components||(this._components=[],this._hydratedComponentCount=0),this._components[e])return this._components[e];let t=new V(this.jCal[te][e],this);return this._hydratedComponentCount++,this._components[e]=t}_hydrateProperty(e){if(this._properties||(this._properties=[],this._hydratedPropertyCount=0),this._properties[e])return this._properties[e];let t=new oe(this.jCal[H][e],this);return this._hydratedPropertyCount++,this._properties[e]=t}getFirstSubcomponent(e){if(e){let t=0,s=this.jCal[te],i=s.length;for(;t<i;t++)if(s[t][ee]===e)return this._hydrateComponent(t)}else if(this.jCal[te].length)return this._hydrateComponent(0);return null}getAllSubcomponents(e){let t=this.jCal[te].length,s=0;if(e){let i=this.jCal[te],r=[];for(;s<t;s++)e===i[s][ee]&&r.push(this._hydrateComponent(s));return r}else{if(!this._components||this._hydratedComponentCount!==t)for(;s<t;s++)this._hydrateComponent(s);return this._components||[]}}hasProperty(e){let t=this.jCal[H],s=t.length,i=0;for(;i<s;i++)if(t[i][ee]===e)return!0;return!1}getFirstProperty(e){if(e){let t=0,s=this.jCal[H],i=s.length;for(;t<i;t++)if(s[t][ee]===e)return this._hydrateProperty(t)}else if(this.jCal[H].length)return this._hydrateProperty(0);return null}getFirstPropertyValue(e){let t=this.getFirstProperty(e);return t?t.getFirstValue():null}getAllProperties(e){let t=this.jCal[H].length,s=0;if(e){let i=this.jCal[H],r=[];for(;s<t;s++)e===i[s][ee]&&r.push(this._hydrateProperty(s));return r}else{if(!this._properties||this._hydratedPropertyCount!==t)for(;s<t;s++)this._hydrateProperty(s);return this._properties||[]}}_removeObjectByIndex(e,t,s){if(t=t||[],t[s]){let i=t[s];"parent"in i&&(i.parent=null)}t.splice(s,1),this.jCal[e].splice(s,1)}_removeObject(e,t,s){let i=0,r=this.jCal[e],o=r.length,n=this[t];if(typeof s=="string"){for(;i<o;i++)if(r[i][ee]===s)return this._removeObjectByIndex(e,n,i),!0}else if(n){for(;i<o;i++)if(n[i]&&n[i]===s)return this._removeObjectByIndex(e,n,i),!0}return!1}_removeAllObjects(e,t,s){let i=this[t],r=this.jCal[e],o=r.length-1;for(;o>=0;o--)(!s||r[o][ee]===s)&&this._removeObjectByIndex(e,i,o)}addSubcomponent(e){this._components||(this._components=[],this._hydratedComponentCount=0),e.parent&&e.parent.removeSubcomponent(e);let t=this.jCal[te].push(e.jCal);return this._components[t-1]=e,this._hydratedComponentCount++,e.parent=this,e}removeSubcomponent(e){let t=this._removeObject(te,"_components",e);return t&&this._hydratedComponentCount--,t}removeAllSubcomponents(e){let t=this._removeAllObjects(te,"_components",e);return this._hydratedComponentCount=0,t}addProperty(e){if(!(e instanceof oe))throw new TypeError("must be instance of ICAL.Property");this._properties||(this._properties=[],this._hydratedPropertyCount=0),e.parent&&e.parent.removeProperty(e);let t=this.jCal[H].push(e.jCal);return this._properties[t-1]=e,this._hydratedPropertyCount++,e.parent=this,e}addPropertyWithValue(e,t){let s=new oe(e);return s.setValue(t),this.addProperty(s),s}updatePropertyWithValue(e,t){let s=this.getFirstProperty(e);return s?s.setValue(t):s=this.addPropertyWithValue(e,t),s}removeProperty(e){let t=this._removeObject(H,"_properties",e);return t&&this._hydratedPropertyCount--,t}removeAllProperties(e){let t=this._removeAllObjects(H,"_properties",e);return this._hydratedPropertyCount=0,t}toJSON(){return this.jCal}toString(){return _.component(this.jCal,this._designSet)}getTimeZoneByID(e){if(this.parent)return this.parent.getTimeZoneByID(e);if(!this._timezoneCache)return null;if(this._timezoneCache.has(e))return this._timezoneCache.get(e);const t=this.getAllSubcomponents("vtimezone");for(const s of t)if(s.getFirstProperty("tzid").getFirstValue()===e){const i=new T({component:s,tzid:e});return this._timezoneCache.set(e,i),i}return null}}class Et{constructor(e){this.ruleDates=[],this.exDates=[],this.fromData(e)}complete=!1;ruleIterators=null;ruleDates=null;exDates=null;ruleDateInc=0;exDateInc=0;exDate=null;ruleDate=null;dtstart=null;last=null;fromData(e){let t=$(e.dtstart,h);if(t)this.dtstart=t;else throw new Error(".dtstart (ICAL.Time) must be given");if(e.component)this._init(e.component);else{if(this.last=$(e.last,h)||t.clone(),!e.ruleIterators)throw new Error(".ruleIterators or .component must be given");this.ruleIterators=e.ruleIterators.map(function(s){return $(s,W)}),this.ruleDateInc=e.ruleDateInc,this.exDateInc=e.exDateInc,e.ruleDates&&(this.ruleDates=e.ruleDates.map(s=>$(s,h)),this.ruleDate=this.ruleDates[this.ruleDateInc]),e.exDates&&(this.exDates=e.exDates.map(s=>$(s,h)),this.exDate=this.exDates[this.exDateInc]),typeof e.complete<"u"&&(this.complete=e.complete)}}_compare_special(e,t){return!e.isDate&&t.isDate?new h({year:e.year,month:e.month,day:e.day}).compare(t):e.compare(t)}next(){let e,t,s,i=500,r=0;for(;;){if(r++>i)throw new Error("max tries have occurred, rule may be impossible to fulfill.");if(t=this.ruleDate,e=this._nextRecurrenceIter(this.last),!t&&!e){this.complete=!0;break}if((!t||e&&t.compare(e.last)>0)&&(t=e.last.clone(),e.next()),this.ruleDate===t&&this._nextRuleDay(),this.last=t,this.exDate&&(s=this._compare_special(this.last,this.exDate),s>0&&this._nextExDay(),s===0)){this._nextExDay();continue}return this.last}}toJSON(){function e(s){return s.toJSON()}let t=Object.create(null);return t.ruleIterators=this.ruleIterators.map(e),this.ruleDates&&(t.ruleDates=this.ruleDates.map(e)),this.exDates&&(t.exDates=this.exDates.map(e)),t.ruleDateInc=this.ruleDateInc,t.exDateInc=this.exDateInc,t.last=this.last.toJSON(),t.dtstart=this.dtstart.toJSON(),t.complete=this.complete,t}_extractDates(e,t){let s=[],i=e.getAllProperties(t);for(let r=0,o=i.length;r<o;r++)for(let n of i[r].getValues()){let l=ne(s,n,(u,c)=>u.compare(c));s.splice(l,0,n)}return s}_init(e){if(this.ruleIterators=[],this.last=this.dtstart.clone(),!e.hasProperty("rdate")&&!e.hasProperty("rrule")&&!e.hasProperty("recurrence-id")){this.ruleDate=this.last.clone(),this.complete=!0;return}if(e.hasProperty("rdate")&&(this.ruleDates=this._extractDates(e,"rdate"),this.ruleDates[0]&&this.ruleDates[0].compare(this.dtstart)<0?(this.ruleDateInc=0,this.last=this.ruleDates[0].clone()):this.ruleDateInc=ne(this.ruleDates,this.last,(t,s)=>t.compare(s)),this.ruleDate=this.ruleDates[this.ruleDateInc]),e.hasProperty("rrule")){let t=e.getAllProperties("rrule"),s=0,i=t.length,r,o;for(;s<i;s++)r=t[s].getFirstValue(),o=r.iterator(this.dtstart),this.ruleIterators.push(o),o.next()}e.hasProperty("exdate")&&(this.exDates=this._extractDates(e,"exdate"),this.exDateInc=ne(this.exDates,this.last,this._compare_special),this.exDate=this.exDates[this.exDateInc])}_nextExDay(){this.exDate=this.exDates[++this.exDateInc]}_nextRuleDay(){this.ruleDate=this.ruleDates[++this.ruleDateInc]}_nextRecurrenceIter(){let e=this.ruleIterators;if(e.length===0)return null;let t=e.length,s,i,r=0,o;for(;r<t;r++){if(s=e[r],i=s.last,s.completed){t--,r!==0&&r--,e.splice(r,1);continue}(!o||o.last.compare(i)>0)&&(o=s)}return o}}class Se{constructor(e,t){e instanceof V||(t=e,e=null),e?this.component=e:this.component=new V("vevent"),this._rangeExceptionCache=Object.create(null),this.exceptions=Object.create(null),this.rangeExceptions=[],t&&t.strictExceptions&&(this.strictExceptions=t.strictExceptions),t&&t.exceptions?t.exceptions.forEach(this.relateException,this):this.component.parent&&!this.isRecurrenceException()&&this.component.parent.getAllSubcomponents("vevent").forEach(function(s){s.hasProperty("recurrence-id")&&this.relateException(s)},this)}static THISANDFUTURE="THISANDFUTURE";exceptions=null;strictExceptions=!1;relateException(e){if(this.isRecurrenceException())throw new Error("cannot relate exception to exceptions");if(e instanceof V&&(e=new Se(e)),this.strictExceptions&&e.uid!==this.uid)throw new Error("attempted to relate unrelated exception");let t=e.recurrenceId.toString();if(this.exceptions[t]=e,e.modifiesFuture()){let s=[e.recurrenceId.toUnixTime(),t],i=ne(this.rangeExceptions,s,ft);this.rangeExceptions.splice(i,0,s)}}modifiesFuture(){return this.component.hasProperty("recurrence-id")?this.component.getFirstProperty("recurrence-id").getParameter("range")===Se.THISANDFUTURE:!1}findRangeException(e){if(!this.rangeExceptions.length)return null;let t=e.toUnixTime(),s=ne(this.rangeExceptions,[t],ft);if(s-=1,s<0)return null;let i=this.rangeExceptions[s];return t<i[0]?null:i[1]}getOccurrenceDetails(e){let t=e.toString(),s=e.convertToZone(T.utcTimezone).toString(),i,r={recurrenceId:e};if(t in this.exceptions)i=r.item=this.exceptions[t],r.startDate=i.startDate,r.endDate=i.endDate,r.item=i;else if(s in this.exceptions)i=this.exceptions[s],r.startDate=i.startDate,r.endDate=i.endDate,r.item=i;else{let o=this.findRangeException(e),n;if(o){let l=this.exceptions[o];r.item=l;let u=this._rangeExceptionCache[o];if(!u){let d=l.recurrenceId.clone(),m=l.startDate.clone();d.zone=m.zone,u=m.subtractDate(d),this._rangeExceptionCache[o]=u}let c=e.clone();c.zone=l.startDate.zone,c.addDuration(u),n=c.clone(),n.addDuration(l.duration),r.startDate=c,r.endDate=n}else n=e.clone(),n.addDuration(this.duration),r.endDate=n,r.startDate=e,r.item=this}return r}iterator(e){return new Et({component:this.component,dtstart:e||this.startDate})}isRecurring(){let e=this.component;return e.hasProperty("rrule")||e.hasProperty("rdate")}isRecurrenceException(){return this.component.hasProperty("recurrence-id")}getRecurrenceTypes(){let e=this.component.getAllProperties("rrule"),t=0,s=e.length,i=Object.create(null);for(;t<s;t++){let r=e[t].getFirstValue();i[r.freq]=!0}return i}get uid(){return this._firstProp("uid")}set uid(e){this._setProp("uid",e)}get startDate(){return this._firstProp("dtstart")}set startDate(e){this._setTime("dtstart",e)}get endDate(){let e=this._firstProp("dtend");if(!e){let t=this._firstProp("duration");e=this.startDate.clone(),t?e.addDuration(t):e.isDate&&(e.day+=1)}return e}set endDate(e){this.component.hasProperty("duration")&&this.component.removeProperty("duration"),this._setTime("dtend",e)}get duration(){return this._firstProp("duration")||this.endDate.subtractDateTz(this.startDate)}set duration(e){this.component.hasProperty("dtend")&&this.component.removeProperty("dtend"),this._setProp("duration",e)}get location(){return this._firstProp("location")}set location(e){this._setProp("location",e)}get attendees(){return this.component.getAllProperties("attendee")}get summary(){return this._firstProp("summary")}set summary(e){this._setProp("summary",e)}get description(){return this._firstProp("description")}set description(e){this._setProp("description",e)}get color(){return this._firstProp("color")}set color(e){this._setProp("color",e)}get organizer(){return this._firstProp("organizer")}set organizer(e){this._setProp("organizer",e)}get sequence(){return this._firstProp("sequence")}set sequence(e){this._setProp("sequence",e)}get recurrenceId(){return this._firstProp("recurrence-id")}set recurrenceId(e){this._setTime("recurrence-id",e)}_setTime(e,t){let s=this.component.getFirstProperty(e);s||(s=new oe(e),this.component.addProperty(s)),t.zone===T.localTimezone||t.zone===T.utcTimezone?s.removeParameter("tzid"):s.setParameter("tzid",t.zone.tzid),s.setValue(t)}_setProp(e,t){this.component.updatePropertyWithValue(e,t)}_firstProp(e){return this.component.getFirstPropertyValue(e)}toString(){return this.component.toString()}}function ft(a,e){return a[0]>e[0]?1:e[0]>a[0]?-1:0}class j0{constructor(e){typeof e>"u"&&(e={});for(let[t,s]of Object.entries(e))this[t]=s}parseEvent=!0;parseTimezone=!0;oncomplete=function(){};onerror=function(e){};ontimezone=function(e){};onevent=function(e){};process(e){typeof e=="string"&&(e=g(e)),e instanceof V||(e=new V(e));let t=e.getAllSubcomponents(),s=0,i=t.length,r;for(;s<i;s++)switch(r=t[s],r.name){case"vtimezone":if(this.parseTimezone){let o=r.getFirstPropertyValue("tzid");o&&this.ontimezone(new T({tzid:o,component:r}))}break;case"vevent":this.parseEvent&&this.onevent(new Se(r));break;default:continue}this.oncomplete()}}var L={foldLength:75,debug:!1,newLineChar:`\r
|
|
`,Binary:Ie,Component:V,ComponentParser:j0,Duration:M,Event:Se,Period:J,Property:oe,Recur:N,RecurExpansion:Et,RecurIterator:W,Time:h,Timezone:T,TimezoneService:Me,UtcOffset:j,VCardTime:se,parse:g,stringify:_,design:b,helpers:b0};const O=[];for(let a=0;a<256;++a)O.push((a+256).toString(16).slice(1));function H0(a,e=0){return(O[a[e+0]]+O[a[e+1]]+O[a[e+2]]+O[a[e+3]]+"-"+O[a[e+4]]+O[a[e+5]]+"-"+O[a[e+6]]+O[a[e+7]]+"-"+O[a[e+8]]+O[a[e+9]]+"-"+O[a[e+10]]+O[a[e+11]]+O[a[e+12]]+O[a[e+13]]+O[a[e+14]]+O[a[e+15]]).toLowerCase()}let Le;const W0=new Uint8Array(16);function F0(){if(!Le){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Le=crypto.getRandomValues.bind(crypto)}return Le(W0)}const G0=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),pt={randomUUID:G0};function K0(a,e,t){a=a||{};const s=a.random??a.rng?.()??F0();if(s.length<16)throw new Error("Random bytes length must be >= 16");return s[6]=s[6]&15|64,s[8]=s[8]&63|128,H0(s)}function q0(a,e,t){return pt.randomUUID&&!a?pt.randomUUID():K0(a)}const Z0=(a,e)=>{const t=a.__vccOpts||a;for(const[s,i]of e)t[s]=i;return t},J0={name:"CalendarAvailability",components:{NcDateTimePickerNative:St,NcButton:Fe,IconAdd:Ft,IconDelete:Ot},props:{slots:{type:Object,required:!0},loading:{type:Boolean,default:!1},l10nTo:{type:String,required:!0},l10nDeleteSlot:{type:String,required:!0},l10nEmptyDay:{type:String,required:!0},l10nAddSlot:{type:String,required:!0},l10nWeekDayListLabel:{type:String,default:"Weekdays"},l10nMonday:{type:String,required:!0},l10nTuesday:{type:String,required:!0},l10nWednesday:{type:String,required:!0},l10nThursday:{type:String,required:!0},l10nFriday:{type:String,required:!0},l10nSaturday:{type:String,required:!0},l10nSunday:{type:String,required:!0},l10nStartPickerLabel:{type:Function,default:a=>`Pick a start time for ${a}`},l10nEndPickerLabel:{type:Function,default:a=>`Pick a end time for ${a}`}},data(){return{internalSlots:this.slotsToInternalData(this.slots)}},watch:{slots(){this.internalSlots=this.slotsToInternalData(this.slots)}},methods:{timeStampSlotsToDateObjectSlots(a){return a.map(e=>({start:new Date(e.start*1e3),end:new Date(e.end*1e3)}))},slotsToInternalData(){const a=[{id:"MO",displayName:this.l10nMonday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.MO)},{id:"TU",displayName:this.l10nTuesday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.TU)},{id:"WE",displayName:this.l10nWednesday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.WE)},{id:"TH",displayName:this.l10nThursday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.TH)},{id:"FR",displayName:this.l10nFriday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.FR)},{id:"SA",displayName:this.l10nSaturday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.SA)}],e={id:"SU",displayName:this.l10nSunday,slots:this.timeStampSlotsToDateObjectSlots(this.slots.SU)};return Gt()===1?[...a,e]:[e,...a]},internalDataToSlots(){const a={};return this.internalSlots.forEach(({id:e,slots:t})=>{a[e]=t.map(s=>({start:Math.round(s.start.getTime()/1e3),end:Math.round(s.end.getTime()/1e3)}))}),a},addSlot(a){const e=new Date;e.setHours(9,0,0,0);const t=new Date;t.setHours(17,0,0,0),a.slots.push({start:e,end:t}),this.onChangeSlots()},removeSlot(a,e){a.slots.splice(e,1),this.onChangeSlots()},onChangeSlots(){this.$emit("update:slots",this.internalDataToSlots())}}},$0=["aria-label"],Q0={class:"label-weekday"},X0=["id"],es={class:"availability-slot-group"},ts={class:"to-text"},ss={key:0,class:"empty-content"};function as(a,e,t,s,i,r){const o=R("NcDateTimePickerNative"),n=R("IconDelete"),l=R("NcButton"),u=R("IconAdd");return v(),z("ul",{class:"week-day-container","aria-label":t.l10nWeekDayListLabel},[(v(!0),z(Je,null,$e(i.internalSlots,c=>(v(),z("li",{key:`day-label-${c.id}`,class:"day-container"},[G("div",Q0,[G("span",{id:c.displayName+"-label"},K(c.displayName),9,X0)]),(v(),z("div",{key:`day-slots-${c.id}`,class:"availability-slots"},[G("div",es,[(v(!0),z(Je,null,$e(c.slots,(d,m)=>(v(),z("div",{key:`slot-${c.id}-${m}`,class:"availability-slot"},[C(o,{id:`start-${c.id}-${m}`,modelValue:d.start,"onUpdate:modelValue":p=>d.start=p,type:"time",label:t.l10nStartPickerLabel?.(c.displayName),"hide-label":!0,class:"start-date",onChange:r.onChangeSlots},null,8,["id","modelValue","onUpdate:modelValue","label","onChange"]),G("span",ts,K(t.l10nTo),1),C(o,{id:`end-${c.id}-${m}`,modelValue:d.end,"onUpdate:modelValue":p=>d.end=p,type:"time",label:t.l10nEndPickerLabel?.(c.displayName),"hide-label":!0,class:"end-date",onChange:r.onChangeSlots},null,8,["id","modelValue","onUpdate:modelValue","label","onChange"]),(v(),ce(l,{key:`slot-${c.id}-${m}-btn`,type:"tertiary",class:"button","aria-label":t.l10nDeleteSlot,title:t.l10nDeleteSlot,onClick:p=>r.removeSlot(c,m)},{icon:q(()=>[C(n,{size:20})]),_:2},1032,["aria-label","title","onClick"]))]))),128))]),c.slots.length===0?(v(),z("span",ss,K(t.l10nEmptyDay),1)):Oe("",!0)])),(v(),ce(l,{key:`add-slot-${c.id}`,disabled:t.loading,class:"add-another button",title:t.l10nAddSlot,"aria-label":t.l10nAddSlot,onClick:d=>r.addSlot(c)},{icon:q(()=>[C(u,{size:20})]),_:2},1032,["disabled","title","aria-label","onClick"]))]))),128))],8,$0)}const is=Z0(J0,[["render",as],["__scopeId","data-v-3ef03e87"]]),rs=Wt().detectUser().setApp("@nextcloud/calendar-availability-vue").build();function ns(){return{MO:[],TU:[],WE:[],TH:[],FR:[],SA:[],SU:[]}}function os(a){const e=L.parse(a),t=new L.Component(e),s=t.getFirstSubcomponent("vavailability");let i;const r=t.getFirstSubcomponent("vtimezone");r&&(i=r.getFirstProperty("tzid").getFirstValue());const o=s.getAllSubcomponents("available"),n=ns();return o.forEach(l=>{const u=l.getFirstProperty("dtstart").getFirstValue(),c=l.getFirstProperty("dtend").getFirstValue(),d=l.getFirstProperty("rrule"),m=new Date;m.setHours(u.hour,u.minute,0,0);const p=new Date;if(p.setHours(c.hour,c.minute,0,0),d.getFirstValue().freq!=="WEEKLY"){rs.warn("rrule not supported",{rrule:d.toICALString()});return}d.getFirstValue().getComponent("BYDAY").forEach(y=>{n[y].push({start:m.getTime()/1e3,end:p.getTime()/1e3})})}),{slots:n,timezoneId:i}}function ls(a,e){const t=new L.Component("vcalendar");t.addPropertyWithValue("prodid","Nextcloud DAV app");const s=m0.getZoneString(e);if(s){const o=new L.Component(L.parse(s));t.addSubcomponent(o)}else{const o=new L.Component("vtimezone");o.addPropertyWithValue("tzid",e),t.addSubcomponent(o)}const i=new L.Component("vavailability"),r=a.reduce((o,n)=>{const l=new Date(n.start*1e3),u=new Date(n.end*1e3),c=[l.getHours(),l.getMinutes(),u.getHours(),u.getMinutes()].join("-");return{...o,[c]:[...o[c]??[],n]}},{});return Object.keys(r).map(o=>{const n=r[o],l=n[0].start,u=n[0].end,c=n.map(m=>m.day).filter((m,p,y)=>y.indexOf(m)===p),d=new L.Component("available");return d.addPropertyWithValue("dtstart",L.Time.fromJSDate(new Date(l*1e3),!1)).setParameter("tzid",e),d.addPropertyWithValue("dtend",L.Time.fromJSDate(new Date(u*1e3),!1)).setParameter("tzid",e),d.addPropertyWithValue("uid",q0()),d.addPropertyWithValue("rrule",{freq:"WEEKLY",byday:c}),d}).map(i.addSubcomponent.bind(i)),t.addSubcomponent(i),t.toString()}let Ce;function _t(){if(!Ce){const a=wt(`dav/calendars/${ze().uid}`);Ce=qt(a);const e=t=>{Ce.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:t??""})};Mt(e),e(Nt())}return Ce}function us(){return{MO:[],TU:[],WE:[],TH:[],FR:[],SA:[],SU:[]}}async function ds(){const a=await _t().customRequest("inbox",{method:"PROPFIND",data:`<?xml version="1.0"?>
|
|
<x0:propfind xmlns:x0="DAV:">
|
|
<x0:prop>
|
|
<x1:calendar-availability xmlns:x1="urn:ietf:params:xml:ns:caldav"/>
|
|
</x0:prop>
|
|
</x0:propfind>`}),e=await Zt(await a.text());if(!e)return;const t=e?.multistatus?.response[0]?.propstat?.prop["calendar-availability"];if(t)return os(t)}async function cs(a,e){const t=[...Object.keys(a).flatMap(i=>a[i].map(r=>({...r,day:i})))],s=ls(t,e);F.debug("New availability ical created",{vavailability:s}),await _t().customRequest("inbox",{method:"PROPPATCH",data:`<?xml version="1.0"?>
|
|
<x0:propertyupdate xmlns:x0="DAV:">
|
|
<x0:set>
|
|
<x0:prop>
|
|
<x1:calendar-availability xmlns:x1="urn:ietf:params:xml:ns:caldav">${s}</x1:calendar-availability>
|
|
</x0:prop>
|
|
</x0:set>
|
|
</x0:propertyupdate>`})}async function hs(){await fe.post(pe("/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}",{appId:"dav",configKey:"user_status_automation"}),{configValue:"yes"})}async function ms(){await fe.delete(pe("/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}",{appId:"dav",configKey:"user_status_automation"}))}const fs=He({__name:"AvailabilityForm",setup(a){const e=Kt().core.user?.timezone??Intl.DateTimeFormat().resolvedOptions().timeZone,t=me(!0),s=me(!1),i=me(us()),r=me(We("dav","user_status_automation")==="yes");xt(async()=>{try{const n=await ds();n?(i.value=n.slots,F.debug("availability loaded",{slots:i.value})):F.debug("no availability is set")}catch(n){F.error("could not load existing availability",{error:n}),Ne(E("dav","Failed to load availability"))}finally{t.value=!1}});async function o(){s.value=!0;try{await cs(i.value,e),r.value?await hs():await ms(),Ve(E("dav","Saved availability"))}catch(n){F.error("could not save availability",{error:n}),Ne(E("dav","Failed to save availability"))}finally{s.value=!1}}return(n,l)=>(v(),z("div",null,[C(D(is),{slots:i.value,"onUpdate:slots":l[0]||(l[0]=u=>i.value=u),loading:t.value,"l10n-to":D(E)("dav","to"),"l10n-delete-slot":D(E)("dav","Delete slot"),"l10n-empty-day":D(E)("dav","No working hours set"),"l10n-add-slot":D(E)("dav","Add slot"),"l10n-week-day-list-label":D(E)("dav","Weekdays"),"l10n-monday":D(E)("dav","Monday"),"l10n-tuesday":D(E)("dav","Tuesday"),"l10n-wednesday":D(E)("dav","Wednesday"),"l10n-thursday":D(E)("dav","Thursday"),"l10n-friday":D(E)("dav","Friday"),"l10n-saturday":D(E)("dav","Saturday"),"l10n-sunday":D(E)("dav","Sunday"),"l10n-start-picker-label":u=>D(E)("dav","Pick a start time for {dayName}",{dayName:u}),"l10n-end-picker-label":u=>D(E)("dav","Pick a end time for {dayName}",{dayName:u})},null,8,["slots","loading","l10n-to","l10n-delete-slot","l10n-empty-day","l10n-add-slot","l10n-week-day-list-label","l10n-monday","l10n-tuesday","l10n-wednesday","l10n-thursday","l10n-friday","l10n-saturday","l10n-sunday","l10n-start-picker-label","l10n-end-picker-label"]),C(D(It),{modelValue:r.value,"onUpdate:modelValue":l[1]||(l[1]=u=>r.value=u)},{default:q(()=>[we(K(D(E)("dav",'Automatically set user status to "Do not disturb" outside of availability to mute all notifications.')),1)]),_:1},8,["modelValue"]),C(D(Fe),{disabled:t.value||s.value,variant:"primary",onClick:o},{default:q(()=>[we(K(D(E)("dav","Save")),1)]),_:1},8,["disabled"])]))}}),ps=yt(fs,[["__scopeId","data-v-ed655058"]]),Ts=He({__name:"UserAvailability",setup(a){const e=We("dav","hide_absence_settings",!0);return(t,s)=>(v(),z("div",null,[C(D(Qe),{id:"availability",name:D(E)("dav","Availability"),description:D(E)("dav","If you configure your working hours, other people will see when you are out of office when they book a meeting.")},{default:q(()=>[C(ps)]),_:1},8,["name","description"]),D(e)?Oe("",!0):(v(),ce(D(Qe),{key:0,id:"absence",name:D(E)("dav","Absence"),description:D(E)("dav","Configure your next absence period.")},{default:q(()=>[C(d0)]),_:1},8,["name","description"]))]))}}),ys=kt(Ts);ys.mount("#settings-personal-availability");
|
|
//# sourceMappingURL=dav-settings-personal-availability.mjs.map
|