diff --git a/.gitignore b/.gitignore index 1d74e21..e1af3cc 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ .vscode/ +.DS_Store +*_ext.zip \ No newline at end of file diff --git a/Schedule-maker/firefox_ext/icons/ScheduleMaker-128x128.png b/Schedule-maker/firefox_ext/icons/ScheduleMaker-128x128.png new file mode 100644 index 0000000..1e6602b Binary files /dev/null and b/Schedule-maker/firefox_ext/icons/ScheduleMaker-128x128.png differ diff --git a/Schedule-maker/firefox_ext/icons/ScheduleMaker-16x16.png b/Schedule-maker/firefox_ext/icons/ScheduleMaker-16x16.png new file mode 100644 index 0000000..0703426 Binary files /dev/null and b/Schedule-maker/firefox_ext/icons/ScheduleMaker-16x16.png differ diff --git a/Schedule-maker/firefox_ext/icons/ScheduleMaker-32x32.png b/Schedule-maker/firefox_ext/icons/ScheduleMaker-32x32.png new file mode 100644 index 0000000..0f203e3 Binary files /dev/null and b/Schedule-maker/firefox_ext/icons/ScheduleMaker-32x32.png differ diff --git a/Schedule-maker/firefox_ext/icons/ScheduleMaker-48x48.png b/Schedule-maker/firefox_ext/icons/ScheduleMaker-48x48.png new file mode 100644 index 0000000..d15acec Binary files /dev/null and b/Schedule-maker/firefox_ext/icons/ScheduleMaker-48x48.png differ diff --git a/Schedule-maker/firefox_ext/icons/ScheduleMaker-64x64.png b/Schedule-maker/firefox_ext/icons/ScheduleMaker-64x64.png new file mode 100644 index 0000000..9ab7165 Binary files /dev/null and b/Schedule-maker/firefox_ext/icons/ScheduleMaker-64x64.png differ diff --git a/Schedule-maker/firefox_ext/icons/ScheduleMaker-76x76.png b/Schedule-maker/firefox_ext/icons/ScheduleMaker-76x76.png new file mode 100644 index 0000000..82743cd Binary files /dev/null and b/Schedule-maker/firefox_ext/icons/ScheduleMaker-76x76.png differ diff --git a/Schedule-maker/firefox_ext/js/background.js b/Schedule-maker/firefox_ext/js/background.js new file mode 100644 index 0000000..a393348 --- /dev/null +++ b/Schedule-maker/firefox_ext/js/background.js @@ -0,0 +1,128 @@ +var vtimezone_str = ` +BEGIN:VTIMEZONE +TZID:US-Eastern +LAST-MODIFIED:19870101T000000Z +BEGIN:STANDARD +DTSTART:19971026T020000 +RDATE:19971026T020000 +TZOFFSETFROM:-0400 +TZOFFSETTO:-0500 +TZNAME:EST +RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU +END:STANDARD +BEGIN:DAYLIGHT +DTSTART:19971026T020000 +RDATE:19970406T020000 +TZOFFSETFROM:-0500 +TZOFFSETTO:-0400 +TZNAME:EDT +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU +END:DAYLIGHT +END:VTIMEZONE +`; + +function weekMod(num){ + return num%7; +} +function createICal(jsonObj){ + // console.log(jsonObj); + window.json = jsonObj; + let vtimezoneComp = new ICAL.Component(ICAL.parse(vtimezone_str)); + let tzid = vtimezoneComp.getFirstPropertyValue('tzid'); + let timezone = new ICAL.Timezone({ + component: vtimezoneComp, + tzid + }); + let cal = new ICAL.Component(['vcalendar', [["prodid", {}, "text", "-//SidPagariya.ME//UMich "+jsonObj['title']+"//EN"], + ["version", {}, "text", "2.0"], + ["X-Apple-Calendar-Color", {}, "text", "#FFCD00"]], []]); //Or maybe just #002B64 :P + arbor_time = 'America/Detroit'; + cal.updatePropertyWithValue('X-WR-TIMEZONE', arbor_time); + cal.addSubcomponent(vtimezoneComp); + + // Need to change this every term :( + // Winter 2020 + var start_date = new Date(2020, 0, 8); //YEAR, MONTH, DAY. MONTH is 0...11 + var end_date = new Date(2020, 3, 21); //YEAR, MONTH, DAY. MONTH is 0...11 + + for(course of jsonObj.schedule) { + let classTitle = course.course.class; + let classType = course.course.type; + let classSec = course.course.sec; + let classNbr = course.course.nbr; + + for (var i=0; i0)?(8-start_date.getDay()):(1); //Schedules starting on Monday: 7, Tuesday: 6, etc. + + let conversionO = {MO:weekMod(0+offset),TU:weekMod(1+offset),WE:weekMod(2+offset),TH:weekMod(3+offset),FR:weekMod(4+offset),SA:weekMod(5+offset),SU:weekMod(6+offset)}; + var minDiff = 10; + for (day of byday){ + if (conversionO[day] < minDiff){ + minDiff = conversionO[day]; + } + } + let dtstart = new Date(start_date.getUTCFullYear(), start_date.getUTCMonth(), start_date.getUTCDate()+minDiff, start_time.hr, start_time.min, 0); + let dtend = new Date(start_date.getUTCFullYear(), start_date.getUTCMonth(), start_date.getUTCDate()+minDiff, end_time.hr, end_time.min, 0); + let location = course['location'][i]; + String.prototype.newFormat = function() { + var args = arguments; + return this.replace(/{(\d+)}/g, function(match, number) { + return typeof args[number] != 'undefined' + ? args[number] + : match + ; + }); + }; + let event_name = "{0} - {1} ({2}, {3})".newFormat(classTitle, classType, classSec, classNbr); + let vevent = new ICAL.Component('vevent'), + event = new ICAL.Event(vevent); + event.summary = event_name; + event.startDate = ICAL.Time.fromJSDate(dtstart).convertToZone(timezone); + event.endDate = ICAL.Time.fromJSDate(dtend).convertToZone(timezone); + event['location'] = location; + let rrule = new ICAL.Recur({ + 'freq': 'WEEKLY', + 'until': ICAL.Time.fromJSDate(end_date).convertToZone(timezone), + 'byday': byday + }); + vevent.updatePropertyWithValue('rrule', rrule); + if (classType != 'MID'){ + cal.addSubcomponent(vevent); + } + } + } + // let calendar_str = cal.toString(); + // let download_str_uri = 'data:text/calender;charset=utf-8,' + encodeURIComponent(calendar_str); + // console.log(download_str_uri); + return cal; +} + +browser.pageAction.onClicked.addListener(function (tab) { + currentTab = tab; + browser.tabs.sendMessage( + tab.id, + {msg: 'get_userdata'}, + responseCallback=function(userdata) { + if (userdata === null || userdata === undefined){ + return; + } + calender = createICal(userdata, tab); + let calendar_str = calender.toString(); + console.log(calendar_str); + let download_blob = new Blob([calendar_str], {type: 'text/calender;charset=utf-8'}); + browser.downloads.download({ + 'url': URL.createObjectURL(download_blob), + 'filename': userdata.title+".ics", + 'saveAs': true + }); + browser.downloads.download(); + } + ); +}); \ No newline at end of file diff --git a/Schedule-maker/firefox_ext/js/content.js b/Schedule-maker/firefox_ext/js/content.js new file mode 100644 index 0000000..b84d2a3 --- /dev/null +++ b/Schedule-maker/firefox_ext/js/content.js @@ -0,0 +1,460 @@ +function convertTime(time){ + var hours = Number(time.match(/^(\d+)/)[1]); + var minutes = Number(time.match(/:(\d+)/)[1]); + var AMPM = time.match(/am|pm|AM|PM/); + if (AMPM !== null && AMPM !== undefined) { + AMPM = AMPM[0]; + if((AMPM === "PM" || AMPM === "pm") && hours<12) hours = hours+12; + if((AMPM === "AM" || AMPM === "am") && hours===12) hours = hours-12; + } + var sHours = hours.toString(); + var sMinutes = minutes.toString(); + if(hours<10) sHours = "0" + sHours; + if(minutes<10) sMinutes = "0" + sMinutes; + return {hr:+sHours,min:+sMinutes}; +} +function parseScheduleWA(){ + var tbody = $('[id="STDNT_WEEK_SCHD$scroll$0"]', $('#ptifrmtgtframe')[0].contentWindow.document).children()[0]; + var termsched = tbody.firstElementChild.firstElementChild.firstElementChild.innerText + var tbodymain = tbody.children[1].firstElementChild.firstElementChild.firstElementChild + var jsonObj = {}; + jsonObj.title = termsched; + var schedule = []; + var offset = 0; + if (tbodymain.children[0].children.length != 2){ + offset = 1; + } + for (var i=1; i div.schedule-show > div.row.section-grid-row.hidden-sm.hidden-xs.show-for-print > div > table'); + var termsched = $("#content > div.schedule-show > div.schedule-actions-container > div > div.row.bottom5.hidden-print > div.col-md-5.col-xs-9.pagination-row.no-padding-left.no-padding-right.hidden-acc.pull-right.view-button-container > span > div > ul > li.dropdown-header"); + if (termsched.length < 1) { + termsched = "Schedule"; + } else { + termsched = termsched[0].innerText; + } + var tbodymain = table.children()[1]; + var jsonObj = {}; + jsonObj.title = termsched; + var schedule = []; + + for (var i = 0; i < tbodymain.childElementCount; i+=2) { + item = {} + var course = tbodymain.children[i].children; + var courseInfo = tbodymain.children[i+1]; + if (courseInfo === undefined || (courseInfo.getAttribute("data-id") !== null && courseInfo.getAttribute("data-id") !== "")) { + tbodymain.children[i].children[1].children[0].children[0].children[0].click(); + tbodymain = table.children()[1]; + courseInfo = tbodymain.children[i+1].children[0].children[0].children[0].children[0].children[0]; + } else { + courseInfo = courseInfo.children[0].children[0].children[0].children[0]; + } + classI = {} + classI.class = classMap[course[5].innerText.trim()] + " " + course[6].innerText.trim(); + classI.sec = course[4].innerText.trim(); + classI.type = courseInfo.children[5].childNodes[1].data; + classI.nbr = course[3].innerText.trim(); + item.course = classI; + var sched = course[7].children[0]; + subscheds = []; + locs = []; + if (sched !== undefined) { + sched = sched.childNodes; + var subschedObj = {"days": [], "time": {}}; + for (var j = 1; j < sched.length; ++j) { + if (sched[j].nodeName === "SPAN"){ + subschedObj.days.push(sched[j].getAttribute("aria-label").substring(0, 2).toUpperCase()); + } else { + var time = {}; + var splStr = sched[j].data.trim().split(" - "); + subschedObj.time.from = convertTime(splStr[0]); + subschedObj.time.to = convertTime(splStr[1]); + locs.push(splStr[2]); + if (subschedObj !== {}) { + subscheds.push(subschedObj); + subschedObj = {"days": [], "time": {}}; + } + } + } + } + item.sched = subscheds; + item.location = locs; + schedule.push(item); + } + jsonObj.schedule = schedule; + return jsonObj; +} + +browser.runtime.onMessage.addListener(function (msg, sender, sendResponse) { + if (msg.msg === 'get_userdata') { + var jsonO = null; + if (location.host === "umich.collegescheduler.com") { + if ($('.time-events').length < 1) { + alert("Please go to a valid Schedule page."); + } else { + jsonO = parseScheduleSB(); + } + } else { + jsonO = parseScheduleWA(); + } + console.log(jsonO); + sendResponse(jsonO); + } +}); \ No newline at end of file diff --git a/Schedule-maker/firefox_ext/js/ical.min.js b/Schedule-maker/firefox_ext/js/ical.min.js new file mode 100644 index 0000000..6b1a2d6 --- /dev/null +++ b/Schedule-maker/firefox_ext/js/ical.min.js @@ -0,0 +1,4 @@ +"object"==typeof module?ICAL=module.exports:"object"!=typeof ICAL&&(this.ICAL={}),ICAL.foldLength=75,ICAL.newLineChar="\r\n",ICAL.helpers={isStrictlyNaN:function(a){return"number"==typeof a&&isNaN(a)},strictParseInt:function(a){var b=parseInt(a,10);if(ICAL.helpers.isStrictlyNaN(b))throw new Error('Could not extract integer from "'+a+'"');return b},formatClassType:function(a,b){if("undefined"!=typeof a)return a instanceof b?a:new b(a)},unescapedIndexOf:function(a,b,c){for(;(c=a.indexOf(b,c))!==-1;){if(!(c>0&&"\\"===a[c-1]))return c;c+=1}return-1},binsearchInsert:function(a,b,c){if(!a.length)return 0;for(var d,e,f=0,g=a.length-1;f<=g;)if(d=f+Math.floor((g-f)/2),e=c(b,a[d]),e<0)g=d-1;else{if(!(e>0))break;f=d+1}return e<0?d:e>0?d+1:d},dumpn:function(){ICAL.debug&&("undefined"!=typeof console&&"log"in console?ICAL.helpers.dumpn=function(a){console.log(a)}:ICAL.helpers.dumpn=function(a){dump(a+"\n")},ICAL.helpers.dumpn(arguments[0]))},clone:function(a,b){if(a&&"object"==typeof a){if(a instanceof Date)return new Date(a.getTime());if("clone"in a)return a.clone();if(Array.isArray(a)){for(var c=[],d=0;d11?a:a.substr(0,4)+a.substr(5,2)+a.substr(8,2)}},"date-time":{fromICAL:function(a){var b=a.substr(0,4)+"-"+a.substr(4,2)+"-"+a.substr(6,2)+"T"+a.substr(9,2)+":"+a.substr(11,2)+":"+a.substr(13,2);return a[15]&&"Z"===a[15]&&(b+="Z"),b},toICAL:function(a){if(a.length<19)return a;var b=a.substr(0,4)+a.substr(5,2)+a.substr(8,5)+a.substr(14,2)+a.substr(17,2);return a[19]&&"Z"===a[19]&&(b+="Z"),b},decorate:function(a,b){return ICAL.Time.fromDateTimeString(a,b)},undecorate:function(a){return a.toString()}},duration:{decorate:function(a){return ICAL.Duration.fromString(a)},undecorate:function(a){return a.toString()}},period:{fromICAL:function(a){var b=a.split("/");return b[0]=u["date-time"].fromICAL(b[0]),ICAL.Duration.isValueString(b[1])||(b[1]=u["date-time"].fromICAL(b[1])),b},toICAL:function(a){return a[0]=u["date-time"].toICAL(a[0]),ICAL.Duration.isValueString(a[1])||(a[1]=u["date-time"].toICAL(a[1])),a.join("/")},decorate:function(a,b){return ICAL.Period.fromJSON(a,b)},undecorate:function(a){return a.toJSON()}},recur:{fromICAL:function(a){return ICAL.Recur._stringToData(a,!0)},toICAL:function(a){var b="";for(var c in a)if(Object.prototype.hasOwnProperty.call(a,c)){var d=a[c];"until"==c?d=d.length>10?u["date-time"].toICAL(d):u.date.toICAL(d):"wkst"==c?"number"==typeof d&&(d=ICAL.Recur.numericDayToIcalDay(d)):Array.isArray(d)&&(d=d.join(",")),b+=c.toUpperCase()+"="+d+";"}return b.substr(0,b.length-1)},decorate:function(a){return ICAL.Recur.fromData(a)},undecorate:function(a){return a.toJSON()}},time:{fromICAL:function(a){if(a.length<6)return a;var b=a.substr(0,2)+":"+a.substr(2,2)+":"+a.substr(4,2);return"Z"===a[6]&&(b+="Z"),b},toICAL:function(a){if(a.length<8)return a;var b=a.substr(0,2)+a.substr(3,2)+a.substr(6,2);return"Z"===a[8]&&(b+="Z"),b}}}),v=ICAL.helpers.extend(r,{action:h,attach:{defaultType:"uri"},attendee:{defaultType:"cal-address"},calscale:h,class:h,comment:h,completed:m,contact:h,created:m,description:h,dtend:l,dtstamp:m,dtstart:l,due:l,duration:{defaultType:"duration"},exdate:{defaultType:"date-time",allowedTypes:["date-time","date"],multiValue:","},exrule:p,freebusy:{defaultType:"period",multiValue:","},geo:{defaultType:"float",structuredValue:";"},"last-modified":m,location:h,method:h,organizer:{defaultType:"cal-address"},"percent-complete":k,priority:k,prodid:h,"related-to":h,repeat:k,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":l,resources:i,"request-status":j,rrule:p,sequence:k,status:h,summary:h,transp:h,trigger:{defaultType:"duration",allowedTypes:["duration","date-time"]},tzoffsetfrom:o,tzoffsetto:o,tzurl:n,tzid:h,tzname:h}),w=ICAL.helpers.extend(s,{text:a(f,g),uri:a(f,g),date:{decorate:function(a){return ICAL.VCardTime.fromDateAndOrTimeString(a,"date")},undecorate:function(a){return a.toString()},fromICAL:function(a){return 8==a.length?u.date.fromICAL(a):"-"==a[0]&&6==a.length?a.substr(0,4)+"-"+a.substr(4):a},toICAL:function(a){return 10==a.length?u.date.toICAL(a):"-"==a[0]&&7==a.length?a.substr(0,4)+a.substr(5):a}},time:{decorate:function(a){return ICAL.VCardTime.fromDateAndOrTimeString("T"+a,"time")},undecorate:function(a){return a.toString()},fromICAL:function(a){var b=w.time._splitZone(a,!0),c=b[0],d=b[1];return 6==d.length?d=d.substr(0,2)+":"+d.substr(2,2)+":"+d.substr(4,2):4==d.length&&"-"!=d[0]?d=d.substr(0,2)+":"+d.substr(2,2):5==d.length&&(d=d.substr(0,3)+":"+d.substr(3,2)),5!=c.length||"-"!=c[0]&&"+"!=c[0]||(c=c.substr(0,3)+":"+c.substr(3)),d+c},toICAL:function(a){var b=w.time._splitZone(a),c=b[0],d=b[1];return 8==d.length?d=d.substr(0,2)+d.substr(3,2)+d.substr(6,2):5==d.length&&"-"!=d[0]?d=d.substr(0,2)+d.substr(3,2):6==d.length&&(d=d.substr(0,3)+d.substr(4,2)),6!=c.length||"-"!=c[0]&&"+"!=c[0]||(c=c.substr(0,3)+c.substr(4)),d+c},_splitZone:function(a,b){var c,d,e=a.length-1,f=a.length-(b?5:6),g=a[f];return"Z"==a[e]?(c=a[e],d=a.substr(0,e)):a.length>6&&("-"==g||"+"==g)?(c=a.substr(f),d=a.substr(0,f)):(c="",d=a),[c,d]}},"date-time":{decorate:function(a){return ICAL.VCardTime.fromDateAndOrTimeString(a,"date-time")},undecorate:function(a){return a.toString()},fromICAL:function(a){return w["date-and-or-time"].fromICAL(a)},toICAL:function(a){return w["date-and-or-time"].toICAL(a)}},"date-and-or-time":{decorate:function(a){return ICAL.VCardTime.fromDateAndOrTimeString(a,"date-and-or-time")},undecorate:function(a){return a.toString()},fromICAL:function(a){var b=a.split("T");return(b[0]?w.date.fromICAL(b[0]):"")+(b[1]?"T"+w.time.fromICAL(b[1]):"")},toICAL:function(a){var b=a.split("T");return w.date.toICAL(b[0])+(b[1]?"T"+w.time.toICAL(b[1]):"")}},timestamp:u["date-time"],"language-tag":{matches:/^[a-zA-Z0-9\-]+$/}}),x={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}},y=ICAL.helpers.extend(r,{adr:{defaultType:"text",structuredValue:";",multiValue:","},anniversary:q,bday:q,caladruri:n,caluri:n,clientpidmap:j,email:h,fburl:n,fn:h,gender:j,geo:n,impp:n,key:n,kind:h,lang:{defaultType:"language-tag"},logo:n,member:n,n:{defaultType:"text",structuredValue:";",multiValue:","},nickname:i,note:h,org:{defaultType:"text",structuredValue:";"},photo:n,related:n,rev:{defaultType:"timestamp"},role:h,sound:n,source:n,tel:{defaultType:"uri",allowedTypes:["uri","text"]},title:h,tz:{defaultType:"text",allowedTypes:["text","utc-offset","uri"]},xml:h}),z=ICAL.helpers.extend(s,{binary:u.binary,date:w.date,"date-time":w["date-time"],"phone-number":{},uri:u.uri,text:u.text,time:u.time,vcard:u.text,"utc-offset":{toICAL:function(a){return a.substr(0,7)},fromICAL:function(a){return a.substr(0,7)},decorate:function(a){return ICAL.UtcOffset.fromString(a)},undecorate:function(a){return a.toString()}}}),A={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}},B=ICAL.helpers.extend(r,{fn:h,n:{defaultType:"text",structuredValue:";",multiValue:","},nickname:i,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:h,tel:{defaultType:"phone-number"},email:h,mailer:h,tz:{defaultType:"utc-offset",allowedTypes:["utc-offset","text"]},geo:{defaultType:"float",structuredValue:";"},title:h,role:h,logo:{defaultType:"binary",allowedTypes:["binary","uri"]},agent:{defaultType:"vcard",allowedTypes:["vcard","text","uri"]},org:j,note:i,prodid:h,rev:{defaultType:"date-time",allowedTypes:["date-time","date"],detectType:function(a){return a.indexOf("T")===-1?"date":"date-time"}},"sort-string":h,sound:{defaultType:"binary",allowedTypes:["binary","uri"]},class:h,key:{defaultType:"binary",allowedTypes:["binary","text"]}}),C={value:u,param:t,property:v},D={value:w,param:x,property:y},E={value:z,param:A,property:B},F={defaultSet:C,defaultType:"unknown",components:{vcard:D,vcard3:E,vevent:C,vtodo:C,vjournal:C,valarm:C,vtimezone:C,daylight:C,standard:C},icalendar:C,vcard:D,vcard3:E,getDesignSet:function(a){var b=a&&a in F.components;return b?F.components[a]:F.defaultSet}};return F}(),ICAL.stringify=function(){"use strict";function a(c){"string"==typeof c[0]&&(c=[c]);for(var d=0,e=c.length,f="";d0&&("version"!==c[1][0][0]||"4.0"!==c[1][0][3])&&(k="vcard3"),e=e||d.getDesignSet(k);i1)throw new a("invalid ical body. component began but did not end");return d=null,1==e.length?e[0]:e}var c=/[^ \t]/,d=":",e=";",f="=",g="unknown",h="text",i=ICAL.design,j=ICAL.helpers;a.prototype=Error.prototype,b.property=function(a,c){var d={component:[[],[]],designSet:c||i.defaultSet};return b._handleContentLine(a,d),d.component[1][0]},b.component=function(a){return b(a)},b.ParserError=a,b._handleContentLine=function(c,f){var h,j,k,l,m=c.indexOf(d),n=c.indexOf(e),o={};n!==-1&&m!==-1&&n>m&&(n=-1);var p;if(n!==-1){if(k=c.substring(0,n).toLowerCase(),p=b._parseParameters(c.substring(n),0,f.designSet),p[2]==-1)throw new a("Invalid parameters in '"+c+"'");if(o=p[0],h=p[1].length+p[2]+n,(j=c.substring(h).indexOf(d))===-1)throw new a("Missing parameter value in '"+c+"'");l=c.substring(h+j+1)}else{if(m===-1)throw new a('invalid line (no token ";" or ":") "'+c+'"');if(k=c.substring(0,m).toLowerCase(),l=c.substring(m+1),"begin"===k){var q=[l.toLowerCase(),[],[]];return 1===f.stack.length?f.component.push(q):f.component[2].push(q),f.stack.push(f.component),f.component=q,void(f.designSet||(f.designSet=i.getDesignSet(f.component[0])))}if("end"===k)return void(f.component=f.stack.pop())}var r,s,t=!1,u=!1;k in f.designSet.property&&(s=f.designSet.property[k],"multiValue"in s&&(t=s.multiValue),"structuredValue"in s&&(u=s.structuredValue),l&&"detectType"in s&&(r=s.detectType(l))),r||(r="value"in o?o.value.toLowerCase():s?s.defaultType:g),delete o.value;var v;t&&u?(l=b._parseMultiValue(l,u,r,[],t,f.designSet,u),v=[k,o,r,l]):t?(v=[k,o,r],b._parseMultiValue(l,t,r,v,null,f.designSet,!1)):u?(l=b._parseMultiValue(l,u,r,[],null,f.designSet,u),v=[k,o,r,l]):(l=b._parseValue(l,r,f.designSet,!1),v=[k,o,r,l]),"vcard"!==f.component[0]||0!==f.component[1].length||"version"===k&&"4.0"===l||(f.designSet=i.getDesignSet("vcard3")),f.component[1].push(v)},b._parseValue=function(a,b,c,d){return b in c.value&&"fromICAL"in c.value[b]?c.value[b].fromICAL(a,d):a},b._parseParameters=function(c,g,i){for(var k,l,m,n,o,p,q=g,r=0,s=f,t={},u=-1;r!==!1&&(r=j.unescapedIndexOf(c,s,r+1))!==-1;){if(k=c.substr(q+1,r-q-1),0==k.length)throw new a("Empty parameter name in '"+c+"'");l=k.toLowerCase(),n=l in i.param&&i.param[l].valueType?i.param[l].valueType:h,l in i.param&&(o=i.param[l].multiValue,i.param[l].multiValueSeparateDQuote&&(p=b._rfc6868Escape('"'+o+'"')));var v=c[r+1];if('"'===v){if(u=r+2,r=j.unescapedIndexOf(c,'"',u),o&&r!=-1)for(var w=!0;w;)c[r+1]==o&&'"'==c[r+2]?r=j.unescapedIndexOf(c,'"',r+3):w=!1;if(r===-1)throw new a('invalid line (no matching double quote) "'+c+'"');m=c.substr(u,r-u),q=j.unescapedIndexOf(c,e,r),q===-1&&(r=!1)}else{u=r+1;var x=j.unescapedIndexOf(c,e,u),y=j.unescapedIndexOf(c,d,u);y!==-1&&x>y?(x=y,r=!1):x===-1?(x=y===-1?c.length:y,r=!1):(q=x,r=x),m=c.substr(u,x-u)}if(m=b._rfc6868Escape(m),o){var z=p||o;t[l]=b._parseMultiValue(m,z,n,[],null,i)}else t[l]=b._parseValue(m,n,i)}return[t,m,u]},b._rfc6868Escape=function(a){return a.replace(/\^['n^]/g,function(a){return k[a]})};var k={"^'":'"',"^n":"\n","^^":"^"};return b._parseMultiValue=function(a,c,d,e,f,g,h){var i,k=0,l=0;if(0===c.length)return a;for(;(k=j.unescapedIndexOf(a,c,l))!==-1;)i=a.substr(l,k-l),i=f?b._parseMultiValue(i,f,d,[],null,g,h):b._parseValue(i,d,g,h),e.push(i),l=k+c.length;return i=a.substr(l),i=f?b._parseMultiValue(i,f,d,[],null,g,h):b._parseValue(i,d,g,h),e.push(i),1==e.length?e[0]:e},b._eachLine=function(a,b){var d,e,f,g=a.length,h=a.search(c),i=h;do i=a.indexOf("\n",h)+1,f=i>1&&"\r"===a[i-2]?2:1,0===i&&(i=g,f=0),e=a[h]," "===e||"\t"===e?d+=a.substr(h+1,i-h-(f+1)):(d&&b(null,d),d=a.substr(h,i-h-f)),h=i;while(i!==g);d=d.trim(),d.length&&b(null,d)},b}(),ICAL.Component=function(){"use strict";function a(a,b){"string"==typeof a&&(a=[a,[],[]]),this.jCal=a,this.parent=b||null}var b=1,c=2,d=0;return a.prototype={_hydratedPropertyCount:0,_hydratedComponentCount:0,get name(){return this.jCal[d]},get _designSet(){var a=this.parent&&this.parent._designSet;return a||ICAL.design.getDesignSet(this.name)},_hydrateComponent:function(b){if(this._components||(this._components=[],this._hydratedComponentCount=0),this._components[b])return this._components[b];var d=new a(this.jCal[c][b],this);return this._hydratedComponentCount++,this._components[b]=d},_hydrateProperty:function(a){if(this._properties||(this._properties=[],this._hydratedPropertyCount=0),this._properties[a])return this._properties[a];var c=new ICAL.Property(this.jCal[b][a],this);return this._hydratedPropertyCount++,this._properties[a]=c},getFirstSubcomponent:function(a){if(a){for(var b=0,e=this.jCal[c],f=e.length;b=0;g--)c&&f[g][d]!==c||this._removeObjectByIndex(a,e,g)},addSubcomponent:function(a){this._components||(this._components=[],this._hydratedComponentCount=0),a.parent&&a.parent.removeSubcomponent(a);var b=this.jCal[c].push(a.jCal);return this._components[b-1]=a,this._hydratedComponentCount++,a.parent=this,a},removeSubcomponent:function(a){var b=this._removeObject(c,"_components",a);return b&&this._hydratedComponentCount--,b},removeAllSubcomponents:function(a){var b=this._removeAllObjects(c,"_components",a);return this._hydratedComponentCount=0,b},addProperty:function(a){if(!(a instanceof ICAL.Property))throw new TypeError("must instance of ICAL.Property");this._properties||(this._properties=[],this._hydratedPropertyCount=0),a.parent&&a.parent.removeProperty(a);var c=this.jCal[b].push(a.jCal);return this._properties[c-1]=a,this._hydratedPropertyCount++,a.parent=this,a},addPropertyWithValue:function(a,b){var c=new ICAL.Property(a);return c.setValue(b),this.addProperty(c),c},updatePropertyWithValue:function(a,b){var c=this.getFirstProperty(a);return c?c.setValue(b):c=this.addPropertyWithValue(a,b),c},removeProperty:function(a){var c=this._removeObject(b,"_properties",a);return c&&this._hydratedPropertyCount--,c},removeAllProperties:function(a){var c=this._removeAllObjects(b,"_properties",a);return this._hydratedPropertyCount=0,c},toJSON:function(){return this.jCal},toString:function(){return ICAL.stringify.component(this.jCal,this._designSet)}},a.fromString=function(b){return new a(ICAL.parse.component(b))},a}(),ICAL.Property=function(){"use strict";function a(a,b){this._parent=b||null,"string"==typeof a?(this.jCal=[a,{},f.defaultType],this.jCal[d]=this.getDefaultType()):this.jCal=a,this._updateType()}var b=0,c=1,d=2,e=3,f=ICAL.design;return a.prototype={get type(){return this.jCal[d]},get name(){return this.jCal[b]},get parent(){return this._parent},set parent(a){var b=!this._parent||a&&a._designSet!=this._parent._designSet;return this._parent=a,this.type==f.defaultType&&b&&(this.jCal[d]=this.getDefaultType(),this._updateType()),a},get _designSet(){return this.parent?this.parent._designSet:f.defaultSet},_updateType:function(){var a=this._designSet;if(this.type in a.value){a.value[this.type];"decorate"in a.value[this.type]?this.isDecorated=!0:this.isDecorated=!1,this.name in a.property&&(this.isMultiValue="multiValue"in a.property[this.name],this.isStructuredValue="structuredValue"in a.property[this.name])}},_hydrateValue:function(a){return this._values&&this._values[a]?this._values[a]:this.jCal.length<=e+a?null:this.isDecorated?(this._values||(this._values=[]),this._values[a]=this._decorate(this.jCal[e+a])):this.jCal[e+a]},_decorate:function(a){return this._designSet.value[this.type].decorate(a,this)},_undecorate:function(a){return this._designSet.value[this.type].undecorate(a,this)},_setDecoratedValue:function(a,b){this._values||(this._values=[]),"object"==typeof a&&"icaltype"in a?(this.jCal[e+b]=this._undecorate(a),this._values[b]=a):(this.jCal[e+b]=a,this._values[b]=this._decorate(a))},getParameter:function(a){return a in this.jCal[c]?this.jCal[c][a]:void 0},setParameter:function(a,b){var d=a.toLowerCase();"string"==typeof b&&d in this._designSet.param&&"multiValue"in this._designSet.param[d]&&(b=[b]),this.jCal[c][a]=b},removeParameter:function(a){delete this.jCal[c][a]},getDefaultType:function(){var a=this.jCal[b],c=this._designSet;if(a in c.property){var d=c.property[a];if("defaultType"in d)return d.defaultType}return f.defaultType},resetType:function(a){this.removeAllValues(),this.jCal[d]=a,this._updateType()},getFirstValue:function(){return this._hydrateValue(0)},getValues:function(){var a=this.jCal.length-e;if(a<1)return[];for(var b=0,c=[];b0&&"object"==typeof a[0]&&"icaltype"in a[0]&&this.resetType(a[0].icaltype),this.isDecorated)for(;cc)-(c>b)},_normalize:function(){for(var a=this.toSeconds(),b=this.factor;a<-43200;)a+=97200;for(;a>50400;)a-=97200;this.fromSeconds(a),0==a&&(this.factor=b)},toICALString:function(){return ICAL.design.icalendar.value["utc-offset"].toICAL(this.toString())},toString:function(){return(1==this.factor?"+":"-")+ICAL.helpers.pad2(this.hours)+":"+ICAL.helpers.pad2(this.minutes)}},a.fromString=function(a){var b={};return b.factor="+"===a[0]?1:-1,b.hours=ICAL.helpers.strictParseInt(a.substr(1,2)),b.minutes=ICAL.helpers.strictParseInt(a.substr(4,2)),new ICAL.UtcOffset(b)},a.fromSeconds=function(b){var c=new a;return c.fromSeconds(b),c},a}(),ICAL.Binary=function(){function a(a){this.value=a}return a.prototype={icaltype:"binary",decodeValue:function(){return this._b64_decode(this.value)},setEncodedValue:function(a){this.value=this._b64_encode(a)},_b64_encode:function(a){var b,c,d,e,f,g,h,i,j="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",k=0,l=0,m="",n=[];if(!a)return a;do b=a.charCodeAt(k++),c=a.charCodeAt(k++),d=a.charCodeAt(k++),i=b<<16|c<<8|d,e=i>>18&63,f=i>>12&63,g=i>>6&63,h=63&i,n[l++]=j.charAt(e)+j.charAt(f)+j.charAt(g)+j.charAt(h);while(k>16&255,c=i>>8&255,d=255&i,64==g?n[l++]=String.fromCharCode(b):64==h?n[l++]=String.fromCharCode(b,c):n[l++]=String.fromCharCode(b,c,d);while(kc)-(b=0?d=c:e=-1,e==-1&&d!=-1)break;if(c+=e,c<0)return 0;if(c>=this.changes.length)break}var h=this.changes[d],i=h.utcOffset-h.prevUtcOffset;if(i<0&&d>0){var j=ICAL.helpers.clone(h,!0);if(ICAL.Timezone.adjust_change(j,0,0,0,j.prevUtcOffset),ICAL.Timezone._compare_change_fn(b,j)<0){var k=this.changes[d-1],l=!1;h.is_daylight!=l&&k.is_daylight==l&&(h=k)}}return h.utcOffset},_findNearbyChange:function(a){var b=ICAL.helpers.binsearchInsert(this.changes,a,ICAL.Timezone._compare_change_fn);return b>=this.changes.length?this.changes.length-1:b},_ensureCoverage:function(a){if(ICAL.Timezone._minimumExpansionYear==-1){var b=ICAL.Time.now();ICAL.Timezone._minimumExpansionYear=b.year}var c=a;if(cICAL.Timezone.MAX_YEAR&&(c=ICAL.Timezone.MAX_YEAR),!this.changes.length||this.expandedUntilYearb)&&m);)f.year=m.year,f.month=m.month,f.day=m.day,f.hour=m.hour,f.minute=m.minute,f.second=m.second,f.isDate=m.isDate,ICAL.Timezone.adjust_change(f,0,0,0,-f.prevUtcOffset),c.push(f)}}else f=e(),f.year=g.year,f.month=g.month,f.day=g.day,f.hour=g.hour,f.minute=g.minute,f.second=g.second,ICAL.Timezone.adjust_change(f,0,0,0,-f.prevUtcOffset),c.push(f);return c},toString:function(){return this.tznames?this.tznames:this.tzid}},ICAL.Timezone._compare_change_fn=function(a,b){return a.yearb.year?1:a.monthb.month?1:a.dayb.day?1:a.hourb.hour?1:a.minuteb.minute?1:a.secondb.second?1:0},ICAL.Timezone.convert_time=function(a,b,c){if(a.isDate||b.tzid==c.tzid||b==ICAL.Timezone.localTimezone||c==ICAL.Timezone.localTimezone)return a.zone=c,a;var d=b.utcOffset(a);return a.adjust(0,0,0,-d),d=c.utcOffset(a),a.adjust(0,0,0,d),null},ICAL.Timezone.fromData=function(a){var b=new ICAL.Timezone;return b.fromData(a)},ICAL.Timezone.utcTimezone=ICAL.Timezone.fromData({tzid:"UTC"}),ICAL.Timezone.localTimezone=ICAL.Timezone.fromData({tzid:"floating"}),ICAL.Timezone.adjust_change=function(a,b,c,d,e){return ICAL.Time.prototype.adjust.call(a,b,c,d,e,a)},ICAL.Timezone._minimumExpansionYear=-1,ICAL.Timezone.MAX_YEAR=2035,ICAL.Timezone.EXTRA_COVERAGE=5}(),ICAL.TimezoneService=function(){var a,b={reset:function(){a=Object.create(null);var b=ICAL.Timezone.utcTimezone;a.Z=b,a.UTC=b,a.GMT=b},has:function(b){return!!a[b]},get:function(b){return a[b]},register:function(b,c){if(b instanceof ICAL.Component&&"vtimezone"===b.name&&(c=new ICAL.Timezone(b),b=c.tzid),!(c instanceof ICAL.Timezone))throw new TypeError("timezone must be ICAL.Timezone or ICAL.Component");a[b]=c},remove:function(b){return delete a[b]}};return b.reset(),b}(),function(){ICAL.Time=function(a,b){this.wrappedJSObject=this;var c=this._time=Object.create(null);c.year=0,c.month=1,c.day=1,c.hour=0,c.minute=0,c.second=0,c.isDate=!1,this.fromData(a,b)},ICAL.Time._dowCache={},ICAL.Time._wnCache={},ICAL.Time.prototype={icalclass:"icaltime",_cachedUnixTime:null,get icaltype(){return this.isDate?"date":"date-time"},zone:null,_pendingNormalization:!1,clone:function(){return new ICAL.Time(this._time,this.zone)},reset:function(){this.fromData(ICAL.Time.epochTime),this.zone=ICAL.Timezone.utcTimezone},resetTo:function(a,b,c,d,e,f,g){this.fromData({year:a,month:b,day:c,hour:d,minute:e,second:f,zone:g})},fromJSDate:function(a,b){return a?b?(this.zone=ICAL.Timezone.utcTimezone,this.year=a.getUTCFullYear(),this.month=a.getUTCMonth()+1,this.day=a.getUTCDate(),this.hour=a.getUTCHours(),this.minute=a.getUTCMinutes(),this.second=a.getUTCSeconds()):(this.zone=ICAL.Timezone.localTimezone,this.year=a.getFullYear(),this.month=a.getMonth()+1,this.day=a.getDate(),this.hour=a.getHours(),this.minute=a.getMinutes(),this.second=a.getSeconds()):this.reset(),this._cachedUnixTime=null,this},fromData:function(a,b){if(a)for(var c in a)if(Object.prototype.hasOwnProperty.call(a,c)){if("icaltype"===c)continue;this[c]=a[c]}if(b&&(this.zone=b),!a||"isDate"in a?a&&"isDate"in a&&(this.isDate=a.isDate):this.isDate=!("hour"in a),a&&"timezone"in a){var d=ICAL.TimezoneService.get(a.timezone);this.zone=d||ICAL.Timezone.localTimezone}return a&&"zone"in a&&(this.zone=a.zone),this.zone||(this.zone=ICAL.Timezone.localTimezone),this._cachedUnixTime=null,this},dayOfWeek:function(){var a=(this.year<<9)+(this.month<<5)+this.day;if(a in ICAL.Time._dowCache)return ICAL.Time._dowCache[a];var b=this.day,c=this.month+(this.month<3?12:0),d=this.year-(this.month<3?1:0),e=b+d+ICAL.helpers.trunc(26*(c+1)/10)+ICAL.helpers.trunc(d/4);return e+=6*ICAL.helpers.trunc(d/100)+ICAL.helpers.trunc(d/400),e=(e+6)%7+1,ICAL.Time._dowCache[a]=e,e},dayOfYear:function(){var a=ICAL.Time.isLeapYear(this.year)?1:0,b=ICAL.Time.daysInYearPassedMonth;return b[a][this.month-1]+this.day},startOfWeek:function(a){var b=a||ICAL.Time.SUNDAY,c=this.clone();return c.day-=(this.dayOfWeek()+7-b)%7,c.isDate=!0,c.hour=0,c.minute=0,c.second=0,c},endOfWeek:function(a){var b=a||ICAL.Time.SUNDAY,c=this.clone();return c.day+=(7-this.dayOfWeek()+b-ICAL.Time.SUNDAY)%7,c.isDate=!0,c.hour=0,c.minute=0,c.second=0,c},startOfMonth:function(){var a=this.clone();return a.day=1,a.isDate=!0,a.hour=0,a.minute=0,a.second=0,a},endOfMonth:function(){var a=this.clone();return a.day=ICAL.Time.daysInMonth(a.month,a.year),a.isDate=!0,a.hour=0,a.minute=0,a.second=0,a},startOfYear:function(){var a=this.clone();return a.day=1,a.month=1,a.isDate=!0,a.hour=0,a.minute=0,a.second=0,a},endOfYear:function(){var a=this.clone();return a.day=31,a.month=12,a.isDate=!0,a.hour=0,a.minute=0,a.second=0,a},startDoyWeek:function(a){var b=a||ICAL.Time.SUNDAY,c=this.dayOfWeek()-b;return c<0&&(c+=7),this.dayOfYear()-c},getDominicalLetter:function(){return ICAL.Time.getDominicalLetter(this.year)},nthWeekDay:function(a,b){var c,d=ICAL.Time.daysInMonth(this.month,this.year),e=b,f=0,g=this.clone();if(e>=0){g.day=1,0!=e&&e--,f=g.day;var h=g.dayOfWeek(),i=a-h;i<0&&(i+=7),f+=i,f-=a,c=a}else{g.day=d;var j=g.dayOfWeek();e++,c=j-a,c<0&&(c+=7),c=d-c}return c+=7*e,f+c},isNthWeekDay:function(a,b){var c=this.dayOfWeek();if(0===b&&c===a)return!0;var d=this.nthWeekDay(a,b);return d===this.day},weekNumber:function(a){var b=(this.year<<12)+(this.month<<8)+(this.day<<3)+a;if(b in ICAL.Time._wnCache)return ICAL.Time._wnCache[b];var c,d=this.clone();d.isDate=!0;var e=this.year;12==d.month&&d.day>25?(c=ICAL.Time.weekOneStarts(e+1,a),d.compare(c)<0?c=ICAL.Time.weekOneStarts(e,a):e++):(c=ICAL.Time.weekOneStarts(e,a),d.compare(c)<0&&(c=ICAL.Time.weekOneStarts(--e,a)));var f=d.subtractDate(c).toSeconds()/86400,g=ICAL.helpers.trunc(f/7)+1;return ICAL.Time._wnCache[b]=g,g},addDuration:function(a){var b=a.isNegative?-1:1,c=this.second,d=this.minute,e=this.hour,f=this.day;c+=b*a.seconds,d+=b*a.minutes,e+=b*a.hours,f+=b*a.days,f+=7*b*a.weeks,this.second=c,this.minute=d,this.hour=e,this.day=f,this._cachedUnixTime=null},subtractDate:function(a){var b=this.toUnixTime()+this.utcOffset(),c=a.toUnixTime()+a.utcOffset();return ICAL.Duration.fromSeconds(b-c)},subtractDateTz:function(a){var b=this.toUnixTime(),c=a.toUnixTime();return ICAL.Duration.fromSeconds(b-c)},compare:function(a){var b=this.toUnixTime(),c=a.toUnixTime();return b>c?1:c>b?-1:0},compareDateOnlyTz:function(a,b){function c(a){return ICAL.Time._cmp_attr(d,e,a)}var d=this.convertToZone(b),e=a.convertToZone(b),f=0;return 0!=(f=c("year"))?f:0!=(f=c("month"))?f:0!=(f=c("day"))?f:f},convertToZone:function(a){var b=this.clone(),c=this.zone.tzid==a.tzid;return this.isDate||c||ICAL.Timezone.convert_time(b,this.zone,a),b.zone=a,b},utcOffset:function(){return this.zone==ICAL.Timezone.localTimezone||this.zone==ICAL.Timezone.utcTimezone?0:this.zone.utcOffset(this)},toICALString:function(){var a=this.toString();return a.length>10?ICAL.design.icalendar.value["date-time"].toICAL(a):ICAL.design.icalendar.value.date.toICAL(a)},toString:function(){var a=this.year+"-"+ICAL.helpers.pad2(this.month)+"-"+ICAL.helpers.pad2(this.day);return this.isDate||(a+="T"+ICAL.helpers.pad2(this.hour)+":"+ICAL.helpers.pad2(this.minute)+":"+ICAL.helpers.pad2(this.second),this.zone===ICAL.Timezone.utcTimezone&&(a+="Z")),a},toJSDate:function(){return this.zone==ICAL.Timezone.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(1e3*this.toUnixTime())},_normalize:function(){this._time.isDate;return this._time.isDate&&(this._time.hour=0,this._time.minute=0,this._time.second=0),this.adjust(0,0,0,0),this},adjust:function(a,b,c,d,e){var f,g,h,i,j,k,l,m=0,n=0,o=e||this._time;if(o.isDate||(h=o.second+d,o.second=h%60,f=ICAL.helpers.trunc(h/60),o.second<0&&(o.second+=60,f--),i=o.minute+c+f,o.minute=i%60,g=ICAL.helpers.trunc(i/60),o.minute<0&&(o.minute+=60,g--),j=o.hour+b+g,o.hour=j%24,m=ICAL.helpers.trunc(j/24),o.hour<0&&(o.hour+=24,m--)),o.month>12?n=ICAL.helpers.trunc((o.month-1)/12):o.month<1&&(n=ICAL.helpers.trunc(o.month/12)-1),o.year+=n,o.month-=12*n,k=o.day+a+m,k>0)for(;l=ICAL.Time.daysInMonth(o.month,o.year),!(k<=l);)o.month++,o.month>12&&(o.year++,o.month=1),k-=l;else for(;k<=0;)1==o.month?(o.year--,o.month=12):o.month--,k+=ICAL.Time.daysInMonth(o.month,o.year);return o.day=k,this._cachedUnixTime=null,this},fromUnixTime:function(a){this.zone=ICAL.Timezone.utcTimezone;var b=ICAL.Time.epochTime.clone();b.adjust(0,0,0,a),this.year=b.year,this.month=b.month,this.day=b.day,this.hour=b.hour,this.minute=b.minute,this.second=Math.floor(b.second),this._cachedUnixTime=null},toUnixTime:function(){if(null!==this._cachedUnixTime)return this._cachedUnixTime;var a=this.utcOffset(),b=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second-a);return this._cachedUnixTime=b/1e3,this._cachedUnixTime},toJSON:function(){for(var a,b=["year","month","day","hour","minute","second","isDate"],c=Object.create(null),d=0,e=b.length;d12?d:(d=c[a],2==a&&(d+=ICAL.Time.isLeapYear(b)),d)},ICAL.Time.isLeapYear=function(a){return a<=1752?a%4==0:a%4==0&&a%100!=0||a%400==0},ICAL.Time.fromDayOfYear=function(a,b){var c=b,d=a,e=new ICAL.Time;e.auto_normalize=!1;var f=ICAL.Time.isLeapYear(c)?1:0;if(d<1)return c--,f=ICAL.Time.isLeapYear(c)?1:0,d+=ICAL.Time.daysInYearPassedMonth[f][12],ICAL.Time.fromDayOfYear(d,c);if(d>ICAL.Time.daysInYearPassedMonth[f][12])return f=ICAL.Time.isLeapYear(c)?1:0,d-=ICAL.Time.daysInYearPassedMonth[f][12],c++,ICAL.Time.fromDayOfYear(d,c);e.year=c,e.isDate=!0;for(var g=11;g>=0;g--)if(d>ICAL.Time.daysInYearPassedMonth[f][g]){e.month=g+1,e.day=d-ICAL.Time.daysInYearPassedMonth[f][g];break}return e.auto_normalize=!0,e},ICAL.Time.fromStringv2=function(a){return new ICAL.Time({year:parseInt(a.substr(0,4),10),month:parseInt(a.substr(5,2),10),day:parseInt(a.substr(8,2),10),isDate:!0})},ICAL.Time.fromDateString=function(a){return new ICAL.Time({year:ICAL.helpers.strictParseInt(a.substr(0,4)),month:ICAL.helpers.strictParseInt(a.substr(5,2)),day:ICAL.helpers.strictParseInt(a.substr(8,2)),isDate:!0})},ICAL.Time.fromDateTimeString=function(a,b){if(a.length<19)throw new Error('invalid date-time value: "'+a+'"');var c;a[19]&&"Z"===a[19]?c="Z":b&&(c=b.getParameter("tzid"));var d=new ICAL.Time({year:ICAL.helpers.strictParseInt(a.substr(0,4)),month:ICAL.helpers.strictParseInt(a.substr(5,2)),day:ICAL.helpers.strictParseInt(a.substr(8,2)),hour:ICAL.helpers.strictParseInt(a.substr(11,2)),minute:ICAL.helpers.strictParseInt(a.substr(14,2)),second:ICAL.helpers.strictParseInt(a.substr(17,2)),timezone:c});return d},ICAL.Time.fromString=function(a){return a.length>10?ICAL.Time.fromDateTimeString(a):ICAL.Time.fromDateString(a)},ICAL.Time.fromJSDate=function(a,b){var c=new ICAL.Time;return c.fromJSDate(a,b)},ICAL.Time.fromData=function(a,b){var c=new ICAL.Time;return c.fromData(a,b)},ICAL.Time.now=function(){return ICAL.Time.fromJSDate(new Date,!1)},ICAL.Time.weekOneStarts=function(a,b){var c=ICAL.Time.fromData({year:a,month:1,day:1,isDate:!0}),d=c.dayOfWeek(),e=b||ICAL.Time.DEFAULT_WEEK_START;return d>ICAL.Time.THURSDAY&&(c.day+=7),e>ICAL.Time.THURSDAY&&(c.day-=7),c.day-=d-e,c},ICAL.Time.getDominicalLetter=function(a){var b="GFEDCBA",c=(a+(a/4|0)+(a/400|0)-(a/100|0)-1)%7,d=ICAL.Time.isLeapYear(a);return d?b[(c+6)%7]+b[c]:b[c]},ICAL.Time.epochTime=ICAL.Time.fromData({year:1970,month:1,day:1,hour:0,minute:0,second:0,isDate:!1,timezone:"Z"}),ICAL.Time._cmp_attr=function(a,b,c){return a[c]>b[c]?1:a[c]4?m?c(i,1,2):c(i,3,2):null,second:4==k?c(i,2,2):6==k?c(i,4,2):8==k?c(i,6,2):null};return h="Z"==h?ICAL.Timezone.utcTimezone:h&&":"==h[3]?ICAL.UtcOffset.fromString(h):null,new ICAL.VCardTime(n,h,b)}}(),function(){function a(a,b,c,d){var e=d;if("+"===d[0]&&(e=d.substr(1)),e=ICAL.helpers.strictParseInt(e),void 0!==b&&d '+b);if(void 0!==c&&d>c)throw new Error(a+': invalid value "'+d+'" must be < '+b);return e}var b={SU:ICAL.Time.SUNDAY,MO:ICAL.Time.MONDAY,TU:ICAL.Time.TUESDAY,WE:ICAL.Time.WEDNESDAY,TH:ICAL.Time.THURSDAY,FR:ICAL.Time.FRIDAY,SA:ICAL.Time.SATURDAY},c={};for(var d in b)b.hasOwnProperty(d)&&(c[b[d]]=d);ICAL.Recur=function(a){this.wrappedJSObject=this,this.parts={},a&&"object"==typeof a&&this.fromData(a)},ICAL.Recur.prototype={parts:null,interval:1,wkst:ICAL.Time.MONDAY,until:null,count:null,freq:null,icalclass:"icalrecur",icaltype:"recur",iterator:function(a){return new ICAL.RecurIterator({rule:this,dtstart:a})},clone:function(){return new ICAL.Recur(this.toJSON())},isFinite:function(){return!(!this.count&&!this.until)},isByCount:function(){return!(!this.count||this.until)},addComponent:function(a,b){var c=a.toUpperCase();c in this.parts?this.parts[c].push(b):this.parts[c]=[b]},setComponent:function(a,b){this.parts[a.toUpperCase()]=b.slice()},getComponent:function(a){var b=a.toUpperCase();return b in this.parts?this.parts[b].slice():[]},getNextOccurrence:function(a,b){var c,d=this.iterator(a);do c=d.next();while(c&&c.compare(b)<=0);return c&&b.zone&&(c.zone=b.zone),c},fromData:function(a){for(var b in a){var c=b.toUpperCase();c in i?Array.isArray(a[b])?this.parts[c]=a[b]:this.parts[c]=[a[b]]:this[b]=a[b]}this.wkst&&"number"!=typeof this.wkst&&(this.wkst=ICAL.Recur.icalDayToNumericDay(this.wkst)),!this.until||this.until instanceof ICAL.Time||(this.until=ICAL.Time.fromString(this.until))},toJSON:function(){var a=Object.create(null);a.freq=this.freq,this.count&&(a.count=this.count),this.interval>1&&(a.interval=this.interval);for(var b in this.parts)if(this.parts.hasOwnProperty(b)){var c=this.parts[b];Array.isArray(c)&&1==c.length?a[b.toLowerCase()]=c[0]:a[b.toLowerCase()]=ICAL.helpers.clone(this.parts[b])}return this.until&&(a.until=this.until.toString()),"wkst"in this&&this.wkst!==ICAL.Time.DEFAULT_WEEK_START&&(a.wkst=ICAL.Recur.numericDayToIcalDay(this.wkst)),a},toString:function(){var a="FREQ="+this.freq;this.count&&(a+=";COUNT="+this.count),this.interval>1&&(a+=";INTERVAL="+this.interval);for(var b in this.parts)this.parts.hasOwnProperty(b)&&(a+=";"+b+"="+this.parts[b]);return this.until&&(a+=";UNTIL="+this.until.toString()),"wkst"in this&&this.wkst!==ICAL.Time.DEFAULT_WEEK_START&&(a+=";WKST="+ICAL.Recur.numericDayToIcalDay(this.wkst)),a}},ICAL.Recur.icalDayToNumericDay=function(a){return b[a]},ICAL.Recur.numericDayToIcalDay=function(a){return c[a]};var e=/^(SU|MO|TU|WE|TH|FR|SA)$/,f=/^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/,g=["SECONDLY","MINUTELY","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY"],h={FREQ:function(a,b,c){if(g.indexOf(a)===-1)throw new Error('invalid frequency "'+a+'" expected: "'+g.join(", ")+'"');b.freq=a},COUNT:function(a,b,c){b.count=ICAL.helpers.strictParseInt(a)},INTERVAL:function(a,b,c){b.interval=ICAL.helpers.strictParseInt(a),b.interval<1&&(b.interval=1)},UNTIL:function(a,b,c){c?a.length>10?b.until=ICAL.design.icalendar.value["date-time"].fromICAL(a):b.until=ICAL.design.icalendar.value.date.fromICAL(a):b.until=ICAL.Time.fromString(a)},WKST:function(a,b,c){if(!e.test(a))throw new Error('invalid WKST value "'+a+'"');b.wkst=ICAL.Recur.icalDayToNumericDay(a)}},i={BYSECOND:a.bind(this,"BYSECOND",0,60),BYMINUTE:a.bind(this,"BYMINUTE",0,59),BYHOUR:a.bind(this,"BYHOUR",0,23),BYDAY:function(a){if(f.test(a))return a;throw new Error('invalid BYDAY value "'+a+'"')},BYMONTHDAY:a.bind(this,"BYMONTHDAY",-31,31),BYYEARDAY:a.bind(this,"BYYEARDAY",-366,366),BYWEEKNO:a.bind(this,"BYWEEKNO",-53,53),BYMONTH:a.bind(this,"BYMONTH",0,12),BYSETPOS:a.bind(this,"BYSETPOS",-366,366)};ICAL.Recur.fromString=function(a){var b=ICAL.Recur._stringToData(a,!1);return new ICAL.Recur(b)},ICAL.Recur.fromData=function(a){return new ICAL.Recur(a)},ICAL.Recur._stringToData=function(a,b){for(var c=Object.create(null),d=a.split(";"),e=d.length,f=0;f=0||e<0)&&(this.last.day+=e)}else{var f=ICAL.Recur.numericDayToIcalDay(this.dtstart.dayOfWeek());a.BYDAY=[f]}if("YEARLY"==this.rule.freq){for(;this.expand_year_days(this.last.year),!(this.days.length>0);)this.increment_year(this.rule.interval);this._nextByYearDay()}if("MONTHLY"==this.rule.freq&&this.has_by_data("BYDAY")){var g=null,h=this.last.clone(),i=ICAL.Time.daysInMonth(this.last.month,this.last.year);for(var j in this.by_data.BYDAY)if(this.by_data.BYDAY.hasOwnProperty(j)){this.last=h.clone();var b=this.ruleDayOfWeek(this.by_data.BYDAY[j]),c=b[0],d=b[1],k=this.last.nthWeekDay(d,c);if(c>=6||c<=-6)throw new Error("Malformed values in BYDAY part");if(k>i||k<=0){if(g&&g.month==h.month)continue;for(;k>i||k<=0;)this.increment_month(),i=ICAL.Time.daysInMonth(this.last.month,this.last.year),k=this.last.nthWeekDay(d,c)}this.last.day=k,(!g||this.last.compare(g)<0)&&(g=this.last.clone())}if(this.last=g.clone(),this.has_by_data("BYMONTHDAY")&&this._byDayAndMonthDay(!0),this.last.day>i||0==this.last.day)throw new Error("Malformed values in BYDAY part")}else if(this.has_by_data("BYMONTHDAY")&&this.last.day<0){var i=ICAL.Time.daysInMonth(this.last.month,this.last.year);this.last.day=i+this.last.day+1}},next:function(){var a=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)return this.completed=!0,null;if(0==this.occurrence_number&&this.last.compare(this.dtstart)>=0)return this.occurrence_number++,this.last;var b;do switch(b=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":b=this.next_month();break;case"YEARLY":this.next_year();break;default:return null}while(!this.check_contracting_rules()||this.last.compare(this.dtstart)<0||!b);if(0==this.last.compare(a))throw new Error("Same occurrence found twice, protecting you from death by recursion");return this.rule.until&&this.last.compare(this.rule.until)>0?(this.completed=!0,null):(this.occurrence_number++,this.last)},next_second:function(){return this.next_generic("BYSECOND","SECONDLY","second","minute")},increment_second:function(a){return this.increment_generic(a,"second",60,"minute")},next_minute:function(){return this.next_generic("BYMINUTE","MINUTELY","minute","hour","next_second")},increment_minute:function(a){return this.increment_generic(a,"minute",60,"hour")},next_hour:function(){return this.next_generic("BYHOUR","HOURLY","hour","monthday","next_minute")},increment_hour:function(a){this.increment_generic(a,"hour",24,"monthday")},next_day:function(){var a=("BYDAY"in this.by_data,"DAILY"==this.rule.freq);return 0==this.next_hour()?0:(a?this.increment_monthday(this.rule.interval):this.increment_monthday(1),0)},next_week:function(){var a=0;if(0==this.next_weekday_by_week())return a;if(this.has_by_data("BYWEEKNO")){++this.by_indices.BYWEEKNO;this.by_indices.BYWEEKNO==this.by_data.BYWEEKNO.length&&(this.by_indices.BYWEEKNO=0,a=1),this.last.month=1,this.last.day=1;var b=this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];this.last.day+=7*b,a&&this.increment_year(1)}else this.increment_monthday(7*this.rule.interval);return a},normalizeByMonthDayRules:function(a,b,c){for(var d,e=ICAL.Time.daysInMonth(b,a),f=[],g=0,h=c.length;ge)){if(d<0)d=e+(d+1);else if(0===d)continue;f.indexOf(d)===-1&&f.push(d)}return f.sort(function(a,b){return a-b})},_byDayAndMonthDay:function(a){function b(){for(g=ICAL.Time.daysInMonth(l.last.month,l.last.year),d=l.normalizeByMonthDayRules(l.last.year,l.last.month,l.by_data.BYMONTHDAY),f=d.length;d[i]<=m&&(!a||d[i]!=m)&&ig)c();else{var o=d[i++];if(o>=e){m=o;for(var p=0;pb&&(this.last.day=1,this.increment_month(),this.is_day_in_byday(this.last)?this.has_by_data("BYSETPOS")&&!this.check_set_position(1)||(a=1):a=0)}else if(this.has_by_data("BYMONTHDAY")){this.by_indices.BYMONTHDAY++,this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length&&(this.by_indices.BYMONTHDAY=0,this.increment_month());var b=ICAL.Time.daysInMonth(this.last.month,this.last.year),f=this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];f<0&&(f=b+f+1),f>b?(this.last.day=1,a=this.is_day_in_byday(this.last)):this.last.day=f}else{this.increment_month();var b=ICAL.Time.daysInMonth(this.last.month,this.last.year);this.by_data.BYMONTHDAY[0]>b?a=0:this.last.day=this.by_data.BYMONTHDAY[0]}return a},next_weekday_by_week:function(){var a=0;if(0==this.next_hour())return a;if(!this.has_by_data("BYDAY"))return 1;for(;;){var b=new ICAL.Time;this.by_indices.BYDAY++,this.by_indices.BYDAY==Object.keys(this.by_data.BYDAY).length&&(this.by_indices.BYDAY=0,a=1);var c=this.by_data.BYDAY[this.by_indices.BYDAY],d=this.ruleDayOfWeek(c),e=d[1];e-=this.rule.wkst,e<0&&(e+=7),b.year=this.last.year,b.month=this.last.month,b.day=this.last.day;var f=b.startDoyWeek(this.rule.wkst);if(!(e+f<1)||a){var g=ICAL.Time.fromDayOfYear(f+e,this.last.year);return this.last.year=g.year,this.last.month=g.month,this.last.day=g.day,a}}},next_year:function(){if(0==this.next_hour())return 0;if(++this.days_index==this.days.length){this.days_index=0;do this.increment_year(this.rule.interval),this.expand_year_days(this.last.year);while(0==this.days.length)}return this._nextByYearDay(),1},_nextByYearDay:function(){var a=this.days[this.days_index],b=this.last.year;a<1&&(a+=1,b+=1);var c=ICAL.Time.fromDayOfYear(a,b); +this.last.day=c.day,this.last.month=c.month},ruleDayOfWeek:function(a){var b=a.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);if(b){var c=parseInt(b[1]||0,10);return a=ICAL.Recur.icalDayToNumericDay(b[2]),[c,a]}return[0,0]},next_generic:function(a,b,c,d,e){var f=a in this.by_data,g=this.rule.freq==b,h=0;if(e&&0==this[e]())return h;if(f){this.by_indices[a]++;var i=(this.by_indices[a],this.by_data[a]);this.by_indices[a]==i.length&&(this.by_indices[a]=0,h=1),this.last[c]=i[this.by_indices[a]]}else g&&this["increment_"+c](this.rule.interval);return f&&h&&g&&this["increment_"+d](1),h},increment_monthday:function(a){for(var b=0;bc&&(this.last.day-=c,this.increment_month())}},increment_month:function(){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{"MONTHLY"==this.rule.freq?this.last.month+=this.rule.interval:this.last.month++,this.last.month--;var a=ICAL.helpers.trunc(this.last.month/12);this.last.month%=12,this.last.month++,0!=a&&this.increment_year(a)}},increment_year:function(a){this.last.year+=a},increment_generic:function(a,b,c,d){this.last[b]+=a;var e=ICAL.helpers.trunc(this.last[b]/c);this.last[b]%=c,0!=e&&this["increment_"+d](e)},has_by_data:function(a){return a in this.rule.parts},expand_year_days:function(a){var b=new ICAL.Time;this.days=[];var c={},d=["BYDAY","BYWEEKNO","BYMONTHDAY","BYMONTH","BYYEARDAY"];for(var e in d)if(d.hasOwnProperty(e)){var f=d[e];f in this.rule.parts&&(c[f]=this.rule.parts[f])}if("BYMONTH"in c&&"BYWEEKNO"in c){var g=1,h={};b.year=a,b.isDate=!0;for(var i=0;i0?(E=J+7*(H-1),E<=v&&this.days.push(y+E)):(E=K+7*(H+1),E>0&&this.days.push(y+E))}}this.days.sort(function(a,b){return a-b})}else if(2==o&&"BYDAY"in c&&"BYMONTHDAY"in c){var L=this.expand_by_day(a);for(var M in L)if(L.hasOwnProperty(M)){var B=L[M],N=ICAL.Time.fromDayOfYear(B,a);this.by_data.BYMONTHDAY.indexOf(N.day)>=0&&this.days.push(B)}}else if(3==o&&"BYDAY"in c&&"BYMONTHDAY"in c&&"BYMONTH"in c){var L=this.expand_by_day(a);for(var M in L)if(L.hasOwnProperty(M)){var B=L[M],N=ICAL.Time.fromDayOfYear(B,a);this.by_data.BYMONTH.indexOf(N.month)>=0&&this.by_data.BYMONTHDAY.indexOf(N.day)>=0&&this.days.push(B)}}else if(2==o&&"BYDAY"in c&&"BYWEEKNO"in c){var L=this.expand_by_day(a);for(var M in L)if(L.hasOwnProperty(M)){var B=L[M],N=ICAL.Time.fromDayOfYear(B,a),n=N.weekNumber(this.rule.wkst);this.by_data.BYWEEKNO.indexOf(n)&&this.days.push(B)}}else 3==o&&"BYDAY"in c&&"BYWEEKNO"in c&&"BYMONTHDAY"in c||(1==o&&"BYYEARDAY"in c?this.days=this.days.concat(this.by_data.BYYEARDAY):this.days=[]);return 0},expand_by_day:function(a){var b=[],c=this.last.clone();c.year=a,c.month=1,c.day=1,c.isDate=!0;var d=c.dayOfWeek();c.month=12,c.day=31,c.isDate=!0;var e=c.dayOfWeek(),f=c.dayOfYear();for(var g in this.by_data.BYDAY)if(this.by_data.BYDAY.hasOwnProperty(g)){var h=this.by_data.BYDAY[g],i=this.ruleDayOfWeek(h),j=i[0],k=i[1];if(0==j)for(var l=(k+7-d)%7+1,m=l;m<=f;m+=7)b.push(m);else if(j>0){var n;n=k>=d?k-d+1:k-d+8,b.push(n+7*(j-1))}else{var o;j=-j,o=k<=e?f-e+k:f-e+k-7,b.push(o-7*(j-1))}}return b},is_day_in_byday:function(a){for(var b in this.by_data.BYDAY)if(this.by_data.BYDAY.hasOwnProperty(b)){var c=this.by_data.BYDAY[b],d=this.ruleDayOfWeek(c),e=d[0],f=d[1],g=a.dayOfWeek();if(0==e&&f==g||a.nthWeekDay(f,e)==a.day)return 1}return 0},check_set_position:function(a){if(this.has_by_data("BYSETPOS")){var b=this.by_data.BYSETPOS.indexOf(a);return b!==-1}return!1},sort_byday_rules:function(a,b){for(var c=0;cf){var g=a[c];a[c]=a[d],a[d]=g}}},check_contract_restriction:function(b,c){var d=a._indexMap[b],e=a._expandMap[this.rule.freq][d],f=!1;if(b in this.by_data&&e==a.CONTRACT){var g=this.by_data[b];for(var h in g)if(g.hasOwnProperty(h)&&g[h]==c){f=!0;break}}else f=!0;return f},check_contracting_rules:function(){var a=this.last.dayOfWeek(),b=this.last.weekNumber(this.rule.wkst),c=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",ICAL.Recur.numericDayToIcalDay(a))&&this.check_contract_restriction("BYWEEKNO",b)&&this.check_contract_restriction("BYMONTHDAY",this.last.day)&&this.check_contract_restriction("BYMONTH",this.last.month)&&this.check_contract_restriction("BYYEARDAY",c)},setup_defaults:function(b,c,d){var e=a._indexMap[b],f=a._expandMap[this.rule.freq][e];return f!=a.CONTRACT&&(b in this.by_data||(this.by_data[b]=[d]),this.rule.freq!=c)?this.by_data[b][0]:d},toJSON:function(){var a=Object.create(null);return a.initialized=this.initialized,a.rule=this.rule.toJSON(),a.dtstart=this.dtstart.toJSON(),a.by_data=this.by_data,a.days=this.days,a.last=this.last.toJSON(),a.by_indices=this.by_indices,a.occurrence_number=this.occurrence_number,a}},a._indexMap={BYSECOND:0,BYMINUTE:1,BYHOUR:2,BYDAY:3,BYMONTHDAY:4,BYYEARDAY:5,BYWEEKNO:6,BYMONTH:7,BYSETPOS:8},a._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]},a.UNKNOWN=0,a.CONTRACT=1,a.EXPAND=2,a.ILLEGAL=3,a}(),ICAL.RecurExpansion=function(){function a(a){return ICAL.helpers.formatClassType(a,ICAL.Time)}function b(a,b){return a.compare(b)}function c(a){return a.hasProperty("rdate")||a.hasProperty("rrule")||a.hasProperty("recurrence-id")}function d(a){this.ruleDates=[],this.exDates=[],this.fromData(a)}return d.prototype={complete:!1,ruleIterators:null,ruleDates:null,exDates:null,ruleDateInc:0,exDateInc:0,exDate:null,ruleDate:null,dtstart:null,last:null,fromData:function(b){var c=ICAL.helpers.formatClassType(b.dtstart,ICAL.Time);if(!c)throw new Error(".dtstart (ICAL.Time) must be given");if(this.dtstart=c,b.component)this._init(b.component);else{if(this.last=a(b.last)||c.clone(),!b.ruleIterators)throw new Error(".ruleIterators or .component must be given");this.ruleIterators=b.ruleIterators.map(function(a){return ICAL.helpers.formatClassType(a,ICAL.RecurIterator)}),this.ruleDateInc=b.ruleDateInc,this.exDateInc=b.exDateInc,b.ruleDates&&(this.ruleDates=b.ruleDates.map(a),this.ruleDate=this.ruleDates[this.ruleDateInc]),b.exDates&&(this.exDates=b.exDates.map(a),this.exDate=this.exDates[this.exDateInc]),"undefined"!=typeof b.complete&&(this.complete=b.complete)}},next:function(){for(var a,b,c,d=500,e=0;;){if(e++>d)throw new Error("max tries have occured, rule may be impossible to forfill.");if(b=this.ruleDate,a=this._nextRecurrenceIter(this.last),!b&&!a){this.complete=!0;break}if((!b||a&&b.compare(a.last)>0)&&(b=a.last.clone(),a.next()),this.ruleDate===b&&this._nextRuleDay(),this.last=b,!this.exDate||(c=this.exDate.compare(this.last),c<0&&this._nextExDay(),0!==c))return this.last;this._nextExDay()}},toJSON:function(){function a(a){return a.toJSON()}var b=Object.create(null);return b.ruleIterators=this.ruleIterators.map(a),this.ruleDates&&(b.ruleDates=this.ruleDates.map(a)),this.exDates&&(b.exDates=this.exDates.map(a)),b.ruleDateInc=this.ruleDateInc,b.exDateInc=this.exDateInc,b.last=this.last.toJSON(),b.dtstart=this.dtstart.toJSON(),b.complete=this.complete,b},_extractDates:function(a,c){function d(a){e=ICAL.helpers.binsearchInsert(f,a,b),f.splice(e,0,a)}for(var e,f=[],g=a.getAllProperties(c),h=g.length,i=0;i0)&&(d=b);return d}},d}(),ICAL.Event=function(){function a(a,b){a instanceof ICAL.Component||(b=a,a=null),a?this.component=a:this.component=new ICAL.Component("vevent"),this._rangeExceptionCache=Object.create(null),this.exceptions=Object.create(null),this.rangeExceptions=[],b&&b.strictExceptions&&(this.strictExceptions=b.strictExceptions),b&&b.exceptions&&b.exceptions.forEach(this.relateException,this)}function b(a,b){return a[0]>b[0]?1:b[0]>a[0]?-1:0}return a.prototype={THISANDFUTURE:"THISANDFUTURE",exceptions:null,strictExceptions:!1,relateException:function(a){if(this.isRecurrenceException())throw new Error("cannot relate exception to exceptions");if(a instanceof ICAL.Component&&(a=new ICAL.Event(a)),this.strictExceptions&&a.uid!==this.uid)throw new Error("attempted to relate unrelated exception");var c=a.recurrenceId.toString();if(this.exceptions[c]=a,a.modifiesFuture()){var d=[a.recurrenceId.toUnixTime(),c],e=ICAL.helpers.binsearchInsert(this.rangeExceptions,d,b);this.rangeExceptions.splice(e,0,d)}},modifiesFuture:function(){var a=this.component.getFirstPropertyValue("range");return a===this.THISANDFUTURE},findRangeException:function(a){if(!this.rangeExceptions.length)return null;var c=a.toUnixTime(),d=ICAL.helpers.binsearchInsert(this.rangeExceptions,[c],b);if(d-=1,d<0)return null;var e=this.rangeExceptions[d];return c=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("