UNPKG

@appello/common

Version:

Common package with many useful features for web and mobile development

2 lines 240 kB
"use strict";var e=require("react"),t=require("buffer");function n(t){const n=e.useRef(t);n.current=e.useMemo(()=>t,[t]);const r=e.useRef(void 0);return r.current||(r.current=function(...e){return n.current.apply(this,e)}),r.current}function r({fn:t,delay:r=1e3,onStop:o,immediateStart:a=!1,immediateCallFn:i=!1}){const[s,u]=e.useState(a),c=e.useRef(null),l=n(t);e.useEffect(()=>{u(a)},[a]),e.useEffect(()=>s?(i&&l(),c.current=setInterval(l,r),()=>{c.current&&(clearInterval(c.current),o?.(),u(!1))}):()=>{c.current&&(clearInterval(c.current),o?.())},[s,r,i]);return{start:e.useCallback(()=>u(!0),[]),stop:e.useCallback(()=>u(!1),[]),setState:u}}const o=e=>!!e&&e.constructor===Object;function a(e,t=0,n){let r,a,i,s,u,c=0,l=0,d=!1,f=!1,m=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function h(t){const n=r,o=a;return r=a=void 0,l=t,i=e.apply(o,n),i}function g(e,t){return setTimeout(e,t)}function p(e){const n=e-u;return void 0===u||n>=t||n<0||f&&e-l>=c}function w(){const e=Date.now();if(p(e))return b(e);s=g(w,function(e){const n=e-l,r=t-(e-u);return f?Math.min(r,c-n):r}(e))}function b(e){return s=void 0,m&&r?h(e):(r=a=void 0,i)}function y(...e){const n=Date.now(),o=p(n);if(r=e,a=this,u=n,o){if(void 0===s)return function(e){return l=e,s=g(w,t),d?h(e):i}(u);if(f)return s=g(w,t),h(u)}return void 0===s&&(s=g(w,t)),i}return o(n)&&(d=!!n.leading,f="maxWait"in n,c=f?Math.max(n?.maxWait||0,t):c,m="trailing"in n?!!n.trailing:m),y.cancel=function(){void 0!==s&&clearTimeout(s),l=0,r=u=a=s=void 0},y.flush=function(){return void 0===s?i:b(Date.now())},y.pending=function(){return void 0!==s},y}const i=(e,t)=>{if(e===t)return!0;if(null===e||"object"!=typeof e||null===t||"object"!=typeof t)return!1;const n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>r.includes(n)&&i(e[n],t[n]))},s=Array.isArray,u=Object.keys,c=(e,t)=>{const n={...e};return o(e)&&o(t)&&u(t).forEach(r=>{"__proto__"!==r&&(o(t[r])?n[r]=r in e?c(n[r],t[r]):t[r]:n[r]=t[r])}),n},l=Object.entries,d=(e,t={})=>{const{capitalizeAll:n=!1,lowercase:r=!1}=t,o=e.split("_").map(e=>e.toLowerCase());return r?o.join(" "):n?o.map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):o.map((e,t)=>0===t?e.charAt(0).toUpperCase()+e.slice(1):e).join(" ")};function f(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}function m(e){const t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):"number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?new Date(e):new Date(NaN)}function h(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}const g=6048e5;let p={};function w(){return p}function b(e,t){const n=w(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,o=m(e),a=o.getDay(),i=(a<r?7:0)+a-r;return o.setDate(o.getDate()-i),o.setHours(0,0,0,0),o}function y(e){return b(e,{weekStartsOn:1})}function x(e){const t=m(e),n=t.getFullYear(),r=h(e,0);r.setFullYear(n+1,0,4),r.setHours(0,0,0,0);const o=y(r),a=h(e,0);a.setFullYear(n,0,4),a.setHours(0,0,0,0);const i=y(a);return t.getTime()>=o.getTime()?n+1:t.getTime()>=i.getTime()?n:n-1}function v(e){const t=m(e);return t.setHours(0,0,0,0),t}function M(e){const t=m(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function k(e){if(!(t=e,t instanceof Date||"object"==typeof t&&"[object Date]"===Object.prototype.toString.call(t)||"number"==typeof e))return!1;var t;const n=m(e);return!isNaN(Number(n))}function S(e,t){const n=w(),r=n.weekStartsOn??n.locale?.options?.weekStartsOn??0,o=m(e),a=o.getDay(),i=6+(a<r?-7:0)-(a-r);return o.setDate(o.getDate()+i),o.setHours(23,59,59,999),o}const P={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function O(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const D={date:O({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:O({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:O({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},j={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function C(e){return(t,n)=>{let r;if("formatting"===(n?.context?String(n.context):"standalone")&&e.formattingValues){const t=e.defaultFormattingWidth||e.defaultWidth,o=n?.width?String(n.width):t;r=e.formattingValues[o]||e.formattingValues[t]}else{const t=e.defaultWidth,o=n?.width?String(n.width):e.defaultWidth;r=e.values[o]||e.values[t]}return r[e.argumentCallback?e.argumentCallback(t):t]}}function E(e){return(t,n={})=>{const r=n.width,o=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(o);if(!a)return null;const i=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],u=Array.isArray(s)?function(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n;return}(s,e=>e.test(i)):function(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n;return}(s,e=>e.test(i));let c;c=e.valueCallback?e.valueCallback(u):u,c=n.valueCallback?n.valueCallback(c):c;return{value:c,rest:t.slice(i.length)}}}var F;const T={code:"en-US",formatDistance:(e,t,n)=>{let r;const o=P[e];return r="string"==typeof o?o:1===t?o.one:o.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r},formatLong:D,formatRelative:(e,t,n,r)=>j[e],localize:{ordinalNumber:(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:C({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:C({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:C({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:C({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:C({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(F={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)},(e,t={})=>{const n=e.match(F.matchPattern);if(!n)return null;const r=n[0],o=e.match(F.parsePattern);if(!o)return null;let a=F.valueCallback?F.valueCallback(o[0]):o[0];return a=t.valueCallback?t.valueCallback(a):a,{value:a,rest:e.slice(r.length)}}),era:E({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:E({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:E({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:E({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:E({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function W(e){const t=m(e),n=function(e,t){const n=v(e),r=v(t),o=+n-M(n),a=+r-M(r);return Math.round((o-a)/864e5)}(t,function(e){const t=m(e),n=h(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}(t));return n+1}function N(e){const t=m(e),n=+y(t)-+function(e){const t=x(e),n=h(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),y(n)}(t);return Math.round(n/g)+1}function $(e,t){const n=m(e),r=n.getFullYear(),o=w(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,i=h(e,0);i.setFullYear(r+1,0,a),i.setHours(0,0,0,0);const s=b(i,t),u=h(e,0);u.setFullYear(r,0,a),u.setHours(0,0,0,0);const c=b(u,t);return n.getTime()>=s.getTime()?r+1:n.getTime()>=c.getTime()?r:r-1}function q(e,t){const n=m(e),r=+b(n,t)-+function(e,t){const n=w(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,o=$(e,t),a=h(e,0);return a.setFullYear(o,0,r),a.setHours(0,0,0,0),b(a,t)}(n,t);return Math.round(r/g)+1}function I(e,t){return(e<0?"-":"")+Math.abs(e).toString().padStart(t,"0")}const A={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return I("yy"===t?r%100:r,t.length)},M(e,t){const n=e.getMonth();return"M"===t?String(n+1):I(n+1,2)},d:(e,t)=>I(e.getDate(),t.length),a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:(e,t)=>I(e.getHours()%12||12,t.length),H:(e,t)=>I(e.getHours(),t.length),m:(e,t)=>I(e.getMinutes(),t.length),s:(e,t)=>I(e.getSeconds(),t.length),S(e,t){const n=t.length,r=e.getMilliseconds();return I(Math.trunc(r*Math.pow(10,n-3)),t.length)}},Y="midnight",z="noon",H="morning",B="afternoon",L="evening",Q="night",R={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if("yo"===t){const t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:"year"})}return A.y(e,t)},Y:function(e,t,n,r){const o=$(e,r),a=o>0?o:1-o;if("YY"===t){return I(a%100,2)}return"Yo"===t?n.ordinalNumber(a,{unit:"year"}):I(a,t.length)},R:function(e,t){return I(x(e),t.length)},u:function(e,t){return I(e.getFullYear(),t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return I(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return I(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return A.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return I(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const o=q(e,r);return"wo"===t?n.ordinalNumber(o,{unit:"week"}):I(o,t.length)},I:function(e,t,n){const r=N(e);return"Io"===t?n.ordinalNumber(r,{unit:"week"}):I(r,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getDate(),{unit:"date"}):A.d(e,t)},D:function(e,t,n){const r=W(e);return"Do"===t?n.ordinalNumber(r,{unit:"dayOfYear"}):I(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const o=e.getDay(),a=(o-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(a);case"ee":return I(a,2);case"eo":return n.ordinalNumber(a,{unit:"day"});case"eee":return n.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const o=e.getDay(),a=(o-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(a);case"cc":return I(a,t.length);case"co":return n.ordinalNumber(a,{unit:"day"});case"ccc":return n.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(o,{width:"narrow",context:"standalone"});case"cccccc":return n.day(o,{width:"short",context:"standalone"});default:return n.day(o,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),o=0===r?7:r;switch(t){case"i":return String(o);case"ii":return I(o,t.length);case"io":return n.ordinalNumber(o,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const r=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let o;switch(o=12===r?z:0===r?Y:r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let o;switch(o=r>=17?L:r>=12?B:r>=4?H:Q,t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){let t=e.getHours()%12;return 0===t&&(t=12),n.ordinalNumber(t,{unit:"hour"})}return A.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getHours(),{unit:"hour"}):A.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return"Ko"===t?n.ordinalNumber(r,{unit:"hour"}):I(r,t.length)},k:function(e,t,n){let r=e.getHours();return 0===r&&(r=24),"ko"===t?n.ordinalNumber(r,{unit:"hour"}):I(r,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):A.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getSeconds(),{unit:"second"}):A.s(e,t)},S:function(e,t){return A.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(0===r)return"Z";switch(t){case"X":return G(r);case"XXXX":case"XX":return X(r);default:return X(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return G(r);case"xxxx":case"xx":return X(r);default:return X(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+U(r,":");default:return"GMT"+X(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+U(r,":");default:return"GMT"+X(r,":")}},t:function(e,t,n){return I(Math.trunc(e.getTime()/1e3),t.length)},T:function(e,t,n){return I(e.getTime(),t.length)}};function U(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),o=Math.trunc(r/60),a=r%60;return 0===a?n+String(o):n+String(o)+t+I(a,2)}function G(e,t){if(e%60==0){return(e>0?"-":"+")+I(Math.abs(e)/60,2)}return X(e,t)}function X(e,t=""){const n=e>0?"-":"+",r=Math.abs(e);return n+I(Math.trunc(r/60),2)+t+I(r%60,2)}const J=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},K=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},V={p:K,P:(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],o=n[2];if(!o)return J(e,t);let a;switch(r){case"P":a=t.dateTime({width:"short"});break;case"PP":a=t.dateTime({width:"medium"});break;case"PPP":a=t.dateTime({width:"long"});break;default:a=t.dateTime({width:"full"})}return a.replace("{{date}}",J(r,t)).replace("{{time}}",K(o,t))}},_=/^D+$/,Z=/^Y+$/,ee=["D","DD","YY","YYYY"];const te=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ne=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,re=/^'([^]*?)'?$/,oe=/''/g,ae=/[a-zA-Z]/;function ie(e,t,n){const r=w(),o=r.locale??T,a=r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,i=r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=m(e);if(!k(s))throw new RangeError("Invalid time value");let u=t.match(ne).map(e=>{const t=e[0];if("p"===t||"P"===t){return(0,V[t])(e,o.formatLong)}return e}).join("").match(te).map(e=>{if("''"===e)return{isToken:!1,value:"'"};const t=e[0];if("'"===t)return{isToken:!1,value:se(e)};if(R[t])return{isToken:!0,value:e};if(t.match(ae))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});o.localize.preprocessor&&(u=o.localize.preprocessor(s,u));const c={firstWeekContainsDate:a,weekStartsOn:i,locale:o};return u.map(n=>{if(!n.isToken)return n.value;const r=n.value;(function(e){return Z.test(e)}(r)||function(e){return _.test(e)}(r))&&function(e,t,n){const r=function(e,t,n){const r="Y"===e[0]?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(e,t,n);if(console.warn(r),ee.includes(e))throw new RangeError(r)}(r,t,String(e));return(0,R[r[0]])(s,r,o.localize,c)}).join("")}function se(e){const t=e.match(re);return t?t[1].replace(oe,"'"):e}const ue=e=>"[object Date]"===f(e),ce=e=>!!(e&&e.constructor&&e.call&&e.apply);function le(e){return Array.isArray(e)&&e.length>0?e.every(le):void 0===e||null==e}const de=e=>{try{return Number(e)===e}catch{return!1}},fe=e=>!!e&&e.constructor===Symbol,me=e=>!!e&&(!!e.then&&ce(e.then));const he=1/0;function ge(t){const n=e.useRef(t);return n.current=t,n}const pe=t=>{const n=ge(t);e.useEffect(()=>()=>{n.current()},[])};function we(t,n){const r=ge(t),o=n?.wait??600,i=e.useMemo(()=>a((...e)=>r.current(...e),o,n),[]);return pe(()=>{i.cancel()}),{debounce:i,cancel:i.cancel,flush:i.flush}}function be(){const t=e.useRef(!0);return t.current?(t.current=!1,!0):t.current}function ye(t,n){const r=be();e.useEffect(()=>r?()=>{}:t(),n)}const xe=t=>{e.useEffect(()=>{t?.()},[])};const ve=(e,t)=>!Object.is(e,t);function Me(t){const[n,r]=e.useState(t),o=e.useCallback(()=>{r(!0)},[]),a=e.useCallback(()=>{r(!1)},[]),i=e.useCallback(()=>{r(e=>!e)},[]);return e.useMemo(()=>({value:n,on:o,off:a,toggle:i,set:r}),[n,o,a,i])}function ke(e,t){return t.split(".").reduce(function(e,t){return null==e?void 0:e[t]},e)}class Se{constructor(e,t){if(Object.defineProperty(this,"awsUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"awsBucket",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),!e)throw new Error("AWS url link is required.");if(!t)throw new Error("AWS bucket link is required.");this.awsUrl=e,this.awsBucket=t}static initialize(e,t){return Se.instance||(Se.instance=new Se(e,t)),Se.instance}static getInstance(){if(!Se.instance)throw new Error("AwsImageService is not initialized. Call AwsImageService.initialize() first in your root.");return Se.instance}static genAwsImgUrl(e,n){const r=Se.getInstance(),o=n??{};if(!e)throw new Error("Key is required to generate an image URL.");const a={...o,resize:{...o.resize,fit:o.resize?.fit||"cover"}},i=JSON.stringify({bucket:r.awsBucket,key:e,edits:a}),s=t.Buffer.from(i).toString("base64");return`${r.awsUrl}/${s}`}}exports.AwsImageService=Se,exports.capitalize=e=>e?e.charAt(0).toUpperCase()+e.slice(1):e,exports.checkIsServer=()=>"undefined"==typeof window,exports.checkNavigator=()=>"undefined"!=typeof navigator,exports.compact=e=>e.filter(Boolean),exports.debounce=a,exports.deepEqual=i,exports.deepKeys=e=>{if(!e)return[];const t=(e,n)=>o(e)?Object.entries(e).flatMap(([e,r])=>t(r,[...n,e])):s(e)?e.flatMap((e,r)=>t(e,[...n,`${r}`])):[n.join(".")];return t(e,[])},exports.deepMergeObjects=c,exports.difference=(e,t)=>e.filter(e=>!t.includes(e)),exports.entries=l,exports.enumKeyToReadable=d,exports.enumToSelectOptions=function(e,t){return Object.values(e).map(e=>({label:t?.(e)??d(e),value:e}))},exports.formatCurrency=(e,t={})=>{const{currency:n="$",separator:r=",",decimals:o=2,symbolAfter:a=!1}=t,i=Number(e.toFixed(o)),[s,u]=Math.abs(i).toFixed(o).split("."),c=s?.replace(/\B(?=(\d{3})+(?!\d))/g,r),l=o>0?`${c}.${u}`:c,d=i<0?"-":"";return a?`${d}${l}${n}`:`${d}${n}${l}`},exports.formatNumber=(e,t={})=>{const{separator:n=",",decimals:r,prefix:o="",suffix:a=""}=t;let i;i=void 0!==r?e.toFixed(r):e.toString();const[s,u]=i.split("."),c=s?.replace(/\B(?=(\d{3})+(?!\d))/g,n);return`${o}${void 0!==u?`${c}.${u}`:c}${a}`},exports.getDirtyValues=function e(t,n){return Object.keys(t).reduce((r,o)=>t[o]?(r[o]="object"==typeof t[o]?e(t[o],n[o]):n[o],r):r,{})},exports.getFileExtension=e=>e.split(".").pop()?.toLowerCase(),exports.getFileName=(e,t=!1)=>{if(!e)return"";const n=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\")),r=-1!==n?e.slice(n+1):e;if(t)return r;const o=r.lastIndexOf(".");return-1===o||0===o?r:r.slice(0,o)},exports.getProto=f,exports.getWeekdaysNames=function(e={}){return function(e){const t=m(e.start),n=m(e.end);let r=+t>+n;const o=r?+t:+n,a=r?n:t;a.setHours(0,0,0,0);const i=[];for(;+a<=o;)i.push(m(a)),a.setDate(a.getDate()+1),a.setHours(0,0,0,0);return r?i.reverse():i}({start:b(new Date),end:S(new Date)}).map(t=>ie(t,e.longFormat?"iiii":"E"))},exports.intersection=(e,t)=>e.filter(e=>t.includes(e)),exports.isArray=s,exports.isBlob=e=>!!e&&"undefined"!=typeof Blob&&e instanceof Blob,exports.isDate=ue,exports.isEmpty=e=>{if(!0===e||!1===e)return!0;if(le(e))return!0;if(de(e))return 0===e;if(ue(e))return Number.isNaN(e.getTime());if(ce(e))return!1;if(fe(e))return!1;const t=e.length;if(de(t))return 0===t;const n=e.size;if(de(n))return 0===n;return 0===Object.keys(e).length},exports.isFile=e=>!!e&&"undefined"!=typeof File&&e instanceof File,exports.isFloat=e=>de(e)&&e%1!=0,exports.isFunction=ce,exports.isInt=e=>de(e)&&e%1==0,exports.isNil=le,exports.isNumber=de,exports.isObject=o,exports.isPrimitive=e=>null==e||"object"!=typeof e&&"function"!=typeof e,exports.isPromise=me,exports.isString=e=>"string"==typeof e||e instanceof String,exports.isSymbol=fe,exports.keys=u,exports.makeFormData=function e(t,n=new FormData,r){if(void 0===t)return n;if(Array.isArray(t))t.length?t.forEach((t,o)=>e(t,n,`${r}[${o}]`)):e("",n,`${r}`);else if(o(t))Object.entries(t).forEach(([t,o])=>{t=r&&/\[\d+\]$/.test(r)?r?`${r}${t}`:t:r?`${r}.${t}`:t,e(o,n,t)});else if(null!==t){let e=t;"boolean"==typeof e&&(e=Number(e)),n.append(`${r}`,e)}return n},exports.makeQueryString=function(e,t={}){const{withPrefix:n=!0}=t;return Object.entries(e).filter(e=>void 0!==e[1]).map(([e,t],r)=>`${0===r&&n?"?":""}${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&")},exports.mapFormData=function(e,t){const n=function(e){if("_parts"in e)return e._parts;if("entries"in e)return[...e.entries()];throw new Error("You are trying to map not a FormData object")}(e);return n.reduce((e,n)=>(e.append(...t(n)),e),new FormData)},exports.mergeCollectionByKey=(e,t,n="push",r="id")=>{const o=new Map,a=e=>String(ce(r)?r(e):e[r]);return("push"===n?e:t).forEach(e=>{o.set(a(e),e)}),("push"===n?t:e).forEach(e=>{o.set(a(e),"push"===n?{...o.get(a(e)),...e}:{...e,...o.get(a(e))})}),Array.from(o.values())},exports.noop=function(){},exports.omit=function(e,t){return t.reduce((e,t)=>(Object.prototype.hasOwnProperty.call(e,t)&&delete e[t],e),{...e})},exports.pick=function(e,t){return t.reduce((t,n)=>({...t,[n]:e[n]}),{})},exports.pluralize=(e,t,n)=>`${e} ${1===e?t:n||`${t}s`}`,exports.sleep=function(e){return new Promise(t=>{setTimeout(t,e)})},exports.throttle=function(e,t=0,n){let r=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return o(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),a(e,t,{leading:r,trailing:i,maxWait:t})},exports.toBase64=e=>e?new Promise((t,n)=>{const r=new FileReader;r.readAsDataURL(e),r.onload=()=>t(r.result),r.onerror=e=>n(e)}):Promise.reject(new Error("File not found")),exports.toFinite=function(e){if(!e)return 0===e?e:0;if((e=Number(e))===he||e===-1/0){return 17976931348623157e292*(e<0?-1:1)}return e},exports.truncate=(e,t=30,n="...")=>{if(e.length<=t)return e;const r=t-n.length;return r<1?n:e.slice(0,r)+n},exports.uniq=e=>Array.from(new Set(e)),exports.useCodeTimer=function(){const[t,n]=e.useState(0),{start:o,stop:a}=r({fn:()=>{n(e=>{const t=e>0?e-1:e;return 0===t&&a(),t})}});return{seconds:t,inProgress:!!t,sendCode:(e,t=59)=>{n(t),a(),o(),e?.()}}},exports.useCombinedRef=function(...t){return e.useCallback(e=>{t.forEach(t=>{ce(t)?t(e):null!==t&&(t.current=e)})},t)},exports.useDebounceCallback=we,exports.useDebounceEffect=function(t,n,r){const[o,a]=e.useState({}),{debounce:i}=we(()=>{a({})},r);e.useEffect(()=>i(),n),ye(t,[o])},exports.useDefault=function(t,n){const[r,o]=e.useState(n);return le(r)?[t,o]:[r,o]},exports.useFirstMountState=be,exports.useHookFormPersist=({key:e,storage:t,excludeFields:n=[],includeFields:r=[]})=>{if(!t)throw new Error("useFormPersist: storage is required. Try using one of the provided storage engines: sessionStorage / localStorage / AsyncStorage (react-native) ");const o=function(e){if("undefined"==typeof document&&me(e.getItem("useFormPersist test object"))){const t=e;return{getItem:t.getItem,setItem:t.setItem,removeItem:t.removeItem}}const t=e;return{getItem:async(...e)=>t.getItem(...e),setItem:async(...e)=>t.setItem(...e),removeItem:async(...e)=>t.removeItem(...e)}}(t);return{syncFromStorage:async({defaultValues:t,syncPolicy:a="storage-first"})=>{const i=await o.getItem(e)||"{}",s=JSON.parse(i),u=r?.length?Object.fromEntries(Object.entries(s).filter(([e])=>r.includes(e))):s,c={};return Object.keys(u).forEach(e=>{!n?.includes(e)&&(c[e]=u[e])}),t?"default-values-first"===a?Object.keys(t??{}).length?t:c:Object.keys(c??{}).length?c:t||{}:c},syncToStorage:t=>{const r=n.length?Object.entries(t).filter(([e])=>!n.includes(e)).reduce((e,[t,n])=>Object.assign(e,{[t]:n}),{}):{...t};Object.entries(r).length&&o.setItem(e,JSON.stringify(r))},clear:()=>o.removeItem(e)}},exports.useInterval=r,exports.useIsClient=function(){const[t,n]=e.useState(!1);return xe(()=>{n(!0)}),t},exports.useIsMounted=function(){const t=e.useRef(!1);return e.useEffect(()=>(t.current=!0,()=>{t.current=!1}),[]),e.useCallback(()=>t.current,[])},exports.useLatest=ge,exports.useManualUpdate=function(){const[,t]=e.useState({});return e.useCallback(()=>t({}),[])},exports.useMemoCallback=n,exports.useMountEffect=xe,exports.usePrevious=function(t,n=ve){const r=e.useRef(void 0),o=e.useRef(void 0);return n(o.current,t)&&(r.current=o.current,o.current=t),r.current},exports.useQueryParamsBuilder=({requestCb:t,defaultParams:n,options:r={wait:600}})=>{const o=e.useRef(!1),{value:a,on:i,off:s}=Me(!1),[u,c]=e.useState(n),l=async e=>{i();try{await t(e)}finally{s()}},d=we(e=>l(e),r);xe(()=>{l(u)}),ye(()=>{o.current?d.debounce(u):l(u)},[JSON.stringify(u)]);return{loading:a,queryParams:u,updateQueryParams:(e,t=!1)=>{o.current=t,c(t=>({...t,...e}))},reset:()=>c(n)}},exports.useSelectOptions=function(t,n,r){const o=e.useMemo(()=>n.label,[n.label]),a=e.useMemo(()=>n.value,[n.value]);return e.useMemo(()=>t?.map(e=>({value:ke(e,a),label:ke(e,o),...r?.(e)||{}}))??[],[t,a,o,r])},exports.useStateObject=function(t){const[n,r]=e.useState(t);return{state:n,handleUpdate:e.useCallback(e=>{ce(e)&&r(t=>{const n=e(t);return o(n)?{...t,...n}:t}),o(e)&&r(t=>({...t,...e}))},[])}},exports.useStep=function(t=0){const[n,r]=e.useState(t);return{step:n,increment:e.useCallback(()=>{r(e=>e+1)},[]),decrement:e.useCallback(()=>{r(e=>e-1)},[]),reset:e.useCallback(()=>{r(t)},[t]),setStep:r}},exports.useSwitchValue=Me,exports.useUnmountEffect=pe,exports.useUpdateEffect=ye; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VNZW1vQ2FsbGJhY2svdXNlTWVtb0NhbGxiYWNrLnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZUludGVydmFsL3VzZUludGVydmFsLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2NhcGl0YWxpemUvY2FwaXRhbGl6ZS50cyIsIi4uLy4uL3NyYy91dGlscy9pc09iamVjdC9pc09iamVjdC50cyIsIi4uLy4uL3NyYy91dGlscy9kZWJvdW5jZS9kZWJvdW5jZS50cyIsIi4uLy4uL3NyYy91dGlscy9kZWVwRXF1YWwvZGVlcEVxdWFsLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2lzQXJyYXkvaXNBcnJheS50cyIsIi4uLy4uL3NyYy91dGlscy9rZXlzL2tleXMudHMiLCIuLi8uLi9zcmMvdXRpbHMvZGVlcE1lcmdlT2JqZWN0cy9kZWVwTWVyZ2VPYmplY3RzLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2VudHJpZXMvZW50cmllcy50cyIsIi4uLy4uL3NyYy91dGlscy9lbnVtS2V5VG9SZWFkYWJsZS9lbnVtS2V5VG9SZWFkYWJsZS50cyIsIi4uLy4uL3NyYy91dGlscy9nZXRQcm90by9nZXRQcm90by50cyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy90b0RhdGUubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2NvbnN0cnVjdEZyb20ubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2NvbnN0YW50cy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9kZWZhdWx0T3B0aW9ucy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3RhcnRPZldlZWsubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3N0YXJ0T2ZJU09XZWVrLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9nZXRJU09XZWVrWWVhci5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3RhcnRPZkRheS5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1ZhbGlkLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0RhdGUubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VuZE9mV2Vlay5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbG9jYWxlL2VuLVVTL19saWIvZm9ybWF0RGlzdGFuY2UubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xvY2FsZS9fbGliL2J1aWxkRm9ybWF0TG9uZ0ZuLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9sb2NhbGUvZW4tVVMvX2xpYi9mb3JtYXRMb25nLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9sb2NhbGUvZW4tVVMvX2xpYi9mb3JtYXRSZWxhdGl2ZS5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbG9jYWxlL19saWIvYnVpbGRMb2NhbGl6ZUZuLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9sb2NhbGUvX2xpYi9idWlsZE1hdGNoRm4ubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xvY2FsZS9fbGliL2J1aWxkTWF0Y2hQYXR0ZXJuRm4ubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xvY2FsZS9lbi1VUy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbG9jYWxlL2VuLVVTL19saWIvbG9jYWxpemUubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xvY2FsZS9lbi1VUy9fbGliL21hdGNoLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9nZXREYXlPZlllYXIubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2RpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3RhcnRPZlllYXIubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldElTT1dlZWsubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3N0YXJ0T2ZJU09XZWVrWWVhci5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZ2V0V2Vla1llYXIubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldFdlZWsubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3N0YXJ0T2ZXZWVrWWVhci5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9hZGRMZWFkaW5nWmVyb3MubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL19saWIvZm9ybWF0L2xpZ2h0Rm9ybWF0dGVycy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9mb3JtYXQvZm9ybWF0dGVycy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9mb3JtYXQvbG9uZ0Zvcm1hdHRlcnMubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL19saWIvcHJvdGVjdGVkVG9rZW5zLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9mb3JtYXQubWpzIiwiLi4vLi4vc3JjL3V0aWxzL2lzRGF0ZS9pc0RhdGUudHMiLCIuLi8uLi9zcmMvdXRpbHMvaXNGdW5jdGlvbi9pc0Z1bmN0aW9uLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2lzTmlsL2lzTmlsLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2lzTnVtYmVyL2lzTnVtYmVyLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2lzU3ltYm9sL2lzU3ltYm9sLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2lzUHJvbWlzZS9pc1Byb21pc2UudHMiLCIuLi8uLi9zcmMvdXRpbHMvdG9CYXNlNjQvdG9CYXNlNjQudHMiLCIuLi8uLi9zcmMvdXRpbHMvdG9GaW5pdGUvdG9GaW5pdGUudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlTGF0ZXN0L3VzZUxhdGVzdC50cyIsIi4uLy4uL3NyYy9ob29rcy91c2VVbm1vdW50RWZmZWN0L3VzZVVubW91bnRFZmZlY3QudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlRGVib3VuY2UvdXNlRGVib3VuY2VDYWxsYmFjay50cyIsIi4uLy4uL3NyYy9ob29rcy91c2VGaXJzdE1vdW50U3RhdGUvdXNlRmlyc3RNb3VudFN0YXRlLnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZVVwZGF0ZUVmZmVjdC91c2VVcGRhdGVFZmZlY3QudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlTW91bnRFZmZlY3QvdXNlTW91bnRFZmZlY3QudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlUHJldmlvdXMvdXNlUHJldmlvdXMudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlU3dpdGNoVmFsdWUvdXNlU3dpdGNoVmFsdWUudHMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZG90LXBhdGgtdmFsdWUvZGlzdC9pbmRleC5lc20uanMiLCIuLi8uLi9zcmMvc2VydmljZXMvQXdzSW1hZ2VTZXJ2aWNlLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2NoZWNrSXNTZXJ2ZXIvY2hlY2tJc1NlcnZlci50cyIsIi4uLy4uL3NyYy91dGlscy9jaGVja05hdmlnYXRvci9jaGVja05hdmlnYXRvci50cyIsIi4uLy4uL3NyYy91dGlscy9jb21wYWN0L2NvbXBhY3QudHMiLCIuLi8uLi9zcmMvdXRpbHMvZGVlcEtleXMvZGVlcEtleXMudHMiLCIuLi8uLi9zcmMvdXRpbHMvZGlmZmVyZW5jZS9kaWZmZXJlbmNlLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2VudW1Ub1NlbGVjdE9wdGlvbnMvZW51bVRvU2VsZWN0T3B0aW9ucy50cyIsIi4uLy4uL3NyYy91dGlscy9mb3JtYXRDdXJyZW5jeS9mb3JtYXRDdXJyZW5jeS50cyIsIi4uLy4uL3NyYy91dGlscy9mb3JtYXROdW1iZXIvZm9ybWF0TnVtYmVyLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2dldERpcnR5VmFsdWVzL2dldERpcnR5VmFsdWVzLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2dldEZpbGVFeHRlbnNpb24vZ2V0RmlsZUV4dGVuc2lvbi50cyIsIi4uLy4uL3NyYy91dGlscy9nZXRGaWxlTmFtZS9nZXRGaWxlTmFtZS50cyIsIi4uLy4uL3NyYy91dGlscy9nZXRXZWVrZGF5c05hbWVzL2dldFdlZWtkYXlzTmFtZXMudHMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZWFjaERheU9mSW50ZXJ2YWwubWpzIiwiLi4vLi4vc3JjL3V0aWxzL2ludGVyc2VjdGlvbi9pbnRlcnNlY3Rpb24udHMiLCIuLi8uLi9zcmMvdXRpbHMvaXNCbG9iL2lzQmxvYi50cyIsIi4uLy4uL3NyYy91dGlscy9pc0VtcHR5L2lzRW1wdHkudHMiLCIuLi8uLi9zcmMvdXRpbHMvaXNGaWxlL2lzRmlsZS50cyIsIi4uLy4uL3NyYy91dGlscy9pc0Zsb2F0L2lzRmxvYXQudHMiLCIuLi8uLi9zcmMvdXRpbHMvaXNJbnQvaXNJbnQudHMiLCIuLi8uLi9zcmMvdXRpbHMvaXNQcmltaXRpdmUvaXNQcmltaXRpdmUudHMiLCIuLi8uLi9zcmMvdXRpbHMvaXNTdHJpbmcvaXNTdHJpbmcudHMiLCIuLi8uLi9zcmMvdXRpbHMvbWFrZUZvcm1EYXRhL21ha2VGb3JtRGF0YS50cyIsIi4uLy4uL3NyYy91dGlscy9tYWtlUXVlcnlTdHJpbmcvbWFrZVF1ZXJ5U3RyaW5nLnRzIiwiLi4vLi4vc3JjL3V0aWxzL21hcEZvcm1EYXRhL21hcEZvcm1EYXRhLnRzIiwiLi4vLi4vc3JjL3V0aWxzL21lcmdlQ29sbGVjdGlvbkJ5S2V5L21lcmdlQ29sbGVjdGlvbkJ5S2V5LnRzIiwiLi4vLi4vc3JjL3V0aWxzL25vb3Avbm9vcC50cyIsIi4uLy4uL3NyYy91dGlscy9vbWl0L29taXQudHMiLCIuLi8uLi9zcmMvdXRpbHMvcGljay9waWNrLnRzIiwiLi4vLi4vc3JjL3V0aWxzL3BsdXJhbGl6ZS9wbHVyYWxpemUudHMiLCIuLi8uLi9zcmMvdXRpbHMvc2xlZXAvc2xlZXAudHMiLCIuLi8uLi9zcmMvdXRpbHMvdGhyb3R0bGUvdGhyb3R0bGUudHMiLCIuLi8uLi9zcmMvdXRpbHMvdHJ1bmNhdGUvdHJ1bmNhdGUudHMiLCIuLi8uLi9zcmMvdXRpbHMvdW5pcS91bmlxLnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZUNvZGVUaW1lci91c2VDb2RlVGltZXIudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlQ29tYmluZWRSZWYvdXNlQ29tYmluZWRSZWYudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlRGVib3VuY2UvdXNlRGVib3VuY2VFZmZlY3QudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlRGVmYXVsdC91c2VEZWZhdWx0LnRzeCIsIi4uLy4uL3NyYy9ob29rcy91c2VIb29rRm9ybVBlcnNpc3QvdXNlSG9va0Zvcm1QZXJzaXN0LnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZUlzQ2xpZW50L3VzZUlzQ2xpZW50LnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZUlzTW91bnRlZC91c2VJc01vdW50ZWQudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlTWFudWFsVXBkYXRlL3VzZU1hbnVhbFVwZGF0ZS50cyIsIi4uLy4uL3NyYy9ob29rcy91c2VRdWVyeVBhcmFtc0J1aWxkZXIvdXNlUXVlcnlQYXJhbXNCdWlsZGVyLnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZVNlbGVjdE9wdGlvbnMvdXNlU2VsZWN0T3B0aW9ucy50cyIsIi4uLy4uL3NyYy9ob29rcy91c2VTdGF0ZU9iamVjdC91c2VTdGF0ZU9iamVjdC50cyIsIi4uLy4uL3NyYy9ob29rcy91c2VTdGVwL3VzZVN0ZXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsIi8qKlxuICogQG5hbWUgdG9EYXRlXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgdGhlIGdpdmVuIGFyZ3VtZW50IHRvIGFuIGluc3RhbmNlIG9mIERhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDb252ZXJ0IHRoZSBnaXZlbiBhcmd1bWVudCB0byBhbiBpbnN0YW5jZSBvZiBEYXRlLlxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpcyBhbiBpbnN0YW5jZSBvZiBEYXRlLCB0aGUgZnVuY3Rpb24gcmV0dXJucyBpdHMgY2xvbmUuXG4gKlxuICogSWYgdGhlIGFyZ3VtZW50IGlzIGEgbnVtYmVyLCBpdCBpcyB0cmVhdGVkIGFzIGEgdGltZXN0YW1wLlxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpcyBub25lIG9mIHRoZSBhYm92ZSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgSW52YWxpZCBEYXRlLlxuICpcbiAqICoqTm90ZSoqOiAqYWxsKiBEYXRlIGFyZ3VtZW50cyBwYXNzZWQgdG8gYW55ICpkYXRlLWZucyogZnVuY3Rpb24gaXMgcHJvY2Vzc2VkIGJ5IGB0b0RhdGVgLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICpcbiAqIEBwYXJhbSBhcmd1bWVudCAtIFRoZSB2YWx1ZSB0byBjb252ZXJ0XG4gKlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBkYXRlIGluIHRoZSBsb2NhbCB0aW1lIHpvbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ2xvbmUgdGhlIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSB0b0RhdGUobmV3IERhdGUoMjAxNCwgMSwgMTEsIDExLCAzMCwgMzApKVxuICogLy89PiBUdWUgRmViIDExIDIwMTQgMTE6MzA6MzBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCB0aGUgdGltZXN0YW1wIHRvIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSB0b0RhdGUoMTM5MjA5ODQzMDAwMClcbiAqIC8vPT4gVHVlIEZlYiAxMSAyMDE0IDExOjMwOjMwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGUoYXJndW1lbnQpIHtcbiAgY29uc3QgYXJnU3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZ3VtZW50KTtcblxuICAvLyBDbG9uZSB0aGUgZGF0ZVxuICBpZiAoXG4gICAgYXJndW1lbnQgaW5zdGFuY2VvZiBEYXRlIHx8XG4gICAgKHR5cGVvZiBhcmd1bWVudCA9PT0gXCJvYmplY3RcIiAmJiBhcmdTdHIgPT09IFwiW29iamVjdCBEYXRlXVwiKVxuICApIHtcbiAgICAvLyBQcmV2ZW50IHRoZSBkYXRlIHRvIGxvc2UgdGhlIG1pbGxpc2Vjb25kcyB3aGVuIHBhc3NlZCB0byBuZXcgRGF0ZSgpIGluIElFMTBcbiAgICByZXR1cm4gbmV3IGFyZ3VtZW50LmNvbnN0cnVjdG9yKCthcmd1bWVudCk7XG4gIH0gZWxzZSBpZiAoXG4gICAgdHlwZW9mIGFyZ3VtZW50ID09PSBcIm51bWJlclwiIHx8XG4gICAgYXJnU3RyID09PSBcIltvYmplY3QgTnVtYmVyXVwiIHx8XG4gICAgdHlwZW9mIGFyZ3VtZW50ID09PSBcInN0cmluZ1wiIHx8XG4gICAgYXJnU3RyID09PSBcIltvYmplY3QgU3RyaW5nXVwiXG4gICkge1xuICAgIC8vIFRPRE86IENhbiB3ZSBnZXQgcmlkIG9mIGFzP1xuICAgIHJldHVybiBuZXcgRGF0ZShhcmd1bWVudCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gVE9ETzogQ2FuIHdlIGdldCByaWQgb2YgYXM/XG4gICAgcmV0dXJuIG5ldyBEYXRlKE5hTik7XG4gIH1cbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCB0b0RhdGU7XG4iLCIvKipcbiAqIEBuYW1lIGNvbnN0cnVjdEZyb21cbiAqIEBjYXRlZ29yeSBHZW5lcmljIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnN0cnVjdHMgYSBkYXRlIHVzaW5nIHRoZSByZWZlcmVuY2UgZGF0ZSBhbmQgdGhlIHZhbHVlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgZnVuY3Rpb24gY29uc3RydWN0cyBhIG5ldyBkYXRlIHVzaW5nIHRoZSBjb25zdHJ1Y3RvciBmcm9tIHRoZSByZWZlcmVuY2VcbiAqIGRhdGUgYW5kIHRoZSBnaXZlbiB2YWx1ZS4gSXQgaGVscHMgdG8gYnVpbGQgZ2VuZXJpYyBmdW5jdGlvbnMgdGhhdCBhY2NlcHRcbiAqIGRhdGUgZXh0ZW5zaW9ucy5cbiAqXG4gKiBJdCBkZWZhdWx0cyB0byBgRGF0ZWAgaWYgdGhlIHBhc3NlZCByZWZlcmVuY2UgZGF0ZSBpcyBhIG51bWJlciBvciBhIHN0cmluZy5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSByZWZlcmVuY2UgZGF0ZSB0byB0YWtlIGNvbnN0cnVjdG9yIGZyb21cbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjcmVhdGUgdGhlIGRhdGVcbiAqXG4gKiBAcmV0dXJucyBEYXRlIGluaXRpYWxpemVkIHVzaW5nIHRoZSBnaXZlbiBkYXRlIGFuZCB2YWx1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSAnZGF0ZS1mbnMnXG4gKlxuICogLy8gQSBmdW5jdGlvbiB0aGF0IGNsb25lcyBhIGRhdGUgcHJlc2VydmluZyB0aGUgb3JpZ2luYWwgdHlwZVxuICogZnVuY3Rpb24gY2xvbmVEYXRlPERhdGVUeXBlIGV4dGVuZHMgRGF0ZShkYXRlOiBEYXRlVHlwZSk6IERhdGVUeXBlIHtcbiAqICAgcmV0dXJuIGNvbnN0cnVjdEZyb20oXG4gKiAgICAgZGF0ZSwgLy8gVXNlIGNvbnRydXN0b3IgZnJvbSB0aGUgZ2l2ZW4gZGF0ZVxuICogICAgIGRhdGUuZ2V0VGltZSgpIC8vIFVzZSB0aGUgZGF0ZSB2YWx1ZSB0byBjcmVhdGUgYSBuZXcgZGF0ZVxuICogICApXG4gKiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tKGRhdGUsIHZhbHVlKSB7XG4gIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBuZXcgZGF0ZS5jb25zdHJ1Y3Rvcih2YWx1ZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcbiAgfVxufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGNvbnN0cnVjdEZyb207XG4iLCIvKipcbiAqIEBtb2R1bGUgY29uc3RhbnRzXG4gKiBAc3VtbWFyeSBVc2VmdWwgY29uc3RhbnRzXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbGxlY3Rpb24gb2YgdXNlZnVsIGRhdGUgY29uc3RhbnRzLlxuICpcbiAqIFRoZSBjb25zdGFudHMgY291bGQgYmUgaW1wb3J0ZWQgZnJvbSBgZGF0ZS1mbnMvY29uc3RhbnRzYDpcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgbWF4VGltZSwgbWluVGltZSB9IGZyb20gXCIuL2NvbnN0YW50cy9kYXRlLWZucy9jb25zdGFudHNcIjtcbiAqXG4gKiBmdW5jdGlvbiBpc0FsbG93ZWRUaW1lKHRpbWUpIHtcbiAqICAgcmV0dXJuIHRpbWUgPD0gbWF4VGltZSAmJiB0aW1lID49IG1pblRpbWU7XG4gKiB9XG4gKiBgYGBcbiAqL1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgZGF5c0luV2Vla1xuICogQHN1bW1hcnkgRGF5cyBpbiAxIHdlZWsuXG4gKi9cbmV4cG9ydCBjb25zdCBkYXlzSW5XZWVrID0gNztcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIGRheXNJblllYXJcbiAqIEBzdW1tYXJ5IERheXMgaW4gMSB5ZWFyLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSG93IG1hbnkgZGF5cyBpbiBhIHllYXIuXG4gKlxuICogT25lIHllYXJzIGVxdWFscyAzNjUuMjQyNSBkYXlzIGFjY29yZGluZyB0byB0aGUgZm9ybXVsYTpcbiAqXG4gKiA+IExlYXAgeWVhciBvY2N1cmVzIGV2ZXJ5IDQgeWVhcnMsIGV4Y2VwdCBmb3IgeWVhcnMgdGhhdCBhcmUgZGl2aXNhYmxlIGJ5IDEwMCBhbmQgbm90IGRpdmlzYWJsZSBieSA0MDAuXG4gKiA+IDEgbWVhbiB5ZWFyID0gKDM2NSsxLzQtMS8xMDArMS80MDApIGRheXMgPSAzNjUuMjQyNSBkYXlzXG4gKi9cbmV4cG9ydCBjb25zdCBkYXlzSW5ZZWFyID0gMzY1LjI0MjU7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtYXhUaW1lXG4gKiBAc3VtbWFyeSBNYXhpbXVtIGFsbG93ZWQgdGltZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgbWF4VGltZSB9IGZyb20gXCIuL2NvbnN0YW50cy9kYXRlLWZucy9jb25zdGFudHNcIjtcbiAqXG4gKiBjb25zdCBpc1ZhbGlkID0gODY0MDAwMDAwMDAwMDAwMSA8PSBtYXhUaW1lO1xuICogLy89PiBmYWxzZVxuICpcbiAqIG5ldyBEYXRlKDg2NDAwMDAwMDAwMDAwMDEpO1xuICogLy89PiBJbnZhbGlkIERhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IG1heFRpbWUgPSBNYXRoLnBvdygxMCwgOCkgKiAyNCAqIDYwICogNjAgKiAxMDAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWluVGltZVxuICogQHN1bW1hcnkgTWluaW11bSBhbGxvd2VkIHRpbWUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IG1pblRpbWUgfSBmcm9tIFwiLi9jb25zdGFudHMvZGF0ZS1mbnMvY29uc3RhbnRzXCI7XG4gKlxuICogY29uc3QgaXNWYWxpZCA9IC04NjQwMDAwMDAwMDAwMDAxID49IG1pblRpbWU7XG4gKiAvLz0+IGZhbHNlXG4gKlxuICogbmV3IERhdGUoLTg2NDAwMDAwMDAwMDAwMDEpXG4gKiAvLz0+IEludmFsaWQgRGF0ZVxuICovXG5leHBvcnQgY29uc3QgbWluVGltZSA9IC1tYXhUaW1lO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWlsbGlzZWNvbmRzSW5XZWVrXG4gKiBAc3VtbWFyeSBNaWxsaXNlY29uZHMgaW4gMSB3ZWVrLlxuICovXG5leHBvcnQgY29uc3QgbWlsbGlzZWNvbmRzSW5XZWVrID0gNjA0ODAwMDAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWlsbGlzZWNvbmRzSW5EYXlcbiAqIEBzdW1tYXJ5IE1pbGxpc2Vjb25kcyBpbiAxIGRheS5cbiAqL1xuZXhwb3J0IGNvbnN0IG1pbGxpc2Vjb25kc0luRGF5ID0gODY0MDAwMDA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtaWxsaXNlY29uZHNJbk1pbnV0ZVxuICogQHN1bW1hcnkgTWlsbGlzZWNvbmRzIGluIDEgbWludXRlXG4gKi9cbmV4cG9ydCBjb25zdCBtaWxsaXNlY29uZHNJbk1pbnV0ZSA9IDYwMDAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWlsbGlzZWNvbmRzSW5Ib3VyXG4gKiBAc3VtbWFyeSBNaWxsaXNlY29uZHMgaW4gMSBob3VyXG4gKi9cbmV4cG9ydCBjb25zdCBtaWxsaXNlY29uZHNJbkhvdXIgPSAzNjAwMDAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWlsbGlzZWNvbmRzSW5TZWNvbmRcbiAqIEBzdW1tYXJ5IE1pbGxpc2Vjb25kcyBpbiAxIHNlY29uZFxuICovXG5leHBvcnQgY29uc3QgbWlsbGlzZWNvbmRzSW5TZWNvbmQgPSAxMDAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWludXRlc0luWWVhclxuICogQHN1bW1hcnkgTWludXRlcyBpbiAxIHllYXIuXG4gKi9cbmV4cG9ydCBjb25zdCBtaW51dGVzSW5ZZWFyID0gNTI1NjAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWludXRlc0luTW9udGhcbiAqIEBzdW1tYXJ5IE1pbnV0ZXMgaW4gMSBtb250aC5cbiAqL1xuZXhwb3J0IGNvbnN0IG1pbnV0ZXNJbk1vbnRoID0gNDMyMDA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtaW51dGVzSW5EYXlcbiAqIEBzdW1tYXJ5IE1pbnV0ZXMgaW4gMSBkYXkuXG4gKi9cbmV4cG9ydCBjb25zdCBtaW51dGVzSW5EYXkgPSAxNDQwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWludXRlc0luSG91clxuICogQHN1bW1hcnkgTWludXRlcyBpbiAxIGhvdXIuXG4gKi9cbmV4cG9ydCBjb25zdCBtaW51dGVzSW5Ib3VyID0gNjA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtb250aHNJblF1YXJ0ZXJcbiAqIEBzdW1tYXJ5IE1vbnRocyBpbiAxIHF1YXJ0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBtb250aHNJblF1YXJ0ZXIgPSAzO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbW9udGhzSW5ZZWFyXG4gKiBAc3VtbWFyeSBNb250aHMgaW4gMSB5ZWFyLlxuICovXG5leHBvcnQgY29uc3QgbW9udGhzSW5ZZWFyID0gMTI7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBxdWFydGVyc0luWWVhclxuICogQHN1bW1hcnkgUXVhcnRlcnMgaW4gMSB5ZWFyXG4gKi9cbmV4cG9ydCBjb25zdCBxdWFydGVyc0luWWVhciA9IDQ7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBzZWNvbmRzSW5Ib3VyXG4gKiBAc3VtbWFyeSBTZWNvbmRzIGluIDEgaG91ci5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlY29uZHNJbkhvdXIgPSAzNjAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgc2Vjb25kc0luTWludXRlXG4gKiBAc3VtbWFyeSBTZWNvbmRzIGluIDEgbWludXRlLlxuICovXG5leHBvcnQgY29uc3Qgc2Vjb25kc0luTWludXRlID0gNjA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBzZWNvbmRzSW5EYXlcbiAqIEBzdW1tYXJ5IFNlY29uZHMgaW4gMSBkYXkuXG4gKi9cbmV4cG9ydCBjb25zdCBzZWNvbmRzSW5EYXkgPSBzZWNvbmRzSW5Ib3VyICogMjQ7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBzZWNvbmRzSW5XZWVrXG4gKiBAc3VtbWFyeSBTZWNvbmRzIGluIDEgd2Vlay5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlY29uZHNJbldlZWsgPSBzZWNvbmRzSW5EYXkgKiA3O1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgc2Vjb25kc0luWWVhclxuICogQHN1bW1hcnkgU2Vjb25kcyBpbiAxIHllYXIuXG4gKi9cbmV4cG9ydCBjb25zdCBzZWNvbmRzSW5ZZWFyID0gc2Vjb25kc0luRGF5ICogZGF5c0luWWVhcjtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIHNlY29uZHNJbk1vbnRoXG4gKiBAc3VtbWFyeSBTZWNvbmRzIGluIDEgbW9udGhcbiAqL1xuZXhwb3J0IGNvbnN0IHNlY29uZHNJbk1vbnRoID0gc2Vjb25kc0luWWVhciAvIDEyO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgc2Vjb25kc0luUXVhcnRlclxuICogQHN1bW1hcnkgU2Vjb25kcyBpbiAxIHF1YXJ0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBzZWNvbmRzSW5RdWFydGVyID0gc2Vjb25kc0luTW9udGggKiAzO1xuIiwibGV0IGRlZmF1bHRPcHRpb25zID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0T3B0aW9ucygpIHtcbiAgcmV0dXJuIGRlZmF1bHRPcHRpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RGVmYXVsdE9wdGlvbnMobmV3T3B0aW9ucykge1xuICBkZWZhdWx0T3B0aW9ucyA9IG5ld09wdGlvbnM7XG59XG4iLCJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUubWpzXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0T3B0aW9ucyB9IGZyb20gXCIuL19saWIvZGVmYXVsdE9wdGlvbnMubWpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdGFydE9mV2Vla30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN0YXJ0T2ZXZWVrXG4gKiBAY2F0ZWdvcnkgV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbmFsIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBzdGFydCBvZiBhIHdlZWtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIHN0YXJ0IG9mIGEgd2VlayBmb3I