t==="x"?"y":"x";function xP(t,e,n,i){const r=t.skip?e:t,a=e,s=n.skip?e:n,o=Pp(a,r),l=Pp(s,a);let c=o/(o+l),d=l/(o+l);c=isNaN(c)?0:c,d=isNaN(d)?0:d;const u=i*c,_=i*d;return{previous:{x:a.x-u*(s.x-r.x),y:a.y-u*(s.y-r.y)},next:{x:a.x+_*(s.x-r.x),y:a.y+_*(s.y-r.y)}}}function wP(t,e,n){const i=t.length;let r,a,s,o,l,c=Fr(t,0);for(let d=0;d!c.skip)),e.cubicInterpolationMode==="monotone")LP(t,r);else{let c=i?t[t.length-1]:t[0];for(a=0,s=t.length;at.ownerDocument.defaultView.getComputedStyle(t,null);function FP(t,e){return Ul(t).getPropertyValue(e)}const UP=["top","right","bottom","left"];function Ki(t,e,n){const i={};n=n?"-"+n:"";for(let r=0;r<4;r++){const a=UP[r];i[a]=parseFloat(t[e+"-"+a+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const BP=(t,e,n)=>(t>0||e>0)&&(!n||!n.shadowRoot);function GP(t,e){const n=t.touches,i=n&&n.length?n[0]:t,{offsetX:r,offsetY:a}=i;let s=!1,o,l;if(BP(r,a,t.target))o=r,l=a;else{const c=e.getBoundingClientRect();o=i.clientX-c.left,l=i.clientY-c.top,s=!0}return{x:o,y:l,box:s}}function Li(t,e){if("native"in t)return t;const{canvas:n,currentDevicePixelRatio:i}=e,r=Ul(n),a=r.boxSizing==="border-box",s=Ki(r,"padding"),o=Ki(r,"border","width"),{x:l,y:c,box:d}=GP(t,n),u=s.left+(d&&o.left),_=s.top+(d&&o.top);let{width:p,height:f}=e;return a&&(p-=s.width+o.width,f-=s.height+o.height),{x:Math.round((l-u)/p*n.width/i),y:Math.round((c-_)/f*n.height/i)}}function YP(t,e,n){let i,r;if(e===void 0||n===void 0){const a=lf(t);if(!a)e=t.clientWidth,n=t.clientHeight;else{const s=a.getBoundingClientRect(),o=Ul(a),l=Ki(o,"border","width"),c=Ki(o,"padding");e=s.width-c.width-l.width,n=s.height-c.height-l.height,i=Jo(o.maxWidth,a,"clientWidth"),r=Jo(o.maxHeight,a,"clientHeight")}}return{width:e,height:n,maxWidth:i||Zo,maxHeight:r||Zo}}const $s=t=>Math.round(t*10)/10;function zP(t,e,n,i){const r=Ul(t),a=Ki(r,"margin"),s=Jo(r.maxWidth,t,"clientWidth")||Zo,o=Jo(r.maxHeight,t,"clientHeight")||Zo,l=YP(t,e,n);let{width:c,height:d}=l;if(r.boxSizing==="content-box"){const _=Ki(r,"border","width"),p=Ki(r,"padding");c-=p.width+_.width,d-=p.height+_.height}return c=Math.max(0,c-a.width),d=Math.max(0,i?c/i:d-a.height),c=$s(Math.min(c,s,l.maxWidth)),d=$s(Math.min(d,o,l.maxHeight)),c&&!d&&(d=$s(c/2)),(e!==void 0||n!==void 0)&&i&&l.height&&d>l.height&&(d=l.height,c=$s(Math.floor(d*i))),{width:c,height:d}}function gh(t,e,n){const i=e||1,r=Math.floor(t.height*i),a=Math.floor(t.width*i);t.height=Math.floor(t.height),t.width=Math.floor(t.width);const s=t.canvas;return s.style&&(n||!s.style.height&&!s.style.width)&&(s.style.height=`${t.height}px`,s.style.width=`${t.width}px`),t.currentDevicePixelRatio!==i||s.height!==r||s.width!==a?(t.currentDevicePixelRatio=i,s.height=r,s.width=a,t.ctx.setTransform(i,0,0,i,0,0),!0):!1}const HP=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch{}return t}();function hh(t,e){const n=FP(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function Pi(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}function VP(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:i==="middle"?n<.5?t.y:e.y:i==="after"?n<1?t.y:e.y:n>0?e.y:t.y}}function qP(t,e,n,i){const r={x:t.cp2x,y:t.cp2y},a={x:e.cp1x,y:e.cp1y},s=Pi(t,r,n),o=Pi(r,a,n),l=Pi(a,e,n),c=Pi(s,o,n),d=Pi(o,l,n);return Pi(c,d,n)}const $P=function(t,e){return{x(n){return t+t+e-n},setWidth(n){e=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},WP=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function Nr(t,e,n){return t?$P(e,n):WP()}function $C(t,e){let n,i;(e==="ltr"||e==="rtl")&&(n=t.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",e,"important"),t.prevTextDirection=i)}function WC(t,e){e!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function KC(t){return t==="angle"?{between:Ja,compare:KL,normalize:Qt}:{between:Pn,compare:(e,n)=>e-n,normalize:e=>e}}function Eh({start:t,end:e,count:n,loop:i,style:r}){return{start:t%n,end:e%n,loop:i&&(e-t+1)%n===0,style:r}}function KP(t,e,n){const{property:i,start:r,end:a}=n,{between:s,normalize:o}=KC(i),l=e.length;let{start:c,end:d,loop:u}=t,_,p;if(u){for(c+=l,d+=l,_=0,p=l;_l(r,b,h)&&o(r,b)!==0,y=()=>o(a,h)===0||l(a,b,h),O=()=>m||T(),x=()=>!m||y();for(let I=d,D=d;I<=u;++I)S=e[I%s],!S.skip&&(h=c(S[i]),h!==b&&(m=l(h,r,a),g===null&&O()&&(g=o(h,r)===0?I:D),g!==null&&x()&&(f.push(Eh({start:g,end:I,loop:_,count:s,style:p})),g=null),D=I,b=h));return g!==null&&f.push(Eh({start:g,end:u,loop:_,count:s,style:p})),f}function XC(t,e){const n=[],i=t.segments;for(let r=0;rr&&t[a%e].skip;)a--;return a%=e,{start:r,end:a}}function XP(t,e,n,i){const r=t.length,a=[];let s=e,o=t[e],l;for(l=e+1;l<=n;++l){const c=t[l%r];c.skip||c.stop?o.skip||(i=!1,a.push({start:e%r,end:(l-1)%r,loop:i}),e=s=c.stop?l:null):(s=l,o.skip&&(e=l)),o=c}return s!==null&&a.push({start:e%r,end:s%r,loop:i}),a}function ZP(t,e){const n=t.points,i=t.options.spanGaps,r=n.length;if(!r)return[];const a=!!t._loop,{start:s,end:o}=QP(n,r,a,i);if(i===!0)return Sh(t,[{start:s,end:o,loop:a}],n,e);const l=oo({chart:e,initial:n.initial,numSteps:s,currentStep:Math.min(i-n.start,s)}))}_refresh(){this._request||(this._running=!0,this._request=wC.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let n=0;this._charts.forEach((i,r)=>{if(!i.running||!i.items.length)return;const a=i.items;let s=a.length-1,o=!1,l;for(;s>=0;--s)l=a[s],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(e),o=!0):(a[s]=a[a.length-1],a.pop());o&&(r.draw(),this._notify(r,i,e,"progress")),a.length||(i.running=!1,this._notify(r,i,e,"complete"),i.initial=!1),n+=a.length}),this._lastDate=e,n===0&&(this._running=!1)}_getAnims(e){const n=this._charts;let i=n.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(e,i)),i}listen(e,n,i){this._getAnims(e).listeners[n].push(i)}add(e,n){!n||!n.length||this._getAnims(e).items.push(...n)}has(e){return this._getAnims(e).items.length>0}start(e){const n=this._charts.get(e);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,r)=>Math.max(i,r._duration),0),this._refresh())}running(e){if(!this._running)return!1;const n=this._charts.get(e);return!(!n||!n.running||!n.items.length)}stop(e){const n=this._charts.get(e);if(!n||!n.items.length)return;const i=n.items;let r=i.length-1;for(;r>=0;--r)i[r].cancel();n.items=[],this._notify(e,n,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var Dn=new ek;const Th="transparent",tk={boolean(t,e,n){return n>.5?e:t},color(t,e,n){const i=uh(t||Th),r=i.valid&&uh(e||Th);return r&&r.valid?r.mix(i,n).hexString():e},number(t,e,n){return t+(e-t)*n}};class nk{constructor(e,n,i,r){const a=n[i];r=Xe([e.to,r,a,e.from]);const s=Xe([e.from,a,r]);this._active=!0,this._fn=e.fn||tk[e.type||typeof s],this._easing=va[e.easing]||va.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=n,this._prop=i,this._from=s,this._to=r,this._promises=void 0}active(){return this._active}update(e,n,i){if(this._active){this._notify(!1);const r=this._target[this._prop],a=i-this._start,s=this._duration-a;this._start=i,this._duration=Math.floor(Math.max(s,e.duration)),this._total+=a,this._loop=!!e.loop,this._to=Xe([e.to,n,r,e.from]),this._from=Xe([e.from,r,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const n=e-this._start,i=this._duration,r=this._prop,a=this._from,s=this._loop,o=this._to;let l;if(this._active=a!==o&&(s||n1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[r]=this._fn(a,o,l)}wait(){const e=this._promises||(this._promises=[]);return new Promise((n,i)=>{e.push({res:n,rej:i})})}_notify(e){const n=e?"res":"rej",i=this._promises||[];for(let r=0;r{const a=e[r];if(!ke(a))return;const s={};for(const o of n)s[o]=a[o];(Je(a.properties)&&a.properties||[r]).forEach(o=>{(o===r||!i.has(o))&&i.set(o,s)})})}_animateOptions(e,n){const i=n.options,r=rk(e,i);if(!r)return[];const a=this._createAnimations(r,i);return i.$shared&&ik(e.options.$animations,i).then(()=>{e.options=i},()=>{}),a}_createAnimations(e,n){const i=this._properties,r=[],a=e.$animations||(e.$animations={}),s=Object.keys(n),o=Date.now();let l;for(l=s.length-1;l>=0;--l){const c=s[l];if(c.charAt(0)==="$")continue;if(c==="options"){r.push(...this._animateOptions(e,n));continue}const d=n[c];let u=a[c];const _=i.get(c);if(u)if(_&&u.active()){u.update(_,d,o);continue}else u.cancel();if(!_||!_.duration){e[c]=d;continue}a[c]=u=new nk(_,e,c,d),r.push(u)}return r}update(e,n){if(this._properties.size===0){Object.assign(e,n);return}const i=this._createAnimations(e,n);if(i.length)return Dn.add(this._chart,i),!0}}function ik(t,e){const n=[],i=Object.keys(e);for(let r=0;r0||!n&&a<0)return r.index}return null}function Oh(t,e){const{chart:n,_cachedMeta:i}=t,r=n._stacks||(n._stacks={}),{iScale:a,vScale:s,index:o}=i,l=a.axis,c=s.axis,d=lk(a,s,i),u=e.length;let _;for(let p=0;pn[i].axis===e).shift()}function uk(t,e){return Ci(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function _k(t,e,n){return Ci(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function Xr(t,e){const n=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){e=e||t._parsed;for(const r of e){const a=r._stacks;if(!a||a[i]===void 0||a[i][n]===void 0)return;delete a[i][n],a[i]._visualValues!==void 0&&a[i]._visualValues[n]!==void 0&&delete a[i]._visualValues[n]}}}const lc=t=>t==="reset"||t==="none",Nh=(t,e)=>e?t:Object.assign({},t),pk=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:jC(n,!0),values:null};class un{constructor(e,n){this.chart=e,this._ctx=e.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=Ch(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&Xr(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,n=this._cachedMeta,i=this.getDataset(),r=(u,_,p,f)=>u==="x"?_:u==="r"?f:p,a=n.xAxisID=Ie(i.xAxisID,oc(e,"x")),s=n.yAxisID=Ie(i.yAxisID,oc(e,"y")),o=n.rAxisID=Ie(i.rAxisID,oc(e,"r")),l=n.indexAxis,c=n.iAxisID=r(l,a,s,o),d=n.vAxisID=r(l,s,a,o);n.xScale=this.getScaleForId(a),n.yScale=this.getScaleForId(s),n.rScale=this.getScaleForId(o),n.iScale=this.getScaleForId(c),n.vScale=this.getScaleForId(d)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const n=this._cachedMeta;return e===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&lh(this._data,this),e._stacked&&Xr(e)}_dataCheck(){const e=this.getDataset(),n=e.data||(e.data=[]),i=this._data;if(ke(n))this._data=ok(n);else if(i!==n){if(i){lh(i,this);const r=this._cachedMeta;Xr(r),r._parsed=[]}n&&Object.isExtensible(n)&&jL(n,this),this._syncList=[],this._data=n}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const n=this._cachedMeta,i=this.getDataset();let r=!1;this._dataCheck();const a=n._stacked;n._stacked=Ch(n.vScale,n),n.stack!==i.stack&&(r=!0,Xr(n),n.stack=i.stack),this._resyncElements(e),(r||a!==n._stacked)&&Oh(this,n._parsed)}configure(){const e=this.chart.config,n=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),n,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,n){const{_cachedMeta:i,_data:r}=this,{iScale:a,_stacked:s}=i,o=a.axis;let l=e===0&&n===r.length?!0:i._sorted,c=e>0&&i._parsed[e-1],d,u,_;if(this._parsing===!1)i._parsed=r,i._sorted=!0,_=r;else{Je(r[e])?_=this.parseArrayData(i,r,e,n):ke(r[e])?_=this.parseObjectData(i,r,e,n):_=this.parsePrimitiveData(i,r,e,n);const p=()=>u[o]===null||c&&u[o]m||u=0;--_)if(!f()){this.updateRangeFromParsed(c,e,p,l);break}}return c}getAllParsedValues(e){const n=this._cachedMeta._parsed,i=[];let r,a,s;for(r=0,a=n.length;r=0&ðis.getContext(i,r,n),m=c.resolveNamedOptions(_,p,f,u);return m.$shared&&(m.$shared=l,a[s]=Object.freeze(Nh(m,l))),m}_resolveAnimations(e,n,i){const r=this.chart,a=this._cachedDataOpts,s=`animation-${n}`,o=a[s];if(o)return o;let l;if(r.options.animation!==!1){const d=this.chart.config,u=d.datasetAnimationScopeKeys(this._type,n),_=d.getOptionScopes(this.getDataset(),u);l=d.createResolver(_,this.getContext(e,i,n))}const c=new ZC(r,l&&l.animations);return l&&l._cacheable&&(a[s]=Object.freeze(c)),c}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,n){return!n||lc(e)||this.chart._animationsDisabled}_getSharedOptions(e,n){const i=this.resolveDataElementOptions(e,n),r=this._sharedOptions,a=this.getSharedOptions(i),s=this.includeOptions(n,a)||a!==r;return this.updateSharedOptions(a,n,i),{sharedOptions:a,includeOptions:s}}updateElement(e,n,i,r){lc(r)?Object.assign(e,i):this._resolveAnimations(n,r).update(e,i)}updateSharedOptions(e,n,i){e&&!lc(n)&&this._resolveAnimations(void 0,n).update(e,i)}_setStyle(e,n,i,r){e.active=r;const a=this.getStyle(n,r);this._resolveAnimations(n,i,r).update(e,{options:!r&&this.getSharedOptions(a)||a})}removeHoverStyle(e,n,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,n,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const n=this._data,i=this._cachedMeta.data;for(const[o,l,c]of this._syncList)this[o](l,c);this._syncList=[];const r=i.length,a=n.length,s=Math.min(a,r);s&&this.parse(0,s),a>r?this._insertElements(r,a-r,e):a{for(c.length+=n,o=c.length-1;o>=s;o--)c[o]=c[o-n]};for(l(a),o=e;or-a))}return t._cache.$bar}function fk(t){const e=t.iScale,n=mk(e,t.type);let i=e._length,r,a,s,o;const l=()=>{s===32767||s===-32768||(ja(o)&&(i=Math.min(i,Math.abs(s-o)||i)),o=s)};for(r=0,a=n.length;r0?r[t-1]:null,o=tMath.abs(o)&&(l=o,c=s),e[n.axis]=c,e._custom={barStart:l,barEnd:c,start:r,end:a,min:s,max:o}}function JC(t,e,n,i){return Je(t)?Ek(t,e,n,i):e[n.axis]=n.parse(t,i),e}function Ah(t,e,n,i){const r=t.iScale,a=t.vScale,s=r.getLabels(),o=r===a,l=[];let c,d,u,_;for(c=n,d=n+i;c=n?1:-1)}function bk(t){let e,n,i,r,a;return t.horizontal?(e=t.base>t.x,n="left",i="right"):(e=t.basel.controller.options.grouped),a=i.options.stacked,s=[],o=l=>{const c=l.controller.getParsed(n),d=c&&c[l.vScale.axis];if(Pe(d)||isNaN(d))return!0};for(const l of r)if(!(n!==void 0&&o(l))&&((a===!1||s.indexOf(l.stack)===-1||a===void 0&&l.stack===void 0)&&s.push(l.stack),l.index===e))break;return s.length||s.push(void 0),s}_getStackCount(e){return this._getStacks(void 0,e).length}_getStackIndex(e,n,i){const r=this._getStacks(e,i),a=n!==void 0?r.indexOf(n):-1;return a===-1?r.length-1:a}_getRuler(){const e=this.options,n=this._cachedMeta,i=n.iScale,r=[];let a,s;for(a=0,s=n.data.length;a=0;--i)n=Math.max(n,e[i].size(this.resolveDataElementOptions(i))/2);return n>0&&n}getLabelAndValue(e){const n=this._cachedMeta,i=this.chart.data.labels||[],{xScale:r,yScale:a}=n,s=this.getParsed(e),o=r.getLabelForValue(s.x),l=a.getLabelForValue(s.y),c=s._custom;return{label:i[e]||"",value:"("+o+", "+l+(c?", "+c:"")+")"}}update(e){const n=this._cachedMeta.data;this.updateElements(n,0,n.length,e)}updateElements(e,n,i,r){const a=r==="reset",{iScale:s,vScale:o}=this._cachedMeta,{sharedOptions:l,includeOptions:c}=this._getSharedOptions(n,r),d=s.axis,u=o.axis;for(let _=n;_Ja(b,o,l,!0)?1:Math.max(T,T*n,y,y*n),f=(b,T,y)=>Ja(b,o,l,!0)?-1:Math.min(T,T*n,y,y*n),m=p(0,c,u),g=p(mt,d,_),h=f(it,c,u),S=f(it+mt,d,_);i=(m-h)/2,r=(g-S)/2,a=-(m+h)/2,s=-(g+S)/2}return{ratioX:i,ratioY:r,offsetX:a,offsetY:s}}class Vi extends un{constructor(e,n){super(e,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,n){const i=this.getDataset().data,r=this._cachedMeta;if(this._parsing===!1)r._parsed=i;else{let a=l=>+i[l];if(ke(i[e])){const{key:l="value"}=this._parsing;a=c=>+vi(i[c],l)}let s,o;for(s=e,o=e+n;s0&&!isNaN(e)?tt*(Math.abs(e)/n):0}getLabelAndValue(e){const n=this._cachedMeta,i=this.chart,r=i.data.labels||[],a=Es(n._parsed[e],i.options.locale);return{label:r[e]||"",value:a}}getMaxBorderWidth(e){let n=0;const i=this.chart;let r,a,s,o,l;if(!e){for(r=0,a=i.data.datasets.length;re!=="spacing",_indexable:e=>e!=="spacing"&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")}),ae(Vi,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data;if(n.labels.length&&n.datasets.length){const{labels:{pointStyle:i,color:r}}=e.legend.options;return n.labels.map((a,s)=>{const l=e.getDatasetMeta(0).controller.getStyle(s);return{text:a,fillStyle:l.backgroundColor,strokeStyle:l.borderColor,fontColor:r,lineWidth:l.borderWidth,pointStyle:i,hidden:!e.getDataVisibility(s),index:s}})}return[]}},onClick(e,n,i){i.chart.toggleDataVisibility(n.index),i.chart.update()}}}});class To extends un{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){const n=this._cachedMeta,{dataset:i,data:r=[],_dataset:a}=n,s=this.chart._animationsDisabled;let{start:o,count:l}=LC(n,r,s);this._drawStart=o,this._drawCount=l,PC(n)&&(o=0,l=r.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!a._decimated,i.points=r;const c=this.resolveDatasetElementOptions(e);this.options.showLine||(c.borderWidth=0),c.segment=this.options.segment,this.updateElement(i,void 0,{animated:!s,options:c},e),this.updateElements(r,o,l,e)}updateElements(e,n,i,r){const a=r==="reset",{iScale:s,vScale:o,_stacked:l,_dataset:c}=this._cachedMeta,{sharedOptions:d,includeOptions:u}=this._getSharedOptions(n,r),_=s.axis,p=o.axis,{spanGaps:f,segment:m}=this.options,g=Pr(f)?f:Number.POSITIVE_INFINITY,h=this.chart._animationsDisabled||a||r==="none",S=n+i,b=e.length;let T=n>0&&this.getParsed(n-1);for(let y=0;y=S){x.skip=!0;continue}const I=this.getParsed(y),D=Pe(I[p]),U=x[_]=s.getPixelForValue(I[_],y),$=x[p]=a||D?o.getBasePixel():o.getPixelForValue(l?this.applyStack(o,I,l):I[p],y);x.skip=isNaN(U)||isNaN($)||D,x.stop=y>0&&Math.abs(I[_]-T[_])>g,m&&(x.parsed=I,x.raw=c.data[y]),u&&(x.options=d||this.resolveDataElementOptions(y,O.active?"active":r)),h||this.updateElement(O,y,x,r),T=I}}getMaxOverflow(){const e=this._cachedMeta,n=e.dataset,i=n.options&&n.options.borderWidth||0,r=e.data||[];if(!r.length)return i;const a=r[0].size(this.resolveDataElementOptions(0)),s=r[r.length-1].size(this.resolveDataElementOptions(r.length-1));return Math.max(i,a,s)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}ae(To,"id","line"),ae(To,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),ae(To,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class Ra extends un{constructor(e,n){super(e,n),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(e){const n=this._cachedMeta,i=this.chart,r=i.data.labels||[],a=Es(n._parsed[e].r,i.options.locale);return{label:r[e]||"",value:a}}parseObjectData(e,n,i,r){return HC.bind(this)(e,n,i,r)}update(e){const n=this._cachedMeta.data;this._updateRadius(),this.updateElements(n,0,n.length,e)}getMinMax(){const e=this._cachedMeta,n={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return e.data.forEach((i,r)=>{const a=this.getParsed(r).r;!isNaN(a)&&this.chart.getDataVisibility(r)&&(an.max&&(n.max=a))}),n}_updateRadius(){const e=this.chart,n=e.chartArea,i=e.options,r=Math.min(n.right-n.left,n.bottom-n.top),a=Math.max(r/2,0),s=Math.max(i.cutoutPercentage?a/100*i.cutoutPercentage:1,0),o=(a-s)/e.getVisibleDatasetCount();this.outerRadius=a-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(e,n,i,r){const a=r==="reset",s=this.chart,l=s.options.animation,c=this._cachedMeta.rScale,d=c.xCenter,u=c.yCenter,_=c.getIndexAngle(0)-.5*it;let p=_,f;const m=360/this.countVisibleElements();for(f=0;f{!isNaN(this.getParsed(r).r)&&this.chart.getDataVisibility(r)&&n++}),n}_computeAngle(e,n,i){return this.chart.getDataVisibility(e)?on(this.resolveDataElementOptions(e,n).angle||i):0}}ae(Ra,"id","polarArea"),ae(Ra,"defaults",{dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0}),ae(Ra,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data;if(n.labels.length&&n.datasets.length){const{labels:{pointStyle:i,color:r}}=e.legend.options;return n.labels.map((a,s)=>{const l=e.getDatasetMeta(0).controller.getStyle(s);return{text:a,fillStyle:l.backgroundColor,strokeStyle:l.borderColor,fontColor:r,lineWidth:l.borderWidth,pointStyle:i,hidden:!e.getDataVisibility(s),index:s}})}return[]}},onClick(e,n,i){i.chart.toggleDataVisibility(n.index),i.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}});class Up extends Vi{}ae(Up,"id","pie"),ae(Up,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});class Oa extends un{getLabelAndValue(e){const n=this._cachedMeta.vScale,i=this.getParsed(e);return{label:n.getLabels()[e],value:""+n.getLabelForValue(i[n.axis])}}parseObjectData(e,n,i,r){return HC.bind(this)(e,n,i,r)}update(e){const n=this._cachedMeta,i=n.dataset,r=n.data||[],a=n.iScale.getLabels();if(i.points=r,e!=="resize"){const s=this.resolveDatasetElementOptions(e);this.options.showLine||(s.borderWidth=0);const o={_loop:!0,_fullLoop:a.length===r.length,options:s};this.updateElement(i,void 0,o,e)}this.updateElements(r,0,r.length,e)}updateElements(e,n,i,r){const a=this._cachedMeta.rScale,s=r==="reset";for(let o=n;o0&&this.getParsed(n-1);for(let T=n;T0&&Math.abs(O[p]-b[p])>h,g&&(x.parsed=O,x.raw=c.data[T]),_&&(x.options=u||this.resolveDataElementOptions(T,y.active?"active":r)),S||this.updateElement(y,T,x,r),b=O}this.updateSharedOptions(u,r,d)}getMaxOverflow(){const e=this._cachedMeta,n=e.data||[];if(!this.options.showLine){let o=0;for(let l=n.length-1;l>=0;--l)o=Math.max(o,n[l].size(this.resolveDataElementOptions(l))/2);return o>0&&o}const i=e.dataset,r=i.options&&i.options.borderWidth||0;if(!n.length)return r;const a=n[0].size(this.resolveDataElementOptions(0)),s=n[n.length-1].size(this.resolveDataElementOptions(n.length-1));return Math.max(r,a,s)/2}}ae(vo,"id","scatter"),ae(vo,"defaults",{datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1}),ae(vo,"overrides",{interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}});var Rk=Object.freeze({__proto__:null,BarController:Ca,BubbleController:bo,DoughnutController:Vi,LineController:To,PieController:Up,PolarAreaController:Ra,RadarController:Oa,ScatterController:vo});function Di(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class cf{constructor(e){ae(this,"options");this.options=e||{}}static override(e){Object.assign(cf.prototype,e)}init(){}formats(){return Di()}parse(){return Di()}format(){return Di()}add(){return Di()}diff(){return Di()}startOf(){return Di()}endOf(){return Di()}}var Ok={_date:cf};function Nk(t,e,n,i){const{controller:r,data:a,_sorted:s}=t,o=r._cachedMeta.iScale;if(o&&e===o.axis&&e!=="r"&&s&&a.length){const l=o._reversePixels?XL:kn;if(i){if(r._sharedOptions){const c=a[0],d=typeof c.getRange=="function"&&c.getRange(e);if(d){const u=l(a,e,n-d),_=l(a,e,n+d);return{lo:u.lo,hi:_.hi}}}}else return l(a,e,n)}return{lo:0,hi:a.length-1}}function Ss(t,e,n,i,r){const a=t.getSortedVisibleDatasetMetas(),s=n[e];for(let o=0,l=a.length;o{l[s](e[n],r)&&(a.push({element:l,datasetIndex:c,index:d}),o=o||l.inRange(e.x,e.y,r))}),i&&!o?[]:a}var xk={evaluateInteractionItems:Ss,modes:{index(t,e,n,i){const r=Li(e,t),a=n.axis||"x",s=n.includeInvisible||!1,o=n.intersect?dc(t,r,a,i,s):uc(t,r,a,!1,i,s),l=[];return o.length?(t.getSortedVisibleDatasetMetas().forEach(c=>{const d=o[0].index,u=c.data[d];u&&!u.skip&&l.push({element:u,datasetIndex:c.index,index:d})}),l):[]},dataset(t,e,n,i){const r=Li(e,t),a=n.axis||"xy",s=n.includeInvisible||!1;let o=n.intersect?dc(t,r,a,i,s):uc(t,r,a,!1,i,s);if(o.length>0){const l=o[0].datasetIndex,c=t.getDatasetMeta(l).data;o=[];for(let d=0;dn.pos===e)}function wh(t,e){return t.filter(n=>eR.indexOf(n.pos)===-1&&n.box.axis===e)}function jr(t,e){return t.sort((n,i)=>{const r=e?i:n,a=e?n:i;return r.weight===a.weight?r.index-a.index:r.weight-a.weight})}function wk(t){const e=[];let n,i,r,a,s,o;for(n=0,i=(t||[]).length;nc.box.fullSize),!0),i=jr(Zr(e,"left"),!0),r=jr(Zr(e,"right")),a=jr(Zr(e,"top"),!0),s=jr(Zr(e,"bottom")),o=wh(e,"x"),l=wh(e,"y");return{fullSize:n,leftAndTop:i.concat(a),rightAndBottom:r.concat(l).concat(s).concat(o),chartArea:Zr(e,"chartArea"),vertical:i.concat(r).concat(l),horizontal:a.concat(s).concat(o)}}function Mh(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function tR(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function kk(t,e,n,i){const{pos:r,box:a}=n,s=t.maxPadding;if(!ke(r)){n.size&&(t[r]-=n.size);const u=i[n.stack]||{size:0,count:1};u.size=Math.max(u.size,n.horizontal?a.height:a.width),n.size=u.size/u.count,t[r]+=n.size}a.getPadding&&tR(s,a.getPadding());const o=Math.max(0,e.outerWidth-Mh(s,t,"left","right")),l=Math.max(0,e.outerHeight-Mh(s,t,"top","bottom")),c=o!==t.w,d=l!==t.h;return t.w=o,t.h=l,n.horizontal?{same:c,other:d}:{same:d,other:c}}function Fk(t){const e=t.maxPadding;function n(i){const r=Math.max(e[i]-t[i],0);return t[i]+=r,r}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function Uk(t,e){const n=e.maxPadding;function i(r){const a={left:0,top:0,right:0,bottom:0};return r.forEach(s=>{a[s]=Math.max(e[s],n[s])}),a}return i(t?["left","right"]:["top","bottom"])}function sa(t,e,n,i){const r=[];let a,s,o,l,c,d;for(a=0,s=t.length,c=0;a{typeof m.beforeLayout=="function"&&m.beforeLayout()});const d=l.reduce((m,g)=>g.box.options&&g.box.options.display===!1?m:m+1,0)||1,u=Object.freeze({outerWidth:e,outerHeight:n,padding:r,availableWidth:a,availableHeight:s,vBoxMaxWidth:a/2/d,hBoxMaxHeight:s/2}),_=Object.assign({},r);tR(_,At(i));const p=Object.assign({maxPadding:_,w:a,h:s,x:r.left,y:r.top},r),f=Lk(l.concat(c),u);sa(o.fullSize,p,u,f),sa(l,p,u,f),sa(c,p,u,f)&&sa(l,p,u,f),Fk(p),Lh(o.leftAndTop,p,u,f),p.x+=p.w,p.y+=p.h,Lh(o.rightAndBottom,p,u,f),t.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},Ve(o.chartArea,m=>{const g=m.box;Object.assign(g,t.chartArea),g.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}};class nR{acquireContext(e,n){}releaseContext(e){return!1}addEventListener(e,n,i){}removeEventListener(e,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,n,i,r){return n=Math.max(0,n||e.width),i=i||e.height,{width:n,height:Math.max(0,r?Math.floor(n/r):i)}}isAttached(e){return!0}updateConfig(e){}}class Bk extends nR{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const yo="$chartjs",Gk={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Ph=t=>t===null||t==="";function Yk(t,e){const n=t.style,i=t.getAttribute("height"),r=t.getAttribute("width");if(t[yo]={initial:{height:i,width:r,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",Ph(r)){const a=hh(t,"width");a!==void 0&&(t.width=a)}if(Ph(i))if(t.style.height==="")t.height=t.width/(e||2);else{const a=hh(t,"height");a!==void 0&&(t.height=a)}return t}const iR=HP?{passive:!0}:!1;function zk(t,e,n){t.addEventListener(e,n,iR)}function Hk(t,e,n){t.canvas.removeEventListener(e,n,iR)}function Vk(t,e){const n=Gk[t.type]||t.type,{x:i,y:r}=Li(t,e);return{type:n,chart:e,native:t,x:i!==void 0?i:null,y:r!==void 0?r:null}}function el(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function qk(t,e,n){const i=t.canvas,r=new MutationObserver(a=>{let s=!1;for(const o of a)s=s||el(o.addedNodes,i),s=s&&!el(o.removedNodes,i);s&&n()});return r.observe(document,{childList:!0,subtree:!0}),r}function $k(t,e,n){const i=t.canvas,r=new MutationObserver(a=>{let s=!1;for(const o of a)s=s||el(o.removedNodes,i),s=s&&!el(o.addedNodes,i);s&&n()});return r.observe(document,{childList:!0,subtree:!0}),r}const ts=new Map;let kh=0;function rR(){const t=window.devicePixelRatio;t!==kh&&(kh=t,ts.forEach((e,n)=>{n.currentDevicePixelRatio!==t&&e()}))}function Wk(t,e){ts.size||window.addEventListener("resize",rR),ts.set(t,e)}function Kk(t){ts.delete(t),ts.size||window.removeEventListener("resize",rR)}function Qk(t,e,n){const i=t.canvas,r=i&&lf(i);if(!r)return;const a=MC((o,l)=>{const c=r.clientWidth;n(o,l),c{const l=o[0],c=l.contentRect.width,d=l.contentRect.height;c===0&&d===0||a(c,d)});return s.observe(r),Wk(t,a),s}function _c(t,e,n){n&&n.disconnect(),e==="resize"&&Kk(t)}function Xk(t,e,n){const i=t.canvas,r=MC(a=>{t.ctx!==null&&n(Vk(a,t))},t);return zk(i,e,r),r}class Zk extends nR{acquireContext(e,n){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(Yk(e,n),i):null}releaseContext(e){const n=e.canvas;if(!n[yo])return!1;const i=n[yo].initial;["height","width"].forEach(a=>{const s=i[a];Pe(s)?n.removeAttribute(a):n.setAttribute(a,s)});const r=i.style||{};return Object.keys(r).forEach(a=>{n.style[a]=r[a]}),n.width=n.width,delete n[yo],!0}addEventListener(e,n,i){this.removeEventListener(e,n);const r=e.$proxies||(e.$proxies={}),s={attach:qk,detach:$k,resize:Qk}[n]||Xk;r[n]=s(e,n,i)}removeEventListener(e,n){const i=e.$proxies||(e.$proxies={}),r=i[n];if(!r)return;({attach:_c,detach:_c,resize:_c}[n]||Hk)(e,n,r),i[n]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,n,i,r){return zP(e,n,i,r)}isAttached(e){const n=lf(e);return!!(n&&n.isConnected)}}function jk(t){return!qC()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?Bk:Zk}var uo;let Wn=(uo=class{constructor(){ae(this,"x");ae(this,"y");ae(this,"active",!1);ae(this,"options");ae(this,"$animations")}tooltipPosition(e){const{x:n,y:i}=this.getProps(["x","y"],e);return{x:n,y:i}}hasValue(){return Pr(this.x)&&Pr(this.y)}getProps(e,n){const i=this.$animations;if(!n||!i)return this;const r={};return e.forEach(a=>{r[a]=i[a]&&i[a].active()?i[a]._to:this[a]}),r}},ae(uo,"defaults",{}),ae(uo,"defaultRoutes"),uo);function Jk(t,e){const n=t.options.ticks,i=e0(t),r=Math.min(n.maxTicksLimit||i,i),a=n.major.enabled?n0(e):[],s=a.length,o=a[0],l=a[s-1],c=[];if(s>r)return i0(e,c,a,s/r),c;const d=t0(a,e,r);if(s>0){let u,_;const p=s>1?Math.round((l-o)/(s-1)):null;for(Ks(e,c,d,Pe(p)?0:o-p,o),u=0,_=s-1;u<_;u++)Ks(e,c,d,a[u],a[u+1]);return Ks(e,c,d,l,Pe(p)?e.length:l+p),c}return Ks(e,c,d),c}function e0(t){const e=t.options.offset,n=t._tickSize(),i=t._length/n+(e?0:1),r=t._maxLength/n;return Math.floor(Math.min(i,r))}function t0(t,e,n){const i=r0(t),r=e.length/n;if(!i)return Math.max(r,1);const a=$L(i);for(let s=0,o=a.length-1;sr)return l}return Math.max(r,1)}function n0(t){const e=[];let n,i;for(n=0,i=t.length;nt==="left"?"right":t==="right"?"left":t,Fh=(t,e,n)=>e==="top"||e==="left"?t[e]+n:t[e]-n,Uh=(t,e)=>Math.min(e||t,t);function Bh(t,e){const n=[],i=t.length/e,r=t.length;let a=0;for(;as+o)))return l}function o0(t,e){Ve(t,n=>{const i=n.gc,r=i.length/2;let a;if(r>e){for(a=0;ai?i:n,i=r&&n>i?n:i,{min:Wt(n,Wt(i,n)),max:Wt(i,Wt(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){We(this.options.beforeUpdate,[this])}update(e,n,i){const{beginAtZero:r,grace:a,ticks:s}=this.options,o=s.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=bP(this,a,r),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=o=a||i<=1||!this.isHorizontal()){this.labelRotation=r;return}const d=this._getLabelSizes(),u=d.widest.width,_=d.highest.height,p=yt(this.chart.width-u,0,this.maxWidth);o=e.offset?this.maxWidth/i:p/(i-1),u+6>o&&(o=p/(i-(e.offset?.5:1)),l=this.maxHeight-Jr(e.grid)-n.padding-Gh(e.title,this.chart.options.font),c=Math.sqrt(u*u+_*_),s=Jm(Math.min(Math.asin(yt((d.highest.height+6)/o,-1,1)),Math.asin(yt(l/c,-1,1))-Math.asin(yt(_/c,-1,1)))),s=Math.max(r,Math.min(a,s))),this.labelRotation=s}afterCalculateLabelRotation(){We(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){We(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:n,options:{ticks:i,title:r,grid:a}}=this,s=this._isVisible(),o=this.isHorizontal();if(s){const l=Gh(r,n.options.font);if(o?(e.width=this.maxWidth,e.height=Jr(a)+l):(e.height=this.maxHeight,e.width=Jr(a)+l),i.display&&this.ticks.length){const{first:c,last:d,widest:u,highest:_}=this._getLabelSizes(),p=i.padding*2,f=on(this.labelRotation),m=Math.cos(f),g=Math.sin(f);if(o){const h=i.mirror?0:g*u.width+m*_.height;e.height=Math.min(this.maxHeight,e.height+h+p)}else{const h=i.mirror?0:m*u.width+g*_.height;e.width=Math.min(this.maxWidth,e.width+h+p)}this._calculatePadding(c,d,g,m)}}this._handleMargins(),o?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,n,i,r){const{ticks:{align:a,padding:s},position:o}=this.options,l=this.labelRotation!==0,c=o!=="top"&&this.axis==="x";if(this.isHorizontal()){const d=this.getPixelForTick(0)-this.left,u=this.right-this.getPixelForTick(this.ticks.length-1);let _=0,p=0;l?c?(_=r*e.width,p=i*n.height):(_=i*e.height,p=r*n.width):a==="start"?p=n.width:a==="end"?_=e.width:a!=="inner"&&(_=e.width/2,p=n.width/2),this.paddingLeft=Math.max((_-d+s)*this.width/(this.width-d),0),this.paddingRight=Math.max((p-u+s)*this.width/(this.width-u),0)}else{let d=n.height/2,u=e.height/2;a==="start"?(d=0,u=e.height):a==="end"&&(d=n.height,u=0),this.paddingTop=d+s,this.paddingBottom=u+s}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){We(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:n}=this.options;return n==="top"||n==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let n,i;for(n=0,i=e.length;n({width:s[D]||0,height:o[D]||0});return{first:I(0),last:I(n-1),widest:I(O),highest:I(x),widths:s,heights:o}}getLabelForValue(e){return e}getPixelForValue(e,n){return NaN}getValueForPixel(e){}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const n=this._startPixel+e*this._length;return QL(this._alignToPixels?Ii(this.chart,n,0):n)}getDecimalForPixel(e){const n=(e-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:n}=this;return e<0&&n<0?n:e>0&&n>0?e:0}getContext(e){const n=this.ticks||[];if(e>=0&&eo*r?o/i:l/r:l*r0}_computeGridLineItems(e){const n=this.axis,i=this.chart,r=this.options,{grid:a,position:s,border:o}=r,l=a.offset,c=this.isHorizontal(),u=this.ticks.length+(l?1:0),_=Jr(a),p=[],f=o.setContext(this.getContext()),m=f.display?f.width:0,g=m/2,h=function(Z){return Ii(i,Z,m)};let S,b,T,y,O,x,I,D,U,$,N,Y;if(s==="top")S=h(this.bottom),x=this.bottom-_,D=S-g,$=h(e.top)+g,Y=e.bottom;else if(s==="bottom")S=h(this.top),$=e.top,Y=h(e.bottom)-g,x=S+g,D=this.top+_;else if(s==="left")S=h(this.right),O=this.right-_,I=S-g,U=h(e.left)+g,N=e.right;else if(s==="right")S=h(this.left),U=e.left,N=h(e.right)-g,O=S+g,I=this.left+_;else if(n==="x"){if(s==="center")S=h((e.top+e.bottom)/2+.5);else if(ke(s)){const Z=Object.keys(s)[0],M=s[Z];S=h(this.chart.scales[Z].getPixelForValue(M))}$=e.top,Y=e.bottom,x=S+g,D=x+_}else if(n==="y"){if(s==="center")S=h((e.left+e.right)/2);else if(ke(s)){const Z=Object.keys(s)[0],M=s[Z];S=h(this.chart.scales[Z].getPixelForValue(M))}O=S-g,I=O-_,U=e.left,N=e.right}const v=Ie(r.ticks.maxTicksLimit,u),z=Math.max(1,Math.ceil(u/v));for(b=0;ba.value===e);return r>=0?n.setContext(this.getContext(r)).lineWidth:0}drawGrid(e){const n=this.options.grid,i=this.ctx,r=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let a,s;const o=(l,c,d)=>{!d.width||!d.color||(i.save(),i.lineWidth=d.width,i.strokeStyle=d.color,i.setLineDash(d.borderDash||[]),i.lineDashOffset=d.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(n.display)for(a=0,s=r.length;a{this.draw(a)}}]:[{z:i,draw:a=>{this.drawBackground(),this.drawGrid(a),this.drawTitle()}},{z:r,draw:()=>{this.drawBorder()}},{z:n,draw:a=>{this.drawLabels(a)}}]}getMatchingVisibleMetas(e){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",r=[];let a,s;for(a=0,s=n.length;a{const i=n.split("."),r=i.pop(),a=[t].concat(i).join("."),s=e[n].split("."),o=s.pop(),l=s.join(".");ot.route(a,r,l,o)})}function m0(t){return"id"in t&&"defaults"in t}class f0{constructor(){this.controllers=new Qs(un,"datasets",!0),this.elements=new Qs(Wn,"elements"),this.plugins=new Qs(Object,"plugins"),this.scales=new Qs(rr,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,n,i){[...n].forEach(r=>{const a=i||this._getRegistryForType(r);i||a.isForType(r)||a===this.plugins&&r.id?this._exec(e,a,r):Ve(r,s=>{const o=i||this._getRegistryForType(s);this._exec(e,o,s)})})}_exec(e,n,i){const r=jm(e);We(i["before"+r],[],i),n[e](i),We(i["after"+r],[],i)}_getRegistryForType(e){for(let n=0;na.filter(o=>!s.some(l=>o.plugin.id===l.plugin.id));this._notify(r(n,i),e,"stop"),this._notify(r(i,n),e,"start")}}function h0(t){const e={},n=[],i=Object.keys(fn.plugins.items);for(let a=0;a1&&Yh(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function zh(t,e,n){if(n[e+"AxisID"]===t)return{axis:e}}function C0(t,e){if(e.data&&e.data.datasets){const n=e.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(n.length)return zh(t,"x",n[0])||zh(t,"y",n[0])}return{}}function R0(t,e){const n=er[t.type]||{scales:{}},i=e.scales||{},r=Bp(t.type,e),a=Object.create(null);return Object.keys(i).forEach(s=>{const o=i[s];if(!ke(o))return console.error(`Invalid scale configuration for scale: ${s}`);if(o._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${s}`);const l=Gp(s,o,C0(s,t),ot.scales[o.type]),c=v0(l,r),d=n.scales||{};a[s]=ba(Object.create(null),[{axis:l},o,d[l],d[c]])}),t.data.datasets.forEach(s=>{const o=s.type||t.type,l=s.indexAxis||Bp(o,e),d=(er[o]||{}).scales||{};Object.keys(d).forEach(u=>{const _=T0(u,l),p=s[_+"AxisID"]||_;a[p]=a[p]||Object.create(null),ba(a[p],[{axis:_},i[p],d[u]])})}),Object.keys(a).forEach(s=>{const o=a[s];ba(o,[ot.scales[o.type],ot.scale])}),a}function aR(t){const e=t.options||(t.options={});e.plugins=Ie(e.plugins,{}),e.scales=R0(t,e)}function sR(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function O0(t){return t=t||{},t.data=sR(t.data),aR(t),t}const Hh=new Map,oR=new Set;function Xs(t,e){let n=Hh.get(t);return n||(n=e(),Hh.set(t,n),oR.add(n)),n}const ea=(t,e,n)=>{const i=vi(e,n);i!==void 0&&t.add(i)};class N0{constructor(e){this._config=O0(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=sR(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),aR(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return Xs(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,n){return Xs(`${e}.transition.${n}`,()=>[[`datasets.${e}.transitions.${n}`,`transitions.${n}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,n){return Xs(`${e}-${n}`,()=>[[`datasets.${e}.elements.${n}`,`datasets.${e}`,`elements.${n}`,""]])}pluginScopeKeys(e){const n=e.id,i=this.type;return Xs(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,n){const i=this._scopeCache;let r=i.get(e);return(!r||n)&&(r=new Map,i.set(e,r)),r}getOptionScopes(e,n,i){const{options:r,type:a}=this,s=this._cachedScopes(e,i),o=s.get(n);if(o)return o;const l=new Set;n.forEach(d=>{e&&(l.add(e),d.forEach(u=>ea(l,e,u))),d.forEach(u=>ea(l,r,u)),d.forEach(u=>ea(l,er[a]||{},u)),d.forEach(u=>ea(l,ot,u)),d.forEach(u=>ea(l,kp,u))});const c=Array.from(l);return c.length===0&&c.push(Object.create(null)),oR.has(n)&&s.set(n,c),c}chartOptionScopes(){const{options:e,type:n}=this;return[e,er[n]||{},ot.datasets[n]||{},{type:n},ot,kp]}resolveNamedOptions(e,n,i,r=[""]){const a={$shared:!0},{resolver:s,subPrefixes:o}=Vh(this._resolverCache,e,r);let l=s;if(I0(s,n)){a.$shared=!1,i=yi(i)?i():i;const c=this.createResolver(e,i,o);l=kr(s,i,c)}for(const c of n)a[c]=l[c];return a}createResolver(e,n,i=[""],r){const{resolver:a}=Vh(this._resolverCache,e,i);return ke(n)?kr(a,n,void 0,r):a}}function Vh(t,e,n){let i=t.get(e);i||(i=new Map,t.set(e,i));const r=n.join();let a=i.get(r);return a||(a={resolver:af(e,n),subPrefixes:n.filter(o=>!o.toLowerCase().includes("hover"))},i.set(r,a)),a}const A0=t=>ke(t)&&Object.getOwnPropertyNames(t).reduce((e,n)=>e||yi(t[n]),!1);function I0(t,e){const{isScriptable:n,isIndexable:i}=BC(t);for(const r of e){const a=n(r),s=i(r),o=(s||a)&&t[r];if(a&&(yi(o)||A0(o))||s&&Je(o))return!0}return!1}var D0="4.4.0";const x0=["top","bottom","left","right","chartArea"];function qh(t,e){return t==="top"||t==="bottom"||x0.indexOf(t)===-1&&e==="x"}function $h(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}function Wh(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),We(n&&n.onComplete,[t],e)}function w0(t){const e=t.chart,n=e.options.animation;We(n&&n.onProgress,[t],e)}function lR(t){return qC()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Co={},Kh=t=>{const e=lR(t);return Object.values(Co).filter(n=>n.canvas===e).pop()};function M0(t,e,n){const i=Object.keys(t);for(const r of i){const a=+r;if(a>=e){const s=t[r];delete t[r],(n>0||a>e)&&(t[a+n]=s)}}}function L0(t,e,n,i){return!n||t.type==="mouseout"?null:i?e:t}function Zs(t,e,n){return t.options.clip?t[n]:e[n]}function P0(t,e){const{xScale:n,yScale:i}=t;return n&&i?{left:Zs(n,e,"left"),right:Zs(n,e,"right"),top:Zs(i,e,"top"),bottom:Zs(i,e,"bottom")}:e}var Jn;let nr=(Jn=class{static register(...e){fn.add(...e),Qh()}static unregister(...e){fn.remove(...e),Qh()}constructor(e,n){const i=this.config=new N0(n),r=lR(e),a=Kh(r);if(a)throw new Error("Canvas is already in use. Chart with ID '"+a.id+"' must be destroyed before the canvas with ID '"+a.canvas.id+"' can be reused.");const s=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||jk(r)),this.platform.updateConfig(i);const o=this.platform.acquireContext(r,s.aspectRatio),l=o&&o.canvas,c=l&&l.height,d=l&&l.width;if(this.id=FL(),this.ctx=o,this.canvas=l,this.width=d,this.height=c,this._options=s,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new g0,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=JL(u=>this.update(u),s.resizeDelay||0),this._dataChanges=[],Co[this.id]=this,!o||!l){console.error("Failed to create chart: can't acquire context from the given item");return}Dn.listen(this,"complete",Wh),Dn.listen(this,"progress",w0),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:e,maintainAspectRatio:n},width:i,height:r,_aspectRatio:a}=this;return Pe(e)?n&&a?a:r?i/r:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return fn}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():gh(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return ph(this.canvas,this.ctx),this}stop(){return Dn.stop(this),this}resize(e,n){Dn.running(this)?this._resizeBeforeDraw={width:e,height:n}:this._resize(e,n)}_resize(e,n){const i=this.options,r=this.canvas,a=i.maintainAspectRatio&&this.aspectRatio,s=this.platform.getMaximumSize(r,e,n,a),o=i.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=s.width,this.height=s.height,this._aspectRatio=this.aspectRatio,gh(this,o,!0)&&(this.notifyPlugins("resize",{size:s}),We(i.onResize,[this,s],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){const n=this.options.scales||{};Ve(n,(i,r)=>{i.id=r})}buildOrUpdateScales(){const e=this.options,n=e.scales,i=this.scales,r=Object.keys(i).reduce((s,o)=>(s[o]=!1,s),{});let a=[];n&&(a=a.concat(Object.keys(n).map(s=>{const o=n[s],l=Gp(s,o),c=l==="r",d=l==="x";return{options:o,dposition:c?"chartArea":d?"bottom":"left",dtype:c?"radialLinear":d?"category":"linear"}}))),Ve(a,s=>{const o=s.options,l=o.id,c=Gp(l,o),d=Ie(o.type,s.dtype);(o.position===void 0||qh(o.position,c)!==qh(s.dposition))&&(o.position=s.dposition),r[l]=!0;let u=null;if(l in i&&i[l].type===d)u=i[l];else{const _=fn.getScale(d);u=new _({id:l,type:d,ctx:this.ctx,chart:this}),i[u.id]=u}u.init(o,e)}),Ve(r,(s,o)=>{s||delete i[o]}),Ve(i,s=>{Mt.configure(this,s,s.options),Mt.addBox(this,s)})}_updateMetasets(){const e=this._metasets,n=this.data.datasets.length,i=e.length;if(e.sort((r,a)=>r.index-a.index),i>n){for(let r=n;rn.length&&delete this._stacks,e.forEach((i,r)=>{n.filter(a=>a===i._dataset).length===0&&this._destroyDatasetMeta(r)})}buildOrUpdateControllers(){const e=[],n=this.data.datasets;let i,r;for(this._removeUnreferencedMetasets(),i=0,r=n.length;i{this.getDatasetMeta(n).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){const n=this.config;n.update();const i=this._options=n.createResolver(n.chartOptionScopes(),this.getContext()),r=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0})===!1)return;const a=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let s=0;for(let c=0,d=this.data.datasets.length;c{c.reset()}),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort($h("z","_idx"));const{_active:o,_lastEvent:l}=this;l?this._eventHandler(l,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){Ve(this.scales,e=>{Mt.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const e=this.options,n=new Set(Object.keys(this._listeners)),i=new Set(e.events);(!rh(n,i)||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:e}=this,n=this._getUniformDataChanges()||[];for(const{method:i,start:r,count:a}of n){const s=i==="_removeElements"?-a:a;M0(e,r,s)}}_getUniformDataChanges(){const e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];const n=this.data.datasets.length,i=a=>new Set(e.filter(s=>s[0]===a).map((s,o)=>o+","+s.splice(1).join(","))),r=i(0);for(let a=1;aa.split(",")).map(a=>({method:a[1],start:+a[2],count:+a[3]}))}_updateLayout(e){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Mt.update(this,this.width,this.height,e);const n=this.chartArea,i=n.width<=0||n.height<=0;this._layers=[],Ve(this.boxes,r=>{i&&r.position==="chartArea"||(r.configure&&r.configure(),this._layers.push(...r._layers()))},this),this._layers.forEach((r,a)=>{r._idx=a}),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})!==!1){for(let n=0,i=this.data.datasets.length;n=0;--n)this._drawDataset(e[n]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){const n=this.ctx,i=e._clip,r=!i.disabled,a=P0(e,this.chartArea),s={meta:e,index:e.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",s)!==!1&&(r&&kl(n,{left:i.left===!1?0:a.left-i.left,right:i.right===!1?this.width:a.right+i.right,top:i.top===!1?0:a.top-i.top,bottom:i.bottom===!1?this.height:a.bottom+i.bottom}),e.controller.draw(),r&&Fl(n),s.cancelable=!1,this.notifyPlugins("afterDatasetDraw",s))}isPointInArea(e){return Fn(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,n,i,r){const a=xk.modes[n];return typeof a=="function"?a(this,e,i,r):[]}getDatasetMeta(e){const n=this.data.datasets[e],i=this._metasets;let r=i.filter(a=>a&&a._dataset===n).pop();return r||(r={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n&&n.order||0,index:e,_dataset:n,_parsed:[],_sorted:!1},i.push(r)),r}getContext(){return this.$context||(this.$context=Ci(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){const n=this.data.datasets[e];if(!n)return!1;const i=this.getDatasetMeta(e);return typeof i.hidden=="boolean"?!i.hidden:!n.hidden}setDatasetVisibility(e,n){const i=this.getDatasetMeta(e);i.hidden=!n}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,n,i){const r=i?"show":"hide",a=this.getDatasetMeta(e),s=a.controller._resolveAnimations(void 0,r);ja(n)?(a.data[n].hidden=!i,this.update()):(this.setDatasetVisibility(e,i),s.update(a,{visible:i}),this.update(o=>o.datasetIndex===e?r:void 0))}hide(e,n){this._updateVisibility(e,n,!1)}show(e,n){this._updateVisibility(e,n,!0)}_destroyDatasetMeta(e){const n=this._metasets[e];n&&n.controller&&n.controller._destroy(),delete this._metasets[e]}_stop(){let e,n;for(this.stop(),Dn.remove(this),e=0,n=this.data.datasets.length;e{n.addEventListener(this,a,s),e[a]=s},r=(a,s,o)=>{a.offsetX=s,a.offsetY=o,this._eventHandler(a)};Ve(this.options.events,a=>i(a,r))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const e=this._responsiveListeners,n=this.platform,i=(l,c)=>{n.addEventListener(this,l,c),e[l]=c},r=(l,c)=>{e[l]&&(n.removeEventListener(this,l,c),delete e[l])},a=(l,c)=>{this.canvas&&this.resize(l,c)};let s;const o=()=>{r("attach",o),this.attached=!0,this.resize(),i("resize",a),i("detach",s)};s=()=>{this.attached=!1,r("resize",a),this._stop(),this._resize(0,0),i("attach",o)},n.isAttached(this.canvas)?o():s()}unbindEvents(){Ve(this._listeners,(e,n)=>{this.platform.removeEventListener(this,n,e)}),this._listeners={},Ve(this._responsiveListeners,(e,n)=>{this.platform.removeEventListener(this,n,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,n,i){const r=i?"set":"remove";let a,s,o,l;for(n==="dataset"&&(a=this.getDatasetMeta(e[0].datasetIndex),a.controller["_"+r+"DatasetHoverStyle"]()),o=0,l=e.length;o{const o=this.getDatasetMeta(a);if(!o)throw new Error("No dataset found at index "+a);return{datasetIndex:a,element:o.data[s],index:s}});!Qo(i,n)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,n))}notifyPlugins(e,n,i){return this._plugins.notify(this,e,n,i)}isPluginEnabled(e){return this._plugins._cache.filter(n=>n.plugin.id===e).length===1}_updateHoverStyles(e,n,i){const r=this.options.hover,a=(l,c)=>l.filter(d=>!c.some(u=>d.datasetIndex===u.datasetIndex&&d.index===u.index)),s=a(n,e),o=i?e:a(e,n);s.length&&this.updateHoverStyle(s,r.mode,!1),o.length&&r.mode&&this.updateHoverStyle(o,r.mode,!0)}_eventHandler(e,n){const i={event:e,replay:n,cancelable:!0,inChartArea:this.isPointInArea(e)},r=s=>(s.options.events||this.options.events).includes(e.native.type);if(this.notifyPlugins("beforeEvent",i,r)===!1)return;const a=this._handleEvent(e,n,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,r),(a||i.changed)&&this.render(),this}_handleEvent(e,n,i){const{_active:r=[],options:a}=this,s=n,o=this._getActiveElements(e,r,i,s),l=HL(e),c=L0(e,this._lastEvent,i,l);i&&(this._lastEvent=null,We(a.onHover,[e,o,this],this),l&&We(a.onClick,[e,o,this],this));const d=!Qo(o,r);return(d||n)&&(this._active=o,this._updateHoverStyles(o,r,n)),this._lastEvent=c,d}_getActiveElements(e,n,i,r){if(e.type==="mouseout")return[];if(!i)return n;const a=this.options.hover;return this.getElementsAtEventForMode(e,a.mode,a,r)}},ae(Jn,"defaults",ot),ae(Jn,"instances",Co),ae(Jn,"overrides",er),ae(Jn,"registry",fn),ae(Jn,"version",D0),ae(Jn,"getChart",Kh),Jn);function Qh(){return Ve(nr.instances,t=>t._plugins.invalidate())}function k0(t,e,n){const{startAngle:i,pixelMargin:r,x:a,y:s,outerRadius:o,innerRadius:l}=e;let c=r/o;t.beginPath(),t.arc(a,s,o,i-c,n+c),l>r?(c=r/l,t.arc(a,s,l,n+c,i-c,!0)):t.arc(a,s,r,n+mt,i-mt),t.closePath(),t.clip()}function F0(t){return rf(t,["outerStart","outerEnd","innerStart","innerEnd"])}function U0(t,e,n,i){const r=F0(t.options.borderRadius),a=(n-e)/2,s=Math.min(a,i*e/2),o=l=>{const c=(n-Math.min(a,l))*i/2;return yt(l,0,Math.min(a,c))};return{outerStart:o(r.outerStart),outerEnd:o(r.outerEnd),innerStart:yt(r.innerStart,0,s),innerEnd:yt(r.innerEnd,0,s)}}function dr(t,e,n,i){return{x:n+t*Math.cos(e),y:i+t*Math.sin(e)}}function tl(t,e,n,i,r,a){const{x:s,y:o,startAngle:l,pixelMargin:c,innerRadius:d}=e,u=Math.max(e.outerRadius+i+n-c,0),_=d>0?d+i+n+c:0;let p=0;const f=r-l;if(i){const z=d>0?d-i:0,Z=u>0?u-i:0,M=(z+Z)/2,K=M!==0?f*M/(M+i):f;p=(f-K)/2}const m=Math.max(.001,f*u-n/it)/u,g=(f-m)/2,h=l+g+p,S=r-g-p,{outerStart:b,outerEnd:T,innerStart:y,innerEnd:O}=U0(e,_,u,S-h),x=u-b,I=u-T,D=h+b/x,U=S-T/I,$=_+y,N=_+O,Y=h+y/$,v=S-O/N;if(t.beginPath(),a){const z=(D+U)/2;if(t.arc(s,o,u,D,z),t.arc(s,o,u,z,U),T>0){const W=dr(I,U,s,o);t.arc(W.x,W.y,T,U,S+mt)}const Z=dr(N,S,s,o);if(t.lineTo(Z.x,Z.y),O>0){const W=dr(N,v,s,o);t.arc(W.x,W.y,O,S+mt,v+Math.PI)}const M=(S-O/_+(h+y/_))/2;if(t.arc(s,o,_,S-O/_,M,!0),t.arc(s,o,_,M,h+y/_,!0),y>0){const W=dr($,Y,s,o);t.arc(W.x,W.y,y,Y+Math.PI,h-mt)}const K=dr(x,h,s,o);if(t.lineTo(K.x,K.y),b>0){const W=dr(x,D,s,o);t.arc(W.x,W.y,b,h-mt,D)}}else{t.moveTo(s,o);const z=Math.cos(D)*u+s,Z=Math.sin(D)*u+o;t.lineTo(z,Z);const M=Math.cos(U)*u+s,K=Math.sin(U)*u+o;t.lineTo(M,K)}t.closePath()}function B0(t,e,n,i,r){const{fullCircles:a,startAngle:s,circumference:o}=e;let l=e.endAngle;if(a){tl(t,e,n,i,l,r);for(let c=0;c=tt||Ja(s,l,c),g=Pn(o,d+p,u+p);return m&&g}getCenterPoint(n){const{x:i,y:r,startAngle:a,endAngle:s,innerRadius:o,outerRadius:l}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],n),{offset:c,spacing:d}=this.options,u=(a+s)/2,_=(o+l+d+c)/2;return{x:i+Math.cos(u)*_,y:r+Math.sin(u)*_}}tooltipPosition(n){return this.getCenterPoint(n)}draw(n){const{options:i,circumference:r}=this,a=(i.offset||0)/4,s=(i.spacing||0)/2,o=i.circular;if(this.pixelMargin=i.borderAlign==="inner"?.33:0,this.fullCircles=r>tt?Math.floor(r/tt):0,r===0||this.innerRadius<0||this.outerRadius<0)return;n.save();const l=(this.startAngle+this.endAngle)/2;n.translate(Math.cos(l)*a,Math.sin(l)*a);const c=1-Math.sin(Math.min(it,r||0)),d=a*c;n.fillStyle=i.backgroundColor,n.strokeStyle=i.borderColor,B0(n,this,d,s,o),G0(n,this,d,s,o),n.restore()}}ae(Tr,"id","arc"),ae(Tr,"defaults",{borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),ae(Tr,"defaultRoutes",{backgroundColor:"backgroundColor"}),ae(Tr,"descriptors",{_scriptable:!0,_indexable:n=>n!=="borderDash"});function cR(t,e,n=e){t.lineCap=Ie(n.borderCapStyle,e.borderCapStyle),t.setLineDash(Ie(n.borderDash,e.borderDash)),t.lineDashOffset=Ie(n.borderDashOffset,e.borderDashOffset),t.lineJoin=Ie(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=Ie(n.borderWidth,e.borderWidth),t.strokeStyle=Ie(n.borderColor,e.borderColor)}function Y0(t,e,n){t.lineTo(n.x,n.y)}function z0(t){return t.stepped?uP:t.tension||t.cubicInterpolationMode==="monotone"?_P:Y0}function dR(t,e,n={}){const i=t.length,{start:r=0,end:a=i-1}=n,{start:s,end:o}=e,l=Math.max(r,s),c=Math.min(a,o),d=ro&&a>o;return{count:i,start:l,loop:e.loop,ilen:c(s+(c?o-T:T))%a,b=()=>{m!==g&&(t.lineTo(d,g),t.lineTo(d,m),t.lineTo(d,h))};for(l&&(p=r[S(0)],t.moveTo(p.x,p.y)),_=0;_<=o;++_){if(p=r[S(_)],p.skip)continue;const T=p.x,y=p.y,O=T|0;O===f?(yg&&(g=y),d=(u*d+T)/++u):(b(),t.lineTo(T,y),f=O,u=0,m=g=y),h=y}b()}function Yp(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!n?V0:H0}function q0(t){return t.stepped?VP:t.tension||t.cubicInterpolationMode==="monotone"?qP:Pi}function $0(t,e,n,i){let r=e._path;r||(r=e._path=new Path2D,e.path(r,n,i)&&r.closePath()),cR(t,e.options),t.stroke(r)}function W0(t,e,n,i){const{segments:r,options:a}=e,s=Yp(e);for(const o of r)cR(t,a,o.style),t.beginPath(),s(t,e,o,{start:n,end:n+i-1})&&t.closePath(),t.stroke()}const K0=typeof Path2D=="function";function Q0(t,e,n,i){K0&&!e.options.segment?$0(t,e,n,i):W0(t,e,n,i)}class oi extends Wn{constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const r=i.spanGaps?this._loop:this._fullLoop;kP(this._points,i,e,r,n),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=ZP(this,this.options.segment))}first(){const e=this.segments,n=this.points;return e.length&&n[e[0].start]}last(){const e=this.segments,n=this.points,i=e.length;return i&&n[e[i-1].end]}interpolate(e,n){const i=this.options,r=e[n],a=this.points,s=XC(this,{property:n,start:r,end:r});if(!s.length)return;const o=[],l=q0(i);let c,d;for(c=0,d=s.length;ce!=="borderDash"&&e!=="fill"});function Xh(t,e,n,i){const r=t.options,{[n]:a}=t.getProps([n],i);return Math.abs(e-a)t.replace("rgb(","rgba(").replace(")",", 0.5)"));function _R(t){return zp[t%zp.length]}function pR(t){return Zh[t%Zh.length]}function n1(t,e){return t.borderColor=_R(e),t.backgroundColor=pR(e),++e}function i1(t,e){return t.backgroundColor=t.data.map(()=>_R(e++)),e}function r1(t,e){return t.backgroundColor=t.data.map(()=>pR(e++)),e}function a1(t){let e=0;return(n,i)=>{const r=t.getDatasetMeta(i).controller;r instanceof Vi?e=i1(n,e):r instanceof Ra?e=r1(n,e):r&&(e=n1(n,e))}}function jh(t){let e;for(e in t)if(t[e].borderColor||t[e].backgroundColor)return!0;return!1}function s1(t){return t&&(t.borderColor||t.backgroundColor)}var o1={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(t,e,n){if(!n.enabled)return;const{data:{datasets:i},options:r}=t.config,{elements:a}=r;if(!n.forceOverride&&(jh(i)||s1(r)||a&&jh(a)))return;const s=a1(t);i.forEach(s)}};function l1(t,e,n,i,r){const a=r.samples||i;if(a>=n)return t.slice(e,e+n);const s=[],o=(n-2)/(a-2);let l=0;const c=e+n-1;let d=e,u,_,p,f,m;for(s[l++]=t[d],u=0;up&&(p=f,_=t[S],m=S);s[l++]=_,d=m}return s[l++]=t[c],s}function c1(t,e,n,i){let r=0,a=0,s,o,l,c,d,u,_,p,f,m;const g=[],h=e+n-1,S=t[e].x,T=t[h].x-S;for(s=e;sm&&(m=c,_=s),r=(a*r+o.x)/++a;else{const O=s-1;if(!Pe(u)&&!Pe(_)){const x=Math.min(u,_),I=Math.max(u,_);x!==p&&x!==O&&g.push({...t[x],x:r}),I!==p&&I!==O&&g.push({...t[I],x:r})}s>0&&O!==p&&g.push(t[O]),g.push(o),d=y,a=0,f=m=c,u=_=p=s}}return g}function mR(t){if(t._decimated){const e=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,writable:!0,value:e})}}function Jh(t){t.data.datasets.forEach(e=>{mR(e)})}function d1(t,e){const n=e.length;let i=0,r;const{iScale:a}=t,{min:s,max:o,minDefined:l,maxDefined:c}=a.getUserBounds();return l&&(i=yt(kn(e,a.axis,s).lo,0,n-1)),c?r=yt(kn(e,a.axis,o).hi+1,i,n)-i:r=n-i,{start:i,count:r}}var u1={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(t,e,n)=>{if(!n.enabled){Jh(t);return}const i=t.width;t.data.datasets.forEach((r,a)=>{const{_data:s,indexAxis:o}=r,l=t.getDatasetMeta(a),c=s||r.data;if(Xe([o,t.options.indexAxis])==="y"||!l.controller.supportsDecimation)return;const d=t.scales[l.xAxisID];if(d.type!=="linear"&&d.type!=="time"||t.options.parsing)return;let{start:u,count:_}=d1(l,c);const p=n.threshold||4*i;if(_<=p){mR(r);return}Pe(s)&&(r._data=c,delete r.data,Object.defineProperty(r,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(m){this._data=m}}));let f;switch(n.algorithm){case"lttb":f=l1(c,u,_,i,n);break;case"min-max":f=c1(c,u,_,i);break;default:throw new Error(`Unsupported decimation algorithm '${n.algorithm}'`)}r._decimated=f})},destroy(t){Jh(t)}};function _1(t,e,n){const i=t.segments,r=t.points,a=e.points,s=[];for(const o of i){let{start:l,end:c}=o;c=df(l,c,r);const d=Hp(n,r[l],r[c],o.loop);if(!e.segments){s.push({source:o,target:d,start:r[l],end:r[c]});continue}const u=XC(e,d);for(const _ of u){const p=Hp(n,a[_.start],a[_.end],_.loop),f=QC(o,r,p);for(const m of f)s.push({source:m,target:_,start:{[n]:eE(d,p,"start",Math.max)},end:{[n]:eE(d,p,"end",Math.min)}})}}return s}function Hp(t,e,n,i){if(i)return;let r=e[t],a=n[t];return t==="angle"&&(r=Qt(r),a=Qt(a)),{property:t,start:r,end:a}}function p1(t,e){const{x:n=null,y:i=null}=t||{},r=e.points,a=[];return e.segments.forEach(({start:s,end:o})=>{o=df(s,o,r);const l=r[s],c=r[o];i!==null?(a.push({x:l.x,y:i}),a.push({x:c.x,y:i})):n!==null&&(a.push({x:n,y:l.y}),a.push({x:n,y:c.y}))}),a}function df(t,e,n){for(;e>t;e--){const i=n[e];if(!isNaN(i.x)&&!isNaN(i.y))break}return e}function eE(t,e,n,i){return t&&e?i(t[n],e[n]):t?t[n]:e?e[n]:0}function fR(t,e){let n=[],i=!1;return Je(t)?(i=!0,n=t):n=p1(t,e),n.length?new oi({points:n,options:{tension:0},_loop:i,_fullLoop:i}):null}function tE(t){return t&&t.fill!==!1}function m1(t,e,n){let r=t[e].fill;const a=[e];let s;if(!n)return r;for(;r!==!1&&a.indexOf(r)===-1;){if(!_t(r))return r;if(s=t[r],!s)return!1;if(s.visible)return r;a.push(r),r=s.fill}return!1}function f1(t,e,n){const i=S1(t);if(ke(i))return isNaN(i.value)?!1:i;let r=parseFloat(i);return _t(r)&&Math.floor(r)===r?g1(i[0],e,r,n):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function g1(t,e,n,i){return(t==="-"||t==="+")&&(n=e+n),n===e||n<0||n>=i?!1:n}function h1(t,e){let n=null;return t==="start"?n=e.bottom:t==="end"?n=e.top:ke(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function E1(t,e,n){let i;return t==="start"?i=n:t==="end"?i=e.options.reverse?e.min:e.max:ke(t)?i=t.value:i=e.getBaseValue(),i}function S1(t){const e=t.options,n=e.fill;let i=Ie(n&&n.target,n);return i===void 0&&(i=!!e.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function b1(t){const{scale:e,index:n,line:i}=t,r=[],a=i.segments,s=i.points,o=T1(e,n);o.push(fR({x:null,y:e.bottom},i));for(let l=0;l=0;--s){const o=r[s].$filler;o&&(o.line.updateControlPoints(a,o.axis),i&&o.fill&&fc(t.ctx,o,a))}},beforeDatasetsDraw(t,e,n){if(n.drawTime!=="beforeDatasetsDraw")return;const i=t.getSortedVisibleDatasetMetas();for(let r=i.length-1;r>=0;--r){const a=i[r].$filler;tE(a)&&fc(t.ctx,a,t.chartArea)}},beforeDatasetDraw(t,e,n){const i=e.meta.$filler;!tE(i)||n.drawTime!=="beforeDatasetDraw"||fc(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const aE=(t,e)=>{let{boxHeight:n=e,boxWidth:i=e}=t;return t.usePointStyle&&(n=Math.min(n,e),i=t.pointStyleWidth||Math.min(i,e)),{boxWidth:i,boxHeight:n,itemHeight:Math.max(e,n)}},w1=(t,e)=>t!==null&&e!==null&&t.datasetIndex===e.datasetIndex&&t.index===e.index;class sE extends Wn{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n,i){this.maxWidth=e,this.maxHeight=n,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let n=We(e.generateLabels,[this.chart],this)||[];e.filter&&(n=n.filter(i=>e.filter(i,this.chart.data))),e.sort&&(n=n.sort((i,r)=>e.sort(i,r,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:e,ctx:n}=this;if(!e.display){this.width=this.height=0;return}const i=e.labels,r=Et(i.font),a=r.size,s=this._computeTitleHeight(),{boxWidth:o,itemHeight:l}=aE(i,a);let c,d;n.font=r.string,this.isHorizontal()?(c=this.maxWidth,d=this._fitRows(s,a,o,l)+10):(d=this.maxHeight,c=this._fitCols(s,r,o,l)+10),this.width=Math.min(c,e.maxWidth||this.maxWidth),this.height=Math.min(d,e.maxHeight||this.maxHeight)}_fitRows(e,n,i,r){const{ctx:a,maxWidth:s,options:{labels:{padding:o}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],d=r+o;let u=e;a.textAlign="left",a.textBaseline="middle";let _=-1,p=-d;return this.legendItems.forEach((f,m)=>{const g=i+n/2+a.measureText(f.text).width;(m===0||c[c.length-1]+g+2*o>s)&&(u+=d,c[c.length-(m>0?0:1)]=0,p+=d,_++),l[m]={left:0,top:p,row:_,width:g,height:r},c[c.length-1]+=g+o}),u}_fitCols(e,n,i,r){const{ctx:a,maxHeight:s,options:{labels:{padding:o}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],d=s-e;let u=o,_=0,p=0,f=0,m=0;return this.legendItems.forEach((g,h)=>{const{itemWidth:S,itemHeight:b}=M1(i,n,a,g,r);h>0&&p+b+2*o>d&&(u+=_+o,c.push({width:_,height:p}),f+=_+o,m++,_=p=0),l[h]={left:f,top:p,col:m,width:S,height:b},_=Math.max(_,S),p+=b+o}),u+=_,c.push({width:_,height:p}),u}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:i,labels:{padding:r},rtl:a}}=this,s=Nr(a,this.left,this.width);if(this.isHorizontal()){let o=0,l=Dt(i,this.left+r,this.right-this.lineWidths[o]);for(const c of n)o!==c.row&&(o=c.row,l=Dt(i,this.left+r,this.right-this.lineWidths[o])),c.top+=this.top+e+r,c.left=s.leftForLtr(s.x(l),c.width),l+=c.width+r}else{let o=0,l=Dt(i,this.top+e+r,this.bottom-this.columnSizes[o].height);for(const c of n)c.col!==o&&(o=c.col,l=Dt(i,this.top+e+r,this.bottom-this.columnSizes[o].height)),c.top=l,c.left+=this.left+r,c.left=s.leftForLtr(s.x(c.left),c.width),l+=c.height+r}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const e=this.ctx;kl(e,this),this._draw(),Fl(e)}}_draw(){const{options:e,columnSizes:n,lineWidths:i,ctx:r}=this,{align:a,labels:s}=e,o=ot.color,l=Nr(e.rtl,this.left,this.width),c=Et(s.font),{padding:d}=s,u=c.size,_=u/2;let p;this.drawTitle(),r.textAlign=l.textAlign("left"),r.textBaseline="middle",r.lineWidth=.5,r.font=c.string;const{boxWidth:f,boxHeight:m,itemHeight:g}=aE(s,u),h=function(O,x,I){if(isNaN(f)||f<=0||isNaN(m)||m<0)return;r.save();const D=Ie(I.lineWidth,1);if(r.fillStyle=Ie(I.fillStyle,o),r.lineCap=Ie(I.lineCap,"butt"),r.lineDashOffset=Ie(I.lineDashOffset,0),r.lineJoin=Ie(I.lineJoin,"miter"),r.lineWidth=D,r.strokeStyle=Ie(I.strokeStyle,o),r.setLineDash(Ie(I.lineDash,[])),s.usePointStyle){const U={radius:m*Math.SQRT2/2,pointStyle:I.pointStyle,rotation:I.rotation,borderWidth:D},$=l.xPlus(O,f/2),N=x+_;FC(r,U,$,N,s.pointStyleWidth&&f)}else{const U=x+Math.max((u-m)/2,0),$=l.leftForLtr(O,f),N=Wi(I.borderRadius);r.beginPath(),Object.values(N).some(Y=>Y!==0)?es(r,{x:$,y:U,w:f,h:m,radius:N}):r.rect($,U,f,m),r.fill(),D!==0&&r.stroke()}r.restore()},S=function(O,x,I){tr(r,I.text,O,x+g/2,c,{strikethrough:I.hidden,textAlign:l.textAlign(I.textAlign)})},b=this.isHorizontal(),T=this._computeTitleHeight();b?p={x:Dt(a,this.left+d,this.right-i[0]),y:this.top+d+T,line:0}:p={x:this.left+d,y:Dt(a,this.top+T+d,this.bottom-n[0].height),line:0},$C(this.ctx,e.textDirection);const y=g+d;this.legendItems.forEach((O,x)=>{r.strokeStyle=O.fontColor,r.fillStyle=O.fontColor;const I=r.measureText(O.text).width,D=l.textAlign(O.textAlign||(O.textAlign=s.textAlign)),U=f+_+I;let $=p.x,N=p.y;l.setWidth(this.width),b?x>0&&$+U+d>this.right&&(N=p.y+=y,p.line++,$=p.x=Dt(a,this.left+d,this.right-i[p.line])):x>0&&N+y>this.bottom&&($=p.x=$+n[p.line].width+d,p.line++,N=p.y=Dt(a,this.top+T+d,this.bottom-n[p.line].height));const Y=l.x($);if(h(Y,N,O),$=eP(D,$+f+_,b?$+U:this.right,e.rtl),S(l.x($),N,O),b)p.x+=U+d;else if(typeof O.text!="string"){const v=c.lineHeight;p.y+=hR(O,v)+d}else p.y+=y}),WC(this.ctx,e.textDirection)}drawTitle(){const e=this.options,n=e.title,i=Et(n.font),r=At(n.padding);if(!n.display)return;const a=Nr(e.rtl,this.left,this.width),s=this.ctx,o=n.position,l=i.size/2,c=r.top+l;let d,u=this.left,_=this.width;if(this.isHorizontal())_=Math.max(...this.lineWidths),d=this.top+c,u=Dt(e.align,u,this.right-_);else{const f=this.columnSizes.reduce((m,g)=>Math.max(m,g.height),0);d=c+Dt(e.align,this.top,this.bottom-f-e.labels.padding-this._computeTitleHeight())}const p=Dt(o,u,u+_);s.textAlign=a.textAlign(tf(o)),s.textBaseline="middle",s.strokeStyle=n.color,s.fillStyle=n.color,s.font=i.string,tr(s,n.text,p,d,i)}_computeTitleHeight(){const e=this.options.title,n=Et(e.font),i=At(e.padding);return e.display?n.lineHeight+i.height:0}_getLegendItemAt(e,n){let i,r,a;if(Pn(e,this.left,this.right)&&Pn(n,this.top,this.bottom)){for(a=this.legendHitBoxes,i=0;ia.length>s.length?a:s)),e+n.size/2+i.measureText(r).width}function P1(t,e,n){let i=t;return typeof e.text!="string"&&(i=hR(e,n)),i}function hR(t,e){const n=t.text?t.text.length:0;return e*n}function k1(t,e){return!!((t==="mousemove"||t==="mouseout")&&(e.onHover||e.onLeave)||e.onClick&&(t==="click"||t==="mouseup"))}var F1={id:"legend",_element:sE,start(t,e,n){const i=t.legend=new sE({ctx:t.ctx,options:n,chart:t});Mt.configure(t,i,n),Mt.addBox(t,i)},stop(t){Mt.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,n){const i=t.legend;Mt.configure(t,i,n),i.options=n},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,n){const i=e.datasetIndex,r=n.chart;r.isDatasetVisible(i)?(r.hide(i),e.hidden=!0):(r.show(i),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:n,pointStyle:i,textAlign:r,color:a,useBorderRadius:s,borderRadius:o}}=t.legend.options;return t._getSortedDatasetMetas().map(l=>{const c=l.controller.getStyle(n?0:void 0),d=At(c.borderWidth);return{text:e[l.index].label,fillStyle:c.backgroundColor,fontColor:a,hidden:!l.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(d.width+d.height)/4,strokeStyle:c.borderColor,pointStyle:i||c.pointStyle,rotation:c.rotation,textAlign:r||c.textAlign,borderRadius:s&&(o||c.borderRadius),datasetIndex:l.index}},this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};class uf extends Wn{constructor(e){super(),this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n){const i=this.options;if(this.left=0,this.top=0,!i.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=e,this.height=this.bottom=n;const r=Je(i.text)?i.text.length:1;this._padding=At(i.padding);const a=r*Et(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=a:this.width=a}isHorizontal(){const e=this.options.position;return e==="top"||e==="bottom"}_drawArgs(e){const{top:n,left:i,bottom:r,right:a,options:s}=this,o=s.align;let l=0,c,d,u;return this.isHorizontal()?(d=Dt(o,i,a),u=n+e,c=a-i):(s.position==="left"?(d=i+e,u=Dt(o,r,n),l=it*-.5):(d=a-e,u=Dt(o,n,r),l=it*.5),c=r-n),{titleX:d,titleY:u,maxWidth:c,rotation:l}}draw(){const e=this.ctx,n=this.options;if(!n.display)return;const i=Et(n.font),a=i.lineHeight/2+this._padding.top,{titleX:s,titleY:o,maxWidth:l,rotation:c}=this._drawArgs(a);tr(e,n.text,0,0,i,{color:n.color,maxWidth:l,rotation:c,textAlign:tf(n.align),textBaseline:"middle",translation:[s,o]})}}function U1(t,e){const n=new uf({ctx:t.ctx,options:e,chart:t});Mt.configure(t,n,e),Mt.addBox(t,n),t.titleBlock=n}var B1={id:"title",_element:uf,start(t,e,n){U1(t,n)},stop(t){const e=t.titleBlock;Mt.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,n){const i=t.titleBlock;Mt.configure(t,i,n),i.options=n},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const js=new WeakMap;var G1={id:"subtitle",start(t,e,n){const i=new uf({ctx:t.ctx,options:n,chart:t});Mt.configure(t,i,n),Mt.addBox(t,i),js.set(t,i)},stop(t){Mt.removeBox(t,js.get(t)),js.delete(t)},beforeUpdate(t,e,n){const i=js.get(t);Mt.configure(t,i,n),i.options=n},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const oa={average(t){if(!t.length)return!1;let e,n,i=0,r=0,a=0;for(e=0,n=t.length;e-1?t.split(`
+`):t}function Y1(t,e){const{element:n,datasetIndex:i,index:r}=e,a=t.getDatasetMeta(i).controller,{label:s,value:o}=a.getLabelAndValue(r);return{chart:t,label:s,parsed:a.getParsed(r),raw:t.data.datasets[i].data[r],formattedValue:o,dataset:a.getDataset(),dataIndex:r,datasetIndex:i,element:n}}function oE(t,e){const n=t.chart.ctx,{body:i,footer:r,title:a}=t,{boxWidth:s,boxHeight:o}=e,l=Et(e.bodyFont),c=Et(e.titleFont),d=Et(e.footerFont),u=a.length,_=r.length,p=i.length,f=At(e.padding);let m=f.height,g=0,h=i.reduce((T,y)=>T+y.before.length+y.lines.length+y.after.length,0);if(h+=t.beforeBody.length+t.afterBody.length,u&&(m+=u*c.lineHeight+(u-1)*e.titleSpacing+e.titleMarginBottom),h){const T=e.displayColors?Math.max(o,l.lineHeight):l.lineHeight;m+=p*T+(h-p)*l.lineHeight+(h-1)*e.bodySpacing}_&&(m+=e.footerMarginTop+_*d.lineHeight+(_-1)*e.footerSpacing);let S=0;const b=function(T){g=Math.max(g,n.measureText(T).width+S)};return n.save(),n.font=c.string,Ve(t.title,b),n.font=l.string,Ve(t.beforeBody.concat(t.afterBody),b),S=e.displayColors?s+2+e.boxPadding:0,Ve(i,T=>{Ve(T.before,b),Ve(T.lines,b),Ve(T.after,b)}),S=0,n.font=d.string,Ve(t.footer,b),n.restore(),g+=f.width,{width:g,height:m}}function z1(t,e){const{y:n,height:i}=e;return nt.height-i/2?"bottom":"center"}function H1(t,e,n,i){const{x:r,width:a}=i,s=n.caretSize+n.caretPadding;if(t==="left"&&r+a+s>e.width||t==="right"&&r-a-s<0)return!0}function V1(t,e,n,i){const{x:r,width:a}=n,{width:s,chartArea:{left:o,right:l}}=t;let c="center";return i==="center"?c=r<=(o+l)/2?"left":"right":r<=a/2?c="left":r>=s-a/2&&(c="right"),H1(c,t,e,n)&&(c="center"),c}function lE(t,e,n){const i=n.yAlign||e.yAlign||z1(t,n);return{xAlign:n.xAlign||e.xAlign||V1(t,e,n,i),yAlign:i}}function q1(t,e){let{x:n,width:i}=t;return e==="right"?n-=i:e==="center"&&(n-=i/2),n}function $1(t,e,n){let{y:i,height:r}=t;return e==="top"?i+=n:e==="bottom"?i-=r+n:i-=r/2,i}function cE(t,e,n,i){const{caretSize:r,caretPadding:a,cornerRadius:s}=t,{xAlign:o,yAlign:l}=n,c=r+a,{topLeft:d,topRight:u,bottomLeft:_,bottomRight:p}=Wi(s);let f=q1(e,o);const m=$1(e,l,c);return l==="center"?o==="left"?f+=c:o==="right"&&(f-=c):o==="left"?f-=Math.max(d,_)+r:o==="right"&&(f+=Math.max(u,p)+r),{x:yt(f,0,i.width-e.width),y:yt(m,0,i.height-e.height)}}function Js(t,e,n){const i=At(n.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-i.right:t.x+i.left}function dE(t){return mn([],xn(t))}function W1(t,e,n){return Ci(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function uE(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const ER={beforeTitle:In,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,i=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(i>0&&e.dataIndex"u"?ER[e].call(n,i):r}class Vp extends Wn{constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const n=this.chart,i=this.options.setContext(this.getContext()),r=i.enabled&&n.options.animation&&i.animations,a=new ZC(this.chart,r);return r._cacheable&&(this._cachedAnimations=Object.freeze(a)),a}getContext(){return this.$context||(this.$context=W1(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,n){const{callbacks:i}=n,r=Ft(i,"beforeTitle",this,e),a=Ft(i,"title",this,e),s=Ft(i,"afterTitle",this,e);let o=[];return o=mn(o,xn(r)),o=mn(o,xn(a)),o=mn(o,xn(s)),o}getBeforeBody(e,n){return dE(Ft(n.callbacks,"beforeBody",this,e))}getBody(e,n){const{callbacks:i}=n,r=[];return Ve(e,a=>{const s={before:[],lines:[],after:[]},o=uE(i,a);mn(s.before,xn(Ft(o,"beforeLabel",this,a))),mn(s.lines,Ft(o,"label",this,a)),mn(s.after,xn(Ft(o,"afterLabel",this,a))),r.push(s)}),r}getAfterBody(e,n){return dE(Ft(n.callbacks,"afterBody",this,e))}getFooter(e,n){const{callbacks:i}=n,r=Ft(i,"beforeFooter",this,e),a=Ft(i,"footer",this,e),s=Ft(i,"afterFooter",this,e);let o=[];return o=mn(o,xn(r)),o=mn(o,xn(a)),o=mn(o,xn(s)),o}_createItems(e){const n=this._active,i=this.chart.data,r=[],a=[],s=[];let o=[],l,c;for(l=0,c=n.length;le.filter(d,u,_,i))),e.itemSort&&(o=o.sort((d,u)=>e.itemSort(d,u,i))),Ve(o,d=>{const u=uE(e.callbacks,d);r.push(Ft(u,"labelColor",this,d)),a.push(Ft(u,"labelPointStyle",this,d)),s.push(Ft(u,"labelTextColor",this,d))}),this.labelColors=r,this.labelPointStyles=a,this.labelTextColors=s,this.dataPoints=o,o}update(e,n){const i=this.options.setContext(this.getContext()),r=this._active;let a,s=[];if(!r.length)this.opacity!==0&&(a={opacity:0});else{const o=oa[i.position].call(this,r,this._eventPosition);s=this._createItems(i),this.title=this.getTitle(s,i),this.beforeBody=this.getBeforeBody(s,i),this.body=this.getBody(s,i),this.afterBody=this.getAfterBody(s,i),this.footer=this.getFooter(s,i);const l=this._size=oE(this,i),c=Object.assign({},o,l),d=lE(this.chart,i,c),u=cE(i,c,d,this.chart);this.xAlign=d.xAlign,this.yAlign=d.yAlign,a={opacity:1,x:u.x,y:u.y,width:l.width,height:l.height,caretX:o.x,caretY:o.y}}this._tooltipItems=s,this.$context=void 0,a&&this._resolveAnimations().update(this,a),e&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,i,r){const a=this.getCaretPosition(e,i,r);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)}getCaretPosition(e,n,i){const{xAlign:r,yAlign:a}=this,{caretSize:s,cornerRadius:o}=i,{topLeft:l,topRight:c,bottomLeft:d,bottomRight:u}=Wi(o),{x:_,y:p}=e,{width:f,height:m}=n;let g,h,S,b,T,y;return a==="center"?(T=p+m/2,r==="left"?(g=_,h=g-s,b=T+s,y=T-s):(g=_+f,h=g+s,b=T-s,y=T+s),S=g):(r==="left"?h=_+Math.max(l,d)+s:r==="right"?h=_+f-Math.max(c,u)-s:h=this.caretX,a==="top"?(b=p,T=b-s,g=h-s,S=h+s):(b=p+m,T=b+s,g=h+s,S=h-s),y=b),{x1:g,x2:h,x3:S,y1:b,y2:T,y3:y}}drawTitle(e,n,i){const r=this.title,a=r.length;let s,o,l;if(a){const c=Nr(i.rtl,this.x,this.width);for(e.x=Js(this,i.titleAlign,i),n.textAlign=c.textAlign(i.titleAlign),n.textBaseline="middle",s=Et(i.titleFont),o=i.titleSpacing,n.fillStyle=i.titleColor,n.font=s.string,l=0;lS!==0)?(e.beginPath(),e.fillStyle=a.multiKeyBackground,es(e,{x:m,y:f,w:c,h:l,radius:h}),e.fill(),e.stroke(),e.fillStyle=s.backgroundColor,e.beginPath(),es(e,{x:g,y:f+1,w:c-2,h:l-2,radius:h}),e.fill()):(e.fillStyle=a.multiKeyBackground,e.fillRect(m,f,c,l),e.strokeRect(m,f,c,l),e.fillStyle=s.backgroundColor,e.fillRect(g,f+1,c-2,l-2))}e.fillStyle=this.labelTextColors[i]}drawBody(e,n,i){const{body:r}=this,{bodySpacing:a,bodyAlign:s,displayColors:o,boxHeight:l,boxWidth:c,boxPadding:d}=i,u=Et(i.bodyFont);let _=u.lineHeight,p=0;const f=Nr(i.rtl,this.x,this.width),m=function(I){n.fillText(I,f.x(e.x+p),e.y+_/2),e.y+=_+a},g=f.textAlign(s);let h,S,b,T,y,O,x;for(n.textAlign=s,n.textBaseline="middle",n.font=u.string,e.x=Js(this,g,i),n.fillStyle=i.bodyColor,Ve(this.beforeBody,m),p=o&&g!=="right"?s==="center"?c/2+d:c+2+d:0,T=0,O=r.length;T0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,i=this.$animations,r=i&&i.x,a=i&&i.y;if(r||a){const s=oa[e.position].call(this,this._active,this._eventPosition);if(!s)return;const o=this._size=oE(this,e),l=Object.assign({},s,this._size),c=lE(n,e,l),d=cE(e,l,c,n);(r._to!==d.x||a._to!==d.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=o.width,this.height=o.height,this.caretX=s.x,this.caretY=s.y,this._resolveAnimations().update(this,d))}}_willRender(){return!!this.opacity}draw(e){const n=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(n);const r={width:this.width,height:this.height},a={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const s=At(n.padding),o=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&o&&(e.save(),e.globalAlpha=i,this.drawBackground(a,e,r,n),$C(e,n.textDirection),a.y+=s.top,this.drawTitle(a,e,n),this.drawBody(a,e,n),this.drawFooter(a,e,n),WC(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const i=this._active,r=e.map(({datasetIndex:o,index:l})=>{const c=this.chart.getDatasetMeta(o);if(!c)throw new Error("Cannot find a dataset at index "+o);return{datasetIndex:o,element:c.data[l],index:l}}),a=!Qo(i,r),s=this._positionChanged(r,n);(a||s)&&(this._active=r,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,i=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const r=this.options,a=this._active||[],s=this._getActiveElements(e,a,n,i),o=this._positionChanged(s,e),l=n||!Qo(s,a)||o;return l&&(this._active=s,(r.enabled||r.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),l}_getActiveElements(e,n,i,r){const a=this.options;if(e.type==="mouseout")return[];if(!r)return n;const s=this.chart.getElementsAtEventForMode(e,a.mode,a,i);return a.reverse&&s.reverse(),s}_positionChanged(e,n){const{caretX:i,caretY:r,options:a}=this,s=oa[a.position].call(this,e,n);return s!==!1&&(i!==s.x||r!==s.y)}}ae(Vp,"positioners",oa);var K1={id:"tooltip",_element:Vp,positioners:oa,afterInit(t,e,n){n&&(t.tooltip=new Vp({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:ER},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},Q1=Object.freeze({__proto__:null,Colors:o1,Decimation:u1,Filler:x1,Legend:F1,SubTitle:G1,Title:B1,Tooltip:K1});const X1=(t,e,n,i)=>(typeof e=="string"?(n=t.push(e)-1,i.unshift({index:n,label:e})):isNaN(e)&&(n=null),n);function Z1(t,e,n,i){const r=t.indexOf(e);if(r===-1)return X1(t,e,n,i);const a=t.lastIndexOf(e);return r!==a?n:r}const j1=(t,e)=>t===null?null:yt(Math.round(t),0,e);function _E(t){const e=this.getLabels();return t>=0&&tn.length-1?null:this.getPixelForValue(n[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}ae(qp,"id","category"),ae(qp,"defaults",{ticks:{callback:_E}});function J1(t,e){const n=[],{bounds:r,step:a,min:s,max:o,precision:l,count:c,maxTicks:d,maxDigits:u,includeBounds:_}=t,p=a||1,f=d-1,{min:m,max:g}=e,h=!Pe(s),S=!Pe(o),b=!Pe(c),T=(g-m)/(u+1);let y=sh((g-m)/f/p)*p,O,x,I,D;if(y<1e-14&&!h&&!S)return[{value:m},{value:g}];D=Math.ceil(g/y)-Math.floor(m/y),D>f&&(y=sh(D*y/f/p)*p),Pe(l)||(O=Math.pow(10,l),y=Math.ceil(y*O)/O),r==="ticks"?(x=Math.floor(m/y)*y,I=Math.ceil(g/y)*y):(x=m,I=g),h&&S&&a&&WL((o-s)/a,y/1e3)?(D=Math.round(Math.min((o-s)/y,d)),y=(o-s)/D,x=s,I=o):b?(x=h?s:x,I=S?o:I,D=c-1,y=(I-x)/D):(D=(I-x)/y,Ta(D,Math.round(D),y/1e3)?D=Math.round(D):D=Math.ceil(D));const U=Math.max(oh(y),oh(x));O=Math.pow(10,Pe(l)?U:l),x=Math.round(x*O)/O,I=Math.round(I*O)/O;let $=0;for(h&&(_&&x!==s?(n.push({value:s}),xo)break;n.push({value:N})}return S&&_&&I!==o?n.length&&Ta(n[n.length-1].value,o,pE(o,T,t))?n[n.length-1].value=o:n.push({value:o}):(!S||I===o)&&n.push({value:I}),n}function pE(t,e,{horizontal:n,minRotation:i}){const r=on(i),a=(n?Math.sin(r):Math.cos(r))||.001,s=.75*e*(""+t).length;return Math.min(e/a,s)}class nl extends rr{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,n){return Pe(e)||(typeof e=="number"||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:n,maxDefined:i}=this.getUserBounds();let{min:r,max:a}=this;const s=l=>r=n?r:l,o=l=>a=i?a:l;if(e){const l=Tn(r),c=Tn(a);l<0&&c<0?o(0):l>0&&c>0&&s(0)}if(r===a){let l=a===0?1:Math.abs(a*.05);o(a+l),e||s(r-l)}this.min=r,this.max=a}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:n,stepSize:i}=e,r;return i?(r=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,r>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${r} ticks. Limiting to 1000.`),r=1e3)):(r=this.computeTickLimit(),n=n||11),n&&(r=Math.min(n,r)),r}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let i=this.getTickLimit();i=Math.max(2,i);const r={maxTicks:i,bounds:e.bounds,min:e.min,max:e.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},a=this._range||this,s=J1(r,a);return e.bounds==="ticks"&&AC(s,this,"value"),e.reverse?(s.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),s}configure(){const e=this.ticks;let n=this.min,i=this.max;if(super.configure(),this.options.offset&&e.length){const r=(i-n)/Math.max(e.length-1,1)/2;n-=r,i+=r}this._startValue=n,this._endValue=i,this._valueRange=i-n}getLabelForValue(e){return Es(e,this.chart.options.locale,this.options.ticks.format)}}class $p extends nl{determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=_t(e)?e:0,this.max=_t(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),n=e?this.width:this.height,i=on(this.options.ticks.minRotation),r=(e?Math.sin(i):Math.cos(i))||.001,a=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,a.lineHeight/r))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}ae($p,"id","linear"),ae($p,"defaults",{ticks:{callback:Pl.formatters.numeric}});const ns=t=>Math.floor(si(t)),xi=(t,e)=>Math.pow(10,ns(t)+e);function mE(t){return t/Math.pow(10,ns(t))===1}function fE(t,e,n){const i=Math.pow(10,n),r=Math.floor(t/i);return Math.ceil(e/i)-r}function eF(t,e){const n=e-t;let i=ns(n);for(;fE(t,e,i)>10;)i++;for(;fE(t,e,i)<10;)i--;return Math.min(i,ns(t))}function tF(t,{min:e,max:n}){e=Wt(t.min,e);const i=[],r=ns(e);let a=eF(e,n),s=a<0?Math.pow(10,Math.abs(a)):1;const o=Math.pow(10,a),l=r>a?Math.pow(10,r):0,c=Math.round((e-l)*s)/s,d=Math.floor((e-l)/o/10)*o*10;let u=Math.floor((c-d)/Math.pow(10,a)),_=Wt(t.min,Math.round((l+d+u*Math.pow(10,a))*s)/s);for(;_=10?u=u<15?15:20:u++,u>=20&&(a++,u=2,s=a>=0?1:s),_=Math.round((l+d+u*Math.pow(10,a))*s)/s;const p=Wt(t.max,_);return i.push({value:p,major:mE(p),significand:u}),i}class Wp extends rr{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(e,n){const i=nl.prototype.parse.apply(this,[e,n]);if(i===0){this._zero=!0;return}return _t(i)&&i>0?i:null}determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=_t(e)?Math.max(0,e):null,this.max=_t(n)?Math.max(0,n):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!_t(this._userMin)&&(this.min=e===xi(this.min,0)?xi(this.min,-1):xi(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:e,maxDefined:n}=this.getUserBounds();let i=this.min,r=this.max;const a=o=>i=e?i:o,s=o=>r=n?r:o;i===r&&(i<=0?(a(1),s(10)):(a(xi(i,-1)),s(xi(r,1)))),i<=0&&a(xi(r,-1)),r<=0&&s(xi(i,1)),this.min=i,this.max=r}buildTicks(){const e=this.options,n={min:this._userMin,max:this._userMax},i=tF(n,this);return e.bounds==="ticks"&&AC(i,this,"value"),e.reverse?(i.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),i}getLabelForValue(e){return e===void 0?"0":Es(e,this.chart.options.locale,this.options.ticks.format)}configure(){const e=this.min;super.configure(),this._startValue=si(e),this._valueRange=si(this.max)-si(e)}getPixelForValue(e){return(e===void 0||e===0)&&(e=this.min),e===null||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(si(e)-this._startValue)/this._valueRange)}getValueForPixel(e){const n=this.getDecimalForPixel(e);return Math.pow(10,this._startValue+n*this._valueRange)}}ae(Wp,"id","logarithmic"),ae(Wp,"defaults",{ticks:{callback:Pl.formatters.logarithmic,major:{enabled:!0}}});function Kp(t){const e=t.ticks;if(e.display&&t.display){const n=At(e.backdropPadding);return Ie(e.font&&e.font.size,ot.font.size)+n.height}return 0}function nF(t,e,n){return n=Je(n)?n:[n],{w:dP(t,e.string,n),h:n.length*e.lineHeight}}function gE(t,e,n,i,r){return t===i||t===r?{start:e-n/2,end:e+n/2}:tr?{start:e-n,end:e}:{start:e,end:e+n}}function iF(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},n=Object.assign({},e),i=[],r=[],a=t._pointLabels.length,s=t.options.pointLabels,o=s.centerPointLabels?it/a:0;for(let l=0;le.r&&(o=(i.end-e.r)/a,t.r=Math.max(t.r,e.r+o)),r.starte.b&&(l=(r.end-e.b)/s,t.b=Math.max(t.b,e.b+l))}function aF(t,e,n){const i=t.drawingArea,{extra:r,additionalAngle:a,padding:s,size:o}=n,l=t.getPointPosition(e,i+r+s,a),c=Math.round(Jm(Qt(l.angle+mt))),d=dF(l.y,o.h,c),u=lF(c),_=cF(l.x,o.w,u);return{visible:!0,x:l.x,y:d,textAlign:u,left:_,top:d,right:_+o.w,bottom:d+o.h}}function sF(t,e){if(!e)return!0;const{left:n,top:i,right:r,bottom:a}=t;return!(Fn({x:n,y:i},e)||Fn({x:n,y:a},e)||Fn({x:r,y:i},e)||Fn({x:r,y:a},e))}function oF(t,e,n){const i=[],r=t._pointLabels.length,a=t.options,{centerPointLabels:s,display:o}=a.pointLabels,l={extra:Kp(a)/2,additionalAngle:s?it/r:0};let c;for(let d=0;d270||n<90)&&(t-=e),t}function uF(t,e,n){const{left:i,top:r,right:a,bottom:s}=n,{backdropColor:o}=e;if(!Pe(o)){const l=Wi(e.borderRadius),c=At(e.backdropPadding);t.fillStyle=o;const d=i-c.left,u=r-c.top,_=a-i+c.width,p=s-r+c.height;Object.values(l).some(f=>f!==0)?(t.beginPath(),es(t,{x:d,y:u,w:_,h:p,radius:l}),t.fill()):t.fillRect(d,u,_,p)}}function _F(t,e){const{ctx:n,options:{pointLabels:i}}=t;for(let r=e-1;r>=0;r--){const a=t._pointLabelItems[r];if(!a.visible)continue;const s=i.setContext(t.getPointLabelContext(r));uF(n,s,a);const o=Et(s.font),{x:l,y:c,textAlign:d}=a;tr(n,t._pointLabels[r],l,c+o.lineHeight/2,o,{color:s.color,textAlign:d,textBaseline:"middle"})}}function SR(t,e,n,i){const{ctx:r}=t;if(n)r.arc(t.xCenter,t.yCenter,e,0,tt);else{let a=t.getPointPosition(0,e);r.moveTo(a.x,a.y);for(let s=1;s{const r=We(this.options.pointLabels.callback,[n,i],this);return r||r===0?r:""}).filter((n,i)=>this.chart.getDataVisibility(i))}fit(){const e=this.options;e.display&&e.pointLabels.display?iF(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(e,n,i,r){this.xCenter+=Math.floor((e-n)/2),this.yCenter+=Math.floor((i-r)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(e,n,i,r))}getIndexAngle(e){const n=tt/(this._pointLabels.length||1),i=this.options.startAngle||0;return Qt(e*n+on(i))}getDistanceFromCenterForValue(e){if(Pe(e))return NaN;const n=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-e)*n:(e-this.min)*n}getValueForDistanceFromCenter(e){if(Pe(e))return NaN;const n=e/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-n:this.min+n}getPointLabelContext(e){const n=this._pointLabels||[];if(e>=0&&e{if(u!==0){l=this.getDistanceFromCenterForValue(d.value);const _=this.getContext(u),p=r.setContext(_),f=a.setContext(_);pF(this,p,l,s,f)}}),i.display){for(e.save(),o=s-1;o>=0;o--){const d=i.setContext(this.getPointLabelContext(o)),{color:u,lineWidth:_}=d;!_||!u||(e.lineWidth=_,e.strokeStyle=u,e.setLineDash(d.borderDash),e.lineDashOffset=d.borderDashOffset,l=this.getDistanceFromCenterForValue(n.ticks.reverse?this.min:this.max),c=this.getPointPosition(o,l),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(c.x,c.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){const e=this.ctx,n=this.options,i=n.ticks;if(!i.display)return;const r=this.getIndexAngle(0);let a,s;e.save(),e.translate(this.xCenter,this.yCenter),e.rotate(r),e.textAlign="center",e.textBaseline="middle",this.ticks.forEach((o,l)=>{if(l===0&&!n.reverse)return;const c=i.setContext(this.getContext(l)),d=Et(c.font);if(a=this.getDistanceFromCenterForValue(this.ticks[l].value),c.showLabelBackdrop){e.font=d.string,s=e.measureText(o.label).width,e.fillStyle=c.backdropColor;const u=At(c.backdropPadding);e.fillRect(-s/2-u.left,-a-d.size/2-u.top,s+u.width,d.size+u.height)}tr(e,o.label,0,-a,d,{color:c.color,strokeColor:c.textStrokeColor,strokeWidth:c.textStrokeWidth})}),e.restore()}drawTitle(){}}ae(la,"id","radialLinear"),ae(la,"defaults",{display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Pl.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(e){return e},padding:5,centerPointLabels:!1}}),ae(la,"defaultRoutes",{"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"}),ae(la,"descriptors",{angleLines:{_fallback:"grid"}});const Bl={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},zt=Object.keys(Bl);function hE(t,e){return t-e}function EE(t,e){if(Pe(e))return null;const n=t._adapter,{parser:i,round:r,isoWeekday:a}=t._parseOpts;let s=e;return typeof i=="function"&&(s=i(s)),_t(s)||(s=typeof i=="string"?n.parse(s,i):n.parse(s)),s===null?null:(r&&(s=r==="week"&&(Pr(a)||a===!0)?n.startOf(s,"isoWeek",a):n.startOf(s,r)),+s)}function SE(t,e,n,i){const r=zt.length;for(let a=zt.indexOf(t);a=zt.indexOf(n);a--){const s=zt[a];if(Bl[s].common&&t._adapter.diff(r,i,s)>=e-1)return s}return zt[n?zt.indexOf(n):0]}function gF(t){for(let e=zt.indexOf(t)+1,n=zt.length;e=e?n[i]:n[r];t[a]=!0}}function hF(t,e,n,i){const r=t._adapter,a=+r.startOf(e[0].value,i),s=e[e.length-1].value;let o,l;for(o=a;o<=s;o=+r.add(o,1,i))l=n[o],l>=0&&(e[l].major=!0);return e}function TE(t,e,n){const i=[],r={},a=e.length;let s,o;for(s=0;s+e.value))}initOffsets(e=[]){let n=0,i=0,r,a;this.options.offset&&e.length&&(r=this.getDecimalForValue(e[0]),e.length===1?n=1-r:n=(this.getDecimalForValue(e[1])-r)/2,a=this.getDecimalForValue(e[e.length-1]),e.length===1?i=a:i=(a-this.getDecimalForValue(e[e.length-2]))/2);const s=e.length<3?.5:.25;n=yt(n,0,s),i=yt(i,0,s),this._offsets={start:n,end:i,factor:1/(n+1+i)}}_generate(){const e=this._adapter,n=this.min,i=this.max,r=this.options,a=r.time,s=a.unit||SE(a.minUnit,n,i,this._getLabelCapacity(n)),o=Ie(r.ticks.stepSize,1),l=s==="week"?a.isoWeekday:!1,c=Pr(l)||l===!0,d={};let u=n,_,p;if(c&&(u=+e.startOf(u,"isoWeek",l)),u=+e.startOf(u,c?"day":s),e.diff(i,n,s)>1e5*o)throw new Error(n+" and "+i+" are too far apart with stepSize of "+o+" "+s);const f=r.ticks.source==="data"&&this.getDataTimestamps();for(_=u,p=0;_+m)}getLabelForValue(e){const n=this._adapter,i=this.options.time;return i.tooltipFormat?n.format(e,i.tooltipFormat):n.format(e,i.displayFormats.datetime)}format(e,n){const r=this.options.time.displayFormats,a=this._unit,s=n||r[a];return this._adapter.format(e,s)}_tickFormatFunction(e,n,i,r){const a=this.options,s=a.ticks.callback;if(s)return We(s,[e,n,i],this);const o=a.time.displayFormats,l=this._unit,c=this._majorUnit,d=l&&o[l],u=c&&o[c],_=i[n],p=c&&u&&_&&_.major;return this._adapter.format(e,r||(p?u:d))}generateTickLabels(e){let n,i,r;for(n=0,i=e.length;n0?o:1}getDataTimestamps(){let e=this._cache.data||[],n,i;if(e.length)return e;const r=this.getMatchingVisibleMetas();if(this._normalized&&r.length)return this._cache.data=r[0].controller.getAllParsedValues(this);for(n=0,i=r.length;n=t[i].pos&&e<=t[r].pos&&({lo:i,hi:r}=kn(t,"pos",e)),{pos:a,time:o}=t[i],{pos:s,time:l}=t[r]):(e>=t[i].time&&e<=t[r].time&&({lo:i,hi:r}=kn(t,"time",e)),{time:a,pos:o}=t[i],{time:s,pos:l}=t[r]);const c=s-a;return c?o+(l-o)*(e-a)/c:o}class Qp extends is{constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(e);this._minPos=eo(n,this.min),this._tableRange=eo(n,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:n,max:i}=this,r=[],a=[];let s,o,l,c,d;for(s=0,o=e.length;s=n&&c<=i&&r.push(c);if(r.length<2)return[{time:n,pos:0},{time:i,pos:1}];for(s=0,o=r.length;sr-a)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const n=this.getDataTimestamps(),i=this.getLabelTimestamps();return n.length&&i.length?e=this.normalize(n.concat(i)):e=n.length?n:i,e=this._cache.all=e,e}getDecimalForValue(e){return(eo(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const n=this._offsets,i=this.getDecimalForPixel(e)/n.factor-n.end;return eo(this._table,i*this._tableRange+this._minPos,!0)}}ae(Qp,"id","timeseries"),ae(Qp,"defaults",is.defaults);var EF=Object.freeze({__proto__:null,CategoryScale:qp,LinearScale:$p,LogarithmicScale:Wp,RadialLinearScale:la,TimeScale:is,TimeSeriesScale:Qp});const bR=[Rk,t1,Q1,EF],TR={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},SF={type:{type:String,required:!0},...TR},bF=yy[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function ur(t){return El(t)?Fe(t):t}function TF(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return El(e)?new Proxy(t,{}):t}function vF(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function vR(t,e){t.labels=e}function yR(t,e,n){const i=[];t.datasets=e.map(r=>{const a=t.datasets.find(s=>s[n]===r[n]);return!a||!r.data||i.includes(a)?{...r}:(i.push(a),Object.assign(a,r),a)})}function yF(t,e){const n={labels:[],datasets:[]};return vR(n,t.labels),yR(n,t.datasets,e),n}const CF=Be({props:SF,setup(t,e){let{expose:n}=e;const i=nt(null),r=Sm(null);n({chart:r});const a=()=>{if(!i.value)return;const{type:l,data:c,options:d,plugins:u,datasetIdKey:_}=t,p=yF(c,_),f=TF(p,c);r.value=new nr(i.value,{type:l,data:f,options:{...d},plugins:u})},s=()=>{const l=Fe(r.value);l&&(l.destroy(),r.value=null)},o=l=>{l.update(t.updateMode)};return ym(a),sy(s),bn([()=>t.options,()=>t.data],(l,c)=>{let[d,u]=l,[_,p]=c;const f=Fe(r.value);if(!f)return;let m=!1;if(d){const g=ur(d),h=ur(_);g&&g!==h&&(vF(f,g),m=!0)}if(u){const g=ur(u.labels),h=ur(p.labels),S=ur(u.datasets),b=ur(p.datasets);g!==h&&(vR(f.config.data,g),m=!0),S&&S!==b&&(yR(f.config.data,S,t.datasetIdKey),m=!0)}m&&o(f)},{deep:!0}),()=>Ei("canvas",{ref:i})}});function CR(t,e){return nr.register(e),Be({props:TR,setup(n,i){let{expose:r}=i;const a=Sm(null),s=o=>{a.value=o==null?void 0:o.chart};return r({chart:a}),()=>Ei(CF,bF({ref:s},{type:t,...n}))}})}const RF=CR("bar",Ca),OF=CR("radar",Oa);/*!
+ * chartjs-plugin-datalabels v2.2.0
+ * https://chartjs-plugin-datalabels.netlify.app
+ * (c) 2017-2022 chartjs-plugin-datalabels contributors
+ * Released under the MIT license
+ */var vE=function(){if(typeof window<"u"){if(window.devicePixelRatio)return window.devicePixelRatio;var t=window.screen;if(t)return(t.deviceXDPI||1)/(t.logicalXDPI||1)}return 1}(),Ia={toTextLines:function(t){var e=[],n;for(t=[].concat(t);t.length;)n=t.pop(),typeof n=="string"?e.unshift.apply(e,n.split(`
+`)):Array.isArray(n)?t.push.apply(t,n):Pe(t)||e.unshift(""+n);return e},textSize:function(t,e,n){var i=[].concat(e),r=i.length,a=t.font,s=0,o;for(t.font=n.string,o=0;on.right&&(i|=OR),en.bottom&&(i|=NR),i}function IF(t,e){for(var n=t.x0,i=t.y0,r=t.x1,a=t.y1,s=to(n,i,e),o=to(r,a,e),l,c,d;!(!(s|o)||s&o);)l=s||o,l&AR?(c=n+(r-n)*(e.top-i)/(a-i),d=e.top):l&NR?(c=n+(r-n)*(e.bottom-i)/(a-i),d=e.bottom):l&OR?(d=i+(a-i)*(e.right-n)/(r-n),c=e.right):l&RR&&(d=i+(a-i)*(e.left-n)/(r-n),c=e.left),l===s?(n=c,i=d,s=to(n,i,e)):(r=c,a=d,o=to(r,a,e));return{x0:n,x1:r,y0:i,y1:a}}function no(t,e){var n=e.anchor,i=t,r,a;return e.clamp&&(i=IF(i,e.area)),n==="start"?(r=i.x0,a=i.y0):n==="end"?(r=i.x1,a=i.y1):(r=(i.x0+i.x1)/2,a=(i.y0+i.y1)/2),NF(r,a,t.vx,t.vy,e.align)}var io={arc:function(t,e){var n=(t.startAngle+t.endAngle)/2,i=Math.cos(n),r=Math.sin(n),a=t.innerRadius,s=t.outerRadius;return no({x0:t.x+i*a,y0:t.y+r*a,x1:t.x+i*s,y1:t.y+r*s,vx:i,vy:r},e)},point:function(t,e){var n=gc(t,e.origin),i=n.x*t.options.radius,r=n.y*t.options.radius;return no({x0:t.x-i,y0:t.y-r,x1:t.x+i,y1:t.y+r,vx:n.x,vy:n.y},e)},bar:function(t,e){var n=gc(t,e.origin),i=t.x,r=t.y,a=0,s=0;return t.horizontal?(i=Math.min(t.x,t.base),a=Math.abs(t.base-t.x)):(r=Math.min(t.y,t.base),s=Math.abs(t.base-t.y)),no({x0:i,y0:r+s,x1:i+a,y1:r,vx:n.x,vy:n.y},e)},fallback:function(t,e){var n=gc(t,e.origin);return no({x0:t.x,y0:t.y,x1:t.x+(t.width||0),y1:t.y+(t.height||0),vx:n.x,vy:n.y},e)}},Un=Ia.rasterize;function DF(t){var e=t.borderWidth||0,n=t.padding,i=t.size.height,r=t.size.width,a=-r/2,s=-i/2;return{frame:{x:a-n.left-e,y:s-n.top-e,w:r+n.width+e*2,h:i+n.height+e*2},text:{x:a,y:s,w:r,h:i}}}function xF(t,e){var n=e.chart.getDatasetMeta(e.datasetIndex).vScale;if(!n)return null;if(n.xCenter!==void 0&&n.yCenter!==void 0)return{x:n.xCenter,y:n.yCenter};var i=n.getBasePixel();return t.horizontal?{x:i,y:null}:{x:null,y:i}}function wF(t){return t instanceof Tr?io.arc:t instanceof Na?io.point:t instanceof Aa?io.bar:io.fallback}function MF(t,e,n,i,r,a){var s=Math.PI/2;if(a){var o=Math.min(a,r/2,i/2),l=e+o,c=n+o,d=e+i-o,u=n+r-o;t.moveTo(e,c),li.x+i.w+n*2||t.y>i.y+i.h+n*2)},intersects:function(t){var e=this._points(),n=t._points(),i=[ro(e[0],e[1]),ro(e[0],e[3])],r,a,s;for(this._rotation!==t._rotation&&i.push(ro(n[0],n[1]),ro(n[0],n[3])),r=0;r=0;--n)for(r=t[n].$layout,i=n-1;i>=0&&r._visible;--i)a=t[i].$layout,a._visible&&r._box.intersects(a._box)&&e(r,a);return t}function YF(t){var e,n,i,r,a,s,o;for(e=0,n=t.length;el.getProps([c],!0)[c]}),a=i.geometry(),s=xR(o,i.model(),a),r._box.update(s,a,i.rotation()));return GF(t,function(l,c){var d=l._hidable,u=c._hidable;d&&u||u?c._visible=!1:d&&(l._visible=!1)})}var Da={prepare:function(t){var e=[],n,i,r,a,s;for(n=0,r=t.length;n=0;--n)if(i=t[n].$layout,i&&i._visible&&i._box.contains(e))return t[n];return null},draw:function(t,e){var n,i,r,a,s,o;for(n=0,i=e.length;nbe().uiState.useDarkMode?"#ffffff":"#000000"),gridLines:De(()=>be().uiState.useDarkMode?"rgba(256, 256, 256, 0.2)":"rgba(0, 0, 0, 0.2)"),contentFill:"rgba(190, 22, 34, 0.5)",contentBorder:"rgb(127, 15, 24)",pointFill:"rgba(190, 22, 34, 1)"},KF=Be({__name:"DistributionDiagram",props:{distribution:{type:Object,required:!0},xScale:{type:String,required:!1,default:"linear"}},setup(t){const e=t;nr.register(...bR),nr.register(MR);const n=De(()=>Math.max(...e.distribution.splitIntoTenBuckets())),i=["91-100%","81-90%","71-80%","61-70%","51-60%","41-50%","31-40%","21-30%","11-20%","0-10%"],r=De(()=>({label:"Comparison Count",backgroundColor:xt.contentFill,borderWidth:1,borderColor:xt.contentBorder,tickColor:xt.ticksAndFont.value})),a=De(()=>({labels:i,datasets:[{...r.value,data:e.distribution.splitIntoTenBuckets()}]})),s=De(()=>({responsive:!0,maintainAspectRatio:!1,indexAxis:"y",scales:{x:{suggestedMax:e.xScale==="linear"?n.value+5:10**Math.ceil(Math.log10(n.value+5)),type:e.xScale,ticks:{minRotation:e.xScale==="logarithmic"?30:0,autoSkipPadding:10,color:xt.ticksAndFont.value,callback:function(o){if(e.xScale==="logarithmic"&&(o+"").match(/1(0)*[^1-9.]/)||e.xScale!=="logarithmic")return o}},grid:{color:xt.gridLines.value}},y:{ticks:{color:xt.ticksAndFont.value},grid:{color:xt.gridLines.value}}},plugins:{datalabels:{color:xt.ticksAndFont.value,font:{weight:"bold"},anchor:"end",align:"end",clamp:!0},legend:{display:!1}}}));return(o,l)=>(me(),ye("div",null,[ue(ve(RF),{data:a.value,options:s.value},null,8,["data","options"])]))}});function QF(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);var n=t.indexOf("Trident/");if(n>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var r=t.indexOf("Edge/");return r>0?parseInt(t.substring(r+5,t.indexOf(".",r)),10):-1}let Ro;function Zp(){Zp.init||(Zp.init=!0,Ro=QF()!==-1)}var Gl={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){Zp(),Vr(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",Ro&&this.$el.appendChild(t),t.data="about:blank",Ro||this.$el.appendChild(t)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!Ro&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const XF=cI();vl("data-v-b329ee4c");const ZF={class:"resize-observer",tabindex:"-1"};yl();const jF=XF((t,e,n,i,r,a)=>(me(),Qe("div",ZF)));Gl.render=jF;Gl.__scopeId="data-v-b329ee4c";Gl.__file="src/components/ResizeObserver.vue";function Oo(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Oo=function(e){return typeof e}:Oo=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Oo(t)}function JF(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function RE(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,i=new Array(e);n2&&arguments[2]!==void 0?arguments[2]:{},i,r,a,s=function(l){for(var c=arguments.length,d=new Array(c>1?c-1:0),u=1;u1){var c=o.find(function(u){return u.isIntersecting});c&&(l=c)}if(r.callback){var d=l.isIntersecting&&l.intersectionRatio>=r.threshold;if(d===r.oldResult)return;r.oldResult=d,r.callback(d,l)}},this.options.intersection),Vr(function(){r.observer&&r.observer.observe(r.el)})}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&typeof this.options.intersection.threshold=="number"?this.options.intersection.threshold:0}}]),t}();function kR(t,e,n){var i=e.value;if(i)if(typeof IntersectionObserver>"u")console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var r=new oU(t,i,n);t._vue_visibilityState=r}}function lU(t,e,n){var i=e.value,r=e.oldValue;if(!PR(i,r)){var a=t._vue_visibilityState;if(!i){FR(t);return}a?a.createObserver(i,n):kR(t,{value:i},n)}}function FR(t){var e=t._vue_visibilityState;e&&(e.destroyObserver(),delete t._vue_visibilityState)}var cU={beforeMount:kR,updated:lU,unmounted:FR};function dU(t){return{all:t=t||new Map,on:function(e,n){var i=t.get(e);i&&i.push(n)||t.set(e,[n])},off:function(e,n){var i=t.get(e);i&&i.splice(i.indexOf(n)>>>0,1)},emit:function(e,n){(t.get(e)||[]).slice().map(function(i){i(n)}),(t.get("*")||[]).slice().map(function(i){i(e,n)})}}}var UR={itemsLimit:1e3},uU=/(auto|scroll)/;function BR(t,e){return t.parentNode===null?e:BR(t.parentNode,e.concat([t]))}var hc=function(e,n){return getComputedStyle(e,null).getPropertyValue(n)},_U=function(e){return hc(e,"overflow")+hc(e,"overflow-y")+hc(e,"overflow-x")},pU=function(e){return uU.test(_U(e))};function NE(t){if(t instanceof HTMLElement||t instanceof SVGElement){for(var e=BR(t.parentNode,[]),n=0;n{this.$_prerender=!1,this.updateVisibleItems(!0),this.ready=!0})},activated(){const t=this.$_lastUpdateScrollPosition;typeof t=="number"&&this.$nextTick(()=>{this.scrollToPosition(t)})},beforeUnmount(){this.removeListeners()},methods:{addView(t,e,n,i,r){const a=ds({id:fU++,index:e,used:!0,key:i,type:r}),s=gm({item:n,position:0,nr:a});return t.push(s),s},unuseView(t,e=!1){const n=this.$_unusedViews,i=t.nr.type;let r=n.get(i);r||(r=[],n.set(i,r)),r.push(t),e||(t.nr.used=!1,t.position=-9999)},handleResize(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll(t){if(!this.$_scrollDirty){if(this.$_scrollDirty=!0,this.$_updateTimeout)return;const e=()=>requestAnimationFrame(()=>{this.$_scrollDirty=!1;const{continuous:n}=this.updateVisibleItems(!1,!0);n||(clearTimeout(this.$_refreshTimout),this.$_refreshTimout=setTimeout(this.handleScroll,this.updateInterval+100))});e(),this.updateInterval&&(this.$_updateTimeout=setTimeout(()=>{this.$_updateTimeout=0,this.$_scrollDirty&&e()},this.updateInterval))}},handleVisibilityChange(t,e){this.ready&&(t||e.boundingClientRect.width!==0||e.boundingClientRect.height!==0?(this.$emit("visible"),requestAnimationFrame(()=>{this.updateVisibleItems(!1)})):this.$emit("hidden"))},updateVisibleItems(t,e=!1){const n=this.itemSize,i=this.gridItems||1,r=this.itemSecondarySize||n,a=this.$_computedMinItemSize,s=this.typeField,o=this.simpleArray?null:this.keyField,l=this.items,c=l.length,d=this.sizes,u=this.$_views,_=this.$_unusedViews,p=this.pool,f=this.itemIndexByKey;let m,g,h,S,b;if(!c)m=g=S=b=h=0;else if(this.$_prerender)m=S=0,g=b=Math.min(this.prerender,l.length),h=null;else{const U=this.getScroll();if(e){let Y=U.start-this.$_lastUpdateScrollPosition;if(Y<0&&(Y=-Y),n===null&&YU.start&&(z=Z),Z=~~((v+z)/2);while(Z!==M);for(Z<0&&(Z=0),m=Z,h=d[c-1].accumulator,g=Z;gc&&(g=c)),S=m;Sc&&(g=c),S<0&&(S=0),b>c&&(b=c),h=Math.ceil(c/i)*n}}g-m>UR.itemsLimit&&this.itemsLimitError(),this.totalSize=h;let T;const y=m<=this.$_endIndex&&g>=this.$_startIndex;if(y)for(let U=0,$=p.length;U<$;U++)T=p[U],T.nr.used&&(t&&(T.nr.index=f[T.item[o]]),(T.nr.index==null||T.nr.index=g)&&this.unuseView(T));const O=y?null:new Map;let x,I,D;for(let U=m;U=N.length)&&(T=this.addView(p,U,x,$,I),this.unuseView(T,!0),N=_.get(I)),T=N[D],O.set(I,D+1)),u.delete(T.nr.key),T.nr.used=!0,T.nr.index=U,T.nr.key=$,T.nr.type=I,u.set($,T),Y=!0;else if(!T.nr.used&&(T.nr.used=!0,Y=!0,N)){const v=N.indexOf(T);v!==-1&&N.splice(v,1)}T.item=x,Y&&(U===l.length-1&&this.$emit("scroll-end"),U===0&&this.$emit("scroll-start")),n===null?(T.position=d[U-1].accumulator,T.offset=0):(T.position=Math.floor(U/i)*n,T.offset=U%i*r)}return this.$_startIndex=m,this.$_endIndex=g,this.emitUpdate&&this.$emit("update",m,g,S,b),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,this.updateInterval+300),{continuous:y}},getListenerTarget(){let t=NE(this.$el);return window.document&&(t===window.document.documentElement||t===window.document.body)&&(t=window),t},getScroll(){const{$el:t,direction:e}=this,n=e==="vertical";let i;if(this.pageMode){const r=t.getBoundingClientRect(),a=n?r.height:r.width;let s=-(n?r.top:r.left),o=n?window.innerHeight:window.innerWidth;s<0&&(o+=s,s=0),s+o>a&&(o=a-s),i={start:s,end:s+o}}else n?i={start:t.scrollTop,end:t.scrollTop+t.clientHeight}:i={start:t.scrollLeft,end:t.scrollLeft+t.clientWidth};return i},applyPageMode(){this.pageMode?this.addListeners():this.removeListeners()},addListeners(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,em?{passive:!0}:!1),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem(t){let e;const n=this.gridItems||1;this.itemSize===null?e=t>0?this.sizes[t-1].accumulator:0:e=Math.floor(t/n)*this.itemSize,this.scrollToPosition(e)},scrollToPosition(t){const e=this.direction==="vertical"?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};let n,i,r;if(this.pageMode){const a=NE(this.$el),s=a.tagName==="HTML"?0:a[e.scroll],o=a.getBoundingClientRect(),c=this.$el.getBoundingClientRect()[e.start]-o[e.start];n=a,i=e.scroll,r=t+s+c}else n=this.$el,i=e.scroll,r=t;n[i]=r},itemsLimitError(){throw setTimeout(()=>{console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",this.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")}),new Error("Rendered items limit reached")},sortViews(){this.pool.sort((t,e)=>t.nr.index-e.nr.index)}}};const gU={key:0,ref:"before",class:"vue-recycle-scroller__slot"},hU={key:1,ref:"after",class:"vue-recycle-scroller__slot"};function EU(t,e,n,i,r,a){const s=us("ResizeObserver"),o=NI("observe-visibility");return vm((me(),ye("div",{class:en(["vue-recycle-scroller",{ready:r.ready,"page-mode":n.pageMode,[`direction-${t.direction}`]:!0}]),onScrollPassive:e[0]||(e[0]=(...l)=>a.handleScroll&&a.handleScroll(...l))},[t.$slots.before?(me(),ye("div",gU,[kt(t.$slots,"before")],512)):mi("v-if",!0),(me(),Qe(Uf(n.listTag),{ref:"wrapper",style:Cn({[t.direction==="vertical"?"minHeight":"minWidth"]:r.totalSize+"px"}),class:en(["vue-recycle-scroller__item-wrapper",n.listClass])},{default:Ee(()=>[(me(!0),ye(Tt,null,ir(r.pool,l=>(me(),Qe(Uf(n.itemTag),Dm({key:l.nr.id,style:r.ready?{transform:`translate${t.direction==="vertical"?"Y":"X"}(${l.position}px) translate${t.direction==="vertical"?"X":"Y"}(${l.offset}px)`,width:n.gridItems?`${t.direction==="vertical"&&n.itemSecondarySize||n.itemSize}px`:void 0,height:n.gridItems?`${t.direction==="horizontal"&&n.itemSecondarySize||n.itemSize}px`:void 0}:null,class:["vue-recycle-scroller__item-view",[n.itemClass,{hover:!n.skipHover&&r.hoverKey===l.nr.key}]]},AI(n.skipHover?{}:{mouseenter:()=>{r.hoverKey=l.nr.key},mouseleave:()=>{r.hoverKey=null}})),{default:Ee(()=>[kt(t.$slots,"default",{item:l.item,index:l.nr.index,active:l.nr.used})]),_:2},1040,["style","class"]))),128)),kt(t.$slots,"empty")]),_:3},8,["style","class"])),t.$slots.after?(me(),ye("div",hU,[kt(t.$slots,"after")],512)):mi("v-if",!0),ue(s,{onNotify:a.handleResize},null,8,["onNotify"])],34)),[[o,a.handleVisibilityChange]])}rs.render=EU;rs.__file="src/components/RecycleScroller.vue";var as={name:"DynamicScroller",components:{RecycleScroller:rs},provide(){return typeof ResizeObserver<"u"&&(this.$_resizeObserver=new ResizeObserver(t=>{requestAnimationFrame(()=>{if(Array.isArray(t)){for(const e of t)if(e.target&&e.target.$_vs_onResize){let n,i;if(e.borderBoxSize){const r=e.borderBoxSize[0];n=r.inlineSize,i=r.blockSize}else n=e.contentRect.width,i=e.contentRect.height;e.target.$_vs_onResize(e.target.$_vs_id,n,i)}}})})),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},inheritAttrs:!1,props:{...GR,minItemSize:{type:[Number,String],required:!0}},emits:["resize","visible"],data(){return{vscrollData:{active:!0,sizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:YR,itemsWithSize(){const t=[],{items:e,keyField:n,simpleArray:i}=this,r=this.vscrollData.sizes,a=e.length;for(let s=0;s"u"&&!this.$_undefinedMap[l]&&(c=0),t.push({item:o,id:l,size:c})}return t}},watch:{items(){this.forceUpdate()},simpleArray:{handler(t){this.vscrollData.simpleArray=t},immediate:!0},direction(t){this.forceUpdate(!0)},itemsWithSize(t,e){const n=this.$el.scrollTop;let i=0,r=0;const a=Math.min(t.length,e.length);for(let o=0;o=n);o++)i+=e[o].size||this.minItemSize,r+=t[o].size||this.minItemSize;const s=r-i;s!==0&&(this.$el.scrollTop+=s)}},beforeCreate(){this.$_updates=[],this.$_undefinedSizes=0,this.$_undefinedMap={},this.$_events=dU()},activated(){this.vscrollData.active=!0},deactivated(){this.vscrollData.active=!1},unmounted(){this.$_events.all.clear()},methods:{onScrollerResize(){this.$refs.scroller&&this.forceUpdate(),this.$emit("resize")},onScrollerVisible(){this.$_events.emit("vscroll:update",{force:!1}),this.$emit("visible")},forceUpdate(t=!1){(t||this.simpleArray)&&(this.vscrollData.sizes={}),this.$_events.emit("vscroll:update",{force:!0})},scrollToItem(t){const e=this.$refs.scroller;e&&e.scrollToItem(t)},getItemSize(t,e=void 0){const n=this.simpleArray?e??this.items.indexOf(t):t[this.keyField];return this.vscrollData.sizes[n]||0},scrollToBottom(){if(this.$_scrollingToBottom)return;this.$_scrollingToBottom=!0;const t=this.$el;this.$nextTick(()=>{t.scrollTop=t.scrollHeight+5e3;const e=()=>{t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame(()=>{t.scrollTop=t.scrollHeight+5e3,this.$_undefinedSizes===0?this.$_scrollingToBottom=!1:requestAnimationFrame(e)})};requestAnimationFrame(e)})}}};function SU(t,e,n,i,r,a){const s=us("RecycleScroller");return me(),Qe(s,Dm({ref:"scroller",items:a.itemsWithSize,"min-item-size":n.minItemSize,direction:t.direction,"key-field":"id","list-tag":t.listTag,"item-tag":t.itemTag},t.$attrs,{onResize:a.onScrollerResize,onVisible:a.onScrollerVisible}),{default:Ee(({item:o,index:l,active:c})=>[kt(t.$slots,"default",fA(by({item:o.item,index:l,active:c,itemWithSize:o})))]),before:Ee(()=>[kt(t.$slots,"before")]),after:Ee(()=>[kt(t.$slots,"after")]),empty:Ee(()=>[kt(t.$slots,"empty")]),_:3},16,["items","min-item-size","direction","list-tag","item-tag","onResize","onVisible"])}as.render=SU;as.__file="src/components/DynamicScroller.vue";var il={name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},emits:["resize"],computed:{id(){if(this.vscrollData.simpleArray)return this.index;if(this.vscrollData.keyField in this.item)return this.item[this.vscrollData.keyField];throw new Error(`keyField '${this.vscrollData.keyField}' not found in your item. You should set a valid keyField prop on your Scroller`)},size(){return this.vscrollData.sizes[this.id]||0},finalActive(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id(t,e){if(this.$el.$_vs_id=this.id,this.size||this.onDataUpdate(),this.$_sizeObserved){const n=this.vscrollData.sizes[e],i=this.vscrollData.sizes[t];n!=null&&n!==i&&this.applySize(n)}},finalActive(t){this.size||(t?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?t?this.observeSize():this.unobserveSize():t&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created(){if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){for(const t in this.sizeDependencies)this.$watch(()=>this.sizeDependencies[t],this.onDataUpdate);this.vscrollParent.$_events.on("vscroll:update",this.onVscrollUpdate)}},mounted(){this.finalActive&&(this.updateSize(),this.observeSize())},beforeUnmount(){this.vscrollParent.$_events.off("vscroll:update",this.onVscrollUpdate),this.unobserveSize()},methods:{updateSize(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData(){this.watchData&&!this.vscrollResizeObserver?this.$_watchData=this.$watch("item",()=>{this.onDataUpdate()},{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate({force:t}){!this.finalActive&&t&&(this.$_pendingVScrollUpdate=this.id),(this.$_forceNextVScrollUpdate===this.id||t||!this.size)&&this.updateSize()},onDataUpdate(){this.updateSize()},computeSize(t){this.$nextTick(()=>{if(this.id===t){const e=this.$el.offsetWidth,n=this.$el.offsetHeight;this.applyWidthHeight(e,n)}this.$_pendingSizeUpdate=null})},applyWidthHeight(t,e){const n=~~(this.vscrollParent.direction==="vertical"?e:t);n&&this.size!==n&&this.applySize(n)},applySize(t){this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.vscrollData.sizes[this.id]=t,this.emitResize&&this.$emit("resize",this.id)},observeSize(){this.vscrollResizeObserver&&(this.$_sizeObserved||(this.vscrollResizeObserver.observe(this.$el),this.$el.$_vs_id=this.id,this.$el.$_vs_onResize=this.onResize,this.$_sizeObserved=!0))},unobserveSize(){this.vscrollResizeObserver&&this.$_sizeObserved&&(this.vscrollResizeObserver.unobserve(this.$el),this.$el.$_vs_onResize=void 0,this.$_sizeObserved=!1)},onResize(t,e,n){this.id===t&&this.applyWidthHeight(e,n)}},render(){return Ei(this.tag,this.$slots.default())}};il.__file="src/components/DynamicScrollerItem.vue";function bU(t,e){t.component("".concat(e,"recycle-scroller"),rs),t.component("".concat(e,"RecycleScroller"),rs),t.component("".concat(e,"dynamic-scroller"),as),t.component("".concat(e,"DynamicScroller"),as),t.component("".concat(e,"dynamic-scroller-item"),il),t.component("".concat(e,"DynamicScrollerItem"),il)}var TU={version:"2.0.0-beta.8",install:function(e,n){var i=Object.assign({},{installComponents:!0,componentsPrefix:""},n);for(var r in i)typeof i[r]<"u"&&(UR[r]=i[r]);i.installComponents&&bU(e,i.componentsPrefix)}};const vU={class:"group relative inline-block"},AE=.8,Qi=Be({__name:"ToolTipComponent",props:{direction:{type:String,required:!1,default:"top"}},setup(t){const e=t,n=De(()=>{const r={};return e.direction=="left"||e.direction=="right"?(r.top="50%",r.transform="translateY(-50%)",e.direction=="left"?r.right="105%":r.left="105%"):(r.left="50%",r.transform="translateX(-50%)",e.direction=="top"?r.bottom="105%":r.top="105%"),r.backgroundColor=`rgba(0,0,0,${AE})`,r}),i=De(()=>{const r={};r.content=" ",r.borderColor="";for(const a of["top","right","bottom","left"])r.borderColor+=a==e.direction?`rgba(0,0,0,${AE}) `:"transparent ";return e.direction=="left"||e.direction=="right"?(r.top="50%",r.marginTop="-4px"):(r.left="50%",r.marginLeft="-4px"),r[e.direction]="100%",r});return(r,a)=>(me(),ye("div",vU,[kt(r.$slots,"default"),_e("div",{class:"invisible absolute z-10 rounded-md px-1 text-center text-white delay-0 group-hover:visible group-hover:delay-200",style:Cn(n.value)},[kt(r.$slots,"tooltip"),_e("div",{class:"absolute border-4 border-solid",style:Cn(i.value)},null,4)],4)]))}}),_f=t=>(vl("data-v-38b61c88"),t=t(),yl(),t),yU={class:"flex flex-col"},CU={class:"font-bold"},RU={class:"tableRow"},OU=_f(()=>_e("div",{class:"tableCellNumber"},null,-1)),NU=_f(()=>_e("div",{class:"tableCellName items-center"},"Submissions in Comparison",-1)),AU={class:"tableCellSimilarity !flex-col"},IU=_f(()=>_e("div",null,"Similarity",-1)),DU={class:"flex w-full flex-row"},xU={class:"w-full text-center"},wU={class:"whitespace-pre text-sm"},MU={class:"w-full text-center"},LU={class:"whitespace-pre text-sm"},PU={key:0,class:"tableCellCluster items-center"},kU={class:"flex flex-grow flex-col overflow-hidden"},FU={class:"tableCellNumber"},UU={class:"w-full text-center"},BU={class:"tableCellName"},GU={class:"tableCellSimilarity"},YU={class:"w-1/2"},zU={class:"w-1/2"},HU={key:0,class:"tableCellCluster flex !flex-col items-center"},VU={class:"whitespace-nowrap text-sm"},qU=Be({__name:"ComparisonsTable",props:{topComparisons:{type:Array,required:!0},clusters:{type:Array,required:!1}},setup(t){const e=t;$o.add(MM);const n=eI(e,"topComparisons"),i=e.clusters!=null;function r(l){return be().submissionDisplayName(l)}function a(l){return be().state.anonymous.has(l)}let s=[];e.clusters!=null&&(s=LR(e.clusters.length,.8,.5,1));function o(l,c){var u;const d=[];return(u=e.clusters)==null||u.forEach((_,p)=>{_.members.includes(l)&&_.members.includes(c)&&_.members.length>2&&d.push(p)}),d}return(l,c)=>{const d=us("RouterLink");return me(),ye("div",yU,[_e("div",CU,[_e("div",RU,[OU,NU,_e("div",AU,[IU,_e("div",DU,[ue(Qi,{class:"flex-1",direction:i?"top":"left"},{default:Ee(()=>[_e("p",xU,Ae(ve(Sr)[ve(ht).AVERAGE].shortName),1)]),tooltip:Ee(()=>[_e("p",wU,Ae(ve(Sr)[ve(ht).AVERAGE].tooltip),1)]),_:1},8,["direction"]),ue(Qi,{class:"flex-1",direction:i?"top":"left"},{default:Ee(()=>[_e("p",MU,Ae(ve(Sr)[ve(ht).MAXIMUM].shortName),1)]),tooltip:Ee(()=>[_e("p",LU,Ae(ve(Sr)[ve(ht).MAXIMUM].tooltip),1)]),_:1},8,["direction"])])]),i?(me(),ye("div",PU,"Cluster")):mi("",!0)])]),_e("div",kU,[t.topComparisons.length>0?(me(),Qe(ve(as),{key:0,items:n.value,"min-item-size":48},{default:Ee(({item:u,index:_,active:p})=>[ue(ve(il),{item:u,active:p,"size-dependencies":[u.firstSubmissionId,u.secondSubmissionId,a(u.firstSubmissionId),a(u.secondSubmissionId)],"data-index":_},{default:Ee(()=>[_e("div",{class:en(["tableRow",{"bg-container-secondary-light dark:bg-container-secondary-dark":u.id%2==1}])},[ue(d,{to:{name:"ComparisonView",params:{firstId:u.firstSubmissionId,secondId:u.secondSubmissionId}},class:"flex flex-grow flex-row"},{default:Ee(()=>[_e("div",FU,[_e("div",UU,Ae(u.sortingPlace+1),1)]),_e("div",BU,[_e("div",{class:en(["break-anywhere w-1/2 px-2",{"blur-[1px]":a(u.firstSubmissionId)}])},Ae(a(u.firstSubmissionId)?"Hidden":r(u.firstSubmissionId)),3),_e("div",{class:en(["break-anywhere w-1/2 px-2",{"blur-[1px]":a(u.secondSubmissionId)}])},Ae(a(u.secondSubmissionId)?"Hidden":r(u.secondSubmissionId)),3)]),_e("div",GU,[_e("div",YU,Ae((u.similarities[ve(ht).AVERAGE]*100).toFixed(2))+"% ",1),_e("div",zU,Ae((u.similarities[ve(ht).MAXIMUM]*100).toFixed(2))+"% ",1)])]),_:2},1032,["to"]),i?(me(),ye("div",HU,[(me(!0),ye(Tt,null,ir(o(u.firstSubmissionId,u.secondSubmissionId),f=>(me(),Qe(d,{key:f,to:{name:"ClusterView",params:{clusterIndex:f}},class:"tect-center flex w-full justify-center"},{default:Ee(()=>[ue(Qi,{class:"w-fit",direction:"left"},{default:Ee(()=>{var m,g,h;return[$e(Ae((g=(m=t.clusters)==null?void 0:m[f].members)==null?void 0:g.length)+" ",1),ue(ve(Km),{icon:["fas","user-group"],style:Cn({color:ve(s)[f]})},null,8,["style"]),$e(" "+Ae((((h=t.clusters)==null?void 0:h[f].averageSimilarity)*100).toFixed(2))+"% ",1)]}),tooltip:Ee(()=>{var m,g,h;return[_e("p",VU,Ae((g=(m=t.clusters)==null?void 0:m[f].members)==null?void 0:g.length)+" submissions in cluster with average similarity of "+Ae((((h=t.clusters)==null?void 0:h[f].averageSimilarity)*100).toFixed(2))+"% ",1)]}),_:2},1024)]),_:2},1032,["to"]))),128))])):mi("",!0)],2)]),_:2},1032,["item","active","size-dependencies","data-index"])]),_:1},8,["items"])):mi("",!0)])])}}});const zR=_s(qU,[["__scopeId","data-v-38b61c88"]]),$U={},WU={class:"overflow-y-auto"},KU={class:"max-h-0 min-h-full"};function QU(t,e){return me(),ye("div",WU,[_e("div",KU,[kt(t.$slots,"default")])])}const rl=_s($U,[["render",QU]]),XU=["placeholder"],ZU=Be({__name:"SearchBarComponent",props:{placeholder:{type:String,default:"Search...",required:!1}},emits:["inputChanged","searchClicked"],setup(t,{emit:e}){$o.add(PM);const n=nt("");return bn(n,i=>{e("inputChanged",i)}),(i,r)=>(me(),Qe(qr,{class:"flex flex-row items-center space-x-2 px-2 py-2"},{default:Ee(()=>[ue(ve(Km),{icon:["fas","magnifying-glass"],class:"text-gray-500",onClick:r[0]||(r[0]=a=>e("searchClicked",n.value))}),vm(_e("input",{type:"text",class:"flex-auto border-0 bg-transparent outline-none placeholder:text-gray-500",placeholder:t.placeholder,"onUpdate:modelValue":r[1]||(r[1]=a=>n.value=a)},null,8,XU),[[yD,n.value]])]),_:1}))}}),jU={class:"flex-auto"},JU={key:0},eB={key:1},Ot=Be({__name:"TextInformation",props:{label:{type:String,required:!0},anonymousSlot:{type:Boolean,required:!1,default:!1},anonymousLabel:{type:Boolean,required:!1,default:!1}},setup(t){return(e,n)=>(me(),ye("div",jU,[$e(Ae(t.anonymousLabel?"Hidden":t.label)+": ",1),t.anonymousSlot?(me(),ye("i",eB,"Hidden")):(me(),ye("i",JU,[kt(e.$slots,"default")]))]))}}),al=Be({__name:"OptionComponent",props:{label:{type:String,required:!0},selected:{type:Boolean,required:!1,default:!1}},emits:["click"],setup(t){return(e,n)=>(me(),Qe(qr,{class:en(["mr-2 box-border flex h-6 w-fit items-center justify-center whitespace-nowrap !rounded-2xl px-[12px] text-center hover:!border-[2px] hover:px-[11px]",{"!border-accent-dark !bg-accent !bg-opacity-40":t.selected}]),onClick:n[0]||(n[0]=i=>e.$emit("click"))},{default:Ee(()=>[$e(Ae(t.label),1)]),_:1},8,["class"]))}}),tB={class:"flex h-fit flex-row items-center text-center text-xs"},nB={key:0,class:"mr-3 text-base"},iB={class:"whitespace-pre text-sm"},HR=Be({__name:"OptionsSelectorComponent",props:{title:{type:String,required:!1,default:""},labels:{type:Array,required:!0},defaultSelected:{type:Number,required:!1,default:0}},emits:["selectionChanged"],setup(t,{emit:e}){const n=t,i=nt(-1);function r(){return i.value==-1?n.defaultSelected:i.value}function a(s){e("selectionChanged",s),i.value=s}return(s,o)=>(me(),ye("div",tB,[t.title!=""?(me(),ye("div",nB,Ae(t.title),1)):mi("",!0),(me(!0),ye(Tt,null,ir(t.labels.entries(),([l,c])=>(me(),ye("div",{key:l},[c.displayValue!==void 0?(me(),Qe(Qi,{key:0,direction:"right"},{default:Ee(()=>[ue(al,{label:c.displayValue,selected:l==r(),onClick:d=>a(l)},null,8,["label","selected","onClick"])]),tooltip:Ee(()=>[_e("p",iB,Ae(c.tooltip),1)]),_:2},1024)):(me(),Qe(al,{key:1,label:c,selected:l==r(),onClick:d=>a(l)},null,8,["label","selected","onClick"]))]))),128))]))}}),IE=Be({__name:"MetricSelector",props:{metrics:{type:Array,required:!1,default:[ht.AVERAGE,ht.MAXIMUM]},title:{type:String,required:!1,default:""},defaultSelected:{type:String,required:!1,default:ht.AVERAGE}},emits:["selectionChanged"],setup(t){const e=t,n=De(()=>e.metrics.map(i=>({displayValue:Sr[i].longName,tooltip:Sr[i].tooltip})));return(i,r)=>(me(),Qe(HR,{title:t.title,labels:n.value,"default-selected":t.metrics.indexOf(t.defaultSelected),onSelectionChanged:r[0]||(r[0]=a=>i.$emit("selectionChanged",t.metrics[a]))},null,8,["title","labels","default-selected"]))}}),rB={class:"absolute bottom-0 left-0 right-0 top-0 flex flex-col"},aB={class:"relative left-0 right-0 top-0 flex space-x-5 p-5 pb-0"},sB=_e("h2",null,"JPlag Report",-1),oB={class:"flex flex-row items-center space-x-5"},lB=_e("p",{class:"whitespace-pre text-sm"},"More information about the CLI run of JPlag",-1),cB={class:"relative bottom-0 left-0 right-0 flex flex-grow space-x-5 p-5 pt-5"},dB=_e("h2",null,"Distribution of Comparisons:",-1),uB={class:"flex flex-grow flex-col space-y-1"},_B=_e("h3",{class:"text-lg underline"},"Options:",-1),pB={class:"flex flex-row items-center space-x-8"},mB=_e("h2",null,"Top Comparisons:",-1),fB=_e("p",{class:"whitespace-pre text-sm"}," Type in the name of a submission to only show comparisons that contain this submission. ",-1),gB=_e("p",{class:"whitespace-pre text-sm"},"Fully written out names get unhidden.",-1),hB=Be({__name:"OverviewView",props:{overview:{type:Object,required:!0}},setup(t){const e=t,n=nt("");function i(c){const d=n.value.trimEnd().toLowerCase().split(/ +/g).map(u=>u.trim().replace(/,/g,""));return d.length==0?c:c.filter(u=>{const _=u.firstSubmissionId.toLowerCase(),p=u.secondSubmissionId.toLowerCase();return d.some(f=>_.includes(f)||p.includes(f))})}function r(c){c.sort((u,_)=>_.similarities[be().uiState.comparisonTableSortingMetric]-u.similarities[be().uiState.comparisonTableSortingMetric]);let d=0;return c.forEach(u=>{u.sortingPlace=d++}),e.overview.topComparisons}const a=De(()=>{const c=i(r(e.overview.topComparisons));let d=1;return c.forEach(u=>{u.id=d++}),c});bn(n,()=>{const c=n.value.trimEnd().toLowerCase().split(/ +/g).map(d=>d.trim().replace(/,/g,""));if(c.length!=0)for(const d of c)for(const u of be().getSubmissionIds)u.toLowerCase()==d&&be().state.anonymous.delete(u)});function s(){be().state.anonymous.size==be().getSubmissionIds.length?be().state.anonymous.clear():be().state.anonymous=new Set(be().getSubmissionIds)}const o=De(()=>e.overview.submissionFolderPath.length>1),l=De(()=>o.value?"Click More to see all paths":e.overview.submissionFolderPath[0]);return Cm(c=>(console.log(c),Gr.push({name:"ErrorView",state:{message:"Overview.json could not be found!",to:"/",routerInfo:"back to FileUpload page"}}),be().clearStore(),!1)),(c,d)=>(me(),ye("div",rB,[_e("div",aB,[ue(tn,{class:"flex-grow"},{default:Ee(()=>[sB,_e("div",oB,[ue(Ot,{label:"Directory"},{default:Ee(()=>[$e(Ae(l.value),1)]),_:1}),ue(Ot,{label:"Total Submissions"},{default:Ee(()=>[$e(Ae(ve(be)().getSubmissionIds.length),1)]),_:1}),ue(Ot,{label:"Total Comparisons"},{default:Ee(()=>[$e(Ae(t.overview.totalComparisons),1)]),_:1}),ue(Ot,{label:"Min Match Length"},{default:Ee(()=>[$e(Ae(t.overview.matchSensitivity),1)]),_:1}),ue(Qi,{direction:"left"},{default:Ee(()=>[ue(zo,{onClick:d[0]||(d[0]=u=>ve(Gr).push({name:"InfoView"}))},{default:Ee(()=>[$e(" More ")]),_:1})]),tooltip:Ee(()=>[lB]),_:1})])]),_:1})]),_e("div",cB,[ue(tn,{class:"flex max-h-0 min-h-full flex-1 flex-col"},{default:Ee(()=>[dB,ue(KF,{distribution:t.overview.distribution[ve(be)().uiState.distributionChartConfig.metric],"x-scale":ve(be)().uiState.distributionChartConfig.xScale,class:"h-2/3 w-full"},null,8,["distribution","x-scale"]),_e("div",uB,[_B,ue(rl,{class:"h-fit flex-grow"},{default:Ee(()=>[ue(IE,{class:"mt-2",title:"Metric:",defaultSelected:ve(be)().uiState.distributionChartConfig.metric,onSelectionChanged:d[1]||(d[1]=u=>ve(be)().uiState.distributionChartConfig.metric=u)},null,8,["defaultSelected"]),ue(HR,{class:"mt-2",title:"Scale x-Axis:",labels:["Linear","Logarithmic"],defaultSelected:ve(be)().uiState.distributionChartConfig.xScale=="linear"?0:1,onSelectionChanged:d[2]||(d[2]=u=>ve(be)().uiState.distributionChartConfig.xScale=u==0?"linear":"logarithmic")},null,8,["defaultSelected"])]),_:1})])]),_:1}),ue(tn,{class:"flex max-h-0 min-h-full flex-1 flex-col space-y-2"},{default:Ee(()=>[_e("div",pB,[mB,ue(Qi,{direction:"bottom",class:"flex-grow"},{default:Ee(()=>[ue(ZU,{placeholder:"Filter/Unhide Comparisons",onInputChanged:d[3]||(d[3]=u=>n.value=u)})]),tooltip:Ee(()=>[fB,gB]),_:1}),ue(zo,{class:"w-24",onClick:d[4]||(d[4]=u=>s())},{default:Ee(()=>[$e(Ae(ve(be)().state.anonymous.size==ve(be)().getSubmissionIds.length?"Show All":"Hide All"),1)]),_:1})]),ue(IE,{title:"Sort By:",defaultSelected:ve(be)().uiState.comparisonTableSortingMetric,onSelectionChanged:d[5]||(d[5]=u=>ve(be)().uiState.comparisonTableSortingMetric=u)},null,8,["defaultSelected"]),ue(zR,{clusters:t.overview.clusters,"top-comparisons":a.value,class:"min-h-0 flex-1"},null,8,["clusters","top-comparisons"])]),_:1})])]))}}),EB={key:1,class:"absolute bottom-0 left-0 right-0 top-0 flex flex-col items-center justify-center"},SB=Be({__name:"OverviewViewWrapper",setup(t){const e=nt(null);return Ji.getOverview().then(n=>{e.value=n}),(n,i)=>e.value?(me(),Qe(hB,{key:0,overview:e.value},null,8,["overview"])):(me(),ye("div",EB,[ue(gs,{class:"mx-auto"})]))}}),bB={class:"flex h-fit min-w-0 max-w-full flex-row space-x-1 overflow-x-hidden text-xs"},TB=_e("p",{class:"whitespace-pre text-sm"},"Click on a match to show it in the code view.",-1),vB={class:"flex w-full flex-row space-x-1 overflow-x-auto"},yB=Be({__name:"MatchList",props:{matches:{type:Array},id1:{type:String},id2:{type:String}},emits:["matchSelected"],setup(t){function e(n){return n.split(/[/\\]/g).pop()||""}return(n,i)=>{var r;return me(),ye("div",bB,[ue(Qi,{direction:"right"},{default:Ee(()=>[ue(al,{label:"Match Files: TokenCount"})]),tooltip:Ee(()=>[TB]),_:1}),_e("div",vB,[(me(!0),ye(Tt,null,ir((r=t.matches)==null?void 0:r.entries(),([a,s])=>(me(),Qe(al,{style:Cn({background:s.color}),key:a,onClick:o=>n.$emit("matchSelected",s),label:e(s.firstFile)+" - "+e(s.secondFile)+": "+s.tokens},null,8,["style","onClick","label"]))),128))])])}}});function VR(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(e=>{const n=t[e],i=typeof n;(i==="object"||i==="function")&&!Object.isFrozen(n)&&VR(n)}),t}class DE{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function qR(t){return t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function ci(t,...e){const n=Object.create(null);for(const i in t)n[i]=t[i];return e.forEach(function(i){for(const r in i)n[r]=i[r]}),n}const CB="",xE=t=>!!t.scope,RB=(t,{prefix:e})=>{if(t.startsWith("language:"))return t.replace("language:","language-");if(t.includes(".")){const n=t.split(".");return[`${e}${n.shift()}`,...n.map((i,r)=>`${i}${"_".repeat(r+1)}`)].join(" ")}return`${e}${t}`};class OB{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=qR(e)}openNode(e){if(!xE(e))return;const n=RB(e.scope,{prefix:this.classPrefix});this.span(n)}closeNode(e){xE(e)&&(this.buffer+=CB)}value(){return this.buffer}span(e){this.buffer+=``}}const wE=(t={})=>{const e={children:[]};return Object.assign(e,t),e};class pf{constructor(){this.rootNode=wE(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n=wE({scope:e});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return typeof n=="string"?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(i=>this._walk(e,i)),e.closeNode(n)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(n=>typeof n=="string")?e.children=[e.children.join("")]:e.children.forEach(n=>{pf._collapse(n)}))}}class NB extends pf{constructor(e){super(),this.options=e}addText(e){e!==""&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,n){const i=e.root;n&&(i.scope=`language:${n}`),this.add(i)}toHTML(){return new OB(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function ss(t){return t?typeof t=="string"?t:t.source:null}function $R(t){return ar("(?=",t,")")}function AB(t){return ar("(?:",t,")*")}function IB(t){return ar("(?:",t,")?")}function ar(...t){return t.map(n=>ss(n)).join("")}function DB(t){const e=t[t.length-1];return typeof e=="object"&&e.constructor===Object?(t.splice(t.length-1,1),e):{}}function mf(...t){return"("+(DB(t).capture?"":"?:")+t.map(i=>ss(i)).join("|")+")"}function WR(t){return new RegExp(t.toString()+"|").exec("").length-1}function xB(t,e){const n=t&&t.exec(e);return n&&n.index===0}const wB=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function ff(t,{joinWith:e}){let n=0;return t.map(i=>{n+=1;const r=n;let a=ss(i),s="";for(;a.length>0;){const o=wB.exec(a);if(!o){s+=a;break}s+=a.substring(0,o.index),a=a.substring(o.index+o[0].length),o[0][0]==="\\"&&o[1]?s+="\\"+String(Number(o[1])+r):(s+=o[0],o[0]==="("&&n++)}return s}).map(i=>`(${i})`).join(e)}const MB=/\b\B/,KR="[a-zA-Z]\\w*",gf="[a-zA-Z_]\\w*",QR="\\b\\d+(\\.\\d+)?",XR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",ZR="\\b(0b[01]+)",LB="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",PB=(t={})=>{const e=/^#![ ]*\//;return t.binary&&(t.begin=ar(e,/.*\b/,t.binary,/\b.*/)),ci({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(n,i)=>{n.index!==0&&i.ignoreMatch()}},t)},os={begin:"\\\\[\\s\\S]",relevance:0},kB={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[os]},FB={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[os]},UB={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Yl=function(t,e,n={}){const i=ci({scope:"comment",begin:t,end:e,contains:[]},n);i.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const r=mf("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return i.contains.push({begin:ar(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},BB=Yl("//","$"),GB=Yl("/\\*","\\*/"),YB=Yl("#","$"),zB={scope:"number",begin:QR,relevance:0},HB={scope:"number",begin:XR,relevance:0},VB={scope:"number",begin:ZR,relevance:0},qB={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[os,{begin:/\[/,end:/\]/,relevance:0,contains:[os]}]},$B={scope:"title",begin:KR,relevance:0},WB={scope:"title",begin:gf,relevance:0},KB={begin:"\\.\\s*"+gf,relevance:0},QB=function(t){return Object.assign(t,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})};var ao=Object.freeze({__proto__:null,APOS_STRING_MODE:kB,BACKSLASH_ESCAPE:os,BINARY_NUMBER_MODE:VB,BINARY_NUMBER_RE:ZR,COMMENT:Yl,C_BLOCK_COMMENT_MODE:GB,C_LINE_COMMENT_MODE:BB,C_NUMBER_MODE:HB,C_NUMBER_RE:XR,END_SAME_AS_BEGIN:QB,HASH_COMMENT_MODE:YB,IDENT_RE:KR,MATCH_NOTHING_RE:MB,METHOD_GUARD:KB,NUMBER_MODE:zB,NUMBER_RE:QR,PHRASAL_WORDS_MODE:UB,QUOTE_STRING_MODE:FB,REGEXP_MODE:qB,RE_STARTERS_RE:LB,SHEBANG:PB,TITLE_MODE:$B,UNDERSCORE_IDENT_RE:gf,UNDERSCORE_TITLE_MODE:WB});function XB(t,e){t.input[t.index-1]==="."&&e.ignoreMatch()}function ZB(t,e){t.className!==void 0&&(t.scope=t.className,delete t.className)}function jB(t,e){e&&t.beginKeywords&&(t.begin="\\b("+t.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",t.__beforeBegin=XB,t.keywords=t.keywords||t.beginKeywords,delete t.beginKeywords,t.relevance===void 0&&(t.relevance=0))}function JB(t,e){Array.isArray(t.illegal)&&(t.illegal=mf(...t.illegal))}function e2(t,e){if(t.match){if(t.begin||t.end)throw new Error("begin & end are not supported with match");t.begin=t.match,delete t.match}}function t2(t,e){t.relevance===void 0&&(t.relevance=1)}const n2=(t,e)=>{if(!t.beforeMatch)return;if(t.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},t);Object.keys(t).forEach(i=>{delete t[i]}),t.keywords=n.keywords,t.begin=ar(n.beforeMatch,$R(n.begin)),t.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},t.relevance=0,delete n.beforeMatch},i2=["of","and","for","in","not","or","if","then","parent","list","value"],r2="keyword";function jR(t,e,n=r2){const i=Object.create(null);return typeof t=="string"?r(n,t.split(" ")):Array.isArray(t)?r(n,t):Object.keys(t).forEach(function(a){Object.assign(i,jR(t[a],e,a))}),i;function r(a,s){e&&(s=s.map(o=>o.toLowerCase())),s.forEach(function(o){const l=o.split("|");i[l[0]]=[a,a2(l[0],l[1])]})}}function a2(t,e){return e?Number(e):s2(t)?0:1}function s2(t){return i2.includes(t.toLowerCase())}const ME={},Xi=t=>{console.error(t)},LE=(t,...e)=>{console.log(`WARN: ${t}`,...e)},_r=(t,e)=>{ME[`${t}/${e}`]||(console.log(`Deprecated as of ${t}. ${e}`),ME[`${t}/${e}`]=!0)},sl=new Error;function JR(t,e,{key:n}){let i=0;const r=t[n],a={},s={};for(let o=1;o<=e.length;o++)s[o+i]=r[o],a[o+i]=!0,i+=WR(e[o-1]);t[n]=s,t[n]._emit=a,t[n]._multi=!0}function o2(t){if(Array.isArray(t.begin)){if(t.skip||t.excludeBegin||t.returnBegin)throw Xi("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),sl;if(typeof t.beginScope!="object"||t.beginScope===null)throw Xi("beginScope must be object"),sl;JR(t,t.begin,{key:"beginScope"}),t.begin=ff(t.begin,{joinWith:""})}}function l2(t){if(Array.isArray(t.end)){if(t.skip||t.excludeEnd||t.returnEnd)throw Xi("skip, excludeEnd, returnEnd not compatible with endScope: {}"),sl;if(typeof t.endScope!="object"||t.endScope===null)throw Xi("endScope must be object"),sl;JR(t,t.end,{key:"endScope"}),t.end=ff(t.end,{joinWith:""})}}function c2(t){t.scope&&typeof t.scope=="object"&&t.scope!==null&&(t.beginScope=t.scope,delete t.scope)}function d2(t){c2(t),typeof t.beginScope=="string"&&(t.beginScope={_wrap:t.beginScope}),typeof t.endScope=="string"&&(t.endScope={_wrap:t.endScope}),o2(t),l2(t)}function u2(t){function e(s,o){return new RegExp(ss(s),"m"+(t.case_insensitive?"i":"")+(t.unicodeRegex?"u":"")+(o?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(o,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,o]),this.matchAt+=WR(o)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const o=this.regexes.map(l=>l[1]);this.matcherRe=e(ff(o,{joinWith:"|"}),!0),this.lastIndex=0}exec(o){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(o);if(!l)return null;const c=l.findIndex((u,_)=>_>0&&u!==void 0),d=this.matchIndexes[c];return l.splice(0,c),Object.assign(l,d)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(o){if(this.multiRegexes[o])return this.multiRegexes[o];const l=new n;return this.rules.slice(o).forEach(([c,d])=>l.addRule(c,d)),l.compile(),this.multiRegexes[o]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(o,l){this.rules.push([o,l]),l.type==="begin"&&this.count++}exec(o){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let c=l.exec(o);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,c=d.exec(o)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function r(s){const o=new i;return s.contains.forEach(l=>o.addRule(l.begin,{rule:l,type:"begin"})),s.terminatorEnd&&o.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&o.addRule(s.illegal,{type:"illegal"}),o}function a(s,o){const l=s;if(s.isCompiled)return l;[ZB,e2,d2,n2].forEach(d=>d(s,o)),t.compilerExtensions.forEach(d=>d(s,o)),s.__beforeBegin=null,[jB,JB,t2].forEach(d=>d(s,o)),s.isCompiled=!0;let c=null;return typeof s.keywords=="object"&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),c=s.keywords.$pattern,delete s.keywords.$pattern),c=c||/\w+/,s.keywords&&(s.keywords=jR(s.keywords,t.case_insensitive)),l.keywordPatternRe=e(c,!0),o&&(s.begin||(s.begin=/\B|\b/),l.beginRe=e(l.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(l.endRe=e(l.end)),l.terminatorEnd=ss(l.end)||"",s.endsWithParent&&o.terminatorEnd&&(l.terminatorEnd+=(s.end?"|":"")+o.terminatorEnd)),s.illegal&&(l.illegalRe=e(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(d){return _2(d==="self"?s:d)})),s.contains.forEach(function(d){a(d,l)}),s.starts&&a(s.starts,o),l.matcher=r(l),l}if(t.compilerExtensions||(t.compilerExtensions=[]),t.contains&&t.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return t.classNameAliases=ci(t.classNameAliases||{}),a(t)}function eO(t){return t?t.endsWithParent||eO(t.starts):!1}function _2(t){return t.variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(e){return ci(t,{variants:null},e)})),t.cachedVariants?t.cachedVariants:eO(t)?ci(t,{starts:t.starts?ci(t.starts):null}):Object.isFrozen(t)?ci(t):t}var p2="11.9.0";class m2 extends Error{constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}const Ec=qR,PE=ci,kE=Symbol("nomatch"),f2=7,tO=function(t){const e=Object.create(null),n=Object.create(null),i=[];let r=!0;const a="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let o={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:NB};function l(M){return o.noHighlightRe.test(M)}function c(M){let K=M.className+" ";K+=M.parentNode?M.parentNode.className:"";const W=o.languageDetectRe.exec(K);if(W){const se=D(W[1]);return se||(LE(a.replace("{}",W[1])),LE("Falling back to no-highlight mode for this block.",M)),se?W[1]:"no-highlight"}return K.split(/\s+/).find(se=>l(se)||D(se))}function d(M,K,W){let se="",q="";typeof K=="object"?(se=M,W=K.ignoreIllegals,q=K.language):(_r("10.7.0","highlight(lang, code, ...args) has been deprecated."),_r("10.7.0",`Please use highlight(code, options) instead.
+https://github.com/highlightjs/highlight.js/issues/2277`),q=M,se=K),W===void 0&&(W=!0);const H={code:se,language:q};z("before:highlight",H);const de=H.result?H.result:u(H.language,H.code,W);return de.code=H.code,z("after:highlight",de),de}function u(M,K,W,se){const q=Object.create(null);function H(ne,ie){return ne.keywords[ie]}function de(){if(!A.keywords){B.addText(F);return}let ne=0;A.keywordPatternRe.lastIndex=0;let ie=A.keywordPatternRe.exec(F),fe="";for(;ie;){fe+=F.substring(ne,ie.index);const Ce=L.case_insensitive?ie[0].toLowerCase():ie[0],Le=H(A,Ce);if(Le){const[st,Ge]=Le;if(B.addText(fe),fe="",q[Ce]=(q[Ce]||0)+1,q[Ce]<=f2&&(X+=Ge),st.startsWith("_"))fe+=ie[0];else{const Vt=L.classNameAliases[st]||st;ge(ie[0],Vt)}}else fe+=ie[0];ne=A.keywordPatternRe.lastIndex,ie=A.keywordPatternRe.exec(F)}fe+=F.substring(ne),B.addText(fe)}function le(){if(F==="")return;let ne=null;if(typeof A.subLanguage=="string"){if(!e[A.subLanguage]){B.addText(F);return}ne=u(A.subLanguage,F,!0,V[A.subLanguage]),V[A.subLanguage]=ne._top}else ne=p(F,A.subLanguage.length?A.subLanguage:null);A.relevance>0&&(X+=ne.relevance),B.__addSublanguage(ne._emitter,ne.language)}function re(){A.subLanguage!=null?le():de(),F=""}function ge(ne,ie){ne!==""&&(B.startScope(ie),B.addText(ne),B.endScope())}function Q(ne,ie){let fe=1;const Ce=ie.length-1;for(;fe<=Ce;){if(!ne._emit[fe]){fe++;continue}const Le=L.classNameAliases[ne[fe]]||ne[fe],st=ie[fe];Le?ge(st,Le):(F=st,de(),F=""),fe++}}function J(ne,ie){return ne.scope&&typeof ne.scope=="string"&&B.openNode(L.classNameAliases[ne.scope]||ne.scope),ne.beginScope&&(ne.beginScope._wrap?(ge(F,L.classNameAliases[ne.beginScope._wrap]||ne.beginScope._wrap),F=""):ne.beginScope._multi&&(Q(ne.beginScope,ie),F="")),A=Object.create(ne,{parent:{value:A}}),A}function ee(ne,ie,fe){let Ce=xB(ne.endRe,fe);if(Ce){if(ne["on:end"]){const Le=new DE(ne);ne["on:end"](ie,Le),Le.isMatchIgnored&&(Ce=!1)}if(Ce){for(;ne.endsParent&&ne.parent;)ne=ne.parent;return ne}}if(ne.endsWithParent)return ee(ne.parent,ie,fe)}function ce(ne){return A.matcher.regexIndex===0?(F+=ne[0],1):(oe=!0,0)}function he(ne){const ie=ne[0],fe=ne.rule,Ce=new DE(fe),Le=[fe.__beforeBegin,fe["on:begin"]];for(const st of Le)if(st&&(st(ne,Ce),Ce.isMatchIgnored))return ce(ie);return fe.skip?F+=ie:(fe.excludeBegin&&(F+=ie),re(),!fe.returnBegin&&!fe.excludeBegin&&(F=ie)),J(fe,ne),fe.returnBegin?0:ie.length}function w(ne){const ie=ne[0],fe=K.substring(ne.index),Ce=ee(A,ne,fe);if(!Ce)return kE;const Le=A;A.endScope&&A.endScope._wrap?(re(),ge(ie,A.endScope._wrap)):A.endScope&&A.endScope._multi?(re(),Q(A.endScope,ne)):Le.skip?F+=ie:(Le.returnEnd||Le.excludeEnd||(F+=ie),re(),Le.excludeEnd&&(F=ie));do A.scope&&B.closeNode(),!A.skip&&!A.subLanguage&&(X+=A.relevance),A=A.parent;while(A!==Ce.parent);return Ce.starts&&J(Ce.starts,ne),Le.returnEnd?0:ie.length}function k(){const ne=[];for(let ie=A;ie!==L;ie=ie.parent)ie.scope&&ne.unshift(ie.scope);ne.forEach(ie=>B.openNode(ie))}let E={};function P(ne,ie){const fe=ie&&ie[0];if(F+=ne,fe==null)return re(),0;if(E.type==="begin"&&ie.type==="end"&&E.index===ie.index&&fe===""){if(F+=K.slice(ie.index,ie.index+1),!r){const Ce=new Error(`0 width match regex (${M})`);throw Ce.languageName=M,Ce.badRule=E.rule,Ce}return 1}if(E=ie,ie.type==="begin")return he(ie);if(ie.type==="illegal"&&!W){const Ce=new Error('Illegal lexeme "'+fe+'" for mode "'+(A.scope||"")+'"');throw Ce.mode=A,Ce}else if(ie.type==="end"){const Ce=w(ie);if(Ce!==kE)return Ce}if(ie.type==="illegal"&&fe==="")return 1;if(j>1e5&&j>ie.index*3)throw new Error("potential infinite loop, way more iterations than matches");return F+=fe,fe.length}const L=D(M);if(!L)throw Xi(a.replace("{}",M)),new Error('Unknown language: "'+M+'"');const C=u2(L);let R="",A=se||C;const V={},B=new o.__emitter(o);k();let F="",X=0,te=0,j=0,oe=!1;try{if(L.__emitTokens)L.__emitTokens(K,B);else{for(A.matcher.considerAll();;){j++,oe?oe=!1:A.matcher.considerAll(),A.matcher.lastIndex=te;const ne=A.matcher.exec(K);if(!ne)break;const ie=K.substring(te,ne.index),fe=P(ie,ne);te=ne.index+fe}P(K.substring(te))}return B.finalize(),R=B.toHTML(),{language:M,value:R,relevance:X,illegal:!1,_emitter:B,_top:A}}catch(ne){if(ne.message&&ne.message.includes("Illegal"))return{language:M,value:Ec(K),illegal:!0,relevance:0,_illegalBy:{message:ne.message,index:te,context:K.slice(te-100,te+100),mode:ne.mode,resultSoFar:R},_emitter:B};if(r)return{language:M,value:Ec(K),illegal:!1,relevance:0,errorRaised:ne,_emitter:B,_top:A};throw ne}}function _(M){const K={value:Ec(M),illegal:!1,relevance:0,_top:s,_emitter:new o.__emitter(o)};return K._emitter.addText(M),K}function p(M,K){K=K||o.languages||Object.keys(e);const W=_(M),se=K.filter(D).filter($).map(re=>u(re,M,!1));se.unshift(W);const q=se.sort((re,ge)=>{if(re.relevance!==ge.relevance)return ge.relevance-re.relevance;if(re.language&&ge.language){if(D(re.language).supersetOf===ge.language)return 1;if(D(ge.language).supersetOf===re.language)return-1}return 0}),[H,de]=q,le=H;return le.secondBest=de,le}function f(M,K,W){const se=K&&n[K]||W;M.classList.add("hljs"),M.classList.add(`language-${se}`)}function m(M){let K=null;const W=c(M);if(l(W))return;if(z("before:highlightElement",{el:M,language:W}),M.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",M);return}if(M.children.length>0&&(o.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(M)),o.throwUnescapedHTML))throw new m2("One of your code blocks includes unescaped HTML.",M.innerHTML);K=M;const se=K.textContent,q=W?d(se,{language:W,ignoreIllegals:!0}):p(se);M.innerHTML=q.value,M.dataset.highlighted="yes",f(M,W,q.language),M.result={language:q.language,re:q.relevance,relevance:q.relevance},q.secondBest&&(M.secondBest={language:q.secondBest.language,relevance:q.secondBest.relevance}),z("after:highlightElement",{el:M,result:q,text:se})}function g(M){o=PE(o,M)}const h=()=>{T(),_r("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function S(){T(),_r("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let b=!1;function T(){if(document.readyState==="loading"){b=!0;return}document.querySelectorAll(o.cssSelector).forEach(m)}function y(){b&&T()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",y,!1);function O(M,K){let W=null;try{W=K(t)}catch(se){if(Xi("Language definition for '{}' could not be registered.".replace("{}",M)),r)Xi(se);else throw se;W=s}W.name||(W.name=M),e[M]=W,W.rawDefinition=K.bind(null,t),W.aliases&&U(W.aliases,{languageName:M})}function x(M){delete e[M];for(const K of Object.keys(n))n[K]===M&&delete n[K]}function I(){return Object.keys(e)}function D(M){return M=(M||"").toLowerCase(),e[M]||e[n[M]]}function U(M,{languageName:K}){typeof M=="string"&&(M=[M]),M.forEach(W=>{n[W.toLowerCase()]=K})}function $(M){const K=D(M);return K&&!K.disableAutodetect}function N(M){M["before:highlightBlock"]&&!M["before:highlightElement"]&&(M["before:highlightElement"]=K=>{M["before:highlightBlock"](Object.assign({block:K.el},K))}),M["after:highlightBlock"]&&!M["after:highlightElement"]&&(M["after:highlightElement"]=K=>{M["after:highlightBlock"](Object.assign({block:K.el},K))})}function Y(M){N(M),i.push(M)}function v(M){const K=i.indexOf(M);K!==-1&&i.splice(K,1)}function z(M,K){const W=M;i.forEach(function(se){se[W]&&se[W](K)})}function Z(M){return _r("10.7.0","highlightBlock will be removed entirely in v12.0"),_r("10.7.0","Please use highlightElement now."),m(M)}Object.assign(t,{highlight:d,highlightAuto:p,highlightAll:T,highlightElement:m,highlightBlock:Z,configure:g,initHighlighting:h,initHighlightingOnLoad:S,registerLanguage:O,unregisterLanguage:x,listLanguages:I,getLanguage:D,registerAliases:U,autoDetection:$,inherit:PE,addPlugin:Y,removePlugin:v}),t.debugMode=function(){r=!1},t.safeMode=function(){r=!0},t.versionString=p2,t.regex={concat:ar,lookahead:$R,either:mf,optional:IB,anyNumberOfTimes:AB};for(const M in ao)typeof ao[M]=="object"&&VR(ao[M]);return Object.assign(t,ao),t},Ur=tO({});Ur.newInstance=()=>tO({});var nO=Ur;Ur.HighlightJS=Ur;Ur.default=Ur;var Sc,FE;function g2(){if(FE)return Sc;FE=1;function t(e){const n="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+",a="далее "+"возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ",l="загрузитьизфайла "+"вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ",c="разделительстраниц разделительстрок символтабуляции ",d="ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ",u="acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ",_="wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ",p=c+d+u+_,f="webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ",m="автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени форматкартинки ширинаподчиненныхэлементовформы ",g="виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ",h="авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ",S="использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ",b="отображениевремениэлементовпланировщика ",T="типфайлаформатированногодокумента ",y="обходрезультатазапроса типзаписизапроса ",O="видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ",x="доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ",I="типизмеренияпостроителязапроса ",D="видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ",U="wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs форматдатыjson экранированиесимволовjson ",$="видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных использованиеусловногооформлениякомпоновкиданных ",N="важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты статусразборапочтовогосообщения ",Y="режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ",v="расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии типхранилищасертификатовкриптографии ",z="кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip режимсохраненияпутейzip уровеньсжатияzip ",Z="звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ",M="направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ",K="httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса типномерадокумента типномеразадачи типформы удалениедвижений ",W="важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты",se=f+m+g+h+S+b+T+y+O+x+I+D+U+$+N+Y+v+z+Z+M+K+W,de="comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных "+"comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура фиксированноесоответствие фиксированныймассив ",le="null истина ложь неопределено",re=e.inherit(e.NUMBER_MODE),ge={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},Q={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},J=e.inherit(e.C_LINE_COMMENT_MODE),ee={className:"meta",begin:"#|&",end:"$",keywords:{$pattern:n,keyword:a+l},contains:[J]},ce={className:"symbol",begin:"~",end:";|:",excludeEnd:!0},he={className:"function",variants:[{begin:"процедура|функция",end:"\\)",keywords:"процедура функция"},{begin:"конецпроцедуры|конецфункции",keywords:"конецпроцедуры конецфункции"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",begin:n,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:n,keyword:"знач",literal:le},contains:[re,ge,Q]},J]},e.inherit(e.TITLE_MODE,{begin:n})]};return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:n,keyword:a,built_in:p,class:se,type:de,literal:le},contains:[ee,he,J,ce,re,ge,Q]}}return Sc=t,Sc}var bc,UE;function h2(){if(UE)return bc;UE=1;function t(e){const n=e.regex,i=/^[a-zA-Z][a-zA-Z0-9-]*/,r=["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],a=e.COMMENT(/;/,/$/),s={scope:"symbol",match:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/},o={scope:"symbol",match:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/},l={scope:"symbol",match:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/},c={scope:"symbol",match:/%[si](?=".*")/},d={scope:"attribute",match:n.concat(i,/(?=\s*=)/)};return{name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/,keywords:r,contains:[{scope:"operator",match:/=\/?/},d,a,s,o,l,c,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}return bc=t,bc}var Tc,BE;function E2(){if(BE)return Tc;BE=1;function t(e){const n=e.regex,i=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"];return{name:"Apache Access Log",contains:[{className:"number",begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{className:"number",begin:/\b\d+\b/,relevance:0},{className:"string",begin:n.concat(/"/,n.either(...i)),end:/"/,keywords:i,illegal:/\n/,relevance:5,contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string",begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string",begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string",begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}return Tc=t,Tc}var vc,GE;function S2(){if(GE)return vc;GE=1;function t(e){const n=e.regex,i=/[a-zA-Z_$][a-zA-Z0-9_$]*/,r=n.concat(i,n.concat("(\\.",i,")*")),a=/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/,s={className:"rest_arg",begin:/[.]{3}/,end:i,relevance:10};return{name:"ActionScript",aliases:["as"],keywords:{keyword:["as","break","case","catch","class","const","continue","default","delete","do","dynamic","each","else","extends","final","finally","for","function","get","if","implements","import","in","include","instanceof","interface","internal","is","namespace","native","new","override","package","private","protected","public","return","set","static","super","switch","this","throw","try","typeof","use","var","void","while","with"],literal:["true","false","null","undefined"]},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{match:[/\bpackage/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{match:[/\b(?:class|interface|extends|implements)/,/\s+/,i],className:{1:"keyword",3:"title.class"}},{className:"meta",beginKeywords:"import include",end:/;/,keywords:{keyword:"import include"}},{beginKeywords:"function",end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.inherit(e.TITLE_MODE,{className:"title.function"}),{className:"params",begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s]},{begin:n.concat(/:\s*/,a)}]},e.METHOD_GUARD],illegal:/#/}}return vc=t,vc}var yc,YE;function b2(){if(YE)return yc;YE=1;function t(e){const n="\\d(_|\\d)*",i="[eE][-+]?"+n,r=n+"(\\."+n+")?("+i+")?",a="\\w+",o="\\b("+(n+"#"+a+"(\\."+a+")?#("+i+")?")+"|"+r+")",l="[A-Za-z](_?[A-Za-z0-9.])*",c=`[]\\{\\}%#'"`,d=e.COMMENT("--","$"),u={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:c,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:l,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:["abort","else","new","return","abs","elsif","not","reverse","abstract","end","accept","entry","select","access","exception","of","separate","aliased","exit","or","some","all","others","subtype","and","for","out","synchronized","array","function","overriding","at","tagged","generic","package","task","begin","goto","pragma","terminate","body","private","then","if","procedure","type","case","in","protected","constant","interface","is","raise","use","declare","range","delay","limited","record","when","delta","loop","rem","while","digits","renames","with","do","mod","requeue","xor"],literal:["True","False"]},contains:[d,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:o,relevance:0},{className:"symbol",begin:"'"+l},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:c},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[d,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:c},u,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:c}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:c},u]}}return yc=t,yc}var Cc,zE;function T2(){if(zE)return Cc;zE=1;function t(e){const n={className:"built_in",begin:"\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)"},i={className:"symbol",begin:"[a-zA-Z0-9_]+@"},r={className:"keyword",begin:"<",end:">",contains:[n,i]};return n.contains=[r],i.contains=[r],{name:"AngelScript",aliases:["asc"],keywords:["for","in|0","break","continue","while","do|0","return","if","else","case","switch","namespace","is","cast","or","and","xor","not","get|0","in","inout|10","out","override","set|0","private","public","const","default|0","final","shared","external","mixin|10","enum","typedef","funcdef","this","super","import","from","interface","abstract|0","try","catch","protected","explicit","property"],illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""',end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]}]}]},n,i,{className:"literal",begin:"\\b(null|true|false)"},{className:"number",relevance:0,begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"}]}}return Cc=t,Cc}var Rc,HE;function v2(){if(HE)return Rc;HE=1;function t(e){const n={className:"number",begin:/[$%]\d+/},i={className:"number",begin:/\b\d+/},r={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/},a={className:"number",begin:/:\d{1,5}/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[r,a,e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",n]},r,i,e.QUOTE_STRING_MODE]}}],illegal:/\S/}}return Rc=t,Rc}var Oc,VE;function y2(){if(VE)return Oc;VE=1;function t(e){const n=e.regex,i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),r={className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,i]},a=e.COMMENT(/--/,/$/),s=e.COMMENT(/\(\*/,/\*\)/,{contains:["self",a]}),o=[a,s,e.HASH_COMMENT_MODE],l=[/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/],c=[/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/];return{name:"AppleScript",aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name|0 paragraph paragraphs rest reverse running time version weekday word words year"},contains:[i,e.C_NUMBER_MODE,{className:"built_in",begin:n.concat(/\b/,n.either(...c),/\b/)},{className:"built_in",begin:/^\s*return\b/},{className:"literal",begin:/\b(text item delimiters|current application|missing value)\b/},{className:"keyword",begin:n.concat(/\b/,n.either(...l),/\b/)},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[e.UNDERSCORE_TITLE_MODE,r]},...o],illegal:/\/\/|->|=>|\[\[/}}return Oc=t,Oc}var Nc,qE;function C2(){if(qE)return Nc;qE=1;function t(e){const n="[A-Za-z_][0-9A-Za-z_]*",i={keyword:["if","for","while","var","new","function","do","return","void","else","break"],literal:["BackSlash","DoubleQuote","false","ForwardSlash","Infinity","NaN","NewLine","null","PI","SingleQuote","Tab","TextFormatting","true","undefined"],built_in:["Abs","Acos","All","Angle","Any","Area","AreaGeodetic","Array","Asin","Atan","Atan2","Attachments","Average","Back","Bearing","Boolean","Buffer","BufferGeodetic","Ceil","Centroid","Clip","Concatenate","Console","Constrain","Contains","ConvertDirection","Cos","Count","Crosses","Cut","Date","DateAdd","DateDiff","Day","Decode","DefaultValue","Densify","DensifyGeodetic","Dictionary","Difference","Disjoint","Distance","DistanceGeodetic","Distinct","Domain","DomainCode","DomainName","EnvelopeIntersects","Equals","Erase","Exp","Expects","Extent","Feature","FeatureSet","FeatureSetByAssociation","FeatureSetById","FeatureSetByName","FeatureSetByPortalItem","FeatureSetByRelationshipName","Filter","Find","First","Floor","FromCharCode","FromCodePoint","FromJSON","GdbVersion","Generalize","Geometry","GetFeatureSet","GetUser","GroupBy","Guid","Hash","HasKey","Hour","IIf","Includes","IndexOf","Insert","Intersection","Intersects","IsEmpty","IsNan","ISOMonth","ISOWeek","ISOWeekday","ISOYear","IsSelfIntersecting","IsSimple","Left|0","Length","Length3D","LengthGeodetic","Log","Lower","Map","Max","Mean","Mid","Millisecond","Min","Minute","Month","MultiPartToSinglePart","Multipoint","NextSequenceValue","None","Now","Number","Offset|0","OrderBy","Overlaps","Point","Polygon","Polyline","Pop","Portal","Pow","Proper","Push","Random","Reduce","Relate","Replace","Resize","Reverse","Right|0","RingIsClockwise","Rotate","Round","Schema","Second","SetGeometry","Simplify","Sin","Slice","Sort","Splice","Split","Sqrt","Stdev","SubtypeCode","SubtypeName","Subtypes","Sum","SymmetricDifference","Tan","Text","Timestamp","ToCharCode","ToCodePoint","Today","ToHex","ToLocal","Top|0","Touches","ToUTC","TrackAccelerationAt","TrackAccelerationWindow","TrackCurrentAcceleration","TrackCurrentDistance","TrackCurrentSpeed","TrackCurrentTime","TrackDistanceAt","TrackDistanceWindow","TrackDuration","TrackFieldWindow","TrackGeometryWindow","TrackIndex","TrackSpeedAt","TrackSpeedWindow","TrackStartTime","TrackWindow","Trim","TypeOf","Union","Upper","UrlEncode","Variance","Week","Weekday","When","Within","Year"]},r={className:"symbol",begin:"\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+"},a={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},s={className:"subst",begin:"\\$\\{",end:"\\}",keywords:i,contains:[]},o={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,s]};s.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,a,e.REGEXP_MODE];const l=s.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{name:"ArcGIS Arcade",case_insensitive:!0,keywords:i,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,a,{begin:/[{,]\s*/,relevance:0,contains:[{begin:n+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:n,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+n+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:l}]}]}],relevance:0},{beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{className:"title.function",begin:n}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:l}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}return Nc=t,Nc}var Ac,$E;function R2(){if($E)return Ac;$E=1;function t(n){const i=n.regex,r=n.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),a="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",o="<[^<>]+>",l="(?!struct)("+a+"|"+i.optional(s)+"[a-zA-Z_]\\w*"+i.optional(o)+")",c={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},d="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",u={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[n.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+d+"|.)",end:"'",illegal:"."},n.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},_={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},p={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},n.inherit(u,{className:"string"}),{className:"string",begin:/<.*?>/},r,n.C_BLOCK_COMMENT_MODE]},f={className:"title",begin:i.optional(s)+n.IDENT_RE,relevance:0},m=i.optional(s)+n.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],h=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],S=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],b=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],O={type:h,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:S},x={className:"function.dispatch",relevance:0,keywords:{_hint:b},begin:i.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,n.IDENT_RE,i.lookahead(/(<[^<>]+>|)\s*\(/))},I=[x,p,c,r,n.C_BLOCK_COMMENT_MODE,_,u],D={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:O,contains:I.concat([{begin:/\(/,end:/\)/,keywords:O,contains:I.concat(["self"]),relevance:0}]),relevance:0},U={className:"function",begin:"("+l+"[\\*&\\s]+)+"+m,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:O,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:O,relevance:0},{begin:m,returnBegin:!0,contains:[f],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[u,_]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:O,relevance:0,contains:[r,n.C_BLOCK_COMMENT_MODE,u,_,c,{begin:/\(/,end:/\)/,keywords:O,relevance:0,contains:["self",r,n.C_BLOCK_COMMENT_MODE,u,_,c]}]},c,r,n.C_BLOCK_COMMENT_MODE,p]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:O,illegal:"",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(D,U,x,I,[p,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",end:">",keywords:O,contains:["self",c]},{begin:n.IDENT_RE+"::",keywords:O},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function e(n){const i={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},r=t(n),a=r.keywords;return a.type=[...a.type,...i.type],a.literal=[...a.literal,...i.literal],a.built_in=[...a.built_in,...i.built_in],a._hints=i._hints,r.name="Arduino",r.aliases=["ino"],r.supersetOf="cpp",r}return Ac=e,Ac}var Ic,WE;function O2(){if(WE)return Ic;WE=1;function t(e){const n={variants:[e.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),e.COMMENT("[;@]","$",{relevance:0}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+e.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 w16 w17 w18 w19 w20 w21 w22 w23 w24 w25 w26 w27 w28 w29 w30 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},n,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}return Ic=t,Ic}var Dc,KE;function iO(){if(KE)return Dc;KE=1;function t(e){const n=e.regex,i=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,a={className:"symbol",begin:/&[a-z]+;|[0-9]+;|[a-f0-9]+;/},s={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(s,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{className:"string"}),c=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),d={endsWithParent:!0,illegal:/,relevance:0,contains:[{className:"attr",begin:r,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[s,c,l,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[s,o,c,l]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[c]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/