edgeone 1.4.5 → 1.4.6-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -141,7 +141,7 @@ Read about how to prevent this error on https://github.com/vadimdemedes/ink/#isr
141
141
  `.repeat(t));L$.displayName="Newline";X_.default=L$});var q$=G(Z_=>{"use strict";var B$=Z_&&Z_.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Z_,"__esModule",{value:!0});var Qbe=B$(Xs()),ePe=B$(gb()),j$=()=>Qbe.default.createElement(ePe.default,{flexGrow:1});j$.displayName="Spacer";Z_.default=j$});var Sb=G(Q_=>{"use strict";var tPe=Q_&&Q_.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Q_,"__esModule",{value:!0});var rPe=Xs(),nPe=tPe(G4()),iPe=()=>rPe.useContext(nPe.default);Q_.default=iPe});var $$=G(eS=>{"use strict";var sPe=eS&&eS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(eS,"__esModule",{value:!0});var U$=Xs(),oPe=sPe(Sb()),aPe=(t,e={})=>{let{stdin:n,setRawMode:o,internal_exitOnCtrlC:u}=oPe.default();U$.useEffect(()=>{if(e.isActive!==!1)return o(!0),()=>{o(!1)}},[e.isActive,o]),U$.useEffect(()=>{if(e.isActive===!1)return;let r=f=>{let p=String(f),y={upArrow:p==="\x1B[A",downArrow:p==="\x1B[B",leftArrow:p==="\x1B[D",rightArrow:p==="\x1B[C",pageDown:p==="\x1B[6~",pageUp:p==="\x1B[5~",return:p==="\r",escape:p==="\x1B",ctrl:!1,shift:!1,tab:p===" "||p==="\x1B[Z",backspace:p==="\b",delete:p==="\x7F"||p==="\x1B[3~",meta:!1};p<=""&&!y.return&&(p=String.fromCharCode(p.charCodeAt(0)+97-1),y.ctrl=!0),p.startsWith("\x1B")&&(p=p.slice(1),y.meta=!0);let m=p>="A"&&p<="Z",S=p>="\u0410"&&p<="\u042F";p.length===1&&(m||S)&&(y.shift=!0),y.tab&&p==="[Z"&&(y.shift=!0),(y.tab||y.backspace||y.delete)&&(p=""),(!(p==="c"&&y.ctrl)||!u)&&t(p,y)};return n==null||n.on("data",r),()=>{n==null||n.off("data",r)}},[e.isActive,n,u,t])};eS.default=aPe});var H$=G(tS=>{"use strict";var uPe=tS&&tS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(tS,"__esModule",{value:!0});var lPe=Xs(),cPe=uPe(W4()),fPe=()=>lPe.useContext(cPe.default);tS.default=fPe});var V$=G(rS=>{"use strict";var pPe=rS&&rS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(rS,"__esModule",{value:!0});var dPe=Xs(),hPe=pPe(K4()),mPe=()=>dPe.useContext(hPe.default);rS.default=mPe});var W$=G(nS=>{"use strict";var yPe=nS&&nS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nS,"__esModule",{value:!0});var gPe=Xs(),vPe=yPe(X4()),xPe=()=>gPe.useContext(vPe.default);nS.default=xPe});var G$=G(sS=>{"use strict";var z$=sS&&sS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(sS,"__esModule",{value:!0});var iS=Xs(),_Pe=z$(yb()),SPe=z$(Sb()),TPe=({isActive:t=!0,autoFocus:e=!1,id:n}={})=>{let{isRawModeSupported:o,setRawMode:u}=SPe.default(),{activeId:r,add:f,remove:p,activate:y,deactivate:m,focus:S}=iS.useContext(_Pe.default),C=iS.useMemo(()=>n!=null?n:Math.random().toString().slice(2,7),[n]);return iS.useEffect(()=>(f(C,{autoFocus:e}),()=>{p(C)}),[C,e]),iS.useEffect(()=>{t?y(C):m(C)},[t,C]),iS.useEffect(()=>{if(!(!o||!t))return u(!0),()=>{u(!1)}},[t]),{isFocused:!!C&&r===C,focus:S}};sS.default=TPe});var Y$=G(oS=>{"use strict";var EPe=oS&&oS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(oS,"__esModule",{value:!0});var wPe=Xs(),bPe=EPe(yb()),PPe=()=>{let t=wPe.useContext(bPe.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious,focus:t.focus}};oS.default=PPe});var K$=G(sO=>{"use strict";Object.defineProperty(sO,"__esModule",{value:!0});sO.default=t=>{var e,n,o,u;return{width:(n=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&n!==void 0?n:0,height:(u=(o=t.yogaNode)===null||o===void 0?void 0:o.getComputedHeight())!==null&&u!==void 0?u:0}}});var Tb=G($u=>{"use strict";Object.defineProperty($u,"__esModule",{value:!0});var DPe=I$();Object.defineProperty($u,"render",{enumerable:!0,get:function(){return DPe.default}});var CPe=gb();Object.defineProperty($u,"Box",{enumerable:!0,get:function(){return CPe.default}});var APe=nO();Object.defineProperty($u,"Text",{enumerable:!0,get:function(){return APe.default}});var kPe=N$();Object.defineProperty($u,"Static",{enumerable:!0,get:function(){return kPe.default}});var IPe=R$();Object.defineProperty($u,"Transform",{enumerable:!0,get:function(){return IPe.default}});var OPe=M$();Object.defineProperty($u,"Newline",{enumerable:!0,get:function(){return OPe.default}});var NPe=q$();Object.defineProperty($u,"Spacer",{enumerable:!0,get:function(){return NPe.default}});var FPe=$$();Object.defineProperty($u,"useInput",{enumerable:!0,get:function(){return FPe.default}});var RPe=H$();Object.defineProperty($u,"useApp",{enumerable:!0,get:function(){return RPe.default}});var LPe=Sb();Object.defineProperty($u,"useStdin",{enumerable:!0,get:function(){return LPe.default}});var MPe=V$();Object.defineProperty($u,"useStdout",{enumerable:!0,get:function(){return MPe.default}});var BPe=W$();Object.defineProperty($u,"useStderr",{enumerable:!0,get:function(){return BPe.default}});var jPe=G$();Object.defineProperty($u,"useFocus",{enumerable:!0,get:function(){return jPe.default}});var qPe=Y$();Object.defineProperty($u,"useFocusManager",{enumerable:!0,get:function(){return qPe.default}});var UPe=K$();Object.defineProperty($u,"measureElement",{enumerable:!0,get:function(){return UPe.default}})});var J$=G((oO,u2)=>{(function(t,e){typeof oO=="object"&&typeof u2<"u"?u2.exports=e():typeof define=="function"&&define.amd?define(e):t.moment=e()})(oO,function(){"use strict";var t;function e(){return t.apply(null,arguments)}function n(T){t=T}function o(T){return T instanceof Array||Object.prototype.toString.call(T)==="[object Array]"}function u(T){return T!=null&&Object.prototype.toString.call(T)==="[object Object]"}function r(T,k){return Object.prototype.hasOwnProperty.call(T,k)}function f(T){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(T).length===0;var k;for(k in T)if(r(T,k))return!1;return!0}function p(T){return T===void 0}function y(T){return typeof T=="number"||Object.prototype.toString.call(T)==="[object Number]"}function m(T){return T instanceof Date||Object.prototype.toString.call(T)==="[object Date]"}function S(T,k){var M=[],W,ee=T.length;for(W=0;W<ee;++W)M.push(k(T[W],W));return M}function C(T,k){for(var M in k)r(k,M)&&(T[M]=k[M]);return r(k,"toString")&&(T.toString=k.toString),r(k,"valueOf")&&(T.valueOf=k.valueOf),T}function A(T,k,M,W){return Qd(T,k,M,W,!0).utc()}function R(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function v(T){return T._pf==null&&(T._pf=R()),T._pf}var z;Array.prototype.some?z=Array.prototype.some:z=function(T){var k=Object(this),M=k.length>>>0,W;for(W=0;W<M;W++)if(W in k&&T.call(this,k[W],W,k))return!0;return!1};function $(T){var k=null,M=!1,W=T._d&&!isNaN(T._d.getTime());if(W&&(k=v(T),M=z.call(k.parsedDateParts,function(ee){return ee!=null}),W=k.overflow<0&&!k.empty&&!k.invalidEra&&!k.invalidMonth&&!k.invalidWeekday&&!k.weekdayMismatch&&!k.nullInput&&!k.invalidFormat&&!k.userInvalidated&&(!k.meridiem||k.meridiem&&M),T._strict&&(W=W&&k.charsLeftOver===0&&k.unusedTokens.length===0&&k.bigHour===void 0)),Object.isFrozen==null||!Object.isFrozen(T))T._isValid=W;else return W;return T._isValid}function j(T){var k=A(NaN);return T!=null?C(v(k),T):v(k).userInvalidated=!0,k}var Z=e.momentProperties=[],ve=!1;function de(T,k){var M,W,ee,be=Z.length;if(p(k._isAMomentObject)||(T._isAMomentObject=k._isAMomentObject),p(k._i)||(T._i=k._i),p(k._f)||(T._f=k._f),p(k._l)||(T._l=k._l),p(k._strict)||(T._strict=k._strict),p(k._tzm)||(T._tzm=k._tzm),p(k._isUTC)||(T._isUTC=k._isUTC),p(k._offset)||(T._offset=k._offset),p(k._pf)||(T._pf=v(k)),p(k._locale)||(T._locale=k._locale),be>0)for(M=0;M<be;M++)W=Z[M],ee=k[W],p(ee)||(T[W]=ee);return T}function ye(T){de(this,T),this._d=new Date(T._d!=null?T._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),ve===!1&&(ve=!0,e.updateOffset(this),ve=!1)}function Fe(T){return T instanceof ye||T!=null&&T._isAMomentObject!=null}function He(T){e.suppressDeprecationWarnings===!1&&typeof console<"u"&&console.warn&&console.warn("Deprecation warning: "+T)}function tt(T,k){var M=!0;return C(function(){if(e.deprecationHandler!=null&&e.deprecationHandler(null,T),M){var W=[],ee,be,ft,ir=arguments.length;for(be=0;be<ir;be++){if(ee="",typeof arguments[be]=="object"){ee+=`
142
142
  [`+be+"] ";for(ft in arguments[0])r(arguments[0],ft)&&(ee+=ft+": "+arguments[0][ft]+", ");ee=ee.slice(0,-2)}else ee=arguments[be];W.push(ee)}He(T+`
143
143
  Arguments: `+Array.prototype.slice.call(W).join("")+`
144
- `+new Error().stack),M=!1}return k.apply(this,arguments)},k)}var Le={};function Ct(T,k){e.deprecationHandler!=null&&e.deprecationHandler(T,k),Le[T]||(He(k),Le[T]=!0)}e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;function gt(T){return typeof Function<"u"&&T instanceof Function||Object.prototype.toString.call(T)==="[object Function]"}function ct(T){var k,M;for(M in T)r(T,M)&&(k=T[M],gt(k)?this[M]=k:this["_"+M]=k);this._config=T,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function qe(T,k){var M=C({},T),W;for(W in k)r(k,W)&&(u(T[W])&&u(k[W])?(M[W]={},C(M[W],T[W]),C(M[W],k[W])):k[W]!=null?M[W]=k[W]:delete M[W]);for(W in T)r(T,W)&&!r(k,W)&&u(T[W])&&(M[W]=C({},M[W]));return M}function oe(T){T!=null&&this.set(T)}var Ae;Object.keys?Ae=Object.keys:Ae=function(T){var k,M=[];for(k in T)r(T,k)&&M.push(k);return M};var Ke={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function Se(T,k,M){var W=this._calendar[T]||this._calendar.sameElse;return gt(W)?W.call(k,M):W}function we(T,k,M){var W=""+Math.abs(T),ee=k-W.length,be=T>=0;return(be?M?"+":"":"-")+Math.pow(10,Math.max(0,ee)).toString().substr(1)+W}var Oe=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ut=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Lt={},er={};function at(T,k,M,W){var ee=W;typeof W=="string"&&(ee=function(){return this[W]()}),T&&(er[T]=ee),k&&(er[k[0]]=function(){return we(ee.apply(this,arguments),k[1],k[2])}),M&&(er[M]=function(){return this.localeData().ordinal(ee.apply(this,arguments),T)})}function zt(T){return T.match(/\[[\s\S]/)?T.replace(/^\[|\]$/g,""):T.replace(/\\/g,"")}function Ie(T){var k=T.match(Oe),M,W;for(M=0,W=k.length;M<W;M++)er[k[M]]?k[M]=er[k[M]]:k[M]=zt(k[M]);return function(ee){var be="",ft;for(ft=0;ft<W;ft++)be+=gt(k[ft])?k[ft].call(ee,T):k[ft];return be}}function Qe(T,k){return T.isValid()?(k=st(k,T.localeData()),Lt[k]=Lt[k]||Ie(k),Lt[k](T)):T.localeData().invalidDate()}function st(T,k){var M=5;function W(ee){return k.longDateFormat(ee)||ee}for(ut.lastIndex=0;M>=0&&ut.test(T);)T=T.replace(ut,W),ut.lastIndex=0,M-=1;return T}var $t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function Dr(T){var k=this._longDateFormat[T],M=this._longDateFormat[T.toUpperCase()];return k||!M?k:(this._longDateFormat[T]=M.match(Oe).map(function(W){return W==="MMMM"||W==="MM"||W==="DD"||W==="dddd"?W.slice(1):W}).join(""),this._longDateFormat[T])}var ar="Invalid date";function tr(){return this._invalidDate}var P="%d",Xt=/\d{1,2}/;function lr(T){return this._ordinal.replace("%d",T)}var Bn={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function Pt(T,k,M,W){var ee=this._relativeTime[M];return gt(ee)?ee(T,k,M,W):ee.replace(/%d/i,T)}function _t(T,k){var M=this._relativeTime[T>0?"future":"past"];return gt(M)?M(k):M.replace(/%s/i,k)}var Yt={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function me(T){return typeof T=="string"?Yt[T]||Yt[T.toLowerCase()]:void 0}function ze(T){var k={},M,W;for(W in T)r(T,W)&&(M=me(W),M&&(k[M]=T[W]));return k}var kt={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function Ht(T){var k=[],M;for(M in T)r(T,M)&&k.push({unit:M,priority:kt[M]});return k.sort(function(W,ee){return W.priority-ee.priority}),k}var Rr=/\d/,Lr=/\d\d/,Rn=/\d{3}/,kn=/\d{4}/,Vn=/[+-]?\d{6}/,dn=/\d\d?/,wo=/\d\d\d\d?/,Bo=/\d\d\d\d\d\d?/,Yi=/\d{1,3}/,bo=/\d{1,4}/,_u=/[+-]?\d{1,6}/,Da=/\d+/,Xe=/[+-]?\d+/,wt=/Z|[+-]\d\d:?\d\d/gi,vt=/Z|[+-]\d\d(?::?\d\d)?/gi,jt=/[+-]?\d+(\.\d{1,3})?/,Pr=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,dr=/^[1-9]\d?/,Tn=/^([1-9]\d|\d)/,li;li={};function bt(T,k,M){li[T]=gt(k)?k:function(W,ee){return W&&M?M:k}}function gi(T,k){return r(li,T)?li[T](k._strict,k._locale):new RegExp(ls(T))}function ls(T){return vi(T.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(k,M,W,ee,be){return M||W||ee||be}))}function vi(T){return T.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ci(T){return T<0?Math.ceil(T)||0:Math.floor(T)}function Kr(T){var k=+T,M=0;return k!==0&&isFinite(k)&&(M=ci(k)),M}var As={};function En(T,k){var M,W=k,ee;for(typeof T=="string"&&(T=[T]),y(k)&&(W=function(be,ft){ft[k]=Kr(be)}),ee=T.length,M=0;M<ee;M++)As[T[M]]=W}function rs(T,k){En(T,function(M,W,ee,be){ee._w=ee._w||{},k(M,ee._w,ee,be)})}function Su(T,k,M){k!=null&&r(As,T)&&As[T](k,M._a,M,T)}function Bs(T){return T%4===0&&T%100!==0||T%400===0}var Zt=0,co=1,Ws=2,cs=3,fo=4,zs=5,Ts=6,Pl=7,za=8;at("Y",0,0,function(){var T=this.year();return T<=9999?we(T,4):"+"+T}),at(0,["YY",2],0,function(){return this.year()%100}),at(0,["YYYY",4],0,"year"),at(0,["YYYYY",5],0,"year"),at(0,["YYYYYY",6,!0],0,"year"),bt("Y",Xe),bt("YY",dn,Lr),bt("YYYY",bo,kn),bt("YYYYY",_u,Vn),bt("YYYYYY",_u,Vn),En(["YYYYY","YYYYYY"],Zt),En("YYYY",function(T,k){k[Zt]=T.length===2?e.parseTwoDigitYear(T):Kr(T)}),En("YY",function(T,k){k[Zt]=e.parseTwoDigitYear(T)}),En("Y",function(T,k){k[Zt]=parseInt(T,10)});function pa(T){return Bs(T)?366:365}e.parseTwoDigitYear=function(T){return Kr(T)+(Kr(T)>68?1900:2e3)};var Tu=zr("FullYear",!0);function ac(){return Bs(this.year())}function zr(T,k){return function(M){return M!=null?(Dl(this,T,M),e.updateOffset(this,k),this):Ku(this,T)}}function Ku(T,k){if(!T.isValid())return NaN;var M=T._d,W=T._isUTC;switch(k){case"Milliseconds":return W?M.getUTCMilliseconds():M.getMilliseconds();case"Seconds":return W?M.getUTCSeconds():M.getSeconds();case"Minutes":return W?M.getUTCMinutes():M.getMinutes();case"Hours":return W?M.getUTCHours():M.getHours();case"Date":return W?M.getUTCDate():M.getDate();case"Day":return W?M.getUTCDay():M.getDay();case"Month":return W?M.getUTCMonth():M.getMonth();case"FullYear":return W?M.getUTCFullYear():M.getFullYear();default:return NaN}}function Dl(T,k,M){var W,ee,be,ft,ir;if(!(!T.isValid()||isNaN(M))){switch(W=T._d,ee=T._isUTC,k){case"Milliseconds":return void(ee?W.setUTCMilliseconds(M):W.setMilliseconds(M));case"Seconds":return void(ee?W.setUTCSeconds(M):W.setSeconds(M));case"Minutes":return void(ee?W.setUTCMinutes(M):W.setMinutes(M));case"Hours":return void(ee?W.setUTCHours(M):W.setHours(M));case"Date":return void(ee?W.setUTCDate(M):W.setDate(M));case"FullYear":break;default:return}be=M,ft=T.month(),ir=T.date(),ir=ir===29&&ft===1&&!Bs(be)?28:ir,ee?W.setUTCFullYear(be,ft,ir):W.setFullYear(be,ft,ir)}}function Ga(T){return T=me(T),gt(this[T])?this[T]():this}function Ki(T,k){if(typeof T=="object"){T=ze(T);var M=Ht(T),W,ee=M.length;for(W=0;W<ee;W++)this[M[W].unit](T[M[W].unit])}else if(T=me(T),gt(this[T]))return this[T](k);return this}function Li(T,k){return(T%k+k)%k}var Pi;Array.prototype.indexOf?Pi=Array.prototype.indexOf:Pi=function(T){var k;for(k=0;k<this.length;++k)if(this[k]===T)return k;return-1};function ks(T,k){if(isNaN(T)||isNaN(k))return NaN;var M=Li(k,12);return T+=(k-M)/12,M===1?Bs(T)?29:28:31-M%7%2}at("M",["MM",2],"Mo",function(){return this.month()+1}),at("MMM",0,0,function(T){return this.localeData().monthsShort(this,T)}),at("MMMM",0,0,function(T){return this.localeData().months(this,T)}),bt("M",dn,dr),bt("MM",dn,Lr),bt("MMM",function(T,k){return k.monthsShortRegex(T)}),bt("MMMM",function(T,k){return k.monthsRegex(T)}),En(["M","MM"],function(T,k){k[co]=Kr(T)-1}),En(["MMM","MMMM"],function(T,k,M,W){var ee=M._locale.monthsParse(T,W,M._strict);ee!=null?k[co]=ee:v(M).invalidMonth=T});var po="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),da="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),jo=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,ho=Pr,uc=Pr;function i0(T,k){return T?o(this._months)?this._months[T.month()]:this._months[(this._months.isFormat||jo).test(k)?"format":"standalone"][T.month()]:o(this._months)?this._months:this._months.standalone}function Xc(T,k){return T?o(this._monthsShort)?this._monthsShort[T.month()]:this._monthsShort[jo.test(k)?"format":"standalone"][T.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function lc(T,k,M){var W,ee,be,ft=T.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],W=0;W<12;++W)be=A([2e3,W]),this._shortMonthsParse[W]=this.monthsShort(be,"").toLocaleLowerCase(),this._longMonthsParse[W]=this.months(be,"").toLocaleLowerCase();return M?k==="MMM"?(ee=Pi.call(this._shortMonthsParse,ft),ee!==-1?ee:null):(ee=Pi.call(this._longMonthsParse,ft),ee!==-1?ee:null):k==="MMM"?(ee=Pi.call(this._shortMonthsParse,ft),ee!==-1?ee:(ee=Pi.call(this._longMonthsParse,ft),ee!==-1?ee:null)):(ee=Pi.call(this._longMonthsParse,ft),ee!==-1?ee:(ee=Pi.call(this._shortMonthsParse,ft),ee!==-1?ee:null))}function Zo(T,k,M){var W,ee,be;if(this._monthsParseExact)return lc.call(this,T,k,M);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),W=0;W<12;W++){if(ee=A([2e3,W]),M&&!this._longMonthsParse[W]&&(this._longMonthsParse[W]=new RegExp("^"+this.months(ee,"").replace(".","")+"$","i"),this._shortMonthsParse[W]=new RegExp("^"+this.monthsShort(ee,"").replace(".","")+"$","i")),!M&&!this._monthsParse[W]&&(be="^"+this.months(ee,"")+"|^"+this.monthsShort(ee,""),this._monthsParse[W]=new RegExp(be.replace(".",""),"i")),M&&k==="MMMM"&&this._longMonthsParse[W].test(T))return W;if(M&&k==="MMM"&&this._shortMonthsParse[W].test(T))return W;if(!M&&this._monthsParse[W].test(T))return W}}function At(T,k){if(!T.isValid())return T;if(typeof k=="string"){if(/^\d+$/.test(k))k=Kr(k);else if(k=T.localeData().monthsParse(k),!y(k))return T}var M=k,W=T.date();return W=W<29?W:Math.min(W,ks(T.year(),M)),T._isUTC?T._d.setUTCMonth(M,W):T._d.setMonth(M,W),T}function Ya(T){return T!=null?(At(this,T),e.updateOffset(this,!0),this):Ku(this,"Month")}function s0(){return ks(this.year(),this.month())}function Zc(T){return this._monthsParseExact?(r(this,"_monthsRegex")||Ju.call(this),T?this._monthsShortStrictRegex:this._monthsShortRegex):(r(this,"_monthsShortRegex")||(this._monthsShortRegex=ho),this._monthsShortStrictRegex&&T?this._monthsShortStrictRegex:this._monthsShortRegex)}function Ui(T){return this._monthsParseExact?(r(this,"_monthsRegex")||Ju.call(this),T?this._monthsStrictRegex:this._monthsRegex):(r(this,"_monthsRegex")||(this._monthsRegex=uc),this._monthsStrictRegex&&T?this._monthsStrictRegex:this._monthsRegex)}function Ju(){function T(rn,ti){return ti.length-rn.length}var k=[],M=[],W=[],ee,be,ft,ir;for(ee=0;ee<12;ee++)be=A([2e3,ee]),ft=vi(this.monthsShort(be,"")),ir=vi(this.months(be,"")),k.push(ft),M.push(ir),W.push(ir),W.push(ft);k.sort(T),M.sort(T),W.sort(T),this._monthsRegex=new RegExp("^("+W.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+M.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+k.join("|")+")","i")}function Gd(T,k,M,W,ee,be,ft){var ir;return T<100&&T>=0?(ir=new Date(T+400,k,M,W,ee,be,ft),isFinite(ir.getFullYear())&&ir.setFullYear(T)):ir=new Date(T,k,M,W,ee,be,ft),ir}function Uf(T){var k,M;return T<100&&T>=0?(M=Array.prototype.slice.call(arguments),M[0]=T+400,k=new Date(Date.UTC.apply(null,M)),isFinite(k.getUTCFullYear())&&k.setUTCFullYear(T)):k=new Date(Date.UTC.apply(null,arguments)),k}function Cl(T,k,M){var W=7+k-M,ee=(7+Uf(T,0,W).getUTCDay()-k)%7;return-ee+W-1}function Vp(T,k,M,W,ee){var be=(7+M-W)%7,ft=Cl(T,W,ee),ir=1+7*(k-1)+be+ft,rn,ti;return ir<=0?(rn=T-1,ti=pa(rn)+ir):ir>pa(T)?(rn=T+1,ti=ir-pa(T)):(rn=T,ti=ir),{year:rn,dayOfYear:ti}}function Kt(T,k,M){var W=Cl(T.year(),k,M),ee=Math.floor((T.dayOfYear()-W-1)/7)+1,be,ft;return ee<1?(ft=T.year()-1,be=ee+Di(ft,k,M)):ee>Di(T.year(),k,M)?(be=ee-Di(T.year(),k,M),ft=T.year()+1):(ft=T.year(),be=ee),{week:be,year:ft}}function Di(T,k,M){var W=Cl(T,k,M),ee=Cl(T+1,k,M);return(pa(T)-W+ee)/7}at("w",["ww",2],"wo","week"),at("W",["WW",2],"Wo","isoWeek"),bt("w",dn,dr),bt("ww",dn,Lr),bt("W",dn,dr),bt("WW",dn,Lr),rs(["w","ww","W","WW"],function(T,k,M,W){k[W.substr(0,1)]=Kr(T)});function Wp(T){return Kt(T,this._week.dow,this._week.doy).week}var cc={dow:0,doy:6};function Ka(){return this._week.dow}function $f(){return this._week.doy}function o0(T){var k=this.localeData().week(this);return T==null?k:this.add((T-k)*7,"d")}function Yd(T){var k=Kt(this,1,4).week;return T==null?k:this.add((T-k)*7,"d")}at("d",0,"do","day"),at("dd",0,0,function(T){return this.localeData().weekdaysMin(this,T)}),at("ddd",0,0,function(T){return this.localeData().weekdaysShort(this,T)}),at("dddd",0,0,function(T){return this.localeData().weekdays(this,T)}),at("e",0,0,"weekday"),at("E",0,0,"isoWeekday"),bt("d",dn),bt("e",dn),bt("E",dn),bt("dd",function(T,k){return k.weekdaysMinRegex(T)}),bt("ddd",function(T,k){return k.weekdaysShortRegex(T)}),bt("dddd",function(T,k){return k.weekdaysRegex(T)}),rs(["dd","ddd","dddd"],function(T,k,M,W){var ee=M._locale.weekdaysParse(T,W,M._strict);ee!=null?k.d=ee:v(M).invalidWeekday=T}),rs(["d","e","E"],function(T,k,M,W){k[W]=Kr(T)});function a0(T,k){return typeof T!="string"?T:isNaN(T)?(T=k.weekdaysParse(T),typeof T=="number"?T:null):parseInt(T,10)}function ha(T,k){return typeof T=="string"?k.weekdaysParse(T)%7||7:isNaN(T)?null:T}function ma(T,k){return T.slice(k,7).concat(T.slice(0,k))}var Kd="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Jd="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Qc="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),qo=Pr,ef=Pr,ya=Pr;function Al(T,k){var M=o(this._weekdays)?this._weekdays:this._weekdays[T&&T!==!0&&this._weekdays.isFormat.test(k)?"format":"standalone"];return T===!0?ma(M,this._week.dow):T?M[T.day()]:M}function Ja(T){return T===!0?ma(this._weekdaysShort,this._week.dow):T?this._weekdaysShort[T.day()]:this._weekdaysShort}function Eu(T){return T===!0?ma(this._weekdaysMin,this._week.dow):T?this._weekdaysMin[T.day()]:this._weekdaysMin}function Xu(T,k,M){var W,ee,be,ft=T.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],W=0;W<7;++W)be=A([2e3,1]).day(W),this._minWeekdaysParse[W]=this.weekdaysMin(be,"").toLocaleLowerCase(),this._shortWeekdaysParse[W]=this.weekdaysShort(be,"").toLocaleLowerCase(),this._weekdaysParse[W]=this.weekdays(be,"").toLocaleLowerCase();return M?k==="dddd"?(ee=Pi.call(this._weekdaysParse,ft),ee!==-1?ee:null):k==="ddd"?(ee=Pi.call(this._shortWeekdaysParse,ft),ee!==-1?ee:null):(ee=Pi.call(this._minWeekdaysParse,ft),ee!==-1?ee:null):k==="dddd"?(ee=Pi.call(this._weekdaysParse,ft),ee!==-1||(ee=Pi.call(this._shortWeekdaysParse,ft),ee!==-1)?ee:(ee=Pi.call(this._minWeekdaysParse,ft),ee!==-1?ee:null)):k==="ddd"?(ee=Pi.call(this._shortWeekdaysParse,ft),ee!==-1||(ee=Pi.call(this._weekdaysParse,ft),ee!==-1)?ee:(ee=Pi.call(this._minWeekdaysParse,ft),ee!==-1?ee:null)):(ee=Pi.call(this._minWeekdaysParse,ft),ee!==-1||(ee=Pi.call(this._weekdaysParse,ft),ee!==-1)?ee:(ee=Pi.call(this._shortWeekdaysParse,ft),ee!==-1?ee:null))}function Zu(T,k,M){var W,ee,be;if(this._weekdaysParseExact)return Xu.call(this,T,k,M);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),W=0;W<7;W++){if(ee=A([2e3,1]).day(W),M&&!this._fullWeekdaysParse[W]&&(this._fullWeekdaysParse[W]=new RegExp("^"+this.weekdays(ee,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[W]=new RegExp("^"+this.weekdaysShort(ee,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[W]=new RegExp("^"+this.weekdaysMin(ee,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[W]||(be="^"+this.weekdays(ee,"")+"|^"+this.weekdaysShort(ee,"")+"|^"+this.weekdaysMin(ee,""),this._weekdaysParse[W]=new RegExp(be.replace(".",""),"i")),M&&k==="dddd"&&this._fullWeekdaysParse[W].test(T))return W;if(M&&k==="ddd"&&this._shortWeekdaysParse[W].test(T))return W;if(M&&k==="dd"&&this._minWeekdaysParse[W].test(T))return W;if(!M&&this._weekdaysParse[W].test(T))return W}}function ys(T){if(!this.isValid())return T!=null?this:NaN;var k=Ku(this,"Day");return T!=null?(T=a0(T,this.localeData()),this.add(T-k,"d")):k}function hn(T){if(!this.isValid())return T!=null?this:NaN;var k=(this.day()+7-this.localeData()._week.dow)%7;return T==null?k:this.add(T-k,"d")}function wu(T){if(!this.isValid())return T!=null?this:NaN;if(T!=null){var k=ha(T,this.localeData());return this.day(this.day()%7?k:k-7)}else return this.day()||7}function Xd(T){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||pc.call(this),T?this._weekdaysStrictRegex:this._weekdaysRegex):(r(this,"_weekdaysRegex")||(this._weekdaysRegex=qo),this._weekdaysStrictRegex&&T?this._weekdaysStrictRegex:this._weekdaysRegex)}function Is(T){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||pc.call(this),T?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(r(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ef),this._weekdaysShortStrictRegex&&T?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function fc(T){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||pc.call(this),T?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(r(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=ya),this._weekdaysMinStrictRegex&&T?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function pc(){function T(Vo,Ra){return Ra.length-Vo.length}var k=[],M=[],W=[],ee=[],be,ft,ir,rn,ti;for(be=0;be<7;be++)ft=A([2e3,1]).day(be),ir=vi(this.weekdaysMin(ft,"")),rn=vi(this.weekdaysShort(ft,"")),ti=vi(this.weekdays(ft,"")),k.push(ir),M.push(rn),W.push(ti),ee.push(ir),ee.push(rn),ee.push(ti);k.sort(T),M.sort(T),W.sort(T),ee.sort(T),this._weekdaysRegex=new RegExp("^("+ee.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+W.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+M.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+k.join("|")+")","i")}function ga(){return this.hours()%12||12}function tf(){return this.hours()||24}at("H",["HH",2],0,"hour"),at("h",["hh",2],0,ga),at("k",["kk",2],0,tf),at("hmm",0,0,function(){return""+ga.apply(this)+we(this.minutes(),2)}),at("hmmss",0,0,function(){return""+ga.apply(this)+we(this.minutes(),2)+we(this.seconds(),2)}),at("Hmm",0,0,function(){return""+this.hours()+we(this.minutes(),2)}),at("Hmmss",0,0,function(){return""+this.hours()+we(this.minutes(),2)+we(this.seconds(),2)});function mo(T,k){at(T,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),k)})}mo("a",!0),mo("A",!1);function rf(T,k){return k._meridiemParse}bt("a",rf),bt("A",rf),bt("H",dn,Tn),bt("h",dn,dr),bt("k",dn,dr),bt("HH",dn,Lr),bt("hh",dn,Lr),bt("kk",dn,Lr),bt("hmm",wo),bt("hmmss",Bo),bt("Hmm",wo),bt("Hmmss",Bo),En(["H","HH"],cs),En(["k","kk"],function(T,k,M){var W=Kr(T);k[cs]=W===24?0:W}),En(["a","A"],function(T,k,M){M._isPm=M._locale.isPM(T),M._meridiem=T}),En(["h","hh"],function(T,k,M){k[cs]=Kr(T),v(M).bigHour=!0}),En("hmm",function(T,k,M){var W=T.length-2;k[cs]=Kr(T.substr(0,W)),k[fo]=Kr(T.substr(W)),v(M).bigHour=!0}),En("hmmss",function(T,k,M){var W=T.length-4,ee=T.length-2;k[cs]=Kr(T.substr(0,W)),k[fo]=Kr(T.substr(W,2)),k[zs]=Kr(T.substr(ee)),v(M).bigHour=!0}),En("Hmm",function(T,k,M){var W=T.length-2;k[cs]=Kr(T.substr(0,W)),k[fo]=Kr(T.substr(W))}),En("Hmmss",function(T,k,M){var W=T.length-4,ee=T.length-2;k[cs]=Kr(T.substr(0,W)),k[fo]=Kr(T.substr(W,2)),k[zs]=Kr(T.substr(ee))});function Zd(T){return(T+"").toLowerCase().charAt(0)==="p"}var Ca=/[ap]\.?m?\.?/i,Qo=zr("Hours",!0);function nf(T,k,M){return T>11?M?"pm":"PM":M?"am":"AM"}var kl={calendar:Ke,longDateFormat:$t,invalidDate:ar,ordinal:P,dayOfMonthOrdinalParse:Xt,relativeTime:Bn,months:po,monthsShort:da,week:cc,weekdays:Kd,weekdaysMin:Qc,weekdaysShort:Jd,meridiemParse:Ca},ns={},js={},bu;function Hf(T,k){var M,W=Math.min(T.length,k.length);for(M=0;M<W;M+=1)if(T[M]!==k[M])return M;return W}function Xa(T){return T&&T.toLowerCase().replace("_","-")}function Il(T){for(var k=0,M,W,ee,be;k<T.length;){for(be=Xa(T[k]).split("-"),M=be.length,W=Xa(T[k+1]),W=W?W.split("-"):null;M>0;){if(ee=Q(be.slice(0,M).join("-")),ee)return ee;if(W&&W.length>=M&&Hf(be,W)>=M-1)break;M--}k++}return bu}function ie(T){return!!(T&&T.match("^[^/\\\\]*$"))}function Q(T){var k=null,M;if(ns[T]===void 0&&typeof u2<"u"&&u2&&u2.exports&&ie(T))try{k=bu._abbr,M=require,M("./locale/"+T),ne(k)}catch{ns[T]=null}return ns[T]}function ne(T,k){var M;return T&&(p(k)?M=Ge(T):M=ke(T,k),M?bu=M:typeof console<"u"&&console.warn&&console.warn("Locale "+T+" not found. Did you forget to load it?")),bu._abbr}function ke(T,k){if(k!==null){var M,W=kl;if(k.abbr=T,ns[T]!=null)Ct("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),W=ns[T]._config;else if(k.parentLocale!=null)if(ns[k.parentLocale]!=null)W=ns[k.parentLocale]._config;else if(M=Q(k.parentLocale),M!=null)W=M._config;else return js[k.parentLocale]||(js[k.parentLocale]=[]),js[k.parentLocale].push({name:T,config:k}),null;return ns[T]=new oe(qe(W,k)),js[T]&&js[T].forEach(function(ee){ke(ee.name,ee.config)}),ne(T),ns[T]}else return delete ns[T],null}function Ze(T,k){if(k!=null){var M,W,ee=kl;ns[T]!=null&&ns[T].parentLocale!=null?ns[T].set(qe(ns[T]._config,k)):(W=Q(T),W!=null&&(ee=W._config),k=qe(ee,k),W==null&&(k.abbr=T),M=new oe(k),M.parentLocale=ns[T],ns[T]=M),ne(T)}else ns[T]!=null&&(ns[T].parentLocale!=null?(ns[T]=ns[T].parentLocale,T===ne()&&ne(T)):ns[T]!=null&&delete ns[T]);return ns[T]}function Ge(T){var k;if(T&&T._locale&&T._locale._abbr&&(T=T._locale._abbr),!T)return bu;if(!o(T)){if(k=Q(T),k)return k;T=[T]}return Il(T)}function lt(){return Ae(ns)}function pt(T){var k,M=T._a;return M&&v(T).overflow===-2&&(k=M[co]<0||M[co]>11?co:M[Ws]<1||M[Ws]>ks(M[Zt],M[co])?Ws:M[cs]<0||M[cs]>24||M[cs]===24&&(M[fo]!==0||M[zs]!==0||M[Ts]!==0)?cs:M[fo]<0||M[fo]>59?fo:M[zs]<0||M[zs]>59?zs:M[Ts]<0||M[Ts]>999?Ts:-1,v(T)._overflowDayOfYear&&(k<Zt||k>Ws)&&(k=Ws),v(T)._overflowWeeks&&k===-1&&(k=Pl),v(T)._overflowWeekday&&k===-1&&(k=za),v(T).overflow=k),T}var It=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,hr=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,vn=/Z|[+-]\d\d(?::?\d\d)?/,Wn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],wn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],va=/^\/?Date\((-?\d+)/i,dc=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,ea={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function yo(T){var k,M,W=T._i,ee=It.exec(W)||hr.exec(W),be,ft,ir,rn,ti=Wn.length,Vo=wn.length;if(ee){for(v(T).iso=!0,k=0,M=ti;k<M;k++)if(Wn[k][1].exec(ee[1])){ft=Wn[k][0],be=Wn[k][2]!==!1;break}if(ft==null){T._isValid=!1;return}if(ee[3]){for(k=0,M=Vo;k<M;k++)if(wn[k][1].exec(ee[3])){ir=(ee[2]||" ")+wn[k][0];break}if(ir==null){T._isValid=!1;return}}if(!be&&ir!=null){T._isValid=!1;return}if(ee[4])if(vn.exec(ee[4]))rn="Z";else{T._isValid=!1;return}T._f=ft+(ir||"")+(rn||""),Po(T)}else T._isValid=!1}function Zn(T,k,M,W,ee,be){var ft=[Jr(T),da.indexOf(k),parseInt(M,10),parseInt(W,10),parseInt(ee,10)];return be&&ft.push(parseInt(be,10)),ft}function Jr(T){var k=parseInt(T,10);return k<=49?2e3+k:k<=999?1900+k:k}function Cr(T){return T.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function Gr(T,k,M){if(T){var W=Jd.indexOf(T),ee=new Date(k[0],k[1],k[2]).getDay();if(W!==ee)return v(M).weekdayMismatch=!0,M._isValid=!1,!1}return!0}function zn(T,k,M){if(T)return ea[T];if(k)return 0;var W=parseInt(M,10),ee=W%100,be=(W-ee)/100;return be*60+ee}function _i(T){var k=dc.exec(Cr(T._i)),M;if(k){if(M=Zn(k[4],k[3],k[2],k[5],k[6],k[7]),!Gr(k[1],M,T))return;T._a=M,T._tzm=zn(k[8],k[9],k[10]),T._d=Uf.apply(null,T._a),T._d.setUTCMinutes(T._d.getUTCMinutes()-T._tzm),v(T).rfc2822=!0}else T._isValid=!1}function Os(T){var k=va.exec(T._i);if(k!==null){T._d=new Date(+k[1]);return}if(yo(T),T._isValid===!1)delete T._isValid;else return;if(_i(T),T._isValid===!1)delete T._isValid;else return;T._strict?T._isValid=!1:e.createFromInputFallback(T)}e.createFromInputFallback=tt("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(T){T._d=new Date(T._i+(T._useUTC?" UTC":""))});function no(T,k,M){return T!=null?T:k!=null?k:M}function Qu(T){var k=new Date(e.now());return T._useUTC?[k.getUTCFullYear(),k.getUTCMonth(),k.getUTCDate()]:[k.getFullYear(),k.getMonth(),k.getDate()]}function qs(T){var k,M,W=[],ee,be,ft;if(!T._d){for(ee=Qu(T),T._w&&T._a[Ws]==null&&T._a[co]==null&&xa(T),T._dayOfYear!=null&&(ft=no(T._a[Zt],ee[Zt]),(T._dayOfYear>pa(ft)||T._dayOfYear===0)&&(v(T)._overflowDayOfYear=!0),M=Uf(ft,0,T._dayOfYear),T._a[co]=M.getUTCMonth(),T._a[Ws]=M.getUTCDate()),k=0;k<3&&T._a[k]==null;++k)T._a[k]=W[k]=ee[k];for(;k<7;k++)T._a[k]=W[k]=T._a[k]==null?k===2?1:0:T._a[k];T._a[cs]===24&&T._a[fo]===0&&T._a[zs]===0&&T._a[Ts]===0&&(T._nextDay=!0,T._a[cs]=0),T._d=(T._useUTC?Uf:Gd).apply(null,W),be=T._useUTC?T._d.getUTCDay():T._d.getDay(),T._tzm!=null&&T._d.setUTCMinutes(T._d.getUTCMinutes()-T._tzm),T._nextDay&&(T._a[cs]=24),T._w&&typeof T._w.d<"u"&&T._w.d!==be&&(v(T).weekdayMismatch=!0)}}function xa(T){var k,M,W,ee,be,ft,ir,rn,ti;k=T._w,k.GG!=null||k.W!=null||k.E!=null?(be=1,ft=4,M=no(k.GG,T._a[Zt],Kt(mn(),1,4).year),W=no(k.W,1),ee=no(k.E,1),(ee<1||ee>7)&&(rn=!0)):(be=T._locale._week.dow,ft=T._locale._week.doy,ti=Kt(mn(),be,ft),M=no(k.gg,T._a[Zt],ti.year),W=no(k.w,ti.week),k.d!=null?(ee=k.d,(ee<0||ee>6)&&(rn=!0)):k.e!=null?(ee=k.e+be,(k.e<0||k.e>6)&&(rn=!0)):ee=be),W<1||W>Di(M,be,ft)?v(T)._overflowWeeks=!0:rn!=null?v(T)._overflowWeekday=!0:(ir=Vp(M,W,ee,be,ft),T._a[Zt]=ir.year,T._dayOfYear=ir.dayOfYear)}e.ISO_8601=function(){},e.RFC_2822=function(){};function Po(T){if(T._f===e.ISO_8601){yo(T);return}if(T._f===e.RFC_2822){_i(T);return}T._a=[],v(T).empty=!0;var k=""+T._i,M,W,ee,be,ft,ir=k.length,rn=0,ti,Vo;for(ee=st(T._f,T._locale).match(Oe)||[],Vo=ee.length,M=0;M<Vo;M++)be=ee[M],W=(k.match(gi(be,T))||[])[0],W&&(ft=k.substr(0,k.indexOf(W)),ft.length>0&&v(T).unusedInput.push(ft),k=k.slice(k.indexOf(W)+W.length),rn+=W.length),er[be]?(W?v(T).empty=!1:v(T).unusedTokens.push(be),Su(be,W,T)):T._strict&&!W&&v(T).unusedTokens.push(be);v(T).charsLeftOver=ir-rn,k.length>0&&v(T).unusedInput.push(k),T._a[cs]<=12&&v(T).bigHour===!0&&T._a[cs]>0&&(v(T).bigHour=void 0),v(T).parsedDateParts=T._a.slice(0),v(T).meridiem=T._meridiem,T._a[cs]=hc(T._locale,T._a[cs],T._meridiem),ti=v(T).era,ti!==null&&(T._a[Zt]=T._locale.erasConvertYear(ti,T._a[Zt])),qs(T),pt(T)}function hc(T,k,M){var W;return M==null?k:T.meridiemHour!=null?T.meridiemHour(k,M):(T.isPM!=null&&(W=T.isPM(M),W&&k<12&&(k+=12),!W&&k===12&&(k=0)),k)}function sf(T){var k,M,W,ee,be,ft,ir=!1,rn=T._f.length;if(rn===0){v(T).invalidFormat=!0,T._d=new Date(NaN);return}for(ee=0;ee<rn;ee++)be=0,ft=!1,k=de({},T),T._useUTC!=null&&(k._useUTC=T._useUTC),k._f=T._f[ee],Po(k),$(k)&&(ft=!0),be+=v(k).charsLeftOver,be+=v(k).unusedTokens.length*10,v(k).score=be,ir?be<W&&(W=be,M=k):(W==null||be<W||ft)&&(W=be,M=k,ft&&(ir=!0));C(T,M||k)}function Pu(T){if(!T._d){var k=ze(T._i),M=k.day===void 0?k.date:k.day;T._a=S([k.year,k.month,M,k.hour,k.minute,k.second,k.millisecond],function(W){return W&&parseInt(W,10)}),qs(T)}}function of(T){var k=new ye(pt(Do(T)));return k._nextDay&&(k.add(1,"d"),k._nextDay=void 0),k}function Do(T){var k=T._i,M=T._f;return T._locale=T._locale||Ge(T._l),k===null||M===void 0&&k===""?j({nullInput:!0}):(typeof k=="string"&&(T._i=k=T._locale.preparse(k)),Fe(k)?new ye(pt(k)):(m(k)?T._d=k:o(M)?sf(T):M?Po(T):Ci(T),$(T)||(T._d=null),T))}function Ci(T){var k=T._i;p(k)?T._d=new Date(e.now()):m(k)?T._d=new Date(k.valueOf()):typeof k=="string"?Os(T):o(k)?(T._a=S(k.slice(0),function(M){return parseInt(M,10)}),qs(T)):u(k)?Pu(T):y(k)?T._d=new Date(k):e.createFromInputFallback(T)}function Qd(T,k,M,W,ee){var be={};return(k===!0||k===!1)&&(W=k,k=void 0),(M===!0||M===!1)&&(W=M,M=void 0),(u(T)&&f(T)||o(T)&&T.length===0)&&(T=void 0),be._isAMomentObject=!0,be._useUTC=be._isUTC=ee,be._l=M,be._i=T,be._f=k,be._strict=W,of(be)}function mn(T,k,M,W){return Qd(T,k,M,W,!1)}var eh=tt("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var T=mn.apply(null,arguments);return this.isValid()&&T.isValid()?T<this?this:T:j()}),Co=tt("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var T=mn.apply(null,arguments);return this.isValid()&&T.isValid()?T>this?this:T:j()});function Jn(T,k){var M,W;if(k.length===1&&o(k[0])&&(k=k[0]),!k.length)return mn();for(M=k[0],W=1;W<k.length;++W)(!k[W].isValid()||k[W][T](M))&&(M=k[W]);return M}function Aa(){var T=[].slice.call(arguments,0);return Jn("isBefore",T)}function zp(){var T=[].slice.call(arguments,0);return Jn("isAfter",T)}var Vf=function(){return Date.now?Date.now():+new Date},Wf=["year","quarter","month","week","day","hour","minute","second","millisecond"];function vg(T){var k,M=!1,W,ee=Wf.length;for(k in T)if(r(T,k)&&!(Pi.call(Wf,k)!==-1&&(T[k]==null||!isNaN(T[k]))))return!1;for(W=0;W<ee;++W)if(T[Wf[W]]){if(M)return!1;parseFloat(T[Wf[W]])!==Kr(T[Wf[W]])&&(M=!0)}return!0}function Gp(){return this._isValid}function u0(){return io(NaN)}function el(T){var k=ze(T),M=k.year||0,W=k.quarter||0,ee=k.month||0,be=k.week||k.isoWeek||0,ft=k.day||0,ir=k.hour||0,rn=k.minute||0,ti=k.second||0,Vo=k.millisecond||0;this._isValid=vg(k),this._milliseconds=+Vo+ti*1e3+rn*6e4+ir*1e3*60*60,this._days=+ft+be*7,this._months=+ee+W*3+M*12,this._data={},this._locale=Ge(),this._bubble()}function Sa(T){return T instanceof el}function Ol(T){return T<0?Math.round(-1*T)*-1:Math.round(T)}function ka(T,k,M){var W=Math.min(T.length,k.length),ee=Math.abs(T.length-k.length),be=0,ft;for(ft=0;ft<W;ft++)(M&&T[ft]!==k[ft]||!M&&Kr(T[ft])!==Kr(k[ft]))&&be++;return be+ee}function af(T,k){at(T,0,0,function(){var M=this.utcOffset(),W="+";return M<0&&(M=-M,W="-"),W+we(~~(M/60),2)+k+we(~~M%60,2)})}af("Z",":"),af("ZZ",""),bt("Z",vt),bt("ZZ",vt),En(["Z","ZZ"],function(T,k,M){M._useUTC=!0,M._tzm=go(vt,T)});var Ns=/([\+\-]|\d\d)/gi;function go(T,k){var M=(k||"").match(T),W,ee,be;return M===null?null:(W=M[M.length-1]||[],ee=(W+"").match(Ns)||["-",0,0],be=+(ee[1]*60)+Kr(ee[2]),be===0?0:ee[0]==="+"?be:-be)}function Us(T,k){var M,W;return k._isUTC?(M=k.clone(),W=(Fe(T)||m(T)?T.valueOf():mn(T).valueOf())-M.valueOf(),M._d.setTime(M._d.valueOf()+W),e.updateOffset(M,!1),M):mn(T).local()}function tl(T){return-Math.round(T._d.getTimezoneOffset())}e.updateOffset=function(){};function zf(T,k,M){var W=this._offset||0,ee;if(!this.isValid())return T!=null?this:NaN;if(T!=null){if(typeof T=="string"){if(T=go(vt,T),T===null)return this}else Math.abs(T)<16&&!M&&(T=T*60);return!this._isUTC&&k&&(ee=tl(this)),this._offset=T,this._isUTC=!0,ee!=null&&this.add(ee,"m"),W!==T&&(!k||this._changeInProgress?ra(this,io(T-W,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this}else return this._isUTC?W:tl(this)}function fi(T,k){return T!=null?(typeof T!="string"&&(T=-T),this.utcOffset(T,k),this):-this.utcOffset()}function l0(T){return this.utcOffset(0,T)}function c0(T){return this._isUTC&&(this.utcOffset(0,T),this._isUTC=!1,T&&this.subtract(tl(this),"m")),this}function Uo(){if(this._tzm!=null)this.utcOffset(this._tzm,!1,!0);else if(typeof this._i=="string"){var T=go(wt,this._i);T!=null?this.utcOffset(T):this.utcOffset(0,!0)}return this}function ta(T){return this.isValid()?(T=T?mn(T).utcOffset():0,(this.utcOffset()-T)%60===0):!1}function Ia(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function mc(){if(!p(this._isDSTShifted))return this._isDSTShifted;var T={},k;return de(T,this),T=Do(T),T._a?(k=T._isUTC?A(T._a):mn(T._a),this._isDSTShifted=this.isValid()&&ka(T._a,k.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function yc(){return this.isValid()?!this._isUTC:!1}function gc(){return this.isValid()?this._isUTC:!1}function pi(){return this.isValid()?this._isUTC&&this._offset===0:!1}var Du=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,vc=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function io(T,k){var M=T,W=null,ee,be,ft;return Sa(T)?M={ms:T._milliseconds,d:T._days,M:T._months}:y(T)||!isNaN(+T)?(M={},k?M[k]=+T:M.milliseconds=+T):(W=Du.exec(T))?(ee=W[1]==="-"?-1:1,M={y:0,d:Kr(W[Ws])*ee,h:Kr(W[cs])*ee,m:Kr(W[fo])*ee,s:Kr(W[zs])*ee,ms:Kr(Ol(W[Ts]*1e3))*ee}):(W=vc.exec(T))?(ee=W[1]==="-"?-1:1,M={y:Nl(W[2],ee),M:Nl(W[3],ee),w:Nl(W[4],ee),d:Nl(W[5],ee),h:Nl(W[6],ee),m:Nl(W[7],ee),s:Nl(W[8],ee)}):M==null?M={}:typeof M=="object"&&("from"in M||"to"in M)&&(ft=f0(mn(M.from),mn(M.to)),M={},M.ms=ft.milliseconds,M.M=ft.months),be=new el(M),Sa(T)&&r(T,"_locale")&&(be._locale=T._locale),Sa(T)&&r(T,"_isValid")&&(be._isValid=T._isValid),be}io.fn=el.prototype,io.invalid=u0;function Nl(T,k){var M=T&&parseFloat(T.replace(",","."));return(isNaN(M)?0:M)*k}function Cu(T,k){var M={};return M.months=k.month()-T.month()+(k.year()-T.year())*12,T.clone().add(M.months,"M").isAfter(k)&&--M.months,M.milliseconds=+k-+T.clone().add(M.months,"M"),M}function f0(T,k){var M;return T.isValid()&&k.isValid()?(k=Us(k,T),T.isBefore(k)?M=Cu(T,k):(M=Cu(k,T),M.milliseconds=-M.milliseconds,M.months=-M.months),M):{milliseconds:0,months:0}}function uf(T,k){return function(M,W){var ee,be;return W!==null&&!isNaN(+W)&&(Ct(k,"moment()."+k+"(period, number) is deprecated. Please use moment()."+k+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),be=M,M=W,W=be),ee=io(M,W),ra(this,ee,T),this}}function ra(T,k,M,W){var ee=k._milliseconds,be=Ol(k._days),ft=Ol(k._months);T.isValid()&&(W=W==null?!0:W,ft&&At(T,Ku(T,"Month")+ft*M),be&&Dl(T,"Date",Ku(T,"Date")+be*M),ee&&T._d.setTime(T._d.valueOf()+ee*M),W&&e.updateOffset(T,be||ft))}var Gn=uf(1,"add"),Yp=uf(-1,"subtract");function th(T){return typeof T=="string"||T instanceof String}function rh(T){return Fe(T)||m(T)||th(T)||y(T)||Xm(T)||Jm(T)||T===null||T===void 0}function Jm(T){var k=u(T)&&!f(T),M=!1,W=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],ee,be,ft=W.length;for(ee=0;ee<ft;ee+=1)be=W[ee],M=M||r(T,be);return k&&M}function Xm(T){var k=o(T),M=!1;return k&&(M=T.filter(function(W){return!y(W)&&th(T)}).length===0),k&&M}function xg(T){var k=u(T)&&!f(T),M=!1,W=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"],ee,be;for(ee=0;ee<W.length;ee+=1)be=W[ee],M=M||r(T,be);return k&&M}function cv(T,k){var M=T.diff(k,"days",!0);return M<-6?"sameElse":M<-1?"lastWeek":M<0?"lastDay":M<1?"sameDay":M<2?"nextDay":M<7?"nextWeek":"sameElse"}function p0(T,k){arguments.length===1&&(arguments[0]?rh(arguments[0])?(T=arguments[0],k=void 0):xg(arguments[0])&&(k=arguments[0],T=void 0):(T=void 0,k=void 0));var M=T||mn(),W=Us(M,this).startOf("day"),ee=e.calendarFormat(this,W)||"sameElse",be=k&&(gt(k[ee])?k[ee].call(this,M):k[ee]);return this.format(be||this.localeData().calendar(ee,this,mn(M)))}function nh(){return new ye(this)}function _g(T,k){var M=Fe(T)?T:mn(T);return this.isValid()&&M.isValid()?(k=me(k)||"millisecond",k==="millisecond"?this.valueOf()>M.valueOf():M.valueOf()<this.clone().startOf(k).valueOf()):!1}function Au(T,k){var M=Fe(T)?T:mn(T);return this.isValid()&&M.isValid()?(k=me(k)||"millisecond",k==="millisecond"?this.valueOf()<M.valueOf():this.clone().endOf(k).valueOf()<M.valueOf()):!1}function xc(T,k,M,W){var ee=Fe(T)?T:mn(T),be=Fe(k)?k:mn(k);return this.isValid()&&ee.isValid()&&be.isValid()?(W=W||"()",(W[0]==="("?this.isAfter(ee,M):!this.isBefore(ee,M))&&(W[1]===")"?this.isBefore(be,M):!this.isAfter(be,M))):!1}function na(T,k){var M=Fe(T)?T:mn(T),W;return this.isValid()&&M.isValid()?(k=me(k)||"millisecond",k==="millisecond"?this.valueOf()===M.valueOf():(W=M.valueOf(),this.clone().startOf(k).valueOf()<=W&&W<=this.clone().endOf(k).valueOf())):!1}function Za(T,k){return this.isSame(T,k)||this.isAfter(T,k)}function ia(T,k){return this.isSame(T,k)||this.isBefore(T,k)}function lf(T,k,M){var W,ee,be;if(!this.isValid())return NaN;if(W=Us(T,this),!W.isValid())return NaN;switch(ee=(W.utcOffset()-this.utcOffset())*6e4,k=me(k),k){case"year":be=Qa(this,W)/12;break;case"month":be=Qa(this,W);break;case"quarter":be=Qa(this,W)/3;break;case"second":be=(this-W)/1e3;break;case"minute":be=(this-W)/6e4;break;case"hour":be=(this-W)/36e5;break;case"day":be=(this-W-ee)/864e5;break;case"week":be=(this-W-ee)/6048e5;break;default:be=this-W}return M?be:ci(be)}function Qa(T,k){if(T.date()<k.date())return-Qa(k,T);var M=(k.year()-T.year())*12+(k.month()-T.month()),W=T.clone().add(M,"months"),ee,be;return k-W<0?(ee=T.clone().add(M-1,"months"),be=(k-W)/(W-ee)):(ee=T.clone().add(M+1,"months"),be=(k-W)/(ee-W)),-(M+be)||0}e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";function Fl(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function Gf(T){if(!this.isValid())return null;var k=T!==!0,M=k?this.clone().utc():this;return M.year()<0||M.year()>9999?Qe(M,k?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):gt(Date.prototype.toISOString)?k?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",Qe(M,"Z")):Qe(M,k?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function Yf(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var T="moment",k="",M,W,ee,be;return this.isLocal()||(T=this.utcOffset()===0?"moment.utc":"moment.parseZone",k="Z"),M="["+T+'("]',W=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",ee="-MM-DD[T]HH:mm:ss.SSS",be=k+'[")]',this.format(M+W+ee+be)}function Kp(T){T||(T=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var k=Qe(this,T);return this.localeData().postformat(k)}function Zm(T,k){return this.isValid()&&(Fe(T)&&T.isValid()||mn(T).isValid())?io({to:this,from:T}).locale(this.locale()).humanize(!k):this.localeData().invalidDate()}function d0(T){return this.from(mn(),T)}function Kf(T,k){return this.isValid()&&(Fe(T)&&T.isValid()||mn(T).isValid())?io({from:this,to:T}).locale(this.locale()).humanize(!k):this.localeData().invalidDate()}function _c(T){return this.to(mn(),T)}function h0(T){var k;return T===void 0?this._locale._abbr:(k=Ge(T),k!=null&&(this._locale=k),this)}var eu=tt("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(T){return T===void 0?this.localeData():this.locale(T)});function m0(){return this._locale}var Rl=1e3,rl=60*Rl,Sc=60*rl,Qm=(365*400+97)*24*Sc;function di(T,k){return(T%k+k)%k}function vo(T,k,M){return T<100&&T>=0?new Date(T+400,k,M)-Qm:new Date(T,k,M).valueOf()}function tu(T,k,M){return T<100&&T>=0?Date.UTC(T+400,k,M)-Qm:Date.UTC(T,k,M)}function ku(T){var k,M;if(T=me(T),T===void 0||T==="millisecond"||!this.isValid())return this;switch(M=this._isUTC?tu:vo,T){case"year":k=M(this.year(),0,1);break;case"quarter":k=M(this.year(),this.month()-this.month()%3,1);break;case"month":k=M(this.year(),this.month(),1);break;case"week":k=M(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":k=M(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":k=M(this.year(),this.month(),this.date());break;case"hour":k=this._d.valueOf(),k-=di(k+(this._isUTC?0:this.utcOffset()*rl),Sc);break;case"minute":k=this._d.valueOf(),k-=di(k,rl);break;case"second":k=this._d.valueOf(),k-=di(k,Rl);break}return this._d.setTime(k),e.updateOffset(this,!0),this}function Ll(T){var k,M;if(T=me(T),T===void 0||T==="millisecond"||!this.isValid())return this;switch(M=this._isUTC?tu:vo,T){case"year":k=M(this.year()+1,0,1)-1;break;case"quarter":k=M(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":k=M(this.year(),this.month()+1,1)-1;break;case"week":k=M(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":k=M(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":k=M(this.year(),this.month(),this.date()+1)-1;break;case"hour":k=this._d.valueOf(),k+=Sc-di(k+(this._isUTC?0:this.utcOffset()*rl),Sc)-1;break;case"minute":k=this._d.valueOf(),k+=rl-di(k,rl)-1;break;case"second":k=this._d.valueOf(),k+=Rl-di(k,Rl)-1;break}return this._d.setTime(k),e.updateOffset(this,!0),this}function Oa(){return this._d.valueOf()-(this._offset||0)*6e4}function cf(){return Math.floor(this.valueOf()/1e3)}function Ml(){return new Date(this.valueOf())}function Sg(){var T=this;return[T.year(),T.month(),T.date(),T.hour(),T.minute(),T.second(),T.millisecond()]}function y0(){var T=this;return{years:T.year(),months:T.month(),date:T.date(),hours:T.hours(),minutes:T.minutes(),seconds:T.seconds(),milliseconds:T.milliseconds()}}function Jf(){return this.isValid()?this.toISOString():null}function Jp(){return $(this)}function fv(){return C({},v(this))}function ey(){return v(this).overflow}function ih(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}at("N",0,0,"eraAbbr"),at("NN",0,0,"eraAbbr"),at("NNN",0,0,"eraAbbr"),at("NNNN",0,0,"eraName"),at("NNNNN",0,0,"eraNarrow"),at("y",["y",1],"yo","eraYear"),at("y",["yy",2],0,"eraYear"),at("y",["yyy",3],0,"eraYear"),at("y",["yyyy",4],0,"eraYear"),bt("N",Zp),bt("NN",Zp),bt("NNN",Zp),bt("NNNN",oh),bt("NNNNN",ah),En(["N","NN","NNN","NNNN","NNNNN"],function(T,k,M,W){var ee=M._locale.erasParse(T,W,M._strict);ee?v(M).era=ee:v(M).invalidEra=T}),bt("y",Da),bt("yy",Da),bt("yyy",Da),bt("yyyy",Da),bt("yo",v0),En(["y","yy","yyy","yyyy"],Zt),En(["yo"],function(T,k,M,W){var ee;M._locale._eraYearOrdinalRegex&&(ee=T.match(M._locale._eraYearOrdinalRegex)),M._locale.eraYearOrdinalParse?k[Zt]=M._locale.eraYearOrdinalParse(T,ee):k[Zt]=parseInt(T,10)});function ty(T,k){var M,W,ee,be=this._eras||Ge("en")._eras;for(M=0,W=be.length;M<W;++M){switch(typeof be[M].since){case"string":ee=e(be[M].since).startOf("day"),be[M].since=ee.valueOf();break}switch(typeof be[M].until){case"undefined":be[M].until=1/0;break;case"string":ee=e(be[M].until).startOf("day").valueOf(),be[M].until=ee.valueOf();break}}return be}function ry(T,k,M){var W,ee,be=this.eras(),ft,ir,rn;for(T=T.toUpperCase(),W=0,ee=be.length;W<ee;++W)if(ft=be[W].name.toUpperCase(),ir=be[W].abbr.toUpperCase(),rn=be[W].narrow.toUpperCase(),M)switch(k){case"N":case"NN":case"NNN":if(ir===T)return be[W];break;case"NNNN":if(ft===T)return be[W];break;case"NNNNN":if(rn===T)return be[W];break}else if([ft,ir,rn].indexOf(T)>=0)return be[W]}function g0(T,k){var M=T.since<=T.until?1:-1;return k===void 0?e(T.since).year():e(T.since).year()+(k-T.offset)*M}function ff(){var T,k,M,W=this.localeData().eras();for(T=0,k=W.length;T<k;++T)if(M=this.clone().startOf("day").valueOf(),W[T].since<=M&&M<=W[T].until||W[T].until<=M&&M<=W[T].since)return W[T].name;return""}function ny(){var T,k,M,W=this.localeData().eras();for(T=0,k=W.length;T<k;++T)if(M=this.clone().startOf("day").valueOf(),W[T].since<=M&&M<=W[T].until||W[T].until<=M&&M<=W[T].since)return W[T].narrow;return""}function Tg(){var T,k,M,W=this.localeData().eras();for(T=0,k=W.length;T<k;++T)if(M=this.clone().startOf("day").valueOf(),W[T].since<=M&&M<=W[T].until||W[T].until<=M&&M<=W[T].since)return W[T].abbr;return""}function Xp(){var T,k,M,W,ee=this.localeData().eras();for(T=0,k=ee.length;T<k;++T)if(M=ee[T].since<=ee[T].until?1:-1,W=this.clone().startOf("day").valueOf(),ee[T].since<=W&&W<=ee[T].until||ee[T].until<=W&&W<=ee[T].since)return(this.year()-e(ee[T].since).year())*M+ee[T].offset;return this.year()}function sa(T){return r(this,"_erasNameRegex")||Zf.call(this),T?this._erasNameRegex:this._erasRegex}function sh(T){return r(this,"_erasAbbrRegex")||Zf.call(this),T?this._erasAbbrRegex:this._erasRegex}function Xf(T){return r(this,"_erasNarrowRegex")||Zf.call(this),T?this._erasNarrowRegex:this._erasRegex}function Zp(T,k){return k.erasAbbrRegex(T)}function oh(T,k){return k.erasNameRegex(T)}function ah(T,k){return k.erasNarrowRegex(T)}function v0(T,k){return k._eraYearOrdinalRegex||Da}function Zf(){var T=[],k=[],M=[],W=[],ee,be,ft,ir,rn,ti=this.eras();for(ee=0,be=ti.length;ee<be;++ee)ft=vi(ti[ee].name),ir=vi(ti[ee].abbr),rn=vi(ti[ee].narrow),k.push(ft),T.push(ir),M.push(rn),W.push(ft),W.push(ir),W.push(rn);this._erasRegex=new RegExp("^("+W.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+k.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+T.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+M.join("|")+")","i")}at(0,["gg",2],0,function(){return this.weekYear()%100}),at(0,["GG",2],0,function(){return this.isoWeekYear()%100});function Qf(T,k){at(0,[T,T.length],0,k)}Qf("gggg","weekYear"),Qf("ggggg","weekYear"),Qf("GGGG","isoWeekYear"),Qf("GGGGG","isoWeekYear"),bt("G",Xe),bt("g",Xe),bt("GG",dn,Lr),bt("gg",dn,Lr),bt("GGGG",bo,kn),bt("gggg",bo,kn),bt("GGGGG",_u,Vn),bt("ggggg",_u,Vn),rs(["gggg","ggggg","GGGG","GGGGG"],function(T,k,M,W){k[W.substr(0,2)]=Kr(T)}),rs(["gg","GG"],function(T,k,M,W){k[W]=e.parseTwoDigitYear(T)});function ep(T){return ru.call(this,T,this.week(),this.weekday()+this.localeData()._week.dow,this.localeData()._week.dow,this.localeData()._week.doy)}function iy(T){return ru.call(this,T,this.isoWeek(),this.isoWeekday(),1,4)}function uh(){return Di(this.year(),1,4)}function lh(){return Di(this.isoWeekYear(),1,4)}function Tc(){var T=this.localeData()._week;return Di(this.year(),T.dow,T.doy)}function pf(){var T=this.localeData()._week;return Di(this.weekYear(),T.dow,T.doy)}function ru(T,k,M,W,ee){var be;return T==null?Kt(this,W,ee).year:(be=Di(T,W,ee),k>be&&(k=be),df.call(this,T,k,M,W,ee))}function df(T,k,M,W,ee){var be=Vp(T,k,M,W,ee),ft=Uf(be.year,0,be.dayOfYear);return this.year(ft.getUTCFullYear()),this.month(ft.getUTCMonth()),this.date(ft.getUTCDate()),this}at("Q",0,"Qo","quarter"),bt("Q",Rr),En("Q",function(T,k){k[co]=(Kr(T)-1)*3});function x0(T){return T==null?Math.ceil((this.month()+1)/3):this.month((T-1)*3+this.month()%3)}at("D",["DD",2],"Do","date"),bt("D",dn,dr),bt("DD",dn,Lr),bt("Do",function(T,k){return T?k._dayOfMonthOrdinalParse||k._ordinalParse:k._dayOfMonthOrdinalParseLenient}),En(["D","DD"],Ws),En("Do",function(T,k){k[Ws]=Kr(T.match(dn)[0])});var Ec=zr("Date",!0);at("DDD",["DDDD",3],"DDDo","dayOfYear"),bt("DDD",Yi),bt("DDDD",Rn),En(["DDD","DDDD"],function(T,k,M){M._dayOfYear=Kr(T)});function nl(T){var k=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return T==null?k:this.add(T-k,"d")}at("m",["mm",2],0,"minute"),bt("m",dn,Tn),bt("mm",dn,Lr),En(["m","mm"],fo);var _0=zr("Minutes",!1);at("s",["ss",2],0,"second"),bt("s",dn,Tn),bt("ss",dn,Lr),En(["s","ss"],zs);var Qp=zr("Seconds",!1);at("S",0,0,function(){return~~(this.millisecond()/100)}),at(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),at(0,["SSS",3],0,"millisecond"),at(0,["SSSS",4],0,function(){return this.millisecond()*10}),at(0,["SSSSS",5],0,function(){return this.millisecond()*100}),at(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),at(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),at(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),at(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),bt("S",Yi,Rr),bt("SS",Yi,Lr),bt("SSS",Yi,Rn);var Iu,S0;for(Iu="SSSS";Iu.length<=9;Iu+="S")bt(Iu,Da);function sy(T,k){k[Ts]=Kr(("0."+T)*1e3)}for(Iu="S";Iu.length<=9;Iu+="S")En(Iu,sy);S0=zr("Milliseconds",!1),at("z",0,0,"zoneAbbr"),at("zz",0,0,"zoneName");function ch(){return this._isUTC?"UTC":""}function fh(){return this._isUTC?"Coordinated Universal Time":""}var Bt=ye.prototype;Bt.add=Gn,Bt.calendar=p0,Bt.clone=nh,Bt.diff=lf,Bt.endOf=Ll,Bt.format=Kp,Bt.from=Zm,Bt.fromNow=d0,Bt.to=Kf,Bt.toNow=_c,Bt.get=Ga,Bt.invalidAt=ey,Bt.isAfter=_g,Bt.isBefore=Au,Bt.isBetween=xc,Bt.isSame=na,Bt.isSameOrAfter=Za,Bt.isSameOrBefore=ia,Bt.isValid=Jp,Bt.lang=eu,Bt.locale=h0,Bt.localeData=m0,Bt.max=Co,Bt.min=eh,Bt.parsingFlags=fv,Bt.set=Ki,Bt.startOf=ku,Bt.subtract=Yp,Bt.toArray=Sg,Bt.toObject=y0,Bt.toDate=Ml,Bt.toISOString=Gf,Bt.inspect=Yf,typeof Symbol<"u"&&Symbol.for!=null&&(Bt[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),Bt.toJSON=Jf,Bt.toString=Fl,Bt.unix=cf,Bt.valueOf=Oa,Bt.creationData=ih,Bt.eraName=ff,Bt.eraNarrow=ny,Bt.eraAbbr=Tg,Bt.eraYear=Xp,Bt.year=Tu,Bt.isLeapYear=ac,Bt.weekYear=ep,Bt.isoWeekYear=iy,Bt.quarter=Bt.quarters=x0,Bt.month=Ya,Bt.daysInMonth=s0,Bt.week=Bt.weeks=o0,Bt.isoWeek=Bt.isoWeeks=Yd,Bt.weeksInYear=Tc,Bt.weeksInWeekYear=pf,Bt.isoWeeksInYear=uh,Bt.isoWeeksInISOWeekYear=lh,Bt.date=Ec,Bt.day=Bt.days=ys,Bt.weekday=hn,Bt.isoWeekday=wu,Bt.dayOfYear=nl,Bt.hour=Bt.hours=Qo,Bt.minute=Bt.minutes=_0,Bt.second=Bt.seconds=Qp,Bt.millisecond=Bt.milliseconds=S0,Bt.utcOffset=zf,Bt.utc=l0,Bt.local=c0,Bt.parseZone=Uo,Bt.hasAlignedHourOffset=ta,Bt.isDST=Ia,Bt.isLocal=yc,Bt.isUtcOffset=gc,Bt.isUtc=pi,Bt.isUTC=pi,Bt.zoneAbbr=ch,Bt.zoneName=fh,Bt.dates=tt("dates accessor is deprecated. Use date instead.",Ec),Bt.months=tt("months accessor is deprecated. Use month instead",Ya),Bt.years=tt("years accessor is deprecated. Use year instead",Tu),Bt.zone=tt("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",fi),Bt.isDSTShifted=tt("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",mc);function tn(T){return mn(T*1e3)}function $o(){return mn.apply(null,arguments).parseZone()}function Gs(T){return T}var yn=oe.prototype;yn.calendar=Se,yn.longDateFormat=Dr,yn.invalidDate=tr,yn.ordinal=lr,yn.preparse=Gs,yn.postformat=Gs,yn.relativeTime=Pt,yn.pastFuture=_t,yn.set=ct,yn.eras=ty,yn.erasParse=ry,yn.erasConvertYear=g0,yn.erasAbbrRegex=sh,yn.erasNameRegex=sa,yn.erasNarrowRegex=Xf,yn.months=i0,yn.monthsShort=Xc,yn.monthsParse=Zo,yn.monthsRegex=Ui,yn.monthsShortRegex=Zc,yn.week=Wp,yn.firstDayOfYear=$f,yn.firstDayOfWeek=Ka,yn.weekdays=Al,yn.weekdaysMin=Eu,yn.weekdaysShort=Ja,yn.weekdaysParse=Zu,yn.weekdaysRegex=Xd,yn.weekdaysShortRegex=Is,yn.weekdaysMinRegex=fc,yn.isPM=Zd,yn.meridiem=nf;function Ta(T,k,M,W){var ee=Ge(),be=A().set(W,k);return ee[M](be,T)}function ed(T,k,M){if(y(T)&&(k=T,T=void 0),T=T||"",k!=null)return Ta(T,k,M,"month");var W,ee=[];for(W=0;W<12;W++)ee[W]=Ta(T,W,M,"month");return ee}function Fs(T,k,M,W){typeof T=="boolean"?(y(k)&&(M=k,k=void 0),k=k||""):(k=T,M=k,T=!1,y(k)&&(M=k,k=void 0),k=k||"");var ee=Ge(),be=T?ee._week.dow:0,ft,ir=[];if(M!=null)return Ta(k,(M+be)%7,W,"day");for(ft=0;ft<7;ft++)ir[ft]=Ta(k,(ft+be)%7,W,"day");return ir}function td(T,k){return ed(T,k,"months")}function bn(T,k){return ed(T,k,"monthsShort")}function tp(T,k,M){return Fs(T,k,M,"weekdays")}function hf(T,k,M){return Fs(T,k,M,"weekdaysShort")}function T0(T,k,M){return Fs(T,k,M,"weekdaysMin")}ne("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(T){var k=T%10,M=Kr(T%100/10)===1?"th":k===1?"st":k===2?"nd":k===3?"rd":"th";return T+M}}),e.lang=tt("moment.lang is deprecated. Use moment.locale instead.",ne),e.langData=tt("moment.langData is deprecated. Use moment.localeData instead.",Ge);var il=Math.abs;function E0(){var T=this._data;return this._milliseconds=il(this._milliseconds),this._days=il(this._days),this._months=il(this._months),T.milliseconds=il(T.milliseconds),T.seconds=il(T.seconds),T.minutes=il(T.minutes),T.hours=il(T.hours),T.months=il(T.months),T.years=il(T.years),this}function ph(T,k,M,W){var ee=io(k,M);return T._milliseconds+=W*ee._milliseconds,T._days+=W*ee._days,T._months+=W*ee._months,T._bubble()}function wc(T,k){return ph(this,T,k,1)}function Er(T,k){return ph(this,T,k,-1)}function mf(T){return T<0?Math.floor(T):Math.ceil(T)}function w0(){var T=this._milliseconds,k=this._days,M=this._months,W=this._data,ee,be,ft,ir,rn;return T>=0&&k>=0&&M>=0||T<=0&&k<=0&&M<=0||(T+=mf(sl(M)+k)*864e5,k=0,M=0),W.milliseconds=T%1e3,ee=ci(T/1e3),W.seconds=ee%60,be=ci(ee/60),W.minutes=be%60,ft=ci(be/60),W.hours=ft%24,k+=ci(ft/24),rn=ci(nu(k)),M+=rn,k-=mf(sl(rn)),ir=ci(M/12),M%=12,W.days=k,W.months=M,W.years=ir,this}function nu(T){return T*4800/146097}function sl(T){return T*146097/4800}function rd(T){if(!this.isValid())return NaN;var k,M,W=this._milliseconds;if(T=me(T),T==="month"||T==="quarter"||T==="year")switch(k=this._days+W/864e5,M=this._months+nu(k),T){case"month":return M;case"quarter":return M/3;case"year":return M/12}else switch(k=this._days+Math.round(sl(this._months)),T){case"week":return k/7+W/6048e5;case"day":return k+W/864e5;case"hour":return k*24+W/36e5;case"minute":return k*1440+W/6e4;case"second":return k*86400+W/1e3;case"millisecond":return Math.floor(k*864e5)+W;default:throw new Error("Unknown unit "+T)}}function Na(T){return function(){return this.as(T)}}var rp=Na("ms"),b0=Na("s"),Bl=Na("m"),nd=Na("h"),yf=Na("d"),np=Na("w"),Ou=Na("M"),ol=Na("Q"),id=Na("y"),gf=rp;function oa(){return io(this)}function Ai(T){return T=me(T),this.isValid()?this[T+"s"]():NaN}function Si(T){return function(){return this.isValid()?this._data[T]:NaN}}var dh=Si("milliseconds"),Fa=Si("seconds"),oy=Si("minutes"),ip=Si("hours"),P0=Si("days"),Eg=Si("months"),D0=Si("years");function hh(){return ci(this.days()/7)}var iu=Math.round,bc={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function sp(T,k,M,W,ee){return ee.relativeTime(k||1,!!M,T,W)}function ay(T,k,M,W){var ee=io(T).abs(),be=iu(ee.as("s")),ft=iu(ee.as("m")),ir=iu(ee.as("h")),rn=iu(ee.as("d")),ti=iu(ee.as("M")),Vo=iu(ee.as("w")),Ra=iu(ee.as("y")),Es=be<=M.ss&&["s",be]||be<M.s&&["ss",be]||ft<=1&&["m"]||ft<M.m&&["mm",ft]||ir<=1&&["h"]||ir<M.h&&["hh",ir]||rn<=1&&["d"]||rn<M.d&&["dd",rn];return M.w!=null&&(Es=Es||Vo<=1&&["w"]||Vo<M.w&&["ww",Vo]),Es=Es||ti<=1&&["M"]||ti<M.M&&["MM",ti]||Ra<=1&&["y"]||["yy",Ra],Es[2]=k,Es[3]=+T>0,Es[4]=W,sp.apply(null,Es)}function uy(T){return T===void 0?iu:typeof T=="function"?(iu=T,!0):!1}function sd(T,k){return bc[T]===void 0?!1:k===void 0?bc[T]:(bc[T]=k,T==="s"&&(bc.ss=k-1),!0)}function wg(T,k){if(!this.isValid())return this.localeData().invalidDate();var M=!1,W=bc,ee,be;return typeof T=="object"&&(k=T,T=!1),typeof T=="boolean"&&(M=T),typeof k=="object"&&(W=Object.assign({},bc,k),k.s!=null&&k.ss==null&&(W.ss=k.s-1)),ee=this.localeData(),be=ay(this,!M,W,ee),M&&(be=ee.pastFuture(+this,be)),ee.postformat(be)}var mh=Math.abs;function Pc(T){return(T>0)-(T<0)||+T}function Ho(){if(!this.isValid())return this.localeData().invalidDate();var T=mh(this._milliseconds)/1e3,k=mh(this._days),M=mh(this._months),W,ee,be,ft,ir=this.asSeconds(),rn,ti,Vo,Ra;return ir?(W=ci(T/60),ee=ci(W/60),T%=60,W%=60,be=ci(M/12),M%=12,ft=T?T.toFixed(3).replace(/\.?0+$/,""):"",rn=ir<0?"-":"",ti=Pc(this._months)!==Pc(ir)?"-":"",Vo=Pc(this._days)!==Pc(ir)?"-":"",Ra=Pc(this._milliseconds)!==Pc(ir)?"-":"",rn+"P"+(be?ti+be+"Y":"")+(M?ti+M+"M":"")+(k?Vo+k+"D":"")+(ee||W||T?"T":"")+(ee?Ra+ee+"H":"")+(W?Ra+W+"M":"")+(T?Ra+ft+"S":"")):"P0D"}var In=el.prototype;In.isValid=Gp,In.abs=E0,In.add=wc,In.subtract=Er,In.as=rd,In.asMilliseconds=rp,In.asSeconds=b0,In.asMinutes=Bl,In.asHours=nd,In.asDays=yf,In.asWeeks=np,In.asMonths=Ou,In.asQuarters=ol,In.asYears=id,In.valueOf=gf,In._bubble=w0,In.clone=oa,In.get=Ai,In.milliseconds=dh,In.seconds=Fa,In.minutes=oy,In.hours=ip,In.days=P0,In.weeks=hh,In.months=Eg,In.years=D0,In.humanize=wg,In.toISOString=Ho,In.toString=Ho,In.toJSON=Ho,In.locale=h0,In.localeData=m0,In.toIsoString=tt("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ho),In.lang=eu,at("X",0,0,"unix"),at("x",0,0,"valueOf"),bt("x",Xe),bt("X",jt),En("X",function(T,k,M){M._d=new Date(parseFloat(T)*1e3)}),En("x",function(T,k,M){M._d=new Date(Kr(T))});return e.version="2.30.1",n(mn),e.fn=Bt,e.min=Aa,e.max=zp,e.now=Vf,e.utc=A,e.unix=tn,e.months=td,e.isDate=m,e.locale=ne,e.invalid=j,e.duration=io,e.isMoment=Fe,e.weekdays=tp,e.parseZone=$o,e.localeData=Ge,e.isDuration=Sa,e.monthsShort=bn,e.weekdaysMin=T0,e.defineLocale=ke,e.updateLocale=Ze,e.locales=lt,e.weekdaysShort=hf,e.normalizeUnits=me,e.relativeTimeRounding=uy,e.relativeTimeThreshold=sd,e.calendarFormat=cv,e.prototype=Bt,e.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},e})});function $y(){return!process.stdout.isTTY||process.env.FORCE_NON_TTY==="1"}function Eb({prefix:t="cli"}){return Ps.default.createElement(Ss.Text,{color:"grey"},"[",t,"]")}function ss(t,e="cli"){if($y()){console.log(`\x1B[90m[${e}]\x1B[0m\x1B[31m[\u2718] \x1B[0m${t}`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Text,null,Ps.default.createElement(Eb,{prefix:e}),Ps.default.createElement(Ss.Text,{color:"red"},"[\u2718] "),t));n()}function uS(t,e="cli"){if($y()){console.log(`\x1B[90m[${e}]\x1B[0m\x1B[32m[\u2714] \x1B[0m${t}`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Text,null,Ps.default.createElement(Eb,{prefix:e}),Ps.default.createElement(Ss.Text,{color:"green"},"[\u2714] "),t));n()}function vm(t,e="cli"){if($y()){console.log(`\x1B[90m[${e}]\x1B[0m \x1B[33mWARNING:\x1B[0m ${t}`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Text,null,Ps.default.createElement(Eb,{prefix:e}),Ps.default.createElement(Ss.Text,{color:"orange"},"\u2757\uFE0F "),t));n()}function X$(t){if($y()){console.log(t);return}let{unmount:e}=(0,Ss.render)(Ps.default.createElement(Ss.Text,{color:"cyan"},t));e()}function Wr(t,e="cli"){if($y()){console.log(`\x1B[90m[${e}]\x1B[0m\x1B[37m ${t}\x1B[0m`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Text,{color:"white"},Ps.default.createElement(Eb,{prefix:e}),t));n()}function aO({timestamp:t}){return Ps.default.createElement(Ss.Box,{width:13},Ps.default.createElement(Ss.Text,{color:"grey"},(0,aS.default)(t).format("HH:mm:ss.SSS")))}function Z$(t,e){if($y()){console.log(`${(0,aS.default)(e).format("HH:mm:ss.SSS")} ${t}`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Box,null,Ps.default.createElement(aO,{timestamp:e}),Ps.default.createElement(Ss.Text,{color:"white"},t)));n()}function Q$(t,e){if($y()){console.log(`${(0,aS.default)(e).format("HH:mm:ss.SSS")} [WARNING] ${t}`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Box,null,Ps.default.createElement(aO,{timestamp:e}),Ps.default.createElement(Ss.Text,{color:"white",backgroundColor:"yellow"},"[WARNING]"),Ps.default.createElement(Ss.Text,null," ",t)));n()}function uO(t,e){if($y()){console.log(`${(0,aS.default)(e).format("HH:mm:ss.SSS")} [ERROR] ${t}`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Box,null,Ps.default.createElement(aO,{timestamp:e}),Ps.default.createElement(Ss.Text,{color:"white",backgroundColor:"red"},"[ERROR]"),Ps.default.createElement(Ss.Text,{color:"white"}," ",t)));n()}var Ss,Ps,aS,Hu=mt(()=>{Ss=cr(Tb()),Ps=cr(Xs()),aS=cr(J$())});var tH,eH=mt(()=>{tH={name:"edgeone",version:"1.4.5",description:"Command-line interface for TencentCloud Pages Functions",bin:{edgeone:"./edgeone-bin/edgeone.js"},files:["./edgeone-bin/edgeone.js","./edgeone-dist/cli.js","./edgeone-dist/templates","./edgeone-dist/pages/dev/runner-worker.js"],author:"",keywords:["tencent","edgeone","edgefunctions","edgeone","cli","typescript"],scripts:{clean:"rimraf ./edgeone-dist ./edgeone-bin ./libs-node-ai ./libs-kv-client",bundle:"node -r esbuild-register ./scripts/bundle.ts",watch:"node -r esbuild-register ./scripts/bundle.ts watch",build:"npm run clean && npm run build:pages-ai && npm run build:kv-client && npm run bundle","build:pages-ai":"node ./scripts/build-pages-ai.js","build:kv-client":"node ./scripts/build-kv-client.js",format:'prettier --write "src/**/*.{ts,tsx,js,jsx,json,md}" "scripts/**/*.{ts,js}" "*.{json,md}"',prepack:"npm run build",prepublishOnly:"npm run build",test:"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage"},dependencies:{"@edgeone/framework-detect":"^0.0.2","@edgeone/nuxt-pages":"1.1.0","@edgeone/opennextjs-pages":"0.2.2","@edgeone/is-spa":"^0.0.2",archiver:"^7.0.1",chokidar:"^4.0.1","common-path-prefix":"^1.0.0","cos-nodejs-sdk-v5":"^2.14.7","cross-spawn":"^7.0.6",crypto:"^1.0.1","detect-port":"^2.1.0",esbuild:"^0.19.2","esbuild-plugin-polyfill-node":"^0.3.0","esbuild-plugin-vue":"^0.2.4","fast-glob":"^3.3.0","fs-extra":"^11.3.1","ink-table":"^3.1.0",inquirer:"^8.2.4",install:"^0.13.0",lodash:"^4.17.21","mime-types":"^3.0.1",minimatch:"^9.0.5","node-persist":"^4.0.3",npm:"^10.9.1",open:"^8.4.2","p-map":"^5.5.0","parse-gitignore":"^2.0.0",portfinder:"^1.0.32",undici:"^5.29.0",vitest:"^4.0.17"},devDependencies:{"@babel/generator":"^7.28.0","@babel/parser":"^7.28.0","@babel/traverse":"^7.28.0","@babel/types":"^7.28.0","@tencent/capi-nodejs-sdk":"^2.3.2","@types/http-proxy":"^1.17.12","@types/inquirer":"^9.0.8","@types/ip":"^1.1.0","@types/lodash":"^4.14.198","@types/prompts":"^2.4.4","@types/react":"^17.0.2","@types/uuid":"^9.0.3","@types/ws":"^8.5.7","@types/yargs":"^17.0.24","@vitest/coverage-v8":"^4.0.17",axios:"^1.7.9",chalk:"^5.3.0",cookie:"^1.0.2",dotenv:"^16.3.1","esbuild-register":"^3.6.0",execa:"^7.1.1","http-proxy":"^1.18.1",husky:"^8.0.3",ink:"^3.2.0",ip:"^2.0.1",json5:"^2.2.3","lint-staged":"^15.2.0",lodash:"^4.17.21",moment:"^2.30.1","node-fetch":"^3.3.2",prettier:"^3.1.1",prompts:"^2.4.2",react:"^17.0.2",rimraf:"^6.0.1",semiver:"^1.1.0",sirv:"^2.0.3","tencentcloud-cls-sdk-js-web":"^1.0.13","ts-node":"^10.9.2",typescript:"^5.9.3","update-check":"^1.5.4",uuid:"^9.0.0",ws:"^8.14.2",yargs:"^17.6.2",zod:"^3.23.8","zod-to-json-schema":"^3.23.5"},engines:{node:">=12"},"lint-staged":{"*.{ts,tsx,js,jsx,json,md}":["prettier --write"]}}});function VPe(){var t,e;return{run_id:HPe,cli_version:(e=(t=tH)==null?void 0:t.version)!=null?e:"unknown",node_version:process.version,os_platform:cO.default.platform(),os_arch:cO.default.arch(),app_type:"cli",app_id:process.env.AppId||void 0,uin:process.env.Uin||void 0,instance_id:process.env.ProjectId||void 0,is_ci:process.env.CI==="true"}}function WPe(t,e){try{if(typeof process.send!="function")return;process.send(JSON.stringify({name:t,value:JSON.stringify(e)}))}catch{}}function Wa(t){var n;let e={...VPe(),...t};WPe((n=e.event_name)!=null?n:"unknown",e)}function kp(t){if(t==null)return{message:"unknown error",stack:""};if(typeof t=="string")return{message:wb(t,lO),stack:""};if(typeof t=="object"){let e=t,n=wb(typeof e.message=="string"?e.message:String(e),lO),o=wb(typeof e.stack=="string"?e.stack:"",zPe);return{message:n,stack:o}}return{message:wb(String(t),lO),stack:""}}function wb(t,e){return t.length>e?t.slice(0,e)+"\u2026[truncated]":t}var cO,Ha,Va,HPe,fO,lO,zPe,xm=mt(()=>{cO=cr(require("os"));eH();Ha={COMMAND:"command",REQUEST:"request",LOCAL_FLOW:"local_flow",EXIT:"exit"},Va={SUCCESS:"success",FAIL:"fail",START:"start"},HPe=`cli-${Date.now()}-${Math.random().toString(36).slice(2,6)}`;fO=(t,e)=>{let n=kp(e);Wa({event_name:"error",event_scope:Ha.COMMAND,event_result:Va.FAIL,error_message:`${t} ${n.message}`.trim(),error_stack:n.stack})},lO=500,zPe=2e3});var lS,l2,pO=mt(()=>{lS={NEXTJS:"nextjs",NUXTJS:"nuxtjs",ASTRO:"astro",UNKNOWN:"unknown"},l2={FRAMEWORK_DETECT:"framework_detect",PLUGIN_RESOLVE:"plugin_resolve",PLUGIN_LOAD:"plugin_load",PLUGIN_HOOK:"plugin_hook",CONFIG_LOAD:"config_load"}});function KPe(t){if((t==null?void 0:t.code)===YPe)return!0;let e=typeof t=="string"?t:t==null?void 0:t.message;return e==null?void 0:e.includes(GPe)}async function cS(t=!1){try{let e=await Sj(t);return Wa({event_name:"Config:Load:Success",event_scope:Ha.LOCAL_FLOW,event_phase:l2.CONFIG_LOAD,event_result:Va.SUCCESS,has_build_command:(e==null?void 0:e.buildCommand)!=null,has_install_command:(e==null?void 0:e.installCommand)!=null,has_output_directory:(e==null?void 0:e.outputDirectory)!=null,has_node_version:(e==null?void 0:e.nodeVersion)!=null}),e}catch(e){let n=kp(e);if(Wa({event_name:"Config:Load:Fail",event_scope:Ha.LOCAL_FLOW,event_phase:l2.CONFIG_LOAD,event_result:Va.FAIL,error_message:n.message}),KPe(e))throw e;return bp()&&console.error("%c [ error ]-80","font-size:13px; background:pink; color:#bf2c9f;",e),null}}var GPe,YPe,rH=mt(()=>{Iw();ww();xm();pO();GPe="[BLOCKING_CONFIG_ERROR]",YPe="BLOCKING_CONFIG_ERROR"});var nH,qc,dO=mt(()=>{nH=[{funcName:"onRequestGet",method:"GET"},{funcName:"onRequestPost",method:"POST"},{funcName:"onRequestDelete",method:"DELETE"},{funcName:"onRequestPatch",method:"PATCH"},{funcName:"onRequestPut",method:"PUT"},{funcName:"onRequestHead",method:"HEAD"},{funcName:"onRequestOptions",method:"OPTIONS"}],qc=["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS"]});async function JPe(t){let e;bb.default.statSync(t).isFile()?e=c2.default.resolve(c2.default.dirname(t)):e=t;let n=c2.default.parse(e).root;if(e===n)return null;for(;e!==n;){let o=c2.default.join(e,"package.json");try{return await bb.default.promises.access(o),o}catch{if(e=c2.default.dirname(e),e===n)break}}return null}async function Pb(t){if(t.endsWith(".mjs"))return"esm";if(t.endsWith(".cjs"))return"commonjs";try{let e=await JPe(t);if(e&&JSON.parse(await bb.default.promises.readFile(e,"utf-8")).type==="module")return"esm"}catch(e){console.warn("Failed to read package.json:",e)}return"commonjs"}var bb,c2,Db=mt(()=>{bb=cr(require("fs")),c2=cr(require("path"))});function QPe(t){let e=hO.default.extname(t);return ZPe[e]||"ts"}async function sH(t,e,n,o){let u=`mod_${eDe++}`,f=(await iH.default.build({stdin:{contents:t,loader:QPe(n),resolveDir:hO.default.dirname(n)},write:!1,bundle:!0,format:"esm",platform:"node",target:"node14",minify:!1,resolveExtensions:[".ts",".js",".mjs",".json"],nodePaths:[process.cwd()],absWorkingDir:process.cwd(),external:(o==null?void 0:o.externalModules)||[]})).outputFiles[0].text,p=[];f=f.replace(/^import\s+[^'"]*['"][^'"]*['"]\s*;?\n/gm,C=>(p.push(C),"")),f=f.replace(/export (async )?function/g,"$1function"),f=f.replace(/export const/g,"const"),f=f.replace(/export let/g,"let"),f=f.replace(/export var/g,"var"),f=f.replace(/export default/g,""),f=f.replace(/export \{[^}]+\};?/g,""),f=f.replace(/export class/g,"class");let y=/const\s+app\s*=/.test(f),m=`${p.join(`
144
+ `+new Error().stack),M=!1}return k.apply(this,arguments)},k)}var Le={};function Ct(T,k){e.deprecationHandler!=null&&e.deprecationHandler(T,k),Le[T]||(He(k),Le[T]=!0)}e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;function gt(T){return typeof Function<"u"&&T instanceof Function||Object.prototype.toString.call(T)==="[object Function]"}function ct(T){var k,M;for(M in T)r(T,M)&&(k=T[M],gt(k)?this[M]=k:this["_"+M]=k);this._config=T,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function qe(T,k){var M=C({},T),W;for(W in k)r(k,W)&&(u(T[W])&&u(k[W])?(M[W]={},C(M[W],T[W]),C(M[W],k[W])):k[W]!=null?M[W]=k[W]:delete M[W]);for(W in T)r(T,W)&&!r(k,W)&&u(T[W])&&(M[W]=C({},M[W]));return M}function oe(T){T!=null&&this.set(T)}var Ae;Object.keys?Ae=Object.keys:Ae=function(T){var k,M=[];for(k in T)r(T,k)&&M.push(k);return M};var Ke={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function Se(T,k,M){var W=this._calendar[T]||this._calendar.sameElse;return gt(W)?W.call(k,M):W}function we(T,k,M){var W=""+Math.abs(T),ee=k-W.length,be=T>=0;return(be?M?"+":"":"-")+Math.pow(10,Math.max(0,ee)).toString().substr(1)+W}var Oe=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ut=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Lt={},er={};function at(T,k,M,W){var ee=W;typeof W=="string"&&(ee=function(){return this[W]()}),T&&(er[T]=ee),k&&(er[k[0]]=function(){return we(ee.apply(this,arguments),k[1],k[2])}),M&&(er[M]=function(){return this.localeData().ordinal(ee.apply(this,arguments),T)})}function zt(T){return T.match(/\[[\s\S]/)?T.replace(/^\[|\]$/g,""):T.replace(/\\/g,"")}function Ie(T){var k=T.match(Oe),M,W;for(M=0,W=k.length;M<W;M++)er[k[M]]?k[M]=er[k[M]]:k[M]=zt(k[M]);return function(ee){var be="",ft;for(ft=0;ft<W;ft++)be+=gt(k[ft])?k[ft].call(ee,T):k[ft];return be}}function Qe(T,k){return T.isValid()?(k=st(k,T.localeData()),Lt[k]=Lt[k]||Ie(k),Lt[k](T)):T.localeData().invalidDate()}function st(T,k){var M=5;function W(ee){return k.longDateFormat(ee)||ee}for(ut.lastIndex=0;M>=0&&ut.test(T);)T=T.replace(ut,W),ut.lastIndex=0,M-=1;return T}var $t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function Dr(T){var k=this._longDateFormat[T],M=this._longDateFormat[T.toUpperCase()];return k||!M?k:(this._longDateFormat[T]=M.match(Oe).map(function(W){return W==="MMMM"||W==="MM"||W==="DD"||W==="dddd"?W.slice(1):W}).join(""),this._longDateFormat[T])}var ar="Invalid date";function tr(){return this._invalidDate}var P="%d",Xt=/\d{1,2}/;function lr(T){return this._ordinal.replace("%d",T)}var Bn={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function Pt(T,k,M,W){var ee=this._relativeTime[M];return gt(ee)?ee(T,k,M,W):ee.replace(/%d/i,T)}function _t(T,k){var M=this._relativeTime[T>0?"future":"past"];return gt(M)?M(k):M.replace(/%s/i,k)}var Yt={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function me(T){return typeof T=="string"?Yt[T]||Yt[T.toLowerCase()]:void 0}function ze(T){var k={},M,W;for(W in T)r(T,W)&&(M=me(W),M&&(k[M]=T[W]));return k}var kt={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function Ht(T){var k=[],M;for(M in T)r(T,M)&&k.push({unit:M,priority:kt[M]});return k.sort(function(W,ee){return W.priority-ee.priority}),k}var Rr=/\d/,Lr=/\d\d/,Rn=/\d{3}/,kn=/\d{4}/,Vn=/[+-]?\d{6}/,dn=/\d\d?/,wo=/\d\d\d\d?/,Bo=/\d\d\d\d\d\d?/,Yi=/\d{1,3}/,bo=/\d{1,4}/,_u=/[+-]?\d{1,6}/,Da=/\d+/,Xe=/[+-]?\d+/,wt=/Z|[+-]\d\d:?\d\d/gi,vt=/Z|[+-]\d\d(?::?\d\d)?/gi,jt=/[+-]?\d+(\.\d{1,3})?/,Pr=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,dr=/^[1-9]\d?/,Tn=/^([1-9]\d|\d)/,li;li={};function bt(T,k,M){li[T]=gt(k)?k:function(W,ee){return W&&M?M:k}}function gi(T,k){return r(li,T)?li[T](k._strict,k._locale):new RegExp(ls(T))}function ls(T){return vi(T.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(k,M,W,ee,be){return M||W||ee||be}))}function vi(T){return T.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ci(T){return T<0?Math.ceil(T)||0:Math.floor(T)}function Kr(T){var k=+T,M=0;return k!==0&&isFinite(k)&&(M=ci(k)),M}var As={};function En(T,k){var M,W=k,ee;for(typeof T=="string"&&(T=[T]),y(k)&&(W=function(be,ft){ft[k]=Kr(be)}),ee=T.length,M=0;M<ee;M++)As[T[M]]=W}function rs(T,k){En(T,function(M,W,ee,be){ee._w=ee._w||{},k(M,ee._w,ee,be)})}function Su(T,k,M){k!=null&&r(As,T)&&As[T](k,M._a,M,T)}function Bs(T){return T%4===0&&T%100!==0||T%400===0}var Zt=0,co=1,Ws=2,cs=3,fo=4,zs=5,Ts=6,Pl=7,za=8;at("Y",0,0,function(){var T=this.year();return T<=9999?we(T,4):"+"+T}),at(0,["YY",2],0,function(){return this.year()%100}),at(0,["YYYY",4],0,"year"),at(0,["YYYYY",5],0,"year"),at(0,["YYYYYY",6,!0],0,"year"),bt("Y",Xe),bt("YY",dn,Lr),bt("YYYY",bo,kn),bt("YYYYY",_u,Vn),bt("YYYYYY",_u,Vn),En(["YYYYY","YYYYYY"],Zt),En("YYYY",function(T,k){k[Zt]=T.length===2?e.parseTwoDigitYear(T):Kr(T)}),En("YY",function(T,k){k[Zt]=e.parseTwoDigitYear(T)}),En("Y",function(T,k){k[Zt]=parseInt(T,10)});function pa(T){return Bs(T)?366:365}e.parseTwoDigitYear=function(T){return Kr(T)+(Kr(T)>68?1900:2e3)};var Tu=zr("FullYear",!0);function ac(){return Bs(this.year())}function zr(T,k){return function(M){return M!=null?(Dl(this,T,M),e.updateOffset(this,k),this):Ku(this,T)}}function Ku(T,k){if(!T.isValid())return NaN;var M=T._d,W=T._isUTC;switch(k){case"Milliseconds":return W?M.getUTCMilliseconds():M.getMilliseconds();case"Seconds":return W?M.getUTCSeconds():M.getSeconds();case"Minutes":return W?M.getUTCMinutes():M.getMinutes();case"Hours":return W?M.getUTCHours():M.getHours();case"Date":return W?M.getUTCDate():M.getDate();case"Day":return W?M.getUTCDay():M.getDay();case"Month":return W?M.getUTCMonth():M.getMonth();case"FullYear":return W?M.getUTCFullYear():M.getFullYear();default:return NaN}}function Dl(T,k,M){var W,ee,be,ft,ir;if(!(!T.isValid()||isNaN(M))){switch(W=T._d,ee=T._isUTC,k){case"Milliseconds":return void(ee?W.setUTCMilliseconds(M):W.setMilliseconds(M));case"Seconds":return void(ee?W.setUTCSeconds(M):W.setSeconds(M));case"Minutes":return void(ee?W.setUTCMinutes(M):W.setMinutes(M));case"Hours":return void(ee?W.setUTCHours(M):W.setHours(M));case"Date":return void(ee?W.setUTCDate(M):W.setDate(M));case"FullYear":break;default:return}be=M,ft=T.month(),ir=T.date(),ir=ir===29&&ft===1&&!Bs(be)?28:ir,ee?W.setUTCFullYear(be,ft,ir):W.setFullYear(be,ft,ir)}}function Ga(T){return T=me(T),gt(this[T])?this[T]():this}function Ki(T,k){if(typeof T=="object"){T=ze(T);var M=Ht(T),W,ee=M.length;for(W=0;W<ee;W++)this[M[W].unit](T[M[W].unit])}else if(T=me(T),gt(this[T]))return this[T](k);return this}function Li(T,k){return(T%k+k)%k}var Pi;Array.prototype.indexOf?Pi=Array.prototype.indexOf:Pi=function(T){var k;for(k=0;k<this.length;++k)if(this[k]===T)return k;return-1};function ks(T,k){if(isNaN(T)||isNaN(k))return NaN;var M=Li(k,12);return T+=(k-M)/12,M===1?Bs(T)?29:28:31-M%7%2}at("M",["MM",2],"Mo",function(){return this.month()+1}),at("MMM",0,0,function(T){return this.localeData().monthsShort(this,T)}),at("MMMM",0,0,function(T){return this.localeData().months(this,T)}),bt("M",dn,dr),bt("MM",dn,Lr),bt("MMM",function(T,k){return k.monthsShortRegex(T)}),bt("MMMM",function(T,k){return k.monthsRegex(T)}),En(["M","MM"],function(T,k){k[co]=Kr(T)-1}),En(["MMM","MMMM"],function(T,k,M,W){var ee=M._locale.monthsParse(T,W,M._strict);ee!=null?k[co]=ee:v(M).invalidMonth=T});var po="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),da="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),jo=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,ho=Pr,uc=Pr;function i0(T,k){return T?o(this._months)?this._months[T.month()]:this._months[(this._months.isFormat||jo).test(k)?"format":"standalone"][T.month()]:o(this._months)?this._months:this._months.standalone}function Xc(T,k){return T?o(this._monthsShort)?this._monthsShort[T.month()]:this._monthsShort[jo.test(k)?"format":"standalone"][T.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function lc(T,k,M){var W,ee,be,ft=T.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],W=0;W<12;++W)be=A([2e3,W]),this._shortMonthsParse[W]=this.monthsShort(be,"").toLocaleLowerCase(),this._longMonthsParse[W]=this.months(be,"").toLocaleLowerCase();return M?k==="MMM"?(ee=Pi.call(this._shortMonthsParse,ft),ee!==-1?ee:null):(ee=Pi.call(this._longMonthsParse,ft),ee!==-1?ee:null):k==="MMM"?(ee=Pi.call(this._shortMonthsParse,ft),ee!==-1?ee:(ee=Pi.call(this._longMonthsParse,ft),ee!==-1?ee:null)):(ee=Pi.call(this._longMonthsParse,ft),ee!==-1?ee:(ee=Pi.call(this._shortMonthsParse,ft),ee!==-1?ee:null))}function Zo(T,k,M){var W,ee,be;if(this._monthsParseExact)return lc.call(this,T,k,M);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),W=0;W<12;W++){if(ee=A([2e3,W]),M&&!this._longMonthsParse[W]&&(this._longMonthsParse[W]=new RegExp("^"+this.months(ee,"").replace(".","")+"$","i"),this._shortMonthsParse[W]=new RegExp("^"+this.monthsShort(ee,"").replace(".","")+"$","i")),!M&&!this._monthsParse[W]&&(be="^"+this.months(ee,"")+"|^"+this.monthsShort(ee,""),this._monthsParse[W]=new RegExp(be.replace(".",""),"i")),M&&k==="MMMM"&&this._longMonthsParse[W].test(T))return W;if(M&&k==="MMM"&&this._shortMonthsParse[W].test(T))return W;if(!M&&this._monthsParse[W].test(T))return W}}function At(T,k){if(!T.isValid())return T;if(typeof k=="string"){if(/^\d+$/.test(k))k=Kr(k);else if(k=T.localeData().monthsParse(k),!y(k))return T}var M=k,W=T.date();return W=W<29?W:Math.min(W,ks(T.year(),M)),T._isUTC?T._d.setUTCMonth(M,W):T._d.setMonth(M,W),T}function Ya(T){return T!=null?(At(this,T),e.updateOffset(this,!0),this):Ku(this,"Month")}function s0(){return ks(this.year(),this.month())}function Zc(T){return this._monthsParseExact?(r(this,"_monthsRegex")||Ju.call(this),T?this._monthsShortStrictRegex:this._monthsShortRegex):(r(this,"_monthsShortRegex")||(this._monthsShortRegex=ho),this._monthsShortStrictRegex&&T?this._monthsShortStrictRegex:this._monthsShortRegex)}function Ui(T){return this._monthsParseExact?(r(this,"_monthsRegex")||Ju.call(this),T?this._monthsStrictRegex:this._monthsRegex):(r(this,"_monthsRegex")||(this._monthsRegex=uc),this._monthsStrictRegex&&T?this._monthsStrictRegex:this._monthsRegex)}function Ju(){function T(rn,ti){return ti.length-rn.length}var k=[],M=[],W=[],ee,be,ft,ir;for(ee=0;ee<12;ee++)be=A([2e3,ee]),ft=vi(this.monthsShort(be,"")),ir=vi(this.months(be,"")),k.push(ft),M.push(ir),W.push(ir),W.push(ft);k.sort(T),M.sort(T),W.sort(T),this._monthsRegex=new RegExp("^("+W.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+M.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+k.join("|")+")","i")}function Gd(T,k,M,W,ee,be,ft){var ir;return T<100&&T>=0?(ir=new Date(T+400,k,M,W,ee,be,ft),isFinite(ir.getFullYear())&&ir.setFullYear(T)):ir=new Date(T,k,M,W,ee,be,ft),ir}function Uf(T){var k,M;return T<100&&T>=0?(M=Array.prototype.slice.call(arguments),M[0]=T+400,k=new Date(Date.UTC.apply(null,M)),isFinite(k.getUTCFullYear())&&k.setUTCFullYear(T)):k=new Date(Date.UTC.apply(null,arguments)),k}function Cl(T,k,M){var W=7+k-M,ee=(7+Uf(T,0,W).getUTCDay()-k)%7;return-ee+W-1}function Vp(T,k,M,W,ee){var be=(7+M-W)%7,ft=Cl(T,W,ee),ir=1+7*(k-1)+be+ft,rn,ti;return ir<=0?(rn=T-1,ti=pa(rn)+ir):ir>pa(T)?(rn=T+1,ti=ir-pa(T)):(rn=T,ti=ir),{year:rn,dayOfYear:ti}}function Kt(T,k,M){var W=Cl(T.year(),k,M),ee=Math.floor((T.dayOfYear()-W-1)/7)+1,be,ft;return ee<1?(ft=T.year()-1,be=ee+Di(ft,k,M)):ee>Di(T.year(),k,M)?(be=ee-Di(T.year(),k,M),ft=T.year()+1):(ft=T.year(),be=ee),{week:be,year:ft}}function Di(T,k,M){var W=Cl(T,k,M),ee=Cl(T+1,k,M);return(pa(T)-W+ee)/7}at("w",["ww",2],"wo","week"),at("W",["WW",2],"Wo","isoWeek"),bt("w",dn,dr),bt("ww",dn,Lr),bt("W",dn,dr),bt("WW",dn,Lr),rs(["w","ww","W","WW"],function(T,k,M,W){k[W.substr(0,1)]=Kr(T)});function Wp(T){return Kt(T,this._week.dow,this._week.doy).week}var cc={dow:0,doy:6};function Ka(){return this._week.dow}function $f(){return this._week.doy}function o0(T){var k=this.localeData().week(this);return T==null?k:this.add((T-k)*7,"d")}function Yd(T){var k=Kt(this,1,4).week;return T==null?k:this.add((T-k)*7,"d")}at("d",0,"do","day"),at("dd",0,0,function(T){return this.localeData().weekdaysMin(this,T)}),at("ddd",0,0,function(T){return this.localeData().weekdaysShort(this,T)}),at("dddd",0,0,function(T){return this.localeData().weekdays(this,T)}),at("e",0,0,"weekday"),at("E",0,0,"isoWeekday"),bt("d",dn),bt("e",dn),bt("E",dn),bt("dd",function(T,k){return k.weekdaysMinRegex(T)}),bt("ddd",function(T,k){return k.weekdaysShortRegex(T)}),bt("dddd",function(T,k){return k.weekdaysRegex(T)}),rs(["dd","ddd","dddd"],function(T,k,M,W){var ee=M._locale.weekdaysParse(T,W,M._strict);ee!=null?k.d=ee:v(M).invalidWeekday=T}),rs(["d","e","E"],function(T,k,M,W){k[W]=Kr(T)});function a0(T,k){return typeof T!="string"?T:isNaN(T)?(T=k.weekdaysParse(T),typeof T=="number"?T:null):parseInt(T,10)}function ha(T,k){return typeof T=="string"?k.weekdaysParse(T)%7||7:isNaN(T)?null:T}function ma(T,k){return T.slice(k,7).concat(T.slice(0,k))}var Kd="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Jd="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Qc="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),qo=Pr,ef=Pr,ya=Pr;function Al(T,k){var M=o(this._weekdays)?this._weekdays:this._weekdays[T&&T!==!0&&this._weekdays.isFormat.test(k)?"format":"standalone"];return T===!0?ma(M,this._week.dow):T?M[T.day()]:M}function Ja(T){return T===!0?ma(this._weekdaysShort,this._week.dow):T?this._weekdaysShort[T.day()]:this._weekdaysShort}function Eu(T){return T===!0?ma(this._weekdaysMin,this._week.dow):T?this._weekdaysMin[T.day()]:this._weekdaysMin}function Xu(T,k,M){var W,ee,be,ft=T.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],W=0;W<7;++W)be=A([2e3,1]).day(W),this._minWeekdaysParse[W]=this.weekdaysMin(be,"").toLocaleLowerCase(),this._shortWeekdaysParse[W]=this.weekdaysShort(be,"").toLocaleLowerCase(),this._weekdaysParse[W]=this.weekdays(be,"").toLocaleLowerCase();return M?k==="dddd"?(ee=Pi.call(this._weekdaysParse,ft),ee!==-1?ee:null):k==="ddd"?(ee=Pi.call(this._shortWeekdaysParse,ft),ee!==-1?ee:null):(ee=Pi.call(this._minWeekdaysParse,ft),ee!==-1?ee:null):k==="dddd"?(ee=Pi.call(this._weekdaysParse,ft),ee!==-1||(ee=Pi.call(this._shortWeekdaysParse,ft),ee!==-1)?ee:(ee=Pi.call(this._minWeekdaysParse,ft),ee!==-1?ee:null)):k==="ddd"?(ee=Pi.call(this._shortWeekdaysParse,ft),ee!==-1||(ee=Pi.call(this._weekdaysParse,ft),ee!==-1)?ee:(ee=Pi.call(this._minWeekdaysParse,ft),ee!==-1?ee:null)):(ee=Pi.call(this._minWeekdaysParse,ft),ee!==-1||(ee=Pi.call(this._weekdaysParse,ft),ee!==-1)?ee:(ee=Pi.call(this._shortWeekdaysParse,ft),ee!==-1?ee:null))}function Zu(T,k,M){var W,ee,be;if(this._weekdaysParseExact)return Xu.call(this,T,k,M);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),W=0;W<7;W++){if(ee=A([2e3,1]).day(W),M&&!this._fullWeekdaysParse[W]&&(this._fullWeekdaysParse[W]=new RegExp("^"+this.weekdays(ee,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[W]=new RegExp("^"+this.weekdaysShort(ee,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[W]=new RegExp("^"+this.weekdaysMin(ee,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[W]||(be="^"+this.weekdays(ee,"")+"|^"+this.weekdaysShort(ee,"")+"|^"+this.weekdaysMin(ee,""),this._weekdaysParse[W]=new RegExp(be.replace(".",""),"i")),M&&k==="dddd"&&this._fullWeekdaysParse[W].test(T))return W;if(M&&k==="ddd"&&this._shortWeekdaysParse[W].test(T))return W;if(M&&k==="dd"&&this._minWeekdaysParse[W].test(T))return W;if(!M&&this._weekdaysParse[W].test(T))return W}}function ys(T){if(!this.isValid())return T!=null?this:NaN;var k=Ku(this,"Day");return T!=null?(T=a0(T,this.localeData()),this.add(T-k,"d")):k}function hn(T){if(!this.isValid())return T!=null?this:NaN;var k=(this.day()+7-this.localeData()._week.dow)%7;return T==null?k:this.add(T-k,"d")}function wu(T){if(!this.isValid())return T!=null?this:NaN;if(T!=null){var k=ha(T,this.localeData());return this.day(this.day()%7?k:k-7)}else return this.day()||7}function Xd(T){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||pc.call(this),T?this._weekdaysStrictRegex:this._weekdaysRegex):(r(this,"_weekdaysRegex")||(this._weekdaysRegex=qo),this._weekdaysStrictRegex&&T?this._weekdaysStrictRegex:this._weekdaysRegex)}function Is(T){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||pc.call(this),T?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(r(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ef),this._weekdaysShortStrictRegex&&T?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function fc(T){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||pc.call(this),T?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(r(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=ya),this._weekdaysMinStrictRegex&&T?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function pc(){function T(Vo,Ra){return Ra.length-Vo.length}var k=[],M=[],W=[],ee=[],be,ft,ir,rn,ti;for(be=0;be<7;be++)ft=A([2e3,1]).day(be),ir=vi(this.weekdaysMin(ft,"")),rn=vi(this.weekdaysShort(ft,"")),ti=vi(this.weekdays(ft,"")),k.push(ir),M.push(rn),W.push(ti),ee.push(ir),ee.push(rn),ee.push(ti);k.sort(T),M.sort(T),W.sort(T),ee.sort(T),this._weekdaysRegex=new RegExp("^("+ee.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+W.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+M.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+k.join("|")+")","i")}function ga(){return this.hours()%12||12}function tf(){return this.hours()||24}at("H",["HH",2],0,"hour"),at("h",["hh",2],0,ga),at("k",["kk",2],0,tf),at("hmm",0,0,function(){return""+ga.apply(this)+we(this.minutes(),2)}),at("hmmss",0,0,function(){return""+ga.apply(this)+we(this.minutes(),2)+we(this.seconds(),2)}),at("Hmm",0,0,function(){return""+this.hours()+we(this.minutes(),2)}),at("Hmmss",0,0,function(){return""+this.hours()+we(this.minutes(),2)+we(this.seconds(),2)});function mo(T,k){at(T,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),k)})}mo("a",!0),mo("A",!1);function rf(T,k){return k._meridiemParse}bt("a",rf),bt("A",rf),bt("H",dn,Tn),bt("h",dn,dr),bt("k",dn,dr),bt("HH",dn,Lr),bt("hh",dn,Lr),bt("kk",dn,Lr),bt("hmm",wo),bt("hmmss",Bo),bt("Hmm",wo),bt("Hmmss",Bo),En(["H","HH"],cs),En(["k","kk"],function(T,k,M){var W=Kr(T);k[cs]=W===24?0:W}),En(["a","A"],function(T,k,M){M._isPm=M._locale.isPM(T),M._meridiem=T}),En(["h","hh"],function(T,k,M){k[cs]=Kr(T),v(M).bigHour=!0}),En("hmm",function(T,k,M){var W=T.length-2;k[cs]=Kr(T.substr(0,W)),k[fo]=Kr(T.substr(W)),v(M).bigHour=!0}),En("hmmss",function(T,k,M){var W=T.length-4,ee=T.length-2;k[cs]=Kr(T.substr(0,W)),k[fo]=Kr(T.substr(W,2)),k[zs]=Kr(T.substr(ee)),v(M).bigHour=!0}),En("Hmm",function(T,k,M){var W=T.length-2;k[cs]=Kr(T.substr(0,W)),k[fo]=Kr(T.substr(W))}),En("Hmmss",function(T,k,M){var W=T.length-4,ee=T.length-2;k[cs]=Kr(T.substr(0,W)),k[fo]=Kr(T.substr(W,2)),k[zs]=Kr(T.substr(ee))});function Zd(T){return(T+"").toLowerCase().charAt(0)==="p"}var Ca=/[ap]\.?m?\.?/i,Qo=zr("Hours",!0);function nf(T,k,M){return T>11?M?"pm":"PM":M?"am":"AM"}var kl={calendar:Ke,longDateFormat:$t,invalidDate:ar,ordinal:P,dayOfMonthOrdinalParse:Xt,relativeTime:Bn,months:po,monthsShort:da,week:cc,weekdays:Kd,weekdaysMin:Qc,weekdaysShort:Jd,meridiemParse:Ca},ns={},js={},bu;function Hf(T,k){var M,W=Math.min(T.length,k.length);for(M=0;M<W;M+=1)if(T[M]!==k[M])return M;return W}function Xa(T){return T&&T.toLowerCase().replace("_","-")}function Il(T){for(var k=0,M,W,ee,be;k<T.length;){for(be=Xa(T[k]).split("-"),M=be.length,W=Xa(T[k+1]),W=W?W.split("-"):null;M>0;){if(ee=Q(be.slice(0,M).join("-")),ee)return ee;if(W&&W.length>=M&&Hf(be,W)>=M-1)break;M--}k++}return bu}function ie(T){return!!(T&&T.match("^[^/\\\\]*$"))}function Q(T){var k=null,M;if(ns[T]===void 0&&typeof u2<"u"&&u2&&u2.exports&&ie(T))try{k=bu._abbr,M=require,M("./locale/"+T),ne(k)}catch{ns[T]=null}return ns[T]}function ne(T,k){var M;return T&&(p(k)?M=Ge(T):M=ke(T,k),M?bu=M:typeof console<"u"&&console.warn&&console.warn("Locale "+T+" not found. Did you forget to load it?")),bu._abbr}function ke(T,k){if(k!==null){var M,W=kl;if(k.abbr=T,ns[T]!=null)Ct("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),W=ns[T]._config;else if(k.parentLocale!=null)if(ns[k.parentLocale]!=null)W=ns[k.parentLocale]._config;else if(M=Q(k.parentLocale),M!=null)W=M._config;else return js[k.parentLocale]||(js[k.parentLocale]=[]),js[k.parentLocale].push({name:T,config:k}),null;return ns[T]=new oe(qe(W,k)),js[T]&&js[T].forEach(function(ee){ke(ee.name,ee.config)}),ne(T),ns[T]}else return delete ns[T],null}function Ze(T,k){if(k!=null){var M,W,ee=kl;ns[T]!=null&&ns[T].parentLocale!=null?ns[T].set(qe(ns[T]._config,k)):(W=Q(T),W!=null&&(ee=W._config),k=qe(ee,k),W==null&&(k.abbr=T),M=new oe(k),M.parentLocale=ns[T],ns[T]=M),ne(T)}else ns[T]!=null&&(ns[T].parentLocale!=null?(ns[T]=ns[T].parentLocale,T===ne()&&ne(T)):ns[T]!=null&&delete ns[T]);return ns[T]}function Ge(T){var k;if(T&&T._locale&&T._locale._abbr&&(T=T._locale._abbr),!T)return bu;if(!o(T)){if(k=Q(T),k)return k;T=[T]}return Il(T)}function lt(){return Ae(ns)}function pt(T){var k,M=T._a;return M&&v(T).overflow===-2&&(k=M[co]<0||M[co]>11?co:M[Ws]<1||M[Ws]>ks(M[Zt],M[co])?Ws:M[cs]<0||M[cs]>24||M[cs]===24&&(M[fo]!==0||M[zs]!==0||M[Ts]!==0)?cs:M[fo]<0||M[fo]>59?fo:M[zs]<0||M[zs]>59?zs:M[Ts]<0||M[Ts]>999?Ts:-1,v(T)._overflowDayOfYear&&(k<Zt||k>Ws)&&(k=Ws),v(T)._overflowWeeks&&k===-1&&(k=Pl),v(T)._overflowWeekday&&k===-1&&(k=za),v(T).overflow=k),T}var It=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,hr=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,vn=/Z|[+-]\d\d(?::?\d\d)?/,Wn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],wn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],va=/^\/?Date\((-?\d+)/i,dc=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,ea={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function yo(T){var k,M,W=T._i,ee=It.exec(W)||hr.exec(W),be,ft,ir,rn,ti=Wn.length,Vo=wn.length;if(ee){for(v(T).iso=!0,k=0,M=ti;k<M;k++)if(Wn[k][1].exec(ee[1])){ft=Wn[k][0],be=Wn[k][2]!==!1;break}if(ft==null){T._isValid=!1;return}if(ee[3]){for(k=0,M=Vo;k<M;k++)if(wn[k][1].exec(ee[3])){ir=(ee[2]||" ")+wn[k][0];break}if(ir==null){T._isValid=!1;return}}if(!be&&ir!=null){T._isValid=!1;return}if(ee[4])if(vn.exec(ee[4]))rn="Z";else{T._isValid=!1;return}T._f=ft+(ir||"")+(rn||""),Po(T)}else T._isValid=!1}function Zn(T,k,M,W,ee,be){var ft=[Jr(T),da.indexOf(k),parseInt(M,10),parseInt(W,10),parseInt(ee,10)];return be&&ft.push(parseInt(be,10)),ft}function Jr(T){var k=parseInt(T,10);return k<=49?2e3+k:k<=999?1900+k:k}function Cr(T){return T.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function Gr(T,k,M){if(T){var W=Jd.indexOf(T),ee=new Date(k[0],k[1],k[2]).getDay();if(W!==ee)return v(M).weekdayMismatch=!0,M._isValid=!1,!1}return!0}function zn(T,k,M){if(T)return ea[T];if(k)return 0;var W=parseInt(M,10),ee=W%100,be=(W-ee)/100;return be*60+ee}function _i(T){var k=dc.exec(Cr(T._i)),M;if(k){if(M=Zn(k[4],k[3],k[2],k[5],k[6],k[7]),!Gr(k[1],M,T))return;T._a=M,T._tzm=zn(k[8],k[9],k[10]),T._d=Uf.apply(null,T._a),T._d.setUTCMinutes(T._d.getUTCMinutes()-T._tzm),v(T).rfc2822=!0}else T._isValid=!1}function Os(T){var k=va.exec(T._i);if(k!==null){T._d=new Date(+k[1]);return}if(yo(T),T._isValid===!1)delete T._isValid;else return;if(_i(T),T._isValid===!1)delete T._isValid;else return;T._strict?T._isValid=!1:e.createFromInputFallback(T)}e.createFromInputFallback=tt("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(T){T._d=new Date(T._i+(T._useUTC?" UTC":""))});function no(T,k,M){return T!=null?T:k!=null?k:M}function Qu(T){var k=new Date(e.now());return T._useUTC?[k.getUTCFullYear(),k.getUTCMonth(),k.getUTCDate()]:[k.getFullYear(),k.getMonth(),k.getDate()]}function qs(T){var k,M,W=[],ee,be,ft;if(!T._d){for(ee=Qu(T),T._w&&T._a[Ws]==null&&T._a[co]==null&&xa(T),T._dayOfYear!=null&&(ft=no(T._a[Zt],ee[Zt]),(T._dayOfYear>pa(ft)||T._dayOfYear===0)&&(v(T)._overflowDayOfYear=!0),M=Uf(ft,0,T._dayOfYear),T._a[co]=M.getUTCMonth(),T._a[Ws]=M.getUTCDate()),k=0;k<3&&T._a[k]==null;++k)T._a[k]=W[k]=ee[k];for(;k<7;k++)T._a[k]=W[k]=T._a[k]==null?k===2?1:0:T._a[k];T._a[cs]===24&&T._a[fo]===0&&T._a[zs]===0&&T._a[Ts]===0&&(T._nextDay=!0,T._a[cs]=0),T._d=(T._useUTC?Uf:Gd).apply(null,W),be=T._useUTC?T._d.getUTCDay():T._d.getDay(),T._tzm!=null&&T._d.setUTCMinutes(T._d.getUTCMinutes()-T._tzm),T._nextDay&&(T._a[cs]=24),T._w&&typeof T._w.d<"u"&&T._w.d!==be&&(v(T).weekdayMismatch=!0)}}function xa(T){var k,M,W,ee,be,ft,ir,rn,ti;k=T._w,k.GG!=null||k.W!=null||k.E!=null?(be=1,ft=4,M=no(k.GG,T._a[Zt],Kt(mn(),1,4).year),W=no(k.W,1),ee=no(k.E,1),(ee<1||ee>7)&&(rn=!0)):(be=T._locale._week.dow,ft=T._locale._week.doy,ti=Kt(mn(),be,ft),M=no(k.gg,T._a[Zt],ti.year),W=no(k.w,ti.week),k.d!=null?(ee=k.d,(ee<0||ee>6)&&(rn=!0)):k.e!=null?(ee=k.e+be,(k.e<0||k.e>6)&&(rn=!0)):ee=be),W<1||W>Di(M,be,ft)?v(T)._overflowWeeks=!0:rn!=null?v(T)._overflowWeekday=!0:(ir=Vp(M,W,ee,be,ft),T._a[Zt]=ir.year,T._dayOfYear=ir.dayOfYear)}e.ISO_8601=function(){},e.RFC_2822=function(){};function Po(T){if(T._f===e.ISO_8601){yo(T);return}if(T._f===e.RFC_2822){_i(T);return}T._a=[],v(T).empty=!0;var k=""+T._i,M,W,ee,be,ft,ir=k.length,rn=0,ti,Vo;for(ee=st(T._f,T._locale).match(Oe)||[],Vo=ee.length,M=0;M<Vo;M++)be=ee[M],W=(k.match(gi(be,T))||[])[0],W&&(ft=k.substr(0,k.indexOf(W)),ft.length>0&&v(T).unusedInput.push(ft),k=k.slice(k.indexOf(W)+W.length),rn+=W.length),er[be]?(W?v(T).empty=!1:v(T).unusedTokens.push(be),Su(be,W,T)):T._strict&&!W&&v(T).unusedTokens.push(be);v(T).charsLeftOver=ir-rn,k.length>0&&v(T).unusedInput.push(k),T._a[cs]<=12&&v(T).bigHour===!0&&T._a[cs]>0&&(v(T).bigHour=void 0),v(T).parsedDateParts=T._a.slice(0),v(T).meridiem=T._meridiem,T._a[cs]=hc(T._locale,T._a[cs],T._meridiem),ti=v(T).era,ti!==null&&(T._a[Zt]=T._locale.erasConvertYear(ti,T._a[Zt])),qs(T),pt(T)}function hc(T,k,M){var W;return M==null?k:T.meridiemHour!=null?T.meridiemHour(k,M):(T.isPM!=null&&(W=T.isPM(M),W&&k<12&&(k+=12),!W&&k===12&&(k=0)),k)}function sf(T){var k,M,W,ee,be,ft,ir=!1,rn=T._f.length;if(rn===0){v(T).invalidFormat=!0,T._d=new Date(NaN);return}for(ee=0;ee<rn;ee++)be=0,ft=!1,k=de({},T),T._useUTC!=null&&(k._useUTC=T._useUTC),k._f=T._f[ee],Po(k),$(k)&&(ft=!0),be+=v(k).charsLeftOver,be+=v(k).unusedTokens.length*10,v(k).score=be,ir?be<W&&(W=be,M=k):(W==null||be<W||ft)&&(W=be,M=k,ft&&(ir=!0));C(T,M||k)}function Pu(T){if(!T._d){var k=ze(T._i),M=k.day===void 0?k.date:k.day;T._a=S([k.year,k.month,M,k.hour,k.minute,k.second,k.millisecond],function(W){return W&&parseInt(W,10)}),qs(T)}}function of(T){var k=new ye(pt(Do(T)));return k._nextDay&&(k.add(1,"d"),k._nextDay=void 0),k}function Do(T){var k=T._i,M=T._f;return T._locale=T._locale||Ge(T._l),k===null||M===void 0&&k===""?j({nullInput:!0}):(typeof k=="string"&&(T._i=k=T._locale.preparse(k)),Fe(k)?new ye(pt(k)):(m(k)?T._d=k:o(M)?sf(T):M?Po(T):Ci(T),$(T)||(T._d=null),T))}function Ci(T){var k=T._i;p(k)?T._d=new Date(e.now()):m(k)?T._d=new Date(k.valueOf()):typeof k=="string"?Os(T):o(k)?(T._a=S(k.slice(0),function(M){return parseInt(M,10)}),qs(T)):u(k)?Pu(T):y(k)?T._d=new Date(k):e.createFromInputFallback(T)}function Qd(T,k,M,W,ee){var be={};return(k===!0||k===!1)&&(W=k,k=void 0),(M===!0||M===!1)&&(W=M,M=void 0),(u(T)&&f(T)||o(T)&&T.length===0)&&(T=void 0),be._isAMomentObject=!0,be._useUTC=be._isUTC=ee,be._l=M,be._i=T,be._f=k,be._strict=W,of(be)}function mn(T,k,M,W){return Qd(T,k,M,W,!1)}var eh=tt("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var T=mn.apply(null,arguments);return this.isValid()&&T.isValid()?T<this?this:T:j()}),Co=tt("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var T=mn.apply(null,arguments);return this.isValid()&&T.isValid()?T>this?this:T:j()});function Jn(T,k){var M,W;if(k.length===1&&o(k[0])&&(k=k[0]),!k.length)return mn();for(M=k[0],W=1;W<k.length;++W)(!k[W].isValid()||k[W][T](M))&&(M=k[W]);return M}function Aa(){var T=[].slice.call(arguments,0);return Jn("isBefore",T)}function zp(){var T=[].slice.call(arguments,0);return Jn("isAfter",T)}var Vf=function(){return Date.now?Date.now():+new Date},Wf=["year","quarter","month","week","day","hour","minute","second","millisecond"];function vg(T){var k,M=!1,W,ee=Wf.length;for(k in T)if(r(T,k)&&!(Pi.call(Wf,k)!==-1&&(T[k]==null||!isNaN(T[k]))))return!1;for(W=0;W<ee;++W)if(T[Wf[W]]){if(M)return!1;parseFloat(T[Wf[W]])!==Kr(T[Wf[W]])&&(M=!0)}return!0}function Gp(){return this._isValid}function u0(){return io(NaN)}function el(T){var k=ze(T),M=k.year||0,W=k.quarter||0,ee=k.month||0,be=k.week||k.isoWeek||0,ft=k.day||0,ir=k.hour||0,rn=k.minute||0,ti=k.second||0,Vo=k.millisecond||0;this._isValid=vg(k),this._milliseconds=+Vo+ti*1e3+rn*6e4+ir*1e3*60*60,this._days=+ft+be*7,this._months=+ee+W*3+M*12,this._data={},this._locale=Ge(),this._bubble()}function Sa(T){return T instanceof el}function Ol(T){return T<0?Math.round(-1*T)*-1:Math.round(T)}function ka(T,k,M){var W=Math.min(T.length,k.length),ee=Math.abs(T.length-k.length),be=0,ft;for(ft=0;ft<W;ft++)(M&&T[ft]!==k[ft]||!M&&Kr(T[ft])!==Kr(k[ft]))&&be++;return be+ee}function af(T,k){at(T,0,0,function(){var M=this.utcOffset(),W="+";return M<0&&(M=-M,W="-"),W+we(~~(M/60),2)+k+we(~~M%60,2)})}af("Z",":"),af("ZZ",""),bt("Z",vt),bt("ZZ",vt),En(["Z","ZZ"],function(T,k,M){M._useUTC=!0,M._tzm=go(vt,T)});var Ns=/([\+\-]|\d\d)/gi;function go(T,k){var M=(k||"").match(T),W,ee,be;return M===null?null:(W=M[M.length-1]||[],ee=(W+"").match(Ns)||["-",0,0],be=+(ee[1]*60)+Kr(ee[2]),be===0?0:ee[0]==="+"?be:-be)}function Us(T,k){var M,W;return k._isUTC?(M=k.clone(),W=(Fe(T)||m(T)?T.valueOf():mn(T).valueOf())-M.valueOf(),M._d.setTime(M._d.valueOf()+W),e.updateOffset(M,!1),M):mn(T).local()}function tl(T){return-Math.round(T._d.getTimezoneOffset())}e.updateOffset=function(){};function zf(T,k,M){var W=this._offset||0,ee;if(!this.isValid())return T!=null?this:NaN;if(T!=null){if(typeof T=="string"){if(T=go(vt,T),T===null)return this}else Math.abs(T)<16&&!M&&(T=T*60);return!this._isUTC&&k&&(ee=tl(this)),this._offset=T,this._isUTC=!0,ee!=null&&this.add(ee,"m"),W!==T&&(!k||this._changeInProgress?ra(this,io(T-W,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this}else return this._isUTC?W:tl(this)}function fi(T,k){return T!=null?(typeof T!="string"&&(T=-T),this.utcOffset(T,k),this):-this.utcOffset()}function l0(T){return this.utcOffset(0,T)}function c0(T){return this._isUTC&&(this.utcOffset(0,T),this._isUTC=!1,T&&this.subtract(tl(this),"m")),this}function Uo(){if(this._tzm!=null)this.utcOffset(this._tzm,!1,!0);else if(typeof this._i=="string"){var T=go(wt,this._i);T!=null?this.utcOffset(T):this.utcOffset(0,!0)}return this}function ta(T){return this.isValid()?(T=T?mn(T).utcOffset():0,(this.utcOffset()-T)%60===0):!1}function Ia(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function mc(){if(!p(this._isDSTShifted))return this._isDSTShifted;var T={},k;return de(T,this),T=Do(T),T._a?(k=T._isUTC?A(T._a):mn(T._a),this._isDSTShifted=this.isValid()&&ka(T._a,k.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function yc(){return this.isValid()?!this._isUTC:!1}function gc(){return this.isValid()?this._isUTC:!1}function pi(){return this.isValid()?this._isUTC&&this._offset===0:!1}var Du=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,vc=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function io(T,k){var M=T,W=null,ee,be,ft;return Sa(T)?M={ms:T._milliseconds,d:T._days,M:T._months}:y(T)||!isNaN(+T)?(M={},k?M[k]=+T:M.milliseconds=+T):(W=Du.exec(T))?(ee=W[1]==="-"?-1:1,M={y:0,d:Kr(W[Ws])*ee,h:Kr(W[cs])*ee,m:Kr(W[fo])*ee,s:Kr(W[zs])*ee,ms:Kr(Ol(W[Ts]*1e3))*ee}):(W=vc.exec(T))?(ee=W[1]==="-"?-1:1,M={y:Nl(W[2],ee),M:Nl(W[3],ee),w:Nl(W[4],ee),d:Nl(W[5],ee),h:Nl(W[6],ee),m:Nl(W[7],ee),s:Nl(W[8],ee)}):M==null?M={}:typeof M=="object"&&("from"in M||"to"in M)&&(ft=f0(mn(M.from),mn(M.to)),M={},M.ms=ft.milliseconds,M.M=ft.months),be=new el(M),Sa(T)&&r(T,"_locale")&&(be._locale=T._locale),Sa(T)&&r(T,"_isValid")&&(be._isValid=T._isValid),be}io.fn=el.prototype,io.invalid=u0;function Nl(T,k){var M=T&&parseFloat(T.replace(",","."));return(isNaN(M)?0:M)*k}function Cu(T,k){var M={};return M.months=k.month()-T.month()+(k.year()-T.year())*12,T.clone().add(M.months,"M").isAfter(k)&&--M.months,M.milliseconds=+k-+T.clone().add(M.months,"M"),M}function f0(T,k){var M;return T.isValid()&&k.isValid()?(k=Us(k,T),T.isBefore(k)?M=Cu(T,k):(M=Cu(k,T),M.milliseconds=-M.milliseconds,M.months=-M.months),M):{milliseconds:0,months:0}}function uf(T,k){return function(M,W){var ee,be;return W!==null&&!isNaN(+W)&&(Ct(k,"moment()."+k+"(period, number) is deprecated. Please use moment()."+k+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),be=M,M=W,W=be),ee=io(M,W),ra(this,ee,T),this}}function ra(T,k,M,W){var ee=k._milliseconds,be=Ol(k._days),ft=Ol(k._months);T.isValid()&&(W=W==null?!0:W,ft&&At(T,Ku(T,"Month")+ft*M),be&&Dl(T,"Date",Ku(T,"Date")+be*M),ee&&T._d.setTime(T._d.valueOf()+ee*M),W&&e.updateOffset(T,be||ft))}var Gn=uf(1,"add"),Yp=uf(-1,"subtract");function th(T){return typeof T=="string"||T instanceof String}function rh(T){return Fe(T)||m(T)||th(T)||y(T)||Xm(T)||Jm(T)||T===null||T===void 0}function Jm(T){var k=u(T)&&!f(T),M=!1,W=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],ee,be,ft=W.length;for(ee=0;ee<ft;ee+=1)be=W[ee],M=M||r(T,be);return k&&M}function Xm(T){var k=o(T),M=!1;return k&&(M=T.filter(function(W){return!y(W)&&th(T)}).length===0),k&&M}function xg(T){var k=u(T)&&!f(T),M=!1,W=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"],ee,be;for(ee=0;ee<W.length;ee+=1)be=W[ee],M=M||r(T,be);return k&&M}function cv(T,k){var M=T.diff(k,"days",!0);return M<-6?"sameElse":M<-1?"lastWeek":M<0?"lastDay":M<1?"sameDay":M<2?"nextDay":M<7?"nextWeek":"sameElse"}function p0(T,k){arguments.length===1&&(arguments[0]?rh(arguments[0])?(T=arguments[0],k=void 0):xg(arguments[0])&&(k=arguments[0],T=void 0):(T=void 0,k=void 0));var M=T||mn(),W=Us(M,this).startOf("day"),ee=e.calendarFormat(this,W)||"sameElse",be=k&&(gt(k[ee])?k[ee].call(this,M):k[ee]);return this.format(be||this.localeData().calendar(ee,this,mn(M)))}function nh(){return new ye(this)}function _g(T,k){var M=Fe(T)?T:mn(T);return this.isValid()&&M.isValid()?(k=me(k)||"millisecond",k==="millisecond"?this.valueOf()>M.valueOf():M.valueOf()<this.clone().startOf(k).valueOf()):!1}function Au(T,k){var M=Fe(T)?T:mn(T);return this.isValid()&&M.isValid()?(k=me(k)||"millisecond",k==="millisecond"?this.valueOf()<M.valueOf():this.clone().endOf(k).valueOf()<M.valueOf()):!1}function xc(T,k,M,W){var ee=Fe(T)?T:mn(T),be=Fe(k)?k:mn(k);return this.isValid()&&ee.isValid()&&be.isValid()?(W=W||"()",(W[0]==="("?this.isAfter(ee,M):!this.isBefore(ee,M))&&(W[1]===")"?this.isBefore(be,M):!this.isAfter(be,M))):!1}function na(T,k){var M=Fe(T)?T:mn(T),W;return this.isValid()&&M.isValid()?(k=me(k)||"millisecond",k==="millisecond"?this.valueOf()===M.valueOf():(W=M.valueOf(),this.clone().startOf(k).valueOf()<=W&&W<=this.clone().endOf(k).valueOf())):!1}function Za(T,k){return this.isSame(T,k)||this.isAfter(T,k)}function ia(T,k){return this.isSame(T,k)||this.isBefore(T,k)}function lf(T,k,M){var W,ee,be;if(!this.isValid())return NaN;if(W=Us(T,this),!W.isValid())return NaN;switch(ee=(W.utcOffset()-this.utcOffset())*6e4,k=me(k),k){case"year":be=Qa(this,W)/12;break;case"month":be=Qa(this,W);break;case"quarter":be=Qa(this,W)/3;break;case"second":be=(this-W)/1e3;break;case"minute":be=(this-W)/6e4;break;case"hour":be=(this-W)/36e5;break;case"day":be=(this-W-ee)/864e5;break;case"week":be=(this-W-ee)/6048e5;break;default:be=this-W}return M?be:ci(be)}function Qa(T,k){if(T.date()<k.date())return-Qa(k,T);var M=(k.year()-T.year())*12+(k.month()-T.month()),W=T.clone().add(M,"months"),ee,be;return k-W<0?(ee=T.clone().add(M-1,"months"),be=(k-W)/(W-ee)):(ee=T.clone().add(M+1,"months"),be=(k-W)/(ee-W)),-(M+be)||0}e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";function Fl(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function Gf(T){if(!this.isValid())return null;var k=T!==!0,M=k?this.clone().utc():this;return M.year()<0||M.year()>9999?Qe(M,k?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):gt(Date.prototype.toISOString)?k?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",Qe(M,"Z")):Qe(M,k?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function Yf(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var T="moment",k="",M,W,ee,be;return this.isLocal()||(T=this.utcOffset()===0?"moment.utc":"moment.parseZone",k="Z"),M="["+T+'("]',W=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",ee="-MM-DD[T]HH:mm:ss.SSS",be=k+'[")]',this.format(M+W+ee+be)}function Kp(T){T||(T=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var k=Qe(this,T);return this.localeData().postformat(k)}function Zm(T,k){return this.isValid()&&(Fe(T)&&T.isValid()||mn(T).isValid())?io({to:this,from:T}).locale(this.locale()).humanize(!k):this.localeData().invalidDate()}function d0(T){return this.from(mn(),T)}function Kf(T,k){return this.isValid()&&(Fe(T)&&T.isValid()||mn(T).isValid())?io({from:this,to:T}).locale(this.locale()).humanize(!k):this.localeData().invalidDate()}function _c(T){return this.to(mn(),T)}function h0(T){var k;return T===void 0?this._locale._abbr:(k=Ge(T),k!=null&&(this._locale=k),this)}var eu=tt("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(T){return T===void 0?this.localeData():this.locale(T)});function m0(){return this._locale}var Rl=1e3,rl=60*Rl,Sc=60*rl,Qm=(365*400+97)*24*Sc;function di(T,k){return(T%k+k)%k}function vo(T,k,M){return T<100&&T>=0?new Date(T+400,k,M)-Qm:new Date(T,k,M).valueOf()}function tu(T,k,M){return T<100&&T>=0?Date.UTC(T+400,k,M)-Qm:Date.UTC(T,k,M)}function ku(T){var k,M;if(T=me(T),T===void 0||T==="millisecond"||!this.isValid())return this;switch(M=this._isUTC?tu:vo,T){case"year":k=M(this.year(),0,1);break;case"quarter":k=M(this.year(),this.month()-this.month()%3,1);break;case"month":k=M(this.year(),this.month(),1);break;case"week":k=M(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":k=M(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":k=M(this.year(),this.month(),this.date());break;case"hour":k=this._d.valueOf(),k-=di(k+(this._isUTC?0:this.utcOffset()*rl),Sc);break;case"minute":k=this._d.valueOf(),k-=di(k,rl);break;case"second":k=this._d.valueOf(),k-=di(k,Rl);break}return this._d.setTime(k),e.updateOffset(this,!0),this}function Ll(T){var k,M;if(T=me(T),T===void 0||T==="millisecond"||!this.isValid())return this;switch(M=this._isUTC?tu:vo,T){case"year":k=M(this.year()+1,0,1)-1;break;case"quarter":k=M(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":k=M(this.year(),this.month()+1,1)-1;break;case"week":k=M(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":k=M(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":k=M(this.year(),this.month(),this.date()+1)-1;break;case"hour":k=this._d.valueOf(),k+=Sc-di(k+(this._isUTC?0:this.utcOffset()*rl),Sc)-1;break;case"minute":k=this._d.valueOf(),k+=rl-di(k,rl)-1;break;case"second":k=this._d.valueOf(),k+=Rl-di(k,Rl)-1;break}return this._d.setTime(k),e.updateOffset(this,!0),this}function Oa(){return this._d.valueOf()-(this._offset||0)*6e4}function cf(){return Math.floor(this.valueOf()/1e3)}function Ml(){return new Date(this.valueOf())}function Sg(){var T=this;return[T.year(),T.month(),T.date(),T.hour(),T.minute(),T.second(),T.millisecond()]}function y0(){var T=this;return{years:T.year(),months:T.month(),date:T.date(),hours:T.hours(),minutes:T.minutes(),seconds:T.seconds(),milliseconds:T.milliseconds()}}function Jf(){return this.isValid()?this.toISOString():null}function Jp(){return $(this)}function fv(){return C({},v(this))}function ey(){return v(this).overflow}function ih(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}at("N",0,0,"eraAbbr"),at("NN",0,0,"eraAbbr"),at("NNN",0,0,"eraAbbr"),at("NNNN",0,0,"eraName"),at("NNNNN",0,0,"eraNarrow"),at("y",["y",1],"yo","eraYear"),at("y",["yy",2],0,"eraYear"),at("y",["yyy",3],0,"eraYear"),at("y",["yyyy",4],0,"eraYear"),bt("N",Zp),bt("NN",Zp),bt("NNN",Zp),bt("NNNN",oh),bt("NNNNN",ah),En(["N","NN","NNN","NNNN","NNNNN"],function(T,k,M,W){var ee=M._locale.erasParse(T,W,M._strict);ee?v(M).era=ee:v(M).invalidEra=T}),bt("y",Da),bt("yy",Da),bt("yyy",Da),bt("yyyy",Da),bt("yo",v0),En(["y","yy","yyy","yyyy"],Zt),En(["yo"],function(T,k,M,W){var ee;M._locale._eraYearOrdinalRegex&&(ee=T.match(M._locale._eraYearOrdinalRegex)),M._locale.eraYearOrdinalParse?k[Zt]=M._locale.eraYearOrdinalParse(T,ee):k[Zt]=parseInt(T,10)});function ty(T,k){var M,W,ee,be=this._eras||Ge("en")._eras;for(M=0,W=be.length;M<W;++M){switch(typeof be[M].since){case"string":ee=e(be[M].since).startOf("day"),be[M].since=ee.valueOf();break}switch(typeof be[M].until){case"undefined":be[M].until=1/0;break;case"string":ee=e(be[M].until).startOf("day").valueOf(),be[M].until=ee.valueOf();break}}return be}function ry(T,k,M){var W,ee,be=this.eras(),ft,ir,rn;for(T=T.toUpperCase(),W=0,ee=be.length;W<ee;++W)if(ft=be[W].name.toUpperCase(),ir=be[W].abbr.toUpperCase(),rn=be[W].narrow.toUpperCase(),M)switch(k){case"N":case"NN":case"NNN":if(ir===T)return be[W];break;case"NNNN":if(ft===T)return be[W];break;case"NNNNN":if(rn===T)return be[W];break}else if([ft,ir,rn].indexOf(T)>=0)return be[W]}function g0(T,k){var M=T.since<=T.until?1:-1;return k===void 0?e(T.since).year():e(T.since).year()+(k-T.offset)*M}function ff(){var T,k,M,W=this.localeData().eras();for(T=0,k=W.length;T<k;++T)if(M=this.clone().startOf("day").valueOf(),W[T].since<=M&&M<=W[T].until||W[T].until<=M&&M<=W[T].since)return W[T].name;return""}function ny(){var T,k,M,W=this.localeData().eras();for(T=0,k=W.length;T<k;++T)if(M=this.clone().startOf("day").valueOf(),W[T].since<=M&&M<=W[T].until||W[T].until<=M&&M<=W[T].since)return W[T].narrow;return""}function Tg(){var T,k,M,W=this.localeData().eras();for(T=0,k=W.length;T<k;++T)if(M=this.clone().startOf("day").valueOf(),W[T].since<=M&&M<=W[T].until||W[T].until<=M&&M<=W[T].since)return W[T].abbr;return""}function Xp(){var T,k,M,W,ee=this.localeData().eras();for(T=0,k=ee.length;T<k;++T)if(M=ee[T].since<=ee[T].until?1:-1,W=this.clone().startOf("day").valueOf(),ee[T].since<=W&&W<=ee[T].until||ee[T].until<=W&&W<=ee[T].since)return(this.year()-e(ee[T].since).year())*M+ee[T].offset;return this.year()}function sa(T){return r(this,"_erasNameRegex")||Zf.call(this),T?this._erasNameRegex:this._erasRegex}function sh(T){return r(this,"_erasAbbrRegex")||Zf.call(this),T?this._erasAbbrRegex:this._erasRegex}function Xf(T){return r(this,"_erasNarrowRegex")||Zf.call(this),T?this._erasNarrowRegex:this._erasRegex}function Zp(T,k){return k.erasAbbrRegex(T)}function oh(T,k){return k.erasNameRegex(T)}function ah(T,k){return k.erasNarrowRegex(T)}function v0(T,k){return k._eraYearOrdinalRegex||Da}function Zf(){var T=[],k=[],M=[],W=[],ee,be,ft,ir,rn,ti=this.eras();for(ee=0,be=ti.length;ee<be;++ee)ft=vi(ti[ee].name),ir=vi(ti[ee].abbr),rn=vi(ti[ee].narrow),k.push(ft),T.push(ir),M.push(rn),W.push(ft),W.push(ir),W.push(rn);this._erasRegex=new RegExp("^("+W.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+k.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+T.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+M.join("|")+")","i")}at(0,["gg",2],0,function(){return this.weekYear()%100}),at(0,["GG",2],0,function(){return this.isoWeekYear()%100});function Qf(T,k){at(0,[T,T.length],0,k)}Qf("gggg","weekYear"),Qf("ggggg","weekYear"),Qf("GGGG","isoWeekYear"),Qf("GGGGG","isoWeekYear"),bt("G",Xe),bt("g",Xe),bt("GG",dn,Lr),bt("gg",dn,Lr),bt("GGGG",bo,kn),bt("gggg",bo,kn),bt("GGGGG",_u,Vn),bt("ggggg",_u,Vn),rs(["gggg","ggggg","GGGG","GGGGG"],function(T,k,M,W){k[W.substr(0,2)]=Kr(T)}),rs(["gg","GG"],function(T,k,M,W){k[W]=e.parseTwoDigitYear(T)});function ep(T){return ru.call(this,T,this.week(),this.weekday()+this.localeData()._week.dow,this.localeData()._week.dow,this.localeData()._week.doy)}function iy(T){return ru.call(this,T,this.isoWeek(),this.isoWeekday(),1,4)}function uh(){return Di(this.year(),1,4)}function lh(){return Di(this.isoWeekYear(),1,4)}function Tc(){var T=this.localeData()._week;return Di(this.year(),T.dow,T.doy)}function pf(){var T=this.localeData()._week;return Di(this.weekYear(),T.dow,T.doy)}function ru(T,k,M,W,ee){var be;return T==null?Kt(this,W,ee).year:(be=Di(T,W,ee),k>be&&(k=be),df.call(this,T,k,M,W,ee))}function df(T,k,M,W,ee){var be=Vp(T,k,M,W,ee),ft=Uf(be.year,0,be.dayOfYear);return this.year(ft.getUTCFullYear()),this.month(ft.getUTCMonth()),this.date(ft.getUTCDate()),this}at("Q",0,"Qo","quarter"),bt("Q",Rr),En("Q",function(T,k){k[co]=(Kr(T)-1)*3});function x0(T){return T==null?Math.ceil((this.month()+1)/3):this.month((T-1)*3+this.month()%3)}at("D",["DD",2],"Do","date"),bt("D",dn,dr),bt("DD",dn,Lr),bt("Do",function(T,k){return T?k._dayOfMonthOrdinalParse||k._ordinalParse:k._dayOfMonthOrdinalParseLenient}),En(["D","DD"],Ws),En("Do",function(T,k){k[Ws]=Kr(T.match(dn)[0])});var Ec=zr("Date",!0);at("DDD",["DDDD",3],"DDDo","dayOfYear"),bt("DDD",Yi),bt("DDDD",Rn),En(["DDD","DDDD"],function(T,k,M){M._dayOfYear=Kr(T)});function nl(T){var k=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return T==null?k:this.add(T-k,"d")}at("m",["mm",2],0,"minute"),bt("m",dn,Tn),bt("mm",dn,Lr),En(["m","mm"],fo);var _0=zr("Minutes",!1);at("s",["ss",2],0,"second"),bt("s",dn,Tn),bt("ss",dn,Lr),En(["s","ss"],zs);var Qp=zr("Seconds",!1);at("S",0,0,function(){return~~(this.millisecond()/100)}),at(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),at(0,["SSS",3],0,"millisecond"),at(0,["SSSS",4],0,function(){return this.millisecond()*10}),at(0,["SSSSS",5],0,function(){return this.millisecond()*100}),at(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),at(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),at(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),at(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),bt("S",Yi,Rr),bt("SS",Yi,Lr),bt("SSS",Yi,Rn);var Iu,S0;for(Iu="SSSS";Iu.length<=9;Iu+="S")bt(Iu,Da);function sy(T,k){k[Ts]=Kr(("0."+T)*1e3)}for(Iu="S";Iu.length<=9;Iu+="S")En(Iu,sy);S0=zr("Milliseconds",!1),at("z",0,0,"zoneAbbr"),at("zz",0,0,"zoneName");function ch(){return this._isUTC?"UTC":""}function fh(){return this._isUTC?"Coordinated Universal Time":""}var Bt=ye.prototype;Bt.add=Gn,Bt.calendar=p0,Bt.clone=nh,Bt.diff=lf,Bt.endOf=Ll,Bt.format=Kp,Bt.from=Zm,Bt.fromNow=d0,Bt.to=Kf,Bt.toNow=_c,Bt.get=Ga,Bt.invalidAt=ey,Bt.isAfter=_g,Bt.isBefore=Au,Bt.isBetween=xc,Bt.isSame=na,Bt.isSameOrAfter=Za,Bt.isSameOrBefore=ia,Bt.isValid=Jp,Bt.lang=eu,Bt.locale=h0,Bt.localeData=m0,Bt.max=Co,Bt.min=eh,Bt.parsingFlags=fv,Bt.set=Ki,Bt.startOf=ku,Bt.subtract=Yp,Bt.toArray=Sg,Bt.toObject=y0,Bt.toDate=Ml,Bt.toISOString=Gf,Bt.inspect=Yf,typeof Symbol<"u"&&Symbol.for!=null&&(Bt[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),Bt.toJSON=Jf,Bt.toString=Fl,Bt.unix=cf,Bt.valueOf=Oa,Bt.creationData=ih,Bt.eraName=ff,Bt.eraNarrow=ny,Bt.eraAbbr=Tg,Bt.eraYear=Xp,Bt.year=Tu,Bt.isLeapYear=ac,Bt.weekYear=ep,Bt.isoWeekYear=iy,Bt.quarter=Bt.quarters=x0,Bt.month=Ya,Bt.daysInMonth=s0,Bt.week=Bt.weeks=o0,Bt.isoWeek=Bt.isoWeeks=Yd,Bt.weeksInYear=Tc,Bt.weeksInWeekYear=pf,Bt.isoWeeksInYear=uh,Bt.isoWeeksInISOWeekYear=lh,Bt.date=Ec,Bt.day=Bt.days=ys,Bt.weekday=hn,Bt.isoWeekday=wu,Bt.dayOfYear=nl,Bt.hour=Bt.hours=Qo,Bt.minute=Bt.minutes=_0,Bt.second=Bt.seconds=Qp,Bt.millisecond=Bt.milliseconds=S0,Bt.utcOffset=zf,Bt.utc=l0,Bt.local=c0,Bt.parseZone=Uo,Bt.hasAlignedHourOffset=ta,Bt.isDST=Ia,Bt.isLocal=yc,Bt.isUtcOffset=gc,Bt.isUtc=pi,Bt.isUTC=pi,Bt.zoneAbbr=ch,Bt.zoneName=fh,Bt.dates=tt("dates accessor is deprecated. Use date instead.",Ec),Bt.months=tt("months accessor is deprecated. Use month instead",Ya),Bt.years=tt("years accessor is deprecated. Use year instead",Tu),Bt.zone=tt("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",fi),Bt.isDSTShifted=tt("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",mc);function tn(T){return mn(T*1e3)}function $o(){return mn.apply(null,arguments).parseZone()}function Gs(T){return T}var yn=oe.prototype;yn.calendar=Se,yn.longDateFormat=Dr,yn.invalidDate=tr,yn.ordinal=lr,yn.preparse=Gs,yn.postformat=Gs,yn.relativeTime=Pt,yn.pastFuture=_t,yn.set=ct,yn.eras=ty,yn.erasParse=ry,yn.erasConvertYear=g0,yn.erasAbbrRegex=sh,yn.erasNameRegex=sa,yn.erasNarrowRegex=Xf,yn.months=i0,yn.monthsShort=Xc,yn.monthsParse=Zo,yn.monthsRegex=Ui,yn.monthsShortRegex=Zc,yn.week=Wp,yn.firstDayOfYear=$f,yn.firstDayOfWeek=Ka,yn.weekdays=Al,yn.weekdaysMin=Eu,yn.weekdaysShort=Ja,yn.weekdaysParse=Zu,yn.weekdaysRegex=Xd,yn.weekdaysShortRegex=Is,yn.weekdaysMinRegex=fc,yn.isPM=Zd,yn.meridiem=nf;function Ta(T,k,M,W){var ee=Ge(),be=A().set(W,k);return ee[M](be,T)}function ed(T,k,M){if(y(T)&&(k=T,T=void 0),T=T||"",k!=null)return Ta(T,k,M,"month");var W,ee=[];for(W=0;W<12;W++)ee[W]=Ta(T,W,M,"month");return ee}function Fs(T,k,M,W){typeof T=="boolean"?(y(k)&&(M=k,k=void 0),k=k||""):(k=T,M=k,T=!1,y(k)&&(M=k,k=void 0),k=k||"");var ee=Ge(),be=T?ee._week.dow:0,ft,ir=[];if(M!=null)return Ta(k,(M+be)%7,W,"day");for(ft=0;ft<7;ft++)ir[ft]=Ta(k,(ft+be)%7,W,"day");return ir}function td(T,k){return ed(T,k,"months")}function bn(T,k){return ed(T,k,"monthsShort")}function tp(T,k,M){return Fs(T,k,M,"weekdays")}function hf(T,k,M){return Fs(T,k,M,"weekdaysShort")}function T0(T,k,M){return Fs(T,k,M,"weekdaysMin")}ne("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(T){var k=T%10,M=Kr(T%100/10)===1?"th":k===1?"st":k===2?"nd":k===3?"rd":"th";return T+M}}),e.lang=tt("moment.lang is deprecated. Use moment.locale instead.",ne),e.langData=tt("moment.langData is deprecated. Use moment.localeData instead.",Ge);var il=Math.abs;function E0(){var T=this._data;return this._milliseconds=il(this._milliseconds),this._days=il(this._days),this._months=il(this._months),T.milliseconds=il(T.milliseconds),T.seconds=il(T.seconds),T.minutes=il(T.minutes),T.hours=il(T.hours),T.months=il(T.months),T.years=il(T.years),this}function ph(T,k,M,W){var ee=io(k,M);return T._milliseconds+=W*ee._milliseconds,T._days+=W*ee._days,T._months+=W*ee._months,T._bubble()}function wc(T,k){return ph(this,T,k,1)}function Er(T,k){return ph(this,T,k,-1)}function mf(T){return T<0?Math.floor(T):Math.ceil(T)}function w0(){var T=this._milliseconds,k=this._days,M=this._months,W=this._data,ee,be,ft,ir,rn;return T>=0&&k>=0&&M>=0||T<=0&&k<=0&&M<=0||(T+=mf(sl(M)+k)*864e5,k=0,M=0),W.milliseconds=T%1e3,ee=ci(T/1e3),W.seconds=ee%60,be=ci(ee/60),W.minutes=be%60,ft=ci(be/60),W.hours=ft%24,k+=ci(ft/24),rn=ci(nu(k)),M+=rn,k-=mf(sl(rn)),ir=ci(M/12),M%=12,W.days=k,W.months=M,W.years=ir,this}function nu(T){return T*4800/146097}function sl(T){return T*146097/4800}function rd(T){if(!this.isValid())return NaN;var k,M,W=this._milliseconds;if(T=me(T),T==="month"||T==="quarter"||T==="year")switch(k=this._days+W/864e5,M=this._months+nu(k),T){case"month":return M;case"quarter":return M/3;case"year":return M/12}else switch(k=this._days+Math.round(sl(this._months)),T){case"week":return k/7+W/6048e5;case"day":return k+W/864e5;case"hour":return k*24+W/36e5;case"minute":return k*1440+W/6e4;case"second":return k*86400+W/1e3;case"millisecond":return Math.floor(k*864e5)+W;default:throw new Error("Unknown unit "+T)}}function Na(T){return function(){return this.as(T)}}var rp=Na("ms"),b0=Na("s"),Bl=Na("m"),nd=Na("h"),yf=Na("d"),np=Na("w"),Ou=Na("M"),ol=Na("Q"),id=Na("y"),gf=rp;function oa(){return io(this)}function Ai(T){return T=me(T),this.isValid()?this[T+"s"]():NaN}function Si(T){return function(){return this.isValid()?this._data[T]:NaN}}var dh=Si("milliseconds"),Fa=Si("seconds"),oy=Si("minutes"),ip=Si("hours"),P0=Si("days"),Eg=Si("months"),D0=Si("years");function hh(){return ci(this.days()/7)}var iu=Math.round,bc={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function sp(T,k,M,W,ee){return ee.relativeTime(k||1,!!M,T,W)}function ay(T,k,M,W){var ee=io(T).abs(),be=iu(ee.as("s")),ft=iu(ee.as("m")),ir=iu(ee.as("h")),rn=iu(ee.as("d")),ti=iu(ee.as("M")),Vo=iu(ee.as("w")),Ra=iu(ee.as("y")),Es=be<=M.ss&&["s",be]||be<M.s&&["ss",be]||ft<=1&&["m"]||ft<M.m&&["mm",ft]||ir<=1&&["h"]||ir<M.h&&["hh",ir]||rn<=1&&["d"]||rn<M.d&&["dd",rn];return M.w!=null&&(Es=Es||Vo<=1&&["w"]||Vo<M.w&&["ww",Vo]),Es=Es||ti<=1&&["M"]||ti<M.M&&["MM",ti]||Ra<=1&&["y"]||["yy",Ra],Es[2]=k,Es[3]=+T>0,Es[4]=W,sp.apply(null,Es)}function uy(T){return T===void 0?iu:typeof T=="function"?(iu=T,!0):!1}function sd(T,k){return bc[T]===void 0?!1:k===void 0?bc[T]:(bc[T]=k,T==="s"&&(bc.ss=k-1),!0)}function wg(T,k){if(!this.isValid())return this.localeData().invalidDate();var M=!1,W=bc,ee,be;return typeof T=="object"&&(k=T,T=!1),typeof T=="boolean"&&(M=T),typeof k=="object"&&(W=Object.assign({},bc,k),k.s!=null&&k.ss==null&&(W.ss=k.s-1)),ee=this.localeData(),be=ay(this,!M,W,ee),M&&(be=ee.pastFuture(+this,be)),ee.postformat(be)}var mh=Math.abs;function Pc(T){return(T>0)-(T<0)||+T}function Ho(){if(!this.isValid())return this.localeData().invalidDate();var T=mh(this._milliseconds)/1e3,k=mh(this._days),M=mh(this._months),W,ee,be,ft,ir=this.asSeconds(),rn,ti,Vo,Ra;return ir?(W=ci(T/60),ee=ci(W/60),T%=60,W%=60,be=ci(M/12),M%=12,ft=T?T.toFixed(3).replace(/\.?0+$/,""):"",rn=ir<0?"-":"",ti=Pc(this._months)!==Pc(ir)?"-":"",Vo=Pc(this._days)!==Pc(ir)?"-":"",Ra=Pc(this._milliseconds)!==Pc(ir)?"-":"",rn+"P"+(be?ti+be+"Y":"")+(M?ti+M+"M":"")+(k?Vo+k+"D":"")+(ee||W||T?"T":"")+(ee?Ra+ee+"H":"")+(W?Ra+W+"M":"")+(T?Ra+ft+"S":"")):"P0D"}var In=el.prototype;In.isValid=Gp,In.abs=E0,In.add=wc,In.subtract=Er,In.as=rd,In.asMilliseconds=rp,In.asSeconds=b0,In.asMinutes=Bl,In.asHours=nd,In.asDays=yf,In.asWeeks=np,In.asMonths=Ou,In.asQuarters=ol,In.asYears=id,In.valueOf=gf,In._bubble=w0,In.clone=oa,In.get=Ai,In.milliseconds=dh,In.seconds=Fa,In.minutes=oy,In.hours=ip,In.days=P0,In.weeks=hh,In.months=Eg,In.years=D0,In.humanize=wg,In.toISOString=Ho,In.toString=Ho,In.toJSON=Ho,In.locale=h0,In.localeData=m0,In.toIsoString=tt("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ho),In.lang=eu,at("X",0,0,"unix"),at("x",0,0,"valueOf"),bt("x",Xe),bt("X",jt),En("X",function(T,k,M){M._d=new Date(parseFloat(T)*1e3)}),En("x",function(T,k,M){M._d=new Date(Kr(T))});return e.version="2.30.1",n(mn),e.fn=Bt,e.min=Aa,e.max=zp,e.now=Vf,e.utc=A,e.unix=tn,e.months=td,e.isDate=m,e.locale=ne,e.invalid=j,e.duration=io,e.isMoment=Fe,e.weekdays=tp,e.parseZone=$o,e.localeData=Ge,e.isDuration=Sa,e.monthsShort=bn,e.weekdaysMin=T0,e.defineLocale=ke,e.updateLocale=Ze,e.locales=lt,e.weekdaysShort=hf,e.normalizeUnits=me,e.relativeTimeRounding=uy,e.relativeTimeThreshold=sd,e.calendarFormat=cv,e.prototype=Bt,e.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},e})});function $y(){return!process.stdout.isTTY||process.env.FORCE_NON_TTY==="1"}function Eb({prefix:t="cli"}){return Ps.default.createElement(Ss.Text,{color:"grey"},"[",t,"]")}function ss(t,e="cli"){if($y()){console.log(`\x1B[90m[${e}]\x1B[0m\x1B[31m[\u2718] \x1B[0m${t}`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Text,null,Ps.default.createElement(Eb,{prefix:e}),Ps.default.createElement(Ss.Text,{color:"red"},"[\u2718] "),t));n()}function uS(t,e="cli"){if($y()){console.log(`\x1B[90m[${e}]\x1B[0m\x1B[32m[\u2714] \x1B[0m${t}`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Text,null,Ps.default.createElement(Eb,{prefix:e}),Ps.default.createElement(Ss.Text,{color:"green"},"[\u2714] "),t));n()}function vm(t,e="cli"){if($y()){console.log(`\x1B[90m[${e}]\x1B[0m \x1B[33mWARNING:\x1B[0m ${t}`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Text,null,Ps.default.createElement(Eb,{prefix:e}),Ps.default.createElement(Ss.Text,{color:"orange"},"\u2757\uFE0F "),t));n()}function X$(t){if($y()){console.log(t);return}let{unmount:e}=(0,Ss.render)(Ps.default.createElement(Ss.Text,{color:"cyan"},t));e()}function Wr(t,e="cli"){if($y()){console.log(`\x1B[90m[${e}]\x1B[0m\x1B[37m ${t}\x1B[0m`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Text,{color:"white"},Ps.default.createElement(Eb,{prefix:e}),t));n()}function aO({timestamp:t}){return Ps.default.createElement(Ss.Box,{width:13},Ps.default.createElement(Ss.Text,{color:"grey"},(0,aS.default)(t).format("HH:mm:ss.SSS")))}function Z$(t,e){if($y()){console.log(`${(0,aS.default)(e).format("HH:mm:ss.SSS")} ${t}`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Box,null,Ps.default.createElement(aO,{timestamp:e}),Ps.default.createElement(Ss.Text,{color:"white"},t)));n()}function Q$(t,e){if($y()){console.log(`${(0,aS.default)(e).format("HH:mm:ss.SSS")} [WARNING] ${t}`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Box,null,Ps.default.createElement(aO,{timestamp:e}),Ps.default.createElement(Ss.Text,{color:"white",backgroundColor:"yellow"},"[WARNING]"),Ps.default.createElement(Ss.Text,null," ",t)));n()}function uO(t,e){if($y()){console.log(`${(0,aS.default)(e).format("HH:mm:ss.SSS")} [ERROR] ${t}`);return}let{unmount:n}=(0,Ss.render)(Ps.default.createElement(Ss.Box,null,Ps.default.createElement(aO,{timestamp:e}),Ps.default.createElement(Ss.Text,{color:"white",backgroundColor:"red"},"[ERROR]"),Ps.default.createElement(Ss.Text,{color:"white"}," ",t)));n()}var Ss,Ps,aS,Hu=mt(()=>{Ss=cr(Tb()),Ps=cr(Xs()),aS=cr(J$())});var tH,eH=mt(()=>{tH={name:"edgeone",version:"1.4.6-beta.2",description:"Command-line interface for TencentCloud Pages Functions",bin:{edgeone:"./edgeone-bin/edgeone.js"},files:["./edgeone-bin/edgeone.js","./edgeone-dist/cli.js","./edgeone-dist/templates","./edgeone-dist/pages/dev/runner-worker.js"],author:"",keywords:["tencent","edgeone","edgefunctions","edgeone","cli","typescript"],scripts:{clean:"rimraf ./edgeone-dist ./edgeone-bin ./libs-node-ai ./libs-kv-client",bundle:"node -r esbuild-register ./scripts/bundle.ts",watch:"node -r esbuild-register ./scripts/bundle.ts watch",build:"npm run clean && npm run build:pages-ai && npm run build:kv-client && npm run bundle","build:pages-ai":"node ./scripts/build-pages-ai.js","build:kv-client":"node ./scripts/build-kv-client.js",format:'prettier --write "src/**/*.{ts,tsx,js,jsx,json,md}" "scripts/**/*.{ts,js}" "*.{json,md}"',prepack:"npm run build",prepublishOnly:"npm run build",test:"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage"},dependencies:{"@edgeone/framework-detect":"^0.0.2","@edgeone/is-spa":"^0.0.2","@edgeone/nuxt-pages":"1.1.0","@edgeone/opennextjs-pages":"0.2.2",archiver:"^7.0.1",chokidar:"^4.0.1","common-path-prefix":"^1.0.0","cos-nodejs-sdk-v5":"^2.14.7","cross-spawn":"^7.0.6",crypto:"^1.0.1","detect-port":"^2.1.0",esbuild:"^0.19.2","esbuild-plugin-polyfill-node":"^0.3.0","esbuild-plugin-vue":"^0.2.4","fast-glob":"^3.3.0","fs-extra":"^11.3.1","ink-table":"^3.1.0",inquirer:"^8.2.4",install:"^0.13.0",lodash:"^4.17.21","mime-types":"^3.0.1",minimatch:"^9.0.5","node-persist":"^4.0.3",npm:"^10.9.1",open:"^8.4.2","p-map":"^5.5.0","parse-gitignore":"^2.0.0",portfinder:"^1.0.32",undici:"^5.29.0",vitest:"^4.0.17"},devDependencies:{"@babel/generator":"^7.28.0","@babel/parser":"^7.28.0","@babel/traverse":"^7.28.0","@babel/types":"^7.28.0","@tencent/capi-nodejs-sdk":"^2.3.2","@types/http-proxy":"^1.17.12","@types/inquirer":"^9.0.8","@types/ip":"^1.1.0","@types/lodash":"^4.14.198","@types/prompts":"^2.4.4","@types/react":"^17.0.2","@types/uuid":"^9.0.3","@types/ws":"^8.5.7","@types/yargs":"^17.0.24","@vitest/coverage-v8":"^4.0.17",axios:"^1.7.9",chalk:"^5.3.0",cookie:"^1.0.2",dotenv:"^16.3.1","esbuild-register":"^3.6.0",execa:"^7.1.1","http-proxy":"^1.18.1",husky:"^8.0.3",ink:"^3.2.0",ip:"^2.0.1",json5:"^2.2.3","lint-staged":"^15.2.0",lodash:"^4.17.21",moment:"^2.30.1","node-fetch":"^3.3.2",prettier:"^3.1.1",prompts:"^2.4.2",react:"^17.0.2",rimraf:"^6.0.1",semiver:"^1.1.0",sirv:"^2.0.3","tencentcloud-cls-sdk-js-web":"^1.0.13","ts-node":"^10.9.2",typescript:"^5.9.3","update-check":"^1.5.4",uuid:"^9.0.0",ws:"^8.14.2",yargs:"^17.6.2",zod:"^3.23.8","zod-to-json-schema":"^3.23.5"},engines:{node:">=12"},"lint-staged":{"*.{ts,tsx,js,jsx,json,md}":["prettier --write"]}}});function VPe(){var t,e;return{run_id:HPe,cli_version:(e=(t=tH)==null?void 0:t.version)!=null?e:"unknown",node_version:process.version,os_platform:cO.default.platform(),os_arch:cO.default.arch(),app_type:"cli",app_id:process.env.AppId||void 0,uin:process.env.Uin||void 0,instance_id:process.env.ProjectId||void 0,is_ci:process.env.CI==="true"}}function WPe(t,e){try{if(typeof process.send!="function")return;process.send(JSON.stringify({name:t,value:JSON.stringify(e)}))}catch{}}function Wa(t){var n;let e={...VPe(),...t};WPe((n=e.event_name)!=null?n:"unknown",e)}function kp(t){if(t==null)return{message:"unknown error",stack:""};if(typeof t=="string")return{message:wb(t,lO),stack:""};if(typeof t=="object"){let e=t,n=wb(typeof e.message=="string"?e.message:String(e),lO),o=wb(typeof e.stack=="string"?e.stack:"",zPe);return{message:n,stack:o}}return{message:wb(String(t),lO),stack:""}}function wb(t,e){return t.length>e?t.slice(0,e)+"\u2026[truncated]":t}var cO,Ha,Va,HPe,fO,lO,zPe,xm=mt(()=>{cO=cr(require("os"));eH();Ha={COMMAND:"command",REQUEST:"request",LOCAL_FLOW:"local_flow",EXIT:"exit"},Va={SUCCESS:"success",FAIL:"fail",START:"start"},HPe=`cli-${Date.now()}-${Math.random().toString(36).slice(2,6)}`;fO=(t,e)=>{let n=kp(e);Wa({event_name:"error",event_scope:Ha.COMMAND,event_result:Va.FAIL,error_message:`${t} ${n.message}`.trim(),error_stack:n.stack})},lO=500,zPe=2e3});var lS,l2,pO=mt(()=>{lS={NEXTJS:"nextjs",NUXTJS:"nuxtjs",ASTRO:"astro",UNKNOWN:"unknown"},l2={FRAMEWORK_DETECT:"framework_detect",PLUGIN_RESOLVE:"plugin_resolve",PLUGIN_LOAD:"plugin_load",PLUGIN_HOOK:"plugin_hook",CONFIG_LOAD:"config_load"}});function KPe(t){if((t==null?void 0:t.code)===YPe)return!0;let e=typeof t=="string"?t:t==null?void 0:t.message;return e==null?void 0:e.includes(GPe)}async function cS(t=!1){try{let e=await Sj(t);return Wa({event_name:"Config:Load:Success",event_scope:Ha.LOCAL_FLOW,event_phase:l2.CONFIG_LOAD,event_result:Va.SUCCESS,has_build_command:(e==null?void 0:e.buildCommand)!=null,has_install_command:(e==null?void 0:e.installCommand)!=null,has_output_directory:(e==null?void 0:e.outputDirectory)!=null,has_node_version:(e==null?void 0:e.nodeVersion)!=null}),e}catch(e){let n=kp(e);if(Wa({event_name:"Config:Load:Fail",event_scope:Ha.LOCAL_FLOW,event_phase:l2.CONFIG_LOAD,event_result:Va.FAIL,error_message:n.message}),KPe(e))throw e;return bp()&&console.error("%c [ error ]-80","font-size:13px; background:pink; color:#bf2c9f;",e),null}}var GPe,YPe,rH=mt(()=>{Iw();ww();xm();pO();GPe="[BLOCKING_CONFIG_ERROR]",YPe="BLOCKING_CONFIG_ERROR"});var nH,qc,dO=mt(()=>{nH=[{funcName:"onRequestGet",method:"GET"},{funcName:"onRequestPost",method:"POST"},{funcName:"onRequestDelete",method:"DELETE"},{funcName:"onRequestPatch",method:"PATCH"},{funcName:"onRequestPut",method:"PUT"},{funcName:"onRequestHead",method:"HEAD"},{funcName:"onRequestOptions",method:"OPTIONS"}],qc=["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS"]});async function JPe(t){let e;bb.default.statSync(t).isFile()?e=c2.default.resolve(c2.default.dirname(t)):e=t;let n=c2.default.parse(e).root;if(e===n)return null;for(;e!==n;){let o=c2.default.join(e,"package.json");try{return await bb.default.promises.access(o),o}catch{if(e=c2.default.dirname(e),e===n)break}}return null}async function Pb(t){if(t.endsWith(".mjs"))return"esm";if(t.endsWith(".cjs"))return"commonjs";try{let e=await JPe(t);if(e&&JSON.parse(await bb.default.promises.readFile(e,"utf-8")).type==="module")return"esm"}catch(e){console.warn("Failed to read package.json:",e)}return"commonjs"}var bb,c2,Db=mt(()=>{bb=cr(require("fs")),c2=cr(require("path"))});function QPe(t){let e=hO.default.extname(t);return ZPe[e]||"ts"}async function sH(t,e,n,o){let u=`mod_${eDe++}`,f=(await iH.default.build({stdin:{contents:t,loader:QPe(n),resolveDir:hO.default.dirname(n)},write:!1,bundle:!0,format:"esm",platform:"node",target:"node14",minify:!1,resolveExtensions:[".ts",".js",".mjs",".json"],nodePaths:[process.cwd()],absWorkingDir:process.cwd(),external:(o==null?void 0:o.externalModules)||[]})).outputFiles[0].text,p=[];f=f.replace(/^import\s+[^'"]*['"][^'"]*['"]\s*;?\n/gm,C=>(p.push(C),"")),f=f.replace(/export (async )?function/g,"$1function"),f=f.replace(/export const/g,"const"),f=f.replace(/export let/g,"let"),f=f.replace(/export var/g,"var"),f=f.replace(/export default/g,""),f=f.replace(/export \{[^}]+\};?/g,""),f=f.replace(/export class/g,"class");let y=/const\s+app\s*=/.test(f),m=`${p.join(`
145
145
  `)}`;return{code:o!=null&&o.isFramework?`
146
146
  const ${u} = (() => {
147
147
 
@@ -3849,7 +3849,7 @@ export = cryptoShim;
3849
3849
  `+Object.keys(o).map(u=>`${u}: ${o[u]}`).join(`\r
3850
3850
  `)+`\r
3851
3851
  \r
3852
- `+n)}function lv(t,e,n,o,u,r){if(t.listenerCount("wsClientError")){let f=new Error(u);Error.captureStackTrace(f,lv),t.emit("wsClientError",f,n,e)}else aE(n,o,u,r)}});var t0t,r0t,n0t,tue,i0t,rue,nue=mt(()=>{t0t=cr(Wae(),1),r0t=cr(O6(),1),n0t=cr(R6(),1),tue=cr(UC(),1),i0t=cr(eue(),1),rue=tue.default});function iue(t){return new Promise((e,n)=>{let o=new rue(t);o.on("error",console.error),o.on("open",function(){e(!0)}),o.on("close",function(){Wr("Function log server disconnected")}),o.on("message",function(r){let{logs:f,event_info:p,exceptions:y}=JSON.parse(r.toString());f.forEach(m=>{let{timestamp:S,level:C,content:A}=m;C==="INFO"?Z$(A,S):C==="WARN"?Q$(A,S):C==="ERROR"&&uO(A,S)}),y.forEach(m=>{uO(m.content,m.timestamp)})})})}function V6(t){let e=Buffer.byteLength(t||"","utf8"),n=(e/(1024*1024)).toFixed(2),o=(H6.CODE_SIZE/(1024*1024)).toFixed(0);e>H6.CODE_SIZE&&ss(`Code package size (${n} MB) exceeds the limit of ${o} MB. Please reduce your code size.`),e>H6.CODE_SIZE*.8&&vm(`Code package size (${n} MB) is approaching the limit of ${o} MB. Consider optimizing your code.`)}var H6,HC=mt(()=>{nue();Hu();Ph();m6();H6={CODE_SIZE:5*1024*1024}});async function s0t(t,e,n){let o=await iv("CreateDebugFunction",{JSContent:t,ProjectId:e,MetaData:n});if(o!=null&&o.Error)throw new Error("Start remote dev server failed: "+o.Error.Message);if(!o||!o.WsLogUrl||!o.DebugUrl||!o.SessionId)throw process.env.DEBUG&&console.error("Start remote dev server failed.",o),new Error("Start remote dev server failed.");return o}var xx,W6=mt(()=>{Joe();Hu();xC();HC();uE();HC();xx=class{devSessionId;config;destUrl;routes;constructor(e){this.devConfig=e,this.config={...e,watchPaths:yg(this)};let n=new AC({mode:"dev",env:e.env});this.buildInstance=n}async buildAndGetBundle(){let{bundle:e,meta:n}=await this.buildInstance.build();return{jsBundle:e,meta:n}}async start(){try{let{jsBundle:e,meta:n}=await this.buildAndGetBundle();if(!e)throw new Error("Build error, please check your edge-functions code!");V6(e),Wr("Waiting for edge-function dev server start...");let o=JSON.parse(n);this.routes=o.routes;let{DebugUrl:u,SessionId:r,WsLogUrl:f}=await s0t(e,this.devConfig.ProjectId,n);return this.devSessionId=r,this.destUrl=u,await iue(f),{destUrl:this.destUrl,builder:this.buildInstance,runner:this,watch:this.config.watchPaths,type:"edge-function",config:this.config,routes:this.routes,status:"started"}}catch(e){return{destUrl:null,builder:this.buildInstance,runner:this,watch:this.config.watchPaths,type:"edge-function",config:this.config,routes:[],status:"startFailed",error:e.message||String(e)}}}async handleFileChange(){let{jsBundle:e,meta:n}=await this.buildAndGetBundle();if(!e)throw new Error("Build error, please check your edge-functions code!");V6(e);let o=await iv("ModifyDebugFunction",{JSContent:e,SessionId:this.devSessionId,MetaData:n}).catch(u=>{throw console.log("Modify debug function failed",u),new Error(u)});if(o){o!=null&&o.Message&&ss(`Rebuild remote dev server failed: ${o.Message}`);let u=JSON.parse(n);this.routes=u.routes}return{destUrl:this.destUrl,builder:this.buildInstance,runner:this,watch:this.config.watchPaths,type:"edge-function",config:this.config,routes:this.routes}}stop(){}}});function a0t(t){let e=ui.default.extname(t).toLowerCase();return!(!aue.includes(e)&&!o0t.includes(e)||ui.default.basename(t).toLowerCase().endsWith(".sh"))}function sue(t){let e=ui.default.extname(t);return aue.includes(e)}var Ur,ui,oue,ro,aue,o0t,Yu,VC,uue=mt(()=>{Ur=cr(require("fs")),ui=cr(require("path")),oue=cr(require("os"));Ph();Hu();ro={FUNCTION:"./cloud-functions",OUTPUT_DIR:"./.edgeone/cloud-functions/api-python",OUTPUT_APP:"./.edgeone/cloud-functions/api-python/app.py",OUTPUT_META:"./.edgeone/cloud-functions/api-python/config.json",OUTPUT_REQUIREMENTS:"./.edgeone/cloud-functions/api-python/requirements.txt",DEPS_CACHE_FILE:"./.edgeone/cloud-functions/api-python/.deps-cache.json",CLOUD_FUNCTIONS_DIR:"./.edgeone/cloud-functions"},aue=[".py"],o0t=[".json",".yaml",".yml",".txt",".toml",".ini",".env"],Yu="3.10";VC=class{mode;env;silent;functionList;wrapPort=9e3;uvPath=null;uvFailed=!1;pythonPath=null;getPythonCommand(){try{return this.ensurePython()}catch{let e=this.detectPythonCommand();return(e==null?void 0:e.cmd)||null}}static async decide(){try{let e=Sn(ro.FUNCTION);if(!Ur.default.existsSync(e))return!1;let n=o=>{let u=Ur.default.readdirSync(o,{withFileTypes:!0});for(let r of u){let f=ui.default.join(o,r.name);if(r.isDirectory()){if(n(f))return!0}else if(r.isFile()&&sue(r.name))return!0}return!1};return n(e)}catch{return!1}}constructor(e){this.mode=e.mode||"prod",this.env=e.env||{},this.mode==="dev"&&(this.silent=!0),this.silent=e.silent||!1,this.functionList=[]}log(e){this.silent||Wr(e,"PythonFunctionBuilder")}warn(e){this.silent||vm(e,"PythonFunctionBuilder")}error(e){ss(e,"PythonFunctionBuilder")}scanPythonFiles(e,n=""){let o=[],u=Ur.default.readdirSync(e,{withFileTypes:!0});for(let f of u){let p=ui.default.join(e,f.name),y=n?ui.default.join(n,f.name):f.name;if(f.isDirectory())o.push(...this.scanPythonFiles(p,y));else if(f.isFile()&&sue(f.name)){let m=Ur.default.readFileSync(p,"utf-8");if(!this.hasFunctionEntryPoint(m))continue;let S=ui.default.basename(f.name,ui.default.extname(f.name)),C;S==="index"?C=n?`/${n.replace(/\\/g,"/")}`:"/":C=`/${y.replace(/\.py$/,"").replace(/\\/g,"/")}`;let A=[];C=C.replace(/\/\[\[([^\]]+)\]\]/g,($,j)=>(A.push(j),`/:${j}*`)).replace(/\/\[([^\]]+)\]/g,($,j)=>(A.push(j),`/:${j}`));let R=A.length>0,{methods:v,isFramework:z}=this.detectPythonHttpMethods(m);o.push({route:C,filePath:y.replace(/\\/g,"/"),fileName:S,isDynamic:R,paramNames:A,methods:v,isFramework:z})}}let r=new Map;for(let f of o){let p=r.get(f.route);p?(this.warn(`Route conflict detected! Route: ${f.route}`),this.warn(` File 1: ${p}`),this.warn(` File 2: ${f.filePath}`),this.warn(" Only the first file will be used.")):r.set(f.route,f.filePath)}return o}hasFunctionEntryPoint(e){return[/^def\s+handler\s*\(/m,/^def\s+Handler\s*\(/m,/^class\s+handler\s*\(/m,/^class\s+Handler\s*\(/m,/^app\s*(?::\s*\S+\s*)?=\s*/m,/^application\s*(?::\s*\S+\s*)?=\s*/m,/^urlpatterns\s*=\s*/m,/get_wsgi_application\s*\(/,/get_asgi_application\s*\(/].some(o=>o.test(e))}detectPythonHttpMethods(e){if([/^app\s*(?::\s*\S+\s*)?=\s*/m,/^application\s*(?::\s*\S+\s*)?=\s*/m,/^urlpatterns\s*=\s*/m,/get_wsgi_application\s*\(/,/get_asgi_application\s*\(/].some(u=>u.test(e)))return{methods:[],isFramework:!0};if(/^class\s+(?:handler|Handler)\s*\([\s\S]*?BaseHTTPRequestHandler/m.test(e)){let u=[{pattern:/def\s+do_GET\s*\(/m,method:"GET"},{pattern:/def\s+do_POST\s*\(/m,method:"POST"},{pattern:/def\s+do_PUT\s*\(/m,method:"PUT"},{pattern:/def\s+do_DELETE\s*\(/m,method:"DELETE"},{pattern:/def\s+do_PATCH\s*\(/m,method:"PATCH"},{pattern:/def\s+do_HEAD\s*\(/m,method:"HEAD"},{pattern:/def\s+do_OPTIONS\s*\(/m,method:"OPTIONS"}],r=[];for(let{pattern:f,method:p}of u)f.test(e)&&r.push(p);return{methods:r.length>0?r:["GET"],isFramework:!1}}return{methods:[],isFramework:!1}}checkFileNameConflicts(){let e=new Set(["fastapi","flask","django","starlette","uvicorn","pydantic","requests","httpx","aiohttp","urllib3","numpy","pandas","sqlalchemy","redis","celery","boto3","pillow","pytest","json","os","sys","io","re","typing","collections","datetime","time","random","math","string","logging","asyncio","functools","itertools","pathlib","shutil","tempfile","subprocess","threading","multiprocessing","socket","email","http","html","xml","csv","base64","hashlib","hmac","secrets","uuid","copy","pickle","sqlite3","contextlib","abc","dataclasses","enum","types"]),n=Sn(ro.FUNCTION),o=[],u=(r,f="")=>{if(!Ur.default.existsSync(r))return;let p=Ur.default.readdirSync(r,{withFileTypes:!0});for(let y of p)if(y.isFile()&&y.name.endsWith(".py")){let m=y.name.replace(/\.py$/,"");if(e.has(m.toLowerCase())){let S=f?ui.default.join(f,y.name):y.name;o.push(S)}}else if(y.isDirectory()&&!["__pycache__",".git","node_modules","venv",".venv","scripts","tests",".pytest_cache"].includes(y.name)){if(e.has(y.name.toLowerCase())){let S=f?ui.default.join(f,y.name):y.name;o.push(S+"/")}u(ui.default.join(r,y.name),f?ui.default.join(f,y.name):y.name)}};if(u(n),o.length>0){this.error("File name conflict detected!"),this.error("The following files/directories have names that conflict with Python modules:");for(let r of o)this.error(` - ${r}`);throw this.error('This will cause "cannot import name" errors when Python tries to import these modules.'),this.error("Please rename these files/directories to avoid conflicts."),this.error('For example: "fastapi.py" \u2192 "api.py" or "my_fastapi.py"'),new Error(`File name conflict: ${o.join(", ")}`)}}prepareOutputDirectory(e){if(!Ur.default.existsSync(e)){Ur.default.mkdirSync(e,{recursive:!0});return}let n=[/\.dist-info$/,/\.egg-info$/,/\.deps-cache\.json$/],o=new Set(["typing_extensions.py","six.py","bottle.py","colorsys.py"]),u=new Set(["app.py","config.json","requirements.txt"]),r=this.getUserPyFileNames(),f=new Set;for(let y of r)!y.includes(ui.default.sep)&&!y.includes("/")&&f.add(y);let p=Ur.default.readdirSync(e,{withFileTypes:!0});for(let y of p){let m=ui.default.join(e,y.name);if(!n.some(S=>S.test(y.name))&&!o.has(y.name)){if(u.has(y.name)){y.isDirectory()?Ur.default.rmSync(m,{recursive:!0,force:!0}):Ur.default.unlinkSync(m);continue}if(y.name.endsWith(".py")&&f.has(y.name)){Ur.default.unlinkSync(m);continue}y.isDirectory()&&this.getUserDirNames().has(y.name)&&Ur.default.rmSync(m,{recursive:!0,force:!0})}}}getUserPyFileNames(){let e=Sn(ro.FUNCTION),n=new Set;if(!Ur.default.existsSync(e))return n;let o=(u,r="")=>{let f=Ur.default.readdirSync(u,{withFileTypes:!0});for(let p of f)if(p.isFile()&&p.name.endsWith(".py")){let y=r?ui.default.join(r,p.name):p.name;n.add(y)}else p.isDirectory()&&!p.name.startsWith(".")&&p.name!=="__pycache__"&&o(ui.default.join(u,p.name),r?ui.default.join(r,p.name):p.name)};return o(e),n}getUserDirNames(){let e=Sn(ro.FUNCTION),n=new Set;if(!Ur.default.existsSync(e))return n;let o=Ur.default.readdirSync(e,{withFileTypes:!0});for(let u of o)u.isDirectory()&&!u.name.startsWith(".")&&u.name!=="__pycache__"&&n.add(u.name);return n}copyUserFiles(){this.checkFileNameConflicts();let e=Sn(ro.FUNCTION),n=Sn(ro.OUTPUT_DIR),o=(u,r,f="")=>{let p=Ur.default.readdirSync(u,{withFileTypes:!0});for(let y of p){let m=ui.default.join(u,y.name),S=ui.default.join(r,y.name);if(y.isDirectory()){if(["__pycache__",".git","node_modules","venv",".venv","scripts","tests",".pytest_cache"].includes(y.name))continue;Ur.default.existsSync(S)||Ur.default.mkdirSync(S,{recursive:!0}),o(m,S,ui.default.join(f,y.name))}else y.isFile()&&a0t(y.name)&&Ur.default.copyFileSync(m,S)}};o(e,n)}routeToRegex(e){return`^${e.replace(/:([^/]+)\*/g,"(.+)").replace(/:([^/]+)/g,"([^/]+)")}$`}generateMetaJson(){let o={routes:[...this.functionList].sort((r,f)=>{if(!r.isDynamic&&f.isDynamic)return-1;if(r.isDynamic&&!f.isDynamic)return 1;let p=r.route.includes(":")&&r.route.includes("*"),y=f.route.includes(":")&&f.route.includes("*");return!p&&y?-1:p&&!y?1:f.route.length-r.route.length}).map(r=>{let f=r.route.includes(":")&&r.route.includes("*"),p={src:r.isDynamic?this.routeToRegex(r.route):`^${r.route}$`,path:r.route,file:r.filePath};return r.isDynamic&&r.paramNames.length>0&&(p.params=r.paramNames),f&&(p.isCatchAll=!0),p.method=r.methods,p.isFramework=r.isFramework,p})},u=Sn(ro.OUTPUT_META);Ur.default.writeFileSync(u,JSON.stringify(o,null,2))}detectFrameworksFromCode(){let e=[],n=Sn(ro.FUNCTION),o={fastapi:"fastapi>=0.100.0",django:"django>=4.0",starlette:"starlette>=0.27.0",sanic:"sanic>=21.0",httptools:"httptools>=0.5.0",quart:"quart>=0.18.0",tornado:"tornado>=6.0",aiohttp:"aiohttp>=3.8.0",bottle:"bottle>=0.12.0",falcon:"falcon>=3.0.0",httpx:"httpx>=0.24.0",requests:"requests>=2.28.0",pydantic:"pydantic>=2.0.0",sqlalchemy:"sqlalchemy>=2.0.0",redis:"redis>=4.0.0",pymongo:"pymongo>=4.0.0",psycopg2:"psycopg2-binary>=2.9.0",mysql:"mysql-connector-python>=8.0.0",celery:"celery>=5.0.0",jwt:"pyjwt>=2.0.0",bcrypt:"bcrypt>=4.0.0",cryptography:"cryptography>=40.0.0",pillow:"pillow>=9.0.0",numpy:"numpy>=1.24.0",pandas:"pandas>=2.0.0"},u={sanic:["httptools>=0.5.0",'uvloop>=0.17.0;sys_platform!="win32"'],uvicorn:["httptools>=0.5.0",'uvloop>=0.17.0;sys_platform!="win32"']},r=p=>{if(Ur.default.existsSync(p))for(let y of Ur.default.readdirSync(p,{withFileTypes:!0})){let m=ui.default.join(p,y.name);if(y.isDirectory())["__pycache__",".venv","venv","node_modules",".git","scripts","tests",".pytest_cache"].includes(y.name)||r(m);else if(y.isFile()&&y.name.endsWith(".py"))try{let S=Ur.default.readFileSync(m,"utf-8"),C=/(?:^|\n)\s*(?:from\s+(\w+)|import\s+(\w+))/g,A;for(;(A=C.exec(S))!==null;){let R=(A[1]||A[2]).toLowerCase();o[R]&&!e.includes(o[R])&&e.push(o[R])}}catch{}}};r(n);let f=e.map(p=>p.split(/[>=<]/)[0].toLowerCase());for(let[p,y]of Object.entries(u))if(f.includes(p))for(let m of y)e.includes(m)||e.push(m);return e}generateRequirements(){let e=["werkzeug>=2.0.0","flask>=2.0.0","uvicorn>=0.20.0"],n=this.detectFrameworksFromCode(),o=Sn("requirements.txt"),u=Sn(ui.default.join(ro.FUNCTION,"requirements.txt")),r=[];Ur.default.existsSync(u)?r=Ur.default.readFileSync(u,"utf-8").split(`
3852
+ `+n)}function lv(t,e,n,o,u,r){if(t.listenerCount("wsClientError")){let f=new Error(u);Error.captureStackTrace(f,lv),t.emit("wsClientError",f,n,e)}else aE(n,o,u,r)}});var t0t,r0t,n0t,tue,i0t,rue,nue=mt(()=>{t0t=cr(Wae(),1),r0t=cr(O6(),1),n0t=cr(R6(),1),tue=cr(UC(),1),i0t=cr(eue(),1),rue=tue.default});function iue(t){return new Promise((e,n)=>{let o=new rue(t);o.on("error",console.error),o.on("open",function(){e(!0)}),o.on("close",function(){Wr("Function log server disconnected")}),o.on("message",function(r){let{logs:f,event_info:p,exceptions:y}=JSON.parse(r.toString());f.forEach(m=>{let{timestamp:S,level:C,content:A}=m;C==="INFO"?Z$(A,S):C==="WARN"?Q$(A,S):C==="ERROR"&&uO(A,S)}),y.forEach(m=>{uO(m.content,m.timestamp)})})})}function V6(t){let e=Buffer.byteLength(t||"","utf8"),n=(e/(1024*1024)).toFixed(2),o=(H6.CODE_SIZE/(1024*1024)).toFixed(0);e>H6.CODE_SIZE&&ss(`Code package size (${n} MB) exceeds the limit of ${o} MB. Please reduce your code size.`),e>H6.CODE_SIZE*.8&&vm(`Code package size (${n} MB) is approaching the limit of ${o} MB. Consider optimizing your code.`)}var H6,HC=mt(()=>{nue();Hu();Ph();m6();H6={CODE_SIZE:5*1024*1024}});async function s0t(t,e,n){let o=await iv("CreateDebugFunction",{JSContent:t,ProjectId:e,MetaData:n});if(o!=null&&o.Error)throw new Error("Start remote dev server failed: "+o.Error.Message);if(!o||!o.WsLogUrl||!o.DebugUrl||!o.SessionId)throw process.env.DEBUG&&console.error("Start remote dev server failed.",o),new Error("Start remote dev server failed.");return o}var xx,W6=mt(()=>{Joe();Hu();xC();HC();uE();HC();xx=class{devSessionId;config;destUrl;routes;constructor(e){this.devConfig=e,this.config={...e,watchPaths:yg(this)};let n=new AC({mode:"dev",env:e.env});this.buildInstance=n}async buildAndGetBundle(){let{bundle:e,meta:n}=await this.buildInstance.build();return{jsBundle:e,meta:n}}async start(){try{let{jsBundle:e,meta:n}=await this.buildAndGetBundle();if(!e)throw new Error("Build error, please check your edge-functions code!");V6(e),Wr("Waiting for edge-function dev server start...");let o=JSON.parse(n);this.routes=o.routes;let{DebugUrl:u,SessionId:r,WsLogUrl:f}=await s0t(e,this.devConfig.ProjectId,n);return this.devSessionId=r,this.destUrl=u,await iue(f),{destUrl:this.destUrl,builder:this.buildInstance,runner:this,watch:this.config.watchPaths,type:"edge-function",config:this.config,routes:this.routes,status:"started"}}catch(e){return{destUrl:null,builder:this.buildInstance,runner:this,watch:this.config.watchPaths,type:"edge-function",config:this.config,routes:[],status:"startFailed",error:e.message||String(e)}}}async handleFileChange(){let{jsBundle:e,meta:n}=await this.buildAndGetBundle();if(!e)throw new Error("Build error, please check your edge-functions code!");V6(e);let o=await iv("ModifyDebugFunction",{JSContent:e,SessionId:this.devSessionId,MetaData:n}).catch(u=>{throw console.log("Modify debug function failed",u),new Error(u)});if(o){o!=null&&o.Message&&ss(`Rebuild remote dev server failed: ${o.Message}`);let u=JSON.parse(n);this.routes=u.routes}return{destUrl:this.destUrl,builder:this.buildInstance,runner:this,watch:this.config.watchPaths,type:"edge-function",config:this.config,routes:this.routes}}stop(){}}});function a0t(t){let e=ui.default.extname(t).toLowerCase();return!(!aue.includes(e)&&!o0t.includes(e)||ui.default.basename(t).toLowerCase().endsWith(".sh"))}function sue(t){let e=ui.default.extname(t);return aue.includes(e)}var Ur,ui,oue,ro,aue,o0t,Yu,VC,uue=mt(()=>{Ur=cr(require("fs")),ui=cr(require("path")),oue=cr(require("os"));Ph();Hu();ro={FUNCTION:"./cloud-functions",OUTPUT_DIR:"./.edgeone/cloud-functions/api-python",OUTPUT_APP:"./.edgeone/cloud-functions/api-python/app.py",OUTPUT_META:"./.edgeone/cloud-functions/api-python/config.json",OUTPUT_REQUIREMENTS:"./.edgeone/cloud-functions/api-python/requirements.txt",DEPS_CACHE_FILE:"./.edgeone/cloud-functions/api-python/.deps-cache.json",CLOUD_FUNCTIONS_DIR:"./.edgeone/cloud-functions"},aue=[".py"],o0t=[".json",".yaml",".yml",".txt",".toml",".ini",".env"],Yu="3.10";VC=class{mode;env;silent;functionList;wrapPort=9e3;uvPath=null;uvFailed=!1;pythonPath=null;getPythonCommand(){try{return this.ensurePython()}catch{let e=this.detectPythonCommand();return(e==null?void 0:e.cmd)||null}}static async decide(){try{let e=Sn(ro.FUNCTION);if(!Ur.default.existsSync(e))return!1;let n=o=>{let u=Ur.default.readdirSync(o,{withFileTypes:!0});for(let r of u){let f=ui.default.join(o,r.name);if(r.isDirectory()){if(n(f))return!0}else if(r.isFile()&&sue(r.name))return!0}return!1};return n(e)}catch{return!1}}constructor(e){this.mode=e.mode||"prod",this.env=e.env||{},this.mode==="dev"&&(this.silent=!0),this.silent=e.silent||!1,this.functionList=[]}log(e){this.silent||Wr(e,"PythonFunctionBuilder")}warn(e){this.silent||vm(e,"PythonFunctionBuilder")}error(e){ss(e,"PythonFunctionBuilder")}scanPythonFiles(e,n=""){let o=[],u=Ur.default.readdirSync(e,{withFileTypes:!0});for(let f of u){let p=ui.default.join(e,f.name),y=n?ui.default.join(n,f.name):f.name;if(f.isDirectory())o.push(...this.scanPythonFiles(p,y));else if(f.isFile()&&sue(f.name)){let m=Ur.default.readFileSync(p,"utf-8");if(!this.hasFunctionEntryPoint(m))continue;let S=ui.default.basename(f.name,ui.default.extname(f.name)),C;S==="index"?C=n?`/${n.replace(/\\/g,"/")}`:"/":C=`/${y.replace(/\.py$/,"").replace(/\\/g,"/")}`;let A=[];C=C.replace(/\/\[\[([^\]]+)\]\]/g,($,j)=>(A.push(j),`/:${j}*`)).replace(/\/\[([^\]]+)\]/g,($,j)=>(A.push(j),`/:${j}`));let R=A.length>0,{methods:v,isFramework:z}=this.detectPythonHttpMethods(m);o.push({route:C,filePath:y.replace(/\\/g,"/"),fileName:S,isDynamic:R,paramNames:A,methods:v,isFramework:z})}}let r=new Map;for(let f of o){let p=r.get(f.route);p?(this.warn(`Route conflict detected! Route: ${f.route}`),this.warn(` File 1: ${p}`),this.warn(` File 2: ${f.filePath}`),this.warn(" Only the first file will be used.")):r.set(f.route,f.filePath)}return o}hasFunctionEntryPoint(e){return[/^def\s+handler\s*\(/m,/^def\s+Handler\s*\(/m,/^class\s+handler\s*\(/m,/^class\s+Handler\s*\(/m,/^app\s*(?::\s*\S+\s*)?=\s*/m,/^application\s*(?::\s*\S+\s*)?=\s*/m,/^urlpatterns\s*=\s*/m,/get_wsgi_application\s*\(/,/get_asgi_application\s*\(/].some(o=>o.test(e))}detectPythonHttpMethods(e){if([/^app\s*(?::\s*\S+\s*)?=\s*/m,/^application\s*(?::\s*\S+\s*)?=\s*/m,/^urlpatterns\s*=\s*/m,/get_wsgi_application\s*\(/,/get_asgi_application\s*\(/].some(u=>u.test(e)))return{methods:[],isFramework:!0};if(/^class\s+(?:handler|Handler)\s*\([\s\S]*?BaseHTTPRequestHandler/m.test(e)){let u=[{pattern:/def\s+do_GET\s*\(/m,method:"GET"},{pattern:/def\s+do_POST\s*\(/m,method:"POST"},{pattern:/def\s+do_PUT\s*\(/m,method:"PUT"},{pattern:/def\s+do_DELETE\s*\(/m,method:"DELETE"},{pattern:/def\s+do_PATCH\s*\(/m,method:"PATCH"},{pattern:/def\s+do_HEAD\s*\(/m,method:"HEAD"},{pattern:/def\s+do_OPTIONS\s*\(/m,method:"OPTIONS"}],r=[];for(let{pattern:f,method:p}of u)f.test(e)&&r.push(p);return{methods:r.length>0?r:["GET"],isFramework:!1}}return{methods:[],isFramework:!1}}checkFileNameConflicts(){let e=new Set(["fastapi","flask","django","starlette","uvicorn","pydantic","requests","httpx","aiohttp","urllib3","numpy","pandas","sqlalchemy","redis","celery","boto3","pillow","pytest","json","os","sys","io","re","typing","collections","datetime","time","random","math","string","logging","asyncio","functools","itertools","pathlib","shutil","tempfile","subprocess","threading","multiprocessing","socket","email","http","html","xml","csv","base64","hashlib","hmac","secrets","uuid","copy","pickle","sqlite3","contextlib","abc","dataclasses","enum","types"]),n=Sn(ro.FUNCTION),o=[],u=(r,f="")=>{if(!Ur.default.existsSync(r))return;let p=Ur.default.readdirSync(r,{withFileTypes:!0});for(let y of p)if(y.isFile()&&y.name.endsWith(".py")){let m=y.name.replace(/\.py$/,"");if(e.has(m.toLowerCase())){let S=f?ui.default.join(f,y.name):y.name;o.push(S)}}else if(y.isDirectory()&&!["__pycache__",".git","node_modules","venv",".venv","scripts","tests",".pytest_cache"].includes(y.name)){if(e.has(y.name.toLowerCase())){let S=f?ui.default.join(f,y.name):y.name;o.push(S+"/")}u(ui.default.join(r,y.name),f?ui.default.join(f,y.name):y.name)}};if(u(n),o.length>0){this.error("File name conflict detected!"),this.error("The following files/directories have names that conflict with Python modules:");for(let r of o)this.error(` - ${r}`);throw this.error('This will cause "cannot import name" errors when Python tries to import these modules.'),this.error("Please rename these files/directories to avoid conflicts."),this.error('For example: "fastapi.py" \u2192 "api.py" or "my_fastapi.py"'),new Error(`File name conflict: ${o.join(", ")}`)}}prepareOutputDirectory(e){if(!Ur.default.existsSync(e)){Ur.default.mkdirSync(e,{recursive:!0});return}let n=[/\.dist-info$/,/\.egg-info$/,/\.deps-cache\.json$/],o=new Set(["typing_extensions.py","six.py","bottle.py","colorsys.py"]),u=new Set(["app.py","config.json","requirements.txt"]),r=this.getUserPyFileNames(),f=new Set;for(let y of r)!y.includes(ui.default.sep)&&!y.includes("/")&&f.add(y);let p=Ur.default.readdirSync(e,{withFileTypes:!0});for(let y of p){let m=ui.default.join(e,y.name);if(!n.some(S=>S.test(y.name))&&!o.has(y.name)){if(u.has(y.name)){y.isDirectory()?Ur.default.rmSync(m,{recursive:!0,force:!0}):Ur.default.unlinkSync(m);continue}if(y.name.endsWith(".py")&&f.has(y.name)){Ur.default.unlinkSync(m);continue}y.isDirectory()&&this.getUserDirNames().has(y.name)&&Ur.default.rmSync(m,{recursive:!0,force:!0})}}}getUserPyFileNames(){let e=Sn(ro.FUNCTION),n=new Set;if(!Ur.default.existsSync(e))return n;let o=(u,r="")=>{let f=Ur.default.readdirSync(u,{withFileTypes:!0});for(let p of f)if(p.isFile()&&p.name.endsWith(".py")){let y=r?ui.default.join(r,p.name):p.name;n.add(y)}else p.isDirectory()&&!p.name.startsWith(".")&&p.name!=="__pycache__"&&o(ui.default.join(u,p.name),r?ui.default.join(r,p.name):p.name)};return o(e),n}getUserDirNames(){let e=Sn(ro.FUNCTION),n=new Set;if(!Ur.default.existsSync(e))return n;let o=Ur.default.readdirSync(e,{withFileTypes:!0});for(let u of o)u.isDirectory()&&!u.name.startsWith(".")&&u.name!=="__pycache__"&&n.add(u.name);return n}copyUserFiles(){this.checkFileNameConflicts();let e=Sn(ro.FUNCTION),n=Sn(ro.OUTPUT_DIR),o=(u,r,f="")=>{let p=Ur.default.readdirSync(u,{withFileTypes:!0});for(let y of p){let m=ui.default.join(u,y.name),S=ui.default.join(r,y.name);if(y.isDirectory()){if(["__pycache__",".git","node_modules","venv",".venv","scripts","tests",".pytest_cache"].includes(y.name))continue;Ur.default.existsSync(S)||Ur.default.mkdirSync(S,{recursive:!0}),o(m,S,ui.default.join(f,y.name))}else y.isFile()&&a0t(y.name)&&Ur.default.copyFileSync(m,S)}};o(e,n)}routeToRegex(e){let n=/:([^/]+)\*/.test(e),o=e.replace(/:([^/]+)\*/g,"(.*)").replace(/:([^/]+)/g,"([^/]+)");return n&&(o=o.replace(/\/\(\.\*\)/,"(?:/(.*))?")),`^${o}$`}generateMetaJson(){let o={routes:[...this.functionList].sort((r,f)=>{if(!r.isDynamic&&f.isDynamic)return-1;if(r.isDynamic&&!f.isDynamic)return 1;let p=r.route.includes(":")&&r.route.includes("*"),y=f.route.includes(":")&&f.route.includes("*");return!p&&y?-1:p&&!y?1:f.route.length-r.route.length}).map(r=>{let f=r.route.includes(":")&&r.route.includes("*"),p={src:r.isDynamic?this.routeToRegex(r.route):`^${r.route}(?:/.*)?$`,path:r.route,file:r.filePath};return r.isDynamic&&r.paramNames.length>0&&(p.params=r.paramNames),f&&(p.isCatchAll=!0),p.method=r.methods,p.isFramework=r.isFramework,p})},u=Sn(ro.OUTPUT_META);Ur.default.writeFileSync(u,JSON.stringify(o,null,2))}detectFrameworksFromCode(){let e=[],n=Sn(ro.FUNCTION),o={fastapi:"fastapi>=0.100.0",django:"django>=4.0",starlette:"starlette>=0.27.0",sanic:"sanic>=21.0",httptools:"httptools>=0.5.0",quart:"quart>=0.18.0",tornado:"tornado>=6.0",aiohttp:"aiohttp>=3.8.0",bottle:"bottle>=0.12.0",falcon:"falcon>=3.0.0",httpx:"httpx>=0.24.0",requests:"requests>=2.28.0",pydantic:"pydantic>=2.0.0",sqlalchemy:"sqlalchemy>=2.0.0",redis:"redis>=4.0.0",pymongo:"pymongo>=4.0.0",psycopg2:"psycopg2-binary>=2.9.0",mysql:"mysql-connector-python>=8.0.0",celery:"celery>=5.0.0",jwt:"pyjwt>=2.0.0",bcrypt:"bcrypt>=4.0.0",cryptography:"cryptography>=40.0.0",pillow:"pillow>=9.0.0",numpy:"numpy>=1.24.0",pandas:"pandas>=2.0.0"},u={sanic:["httptools>=0.5.0",'uvloop>=0.17.0;sys_platform!="win32"'],uvicorn:["httptools>=0.5.0",'uvloop>=0.17.0;sys_platform!="win32"']},r=p=>{if(Ur.default.existsSync(p))for(let y of Ur.default.readdirSync(p,{withFileTypes:!0})){let m=ui.default.join(p,y.name);if(y.isDirectory())["__pycache__",".venv","venv","node_modules",".git","scripts","tests",".pytest_cache"].includes(y.name)||r(m);else if(y.isFile()&&y.name.endsWith(".py"))try{let S=Ur.default.readFileSync(m,"utf-8"),C=/(?:^|\n)\s*(?:from\s+(\w+)|import\s+(\w+))/g,A;for(;(A=C.exec(S))!==null;){let R=(A[1]||A[2]).toLowerCase();o[R]&&!e.includes(o[R])&&e.push(o[R])}}catch{}}};r(n);let f=e.map(p=>p.split(/[>=<]/)[0].toLowerCase());for(let[p,y]of Object.entries(u))if(f.includes(p))for(let m of y)e.includes(m)||e.push(m);return e}generateRequirements(){let e=["werkzeug>=2.0.0","flask>=2.0.0","uvicorn>=0.20.0"],n=this.detectFrameworksFromCode(),o=Sn("requirements.txt"),u=Sn(ui.default.join(ro.FUNCTION,"requirements.txt")),r=[];Ur.default.existsSync(u)?r=Ur.default.readFileSync(u,"utf-8").split(`
3853
3853
  `).filter(m=>m.trim()&&!m.startsWith("#")):Ur.default.existsSync(o)&&(r=Ur.default.readFileSync(o,"utf-8").split(`
3854
3854
  `).filter(m=>m.trim()&&!m.startsWith("#")));let f=[...new Set([...e,...n,...r])],p=Sn(ro.OUTPUT_REQUIREMENTS);Ur.default.writeFileSync(p,f.join(`
3855
3855
  `))}getPythonVersion(e){try{let{execSync:n}=require("child_process"),u=n(`${e} --version`,{encoding:"utf-8",stdio:"pipe"}).match(/Python (\d+\.\d+)/);return u?u[1]:null}catch{return null}}ensureUv(){if(this.uvPath)return this.uvPath;if(this.uvFailed)throw new Error("uv installation previously failed, skipping retry");let{execSync:e}=require("child_process"),n=["uv"],o=process.env.HOME||process.env.USERPROFILE||"";o&&(n.push(ui.default.join(o,".local","bin","uv")),n.push(ui.default.join(o,".cargo","bin","uv")));let u=ui.default.join(oue.default.tmpdir(),"edgeone-uv"),r=ui.default.join(u,"bin","uv");n.push(r);for(let y of n)try{let m=e(`${y} --version`,{encoding:"utf-8",stdio:"pipe"}).trim();return this.log(`Using ${m}`),this.uvPath=y,y}catch{continue}this.log("uv not found, installing...");try{Ur.default.mkdirSync(u,{recursive:!0}),process.platform==="win32"?e('powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"',{stdio:"pipe",env:{...process.env,UV_NO_MODIFY_PATH:"1",UV_INSTALL_DIR:u}}):e("curl -LsSf https://astral.sh/uv/install.sh | sh",{stdio:"pipe",env:{...process.env,UV_NO_MODIFY_PATH:"1",UV_INSTALL_DIR:u}});for(let y of n)try{let m=e(`${y} --version`,{encoding:"utf-8",stdio:"pipe"}).trim();return this.log(`Installed ${m}`),this.uvPath=y,y}catch{continue}}catch(y){this.warn(`Shell installation failed: ${y.message}`)}this.log("Trying pip install uv as fallback...");let f=["pip3","pip","python3 -m pip","python -m pip"],p=ui.default.join(u,"pip-packages");for(let y of f){let m=[`${y} install uv --quiet --target ${p}`,`${y} install uv --quiet --user`,`${y} install uv --quiet`];for(let S of m)try{e(S,{stdio:"pipe",env:{...process.env}});let C=["uv",ui.default.join(p,"bin","uv"),ui.default.join(p,"uv")];for(let A of C)try{let R=e(`${A} --version`,{encoding:"utf-8",stdio:"pipe"}).trim();return this.log(`Installed ${R} (via pip)`),this.uvPath=A,A}catch{continue}}catch{continue}}throw this.uvFailed=!0,new Error(`Failed to install uv. Please install manually:
@@ -4254,21 +4254,33 @@ def _scan_for_asgi_routes():
4254
4254
 
4255
4255
  def _extract_static_prefix(mount_path):
4256
4256
  """
4257
- \u4ECE\u8DEF\u7531\u6A21\u5F0F\u4E2D\u63D0\u53D6\u9759\u6001\u524D\u7F00\u90E8\u5206\u3002
4258
- \u4F8B\u5982\uFF1A'/api/:default*' -> '/api'
4259
- '/api/users/:id' -> '/api/users'
4260
- '/api' -> '/api'
4257
+ \u4ECE\u8DEF\u7531\u6A21\u5F0F\u4E2D\u63D0\u53D6\u9759\u6001\u524D\u7F00\u90E8\u5206\uFF0C\u7528\u4E8E\u8DEF\u5F84\u5265\u79BB\u3002
4258
+
4259
+ \u4E09\u79CD\u60C5\u51B5\uFF1A
4260
+ 1. \u9759\u6001\u6302\u8F7D\u8DEF\u5F84\uFF08\u5982 /py\uFF09\u2192 \u8FD4\u56DE '/py'\uFF0C\u9700\u8981\u5265\u79BB
4261
+ \u7528\u6237\u4EE3\u7801\uFF1A@app.get("/items")\uFF0C\u8BF7\u6C42 /py/items \u2192 \u5265\u79BB\u4E3A /items
4262
+ 2. catch-all \u8DEF\u7531\uFF08\u5982 /api/:default*\uFF09\u2192 \u8FD4\u56DE '/api'\uFF0C\u9700\u8981\u5265\u79BB
4263
+ \u7528\u6237\u4EE3\u7801\uFF1A@app.get("/health")\uFF0C\u8BF7\u6C42 /api/health \u2192 \u5265\u79BB\u4E3A /health
4264
+ 3. \u666E\u901A\u52A8\u6001\u53C2\u6570\u8DEF\u7531\uFF08\u5982 /api/:id, /api/users/:userId/posts\uFF09\u2192 \u8FD4\u56DE '/'\uFF0C\u4E0D\u5265\u79BB
4265
+ \u7528\u6237\u4EE3\u7801\uFF1A@app.get("/api/{id}")\uFF0C\u8BF7\u6C42 /api/123 \u2192 \u4E0D\u5265\u79BB\uFF0C\u4FDD\u6301 /api/123
4266
+
4267
+ \u533A\u5206\u903B\u8F91\uFF1Acatch-all \u53C2\u6570\u4EE5 * \u7ED3\u5C3E\uFF08:param*\uFF09\uFF0C\u666E\u901A\u52A8\u6001\u53C2\u6570\u4E0D\u5E26 *\uFF08:param\uFF09\u3002
4261
4268
  """
4262
4269
  if ':' not in mount_path:
4263
4270
  return mount_path
4264
- # \u627E\u5230\u7B2C\u4E00\u4E2A\u52A8\u6001\u53C2\u6570\u7684\u4F4D\u7F6E
4265
- parts = mount_path.split('/')
4266
- static_parts = []
4267
- for part in parts:
4268
- if ':' in part:
4269
- break
4270
- static_parts.append(part)
4271
- return '/'.join(static_parts) or '/'
4271
+ # catch-all \u8DEF\u7531\uFF08:param*\uFF09\uFF1A\u63D0\u53D6\u52A8\u6001\u53C2\u6570\u524D\u7684\u9759\u6001\u524D\u7F00\u5E76\u5265\u79BB
4272
+ # \u56E0\u4E3A catch-all \u6587\u4EF6\u662F\u6574\u4E2A\u5B50\u8DEF\u5F84\u7684\u5165\u53E3\uFF0C\u7528\u6237\u6846\u67B6\u4EE3\u7801\u4E2D\u4F7F\u7528\u76F8\u5BF9\u8DEF\u5F84
4273
+ if '*' in mount_path:
4274
+ parts = mount_path.split('/')
4275
+ static_parts = []
4276
+ for part in parts:
4277
+ if ':' in part:
4278
+ break
4279
+ static_parts.append(part)
4280
+ return '/'.join(static_parts) or '/'
4281
+ # \u666E\u901A\u52A8\u6001\u53C2\u6570\u8DEF\u7531\uFF1A\u4E0D\u505A\u8DEF\u5F84\u5265\u79BB
4282
+ # \u56E0\u4E3A\u52A8\u6001\u8DEF\u7531\u6587\u4EF6\u4E2D\u7684\u6846\u67B6\u8DEF\u7531\u5B9A\u4E49\u5305\u542B\u5B8C\u6574\u8DEF\u5F84
4283
+ return '/'
4272
4284
 
4273
4285
  class ASGIPathStripMiddleware:
4274
4286
  """
@@ -4284,6 +4296,12 @@ class ASGIPathStripMiddleware:
4284
4296
  self.mount_path = mount_path
4285
4297
  # \u63D0\u53D6\u9759\u6001\u524D\u7F00\u7528\u4E8E\u8DEF\u5F84\u5265\u79BB
4286
4298
  self.static_prefix = _extract_static_prefix(mount_path)
4299
+ # \u7981\u7528 FastAPI/Starlette \u7684 redirect_slashes
4300
+ # \u907F\u514D 307 \u91CD\u5B9A\u5411\u5230\u5185\u90E8\u57DF\u540D\u5BFC\u81F4\u5BA2\u6237\u7AEF 404
4301
+ # \u6539\u4E3A\u5728\u4E2D\u95F4\u4EF6\u5C42\u81EA\u52A8\u5904\u7406\u5C3E\u90E8\u659C\u6760\u5339\u914D
4302
+ router = getattr(app, 'router', None)
4303
+ if router and hasattr(router, 'redirect_slashes'):
4304
+ router.redirect_slashes = False
4287
4305
 
4288
4306
  async def __call__(self, scope, receive, send):
4289
4307
  if scope['type'] in ('http', 'websocket'):
@@ -4304,23 +4322,80 @@ class ASGIPathStripMiddleware:
4304
4322
  if raw_path and raw_path.startswith(prefix_bytes):
4305
4323
  scope['raw_path'] = raw_path[len(prefix_bytes):] or b'/'
4306
4324
 
4307
- # \u5305\u88C5 send \u6CE8\u5165 Pages header \u548C\u65E5\u5FD7
4308
- response_logged = False
4309
- async def pages_send(message):
4310
- nonlocal response_logged
4311
- if message['type'] == 'http.response.start':
4312
- status_code = message.get('status', 200)
4313
- headers = list(message.get('headers', []))
4314
- _pages_inject_asgi_headers(headers, status_code)
4315
- message = dict(message)
4316
- message['headers'] = headers
4317
- if not response_logged:
4318
- response_logged = True
4319
- elapsed_ms = (time.time() - start_time) * 1000
4320
- _pages_log_response(request_method, request_path, status_code, elapsed_ms)
4321
- await send(message)
4322
-
4323
- await self.app(scope, receive, pages_send)
4325
+ # \u5148\u7528\u539F\u8DEF\u5F84\u5C1D\u8BD5\uFF0C\u5982\u679C 404 \u4E14\u8DEF\u5F84\u4E0D\u4EE5 / \u7ED3\u5C3E\uFF0C\u81EA\u52A8\u8865 / \u91CD\u8BD5
4326
+ # \u89E3\u51B3 redirect_slashes \u7981\u7528\u540E /items \u5339\u914D\u4E0D\u5230 /items/ \u7684\u95EE\u9898
4327
+ # \u6CE8\u610F\uFF1A\u53EA\u5BF9\u65E0 body \u7684\u8BF7\u6C42\uFF08GET/HEAD/OPTIONS\uFF09\u505A probe+retry
4328
+ # \u6709 body \u7684\u8BF7\u6C42\uFF08POST/PUT/PATCH/DELETE\uFF09\u4E0D\u80FD\u91CD\u8BD5\uFF0C\u56E0\u4E3A receive \u6D41\u4F1A\u88AB\u6D88\u8D39
4329
+ current_path = scope.get('path', '/')
4330
+ method = scope.get('method', 'GET').upper()
4331
+ can_retry = method in ('GET', 'HEAD', 'OPTIONS') and current_path != '/' and not current_path.endswith('/')
4332
+
4333
+ if can_retry:
4334
+ probe_status = None
4335
+ probe_messages = []
4336
+
4337
+ async def probe_send(message):
4338
+ nonlocal probe_status
4339
+ if message['type'] == 'http.response.start':
4340
+ probe_status = message.get('status', 200)
4341
+ probe_messages.append(message)
4342
+
4343
+ await self.app(dict(scope), receive, probe_send)
4344
+
4345
+ # \u5982\u679C 404\uFF0C\u5C1D\u8BD5\u8865 / \u91CD\u8BD5
4346
+ if probe_status == 404:
4347
+ retry_scope = dict(scope)
4348
+ retry_scope['path'] = current_path + '/'
4349
+ retry_raw = scope.get('raw_path', b'')
4350
+ if retry_raw:
4351
+ retry_scope['raw_path'] = retry_raw + b'/'
4352
+
4353
+ retry_status = None
4354
+ retry_messages = []
4355
+
4356
+ async def retry_send(message):
4357
+ nonlocal retry_status
4358
+ if message['type'] == 'http.response.start':
4359
+ retry_status = message.get('status', 200)
4360
+ retry_messages.append(message)
4361
+
4362
+ await self.app(retry_scope, receive, retry_send)
4363
+
4364
+ # \u91CD\u8BD5\u6210\u529F\uFF08\u975E 404\uFF09\uFF0C\u4F7F\u7528\u91CD\u8BD5\u7ED3\u679C
4365
+ if retry_status != 404:
4366
+ probe_messages = retry_messages
4367
+
4368
+ # \u53D1\u9001\u6700\u7EC8\u7ED3\u679C\uFF0C\u6CE8\u5165 Pages header \u548C\u65E5\u5FD7
4369
+ response_logged = False
4370
+ for message in probe_messages:
4371
+ if message['type'] == 'http.response.start':
4372
+ status_code = message.get('status', 200)
4373
+ headers = list(message.get('headers', []))
4374
+ _pages_inject_asgi_headers(headers, status_code)
4375
+ message = dict(message)
4376
+ message['headers'] = headers
4377
+ if not response_logged:
4378
+ response_logged = True
4379
+ elapsed_ms = (time.time() - start_time) * 1000
4380
+ _pages_log_response(request_method, request_path, status_code, elapsed_ms)
4381
+ await send(message)
4382
+ else:
4383
+ # \u6709 body \u7684\u8BF7\u6C42\u6216\u5DF2\u5E26\u5C3E\u90E8\u659C\u6760\uFF1A\u76F4\u63A5\u8C03\u7528\uFF0C\u4E0D\u505A probe+retry
4384
+ response_logged = False
4385
+ async def pages_send(message):
4386
+ nonlocal response_logged
4387
+ if message['type'] == 'http.response.start':
4388
+ status_code = message.get('status', 200)
4389
+ headers = list(message.get('headers', []))
4390
+ _pages_inject_asgi_headers(headers, status_code)
4391
+ message = dict(message)
4392
+ message['headers'] = headers
4393
+ if not response_logged:
4394
+ response_logged = True
4395
+ elapsed_ms = (time.time() - start_time) * 1000
4396
+ _pages_log_response(request_method, request_path, status_code, elapsed_ms)
4397
+ await send(message)
4398
+ await self.app(scope, receive, pages_send)
4324
4399
  else:
4325
4400
  # lifespan \u7B49\u4E8B\u4EF6\u900F\u4F20\u7ED9\u5E95\u5C42\u5E94\u7528
4326
4401
  await self.app(scope, receive, send)
@@ -4478,9 +4553,8 @@ class ASGIDispatcher:
4478
4553
  _pages_log_response(request_method, request_path, status_code, elapsed_ms)
4479
4554
  await send(message)
4480
4555
 
4481
- # \u5265\u79BB\u8DEF\u7531\u524D\u7F00\uFF08\u4F7F\u7528\u9759\u6001\u524D\u7F00\u63D0\u53D6\u51FD\u6570\u5904\u7406\u52A8\u6001\u8DEF\u7531\uFF09
4556
+ # \u5265\u79BB\u8DEF\u7531\u524D\u7F00\uFF08\u4EC5\u5BF9\u9759\u6001\u6302\u8F7D\u8DEF\u5F84\u751F\u6548\uFF0C\u52A8\u6001\u8DEF\u7531\u4E0D\u5265\u79BB\uFF09
4482
4557
  mount_path = route_config['path'] if route_config else '/'
4483
- # \u4F7F\u7528 _extract_static_prefix \u63D0\u53D6\u9759\u6001\u524D\u7F00\uFF0C\u652F\u6301\u52A8\u6001\u8DEF\u7531
4484
4558
  static_prefix = _extract_static_prefix(mount_path)
4485
4559
  if static_prefix != '/' and request_path.startswith(static_prefix):
4486
4560
  stripped_path = request_path[len(static_prefix):] or '/'
@@ -5166,11 +5240,10 @@ def _handle_wsgi_request(wsgi_app, req, route):
5166
5240
  environ = req.environ.copy()
5167
5241
 
5168
5242
  # \u53BB\u6389\u8DEF\u7531\u524D\u7F00\uFF0C\u8BA9\u7528\u6237\u5E94\u7528\u770B\u5230\u76F8\u5BF9\u8DEF\u5F84
5169
- # \u4F8B\u5982\uFF1A\u8BF7\u6C42 /py/items/123\uFF0C\u7528\u6237 FastAPI \u5B9A\u4E49 @app.get("/items/{id}")
5170
- # \u9700\u8981\u628A /py \u53BB\u6389\uFF0C\u8BA9 FastAPI \u6536\u5230 /items/123
5243
+ # \u4EC5\u5BF9\u9759\u6001\u6302\u8F7D\u8DEF\u5F84\u751F\u6548\uFF08\u5982 /py \u2192 \u5265\u79BB /py \u524D\u7F00\uFF09
5244
+ # \u52A8\u6001\u8DEF\u7531\u8DEF\u5F84\uFF08\u5982 /api/:id\uFF09\u4E0D\u505A\u5265\u79BB\uFF0C\u7528\u6237\u4EE3\u7801\u5305\u542B\u5B8C\u6574\u8DEF\u5F84
5171
5245
  mount_path = route['path'] if route else '/'
5172
5246
  original_path = req.path
5173
- # \u4F7F\u7528 _extract_static_prefix \u63D0\u53D6\u9759\u6001\u524D\u7F00\uFF0C\u652F\u6301\u52A8\u6001\u8DEF\u7531
5174
5247
  static_prefix = _extract_static_prefix(mount_path)
5175
5248
  if static_prefix != '/' and original_path.startswith(static_prefix):
5176
5249
  stripped_path = original_path[len(static_prefix):] or '/'
@@ -5199,11 +5272,10 @@ def _handle_asgi_request(asgi_app, req, route):
5199
5272
  import asyncio
5200
5273
 
5201
5274
  # \u53BB\u6389\u8DEF\u7531\u524D\u7F00\uFF0C\u8BA9\u7528\u6237\u5E94\u7528\u770B\u5230\u76F8\u5BF9\u8DEF\u5F84
5202
- # \u4F8B\u5982\uFF1A\u8BF7\u6C42 /py/items/123\uFF0C\u7528\u6237 FastAPI \u5B9A\u4E49 @app.get("/items/{id}")
5203
- # \u9700\u8981\u628A /py \u53BB\u6389\uFF0C\u8BA9 FastAPI \u6536\u5230 /items/123
5275
+ # \u4EC5\u5BF9\u9759\u6001\u6302\u8F7D\u8DEF\u5F84\u751F\u6548\uFF08\u5982 /py \u2192 \u5265\u79BB /py \u524D\u7F00\uFF09
5276
+ # \u52A8\u6001\u8DEF\u7531\u8DEF\u5F84\uFF08\u5982 /api/:id\uFF09\u4E0D\u505A\u5265\u79BB\uFF0C\u7528\u6237\u4EE3\u7801\u5305\u542B\u5B8C\u6574\u8DEF\u5F84
5204
5277
  mount_path = route['path'] if route else '/'
5205
5278
  original_path = req.path
5206
- # \u4F7F\u7528 _extract_static_prefix \u63D0\u53D6\u9759\u6001\u524D\u7F00\uFF0C\u652F\u6301\u52A8\u6001\u8DEF\u7531
5207
5279
  static_prefix = _extract_static_prefix(mount_path)
5208
5280
  if static_prefix != '/' and original_path.startswith(static_prefix):
5209
5281
  stripped_path = original_path[len(static_prefix):] or '/'
@@ -5349,7 +5421,7 @@ if __name__ == '__main__':
5349
5421
  warnings.filterwarnings("ignore", category=DeprecationWarning)
5350
5422
  `,n=ui.default.join(Sn(ro.OUTPUT_DIR),"sitecustomize.py");Ur.default.writeFileSync(n,e)}generateScfBootstrap(){let e=`#!/bin/bash
5351
5423
  /var/lang/python310/bin/python3 -W ignore -u app.py
5352
- `,n=Sn(ui.default.join(ro.OUTPUT_DIR,"scf_bootstrap"));Ur.default.writeFileSync(n,e,{mode:493})}async packageToZip(){let{execSync:e}=require("child_process"),n=Sn(ro.OUTPUT_DIR),o=Sn(ui.default.join(ro.CLOUD_FUNCTIONS_DIR,"python.zip"));Ur.default.existsSync(o)&&Ur.default.unlinkSync(o);try{e(`cd "${n}" && zip -rq "${o}" .`,{stdio:this.silent?"pipe":"inherit"});let r=(Ur.default.statSync(o).size/1024/1024).toFixed(1);this.log(`Packaged to python.zip (${r}MB)`)}catch(u){throw this.error(`Failed to create zip package: ${u.message}`),u}}async build(e={}){e.port&&(this.wrapPort=e.port);let n=Sn(ro.OUTPUT_DIR);this.prepareOutputDirectory(n);let o=Sn(ro.FUNCTION);if(this.functionList=this.scanPythonFiles(o),this.functionList.length===0)return this.log("No Python functions found"),{routes:[],watch:[]};this.log(`Found ${this.functionList.length} Python functions`),this.copyUserFiles(),this.generateAppPy(),this.generateSiteCustomize(),this.generateMetaJson(),this.generateRequirements(),await this.installDependencies();let r=[...this.functionList].sort((f,p)=>{if(!f.isDynamic&&p.isDynamic)return-1;if(f.isDynamic&&!p.isDynamic)return 1;let y=f.route.includes(":")&&f.route.includes("*"),m=p.route.includes(":")&&p.route.includes("*");return!y&&m?-1:y&&!m?1:p.route.length-f.route.length}).map(f=>{let p=f.route.includes(":")&&f.route.includes("*"),y={src:f.isDynamic?this.routeToRegex(f.route):`^${f.route}$`,path:f.route,file:f.filePath};return f.isDynamic&&f.paramNames.length>0&&(y.params=f.paramNames),p&&(y.isCatchAll=!0),y.method=f.methods,y.isFramework=f.isFramework,y});return Wr(`\u2728 Python functions build completed: ${this.functionList.length} functions`),{routes:r,watch:[Sn(ro.FUNCTION)]}}getRoutes(){return[...this.functionList].sort((n,o)=>{if(!n.isDynamic&&o.isDynamic)return-1;if(n.isDynamic&&!o.isDynamic)return 1;let u=n.route.includes(":")&&n.route.includes("*"),r=o.route.includes(":")&&o.route.includes("*");return!u&&r?-1:u&&!r?1:o.route.length-n.route.length}).map(n=>{let o=n.route.includes(":")&&n.route.includes("*"),u={src:n.isDynamic?this.routeToRegex(n.route):`^${n.route}$`,path:n.route,file:n.filePath};return n.isDynamic&&n.paramNames.length>0&&(u.params=n.paramNames),o&&(u.isCatchAll=!0),u.method=n.methods,u.isFramework=n.isFramework,u})}}});var WC,lue,_x,z6=mt(()=>{uue();Hu();WC=cr(require("path")),lue=require("child_process");uE();_x=class{devConfig;buildInstance;config;server=null;isStarting=!1;constructor(e){this.devConfig=e,this.config={...e,watchPaths:yg(this)},this.buildInstance=new VC({mode:"dev",env:e.env})}async start(e={}){if(this.isStarting)return console.log("[dev] Python function server is already starting, skipping..."),{destUrl:this.server?`http://127.0.0.1:${this.buildInstance.wrapPort}`:null,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:[],status:"starting"};if(this.server&&!this.server.killed)return console.log("[dev] Python function server is already running, skipping..."),{destUrl:`http://127.0.0.1:${this.buildInstance.wrapPort}`,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:this.buildInstance.getRoutes().map(o=>{var u;return{src:o.src,routePath:o.path,method:o.method||["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD"],isFramework:(u=o.isFramework)!=null?u:!o.isCatchAll}}),status:"running"};this.isStarting=!0;let n=await Sx(9100);try{let o;if(e.skipBuild?o={routes:this.buildInstance.getRoutes()}:o=await this.buildInstance.build({port:n}),o.routes.length===0)return{destUrl:null,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:[],status:"no-routes"};this.server&&await this.stop();let u=WC.default.join(process.cwd(),".edgeone/cloud-functions/api-python/app.py"),r=this.detectPythonCommand(),f=(0,lue.spawn)(r,[u],{stdio:["pipe","inherit","inherit"],env:{...process.env,...this.devConfig.env,PYTHONPATH:WC.default.join(process.cwd(),".edgeone/cloud-functions/api-python"),PORT:String(n)},cwd:WC.default.join(process.cwd(),".edgeone/cloud-functions/api-python")});await new Promise((y,m)=>{f.on("spawn",()=>{y(void 0)}),f.on("error",S=>{ss("Failed to start Python dev server:",S.message),m(S)})}),this.server=f,this.isStarting=!1;let p=o.routes.map(y=>{var m;return{src:y.src,routePath:y.path,method:y.method||["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD"],isFramework:(m=y.isFramework)!=null?m:!y.isCatchAll}});return{destUrl:`http://127.0.0.1:${n}`,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:p,status:"started"}}catch(o){return this.isStarting=!1,{destUrl:null,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:[],status:"startFailed",error:o.message}}}async stop(){if(this.server){let e=this.server;return this.server=null,new Promise(n=>{let o=setTimeout(()=>{console.log("[dev] Python server kill timeout, force killing...");try{e.kill("SIGKILL")}catch{}n()},3e3);e.once("exit",()=>{clearTimeout(o),console.log("[dev] Python function dev server stopped"),n()});try{e.kill("SIGTERM")}catch{clearTimeout(o),n()}})}}async handleFileChange(e){try{Wr(`[dev] Python function file changed: ${e}`),this.isStarting=!1,await this.stop();let n=await this.start({skipBuild:!1});return n.status==="startFailed"?{destUrl:null,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:n.routes,status:"rebuildFailed",error:n.error}:{destUrl:`http://127.0.0.1:${this.buildInstance.wrapPort}`,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:n.routes,status:"rebuilt"}}catch(n){return{destUrl:null,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:[],status:"rebuildFailed",error:n.message}}}detectPythonCommand(){let e=this.buildInstance.getPythonCommand();if(e)return e;throw new Error(`Python 3.10+ is not available.
5424
+ `,n=Sn(ui.default.join(ro.OUTPUT_DIR,"scf_bootstrap"));Ur.default.writeFileSync(n,e,{mode:493})}async packageToZip(){let{execSync:e}=require("child_process"),n=Sn(ro.OUTPUT_DIR),o=Sn(ui.default.join(ro.CLOUD_FUNCTIONS_DIR,"python.zip"));Ur.default.existsSync(o)&&Ur.default.unlinkSync(o);try{e(`cd "${n}" && zip -rq "${o}" .`,{stdio:this.silent?"pipe":"inherit"});let r=(Ur.default.statSync(o).size/1024/1024).toFixed(1);this.log(`Packaged to python.zip (${r}MB)`)}catch(u){throw this.error(`Failed to create zip package: ${u.message}`),u}}async build(e={}){e.port&&(this.wrapPort=e.port);let n=Sn(ro.OUTPUT_DIR);this.prepareOutputDirectory(n);let o=Sn(ro.FUNCTION);if(this.functionList=this.scanPythonFiles(o),this.functionList.length===0)return this.log("No Python functions found"),{routes:[],watch:[]};this.log(`Found ${this.functionList.length} Python functions`),this.copyUserFiles(),this.generateAppPy(),this.generateSiteCustomize(),this.generateMetaJson(),this.generateRequirements(),await this.installDependencies();let r=[...this.functionList].sort((f,p)=>{if(!f.isDynamic&&p.isDynamic)return-1;if(f.isDynamic&&!p.isDynamic)return 1;let y=f.route.includes(":")&&f.route.includes("*"),m=p.route.includes(":")&&p.route.includes("*");return!y&&m?-1:y&&!m?1:p.route.length-f.route.length}).map(f=>{let p=f.route.includes(":")&&f.route.includes("*"),y={src:f.isDynamic?this.routeToRegex(f.route):`^${f.route}(?:/.*)?$`,path:f.route,file:f.filePath};return f.isDynamic&&f.paramNames.length>0&&(y.params=f.paramNames),p&&(y.isCatchAll=!0),y.method=f.methods,y.isFramework=f.isFramework,y});return Wr(`\u2728 Python functions build completed: ${this.functionList.length} functions`),{routes:r,watch:[Sn(ro.FUNCTION)]}}getRoutes(){return[...this.functionList].sort((n,o)=>{if(!n.isDynamic&&o.isDynamic)return-1;if(n.isDynamic&&!o.isDynamic)return 1;let u=n.route.includes(":")&&n.route.includes("*"),r=o.route.includes(":")&&o.route.includes("*");return!u&&r?-1:u&&!r?1:o.route.length-n.route.length}).map(n=>{let o=n.route.includes(":")&&n.route.includes("*"),u={src:n.isDynamic?this.routeToRegex(n.route):`^${n.route}(?:/.*)?$`,path:n.route,file:n.filePath};return n.isDynamic&&n.paramNames.length>0&&(u.params=n.paramNames),o&&(u.isCatchAll=!0),u.method=n.methods,u.isFramework=n.isFramework,u})}}});var WC,lue,_x,z6=mt(()=>{uue();Hu();WC=cr(require("path")),lue=require("child_process");uE();_x=class{devConfig;buildInstance;config;server=null;isStarting=!1;constructor(e){this.devConfig=e,this.config={...e,watchPaths:yg(this)},this.buildInstance=new VC({mode:"dev",env:e.env})}async start(e={}){if(this.isStarting)return console.log("[dev] Python function server is already starting, skipping..."),{destUrl:this.server?`http://127.0.0.1:${this.buildInstance.wrapPort}`:null,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:[],status:"starting"};if(this.server&&!this.server.killed)return console.log("[dev] Python function server is already running, skipping..."),{destUrl:`http://127.0.0.1:${this.buildInstance.wrapPort}`,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:this.buildInstance.getRoutes().map(o=>{var u;return{src:o.src,routePath:o.path,method:o.method||["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD"],isFramework:(u=o.isFramework)!=null?u:!o.isCatchAll}}),status:"running"};this.isStarting=!0;let n=await Sx(9100);try{let o;if(e.skipBuild?o={routes:this.buildInstance.getRoutes()}:o=await this.buildInstance.build({port:n}),o.routes.length===0)return{destUrl:null,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:[],status:"no-routes"};this.server&&await this.stop();let u=WC.default.join(process.cwd(),".edgeone/cloud-functions/api-python/app.py"),r=this.detectPythonCommand(),f=(0,lue.spawn)(r,[u],{stdio:["pipe","inherit","inherit"],env:{...process.env,...this.devConfig.env,PYTHONPATH:WC.default.join(process.cwd(),".edgeone/cloud-functions/api-python"),PORT:String(n)},cwd:WC.default.join(process.cwd(),".edgeone/cloud-functions/api-python")});await new Promise((y,m)=>{f.on("spawn",()=>{y(void 0)}),f.on("error",S=>{ss("Failed to start Python dev server:",S.message),m(S)})}),this.server=f,this.isStarting=!1;let p=o.routes.map(y=>{var m;return{src:y.src,routePath:y.path,method:y.method||["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD"],isFramework:(m=y.isFramework)!=null?m:!y.isCatchAll}});return{destUrl:`http://127.0.0.1:${n}`,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:p,status:"started"}}catch(o){return this.isStarting=!1,{destUrl:null,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:[],status:"startFailed",error:o.message}}}async stop(){if(this.server){let e=this.server;return this.server=null,new Promise(n=>{let o=setTimeout(()=>{console.log("[dev] Python server kill timeout, force killing...");try{e.kill("SIGKILL")}catch{}n()},3e3);e.once("exit",()=>{clearTimeout(o),console.log("[dev] Python function dev server stopped"),n()});try{e.kill("SIGTERM")}catch{clearTimeout(o),n()}})}}async handleFileChange(e){try{Wr(`[dev] Python function file changed: ${e}`),this.isStarting=!1,await this.stop();let n=await this.start({skipBuild:!1});return n.status==="startFailed"?{destUrl:null,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:n.routes,status:"rebuildFailed",error:n.error}:{destUrl:`http://127.0.0.1:${this.buildInstance.wrapPort}`,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:n.routes,status:"rebuilt"}}catch(n){return{destUrl:null,watch:this.config.watchPaths,type:"python-function",config:this.config,routes:[],status:"rebuildFailed",error:n.message}}}detectPythonCommand(){let e=this.buildInstance.getPythonCommand();if(e)return e;throw new Error(`Python 3.10+ is not available.
5353
5425
  Please install Python 3.10:
5354
5426
  macOS: brew install python@3.10
5355
5427
  Ubuntu: sudo apt install python3.10